summaryrefslogtreecommitdiffstats
path: root/source/l
diff options
context:
space:
mode:
Diffstat (limited to 'source/l')
-rw-r--r--source/l/ConsoleKit/ck-history-don-t-truncate-frequent-output-to-8-chars.patch28
-rw-r--r--source/l/ConsoleKit/consolekit-0.2.10-cleanup_console_tags.patch65
-rw-r--r--source/l/ConsoleKit/consolekit-0.4.2-revert.patch210
-rw-r--r--source/l/ConsoleKit/pam-foreground-compat.ck16
-rwxr-xr-xsource/l/ConsoleKit2/ConsoleKit2.SlackBuild (renamed from source/l/ConsoleKit/ConsoleKit.SlackBuild)102
-rw-r--r--source/l/ConsoleKit2/doinst.sh (renamed from source/l/ConsoleKit/doinst.sh)0
-rw-r--r--source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch477
-rw-r--r--source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch42
-rw-r--r--source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch29
-rw-r--r--source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch22
-rw-r--r--source/l/ConsoleKit2/rc.consolekit (renamed from source/l/ConsoleKit/rc.consolekit)0
-rw-r--r--source/l/ConsoleKit2/slack-desc (renamed from source/l/phonon-xine/slack-desc)24
-rwxr-xr-xsource/l/GConf/GConf.SlackBuild13
-rw-r--r--source/l/GConf/patches/0001-mconvert-enable-recursive-scheme-lookup-and-fix-a-cr.patch49
-rw-r--r--source/l/GConf/patches/0002-dbus-Don-t-spew-to-console-when-unable-to-connect-to.patch87
-rw-r--r--source/l/GConf/patches/0003-gsettings-data-convert-Warn-and-fix-invalid-schema-p.patch45
-rw-r--r--source/l/GConf/patches/0011-Fix-some-compiler-warnings.patch303
-rwxr-xr-xsource/l/LibRaw/LibRaw.SlackBuild126
-rw-r--r--source/l/LibRaw/slack-desc19
-rwxr-xr-xsource/l/M2Crypto/M2Crypto.SlackBuild8
-rw-r--r--source/l/M2Crypto/slack-desc2
-rwxr-xr-xsource/l/PyQt/PyQt.SlackBuild8
-rwxr-xr-xsource/l/QScintilla/QScintilla.SlackBuild18
-rwxr-xr-xsource/l/a52dec/a52dec.SlackBuild114
-rw-r--r--source/l/a52dec/slack-desc12
-rwxr-xr-xsource/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild (renamed from source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild)91
-rw-r--r--source/l/adwaita-icon-theme/doinst.sh6
-rw-r--r--source/l/adwaita-icon-theme/inherit-hicolor-theme.diff11
-rw-r--r--source/l/adwaita-icon-theme/slack-desc19
-rwxr-xr-xsource/l/akonadi/akonadi.SlackBuild10
-rwxr-xr-xsource/l/alsa-lib/alsa-lib.SlackBuild23
-rw-r--r--source/l/alsa-lib/alsa-lib.fdba9e1bad8f769a6137e565471f0227f23a3132.diff102
-rw-r--r--source/l/alsa-lib/asound.conf4
-rw-r--r--source/l/alsa-lib/doinst.sh14
-rwxr-xr-xsource/l/alsa-plugins/alsa-plugins.SlackBuild97
-rw-r--r--source/l/alsa-plugins/slack-desc19
-rwxr-xr-xsource/l/apr-util/apr-util.SlackBuild8
-rw-r--r--source/l/apr-util/apr-util.url4
-rwxr-xr-xsource/l/apr/apr.SlackBuild6
-rw-r--r--source/l/apr/apr.url4
-rwxr-xr-xsource/l/aspell-dict/aspell-dict.SlackBuild32
-rw-r--r--source/l/aspell-dict/build/aspell-af1
-rw-r--r--source/l/aspell-dict/build/aspell-br1
-rw-r--r--source/l/aspell-dict/build/aspell-cy1
-rw-r--r--source/l/aspell-dict/build/aspell-el1
-rw-r--r--source/l/aspell-dict/build/aspell-fr1
-rw-r--r--source/l/aspell-dict/build/aspell-gv1
-rw-r--r--source/l/aspell-dict/build/aspell-hr1
-rw-r--r--source/l/aspell-dict/build/aspell-ia1
-rw-r--r--source/l/aspell-dict/build/aspell-is1
-rw-r--r--source/l/aspell-dict/build/aspell-mi1
-rw-r--r--source/l/aspell-dict/build/aspell-mk1
-rw-r--r--source/l/aspell-dict/build/aspell-ms1
-rw-r--r--source/l/aspell-dict/build/aspell-mt1
-rw-r--r--source/l/aspell-dict/build/aspell-nb1
-rw-r--r--source/l/aspell-dict/build/aspell-nl1
-rw-r--r--source/l/aspell-dict/build/aspell-nn1
-rw-r--r--source/l/aspell-dict/build/aspell-no1
-rw-r--r--source/l/aspell-dict/build/aspell-pt1
-rw-r--r--source/l/aspell-dict/build/aspell-rw1
-rw-r--r--source/l/aspell-dict/build/aspell-sl1
-rw-r--r--source/l/aspell-dict/build/aspell-sv1
-rw-r--r--source/l/aspell-dict/build/aspell-sw1
-rw-r--r--source/l/aspell-dict/build/aspell-tr1
-rw-r--r--source/l/aspell-dict/build/aspell-wa1
-rw-r--r--source/l/aspell-dict/build/aspell-zu1
-rw-r--r--source/l/aspell-dict/build/aspell5-be1
-rw-r--r--source/l/aspell-dict/build/aspell5-da1
-rw-r--r--source/l/aspell-dict/build/aspell5-fo1
-rw-r--r--source/l/aspell-dict/build/aspell5-gd1
-rw-r--r--source/l/aspell-dict/build/aspell5-hil1
-rw-r--r--source/l/aspell-dict/build/aspell5-id1
-rw-r--r--source/l/aspell-dict/build/aspell5-mg1
-rw-r--r--source/l/aspell-dict/build/aspell5-ny1
-rw-r--r--source/l/aspell-dict/build/aspell5-sc1
-rw-r--r--source/l/aspell-dict/build/aspell5-tet1
-rw-r--r--source/l/aspell-dict/build/aspell5-tl1
-rw-r--r--source/l/aspell-dict/build/aspell5-tn1
-rw-r--r--source/l/aspell-dict/build/aspell6-am1
-rw-r--r--source/l/aspell-dict/build/aspell6-az1
-rw-r--r--source/l/aspell-dict/build/aspell6-bn1
-rw-r--r--source/l/aspell-dict/build/aspell6-ca1
-rw-r--r--source/l/aspell-dict/build/aspell6-cs1
-rw-r--r--source/l/aspell-dict/build/aspell6-csb1
-rw-r--r--source/l/aspell-dict/build/aspell6-de1
-rw-r--r--source/l/aspell-dict/build/aspell6-et1
-rw-r--r--source/l/aspell-dict/build/aspell6-fi1
-rw-r--r--source/l/aspell-dict/build/aspell6-he1
-rw-r--r--source/l/aspell-dict/build/aspell6-hu1
-rw-r--r--source/l/aspell-dict/build/aspell6-it1
-rw-r--r--source/l/aspell-dict/build/aspell6-la1
-rw-r--r--source/l/aspell-dict/build/aspell6-lv1
-rw-r--r--source/l/aspell-dict/build/aspell6-mr1
-rw-r--r--source/l/aspell-dict/build/aspell6-nds1
-rw-r--r--source/l/aspell-dict/build/aspell6-or1
-rw-r--r--source/l/aspell-dict/build/aspell6-pa1
-rw-r--r--source/l/aspell-dict/build/aspell6-qu1
-rw-r--r--source/l/aspell-dict/build/aspell6-ru1
-rw-r--r--source/l/aspell-dict/build/aspell6-sr1
-rw-r--r--source/l/aspell-dict/build/aspell6-ta1
-rw-r--r--source/l/aspell-dict/build/aspell6-te1
-rw-r--r--source/l/aspell-dict/build/aspell6-vi1
-rw-r--r--source/l/aspell-dict/build/aspell6-yi1
-rwxr-xr-xsource/l/aspell-dict/build/increment-all-dict.sh12
-rwxr-xr-xsource/l/aspell-dict/build/increment.sh17
-rwxr-xr-xsource/l/aspell/aspell.SlackBuild6
-rwxr-xr-xsource/l/at-spi2-atk/at-spi2-atk.SlackBuild6
-rwxr-xr-xsource/l/at-spi2-core/at-spi2-core.SlackBuild6
-rwxr-xr-xsource/l/atk/atk.SlackBuild6
-rwxr-xr-xsource/l/atkmm/atkmm.SlackBuild103
-rw-r--r--source/l/atkmm/slack-desc19
-rwxr-xr-xsource/l/babl/babl.SlackBuild6
-rwxr-xr-xsource/l/boost/boost.SlackBuild35
-rw-r--r--source/l/boost/boost.glibc.long.long.diff22
-rw-r--r--source/l/boost/changeset_82498.diff116
-rwxr-xr-xsource/l/cairo/cairo.SlackBuild21
-rw-r--r--source/l/cairo/cairo.c088ba1faab9579efdaed7a524124901a17801b0.diff60
-rwxr-xr-xsource/l/cairomm/cairomm.SlackBuild103
-rw-r--r--source/l/cairomm/slack-desc19
-rwxr-xr-xsource/l/dbus-glib/dbus-glib.SlackBuild13
-rwxr-xr-xsource/l/dbus-python/dbus-python.SlackBuild6
-rwxr-xr-xsource/l/dconf-editor/dconf-editor.SlackBuild112
-rw-r--r--source/l/dconf-editor/doinst.sh9
-rw-r--r--source/l/dconf-editor/slack-desc19
-rwxr-xr-xsource/l/dconf/dconf.SlackBuild8
-rwxr-xr-xsource/l/desktop-file-utils/desktop-file-utils.SlackBuild4
-rw-r--r--source/l/desktop-file-utils/gitpatches/0001-desktop-file-validate-Trailing-semicolons-have-been-.patch177
-rw-r--r--source/l/desktop-file-utils/gitpatches/0002-Add-Cinnamon-to-list-of-registered-environments.patch28
-rw-r--r--source/l/desktop-file-utils/gitpatches/0003-Add-EDE-to-the-list-of-desktop-environments.patch26
-rwxr-xr-xsource/l/djvulibre/djvulibre.SlackBuild13
-rwxr-xr-xsource/l/ebook-tools/ebook-tools.SlackBuild13
-rw-r--r--source/l/ebook-tools/epub3_fixed_layout.patch160
-rw-r--r--source/l/ebook-tools/slack-desc4
-rwxr-xr-xsource/l/eigen2/eigen2.SlackBuild14
-rwxr-xr-xsource/l/eigen3/eigen3.SlackBuild102
-rw-r--r--source/l/eigen3/slack-desc19
-rw-r--r--source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch91
-rw-r--r--source/l/elfutils/elfutils-portability-0.163.patch2108
-rwxr-xr-xsource/l/elfutils/elfutils.SlackBuild (renamed from source/l/libelf/libelf.SlackBuild)23
-rw-r--r--source/l/elfutils/slack-desc19
-rwxr-xr-xsource/l/exiv2/exiv2.SlackBuild10
-rw-r--r--source/l/exiv2/slack-desc2
-rwxr-xr-xsource/l/fftw/fftw.SlackBuild2
-rwxr-xr-xsource/l/freetype/freetype.SlackBuild11
-rw-r--r--source/l/freetype/freetype.illadvisederror.diff12
-rw-r--r--source/l/freetype/freetype.subpixel.rendering.diff5
-rw-r--r--source/l/freetype/slack-desc14
-rwxr-xr-xsource/l/fribidi/fribidi.SlackBuild16
-rw-r--r--source/l/fribidi/slack-desc2
-rwxr-xr-xsource/l/fuse/fuse.SlackBuild23
-rwxr-xr-xsource/l/gc/gc.SlackBuild69
-rw-r--r--source/l/gc/gc.test-stack-infinite-loop.diff67
-rw-r--r--source/l/gc/noelision.patch127
-rw-r--r--source/l/gc/refer_to_GC_setup_mark_lock_only_in_PARALLEL_MARK_code.patch26
-rw-r--r--source/l/gc/slack-desc2
-rwxr-xr-xsource/l/gcr/gcr.SlackBuild9
-rwxr-xr-xsource/l/gd/gd.SlackBuild26
-rw-r--r--source/l/gd/gd.png14.diff65
-rw-r--r--source/l/gd/gdlib.pc14
-rwxr-xr-xsource/l/gdbm/gdbm.SlackBuild45
-rw-r--r--source/l/gdbm/gdbm.zeroheaders.patch36
-rwxr-xr-xsource/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild6
-rwxr-xr-xsource/l/gegl/gegl.SlackBuild2
-rwxr-xr-xsource/l/giflib/giflib.SlackBuild13
-rw-r--r--source/l/giflib/slack-desc2
-rwxr-xr-xsource/l/glade3/glade3.SlackBuild7
-rwxr-xr-xsource/l/glib-networking/glib-networking.SlackBuild6
-rw-r--r--source/l/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch25
-rwxr-xr-xsource/l/glib2/glib2.SlackBuild31
-rw-r--r--source/l/glibc/doinst.sh-glibc55
-rw-r--r--source/l/glibc/doinst.sh-glibc-solibs36
-rw-r--r--source/l/glibc/doinst.sh-glibc-zoneinfo17
-rw-r--r--source/l/glibc/glibc-c-utf8-locale.patch251
-rw-r--r--source/l/glibc/glibc.CVE-2013-0242.diff189
-rw-r--r--source/l/glibc/glibc.CVE-2013-1914.diff53
-rw-r--r--source/l/glibc/glibc.CVE-2013-2207.diff241
-rw-r--r--source/l/glibc/glibc.CVE-2013-4332.diff64
-rwxr-xr-xsource/l/glibc/glibc.SlackBuild174
-rw-r--r--source/l/glibc/glibc.disable.broken.optimized.memcpy.diff30
-rw-r--r--source/l/glibc/glibc.getcwd.max.macro.diff10
-rw-r--r--source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch1212
-rw-r--r--source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch27
-rw-r--r--source/l/glibc/glibc.nis-netgroups.diff12
-rw-r--r--source/l/glibc/slack-desc.glibc-i18n6
-rw-r--r--source/l/glibc/slack-desc.glibc-zoneinfo19
-rw-r--r--source/l/glibc/slack-desc.glibc-zoneinfo.olson19
-rwxr-xr-xsource/l/glibc/timezone-scripts/output-updated-timeconfig.sh53
-rw-r--r--source/l/glibc/timezone-scripts/parts/00130
-rw-r--r--source/l/glibc/timezone-scripts/parts/011664
-rw-r--r--source/l/glibc/timezone-scripts/parts/0228
-rw-r--r--source/l/glibc/timezone-scripts/parts/031664
-rw-r--r--source/l/glibc/timezone-scripts/parts/0432
-rw-r--r--source/l/glibc/timezone-scripts/parts/README2
-rw-r--r--source/l/glibc/timezone-scripts/setup.timeconfig3
-rw-r--r--source/l/glibc/timezone-scripts/timeconfig3702
-rwxr-xr-xsource/l/glibmm/glibmm.SlackBuild102
-rw-r--r--source/l/glibmm/slack-desc19
-rwxr-xr-xsource/l/gmp/gmp.SlackBuild16
-rw-r--r--source/l/gnome-icon-theme/doinst.sh6
-rw-r--r--source/l/gnome-icon-theme/fix_gits_configure.diff12
-rwxr-xr-xsource/l/gnome-keyring/gnome-keyring.SlackBuild15
-rwxr-xr-xsource/l/gnome-themes-standard/gnome-themes-standard.SlackBuild6
-rwxr-xr-xsource/l/gnu-efi/gnu-efi.SlackBuild24
-rwxr-xr-xsource/l/gobject-introspection/gobject-introspection.SlackBuild9
-rwxr-xr-xsource/l/gsettings-desktop-schemas/gsettings-desktop-schemas.SlackBuild8
-rwxr-xr-xsource/l/gsl/gsl.SlackBuild132
-rw-r--r--source/l/gsl/slack-desc19
-rwxr-xr-xsource/l/gst-plugins-base/gst-plugins-base.SlackBuild8
-rwxr-xr-xsource/l/gst-plugins-base0/gst-plugins-base0.SlackBuild128
-rw-r--r--source/l/gst-plugins-base0/slack-desc19
-rwxr-xr-xsource/l/gst-plugins-good/gst-plugins-good.SlackBuild12
-rwxr-xr-xsource/l/gst-plugins-good0/gst-plugins-good0.SlackBuild131
-rw-r--r--source/l/gst-plugins-good0/slack-desc19
-rw-r--r--source/l/gst-plugins-good0/v4l.compile.fixes.diff (renamed from source/l/gst-plugins-good/v4l.compile.fixes.diff)0
-rwxr-xr-xsource/l/gstreamer/gstreamer.SlackBuild18
-rwxr-xr-xsource/l/gstreamer0/gstreamer0.SlackBuild137
-rw-r--r--source/l/gstreamer0/slack-desc19
-rw-r--r--source/l/gtk+2/doinst.sh2
-rw-r--r--source/l/gtk+2/fix_build_issues_on_tutorial_and_faq.diff50
-rwxr-xr-xsource/l/gtk+2/gtk+2.SlackBuild20
-rw-r--r--source/l/gtk+2/gtk.gtk-faq.diff11
-rw-r--r--source/l/gtk+2/gtk.gtk-tut.diff11
-rw-r--r--source/l/gtk+3/doinst.sh7
-rwxr-xr-xsource/l/gtk+3/gtk+3.SlackBuild16
-rwxr-xr-xsource/l/gtkmm2/gtkmm2.SlackBuild106
-rw-r--r--source/l/gtkmm2/slack-desc19
-rwxr-xr-xsource/l/gtkmm3/gtkmm3.SlackBuild106
-rw-r--r--source/l/gtkmm3/slack-desc19
-rwxr-xr-xsource/l/gtkspell/gtkspell.SlackBuild8
-rwxr-xr-xsource/l/gvfs/gvfs.SlackBuild12
-rwxr-xr-xsource/l/harfbuzz/harfbuzz.SlackBuild8
-rw-r--r--source/l/harfbuzz/slack-desc2
-rwxr-xr-xsource/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild10
-rw-r--r--source/l/hicolor-icon-theme/slack-desc2
-rwxr-xr-xsource/l/icu4c/icu4c.SlackBuild12
-rw-r--r--source/l/icu4c/icu4c.closenull.patch48
-rw-r--r--source/l/ilmbase/ilmbase-2.2.0-no_undefined.patch24
-rwxr-xr-xsource/l/ilmbase/ilmbase.SlackBuild14
-rw-r--r--source/l/ilmbase/ilmbase.no_undefined.diff31
-rw-r--r--source/l/ilmbase/ilmbase.secondary.diff12
-rw-r--r--source/l/ilmbase/ilmbase.ucontext.diff28
-rw-r--r--source/l/imlib/imlib.mitshm.render.diff92
-rw-r--r--source/l/imlib/slack-desc19
-rwxr-xr-xsource/l/iso-codes/iso-codes.SlackBuild8
-rw-r--r--source/l/iso-codes/slack-desc2
-rwxr-xr-xsource/l/jasper/jasper.SlackBuild35
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch928
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch14
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch23
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch17
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch141
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch44
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch61
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch202
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch37
-rw-r--r--source/l/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch41
-rw-r--r--source/l/jasper/patches/jasper-CVE-2014-8137.patch57
-rw-r--r--source/l/jasper/patches/jasper-CVE-2014-8138.patch14
-rw-r--r--source/l/jasper/patches/jasper-CVE-2014-8157.patch12
-rw-r--r--source/l/jasper/patches/jasper-CVE-2014-8158.patch329
-rw-r--r--source/l/jasper/patches/jasper-CVE-2014-9029.patch29
-rw-r--r--source/l/jasper/patches/jpc_dec.c.patch18
-rw-r--r--source/l/jasper/patches/patch-libjasper-stepsizes-overflow.diff14
-rwxr-xr-xsource/l/jemalloc/jemalloc.SlackBuild100
-rw-r--r--source/l/jemalloc/slack-desc19
-rwxr-xr-xsource/l/json-c/json-c.SlackBuild117
-rw-r--r--source/l/json-c/slack-desc19
-rw-r--r--source/l/json-c/unset-vars-build-fix.diff16
-rwxr-xr-xsource/l/judy/judy.SlackBuild (renamed from source/l/qca-gnupg/qca-gnupg.SlackBuild)71
-rw-r--r--source/l/judy/slack-desc19
-rwxr-xr-xsource/l/keybinder/keybinder.SlackBuild63
-rw-r--r--source/l/keybinder/slack-desc2
-rwxr-xr-xsource/l/keyutils/keyutils.SlackBuild18
-rwxr-xr-xsource/l/lcms/lcms.SlackBuild2
-rwxr-xr-xsource/l/lcms2/lcms2.SlackBuild18
-rw-r--r--source/l/lesstif/doinst.sh8
-rw-r--r--source/l/lesstif/lesstif.Makefile.in.patch27
-rw-r--r--source/l/lesstif/lesstif.PutPixel32.patch55
-rw-r--r--source/l/lesstif/lesstif.rendertable.check.diff11
-rw-r--r--source/l/lesstif/lesstif.x86_64.patch39
-rw-r--r--source/l/lesstif/slack-desc19
-rwxr-xr-xsource/l/libao/libao.SlackBuild9
-rwxr-xr-xsource/l/libarchive/libarchive.SlackBuild10
-rwxr-xr-xsource/l/libasyncns/libasyncns.SlackBuild105
-rw-r--r--source/l/libasyncns/slack-desc19
-rwxr-xr-xsource/l/libatasmart/libatasmart.SlackBuild8
-rwxr-xr-xsource/l/libcanberra/libcanberra.SlackBuild14
-rwxr-xr-xsource/l/libcap-ng/libcap-ng.SlackBuild153
-rw-r--r--source/l/libcap-ng/slack-desc19
-rwxr-xr-xsource/l/libcddb/libcddb.SlackBuild2
-rwxr-xr-xsource/l/libcdio-paranoia/libcdio-paranoia.SlackBuild118
-rw-r--r--source/l/libcdio-paranoia/libcdio-paranoia.url1
-rw-r--r--source/l/libcdio-paranoia/slack-desc19
-rwxr-xr-xsource/l/libcdio/libcdio.SlackBuild1
-rwxr-xr-xsource/l/libcroco/libcroco.SlackBuild10
-rwxr-xr-xsource/l/libdiscid/libdiscid.SlackBuild25
-rwxr-xr-xsource/l/libdvdnav/libdvdnav.SlackBuild (renamed from source/l/pil/pil.SlackBuild)61
-rw-r--r--source/l/libdvdnav/slack-desc19
-rwxr-xr-xsource/l/libdvdread/libdvdread.SlackBuild8
-rwxr-xr-xsource/l/libevent/libevent.SlackBuild14
-rwxr-xr-xsource/l/libfakekey/libfakekey.SlackBuild114
-rw-r--r--source/l/libfakekey/slack-desc19
-rwxr-xr-xsource/l/libffi/libffi.SlackBuild4
-rw-r--r--source/l/libffi/libffi.includedir.diff50
-rwxr-xr-xsource/l/libglade/libglade.SlackBuild2
-rwxr-xr-xsource/l/libgnome-keyring/libgnome-keyring.SlackBuild1
-rw-r--r--source/l/libgphoto2/fix-usb_id-callout-for-udev-175.diff12
-rwxr-xr-xsource/l/libgphoto2/libgphoto2.SlackBuild24
-rwxr-xr-xsource/l/libgpod/libgpod.SlackBuild10
-rwxr-xr-xsource/l/libgsf/libgsf.SlackBuild24
-rwxr-xr-xsource/l/libical/libical.SlackBuild16
-rw-r--r--source/l/libical/slack-desc2
-rwxr-xr-xsource/l/libidn/libidn.SlackBuild2
-rwxr-xr-xsource/l/libimobiledevice/libimobiledevice.SlackBuild (renamed from source/l/lesstif/lesstif.SlackBuild)84
-rw-r--r--source/l/libimobiledevice/slack-desc (renamed from source/l/gnome-icon-theme/slack-desc)22
-rwxr-xr-xsource/l/libiodbc/libiodbc.SlackBuild14
-rw-r--r--source/l/libiodbc/libiodbc.disable.rpath.diff11
-rw-r--r--source/l/libiodbc/slack-desc2
-rwxr-xr-xsource/l/libjpeg-turbo/libjpeg-turbo.SlackBuild143
-rw-r--r--source/l/libjpeg-turbo/slack-desc19
-rw-r--r--source/l/libjpeg/slack-desc19
-rwxr-xr-xsource/l/liblastfm/liblastfm.SlackBuild3
-rw-r--r--source/l/liblastfm/slack-desc20
-rwxr-xr-xsource/l/libmng/libmng.SlackBuild16
-rwxr-xr-xsource/l/libmpc/libmpc.SlackBuild4
-rwxr-xr-xsource/l/libmtp/libmtp.SlackBuild19
-rwxr-xr-xsource/l/libnih/libnih.SlackBuild143
-rw-r--r--source/l/libnih/slack-desc (renamed from source/l/libelf/slack-desc)24
-rwxr-xr-xsource/l/libnl3/libnl3.SlackBuild8
-rw-r--r--source/l/libnl3/slack-desc12
-rwxr-xr-xsource/l/libnotify/libnotify.SlackBuild2
-rw-r--r--source/l/libnotify/slack-desc2
-rwxr-xr-xsource/l/libodfgen/libodfgen.SlackBuild125
-rw-r--r--source/l/libodfgen/slack-desc (renamed from source/l/qca-gnupg/slack-desc)24
-rwxr-xr-xsource/l/libogg/libogg.SlackBuild2
-rwxr-xr-xsource/l/libpcap/libpcap.SlackBuild2
-rwxr-xr-xsource/l/libplist/libplist.SlackBuild41
-rwxr-xr-xsource/l/libpng/libpng.SlackBuild150
-rwxr-xr-xsource/l/libproxy/libproxy.SlackBuild11
-rw-r--r--source/l/libraw1394/README3
-rw-r--r--source/l/libraw1394/libraw1394-2.0.7.tar.sign8
-rw-r--r--source/l/libraw1394/libraw1394-2.1.1.tar.sign17
-rwxr-xr-xsource/l/libraw1394/libraw1394.SlackBuild10
-rw-r--r--source/l/libraw1394/slack-desc2
-rwxr-xr-xsource/l/librevenge/librevenge.SlackBuild120
-rw-r--r--source/l/librevenge/slack-desc19
-rwxr-xr-xsource/l/librsvg/librsvg.SlackBuild10
-rwxr-xr-xsource/l/libsecret/libsecret.SlackBuild7
-rwxr-xr-xsource/l/libsigc++/libsigc++.SlackBuild103
-rw-r--r--source/l/libsigc++/slack-desc19
-rwxr-xr-xsource/l/libsigsegv/libsigsegv.SlackBuild (renamed from source/l/libjpeg/libjpeg.SlackBuild)57
-rw-r--r--source/l/libsigsegv/slack-desc19
-rwxr-xr-xsource/l/libsndfile/libsndfile.SlackBuild5
-rwxr-xr-xsource/l/libsoup/libsoup.SlackBuild9
-rwxr-xr-xsource/l/libssh/libssh.SlackBuild9
-rw-r--r--source/l/libssh/libssh.no.example.build.diff11
-rwxr-xr-xsource/l/libssh2/libssh2.SlackBuild121
-rw-r--r--source/l/libssh2/slack-desc (renamed from source/l/qca-cyrus-sasl/slack-desc)24
-rwxr-xr-xsource/l/libtasn1/libtasn1.SlackBuild6
-rw-r--r--source/l/libtiff/libtiff-am-version.patch31
-rw-r--r--source/l/libtiff/libtiff-make-check.patch26
-rwxr-xr-xsource/l/libtiff/libtiff.SlackBuild13
-rw-r--r--source/l/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff3813
-rw-r--r--source/l/libtiff/tiff-3.9.7_CVE-2013-4231.diff23
-rw-r--r--source/l/libtiff/tiff-3.9.7_CVE-2013-4232.diff24
-rw-r--r--source/l/libtiff/tiff-3.9.7_CVE-2013-4244.diff24
-rwxr-xr-xsource/l/libunistring/libunistring.SlackBuild2
-rwxr-xr-xsource/l/libusb-compat/libusb-compat.SlackBuild6
-rw-r--r--source/l/libusb-compat/slack-desc2
-rwxr-xr-xsource/l/libusb/libusb.SlackBuild8
-rw-r--r--source/l/libusb/slack-desc2
-rwxr-xr-xsource/l/libusbmuxd/libusbmuxd.SlackBuild (renamed from source/l/imlib/imlib.SlackBuild)92
-rw-r--r--source/l/libusbmuxd/slack-desc (renamed from source/l/ConsoleKit/slack-desc)24
-rwxr-xr-xsource/l/libvisio/libvisio.SlackBuild109
-rw-r--r--source/l/libvisio/slack-desc19
-rwxr-xr-xsource/l/libvncserver/libvncserver.SlackBuild18
-rw-r--r--source/l/libvncserver/libvncserver.info5
-rw-r--r--source/l/libvncserver/slack-desc4
-rwxr-xr-xsource/l/libvpx/libvpx.SlackBuild109
-rw-r--r--source/l/libvpx/slack-desc19
-rwxr-xr-xsource/l/libwmf/libwmf.SlackBuild2
-rwxr-xr-xsource/l/libwnck/libwnck.SlackBuild8
-rwxr-xr-xsource/l/libwpd/libwpd.SlackBuild23
-rw-r--r--source/l/libwpd/slack-desc2
-rwxr-xr-xsource/l/libwpg/libwpg.SlackBuild108
-rw-r--r--source/l/libwpg/slack-desc19
-rw-r--r--source/l/libxml2/0001-Fix-attribute-decoding-during-XML-schema-validation.diff67
-rwxr-xr-xsource/l/libxml2/libxml2.SlackBuild13
-rwxr-xr-xsource/l/libxslt/libxslt.SlackBuild9
-rwxr-xr-xsource/l/libyaml/libyaml.SlackBuild2
-rwxr-xr-xsource/l/libzip/libzip.SlackBuild37
-rw-r--r--source/l/libzip/slack-desc2
-rwxr-xr-xsource/l/loudmouth/loudmouth.SlackBuild17
-rw-r--r--source/l/loudmouth/loudmouth.ld.gobject.diff11
-rw-r--r--source/l/loudmouth/slack-desc2
-rwxr-xr-xsource/l/lzo/lzo.SlackBuild4
-rwxr-xr-xsource/l/mozilla-nss/mozilla-nss.SlackBuild19
-rwxr-xr-xsource/l/mpfr/mpfr.SlackBuild6
-rw-r--r--source/l/ncurses/ncurses-5.9-20130504-patch.sh106265
-rw-r--r--source/l/ncurses/ncurses-5.9-20141206-patch.sh235455
-rwxr-xr-xsource/l/ncurses/ncurses.SlackBuild15
-rwxr-xr-xsource/l/neon/neon.SlackBuild8
-rw-r--r--source/l/netpbm/config.mk1
-rw-r--r--source/l/netpbm/netpbm-noppmtompeg.patch23
-rw-r--r--source/l/netpbm/netpbm-pnmtops.patch13
-rwxr-xr-xsource/l/netpbm/netpbm.SlackBuild30
-rwxr-xr-xsource/l/newt/newt.SlackBuild104
-rw-r--r--source/l/newt/slack-desc19
-rw-r--r--source/l/notify-python/notify-python-0.1.1-fix-GTK-symbols.patch25
-rwxr-xr-xsource/l/notify-python/notify-python.SlackBuild15
-rwxr-xr-xsource/l/openexr/openexr.SlackBuild5
-rwxr-xr-xsource/l/openjpeg/openjpeg.SlackBuild119
-rw-r--r--source/l/openjpeg/slack-desc19
-rwxr-xr-xsource/l/orc/orc.SlackBuild138
-rw-r--r--source/l/orc/slack-desc19
-rwxr-xr-xsource/l/pango/pango.SlackBuild57
-rw-r--r--source/l/pango/pango.etc.host.location.diff41
-rw-r--r--source/l/pango/update-pango-querymodules85
-rwxr-xr-xsource/l/pangomm/pangomm.SlackBuild102
-rw-r--r--source/l/pangomm/slack-desc18
-rwxr-xr-xsource/l/parted/parted.SlackBuild8
-rwxr-xr-xsource/l/parted/parted.SlackBuild.static8
-rwxr-xr-xsource/l/pcre/pcre.SlackBuild24
-rw-r--r--source/l/pcre/slack-desc2
-rwxr-xr-xsource/l/phonon-gstreamer/phonon-gstreamer.SlackBuild23
-rwxr-xr-xsource/l/phonon-mplayer/phonon-mplayer.SlackBuild116
-rw-r--r--source/l/phonon-mplayer/slack-desc19
-rw-r--r--source/l/phonon-xine/phonon-backend-xine-4.4.4.find.phonon.patch186
-rwxr-xr-xsource/l/phonon-xine/phonon-xine.SlackBuild131
-rwxr-xr-xsource/l/phonon/phonon.SlackBuild39
-rw-r--r--source/l/pil/slack-desc19
-rw-r--r--source/l/pilot-link/pilot-link-0.12.5-redefinePerlsymbols.patch584
-rwxr-xr-xsource/l/pilot-link/pilot-link.SlackBuild19
-rwxr-xr-xsource/l/polkit-gnome/polkit-gnome.SlackBuild8
-rw-r--r--source/l/polkit/05_revert-admin-identities-unix-group-wheel.patch39
-rw-r--r--source/l/polkit/10-org.freedesktop.NetworkManager.pkla6
-rw-r--r--source/l/polkit/10-org.freedesktop.NetworkManager.rules7
-rw-r--r--source/l/polkit/20-plugdev-group-mount-override.pkla6
-rw-r--r--source/l/polkit/20-plugdev-group-mount-override.rules16
-rw-r--r--source/l/polkit/doinst.sh25
-rw-r--r--source/l/polkit/dont-set-wheel-group-as-admin.diff10
-rwxr-xr-xsource/l/polkit/polkit.SlackBuild40
-rwxr-xr-xsource/l/poppler/poppler.SlackBuild9
-rw-r--r--source/l/poppler/slack-desc2
-rw-r--r--source/l/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch79
-rw-r--r--source/l/pulseaudio/0002-allow-autospawn-for-root-default.diff27
-rw-r--r--source/l/pulseaudio/0003-no-root-warn.diff14
-rw-r--r--source/l/pulseaudio/020_no-parallel-make.diff22
-rw-r--r--source/l/pulseaudio/030_posix-completion.diff91
-rw-r--r--source/l/pulseaudio/doinst.sh36
-rw-r--r--source/l/pulseaudio/pulseaudio-autostart.patch13
-rwxr-xr-xsource/l/pulseaudio/pulseaudio.SlackBuild145
-rw-r--r--source/l/pulseaudio/rc.pulseaudio48
-rw-r--r--source/l/pulseaudio/slack-desc19
-rwxr-xr-xsource/l/pycairo/pycairo.SlackBuild6
-rwxr-xr-xsource/l/pycups/pycups.SlackBuild2
-rwxr-xr-xsource/l/pycurl/pycurl.SlackBuild7
-rwxr-xr-xsource/l/pygobject3/pygobject3.SlackBuild106
-rw-r--r--source/l/pygobject3/pygobject3.url1
-rw-r--r--source/l/pygobject3/slack-desc19
-rwxr-xr-xsource/l/pygtk/pygtk.SlackBuild8
-rwxr-xr-xsource/l/python-pillow/python-pillow.SlackBuild107
-rw-r--r--source/l/python-pillow/slack-desc19
-rw-r--r--source/l/qca-ossl/qca-ossl-openssl-1.0.0.patch155
-rw-r--r--source/l/qca-ossl/slack-desc19
-rw-r--r--source/l/qca/0011-use-_DEFAULT_SOURCE-instead-of-_BSD_SOURCE.patch27
-rwxr-xr-xsource/l/qca/qca.SlackBuild42
-rw-r--r--source/l/qca/qca.info2
-rw-r--r--source/l/qt-gstreamer/doinst.sh5
-rwxr-xr-xsource/l/qt-gstreamer/qt-gstreamer.SlackBuild (renamed from source/l/qca-ossl/qca-ossl.SlackBuild)98
-rw-r--r--source/l/qt-gstreamer/slack-desc19
-rw-r--r--source/l/qt/Qt.pc2
-rwxr-xr-xsource/l/qt/qt-nowebkit.SlackBuild320
-rwxr-xr-xsource/l/qt/qt.SlackBuild301
-rw-r--r--source/l/qt/qt.fix.broken.gif.crash.diff16
-rw-r--r--source/l/qt/qt.glib-honor-ExcludeSocketNotifiers-flag.diff63
-rw-r--r--source/l/qt/qt.ld-gold.patch22
-rw-r--r--source/l/qt/qt.qclipboard_delay.patch12
-rw-r--r--source/l/qt/qt.qclipboard_fix_recursive.patch94
-rw-r--r--source/l/qt/qt.qsystemtrayicon-plugin-system.diff1466
-rw-r--r--source/l/qt/qtwebkit/doinst.sh5
-rwxr-xr-xsource/l/qt/qtwebkit/qtwebkit.SlackBuild165
-rw-r--r--source/l/qt/qtwebkit/qtwebkit.putByIndexBeyondVectorLengthWithArrayStorage.diff13
-rw-r--r--source/l/qt/qtwebkit/qtwebkit.url1
-rw-r--r--source/l/qt/qtwebkit/slack-desc19
-rwxr-xr-x[-rw-r--r--]source/l/qt/slack-desc2
-rwxr-xr-xsource/l/raptor2/raptor2.SlackBuild8
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00130
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00249
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00337
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00470
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-005328
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00662
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00765
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00870
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-00945
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-01047
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-01132
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-012150
-rw-r--r--source/l/readline/readline-5.2-patches/readline52-013135
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00143
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00244
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00347
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00445
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00558
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00663
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00747
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00847
-rwxr-xr-xsource/l/readline/readline.SlackBuild42
-rwxr-xr-xsource/l/sbc/sbc.SlackBuild100
-rw-r--r--source/l/sbc/slack-desc20
-rw-r--r--source/l/sdl/SDL_ttf.shaded.text.diff11
-rwxr-xr-xsource/l/sdl/sdl.SlackBuild11
-rwxr-xr-xsource/l/serf/serf.SlackBuild (renamed from source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild)60
-rw-r--r--source/l/serf/slack-desc19
-rwxr-xr-xsource/l/sg3_utils/sg3_utils.SlackBuild6
-rw-r--r--source/l/shared-desktop-ontologies/slack-desc2
-rwxr-xr-xsource/l/shared-mime-info/shared-mime-info.SlackBuild15
-rw-r--r--source/l/shared-mime-info/slack-desc10
-rwxr-xr-xsource/l/sip/sip.SlackBuild16
-rw-r--r--source/l/sip/sip.info2
-rwxr-xr-xsource/l/slang/slang.SlackBuild8
-rw-r--r--source/l/speexdsp/slack-desc19
-rwxr-xr-xsource/l/speexdsp/speexdsp.SlackBuild98
-rw-r--r--source/l/strigi/libstreamanalyzer-0001-Fix-for-non-valid-values-in-Exif-field-ISOSpeedRatin.patch30
-rw-r--r--source/l/strigi/libstreamanalyzer-0002-order-matters-for-systems-that-have-things-already-i.patch33
-rw-r--r--source/l/strigi/libstreamanalyzer-0003-Fix-Krazy-issues.patch1266
-rw-r--r--source/l/strigi/libstreamanalyzer-0004-ffmpeg-Rename-mutex-to-g_mutex.patch50
-rw-r--r--source/l/strigi/libstreamanalyzer-0005-use-rpath-only-when-needed.patch31
-rw-r--r--source/l/strigi/libstreams-0001-Generate-config.h-after-looking-for-dependencies.patch43
-rw-r--r--source/l/strigi/libstreams-0002-Reduce-noise-in-analysis-tools-complain-about-resour.patch65
-rw-r--r--source/l/strigi/libstreams-0003-Build-fix-for-gcc-4.8.patch25
-rw-r--r--source/l/strigi/libstreams-0004-Fix-Krazy-issues.patch276
-rw-r--r--source/l/strigi/libstreams-0005-use-rpath-only-when-needed.patch31
-rw-r--r--source/l/strigi/strigi-fix-ftbfs-with-gcc-4.7.diff16
-rwxr-xr-xsource/l/strigi/strigi.SlackBuild18
-rw-r--r--source/l/svgalib/svgalib-1.9.25-round_gtf_gtfcalc_c.patch11
-rw-r--r--source/l/svgalib/svgalib-1.9.25-vga_getmodenumber.patch11
-rwxr-xr-xsource/l/svgalib/svgalib.SlackBuild11
-rwxr-xr-xsource/l/system-config-printer/system-config-printer.SlackBuild8
-rwxr-xr-xsource/l/taglib/taglib.SlackBuild11
-rw-r--r--source/l/urwid/LICENSE504
-rwxr-xr-xsource/l/urwid/urwid.SlackBuild30
-rwxr-xr-xsource/l/v4l-utils/v4l-utils.SlackBuild9
-rwxr-xr-xsource/l/virtuoso-ose/virtuoso-ose.SlackBuild8
-rwxr-xr-xsource/l/vte/vte.SlackBuild8
-rwxr-xr-xsource/l/wavpack/wavpack.SlackBuild9
-rw-r--r--source/l/xapian-core/slack-desc19
-rwxr-xr-xsource/l/xapian-core/xapian-core.SlackBuild127
549 files changed, 254932 insertions, 124779 deletions
diff --git a/source/l/ConsoleKit/ck-history-don-t-truncate-frequent-output-to-8-chars.patch b/source/l/ConsoleKit/ck-history-don-t-truncate-frequent-output-to-8-chars.patch
deleted file mode 100644
index 89b11d086..000000000
--- a/source/l/ConsoleKit/ck-history-don-t-truncate-frequent-output-to-8-chars.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 803cbdfbd78b66b17ead45b1584d65a258e785bf Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Tue, 24 May 2011 20:58:10 -0400
-Subject: [PATCH] ck-history: don't truncate --frequent output to 8 chars
-
-GDM screenscrapes the output and so we need the full username.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=650330
----
- tools/ck-history.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/ck-history.c b/tools/ck-history.c
-index d02caaa..85d9e6f 100644
---- a/tools/ck-history.c
-+++ b/tools/ck-history.c
-@@ -804,7 +804,7 @@ generate_report_frequent (int uid,
- data = user_counts->data;
-
- username = get_user_name_for_uid (data->uid);
-- g_print ("%-8.8s %u\n", username, data->count);
-+ g_print ("%-8s %u\n", username, data->count);
- g_free (data);
- user_counts = g_list_delete_link (user_counts, user_counts);
- g_free (username);
---
-1.7.9.4
-
diff --git a/source/l/ConsoleKit/consolekit-0.2.10-cleanup_console_tags.patch b/source/l/ConsoleKit/consolekit-0.2.10-cleanup_console_tags.patch
deleted file mode 100644
index d1699d900..000000000
--- a/source/l/ConsoleKit/consolekit-0.2.10-cleanup_console_tags.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# http://patches.ubuntu.com/by-release/extracted/ubuntu/c/consolekit/0.2.10-1ubuntu9/
---- a/src/main.c 2008-07-25 03:19:34.000000000 +0200
-+++ b/src/main.c 2008-07-26 00:25:13.000000000 +0200
-@@ -149,6 +149,43 @@
- unlink (CONSOLE_KIT_PID_FILE);
- }
-
-+#define CONSOLE_TAGS_DIR "/var/run/console"
-+
-+static void
-+delete_console_tags (void)
-+{
-+ GDir *dir;
-+ GError *error = NULL;
-+ const gchar *name;
-+
-+ g_debug ("Cleaning up %s", CONSOLE_TAGS_DIR);
-+
-+ dir = g_dir_open (CONSOLE_TAGS_DIR, 0, &error);
-+ if (dir == NULL) {
-+ g_debug ("Couldn't open directory %s: %s", CONSOLE_TAGS_DIR,
-+ error->message);
-+ g_error_free (error);
-+ return;
-+ }
-+ while ((name = g_dir_read_name (dir)) != NULL) {
-+ gchar *file;
-+ file = g_build_filename (CONSOLE_TAGS_DIR, name, NULL);
-+
-+ g_debug ("Removing tag file: %s", file);
-+ if (unlink (file) == -1) {
-+ g_warning ("Couldn't delete tag file: %s", file);
-+ }
-+ g_free (file);
-+ }
-+}
-+
-+static void
-+cleanup (void)
-+{
-+ delete_console_tags ();
-+ delete_pid ();
-+}
-+
- /* copied from nautilus */
- static int debug_log_pipes[2];
-
-@@ -229,7 +266,7 @@
- snprintf (pid, sizeof (pid), "%lu\n", (long unsigned) getpid ());
- written = write (pf, pid, strlen (pid));
- close (pf);
-- g_atexit (delete_pid);
-+ g_atexit (cleanup);
- } else {
- g_warning ("Unable to write pid file %s: %s",
- CONSOLE_KIT_PID_FILE,
-@@ -312,6 +349,8 @@
-
- g_debug ("initializing console-kit-daemon %s", VERSION);
-
-+ delete_console_tags ();
-+
- create_pid_file ();
-
- manager = ck_manager_new ();
diff --git a/source/l/ConsoleKit/consolekit-0.4.2-revert.patch b/source/l/ConsoleKit/consolekit-0.4.2-revert.patch
deleted file mode 100644
index cb1f461de..000000000
--- a/source/l/ConsoleKit/consolekit-0.4.2-revert.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-Revert upstream http://cgit.freedesktop.org/ConsoleKit/commit/?id=4f88228f31a63c026c424a92827f26ad7535275c
-which renders ConsoleKit unusable.
-
-diff -ur ConsoleKit-0.4.2.orig/src/ck-manager.c ConsoleKit-0.4.2/src/ck-manager.c
---- ConsoleKit-0.4.2.orig/src/ck-manager.c 2010-09-03 16:54:31.000000000 +0300
-+++ ConsoleKit-0.4.2/src/ck-manager.c 2010-09-10 00:02:32.000000000 +0300
-@@ -1660,175 +1660,12 @@
- dbus_g_method_return (context, cookie);
- }
-
--enum {
-- PROP_STRING,
-- PROP_BOOLEAN,
--};
--
--#define CK_TYPE_PARAMETER_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-- G_TYPE_STRING, \
-- G_TYPE_VALUE, \
-- G_TYPE_INVALID))
--
--static gboolean
--_get_parameter (GPtrArray *parameters,
-- const char *name,
-- int prop_type,
-- gpointer *value)
--{
-- gboolean ret;
-- int i;
--
-- if (parameters == NULL) {
-- return FALSE;
-- }
--
-- ret = FALSE;
--
-- for (i = 0; i < parameters->len && ret == FALSE; i++) {
-- gboolean res;
-- GValue val_struct = { 0, };
-- char *prop_name;
-- GValue *prop_val;
--
-- g_value_init (&val_struct, CK_TYPE_PARAMETER_STRUCT);
-- g_value_set_static_boxed (&val_struct, g_ptr_array_index (parameters, i));
--
-- res = dbus_g_type_struct_get (&val_struct,
-- 0, &prop_name,
-- 1, &prop_val,
-- G_MAXUINT);
-- if (! res) {
-- g_debug ("Unable to extract parameter input");
-- goto cont;
-- }
--
-- if (prop_name == NULL) {
-- g_debug ("Skipping NULL parameter");
-- goto cont;
-- }
--
-- if (strcmp (prop_name, name) != 0) {
-- goto cont;
-- }
--
-- switch (prop_type) {
-- case PROP_STRING:
-- if (value != NULL) {
-- *value = g_value_dup_string (prop_val);
-- }
-- break;
-- case PROP_BOOLEAN:
-- if (value != NULL) {
-- *(gboolean *)value = g_value_get_boolean (prop_val);
-- }
-- break;
-- default:
-- g_assert_not_reached ();
-- break;
-- }
--
-- ret = TRUE;
--
-- cont:
-- g_free (prop_name);
-- if (prop_val != NULL) {
-- g_value_unset (prop_val);
-- g_free (prop_val);
-- }
-- }
--
-- return ret;
--}
--
--static gboolean
--_verify_login_session_id_is_local (CkManager *manager,
-- const char *login_session_id)
--{
-- GHashTableIter iter;
-- const char *id;
-- CkSession *session;
--
-- g_return_val_if_fail (CK_IS_MANAGER (manager), FALSE);
--
-- /* If any local session exists for the given login session id
-- then that means a trusted party has vouched for the
-- original login */
--
-- g_debug ("Looking for local sessions for login-session-id=%s", login_session_id);
--
-- session = NULL;
-- g_hash_table_iter_init (&iter, manager->priv->sessions);
-- while (g_hash_table_iter_next (&iter, (gpointer *)&id, (gpointer *)&session)) {
-- if (session != NULL) {
-- gboolean is_local;
-- char *sessid;
--
-- sessid = NULL;
-- g_object_get (session,
-- "login-session-id", &sessid,
-- "is-local", &is_local,
-- NULL);
-- if (g_strcmp0 (sessid, login_session_id) == 0 && is_local) {
-- g_debug ("CkManager: found is-local=true on %s", id);
-- return TRUE;
-- }
-- }
-- }
--
-- return FALSE;
--}
--
--static void
--add_param_boolean (GPtrArray *parameters,
-- const char *key,
-- gboolean value)
--{
-- GValue val = { 0, };
-- GValue param_val = { 0, };
--
-- g_value_init (&val, G_TYPE_BOOLEAN);
-- g_value_set_boolean (&val, value);
-- g_value_init (&param_val, CK_TYPE_PARAMETER_STRUCT);
-- g_value_take_boxed (&param_val,
-- dbus_g_type_specialized_construct (CK_TYPE_PARAMETER_STRUCT));
-- dbus_g_type_struct_set (&param_val,
-- 0, key,
-- 1, &val,
-- G_MAXUINT);
-- g_value_unset (&val);
--
-- g_ptr_array_add (parameters, g_value_get_boxed (&param_val));
--}
--
- static void
- verify_and_open_session_for_leader (CkManager *manager,
- CkSessionLeader *leader,
-- GPtrArray *parameters,
-+ const GPtrArray *parameters,
- DBusGMethodInvocation *context)
- {
-- /* Only allow a local session if originating from an existing
-- local session. Effectively this means that only trusted
-- parties can create local sessions. */
--
-- g_debug ("CkManager: verifying session for leader");
--
-- if (parameters != NULL && ! _get_parameter (parameters, "is-local", PROP_BOOLEAN, NULL)) {
-- gboolean is_local;
-- char *login_session_id;
--
-- g_debug ("CkManager: is-local has not been set, will inherit from existing login-session-id if available");
--
-- is_local = FALSE;
--
-- if (_get_parameter (parameters, "login-session-id", PROP_STRING, (gpointer *) &login_session_id)) {
-- is_local = _verify_login_session_id_is_local (manager, login_session_id);
-- g_debug ("CkManager: found is-local=%s", is_local ? "true" : "false");
-- }
--
-- add_param_boolean (parameters, "is-local", is_local);
-- }
--
- open_session_for_leader (manager,
- leader,
- parameters,
-diff -ur ConsoleKit-0.4.2.orig/tools/ck-collect-session-info.c ConsoleKit-0.4.2/tools/ck-collect-session-info.c
---- ConsoleKit-0.4.2.orig/tools/ck-collect-session-info.c 2010-09-03 16:54:31.000000000 +0300
-+++ ConsoleKit-0.4.2/tools/ck-collect-session-info.c 2010-09-10 00:06:30.000000000 +0300
-@@ -274,7 +274,8 @@
- si->x11_display_device = ck_process_stat_get_tty (xorg_stat);
- ck_process_stat_free (xorg_stat);
-
-- /* don't set is-local here - let the daemon do that */
-+ si->is_local = TRUE;
-+ si->is_local_is_set = TRUE;
-
- g_free (si->remote_host_name);
- si->remote_host_name = NULL;
-@@ -303,6 +304,13 @@
-
- fill_x11_info (si);
-
-+ if (! si->is_local_is_set) {
-+ /* FIXME: how should we set this? */
-+ /* non x11 sessions must be local I guess */
-+ si->is_local = TRUE;
-+ si->is_local_is_set = TRUE;
-+ }
-+
- res = ck_unix_pid_get_login_session_id (si->pid, &si->login_session_id);
- if (! res) {
- si->login_session_id = NULL;
diff --git a/source/l/ConsoleKit/pam-foreground-compat.ck b/source/l/ConsoleKit/pam-foreground-compat.ck
deleted file mode 100644
index 979127272..000000000
--- a/source/l/ConsoleKit/pam-foreground-compat.ck
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-TAGDIR=/var/run/console
-
-[ -n "${CK_SESSION_USER_UID}" ] || exit 1
-
-TAGFILE="${TAGDIR}/$(getent passwd ${CK_SESSION_USER_UID} | cut -f 1 -d:)"
-
-if [ "$1" = "session_added" ]; then
- mkdir -p "${TAGDIR}"
- echo "${CK_SESSION_ID}" >> "$TAGFILE"
-fi
-
-if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then
- sed -i "\%^$CK_SESSION_ID\$%d" "${TAGFILE}"
- [ -s "${TAGFILE}" ] || rm -f "${TAGFILE}"
-fi
diff --git a/source/l/ConsoleKit/ConsoleKit.SlackBuild b/source/l/ConsoleKit2/ConsoleKit2.SlackBuild
index b3d7869d6..4f4e39490 100755
--- a/source/l/ConsoleKit/ConsoleKit.SlackBuild
+++ b/source/l/ConsoleKit2/ConsoleKit2.SlackBuild
@@ -2,8 +2,8 @@
# Slackware build script for ConsoleKit
-# Copyright 2009 Robby Workman, Northport, Alabama, USA
-# Copyright 2010 Eric Hameleers, Eindhoven, NL
+# Copyright 2009, 2015 Robby Workman, Northport, Alabama, USA
+# Copyright 2010, 2015 Eric Hameleers, Eindhoven, NL
# Copyright 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
@@ -24,38 +24,54 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PKGNAM=ConsoleKit
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+PKGNAM=ConsoleKit2
+VERSION=${VERSION:-1.0.0}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:--j6}
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
- *) export ARCH=$( uname -m ) ;;
- esac
-fi
-
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ SLKLDFLAGS=""
LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKLDFLAGS=""
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
+ SLKLDFLAGS=""
LIBDIRSUFFIX=""
fi
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
@@ -63,6 +79,11 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
+zcat $CWD/patches/0001-Revert-Minor-code-refactoring.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/0003-Filter-out-the-kdm-user.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -70,24 +91,7 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Clean up at_console compat files, bug #257761
-zcat $CWD/consolekit-0.2.10-cleanup_console_tags.patch.gz | patch -p1 || exit 1
-
-# ck-history: don't truncate --frequent output to 8 chars
-# GDM screenscrapes the output and so we need the full username.
-# https://bugzilla.gnome.org/show_bug.cgi?id=650330
-zcat $CWD/ck-history-don-t-truncate-frequent-output-to-8-chars.patch.gz | patch -p1 || exit 1
-
-# Revert "Only set sessions to be is-local=true if set by a trusted party"
-# http://cgit.freedesktop.org/ConsoleKit/commit/?id=4f88228f31a63c026c424a92827f26ad7535275c
-# Here are the bug reports:
-# http://bugs.gentoo.org/show_bug.cgi?id=336634
-# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597937
-# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598150
-# https://bugs.freedesktop.org/show_bug.cgi?id=28377
-# This is neither ideal nor maintainable long-term, but I don't know what else
-# we can reasonably do right now... --rworkman
-zcat $CWD/consolekit-0.4.2-revert.patch.gz | patch -p1 || exit 1
+autoreconf -vif
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -98,20 +102,17 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--docdir=/usr/doc/$PKGNAM-$VERSION \
+ --with-rundir=/var/run \
--with-pid-file=/var/run/ConsoleKit/pid \
--enable-docbook-docs \
--enable-pam-module=no \
+ --enable-udev-acl \
--disable-static \
- --build=$ARCH-slackware-linux
+ --build=$TARGET
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG
-mkdir -p $PKG/usr/lib/ConsoleKit/run-session.d
-cat $CWD/pam-foreground-compat.ck > \
- $PKG/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck
-chmod 0755 $PKG/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck
-
# Let's not clobber config files
mv $PKG/etc/ConsoleKit/seats.d/00-primary.seat \
$PKG/etc/ConsoleKit/seats.d/00-primary.seat.new
@@ -121,23 +122,18 @@ mkdir -p $PKG/etc/rc.d
cat $CWD/rc.consolekit > $PKG/etc/rc.d/rc.consolekit.new
chmod 0755 $PKG/etc/rc.d/rc.consolekit.new
+# Remove unused xinitrc.d script:
+rm -r $PKG/etc/X11/xinit/xinitrc.d
+
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-# Compress and link manpages, if any:
-if [ -d $PKG/usr/man ]; then
- ( cd $PKG/usr/man
- for manpagedir in $(find . -type d -name "man*") ; do
- ( cd $manpagedir
- for eachpage in $( find . -type l -maxdepth 1) ; do
- ln -s $( readlink $eachpage ).gz $eachpage.gz
- rm $eachpage
- done
- gzip -9 *.?
- )
- done
- )
-fi
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
diff --git a/source/l/ConsoleKit/doinst.sh b/source/l/ConsoleKit2/doinst.sh
index c13a36e3e..c13a36e3e 100644
--- a/source/l/ConsoleKit/doinst.sh
+++ b/source/l/ConsoleKit2/doinst.sh
diff --git a/source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch b/source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch
new file mode 100644
index 000000000..b6cadb3f8
--- /dev/null
+++ b/source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch
@@ -0,0 +1,477 @@
+From 1e3f7f9862dceec3fa11ee4205c343ed64ce5b63 Mon Sep 17 00:00:00 2001
+From: Eric Koegel <eric.koegel@gmail.com>
+Date: Sat, 22 Aug 2015 10:51:20 +0300
+Subject: [PATCH 1/5] Revert "Minor code refactoring"
+
+This reverts commit bee63889f4a0b8f57807a61d8396346cec8cd5b1.
+
+There are some cases where ConsoleKit2 would crash after successfully
+suspending so revert this commit.
+---
+ src/ck-manager.c | 160 ++++++++++++++++++++++++++++++++++----------------
+ src/ck-session.c | 56 +++++++++++++++++-
+ src/ck-sysdeps-unix.c | 59 -------------------
+ src/ck-sysdeps.h | 6 --
+ tools/Makefile.am | 3 -
+ 5 files changed, 163 insertions(+), 121 deletions(-)
+
+diff --git a/src/ck-manager.c b/src/ck-manager.c
+index db5f906..66da8b2 100644
+--- a/src/ck-manager.c
++++ b/src/ck-manager.c
+@@ -960,11 +960,13 @@ logind_ready_cb (PolkitAuthority *authority,
+ g_object_unref (ret);
+ }
+
++/* We use this to avoid breaking API compability with ConsoleKit1 for
++ * CanStop and CanRestart, but this method emulates how logind
++ * presents it's API */
+ static void
+-get_polkit_permissions_for_callback (CkManager *manager,
+- const char *action,
+- GDBusMethodInvocation *context,
+- GAsyncReadyCallback callback)
++get_polkit_logind_permissions (CkManager *manager,
++ const char *action,
++ GDBusMethodInvocation *context)
+ {
+ const char *sender;
+ PolkitSubject *subject;
+@@ -980,37 +982,96 @@ get_polkit_permissions_for_callback (CkManager *manager,
+ NULL,
+ 0,
+ NULL,
+- callback,
++ (GAsyncReadyCallback) logind_ready_cb,
+ context);
+ g_object_unref (subject);
+ }
+
+-/* We use this to avoid breaking API compability with ConsoleKit1 for
+- * CanStop and CanRestart, but this method emulates how logind
+- * presents it's API */
+-static void
+-get_polkit_logind_permissions (CkManager *manager,
+- const char *action,
+- GDBusMethodInvocation *context)
+-{
+- get_polkit_permissions_for_callback (manager,
+- action,
+- context,
+- (GAsyncReadyCallback) logind_ready_cb);
+-}
+-
+ static void
+ get_polkit_permissions (CkManager *manager,
+ const char *action,
+ GDBusMethodInvocation *context)
+ {
+- get_polkit_permissions_for_callback (manager,
+- action,
+- context,
+- (GAsyncReadyCallback) ready_cb);
++ const char *sender;
++ PolkitSubject *subject;
++
++ g_debug ("get permissions for action %s", action);
++
++ sender = g_dbus_method_invocation_get_sender (context);
++ subject = polkit_system_bus_name_new (sender);
++
++ polkit_authority_check_authorization (manager->priv->pol_ctx,
++ subject,
++ action,
++ NULL,
++ 0,
++ NULL,
++ (GAsyncReadyCallback) ready_cb,
++ context);
++ g_object_unref (subject);
+ }
+ #endif
+
++/* adapted from PolicyKit */
++static gboolean
++get_caller_info (CkManager *manager,
++ const char *sender,
++ uid_t *calling_uid,
++ pid_t *calling_pid)
++{
++ gboolean res = FALSE;
++ GVariant *value = NULL;
++ GError *error = NULL;
++
++ if (sender == NULL) {
++ g_debug ("sender == NULL");
++ goto out;
++ }
++
++ if (manager->priv->bus_proxy == NULL) {
++ g_debug ("manager->priv->bus_proxy == NULL");
++ goto out;
++ }
++
++ value = g_dbus_proxy_call_sync (manager->priv->bus_proxy, "GetConnectionUnixUser",
++ g_variant_new ("(s)", sender),
++ G_DBUS_CALL_FLAGS_NONE,
++ 2000,
++ NULL,
++ &error);
++
++ if (value == NULL) {
++ g_warning ("GetConnectionUnixUser() failed: %s", error->message);
++ g_error_free (error);
++ goto out;
++ }
++ g_variant_get (value, "(u)", calling_uid);
++ g_variant_unref (value);
++
++ value = g_dbus_proxy_call_sync (manager->priv->bus_proxy, "GetConnectionUnixProcessID",
++ g_variant_new ("(s)", sender),
++ G_DBUS_CALL_FLAGS_NONE,
++ 2000,
++ NULL,
++ &error);
++
++ if (value == NULL) {
++ g_warning ("GetConnectionUnixProcessID() failed: %s", error->message);
++ g_error_free (error);
++ goto out;
++ }
++ g_variant_get (value, "(u)", calling_pid);
++ g_variant_unref (value);
++
++ res = TRUE;
++
++ g_debug ("uid = %d", *calling_uid);
++ g_debug ("pid = %d", *calling_pid);
++
++out:
++ return res;
++}
++
+ static char *
+ get_user_name (uid_t uid)
+ {
+@@ -1118,7 +1179,7 @@ check_rbac_permissions (CkManager *manager,
+
+ username = NULL;
+ sender = g_dbus_method_invocation_get_sender (context);
+- res = get_caller_info (manager->priv->bus_proxy,
++ res = get_caller_info (manager,
+ sender,
+ &uid,
+ &pid);
+@@ -2055,7 +2116,7 @@ dbus_inhibit (ConsoleKitManager *ckmanager,
+ priv = CK_MANAGER_GET_PRIVATE (CK_MANAGER (ckmanager));
+
+ sender = g_dbus_method_invocation_get_sender (context);
+- res = get_caller_info (priv->bus_proxy,
++ res = get_caller_info (CK_MANAGER (ckmanager),
+ sender,
+ &uid,
+ &pid);
+@@ -2698,7 +2759,7 @@ create_session_for_sender (CkManager *manager,
+
+ g_debug ("CkManager: create session for sender: %s", sender);
+
+- res = get_caller_info (manager->priv->bus_proxy,
++ res = get_caller_info (manager,
+ sender,
+ &uid,
+ &pid);
+@@ -2767,7 +2828,7 @@ dbus_get_session_for_cookie (ConsoleKitManager *ckmanager,
+
+ sender = g_dbus_method_invocation_get_sender (context);
+
+- res = get_caller_info (manager->priv->bus_proxy,
++ res = get_caller_info (manager,
+ sender,
+ &calling_uid,
+ &calling_pid);
+@@ -2852,7 +2913,7 @@ dbus_get_session_for_unix_process (ConsoleKitManager *ckmanager,
+ TRACE ();
+ g_debug ("pid: %u", pid);
+
+- res = get_caller_info (manager->priv->bus_proxy,
++ res = get_caller_info (manager,
+ sender,
+ &calling_uid,
+ &calling_pid);
+@@ -2900,7 +2961,7 @@ dbus_get_current_session (ConsoleKitManager *ckmanager,
+
+ g_debug ("CkManager: get current session");
+
+- res = get_caller_info (manager->priv->bus_proxy,
++ res = get_caller_info (manager,
+ sender,
+ &calling_uid,
+ &calling_pid);
+@@ -3100,7 +3161,7 @@ dbus_close_session (ConsoleKitManager *ckmanager,
+ manager = CK_MANAGER (ckmanager);
+
+ sender = g_dbus_method_invocation_get_sender (context);
+- res = get_caller_info (manager->priv->bus_proxy,
++ res = get_caller_info (manager,
+ sender,
+ &calling_uid,
+ &calling_pid);
+@@ -3443,17 +3504,6 @@ create_seats (CkManager *manager)
+ }
+
+ static void
+-cancel_timeout_and_call_system_action (CkManagerPrivate *priv)
+-{
+- /* The inhibit lock for this action was removed.
+- * Stop the timeout and call the system action now.
+- */
+- g_source_remove (priv->system_action_idle_id);
+- priv->system_action_idle_id = 0;
+- system_action_idle_cb (priv->system_action_data);
+-}
+-
+-static void
+ on_inhibit_manager_changed_event (CkInhibitManager *manager, gint inhibit_mode, gint event, gboolean enabled, gpointer user_data)
+ {
+ CkManagerPrivate *priv;
+@@ -3472,6 +3522,17 @@ on_inhibit_manager_changed_event (CkInhibitManager *manager, gint inhibit_mode,
+ return;
+ }
+
++ /* this system action must be for a sleep or shutdown operation */
++ if (priv->system_action_data->signal != PREPARE_FOR_SLEEP &&
++ priv->system_action_data->signal != PREPARE_FOR_SHUTDOWN) {
++ return;
++ }
++
++ /* the inhibit change must be for sleep or shutdown */
++ if (event != CK_INHIBIT_EVENT_SUSPEND && event != CK_INHIBIT_EVENT_SHUTDOWN) {
++ return;
++ }
++
+ /* must be a delay inhibitor */
+ if (inhibit_mode != CK_INHIBIT_MODE_DELAY) {
+ return;
+@@ -3482,17 +3543,12 @@ on_inhibit_manager_changed_event (CkInhibitManager *manager, gint inhibit_mode,
+ return;
+ }
+
+- /* Did we stop inhibiting sleep? */
+- if (priv->system_action_data->signal == PREPARE_FOR_SLEEP &&
+- event == CK_INHIBIT_EVENT_SUSPEND) {
+- cancel_timeout_and_call_system_action (priv);
+- }
+-
+- /* Did we stop inhibiting shutdown? */
+- if (priv->system_action_data->signal == PREPARE_FOR_SHUTDOWN &&
+- event == CK_INHIBIT_EVENT_SHUTDOWN) {
+- cancel_timeout_and_call_system_action (priv);
+- }
++ /* The inhibit lock for this action was removed.
++ * Stop the timeout and call the system action now.
++ */
++ g_source_remove (priv->system_action_idle_id);
++ priv->system_action_idle_id = 0;
++ system_action_idle_cb (priv->system_action_data);
+ }
+
+ static void
+diff --git a/src/ck-session.c b/src/ck-session.c
+index 478dce2..ca0f8ca 100644
+--- a/src/ck-session.c
++++ b/src/ck-session.c
+@@ -248,6 +248,60 @@ dbus_unlock (ConsoleKitSession *cksession,
+ return TRUE;
+ }
+
++/* adapted from PolicyKit */
++static gboolean
++get_caller_info (CkSession *session,
++ const char *sender,
++ uid_t *calling_uid,
++ pid_t *calling_pid)
++{
++ gboolean res = FALSE;
++ GVariant *value = NULL;
++ GError *error = NULL;
++
++ if (sender == NULL) {
++ goto out;
++ }
++
++ value = g_dbus_proxy_call_sync (session->priv->bus_proxy, "GetConnectionUnixUser",
++ g_variant_new ("(s)", sender),
++ G_DBUS_CALL_FLAGS_NONE,
++ 2000,
++ NULL,
++ &error);
++
++ if (value == NULL) {
++ g_warning ("GetConnectionUnixUser() failed: %s", error->message);
++ g_error_free (error);
++ goto out;
++ }
++ g_variant_get (value, "(u)", calling_uid);
++ g_variant_unref (value);
++
++ value = g_dbus_proxy_call_sync (session->priv->bus_proxy, "GetConnectionUnixProcessID",
++ g_variant_new ("(s)", sender),
++ G_DBUS_CALL_FLAGS_NONE,
++ 2000,
++ NULL,
++ &error);
++
++ if (value == NULL) {
++ g_warning ("GetConnectionUnixProcessID() failed: %s", error->message);
++ g_error_free (error);
++ goto out;
++ }
++ g_variant_get (value, "(u)", calling_pid);
++ g_variant_unref (value);
++
++ res = TRUE;
++
++ g_debug ("uid = %d", *calling_uid);
++ g_debug ("pid = %d", *calling_pid);
++
++out:
++ return res;
++}
++
+ static gboolean
+ session_set_idle_hint_internal (CkSession *session,
+ gboolean idle_hint)
+@@ -326,7 +380,7 @@ dbus_set_idle_hint (ConsoleKitSession *cksession,
+
+ sender = g_dbus_method_invocation_get_sender (context);
+
+- res = get_caller_info (session->priv->bus_proxy,
++ res = get_caller_info (session,
+ sender,
+ &calling_uid,
+ &calling_pid);
+diff --git a/src/ck-sysdeps-unix.c b/src/ck-sysdeps-unix.c
+index 87333d1..0f751b9 100644
+--- a/src/ck-sysdeps-unix.c
++++ b/src/ck-sysdeps-unix.c
+@@ -132,65 +132,6 @@ ck_get_socket_peer_credentials (int socket_fd,
+ return ret;
+ }
+
+-/* adapted from PolicyKit */
+-gboolean
+-get_caller_info (GDBusProxy *bus_proxy,
+- const char *sender,
+- uid_t *calling_uid,
+- pid_t *calling_pid)
+-{
+- gboolean res = FALSE;
+- GVariant *value = NULL;
+- GError *error = NULL;
+-
+- if (sender == NULL) {
+- g_debug ("sender == NULL");
+- goto out;
+- }
+-
+- if (bus_proxy == NULL) {
+- g_debug ("bus_proxy == NULL");
+- goto out;
+- }
+-
+- value = g_dbus_proxy_call_sync (bus_proxy, "GetConnectionUnixUser",
+- g_variant_new ("(s)", sender),
+- G_DBUS_CALL_FLAGS_NONE,
+- 2000,
+- NULL,
+- &error);
+-
+- if (value == NULL) {
+- g_warning ("GetConnectionUnixUser() failed: %s", error->message);
+- g_error_free (error);
+- goto out;
+- }
+- g_variant_get (value, "(u)", calling_uid);
+- g_variant_unref (value);
+-
+- value = g_dbus_proxy_call_sync (bus_proxy, "GetConnectionUnixProcessID",
+- g_variant_new ("(s)", sender),
+- G_DBUS_CALL_FLAGS_NONE,
+- 2000,
+- NULL,
+- &error);
+-
+- if (value == NULL) {
+- g_warning ("GetConnectionUnixProcessID() failed: %s", error->message);
+- g_error_free (error);
+- goto out;
+- }
+- g_variant_get (value, "(u)", calling_pid);
+- g_variant_unref (value);
+-
+- res = TRUE;
+-
+- g_debug ("uid = %d", *calling_uid);
+- g_debug ("pid = %d", *calling_pid);
+-
+-out:
+- return res;
+-}
+
+ /*
+ * getfd.c
+diff --git a/src/ck-sysdeps.h b/src/ck-sysdeps.h
+index 66df581..bc32631 100644
+--- a/src/ck-sysdeps.h
++++ b/src/ck-sysdeps.h
+@@ -24,7 +24,6 @@
+ #include "config.h"
+
+ #include <glib.h>
+-#include <gio/gio.h>
+
+ G_BEGIN_DECLS
+
+@@ -55,11 +54,6 @@ gboolean ck_get_socket_peer_credentials (int socket_fd,
+ uid_t *uid,
+ GError **error);
+
+-gboolean get_caller_info (GDBusProxy *bus_proxy,
+- const char *sender,
+- uid_t *calling_uid,
+- pid_t *calling_pid);
+-
+ int ck_get_a_console_fd (void);
+
+ gboolean ck_fd_is_a_console (int fd);
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 69dd1eb..81f4d1f 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -131,7 +131,6 @@ ck_collect_session_info_SOURCES = \
+ $(NULL)
+
+ ck_collect_session_info_LDADD = \
+- $(CONSOLE_KIT_LIBS) \
+ $(TOOLS_LIBS) \
+ $(top_builddir)/src/libck.la \
+ $(NULL)
+@@ -141,7 +140,6 @@ ck_get_x11_server_pid_SOURCES = \
+ $(NULL)
+
+ ck_get_x11_server_pid_LDADD = \
+- $(CONSOLE_KIT_LIBS) \
+ $(TOOLS_LIBS) \
+ $(XLIB_LIBS) \
+ $(top_builddir)/src/libck.la \
+@@ -152,7 +150,6 @@ ck_get_x11_display_device_SOURCES = \
+ $(NULL)
+
+ ck_get_x11_display_device_LDADD = \
+- $(CONSOLE_KIT_LIBS) \
+ $(TOOLS_LIBS) \
+ $(top_builddir)/src/libck.la \
+ $(NULL)
+--
+2.5.1
+
diff --git a/source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch b/source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch
new file mode 100644
index 000000000..2c46bbd8e
--- /dev/null
+++ b/source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch
@@ -0,0 +1,42 @@
+From b045a4245199b12dfc04f03b22bc1e9b1f80aae9 Mon Sep 17 00:00:00 2001
+From: Robby Workman <rworkman@slackware.com>
+Date: Sun, 23 Aug 2015 16:53:52 -0500
+Subject: [PATCH 2/5] Fix some libdir/scripts stuff missed in 4d87a25ea0af
+
+---
+ src/ck-seat.c | 2 +-
+ tools/Makefile.am | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/ck-seat.c b/src/ck-seat.c
+index ead6425..47e6933 100644
+--- a/src/ck-seat.c
++++ b/src/ck-seat.c
+@@ -1443,7 +1443,7 @@ ck_seat_run_programs (CkSeat *seat,
+ g_assert(n <= G_N_ELEMENTS(extra_env));
+
+ ck_run_programs (SYSCONFDIR "/ConsoleKit/run-seat.d", action, extra_env);
+- ck_run_programs (PREFIX "/lib/ConsoleKit/run-seat.d", action, extra_env);
++ ck_run_programs (LIBDIR "/ConsoleKit/run-seat.d", action, extra_env);
+
+ for (n = 0; extra_env[n] != NULL; n++) {
+ g_free (extra_env[n]);
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 69dd1eb..d61b845 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -171,9 +171,9 @@ udev_acl_CFLAGS = \
+ $(NULL)
+
+ install-exec-hook:
+- mkdir -p $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d
++ mkdir -p $(DESTDIR)$(libdir)/ConsoleKit/run-seat.d
+ mkdir -p $(DESTDIR)$(UDEVDIR)
+- ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d/udev-acl.ck
++ ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(libdir)/ConsoleKit/run-seat.d/udev-acl.ck
+ ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(UDEVDIR)/udev-acl
+ endif
+
+--
+2.5.1
+
diff --git a/source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch b/source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch
new file mode 100644
index 000000000..c0ec63d8d
--- /dev/null
+++ b/source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch
@@ -0,0 +1,29 @@
+From f848c1de94ef2f5ae7d53358d30e26400a69d3d4 Mon Sep 17 00:00:00 2001
+From: Ivailo Monev <xakepa10@gmail.com>
+Date: Mon, 24 Aug 2015 20:18:50 +0300
+Subject: [PATCH 5/5] Filter out the kdm user
+
+---
+ src/ck-manager.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/ck-manager.c b/src/ck-manager.c
+index 66da8b2..4a6e511 100644
+--- a/src/ck-manager.c
++++ b/src/ck-manager.c
+@@ -1111,9 +1111,10 @@ session_is_real_user (CkSession *session,
+
+ username = get_user_name (uid);
+
+- /* filter out GDM/SDDM user */
++ /* filter out GDM/SDDM/KDM user */
+ if (g_strcmp0 (username, "gdm") == 0 ||
+- g_strcmp0 (username, "sddm") == 0) {
++ g_strcmp0 (username, "sddm") == 0 ||
++ g_strcmp0 (username, "kdm") == 0) {
+ ret = FALSE;
+ goto out;
+ }
+--
+2.5.1
+
diff --git a/source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch b/source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch
new file mode 100644
index 000000000..ee3b1e23b
--- /dev/null
+++ b/source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch
@@ -0,0 +1,22 @@
+From 22958330535c9e26ed537d1568925f64e3bafe4d Mon Sep 17 00:00:00 2001
+From: Eric Hameleers <alien@slackware.com>
+Date: Thu, 10 Sep 2015 14:19:43 +0200
+Subject: [PATCH] Apply overlooked PREFIX/lib -> LIBDIR substitution
+
+---
+ src/ck-session.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ck-session.c b/src/ck-session.c
+index ca0f8ca..1b58889 100644
+--- a/src/ck-session.c
++++ b/src/ck-session.c
+@@ -1273,7 +1273,7 @@ ck_session_run_programs (CkSession *session,
+ g_assert(n <= G_N_ELEMENTS(extra_env));
+
+ ck_run_programs (SYSCONFDIR "/ConsoleKit/run-session.d", action, extra_env);
+- ck_run_programs (PREFIX "/lib/ConsoleKit/run-session.d", action, extra_env);
++ ck_run_programs (LIBDIR "/ConsoleKit/run-session.d", action, extra_env);
+
+ for (n = 0; extra_env[n] != NULL; n++) {
+ g_free (extra_env[n]);
diff --git a/source/l/ConsoleKit/rc.consolekit b/source/l/ConsoleKit2/rc.consolekit
index a1937569c..a1937569c 100644
--- a/source/l/ConsoleKit/rc.consolekit
+++ b/source/l/ConsoleKit2/rc.consolekit
diff --git a/source/l/phonon-xine/slack-desc b/source/l/ConsoleKit2/slack-desc
index 59ee7f0b6..508b73205 100644
--- a/source/l/phonon-xine/slack-desc
+++ b/source/l/ConsoleKit2/slack-desc
@@ -5,15 +5,15 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler------------------------------------------------------|
-phonon-xine: phonon-xine (xine backend for phonon)
-phonon-xine:
-phonon-xine: This package provides an additional xine backend for the phonon
-phonon-xine: multimedia framework used in KDE.
-phonon-xine:
-phonon-xine: For more information, visit:
-phonon-xine: https://projects.kde.org/projects/kdesupport/phonon/phonon-xine
-phonon-xine:
-phonon-xine:
-phonon-xine:
-phonon-xine:
+ |-----handy-ruler-----------------------------------------------------|
+ConsoleKit2: ConsoleKit2 (user, login, and seat tracking framework)
+ConsoleKit2:
+ConsoleKit2: ConsoleKit2 is a framework for defining and tracking users, login
+ConsoleKit2: sessions, and seats.
+ConsoleKit2:
+ConsoleKit2: Homepage: https://github.com/ConsoleKit2/ConsoleKit2
+ConsoleKit2:
+ConsoleKit2:
+ConsoleKit2:
+ConsoleKit2:
+ConsoleKit2:
diff --git a/source/l/GConf/GConf.SlackBuild b/source/l/GConf/GConf.SlackBuild
index 2e1b1b5db..727160c33 100755
--- a/source/l/GConf/GConf.SlackBuild
+++ b/source/l/GConf/GConf.SlackBuild
@@ -24,13 +24,13 @@
PKGNAM=GConf
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:--j6}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
@@ -64,7 +64,12 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+zcat $CWD/patches/0001-mconvert-enable-recursive-scheme-lookup-and-fix-a-cr.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/0002-dbus-Don-t-spew-to-console-when-unable-to-connect-to.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/0003-gsettings-data-convert-Warn-and-fix-invalid-schema-p.patch.gz | patch -p1 --verbose || exit 1
+
# This should be fixed in 3.2.6, I hope - it's a bug exposed by glib-2.32
+# (but it wasn't)
sed -i '/INTROSPECTION_SCANNER_ARGS/s#$# -lgmodule-2.0#' gconf/Makefile.in
# --disable-orbit means we use DBUS for IPC
diff --git a/source/l/GConf/patches/0001-mconvert-enable-recursive-scheme-lookup-and-fix-a-cr.patch b/source/l/GConf/patches/0001-mconvert-enable-recursive-scheme-lookup-and-fix-a-cr.patch
new file mode 100644
index 000000000..7d3a11595
--- /dev/null
+++ b/source/l/GConf/patches/0001-mconvert-enable-recursive-scheme-lookup-and-fix-a-cr.patch
@@ -0,0 +1,49 @@
+From 98ff7acca7595f508b094506195aeffaf2e8b74c Mon Sep 17 00:00:00 2001
+From: Stefan Sauer <ensonic@users.sf.net>
+Date: Wed, 23 Jan 2013 08:11:18 +0100
+Subject: [PATCH 01/11] mconvert: enable recursive scheme lookup and fix a
+ crasher
+
+The recursive scheme lookup is needed to scan the whole settings path. The crash
+would happen in the case of a misconfiguration (e.g. building gconf from source
+and running uninstalled while the configure settings don't match the one used to
+create the installed package).
+---
+ gsettings/gsettings-data-convert.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c
+index a8af942..9b2d1d0 100644
+--- a/gsettings/gsettings-data-convert.c
++++ b/gsettings/gsettings-data-convert.c
+@@ -22,6 +22,7 @@
+ #include <string.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+
+@@ -90,6 +91,10 @@ get_writable_client (void)
+ GSList *addresses;
+
+ addresses = get_writable_source_path ();
++ if (!addresses) {
++ g_printf("No writable gconf locations found\n");
++ exit (1);
++ }
+ engine = gconf_engine_get_local_for_addresses (addresses, NULL);
+ gconf_address_list_free (addresses);
+
+@@ -155,7 +160,7 @@ handle_file (const gchar *filename)
+
+ schema_path = g_strsplit (groups[i], ":", 2);
+
+- schema = g_settings_schema_source_lookup (source, schema_path[0], FALSE);
++ schema = g_settings_schema_source_lookup (source, schema_path[0], TRUE);
+ if (schema == NULL)
+ {
+ if (verbose)
+--
+2.6.4
+
diff --git a/source/l/GConf/patches/0002-dbus-Don-t-spew-to-console-when-unable-to-connect-to.patch b/source/l/GConf/patches/0002-dbus-Don-t-spew-to-console-when-unable-to-connect-to.patch
new file mode 100644
index 000000000..25dc4456c
--- /dev/null
+++ b/source/l/GConf/patches/0002-dbus-Don-t-spew-to-console-when-unable-to-connect-to.patch
@@ -0,0 +1,87 @@
+From b0895e1998ebc83ab030ec0f17c0685439f5b404 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Mon, 15 Apr 2013 09:57:34 -0400
+Subject: [PATCH 02/11] dbus: Don't spew to console when unable to connect to
+ dbus daemon
+
+Instead pass the error up for the caller to decide what to do.
+
+This prevent untrappable warning messages from showing up at the
+console if gconftool --makefile-install-rule is called.
+---
+ gconf/gconf-dbus.c | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c
+index 5610fcf..048e3ea 100644
+--- a/gconf/gconf-dbus.c
++++ b/gconf/gconf-dbus.c
+@@ -105,7 +105,7 @@ static GHashTable *engines_by_db = NULL;
+ static GHashTable *engines_by_address = NULL;
+ static gboolean dbus_disconnected = FALSE;
+
+-static gboolean ensure_dbus_connection (void);
++static gboolean ensure_dbus_connection (GError **error);
+ static gboolean ensure_service (gboolean start_if_not_found,
+ GError **err);
+ static gboolean ensure_database (GConfEngine *conf,
+@@ -383,7 +383,7 @@ gconf_engine_detach (GConfEngine *conf)
+ }
+
+ static gboolean
+-ensure_dbus_connection (void)
++ensure_dbus_connection (GError **err)
+ {
+ DBusError error;
+
+@@ -392,7 +392,9 @@ ensure_dbus_connection (void)
+
+ if (dbus_disconnected)
+ {
+- g_warning ("The connection to DBus was broken. Can't reinitialize it.");
++ g_set_error (err, GCONF_ERROR,
++ GCONF_ERROR_NO_SERVER,
++ "The connection to DBus was broken. Can't reinitialize it.");
+ return FALSE;
+ }
+
+@@ -402,7 +404,10 @@ ensure_dbus_connection (void)
+
+ if (!global_conn)
+ {
+- g_warning ("Client failed to connect to the D-BUS daemon:\n%s", error.message);
++ g_set_error (err, GCONF_ERROR,
++ GCONF_ERROR_NO_SERVER,
++ "Client failed to connect to the D-BUS daemon:\n%s",
++ error.message);
+
+ dbus_error_free (&error);
+ return FALSE;
+@@ -431,13 +436,8 @@ ensure_service (gboolean start_if_not_found,
+
+ if (global_conn == NULL)
+ {
+- if (!ensure_dbus_connection ())
+- {
+- g_set_error (err, GCONF_ERROR,
+- GCONF_ERROR_NO_SERVER,
+- _("No D-BUS daemon running\n"));
+- return FALSE;
+- }
++ if (!ensure_dbus_connection (err))
++ return FALSE;
+
+ g_assert (global_conn != NULL);
+ }
+@@ -2512,7 +2512,7 @@ gconf_ping_daemon (void)
+ {
+ if (global_conn == NULL)
+ {
+- if (!ensure_dbus_connection ())
++ if (!ensure_dbus_connection (NULL))
+ {
+ return FALSE;
+ }
+--
+2.6.4
+
diff --git a/source/l/GConf/patches/0003-gsettings-data-convert-Warn-and-fix-invalid-schema-p.patch b/source/l/GConf/patches/0003-gsettings-data-convert-Warn-and-fix-invalid-schema-p.patch
new file mode 100644
index 000000000..130c2bf35
--- /dev/null
+++ b/source/l/GConf/patches/0003-gsettings-data-convert-Warn-and-fix-invalid-schema-p.patch
@@ -0,0 +1,45 @@
+From 405f865c07261a95c8c9a09a84ab679c6dd0a330 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Thu, 24 Oct 2013 16:27:24 -0400
+Subject: [PATCH 03/11] gsettings-data-convert: Warn (and fix) invalid schema
+ paths
+
+See https://bugzilla.gnome.org/show_bug.cgi?id=704802
+
+https://bugzilla.gnome.org/show_bug.cgi?id=710836
+---
+ gsettings/gsettings-data-convert.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c
+index 9b2d1d0..160ed41 100644
+--- a/gsettings/gsettings-data-convert.c
++++ b/gsettings/gsettings-data-convert.c
+@@ -182,7 +182,23 @@ handle_file (const gchar *filename)
+ }
+
+ if (schema_path[1] != NULL)
+- settings = g_settings_new_with_path (schema_path[0], schema_path[1]);
++ {
++ char *compat_path_alloced = NULL;
++ char *compat_path;
++ /* Work around broken .convert files:
++ https://bugzilla.gnome.org/show_bug.cgi?id=704802
++ */
++ if (!g_str_has_suffix (schema_path[1], "/"))
++ {
++ g_warning ("Schema file '%s' has missing trailing / in '%s'",
++ filename, schema_path[1]);
++ compat_path = compat_path_alloced = g_strconcat (schema_path[1], "/", NULL);
++ }
++ else
++ compat_path = schema_path[1];
++ settings = g_settings_new_with_path (schema_path[0], compat_path);
++ g_free (compat_path_alloced);
++ }
+ else
+ settings = g_settings_new (schema_path[0]);
+
+--
+2.6.4
+
diff --git a/source/l/GConf/patches/0011-Fix-some-compiler-warnings.patch b/source/l/GConf/patches/0011-Fix-some-compiler-warnings.patch
new file mode 100644
index 000000000..7595b3fa9
--- /dev/null
+++ b/source/l/GConf/patches/0011-Fix-some-compiler-warnings.patch
@@ -0,0 +1,303 @@
+From 0780809731c8ab1c364202b1900d3df106b28626 Mon Sep 17 00:00:00 2001
+From: Robert Ancell <robert.ancell@canonical.com>
+Date: Wed, 14 Oct 2015 10:09:49 +0100
+Subject: [PATCH 11/11] Fix some compiler warnings
+
+---
+ backends/markup-tree.c | 3 +--
+ backends/xml-entry.c | 11 ++++-------
+ backends/xml-test.c | 4 +---
+ defaults/gconf-defaults-main.c | 4 +---
+ defaults/gconf-defaults.c | 5 +----
+ examples/basic-gconf-app.c | 10 +++++-----
+ examples/complex-gconf-app.c | 6 +++---
+ gconf/gconf-client.c | 2 --
+ gconf/gconf-internals.c | 2 --
+ gconf/gconfd.c | 4 ----
+ gconf/gconftool.c | 2 --
+ gconf/testgconfclient.c | 4 ++--
+ gsettings/gsettings-data-convert.c | 2 --
+ 13 files changed, 18 insertions(+), 41 deletions(-)
+
+diff --git a/backends/markup-tree.c b/backends/markup-tree.c
+index 4857cae..be975f4 100644
+--- a/backends/markup-tree.c
++++ b/backends/markup-tree.c
+@@ -3116,11 +3116,10 @@ parse_li_element (GMarkupParseContext *context,
+ ParseInfo *info,
+ GError **error)
+ {
+- ParseState current_state;
+ GConfValue *value;
+ GConfValue *list;
+
+- current_state = peek_state (info);
++ peek_state (info);
+
+ push_state (info, STATE_LI);
+
+diff --git a/backends/xml-entry.c b/backends/xml-entry.c
+index 738883f..129c032 100644
+--- a/backends/xml-entry.c
++++ b/backends/xml-entry.c
+@@ -498,10 +498,8 @@ node_set_schema_value(xmlNodePtr node,
+
+ if (gconf_schema_get_long_desc (sc))
+ {
+- xmlNodePtr ld_node;
+-
+- ld_node = xmlNewChild(found, NULL, (xmlChar *)"longdesc",
+- (xmlChar *)gconf_schema_get_long_desc (sc));
++ xmlNewChild(found, NULL, (xmlChar *)"longdesc",
++ (xmlChar *)gconf_schema_get_long_desc (sc));
+ }
+ }
+
+@@ -536,7 +534,6 @@ node_set_value(xmlNodePtr node, GConfValue* value)
+ break;
+ case GCONF_VALUE_STRING:
+ {
+- xmlNodePtr child;
+ xmlChar* encoded;
+
+ free_childs(node);
+@@ -544,8 +541,8 @@ node_set_value(xmlNodePtr node, GConfValue* value)
+ encoded = xmlEncodeEntitiesReentrant(node->doc,
+ (xmlChar *)gconf_value_get_string(value));
+
+- child = xmlNewChild(node, NULL, (xmlChar *)"stringvalue",
+- encoded);
++ xmlNewChild(node, NULL, (xmlChar *)"stringvalue",
++ encoded);
+ xmlFree(encoded);
+ }
+ break;
+diff --git a/backends/xml-test.c b/backends/xml-test.c
+index 687d558..a57fc00 100644
+--- a/backends/xml-test.c
++++ b/backends/xml-test.c
+@@ -33,9 +33,7 @@ GConfBackendVTable* gconf_backend_get_vtable (void);
+ int
+ main (int argc, char **argv)
+ {
+- GConfBackendVTable *vtable;
+-
+- vtable = gconf_backend_get_vtable ();
++ gconf_backend_get_vtable ();
+
+ xml_test_entry ();
+ xml_test_dir ();
+diff --git a/defaults/gconf-defaults-main.c b/defaults/gconf-defaults-main.c
+index 7ed7700..aad76c3 100644
+--- a/defaults/gconf-defaults-main.c
++++ b/defaults/gconf-defaults-main.c
+@@ -107,7 +107,6 @@ get_system_bus (void)
+ {
+ GError *error;
+ DBusGConnection *bus;
+- DBusConnection *connection;
+
+ error = NULL;
+ bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+@@ -117,7 +116,7 @@ get_system_bus (void)
+ goto out;
+ }
+
+- connection = dbus_g_connection_get_connection (bus);
++ dbus_g_connection_get_connection (bus);
+ out:
+ return bus;
+ }
+@@ -162,7 +161,6 @@ main (int argc, char **argv)
+ g_thread_init (NULL);
+ }
+ dbus_g_thread_init ();
+- g_type_init ();
+
+ options = g_option_context_new (NULL);
+ g_option_context_add_main_entries (options, entries, NULL);
+diff --git a/defaults/gconf-defaults.c b/defaults/gconf-defaults.c
+index b84c632..76aa7e9 100644
+--- a/defaults/gconf-defaults.c
++++ b/defaults/gconf-defaults.c
+@@ -156,9 +156,6 @@ gconf_defaults_constructor (GType type,
+ GObjectConstructParam *construct_properties)
+ {
+ GConfDefaults *mechanism;
+- GConfDefaultsClass *klass;
+-
+- klass = GCONF_DEFAULTS_CLASS (g_type_class_peek (GCONF_TYPE_DEFAULTS));
+
+ mechanism = GCONF_DEFAULTS (G_OBJECT_CLASS (gconf_defaults_parent_class)->constructor (
+ type,
+@@ -228,7 +225,7 @@ register_mechanism (GConfDefaults *mechanism)
+ {
+ GError *error = NULL;
+
+- mechanism->priv->auth = polkit_authority_get ();
++ mechanism->priv->auth = polkit_authority_get_sync (NULL, NULL);
+
+ error = NULL;
+ mechanism->priv->system_bus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+diff --git a/examples/basic-gconf-app.c b/examples/basic-gconf-app.c
+index a866520..3045ff9 100644
+--- a/examples/basic-gconf-app.c
++++ b/examples/basic-gconf-app.c
+@@ -289,7 +289,7 @@ create_main_window (GConfClient *client)
+
+ gtk_window_set_title (GTK_WINDOW (w), "basic-gconf-app Main Window");
+
+- vbox = gtk_vbox_new (FALSE, 5);
++ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+
+ gtk_container_add (GTK_CONTAINER (w), vbox);
+
+@@ -375,7 +375,7 @@ create_config_entry (GtkWidget *prefs_dialog,
+ GtkWidget *label;
+ char *str;
+
+- hbox = gtk_hbox_new (FALSE, 5);
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+
+ label = gtk_label_new (config_key);
+
+@@ -437,7 +437,7 @@ create_prefs_dialog (GtkWidget *parent,
+ dialog = gtk_dialog_new_with_buttons ("basic-gconf-app Preferences",
+ GTK_WINDOW (parent),
+ 0,
+- GTK_STOCK_CLOSE,
++ "_Close",
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+
+@@ -451,11 +451,11 @@ create_prefs_dialog (GtkWidget *parent,
+ /* resizing doesn't grow the entries anyhow */
+ gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
+
+- vbox = gtk_vbox_new (FALSE, 5);
++ vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+
+- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(dialog)),
++ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(GTK_DIALOG(dialog))),
+ vbox, TRUE, TRUE, 0);
+
+ entry = create_config_entry (dialog, client, "/apps/basic-gconf-app/foo",
+diff --git a/examples/complex-gconf-app.c b/examples/complex-gconf-app.c
+index 567989c..0702673 100644
+--- a/examples/complex-gconf-app.c
++++ b/examples/complex-gconf-app.c
+@@ -246,7 +246,7 @@ create_main_window(GConfClient* client)
+
+ w = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+
+- vbox = gtk_vbox_new(FALSE, 10);
++ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
+
+ gtk_container_add(GTK_CONTAINER(w), vbox);
+
+@@ -620,9 +620,9 @@ create_prefs_dialog(GtkWidget* parent, GConfClient* client)
+
+ bbox = gtk_hbutton_box_new();
+
+- vbox_outer = gtk_vbox_new(FALSE, 10);
++ vbox_outer = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
+
+- vbox_inner = gtk_vbox_new(FALSE, 10);
++ vbox_inner = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
+
+ gtk_container_add(GTK_CONTAINER(dialog), vbox_outer);
+
+diff --git a/gconf/gconf-client.c b/gconf/gconf-client.c
+index 16be032..3c8ba50 100644
+--- a/gconf/gconf-client.c
++++ b/gconf/gconf-client.c
+@@ -442,8 +442,6 @@ notify_from_server_callback (GConfEngine* conf, guint cnxn_id,
+ * #GConfClient, this function returns the same one they're using, but
+ * with the reference count incremented. So you have to unref either way.
+ *
+- * It's important to call g_type_init() before using this GObject, to initialize the type system.
+- *
+ * Return value: (transfer full): a new #GConfClient. g_object_unref() when you're done.
+ */
+ GConfClient*
+diff --git a/gconf/gconf-internals.c b/gconf/gconf-internals.c
+index 1b4452a..ecb3179 100644
+--- a/gconf/gconf-internals.c
++++ b/gconf/gconf-internals.c
+@@ -2483,8 +2483,6 @@ get_ior (gboolean start_if_not_found,
+ return NULL;
+ }
+
+- g_type_init ();
+-
+ connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ if (connection == NULL) {
+ if (failure_log)
+diff --git a/gconf/gconfd.c b/gconf/gconfd.c
+index 1ed3d08..97647b5 100644
+--- a/gconf/gconfd.c
++++ b/gconf/gconfd.c
+@@ -682,10 +682,6 @@ system_bus_message_handler (DBusConnection *connection,
+ DBusMessage *message,
+ void *user_data)
+ {
+- DBusMessage *reply;
+-
+- reply = NULL;
+-
+ if (dbus_message_is_signal (message,
+ "org.gnome.GConf.Defaults",
+ "SystemSet"))
+diff --git a/gconf/gconftool.c b/gconf/gconftool.c
+index 94274af..1f09601 100644
+--- a/gconf/gconftool.c
++++ b/gconf/gconftool.c
+@@ -578,8 +578,6 @@ main (int argc, char** argv)
+ bindtextdomain (GETTEXT_PACKAGE,GCONF_LOCALE_DIR);
+ textdomain (GETTEXT_PACKAGE);
+
+- g_thread_init (NULL);
+-
+ _gconf_init_i18n ();
+
+ context = g_option_context_new (N_("- Tool to manipulate a GConf configuration"));
+diff --git a/gconf/testgconfclient.c b/gconf/testgconfclient.c
+index 7058bbb..f17b85f 100644
+--- a/gconf/testgconfclient.c
++++ b/gconf/testgconfclient.c
+@@ -131,7 +131,7 @@ entry_attached_to(GConfClient* client, const gchar* key)
+ G_CALLBACK(entry_destroyed_callback),
+ client);
+
+- hbox = gtk_hbox_new(FALSE, 10);
++ hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
+
+ label = gtk_label_new(key);
+
+@@ -268,7 +268,7 @@ create_controls(GConfClient* client)
+ g_signal_connect(G_OBJECT(win), "destroy",
+ G_CALLBACK(destroy_callback), client);
+
+- vbox = gtk_vbox_new(FALSE, 10);
++ vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
+
+ gtk_container_add(GTK_CONTAINER(win), vbox);
+
+diff --git a/gsettings/gsettings-data-convert.c b/gsettings/gsettings-data-convert.c
+index 160ed41..ced04c7 100644
+--- a/gsettings/gsettings-data-convert.c
++++ b/gsettings/gsettings-data-convert.c
+@@ -638,8 +638,6 @@ main (int argc, char *argv[])
+ { NULL }
+ };
+
+- g_type_init();
+-
+ context = g_option_context_new ("");
+
+ g_option_context_set_summary (context,
+--
+2.6.4
+
diff --git a/source/l/LibRaw/LibRaw.SlackBuild b/source/l/LibRaw/LibRaw.SlackBuild
new file mode 100755
index 000000000..35498aa27
--- /dev/null
+++ b/source/l/LibRaw/LibRaw.SlackBuild
@@ -0,0 +1,126 @@
+#!/bin/sh
+
+# Copyright 2013, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2013 Eric Hameleers, Eindhoven, NL
+# All rights reserved.
+
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=LibRaw
+VERSION=${VERSION:-0.17.2}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION-build
+mkdir $PKGNAM-$VERSION-build
+cd $PKGNAM-$VERSION-build
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+tar xvf $CWD/$PKGNAM-demosaic-pack-GPL2-$VERSION.tar.xz || exit 1
+tar xvf $CWD/$PKGNAM-demosaic-pack-GPL3-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --enable-demosaic-pack-gpl2=../LibRaw-demosaic-pack-GPL2-$VERSION \
+ --enable-demosaic-pack-gpl3=../LibRaw-demosaic-pack-GPL3-$VERSION \
+ --enable-jasper \
+ --enable-lcms \
+ --disable-examples \
+ --build=$TARGET \
+ || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+pdftotext LICENSE.LibRaw.pdf
+cp -a \
+ COPYRIGHT Changelog.txt LICENSE.* README* doc \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+if [ -r $PKG/usr/doc/$PKGNAM-$VERSION/LICENSE.LibRaw.txt ]; then # package weight loss program
+ rm -f $PKG/usr/doc/$PKGNAM-$VERSION/LICENSE.LibRaw.pdf
+fi
+mv $PKG/usr/doc/$PKGNAM-$VERSION/doc $PKG/usr/doc/$PKGNAM-$VERSION/html
+find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 0644 {} \;
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/LibRaw/slack-desc b/source/l/LibRaw/slack-desc
new file mode 100644
index 000000000..28f09f6a5
--- /dev/null
+++ b/source/l/LibRaw/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+LibRaw: LibRaw (library for decoding raw digital photos)
+LibRaw:
+LibRaw: LibRaw is a library for reading RAW files obtained from digital
+LibRaw: cameras (CRW/CR2, NEF, RAF, DNG, and others). It is based on the
+LibRaw: source code of the dcraw utility.
+LibRaw:
+LibRaw: Homepage: http://www.libraw.org/
+LibRaw:
+LibRaw:
+LibRaw:
+LibRaw:
diff --git a/source/l/M2Crypto/M2Crypto.SlackBuild b/source/l/M2Crypto/M2Crypto.SlackBuild
index 40b710c39..359ba2b2b 100755
--- a/source/l/M2Crypto/M2Crypto.SlackBuild
+++ b/source/l/M2Crypto/M2Crypto.SlackBuild
@@ -24,12 +24,12 @@
PKGNAM=M2Crypto
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=${PKG:-$TMP/package-M2Crypto}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
diff --git a/source/l/M2Crypto/slack-desc b/source/l/M2Crypto/slack-desc
index ffc9eee06..4886b94f5 100644
--- a/source/l/M2Crypto/slack-desc
+++ b/source/l/M2Crypto/slack-desc
@@ -15,5 +15,5 @@ M2Crypto: - HTTPS extensions to Python's httplib, urllib, and xmlrpclib
M2Crypto: - Unforgeable HMAC'ing AuthCookies for web session management
M2Crypto: - FTP/TLS client and server, S/MIME v2, ZServerSSL, ZSmime
M2Crypto:
-M2Crypto: Website: http://wiki.osafoundation.org/bin/view/Projects/MeTooCrypto
+M2Crypto: Homepage: https://gitlab.com/m2crypto/m2crypto
M2Crypto:
diff --git a/source/l/PyQt/PyQt.SlackBuild b/source/l/PyQt/PyQt.SlackBuild
index d3131e20a..16e955621 100755
--- a/source/l/PyQt/PyQt.SlackBuild
+++ b/source/l/PyQt/PyQt.SlackBuild
@@ -36,7 +36,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -48,8 +48,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
@@ -86,7 +86,7 @@ export CXXFLAGS="$SLKCFLAGS"
python configure.py --confirm-license --verbose
make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
+make install DESTDIR=$PKG INSTALL_ROOT=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/QScintilla/QScintilla.SlackBuild b/source/l/QScintilla/QScintilla.SlackBuild
index ca90d7f80..2e2d9654a 100755
--- a/source/l/QScintilla/QScintilla.SlackBuild
+++ b/source/l/QScintilla/QScintilla.SlackBuild
@@ -25,7 +25,7 @@
PKGNAM=QScintilla
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
@@ -37,7 +37,7 @@ PKG=$TMP/package-$PKGNAM
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -45,8 +45,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -75,7 +75,7 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-cd Qt4
+cd Qt4Qt5
qmake -o Makefile qscintilla.pro
make $NUMJOBS
make install INSTALL_ROOT=$PKG
@@ -83,16 +83,16 @@ cd Qt4
make install
cd -
-cd designer-Qt4
+cd designer-Qt4Qt5
qmake -o Makefile designer.pro
make $NUMJOBS
make install INSTALL_ROOT=$PKG
cd -
cd Python
- python configure.py -p 4
+ python configure.py
make $NUMJOBS
- make install DESTDIR=$PKG
+ make install INSTALL_ROOT=$PKG
cd -
# Link the shared libraries into /usr/lib${LIBDIRSUFFIX}:
@@ -107,7 +107,7 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" \
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- *GPL* COPYING* NEWS OPENSOURCE-NOTICE.TXT README* doc/html-Qt4 doc/Scintilla \
+ *GPL* COPYING* LICENSE NEWS OPENSOURCE-NOTICE.TXT README* doc/html-Qt4 doc/Scintilla \
$PKG/usr/doc/$PKGNAM-$VERSION
mkdir -p $PKG/install
diff --git a/source/l/a52dec/a52dec.SlackBuild b/source/l/a52dec/a52dec.SlackBuild
new file mode 100755
index 000000000..0153daff8
--- /dev/null
+++ b/source/l/a52dec/a52dec.SlackBuild
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+# Slackware build script for a52dec
+#
+# Copyright 2007 Niklas "Nille" Åkerström
+# Copyright 2014, 2016 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014 Heinz Wiesinger, Amsterdam, NL
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=a52dec
+VERSION=${VERSION:-$(echo a52dec*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
+BUILD=${BUILD:-2}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:--j6}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-shared \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# This header is needed by xine-lib:
+cp -a liba52/a52_internal.h $PKG/usr/include/a52dec
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* ChangeLog HISTORY INSTALL NEWS README* TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/a52dec/slack-desc b/source/l/a52dec/slack-desc
new file mode 100644
index 000000000..e4de56fb7
--- /dev/null
+++ b/source/l/a52dec/slack-desc
@@ -0,0 +1,12 @@
+ |-----handy-ruler------------------------------------------------------|
+a52dec: a52dec (test program for liba52)
+a52dec:
+a52dec: a52dec is a test program for liba52. It decodes ATSC A/52 streams
+a52dec: and also includes a demultiplexer for mpeg-1 and mpeg-2 program
+a52dec: streams. This package also includes liba52, which is a free
+a52dec: library for decoding ATSC A/52 streams. The A/52 standard is used
+a52dec: in a variety of applications, including digital television and DVD.
+a52dec: It is also known as AC-3.
+a52dec:
+a52dec: Homepage: http://liba52.sourceforge.net/
+a52dec:
diff --git a/source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild b/source/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild
index b57abfd5c..87a34784c 100755
--- a/source/l/gnome-icon-theme/gnome-icon-theme.SlackBuild
+++ b/source/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild
@@ -21,10 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=3.8.3 # main package version
-SYMVERS=3.8.3 # gnome-icon-theme-symbolic version
-EXTRAVERS=3.6.2 # gnome-icon-theme-extras version
-
+PKGNAM=adwaita-icon-theme
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -32,7 +30,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -47,43 +45,60 @@ fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-gnome-icon-theme
+PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf gnome-icon-theme-$VERSION
-
-for ICONPKG in gnome-icon-theme-$VERSION gnome-icon-theme-symbolic-$SYMVERS gnome-icon-theme-extras-$EXTRAVERS ; do
- tar xvf $CWD/$ICONPKG.tar.?z* || exit 1
- cd $ICONPKG || exit 1
- chown -R root:root .
- find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
- if [ $ICONPKG = gnome-icon-theme-symbolic-$SYMVERS ]; then
- zcat $CWD/fix_gits_configure.diff.gz | patch -p1 || exit 1
- fi
- ./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --enable-icon-mapping \
- --localstatedir=/var/lib || exit 1
- make $NUMJOBS || make || exit 1
- make install DESTDIR=$PKG || exit 1
- mkdir -p $PKG/usr/doc/$ICONPKG
- cp -a \
- AUTHORS COPYING* NEWS README* TODO \
- $PKG/usr/doc/$ICONPKG
- if [ -r ChangeLog ]; then
- cat ChangeLog | head -n 1000 > $PKG/usr/doc/$ICONPKG/ChangeLog
- touch -r ChangeLog $PKG/usr/doc/$ICONPKG/ChangeLog
- fi
+rm -rf $PKGNAM-$VERSION
+
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+# Add Inherits=hicolor to the index.theme
+zcat $CWD/inherit-hicolor-theme.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Add some extra icons that are missing for Xfce.
+# Copy from the main tree and back to make sure that we
+# don't overwrite these if they eventally appear.
+( cd $PKG
+ mkdir tmpicons
+ cd tmpicons
+ tar xf $CWD/adwaita-xfce-icons-0.6.tar.xz
+ rm -f README
+ rsync -lprvt --progress ../usr/ usr/
+ # Then sync back:
+ rsync -lprvt --progress usr/ ../usr/
+ # And remove the leftovers:
cd ..
-done
+ rm -r tmpicons
+)
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* NEWS README* TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+if [ -r ChangeLog ]; then
+ cat ChangeLog | head -n 1000 > $PKG/usr/doc/$PKGNAM-$VERSION/ChangeLog
+ touch -r ChangeLog $PKG/usr/doc/$PKGNAM/ChangeLog
+fi
# It's a bad idea to ship these in the packages. If they aren't kept
# updated, there will be missing icons. Let the user create them if
@@ -95,5 +110,5 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l y -c n $TMP/gnome-icon-theme-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-noarch-$BUILD.txz
diff --git a/source/l/adwaita-icon-theme/doinst.sh b/source/l/adwaita-icon-theme/doinst.sh
new file mode 100644
index 000000000..9b58a1572
--- /dev/null
+++ b/source/l/adwaita-icon-theme/doinst.sh
@@ -0,0 +1,6 @@
+if [ -e /usr/share/icons/Adwaita/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache /usr/share/icons/Adwaita 1> /dev/null 2> /dev/null
+ fi
+fi
+
diff --git a/source/l/adwaita-icon-theme/inherit-hicolor-theme.diff b/source/l/adwaita-icon-theme/inherit-hicolor-theme.diff
new file mode 100644
index 000000000..15c990bd1
--- /dev/null
+++ b/source/l/adwaita-icon-theme/inherit-hicolor-theme.diff
@@ -0,0 +1,11 @@
+diff -Nur adwaita-icon-theme-3.14.0.orig/index.theme.in.in adwaita-icon-theme-3.14.0/index.theme.in.in
+--- adwaita-icon-theme-3.14.0.orig/index.theme.in.in 2014-04-26 09:09:02.000000000 -0500
++++ adwaita-icon-theme-3.14.0/index.theme.in.in 2014-09-23 00:18:46.390551084 -0500
+@@ -2,6 +2,7 @@
+ _Name=Adwaita
+ _Comment=The Only One
+ Example=folder
++Inherits=hicolor
+
+ # KDE Specific Stuff
+ DisplayDepth=32
diff --git a/source/l/adwaita-icon-theme/slack-desc b/source/l/adwaita-icon-theme/slack-desc
new file mode 100644
index 000000000..6b30df3f8
--- /dev/null
+++ b/source/l/adwaita-icon-theme/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+adwaita-icon-theme: adwaita-icon-theme (default icons used by GTK+)
+adwaita-icon-theme:
+adwaita-icon-theme: A set of default icons used by many GTK+ applications.
+adwaita-icon-theme:
+adwaita-icon-theme:
+adwaita-icon-theme:
+adwaita-icon-theme:
+adwaita-icon-theme:
+adwaita-icon-theme:
+adwaita-icon-theme:
+adwaita-icon-theme:
diff --git a/source/l/akonadi/akonadi.SlackBuild b/source/l/akonadi/akonadi.SlackBuild
index fe36ea406..83a6b0a20 100755
--- a/source/l/akonadi/akonadi.SlackBuild
+++ b/source/l/akonadi/akonadi.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for akonadi
# Copyright 2008 Robby Workman, Northport, Alabama, USA
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
PKGNAM=akonadi
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -34,7 +34,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -42,8 +42,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/alsa-lib/alsa-lib.SlackBuild b/source/l/alsa-lib/alsa-lib.SlackBuild
index 441ce1b84..1a94182f2 100755
--- a/source/l/alsa-lib/alsa-lib.SlackBuild
+++ b/source/l/alsa-lib/alsa-lib.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,14 +22,14 @@
VERSION=${VERSION:-$(echo alsa-lib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-alsa-lib
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -62,6 +62,8 @@ rm -rf alsa-lib-$VERSION
tar xvf $CWD/alsa-lib-$VERSION.tar.?z* || exit 1
cd alsa-lib-$VERSION || exit 1
+zcat $CWD/alsa-lib.fdba9e1bad8f769a6137e565471f0227f23a3132.diff.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -72,14 +74,20 @@ find . \
CFLAGS="$SLKCFLAGS" \
./configure \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || exit 1
-make install DESTDIR=$PKG
+make install DESTDIR=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Redirect to PulseAudio:
+mkdir $PKG/etc
+cp -a $CWD/asound.conf $PKG/etc/asound.conf.new
+chmod 644 $PKG/etc/asound.conf.new
+chown root:root $PKG/etc/asound.conf.new
+
# TODO?
# ( cd src/pcm/ext
# make jack
@@ -102,6 +110,7 @@ fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $TMP/alsa-lib-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/alsa-lib/alsa-lib.fdba9e1bad8f769a6137e565471f0227f23a3132.diff b/source/l/alsa-lib/alsa-lib.fdba9e1bad8f769a6137e565471f0227f23a3132.diff
new file mode 100644
index 000000000..b5aad2bbb
--- /dev/null
+++ b/source/l/alsa-lib/alsa-lib.fdba9e1bad8f769a6137e565471f0227f23a3132.diff
@@ -0,0 +1,102 @@
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 14 Apr 2016 15:33:03 +0000 (+0200)
+Subject: pcm: Fallback open as the first instance for dmix & co
+X-Git-Url: http://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff_plain;h=fdba9e1bad8f769a6137e565471f0227f23a3132;hp=e57b521c61f0df14b660ce6ba8c5009a63f5b115
+
+pcm: Fallback open as the first instance for dmix & co
+
+dmix and other PCM plugins tries to open a secondary stream with
+O_APPEND flag when the shmem was already attached by another.
+However, when another streams have been already closed after the
+shmem check, this open may return the error EBADFD, since the kernel
+accepts O_APPEND only for the secondary streams.
+
+This patch adds a workaround for such a case. It just retries opening
+the stream as the first instance (i.e. without O_APPEND flag).
+This is basically safe behavior (the kernel takes care of races), even
+we may do this even unconditionally. But it's bad from the
+performance POV, so we do it only when really needed.
+
+Reported-by: Lars Lindqvist <lars.lindqvist@yandex.ru>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+
+diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
+index b26a5c7..007d356 100644
+--- a/src/pcm/pcm_dmix.c
++++ b/src/pcm/pcm_dmix.c
+@@ -1020,6 +1020,7 @@ int snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name,
+ dmix->max_periods = opts->max_periods;
+ dmix->sync_ptr = snd_pcm_dmix_sync_ptr;
+
++ retry:
+ if (first_instance) {
+ /* recursion is already checked in
+ snd_pcm_direct_get_slave_ipc_offset() */
+@@ -1076,6 +1077,13 @@ int snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name,
+ SND_PCM_APPEND,
+ NULL);
+ if (ret < 0) {
++ /* all other streams have been closed;
++ * retry as the first instance
++ */
++ if (ret == -EBADFD) {
++ first_instance = 1;
++ goto retry;
++ }
+ SNDERR("unable to open slave");
+ goto _err;
+ }
+diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
+index 58e47bb..adb3587 100644
+--- a/src/pcm/pcm_dshare.c
++++ b/src/pcm/pcm_dshare.c
+@@ -690,6 +690,7 @@ int snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name,
+ break;
+ }
+
++ retry:
+ first_instance = ret = snd_pcm_direct_shm_create_or_connect(dshare);
+ if (ret < 0) {
+ SNDERR("unable to create IPC shm instance");
+@@ -758,6 +759,13 @@ int snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name,
+ SND_PCM_APPEND,
+ NULL);
+ if (ret < 0) {
++ /* all other streams have been closed;
++ * retry as the first instance
++ */
++ if (ret == -EBADFD) {
++ first_instance = 1;
++ goto retry;
++ }
+ SNDERR("unable to open slave");
+ goto _err;
+ }
+diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
+index 576c35b..8ff0ba5 100644
+--- a/src/pcm/pcm_dsnoop.c
++++ b/src/pcm/pcm_dsnoop.c
+@@ -583,6 +583,7 @@ int snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name,
+ break;
+ }
+
++ retry:
+ first_instance = ret = snd_pcm_direct_shm_create_or_connect(dsnoop);
+ if (ret < 0) {
+ SNDERR("unable to create IPC shm instance");
+@@ -651,6 +652,13 @@ int snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name,
+ SND_PCM_APPEND,
+ NULL);
+ if (ret < 0) {
++ /* all other streams have been closed;
++ * retry as the first instance
++ */
++ if (ret == -EBADFD) {
++ first_instance = 1;
++ goto retry;
++ }
+ SNDERR("unable to open slave");
+ goto _err;
+ }
+
diff --git a/source/l/alsa-lib/asound.conf b/source/l/alsa-lib/asound.conf
new file mode 100644
index 000000000..d8c8c317d
--- /dev/null
+++ b/source/l/alsa-lib/asound.conf
@@ -0,0 +1,4 @@
+# ALSA system-wide config file
+# By default, redirect to PulseAudio:
+pcm.default pulse
+ctl.default pulse
diff --git a/source/l/alsa-lib/doinst.sh b/source/l/alsa-lib/doinst.sh
new file mode 100644
index 000000000..35c6f5965
--- /dev/null
+++ b/source/l/alsa-lib/doinst.sh
@@ -0,0 +1,14 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/asound.conf.new
diff --git a/source/l/alsa-plugins/alsa-plugins.SlackBuild b/source/l/alsa-plugins/alsa-plugins.SlackBuild
new file mode 100755
index 000000000..5f14bdbca
--- /dev/null
+++ b/source/l/alsa-plugins/alsa-plugins.SlackBuild
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=alsa-plugins
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS -DHAVE_STDINT_H -DUSE_LIBSPEEX" \
+CXXFLAGS="$SLKCFLAGS -DHAVE_STDINT_H -DUSE_LIBSPEEX" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-speex=lib \
+ --enable-maemo-plugin \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install-strip DESTDIR=$PKG || exit 1
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ doc/*.txt doc/README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/alsa-plugins/slack-desc b/source/l/alsa-plugins/slack-desc
new file mode 100644
index 000000000..734e3a264
--- /dev/null
+++ b/source/l/alsa-plugins/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+alsa-plugins: alsa-plugins (Advanced Linux Sound Architecture Plugins)
+alsa-plugins:
+alsa-plugins: The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI
+alsa-plugins: functionality to the Linux operating system.
+alsa-plugins: This package includes plugins for ALSA.
+alsa-plugins:
+alsa-plugins: Website: http://www.alsa-project.org
+alsa-plugins:
+alsa-plugins:
+alsa-plugins:
+alsa-plugins:
diff --git a/source/l/apr-util/apr-util.SlackBuild b/source/l/apr-util/apr-util.SlackBuild
index 551ddc703..74fae2496 100755
--- a/source/l/apr-util/apr-util.SlackBuild
+++ b/source/l/apr-util/apr-util.SlackBuild
@@ -22,12 +22,12 @@
VERSION=${VERSION:-$(echo apr-util-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -36,8 +36,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/apr-util/apr-util.url b/source/l/apr-util/apr-util.url
index ad13f22b7..d2237c51d 100644
--- a/source/l/apr-util/apr-util.url
+++ b/source/l/apr-util/apr-util.url
@@ -1,2 +1,2 @@
-http://www.apache.org/dist/apr/apr-util-1.5.1.tar.bz2
-http://www.apache.org/dist/apr/apr-util-1.5.1.tar.bz2.asc
+http://www.apache.org/dist/apr/apr-util-1.5.4.tar.bz2
+http://www.apache.org/dist/apr/apr-util-1.5.4.tar.bz2.asc
diff --git a/source/l/apr/apr.SlackBuild b/source/l/apr/apr.SlackBuild
index 193f602b9..e9fdb3612 100755
--- a/source/l/apr/apr.SlackBuild
+++ b/source/l/apr/apr.SlackBuild
@@ -27,7 +27,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -36,8 +36,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/apr/apr.url b/source/l/apr/apr.url
index 1ff6c6775..9bb253929 100644
--- a/source/l/apr/apr.url
+++ b/source/l/apr/apr.url
@@ -1,2 +1,2 @@
-http://www.apache.org/dist/apr/apr-1.4.6.tar.bz2
-http://www.apache.org/dist/apr/apr-1.4.6.tar.bz2.asc
+http://www.apache.org/dist/apr/apr-1.5.2.tar.bz2
+http://www.apache.org/dist/apr/apr-1.5.2.tar.bz2.asc
diff --git a/source/l/aspell-dict/aspell-dict.SlackBuild b/source/l/aspell-dict/aspell-dict.SlackBuild
index 4d9cb2f12..f2333eb5e 100755
--- a/source/l/aspell-dict/aspell-dict.SlackBuild
+++ b/source/l/aspell-dict/aspell-dict.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,19 +25,35 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-aspell-dict
-BUILD=${BUILD:-4}
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+cd src
for file in aspell*bz2 ; do
NAME=$(echo $file | cut -f 1-2 -d -)-$(echo $file | cut -f 3- -d - | rev | cut -b9- | rev | tr '[\-]' '[_]')
+ if [ -r $CWD/build/$(basename $file | cut -f 1,2 -d -) ]; then
+ BUILD="$(cat $CWD/build/$(basename $file | cut -f 1,2 -d -))"
+ else
+ BUILD=1
+ fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
- tar xjf $CWD/$file
+ rm -rf $(basename $file .tar.bz2)
+ tar xjf $CWD/src/$file
cd $(basename $file .tar.bz2)
chown -R root:root .
- ./configure
- make
- make install DESTDIR=$PKG
+ ./configure || exit 1
+ make || exit 1
+ make install DESTDIR=$PKG || exit 1
# Use a uniform package name.
NAME=$(echo $NAME | sed 's/aspell5/aspell/' | sed 's/aspell6/aspell/')
mkdir -p $PKG/usr/doc/${NAME}
@@ -59,5 +75,5 @@ for file in aspell*bz2 ; do
echo "${SLACKDESC}:" >> $PKG/install/slack-desc
echo "${SLACKDESC}:" >> $PKG/install/slack-desc
cd $PKG
- makepkg -l y -c n $TMP/${NAME}-noarch-$BUILD.txz
-done
+ makepkg -l y -c n $TMP/${NAME}-$ARCH-$BUILD.txz
+done || exit 1
diff --git a/source/l/aspell-dict/build/aspell-af b/source/l/aspell-dict/build/aspell-af
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-af
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-br b/source/l/aspell-dict/build/aspell-br
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-br
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-cy b/source/l/aspell-dict/build/aspell-cy
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-cy
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-el b/source/l/aspell-dict/build/aspell-el
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-el
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-fr b/source/l/aspell-dict/build/aspell-fr
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-fr
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-gv b/source/l/aspell-dict/build/aspell-gv
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-gv
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-hr b/source/l/aspell-dict/build/aspell-hr
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-hr
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-ia b/source/l/aspell-dict/build/aspell-ia
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-ia
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-is b/source/l/aspell-dict/build/aspell-is
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-is
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-mi b/source/l/aspell-dict/build/aspell-mi
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-mi
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-mk b/source/l/aspell-dict/build/aspell-mk
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-mk
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-ms b/source/l/aspell-dict/build/aspell-ms
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-ms
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-mt b/source/l/aspell-dict/build/aspell-mt
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-mt
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-nb b/source/l/aspell-dict/build/aspell-nb
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-nb
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-nl b/source/l/aspell-dict/build/aspell-nl
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-nl
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-nn b/source/l/aspell-dict/build/aspell-nn
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-nn
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-no b/source/l/aspell-dict/build/aspell-no
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-no
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-pt b/source/l/aspell-dict/build/aspell-pt
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-pt
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-rw b/source/l/aspell-dict/build/aspell-rw
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-rw
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-sl b/source/l/aspell-dict/build/aspell-sl
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-sl
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-sv b/source/l/aspell-dict/build/aspell-sv
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-sv
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-sw b/source/l/aspell-dict/build/aspell-sw
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-sw
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-tr b/source/l/aspell-dict/build/aspell-tr
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-tr
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-wa b/source/l/aspell-dict/build/aspell-wa
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-wa
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell-zu b/source/l/aspell-dict/build/aspell-zu
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell-zu
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-be b/source/l/aspell-dict/build/aspell5-be
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-be
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-da b/source/l/aspell-dict/build/aspell5-da
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-da
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-fo b/source/l/aspell-dict/build/aspell5-fo
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-fo
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-gd b/source/l/aspell-dict/build/aspell5-gd
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-gd
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-hil b/source/l/aspell-dict/build/aspell5-hil
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-hil
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-id b/source/l/aspell-dict/build/aspell5-id
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-id
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-mg b/source/l/aspell-dict/build/aspell5-mg
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-mg
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-ny b/source/l/aspell-dict/build/aspell5-ny
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-ny
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-sc b/source/l/aspell-dict/build/aspell5-sc
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-sc
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-tet b/source/l/aspell-dict/build/aspell5-tet
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-tet
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-tl b/source/l/aspell-dict/build/aspell5-tl
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-tl
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell5-tn b/source/l/aspell-dict/build/aspell5-tn
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell5-tn
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-am b/source/l/aspell-dict/build/aspell6-am
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-am
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-az b/source/l/aspell-dict/build/aspell6-az
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-az
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-bn b/source/l/aspell-dict/build/aspell6-bn
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-bn
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-ca b/source/l/aspell-dict/build/aspell6-ca
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-ca
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-cs b/source/l/aspell-dict/build/aspell6-cs
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-cs
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-csb b/source/l/aspell-dict/build/aspell6-csb
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-csb
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-de b/source/l/aspell-dict/build/aspell6-de
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-de
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-et b/source/l/aspell-dict/build/aspell6-et
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-et
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-fi b/source/l/aspell-dict/build/aspell6-fi
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-fi
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-he b/source/l/aspell-dict/build/aspell6-he
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-he
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-hu b/source/l/aspell-dict/build/aspell6-hu
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-hu
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-it b/source/l/aspell-dict/build/aspell6-it
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-it
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-la b/source/l/aspell-dict/build/aspell6-la
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-la
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-lv b/source/l/aspell-dict/build/aspell6-lv
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-lv
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-mr b/source/l/aspell-dict/build/aspell6-mr
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-mr
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-nds b/source/l/aspell-dict/build/aspell6-nds
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-nds
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-or b/source/l/aspell-dict/build/aspell6-or
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-or
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-pa b/source/l/aspell-dict/build/aspell6-pa
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-pa
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-qu b/source/l/aspell-dict/build/aspell6-qu
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-qu
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-ru b/source/l/aspell-dict/build/aspell6-ru
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-ru
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-sr b/source/l/aspell-dict/build/aspell6-sr
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-sr
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-ta b/source/l/aspell-dict/build/aspell6-ta
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-ta
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-te b/source/l/aspell-dict/build/aspell6-te
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-te
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-vi b/source/l/aspell-dict/build/aspell6-vi
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-vi
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/aspell6-yi b/source/l/aspell-dict/build/aspell6-yi
new file mode 100644
index 000000000..7ed6ff82d
--- /dev/null
+++ b/source/l/aspell-dict/build/aspell6-yi
@@ -0,0 +1 @@
+5
diff --git a/source/l/aspell-dict/build/increment-all-dict.sh b/source/l/aspell-dict/build/increment-all-dict.sh
new file mode 100755
index 000000000..99861dc62
--- /dev/null
+++ b/source/l/aspell-dict/build/increment-all-dict.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+# A script to increment build numbers of all the dictionaries.
+#
+# Any that are newly added should not have a build file in
+# here (or it should contain "1"). The usual method is to run this
+# script and then remove the build files for any new driver versions.
+
+for DICTSRC in ../src/* ; do
+ DICTBASENAME=$(basename $DICTSRC | cut -f 1,2 -d -)
+ ./increment.sh $DICTBASENAME
+done
+
diff --git a/source/l/aspell-dict/build/increment.sh b/source/l/aspell-dict/build/increment.sh
new file mode 100755
index 000000000..eff1356f0
--- /dev/null
+++ b/source/l/aspell-dict/build/increment.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# A script to increment build numbers.
+# Call it with the list of the build numbers to increase by one:
+#
+# ./increment.sh aspell6-pt_BR aspell6-qu
+#
+# If a build file does not exist, it will be created with a value of 2.
+
+for build in $* ; do
+ if [ ! -r $build ]; then
+ echo "Creating $build with value 2"
+ echo 2 > $build
+ else
+ echo "Incrementing $build $(cat $build) -> $(expr $(cat $build) + 1)"
+ echo $(expr $(cat $build) + 1) > $build
+ fi
+done
diff --git a/source/l/aspell/aspell.SlackBuild b/source/l/aspell/aspell.SlackBuild
index 7e5ac9046..71c814616 100755
--- a/source/l/aspell/aspell.SlackBuild
+++ b/source/l/aspell/aspell.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/at-spi2-atk/at-spi2-atk.SlackBuild b/source/l/at-spi2-atk/at-spi2-atk.SlackBuild
index b6a56e1ef..fd26fc634 100755
--- a/source/l/at-spi2-atk/at-spi2-atk.SlackBuild
+++ b/source/l/at-spi2-atk/at-spi2-atk.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/at-spi2-core/at-spi2-core.SlackBuild b/source/l/at-spi2-core/at-spi2-core.SlackBuild
index bea0b12a5..7985010b5 100755
--- a/source/l/at-spi2-core/at-spi2-core.SlackBuild
+++ b/source/l/at-spi2-core/at-spi2-core.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/atk/atk.SlackBuild b/source/l/atk/atk.SlackBuild
index e06714662..497c698e3 100755
--- a/source/l/atk/atk.SlackBuild
+++ b/source/l/atk/atk.SlackBuild
@@ -30,7 +30,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-atk
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/atkmm/atkmm.SlackBuild b/source/l/atkmm/atkmm.SlackBuild
new file mode 100755
index 000000000..e8c29988c
--- /dev/null
+++ b/source/l/atkmm/atkmm.SlackBuild
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=atkmm
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS libdocdir=/usr/doc/$PKGNAM-$VERSION || make libdocdir=/usr/doc/$PKGNAM-$VERSION || exit 1
+make install libdocdir=/usr/doc/$PKGNAM-$VERSION DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cp -a \
+ AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+# Remove images, API docs, and useless html file
+rm -rf $PKG/usr/doc/$PKGNAM-$VERSION/{images,reference,index.html}
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/atkmm/slack-desc b/source/l/atkmm/slack-desc
new file mode 100644
index 000000000..351d0770c
--- /dev/null
+++ b/source/l/atkmm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+atkmm: atkmm (C++ bindings for ATK)
+atkmm:
+atkmm: atkmm is the C++ binding for the ATK library.
+atkmm: This module is part of the GNOME C++ bindings effort.
+atkmm:
+atkmm: Homepage: http://www.gtkmm.org/
+atkmm:
+atkmm:
+atkmm:
+atkmm:
+atkmm:
diff --git a/source/l/babl/babl.SlackBuild b/source/l/babl/babl.SlackBuild
index 5f87a9512..9bf937bbe 100755
--- a/source/l/babl/babl.SlackBuild
+++ b/source/l/babl/babl.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -42,8 +42,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-babl
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/boost/boost.SlackBuild b/source/l/boost/boost.SlackBuild
index aa859516f..d3c906563 100755
--- a/source/l/boost/boost.SlackBuild
+++ b/source/l/boost/boost.SlackBuild
@@ -1,8 +1,8 @@
#!/bin/sh
# Copyright 2007, 2008, 2012 Eric Hameleers, Eindhoven, NL
-# Copyright 2007-2008, 2013 Heinz Wiesinger, Amsterdam, NL
-# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007-2008, 2013, 2014 Heinz Wiesinger, Amsterdam, NL
+# Copyright 2008, 2009, 2010, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@
PKGNAM=boost
VERSION=${VERSION:-$(echo $PKGNAM_*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d _)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
PKG_VERSION=$(echo $VERSION | tr _ .) # Leave this alone
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -38,7 +38,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -46,8 +46,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -74,13 +74,6 @@ rm -rf boost_$VERSION
tar xvf $CWD/boost_$VERSION.tar.?z* || exit 1
cd boost_$VERSION || exit 1
-# Revert changeset 82498, which breaks OQGRAPH support in MariaDB:
-zcat $CWD/changeset_82498.diff.gz | patch -R -p2 --verbose || exit 1
-
-# glibc as of 2.17 no longer defines __GLIBC_HAVE_LONG_LONG (it is assumed
-# to support it), so don't use that to detect long long support:
-zcat $CWD/boost.glibc.long.long.diff.gz | patch -p0 --verbose || exit 1
-
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -88,25 +81,21 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Apply Hotfixes from:
-# http://svn.boost.org/trac/boost/wiki/ReleasePractices/HotFixes
-#
-# (none currently for this $VERSION)
-
-# Avoid C++11 for now as it introduces potentially different behaviour.
-# Let's give applications some more time to adjust to this.
-EXTRA_CXXFLAGS="-std=gnu++98"
+# Don't allow MOC to process this incompatible header:
+sed -e '1 i#ifndef Q_MOC_RUN' \
+ -e '$ a#endif' \
+ -i boost/type_traits/detail/has_binary_operator.hpp
# This is the python we build against:
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="-sPYTHON_ROOT=/usr -sPYTHON_VERSION=$PYTHON_VERSION"
# First build bjam, the boost build system:
-cd tools/build/v2/engine
+cd tools/build/src/engine
CFLAGS="$SLKCFLAGS -fno-strict-aliasing" CC=gcc ./build.sh cc
cd -
-BJAM=$(find tools/build/v2/engine/ -name b2 -a -type f)
+BJAM=$(find tools/build/src/engine/ -name b2 -a -type f)
# Create build subdirectory
mkdir obj
diff --git a/source/l/boost/boost.glibc.long.long.diff b/source/l/boost/boost.glibc.long.long.diff
deleted file mode 100644
index 3c425f324..000000000
--- a/source/l/boost/boost.glibc.long.long.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up boost/cstdint.hpp\~ boost/cstdint.hpp
---- boost/cstdint.hpp~ 2013-03-07 01:46:19.000000000 +0100
-+++ boost/cstdint.hpp 2013-06-25 21:56:25.930276225 +0200
-@@ -41,7 +41,15 @@
- // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
- // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
- //
--#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
-+// This define has been dropped altogether in GLIBC 2.17. As of then,
-+// support for long long is part of baseline requirements, and
-+// [u]int64_t is always defined. See here:
-+// http://sourceware.org/ml/libc-alpha/2013-01/msg00440.html
-+//
-+#if defined(BOOST_HAS_STDINT_H) \
-+ && (!defined(__GLIBC__) \
-+ || defined(__GLIBC_HAVE_LONG_LONG) \
-+ || (defined __GLIBC_PREREQ && __GLIBC_PREREQ(2,17)))
-
- // The following #include is an implementation artifact; not part of interface.
- # ifdef __hpux
-
-Diff finished. Tue Jun 25 21:56:32 2013
diff --git a/source/l/boost/changeset_82498.diff b/source/l/boost/changeset_82498.diff
deleted file mode 100644
index 6b7a9a705..000000000
--- a/source/l/boost/changeset_82498.diff
+++ /dev/null
@@ -1,116 +0,0 @@
-Index: /trunk/boost/graph/named_graph.hpp
-===================================================================
---- /trunk/boost/graph/named_graph.hpp (revision 81772)
-+++ /trunk/boost/graph/named_graph.hpp (revision 82498)
-@@ -12,4 +12,5 @@
-
- #include <boost/config.hpp>
-+#include <boost/static_assert.hpp>
- #include <boost/functional/hash.hpp>
- #include <boost/graph/graph_traits.hpp>
-@@ -20,7 +21,9 @@
- #include <boost/optional.hpp>
- #include <boost/pending/property.hpp> // for boost::lookup_one_property
-+#include <boost/pending/container_traits.hpp>
- #include <boost/throw_exception.hpp>
- #include <boost/tuple/tuple.hpp> // for boost::make_tuple
- #include <boost/type_traits/is_same.hpp>
-+#include <boost/type_traits/is_base_of.hpp>
- #include <boost/type_traits/remove_cv.hpp>
- #include <boost/type_traits/remove_reference.hpp>
-@@ -254,5 +257,6 @@
- /// Notify the named_graph that we are removing the given
- /// vertex. The name of the vertex will be removed from the mapping.
-- void removing_vertex(Vertex vertex);
-+ template <typename VertexIterStability>
-+ void removing_vertex(Vertex vertex, VertexIterStability);
-
- /// Notify the named_graph that we are clearing the graph.
-@@ -309,6 +313,8 @@
-
- template<BGL_NAMED_GRAPH_PARAMS>
--inline void BGL_NAMED_GRAPH::removing_vertex(Vertex vertex)
--{
-+template<typename VertexIterStability>
-+inline void BGL_NAMED_GRAPH::removing_vertex(Vertex vertex, VertexIterStability)
-+{
-+ BOOST_STATIC_ASSERT_MSG ((boost::is_base_of<boost::graph_detail::stable_tag, VertexIterStability>::value), "Named graphs cannot use vecS as vertex container and remove vertices; the lack of vertex descriptor stability (which iterator stability is a proxy for) means that the name -> vertex mapping would need to be completely rebuilt after each deletion. See https://svn.boost.org/trac/boost/ticket/7863 for more information and a test case.");
- typedef typename BGL_NAMED_GRAPH::vertex_name_type vertex_name_type;
- const vertex_name_type& vertex_name = extract_name(derived()[vertex]);
-@@ -487,5 +493,6 @@
- /// Notify the named_graph that we are removing the given
- /// vertex. This is a no-op.
-- void removing_vertex(Vertex) { }
-+ template <typename VertexIterStability>
-+ void removing_vertex(Vertex, VertexIterStability) { }
-
- /// Notify the named_graph that we are clearing the graph. This is a
-@@ -518,5 +525,6 @@
- /// Notify the named_graph that we are removing the given
- /// vertex. This is a no-op.
-- void removing_vertex(Vertex) { }
-+ template <typename VertexIterStability>
-+ void removing_vertex(Vertex, VertexIterStability) { }
-
- /// Notify the named_graph that we are clearing the graph. This is a
-Index: /trunk/boost/graph/detail/adjacency_list.hpp
-===================================================================
---- /trunk/boost/graph/detail/adjacency_list.hpp (revision 82052)
-+++ /trunk/boost/graph/detail/adjacency_list.hpp (revision 82498)
-@@ -18,4 +18,5 @@
- #include <boost/operators.hpp>
- #include <boost/property_map/property_map.hpp>
-+#include <boost/pending/container_traits.hpp>
- #include <boost/range/irange.hpp>
- #include <boost/graph/graph_traits.hpp>
-@@ -1904,5 +1905,5 @@
- typedef typename Config::stored_vertex stored_vertex;
- Derived& g = static_cast<Derived&>(g_);
-- g.removing_vertex(u);
-+ g.removing_vertex(u, boost::graph_detail::iterator_stability(g_.m_vertices));
- stored_vertex* su = (stored_vertex*)u;
- g.m_vertices.erase(su->m_position);
-@@ -2204,5 +2205,5 @@
- typedef typename Config::directed_category Cat;
- Graph& g = static_cast<Graph&>(g_);
-- g.removing_vertex(v);
-+ g.removing_vertex(v, boost::graph_detail::iterator_stability(g_.m_vertices));
- detail::remove_vertex_dispatch(g, v, Cat());
- }
-Index: /trunk/boost/graph/distributed/named_graph.hpp
-===================================================================
---- /trunk/boost/graph/distributed/named_graph.hpp (revision 67706)
-+++ /trunk/boost/graph/distributed/named_graph.hpp (revision 82498)
-@@ -268,5 +268,6 @@
- /// Notify the named_graph that we are removing the given
- /// vertex. This is a no-op.
-- void removing_vertex(Vertex) { }
-+ template <typename VertexIterStability>
-+ void removing_vertex(Vertex, VertexIterStability) { }
-
- /// Notify the named_graph that we are clearing the graph
-@@ -1212,5 +1213,6 @@
- /// Notify the named_graph that we are removing the given
- /// vertex. This is a no-op.
-- void removing_vertex(Vertex) { }
-+ template <typename VertexIterStability>
-+ void removing_vertex(Vertex, VertexIterStability) { }
-
- /// Notify the named_graph that we are clearing the graph
-Index: /trunk/boost/graph/distributed/adjacency_list.hpp
-===================================================================
---- /trunk/boost/graph/distributed/adjacency_list.hpp (revision 77549)
-+++ /trunk/boost/graph/distributed/adjacency_list.hpp (revision 82498)
-@@ -38,4 +38,5 @@
- #include <boost/graph/distributed/selector.hpp>
- #include <boost/graph/parallel/process_group.hpp>
-+#include <boost/pending/container_traits.hpp>
-
- // Callbacks
-@@ -3428,5 +3429,5 @@
- BOOST_ASSERT(u.owner == g.processor());
- static_cast<named_graph_mixin&>(static_cast<graph_type&>(g))
-- .removing_vertex(u);
-+ .removing_vertex(u, boost::graph_detail::iterator_stability(g.base().m_vertices));
- g.distribution().clear();
- remove_vertex(u.local, g.base());
diff --git a/source/l/cairo/cairo.SlackBuild b/source/l/cairo/cairo.SlackBuild
index 1b834332d..79170d358 100755
--- a/source/l/cairo/cairo.SlackBuild
+++ b/source/l/cairo/cairo.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2013, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +23,12 @@
PKGNAM=cairo
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -68,6 +68,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+zcat $CWD/cairo.c088ba1faab9579efdaed7a524124901a17801b0.diff.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -81,26 +83,25 @@ CFLAGS="$SLKCFLAGS" \
--disable-trace \
--enable-xlib \
--enable-xcb \
- --enable-xcb-shm \
- --enable-xlib-xcb \
--enable-ps \
--enable-pdf \
--enable-svg \
--enable-tee \
+ --enable-ft \
+ --enable-gl \
--enable-gobject \
--enable-xml \
--build=$ARCH-slackware-linux
# None of these are 'stable' yet...
# --enable-qt \
-# --enable-gl \
# --enable-drm \
-# --enable-xlib-xcb \
-# --enable-xcb-shm \
# Not sure if these two are needed / useful yet; --enable-xcb is now default
# --enable-xcb-shm \
+# ^^ may cause GTK+3 instability
# --enable-xlib-xcb \
+# ^^ this one caused a GIMP slowdown
# Skipping this, because it causes a dependency on the specific
# version of binutils installed at compile time:
diff --git a/source/l/cairo/cairo.c088ba1faab9579efdaed7a524124901a17801b0.diff b/source/l/cairo/cairo.c088ba1faab9579efdaed7a524124901a17801b0.diff
new file mode 100644
index 000000000..c954cc7dd
--- /dev/null
+++ b/source/l/cairo/cairo.c088ba1faab9579efdaed7a524124901a17801b0.diff
@@ -0,0 +1,60 @@
+From c088ba1faab9579efdaed7a524124901a17801b0 Mon Sep 17 00:00:00 2001
+From: Uli Schlachter <psychon@znc.in>
+Date: Sat, 18 Jun 2016 15:08:52 +0200
+Subject: [PATCH] xlib: Fix double free in _get_image_surface()
+
+If XShmGetImage() fails, the code tries to continue with its normal,
+non-shared-memory path. However, the image variable, which was previously set to
+NULL, now points to an already-destroyed surface, causing a double-free when the
+function cleans up after itself (actually, its an assertion failure because the
+reference count of the surface is zero, but technically this is still a double
+free).
+
+Fix this by setting image=NULL after destroying the surface that this refers to,
+to make sure this surface will not be destroyed again.
+
+While we are here (multiple changes in a single commit are bad...), also fix the
+cleanup done in bail. In practice, &image->base should be safe when image==NULL,
+because this just adds some offset to the pointer (the offset here is actually
+zero, so this doesn't do anything at all). However, the C standard does not
+require this to be safe, so let's handle this case specially.
+
+Note that anything that is fixed by this change is still buggy, because the only
+reason why XShmGetImage() could fail would be BadDrawable, meaning that the
+target we draw to does not exist or was already destroyed. This patch will
+likely just cause X11 errors elsewhere and drawing to (possible) invalid
+drawables is not supported by cairo anyway. This means that if SHM fails, the
+following fallback code has a high chance of failing, too.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91967
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+---
+ src/cairo-xlib-surface.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
+index 3f407c3..555c1fe 100644
+--- a/src/cairo-xlib-surface.c
++++ b/src/cairo-xlib-surface.c
+@@ -807,6 +807,7 @@ _get_image_surface (cairo_xlib_surface_t *surface,
+ }
+
+ cairo_surface_destroy (&image->base);
++ image = NULL;
+ }
+ }
+
+@@ -1011,7 +1012,8 @@ _get_image_surface (cairo_xlib_surface_t *surface,
+ cairo_device_release (&display->base);
+
+ if (unlikely (status)) {
+- cairo_surface_destroy (&image->base);
++ if (image)
++ cairo_surface_destroy (&image->base);
+ return _cairo_surface_create_in_error (status);
+ }
+
+--
+2.8.1
+
+
diff --git a/source/l/cairomm/cairomm.SlackBuild b/source/l/cairomm/cairomm.SlackBuild
new file mode 100755
index 000000000..9f7c0325b
--- /dev/null
+++ b/source/l/cairomm/cairomm.SlackBuild
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=cairomm
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS libdocdir=/usr/doc/$PKGNAM-$VERSION || make libdocdir=/usr/doc/$PKGNAM-$VERSION || exit 1
+make install libdocdir=/usr/doc/$PKGNAM-$VERSION DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cp -a \
+ AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+# Remove images, API docs, and useless html file
+rm -rf $PKG/usr/doc/$PKGNAM-$VERSION/{images,reference,index.html}
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/cairomm/slack-desc b/source/l/cairomm/slack-desc
new file mode 100644
index 000000000..ed9754901
--- /dev/null
+++ b/source/l/cairomm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+cairomm: cairomm (C++ wrapper for the cairo graphics library)
+cairomm:
+cairomm: cairomm is a C++ wrapper for the cairo graphics library. It offers
+cairomm: all the power of cairo with an interface familiar to C++ developers,
+cairomm: including use of the Standard Template Library where it makes sense.
+cairomm:
+cairomm: Homepage: http://cairographics.org/cairomm/
+cairomm:
+cairomm:
+cairomm:
+cairomm:
diff --git a/source/l/dbus-glib/dbus-glib.SlackBuild b/source/l/dbus-glib/dbus-glib.SlackBuild
index e4dd8b56c..3f2fd7260 100755
--- a/source/l/dbus-glib/dbus-glib.SlackBuild
+++ b/source/l/dbus-glib/dbus-glib.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -42,8 +42,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -87,6 +87,13 @@ make install DESTDIR=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Put bash-completion file in system directory:
+mkdir -p $PKG/usr/share/bash-completion/completions/
+mv $PKG/etc/bash_completion.d/dbus-bash-completion.sh \
+ $PKG/usr/share/bash-completion/completions/dbus
+chmod 0644 $PKG/usr/share/bash-completion/completions/dbus
+rmdir --parents $PKG/etc/bash_completion.d 2>/dev/null
+
# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
diff --git a/source/l/dbus-python/dbus-python.SlackBuild b/source/l/dbus-python/dbus-python.SlackBuild
index 4b3b374b8..6139ae232 100755
--- a/source/l/dbus-python/dbus-python.SlackBuild
+++ b/source/l/dbus-python/dbus-python.SlackBuild
@@ -32,7 +32,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/dconf-editor/dconf-editor.SlackBuild b/source/l/dconf-editor/dconf-editor.SlackBuild
new file mode 100755
index 000000000..455450076
--- /dev/null
+++ b/source/l/dconf-editor/dconf-editor.SlackBuild
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+# Copyright 2008, 2009, 2013, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011 David Somero (dsomero@hotmail.com) Athens, TN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=dconf-editor
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a COPYING* NEWS README* $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz | sed "s,@LIBDIR@,/usr/lib${LIBDIRSUFFIX}," > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/dconf-editor/doinst.sh b/source/l/dconf-editor/doinst.sh
new file mode 100644
index 000000000..5b77efb0c
--- /dev/null
+++ b/source/l/dconf-editor/doinst.sh
@@ -0,0 +1,9 @@
+# Reload messagebus service
+if [ -x /etc/rc.d/rc.messagebus ]; then
+ sh /etc/rc.d/rc.messagebus reload
+fi
+
+# Try to run these. If they fail, no biggie.
+chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/ 1> /dev/null 2> /dev/null
+chroot . /usr/bin/gio-querymodules @LIBDIR@/gio/modules/ 1> /dev/null 2> /dev/null
+
diff --git a/source/l/dconf-editor/slack-desc b/source/l/dconf-editor/slack-desc
new file mode 100644
index 000000000..08a81ec23
--- /dev/null
+++ b/source/l/dconf-editor/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+dconf-editor: dconf-editor (graphical editor for dconf)
+dconf-editor:
+dconf-editor: The dconf-editor program provides a graphical interface for editing
+dconf-editor: settings that are stored in the dconf database. The gsettings utility
+dconf-editor: provides similar functionality on the command line.
+dconf-editor:
+dconf-editor:
+dconf-editor:
+dconf-editor:
+dconf-editor:
+dconf-editor:
diff --git a/source/l/dconf/dconf.SlackBuild b/source/l/dconf/dconf.SlackBuild
index 89fd7197a..e8bbccda3 100755
--- a/source/l/dconf/dconf.SlackBuild
+++ b/source/l/dconf/dconf.SlackBuild
@@ -28,8 +28,8 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
@@ -42,8 +42,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/desktop-file-utils/desktop-file-utils.SlackBuild b/source/l/desktop-file-utils/desktop-file-utils.SlackBuild
index a98deb9e4..12804bb4d 100755
--- a/source/l/desktop-file-utils/desktop-file-utils.SlackBuild
+++ b/source/l/desktop-file-utils/desktop-file-utils.SlackBuild
@@ -60,6 +60,10 @@ cd ${PKGNAM}-$VERSION || exit 1
zcat $CWD/desktop-file-utils.quiet.warnings.diff.gz | patch -p1 --verbose || exit 1
+patch -p1 < $CWD/gitpatches/0001-desktop-file-validate-Trailing-semicolons-have-been-.patch || exit 1
+patch -p1 < $CWD/gitpatches/0002-Add-Cinnamon-to-list-of-registered-environments.patch || exit 1
+patch -p1 < $CWD/gitpatches/0003-Add-EDE-to-the-list-of-desktop-environments.patch || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/l/desktop-file-utils/gitpatches/0001-desktop-file-validate-Trailing-semicolons-have-been-.patch b/source/l/desktop-file-utils/gitpatches/0001-desktop-file-validate-Trailing-semicolons-have-been-.patch
new file mode 100644
index 000000000..e3be90d90
--- /dev/null
+++ b/source/l/desktop-file-utils/gitpatches/0001-desktop-file-validate-Trailing-semicolons-have-been-.patch
@@ -0,0 +1,177 @@
+From 9e279cc3fac9a7e92bf426867fa83c0c7aec5711 Mon Sep 17 00:00:00 2001
+From: Jerome Leclanche <jerome@leclan.ch>
+Date: Tue, 1 Apr 2014 15:33:16 +0200
+Subject: [PATCH 1/3] desktop-file-validate: Trailing semicolons have been
+ downgraded to optional
+
+https://bugs.freedesktop.org/show_bug.cgi?id=76902
+Approved by David Faure and Ryan Lortie
+---
+ src/validate.c | 105 ---------------------------------------------------------
+ 1 file changed, 105 deletions(-)
+
+diff --git a/src/validate.c b/src/validate.c
+index 68fd6f0..77a5fda 100644
+--- a/src/validate.c
++++ b/src/validate.c
+@@ -765,9 +765,6 @@ validate_numeric_key (kf_validator *kf,
+ /* + Values of type string may contain all ASCII characters except for control
+ * characters.
+ * Checked.
+- * + The multiple values should be separated by a semicolon. Those keys which
+- * have several values should have a semicolon as the trailing character.
+- * Checked.
+ * + FIXME: how should an empty list be handled?
+ */
+ static gboolean
+@@ -799,24 +796,6 @@ validate_string_regexp_list_key (kf_validator *kf,
+ return FALSE;
+ }
+
+- if (i > 0 && value[i - 1] != ';') {
+- print_fatal (kf, "value \"%s\" for %s list key \"%s\" in group \"%s\" "
+- "does not have a semicolon (';') as trailing "
+- "character\n",
+- value, type, key, kf->current_group);
+-
+- return FALSE;
+- }
+-
+- if (i > 1 && value[i - 1] == ';' && value[i - 2] == '\\' &&
+- (i < 3 || value[i - 3] != '\\')) {
+- print_fatal (kf, "value \"%s\" for %s list key \"%s\" in group \"%s\" "
+- "has an escaped semicolon (';') as trailing character\n",
+- value, type, key, kf->current_group);
+-
+- return FALSE;
+- }
+-
+ return TRUE;
+ }
+
+@@ -845,10 +824,6 @@ validate_regexp_list_key (kf_validator *kf,
+ * + If a postfixed key occurs, the same key must be also present without the
+ * postfix.
+ * Checked.
+- * + The multiple values should be separated by a semicolon. Those keys which
+- * have several values should have a semicolon as the trailing character.
+- * FIXME: partly checked. We use checks that work for sure for ascii
+- * characters, but that could possibly fail in some weird UTF-8 strings.
+ * + FIXME: how should an empty list be handled?
+ */
+ static gboolean
+@@ -858,7 +833,6 @@ validate_localestring_list_key (kf_validator *kf,
+ const char *value)
+ {
+ char *locale_key;
+- int len;
+
+ if (locale)
+ locale_key = g_strdup_printf ("%s[%s]", key, locale);
+@@ -876,27 +850,6 @@ validate_localestring_list_key (kf_validator *kf,
+ return FALSE;
+ }
+
+- len = strlen (value);
+-
+- if (len > 0 && value[len - 1] != ';') {
+- print_fatal (kf, "value \"%s\" for locale string list key \"%s\" in group "
+- "\"%s\" does not have a semicolon (';') as trailing "
+- "character\n",
+- value, locale_key, kf->current_group);
+-
+- return FALSE;
+- }
+-
+- if (len > 1 && value[len - 1] == ';' && value[len - 2] == '\\' &&
+- (len < 3 || value[len - 3] != '\\')) {
+- print_fatal (kf, "value \"%s\" for locale string list key \"%s\" in group "
+- "\"%s\" has an escaped semicolon (';') as trailing "
+- "character\n",
+- value, locale_key, kf->current_group);
+-
+- return FALSE;
+- }
+-
+ if (!g_hash_table_lookup (kf->current_keys, key)) {
+ print_fatal (kf, "key \"%s\" in group \"%s\" is a localized key, but "
+ "there is no non-localized key \"%s\"\n",
+@@ -3109,45 +3062,11 @@ desktop_file_validate (const char *filename,
+ return (!kf.fatal_error);
+ }
+
+-static void
+-fixup_list (GKeyFile *keyfile,
+- const gchar *filename,
+- const gchar *key)
+-{
+- char *value;
+- int len;
+-
+- value = g_key_file_get_value (keyfile, GROUP_DESKTOP_ENTRY, key, NULL);
+- if (!value)
+- return;
+-
+- len = strlen (value);
+-
+- if (len > 0 && (value[len - 1] != ';' ||
+- (len > 1 && value[len - 2] == '\\' &&
+- (len < 3 || value[len - 3] != '\\')))) {
+- char *str;
+-
+- g_printerr ("%s: warning: key \"%s\" is a list and does not have a "
+- "semicolon as trailing character, fixing\n",
+- filename, key);
+-
+- str = g_strconcat (value, ";", NULL);
+- g_key_file_set_value (keyfile, GROUP_DESKTOP_ENTRY,
+- key, str);
+- g_free (str);
+- }
+-}
+-
+ /* return FALSE if we were unable to fix the file */
+ gboolean
+ desktop_file_fixup (GKeyFile *keyfile,
+ const char *filename)
+ {
+- gchar **keys;
+- gsize keys_nb;
+- unsigned int i;
+-
+ if (g_key_file_has_group (keyfile, GROUP_KDE_DESKTOP_ENTRY)) {
+ g_printerr ("%s: warning: renaming deprecated \"%s\" group to \"%s\"\n",
+ filename, GROUP_KDE_DESKTOP_ENTRY, GROUP_DESKTOP_ENTRY);
+@@ -3155,29 +3074,5 @@ desktop_file_fixup (GKeyFile *keyfile,
+ GROUP_KDE_DESKTOP_ENTRY, GROUP_DESKTOP_ENTRY);
+ }
+
+- keys = g_key_file_get_keys (keyfile, GROUP_DESKTOP_ENTRY, &keys_nb, NULL);
+-
+- /* Fix lists to have a ';' at the end if they don't */
+- for (i = 0; i < G_N_ELEMENTS (registered_desktop_keys); i++) {
+- if (registered_desktop_keys[i].type == DESKTOP_STRING_LIST_TYPE ||
+- registered_desktop_keys[i].type == DESKTOP_REGEXP_LIST_TYPE)
+- fixup_list (keyfile, filename, registered_desktop_keys[i].name);
+-
+- if (registered_desktop_keys[i].type == DESKTOP_LOCALESTRING_LIST_TYPE) {
+- gsize keylen;
+- guint j;
+-
+- keylen = strlen (registered_desktop_keys[i].name);
+- for (j = 0; j < keys_nb; j++) {
+- if (g_str_has_prefix (keys[j], registered_desktop_keys[i].name) &&
+- (keys[j][keylen] == '[' || keys[j][keylen] == '\0')) {
+- fixup_list (keyfile, filename, keys[j]);
+- }
+- }
+- }
+- }
+-
+- g_strfreev (keys);
+-
+ return TRUE;
+ }
+--
+2.2.0
+
diff --git a/source/l/desktop-file-utils/gitpatches/0002-Add-Cinnamon-to-list-of-registered-environments.patch b/source/l/desktop-file-utils/gitpatches/0002-Add-Cinnamon-to-list-of-registered-environments.patch
new file mode 100644
index 000000000..132d16a41
--- /dev/null
+++ b/source/l/desktop-file-utils/gitpatches/0002-Add-Cinnamon-to-list-of-registered-environments.patch
@@ -0,0 +1,28 @@
+From 848c82b2332d0556c22c10a9c64d1f39850271fe Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster@gmail.com>
+Date: Fri, 7 Mar 2014 20:16:52 -0500
+Subject: [PATCH 2/3] Add Cinnamon to list of registered environments.
+
+https://github.com/linuxmint/Cinnamon
+
+https://bugs.freedesktop.org/show_bug.cgi?id=73497
+---
+ src/validate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/validate.c b/src/validate.c
+index 77a5fda..6859c1b 100644
+--- a/src/validate.c
++++ b/src/validate.c
+@@ -363,7 +363,7 @@ static DesktopKeyDefinition registered_action_keys[] = {
+ };
+
+ static const char *show_in_registered[] = {
+- "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old"
++ "Cinnamon", "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old"
+ };
+
+ static struct {
+--
+2.2.0
+
diff --git a/source/l/desktop-file-utils/gitpatches/0003-Add-EDE-to-the-list-of-desktop-environments.patch b/source/l/desktop-file-utils/gitpatches/0003-Add-EDE-to-the-list-of-desktop-environments.patch
new file mode 100644
index 000000000..0f1d70acb
--- /dev/null
+++ b/source/l/desktop-file-utils/gitpatches/0003-Add-EDE-to-the-list-of-desktop-environments.patch
@@ -0,0 +1,26 @@
+From be0c630a19aa1788ef731def911770ce497d6ba3 Mon Sep 17 00:00:00 2001
+From: David Faure <faure@kde.org>
+Date: Tue, 1 Apr 2014 22:29:08 +0200
+Subject: [PATCH 3/3] Add EDE to the list of desktop environments
+
+https://bugs.freedesktop.org/show_bug.cgi?id=56353
+---
+ src/validate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/validate.c b/src/validate.c
+index 6859c1b..b4b752e 100644
+--- a/src/validate.c
++++ b/src/validate.c
+@@ -363,7 +363,7 @@ static DesktopKeyDefinition registered_action_keys[] = {
+ };
+
+ static const char *show_in_registered[] = {
+- "Cinnamon", "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Old"
++ "GNOME", "KDE", "LXDE", "MATE", "Razor", "ROX", "TDE", "Unity", "XFCE", "Cinnamon", "EDE", "Old"
+ };
+
+ static struct {
+--
+2.2.0
+
diff --git a/source/l/djvulibre/djvulibre.SlackBuild b/source/l/djvulibre/djvulibre.SlackBuild
index 9d2f6762c..706e45efd 100755
--- a/source/l/djvulibre/djvulibre.SlackBuild
+++ b/source/l/djvulibre/djvulibre.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -67,11 +67,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# The qt stuff really isn't needed here, as the viewer won't build
-# with qt4 (and djview4 is now a separate package).
-# It won't matter, as we only need the headers and libs
-# anyway for okular to use, so ignore the warnings... :)
-
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -82,11 +77,9 @@ CXXFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--infodir=/usr/info \
--docdir=/usr/doc/$PKGNAM-$VERSION \
- --with-qt=/usr/lib${LIBDIRSUFFIX}/qt \
--build=$ARCH-slackware-linux
make clean || exit 1
-make depend || exit 1
make || exit 1 # This isn't fully compatible with threaded make
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/ebook-tools/ebook-tools.SlackBuild b/source/l/ebook-tools/ebook-tools.SlackBuild
index 44fc031e8..7e590df23 100755
--- a/source/l/ebook-tools/ebook-tools.SlackBuild
+++ b/source/l/ebook-tools/ebook-tools.SlackBuild
@@ -24,7 +24,7 @@
PKGNAM=ebook-tools
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -32,7 +32,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -40,8 +40,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -76,6 +76,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Patch from svn to support epub3 fixed layout
+zcat $CWD/epub3_fixed_layout.patch.gz | patch -p0 --verbose || exit 1
+
# Build and install:
mkdir -p build
cd build
@@ -95,7 +98,7 @@ cd -
# Remove lit2epub binary because it doesn't work without clit (which has
# distribution restrictions so we do not include it)
-rm -f $PKG/usr/bin/lit2epub
+rm -f $PKG/usr/bin/lit2epub
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" \
diff --git a/source/l/ebook-tools/epub3_fixed_layout.patch b/source/l/ebook-tools/epub3_fixed_layout.patch
new file mode 100644
index 000000000..b06b6378a
--- /dev/null
+++ b/source/l/ebook-tools/epub3_fixed_layout.patch
@@ -0,0 +1,160 @@
+Index: src/libepub/opf.c
+===================================================================
+--- src/libepub/opf.c (revision 147)
++++ src/libepub/opf.c (revision 148)
+@@ -184,12 +184,16 @@
+ struct meta *new = malloc(sizeof(struct meta));
+ new->name = xmlTextReaderGetAttribute(reader, (xmlChar *)"name");
+ new->content = xmlTextReaderGetAttribute(reader, (xmlChar *)"content");
++ new->property = xmlTextReaderGetAttribute(reader, (xmlChar *)"property");
++ new->value = string;
+
+ AddNode(meta->meta, NewListNode(meta->meta, new));
+- if (string)
+- free(string);
+ _epub_print_debug(opf->epub, DEBUG_INFO, "meta is %s: %s",
+ new->name, new->content);
++ if (new->property) {
++ _epub_print_debug(opf->epub, DEBUG_INFO, "meta has property %s: %s",
++ new->property, new->value);
++ }
+ } else if (xmlStrcasecmp(local, (xmlChar *)"date") == 0) {
+ struct date *new = malloc(sizeof(struct date));
+ new->date = string;
+@@ -647,7 +651,7 @@
+
+ void _opf_parse_spine(struct opf *opf, xmlTextReaderPtr reader) {
+ int ret;
+- xmlChar *linear;
++ xmlChar *linear, *properties;
+
+ _epub_print_debug(opf->epub, DEBUG_INFO, "parsing spine");
+
+@@ -707,7 +711,25 @@
+
+ if(linear)
+ free(linear);
+-
++
++ properties = xmlTextReaderGetAttribute(reader, (xmlChar *)"properties");
++ if (properties) {
++ if (xmlStrcasecmp(properties, (xmlChar *)"rendition:page-spread-center") == 0) {
++ item->spreadPosition = PAGE_SPREAD_CENTER;
++ } else if (xmlStrcasecmp(properties, (xmlChar *)"page-spread-left") == 0) {
++ item->spreadPosition = PAGE_SPREAD_LEFT;
++ } else if (xmlStrcasecmp(properties, (xmlChar *)"page-spread-right") == 0) {
++ item->spreadPosition = PAGE_SPREAD_RIGHT;
++ } else {
++ item->spreadPosition = PAGE_SPREAD_UNKNOWN;
++ }
++ } else {
++ item->spreadPosition = PAGE_SPREAD_UNKNOWN;
++ }
++
++ if(properties)
++ free(properties);
++
+ AddNode(opf->spine, NewListNode(opf->spine, item));
+
+ // decide what to do with non linear items
+@@ -884,7 +906,7 @@
+ DumpList(opf->metadata->creator, (ListDumpFunc)_list_dump_creator);
+ printf("Identifier(s):\n ");
+ DumpList(opf->metadata->id, (ListDumpFunc)_list_dump_id);
+- printf("Reading order:\n ");
++ printf("Reading order:\n");
+ DumpList(opf->spine, (ListDumpFunc)_list_dump_spine);
+ printf("\n");
+ if (opf->guide) {
+Index: src/libepub/epub_shared.h
+===================================================================
+--- src/libepub/epub_shared.h (revision 147)
++++ src/libepub/epub_shared.h (revision 148)
+@@ -52,4 +52,14 @@
+ TITERATOR_PAGES /**< The pages of the ebook */
+ };
+
++/**
++ The page-spread-* properties
++*/
++enum page_spread_position {
++ PAGE_SPREAD_CENTER,
++ PAGE_SPREAD_LEFT,
++ PAGE_SPREAD_RIGHT,
++ PAGE_SPREAD_UNKNOWN
++};
++
+ #endif
+Index: src/libepub/epublib.h
+===================================================================
+--- src/libepub/epublib.h (revision 147)
++++ src/libepub/epublib.h (revision 148)
+@@ -65,6 +65,8 @@
+ struct meta {
+ xmlChar *name;
+ xmlChar *content;
++ xmlChar *property;
++ xmlChar *value;
+ };
+
+ struct id {
+@@ -170,6 +172,7 @@
+ struct spine {
+ xmlChar *idref;
+ int linear; //bool
++ enum page_spread_position spreadPosition;
+ };
+
+ struct opf {
+Index: src/libepub/list.c
+===================================================================
+--- src/libepub/list.c (revision 147)
++++ src/libepub/list.c (revision 148)
+@@ -163,10 +163,24 @@
+ root->fullpath, root->mediatype);
+ }
+ void _list_dump_spine(struct spine *spine) {
+- printf("%s", spine->idref);
++ printf(" %s", spine->idref);
+ if (spine->linear)
+ printf("(L)");
+- printf(" ");
++ switch (spine->spreadPosition) {
++ case PAGE_SPREAD_CENTER:
++ printf("(CENTER)");
++ break;
++ case PAGE_SPREAD_LEFT:
++ printf("(LEFT)");
++ break;
++ case PAGE_SPREAD_RIGHT:
++ printf("(RIGHT)");
++ break;
++ default:
++ printf("(UNKNOWN)");
++ break;
++ }
++ printf(" \n");
+ }
+
+ void _list_dump_spine_linear(struct spine *spine) {
+@@ -200,6 +214,20 @@
+ printf("%s", meta->content);
+ else
+ printf("unspecified");
++
++ printf(" : ");
++
++ if (meta->property)
++ printf("%s", meta->property);
++ else
++ printf("unspecified");
++
++ printf(" : ");
++
++ if (meta->value)
++ printf("%s", meta->value);
++ else
++ printf("unspecified");
+
+ printf("\n");
+ }
diff --git a/source/l/ebook-tools/slack-desc b/source/l/ebook-tools/slack-desc
index 374d507b4..9833019be 100644
--- a/source/l/ebook-tools/slack-desc
+++ b/source/l/ebook-tools/slack-desc
@@ -5,10 +5,10 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler--------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
ebook-tools: ebook-tools (access and convert various ebook file formats)
ebook-tools:
-ebook-tools: Tools for accessing and converting various ebook file formats.
+ebook-tools: Tools for accessing and converting various ebook file formats.
ebook-tools:
ebook-tools: Home page: http://sourceforge.net/projects/ebook-tools/
ebook-tools:
diff --git a/source/l/eigen2/eigen2.SlackBuild b/source/l/eigen2/eigen2.SlackBuild
index 474e5ae91..a645425c9 100755
--- a/source/l/eigen2/eigen2.SlackBuild
+++ b/source/l/eigen2/eigen2.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2007, 2008 Robby Workman, Northport, Alabama, USA
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
# Redistribution and use of this script, with or without modification, is
@@ -22,13 +22,13 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.0.10
+VERSION=2.0.17
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -39,8 +39,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-eigen2
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -56,9 +56,9 @@ fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP || exit 1
-rm -rf eigen-$VERSION
+rm -rf eigen-eigen-*
tar xvf $CWD/eigen2-$VERSION.tar.?z* || exit 1
-cd eigen || exit 1
+cd eigen-eigen-* || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
diff --git a/source/l/eigen3/eigen3.SlackBuild b/source/l/eigen3/eigen3.SlackBuild
new file mode 100755
index 000000000..54fa69975
--- /dev/null
+++ b/source/l/eigen3/eigen3.SlackBuild
@@ -0,0 +1,102 @@
+#!/bin/sh
+
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014 Eric Hameleers, Eindhoven, NL
+# All rights reserved.
+
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=eigen
+VERSION=3.2.7
+SRCVER="eigen-b30b87236a1b"
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $PKG $TMP
+cd $TMP
+rm -rf eigen-$SRCVER
+tar xvf $CWD/eigen-$VERSION.tar.xz || exit 1
+cd eigen-$SRCVER || exit 1
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+mkdir -p build
+cd build
+ QTDIR=/usr/lib${LIBDIRSUFFIX}/qt \
+ PATH=$QTDIR/bin:$PATH \
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DEIGEN_INCLUDE_INSTALL_DIR=/usr/include/eigen3 \
+ ..
+ make || exit 1
+ make install DESTDIR=$PKG || exit 1
+cd ..
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a COPYING* $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/eigen3-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/eigen3/slack-desc b/source/l/eigen3/slack-desc
new file mode 100644
index 000000000..8670031cf
--- /dev/null
+++ b/source/l/eigen3/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+eigen3: Eigen3 (c++ math library)
+eigen3:
+eigen3: Eigen is a C++ template library for linear algebra: matrices, vectors,
+eigen3: numerical solvers, and related algorithms.
+eigen3:
+eigen3:
+eigen3:
+eigen3:
+eigen3:
+eigen3: Homepage: http://eigen.tuxfamily.org
+eigen3:
diff --git a/source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch b/source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch
new file mode 100644
index 000000000..e3a27ff0e
--- /dev/null
+++ b/source/l/elfutils/elfutils-0.163-unstrip-shf_info_link.patch
@@ -0,0 +1,91 @@
+commit f9fc50c3eced243c0648fb0fbfe2c9877c25e1e4
+Author: Mark Wielaard <mjw@redhat.com>
+Date: Wed Jul 29 17:51:27 2015 +0200
+
+ unstrip: Handle debuginfo files with missing SHF_INFO_LINK section flags.
+
+ With GCC 5 there might be a .rela.plt section with SHF_INFO_LINK set.
+ Buggy binutils objdump might strip it from the section in the debug file.
+ Ignore such differences for relocation sections and put the flag back
+ if necessary.
+
+ Also improve the error message a little by only discarding the already
+ matched sections if there is an prelink undo section. Otherwise we will
+ report all sections as not matching if the file wasn't prelinked instead
+ of just the non-matching sections.
+
+ New testfiles generated by gcc5 and binutils objdump added.
+
+ Signed-off-by: Mark Wielaard <mjw@redhat.com>
+
+diff --git a/src/unstrip.c b/src/unstrip.c
+index 4a8e5fa..8833094 100644
+--- a/src/unstrip.c
++++ b/src/unstrip.c
+@@ -867,12 +867,28 @@ compare_symbols_output (const void *a, const void *b)
+
+ #undef CMP
+
++/* Return true if the flags of the sections match, ignoring the SHF_INFO_LINK
++ flag if the section contains relocation information. */
++static bool
++sections_flags_match (Elf64_Xword sh_flags1, Elf64_Xword sh_flags2,
++ Elf64_Word sh_type)
++{
++ if (sh_type == SHT_REL || sh_type == SHT_RELA)
++ {
++ sh_flags1 &= ~SHF_INFO_LINK;
++ sh_flags2 &= ~SHF_INFO_LINK;
++ }
++
++ return sh_flags1 == sh_flags2;
++}
++
+ /* Return true iff the flags, size, and name match. */
+ static bool
+ sections_match (const struct section *sections, size_t i,
+ const GElf_Shdr *shdr, const char *name)
+ {
+- return (sections[i].shdr.sh_flags == shdr->sh_flags
++ return (sections_flags_match (sections[i].shdr.sh_flags, shdr->sh_flags,
++ sections[i].shdr.sh_type)
+ && (sections[i].shdr.sh_size == shdr->sh_size
+ || (sections[i].shdr.sh_size < shdr->sh_size
+ && section_can_shrink (&sections[i].shdr)))
+@@ -930,10 +946,6 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab,
+ struct section *sections,
+ size_t nalloc, size_t nsections)
+ {
+- /* Clear assignments that might have been bogus. */
+- for (size_t i = 0; i < nalloc; ++i)
+- sections[i].outscn = NULL;
+-
+ Elf_Scn *undo = NULL;
+ for (size_t i = nalloc; i < nsections; ++i)
+ {
+@@ -952,6 +964,10 @@ find_alloc_sections_prelink (Elf *debug, Elf_Data *debug_shstrtab,
+ size_t undo_nalloc = 0;
+ if (undo != NULL)
+ {
++ /* Clear assignments that might have been bogus. */
++ for (size_t i = 0; i < nalloc; ++i)
++ sections[i].outscn = NULL;
++
+ Elf_Data *undodata = elf_rawdata (undo, NULL);
+ ELF_CHECK (undodata != NULL,
+ _("cannot read '.gnu.prelink_undo' section: %s"));
+@@ -1500,6 +1516,14 @@ more sections in stripped file than debug file -- arguments reversed?"));
+ shdr_mem.sh_size = sec->shdr.sh_size;
+ shdr_mem.sh_info = sec->shdr.sh_info;
+ shdr_mem.sh_link = sec->shdr.sh_link;
++
++ /* Buggy binutils objdump might have stripped the SHF_INFO_LINK
++ put it back if necessary. */
++ if ((sec->shdr.sh_type == SHT_REL || sec->shdr.sh_type == SHT_RELA)
++ && sec->shdr.sh_flags != shdr_mem.sh_flags
++ && (sec->shdr.sh_flags & SHF_INFO_LINK) != 0)
++ shdr_mem.sh_flags |= SHF_INFO_LINK;
++
+ if (sec->shdr.sh_link != SHN_UNDEF)
+ shdr_mem.sh_link = ndx_section[sec->shdr.sh_link - 1];
+ if (shdr_mem.sh_flags & SHF_INFO_LINK)
diff --git a/source/l/elfutils/elfutils-portability-0.163.patch b/source/l/elfutils/elfutils-portability-0.163.patch
new file mode 100644
index 000000000..f347ed1a8
--- /dev/null
+++ b/source/l/elfutils/elfutils-portability-0.163.patch
@@ -0,0 +1,2108 @@
+diffelfutils/backends/ChangeLog git-portable/backends/ChangeLog
+--- elfutils/backends/ChangeLog
++++ elfutils/backends/ChangeLog
+@@ -498,6 +498,10 @@
+ * ppc_attrs.c (ppc_check_object_attribute): Handle tag
+ GNU_Power_ABI_Struct_Return.
+
++2009-01-23 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (libebl_%.so): Use $(LD_AS_NEEDED).
++
+ 2008-10-04 Ulrich Drepper <drepper@redhat.com>
+
+ * i386_reloc.def: Fix entries for TLS_GOTDESC, TLS_DESC_CALL, and
+@@ -825,6 +829,11 @@
+ * sparc_init.c: Likewise.
+ * x86_64_init.c: Likewise.
+
++2005-11-22 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (LD_AS_NEEDED): New variable, substituted by configure.
++ (libebl_%.so rule): Use it in place of -Wl,--as-needed.
++
+ 2005-11-19 Roland McGrath <roland@redhat.com>
+
+ * ppc64_reloc.def: REL30 -> ADDR30.
+@@ -847,6 +856,9 @@
+ * Makefile.am (uninstall): Don't try to remove $(pkgincludedir).
+ (CLEANFILES): Add libebl_$(m).so.
+
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ * ppc_reloc.def: Update bits per Alan Modra <amodra@bigpond.net.au>.
+ * ppc64_reloc.def: Likewise.
+
+diffelfutils/backends/Makefile.am git-portable/backends/Makefile.am
+--- elfutils/backends/Makefile.am
++++ elfutils/backends/Makefile.am
+@@ -119,7 +119,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
+ $(LINK) -shared -o $(@:.map=.so) \
+ -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
+ -Wl,--version-script,$(@:.so=.map) \
+- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw)
++ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw)
+ @$(textrel_check)
+
+ libebl_i386.so: $(cpu_i386)
+diffelfutils/backends/Makefile.in git-portable/backends/Makefile.in
+--- elfutils/backends/Makefile.in
++++ elfutils/backends/Makefile.in
+@@ -90,7 +90,8 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ subdir = backends
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -300,6 +301,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -331,6 +333,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -398,14 +401,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+- $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++ $($(*F)_no_Werror),,-Werror) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++ $($(*F)_CFLAGS) $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(foreach m,$(modules), libebl_$(m).map \
+ libebl_$(m).so $(am_libebl_$(m)_pic_a_OBJECTS))
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+@@ -912,7 +915,7 @@ libebl_%.so libebl_%.map: libebl_%_pic.a
+ $(LINK) -shared -o $(@:.map=.so) \
+ -Wl,--whole-archive $< $(cpu_$*) -Wl,--no-whole-archive \
+ -Wl,--version-script,$(@:.so=.map) \
+- -Wl,-z,defs -Wl,--as-needed $(libelf) $(libdw)
++ -Wl,-z,defs $(LD_AS_NEEDED) $(libelf) $(libdw)
+ @$(textrel_check)
+
+ libebl_i386.so: $(cpu_i386)
+diffelfutils/ChangeLog git-portable/ChangeLog
+--- elfutils/ChangeLog
++++ elfutils/ChangeLog
+@@ -258,6 +258,8 @@
+
+ 2012-01-24 Mark Wielaard <mjw@redhat.com>
+
++ * configure.ac: Wrap AC_COMPILE_IFELSE sources in AC_LANG_SOURCE.
++
+ * COPYING: Fix address. Updated version from gnulib.
+
+ 2012-01-23 Mark Wielaard <mjw@redhat.com>
+@@ -276,6 +278,9 @@
+
+ 2011-10-08 Mike Frysinger <vapier@gentoo.org>
+
++ * configure.ac (--disable-werror): Handle it, controlling BUILD_WERROR
++ automake option.
++
+ * configure.ac: Fix use of AC_ARG_ENABLE to handle $enableval correctly.
+
+ 2011-10-02 Ulrich Drepper <drepper@gmail.com>
+@@ -297,6 +302,10 @@
+
+ * configure.ac (LOCALEDIR, DATADIRNAME): Removed.
+
++2009-11-22 Roland McGrath <roland@redhat.com>
++
++ * configure.ac: Use sed and expr instead of modern bash extensions.
++
+ 2009-09-21 Ulrich Drepper <drepper@redhat.com>
+
+ * configure.ac: Update for more modern autoconf.
+@@ -305,6 +314,10 @@
+
+ * configure.ac (zip_LIBS): Check for liblzma too.
+
++2009-08-17 Roland McGrath <roland@redhat.com>
++
++ * configure.ac: Check for -fgnu89-inline; add it to WEXTRA if it works.
++
+ 2009-04-19 Roland McGrath <roland@redhat.com>
+
+ * configure.ac (eu_version): Round down here, not in version.h macros.
+@@ -316,6 +329,8 @@
+
+ 2009-01-23 Roland McGrath <roland@redhat.com>
+
++ * configure.ac: Check for __builtin_popcount.
++
+ * configure.ac (zlib check): Check for gzdirect, need zlib >= 1.2.2.3.
+
+ * configure.ac (__thread check): Use AC_LINK_IFELSE, in case of
+@@ -396,6 +411,10 @@
+ * configure.ac: Add dummy automake conditional to get dependencies
+ for non-generic linker right. See src/Makefile.am.
+
++2005-11-22 Roland McGrath <roland@redhat.com>
++
++ * configure.ac: Check for --as-needed linker option.
++
+ 2005-11-18 Roland McGrath <roland@redhat.com>
+
+ * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New variable.
+@@ -443,6 +462,17 @@
+ * Makefile.am (all_SUBDIRS): Add libdwfl.
+ * configure.ac: Write libdwfl/Makefile.
+
++2005-05-31 Roland McGrath <roland@redhat.com>
++
++ * configure.ac (WEXTRA): Check for -Wextra and set this substitution.
++
++ * configure.ac: Check for struct stat st_?tim members.
++ * src/strip.c (process_file): Use st_?time if st_?tim are not there.
++
++ * configure.ac: Check for futimes function.
++ * src/strip.c (handle_elf) [! HAVE_FUTIMES]: Use utimes instead.
++ (handle_ar) [! HAVE_FUTIMES]: Likewise.
++
+ 2005-05-19 Roland McGrath <roland@redhat.com>
+
+ * configure.ac [AH_BOTTOM] (INTDECL, _INTDECL): New macros.
+diffelfutils/config/ChangeLog git-portable/config/ChangeLog
+--- elfutils/config/ChangeLog
++++ elfutils/config/ChangeLog
+@@ -110,6 +110,10 @@
+
+ * known-dwarf.awk: Use gawk.
+
++2011-10-08 Mike Frysinger <vapier@gentoo.org>
++
++ * eu.am [BUILD_WERROR]: Conditionalize -Werror use on this.
++
+ 2010-07-02 Ulrich Drepper <drepper@redhat.com>
+
+ * elfutils.spec.in: Add more BuildRequires.
+diffelfutils/config/eu.am git-portable/config/eu.am
+--- elfutils/config/eu.am
++++ elfutils/config/eu.am
+@@ -1,6 +1,6 @@
+ ## Common automake fragments for elfutils subdirectory makefiles.
+ ##
+-## Copyright (C) 2010, 2014 Red Hat, Inc.
++## Copyright (C) 2010-2011, 2014 Red Hat, Inc.
+ ##
+ ## This file is part of elfutils.
+ ##
+@@ -29,6 +29,9 @@
+ ## not, see <http://www.gnu.org/licenses/>.
+ ##
+
++WEXTRA = @WEXTRA@
++LD_AS_NEEDED = @LD_AS_NEEDED@
++
+ DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+
+@@ -38,12 +41,17 @@ STACK_USAGE_WARNING=-Wstack-usage=262144
+ else
+ STACK_USAGE_WARNING=
+ endif
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow \
+ $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
++ $(if $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) \
++ $(if $($(*F)_no_Wformat),-Wno-format,-Wformat=2) \
+ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+ $($(*F)_CFLAGS)
+
++if BUILD_WERROR
++AM_CFLAGS += $(if $($(*F)_no_Werror),,-Werror)
++endif
++
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+
+ DEFS.os = -DPIC -DSHARED
+diffelfutils/config/Makefile.in git-portable/config/Makefile.in
+--- elfutils/config/Makefile.in
++++ elfutils/config/Makefile.in
+@@ -160,6 +160,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -191,6 +192,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+diffelfutils/config.h.in git-portable/config.h.in
+--- elfutils/config.h.in
++++ elfutils/config.h.in
+@@ -6,6 +6,12 @@
+ /* Should ar and ranlib use -D behavior by default? */
+ #undef DEFAULT_AR_DETERMINISTIC
+
++/* Have __builtin_popcount. */
++#undef HAVE_BUILTIN_POPCOUNT
++
++/* Define to 1 if you have the `futimens' function. */
++#undef HAVE_FUTIMENS
++
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+
+@@ -105,4 +111,7 @@
+ /* Define for large files, on AIX-style hosts. */
+ #undef _LARGE_FILES
+
++/* Stubbed out if missing compiler support. */
++#undef __thread
++
+ #include <eu-config.h>
+diffelfutils/configure git-portable/configure
+--- elfutils/configure
++++ elfutils/configure
+@@ -672,6 +672,8 @@ ZLIB_TRUE
+ LIBEBL_SUBDIR
+ TESTS_RPATH_FALSE
+ TESTS_RPATH_TRUE
++BUILD_WERROR_FALSE
++BUILD_WERROR_TRUE
+ BUILD_STATIC_FALSE
+ BUILD_STATIC_TRUE
+ USE_VALGRIND_FALSE
+@@ -687,6 +689,8 @@ NEVER_TRUE
+ base_cpu
+ NATIVE_LD_FALSE
+ NATIVE_LD_TRUE
++LD_AS_NEEDED
++WEXTRA
+ NM
+ READELF
+ ac_ct_AR
+@@ -807,6 +811,7 @@ enable_gprof
+ enable_gcov
+ enable_sanitize_undefined
+ enable_valgrind
++enable_werror
+ enable_tests_rpath
+ enable_libebl_subdir
+ with_zlib
+@@ -1467,6 +1472,7 @@ Optional Features:
+ --enable-sanitize-undefined
+ Use gcc undefined behaviour sanitizer
+ --enable-valgrind run all tests under valgrind
++ --disable-werror do not build with -Werror
+ --enable-tests-rpath build $ORIGIN-using rpath into tests
+ --enable-libebl-subdir=DIR
+ install libebl_CPU modules in $(libdir)/DIR
+@@ -1665,6 +1671,73 @@ fi
+
+ } # ac_fn_c_try_link
+
++# ac_fn_c_check_func LINENO FUNC VAR
++# ----------------------------------
++# Tests whether FUNC exists, setting the cache variable VAR accordingly
++ac_fn_c_check_func ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
++$as_echo_n "checking for $2... " >&6; }
++if eval \${$3+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
++ For example, HP-UX 11i <limits.h> declares gettimeofday. */
++#define $2 innocuous_$2
++
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char $2 (); below.
++ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++ <limits.h> exists even on freestanding compilers. */
++
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
++
++#undef $2
++
++/* Override any GCC internal prototype to avoid an error.
++ Use char because int might match the return type of a GCC
++ builtin and then its argument prototype would still apply. */
++#ifdef __cplusplus
++extern "C"
++#endif
++char $2 ();
++/* 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_$2 || defined __stub___$2
++choke me
++#endif
++
++int
++main ()
++{
++return $2 ();
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++ eval "$3=yes"
++else
++ eval "$3=no"
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++fi
++eval ac_res=\$$3
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++
++} # ac_fn_c_check_func
++
+ # ac_fn_c_try_run LINENO
+ # ----------------------
+ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+@@ -4825,6 +4898,18 @@ else
+ fi
+
+
++for ac_func in futimens
++do :
++ ac_fn_c_check_func "$LINENO" "futimens" "ac_cv_func_futimens"
++if test "x$ac_cv_func_futimens" = xyes; then :
++ cat >>confdefs.h <<_ACEOF
++#define HAVE_FUTIMENS 1
++_ACEOF
++
++fi
++done
++
++
+ # We use -std=gnu99 but have explicit checks for some language constructs
+ # and GNU extensions since some compilers claim GNU99 support, but don't
+ # really support all language extensions. In particular we need
+@@ -4873,6 +4958,130 @@ if test "x$ac_cv_c99" != xyes; then :
+ as_fn_error $? "gcc with GNU99 support required" "$LINENO" 5
+ fi
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra option to $CC" >&5
++$as_echo_n "checking for -Wextra option to $CC... " >&6; }
++if ${ac_cv_cc_wextra+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -Wextra"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++void foo (void) { }
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_cc_wextra=yes
++else
++ ac_cv_cc_wextra=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_wextra" >&5
++$as_echo "$ac_cv_cc_wextra" >&6; }
++
++if test "x$ac_cv_cc_wextra" = xyes; then :
++ WEXTRA=-Wextra
++else
++ WEXTRA=-W
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fgnu89-inline option to $CC" >&5
++$as_echo_n "checking for -fgnu89-inline option to $CC... " >&6; }
++if ${ac_cv_cc_gnu89_inline+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -fgnu89-inline -Werror"
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++void foo (void)
++{
++ inline void bar (void) {}
++ bar ();
++}
++extern inline void baz (void) {}
++
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ ac_cv_cc_gnu89_inline=yes
++else
++ ac_cv_cc_gnu89_inline=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cc_gnu89_inline" >&5
++$as_echo "$ac_cv_cc_gnu89_inline" >&6; }
++if test "x$ac_cv_cc_gnu89_inline" = xyes; then :
++ WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed linker option" >&5
++$as_echo_n "checking for --as-needed linker option... " >&6; }
++if ${ac_cv_as_needed+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat > conftest.c <<EOF
++int main (void) { return 0; }
++EOF
++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
++ -fPIC -shared -o conftest.so conftest.c
++ -Wl,--as-needed 1>&5'
++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++ test $ac_status = 0; }; }
++then
++ ac_cv_as_needed=yes
++else
++ ac_cv_as_needed=no
++fi
++rm -f conftest*
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_as_needed" >&5
++$as_echo "$ac_cv_as_needed" >&6; }
++if test "x$ac_cv_as_needed" = xyes; then :
++ LD_AS_NEEDED=-Wl,--as-needed
++else
++ LD_AS_NEEDED=
++fi
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_popcount" >&5
++$as_echo_n "checking for __builtin_popcount... " >&6; }
++if ${ac_cv_popcount+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++int
++main ()
++{
++exit (__builtin_popcount (127));
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++ ac_cv_popcount=yes
++else
++ ac_cv_popcount=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_popcount" >&5
++$as_echo "$ac_cv_popcount" >&6; }
++if test "x$ac_cv_popcount" = xyes; then :
++
++$as_echo "#define HAVE_BUILTIN_POPCOUNT 1" >>confdefs.h
++
++fi
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __thread support" >&5
+ $as_echo_n "checking for __thread support... " >&6; }
+ if ${ac_cv_tls+:} false; then :
+@@ -4910,7 +5119,13 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5
+ $as_echo "$ac_cv_tls" >&6; }
+ if test "x$ac_cv_tls" != xyes; then :
+- as_fn_error $? "__thread support required" "$LINENO" 5
++ if test "$use_locks" = yes; then :
++ as_fn_error $? "--enable-thread-safety requires __thread support" "$LINENO" 5
++else
++
++$as_echo "#define __thread /* empty: no multi-thread support */" >>confdefs.h
++
++fi
+ fi
+
+ # Check whether --enable-largefile was given.
+@@ -5318,6 +5533,22 @@ else
+ fi
+
+
++# Check whether --enable-werror was given.
++if test "${enable_werror+set}" = set; then :
++ enableval=$enable_werror; enable_werror=$enableval
++else
++ enable_werror=yes
++fi
++
++ if test "$enable_werror" = yes; then
++ BUILD_WERROR_TRUE=
++ BUILD_WERROR_FALSE='#'
++else
++ BUILD_WERROR_TRUE='#'
++ BUILD_WERROR_FALSE=
++fi
++
++
+ # Check whether --enable-tests-rpath was given.
+ if test "${enable_tests_rpath+set}" = set; then :
+ enableval=$enable_tests_rpath; tests_use_rpath=$enableval
+@@ -6199,7 +6430,7 @@ case "$eu_version" in
+ esac
+
+ # Round up to the next release API (x.y) version.
+-eu_version=$(( (eu_version + 999) / 1000 ))
++eu_version=`expr \( $eu_version + 999 \) / 1000`
+
+ MODVERSION="Build for ${LIBEBL_SUBDIR} ${eu_version} ${ac_cv_build}"
+
+@@ -7088,6 +7319,10 @@ if test -z "${BUILD_STATIC_TRUE}" && tes
+ as_fn_error $? "conditional \"BUILD_STATIC\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+ fi
++if test -z "${BUILD_WERROR_TRUE}" && test -z "${BUILD_WERROR_FALSE}"; then
++ as_fn_error $? "conditional \"BUILD_WERROR\" was never defined.
++Usually this means the macro was only invoked conditionally." "$LINENO" 5
++fi
+ if test -z "${TESTS_RPATH_TRUE}" && test -z "${TESTS_RPATH_FALSE}"; then
+ as_fn_error $? "conditional \"TESTS_RPATH\" was never defined.
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
+diffelfutils/configure.ac git-portable/configure.ac
+--- elfutils/configure.ac
++++ elfutils/configure.ac
+@@ -73,6 +73,8 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+ AC_CHECK_TOOL([READELF], [readelf])
+ AC_CHECK_TOOL([NM], [nm])
+
++AC_CHECK_FUNCS([futimens])
++
+ # We use -std=gnu99 but have explicit checks for some language constructs
+ # and GNU extensions since some compilers claim GNU99 support, but don't
+ # really support all language extensions. In particular we need
+@@ -106,6 +108,54 @@ CFLAGS="$old_CFLAGS"])
+ AS_IF([test "x$ac_cv_c99" != xyes],
+ AC_MSG_ERROR([gcc with GNU99 support required]))
+
++AC_CACHE_CHECK([for -Wextra option to $CC], ac_cv_cc_wextra, [dnl
++old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -Wextra"
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([void foo (void) { }])],
++ ac_cv_cc_wextra=yes, ac_cv_cc_wextra=no)
++CFLAGS="$old_CFLAGS"])
++AC_SUBST(WEXTRA)
++AS_IF([test "x$ac_cv_cc_wextra" = xyes], [WEXTRA=-Wextra], [WEXTRA=-W])
++
++AC_CACHE_CHECK([for -fgnu89-inline option to $CC], ac_cv_cc_gnu89_inline, [dnl
++old_CFLAGS="$CFLAGS"
++CFLAGS="$CFLAGS -fgnu89-inline -Werror"
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([
++void foo (void)
++{
++ inline void bar (void) {}
++ bar ();
++}
++extern inline void baz (void) {}
++])], ac_cv_cc_gnu89_inline=yes, ac_cv_cc_gnu89_inline=no)
++CFLAGS="$old_CFLAGS"])
++AS_IF([test "x$ac_cv_cc_gnu89_inline" = xyes],
++ [WEXTRA="${WEXTRA:+$WEXTRA }-fgnu89-inline"])
++
++AC_CACHE_CHECK([for --as-needed linker option],
++ ac_cv_as_needed, [dnl
++cat > conftest.c <<EOF
++int main (void) { return 0; }
++EOF
++if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
++ -fPIC -shared -o conftest.so conftest.c
++ -Wl,--as-needed 1>&AS_MESSAGE_LOG_FD])
++then
++ ac_cv_as_needed=yes
++else
++ ac_cv_as_needed=no
++fi
++rm -f conftest*])
++AS_IF([test "x$ac_cv_as_needed" = xyes],
++ [LD_AS_NEEDED=-Wl,--as-needed], [LD_AS_NEEDED=])
++AC_SUBST(LD_AS_NEEDED)
++
++AC_CACHE_CHECK([for __builtin_popcount], ac_cv_popcount, [dnl
++AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[exit (__builtin_popcount (127));]])],
++ ac_cv_popcount=yes, ac_cv_popcount=no)])
++AS_IF([test "x$ac_cv_popcount" = xyes],
++ [AC_DEFINE([HAVE_BUILTIN_POPCOUNT], [1], [Have __builtin_popcount.])])
++
+ AC_CACHE_CHECK([for __thread support], ac_cv_tls, [dnl
+ # Use the same flags that we use for our DSOs, so the test is representative.
+ # Some old compiler/linker/libc combinations fail some ways and not others.
+@@ -122,7 +172,10 @@ static __thread int a; int foo (int b) {
+ CFLAGS="$save_CFLAGS"
+ LDFLAGS="$save_LDFLAGS"])
+ AS_IF([test "x$ac_cv_tls" != xyes],
+- AC_MSG_ERROR([__thread support required]))
++ [AS_IF([test "$use_locks" = yes],
++ [AC_MSG_ERROR([--enable-thread-safety requires __thread support])],
++ [AC_DEFINE([__thread], [/* empty: no multi-thread support */],
++ [Stubbed out if missing compiler support.])])])
+
+ dnl This test must come as early as possible after the compiler configuration
+ dnl tests, because the choice of the file model can (in principle) affect
+@@ -224,6 +277,11 @@ AM_CONDITIONAL(USE_VALGRIND, test "$use_
+ AM_CONDITIONAL(BUILD_STATIC, [dnl
+ test "$use_gprof" = yes -o "$use_gcov" = yes])
+
++AC_ARG_ENABLE([werror],
++AS_HELP_STRING([--disable-werror],[do not build with -Werror]),
++ [enable_werror=$enableval], [enable_werror=yes])
++AM_CONDITIONAL(BUILD_WERROR, test "$enable_werror" = yes)
++
+ AC_ARG_ENABLE([tests-rpath],
+ AS_HELP_STRING([--enable-tests-rpath],[build $ORIGIN-using rpath into tests]),
+ [tests_use_rpath=$enableval], [tests_use_rpath=no])
+@@ -388,7 +446,7 @@ case "$eu_version" in
+ esac
+
+ # Round up to the next release API (x.y) version.
+-eu_version=$(( (eu_version + 999) / 1000 ))
++eu_version=`expr \( $eu_version + 999 \) / 1000`
+
+ dnl Unique ID for this build.
+ MODVERSION="Build for ${LIBEBL_SUBDIR} ${eu_version} ${ac_cv_build}"
+diffelfutils/lib/ChangeLog git-portable/lib/ChangeLog
+--- elfutils/lib/ChangeLog
++++ elfutils/lib/ChangeLog
+@@ -73,6 +73,9 @@
+
+ 2009-01-23 Roland McGrath <roland@redhat.com>
+
++ * eu-config.h [! HAVE_BUILTIN_POPCOUNT]
++ (__builtin_popcount): New inline function.
++
+ * eu-config.h: Add multiple inclusion protection.
+
+ 2009-01-17 Ulrich Drepper <drepper@redhat.com>
+@@ -129,6 +132,11 @@
+ * Makefile.am (libeu_a_SOURCES): Add it.
+ * system.h: Declare crc32_file.
+
++2005-02-07 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-04-30 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile.am: Use -ffunction-sections for xmalloc.c.
+diffelfutils/lib/eu-config.h git-portable/lib/eu-config.h
+--- elfutils/lib/eu-config.h
++++ elfutils/lib/eu-config.h
+@@ -163,6 +163,17 @@ asm (".section predict_data, \"aw\"; .pr
+ /* This macro is used by the tests conditionalize for standalone building. */
+ #define ELFUTILS_HEADER(name) <lib##name.h>
+
++#ifndef HAVE_BUILTIN_POPCOUNT
++# define __builtin_popcount hakmem_popcount
++static inline unsigned int __attribute__ ((unused))
++hakmem_popcount (unsigned int x)
++{
++ /* HAKMEM 169 */
++ unsigned int n = x - ((x >> 1) & 033333333333) - ((x >> 2) & 011111111111);
++ return ((n + (n >> 3)) & 030707070707) % 63;
++}
++#endif /* HAVE_BUILTIN_POPCOUNT */
++
+
+ #ifdef SYMBOL_VERSIONING
+ # define OLD_VERSION(name, version) \
+diffelfutils/lib/Makefile.in git-portable/lib/Makefile.in
+--- elfutils/lib/Makefile.in
++++ elfutils/lib/Makefile.in
+@@ -89,7 +89,8 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ subdir = lib
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -212,6 +213,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -243,6 +245,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -309,13 +312,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+ $($(*F)_no_Werror),,-Werror) $(if \
+- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
+ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS) -fpic
++ $($(*F)_CFLAGS) $(am__append_1) -fpic
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+ @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg)
+diffelfutils/libasm/ChangeLog git-portable/libasm/ChangeLog
+--- elfutils/libasm/ChangeLog
++++ elfutils/libasm/ChangeLog
+@@ -87,6 +87,11 @@
+ * asm_error.c: Add new error ASM_E_IOERROR.
+ * libasmP.h: Add ASM_E_IOERROR definition.
+
++2005-05-31 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-02-15 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile.am (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
+diffelfutils/libasm/Makefile.in git-portable/libasm/Makefile.in
+--- elfutils/libasm/Makefile.in
++++ elfutils/libasm/Makefile.in
+@@ -90,9 +90,10 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ noinst_PROGRAMS = $(am__EXEEXT_1)
+-@USE_LOCKS_TRUE@am__append_2 = -lpthread
++@USE_LOCKS_TRUE@am__append_3 = -lpthread
+ subdir = libasm
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -263,6 +264,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -294,6 +296,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -361,14 +364,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+- $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++ $($(*F)_no_Werror),,-Werror) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++ $($(*F)_CFLAGS) $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(am_libasm_pic_a_OBJECTS) \
+ libasm.so.$(VERSION)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+@@ -395,7 +398,7 @@ libasm_a_SOURCES = asm_begin.c asm_abort
+
+ libasm_pic_a_SOURCES =
+ am_libasm_pic_a_OBJECTS = $(libasm_a_SOURCES:.c=.os)
+-libasm_so_LDLIBS = $(am__append_2)
++libasm_so_LDLIBS = $(am__append_3)
+ libasm_so_SOURCES =
+ noinst_HEADERS = libasmP.h symbolhash.h
+ EXTRA_DIST = libasm.map
+diffelfutils/libcpu/ChangeLog git-portable/libcpu/ChangeLog
+--- elfutils/libcpu/ChangeLog
++++ elfutils/libcpu/ChangeLog
+@@ -51,6 +51,9 @@
+
+ 2009-01-23 Roland McGrath <roland@redhat.com>
+
++ * i386_disasm.c (i386_disasm): Add abort after assert-constant for old
++ compilers that don't realize it's noreturn.
++
+ * Makefile.am (i386_parse_CFLAGS): Use quotes around command
+ substitution that can produce leading whitespace.
+
+@@ -380,6 +383,11 @@
+ * defs/i386.doc: New file.
+ * defs/x86_64: New file.
+
++2005-04-04 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it instead of -Wextra.
++
+ 2005-02-15 Ulrich Drepper <drepper@redhat.com>
+
+ * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
+diffelfutils/libcpu/i386_disasm.c git-portable/libcpu/i386_disasm.c
+--- elfutils/libcpu/i386_disasm.c
++++ elfutils/libcpu/i386_disasm.c
+@@ -822,6 +822,7 @@ i386_disasm (const uint8_t **startp, con
+
+ default:
+ assert (! "INVALID not handled");
++ abort ();
+ }
+ }
+ else
+diffelfutils/libcpu/Makefile.in git-portable/libcpu/Makefile.in
+--- elfutils/libcpu/Makefile.in
++++ elfutils/libcpu/Makefile.in
+@@ -90,7 +90,8 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ @MAINTAINER_MODE_TRUE@noinst_PROGRAMS = i386_gendis$(EXEEXT)
+ subdir = libcpu
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -238,6 +239,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = lex.$(<F:lex.l=)
+@@ -269,6 +271,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -336,13 +339,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+ $($(*F)_no_Werror),,-Werror) $(if \
+- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
+ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS) -fpic -fdollars-in-identifiers
++ $($(*F)_CFLAGS) $(am__append_1) -fpic -fdollars-in-identifiers
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(foreach P,i386 x86_64,$P_defs \
+ $P.mnemonics)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+diffelfutils/libdw/ChangeLog git-portable/libdw/ChangeLog
+--- elfutils/libdw/ChangeLog
++++ elfutils/libdw/ChangeLog
+@@ -904,6 +904,10 @@
+
+ * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
+
++2011-07-20 Mark Wielaard <mjw@redhat.com>
++
++ * dwarf_begin_elf.c: Add fallback for be64toh if not defined.
++
+ 2011-07-14 Mark Wielaard <mjw@redhat.com>
+
+ * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
+@@ -1263,6 +1267,10 @@
+
+ * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
+
++2009-08-17 Roland McGrath <roland@redhat.com>
++
++ * libdw.h: Disable extern inlines for GCC 4.2.
++
+ 2009-08-10 Roland McGrath <roland@redhat.com>
+
+ * dwarf_getscopevar.c: Use dwarf_diename.
+@@ -2031,6 +2039,11 @@
+
+ 2005-05-31 Roland McGrath <roland@redhat.com>
+
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
++2005-05-31 Roland McGrath <roland@redhat.com>
++
+ * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
+ formref offset.
+
+diffelfutils/libdw/dwarf_begin_elf.c git-portable/libdw/dwarf_begin_elf.c
+--- elfutils/libdw/dwarf_begin_elf.c
++++ elfutils/libdw/dwarf_begin_elf.c
+@@ -47,6 +47,14 @@
+ #if USE_ZLIB
+ # include <endian.h>
+ # define crc32 loser_crc32
++# ifndef be64toh
++# include <byteswap.h>
++# if __BYTE_ORDER == __LITTLE_ENDIAN
++# define be64toh(x) bswap_64 (x)
++# else
++# define be64toh(x) (x)
++# endif
++# endif
+ # include <zlib.h>
+ # undef crc32
+ #endif
+diffelfutils/libdw/libdw.h git-portable/libdw/libdw.h
+--- elfutils/libdw/libdw.h
++++ elfutils/libdw/libdw.h
+@@ -1004,7 +1004,7 @@ extern Dwarf_OOM dwarf_new_oom_handler (
+
+
+ /* Inline optimizations. */
+-#ifdef __OPTIMIZE__
++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
+ /* Return attribute code of given attribute. */
+ __libdw_extern_inline unsigned int
+ dwarf_whatattr (Dwarf_Attribute *attr)
+diffelfutils/libdw/Makefile.in git-portable/libdw/Makefile.in
+--- elfutils/libdw/Makefile.in
++++ elfutils/libdw/Makefile.in
+@@ -90,8 +90,9 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
+-@BUILD_STATIC_TRUE@am__append_2 = -fpic
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
++@BUILD_STATIC_TRUE@am__append_3 = -fpic
+ noinst_PROGRAMS = $(am__EXEEXT_1)
+ subdir = libdw
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -312,6 +313,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -343,6 +345,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -409,13 +412,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+ $($(*F)_no_Werror),,-Werror) $(if \
+- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
+ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS) $(am__append_2)
++ $($(*F)_CFLAGS) $(am__append_1) $(am__append_3)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+ @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg)
+diffelfutils/libdwelf/Makefile.in git-portable/libdwelf/Makefile.in
+--- elfutils/libdwelf/Makefile.in
++++ elfutils/libdwelf/Makefile.in
+@@ -89,7 +89,8 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ subdir = libdwelf
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -242,6 +243,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -273,6 +275,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -340,14 +343,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+- $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++ $($(*F)_no_Werror),,-Werror) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++ $($(*F)_CFLAGS) $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(am_libdwelf_pic_a_OBJECTS)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+ @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg)
+diffelfutils/libdwfl/ChangeLog git-portable/libdwfl/ChangeLog
+--- elfutils/libdwfl/ChangeLog
++++ elfutils/libdwfl/ChangeLog
+@@ -713,6 +713,21 @@
+ (dwfl_module_addrsym) (i_to_symfile): New function.
+ (dwfl_module_addrsym) (search_table): Use it.
+
++2013-11-09 Jan Kratochvil <jan.kratochvil@redhat.com>
++
++ Older OS compatibility bits.
++ * linux-core-attach.c (be64toh, le64toh, be32toh, le32toh): Provide
++ fallbacks if not defined by system.
++
++2013-11-09 Jan Kratochvil <jan.kratochvil@redhat.com>
++
++ Handle T-stopped detach for old kernels.
++ * linux-pid-attach.c (struct pid_arg): New field stopped.
++ (ptrace_attach): New parameter stoppedp. Set it appropriately.
++ (pid_set_initial_registers): Pass the new field.
++ (pid_thread_detach): Handle the case of STOPPED for old kernels.
++ (__libdwfl_attach_state_for_pid): Initialize STOPPED.
++
+ 2013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+ Mark Wielaard <mjw@redhat.com>
+
+@@ -2478,6 +2493,11 @@
+
+ 2005-07-21 Roland McGrath <roland@redhat.com>
+
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
++2005-07-21 Roland McGrath <roland@redhat.com>
++
+ * Makefile.am (noinst_HEADERS): Add loc2c.c.
+
+ * test2.c (main): Check sscanf result to quiet warning.
+diffelfutils/libdwfl/linux-core-attach.c git-portable/libdwfl/linux-core-attach.c
+--- elfutils/libdwfl/linux-core-attach.c
++++ elfutils/libdwfl/linux-core-attach.c
+@@ -29,6 +29,35 @@
+ #include "libdwflP.h"
+ #include <fcntl.h>
+ #include "system.h"
++#include <endian.h>
++#include <byteswap.h>
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++# ifndef be64toh
++# define be64toh(x) bswap_64 (x)
++# endif
++# ifndef le64toh
++# define le64toh(x) (x)
++# endif
++# ifndef be32toh
++# define be32toh(x) bswap_32 (x)
++# endif
++# ifndef le32toh
++# define le32toh(x) (x)
++# endif
++#else
++# ifndef be64toh
++# define be64toh(x) (x)
++# endif
++# ifndef le64toh
++# define le64toh(x) bswap_64 (x)
++# endif
++# ifndef be32toh
++# define be32toh(x) (x)
++# endif
++# ifndef le32toh
++# define le32toh(x) bswap_32 (x)
++# endif
++#endif
+
+ #include "../libdw/memory-access.h"
+
+diffelfutils/libdwfl/linux-pid-attach.c git-portable/libdwfl/linux-pid-attach.c
+--- elfutils/libdwfl/linux-pid-attach.c
++++ elfutils/libdwfl/linux-pid-attach.c
+@@ -255,6 +255,11 @@ void
+ internal_function
+ __libdwfl_ptrace_detach (pid_t tid, bool tid_was_stopped)
+ {
++ // Older kernels (tested kernel-2.6.18-348.12.1.el5.x86_64) need special
++ // handling of the detachment to keep the process State: T (stopped).
++ if (tid_was_stopped)
++ syscall (__NR_tkill, tid, SIGSTOP);
++
+ /* This handling is needed only on older Linux kernels such as
+ 2.6.32-358.23.2.el6.ppc64. Later kernels such as
+ 3.11.7-200.fc19.x86_64 remember the T (stopped) state
+@@ -262,6 +267,15 @@ __libdwfl_ptrace_detach (pid_t tid, bool
+ PTRACE_DETACH. */
+ ptrace (PTRACE_DETACH, tid, NULL,
+ (void *) (intptr_t) (tid_was_stopped ? SIGSTOP : 0));
++
++ if (tid_was_stopped)
++ {
++ // Wait till the SIGSTOP settles down.
++ int i;
++ for (i = 0; i < 100000; i++)
++ if (linux_proc_pid_is_stopped (tid))
++ break;
++ }
+ }
+
+ static void
+diffelfutils/libdwfl/Makefile.in git-portable/libdwfl/Makefile.in
+--- elfutils/libdwfl/Makefile.in
++++ elfutils/libdwfl/Makefile.in
+@@ -89,10 +89,11 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
+-@ZLIB_TRUE@am__append_2 = gzip.c
+-@BZLIB_TRUE@am__append_3 = bzip2.c
+-@LZMA_TRUE@am__append_4 = lzma.c
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
++@ZLIB_TRUE@am__append_3 = gzip.c
++@BZLIB_TRUE@am__append_4 = bzip2.c
++@LZMA_TRUE@am__append_5 = lzma.c
+ subdir = libdwfl
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -301,6 +302,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -332,6 +334,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -399,14 +402,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+- $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++ $($(*F)_no_Werror),,-Werror) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++ $($(*F)_CFLAGS) $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(am_libdwfl_pic_a_OBJECTS)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+ @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg)
+@@ -435,8 +438,8 @@ libdwfl_a_SOURCES = dwfl_begin.c dwfl_en
+ dwfl_module_register_names.c dwfl_segment_report_module.c \
+ link_map.c core-file.c open.c image-header.c dwfl_frame.c \
+ frame_unwind.c dwfl_frame_pc.c linux-pid-attach.c \
+- linux-core-attach.c dwfl_frame_regs.c $(am__append_2) \
+- $(am__append_3) $(am__append_4)
++ linux-core-attach.c dwfl_frame_regs.c $(am__append_3) \
++ $(am__append_4) $(am__append_5)
+ libdwfl = $(libdw)
+ libdw = ../libdw/libdw.so
+ libelf = ../libelf/libelf.so
+diffelfutils/libebl/ChangeLog git-portable/libebl/ChangeLog
+--- elfutils/libebl/ChangeLog
++++ elfutils/libebl/ChangeLog
+@@ -785,6 +785,11 @@
+ * Makefile.am (libebl_*_so_SOURCES): Set to $(*_SRCS) so dependency
+ tracking works right.
+
++2005-05-31 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-21 Ulrich Drepper <drepper@redhat.com>
+
+ * libebl_x86_64.map: Add x86_64_core_note.
+diffelfutils/libebl/Makefile.in git-portable/libebl/Makefile.in
+--- elfutils/libebl/Makefile.in
++++ elfutils/libebl/Makefile.in
+@@ -89,7 +89,8 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ subdir = libebl
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -264,6 +265,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -295,6 +297,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -362,13 +365,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+ $($(*F)_no_Werror),,-Werror) $(if \
+- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
+ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS) -fpic
++ $($(*F)_CFLAGS) $(am__append_1) -fpic
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(am_libebl_pic_a_OBJECTS)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+ @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg)
+diffelfutils/libelf/ChangeLog git-portable/libelf/ChangeLog
+--- elfutils/libelf/ChangeLog
++++ elfutils/libelf/ChangeLog
+@@ -412,6 +412,11 @@
+
+ * elf-knowledge.h (SECTION_STRIP_P): Remove < SHT_NUM check.
+
++2011-03-10 Roland McGrath <roland@redhat.com>
++
++ * gnuhash_xlate.h (elf_cvt_gnuhash): Avoid post-increment in bswap_32
++ argument, since some implementations are buggy macros.
++
+ 2011-02-26 Mark Wielaard <mjw@redhat.com>
+
+ * elf_end.c (elf_end): Call rwlock_unlock before rwlock_fini.
+@@ -1089,6 +1094,11 @@
+
+ * elf.h: Update from glibc.
+
++2005-05-31 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-08 Roland McGrath <roland@redhat.com>
+
+ * elf_begin.c (read_file) [_MUDFLAP]: Don't use mmap for now.
+diffelfutils/libelf/common.h git-portable/libelf/common.h
+--- elfutils/libelf/common.h
++++ elfutils/libelf/common.h
+@@ -139,7 +139,7 @@ libelf_release_all (Elf *elf)
+ (Var) = (sizeof (Var) == 1 \
+ ? (unsigned char) (Var) \
+ : (sizeof (Var) == 2 \
+- ? bswap_16 (Var) \
++ ? (unsigned short int) bswap_16 (Var) \
+ : (sizeof (Var) == 4 \
+ ? bswap_32 (Var) \
+ : bswap_64 (Var))))
+@@ -148,7 +148,7 @@ libelf_release_all (Elf *elf)
+ (Dst) = (sizeof (Var) == 1 \
+ ? (unsigned char) (Var) \
+ : (sizeof (Var) == 2 \
+- ? bswap_16 (Var) \
++ ? (unsigned short int) bswap_16 (Var) \
+ : (sizeof (Var) == 4 \
+ ? bswap_32 (Var) \
+ : bswap_64 (Var))))
+diffelfutils/libelf/gnuhash_xlate.h git-portable/libelf/gnuhash_xlate.h
+--- elfutils/libelf/gnuhash_xlate.h
++++ elfutils/libelf/gnuhash_xlate.h
+@@ -1,5 +1,5 @@
+ /* Conversion functions for versioning information.
+- Copyright (C) 2006, 2007 Red Hat, Inc.
++ Copyright (C) 2006-2011 Red Hat, Inc.
+ This file is part of elfutils.
+ Written by Ulrich Drepper <drepper@redhat.com>, 2006.
+
+@@ -68,7 +68,9 @@ elf_cvt_gnuhash (void *dest, const void
+ dest32 = (Elf32_Word *) &dest64[bitmask_words];
+ while (len >= 4)
+ {
+- *dest32++ = bswap_32 (*src32++);
++ *dest32 = bswap_32 (*src32);
++ ++dest32;
++ ++src32;
+ len -= 4;
+ }
+ }
+diffelfutils/libelf/Makefile.in git-portable/libelf/Makefile.in
+--- elfutils/libelf/Makefile.in
++++ elfutils/libelf/Makefile.in
+@@ -90,10 +90,11 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
+-@BUILD_STATIC_TRUE@am__append_2 = -fpic
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
++@BUILD_STATIC_TRUE@am__append_3 = -fpic
+ noinst_PROGRAMS = $(am__EXEEXT_1)
+-@USE_LOCKS_TRUE@am__append_3 = -lpthread
++@USE_LOCKS_TRUE@am__append_4 = -lpthread
+ subdir = libelf
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -305,6 +306,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -336,6 +338,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = 1
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -401,13 +404,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 $(if \
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
+ $($(*F)_no_Werror),,-Werror) $(if \
+- $($(*F)_no_Wunused),,-Wunused -Wextra) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
+ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS) $(am__append_2)
++ $($(*F)_CFLAGS) $(am__append_1) $(am__append_3)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda $(am_libelf_pic_a_OBJECTS) \
+ libelf.so.$(VERSION)
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+@@ -470,7 +474,7 @@ libelf_a_SOURCES = elf_version.c elf_has
+
+ libelf_pic_a_SOURCES =
+ am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os)
+-libelf_so_LDLIBS = $(am__append_3)
++libelf_so_LDLIBS = $(am__append_4)
+ libelf_so_SOURCES =
+ noinst_HEADERS = elf.h abstract.h common.h exttypes.h gelf_xlate.h libelfP.h \
+ version_xlate.h gnuhash_xlate.h note_xlate.h dl-hash.h
+diffelfutils/m4/Makefile.in git-portable/m4/Makefile.in
+--- elfutils/m4/Makefile.in
++++ elfutils/m4/Makefile.in
+@@ -159,6 +159,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -190,6 +191,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+diffelfutils/Makefile.in git-portable/Makefile.in
+--- elfutils/Makefile.in
++++ elfutils/Makefile.in
+@@ -277,6 +277,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -308,6 +309,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+diffelfutils/src/addr2line.c git-portable/src/addr2line.c
+--- elfutils/src/addr2line.c
++++ elfutils/src/addr2line.c
+@@ -622,10 +622,10 @@ handle_address (const char *string, Dwfl
+ bool parsed = false;
+ int i, j;
+ char *name = NULL;
+- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
++ if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2
+ && string[i] == '\0')
+ parsed = adjust_to_section (name, &addr, dwfl);
+- switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
++ switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j))
+ {
+ default:
+ break;
+diffelfutils/src/ar.c git-portable/src/ar.c
+--- elfutils/src/ar.c
++++ elfutils/src/ar.c
+@@ -685,7 +685,14 @@ do_oper_extract (int oper, const char *a
+ tv[1].tv_sec = arhdr->ar_date;
+ tv[1].tv_nsec = 0;
+
++#ifdef HAVE_FUTIMENS
+ if (unlikely (futimens (xfd, tv) != 0))
++#else
++ struct timeval times[2];
++ TIMESPEC_TO_TIMEVAL (&times[0], &tv[0]);
++ TIMESPEC_TO_TIMEVAL (&times[1], &tv[1]);
++ if (unlikely (futimes (xfd, times) != 0))
++#endif
+ {
+ error (0, errno,
+ gettext ("cannot change modification time of %s"),
+diffelfutils/src/ChangeLog git-portable/src/ChangeLog
+--- elfutils/src/ChangeLog
++++ elfutils/src/ChangeLog
+@@ -1626,8 +1626,16 @@
+ * readelf.c (attr_callback): Use print_block only when we don't use
+ print_ops.
+
++2009-08-17 Roland McGrath <roland@redhat.com>
++
++ * ld.h: Disable extern inlines for GCC 4.2.
++
+ 2009-08-14 Roland McGrath <roland@redhat.com>
+
++ * strings.c (read_block): Conditionalize posix_fadvise use
++ on [POSIX_FADV_SEQUENTIAL].
++ From Petr Salinger <Petr.Salinger@seznam.cz>.
++
+ * ar.c (do_oper_extract): Use pathconf instead of statfs.
+
+ 2009-08-01 Ulrich Drepper <drepper@redhat.com>
+@@ -1791,6 +1799,8 @@
+ * readelf.c (print_debug_frame_section): Use t instead of j formats
+ for ptrdiff_t OFFSET.
+
++ * addr2line.c (handle_address): Use %a instead of %m for compatibility.
++
+ 2009-01-21 Ulrich Drepper <drepper@redhat.com>
+
+ * elflint.c (check_program_header): Fix typo in .eh_frame_hdr section
+@@ -1974,6 +1984,11 @@
+ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
+ is valid in RELRO.
+
++2008-03-01 Roland McGrath <roland@redhat.com>
++
++ * readelf.c (dump_archive_index): Tweak portability hack
++ to match [__GNUC__ < 4] too.
++
+ 2008-02-29 Roland McGrath <roland@redhat.com>
+
+ * readelf.c (print_attributes): Add a cast.
+@@ -2225,6 +2240,8 @@
+
+ * readelf.c (hex_dump): Fix rounding error in whitespace calculation.
+
++ * Makefile.am (readelf_no_Werror): New variable.
++
+ 2007-10-15 Roland McGrath <roland@redhat.com>
+
+ * make-debug-archive.in: New file.
+@@ -2664,6 +2681,10 @@
+ * elflint.c (valid_e_machine): Add EM_ALPHA.
+ Reported by Christian Aichinger <Greek0@gmx.net>.
+
++ * strings.c (map_file): Define POSIX_MADV_SEQUENTIAL to
++ MADV_SEQUENTIAL if undefined. Don't call posix_madvise
++ if neither is defined.
++
+ 2006-08-08 Ulrich Drepper <drepper@redhat.com>
+
+ * elflint.c (check_dynamic): Don't require DT_HASH for DT_SYMTAB.
+@@ -2740,6 +2761,10 @@
+ * Makefile.am: Add hacks to create dependency files for non-generic
+ linker.
+
++2006-04-05 Roland McGrath <roland@redhat.com>
++
++ * strings.c (MAP_POPULATE): Define to 0 if undefined.
++
+ 2006-06-12 Ulrich Drepper <drepper@redhat.com>
+
+ * ldgeneric.c (ld_generic_generate_sections): Don't create .interp
+@@ -3088,6 +3113,11 @@
+ * readelf.c (print_debug_loc_section): Fix indentation for larger
+ address size.
+
++2005-05-31 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-30 Roland McGrath <roland@redhat.com>
+
+ * readelf.c (print_debug_line_section): Print section offset of each
+diffelfutils/src/findtextrel.c git-portable/src/findtextrel.c
+--- elfutils/src/findtextrel.c
++++ elfutils/src/findtextrel.c
+@@ -503,7 +503,11 @@ ptrcompare (const void *p1, const void *
+
+
+ static void
+-check_rel (size_t nsegments, struct segments segments[nsegments],
++check_rel (size_t nsegments, struct segments segments[
++#if __GNUC__ >= 4
++ nsegments
++#endif
++ ],
+ GElf_Addr addr, Elf *elf, Elf_Scn *symscn, Dwarf *dw,
+ const char *fname, bool more_than_one, void **knownsrcs)
+ {
+diffelfutils/src/ld.h git-portable/src/ld.h
+--- elfutils/src/ld.h
++++ elfutils/src/ld.h
+@@ -1114,6 +1114,7 @@ extern bool dynamically_linked_p (void);
+
+ /* Checked whether the symbol is undefined and referenced from a DSO. */
+ extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
++#if defined __OPTIMIZE__ && !(__GNUC__ == 4 && __GNUC_MINOR__ == 2)
+ #ifdef __GNUC_STDC_INLINE__
+ __attribute__ ((__gnu_inline__))
+ #endif
+@@ -1131,5 +1132,6 @@ linked_from_dso_p (struct scninfo *scnin
+
+ return sym->defined && sym->in_dso;
+ }
++#endif /* Optimizing and not GCC 4.2. */
+
+ #endif /* ld.h */
+diffelfutils/src/Makefile.am git-portable/src/Makefile.am
+--- elfutils/src/Makefile.am
++++ elfutils/src/Makefile.am
+@@ -90,6 +90,11 @@ endif
+ ldgeneric_no_Wunused = yes
+ ldgeneric_no_Wstack_usage = yes
+
++# Buggy old compilers or libc headers.
++readelf_no_Werror = yes
++strings_no_Werror = yes
++addr2line_no_Wformat = yes
++
+ # Bad, bad stack usage...
+ readelf_no_Wstack_usage = yes
+ nm_no_Wstack_usage = yes
+diffelfutils/src/Makefile.in git-portable/src/Makefile.in
+--- elfutils/src/Makefile.in
++++ elfutils/src/Makefile.in
+@@ -91,7 +91,8 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
+ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEEXT) size$(EXEEXT) \
+ strip$(EXEEXT) ld$(EXEEXT) elflint$(EXEEXT) \
+ findtextrel$(EXEEXT) addr2line$(EXEEXT) elfcmp$(EXEEXT) \
+@@ -100,9 +101,9 @@ bin_PROGRAMS = readelf$(EXEEXT) nm$(EXEE
+ @NATIVE_LD_FALSE@noinst_PROGRAMS = $(am__EXEEXT_1)
+ # We never build this library but we need to get the dependency files
+ # of all the linker backends that might be used in a non-generic linker.
+-@NEVER_TRUE@am__append_2 = libdummy.a
++@NEVER_TRUE@am__append_3 = libdummy.a
+ # -ldl is always needed for libebl.
+-@NATIVE_LD_TRUE@am__append_3 = libld_elf.a
++@NATIVE_LD_TRUE@am__append_4 = libld_elf.a
+ @NATIVE_LD_TRUE@am_libld_elf_i386_pic_a_OBJECTS =
+ subdir = src
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+@@ -172,7 +173,7 @@ am_ld_OBJECTS = ld.$(OBJEXT) ldgeneric.$
+ versionhash.$(OBJEXT)
+ ld_OBJECTS = $(am_ld_OBJECTS)
+ ld_DEPENDENCIES = $(libebl) $(libelf) $(libeu) $(am__DEPENDENCIES_1) \
+- $(am__append_3)
++ $(am__append_4)
+ ld_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ld_LDFLAGS) $(LDFLAGS) -o \
+ $@
+ am_libld_elf_i386_so_OBJECTS =
+@@ -361,6 +362,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -392,6 +394,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -460,14 +463,14 @@ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_sr
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+- $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++ $($(*F)_no_Werror),,-Werror) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++ $($(*F)_CFLAGS) $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda make-debug-archive none_ld.os \
+ $(ld_modules:.c=.os) *.gconv
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+@@ -480,8 +483,8 @@ AM_LFLAGS = -Pld -olex.yy.c
+ native_ld = @native_ld@
+ ld_dsos = libld_elf_i386_pic.a
+ @NATIVE_LD_FALSE@noinst_LIBRARIES = libld_elf.a libar.a $(ld_dsos) \
+-@NATIVE_LD_FALSE@ $(am__append_2)
+-@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_2)
++@NATIVE_LD_FALSE@ $(am__append_3)
++@NATIVE_LD_TRUE@noinst_LIBRARIES = libld_elf.a libar.a $(am__append_3)
+ @NATIVE_LD_TRUE@native_ld_cflags = -DBASE_ELF_NAME=elf_$(base_cpu)
+ @NEVER_TRUE@libdummy_a_SOURCES = i386_ld.c
+ ld_SOURCES = ld.c ldgeneric.c ldlex.l ldscript.y symbolhash.c sectionhash.c \
+@@ -509,6 +512,11 @@ libeu = ../lib/libeu.a
+ ldgeneric_no_Wunused = yes
+ ldgeneric_no_Wstack_usage = yes
+
++# Buggy old compilers or libc headers.
++readelf_no_Werror = yes
++strings_no_Werror = yes
++addr2line_no_Wformat = yes
++
+ # Bad, bad stack usage...
+ readelf_no_Wstack_usage = yes
+ nm_no_Wstack_usage = yes
+@@ -528,7 +536,7 @@ nm_LDADD = $(libdw) $(libebl) $(libelf)
+ size_LDADD = $(libelf) $(libeu) $(argp_LDADD)
+ strip_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
+ ld_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl \
+- $(am__append_3)
++ $(am__append_4)
+ ld_LDFLAGS = -rdynamic
+ elflint_LDADD = $(libebl) $(libelf) $(libeu) $(argp_LDADD) -ldl
+ findtextrel_LDADD = $(libdw) $(libelf) $(argp_LDADD)
+diffelfutils/src/readelf.c git-portable/src/readelf.c
+--- elfutils/src/readelf.c
++++ elfutils/src/readelf.c
+@@ -4366,10 +4366,12 @@ listptr_base (struct listptr *p)
+ return base;
+ }
+
++static const char *listptr_name;
++
+ static int
+-compare_listptr (const void *a, const void *b, void *arg)
++compare_listptr (const void *a, const void *b)
+ {
+- const char *name = arg;
++ const char *const name = listptr_name;
+ struct listptr *p1 = (void *) a;
+ struct listptr *p2 = (void *) b;
+
+@@ -4465,8 +4467,11 @@ static void
+ sort_listptr (struct listptr_table *table, const char *name)
+ {
+ if (table->n > 0)
+- qsort_r (table->table, table->n, sizeof table->table[0],
+- &compare_listptr, (void *) name);
++ {
++ listptr_name = name;
++ qsort (table->table, table->n, sizeof table->table[0],
++ &compare_listptr);
++ }
+ }
+
+ static bool
+@@ -9563,7 +9568,7 @@ dump_archive_index (Elf *elf, const char
+ if (unlikely (elf_rand (elf, as_off) == 0)
+ || unlikely ((subelf = elf_begin (-1, ELF_C_READ_MMAP, elf))
+ == NULL))
+-#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7)
++#if __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 7) || __GNUC__ < 4
+ while (1)
+ #endif
+ error (EXIT_FAILURE, 0,
+diffelfutils/src/strings.c git-portable/src/strings.c
+--- elfutils/src/strings.c
++++ elfutils/src/strings.c
+@@ -43,6 +43,10 @@
+
+ #include <system.h>
+
++#ifndef MAP_POPULATE
++# define MAP_POPULATE 0
++#endif
++
+
+ /* Prototypes of local functions. */
+ static int read_fd (int fd, const char *fname, off64_t fdlen);
+@@ -489,8 +493,13 @@ map_file (int fd, off64_t start_off, off
+ fd, start_off);
+ if (mem != MAP_FAILED)
+ {
++#if !defined POSIX_MADV_SEQUENTIAL && defined MADV_SEQUENTIAL
++# define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL
++#endif
++#ifdef POSIX_MADV_SEQUENTIAL
+ /* We will go through the mapping sequentially. */
+ (void) posix_madvise (mem, map_size, POSIX_MADV_SEQUENTIAL);
++#endif
+ break;
+ }
+ if (errno != EINVAL && errno != ENOMEM)
+@@ -581,9 +590,11 @@ read_block (int fd, const char *fname, o
+ elfmap_off = from & ~(ps - 1);
+ elfmap_base = elfmap = map_file (fd, elfmap_off, fdlen, &elfmap_size);
+
++#ifdef POSIX_FADV_SEQUENTIAL
+ if (unlikely (elfmap == MAP_FAILED))
+ /* Let the kernel know we are going to read everything in sequence. */
+ (void) posix_fadvise (fd, 0, 0, POSIX_FADV_SEQUENTIAL);
++#endif
+ }
+
+ if (unlikely (elfmap == MAP_FAILED))
+diffelfutils/src/strip.c git-portable/src/strip.c
+--- elfutils/src/strip.c
++++ elfutils/src/strip.c
+@@ -2191,7 +2191,14 @@ while computing checksum for debug infor
+ /* If requested, preserve the timestamp. */
+ if (tvp != NULL)
+ {
++#ifdef HAVE_FUTIMENS
+ if (futimens (fd, tvp) != 0)
++#else
++ struct timeval times[2];
++ TIMESPEC_TO_TIMEVAL (&times[0], &tvp[0]);
++ TIMESPEC_TO_TIMEVAL (&times[1], &tvp[1]);
++ if (futimes (fd, times) != 0)
++#endif
+ {
+ error (0, errno, gettext ("\
+ cannot set access and modification date of '%s'"),
+@@ -2263,7 +2270,14 @@ handle_ar (int fd, Elf *elf, const char
+
+ if (tvp != NULL)
+ {
++#ifdef HAVE_FUTIMENS
+ if (unlikely (futimens (fd, tvp) != 0))
++#else
++ struct timeval times[2];
++ TIMESPEC_TO_TIMEVAL (&times[0], &tvp[0]);
++ TIMESPEC_TO_TIMEVAL (&times[1], &tvp[1]);
++ if (unlikely (futimes (fd, times) != 0))
++#endif
+ {
+ error (0, errno, gettext ("\
+ cannot set access and modification date of '%s'"), fname);
+diffelfutils/tests/backtrace.c git-portable/tests/backtrace.c
+--- elfutils/tests/backtrace.c
++++ elfutils/tests/backtrace.c
+@@ -36,6 +36,7 @@
+ #include <fcntl.h>
+ #include <string.h>
+ #include <argp.h>
++#include <sys/syscall.h>
+ #include ELFUTILS_HEADER(dwfl)
+
+ #ifndef __linux__
+diffelfutils/tests/ChangeLog git-portable/tests/ChangeLog
+--- elfutils/tests/ChangeLog
++++ elfutils/tests/ChangeLog
+@@ -614,6 +614,13 @@
+
+ 2013-12-02 Jan Kratochvil <jan.kratochvil@redhat.com>
+
++ Handle T-stopped detach for old kernels.
++ * backtrace.c: Include sys/syscall.h.
++ (linux_proc_pid_is_stopped): New function.
++ (ptrace_detach_stopped): Handle old kernels.
++
++2013-12-02 Jan Kratochvil <jan.kratochvil@redhat.com>
++
+ * Makefile.am (check_PROGRAMS): Add backtrace, backtrace-child,
+ backtrace-data and backtrace-dwarf.
+ (BUILT_SOURCES, clean-local, backtrace-child-biarch): New.
+@@ -1478,6 +1485,8 @@
+
+ 2008-01-21 Roland McGrath <roland@redhat.com>
+
++ * line2addr.c (main): Revert last change.
++
+ * testfile45.S.bz2: Add tests for cltq, cqto.
+ * testfile45.expect.bz2: Adjust.
+
+@@ -2186,6 +2195,11 @@
+ * Makefile.am (TESTS): Add run-elflint-test.sh.
+ (EXTRA_DIST): Add run-elflint-test.sh and testfile18.bz2.
+
++2005-05-31 Roland McGrath <roland@redhat.com>
++
++ * Makefile.am (WEXTRA): New variable, substituted by configure.
++ (AM_CFLAGS): Use it in place of -Wextra.
++
+ 2005-05-24 Ulrich Drepper <drepper@redhat.com>
+
+ * get-files.c (main): Use correct format specifier.
+diffelfutils/tests/line2addr.c git-portable/tests/line2addr.c
+--- elfutils/tests/line2addr.c
++++ elfutils/tests/line2addr.c
+@@ -124,7 +124,7 @@ main (int argc, char *argv[])
+ {
+ struct args a = { .arg = argv[cnt] };
+
+- switch (sscanf (a.arg, "%m[^:]:%d", &a.file, &a.line))
++ switch (sscanf (a.arg, "%a[^:]:%d", &a.file, &a.line))
+ {
+ default:
+ case 0:
+diffelfutils/tests/Makefile.am git-portable/tests/Makefile.am
+--- elfutils/tests/Makefile.am
++++ elfutils/tests/Makefile.am
+@@ -382,6 +382,7 @@ get_lines_LDADD = $(libdw) $(libelf)
+ get_files_LDADD = $(libdw) $(libelf)
+ get_aranges_LDADD = $(libdw) $(libelf)
+ allfcts_LDADD = $(libdw) $(libelf)
++line2addr_no_Wformat = yes
+ line2addr_LDADD = $(libdw) $(argp_LDADD)
+ addrscopes_LDADD = $(libdw) $(argp_LDADD)
+ funcscopes_LDADD = $(libdw) $(argp_LDADD)
+diffelfutils/tests/Makefile.in git-portable/tests/Makefile.in
+--- elfutils/tests/Makefile.in
++++ elfutils/tests/Makefile.in
+@@ -87,14 +87,15 @@ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+-@SYMBOL_VERSIONING_TRUE@am__append_1 = -DSYMBOL_VERSIONING
+-@STANDALONE_FALSE@am__append_2 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
++@BUILD_WERROR_TRUE@am__append_1 = $(if $($(*F)_no_Werror),,-Werror)
++@SYMBOL_VERSIONING_TRUE@am__append_2 = -DSYMBOL_VERSIONING
++@STANDALONE_FALSE@am__append_3 = -I$(top_srcdir)/libasm -I$(top_srcdir)/libdw \
+ @STANDALONE_FALSE@ -I$(top_srcdir)/libdwfl -I$(top_srcdir)/libdwelf \
+ @STANDALONE_FALSE@ -I$(top_srcdir)/libebl -I$(top_srcdir)/libelf \
+ @STANDALONE_FALSE@ -I$(top_srcdir)/lib -I..
+
+-@STANDALONE_FALSE@am__append_3 = -Wl,-rpath-link,../libasm:../libdw:../libelf
+-@TESTS_RPATH_TRUE@am__append_4 = -Wl,-rpath,$(BUILD_RPATH)
++@STANDALONE_FALSE@am__append_4 = -Wl,-rpath-link,../libasm:../libdw:../libelf
++@TESTS_RPATH_TRUE@am__append_5 = -Wl,-rpath,$(BUILD_RPATH)
+ check_PROGRAMS = arextract$(EXEEXT) arsymtest$(EXEEXT) \
+ newfile$(EXEEXT) saridx$(EXEEXT) scnnames$(EXEEXT) \
+ sectiondump$(EXEEXT) showptable$(EXEEXT) update1$(EXEEXT) \
+@@ -123,7 +124,7 @@ check_PROGRAMS = arextract$(EXEEXT) arsy
+ aggregate_size$(EXEEXT) vdsosyms$(EXEEXT) getsrc_die$(EXEEXT) \
+ strptr$(EXEEXT) newdata$(EXEEXT) elfstrtab$(EXEEXT) \
+ $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_4)
+-@BIARCH_TRUE@am__append_5 = backtrace-child-biarch
++@BIARCH_TRUE@am__append_6 = backtrace-child-biarch
+ TESTS = run-arextract.sh run-arsymtest.sh newfile$(EXEEXT) \
+ test-nlist$(EXEEXT) update1$(EXEEXT) update2$(EXEEXT) \
+ update3$(EXEEXT) update4$(EXEEXT) run-show-die-info.sh \
+@@ -173,14 +174,14 @@ TESTS = run-arextract.sh run-arsymtest.s
+ run-allfcts-multi.sh run-deleted.sh run-linkmap-cut.sh \
+ run-aggregate-size.sh vdsosyms$(EXEEXT) run-readelf-A.sh \
+ run-getsrc-die.sh run-strptr.sh newdata$(EXEEXT) \
+- elfstrtab$(EXEEXT) $(am__EXEEXT_2) $(am__append_8) \
+- $(am__append_9) $(am__EXEEXT_4)
+-@STANDALONE_FALSE@am__append_6 = msg_tst md5-sha1-test
++ elfstrtab$(EXEEXT) $(am__EXEEXT_2) $(am__append_9) \
++ $(am__append_10) $(am__EXEEXT_4)
+ @STANDALONE_FALSE@am__append_7 = msg_tst md5-sha1-test
+-@LZMA_TRUE@am__append_8 = run-readelf-s.sh run-dwflsyms.sh
+-@ZLIB_TRUE@am__append_9 = run-readelf-zdebug.sh
+-@HAVE_LIBASM_TRUE@am__append_10 = $(asm_TESTS)
++@STANDALONE_FALSE@am__append_8 = msg_tst md5-sha1-test
++@LZMA_TRUE@am__append_9 = run-readelf-s.sh run-dwflsyms.sh
++@ZLIB_TRUE@am__append_10 = run-readelf-zdebug.sh
+ @HAVE_LIBASM_TRUE@am__append_11 = $(asm_TESTS)
++@HAVE_LIBASM_TRUE@am__append_12 = $(asm_TESTS)
+ subdir = tests
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/biarch.m4 \
+@@ -830,6 +831,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LDFLAGS = @LDFLAGS@
++LD_AS_NEEDED = @LD_AS_NEEDED@
+ LEX = @LEX@
+ LEXLIB = @LEXLIB@
+ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+@@ -861,6 +863,7 @@ SHELL = @SHELL@
+ STRIP = @STRIP@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
++WEXTRA = @WEXTRA@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+@@ -921,26 +924,26 @@ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ zip_LIBS = @zip_LIBS@
+-AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_2)
++AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. $(am__append_3)
+ @ADD_STACK_USAGE_WARNING_FALSE@STACK_USAGE_WARNING =
+
+ # Warn about stack usage of more than 256K = 262144 bytes.
+ @ADD_STACK_USAGE_WARNING_TRUE@STACK_USAGE_WARNING = -Wstack-usage=262144
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+- $(if $($(*F)_no_Werror),,-Werror) \
+- $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+- $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+- $($(*F)_CFLAGS)
+-
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow $(if \
++ $($(*F)_no_Werror),,-Werror) $(if \
++ $($(*F)_no_Wunused),,-Wunused $(WEXTRA)) $(if \
++ $($(*F)_no_Wformat),-Wno-format,-Wformat=2) $(if \
++ $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++ $($(*F)_CFLAGS) $(am__append_1)
+ COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-DEFS.os = -DPIC -DSHARED $(am__append_1)
++DEFS.os = -DPIC -DSHARED $(am__append_2)
+ CLEANFILES = *.gcno *.gcda
+ textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+ @FATAL_TEXTREL_FALSE@textrel_found = $(textrel_msg)
+ @FATAL_TEXTREL_TRUE@textrel_found = $(textrel_msg); exit 1
+ textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi
+ BUILD_RPATH = \$$ORIGIN/../libasm:\$$ORIGIN/../libdw:\$$ORIGIN/../backends:\$$ORIGIN/../libelf
+-AM_LDFLAGS = $(am__append_3) $(am__append_4)
++AM_LDFLAGS = $(am__append_4) $(am__append_5)
+ @TESTS_RPATH_FALSE@tests_rpath = no
+ @TESTS_RPATH_TRUE@tests_rpath = yes
+ asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
+@@ -1167,6 +1170,7 @@ get_lines_LDADD = $(libdw) $(libelf)
+ get_files_LDADD = $(libdw) $(libelf)
+ get_aranges_LDADD = $(libdw) $(libelf)
+ allfcts_LDADD = $(libdw) $(libelf)
++line2addr_no_Wformat = yes
+ line2addr_LDADD = $(libdw) $(argp_LDADD)
+ addrscopes_LDADD = $(libdw) $(argp_LDADD)
+ funcscopes_LDADD = $(libdw) $(argp_LDADD)
diff --git a/source/l/libelf/libelf.SlackBuild b/source/l/elfutils/elfutils.SlackBuild
index 66cb915cc..d7853d066 100755
--- a/source/l/libelf/libelf.SlackBuild
+++ b/source/l/elfutils/elfutils.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2010, 2011, 2014, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,14 +21,14 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PKGNAM=libelf
+PKGNAM=elfutils
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -63,6 +63,9 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION
+zcat $CWD/elfutils-0.163-unstrip-shf_info_link.patch | patch -p1 --verbose || exit 1
+zcat $CWD/elfutils-portability-0.163.patch | patch -p1 --verbose || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -78,14 +81,14 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--infodir=/usr/info \
- --disable-compat \
+ --program-prefix=eu- \
--build=$ARCH-slackware-linux
# Build:
make $NUMJOBS || make || exit 1
# Install:
-make instroot=$PKG install || exit 1
+make install DESTDIR=$PKG || exit 1
# Strip binaries:
( cd $PKG
@@ -96,7 +99,8 @@ make instroot=$PKG install || exit 1
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \
+ AUTHORS CONTRIBUTING COPYING* ChangeLog GPG-KEY \
+ INSTALL* NEWS NOTES README* THANKS TODO \
$PKG/usr/doc/${PKGNAM}-$VERSION
# Compress and if needed symlink the man pages:
@@ -130,7 +134,6 @@ if [ -r ChangeLog ]; then
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
-
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/elfutils/slack-desc b/source/l/elfutils/slack-desc
new file mode 100644
index 000000000..ad242d720
--- /dev/null
+++ b/source/l/elfutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+elfutils: elfutils (ELF object file access library and utilities)
+elfutils:
+elfutils: Elfutils is a collection of utilities, including stack (to show
+elfutils: backtraces), nm (for listing symbols from object files), size
+elfutils: (for listing the section sizes of an object or archive file),
+elfutils: strip (for discarding symbols), readelf (to see the raw ELF file
+elfutils: structures), and elflint (to check for well-formed ELF files).
+elfutils:
+elfutils: Project home: http://fedorahosted.org/releases/e/l/elfutils/
+elfutils:
+elfutils:
diff --git a/source/l/exiv2/exiv2.SlackBuild b/source/l/exiv2/exiv2.SlackBuild
index 6131dc022..1292eb189 100755
--- a/source/l/exiv2/exiv2.SlackBuild
+++ b/source/l/exiv2/exiv2.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2007 Frank Caraballo <fecaraballo{at}gmail{dot}com>
-# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -30,7 +30,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -42,8 +42,8 @@ TMP=${TMP:-/tmp}
PKG=$TMP/package-exiv2
NUMJOBS=${NUMJOBS:--j6}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -80,6 +80,8 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-shared=yes \
--enable-static=no \
--enable-xmp \
+ --enable-video \
+ --enable-webready \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/l/exiv2/slack-desc b/source/l/exiv2/slack-desc
index 2d8be6851..c01035a1c 100644
--- a/source/l/exiv2/slack-desc
+++ b/source/l/exiv2/slack-desc
@@ -5,7 +5,7 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler-------------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
exiv2: Exiv2 (Exif and IPTC Metadata Library and Tools)
exiv2:
exiv2: Exiv2 is a C++ library and a command line utility to read and write
diff --git a/source/l/fftw/fftw.SlackBuild b/source/l/fftw/fftw.SlackBuild
index 98cfe39f8..216c68999 100755
--- a/source/l/fftw/fftw.SlackBuild
+++ b/source/l/fftw/fftw.SlackBuild
@@ -4,7 +4,7 @@
# Written by Kyle Guinn <elyk03@gmail.com>
PKGNAM=fftw
-VERSION=${VERSION:-3.3.3}
+VERSION=${VERSION:-3.3.4}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
diff --git a/source/l/freetype/freetype.SlackBuild b/source/l/freetype/freetype.SlackBuild
index 127351170..6c1d60fff 100755
--- a/source/l/freetype/freetype.SlackBuild
+++ b/source/l/freetype/freetype.SlackBuild
@@ -30,15 +30,15 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -92,7 +92,7 @@ make install DESTDIR=$PKG
mkdir -p $PKG/usr/include
( cd $PKG/usr/include
rm -rf freetype
- ln -sf freetype2/freetype .
+ ln -sf freetype2 freetype
)
# Can't imagine a lot of use for this:
@@ -101,6 +101,9 @@ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+mv $PKG/usr/share/man $PKG/usr/man
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+
mkdir -p $PKG/usr/doc/freetype-$VERSION
cp -a \
docs \
diff --git a/source/l/freetype/freetype.illadvisederror.diff b/source/l/freetype/freetype.illadvisederror.diff
index 0afdcdfa7..fee71076d 100644
--- a/source/l/freetype/freetype.illadvisederror.diff
+++ b/source/l/freetype/freetype.illadvisederror.diff
@@ -1,8 +1,8 @@
-diff -u -r freetype-2.1.7.orig/include/freetype/freetype.h freetype-2.1.7/include/freetype/freetype.h
---- freetype-2.1.7.orig/include/freetype/freetype.h 2003-11-09 00:38:13.000000000 -0800
-+++ freetype-2.1.7/include/freetype/freetype.h 2004-06-05 13:43:55.000000000 -0700
-@@ -16,13 +16,20 @@
- /***************************************************************************/
+diff -Nur freetype-2.6.1.orig/include/freetype/freetype.h freetype-2.6.1/include/freetype/freetype.h
+--- freetype-2.6.1.orig/include/freetype/freetype.h 2015-10-03 23:54:01.000000000 -0500
++++ freetype-2.6.1/include/freetype/freetype.h 2015-10-04 22:13:40.233912984 -0500
+@@ -20,13 +20,20 @@
+ #define __FREETYPE_H__
-#ifndef FT_FREETYPE_H
@@ -28,4 +28,4 @@ diff -u -r freetype-2.1.7.orig/include/freetype/freetype.h freetype-2.1.7/includ
+/***************************************************************************/
- #ifndef __FREETYPE_H__
+ #include <ft2build.h>
diff --git a/source/l/freetype/freetype.subpixel.rendering.diff b/source/l/freetype/freetype.subpixel.rendering.diff
index e4bd9e1ee..5ab3b379a 100644
--- a/source/l/freetype/freetype.subpixel.rendering.diff
+++ b/source/l/freetype/freetype.subpixel.rendering.diff
@@ -1,5 +1,6 @@
---- ./include/freetype/config/ftoption.h.orig 2007-01-05 10:18:45.000000000 -0600
-+++ ./include/freetype/config/ftoption.h 2007-04-21 15:07:04.000000000 -0500
+diff -Naur freetype-2.6.1.orig/include/freetype/config/ftoption.h freetype-2.6.1/include/freetype/config/ftoption.h
+--- freetype-2.6.1.orig/include/freetype/config/ftoption.h 2015-09-25 07:58:57.000000000 +0200
++++ freetype-2.6.1/include/freetype/config/ftoption.h 2015-10-31 16:11:42.016958163 +0100
@@ -92,7 +92,7 @@
/* This is done to allow FreeType clients to run unmodified, forcing */
/* them to display normal gray-level anti-aliased glyphs. */
diff --git a/source/l/freetype/slack-desc b/source/l/freetype/slack-desc
index 0d179401f..d70b3e756 100644
--- a/source/l/freetype/slack-desc
+++ b/source/l/freetype/slack-desc
@@ -6,14 +6,14 @@
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-freetype: freetype (A Free, High-Quality, and Portable Font Engine)
-freetype:
-freetype: The FreeType engine is a free and portable TrueType font rendering
-freetype: engine. It has been developed to provide TrueType support to a
-freetype: great variety of platforms and environments.
-freetype:
-freetype:
+freetype: freetype (A free, high-quality, and portable font engine)
freetype:
+freetype: FreeType is a free and portable font rendering engine. It has been
+freetype: developed to provide support for a number of font formats, including
+freetype: TrueType, Type 1, and OpenType, and is designed to be small,
+freetype: efficient, highly customizable, and portable while capable of
+freetype: producing high-quality output.
freetype:
+freetype: Homepage: http://www.freetype.org
freetype:
freetype:
diff --git a/source/l/fribidi/fribidi.SlackBuild b/source/l/fribidi/fribidi.SlackBuild
index 0d42095a6..4fe3e3226 100755
--- a/source/l/fribidi/fribidi.SlackBuild
+++ b/source/l/fribidi/fribidi.SlackBuild
@@ -23,12 +23,12 @@
PKGNAM=fribidi
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -62,19 +62,21 @@ rm -rf fribidi-$VERSION
tar xvf $CWD/fribidi-$VERSION.tar.?z* || exit 1
cd fribidi-$VERSION
-zcat $CWD/fribidi.glib.h.diff.gz | patch -p1 --verbose || exit 1
-
chown -R root:root .
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 664 -exec chmod 644 {} \;
chown -R root:root .
+
CFLAGS="$SLKCFLAGS" \
./configure --prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--disable-static \
- --with-pic
+ --with-pic \
+ --docdir=/usr/doc/fribidi-$VERSION \
+ --build=$ARCH-slackware-linux
+
make $NUMJOBS || exit 1
make install DESTDIR=$PKG
diff --git a/source/l/fribidi/slack-desc b/source/l/fribidi/slack-desc
index eb9fe325b..453ad8a30 100644
--- a/source/l/fribidi/slack-desc
+++ b/source/l/fribidi/slack-desc
@@ -12,7 +12,7 @@ fribidi: This library implements the Unicode BiDirectional algorithm, which
fribidi: is needed in order to support right-to-left languages such as Arabic
fribidi: and Hebrew. It is used in display software like KDE's SVG modules.
fribidi:
-fribidi:
+fribidi: Homepage: http://fribidi.org
fribidi:
fribidi:
fribidi:
diff --git a/source/l/fuse/fuse.SlackBuild b/source/l/fuse/fuse.SlackBuild
index 5b42ff389..9ad128bff 100755
--- a/source/l/fuse/fuse.SlackBuild
+++ b/source/l/fuse/fuse.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (c) 2008, Antonio Hernandez Blas <hba.nihilismus@gmail.com>
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -32,7 +32,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -94,6 +94,21 @@ make install DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
# Move the start|stop script of fuse to the right place.
mv $PKG/etc/init.d $PKG/etc/rc.d
mv $PKG/etc/rc.d/fuse $PKG/etc/rc.d/rc.fuse.new
diff --git a/source/l/gc/gc.SlackBuild b/source/l/gc/gc.SlackBuild
index 70c9595af..186f39872 100755
--- a/source/l/gc/gc.SlackBuild
+++ b/source/l/gc/gc.SlackBuild
@@ -1,6 +1,7 @@
#!/bin/sh
-# Copyright 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014 Heinz Wiesinger, Amsterdam, NL
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +24,12 @@
PKGNAM=gc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +44,8 @@ PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $PKG/usr
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -61,6 +62,8 @@ cd $TMP
rm -rf $PKGNAM-$VERSION $PKGNAM-$(echo $VERSION | cut -b 1-3)
tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
cd $PKGNAM-$VERSION 2> /dev/null || cd $PKGNAM-$(echo $VERSION | cut -b 1-3) || exit 1
+tar xvf $CWD/libatomic_ops-$VERSION.tar.xz || exit 1
+mv libatomic_ops-$VERSION libatomic_ops
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -68,17 +71,29 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-zcat $CWD/gc.test-stack-infinite-loop.diff.gz | patch -p1 --verbose || exit 1
+# https://github.com/ivmai/bdwgc/pull/51
+zcat $CWD/noelision.patch.gz | patch -p1 --verbose || exit 1
-CFLAGS="$SLKCFLAGS" \
+# Guarding GC_setup_mark_lock usage with PARALLEL_MARK is required to avoid
+# an undefined reference in non-PARALLEL_MARK configurations:
+zcat $CWD/refer_to_GC_setup_mark_lock_only_in_PARALLEL_MARK_code.patch.gz | patch -p0 --verbose || exit 1
+
+sed -i 's#pkgdata#doc#' doc/doc.am
+sed -i 's#pkgdata#doc#' libatomic_ops/Makefile.am
+sed -i 's#pkgdata#doc#' libatomic_ops/doc/Makefile.am
+
+autoreconf -vif
+automake --add-missing
+
+# See bugzilla.redhat.com/689877 for -DUSE_GET_STACKBASE_FOR_MAIN
+
+CFLAGS="$SLKCFLAGS -DUSE_GET_STACKBASE_FOR_MAIN" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--infodir=/usr/info \
--mandir=/usr/man \
- --disable-static \
--disable-dependency-tracking \
- --disable-static \
--enable-cplusplus \
--enable-large-config \
--enable-parallel-mark \
@@ -86,10 +101,32 @@ CFLAGS="$SLKCFLAGS" \
--with-libatomic-ops=no \
--build=$ARCH-slackware-linux
+# NOTE: Using --disable-static exports a subset of symbols, and has caused
+# some things that use gc to break. So it is recommended to build the static
+# libraries and then remove them before packaging.
+
# Does not like parallel make...
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
+mkdir -p $PKG/usr/man/man3
+sed -i -e 's/GC_MALLOC 1L/gc 3/' doc/gc.man
+install -m 644 doc/gc.man $PKG/usr/man/man3/gc.3
+
+# Install libatomic_ops
+cd libatomic_ops
+ make install DESTDIR=$PKG || exit 1
+cd -
+
+# Remove static libraries that we don't want in the package, and fix the
+# .la files to remove the references to them:
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ for static in libcord libgc libgccpp ; do
+ rm --verbose ${static}.a
+ sed -i "s#old_library='.*'#old_library=''#g" ${static}.la
+ done
+)
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
@@ -108,18 +145,12 @@ if [ -d $PKG/usr/man ]; then
)
fi
-# Compress info files, if any:
-if [ -d $PKG/usr/info ]; then
- ( cd $PKG/usr/info
- rm -f dir
- gzip -9 *
- )
-fi
-
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+mv $PKG/usr/share/doc/* $PKG/usr/doc/$PKGNAM-$VERSION/
+rm -f $PKG/usr/doc/$PKGNAM-$VERSION/gc/gc.man
+rm -rf $PKG/usr/share
cp -a \
- AUTHORS COPYING* FAQ GUILE-VERSION \
- HACKING INSTALL LICENSE NEWS README* THANKS \
+ README.QUICK TODO \
$PKG/usr/doc/$PKGNAM-$VERSION
mkdir -p $PKG/install
diff --git a/source/l/gc/gc.test-stack-infinite-loop.diff b/source/l/gc/gc.test-stack-infinite-loop.diff
deleted file mode 100644
index 49a6046e8..000000000
--- a/source/l/gc/gc.test-stack-infinite-loop.diff
+++ /dev/null
@@ -1,67 +0,0 @@
-diff --git a/libatomic_ops/tests/test_atomic.c b/libatomic_ops/tests/test_atomic.c
-index e354024..b8906e9 100644
---- a/libatomic_ops/tests/test_atomic.c
-+++ b/libatomic_ops/tests/test_atomic.c
-@@ -77,7 +77,10 @@ void * acqrel_thr(void *id)
- {
- AO_t my_counter1;
- if (me != 1)
-- fprintf(stderr, "acqrel test: too many threads\n");
-+ {
-+ fprintf(stderr, "acqrel test: too many threads\n");
-+ abort();
-+ }
- my_counter1 = AO_load(&counter1);
- AO_store(&counter1, my_counter1 + 1);
- AO_store_release_write(&counter2, my_counter1 + 1);
-diff --git a/libatomic_ops/tests/test_malloc.c b/libatomic_ops/tests/test_malloc.c
-index a1f4179..a19ffd5 100644
---- a/libatomic_ops/tests/test_malloc.c
-+++ b/libatomic_ops/tests/test_malloc.c
-@@ -151,6 +151,7 @@ void * run_one_test(void * arg) {
- if (0 == p) {
- # ifdef HAVE_MMAP
- fprintf(stderr, "AO_malloc(%d) failed\n", LARGE_OBJ_SIZE);
-+ abort();
- # else
- fprintf(stderr, "AO_malloc(%d) failed: This is normal without mmap\n",
- LARGE_OBJ_SIZE);
-diff --git a/libatomic_ops/tests/test_stack.c b/libatomic_ops/tests/test_stack.c
-index bf3180d..e654c35 100644
---- a/libatomic_ops/tests/test_stack.c
-+++ b/libatomic_ops/tests/test_stack.c
-@@ -97,14 +97,23 @@ void check_list(int n)
- p = (list_element *)AO_REAL_NEXT_PTR(p -> next))
- {
- if (p -> data > n || p -> data <= 0)
-- fprintf(stderr, "Found erroneous list element %d\n", p -> data);
-+ {
-+ fprintf(stderr, "Found erroneous list element %d\n", i);
-+ abort();
-+ }
- if (marks[p -> data] != 0)
-- fprintf(stderr, "Found duplicate list element %d\n", p -> data);
-+ {
-+ fprintf(stderr, "Found duplicate list element %d\n", i);
-+ abort();
-+ }
- marks[p -> data] = 1;
- }
- for (i = 1; i <= n; ++i)
- if (marks[i] != 1)
-- fprintf(stderr, "Missing list element %d\n", i);
-+ {
-+ fprintf(stderr, "Missing list element %d\n", i);
-+ abort();
-+ }
- }
-
- volatile AO_t ops_performed = 0;
-@@ -218,6 +227,7 @@ int main(int argc, char **argv)
- int code;
- if ((code = pthread_join(thread[i], 0)) != 0) {
- fprintf(stderr, "Thread join failed %u\n", code);
-+ abort();
- }
- }
- times[nthreads][exper_n] = (unsigned long)(get_msecs() - start_time);
diff --git a/source/l/gc/noelision.patch b/source/l/gc/noelision.patch
new file mode 100644
index 000000000..0e1515ea1
--- /dev/null
+++ b/source/l/gc/noelision.patch
@@ -0,0 +1,127 @@
+diff --git c/include/private/gc_priv.h w/include/private/gc_priv.h
+index 0ad92fc..b877fac 100644
+--- c/include/private/gc_priv.h
++++ w/include/private/gc_priv.h
+@@ -2368,6 +2368,7 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t p, word sz, const char *str,
+ /* GC_notify_all_builder() is called when GC_fl_builder_count */
+ /* reaches 0. */
+
++ GC_INNER void GC_setup_mark_lock(void);
+ GC_INNER void GC_acquire_mark_lock(void);
+ GC_INNER void GC_release_mark_lock(void);
+ GC_INNER void GC_notify_all_builder(void);
+diff --git c/include/private/gcconfig.h w/include/private/gcconfig.h
+index c753cc2..b5ed075 100644
+--- c/include/private/gcconfig.h
++++ w/include/private/gcconfig.h
+@@ -1357,6 +1357,11 @@
+ # define PREFETCH_FOR_WRITE(x) \
+ __asm__ __volatile__ ("prefetchw %0" : : "m"(*(char *)(x)))
+ # endif
++# if defined(__GLIBC__)
++ /* Workaround lock elision implementation for some glibc. */
++# define GLIBC_2_19_TSX_BUG
++# include <gnu/libc-version.h> /* for gnu_get_libc_version() */
++# endif
+ # endif
+ # ifdef CYGWIN32
+ # define OS_TYPE "CYGWIN32"
+@@ -2257,6 +2262,11 @@
+ /* FIXME: This seems to be fixed in GLibc v2.14. */
+ # define GETCONTEXT_FPU_EXCMASK_BUG
+ # endif
++# if defined(__GLIBC__)
++ /* Workaround lock elision implementation for some glibc. */
++# define GLIBC_2_19_TSX_BUG
++# include <gnu/libc-version.h> /* for gnu_get_libc_version() */
++# endif
+ # endif
+ # ifdef DARWIN
+ # define OS_TYPE "DARWIN"
+diff --git c/include/private/pthread_support.h w/include/private/pthread_support.h
+index 525a9aa..017f194 100644
+--- c/include/private/pthread_support.h
++++ w/include/private/pthread_support.h
+@@ -148,6 +148,8 @@ GC_INNER_PTHRSTART GC_thread GC_start_rtn_prepare_thread(
+ struct GC_stack_base *sb, void *arg);
+ GC_INNER_PTHRSTART void GC_thread_exit_proc(void *);
+
++GC_INNER void GC_setup_mark_lock(void);
++
+ #endif /* GC_PTHREADS && !GC_WIN32_THREADS */
+
+ #endif /* GC_PTHREAD_SUPPORT_H */
+diff --git c/misc.c w/misc.c
+index df434a1..3aca41d 100644
+--- c/misc.c
++++ w/misc.c
+@@ -875,6 +875,9 @@ GC_API void GC_CALL GC_init(void)
+ /* else */ InitializeCriticalSection (&GC_allocate_ml);
+ }
+ # endif /* GC_WIN32_THREADS */
++# if defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS)
++ GC_setup_mark_lock();
++# endif /* GC_PTHREADS */
+ # if (defined(MSWIN32) || defined(MSWINCE)) && defined(THREADS)
+ InitializeCriticalSection(&GC_write_cs);
+ # endif
+diff --git c/pthread_support.c w/pthread_support.c
+index c00b93d..8a7c50b 100644
+--- c/pthread_support.c
++++ w/pthread_support.c
+@@ -1979,6 +1979,55 @@ GC_INNER void GC_lock(void)
+
+ static pthread_cond_t builder_cv = PTHREAD_COND_INITIALIZER;
+
++#ifdef GLIBC_2_19_TSX_BUG
++ /* Parse string like <major>[.<minor>[<tail>]] and return major value. */
++ static int parse_version(int *pminor, const char *pverstr) {
++ char *endp;
++ unsigned long value = strtoul(pverstr, &endp, 10);
++ int major = (int)value;
++
++ if (major < 0 || (char *)pverstr == endp || (unsigned)major != value) {
++ /* Parse error */
++ return -1;
++ }
++ if (*endp != '.') {
++ /* No minor part. */
++ *pminor = -1;
++ } else {
++ value = strtoul(endp + 1, &endp, 10);
++ *pminor = (int)value;
++ if (*pminor < 0 || (unsigned)(*pminor) != value) {
++ return -1;
++ }
++ }
++ return major;
++ }
++#endif /* GLIBC_2_19_TSX_BUG */
++
++GC_INNER void GC_setup_mark_lock(void)
++{
++# ifdef GLIBC_2_19_TSX_BUG
++ pthread_mutexattr_t mattr;
++ int glibc_minor = -1;
++ int glibc_major = parse_version(&glibc_minor, gnu_get_libc_version());
++
++ if (glibc_major > 2 || (glibc_major == 2 && glibc_minor >= 19)) {
++ /* TODO: disable this workaround for glibc with fixed TSX */
++ /* This disables lock elision to workaround a bug in glibc 2.19+ */
++ if (0 != pthread_mutexattr_init(&mattr)) {
++ ABORT("pthread_mutexattr_init failed");
++ }
++ if (0 != pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_NORMAL)) {
++ ABORT("pthread_mutexattr_settype failed");
++ }
++ if (0 != pthread_mutex_init(&mark_mutex, &mattr)) {
++ ABORT("pthread_mutex_init failed");
++ }
++ pthread_mutexattr_destroy(&mattr);
++ }
++# endif
++}
++
+ GC_INNER void GC_acquire_mark_lock(void)
+ {
+ GC_ASSERT(GC_mark_lock_holder != NUMERIC_THREAD_ID(pthread_self()));
diff --git a/source/l/gc/refer_to_GC_setup_mark_lock_only_in_PARALLEL_MARK_code.patch b/source/l/gc/refer_to_GC_setup_mark_lock_only_in_PARALLEL_MARK_code.patch
new file mode 100644
index 000000000..6e63c777e
--- /dev/null
+++ b/source/l/gc/refer_to_GC_setup_mark_lock_only_in_PARALLEL_MARK_code.patch
@@ -0,0 +1,26 @@
+Guarding GC_setup_mark_lock usage with PARALLEL_MARK is required to avoid
+an undefined reference in non-PARALLEL_MARK configurations:
+commit 4c8e0dc234e671c4d64ffab9d4f94b6cd8cc2f63
+Author: Thomas Schwinge < thomas at codesourcery.com >
+Date: Mon Sep 22 13:36:00 2014 +0200
+ Refer to GC_setup_mark_lock only in PARALLEL_MARK code.
+
+ ./.libs/libgc.so: undefined reference to `GC_setup_mark_lock'
+
+ * misc.c (GC_init): Guard GC_setup_mark_lock usage.
+---
+ misc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+diff --git misc.c misc.c
+index 41bd3f4..721a999 100644
+--- misc.c
++++ misc.c
+@@ -889,7 +889,7 @@ GC_API void GC_CALL GC_init(void)
+ /* else */ InitializeCriticalSection (&GC_allocate_ml);
+ }
+ # endif /* GC_WIN32_THREADS */
+-# if defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS)
++# if defined(PARALLEL_MARK) && defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS)
+ GC_setup_mark_lock();
+ # endif /* GC_PTHREADS */
+ # if (defined(MSWIN32) || defined(MSWINCE)) && defined(THREADS)
diff --git a/source/l/gc/slack-desc b/source/l/gc/slack-desc
index 4e747f8fd..9fce3ef0f 100644
--- a/source/l/gc/slack-desc
+++ b/source/l/gc/slack-desc
@@ -11,7 +11,7 @@ gc:
gc: The Boehm-Demers-Weiser conservative garbage collector can be used as
gc: a garbage collecting replacement for C malloc or C++ new.
gc:
-gc: Homepage: http://www.hpl.hp.com/personal/Hans_Boehm/gc/
+gc: Homepage: http://www.hboehm.info/gc/
gc:
gc:
gc:
diff --git a/source/l/gcr/gcr.SlackBuild b/source/l/gcr/gcr.SlackBuild
index f46e43aa7..0428e20ce 100755
--- a/source/l/gcr/gcr.SlackBuild
+++ b/source/l/gcr/gcr.SlackBuild
@@ -24,11 +24,11 @@
PKGNAM=gcr
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -79,6 +79,7 @@ CXXFLAGS="$SLKCFLAGS" \
--disable-schemas-compile \
--disable-update-mime \
--disable-update-icon-cache \
+ --disable-vala \
--disable-debug \
--build=$ARCH-slackware-linux || exit 1
diff --git a/source/l/gd/gd.SlackBuild b/source/l/gd/gd.SlackBuild
index c33f20ba1..f998436a8 100755
--- a/source/l/gd/gd.SlackBuild
+++ b/source/l/gd/gd.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,13 +22,13 @@
PKGNAM=gd
-VERSION=${VERSION:-2.0.35}
-BUILD=${BUILD:-4}
+VERSION=${VERSION:-$(echo libgd-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -44,8 +44,8 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -59,11 +59,9 @@ else
fi
cd $TMP
-rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
-cd ${PKGNAM}-$VERSION
-
-zcat $CWD/gd.png14.diff.gz | patch -p1 --verbose || exit 1
+rm -rf libgd-${VERSION}
+tar xvf $CWD/libgd-$VERSION.tar.xz || exit 1
+cd libgd-$VERSION || exit 1
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -73,11 +71,7 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Add pkgconfig file:
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
-cat $CWD/gdlib.pc | sed -e "s/@VERSION@/$VERSION/" \
- | sed -e "s#/lib#/lib${LIBDIRSUFFIX}#g" \
- > $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/gdlib.pc
+./bootstrap.sh
# Configure:
CFLAGS="$SLKCFLAGS" \
diff --git a/source/l/gd/gd.png14.diff b/source/l/gd/gd.png14.diff
deleted file mode 100644
index 49841ee4f..000000000
--- a/source/l/gd/gd.png14.diff
+++ /dev/null
@@ -1,65 +0,0 @@
---- ./configure.ac.orig 2007-04-25 07:48:41.000000000 -0500
-+++ ./configure.ac 2010-02-12 01:37:29.000000000 -0600
-@@ -342,20 +342,20 @@
- [ --with-png=DIR where to find the png library],,
- withval=yes)
-
--# libpng12.so is a nightmare. We have to test separately for
--# libpng12-config and libpng-config. If we find libpng12-config,
-+# libpng14.so is a nightmare. We have to test separately for
-+# libpng14-config and libpng-config. If we find libpng14-config,
- # we don't look for the other, which will just be a symlink to it,
- # confusing autoconf into thinking the library itself will be named -lpng,
- # which it won't be. Awful. This code will suffice unless the libpng
- # authors decide to do this AGAIN. Which I really hope they won't. TBB
-
- if test "$withval" != no; then
-- AC_PATH_PROG([LIBPNG12_CONFIG], [libpng12-config])
-+ AC_PATH_PROG([LIBPNG14_CONFIG], [libpng14-config])
- AC_PATH_PROG([LIBPNG_CONFIG], [libpng-config])
-- if test -n "$LIBPNG12_CONFIG"; then
-- libpng_CPPFLAGS=`libpng12-config --cflags`
-+ if test -n "$LIBPNG14_CONFIG"; then
-+ libpng_CPPFLAGS=`libpng14-config --cflags`
- # should be --ldopts, but it's currently broken
-- libpng_LDFLAGS=`libpng12-config --ldflags`
-+ libpng_LDFLAGS=`libpng14-config --ldflags`
- libpng_LDFLAGS=`echo " $libpng_LDFLAGS" | sed 's/ -l[[^ ]][[^ ]]*//g'`
- elif test -n "$LIBPNG_CONFIG"; then
- libpng_CPPFLAGS=`libpng-config --cflags`
-@@ -375,9 +375,9 @@
- _ldflags="$LDFLAGS"
- LDFLAGS="$libpng_LDFLAGS $LDFLAGS"
-
-- if test -n "$LIBPNG12_CONFIG"; then
-- AC_CHECK_LIB(png12,png_create_read_struct,
-- [LIBS="-lpng12 $LIBS"
-+ if test -n "$LIBPNG14_CONFIG"; then
-+ AC_CHECK_LIB(png14,png_create_read_struct,
-+ [LIBS="-lpng14 $LIBS"
- FEATURES="GD_PNG $FEATURES"
- AC_DEFINE(HAVE_LIBPNG, 1, [ Define if you have the png library. ])],
- [LDFLAGS="$_ldflags"
-@@ -402,9 +402,9 @@
- AC_MSG_WARN([libpng is required - see http://www.libpng.org/pub/png/])
- fi
-
--#TBB: png12's png_create_read_struct is just as good
-+#TBB: png14's png_create_read_struct is just as good
- #2.0.23: should be = not ==
--if test "$ac_cv_lib_png12_png_create_read_struct" = yes; then
-+if test "$ac_cv_lib_png14_png_create_read_struct" = yes; then
- ac_cv_lib_png_png_create_read_struct=yes
- fi
-
---- ./gd_png.c.orig 2007-06-14 14:51:41.000000000 -0500
-+++ ./gd_png.c 2010-02-12 01:43:36.000000000 -0600
-@@ -149,7 +149,7 @@
- return NULL;
- }
-
-- if (!png_check_sig (sig, 8)) { /* bad signature */
-+ if (!(png_sig_cmp(sig, 0, 8) == 0)) { /* bad signature */
- return NULL; /* bad signature */
- }
-
diff --git a/source/l/gd/gdlib.pc b/source/l/gd/gdlib.pc
deleted file mode 100644
index e39512638..000000000
--- a/source/l/gd/gdlib.pc
+++ /dev/null
@@ -1,14 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-bindir=${exec_prefix}/bin
-ldflags= -L/usr/lib -L/usr/X11R6/lib
-
-
-Name: gd-devel
-Description: A graphics library for quick creation of PNG or JPEG images
-Version: @VERSION@
-Requires:
-Libs: -lXpm -lX11 -ljpeg -lfontconfig -lfreetype -lpng14 -lz -lm
-Cflags: -I${prefix}/include
diff --git a/source/l/gdbm/gdbm.SlackBuild b/source/l/gdbm/gdbm.SlackBuild
index 691f7001f..24630d653 100755
--- a/source/l/gdbm/gdbm.SlackBuild
+++ b/source/l/gdbm/gdbm.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,12 +26,12 @@
PKGNAM=gdbm
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -44,8 +44,8 @@ PKG=$TMP/package-gdbm
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -63,15 +63,31 @@ rm -rf gdbm-$VERSION
tar xvf $CWD/gdbm-$VERSION.tar.?z* || exit 1
cd gdbm-$VERSION || exit 1
chown -R root:root .
-find . -perm 700 -exec chmod 755 {} \;
-find . -perm 600 -exec chmod 644 {} \;
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Prevent gdbm from storing uninitialized memory content
+# to database files. This patch improves security, as the
+# uninitialized memory might contain sensitive informations
+# from other applications.
+# https://bugzilla.redhat.com/show_bug.cgi?id=4457
+# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208927
+zcat $CWD/gdbm.zeroheaders.patch.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
+ --infodir=/usr/info \
+ --mandir=/usr/man \
--build=$ARCH-slackware-linux
+
make -j4 || exit 1
-make install INSTALL_ROOT=$PKG
+
+make install DESTDIR=$PKG
# I'm not sure what out there would need the "libgdbm_compat" library,
# but it causes versions of ndbm.h and dbm.h to be installed that break
@@ -80,13 +96,17 @@ make install INSTALL_ROOT=$PKG
# enough, either. File this one under "not worth it".
#make install-compat INSTALL_ROOT=$PKG
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
)
+
mkdir -p $PKG/usr/doc/gdbm-$VERSION
cp -a \
- COPYING* NEWS README* \
+ ABOUT-NLS AUTHORS COPYING* NEWS NOTE-WARNING README* THANKS \
$PKG/usr/doc/gdbm-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
@@ -99,7 +119,6 @@ fi
rm -f $PKG/usr/info/dir
gzip -9 $PKG/usr/info/gdbm.info
-gzip -9 $PKG/usr/man/man3/gdbm.3
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/gdbm/gdbm.zeroheaders.patch b/source/l/gdbm/gdbm.zeroheaders.patch
new file mode 100644
index 000000000..7d2f06560
--- /dev/null
+++ b/source/l/gdbm/gdbm.zeroheaders.patch
@@ -0,0 +1,36 @@
+Don't let gdbm allocate memory and then write it to files without
+clearing it first. See: https://bugzilla.redhat.com/show_bug.cgi?id=4457
+
+diff -up gdbm-1.10/src/falloc.c.zeroheaders gdbm-1.10/src/falloc.c
+--- gdbm-1.10/src/falloc.c.zeroheaders 2011-11-11 11:59:11.000000000 +0100
++++ gdbm-1.10/src/falloc.c 2011-11-14 17:34:32.487604027 +0100
+@@ -255,7 +255,7 @@ push_avail_block (GDBM_FILE dbf)
+
+
+ /* Split the header block. */
+- temp = (avail_block *) malloc (av_size);
++ temp = (avail_block *) calloc (1, av_size);
+ if (temp == NULL) _gdbm_fatal (dbf, _("malloc error"));
+ /* Set the size to be correct AFTER the pop_avail_block. */
+ temp->size = dbf->header->avail.size;
+diff -up gdbm-1.10/src/gdbmopen.c.zeroheaders gdbm-1.10/src/gdbmopen.c
+--- gdbm-1.10/src/gdbmopen.c.zeroheaders 2011-11-11 19:39:42.000000000 +0100
++++ gdbm-1.10/src/gdbmopen.c 2011-11-14 17:33:24.867608650 +0100
+@@ -264,7 +264,7 @@ gdbm_open (const char *file, int block_s
+ (dbf->header->block_size - sizeof (hash_bucket))
+ / sizeof (bucket_element) + 1;
+ dbf->header->bucket_size = dbf->header->block_size;
+- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
++ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if (dbf->bucket == NULL)
+ {
+ gdbm_close (dbf);
+@@ -456,7 +456,7 @@ _gdbm_init_cache(GDBM_FILE dbf, size_t s
+ for(index = 0; index < size; index++)
+ {
+ (dbf->bucket_cache[index]).ca_bucket
+- = (hash_bucket *) malloc (dbf->header->bucket_size);
++ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if ((dbf->bucket_cache[index]).ca_bucket == NULL)
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
diff --git a/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild b/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild
index 7a5388684..505469de5 100755
--- a/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild
+++ b/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/gegl/gegl.SlackBuild b/source/l/gegl/gegl.SlackBuild
index 8eac6167b..72a47349d 100755
--- a/source/l/gegl/gegl.SlackBuild
+++ b/source/l/gegl/gegl.SlackBuild
@@ -23,7 +23,7 @@
VERSION=${VERSION:-$(echo gegl-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/giflib/giflib.SlackBuild b/source/l/giflib/giflib.SlackBuild
index e2390a253..80196ed3f 100755
--- a/source/l/giflib/giflib.SlackBuild
+++ b/source/l/giflib/giflib.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -80,10 +80,16 @@ make install DESTDIR=$PKG || exit 1
# Make some compatibility symlinks
( cd $PKG/usr/lib${LIBDIRSUFFIX}
- ln -s libgif.so.4 libungif.so.4
+ ln -s libgif.so.7 libungif.so.7
ln -s libgif.so libungif.so
)
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
mkdir -p $PKG/usr/doc/giflib-$VERSION
cp -a \
AUTHORS BUGS COPYING DEVELOPERS INSTALL NEWS ONEWS README TODO \
@@ -99,9 +105,6 @@ if [ -r ChangeLog ]; then
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/giflib/slack-desc b/source/l/giflib/slack-desc
index 322b6e418..04fb287ec 100644
--- a/source/l/giflib/slack-desc
+++ b/source/l/giflib/slack-desc
@@ -5,7 +5,7 @@
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
- |-----handy-ruler------------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
giflib: giflib (GIF image format library)
giflib:
giflib: A library to load and save (uncompressed only) images using GIF,
diff --git a/source/l/glade3/glade3.SlackBuild b/source/l/glade3/glade3.SlackBuild
index 02af4f3d4..56c7de5ec 100755
--- a/source/l/glade3/glade3.SlackBuild
+++ b/source/l/glade3/glade3.SlackBuild
@@ -24,11 +24,11 @@
PKGNAM=glade3
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -43,6 +43,9 @@ PKG=$TMP/package-$PKGNAM
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
diff --git a/source/l/glib-networking/glib-networking.SlackBuild b/source/l/glib-networking/glib-networking.SlackBuild
index 7281774e0..8d29a4aff 100755
--- a/source/l/glib-networking/glib-networking.SlackBuild
+++ b/source/l/glib-networking/glib-networking.SlackBuild
@@ -30,7 +30,7 @@ NUMJOBS=${NUMJOBS:--j6}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch b/source/l/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch
new file mode 100644
index 000000000..a315a01b0
--- /dev/null
+++ b/source/l/glib2/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch
@@ -0,0 +1,25 @@
+From db641e32920ee8b553ab6f2d318aafa156e4390c Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Wed, 25 Nov 2015 23:29:18 +0200
+Subject: [PATCH] GDBusProxy: Fix a memory leak during initialization
+
+https://bugzilla.gnome.org/show_bug.cgi?id=758641
+---
+ gio/gdbusproxy.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/gio/gdbusproxy.c b/gio/gdbusproxy.c
+index 52a22fb..7b1140f 100644
+--- a/gio/gdbusproxy.c
++++ b/gio/gdbusproxy.c
+@@ -1720,6 +1720,7 @@ async_initable_init_second_finish (GAsyncInitable *initable,
+ if (result != NULL)
+ {
+ process_get_all_reply (proxy, result);
++ g_variant_unref (result);
+ }
+
+ proxy->priv->initialized = TRUE;
+--
+2.6.3
+
diff --git a/source/l/glib2/glib2.SlackBuild b/source/l/glib2/glib2.SlackBuild
index 12014ef09..ae01163fc 100755
--- a/source/l/glib2/glib2.SlackBuild
+++ b/source/l/glib2/glib2.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,14 +22,14 @@
VERSION=${VERSION:-$(echo glib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-glib2
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -59,7 +59,7 @@ mkdir -p $TMP $PKG/usr
cd $TMP
rm -rf glib-$VERSION
tar xvf $CWD/glib-$VERSION.tar.?z* || exit 1
-cd glib-$VERSION
+cd glib-$VERSION || exit 1
chown -R root:root .
find . \
@@ -69,7 +69,9 @@ find . \
-exec chmod 644 {} \;
# Silly upstream, using the bleeding edge. Reconf:
-autoreconf --force --install
+#autoreconf --force --install
+
+patch -p1 < $CWD/0001-GDBusProxy-Fix-a-memory-leak-during-initialization.patch || exit 1
CFLAGS="$SLKCFLAGS" \
./configure \
@@ -77,10 +79,11 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--mandir=/usr/man \
- --build=$ARCH-slackware-linux
+ --disable-libelf \
+ --build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG
+make install DESTDIR=$PKG || exit 1
# Install profile scripts:
mkdir -p $PKG/etc/profile.d/
@@ -110,8 +113,9 @@ fi
mkdir -p $PKG/usr/doc/glib-$VERSION
cp -a \
- AUTHORS COPYING NEWS README \
+ AUTHORS COPYING* NEWS README* \
$PKG/usr/doc/glib-$VERSION
+ rm -f $PKG/usr/doc/glib-$VERSION/README.{in,win32}
( cd $PKG/usr/doc/glib-$VERSION ; ln -s /usr/share/gtk-doc/html/gobject html )
# If there's a ChangeLog, installing at least part of the recent history
@@ -122,6 +126,13 @@ if [ -r ChangeLog ]; then
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
+# Trim down bloated NEWS file:
+if [ -r NEWS ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat NEWS | head -n 1000 > $DOCSDIR/NEWS
+ touch -r NEWS $DOCSDIR/NEWS
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz | sed "s,@LIBDIR@,/usr/lib${LIBDIRSUFFIX}," > $PKG/install/doinst.sh
diff --git a/source/l/glibc/doinst.sh-glibc b/source/l/glibc/doinst.sh-glibc
index 5904dc751..472ab31a3 100644
--- a/source/l/glibc/doinst.sh-glibc
+++ b/source/l/glibc/doinst.sh-glibc
@@ -70,25 +70,6 @@ fi
rm -rf lib/incoming
# Done installing NPTL glibc libraries.
-# Timezone stuff:
-if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then
- mv etc/localtime etc/localtime-copied-from
- chroot . /bin/cp etc/localtime-copied-from etc/localtime
-fi
-# Add the default timezone in /etc, if none exists:
-if [ ! -r etc/localtime ]; then
- ( cd etc ; rm -rf localtime localtime-copied-from )
- ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from )
- chroot . /bin/cp etc/localtime-copied-from etc/localtime
-fi
-# Add the default link in /usr/share/zoneinfo, if none exists:
-if [ ! -L usr/share/zoneinfo/localtime ]; then
- ( cd usr/share/zoneinfo ; rm -rf localtime )
- ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime )
-fi
-( cd usr/share/zoneinfo ; rm -rf timeconfig )
-( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig )
-
# Handle config files:
config() {
NEW="$1"
@@ -111,43 +92,43 @@ rm -f etc/profile.d/glibc.sh.new
# In case there's no ldconfig, make the links manually:
if [ ! -x /sbin/ldconfig ]; then
( cd lib ; rm -rf libnss_nis.so.2 )
-( cd lib ; ln -sf libnss_nis-2.17.so libnss_nis.so.2 )
+( cd lib ; ln -sf libnss_nis-@@VERSION@@.so libnss_nis.so.2 )
( cd lib ; rm -rf libm.so.6 )
-( cd lib ; ln -sf libm-2.17.so libm.so.6 )
+( cd lib ; ln -sf libm-@@VERSION@@.so libm.so.6 )
( cd lib ; rm -rf libnss_files.so.2 )
-( cd lib ; ln -sf libnss_files-2.17.so libnss_files.so.2 )
+( cd lib ; ln -sf libnss_files-@@VERSION@@.so libnss_files.so.2 )
( cd lib ; rm -rf libresolv.so.2 )
-( cd lib ; ln -sf libresolv-2.17.so libresolv.so.2 )
+( cd lib ; ln -sf libresolv-@@VERSION@@.so libresolv.so.2 )
( cd lib ; rm -rf libnsl.so.1 )
-( cd lib ; ln -sf libnsl-2.17.so libnsl.so.1 )
+( cd lib ; ln -sf libnsl-@@VERSION@@.so libnsl.so.1 )
( cd lib ; rm -rf libutil.so.1 )
-( cd lib ; ln -sf libutil-2.17.so libutil.so.1 )
+( cd lib ; ln -sf libutil-@@VERSION@@.so libutil.so.1 )
( cd lib ; rm -rf libnss_compat.so.2 )
-( cd lib ; ln -sf libnss_compat-2.17.so libnss_compat.so.2 )
+( cd lib ; ln -sf libnss_compat-@@VERSION@@.so libnss_compat.so.2 )
( cd lib ; rm -rf libthread_db.so.1 )
( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
( cd lib ; rm -rf libnss_hesiod.so.2 )
-( cd lib ; ln -sf libnss_hesiod-2.17.so libnss_hesiod.so.2 )
+( cd lib ; ln -sf libnss_hesiod-@@VERSION@@.so libnss_hesiod.so.2 )
( cd lib ; rm -rf libanl.so.1 )
-( cd lib ; ln -sf libanl-2.17.so libanl.so.1 )
+( cd lib ; ln -sf libanl-@@VERSION@@.so libanl.so.1 )
( cd lib ; rm -rf libcrypt.so.1 )
-( cd lib ; ln -sf libcrypt-2.17.so libcrypt.so.1 )
+( cd lib ; ln -sf libcrypt-@@VERSION@@.so libcrypt.so.1 )
( cd lib ; rm -rf libBrokenLocale.so.1 )
-( cd lib ; ln -sf libBrokenLocale-2.17.so libBrokenLocale.so.1 )
+( cd lib ; ln -sf libBrokenLocale-@@VERSION@@.so libBrokenLocale.so.1 )
( cd lib ; rm -rf ld-linux.so.2 )
-( cd lib ; ln -sf ld-2.17.so ld-linux.so.2 )
+( cd lib ; ln -sf ld-@@VERSION@@.so ld-linux.so.2 )
( cd lib ; rm -rf libdl.so.2 )
-( cd lib ; ln -sf libdl-2.17.so libdl.so.2 )
+( cd lib ; ln -sf libdl-@@VERSION@@.so libdl.so.2 )
( cd lib ; rm -rf libnss_dns.so.2 )
-( cd lib ; ln -sf libnss_dns-2.17.so libnss_dns.so.2 )
+( cd lib ; ln -sf libnss_dns-@@VERSION@@.so libnss_dns.so.2 )
( cd lib ; rm -rf libpthread.so.0 )
-( cd lib ; ln -sf libpthread-2.17.so libpthread.so.0 )
+( cd lib ; ln -sf libpthread-@@VERSION@@.so libpthread.so.0 )
( cd lib ; rm -rf libnss_nisplus.so.2 )
-( cd lib ; ln -sf libnss_nisplus-2.17.so libnss_nisplus.so.2 )
+( cd lib ; ln -sf libnss_nisplus-@@VERSION@@.so libnss_nisplus.so.2 )
( cd lib ; rm -rf libc.so.6 )
-( cd lib ; ln -sf libc-2.17.so libc.so.6 )
+( cd lib ; ln -sf libc-@@VERSION@@.so libc.so.6 )
( cd lib ; rm -rf librt.so.1 )
-( cd lib ; ln -sf librt-2.17.so librt.so.1 )
+( cd lib ; ln -sf librt-@@VERSION@@.so librt.so.1 )
fi
# More links:
diff --git a/source/l/glibc/doinst.sh-glibc-solibs b/source/l/glibc/doinst.sh-glibc-solibs
index f721926cf..a11c36a55 100644
--- a/source/l/glibc/doinst.sh-glibc-solibs
+++ b/source/l/glibc/doinst.sh-glibc-solibs
@@ -91,43 +91,43 @@ rm -f etc/profile.d/glibc.sh.new
# In case there's no ldconfig, make the links manually:
if [ ! -x /sbin/ldconfig ]; then
( cd lib ; rm -rf libnss_nis.so.2 )
-( cd lib ; ln -sf libnss_nis-2.17.so libnss_nis.so.2 )
+( cd lib ; ln -sf libnss_nis-@@VERSION@@.so libnss_nis.so.2 )
( cd lib ; rm -rf libm.so.6 )
-( cd lib ; ln -sf libm-2.17.so libm.so.6 )
+( cd lib ; ln -sf libm-@@VERSION@@.so libm.so.6 )
( cd lib ; rm -rf libnss_files.so.2 )
-( cd lib ; ln -sf libnss_files-2.17.so libnss_files.so.2 )
+( cd lib ; ln -sf libnss_files-@@VERSION@@.so libnss_files.so.2 )
( cd lib ; rm -rf libresolv.so.2 )
-( cd lib ; ln -sf libresolv-2.17.so libresolv.so.2 )
+( cd lib ; ln -sf libresolv-@@VERSION@@.so libresolv.so.2 )
( cd lib ; rm -rf libnsl.so.1 )
-( cd lib ; ln -sf libnsl-2.17.so libnsl.so.1 )
+( cd lib ; ln -sf libnsl-@@VERSION@@.so libnsl.so.1 )
( cd lib ; rm -rf libutil.so.1 )
-( cd lib ; ln -sf libutil-2.17.so libutil.so.1 )
+( cd lib ; ln -sf libutil-@@VERSION@@.so libutil.so.1 )
( cd lib ; rm -rf libnss_compat.so.2 )
-( cd lib ; ln -sf libnss_compat-2.17.so libnss_compat.so.2 )
+( cd lib ; ln -sf libnss_compat-@@VERSION@@.so libnss_compat.so.2 )
( cd lib ; rm -rf libthread_db.so.1 )
( cd lib ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
( cd lib ; rm -rf libnss_hesiod.so.2 )
-( cd lib ; ln -sf libnss_hesiod-2.17.so libnss_hesiod.so.2 )
+( cd lib ; ln -sf libnss_hesiod-@@VERSION@@.so libnss_hesiod.so.2 )
( cd lib ; rm -rf libanl.so.1 )
-( cd lib ; ln -sf libanl-2.17.so libanl.so.1 )
+( cd lib ; ln -sf libanl-@@VERSION@@.so libanl.so.1 )
( cd lib ; rm -rf libcrypt.so.1 )
-( cd lib ; ln -sf libcrypt-2.17.so libcrypt.so.1 )
+( cd lib ; ln -sf libcrypt-@@VERSION@@.so libcrypt.so.1 )
( cd lib ; rm -rf libBrokenLocale.so.1 )
-( cd lib ; ln -sf libBrokenLocale-2.17.so libBrokenLocale.so.1 )
+( cd lib ; ln -sf libBrokenLocale-@@VERSION@@.so libBrokenLocale.so.1 )
( cd lib ; rm -rf ld-linux.so.2 )
-( cd lib ; ln -sf ld-2.17.so ld-linux.so.2 )
+( cd lib ; ln -sf ld-@@VERSION@@.so ld-linux.so.2 )
( cd lib ; rm -rf libdl.so.2 )
-( cd lib ; ln -sf libdl-2.17.so libdl.so.2 )
+( cd lib ; ln -sf libdl-@@VERSION@@.so libdl.so.2 )
( cd lib ; rm -rf libnss_dns.so.2 )
-( cd lib ; ln -sf libnss_dns-2.17.so libnss_dns.so.2 )
+( cd lib ; ln -sf libnss_dns-@@VERSION@@.so libnss_dns.so.2 )
( cd lib ; rm -rf libpthread.so.0 )
-( cd lib ; ln -sf libpthread-2.17.so libpthread.so.0 )
+( cd lib ; ln -sf libpthread-@@VERSION@@.so libpthread.so.0 )
( cd lib ; rm -rf libnss_nisplus.so.2 )
-( cd lib ; ln -sf libnss_nisplus-2.17.so libnss_nisplus.so.2 )
+( cd lib ; ln -sf libnss_nisplus-@@VERSION@@.so libnss_nisplus.so.2 )
( cd lib ; rm -rf libc.so.6 )
-( cd lib ; ln -sf libc-2.17.so libc.so.6 )
+( cd lib ; ln -sf libc-@@VERSION@@.so libc.so.6 )
( cd lib ; rm -rf librt.so.1 )
-( cd lib ; ln -sf librt-2.17.so librt.so.1 )
+( cd lib ; ln -sf librt-@@VERSION@@.so librt.so.1 )
fi
# Reload to prevent init from holding a stale handle to glibc on shutdown:
diff --git a/source/l/glibc/doinst.sh-glibc-zoneinfo b/source/l/glibc/doinst.sh-glibc-zoneinfo
deleted file mode 100644
index 04bfe8eff..000000000
--- a/source/l/glibc/doinst.sh-glibc-zoneinfo
+++ /dev/null
@@ -1,17 +0,0 @@
-# Prep the library links:
-ldconfig -r .
-# Fix existing old style /etc/localtime symlink:
-if [ -L etc/localtime -a ! -r etc/localtime-copied-from ]; then
- mv etc/localtime etc/localtime-copied-from
-fi
-# Add the default timezone in /etc, if none exists:
-if [ ! -r etc/localtime ]; then
- ( cd etc ; rm -rf localtime localtime-copied-from )
- ( cd etc ; ln -sf /usr/share/zoneinfo/Factory localtime-copied-from )
-fi
-# Make sure /etc/localtime is updated:
-chroot . /bin/cp etc/localtime-copied-from etc/localtime
-# Add the default link in /usr/share/zoneinfo:
-( cd usr/share/zoneinfo ; rm -rf timeconfig )
-( cd usr/share/zoneinfo ; ln -sf /usr/sbin/timeconfig timeconfig )
-### Make the rest of the symbolic links in the zoneinfo database:
diff --git a/source/l/glibc/glibc-c-utf8-locale.patch b/source/l/glibc/glibc-c-utf8-locale.patch
new file mode 100644
index 000000000..70c92a986
--- /dev/null
+++ b/source/l/glibc/glibc-c-utf8-locale.patch
@@ -0,0 +1,251 @@
+--- ./localedata/SUPPORTED.orig 2015-08-05 01:42:21.000000000 -0500
++++ ./localedata/SUPPORTED 2015-12-17 17:07:08.053200616 -0600
+@@ -1,6 +1,7 @@
+ # This file names the currently supported and somewhat tested locales.
+ # If you have any additions please file a glibc bug report.
+ SUPPORTED-LOCALES=\
++C.UTF-8/UTF-8 \
+ aa_DJ.UTF-8/UTF-8 \
+ aa_DJ/ISO-8859-1 \
+ aa_ER/UTF-8 \
+--- ./localedata/locales/C.orig 2015-12-17 17:07:08.053200616 -0600
++++ ./localedata/locales/C 2015-12-17 17:07:08.053200616 -0600
+@@ -0,0 +1,238 @@
++escape_char /
++comment_char %
++% Locale for C locale in UTF-8
++
++LC_IDENTIFICATION
++title "C locale"
++source ""
++address ""
++contact ""
++email ""
++tel ""
++fax ""
++language "C"
++territory ""
++revision "1.0"
++date "2015-08-10"
++%
++category "C:2015";LC_IDENTIFICATION
++category "C:2015";LC_CTYPE
++category "C:2015";LC_COLLATE
++category "C:2015";LC_TIME
++category "C:2015";LC_NUMERIC
++category "C:2015";LC_MONETARY
++category "C:2015";LC_MESSAGES
++category "C:2015";LC_PAPER
++category "C:2015";LC_NAME
++category "C:2015";LC_ADDRESS
++category "C:2015";LC_TELEPHONE
++category "C:2015";LC_MEASUREMENT
++END LC_IDENTIFICATION
++
++LC_CTYPE
++copy "i18n"
++
++translit_start
++include "translit_combining";""
++translit_end
++
++END LC_CTYPE
++
++LC_COLLATE
++order_start forward
++<U0000>
++..
++<UFFFF>
++<U10000>
++..
++<U1FFFF>
++<U20000>
++..
++<U2FFFF>
++<UE0000>
++..
++<UEFFFF>
++<UF0000>
++..
++<UFFFFF>
++<U100000>
++..
++<U10FFFF>
++UNDEFINED
++order_end
++END LC_COLLATE
++
++LC_MONETARY
++% This is the 14652 i18n fdcc-set definition for
++% the LC_MONETARY category
++% (except for the int_curr_symbol and currency_symbol, they are empty in
++% the 14652 i18n fdcc-set definition and also empty in
++% glibc/locale/C-monetary.c. But localedef complains in that case).
++%
++% Using "USD" for int_curr_symbol. But maybe "XXX" would be better?
++% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217)
++int_curr_symbol "<U0055><U0053><U0044><U0020>"
++% Using "$" for currency_symbol. But maybe <U00A4> would be better?
++% U+00A4 is the "generic currency symbol"
++% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29)
++currency_symbol "<U0024>"
++mon_decimal_point "<U002E>"
++mon_thousands_sep ""
++mon_grouping -1
++positive_sign ""
++negative_sign "<U002D>"
++int_frac_digits -1
++frac_digits -1
++p_cs_precedes -1
++int_p_sep_by_space -1
++p_sep_by_space -1
++n_cs_precedes -1
++int_n_sep_by_space -1
++n_sep_by_space -1
++p_sign_posn -1
++n_sign_posn -1
++%
++END LC_MONETARY
++
++LC_NUMERIC
++% This is the POSIX Locale definition for
++% the LC_NUMERIC category.
++%
++decimal_point "<U002E>"
++thousands_sep ""
++grouping -1
++END LC_NUMERIC
++
++LC_TIME
++% This is the POSIX Locale definition for
++% the LC_TIME category.
++%
++% Abbreviated weekday names (%a)
++abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
++ "<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
++ "<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
++ "<U0053><U0061><U0074>"
++
++% Full weekday names (%A)
++day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
++ "<U004D><U006F><U006E><U0064><U0061><U0079>";/
++ "<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
++ "<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
++ "<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
++ "<U0046><U0072><U0069><U0064><U0061><U0079>";/
++ "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
++
++% Abbreviated month names (%b)
++abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
++ "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
++ "<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
++ "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
++ "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
++ "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
++
++% Full month names (%B)
++mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
++ "<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
++ "<U004D><U0061><U0072><U0063><U0068>";/
++ "<U0041><U0070><U0072><U0069><U006C>";/
++ "<U004D><U0061><U0079>";/
++ "<U004A><U0075><U006E><U0065>";/
++ "<U004A><U0075><U006C><U0079>";/
++ "<U0041><U0075><U0067><U0075><U0073><U0074>";/
++ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
++ "<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
++ "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
++ "<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
++
++% Week description, consists of three fields:
++% 1. Number of days in a week.
++% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
++% 3. The weekday number to be contained in the first week of the year.
++%
++% ISO 8601 conforming applications should use the values 7, 19971201 (a
++% Monday), and 4 (Thursday), respectively.
++week 7;19971201;4
++first_weekday 1
++first_workday 1
++
++% Appropriate date and time representation (%c)
++% "%a %b %e %H:%M:%S %Y"
++d_t_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0059>"
++
++% Appropriate date representation (%x)
++% "%m/%d/%y"
++d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0079>"
++
++% Appropriate time representation (%X)
++% "%H:%M:%S"
++t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
++
++% Appropriate AM/PM time representation (%r)
++% "%I:%M:%S %p"
++t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0070>"
++
++% Equivalent of AM/PM (%p) "AM"/"PM"
++%
++am_pm "<U0041><U004D>";"<U0050><U004D>"
++
++% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y"
++date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U005A><U0020><U0025><U0059>"
++END LC_TIME
++
++LC_MESSAGES
++% This is the POSIX Locale definition for
++% the LC_NUMERIC category.
++%
++yesexpr "<U005E><U005B><U0079><U0059><U005D>"
++noexpr "<U005E><U005B><U006E><U004E><U005D>"
++yesstr "<U0059><U0065><U0073>"
++nostr "<U004E><U006F>"
++END LC_MESSAGES
++
++LC_PAPER
++% This is the ISO/IEC 14652 "i18n" definition for
++% the LC_PAPER category.
++% (A4 paper, this is also used in the built in C/POSIX
++% locale in glibc/locale/C-paper.c)
++height 297
++width 210
++END LC_PAPER
++
++LC_NAME
++% This is the ISO/IEC 14652 "i18n" definition for
++% the LC_NAME category.
++% "%p%t%g%t%m%t%f"
++% (also used in the built in C/POSIX locale in glibc/locale/C-name.c)
++name_fmt "<U0025><U0070><U0025><U0074><U0025><U0067><U0025><U0074>/
++<U0025><U006D><U0025><U0074><U0025><U0066>"
++END LC_NAME
++
++LC_ADDRESS
++% This is the ISO/IEC 14652 "i18n" definition for
++% the LC_ADDRESS category.
++% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N"
++% (also used in the built in C/POSIX locale in glibc/locale/C-address.c)
++postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
++<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
++<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
++<U004E><U0025><U0043><U002D><U0025><U007A><U0020><U0025><U0054><U0025>/
++<U004E><U0025><U0063><U0025><U004E>"
++END LC_ADDRESS
++
++LC_TELEPHONE
++% This is the ISO/IEC 14652 "i18n" definition for
++% the LC_TELEPHONE category.
++% "+%c %a %l"
++tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
++<U006C>"
++% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c)
++END LC_TELEPHONE
++
++LC_MEASUREMENT
++% This is the ISO/IEC 14652 "i18n" definition for
++% the LC_MEASUREMENT category.
++% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c)
++%metric
++measurement 1
++END LC_MEASUREMENT
++
diff --git a/source/l/glibc/glibc.CVE-2013-0242.diff b/source/l/glibc/glibc.CVE-2013-0242.diff
deleted file mode 100644
index e35a0bcec..000000000
--- a/source/l/glibc/glibc.CVE-2013-0242.diff
+++ /dev/null
@@ -1,189 +0,0 @@
-From libc-alpha-return-36620-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Tue Jan 29 16:13:50 2013
-Return-Path: <libc-alpha-return-36620-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org>
-Delivered-To: listarch-libc-alpha at sources dot redhat dot com
-Received: (qmail 32082 invoked by alias); 29 Jan 2013 16:13:48 -0000
-Received: (qmail 32049 invoked by uid 22791); 29 Jan 2013 16:13:43 -0000
-X-SWARE-Spam-Status: No, hits=-5.2 required=5.0
- tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,TW_BK
-X-Spam-Check-By: sourceware.org
-From: Andreas Schwab <schwab at suse dot de>
-To: libc-alpha at sourceware dot org
-Subject: [PATCH] Fix buffer overrun in regexp matcher
-X-Yow: Are you selling NYLON OIL WELLS?? If so, we can use TWO DOZEN!!
-Date: Tue, 29 Jan 2013 17:13:35 +0100
-Message-ID: <mvma9rsq85s.fsf@hawking.suse.de>
-User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.92 (gnu/linux)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf-8
-Content-Transfer-Encoding: 8bit
-Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm
-Precedence: bulk
-List-Id: <libc-alpha.sourceware.org>
-List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org>
-List-Archive: <http://sourceware.org/ml/libc-alpha/>
-List-Post: <mailto:libc-alpha at sourceware dot org>
-List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs>
-Sender: libc-alpha-owner at sourceware dot org
-Delivered-To: mailing list libc-alpha at sourceware dot org
-
-When extending regex buffers, make sure we allocate enough room for the
-state log. Merely doubling the space may not be enough if the current
-node has accepted a long run of characters. This part of the code only
-triggers with multibyte characters.
-
-Andreas.
-
- [BZ #15078]
- * posix/regexec.c (extend_buffers): Add parameter min_len.
- (check_matching): Pass minimum needed length.
- (clean_state_log_if_needed): Likewise.
- (get_subexp): Likewise.
- * posix/Makefile (tests): Add bug-regex34.
- (bug-regex34-ENV): Define.
- * posix/bug-regex34.c: New file.
-
-diff --git a/posix/Makefile b/posix/Makefile
-index 57672d8..6ceb440 100644
---- a/posix/Makefile
-+++ b/posix/Makefile
-@@ -86,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \
- tst-rfc3484-3 \
- tst-getaddrinfo3 tst-fnmatch2 tst-cpucount tst-cpuset \
- bug-getopt1 bug-getopt2 bug-getopt3 bug-getopt4 \
-- bug-getopt5 tst-getopt_long1
-+ bug-getopt5 tst-getopt_long1 bug-regex34
- xtests := bug-ga2
- ifeq (yes,$(build-shared))
- test-srcs := globtest
-@@ -199,6 +199,7 @@ bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata
- bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata
- bug-regex32-ENV = LOCPATH=$(common-objpfx)localedata
- bug-regex33-ENV = LOCPATH=$(common-objpfx)localedata
-+bug-regex34-ENV = LOCPATH=$(common-objpfx)localedata
- tst-rxspencer-ARGS = --utf8 rxspencer/tests
- tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata
- tst-pcre-ARGS = PCRE.tests
-diff --git a/posix/bug-regex34.c b/posix/bug-regex34.c
-new file mode 100644
-index 0000000..bb3b613
---- /dev/null
-+++ b/posix/bug-regex34.c
-@@ -0,0 +1,46 @@
-+/* Test re_search with multi-byte characters in UTF-8.
-+ Copyright (C) 2013 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define _GNU_SOURCE 1
-+#include <stdio.h>
-+#include <string.h>
-+#include <locale.h>
-+#include <regex.h>
-+
-+static int
-+do_test (void)
-+{
-+ struct re_pattern_buffer r;
-+ /* ????????x */
-+ const char *s = "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
-+
-+ if (setlocale (LC_ALL, "en_US.UTF-8") == NULL)
-+ {
-+ puts ("setlocale failed");
-+ return 1;
-+ }
-+ memset (&r, 0, sizeof (r));
-+
-+ re_compile_pattern ("[^x]x", 5, &r);
-+ /* This was triggering a buffer overflow. */
-+ re_search (&r, s, strlen (s), 0, strlen (s), 0);
-+ return 0;
-+}
-+
-+#define TEST_FUNCTION do_test ()
-+#include "../test-skeleton.c"
-diff --git a/posix/regexec.c b/posix/regexec.c
-index 7f2de85..5ca2bf6 100644
---- a/posix/regexec.c
-+++ b/posix/regexec.c
-@@ -197,7 +197,7 @@ static int group_nodes_into_DFAstates (const re_dfa_t *dfa,
- static int check_node_accept (const re_match_context_t *mctx,
- const re_token_t *node, int idx)
- internal_function;
--static reg_errcode_t extend_buffers (re_match_context_t *mctx)
-+static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
- internal_function;
-
- /* Entry point for POSIX code. */
-@@ -1160,7 +1160,7 @@ check_matching (re_match_context_t *mctx, int fl_longest_match,
- || (BE (next_char_idx >= mctx->input.valid_len, 0)
- && mctx->input.valid_len < mctx->input.len))
- {
-- err = extend_buffers (mctx);
-+ err = extend_buffers (mctx, next_char_idx + 1);
- if (BE (err != REG_NOERROR, 0))
- {
- assert (err == REG_ESPACE);
-@@ -1738,7 +1738,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx)
- && mctx->input.valid_len < mctx->input.len))
- {
- reg_errcode_t err;
-- err = extend_buffers (mctx);
-+ err = extend_buffers (mctx, next_state_log_idx + 1);
- if (BE (err != REG_NOERROR, 0))
- return err;
- }
-@@ -2792,7 +2792,7 @@ get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx)
- if (bkref_str_off >= mctx->input.len)
- break;
-
-- err = extend_buffers (mctx);
-+ err = extend_buffers (mctx, bkref_str_off + 1);
- if (BE (err != REG_NOERROR, 0))
- return err;
-
-@@ -4102,7 +4102,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
-
- static reg_errcode_t
- internal_function __attribute_warn_unused_result__
--extend_buffers (re_match_context_t *mctx)
-+extend_buffers (re_match_context_t *mctx, int min_len)
- {
- reg_errcode_t ret;
- re_string_t *pstr = &mctx->input;
-@@ -4111,8 +4111,10 @@ extend_buffers (re_match_context_t *mctx)
- if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
- return REG_ESPACE;
-
-- /* Double the lengthes of the buffers. */
-- ret = re_string_realloc_buffers (pstr, MIN (pstr->len, pstr->bufs_len * 2));
-+ /* Double the lengthes of the buffers, but allocate at least MIN_LEN. */
-+ ret = re_string_realloc_buffers (pstr,
-+ MAX (min_len,
-+ MIN (pstr->len, pstr->bufs_len * 2)));
- if (BE (ret != REG_NOERROR, 0))
- return ret;
-
---
-1.8.1.2
-
-
---
-Andreas Schwab, SUSE Labs, schwab@suse.de
-GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
-"And now for something completely different."
-
-
diff --git a/source/l/glibc/glibc.CVE-2013-1914.diff b/source/l/glibc/glibc.CVE-2013-1914.diff
deleted file mode 100644
index fc844829c..000000000
--- a/source/l/glibc/glibc.CVE-2013-1914.diff
+++ /dev/null
@@ -1,53 +0,0 @@
-From: Andreas Schwab <schwab@suse.de>
-Date: Thu, 21 Mar 2013 14:50:27 +0000 (+0100)
-Subject: Fix stack overflow in getaddrinfo with many results
-X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=1cef1b19089528db11f221e938f60b9b048945d7
-
-Fix stack overflow in getaddrinfo with many results
----
-
-diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
-index d95c2d1..2309281 100644
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service,
- __typeof (once) old_once = once;
- __libc_once (once, gaiconf_init);
- /* Sort results according to RFC 3484. */
-- struct sort_result results[nresults];
-- size_t order[nresults];
-+ struct sort_result *results;
-+ size_t *order;
- struct addrinfo *q;
- struct addrinfo *last = NULL;
- char *canonname = NULL;
-+ bool malloc_results;
-+
-+ malloc_results
-+ = !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t)));
-+ if (malloc_results)
-+ {
-+ results = malloc (nresults * (sizeof (*results) + sizeof (size_t)));
-+ if (results == NULL)
-+ {
-+ __free_in6ai (in6ai);
-+ return EAI_MEMORY;
-+ }
-+ }
-+ else
-+ results = alloca (nresults * (sizeof (*results) + sizeof (size_t)));
-+ order = (size_t *) (results + nresults);
-
- /* Now we definitely need the interface information. */
- if (! check_pf_called)
-@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service,
-
- /* Fill in the canonical name into the new first entry. */
- p->ai_canonname = canonname;
-+
-+ if (malloc_results)
-+ free (results);
- }
-
- __free_in6ai (in6ai);
-
diff --git a/source/l/glibc/glibc.CVE-2013-2207.diff b/source/l/glibc/glibc.CVE-2013-2207.diff
deleted file mode 100644
index c43ccf5cd..000000000
--- a/source/l/glibc/glibc.CVE-2013-2207.diff
+++ /dev/null
@@ -1,241 +0,0 @@
-From 5d96012d9978efe4bad88a38e2efcbeada9f7585 Mon Sep 17 00:00:00 2001
-From: mancha <mancha1@hush.com>
-Date: Thu, 22 Aug 2013
-Subject: CVE-2013-2207, BZ #15755: Disable pt_chown.
-
-Using the setuid installed pt_chown and a weak check on whether a file
-descriptor is a tty, an attacker could fake a pty check using FUSE and
-trick pt_chown to grant ownership of a pty descriptor that the current
-user does not own. It cannot access /dev/pts/ptmx however.
-
-Pre-conditions for the attack:
-
- * Attacker with local user account
- * Kernel with FUSE support
- * "user_allow_other" in /etc/fuse.conf
- * Victim with allocated slave in /dev/pts
-
-In most modern distributions pt_chown is not needed because devpts
-is enabled by default. The fix for this CVE is to disable building
-and using pt_chown by default. We still provide a configure option
-to enable the use of pt_chown but distributions do so at their own
-risk.
-
----
-This patch was adapted for glibc 2.17 point release from:
-http://sourceware.org/git/?p=glibc.git;a=commit;h=e4608715e6e1
----
-
- INSTALL | 12 ++++++++++++
- config.h.in | 3 +++
- config.make.in | 1 +
- configure | 15 +++++++++++++++
- configure.in | 10 ++++++++++
- login/Makefile | 8 +++++++-
- manual/install.texi | 14 ++++++++++++++
- sysdeps/unix/grantpt.c | 8 +++++---
- sysdeps/unix/sysv/linux/grantpt.c | 5 +++--
- 9 files changed, 70 insertions(+), 6 deletions(-)
----
-
---- a/INSTALL
-+++ b/INSTALL
-@@ -128,6 +128,18 @@ will be used, and CFLAGS sets optimizati
- this can be prevented though there generally is no reason since it
- creates compatibility problems.
-
-+`--enable-pt_chown'
-+ The file `pt_chown' is a helper binary for `grantpt' (*note
-+ Pseudo-Terminals: Allocation.) that is installed setuid root to
-+ fix up pseudo-terminal ownership. It is not built by default
-+ because systems using the Linux kernel are commonly built with the
-+ `devpts' filesystem enabled and mounted at `/dev/pts', which
-+ manages pseudo-terminal ownership automatically. By using
-+ `--enable-pt_chown', you may build `pt_chown' and install it
-+ setuid and owned by `root'. The use of `pt_chown' introduces
-+ additional security risks to the system and you should enable it
-+ only if you understand and accept those risks.
-+
- `--build=BUILD-SYSTEM'
- `--host=HOST-SYSTEM'
- These options are for cross-compiling. If you specify both
---- a/config.h.in
-+++ b/config.h.in
-@@ -232,4 +232,7 @@
- /* The ARM hard-float ABI is being used. */
- #undef HAVE_ARM_PCS_VFP
-
-+/* The pt_chown binary is being built and used by grantpt. */
-+#undef HAVE_PT_CHOWN
-+
- #endif
---- a/config.make.in
-+++ b/config.make.in
-@@ -101,6 +101,7 @@ force-install = @force_install@
- link-obsolete-rpc = @link_obsolete_rpc@
- build-nscd = @build_nscd@
- use-nscd = @use_nscd@
-+build-pt-chown = @build_pt_chown@
-
- # Build tools.
- CC = @CC@
---- a/configure
-+++ b/configure
-@@ -653,6 +653,7 @@ multi_arch
- base_machine
- add_on_subdirs
- add_ons
-+build_pt_chown
- build_nscd
- link_obsolete_rpc
- libc_cv_nss_crypt
-@@ -759,6 +760,7 @@ enable_obsolete_rpc
- enable_systemtap
- enable_build_nscd
- enable_nscd
-+enable_pt_chown
- with_cpu
- '
- ac_precious_vars='build_alias
-@@ -1419,6 +1421,7 @@ Optional Features:
- --enable-systemtap enable systemtap static probe points [default=no]
- --disable-build-nscd disable building and installing the nscd daemon
- --disable-nscd library functions will not contact the nscd daemon
-+ --enable-pt_chown Enable building and installing pt_chown
-
- Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-@@ -3933,6 +3936,18 @@ else
- use_nscd=yes
- fi
-
-+# Check whether --enable-pt_chown was given.
-+if test "${enable_pt_chown+set}" = set; then :
-+ enableval=$enable_pt_chown; build_pt_chown=$enableval
-+else
-+ build_pt_chown=no
-+fi
-+
-+
-+if test $build_pt_chown = yes; then
-+ $as_echo "#define HAVE_PT_CHOWN 1" >>confdefs.h
-+
-+fi
-
- # The way shlib-versions is used to generate soversions.mk uses a
- # fairly simplistic model for name recognition that can't distinguish
---- a/configure.in
-+++ b/configure.in
-@@ -315,6 +315,16 @@ AC_ARG_ENABLE([nscd],
- [use_nscd=$enableval],
- [use_nscd=yes])
-
-+AC_ARG_ENABLE([pt_chown],
-+ [AS_HELP_STRING([--enable-pt_chown],
-+ [Enable building and installing pt_chown])],
-+ [build_pt_chown=$enableval],
-+ [build_pt_chown=no])
-+AC_SUBST(build_pt_chown)
-+if test $build_pt_chown = yes; then
-+ AC_DEFINE(HAVE_PT_CHOWN)
-+fi
-+
- # The way shlib-versions is used to generate soversions.mk uses a
- # fairly simplistic model for name recognition that can't distinguish
- # i486-pc-linux-gnu fully from i486-pc-gnu. So we mutate a $host_os
---- a/login/Makefile
-+++ b/login/Makefile
-@@ -29,9 +29,15 @@ routines := getutent getutent_r getutid
-
- CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"'
-
--others = utmpdump pt_chown
-+others = utmpdump
-+
-+include ../Makeconfig
-+
-+ifeq (yes,$(build-pt-chown))
-+others += pt_chown
- others-pie = pt_chown
- install-others-programs = $(inst_libexecdir)/pt_chown
-+endif
-
- subdir-dirs = programs
- vpath %.c programs
---- a/manual/install.texi
-+++ b/manual/install.texi
-@@ -155,6 +155,20 @@ if the used tools support it. By using
- prevented though there generally is no reason since it creates
- compatibility problems.
-
-+@pindex pt_chown
-+@findex grantpt
-+@item --enable-pt_chown
-+The file @file{pt_chown} is a helper binary for @code{grantpt}
-+(@pxref{Allocation, Pseudo-Terminals}) that is installed setuid root to
-+fix up pseudo-terminal ownership. It is not built by default because
-+systems using the Linux kernel are commonly built with the @code{devpts}
-+filesystem enabled and mounted at @file{/dev/pts}, which manages
-+pseudo-terminal ownership automatically. By using
-+@samp{--enable-pt_chown}, you may build @file{pt_chown} and install it
-+setuid and owned by @code{root}. The use of @file{pt_chown} introduces
-+additional security risks to the system and you should enable it only if
-+you understand and accept those risks.
-+
- @item --build=@var{build-system}
- @itemx --host=@var{host-system}
- These options are for cross-compiling. If you specify both options and
---- a/sysdeps/unix/grantpt.c
-+++ b/sysdeps/unix/grantpt.c
-@@ -173,9 +173,10 @@ grantpt (int fd)
- retval = 0;
- goto cleanup;
-
-- /* We have to use the helper program. */
-+ /* We have to use the helper program if it is available.. */
- helper:;
-
-+#ifdef HAVE_PT_CHOWN
- pid_t pid = __fork ();
- if (pid == -1)
- goto cleanup;
-@@ -190,9 +191,9 @@ grantpt (int fd)
- if (__dup2 (fd, PTY_FILENO) < 0)
- _exit (FAIL_EBADF);
-
--#ifdef CLOSE_ALL_FDS
-+# ifdef CLOSE_ALL_FDS
- CLOSE_ALL_FDS ();
--#endif
-+# endif
-
- execle (_PATH_PT_CHOWN, basename (_PATH_PT_CHOWN), NULL, NULL);
- _exit (FAIL_EXEC);
-@@ -231,6 +232,7 @@ grantpt (int fd)
- assert(! "getpt: internal error: invalid exit code from pt_chown");
- }
- }
-+#endif
-
- cleanup:
- if (buf != _buf)
---- a/sysdeps/unix/sysv/linux/grantpt.c
-+++ b/sysdeps/unix/sysv/linux/grantpt.c
-@@ -11,7 +11,7 @@
-
- #include "pty-private.h"
-
--
-+#if HAVE_PT_CHOWN
- /* Close all file descriptors except the one specified. */
- static void
- close_all_fds (void)
-@@ -38,6 +38,7 @@ close_all_fds (void)
- __dup2 (STDOUT_FILENO, STDERR_FILENO);
- }
- }
--#define CLOSE_ALL_FDS() close_all_fds()
-+# define CLOSE_ALL_FDS() close_all_fds()
-+#endif
-
- #include <sysdeps/unix/grantpt.c>
diff --git a/source/l/glibc/glibc.CVE-2013-4332.diff b/source/l/glibc/glibc.CVE-2013-4332.diff
deleted file mode 100644
index 9f7f5886c..000000000
--- a/source/l/glibc/glibc.CVE-2013-4332.diff
+++ /dev/null
@@ -1,64 +0,0 @@
-From 0d6085cb1b4330b835ad08a3ec8f80b30f0cadb4 Mon Sep 17 00:00:00 2001
-From: mancha <mancha1@hush.com>
-Date: Wed, 11 Sep 2013
-Subject: CVE-2013-4332
-
-malloc: Check for integer overflow in pvalloc, valloc, and memalign.
-
-A large bytes parameter to pvalloc, valloc, or memalign could cause
-an integer overflow and corrupt allocator internals. Check the
-overflow does not occur before continuing with the allocation.
-
-Note: This is a backport to glibc 2.17 of the following three commits:
- * https://sourceware.org/git/?p=glibc.git;a=commit;h=1159a193696a
- * https://sourceware.org/git/?p=glibc.git;a=commit;h=55e17aadc1ef
- * https://sourceware.org/git/?p=glibc.git;a=commit;h=b73ed247781d
----
-
-malloc.c | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -3020,6 +3020,13 @@ __libc_memalign(size_t alignment, size_t
- /* Otherwise, ensure that it is at least a minimum chunk size */
- if (alignment < MINSIZE) alignment = MINSIZE;
-
-+ /* Check for overflow. */
-+ if (bytes > SIZE_MAX - alignment - MINSIZE)
-+ {
-+ __set_errno (ENOMEM);
-+ return 0;
-+ }
-+
- arena_get(ar_ptr, bytes + alignment + MINSIZE);
- if(!ar_ptr)
- return 0;
-@@ -3051,6 +3058,13 @@ __libc_valloc(size_t bytes)
-
- size_t pagesz = GLRO(dl_pagesize);
-
-+ /* Check for overflow. */
-+ if (bytes > SIZE_MAX - pagesz - MINSIZE)
-+ {
-+ __set_errno (ENOMEM);
-+ return 0;
-+ }
-+
- __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
- const __malloc_ptr_t)) =
- force_reg (__memalign_hook);
-@@ -3088,6 +3102,13 @@ __libc_pvalloc(size_t bytes)
- size_t page_mask = GLRO(dl_pagesize) - 1;
- size_t rounded_bytes = (bytes + page_mask) & ~(page_mask);
-
-+ /* Check for overflow. */
-+ if (bytes > SIZE_MAX - 2*pagesz - MINSIZE)
-+ {
-+ __set_errno (ENOMEM);
-+ return 0;
-+ }
-+
- __malloc_ptr_t (*hook) __MALLOC_PMT ((size_t, size_t,
- const __malloc_ptr_t)) =
- force_reg (__memalign_hook);
diff --git a/source/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild
index c97559eee..9418e6692 100755
--- a/source/l/glibc/glibc.SlackBuild
+++ b/source/l/glibc/glibc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,23 +22,18 @@
## build glibc-$VERSION for Slackware
-VERSION=${VERSION:-2.17}
+VERSION=${VERSION:-$(echo glibc-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
CHECKOUT=${CHECKOUT:-""}
-BUILD=${BUILD:-7}
-
-## Included in glibc now:
-## glibc-libidn version
-#LIBIDNVER=2.10.1
+BUILD=${BUILD:-1}
# I was considering disabling NSCD, but MoZes talked me out of it. :)
#DISABLE_NSCD=" --disable-nscd "
-# $ARCH may be preset, otherwise i486 compatibility with i686 binary
-# structuring is the Slackware default, since this is what gcc-3.2+
-# requires for binary compatibility with previous releases.
+# $ARCH may be preset, otherwise i586 compatibility with i686 binary
+# structuring is the Slackware default.
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -56,7 +51,7 @@ case $ARCH in
LIBDIRSUFFIX=""
;;
i586)
- OPTIMIZ="-O3 -march=i586"
+ OPTIMIZ="-O3 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
;;
i686)
@@ -85,9 +80,9 @@ case $ARCH in
x86_64)
TARGET=${TARGET:-x86_64}
;;
- i486)
- # This should be i486 for all 32-bit x86 arch:
- TARGET=${TARGET:-i486}
+ i586)
+ # This should be i586 for all 32-bit x86 arch:
+ TARGET=${TARGET:-i586}
;;
esac
@@ -108,13 +103,7 @@ CWD=$(pwd)
TMP=${TMP:-/glibc-tmp-$(mcookie)}
mkdir -p $TMP
-NUMJOBS=${NUMJOBS:--j4}
-
-# Sanity check on the version number in the install scripts:
-if ! grep -vq libutil-${VERSION}.so $CWD/doinst.sh-glibc ; then
- echo "FATAL: doinst.sh scripts have wrong version numbers."
- exit 1
-fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
# This function fixes a doinst.sh file for x86_64.
# With thanks to Fred Emmott.
@@ -144,58 +133,23 @@ apply_patches() {
# not existing. This patch reverts is_IS to the version shipped in
# glibc-2.5:
zcat $CWD/is_IS.diff.gz | patch -p1 --verbose || exit 1
- # Fix NIS netgroups:
- zcat $CWD/glibc.nis-netgroups.diff.gz | patch -p1 --verbose || exit 1
# Support ru_RU.CP1251 locale:
zcat $CWD/glibc.ru_RU.CP1251.diff.gz | patch -p1 --verbose || exit 1
- # Fix missing MAX macro in getcwd.c:
- zcat $CWD/glibc.getcwd.max.macro.diff.gz | patch -p1 --verbose || exit 1
# Fix resolver problem with glibc-2.9:
zcat $CWD/glibc-2.10-dns-no-gethostbyname4.diff.gz | patch -p0 --verbose || exit 1
# This reverts a patch that was made to glibc to fix "namespace leakage",
# which seems to cause some build failures (e.g. with conntrack):
- zcat $CWD/glibc.revert.to.fix.build.breakages.diff.gz | patch -p1 --verbose || exit 1
- # This partial security patch still applies and might be needed:
- zcat $CWD/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch.gz | patch -p1 --verbose || exit 1
+ zcat $CWD/glibc.revert.to.fix.build.breakages.diff.gz | patch -p1 -l --verbose || exit 1
# Make it harder for people to trick ldd into running code:
zcat $CWD/glibc.ldd.trace.through.dynamic.linker.diff.gz | patch -p1 --verbose || exit 1
- # Make glibc compile with binutils using --enable-initfini-array.
- # At this time, we do not recommend this due to probable ABI breakage.
- # The also patch needs work before it would apply.
- # ***NOT READY***
- #zcat $CWD/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch.gz | patch -p1 --verbose || exit 1
- #
- # Avoid the Intel optimized asm routines for now because they break
- # the flash player. We'll phase this in when it's safer to do so.
- zcat $CWD/glibc.disable.broken.optimized.memcpy.diff.gz | patch -p1 --verbose || exit 1
- # Fix buffer overrun in regexp matcher. This bug is deemed low impact since
- # the buffer contents cannot be controlled, but could lead to a crash.
- zcat $CWD/glibc.CVE-2013-0242.diff.gz | patch -p1 --verbose || exit 1
- # Fix stack overflow in getaddrinfo with many results. This bug can only be
- # triggered through DNS poisoning or through the use of a hostile DNS
- # server (in which case you already have problems), and requires large
- # amounts of data to be sent to the targeted machine. May lead to a
- # crash. Considered low impact.
- zcat $CWD/glibc.CVE-2013-1914.diff.gz | patch -p1 --verbose || exit 1
- # Remove pt_chown by default, as it can be used for a local privilege
- # escalation. However, although this is worth patching in the -current
- # version, it requires a non-default (and known to weaken security) setting
- # for FUSE. Additionally, the patch is not portable to older versions of
- # glibc (but thanks Mancha for porting it to 2.17!). On older versions
- # of glibc, making /usr/libexec/pt_chown a symlink to /bin/true will
- # provide the same fix, if needed. But the insecure setting for FUSE
- # probably opens up many other possible exploits and should be avoided.
- zcat $CWD/glibc.CVE-2013-2207.diff.gz | patch -p1 --verbose || exit 1
- # Patch integer overflows in pvalloc, valloc, and
- # posix_memalign/memalign/aligned_alloc (CVE-2013-4332).
- zcat $CWD/glibc.CVE-2013-4332.diff.gz | patch -p1 --verbose || exit 1
+ # Add a C.UTF-8 locale:
+ zcat $CWD/glibc-c-utf8-locale.patch.gz | patch -p1 --verbose || exit 1
}
# This is going to be the initial $DESTDIR:
export PKG=$TMP/package-glibc-incoming-tree
PGLIBC=$TMP/package-glibc
PSOLIBS=$TMP/package-glibc-solibs
-PZONE=$TMP/package-glibc-zoneinfo
PI18N=$TMP/package-glibc-i18n
PPROFILE=$TMP/package-glibc-profile
PDEBUG=$TMP/package-glibc-debug
@@ -232,9 +186,6 @@ tar xvf $CWD/glibc-$CVSVER.tar.xz \
|| tar xvf $CWD/glibc-$CVSVER.tar.gz
cd glibc-$CVSVER
-#tar xvf $CWD/glibc-libidn-$LIBIDNVER.tar.?z*
-#mv glibc-libidn-$LIBIDNVER libidn
-
chown -R root:root .
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
@@ -266,9 +217,9 @@ CFLAGS="-g $OPTIMIZ" \
../configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --enable-kernel=3.2.29 \
+ --enable-kernel=2.6.32 \
--with-headers=/usr/include \
- --enable-add-ons=libidn,nptl \
+ --enable-add-ons \
--enable-obsolete-rpc \
--enable-profile \
$DISABLE_NSCD \
@@ -304,24 +255,9 @@ strip -g $PKG/lib${LIBDIRSUFFIX}/l*.so*
strip -g $PKG/usr/lib${LIBDIRSUFFIX}/l*.so*
strip -g $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a
-# Build and install the zoneinfo database:
-cd $TMP
-rm -rf tzcodedata-build
-mkdir tzcodedata-build
-cd tzcodedata-build
-tar xzf $CWD/tzdata?????.tar.gz
-tar xzf $CWD/tzcode?????.tar.gz
-sed -i "s,/usr/local,$(pwd),g" Makefile
-sed -i "s,/etc/zoneinfo,/zoneinfo,g" Makefile
-make
-make install
-mkdir -p $PKG/usr/share/zoneinfo/{posix,right}
-cp -a zoneinfo/* $PKG/usr/share/zoneinfo
-cp -a zoneinfo-posix/* $PKG/usr/share/zoneinfo/posix
-cp -a zoneinfo-leaps/* $PKG/usr/share/zoneinfo/right
-# Remove $PKG/usr/share/zoneinfo/localtime -- the install script will
-# create it as a link to /etc/localtime.
-rm -f $PKG/usr/share/zoneinfo/localtime
+# Remove the rquota.x and rquota.h include files, as they are provided by
+# the quota package:
+rm -f $PKG/usr/include/rpcsvc/rquota.{h,x}
# Back to the sources dir to add some files/docs:
cd $TMP/glibc-$CVSVER
@@ -331,31 +267,19 @@ cd $TMP/glibc-$CVSVER
mkdir -p $PKG/etc
cat nscd/nscd.conf > $PKG/etc/nscd.conf.new
-# Install some scripts to help select a timezone:
-( cd $CWD/timezone-scripts
- # Try to rebuild this:
- sh output-updated-timeconfig.sh $PKG/usr/share/zoneinfo > timeconfig 2> /dev/null
-)
-mkdir -p $PKG/var/log/setup
-cp -a $CWD/timezone-scripts/setup.timeconfig $PKG/var/log/setup
-chown root:root $PKG/var/log/setup/setup.timeconfig
-chmod 755 $PKG/var/log/setup/setup.timeconfig
-mkdir -p $PKG/usr/sbin
-cp -a $CWD/timezone-scripts/timeconfig $PKG/usr/sbin
-chown root:root $PKG/usr/sbin/timeconfig
-chmod 755 $PKG/usr/sbin/timeconfig
-
-## Install docs:
+# Install docs:
( mkdir -p $PKG/usr/doc/glibc-$VERSION
cp -a \
- BUGS CONFORMANCE COPYING COPYING.LIB FAQ INSTALL LICENSES NAMESPACE \
- NEWS NOTES PROJECTS README README.libm \
+ BUGS CONFORMANCE COPYING* FAQ INSTALL LICENSES NAMESPACE \
+ NEWS NOTES PROJECTS README* \
$PKG/usr/doc/glibc-$VERSION
)
-# Don't forget to add the /usr/share/zoneinfo/localtime -> /etc/localtime symlink! :)
-if [ ! -r $PKG/usr/share/zoneinfo/localtime ]; then
- ( cd $PKG/usr/share/zoneinfo ; ln -sf /etc/localtime . )
+# Trim the NEWS file to omit ancient history:
+if [ -r NEWS ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/glibc-$VERSION)
+ cat NEWS | head -n 1000 > $DOCSDIR/NEWS
+ touch -r NEWS $DOCSDIR/NEWS
fi
# OK, there are some very old Linux standards that say that any binaries in a /bin or
@@ -392,33 +316,6 @@ rm $PKG/etc/ld.so.cache
# OK, time to make some packages #
##################################
-# glibc-zoneinfo. We will start with an easy one to avoid breaking a sweat. ;-)
-cd $CWD
-ZONE_VERSIONS="$(echo tzdata* | cut -f1 -d . | cut -b7-11)"
-echo $ZONE_VERSIONS
-cd $PZONE
-# Install some scripts to help select a timezone:
-mkdir -p $PZONE/var/log/setup
-cp -a $CWD/timezone-scripts/setup.timeconfig $PZONE/var/log/setup
-chown root:root $PZONE/var/log/setup/setup.timeconfig
-chmod 755 $PZONE/var/log/setup/setup.timeconfig
-mkdir -p $PZONE/usr/sbin
-cp -a $CWD/timezone-scripts/timeconfig $PZONE/usr/sbin
-chown root:root $PZONE/usr/sbin/timeconfig
-chmod 755 $PZONE/usr/sbin/timeconfig
-mkdir $PZONE/install
-cat $CWD/doinst.sh-glibc-zoneinfo > $PZONE/install/doinst.sh
-cat $CWD/slack-desc.glibc-zoneinfo > $PZONE/install/slack-desc
-mkdir -p $PZONE/usr/share
-cd $PZONE/usr/share
-cp -a --verbose $PKG/usr/share/zoneinfo .
-cd $PZONE
-mkdir -p $PZONE/etc
-# This is already hard-coded into doinst.sh (like it'll be there anyway ;-):
-rm -f etc/localtime
-# Wrap it up:
-makepkg -l y -c n $TMP/glibc-zoneinfo-$ZONE_VERSIONS-noarch-$BUILD.txz
-
# glibc-profile:
cd $PPROFILE
mkdir -p usr/lib${LIBDIRSUFFIX}
@@ -444,12 +341,15 @@ makepkg -l y -c n $TMP/glibc-debug-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
# glibc-i18n:
cd $PI18N
-mkdir -p usr/lib${LIBDIRSUFFIX}
-rm -rf usr/lib${LIBDIRSUFFIX}/locale
-cp -a $PKG/usr/lib${LIBDIRSUFFIX}/locale usr/lib${LIBDIRSUFFIX}
-mkdir -p usr/share
-cp -a $PKG/usr/share/i18n usr/share
-cp -a $PKG/usr/share/locale usr/share
+mkdir -p usr/lib${LIBDIRSUFFIX}/locale
+mv $PKG/usr/lib${LIBDIRSUFFIX}/locale/* usr/lib${LIBDIRSUFFIX}/locale
+mkdir -p usr/share/{i18n,locale}
+mv $PKG/usr/share/i18n/* usr/share/i18n
+mv $PKG/usr/share/locale/* usr/share/locale
+# Leave copies of the C, POSIX, and en_US locales in the main glibc package:
+cp -a usr/lib${LIBDIRSUFFIX}/locale/{C,en_US}* $PKG/usr/lib${LIBDIRSUFFIX}/locale
+mkdir -p $PKG/usr/share/i18n/locales
+cp -a usr/share/i18n/locales/{C,POSIX,en_US} $PKG/usr/share/i18n/locales
mkdir install
cp -a $CWD/slack-desc.glibc-i18n install/slack-desc
makepkg -l y -c n $TMP/glibc-i18n-$VERSION-$SLACKWARE_ARCH-$BUILD.txz
@@ -490,6 +390,7 @@ mkdir install
cp -a $CWD/slack-desc.glibc-solibs install/slack-desc
cp -a $CWD/doinst.sh-glibc-solibs install/doinst.sh
fix_doinst
+sed -i "s/@@VERSION@@/$VERSION/g" install/doinst.sh
# Ditch links:
find . -type l -exec rm {} \;
# Build the package:
@@ -509,6 +410,7 @@ mkdir install
cp -a $CWD/slack-desc.glibc install/slack-desc
cp -a $CWD/doinst.sh-glibc install/doinst.sh
fix_doinst
+sed -i "s/@@VERSION@@/$VERSION/g" install/doinst.sh
( cd lib${LIBDIRSUFFIX}
mkdir incoming
mv *so* incoming
diff --git a/source/l/glibc/glibc.disable.broken.optimized.memcpy.diff b/source/l/glibc/glibc.disable.broken.optimized.memcpy.diff
deleted file mode 100644
index 8034f1201..000000000
--- a/source/l/glibc/glibc.disable.broken.optimized.memcpy.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- ./sysdeps/x86_64/multiarch/memcpy.S.orig 2011-01-17 22:34:07.000000000 -0600
-+++ ./sysdeps/x86_64/multiarch/memcpy.S 2011-02-08 19:36:26.000000000 -0600
-@@ -32,12 +32,6 @@
- jne 1f
- call __init_cpu_features
- 1: leaq __memcpy_sse2(%rip), %rax
-- testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
-- jz 2f
-- leaq __memcpy_ssse3(%rip), %rax
-- testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip)
-- jz 2f
-- leaq __memcpy_ssse3_back(%rip), %rax
- 2: ret
- END(memcpy)
-
---- ./sysdeps/x86_64/multiarch/mempcpy.S.orig 2011-01-17 22:34:07.000000000 -0600
-+++ ./sysdeps/x86_64/multiarch/mempcpy.S 2011-02-08 19:36:37.000000000 -0600
-@@ -31,12 +31,6 @@
- jne 1f
- call __init_cpu_features
- 1: leaq __mempcpy_sse2(%rip), %rax
-- testl $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
-- jz 2f
-- leaq __mempcpy_ssse3(%rip), %rax
-- testl $bit_Fast_Copy_Backward, __cpu_features+FEATURE_OFFSET+index_Fast_Copy_Backward(%rip)
-- jz 2f
-- leaq __mempcpy_ssse3_back(%rip), %rax
- 2: ret
- END(__mempcpy)
-
diff --git a/source/l/glibc/glibc.getcwd.max.macro.diff b/source/l/glibc/glibc.getcwd.max.macro.diff
deleted file mode 100644
index e26e14d95..000000000
--- a/source/l/glibc/glibc.getcwd.max.macro.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./sysdeps/unix/sysv/linux/getcwd.c.orig 2006-04-02 12:58:28.000000000 -0500
-+++ ./sysdeps/unix/sysv/linux/getcwd.c 2006-10-10 22:11:02.000000000 -0500
-@@ -28,6 +28,7 @@
- #include <sysdep.h>
- #include <sys/syscall.h>
- #include <bp-checks.h>
-+#include <sys/param.h>
-
- #include <kernel-features.h>
-
diff --git a/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch b/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch
deleted file mode 100644
index 9b58674c7..000000000
--- a/source/l/glibc/glibc.git-4a531bb0b3b582cb693de9f76d2d97d970f9a5d5.patch
+++ /dev/null
@@ -1,1212 +0,0 @@
-From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001
-From: H.J. Lu <hongjiu.lu@intel.com>
-Date: Fri, 24 Dec 2010 20:14:37 -0500
-Subject: [PATCH] Remove `.ctors' and `.dtors' output sections
-
----
- ChangeLog | 15 ++
- config.h.in | 3 +
- configure | 334 +++++++++++++++++---------------
- configure.in | 2 +
- elf/sofini.c | 2 +
- elf/soinit.c | 2 +
- sysdeps/i386/init-first.c | 2 +
- sysdeps/mach/hurd/i386/init-first.c | 2 +-
- sysdeps/mach/hurd/powerpc/init-first.c | 2 +-
- sysdeps/sh/init-first.c | 2 +
- sysdeps/unix/sysv/linux/init-first.c | 2 +-
- 11 files changed, 209 insertions(+), 159 deletions(-)
-
-diff --git a/ChangeLog b/ChangeLog
-index 958c76a..497de67 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,18 @@
-+2010-12-15 H.J. Lu <hongjiu.lu@intel.com>
-+
-+ * config.h.in (NO_CTORS_DTORS_SECTIONS): Define.
-+ * configure.in: Define NO_CTORS_DTORS_SECTIONS if linker
-+ script has SORT_BY_INIT_PRIORITY.
-+ * elf/sofini.c: Remove `.ctors' and `.dtors' sections if
-+ NO_CTORS_DTORS_SECTIONS is defined.
-+ * elf/soinit.c: Likewise.
-+ * sysdeps/i386/init-first.c: Don't call __libc_global_ctors if
-+ NO_CTORS_DTORS_SECTIONS is defined.
-+ * sysdeps/mach/hurd/i386/init-first.c: Likewise.
-+ * sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
-+ * sysdeps/sh/init-first.c: Likewise.
-+ * sysdeps/unix/sysv/linux/init-first.c: Likewise.
-+
- 2010-12-24 Ulrich Drepper <drepper@gmail.com>
-
- * stdio-common/vfprintf.c (vfprintf): If printf handlers are installed
-diff --git a/config.h.in b/config.h.in
-index 18bf01a..9e797eb 100644
---- a/config.h.in
-+++ b/config.h.in
-@@ -201,6 +201,9 @@
- /* Define if multi-arch DSOs should be generated. */
- #undef USE_MULTIARCH
-
-+/* Define if `.ctors' and `.dtors' sections shouldn't be used. */
-+#undef NO_CTORS_DTORS_SECTIONS
-+
- /*
- */
-
-diff --git a/configure b/configure
-index eae35ba..823f15e 100755
---- a/configure
-+++ b/configure
-@@ -1,14 +1,14 @@
- #! /bin/sh
- # From configure.in CVSid.
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by GNU Autoconf 2.65 for GNU C Library (see version.h).
-+# Generated by GNU Autoconf 2.66 for GNU C Library (see version.h).
- #
- # Report bugs to <glibc>.
- #
- #
- # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
--# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
--# Inc.
-+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-+# Foundation, Inc.
- #
- #
- # This configure script is free software; the Free Software Foundation
-@@ -319,7 +319,7 @@ $as_echo X"$as_dir" |
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
-- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
-+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
- } # as_fn_mkdir_p
-@@ -359,19 +359,19 @@ else
- fi # as_fn_arith
-
-
--# as_fn_error ERROR [LINENO LOG_FD]
--# ---------------------------------
-+# as_fn_error STATUS ERROR [LINENO LOG_FD]
-+# ----------------------------------------
- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
- # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
--# script with status $?, using 1 if that was 0.
-+# script with STATUS, using 1 if that was 0.
- as_fn_error ()
- {
-- as_status=$?; test $as_status -eq 0 && as_status=1
-- if test "$3"; then
-- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
-+ as_status=$1; test $as_status -eq 0 && as_status=1
-+ if test "$4"; then
-+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
-- $as_echo "$as_me: error: $1" >&2
-+ $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
- } # as_fn_error
-
-@@ -533,7 +533,7 @@ test -n "$DJDIR" || exec 7<&0 </dev/null
- exec 6>&1
-
- # Name of the host.
--# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
- # so uname gets run too.
- ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-@@ -907,7 +907,7 @@ do
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-- as_fn_error "invalid feature name: $ac_useropt"
-+ as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
-@@ -933,7 +933,7 @@ do
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-- as_fn_error "invalid feature name: $ac_useropt"
-+ as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
-@@ -1137,7 +1137,7 @@ do
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-- as_fn_error "invalid package name: $ac_useropt"
-+ as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
-@@ -1153,7 +1153,7 @@ do
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-- as_fn_error "invalid package name: $ac_useropt"
-+ as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
-@@ -1183,8 +1183,8 @@ do
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
-- -*) as_fn_error "unrecognized option: \`$ac_option'
--Try \`$0 --help' for more information."
-+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
-+Try \`$0 --help' for more information"
- ;;
-
- *=*)
-@@ -1192,7 +1192,7 @@ Try \`$0 --help' for more information."
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
-- as_fn_error "invalid variable name: \`$ac_envvar'" ;;
-+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-@@ -1210,13 +1210,13 @@ done
-
- if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-- as_fn_error "missing argument to $ac_option"
-+ as_fn_error $? "missing argument to $ac_option"
- fi
-
- if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
-- fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
-+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
- fi
-@@ -1239,7 +1239,7 @@ do
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
-- as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
-+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
- done
-
- # There might be people who depend on the old broken behavior: `$host'
-@@ -1253,8 +1253,8 @@ target=$target_alias
- if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
-- $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-- If a cross compiler is detected then cross compile mode will be used." >&2
-+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-+ If a cross compiler is detected then cross compile mode will be used" >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-@@ -1269,9 +1269,9 @@ test "$silent" = yes && exec 6>/dev/null
- ac_pwd=`pwd` && test -n "$ac_pwd" &&
- ac_ls_di=`ls -di .` &&
- ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-- as_fn_error "working directory cannot be determined"
-+ as_fn_error $? "working directory cannot be determined"
- test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-- as_fn_error "pwd does not report name of working directory"
-+ as_fn_error $? "pwd does not report name of working directory"
-
-
- # Find the source files, if location was not specified.
-@@ -1310,11 +1310,11 @@ else
- fi
- if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-- as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
-+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
- fi
- ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
- ac_abs_confdir=`(
-- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
-+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
- # When building in place, set srcdir=.
- if test "$ac_abs_confdir" = "$ac_pwd"; then
-@@ -1354,7 +1354,7 @@ Configuration:
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
-- -q, --quiet, --silent do not print \`checking...' messages
-+ -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
-@@ -1544,9 +1544,9 @@ test -n "$ac_init_help" && exit $ac_status
- if $ac_init_version; then
- cat <<\_ACEOF
- GNU C Library configure (see version.h)
--generated by GNU Autoconf 2.65
-+generated by GNU Autoconf 2.66
-
--Copyright (C) 2009 Free Software Foundation, Inc.
-+Copyright (C) 2010 Free Software Foundation, Inc.
- This configure script is free software; the Free Software Foundation
- gives unlimited permission to copy, distribute and modify it.
- _ACEOF
-@@ -1945,7 +1945,7 @@ ac_fn_c_check_header_compile ()
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
- $as_echo_n "checking for $2... " >&6; }
--if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
-+if eval "test \"\${$3+set}\"" = set; then :
- $as_echo_n "(cached) " >&6
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -1971,7 +1971,7 @@ This file contains any messages produced by compilers while
- running configure, to aid debugging if configure makes a mistake.
-
- It was created by GNU C Library $as_me (see version.h), which was
--generated by GNU Autoconf 2.65. Invocation command line was
-+generated by GNU Autoconf 2.66. Invocation command line was
-
- $ $0 $@
-
-@@ -2081,11 +2081,9 @@ trap 'exit_status=$?
- {
- echo
-
-- cat <<\_ASBOX
--## ---------------- ##
-+ $as_echo "## ---------------- ##
- ## Cache variables. ##
--## ---------------- ##
--_ASBOX
-+## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
- (
-@@ -2119,11 +2117,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- )
- echo
-
-- cat <<\_ASBOX
--## ----------------- ##
-+ $as_echo "## ----------------- ##
- ## Output variables. ##
--## ----------------- ##
--_ASBOX
-+## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
-@@ -2136,11 +2132,9 @@ _ASBOX
- echo
-
- if test -n "$ac_subst_files"; then
-- cat <<\_ASBOX
--## ------------------- ##
-+ $as_echo "## ------------------- ##
- ## File substitutions. ##
--## ------------------- ##
--_ASBOX
-+## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
-@@ -2154,11 +2148,9 @@ _ASBOX
- fi
-
- if test -s confdefs.h; then
-- cat <<\_ASBOX
--## ----------- ##
-+ $as_echo "## ----------- ##
- ## confdefs.h. ##
--## ----------- ##
--_ASBOX
-+## ----------- ##"
- echo
- cat confdefs.h
- echo
-@@ -2213,7 +2205,12 @@ _ACEOF
- ac_site_file1=NONE
- ac_site_file2=NONE
- if test -n "$CONFIG_SITE"; then
-- ac_site_file1=$CONFIG_SITE
-+ # We do not want a PATH search for config.site.
-+ case $CONFIG_SITE in #((
-+ -*) ac_site_file1=./$CONFIG_SITE;;
-+ */*) ac_site_file1=$CONFIG_SITE;;
-+ *) ac_site_file1=./$CONFIG_SITE;;
-+ esac
- elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-@@ -2228,7 +2225,11 @@ do
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
- $as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
-- . "$ac_site_file"
-+ . "$ac_site_file" \
-+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+as_fn_error $? "failed to load site script $ac_site_file
-+See \`config.log' for more details" "$LINENO" 5; }
- fi
- done
-
-@@ -2304,7 +2305,7 @@ if $ac_cache_corrupted; then
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
- $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-- as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
- fi
- ## -------------------- ##
- ## Main body of script. ##
-@@ -2322,16 +2323,22 @@ ac_config_headers="$ac_config_headers config.h"
-
- ac_aux_dir=
- for ac_dir in scripts "$srcdir"/scripts; do
-- for ac_t in install-sh install.sh shtool; do
-- if test -f "$ac_dir/$ac_t"; then
-- ac_aux_dir=$ac_dir
-- ac_install_sh="$ac_aux_dir/$ac_t -c"
-- break 2
-- fi
-- done
-+ 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
-+ elif test -f "$ac_dir/shtool"; then
-+ ac_aux_dir=$ac_dir
-+ ac_install_sh="$ac_aux_dir/shtool install -c"
-+ break
-+ fi
- done
- if test -z "$ac_aux_dir"; then
-- as_fn_error "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5
-+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in scripts \"$srcdir\"/scripts" "$LINENO" 5
- fi
-
- # These three variables are undocumented and unsupported,
-@@ -2351,7 +2358,7 @@ subdirs="$subdirs "
-
- # Make sure we can run config.sub.
- $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-- as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
- $as_echo_n "checking build system type... " >&6; }
-@@ -2362,16 +2369,16 @@ else
- test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
- test "x$ac_build_alias" = x &&
-- as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
-+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
- ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-- as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
- $as_echo "$ac_cv_build" >&6; }
- case $ac_cv_build in
- *-*-*) ;;
--*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
-+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
- esac
- build=$ac_cv_build
- ac_save_IFS=$IFS; IFS='-'
-@@ -2396,7 +2403,7 @@ else
- ac_cv_host=$ac_cv_build
- else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-- as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
- fi
-
- fi
-@@ -2404,7 +2411,7 @@ fi
- $as_echo "$ac_cv_host" >&6; }
- case $ac_cv_host in
- *-*-*) ;;
--*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
-+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
- esac
- host=$ac_cv_host
- ac_save_IFS=$IFS; IFS='-'
-@@ -2721,8 +2728,8 @@ fi
-
- test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error "no acceptable C compiler found in \$PATH
--See \`config.log' for more details." "$LINENO" 5; }
-+as_fn_error $? "no acceptable C compiler found in \$PATH
-+See \`config.log' for more details" "$LINENO" 5; }
-
- # Provide some information about the compiler.
- $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-@@ -2792,8 +2799,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error "cannot compute suffix of object files: cannot compile
--See \`config.log' for more details." "$LINENO" 5; }
-+as_fn_error $? "cannot compute suffix of object files: cannot compile
-+See \`config.log' for more details" "$LINENO" 5; }
- fi
- rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
-@@ -3185,8 +3192,8 @@ if $ac_preproc_ok; then :
- else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error "C preprocessor \"$CPP\" fails sanity check
--See \`config.log' for more details." "$LINENO" 5; }
-+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-+See \`config.log' for more details" "$LINENO" 5; }
- fi
-
- ac_ext=c
-@@ -3455,7 +3462,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
-- as_fn_error "you must configure in a separate build directory" "$LINENO" 5
-+ as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
- fi
-
- # This will get text that should go into config.make.
-@@ -3767,7 +3774,7 @@ fi
- if test x$nss_crypt = xyes; then
- nss_includes=-I$(nss-config --includedir 2>/dev/null)
- if test $? -ne 0; then
-- as_fn_error "cannot find include directory with nss-config" "$LINENO" 5
-+ as_fn_error $? "cannot find include directory with nss-config" "$LINENO" 5
- fi
- old_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $nss_includes"
-@@ -3782,7 +3789,7 @@ _ACEOF
- if ac_fn_c_try_compile "$LINENO"; then :
- libc_cv_nss_crypt=yes
- else
-- as_fn_error "
-+ as_fn_error $? "
- cannot find NSS headers with lowlevel hash function interfaces" "$LINENO" 5
- fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-@@ -3804,7 +3811,7 @@ _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
- libc_cv_nss_crypt=yes
- else
-- as_fn_error "
-+ as_fn_error $? "
- cannot link program using lowlevel NSS hash functions" "$LINENO" 5
- fi
- rm -f core conftest.err conftest.$ac_objext \
-@@ -3880,7 +3887,7 @@ submachine=
- # Check whether --with-cpu was given.
- if test "${with_cpu+set}" = set; then :
- withval=$with_cpu; case "$withval" in
-- yes|'') as_fn_error "--with-cpu requires an argument" "$LINENO" 5 ;;
-+ yes|'') as_fn_error $? "--with-cpu requires an argument" "$LINENO" 5 ;;
- no) ;;
- *) submachine="$withval" ;;
- esac
-@@ -3913,14 +3920,14 @@ if test x"$add_ons" != x; then
- # Some sanity checks
- case "$f" in
- crypt)
-- as_fn_error "
-+ as_fn_error $? "
- *** It seems that you're using an old \`crypt' add-on. crypt is now
- *** part of glibc and using the old add-on will not work with this
- *** release. Start again with fresh sources and without the old
- *** \`crypt' add-on." "$LINENO" 5
- ;;
- localedata)
-- as_fn_error "
-+ as_fn_error $? "
- *** It seems that you're using an old \`localedata' add-on. localedata
- *** is now part of glibc and using the old add-on will not work with
- *** this release. Start again with fresh sources and without the old
-@@ -3947,7 +3954,7 @@ if test x"$add_ons" != x; then
- if test -d "$libc_add_on"; then
- libc_add_on="`pwd`/$libc_add_on"
- else
-- as_fn_error "add-on directory \"$libc_add_on\" does not exist" "$LINENO" 5
-+ as_fn_error $? "add-on directory \"$libc_add_on\" does not exist" "$LINENO" 5
- fi
- }
- libc_add_on_srcdir=$srcdir/$libc_add_on
-@@ -3966,7 +3973,7 @@ $as_echo "$as_me: running configure fragment for add-on $libc_add_on" >&6;}
- test -z "$libc_add_on" || {
- configured_add_ons="$configured_add_ons $libc_add_on"
- if test "x$libc_add_on_canonical" = xunknown; then
-- as_fn_error "fragment must set \$libc_add_on_canonical" "$LINENO" 5
-+ as_fn_error $? "fragment must set \$libc_add_on_canonical" "$LINENO" 5
- fi
- for d in $libc_add_on_subdirs; do
- case "$libc_add_on" in
-@@ -3991,13 +3998,13 @@ $d-srcdir = $subdir_srcdir"
- done
- for d in $libc_add_on_config_subdirs; do
- case "$d" in
-- /*) as_fn_error "fragment uses absolute path in \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
-+ /*) as_fn_error $? "fragment uses absolute path in \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
- esac
- if test ! -d "$libc_add_on_srcdir/$d"; then
-- as_fn_error "fragment wants to configure missing directory $d" "$LINENO" 5
-+ as_fn_error $? "fragment wants to configure missing directory $d" "$LINENO" 5
- fi
- case "$libc_add_on" in
-- /*) as_fn_error "relative path required for add-on using \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
-+ /*) as_fn_error $? "relative path required for add-on using \$libc_add_on_config_subdirs" "$LINENO" 5 ;;
- esac
- subdirs="$subdirs $libc_add_on/$d"
- done
-@@ -4174,7 +4181,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_global_directive" >&5
- $as_echo "$libc_cv_asm_global_directive" >&6; }
- if test $libc_cv_asm_global_directive = UNKNOWN; then
-- as_fn_error "cannot determine asm global directive" "$LINENO" 5
-+ as_fn_error $? "cannot determine asm global directive" "$LINENO" 5
- else
- cat >>confdefs.h <<_ACEOF
- #define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive}
-@@ -4220,7 +4227,7 @@ fi
-
- if test x"$libc_cv_asm_gnu_indirect_function" != xyes -a x"$libc_cv_asm_type_prefix" = xno; then
- if test x"$multi_arch" = xyes; then
-- as_fn_error "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
-+ as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
- else
- multi_arch=no
- fi
-@@ -4359,13 +4366,13 @@ fi
-
-
- if test -z "$os_used" && test "$os" != none; then
-- as_fn_error "Operating system $os is not supported." "$LINENO" 5
-+ as_fn_error $? "Operating system $os is not supported." "$LINENO" 5
- fi
- if test -z "$machine_used" && test "$machine" != none; then
-- as_fn_error "The $machine is not supported." "$LINENO" 5
-+ as_fn_error $? "The $machine is not supported." "$LINENO" 5
- fi
- if test -z "$submachine_used" && test -n "$submachine"; then
-- as_fn_error "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
-+ as_fn_error $? "The $submachine subspecies of $host_cpu is not supported." "$LINENO" 5
- fi
-
-
-@@ -4492,7 +4499,7 @@ for add_on in $add_ons; do
- case "$configured_add_ons " in
- *" $add_on "*) ;;
- *|'')
-- as_fn_error "add-on $add_on has no configure fragment or sysdeps tree" "$LINENO" 5
-+ as_fn_error $? "add-on $add_on has no configure fragment or sysdeps tree" "$LINENO" 5
- ;;
- esac
- continue
-@@ -4978,7 +4985,7 @@ fi
-
-
- if test "$PWD_P" = no; then
-- as_fn_error "*** A pwd binary could not be found." "$LINENO" 5
-+ as_fn_error $? "*** A pwd binary could not be found." "$LINENO" 5
- fi
-
- # These programs are version sensitive.
-@@ -5367,7 +5374,7 @@ if test "x$with_cvs" = xyes && test "x$AUTOCONF" = xno; then
- aux_missing="$aux_missing autoconf"
- fi
-
--test -n "$critic_missing" && as_fn_error "
-+test -n "$critic_missing" && as_fn_error $? "
- *** These critical programs are missing or too old:$critic_missing
- *** Check the INSTALL file for required versions." "$LINENO" 5
-
-@@ -5450,7 +5457,7 @@ esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_library_path_setting" >&5
- $as_echo "$ld_library_path_setting" >&6; }
- if test "$ld_library_path_setting" != "ok"; then
--as_fn_error "
-+as_fn_error $? "
- *** LD_LIBRARY_PATH shouldn't contain the current directory when
- *** building glibc. Please change the environment variable
- *** and run configure again." "$LINENO" 5
-@@ -6053,7 +6060,7 @@ EOF
- test $ac_status = 0; }; }; then
- libc_cv_asm_protected_directive=yes
- else
-- as_fn_error "assembler support for symbol visibility is required" "$LINENO" 5
-+ as_fn_error $? "assembler support for symbol visibility is required" "$LINENO" 5
- fi
- rm -f conftest*
- fi
-@@ -6089,7 +6096,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_visibility_attribute" >&5
- $as_echo "$libc_cv_visibility_attribute" >&6; }
- if test $libc_cv_visibility_attribute != yes; then
-- as_fn_error "compiler support for visibility attribute is required" "$LINENO" 5
-+ as_fn_error $? "compiler support for visibility attribute is required" "$LINENO" 5
- fi
- fi
-
-@@ -6121,7 +6128,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_visibility_attribute" >&5
- $as_echo "$libc_cv_broken_visibility_attribute" >&6; }
- if test $libc_cv_broken_visibility_attribute = yes; then
-- as_fn_error "working compiler support for visibility attribute is required" "$LINENO" 5
-+ as_fn_error $? "working compiler support for visibility attribute is required" "$LINENO" 5
- fi
- fi
-
-@@ -6156,7 +6163,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_broken_alias_attribute" >&5
- $as_echo "$libc_cv_broken_alias_attribute" >&6; }
- if test $libc_cv_broken_alias_attribute = yes; then
-- as_fn_error "working alias attribute support required" "$LINENO" 5
-+ as_fn_error $? "working alias attribute support required" "$LINENO" 5
- fi
-
- if test $libc_cv_visibility_attribute = yes; then
-@@ -6214,7 +6221,15 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_initfini_array" >&5
- $as_echo "$libc_cv_initfini_array" >&6; }
- if test $libc_cv_initfini_array != yes; then
-- as_fn_error "Need linker with .init_array/.fini_array support." "$LINENO" 5
-+ as_fn_error $? "Need linker with .init_array/.fini_array support." "$LINENO" 5
-+ elif { ac_try='${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&5'
-+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+ test $ac_status = 0; }; }; then
-+ $as_echo "#define NO_CTORS_DTORS_SECTIONS 1" >>confdefs.h
-+
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5
-@@ -6262,7 +6277,7 @@ EOF
- then
- libc_cv_z_nodelete=yes
- else
-- as_fn_error "linker with -z nodelete support required" "$LINENO" 5
-+ as_fn_error $? "linker with -z nodelete support required" "$LINENO" 5
- fi
- rm -f conftest*
- fi
-@@ -6289,7 +6304,7 @@ EOF
- then
- libc_cv_z_nodlopen=yes
- else
-- as_fn_error "linker with -z nodlopen support required" "$LINENO" 5
-+ as_fn_error $? "linker with -z nodlopen support required" "$LINENO" 5
- fi
- rm -f conftest*
- fi
-@@ -6316,7 +6331,7 @@ EOF
- then
- libc_cv_z_initfirst=yes
- else
-- as_fn_error "linker with -z initfirst support required" "$LINENO" 5
-+ as_fn_error $? "linker with -z initfirst support required" "$LINENO" 5
- fi
- rm -f conftest*
- fi
-@@ -6352,7 +6367,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_z_relro" >&5
- $as_echo "$libc_cv_z_relro" >&6; }
- if test "$libc_cv_z_relro" = no; then
-- as_fn_error "linker with -z relro support required" "$LINENO" 5
-+ as_fn_error $? "linker with -z relro support required" "$LINENO" 5
- fi
- ;;
- *) ;;
-@@ -7202,7 +7217,7 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cc_submachine" >&5
- $as_echo "$libc_cv_cc_submachine" >&6; }
- if test "x$libc_cv_cc_submachine" = xno; then
-- as_fn_error "${CC-cc} does not support $submachine" "$LINENO" 5
-+ as_fn_error $? "${CC-cc} does not support $submachine" "$LINENO" 5
- fi
- fi
-
-@@ -7322,7 +7337,7 @@ $as_echo "$have_selinux" >&6; }
-
- if test x$with_selinux = xyes ; then
- if test x$have_selinux = xno ; then
-- as_fn_error "SELinux explicitly required, but sufficiently recent SELinux library not found" "$LINENO" 5
-+ as_fn_error $? "SELinux explicitly required, but sufficiently recent SELinux library not found" "$LINENO" 5
- fi
- fi
- fi
-@@ -7486,7 +7501,7 @@ esac
- done
- IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
-- as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
- else
- ac_cv_path_GREP=$GREP
-@@ -7552,7 +7567,7 @@ esac
- done
- IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
-- as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
- else
- ac_cv_path_EGREP=$EGREP
-@@ -7684,8 +7699,7 @@ do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
- "
--eval as_val=\$$as_ac_Header
-- if test "x$as_val" = x""yes; then :
-+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
- #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-@@ -7710,9 +7724,8 @@ else
- if test "$ac_cv_type_long_double" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--{ as_fn_set_status 77
--as_fn_error "cannot compute sizeof (long double)
--See \`config.log' for more details." "$LINENO" 5; }; }
-+as_fn_error 77 "cannot compute sizeof (long double)
-+See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long_double=0
- fi
-@@ -7943,6 +7956,7 @@ DEFS=-DHAVE_CONFIG_H
-
- ac_libobjs=
- ac_ltlibobjs=
-+U=
- for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-@@ -8104,19 +8118,19 @@ export LANGUAGE
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
--# as_fn_error ERROR [LINENO LOG_FD]
--# ---------------------------------
-+# as_fn_error STATUS ERROR [LINENO LOG_FD]
-+# ----------------------------------------
- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
- # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
--# script with status $?, using 1 if that was 0.
-+# script with STATUS, using 1 if that was 0.
- as_fn_error ()
- {
-- as_status=$?; test $as_status -eq 0 && as_status=1
-- if test "$3"; then
-- as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-- $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
-+ as_status=$1; test $as_status -eq 0 && as_status=1
-+ if test "$4"; then
-+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
-- $as_echo "$as_me: error: $1" >&2
-+ $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
- } # as_fn_error
-
-@@ -8312,7 +8326,7 @@ $as_echo X"$as_dir" |
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
-- } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
-+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
- } # as_fn_mkdir_p
-@@ -8366,7 +8380,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- # values after options handling.
- ac_log="
- This file was extended by GNU C Library $as_me (see version.h), which was
--generated by GNU Autoconf 2.65. Invocation command line was
-+generated by GNU Autoconf 2.66. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
-@@ -8434,10 +8448,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
- ac_cs_version="\\
- GNU C Library config.status (see version.h)
--configured by $0, generated by GNU Autoconf 2.65,
-+configured by $0, generated by GNU Autoconf 2.66,
- with options \\"\$ac_cs_config\\"
-
--Copyright (C) 2009 Free Software Foundation, Inc.
-+Copyright (C) 2010 Free Software Foundation, Inc.
- This config.status script is free software; the Free Software Foundation
- gives unlimited permission to copy, distribute and modify it."
-
-@@ -8492,7 +8506,7 @@ do
- ac_need_defaults=false;;
- --he | --h)
- # Conflict between --help and --header
-- as_fn_error "ambiguous option: \`$1'
-+ as_fn_error $? "ambiguous option: \`$1'
- Try \`$0 --help' for more information.";;
- --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
-@@ -8501,7 +8515,7 @@ Try \`$0 --help' for more information.";;
- ac_cs_silent=: ;;
-
- # This is an error.
-- -*) as_fn_error "unrecognized option: \`$1'
-+ -*) as_fn_error $? "unrecognized option: \`$1'
- Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
-@@ -8560,7 +8574,7 @@ do
- "${config_makefile}") CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;;
- "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-
-- *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
- done
-
-@@ -8598,7 +8612,7 @@ $debug ||
- {
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
--} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
-+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-
- # Set up the scripts for CONFIG_FILES section.
- # No need to generate them if there are no CONFIG_FILES.
-@@ -8615,7 +8629,7 @@ if test "x$ac_cr" = x; then
- fi
- ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
- if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-- ac_cs_awk_cr='\r'
-+ ac_cs_awk_cr='\\r'
- else
- ac_cs_awk_cr=$ac_cr
- fi
-@@ -8629,18 +8643,18 @@ _ACEOF
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
- } >conf$$subs.sh ||
-- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
--ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
-+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
- ac_delim='%!_!# '
- for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
-- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
-- as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
-+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-@@ -8729,20 +8743,28 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- else
- cat
- fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-- || as_fn_error "could not setup config files machinery" "$LINENO" 5
-+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
- _ACEOF
-
--# VPATH may cause trouble with some makes, so we remove $(srcdir),
--# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
- # trailing colons and then remove the whole line if VPATH becomes empty
- # (actually we leave an empty line to preserve line numbers).
- if test "x$srcdir" = x.; then
-- ac_vpsub='/^[ ]*VPATH[ ]*=/{
--s/:*\$(srcdir):*/:/
--s/:*\${srcdir}:*/:/
--s/:*@srcdir@:*/:/
--s/^\([^=]*=[ ]*\):*/\1/
-+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-+h
-+s///
-+s/^/:/
-+s/[ ]*$/:/
-+s/:\$(srcdir):/:/g
-+s/:\${srcdir}:/:/g
-+s/:@srcdir@:/:/g
-+s/^:*//
- s/:*$//
-+x
-+s/\(=[ ]*\).*/\1/
-+G
-+s/\n//
- s/^[^=]*=[ ]*$//
- }'
- fi
-@@ -8770,7 +8792,7 @@ for ac_last_try in false false :; do
- if test -z "$ac_t"; then
- break
- elif $ac_last_try; then
-- as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
-+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-@@ -8855,7 +8877,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- _ACAWK
- _ACEOF
- cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-- as_fn_error "could not setup config headers machinery" "$LINENO" 5
-+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
- fi # test -n "$CONFIG_HEADERS"
-
-
-@@ -8868,7 +8890,7 @@ do
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
-- :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
-+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
-@@ -8896,7 +8918,7 @@ do
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
-- as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
-@@ -8923,7 +8945,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
-
- case $ac_tag in
- *:-:* | *:-) cat >"$tmp/stdin" \
-- || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
-+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-@@ -9054,22 +9076,22 @@ s&@INSTALL@&$ac_INSTALL&;t t
- $ac_datarootdir_hack
- "
- eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-- || as_fn_error "could not create $ac_file" "$LINENO" 5
-+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
- test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
--which seems to be undefined. Please make sure it is defined." >&5
-+which seems to be undefined. Please make sure it is defined" >&5
- $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
--which seems to be undefined. Please make sure it is defined." >&2;}
-+which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$tmp/stdin"
- case $ac_file in
- -) cat "$tmp/out" && rm -f "$tmp/out";;
- *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
- esac \
-- || as_fn_error "could not create $ac_file" "$LINENO" 5
-+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
- :H)
- #
-@@ -9080,19 +9102,19 @@ which seems to be undefined. Please make sure it is defined." >&2;}
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
- } >"$tmp/config.h" \
-- || as_fn_error "could not create $ac_file" "$LINENO" 5
-+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
- $as_echo "$as_me: $ac_file is unchanged" >&6;}
- else
- rm -f "$ac_file"
- mv "$tmp/config.h" "$ac_file" \
-- || as_fn_error "could not create $ac_file" "$LINENO" 5
-+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- fi
- else
- $as_echo "/* $configure_input */" \
- && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-- || as_fn_error "could not create -" "$LINENO" 5
-+ || as_fn_error $? "could not create -" "$LINENO" 5
- fi
- ;;
-
-@@ -9118,7 +9140,7 @@ _ACEOF
- ac_clean_files=$ac_clean_files_save
-
- test $ac_write_fail = 0 ||
-- as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
-+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
- # configure is writing to config.log, and then calls config.status.
-@@ -9139,7 +9161,7 @@ if test "$no_create" != yes; then
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
-- $ac_cs_success || as_fn_exit $?
-+ $ac_cs_success || as_fn_exit 1
- fi
-
- #
-@@ -9280,7 +9302,7 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
- # The eval makes quoting arguments work.
- eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
- --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
-- as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
-+ as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
- fi
-
- cd "$ac_popdir"
-diff --git a/configure.in b/configure.in
-index d8cd5f1..ad25b9b 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1497,6 +1497,8 @@ EOF
- rm -f conftest*])
- if test $libc_cv_initfini_array != yes; then
- AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
-+ elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then
-+ AC_DEFINE(NO_CTORS_DTORS_SECTIONS)
- fi
-
- AC_CACHE_CHECK(for libunwind-support in compiler,
-diff --git a/elf/sofini.c b/elf/sofini.c
-index 5e06f0c..13e74b7 100644
---- a/elf/sofini.c
-+++ b/elf/sofini.c
-@@ -1,12 +1,14 @@
- /* Finalizer module for ELF shared C library. This provides terminating
- null pointer words in the `.ctors' and `.dtors' sections. */
-
-+#ifndef NO_CTORS_DTORS_SECTIONS
- static void (*const __CTOR_END__[1]) (void)
- __attribute__ ((used, section (".ctors")))
- = { 0 };
- static void (*const __DTOR_END__[1]) (void)
- __attribute__ ((used, section (".dtors")))
- = { 0 };
-+#endif
-
- /* Terminate the frame unwind info section with a 4byte 0 as a sentinel;
- this would be the 'length' field in a real FDE. */
-diff --git a/elf/soinit.c b/elf/soinit.c
-index 6fecbb5..1db676a 100644
---- a/elf/soinit.c
-+++ b/elf/soinit.c
-@@ -3,6 +3,7 @@
- the `.ctors' and `.dtors' sections so the lists are terminated, and
- calling those lists of functions. */
-
-+#ifndef NO_CTORS_DTORS_SECTIONS
- #include <libc-internal.h>
- #include <stdlib.h>
-
-@@ -40,3 +41,4 @@ __libc_fini (void)
-
- void (*_fini_ptr) (void) __attribute__ ((section (".fini_array")))
- = &__libc_fini;
-+#endif
-diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c
-index c6355a8..2af042f 100644
---- a/sysdeps/i386/init-first.c
-+++ b/sysdeps/i386/init-first.c
-@@ -59,7 +59,9 @@ _init (int argc, ...)
- {
- init (&argc);
-
-+#ifndef NO_CTORS_DTORS_SECTIONS
- __libc_global_ctors ();
-+#endif
- }
- #endif
-
-diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
-index f9a7a58..60823bd 100644
---- a/sysdeps/mach/hurd/i386/init-first.c
-+++ b/sysdeps/mach/hurd/i386/init-first.c
-@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp)
- __getopt_clean_environment (envp);
- #endif
-
--#ifdef SHARED
-+#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
- __libc_global_ctors ();
- #endif
- }
-diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
-index 20fa1d4..21b5054 100644
---- a/sysdeps/mach/hurd/powerpc/init-first.c
-+++ b/sysdeps/mach/hurd/powerpc/init-first.c
-@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp)
- __getopt_clean_environment (__environ);
- #endif
-
--#ifdef SHARED
-+#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
- __libc_global_ctors ();
- #endif
- }
-diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c
-index d816625..1f3a821 100644
---- a/sysdeps/sh/init-first.c
-+++ b/sysdeps/sh/init-first.c
-@@ -59,7 +59,9 @@ _init (int argc, ...)
- {
- init (&argc);
-
-+#ifndef NO_CTORS_DTORS_SECTIONS
- __libc_global_ctors ();
-+#endif
- }
- #endif
-
-diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
-index 7b2333d..a60212f 100644
---- a/sysdeps/unix/sysv/linux/init-first.c
-+++ b/sysdeps/unix/sysv/linux/init-first.c
-@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp)
- __getopt_clean_environment (envp);
- #endif
-
--#ifdef SHARED
-+#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
- __libc_global_ctors ();
- #endif
- }
---
-1.7.3.4
-
diff --git a/source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch b/source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch
deleted file mode 100644
index b33b5a0db..000000000
--- a/source/l/glibc/glibc.git-96611391ad8823ba58405325d78cefeae5cdf699-CVE-2010-3847b.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 96611391ad8823ba58405325d78cefeae5cdf699 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@redhat.com>
-Date: Thu, 9 Dec 2010 15:00:59 +0100
-Subject: [PATCH] Ignore origin of privileged program
-
----
- ChangeLog | 5 +++++
- elf/dl-object.c | 3 +++
- 2 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/elf/dl-object.c b/elf/dl-object.c
-index 5d15ce1..a34e902 100644
---- a/elf/dl-object.c
-+++ b/elf/dl-object.c
-@@ -220,6 +220,9 @@ _dl_new_object (char *realname, const char *libname, int type,
- out:
- new->l_origin = origin;
- }
-+ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
-+ /* The origin of a privileged program cannot be trusted. */
-+ new->l_origin = (char *) -1;
-
- return new;
- }
---
-1.7.3.4
-
diff --git a/source/l/glibc/glibc.nis-netgroups.diff b/source/l/glibc/glibc.nis-netgroups.diff
deleted file mode 100644
index 2473e9766..000000000
--- a/source/l/glibc/glibc.nis-netgroups.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./nis/nss_nis/nis-netgrp.c.orig 2006-04-08 21:08:28.000000000 -0500
-+++ ./nis/nss_nis/nis-netgrp.c 2006-10-10 20:49:11.000000000 -0500
-@@ -72,7 +72,8 @@
- and the last byte is filled with NUL. So we can simply
- use that buffer. */
- assert (len >= 0);
-- assert (malloc_usable_size (netgrp->data) >= len + 1);
-+ /* The next line break NIS netgroups on non-PAM systems, so we will comment it out */
-+ /* assert (malloc_usable_size (netgrp->data) >= len + 1); */
- assert (netgrp->data[len] == '\0');
-
- netgrp->data_size = len;
diff --git a/source/l/glibc/slack-desc.glibc-i18n b/source/l/glibc/slack-desc.glibc-i18n
index 71f5336c0..1a678d98a 100644
--- a/source/l/glibc/slack-desc.glibc-i18n
+++ b/source/l/glibc/slack-desc.glibc-i18n
@@ -8,9 +8,9 @@
|-----handy-ruler------------------------------------------------------|
glibc-i18n: glibc-i18n (locale files from glibc)
glibc-i18n:
-glibc-i18n: These files go in /usr/lib/locale and /usr/share/i18n/ to provide
-glibc-i18n: internationalization support. You'll need this package unless you
-glibc-i18n: will be using US English only.
+glibc-i18n: These files go in /usr/lib/locale, /usr/share/i18n/, and
+glibc-i18n: /usr/share/locale/ to provide internationalization support.
+glibc-i18n: You'll need this package unless you will be using US English only.
glibc-i18n:
glibc-i18n:
glibc-i18n:
diff --git a/source/l/glibc/slack-desc.glibc-zoneinfo b/source/l/glibc/slack-desc.glibc-zoneinfo
deleted file mode 100644
index 69420f78d..000000000
--- a/source/l/glibc/slack-desc.glibc-zoneinfo
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
-# leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-glibc-zoneinfo: glibc-zoneinfo (timezone database)
-glibc-zoneinfo:
-glibc-zoneinfo: This package allows you to configure your time zone.
-glibc-zoneinfo:
-glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by
-glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information
-glibc-zoneinfo: may be found at: http://www.iana.org/time-zones
-glibc-zoneinfo:
-glibc-zoneinfo: Use the timeconfig utility to set your local time zone.
-glibc-zoneinfo:
-glibc-zoneinfo:
diff --git a/source/l/glibc/slack-desc.glibc-zoneinfo.olson b/source/l/glibc/slack-desc.glibc-zoneinfo.olson
deleted file mode 100644
index 24dfd0e9f..000000000
--- a/source/l/glibc/slack-desc.glibc-zoneinfo.olson
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
-# leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-glibc-zoneinfo: glibc-zoneinfo (timezone database)
-glibc-zoneinfo:
-glibc-zoneinfo: This package allows you to configure your time zone.
-glibc-zoneinfo:
-glibc-zoneinfo: This timezone database comes from the tzdata and tzcode packages by
-glibc-zoneinfo: Arthur David Olson et.al. The latest version and more information
-glibc-zoneinfo: may be found at ftp://elsie.nci.nih.gov/pub/
-glibc-zoneinfo:
-glibc-zoneinfo: Use the timeconfig utility to set your local time zone.
-glibc-zoneinfo:
-glibc-zoneinfo:
diff --git a/source/l/glibc/timezone-scripts/output-updated-timeconfig.sh b/source/l/glibc/timezone-scripts/output-updated-timeconfig.sh
deleted file mode 100755
index a04f1b67f..000000000
--- a/source/l/glibc/timezone-scripts/output-updated-timeconfig.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-# Copyright 2000, 2001, 2006, 2007, 2008, 2012 Patrick J. Volkerding, Sebeka, MN, USA.
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-if [ ! "$(basename "$1")" = "zoneinfo" -o ! -d "$1" ]; then
- echo " Usage: output-updated-timeconfig.sh <zoneinfo directory>"
- exit 1
-fi
-
-CWD=$(pwd)
-cat $CWD/parts/00
-# Sorry, I'd rather not be US-centric but some people here have a hard
-# time finding things. ;-)
-( cd $1
- find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do
- echo "\"${zone}\" \" \" \\"
- done
-)
-( cd $1
- find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | while read zone ; do
- echo "\"${zone}\" \" \" \\"
- done
-)
-cat $CWD/parts/02
-( cd $1
- find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep "^US/" | while read zone ; do
- echo "${zone}"
- done
-)
-( cd $1
- find . -type f | xargs file | grep "timezone data" | cut -f 1 -d : | cut -f 2- -d / | sort | grep -v "^US/" | while read zone ; do
- echo "${zone}"
- done
-)
-cat $CWD/parts/04
diff --git a/source/l/glibc/timezone-scripts/parts/00 b/source/l/glibc/timezone-scripts/parts/00
deleted file mode 100644
index 42d8a7e0b..000000000
--- a/source/l/glibc/timezone-scripts/parts/00
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/sh
-#
-# timeconfig Slackware Linux timezone configuration utility.
-#
-# Author: Patrick Volkerding <volkerdi@slackware.com>
-# Modified by: David Cantrell <david@slackware.com>, 06-Oct-2000
-#
-# ChangeLog:
-# 2012-12-12: Updated timezones from tzdata2012j. <pjv>
-# 2008-03-10: Updated timezones from tzdata2008a. <pjv>
-# 2007-12-21: Updated timezones from tzdata2007j. <pjv>
-# 2006-12-03: Updated timezones from tzdata2006p. <pjv>
-# 2006-09-14: Updated timezones from tzdata2006k. <pjv>
-# 2006-08-22: Updated timezones from tzdata2006j.
-# 2006-08-13: Updated timezones from tzdata2006g.
-# 2006-03-13: Updated timezones from tzdata2006c.
-# 19-Feb-2001 Add new timezones from glibc-2.2.2.
-# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing
-# the hardwareclock file to the root disk and not your dest
-# partition. Changed the HWCLOCK_CONF variable to be
-# $T_PX/etc/hardwareclock to fix this. Thanks to David L.
-# Dickman <softbear@optonline.net> for finding this and
-# submitting a patch.
-#
-# 15-Mar-2000 Added the writeconf function to write out the
-# /etc/hardwareclock file which tells what the hardware clock
-# is set to (UTC or localtime).
-#
-# 03-Mar-2000 Reorganized script. Made one timezone set block, added
-# stage that asks the user if the hardware clock is set to
-# UTC.
-
-# setup our temp locations and variables
-TMP=/var/log/setup/tmp
-if [ -r $TMP/SeTT_PX ]; then
- T_PX="`cat $TMP/SeTT_PX`"
-elif [ ! "$!" = "" ]; then
- T_PX=$1
-else
- T_PX=/
-fi
-
-# the hardware clock configuration file
-HWCLOCK_CONF=$T_PX/etc/hardwareclock
-
-# setzone( $TIMEZONE )
-#
-# This function accepts a time zone as the only parameter and sets it as
-# the default system time zone.
-setzone()
-{
- TZ=$1
-
- cd $T_PX/etc
- if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \
- -r /var/log/mount/usr/share/zoneinfo/$TZ -o \
- -L $T_PX/usr/share/zoneinfo/$TZ -o \
- -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then
- ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from
- rm -f localtime
- cd ..
- chroot . cp etc/localtime-copied-from etc/localtime
- fi
-}
-
-# writeconf( $CLOCK_SET_TO )
-#
-# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock
-# value is stored.
-writeconf()
-{
- echo "# /etc/hardwareclock" > $HWCLOCK_CONF
- echo "#" >> $HWCLOCK_CONF
- echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF
- echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF
- echo >> $HWCLOCK_CONF
- echo $1 >> $HWCLOCK_CONF
-}
-
-# ask the user if the hardware clock is set for UTC/GMT
-if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then
- ###
- ### use color menus here
- ###
- dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \
-to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \
-hardware clock is set to the current local time (this is how most PCs are set \
-up), then say NO here. If you are not sure what this is, you should answer NO \
-here." 13 60 2 \
- "NO" "Hardware clock is set to local time" \
- "YES" "Hardware clock is set to UTC" \
- 2> $TMP/utc
- if [ $? = 1 -o $? = 255 ]; then
- rm -f $TMP/utc
- exit
- fi
- if [ "`cat $TMP/utc`" = "YES" ]; then
- # yes, the hardware clock is UTC
- writeconf "UTC"
- else # must be NO
- writeconf "localtime"
- fi
- rm -f $TMP/utc
-else
- ###
- ### use text prompts
- ###
- echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?"
- echo "If it is, select 'y' here. If the hardware clock is set to the"
- echo "current local time (this is how most PCs are set up), then say 'n'"
- echo "here. If you are not sure what this is, you should answer 'n' here."
- echo
- echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? "
- read HEJAZ
-
- if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then
- # yes, the hardware clock is UTC
- writeconf "UTC"
- else
- # default to localtime
- writeconf "localtime"
- fi
-fi
-
-# Now set the correct timezone link:
-if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then
- ###
- ### use color menus here
- ###
- dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \
diff --git a/source/l/glibc/timezone-scripts/parts/01 b/source/l/glibc/timezone-scripts/parts/01
deleted file mode 100644
index 3860d8bde..000000000
--- a/source/l/glibc/timezone-scripts/parts/01
+++ /dev/null
@@ -1,1664 +0,0 @@
-"US/Alaska" " " \
-"US/Aleutian" " " \
-"US/Arizona" " " \
-"US/Central" " " \
-"US/East-Indiana" " " \
-"US/Eastern" " " \
-"US/Hawaii" " " \
-"US/Indiana-Starke" " " \
-"US/Michigan" " " \
-"US/Mountain" " " \
-"US/Pacific" " " \
-"US/Pacific-New" " " \
-"US/Samoa" " " \
-"Africa/Abidjan" " " \
-"Africa/Accra" " " \
-"Africa/Addis_Ababa" " " \
-"Africa/Algiers" " " \
-"Africa/Asmera" " " \
-"Africa/Bamako" " " \
-"Africa/Bangui" " " \
-"Africa/Banjul" " " \
-"Africa/Bissau" " " \
-"Africa/Blantyre" " " \
-"Africa/Brazzaville" " " \
-"Africa/Bujumbura" " " \
-"Africa/Cairo" " " \
-"Africa/Casablanca" " " \
-"Africa/Ceuta" " " \
-"Africa/Conakry" " " \
-"Africa/Dakar" " " \
-"Africa/Dar_es_Salaam" " " \
-"Africa/Djibouti" " " \
-"Africa/Douala" " " \
-"Africa/El_Aaiun" " " \
-"Africa/Freetown" " " \
-"Africa/Gaborone" " " \
-"Africa/Harare" " " \
-"Africa/Johannesburg" " " \
-"Africa/Kampala" " " \
-"Africa/Khartoum" " " \
-"Africa/Kigali" " " \
-"Africa/Kinshasa" " " \
-"Africa/Lagos" " " \
-"Africa/Libreville" " " \
-"Africa/Lome" " " \
-"Africa/Luanda" " " \
-"Africa/Lubumbashi" " " \
-"Africa/Lusaka" " " \
-"Africa/Malabo" " " \
-"Africa/Maputo" " " \
-"Africa/Maseru" " " \
-"Africa/Mbabane" " " \
-"Africa/Mogadishu" " " \
-"Africa/Monrovia" " " \
-"Africa/Nairobi" " " \
-"Africa/Ndjamena" " " \
-"Africa/Niamey" " " \
-"Africa/Nouakchott" " " \
-"Africa/Ouagadougou" " " \
-"Africa/Porto-Novo" " " \
-"Africa/Sao_Tome" " " \
-"Africa/Timbuktu" " " \
-"Africa/Tripoli" " " \
-"Africa/Tunis" " " \
-"Africa/Windhoek" " " \
-"America/Adak" " " \
-"America/Anchorage" " " \
-"America/Anguilla" " " \
-"America/Antigua" " " \
-"America/Araguaina" " " \
-"America/Argentina/Buenos_Aires" " " \
-"America/Argentina/Catamarca" " " \
-"America/Argentina/ComodRivadavia" " " \
-"America/Argentina/Cordoba" " " \
-"America/Argentina/Jujuy" " " \
-"America/Argentina/La_Rioja" " " \
-"America/Argentina/Mendoza" " " \
-"America/Argentina/Rio_Gallegos" " " \
-"America/Argentina/San_Juan" " " \
-"America/Argentina/Tucuman" " " \
-"America/Argentina/Ushuaia" " " \
-"America/Aruba" " " \
-"America/Asuncion" " " \
-"America/Atikokan" " " \
-"America/Atka" " " \
-"America/Bahia" " " \
-"America/Barbados" " " \
-"America/Belem" " " \
-"America/Belize" " " \
-"America/Blanc-Sablon" " " \
-"America/Boa_Vista" " " \
-"America/Bogota" " " \
-"America/Boise" " " \
-"America/Buenos_Aires" " " \
-"America/Cambridge_Bay" " " \
-"America/Campo_Grande" " " \
-"America/Cancun" " " \
-"America/Caracas" " " \
-"America/Catamarca" " " \
-"America/Cayenne" " " \
-"America/Cayman" " " \
-"America/Chicago" " " \
-"America/Chihuahua" " " \
-"America/Coral_Harbour" " " \
-"America/Cordoba" " " \
-"America/Costa_Rica" " " \
-"America/Cuiaba" " " \
-"America/Curacao" " " \
-"America/Danmarkshavn" " " \
-"America/Dawson" " " \
-"America/Dawson_Creek" " " \
-"America/Denver" " " \
-"America/Detroit" " " \
-"America/Dominica" " " \
-"America/Edmonton" " " \
-"America/Eirunepe" " " \
-"America/El_Salvador" " " \
-"America/Ensenada" " " \
-"America/Fort_Wayne" " " \
-"America/Fortaleza" " " \
-"America/Glace_Bay" " " \
-"America/Godthab" " " \
-"America/Goose_Bay" " " \
-"America/Grand_Turk" " " \
-"America/Grenada" " " \
-"America/Guadeloupe" " " \
-"America/Guatemala" " " \
-"America/Guayaquil" " " \
-"America/Guyana" " " \
-"America/Halifax" " " \
-"America/Havana" " " \
-"America/Hermosillo" " " \
-"America/Indiana/Indianapolis" " " \
-"America/Indiana/Knox" " " \
-"America/Indiana/Marengo" " " \
-"America/Indiana/Petersburg" " " \
-"America/Indiana/Tell_City" " " \
-"America/Indiana/Vevay" " " \
-"America/Indiana/Vincennes" " " \
-"America/Indianapolis" " " \
-"America/Inuvik" " " \
-"America/Iqaluit" " " \
-"America/Jamaica" " " \
-"America/Jujuy" " " \
-"America/Juneau" " " \
-"America/Kentucky/Louisville" " " \
-"America/Kentucky/Monticello" " " \
-"America/Knox_IN" " " \
-"America/La_Paz" " " \
-"America/Lima" " " \
-"America/Los_Angeles" " " \
-"America/Louisville" " " \
-"America/Maceio" " " \
-"America/Managua" " " \
-"America/Manaus" " " \
-"America/Martinique" " " \
-"America/Mazatlan" " " \
-"America/Mendoza" " " \
-"America/Menominee" " " \
-"America/Merida" " " \
-"America/Mexico_City" " " \
-"America/Miquelon" " " \
-"America/Moncton" " " \
-"America/Monterrey" " " \
-"America/Montevideo" " " \
-"America/Montreal" " " \
-"America/Montserrat" " " \
-"America/Nassau" " " \
-"America/New_York" " " \
-"America/Nipigon" " " \
-"America/Nome" " " \
-"America/Noronha" " " \
-"America/North_Dakota/Center" " " \
-"America/North_Dakota/New_Salem" " " \
-"America/Panama" " " \
-"America/Pangnirtung" " " \
-"America/Paramaribo" " " \
-"America/Phoenix" " " \
-"America/Port-au-Prince" " " \
-"America/Port_of_Spain" " " \
-"America/Porto_Acre" " " \
-"America/Porto_Velho" " " \
-"America/Puerto_Rico" " " \
-"America/Rainy_River" " " \
-"America/Rankin_Inlet" " " \
-"America/Recife" " " \
-"America/Regina" " " \
-"America/Rio_Branco" " " \
-"America/Rosario" " " \
-"America/Santiago" " " \
-"America/Santo_Domingo" " " \
-"America/Sao_Paulo" " " \
-"America/Scoresbysund" " " \
-"America/Shiprock" " " \
-"America/St_Johns" " " \
-"America/St_Kitts" " " \
-"America/St_Lucia" " " \
-"America/St_Thomas" " " \
-"America/St_Vincent" " " \
-"America/Swift_Current" " " \
-"America/Tegucigalpa" " " \
-"America/Thule" " " \
-"America/Thunder_Bay" " " \
-"America/Tijuana" " " \
-"America/Toronto" " " \
-"America/Tortola" " " \
-"America/Vancouver" " " \
-"America/Virgin" " " \
-"America/Whitehorse" " " \
-"America/Winnipeg" " " \
-"America/Yakutat" " " \
-"America/Yellowknife" " " \
-"Antarctica/Casey" " " \
-"Antarctica/Davis" " " \
-"Antarctica/DumontDUrville" " " \
-"Antarctica/Mawson" " " \
-"Antarctica/McMurdo" " " \
-"Antarctica/Palmer" " " \
-"Antarctica/Rothera" " " \
-"Antarctica/South_Pole" " " \
-"Antarctica/Syowa" " " \
-"Antarctica/Vostok" " " \
-"Arctic/Longyearbyen" " " \
-"Asia/Aden" " " \
-"Asia/Almaty" " " \
-"Asia/Amman" " " \
-"Asia/Anadyr" " " \
-"Asia/Aqtau" " " \
-"Asia/Aqtobe" " " \
-"Asia/Ashgabat" " " \
-"Asia/Ashkhabad" " " \
-"Asia/Baghdad" " " \
-"Asia/Bahrain" " " \
-"Asia/Baku" " " \
-"Asia/Bangkok" " " \
-"Asia/Beirut" " " \
-"Asia/Bishkek" " " \
-"Asia/Brunei" " " \
-"Asia/Calcutta" " " \
-"Asia/Choibalsan" " " \
-"Asia/Chongqing" " " \
-"Asia/Chungking" " " \
-"Asia/Colombo" " " \
-"Asia/Dacca" " " \
-"Asia/Damascus" " " \
-"Asia/Dhaka" " " \
-"Asia/Dili" " " \
-"Asia/Dubai" " " \
-"Asia/Dushanbe" " " \
-"Asia/Gaza" " " \
-"Asia/Harbin" " " \
-"Asia/Hong_Kong" " " \
-"Asia/Hovd" " " \
-"Asia/Irkutsk" " " \
-"Asia/Istanbul" " " \
-"Asia/Jakarta" " " \
-"Asia/Jayapura" " " \
-"Asia/Jerusalem" " " \
-"Asia/Kabul" " " \
-"Asia/Kamchatka" " " \
-"Asia/Karachi" " " \
-"Asia/Kashgar" " " \
-"Asia/Katmandu" " " \
-"Asia/Khandyga" " " \
-"Asia/Khandyga" " " \
-"Asia/Krasnoyarsk" " " \
-"Asia/Kuala_Lumpur" " " \
-"Asia/Kuching" " " \
-"Asia/Kuwait" " " \
-"Asia/Macao" " " \
-"Asia/Macau" " " \
-"Asia/Magadan" " " \
-"Asia/Makassar" " " \
-"Asia/Manila" " " \
-"Asia/Muscat" " " \
-"Asia/Nicosia" " " \
-"Asia/Novosibirsk" " " \
-"Asia/Omsk" " " \
-"Asia/Oral" " " \
-"Asia/Phnom_Penh" " " \
-"Asia/Pontianak" " " \
-"Asia/Pyongyang" " " \
-"Asia/Qatar" " " \
-"Asia/Qyzylorda" " " \
-"Asia/Rangoon" " " \
-"Asia/Riyadh" " " \
-"Asia/Riyadh87" " " \
-"Asia/Riyadh88" " " \
-"Asia/Riyadh89" " " \
-"Asia/Saigon" " " \
-"Asia/Sakhalin" " " \
-"Asia/Samarkand" " " \
-"Asia/Seoul" " " \
-"Asia/Shanghai" " " \
-"Asia/Singapore" " " \
-"Asia/Taipei" " " \
-"Asia/Tashkent" " " \
-"Asia/Tbilisi" " " \
-"Asia/Tehran" " " \
-"Asia/Tel_Aviv" " " \
-"Asia/Thimbu" " " \
-"Asia/Thimphu" " " \
-"Asia/Tokyo" " " \
-"Asia/Ujung_Pandang" " " \
-"Asia/Ulaanbaatar" " " \
-"Asia/Ulan_Bator" " " \
-"Asia/Urumqi" " " \
-"Asia/Ust-Nera" " " \
-"Asia/Vientiane" " " \
-"Asia/Vladivostok" " " \
-"Asia/Yakutsk" " " \
-"Asia/Yekaterinburg" " " \
-"Asia/Yerevan" " " \
-"Atlantic/Azores" " " \
-"Atlantic/Bermuda" " " \
-"Atlantic/Canary" " " \
-"Atlantic/Cape_Verde" " " \
-"Atlantic/Faeroe" " " \
-"Atlantic/Jan_Mayen" " " \
-"Atlantic/Madeira" " " \
-"Atlantic/Reykjavik" " " \
-"Atlantic/South_Georgia" " " \
-"Atlantic/St_Helena" " " \
-"Atlantic/Stanley" " " \
-"Australia/ACT" " " \
-"Australia/Adelaide" " " \
-"Australia/Brisbane" " " \
-"Australia/Broken_Hill" " " \
-"Australia/Canberra" " " \
-"Australia/Currie" " " \
-"Australia/Darwin" " " \
-"Australia/Hobart" " " \
-"Australia/LHI" " " \
-"Australia/Lindeman" " " \
-"Australia/Lord_Howe" " " \
-"Australia/Melbourne" " " \
-"Australia/NSW" " " \
-"Australia/North" " " \
-"Australia/Perth" " " \
-"Australia/Queensland" " " \
-"Australia/South" " " \
-"Australia/Sydney" " " \
-"Australia/Tasmania" " " \
-"Australia/Victoria" " " \
-"Australia/West" " " \
-"Australia/Yancowinna" " " \
-"Brazil/Acre" " " \
-"Brazil/DeNoronha" " " \
-"Brazil/East" " " \
-"Brazil/West" " " \
-"CET" " " \
-"CST6CDT" " " \
-"Canada/Atlantic" " " \
-"Canada/Central" " " \
-"Canada/East-Saskatchewan" " " \
-"Canada/Eastern" " " \
-"Canada/Mountain" " " \
-"Canada/Newfoundland" " " \
-"Canada/Pacific" " " \
-"Canada/Saskatchewan" " " \
-"Canada/Yukon" " " \
-"Chile/Continental" " " \
-"Chile/EasterIsland" " " \
-"Cuba" " " \
-"EET" " " \
-"EST" " " \
-"EST5EDT" " " \
-"Egypt" " " \
-"Eire" " " \
-"Etc/GMT" " " \
-"Etc/GMT+0" " " \
-"Etc/GMT+1" " " \
-"Etc/GMT+10" " " \
-"Etc/GMT+11" " " \
-"Etc/GMT+12" " " \
-"Etc/GMT+2" " " \
-"Etc/GMT+3" " " \
-"Etc/GMT+4" " " \
-"Etc/GMT+5" " " \
-"Etc/GMT+6" " " \
-"Etc/GMT+7" " " \
-"Etc/GMT+8" " " \
-"Etc/GMT+9" " " \
-"Etc/GMT-0" " " \
-"Etc/GMT-1" " " \
-"Etc/GMT-10" " " \
-"Etc/GMT-11" " " \
-"Etc/GMT-12" " " \
-"Etc/GMT-13" " " \
-"Etc/GMT-14" " " \
-"Etc/GMT-2" " " \
-"Etc/GMT-3" " " \
-"Etc/GMT-4" " " \
-"Etc/GMT-5" " " \
-"Etc/GMT-6" " " \
-"Etc/GMT-7" " " \
-"Etc/GMT-8" " " \
-"Etc/GMT-9" " " \
-"Etc/GMT0" " " \
-"Etc/Greenwich" " " \
-"Etc/UCT" " " \
-"Etc/UTC" " " \
-"Etc/Universal" " " \
-"Etc/Zulu" " " \
-"Europe/Amsterdam" " " \
-"Europe/Andorra" " " \
-"Europe/Athens" " " \
-"Europe/Belfast" " " \
-"Europe/Belgrade" " " \
-"Europe/Berlin" " " \
-"Europe/Bratislava" " " \
-"Europe/Brussels" " " \
-"Europe/Bucharest" " " \
-"Europe/Budapest" " " \
-"Europe/Busingen" " " \
-"Europe/Chisinau" " " \
-"Europe/Copenhagen" " " \
-"Europe/Dublin" " " \
-"Europe/Gibraltar" " " \
-"Europe/Guernsey" " " \
-"Europe/Helsinki" " " \
-"Europe/Isle_of_Man" " " \
-"Europe/Istanbul" " " \
-"Europe/Jersey" " " \
-"Europe/Kaliningrad" " " \
-"Europe/Kiev" " " \
-"Europe/Lisbon" " " \
-"Europe/Ljubljana" " " \
-"Europe/London" " " \
-"Europe/Luxembourg" " " \
-"Europe/Madrid" " " \
-"Europe/Malta" " " \
-"Europe/Mariehamn" " " \
-"Europe/Minsk" " " \
-"Europe/Monaco" " " \
-"Europe/Moscow" " " \
-"Europe/Nicosia" " " \
-"Europe/Oslo" " " \
-"Europe/Paris" " " \
-"Europe/Podgorica" " " \
-"Europe/Prague" " " \
-"Europe/Riga" " " \
-"Europe/Rome" " " \
-"Europe/Samara" " " \
-"Europe/San_Marino" " " \
-"Europe/Sarajevo" " " \
-"Europe/Simferopol" " " \
-"Europe/Skopje" " " \
-"Europe/Sofia" " " \
-"Europe/Stockholm" " " \
-"Europe/Tallinn" " " \
-"Europe/Tirane" " " \
-"Europe/Tiraspol" " " \
-"Europe/Uzhgorod" " " \
-"Europe/Vaduz" " " \
-"Europe/Vatican" " " \
-"Europe/Vienna" " " \
-"Europe/Vilnius" " " \
-"Europe/Volgograd" " " \
-"Europe/Warsaw" " " \
-"Europe/Zagreb" " " \
-"Europe/Zaporozhye" " " \
-"Europe/Zurich" " " \
-"Factory" " " \
-"GB" " " \
-"GB-Eire" " " \
-"GMT" " " \
-"GMT+0" " " \
-"GMT-0" " " \
-"GMT0" " " \
-"Greenwich" " " \
-"HST" " " \
-"Hongkong" " " \
-"Iceland" " " \
-"Indian/Antananarivo" " " \
-"Indian/Chagos" " " \
-"Indian/Christmas" " " \
-"Indian/Cocos" " " \
-"Indian/Comoro" " " \
-"Indian/Kerguelen" " " \
-"Indian/Mahe" " " \
-"Indian/Maldives" " " \
-"Indian/Mauritius" " " \
-"Indian/Mayotte" " " \
-"Indian/Reunion" " " \
-"Iran" " " \
-"Israel" " " \
-"Jamaica" " " \
-"Japan" " " \
-"Kwajalein" " " \
-"Libya" " " \
-"MET" " " \
-"MST" " " \
-"MST7MDT" " " \
-"Mexico/BajaNorte" " " \
-"Mexico/BajaSur" " " \
-"Mexico/General" " " \
-"Mideast/Riyadh87" " " \
-"Mideast/Riyadh88" " " \
-"Mideast/Riyadh89" " " \
-"NZ" " " \
-"NZ-CHAT" " " \
-"Navajo" " " \
-"PRC" " " \
-"PST8PDT" " " \
-"Pacific/Apia" " " \
-"Pacific/Auckland" " " \
-"Pacific/Chatham" " " \
-"Pacific/Easter" " " \
-"Pacific/Efate" " " \
-"Pacific/Enderbury" " " \
-"Pacific/Fakaofo" " " \
-"Pacific/Fiji" " " \
-"Pacific/Funafuti" " " \
-"Pacific/Galapagos" " " \
-"Pacific/Gambier" " " \
-"Pacific/Guadalcanal" " " \
-"Pacific/Guam" " " \
-"Pacific/Honolulu" " " \
-"Pacific/Johnston" " " \
-"Pacific/Kiritimati" " " \
-"Pacific/Kosrae" " " \
-"Pacific/Kwajalein" " " \
-"Pacific/Majuro" " " \
-"Pacific/Marquesas" " " \
-"Pacific/Midway" " " \
-"Pacific/Nauru" " " \
-"Pacific/Niue" " " \
-"Pacific/Norfolk" " " \
-"Pacific/Noumea" " " \
-"Pacific/Pago_Pago" " " \
-"Pacific/Palau" " " \
-"Pacific/Pitcairn" " " \
-"Pacific/Ponape" " " \
-"Pacific/Port_Moresby" " " \
-"Pacific/Rarotonga" " " \
-"Pacific/Saipan" " " \
-"Pacific/Samoa" " " \
-"Pacific/Tahiti" " " \
-"Pacific/Tarawa" " " \
-"Pacific/Tongatapu" " " \
-"Pacific/Truk" " " \
-"Pacific/Wake" " " \
-"Pacific/Wallis" " " \
-"Pacific/Yap" " " \
-"Poland" " " \
-"Portugal" " " \
-"ROC" " " \
-"ROK" " " \
-"Singapore" " " \
-"Turkey" " " \
-"UCT" " " \
-"UTC" " " \
-"Universal" " " \
-"W-SU" " " \
-"WET" " " \
-"Zulu" " " \
-"posix/Africa/Abidjan" " " \
-"posix/Africa/Accra" " " \
-"posix/Africa/Addis_Ababa" " " \
-"posix/Africa/Algiers" " " \
-"posix/Africa/Asmera" " " \
-"posix/Africa/Bamako" " " \
-"posix/Africa/Bangui" " " \
-"posix/Africa/Banjul" " " \
-"posix/Africa/Bissau" " " \
-"posix/Africa/Blantyre" " " \
-"posix/Africa/Brazzaville" " " \
-"posix/Africa/Bujumbura" " " \
-"posix/Africa/Cairo" " " \
-"posix/Africa/Casablanca" " " \
-"posix/Africa/Ceuta" " " \
-"posix/Africa/Conakry" " " \
-"posix/Africa/Dakar" " " \
-"posix/Africa/Dar_es_Salaam" " " \
-"posix/Africa/Djibouti" " " \
-"posix/Africa/Douala" " " \
-"posix/Africa/El_Aaiun" " " \
-"posix/Africa/Freetown" " " \
-"posix/Africa/Gaborone" " " \
-"posix/Africa/Harare" " " \
-"posix/Africa/Johannesburg" " " \
-"posix/Africa/Kampala" " " \
-"posix/Africa/Khartoum" " " \
-"posix/Africa/Kigali" " " \
-"posix/Africa/Kinshasa" " " \
-"posix/Africa/Lagos" " " \
-"posix/Africa/Libreville" " " \
-"posix/Africa/Lome" " " \
-"posix/Africa/Luanda" " " \
-"posix/Africa/Lubumbashi" " " \
-"posix/Africa/Lusaka" " " \
-"posix/Africa/Malabo" " " \
-"posix/Africa/Maputo" " " \
-"posix/Africa/Maseru" " " \
-"posix/Africa/Mbabane" " " \
-"posix/Africa/Mogadishu" " " \
-"posix/Africa/Monrovia" " " \
-"posix/Africa/Nairobi" " " \
-"posix/Africa/Ndjamena" " " \
-"posix/Africa/Niamey" " " \
-"posix/Africa/Nouakchott" " " \
-"posix/Africa/Ouagadougou" " " \
-"posix/Africa/Porto-Novo" " " \
-"posix/Africa/Sao_Tome" " " \
-"posix/Africa/Timbuktu" " " \
-"posix/Africa/Tripoli" " " \
-"posix/Africa/Tunis" " " \
-"posix/Africa/Windhoek" " " \
-"posix/America/Adak" " " \
-"posix/America/Anchorage" " " \
-"posix/America/Anguilla" " " \
-"posix/America/Antigua" " " \
-"posix/America/Araguaina" " " \
-"posix/America/Argentina/Buenos_Aires" " " \
-"posix/America/Argentina/Catamarca" " " \
-"posix/America/Argentina/ComodRivadavia" " " \
-"posix/America/Argentina/Cordoba" " " \
-"posix/America/Argentina/Jujuy" " " \
-"posix/America/Argentina/La_Rioja" " " \
-"posix/America/Argentina/Mendoza" " " \
-"posix/America/Argentina/Rio_Gallegos" " " \
-"posix/America/Argentina/San_Juan" " " \
-"posix/America/Argentina/Tucuman" " " \
-"posix/America/Argentina/Ushuaia" " " \
-"posix/America/Aruba" " " \
-"posix/America/Asuncion" " " \
-"posix/America/Atikokan" " " \
-"posix/America/Atka" " " \
-"posix/America/Bahia" " " \
-"posix/America/Barbados" " " \
-"posix/America/Belem" " " \
-"posix/America/Belize" " " \
-"posix/America/Blanc-Sablon" " " \
-"posix/America/Boa_Vista" " " \
-"posix/America/Bogota" " " \
-"posix/America/Boise" " " \
-"posix/America/Buenos_Aires" " " \
-"posix/America/Cambridge_Bay" " " \
-"posix/America/Campo_Grande" " " \
-"posix/America/Cancun" " " \
-"posix/America/Caracas" " " \
-"posix/America/Catamarca" " " \
-"posix/America/Cayenne" " " \
-"posix/America/Cayman" " " \
-"posix/America/Chicago" " " \
-"posix/America/Chihuahua" " " \
-"posix/America/Coral_Harbour" " " \
-"posix/America/Cordoba" " " \
-"posix/America/Costa_Rica" " " \
-"posix/America/Cuiaba" " " \
-"posix/America/Curacao" " " \
-"posix/America/Danmarkshavn" " " \
-"posix/America/Dawson" " " \
-"posix/America/Dawson_Creek" " " \
-"posix/America/Denver" " " \
-"posix/America/Detroit" " " \
-"posix/America/Dominica" " " \
-"posix/America/Edmonton" " " \
-"posix/America/Eirunepe" " " \
-"posix/America/El_Salvador" " " \
-"posix/America/Ensenada" " " \
-"posix/America/Fort_Wayne" " " \
-"posix/America/Fortaleza" " " \
-"posix/America/Glace_Bay" " " \
-"posix/America/Godthab" " " \
-"posix/America/Goose_Bay" " " \
-"posix/America/Grand_Turk" " " \
-"posix/America/Grenada" " " \
-"posix/America/Guadeloupe" " " \
-"posix/America/Guatemala" " " \
-"posix/America/Guayaquil" " " \
-"posix/America/Guyana" " " \
-"posix/America/Halifax" " " \
-"posix/America/Havana" " " \
-"posix/America/Hermosillo" " " \
-"posix/America/Indiana/Indianapolis" " " \
-"posix/America/Indiana/Knox" " " \
-"posix/America/Indiana/Marengo" " " \
-"posix/America/Indiana/Petersburg" " " \
-"posix/America/Indiana/Tell_City" " " \
-"posix/America/Indiana/Vevay" " " \
-"posix/America/Indiana/Vincennes" " " \
-"posix/America/Indianapolis" " " \
-"posix/America/Inuvik" " " \
-"posix/America/Iqaluit" " " \
-"posix/America/Jamaica" " " \
-"posix/America/Jujuy" " " \
-"posix/America/Juneau" " " \
-"posix/America/Kentucky/Louisville" " " \
-"posix/America/Kentucky/Monticello" " " \
-"posix/America/Knox_IN" " " \
-"posix/America/La_Paz" " " \
-"posix/America/Lima" " " \
-"posix/America/Los_Angeles" " " \
-"posix/America/Louisville" " " \
-"posix/America/Maceio" " " \
-"posix/America/Managua" " " \
-"posix/America/Manaus" " " \
-"posix/America/Martinique" " " \
-"posix/America/Mazatlan" " " \
-"posix/America/Mendoza" " " \
-"posix/America/Menominee" " " \
-"posix/America/Merida" " " \
-"posix/America/Mexico_City" " " \
-"posix/America/Miquelon" " " \
-"posix/America/Moncton" " " \
-"posix/America/Monterrey" " " \
-"posix/America/Montevideo" " " \
-"posix/America/Montreal" " " \
-"posix/America/Montserrat" " " \
-"posix/America/Nassau" " " \
-"posix/America/New_York" " " \
-"posix/America/Nipigon" " " \
-"posix/America/Nome" " " \
-"posix/America/Noronha" " " \
-"posix/America/North_Dakota/Center" " " \
-"posix/America/North_Dakota/New_Salem" " " \
-"posix/America/Panama" " " \
-"posix/America/Pangnirtung" " " \
-"posix/America/Paramaribo" " " \
-"posix/America/Phoenix" " " \
-"posix/America/Port-au-Prince" " " \
-"posix/America/Port_of_Spain" " " \
-"posix/America/Porto_Acre" " " \
-"posix/America/Porto_Velho" " " \
-"posix/America/Puerto_Rico" " " \
-"posix/America/Rainy_River" " " \
-"posix/America/Rankin_Inlet" " " \
-"posix/America/Recife" " " \
-"posix/America/Regina" " " \
-"posix/America/Rio_Branco" " " \
-"posix/America/Rosario" " " \
-"posix/America/Santiago" " " \
-"posix/America/Santo_Domingo" " " \
-"posix/America/Sao_Paulo" " " \
-"posix/America/Scoresbysund" " " \
-"posix/America/Shiprock" " " \
-"posix/America/St_Johns" " " \
-"posix/America/St_Kitts" " " \
-"posix/America/St_Lucia" " " \
-"posix/America/St_Thomas" " " \
-"posix/America/St_Vincent" " " \
-"posix/America/Swift_Current" " " \
-"posix/America/Tegucigalpa" " " \
-"posix/America/Thule" " " \
-"posix/America/Thunder_Bay" " " \
-"posix/America/Tijuana" " " \
-"posix/America/Toronto" " " \
-"posix/America/Tortola" " " \
-"posix/America/Vancouver" " " \
-"posix/America/Virgin" " " \
-"posix/America/Whitehorse" " " \
-"posix/America/Winnipeg" " " \
-"posix/America/Yakutat" " " \
-"posix/America/Yellowknife" " " \
-"posix/Antarctica/Casey" " " \
-"posix/Antarctica/Davis" " " \
-"posix/Antarctica/DumontDUrville" " " \
-"posix/Antarctica/Mawson" " " \
-"posix/Antarctica/McMurdo" " " \
-"posix/Antarctica/Palmer" " " \
-"posix/Antarctica/Rothera" " " \
-"posix/Antarctica/South_Pole" " " \
-"posix/Antarctica/Syowa" " " \
-"posix/Antarctica/Vostok" " " \
-"posix/Arctic/Longyearbyen" " " \
-"posix/Asia/Aden" " " \
-"posix/Asia/Almaty" " " \
-"posix/Asia/Amman" " " \
-"posix/Asia/Anadyr" " " \
-"posix/Asia/Aqtau" " " \
-"posix/Asia/Aqtobe" " " \
-"posix/Asia/Ashgabat" " " \
-"posix/Asia/Ashkhabad" " " \
-"posix/Asia/Baghdad" " " \
-"posix/Asia/Bahrain" " " \
-"posix/Asia/Baku" " " \
-"posix/Asia/Bangkok" " " \
-"posix/Asia/Beirut" " " \
-"posix/Asia/Bishkek" " " \
-"posix/Asia/Brunei" " " \
-"posix/Asia/Calcutta" " " \
-"posix/Asia/Choibalsan" " " \
-"posix/Asia/Chongqing" " " \
-"posix/Asia/Chungking" " " \
-"posix/Asia/Colombo" " " \
-"posix/Asia/Dacca" " " \
-"posix/Asia/Damascus" " " \
-"posix/Asia/Dhaka" " " \
-"posix/Asia/Dili" " " \
-"posix/Asia/Dubai" " " \
-"posix/Asia/Dushanbe" " " \
-"posix/Asia/Gaza" " " \
-"posix/Asia/Harbin" " " \
-"posix/Asia/Hong_Kong" " " \
-"posix/Asia/Hovd" " " \
-"posix/Asia/Irkutsk" " " \
-"posix/Asia/Istanbul" " " \
-"posix/Asia/Jakarta" " " \
-"posix/Asia/Jayapura" " " \
-"posix/Asia/Jerusalem" " " \
-"posix/Asia/Kabul" " " \
-"posix/Asia/Kamchatka" " " \
-"posix/Asia/Karachi" " " \
-"posix/Asia/Kashgar" " " \
-"posix/Asia/Katmandu" " " \
-"posix/Asia/Krasnoyarsk" " " \
-"posix/Asia/Kuala_Lumpur" " " \
-"posix/Asia/Kuching" " " \
-"posix/Asia/Kuwait" " " \
-"posix/Asia/Macao" " " \
-"posix/Asia/Macau" " " \
-"posix/Asia/Magadan" " " \
-"posix/Asia/Makassar" " " \
-"posix/Asia/Manila" " " \
-"posix/Asia/Muscat" " " \
-"posix/Asia/Nicosia" " " \
-"posix/Asia/Novosibirsk" " " \
-"posix/Asia/Omsk" " " \
-"posix/Asia/Oral" " " \
-"posix/Asia/Phnom_Penh" " " \
-"posix/Asia/Pontianak" " " \
-"posix/Asia/Pyongyang" " " \
-"posix/Asia/Qatar" " " \
-"posix/Asia/Qyzylorda" " " \
-"posix/Asia/Rangoon" " " \
-"posix/Asia/Riyadh" " " \
-"posix/Asia/Riyadh87" " " \
-"posix/Asia/Riyadh88" " " \
-"posix/Asia/Riyadh89" " " \
-"posix/Asia/Saigon" " " \
-"posix/Asia/Sakhalin" " " \
-"posix/Asia/Samarkand" " " \
-"posix/Asia/Seoul" " " \
-"posix/Asia/Shanghai" " " \
-"posix/Asia/Singapore" " " \
-"posix/Asia/Taipei" " " \
-"posix/Asia/Tashkent" " " \
-"posix/Asia/Tbilisi" " " \
-"posix/Asia/Tehran" " " \
-"posix/Asia/Tel_Aviv" " " \
-"posix/Asia/Thimbu" " " \
-"posix/Asia/Thimphu" " " \
-"posix/Asia/Tokyo" " " \
-"posix/Asia/Ujung_Pandang" " " \
-"posix/Asia/Ulaanbaatar" " " \
-"posix/Asia/Ulan_Bator" " " \
-"posix/Asia/Urumqi" " " \
-"posix/Asia/Vientiane" " " \
-"posix/Asia/Vladivostok" " " \
-"posix/Asia/Yakutsk" " " \
-"posix/Asia/Yekaterinburg" " " \
-"posix/Asia/Yerevan" " " \
-"posix/Atlantic/Azores" " " \
-"posix/Atlantic/Bermuda" " " \
-"posix/Atlantic/Canary" " " \
-"posix/Atlantic/Cape_Verde" " " \
-"posix/Atlantic/Faeroe" " " \
-"posix/Atlantic/Jan_Mayen" " " \
-"posix/Atlantic/Madeira" " " \
-"posix/Atlantic/Reykjavik" " " \
-"posix/Atlantic/South_Georgia" " " \
-"posix/Atlantic/St_Helena" " " \
-"posix/Atlantic/Stanley" " " \
-"posix/Australia/ACT" " " \
-"posix/Australia/Adelaide" " " \
-"posix/Australia/Brisbane" " " \
-"posix/Australia/Broken_Hill" " " \
-"posix/Australia/Canberra" " " \
-"posix/Australia/Currie" " " \
-"posix/Australia/Darwin" " " \
-"posix/Australia/Hobart" " " \
-"posix/Australia/LHI" " " \
-"posix/Australia/Lindeman" " " \
-"posix/Australia/Lord_Howe" " " \
-"posix/Australia/Melbourne" " " \
-"posix/Australia/NSW" " " \
-"posix/Australia/North" " " \
-"posix/Australia/Perth" " " \
-"posix/Australia/Queensland" " " \
-"posix/Australia/South" " " \
-"posix/Australia/Sydney" " " \
-"posix/Australia/Tasmania" " " \
-"posix/Australia/Victoria" " " \
-"posix/Australia/West" " " \
-"posix/Australia/Yancowinna" " " \
-"posix/Brazil/Acre" " " \
-"posix/Brazil/DeNoronha" " " \
-"posix/Brazil/East" " " \
-"posix/Brazil/West" " " \
-"posix/CET" " " \
-"posix/CST6CDT" " " \
-"posix/Canada/Atlantic" " " \
-"posix/Canada/Central" " " \
-"posix/Canada/East-Saskatchewan" " " \
-"posix/Canada/Eastern" " " \
-"posix/Canada/Mountain" " " \
-"posix/Canada/Newfoundland" " " \
-"posix/Canada/Pacific" " " \
-"posix/Canada/Saskatchewan" " " \
-"posix/Canada/Yukon" " " \
-"posix/Chile/Continental" " " \
-"posix/Chile/EasterIsland" " " \
-"posix/Cuba" " " \
-"posix/EET" " " \
-"posix/EST" " " \
-"posix/EST5EDT" " " \
-"posix/Egypt" " " \
-"posix/Eire" " " \
-"posix/Etc/GMT" " " \
-"posix/Etc/GMT+0" " " \
-"posix/Etc/GMT+1" " " \
-"posix/Etc/GMT+10" " " \
-"posix/Etc/GMT+11" " " \
-"posix/Etc/GMT+12" " " \
-"posix/Etc/GMT+2" " " \
-"posix/Etc/GMT+3" " " \
-"posix/Etc/GMT+4" " " \
-"posix/Etc/GMT+5" " " \
-"posix/Etc/GMT+6" " " \
-"posix/Etc/GMT+7" " " \
-"posix/Etc/GMT+8" " " \
-"posix/Etc/GMT+9" " " \
-"posix/Etc/GMT-0" " " \
-"posix/Etc/GMT-1" " " \
-"posix/Etc/GMT-10" " " \
-"posix/Etc/GMT-11" " " \
-"posix/Etc/GMT-12" " " \
-"posix/Etc/GMT-13" " " \
-"posix/Etc/GMT-14" " " \
-"posix/Etc/GMT-2" " " \
-"posix/Etc/GMT-3" " " \
-"posix/Etc/GMT-4" " " \
-"posix/Etc/GMT-5" " " \
-"posix/Etc/GMT-6" " " \
-"posix/Etc/GMT-7" " " \
-"posix/Etc/GMT-8" " " \
-"posix/Etc/GMT-9" " " \
-"posix/Etc/GMT0" " " \
-"posix/Etc/Greenwich" " " \
-"posix/Etc/UCT" " " \
-"posix/Etc/UTC" " " \
-"posix/Etc/Universal" " " \
-"posix/Etc/Zulu" " " \
-"posix/Europe/Amsterdam" " " \
-"posix/Europe/Andorra" " " \
-"posix/Europe/Athens" " " \
-"posix/Europe/Belfast" " " \
-"posix/Europe/Belgrade" " " \
-"posix/Europe/Berlin" " " \
-"posix/Europe/Bratislava" " " \
-"posix/Europe/Brussels" " " \
-"posix/Europe/Bucharest" " " \
-"posix/Europe/Budapest" " " \
-"posix/Europe/Chisinau" " " \
-"posix/Europe/Copenhagen" " " \
-"posix/Europe/Dublin" " " \
-"posix/Europe/Gibraltar" " " \
-"posix/Europe/Guernsey" " " \
-"posix/Europe/Helsinki" " " \
-"posix/Europe/Isle_of_Man" " " \
-"posix/Europe/Istanbul" " " \
-"posix/Europe/Jersey" " " \
-"posix/Europe/Kaliningrad" " " \
-"posix/Europe/Kiev" " " \
-"posix/Europe/Lisbon" " " \
-"posix/Europe/Ljubljana" " " \
-"posix/Europe/London" " " \
-"posix/Europe/Luxembourg" " " \
-"posix/Europe/Madrid" " " \
-"posix/Europe/Malta" " " \
-"posix/Europe/Mariehamn" " " \
-"posix/Europe/Minsk" " " \
-"posix/Europe/Monaco" " " \
-"posix/Europe/Moscow" " " \
-"posix/Europe/Nicosia" " " \
-"posix/Europe/Oslo" " " \
-"posix/Europe/Paris" " " \
-"posix/Europe/Podgorica" " " \
-"posix/Europe/Prague" " " \
-"posix/Europe/Riga" " " \
-"posix/Europe/Rome" " " \
-"posix/Europe/Samara" " " \
-"posix/Europe/San_Marino" " " \
-"posix/Europe/Sarajevo" " " \
-"posix/Europe/Simferopol" " " \
-"posix/Europe/Skopje" " " \
-"posix/Europe/Sofia" " " \
-"posix/Europe/Stockholm" " " \
-"posix/Europe/Tallinn" " " \
-"posix/Europe/Tirane" " " \
-"posix/Europe/Tiraspol" " " \
-"posix/Europe/Uzhgorod" " " \
-"posix/Europe/Vaduz" " " \
-"posix/Europe/Vatican" " " \
-"posix/Europe/Vienna" " " \
-"posix/Europe/Vilnius" " " \
-"posix/Europe/Volgograd" " " \
-"posix/Europe/Warsaw" " " \
-"posix/Europe/Zagreb" " " \
-"posix/Europe/Zaporozhye" " " \
-"posix/Europe/Zurich" " " \
-"posix/Factory" " " \
-"posix/GB" " " \
-"posix/GB-Eire" " " \
-"posix/GMT" " " \
-"posix/GMT+0" " " \
-"posix/GMT-0" " " \
-"posix/GMT0" " " \
-"posix/Greenwich" " " \
-"posix/HST" " " \
-"posix/Hongkong" " " \
-"posix/Iceland" " " \
-"posix/Indian/Antananarivo" " " \
-"posix/Indian/Chagos" " " \
-"posix/Indian/Christmas" " " \
-"posix/Indian/Cocos" " " \
-"posix/Indian/Comoro" " " \
-"posix/Indian/Kerguelen" " " \
-"posix/Indian/Mahe" " " \
-"posix/Indian/Maldives" " " \
-"posix/Indian/Mauritius" " " \
-"posix/Indian/Mayotte" " " \
-"posix/Indian/Reunion" " " \
-"posix/Iran" " " \
-"posix/Israel" " " \
-"posix/Jamaica" " " \
-"posix/Japan" " " \
-"posix/Kwajalein" " " \
-"posix/Libya" " " \
-"posix/MET" " " \
-"posix/MST" " " \
-"posix/MST7MDT" " " \
-"posix/Mexico/BajaNorte" " " \
-"posix/Mexico/BajaSur" " " \
-"posix/Mexico/General" " " \
-"posix/Mideast/Riyadh87" " " \
-"posix/Mideast/Riyadh88" " " \
-"posix/Mideast/Riyadh89" " " \
-"posix/NZ" " " \
-"posix/NZ-CHAT" " " \
-"posix/Navajo" " " \
-"posix/PRC" " " \
-"posix/PST8PDT" " " \
-"posix/Pacific/Apia" " " \
-"posix/Pacific/Auckland" " " \
-"posix/Pacific/Chatham" " " \
-"posix/Pacific/Easter" " " \
-"posix/Pacific/Efate" " " \
-"posix/Pacific/Enderbury" " " \
-"posix/Pacific/Fakaofo" " " \
-"posix/Pacific/Fiji" " " \
-"posix/Pacific/Funafuti" " " \
-"posix/Pacific/Galapagos" " " \
-"posix/Pacific/Gambier" " " \
-"posix/Pacific/Guadalcanal" " " \
-"posix/Pacific/Guam" " " \
-"posix/Pacific/Honolulu" " " \
-"posix/Pacific/Johnston" " " \
-"posix/Pacific/Kiritimati" " " \
-"posix/Pacific/Kosrae" " " \
-"posix/Pacific/Kwajalein" " " \
-"posix/Pacific/Majuro" " " \
-"posix/Pacific/Marquesas" " " \
-"posix/Pacific/Midway" " " \
-"posix/Pacific/Nauru" " " \
-"posix/Pacific/Niue" " " \
-"posix/Pacific/Norfolk" " " \
-"posix/Pacific/Noumea" " " \
-"posix/Pacific/Pago_Pago" " " \
-"posix/Pacific/Palau" " " \
-"posix/Pacific/Pitcairn" " " \
-"posix/Pacific/Ponape" " " \
-"posix/Pacific/Port_Moresby" " " \
-"posix/Pacific/Rarotonga" " " \
-"posix/Pacific/Saipan" " " \
-"posix/Pacific/Samoa" " " \
-"posix/Pacific/Tahiti" " " \
-"posix/Pacific/Tarawa" " " \
-"posix/Pacific/Tongatapu" " " \
-"posix/Pacific/Truk" " " \
-"posix/Pacific/Wake" " " \
-"posix/Pacific/Wallis" " " \
-"posix/Pacific/Yap" " " \
-"posix/Poland" " " \
-"posix/Portugal" " " \
-"posix/ROC" " " \
-"posix/ROK" " " \
-"posix/Singapore" " " \
-"posix/Turkey" " " \
-"posix/UCT" " " \
-"posix/US/Alaska" " " \
-"posix/US/Aleutian" " " \
-"posix/US/Arizona" " " \
-"posix/US/Central" " " \
-"posix/US/East-Indiana" " " \
-"posix/US/Eastern" " " \
-"posix/US/Hawaii" " " \
-"posix/US/Indiana-Starke" " " \
-"posix/US/Michigan" " " \
-"posix/US/Mountain" " " \
-"posix/US/Pacific" " " \
-"posix/US/Pacific-New" " " \
-"posix/US/Samoa" " " \
-"posix/UTC" " " \
-"posix/Universal" " " \
-"posix/W-SU" " " \
-"posix/WET" " " \
-"posix/Zulu" " " \
-"posixrules" " " \
-"right/Africa/Abidjan" " " \
-"right/Africa/Accra" " " \
-"right/Africa/Addis_Ababa" " " \
-"right/Africa/Algiers" " " \
-"right/Africa/Asmera" " " \
-"right/Africa/Bamako" " " \
-"right/Africa/Bangui" " " \
-"right/Africa/Banjul" " " \
-"right/Africa/Bissau" " " \
-"right/Africa/Blantyre" " " \
-"right/Africa/Brazzaville" " " \
-"right/Africa/Bujumbura" " " \
-"right/Africa/Cairo" " " \
-"right/Africa/Casablanca" " " \
-"right/Africa/Ceuta" " " \
-"right/Africa/Conakry" " " \
-"right/Africa/Dakar" " " \
-"right/Africa/Dar_es_Salaam" " " \
-"right/Africa/Djibouti" " " \
-"right/Africa/Douala" " " \
-"right/Africa/El_Aaiun" " " \
-"right/Africa/Freetown" " " \
-"right/Africa/Gaborone" " " \
-"right/Africa/Harare" " " \
-"right/Africa/Johannesburg" " " \
-"right/Africa/Kampala" " " \
-"right/Africa/Khartoum" " " \
-"right/Africa/Kigali" " " \
-"right/Africa/Kinshasa" " " \
-"right/Africa/Lagos" " " \
-"right/Africa/Libreville" " " \
-"right/Africa/Lome" " " \
-"right/Africa/Luanda" " " \
-"right/Africa/Lubumbashi" " " \
-"right/Africa/Lusaka" " " \
-"right/Africa/Malabo" " " \
-"right/Africa/Maputo" " " \
-"right/Africa/Maseru" " " \
-"right/Africa/Mbabane" " " \
-"right/Africa/Mogadishu" " " \
-"right/Africa/Monrovia" " " \
-"right/Africa/Nairobi" " " \
-"right/Africa/Ndjamena" " " \
-"right/Africa/Niamey" " " \
-"right/Africa/Nouakchott" " " \
-"right/Africa/Ouagadougou" " " \
-"right/Africa/Porto-Novo" " " \
-"right/Africa/Sao_Tome" " " \
-"right/Africa/Timbuktu" " " \
-"right/Africa/Tripoli" " " \
-"right/Africa/Tunis" " " \
-"right/Africa/Windhoek" " " \
-"right/America/Adak" " " \
-"right/America/Anchorage" " " \
-"right/America/Anguilla" " " \
-"right/America/Antigua" " " \
-"right/America/Araguaina" " " \
-"right/America/Argentina/Buenos_Aires" " " \
-"right/America/Argentina/Catamarca" " " \
-"right/America/Argentina/ComodRivadavia" " " \
-"right/America/Argentina/Cordoba" " " \
-"right/America/Argentina/Jujuy" " " \
-"right/America/Argentina/La_Rioja" " " \
-"right/America/Argentina/Mendoza" " " \
-"right/America/Argentina/Rio_Gallegos" " " \
-"right/America/Argentina/San_Juan" " " \
-"right/America/Argentina/Tucuman" " " \
-"right/America/Argentina/Ushuaia" " " \
-"right/America/Aruba" " " \
-"right/America/Asuncion" " " \
-"right/America/Atikokan" " " \
-"right/America/Atka" " " \
-"right/America/Bahia" " " \
-"right/America/Barbados" " " \
-"right/America/Belem" " " \
-"right/America/Belize" " " \
-"right/America/Blanc-Sablon" " " \
-"right/America/Boa_Vista" " " \
-"right/America/Bogota" " " \
-"right/America/Boise" " " \
-"right/America/Buenos_Aires" " " \
-"right/America/Cambridge_Bay" " " \
-"right/America/Campo_Grande" " " \
-"right/America/Cancun" " " \
-"right/America/Caracas" " " \
-"right/America/Catamarca" " " \
-"right/America/Cayenne" " " \
-"right/America/Cayman" " " \
-"right/America/Chicago" " " \
-"right/America/Chihuahua" " " \
-"right/America/Coral_Harbour" " " \
-"right/America/Cordoba" " " \
-"right/America/Costa_Rica" " " \
-"right/America/Cuiaba" " " \
-"right/America/Curacao" " " \
-"right/America/Danmarkshavn" " " \
-"right/America/Dawson" " " \
-"right/America/Dawson_Creek" " " \
-"right/America/Denver" " " \
-"right/America/Detroit" " " \
-"right/America/Dominica" " " \
-"right/America/Edmonton" " " \
-"right/America/Eirunepe" " " \
-"right/America/El_Salvador" " " \
-"right/America/Ensenada" " " \
-"right/America/Fort_Wayne" " " \
-"right/America/Fortaleza" " " \
-"right/America/Glace_Bay" " " \
-"right/America/Godthab" " " \
-"right/America/Goose_Bay" " " \
-"right/America/Grand_Turk" " " \
-"right/America/Grenada" " " \
-"right/America/Guadeloupe" " " \
-"right/America/Guatemala" " " \
-"right/America/Guayaquil" " " \
-"right/America/Guyana" " " \
-"right/America/Halifax" " " \
-"right/America/Havana" " " \
-"right/America/Hermosillo" " " \
-"right/America/Indiana/Indianapolis" " " \
-"right/America/Indiana/Knox" " " \
-"right/America/Indiana/Marengo" " " \
-"right/America/Indiana/Petersburg" " " \
-"right/America/Indiana/Tell_City" " " \
-"right/America/Indiana/Vevay" " " \
-"right/America/Indiana/Vincennes" " " \
-"right/America/Indianapolis" " " \
-"right/America/Inuvik" " " \
-"right/America/Iqaluit" " " \
-"right/America/Jamaica" " " \
-"right/America/Jujuy" " " \
-"right/America/Juneau" " " \
-"right/America/Kentucky/Louisville" " " \
-"right/America/Kentucky/Monticello" " " \
-"right/America/Knox_IN" " " \
-"right/America/La_Paz" " " \
-"right/America/Lima" " " \
-"right/America/Los_Angeles" " " \
-"right/America/Louisville" " " \
-"right/America/Maceio" " " \
-"right/America/Managua" " " \
-"right/America/Manaus" " " \
-"right/America/Martinique" " " \
-"right/America/Mazatlan" " " \
-"right/America/Mendoza" " " \
-"right/America/Menominee" " " \
-"right/America/Merida" " " \
-"right/America/Mexico_City" " " \
-"right/America/Miquelon" " " \
-"right/America/Moncton" " " \
-"right/America/Monterrey" " " \
-"right/America/Montevideo" " " \
-"right/America/Montreal" " " \
-"right/America/Montserrat" " " \
-"right/America/Nassau" " " \
-"right/America/New_York" " " \
-"right/America/Nipigon" " " \
-"right/America/Nome" " " \
-"right/America/Noronha" " " \
-"right/America/North_Dakota/Center" " " \
-"right/America/North_Dakota/New_Salem" " " \
-"right/America/Panama" " " \
-"right/America/Pangnirtung" " " \
-"right/America/Paramaribo" " " \
-"right/America/Phoenix" " " \
-"right/America/Port-au-Prince" " " \
-"right/America/Port_of_Spain" " " \
-"right/America/Porto_Acre" " " \
-"right/America/Porto_Velho" " " \
-"right/America/Puerto_Rico" " " \
-"right/America/Rainy_River" " " \
-"right/America/Rankin_Inlet" " " \
-"right/America/Recife" " " \
-"right/America/Regina" " " \
-"right/America/Rio_Branco" " " \
-"right/America/Rosario" " " \
-"right/America/Santiago" " " \
-"right/America/Santo_Domingo" " " \
-"right/America/Sao_Paulo" " " \
-"right/America/Scoresbysund" " " \
-"right/America/Shiprock" " " \
-"right/America/St_Johns" " " \
-"right/America/St_Kitts" " " \
-"right/America/St_Lucia" " " \
-"right/America/St_Thomas" " " \
-"right/America/St_Vincent" " " \
-"right/America/Swift_Current" " " \
-"right/America/Tegucigalpa" " " \
-"right/America/Thule" " " \
-"right/America/Thunder_Bay" " " \
-"right/America/Tijuana" " " \
-"right/America/Toronto" " " \
-"right/America/Tortola" " " \
-"right/America/Vancouver" " " \
-"right/America/Virgin" " " \
-"right/America/Whitehorse" " " \
-"right/America/Winnipeg" " " \
-"right/America/Yakutat" " " \
-"right/America/Yellowknife" " " \
-"right/Antarctica/Casey" " " \
-"right/Antarctica/Davis" " " \
-"right/Antarctica/DumontDUrville" " " \
-"right/Antarctica/Mawson" " " \
-"right/Antarctica/McMurdo" " " \
-"right/Antarctica/Palmer" " " \
-"right/Antarctica/Rothera" " " \
-"right/Antarctica/South_Pole" " " \
-"right/Antarctica/Syowa" " " \
-"right/Antarctica/Vostok" " " \
-"right/Arctic/Longyearbyen" " " \
-"right/Asia/Aden" " " \
-"right/Asia/Almaty" " " \
-"right/Asia/Amman" " " \
-"right/Asia/Anadyr" " " \
-"right/Asia/Aqtau" " " \
-"right/Asia/Aqtobe" " " \
-"right/Asia/Ashgabat" " " \
-"right/Asia/Ashkhabad" " " \
-"right/Asia/Baghdad" " " \
-"right/Asia/Bahrain" " " \
-"right/Asia/Baku" " " \
-"right/Asia/Bangkok" " " \
-"right/Asia/Beirut" " " \
-"right/Asia/Bishkek" " " \
-"right/Asia/Brunei" " " \
-"right/Asia/Calcutta" " " \
-"right/Asia/Choibalsan" " " \
-"right/Asia/Chongqing" " " \
-"right/Asia/Chungking" " " \
-"right/Asia/Colombo" " " \
-"right/Asia/Dacca" " " \
-"right/Asia/Damascus" " " \
-"right/Asia/Dhaka" " " \
-"right/Asia/Dili" " " \
-"right/Asia/Dubai" " " \
-"right/Asia/Dushanbe" " " \
-"right/Asia/Gaza" " " \
-"right/Asia/Harbin" " " \
-"right/Asia/Hong_Kong" " " \
-"right/Asia/Hovd" " " \
-"right/Asia/Irkutsk" " " \
-"right/Asia/Istanbul" " " \
-"right/Asia/Jakarta" " " \
-"right/Asia/Jayapura" " " \
-"right/Asia/Jerusalem" " " \
-"right/Asia/Kabul" " " \
-"right/Asia/Kamchatka" " " \
-"right/Asia/Karachi" " " \
-"right/Asia/Kashgar" " " \
-"right/Asia/Katmandu" " " \
-"right/Asia/Krasnoyarsk" " " \
-"right/Asia/Kuala_Lumpur" " " \
-"right/Asia/Kuching" " " \
-"right/Asia/Kuwait" " " \
-"right/Asia/Macao" " " \
-"right/Asia/Macau" " " \
-"right/Asia/Magadan" " " \
-"right/Asia/Makassar" " " \
-"right/Asia/Manila" " " \
-"right/Asia/Muscat" " " \
-"right/Asia/Nicosia" " " \
-"right/Asia/Novosibirsk" " " \
-"right/Asia/Omsk" " " \
-"right/Asia/Oral" " " \
-"right/Asia/Phnom_Penh" " " \
-"right/Asia/Pontianak" " " \
-"right/Asia/Pyongyang" " " \
-"right/Asia/Qatar" " " \
-"right/Asia/Qyzylorda" " " \
-"right/Asia/Rangoon" " " \
-"right/Asia/Riyadh" " " \
-"right/Asia/Riyadh87" " " \
-"right/Asia/Riyadh88" " " \
-"right/Asia/Riyadh89" " " \
-"right/Asia/Saigon" " " \
-"right/Asia/Sakhalin" " " \
-"right/Asia/Samarkand" " " \
-"right/Asia/Seoul" " " \
-"right/Asia/Shanghai" " " \
-"right/Asia/Singapore" " " \
-"right/Asia/Taipei" " " \
-"right/Asia/Tashkent" " " \
-"right/Asia/Tbilisi" " " \
-"right/Asia/Tehran" " " \
-"right/Asia/Tel_Aviv" " " \
-"right/Asia/Thimbu" " " \
-"right/Asia/Thimphu" " " \
-"right/Asia/Tokyo" " " \
-"right/Asia/Ujung_Pandang" " " \
-"right/Asia/Ulaanbaatar" " " \
-"right/Asia/Ulan_Bator" " " \
-"right/Asia/Urumqi" " " \
-"right/Asia/Vientiane" " " \
-"right/Asia/Vladivostok" " " \
-"right/Asia/Yakutsk" " " \
-"right/Asia/Yekaterinburg" " " \
-"right/Asia/Yerevan" " " \
-"right/Atlantic/Azores" " " \
-"right/Atlantic/Bermuda" " " \
-"right/Atlantic/Canary" " " \
-"right/Atlantic/Cape_Verde" " " \
-"right/Atlantic/Faeroe" " " \
-"right/Atlantic/Jan_Mayen" " " \
-"right/Atlantic/Madeira" " " \
-"right/Atlantic/Reykjavik" " " \
-"right/Atlantic/South_Georgia" " " \
-"right/Atlantic/St_Helena" " " \
-"right/Atlantic/Stanley" " " \
-"right/Australia/ACT" " " \
-"right/Australia/Adelaide" " " \
-"right/Australia/Brisbane" " " \
-"right/Australia/Broken_Hill" " " \
-"right/Australia/Canberra" " " \
-"right/Australia/Currie" " " \
-"right/Australia/Darwin" " " \
-"right/Australia/Hobart" " " \
-"right/Australia/LHI" " " \
-"right/Australia/Lindeman" " " \
-"right/Australia/Lord_Howe" " " \
-"right/Australia/Melbourne" " " \
-"right/Australia/NSW" " " \
-"right/Australia/North" " " \
-"right/Australia/Perth" " " \
-"right/Australia/Queensland" " " \
-"right/Australia/South" " " \
-"right/Australia/Sydney" " " \
-"right/Australia/Tasmania" " " \
-"right/Australia/Victoria" " " \
-"right/Australia/West" " " \
-"right/Australia/Yancowinna" " " \
-"right/Brazil/Acre" " " \
-"right/Brazil/DeNoronha" " " \
-"right/Brazil/East" " " \
-"right/Brazil/West" " " \
-"right/CET" " " \
-"right/CST6CDT" " " \
-"right/Canada/Atlantic" " " \
-"right/Canada/Central" " " \
-"right/Canada/East-Saskatchewan" " " \
-"right/Canada/Eastern" " " \
-"right/Canada/Mountain" " " \
-"right/Canada/Newfoundland" " " \
-"right/Canada/Pacific" " " \
-"right/Canada/Saskatchewan" " " \
-"right/Canada/Yukon" " " \
-"right/Chile/Continental" " " \
-"right/Chile/EasterIsland" " " \
-"right/Cuba" " " \
-"right/EET" " " \
-"right/EST" " " \
-"right/EST5EDT" " " \
-"right/Egypt" " " \
-"right/Eire" " " \
-"right/Etc/GMT" " " \
-"right/Etc/GMT+0" " " \
-"right/Etc/GMT+1" " " \
-"right/Etc/GMT+10" " " \
-"right/Etc/GMT+11" " " \
-"right/Etc/GMT+12" " " \
-"right/Etc/GMT+2" " " \
-"right/Etc/GMT+3" " " \
-"right/Etc/GMT+4" " " \
-"right/Etc/GMT+5" " " \
-"right/Etc/GMT+6" " " \
-"right/Etc/GMT+7" " " \
-"right/Etc/GMT+8" " " \
-"right/Etc/GMT+9" " " \
-"right/Etc/GMT-0" " " \
-"right/Etc/GMT-1" " " \
-"right/Etc/GMT-10" " " \
-"right/Etc/GMT-11" " " \
-"right/Etc/GMT-12" " " \
-"right/Etc/GMT-13" " " \
-"right/Etc/GMT-14" " " \
-"right/Etc/GMT-2" " " \
-"right/Etc/GMT-3" " " \
-"right/Etc/GMT-4" " " \
-"right/Etc/GMT-5" " " \
-"right/Etc/GMT-6" " " \
-"right/Etc/GMT-7" " " \
-"right/Etc/GMT-8" " " \
-"right/Etc/GMT-9" " " \
-"right/Etc/GMT0" " " \
-"right/Etc/Greenwich" " " \
-"right/Etc/UCT" " " \
-"right/Etc/UTC" " " \
-"right/Etc/Universal" " " \
-"right/Etc/Zulu" " " \
-"right/Europe/Amsterdam" " " \
-"right/Europe/Andorra" " " \
-"right/Europe/Athens" " " \
-"right/Europe/Belfast" " " \
-"right/Europe/Belgrade" " " \
-"right/Europe/Berlin" " " \
-"right/Europe/Bratislava" " " \
-"right/Europe/Brussels" " " \
-"right/Europe/Bucharest" " " \
-"right/Europe/Budapest" " " \
-"right/Europe/Chisinau" " " \
-"right/Europe/Copenhagen" " " \
-"right/Europe/Dublin" " " \
-"right/Europe/Gibraltar" " " \
-"right/Europe/Guernsey" " " \
-"right/Europe/Helsinki" " " \
-"right/Europe/Isle_of_Man" " " \
-"right/Europe/Istanbul" " " \
-"right/Europe/Jersey" " " \
-"right/Europe/Kaliningrad" " " \
-"right/Europe/Kiev" " " \
-"right/Europe/Lisbon" " " \
-"right/Europe/Ljubljana" " " \
-"right/Europe/London" " " \
-"right/Europe/Luxembourg" " " \
-"right/Europe/Madrid" " " \
-"right/Europe/Malta" " " \
-"right/Europe/Mariehamn" " " \
-"right/Europe/Minsk" " " \
-"right/Europe/Monaco" " " \
-"right/Europe/Moscow" " " \
-"right/Europe/Nicosia" " " \
-"right/Europe/Oslo" " " \
-"right/Europe/Paris" " " \
-"right/Europe/Podgorica" " " \
-"right/Europe/Prague" " " \
-"right/Europe/Riga" " " \
-"right/Europe/Rome" " " \
-"right/Europe/Samara" " " \
-"right/Europe/San_Marino" " " \
-"right/Europe/Sarajevo" " " \
-"right/Europe/Simferopol" " " \
-"right/Europe/Skopje" " " \
-"right/Europe/Sofia" " " \
-"right/Europe/Stockholm" " " \
-"right/Europe/Tallinn" " " \
-"right/Europe/Tirane" " " \
-"right/Europe/Tiraspol" " " \
-"right/Europe/Uzhgorod" " " \
-"right/Europe/Vaduz" " " \
-"right/Europe/Vatican" " " \
-"right/Europe/Vienna" " " \
-"right/Europe/Vilnius" " " \
-"right/Europe/Volgograd" " " \
-"right/Europe/Warsaw" " " \
-"right/Europe/Zagreb" " " \
-"right/Europe/Zaporozhye" " " \
-"right/Europe/Zurich" " " \
-"right/Factory" " " \
-"right/GB" " " \
-"right/GB-Eire" " " \
-"right/GMT" " " \
-"right/GMT+0" " " \
-"right/GMT-0" " " \
-"right/GMT0" " " \
-"right/Greenwich" " " \
-"right/HST" " " \
-"right/Hongkong" " " \
-"right/Iceland" " " \
-"right/Indian/Antananarivo" " " \
-"right/Indian/Chagos" " " \
-"right/Indian/Christmas" " " \
-"right/Indian/Cocos" " " \
-"right/Indian/Comoro" " " \
-"right/Indian/Kerguelen" " " \
-"right/Indian/Mahe" " " \
-"right/Indian/Maldives" " " \
-"right/Indian/Mauritius" " " \
-"right/Indian/Mayotte" " " \
-"right/Indian/Reunion" " " \
-"right/Iran" " " \
-"right/Israel" " " \
-"right/Jamaica" " " \
-"right/Japan" " " \
-"right/Kwajalein" " " \
-"right/Libya" " " \
-"right/MET" " " \
-"right/MST" " " \
-"right/MST7MDT" " " \
-"right/Mexico/BajaNorte" " " \
-"right/Mexico/BajaSur" " " \
-"right/Mexico/General" " " \
-"right/Mideast/Riyadh87" " " \
-"right/Mideast/Riyadh88" " " \
-"right/Mideast/Riyadh89" " " \
-"right/NZ" " " \
-"right/NZ-CHAT" " " \
-"right/Navajo" " " \
-"right/PRC" " " \
-"right/PST8PDT" " " \
-"right/Pacific/Apia" " " \
-"right/Pacific/Auckland" " " \
-"right/Pacific/Chatham" " " \
-"right/Pacific/Easter" " " \
-"right/Pacific/Efate" " " \
-"right/Pacific/Enderbury" " " \
-"right/Pacific/Fakaofo" " " \
-"right/Pacific/Fiji" " " \
-"right/Pacific/Funafuti" " " \
-"right/Pacific/Galapagos" " " \
-"right/Pacific/Gambier" " " \
-"right/Pacific/Guadalcanal" " " \
-"right/Pacific/Guam" " " \
-"right/Pacific/Honolulu" " " \
-"right/Pacific/Johnston" " " \
-"right/Pacific/Kiritimati" " " \
-"right/Pacific/Kosrae" " " \
-"right/Pacific/Kwajalein" " " \
-"right/Pacific/Majuro" " " \
-"right/Pacific/Marquesas" " " \
-"right/Pacific/Midway" " " \
-"right/Pacific/Nauru" " " \
-"right/Pacific/Niue" " " \
-"right/Pacific/Norfolk" " " \
-"right/Pacific/Noumea" " " \
-"right/Pacific/Pago_Pago" " " \
-"right/Pacific/Palau" " " \
-"right/Pacific/Pitcairn" " " \
-"right/Pacific/Ponape" " " \
-"right/Pacific/Port_Moresby" " " \
-"right/Pacific/Rarotonga" " " \
-"right/Pacific/Saipan" " " \
-"right/Pacific/Samoa" " " \
-"right/Pacific/Tahiti" " " \
-"right/Pacific/Tarawa" " " \
-"right/Pacific/Tongatapu" " " \
-"right/Pacific/Truk" " " \
-"right/Pacific/Wake" " " \
-"right/Pacific/Wallis" " " \
-"right/Pacific/Yap" " " \
-"right/Poland" " " \
-"right/Portugal" " " \
-"right/ROC" " " \
-"right/ROK" " " \
-"right/Singapore" " " \
-"right/Turkey" " " \
-"right/UCT" " " \
-"right/US/Alaska" " " \
-"right/US/Aleutian" " " \
-"right/US/Arizona" " " \
-"right/US/Central" " " \
-"right/US/East-Indiana" " " \
-"right/US/Eastern" " " \
-"right/US/Hawaii" " " \
-"right/US/Indiana-Starke" " " \
-"right/US/Michigan" " " \
-"right/US/Mountain" " " \
-"right/US/Pacific" " " \
-"right/US/Pacific-New" " " \
-"right/US/Samoa" " " \
-"right/UTC" " " \
-"right/Universal" " " \
-"right/W-SU" " " \
-"right/WET" " " \
-"right/Zulu" " " \
diff --git a/source/l/glibc/timezone-scripts/parts/02 b/source/l/glibc/timezone-scripts/parts/02
deleted file mode 100644
index bd5a50bb0..000000000
--- a/source/l/glibc/timezone-scripts/parts/02
+++ /dev/null
@@ -1,28 +0,0 @@
- 2> $TMP/tz
-
- if [ $? = 1 -o $? = 255 ]; then
- rm -f $TMP/tz
- exit
- fi
-
- TIMEZONE="`cat $TMP/tz`"
- rm -f $TMP/tz
-
- setzone $TIMEZONE
- exit
-else
- ###
- ### use text prompts
- ###
- while [ 0 ]; do
- echo -n "Would you like to configure your timezone ([y]es, [n]o)? "
- read TIMECONF;
- echo
-
- if [ "$TIMECONF" = "n" ]; then
- break
- fi
-
- cat << EOF
-Select one of these timezones:
-
diff --git a/source/l/glibc/timezone-scripts/parts/03 b/source/l/glibc/timezone-scripts/parts/03
deleted file mode 100644
index f9a201ab7..000000000
--- a/source/l/glibc/timezone-scripts/parts/03
+++ /dev/null
@@ -1,1664 +0,0 @@
-US/Alaska
-US/Aleutian
-US/Arizona
-US/Central
-US/East-Indiana
-US/Eastern
-US/Hawaii
-US/Indiana-Starke
-US/Michigan
-US/Mountain
-US/Pacific
-US/Pacific-New
-US/Samoa
-Africa/Abidjan
-Africa/Accra
-Africa/Addis_Ababa
-Africa/Algiers
-Africa/Asmera
-Africa/Bamako
-Africa/Bangui
-Africa/Banjul
-Africa/Bissau
-Africa/Blantyre
-Africa/Brazzaville
-Africa/Bujumbura
-Africa/Cairo
-Africa/Casablanca
-Africa/Ceuta
-Africa/Conakry
-Africa/Dakar
-Africa/Dar_es_Salaam
-Africa/Djibouti
-Africa/Douala
-Africa/El_Aaiun
-Africa/Freetown
-Africa/Gaborone
-Africa/Harare
-Africa/Johannesburg
-Africa/Kampala
-Africa/Khartoum
-Africa/Kigali
-Africa/Kinshasa
-Africa/Lagos
-Africa/Libreville
-Africa/Lome
-Africa/Luanda
-Africa/Lubumbashi
-Africa/Lusaka
-Africa/Malabo
-Africa/Maputo
-Africa/Maseru
-Africa/Mbabane
-Africa/Mogadishu
-Africa/Monrovia
-Africa/Nairobi
-Africa/Ndjamena
-Africa/Niamey
-Africa/Nouakchott
-Africa/Ouagadougou
-Africa/Porto-Novo
-Africa/Sao_Tome
-Africa/Timbuktu
-Africa/Tripoli
-Africa/Tunis
-Africa/Windhoek
-America/Adak
-America/Anchorage
-America/Anguilla
-America/Antigua
-America/Araguaina
-America/Argentina/Buenos_Aires
-America/Argentina/Catamarca
-America/Argentina/ComodRivadavia
-America/Argentina/Cordoba
-America/Argentina/Jujuy
-America/Argentina/La_Rioja
-America/Argentina/Mendoza
-America/Argentina/Rio_Gallegos
-America/Argentina/San_Juan
-America/Argentina/Tucuman
-America/Argentina/Ushuaia
-America/Aruba
-America/Asuncion
-America/Atikokan
-America/Atka
-America/Bahia
-America/Barbados
-America/Belem
-America/Belize
-America/Blanc-Sablon
-America/Boa_Vista
-America/Bogota
-America/Boise
-America/Buenos_Aires
-America/Cambridge_Bay
-America/Campo_Grande
-America/Cancun
-America/Caracas
-America/Catamarca
-America/Cayenne
-America/Cayman
-America/Chicago
-America/Chihuahua
-America/Coral_Harbour
-America/Cordoba
-America/Costa_Rica
-America/Cuiaba
-America/Curacao
-America/Danmarkshavn
-America/Dawson
-America/Dawson_Creek
-America/Denver
-America/Detroit
-America/Dominica
-America/Edmonton
-America/Eirunepe
-America/El_Salvador
-America/Ensenada
-America/Fort_Wayne
-America/Fortaleza
-America/Glace_Bay
-America/Godthab
-America/Goose_Bay
-America/Grand_Turk
-America/Grenada
-America/Guadeloupe
-America/Guatemala
-America/Guayaquil
-America/Guyana
-America/Halifax
-America/Havana
-America/Hermosillo
-America/Indiana/Indianapolis
-America/Indiana/Knox
-America/Indiana/Marengo
-America/Indiana/Petersburg
-America/Indiana/Tell_City
-America/Indiana/Vevay
-America/Indiana/Vincennes
-America/Indianapolis
-America/Inuvik
-America/Iqaluit
-America/Jamaica
-America/Jujuy
-America/Juneau
-America/Kentucky/Louisville
-America/Kentucky/Monticello
-America/Knox_IN
-America/La_Paz
-America/Lima
-America/Los_Angeles
-America/Louisville
-America/Maceio
-America/Managua
-America/Manaus
-America/Martinique
-America/Mazatlan
-America/Mendoza
-America/Menominee
-America/Merida
-America/Mexico_City
-America/Miquelon
-America/Moncton
-America/Monterrey
-America/Montevideo
-America/Montreal
-America/Montserrat
-America/Nassau
-America/New_York
-America/Nipigon
-America/Nome
-America/Noronha
-America/North_Dakota/Center
-America/North_Dakota/New_Salem
-America/Panama
-America/Pangnirtung
-America/Paramaribo
-America/Phoenix
-America/Port-au-Prince
-America/Port_of_Spain
-America/Porto_Acre
-America/Porto_Velho
-America/Puerto_Rico
-America/Rainy_River
-America/Rankin_Inlet
-America/Recife
-America/Regina
-America/Rio_Branco
-America/Rosario
-America/Santiago
-America/Santo_Domingo
-America/Sao_Paulo
-America/Scoresbysund
-America/Shiprock
-America/St_Johns
-America/St_Kitts
-America/St_Lucia
-America/St_Thomas
-America/St_Vincent
-America/Swift_Current
-America/Tegucigalpa
-America/Thule
-America/Thunder_Bay
-America/Tijuana
-America/Toronto
-America/Tortola
-America/Vancouver
-America/Virgin
-America/Whitehorse
-America/Winnipeg
-America/Yakutat
-America/Yellowknife
-Antarctica/Casey
-Antarctica/Davis
-Antarctica/DumontDUrville
-Antarctica/Mawson
-Antarctica/McMurdo
-Antarctica/Palmer
-Antarctica/Rothera
-Antarctica/South_Pole
-Antarctica/Syowa
-Antarctica/Vostok
-Arctic/Longyearbyen
-Asia/Aden
-Asia/Almaty
-Asia/Amman
-Asia/Anadyr
-Asia/Aqtau
-Asia/Aqtobe
-Asia/Ashgabat
-Asia/Ashkhabad
-Asia/Baghdad
-Asia/Bahrain
-Asia/Baku
-Asia/Bangkok
-Asia/Beirut
-Asia/Bishkek
-Asia/Brunei
-Asia/Calcutta
-Asia/Choibalsan
-Asia/Chongqing
-Asia/Chungking
-Asia/Colombo
-Asia/Dacca
-Asia/Damascus
-Asia/Dhaka
-Asia/Dili
-Asia/Dubai
-Asia/Dushanbe
-Asia/Gaza
-Asia/Harbin
-Asia/Hong_Kong
-Asia/Hovd
-Asia/Irkutsk
-Asia/Istanbul
-Asia/Jakarta
-Asia/Jayapura
-Asia/Jerusalem
-Asia/Kabul
-Asia/Kamchatka
-Asia/Karachi
-Asia/Kashgar
-Asia/Katmandu
-Asia/Khandyga
-Asia/Kolkata
-Asia/Krasnoyarsk
-Asia/Kuala_Lumpur
-Asia/Kuching
-Asia/Kuwait
-Asia/Macao
-Asia/Macau
-Asia/Magadan
-Asia/Makassar
-Asia/Manila
-Asia/Muscat
-Asia/Nicosia
-Asia/Novosibirsk
-Asia/Omsk
-Asia/Oral
-Asia/Phnom_Penh
-Asia/Pontianak
-Asia/Pyongyang
-Asia/Qatar
-Asia/Qyzylorda
-Asia/Rangoon
-Asia/Riyadh
-Asia/Riyadh87
-Asia/Riyadh88
-Asia/Riyadh89
-Asia/Saigon
-Asia/Sakhalin
-Asia/Samarkand
-Asia/Seoul
-Asia/Shanghai
-Asia/Singapore
-Asia/Taipei
-Asia/Tashkent
-Asia/Tbilisi
-Asia/Tehran
-Asia/Tel_Aviv
-Asia/Thimbu
-Asia/Thimphu
-Asia/Tokyo
-Asia/Ujung_Pandang
-Asia/Ulaanbaatar
-Asia/Ulan_Bator
-Asia/Urumqi
-Asia/Ust-Nera
-Asia/Vientiane
-Asia/Vladivostok
-Asia/Yakutsk
-Asia/Yekaterinburg
-Asia/Yerevan
-Atlantic/Azores
-Atlantic/Bermuda
-Atlantic/Canary
-Atlantic/Cape_Verde
-Atlantic/Faeroe
-Atlantic/Jan_Mayen
-Atlantic/Madeira
-Atlantic/Reykjavik
-Atlantic/South_Georgia
-Atlantic/St_Helena
-Atlantic/Stanley
-Australia/ACT
-Australia/Adelaide
-Australia/Brisbane
-Australia/Broken_Hill
-Australia/Canberra
-Australia/Currie
-Australia/Darwin
-Australia/Hobart
-Australia/LHI
-Australia/Lindeman
-Australia/Lord_Howe
-Australia/Melbourne
-Australia/NSW
-Australia/North
-Australia/Perth
-Australia/Queensland
-Australia/South
-Australia/Sydney
-Australia/Tasmania
-Australia/Victoria
-Australia/West
-Australia/Yancowinna
-Brazil/Acre
-Brazil/DeNoronha
-Brazil/East
-Brazil/West
-CET
-CST6CDT
-Canada/Atlantic
-Canada/Central
-Canada/East-Saskatchewan
-Canada/Eastern
-Canada/Mountain
-Canada/Newfoundland
-Canada/Pacific
-Canada/Saskatchewan
-Canada/Yukon
-Chile/Continental
-Chile/EasterIsland
-Cuba
-EET
-EST
-EST5EDT
-Egypt
-Eire
-Etc/GMT
-Etc/GMT+0
-Etc/GMT+1
-Etc/GMT+10
-Etc/GMT+11
-Etc/GMT+12
-Etc/GMT+2
-Etc/GMT+3
-Etc/GMT+4
-Etc/GMT+5
-Etc/GMT+6
-Etc/GMT+7
-Etc/GMT+8
-Etc/GMT+9
-Etc/GMT-0
-Etc/GMT-1
-Etc/GMT-10
-Etc/GMT-11
-Etc/GMT-12
-Etc/GMT-13
-Etc/GMT-14
-Etc/GMT-2
-Etc/GMT-3
-Etc/GMT-4
-Etc/GMT-5
-Etc/GMT-6
-Etc/GMT-7
-Etc/GMT-8
-Etc/GMT-9
-Etc/GMT0
-Etc/Greenwich
-Etc/UCT
-Etc/UTC
-Etc/Universal
-Etc/Zulu
-Europe/Amsterdam
-Europe/Andorra
-Europe/Athens
-Europe/Belfast
-Europe/Belgrade
-Europe/Berlin
-Europe/Bratislava
-Europe/Brussels
-Europe/Bucharest
-Europe/Budapest
-Europe/Busingen
-Europe/Chisinau
-Europe/Copenhagen
-Europe/Dublin
-Europe/Gibraltar
-Europe/Guernsey
-Europe/Helsinki
-Europe/Isle_of_Man
-Europe/Istanbul
-Europe/Jersey
-Europe/Kaliningrad
-Europe/Kiev
-Europe/Lisbon
-Europe/Ljubljana
-Europe/London
-Europe/Luxembourg
-Europe/Madrid
-Europe/Malta
-Europe/Mariehamn
-Europe/Minsk
-Europe/Monaco
-Europe/Moscow
-Europe/Nicosia
-Europe/Oslo
-Europe/Paris
-Europe/Podgorica
-Europe/Prague
-Europe/Riga
-Europe/Rome
-Europe/Samara
-Europe/San_Marino
-Europe/Sarajevo
-Europe/Simferopol
-Europe/Skopje
-Europe/Sofia
-Europe/Stockholm
-Europe/Tallinn
-Europe/Tirane
-Europe/Tiraspol
-Europe/Uzhgorod
-Europe/Vaduz
-Europe/Vatican
-Europe/Vienna
-Europe/Vilnius
-Europe/Volgograd
-Europe/Warsaw
-Europe/Zagreb
-Europe/Zaporozhye
-Europe/Zurich
-Factory
-GB
-GB-Eire
-GMT
-GMT+0
-GMT-0
-GMT0
-Greenwich
-HST
-Hongkong
-Iceland
-Indian/Antananarivo
-Indian/Chagos
-Indian/Christmas
-Indian/Cocos
-Indian/Comoro
-Indian/Kerguelen
-Indian/Mahe
-Indian/Maldives
-Indian/Mauritius
-Indian/Mayotte
-Indian/Reunion
-Iran
-Israel
-Jamaica
-Japan
-Kwajalein
-Libya
-MET
-MST
-MST7MDT
-Mexico/BajaNorte
-Mexico/BajaSur
-Mexico/General
-Mideast/Riyadh87
-Mideast/Riyadh88
-Mideast/Riyadh89
-NZ
-NZ-CHAT
-Navajo
-PRC
-PST8PDT
-Pacific/Apia
-Pacific/Auckland
-Pacific/Chatham
-Pacific/Easter
-Pacific/Efate
-Pacific/Enderbury
-Pacific/Fakaofo
-Pacific/Fiji
-Pacific/Funafuti
-Pacific/Galapagos
-Pacific/Gambier
-Pacific/Guadalcanal
-Pacific/Guam
-Pacific/Honolulu
-Pacific/Johnston
-Pacific/Kiritimati
-Pacific/Kosrae
-Pacific/Kwajalein
-Pacific/Majuro
-Pacific/Marquesas
-Pacific/Midway
-Pacific/Nauru
-Pacific/Niue
-Pacific/Norfolk
-Pacific/Noumea
-Pacific/Pago_Pago
-Pacific/Palau
-Pacific/Pitcairn
-Pacific/Ponape
-Pacific/Port_Moresby
-Pacific/Rarotonga
-Pacific/Saipan
-Pacific/Samoa
-Pacific/Tahiti
-Pacific/Tarawa
-Pacific/Tongatapu
-Pacific/Truk
-Pacific/Wake
-Pacific/Wallis
-Pacific/Yap
-Poland
-Portugal
-ROC
-ROK
-Singapore
-Turkey
-UCT
-UTC
-Universal
-W-SU
-WET
-Zulu
-posix/Africa/Abidjan
-posix/Africa/Accra
-posix/Africa/Addis_Ababa
-posix/Africa/Algiers
-posix/Africa/Asmera
-posix/Africa/Bamako
-posix/Africa/Bangui
-posix/Africa/Banjul
-posix/Africa/Bissau
-posix/Africa/Blantyre
-posix/Africa/Brazzaville
-posix/Africa/Bujumbura
-posix/Africa/Cairo
-posix/Africa/Casablanca
-posix/Africa/Ceuta
-posix/Africa/Conakry
-posix/Africa/Dakar
-posix/Africa/Dar_es_Salaam
-posix/Africa/Djibouti
-posix/Africa/Douala
-posix/Africa/El_Aaiun
-posix/Africa/Freetown
-posix/Africa/Gaborone
-posix/Africa/Harare
-posix/Africa/Johannesburg
-posix/Africa/Kampala
-posix/Africa/Khartoum
-posix/Africa/Kigali
-posix/Africa/Kinshasa
-posix/Africa/Lagos
-posix/Africa/Libreville
-posix/Africa/Lome
-posix/Africa/Luanda
-posix/Africa/Lubumbashi
-posix/Africa/Lusaka
-posix/Africa/Malabo
-posix/Africa/Maputo
-posix/Africa/Maseru
-posix/Africa/Mbabane
-posix/Africa/Mogadishu
-posix/Africa/Monrovia
-posix/Africa/Nairobi
-posix/Africa/Ndjamena
-posix/Africa/Niamey
-posix/Africa/Nouakchott
-posix/Africa/Ouagadougou
-posix/Africa/Porto-Novo
-posix/Africa/Sao_Tome
-posix/Africa/Timbuktu
-posix/Africa/Tripoli
-posix/Africa/Tunis
-posix/Africa/Windhoek
-posix/America/Adak
-posix/America/Anchorage
-posix/America/Anguilla
-posix/America/Antigua
-posix/America/Araguaina
-posix/America/Argentina/Buenos_Aires
-posix/America/Argentina/Catamarca
-posix/America/Argentina/ComodRivadavia
-posix/America/Argentina/Cordoba
-posix/America/Argentina/Jujuy
-posix/America/Argentina/La_Rioja
-posix/America/Argentina/Mendoza
-posix/America/Argentina/Rio_Gallegos
-posix/America/Argentina/San_Juan
-posix/America/Argentina/Tucuman
-posix/America/Argentina/Ushuaia
-posix/America/Aruba
-posix/America/Asuncion
-posix/America/Atikokan
-posix/America/Atka
-posix/America/Bahia
-posix/America/Barbados
-posix/America/Belem
-posix/America/Belize
-posix/America/Blanc-Sablon
-posix/America/Boa_Vista
-posix/America/Bogota
-posix/America/Boise
-posix/America/Buenos_Aires
-posix/America/Cambridge_Bay
-posix/America/Campo_Grande
-posix/America/Cancun
-posix/America/Caracas
-posix/America/Catamarca
-posix/America/Cayenne
-posix/America/Cayman
-posix/America/Chicago
-posix/America/Chihuahua
-posix/America/Coral_Harbour
-posix/America/Cordoba
-posix/America/Costa_Rica
-posix/America/Cuiaba
-posix/America/Curacao
-posix/America/Danmarkshavn
-posix/America/Dawson
-posix/America/Dawson_Creek
-posix/America/Denver
-posix/America/Detroit
-posix/America/Dominica
-posix/America/Edmonton
-posix/America/Eirunepe
-posix/America/El_Salvador
-posix/America/Ensenada
-posix/America/Fort_Wayne
-posix/America/Fortaleza
-posix/America/Glace_Bay
-posix/America/Godthab
-posix/America/Goose_Bay
-posix/America/Grand_Turk
-posix/America/Grenada
-posix/America/Guadeloupe
-posix/America/Guatemala
-posix/America/Guayaquil
-posix/America/Guyana
-posix/America/Halifax
-posix/America/Havana
-posix/America/Hermosillo
-posix/America/Indiana/Indianapolis
-posix/America/Indiana/Knox
-posix/America/Indiana/Marengo
-posix/America/Indiana/Petersburg
-posix/America/Indiana/Tell_City
-posix/America/Indiana/Vevay
-posix/America/Indiana/Vincennes
-posix/America/Indianapolis
-posix/America/Inuvik
-posix/America/Iqaluit
-posix/America/Jamaica
-posix/America/Jujuy
-posix/America/Juneau
-posix/America/Kentucky/Louisville
-posix/America/Kentucky/Monticello
-posix/America/Knox_IN
-posix/America/La_Paz
-posix/America/Lima
-posix/America/Los_Angeles
-posix/America/Louisville
-posix/America/Maceio
-posix/America/Managua
-posix/America/Manaus
-posix/America/Martinique
-posix/America/Mazatlan
-posix/America/Mendoza
-posix/America/Menominee
-posix/America/Merida
-posix/America/Mexico_City
-posix/America/Miquelon
-posix/America/Moncton
-posix/America/Monterrey
-posix/America/Montevideo
-posix/America/Montreal
-posix/America/Montserrat
-posix/America/Nassau
-posix/America/New_York
-posix/America/Nipigon
-posix/America/Nome
-posix/America/Noronha
-posix/America/North_Dakota/Center
-posix/America/North_Dakota/New_Salem
-posix/America/Panama
-posix/America/Pangnirtung
-posix/America/Paramaribo
-posix/America/Phoenix
-posix/America/Port-au-Prince
-posix/America/Port_of_Spain
-posix/America/Porto_Acre
-posix/America/Porto_Velho
-posix/America/Puerto_Rico
-posix/America/Rainy_River
-posix/America/Rankin_Inlet
-posix/America/Recife
-posix/America/Regina
-posix/America/Rio_Branco
-posix/America/Rosario
-posix/America/Santiago
-posix/America/Santo_Domingo
-posix/America/Sao_Paulo
-posix/America/Scoresbysund
-posix/America/Shiprock
-posix/America/St_Johns
-posix/America/St_Kitts
-posix/America/St_Lucia
-posix/America/St_Thomas
-posix/America/St_Vincent
-posix/America/Swift_Current
-posix/America/Tegucigalpa
-posix/America/Thule
-posix/America/Thunder_Bay
-posix/America/Tijuana
-posix/America/Toronto
-posix/America/Tortola
-posix/America/Vancouver
-posix/America/Virgin
-posix/America/Whitehorse
-posix/America/Winnipeg
-posix/America/Yakutat
-posix/America/Yellowknife
-posix/Antarctica/Casey
-posix/Antarctica/Davis
-posix/Antarctica/DumontDUrville
-posix/Antarctica/Mawson
-posix/Antarctica/McMurdo
-posix/Antarctica/Palmer
-posix/Antarctica/Rothera
-posix/Antarctica/South_Pole
-posix/Antarctica/Syowa
-posix/Antarctica/Vostok
-posix/Arctic/Longyearbyen
-posix/Asia/Aden
-posix/Asia/Almaty
-posix/Asia/Amman
-posix/Asia/Anadyr
-posix/Asia/Aqtau
-posix/Asia/Aqtobe
-posix/Asia/Ashgabat
-posix/Asia/Ashkhabad
-posix/Asia/Baghdad
-posix/Asia/Bahrain
-posix/Asia/Baku
-posix/Asia/Bangkok
-posix/Asia/Beirut
-posix/Asia/Bishkek
-posix/Asia/Brunei
-posix/Asia/Calcutta
-posix/Asia/Choibalsan
-posix/Asia/Chongqing
-posix/Asia/Chungking
-posix/Asia/Colombo
-posix/Asia/Dacca
-posix/Asia/Damascus
-posix/Asia/Dhaka
-posix/Asia/Dili
-posix/Asia/Dubai
-posix/Asia/Dushanbe
-posix/Asia/Gaza
-posix/Asia/Harbin
-posix/Asia/Hong_Kong
-posix/Asia/Hovd
-posix/Asia/Irkutsk
-posix/Asia/Istanbul
-posix/Asia/Jakarta
-posix/Asia/Jayapura
-posix/Asia/Jerusalem
-posix/Asia/Kabul
-posix/Asia/Kamchatka
-posix/Asia/Karachi
-posix/Asia/Kashgar
-posix/Asia/Katmandu
-posix/Asia/Krasnoyarsk
-posix/Asia/Kuala_Lumpur
-posix/Asia/Kuching
-posix/Asia/Kuwait
-posix/Asia/Macao
-posix/Asia/Macau
-posix/Asia/Magadan
-posix/Asia/Makassar
-posix/Asia/Manila
-posix/Asia/Muscat
-posix/Asia/Nicosia
-posix/Asia/Novosibirsk
-posix/Asia/Omsk
-posix/Asia/Oral
-posix/Asia/Phnom_Penh
-posix/Asia/Pontianak
-posix/Asia/Pyongyang
-posix/Asia/Qatar
-posix/Asia/Qyzylorda
-posix/Asia/Rangoon
-posix/Asia/Riyadh
-posix/Asia/Riyadh87
-posix/Asia/Riyadh88
-posix/Asia/Riyadh89
-posix/Asia/Saigon
-posix/Asia/Sakhalin
-posix/Asia/Samarkand
-posix/Asia/Seoul
-posix/Asia/Shanghai
-posix/Asia/Singapore
-posix/Asia/Taipei
-posix/Asia/Tashkent
-posix/Asia/Tbilisi
-posix/Asia/Tehran
-posix/Asia/Tel_Aviv
-posix/Asia/Thimbu
-posix/Asia/Thimphu
-posix/Asia/Tokyo
-posix/Asia/Ujung_Pandang
-posix/Asia/Ulaanbaatar
-posix/Asia/Ulan_Bator
-posix/Asia/Urumqi
-posix/Asia/Vientiane
-posix/Asia/Vladivostok
-posix/Asia/Yakutsk
-posix/Asia/Yekaterinburg
-posix/Asia/Yerevan
-posix/Atlantic/Azores
-posix/Atlantic/Bermuda
-posix/Atlantic/Canary
-posix/Atlantic/Cape_Verde
-posix/Atlantic/Faeroe
-posix/Atlantic/Jan_Mayen
-posix/Atlantic/Madeira
-posix/Atlantic/Reykjavik
-posix/Atlantic/South_Georgia
-posix/Atlantic/St_Helena
-posix/Atlantic/Stanley
-posix/Australia/ACT
-posix/Australia/Adelaide
-posix/Australia/Brisbane
-posix/Australia/Broken_Hill
-posix/Australia/Canberra
-posix/Australia/Currie
-posix/Australia/Darwin
-posix/Australia/Hobart
-posix/Australia/LHI
-posix/Australia/Lindeman
-posix/Australia/Lord_Howe
-posix/Australia/Melbourne
-posix/Australia/NSW
-posix/Australia/North
-posix/Australia/Perth
-posix/Australia/Queensland
-posix/Australia/South
-posix/Australia/Sydney
-posix/Australia/Tasmania
-posix/Australia/Victoria
-posix/Australia/West
-posix/Australia/Yancowinna
-posix/Brazil/Acre
-posix/Brazil/DeNoronha
-posix/Brazil/East
-posix/Brazil/West
-posix/CET
-posix/CST6CDT
-posix/Canada/Atlantic
-posix/Canada/Central
-posix/Canada/East-Saskatchewan
-posix/Canada/Eastern
-posix/Canada/Mountain
-posix/Canada/Newfoundland
-posix/Canada/Pacific
-posix/Canada/Saskatchewan
-posix/Canada/Yukon
-posix/Chile/Continental
-posix/Chile/EasterIsland
-posix/Cuba
-posix/EET
-posix/EST
-posix/EST5EDT
-posix/Egypt
-posix/Eire
-posix/Etc/GMT
-posix/Etc/GMT+0
-posix/Etc/GMT+1
-posix/Etc/GMT+10
-posix/Etc/GMT+11
-posix/Etc/GMT+12
-posix/Etc/GMT+2
-posix/Etc/GMT+3
-posix/Etc/GMT+4
-posix/Etc/GMT+5
-posix/Etc/GMT+6
-posix/Etc/GMT+7
-posix/Etc/GMT+8
-posix/Etc/GMT+9
-posix/Etc/GMT-0
-posix/Etc/GMT-1
-posix/Etc/GMT-10
-posix/Etc/GMT-11
-posix/Etc/GMT-12
-posix/Etc/GMT-13
-posix/Etc/GMT-14
-posix/Etc/GMT-2
-posix/Etc/GMT-3
-posix/Etc/GMT-4
-posix/Etc/GMT-5
-posix/Etc/GMT-6
-posix/Etc/GMT-7
-posix/Etc/GMT-8
-posix/Etc/GMT-9
-posix/Etc/GMT0
-posix/Etc/Greenwich
-posix/Etc/UCT
-posix/Etc/UTC
-posix/Etc/Universal
-posix/Etc/Zulu
-posix/Europe/Amsterdam
-posix/Europe/Andorra
-posix/Europe/Athens
-posix/Europe/Belfast
-posix/Europe/Belgrade
-posix/Europe/Berlin
-posix/Europe/Bratislava
-posix/Europe/Brussels
-posix/Europe/Bucharest
-posix/Europe/Budapest
-posix/Europe/Chisinau
-posix/Europe/Copenhagen
-posix/Europe/Dublin
-posix/Europe/Gibraltar
-posix/Europe/Guernsey
-posix/Europe/Helsinki
-posix/Europe/Isle_of_Man
-posix/Europe/Istanbul
-posix/Europe/Jersey
-posix/Europe/Kaliningrad
-posix/Europe/Kiev
-posix/Europe/Lisbon
-posix/Europe/Ljubljana
-posix/Europe/London
-posix/Europe/Luxembourg
-posix/Europe/Madrid
-posix/Europe/Malta
-posix/Europe/Mariehamn
-posix/Europe/Minsk
-posix/Europe/Monaco
-posix/Europe/Moscow
-posix/Europe/Nicosia
-posix/Europe/Oslo
-posix/Europe/Paris
-posix/Europe/Podgorica
-posix/Europe/Prague
-posix/Europe/Riga
-posix/Europe/Rome
-posix/Europe/Samara
-posix/Europe/San_Marino
-posix/Europe/Sarajevo
-posix/Europe/Simferopol
-posix/Europe/Skopje
-posix/Europe/Sofia
-posix/Europe/Stockholm
-posix/Europe/Tallinn
-posix/Europe/Tirane
-posix/Europe/Tiraspol
-posix/Europe/Uzhgorod
-posix/Europe/Vaduz
-posix/Europe/Vatican
-posix/Europe/Vienna
-posix/Europe/Vilnius
-posix/Europe/Volgograd
-posix/Europe/Warsaw
-posix/Europe/Zagreb
-posix/Europe/Zaporozhye
-posix/Europe/Zurich
-posix/Factory
-posix/GB
-posix/GB-Eire
-posix/GMT
-posix/GMT+0
-posix/GMT-0
-posix/GMT0
-posix/Greenwich
-posix/HST
-posix/Hongkong
-posix/Iceland
-posix/Indian/Antananarivo
-posix/Indian/Chagos
-posix/Indian/Christmas
-posix/Indian/Cocos
-posix/Indian/Comoro
-posix/Indian/Kerguelen
-posix/Indian/Mahe
-posix/Indian/Maldives
-posix/Indian/Mauritius
-posix/Indian/Mayotte
-posix/Indian/Reunion
-posix/Iran
-posix/Israel
-posix/Jamaica
-posix/Japan
-posix/Kwajalein
-posix/Libya
-posix/MET
-posix/MST
-posix/MST7MDT
-posix/Mexico/BajaNorte
-posix/Mexico/BajaSur
-posix/Mexico/General
-posix/Mideast/Riyadh87
-posix/Mideast/Riyadh88
-posix/Mideast/Riyadh89
-posix/NZ
-posix/NZ-CHAT
-posix/Navajo
-posix/PRC
-posix/PST8PDT
-posix/Pacific/Apia
-posix/Pacific/Auckland
-posix/Pacific/Chatham
-posix/Pacific/Easter
-posix/Pacific/Efate
-posix/Pacific/Enderbury
-posix/Pacific/Fakaofo
-posix/Pacific/Fiji
-posix/Pacific/Funafuti
-posix/Pacific/Galapagos
-posix/Pacific/Gambier
-posix/Pacific/Guadalcanal
-posix/Pacific/Guam
-posix/Pacific/Honolulu
-posix/Pacific/Johnston
-posix/Pacific/Kiritimati
-posix/Pacific/Kosrae
-posix/Pacific/Kwajalein
-posix/Pacific/Majuro
-posix/Pacific/Marquesas
-posix/Pacific/Midway
-posix/Pacific/Nauru
-posix/Pacific/Niue
-posix/Pacific/Norfolk
-posix/Pacific/Noumea
-posix/Pacific/Pago_Pago
-posix/Pacific/Palau
-posix/Pacific/Pitcairn
-posix/Pacific/Ponape
-posix/Pacific/Port_Moresby
-posix/Pacific/Rarotonga
-posix/Pacific/Saipan
-posix/Pacific/Samoa
-posix/Pacific/Tahiti
-posix/Pacific/Tarawa
-posix/Pacific/Tongatapu
-posix/Pacific/Truk
-posix/Pacific/Wake
-posix/Pacific/Wallis
-posix/Pacific/Yap
-posix/Poland
-posix/Portugal
-posix/ROC
-posix/ROK
-posix/Singapore
-posix/Turkey
-posix/UCT
-posix/US/Alaska
-posix/US/Aleutian
-posix/US/Arizona
-posix/US/Central
-posix/US/East-Indiana
-posix/US/Eastern
-posix/US/Hawaii
-posix/US/Indiana-Starke
-posix/US/Michigan
-posix/US/Mountain
-posix/US/Pacific
-posix/US/Pacific-New
-posix/US/Samoa
-posix/UTC
-posix/Universal
-posix/W-SU
-posix/WET
-posix/Zulu
-posixrules
-right/Africa/Abidjan
-right/Africa/Accra
-right/Africa/Addis_Ababa
-right/Africa/Algiers
-right/Africa/Asmera
-right/Africa/Bamako
-right/Africa/Bangui
-right/Africa/Banjul
-right/Africa/Bissau
-right/Africa/Blantyre
-right/Africa/Brazzaville
-right/Africa/Bujumbura
-right/Africa/Cairo
-right/Africa/Casablanca
-right/Africa/Ceuta
-right/Africa/Conakry
-right/Africa/Dakar
-right/Africa/Dar_es_Salaam
-right/Africa/Djibouti
-right/Africa/Douala
-right/Africa/El_Aaiun
-right/Africa/Freetown
-right/Africa/Gaborone
-right/Africa/Harare
-right/Africa/Johannesburg
-right/Africa/Kampala
-right/Africa/Khartoum
-right/Africa/Kigali
-right/Africa/Kinshasa
-right/Africa/Lagos
-right/Africa/Libreville
-right/Africa/Lome
-right/Africa/Luanda
-right/Africa/Lubumbashi
-right/Africa/Lusaka
-right/Africa/Malabo
-right/Africa/Maputo
-right/Africa/Maseru
-right/Africa/Mbabane
-right/Africa/Mogadishu
-right/Africa/Monrovia
-right/Africa/Nairobi
-right/Africa/Ndjamena
-right/Africa/Niamey
-right/Africa/Nouakchott
-right/Africa/Ouagadougou
-right/Africa/Porto-Novo
-right/Africa/Sao_Tome
-right/Africa/Timbuktu
-right/Africa/Tripoli
-right/Africa/Tunis
-right/Africa/Windhoek
-right/America/Adak
-right/America/Anchorage
-right/America/Anguilla
-right/America/Antigua
-right/America/Araguaina
-right/America/Argentina/Buenos_Aires
-right/America/Argentina/Catamarca
-right/America/Argentina/ComodRivadavia
-right/America/Argentina/Cordoba
-right/America/Argentina/Jujuy
-right/America/Argentina/La_Rioja
-right/America/Argentina/Mendoza
-right/America/Argentina/Rio_Gallegos
-right/America/Argentina/San_Juan
-right/America/Argentina/Tucuman
-right/America/Argentina/Ushuaia
-right/America/Aruba
-right/America/Asuncion
-right/America/Atikokan
-right/America/Atka
-right/America/Bahia
-right/America/Barbados
-right/America/Belem
-right/America/Belize
-right/America/Blanc-Sablon
-right/America/Boa_Vista
-right/America/Bogota
-right/America/Boise
-right/America/Buenos_Aires
-right/America/Cambridge_Bay
-right/America/Campo_Grande
-right/America/Cancun
-right/America/Caracas
-right/America/Catamarca
-right/America/Cayenne
-right/America/Cayman
-right/America/Chicago
-right/America/Chihuahua
-right/America/Coral_Harbour
-right/America/Cordoba
-right/America/Costa_Rica
-right/America/Cuiaba
-right/America/Curacao
-right/America/Danmarkshavn
-right/America/Dawson
-right/America/Dawson_Creek
-right/America/Denver
-right/America/Detroit
-right/America/Dominica
-right/America/Edmonton
-right/America/Eirunepe
-right/America/El_Salvador
-right/America/Ensenada
-right/America/Fort_Wayne
-right/America/Fortaleza
-right/America/Glace_Bay
-right/America/Godthab
-right/America/Goose_Bay
-right/America/Grand_Turk
-right/America/Grenada
-right/America/Guadeloupe
-right/America/Guatemala
-right/America/Guayaquil
-right/America/Guyana
-right/America/Halifax
-right/America/Havana
-right/America/Hermosillo
-right/America/Indiana/Indianapolis
-right/America/Indiana/Knox
-right/America/Indiana/Marengo
-right/America/Indiana/Petersburg
-right/America/Indiana/Tell_City
-right/America/Indiana/Vevay
-right/America/Indiana/Vincennes
-right/America/Indianapolis
-right/America/Inuvik
-right/America/Iqaluit
-right/America/Jamaica
-right/America/Jujuy
-right/America/Juneau
-right/America/Kentucky/Louisville
-right/America/Kentucky/Monticello
-right/America/Knox_IN
-right/America/La_Paz
-right/America/Lima
-right/America/Los_Angeles
-right/America/Louisville
-right/America/Maceio
-right/America/Managua
-right/America/Manaus
-right/America/Martinique
-right/America/Mazatlan
-right/America/Mendoza
-right/America/Menominee
-right/America/Merida
-right/America/Mexico_City
-right/America/Miquelon
-right/America/Moncton
-right/America/Monterrey
-right/America/Montevideo
-right/America/Montreal
-right/America/Montserrat
-right/America/Nassau
-right/America/New_York
-right/America/Nipigon
-right/America/Nome
-right/America/Noronha
-right/America/North_Dakota/Center
-right/America/North_Dakota/New_Salem
-right/America/Panama
-right/America/Pangnirtung
-right/America/Paramaribo
-right/America/Phoenix
-right/America/Port-au-Prince
-right/America/Port_of_Spain
-right/America/Porto_Acre
-right/America/Porto_Velho
-right/America/Puerto_Rico
-right/America/Rainy_River
-right/America/Rankin_Inlet
-right/America/Recife
-right/America/Regina
-right/America/Rio_Branco
-right/America/Rosario
-right/America/Santiago
-right/America/Santo_Domingo
-right/America/Sao_Paulo
-right/America/Scoresbysund
-right/America/Shiprock
-right/America/St_Johns
-right/America/St_Kitts
-right/America/St_Lucia
-right/America/St_Thomas
-right/America/St_Vincent
-right/America/Swift_Current
-right/America/Tegucigalpa
-right/America/Thule
-right/America/Thunder_Bay
-right/America/Tijuana
-right/America/Toronto
-right/America/Tortola
-right/America/Vancouver
-right/America/Virgin
-right/America/Whitehorse
-right/America/Winnipeg
-right/America/Yakutat
-right/America/Yellowknife
-right/Antarctica/Casey
-right/Antarctica/Davis
-right/Antarctica/DumontDUrville
-right/Antarctica/Mawson
-right/Antarctica/McMurdo
-right/Antarctica/Palmer
-right/Antarctica/Rothera
-right/Antarctica/South_Pole
-right/Antarctica/Syowa
-right/Antarctica/Vostok
-right/Arctic/Longyearbyen
-right/Asia/Aden
-right/Asia/Almaty
-right/Asia/Amman
-right/Asia/Anadyr
-right/Asia/Aqtau
-right/Asia/Aqtobe
-right/Asia/Ashgabat
-right/Asia/Ashkhabad
-right/Asia/Baghdad
-right/Asia/Bahrain
-right/Asia/Baku
-right/Asia/Bangkok
-right/Asia/Beirut
-right/Asia/Bishkek
-right/Asia/Brunei
-right/Asia/Calcutta
-right/Asia/Choibalsan
-right/Asia/Chongqing
-right/Asia/Chungking
-right/Asia/Colombo
-right/Asia/Dacca
-right/Asia/Damascus
-right/Asia/Dhaka
-right/Asia/Dili
-right/Asia/Dubai
-right/Asia/Dushanbe
-right/Asia/Gaza
-right/Asia/Harbin
-right/Asia/Hong_Kong
-right/Asia/Hovd
-right/Asia/Irkutsk
-right/Asia/Istanbul
-right/Asia/Jakarta
-right/Asia/Jayapura
-right/Asia/Jerusalem
-right/Asia/Kabul
-right/Asia/Kamchatka
-right/Asia/Karachi
-right/Asia/Kashgar
-right/Asia/Katmandu
-right/Asia/Krasnoyarsk
-right/Asia/Kuala_Lumpur
-right/Asia/Kuching
-right/Asia/Kuwait
-right/Asia/Macao
-right/Asia/Macau
-right/Asia/Magadan
-right/Asia/Makassar
-right/Asia/Manila
-right/Asia/Muscat
-right/Asia/Nicosia
-right/Asia/Novosibirsk
-right/Asia/Omsk
-right/Asia/Oral
-right/Asia/Phnom_Penh
-right/Asia/Pontianak
-right/Asia/Pyongyang
-right/Asia/Qatar
-right/Asia/Qyzylorda
-right/Asia/Rangoon
-right/Asia/Riyadh
-right/Asia/Riyadh87
-right/Asia/Riyadh88
-right/Asia/Riyadh89
-right/Asia/Saigon
-right/Asia/Sakhalin
-right/Asia/Samarkand
-right/Asia/Seoul
-right/Asia/Shanghai
-right/Asia/Singapore
-right/Asia/Taipei
-right/Asia/Tashkent
-right/Asia/Tbilisi
-right/Asia/Tehran
-right/Asia/Tel_Aviv
-right/Asia/Thimbu
-right/Asia/Thimphu
-right/Asia/Tokyo
-right/Asia/Ujung_Pandang
-right/Asia/Ulaanbaatar
-right/Asia/Ulan_Bator
-right/Asia/Urumqi
-right/Asia/Vientiane
-right/Asia/Vladivostok
-right/Asia/Yakutsk
-right/Asia/Yekaterinburg
-right/Asia/Yerevan
-right/Atlantic/Azores
-right/Atlantic/Bermuda
-right/Atlantic/Canary
-right/Atlantic/Cape_Verde
-right/Atlantic/Faeroe
-right/Atlantic/Jan_Mayen
-right/Atlantic/Madeira
-right/Atlantic/Reykjavik
-right/Atlantic/South_Georgia
-right/Atlantic/St_Helena
-right/Atlantic/Stanley
-right/Australia/ACT
-right/Australia/Adelaide
-right/Australia/Brisbane
-right/Australia/Broken_Hill
-right/Australia/Canberra
-right/Australia/Currie
-right/Australia/Darwin
-right/Australia/Hobart
-right/Australia/LHI
-right/Australia/Lindeman
-right/Australia/Lord_Howe
-right/Australia/Melbourne
-right/Australia/NSW
-right/Australia/North
-right/Australia/Perth
-right/Australia/Queensland
-right/Australia/South
-right/Australia/Sydney
-right/Australia/Tasmania
-right/Australia/Victoria
-right/Australia/West
-right/Australia/Yancowinna
-right/Brazil/Acre
-right/Brazil/DeNoronha
-right/Brazil/East
-right/Brazil/West
-right/CET
-right/CST6CDT
-right/Canada/Atlantic
-right/Canada/Central
-right/Canada/East-Saskatchewan
-right/Canada/Eastern
-right/Canada/Mountain
-right/Canada/Newfoundland
-right/Canada/Pacific
-right/Canada/Saskatchewan
-right/Canada/Yukon
-right/Chile/Continental
-right/Chile/EasterIsland
-right/Cuba
-right/EET
-right/EST
-right/EST5EDT
-right/Egypt
-right/Eire
-right/Etc/GMT
-right/Etc/GMT+0
-right/Etc/GMT+1
-right/Etc/GMT+10
-right/Etc/GMT+11
-right/Etc/GMT+12
-right/Etc/GMT+2
-right/Etc/GMT+3
-right/Etc/GMT+4
-right/Etc/GMT+5
-right/Etc/GMT+6
-right/Etc/GMT+7
-right/Etc/GMT+8
-right/Etc/GMT+9
-right/Etc/GMT-0
-right/Etc/GMT-1
-right/Etc/GMT-10
-right/Etc/GMT-11
-right/Etc/GMT-12
-right/Etc/GMT-13
-right/Etc/GMT-14
-right/Etc/GMT-2
-right/Etc/GMT-3
-right/Etc/GMT-4
-right/Etc/GMT-5
-right/Etc/GMT-6
-right/Etc/GMT-7
-right/Etc/GMT-8
-right/Etc/GMT-9
-right/Etc/GMT0
-right/Etc/Greenwich
-right/Etc/UCT
-right/Etc/UTC
-right/Etc/Universal
-right/Etc/Zulu
-right/Europe/Amsterdam
-right/Europe/Andorra
-right/Europe/Athens
-right/Europe/Belfast
-right/Europe/Belgrade
-right/Europe/Berlin
-right/Europe/Bratislava
-right/Europe/Brussels
-right/Europe/Bucharest
-right/Europe/Budapest
-right/Europe/Chisinau
-right/Europe/Copenhagen
-right/Europe/Dublin
-right/Europe/Gibraltar
-right/Europe/Guernsey
-right/Europe/Helsinki
-right/Europe/Isle_of_Man
-right/Europe/Istanbul
-right/Europe/Jersey
-right/Europe/Kaliningrad
-right/Europe/Kiev
-right/Europe/Lisbon
-right/Europe/Ljubljana
-right/Europe/London
-right/Europe/Luxembourg
-right/Europe/Madrid
-right/Europe/Malta
-right/Europe/Mariehamn
-right/Europe/Minsk
-right/Europe/Monaco
-right/Europe/Moscow
-right/Europe/Nicosia
-right/Europe/Oslo
-right/Europe/Paris
-right/Europe/Podgorica
-right/Europe/Prague
-right/Europe/Riga
-right/Europe/Rome
-right/Europe/Samara
-right/Europe/San_Marino
-right/Europe/Sarajevo
-right/Europe/Simferopol
-right/Europe/Skopje
-right/Europe/Sofia
-right/Europe/Stockholm
-right/Europe/Tallinn
-right/Europe/Tirane
-right/Europe/Tiraspol
-right/Europe/Uzhgorod
-right/Europe/Vaduz
-right/Europe/Vatican
-right/Europe/Vienna
-right/Europe/Vilnius
-right/Europe/Volgograd
-right/Europe/Warsaw
-right/Europe/Zagreb
-right/Europe/Zaporozhye
-right/Europe/Zurich
-right/Factory
-right/GB
-right/GB-Eire
-right/GMT
-right/GMT+0
-right/GMT-0
-right/GMT0
-right/Greenwich
-right/HST
-right/Hongkong
-right/Iceland
-right/Indian/Antananarivo
-right/Indian/Chagos
-right/Indian/Christmas
-right/Indian/Cocos
-right/Indian/Comoro
-right/Indian/Kerguelen
-right/Indian/Mahe
-right/Indian/Maldives
-right/Indian/Mauritius
-right/Indian/Mayotte
-right/Indian/Reunion
-right/Iran
-right/Israel
-right/Jamaica
-right/Japan
-right/Kwajalein
-right/Libya
-right/MET
-right/MST
-right/MST7MDT
-right/Mexico/BajaNorte
-right/Mexico/BajaSur
-right/Mexico/General
-right/Mideast/Riyadh87
-right/Mideast/Riyadh88
-right/Mideast/Riyadh89
-right/NZ
-right/NZ-CHAT
-right/Navajo
-right/PRC
-right/PST8PDT
-right/Pacific/Apia
-right/Pacific/Auckland
-right/Pacific/Chatham
-right/Pacific/Easter
-right/Pacific/Efate
-right/Pacific/Enderbury
-right/Pacific/Fakaofo
-right/Pacific/Fiji
-right/Pacific/Funafuti
-right/Pacific/Galapagos
-right/Pacific/Gambier
-right/Pacific/Guadalcanal
-right/Pacific/Guam
-right/Pacific/Honolulu
-right/Pacific/Johnston
-right/Pacific/Kiritimati
-right/Pacific/Kosrae
-right/Pacific/Kwajalein
-right/Pacific/Majuro
-right/Pacific/Marquesas
-right/Pacific/Midway
-right/Pacific/Nauru
-right/Pacific/Niue
-right/Pacific/Norfolk
-right/Pacific/Noumea
-right/Pacific/Pago_Pago
-right/Pacific/Palau
-right/Pacific/Pitcairn
-right/Pacific/Ponape
-right/Pacific/Port_Moresby
-right/Pacific/Rarotonga
-right/Pacific/Saipan
-right/Pacific/Samoa
-right/Pacific/Tahiti
-right/Pacific/Tarawa
-right/Pacific/Tongatapu
-right/Pacific/Truk
-right/Pacific/Wake
-right/Pacific/Wallis
-right/Pacific/Yap
-right/Poland
-right/Portugal
-right/ROC
-right/ROK
-right/Singapore
-right/Turkey
-right/UCT
-right/US/Alaska
-right/US/Aleutian
-right/US/Arizona
-right/US/Central
-right/US/East-Indiana
-right/US/Eastern
-right/US/Hawaii
-right/US/Indiana-Starke
-right/US/Michigan
-right/US/Mountain
-right/US/Pacific
-right/US/Pacific-New
-right/US/Samoa
-right/UTC
-right/Universal
-right/W-SU
-right/WET
-right/Zulu
diff --git a/source/l/glibc/timezone-scripts/parts/04 b/source/l/glibc/timezone-scripts/parts/04
deleted file mode 100644
index ec36338b1..000000000
--- a/source/l/glibc/timezone-scripts/parts/04
+++ /dev/null
@@ -1,32 +0,0 @@
-
-Type it at the prompt below exactly as it appears above. (NOTE: If you don't
-see your timezone, use "timeconfig" again after booting for the verbose list)
-
-EOF
- echo -n "Timezone? "
- read TIMEZONE;
- echo
-
- if [ -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \
- -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \
- -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \
- -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then
- echo "Creating link from $TIMEZONE to localtime in /etc..."
- echo
- setzone $TIMEZONE
- exit
- else
- cat << EOF
-
-Timezone $TIMEZONE could not be found. You may try again if you wish.
-Make sure you type the name exactly as it appears - this configuration script
-is case sensitive.
-
-Press [enter] to continue.
-
-EOF
- read JUNK;
- fi
- done
-fi
-
diff --git a/source/l/glibc/timezone-scripts/parts/README b/source/l/glibc/timezone-scripts/parts/README
deleted file mode 100644
index 80d5cf5b4..000000000
--- a/source/l/glibc/timezone-scripts/parts/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Files 01 and 03 are samples, showing the format, and are
-not necessarily up to date...
diff --git a/source/l/glibc/timezone-scripts/setup.timeconfig b/source/l/glibc/timezone-scripts/setup.timeconfig
deleted file mode 100644
index 81ff7055f..000000000
--- a/source/l/glibc/timezone-scripts/setup.timeconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-#BLURB="Select your timezone"
-sh usr/sbin/timeconfig $*
diff --git a/source/l/glibc/timezone-scripts/timeconfig b/source/l/glibc/timezone-scripts/timeconfig
deleted file mode 100644
index e09550d43..000000000
--- a/source/l/glibc/timezone-scripts/timeconfig
+++ /dev/null
@@ -1,3702 +0,0 @@
-#!/bin/sh
-#
-# timeconfig Slackware Linux timezone configuration utility.
-#
-# Author: Patrick Volkerding <volkerdi@slackware.com>
-# Modified by: David Cantrell <david@slackware.com>, 06-Oct-2000
-#
-# ChangeLog:
-# 2012-12-12: Updated timezones from tzdata2012j. <pjv>
-# 2008-03-10: Updated timezones from tzdata2008a. <pjv>
-# 2007-12-21: Updated timezones from tzdata2007j. <pjv>
-# 2006-12-03: Updated timezones from tzdata2006p. <pjv>
-# 2006-09-14: Updated timezones from tzdata2006k. <pjv>
-# 2006-08-22: Updated timezones from tzdata2006j.
-# 2006-08-13: Updated timezones from tzdata2006g.
-# 2006-03-13: Updated timezones from tzdata2006c.
-# 19-Feb-2001 Add new timezones from glibc-2.2.2.
-# 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing
-# the hardwareclock file to the root disk and not your dest
-# partition. Changed the HWCLOCK_CONF variable to be
-# $T_PX/etc/hardwareclock to fix this. Thanks to David L.
-# Dickman <softbear@optonline.net> for finding this and
-# submitting a patch.
-#
-# 15-Mar-2000 Added the writeconf function to write out the
-# /etc/hardwareclock file which tells what the hardware clock
-# is set to (UTC or localtime).
-#
-# 03-Mar-2000 Reorganized script. Made one timezone set block, added
-# stage that asks the user if the hardware clock is set to
-# UTC.
-
-# setup our temp locations and variables
-TMP=/var/log/setup/tmp
-if [ -r $TMP/SeTT_PX ]; then
- T_PX="`cat $TMP/SeTT_PX`"
-elif [ ! "$!" = "" ]; then
- T_PX=$1
-else
- T_PX=/
-fi
-
-# the hardware clock configuration file
-HWCLOCK_CONF=$T_PX/etc/hardwareclock
-
-# setzone( $TIMEZONE )
-#
-# This function accepts a time zone as the only parameter and sets it as
-# the default system time zone.
-setzone()
-{
- TZ=$1
-
- cd $T_PX/etc
- if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \
- -r /var/log/mount/usr/share/zoneinfo/$TZ -o \
- -L $T_PX/usr/share/zoneinfo/$TZ -o \
- -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then
- ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from
- rm -f localtime
- cd ..
- chroot . cp etc/localtime-copied-from etc/localtime
- fi
-}
-
-# writeconf( $CLOCK_SET_TO )
-#
-# Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock
-# value is stored.
-writeconf()
-{
- echo "# /etc/hardwareclock" > $HWCLOCK_CONF
- echo "#" >> $HWCLOCK_CONF
- echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF
- echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF
- echo >> $HWCLOCK_CONF
- echo $1 >> $HWCLOCK_CONF
-}
-
-# ask the user if the hardware clock is set for UTC/GMT
-if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then
- ###
- ### use color menus here
- ###
- dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \
-to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \
-hardware clock is set to the current local time (this is how most PCs are set \
-up), then say NO here. If you are not sure what this is, you should answer NO \
-here." 13 60 2 \
- "NO" "Hardware clock is set to local time" \
- "YES" "Hardware clock is set to UTC" \
- 2> $TMP/utc
- if [ $? = 1 -o $? = 255 ]; then
- rm -f $TMP/utc
- exit
- fi
- if [ "`cat $TMP/utc`" = "YES" ]; then
- # yes, the hardware clock is UTC
- writeconf "UTC"
- else # must be NO
- writeconf "localtime"
- fi
- rm -f $TMP/utc
-else
- ###
- ### use text prompts
- ###
- echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?"
- echo "If it is, select 'y' here. If the hardware clock is set to the"
- echo "current local time (this is how most PCs are set up), then say 'n'"
- echo "here. If you are not sure what this is, you should answer 'n' here."
- echo
- echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? "
- read HEJAZ
-
- if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then
- # yes, the hardware clock is UTC
- writeconf "UTC"
- else
- # default to localtime
- writeconf "localtime"
- fi
-fi
-
-# Now set the correct timezone link:
-if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then
- ###
- ### use color menus here
- ###
- dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \
-"US/Alaska" " " \
-"US/Aleutian" " " \
-"US/Arizona" " " \
-"US/Central" " " \
-"US/East-Indiana" " " \
-"US/Eastern" " " \
-"US/Hawaii" " " \
-"US/Indiana-Starke" " " \
-"US/Michigan" " " \
-"US/Mountain" " " \
-"US/Pacific" " " \
-"US/Pacific-New" " " \
-"US/Samoa" " " \
-"Africa/Abidjan" " " \
-"Africa/Accra" " " \
-"Africa/Addis_Ababa" " " \
-"Africa/Algiers" " " \
-"Africa/Asmara" " " \
-"Africa/Asmera" " " \
-"Africa/Bamako" " " \
-"Africa/Bangui" " " \
-"Africa/Banjul" " " \
-"Africa/Bissau" " " \
-"Africa/Blantyre" " " \
-"Africa/Brazzaville" " " \
-"Africa/Bujumbura" " " \
-"Africa/Cairo" " " \
-"Africa/Casablanca" " " \
-"Africa/Ceuta" " " \
-"Africa/Conakry" " " \
-"Africa/Dakar" " " \
-"Africa/Dar_es_Salaam" " " \
-"Africa/Djibouti" " " \
-"Africa/Douala" " " \
-"Africa/El_Aaiun" " " \
-"Africa/Freetown" " " \
-"Africa/Gaborone" " " \
-"Africa/Harare" " " \
-"Africa/Johannesburg" " " \
-"Africa/Juba" " " \
-"Africa/Kampala" " " \
-"Africa/Khartoum" " " \
-"Africa/Kigali" " " \
-"Africa/Kinshasa" " " \
-"Africa/Lagos" " " \
-"Africa/Libreville" " " \
-"Africa/Lome" " " \
-"Africa/Luanda" " " \
-"Africa/Lubumbashi" " " \
-"Africa/Lusaka" " " \
-"Africa/Malabo" " " \
-"Africa/Maputo" " " \
-"Africa/Maseru" " " \
-"Africa/Mbabane" " " \
-"Africa/Mogadishu" " " \
-"Africa/Monrovia" " " \
-"Africa/Nairobi" " " \
-"Africa/Ndjamena" " " \
-"Africa/Niamey" " " \
-"Africa/Nouakchott" " " \
-"Africa/Ouagadougou" " " \
-"Africa/Porto-Novo" " " \
-"Africa/Sao_Tome" " " \
-"Africa/Timbuktu" " " \
-"Africa/Tripoli" " " \
-"Africa/Tunis" " " \
-"Africa/Windhoek" " " \
-"America/Adak" " " \
-"America/Anchorage" " " \
-"America/Anguilla" " " \
-"America/Antigua" " " \
-"America/Araguaina" " " \
-"America/Argentina/Buenos_Aires" " " \
-"America/Argentina/Catamarca" " " \
-"America/Argentina/ComodRivadavia" " " \
-"America/Argentina/Cordoba" " " \
-"America/Argentina/Jujuy" " " \
-"America/Argentina/La_Rioja" " " \
-"America/Argentina/Mendoza" " " \
-"America/Argentina/Rio_Gallegos" " " \
-"America/Argentina/Salta" " " \
-"America/Argentina/San_Juan" " " \
-"America/Argentina/San_Luis" " " \
-"America/Argentina/Tucuman" " " \
-"America/Argentina/Ushuaia" " " \
-"America/Aruba" " " \
-"America/Asuncion" " " \
-"America/Atikokan" " " \
-"America/Atka" " " \
-"America/Bahia" " " \
-"America/Bahia_Banderas" " " \
-"America/Barbados" " " \
-"America/Belem" " " \
-"America/Belize" " " \
-"America/Blanc-Sablon" " " \
-"America/Boa_Vista" " " \
-"America/Bogota" " " \
-"America/Boise" " " \
-"America/Buenos_Aires" " " \
-"America/Cambridge_Bay" " " \
-"America/Campo_Grande" " " \
-"America/Cancun" " " \
-"America/Caracas" " " \
-"America/Catamarca" " " \
-"America/Cayenne" " " \
-"America/Cayman" " " \
-"America/Chicago" " " \
-"America/Chihuahua" " " \
-"America/Coral_Harbour" " " \
-"America/Cordoba" " " \
-"America/Costa_Rica" " " \
-"America/Creston" " " \
-"America/Cuiaba" " " \
-"America/Curacao" " " \
-"America/Danmarkshavn" " " \
-"America/Dawson" " " \
-"America/Dawson_Creek" " " \
-"America/Denver" " " \
-"America/Detroit" " " \
-"America/Dominica" " " \
-"America/Edmonton" " " \
-"America/Eirunepe" " " \
-"America/El_Salvador" " " \
-"America/Ensenada" " " \
-"America/Fort_Wayne" " " \
-"America/Fortaleza" " " \
-"America/Glace_Bay" " " \
-"America/Godthab" " " \
-"America/Goose_Bay" " " \
-"America/Grand_Turk" " " \
-"America/Grenada" " " \
-"America/Guadeloupe" " " \
-"America/Guatemala" " " \
-"America/Guayaquil" " " \
-"America/Guyana" " " \
-"America/Halifax" " " \
-"America/Havana" " " \
-"America/Hermosillo" " " \
-"America/Indiana/Indianapolis" " " \
-"America/Indiana/Knox" " " \
-"America/Indiana/Marengo" " " \
-"America/Indiana/Petersburg" " " \
-"America/Indiana/Tell_City" " " \
-"America/Indiana/Vevay" " " \
-"America/Indiana/Vincennes" " " \
-"America/Indiana/Winamac" " " \
-"America/Indianapolis" " " \
-"America/Inuvik" " " \
-"America/Iqaluit" " " \
-"America/Jamaica" " " \
-"America/Jujuy" " " \
-"America/Juneau" " " \
-"America/Kentucky/Louisville" " " \
-"America/Kentucky/Monticello" " " \
-"America/Knox_IN" " " \
-"America/Kralendijk" " " \
-"America/La_Paz" " " \
-"America/Lima" " " \
-"America/Los_Angeles" " " \
-"America/Louisville" " " \
-"America/Lower_Princes" " " \
-"America/Maceio" " " \
-"America/Managua" " " \
-"America/Manaus" " " \
-"America/Marigot" " " \
-"America/Martinique" " " \
-"America/Matamoros" " " \
-"America/Mazatlan" " " \
-"America/Mendoza" " " \
-"America/Menominee" " " \
-"America/Merida" " " \
-"America/Metlakatla" " " \
-"America/Mexico_City" " " \
-"America/Miquelon" " " \
-"America/Moncton" " " \
-"America/Monterrey" " " \
-"America/Montevideo" " " \
-"America/Montreal" " " \
-"America/Montserrat" " " \
-"America/Nassau" " " \
-"America/New_York" " " \
-"America/Nipigon" " " \
-"America/Nome" " " \
-"America/Noronha" " " \
-"America/North_Dakota/Beulah" " " \
-"America/North_Dakota/Center" " " \
-"America/North_Dakota/New_Salem" " " \
-"America/Ojinaga" " " \
-"America/Panama" " " \
-"America/Pangnirtung" " " \
-"America/Paramaribo" " " \
-"America/Phoenix" " " \
-"America/Port-au-Prince" " " \
-"America/Port_of_Spain" " " \
-"America/Porto_Acre" " " \
-"America/Porto_Velho" " " \
-"America/Puerto_Rico" " " \
-"America/Rainy_River" " " \
-"America/Rankin_Inlet" " " \
-"America/Recife" " " \
-"America/Regina" " " \
-"America/Resolute" " " \
-"America/Rio_Branco" " " \
-"America/Rosario" " " \
-"America/Santa_Isabel" " " \
-"America/Santarem" " " \
-"America/Santiago" " " \
-"America/Santo_Domingo" " " \
-"America/Sao_Paulo" " " \
-"America/Scoresbysund" " " \
-"America/Shiprock" " " \
-"America/Sitka" " " \
-"America/St_Barthelemy" " " \
-"America/St_Johns" " " \
-"America/St_Kitts" " " \
-"America/St_Lucia" " " \
-"America/St_Thomas" " " \
-"America/St_Vincent" " " \
-"America/Swift_Current" " " \
-"America/Tegucigalpa" " " \
-"America/Thule" " " \
-"America/Thunder_Bay" " " \
-"America/Tijuana" " " \
-"America/Toronto" " " \
-"America/Tortola" " " \
-"America/Vancouver" " " \
-"America/Virgin" " " \
-"America/Whitehorse" " " \
-"America/Winnipeg" " " \
-"America/Yakutat" " " \
-"America/Yellowknife" " " \
-"Antarctica/Casey" " " \
-"Antarctica/Davis" " " \
-"Antarctica/DumontDUrville" " " \
-"Antarctica/Macquarie" " " \
-"Antarctica/Mawson" " " \
-"Antarctica/McMurdo" " " \
-"Antarctica/Palmer" " " \
-"Antarctica/Rothera" " " \
-"Antarctica/South_Pole" " " \
-"Antarctica/Syowa" " " \
-"Antarctica/Vostok" " " \
-"Arctic/Longyearbyen" " " \
-"Asia/Aden" " " \
-"Asia/Almaty" " " \
-"Asia/Amman" " " \
-"Asia/Anadyr" " " \
-"Asia/Aqtau" " " \
-"Asia/Aqtobe" " " \
-"Asia/Ashgabat" " " \
-"Asia/Ashkhabad" " " \
-"Asia/Baghdad" " " \
-"Asia/Bahrain" " " \
-"Asia/Baku" " " \
-"Asia/Bangkok" " " \
-"Asia/Beirut" " " \
-"Asia/Bishkek" " " \
-"Asia/Brunei" " " \
-"Asia/Calcutta" " " \
-"Asia/Choibalsan" " " \
-"Asia/Chongqing" " " \
-"Asia/Chungking" " " \
-"Asia/Colombo" " " \
-"Asia/Dacca" " " \
-"Asia/Damascus" " " \
-"Asia/Dhaka" " " \
-"Asia/Dili" " " \
-"Asia/Dubai" " " \
-"Asia/Dushanbe" " " \
-"Asia/Gaza" " " \
-"Asia/Harbin" " " \
-"Asia/Hebron" " " \
-"Asia/Ho_Chi_Minh" " " \
-"Asia/Hong_Kong" " " \
-"Asia/Hovd" " " \
-"Asia/Irkutsk" " " \
-"Asia/Istanbul" " " \
-"Asia/Jakarta" " " \
-"Asia/Jayapura" " " \
-"Asia/Jerusalem" " " \
-"Asia/Kabul" " " \
-"Asia/Kamchatka" " " \
-"Asia/Karachi" " " \
-"Asia/Kashgar" " " \
-"Asia/Kathmandu" " " \
-"Asia/Katmandu" " " \
-"Asia/Khandyga" " " \
-"Asia/Kolkata" " " \
-"Asia/Krasnoyarsk" " " \
-"Asia/Kuala_Lumpur" " " \
-"Asia/Kuching" " " \
-"Asia/Kuwait" " " \
-"Asia/Macao" " " \
-"Asia/Macau" " " \
-"Asia/Magadan" " " \
-"Asia/Makassar" " " \
-"Asia/Manila" " " \
-"Asia/Muscat" " " \
-"Asia/Nicosia" " " \
-"Asia/Novokuznetsk" " " \
-"Asia/Novosibirsk" " " \
-"Asia/Omsk" " " \
-"Asia/Oral" " " \
-"Asia/Phnom_Penh" " " \
-"Asia/Pontianak" " " \
-"Asia/Pyongyang" " " \
-"Asia/Qatar" " " \
-"Asia/Qyzylorda" " " \
-"Asia/Rangoon" " " \
-"Asia/Riyadh" " " \
-"Asia/Riyadh87" " " \
-"Asia/Riyadh88" " " \
-"Asia/Riyadh89" " " \
-"Asia/Saigon" " " \
-"Asia/Sakhalin" " " \
-"Asia/Samarkand" " " \
-"Asia/Seoul" " " \
-"Asia/Shanghai" " " \
-"Asia/Singapore" " " \
-"Asia/Taipei" " " \
-"Asia/Tashkent" " " \
-"Asia/Tbilisi" " " \
-"Asia/Tehran" " " \
-"Asia/Tel_Aviv" " " \
-"Asia/Thimbu" " " \
-"Asia/Thimphu" " " \
-"Asia/Tokyo" " " \
-"Asia/Ujung_Pandang" " " \
-"Asia/Ulaanbaatar" " " \
-"Asia/Ulan_Bator" " " \
-"Asia/Urumqi" " " \
-"Asia/Ust-Nera" " " \
-"Asia/Vientiane" " " \
-"Asia/Vladivostok" " " \
-"Asia/Yakutsk" " " \
-"Asia/Yekaterinburg" " " \
-"Asia/Yerevan" " " \
-"Atlantic/Azores" " " \
-"Atlantic/Bermuda" " " \
-"Atlantic/Canary" " " \
-"Atlantic/Cape_Verde" " " \
-"Atlantic/Faeroe" " " \
-"Atlantic/Faroe" " " \
-"Atlantic/Jan_Mayen" " " \
-"Atlantic/Madeira" " " \
-"Atlantic/Reykjavik" " " \
-"Atlantic/South_Georgia" " " \
-"Atlantic/St_Helena" " " \
-"Atlantic/Stanley" " " \
-"Australia/ACT" " " \
-"Australia/Adelaide" " " \
-"Australia/Brisbane" " " \
-"Australia/Broken_Hill" " " \
-"Australia/Canberra" " " \
-"Australia/Currie" " " \
-"Australia/Darwin" " " \
-"Australia/Eucla" " " \
-"Australia/Hobart" " " \
-"Australia/LHI" " " \
-"Australia/Lindeman" " " \
-"Australia/Lord_Howe" " " \
-"Australia/Melbourne" " " \
-"Australia/NSW" " " \
-"Australia/North" " " \
-"Australia/Perth" " " \
-"Australia/Queensland" " " \
-"Australia/South" " " \
-"Australia/Sydney" " " \
-"Australia/Tasmania" " " \
-"Australia/Victoria" " " \
-"Australia/West" " " \
-"Australia/Yancowinna" " " \
-"Brazil/Acre" " " \
-"Brazil/DeNoronha" " " \
-"Brazil/East" " " \
-"Brazil/West" " " \
-"CET" " " \
-"CST6CDT" " " \
-"Canada/Atlantic" " " \
-"Canada/Central" " " \
-"Canada/East-Saskatchewan" " " \
-"Canada/Eastern" " " \
-"Canada/Mountain" " " \
-"Canada/Newfoundland" " " \
-"Canada/Pacific" " " \
-"Canada/Saskatchewan" " " \
-"Canada/Yukon" " " \
-"Chile/Continental" " " \
-"Chile/EasterIsland" " " \
-"Cuba" " " \
-"EET" " " \
-"EST" " " \
-"EST5EDT" " " \
-"Egypt" " " \
-"Eire" " " \
-"Etc/GMT" " " \
-"Etc/GMT+0" " " \
-"Etc/GMT+1" " " \
-"Etc/GMT+10" " " \
-"Etc/GMT+11" " " \
-"Etc/GMT+12" " " \
-"Etc/GMT+2" " " \
-"Etc/GMT+3" " " \
-"Etc/GMT+4" " " \
-"Etc/GMT+5" " " \
-"Etc/GMT+6" " " \
-"Etc/GMT+7" " " \
-"Etc/GMT+8" " " \
-"Etc/GMT+9" " " \
-"Etc/GMT-0" " " \
-"Etc/GMT-1" " " \
-"Etc/GMT-10" " " \
-"Etc/GMT-11" " " \
-"Etc/GMT-12" " " \
-"Etc/GMT-13" " " \
-"Etc/GMT-14" " " \
-"Etc/GMT-2" " " \
-"Etc/GMT-3" " " \
-"Etc/GMT-4" " " \
-"Etc/GMT-5" " " \
-"Etc/GMT-6" " " \
-"Etc/GMT-7" " " \
-"Etc/GMT-8" " " \
-"Etc/GMT-9" " " \
-"Etc/GMT0" " " \
-"Etc/Greenwich" " " \
-"Etc/UCT" " " \
-"Etc/UTC" " " \
-"Etc/Universal" " " \
-"Etc/Zulu" " " \
-"Europe/Amsterdam" " " \
-"Europe/Andorra" " " \
-"Europe/Athens" " " \
-"Europe/Belfast" " " \
-"Europe/Belgrade" " " \
-"Europe/Berlin" " " \
-"Europe/Bratislava" " " \
-"Europe/Brussels" " " \
-"Europe/Bucharest" " " \
-"Europe/Budapest" " " \
-"Europe/Busingen" " " \
-"Europe/Chisinau" " " \
-"Europe/Copenhagen" " " \
-"Europe/Dublin" " " \
-"Europe/Gibraltar" " " \
-"Europe/Guernsey" " " \
-"Europe/Helsinki" " " \
-"Europe/Isle_of_Man" " " \
-"Europe/Istanbul" " " \
-"Europe/Jersey" " " \
-"Europe/Kaliningrad" " " \
-"Europe/Kiev" " " \
-"Europe/Lisbon" " " \
-"Europe/Ljubljana" " " \
-"Europe/London" " " \
-"Europe/Luxembourg" " " \
-"Europe/Madrid" " " \
-"Europe/Malta" " " \
-"Europe/Mariehamn" " " \
-"Europe/Minsk" " " \
-"Europe/Monaco" " " \
-"Europe/Moscow" " " \
-"Europe/Nicosia" " " \
-"Europe/Oslo" " " \
-"Europe/Paris" " " \
-"Europe/Podgorica" " " \
-"Europe/Prague" " " \
-"Europe/Riga" " " \
-"Europe/Rome" " " \
-"Europe/Samara" " " \
-"Europe/San_Marino" " " \
-"Europe/Sarajevo" " " \
-"Europe/Simferopol" " " \
-"Europe/Skopje" " " \
-"Europe/Sofia" " " \
-"Europe/Stockholm" " " \
-"Europe/Tallinn" " " \
-"Europe/Tirane" " " \
-"Europe/Tiraspol" " " \
-"Europe/Uzhgorod" " " \
-"Europe/Vaduz" " " \
-"Europe/Vatican" " " \
-"Europe/Vienna" " " \
-"Europe/Vilnius" " " \
-"Europe/Volgograd" " " \
-"Europe/Warsaw" " " \
-"Europe/Zagreb" " " \
-"Europe/Zaporozhye" " " \
-"Europe/Zurich" " " \
-"Factory" " " \
-"GB" " " \
-"GB-Eire" " " \
-"GMT" " " \
-"GMT+0" " " \
-"GMT-0" " " \
-"GMT0" " " \
-"Greenwich" " " \
-"HST" " " \
-"Hongkong" " " \
-"Iceland" " " \
-"Indian/Antananarivo" " " \
-"Indian/Chagos" " " \
-"Indian/Christmas" " " \
-"Indian/Cocos" " " \
-"Indian/Comoro" " " \
-"Indian/Kerguelen" " " \
-"Indian/Mahe" " " \
-"Indian/Maldives" " " \
-"Indian/Mauritius" " " \
-"Indian/Mayotte" " " \
-"Indian/Reunion" " " \
-"Iran" " " \
-"Israel" " " \
-"Jamaica" " " \
-"Japan" " " \
-"Kwajalein" " " \
-"Libya" " " \
-"MET" " " \
-"MST" " " \
-"MST7MDT" " " \
-"Mexico/BajaNorte" " " \
-"Mexico/BajaSur" " " \
-"Mexico/General" " " \
-"Mideast/Riyadh87" " " \
-"Mideast/Riyadh88" " " \
-"Mideast/Riyadh89" " " \
-"NZ" " " \
-"NZ-CHAT" " " \
-"Navajo" " " \
-"PRC" " " \
-"PST8PDT" " " \
-"Pacific/Apia" " " \
-"Pacific/Auckland" " " \
-"Pacific/Chatham" " " \
-"Pacific/Chuuk" " " \
-"Pacific/Easter" " " \
-"Pacific/Efate" " " \
-"Pacific/Enderbury" " " \
-"Pacific/Fakaofo" " " \
-"Pacific/Fiji" " " \
-"Pacific/Funafuti" " " \
-"Pacific/Galapagos" " " \
-"Pacific/Gambier" " " \
-"Pacific/Guadalcanal" " " \
-"Pacific/Guam" " " \
-"Pacific/Honolulu" " " \
-"Pacific/Johnston" " " \
-"Pacific/Kiritimati" " " \
-"Pacific/Kosrae" " " \
-"Pacific/Kwajalein" " " \
-"Pacific/Majuro" " " \
-"Pacific/Marquesas" " " \
-"Pacific/Midway" " " \
-"Pacific/Nauru" " " \
-"Pacific/Niue" " " \
-"Pacific/Norfolk" " " \
-"Pacific/Noumea" " " \
-"Pacific/Pago_Pago" " " \
-"Pacific/Palau" " " \
-"Pacific/Pitcairn" " " \
-"Pacific/Pohnpei" " " \
-"Pacific/Ponape" " " \
-"Pacific/Port_Moresby" " " \
-"Pacific/Rarotonga" " " \
-"Pacific/Saipan" " " \
-"Pacific/Samoa" " " \
-"Pacific/Tahiti" " " \
-"Pacific/Tarawa" " " \
-"Pacific/Tongatapu" " " \
-"Pacific/Truk" " " \
-"Pacific/Wake" " " \
-"Pacific/Wallis" " " \
-"Pacific/Yap" " " \
-"Poland" " " \
-"Portugal" " " \
-"ROC" " " \
-"ROK" " " \
-"Singapore" " " \
-"Turkey" " " \
-"UCT" " " \
-"UTC" " " \
-"Universal" " " \
-"W-SU" " " \
-"WET" " " \
-"Zulu" " " \
-"posix/Africa/Abidjan" " " \
-"posix/Africa/Accra" " " \
-"posix/Africa/Addis_Ababa" " " \
-"posix/Africa/Algiers" " " \
-"posix/Africa/Asmara" " " \
-"posix/Africa/Asmera" " " \
-"posix/Africa/Bamako" " " \
-"posix/Africa/Bangui" " " \
-"posix/Africa/Banjul" " " \
-"posix/Africa/Bissau" " " \
-"posix/Africa/Blantyre" " " \
-"posix/Africa/Brazzaville" " " \
-"posix/Africa/Bujumbura" " " \
-"posix/Africa/Cairo" " " \
-"posix/Africa/Casablanca" " " \
-"posix/Africa/Ceuta" " " \
-"posix/Africa/Conakry" " " \
-"posix/Africa/Dakar" " " \
-"posix/Africa/Dar_es_Salaam" " " \
-"posix/Africa/Djibouti" " " \
-"posix/Africa/Douala" " " \
-"posix/Africa/El_Aaiun" " " \
-"posix/Africa/Freetown" " " \
-"posix/Africa/Gaborone" " " \
-"posix/Africa/Harare" " " \
-"posix/Africa/Johannesburg" " " \
-"posix/Africa/Juba" " " \
-"posix/Africa/Kampala" " " \
-"posix/Africa/Khartoum" " " \
-"posix/Africa/Kigali" " " \
-"posix/Africa/Kinshasa" " " \
-"posix/Africa/Lagos" " " \
-"posix/Africa/Libreville" " " \
-"posix/Africa/Lome" " " \
-"posix/Africa/Luanda" " " \
-"posix/Africa/Lubumbashi" " " \
-"posix/Africa/Lusaka" " " \
-"posix/Africa/Malabo" " " \
-"posix/Africa/Maputo" " " \
-"posix/Africa/Maseru" " " \
-"posix/Africa/Mbabane" " " \
-"posix/Africa/Mogadishu" " " \
-"posix/Africa/Monrovia" " " \
-"posix/Africa/Nairobi" " " \
-"posix/Africa/Ndjamena" " " \
-"posix/Africa/Niamey" " " \
-"posix/Africa/Nouakchott" " " \
-"posix/Africa/Ouagadougou" " " \
-"posix/Africa/Porto-Novo" " " \
-"posix/Africa/Sao_Tome" " " \
-"posix/Africa/Timbuktu" " " \
-"posix/Africa/Tripoli" " " \
-"posix/Africa/Tunis" " " \
-"posix/Africa/Windhoek" " " \
-"posix/America/Adak" " " \
-"posix/America/Anchorage" " " \
-"posix/America/Anguilla" " " \
-"posix/America/Antigua" " " \
-"posix/America/Araguaina" " " \
-"posix/America/Argentina/Buenos_Aires" " " \
-"posix/America/Argentina/Catamarca" " " \
-"posix/America/Argentina/ComodRivadavia" " " \
-"posix/America/Argentina/Cordoba" " " \
-"posix/America/Argentina/Jujuy" " " \
-"posix/America/Argentina/La_Rioja" " " \
-"posix/America/Argentina/Mendoza" " " \
-"posix/America/Argentina/Rio_Gallegos" " " \
-"posix/America/Argentina/Salta" " " \
-"posix/America/Argentina/San_Juan" " " \
-"posix/America/Argentina/San_Luis" " " \
-"posix/America/Argentina/Tucuman" " " \
-"posix/America/Argentina/Ushuaia" " " \
-"posix/America/Aruba" " " \
-"posix/America/Asuncion" " " \
-"posix/America/Atikokan" " " \
-"posix/America/Atka" " " \
-"posix/America/Bahia" " " \
-"posix/America/Bahia_Banderas" " " \
-"posix/America/Barbados" " " \
-"posix/America/Belem" " " \
-"posix/America/Belize" " " \
-"posix/America/Blanc-Sablon" " " \
-"posix/America/Boa_Vista" " " \
-"posix/America/Bogota" " " \
-"posix/America/Boise" " " \
-"posix/America/Buenos_Aires" " " \
-"posix/America/Cambridge_Bay" " " \
-"posix/America/Campo_Grande" " " \
-"posix/America/Cancun" " " \
-"posix/America/Caracas" " " \
-"posix/America/Catamarca" " " \
-"posix/America/Cayenne" " " \
-"posix/America/Cayman" " " \
-"posix/America/Chicago" " " \
-"posix/America/Chihuahua" " " \
-"posix/America/Coral_Harbour" " " \
-"posix/America/Cordoba" " " \
-"posix/America/Costa_Rica" " " \
-"posix/America/Creston" " " \
-"posix/America/Cuiaba" " " \
-"posix/America/Curacao" " " \
-"posix/America/Danmarkshavn" " " \
-"posix/America/Dawson" " " \
-"posix/America/Dawson_Creek" " " \
-"posix/America/Denver" " " \
-"posix/America/Detroit" " " \
-"posix/America/Dominica" " " \
-"posix/America/Edmonton" " " \
-"posix/America/Eirunepe" " " \
-"posix/America/El_Salvador" " " \
-"posix/America/Ensenada" " " \
-"posix/America/Fort_Wayne" " " \
-"posix/America/Fortaleza" " " \
-"posix/America/Glace_Bay" " " \
-"posix/America/Godthab" " " \
-"posix/America/Goose_Bay" " " \
-"posix/America/Grand_Turk" " " \
-"posix/America/Grenada" " " \
-"posix/America/Guadeloupe" " " \
-"posix/America/Guatemala" " " \
-"posix/America/Guayaquil" " " \
-"posix/America/Guyana" " " \
-"posix/America/Halifax" " " \
-"posix/America/Havana" " " \
-"posix/America/Hermosillo" " " \
-"posix/America/Indiana/Indianapolis" " " \
-"posix/America/Indiana/Knox" " " \
-"posix/America/Indiana/Marengo" " " \
-"posix/America/Indiana/Petersburg" " " \
-"posix/America/Indiana/Tell_City" " " \
-"posix/America/Indiana/Vevay" " " \
-"posix/America/Indiana/Vincennes" " " \
-"posix/America/Indiana/Winamac" " " \
-"posix/America/Indianapolis" " " \
-"posix/America/Inuvik" " " \
-"posix/America/Iqaluit" " " \
-"posix/America/Jamaica" " " \
-"posix/America/Jujuy" " " \
-"posix/America/Juneau" " " \
-"posix/America/Kentucky/Louisville" " " \
-"posix/America/Kentucky/Monticello" " " \
-"posix/America/Knox_IN" " " \
-"posix/America/Kralendijk" " " \
-"posix/America/La_Paz" " " \
-"posix/America/Lima" " " \
-"posix/America/Los_Angeles" " " \
-"posix/America/Louisville" " " \
-"posix/America/Lower_Princes" " " \
-"posix/America/Maceio" " " \
-"posix/America/Managua" " " \
-"posix/America/Manaus" " " \
-"posix/America/Marigot" " " \
-"posix/America/Martinique" " " \
-"posix/America/Matamoros" " " \
-"posix/America/Mazatlan" " " \
-"posix/America/Mendoza" " " \
-"posix/America/Menominee" " " \
-"posix/America/Merida" " " \
-"posix/America/Metlakatla" " " \
-"posix/America/Mexico_City" " " \
-"posix/America/Miquelon" " " \
-"posix/America/Moncton" " " \
-"posix/America/Monterrey" " " \
-"posix/America/Montevideo" " " \
-"posix/America/Montreal" " " \
-"posix/America/Montserrat" " " \
-"posix/America/Nassau" " " \
-"posix/America/New_York" " " \
-"posix/America/Nipigon" " " \
-"posix/America/Nome" " " \
-"posix/America/Noronha" " " \
-"posix/America/North_Dakota/Beulah" " " \
-"posix/America/North_Dakota/Center" " " \
-"posix/America/North_Dakota/New_Salem" " " \
-"posix/America/Ojinaga" " " \
-"posix/America/Panama" " " \
-"posix/America/Pangnirtung" " " \
-"posix/America/Paramaribo" " " \
-"posix/America/Phoenix" " " \
-"posix/America/Port-au-Prince" " " \
-"posix/America/Port_of_Spain" " " \
-"posix/America/Porto_Acre" " " \
-"posix/America/Porto_Velho" " " \
-"posix/America/Puerto_Rico" " " \
-"posix/America/Rainy_River" " " \
-"posix/America/Rankin_Inlet" " " \
-"posix/America/Recife" " " \
-"posix/America/Regina" " " \
-"posix/America/Resolute" " " \
-"posix/America/Rio_Branco" " " \
-"posix/America/Rosario" " " \
-"posix/America/Santa_Isabel" " " \
-"posix/America/Santarem" " " \
-"posix/America/Santiago" " " \
-"posix/America/Santo_Domingo" " " \
-"posix/America/Sao_Paulo" " " \
-"posix/America/Scoresbysund" " " \
-"posix/America/Shiprock" " " \
-"posix/America/Sitka" " " \
-"posix/America/St_Barthelemy" " " \
-"posix/America/St_Johns" " " \
-"posix/America/St_Kitts" " " \
-"posix/America/St_Lucia" " " \
-"posix/America/St_Thomas" " " \
-"posix/America/St_Vincent" " " \
-"posix/America/Swift_Current" " " \
-"posix/America/Tegucigalpa" " " \
-"posix/America/Thule" " " \
-"posix/America/Thunder_Bay" " " \
-"posix/America/Tijuana" " " \
-"posix/America/Toronto" " " \
-"posix/America/Tortola" " " \
-"posix/America/Vancouver" " " \
-"posix/America/Virgin" " " \
-"posix/America/Whitehorse" " " \
-"posix/America/Winnipeg" " " \
-"posix/America/Yakutat" " " \
-"posix/America/Yellowknife" " " \
-"posix/Antarctica/Casey" " " \
-"posix/Antarctica/Davis" " " \
-"posix/Antarctica/DumontDUrville" " " \
-"posix/Antarctica/Macquarie" " " \
-"posix/Antarctica/Mawson" " " \
-"posix/Antarctica/McMurdo" " " \
-"posix/Antarctica/Palmer" " " \
-"posix/Antarctica/Rothera" " " \
-"posix/Antarctica/South_Pole" " " \
-"posix/Antarctica/Syowa" " " \
-"posix/Antarctica/Vostok" " " \
-"posix/Arctic/Longyearbyen" " " \
-"posix/Asia/Aden" " " \
-"posix/Asia/Almaty" " " \
-"posix/Asia/Amman" " " \
-"posix/Asia/Anadyr" " " \
-"posix/Asia/Aqtau" " " \
-"posix/Asia/Aqtobe" " " \
-"posix/Asia/Ashgabat" " " \
-"posix/Asia/Ashkhabad" " " \
-"posix/Asia/Baghdad" " " \
-"posix/Asia/Bahrain" " " \
-"posix/Asia/Baku" " " \
-"posix/Asia/Bangkok" " " \
-"posix/Asia/Beirut" " " \
-"posix/Asia/Bishkek" " " \
-"posix/Asia/Brunei" " " \
-"posix/Asia/Calcutta" " " \
-"posix/Asia/Choibalsan" " " \
-"posix/Asia/Chongqing" " " \
-"posix/Asia/Chungking" " " \
-"posix/Asia/Colombo" " " \
-"posix/Asia/Dacca" " " \
-"posix/Asia/Damascus" " " \
-"posix/Asia/Dhaka" " " \
-"posix/Asia/Dili" " " \
-"posix/Asia/Dubai" " " \
-"posix/Asia/Dushanbe" " " \
-"posix/Asia/Gaza" " " \
-"posix/Asia/Harbin" " " \
-"posix/Asia/Hebron" " " \
-"posix/Asia/Ho_Chi_Minh" " " \
-"posix/Asia/Hong_Kong" " " \
-"posix/Asia/Hovd" " " \
-"posix/Asia/Irkutsk" " " \
-"posix/Asia/Istanbul" " " \
-"posix/Asia/Jakarta" " " \
-"posix/Asia/Jayapura" " " \
-"posix/Asia/Jerusalem" " " \
-"posix/Asia/Kabul" " " \
-"posix/Asia/Kamchatka" " " \
-"posix/Asia/Karachi" " " \
-"posix/Asia/Kashgar" " " \
-"posix/Asia/Kathmandu" " " \
-"posix/Asia/Katmandu" " " \
-"posix/Asia/Khandyga" " " \
-"posix/Asia/Kolkata" " " \
-"posix/Asia/Krasnoyarsk" " " \
-"posix/Asia/Kuala_Lumpur" " " \
-"posix/Asia/Kuching" " " \
-"posix/Asia/Kuwait" " " \
-"posix/Asia/Macao" " " \
-"posix/Asia/Macau" " " \
-"posix/Asia/Magadan" " " \
-"posix/Asia/Makassar" " " \
-"posix/Asia/Manila" " " \
-"posix/Asia/Muscat" " " \
-"posix/Asia/Nicosia" " " \
-"posix/Asia/Novokuznetsk" " " \
-"posix/Asia/Novosibirsk" " " \
-"posix/Asia/Omsk" " " \
-"posix/Asia/Oral" " " \
-"posix/Asia/Phnom_Penh" " " \
-"posix/Asia/Pontianak" " " \
-"posix/Asia/Pyongyang" " " \
-"posix/Asia/Qatar" " " \
-"posix/Asia/Qyzylorda" " " \
-"posix/Asia/Rangoon" " " \
-"posix/Asia/Riyadh" " " \
-"posix/Asia/Riyadh87" " " \
-"posix/Asia/Riyadh88" " " \
-"posix/Asia/Riyadh89" " " \
-"posix/Asia/Saigon" " " \
-"posix/Asia/Sakhalin" " " \
-"posix/Asia/Samarkand" " " \
-"posix/Asia/Seoul" " " \
-"posix/Asia/Shanghai" " " \
-"posix/Asia/Singapore" " " \
-"posix/Asia/Taipei" " " \
-"posix/Asia/Tashkent" " " \
-"posix/Asia/Tbilisi" " " \
-"posix/Asia/Tehran" " " \
-"posix/Asia/Tel_Aviv" " " \
-"posix/Asia/Thimbu" " " \
-"posix/Asia/Thimphu" " " \
-"posix/Asia/Tokyo" " " \
-"posix/Asia/Ujung_Pandang" " " \
-"posix/Asia/Ulaanbaatar" " " \
-"posix/Asia/Ulan_Bator" " " \
-"posix/Asia/Urumqi" " " \
-"posix/Asia/Ust-Nera" " " \
-"posix/Asia/Vientiane" " " \
-"posix/Asia/Vladivostok" " " \
-"posix/Asia/Yakutsk" " " \
-"posix/Asia/Yekaterinburg" " " \
-"posix/Asia/Yerevan" " " \
-"posix/Atlantic/Azores" " " \
-"posix/Atlantic/Bermuda" " " \
-"posix/Atlantic/Canary" " " \
-"posix/Atlantic/Cape_Verde" " " \
-"posix/Atlantic/Faeroe" " " \
-"posix/Atlantic/Faroe" " " \
-"posix/Atlantic/Jan_Mayen" " " \
-"posix/Atlantic/Madeira" " " \
-"posix/Atlantic/Reykjavik" " " \
-"posix/Atlantic/South_Georgia" " " \
-"posix/Atlantic/St_Helena" " " \
-"posix/Atlantic/Stanley" " " \
-"posix/Australia/ACT" " " \
-"posix/Australia/Adelaide" " " \
-"posix/Australia/Brisbane" " " \
-"posix/Australia/Broken_Hill" " " \
-"posix/Australia/Canberra" " " \
-"posix/Australia/Currie" " " \
-"posix/Australia/Darwin" " " \
-"posix/Australia/Eucla" " " \
-"posix/Australia/Hobart" " " \
-"posix/Australia/LHI" " " \
-"posix/Australia/Lindeman" " " \
-"posix/Australia/Lord_Howe" " " \
-"posix/Australia/Melbourne" " " \
-"posix/Australia/NSW" " " \
-"posix/Australia/North" " " \
-"posix/Australia/Perth" " " \
-"posix/Australia/Queensland" " " \
-"posix/Australia/South" " " \
-"posix/Australia/Sydney" " " \
-"posix/Australia/Tasmania" " " \
-"posix/Australia/Victoria" " " \
-"posix/Australia/West" " " \
-"posix/Australia/Yancowinna" " " \
-"posix/Brazil/Acre" " " \
-"posix/Brazil/DeNoronha" " " \
-"posix/Brazil/East" " " \
-"posix/Brazil/West" " " \
-"posix/CET" " " \
-"posix/CST6CDT" " " \
-"posix/Canada/Atlantic" " " \
-"posix/Canada/Central" " " \
-"posix/Canada/East-Saskatchewan" " " \
-"posix/Canada/Eastern" " " \
-"posix/Canada/Mountain" " " \
-"posix/Canada/Newfoundland" " " \
-"posix/Canada/Pacific" " " \
-"posix/Canada/Saskatchewan" " " \
-"posix/Canada/Yukon" " " \
-"posix/Chile/Continental" " " \
-"posix/Chile/EasterIsland" " " \
-"posix/Cuba" " " \
-"posix/EET" " " \
-"posix/EST" " " \
-"posix/EST5EDT" " " \
-"posix/Egypt" " " \
-"posix/Eire" " " \
-"posix/Etc/GMT" " " \
-"posix/Etc/GMT+0" " " \
-"posix/Etc/GMT+1" " " \
-"posix/Etc/GMT+10" " " \
-"posix/Etc/GMT+11" " " \
-"posix/Etc/GMT+12" " " \
-"posix/Etc/GMT+2" " " \
-"posix/Etc/GMT+3" " " \
-"posix/Etc/GMT+4" " " \
-"posix/Etc/GMT+5" " " \
-"posix/Etc/GMT+6" " " \
-"posix/Etc/GMT+7" " " \
-"posix/Etc/GMT+8" " " \
-"posix/Etc/GMT+9" " " \
-"posix/Etc/GMT-0" " " \
-"posix/Etc/GMT-1" " " \
-"posix/Etc/GMT-10" " " \
-"posix/Etc/GMT-11" " " \
-"posix/Etc/GMT-12" " " \
-"posix/Etc/GMT-13" " " \
-"posix/Etc/GMT-14" " " \
-"posix/Etc/GMT-2" " " \
-"posix/Etc/GMT-3" " " \
-"posix/Etc/GMT-4" " " \
-"posix/Etc/GMT-5" " " \
-"posix/Etc/GMT-6" " " \
-"posix/Etc/GMT-7" " " \
-"posix/Etc/GMT-8" " " \
-"posix/Etc/GMT-9" " " \
-"posix/Etc/GMT0" " " \
-"posix/Etc/Greenwich" " " \
-"posix/Etc/UCT" " " \
-"posix/Etc/UTC" " " \
-"posix/Etc/Universal" " " \
-"posix/Etc/Zulu" " " \
-"posix/Europe/Amsterdam" " " \
-"posix/Europe/Andorra" " " \
-"posix/Europe/Athens" " " \
-"posix/Europe/Belfast" " " \
-"posix/Europe/Belgrade" " " \
-"posix/Europe/Berlin" " " \
-"posix/Europe/Bratislava" " " \
-"posix/Europe/Brussels" " " \
-"posix/Europe/Bucharest" " " \
-"posix/Europe/Budapest" " " \
-"posix/Europe/Busingen" " " \
-"posix/Europe/Chisinau" " " \
-"posix/Europe/Copenhagen" " " \
-"posix/Europe/Dublin" " " \
-"posix/Europe/Gibraltar" " " \
-"posix/Europe/Guernsey" " " \
-"posix/Europe/Helsinki" " " \
-"posix/Europe/Isle_of_Man" " " \
-"posix/Europe/Istanbul" " " \
-"posix/Europe/Jersey" " " \
-"posix/Europe/Kaliningrad" " " \
-"posix/Europe/Kiev" " " \
-"posix/Europe/Lisbon" " " \
-"posix/Europe/Ljubljana" " " \
-"posix/Europe/London" " " \
-"posix/Europe/Luxembourg" " " \
-"posix/Europe/Madrid" " " \
-"posix/Europe/Malta" " " \
-"posix/Europe/Mariehamn" " " \
-"posix/Europe/Minsk" " " \
-"posix/Europe/Monaco" " " \
-"posix/Europe/Moscow" " " \
-"posix/Europe/Nicosia" " " \
-"posix/Europe/Oslo" " " \
-"posix/Europe/Paris" " " \
-"posix/Europe/Podgorica" " " \
-"posix/Europe/Prague" " " \
-"posix/Europe/Riga" " " \
-"posix/Europe/Rome" " " \
-"posix/Europe/Samara" " " \
-"posix/Europe/San_Marino" " " \
-"posix/Europe/Sarajevo" " " \
-"posix/Europe/Simferopol" " " \
-"posix/Europe/Skopje" " " \
-"posix/Europe/Sofia" " " \
-"posix/Europe/Stockholm" " " \
-"posix/Europe/Tallinn" " " \
-"posix/Europe/Tirane" " " \
-"posix/Europe/Tiraspol" " " \
-"posix/Europe/Uzhgorod" " " \
-"posix/Europe/Vaduz" " " \
-"posix/Europe/Vatican" " " \
-"posix/Europe/Vienna" " " \
-"posix/Europe/Vilnius" " " \
-"posix/Europe/Volgograd" " " \
-"posix/Europe/Warsaw" " " \
-"posix/Europe/Zagreb" " " \
-"posix/Europe/Zaporozhye" " " \
-"posix/Europe/Zurich" " " \
-"posix/Factory" " " \
-"posix/GB" " " \
-"posix/GB-Eire" " " \
-"posix/GMT" " " \
-"posix/GMT+0" " " \
-"posix/GMT-0" " " \
-"posix/GMT0" " " \
-"posix/Greenwich" " " \
-"posix/HST" " " \
-"posix/Hongkong" " " \
-"posix/Iceland" " " \
-"posix/Indian/Antananarivo" " " \
-"posix/Indian/Chagos" " " \
-"posix/Indian/Christmas" " " \
-"posix/Indian/Cocos" " " \
-"posix/Indian/Comoro" " " \
-"posix/Indian/Kerguelen" " " \
-"posix/Indian/Mahe" " " \
-"posix/Indian/Maldives" " " \
-"posix/Indian/Mauritius" " " \
-"posix/Indian/Mayotte" " " \
-"posix/Indian/Reunion" " " \
-"posix/Iran" " " \
-"posix/Israel" " " \
-"posix/Jamaica" " " \
-"posix/Japan" " " \
-"posix/Kwajalein" " " \
-"posix/Libya" " " \
-"posix/MET" " " \
-"posix/MST" " " \
-"posix/MST7MDT" " " \
-"posix/Mexico/BajaNorte" " " \
-"posix/Mexico/BajaSur" " " \
-"posix/Mexico/General" " " \
-"posix/Mideast/Riyadh87" " " \
-"posix/Mideast/Riyadh88" " " \
-"posix/Mideast/Riyadh89" " " \
-"posix/NZ" " " \
-"posix/NZ-CHAT" " " \
-"posix/Navajo" " " \
-"posix/PRC" " " \
-"posix/PST8PDT" " " \
-"posix/Pacific/Apia" " " \
-"posix/Pacific/Auckland" " " \
-"posix/Pacific/Chatham" " " \
-"posix/Pacific/Chuuk" " " \
-"posix/Pacific/Easter" " " \
-"posix/Pacific/Efate" " " \
-"posix/Pacific/Enderbury" " " \
-"posix/Pacific/Fakaofo" " " \
-"posix/Pacific/Fiji" " " \
-"posix/Pacific/Funafuti" " " \
-"posix/Pacific/Galapagos" " " \
-"posix/Pacific/Gambier" " " \
-"posix/Pacific/Guadalcanal" " " \
-"posix/Pacific/Guam" " " \
-"posix/Pacific/Honolulu" " " \
-"posix/Pacific/Johnston" " " \
-"posix/Pacific/Kiritimati" " " \
-"posix/Pacific/Kosrae" " " \
-"posix/Pacific/Kwajalein" " " \
-"posix/Pacific/Majuro" " " \
-"posix/Pacific/Marquesas" " " \
-"posix/Pacific/Midway" " " \
-"posix/Pacific/Nauru" " " \
-"posix/Pacific/Niue" " " \
-"posix/Pacific/Norfolk" " " \
-"posix/Pacific/Noumea" " " \
-"posix/Pacific/Pago_Pago" " " \
-"posix/Pacific/Palau" " " \
-"posix/Pacific/Pitcairn" " " \
-"posix/Pacific/Pohnpei" " " \
-"posix/Pacific/Ponape" " " \
-"posix/Pacific/Port_Moresby" " " \
-"posix/Pacific/Rarotonga" " " \
-"posix/Pacific/Saipan" " " \
-"posix/Pacific/Samoa" " " \
-"posix/Pacific/Tahiti" " " \
-"posix/Pacific/Tarawa" " " \
-"posix/Pacific/Tongatapu" " " \
-"posix/Pacific/Truk" " " \
-"posix/Pacific/Wake" " " \
-"posix/Pacific/Wallis" " " \
-"posix/Pacific/Yap" " " \
-"posix/Poland" " " \
-"posix/Portugal" " " \
-"posix/ROC" " " \
-"posix/ROK" " " \
-"posix/Singapore" " " \
-"posix/Turkey" " " \
-"posix/UCT" " " \
-"posix/US/Alaska" " " \
-"posix/US/Aleutian" " " \
-"posix/US/Arizona" " " \
-"posix/US/Central" " " \
-"posix/US/East-Indiana" " " \
-"posix/US/Eastern" " " \
-"posix/US/Hawaii" " " \
-"posix/US/Indiana-Starke" " " \
-"posix/US/Michigan" " " \
-"posix/US/Mountain" " " \
-"posix/US/Pacific" " " \
-"posix/US/Pacific-New" " " \
-"posix/US/Samoa" " " \
-"posix/UTC" " " \
-"posix/Universal" " " \
-"posix/W-SU" " " \
-"posix/WET" " " \
-"posix/Zulu" " " \
-"posixrules" " " \
-"right/Africa/Abidjan" " " \
-"right/Africa/Accra" " " \
-"right/Africa/Addis_Ababa" " " \
-"right/Africa/Algiers" " " \
-"right/Africa/Asmara" " " \
-"right/Africa/Asmera" " " \
-"right/Africa/Bamako" " " \
-"right/Africa/Bangui" " " \
-"right/Africa/Banjul" " " \
-"right/Africa/Bissau" " " \
-"right/Africa/Blantyre" " " \
-"right/Africa/Brazzaville" " " \
-"right/Africa/Bujumbura" " " \
-"right/Africa/Cairo" " " \
-"right/Africa/Casablanca" " " \
-"right/Africa/Ceuta" " " \
-"right/Africa/Conakry" " " \
-"right/Africa/Dakar" " " \
-"right/Africa/Dar_es_Salaam" " " \
-"right/Africa/Djibouti" " " \
-"right/Africa/Douala" " " \
-"right/Africa/El_Aaiun" " " \
-"right/Africa/Freetown" " " \
-"right/Africa/Gaborone" " " \
-"right/Africa/Harare" " " \
-"right/Africa/Johannesburg" " " \
-"right/Africa/Juba" " " \
-"right/Africa/Kampala" " " \
-"right/Africa/Khartoum" " " \
-"right/Africa/Kigali" " " \
-"right/Africa/Kinshasa" " " \
-"right/Africa/Lagos" " " \
-"right/Africa/Libreville" " " \
-"right/Africa/Lome" " " \
-"right/Africa/Luanda" " " \
-"right/Africa/Lubumbashi" " " \
-"right/Africa/Lusaka" " " \
-"right/Africa/Malabo" " " \
-"right/Africa/Maputo" " " \
-"right/Africa/Maseru" " " \
-"right/Africa/Mbabane" " " \
-"right/Africa/Mogadishu" " " \
-"right/Africa/Monrovia" " " \
-"right/Africa/Nairobi" " " \
-"right/Africa/Ndjamena" " " \
-"right/Africa/Niamey" " " \
-"right/Africa/Nouakchott" " " \
-"right/Africa/Ouagadougou" " " \
-"right/Africa/Porto-Novo" " " \
-"right/Africa/Sao_Tome" " " \
-"right/Africa/Timbuktu" " " \
-"right/Africa/Tripoli" " " \
-"right/Africa/Tunis" " " \
-"right/Africa/Windhoek" " " \
-"right/America/Adak" " " \
-"right/America/Anchorage" " " \
-"right/America/Anguilla" " " \
-"right/America/Antigua" " " \
-"right/America/Araguaina" " " \
-"right/America/Argentina/Buenos_Aires" " " \
-"right/America/Argentina/Catamarca" " " \
-"right/America/Argentina/ComodRivadavia" " " \
-"right/America/Argentina/Cordoba" " " \
-"right/America/Argentina/Jujuy" " " \
-"right/America/Argentina/La_Rioja" " " \
-"right/America/Argentina/Mendoza" " " \
-"right/America/Argentina/Rio_Gallegos" " " \
-"right/America/Argentina/Salta" " " \
-"right/America/Argentina/San_Juan" " " \
-"right/America/Argentina/San_Luis" " " \
-"right/America/Argentina/Tucuman" " " \
-"right/America/Argentina/Ushuaia" " " \
-"right/America/Aruba" " " \
-"right/America/Asuncion" " " \
-"right/America/Atikokan" " " \
-"right/America/Atka" " " \
-"right/America/Bahia" " " \
-"right/America/Bahia_Banderas" " " \
-"right/America/Barbados" " " \
-"right/America/Belem" " " \
-"right/America/Belize" " " \
-"right/America/Blanc-Sablon" " " \
-"right/America/Boa_Vista" " " \
-"right/America/Bogota" " " \
-"right/America/Boise" " " \
-"right/America/Buenos_Aires" " " \
-"right/America/Cambridge_Bay" " " \
-"right/America/Campo_Grande" " " \
-"right/America/Cancun" " " \
-"right/America/Caracas" " " \
-"right/America/Catamarca" " " \
-"right/America/Cayenne" " " \
-"right/America/Cayman" " " \
-"right/America/Chicago" " " \
-"right/America/Chihuahua" " " \
-"right/America/Coral_Harbour" " " \
-"right/America/Cordoba" " " \
-"right/America/Costa_Rica" " " \
-"right/America/Creston" " " \
-"right/America/Cuiaba" " " \
-"right/America/Curacao" " " \
-"right/America/Danmarkshavn" " " \
-"right/America/Dawson" " " \
-"right/America/Dawson_Creek" " " \
-"right/America/Denver" " " \
-"right/America/Detroit" " " \
-"right/America/Dominica" " " \
-"right/America/Edmonton" " " \
-"right/America/Eirunepe" " " \
-"right/America/El_Salvador" " " \
-"right/America/Ensenada" " " \
-"right/America/Fort_Wayne" " " \
-"right/America/Fortaleza" " " \
-"right/America/Glace_Bay" " " \
-"right/America/Godthab" " " \
-"right/America/Goose_Bay" " " \
-"right/America/Grand_Turk" " " \
-"right/America/Grenada" " " \
-"right/America/Guadeloupe" " " \
-"right/America/Guatemala" " " \
-"right/America/Guayaquil" " " \
-"right/America/Guyana" " " \
-"right/America/Halifax" " " \
-"right/America/Havana" " " \
-"right/America/Hermosillo" " " \
-"right/America/Indiana/Indianapolis" " " \
-"right/America/Indiana/Knox" " " \
-"right/America/Indiana/Marengo" " " \
-"right/America/Indiana/Petersburg" " " \
-"right/America/Indiana/Tell_City" " " \
-"right/America/Indiana/Vevay" " " \
-"right/America/Indiana/Vincennes" " " \
-"right/America/Indiana/Winamac" " " \
-"right/America/Indianapolis" " " \
-"right/America/Inuvik" " " \
-"right/America/Iqaluit" " " \
-"right/America/Jamaica" " " \
-"right/America/Jujuy" " " \
-"right/America/Juneau" " " \
-"right/America/Kentucky/Louisville" " " \
-"right/America/Kentucky/Monticello" " " \
-"right/America/Knox_IN" " " \
-"right/America/Kralendijk" " " \
-"right/America/La_Paz" " " \
-"right/America/Lima" " " \
-"right/America/Los_Angeles" " " \
-"right/America/Louisville" " " \
-"right/America/Lower_Princes" " " \
-"right/America/Maceio" " " \
-"right/America/Managua" " " \
-"right/America/Manaus" " " \
-"right/America/Marigot" " " \
-"right/America/Martinique" " " \
-"right/America/Matamoros" " " \
-"right/America/Mazatlan" " " \
-"right/America/Mendoza" " " \
-"right/America/Menominee" " " \
-"right/America/Merida" " " \
-"right/America/Metlakatla" " " \
-"right/America/Mexico_City" " " \
-"right/America/Miquelon" " " \
-"right/America/Moncton" " " \
-"right/America/Monterrey" " " \
-"right/America/Montevideo" " " \
-"right/America/Montreal" " " \
-"right/America/Montserrat" " " \
-"right/America/Nassau" " " \
-"right/America/New_York" " " \
-"right/America/Nipigon" " " \
-"right/America/Nome" " " \
-"right/America/Noronha" " " \
-"right/America/North_Dakota/Beulah" " " \
-"right/America/North_Dakota/Center" " " \
-"right/America/North_Dakota/New_Salem" " " \
-"right/America/Ojinaga" " " \
-"right/America/Panama" " " \
-"right/America/Pangnirtung" " " \
-"right/America/Paramaribo" " " \
-"right/America/Phoenix" " " \
-"right/America/Port-au-Prince" " " \
-"right/America/Port_of_Spain" " " \
-"right/America/Porto_Acre" " " \
-"right/America/Porto_Velho" " " \
-"right/America/Puerto_Rico" " " \
-"right/America/Rainy_River" " " \
-"right/America/Rankin_Inlet" " " \
-"right/America/Recife" " " \
-"right/America/Regina" " " \
-"right/America/Resolute" " " \
-"right/America/Rio_Branco" " " \
-"right/America/Rosario" " " \
-"right/America/Santa_Isabel" " " \
-"right/America/Santarem" " " \
-"right/America/Santiago" " " \
-"right/America/Santo_Domingo" " " \
-"right/America/Sao_Paulo" " " \
-"right/America/Scoresbysund" " " \
-"right/America/Shiprock" " " \
-"right/America/Sitka" " " \
-"right/America/St_Barthelemy" " " \
-"right/America/St_Johns" " " \
-"right/America/St_Kitts" " " \
-"right/America/St_Lucia" " " \
-"right/America/St_Thomas" " " \
-"right/America/St_Vincent" " " \
-"right/America/Swift_Current" " " \
-"right/America/Tegucigalpa" " " \
-"right/America/Thule" " " \
-"right/America/Thunder_Bay" " " \
-"right/America/Tijuana" " " \
-"right/America/Toronto" " " \
-"right/America/Tortola" " " \
-"right/America/Vancouver" " " \
-"right/America/Virgin" " " \
-"right/America/Whitehorse" " " \
-"right/America/Winnipeg" " " \
-"right/America/Yakutat" " " \
-"right/America/Yellowknife" " " \
-"right/Antarctica/Casey" " " \
-"right/Antarctica/Davis" " " \
-"right/Antarctica/DumontDUrville" " " \
-"right/Antarctica/Macquarie" " " \
-"right/Antarctica/Mawson" " " \
-"right/Antarctica/McMurdo" " " \
-"right/Antarctica/Palmer" " " \
-"right/Antarctica/Rothera" " " \
-"right/Antarctica/South_Pole" " " \
-"right/Antarctica/Syowa" " " \
-"right/Antarctica/Vostok" " " \
-"right/Arctic/Longyearbyen" " " \
-"right/Asia/Aden" " " \
-"right/Asia/Almaty" " " \
-"right/Asia/Amman" " " \
-"right/Asia/Anadyr" " " \
-"right/Asia/Aqtau" " " \
-"right/Asia/Aqtobe" " " \
-"right/Asia/Ashgabat" " " \
-"right/Asia/Ashkhabad" " " \
-"right/Asia/Baghdad" " " \
-"right/Asia/Bahrain" " " \
-"right/Asia/Baku" " " \
-"right/Asia/Bangkok" " " \
-"right/Asia/Beirut" " " \
-"right/Asia/Bishkek" " " \
-"right/Asia/Brunei" " " \
-"right/Asia/Calcutta" " " \
-"right/Asia/Choibalsan" " " \
-"right/Asia/Chongqing" " " \
-"right/Asia/Chungking" " " \
-"right/Asia/Colombo" " " \
-"right/Asia/Dacca" " " \
-"right/Asia/Damascus" " " \
-"right/Asia/Dhaka" " " \
-"right/Asia/Dili" " " \
-"right/Asia/Dubai" " " \
-"right/Asia/Dushanbe" " " \
-"right/Asia/Gaza" " " \
-"right/Asia/Harbin" " " \
-"right/Asia/Hebron" " " \
-"right/Asia/Ho_Chi_Minh" " " \
-"right/Asia/Hong_Kong" " " \
-"right/Asia/Hovd" " " \
-"right/Asia/Irkutsk" " " \
-"right/Asia/Istanbul" " " \
-"right/Asia/Jakarta" " " \
-"right/Asia/Jayapura" " " \
-"right/Asia/Jerusalem" " " \
-"right/Asia/Kabul" " " \
-"right/Asia/Kamchatka" " " \
-"right/Asia/Karachi" " " \
-"right/Asia/Kashgar" " " \
-"right/Asia/Kathmandu" " " \
-"right/Asia/Katmandu" " " \
-"right/Asia/Khandyga" " " \
-"right/Asia/Kolkata" " " \
-"right/Asia/Krasnoyarsk" " " \
-"right/Asia/Kuala_Lumpur" " " \
-"right/Asia/Kuching" " " \
-"right/Asia/Kuwait" " " \
-"right/Asia/Macao" " " \
-"right/Asia/Macau" " " \
-"right/Asia/Magadan" " " \
-"right/Asia/Makassar" " " \
-"right/Asia/Manila" " " \
-"right/Asia/Muscat" " " \
-"right/Asia/Nicosia" " " \
-"right/Asia/Novokuznetsk" " " \
-"right/Asia/Novosibirsk" " " \
-"right/Asia/Omsk" " " \
-"right/Asia/Oral" " " \
-"right/Asia/Phnom_Penh" " " \
-"right/Asia/Pontianak" " " \
-"right/Asia/Pyongyang" " " \
-"right/Asia/Qatar" " " \
-"right/Asia/Qyzylorda" " " \
-"right/Asia/Rangoon" " " \
-"right/Asia/Riyadh" " " \
-"right/Asia/Riyadh87" " " \
-"right/Asia/Riyadh88" " " \
-"right/Asia/Riyadh89" " " \
-"right/Asia/Saigon" " " \
-"right/Asia/Sakhalin" " " \
-"right/Asia/Samarkand" " " \
-"right/Asia/Seoul" " " \
-"right/Asia/Shanghai" " " \
-"right/Asia/Singapore" " " \
-"right/Asia/Taipei" " " \
-"right/Asia/Tashkent" " " \
-"right/Asia/Tbilisi" " " \
-"right/Asia/Tehran" " " \
-"right/Asia/Tel_Aviv" " " \
-"right/Asia/Thimbu" " " \
-"right/Asia/Thimphu" " " \
-"right/Asia/Tokyo" " " \
-"right/Asia/Ujung_Pandang" " " \
-"right/Asia/Ulaanbaatar" " " \
-"right/Asia/Ulan_Bator" " " \
-"right/Asia/Urumqi" " " \
-"right/Asia/Ust-Nera" " " \
-"right/Asia/Vientiane" " " \
-"right/Asia/Vladivostok" " " \
-"right/Asia/Yakutsk" " " \
-"right/Asia/Yekaterinburg" " " \
-"right/Asia/Yerevan" " " \
-"right/Atlantic/Azores" " " \
-"right/Atlantic/Bermuda" " " \
-"right/Atlantic/Canary" " " \
-"right/Atlantic/Cape_Verde" " " \
-"right/Atlantic/Faeroe" " " \
-"right/Atlantic/Faroe" " " \
-"right/Atlantic/Jan_Mayen" " " \
-"right/Atlantic/Madeira" " " \
-"right/Atlantic/Reykjavik" " " \
-"right/Atlantic/South_Georgia" " " \
-"right/Atlantic/St_Helena" " " \
-"right/Atlantic/Stanley" " " \
-"right/Australia/ACT" " " \
-"right/Australia/Adelaide" " " \
-"right/Australia/Brisbane" " " \
-"right/Australia/Broken_Hill" " " \
-"right/Australia/Canberra" " " \
-"right/Australia/Currie" " " \
-"right/Australia/Darwin" " " \
-"right/Australia/Eucla" " " \
-"right/Australia/Hobart" " " \
-"right/Australia/LHI" " " \
-"right/Australia/Lindeman" " " \
-"right/Australia/Lord_Howe" " " \
-"right/Australia/Melbourne" " " \
-"right/Australia/NSW" " " \
-"right/Australia/North" " " \
-"right/Australia/Perth" " " \
-"right/Australia/Queensland" " " \
-"right/Australia/South" " " \
-"right/Australia/Sydney" " " \
-"right/Australia/Tasmania" " " \
-"right/Australia/Victoria" " " \
-"right/Australia/West" " " \
-"right/Australia/Yancowinna" " " \
-"right/Brazil/Acre" " " \
-"right/Brazil/DeNoronha" " " \
-"right/Brazil/East" " " \
-"right/Brazil/West" " " \
-"right/CET" " " \
-"right/CST6CDT" " " \
-"right/Canada/Atlantic" " " \
-"right/Canada/Central" " " \
-"right/Canada/East-Saskatchewan" " " \
-"right/Canada/Eastern" " " \
-"right/Canada/Mountain" " " \
-"right/Canada/Newfoundland" " " \
-"right/Canada/Pacific" " " \
-"right/Canada/Saskatchewan" " " \
-"right/Canada/Yukon" " " \
-"right/Chile/Continental" " " \
-"right/Chile/EasterIsland" " " \
-"right/Cuba" " " \
-"right/EET" " " \
-"right/EST" " " \
-"right/EST5EDT" " " \
-"right/Egypt" " " \
-"right/Eire" " " \
-"right/Etc/GMT" " " \
-"right/Etc/GMT+0" " " \
-"right/Etc/GMT+1" " " \
-"right/Etc/GMT+10" " " \
-"right/Etc/GMT+11" " " \
-"right/Etc/GMT+12" " " \
-"right/Etc/GMT+2" " " \
-"right/Etc/GMT+3" " " \
-"right/Etc/GMT+4" " " \
-"right/Etc/GMT+5" " " \
-"right/Etc/GMT+6" " " \
-"right/Etc/GMT+7" " " \
-"right/Etc/GMT+8" " " \
-"right/Etc/GMT+9" " " \
-"right/Etc/GMT-0" " " \
-"right/Etc/GMT-1" " " \
-"right/Etc/GMT-10" " " \
-"right/Etc/GMT-11" " " \
-"right/Etc/GMT-12" " " \
-"right/Etc/GMT-13" " " \
-"right/Etc/GMT-14" " " \
-"right/Etc/GMT-2" " " \
-"right/Etc/GMT-3" " " \
-"right/Etc/GMT-4" " " \
-"right/Etc/GMT-5" " " \
-"right/Etc/GMT-6" " " \
-"right/Etc/GMT-7" " " \
-"right/Etc/GMT-8" " " \
-"right/Etc/GMT-9" " " \
-"right/Etc/GMT0" " " \
-"right/Etc/Greenwich" " " \
-"right/Etc/UCT" " " \
-"right/Etc/UTC" " " \
-"right/Etc/Universal" " " \
-"right/Etc/Zulu" " " \
-"right/Europe/Amsterdam" " " \
-"right/Europe/Andorra" " " \
-"right/Europe/Athens" " " \
-"right/Europe/Belfast" " " \
-"right/Europe/Belgrade" " " \
-"right/Europe/Berlin" " " \
-"right/Europe/Bratislava" " " \
-"right/Europe/Brussels" " " \
-"right/Europe/Bucharest" " " \
-"right/Europe/Budapest" " " \
-"right/Europe/Busingen" " " \
-"right/Europe/Chisinau" " " \
-"right/Europe/Copenhagen" " " \
-"right/Europe/Dublin" " " \
-"right/Europe/Gibraltar" " " \
-"right/Europe/Guernsey" " " \
-"right/Europe/Helsinki" " " \
-"right/Europe/Isle_of_Man" " " \
-"right/Europe/Istanbul" " " \
-"right/Europe/Jersey" " " \
-"right/Europe/Kaliningrad" " " \
-"right/Europe/Kiev" " " \
-"right/Europe/Lisbon" " " \
-"right/Europe/Ljubljana" " " \
-"right/Europe/London" " " \
-"right/Europe/Luxembourg" " " \
-"right/Europe/Madrid" " " \
-"right/Europe/Malta" " " \
-"right/Europe/Mariehamn" " " \
-"right/Europe/Minsk" " " \
-"right/Europe/Monaco" " " \
-"right/Europe/Moscow" " " \
-"right/Europe/Nicosia" " " \
-"right/Europe/Oslo" " " \
-"right/Europe/Paris" " " \
-"right/Europe/Podgorica" " " \
-"right/Europe/Prague" " " \
-"right/Europe/Riga" " " \
-"right/Europe/Rome" " " \
-"right/Europe/Samara" " " \
-"right/Europe/San_Marino" " " \
-"right/Europe/Sarajevo" " " \
-"right/Europe/Simferopol" " " \
-"right/Europe/Skopje" " " \
-"right/Europe/Sofia" " " \
-"right/Europe/Stockholm" " " \
-"right/Europe/Tallinn" " " \
-"right/Europe/Tirane" " " \
-"right/Europe/Tiraspol" " " \
-"right/Europe/Uzhgorod" " " \
-"right/Europe/Vaduz" " " \
-"right/Europe/Vatican" " " \
-"right/Europe/Vienna" " " \
-"right/Europe/Vilnius" " " \
-"right/Europe/Volgograd" " " \
-"right/Europe/Warsaw" " " \
-"right/Europe/Zagreb" " " \
-"right/Europe/Zaporozhye" " " \
-"right/Europe/Zurich" " " \
-"right/Factory" " " \
-"right/GB" " " \
-"right/GB-Eire" " " \
-"right/GMT" " " \
-"right/GMT+0" " " \
-"right/GMT-0" " " \
-"right/GMT0" " " \
-"right/Greenwich" " " \
-"right/HST" " " \
-"right/Hongkong" " " \
-"right/Iceland" " " \
-"right/Indian/Antananarivo" " " \
-"right/Indian/Chagos" " " \
-"right/Indian/Christmas" " " \
-"right/Indian/Cocos" " " \
-"right/Indian/Comoro" " " \
-"right/Indian/Kerguelen" " " \
-"right/Indian/Mahe" " " \
-"right/Indian/Maldives" " " \
-"right/Indian/Mauritius" " " \
-"right/Indian/Mayotte" " " \
-"right/Indian/Reunion" " " \
-"right/Iran" " " \
-"right/Israel" " " \
-"right/Jamaica" " " \
-"right/Japan" " " \
-"right/Kwajalein" " " \
-"right/Libya" " " \
-"right/MET" " " \
-"right/MST" " " \
-"right/MST7MDT" " " \
-"right/Mexico/BajaNorte" " " \
-"right/Mexico/BajaSur" " " \
-"right/Mexico/General" " " \
-"right/Mideast/Riyadh87" " " \
-"right/Mideast/Riyadh88" " " \
-"right/Mideast/Riyadh89" " " \
-"right/NZ" " " \
-"right/NZ-CHAT" " " \
-"right/Navajo" " " \
-"right/PRC" " " \
-"right/PST8PDT" " " \
-"right/Pacific/Apia" " " \
-"right/Pacific/Auckland" " " \
-"right/Pacific/Chatham" " " \
-"right/Pacific/Chuuk" " " \
-"right/Pacific/Easter" " " \
-"right/Pacific/Efate" " " \
-"right/Pacific/Enderbury" " " \
-"right/Pacific/Fakaofo" " " \
-"right/Pacific/Fiji" " " \
-"right/Pacific/Funafuti" " " \
-"right/Pacific/Galapagos" " " \
-"right/Pacific/Gambier" " " \
-"right/Pacific/Guadalcanal" " " \
-"right/Pacific/Guam" " " \
-"right/Pacific/Honolulu" " " \
-"right/Pacific/Johnston" " " \
-"right/Pacific/Kiritimati" " " \
-"right/Pacific/Kosrae" " " \
-"right/Pacific/Kwajalein" " " \
-"right/Pacific/Majuro" " " \
-"right/Pacific/Marquesas" " " \
-"right/Pacific/Midway" " " \
-"right/Pacific/Nauru" " " \
-"right/Pacific/Niue" " " \
-"right/Pacific/Norfolk" " " \
-"right/Pacific/Noumea" " " \
-"right/Pacific/Pago_Pago" " " \
-"right/Pacific/Palau" " " \
-"right/Pacific/Pitcairn" " " \
-"right/Pacific/Pohnpei" " " \
-"right/Pacific/Ponape" " " \
-"right/Pacific/Port_Moresby" " " \
-"right/Pacific/Rarotonga" " " \
-"right/Pacific/Saipan" " " \
-"right/Pacific/Samoa" " " \
-"right/Pacific/Tahiti" " " \
-"right/Pacific/Tarawa" " " \
-"right/Pacific/Tongatapu" " " \
-"right/Pacific/Truk" " " \
-"right/Pacific/Wake" " " \
-"right/Pacific/Wallis" " " \
-"right/Pacific/Yap" " " \
-"right/Poland" " " \
-"right/Portugal" " " \
-"right/ROC" " " \
-"right/ROK" " " \
-"right/Singapore" " " \
-"right/Turkey" " " \
-"right/UCT" " " \
-"right/US/Alaska" " " \
-"right/US/Aleutian" " " \
-"right/US/Arizona" " " \
-"right/US/Central" " " \
-"right/US/East-Indiana" " " \
-"right/US/Eastern" " " \
-"right/US/Hawaii" " " \
-"right/US/Indiana-Starke" " " \
-"right/US/Michigan" " " \
-"right/US/Mountain" " " \
-"right/US/Pacific" " " \
-"right/US/Pacific-New" " " \
-"right/US/Samoa" " " \
-"right/UTC" " " \
-"right/Universal" " " \
-"right/W-SU" " " \
-"right/WET" " " \
-"right/Zulu" " " \
- 2> $TMP/tz
-
- if [ $? = 1 -o $? = 255 ]; then
- rm -f $TMP/tz
- exit
- fi
-
- TIMEZONE="`cat $TMP/tz`"
- rm -f $TMP/tz
-
- setzone $TIMEZONE
- exit
-else
- ###
- ### use text prompts
- ###
- while [ 0 ]; do
- echo -n "Would you like to configure your timezone ([y]es, [n]o)? "
- read TIMECONF;
- echo
-
- if [ "$TIMECONF" = "n" ]; then
- break
- fi
-
- cat << EOF
-Select one of these timezones:
-
-US/Alaska
-US/Aleutian
-US/Arizona
-US/Central
-US/East-Indiana
-US/Eastern
-US/Hawaii
-US/Indiana-Starke
-US/Michigan
-US/Mountain
-US/Pacific
-US/Pacific-New
-US/Samoa
-Africa/Abidjan
-Africa/Accra
-Africa/Addis_Ababa
-Africa/Algiers
-Africa/Asmara
-Africa/Asmera
-Africa/Bamako
-Africa/Bangui
-Africa/Banjul
-Africa/Bissau
-Africa/Blantyre
-Africa/Brazzaville
-Africa/Bujumbura
-Africa/Cairo
-Africa/Casablanca
-Africa/Ceuta
-Africa/Conakry
-Africa/Dakar
-Africa/Dar_es_Salaam
-Africa/Djibouti
-Africa/Douala
-Africa/El_Aaiun
-Africa/Freetown
-Africa/Gaborone
-Africa/Harare
-Africa/Johannesburg
-Africa/Juba
-Africa/Kampala
-Africa/Khartoum
-Africa/Kigali
-Africa/Kinshasa
-Africa/Lagos
-Africa/Libreville
-Africa/Lome
-Africa/Luanda
-Africa/Lubumbashi
-Africa/Lusaka
-Africa/Malabo
-Africa/Maputo
-Africa/Maseru
-Africa/Mbabane
-Africa/Mogadishu
-Africa/Monrovia
-Africa/Nairobi
-Africa/Ndjamena
-Africa/Niamey
-Africa/Nouakchott
-Africa/Ouagadougou
-Africa/Porto-Novo
-Africa/Sao_Tome
-Africa/Timbuktu
-Africa/Tripoli
-Africa/Tunis
-Africa/Windhoek
-America/Adak
-America/Anchorage
-America/Anguilla
-America/Antigua
-America/Araguaina
-America/Argentina/Buenos_Aires
-America/Argentina/Catamarca
-America/Argentina/ComodRivadavia
-America/Argentina/Cordoba
-America/Argentina/Jujuy
-America/Argentina/La_Rioja
-America/Argentina/Mendoza
-America/Argentina/Rio_Gallegos
-America/Argentina/Salta
-America/Argentina/San_Juan
-America/Argentina/San_Luis
-America/Argentina/Tucuman
-America/Argentina/Ushuaia
-America/Aruba
-America/Asuncion
-America/Atikokan
-America/Atka
-America/Bahia
-America/Bahia_Banderas
-America/Barbados
-America/Belem
-America/Belize
-America/Blanc-Sablon
-America/Boa_Vista
-America/Bogota
-America/Boise
-America/Buenos_Aires
-America/Cambridge_Bay
-America/Campo_Grande
-America/Cancun
-America/Caracas
-America/Catamarca
-America/Cayenne
-America/Cayman
-America/Chicago
-America/Chihuahua
-America/Coral_Harbour
-America/Cordoba
-America/Costa_Rica
-America/Creston
-America/Cuiaba
-America/Curacao
-America/Danmarkshavn
-America/Dawson
-America/Dawson_Creek
-America/Denver
-America/Detroit
-America/Dominica
-America/Edmonton
-America/Eirunepe
-America/El_Salvador
-America/Ensenada
-America/Fort_Wayne
-America/Fortaleza
-America/Glace_Bay
-America/Godthab
-America/Goose_Bay
-America/Grand_Turk
-America/Grenada
-America/Guadeloupe
-America/Guatemala
-America/Guayaquil
-America/Guyana
-America/Halifax
-America/Havana
-America/Hermosillo
-America/Indiana/Indianapolis
-America/Indiana/Knox
-America/Indiana/Marengo
-America/Indiana/Petersburg
-America/Indiana/Tell_City
-America/Indiana/Vevay
-America/Indiana/Vincennes
-America/Indiana/Winamac
-America/Indianapolis
-America/Inuvik
-America/Iqaluit
-America/Jamaica
-America/Jujuy
-America/Juneau
-America/Kentucky/Louisville
-America/Kentucky/Monticello
-America/Knox_IN
-America/Kralendijk
-America/La_Paz
-America/Lima
-America/Los_Angeles
-America/Louisville
-America/Lower_Princes
-America/Maceio
-America/Managua
-America/Manaus
-America/Marigot
-America/Martinique
-America/Matamoros
-America/Mazatlan
-America/Mendoza
-America/Menominee
-America/Merida
-America/Metlakatla
-America/Mexico_City
-America/Miquelon
-America/Moncton
-America/Monterrey
-America/Montevideo
-America/Montreal
-America/Montserrat
-America/Nassau
-America/New_York
-America/Nipigon
-America/Nome
-America/Noronha
-America/North_Dakota/Beulah
-America/North_Dakota/Center
-America/North_Dakota/New_Salem
-America/Ojinaga
-America/Panama
-America/Pangnirtung
-America/Paramaribo
-America/Phoenix
-America/Port-au-Prince
-America/Port_of_Spain
-America/Porto_Acre
-America/Porto_Velho
-America/Puerto_Rico
-America/Rainy_River
-America/Rankin_Inlet
-America/Recife
-America/Regina
-America/Resolute
-America/Rio_Branco
-America/Rosario
-America/Santa_Isabel
-America/Santarem
-America/Santiago
-America/Santo_Domingo
-America/Sao_Paulo
-America/Scoresbysund
-America/Shiprock
-America/Sitka
-America/St_Barthelemy
-America/St_Johns
-America/St_Kitts
-America/St_Lucia
-America/St_Thomas
-America/St_Vincent
-America/Swift_Current
-America/Tegucigalpa
-America/Thule
-America/Thunder_Bay
-America/Tijuana
-America/Toronto
-America/Tortola
-America/Vancouver
-America/Virgin
-America/Whitehorse
-America/Winnipeg
-America/Yakutat
-America/Yellowknife
-Antarctica/Casey
-Antarctica/Davis
-Antarctica/DumontDUrville
-Antarctica/Macquarie
-Antarctica/Mawson
-Antarctica/McMurdo
-Antarctica/Palmer
-Antarctica/Rothera
-Antarctica/South_Pole
-Antarctica/Syowa
-Antarctica/Vostok
-Arctic/Longyearbyen
-Asia/Aden
-Asia/Almaty
-Asia/Amman
-Asia/Anadyr
-Asia/Aqtau
-Asia/Aqtobe
-Asia/Ashgabat
-Asia/Ashkhabad
-Asia/Baghdad
-Asia/Bahrain
-Asia/Baku
-Asia/Bangkok
-Asia/Beirut
-Asia/Bishkek
-Asia/Brunei
-Asia/Calcutta
-Asia/Choibalsan
-Asia/Chongqing
-Asia/Chungking
-Asia/Colombo
-Asia/Dacca
-Asia/Damascus
-Asia/Dhaka
-Asia/Dili
-Asia/Dubai
-Asia/Dushanbe
-Asia/Gaza
-Asia/Harbin
-Asia/Hebron
-Asia/Ho_Chi_Minh
-Asia/Hong_Kong
-Asia/Hovd
-Asia/Irkutsk
-Asia/Istanbul
-Asia/Jakarta
-Asia/Jayapura
-Asia/Jerusalem
-Asia/Kabul
-Asia/Kamchatka
-Asia/Karachi
-Asia/Kashgar
-Asia/Kathmandu
-Asia/Katmandu
-Asia/Khandyga
-Asia/Kolkata
-Asia/Krasnoyarsk
-Asia/Kuala_Lumpur
-Asia/Kuching
-Asia/Kuwait
-Asia/Macao
-Asia/Macau
-Asia/Magadan
-Asia/Makassar
-Asia/Manila
-Asia/Muscat
-Asia/Nicosia
-Asia/Novokuznetsk
-Asia/Novosibirsk
-Asia/Omsk
-Asia/Oral
-Asia/Phnom_Penh
-Asia/Pontianak
-Asia/Pyongyang
-Asia/Qatar
-Asia/Qyzylorda
-Asia/Rangoon
-Asia/Riyadh
-Asia/Riyadh87
-Asia/Riyadh88
-Asia/Riyadh89
-Asia/Saigon
-Asia/Sakhalin
-Asia/Samarkand
-Asia/Seoul
-Asia/Shanghai
-Asia/Singapore
-Asia/Taipei
-Asia/Tashkent
-Asia/Tbilisi
-Asia/Tehran
-Asia/Tel_Aviv
-Asia/Thimbu
-Asia/Thimphu
-Asia/Tokyo
-Asia/Ujung_Pandang
-Asia/Ulaanbaatar
-Asia/Ulan_Bator
-Asia/Urumqi
-Asia/Ust-Nera
-Asia/Vientiane
-Asia/Vladivostok
-Asia/Yakutsk
-Asia/Yekaterinburg
-Asia/Yerevan
-Atlantic/Azores
-Atlantic/Bermuda
-Atlantic/Canary
-Atlantic/Cape_Verde
-Atlantic/Faeroe
-Atlantic/Faroe
-Atlantic/Jan_Mayen
-Atlantic/Madeira
-Atlantic/Reykjavik
-Atlantic/South_Georgia
-Atlantic/St_Helena
-Atlantic/Stanley
-Australia/ACT
-Australia/Adelaide
-Australia/Brisbane
-Australia/Broken_Hill
-Australia/Canberra
-Australia/Currie
-Australia/Darwin
-Australia/Eucla
-Australia/Hobart
-Australia/LHI
-Australia/Lindeman
-Australia/Lord_Howe
-Australia/Melbourne
-Australia/NSW
-Australia/North
-Australia/Perth
-Australia/Queensland
-Australia/South
-Australia/Sydney
-Australia/Tasmania
-Australia/Victoria
-Australia/West
-Australia/Yancowinna
-Brazil/Acre
-Brazil/DeNoronha
-Brazil/East
-Brazil/West
-CET
-CST6CDT
-Canada/Atlantic
-Canada/Central
-Canada/East-Saskatchewan
-Canada/Eastern
-Canada/Mountain
-Canada/Newfoundland
-Canada/Pacific
-Canada/Saskatchewan
-Canada/Yukon
-Chile/Continental
-Chile/EasterIsland
-Cuba
-EET
-EST
-EST5EDT
-Egypt
-Eire
-Etc/GMT
-Etc/GMT+0
-Etc/GMT+1
-Etc/GMT+10
-Etc/GMT+11
-Etc/GMT+12
-Etc/GMT+2
-Etc/GMT+3
-Etc/GMT+4
-Etc/GMT+5
-Etc/GMT+6
-Etc/GMT+7
-Etc/GMT+8
-Etc/GMT+9
-Etc/GMT-0
-Etc/GMT-1
-Etc/GMT-10
-Etc/GMT-11
-Etc/GMT-12
-Etc/GMT-13
-Etc/GMT-14
-Etc/GMT-2
-Etc/GMT-3
-Etc/GMT-4
-Etc/GMT-5
-Etc/GMT-6
-Etc/GMT-7
-Etc/GMT-8
-Etc/GMT-9
-Etc/GMT0
-Etc/Greenwich
-Etc/UCT
-Etc/UTC
-Etc/Universal
-Etc/Zulu
-Europe/Amsterdam
-Europe/Andorra
-Europe/Athens
-Europe/Belfast
-Europe/Belgrade
-Europe/Berlin
-Europe/Bratislava
-Europe/Brussels
-Europe/Bucharest
-Europe/Budapest
-Europe/Busingen
-Europe/Chisinau
-Europe/Copenhagen
-Europe/Dublin
-Europe/Gibraltar
-Europe/Guernsey
-Europe/Helsinki
-Europe/Isle_of_Man
-Europe/Istanbul
-Europe/Jersey
-Europe/Kaliningrad
-Europe/Kiev
-Europe/Lisbon
-Europe/Ljubljana
-Europe/London
-Europe/Luxembourg
-Europe/Madrid
-Europe/Malta
-Europe/Mariehamn
-Europe/Minsk
-Europe/Monaco
-Europe/Moscow
-Europe/Nicosia
-Europe/Oslo
-Europe/Paris
-Europe/Podgorica
-Europe/Prague
-Europe/Riga
-Europe/Rome
-Europe/Samara
-Europe/San_Marino
-Europe/Sarajevo
-Europe/Simferopol
-Europe/Skopje
-Europe/Sofia
-Europe/Stockholm
-Europe/Tallinn
-Europe/Tirane
-Europe/Tiraspol
-Europe/Uzhgorod
-Europe/Vaduz
-Europe/Vatican
-Europe/Vienna
-Europe/Vilnius
-Europe/Volgograd
-Europe/Warsaw
-Europe/Zagreb
-Europe/Zaporozhye
-Europe/Zurich
-Factory
-GB
-GB-Eire
-GMT
-GMT+0
-GMT-0
-GMT0
-Greenwich
-HST
-Hongkong
-Iceland
-Indian/Antananarivo
-Indian/Chagos
-Indian/Christmas
-Indian/Cocos
-Indian/Comoro
-Indian/Kerguelen
-Indian/Mahe
-Indian/Maldives
-Indian/Mauritius
-Indian/Mayotte
-Indian/Reunion
-Iran
-Israel
-Jamaica
-Japan
-Kwajalein
-Libya
-MET
-MST
-MST7MDT
-Mexico/BajaNorte
-Mexico/BajaSur
-Mexico/General
-Mideast/Riyadh87
-Mideast/Riyadh88
-Mideast/Riyadh89
-NZ
-NZ-CHAT
-Navajo
-PRC
-PST8PDT
-Pacific/Apia
-Pacific/Auckland
-Pacific/Chatham
-Pacific/Chuuk
-Pacific/Easter
-Pacific/Efate
-Pacific/Enderbury
-Pacific/Fakaofo
-Pacific/Fiji
-Pacific/Funafuti
-Pacific/Galapagos
-Pacific/Gambier
-Pacific/Guadalcanal
-Pacific/Guam
-Pacific/Honolulu
-Pacific/Johnston
-Pacific/Kiritimati
-Pacific/Kosrae
-Pacific/Kwajalein
-Pacific/Majuro
-Pacific/Marquesas
-Pacific/Midway
-Pacific/Nauru
-Pacific/Niue
-Pacific/Norfolk
-Pacific/Noumea
-Pacific/Pago_Pago
-Pacific/Palau
-Pacific/Pitcairn
-Pacific/Pohnpei
-Pacific/Ponape
-Pacific/Port_Moresby
-Pacific/Rarotonga
-Pacific/Saipan
-Pacific/Samoa
-Pacific/Tahiti
-Pacific/Tarawa
-Pacific/Tongatapu
-Pacific/Truk
-Pacific/Wake
-Pacific/Wallis
-Pacific/Yap
-Poland
-Portugal
-ROC
-ROK
-Singapore
-Turkey
-UCT
-UTC
-Universal
-W-SU
-WET
-Zulu
-posix/Africa/Abidjan
-posix/Africa/Accra
-posix/Africa/Addis_Ababa
-posix/Africa/Algiers
-posix/Africa/Asmara
-posix/Africa/Asmera
-posix/Africa/Bamako
-posix/Africa/Bangui
-posix/Africa/Banjul
-posix/Africa/Bissau
-posix/Africa/Blantyre
-posix/Africa/Brazzaville
-posix/Africa/Bujumbura
-posix/Africa/Cairo
-posix/Africa/Casablanca
-posix/Africa/Ceuta
-posix/Africa/Conakry
-posix/Africa/Dakar
-posix/Africa/Dar_es_Salaam
-posix/Africa/Djibouti
-posix/Africa/Douala
-posix/Africa/El_Aaiun
-posix/Africa/Freetown
-posix/Africa/Gaborone
-posix/Africa/Harare
-posix/Africa/Johannesburg
-posix/Africa/Juba
-posix/Africa/Kampala
-posix/Africa/Khartoum
-posix/Africa/Kigali
-posix/Africa/Kinshasa
-posix/Africa/Lagos
-posix/Africa/Libreville
-posix/Africa/Lome
-posix/Africa/Luanda
-posix/Africa/Lubumbashi
-posix/Africa/Lusaka
-posix/Africa/Malabo
-posix/Africa/Maputo
-posix/Africa/Maseru
-posix/Africa/Mbabane
-posix/Africa/Mogadishu
-posix/Africa/Monrovia
-posix/Africa/Nairobi
-posix/Africa/Ndjamena
-posix/Africa/Niamey
-posix/Africa/Nouakchott
-posix/Africa/Ouagadougou
-posix/Africa/Porto-Novo
-posix/Africa/Sao_Tome
-posix/Africa/Timbuktu
-posix/Africa/Tripoli
-posix/Africa/Tunis
-posix/Africa/Windhoek
-posix/America/Adak
-posix/America/Anchorage
-posix/America/Anguilla
-posix/America/Antigua
-posix/America/Araguaina
-posix/America/Argentina/Buenos_Aires
-posix/America/Argentina/Catamarca
-posix/America/Argentina/ComodRivadavia
-posix/America/Argentina/Cordoba
-posix/America/Argentina/Jujuy
-posix/America/Argentina/La_Rioja
-posix/America/Argentina/Mendoza
-posix/America/Argentina/Rio_Gallegos
-posix/America/Argentina/Salta
-posix/America/Argentina/San_Juan
-posix/America/Argentina/San_Luis
-posix/America/Argentina/Tucuman
-posix/America/Argentina/Ushuaia
-posix/America/Aruba
-posix/America/Asuncion
-posix/America/Atikokan
-posix/America/Atka
-posix/America/Bahia
-posix/America/Bahia_Banderas
-posix/America/Barbados
-posix/America/Belem
-posix/America/Belize
-posix/America/Blanc-Sablon
-posix/America/Boa_Vista
-posix/America/Bogota
-posix/America/Boise
-posix/America/Buenos_Aires
-posix/America/Cambridge_Bay
-posix/America/Campo_Grande
-posix/America/Cancun
-posix/America/Caracas
-posix/America/Catamarca
-posix/America/Cayenne
-posix/America/Cayman
-posix/America/Chicago
-posix/America/Chihuahua
-posix/America/Coral_Harbour
-posix/America/Cordoba
-posix/America/Costa_Rica
-posix/America/Creston
-posix/America/Cuiaba
-posix/America/Curacao
-posix/America/Danmarkshavn
-posix/America/Dawson
-posix/America/Dawson_Creek
-posix/America/Denver
-posix/America/Detroit
-posix/America/Dominica
-posix/America/Edmonton
-posix/America/Eirunepe
-posix/America/El_Salvador
-posix/America/Ensenada
-posix/America/Fort_Wayne
-posix/America/Fortaleza
-posix/America/Glace_Bay
-posix/America/Godthab
-posix/America/Goose_Bay
-posix/America/Grand_Turk
-posix/America/Grenada
-posix/America/Guadeloupe
-posix/America/Guatemala
-posix/America/Guayaquil
-posix/America/Guyana
-posix/America/Halifax
-posix/America/Havana
-posix/America/Hermosillo
-posix/America/Indiana/Indianapolis
-posix/America/Indiana/Knox
-posix/America/Indiana/Marengo
-posix/America/Indiana/Petersburg
-posix/America/Indiana/Tell_City
-posix/America/Indiana/Vevay
-posix/America/Indiana/Vincennes
-posix/America/Indiana/Winamac
-posix/America/Indianapolis
-posix/America/Inuvik
-posix/America/Iqaluit
-posix/America/Jamaica
-posix/America/Jujuy
-posix/America/Juneau
-posix/America/Kentucky/Louisville
-posix/America/Kentucky/Monticello
-posix/America/Knox_IN
-posix/America/Kralendijk
-posix/America/La_Paz
-posix/America/Lima
-posix/America/Los_Angeles
-posix/America/Louisville
-posix/America/Lower_Princes
-posix/America/Maceio
-posix/America/Managua
-posix/America/Manaus
-posix/America/Marigot
-posix/America/Martinique
-posix/America/Matamoros
-posix/America/Mazatlan
-posix/America/Mendoza
-posix/America/Menominee
-posix/America/Merida
-posix/America/Metlakatla
-posix/America/Mexico_City
-posix/America/Miquelon
-posix/America/Moncton
-posix/America/Monterrey
-posix/America/Montevideo
-posix/America/Montreal
-posix/America/Montserrat
-posix/America/Nassau
-posix/America/New_York
-posix/America/Nipigon
-posix/America/Nome
-posix/America/Noronha
-posix/America/North_Dakota/Beulah
-posix/America/North_Dakota/Center
-posix/America/North_Dakota/New_Salem
-posix/America/Ojinaga
-posix/America/Panama
-posix/America/Pangnirtung
-posix/America/Paramaribo
-posix/America/Phoenix
-posix/America/Port-au-Prince
-posix/America/Port_of_Spain
-posix/America/Porto_Acre
-posix/America/Porto_Velho
-posix/America/Puerto_Rico
-posix/America/Rainy_River
-posix/America/Rankin_Inlet
-posix/America/Recife
-posix/America/Regina
-posix/America/Resolute
-posix/America/Rio_Branco
-posix/America/Rosario
-posix/America/Santa_Isabel
-posix/America/Santarem
-posix/America/Santiago
-posix/America/Santo_Domingo
-posix/America/Sao_Paulo
-posix/America/Scoresbysund
-posix/America/Shiprock
-posix/America/Sitka
-posix/America/St_Barthelemy
-posix/America/St_Johns
-posix/America/St_Kitts
-posix/America/St_Lucia
-posix/America/St_Thomas
-posix/America/St_Vincent
-posix/America/Swift_Current
-posix/America/Tegucigalpa
-posix/America/Thule
-posix/America/Thunder_Bay
-posix/America/Tijuana
-posix/America/Toronto
-posix/America/Tortola
-posix/America/Vancouver
-posix/America/Virgin
-posix/America/Whitehorse
-posix/America/Winnipeg
-posix/America/Yakutat
-posix/America/Yellowknife
-posix/Antarctica/Casey
-posix/Antarctica/Davis
-posix/Antarctica/DumontDUrville
-posix/Antarctica/Macquarie
-posix/Antarctica/Mawson
-posix/Antarctica/McMurdo
-posix/Antarctica/Palmer
-posix/Antarctica/Rothera
-posix/Antarctica/South_Pole
-posix/Antarctica/Syowa
-posix/Antarctica/Vostok
-posix/Arctic/Longyearbyen
-posix/Asia/Aden
-posix/Asia/Almaty
-posix/Asia/Amman
-posix/Asia/Anadyr
-posix/Asia/Aqtau
-posix/Asia/Aqtobe
-posix/Asia/Ashgabat
-posix/Asia/Ashkhabad
-posix/Asia/Baghdad
-posix/Asia/Bahrain
-posix/Asia/Baku
-posix/Asia/Bangkok
-posix/Asia/Beirut
-posix/Asia/Bishkek
-posix/Asia/Brunei
-posix/Asia/Calcutta
-posix/Asia/Choibalsan
-posix/Asia/Chongqing
-posix/Asia/Chungking
-posix/Asia/Colombo
-posix/Asia/Dacca
-posix/Asia/Damascus
-posix/Asia/Dhaka
-posix/Asia/Dili
-posix/Asia/Dubai
-posix/Asia/Dushanbe
-posix/Asia/Gaza
-posix/Asia/Harbin
-posix/Asia/Hebron
-posix/Asia/Ho_Chi_Minh
-posix/Asia/Hong_Kong
-posix/Asia/Hovd
-posix/Asia/Irkutsk
-posix/Asia/Istanbul
-posix/Asia/Jakarta
-posix/Asia/Jayapura
-posix/Asia/Jerusalem
-posix/Asia/Kabul
-posix/Asia/Kamchatka
-posix/Asia/Karachi
-posix/Asia/Kashgar
-posix/Asia/Kathmandu
-posix/Asia/Katmandu
-posix/Asia/Khandyga
-posix/Asia/Kolkata
-posix/Asia/Krasnoyarsk
-posix/Asia/Kuala_Lumpur
-posix/Asia/Kuching
-posix/Asia/Kuwait
-posix/Asia/Macao
-posix/Asia/Macau
-posix/Asia/Magadan
-posix/Asia/Makassar
-posix/Asia/Manila
-posix/Asia/Muscat
-posix/Asia/Nicosia
-posix/Asia/Novokuznetsk
-posix/Asia/Novosibirsk
-posix/Asia/Omsk
-posix/Asia/Oral
-posix/Asia/Phnom_Penh
-posix/Asia/Pontianak
-posix/Asia/Pyongyang
-posix/Asia/Qatar
-posix/Asia/Qyzylorda
-posix/Asia/Rangoon
-posix/Asia/Riyadh
-posix/Asia/Riyadh87
-posix/Asia/Riyadh88
-posix/Asia/Riyadh89
-posix/Asia/Saigon
-posix/Asia/Sakhalin
-posix/Asia/Samarkand
-posix/Asia/Seoul
-posix/Asia/Shanghai
-posix/Asia/Singapore
-posix/Asia/Taipei
-posix/Asia/Tashkent
-posix/Asia/Tbilisi
-posix/Asia/Tehran
-posix/Asia/Tel_Aviv
-posix/Asia/Thimbu
-posix/Asia/Thimphu
-posix/Asia/Tokyo
-posix/Asia/Ujung_Pandang
-posix/Asia/Ulaanbaatar
-posix/Asia/Ulan_Bator
-posix/Asia/Urumqi
-posix/Asia/Ust-Nera
-posix/Asia/Vientiane
-posix/Asia/Vladivostok
-posix/Asia/Yakutsk
-posix/Asia/Yekaterinburg
-posix/Asia/Yerevan
-posix/Atlantic/Azores
-posix/Atlantic/Bermuda
-posix/Atlantic/Canary
-posix/Atlantic/Cape_Verde
-posix/Atlantic/Faeroe
-posix/Atlantic/Faroe
-posix/Atlantic/Jan_Mayen
-posix/Atlantic/Madeira
-posix/Atlantic/Reykjavik
-posix/Atlantic/South_Georgia
-posix/Atlantic/St_Helena
-posix/Atlantic/Stanley
-posix/Australia/ACT
-posix/Australia/Adelaide
-posix/Australia/Brisbane
-posix/Australia/Broken_Hill
-posix/Australia/Canberra
-posix/Australia/Currie
-posix/Australia/Darwin
-posix/Australia/Eucla
-posix/Australia/Hobart
-posix/Australia/LHI
-posix/Australia/Lindeman
-posix/Australia/Lord_Howe
-posix/Australia/Melbourne
-posix/Australia/NSW
-posix/Australia/North
-posix/Australia/Perth
-posix/Australia/Queensland
-posix/Australia/South
-posix/Australia/Sydney
-posix/Australia/Tasmania
-posix/Australia/Victoria
-posix/Australia/West
-posix/Australia/Yancowinna
-posix/Brazil/Acre
-posix/Brazil/DeNoronha
-posix/Brazil/East
-posix/Brazil/West
-posix/CET
-posix/CST6CDT
-posix/Canada/Atlantic
-posix/Canada/Central
-posix/Canada/East-Saskatchewan
-posix/Canada/Eastern
-posix/Canada/Mountain
-posix/Canada/Newfoundland
-posix/Canada/Pacific
-posix/Canada/Saskatchewan
-posix/Canada/Yukon
-posix/Chile/Continental
-posix/Chile/EasterIsland
-posix/Cuba
-posix/EET
-posix/EST
-posix/EST5EDT
-posix/Egypt
-posix/Eire
-posix/Etc/GMT
-posix/Etc/GMT+0
-posix/Etc/GMT+1
-posix/Etc/GMT+10
-posix/Etc/GMT+11
-posix/Etc/GMT+12
-posix/Etc/GMT+2
-posix/Etc/GMT+3
-posix/Etc/GMT+4
-posix/Etc/GMT+5
-posix/Etc/GMT+6
-posix/Etc/GMT+7
-posix/Etc/GMT+8
-posix/Etc/GMT+9
-posix/Etc/GMT-0
-posix/Etc/GMT-1
-posix/Etc/GMT-10
-posix/Etc/GMT-11
-posix/Etc/GMT-12
-posix/Etc/GMT-13
-posix/Etc/GMT-14
-posix/Etc/GMT-2
-posix/Etc/GMT-3
-posix/Etc/GMT-4
-posix/Etc/GMT-5
-posix/Etc/GMT-6
-posix/Etc/GMT-7
-posix/Etc/GMT-8
-posix/Etc/GMT-9
-posix/Etc/GMT0
-posix/Etc/Greenwich
-posix/Etc/UCT
-posix/Etc/UTC
-posix/Etc/Universal
-posix/Etc/Zulu
-posix/Europe/Amsterdam
-posix/Europe/Andorra
-posix/Europe/Athens
-posix/Europe/Belfast
-posix/Europe/Belgrade
-posix/Europe/Berlin
-posix/Europe/Bratislava
-posix/Europe/Brussels
-posix/Europe/Bucharest
-posix/Europe/Budapest
-posix/Europe/Busingen
-posix/Europe/Chisinau
-posix/Europe/Copenhagen
-posix/Europe/Dublin
-posix/Europe/Gibraltar
-posix/Europe/Guernsey
-posix/Europe/Helsinki
-posix/Europe/Isle_of_Man
-posix/Europe/Istanbul
-posix/Europe/Jersey
-posix/Europe/Kaliningrad
-posix/Europe/Kiev
-posix/Europe/Lisbon
-posix/Europe/Ljubljana
-posix/Europe/London
-posix/Europe/Luxembourg
-posix/Europe/Madrid
-posix/Europe/Malta
-posix/Europe/Mariehamn
-posix/Europe/Minsk
-posix/Europe/Monaco
-posix/Europe/Moscow
-posix/Europe/Nicosia
-posix/Europe/Oslo
-posix/Europe/Paris
-posix/Europe/Podgorica
-posix/Europe/Prague
-posix/Europe/Riga
-posix/Europe/Rome
-posix/Europe/Samara
-posix/Europe/San_Marino
-posix/Europe/Sarajevo
-posix/Europe/Simferopol
-posix/Europe/Skopje
-posix/Europe/Sofia
-posix/Europe/Stockholm
-posix/Europe/Tallinn
-posix/Europe/Tirane
-posix/Europe/Tiraspol
-posix/Europe/Uzhgorod
-posix/Europe/Vaduz
-posix/Europe/Vatican
-posix/Europe/Vienna
-posix/Europe/Vilnius
-posix/Europe/Volgograd
-posix/Europe/Warsaw
-posix/Europe/Zagreb
-posix/Europe/Zaporozhye
-posix/Europe/Zurich
-posix/Factory
-posix/GB
-posix/GB-Eire
-posix/GMT
-posix/GMT+0
-posix/GMT-0
-posix/GMT0
-posix/Greenwich
-posix/HST
-posix/Hongkong
-posix/Iceland
-posix/Indian/Antananarivo
-posix/Indian/Chagos
-posix/Indian/Christmas
-posix/Indian/Cocos
-posix/Indian/Comoro
-posix/Indian/Kerguelen
-posix/Indian/Mahe
-posix/Indian/Maldives
-posix/Indian/Mauritius
-posix/Indian/Mayotte
-posix/Indian/Reunion
-posix/Iran
-posix/Israel
-posix/Jamaica
-posix/Japan
-posix/Kwajalein
-posix/Libya
-posix/MET
-posix/MST
-posix/MST7MDT
-posix/Mexico/BajaNorte
-posix/Mexico/BajaSur
-posix/Mexico/General
-posix/Mideast/Riyadh87
-posix/Mideast/Riyadh88
-posix/Mideast/Riyadh89
-posix/NZ
-posix/NZ-CHAT
-posix/Navajo
-posix/PRC
-posix/PST8PDT
-posix/Pacific/Apia
-posix/Pacific/Auckland
-posix/Pacific/Chatham
-posix/Pacific/Chuuk
-posix/Pacific/Easter
-posix/Pacific/Efate
-posix/Pacific/Enderbury
-posix/Pacific/Fakaofo
-posix/Pacific/Fiji
-posix/Pacific/Funafuti
-posix/Pacific/Galapagos
-posix/Pacific/Gambier
-posix/Pacific/Guadalcanal
-posix/Pacific/Guam
-posix/Pacific/Honolulu
-posix/Pacific/Johnston
-posix/Pacific/Kiritimati
-posix/Pacific/Kosrae
-posix/Pacific/Kwajalein
-posix/Pacific/Majuro
-posix/Pacific/Marquesas
-posix/Pacific/Midway
-posix/Pacific/Nauru
-posix/Pacific/Niue
-posix/Pacific/Norfolk
-posix/Pacific/Noumea
-posix/Pacific/Pago_Pago
-posix/Pacific/Palau
-posix/Pacific/Pitcairn
-posix/Pacific/Pohnpei
-posix/Pacific/Ponape
-posix/Pacific/Port_Moresby
-posix/Pacific/Rarotonga
-posix/Pacific/Saipan
-posix/Pacific/Samoa
-posix/Pacific/Tahiti
-posix/Pacific/Tarawa
-posix/Pacific/Tongatapu
-posix/Pacific/Truk
-posix/Pacific/Wake
-posix/Pacific/Wallis
-posix/Pacific/Yap
-posix/Poland
-posix/Portugal
-posix/ROC
-posix/ROK
-posix/Singapore
-posix/Turkey
-posix/UCT
-posix/US/Alaska
-posix/US/Aleutian
-posix/US/Arizona
-posix/US/Central
-posix/US/East-Indiana
-posix/US/Eastern
-posix/US/Hawaii
-posix/US/Indiana-Starke
-posix/US/Michigan
-posix/US/Mountain
-posix/US/Pacific
-posix/US/Pacific-New
-posix/US/Samoa
-posix/UTC
-posix/Universal
-posix/W-SU
-posix/WET
-posix/Zulu
-posixrules
-right/Africa/Abidjan
-right/Africa/Accra
-right/Africa/Addis_Ababa
-right/Africa/Algiers
-right/Africa/Asmara
-right/Africa/Asmera
-right/Africa/Bamako
-right/Africa/Bangui
-right/Africa/Banjul
-right/Africa/Bissau
-right/Africa/Blantyre
-right/Africa/Brazzaville
-right/Africa/Bujumbura
-right/Africa/Cairo
-right/Africa/Casablanca
-right/Africa/Ceuta
-right/Africa/Conakry
-right/Africa/Dakar
-right/Africa/Dar_es_Salaam
-right/Africa/Djibouti
-right/Africa/Douala
-right/Africa/El_Aaiun
-right/Africa/Freetown
-right/Africa/Gaborone
-right/Africa/Harare
-right/Africa/Johannesburg
-right/Africa/Juba
-right/Africa/Kampala
-right/Africa/Khartoum
-right/Africa/Kigali
-right/Africa/Kinshasa
-right/Africa/Lagos
-right/Africa/Libreville
-right/Africa/Lome
-right/Africa/Luanda
-right/Africa/Lubumbashi
-right/Africa/Lusaka
-right/Africa/Malabo
-right/Africa/Maputo
-right/Africa/Maseru
-right/Africa/Mbabane
-right/Africa/Mogadishu
-right/Africa/Monrovia
-right/Africa/Nairobi
-right/Africa/Ndjamena
-right/Africa/Niamey
-right/Africa/Nouakchott
-right/Africa/Ouagadougou
-right/Africa/Porto-Novo
-right/Africa/Sao_Tome
-right/Africa/Timbuktu
-right/Africa/Tripoli
-right/Africa/Tunis
-right/Africa/Windhoek
-right/America/Adak
-right/America/Anchorage
-right/America/Anguilla
-right/America/Antigua
-right/America/Araguaina
-right/America/Argentina/Buenos_Aires
-right/America/Argentina/Catamarca
-right/America/Argentina/ComodRivadavia
-right/America/Argentina/Cordoba
-right/America/Argentina/Jujuy
-right/America/Argentina/La_Rioja
-right/America/Argentina/Mendoza
-right/America/Argentina/Rio_Gallegos
-right/America/Argentina/Salta
-right/America/Argentina/San_Juan
-right/America/Argentina/San_Luis
-right/America/Argentina/Tucuman
-right/America/Argentina/Ushuaia
-right/America/Aruba
-right/America/Asuncion
-right/America/Atikokan
-right/America/Atka
-right/America/Bahia
-right/America/Bahia_Banderas
-right/America/Barbados
-right/America/Belem
-right/America/Belize
-right/America/Blanc-Sablon
-right/America/Boa_Vista
-right/America/Bogota
-right/America/Boise
-right/America/Buenos_Aires
-right/America/Cambridge_Bay
-right/America/Campo_Grande
-right/America/Cancun
-right/America/Caracas
-right/America/Catamarca
-right/America/Cayenne
-right/America/Cayman
-right/America/Chicago
-right/America/Chihuahua
-right/America/Coral_Harbour
-right/America/Cordoba
-right/America/Costa_Rica
-right/America/Creston
-right/America/Cuiaba
-right/America/Curacao
-right/America/Danmarkshavn
-right/America/Dawson
-right/America/Dawson_Creek
-right/America/Denver
-right/America/Detroit
-right/America/Dominica
-right/America/Edmonton
-right/America/Eirunepe
-right/America/El_Salvador
-right/America/Ensenada
-right/America/Fort_Wayne
-right/America/Fortaleza
-right/America/Glace_Bay
-right/America/Godthab
-right/America/Goose_Bay
-right/America/Grand_Turk
-right/America/Grenada
-right/America/Guadeloupe
-right/America/Guatemala
-right/America/Guayaquil
-right/America/Guyana
-right/America/Halifax
-right/America/Havana
-right/America/Hermosillo
-right/America/Indiana/Indianapolis
-right/America/Indiana/Knox
-right/America/Indiana/Marengo
-right/America/Indiana/Petersburg
-right/America/Indiana/Tell_City
-right/America/Indiana/Vevay
-right/America/Indiana/Vincennes
-right/America/Indiana/Winamac
-right/America/Indianapolis
-right/America/Inuvik
-right/America/Iqaluit
-right/America/Jamaica
-right/America/Jujuy
-right/America/Juneau
-right/America/Kentucky/Louisville
-right/America/Kentucky/Monticello
-right/America/Knox_IN
-right/America/Kralendijk
-right/America/La_Paz
-right/America/Lima
-right/America/Los_Angeles
-right/America/Louisville
-right/America/Lower_Princes
-right/America/Maceio
-right/America/Managua
-right/America/Manaus
-right/America/Marigot
-right/America/Martinique
-right/America/Matamoros
-right/America/Mazatlan
-right/America/Mendoza
-right/America/Menominee
-right/America/Merida
-right/America/Metlakatla
-right/America/Mexico_City
-right/America/Miquelon
-right/America/Moncton
-right/America/Monterrey
-right/America/Montevideo
-right/America/Montreal
-right/America/Montserrat
-right/America/Nassau
-right/America/New_York
-right/America/Nipigon
-right/America/Nome
-right/America/Noronha
-right/America/North_Dakota/Beulah
-right/America/North_Dakota/Center
-right/America/North_Dakota/New_Salem
-right/America/Ojinaga
-right/America/Panama
-right/America/Pangnirtung
-right/America/Paramaribo
-right/America/Phoenix
-right/America/Port-au-Prince
-right/America/Port_of_Spain
-right/America/Porto_Acre
-right/America/Porto_Velho
-right/America/Puerto_Rico
-right/America/Rainy_River
-right/America/Rankin_Inlet
-right/America/Recife
-right/America/Regina
-right/America/Resolute
-right/America/Rio_Branco
-right/America/Rosario
-right/America/Santa_Isabel
-right/America/Santarem
-right/America/Santiago
-right/America/Santo_Domingo
-right/America/Sao_Paulo
-right/America/Scoresbysund
-right/America/Shiprock
-right/America/Sitka
-right/America/St_Barthelemy
-right/America/St_Johns
-right/America/St_Kitts
-right/America/St_Lucia
-right/America/St_Thomas
-right/America/St_Vincent
-right/America/Swift_Current
-right/America/Tegucigalpa
-right/America/Thule
-right/America/Thunder_Bay
-right/America/Tijuana
-right/America/Toronto
-right/America/Tortola
-right/America/Vancouver
-right/America/Virgin
-right/America/Whitehorse
-right/America/Winnipeg
-right/America/Yakutat
-right/America/Yellowknife
-right/Antarctica/Casey
-right/Antarctica/Davis
-right/Antarctica/DumontDUrville
-right/Antarctica/Macquarie
-right/Antarctica/Mawson
-right/Antarctica/McMurdo
-right/Antarctica/Palmer
-right/Antarctica/Rothera
-right/Antarctica/South_Pole
-right/Antarctica/Syowa
-right/Antarctica/Vostok
-right/Arctic/Longyearbyen
-right/Asia/Aden
-right/Asia/Almaty
-right/Asia/Amman
-right/Asia/Anadyr
-right/Asia/Aqtau
-right/Asia/Aqtobe
-right/Asia/Ashgabat
-right/Asia/Ashkhabad
-right/Asia/Baghdad
-right/Asia/Bahrain
-right/Asia/Baku
-right/Asia/Bangkok
-right/Asia/Beirut
-right/Asia/Bishkek
-right/Asia/Brunei
-right/Asia/Calcutta
-right/Asia/Choibalsan
-right/Asia/Chongqing
-right/Asia/Chungking
-right/Asia/Colombo
-right/Asia/Dacca
-right/Asia/Damascus
-right/Asia/Dhaka
-right/Asia/Dili
-right/Asia/Dubai
-right/Asia/Dushanbe
-right/Asia/Gaza
-right/Asia/Harbin
-right/Asia/Hebron
-right/Asia/Ho_Chi_Minh
-right/Asia/Hong_Kong
-right/Asia/Hovd
-right/Asia/Irkutsk
-right/Asia/Istanbul
-right/Asia/Jakarta
-right/Asia/Jayapura
-right/Asia/Jerusalem
-right/Asia/Kabul
-right/Asia/Kamchatka
-right/Asia/Karachi
-right/Asia/Kashgar
-right/Asia/Kathmandu
-right/Asia/Katmandu
-right/Asia/Khandyga
-right/Asia/Kolkata
-right/Asia/Krasnoyarsk
-right/Asia/Kuala_Lumpur
-right/Asia/Kuching
-right/Asia/Kuwait
-right/Asia/Macao
-right/Asia/Macau
-right/Asia/Magadan
-right/Asia/Makassar
-right/Asia/Manila
-right/Asia/Muscat
-right/Asia/Nicosia
-right/Asia/Novokuznetsk
-right/Asia/Novosibirsk
-right/Asia/Omsk
-right/Asia/Oral
-right/Asia/Phnom_Penh
-right/Asia/Pontianak
-right/Asia/Pyongyang
-right/Asia/Qatar
-right/Asia/Qyzylorda
-right/Asia/Rangoon
-right/Asia/Riyadh
-right/Asia/Riyadh87
-right/Asia/Riyadh88
-right/Asia/Riyadh89
-right/Asia/Saigon
-right/Asia/Sakhalin
-right/Asia/Samarkand
-right/Asia/Seoul
-right/Asia/Shanghai
-right/Asia/Singapore
-right/Asia/Taipei
-right/Asia/Tashkent
-right/Asia/Tbilisi
-right/Asia/Tehran
-right/Asia/Tel_Aviv
-right/Asia/Thimbu
-right/Asia/Thimphu
-right/Asia/Tokyo
-right/Asia/Ujung_Pandang
-right/Asia/Ulaanbaatar
-right/Asia/Ulan_Bator
-right/Asia/Urumqi
-right/Asia/Ust-Nera
-right/Asia/Vientiane
-right/Asia/Vladivostok
-right/Asia/Yakutsk
-right/Asia/Yekaterinburg
-right/Asia/Yerevan
-right/Atlantic/Azores
-right/Atlantic/Bermuda
-right/Atlantic/Canary
-right/Atlantic/Cape_Verde
-right/Atlantic/Faeroe
-right/Atlantic/Faroe
-right/Atlantic/Jan_Mayen
-right/Atlantic/Madeira
-right/Atlantic/Reykjavik
-right/Atlantic/South_Georgia
-right/Atlantic/St_Helena
-right/Atlantic/Stanley
-right/Australia/ACT
-right/Australia/Adelaide
-right/Australia/Brisbane
-right/Australia/Broken_Hill
-right/Australia/Canberra
-right/Australia/Currie
-right/Australia/Darwin
-right/Australia/Eucla
-right/Australia/Hobart
-right/Australia/LHI
-right/Australia/Lindeman
-right/Australia/Lord_Howe
-right/Australia/Melbourne
-right/Australia/NSW
-right/Australia/North
-right/Australia/Perth
-right/Australia/Queensland
-right/Australia/South
-right/Australia/Sydney
-right/Australia/Tasmania
-right/Australia/Victoria
-right/Australia/West
-right/Australia/Yancowinna
-right/Brazil/Acre
-right/Brazil/DeNoronha
-right/Brazil/East
-right/Brazil/West
-right/CET
-right/CST6CDT
-right/Canada/Atlantic
-right/Canada/Central
-right/Canada/East-Saskatchewan
-right/Canada/Eastern
-right/Canada/Mountain
-right/Canada/Newfoundland
-right/Canada/Pacific
-right/Canada/Saskatchewan
-right/Canada/Yukon
-right/Chile/Continental
-right/Chile/EasterIsland
-right/Cuba
-right/EET
-right/EST
-right/EST5EDT
-right/Egypt
-right/Eire
-right/Etc/GMT
-right/Etc/GMT+0
-right/Etc/GMT+1
-right/Etc/GMT+10
-right/Etc/GMT+11
-right/Etc/GMT+12
-right/Etc/GMT+2
-right/Etc/GMT+3
-right/Etc/GMT+4
-right/Etc/GMT+5
-right/Etc/GMT+6
-right/Etc/GMT+7
-right/Etc/GMT+8
-right/Etc/GMT+9
-right/Etc/GMT-0
-right/Etc/GMT-1
-right/Etc/GMT-10
-right/Etc/GMT-11
-right/Etc/GMT-12
-right/Etc/GMT-13
-right/Etc/GMT-14
-right/Etc/GMT-2
-right/Etc/GMT-3
-right/Etc/GMT-4
-right/Etc/GMT-5
-right/Etc/GMT-6
-right/Etc/GMT-7
-right/Etc/GMT-8
-right/Etc/GMT-9
-right/Etc/GMT0
-right/Etc/Greenwich
-right/Etc/UCT
-right/Etc/UTC
-right/Etc/Universal
-right/Etc/Zulu
-right/Europe/Amsterdam
-right/Europe/Andorra
-right/Europe/Athens
-right/Europe/Belfast
-right/Europe/Belgrade
-right/Europe/Berlin
-right/Europe/Bratislava
-right/Europe/Brussels
-right/Europe/Bucharest
-right/Europe/Budapest
-right/Europe/Busingen
-right/Europe/Chisinau
-right/Europe/Copenhagen
-right/Europe/Dublin
-right/Europe/Gibraltar
-right/Europe/Guernsey
-right/Europe/Helsinki
-right/Europe/Isle_of_Man
-right/Europe/Istanbul
-right/Europe/Jersey
-right/Europe/Kaliningrad
-right/Europe/Kiev
-right/Europe/Lisbon
-right/Europe/Ljubljana
-right/Europe/London
-right/Europe/Luxembourg
-right/Europe/Madrid
-right/Europe/Malta
-right/Europe/Mariehamn
-right/Europe/Minsk
-right/Europe/Monaco
-right/Europe/Moscow
-right/Europe/Nicosia
-right/Europe/Oslo
-right/Europe/Paris
-right/Europe/Podgorica
-right/Europe/Prague
-right/Europe/Riga
-right/Europe/Rome
-right/Europe/Samara
-right/Europe/San_Marino
-right/Europe/Sarajevo
-right/Europe/Simferopol
-right/Europe/Skopje
-right/Europe/Sofia
-right/Europe/Stockholm
-right/Europe/Tallinn
-right/Europe/Tirane
-right/Europe/Tiraspol
-right/Europe/Uzhgorod
-right/Europe/Vaduz
-right/Europe/Vatican
-right/Europe/Vienna
-right/Europe/Vilnius
-right/Europe/Volgograd
-right/Europe/Warsaw
-right/Europe/Zagreb
-right/Europe/Zaporozhye
-right/Europe/Zurich
-right/Factory
-right/GB
-right/GB-Eire
-right/GMT
-right/GMT+0
-right/GMT-0
-right/GMT0
-right/Greenwich
-right/HST
-right/Hongkong
-right/Iceland
-right/Indian/Antananarivo
-right/Indian/Chagos
-right/Indian/Christmas
-right/Indian/Cocos
-right/Indian/Comoro
-right/Indian/Kerguelen
-right/Indian/Mahe
-right/Indian/Maldives
-right/Indian/Mauritius
-right/Indian/Mayotte
-right/Indian/Reunion
-right/Iran
-right/Israel
-right/Jamaica
-right/Japan
-right/Kwajalein
-right/Libya
-right/MET
-right/MST
-right/MST7MDT
-right/Mexico/BajaNorte
-right/Mexico/BajaSur
-right/Mexico/General
-right/Mideast/Riyadh87
-right/Mideast/Riyadh88
-right/Mideast/Riyadh89
-right/NZ
-right/NZ-CHAT
-right/Navajo
-right/PRC
-right/PST8PDT
-right/Pacific/Apia
-right/Pacific/Auckland
-right/Pacific/Chatham
-right/Pacific/Chuuk
-right/Pacific/Easter
-right/Pacific/Efate
-right/Pacific/Enderbury
-right/Pacific/Fakaofo
-right/Pacific/Fiji
-right/Pacific/Funafuti
-right/Pacific/Galapagos
-right/Pacific/Gambier
-right/Pacific/Guadalcanal
-right/Pacific/Guam
-right/Pacific/Honolulu
-right/Pacific/Johnston
-right/Pacific/Kiritimati
-right/Pacific/Kosrae
-right/Pacific/Kwajalein
-right/Pacific/Majuro
-right/Pacific/Marquesas
-right/Pacific/Midway
-right/Pacific/Nauru
-right/Pacific/Niue
-right/Pacific/Norfolk
-right/Pacific/Noumea
-right/Pacific/Pago_Pago
-right/Pacific/Palau
-right/Pacific/Pitcairn
-right/Pacific/Pohnpei
-right/Pacific/Ponape
-right/Pacific/Port_Moresby
-right/Pacific/Rarotonga
-right/Pacific/Saipan
-right/Pacific/Samoa
-right/Pacific/Tahiti
-right/Pacific/Tarawa
-right/Pacific/Tongatapu
-right/Pacific/Truk
-right/Pacific/Wake
-right/Pacific/Wallis
-right/Pacific/Yap
-right/Poland
-right/Portugal
-right/ROC
-right/ROK
-right/Singapore
-right/Turkey
-right/UCT
-right/US/Alaska
-right/US/Aleutian
-right/US/Arizona
-right/US/Central
-right/US/East-Indiana
-right/US/Eastern
-right/US/Hawaii
-right/US/Indiana-Starke
-right/US/Michigan
-right/US/Mountain
-right/US/Pacific
-right/US/Pacific-New
-right/US/Samoa
-right/UTC
-right/Universal
-right/W-SU
-right/WET
-right/Zulu
-
-Type it at the prompt below exactly as it appears above. (NOTE: If you don't
-see your timezone, use "timeconfig" again after booting for the verbose list)
-
-EOF
- echo -n "Timezone? "
- read TIMEZONE;
- echo
-
- if [ -r $T_PX/usr/share/zoneinfo/$TIMEZONE -o \
- -r /var/log/mount/usr/share/zoneinfo/$TIMEZONE -o \
- -L $T_PX/usr/share/zoneinfo/$TIMEZONE -o \
- -L /var/log/mount/usr/share/zoneinfo/$TIMEZONE ]; then
- echo "Creating link from $TIMEZONE to localtime in /etc..."
- echo
- setzone $TIMEZONE
- exit
- else
- cat << EOF
-
-Timezone $TIMEZONE could not be found. You may try again if you wish.
-Make sure you type the name exactly as it appears - this configuration script
-is case sensitive.
-
-Press [enter] to continue.
-
-EOF
- read JUNK;
- fi
- done
-fi
-
diff --git a/source/l/glibmm/glibmm.SlackBuild b/source/l/glibmm/glibmm.SlackBuild
new file mode 100755
index 000000000..7639f0541
--- /dev/null
+++ b/source/l/glibmm/glibmm.SlackBuild
@@ -0,0 +1,102 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=glibmm
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -std=c++11" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+rm -rf $PKG/usr/share/doc
+cp -a AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/glibmm/slack-desc b/source/l/glibmm/slack-desc
new file mode 100644
index 000000000..ab49e5da4
--- /dev/null
+++ b/source/l/glibmm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+glibmm: glibmm (C++ bindings for glib)
+glibmm:
+glibmm: glibmm is a set of C++ bindings for glib, including cross-platform
+glibmm: APIs such as a std::string-like UTF8 string class, string utility
+glibmm: methods, such as a text encoding converter API, file access,
+glibmm: and threads.
+glibmm:
+glibmm: Homepage: http://www.gtkmm.org/
+glibmm:
+glibmm:
+glibmm:
diff --git a/source/l/gmp/gmp.SlackBuild b/source/l/gmp/gmp.SlackBuild
index 6280e14f8..6c58428df 100755
--- a/source/l/gmp/gmp.SlackBuild
+++ b/source/l/gmp/gmp.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -45,8 +45,8 @@ PKG=/$TMP/package-gmp
rm -rf $PKG
mkdir -p $TMP $PKG/usr
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -70,7 +70,8 @@ esac
cd $TMP
rm -rf gmp-$VERSION
tar xvf $CWD/gmp-$VERSION.tar.xz || exit 1
-cd gmp-$VERSION
+cd gmp-$VERSION || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -90,7 +91,8 @@ CFLAGS="$SLKCFLAGS" \
--infodir=/usr/info \
--with-gnu-ld \
--enable-cxx \
- --build=$TARGET
+ --disable-static \
+ --build=$TARGET || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
@@ -103,7 +105,7 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
mkdir -p $PKG/usr/doc/gmp-$VERSION
cp -a \
- AUTHORS COPYING* NEWS README \
+ AUTHORS COPYING* NEWS README* \
$PKG/usr/doc/gmp-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
diff --git a/source/l/gnome-icon-theme/doinst.sh b/source/l/gnome-icon-theme/doinst.sh
deleted file mode 100644
index 35fc874cb..000000000
--- a/source/l/gnome-icon-theme/doinst.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ -e /usr/share/icons/gnome/icon-theme.cache ]; then
- if [ -x /usr/bin/gtk-update-icon-cache ]; then
- /usr/bin/gtk-update-icon-cache /usr/share/icons/gnome 1> /dev/null 2> /dev/null
- fi
-fi
-
diff --git a/source/l/gnome-icon-theme/fix_gits_configure.diff b/source/l/gnome-icon-theme/fix_gits_configure.diff
deleted file mode 100644
index 931b1b0f7..000000000
--- a/source/l/gnome-icon-theme/fix_gits_configure.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur gnome-icon-theme-symbolic-3.8.0.orig/configure gnome-icon-theme-symbolic-3.8.0/configure
---- gnome-icon-theme-symbolic-3.8.0.orig/configure 2013-03-26 03:44:16.000000000 -0500
-+++ gnome-icon-theme-symbolic-3.8.0/configure 2013-03-29 20:15:33.496885348 -0500
-@@ -2685,7 +2685,7 @@
-
-
-
--ac_config_files="$ac_config_files gnome-icon-theme-symbolic.pc Makefile src/Makefile"
-+ac_config_files="$ac_config_files Makefile src/Makefile"
-
-
- cat >confcache <<\_ACEOF
diff --git a/source/l/gnome-keyring/gnome-keyring.SlackBuild b/source/l/gnome-keyring/gnome-keyring.SlackBuild
index a238f1e7b..f6cfffb3f 100755
--- a/source/l/gnome-keyring/gnome-keyring.SlackBuild
+++ b/source/l/gnome-keyring/gnome-keyring.SlackBuild
@@ -24,11 +24,11 @@
PKGNAM=gnome-keyring
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
@@ -87,6 +87,13 @@ make install DESTDIR=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
AUTHORS README* COPYING* HACKING INSTALL NEWS \
diff --git a/source/l/gnome-themes-standard/gnome-themes-standard.SlackBuild b/source/l/gnome-themes-standard/gnome-themes-standard.SlackBuild
index 7ae80c465..c3d537aa1 100755
--- a/source/l/gnome-themes-standard/gnome-themes-standard.SlackBuild
+++ b/source/l/gnome-themes-standard/gnome-themes-standard.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
diff --git a/source/l/gnu-efi/gnu-efi.SlackBuild b/source/l/gnu-efi/gnu-efi.SlackBuild
index 4ffda4958..b17a59537 100755
--- a/source/l/gnu-efi/gnu-efi.SlackBuild
+++ b/source/l/gnu-efi/gnu-efi.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for gnu-efi
# Copyright 2009-2013 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2013, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,13 +24,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=gnu-efi
-VERSION=${VERSION:-$(echo $PKGNAM_*.tar.?z* | rev | cut -f 4- -d . | cut -f 1 -d _ | rev)}
-INTERNALVER=$(echo $VERSION | tr -d [a-z])
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +39,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -57,19 +56,19 @@ fi
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PKGNAM-$INTERNALVER
-tar xvf $CWD/${PKGNAM}_$VERSION.orig.tar.?z* || exit 1
-cd $PKGNAM-$INTERNALVER || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
+sed -i "s,/usr/local,/usr,g" Make.defaults
+
make CPPFLAGS="$SLKCFLAGS" || exit 1
make CPPFLAGS="$SLKCFLAGS" install INSTALLROOT=$PKG || exit
# Fix install locations:
-mkdir -p $PKG/usr
-mv $PKG/include $PKG/usr/include
-mv $PKG/lib $PKG/usr/lib${LIBDIRSUFFIX}
+mv $PKG/usr/lib $PKG/usr/lib${LIBDIRSUFFIX}
mkdir $PKG/usr/lib${LIBDIRSUFFIX}/gnuefi
mv $PKG/usr/lib${LIBDIRSUFFIX}/*.lds $PKG/usr/lib${LIBDIRSUFFIX}/gnuefi
mv $PKG/usr/lib${LIBDIRSUFFIX}/crt0*.o $PKG/usr/lib${LIBDIRSUFFIX}/gnuefi
@@ -79,6 +78,7 @@ mv $PKG/usr/lib${LIBDIRSUFFIX}/crt0*.o $PKG/usr/lib${LIBDIRSUFFIX}/gnuefi
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
+strip -g $PKG/usr/lib${LIBDIRSUFFIX}/libefi.a
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a ChangeLog README* \
diff --git a/source/l/gobject-introspection/gobject-introspection.SlackBuild b/source/l/gobject-introspection/gobject-introspection.SlackBuild
index 7dcd4fda0..cf7207844 100755
--- a/source/l/gobject-introspection/gobject-introspection.SlackBuild
+++ b/source/l/gobject-introspection/gobject-introspection.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
@@ -42,11 +42,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i386" ]; then
- SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
diff --git a/source/l/gsettings-desktop-schemas/gsettings-desktop-schemas.SlackBuild b/source/l/gsettings-desktop-schemas/gsettings-desktop-schemas.SlackBuild
index e050501d2..5ad31e5c2 100755
--- a/source/l/gsettings-desktop-schemas/gsettings-desktop-schemas.SlackBuild
+++ b/source/l/gsettings-desktop-schemas/gsettings-desktop-schemas.SlackBuild
@@ -29,8 +29,8 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/gsl/gsl.SlackBuild b/source/l/gsl/gsl.SlackBuild
new file mode 100755
index 000000000..274755615
--- /dev/null
+++ b/source/l/gsl/gsl.SlackBuild
@@ -0,0 +1,132 @@
+#!/bin/sh
+
+# Slackware build script for GSL
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Originally written by Aleksandar Samardzic <asamardzic@gmail.com>
+
+PKGNAM=gsl
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gsl
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf gsl-$VERSION
+tar xvf $CWD/gsl-$VERSION.tar.?z* || exit 1
+cd gsl-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-static \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$ARCH-slackware-linux || exit 1
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS BUGS COPYING ChangeLog INSTALL NEWS README THANKS TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/gsl/slack-desc b/source/l/gsl/slack-desc
new file mode 100644
index 000000000..0b52c0219
--- /dev/null
+++ b/source/l/gsl/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+gsl: GSL (a numerical library for C and C++ programmers)
+gsl:
+gsl: The GNU Scientific Library (GSL) is a collection of routines for
+gsl: numerical computing. The routines are written from scratch by the
+gsl: GSL team in ANSI C, and present a modern API for C programmers,
+gsl: while allowing wrappers to be written for very high-level
+gsl: languages.
+gsl:
+gsl: Homepage: http://www.gnu.org/software/gsl/
+gsl:
+gsl:
diff --git a/source/l/gst-plugins-base/gst-plugins-base.SlackBuild b/source/l/gst-plugins-base/gst-plugins-base.SlackBuild
index 4081e96d6..747fec2a4 100755
--- a/source/l/gst-plugins-base/gst-plugins-base.SlackBuild
+++ b/source/l/gst-plugins-base/gst-plugins-base.SlackBuild
@@ -26,12 +26,12 @@
PKGNAM=gst-plugins-base
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -44,8 +44,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/gst-plugins-base0/gst-plugins-base0.SlackBuild b/source/l/gst-plugins-base0/gst-plugins-base0.SlackBuild
new file mode 100755
index 000000000..9b2008901
--- /dev/null
+++ b/source/l/gst-plugins-base0/gst-plugins-base0.SlackBuild
@@ -0,0 +1,128 @@
+#!/bin/sh
+
+# Copyright 2008 Michiel van Wessem <michiel@slackbuilds.org>
+# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=gst-plugins-base
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --disable-debug \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* RELEASE REQUIREMENTS \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/gst-plugins-base0-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/gst-plugins-base0/slack-desc b/source/l/gst-plugins-base0/slack-desc
new file mode 100644
index 000000000..c8fb96d77
--- /dev/null
+++ b/source/l/gst-plugins-base0/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler---------------------------------------------|
+gst-plugins-base0: gst-plugins-base (base set of GStreamer plugins, v0)
+gst-plugins-base0:
+gst-plugins-base0: GStreamer Base Plug-ins is a well-groomed and well-maintained
+gst-plugins-base0: collection of GStreamer plug-ins and elements, spanning the
+gst-plugins-base0: range of possible types of elements one would want to write
+gst-plugins-base0: for GStreamer. It also contains helper libraries and base
+gst-plugins-base0: classes useful for writing elements. A wide range of video
+gst-plugins-base0: and audio decoders, encoders, and filters are included.
+gst-plugins-base0:
+gst-plugins-base0:
+gst-plugins-base0:
diff --git a/source/l/gst-plugins-good/gst-plugins-good.SlackBuild b/source/l/gst-plugins-good/gst-plugins-good.SlackBuild
index c935a42e0..280c9cbd0 100755
--- a/source/l/gst-plugins-good/gst-plugins-good.SlackBuild
+++ b/source/l/gst-plugins-good/gst-plugins-good.SlackBuild
@@ -26,12 +26,12 @@
PKGNAM=gst-plugins-good
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-5}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -44,8 +44,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -68,8 +68,6 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION
-zcat $CWD/v4l.compile.fixes.diff.gz | patch -p1 --verbose || exit 1
-
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -85,8 +83,8 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
- --disable-debug \
--disable-static \
+ --disable-debug \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
diff --git a/source/l/gst-plugins-good0/gst-plugins-good0.SlackBuild b/source/l/gst-plugins-good0/gst-plugins-good0.SlackBuild
new file mode 100755
index 000000000..deea4a900
--- /dev/null
+++ b/source/l/gst-plugins-good0/gst-plugins-good0.SlackBuild
@@ -0,0 +1,131 @@
+#!/bin/sh
+
+# Copyright 2008 Michiel van Wessem <michiel@slackbuilds.org>
+# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=gst-plugins-good
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION
+
+zcat $CWD/v4l.compile.fixes.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --disable-debug \
+ --disable-static \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* INSTALL NEWS README* RELEASE REQUIREMENTS \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}0-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/gst-plugins-good0/slack-desc b/source/l/gst-plugins-good0/slack-desc
new file mode 100644
index 000000000..97aa4bd9d
--- /dev/null
+++ b/source/l/gst-plugins-good0/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler---------------------------------------------|
+gst-plugins-good0: gst-plugins-good (good set of GStreamer plugins, v0)
+gst-plugins-good0:
+gst-plugins-good0: GStreamer Good Plug-ins is a set of plug-ins that have good
+gst-plugins-good0: quality code, correct functionality, and a good license
+gst-plugins-good0: (LGPL for the plug-in code, LGPL or LGPL-compatible for the
+gst-plugins-good0: supporting library).
+gst-plugins-good0:
+gst-plugins-good0:
+gst-plugins-good0:
+gst-plugins-good0:
+gst-plugins-good0:
diff --git a/source/l/gst-plugins-good/v4l.compile.fixes.diff b/source/l/gst-plugins-good0/v4l.compile.fixes.diff
index e03fdac89..e03fdac89 100644
--- a/source/l/gst-plugins-good/v4l.compile.fixes.diff
+++ b/source/l/gst-plugins-good0/v4l.compile.fixes.diff
diff --git a/source/l/gstreamer/gstreamer.SlackBuild b/source/l/gstreamer/gstreamer.SlackBuild
index 8bf648d05..9d7ab4ff5 100755
--- a/source/l/gstreamer/gstreamer.SlackBuild
+++ b/source/l/gstreamer/gstreamer.SlackBuild
@@ -2,7 +2,7 @@
# Copyright 2008 Robby Workman, Northport, Alabama, USA
# Copyright 2008 Michiel van Wessem <michiel@slackbuilds.org>
-# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,12 +25,12 @@
PKGNAM=gstreamer
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -39,8 +39,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -85,16 +85,8 @@ CXXFLAGS="$SLKCFLAGS" \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--disable-static \
--disable-debug \
- --disable-gst-debug \
- --enable-glib-asserts=no \
- --with-package-name='gstreamer' \
- --with-package-origin='http://gstreamer.freedesktop.org' \
--build=$ARCH-slackware-linux
-# --disable-gst-debug was always used before, but now the option prevents
-# gstreamer (10.22) from compiling. Check again with future releases.
-# Seems fine as of 0.10.26, so it's enabled again -RW
-
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/gstreamer0/gstreamer0.SlackBuild b/source/l/gstreamer0/gstreamer0.SlackBuild
new file mode 100755
index 000000000..bef440201
--- /dev/null
+++ b/source/l/gstreamer0/gstreamer0.SlackBuild
@@ -0,0 +1,137 @@
+#!/bin/sh
+
+# Copyright 2008 Robby Workman, Northport, Alabama, USA
+# Copyright 2008 Michiel van Wessem <michiel@slackbuilds.org>
+# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=gstreamer
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --disable-debug \
+ --disable-gst-debug \
+ --enable-glib-asserts=no \
+ --with-package-name='gstreamer' \
+ --with-package-origin='http://gstreamer.freedesktop.org' \
+ --build=$ARCH-slackware-linux
+
+# --disable-gst-debug was always used before, but now the option prevents
+# gstreamer (10.22) from compiling. Check again with future releases.
+# Seems fine as of 0.10.26, so it's enabled again -RW
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* INSTALL MAINTAINERS NEWS README* RELEASE TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}0-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/gstreamer0/slack-desc b/source/l/gstreamer0/slack-desc
new file mode 100644
index 000000000..f59f462fe
--- /dev/null
+++ b/source/l/gstreamer0/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler----------------------------------------------------|
+gstreamer0: GStreamer (streaming multimedia framework, v0)
+gstreamer0:
+gstreamer0: GStreamer is a library that allows the construction of graphs of a
+gstreamer0: media-handling components, ranging from simple Ogg/Vorbis playback
+gstreamer0: to complex audio (mixing) and video (non-linear editing) processing.
+gstreamer0: Applications can take advantage of advances in codec and filter
+gstreamer0: technology transparently. Developers can add new codecs and filters
+gstreamer0: by writing a simple plugin with a clean, generic interface.
+gstreamer0:
+gstreamer0: GStreamer is released under the LGPL.
+gstreamer0:
diff --git a/source/l/gtk+2/doinst.sh b/source/l/gtk+2/doinst.sh
index 18d5fb272..ee74ab9c4 100644
--- a/source/l/gtk+2/doinst.sh
+++ b/source/l/gtk+2/doinst.sh
@@ -10,9 +10,7 @@ config() {
# Otherwise, we leave the .new copy for the admin to consider...
}
-config etc/gtk-2.0/gtkrc.new
config etc/gtk-2.0/im-multipress.conf.new
-rm -f etc/gtk-2.0/gtkrc.new
chroot . rm -f /usr/share/icons/*/icon-theme.cache 1> /dev/null 2> /dev/null
diff --git a/source/l/gtk+2/fix_build_issues_on_tutorial_and_faq.diff b/source/l/gtk+2/fix_build_issues_on_tutorial_and_faq.diff
index 6d6ad4d23..6c3523518 100644
--- a/source/l/gtk+2/fix_build_issues_on_tutorial_and_faq.diff
+++ b/source/l/gtk+2/fix_build_issues_on_tutorial_and_faq.diff
@@ -1,26 +1,26 @@
-diff -Nur gtk+-2.24.0.orig/docs/faq/Makefile.am gtk+-2.24.0/docs/faq/Makefile.am
---- gtk+-2.24.0.orig/docs/faq/Makefile.am 2011-01-05 09:51:19.000000000 -0600
-+++ gtk+-2.24.0/docs/faq/Makefile.am 2011-02-11 10:41:13.383824443 -0600
-@@ -9,7 +9,8 @@
- (cd $(srcdir); \
- db2html gtk-faq.sgml; \
- test -d html && rm -r html; \
-- mv gtk-faq html); \
-+ mkdir html; \
-+ mv *.html html); \
- fi
+diff -Nur gtk+-2.24.27.orig/docs/faq/Makefile.in gtk+-2.24.27/docs/faq/Makefile.in
+--- gtk+-2.24.27.orig/docs/faq/Makefile.in 2015-03-03 10:41:21.000000000 -0600
++++ gtk+-2.24.27/docs/faq/Makefile.in 2015-03-05 20:21:08.037167566 -0600
+@@ -644,7 +644,8 @@
+ @HAVE_DOCBOOK_TRUE@ (cd $(srcdir); \
+ @HAVE_DOCBOOK_TRUE@ db2html gtk-faq.sgml; \
+ @HAVE_DOCBOOK_TRUE@ test -d html && rm -r html; \
+-@HAVE_DOCBOOK_TRUE@ mv gtk-faq html); \
++@HAVE_DOCBOOK_TRUE@ mkdir html; \
++@HAVE_DOCBOOK_TRUE@ mv *.html html); \
+ @HAVE_DOCBOOK_TRUE@ fi
- pdf:
-diff -Nur gtk+-2.24.0.orig/docs/tutorial/Makefile.am gtk+-2.24.0/docs/tutorial/Makefile.am
---- gtk+-2.24.0.orig/docs/tutorial/Makefile.am 2011-01-05 09:51:20.000000000 -0600
-+++ gtk+-2.24.0/docs/tutorial/Makefile.am 2011-02-11 10:42:04.541622883 -0600
-@@ -42,7 +42,8 @@
- (cd $(srcdir); \
- db2html gtk-tut.sgml; \
- test -d html && rm -r html; \
-- mv gtk-tut html; \
-+ mkdir html; \
-+ mv *.html html; \
- mkdir html/images; \
- cp images/*.png html/images); \
- fi
+ @HAVE_DOCBOOK_TRUE@pdf:
+diff -Nur gtk+-2.24.27.orig/docs/tutorial/Makefile.in gtk+-2.24.27/docs/tutorial/Makefile.in
+--- gtk+-2.24.27.orig/docs/tutorial/Makefile.in 2015-03-03 10:41:21.000000000 -0600
++++ gtk+-2.24.27/docs/tutorial/Makefile.in 2015-03-05 20:19:52.973017063 -0600
+@@ -657,7 +657,8 @@
+ @HAVE_DOCBOOK_TRUE@ (cd $(srcdir); \
+ @HAVE_DOCBOOK_TRUE@ db2html gtk-tut.sgml; \
+ @HAVE_DOCBOOK_TRUE@ test -d html && rm -r html; \
+-@HAVE_DOCBOOK_TRUE@ mv gtk-tut html; \
++@HAVE_DOCBOOK_TRUE@ mkdir html; \
++@HAVE_DOCBOOK_TRUE@ mv *.html html; \
+ @HAVE_DOCBOOK_TRUE@ mkdir html/images; \
+ @HAVE_DOCBOOK_TRUE@ cp images/*.png html/images); \
+ @HAVE_DOCBOOK_TRUE@ fi
diff --git a/source/l/gtk+2/gtk+2.SlackBuild b/source/l/gtk+2/gtk+2.SlackBuild
index cc8f16511..92f95449a 100755
--- a/source/l/gtk+2/gtk+2.SlackBuild
+++ b/source/l/gtk+2/gtk+2.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-gtk2
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -77,8 +77,13 @@ zcat $CWD/gtk.xid.nowarningflood.diff.gz | patch -p1 --verbose || exit 1
# Patch to restore commonly used icon names, otherwise everything breaks.
# I fail to see the point of this "cleanup"
-zcat $CWD/gtk+-2.24.x.icon-compat.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/gtk+-2.24.x.icon-compat.am.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gtk+-2.24.x.icon-compat.diff.gz | patch -p1 --verbose || exit 1
+
+# Prevents build failures in the docs. Found online.
+# Only needed if autoreconf is used... ?
+zcat $CWD/gtk.gtk-faq.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gtk.gtk-tut.diff.gz | patch -p1 --verbose || exit 1
# Regenerate ./configure:
libtoolize --force
@@ -117,7 +122,10 @@ make install \
mv $PKG/etc/gtk-2.0/im-multipress.conf $PKG/etc/gtk-2.0/im-multipress.conf.new || exit 1
# Install a "starter" gtkrc
-echo 'gtk-theme-name="GTK+"' > $PKG/etc/gtk-2.0/gtkrc.new
+# /etc/gtk-2.0/gtkrc overrides this --rworkman
+echo 'gtk-theme-name="GTK+"' > $PKG/usr/share/gtk-2.0/gtkrc
+echo 'gtk-icon-theme-name="Adwaita"' >> $PKG/usr/share/gtk-2.0/gtkrc
+echo 'gtk-fallback-icon-theme = "Tango"' >> $PKG/usr/share/gtk-2.0/gtkrc
# We need to have separate 32-bit and 64-bit binaries
# for places where we have two copies of the GTK+ package installed.
diff --git a/source/l/gtk+2/gtk.gtk-faq.diff b/source/l/gtk+2/gtk.gtk-faq.diff
new file mode 100644
index 000000000..f3307d51f
--- /dev/null
+++ b/source/l/gtk+2/gtk.gtk-faq.diff
@@ -0,0 +1,11 @@
+--- ./docs/faq/Makefile.am.orig 2014-09-29 15:02:16.000000000 -0500
++++ ./docs/faq/Makefile.am 2015-03-18 22:11:42.692413132 -0500
+@@ -7,7 +7,7 @@
+ html:
+ if test -w $(srcdir); then \
+ (cd $(srcdir); \
+- db2html gtk-faq.sgml; \
++ db2html -o gtk-faq gtk-faq.sgml; \
+ test -d html && rm -r html; \
+ mv gtk-faq html); \
+ fi
diff --git a/source/l/gtk+2/gtk.gtk-tut.diff b/source/l/gtk+2/gtk.gtk-tut.diff
new file mode 100644
index 000000000..ee363a266
--- /dev/null
+++ b/source/l/gtk+2/gtk.gtk-tut.diff
@@ -0,0 +1,11 @@
+--- ./docs/tutorial/Makefile.am.orig 2014-09-29 15:02:16.000000000 -0500
++++ ./docs/tutorial/Makefile.am 2015-03-18 22:04:36.171382357 -0500
+@@ -40,7 +40,7 @@
+ html: gtk-tut.sgml
+ if test -w $(srcdir); then \
+ (cd $(srcdir); \
+- db2html gtk-tut.sgml; \
++ db2html -o gtk-tut gtk-tut.sgml; \
+ test -d html && rm -r html; \
+ mv gtk-tut html; \
+ mkdir html/images; \
diff --git a/source/l/gtk+3/doinst.sh b/source/l/gtk+3/doinst.sh
index da33a4e8d..55dae32d5 100644
--- a/source/l/gtk+3/doinst.sh
+++ b/source/l/gtk+3/doinst.sh
@@ -21,11 +21,16 @@ rm -f etc/gtk-3.0/gtkrc.new
chroot . rm -f /usr/share/icons/*/icon-theme.cache 1> /dev/null 2> /dev/null
-# Run this if we are on an installed system. Otherwise it will be
+# Run these if we are on an installed system. Otherwise they will be
# handled on first boot.
if [ -x /usr/bin/update-gtk-immodules-3.0 ]; then
/usr/bin/update-gtk-immodules-3.0
fi
+if [ -e /usr/share/glib-2.0/schemas ]; then
+ if [ -x /usr/bin/glib-compile-schemas ]; then
+ /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas >/dev/null 2>&1
+ fi
+fi
# In case this is the first run installing the standalone gdk-pixbuf,
# we will run this a second time to fix machines that will not reboot.
diff --git a/source/l/gtk+3/gtk+3.SlackBuild b/source/l/gtk+3/gtk+3.SlackBuild
index 55a69bcac..6e97fbdbf 100755
--- a/source/l/gtk+3/gtk+3.SlackBuild
+++ b/source/l/gtk+3/gtk+3.SlackBuild
@@ -22,14 +22,14 @@
VERSION=${VERSION:-$(echo gtk+-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-gtk3
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -74,7 +74,7 @@ autoreconf -vif
# Autoconf changes linux to linux-gnu.
# Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu:
-sed -i -e 's#linux|linux-gnu|#linux|linux|#' config.sub
+sed -i -e 's#linux|linux-gnu|#linux|linux|#' build-aux/config.sub
CFLAGS="$SLKCFLAGS" \
./configure \
@@ -83,8 +83,8 @@ CFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--mandir=/usr/man \
--enable-xkb \
- --enable-packagekit=no \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
+
# --enable-gtk-doc-html=no \
make $NUMJOBS || make || exit 1
@@ -105,7 +105,7 @@ echo 'gtk-theme-name="Adwaita"' > $PKG/etc/gtk-3.0/gtkrc.new
# We need to have separate 32-bit and 64-bit binaries
# for places where we have two copies of the GTK+ package installed.
-# (we might have x86_64 and i486 packages on the same system, for example.)
+# (we might have x86_64 and i586 packages on the same system, for example.)
case "$host" in
s390x*|x86_64*)
mv $PKG/usr/bin/gtk-query-immodules-3.0{,-64}
diff --git a/source/l/gtkmm2/gtkmm2.SlackBuild b/source/l/gtkmm2/gtkmm2.SlackBuild
new file mode 100755
index 000000000..016943b3a
--- /dev/null
+++ b/source/l/gtkmm2/gtkmm2.SlackBuild
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+# Copyright 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SRCNAM=gtkmm
+PKGNAM=gtkmm2
+VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+SRCNAM=gtkmm
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$SRCNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.xz || exit 1
+cd $SRCNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -std=c++11" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$SRCNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS libdocdir=/usr/doc/$SRCNAM-$VERSION || make libdocdir=/usr/doc/$SRCNAM-$VERSION || exit 1
+make install libdocdir=/usr/doc/$SRCNAM-$VERSION DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cp -a \
+ AUTHORS COPYING* NEWS PORTING README* \
+ $PKG/usr/doc/$SRCNAM-$VERSION
+# Remove images and (huge) API docs
+rm -rf $PKG/usr/doc/$SRCNAM-$VERSION/{images,reference}
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${SRCNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/gtkmm2/slack-desc b/source/l/gtkmm2/slack-desc
new file mode 100644
index 000000000..0c97a9e85
--- /dev/null
+++ b/source/l/gtkmm2/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+gtkmm2: gtkmm2 (C++ interface for GTK+2)
+gtkmm2:
+gtkmm2: gtkmm is the official C++ interface for the popular GUI library
+gtkmm2: GTK+. Highlights include typesafe callbacks, and a comprehensive set
+gtkmm2: of widgets that are easily extensible via inheritance.
+gtkmm2:
+gtkmm2: Homepage: http://www.gtkmm.org/
+gtkmm2:
+gtkmm2:
+gtkmm2:
+gtkmm2:
diff --git a/source/l/gtkmm3/gtkmm3.SlackBuild b/source/l/gtkmm3/gtkmm3.SlackBuild
new file mode 100755
index 000000000..2dc5b10d9
--- /dev/null
+++ b/source/l/gtkmm3/gtkmm3.SlackBuild
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SRCNAM=gtkmm
+PKGNAM=gtkmm3
+VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+SRCNAM=gtkmm
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$SRCNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.xz || exit 1
+cd $SRCNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$SRCNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS libdocdir=/usr/doc/$SRCNAM-$VERSION || make libdocdir=/usr/doc/$SRCNAM-$VERSION || exit 1
+make install libdocdir=/usr/doc/$SRCNAM-$VERSION DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cp -a \
+ AUTHORS COPYING* NEWS PORTING README* \
+ $PKG/usr/doc/$SRCNAM-$VERSION
+# Remove images, API docs, and useless html file
+rm -rf $PKG/usr/doc/$SRCNAM-$VERSION/{images,reference,index.html}
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${SRCNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/gtkmm3/slack-desc b/source/l/gtkmm3/slack-desc
new file mode 100644
index 000000000..e250db1bc
--- /dev/null
+++ b/source/l/gtkmm3/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+gtkmm3: gtkmm3 (C++ interface for GTK+3)
+gtkmm3:
+gtkmm3: gtkmm is the official C++ interface for the popular GUI library
+gtkmm3: GTK+. Highlights include typesafe callbacks, and a comprehensive set
+gtkmm3: of widgets that are easily extensible via inheritance.
+gtkmm3:
+gtkmm3: Homepage: http://www.gtkmm.org/
+gtkmm3:
+gtkmm3:
+gtkmm3:
+gtkmm3:
diff --git a/source/l/gtkspell/gtkspell.SlackBuild b/source/l/gtkspell/gtkspell.SlackBuild
index daa56100a..3cb121755 100755
--- a/source/l/gtkspell/gtkspell.SlackBuild
+++ b/source/l/gtkspell/gtkspell.SlackBuild
@@ -23,12 +23,12 @@
PKGNAM=gtkspell
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/gvfs/gvfs.SlackBuild b/source/l/gvfs/gvfs.SlackBuild
index c6eb8173f..5006eca3f 100755
--- a/source/l/gvfs/gvfs.SlackBuild
+++ b/source/l/gvfs/gvfs.SlackBuild
@@ -22,13 +22,13 @@
PKGNAM=gvfs
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j6}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
*) export ARCH=$( uname -m ) ;;
esac
@@ -38,8 +38,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -88,10 +88,6 @@ sed -i -e "s/AutoMount=true/AutoMount=false/g" $PKG/usr/share/gvfs/mounts/networ
# Don't ship .la files:
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
-mkdir -p $PKG/etc/bash_completion.d/
-mv $PKG/etc/profile.d/gvfs-bash-completion.sh \
- $PKG/etc/bash_completion.d/gvfs
-
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/harfbuzz/harfbuzz.SlackBuild b/source/l/harfbuzz/harfbuzz.SlackBuild
index 287acb800..ecd04c6c6 100755
--- a/source/l/harfbuzz/harfbuzz.SlackBuild
+++ b/source/l/harfbuzz/harfbuzz.SlackBuild
@@ -27,8 +27,8 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/harfbuzz/slack-desc b/source/l/harfbuzz/slack-desc
index e34915430..76bf1a318 100644
--- a/source/l/harfbuzz/slack-desc
+++ b/source/l/harfbuzz/slack-desc
@@ -10,7 +10,7 @@ harfbuzz: harfbuzz (OpenType text shaping engine)
harfbuzz:
harfbuzz: HarfBuzz is an OpenType text shaping engine.
harfbuzz:
-harfbuzz: http://www.freedesktop.org/wiki/Software/HarfBuzz
+harfbuzz: http://www.freedesktop.org/software/harfbuzz/release
harfbuzz:
harfbuzz:
harfbuzz:
diff --git a/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild b/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild
index 9bb514864..70dcc8de4 100755
--- a/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild
+++ b/source/l/hicolor-icon-theme/hicolor-icon-theme.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2014 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-0.12}
+VERSION=${VERSION:-0.15}
ARCH=noarch
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -33,7 +33,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf hicolor-icon-theme-$VERSION
-tar xvf $CWD/hicolor-icon-theme-$VERSION.tar.gz || exit 1
+tar xvf $CWD/hicolor-icon-theme-$VERSION.tar.xz || exit 1
cd hicolor-icon-theme-$VERSION
chown -R root:root .
find . \
@@ -54,7 +54,7 @@ chmod 0755 $PKG/var/log/setup/setup.08.gtk-update-icon-cache
mkdir -p $PKG/usr/doc/hicolor-icon-theme-$VERSION
cp -a \
- COPYING README \
+ COPYING NEWS README \
$PKG/usr/doc/hicolor-icon-theme-$VERSION
chmod 0644 $PKG/usr/doc/hicolor-icon-theme-$VERSION/*
diff --git a/source/l/hicolor-icon-theme/slack-desc b/source/l/hicolor-icon-theme/slack-desc
index 4f40b1fab..d07f7329a 100644
--- a/source/l/hicolor-icon-theme/slack-desc
+++ b/source/l/hicolor-icon-theme/slack-desc
@@ -14,6 +14,6 @@ hicolor-icon-theme:
hicolor-icon-theme: The specification is available at:
hicolor-icon-theme: http://www.freedesktop.org/standards/icon-theme-spec/
hicolor-icon-theme:
-hicolor-icon-theme:
+hicolor-icon-theme: Homepage: https://www.freedesktop.org/wiki/Software/icon-theme
hicolor-icon-theme:
hicolor-icon-theme:
diff --git a/source/l/icu4c/icu4c.SlackBuild b/source/l/icu4c/icu4c.SlackBuild
index 1465a286e..823e4a04b 100755
--- a/source/l/icu4c/icu4c.SlackBuild
+++ b/source/l/icu4c/icu4c.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for icu4c
# Copyright 2007-2013 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2012, 2013, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,12 +26,12 @@
PKGNAM=icu4c
SRCVER=${SRCVER:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 2- -d . | cut -f 2 -d - | rev)}
VERSION=$(echo $SRCVER | tr _ .)
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
@@ -44,8 +44,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-icu4c
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -71,6 +71,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 \
-o -perm 400 \) -exec chmod 644 {} \;
+zcat $CWD/icu4c.closenull.patch.gz | patch -p1 --verbose || exit 1
+
cd source/
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/source/l/icu4c/icu4c.closenull.patch b/source/l/icu4c/icu4c.closenull.patch
new file mode 100644
index 000000000..3cc0b7f64
--- /dev/null
+++ b/source/l/icu4c/icu4c.closenull.patch
@@ -0,0 +1,48 @@
+--- icu/source/common/unicode/localpointer.h.orig 2016-02-21 21:40:54.346007093 +0100
++++ icu/source/common/unicode/localpointer.h 2016-02-21 21:46:25.455090792 +0100
+@@ -508,12 +508,12 @@
+ : LocalPointerBase<Type>(src.ptr) { \
+ src.ptr=NULL; \
+ } \
+- ~LocalPointerClassName() { closeFunction(ptr); } \
++ ~LocalPointerClassName() { if (ptr != NULL) closeFunction(ptr); } \
+ LocalPointerClassName &operator=(LocalPointerClassName &&src) U_NOEXCEPT { \
+ return moveFrom(src); \
+ } \
+ LocalPointerClassName &moveFrom(LocalPointerClassName &src) U_NOEXCEPT { \
+- closeFunction(ptr); \
++ if (ptr != NULL) closeFunction(ptr); \
+ LocalPointerBase<Type>::ptr=src.ptr; \
+ src.ptr=NULL; \
+ return *this; \
+@@ -527,7 +527,7 @@
+ p1.swap(p2); \
+ } \
+ void adoptInstead(Type *p) { \
+- closeFunction(ptr); \
++ if (ptr != NULL) closeFunction(ptr); \
+ ptr=p; \
+ } \
+ }
+@@ -536,9 +536,9 @@
+ class LocalPointerClassName : public LocalPointerBase<Type> { \
+ public: \
+ explicit LocalPointerClassName(Type *p=NULL) : LocalPointerBase<Type>(p) {} \
+- ~LocalPointerClassName() { closeFunction(ptr); } \
++ ~LocalPointerClassName() { if (ptr != NULL) closeFunction(ptr); } \
+ LocalPointerClassName &moveFrom(LocalPointerClassName &src) U_NOEXCEPT { \
+- closeFunction(ptr); \
++ if (ptr != NULL) closeFunction(ptr); \
+ LocalPointerBase<Type>::ptr=src.ptr; \
+ src.ptr=NULL; \
+ return *this; \
+@@ -552,7 +552,7 @@
+ p1.swap(p2); \
+ } \
+ void adoptInstead(Type *p) { \
+- closeFunction(ptr); \
++ if (ptr != NULL) closeFunction(ptr); \
+ ptr=p; \
+ } \
+ }
+
diff --git a/source/l/ilmbase/ilmbase-2.2.0-no_undefined.patch b/source/l/ilmbase/ilmbase-2.2.0-no_undefined.patch
new file mode 100644
index 000000000..d64190783
--- /dev/null
+++ b/source/l/ilmbase/ilmbase-2.2.0-no_undefined.patch
@@ -0,0 +1,24 @@
+diff -up ilmbase-2.2.0/IlmThread/Makefile.am.no_undefined ilmbase-2.2.0/IlmThread/Makefile.am
+--- ilmbase-2.2.0/IlmThread/Makefile.am.no_undefined 2014-08-09 21:03:38.000000000 -0500
++++ ilmbase-2.2.0/IlmThread/Makefile.am 2014-11-20 07:44:27.913588030 -0600
+@@ -14,7 +14,7 @@ libIlmThread_la_LDFLAGS = -version-info
+ if LIB_SUFFIX_EXISTS
+ libIlmThread_la_LDFLAGS += -release @LIB_SUFFIX@
+ endif
+-libIlmThread_la_LIBADD = ../Iex/libIex.la
++libIlmThread_la_LIBADD = ../Iex/libIex.la $(PTHREAD_LIBS)
+
+ libIlmThreadincludedir = $(includedir)/OpenEXR
+
+diff -up ilmbase-2.2.0/IlmThread/Makefile.in.no_undefined ilmbase-2.2.0/IlmThread/Makefile.in
+--- ilmbase-2.2.0/IlmThread/Makefile.in.no_undefined 2014-08-09 23:37:24.000000000 -0500
++++ ilmbase-2.2.0/IlmThread/Makefile.in 2014-11-20 07:44:27.914587968 -0600
+@@ -251,7 +251,7 @@ libIlmThread_la_SOURCES = IlmThreadPool.
+
+ libIlmThread_la_LDFLAGS = -version-info @LIBTOOL_VERSION@ \
+ -no-undefined $(am__append_1)
+-libIlmThread_la_LIBADD = ../Iex/libIex.la
++libIlmThread_la_LIBADD = ../Iex/libIex.la $(PTHREAD_LIBS)
+ libIlmThreadincludedir = $(includedir)/OpenEXR
+ libIlmThreadinclude_HEADERS = IlmThreadPool.h IlmThread.h \
+ IlmThreadSemaphore.h IlmThreadMutex.h \
diff --git a/source/l/ilmbase/ilmbase.SlackBuild b/source/l/ilmbase/ilmbase.SlackBuild
index a0f3b67d3..55cff0e9b 100755
--- a/source/l/ilmbase/ilmbase.SlackBuild
+++ b/source/l/ilmbase/ilmbase.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
-# Copyright 2007, 2013 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2013, 2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2008, 2009, 2010, 2014 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -64,14 +64,6 @@ cd $TMP
rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
-
-zcat $CWD/ilmbase.no_undefined.diff.gz | patch -p1 --verbose || exit 1
-zcat $CWD/ilmbase.secondary.diff.gz | patch -p1 --verbose || exit 1
-if [ $ARCH = i486 ]; then
- # Upstream patch to fix ia32 build:
- zcat $CWD/ilmbase.ucontext.diff.gz | patch -p1 --verbose || exit 1
-fi
-
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -79,6 +71,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+zcat $CWD/ilmbase-2.2.0-no_undefined.patch.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/l/ilmbase/ilmbase.no_undefined.diff b/source/l/ilmbase/ilmbase.no_undefined.diff
deleted file mode 100644
index da46ddbe4..000000000
--- a/source/l/ilmbase/ilmbase.no_undefined.diff
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -up ilmbase-1.0.2/IlmThread/Makefile.am.pthread_hack ilmbase-1.0.2/IlmThread/Makefile.am
---- ilmbase-1.0.2/IlmThread/Makefile.am.pthread_hack 2006-12-08 16:23:08.000000000 -0600
-+++ ilmbase-1.0.2/IlmThread/Makefile.am 2010-12-08 09:25:35.753537799 -0600
-@@ -11,7 +11,7 @@ libIlmThread_la_SOURCES = IlmThreadPool.
- IlmThreadMutexPosix.cpp
-
- libIlmThread_la_LDFLAGS = -version-info @LIBTOOL_VERSION@ -no-undefined
--libIlmThread_la_LIBADD = ../Iex/libIex.la
-+libIlmThread_la_LIBADD = ../Iex/libIex.la $(PTHREAD_LIBS)
-
- libIlmThreadincludedir = $(includedir)/OpenEXR
-
-@@ -23,4 +23,4 @@ noinst_HEADERS =
- EXTRA_DIST = $(noinst_HEADERS) IlmThreadMutexWin32.cpp IlmThreadSemaphoreWin32.cpp \
- IlmThreadWin32.cpp
-
--INCLUDES = -I$(top_builddir) -I$(top_srcdir)/Iex -I$(top_srcdir)/config
-\ No newline at end of file
-+INCLUDES = -I$(top_builddir) -I$(top_srcdir)/Iex -I$(top_srcdir)/config
-diff -up ilmbase-1.0.2/IlmThread/Makefile.in.pthread_hack ilmbase-1.0.2/IlmThread/Makefile.in
---- ilmbase-1.0.2/IlmThread/Makefile.in.pthread_hack 2010-07-22 20:13:12.000000000 -0500
-+++ ilmbase-1.0.2/IlmThread/Makefile.in 2010-12-08 09:26:10.136971078 -0600
-@@ -208,7 +208,7 @@ libIlmThread_la_SOURCES = IlmThreadPool.
- IlmThreadMutexPosix.cpp
-
- libIlmThread_la_LDFLAGS = -version-info @LIBTOOL_VERSION@ -no-undefined
--libIlmThread_la_LIBADD = ../Iex/libIex.la
-+libIlmThread_la_LIBADD = ../Iex/libIex.la $(PTHREAD_LIBS)
- libIlmThreadincludedir = $(includedir)/OpenEXR
- libIlmThreadinclude_HEADERS = IlmThreadPool.h IlmThread.h \
- IlmThreadSemaphore.h IlmThreadMutex.h
diff --git a/source/l/ilmbase/ilmbase.secondary.diff b/source/l/ilmbase/ilmbase.secondary.diff
deleted file mode 100644
index d358fbb4c..000000000
--- a/source/l/ilmbase/ilmbase.secondary.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up ilmbase-1.0.3/IexMath/IexMathFpu.cpp.secondary ilmbase-1.0.3/IexMath/IexMathFpu.cpp
---- ilmbase-1.0.3/IexMath/IexMathFpu.cpp.secondary 2012-09-04 10:26:55.000000000 +0200
-+++ ilmbase-1.0.3/IexMath/IexMathFpu.cpp 2012-09-04 10:27:20.000000000 +0200
-@@ -27,7 +27,7 @@
- #endif
-
-
--#ifdef HAVE_UCONTEXT_H
-+#if defined(HAVE_UCONTEXT_H) && (defined(__x86_64__) || defined(__i386__))
-
-
- #include <ucontext.h>
diff --git a/source/l/ilmbase/ilmbase.ucontext.diff b/source/l/ilmbase/ilmbase.ucontext.diff
deleted file mode 100644
index 2a57508fd..000000000
--- a/source/l/ilmbase/ilmbase.ucontext.diff
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -up ilmbase-1.0.3/IexMath/IexMathFpu.cpp.ucontext ilmbase-1.0.3/IexMath/IexMathFpu.cpp
---- ilmbase-1.0.3/IexMath/IexMathFpu.cpp.ucontext 2012-07-26 20:51:55.000000000 +0200
-+++ ilmbase-1.0.3/IexMath/IexMathFpu.cpp 2012-08-02 23:33:14.815036891 +0200
-@@ -228,6 +228,7 @@ clearExceptions ()
- const uint16_t cwRestoreMask = ~((3 << 10) | (3 << 8));
- const uint16_t cwRestoreVal = (0 << 10) | (3 << 8);
-
-+#if 0
- inline void
- restoreControlRegs (const ucontext_t & ucon, bool clearExceptions)
- {
-@@ -235,7 +236,7 @@ restoreControlRegs (const ucontext_t & u
- setMxcsr (ucon.uc_mcontext.fpregs->mxcsr, clearExceptions);
- }
-
--#if 0
-+#endif
-
- //
- // Ugly, the mxcsr isn't defined in GNU libc ucontext_t, but
-@@ -255,7 +256,6 @@ restoreControlRegs (const ucontext_t & u
- setMxcsr (kfp->magic == 0 ? kfp->mxcsr : 0, clearExceptions);
- }
-
--#endif
-
- } // namespace FpuControl
-
diff --git a/source/l/imlib/imlib.mitshm.render.diff b/source/l/imlib/imlib.mitshm.render.diff
deleted file mode 100644
index f1c0ef111..000000000
--- a/source/l/imlib/imlib.mitshm.render.diff
+++ /dev/null
@@ -1,92 +0,0 @@
-diff -up -ru imlib-1.9.15.orig/gdk_imlib/misc.c imlib-1.9.15/gdk_imlib/misc.c
---- imlib-1.9.15.orig/gdk_imlib/misc.c 2002-03-04 18:06:32.000000000 +0100
-+++ imlib-1.9.15/gdk_imlib/misc.c 2007-10-28 14:00:04.000000000 +0100
-@@ -674,6 +674,10 @@ gdk_imlib_init_params(GdkImlibInitParams
- visual = gdk_rgb_get_visual();
- id->x.visual = GDK_VISUAL_XVISUAL(visual); /* the visual type */
- id->x.depth = visual->depth; /* the depth of the screen in bpp */
-+
-+ id->x.shm = 0;
-+ id->x.shmp = 0;
-+ id->max_shm = 0;
- #ifdef HAVE_SHM
- if (XShmQueryExtension(id->x.disp))
- {
-@@ -689,17 +693,14 @@ gdk_imlib_init_params(GdkImlibInitParams
- id->x.last_xim = NULL;
- id->x.last_sxim = NULL;
- id->max_shm = 0x7fffffff;
-- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
-+ if ((XShmPixmapFormat(id->x.disp) == ZPixmap) &&
-+ (pm == True))
- id->x.shmp = 1;
- }
- }
- }
-- else
- #endif
-- {
-- id->x.shm = 0;
-- id->x.shmp = 0;
-- }
-+
- id->cache.on_image = 0;
- id->cache.size_image = 0;
- id->cache.num_image = 0;
-@@ -935,8 +936,8 @@ gdk_imlib_init_params(GdkImlibInitParams
- }
- if (p->flags & PARAMS_SHAREDPIXMAPS)
- {
-- if (id->x.shm)
-- id->x.shmp = p->sharedpixmaps;
-+ if (!p->sharedpixmaps)
-+ id->x.shmp = 0;
- }
- if (p->flags & PARAMS_PALETTEOVERRIDE)
- override = p->paletteoverride;
-diff -up -ru imlib-1.9.15.orig/Imlib/misc.c imlib-1.9.15/Imlib/misc.c
---- imlib-1.9.15.orig/Imlib/misc.c 2004-09-21 02:22:59.000000000 +0200
-+++ imlib-1.9.15/Imlib/misc.c 2007-10-28 14:00:23.000000000 +0100
-@@ -675,6 +675,10 @@ Imlib_init_with_params(Display * disp, I
- id->x.root = DefaultRootWindow(disp); /* the root window id */
- id->x.visual = DefaultVisual(disp, id->x.screen); /* the visual type */
- id->x.depth = DefaultDepth(disp, id->x.screen); /* the depth of the screen in bpp */
-+
-+ id->x.shm = 0;
-+ id->x.shmp = 0;
-+ id->max_shm = 0;
- #ifdef HAVE_SHM
- if (XShmQueryExtension(id->x.disp))
- {
-@@ -690,17 +694,14 @@ Imlib_init_with_params(Display * disp, I
- id->x.last_xim = NULL;
- id->x.last_sxim = NULL;
- id->max_shm = 0x7fffffff;
-- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
-+ if ((XShmPixmapFormat(id->x.disp) == ZPixmap &&
-+ (pm == True)))
- id->x.shmp = 1;
- }
- }
- }
-- else
- #endif
-- {
-- id->x.shm = 0;
-- id->x.shmp = 0;
-- }
-+
- id->cache.on_image = 0;
- id->cache.size_image = 0;
- id->cache.num_image = 0;
-@@ -952,8 +953,8 @@ Imlib_init_with_params(Display * disp, I
- }
- if (p->flags & PARAMS_SHAREDPIXMAPS)
- {
-- if (id->x.shm)
-- id->x.shmp = p->sharedpixmaps;
-+ if (!p->sharedpixmaps)
-+ id->x.shmp = 0;
- }
- if (p->flags & PARAMS_PALETTEOVERRIDE)
- override = p->paletteoverride;
diff --git a/source/l/imlib/slack-desc b/source/l/imlib/slack-desc
deleted file mode 100644
index 7f0645514..000000000
--- a/source/l/imlib/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-imlib: imlib (image loading and rendering library)
-imlib:
-imlib: Imlib is a display depth-independent image loading and rendering
-imlib: library. Imlib is designed to simplify and speed up the process of
-imlib: loading images and obtaining X Window System drawables. Imlib
-imlib: provides many simple manipulation routines which can be used for
-imlib: common operations.
-imlib:
-imlib:
-imlib:
-imlib:
diff --git a/source/l/iso-codes/iso-codes.SlackBuild b/source/l/iso-codes/iso-codes.SlackBuild
index e6100a35e..ef9b1a799 100755
--- a/source/l/iso-codes/iso-codes.SlackBuild
+++ b/source/l/iso-codes/iso-codes.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2008, 2013 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=iso-codes
-VERSION=3.41
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ARCH=${ARCH:-noarch}
BUILD=${BUILD:-1}
@@ -50,14 +50,14 @@ CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
- --localstatedir=/var
+ --localstatedir=/var || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- COPYING* INSTALL LICENSE README* TODO \
+ COPYING* LICENSE README* TODO \
$PKG/usr/doc/$PKGNAM-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
diff --git a/source/l/iso-codes/slack-desc b/source/l/iso-codes/slack-desc
index 984a17838..d169f2fea 100644
--- a/source/l/iso-codes/slack-desc
+++ b/source/l/iso-codes/slack-desc
@@ -1,4 +1,4 @@
- |-----handy-ruler---------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
iso-codes: iso-codes (ISO-standard lists)
iso-codes:
iso-codes: This package provides lists of various ISO standards (e.g.
diff --git a/source/l/jasper/jasper.SlackBuild b/source/l/jasper/jasper.SlackBuild
index cda0001bd..8115b29c0 100755
--- a/source/l/jasper/jasper.SlackBuild
+++ b/source/l/jasper/jasper.SlackBuild
@@ -25,12 +25,12 @@
PKGNAM=jasper
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -38,7 +38,7 @@ if [ -z "$ARCH" ]; then
fi
case "$ARCH" in
- i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ i586) SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
;;
s390) SLKCFLAGS="-O2"
@@ -75,8 +75,33 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+# Taken from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469786
+zcat $CWD/patches/jpc_dec.c.patch.gz | patch -p1 --verbose || exit 1
+
+# Taken from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=413041;msg=88
+zcat $CWD/patches/patch-libjasper-stepsizes-overflow.diff.gz | patch -p1 --verbose || exit 1
+
+# Apply security fixes - taken from fedora
+zcat $CWD/patches/jasper-1.900.1-CVE-2008-3520.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-CVE-2008-3522.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-CVE-2014-8138.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-CVE-2014-8157.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-CVE-2014-8158.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-CVE-2014-8137.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-CVE-2014-9029.patch.gz | patch -p1 --verbose || exit 1
+
+# Apply fixes for issues discovered by coverity - taken from fedora
+zcat $CWD/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-Coverity-RESOURCE_LEAKS.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch.gz | patch -p1 --verbose || exit 1
+
+CFLAGS="$SLKCFLAGS -fno-strict-overflow" \
+CXXFLAGS="$SLKCFLAGS -fno-strict-overflow" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/source/l/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch b/source/l/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch
new file mode 100644
index 000000000..0f5e3b746
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-CVE-2008-3520.patch
@@ -0,0 +1,928 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3520
+
+OpenBSD jas_malloc hardening patches
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_cm.c jasper-1.900.1/src/libjasper/base/jas_cm.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_cm.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_cm.c 2009-10-22 10:27:45.000000000 +0200
+@@ -704,8 +704,7 @@ static int jas_cmpxformseq_resize(jas_cm
+ {
+ jas_cmpxform_t **p;
+ assert(n >= pxformseq->numpxforms);
+- p = (!pxformseq->pxforms) ? jas_malloc(n * sizeof(jas_cmpxform_t *)) :
+- jas_realloc(pxformseq->pxforms, n * sizeof(jas_cmpxform_t *));
++ p = jas_realloc2(pxformseq->pxforms, n, sizeof(jas_cmpxform_t *));
+ if (!p) {
+ return -1;
+ }
+@@ -889,13 +888,13 @@ static int jas_cmshapmatlut_set(jas_cmsh
+ jas_cmshapmatlut_cleanup(lut);
+ if (curv->numents == 0) {
+ lut->size = 2;
+- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t))))
++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t))))
+ goto error;
+ lut->data[0] = 0.0;
+ lut->data[1] = 1.0;
+ } else if (curv->numents == 1) {
+ lut->size = 256;
+- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t))))
++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t))))
+ goto error;
+ gamma = curv->ents[0] / 256.0;
+ for (i = 0; i < lut->size; ++i) {
+@@ -903,7 +902,7 @@ static int jas_cmshapmatlut_set(jas_cmsh
+ }
+ } else {
+ lut->size = curv->numents;
+- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t))))
++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t))))
+ goto error;
+ for (i = 0; i < lut->size; ++i) {
+ lut->data[i] = curv->ents[i] / 65535.0;
+@@ -953,7 +952,7 @@ static int jas_cmshapmatlut_invert(jas_c
+ return -1;
+ }
+ }
+- if (!(invlut->data = jas_malloc(n * sizeof(jas_cmreal_t))))
++ if (!(invlut->data = jas_alloc2(n, sizeof(jas_cmreal_t))))
+ return -1;
+ invlut->size = n;
+ for (i = 0; i < invlut->size; ++i) {
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_icc.c jasper-1.900.1/src/libjasper/base/jas_icc.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -373,7 +373,7 @@ int jas_iccprof_save(jas_iccprof_t *prof
+ jas_icctagtab_t *tagtab;
+
+ tagtab = &prof->tagtab;
+- if (!(tagtab->ents = jas_malloc(prof->attrtab->numattrs *
++ if (!(tagtab->ents = jas_alloc2(prof->attrtab->numattrs,
+ sizeof(jas_icctagtabent_t))))
+ goto error;
+ tagtab->numents = prof->attrtab->numattrs;
+@@ -522,7 +522,7 @@ static int jas_iccprof_gettagtab(jas_str
+ }
+ if (jas_iccgetuint32(in, &tagtab->numents))
+ goto error;
+- if (!(tagtab->ents = jas_malloc(tagtab->numents *
++ if (!(tagtab->ents = jas_alloc2(tagtab->numents,
+ sizeof(jas_icctagtabent_t))))
+ goto error;
+ tagtabent = tagtab->ents;
+@@ -743,8 +743,7 @@ static int jas_iccattrtab_resize(jas_icc
+ {
+ jas_iccattr_t *newattrs;
+ assert(maxents >= tab->numattrs);
+- newattrs = tab->attrs ? jas_realloc(tab->attrs, maxents *
+- sizeof(jas_iccattr_t)) : jas_malloc(maxents * sizeof(jas_iccattr_t));
++ newattrs = jas_realloc2(tab->attrs, maxents, sizeof(jas_iccattr_t));
+ if (!newattrs)
+ return -1;
+ tab->attrs = newattrs;
+@@ -999,7 +998,7 @@ static int jas_icccurv_input(jas_iccattr
+
+ if (jas_iccgetuint32(in, &curv->numents))
+ goto error;
+- if (!(curv->ents = jas_malloc(curv->numents * sizeof(jas_iccuint16_t))))
++ if (!(curv->ents = jas_alloc2(curv->numents, sizeof(jas_iccuint16_t))))
+ goto error;
+ for (i = 0; i < curv->numents; ++i) {
+ if (jas_iccgetuint16(in, &curv->ents[i]))
+@@ -1100,7 +1099,7 @@ static int jas_icctxtdesc_input(jas_icca
+ if (jas_iccgetuint32(in, &txtdesc->uclangcode) ||
+ jas_iccgetuint32(in, &txtdesc->uclen))
+ goto error;
+- if (!(txtdesc->ucdata = jas_malloc(txtdesc->uclen * 2)))
++ if (!(txtdesc->ucdata = jas_alloc2(txtdesc->uclen, 2)))
+ goto error;
+ if (jas_stream_read(in, txtdesc->ucdata, txtdesc->uclen * 2) !=
+ JAS_CAST(int, txtdesc->uclen * 2))
+@@ -1292,17 +1291,17 @@ static int jas_icclut8_input(jas_iccattr
+ jas_iccgetuint16(in, &lut8->numouttabents))
+ goto error;
+ clutsize = jas_iccpowi(lut8->clutlen, lut8->numinchans) * lut8->numoutchans;
+- if (!(lut8->clut = jas_malloc(clutsize * sizeof(jas_iccuint8_t))) ||
+- !(lut8->intabsbuf = jas_malloc(lut8->numinchans *
+- lut8->numintabents * sizeof(jas_iccuint8_t))) ||
+- !(lut8->intabs = jas_malloc(lut8->numinchans *
++ if (!(lut8->clut = jas_alloc2(clutsize, sizeof(jas_iccuint8_t))) ||
++ !(lut8->intabsbuf = jas_alloc3(lut8->numinchans,
++ lut8->numintabents, sizeof(jas_iccuint8_t))) ||
++ !(lut8->intabs = jas_alloc2(lut8->numinchans,
+ sizeof(jas_iccuint8_t *))))
+ goto error;
+ for (i = 0; i < lut8->numinchans; ++i)
+ lut8->intabs[i] = &lut8->intabsbuf[i * lut8->numintabents];
+- if (!(lut8->outtabsbuf = jas_malloc(lut8->numoutchans *
+- lut8->numouttabents * sizeof(jas_iccuint8_t))) ||
+- !(lut8->outtabs = jas_malloc(lut8->numoutchans *
++ if (!(lut8->outtabsbuf = jas_alloc3(lut8->numoutchans,
++ lut8->numouttabents, sizeof(jas_iccuint8_t))) ||
++ !(lut8->outtabs = jas_alloc2(lut8->numoutchans,
+ sizeof(jas_iccuint8_t *))))
+ goto error;
+ for (i = 0; i < lut8->numoutchans; ++i)
+@@ -1461,17 +1460,17 @@ static int jas_icclut16_input(jas_iccatt
+ jas_iccgetuint16(in, &lut16->numouttabents))
+ goto error;
+ clutsize = jas_iccpowi(lut16->clutlen, lut16->numinchans) * lut16->numoutchans;
+- if (!(lut16->clut = jas_malloc(clutsize * sizeof(jas_iccuint16_t))) ||
+- !(lut16->intabsbuf = jas_malloc(lut16->numinchans *
+- lut16->numintabents * sizeof(jas_iccuint16_t))) ||
+- !(lut16->intabs = jas_malloc(lut16->numinchans *
++ if (!(lut16->clut = jas_alloc2(clutsize, sizeof(jas_iccuint16_t))) ||
++ !(lut16->intabsbuf = jas_alloc3(lut16->numinchans,
++ lut16->numintabents, sizeof(jas_iccuint16_t))) ||
++ !(lut16->intabs = jas_alloc2(lut16->numinchans,
+ sizeof(jas_iccuint16_t *))))
+ goto error;
+ for (i = 0; i < lut16->numinchans; ++i)
+ lut16->intabs[i] = &lut16->intabsbuf[i * lut16->numintabents];
+- if (!(lut16->outtabsbuf = jas_malloc(lut16->numoutchans *
+- lut16->numouttabents * sizeof(jas_iccuint16_t))) ||
+- !(lut16->outtabs = jas_malloc(lut16->numoutchans *
++ if (!(lut16->outtabsbuf = jas_alloc3(lut16->numoutchans,
++ lut16->numouttabents, sizeof(jas_iccuint16_t))) ||
++ !(lut16->outtabs = jas_alloc2(lut16->numoutchans,
+ sizeof(jas_iccuint16_t *))))
+ goto error;
+ for (i = 0; i < lut16->numoutchans; ++i)
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_image.c jasper-1.900.1/src/libjasper/base/jas_image.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_image.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2009-10-22 10:27:45.000000000 +0200
+@@ -142,7 +142,7 @@ jas_image_t *jas_image_create(int numcmp
+ image->inmem_ = true;
+
+ /* Allocate memory for the per-component information. */
+- if (!(image->cmpts_ = jas_malloc(image->maxcmpts_ *
++ if (!(image->cmpts_ = jas_alloc2(image->maxcmpts_,
+ sizeof(jas_image_cmpt_t *)))) {
+ jas_image_destroy(image);
+ return 0;
+@@ -774,8 +774,7 @@ static int jas_image_growcmpts(jas_image
+ jas_image_cmpt_t **newcmpts;
+ int cmptno;
+
+- newcmpts = (!image->cmpts_) ? jas_malloc(maxcmpts * sizeof(jas_image_cmpt_t *)) :
+- jas_realloc(image->cmpts_, maxcmpts * sizeof(jas_image_cmpt_t *));
++ newcmpts = jas_realloc2(image->cmpts_, maxcmpts, sizeof(jas_image_cmpt_t *));
+ if (!newcmpts) {
+ return -1;
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_malloc.c jasper-1.900.1/src/libjasper/base/jas_malloc.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_malloc.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_malloc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -76,6 +76,9 @@
+
+ /* We need the prototype for memset. */
+ #include <string.h>
++#include <limits.h>
++#include <errno.h>
++#include <stdint.h>
+
+ #include "jasper/jas_malloc.h"
+
+@@ -113,18 +116,50 @@ void jas_free(void *ptr)
+
+ void *jas_realloc(void *ptr, size_t size)
+ {
+- return realloc(ptr, size);
++ return ptr ? realloc(ptr, size) : malloc(size);
+ }
+
+-void *jas_calloc(size_t nmemb, size_t size)
++void *jas_realloc2(void *ptr, size_t nmemb, size_t size)
++{
++ if (!ptr)
++ return jas_alloc2(nmemb, size);
++ if (nmemb && SIZE_MAX / nmemb < size) {
++ errno = ENOMEM;
++ return NULL;
++ }
++ return jas_realloc(ptr, nmemb * size);
++
++}
++
++void *jas_alloc2(size_t nmemb, size_t size)
++{
++ if (nmemb && SIZE_MAX / nmemb < size) {
++ errno = ENOMEM;
++ return NULL;
++ }
++
++ return jas_malloc(nmemb * size);
++}
++
++void *jas_alloc3(size_t a, size_t b, size_t c)
+ {
+- void *ptr;
+ size_t n;
+- n = nmemb * size;
+- if (!(ptr = jas_malloc(n * sizeof(char)))) {
+- return 0;
++
++ if (a && SIZE_MAX / a < b) {
++ errno = ENOMEM;
++ return NULL;
+ }
+- memset(ptr, 0, n);
++
++ return jas_alloc2(a*b, c);
++}
++
++void *jas_calloc(size_t nmemb, size_t size)
++{
++ void *ptr;
++
++ ptr = jas_alloc2(nmemb, size);
++ if (ptr)
++ memset(ptr, 0, nmemb*size);
+ return ptr;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_seq.c jasper-1.900.1/src/libjasper/base/jas_seq.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_seq.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_seq.c 2009-10-22 10:27:45.000000000 +0200
+@@ -114,7 +114,7 @@ jas_matrix_t *jas_matrix_create(int numr
+ matrix->datasize_ = numrows * numcols;
+
+ if (matrix->maxrows_ > 0) {
+- if (!(matrix->rows_ = jas_malloc(matrix->maxrows_ *
++ if (!(matrix->rows_ = jas_alloc2(matrix->maxrows_,
+ sizeof(jas_seqent_t *)))) {
+ jas_matrix_destroy(matrix);
+ return 0;
+@@ -122,7 +122,7 @@ jas_matrix_t *jas_matrix_create(int numr
+ }
+
+ if (matrix->datasize_ > 0) {
+- if (!(matrix->data_ = jas_malloc(matrix->datasize_ *
++ if (!(matrix->data_ = jas_alloc2(matrix->datasize_,
+ sizeof(jas_seqent_t)))) {
+ jas_matrix_destroy(matrix);
+ return 0;
+@@ -220,7 +220,7 @@ void jas_matrix_bindsub(jas_matrix_t *ma
+ mat0->numrows_ = r1 - r0 + 1;
+ mat0->numcols_ = c1 - c0 + 1;
+ mat0->maxrows_ = mat0->numrows_;
+- mat0->rows_ = jas_malloc(mat0->maxrows_ * sizeof(jas_seqent_t *));
++ mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *));
+ for (i = 0; i < mat0->numrows_; ++i) {
+ mat0->rows_[i] = mat1->rows_[r0 + i] + c0;
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1/src/libjasper/base/jas_stream.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2009-10-22 10:27:45.000000000 +0200
+@@ -212,7 +212,7 @@ jas_stream_t *jas_stream_memopen(char *b
+ if (buf) {
+ obj->buf_ = (unsigned char *) buf;
+ } else {
+- obj->buf_ = jas_malloc(obj->bufsize_ * sizeof(char));
++ obj->buf_ = jas_malloc(obj->bufsize_);
+ obj->myalloc_ = 1;
+ }
+ if (!obj->buf_) {
+@@ -992,7 +992,7 @@ static int mem_resize(jas_stream_memobj_
+ unsigned char *buf;
+
+ assert(m->buf_);
+- if (!(buf = jas_realloc(m->buf_, bufsize * sizeof(unsigned char)))) {
++ if (!(buf = jas_realloc(m->buf_, bufsize))) {
+ return -1;
+ }
+ m->buf_ = buf;
+diff -pruN jasper-1.900.1.orig/src/libjasper/bmp/bmp_dec.c jasper-1.900.1/src/libjasper/bmp/bmp_dec.c
+--- jasper-1.900.1.orig/src/libjasper/bmp/bmp_dec.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/bmp/bmp_dec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -283,7 +283,7 @@ static bmp_info_t *bmp_getinfo(jas_strea
+ }
+
+ if (info->numcolors > 0) {
+- if (!(info->palents = jas_malloc(info->numcolors *
++ if (!(info->palents = jas_alloc2(info->numcolors,
+ sizeof(bmp_palent_t)))) {
+ bmp_info_destroy(info);
+ return 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/include/jasper/jas_malloc.h jasper-1.900.1/src/libjasper/include/jasper/jas_malloc.h
+--- jasper-1.900.1.orig/src/libjasper/include/jasper/jas_malloc.h 2007-01-19 22:43:04.000000000 +0100
++++ jasper-1.900.1/src/libjasper/include/jasper/jas_malloc.h 2009-10-22 10:27:45.000000000 +0200
+@@ -95,6 +95,9 @@ extern "C" {
+ #define jas_free MEMFREE
+ #define jas_realloc MEMREALLOC
+ #define jas_calloc MEMCALLOC
++#define jas_alloc2(a, b) MEMALLOC((a)*(b))
++#define jas_alloc3(a, b, c) MEMALLOC((a)*(b)*(c))
++#define jas_realloc2(p, a, b) MEMREALLOC((p), (a)*(b))
+ #endif
+
+ /******************************************************************************\
+@@ -115,6 +118,12 @@ void *jas_realloc(void *ptr, size_t size
+ /* Allocate a block of memory and initialize the contents to zero. */
+ void *jas_calloc(size_t nmemb, size_t size);
+
++/* size-checked double allocation .*/
++void *jas_alloc2(size_t, size_t);
++
++void *jas_alloc3(size_t, size_t, size_t);
++
++void *jas_realloc2(void *, size_t, size_t);
+ #endif
+
+ #ifdef __cplusplus
+diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_cod.c jasper-1.900.1/src/libjasper/jp2/jp2_cod.c
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_cod.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2009-10-22 10:30:24.000000000 +0200
+@@ -247,7 +247,7 @@ jp2_box_t *jp2_box_get(jas_stream_t *in)
+ box = 0;
+ tmpstream = 0;
+
+- if (!(box = jas_malloc(sizeof(jp2_box_t)))) {
++ if (!(box = jas_calloc(1, sizeof(jp2_box_t)))) {
+ goto error;
+ }
+ box->ops = &jp2_boxinfo_unk.ops;
+@@ -372,7 +372,7 @@ static int jp2_bpcc_getdata(jp2_box_t *b
+ jp2_bpcc_t *bpcc = &box->data.bpcc;
+ unsigned int i;
+ bpcc->numcmpts = box->datalen;
+- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts * sizeof(uint_fast8_t)))) {
++ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts, sizeof(uint_fast8_t)))) {
+ return -1;
+ }
+ for (i = 0; i < bpcc->numcmpts; ++i) {
+@@ -416,7 +416,7 @@ static int jp2_colr_getdata(jp2_box_t *b
+ break;
+ case JP2_COLR_ICC:
+ colr->iccplen = box->datalen - 3;
+- if (!(colr->iccp = jas_malloc(colr->iccplen * sizeof(uint_fast8_t)))) {
++ if (!(colr->iccp = jas_alloc2(colr->iccplen, sizeof(uint_fast8_t)))) {
+ return -1;
+ }
+ if (jas_stream_read(in, colr->iccp, colr->iccplen) != colr->iccplen) {
+@@ -453,7 +453,7 @@ static int jp2_cdef_getdata(jp2_box_t *b
+ if (jp2_getuint16(in, &cdef->numchans)) {
+ return -1;
+ }
+- if (!(cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t)))) {
++ if (!(cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t)))) {
+ return -1;
+ }
+ for (channo = 0; channo < cdef->numchans; ++channo) {
+@@ -766,7 +766,7 @@ static int jp2_cmap_getdata(jp2_box_t *b
+ unsigned int i;
+
+ cmap->numchans = (box->datalen) / 4;
+- if (!(cmap->ents = jas_malloc(cmap->numchans * sizeof(jp2_cmapent_t)))) {
++ if (!(cmap->ents = jas_alloc2(cmap->numchans, sizeof(jp2_cmapent_t)))) {
+ return -1;
+ }
+ for (i = 0; i < cmap->numchans; ++i) {
+@@ -828,10 +828,10 @@ static int jp2_pclr_getdata(jp2_box_t *b
+ return -1;
+ }
+ lutsize = pclr->numlutents * pclr->numchans;
+- if (!(pclr->lutdata = jas_malloc(lutsize * sizeof(int_fast32_t)))) {
++ if (!(pclr->lutdata = jas_alloc2(lutsize, sizeof(int_fast32_t)))) {
+ return -1;
+ }
+- if (!(pclr->bpc = jas_malloc(pclr->numchans * sizeof(uint_fast8_t)))) {
++ if (!(pclr->bpc = jas_alloc2(pclr->numchans, sizeof(uint_fast8_t)))) {
+ return -1;
+ }
+ for (i = 0; i < pclr->numchans; ++i) {
+diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c jasper-1.900.1/src/libjasper/jp2/jp2_dec.c
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -336,7 +336,7 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ }
+
+ /* Allocate space for the channel-number to component-number LUT. */
+- if (!(dec->chantocmptlut = jas_malloc(dec->numchans * sizeof(uint_fast16_t)))) {
++ if (!(dec->chantocmptlut = jas_alloc2(dec->numchans, sizeof(uint_fast16_t)))) {
+ jas_eprintf("error: no memory\n");
+ goto error;
+ }
+@@ -354,7 +354,7 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ if (cmapent->map == JP2_CMAP_DIRECT) {
+ dec->chantocmptlut[channo] = channo;
+ } else if (cmapent->map == JP2_CMAP_PALETTE) {
+- lutents = jas_malloc(pclrd->numlutents * sizeof(int_fast32_t));
++ lutents = jas_alloc2(pclrd->numlutents, sizeof(int_fast32_t));
+ for (i = 0; i < pclrd->numlutents; ++i) {
+ lutents[i] = pclrd->lutdata[cmapent->pcol + i * pclrd->numchans];
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_enc.c jasper-1.900.1/src/libjasper/jp2/jp2_enc.c
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_enc.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -191,7 +191,7 @@ int sgnd;
+ }
+ bpcc = &box->data.bpcc;
+ bpcc->numcmpts = jas_image_numcmpts(image);
+- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts *
++ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts,
+ sizeof(uint_fast8_t)))) {
+ goto error;
+ }
+@@ -285,7 +285,7 @@ int sgnd;
+ }
+ cdef = &box->data.cdef;
+ cdef->numchans = jas_image_numcmpts(image);
+- cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t));
++ cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t));
+ for (i = 0; i < jas_image_numcmpts(image); ++i) {
+ cdefchanent = &cdef->ents[i];
+ cdefchanent->channo = i;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c jasper-1.900.1/src/libjasper/jpc/jpc_cs.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c 2009-10-22 09:58:16.000000000 +0200
++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2009-10-22 10:27:45.000000000 +0200
+@@ -502,7 +502,7 @@ static int jpc_siz_getparms(jpc_ms_t *ms
+ !siz->tileheight || !siz->numcomps) {
+ return -1;
+ }
+- if (!(siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t)))) {
++ if (!(siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t)))) {
+ return -1;
+ }
+ for (i = 0; i < siz->numcomps; ++i) {
+@@ -986,7 +986,7 @@ static int jpc_qcx_getcompparms(jpc_qcxc
+ jpc_qcx_destroycompparms(compparms);
+ return -1;
+ } else if (compparms->numstepsizes > 0) {
+- compparms->stepsizes = jas_malloc(compparms->numstepsizes *
++ compparms->stepsizes = jas_alloc2(compparms->numstepsizes,
+ sizeof(uint_fast16_t));
+ assert(compparms->stepsizes);
+ for (i = 0; i < compparms->numstepsizes; ++i) {
+@@ -1094,7 +1094,7 @@ static int jpc_ppm_getparms(jpc_ms_t *ms
+
+ ppm->len = ms->len - 1;
+ if (ppm->len > 0) {
+- if (!(ppm->data = jas_malloc(ppm->len * sizeof(unsigned char)))) {
++ if (!(ppm->data = jas_malloc(ppm->len))) {
+ goto error;
+ }
+ if (JAS_CAST(uint, jas_stream_read(in, ppm->data, ppm->len)) != ppm->len) {
+@@ -1163,7 +1163,7 @@ static int jpc_ppt_getparms(jpc_ms_t *ms
+ }
+ ppt->len = ms->len - 1;
+ if (ppt->len > 0) {
+- if (!(ppt->data = jas_malloc(ppt->len * sizeof(unsigned char)))) {
++ if (!(ppt->data = jas_malloc(ppt->len))) {
+ goto error;
+ }
+ if (jas_stream_read(in, (char *) ppt->data, ppt->len) != JAS_CAST(int, ppt->len)) {
+@@ -1226,7 +1226,7 @@ static int jpc_poc_getparms(jpc_ms_t *ms
+ uint_fast8_t tmp;
+ poc->numpchgs = (cstate->numcomps > 256) ? (ms->len / 9) :
+ (ms->len / 7);
+- if (!(poc->pchgs = jas_malloc(poc->numpchgs * sizeof(jpc_pocpchg_t)))) {
++ if (!(poc->pchgs = jas_alloc2(poc->numpchgs, sizeof(jpc_pocpchg_t)))) {
+ goto error;
+ }
+ for (pchgno = 0, pchg = poc->pchgs; pchgno < poc->numpchgs; ++pchgno,
+@@ -1331,7 +1331,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms
+ jpc_crgcomp_t *comp;
+ uint_fast16_t compno;
+ crg->numcomps = cstate->numcomps;
+- if (!(crg->comps = jas_malloc(cstate->numcomps * sizeof(uint_fast16_t)))) {
++ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(uint_fast16_t)))) {
+ return -1;
+ }
+ for (compno = 0, comp = crg->comps; compno < cstate->numcomps;
+@@ -1470,7 +1470,7 @@ static int jpc_unk_getparms(jpc_ms_t *ms
+ cstate = 0;
+
+ if (ms->len > 0) {
+- if (!(unk->data = jas_malloc(ms->len * sizeof(unsigned char)))) {
++ if (!(unk->data = jas_malloc(ms->len))) {
+ return -1;
+ }
+ if (jas_stream_read(in, (char *) unk->data, ms->len) != JAS_CAST(int, ms->len)) {
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c jasper-1.900.1/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2009-10-22 09:58:16.000000000 +0200
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2009-10-22 10:30:50.000000000 +0200
+@@ -449,7 +449,7 @@ static int jpc_dec_process_sot(jpc_dec_t
+
+ if (dec->state == JPC_MH) {
+
+- compinfos = jas_malloc(dec->numcomps * sizeof(jas_image_cmptparm_t));
++ compinfos = jas_alloc2(dec->numcomps, sizeof(jas_image_cmptparm_t));
+ assert(compinfos);
+ for (cmptno = 0, cmpt = dec->cmpts, compinfo = compinfos;
+ cmptno < dec->numcomps; ++cmptno, ++cmpt, ++compinfo) {
+@@ -692,7 +692,7 @@ static int jpc_dec_tileinit(jpc_dec_t *d
+ tile->realmode = 1;
+ }
+ tcomp->numrlvls = ccp->numrlvls;
+- if (!(tcomp->rlvls = jas_malloc(tcomp->numrlvls *
++ if (!(tcomp->rlvls = jas_alloc2(tcomp->numrlvls,
+ sizeof(jpc_dec_rlvl_t)))) {
+ return -1;
+ }
+@@ -764,7 +764,7 @@ rlvl->bands = 0;
+ rlvl->cbgheightexpn);
+
+ rlvl->numbands = (!rlvlno) ? 1 : 3;
+- if (!(rlvl->bands = jas_malloc(rlvl->numbands *
++ if (!(rlvl->bands = jas_alloc2(rlvl->numbands,
+ sizeof(jpc_dec_band_t)))) {
+ return -1;
+ }
+@@ -797,7 +797,7 @@ rlvl->bands = 0;
+
+ assert(rlvl->numprcs);
+
+- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_dec_prc_t)))) {
++ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_dec_prc_t)))) {
+ return -1;
+ }
+
+@@ -834,7 +834,7 @@ rlvl->bands = 0;
+ if (!(prc->numimsbstagtree = jpc_tagtree_create(prc->numhcblks, prc->numvcblks))) {
+ return -1;
+ }
+- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_dec_cblk_t)))) {
++ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_dec_cblk_t)))) {
+ return -1;
+ }
+
+@@ -1181,7 +1181,7 @@ static int jpc_dec_process_siz(jpc_dec_t
+ return -1;
+ }
+
+- if (!(dec->cmpts = jas_malloc(dec->numcomps * sizeof(jpc_dec_cmpt_t)))) {
++ if (!(dec->cmpts = jas_alloc2(dec->numcomps, sizeof(jpc_dec_cmpt_t)))) {
+ return -1;
+ }
+
+@@ -1204,7 +1204,7 @@ static int jpc_dec_process_siz(jpc_dec_t
+ dec->numhtiles = JPC_CEILDIV(dec->xend - dec->tilexoff, dec->tilewidth);
+ dec->numvtiles = JPC_CEILDIV(dec->yend - dec->tileyoff, dec->tileheight);
+ dec->numtiles = dec->numhtiles * dec->numvtiles;
+- if (!(dec->tiles = jas_malloc(dec->numtiles * sizeof(jpc_dec_tile_t)))) {
++ if (!(dec->tiles = jas_calloc(dec->numtiles, sizeof(jpc_dec_tile_t)))) {
+ return -1;
+ }
+
+@@ -1228,7 +1228,7 @@ static int jpc_dec_process_siz(jpc_dec_t
+ tile->pkthdrstreampos = 0;
+ tile->pptstab = 0;
+ tile->cp = 0;
+- if (!(tile->tcomps = jas_malloc(dec->numcomps *
++ if (!(tile->tcomps = jas_calloc(dec->numcomps,
+ sizeof(jpc_dec_tcomp_t)))) {
+ return -1;
+ }
+@@ -1489,7 +1489,7 @@ static jpc_dec_cp_t *jpc_dec_cp_create(u
+ cp->numlyrs = 0;
+ cp->mctid = 0;
+ cp->csty = 0;
+- if (!(cp->ccps = jas_malloc(cp->numcomps * sizeof(jpc_dec_ccp_t)))) {
++ if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) {
+ return 0;
+ }
+ if (!(cp->pchglist = jpc_pchglist_create())) {
+@@ -2048,7 +2048,7 @@ jpc_streamlist_t *jpc_streamlist_create(
+ }
+ streamlist->numstreams = 0;
+ streamlist->maxstreams = 100;
+- if (!(streamlist->streams = jas_malloc(streamlist->maxstreams *
++ if (!(streamlist->streams = jas_alloc2(streamlist->maxstreams,
+ sizeof(jas_stream_t *)))) {
+ jas_free(streamlist);
+ return 0;
+@@ -2068,8 +2068,8 @@ int jpc_streamlist_insert(jpc_streamlist
+ /* Grow the array of streams if necessary. */
+ if (streamlist->numstreams >= streamlist->maxstreams) {
+ newmaxstreams = streamlist->maxstreams + 1024;
+- if (!(newstreams = jas_realloc(streamlist->streams,
+- (newmaxstreams + 1024) * sizeof(jas_stream_t *)))) {
++ if (!(newstreams = jas_realloc2(streamlist->streams,
++ (newmaxstreams + 1024), sizeof(jas_stream_t *)))) {
+ return -1;
+ }
+ for (i = streamlist->numstreams; i < streamlist->maxstreams; ++i) {
+@@ -2155,8 +2155,7 @@ int jpc_ppxstab_grow(jpc_ppxstab_t *tab,
+ {
+ jpc_ppxstabent_t **newents;
+ if (tab->maxents < maxents) {
+- newents = (tab->ents) ? jas_realloc(tab->ents, maxents *
+- sizeof(jpc_ppxstabent_t *)) : jas_malloc(maxents * sizeof(jpc_ppxstabent_t *));
++ newents = jas_realloc2(tab->ents, maxents, sizeof(jpc_ppxstabent_t *));
+ if (!newents) {
+ return -1;
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_enc.c jasper-1.900.1/src/libjasper/jpc/jpc_enc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_enc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -403,7 +403,7 @@ static jpc_enc_cp_t *cp_create(char *opt
+ vsteplcm *= jas_image_cmptvstep(image, cmptno);
+ }
+
+- if (!(cp->ccps = jas_malloc(cp->numcmpts * sizeof(jpc_enc_ccp_t)))) {
++ if (!(cp->ccps = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_ccp_t)))) {
+ goto error;
+ }
+ for (cmptno = 0, ccp = cp->ccps; cmptno < JAS_CAST(int, cp->numcmpts); ++cmptno,
+@@ -656,7 +656,7 @@ static jpc_enc_cp_t *cp_create(char *opt
+
+ if (ilyrrates && numilyrrates > 0) {
+ tcp->numlyrs = numilyrrates + 1;
+- if (!(tcp->ilyrrates = jas_malloc((tcp->numlyrs - 1) *
++ if (!(tcp->ilyrrates = jas_alloc2((tcp->numlyrs - 1),
+ sizeof(jpc_fix_t)))) {
+ goto error;
+ }
+@@ -940,7 +940,7 @@ startoff = jas_stream_getrwcount(enc->ou
+ siz->tilewidth = cp->tilewidth;
+ siz->tileheight = cp->tileheight;
+ siz->numcomps = cp->numcmpts;
+- siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t));
++ siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t));
+ assert(siz->comps);
+ for (i = 0; i < JAS_CAST(int, cp->numcmpts); ++i) {
+ siz->comps[i].prec = cp->ccps[i].prec;
+@@ -977,7 +977,7 @@ startoff = jas_stream_getrwcount(enc->ou
+ return -1;
+ }
+ crg = &enc->mrk->parms.crg;
+- crg->comps = jas_malloc(crg->numcomps * sizeof(jpc_crgcomp_t));
++ crg->comps = jas_alloc2(crg->numcomps, sizeof(jpc_crgcomp_t));
+ if (jpc_putms(enc->out, enc->cstate, enc->mrk)) {
+ jas_eprintf("cannot write CRG marker\n");
+ return -1;
+@@ -1955,7 +1955,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_
+ tile->mctid = cp->tcp.mctid;
+
+ tile->numlyrs = cp->tcp.numlyrs;
+- if (!(tile->lyrsizes = jas_malloc(tile->numlyrs *
++ if (!(tile->lyrsizes = jas_alloc2(tile->numlyrs,
+ sizeof(uint_fast32_t)))) {
+ goto error;
+ }
+@@ -1964,7 +1964,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_
+ }
+
+ /* Allocate an array for the per-tile-component information. */
+- if (!(tile->tcmpts = jas_malloc(cp->numcmpts * sizeof(jpc_enc_tcmpt_t)))) {
++ if (!(tile->tcmpts = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_tcmpt_t)))) {
+ goto error;
+ }
+ /* Initialize a few members critical for error recovery. */
+@@ -2110,7 +2110,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc
+ jas_seq2d_ystart(tcmpt->data), jas_seq2d_xend(tcmpt->data),
+ jas_seq2d_yend(tcmpt->data), bandinfos);
+
+- if (!(tcmpt->rlvls = jas_malloc(tcmpt->numrlvls * sizeof(jpc_enc_rlvl_t)))) {
++ if (!(tcmpt->rlvls = jas_alloc2(tcmpt->numrlvls, sizeof(jpc_enc_rlvl_t)))) {
+ goto error;
+ }
+ for (rlvlno = 0, rlvl = tcmpt->rlvls; rlvlno < tcmpt->numrlvls;
+@@ -2213,7 +2213,7 @@ static jpc_enc_rlvl_t *rlvl_create(jpc_e
+ rlvl->numvprcs = JPC_FLOORDIVPOW2(brprcbry - tlprctly, rlvl->prcheightexpn);
+ rlvl->numprcs = rlvl->numhprcs * rlvl->numvprcs;
+
+- if (!(rlvl->bands = jas_malloc(rlvl->numbands * sizeof(jpc_enc_band_t)))) {
++ if (!(rlvl->bands = jas_alloc2(rlvl->numbands, sizeof(jpc_enc_band_t)))) {
+ goto error;
+ }
+ for (bandno = 0, band = rlvl->bands; bandno < rlvl->numbands;
+@@ -2290,7 +2290,7 @@ if (bandinfo->xstart != bandinfo->xend &
+ band->synweight = bandinfo->synenergywt;
+
+ if (band->data) {
+- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_enc_prc_t)))) {
++ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_enc_prc_t)))) {
+ goto error;
+ }
+ for (prcno = 0, prc = band->prcs; prcno < rlvl->numprcs; ++prcno,
+@@ -2422,7 +2422,7 @@ if (!rlvlno) {
+ goto error;
+ }
+
+- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_enc_cblk_t)))) {
++ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_enc_cblk_t)))) {
+ goto error;
+ }
+ for (cblkno = 0, cblk = prc->cblks; cblkno < prc->numcblks;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqdec.c jasper-1.900.1/src/libjasper/jpc/jpc_mqdec.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqdec.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_mqdec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -118,7 +118,7 @@ jpc_mqdec_t *jpc_mqdec_create(int maxctx
+ mqdec->in = in;
+ mqdec->maxctxs = maxctxs;
+ /* Allocate memory for the per-context state information. */
+- if (!(mqdec->ctxs = jas_malloc(mqdec->maxctxs * sizeof(jpc_mqstate_t *)))) {
++ if (!(mqdec->ctxs = jas_alloc2(mqdec->maxctxs, sizeof(jpc_mqstate_t *)))) {
+ goto error;
+ }
+ /* Set the current context to the first context. */
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqenc.c jasper-1.900.1/src/libjasper/jpc/jpc_mqenc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqenc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_mqenc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -197,7 +197,7 @@ jpc_mqenc_t *jpc_mqenc_create(int maxctx
+ mqenc->maxctxs = maxctxs;
+
+ /* Allocate memory for the per-context state information. */
+- if (!(mqenc->ctxs = jas_malloc(mqenc->maxctxs * sizeof(jpc_mqstate_t *)))) {
++ if (!(mqenc->ctxs = jas_alloc2(mqenc->maxctxs, sizeof(jpc_mqstate_t *)))) {
+ goto error;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c 2009-10-22 10:27:45.000000000 +0200
+@@ -321,7 +321,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -389,7 +389,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -460,7 +460,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -549,7 +549,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -633,7 +633,7 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+@@ -698,7 +698,7 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+@@ -766,7 +766,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+@@ -852,7 +852,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * numcols * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t1enc.c jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t1enc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -219,7 +219,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_
+
+ cblk->numpasses = (cblk->numbps > 0) ? (3 * cblk->numbps - 2) : 0;
+ if (cblk->numpasses > 0) {
+- cblk->passes = jas_malloc(cblk->numpasses * sizeof(jpc_enc_pass_t));
++ cblk->passes = jas_alloc2(cblk->numpasses, sizeof(jpc_enc_pass_t));
+ assert(cblk->passes);
+ } else {
+ cblk->passes = 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c jasper-1.900.1/src/libjasper/jpc/jpc_t2cod.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2cod.c 2009-10-22 10:27:45.000000000 +0200
+@@ -573,7 +573,7 @@ int jpc_pchglist_insert(jpc_pchglist_t *
+ }
+ if (pchglist->numpchgs >= pchglist->maxpchgs) {
+ newmaxpchgs = pchglist->maxpchgs + 128;
+- if (!(newpchgs = jas_realloc(pchglist->pchgs, newmaxpchgs * sizeof(jpc_pchg_t *)))) {
++ if (!(newpchgs = jas_realloc2(pchglist->pchgs, newmaxpchgs, sizeof(jpc_pchg_t *)))) {
+ return -1;
+ }
+ pchglist->maxpchgs = newmaxpchgs;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2dec.c jasper-1.900.1/src/libjasper/jpc/jpc_t2dec.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2dec.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2dec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -478,7 +478,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d
+ return 0;
+ }
+ pi->numcomps = dec->numcomps;
+- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) {
++ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+ }
+@@ -490,7 +490,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d
+ for (compno = 0, tcomp = tile->tcomps, picomp = pi->picomps;
+ compno < pi->numcomps; ++compno, ++tcomp, ++picomp) {
+ picomp->numrlvls = tcomp->numrlvls;
+- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls *
++ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls,
+ sizeof(jpc_pirlvl_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+@@ -503,7 +503,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d
+ rlvlno < picomp->numrlvls; ++rlvlno, ++pirlvl, ++rlvl) {
+ /* XXX sizeof(long) should be sizeof different type */
+ pirlvl->numprcs = rlvl->numprcs;
+- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs *
++ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs,
+ sizeof(long)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2enc.c jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2enc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -565,7 +565,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t
+ }
+ pi->pktno = -1;
+ pi->numcomps = cp->numcmpts;
+- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) {
++ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+ }
+@@ -577,7 +577,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t
+ for (compno = 0, tcomp = tile->tcmpts, picomp = pi->picomps;
+ compno < pi->numcomps; ++compno, ++tcomp, ++picomp) {
+ picomp->numrlvls = tcomp->numrlvls;
+- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls *
++ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls,
+ sizeof(jpc_pirlvl_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+@@ -591,7 +591,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t
+ /* XXX sizeof(long) should be sizeof different type */
+ pirlvl->numprcs = rlvl->numprcs;
+ if (rlvl->numprcs) {
+- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs *
++ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs,
+ sizeof(long)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_tagtree.c jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_tagtree.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c 2009-10-22 10:27:45.000000000 +0200
+@@ -125,7 +125,7 @@ jpc_tagtree_t *jpc_tagtree_create(int nu
+ ++numlvls;
+ } while (n > 1);
+
+- if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) {
++ if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) {
+ return 0;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_util.c jasper-1.900.1/src/libjasper/jpc/jpc_util.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_util.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_util.c 2009-10-22 10:27:45.000000000 +0200
+@@ -109,7 +109,7 @@ int jpc_atoaf(char *s, int *numvalues, d
+ }
+
+ if (n) {
+- if (!(vs = jas_malloc(n * sizeof(double)))) {
++ if (!(vs = jas_alloc2(n, sizeof(double)))) {
+ return -1;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c jasper-1.900.1/src/libjasper/mif/mif_cod.c
+--- jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/mif/mif_cod.c 2009-10-22 10:27:45.000000000 +0200
+@@ -438,8 +438,7 @@ static int mif_hdr_growcmpts(mif_hdr_t *
+ int cmptno;
+ mif_cmpt_t **newcmpts;
+ assert(maxcmpts >= hdr->numcmpts);
+- newcmpts = (!hdr->cmpts) ? jas_malloc(maxcmpts * sizeof(mif_cmpt_t *)) :
+- jas_realloc(hdr->cmpts, maxcmpts * sizeof(mif_cmpt_t *));
++ newcmpts = jas_realloc2(hdr->cmpts, maxcmpts, sizeof(mif_cmpt_t *));
+ if (!newcmpts) {
+ return -1;
+ }
diff --git a/source/l/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch b/source/l/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch
new file mode 100644
index 000000000..4bf2e9b52
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-CVE-2008-3522.patch
@@ -0,0 +1,14 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3522
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1/src/libjasper/base/jas_stream.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2009-10-22 10:27:45.000000000 +0200
++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2009-10-22 10:35:53.000000000 +0200
+@@ -553,7 +553,7 @@ int jas_stream_printf(jas_stream_t *stre
+ int ret;
+
+ va_start(ap, fmt);
+- ret = vsprintf(buf, fmt, ap);
++ ret = vsnprintf(buf, sizeof buf, fmt, ap);
+ jas_stream_puts(stream, buf);
+ va_end(ap);
+ return ret;
diff --git a/source/l/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch b/source/l/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch
new file mode 100644
index 000000000..f753080a3
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-CVE-2011-4516-CVE-2011-4517-CERT-VU-887409.patch
@@ -0,0 +1,23 @@
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.CERT-VU-887409 jasper-1.900.1/src/libjasper/jpc/jpc_cs.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.CERT-VU-887409 2011-10-25 17:25:39.000000000 +0200
++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2011-10-25 17:29:14.379371908 +0200
+@@ -744,6 +744,10 @@ static int jpc_cox_getcompparms(jpc_ms_t
+ return -1;
+ }
+ compparms->numrlvls = compparms->numdlvls + 1;
++ if (compparms->numrlvls > JPC_MAXRLVLS) {
++ jpc_cox_destroycompparms(compparms);
++ return -1;
++ }
+ if (prtflag) {
+ for (i = 0; i < compparms->numrlvls; ++i) {
+ if (jpc_getuint8(in, &tmp)) {
+@@ -1331,7 +1335,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms
+ jpc_crgcomp_t *comp;
+ uint_fast16_t compno;
+ crg->numcomps = cstate->numcomps;
+- if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(uint_fast16_t)))) {
++ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(jpc_crgcomp_t)))) {
+ return -1;
+ }
+ for (compno = 0, comp = crg->comps; compno < cstate->numcomps;
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch
new file mode 100644
index 000000000..197740057
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-BAD_SIZEOF.patch
@@ -0,0 +1,17 @@
+Error: BAD_SIZEOF
+jpc/jpc_enc.c:2105: bad_sizeof: Taking the size of binary expression "tcmpt->numstepsizes * sizeof (uint_fast16_t) /*8*/" is suspicious.
+ Did you intend "sizeof(tcmpt->numstepsizes) * sizeof (uint_fast16_t) /*8*/"?
+
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.bad_sizeof jasper-1.900.1/src/libjasper/jpc/jpc_enc.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.bad_sizeof 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2011-06-23 17:28:17.085690561 +0200
+@@ -2102,8 +2102,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc
+
+ tcmpt->numstepsizes = tcmpt->numbands;
+ assert(tcmpt->numstepsizes <= JPC_MAXBANDS);
+- memset(tcmpt->stepsizes, 0, sizeof(tcmpt->numstepsizes *
+- sizeof(uint_fast16_t)));
++ memset(tcmpt->stepsizes, 0, tcmpt->numstepsizes * sizeof(uint_fast16_t));
+
+ /* Retrieve information about the various bands. */
+ jpc_tsfb_getbands(tcmpt->tsfb, jas_seq2d_xstart(tcmpt->data),
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch
new file mode 100644
index 000000000..ea330f2c1
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-CHECKED_RETURN.patch
@@ -0,0 +1,141 @@
+Error: CHECKED_RETURN
+jpc/jpc_cs.c:924: check_return: Calling function "jpc_putuint16" without checking return value (as is done elsewhere 11 out of 13 times).
+jpc/jpc_cs.c:924: unchecked_value: No check of the return value of "jpc_putuint16(out, qcc->compno)".
+
+jpc/jpc_cs.c:1021: check_return: Calling function "jpc_putuint16" without checking return value (as is done elsewhere 11 out of 13 times).
+jpc/jpc_cs.c:1021: unchecked_value: No check of the return value of "jpc_putuint16(out, compparms->stepsizes[i])".
+
+jpc/jpc_cs.c:994: check_return: Calling function "jpc_getuint16" without checking return value (as is done elsewhere 14 out of 16 times).
+jpc/jpc_cs.c:994: unchecked_value: No check of the return value of "jpc_getuint16(in, compparms->stepsizes + i)".
+
+jpc/jpc_cs.c:905: check_return: Calling function "jpc_getuint16" without checking return value (as is done elsewhere 14 out of 16 times).
+jpc/jpc_cs.c:905: unchecked_value: No check of the return value of "jpc_getuint16(in, &qcc->compno)".
+
+jpc/jpc_cs.c:969: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times).
+jpc/jpc_cs.c:969: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)".
+
+jpc/jpc_cs.c:991: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times).
+jpc/jpc_cs.c:991: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)".
+
+jpc/jpc_cs.c:901: check_return: Calling function "jpc_getuint8" without checking return value (as is done elsewhere 17 out of 20 times).
+jpc/jpc_cs.c:901: unchecked_value: No check of the return value of "jpc_getuint8(in, &tmp)".
+
+jpc/jpc_t2enc.c:338: check_return: Calling function "jpc_putms" without checking return value (as is done elsewhere 12 out of 13 times).
+jpc/jpc_t2enc.c:338: unchecked_value: No check of the return value of "jpc_putms(out, enc->cstate, ms)".
+
+ras/ras_enc.c:245: check_return: Calling function "jas_image_readcmpt" without checking return value (as is done elsewhere 9 out of 10 times).
+ras/ras_enc.c:245: unchecked_value: No check of the return value of "jas_image_readcmpt(image, cmpts[i], 0L, y, image->brx_ - image->tlx_, 1L, data[i])".
+
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.checked_return jasper-1.900.1/src/libjasper/jpc/jpc_cs.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_cs.c.checked_return 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2011-06-24 13:52:25.636551844 +0200
+@@ -898,11 +898,15 @@ static int jpc_qcc_getparms(jpc_ms_t *ms
+ int len;
+ len = ms->len;
+ if (cstate->numcomps <= 256) {
+- jpc_getuint8(in, &tmp);
++ if (jpc_getuint8(in, &tmp)) {
++ return -1;
++ }
+ qcc->compno = tmp;
+ --len;
+ } else {
+- jpc_getuint16(in, &qcc->compno);
++ if (jpc_getuint16(in, &qcc->compno)) {
++ return -1;
++ }
+ len -= 2;
+ }
+ if (jpc_qcx_getcompparms(&qcc->compparms, cstate, in, len)) {
+@@ -919,9 +923,13 @@ static int jpc_qcc_putparms(jpc_ms_t *ms
+ {
+ jpc_qcc_t *qcc = &ms->parms.qcc;
+ if (cstate->numcomps <= 256) {
+- jpc_putuint8(out, qcc->compno);
++ if (jpc_putuint8(out, qcc->compno)) {
++ return -1;
++ }
+ } else {
+- jpc_putuint16(out, qcc->compno);
++ if (jpc_putuint16(out, qcc->compno)) {
++ return -1;
++ }
+ }
+ if (jpc_qcx_putcompparms(&qcc->compparms, cstate, out)) {
+ return -1;
+@@ -966,7 +974,9 @@ static int jpc_qcx_getcompparms(jpc_qcxc
+ cstate = 0;
+
+ n = 0;
+- jpc_getuint8(in, &tmp);
++ if (jpc_getuint8(in, &tmp)) {
++ return -1;
++ }
+ ++n;
+ compparms->qntsty = tmp & 0x1f;
+ compparms->numguard = (tmp >> 5) & 7;
+@@ -988,10 +998,14 @@ static int jpc_qcx_getcompparms(jpc_qcxc
+ assert(compparms->stepsizes);
+ for (i = 0; i < compparms->numstepsizes; ++i) {
+ if (compparms->qntsty == JPC_QCX_NOQNT) {
+- jpc_getuint8(in, &tmp);
++ if (jpc_getuint8(in, &tmp)) {
++ return -1;
++ }
+ compparms->stepsizes[i] = JPC_QCX_EXPN(tmp >> 3);
+ } else {
+- jpc_getuint16(in, &compparms->stepsizes[i]);
++ if (jpc_getuint16(in, &compparms->stepsizes[i])) {
++ return -1;
++ }
+ }
+ }
+ } else {
+@@ -1015,10 +1029,14 @@ static int jpc_qcx_putcompparms(jpc_qcxc
+ jpc_putuint8(out, ((compparms->numguard & 7) << 5) | compparms->qntsty);
+ for (i = 0; i < compparms->numstepsizes; ++i) {
+ if (compparms->qntsty == JPC_QCX_NOQNT) {
+- jpc_putuint8(out, JPC_QCX_GETEXPN(
+- compparms->stepsizes[i]) << 3);
++ if (jpc_putuint8(out, JPC_QCX_GETEXPN(
++ compparms->stepsizes[i]) << 3)) {
++ return -1;
++ }
+ } else {
+- jpc_putuint16(out, compparms->stepsizes[i]);
++ if (jpc_putuint16(out, compparms->stepsizes[i])) {
++ return -1;
++ }
+ }
+ }
+ return 0;
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c.checked_return jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c.checked_return 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c 2011-06-24 12:29:32.069578992 +0200
+@@ -335,7 +335,9 @@ assert(jpc_firstone(datalen) < cblk->num
+ if (!(ms = jpc_ms_create(JPC_MS_EPH))) {
+ return -1;
+ }
+- jpc_putms(out, enc->cstate, ms);
++ if (jpc_putms(out, enc->cstate, ms)) {
++ return -1;
++ }
+ jpc_ms_destroy(ms);
+ }
+
+diff -up jasper-1.900.1/src/libjasper/ras/ras_enc.c.checked_return jasper-1.900.1/src/libjasper/ras/ras_enc.c
+--- jasper-1.900.1/src/libjasper/ras/ras_enc.c.checked_return 2007-01-19 22:43:04.000000000 +0100
++++ jasper-1.900.1/src/libjasper/ras/ras_enc.c 2011-06-24 14:05:31.233482612 +0200
+@@ -242,8 +242,10 @@ static int ras_putdatastd(jas_stream_t *
+
+ for (y = 0; y < hdr->height; y++) {
+ for (i = 0; i < numcmpts; ++i) {
+- jas_image_readcmpt(image, cmpts[i], 0, y, jas_image_width(image),
+- 1, data[i]);
++ if (jas_image_readcmpt(image, cmpts[i], 0, y,
++ jas_image_width(image), 1, data[i])) {
++ return -1;
++ }
+ }
+ z = 0;
+ nz = 0;
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch
new file mode 100644
index 000000000..ff526b4d1
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-FORWARD_NULL.patch
@@ -0,0 +1,44 @@
+Error: FORWARD_NULL
+jpc/jpc_dec.c:2207: var_compare_op: Comparing "streams" to null implies that "streams" might be null.
+jpc/jpc_dec.c:2270: var_deref_model: Passing null variable "streams" to function "jpc_streamlist_destroy", which dereferences it.
+jpc/jpc_dec.c:2108: deref_parm: Directly dereferencing parameter "streamlist".
+
+jpc/jpc_t1enc.c:225: assign_zero: Assigning: "cblk->passes" = 0.
+jpc/jpc_t1enc.c:228: alias_transfer: Assigning null: "pass" = "cblk->passes".
+jpc/jpc_t1enc.c:229: var_deref_op: Dereferencing null variable "pass".
+
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.forward_null jasper-1.900.1/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.forward_null 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2011-06-24 15:01:39.200600146 +0200
+@@ -2267,7 +2267,9 @@ jpc_streamlist_t *jpc_ppmstabtostreams(j
+ return streams;
+
+ error:
+- jpc_streamlist_destroy(streams);
++ if (streams) {
++ jpc_streamlist_destroy(streams);
++ }
+ return 0;
+ }
+
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c.forward_null jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c.forward_null 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c 2011-06-24 14:58:33.061248133 +0200
+@@ -224,7 +224,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_
+ } else {
+ cblk->passes = 0;
+ }
+- endpasses = &cblk->passes[cblk->numpasses];
++ endpasses = (cblk->passes) ? &cblk->passes[cblk->numpasses] : 0;
+ for (pass = cblk->passes; pass != endpasses; ++pass) {
+ pass->start = 0;
+ pass->end = 0;
+@@ -352,7 +352,7 @@ dump_passes(cblk->passes, cblk->numpasse
+ #endif
+
+ n = 0;
+- endpasses = &cblk->passes[cblk->numpasses];
++ endpasses = (cblk->passes) ? &cblk->passes[cblk->numpasses] : 0;
+ for (pass = cblk->passes; pass != endpasses; ++pass) {
+ if (pass->start < n) {
+ pass->start = n;
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch
new file mode 100644
index 000000000..4c7227028
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-NULL_RETURNS.patch
@@ -0,0 +1,61 @@
+Error: NULL_RETURNS
+base/jas_image.c:213: returned_null: Function "jas_image_create0" returns null (checked 6 out of 7 times).
+base/jas_image.c:213: var_assigned: Assigning: "newimage" = null return value from "jas_image_create0".
+base/jas_image.c:214: dereference: Dereferencing a pointer that might be null "newimage" when calling "jas_image_growcmpts".
+base/jas_image.c:777: deref_parm: Directly dereferencing parameter "image".
+
+base/jas_seq.c:223: returned_null: Function "jas_malloc" returns null (checked 110 out of 119 times).
+base/jas_seq.c:223: var_assigned: Assigning: "mat0->rows_" = null return value from "jas_malloc".
+base/jas_seq.c:225: dereference: Dereferencing a null pointer "mat0->rows_".
+
+jp2/jp2_cod.c:484: returned_null: Function "jas_stream_memopen" returns null (checked 12 out of 15 times).
+jp2/jp2_cod.c:484: var_assigned: Assigning: "tmpstream" = null return value from "jas_stream_memopen".
+jp2/jp2_cod.c:490: dereference: Dereferencing a pointer that might be null "tmpstream" when calling "jas_stream_tell".
+base/jas_stream.c:677: deref_parm: Directly dereferencing parameter "stream".
+
+
+diff -up jasper-1.900.1/src/libjasper/base/jas_image.c.NULL_RETURNS jasper-1.900.1/src/libjasper/base/jas_image.c
+--- jasper-1.900.1/src/libjasper/base/jas_image.c.NULL_RETURNS 2011-12-08 14:00:05.350020869 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2011-12-08 14:00:06.638004766 +0100
+@@ -210,7 +210,10 @@ jas_image_t *jas_image_copy(jas_image_t
+ jas_image_t *newimage;
+ int cmptno;
+
+- newimage = jas_image_create0();
++ if (!(newimage = jas_image_create0())) {
++ goto error;
++ }
++
+ if (jas_image_growcmpts(newimage, image->numcmpts_)) {
+ goto error;
+ }
+diff -up jasper-1.900.1/src/libjasper/base/jas_seq.c.NULL_RETURNS jasper-1.900.1/src/libjasper/base/jas_seq.c
+--- jasper-1.900.1/src/libjasper/base/jas_seq.c.NULL_RETURNS 2011-12-08 14:00:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_seq.c 2011-12-08 14:15:12.449680562 +0100
+@@ -220,7 +220,11 @@ void jas_matrix_bindsub(jas_matrix_t *ma
+ mat0->numrows_ = r1 - r0 + 1;
+ mat0->numcols_ = c1 - c0 + 1;
+ mat0->maxrows_ = mat0->numrows_;
+- mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *));
++ if (!(mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *)))) {
++ jas_matrix_destroy(mat0);
++ return;
++ }
++
+ for (i = 0; i < mat0->numrows_; ++i) {
+ mat0->rows_[i] = mat1->rows_[r0 + i] + c0;
+ }
+diff -up jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.NULL_RETURNS jasper-1.900.1/src/libjasper/jp2/jp2_cod.c
+--- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.NULL_RETURNS 2011-12-08 14:00:05.633017331 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2011-12-08 14:00:06.677004279 +0100
+@@ -481,7 +481,9 @@ int jp2_box_put(jp2_box_t *box, jas_stre
+ dataflag = !(box->info->flags & (JP2_BOX_SUPER | JP2_BOX_NODATA));
+
+ if (dataflag) {
+- tmpstream = jas_stream_memopen(0, 0);
++ if (!(tmpstream = jas_stream_memopen(0, 0))) {
++ goto error;
++ }
+ if (box->ops->putdata) {
+ if ((*box->ops->putdata)(box, tmpstream)) {
+ goto error;
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch
new file mode 100644
index 000000000..76f5da77f
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-RESOURCE_LEAK.patch
@@ -0,0 +1,202 @@
+Error: RESOURCE_LEAK
+src/appl/imgcmp.c:504: var_assign: Assigning: "diffimage" = storage returned from "jas_image_create(3, compparms, 1025)".
+src/appl/imgcmp.c:511: leaked_storage: Variable "diffimage" going out of scope leaks the storage it points to.
+src/appl/imgcmp.c:537: leaked_storage: Variable "diffimage" going out of scope leaks the storage it points to.
+
+base/jas_image.c:254: var_assign: Assigning: "newcmpt" = storage returned from "jas_image_cmpt_create0()".
+base/jas_image.c:268: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to.
+base/jas_image.c:271: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to.
+base/jas_image.c:274: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to.
+base/jas_image.c:277: leaked_storage: Variable "newcmpt" going out of scope leaks the storage it points to.
+
+base/jas_cm.c:611: var_assign: Assigning: "newpxformseq" = storage returned from "jas_cmpxformseq_create()".
+base/jas_cm.c:617: leaked_storage: Variable "newpxformseq" going out of scope leaks the storage it points to.
+
+base/jas_cm.c:343: var_assign: Assigning: "newprof" = storage returned from "jas_cmprof_create()".
+base/jas_cm.c:358: leaked_storage: Variable "newprof" going out of scope leaks the storage it points to.
+
+base/jas_cm.c:380: var_assign: Assigning: "xform" = storage returned from "jas_malloc(sizeof (jas_cmxform_t) /*16*/)".
+base/jas_cm.c:461: leaked_storage: Variable "xform" going out of scope leaks the storage it points to.
+
+base/jas_image.c:1379: var_assign: Assigning: "xform" = storage returned from "jas_cmxform_create(inprof, outprof, NULL, 0, intent, 0)".
+base/jas_image.c:1444: leaked_storage: Variable "xform" going out of scope leaks the storage it points to.
+
+base/jas_image.c:1306: var_assign: Assigning: "inimage" = storage returned from "jas_image_copy(image)".
+base/jas_image.c:1444: leaked_storage: Variable "inimage" going out of scope leaks the storage it points to.
+
+base/jas_image.c:1345: var_assign: Assigning: "outimage" = storage returned from "jas_image_create0()".
+base/jas_image.c:1444: leaked_storage: Variable "outimage" going out of scope leaks the storage it points to.
+
+bmp/bmp_enc.c:187: var_assign: Assigning: "info" = storage returned from "bmp_info_create()".
+bmp/bmp_enc.c:208: leaked_storage: Variable "info" going out of scope leaks the storage it points to.
+
+jpc/jpc_tagtree.c:111: var_assign: Assigning: "tree" = storage returned from "jpc_tagtree_alloc()".
+jpc/jpc_tagtree.c:129: leaked_storage: Variable "tree" going out of scope leaks the storage it points to.
+
+jpc/jpc_dec.c:452: var_assign: Assigning: "compinfos" = storage returned from "jas_malloc(dec->numcomps * sizeof (jas_image_cmptparm_t) /*56*/)".
+jpc/jpc_dec.c:468: leaked_storage: Variable "compinfos" going out of scope leaks the storage it points to.
+
+jpc/jpc_dec.c:1483: var_assign: Assigning: "cp" = storage returned from "jas_malloc(sizeof (jpc_dec_cp_t) /*48*/)".
+jpc/jpc_dec.c:1493: leaked_storage: Variable "cp" going out of scope leaks the storage it points to.
+jpc/jpc_dec.c:1497: leaked_storage: Variable "cp" going out of scope leaks the storage it points to.
+
+mif/mif_cod.c:523: var_assign: Assigning: "cmpt" = storage returned from "mif_cmpt_create()".
+mif/mif_cod.c:568: leaked_storage: Variable "cmpt" going out of scope leaks the storage it points to.
+
+mif/mif_cod.c:568: leaked_storage: Variable "tvp" going out of scope leaks the storage it points to.
+
+
+diff -up jasper-1.900.1/src/appl/imgcmp.c.RESOURCE_LEAK jasper-1.900.1/src/appl/imgcmp.c
+--- jasper-1.900.1/src/appl/imgcmp.c.RESOURCE_LEAK 2007-01-19 22:43:08.000000000 +0100
++++ jasper-1.900.1/src/appl/imgcmp.c 2011-12-08 14:16:04.727027007 +0100
+@@ -507,6 +507,7 @@ jas_image_t *makediffimage(jas_matrix_t
+
+ for (i = 0; i < 3; ++i) {
+ if (!(diffdata[i] = jas_matrix_create(height, width))) {
++ jas_image_destroy(diffimage);
+ fprintf(stderr, "internal error\n");
+ return 0;
+ }
+@@ -534,6 +535,7 @@ jas_image_t *makediffimage(jas_matrix_t
+
+ for (i = 0; i < 3; ++i) {
+ if (jas_image_writecmpt(diffimage, i, 0, 0, width, height, diffdata[i])) {
++ jas_image_destroy(diffimage);
+ return 0;
+ }
+ }
+diff -up jasper-1.900.1/src/libjasper/base/jas_cm.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/base/jas_cm.c
+--- jasper-1.900.1/src/libjasper/base/jas_cm.c.RESOURCE_LEAK 2011-12-08 14:16:03.387043758 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_cm.c 2011-12-08 14:16:04.728026994 +0100
+@@ -355,6 +355,8 @@ jas_cmprof_t *jas_cmprof_copy(jas_cmprof
+ }
+ return newprof;
+ error:
++ if (newprof)
++ jas_cmprof_destroy(newprof);
+ return 0;
+ }
+
+@@ -458,6 +460,8 @@ jas_cmxform_t *jas_cmxform_create(jas_cm
+ }
+ return xform;
+ error:
++ if (xform)
++ jas_cmxform_destroy(xform);
+ return 0;
+ }
+
+@@ -614,6 +618,8 @@ static jas_cmpxformseq_t *jas_cmpxformse
+ goto error;
+ return newpxformseq;
+ error:
++ if (newpxformseq)
++ jas_cmpxformseq_destroy(newpxformseq);
+ return 0;
+ }
+
+diff -up jasper-1.900.1/src/libjasper/base/jas_image.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/base/jas_image.c
+--- jasper-1.900.1/src/libjasper/base/jas_image.c.RESOURCE_LEAK 2011-12-08 14:16:04.635028156 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2011-12-08 14:16:04.776026394 +0100
+@@ -268,15 +268,19 @@ static jas_image_cmpt_t *jas_image_cmpt_
+ newcmpt->cps_ = cmpt->cps_;
+ newcmpt->type_ = cmpt->type_;
+ if (!(newcmpt->stream_ = jas_stream_memopen(0, 0))) {
++ jas_image_cmpt_destroy(newcmpt);
+ return 0;
+ }
+ if (jas_stream_seek(cmpt->stream_, 0, SEEK_SET)) {
++ jas_image_cmpt_destroy(newcmpt);
+ return 0;
+ }
+ if (jas_stream_copy(newcmpt->stream_, cmpt->stream_, -1)) {
++ jas_image_cmpt_destroy(newcmpt);
+ return 0;
+ }
+ if (jas_stream_seek(newcmpt->stream_, 0, SEEK_SET)) {
++ jas_image_cmpt_destroy(newcmpt);
+ return 0;
+ }
+ return newcmpt;
+@@ -1443,5 +1447,11 @@ jas_image_dump(outimage, stderr);
+ #endif
+ return outimage;
+ error:
++ if (xform)
++ jas_cmxform_destroy(xform);
++ if (inimage)
++ jas_image_destroy(inimage);
++ if (outimage)
++ jas_image_destroy(outimage);
+ return 0;
+ }
+diff -up jasper-1.900.1/src/libjasper/bmp/bmp_enc.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/bmp/bmp_enc.c
+--- jasper-1.900.1/src/libjasper/bmp/bmp_enc.c.RESOURCE_LEAK 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/bmp/bmp_enc.c 2011-12-08 14:16:04.826025768 +0100
+@@ -205,16 +205,19 @@ int bmp_encode(jas_image_t *image, jas_s
+
+ /* Write the bitmap header. */
+ if (bmp_puthdr(out, &hdr)) {
++ bmp_info_destroy(info);
+ return -1;
+ }
+
+ /* Write the bitmap information. */
+ if (bmp_putinfo(out, info)) {
++ bmp_info_destroy(info);
+ return -1;
+ }
+
+ /* Write the bitmap data. */
+ if (bmp_putdata(out, info, image, enc->cmpts)) {
++ bmp_info_destroy(info);
+ return -1;
+ }
+
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.RESOURCE_LEAK 2011-12-08 14:16:04.594028668 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2011-12-08 14:17:25.677014992 +0100
+@@ -465,6 +465,7 @@ static int jpc_dec_process_sot(jpc_dec_t
+
+ if (!(dec->image = jas_image_create(dec->numcomps, compinfos,
+ JAS_CLRSPC_UNKNOWN))) {
++ jas_free(compinfos);
+ return -1;
+ }
+ jas_free(compinfos);
+@@ -1490,10 +1491,11 @@ static jpc_dec_cp_t *jpc_dec_cp_create(u
+ cp->mctid = 0;
+ cp->csty = 0;
+ if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) {
++ jpc_dec_cp_destroy(cp);
+ return 0;
+ }
+ if (!(cp->pchglist = jpc_pchglist_create())) {
+- jas_free(cp->ccps);
++ jpc_dec_cp_destroy(cp);
+ return 0;
+ }
+ for (compno = 0, ccp = cp->ccps; compno < cp->numcomps;
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c.RESOURCE_LEAK 2011-12-08 14:16:04.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c 2011-12-08 14:17:55.905637082 +0100
+@@ -126,6 +126,7 @@ jpc_tagtree_t *jpc_tagtree_create(int nu
+ } while (n > 1);
+
+ if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) {
++ jpc_tagtree_destroy(tree);
+ return 0;
+ }
+
+diff -up jasper-1.900.1/src/libjasper/mif/mif_cod.c.RESOURCE_LEAK jasper-1.900.1/src/libjasper/mif/mif_cod.c
+--- jasper-1.900.1/src/libjasper/mif/mif_cod.c.RESOURCE_LEAK 2011-12-08 14:16:04.250032970 +0100
++++ jasper-1.900.1/src/libjasper/mif/mif_cod.c 2011-12-08 14:16:04.967024005 +0100
+@@ -564,7 +564,7 @@ static int mif_process_cmpt(mif_hdr_t *h
+ break;
+ case MIF_DATA:
+ if (!(cmpt->data = jas_strdup(jas_tvparser_getval(tvp)))) {
+- return -1;
++ goto error;
+ }
+ break;
+ }
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch
new file mode 100644
index 000000000..3cae29403
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-UNREACHABLE.patch
@@ -0,0 +1,37 @@
+Error: UNREACHABLE
+jp2/jp2_cod.c:304: unreachable: This code cannot be reached: "abort();".
+
+jp2/jp2_cod.c:514: unreachable: This code cannot be reached: "abort();".
+
+jp2/jp2_enc.c:354: unreachable: This code cannot be reached: "abort();".
+
+diff -up jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.unreachable jasper-1.900.1/src/libjasper/jp2/jp2_cod.c
+--- jasper-1.900.1/src/libjasper/jp2/jp2_cod.c.unreachable 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2011-06-27 15:28:13.083137952 +0200
+@@ -301,7 +301,6 @@ jp2_box_t *jp2_box_get(jas_stream_t *in)
+ }
+
+ return box;
+- abort();
+
+ error:
+ if (box) {
+@@ -511,7 +510,6 @@ int jp2_box_put(jp2_box_t *box, jas_stre
+ }
+
+ return 0;
+- abort();
+
+ error:
+
+diff -up jasper-1.900.1/src/libjasper/jp2/jp2_enc.c.unreachable jasper-1.900.1/src/libjasper/jp2/jp2_enc.c
+--- jasper-1.900.1/src/libjasper/jp2/jp2_enc.c.unreachable 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2011-06-27 15:27:58.858353979 +0200
+@@ -351,7 +351,6 @@ int sgnd;
+ }
+
+ return 0;
+- abort();
+
+ error:
+
diff --git a/source/l/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch b/source/l/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch
new file mode 100644
index 000000000..e7d4cb591
--- /dev/null
+++ b/source/l/jasper/patches/jasper-1.900.1-Coverity-UNUSED_VALUE.patch
@@ -0,0 +1,41 @@
+Error: UNUSED_VALUE
+base/jas_icc.c:328: returned_pointer: Pointer "attrvalinfo" returned by "jas_iccattrvalinfo_lookup(type)" is never used.
+
+jpc/jpc_enc.c:788: returned_pointer: Pointer "cp" returned by "strchr(s, 66)" is never used.
+
+diff -up jasper-1.900.1/src/libjasper/base/jas_icc.c.unused_value jasper-1.900.1/src/libjasper/base/jas_icc.c
+--- jasper-1.900.1/src/libjasper/base/jas_icc.c.unused_value 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2011-06-27 15:35:52.815263000 +0200
+@@ -266,7 +266,6 @@ jas_iccprof_t *jas_iccprof_load(jas_stre
+ jas_iccattrval_t *attrval;
+ jas_iccattrval_t *prevattrval;
+ jas_icctagtabent_t *tagtabent;
+- jas_iccattrvalinfo_t *attrvalinfo;
+ int i;
+ int len;
+
+@@ -325,7 +324,7 @@ jas_iccprof_t *jas_iccprof_load(jas_stre
+ goto error;
+ }
+ curoff += 8;
+- if (!(attrvalinfo = jas_iccattrvalinfo_lookup(type))) {
++ if (!jas_iccattrvalinfo_lookup(type)) {
+ #if 0
+ jas_eprintf("warning: skipping unknown tag type\n");
+ #endif
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.unused_value jasper-1.900.1/src/libjasper/jpc/jpc_enc.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_enc.c.unused_value 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2011-06-27 15:36:17.437900180 +0200
+@@ -781,11 +781,10 @@ void jpc_enc_cp_destroy(jpc_enc_cp_t *cp
+
+ int ratestrtosize(char *s, uint_fast32_t rawsize, uint_fast32_t *size)
+ {
+- char *cp;
+ jpc_flt_t f;
+
+ /* Note: This function must not modify output size on failure. */
+- if ((cp = strchr(s, 'B'))) {
++ if (strchr(s, 'B')) {
+ *size = atoi(s);
+ } else {
+ f = atof(s);
diff --git a/source/l/jasper/patches/jasper-CVE-2014-8137.patch b/source/l/jasper/patches/jasper-CVE-2014-8137.patch
new file mode 100644
index 000000000..9600cd323
--- /dev/null
+++ b/source/l/jasper/patches/jasper-CVE-2014-8137.patch
@@ -0,0 +1,57 @@
+--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c 2014-12-11 14:06:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2014-12-11 15:16:37.971272386 +0100
+@@ -1009,7 +1009,6 @@ static int jas_icccurv_input(jas_iccattr
+ return 0;
+
+ error:
+- jas_icccurv_destroy(attrval);
+ return -1;
+ }
+
+@@ -1127,7 +1126,6 @@ static int jas_icctxtdesc_input(jas_icca
+ #endif
+ return 0;
+ error:
+- jas_icctxtdesc_destroy(attrval);
+ return -1;
+ }
+
+@@ -1206,8 +1204,6 @@ static int jas_icctxt_input(jas_iccattrv
+ goto error;
+ return 0;
+ error:
+- if (txt->string)
+- jas_free(txt->string);
+ return -1;
+ }
+
+@@ -1328,7 +1324,6 @@ static int jas_icclut8_input(jas_iccattr
+ goto error;
+ return 0;
+ error:
+- jas_icclut8_destroy(attrval);
+ return -1;
+ }
+
+@@ -1497,7 +1492,6 @@ static int jas_icclut16_input(jas_iccatt
+ goto error;
+ return 0;
+ error:
+- jas_icclut16_destroy(attrval);
+ return -1;
+ }
+
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:30:54.193209780 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:36:46.313217814 +0100
+@@ -291,7 +291,10 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ case JP2_COLR_ICC:
+ iccprof = jas_iccprof_createfrombuf(dec->colr->data.colr.iccp,
+ dec->colr->data.colr.iccplen);
+- assert(iccprof);
++ if (!iccprof) {
++ jas_eprintf("error: failed to parse ICC profile\n");
++ goto error;
++ }
+ jas_iccprof_gethdr(iccprof, &icchdr);
+ jas_eprintf("ICC Profile CS %08x\n", icchdr.colorspc);
+ jas_image_setclrspc(dec->image, fromiccpcs(icchdr.colorspc));
diff --git a/source/l/jasper/patches/jasper-CVE-2014-8138.patch b/source/l/jasper/patches/jasper-CVE-2014-8138.patch
new file mode 100644
index 000000000..5aaf8abb1
--- /dev/null
+++ b/source/l/jasper/patches/jasper-CVE-2014-8138.patch
@@ -0,0 +1,14 @@
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:06:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2014-12-11 14:06:26.000000000 +0100
+@@ -386,6 +386,11 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ /* Determine the type of each component. */
+ if (dec->cdef) {
+ for (i = 0; i < dec->numchans; ++i) {
++ /* Is the channel number reasonable? */
++ if (dec->cdef->data.cdef.ents[i].channo >= dec->numchans) {
++ jas_eprintf("error: invalid channel number in CDEF box\n");
++ goto error;
++ }
+ jas_image_setcmpttype(dec->image,
+ dec->chantocmptlut[dec->cdef->data.cdef.ents[i].channo],
+ jp2_getct(jas_image_clrspc(dec->image),
diff --git a/source/l/jasper/patches/jasper-CVE-2014-8157.patch b/source/l/jasper/patches/jasper-CVE-2014-8157.patch
new file mode 100644
index 000000000..ebfc1b2d0
--- /dev/null
+++ b/source/l/jasper/patches/jasper-CVE-2014-8157.patch
@@ -0,0 +1,12 @@
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.CVE-2014-8157 jasper-1.900.1/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c.CVE-2014-8157 2015-01-19 16:59:36.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2015-01-19 17:07:41.609863268 +0100
+@@ -489,7 +489,7 @@ static int jpc_dec_process_sot(jpc_dec_t
+ dec->curtileendoff = 0;
+ }
+
+- if (JAS_CAST(int, sot->tileno) > dec->numtiles) {
++ if (JAS_CAST(int, sot->tileno) >= dec->numtiles) {
+ jas_eprintf("invalid tile number in SOT marker segment\n");
+ return -1;
+ }
diff --git a/source/l/jasper/patches/jasper-CVE-2014-8158.patch b/source/l/jasper/patches/jasper-CVE-2014-8158.patch
new file mode 100644
index 000000000..ce9e4b497
--- /dev/null
+++ b/source/l/jasper/patches/jasper-CVE-2014-8158.patch
@@ -0,0 +1,329 @@
+diff -up jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c.CVE-2014-8158 jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c.CVE-2014-8158 2015-01-19 17:25:28.730195502 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c 2015-01-19 17:27:20.214663127 +0100
+@@ -306,11 +306,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numcols, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE];
+-#else
+- jpc_fix_t splitbuf[bufsize];
+-#endif
+ jpc_fix_t *buf = splitbuf;
+ register jpc_fix_t *srcptr;
+ register jpc_fix_t *dstptr;
+@@ -318,7 +314,6 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in
+ register int m;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+@@ -326,7 +321,6 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in
+ abort();
+ }
+ }
+-#endif
+
+ if (numcols >= 2) {
+ hstartcol = (numcols + 1 - parity) >> 1;
+@@ -360,12 +354,10 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in
+ }
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the split buffer was allocated on the heap, free this memory. */
+ if (buf != splitbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -374,11 +366,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numrows, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE];
+-#else
+- jpc_fix_t splitbuf[bufsize];
+-#endif
+ jpc_fix_t *buf = splitbuf;
+ register jpc_fix_t *srcptr;
+ register jpc_fix_t *dstptr;
+@@ -386,7 +374,6 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in
+ register int m;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+@@ -394,7 +381,6 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in
+ abort();
+ }
+ }
+-#endif
+
+ if (numrows >= 2) {
+ hstartcol = (numrows + 1 - parity) >> 1;
+@@ -428,12 +414,10 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in
+ }
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the split buffer was allocated on the heap, free this memory. */
+ if (buf != splitbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -442,11 +426,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a,
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numrows, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE];
+-#else
+- jpc_fix_t splitbuf[bufsize * JPC_QMFB_COLGRPSIZE];
+-#endif
+ jpc_fix_t *buf = splitbuf;
+ jpc_fix_t *srcptr;
+ jpc_fix_t *dstptr;
+@@ -457,7 +437,6 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a,
+ int m;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+@@ -465,7 +444,6 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a,
+ abort();
+ }
+ }
+-#endif
+
+ if (numrows >= 2) {
+ hstartcol = (numrows + 1 - parity) >> 1;
+@@ -517,12 +495,10 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a,
+ }
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the split buffer was allocated on the heap, free this memory. */
+ if (buf != splitbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -531,11 +507,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a,
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numrows, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t splitbuf[QMFB_SPLITBUFSIZE * JPC_QMFB_COLGRPSIZE];
+-#else
+- jpc_fix_t splitbuf[bufsize * numcols];
+-#endif
+ jpc_fix_t *buf = splitbuf;
+ jpc_fix_t *srcptr;
+ jpc_fix_t *dstptr;
+@@ -546,7 +518,6 @@ void jpc_qmfb_split_colres(jpc_fix_t *a,
+ int m;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+@@ -554,7 +525,6 @@ void jpc_qmfb_split_colres(jpc_fix_t *a,
+ abort();
+ }
+ }
+-#endif
+
+ if (numrows >= 2) {
+ hstartcol = (numrows + 1 - parity) >> 1;
+@@ -606,12 +576,10 @@ void jpc_qmfb_split_colres(jpc_fix_t *a,
+ }
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the split buffer was allocated on the heap, free this memory. */
+ if (buf != splitbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -619,18 +587,13 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numcols, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t joinbuf[QMFB_JOINBUFSIZE];
+-#else
+- jpc_fix_t joinbuf[bufsize];
+-#endif
+ jpc_fix_t *buf = joinbuf;
+ register jpc_fix_t *srcptr;
+ register jpc_fix_t *dstptr;
+ register int n;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+@@ -638,7 +601,6 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int
+ abort();
+ }
+ }
+-#endif
+
+ hstartcol = (numcols + 1 - parity) >> 1;
+
+@@ -670,12 +632,10 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int
+ ++srcptr;
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the join buffer was allocated on the heap, free this memory. */
+ if (buf != joinbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -684,18 +644,13 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numrows, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t joinbuf[QMFB_JOINBUFSIZE];
+-#else
+- jpc_fix_t joinbuf[bufsize];
+-#endif
+ jpc_fix_t *buf = joinbuf;
+ register jpc_fix_t *srcptr;
+ register jpc_fix_t *dstptr;
+ register int n;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+@@ -703,7 +658,6 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int
+ abort();
+ }
+ }
+-#endif
+
+ hstartcol = (numrows + 1 - parity) >> 1;
+
+@@ -735,12 +689,10 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int
+ ++srcptr;
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the join buffer was allocated on the heap, free this memory. */
+ if (buf != joinbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -749,11 +701,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a,
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numrows, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE];
+-#else
+- jpc_fix_t joinbuf[bufsize * JPC_QMFB_COLGRPSIZE];
+-#endif
+ jpc_fix_t *buf = joinbuf;
+ jpc_fix_t *srcptr;
+ jpc_fix_t *dstptr;
+@@ -763,7 +711,6 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a,
+ register int i;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+ if (!(buf = jas_alloc2(bufsize, JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) {
+@@ -771,7 +718,6 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a,
+ abort();
+ }
+ }
+-#endif
+
+ hstartcol = (numrows + 1 - parity) >> 1;
+
+@@ -821,12 +767,10 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a,
+ srcptr += JPC_QMFB_COLGRPSIZE;
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the join buffer was allocated on the heap, free this memory. */
+ if (buf != joinbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
+@@ -835,11 +779,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a,
+ {
+
+ int bufsize = JPC_CEILDIVPOW2(numrows, 1);
+-#if !defined(HAVE_VLA)
+ jpc_fix_t joinbuf[QMFB_JOINBUFSIZE * JPC_QMFB_COLGRPSIZE];
+-#else
+- jpc_fix_t joinbuf[bufsize * numcols];
+-#endif
+ jpc_fix_t *buf = joinbuf;
+ jpc_fix_t *srcptr;
+ jpc_fix_t *dstptr;
+@@ -849,7 +789,6 @@ void jpc_qmfb_join_colres(jpc_fix_t *a,
+ register int i;
+ int hstartcol;
+
+-#if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+ if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) {
+@@ -857,7 +796,6 @@ void jpc_qmfb_join_colres(jpc_fix_t *a,
+ abort();
+ }
+ }
+-#endif
+
+ hstartcol = (numrows + 1 - parity) >> 1;
+
+@@ -907,12 +845,10 @@ void jpc_qmfb_join_colres(jpc_fix_t *a,
+ srcptr += numcols;
+ }
+
+-#if !defined(HAVE_VLA)
+ /* If the join buffer was allocated on the heap, free this memory. */
+ if (buf != joinbuf) {
+ jas_free(buf);
+ }
+-#endif
+
+ }
+
diff --git a/source/l/jasper/patches/jasper-CVE-2014-9029.patch b/source/l/jasper/patches/jasper-CVE-2014-9029.patch
new file mode 100644
index 000000000..98a203599
--- /dev/null
+++ b/source/l/jasper/patches/jasper-CVE-2014-9029.patch
@@ -0,0 +1,29 @@
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:45:44.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2014-11-27 12:44:58.000000000 +0100
+@@ -1281,7 +1281,7 @@ static int jpc_dec_process_coc(jpc_dec_t
+ jpc_coc_t *coc = &ms->parms.coc;
+ jpc_dec_tile_t *tile;
+
+- if (JAS_CAST(int, coc->compno) > dec->numcomps) {
++ if (JAS_CAST(int, coc->compno) >= dec->numcomps) {
+ jas_eprintf("invalid component number in COC marker segment\n");
+ return -1;
+ }
+@@ -1307,7 +1307,7 @@ static int jpc_dec_process_rgn(jpc_dec_t
+ jpc_rgn_t *rgn = &ms->parms.rgn;
+ jpc_dec_tile_t *tile;
+
+- if (JAS_CAST(int, rgn->compno) > dec->numcomps) {
++ if (JAS_CAST(int, rgn->compno) >= dec->numcomps) {
+ jas_eprintf("invalid component number in RGN marker segment\n");
+ return -1;
+ }
+@@ -1356,7 +1356,7 @@ static int jpc_dec_process_qcc(jpc_dec_t
+ jpc_qcc_t *qcc = &ms->parms.qcc;
+ jpc_dec_tile_t *tile;
+
+- if (JAS_CAST(int, qcc->compno) > dec->numcomps) {
++ if (JAS_CAST(int, qcc->compno) >= dec->numcomps) {
+ jas_eprintf("invalid component number in QCC marker segment\n");
+ return -1;
+ }
diff --git a/source/l/jasper/patches/jpc_dec.c.patch b/source/l/jasper/patches/jpc_dec.c.patch
new file mode 100644
index 000000000..ae1cd0617
--- /dev/null
+++ b/source/l/jasper/patches/jpc_dec.c.patch
@@ -0,0 +1,18 @@
+diff -urN jasper-1.900.1/src/libjasper/jpc/jpc_dec.c jasper-1.900.1-fix/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2007-01-19 14:43:07.000000000 -0700
++++ jasper-1.900.1-fix/src/libjasper/jpc/jpc_dec.c 2008-03-06 16:51:12.000000000 -0700
+@@ -1069,12 +1069,12 @@
+ /* Apply an inverse intercomponent transform if necessary. */
+ switch (tile->cp->mctid) {
+ case JPC_MCT_RCT:
+- assert(dec->numcomps == 3);
++ assert(dec->numcomps >= 3);
+ jpc_irct(tile->tcomps[0].data, tile->tcomps[1].data,
+ tile->tcomps[2].data);
+ break;
+ case JPC_MCT_ICT:
+- assert(dec->numcomps == 3);
++ assert(dec->numcomps >= 3);
+ jpc_iict(tile->tcomps[0].data, tile->tcomps[1].data,
+ tile->tcomps[2].data);
+ break;
diff --git a/source/l/jasper/patches/patch-libjasper-stepsizes-overflow.diff b/source/l/jasper/patches/patch-libjasper-stepsizes-overflow.diff
new file mode 100644
index 000000000..097559f68
--- /dev/null
+++ b/source/l/jasper/patches/patch-libjasper-stepsizes-overflow.diff
@@ -0,0 +1,14 @@
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2007-04-06 01:29:02.000000000 +0200
+@@ -982,7 +982,10 @@ static int jpc_qcx_getcompparms(jpc_qcxc
+ compparms->numstepsizes = (len - n) / 2;
+ break;
+ }
+- if (compparms->numstepsizes > 0) {
++ if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) {
++ jpc_qcx_destroycompparms(compparms);
++ return -1;
++ } else if (compparms->numstepsizes > 0) {
+ compparms->stepsizes = jas_malloc(compparms->numstepsizes *
+ sizeof(uint_fast16_t));
+ assert(compparms->stepsizes);
diff --git a/source/l/jemalloc/jemalloc.SlackBuild b/source/l/jemalloc/jemalloc.SlackBuild
new file mode 100755
index 000000000..6a74a4afe
--- /dev/null
+++ b/source/l/jemalloc/jemalloc.SlackBuild
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Slackware build script for jemalloc
+
+# Copyright 2012-2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=jemalloc
+VERSION=3.6.0
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:--j6}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ TARGET="x86"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+ TARGET="x86"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ TARGET="x86-64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a ChangeLog COPYING* INSTALL README* VERSION \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+mv $PKG/usr/share/doc/jemalloc/* $PKG/usr/doc/$PKGNAM-$VERSION/
+rm -rf $PKG/usr/share/doc/jemalloc
+rmdir $PKG/usr/share/doc $PKG/usr/share
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/jemalloc/slack-desc b/source/l/jemalloc/slack-desc
new file mode 100644
index 000000000..5613ba2b8
--- /dev/null
+++ b/source/l/jemalloc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+jemalloc: jemalloc (A memory allocator)
+jemalloc:
+jemalloc: jemalloc is a general-purpose scalable concurrent malloc(3)
+jemalloc: implementation.
+jemalloc:
+jemalloc: Homepage: http://www.canonware.com/jemalloc/
+jemalloc:
+jemalloc:
+jemalloc:
+jemalloc:
+jemalloc:
diff --git a/source/l/json-c/json-c.SlackBuild b/source/l/json-c/json-c.SlackBuild
new file mode 100755
index 000000000..528e4a0c0
--- /dev/null
+++ b/source/l/json-c/json-c.SlackBuild
@@ -0,0 +1,117 @@
+#!/bin/sh
+
+# Slackware build script for json-c
+
+# Copyright 2015 Robby Workman, Tuscaloosa, Alabama, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=json-c
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Either of these approaches will solve the set but unused variable issue
+# Pick one :-)
+# Drop -Werror
+#sed -i 's|-Werror ||g' Makefile.am.inc
+zcat $CWD/unset-vars-build-fix.diff.gz | patch -p1 || exit 1
+
+autoreconf -vif
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* NEWS README* doc/html \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/json-c/slack-desc b/source/l/json-c/slack-desc
new file mode 100644
index 000000000..e499dff41
--- /dev/null
+++ b/source/l/json-c/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+json-c: json-c (JSON library in C)
+json-c:
+json-c: json-c implements a reference counting object model that allows you
+json-c: to easily construct JSON objects in C.
+json-c:
+json-c: Homepage: https://github.com/json-c/json-c
+json-c:
+json-c:
+json-c:
+json-c:
+json-c:
diff --git a/source/l/json-c/unset-vars-build-fix.diff b/source/l/json-c/unset-vars-build-fix.diff
new file mode 100644
index 000000000..cd36453c0
--- /dev/null
+++ b/source/l/json-c/unset-vars-build-fix.diff
@@ -0,0 +1,16 @@
+diff -Nur json-c-0.12.orig/json_tokener.c json-c-0.12/json_tokener.c
+--- json-c-0.12.orig/json_tokener.c 2014-04-10 19:41:08.000000000 -0500
++++ json-c-0.12/json_tokener.c 2015-12-27 01:37:06.564722759 -0600
+@@ -352,12 +352,10 @@
+
+ case json_tokener_state_inf: /* aka starts with 'i' */
+ {
+- int size;
+ int size_inf;
+ int is_negative = 0;
+
+ printbuf_memappend_fast(tok->pb, &c, 1);
+- size = json_min(tok->st_pos+1, json_null_str_len);
+ size_inf = json_min(tok->st_pos+1, json_inf_str_len);
+ char *infbuf = tok->pb->buf;
+ if (*infbuf == '-')
diff --git a/source/l/qca-gnupg/qca-gnupg.SlackBuild b/source/l/judy/judy.SlackBuild
index a8bb09eea..684807516 100755
--- a/source/l/qca-gnupg/qca-gnupg.SlackBuild
+++ b/source/l/judy/judy.SlackBuild
@@ -1,6 +1,7 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2012 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -9,7 +10,7 @@
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
@@ -20,27 +21,19 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Modified by Robby Workman <rworkman@slackware.com> for qca-gnupg-2.0.0
-# No additional license terms and no copyright claim
-
-
-PKGNAM=qca-gnupg
-VERSION=2.0.0_beta3
+PKGNAM=judy
+VERSION=1.0.5
BUILD=${BUILD:-1}
-# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
esac
fi
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-${PKGNAM}
+NUMJOBS=${NUMJOBS:--j6}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -56,37 +49,51 @@ else
LIBDIRSUFFIX=""
fi
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PKGNAM-$(echo $VERSION | tr _ -)
-tar xvf $CWD/$PKGNAM-$(echo $VERSION | tr _ -).tar.bz2 || exit 1
-cd $PKGNAM-$(echo $VERSION | tr _ -) || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/Judy-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
-./configure
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux
-make \
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS"
-make install INSTALL_ROOT=$PKG
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-mkdir -p $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _)
-cp -a COPYING README $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _)
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* ChangeLog README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz
-
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/judy/slack-desc b/source/l/judy/slack-desc
new file mode 100644
index 000000000..4cdef3197
--- /dev/null
+++ b/source/l/judy/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+judy: judy (sparse dynamic array library)
+judy:
+judy: Judy is a C library that provides a state-of-the-art core technology
+judy: that implements a sparse dynamic array. A Judy array consumes memory
+judy: only when it is populated, yet can grow to take advantage of all
+judy: available memory if desired. Judy's key benefits are scalability,
+judy: high performance, and memory efficiency.
+judy:
+judy: homepage: http://judy.sourceforge.net
+judy:
+judy:
diff --git a/source/l/keybinder/keybinder.SlackBuild b/source/l/keybinder/keybinder.SlackBuild
index 7e1da3b0c..1924c9be7 100755
--- a/source/l/keybinder/keybinder.SlackBuild
+++ b/source/l/keybinder/keybinder.SlackBuild
@@ -24,12 +24,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=keybinder
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+VERSION=0.3.1
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -57,6 +57,8 @@ fi
rm -rf $PKG
mkdir -p $TMP $PKG
+
+# First build gtk2 version
cd $TMP
rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
@@ -83,12 +85,6 @@ CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Don't ship .la files:
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
-
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
- grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
AUTHORS COPYING* INSTALL NEWS README* examples \
@@ -102,6 +98,51 @@ if [ -r ChangeLog ]; then
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
+# Now build gtk3 version:
+cd $TMP
+rm -rf $PKGNAM-3.0-$VERSION
+tar xvf $CWD/$PKGNAM-3.0-$VERSION.tar.xz || exit 1
+cd $PKGNAM-3.0-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+mkdir -p $PKG/usr/doc/$PKGNAM-3.0-$VERSION
+cp -a \
+ AUTHORS COPYING* INSTALL NEWS README* examples \
+ $PKG/usr/doc/$PKGNAM-3.0-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-3.0-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+# Don't ship .la files:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/keybinder/slack-desc b/source/l/keybinder/slack-desc
index 9eb080261..8d6c694e7 100644
--- a/source/l/keybinder/slack-desc
+++ b/source/l/keybinder/slack-desc
@@ -11,7 +11,7 @@ keybinder:
keybinder: keybinder is a library for registering global keyboard shortcuts.
keybinder: Keybinder works with GTK-based applications using the X Window System.
keybinder:
-keybinder: Homepage: http://kaizer.se/wiki/keybinder/
+keybinder: Homepage: http://kaizer.se/wiki/keybinder/
keybinder:
keybinder:
keybinder:
diff --git a/source/l/keyutils/keyutils.SlackBuild b/source/l/keyutils/keyutils.SlackBuild
index 969b53cd3..0b7641bbb 100755
--- a/source/l/keyutils/keyutils.SlackBuild
+++ b/source/l/keyutils/keyutils.SlackBuild
@@ -28,8 +28,8 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
@@ -38,13 +38,7 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i386" ]; then
- SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i586" ]; then
+if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
@@ -84,8 +78,10 @@ find . \
-exec chmod 644 {} \;
# Build and install:
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
+#make $NUMJOBS || make || exit 1
+#make install DESTDIR=$PKG || exit 1
+make LIBDIR=/lib${LIBDIRSUFFIX} USRLIBDIR=/usr/lib${LIBDIRSUFFIX} MANDIR=/usr/man $NUMJOBS || make || exit 1
+make install LIBDIR=/lib${LIBDIRSUFFIX} USRLIBDIR=/usr/lib${LIBDIRSUFFIX} MANDIR=/usr/man DESTDIR=$PKG || exit 1
# Strip binaries:
( cd $PKG
diff --git a/source/l/lcms/lcms.SlackBuild b/source/l/lcms/lcms.SlackBuild
index a7d6f6fe3..398cf5129 100755
--- a/source/l/lcms/lcms.SlackBuild
+++ b/source/l/lcms/lcms.SlackBuild
@@ -22,7 +22,7 @@
VERSION=${VERSION:-$(echo lcms-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/lcms2/lcms2.SlackBuild b/source/l/lcms2/lcms2.SlackBuild
index 0ca49b4ec..aff2a28f6 100755
--- a/source/l/lcms2/lcms2.SlackBuild
+++ b/source/l/lcms2/lcms2.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2012, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,8 +24,8 @@
PKGNAM=lcms2
-VERSION=${VERSION:-2.4}
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -33,7 +33,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -41,8 +41,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -87,7 +87,7 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--enable-static=no \
- --build=$TARGET
+ --build=$TARGET || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
@@ -98,8 +98,10 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
gzip -9 $PKG/usr/man/man?/*.?
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+# Don't include doc/, which is huge .pdf files and even larger .rtf files.
+# Find them in the source if you require them.
cp -a \
- AUTHORS COPYING INSTALL NEWS README* doc \
+ AUTHORS COPYING* NEWS README* \
$PKG/usr/doc/$PKGNAM-$VERSION
find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 644 {} \;
diff --git a/source/l/lesstif/doinst.sh b/source/l/lesstif/doinst.sh
deleted file mode 100644
index 5eba7c290..000000000
--- a/source/l/lesstif/doinst.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-# Add the LessTif stuff to host.def if it isn't already there:
-mkdir -p usr/lib/X11/config
-touch usr/lib/X11/config/host.def
-if ! grep LessTif usr/lib/X11/config/host.def 1> /dev/null 2> /dev/null ; then
- cat usr/lib/LessTif/config/host.def >> usr/lib/X11/config/host.def
-fi
-# Standard symlink creation section begins:
diff --git a/source/l/lesstif/lesstif.Makefile.in.patch b/source/l/lesstif/lesstif.Makefile.in.patch
deleted file mode 100644
index 19cd54bb5..000000000
--- a/source/l/lesstif/lesstif.Makefile.in.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-# Fix for installing Dt on x86_64
-
-diff -u --recursive lesstif-0.95.0-orig/clients/Motif-2.1/mwm/Makefile.in lesstif-0.95.0/clients/Motif-2.1/mwm/Makefile.in
---- lesstif-0.95.0-orig/clients/Motif-2.1/mwm/Makefile.in 2006-06-10 11:35:34.000000000 +0200
-+++ lesstif-0.95.0/clients/Motif-2.1/mwm/Makefile.in 2006-08-23 00:27:05.000000000 +0200
-@@ -301,7 +301,7 @@
- $(X_LIBS) $(XPLIB) -lXt $(X_PRE_LIBS) -lXext -lX11 $(X_EXTRA_LIBS)
-
- appdir = $(libdir)/X11/app-defaults
--mwmddir = $(libdir)/X11/mwm
-+mwmddir = $(sysconfdir)/mwm
- mwmd_DATA = system.mwmrc alt.map README
- AM_YFLAGS = -d
- all: all-am
-diff -u --recursive lesstif-0.95.0-orig/lib/Dt/Makefile.in lesstif-0.95.0/lib/Dt/Makefile.in
---- lesstif-0.95.0-orig/lib/Dt/Makefile.in 2006-06-10 11:35:38.000000000 +0200
-+++ lesstif-0.95.0/lib/Dt/Makefile.in 2006-08-23 00:28:39.000000000 +0200
-@@ -248,7 +248,8 @@
- infodir = @infodir@
- install_sh = @install_sh@
- lib_version_suffix = @lib_version_suffix@
--libdir = $(exec_prefix)/lib
-+#libdir = $(exec_prefix)/lib
-+libdir = @libdir@
- libexecdir = @libexecdir@
- localstatedir = @localstatedir@
- man2html_cmd = @man2html_cmd@
diff --git a/source/l/lesstif/lesstif.PutPixel32.patch b/source/l/lesstif/lesstif.PutPixel32.patch
deleted file mode 100644
index 4098dc58e..000000000
--- a/source/l/lesstif/lesstif.PutPixel32.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-* Mon Jun 16 2008 Hans de Goede <j.w.r.degoede@hhs.nl> 0.95.0-25
-- Fix PutPixel32 crashing on 64 bit (bz 437133)
-
-diff -up lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c~ lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c
---- lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c~ 2008-06-16 22:22:43.000000000 +0200
-+++ lesstif-0.95.0/lib/Xm-2.1/Xpmcreate.c 2008-06-16 22:22:43.000000000 +0200
-@@ -179,9 +179,7 @@ LFUNC(PutImagePixels1, void, (XImage *im
-
- LFUNC(PutPixel1, int, (XImage *ximage, int x, int y, unsigned long pixel));
- LFUNC(PutPixel, int, (XImage *ximage, int x, int y, unsigned long pixel));
--#if !defined(WORD64) && !defined(LONG64)
- LFUNC(PutPixel32, int, (XImage *ximage, int x, int y, unsigned long pixel));
--#endif
- LFUNC(PutPixel32MSB, int, (XImage *ximage, int x, int y, unsigned long pixel));
- LFUNC(PutPixel32LSB, int, (XImage *ximage, int x, int y, unsigned long pixel));
- LFUNC(PutPixel16MSB, int, (XImage *ximage, int x, int y, unsigned long pixel));
-@@ -1879,7 +1877,6 @@ PutPixel(ximage, x, y, pixel)
- return 1;
- }
-
--#if !defined(WORD64) && !defined(LONG64)
- static int
- PutPixel32(ximage, x, y, pixel)
- register XImage *ximage;
-@@ -1893,10 +1890,9 @@ PutPixel32(ximage, x, y, pixel)
- return 0;
-
- addr = &((unsigned char *)ximage->data) [ZINDEX32(x, y, ximage)];
-- *((unsigned long *)addr) = pixel;
-+ *((unsigned int *)addr) = pixel;
- return 1;
- }
--#endif
-
- static int
- PutPixel32MSB(ximage, x, y, pixel)
-@@ -2211,15 +2207,12 @@ xpmParseDataAndCreate(display, data, ima
- else
- ximage->f.put_pixel = PutPixel16LSB;
- else if (ximage->bits_per_pixel == 32)
--#if !defined(WORD64) && !defined(LONG64)
- if (*((char *)&byteorderpixel) == ximage->byte_order)
- ximage->f.put_pixel = PutPixel32;
-+ else if (ximage->bitmap_bit_order == MSBFirst)
-+ ximage->f.put_pixel = PutPixel32MSB;
- else
--#endif
-- if (ximage->bitmap_bit_order == MSBFirst)
-- ximage->f.put_pixel = PutPixel32MSB;
-- else
-- ximage->f.put_pixel = PutPixel32LSB;
-+ ximage->f.put_pixel = PutPixel32LSB;
- else if ((ximage->bits_per_pixel | ximage->depth) == 1)
- ximage->f.put_pixel = PutPixel1;
- else
diff --git a/source/l/lesstif/lesstif.rendertable.check.diff b/source/l/lesstif/lesstif.rendertable.check.diff
deleted file mode 100644
index 49f877e97..000000000
--- a/source/l/lesstif/lesstif.rendertable.check.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./lib/Xm-2.1/RenderTable.c.orig 2005-06-24 06:36:03.000000000 -0500
-+++ ./lib/Xm-2.1/RenderTable.c 2009-03-23 16:34:48.000000000 -0500
-@@ -465,7 +465,7 @@
- DEBUGOUT(_LtDebug(__FILE__, w, "_XmRenderTableFinaliseTag(%s)\n", tag));
- #if 1
- /* Experimental start */
-- if (r->dpy == 0)
-+ if (r->dpy == 0 && w)
- r->dpy = XtDisplay(w);
- /* Experimental end */
- #endif
diff --git a/source/l/lesstif/lesstif.x86_64.patch b/source/l/lesstif/lesstif.x86_64.patch
deleted file mode 100644
index 774a9df0d..000000000
--- a/source/l/lesstif/lesstif.x86_64.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff -up lesstif-0.95.0/scripts/motif-config.in.multilib lesstif-0.95.0/scripts/motif-config.in
---- lesstif-0.95.0/scripts/motif-config.in.multilib 2005-01-14 20:36:00.000000000 +0100
-+++ lesstif-0.95.0/scripts/motif-config.in 2007-10-21 13:52:43.000000000 +0200
-@@ -2,14 +2,16 @@
- #
- # $Header: /stuff/slackware/non-public/alien/slackware64/source/l/lesstif/RCS/lesstif-0.95.0-x86_64.patch,v 1.1 2008/10/17 20:29:26 eha Exp eha $
- #
--L="@prefix@"
- XC="@X_CFLAGS@"
--XL="@X_LIBS@"
--XR="@XRENDER_LIBS@"
-+X_PRE_LIBS="@X_PRE_LIBS@"
-+X_LIBS="@X_LIBS@"
-+X_EXTRA_LIBS="@X_EXTRA_LIBS@"
- V="@PACKAGE_NAME@ @PACKAGE_VERSION@"
-
--prefix=$L
--exec_prefix=$L
-+prefix="@prefix@"
-+exec_prefix="@exec_prefix@"
-+libdir="@libdir@"
-+includedir="@includedir@"
- exec_prefix_set=no
-
- usage()
-@@ -80,10 +82,10 @@ if test "$echo_exec_prefix" = "yes"; the
- fi
-
- if test "$echo_cflags" = "yes"; then
-- echo "-I$L/include $XC"
-+ echo "-I$includedir $XC"
- fi
-
- if test "$echo_libs" = "yes"; then
-- echo "-L$L/lib -L/usr/X11R6/lib -lXm -lXt $my_glib_libs $XR -lXext -lX11"
-+ echo "-L$libdir ${X_LIBS} -lXm -lXt ${X_PRE_LIBS} -lX11 ${X_EXTRA_LIBS}"
- fi
-
-
diff --git a/source/l/lesstif/slack-desc b/source/l/lesstif/slack-desc
deleted file mode 100644
index 0736326ab..000000000
--- a/source/l/lesstif/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
-# leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-lesstif: lesstif (a free replacement for OSF/Motif(R))
-lesstif:
-lesstif: LessTif is the Hungry Programmers' (www.hungry.com) free clone of
-lesstif: Motif(R). It aims to be source compatible with OSF/Motif(R) meaning
-lesstif: that the same source code should compile with both and work exactly
-lesstif: the same. This package contains the libraries and header files to
-lesstif: be able to run and compile Motif applications, along with the lesstif
-lesstif: version of mwm, the Motif window manager.
-lesstif:
-lesstif:
-lesstif:
diff --git a/source/l/libao/libao.SlackBuild b/source/l/libao/libao.SlackBuild
index 1c7239aa2..16ae9ab4c 100755
--- a/source/l/libao/libao.SlackBuild
+++ b/source/l/libao/libao.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +23,12 @@
PKGNAM=libao
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -51,7 +51,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf libao-$VERSION
-tar xvf $CWD/libao-$VERSION.tar.gz
+tar xvf $CWD/libao-$VERSION.tar.?z*
cd libao-$VERSION
chown -R root:root .
find . \
@@ -60,7 +60,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-#zcat $CWD/libao.use_new_alsa_api.diff.gz | patch -p1 --verbose
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/source/l/libarchive/libarchive.SlackBuild b/source/l/libarchive/libarchive.SlackBuild
index 2133e0739..cddf74661 100755
--- a/source/l/libarchive/libarchive.SlackBuild
+++ b/source/l/libarchive/libarchive.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2008 Heinz Wiesinger <hmwiesinger@gmx.at>
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -30,7 +30,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -79,7 +79,7 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--disable-static \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/libasyncns/libasyncns.SlackBuild b/source/l/libasyncns/libasyncns.SlackBuild
new file mode 100755
index 000000000..9dfbbf12a
--- /dev/null
+++ b/source/l/libasyncns/libasyncns.SlackBuild
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+# Slackware build script for libasyncns
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Originally written by crocket (crockabiscuit@gmail.com)
+# Modified by Christoph Willing <chris.willing@iinet.net.au>
+
+PKGNAM=libasyncns
+VERSION=$(ls libasyncns-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Ensure correct libdir is specified by pkg-config database.
+sed -i -e "/^libdir/c libdir=\${exec_prefix}/lib$LIBDIRSUFFIX" libasyncns.pc.in
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libasyncns/slack-desc b/source/l/libasyncns/slack-desc
new file mode 100644
index 000000000..ce59d41bf
--- /dev/null
+++ b/source/l/libasyncns/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libasyncns: libasyncns (asynchronous name query library)
+libasyncns:
+libasyncns: libasyncns is a C library for asynchronous name queries.
+libasyncns: It is an asynchronous wrapper around the libc's synchronous
+libasyncns: getaddrinfo() API.
+libasyncns:
+libasyncns: Website: http://0pointer.de/lennart/projects/libasyncns
+libasyncns:
+libasyncns:
+libasyncns:
+libasyncns:
diff --git a/source/l/libatasmart/libatasmart.SlackBuild b/source/l/libatasmart/libatasmart.SlackBuild
index a9bc056c9..0b6b3e61c 100755
--- a/source/l/libatasmart/libatasmart.SlackBuild
+++ b/source/l/libatasmart/libatasmart.SlackBuild
@@ -26,7 +26,7 @@
PKGNAM=libatasmart
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -34,7 +34,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -42,8 +42,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/libcanberra/libcanberra.SlackBuild b/source/l/libcanberra/libcanberra.SlackBuild
index 38f8f86fd..7eb5df563 100755
--- a/source/l/libcanberra/libcanberra.SlackBuild
+++ b/source/l/libcanberra/libcanberra.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for libcanberra
-# Copyright 2010,2011,2012 Robby Workman, Northport, Alabama, USA
+# Copyright 2010, 2011, 2012, 2015 Robby Workman, Tuscaloosa, Alabama, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,11 +25,11 @@
PKGNAM=libcanberra
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-5}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
*) export ARCH=$( uname -m ) ;;
esac
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -68,8 +68,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS -I/usr/include/samba-4.0" \
+CXXFLAGS="$SLKCFLAGS -I/usr/include/samba-4.0" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/source/l/libcap-ng/libcap-ng.SlackBuild b/source/l/libcap-ng/libcap-ng.SlackBuild
new file mode 100755
index 000000000..7eaa26fb0
--- /dev/null
+++ b/source/l/libcap-ng/libcap-ng.SlackBuild
@@ -0,0 +1,153 @@
+#!/bin/sh
+
+# Copyright 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=libcap-ng
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-static \
+ --with-python \
+ --without-python3 \
+ --build=$ARCH-slackware-linux || exit 1
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Remove .la file(s):
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+
+# Move libraries, as they might be needed by programs that bring a network
+# mounted /usr online:
+mkdir $PKG/lib${LIBDIRSUFFIX}
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ for file in lib*.so.?.* ; do
+ mv $file ../../lib${LIBDIRSUFFIX}
+ ln -sf ../../lib${LIBDIRSUFFIX}/$file .
+ done
+ cp -a lib*.so.? ../../lib${LIBDIRSUFFIX}
+)
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING* NEWS README* THANKS TODO \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+
+mkdir -p $PKG/install
+#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/libcap-ng/slack-desc b/source/l/libcap-ng/slack-desc
new file mode 100644
index 000000000..711b83478
--- /dev/null
+++ b/source/l/libcap-ng/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler---------------------------------------------------|
+libcap-ng: libcap-ng (capabilities library and utilities)
+libcap-ng:
+libcap-ng: The libcap-ng library is intended to make programming with POSIX
+libcap-ng: capabilities easier. The package also includes utilities to help
+libcap-ng: analyze a system for programs that may have too much privilege.
+libcap-ng:
+libcap-ng: libcap-ng was written and is maintained by Steve Grubb.
+libcap-ng:
+libcap-ng: Homepage: https://people.redhat.com/sgrubb/libcap-ng/
+libcap-ng:
+libcap-ng:
diff --git a/source/l/libcddb/libcddb.SlackBuild b/source/l/libcddb/libcddb.SlackBuild
index 6d5e1a7e5..7a32fe9ce 100755
--- a/source/l/libcddb/libcddb.SlackBuild
+++ b/source/l/libcddb/libcddb.SlackBuild
@@ -23,7 +23,7 @@
PKGNAM=libcddb
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libcdio-paranoia/libcdio-paranoia.SlackBuild b/source/l/libcdio-paranoia/libcdio-paranoia.SlackBuild
new file mode 100755
index 000000000..667b4fab3
--- /dev/null
+++ b/source/l/libcdio-paranoia/libcdio-paranoia.SlackBuild
@@ -0,0 +1,118 @@
+#!/bin/sh
+
+# Copyright 2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2014 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=libcdio-paranoia
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-libcdio-paranoia
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf libcdio-paranoia-$VERSION
+tar xvf $CWD/libcdio-paranoia-$VERSION.tar.?z* || exit 1
+cd libcdio-paranoia-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --disable-static \
+ --disable-silent-rules \
+ --disable-example-progs \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/libcdio-paranoia-$VERSION
+cp -a \
+ AUTHORS ChangeLog COPYING INSTALL NEWS README TODO \
+ $PKG/usr/doc/libcdio-paranoia-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/libcdio-paranoia-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/libcdio-paranoia/libcdio-paranoia.url b/source/l/libcdio-paranoia/libcdio-paranoia.url
new file mode 100644
index 000000000..e28aefe43
--- /dev/null
+++ b/source/l/libcdio-paranoia/libcdio-paranoia.url
@@ -0,0 +1 @@
+http://ftp.gnu.org/gnu/libcdio/
diff --git a/source/l/libcdio-paranoia/slack-desc b/source/l/libcdio-paranoia/slack-desc
new file mode 100644
index 000000000..f575233cf
--- /dev/null
+++ b/source/l/libcdio-paranoia/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+libcdio-paranoia: libcdio-paranoia (CD paranoia libraries from libcdio)
+libcdio-paranoia:
+libcdio-paranoia: This CDDA reader distribution ('libcdio-cdparanoia') reads audio from
+libcdio-paranoia: the CDROM directly as data, with no analog step between, and writes
+libcdio-paranoia: the data to a file or pipe as .wav, .aifc or as raw 16 bit linear
+libcdio-paranoia: PCM.
+libcdio-paranoia:
+libcdio-paranoia:
+libcdio-paranoia:
+libcdio-paranoia:
+libcdio-paranoia:
diff --git a/source/l/libcdio/libcdio.SlackBuild b/source/l/libcdio/libcdio.SlackBuild
index 3ca8e8aed..ebccf1d1b 100755
--- a/source/l/libcdio/libcdio.SlackBuild
+++ b/source/l/libcdio/libcdio.SlackBuild
@@ -76,6 +76,7 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--infodir=/usr/info \
--disable-static \
+ --disable-silent-rules \
--build=$ARCH-slackware-linux
# Build and install:
diff --git a/source/l/libcroco/libcroco.SlackBuild b/source/l/libcroco/libcroco.SlackBuild
index 69309787e..d5a1fcba9 100755
--- a/source/l/libcroco/libcroco.SlackBuild
+++ b/source/l/libcroco/libcroco.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for libcroco
-# Copyright 2012,2013 Robby Workman, Northport, Alabama, USA
+# Copyright 2012,2013,2015 Robby Workman, Tuscaloosa, Alabama, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +23,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=libcroco
-VERSION=${VERSION:-0.6.8}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -38,8 +38,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/libdiscid/libdiscid.SlackBuild b/source/l/libdiscid/libdiscid.SlackBuild
index f30ed7bf8..52e8310b5 100755
--- a/source/l/libdiscid/libdiscid.SlackBuild
+++ b/source/l/libdiscid/libdiscid.SlackBuild
@@ -23,7 +23,7 @@
PKGNAM=libdiscid
-VERSION=${VERSION:-0.2.2}
+VERSION=${VERSION:-0.6.1}
BUILD=${BUILD:-1}
CWD=$(pwd)
@@ -69,21 +69,18 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Configure:
-CFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --disable-static \
- --mandir=/usr/man \
- --program-prefix= \
- --program-suffix= \
- --build=$ARCH-slackware-linux
-
-# Build and install:
+mkdir build
+cd build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ ..
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
+cd -
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" \
diff --git a/source/l/pil/pil.SlackBuild b/source/l/libdvdnav/libdvdnav.SlackBuild
index aa522a5fe..362d09ad5 100755
--- a/source/l/pil/pil.SlackBuild
+++ b/source/l/libdvdnav/libdvdnav.SlackBuild
@@ -1,6 +1,9 @@
#!/bin/sh
-# Copyright 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Slackware build script for libdvdnav
+
+# Copyright 2007-2015 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,11 +23,9 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-PKGNAM=pil
-ARCNAM=Imaging
-VERSION=${VERSION:-$(echo $ARCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+PKGNAM=libdvdnav
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -36,18 +37,20 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "${ARCH}" = "i486" ]; then
+NUMJOBS=${NUMJOBS:--j6}
+
+if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
CWD=$(pwd)
@@ -56,11 +59,10 @@ PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
-
cd $TMP
-rm -rf $ARCNAM-$VERSION
-tar xvf $CWD/$ARCNAM-$VERSION.tar.*z* || exit 1
-cd $ARCNAM-$VERSION
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -68,29 +70,31 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-python setup.py build_ext -i || exit 1
-python setup.py install --root=$PKG || exit 1
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --build=$ARCH-slackware-linux
-( cd Sane
- python setup.py build || exit 1
- python setup.py install --root=$PKG || exit 1
-)
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+make $NUMJOBS || make || exit 1
+make install-strip DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- BUILDME CONTENTS MANIFEST README \
+ AUTHORS ChangeLog COPYING* README* TODO \
$PKG/usr/doc/$PKGNAM-$VERSION
-cp -a Sane/README $PKG/usr/doc/$PKGNAM-$VERSION/README.Sane
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
-if [ -r CHANGES ]; then
+if [ -r ChangeLog ]; then
DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
- cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES
- touch -r CHANGES $DOCSDIR/CHANGES
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
fi
mkdir -p $PKG/install
@@ -98,4 +102,3 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/l/libdvdnav/slack-desc b/source/l/libdvdnav/slack-desc
new file mode 100644
index 000000000..a3ab05694
--- /dev/null
+++ b/source/l/libdvdnav/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libdvdnav: libdvdnav (DVD Navigation Library)
+libdvdnav:
+libdvdnav: This is mplayer's fork of libdvdnav. libdvdnav is a library that
+libdvdnav: allows easy use of sophisticated DVD navigation features such as
+libdvdnav: DVD menus, multiangle playback, and even interactive DVD games.
+libdvdnav:
+libdvdnav: Homepage: http://www.mplayerhq.hu/design7/news.html
+libdvdnav:
+libdvdnav:
+libdvdnav:
+libdvdnav:
diff --git a/source/l/libdvdread/libdvdread.SlackBuild b/source/l/libdvdread/libdvdread.SlackBuild
index 84ddae08c..97ab7f714 100755
--- a/source/l/libdvdread/libdvdread.SlackBuild
+++ b/source/l/libdvdread/libdvdread.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2012, 2014 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=libdvdread
-VERSION=4.2.0
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -81,11 +81,11 @@ CXXFLAGS="$SLKCFLAGS" \
--host=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
+make install-strip DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- AUTHORS COPYING* DEVELOPMENT-POLICY.txt INSTALL NEWS README* TODO \
+ AUTHORS COPYING* NEWS README* TODO \
$PKG/usr/doc/$PKGNAM-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
diff --git a/source/l/libevent/libevent.SlackBuild b/source/l/libevent/libevent.SlackBuild
index 8cd699dfb..027283815 100755
--- a/source/l/libevent/libevent.SlackBuild
+++ b/source/l/libevent/libevent.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2013, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,8 +28,8 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
@@ -38,13 +38,7 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i386" ]; then
- SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i586" ]; then
+if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
diff --git a/source/l/libfakekey/libfakekey.SlackBuild b/source/l/libfakekey/libfakekey.SlackBuild
new file mode 100755
index 000000000..aa3ab083c
--- /dev/null
+++ b/source/l/libfakekey/libfakekey.SlackBuild
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+# Copyright 2014 Eric Hameleers, Eindhoven, NL
+# Copyright 2014 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=libfakekey
+VERSION=${VERSION:-0.1}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i486 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX="64"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --disable-static \
+ --build=$TARGET
+
+# Build and install:
+make AM_LDFLAGS=-lX11 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries (if any):
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# Add documentation:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ ChangeLog COPYING \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# Add a package description:
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/libfakekey/slack-desc b/source/l/libfakekey/slack-desc
new file mode 100644
index 000000000..0195f1818
--- /dev/null
+++ b/source/l/libfakekey/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libfakekey: libfakekey (X Virtual Keyboard Library)
+libfakekey:
+libfakekey: X virtual keyboard library of the Matchbox WM project.
+libfakekey:
+libfakekey:
+libfakekey:
+libfakekey:
+libfakekey:
+libfakekey: See also:
+libfakekey: https://www.yoctoproject.org/tools-resources/projects/matchbox
+libfakekey:
diff --git a/source/l/libffi/libffi.SlackBuild b/source/l/libffi/libffi.SlackBuild
index 1eb06bf44..1d92dbd04 100755
--- a/source/l/libffi/libffi.SlackBuild
+++ b/source/l/libffi/libffi.SlackBuild
@@ -25,13 +25,13 @@
PKGNAM=libffi
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
diff --git a/source/l/libffi/libffi.includedir.diff b/source/l/libffi/libffi.includedir.diff
index 966e16d4b..edfd0fad2 100644
--- a/source/l/libffi/libffi.includedir.diff
+++ b/source/l/libffi/libffi.includedir.diff
@@ -1,36 +1,36 @@
---- libffi-3.0.11~rc1.orig/libffi.pc.in
-+++ libffi-3.0.11~rc1/libffi.pc.in
-@@ -1,10 +1,10 @@
- prefix=@prefix@
+--- ./include/Makefile.in.orig 2014-11-12 05:59:58.000000000 -0600
++++ ./include/Makefile.in 2015-03-18 20:16:10.909912988 -0500
+@@ -314,7 +314,7 @@
+ AUTOMAKE_OPTIONS = foreign
+ DISTCLEANFILES = ffitarget.h
+ EXTRA_DIST = ffi.h.in ffi_common.h
+-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
++includesdir = $(includedir)
+ nodist_includes_HEADERS = ffi.h ffitarget.h
+ all: all-am
+
+--- ./include/Makefile.am.orig 2014-11-08 06:47:24.000000000 -0600
++++ ./include/Makefile.am 2015-03-18 20:14:30.883905771 -0500
+@@ -5,5 +5,5 @@
+ DISTCLEANFILES=ffitarget.h
+ EXTRA_DIST=ffi.h.in ffi_common.h
+
+-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
++includesdir = $(includedir)
+ nodist_includes_HEADERS = ffi.h ffitarget.h
+--- ./libffi.pc.in.orig 2014-11-08 06:47:24.000000000 -0600
++++ ./libffi.pc.in 2015-03-18 20:14:30.884905771 -0500
+@@ -2,10 +2,10 @@
exec_prefix=@exec_prefix@
libdir=@libdir@
+ toolexeclibdir=@toolexeclibdir@
-includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
+includedir=@includedir@
Name: @PACKAGE_NAME@
Description: Library supporting Foreign Function Interfaces
Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -lffi
+-Libs: -L${toolexeclibdir} -lffi
-Cflags: -I${includedir}
+Libs: -lffi
+Cflags:
---- libffi-3.0.11~rc1.orig/include/Makefile.am
-+++ libffi-3.0.11~rc1/include/Makefile.am
-@@ -5,5 +5,5 @@ AUTOMAKE_OPTIONS=foreign
- DISTCLEANFILES=ffitarget.h
- EXTRA_DIST=ffi.h.in ffi_common.h
-
--includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
-+includesdir = $(includedir)
- nodist_includes_HEADERS = ffi.h ffitarget.h
---- libffi-3.0.11~rc1.orig/include/Makefile.in
-+++ libffi-3.0.11~rc1/include/Makefile.in
-@@ -211,7 +211,7 @@ top_srcdir = @top_srcdir@
- AUTOMAKE_OPTIONS = foreign
- DISTCLEANFILES = ffitarget.h
- EXTRA_DIST = ffi.h.in ffi_common.h
--includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
-+includesdir = $(includedir)
- nodist_includes_HEADERS = ffi.h ffitarget.h
- all: all-am
-
diff --git a/source/l/libglade/libglade.SlackBuild b/source/l/libglade/libglade.SlackBuild
index d8973a4e7..3b8d5d401 100755
--- a/source/l/libglade/libglade.SlackBuild
+++ b/source/l/libglade/libglade.SlackBuild
@@ -22,7 +22,7 @@
VERSION=${VERSION:-$(echo libglade-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libgnome-keyring/libgnome-keyring.SlackBuild b/source/l/libgnome-keyring/libgnome-keyring.SlackBuild
index b3e1820ec..b46fa1d8b 100755
--- a/source/l/libgnome-keyring/libgnome-keyring.SlackBuild
+++ b/source/l/libgnome-keyring/libgnome-keyring.SlackBuild
@@ -75,6 +75,7 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
+ --disable-vala \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--build=$ARCH-slackware-linux || exit 1
diff --git a/source/l/libgphoto2/fix-usb_id-callout-for-udev-175.diff b/source/l/libgphoto2/fix-usb_id-callout-for-udev-175.diff
deleted file mode 100644
index fe65dabdb..000000000
--- a/source/l/libgphoto2/fix-usb_id-callout-for-udev-175.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur libgphoto2-2.4.11.orig/packaging/generic/print-camera-list.c libgphoto2-2.4.11/packaging/generic/print-camera-list.c
---- libgphoto2-2.4.11.orig/packaging/generic/print-camera-list.c 2011-04-06 16:42:09.000000000 -0500
-+++ libgphoto2-2.4.11/packaging/generic/print-camera-list.c 2011-12-10 20:31:37.621092267 -0600
-@@ -409,7 +409,7 @@
- "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n"
- "SUBSYSTEM!=\"usb\", GOTO=\"libgphoto2_usb_end\"\n"
- "ENV{DEVTYPE}!=\"usb_device\", GOTO=\"libgphoto2_usb_end\"\n\n"
-- "ENV{ID_USB_INTERFACES}==\"\", IMPORT{program}=\"usb_id --export %%p\"\n"
-+ "ENV{ID_USB_INTERFACES}==\"\", IMPORT{builtin}=\"usb_id\"\n"
- /* ignore mass storage class having devices in mark-up */
- "ENV{ID_USB_INTERFACES}==\"*:08*:*\", GOTO=\"libgphoto2_usb_end\"\n"
- /* shortcut the most common camera driver, ptp class, so we avoid parsing 1000
diff --git a/source/l/libgphoto2/libgphoto2.SlackBuild b/source/l/libgphoto2/libgphoto2.SlackBuild
index f4b823c24..ccfb26203 100755
--- a/source/l/libgphoto2/libgphoto2.SlackBuild
+++ b/source/l/libgphoto2/libgphoto2.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2007-2008 Frank Caraballo <fecaraballo{at}gmail{dot}com>
-# Copyright 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2009, 2010, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -38,8 +38,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -72,9 +72,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# udev-175 bundles usb_id into the udevd binary
-zcat $CWD/fix-usb_id-callout-for-udev-175.diff.gz | patch -p1 || exit 1
-
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -112,16 +109,13 @@ LD_LIBRARY_PATH=$PKG/usr/lib${LIBDIRSUFFIX}
CAMLIBS=$PKG/usr/lib${LIBDIRSUFFIX}/$PKGNAM/$VERSION
LIBDIR=$PKG/usr/lib${LIBDIRSUFFIX}
export LD_LIBRARY_PATH CAMLIBS LIBDIR
-# Generate udev rules
+# Generate udev rules -- for udev <= 200
mkdir -p $PKG/lib/udev/rules.d
-$PKG/usr/bin/print-camera-list udev-rules version 136 mode 0660 owner root group plugdev \
+$PKG/usr/bin/print-camera-list udev-rules version 175 mode 0660 owner root group plugdev \
> $PKG/lib/udev/rules.d/40-libgphoto2.rules
-# Generate fdi files
-mkdir -p $PKG/usr/share/hal/fdi/information/20thirdparty
-$PKG/usr/bin/print-camera-list hal-fdi \
- > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi
-$PKG/usr/bin/print-camera-list hal-fdi-device \
- > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi
+# For udev >= 201
+mkdir -p $PKG/lib/udev/hwdb.d/
+$PKG/usr/bin/print-camera-list hwdb > $PKG/lib/udev/hwdb.d/20-gphoto.conf
unset LD_LIBRARY_PATH CAMLIBS LIBDIR # Unset these just in case
# Compress and link manpages, if any:
diff --git a/source/l/libgpod/libgpod.SlackBuild b/source/l/libgpod/libgpod.SlackBuild
index f40754951..7aec91fe9 100755
--- a/source/l/libgpod/libgpod.SlackBuild
+++ b/source/l/libgpod/libgpod.SlackBuild
@@ -23,12 +23,12 @@
PKGNAM=libgpod
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -78,7 +78,7 @@ CFLAGS="$SLKCFLAGS" \
--disable-static \
--without-hal \
--enable-udev \
- --with-temp-mount-dir=/var/run/libgpod/ \
+ --with-temp-mount-dir=/run/libgpod/ \
--build=$ARCH-slackware-linux
# Build and install:
diff --git a/source/l/libgsf/libgsf.SlackBuild b/source/l/libgsf/libgsf.SlackBuild
index fd96d36f6..94b6d1800 100755
--- a/source/l/libgsf/libgsf.SlackBuild
+++ b/source/l/libgsf/libgsf.SlackBuild
@@ -30,7 +30,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-libgsf
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -77,24 +77,20 @@ CFLAGS="$SLKCFLAGS" \
--with-html-dir=/usr/share/gtk-doc/html \
--mandir=/usr/man \
--disable-static \
+ --enable-introspection \
+ --with-bz2 \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# This is useless, describing a command that's not installed:
-rm -f $PKG/usr/man/man1/gsf-office-thumbnailer.1
-rmdir $PKG/usr/man/man1 2> /dev/null
-rmdir $PKG/usr/man 2> /dev/null
-
-# And this, more simple removal is about what libgsf deserves if it ignores
-# the --mandir option to configure, which is more than likely...
-rm -rf $PKG/usr/share/man
-
-# In the remote chance that any other man page was installed, and to the
+# In the remote chance that any man page was installed, and to the
# requested directory too, then let's gzip it. Probably send the error
# output from this one to /dev/null, because gzip won't find anything.
-gzip -9 $PKG/usr/man/man?/*.? 2> /dev/null
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/libical/libical.SlackBuild b/source/l/libical/libical.SlackBuild
index 6b4fce6ee..fa8185e70 100755
--- a/source/l/libical/libical.SlackBuild
+++ b/source/l/libical/libical.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2008 Heinz Wiesinger <pprkut@liwjatan.at>
-# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2013, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -50,8 +50,8 @@ else
do_java="en"
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -86,20 +86,16 @@ cmake \
-DMAN_INSTALL_DIR=/usr/man \
-DSYSCONF_INSTALL_DIR=/etc \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
- -DSTATIC_LIBRARY=false \
- -DGOBJECT_INTROSPECTION=true \
+ -DSHARED_ONLY:BOOL=true \
..
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
cd ..
-# We don't want to package the static libraries.
-# Too bad there's no option for that...
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/{libical.a,libicalss.a,libicalvcal.a}
-
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
AUTHORS COPYING* INSTALL LICENSE NEWS README* TEST THANKS TODO \
+ doc/{Adding,Using}* \
$PKG/usr/doc/$PKGNAM-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
diff --git a/source/l/libical/slack-desc b/source/l/libical/slack-desc
index 20ee79379..c5aa71e55 100644
--- a/source/l/libical/slack-desc
+++ b/source/l/libical/slack-desc
@@ -14,6 +14,6 @@ libical: 2447). It parses iCal components and provides C/C++/Python/Java APIs
libical: for manipulating the component properties, parameters, and
libical: subcomponents.
libical:
-libical: Homepage: http://sourceforge.net/projects/freeassociation/
+libical: Homepage: https://github.com/libical/libical
libical:
libical:
diff --git a/source/l/libidn/libidn.SlackBuild b/source/l/libidn/libidn.SlackBuild
index 905b3e485..e272f2602 100755
--- a/source/l/libidn/libidn.SlackBuild
+++ b/source/l/libidn/libidn.SlackBuild
@@ -23,7 +23,7 @@
PKGNAM=libidn
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/lesstif/lesstif.SlackBuild b/source/l/libimobiledevice/libimobiledevice.SlackBuild
index 70f888505..fe97d57d8 100755
--- a/source/l/lesstif/lesstif.SlackBuild
+++ b/source/l/libimobiledevice/libimobiledevice.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PKGNAM=lesstif
+PKGNAM=libimobiledevice
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
@@ -60,17 +60,7 @@ fi
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
-cd ${PKGNAM}-$VERSION || exit 1
-
-if [ "$ARCH" = "x86_64" ]; then
- zcat $CWD/lesstif.Makefile.in.patch.gz | patch -p1 --verbose || exit 1
- zcat $CWD/lesstif.PutPixel32.patch.gz | patch -p1 --verbose || exit 1
- zcat $CWD/lesstif.x86_64.patch.gz | patch -p1 --verbose || exit 1
-fi
-
-# Check for NULL w in RenderTable.c to prevent possible crashes in
-# "experimental" code path:
-zcat $CWD/lesstif.rendertable.check.diff.gz | patch -p1 --verbose || exit 1
+cd ${PKGNAM}-$VERSION
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -80,56 +70,24 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Configure:
CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc/X11 \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
--mandir=/usr/man \
- --enable-shared \
- --enable-static \
- --enable-build-21 \
- --enable-build-Xlt \
- --enable-build-Xbae \
- --enable-xbae-24bit \
- --enable-xbae-row-heights \
- --disable-debug \
- --build=$ARCH-slackware-linux
-
-# Build and install:
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
# Strip binaries:
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-# Move LessTif's Imake files into place:
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/X11
-mv $PKG/usr/lib${LIBDIRSUFFIX}/LessTif/config $PKG/usr/lib${LIBDIRSUFFIX}/X11
-rmdir $PKG/usr/lib${LIBDIRSUFFIX}/LessTif
-
-# Fix misplaced items:
-( cd $PKG/usr/LessTif
- mv * doc
- mkdir $PKG/usr/doc
- mv doc $PKG/usr/doc/lesstif-${VERSION}
-)
-
-# If there's a ChangeLog, installing at least part of the recent history
-# is useful, but don't let it get totally out of control:
-if [ -r ChangeLog ]; then
- DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
- cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
- touch -r ChangeLog $DOCSDIR/ChangeLog
-fi
-
-rmdir $PKG/usr/LessTif
-mkdir -p $PKG/etc/X11
-mv $PKG/usr/lib${LIBDIRSUFFIX}/X11/app-defaults $PKG/etc/X11
-mv $PKG/usr/lib${LIBDIRSUFFIX}/X11/mwm $PKG/etc/X11
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/X11 ; ln -sf ../../../etc/X11/mwm . )
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
@@ -140,15 +98,27 @@ if [ -d $PKG/usr/man ]; then
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
- gzip -9 *.*
+ gzip -9 *.?
)
done
)
fi
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# Add some docs:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
mkdir -p $PKG/install
-zcat $CWD/doinst.sh.gz | sed -e "s#lib/#lib${LIBDIRSUFFIX}/#g" \
- > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
diff --git a/source/l/gnome-icon-theme/slack-desc b/source/l/libimobiledevice/slack-desc
index 0ebf69c21..eecc8e531 100644
--- a/source/l/gnome-icon-theme/slack-desc
+++ b/source/l/libimobiledevice/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-gnome-icon-theme: gnome-icon-theme (default icons used by GTK+)
-gnome-icon-theme:
-gnome-icon-theme: A set of default icons used by many GTK+ applications.
-gnome-icon-theme:
-gnome-icon-theme:
-gnome-icon-theme:
-gnome-icon-theme:
-gnome-icon-theme:
-gnome-icon-theme:
-gnome-icon-theme:
-gnome-icon-theme:
+libimobiledevice: libimobiledevice (iOS device communication library)
+libimobiledevice:
+libimobiledevice: A library to communicate with services of Apple iOS devices using native
+libimobiledevice: protocols.
+libimobiledevice:
+libimobiledevice: The libimobiledevice homepage: http://www.libimobiledevice.org/
+libimobiledevice:
+libimobiledevice:
+libimobiledevice:
+libimobiledevice:
+libimobiledevice:
diff --git a/source/l/libiodbc/libiodbc.SlackBuild b/source/l/libiodbc/libiodbc.SlackBuild
index 4ea1f6f54..c752d13ee 100755
--- a/source/l/libiodbc/libiodbc.SlackBuild
+++ b/source/l/libiodbc/libiodbc.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2009, 2010 Eric Hameleers, Eindhoven, NL
-# Copyright 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
# Redistribution and use of this script, with or without modification, is
@@ -22,14 +22,15 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=3.52.7
+PKGNAM=libiodbc
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-libiodbc
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -85,6 +86,9 @@ CFLAGS="$SLKCFLAGS" \
--program-suffix= \
--build=$ARCH-slackware-linux
+# Disable rpath:
+zcat $CWD/libiodbc.disable.rpath.diff.gz | patch -p1 --verbose || exit 1
+
# Build and install:
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/libiodbc/libiodbc.disable.rpath.diff b/source/l/libiodbc/libiodbc.disable.rpath.diff
new file mode 100644
index 000000000..a5f9701db
--- /dev/null
+++ b/source/l/libiodbc/libiodbc.disable.rpath.diff
@@ -0,0 +1,11 @@
+--- ./libtool.orig 2013-12-11 17:33:25.828622889 -0600
++++ ./libtool 2013-12-11 17:39:28.910619029 -0600
+@@ -363,7 +363,7 @@
+
+ # Flag to hardcode $libdir into a binary during linking.
+ # This must work even if $libdir does not exist
+-hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
++hardcode_libdir_flag_spec=""
+
+ # If ld is used when linking, flag to hardcode $libdir into a binary
+ # during linking. This must work even if $libdir does not exist.
diff --git a/source/l/libiodbc/slack-desc b/source/l/libiodbc/slack-desc
index 6844c9274..cb23cc923 100644
--- a/source/l/libiodbc/slack-desc
+++ b/source/l/libiodbc/slack-desc
@@ -15,5 +15,5 @@ libiodbc: that are language, platform and database independent.
libiodbc:
libiodbc:
libiodbc:
-libiodbc: Homepage: http://iodbc.org/
+libiodbc: Homepage: http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/
libiodbc:
diff --git a/source/l/libjpeg-turbo/libjpeg-turbo.SlackBuild b/source/l/libjpeg-turbo/libjpeg-turbo.SlackBuild
new file mode 100755
index 000000000..041e88544
--- /dev/null
+++ b/source/l/libjpeg-turbo/libjpeg-turbo.SlackBuild
@@ -0,0 +1,143 @@
+#!/bin/sh
+
+# Copyright 2015, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=libjpeg-turbo
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --includedir=/usr/include \
+ --mandir=/usr/man \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG docdir=/usr/doc/$PKGNAM-$VERSION || exit 1
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ BUILDING.md ChangeLog.md LICENSE.md README* \
+ example.c libjpeg.txt structure.txt usage.txt wizard.txt \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/*
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog.md ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog.md | head -n 1000 > $DOCSDIR/ChangeLog.md
+ touch -r ChangeLog.md $DOCSDIR/ChangeLog.md
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/libjpeg-turbo/slack-desc b/source/l/libjpeg-turbo/slack-desc
new file mode 100644
index 000000000..fa2cfc02c
--- /dev/null
+++ b/source/l/libjpeg-turbo/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+libjpeg-turbo: libjpeg-turbo (high-speed version of libjpeg)
+libjpeg-turbo:
+libjpeg-turbo: libjpeg-turbo is a high-speed version of libjpeg for x86 and
+libjpeg-turbo: x86-64 processors which uses SIMD instructions (MMX, SSE2, etc.)
+libjpeg-turbo: to accelerate baseline JPEG compression and decompression.
+libjpeg-turbo: libjpeg-turbo is generally 2-4x as fast as the unmodified
+libjpeg-turbo: version of libjpeg, all else being equal.
+libjpeg-turbo:
+libjpeg-turbo:
+libjpeg-turbo: libjpeg-turbo home: http://libjpeg-turbo.virtualgl.org
+libjpeg-turbo:
diff --git a/source/l/libjpeg/slack-desc b/source/l/libjpeg/slack-desc
deleted file mode 100644
index d1add7fdf..000000000
--- a/source/l/libjpeg/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-libjpeg: libjpeg (Independent JPEG Group's JPEG software)
-libjpeg:
-libjpeg: Software to implement JPEG image compression and decompression. JPEG
-libjpeg: (pronounced 'jay-peg') is a standardized compression method for
-libjpeg: full-color and gray-scale images. JPEG is intended for compressing
-libjpeg: 'real-world' scenes; cartoons and other non-realistic images are not
-libjpeg: its strong suit. JPEG is lossy, however, on typical images of
-libjpeg: real-world scenes, very good compression levels can be obtained with
-libjpeg: no visible change, and amazingly high compression levels are possible
-libjpeg: if you can tolerate a low-quality image.
-libjpeg:
diff --git a/source/l/liblastfm/liblastfm.SlackBuild b/source/l/liblastfm/liblastfm.SlackBuild
index 12da473e7..0d99011c0 100755
--- a/source/l/liblastfm/liblastfm.SlackBuild
+++ b/source/l/liblastfm/liblastfm.SlackBuild
@@ -65,7 +65,8 @@ CXXFLAGS="$SLKCFLAGS" \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR="lib${LIBDIRSUFFIX}" \
- -DBUILD_FINGERPRINT="ON"
+ -DBUILD_FINGERPRINT="ON" \
+ -DBUILD_WITH_QT4="ON"
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/liblastfm/slack-desc b/source/l/liblastfm/slack-desc
index a046a2a9f..0ae83a1ae 100644
--- a/source/l/liblastfm/slack-desc
+++ b/source/l/liblastfm/slack-desc
@@ -5,15 +5,15 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler-----------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
liblastfm: liblastfm (last fm library)
-liblastfm:
+liblastfm:
liblastfm: The last.fm audio scrobbling service library.
-liblastfm:
-liblastfm:
-liblastfm:
-liblastfm:
-liblastfm:
-liblastfm:
-liblastfm:
-liblastfm:
+liblastfm:
+liblastfm:
+liblastfm:
+liblastfm:
+liblastfm:
+liblastfm:
+liblastfm:
+liblastfm:
diff --git a/source/l/libmng/libmng.SlackBuild b/source/l/libmng/libmng.SlackBuild
index a40b0cf15..61fc3db03 100755
--- a/source/l/libmng/libmng.SlackBuild
+++ b/source/l/libmng/libmng.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,13 +22,13 @@
PKGNAM=libmng
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ mkdir -p $TMP $PKG
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -59,7 +59,7 @@ fi
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
cd ${PKGNAM}-$VERSION
# Make sure ownerships and permissions are sane:
@@ -71,8 +71,6 @@ find . \
-exec chmod 644 {} \;
# Configure:
-cat unmaintained/autogen.sh | tr -d \\r > autogen.sh
-sh ./autogen.sh
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/source/l/libmpc/libmpc.SlackBuild b/source/l/libmpc/libmpc.SlackBuild
index c6674125f..e1e2ff8da 100755
--- a/source/l/libmpc/libmpc.SlackBuild
+++ b/source/l/libmpc/libmpc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@
SRCNAM=mpc
PKGNAM=libmpc
VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libmtp/libmtp.SlackBuild b/source/l/libmtp/libmtp.SlackBuild
index 4783b6765..6bf90b462 100755
--- a/source/l/libmtp/libmtp.SlackBuild
+++ b/source/l/libmtp/libmtp.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -77,6 +77,7 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--docdir=/usr/doc/${PKGNAM}-$VERSION \
+ --with-udev=/lib/udev \
--disable-static \
--build=$ARCH-slackware-linux
@@ -84,14 +85,6 @@ CFLAGS="$SLKCFLAGS" \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Commented out, since the rules are added by the Makefile, and since
-# there's no longer any match for MODE=
-#
-## Add udev rules:
-#mkdir -p $PKG/lib/udev/rules.d
-#sed -e 's/MODE="666"/GROUP="audio", MODE="0660"/' libmtp.rules \
-# > $PKG/lib/udev/rules.d/90-libmtp.rules
-
# Guess someone didn't have enough to drink:
( cd $PKG/usr/bin
rm -f mtp-sendtr mtp-sendfile mtp-newfolder mtp-getfile mtp-delfile
@@ -133,6 +126,8 @@ mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
AUTHORS COPYING ChangeLog INSTALL README* TODO \
$PKG/usr/doc/${PKGNAM}-$VERSION
+rm -rf $PKG/usr/share/doc
+rmdir $PKG/usr/share 2> /dev/null
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
diff --git a/source/l/libnih/libnih.SlackBuild b/source/l/libnih/libnih.SlackBuild
new file mode 100755
index 000000000..b30114304
--- /dev/null
+++ b/source/l/libnih/libnih.SlackBuild
@@ -0,0 +1,143 @@
+#!/bin/sh
+
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Modified by Matteo Bernardini <ponce@slackbuilds.org> (2014)
+
+PKGNAM=libnih
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d -)}
+BUILD=${BUILD:-2}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Change hardcoded lib to lib${LIBDIRSUFFIX}:
+sed -i 's,$(prefix)/lib,$(libdir),g' nih*/Makefile.am
+
+# Write .pid files in /run, not /var/run, since /var may be unavailable or
+# not yet writable early in the boot process.
+sed -i 's,/var/run,/run,g' nih/main.c
+
+autoreconf -fi
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --infodir=/usr/info \
+ --disable-static \
+ --disable-rpath \
+ --build=$ARCH-slackware-linux || exit 1
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Remove .la files:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS CONTRIBUTING COPYING* INSTALL MAINTAINERS NEWS README* TODO tests \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libelf/slack-desc b/source/l/libnih/slack-desc
index b74bc4055..d0535e658 100644
--- a/source/l/libelf/slack-desc
+++ b/source/l/libnih/slack-desc
@@ -6,14 +6,16 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-libelf: libelf (ELF object file access library)
-libelf:
-libelf: Libelf lets you read, modify or create ELF files in an architecture
-libelf: independent way. The library takes care of size and endian issues,
-libelf: so for example you can process a file for SPARC processors on an
-libelf: Intel based system. GCC uses libelf for LTO (Link Time Optimization).
-libelf:
-libelf: Project home: http://www.mr511.de/software/
-libelf:
-libelf:
-libelf:
+libnih: libnih (lightweight library of C functions)
+libnih:
+libnih: libnih is a lightweight "standard library" of C functions to ease the
+libnih: development of other libraries and applications.
+libnih:
+libnih: libnih was written by Scott James Remnant <scott@netsplit.com>.
+libnih:
+libnih: Homepage: https://github.com/keybuk/libnih
+libnih:
+libnih:
+libnih:
+libnih:
+libnih:
diff --git a/source/l/libnl3/libnl3.SlackBuild b/source/l/libnl3/libnl3.SlackBuild
index e8c7ddf64..7d18a85f6 100755
--- a/source/l/libnl3/libnl3.SlackBuild
+++ b/source/l/libnl3/libnl3.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for libnl3
-# Copyright 2012, 2013 Robby Workman, Northport, Alabama, USA
+# Copyright 2012-2015 Robby Workman, Tuscaloosa, Alabama, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/libnl3/slack-desc b/source/l/libnl3/slack-desc
index 75af03bf3..3c8ae63fd 100644
--- a/source/l/libnl3/slack-desc
+++ b/source/l/libnl3/slack-desc
@@ -9,11 +9,11 @@
libnl3: libnl3 (Netlink Protocol Library Suite version 3)
libnl3:
libnl3: The libnl suite is a collection of libraries providing APIs to
-libnl3: netlink protocol based Linux kernel interfaces.
-libnl3: Netlink is a IPC mechanism primarily between the kernel and user
-libnl3: space processes. It was designed to be a more flexible successor
-libnl3: to ioctl to provide mainly networking related kernel configuration
-libnl3: and monitoring interfaces.
+libnl3: netlink protocol based Linux kernel interfaces. Netlink is a IPC
+libnl3: mechanism primarily between the kernel and user space processes.
+libnl3: It was designed to be a more flexible successor to ioctl to provide
+libnl3: mainly networking related kernel configuration and monitoring
+libnl3: interfaces.
libnl3:
-libnl3: Homepage: http://www.infradead.org/~tgr/libnl/
+libnl3: Homepage: https://github.com/thom311/libnl
libnl3:
diff --git a/source/l/libnotify/libnotify.SlackBuild b/source/l/libnotify/libnotify.SlackBuild
index ffc249b3e..f770dc085 100755
--- a/source/l/libnotify/libnotify.SlackBuild
+++ b/source/l/libnotify/libnotify.SlackBuild
@@ -24,7 +24,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=libnotify
-VERSION=0.7.5
+VERSION=0.7.6
BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
diff --git a/source/l/libnotify/slack-desc b/source/l/libnotify/slack-desc
index 4a46ad9a3..c8684b1a4 100644
--- a/source/l/libnotify/slack-desc
+++ b/source/l/libnotify/slack-desc
@@ -10,7 +10,7 @@ libnotify: libnotify (notification library)
libnotify:
libnotify: A general library for event notification
libnotify:
-libnotify: Homepage: http://www.galago-project.org/news/index.php
+libnotify: Homepage: https://developer.gnome.org/libnotify
libnotify:
libnotify:
libnotify:
diff --git a/source/l/libodfgen/libodfgen.SlackBuild b/source/l/libodfgen/libodfgen.SlackBuild
new file mode 100755
index 000000000..02d0b3987
--- /dev/null
+++ b/source/l/libodfgen/libodfgen.SlackBuild
@@ -0,0 +1,125 @@
+#!/bin/sh
+
+# Copyright 2015 Eric Hameleers, Eindhoven, NL
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=libodfgen
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --disable-tests \
+ --build=$TARGET
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+# mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* ChangeLog NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/qca-gnupg/slack-desc b/source/l/libodfgen/slack-desc
index 556ea6242..63ca5fe5d 100644
--- a/source/l/qca-gnupg/slack-desc
+++ b/source/l/libodfgen/slack-desc
@@ -5,15 +5,15 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler--------------------------------------------------|
-qca-gnupg: qca-gnupg (GnuPG plugin for QCA)
-qca-gnupg:
-qca-gnupg: This plugin provides features based on GnuPG.
-qca-gnupg:
-qca-gnupg:
-qca-gnupg:
-qca-gnupg:
-qca-gnupg:
-qca-gnupg:
-qca-gnupg:
-qca-gnupg:
+ |-----handy-ruler------------------------------------------------------|
+libodfgen: libodfgen (Library for generating documents in Open Document Format)
+libodfgen:
+libodfgen: ilibodfgen is an ODF export library for projects using librevenge.
+libodfgen:
+libodfgen:
+libodfgen:
+libodfgen:
+libodfgen:
+libodfgen:
+libodfgen: Homepage: http://sourceforge.net/p/libwpd/wiki/libodfgen/
+libodfgen:
diff --git a/source/l/libogg/libogg.SlackBuild b/source/l/libogg/libogg.SlackBuild
index 01e7b4944..9b2ebefed 100755
--- a/source/l/libogg/libogg.SlackBuild
+++ b/source/l/libogg/libogg.SlackBuild
@@ -73,6 +73,7 @@ CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
+ --docdir=/usr/doc/libogg-$VERSION \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
@@ -81,7 +82,6 @@ make install DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-mv $PKG/usr/share/doc $PKG/usr
cp -a \
AUTHORS CHANGES COPYING README \
$PKG/usr/doc/libogg-$VERSION
diff --git a/source/l/libpcap/libpcap.SlackBuild b/source/l/libpcap/libpcap.SlackBuild
index f886ee3c3..bd44a36b8 100755
--- a/source/l/libpcap/libpcap.SlackBuild
+++ b/source/l/libpcap/libpcap.SlackBuild
@@ -27,7 +27,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
diff --git a/source/l/libplist/libplist.SlackBuild b/source/l/libplist/libplist.SlackBuild
index 547bdab92..b04ddb73c 100755
--- a/source/l/libplist/libplist.SlackBuild
+++ b/source/l/libplist/libplist.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2011, 2014 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -57,6 +57,16 @@ else
LIBDIRSUFFIX=""
fi
+if ls /var/log/packages/libplist-* 1> /dev/null 2> /dev/null ; then
+ echo "libplist is installed. The package should be removed before"
+ echo "building, or the new python modules might be linked to the"
+ echo "old library version. This is normally only a problem if the"
+ echo "major library version gets bumped, but still. :)"
+ echo
+ echo "You'll be given a short time to consider this."
+ sleep 15
+fi
+
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
@@ -70,19 +80,20 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-mkdir -p build
-cd build
- cmake \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib${LIBDIRSUFFIX} \
- -DLIB_SUFFIX=${LIBDIRSUFFIX} \
- -DCMAKE_INSTALL_PREFIX=/usr \
- ..
- make $NUMJOBS || make || exit 1
- make install DESTDIR=$PKG || exit 1
-cd -
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --mandir=/usr/man \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" \
@@ -114,7 +125,7 @@ fi
# Add some docs:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS COPYING* README* \
+ AUTHORS COPYING* NEWS README* \
$PKG/usr/doc/${PKGNAM}-$VERSION
mkdir -p $PKG/install
diff --git a/source/l/libpng/libpng.SlackBuild b/source/l/libpng/libpng.SlackBuild
index d338e5c64..91bc3a188 100755
--- a/source/l/libpng/libpng.SlackBuild
+++ b/source/l/libpng/libpng.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,38 +21,61 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION_OLD=1.2.50
-VERSION_NEW=1.4.12
+PKGNAM=libpng
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) ARCH=$(uname -m) ;;
esac
+ export ARCH
fi
-if [ "$ARCH" = "x86_64" ]; then
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
else
+ SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-libpng
-rm -rf $PKG
-mkdir -p $TMP $PKG/usr
+PKG=$TMP/package-$PKGNAM
-build_source() {
+rm -rf $PKG
+mkdir -p $TMP $PKG
cd $TMP
-rm -rf libpng-$VERSION
-tar xvf $CWD/libpng-$VERSION.tar.?z* || exit 1
-cd libpng-$VERSION
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -60,75 +83,60 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Look like using ./configure is the only way that works now...
-./configure --prefix=/usr \
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man
-
-make -j4 prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} ZLIBLIB="-L/usr/lib${LIBDIRSUFFIX} -lm -lz" || exit 1
-make install prefix=/usr LIBPATH=/usr/lib${LIBDIRSUFFIX} ZLIBLIB="-L/usr/lib${LIBDIRSUFFIX} -lm -lz" DESTDIR=$PKG
-
-# I'm ditching this to see if anyone cares.
-#
-## This symlink is needed to keep old applications running:
-## I guess the real lib used the major number 3, then 0 for
-## a short while, and now .3 again. Hopefully it will stay
-## this way as it was .3 in Slackware 10.2. One can hope.
-#( cd $PKG/usr/lib${LIBDIRSUFFIX}
-# if [ ! -e libpng.so.0 -a -e libpng.so.3 ]; then
-# ln -sf libpng.so.3 libpng.so.0
-# fi
-#)
-
-# Well, glad I got rid of the above, but <someone> upstream still does not
-# grok shared libraries on Linux it seems -- libpng-1.4.0 caused all the
-# newly compiled binaries to want libpng.so.14, and now libpng-1.4.1
-# wants to change that to libpng14.so.14. Searching online finds that
-# we are not the only ones with binaries that want libpng.so.14, so we
-# are forced to provide a compatibility symlink again... :-/
-#
-# We'll try to remove this in 5 to 10 years, just like before.
-( cd $PKG/usr/lib${LIBDIRSUFFIX}
- if [ ! -e libpng.so.14 -a -e libpng14.so.14 ]; then
- ln -sf libpng14.so.14 libpng.so.14
- fi
+ --includedir=/usr/include \
+ --mandir=/usr/man \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-gzip -9 --force $PKG/usr/man/man?/*.?
-
-mkdir -p $PKG/usr/doc/libpng-$VERSION
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
ANNOUNCE CHANGES INSTALL KNOWNBUG LICENSE README TODO Y2KINFO \
libpng*.txt example.c \
- $PKG/usr/doc/libpng-$VERSION
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
-if [ -r ChangeLog ]; then
- DOCSDIR=$(echo $PKG/usr/doc/libpng-$VERSION)
- cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
- touch -r ChangeLog $DOCSDIR/ChangeLog
+if [ -r CHANGES ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES
+ touch -r CHANGES $DOCSDIR/CHANGES
fi
-}
-
-# Build the 1.2 version:
-VERSION=$VERSION_OLD
-build_source
-
-# Build the 1.4 version:
-VERSION=$VERSION_NEW
-build_source
-
-# Default the includes to version 1.4.x:
-( cd $PKG/usr/include ; ln -sf libpng14 libpng )
-
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/libpng-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libproxy/libproxy.SlackBuild b/source/l/libproxy/libproxy.SlackBuild
index 0c2a18cc5..4a760df7c 100755
--- a/source/l/libproxy/libproxy.SlackBuild
+++ b/source/l/libproxy/libproxy.SlackBuild
@@ -23,11 +23,11 @@
PKGNAM=libproxy
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -39,8 +39,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -66,6 +66,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# See https://github.com/maxinbjohn/libproxy/issues/197 for information about "-DWITH_KDE4=OFF"
+
cmake . \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
@@ -73,6 +75,7 @@ cmake . \
-DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
-DMODULE_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX}/libproxy/${VERSION}/modules \
+ -DWITH_KDE4=OFF \
-DPERL_VENDORINSTALL=yes || exit 1
make $NUMJOBS || make || exit 1
diff --git a/source/l/libraw1394/README b/source/l/libraw1394/README
deleted file mode 100644
index 6f09d29a4..000000000
--- a/source/l/libraw1394/README
+++ /dev/null
@@ -1,3 +0,0 @@
-libraw1394 provides direct access to the IEEE 1394 bus through
-the Linux 1394 subsystem's raw1394 user space interface.
-You will need to load the raw1394 module to use the resulting package.
diff --git a/source/l/libraw1394/libraw1394-2.0.7.tar.sign b/source/l/libraw1394/libraw1394-2.0.7.tar.sign
deleted file mode 100644
index 2a6626e02..000000000
--- a/source/l/libraw1394/libraw1394-2.0.7.tar.sign
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: See http://www.kernel.org/signature.html for info
-
-iD8DBQBNdoQ3yGugalF9Dw4RApqmAJ9f0hAzpDhGT3/1c3w14Dz1y50OKgCgjIxl
-n60zSQuslerWn+OzenEHYvQ=
-=r/g1
------END PGP SIGNATURE-----
diff --git a/source/l/libraw1394/libraw1394-2.1.1.tar.sign b/source/l/libraw1394/libraw1394-2.1.1.tar.sign
new file mode 100644
index 000000000..8a3b96b37
--- /dev/null
+++ b/source/l/libraw1394/libraw1394-2.1.1.tar.sign
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2
+
+iQIcBAABAgAGBQJVP/7BAAoJEHnzb7JUXXnQxS8P/iQ4DJ0tpClDNLvWaLuvR1g7
+w38hqQm6l1jO7Mvy0OdIY047kwkWOK4G2a+Fb6r3KRyyRvUD5eJNaJypjEJHvDVV
+CAP9nJ/eZXnUwrWyZcoet3JyzD3K5bG415zzU/lE8c6jB0xEfxhrBN/CwipI8p4X
+Z74t3cE7Sns9FdDBer038W1LKaRyK7PvU2qsGQjol50gOfjYmD7dpbzfPrbfoX0Q
+EuttAu6VUGLtLMTITsA5dND5PjA0Eazc6CdLaQKJy9+6K0xV/Tnt7EVL1T+by+Y6
+rzfrQ0JUWOJ5R1dO9poxXcVtL5pJleQ1gwlXSg4Z2UlKRCq4vBRnFoclMrVzIgvt
+eYLcEJgiwPDIUtMdspwGhyifsMktzuGAhqG1arEJE5i4++ZFdhPx3D1A2AubN5Ok
+E1CcmrNp76rEqbTGTOxncn/QMgcZ7SMhku5THY+VBYfKkHRpBBn9pEg2VtTfsRSQ
+1Eou/Xvsu/p3YvB8Eq2bUImS4mqfFIvMVM1shBCfGErd76T/QcVuuGko0M1+CaHB
+BP24/JZy347G814z5Ba6Svxd0++vatxZLNDW9FWiOuETQSEgyM9iYDSYRfEjxfSy
+vw1rtQ251P85govvwXG3Fe+1qEgVadZDTTI+BvbHlJs9mRYzficxbbuUEGNHqxfi
+O8kMr9ajegZYJ44plGxo
+=xvJk
+-----END PGP SIGNATURE-----
diff --git a/source/l/libraw1394/libraw1394.SlackBuild b/source/l/libraw1394/libraw1394.SlackBuild
index e7e3feb68..47f684d19 100755
--- a/source/l/libraw1394/libraw1394.SlackBuild
+++ b/source/l/libraw1394/libraw1394.SlackBuild
@@ -30,7 +30,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -39,8 +39,8 @@ fi
NUMJOBS=${NUMJOBS:--j7}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -56,7 +56,7 @@ fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-libraw1394
-rm -rf $PKG
+rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
@@ -89,7 +89,7 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
( cd $PKG/usr/man
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
-)
+)
mkdir -p $PKG/usr/doc/libraw1394-$VERSION
cp -a \
diff --git a/source/l/libraw1394/slack-desc b/source/l/libraw1394/slack-desc
index d8f96d0b4..d1c7aa0d7 100644
--- a/source/l/libraw1394/slack-desc
+++ b/source/l/libraw1394/slack-desc
@@ -5,7 +5,7 @@
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
- |-----handy-ruler-------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
libraw1394: libraw1394 (user space IEEE 1394 driver)
libraw1394:
libraw1394: libraw1394 provides direct access to the IEEE 1394 bus through
diff --git a/source/l/librevenge/librevenge.SlackBuild b/source/l/librevenge/librevenge.SlackBuild
new file mode 100755
index 000000000..dc584e887
--- /dev/null
+++ b/source/l/librevenge/librevenge.SlackBuild
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+# Copyright 2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2014 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=${VERSION:-$(echo librevenge-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-librevenge
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf librevenge-$VERSION
+tar xvf $CWD/librevenge-$VERSION.tar.?z* || exit 1
+cd librevenge-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/librevenge-$VERSION \
+ --disable-static \
+ --disable-tests \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+# mkdir -p $PKG/usr/doc/librevenge-$VERSION
+cp -a \
+ AUTHORS ChangeLog COPYING* HACKING INSTALL NEWS README \
+ $PKG/usr/doc/librevenge-$VERSION
+# Don't package development documentation
+rm -rf $PKG/usr/doc/librevenge-$VERSION/html
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/librevenge-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/librevenge/slack-desc b/source/l/librevenge/slack-desc
new file mode 100644
index 000000000..78ba5d345
--- /dev/null
+++ b/source/l/librevenge/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+librevenge: librevenge (Library for REVerse ENGineered formats filters)
+librevenge:
+librevenge: librevenge is a base library for writing document import filters.
+librevenge: It has interfaces for text documents, vector graphics, spreadsheets,
+librevenge: and presentations.
+librevenge:
+librevenge: Homepage: http://sourceforge.net/p/libwpd/wiki/librevenge/
+librevenge:
+librevenge:
+librevenge:
+librevenge:
diff --git a/source/l/librsvg/librsvg.SlackBuild b/source/l/librsvg/librsvg.SlackBuild
index 90d995a85..a01f69191 100755
--- a/source/l/librsvg/librsvg.SlackBuild
+++ b/source/l/librsvg/librsvg.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2016 Patrick Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -77,7 +77,7 @@ CFLAGS="$SLKCFLAGS" \
--localstatedir=/var/lib \
--mandir=/usr/man \
--enable-static=no \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
diff --git a/source/l/libsecret/libsecret.SlackBuild b/source/l/libsecret/libsecret.SlackBuild
index d4ec6d663..ff9483685 100755
--- a/source/l/libsecret/libsecret.SlackBuild
+++ b/source/l/libsecret/libsecret.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -75,6 +75,7 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
+ --disable-static \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--build=$ARCH-slackware-linux || exit 1
diff --git a/source/l/libsigc++/libsigc++.SlackBuild b/source/l/libsigc++/libsigc++.SlackBuild
new file mode 100755
index 000000000..ebe68f3f1
--- /dev/null
+++ b/source/l/libsigc++/libsigc++.SlackBuild
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=libsigc++
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -std=c++11" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS libdocdir=/usr/doc/$PKGNAM-$VERSION || make libdocdir=/usr/doc/$PKGNAM-$VERSION || exit 1
+make install libdocdir=/usr/doc/$PKGNAM-$VERSION DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cp -a \
+ AUTHORS COPYING* INSTALL NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+# Remove images, API docs, and useless html file
+rm -rf $PKG/usr/doc/$PKGNAM-$VERSION/{images,reference,index.html}
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libsigc++/slack-desc b/source/l/libsigc++/slack-desc
new file mode 100644
index 000000000..a1df82627
--- /dev/null
+++ b/source/l/libsigc++/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libsigc++: libsigc++ (typesafe callback system for standard C++)
+libsigc++:
+libsigc++: libsigc++ implements a typesafe callback system for standard C++.
+libsigc++: It allows you to define signals and to connect those signals to any
+libsigc++: callback function, either global or a member function, regardless
+libsigc++: of whether it is static or virtual.
+libsigc++: It also contains adaptor classes for connection of dissimilar
+libsigc++: callbacks and has an ease of use unmatched by other C++ callback
+libsigc++: libraries. Libsigc++ is licensed under the GNU Library General
+libsigc++: Public License, LGPL.
+libsigc++:
diff --git a/source/l/libjpeg/libjpeg.SlackBuild b/source/l/libsigsegv/libsigsegv.SlackBuild
index a5d3783c7..a329ae013 100755
--- a/source/l/libjpeg/libjpeg.SlackBuild
+++ b/source/l/libsigsegv/libsigsegv.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-v8a}
+PKGNAM=libsigsegv
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -34,11 +37,11 @@ if [ -z "$ARCH" ]; then
esac
fi
-NUMJOBS=${NUMJOBS:-" -j7 "}
-
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-libjpeg
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
@@ -54,14 +57,12 @@ else
LIBDIRSUFFIX=""
fi
-rm -rf $PKG
-mkdir -p $TMP $PKG
-
cd $TMP
-rm -rf jpeg-$(echo $VERSION | cut -f 2 -d v)
-tar xvf $CWD/jpegsrc.${VERSION}.tar.?z* || exit 1
-cd jpeg-$(echo $VERSION | cut -f 2 -d v)
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
+cd ${PKGNAM}-$VERSION
+# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -69,19 +70,25 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-export CFLAGS="$SLKCFLAGS"
+# Configure:
+CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
--mandir=/usr/man \
- --libdir=/usr/lib${LIBDIRSUFFIX}
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG
+ --program-prefix= \
+ --program-suffix= \
+ --enable-shared \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make $NUMJOBS || exit 1
+make install DESTDIR=$PKG || exit 1
# Strip binaries:
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-)
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
@@ -92,19 +99,21 @@ if [ -d $PKG/usr/man ]; then
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
- gzip -9 *.?
+ gzip -9 *.*
)
done
)
fi
-mkdir -p $PKG/usr/doc/libjpeg-$VERSION
-cp -a README $PKG/usr/doc/libjpeg-$VERSION
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog INSTALL NEWS PORTING README README.woe32 \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
-# Build the package:
cd $PKG
-makepkg -c y -l y $TMP/libjpeg-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libsigsegv/slack-desc b/source/l/libsigsegv/slack-desc
new file mode 100644
index 000000000..dcd40164f
--- /dev/null
+++ b/source/l/libsigsegv/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+libsigsegv: GNU libsigsegv (user mode page fault handling library)
+libsigsegv:
+libsigsegv: This is a library for handling page faults in user mode. A page fault
+libsigsegv: occurs when a program tries to access to a region of memory that is
+libsigsegv: currently not available. Catching and handling a page fault is a
+libsigsegv: useful technique for implementing things such as pageable virtual
+libsigsegv: memory, memory-mapped access to persistent databases, generational
+libsigsegv: garbage collectors, stack overflow handlers, distributed shared
+libsigsegv: memory, and more.
+libsigsegv:
+libsigsegv:
diff --git a/source/l/libsndfile/libsndfile.SlackBuild b/source/l/libsndfile/libsndfile.SlackBuild
index f06ff3b69..3c0c42bbf 100755
--- a/source/l/libsndfile/libsndfile.SlackBuild
+++ b/source/l/libsndfile/libsndfile.SlackBuild
@@ -30,7 +30,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -43,6 +43,9 @@ PKG=$TMP/package-$PKGNAM
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
diff --git a/source/l/libsoup/libsoup.SlackBuild b/source/l/libsoup/libsoup.SlackBuild
index 8c7c7cad3..0ea205a8d 100755
--- a/source/l/libsoup/libsoup.SlackBuild
+++ b/source/l/libsoup/libsoup.SlackBuild
@@ -24,11 +24,11 @@
PKGNAM=libsoup
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -40,8 +40,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -71,6 +71,7 @@ CFLAGS="$SLKCFLAGS" \
--localstatedir=/var/lib \
--disable-static \
--with-gnome \
+ --enable-vala=no \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
diff --git a/source/l/libssh/libssh.SlackBuild b/source/l/libssh/libssh.SlackBuild
index 38a732727..cdfcdaddf 100755
--- a/source/l/libssh/libssh.SlackBuild
+++ b/source/l/libssh/libssh.SlackBuild
@@ -32,7 +32,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -40,8 +40,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -68,9 +68,6 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
cd ${PKGNAM}-$VERSION || exit 1
-# These fail to build and are not packaged anyway:
-zcat $CWD/libssh.no.example.build.diff.gz | patch -p1 --verbose || exit 1
-
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/l/libssh/libssh.no.example.build.diff b/source/l/libssh/libssh.no.example.build.diff
deleted file mode 100644
index e7f502517..000000000
--- a/source/l/libssh/libssh.no.example.build.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./CMakeLists.txt.orig 2013-01-22 04:51:59.000000000 -0600
-+++ ./CMakeLists.txt 2013-03-28 18:56:18.490047174 -0500
-@@ -89,8 +89,6 @@
- pkgconfig
- )
-
--add_subdirectory(examples)
--
- if (WITH_TESTING)
- find_package(CMockery REQUIRED)
- include(AddCMockeryTest)
diff --git a/source/l/libssh2/libssh2.SlackBuild b/source/l/libssh2/libssh2.SlackBuild
new file mode 100755
index 000000000..970bec964
--- /dev/null
+++ b/source/l/libssh2/libssh2.SlackBuild
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=libssh2
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.gz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.gz || exit 1
+cd $PKGNAM-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --enable-static=no
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Remove .la file:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ COPYING* NEWS* README* REL* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog file, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/qca-cyrus-sasl/slack-desc b/source/l/libssh2/slack-desc
index 55bf91d2c..86a4a7256 100644
--- a/source/l/qca-cyrus-sasl/slack-desc
+++ b/source/l/libssh2/slack-desc
@@ -5,15 +5,15 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler------------------------------------------------------|
-qca-cyrus-sasl: qca-cyrus-sasl (Cyrus SASL plugin for QCA)
-qca-cyrus-sasl:
-qca-cyrus-sasl: This plugin provides features based on Cyrus SASL version 2.
-qca-cyrus-sasl:
-qca-cyrus-sasl:
-qca-cyrus-sasl:
-qca-cyrus-sasl:
-qca-cyrus-sasl:
-qca-cyrus-sasl:
-qca-cyrus-sasl:
-qca-cyrus-sasl:
+ |-----handy-ruler------------------------------------------------------|
+libssh2: libssh2 (SSH2 library)
+libssh2:
+libssh2: libssh2 is a library implementing the SSH2 protocol, available under
+libssh2: the revised BSD license.
+libssh2:
+libssh2: Homepage: http://www.libssh2.org/
+libssh2:
+libssh2:
+libssh2:
+libssh2:
+libssh2:
diff --git a/source/l/libtasn1/libtasn1.SlackBuild b/source/l/libtasn1/libtasn1.SlackBuild
index d9fb3d810..c6265c3b9 100755
--- a/source/l/libtasn1/libtasn1.SlackBuild
+++ b/source/l/libtasn1/libtasn1.SlackBuild
@@ -27,7 +27,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
*) export ARCH=$( uname -m ) ;;
esac
@@ -39,8 +39,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
diff --git a/source/l/libtiff/libtiff-am-version.patch b/source/l/libtiff/libtiff-am-version.patch
new file mode 100644
index 000000000..c94c2e005
--- /dev/null
+++ b/source/l/libtiff/libtiff-am-version.patch
@@ -0,0 +1,31 @@
+Back off the minimum required automake version to 1.11. There isn't
+anything in libtiff currently that actually requires 1.12, and changing
+this allows the package to be built on pre-F18 machines for easier testing.
+
+This patch can go away once we no longer care about testing on pre-F18.
+
+
+diff -Naur tiff-4.0.3.orig/Makefile.am tiff-4.0.3/Makefile.am
+--- tiff-4.0.3.orig/Makefile.am 2012-09-20 09:22:47.000000000 -0400
++++ tiff-4.0.3/Makefile.am 2012-10-30 11:33:30.312823564 -0400
+@@ -25,7 +25,7 @@
+
+ docdir = $(LIBTIFF_DOCDIR)
+
+-AUTOMAKE_OPTIONS = 1.12 dist-zip foreign
++AUTOMAKE_OPTIONS = 1.11 dist-zip foreign
+ ACLOCAL_AMFLAGS = -I m4
+
+ docfiles = \
+diff -Naur tiff-4.0.3.orig/test/Makefile.am tiff-4.0.3/test/Makefile.am
+--- tiff-4.0.3.orig/test/Makefile.am 2012-09-20 09:22:28.000000000 -0400
++++ tiff-4.0.3/test/Makefile.am 2012-10-30 11:33:17.109696812 -0400
+@@ -23,7 +23,7 @@
+
+ # Process this file with automake to produce Makefile.in.
+
+-AUTOMAKE_OPTIONS = 1.12 color-tests parallel-tests foreign
++AUTOMAKE_OPTIONS = 1.11 color-tests parallel-tests foreign
+
+ LIBTIFF = $(top_builddir)/libtiff/libtiff.la
+
diff --git a/source/l/libtiff/libtiff-make-check.patch b/source/l/libtiff/libtiff-make-check.patch
new file mode 100644
index 000000000..46796d421
--- /dev/null
+++ b/source/l/libtiff/libtiff-make-check.patch
@@ -0,0 +1,26 @@
+diff --git a/html/man/Makefile.am b/html/man/Makefile.am
+index ca222de..c7421ac 100644
+--- a/html/man/Makefile.am
++++ b/html/man/Makefile.am
+@@ -85,7 +85,6 @@ docfiles = \
+ ras2tiff.1.html \
+ raw2tiff.1.html \
+ rgb2ycbcr.1.html \
+- sgi2tiff.1.html \
+ thumbnail.1.html \
+ tiff2bw.1.html \
+ tiff2pdf.1.html \
+@@ -96,12 +95,10 @@ docfiles = \
+ tiffcrop.1.html \
+ tiffdither.1.html \
+ tiffdump.1.html \
+- tiffgt.1.html \
+ tiffinfo.1.html \
+ tiffmedian.1.html \
+ tiffset.1.html \
+- tiffsplit.1.html \
+- tiffsv.1.html
++ tiffsplit.1.html
+
+ dist_doc_DATA = $(indexfile) $(docfiles)
+
diff --git a/source/l/libtiff/libtiff.SlackBuild b/source/l/libtiff/libtiff.SlackBuild
index 7cdd7b71a..99f8eb324 100755
--- a/source/l/libtiff/libtiff.SlackBuild
+++ b/source/l/libtiff/libtiff.SlackBuild
@@ -26,7 +26,7 @@ BUILD=1
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -38,8 +38,8 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -63,10 +63,8 @@ rm -rf tiff-$VERSION
tar xvf $CWD/tiff-$VERSION.tar.?z* || exit 1
cd tiff-$VERSION
-zcat $CWD/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff.gz | patch -p1 --verbose || exit 1
-zcat $CWD/tiff-3.9.7_CVE-2013-4231.diff.gz | patch -p1 --verbose || exit 1
-zcat $CWD/tiff-3.9.7_CVE-2013-4232.diff.gz | patch -p1 --verbose || exit 1
-zcat $CWD/tiff-3.9.7_CVE-2013-4244.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/libtiff-am-version.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/libtiff-make-check.patch.gz | patch -p1 --verbose || exit 1
chown -R root:root .
find . \
@@ -80,6 +78,7 @@ CFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
+ --disable-static \
--program-prefix="" \
--program-suffix="" \
--build=$ARCH-slackware-linux
diff --git a/source/l/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff b/source/l/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff
deleted file mode 100644
index 2ee6847c6..000000000
--- a/source/l/libtiff/tiff-3.9.7_CVE-2012-4447_CVE-2012-4564_CVE-2013-1960_CVE-2013-1961.diff
+++ /dev/null
@@ -1,3813 +0,0 @@
-From 304327d825c7ba6a9f560d0ca792304f0b03e3b3 Mon Sep 17 00:00:00 2001
-From: mancha <mancha1@hush.com>
-Date: Sun, 11 Aug 2013
-Subject: Multiple CVEs addressed and bugs fixed.
-
-Mega-patch against libtiff-3.9.7 constructed from upstream commits
-that syncs it to the last CVS revision (5/2/2013). It fixes:
-
- a. CVE-2012-4447
- b. CVE-2012-4564
- c. CVE-2013-1960
- d. CVE-2013-1961
- e. auto-rotate option bug
- f. TIFFPrintDirectory bug
----
- ChangeLog | 781 ++++++++++++++++++++++--------------------
- Makefile.in | 2
- aclocal.m4 | 6
- build/Makefile.in | 2
- contrib/Makefile.in | 2
- contrib/acorn/Makefile.in | 2
- contrib/addtiffo/Makefile.in | 2
- contrib/dbs/Makefile.in | 2
- contrib/dbs/xtiff/Makefile.in | 2
- contrib/dbs/xtiff/xtiff.c | 6
- contrib/iptcutil/Makefile.in | 2
- contrib/mac-cw/Makefile.in | 2
- contrib/mac-mpw/Makefile.in | 2
- contrib/mfs/Makefile.in | 2
- contrib/pds/Makefile.in | 2
- contrib/ras/Makefile.in | 2
- contrib/stream/Makefile.in | 2
- contrib/tags/Makefile.in | 2
- contrib/win_dib/Makefile.in | 2
- html/Makefile.in | 2
- html/images/Makefile.in | 2
- html/man/Makefile.in | 2
- libtiff/Makefile.in | 2
- libtiff/tif_codec.c | 5
- libtiff/tif_dirinfo.c | 4
- libtiff/tif_pixarlog.c | 94 ++---
- libtiff/tif_print.c | 15
- man/Makefile.in | 2
- port/Makefile.in | 2
- test/Makefile.in | 2
- tools/Makefile.in | 2
- tools/ppm2tiff.c | 39 +-
- tools/rgb2ycbcr.c | 5
- tools/tiff2bw.c | 4
- tools/tiff2pdf.c | 313 ++++++++--------
- tools/tiff2ps.c | 20 -
- tools/tiffcrop.c | 12
- tools/tiffdither.c | 4
- 38 files changed, 728 insertions(+), 628 deletions(-)
-
-diff --git a/ChangeLog b/ChangeLog
-index c18d495..2d8bc7c 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,51 @@
-+2013-05-02 Tom Lane <tgl@sss.pgh.pa.us>
-+
-+ * tools/tiff2pdf.c: Rewrite JPEG marker parsing in
-+ t2p_process_jpeg_strip to be at least marginally competent. The
-+ approach is still fundamentally flawed, but at least now it won't
-+ stomp all over memory when given bogus input. Fixes CVE-2013-1960.
-+
-+2013-05-02 Tom Lane <tgl@sss.pgh.pa.us>
-+
-+ * contrib/dbs/xtiff/xtiff.c, libtiff/tif_codec.c,
-+ libtiff/tif_dirinfo.c, tools/rgb2ycbcr.c, tools/tiff2bw.c,
-+ tools/tiff2pdf.c, tools/tiff2ps.c, tools/tiffcrop.c,
-+ tools/tiffdither.c: Enlarge some fixed-size buffers that weren't
-+ large enough, and eliminate substantially all uses of sprintf(buf,
-+ ...) in favor of using snprintf(buf, sizeof(buf), ...), so as to
-+ protect against overflow of fixed-size buffers. This responds in
-+ particular to CVE-2013-1961 concerning overflow in tiff2pdf.c's
-+ t2p_write_pdf_page(), but in general it seems like a good idea to
-+ deprecate use of sprintf().
-+
-+2013-01-25 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-+
-+ * tools/tiff2ps.c:Fix bug in auto rotate option code. Once a
-+ rotation angle was set by the auto rotate check, it was retained
-+ for all pages that followed instead of being retested for each
-+ page. Patch by Richard Nolde.
-+
-+2012-12-12 Tom Lane <tgl@sss.pgh.pa.us>
-+
-+ * libtiff/tif_print.c: Back-patch recent fixes in
-+ TIFFPrintDirectory to make it handle field_passcount fields sanely
-+ for both TIFF_VARIABLE and TIFF_VARIABLE2 cases.
-+
-+2012-12-10 Tom Lane <tgl@sss.pgh.pa.us>
-+
-+ * tools/ppm2tiff.c: Back-patch fix for CVE-2012-4564.
-+
-+2012-12-10 Tom Lane <tgl@sss.pgh.pa.us>
-+
-+ * libtiff/tif_pixarlog.c: Back-patch recent security fixes for
-+ tif_pixarlog.c, namely the fix for CVE-2012-4447 and protections
-+ against accessing outside the lookup arrays for out of range
-+ inputs.
-+
-+2012-11-18 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-+
-+ * automake: Update Automake to 1.12.5 release.
-+
- 2012-09-22 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-
- * libtiff 3.9.7 released.
-@@ -31,7 +79,7 @@
-
- * libtiff/tif_dirread.c: Avoid trusting samplesperpixel's default
- of 1 for purposes of trimming tags. This is to get some super
-- crappy OJPEG files to work again. Grr.
-+ crappy OJPEG files to work again. Grr.
- http://bugzilla.maptools.org/show_bug.cgi?id=2348
-
- 2012-06-01 Frank Warmerdam <warmerdam@google.com>
-@@ -101,8 +149,8 @@
- * libtiff/tiffiop.h: avoid declaring int64/uint64 on AIX with XLC
- where they are already available. (#2301)
-
-- * libtiff/tif_thunder.c: Correct potential buffer overflow with
-- thunder encoded files with wrong bitspersample set. The libtiff
-+ * libtiff/tif_thunder.c: Correct potential buffer overflow with
-+ thunder encoded files with wrong bitspersample set. The libtiff
- development team would like to thank Marin Barbella and TippingPoint's
- Zero Day Initiative for reporting this vulnerability (ZDI-CAN-1004,
- CVE-2011-1167).
-@@ -110,18 +158,18 @@
-
- 2011-03-10 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_fax3.h: Fix to last change allowing zero length
-+ * libtiff/tif_fax3.h: Fix to last change allowing zero length
- runs at the start of a scanline - needed for legal cases.
-
- 2011-03-02 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_fax3.h: Protect against a fax VL(n) codeword commanding
-- a move left. Without this, a malicious input file can generate an
-- indefinitely large series of runs without a0 ever reaching the right
-+ * libtiff/tif_fax3.h: Protect against a fax VL(n) codeword commanding
-+ a move left. Without this, a malicious input file can generate an
-+ indefinitely large series of runs without a0 ever reaching the right
- margin, thus overrunning our buffer of run lengths. Per CVE-2011-0192.
-- This is a modified version of a patch proposed by Drew Yao of Apple
-- Product Security. It adds an unexpected() report, and disallows the
-- equality case, since emitting a run without increasing a0 still allows
-+ This is a modified version of a patch proposed by Drew Yao of Apple
-+ Product Security. It adds an unexpected() report, and disallows the
-+ equality case, since emitting a run without increasing a0 still allows
- buffer overrun.
-
- 2011-02-25 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -133,7 +181,7 @@
- 2011-01-03 Lee Howard <faxguy@howardsilvan.com>
-
- * libtiff/tif_jpeg.c: Fix regressions with 2 and 3 band images
-- caused by commit on 2010-12-14. Submitted by e-mail from
-+ caused by commit on 2010-12-14. Submitted by e-mail from
- Even Rouault <even.rouault@mines-paris.org>
-
- 2010-12-31 Olivier Paquet <olivier.paquet@gmail.com>
-@@ -188,13 +236,13 @@
-
- 2010-12-12 Lee Howard <faxguy@howardsilvan.com>
-
-- * tools/tiff2pdf.c: fix colors for images with RGBA
-+ * tools/tiff2pdf.c: fix colors for images with RGBA
- interleaved data
- http://bugzilla.maptools.org/show_bug.cgi?id=2250
-
- 2010-12-11 Lee Howard <faxguy@howardsilvan.com>
-
-- * tools/tiff2pdf.c: remove invalid duplication for Lab
-+ * tools/tiff2pdf.c: remove invalid duplication for Lab
- http://bugzilla.maptools.org/show_bug.cgi?id=2162
-
- 2010-12-11 Lee Howard <faxguy@howardsilvan.com>
-@@ -236,7 +284,7 @@
-
- 2010-12-07 Lee Howard <faxguy@howardsilvan.com>
-
-- * libtiff/tif_jpeg.c, libtiff/tif_strip.c: apply patch for
-+ * libtiff/tif_jpeg.c, libtiff/tif_strip.c: apply patch for
- CVE-2010-3087 per bug
- http://bugzilla.maptools.org/show_bug.cgi?id=2140
-
-@@ -248,7 +296,7 @@
- 2010-09-25 Lee Howard <faxguy@howardsilvan.com>
-
- * tools/tiff2ps.c: improvements and enhancements from Richard Nolde
-- with additional command line options for Document Title,
-+ with additional command line options for Document Title,
- Document Creator, and Page Orientation
-
- 2010-07-13 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-@@ -349,14 +397,14 @@
- * libtiff/tif_dirread.c: Fixed bad handling of out of order tags
- definated late by a codec (#2210)
-
-- * libtiff/tif_dirread.c: Fixed inadequate validation of the
-+ * libtiff/tif_dirread.c: Fixed inadequate validation of the
- SubjectDistance field (#2212).
-
-- * tiff2pdf.c: Fix assorted bugs in tiff2pdf: missing "return"
-- in t2p_read_tiff_size() causes t2p->tiff_datasize to be set entirely
-- wrong for COMPRESSION_JPEG case, resulting in memory stomp if actual
-- size is larger. Also, there are a bunch of places that try to
-- memset() a malloc'd buffer before checking for malloc failure, which
-+ * tiff2pdf.c: Fix assorted bugs in tiff2pdf: missing "return"
-+ in t2p_read_tiff_size() causes t2p->tiff_datasize to be set entirely
-+ wrong for COMPRESSION_JPEG case, resulting in memory stomp if actual
-+ size is larger. Also, there are a bunch of places that try to
-+ memset() a malloc'd buffer before checking for malloc failure, which
- would result in core dump if there actually were a failure. (#2211)
-
- 2010-06-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-@@ -452,13 +500,13 @@
-
- 2010-05-07 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_jpeg.c: Ensure that quality is always set in
-- JPEGPreEncode(), not just when we want to output local tables.
-+ * libtiff/tif_jpeg.c: Ensure that quality is always set in
-+ JPEGPreEncode(), not just when we want to output local tables.
- Otherwise the quality used during compression may not be right and
- might not match the tables in the tables tag. This bug only occurs
- when seeking between directories in the midst of writing blocks.
- http://trac.osgeo.org/gdal/ticket/3539
--
-+
- 2010-05-05 Olivier Paquet <olivier.paquet@gmail.com>
-
- * libtiff/tif_print.c: Have TIFFTAG_REFERENCEBLACKWHITE always print 6
-@@ -476,11 +524,11 @@
- 2010-02-22 Lee Howard <faxguy@howardsilvan.com>
-
- * libtiff/tif_jpeg.c: Do not generate a JPEGTables tag when creating
-- the JPEG TIFF as is is not required in order to prevent it from
-- being unused and filled with invalid data. (Leave it to be
-+ the JPEG TIFF as is is not required in order to prevent it from
-+ being unused and filled with invalid data. (Leave it to be
- generated by later activity.)
- http://bugzilla.maptools.org/show_bug.cgi?id=2135
-- * tools/tiff2pdf.c: Write the JPEG SOI headers into the TIFF strip
-+ * tools/tiff2pdf.c: Write the JPEG SOI headers into the TIFF strip
- data rather than skipping them. This fixes the ability to view in
- Acrobat Reader, Evince, and Ghostscript.
- http://bugzilla.maptools.org/show_bug.cgi?id=2135
-@@ -491,13 +539,13 @@
- 2010-01-06 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_dir.c: Ensure tile and scanline sizes are reset
-- when moving to new directories.
-+ when moving to new directories.
- http://bugzilla.maptools.org/show_bug.cgi?id=1936
-
- 2009-12-03 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_jpeg.c: Fix a couple of issues that trigger failures in
-- some cases when using TIFFReadScanline() with JPEG compressed
-+ some cases when using TIFFReadScanline() with JPEG compressed
- subsampled ycbcr images.
- http://bugzilla.maptools.org/show_bug.cgi?id=1936
-
-@@ -610,7 +658,7 @@
-
- 2009-06-22 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_lzw.c: Fix buffer underflow bug.
-+ * libtiff/tif_lzw.c: Fix buffer underflow bug.
- http://bugzilla.maptools.org/show_bug.cgi?id=2065
-
- 2009-06-03 Frank Warmerdam <warmerdam@pobox.com>
-@@ -621,7 +669,7 @@
-
- 2009-02-12 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_luv.c: Fix handling of tiled logluv images.
-+ * libtiff/tif_luv.c: Fix handling of tiled logluv images.
- http://bugzilla.maptools.org/show_bug.cgi?id=2005
-
- 2009-01-23 Frank Warmerdam <warmerdam@pobox.com>
-@@ -635,7 +683,7 @@
-
- 2009-01-12 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-
-- * tools/tiff2ps.c: Remove spurious message printed to stderr.
-+ * tools/tiff2ps.c: Remove spurious message printed to stderr.
-
- 2009-01-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-
-@@ -668,7 +716,7 @@
- 2008-12-31 Frank Warmerdam <warmerdam@pobox.com>
-
- * tools/tiffcrop.c, man/tiffcrop.1: A major update from Richard
-- Nolde.
-+ Nolde.
-
- 2008-12-21 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -678,7 +726,7 @@
-
- 2008-12-21 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_getimage.c, tiffio.h: More ABI corrections.
-+ * libtiff/tif_getimage.c, tiffio.h: More ABI corrections.
- Removed SubsamplingHor/Ver from TIFFRGBAImage structure.
- http://bugzilla.maptools.org/show_bug.cgi?id=1980
-
-@@ -719,15 +767,15 @@
-
- 2008-05-24 Frank Warmerdam <warmerdam@pobox.com>
-
-- * tif_codec.c: Avoid NULL pointer dereferencing for exotic
-+ * tif_codec.c: Avoid NULL pointer dereferencing for exotic
- compression codec codes.
-
- * tif_dirread.c: zero tif->tif_dir after freeing the directory
- in TIFFReadCustomDirectory(). I don't exactly remember why this
-- was important.
-+ was important.
-
- * tif_dirwrite.c: Fix potential memory leak writing large double
-- tags.
-+ tags.
-
- * tif_dirread.c: Fix unchecked malloc result.
-
-@@ -747,12 +795,12 @@
-
- 2007-11-22 Frank Warmerdam <warmerdam@pobox.com>
-
-- * tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for
-- establishing if an existing tile can be rewritten to the same location
-- by comparing the current size to all the other blocks in the same
-- directory. This is dangerous in many situations and can easily
-+ * tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for
-+ establishing if an existing tile can be rewritten to the same location
-+ by comparing the current size to all the other blocks in the same
-+ directory. This is dangerous in many situations and can easily
- corrupt a file. (observed in esoteric GDAL situation that's hard to
-- document). This change involves leaving the stripbytecount[] values
-+ document). This change involves leaving the stripbytecount[] values
- unaltered till TIFFAppendToStrip(). Now we only write a block back
- to the same location it used to be at if the new data is the same
- size or smaller - otherwise we move it to the end of file.
-@@ -760,17 +808,17 @@
- * tif_dirwrite.c: Try to avoid writing out a full readbuffer of tile
- data when writing the directory just because we have BEENWRITING at
- some point in the past. This was causing odd junk to be written out
-- in a tile of data when a single tile had an interleaving of reading
-- and writing with reading last. (highlighted by gdal
-- autotest/gcore/tif_write.py test 7.
-+ in a tile of data when a single tile had an interleaving of reading
-+ and writing with reading last. (highlighted by gdal
-+ autotest/gcore/tif_write.py test 7.
-
- * tif_predict.c: use working buffer in PredictorEncodeTile to avoid
-- modifying callers buffer.
-+ modifying callers buffer.
- http://trac.osgeo.org/gdal/ticket/1965
-
-- * tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so that
-+ * tif_predict.c/h, tif_lzw.c, tif_zip.c: Improvements so that
- predictor based encoding and decoding works in read-write update
-- mode properly.
-+ mode properly.
- http://trac.osgeo.org/gdal/ticket/1948
-
- 2007-10-05 Frank Warmerdam <warmerdam@pobox.com>
-@@ -785,7 +833,7 @@
-
- 2007-07-18 Andrey Kiselev <dron@ak4719.spb.edu>
-
-- * libtiff/{Makefile.am, Makefile.v}: Do not distribute tiffconf.h,
-+ * libtiff/{Makefile.am, Makefile.v}: Do not distribute tiffconf.h,
- remove tif_config.h/tiffconf.h during cleaning. As per bug
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1573
-@@ -803,14 +851,13 @@
- 2007-07-03 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * tools/tiff2ps.c: Added support 16-bit images as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1566
-
- Patch from William Bader.
-
- * tools/tiff2pdf.c: Fix for TIFFTAG_JPEGTABLES tag fetching and
- significant upgrade of the whole utility as per bug
--
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1560
-
- Now we don't need tiffiop.h in tiff2pdf anymore and will open output
-@@ -828,7 +875,7 @@
-
- * libtiff/tif_dirwrite.c: Fixed problem introduced with a fix for a
- byte swapping issue
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1363
-
- As per bug
-@@ -846,7 +893,7 @@
- * libtiff/{tif_dir.h, tif_dirread.c, tif_dirinfo.c, tif_jpeg.c,
- tif_fax3.c, tif_jbig.c, tif_luv.c, tif_ojpeg.c, tif_pixarlog.c,
- tif_predict.c, tif_zip.c}: Finally fix bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1274
-
- by introducing _TIFFMergeFieldInfo() returning integer error status
-@@ -857,7 +904,7 @@
-
- 2007-04-07 Frank Warmerdam <warmerdam@pobox.com>
-
-- * contrib/addtiffo/tif_overview.c: Fix problems with odd sized output
-+ * contrib/addtiffo/tif_overview.c: Fix problems with odd sized output
- blocks in TIFF_DownSample_Subsampled() (bug 1542).
-
- 2007-04-06 Frank Warmerdam <warmerdam@pobox.com>
-@@ -865,20 +912,20 @@
- * libtiff/tif_jpeg.c: Changed JPEGInitializeLibJPEG() so that it
- will convert from decompressor to compressor or compress to decompress
- if required by the force arguments. This works around a problem in
-- where the JPEGFixupTestSubsampling() may cause a decompressor to
-+ where the JPEGFixupTestSubsampling() may cause a decompressor to
- be setup on a directory when later a compressor is required with the
-- force flag set. Occurs with the addtiffo program for instance.
-+ force flag set. Occurs with the addtiffo program for instance.
-
- 2007-04-06 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * libtiff/tif_dirwrite.c: Fixed swapping of byte arrays stored
- in-place in tag offsets as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1363
-
- * tools/tiffcrop.c, man/tiffcrop.1: Significant update in
- functionality from Richard Nolde. As per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1525
-
- 2007-03-28 Frank Warmerdam <warmerdam@pobox.com>
-@@ -886,15 +933,15 @@
- * libtiff/tif_fax3.c: "inline static" -> "static inline" for IRIC CC.
-
- 2007-03-07 Joris Van Damme <joris.at.lebbeke@skynet.be>
--
-+
- * libtiff/tif_getimage.c: workaround for 'Fractional scanline' error reading
- OJPEG images with rowsperstrip that is not a multiple of vertical subsampling
- factor. This bug is mentioned in:
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1390
-- http://www.asmail.be/msg0054766825.html
-+ http://www.asmail.be/msg0054766825.html
-
- 2007-03-07 Joris Van Damme <joris.at.lebbeke@skynet.be>
--
-+
- * libtiff/tif_win32.c: made inclusion of windows.h unconditional
-
- * libtiff/tif_win32.c: replaced preprocessor indication for consiously
-@@ -944,14 +991,14 @@
- larger than 2GB. Fixes bug
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=890
--
-+
- Idea submitted by Matt Hancher.
-
- 2007-01-31 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * tools/tif2rgba.c: This utility does not work properly on big-endian
- architectures. It was fixed including the bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1149
-
- 2007-01-15 Mateusz Loskot <mateusz@loskot.net>
-@@ -968,15 +1015,15 @@
-
- 2006-11-19 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_write.c: TIFFAppendToStrip() - clear sorted flag if
-- we move a strip.
-- http://bugzilla.remotesensing.org/show_bug.cgi?id=1359
-+ * libtiff/tif_write.c: TIFFAppendToStrip() - clear sorted flag if
-+ we move a strip.
-+ http://bugzilla.remotesensing.org/show_bug.cgi?id=1359
-
- 2006-10-13 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * libtiff/tif_dir.c: More fixes for vulnerabilities, reported
- in Gentoo bug ():
--
-+
- http://bugs.gentoo.org/show_bug.cgi?id=142383
-
- * libtiff/contrib/dbs/xtiff/xtiff.c: Make xtiff utility compilable.
-@@ -1010,12 +1057,12 @@
- * libtiff/tif_lzw.c, libtiff/tif_zip.c: Fixed problems with mixing
- encoding and decoding on the same read-write TIFF handle. The LZW
- code can now maintain encode and decode state at the same time. The
-- ZIP code will switch back and forth as needed.
-+ ZIP code will switch back and forth as needed.
- http://bugzilla.remotesensing.org/show_bug.cgi?id=757
-
- 2006-09-20 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff: Rename config.h.vc and tif_config.h.vc to config.vc.h and
-+ * libtiff: Rename config.h.vc and tif_config.h.vc to config.vc.h and
- tif_config.vc.h for easier identification by folks using an IDE.
-
- 2006-07-25 Frank Warmerdam <warmerdam@pobox.com>
-@@ -1030,7 +1077,7 @@
-
- 2006-07-12 Frank Warmerdam <warmerdam@pobox.com>
-
-- * tif_dirwrite.c: make sure to use uint32 for wordcount in
-+ * tif_dirwrite.c: make sure to use uint32 for wordcount in
- TIFFWriteNormanTag if writecount is VARIABLE2 for ASCII fields.
- It already seems to have been done for other field types. Needed
- for "tiffset" on files with geotiff ascii text.
-@@ -1058,9 +1105,9 @@
- 2006-06-17 Frank Warmerdam <warmerdam@pobox.com>
-
- * tif_readdir.c: Added case in EstimateStripByteCounts() for tiled
-- files. Modified TIFFReadDirectory() to not invoke
-+ files. Modified TIFFReadDirectory() to not invoke
- EstimateStripByteCounts() for case where entry 0 and 1 are unequal
-- but one of them is zero.
-+ but one of them is zero.
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1204
-
- 2006-06-08 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -1088,7 +1135,7 @@
- * {configure, configure.ac, libtiff/tif_jbig.c, tools/tiffcp.c}: Added
- support for JBIG compression scheme (34661 code) contributed by Lee
- Howard. As per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=896
-
- * configure, configure.ac: OJPEG support enabled by default.
-@@ -1127,7 +1174,7 @@
- 2006-04-18 Frank Warmerdam <warmerdam@pobox.com>
-
- * nmake.opt: use /EHsc for VS2005 compatibility. Also define
-- _CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005.
-+ _CRT_SECURE_NO_DEPRECATE to avoid noise on VS2005.
-
- 2006-04-12 Joris Van Damme <joris.at.lebbeke@skynet.be>
-
-@@ -1135,7 +1182,7 @@
- non-subsampled YCbCr (i.e. separate YCbCr with subsampling [1,1])
-
- 2006-04-11 Joris Van Damme <joris.at.lebbeke@skynet.be>
--
-+
- * libtiff/tif_getimage.c: Revision of all RGB(A) put routines
- - Conversion of unassociated alpha to associated alpha now done with
- more performant LUT, and calculation more correct
-@@ -1144,21 +1191,21 @@
- - Bugfix of handling of 16bit RGB with unassociated alpha
-
- 2006-04-11 Joris Van Damme <joris.at.lebbeke@skynet.be>
--
-- * libtiff/tif_getimage.c:
-- - When there is no alpha, gtTileSeparate and gtStripSeparate allocated
-- buffer for alpha strile and filled it, only to never read it back.
-+
-+ * libtiff/tif_getimage.c:
-+ - When there is no alpha, gtTileSeparate and gtStripSeparate allocated
-+ buffer for alpha strile and filled it, only to never read it back.
- Removed allocation and fill.
-- - Minor rename of vars in gtTileSeparate and gtStripSeparate
-+ - Minor rename of vars in gtTileSeparate and gtStripSeparate
- anticipating planned functionality extension
-
- 2006-04-08 Joris Van Damme <joris.at.lebbeke@skynet.be>
-
-- * libtiff/tif_getimage.c: renamed pickTileContigCase to PickContigCase
-- and pickTileSeparateCase to PickSeparateCase as both work on strips as
-+ * libtiff/tif_getimage.c: renamed pickTileContigCase to PickContigCase
-+ and pickTileSeparateCase to PickSeparateCase as both work on strips as
- well
-
-- * libtiff/tif_getimage.c: moved img->get selection from
-+ * libtiff/tif_getimage.c: moved img->get selection from
- TIFFRGBAImageBegin into PickContigCase and PickSeparateCase to create
- logical hook for planned functionality extension
-
-@@ -1169,9 +1216,9 @@
-
- 2006-04-07 Joris Van Damme <joris.at.lebbeke@skynet.be>
-
-- * libtiff/tif_getimage.c: replaced usage of TIFFScanlineSize in
-+ * libtiff/tif_getimage.c: replaced usage of TIFFScanlineSize in
- gtStripContig with TIFFNewScanlineSize so as to fix buggy behaviour
-- on subsampled images - this ought to get sorted when we feel brave
-+ on subsampled images - this ought to get sorted when we feel brave
- enough to replace TIFFScanlineSize alltogether
-
- * libtiff/tif_ojpeg.c: fixed bug in OJPEGReadSkip
-@@ -1180,13 +1227,13 @@
-
- * libtiff/tiffio.h: added new type tstrile_t
-
-- * libtiff/tif_dir.h: changed types of td_stripsperimage and td_nstrips
-- to new tstrile_t, types of td_stripoffset and td_stripbytecount to
-+ * libtiff/tif_dir.h: changed types of td_stripsperimage and td_nstrips
-+ to new tstrile_t, types of td_stripoffset and td_stripbytecount to
- toff_t*
-
- * libtiff/tif_ojpeg.c: totally new implementation
-
-- * libtiff/tif_dirread.c: added several hacks to suit new support of
-+ * libtiff/tif_dirread.c: added several hacks to suit new support of
- OJPEG
-
- * libtiff/tif_getimage.c: removed TIFFTAG_JPEGCOLORMODE handling
-@@ -1226,7 +1273,7 @@
-
- * libtiff/tif_getimage.c: added putcontig8bitYCbCr12tile
-
-- * libtiff/tif_read.c: added support for new TIFF_NOREADRAW flag to
-+ * libtiff/tif_read.c: added support for new TIFF_NOREADRAW flag to
- prepare the path for new tif_ojpeg.c
-
- 2006-03-23 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -1342,7 +1389,7 @@
-
- * libtiff/tif_write.c: Small code rearrangement in TIFFWriteScanline()
- to avoid crash as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1081.
-
- 2006-02-26 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -1392,7 +1439,7 @@
- 2006-02-07 Frank Warmerdam <warmerdam@pobox.com>
-
- * tools/tiff2pdf.c: Fixed support for non-YCbCr encoded JPEG
-- compressed TIFF files, per submission from Dan Cobra.
-+ compressed TIFF files, per submission from Dan Cobra.
-
- 2006-02-07 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -1424,7 +1471,7 @@
-
- * libtiff/tif_dirread.c: Use _TIFFGetExifFieldInfo() instead of
- _TIFFGetFieldInfo() in TIFFReadEXIFDirectory() call as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1026.
-
- 2006-01-23 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -1490,7 +1537,7 @@
-
- 2005-12-26 Andrey Kiselev <dron@ak4719.spb.edu>
-
-- * libtiff/{tif_dir.c, tif_dir.h, tif_dirread.c, tif_dirinfo.c}:
-+ * libtiff/{tif_dir.c, tif_dir.h, tif_dirread.c, tif_dirinfo.c}:
- tiffFieldInfo and exifFieldInfo arrays definitions moved back to
- tif_dirinfo.c; added _TIFFGetFieldInfo() and _TIFFGetExifFieldInfo()
- private functions to retrieve FieldInfo arrays.
-@@ -1517,10 +1564,10 @@
-
- 2005-12-23 Joris Van Damme <joris.at.lebbeke@skynet.be>
-
-- * libtiff/tiffio.h: fixed typo that potentially resulted in
-+ * libtiff/tiffio.h: fixed typo that potentially resulted in
- redefininition of USE_WIN32_FILEIO
-
-- * libtiff/*: Added more 'dual-mode' error handling: Done TIFFWarning
-+ * libtiff/*: Added more 'dual-mode' error handling: Done TIFFWarning
- calls in core LibTiff.
-
- 2005-12-21 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -1530,10 +1577,10 @@
-
- 2005-12-21 Joris Van Damme <joris.at.lebbeke@skynet.be>
-
-- * libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling
-+ * libtiff/*, contrib/*: Added 'dual-mode' error handling, enabling
- newer code to get context indicator in error handler and still
-- remain compatible with older code: Done TIFFError calls everywhere
-- except in tools
-+ remain compatible with older code: Done TIFFError calls everywhere
-+ except in tools
-
- 2005-12-20 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -1606,7 +1653,7 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=1002
-
- * .cvsignore: many files added, and a few update according
-- to suggestion of Brad HArds on tiff mailing list.
-+ to suggestion of Brad HArds on tiff mailing list.
-
- 2005-11-03 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -1631,7 +1678,7 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=946
-
- * tools/bmp2tiff.c: Fixed possible integer overflow error as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=965
-
- * libtiff/tif_dirinfo.c: Make XResolution, YResolution and
-@@ -1641,7 +1688,7 @@
-
- * tools/tiffsplit.c: Copy fax related fields over splitted parts
- as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=983
-
- 2005-10-21 Frank Warmerdam <warmerdam@pobox.com>
-@@ -1697,7 +1744,7 @@
-
- * libtiff/tif_dir.c: When prefreeing tv->value in TIFFSetFieldV
- also set it to NULL to avoid double free when re-setting custom
-- string fields as per:
-+ string fields as per:
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=922
-
-@@ -1733,7 +1780,7 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=831
-
- Remove TIFFFetchExtraSamples() function, use TIFFFetchNormalTag()
-- instead.
-+ instead.
-
- * libtiff/tiffconf.h.in: One more attempt to fix the AIX bug
-
-@@ -1904,7 +1951,7 @@
-
- 2005-05-22 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_dirread.c: Changed the code that computes
-+ * libtiff/tif_dirread.c: Changed the code that computes
- stripbytecount[0] if it appears bogus to ignore if stripoffset[0] is
- zero. This is a common case with GDAL indicating a "null" tile/strip.
-
-@@ -1914,8 +1961,8 @@
-
- 2005-05-06 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_dirread.c: Applied similar change to
-- TIFFFetchPerSampleLongs and TIFFFetchPerSampleAnys.
-+ * libtiff/tif_dirread.c: Applied similar change to
-+ TIFFFetchPerSampleLongs and TIFFFetchPerSampleAnys.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=843
-
-@@ -1965,7 +2012,7 @@
-
- * man/TIFFSetField.3tiff: Fixed definition of the TIFFTAG_INKNAMES tag
- as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=816
-
- 2005-03-30 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -2075,7 +2122,7 @@
-
- * libtiff/tiffio.h: Move TIFFOpenW() function into the extern "C"{}
- block as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=763
-
- 2005-02-03 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-@@ -2096,7 +2143,7 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=320
-
- * tools/tiff2ps.c: Fixed problem with page sizes as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=742
-
- 2005-01-31 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-@@ -2137,7 +2184,7 @@
- TIFFRGBAImageBegin() as per bug
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=739
--
-+
- 2005-01-12 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * libtiff/tif_jpeg.c: Added ability to read/write the fax specific
-@@ -2166,7 +2213,7 @@
- * libtiff/tiff.h: Restore back the workaround for AIX Visual Age C
- compiler to avoid double definition of BSD types as per bug
-
-- http://bugzilla.remotesensing.org/show_bug.cgi?id=39
-+ http://bugzilla.remotesensing.org/show_bug.cgi?id=39
-
- * libtiff/Makefile.am: Place the C++ stream API in the separate
- library called libtiffxx to avoid unneeded dependencies. Probably
-@@ -2190,7 +2237,7 @@
-
- * libtiff/tif_getimage.c: More fixes for multiple-alpha-channelled
- RGB-images as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=713
-
-
-@@ -2226,7 +2273,7 @@
- 2004-12-15 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_getimage.c: #define A1 bracketing for clean build on
-- SunPro compiler.
-+ SunPro compiler.
-
- 2004-12-11 Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
-
-@@ -2238,7 +2285,7 @@
-
- * libtiff/tif_dirwrite.c: Always write TIFFTAG_SUBIFD using LONG type
- as per bugs
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=703
-
- and
-@@ -2258,9 +2305,9 @@
-
- * libtiff/tif_config.in.vc: Removed unneded definitions for
- read/open/close/lseek functions to fix the
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=680
--
-+
- 2004-12-03 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * libtiff/{tif_dir.c, tif_dirread.c}: Remove TIFFReassignTagToIgnore()
-@@ -2296,7 +2343,7 @@
-
- 2004-11-26 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/makefile.vc: make it easier to rename the libtiff DLL.
-+ * libtiff/makefile.vc: make it easier to rename the libtiff DLL.
-
- 2004-11-24 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -2393,7 +2440,7 @@
- per bug
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=648
--
-+
- * libtiff/{tif_jpeg.c, tif_ojpeg.c}: TIFFTAG_JPEGTABLES should have
- uint32 count. Use this type everywhere.
-
-@@ -2406,7 +2453,7 @@
- * tools/tiff2rgba.c: removed extra newlines in usage message.
-
- 2004-10-30 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * libtiff/tif_dirwrite.c: Improvements in tag writing code.
-
- * tools/tiff2ps.c: Fixed wrong variable data type when read Position
-@@ -2421,7 +2468,7 @@
-
- * libtiff/tif_fax3.c: Fixed case with the wrong decode routines
- choosing when the incorrect Group4Options tag set. As per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=323
-
- * libtiff/tif_dirwrite.c: Fixed problem with passing count variable of
-@@ -2440,7 +2487,7 @@
- * tools/tiff2pdf.c: added casts to avoid warnings.
-
- * libtiff/libtiff.def: Added several more entry points required
-- to link fax2tiff.c against the DLL on windows.
-+ to link fax2tiff.c against the DLL on windows.
-
- 2004-10-27 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -2511,7 +2558,7 @@
- 2004-10-08 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_dirinfo.c: Fix bug with tif_foundfield and reallocation
-- of tif_fieldinfo.
-+ of tif_fieldinfo.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=630
-
-@@ -2543,7 +2590,7 @@
-
- 2004-09-30 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to
-+ * libtiff/tif_dirinfo.c: changed type of XMLPacket (tag 700) to
- TIFFTAG_BYTE instead of TIFFTAG_UNDEFINED to comply with the info
- in the Adobe XMP Specification.
-
-@@ -2563,7 +2610,7 @@
- 2004-09-26 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * libtiff/{tif_dir.h, tif_dir.c, tif_dirread.c, tif_write.c}:
-- Optimize checking for the strip bounds.
-+ Optimize checking for the strip bounds.
-
- * libtiff/{tif_dirread.c, tif_strip.c}: TIFFScanlineSize() and
- TIFFRasterScanlineSize() functions report zero in the case of integer
-@@ -2714,7 +2761,7 @@
- here
-
- http://www.asmail.be/msg0054799560.html
--
-+
- for details.
-
- * tools/fax2tiff.c: Use the new functions in the code.
-@@ -2842,11 +2889,11 @@
- * tools/tiffsplit.c: Fixed problem with unproperly written multibyte
- files. Now output files will be written using the same byte order
- flag as in the input image. See
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=574
--
-+
- for details.
--
-+
- 2004-05-19 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_print.c: added (untested) support for printing
-@@ -2858,7 +2905,7 @@
-
- * libtiff/tif_fax3.c: Avoid reading CCITT compression options
- if compression type mismatches. See
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=565
-
- 2004-04-30 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -2903,7 +2950,7 @@
- 2004-04-04 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_open.c: close clientdata if TIFFClientOpen() fails
-- via bad2.
-+ via bad2.
-
- 2004-03-26 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -2930,10 +2977,10 @@
-
- 2004-02-26 Andrey Kiselev <dron@ak4719.spb.edu>
-
-- * tools/tiffsplit.c: Copy JPEGTables tag contents for JPEG compressed
-+ * tools/tiffsplit.c: Copy JPEGTables tag contents for JPEG compressed
- images. Reported by Artem Mirolubov.
-
-- * libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED
-+ * libtiff/tif_dirread.c: Fixed problem with handling TIFF_UNDEFINED
- tag type in TIFFFetchNormalTag() as per bug
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=508
-@@ -2955,8 +3002,8 @@
- 2004-01-30 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/libtiff.def: Added TIFFCurrentDirOffset, TIFFWriteCheck,
-- TIFFRGBAImageOK, and TIFFNumberOfDirectories as suggested by
-- Scott Reynolds.
-+ TIFFRGBAImageOK, and TIFFNumberOfDirectories as suggested by
-+ Scott Reynolds.
-
- 2004-01-29 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -2974,7 +3021,7 @@
- file if TIFFFdOpen() failed as per bug
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=468
--
-+
- * libtiff/tif_open.c: More fixes for
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=468
-@@ -2998,7 +3045,7 @@
- * libtiff/tif_dirwrite.c: Fixed handling of writable ASCII tags that
- are field_passcount=TRUE properly. Arguably anonymous custom tags
- should be declared as passcount=FALSE, but I don't want to change
-- that without a careful review.
-+ that without a careful review.
-
- 2004-01-20 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -3161,8 +3208,8 @@
-
- 2003-11-17 Frank Warmerdam <warmerdam@pobox.com>
-
-- * tif_dirread.c: do not mark all anonymously defined tags to be
-- IGNOREd.
-+ * tif_dirread.c: do not mark all anonymously defined tags to be
-+ IGNOREd.
-
- 2003-11-17 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -3202,15 +3249,15 @@
-
- 2003-11-09 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_tile.c: remove spurious use of "s" (sample) in the
-+ * libtiff/tif_tile.c: remove spurious use of "s" (sample) in the
- planarconfig_contig case in TIFFComputeTile().
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=387
-
- 2003-11-09 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * libtiff/tiffiop.h: New macros: TIFFmax, TIFFmin and TIFFrint.
--
-+
- 2003-11-07 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * libtiff/{tiffio.h, tif_strip.c}, man/{TIFFstrip.3t, libtiff.3t}:
-@@ -3277,11 +3324,11 @@
- function TIFFReadRGBAImageOriented() implemented to retrieve raster
- array with user-specified origin position as suggested by Jason Frank.
- See
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=322
-
- for details.
--
-+
- * tools/tiff2rgba.c: Switched to use TIFFReadRGBAImageOriented()
- instead of TIFFReadRGBAImage().
-
-@@ -3362,9 +3409,9 @@
- encoded write functions use tif_postdecode() to apply byte order
- swapping (swab) to the application passed data buffer if the same
- would be done when reading. This allows us to write pixel data with
-- more than 8 bits per sample to existing files of a non-native byte
-+ more than 8 bits per sample to existing files of a non-native byte
- order. One side effect of this change is the applications buffer
-- itself is altered in this case by the act of writing.
-+ itself is altered in this case by the act of writing.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=171
-
-@@ -3390,9 +3437,9 @@
- 2003-07-08 Frank Warmerdam <warmerdam@pobox.com>
-
- * tif_aux.c, tif_codec.c, tif_dir.c, tif_dirread.c, tif_extension.c,
-- tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_next.c,
-+ tif_fax3.c, tif_getimage.c, tif_luv.c, tif_lzw.c, tif_next.c,
- tif_packbits.c, tif_predict.c, tif_print.c, tif_swab.c, tif_thunder.c:
-- avoid casting warning at /W4.
-+ avoid casting warning at /W4.
-
- 2003-07-03 Andrey Kiselev <dron@ak4719.spb.edu>
-
-@@ -3414,11 +3461,11 @@
-
- * libtiff/tif_dirinfo.c: TIFFDataWidth() returns 0 in case of
- unknown data type.
--
-+
- 2003-06-19 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_print.c: fixed some serious bugs when printing
-- custom tags ... almost certain to crash.
-+ custom tags ... almost certain to crash.
-
- * libtiff/tif_dirread.c: Don't ignore custom fields that are
- autodefined. Not sure how this got to be like this.
-@@ -3429,12 +3476,12 @@
-
- * tools/tiffcmp.c, man/tiffcmp.1: Fixed problem with unused data
- comparing as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=349
-
- `-z' option now can be used to set the number of reported different
- bytes.
--
-+
- 2003-06-09 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * tools/tiffcp.c, man/tiffcp.1: Added possibility to specify value -1
-@@ -3460,7 +3507,7 @@
- 2003-05-25 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * tools/fax2tiff.c: Page numbering fixed, as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=341
-
- 2003-05-20 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -3526,7 +3573,7 @@
-
- * tools/tiffcp.c: Fixed problem with colorspace conversion for JPEG
- encoded images. See bug entries
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=275
-
- and
-@@ -3587,16 +3634,16 @@
-
- * libtiff/tif_jpeg.c: Modified to defer initialization of jpeg
- library so that we can check if there is already any tile/strip data
-- before deciding between creating a compressor or a decompressor.
-+ before deciding between creating a compressor or a decompressor.
-
- 2003-01-31 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_write.c: TIFFWriteCheck() now fails if the image is
-- a pre-existing compressed image. That is, image writing to
-+ a pre-existing compressed image. That is, image writing to
- pre-existing compressed images is not allowed.
-
- * libtiff/tif_open.c: Removed error if opening a compressed file
-- in update mode.
-+ in update mode.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=198
-
-@@ -3609,16 +3656,16 @@
- * cut 3.6.0 Beta release.
-
- 2002-12-20 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * tools/fax2ps.c, man/fax2ps.1: Page size was determined
- in wrong way as per bug
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=239
-
- 2002-12-17 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_dirread.c: Allow wrong sized arrays in
-- TIFFFetchStripThing().
-+ * libtiff/tif_dirread.c: Allow wrong sized arrays in
-+ TIFFFetchStripThing().
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=49
-
-@@ -3632,7 +3679,7 @@
- * libtiff/tif_dir.c: fixed bug with resetting an existing custom
- field value.
-
-- * libtiff/tif_dir.c: Fixed potential problem with ascii "custom"
-+ * libtiff/tif_dir.c: Fixed potential problem with ascii "custom"
- tags in TIFFVGetField() ... added missing break.
-
- 2002-10-14 Frank Warmerdam <warmerdam@pobox.com>
-@@ -3644,11 +3691,11 @@
- the eps by redefining the colorimage operator will get messed up.
- Patch supplied by William Bader.
-
-- * Makefile.in: added tif_extension.c to file list as per
-+ * Makefile.in: added tif_extension.c to file list as per
- http://bugzilla.remotesensing.org/show_bug.cgi?id=218.
-
- 2002-10-11 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * configure, config.site, libtiff/{tif_unix.c, Makefile.in}: Fix for
- large files (>2GiB) supporting. New option in the config.site:
- LARGEFILE="yes". Should be enough for I/O of the large files.
-@@ -3680,13 +3727,13 @@
- 2002-10-06 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_jpeg.c: fixed problem with boolean defined with wrong
-- size on windows. Use #define boolean hack.
-+ size on windows. Use #define boolean hack.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=188
-
- * libtiff/tiff.h: Don't do special type handling in tiff.h unless
- USING_VISUALAGE is defined.
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=39
-
- 2002-10-03 Frank Warmerdam <warmerdam@pobox.com>
-@@ -3697,30 +3744,30 @@
-
- * libtiff/tif_dirread.c: Another fix for the fetching SBYTE arrays
- by the TIFFFetchByteArray() function. Should finally resolve
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=52
--
-+
- * configure: Set -DPIXARLOG_SUPPORT option along with -DZIP_SUPPORT
-
- * html/Makefile.in: New targets added: html and groffhtml for
- producing HTML representations of the manual pages automatically.
- html target uses man2html tool, groffhtml uses groff tool.
--
-+
- 2002-09-29 Frank Warmerdam <warmerdam@pobox.com>
-
- * configure, libtiff/Makefile.in: Added SCO OpenServer 5.0.6 support
-- from John H. DuBois III.
-+ from John H. DuBois III.
-
- 2002-09-15 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * Makefile.in, /man/{raw2tiff.1, Makefile.in, libtiff.3}: Added
- manual page for raw2tiff(1) tool.
--
-+
- 2002-09-12 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * /libtiff/{tiffio.h, tif_dir.h}: TIFFDataWidth() declaration moved to
- the tiffio.h header file.
--
-+
- * Makefile.in, /man/{TIFFDataWidth.3t, Makefile.in, libtiff.3}: Added
- manual page for TIFFDataWidth() function
-
-@@ -3730,8 +3777,8 @@
- as per http://bugzilla.remotesensing.org/show_bug.cgi?id=196.
-
- * tools/tiff2ps.c: Don't emit BeginData/EndData DSC comments
-- since we are unable to properly include the amount to skip.
--
-+ since we are unable to properly include the amount to skip.
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=80
-
- 2002-09-02 Andrey Kiselev <dron@ak4719.spb.edu>
-@@ -3741,7 +3788,7 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=52
-
- 2002-08-22 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * /libtiff/tif_dirinfo.c: Further additions to free custom fields
- in _TIFFSetupFieldInfo() function.
- See http://bugzilla.remotesensing.org/show_bug.cgi?id=169 for details.
-@@ -3750,14 +3797,14 @@
- LZWDecode() and LZWDecodeCompat().
- Fixes http://bugzilla.remotesensing.org/show_bug.cgi?id=190
- and http://bugzilla.remotesensing.org/show_bug.cgi?id=100
--
-+
- * /libtiff/tif_lzw.c:
- Added check for valid code lengths in LZWDecode() and
- LZWDecodeCompat(). Fixes
- http://bugzilla.remotesensing.org/show_bug.cgi?id=115
-
- 2002-08-16 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * /libtiff/{Makefile.vc, libtiff.def}:
- Missed declarations added.
-
-@@ -3768,7 +3815,7 @@
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=177
-
-- * tif_dir.h: changed FIELD_CODEC to 66 from 64 to avoid overlap
-+ * tif_dir.h: changed FIELD_CODEC to 66 from 64 to avoid overlap
- with FIELD_CUSTOM as mentioned in bug 169.
-
- * tif_close.c: added logic to free dynamically created anonymous
-@@ -3777,31 +3824,31 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=169
-
- 2002-08-10 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * /tools/{raw2tiff.c, Makefile.in, Makefile.lcc, Makefile.vc}:
- New tool: raw2tiff --- raw images to TIFF converter. No manual page yet.
-
- 2002-07-31 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_jpeg.c: Fixed problem with setting of nrows in
-+ * libtiff/tif_jpeg.c: Fixed problem with setting of nrows in
- JPEGDecode() as per bugzilla bug (issue 1):
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=129
-
- * libtiff/{tif_jpeg.c,tif_strip.c,tif_print.c}: Hacked tif_jpeg.c to
- fetch TIFFTAG_YCBCRSUBSAMPLING from the jpeg data stream if it isn't
-- present in the tiff tags.
-+ present in the tiff tags.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=168
-
- * libtiff/tif_read.c, libtiff/tif_write.c: TIFFReadScanline() and
- TIFFWriteScanline() now set tif_row explicitly in case the codec has
-- fooled with the value.
-+ fooled with the value.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=129
-
- 2002-06-22 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * /tools/tiff2ps.c: Added workaround for some software that may crash
- when last strip of image contains fewer number of scanlines than
- specified by the `/Height' variable. See
-@@ -3817,8 +3864,8 @@
-
- 2002-06-11 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/contrib/win95: renamed to contrib/win_dib. Added new
-- Tiffile.cpp example of converting TIFF files into a DIB on Win32.
-+ * libtiff/contrib/win95: renamed to contrib/win_dib. Added new
-+ Tiffile.cpp example of converting TIFF files into a DIB on Win32.
- This one is described in:
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=143
-@@ -3834,21 +3881,21 @@
- http://bugzilla.remotesensing.org/show_bug.cgi?id=131
-
- 2002-04-26 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * libtiff/libtiff.def: Added missed declaration.
--
-+
- 2002-04-22 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * tools/fax2tiff.c: Updated to reflect latest changes in libtiff.
- Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=125
-
- 2002-04-20 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * libtiff/tif_open.c: Pointers to custom procedures
- in TIFFClientOpen() are checked to be not NULL-pointers.
--
-+
- 2002-04-18 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * libtiff/libtiff.def: Added missed declarations.
-
- * libtiff/tif_pixarlog.c: Updated for using tif_tagmethods structure.
-@@ -3858,14 +3905,14 @@
- * libtiff/tif_lzw.c: Additional checks for data integrity introduced.
- Should finally close
- http://bugzilla.remotesensing.org/show_bug.cgi?id=100
--
-+
- 2002-04-10 Andrey Kiselev <dron@ak4719.spb.edu>
-
- * tools/tiff2ps: Division by zero fixed.
- Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=88
-
- 2002-04-09 Andrey Kiselev <dron@ak4719.spb.edu>
--
-+
- * libtiff/: tif_dirwrite.c, tif_write.c, tiffio.h:
- TIFFCheckpointDirectory() routine added.
- Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=124
-@@ -3897,7 +3944,7 @@
- replaced by warnings. Now libtiff should read corrupted LZW-compressed
- files by skipping bad strips.
- Closes http://bugzilla.remotesensing.org/show_bug.cgi?id=100
--
-+
- 2002-04-03 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_dirwrite.c: Removed some dead code.
-@@ -3919,18 +3966,18 @@
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=111
-
-- * tif_print.c: Fixed so that ASCII FIELD_CUSTOM values with
-+ * tif_print.c: Fixed so that ASCII FIELD_CUSTOM values with
- passcount set FALSE can be printed (such as TIFFTAG_SOFTWARE).
-
-- * libtiff/tif_dir.c,tif_dirinfo.c,tif_dir.h,tif_ojpeg.c: modified so
-+ * libtiff/tif_dir.c,tif_dirinfo.c,tif_dir.h,tif_ojpeg.c: modified so
- that TIFFTAG_SOFTWARE uses FIELD_CUSTOM as an example.
-
- 2002-03-26 Dwight Kelly <dbmalloc@remotesensing.org>
-
- * libtiff/: tiff.h, tif_dir.c, tif_dir.h, tif_dirinfo.c, tif_dirread.c,
- tif_dirwrite.c: Added get/put code for new tag XMLPACKET as defined
-- in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 spec
-- INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes:
-+ in Adobe XMP Technote. Added missing INKSET tag value from TIFF 6.0 spec
-+ INKSET_MULTIINK (=2). Added missing tags from Adobe TIFF technotes:
- CLIPPATH, XCLIPPATHUNITS, YCLIPPATHUNITS, OPIIMAGEID, OPIPROXY and
- INDEXED. Added PHOTOMETRIC tag value from TIFF technote 4 ICCLAB (=9).
-
-@@ -3989,7 +4036,7 @@
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=94
-
-- * man/Makefile.in: Patch DESTDIR handling
-+ * man/Makefile.in: Patch DESTDIR handling
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=95
-
-@@ -4027,9 +4074,9 @@
-
- 2002-01-04 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_jpeg.c: fixed computation of segment_width for
-- tiles files to avoid error about it not matching the
-- cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile
-+ * libtiff/tif_jpeg.c: fixed computation of segment_width for
-+ tiles files to avoid error about it not matching the
-+ cinfo.d.image_width values ("JPEGPreDecode: Improper JPEG strip/tile
- size.") for ITIFF files. Apparently the problem was incorporated since
- 3.5.5, presumably during the OJPEG/JPEG work recently.
-
-@@ -4039,7 +4086,7 @@
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=94
-
-- * libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1
-+ * libtiff/tif_getimage.c: If DEFAULT_EXTRASAMPLE_AS_ALPHA is 1
- (defined in tiffconf.h - 1 by default) then the RGBA interface
- will assume that a fourth extra sample is ASSOCALPHA if the
- EXTRASAMPLE value isn't set for it. This changes the behaviour of
-@@ -4051,9 +4098,9 @@
-
- 2001-12-12 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_jpeg.c: allow jpeg data stream sampling values to
-- override those from tiff directory. This makes this work with
-- ImageGear generated files.
-+ * libtiff/tif_jpeg.c: allow jpeg data stream sampling values to
-+ override those from tiff directory. This makes this work with
-+ ImageGear generated files.
-
- 2001-12-07 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -4066,7 +4113,7 @@
- * Reissue 3.5.7 release.
-
- * libtiff/mkversion.c: Fix output of TIFF_VERSION to be
-- YYYYMMDD so that it is increasing over time.
-+ YYYYMMDD so that it is increasing over time.
-
- * Makefile.in: Ensure that tiffvers.h is regenerated in the
- make release target.
-@@ -4091,8 +4138,8 @@
-
- 2001-10-10 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tiff.h: I have created COMPRESSION_CCITT_T4,
-- COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases
-+ * libtiff/tiff.h: I have created COMPRESSION_CCITT_T4,
-+ COMPRESSION_CCITT_T6, TIFFTAG_T4OPTIONS and TIFFTAG_T6OPTIONS aliases
- in keeping with TIFF 6.0 standard in tiff.h
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=83
-@@ -4112,10 +4159,10 @@
- error about LZW not being available.
-
- * libtiff/tif_dir.c: propagate failure to initialize compression
-- back from TIFFSetField() as an error status, so applications can
-+ back from TIFFSetField() as an error status, so applications can
- detect failure.
-
-- * libtiff/tif_dir.c: removed the auto replacement of
-+ * libtiff/tif_dir.c: removed the auto replacement of
- COMPRESSION_LZW with COMPRESSION_NONE in _TIFFVSetField().
-
- * Removed Makefile, tools/Makefile, port/install.sh, man/Makefile
-@@ -4123,7 +4170,7 @@
-
- 2001-09-22 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_ojpeg.c: new update from Scott.
-+ * libtiff/tif_ojpeg.c: new update from Scott.
-
- 2001-09-09 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -4142,7 +4189,7 @@
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=47
-
-- * tools/tiff2ps.c: added OJPEG YCbCr to RGB support.
-+ * tools/tiff2ps.c: added OJPEG YCbCr to RGB support.
-
- * libtiff/tif_ojpeg.c: Applied substantial patch from Scott.
-
-@@ -4151,14 +4198,14 @@
- * libtiff/tif_packbits.c: fixed memory overrun error.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=77
--
-+
- 2001-08-31 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_getimage.c: relax handling of contig case where
- there are extra samples that are supposed to be ignored. This
-- should now work for 8bit greyscale or palletted images.
-+ should now work for 8bit greyscale or palletted images.
-
-- http://bugzilla.remotesensing.org/show_bug.cgi?id=75
-+ http://bugzilla.remotesensing.org/show_bug.cgi?id=75
-
- 2001-08-28 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -4171,15 +4218,15 @@
-
- * libtiff/tif_getimage.c: Use memmove() instead of TIFFmemcpy()
- in TIFFReadRGBATile() to avoid issues in cases of overlapping
-- buffers. See Bug 69 in Bugzilla.
-+ buffers. See Bug 69 in Bugzilla.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=69
--
-+
- * tools/tiff2rgba.c: fixed getopt() call so that -b works again.
-
- 2001-08-09 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__
-+ * libtiff/tiff.h, libtiff/tif_fax3.c: added check for __LP64__
- when checking for 64 bit architectures as per bugzilla bug 67.
-
- 2001-07-27 Frank Warmerdam <warmerdam@pobox.com>
-@@ -4189,7 +4236,7 @@
-
- 2001-07-20 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H
-+ * libtiff/tif_jpeg.c: Define HAVE_BOOLEAN on windows if RPCNDR.H
- has been included.
-
- 2001-07-19 Frank Warmerdam <warmerdam@pobox.com>
-@@ -4201,11 +4248,11 @@
-
- * libtiff/tif_ojpeg.c: updates from Scott. Handles colors
- much better. Now depends on having patched libjpeg as per
-- patch in contrib/ojpeg/*.
-+ patch in contrib/ojpeg/*.
-
- 2001-07-17 Frank Warmerdam <warmerdam@pobox.com>
-
-- * */Makefile.in: added DESTDIR support.
-+ * */Makefile.in: added DESTDIR support.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=60
-
-@@ -4213,20 +4260,20 @@
-
- * configure, libtiff/Makefile.in: applied OpenBSD patches
- as per:
--
-+
- http://bugzilla.remotesensing.org/show_bug.cgi?id=61
-
- 2001-06-28 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/tif_getimage.c: Fixed so that failure is properly
-- reported by gtTileContig, gtStripContig, gtTileSeparate and
-+ reported by gtTileContig, gtStripContig, gtTileSeparate and
- gtStripSeparate.
-
- See http://bugzilla.remotesensing.org/show_bug.cgi?id=51
-
-- * tiffcmp.c: Fixed multi samples per pixel support for ContigCompare.
-+ * tiffcmp.c: Fixed multi samples per pixel support for ContigCompare.
- Updated bug section of tiffcmp.1 to note tiled file issues.
--
-+
- See http://bugzilla.remotesensing.org/show_bug.cgi?id=53
-
- 2001-06-22 Frank Warmerdam <warmerdam@pobox.com>
-@@ -4267,10 +4314,10 @@
-
- 2001-05-08 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tif_dirinfo.c: moved pixar and copyright flags to
-+ * libtiff/tif_dirinfo.c: moved pixar and copyright flags to
- ensure everything is in order.
-
-- * libtiff/libtiff.def: added TIFFCreateDirectory and
-+ * libtiff/libtiff.def: added TIFFCreateDirectory and
- TIFFDefaultStripSize as per:
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=46
-@@ -4279,10 +4326,10 @@
-
- * libtiff/tif_dirinfo.c: Modified the TIFF_BYTE definition for
- TIFFTAG_PHOTOSHOP to use a writecount of TIFF_VARIABLE2 (-3) to
-- force use of uint32 counts instead of short counts.
-+ force use of uint32 counts instead of short counts.
-
- * libtiff/tif_dirwrite.c: Added support for TIFF_VARIABLE2 in the
-- case of writing TIFF_BYTE/TIFF_SBYTE fields.
-+ case of writing TIFF_BYTE/TIFF_SBYTE fields.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=43
-
-@@ -4318,20 +4365,20 @@
- with the inttypes.h include file on AIX.
-
- See http://bugzilla.remotesensing.org/show_bug.cgi?id=39
--
-+
- * VERSION: update to 3.5.7 beta in preparation for release.
-
- * configure/config.site: modified to check if -lm is needed for
- MACHDEPLIBS if not supplied by config.site. Needed for Darwin.
-
-- * config.guess: updated wholesale to an FSF version apparently
-- from 1998 (as opposed to 1994). This is mainly inspired by
-+ * config.guess: updated wholesale to an FSF version apparently
-+ from 1998 (as opposed to 1994). This is mainly inspired by
- providing for MacOS X support.
-
- 2001-03-29 Frank Warmerdam <warmerdam@pobox.com>
-
- * configure, Makefile.in, etc: added support for OPTIMIZER being
-- set from config.site.
-+ set from config.site.
-
- 2001-03-28 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -4350,7 +4397,7 @@
- (in particular short ones) print properly.
-
- See http://bugzilla.remotesensing.org/show_bug.cgi?id=35
--
-+
- * tiff2ps.c/tiff2ps.1: Substantial changes to tiff2ps by
- Bruce A. Mallett. See check message for detailed information
- on all the changes, including a faster encoder, fixes for level
-@@ -4358,7 +4405,7 @@
-
- 2001-03-27 Frank Warmerdam <warmerdam@pobox.com>
-
-- * libtiff/tiffio.h: Changed "#if LOGLUV_PUBLIC" to
-+ * libtiff/tiffio.h: Changed "#if LOGLUV_PUBLIC" to
- "#ifdef LOGLUV_PUBLIC" so it will work with VisualAge on AIX.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=39
-@@ -4370,7 +4417,7 @@
-
- 2001-03-13 Frank Warmerdam <warmerdam@pobox.com>
-
-- * tif_getimage.c: Added support for 16bit minisblack/miniswhite
-+ * tif_getimage.c: Added support for 16bit minisblack/miniswhite
- images in RGBA interface.
-
- 2001-03-02 Frank Warmerdam <warmerdam@pobox.com>
-@@ -4381,29 +4428,29 @@
-
- * Brent Roman contributed updated tiffcp utility (and tiffcp.1)
- with support for extracting subimages with the ,n syntax, and also
-- adding the -b bias removal flag.
-+ adding the -b bias removal flag.
-
- 2001-02-16 Frank Warmerdam <warmerdam@pobox.com>
-
- * libtiff/libtiff.def: Brent Roman submitted new version adding
-- serveral missing entry points.
-+ serveral missing entry points.
-
- * libtiff/tif_dirinfo.c: don't declare tiffFieldInfo static on VMS.
-- Some sort of weird VMS thing.
-+ Some sort of weird VMS thing.
-
- http://bugzilla.remotesensing.org/show_bug.cgi?id=31
-
-- * tif_luv.c/tiff.h/tiffio.h:
-- New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward
-+ * tif_luv.c/tiff.h/tiffio.h:
-+ New version of TIFF LogLuv (SGILOG) modules contributed by Greg Ward
- (greg@shutterfly.com). He writes:
-
- 1) I improved the gamut-mapping function in tif_luv.c for imaginary
-- colors, because some images were being super-saturated on the input
-+ colors, because some images were being super-saturated on the input
- side and this resulted in some strange color shifts in the output.
-
- 2) I added a psuedotag in tiff.h to control random dithering during
-- LogLuv encoding. This is turned off by default for 32-bit LogLuv and
-- on for 24-bit LogLuv output. Dithering improves the average color
-+ LogLuv encoding. This is turned off by default for 32-bit LogLuv and
-+ on for 24-bit LogLuv output. Dithering improves the average color
- accuracy over the image.
-
- 3) I added a #define for LOG_LUV_PUBLIC, which is enabled by default in
-@@ -4416,20 +4463,20 @@
- 2001-01-23 Frank Warmerdam <warmerdam@pobox.com>
-
- * tif_fax3.c: keep rw_mode flag internal to fax3 state to remember
-- whether we are encoding or decoding. This is to ensure graceful
-+ whether we are encoding or decoding. This is to ensure graceful
- recovery if TIFFClientOpen() discovers an attempt to open a compressed
-- file for "r+" access, and subsequently close it, as it resets the
-+ file for "r+" access, and subsequently close it, as it resets the
- tif_mode flag to O_RDONLY in this case to avoid writes, confusing the
- compressor's concept of whether it is in encode or decode mode.
-
--2001-01-08 Mike Welles <mike@bangstate.com>
-+2001-01-08 Mike Welles <mike@bangstate.com>
-
- * Makefile.in: Now cleaning up after itself after creating the .tar.gz and .zip
--
-+
- 2001-01-07 Frank Warmerdam <warmerdam@pobox.com>
-
- * html/libtiff.html: Fixed arguments in example for TIFFRGBAImageGet()
-- as per bug report by Patrick Connor.
-+ as per bug report by Patrick Connor.
-
- 2000-12-28 Frank Warmerdam <warmerdam@pobox.com>
-
-@@ -4437,12 +4484,12 @@
-
- * Fixed libtiff/makefile.vc to make tiffvers.h not version.h.
-
--2000-12-22 Mike Welles <mike@bangstate.com>
-+2000-12-22 Mike Welles <mike@bangstate.com>
- * added link to CVS mirror from index.html
--
-- * updated html/internals.html to note that LZW compression is
-- not supported by default.
--
-+
-+ * updated html/internals.html to note that LZW compression is
-+ not supported by default.
-+
- 2000-12-22 Frank Warmerdam <warmerdam@pobox.com>
-
- * updated html/libtiff.html to not point at Niles' old JPL web site
-@@ -4454,19 +4501,19 @@
- Leonard Rosenthol <leonardr@lazerware.com>. May interfere
- with correct building on older systems. If so, please let me know.
-
--2000-12-19 Mike Welles <mike@bangsate.com>
-+2000-12-19 Mike Welles <mike@bangsate.com>
-
-- * Took out LZW Encoding from tif_lzw.c
-+ * Took out LZW Encoding from tif_lzw.c
-
- * Created HOWTO-RELEASE
-
- * Created html/v3.5.6.html
-
- * updated index.html
--
-+
- 2000-12-01 Frank Warmerdam <warmerdam@pobox.com>
-
-- * Added patches for EOFB support in tif_fax3.c and tif_fax3.h.
-+ * Added patches for EOFB support in tif_fax3.c and tif_fax3.h.
- Patches supplied by Frank Cringle <fdc@cliwe.ping.de>
- Example file at: ftp://ftp.remotesensing.org/pub/libtiff/eofb_396.tif
-
-@@ -4480,30 +4527,30 @@
- targets so libtiff.so will be built with an explicit dependency
- on libm.so.
-
-- * libtiff/Makefile.in: Use softlinks to link libtiff.so.3 to
-- libtiff.so.3.5.5.
-+ * libtiff/Makefile.in: Use softlinks to link libtiff.so.3 to
-+ libtiff.so.3.5.5.
-
-- * libtiff/Makefile.in & configure: Remove all references to the ALPHA
-- file, or ALPHA version logic. Added stuff about DIST_POINT in
-+ * libtiff/Makefile.in & configure: Remove all references to the ALPHA
-+ file, or ALPHA version logic. Added stuff about DIST_POINT in
- place of DIST_TYPE and the alpha release number stuff.
-
- 2000-11-22 Frank Warmerdam <warmerdam@pobox.com>
-
- * I have applied a patch from Steffen Moeller <moeller@ebi.ac.uk> to
-- the configure script so that it now accepts the --prefix, and
-- --exec-prefix directives.
-+ the configure script so that it now accepts the --prefix, and
-+ --exec-prefix directives.
-
- 2000-11-13 Frank Warmerdam <warmerda@cs46980-c>
-
-- * I have made a variety of modifications in an effort to ensure the
-+ * I have made a variety of modifications in an effort to ensure the
- TIFFLIB_VERSION macro is automatically generated from the RELEASE-DATE
-- file which seems to be updated regularly.
-+ file which seems to be updated regularly.
-
-- o mkversion.c now reads RELEASE-DATE and emits TIFFLIB_VERSION in
-- version include file.
-- o renamed version.h to tiffvers.h because we now have to install it
-- with the public libtiff include files.
-- o include tiffvers.h in tiffio.h.
-+ o mkversion.c now reads RELEASE-DATE and emits TIFFLIB_VERSION in
-+ version include file.
-+ o renamed version.h to tiffvers.h because we now have to install it
-+ with the public libtiff include files.
-+ o include tiffvers.h in tiffio.h.
- o updated tif_version.c to use tiffvers.h.
- o Updated Makefile.in accordingly.
-
-@@ -4517,13 +4564,13 @@
- See http://bugzilla.remotesensing.org/show_bug.cgi?id=20
- Some patches from Rick LaMont of Dot C Software.
-
-- * Modified tif_packbits.c encoder to avoid compressing more
-+ * Modified tif_packbits.c encoder to avoid compressing more
- data than provided if rowsize doesn't factor into provided data
- (such as occurs for YCbCr).
-
- 2000-10-19 Frank Warmerdam <warmerda@cs46980-c>
-
-- * tools/rgb2ycbcr.c: fixed output strip size to account for vertical
-+ * tools/rgb2ycbcr.c: fixed output strip size to account for vertical
- roundup if rows_per_strip not a multiple of vertical sample size.
-
- 2000-10-16 Frank Warmerdam <warmerda@cs46980-c>
-@@ -4539,8 +4586,8 @@
- 2000-10-12 Frank Warmerdam <warmerda@cs46980-c>
-
- * Modified tiff2bw to ensure portions add to 100%, and that
-- white is properly recovered.
--
-+ white is properly recovered.
-+
- See bug http://bugzilla.remotesensing.org/show_bug.cgi?id=15
- Patch c/o Stanislav Brabec <utx@penguin.cz>
-
-@@ -4554,26 +4601,26 @@
-
- 2000-09-27 Frank Warmerdam <warmerda@cs46980-c>
-
-- * Added GNULDdso target an`d switched linux and freebsd to use it.
-+ * Added GNULDdso target an`d switched linux and freebsd to use it.
-
- 2000-09-26 Frank Warmerdam <warmerda@cs46980-c>
-
- * Applied patch for 0x0000 sequences in tif_fax3.h's definition
-- of EXPAND1D() as per bug 11 (from Roman).
-+ of EXPAND1D() as per bug 11 (from Roman).
-
- 2000-09-25 Frank Warmerdam <warmerda@cs46980-c>
- * Fixed tiffcomp.h to avoid win32 stuff if unix #defined, to improve
- cygwin compatibility.
-
- * Applied patch from Roman Shpount to tif_fax3.c. This seems to
-- be a proper fix to the buffer sizing problem. See
-+ be a proper fix to the buffer sizing problem. See
- http://bugzilla.remotesensing.org/show_bug.cgi?id=11
-
- * Fixed tif_getimage.c to fix overrun bug with YCbCr images without
- downsampling. http://bugzilla.remotesensing.org/show_bug.cgi?id=10
- Thanks to Nick Lamb <njl98r@ecs.soton.ac.uk> for reporting the
- bug and proving the patch.
--
-+
- 2000-09-18 Frank Warmerdam <warmerda@cs46980-c>
-
- * Fixed tif_jpeg.c so avoid destroying the decompressor before
-@@ -4603,15 +4650,15 @@
- * Tentatively added support for SAMPLEFORMAT_COMPLEXIEEEFP, and
- SAMPLEFORMAT_COMPLEXINT.
-
--2000-07-13 Mike Welles <mike@onshore.com>
-+2000-07-13 Mike Welles <mike@onshore.com>
-+
-+ * index.html, bugs.html: added bugzilla info.
-
-- * index.html, bugs.html: added bugzilla info.
--
- 2000-07-12 Frank Warmerdam <warmerda@rommel.atlsci.com>
-
- * tif_read.c: fix subtle bug with determining the number of
- rows for strips that are the last strip in a separation but
-- not the last strip of all in TIFFReadEncodedStrip().
-+ not the last strip of all in TIFFReadEncodedStrip().
-
- * Applied 16/32 bit fix to tif_fax3.c. Fix supplied by
- Peter Skarpetis <peters@serendipity-software.com.au>
-@@ -4633,7 +4680,7 @@
-
- * libtiff/tif_dirread.c: Don't use estimate strip byte count for
- one tile/strip images with an offset, and byte count of zero. These
-- could be "unpopulated" images.
-+ could be "unpopulated" images.
-
- 2000-04-18 Frank Warmerdam <warmerda@rommel.atlsci.com>
-
-@@ -4648,17 +4695,17 @@ Tue Apr 18 16:18:08 2000 Frank Warmerdam <warmerda@esabot.atlsci.com>
- 2000-04-12 Mike Welles <mike@onshore.com>
- * configure: Fixed stupid mistake in libc6 test on Linux
-
--2000-04-04 Mike Welles <mike@onshore.com>
-+2000-04-04 Mike Welles <mike@onshore.com>
- * tif_win32.c: Applied patch to fix overreads and ovverwrites
-- caught by BoundsChecker. From Arvan Pritchard
-- <arvan.pritchard@infomatix.co.uk> (untested).
--
-- * tif_getimage.c: Applied patch to silence VC6 warnings. From
-+ caught by BoundsChecker. From Arvan Pritchard
-+ <arvan.pritchard@infomatix.co.uk> (untested).
-+
-+ * tif_getimage.c: Applied patch to silence VC6 warnings. From
- Arvan Pritchard <arvan.pritchard@informatix.co.uk>
--
-- * tif_lzw.c: Applied patch to silence VC6 warnings. From
-+
-+ * tif_lzw.c: Applied patch to silence VC6 warnings. From
- Arvan Pritchard <arvan.pritchard@informatix.co.uk>
--
-+
- 2000-03-28 Frank Warmerdam <warmerda@cs46980-c>
-
- * Added contrib/stream (stream io) code submitted by Avi Bleiweiss.
-@@ -4668,34 +4715,34 @@ Tue Apr 18 16:18:08 2000 Frank Warmerdam <warmerda@esabot.atlsci.com>
- * fax2ps: Fixed mixup of width and height in bounding box statement
- as per submission by Nalin Dahyabhai <nalin@redhat.com>.
-
--2000-03-27 Mike Welles <mike@onshore.com>
-+2000-03-27 Mike Welles <mike@onshore.com>
-
-- * fax2ps: Modified printruns to take uint32 instead of uint16.
-- Patch courtesy of Bernt Herd <herd@herdsoft.com>
--
--2000-03-20 Mike Welles <mike@onshore.com>
-+ * fax2ps: Modified printruns to take uint32 instead of uint16.
-+ Patch courtesy of Bernt Herd <herd@herdsoft.com>
-
-- * configure: added test for libc6 for linux targets. Bug reported by
-+2000-03-20 Mike Welles <mike@onshore.com>
-+
-+ * configure: added test for libc6 for linux targets. Bug reported by
- Stanislav Brabec <utx@k332.feld.cvut.cz>
-
-- * Added 3.5 docs to html/Makefile.in.
-+ * Added 3.5 docs to html/Makefile.in.
- Thanks to Stanislav Brabec <utx@k332.feld.cvut.cz>
-
-- * configure: fixed bugs in sed scripts
-- (applied sed script s:/@:s;@:;s:/s;;:;: to configure).
-+ * configure: fixed bugs in sed scripts
-+ (applied sed script s:/@:s;@:;s:/s;;:;: to configure).
- fix submitted to Stanislav Brabec <utx@k332.feld.cvut.cz>
-
-- * tools/iptcutil was not in files list, and wasn't being
-+ * tools/iptcutil was not in files list, and wasn't being
- added to tar archive. Updated Makefile.in.
-
- 2000-03-17 Frank Warmerdam <warmerda@cs46980-c>
-
- * tif_fax3.c: Fixed serious bug introduced during the uint16->uint32
-- conversion for the run arrays.
-+ conversion for the run arrays.
-
- 2000-03-03 Frank Warmerdam <warmerda@cs46980-c.mtnk1.on.wave.home.com>
-
-- * Set td_sampleformat default to SAMPLEFORMAT_UINT instead of
-+ * Set td_sampleformat default to SAMPLEFORMAT_UINT instead of
- SAMPLEFORMAT_VOID in TIFFDefaultDirectory() in tif_dir.c.
-
- 2000-03-02 Frank Warmerdam <warmerda@cs46980-c.mtnk1.on.wave.home.com>
-@@ -4716,20 +4763,20 @@ Tue Feb 15 22:01:05 2000 Frank Warmerdam <warmerda@gdal.velocet.ca>
- set to 1, and added default (off) setting in tiffconf.h. This
- should eventually be set by the configure script somehow.
-
-- The original work on all these 2-4GB changes was done by
-+ The original work on all these 2-4GB changes was done by
- Peter Smith (psmith@creo.com).
-
- * Modified tif_win32.c to support 2-4GB seeks.
-
- * tentatively changed toff_t to be unsigned instead of signed to
-- facilitate support for 2-4GB files.
-+ facilitate support for 2-4GB files.
-
- * Updated a variety of files to use toff_t. Fixed some mixups
- between toff_t and tsize_t.
-
- Fri Jan 28 10:13:49 2000 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * Largely reimplemented contrib/addtiffo to avoid temp files,
-+ * Largely reimplemented contrib/addtiffo to avoid temp files,
- updating the TIFF file in place. Fixed a few other bugs to.
-
- * Set tif_rawdatasize to zero when freeing raw data buffer in
-@@ -4738,7 +4785,7 @@ Fri Jan 28 10:13:49 2000 Frank Warmerdam <warmerda@gdal.velocet.ca>
- * Enabled "REWRITE_HACK" in tif_write.c by default.
-
- * Fix bug in tif_write.c when switching between reading one directory
-- and writing to another.
-+ and writing to another.
-
- * Made TIFFWriteCheck() public, and added TIFFCreateDirectory()
-
-@@ -4750,41 +4797,41 @@ Tue Jan 4 13:39:00 2000 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- * Added libtiff/libtiff.def to TIFFILES distribution list.
-
--Mon Dec 27 12:13:39 EST 1999 Mike Welles <mike@onshore.com>
-+Mon Dec 27 12:13:39 EST 1999 Mike Welles <mike@onshore.com>
-
-- * Created lzw compression kit, as a new module (libtiff-lzw-compression-kit).
-+ * Created lzw compression kit, as a new module (libtiff-lzw-compression-kit).
-
- * Altered descriptions in tools to reflect "by default" lzw not supported
-
-- * Updated index.html to note lzw compression kit.
--
-+ * Updated index.html to note lzw compression kit.
-+
- Tue Dec 21 14:01:51 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * Added fax3sm_winnt.c to distribution list in Makefile.in.
-+ * Added fax3sm_winnt.c to distribution list in Makefile.in.
-
- Tue Dec 21 11:04:45 EST 1999 Mike Welles <mike@onshore.com> *** 3.5.4 release ***
--
-- * Aadded Pixar tag support. Contributed by Phil Beffery <phil@pixar.com>
-
-- * Made one more change to tif_dir.c for removal of LZW compression. Also added notice
-- when LZW compression invoked.
-+ * Aadded Pixar tag support. Contributed by Phil Beffery <phil@pixar.com>
-+
-+ * Made one more change to tif_dir.c for removal of LZW compression. Also added notice
-+ when LZW compression invoked.
-
- * Changed default compression in tools to TIFF_PACKBITS, and changed usage descriptions
- in tools to reflect removal of LZW compression
--
-+
- Mon Dec 20 18:39:02 EST 1999 Mike Welles <mike@onshore.com>
-
-- * Fixed bug that caused LZW (non) compression to segfault. Added
-- warning about LZW compression removed being removed, and why.
-+ * Fixed bug that caused LZW (non) compression to segfault. Added
-+ warning about LZW compression removed being removed, and why.
-+
-+ * Added nostrip to install in tools/Makefile.in so that debugging
-+ symbols are kept.
-
-- * Added nostrip to install in tools/Makefile.in so that debugging
-- symbols are kept.
--
- Tue Dec 7 12:04:47 EST 1999 Mike Welles <mike@onshore.com>
-
-- * Added patch from Ivo Penzar <ivo.penzar@infolink-software.com>,
-- supporting Adobe ZIP deflate. Untested.
--
-+ * Added patch from Ivo Penzar <ivo.penzar@infolink-software.com>,
-+ supporting Adobe ZIP deflate. Untested.
-+
- Sat Dec 4 15:47:11 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- * Made Packbits the default compression in tools/tiff2rgba.c instead
-@@ -4794,12 +4841,12 @@ Tue Nov 30 14:41:43 1999 Frank Warmerdam <warmerda@gdal.velocet.ca> *** 3.5
-
- * Added tif_luv to contrib/djgpp/Makefile.lib.
-
--Tue Nov 30 14:15:32 EST 1999 Mike Welles <mike@onshore.com>
-+Tue Nov 30 14:15:32 EST 1999 Mike Welles <mike@onshore.com>
-+
-+ * Added zip creation to relase makefile target
-
-- * Added zip creation to relase makefile target
-+ * Added html for TIFFWriteTile.3t man page.
-
-- * Added html for TIFFWriteTile.3t man page.
--
- Tue Nov 30 09:20:16 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- * Added some changes to tif_write.c to support rewriting existing
-@@ -4812,26 +4859,26 @@ Mon Nov 29 11:43:42 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- Sun Nov 28 20:36:18 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * Added notes on use of makefile.vc in build.html, and fixed
-+ * Added notes on use of makefile.vc in build.html, and fixed
- email subscription address.
-
--199-11-28 Mike Welles <mike@onshore.com>
-+1999-11-28 Mike Welles <mike@onshore.com>
-
-- * Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c
-+ * Fixed apocalypse-inducing y2k bug in contrib/ras/ras2tiff.c
-
- * Did some casts cleaning up to reduce compiler warnings in tif_fax3.c,
-- from Bruce Carmeron <cameron@petris.com> -- modifications of
-- changes made by Frank (sun cc still complained on cast).
-+ from Bruce Carmeron <cameron@petris.com> -- modifications of
-+ changes made by Frank (sun cc still complained on cast).
-
- * Added tiffconf.h to install target per request from Bill
- Radcliffe <billr@corbis.com>: "We need a way for ImageMagick to
- know features have been compiled into the TIFF library in order to
-- handle things properly".
--
-+ handle things properly".
-+
- Sat Nov 27 16:49:21 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- * fixed various VC++ warnings as suggested by Gilles Vollant
-- <info@winimage.com>.
-+ <info@winimage.com>.
-
- Wed Nov 24 12:08:16 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-@@ -4840,59 +4887,59 @@ Wed Nov 24 12:08:16 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- 1999-11-22 Mike Welles <mike@onshore.com>
- * HTML-ized the man pages, added to html/man
--
-- * Removed LZW Compression to comply with Unisys patent extortion.
--
--1999-09-29 Mike Welles <mike@onshore.com>
-- * Corrected one remaining 16 -> 32 bit value in tif_fax3.c,
-- From Ivo Penzar <ivo.penzar@infolink-software.com.
-+
-+ * Removed LZW Compression to comply with Unisys patent extortion.
-+
-+1999-09-29 Mike Welles <mike@onshore.com>
-+ * Corrected one remaining 16 -> 32 bit value in tif_fax3.c,
-+ From Ivo Penzar <ivo.penzar@infolink-software.com.
-
- * Added patch from Ivo Penzar to have TiffAdvanceDirectory handle
- memory mapped files. <ivo.penzar@infolink-software.com>
--
-+
- 1999-09-26 Mike Welles <mike@onshore.com> *** 3.5.2 release ***
-- * Corrected alpha versioning.
-+ * Corrected alpha versioning.
-
-- * Removed distinction between alpha and release targets in Makefile.in.
-+ * Removed distinction between alpha and release targets in Makefile.in.
-
-- * added release.stamp target, which tags cvs tree, and updates
-+ * added release.stamp target, which tags cvs tree, and updates
- "RELEASE-DATE"
-
-- * added releasediff target, which diffs tree with source as of
-+ * added releasediff target, which diffs tree with source as of
- date in "RELEASE-DATE"
--
-- * Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving
-- away from alpha/non-alpha distinctions).
-
-- * updated html to reflect release
--
-+ * Ticked up version to 3.5.2 (alpha 01 -- but I think we'll moving
-+ away from alpha/non-alpha distinctions).
-+
-+ * updated html to reflect release
-+
- 1999-09-23 <warmerda@CS46980-B>
-
- * Set O_BINARY for tif_unix.c open() ... used on cygwin for instance.
-
- * Added CYGWIN case in configure.
-
--Fri Sep 17 00:13:51 CEST 1999 Mike Welles <mike@onshore.com>
-+Fri Sep 17 00:13:51 CEST 1999 Mike Welles <mike@onshore.com>
-+
-+ * Applied Francois Dagand's patch to handle fax decompression bug.
-+ (sizes >= 65536 were failing)
-
-- * Applied Francois Dagand's patch to handle fax decompression bug.
-- (sizes >= 65536 were failing)
--
- Tue Sep 14 21:31:43 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested
-+ * Applied "a" mode fix to tif_win32.c/TIFFOpen() as suggested
- by Christopher Lawton <clawton@mathworks.com>
-
- Wed Sep 8 08:19:18 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * Added IRIX/gcc, and OSF/1 4.x support on behalf of
-+ * Added IRIX/gcc, and OSF/1 4.x support on behalf of
- Albert Chin-A-Young <china@thewrittenword.com>
-
-- * Added TIFFReassignTagToIgnore() API on behalf of
-+ * Added TIFFReassignTagToIgnore() API on behalf of
- Bruce Cameron <cameron@petris.com>. Man page still pending.
-
- Wed Aug 25 11:39:07 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * Added test target in Makefile, test_pics.sh script and pics/*.rpt
-+ * Added test target in Makefile, test_pics.sh script and pics/*.rpt
- files to provide for a rudimentary testsuite.
-
- * Added contrib/tags back from old distribution ... fixed up a bit.
-@@ -4900,7 +4947,7 @@ Wed Aug 25 11:39:07 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
- 1999-08-16 <warmerda@CS46980-B>
-
- * Added simple makefile.vc makefiles for building with MS VC++
-- on Windows NT/98/95 in console mode. Stuff in contrib/win* make give
-+ on Windows NT/98/95 in console mode. Stuff in contrib/win* make give
- better solutions for some users.
-
- Mon Aug 16 21:52:11 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-@@ -4910,20 +4957,20 @@ Mon Aug 16 21:52:11 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
- 1999-08-16 Michael L. Welles <mike@kurtz.fake>
-
-- * Updated html/index.html with anon CVS instructions.
-+ * Updated html/index.html with anon CVS instructions.
-
- Mon Aug 16 13:18:41 1999 Frank Warmerdam <warmerda@gdal.velocet.ca>
-
-- * pre-remove so link before softlink in LINUXdso action in
-+ * pre-remove so link before softlink in LINUXdso action in
- libtiff/Makefile.in to avoid failure on LINUXdso builds other than
- the first.
-
- * Fixed problem with cvtcmap() in tif_getimage.c modifying the
- colormaps owned by the TIFF handle itself when trying to fixup wrong
- (eight bit) colormaps. Corrected by maintaining a private copy of
-- the colormap.
-+ the colormap.
-
-- * Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in
-+ * Added TIFFReadRGBATile()/TIFFReadRGBAStrip() support in
- tif_getimage.c.
-
- * CVS Repository placed at remotesensing.org. ChangeLog added.
-diff --git a/Makefile.in b/Makefile.in
-index 72fbbf3..2ed5682 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/aclocal.m4 b/aclocal.m4
-index d7d14c8..9293eda 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -1,4 +1,4 @@
--# generated automatically by aclocal 1.12.4 -*- Autoconf -*-
-+# generated automatically by aclocal 1.12.5 -*- Autoconf -*-
-
- # Copyright (C) 1996-2012 Free Software Foundation, Inc.
-
-@@ -34,7 +34,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION],
- [am__api_version='1.12'
- dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
- dnl require some minimum version. Point them to the right macro.
--m4_if([$1], [1.12.4], [],
-+m4_if([$1], [1.12.5], [],
- [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
- ])
-
-@@ -50,7 +50,7 @@ m4_define([_AM_AUTOCONF_VERSION], [])
- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
- # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
--[AM_AUTOMAKE_VERSION([1.12.4])dnl
-+[AM_AUTOMAKE_VERSION([1.12.5])dnl
- m4_ifndef([AC_AUTOCONF_VERSION],
- [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
- _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-diff --git a/build/Makefile.in b/build/Makefile.in
-index 1a316b1..cea7a08 100644
---- a/build/Makefile.in
-+++ b/build/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/Makefile.in b/contrib/Makefile.in
-index ae67554..72be7a3 100644
---- a/contrib/Makefile.in
-+++ b/contrib/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/acorn/Makefile.in b/contrib/acorn/Makefile.in
-index 1e966b4..5a73941 100644
---- a/contrib/acorn/Makefile.in
-+++ b/contrib/acorn/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/addtiffo/Makefile.in b/contrib/addtiffo/Makefile.in
-index 25a6e8b..e07640c 100644
---- a/contrib/addtiffo/Makefile.in
-+++ b/contrib/addtiffo/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/dbs/Makefile.in b/contrib/dbs/Makefile.in
-index f5b3ee5..d5e7b40 100644
---- a/contrib/dbs/Makefile.in
-+++ b/contrib/dbs/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/dbs/xtiff/Makefile.in b/contrib/dbs/xtiff/Makefile.in
-index 2d1ce94..c655c54 100644
---- a/contrib/dbs/xtiff/Makefile.in
-+++ b/contrib/dbs/xtiff/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/dbs/xtiff/xtiff.c b/contrib/dbs/xtiff/xtiff.c
-index 7fe3977..de0b2a7 100644
---- a/contrib/dbs/xtiff/xtiff.c
-+++ b/contrib/dbs/xtiff/xtiff.c
-@@ -1,5 +1,5 @@
- /*
-- * $Id: xtiff.c,v 1.2.2.1 2010-06-08 18:50:40 bfriesen Exp $
-+ * $Id: xtiff.c,v 1.2.2.2 2013-05-02 14:44:43 tgl Exp $
- *
- * xtiff - view a TIFF file in an X window
- *
-@@ -512,9 +512,9 @@ SetNameLabel()
- Arg args[1];
-
- if (tfMultiPage)
-- sprintf(buffer, "%s - page %d", fileName, tfDirectory);
-+ snprintf(buffer, sizeof(buffer), "%s - page %d", fileName, tfDirectory);
- else
-- strcpy(buffer, fileName);
-+ snprintf(buffer, sizeof(buffer), "%s", fileName);
- XtSetArg(args[0], XtNlabel, buffer);
- XtSetValues(labelWidget, args, 1);
- }
-diff --git a/contrib/iptcutil/Makefile.in b/contrib/iptcutil/Makefile.in
-index 75b1ca3..5858c03 100644
---- a/contrib/iptcutil/Makefile.in
-+++ b/contrib/iptcutil/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/mac-cw/Makefile.in b/contrib/mac-cw/Makefile.in
-index a94a33a..054d44e 100644
---- a/contrib/mac-cw/Makefile.in
-+++ b/contrib/mac-cw/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/mac-mpw/Makefile.in b/contrib/mac-mpw/Makefile.in
-index 8fdaae1..7dd27d7 100644
---- a/contrib/mac-mpw/Makefile.in
-+++ b/contrib/mac-mpw/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/mfs/Makefile.in b/contrib/mfs/Makefile.in
-index 230c925..4ee41af 100644
---- a/contrib/mfs/Makefile.in
-+++ b/contrib/mfs/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/pds/Makefile.in b/contrib/pds/Makefile.in
-index 3511f62..fa0bcf7 100644
---- a/contrib/pds/Makefile.in
-+++ b/contrib/pds/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/ras/Makefile.in b/contrib/ras/Makefile.in
-index 88907bf..e33a00f 100644
---- a/contrib/ras/Makefile.in
-+++ b/contrib/ras/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/stream/Makefile.in b/contrib/stream/Makefile.in
-index 9c9dffb..1c36a7f 100644
---- a/contrib/stream/Makefile.in
-+++ b/contrib/stream/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/tags/Makefile.in b/contrib/tags/Makefile.in
-index e378f32..891d565 100644
---- a/contrib/tags/Makefile.in
-+++ b/contrib/tags/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/contrib/win_dib/Makefile.in b/contrib/win_dib/Makefile.in
-index 0f68e76..45bf928 100644
---- a/contrib/win_dib/Makefile.in
-+++ b/contrib/win_dib/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/html/Makefile.in b/html/Makefile.in
-index b9f86c8..a85ebd6 100644
---- a/html/Makefile.in
-+++ b/html/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/html/images/Makefile.in b/html/images/Makefile.in
-index 1b96240..eaf50a3 100644
---- a/html/images/Makefile.in
-+++ b/html/images/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/html/man/Makefile.in b/html/man/Makefile.in
-index 3a5278e..98226c3 100644
---- a/html/man/Makefile.in
-+++ b/html/man/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/libtiff/Makefile.in b/libtiff/Makefile.in
-index 6a7c415..69e59c7 100644
---- a/libtiff/Makefile.in
-+++ b/libtiff/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/libtiff/tif_codec.c b/libtiff/tif_codec.c
-index d5c6fd1..5a38184 100644
---- a/libtiff/tif_codec.c
-+++ b/libtiff/tif_codec.c
-@@ -1,4 +1,4 @@
--/* $Id: tif_codec.c,v 1.10.2.2 2010-06-08 18:50:41 bfriesen Exp $ */
-+/* $Id: tif_codec.c,v 1.10.2.3 2013-05-02 14:44:43 tgl Exp $ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -104,7 +104,8 @@ _notConfigured(TIFF* tif)
- const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression);
- char compression_code[20];
-
-- sprintf( compression_code, "%d", tif->tif_dir.td_compression );
-+ snprintf(compression_code, sizeof(compression_code), "%d",
-+ tif->tif_dir.td_compression );
- TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
- "%s compression support is not configured",
- c ? c->name : compression_code );
-diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c
-index 76ef572..417a2e3 100644
---- a/libtiff/tif_dirinfo.c
-+++ b/libtiff/tif_dirinfo.c
-@@ -1,4 +1,4 @@
--/* $Id: tif_dirinfo.c,v 1.65.2.10 2010-07-06 14:14:41 dron Exp $ */
-+/* $Id: tif_dirinfo.c,v 1.65.2.11 2013-05-02 14:44:43 tgl Exp $ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -869,7 +869,7 @@ _TIFFCreateAnonFieldInfo(TIFF *tif, ttag_t tag, TIFFDataType field_type)
- * note that this name is a special sign to TIFFClose() and
- * _TIFFSetupFieldInfo() to free the field
- */
-- sprintf(fld->field_name, "Tag %d", (int) tag);
-+ snprintf(fld->field_name, 32, "Tag %d", (int) tag);
-
- return fld;
- }
-diff --git a/libtiff/tif_pixarlog.c b/libtiff/tif_pixarlog.c
-index ed8eb40..6e127fb 100644
---- a/libtiff/tif_pixarlog.c
-+++ b/libtiff/tif_pixarlog.c
-@@ -1,4 +1,4 @@
--/* $Id: tif_pixarlog.c,v 1.15.2.4 2010-06-08 18:50:42 bfriesen Exp $ */
-+/* $Id: tif_pixarlog.c,v 1.15.2.5 2012-12-10 17:38:54 tgl Exp $ */
-
- /*
- * Copyright (c) 1996-1997 Sam Leffler
-@@ -117,9 +117,9 @@ horizontalAccumulateF(uint16 *wp, int n, int stride, float *op,
- if (n >= stride) {
- mask = CODE_MASK;
- if (stride == 3) {
-- t0 = ToLinearF[cr = wp[0]];
-- t1 = ToLinearF[cg = wp[1]];
-- t2 = ToLinearF[cb = wp[2]];
-+ t0 = ToLinearF[cr = (wp[0] & mask)];
-+ t1 = ToLinearF[cg = (wp[1] & mask)];
-+ t2 = ToLinearF[cb = (wp[2] & mask)];
- op[0] = t0;
- op[1] = t1;
- op[2] = t2;
-@@ -136,10 +136,10 @@ horizontalAccumulateF(uint16 *wp, int n, int stride, float *op,
- op[2] = t2;
- }
- } else if (stride == 4) {
-- t0 = ToLinearF[cr = wp[0]];
-- t1 = ToLinearF[cg = wp[1]];
-- t2 = ToLinearF[cb = wp[2]];
-- t3 = ToLinearF[ca = wp[3]];
-+ t0 = ToLinearF[cr = (wp[0] & mask)];
-+ t1 = ToLinearF[cg = (wp[1] & mask)];
-+ t2 = ToLinearF[cb = (wp[2] & mask)];
-+ t3 = ToLinearF[ca = (wp[3] & mask)];
- op[0] = t0;
- op[1] = t1;
- op[2] = t2;
-@@ -183,9 +183,9 @@ horizontalAccumulate12(uint16 *wp, int n, int stride, int16 *op,
- if (n >= stride) {
- mask = CODE_MASK;
- if (stride == 3) {
-- t0 = ToLinearF[cr = wp[0]] * SCALE12;
-- t1 = ToLinearF[cg = wp[1]] * SCALE12;
-- t2 = ToLinearF[cb = wp[2]] * SCALE12;
-+ t0 = ToLinearF[cr = (wp[0] & mask)] * SCALE12;
-+ t1 = ToLinearF[cg = (wp[1] & mask)] * SCALE12;
-+ t2 = ToLinearF[cb = (wp[2] & mask)] * SCALE12;
- op[0] = CLAMP12(t0);
- op[1] = CLAMP12(t1);
- op[2] = CLAMP12(t2);
-@@ -202,10 +202,10 @@ horizontalAccumulate12(uint16 *wp, int n, int stride, int16 *op,
- op[2] = CLAMP12(t2);
- }
- } else if (stride == 4) {
-- t0 = ToLinearF[cr = wp[0]] * SCALE12;
-- t1 = ToLinearF[cg = wp[1]] * SCALE12;
-- t2 = ToLinearF[cb = wp[2]] * SCALE12;
-- t3 = ToLinearF[ca = wp[3]] * SCALE12;
-+ t0 = ToLinearF[cr = (wp[0] & mask)] * SCALE12;
-+ t1 = ToLinearF[cg = (wp[1] & mask)] * SCALE12;
-+ t2 = ToLinearF[cb = (wp[2] & mask)] * SCALE12;
-+ t3 = ToLinearF[ca = (wp[3] & mask)] * SCALE12;
- op[0] = CLAMP12(t0);
- op[1] = CLAMP12(t1);
- op[2] = CLAMP12(t2);
-@@ -247,9 +247,9 @@ horizontalAccumulate16(uint16 *wp, int n, int stride, uint16 *op,
- if (n >= stride) {
- mask = CODE_MASK;
- if (stride == 3) {
-- op[0] = ToLinear16[cr = wp[0]];
-- op[1] = ToLinear16[cg = wp[1]];
-- op[2] = ToLinear16[cb = wp[2]];
-+ op[0] = ToLinear16[cr = (wp[0] & mask)];
-+ op[1] = ToLinear16[cg = (wp[1] & mask)];
-+ op[2] = ToLinear16[cb = (wp[2] & mask)];
- n -= 3;
- while (n > 0) {
- wp += 3;
-@@ -260,10 +260,10 @@ horizontalAccumulate16(uint16 *wp, int n, int stride, uint16 *op,
- op[2] = ToLinear16[(cb += wp[2]) & mask];
- }
- } else if (stride == 4) {
-- op[0] = ToLinear16[cr = wp[0]];
-- op[1] = ToLinear16[cg = wp[1]];
-- op[2] = ToLinear16[cb = wp[2]];
-- op[3] = ToLinear16[ca = wp[3]];
-+ op[0] = ToLinear16[cr = (wp[0] & mask)];
-+ op[1] = ToLinear16[cg = (wp[1] & mask)];
-+ op[2] = ToLinear16[cb = (wp[2] & mask)];
-+ op[3] = ToLinear16[ca = (wp[3] & mask)];
- n -= 4;
- while (n > 0) {
- wp += 4;
-@@ -342,9 +342,9 @@ horizontalAccumulate8(uint16 *wp, int n, int stride, unsigned char *op,
- if (n >= stride) {
- mask = CODE_MASK;
- if (stride == 3) {
-- op[0] = ToLinear8[cr = wp[0]];
-- op[1] = ToLinear8[cg = wp[1]];
-- op[2] = ToLinear8[cb = wp[2]];
-+ op[0] = ToLinear8[cr = (wp[0] & mask)];
-+ op[1] = ToLinear8[cg = (wp[1] & mask)];
-+ op[2] = ToLinear8[cb = (wp[2] & mask)];
- n -= 3;
- while (n > 0) {
- n -= 3;
-@@ -355,10 +355,10 @@ horizontalAccumulate8(uint16 *wp, int n, int stride, unsigned char *op,
- op[2] = ToLinear8[(cb += wp[2]) & mask];
- }
- } else if (stride == 4) {
-- op[0] = ToLinear8[cr = wp[0]];
-- op[1] = ToLinear8[cg = wp[1]];
-- op[2] = ToLinear8[cb = wp[2]];
-- op[3] = ToLinear8[ca = wp[3]];
-+ op[0] = ToLinear8[cr = (wp[0] & mask)];
-+ op[1] = ToLinear8[cg = (wp[1] & mask)];
-+ op[2] = ToLinear8[cb = (wp[2] & mask)];
-+ op[3] = ToLinear8[ca = (wp[3] & mask)];
- n -= 4;
- while (n > 0) {
- n -= 4;
-@@ -393,9 +393,9 @@ horizontalAccumulate8abgr(uint16 *wp, int n, int stride, unsigned char *op,
- mask = CODE_MASK;
- if (stride == 3) {
- op[0] = 0;
-- t1 = ToLinear8[cb = wp[2]];
-- t2 = ToLinear8[cg = wp[1]];
-- t3 = ToLinear8[cr = wp[0]];
-+ t1 = ToLinear8[cb = (wp[2] & mask)];
-+ t2 = ToLinear8[cg = (wp[1] & mask)];
-+ t3 = ToLinear8[cr = (wp[0] & mask)];
- op[1] = t1;
- op[2] = t2;
- op[3] = t3;
-@@ -413,10 +413,10 @@ horizontalAccumulate8abgr(uint16 *wp, int n, int stride, unsigned char *op,
- op[3] = t3;
- }
- } else if (stride == 4) {
-- t0 = ToLinear8[ca = wp[3]];
-- t1 = ToLinear8[cb = wp[2]];
-- t2 = ToLinear8[cg = wp[1]];
-- t3 = ToLinear8[cr = wp[0]];
-+ t0 = ToLinear8[ca = (wp[3] & mask)];
-+ t1 = ToLinear8[cb = (wp[2] & mask)];
-+ t2 = ToLinear8[cg = (wp[1] & mask)];
-+ t3 = ToLinear8[cr = (wp[0] & mask)];
- op[0] = t0;
- op[1] = t1;
- op[2] = t2;
-@@ -630,10 +630,10 @@ PixarLogGuessDataFmt(TIFFDirectory *td)
- return guess;
- }
-
--static uint32
--multiply(size_t m1, size_t m2)
-+static tsize_t
-+multiply(tsize_t m1, tsize_t m2)
- {
-- uint32 bytes = m1 * m2;
-+ tsize_t bytes = m1 * m2;
-
- if (m1 && bytes / m1 != m2)
- bytes = 0;
-@@ -641,6 +641,20 @@ multiply(size_t m1, size_t m2)
- return bytes;
- }
-
-+static tsize_t
-+add_ms(tsize_t m1, tsize_t m2)
-+{
-+ tsize_t bytes = m1 + m2;
-+
-+ /* if either input is zero, assume overflow already occurred */
-+ if (m1 == 0 || m2 == 0)
-+ bytes = 0;
-+ else if (bytes <= m1 || bytes <= m2)
-+ bytes = 0;
-+
-+ return bytes;
-+}
-+
- static int
- PixarLogSetupDecode(TIFF* tif)
- {
-@@ -661,6 +675,8 @@ PixarLogSetupDecode(TIFF* tif)
- td->td_samplesperpixel : 1);
- tbuf_size = multiply(multiply(multiply(sp->stride, td->td_imagewidth),
- td->td_rowsperstrip), sizeof(uint16));
-+ /* add one more stride in case input ends mid-stride */
-+ tbuf_size = add_ms(tbuf_size, sizeof(uint16) * sp->stride);
- if (tbuf_size == 0)
- return (0);
- sp->tbuf = (uint16 *) _TIFFmalloc(tbuf_size);
-diff --git a/libtiff/tif_print.c b/libtiff/tif_print.c
-index 7634f6e..2b255da 100644
---- a/libtiff/tif_print.c
-+++ b/libtiff/tif_print.c
-@@ -1,4 +1,4 @@
--/* $Id: tif_print.c,v 1.36.2.5 2010-07-06 14:05:30 dron Exp $ */
-+/* $Id: tif_print.c,v 1.36.2.6 2012-12-12 23:18:05 tgl Exp $ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -514,8 +514,19 @@ TIFFPrintDirectory(TIFF* tif, FILE* fd, long flags)
- continue;
-
- if(fip->field_passcount) {
-- if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1)
-+ if (fip->field_readcount == TIFF_VARIABLE2 ) {
-+ if(TIFFGetField(tif, tag, &value_count, &raw_data) != 1)
-+ continue;
-+ } else if (fip->field_readcount == TIFF_VARIABLE ) {
-+ uint16 small_value_count;
-+ if(TIFFGetField(tif, tag, &small_value_count, &raw_data) != 1)
-+ continue;
-+ value_count = small_value_count;
-+ } else {
-+ assert (fip->field_readcount == TIFF_VARIABLE
-+ || fip->field_readcount == TIFF_VARIABLE2);
- continue;
-+ }
- } else {
- if (fip->field_readcount == TIFF_VARIABLE
- || fip->field_readcount == TIFF_VARIABLE2)
-diff --git a/man/Makefile.in b/man/Makefile.in
-index a007da7..cac0721 100644
---- a/man/Makefile.in
-+++ b/man/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/port/Makefile.in b/port/Makefile.in
-index 6674109..f95d58f 100644
---- a/port/Makefile.in
-+++ b/port/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/test/Makefile.in b/test/Makefile.in
-index 61ea1ff..f88959f 100644
---- a/test/Makefile.in
-+++ b/test/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/tools/Makefile.in b/tools/Makefile.in
-index 47dcec8..6f3d517 100644
---- a/tools/Makefile.in
-+++ b/tools/Makefile.in
-@@ -1,4 +1,4 @@
--# Makefile.in generated by automake 1.12.4 from Makefile.am.
-+# Makefile.in generated by automake 1.12.5 from Makefile.am.
- # @configure_input@
-
- # Copyright (C) 1994-2012 Free Software Foundation, Inc.
-diff --git a/tools/ppm2tiff.c b/tools/ppm2tiff.c
-index 6078459..ec8be5d 100644
---- a/tools/ppm2tiff.c
-+++ b/tools/ppm2tiff.c
-@@ -1,4 +1,4 @@
--/* $Id: ppm2tiff.c,v 1.13.2.2 2010-06-08 18:50:44 bfriesen Exp $ */
-+/* $Id: ppm2tiff.c,v 1.13.2.3 2012-12-10 18:27:35 tgl Exp $ */
-
- /*
- * Copyright (c) 1991-1997 Sam Leffler
-@@ -68,6 +68,17 @@ BadPPM(char* file)
- exit(-2);
- }
-
-+static tsize_t
-+multiply_ms(tsize_t m1, tsize_t m2)
-+{
-+ tsize_t bytes = m1 * m2;
-+
-+ if (m1 && bytes / m1 != m2)
-+ bytes = 0;
-+
-+ return bytes;
-+}
-+
- int
- main(int argc, char* argv[])
- {
-@@ -85,6 +96,7 @@ main(int argc, char* argv[])
- int c;
- extern int optind;
- extern char* optarg;
-+ tsize_t scanline_size;
-
- if (argc < 2) {
- fprintf(stderr, "%s: Too few arguments\n", argv[0]);
-@@ -217,7 +229,8 @@ main(int argc, char* argv[])
- }
- switch (bpp) {
- case 1:
-- linebytes = (spp * w + (8 - 1)) / 8;
-+ /* if round-up overflows, result will be zero, OK */
-+ linebytes = (multiply_ms(spp, w) + (8 - 1)) / 8;
- if (rowsperstrip == (uint32) -1) {
- TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, h);
- } else {
-@@ -226,15 +239,31 @@ main(int argc, char* argv[])
- }
- break;
- case 8:
-- linebytes = spp * w;
-+ linebytes = multiply_ms(spp, w);
- TIFFSetField(out, TIFFTAG_ROWSPERSTRIP,
- TIFFDefaultStripSize(out, rowsperstrip));
- break;
- }
-- if (TIFFScanlineSize(out) > linebytes)
-+ if (linebytes == 0) {
-+ fprintf(stderr, "%s: scanline size overflow\n", infile);
-+ (void) TIFFClose(out);
-+ exit(-2);
-+ }
-+ scanline_size = TIFFScanlineSize(out);
-+ if (scanline_size == 0) {
-+ /* overflow - TIFFScanlineSize already printed a message */
-+ (void) TIFFClose(out);
-+ exit(-2);
-+ }
-+ if (scanline_size < linebytes)
- buf = (unsigned char *)_TIFFmalloc(linebytes);
- else
-- buf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out));
-+ buf = (unsigned char *)_TIFFmalloc(scanline_size);
-+ if (buf == NULL) {
-+ fprintf(stderr, "%s: Not enough memory\n", infile);
-+ (void) TIFFClose(out);
-+ exit(-2);
-+ }
- if (resolution > 0) {
- TIFFSetField(out, TIFFTAG_XRESOLUTION, resolution);
- TIFFSetField(out, TIFFTAG_YRESOLUTION, resolution);
-diff --git a/tools/rgb2ycbcr.c b/tools/rgb2ycbcr.c
-index 0b30b51..527c036 100644
---- a/tools/rgb2ycbcr.c
-+++ b/tools/rgb2ycbcr.c
-@@ -1,4 +1,4 @@
--/* $Id: rgb2ycbcr.c,v 1.9.2.2 2010-06-08 18:50:44 bfriesen Exp $ */
-+/* $Id: rgb2ycbcr.c,v 1.9.2.3 2013-05-02 14:44:44 tgl Exp $ */
-
- /*
- * Copyright (c) 1991-1997 Sam Leffler
-@@ -326,7 +326,8 @@ tiffcvt(TIFF* in, TIFF* out)
- TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
- { char buf[2048];
- char *cp = strrchr(TIFFFileName(in), '/');
-- sprintf(buf, "YCbCr conversion of %s", cp ? cp+1 : TIFFFileName(in));
-+ snprintf(buf, sizeof(buf), "YCbCr conversion of %s",
-+ cp ? cp+1 : TIFFFileName(in));
- TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, buf);
- }
- TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion());
-diff --git a/tools/tiff2bw.c b/tools/tiff2bw.c
-index 8fbf061..98908d1 100644
---- a/tools/tiff2bw.c
-+++ b/tools/tiff2bw.c
-@@ -1,4 +1,4 @@
--/* $Id: tiff2bw.c,v 1.12.2.2 2010-07-02 12:03:27 dron Exp $ */
-+/* $Id: tiff2bw.c,v 1.12.2.3 2013-05-02 14:44:44 tgl Exp $ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -201,7 +201,7 @@ main(int argc, char* argv[])
- }
- }
- TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
-- sprintf(thing, "B&W version of %s", argv[optind]);
-+ snprintf(thing, sizeof(thing), "B&W version of %s", argv[optind]);
- TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing);
- TIFFSetField(out, TIFFTAG_SOFTWARE, "tiff2bw");
- outbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out));
-diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c
-index dee6435..c55b927 100644
---- a/tools/tiff2pdf.c
-+++ b/tools/tiff2pdf.c
-@@ -1,4 +1,4 @@
--/* $Id: tiff2pdf.c,v 1.37.2.22 2012-07-19 15:43:31 tgl Exp $
-+/* $Id: tiff2pdf.c,v 1.37.2.24 2013-05-02 14:54:18 tgl Exp $
- *
- * tiff2pdf - converts a TIFF image to a PDF document
- *
-@@ -3337,33 +3337,56 @@ int t2p_process_jpeg_strip(
- uint32 height){
-
- tsize_t i=0;
-- uint16 ri =0;
-- uint16 v_samp=1;
-- uint16 h_samp=1;
-- int j=0;
--
-- i++;
--
-- while(i<(*striplength)){
-+
-+ while (i < *striplength) {
-+ tsize_t datalen;
-+ uint16 ri;
-+ uint16 v_samp;
-+ uint16 h_samp;
-+ int j;
-+ int ncomp;
-+
-+ /* marker header: one or more FFs */
-+ if (strip[i] != 0xff)
-+ return(0);
-+ i++;
-+ while (i < *striplength && strip[i] == 0xff)
-+ i++;
-+ if (i >= *striplength)
-+ return(0);
-+ /* SOI is the only pre-SOS marker without a length word */
-+ if (strip[i] == 0xd8)
-+ datalen = 0;
-+ else {
-+ if ((*striplength - i) <= 2)
-+ return(0);
-+ datalen = (strip[i+1] << 8) | strip[i+2];
-+ if (datalen < 2 || datalen >= (*striplength - i))
-+ return(0);
-+ }
- switch( strip[i] ){
-- case 0xd8:
-- /* SOI - start of image */
-+ case 0xd8: /* SOI - start of image */
- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), 2);
- *bufferoffset+=2;
-- i+=2;
- break;
-- case 0xc0:
-- case 0xc1:
-- case 0xc3:
-- case 0xc9:
-- case 0xca:
-+ case 0xc0: /* SOF0 */
-+ case 0xc1: /* SOF1 */
-+ case 0xc3: /* SOF3 */
-+ case 0xc9: /* SOF9 */
-+ case 0xca: /* SOF10 */
- if(no==0){
-- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2);
-- for(j=0;j<buffer[*bufferoffset+9];j++){
-- if( (buffer[*bufferoffset+11+(2*j)]>>4) > h_samp)
-- h_samp = (buffer[*bufferoffset+11+(2*j)]>>4);
-- if( (buffer[*bufferoffset+11+(2*j)] & 0x0f) > v_samp)
-- v_samp = (buffer[*bufferoffset+11+(2*j)] & 0x0f);
-+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2);
-+ ncomp = buffer[*bufferoffset+9];
-+ if (ncomp < 1 || ncomp > 4)
-+ return(0);
-+ v_samp=1;
-+ h_samp=1;
-+ for(j=0;j<ncomp;j++){
-+ uint16 samp = buffer[*bufferoffset+11+(3*j)];
-+ if( (samp>>4) > h_samp)
-+ h_samp = (samp>>4);
-+ if( (samp & 0x0f) > v_samp)
-+ v_samp = (samp & 0x0f);
- }
- v_samp*=8;
- h_samp*=8;
-@@ -3377,45 +3400,43 @@ int t2p_process_jpeg_strip(
- (unsigned char) ((height>>8) & 0xff);
- buffer[*bufferoffset+6]=
- (unsigned char) (height & 0xff);
-- *bufferoffset+=strip[i+2]+2;
-- i+=strip[i+2]+2;
--
-+ *bufferoffset+=datalen+2;
-+ /* insert a DRI marker */
- buffer[(*bufferoffset)++]=0xff;
- buffer[(*bufferoffset)++]=0xdd;
- buffer[(*bufferoffset)++]=0x00;
- buffer[(*bufferoffset)++]=0x04;
- buffer[(*bufferoffset)++]=(ri >> 8) & 0xff;
- buffer[(*bufferoffset)++]= ri & 0xff;
-- } else {
-- i+=strip[i+2]+2;
- }
- break;
-- case 0xc4:
-- case 0xdb:
-- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2);
-- *bufferoffset+=strip[i+2]+2;
-- i+=strip[i+2]+2;
-+ case 0xc4: /* DHT */
-+ case 0xdb: /* DQT */
-+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2);
-+ *bufferoffset+=datalen+2;
- break;
-- case 0xda:
-+ case 0xda: /* SOS */
- if(no==0){
-- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2);
-- *bufferoffset+=strip[i+2]+2;
-- i+=strip[i+2]+2;
-+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2);
-+ *bufferoffset+=datalen+2;
- } else {
- buffer[(*bufferoffset)++]=0xff;
- buffer[(*bufferoffset)++]=
- (unsigned char)(0xd0 | ((no-1)%8));
-- i+=strip[i+2]+2;
- }
-- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), (*striplength)-i-1);
-- *bufferoffset+=(*striplength)-i-1;
-+ i += datalen + 1;
-+ /* copy remainder of strip */
-+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i]), *striplength - i);
-+ *bufferoffset+= *striplength - i;
- return(1);
- default:
-- i+=strip[i+2]+2;
-+ /* ignore any other marker */
-+ break;
- }
-+ i += datalen + 1;
- }
--
-
-+ /* failed to find SOS marker */
- return(0);
- }
- #endif
-@@ -3605,7 +3626,9 @@ tsize_t t2p_write_pdf_header(T2P* t2p, TIFF* output){
- char buffer[16];
- int buflen=0;
-
-- buflen=sprintf(buffer, "%%PDF-%u.%u ", t2p->pdf_majorversion&0xff, t2p->pdf_minorversion&0xff);
-+ buflen = snprintf(buffer, sizeof(buffer), "%%PDF-%u.%u ",
-+ t2p->pdf_majorversion&0xff,
-+ t2p->pdf_minorversion&0xff);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t)"\n%\342\343\317\323\n", 7);
-
-@@ -3619,10 +3642,10 @@ tsize_t t2p_write_pdf_header(T2P* t2p, TIFF* output){
- tsize_t t2p_write_pdf_obj_start(uint32 number, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
-- buflen=sprintf(buffer, "%lu", (unsigned long)number);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen );
- written += t2pWriteFile(output, (tdata_t) " 0 obj\n", 7);
-
-@@ -3661,13 +3684,13 @@ tsize_t t2p_write_pdf_name(unsigned char* name, TIFF* output){
- written += t2pWriteFile(output, (tdata_t) "/", 1);
- for (i=0;i<namelen;i++){
- if ( ((unsigned char)name[i]) < 0x21){
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- nextchar=1;
- }
- if ( ((unsigned char)name[i]) > 0x7E){
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- nextchar=1;
-@@ -3675,57 +3698,57 @@ tsize_t t2p_write_pdf_name(unsigned char* name, TIFF* output){
- if (nextchar==0){
- switch (name[i]){
- case 0x23:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x25:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x28:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x29:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x2F:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x3C:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x3E:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x5B:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x5D:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x7B:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
- case 0x7D:
-- sprintf(buffer, "#%.2X", name[i]);
-+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]);
- buffer[sizeof(buffer) - 1] = '\0';
- written += t2pWriteFile(output, (tdata_t) buffer, 3);
- break;
-@@ -3840,14 +3863,14 @@ tsize_t t2p_write_pdf_stream_end(TIFF* output){
- tsize_t t2p_write_pdf_stream_dict(tsize_t len, uint32 number, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- written += t2pWriteFile(output, (tdata_t) "/Length ", 8);
- if(len!=0){
- written += t2p_write_pdf_stream_length(len, output);
- } else {
-- buflen=sprintf(buffer, "%lu", (unsigned long)number);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6);
- }
-@@ -3888,10 +3911,10 @@ tsize_t t2p_write_pdf_stream_dict_end(TIFF* output){
- tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
-- buflen=sprintf(buffer, "%lu", (unsigned long)len);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)len);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "\n", 1);
-
-@@ -3905,7 +3928,7 @@ tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){
- tsize_t t2p_write_pdf_catalog(T2P* t2p, TIFF* output)
- {
- tsize_t written = 0;
-- char buffer[16];
-+ char buffer[32];
- int buflen = 0;
-
- written += t2pWriteFile(output,
-@@ -3944,7 +3967,6 @@ tsize_t t2p_write_pdf_info(T2P* t2p, TIFF* input, TIFF* output)
- written += t2p_write_pdf_string(t2p->pdf_datetime, output);
- }
- written += t2pWriteFile(output, (tdata_t) "\n/Producer ", 11);
-- _TIFFmemset((tdata_t)buffer, 0x00, sizeof(buffer));
- snprintf(buffer, sizeof(buffer), "libtiff / tiff2pdf - %d", TIFFLIB_VERSION);
- written += t2p_write_pdf_string(buffer, output);
- written += t2pWriteFile(output, (tdata_t) "\n", 1);
-@@ -4085,7 +4107,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output)
- {
- tsize_t written=0;
- tdir_t i=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- int page=0;
-@@ -4093,7 +4115,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output)
- (tdata_t) "<< \n/Type /Pages \n/Kids [ ", 26);
- page = t2p->pdf_pages+1;
- for (i=0;i<t2p->tiff_pagecount;i++){
-- buflen=sprintf(buffer, "%d", page);
-+ buflen=snprintf(buffer, sizeof(buffer), "%d", page);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
- if ( ((i+1)%8)==0 ) {
-@@ -4108,8 +4130,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output)
- }
- }
- written += t2pWriteFile(output, (tdata_t) "] \n/Count ", 10);
-- _TIFFmemset(buffer, 0x00, 16);
-- buflen=sprintf(buffer, "%d", t2p->tiff_pagecount);
-+ buflen=snprintf(buffer, sizeof(buffer), "%d", t2p->tiff_pagecount);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " \n>> \n", 6);
-
-@@ -4124,28 +4145,28 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){
-
- unsigned int i=0;
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[256];
- int buflen=0;
-
- written += t2pWriteFile(output, (tdata_t) "<<\n/Type /Page \n/Parent ", 24);
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_pages);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_pages);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6);
- written += t2pWriteFile(output, (tdata_t) "/MediaBox [", 11);
-- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x1);
-+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x1);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " ", 1);
-- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y1);
-+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y1);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " ", 1);
-- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x2);
-+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x2);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " ", 1);
-- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y2);
-+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y2);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "] \n", 3);
- written += t2pWriteFile(output, (tdata_t) "/Contents ", 10);
-- buflen=sprintf(buffer, "%lu", (unsigned long)(object + 1));
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(object + 1));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6);
- written += t2pWriteFile(output, (tdata_t) "/Resources << \n", 15);
-@@ -4153,15 +4174,13 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){
- written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12);
- for(i=0;i<t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount;i++){
- written += t2pWriteFile(output, (tdata_t) "/Im", 3);
-- buflen = sprintf(buffer, "%u", t2p->pdf_page+1);
-+ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "_", 1);
-- buflen = sprintf(buffer, "%u", i+1);
-+ buflen = snprintf(buffer, sizeof(buffer), "%u", i+1);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " ", 1);
-- buflen = sprintf(
-- buffer,
-- "%lu",
-+ buflen = snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
-@@ -4173,12 +4192,10 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){
- } else {
- written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12);
- written += t2pWriteFile(output, (tdata_t) "/Im", 3);
-- buflen = sprintf(buffer, "%u", t2p->pdf_page+1);
-+ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " ", 1);
-- buflen = sprintf(
-- buffer,
-- "%lu",
-+ buflen = snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
-@@ -4187,9 +4204,7 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){
- if(t2p->tiff_transferfunctioncount != 0) {
- written += t2pWriteFile(output, (tdata_t) "/ExtGState <<", 13);
- t2pWriteFile(output, (tdata_t) "/GS1 ", 5);
-- buflen = sprintf(
-- buffer,
-- "%lu",
-+ buflen = snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(object + 3));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
-@@ -4562,7 +4577,7 @@ tsize_t t2p_write_pdf_page_content_stream(T2P* t2p, TIFF* output){
- if(t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount>0){
- for(i=0;i<t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount; i++){
- box=t2p->tiff_tiles[t2p->pdf_page].tiles_tiles[i].tile_box;
-- buflen=sprintf(buffer,
-+ buflen=snprintf(buffer, sizeof(buffer),
- "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d_%ld Do Q\n",
- t2p->tiff_transferfunctioncount?"/GS1 gs ":"",
- box.mat[0],
-@@ -4577,7 +4592,7 @@ tsize_t t2p_write_pdf_page_content_stream(T2P* t2p, TIFF* output){
- }
- } else {
- box=t2p->pdf_imagebox;
-- buflen=sprintf(buffer,
-+ buflen=snprintf(buffer, sizeof(buffer),
- "q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d Do Q\n",
- t2p->tiff_transferfunctioncount?"/GS1 gs ":"",
- box.mat[0],
-@@ -4602,59 +4617,48 @@ tsize_t t2p_write_pdf_xobject_stream_dict(ttile_t tile,
- TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- written += t2p_write_pdf_stream_dict(0, t2p->pdf_xrefcount+1, output);
- written += t2pWriteFile(output,
- (tdata_t) "/Type /XObject \n/Subtype /Image \n/Name /Im",
- 42);
-- buflen=sprintf(buffer, "%u", t2p->pdf_page+1);
-+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- if(tile != 0){
- written += t2pWriteFile(output, (tdata_t) "_", 1);
-- buflen=sprintf(buffer, "%lu", (unsigned long)tile);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)tile);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- }
- written += t2pWriteFile(output, (tdata_t) "\n/Width ", 8);
-- _TIFFmemset((tdata_t)buffer, 0x00, 16);
- if(tile==0){
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_width);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_width);
- } else {
- if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth);
- } else {
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth);
- }
- }
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "\n/Height ", 9);
-- _TIFFmemset((tdata_t)buffer, 0x00, 16);
- if(tile==0){
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_length);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_length);
- } else {
- if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength);
- } else {
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength);
- }
- }
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "\n/BitsPerComponent ", 19);
-- _TIFFmemset((tdata_t)buffer, 0x00, 16);
-- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample);
-+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "\n/ColorSpace ", 13);
- written += t2p_write_pdf_xobject_cs(t2p, output);
-@@ -4698,11 +4702,10 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){
- t2p->pdf_colorspace ^= T2P_CS_PALETTE;
- written += t2p_write_pdf_xobject_cs(t2p, output);
- t2p->pdf_colorspace |= T2P_CS_PALETTE;
-- buflen=sprintf(buffer, "%u", (0x0001 << t2p->tiff_bitspersample)-1 );
-+ buflen=snprintf(buffer, sizeof(buffer), "%u", (0x0001 << t2p->tiff_bitspersample)-1 );
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " ", 1);
-- _TIFFmemset(buffer, 0x00, 16);
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_palettecs );
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_palettecs );
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ]\n", 7);
- return(written);
-@@ -4736,10 +4739,10 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){
- X_W /= Y_W;
- Z_W /= Y_W;
- Y_W = 1.0F;
-- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W);
-+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "/Range ", 7);
-- buflen=sprintf(buffer, "[%d %d %d %d] \n",
-+ buflen=snprintf(buffer, sizeof(buffer), "[%d %d %d %d] \n",
- t2p->pdf_labrange[0],
- t2p->pdf_labrange[1],
- t2p->pdf_labrange[2],
-@@ -4755,26 +4758,26 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){
- tsize_t t2p_write_pdf_transfer(T2P* t2p, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- written += t2pWriteFile(output, (tdata_t) "<< /Type /ExtGState \n/TR ", 25);
- if(t2p->tiff_transferfunctioncount == 1){
-- buflen=sprintf(buffer, "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(t2p->pdf_xrefcount + 1));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
- } else {
- written += t2pWriteFile(output, (tdata_t) "[ ", 2);
-- buflen=sprintf(buffer, "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(t2p->pdf_xrefcount + 1));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
-- buflen=sprintf(buffer, "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(t2p->pdf_xrefcount + 2));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
-- buflen=sprintf(buffer, "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)(t2p->pdf_xrefcount + 3));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R ", 5);
-@@ -4796,7 +4799,7 @@ tsize_t t2p_write_pdf_transfer_dict(T2P* t2p, TIFF* output, uint16 i){
- written += t2pWriteFile(output, (tdata_t) "/FunctionType 0 \n", 17);
- written += t2pWriteFile(output, (tdata_t) "/Domain [0.0 1.0] \n", 19);
- written += t2pWriteFile(output, (tdata_t) "/Range [0.0 1.0] \n", 18);
-- buflen=sprintf(buffer, "/Size [%u] \n", (1<<t2p->tiff_bitspersample));
-+ buflen=snprintf(buffer, sizeof(buffer), "/Size [%u] \n", (1<<t2p->tiff_bitspersample));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "/BitsPerSample 16 \n", 19);
- written += t2p_write_pdf_stream_dict(1<<(t2p->tiff_bitspersample+1), 0, output);
-@@ -4823,7 +4826,7 @@ tsize_t t2p_write_pdf_transfer_stream(T2P* t2p, TIFF* output, uint16 i){
- tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){
-
- tsize_t written=0;
-- char buffer[128];
-+ char buffer[256];
- int buflen=0;
-
- float X_W=0.0;
-@@ -4891,16 +4894,16 @@ tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){
- written += t2pWriteFile(output, (tdata_t) "<< \n", 4);
- if(t2p->pdf_colorspace & T2P_CS_CALGRAY){
- written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12);
-- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W);
-+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "/Gamma 2.2 \n", 12);
- }
- if(t2p->pdf_colorspace & T2P_CS_CALRGB){
- written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12);
-- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W);
-+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "/Matrix ", 8);
-- buflen=sprintf(buffer, "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n",
-+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n",
- X_R, Y_R, Z_R,
- X_G, Y_G, Z_G,
- X_B, Y_B, Z_B);
-@@ -4919,11 +4922,11 @@ tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){
- tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- written += t2pWriteFile(output, (tdata_t) "[/ICCBased ", 11);
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_icccs);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_icccs);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " 0 R] \n", 7);
-
-@@ -4933,11 +4936,11 @@ tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){
- tsize_t t2p_write_pdf_xobject_icccs_dict(T2P* t2p, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- written += t2pWriteFile(output, (tdata_t) "/N ", 3);
-- buflen=sprintf(buffer, "%u \n", t2p->tiff_samplesperpixel);
-+ buflen=snprintf(buffer, sizeof(buffer), "%u \n", t2p->tiff_samplesperpixel);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) "/Alternate ", 11);
- t2p->pdf_colorspace ^= T2P_CS_ICCBASED;
-@@ -5002,7 +5005,7 @@ tsize_t t2p_write_pdf_xobject_decode(T2P* t2p, TIFF* output){
- tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output){
-
- tsize_t written=0;
-- char buffer[16];
-+ char buffer[32];
- int buflen=0;
-
- if(t2p->pdf_compression==T2P_COMPRESS_NONE){
-@@ -5017,41 +5020,33 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output
- written += t2pWriteFile(output, (tdata_t) "<< /K -1 ", 9);
- if(tile==0){
- written += t2pWriteFile(output, (tdata_t) "/Columns ", 9);
-- buflen=sprintf(buffer, "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_width);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " /Rows ", 7);
-- buflen=sprintf(buffer, "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_length);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- } else {
- if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){
- written += t2pWriteFile(output, (tdata_t) "/Columns ", 9);
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- } else {
- written += t2pWriteFile(output, (tdata_t) "/Columns ", 9);
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- }
- if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){
- written += t2pWriteFile(output, (tdata_t) " /Rows ", 7);
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- } else {
- written += t2pWriteFile(output, (tdata_t) " /Rows ", 7);
-- buflen=sprintf(
-- buffer,
-- "%lu",
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- }
-@@ -5078,21 +5073,17 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output
- if(t2p->pdf_compressionquality%100){
- written += t2pWriteFile(output, (tdata_t) "/DecodeParms ", 13);
- written += t2pWriteFile(output, (tdata_t) "<< /Predictor ", 14);
-- _TIFFmemset(buffer, 0x00, 16);
-- buflen=sprintf(buffer, "%u", t2p->pdf_compressionquality%100);
-+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_compressionquality%100);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " /Columns ", 10);
-- _TIFFmemset(buffer, 0x00, 16);
-- buflen = sprintf(buffer, "%lu",
-+ buflen = snprintf(buffer, sizeof(buffer), "%lu",
- (unsigned long)t2p->tiff_width);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " /Colors ", 9);
-- _TIFFmemset(buffer, 0x00, 16);
-- buflen=sprintf(buffer, "%u", t2p->tiff_samplesperpixel);
-+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_samplesperpixel);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " /BitsPerComponent ", 19);
-- _TIFFmemset(buffer, 0x00, 16);
-- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample);
-+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) ">>\n", 3);
- }
-@@ -5112,16 +5103,16 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output
- tsize_t t2p_write_pdf_xreftable(T2P* t2p, TIFF* output){
-
- tsize_t written=0;
-- char buffer[21];
-+ char buffer[64];
- int buflen=0;
- uint32 i=0;
-
- written += t2pWriteFile(output, (tdata_t) "xref\n0 ", 7);
-- buflen=sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount + 1));
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount + 1));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
- written += t2pWriteFile(output, (tdata_t) " \n0000000000 65535 f \n", 22);
- for (i=0;i<t2p->pdf_xrefcount;i++){
-- sprintf(buffer, "%.10lu 00000 n \n",
-+ snprintf(buffer, sizeof(buffer), "%.10lu 00000 n \n",
- (unsigned long)t2p->pdf_xrefoffsets[i]);
- written += t2pWriteFile(output, (tdata_t) buffer, 20);
- }
-@@ -5145,17 +5136,14 @@ tsize_t t2p_write_pdf_trailer(T2P* t2p, TIFF* output)
- snprintf(t2p->pdf_fileid + i, 9, "%.8X", rand());
-
- written += t2pWriteFile(output, (tdata_t) "trailer\n<<\n/Size ", 17);
-- buflen = sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount+1));
-+ buflen = snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount+1));
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
-- _TIFFmemset(buffer, 0x00, 32);
- written += t2pWriteFile(output, (tdata_t) "\n/Root ", 7);
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_catalog);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_catalog);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
-- _TIFFmemset(buffer, 0x00, 32);
- written += t2pWriteFile(output, (tdata_t) " 0 R \n/Info ", 12);
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_info);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_info);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
-- _TIFFmemset(buffer, 0x00, 32);
- written += t2pWriteFile(output, (tdata_t) " 0 R \n/ID[<", 11);
- written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid,
- sizeof(t2p->pdf_fileid) - 1);
-@@ -5163,9 +5151,8 @@ tsize_t t2p_write_pdf_trailer(T2P* t2p, TIFF* output)
- written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid,
- sizeof(t2p->pdf_fileid) - 1);
- written += t2pWriteFile(output, (tdata_t) ">]\n>>\nstartxref\n", 16);
-- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_startxref);
-+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_startxref);
- written += t2pWriteFile(output, (tdata_t) buffer, buflen);
-- _TIFFmemset(buffer, 0x00, 32);
- written += t2pWriteFile(output, (tdata_t) "\n%%EOF\n", 7);
-
- return(written);
-diff --git a/tools/tiff2ps.c b/tools/tiff2ps.c
-index 2d02b23..b9befe7 100644
---- a/tools/tiff2ps.c
-+++ b/tools/tiff2ps.c
-@@ -1,4 +1,4 @@
--/* $Id: tiff2ps.c,v 1.35.2.7 2011-04-09 16:53:56 bfriesen Exp $ */
-+/* $Id: tiff2ps.c,v 1.35.2.9 2013-05-02 14:44:44 tgl Exp $ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -44,6 +44,11 @@
-
- /*
- * Revision history
-+ * 2013-Jan-21
-+ * Richard Nolde: Fix bug in auto rotate option code. Once a
-+ * rotation angle was set by the auto rotate check, it was
-+ * retained for all pages that followed instead of being
-+ * retested for each page.
- *
- * 2010-Sep-17
- * Richard Nolde: Reinstate code from Feb 2009 that never got
-@@ -423,9 +428,10 @@ main(int argc, char* argv[])
- /* auto rotate requires a specified page width and height */
- if (auto_rotate == TRUE)
- {
-+ /*
- if ((pageWidth == 0) || (pageHeight == 0))
- TIFFWarning ("-r auto", " requires page height and width specified with -h and -w");
--
-+ */
- if ((maxPageWidth > 0) || (maxPageHeight > 0))
- {
- TIFFError ("-r auto", " is incompatible with maximum page width/height specified by -H or -W");
-@@ -1594,6 +1600,8 @@ int TIFF2PS(FILE* fd, TIFF* tif, double pgwidth, double pgheight, double lm, dou
- }
- if (generateEPSF)
- break;
-+ if (auto_rotate)
-+ rotation = 0.0;
- TIFFGetFieldDefaulted(tif, TIFFTAG_SUBFILETYPE, &subfiletype);
- } while (((subfiletype & FILETYPE_PAGE) || printAll) && TIFFReadDirectory(tif));
-
-@@ -1783,8 +1791,8 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h)
- imageOp = "imagemask";
-
- (void)strcpy(im_x, "0");
-- (void)sprintf(im_y, "%lu", (long) h);
-- (void)sprintf(im_h, "%lu", (long) h);
-+ (void)snprintf(im_y, sizeof(im_y), "%lu", (long) h);
-+ (void)snprintf(im_h, sizeof(im_h), "%lu", (long) h);
- tile_width = w;
- tile_height = h;
- if (TIFFIsTiled(tif)) {
-@@ -1805,7 +1813,7 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h)
- }
- if (tile_height < h) {
- fputs("/im_y 0 def\n", fd);
-- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h);
-+ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h);
- }
- } else {
- repeat_count = tf_numberstrips;
-@@ -1817,7 +1825,7 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h)
- fprintf(fd, "/im_h %lu def\n",
- (unsigned long) tile_height);
- (void)strcpy(im_h, "im_h");
-- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h);
-+ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h);
- }
- }
-
-diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c
-index d00c912..6c53e74 100644
---- a/tools/tiffcrop.c
-+++ b/tools/tiffcrop.c
-@@ -1,4 +1,4 @@
--/* $Id: tiffcrop.c,v 1.3.2.15 2010-12-14 02:03:55 faxguy Exp $ */
-+/* $Id: tiffcrop.c,v 1.3.2.16 2013-05-02 14:44:44 tgl Exp $ */
-
- /* tiffcrop.c -- a port of tiffcp.c extended to include manipulations of
- * the image data through additional options listed below
-@@ -2077,7 +2077,7 @@ update_output_file (TIFF **tiffout, char *mode, int autoindex,
- return 1;
- }
-
-- sprintf (filenum, "-%03d%s", findex, export_ext);
-+ snprintf(filenum, sizeof(filenum), "-%03d%s", findex, export_ext);
- filenum[14] = '\0';
- strncat (exportname, filenum, 15);
- }
-@@ -2230,8 +2230,8 @@ main(int argc, char* argv[])
-
- /* dump.infilename is guaranteed to be NUL termimated and have 20 bytes
- fewer than PATH_MAX */
-- memset (temp_filename, '\0', PATH_MAX + 1);
-- sprintf (temp_filename, "%s-read-%03d.%s", dump.infilename, dump_images,
-+ snprintf(temp_filename, sizeof(temp_filename), "%s-read-%03d.%s",
-+ dump.infilename, dump_images,
- (dump.format == DUMP_TEXT) ? "txt" : "raw");
- if ((dump.infile = fopen(temp_filename, dump.mode)) == NULL)
- {
-@@ -2249,8 +2249,8 @@ main(int argc, char* argv[])
-
- /* dump.outfilename is guaranteed to be NUL termimated and have 20 bytes
- fewer than PATH_MAX */
-- memset (temp_filename, '\0', PATH_MAX + 1);
-- sprintf (temp_filename, "%s-write-%03d.%s", dump.outfilename, dump_images,
-+ snprintf(temp_filename, sizeof(temp_filename), "%s-write-%03d.%s",
-+ dump.outfilename, dump_images,
- (dump.format == DUMP_TEXT) ? "txt" : "raw");
- if ((dump.outfile = fopen(temp_filename, dump.mode)) == NULL)
- {
-diff --git a/tools/tiffdither.c b/tools/tiffdither.c
-index dee2a02..a0cb857 100644
---- a/tools/tiffdither.c
-+++ b/tools/tiffdither.c
-@@ -1,4 +1,4 @@
--/* $Id: tiffdither.c,v 1.9.2.1 2010-06-08 18:50:44 bfriesen Exp $ */
-+/* $Id: tiffdither.c,v 1.9.2.2 2013-05-02 14:44:45 tgl Exp $ */
-
- /*
- * Copyright (c) 1988-1997 Sam Leffler
-@@ -256,7 +256,7 @@ main(int argc, char* argv[])
- TIFFSetField(out, TIFFTAG_FILLORDER, fillorder);
- else
- CopyField(TIFFTAG_FILLORDER, shortv);
-- sprintf(thing, "Dithered B&W version of %s", argv[optind]);
-+ snprintf(thing, sizeof(thing), "Dithered B&W version of %s", argv[optind]);
- TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing);
- CopyField(TIFFTAG_PHOTOMETRIC, shortv);
- CopyField(TIFFTAG_ORIENTATION, shortv);
diff --git a/source/l/libtiff/tiff-3.9.7_CVE-2013-4231.diff b/source/l/libtiff/tiff-3.9.7_CVE-2013-4231.diff
deleted file mode 100644
index 79eeb449f..000000000
--- a/source/l/libtiff/tiff-3.9.7_CVE-2013-4231.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-From 5d19703933eaa59f97be9c88237fe00593f180ae Mon Sep 17 00:00:00 2001
-From: mancha <mancha1@hush.com>
-Date: Mon, 19 Aug 2013
-Subject: CVE-2013-4231
-
-* tools/gif2tiff.c: Be more careful about corrupt or
- hostile input files (#2450, CVE-2013-4231)
-
----
- gif2tiff.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/tools/gif2tiff.c 2013-08-20
-+++ b/tools/gif2tiff.c 2013-08-20
-@@ -329,6 +329,8 @@ readraster(void)
- int status = 1;
-
- datasize = getc(infile);
-+ if (datasize > 12)
-+ return 0;
- clear = 1 << datasize;
- eoi = clear + 1;
- avail = clear + 2;
diff --git a/source/l/libtiff/tiff-3.9.7_CVE-2013-4232.diff b/source/l/libtiff/tiff-3.9.7_CVE-2013-4232.diff
deleted file mode 100644
index b86f8f4a4..000000000
--- a/source/l/libtiff/tiff-3.9.7_CVE-2013-4232.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-From 8a2f9160cc4c52c73a62adef4d9282b2bd6e7ff1 Mon Sep 17 00:00:00 2001
-From: mancha <mancha1@hush.com>
-Date: Mon, 19 Aug 2013
-Subject: CVE-2013-4232
-
-* tools/tiff2pdf.c: terminate after failure of allocating
- ycbcr buffer (bug #2449, CVE-2013-4232)
-
----
- tiff2pdf.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/tools/tiff2pdf.c 2013-08-20
-+++ b/tools/tiff2pdf.c 2013-08-20
-@@ -2457,7 +2457,8 @@ tsize_t t2p_readwrite_pdf_image(T2P* t2p
- t2p->tiff_datasize,
- TIFFFileName(input));
- t2p->t2p_error = T2P_ERR_ERROR;
-- _TIFFfree(buffer);
-+ _TIFFfree(buffer);
-+ return(0);
- } else {
- buffer=samplebuffer;
- t2p->tiff_datasize *= t2p->tiff_samplesperpixel;
diff --git a/source/l/libtiff/tiff-3.9.7_CVE-2013-4244.diff b/source/l/libtiff/tiff-3.9.7_CVE-2013-4244.diff
deleted file mode 100644
index 4f8c54321..000000000
--- a/source/l/libtiff/tiff-3.9.7_CVE-2013-4244.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-From 7f4cfaec643863fcdc260da46af8d6581974101d Mon Sep 17 00:00:00 2001
-From: mancha <mancha1@hush.com>
-Date: Mon, 19 Aug 2013
-Subject: CVE-2013-4244
-
-* tools/gif2tiff.c: fix possible OOB write (#2452, CVE-2013-4244)
-
----
- gif2tiff.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/tools/gif2tiff.c 2013-08-20
-+++ b/tools/gif2tiff.c 2013-08-20
-@@ -396,6 +398,10 @@ process(register int code, unsigned char
- }
-
- if (oldcode == -1) {
-+ if (code >= clear) {
-+ fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear);
-+ return 0;
-+ }
- *(*fill)++ = suffix[code];
- firstchar = oldcode = code;
- return 1;
diff --git a/source/l/libunistring/libunistring.SlackBuild b/source/l/libunistring/libunistring.SlackBuild
index 457205bd0..070acd26a 100755
--- a/source/l/libunistring/libunistring.SlackBuild
+++ b/source/l/libunistring/libunistring.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
diff --git a/source/l/libusb-compat/libusb-compat.SlackBuild b/source/l/libusb-compat/libusb-compat.SlackBuild
index f0b2c0d98..743264730 100755
--- a/source/l/libusb-compat/libusb-compat.SlackBuild
+++ b/source/l/libusb-compat/libusb-compat.SlackBuild
@@ -23,13 +23,13 @@
PKGNAM=libusb-compat
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
diff --git a/source/l/libusb-compat/slack-desc b/source/l/libusb-compat/slack-desc
index 5db3fa749..36982b5a6 100644
--- a/source/l/libusb-compat/slack-desc
+++ b/source/l/libusb-compat/slack-desc
@@ -12,7 +12,7 @@ libusb-compat: A compatibility layer allowing applications written for libusb-0.
libusb-compat: work with libusb-1.0. libusb-compat-0.1 attempts to retain as much
libusb-compat: ABI and API compatibility with libusb-0.1 as possible.
libusb-compat:
-libusb-compat: Homepage: http://libusb.org
+libusb-compat: Homepage: http://libusb.info
libusb-compat:
libusb-compat:
libusb-compat:
diff --git a/source/l/libusb/libusb.SlackBuild b/source/l/libusb/libusb.SlackBuild
index d9a7b2ba6..5ab4d15be 100755
--- a/source/l/libusb/libusb.SlackBuild
+++ b/source/l/libusb/libusb.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-1.0.9} # libusb version
+VERSION=${VERSION:-1.0.20} # libusb version
BUILD=${BUILD:-1}
@@ -29,7 +29,7 @@ NUMJOBS=${NUMJOBS:--j6}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
*) export ARCH=$( uname -m ) ;;
esac
@@ -39,8 +39,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-libusb
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/libusb/slack-desc b/source/l/libusb/slack-desc
index 68090cf63..5b10cba4d 100644
--- a/source/l/libusb/slack-desc
+++ b/source/l/libusb/slack-desc
@@ -12,7 +12,7 @@ libusb: This is libusb, a library which allows userspace application access
libusb: to USB devices. It is used to connect to USB devices like scanners
libusb: and printers.
libusb:
-libusb: http://libusb.org
+libusb: http://libusb.info
libusb:
libusb:
libusb:
diff --git a/source/l/imlib/imlib.SlackBuild b/source/l/libusbmuxd/libusbmuxd.SlackBuild
index d9f2cca3d..5f9afeb5f 100755
--- a/source/l/imlib/imlib.SlackBuild
+++ b/source/l/libusbmuxd/libusbmuxd.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.9.15
-NUMJOBS=${NUMJOBS:-" -j7 "}
-BUILD=${BUILD:-7}
+PKGNAM=libusbmuxd
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -35,6 +35,14 @@ if [ -z "$ARCH" ]; then
esac
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
@@ -49,58 +57,70 @@ else
LIBDIRSUFFIX=""
fi
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-imlib
-
-rm -rf $PKG
-mkdir -p $TMP $PKG/usr
-
cd $TMP
-rm -rf imlib-$VERSION
-tar xvf $CWD/imlib-$VERSION.tar.?z* || exit 1
-cd imlib-$VERSION
-zcat $CWD/imlib.mitshm.render.diff.gz | patch -p1 --verbose || exit 1
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+cd ${PKGNAM}-$VERSION
+# Make sure ownerships and permissions are sane:
chown -R root:root .
-find . -perm 666 -exec chmod 644 {} \;
-find . -perm 664 -exec chmod 644 {} \;
-find . -perm 600 -exec chmod 644 {} \;
-find . -perm 444 -exec chmod 644 {} \;
-find . -perm 400 -exec chmod 644 {} \;
-find . -perm 440 -exec chmod 644 {} \;
-find . -perm 777 -exec chmod 755 {} \;
-find . -perm 775 -exec chmod 755 {} \;
-find . -perm 511 -exec chmod 755 {} \;
-find . -perm 711 -exec chmod 755 {} \;
-find . -perm 555 -exec chmod 755 {} \;
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
--mandir=/usr/man \
- --build=${ARCH}-slackware-linux
+ --disable-static \
+ --build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
-gzip -9 $PKG/usr/man/man1/*
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
-mkdir -p $PKG/usr/doc/imlib-$VERSION
+# Add some docs:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- ABOUT-NLS AUTHORS COPYING* ChangeLog INSTALL NEWS README \
- doc \
- $PKG/usr/doc/imlib-$VERSION
-rm -f $PKG/usr/doc/imlib-$VERSION/doc/Makefile*
+ AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/imlib-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/ConsoleKit/slack-desc b/source/l/libusbmuxd/slack-desc
index 63326799d..ca1bfc901 100644
--- a/source/l/ConsoleKit/slack-desc
+++ b/source/l/libusbmuxd/slack-desc
@@ -5,15 +5,15 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler-----------------------------------------------------|
-ConsoleKit: ConsoleKit (user, login, and seat tracking framework)
-ConsoleKit:
-ConsoleKit: ConsoleKit is a framework for defining and tracking users, login
-ConsoleKit: sessions, and seats.
-ConsoleKit:
-ConsoleKit:
-ConsoleKit:
-ConsoleKit:
-ConsoleKit:
-ConsoleKit: Homepage: http://freedesktop.org/wiki/Software/ConsoleKit
-ConsoleKit:
+ |-----handy-ruler------------------------------------------------------|
+libusbmuxd: libusbmuxd (iOS USB connection library)
+libusbmuxd:
+libusbmuxd: A client library to multiplex connections from and to iOS devices.
+libusbmuxd: It is used by libgpod.
+libusbmuxd:
+libusbmuxd: The libusbmuxd homepage: http://www.libimobiledevice.org/
+libusbmuxd:
+libusbmuxd:
+libusbmuxd:
+libusbmuxd:
+libusbmuxd:
diff --git a/source/l/libvisio/libvisio.SlackBuild b/source/l/libvisio/libvisio.SlackBuild
new file mode 100755
index 000000000..bc8516cd7
--- /dev/null
+++ b/source/l/libvisio/libvisio.SlackBuild
@@ -0,0 +1,109 @@
+#!/bin/sh
+
+# Slackware build script for libvisio
+
+# Copyright 2015 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=libvisio
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-libvisio
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf libvisio-$VERSION
+tar xvf $CWD/libvisio-$VERSION.tar.?z* || exit 1
+cd libvisio-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --disable-tests \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install-strip DESTDIR=$PKG || exit 1
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a AUTHORS ChangeLog COPYING* NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libvisio/slack-desc b/source/l/libvisio/slack-desc
new file mode 100644
index 000000000..beeec2e15
--- /dev/null
+++ b/source/l/libvisio/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libvisio: libvisio (Visio document format library)
+libvisio:
+libvisio: Libvisio is a library that parses the file format of Microsoft Visio
+libvisio: documents of all versions.
+libvisio:
+libvisio: Homepage: https://wiki.documentfoundation.org/DLP/Libraries/libvisio
+libvisio:
+libvisio:
+libvisio:
+libvisio:
+libvisio:
diff --git a/source/l/libvncserver/libvncserver.SlackBuild b/source/l/libvncserver/libvncserver.SlackBuild
index 7edc93fc0..1e22af589 100755
--- a/source/l/libvncserver/libvncserver.SlackBuild
+++ b/source/l/libvncserver/libvncserver.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
-# Copyright 2007 Heinz Wiesinger <hmwiesinger@gmx.at>
-# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2014 Heinz Wiesinger, Amsterdam, NL
+# Copyright 2008, 2009, 2010, 2011, 2012, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,8 +24,7 @@
# Modified by Robby Workman <rworkman at slackware.com>
# Modified by Eric Hameleers <alien at slackware.com>
-
-VERSION=0.9.9
+VERSION=${VERSION:-$(echo LibVNCServer-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -34,7 +33,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -42,8 +41,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -81,6 +80,10 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+./autogen.sh
+
+# libva support broken and WONTFIX (for now) upstream.
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
@@ -89,6 +92,7 @@ CXXFLAGS="$SLKCFLAGS" \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
+ --without-libva \
--disable-static \
--build=$TARGET
diff --git a/source/l/libvncserver/libvncserver.info b/source/l/libvncserver/libvncserver.info
deleted file mode 100644
index 11fc89f02..000000000
--- a/source/l/libvncserver/libvncserver.info
+++ /dev/null
@@ -1,5 +0,0 @@
-PRGNAM="libvncserver"
-VERSION="0.9.1"
-HOMEPAGE="http://libvncserver.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/libvncserver/LibVNCServer-0.9.1.tar.gz"
-MD5SUM="aa00efc3dabde82fde9509bfbab0aba4"
diff --git a/source/l/libvncserver/slack-desc b/source/l/libvncserver/slack-desc
index d3924fcae..958b6fafc 100644
--- a/source/l/libvncserver/slack-desc
+++ b/source/l/libvncserver/slack-desc
@@ -5,14 +5,14 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler-----------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
libvncserver: libvncserver (VNC Server Library)
libvncserver:
libvncserver: LibVNCServer makes writing a VNC server (or more correctly,
libvncserver: a program exporting a framebuffer via the Remote Frame Buffer
libvncserver: protocol) easy.
libvncserver:
-libvncserver: Homepage: http://libvncserver.sourceforge.net/
+libvncserver: Homepage: https://libvnc.github.io/
libvncserver:
libvncserver:
libvncserver:
diff --git a/source/l/libvpx/libvpx.SlackBuild b/source/l/libvpx/libvpx.SlackBuild
new file mode 100755
index 000000000..e0c8c1017
--- /dev/null
+++ b/source/l/libvpx/libvpx.SlackBuild
@@ -0,0 +1,109 @@
+#!/bin/sh
+
+# Slackware build script for libvpx
+
+# Copyright 2013 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2014 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=libvpx
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:--j6}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ARCHOPTS="--target=x86-linux-gcc"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ARCHOPTS="--target=x86-linux-gcc"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ ARCHOPTS="--target=x86_64-linux-gcc --enable-pic"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ ARCHOPTS="--target=${ARCH}-linux-gcc"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# out of tree build
+mkdir build-tmp
+cd build-tmp
+ CFLAGS="$SLKCFLAGS" \
+ CXXFLAGS="$SLKCFLAGS" \
+ ../configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --disable-debug-libs \
+ --disable-debug \
+ --enable-postproc \
+ --enable-vp8 \
+ --enable-shared \
+ --enable-runtime-cpu-detect \
+ $ARCHOPTS
+
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+cd ..
+
+# remove the static version
+rm $PKG/usr/lib${LIBDIRSUFFIX}/$PKGNAM.a
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a AUTHORS CHANGELOG LICENSE PATENTS README* build-tmp/docs/html \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libvpx/slack-desc b/source/l/libvpx/slack-desc
new file mode 100644
index 000000000..cfb82076a
--- /dev/null
+++ b/source/l/libvpx/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libvpx: libvpx (VP8/VP9 video codec)
+libvpx:
+libvpx: VP8 is an open video codec, originally developed by On2 and released
+libvpx: as open source by Google Inc. It is the successor of the VP3 codec,
+libvpx: on which the Theora codec was based.
+libvpx:
+libvpx: VP9 is an open and royalty free video compression standard developed
+libvpx: by Google Inc and successor to VP8.
+libvpx:
+libvpx: Homepage: http://www.webmproject.org/
+libvpx:
diff --git a/source/l/libwmf/libwmf.SlackBuild b/source/l/libwmf/libwmf.SlackBuild
index 77027ac8f..181676236 100755
--- a/source/l/libwmf/libwmf.SlackBuild
+++ b/source/l/libwmf/libwmf.SlackBuild
@@ -22,7 +22,7 @@
VERSION=0.2.8.4
-BUILD=${BUILD:-5}
+BUILD=${BUILD:-6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libwnck/libwnck.SlackBuild b/source/l/libwnck/libwnck.SlackBuild
index e1d6ab9cd..08734c381 100755
--- a/source/l/libwnck/libwnck.SlackBuild
+++ b/source/l/libwnck/libwnck.SlackBuild
@@ -23,22 +23,22 @@
PKGNAM=libwnck
VERSION=${VERSION:-$(echo libwnck-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/libwpd/libwpd.SlackBuild b/source/l/libwpd/libwpd.SlackBuild
index 6b6611624..b829b1f76 100755
--- a/source/l/libwpd/libwpd.SlackBuild
+++ b/source/l/libwpd/libwpd.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2014 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,20 +24,22 @@
VERSION=${VERSION:-$(echo libwpd-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) export ARCH=$MARCH ;;
esac
fi
-NUMJOBS=${NUMJOBS:-" -j7 "}
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -45,6 +47,9 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
diff --git a/source/l/libwpd/slack-desc b/source/l/libwpd/slack-desc
index 4619b32a8..dedddf237 100644
--- a/source/l/libwpd/slack-desc
+++ b/source/l/libwpd/slack-desc
@@ -12,7 +12,7 @@ libwpd: This package contains a library (libwpd) and tools to transform
libwpd: WordPerfect documents into other formats such as HTML, text, and raw.
libwpd:
libwpd:
-libwpd: libwpd is used by word processors such as KWord.
+libwpd: libwpd is used by word processors such as Calligra Words.
libwpd:
libwpd:
libwpd:
diff --git a/source/l/libwpg/libwpg.SlackBuild b/source/l/libwpg/libwpg.SlackBuild
new file mode 100755
index 000000000..fa05ea388
--- /dev/null
+++ b/source/l/libwpg/libwpg.SlackBuild
@@ -0,0 +1,108 @@
+#!/bin/sh
+
+# Slackware build script for libwpg
+
+# Copyright 2008-2015 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=libwpg
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-libwpg
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf libwpg-$VERSION
+tar xvf $CWD/libwpg-$VERSION.tar.?z* || exit 1
+cd libwpg-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux \
+ --host=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install-strip DESTDIR=$PKG || exit 1
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a COPYING* AUTHORS ChangeLog README* $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/libwpg/slack-desc b/source/l/libwpg/slack-desc
new file mode 100644
index 000000000..7152cd82c
--- /dev/null
+++ b/source/l/libwpg/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+libwpg: libwpg (WPG-image reading/converting library)
+libwpg:
+libwpg: libwpg is a library for reading and converting WPG images
+libwpg:
+libwpg: Homepage: http://libwpg.sourceforge.net/
+libwpg:
+libwpg:
+libwpg:
+libwpg:
+libwpg:
+libwpg:
diff --git a/source/l/libxml2/0001-Fix-attribute-decoding-during-XML-schema-validation.diff b/source/l/libxml2/0001-Fix-attribute-decoding-during-XML-schema-validation.diff
new file mode 100644
index 000000000..6dbaddcd8
--- /dev/null
+++ b/source/l/libxml2/0001-Fix-attribute-decoding-during-XML-schema-validation.diff
@@ -0,0 +1,67 @@
+From 256366ed60f8795279b25f7b7b55e8089b4c6ff4 Mon Sep 17 00:00:00 2001
+From: Alex Henrie <alexhenrie24@gmail.com>
+Date: Thu, 26 May 2016 17:38:35 -0600
+Subject: [PATCH] Fix attribute decoding during XML schema validation
+
+For https://bugzilla.gnome.org/show_bug.cgi?id=766834
+
+vctxt->parserCtxt is always NULL in xmlSchemaSAXHandleStartElementNs,
+so this function can't call xmlStringLenDecodeEntities to decode the
+entities.
+---
+ xmlschemas.c | 30 +++++++++++++++++++++++++-----
+ 1 file changed, 25 insertions(+), 5 deletions(-)
+
+diff --git a/xmlschemas.c b/xmlschemas.c
+index e1b3a4f..59535e5 100644
+--- a/xmlschemas.c
++++ b/xmlschemas.c
+@@ -27391,6 +27391,7 @@ xmlSchemaSAXHandleStartElementNs(void *ctx,
+ * attributes yet.
+ */
+ if (nb_attributes != 0) {
++ int valueLen, k, l;
+ xmlChar *value;
+
+ for (j = 0, i = 0; i < nb_attributes; i++, j += 5) {
+@@ -27400,12 +27401,31 @@ xmlSchemaSAXHandleStartElementNs(void *ctx,
+ * libxml2 differs from normal SAX here in that it escapes all ampersands
+ * as &#38; instead of delivering the raw converted string. Changing the
+ * behavior at this point would break applications that use this API, so
+- * we are forced to work around it. There is no danger of accidentally
+- * decoding some entity other than &#38; in this step because without
+- * unescaped ampersands there can be no other entities in the string.
++ * we are forced to work around it.
+ */
+- value = xmlStringLenDecodeEntities(vctxt->parserCtxt, attributes[j+3],
+- attributes[j+4] - attributes[j+3], XML_SUBSTITUTE_REF, 0, 0, 0);
++ valueLen = attributes[j+4] - attributes[j+3];
++ value = xmlMallocAtomic(valueLen + 1);
++ if (value == NULL) {
++ xmlSchemaVErrMemory(vctxt,
++ "allocating string for decoded attribute",
++ NULL);
++ goto internal_error;
++ }
++ for (k = 0, l = 0; k < valueLen; l++) {
++ if (k < valueLen - 4 &&
++ attributes[j+3][k+0] == '&' &&
++ attributes[j+3][k+1] == '#' &&
++ attributes[j+3][k+2] == '3' &&
++ attributes[j+3][k+3] == '8' &&
++ attributes[j+3][k+4] == ';') {
++ value[l] = '&';
++ k += 5;
++ } else {
++ value[l] = attributes[j+3][k];
++ k++;
++ }
++ }
++ value[l] = '\0';
+ /*
+ * TODO: Set the node line.
+ */
+--
+2.8.3
+
+
diff --git a/source/l/libxml2/libxml2.SlackBuild b/source/l/libxml2/libxml2.SlackBuild
index 1f44142ca..87280fca0 100755
--- a/source/l/libxml2/libxml2.SlackBuild
+++ b/source/l/libxml2/libxml2.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,12 +23,12 @@
PKGNAM=libxml2
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -70,11 +70,14 @@ find . \
zcat $CWD/libxml2.do-not-check-crc.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/0001-Fix-attribute-decoding-during-XML-schema-validation.diff.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
+ --disable-static \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/l/libxslt/libxslt.SlackBuild b/source/l/libxslt/libxslt.SlackBuild
index 6ff4a4196..329d9395a 100755
--- a/source/l/libxslt/libxslt.SlackBuild
+++ b/source/l/libxslt/libxslt.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2012, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2012, 2013, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,7 +27,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -36,8 +36,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -69,6 +69,7 @@ CFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
+ --disable-static \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/l/libyaml/libyaml.SlackBuild b/source/l/libyaml/libyaml.SlackBuild
index 4dad39be9..e4e497e14 100755
--- a/source/l/libyaml/libyaml.SlackBuild
+++ b/source/l/libyaml/libyaml.SlackBuild
@@ -30,7 +30,7 @@ BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
i?86) ARCH=i486 ;;
- arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
esac
diff --git a/source/l/libzip/libzip.SlackBuild b/source/l/libzip/libzip.SlackBuild
index a841127ee..9531854fa 100755
--- a/source/l/libzip/libzip.SlackBuild
+++ b/source/l/libzip/libzip.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2007, 2013 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2007, 2013, 2015 Heinz Wiesinger, Amsterdam, The Netherlands
# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
@@ -26,12 +26,12 @@
PKGNAM=libzip
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -44,8 +44,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-libzip
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -85,7 +85,6 @@ CXXFLAGS="$SLKCFLAGS" \
# Fix symbolic linking for manpages
sed -i "s|\${LN}|\${LN_S}|g" man/Makefile
-sed -i "s|\${LN_S} \${DESTDIR}\${man3dir}/|\${LN_S} |" man/Makefile
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
@@ -101,9 +100,29 @@ make install DESTDIR=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-( cd $PKG/usr/man
- find . -type f -exec gzip -9 {} \;
- for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Now, fix the stupid symbolic manpage links again:
+( cd $PKG/usr/man/man3
+ find . -type l | while read link ; do
+ LINKFILE=$(basename $link)
+ LINKTARGET=$(basename $(readlink $LINKFILE))
+ rm $LINKFILE
+ ln -sf $LINKTARGET $LINKFILE
+ done
)
mkdir -p $PKG/usr/doc/libzip-$VERSION
diff --git a/source/l/libzip/slack-desc b/source/l/libzip/slack-desc
index 16d8a0bfc..b8b4aaabb 100644
--- a/source/l/libzip/slack-desc
+++ b/source/l/libzip/slack-desc
@@ -5,7 +5,7 @@
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
- |-----handy-ruler--------------------------------------------------|
+ |-----handy-ruler------------------------------------------------------|
libzip: libzip (A library to read, create, and modify Zip archives)
libzip:
libzip: This is libzip, a C library for reading, creating, and modifying
diff --git a/source/l/loudmouth/loudmouth.SlackBuild b/source/l/loudmouth/loudmouth.SlackBuild
index 5974e3a66..b1316f74a 100755
--- a/source/l/loudmouth/loudmouth.SlackBuild
+++ b/source/l/loudmouth/loudmouth.SlackBuild
@@ -23,7 +23,7 @@
# -----------------------------------------------------------------------------
PKGNAM=loudmouth
-VERSION=${VERSION:-1.5.0-20121201}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:" -j4 "}
@@ -31,15 +31,15 @@ NUMJOBS=${NUMJOBS:" -j4 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
SLKLDFLAGS=""
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
@@ -67,8 +67,6 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
-zcat $CWD/loudmouth.ld.gobject.diff.gz | patch -p1 --verbose || exit 1
-
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
@@ -90,20 +88,17 @@ LDFLAGS="$SLKLDFLAGS" \
--with-ssl=gnutls \
--enable-debug=yes \
--enable-static=no \
- --enable-gtk-doc \
+ --disable-gtk-doc \
--program-prefix= \
--program-suffix= \
--build=$ARCH-slackware-linux \
- --host=$ARCH-slackware-linux
+ --host=$ARCH-slackware-linux || exit 1
##
## NOTE: For some reason --enable-debug=yes actually _disables_ verbose debug
## messages to the console. Don't mess with it!
##
-## this generates a broken libtool, so use the system version:
-#cp /usr/bin/libtool .
-
# Build and install:
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG
diff --git a/source/l/loudmouth/loudmouth.ld.gobject.diff b/source/l/loudmouth/loudmouth.ld.gobject.diff
deleted file mode 100644
index a9f5b8133..000000000
--- a/source/l/loudmouth/loudmouth.ld.gobject.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./loudmouth/Makefile.in.orig 2012-12-01 12:53:52.000000000 -0600
-+++ ./loudmouth/Makefile.in 2013-03-20 21:25:34.368522959 -0500
-@@ -148,7 +148,7 @@
- CCLD = $(CC)
- LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-- $(LDFLAGS) -o $@
-+ $(LDFLAGS) -o $@ -lgobject-2.0
- SOURCES = $(libloudmouth_1_la_SOURCES) $(test_dns_SOURCES)
- DIST_SOURCES = $(am__libloudmouth_1_la_SOURCES_DIST) \
- $(test_dns_SOURCES)
diff --git a/source/l/loudmouth/slack-desc b/source/l/loudmouth/slack-desc
index 00f7c03f5..ca3c4b702 100644
--- a/source/l/loudmouth/slack-desc
+++ b/source/l/loudmouth/slack-desc
@@ -13,7 +13,7 @@ loudmouth: with the Jabber protocol. It is designed to be easy to get started
loudmouth: with, and yet extensible enough to allow you to do anything that the
loudmouth: Jabber protocol allows.
loudmouth:
-loudmouth: loudmouth home: http://www.loudmouth-project.org/
+loudmouth: loudmouth home: https://github.com/mcabber/loudmouth
loudmouth:
loudmouth:
loudmouth:
diff --git a/source/l/lzo/lzo.SlackBuild b/source/l/lzo/lzo.SlackBuild
index 4e1170c8d..c16ec2e85 100755
--- a/source/l/lzo/lzo.SlackBuild
+++ b/source/l/lzo/lzo.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2006 Ricardson Williams <ricardsonwilliams at yahoo.com.br>
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -77,6 +77,7 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--disable-static \
--enable-shared \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
@@ -88,7 +89,6 @@ mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
# rather hard to use outside of the actual source tree...
cp -a \
AUTHORS BUGS COPYING* INSTALL NEWS README* THANKS \
- doc \
$PKG/usr/doc/$PKGNAM-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
diff --git a/source/l/mozilla-nss/mozilla-nss.SlackBuild b/source/l/mozilla-nss/mozilla-nss.SlackBuild
index 9c5c5ed9d..35e513d15 100755
--- a/source/l/mozilla-nss/mozilla-nss.SlackBuild
+++ b/source/l/mozilla-nss/mozilla-nss.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
# Copyright 2005, 2006, 2008, 2009, 2010, 2012 Eric Hameleers, Eindhoven, NL
-# Copyright 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -24,15 +24,15 @@
PKGNAM=mozilla-nss
SRCNAM=nss
-VERSION=${VERSION:-3.15.2}
-NSPR=${NSPR:-4.10.1}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-3.23}
+NSPR=${NSPR:-4.12}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -40,8 +40,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
@@ -59,6 +59,9 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
+# Seems parallel build does not work with this.
+#NUMJOBS=${NUMJOBS:-" -j7 "}
+
rm -rf $PKG
mkdir -p $TMP $PKG
@@ -87,6 +90,8 @@ export NSDISTMODE="copy"
export NSS_USE_SYSTEM_SQLITE=1
export NSS_ENABLE_ECC=1
cd nss
+ # Seems parallel build does not work with this.
+ #make $NUMJOBS nss_build_all export
make nss_build_all export
cd -
diff --git a/source/l/mpfr/mpfr.SlackBuild b/source/l/mpfr/mpfr.SlackBuild
index 1e56ba3d3..55e41a196 100755
--- a/source/l/mpfr/mpfr.SlackBuild
+++ b/source/l/mpfr/mpfr.SlackBuild
@@ -32,7 +32,7 @@ NUMJOBS=${NUMJOBS:-" -j7 "}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -40,8 +40,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/ncurses/ncurses-5.9-20130504-patch.sh b/source/l/ncurses/ncurses-5.9-20130504-patch.sh
deleted file mode 100644
index 6db3ebb1e..000000000
--- a/source/l/ncurses/ncurses-5.9-20130504-patch.sh
+++ /dev/null
@@ -1,106265 +0,0 @@
-#!/bin/sh
-# Use this script to patch ncurses 5.9 to 5.9 (20130504)
-# Run this script inside the ncurses 5.9 source directory et voila! Updated.
-
-if ( egrep '^NCURSES_MAJOR = 5$' dist.mk >/dev/null 2>&1 \
- && egrep '^NCURSES_MINOR = 9$' dist.mk >/dev/null 2>&1 \
- && egrep '^NCURSES_PATCH = 20110404$' dist.mk >/dev/null 2>&1 )
-then
- echo patching...
- rm -f mk-dlls.sh.in
- rm -f ncurses/base/memmove.c
- rm -f ncurses/tinfo/setbuf.c
- rm -f ncurses/tty/tty_display.h
- rm -f ncurses/tty/tty_input.h
-else
- echo 'This does not look like ncurses 5.9'
- exit 1
-fi
-
-patch -p1 -i $0 # shell command = this script = inputfile for patch
-exit
-
-# patch by Thomas E. Dickey <dickey@invisible-island.net>
-# created Sun May 5 16:20:54 UTC 2013
-# ------------------------------------------------------------------------------
-# Ada95/aclocal.m4 | 1081 -
-# Ada95/configure | 4663 +++--
-# Ada95/configure.in | 115
-# Ada95/doc/Makefile.in | 3
-# Ada95/gen/Makefile.in | 12
-# Ada95/gen/gen.c | 45
-# Ada95/include/ncurses_defs | 7
-# Ada95/samples/Makefile.in | 7
-# Ada95/src/Makefile.in | 32
-# INSTALL | 100
-# MANIFEST | 27
-# Makefile.in | 13
-# NEWS | 1234 +
-# README | 17
-# README.MinGW | 95
-# aclocal.m4 | 1517 +
-# announce.html.in | 63
-# c++/Makefile.in | 111
-# c++/cursesapp.h | 21
-# c++/cursesf.cc | 12
-# c++/cursesf.h | 14
-# c++/cursesm.cc | 10
-# c++/cursesm.h | 13
-# c++/cursesp.h | 6
-# c++/cursespad.cc | 56
-# c++/cursesw.cc | 7
-# c++/cursesw.h | 11
-# c++/cursslk.cc | 9
-# c++/demo.cc | 9
-# c++/etip.h.in | 18
-# c++/internal.h | 6
-# c++/modules | 21
-# config.guess | 253
-# config.sub | 200
-# configure | 7253 +++++---
-# configure.in | 510
-# dist.mk | 6
-# doc/html/man/adacurses-config.1.html | 2
-# doc/html/man/captoinfo.1m.html | 11
-# doc/html/man/clear.1.html | 2
-# doc/html/man/curs_add_wch.3x.html | 24
-# doc/html/man/curs_add_wchstr.3x.html | 79
-# doc/html/man/curs_addch.3x.html | 5
-# doc/html/man/curs_addchstr.3x.html | 67
-# doc/html/man/curs_addstr.3x.html | 47
-# doc/html/man/curs_addwstr.3x.html | 54
-# doc/html/man/curs_attr.3x.html | 2
-# doc/html/man/curs_bkgrnd.3x.html | 6
-# doc/html/man/curs_border_set.3x.html | 6
-# doc/html/man/curs_get_wch.3x.html | 6
-# doc/html/man/curs_get_wstr.3x.html | 6
-# doc/html/man/curs_getcchar.3x.html | 6
-# doc/html/man/curs_getch.3x.html | 22
-# doc/html/man/curs_in_wchstr.3x.html | 6
-# doc/html/man/curs_inopts.3x.html | 52
-# doc/html/man/curs_ins_wstr.3x.html | 6
-# doc/html/man/curs_inwstr.3x.html | 6
-# doc/html/man/curs_mouse.3x.html | 4
-# doc/html/man/curs_sp_funcs.3x.html | 50
-# doc/html/man/curs_termattrs.3x.html | 10
-# doc/html/man/curs_termcap.3x.html | 129
-# doc/html/man/curs_terminfo.3x.html | 6
-# doc/html/man/curs_threads.3x.html | 8
-# doc/html/man/curs_util.3x.html | 91
-# doc/html/man/form.3x.html | 2
-# doc/html/man/form_field.3x.html | 6
-# doc/html/man/form_field_buffer.3x.html | 4
-# doc/html/man/form_fieldtype.3x.html | 4
-# doc/html/man/infocmp.1m.html | 284
-# doc/html/man/infotocap.1m.html | 6
-# doc/html/man/menu.3x.html | 2
-# doc/html/man/menu_driver.3x.html | 46
-# doc/html/man/menu_items.3x.html | 6
-# doc/html/man/ncurses.3x.html | 611
-# doc/html/man/ncurses5-config.1.html | 7
-# doc/html/man/panel.3x.html | 40
-# doc/html/man/resizeterm.3x.html | 8
-# doc/html/man/tabs.1.html | 6
-# doc/html/man/term.7.html | 10
-# doc/html/man/term_variables.3x.html | 4
-# doc/html/man/terminfo.5.html | 1319 -
-# doc/html/man/tic.1m.html | 271
-# doc/html/man/toe.1m.html | 16
-# doc/html/man/tput.1.html | 128
-# doc/html/man/tset.1.html | 149
-# doc/html/ncurses-intro.html | 5
-# doc/ncurses-intro.doc | 1
-# form/Makefile.in | 7
-# form/fld_arg.c | 6
-# form/fld_def.c | 27
-# form/fld_dup.c | 8
-# form/fld_ftchoice.c | 6
-# form/fld_ftlink.c | 10
-# form/fld_just.c | 6
-# form/fld_link.c | 8
-# form/fld_max.c | 8
-# form/fld_move.c | 8
-# form/fld_page.c | 8
-# form/fld_stat.c | 8
-# form/form.priv.h | 9
-# form/frm_def.c | 24
-# form/frm_driver.c | 164
-# form/frm_hook.c | 6
-# form/frm_opts.c | 10
-# form/frm_page.c | 6
-# form/frm_post.c | 8
-# form/frm_req_name.c | 21
-# form/fty_generic.c | 6
-# form/fty_int.c | 7
-# form/fty_num.c | 7
-# form/fty_regex.c | 14
-# include/Caps | 18
-# include/Caps.aix4 | 18
-# include/Caps.hpux11 | 18
-# include/Caps.keys | 18
-# include/Caps.osf1r5 | 6
-# include/MKkey_defs.sh | 9
-# include/MKterm.h.awk.in | 39
-# include/curses.h.in | 220
-# include/curses.tail | 4
-# include/curses.wide | 140
-# include/headers | 17
-# include/nc_alloc.h | 14
-# include/nc_tparm.h | 8
-# include/ncurses_defs | 19
-# include/ncurses_mingw.h | 100
-# include/term_entry.h | 66
-# include/tic.h | 35
-# man/Makefile.in | 3
-# man/curs_add_wch.3x | 6
-# man/curs_add_wchstr.3x | 64
-# man/curs_addchstr.3x | 50
-# man/curs_addstr.3x | 38
-# man/curs_addwstr.3x | 35
-# man/curs_bkgrnd.3x | 6
-# man/curs_border_set.3x | 6
-# man/curs_get_wch.3x | 6
-# man/curs_get_wstr.3x | 6
-# man/curs_getcchar.3x | 6
-# man/curs_getch.3x | 12
-# man/curs_in_wchstr.3x | 6
-# man/curs_inopts.3x | 47
-# man/curs_ins_wstr.3x | 6
-# man/curs_inwstr.3x | 6
-# man/curs_overlay.3x | 26
-# man/curs_termcap.3x | 61
-# man/curs_terminfo.3x | 8
-# man/curs_threads.3x | 8
-# man/curs_util.3x | 88
-# man/form_field.3x | 6
-# man/infocmp.1m | 176
-# man/menu_items.3x | 6
-# man/ncurses.3x | 142
-# man/resizeterm.3x | 6
-# man/tabs.1 | 20
-# man/term.7 | 6
-# man/term_variables.3x | 6
-# man/terminfo.head | 15
-# man/terminfo.tail | 188
-# man/tic.1m | 200
-# man/toe.1m | 21
-# man/tput.1 | 35
-# man/tset.1 | 39
-# menu/Makefile.in | 7
-# menu/m_attribs.c | 6
-# menu/m_driver.c | 12
-# menu/m_format.c | 20
-# menu/m_global.c | 38
-# menu/m_hook.c | 6
-# menu/m_item_new.c | 21
-# menu/m_pad.c | 6
-# menu/m_post.c | 40
-# menu/m_req_name.c | 19
-# menu/m_spacing.c | 10
-# menu/menu.priv.h | 15
-# menu/mf_common.h | 18
-# misc/Makefile.in | 10
-# misc/gen-pkgconfig.in | 86
-# misc/gen_edit.sh | 72
-# misc/ncurses-config.in | 49
-# misc/run_tic.in | 7
-# misc/terminfo.src | 1357 +
-# mk-0th.awk | 91
-# mk-1st.awk | 118
-# ncurses-5.9-20130504/include/nc_string.h | 77
-# ncurses-5.9-20130504/include/nc_termios.h | 171
-# ncurses-5.9-20130504/ncurses/llib-ltic | 212
-# ncurses-5.9-20130504/ncurses/llib-ltictw | 212
-# ncurses-5.9-20130504/ncurses/llib-lticw | 212
-# ncurses-5.9-20130504/ncurses/llib-ltinfo | 1504 +
-# ncurses-5.9-20130504/ncurses/llib-ltinfotw | 1646 +
-# ncurses-5.9-20130504/ncurses/llib-ltinfow | 1537 +
-# ncurses-5.9-20130504/ncurses/tinfo/obsolete.c | 102
-# ncurses-5.9-20130504/ncurses/widechar/widechars.c | 152
-# ncurses-5.9-20130504/package/debian/changelog | 11
-# ncurses-5.9-20130504/package/debian/compat | 1
-# ncurses-5.9-20130504/package/debian/control | 16
-# ncurses-5.9-20130504/package/debian/copyright | 112
-# ncurses-5.9-20130504/package/debian/rules | 123
-# ncurses-5.9-20130504/package/debian/source/format | 1
-# ncurses-5.9-20130504/package/debian/watch | 4
-# ncurses-5.9-20130504/package/ncurses.spec | 92
-# ncurses-5.9-20130504/test/color_name.h | 103
-# ncurses-5.9-20130504/test/test_vid_puts.c | 148
-# ncurses-5.9-20130504/test/test_vidputs.c | 148
-# ncurses-5.9-20130504/test/widechars.h | 71
-# ncurses/Makefile.in | 22
-# ncurses/base/MKkeyname.awk | 13
-# ncurses/base/MKlib_gen.sh | 43
-# ncurses/base/MKunctrl.awk | 6
-# ncurses/base/keybound.c | 9
-# ncurses/base/keyok.c | 66
-# ncurses/base/lib_addch.c | 16
-# ncurses/base/lib_addstr.c | 10
-# ncurses/base/lib_beep.c | 11
-# ncurses/base/lib_bkgd.c | 11
-# ncurses/base/lib_color.c | 89
-# ncurses/base/lib_dft_fgbg.c | 5
-# ncurses/base/lib_driver.c | 22
-# ncurses/base/lib_flash.c | 20
-# ncurses/base/lib_freeall.c | 20
-# ncurses/base/lib_getch.c | 39
-# ncurses/base/lib_getstr.c | 6
-# ncurses/base/lib_insch.c | 8
-# ncurses/base/lib_instr.c | 14
-# ncurses/base/lib_mouse.c | 415
-# ncurses/base/lib_newterm.c | 11
-# ncurses/base/lib_newwin.c | 17
-# ncurses/base/lib_overlay.c | 21
-# ncurses/base/lib_printw.c | 34
-# ncurses/base/lib_refresh.c | 17
-# ncurses/base/lib_restart.c | 10
-# ncurses/base/lib_scanw.c | 6
-# ncurses/base/lib_screen.c | 19
-# ncurses/base/lib_scroll.c | 8
-# ncurses/base/lib_set_term.c | 41
-# ncurses/base/lib_slkrefr.c | 22
-# ncurses/base/lib_slkset.c | 17
-# ncurses/base/lib_touch.c | 6
-# ncurses/base/lib_ungetch.c | 11
-# ncurses/base/resizeterm.c | 83
-# ncurses/base/safe_sprintf.c | 20
-# ncurses/base/vsscanf.c | 8
-# ncurses/base/wresize.c | 9
-# ncurses/build.priv.h | 6
-# ncurses/curses.priv.h | 280
-# ncurses/fifo_defs.h | 46
-# ncurses/llib-lncurses | 11
-# ncurses/llib-lncursest | 11
-# ncurses/llib-lncursestw | 11
-# ncurses/llib-lncursesw | 11
-# ncurses/modules | 8
-# ncurses/tinfo/MKcaptab.sh | 10
-# ncurses/tinfo/access.c | 43
-# ncurses/tinfo/alloc_entry.c | 31
-# ncurses/tinfo/alloc_ttype.c | 52
-# ncurses/tinfo/captoinfo.c | 212
-# ncurses/tinfo/comp_error.c | 20
-# ncurses/tinfo/comp_expand.c | 19
-# ncurses/tinfo/comp_parse.c | 189
-# ncurses/tinfo/comp_scan.c | 169
-# ncurses/tinfo/db_iterator.c | 413
-# ncurses/tinfo/doalloc.c | 21
-# ncurses/tinfo/entries.c | 11
-# ncurses/tinfo/getenv_num.c | 21
-# ncurses/tinfo/hashed_db.c | 159
-# ncurses/tinfo/home_terminfo.c | 10
-# ncurses/tinfo/lib_acs.c | 7
-# ncurses/tinfo/lib_cur_term.c | 7
-# ncurses/tinfo/lib_data.c | 14
-# ncurses/tinfo/lib_napms.c | 12
-# ncurses/tinfo/lib_options.c | 39
-# ncurses/tinfo/lib_print.c | 10
-# ncurses/tinfo/lib_raw.c | 35
-# ncurses/tinfo/lib_setup.c | 158
-# ncurses/tinfo/lib_termcap.c | 39
-# ncurses/tinfo/lib_tgoto.c | 9
-# ncurses/tinfo/lib_tparm.c | 28
-# ncurses/tinfo/lib_tputs.c | 92
-# ncurses/tinfo/lib_ttyflags.c | 10
-# ncurses/tinfo/make_hash.c | 51
-# ncurses/tinfo/make_keys.c | 6
-# ncurses/tinfo/name_match.c | 42
-# ncurses/tinfo/parse_entry.c | 40
-# ncurses/tinfo/read_entry.c | 274
-# ncurses/tinfo/read_termcap.c | 85
-# ncurses/tinfo/strings.c | 8
-# ncurses/tinfo/tinfo_driver.c | 181
-# ncurses/tinfo/trim_sgr0.c | 85
-# ncurses/tinfo/write_entry.c | 103
-# ncurses/trace/lib_trace.c | 20
-# ncurses/trace/lib_traceatr.c | 44
-# ncurses/trace/lib_tracebits.c | 24
-# ncurses/trace/lib_tracechr.c | 15
-# ncurses/trace/lib_tracedmp.c | 8
-# ncurses/trace/lib_tracemse.c | 42
-# ncurses/trace/trace_buf.c | 11
-# ncurses/trace/trace_tries.c | 37
-# ncurses/trace/varargs.c | 23
-# ncurses/trace/visbuf.c | 48
-# ncurses/tty/hardscroll.c | 24
-# ncurses/tty/hashmap.c | 6
-# ncurses/tty/lib_mvcur.c | 115
-# ncurses/tty/lib_tstp.c | 55
-# ncurses/tty/lib_twait.c | 64
-# ncurses/tty/lib_vidattr.c | 50
-# ncurses/tty/tty_update.c | 264
-# ncurses/widechar/lib_box_set.c | 6
-# ncurses/widechar/lib_cchar.c | 16
-# ncurses/widechar/lib_get_wch.c | 9
-# ncurses/widechar/lib_get_wstr.c | 8
-# ncurses/widechar/lib_ins_wch.c | 6
-# ncurses/widechar/lib_inwstr.c | 11
-# ncurses/widechar/lib_slk_wset.c | 30
-# ncurses/widechar/lib_unget_wch.c | 6
-# ncurses/widechar/lib_vid_attr.c | 40
-# ncurses/widechar/lib_wacs.c | 38
-# ncurses/widechar/lib_wunctrl.c | 17
-# ncurses/win32con/win_driver.c | 385
-# panel/Makefile.in | 8
-# panel/p_above.c | 6
-# panel/p_below.c | 6
-# panel/panel.c | 12
-# panel/panel.priv.h | 8
-# progs/Makefile.in | 30
-# progs/capconvert | 24
-# progs/dump_entry.c | 205
-# progs/dump_entry.h | 14
-# progs/infocmp.c | 467
-# progs/progs.priv.h | 22
-# progs/tabs.c | 92
-# progs/tic.c | 565
-# progs/toe.c | 442
-# progs/tput.c | 9
-# progs/transform.c | 16
-# progs/tset.c | 43
-# test/Makefile.in | 10
-# test/README | 52
-# test/aclocal.m4 | 1128 -
-# test/background.c | 228
-# test/blue.c | 12
-# test/bs.c | 60
-# test/cardfile.c | 26
-# test/chgat.c | 6
-# test/clip_printw.c | 11
-# test/color_set.c | 6
-# test/configure |16812 ++++++++++----------
-# test/configure.in | 189
-# test/demo_defkey.c | 6
-# test/demo_forms.c | 25
-# test/demo_menus.c | 33
-# test/demo_termcap.c | 289
-# test/demo_terminfo.c | 245
-# test/ditto.c | 10
-# test/dots.c | 8
-# test/dots_mvcur.c | 8
-# test/echochar.c | 6
-# test/filter.c | 8
-# test/firework.c | 16
-# test/gdc.c | 20
-# test/hanoi.c | 33
-# test/hashtest.c | 6
-# test/inchs.c | 16
-# test/ins_wide.c | 34
-# test/insdelln.c | 8
-# test/inserts.c | 29
-# test/knight.c | 70
-# test/linedata.h | 6
-# test/modules | 8
-# test/movewindow.c | 227
-# test/ncurses.c | 351
-# test/newdemo.c | 23
-# test/programs | 6
-# test/railroad.c | 8
-# test/rain.c | 8
-# test/redraw.c | 6
-# test/tclock.c | 6
-# test/test.priv.h | 111
-# test/test_add_wchstr.c | 31
-# test/test_addchstr.c | 31
-# test/test_addstr.c | 29
-# test/test_addwstr.c | 34
-# test/test_getstr.c | 15
-# test/testaddch.c | 12
-# test/testcurs.c | 64
-# test/view.c | 88
-# test/worm.c | 28
-# test/xmas.c | 6
-# 388 files changed, 39001 insertions(+), 21591 deletions(-)
-# ------------------------------------------------------------------------------
-# Please remove the following files before applying this patch.
-# (You can feed this patch to 'sh' to do so.)
-
-rm -f mk-dlls.sh.in
-rm -f ncurses/base/memmove.c
-rm -f ncurses/tinfo/setbuf.c
-rm -f ncurses/tty/tty_display.h
-rm -f ncurses/tty/tty_input.h
-exit
-
-Index: Ada95/aclocal.m4
-Prereq: 1.24
---- ncurses-5.9/Ada95/aclocal.m4 2011-03-31 23:32:36.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/aclocal.m4 2013-04-13 23:00:18.000000000 +0000
-@@ -1,5 +1,5 @@
- dnl***************************************************************************
--dnl Copyright (c) 2010,2011 Free Software Foundation, Inc. *
-+dnl Copyright (c) 2010-2012,2013 Free Software Foundation, Inc. *
- dnl *
- dnl Permission is hereby granted, free of charge, to any person obtaining a *
- dnl copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- dnl
- dnl Author: Thomas E. Dickey
- dnl
--dnl $Id: aclocal.m4,v 1.24 2011/03/31 23:32:36 tom Exp $
-+dnl $Id: aclocal.m4,v 1.66 2013/04/13 23:00:18 tom Exp $
- dnl Macros used in NCURSES Ada95 auto-configuration script.
- dnl
- dnl These macros are maintained separately from NCURSES. The copyright on
-@@ -39,6 +39,32 @@
- dnl
- dnl ---------------------------------------------------------------------------
- dnl ---------------------------------------------------------------------------
-+dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56
-+dnl ------------------
-+dnl Conditionally generate script according to whether we're using a given autoconf.
-+dnl
-+dnl $1 = version to compare against
-+dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
-+dnl $3 = code to use if AC_ACVERSION is older than $1.
-+define([CF_ACVERSION_CHECK],
-+[
-+ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl
-+ifdef([m4_version_compare],
-+[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
-+[CF_ACVERSION_COMPARE(
-+AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
-+AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
-+dnl --------------------
-+dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
-+dnl MAJOR2, MINOR2, TERNARY2,
-+dnl PRINTABLE2, not FOUND, FOUND)
-+define([CF_ACVERSION_COMPARE],
-+[ifelse(builtin([eval], [$2 < $5]), 1,
-+[ifelse([$8], , ,[$8])],
-+[ifelse([$9], , ,[$9])])])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
- dnl -------------------
- dnl Construct the list of include-options for the C programs in the Ada95
-@@ -290,75 +316,34 @@
- }
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
--dnl ----------------
--dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
--dnl in the sharutils 4.2 distribution.
--AC_DEFUN([CF_ANSI_CC_CHECK],
--[
--AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
--cf_cv_ansi_cc=no
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
--for cf_arg in "-DCC_HAS_PROTOS" \
-- "" \
-- -qlanglvl=ansi \
-- -std1 \
-- -Ae \
-- "-Aa -D_HPUX_SOURCE" \
-- -Xc
--do
-- CF_ADD_CFLAGS($cf_arg)
-- AC_TRY_COMPILE(
--[
--#ifndef CC_HAS_PROTOS
--#if !defined(__STDC__) || (__STDC__ != 1)
--choke me
--#endif
--#endif
--],[
-- int test (int i, double x);
-- struct s1 {int (*f) (int a);};
-- struct s2 {int (*f) (double a);};],
-- [cf_cv_ansi_cc="$cf_arg"; break])
--done
--CFLAGS="$cf_save_CFLAGS"
--CPPFLAGS="$cf_save_CPPFLAGS"
--])
--
--if test "$cf_cv_ansi_cc" != "no"; then
--if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-- CF_ADD_CFLAGS($cf_cv_ansi_cc)
--else
-- AC_DEFINE(CC_HAS_PROTOS)
--fi
--fi
--])dnl
-+dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
-+dnl --------------
-+dnl Allow user to disable a normally-on option.
-+AC_DEFUN([CF_ARG_DISABLE],
-+[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
--dnl ---------------
--dnl For programs that must use an ANSI compiler, obtain compiler options that
--dnl will make it recognize prototypes. We'll do preprocessor checks in other
--dnl macros, since tools such as unproto can fake prototypes, but only part of
--dnl the preprocessor.
--AC_DEFUN([CF_ANSI_CC_REQD],
--[AC_REQUIRE([CF_ANSI_CC_CHECK])
--if test "$cf_cv_ansi_cc" = "no"; then
-- AC_MSG_ERROR(
--[Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto])
--fi
-+dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
-+dnl -------------
-+dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
-+dnl values.
-+dnl
-+dnl Parameters:
-+dnl $1 = option name
-+dnl $2 = help-string
-+dnl $3 = action to perform if option is not default
-+dnl $4 = action if perform if option is default
-+dnl $5 = default option value (either 'yes' or 'no')
-+AC_DEFUN([CF_ARG_OPTION],
-+[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
-+ if test "$enableval" != "$5" ; then
-+ifelse([$3],,[ :]dnl
-+,[ $3]) ifelse([$4],,,[
-+ else
-+ $4])
-+ fi],[enableval=$5 ifelse([$4],,,[
-+ $4
- ])dnl
-+ ])])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
- dnl -----------
-@@ -413,7 +398,7 @@
- AC_SUBST(ARFLAGS)
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
-+dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
- dnl -----------
- dnl If we're cross-compiling, allow the user to override the tools and their
- dnl options. The configure script is oriented toward identifying the host
-@@ -423,7 +408,8 @@
- dnl $1 = default for $CPPFLAGS
- dnl $2 = default for $LIBS
- AC_DEFUN([CF_BUILD_CC],[
--AC_REQUIRE([CF_PROG_EXT])
-+CF_ACVERSION_CHECK(2.52,,
-+ [AC_REQUIRE([CF_PROG_EXT])])
- if test "$cross_compiling" = yes ; then
-
- # defaults that we might want to override
-@@ -504,7 +490,33 @@
- AC_SUBST(BUILD_OBJEXT)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
-+dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
-+dnl ---------------
-+dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
-+dnl into CC. This will not help with broken scripts that wrap the compiler with
-+dnl options, but eliminates a more common category of user confusion.
-+AC_DEFUN([CF_CC_ENV_FLAGS],
-+[
-+# This should have been defined by AC_PROG_CC
-+: ${CC:=cc}
-+
-+AC_MSG_CHECKING(\$CC variable)
-+case "$CC" in #(vi
-+*[[\ \ ]]-[[IUD]]*)
-+ AC_MSG_RESULT(broken)
-+ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
-+ # humor him...
-+ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
-+ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
-+ CF_ADD_CFLAGS($cf_flags)
-+ ;;
-+*)
-+ AC_MSG_RESULT(ok)
-+ ;;
-+esac
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CFG_DEFAULTS version: 9 updated: 2013/04/13 18:58:32
- dnl ---------------
- dnl Determine the default configuration into which we'll install ncurses. This
- dnl can be overridden by the user's command-line options. There's two items to
-@@ -522,7 +534,7 @@
- if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
-- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
-+ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|k*bsd*-gnu|mingw*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
-@@ -558,7 +570,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
-+dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
- dnl --------------
- dnl Check if we're accidentally using a cache from a different machine.
- dnl Derive the system name, as a check for reusing the autoconf cache.
-@@ -581,7 +593,7 @@
- system_name="`(hostname) 2>/dev/null`"
- fi
- fi
--test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
-+test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
- AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
-
- test -z "$system_name" && system_name="$cf_cv_system_name"
-@@ -593,7 +605,40 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
-+dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39
-+dnl -----------------
-+dnl Check if the given compiler is really clang. clang's C driver defines
-+dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
-+dnl not ignore some gcc options.
-+dnl
-+dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
-+dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
-+dnl the wrappers for gcc and g++ warnings.
-+dnl
-+dnl $1 = GCC (default) or GXX
-+dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
-+dnl $3 = CFLAGS (default) or CXXFLAGS
-+AC_DEFUN([CF_CLANG_COMPILER],[
-+ifelse([$2],,CLANG_COMPILER,[$2])=no
-+
-+if test "$ifelse([$1],,[$1],GCC)" = yes ; then
-+ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
-+ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
-+ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
-+ AC_TRY_COMPILE([],[
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+],[])
-+ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
-+ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
- dnl ----------------
- dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
- dnl variations of ncurses' installs.
-@@ -603,10 +648,10 @@
- AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
- cf_cv_ncurses_header=none
- for cf_header in ifelse($1,,,[ \
-- $1/curses.h \
-- $1/ncurses.h]) \
-- curses.h \
-- ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
-+ $1/ncurses.h \
-+ $1/curses.h]) \
-+ ncurses.h \
-+ curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
- do
- AC_TRY_COMPILE([#include <${cf_header}>],
- [initscr(); tgoto("?", 0,0)],
-@@ -627,6 +672,67 @@
- dnl "dirname" is not portable, so we fake it with a shell script.
- AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
-+dnl ---------------
-+dnl You can always use "make -n" to see the actual options, but it's hard to
-+dnl pick out/analyze warning messages when the compile-line is long.
-+dnl
-+dnl Sets:
-+dnl ECHO_LT - symbol to control if libtool is verbose
-+dnl ECHO_LD - symbol to prefix "cc -o" lines
-+dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
-+dnl SHOW_CC - symbol to put before explicit "cc -c" lines
-+dnl ECHO_CC - symbol to put before any "cc" line
-+dnl
-+AC_DEFUN([CF_DISABLE_ECHO],[
-+AC_MSG_CHECKING(if you want to see long compiling messages)
-+CF_ARG_DISABLE(echo,
-+ [ --disable-echo do not display "compiling" commands],
-+ [
-+ ECHO_LT='--silent'
-+ ECHO_LD='@echo linking [$]@;'
-+ RULE_CC='@echo compiling [$]<'
-+ SHOW_CC='@echo compiling [$]@'
-+ ECHO_CC='@'
-+],[
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-+])
-+AC_MSG_RESULT($enableval)
-+AC_SUBST(ECHO_LT)
-+AC_SUBST(ECHO_LD)
-+AC_SUBST(RULE_CC)
-+AC_SUBST(SHOW_CC)
-+AC_SUBST(ECHO_CC)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
-+dnl ------------------
-+dnl This is the "--enable-pc-files" option, which is available if there is a
-+dnl pkg-config configuration on the local machine.
-+AC_DEFUN([CF_ENABLE_PC_FILES],[
-+AC_REQUIRE([CF_PKG_CONFIG])
-+AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
-+
-+if test "$PKG_CONFIG" != none ; then
-+ AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
-+ AC_ARG_ENABLE(pc-files,
-+ [ --enable-pc-files generate and install .pc files for pkg-config],
-+ [enable_pc_files=$enableval],
-+ [enable_pc_files=no])
-+ AC_MSG_RESULT($enable_pc_files)
-+ if test "$enable_pc_files" != no
-+ then
-+ CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
-+ fi
-+else
-+ enable_pc_files=no
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
- dnl ---------------
- dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
-@@ -807,7 +913,26 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
-+dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
-+dnl -----------------
-+dnl make ADAFLAGS consistent with CFLAGS
-+AC_DEFUN([CF_FIXUP_ADAFLAGS],[
-+ AC_MSG_CHECKING(optimization options for ADAFLAGS)
-+ case "$CFLAGS" in
-+ *-g*)
-+ CF_ADD_ADAFLAGS(-g)
-+ ;;
-+ esac
-+ case "$CFLAGS" in
-+ *-O*)
-+ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
-+ CF_ADD_ADAFLAGS($cf_O_flag)
-+ ;;
-+ esac
-+ AC_MSG_RESULT($ADAFLAGS)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
- dnl -----------------
- dnl Test for availability of useful gcc __attribute__ directives to quiet
- dnl compiler warnings. Though useful, not all are supported -- and contrary
-@@ -885,27 +1010,27 @@
- test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
- cat conftest.h >>confdefs.h
- case $cf_attribute in #(vi
-+ noreturn) #(vi
-+ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
-+ ;;
- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--EOF
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-+ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
- fi
-+ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
- ;;
- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--EOF
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-+ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
- fi
-+ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
-+ ;;
-+ unused) #(vi
-+ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
- ;;
- esac
- fi
-@@ -917,7 +1042,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
-+dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
- dnl --------------
- dnl Find version of gcc
- AC_DEFUN([CF_GCC_VERSION],[
-@@ -925,13 +1050,13 @@
- GCC_VERSION=none
- if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of $CC)
-- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
-+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- AC_MSG_RESULT($GCC_VERSION)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
-+dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39
- 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:
-@@ -954,6 +1079,7 @@
- [
- AC_REQUIRE([CF_GCC_VERSION])
- CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
-+CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
-
- cat > conftest.$ac_ext <<EOF
- #line __oline__ "${as_me:-configure}"
-@@ -1029,6 +1155,13 @@
- continue;;
- esac
- ;;
-+ Wpointer-arith) #(vi
-+ case $GCC_VERSION in
-+ [[12]].*)
-+ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
-+ continue;;
-+ esac
-+ ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
-@@ -1070,53 +1203,6 @@
- AC_SUBST(cf_generic_objects)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
--dnl --------------
--dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
--dnl is noted that gnat may compile a tasking unit even for configurations which
--dnl fail at runtime.
--AC_DEFUN([CF_GNAT_SIGINT],[
--AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
--CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
--
--package ConfTest is
--
-- pragma Warnings (Off); -- the next pragma exists since 3.11p
-- pragma Unreserve_All_Interrupts;
-- pragma Warnings (On);
--
-- protected Process is
-- procedure Stop;
-- function Continue return Boolean;
-- pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
-- private
-- Done : Boolean := False;
-- end Process;
--
--end ConfTest;],
--[package body ConfTest is
-- protected body Process is
-- procedure Stop is
-- begin
-- Done := True;
-- end Stop;
-- function Continue return Boolean is
-- begin
-- return not Done;
-- end Continue;
-- end Process;
--end ConfTest;],
-- [cf_cv_gnat_sigint=yes],
-- [cf_cv_gnat_sigint=no])])
--
--if test $cf_cv_gnat_sigint = yes ; then
-- USE_GNAT_SIGINT=""
--else
-- USE_GNAT_SIGINT="#"
--fi
--AC_SUBST(USE_GNAT_SIGINT)
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_GNAT_PRAGMA_UNREF version: 1 updated: 2010/06/19 15:22:18
- dnl --------------------
- dnl Check if the gnat pragma "Unreferenced" works.
-@@ -1253,6 +1339,53 @@
- AC_SUBST(USE_GNAT_LIBRARIES)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
-+dnl --------------
-+dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
-+dnl is noted that gnat may compile a tasking unit even for configurations which
-+dnl fail at runtime.
-+AC_DEFUN([CF_GNAT_SIGINT],[
-+AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
-+CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
-+
-+package ConfTest is
-+
-+ pragma Warnings (Off); -- the next pragma exists since 3.11p
-+ pragma Unreserve_All_Interrupts;
-+ pragma Warnings (On);
-+
-+ protected Process is
-+ procedure Stop;
-+ function Continue return Boolean;
-+ pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
-+ private
-+ Done : Boolean := False;
-+ end Process;
-+
-+end ConfTest;],
-+[package body ConfTest is
-+ protected body Process is
-+ procedure Stop is
-+ begin
-+ Done := True;
-+ end Stop;
-+ function Continue return Boolean is
-+ begin
-+ return not Done;
-+ end Continue;
-+ end Process;
-+end ConfTest;],
-+ [cf_cv_gnat_sigint=yes],
-+ [cf_cv_gnat_sigint=no])])
-+
-+if test $cf_cv_gnat_sigint = yes ; then
-+ USE_GNAT_SIGINT=""
-+else
-+ USE_GNAT_SIGINT="#"
-+fi
-+AC_SUBST(USE_GNAT_SIGINT)
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
- dnl ----------------
- dnl Verify that a test program compiles/links with GNAT.
-@@ -1311,7 +1444,7 @@
- rm -rf conftest* *~conftest*
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41
-+dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
- dnl ---------------
- dnl Verify version of GNAT.
- AC_DEFUN([CF_GNAT_VERSION],
-@@ -1323,7 +1456,7 @@
- AC_MSG_RESULT($cf_gnat_version)
-
- case $cf_gnat_version in #(vi
--3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi
-+3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
- cf_cv_prog_gnat_correct=yes
- ;;
- *)
-@@ -1416,7 +1549,7 @@
- [AC_DIVERT_HELP([$1])dnl
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
-+dnl CF_INCLUDE_DIRS version: 7 updated: 2012/11/10 19:15:05
- 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
-@@ -1424,25 +1557,25 @@
- dnl since that usually breaks gcc's shadow-includes.
- AC_DEFUN([CF_INCLUDE_DIRS],
- [
--CPPFLAGS="$CPPFLAGS -I. -I../include"
--if test "$srcdir" != "."; then
-- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
--fi
- if test "$GCC" != yes; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- else
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- fi
-+if test "$srcdir" != "."; then
-+ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
-+fi
-+CPPFLAGS="-I. -I../include $CPPFLAGS"
- AC_SUBST(CPPFLAGS)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
-+dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05
- dnl -----------------
- dnl Check if the given compiler is really the Intel compiler for Linux. It
- dnl tries to imitate gcc, but does not return an error when it finds a mismatch
-@@ -1456,6 +1589,7 @@
- dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
- dnl $3 = CFLAGS (default) or CXXFLAGS
- AC_DEFUN([CF_INTEL_COMPILER],[
-+AC_REQUIRE([AC_CANONICAL_HOST])
- ifelse([$2],,INTEL_COMPILER,[$2])=no
-
- if test "$ifelse([$1],,[$1],GCC)" = yes ; then
-@@ -1479,7 +1613,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
-+dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51
- dnl ------------
- dnl Add checks for large file support.
- AC_DEFUN([CF_LARGEFILE],[
-@@ -1513,12 +1647,12 @@
- [cf_cv_struct_dirent64=yes],
- [cf_cv_struct_dirent64=no])
- ])
-- test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
-+ test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
- fi
- ])
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
-+dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
- dnl ---------------
- dnl For the given system and compiler, find the compiler flags to pass to the
- dnl loader to use the "rpath" feature.
-@@ -1539,10 +1673,10 @@
- linux*|gnu*|k*bsd*-gnu) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--openbsd[[2-9]].*) #(vi
-+openbsd[[2-9]].*|mirbsd*) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--freebsd*) #(vi
-+dragonfly*|freebsd*) #(vi
- LD_RPATH_OPT="-rpath "
- ;;
- netbsd*) #(vi
-@@ -1601,11 +1735,11 @@
- $1="$cf_library_path_list [$]$1"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
-+dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
- dnl -------------
- dnl Compute the library-prefix for the given host system
- dnl $1 = variable to set
--AC_DEFUN([CF_LIB_PREFIX],
-+define([CF_LIB_PREFIX],
- [
- case $cf_cv_system_name in #(vi
- OS/2*|os2*) #(vi
-@@ -1618,44 +1752,7 @@
- AC_SUBST(LIB_PREFIX)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
--dnl -------------
--dnl Find the and soname for the given shared library. Set the cache variable
--dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
--dnl variable to "unknown".
--dnl
--dnl $1 = headers
--dnl $2 = code
--dnl $3 = library name
--AC_DEFUN([CF_LIB_SONAME],
--[
--AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
--
--cf_cv_$3_soname=unknown
--if test "$cross_compiling" != yes ; then
--cat >conftest.$ac_ext <<CF_EOF
--$1
--int main()
--{
--$2
-- ${cf_cv_main_return:-return}(0);
--}
--CF_EOF
--cf_save_LIBS="$LIBS"
-- CF_ADD_LIB($3)
-- if AC_TRY_EVAL(ac_compile) ; then
-- if AC_TRY_EVAL(ac_link) ; then
-- cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
-- test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
-- fi
-- fi
--rm -rf conftest*
--LIBS="$cf_save_LIBS"
--fi
--])
--])
--dnl ---------------------------------------------------------------------------
--dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
-+dnl CF_LIB_SUFFIX version: 18 updated: 2012/02/25 15:20:07
- dnl -------------
- dnl Compute the library file-suffix from the given model name
- dnl $1 = model name
-@@ -1684,11 +1781,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[[56]]*) #(vi
-+ aix[[5-7]]*) #(vi
- $2='.a'
- $3=[$]$2
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- $2='.dll'
- $3='.dll.a'
- ;;
-@@ -1735,7 +1832,7 @@
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
-+dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
- dnl ----------------
- dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
- dnl only data (i.e., no functions), for example NeXT. On those systems we'll
-@@ -1792,81 +1889,12 @@
- AC_MSG_RESULT($cf_cv_link_dataonly)
-
- if test "$cf_cv_link_dataonly" = no ; then
-- AC_DEFINE(BROKEN_LINKER)
-+ AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
- BROKEN_LINKER=1
- fi
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
--dnl -------------
--dnl Most Unix systems have both link and symlink, a few don't have symlink.
--dnl A few non-Unix systems implement symlink, but not link.
--dnl A few non-systems implement neither (or have nonfunctional versions).
--AC_DEFUN([CF_LINK_FUNCS],
--[
--AC_CHECK_FUNCS( \
-- remove \
-- unlink )
--
--if test "$cross_compiling" = yes ; then
-- AC_CHECK_FUNCS( \
-- link \
-- symlink )
--else
-- AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
-- cf_cv_link_funcs=
-- for cf_func in link symlink ; do
-- AC_TRY_RUN([
--#include <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
-- ${cf_cv_main_return:-return} (fail);
--}
-- ],[
-- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
-- eval 'ac_cv_func_'$cf_func'=yes'],[
-- eval 'ac_cv_func_'$cf_func'=no'],[
-- eval 'ac_cv_func_'$cf_func'=error'])
-- done
-- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
-- ])
-- test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
-- test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
--fi
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
--dnl --------------
--dnl Check if a return from main to the shell actually returns the same exit
--dnl code. This is true for almost any POSIX environment.
--dnl
--dnl Some very old environments did not flush stdout, etc., on an exit. That
--dnl would be a useful case to test for also.
--AC_DEFUN([CF_MAIN_RETURN],
--[
--cf_cv_main_return=return
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46
- dnl ------------
- dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
-@@ -1944,7 +1972,7 @@
- AC_SUBST(MAKE_LOWER_TAGS)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
-+dnl CF_MIXEDCASE_FILENAMES version: 4 updated: 2012/10/02 20:55:03
- 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.
-@@ -1971,10 +1999,10 @@
- rm -f conftest CONFTEST
- fi
- ])
--test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
-+test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
-+dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
- dnl ----------
- dnl Check for a working mkstemp. This creates two files, checks that they are
- dnl successfully created and distinct (AmigaOS apparently fails on the last).
-@@ -2016,11 +2044,13 @@
- }
- ],[cf_cv_func_mkstemp=yes
- ],[cf_cv_func_mkstemp=no
--],[AC_CHECK_FUNC(mkstemp)
--])
-+],[cf_cv_func_mkstemp=maybe])
- ])
-+if test "x$cf_cv_func_mkstemp" = xmaybe ; then
-+ AC_CHECK_FUNC(mkstemp)
-+fi
- if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
-- AC_DEFINE(HAVE_MKSTEMP)
-+ AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-@@ -2141,7 +2171,7 @@
- ,[$1=no])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
-+dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51
- dnl -----------------
- dnl Tie together the configure-script macros for ncurses.
- dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
-@@ -2153,7 +2183,10 @@
- cf_ncuconfig_root=ifelse($1,,ncurses,$1)
-
- echo "Looking for ${cf_ncuconfig_root}-config"
--AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
-+
-+CF_ACVERSION_CHECK(2.52,
-+ [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
-+ [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
-
- if test "$NCURSES_CONFIG" != none ; then
-
-@@ -2164,7 +2197,7 @@
- CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
-
- dnl like CF_NCURSES_CPPFLAGS
--AC_DEFINE(NCURSES)
-+AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
-
- dnl like CF_NCURSES_LIBS
- CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
-@@ -2181,7 +2214,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
-+dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
- dnl -------------------
- dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
- dnl the CPPFLAGS variable so we can include its header.
-@@ -2227,12 +2260,12 @@
- CF_TERM_HEADER
-
- # some applications need this, but should check for NCURSES_VERSION
--AC_DEFINE(NCURSES)
-+AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
-
- CF_NCURSES_VERSION
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
-+dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51
- dnl -----------------
- dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
- dnl variations of ncurses' installs.
-@@ -2283,16 +2316,16 @@
-
- case $cf_cv_ncurses_header in # (vi
- *ncurses.h)
-- AC_DEFINE(HAVE_NCURSES_H)
-+ AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
- ;;
- esac
-
- case $cf_cv_ncurses_header in # (vi
- ncurses/curses.h|ncurses/ncurses.h)
-- AC_DEFINE(HAVE_NCURSES_NCURSES_H)
-+ AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
- ;;
- ncursesw/curses.h|ncursesw/ncurses.h)
-- AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
-+ AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
- ;;
- esac
-
-@@ -2366,7 +2399,7 @@
- AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
-+dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
- dnl ------------------
- dnl Check for the version of ncurses, to aid in reporting bugs, etc.
- dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
-@@ -2425,55 +2458,7 @@
- ])
- rm -f $cf_tempfile
- ])
--test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
--dnl ------------------
--dnl see CF_WITH_NO_LEAKS
--AC_DEFUN([CF_NO_LEAKS_OPTION],[
--AC_MSG_CHECKING(if you want to use $1 for testing)
--AC_ARG_WITH($1,
-- [$2],
-- [AC_DEFINE($3)ifelse([$4],,[
-- $4
--])
-- : ${with_cflags:=-g}
-- : ${with_no_leaks:=yes}
-- with_$1=yes],
-- [with_$1=])
--AC_MSG_RESULT(${with_$1:-no})
--
--case .$with_cflags in #(vi
--.*-g*)
-- case .$CFLAGS in #(vi
-- .*-g*) #(vi
-- ;;
-- *)
-- CF_ADD_CFLAGS([-g])
-- ;;
-- esac
-- ;;
--esac
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
--dnl ----------------
--dnl Check if the given variable is a number. If not, report an error.
--dnl $1 is the variable
--dnl $2 is the message
--AC_DEFUN([CF_NUMBER_SYNTAX],[
--if test -n "$1" ; then
-- case $1 in #(vi
-- [[0-9]]*) #(vi
-- ;;
-- *)
-- AC_MSG_ERROR($2 is not a number: $1)
-- ;;
-- esac
--else
-- AC_MSG_ERROR($2 value is empty)
--fi
-+test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
-@@ -2496,20 +2481,23 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
-+dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12
- dnl ----------
--dnl Provide a value for the $PATH and similar separator
-+dnl Provide a value for the $PATH and similar separator (or amend the value
-+dnl as provided in autoconf 2.5x).
- AC_DEFUN([CF_PATHSEP],
- [
-+ AC_MSG_CHECKING(for PATH separator)
- case $cf_cv_system_name in
- os2*) PATH_SEPARATOR=';' ;;
-- *) PATH_SEPARATOR=':' ;;
-+ *) ${PATH_SEPARATOR:=':'} ;;
- esac
- ifelse([$1],,,[$1=$PATH_SEPARATOR])
- AC_SUBST(PATH_SEPARATOR)
-+ AC_MSG_RESULT($PATH_SEPARATOR)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
-+dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
- dnl --------------
- dnl Check the argument to see that it looks like a pathname. Rewrite it if it
- dnl begins with one of the prefix/exec_prefix variables, and then again if the
-@@ -2529,7 +2517,7 @@
- ;;
- .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
- ;;
--.\[$]{*prefix}*) #(vi
-+.\[$]{*prefix}*|.\[$]{*dir}*) #(vi
- eval $1="[$]$1"
- case ".[$]$1" in #(vi
- .NONE/*)
-@@ -2546,7 +2534,7 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
-+dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
- dnl -------------
- dnl Check for the package-config program, unless disabled by command-line.
- AC_DEFUN([CF_PKG_CONFIG],
-@@ -2563,7 +2551,9 @@
- PKG_CONFIG=none
- ;;
- yes) #(vi
-- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
-+ CF_ACVERSION_CHECK(2.52,
-+ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
-+ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
- ;;
- *)
- PKG_CONFIG=$withval
-@@ -2667,6 +2657,19 @@
- test -z "$AWK" && AC_MSG_ERROR(No awk program found)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55
-+dnl ----------
-+dnl standard check for CC, plus followup sanity checks
-+dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
-+AC_DEFUN([CF_PROG_CC],[
-+ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
-+CF_GCC_VERSION
-+CF_ACVERSION_CHECK(2.52,
-+ [AC_PROG_CC_STDC],
-+ [CF_ANSI_CC_REQD])
-+CF_CC_ENV_FLAGS
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
- dnl --------------
- dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
-@@ -2721,7 +2724,7 @@
- test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
-+dnl CF_PROG_EXT version: 11 updated: 2012/10/06 08:57:51
- dnl -----------
- dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
- AC_DEFUN([CF_PROG_EXT],
-@@ -2743,10 +2746,10 @@
-
- PROG_EXT="$EXEEXT"
- AC_SUBST(PROG_EXT)
--test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
-+test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18
-+dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47
- dnl ------------
- dnl Check for gnatmake, ensure that it is complete.
- AC_DEFUN([CF_PROG_GNAT],[
-@@ -2754,6 +2757,7 @@
- AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
- if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-+ cf_cv_prog_gnat_correct=no
- else
- CF_GNAT_VERSION
- AC_CHECK_PROG(M4_exists, m4, yes, no)
-@@ -2831,7 +2835,7 @@
- $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16
-+dnl CF_SHARED_OPTS version: 72 updated: 2013/01/26 16:26:12
- dnl --------------
- dnl --------------
- dnl Attempt to determine the appropriate CC/LD options for creating a shared
-@@ -2887,6 +2891,7 @@
- AC_MSG_RESULT($cf_cv_shlib_version)
-
- cf_cv_rm_so_locs=no
-+ cf_try_cflags=
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
-@@ -2906,10 +2911,14 @@
- cf_cv_shlib_version_infix=no
-
- case $cf_cv_system_name in #(vi
-- aix[[56]]*) #(vi
-+ aix4.[3-9]*|aix[[5-7]]*) #(vi
- if test "$GCC" = yes; then
- CC_SHARED_OPTS=
-- MK_SHARED_LIB='$(CC) -shared'
-+ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
-+ else
-+ # CC_SHARED_OPTS='-qpic=large -G'
-+ # perhaps "-bM:SRE -bnoentry -bexpall"
-+ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
- fi
- ;;
- beos*) #(vi
-@@ -2935,7 +2944,7 @@
- chmod +x mk_shared_lib.sh
- ;;
- darwin*) #(vi
-- EXTRA_CFLAGS="-no-cpp-precomp"
-+ cf_try_cflags="no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
-@@ -2949,6 +2958,14 @@
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- fi
- ;;
-+ hpux[[7-8]]*) #(vi
-+ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
-+ if test "$GCC" != yes; then
-+ CC_SHARED_OPTS='+Z'
-+ fi
-+ MK_SHARED_LIB='${LD} -b -o $[@]'
-+ INSTALL_LIB="-m 555"
-+ ;;
- hpux*) #(vi
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
-@@ -2962,9 +2979,19 @@
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
-+ interix*)
-+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-+ if test "$cf_cv_shlib_version" = rel; then
-+ cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
-+ else
-+ cf_shared_soname='`basename $@`'
-+ fi
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
-+ ;;
- irix*) #(vi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
-@@ -2981,18 +3008,39 @@
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
- ;;
-- openbsd[[2-9]].*) #(vi
-+ mingw*) #(vi
-+ cf_cv_shlib_version=mingw
-+ cf_cv_shlib_version_infix=mingw
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
-+ #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]'
-+ #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]'
-+ cat >mk_shared_lib.sh <<-CF_EOF
-+ #!/bin/sh
-+ SHARED_LIB=\[$]1
-+ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
-+ shift
-+ cat <<-EOF
-+ Linking shared library
-+ ** SHARED_LIB \[$]SHARED_LIB
-+ ** IMPORT_LIB \[$]IMPORT_LIB
-+EOF
-+ exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
-+CF_EOF
-+ chmod +x mk_shared_lib.sh
-+ ;;
-+ openbsd[[2-9]].*|mirbsd*) #(vi
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- CF_SHARED_SONAME
-@@ -3003,12 +3051,12 @@
- MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
-- freebsd*) #(vi
-+ dragonfly*|freebsd*) #(vi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
-- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
-@@ -3018,7 +3066,7 @@
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
-@@ -3123,10 +3171,40 @@
- ;;
- esac
-
-- if test -n "$cf_ld_rpath_opt" ; then
-- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
-+ if test -n "$cf_try_cflags"
-+ then
-+cat > conftest.$ac_ext <<EOF
-+#line __oline__ "${as_me:-configure}"
-+#include <stdio.h>
-+int main(int argc, char *argv[[]])
-+{
-+ printf("hello\n");
-+ return (argv[[argc-1]] == 0) ;
-+}
-+EOF
-+ cf_save_CFLAGS="$CFLAGS"
-+ for cf_opt in $cf_try_cflags
-+ do
-+ CFLAGS="$cf_save_CFLAGS -$cf_opt"
-+ AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
-+ if AC_TRY_EVAL(ac_compile); then
-+ AC_MSG_RESULT(yes)
-+ cf_save_CFLAGS="$CFLAGS"
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ done
-+ CFLAGS="$cf_save_CFLAGS"
- fi
-
-+
-+ # RPATH_LIST is a colon-separated list of directories
-+ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
-+ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
-+
-+ CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
-+ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
-+
- AC_SUBST(CC_SHARED_OPTS)
- AC_SUBST(LD_RPATH_OPT)
- AC_SUBST(LD_SHARED_OPTS)
-@@ -3137,6 +3215,7 @@
- AC_SUBST(LOCAL_LDFLAGS)
- AC_SUBST(LOCAL_LDFLAGS2)
- AC_SUBST(INSTALL_LIB)
-+ AC_SUBST(RPATH_LIST)
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
-@@ -3180,24 +3259,7 @@
- CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
--dnl --------
--dnl Shorthand macro for substituting things that the user may override
--dnl with an environment variable.
--dnl
--dnl $1 = long/descriptive name
--dnl $2 = environment variable
--dnl $3 = default value
--AC_DEFUN([CF_SUBST],
--[AC_CACHE_VAL(cf_cv_subst_$2,[
--AC_MSG_CHECKING(for $1 (symbol $2))
--CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
--cf_cv_subst_$2=[$]$2
--AC_MSG_RESULT([$]$2)
--])
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
-+dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51
- dnl --------------
- dnl Look for term.h, which is part of X/Open curses. It defines the interface
- dnl to terminfo database. Usually it is in the same include-path as curses.h,
-@@ -3230,16 +3292,16 @@
-
- case $cf_cv_term_header in # (vi
- *term.h)
-- AC_DEFINE(HAVE_TERM_H)
-+ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
- ;;
- esac
-
- case $cf_cv_term_header in # (vi
- ncurses/term.h) #(vi
-- AC_DEFINE(HAVE_NCURSES_TERM_H)
-+ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
- ;;
- ncursesw/term.h)
-- AC_DEFINE(HAVE_NCURSESW_TERM_H)
-+ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
- ;;
- esac
- ])dnl
-@@ -3253,6 +3315,45 @@
- AC_SUBST(top_builddir)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
-+dnl -------------------
-+dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
-+dnl can define it successfully.
-+AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
-+AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+],[
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_cv_xopen_source=no],
-+ [cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+],[
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_cv_xopen_source=no],
-+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
-+ CPPFLAGS="$cf_save"
-+ ])
-+])
-+
-+if test "$cf_cv_xopen_source" != no ; then
-+ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
-+ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+ CF_ADD_CFLAGS($cf_temp_xopen_source)
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
- dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
- dnl --------
- dnl Make an uppercase version of a variable
-@@ -3262,7 +3363,7 @@
- $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
-+dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
- dnl -----------
- dnl Check for multibyte support, and if not found, utf8 compatibility library
- AC_DEFUN([CF_UTF8_LIB],
-@@ -3281,7 +3382,7 @@
- # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
- # ncurses/ncursesw:
- if test "$cf_cv_utf8_lib" = "add-on" ; then
-- AC_DEFINE(HAVE_LIBUTF8_H)
-+ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
- CF_ADD_INCDIR($cf_cv_header_path_utf8)
- CF_ADD_LIBDIR($cf_cv_library_path_utf8)
- CF_ADD_LIBS($cf_cv_library_file_utf8)
-@@ -3415,7 +3516,33 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18
-+dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
-+dnl ------------------
-+dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
-+dnl "lib" prefix, e.g., because it used the dll naming convention.
-+dnl
-+dnl $1 = variable to set
-+AC_DEFUN([CF_WITH_LIB_PREFIX],
-+[
-+AC_MSG_CHECKING(if you want to have a library-prefix)
-+AC_ARG_WITH(lib-prefix,
-+ [ --with-lib-prefix override library-prefix],
-+ [with_lib_prefix=$withval],
-+ [with_lib_prefix=auto])
-+AC_MSG_RESULT($with_lib_prefix)
-+
-+if test $with_lib_prefix = auto
-+then
-+ CF_LIB_PREFIX($1)
-+elif test $with_lib_prefix = no
-+then
-+ LIB_PREFIX=
-+else
-+ LIB_PREFIX=$with_lib_prefix
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
- dnl ------------
- dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
- dnl defaulting to yes/no.
-@@ -3432,11 +3559,54 @@
- if ifelse([$5],,true,[test -n "$5"]) ; then
- CF_PATH_SYNTAX(withval)
- fi
--$3="$withval"
-+eval $3="$withval"
- AC_SUBST($3)dnl
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
-+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47
-+dnl -------------------------
-+dnl Allow the choice of the pkg-config library directory to be overridden.
-+AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
-+if test "$PKG_CONFIG" != none ; then
-+ AC_MSG_CHECKING(for $PKG_CONFIG library directory)
-+ AC_ARG_WITH(pkg-config-libdir,
-+ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
-+ [PKG_CONFIG_LIBDIR=$withval],
-+ [PKG_CONFIG_LIBDIR=yes])
-+
-+ case x$PKG_CONFIG_LIBDIR in #(vi
-+ x/*) #(vi
-+ ;;
-+ xyes) #(vi
-+ # look for the library directory using the same prefix as the executable
-+ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
-+ case x`(arch) 2>/dev/null` in #(vi
-+ *64) #(vi
-+ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
-+ do
-+ if test -d $cf_config/pkgconfig
-+ then
-+ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
-+ break
-+ fi
-+ done
-+ ;;
-+ *)
-+ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ ;;
-+ esac
-+
-+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
-+fi
-+
-+AC_SUBST(PKG_CONFIG_LIBDIR)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51
- dnl ---------------
- dnl Check for POSIX thread library.
- AC_DEFUN([CF_WITH_PTHREAD],
-@@ -3450,30 +3620,55 @@
-
- if test "$with_pthread" != no ; then
- AC_CHECK_HEADER(pthread.h,[
-- AC_DEFINE(HAVE_PTHREADS_H)
-+ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
-
-- AC_MSG_CHECKING(if we can link with the pthread library)
-- cf_save_LIBS="$LIBS"
-- CF_ADD_LIB(pthread)
-- AC_TRY_LINK([
-+ for cf_lib_pthread in pthread c_r
-+ do
-+ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
-+ cf_save_LIBS="$LIBS"
-+ CF_ADD_LIB($cf_lib_pthread)
-+ AC_TRY_LINK([
- #include <pthread.h>
- ],[
-- int rc = pthread_create(0,0,0,0);
-+ int rc = pthread_create(0,0,0,0);
-+ int r2 = pthread_mutexattr_settype(0, 0);
- ],[with_pthread=yes],[with_pthread=no])
-- LIBS="$cf_save_LIBS"
-- AC_MSG_RESULT($with_pthread)
-+ LIBS="$cf_save_LIBS"
-+ AC_MSG_RESULT($with_pthread)
-+ test "$with_pthread" = yes && break
-+ done
-
-- if test "$with_pthread" = yes ; then
-- CF_ADD_LIB(pthread)
-- AC_DEFINE(HAVE_LIBPTHREADS)
-- else
-- AC_MSG_ERROR(Cannot link with pthread library)
-- fi
-+ if test "$with_pthread" = yes ; then
-+ CF_ADD_LIB($cf_lib_pthread)
-+ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
-+ else
-+ AC_MSG_ERROR(Cannot link with pthread library)
-+ fi
- ])
- fi
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
-+dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
-+dnl ---------------
-+dnl For testing, override the derived host system-type which is used to decide
-+dnl things such as the linker commands used to build shared libraries. This is
-+dnl normally chosen automatically based on the type of system which you are
-+dnl building on. We use it for testing the configure script.
-+dnl
-+dnl This is different from the --host option: it is used only for testing parts
-+dnl of the configure script which would not be reachable with --host since that
-+dnl relies on the build environment being real, rather than mocked up.
-+AC_DEFUN([CF_WITH_SYSTYPE],[
-+CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
-+AC_ARG_WITH(system-type,
-+ [ --with-system-type=XXX test: override derived host system-type],
-+[AC_MSG_WARN(overriding system type to $withval)
-+ cf_cv_system_name=$withval
-+ host_os=$withval
-+])
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_XOPEN_SOURCE version: 43 updated: 2013/02/10 10:41:05
- dnl ---------------
- dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
- dnl or adapt to the vendor's definitions to get equivalent functionality,
-@@ -3483,13 +3678,14 @@
- dnl $1 is the nominal value for _XOPEN_SOURCE
- dnl $2 is the nominal value for _POSIX_C_SOURCE
- AC_DEFUN([CF_XOPEN_SOURCE],[
-+AC_REQUIRE([AC_CANONICAL_HOST])
-
- cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
- cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
- cf_xopen_source=
-
- case $host_os in #(vi
--aix[[456]]*) #(vi
-+aix[[4-7]]*) #(vi
- cf_xopen_source="-D_ALL_SOURCE"
- ;;
- cygwin) #(vi
-@@ -3500,6 +3696,7 @@
- ;;
- darwin*) #(vi
- cf_xopen_source="-D_DARWIN_C_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- freebsd*|dragonfly*) #(vi
- # 5.x headers associate
-@@ -3517,15 +3714,23 @@
- ;;
- irix[[56]].*) #(vi
- cf_xopen_source="-D_SGI_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- linux*|gnu*|mint*|k*bsd*-gnu) #(vi
- CF_GNU_SOURCE
- ;;
- mirbsd*) #(vi
-- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
-+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
-+ cf_XOPEN_SOURCE=
-+ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
- netbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ ;;
-+openbsd[[4-9]]*) #(vi
-+ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
-+ cf_xopen_source="-D_BSD_SOURCE"
-+ cf_XOPEN_SOURCE=600
- ;;
- openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-@@ -3539,36 +3744,11 @@
- sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
--solaris2.1[[0-9]]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--solaris2.[[1-9]]) #(vi
-+solaris2.*) #(vi
- cf_xopen_source="-D__EXTENSIONS__"
- ;;
- *)
-- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
-- AC_TRY_COMPILE([#include <sys/types.h>],[
--#ifndef _XOPEN_SOURCE
--make an error
--#endif],
-- [cf_cv_xopen_source=no],
-- [cf_save="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- AC_TRY_COMPILE([#include <sys/types.h>],[
--#ifdef _XOPEN_SOURCE
--make an error
--#endif],
-- [cf_cv_xopen_source=no],
-- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
-- CPPFLAGS="$cf_save"
-- ])
--])
-- if test "$cf_cv_xopen_source" != no ; then
-- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
-- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-- CF_ADD_CFLAGS($cf_temp_xopen_source)
-- fi
-+ CF_TRY_XOPEN_SOURCE
- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
- esac
-@@ -3576,4 +3756,33 @@
- if test -n "$cf_xopen_source" ; then
- CF_ADD_CFLAGS($cf_xopen_source)
- fi
-+
-+dnl In anything but the default case, we may have system-specific setting
-+dnl which is still not guaranteed to provide all of the entrypoints that
-+dnl _XOPEN_SOURCE would yield.
-+if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
-+ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
-+ AC_TRY_COMPILE([#include <stdlib.h>],[
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_XOPEN_SOURCE_set=yes],
-+ [cf_XOPEN_SOURCE_set=no])
-+ AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
-+ if test $cf_XOPEN_SOURCE_set = yes
-+ then
-+ AC_TRY_COMPILE([#include <stdlib.h>],[
-+#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_XOPEN_SOURCE_set_ok=yes],
-+ [cf_XOPEN_SOURCE_set_ok=no])
-+ if test $cf_XOPEN_SOURCE_set_ok = no
-+ then
-+ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
-+ fi
-+ else
-+ CF_TRY_XOPEN_SOURCE
-+ fi
-+fi
- ])
-Index: Ada95/configure
---- ncurses-5.9/Ada95/configure 2011-03-31 23:34:47.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/configure 2013-04-27 19:50:59.000000000 +0000
-@@ -1,7 +1,7 @@
- #! /bin/sh
--# From configure.in Revision: 1.30 .
-+# From configure.in Revision: 1.47 .
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by Autoconf 2.52.20101002.
-+# Generated by Autoconf 2.52.20121002.
- #
- # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
- # Free Software Foundation, Inc.
-@@ -135,15 +135,16 @@
- bindir='${exec_prefix}/bin'
- sbindir='${exec_prefix}/sbin'
- libexecdir='${exec_prefix}/libexec'
--datadir='${prefix}/share'
-+datarootdir='${prefix}/share'
-+datadir='${datarootdir}'
- sysconfdir='${prefix}/etc'
- sharedstatedir='${prefix}/com'
- localstatedir='${prefix}/var'
- libdir='${exec_prefix}/lib'
- includedir='${prefix}/include'
- oldincludedir='/usr/include'
--infodir='${prefix}/info'
--mandir='${prefix}/man'
-+infodir='${datarootdir}/info'
-+mandir='${datarootdir}/man'
-
- # Identity of this package.
- PACKAGE_NAME=
-@@ -194,6 +195,13 @@
- | --da=*)
- datadir=$ac_optarg ;;
-
-+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-+ | --dataroo | --dataro | --datar)
-+ ac_prev=datarootdir ;;
-+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-+ datarootdir=$ac_optarg ;;
-+
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
-@@ -469,7 +477,7 @@
- done
-
- # Be sure to have absolute paths.
--for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-+for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
- do
- eval ac_val=$`echo $ac_var`
-@@ -606,15 +614,16 @@
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
-- --datadir=DIR read-only architecture-independent data [PREFIX/share]
-+ --datarootdir=DIR read-only architecture-independent data [PREFIX/share]
-+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
-- --infodir=DIR info documentation [PREFIX/info]
-- --mandir=DIR man documentation [PREFIX/man]
-+ --infodir=DIR info documentation [DATAROOTDIR/info]
-+ --mandir=DIR man documentation [DATAROOTDIR/man]
- EOF
-
- cat <<\EOF
-@@ -645,6 +654,7 @@
-
- --with-system-type=XXX test: override derived host system-type
- --with-pkg-config{=path} enable/disable use of pkg-config
-+ --with-pkg-config-libdir=XXX use given directory for installing pc-files
- --enable-pc-files generate and install .pc files for pkg-config
- --without-tests suppress build with test-programs
- --enable-mixed-case tic should assume mixed-case filenames
-@@ -660,6 +670,7 @@
- --with-shared generate shared C-objects (needed for --with-ada-sharedlib)
- --enable-widec compile with wide-char/UTF-8 code
- --with-curses-dir=DIR directory in which (n)curses is installed
-+ --with-lib-prefix override library-prefix
- --with-shlib-version=X Specify rel or abi version for shared libs
- --enable-rpath-link link sample programs with rpath option
- Fine-Tuning Your Configuration:
-@@ -677,7 +688,7 @@
- --enable-reentrant compile with experimental reentrant code
- --with-wrap-prefix=XXX override prefix used for public variables
- Testing/development Options:
-- --enable-echo build: display "compiling" commands (default)
-+ --disable-echo do not display "compiling" commands
- --enable-warnings build: turn on GCC compiler warnings
- --enable-assertions test: turn on generation of assertion code
- --enable-expanded test: generate functions for certain macros
-@@ -757,7 +768,7 @@
- running configure, to aid debugging if configure makes a mistake.
-
- It was created by $as_me, which was
--generated by GNU Autoconf 2.52.20101002. Invocation command line was
-+generated by GNU Autoconf 2.52.20121002. Invocation command line was
-
- $ $0 $@
-
-@@ -881,7 +892,7 @@
- fi
- for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
-- { echo "$as_me:884: loading site script $ac_site_file" >&5
-+ { echo "$as_me:895: loading site script $ac_site_file" >&5
- echo "$as_me: loading site script $ac_site_file" >&6;}
- cat "$ac_site_file" >&5
- . "$ac_site_file"
-@@ -892,7 +903,7 @@
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
-- { echo "$as_me:895: loading cache $cache_file" >&5
-+ { echo "$as_me:906: loading cache $cache_file" >&5
- echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
-@@ -900,7 +911,7 @@
- esac
- fi
- else
-- { echo "$as_me:903: creating cache $cache_file" >&5
-+ { echo "$as_me:914: creating cache $cache_file" >&5
- echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
- fi
-@@ -916,21 +927,21 @@
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
-- { echo "$as_me:919: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-+ { echo "$as_me:930: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
-- { echo "$as_me:923: error: \`$ac_var' was not set in the previous run" >&5
-+ { echo "$as_me:934: error: \`$ac_var' was not set in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
-- { echo "$as_me:929: error: \`$ac_var' has changed since the previous run:" >&5
-+ { echo "$as_me:940: error: \`$ac_var' has changed since the previous run:" >&5
- echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-- { echo "$as_me:931: former value: $ac_old_val" >&5
-+ { echo "$as_me:942: former value: $ac_old_val" >&5
- echo "$as_me: former value: $ac_old_val" >&2;}
-- { echo "$as_me:933: current value: $ac_new_val" >&5
-+ { echo "$as_me:944: current value: $ac_new_val" >&5
- echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
-@@ -949,9 +960,9 @@
- fi
- done
- if $ac_cache_corrupted; then
-- { echo "$as_me:952: error: changes in the environment can compromise the build" >&5
-+ { echo "$as_me:963: error: changes in the environment can compromise the build" >&5
- echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-- { { echo "$as_me:954: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-+ { { echo "$as_me:965: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
- echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -972,10 +983,10 @@
- echo "#! $SHELL" >conftest.sh
- echo "exit 0" >>conftest.sh
- chmod +x conftest.sh
--if { (echo "$as_me:975: PATH=\".;.\"; conftest.sh") >&5
-+if { (echo "$as_me:986: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
-- echo "$as_me:978: \$? = $ac_status" >&5
-+ echo "$as_me:989: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- ac_path_separator=';'
- else
-@@ -1005,7 +1016,7 @@
- fi
- done
- if test -z "$ac_aux_dir"; then
-- { { echo "$as_me:1008: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-+ { { echo "$as_me:1019: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
- echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1015,11 +1026,11 @@
-
- # Make sure we can run config.sub.
- $ac_config_sub sun4 >/dev/null 2>&1 ||
-- { { echo "$as_me:1018: error: cannot run $ac_config_sub" >&5
-+ { { echo "$as_me:1029: error: cannot run $ac_config_sub" >&5
- echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
--echo "$as_me:1022: checking build system type" >&5
-+echo "$as_me:1033: checking build system type" >&5
- echo $ECHO_N "checking build system type... $ECHO_C" >&6
- if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1028,23 +1039,23 @@
- test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
- test -z "$ac_cv_build_alias" &&
-- { { echo "$as_me:1031: error: cannot guess build type; you must specify one" >&5
-+ { { echo "$as_me:1042: error: cannot guess build type; you must specify one" >&5
- echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
- ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-- { { echo "$as_me:1035: error: $ac_config_sub $ac_cv_build_alias failed." >&5
-+ { { echo "$as_me:1046: error: $ac_config_sub $ac_cv_build_alias failed." >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1040: result: $ac_cv_build" >&5
-+echo "$as_me:1051: result: $ac_cv_build" >&5
- echo "${ECHO_T}$ac_cv_build" >&6
- build=$ac_cv_build
- build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
- build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
- build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
--echo "$as_me:1047: checking host system type" >&5
-+echo "$as_me:1058: checking host system type" >&5
- echo $ECHO_N "checking host system type... $ECHO_C" >&6
- if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1053,12 +1064,12 @@
- test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
- ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-- { { echo "$as_me:1056: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-+ { { echo "$as_me:1067: error: $ac_config_sub $ac_cv_host_alias failed" >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1061: result: $ac_cv_host" >&5
-+echo "$as_me:1072: result: $ac_cv_host" >&5
- echo "${ECHO_T}$ac_cv_host" >&6
- host=$ac_cv_host
- host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1066,7 +1077,7 @@
- host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
- if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
-- echo "$as_me:1069: checking target system type" >&5
-+ echo "$as_me:1080: checking target system type" >&5
- echo $ECHO_N "checking target system type... $ECHO_C" >&6
- if test "${ac_cv_target+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1075,12 +1086,12 @@
- test "x$ac_cv_target_alias" = "x" &&
- ac_cv_target_alias=$ac_cv_host_alias
- ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
-- { { echo "$as_me:1078: error: $ac_config_sub $ac_cv_target_alias failed" >&5
-+ { { echo "$as_me:1089: error: $ac_config_sub $ac_cv_target_alias failed" >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1083: result: $ac_cv_target" >&5
-+echo "$as_me:1094: result: $ac_cv_target" >&5
- echo "${ECHO_T}$ac_cv_target" >&6
- target=$ac_cv_target
- target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1100,7 +1111,8 @@
- system_name="`(hostname) 2>/dev/null`"
- fi
- fi
--test -n "$system_name" && cat >>confdefs.h <<EOF
-+test -n "$system_name" &&
-+cat >>confdefs.h <<EOF
- #define SYSTEM_NAME "$system_name"
- EOF
-
-@@ -1111,13 +1123,13 @@
- fi
-
- test -z "$system_name" && system_name="$cf_cv_system_name"
--test -n "$cf_cv_system_name" && echo "$as_me:1114: result: Configuring for $cf_cv_system_name" >&5
-+test -n "$cf_cv_system_name" && echo "$as_me:1126: result: Configuring for $cf_cv_system_name" >&5
- echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
-
- if test ".$system_name" != ".$cf_cv_system_name" ; then
-- echo "$as_me:1118: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
-+ echo "$as_me:1130: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
- echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
-- { { echo "$as_me:1120: error: \"Please remove config.cache and try again.\"" >&5
-+ { { echo "$as_me:1132: error: \"Please remove config.cache and try again.\"" >&5
- echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1125,9 +1137,11 @@
- # Check whether --with-system-type or --without-system-type was given.
- if test "${with_system_type+set}" = set; then
- withval="$with_system_type"
-- { echo "$as_me:1128: WARNING: overriding system type to $withval" >&5
-+ { echo "$as_me:1140: WARNING: overriding system type to $withval" >&5
- echo "$as_me: WARNING: overriding system type to $withval" >&2;}
-- cf_cv_system_name=$withval
-+ cf_cv_system_name=$withval
-+ host_os=$withval
-+
- fi;
-
- ### Save the given $CFLAGS to allow user-override.
-@@ -1135,23 +1149,23 @@
-
- ### Default install-location
-
--echo "$as_me:1138: checking for prefix" >&5
-+echo "$as_me:1152: checking for prefix" >&5
- echo $ECHO_N "checking for prefix... $ECHO_C" >&6
- if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
-- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
-+ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|k*bsd*-gnu|mingw*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
- fi
--echo "$as_me:1150: result: $prefix" >&5
-+echo "$as_me:1164: result: $prefix" >&5
- echo "${ECHO_T}$prefix" >&6
-
- if test "x$prefix" = "xNONE" ; then
--echo "$as_me:1154: checking for default include-directory" >&5
-+echo "$as_me:1168: checking for default include-directory" >&5
- echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
- test -n "$verbose" && echo 1>&6
- for cf_symbol in \
-@@ -1174,11 +1188,12 @@
- fi
- test -n "$verbose" && echo " tested $cf_dir" 1>&6
- done
--echo "$as_me:1177: result: $includedir" >&5
-+echo "$as_me:1191: result: $includedir" >&5
- echo "${ECHO_T}$includedir" >&6
- fi
-
- ### Checks for programs.
-+
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -1186,213 +1201,11 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:1191: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_CC="${ac_tool_prefix}gcc"
--echo "$as_me:1206: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:1214: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:1217: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "gcc", so it can be a program name with args.
--set dummy gcc; ac_word=$2
--echo "$as_me:1226: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_ac_ct_CC="gcc"
--echo "$as_me:1241: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:1249: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:1252: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
--
--if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:1265: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_CC="${ac_tool_prefix}cc"
--echo "$as_me:1280: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:1288: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:1291: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:1300: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_ac_ct_CC="cc"
--echo "$as_me:1315: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:1323: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:1326: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
--
--fi
--if test -z "$CC"; then
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:1339: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_prog_rejected=no
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-- ac_prog_rejected=yes
-- continue
--fi
--ac_cv_prog_CC="cc"
--echo "$as_me:1359: found $ac_dir/$ac_word" >&5
--break
--done
--
--if test $ac_prog_rejected = yes; then
-- # We found a bogon in the path, so make sure we never use it.
-- set dummy $ac_cv_prog_CC
-- shift
-- if test $# != 0; then
-- # We chose a different compiler from the bogus one.
-- # However, it has the same basename, so the bogon will be chosen
-- # first if we set CC to just the basename; use the full file name.
-- shift
-- set dummy "$ac_dir/$ac_word" ${1+"$@"}
-- shift
-- ac_cv_prog_CC="$@"
-- fi
--fi
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:1381: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:1384: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- for ac_prog in cl
-+ for ac_prog in gnatgcc gcc cc
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
- set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:1395: checking for $ac_word" >&5
-+echo "$as_me:1208: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1407,7 +1220,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
--echo "$as_me:1410: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1223: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1415,10 +1228,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:1418: result: $CC" >&5
-+ echo "$as_me:1231: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
-- echo "$as_me:1421: result: no" >&5
-+ echo "$as_me:1234: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1427,11 +1240,11 @@
- fi
- if test -z "$CC"; then
- ac_ct_CC=$CC
-- for ac_prog in cl
-+ for ac_prog in gnatgcc gcc cc
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:1434: checking for $ac_word" >&5
-+echo "$as_me:1247: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1446,7 +1259,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="$ac_prog"
--echo "$as_me:1449: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1262: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1454,10 +1267,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:1457: result: $ac_ct_CC" >&5
-+ echo "$as_me:1270: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
-- echo "$as_me:1460: result: no" >&5
-+ echo "$as_me:1273: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1467,34 +1280,32 @@
- CC=$ac_ct_CC
- fi
-
--fi
--
--test -z "$CC" && { { echo "$as_me:1472: error: no acceptable cc found in \$PATH" >&5
-+test -z "$CC" && { { echo "$as_me:1283: error: no acceptable cc found in \$PATH" >&5
- echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-
- # Provide some information about the compiler.
--echo "$as_me:1477:" \
-+echo "$as_me:1288:" \
- "checking for C compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:1480: \"$ac_compiler --version </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1291: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1483: \$? = $ac_status" >&5
-+ echo "$as_me:1294: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:1485: \"$ac_compiler -v </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1296: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1488: \$? = $ac_status" >&5
-+ echo "$as_me:1299: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:1490: \"$ac_compiler -V </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1301: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1493: \$? = $ac_status" >&5
-+ echo "$as_me:1304: \$? = $ac_status" >&5
- (exit $ac_status); }
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 1497 "configure"
-+#line 1308 "configure"
- #include "confdefs.h"
-
- int
-@@ -1510,13 +1321,13 @@
- # Try to create an executable without -o first, disregard a.out.
- # It will help us diagnose broken compilers, and finding out an intuition
- # of exeext.
--echo "$as_me:1513: checking for C compiler default output" >&5
-+echo "$as_me:1324: checking for C compiler default output" >&5
- echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
- ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:1516: \"$ac_link_default\"") >&5
-+if { (eval echo "$as_me:1327: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
-- echo "$as_me:1519: \$? = $ac_status" >&5
-+ echo "$as_me:1330: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
- # not robust to junk in `.', hence go to wildcards (a.*) only as a last
-@@ -1539,34 +1350,34 @@
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1542: error: C compiler cannot create executables" >&5
-+{ { echo "$as_me:1353: error: C compiler cannot create executables" >&5
- echo "$as_me: error: C compiler cannot create executables" >&2;}
- { (exit 77); exit 77; }; }
- fi
-
- ac_exeext=$ac_cv_exeext
--echo "$as_me:1548: result: $ac_file" >&5
-+echo "$as_me:1359: result: $ac_file" >&5
- echo "${ECHO_T}$ac_file" >&6
-
- # Check the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1553: checking whether the C compiler works" >&5
-+echo "$as_me:1364: checking whether the C compiler works" >&5
- echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
- # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
- # If not cross compiling, check that we can run a simple program.
- if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
-- { (eval echo "$as_me:1559: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1370: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1562: \$? = $ac_status" >&5
-+ echo "$as_me:1373: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
-- { { echo "$as_me:1569: error: cannot run C compiled programs.
-+ { { echo "$as_me:1380: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&5
- echo "$as_me: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&2;}
-@@ -1574,24 +1385,24 @@
- fi
- fi
- fi
--echo "$as_me:1577: result: yes" >&5
-+echo "$as_me:1388: result: yes" >&5
- echo "${ECHO_T}yes" >&6
-
- rm -f a.out a.exe conftest$ac_cv_exeext
- ac_clean_files=$ac_clean_files_save
- # Check the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1584: checking whether we are cross compiling" >&5
-+echo "$as_me:1395: checking whether we are cross compiling" >&5
- echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:1586: result: $cross_compiling" >&5
-+echo "$as_me:1397: result: $cross_compiling" >&5
- echo "${ECHO_T}$cross_compiling" >&6
-
--echo "$as_me:1589: checking for executable suffix" >&5
-+echo "$as_me:1400: checking for executable suffix" >&5
- echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
--if { (eval echo "$as_me:1591: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:1402: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:1594: \$? = $ac_status" >&5
-+ echo "$as_me:1405: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
- # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-@@ -1607,25 +1418,25 @@
- esac
- done
- else
-- { { echo "$as_me:1610: error: cannot compute EXEEXT: cannot compile and link" >&5
-+ { { echo "$as_me:1421: error: cannot compute EXEEXT: cannot compile and link" >&5
- echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- rm -f conftest$ac_cv_exeext
--echo "$as_me:1616: result: $ac_cv_exeext" >&5
-+echo "$as_me:1427: result: $ac_cv_exeext" >&5
- echo "${ECHO_T}$ac_cv_exeext" >&6
-
- rm -f conftest.$ac_ext
- EXEEXT=$ac_cv_exeext
- ac_exeext=$EXEEXT
--echo "$as_me:1622: checking for object suffix" >&5
-+echo "$as_me:1433: checking for object suffix" >&5
- echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
- if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1628 "configure"
-+#line 1439 "configure"
- #include "confdefs.h"
-
- int
-@@ -1637,10 +1448,10 @@
- }
- _ACEOF
- rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:1640: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1451: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1643: \$? = $ac_status" >&5
-+ echo "$as_me:1454: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
-@@ -1652,24 +1463,24 @@
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1655: error: cannot compute OBJEXT: cannot compile" >&5
-+{ { echo "$as_me:1466: error: cannot compute OBJEXT: cannot compile" >&5
- echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
--echo "$as_me:1662: result: $ac_cv_objext" >&5
-+echo "$as_me:1473: result: $ac_cv_objext" >&5
- echo "${ECHO_T}$ac_cv_objext" >&6
- OBJEXT=$ac_cv_objext
- ac_objext=$OBJEXT
--echo "$as_me:1666: checking whether we are using the GNU C compiler" >&5
-+echo "$as_me:1477: checking whether we are using the GNU C compiler" >&5
- echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
- if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1672 "configure"
-+#line 1483 "configure"
- #include "confdefs.h"
-
- int
-@@ -1684,16 +1495,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1687: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1498: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1690: \$? = $ac_status" >&5
-+ echo "$as_me:1501: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1693: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1504: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1696: \$? = $ac_status" >&5
-+ echo "$as_me:1507: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
- else
-@@ -1705,19 +1516,19 @@
- ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
- fi
--echo "$as_me:1708: result: $ac_cv_c_compiler_gnu" >&5
-+echo "$as_me:1519: result: $ac_cv_c_compiler_gnu" >&5
- echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
- GCC=`test $ac_compiler_gnu = yes && echo yes`
- ac_test_CFLAGS=${CFLAGS+set}
- ac_save_CFLAGS=$CFLAGS
- CFLAGS="-g"
--echo "$as_me:1714: checking whether $CC accepts -g" >&5
-+echo "$as_me:1525: checking whether $CC accepts -g" >&5
- echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
- if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1720 "configure"
-+#line 1531 "configure"
- #include "confdefs.h"
-
- int
-@@ -1729,16 +1540,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1732: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1543: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1735: \$? = $ac_status" >&5
-+ echo "$as_me:1546: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1738: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1549: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1741: \$? = $ac_status" >&5
-+ echo "$as_me:1552: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
- else
-@@ -1748,7 +1559,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:1751: result: $ac_cv_prog_cc_g" >&5
-+echo "$as_me:1562: result: $ac_cv_prog_cc_g" >&5
- echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-@@ -1775,16 +1586,16 @@
- #endif
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1778: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1589: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1781: \$? = $ac_status" >&5
-+ echo "$as_me:1592: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1784: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1595: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1787: \$? = $ac_status" >&5
-+ echo "$as_me:1598: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- ''\
-@@ -1796,7 +1607,7 @@
- 'void exit (int);'
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 1799 "configure"
-+#line 1610 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- $ac_declaration
-@@ -1809,16 +1620,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1812: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1623: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1815: \$? = $ac_status" >&5
-+ echo "$as_me:1626: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1818: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1629: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1821: \$? = $ac_status" >&5
-+ echo "$as_me:1632: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -1828,7 +1639,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 1831 "configure"
-+#line 1642 "configure"
- #include "confdefs.h"
- $ac_declaration
- int
-@@ -1840,16 +1651,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1843: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1654: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1846: \$? = $ac_status" >&5
-+ echo "$as_me:1657: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1849: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1660: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1852: \$? = $ac_status" >&5
-+ echo "$as_me:1663: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -1879,68 +1690,259 @@
-
- GCC_VERSION=none
- if test "$GCC" = yes ; then
-- echo "$as_me:1882: checking version of $CC" >&5
-+ echo "$as_me:1693: checking version of $CC" >&5
- echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
-- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
-+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
-- echo "$as_me:1886: result: $GCC_VERSION" >&5
-+ echo "$as_me:1697: result: $GCC_VERSION" >&5
- echo "${ECHO_T}$GCC_VERSION" >&6
- fi
-
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--ac_main_return=return
--echo "$as_me:1896: checking how to run the C preprocessor" >&5
--echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
--# On Suns, sometimes $CPP names a directory.
--if test -n "$CPP" && test -d "$CPP"; then
-- CPP=
--fi
--if test -z "$CPP"; then
-- if test "${ac_cv_prog_CPP+set}" = set; then
-+echo "$as_me:1701: checking for $CC option to accept ANSI C" >&5
-+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-+if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- # Double quotes because CPP needs to be expanded
-- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-- do
-- ac_preproc_ok=false
--for ac_c_preproc_warn_flag in '' yes
--do
-- # Use a header file that comes with gcc, so configuring glibc
-- # with a fresh cross-compiler works.
-- # On the NeXT, cc -E runs the code through the compiler's parser,
-- # not just through cpp. "Syntax error" is here to catch this case.
-- cat >conftest.$ac_ext <<_ACEOF
--#line 1917 "configure"
-+ ac_cv_prog_cc_stdc=no
-+ac_save_CC=$CC
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 1709 "configure"
- #include "confdefs.h"
--#include <assert.h>
-- Syntax error
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-+struct buf { int x; };
-+FILE * (*rcsopen) (struct buf *, struct stat *, int);
-+static char *e (p, i)
-+ char **p;
-+ int i;
-+{
-+ return p[i];
-+}
-+static char *f (char * (*g) (char **, int), char **p, ...)
-+{
-+ char *s;
-+ va_list v;
-+ va_start (v,p);
-+ s = g (p, va_arg (v,int));
-+ va_end (v);
-+ return s;
-+}
-+int test (int i, double x);
-+struct s1 {int (*f) (int a);};
-+struct s2 {int (*f) (double a);};
-+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-+int argc;
-+char **argv;
-+int
-+main ()
-+{
-+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-+ ;
-+ return 0;
-+}
- _ACEOF
--if { (eval echo "$as_me:1922: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+# Don't try gcc -ansi; that turns off useful extensions and
-+# breaks some systems' header files.
-+# AIX -qlanglvl=ansi
-+# Ultrix and OSF/1 -std1
-+# HP-UX 10.20 and later -Ae
-+# HP-UX older versions -Aa -D_HPUX_SOURCE
-+# SVR4 -Xc -D__EXTENSIONS__
-+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-+do
-+ CC="$ac_save_CC $ac_arg"
-+ rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:1758: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:1928: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- :
-+ echo "$as_me:1761: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:1764: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:1767: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_prog_cc_stdc=$ac_arg
-+break
- else
- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- # Broken: fails on valid input.
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext
-+done
-+rm -f conftest.$ac_ext conftest.$ac_objext
-+CC=$ac_save_CC
-+
-+fi
-+
-+case "x$ac_cv_prog_cc_stdc" in
-+ x|xno)
-+ echo "$as_me:1784: result: none needed" >&5
-+echo "${ECHO_T}none needed" >&6 ;;
-+ *)
-+ echo "$as_me:1787: result: $ac_cv_prog_cc_stdc" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-+ CC="$CC $ac_cv_prog_cc_stdc" ;;
-+esac
-+
-+# This should have been defined by AC_PROG_CC
-+: ${CC:=cc}
-+
-+echo "$as_me:1795: checking \$CC variable" >&5
-+echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-+case "$CC" in #(vi
-+*[\ \ ]-[IUD]*)
-+ echo "$as_me:1799: result: broken" >&5
-+echo "${ECHO_T}broken" >&6
-+ { echo "$as_me:1801: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
-+echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
-+ # humor him...
-+ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'`
-+ CC=`echo "$CC" | sed -e 's/[ ].*//'`
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_flags
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ ;;
-+*)
-+ echo "$as_me:1887: result: ok" >&5
-+echo "${ECHO_T}ok" >&6
-+ ;;
-+esac
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+ac_main_return=return
-+echo "$as_me:1898: checking how to run the C preprocessor" >&5
-+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-+# On Suns, sometimes $CPP names a directory.
-+if test -n "$CPP" && test -d "$CPP"; then
-+ CPP=
-+fi
-+if test -z "$CPP"; then
-+ if test "${ac_cv_prog_CPP+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ # Double quotes because CPP needs to be expanded
-+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-+ do
-+ ac_preproc_ok=false
-+for ac_c_preproc_warn_flag in '' yes
-+do
-+ # Use a header file that comes with gcc, so configuring glibc
-+ # with a fresh cross-compiler works.
-+ # On the NeXT, cc -E runs the code through the compiler's parser,
-+ # not just through cpp. "Syntax error" is here to catch this case.
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 1919 "configure"
-+#include "confdefs.h"
-+#include <assert.h>
-+ Syntax error
-+_ACEOF
-+if { (eval echo "$as_me:1924: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ egrep -v '^ *\+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:1930: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ # Broken: fails on valid input.
- continue
- fi
- rm -f conftest.err conftest.$ac_ext
-@@ -1948,17 +1950,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 1951 "configure"
-+#line 1953 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:1955: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:1957: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:1961: \$? = $ac_status" >&5
-+ echo "$as_me:1963: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1995,7 +1997,7 @@
- else
- ac_cv_prog_CPP=$CPP
- fi
--echo "$as_me:1998: result: $CPP" >&5
-+echo "$as_me:2000: result: $CPP" >&5
- echo "${ECHO_T}$CPP" >&6
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
-@@ -2005,18 +2007,18 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
--#line 2008 "configure"
-+#line 2010 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:2013: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2015: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:2019: \$? = $ac_status" >&5
-+ echo "$as_me:2021: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2039,17 +2041,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 2042 "configure"
-+#line 2044 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:2046: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2048: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:2052: \$? = $ac_status" >&5
-+ echo "$as_me:2054: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2077,7 +2079,7 @@
- if $ac_preproc_ok; then
- :
- else
-- { { echo "$as_me:2080: error: C preprocessor \"$CPP\" fails sanity check" >&5
-+ { { echo "$as_me:2082: error: C preprocessor \"$CPP\" fails sanity check" >&5
- echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -2090,14 +2092,14 @@
- ac_main_return=return
-
- if test $ac_cv_c_compiler_gnu = yes; then
-- echo "$as_me:2093: checking whether $CC needs -traditional" >&5
-+ echo "$as_me:2095: checking whether $CC needs -traditional" >&5
- echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
- if test "${ac_cv_prog_gcc_traditional+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
--#line 2100 "configure"
-+#line 2102 "configure"
- #include "confdefs.h"
- #include <sgtty.h>
- int Autoconf = TIOCGETP;
-@@ -2112,7 +2114,7 @@
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 2115 "configure"
-+#line 2117 "configure"
- #include "confdefs.h"
- #include <termio.h>
- int Autoconf = TCGETA;
-@@ -2125,14 +2127,14 @@
-
- fi
- fi
--echo "$as_me:2128: result: $ac_cv_prog_gcc_traditional" >&5
-+echo "$as_me:2130: result: $ac_cv_prog_gcc_traditional" >&5
- echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
- if test $ac_cv_prog_gcc_traditional = yes; then
- CC="$CC -traditional"
- fi
- fi
-
--echo "$as_me:2135: checking whether $CC understands -c and -o together" >&5
-+echo "$as_me:2137: checking whether $CC understands -c and -o together" >&5
- echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
- if test "${cf_cv_prog_CC_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2148,15 +2150,15 @@
- # We do the test twice because some compilers refuse to overwrite an
- # existing .o file with -o, though they will create one.
- ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
--if { (eval echo "$as_me:2151: \"$ac_try\"") >&5
-+if { (eval echo "$as_me:2153: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2154: \$? = $ac_status" >&5
-+ echo "$as_me:2156: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- test -f conftest2.$ac_objext && { (eval echo "$as_me:2156: \"$ac_try\"") >&5
-+ test -f conftest2.$ac_objext && { (eval echo "$as_me:2158: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2159: \$? = $ac_status" >&5
-+ echo "$as_me:2161: \$? = $ac_status" >&5
- (exit $ac_status); };
- then
- eval cf_cv_prog_CC_c_o=yes
-@@ -2167,378 +2169,84 @@
-
- fi
- if test $cf_cv_prog_CC_c_o = yes; then
-- echo "$as_me:2170: result: yes" >&5
-+ echo "$as_me:2172: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-- echo "$as_me:2173: result: no" >&5
-+ echo "$as_me:2175: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
--echo "$as_me:2177: checking for POSIXized ISC" >&5
--echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
--if test -d /etc/conf/kconfig.d &&
-- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
--then
-- echo "$as_me:2182: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-- ISC=yes # If later tests want to check for ISC.
-+test "$program_prefix" != NONE &&
-+ program_transform_name="s,^,$program_prefix,;$program_transform_name"
-+# Use a double $ so make ignores it.
-+test "$program_suffix" != NONE &&
-+ program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-+# Double any \ or $. echo might interpret backslashes.
-+# By default was `s,x,x', remove it if useless.
-+cat <<\_ACEOF >conftest.sed
-+s/[\\$]/&&/g;s/;s,x,x,$//
-+_ACEOF
-+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-+rm conftest.sed
-
--cat >>confdefs.h <<\EOF
--#define _POSIX_SOURCE 1
--EOF
-+for ac_prog in mawk gawk nawk awk
-+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:2196: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_AWK+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$AWK"; then
-+ ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog"
-+echo "$as_me:2211: found $ac_dir/$ac_word" >&5
-+break
-+done
-
-- if test "$GCC" = yes; then
-- CC="$CC -posix"
-- else
-- CC="$CC -Xp"
-- fi
-+fi
-+fi
-+AWK=$ac_cv_prog_AWK
-+if test -n "$AWK"; then
-+ echo "$as_me:2219: result: $AWK" >&5
-+echo "${ECHO_T}$AWK" >&6
- else
-- echo "$as_me:2196: result: no" >&5
-+ echo "$as_me:2222: result: no" >&5
- echo "${ECHO_T}no" >&6
-- ISC=
- fi
-
--echo "$as_me:2201: checking for ${CC:-cc} option to accept ANSI C" >&5
--echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
--if test "${cf_cv_ansi_cc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
--cf_cv_ansi_cc=no
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
--for cf_arg in "-DCC_HAS_PROTOS" \
-- "" \
-- -qlanglvl=ansi \
-- -std1 \
-- -Ae \
-- "-Aa -D_HPUX_SOURCE" \
-- -Xc
--do
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
-+ test -n "$AWK" && break
-+done
-
--for cf_add_cflags in $cf_arg
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+test -z "$AWK" && { { echo "$as_me:2229: error: No awk program found" >&5
-+echo "$as_me: error: No awk program found" >&2;}
-+ { (exit 1); exit 1; }; }
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+echo "$as_me:2233: checking for egrep" >&5
-+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-+if test "${ac_cv_prog_egrep+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-+ then ac_cv_prog_egrep='grep -E'
-+ else ac_cv_prog_egrep='egrep'
-+ fi
-+fi
-+echo "$as_me:2243: result: $ac_cv_prog_egrep" >&5
-+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
-+ EGREP=$ac_cv_prog_egrep
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
-- cat >conftest.$ac_ext <<_ACEOF
--#line 2305 "configure"
--#include "confdefs.h"
--
--#ifndef CC_HAS_PROTOS
--#if !defined(__STDC__) || (__STDC__ != 1)
--choke me
--#endif
--#endif
--
--int
--main ()
--{
--
-- int test (int i, double x);
-- struct s1 {int (*f) (int a);};
-- struct s2 {int (*f) (double a);};
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2326: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:2329: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2332: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:2335: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_cv_ansi_cc="$cf_arg"; break
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--done
--CFLAGS="$cf_save_CFLAGS"
--CPPFLAGS="$cf_save_CPPFLAGS"
--
--fi
--echo "$as_me:2348: result: $cf_cv_ansi_cc" >&5
--echo "${ECHO_T}$cf_cv_ansi_cc" >&6
--
--if test "$cf_cv_ansi_cc" != "no"; then
--if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_cv_ansi_cc
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
--else
-- cat >>confdefs.h <<\EOF
--#define CC_HAS_PROTOS 1
--EOF
--
--fi
--fi
--
--if test "$cf_cv_ansi_cc" = "no"; then
-- { { echo "$as_me:2441: error: Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto" >&5
--echo "$as_me: error: Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto" >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--case $cf_cv_system_name in
--os2*)
-- CFLAGS="$CFLAGS -Zmt"
-- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
-- CXXFLAGS="$CXXFLAGS -Zmt"
-- # autoconf's macro sets -Zexe and suffix both, which conflict:w
-- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
-- ac_cv_exeext=.exe
-- ;;
--esac
--
--PROG_EXT="$EXEEXT"
--
--test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
--#define PROG_EXT "$PROG_EXT"
--EOF
--
--test "$program_prefix" != NONE &&
-- program_transform_name="s,^,$program_prefix,;$program_transform_name"
--# Use a double $ so make ignores it.
--test "$program_suffix" != NONE &&
-- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
--# Double any \ or $. echo might interpret backslashes.
--# By default was `s,x,x', remove it if useless.
--cat <<\_ACEOF >conftest.sed
--s/[\\$]/&&/g;s/;s,x,x,$//
--_ACEOF
--program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
--rm conftest.sed
--
--for ac_prog in mawk gawk nawk awk
--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:2488: 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
--else
-- if test -n "$AWK"; then
-- ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog"
--echo "$as_me:2503: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--AWK=$ac_cv_prog_AWK
--if test -n "$AWK"; then
-- echo "$as_me:2511: result: $AWK" >&5
--echo "${ECHO_T}$AWK" >&6
--else
-- echo "$as_me:2514: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- test -n "$AWK" && break
--done
--
--test -z "$AWK" && { { echo "$as_me:2521: error: No awk program found" >&5
--echo "$as_me: error: No awk program found" >&2;}
-- { (exit 1); exit 1; }; }
--
--echo "$as_me:2525: checking for egrep" >&5
--echo $ECHO_N "checking for egrep... $ECHO_C" >&6
--if test "${ac_cv_prog_egrep+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-- then ac_cv_prog_egrep='grep -E'
-- else ac_cv_prog_egrep='egrep'
-- fi
--fi
--echo "$as_me:2535: result: $ac_cv_prog_egrep" >&5
--echo "${ECHO_T}$ac_cv_prog_egrep" >&6
-- EGREP=$ac_cv_prog_egrep
--
--test -z "$EGREP" && { { echo "$as_me:2539: error: No egrep program found" >&5
--echo "$as_me: error: No egrep program found" >&2;}
-- { (exit 1); exit 1; }; }
-+test -z "$EGREP" && { { echo "$as_me:2247: error: No egrep program found" >&5
-+echo "$as_me: error: No egrep program found" >&2;}
-+ { (exit 1); exit 1; }; }
-
- # Find a good install program. We prefer a C program (faster),
- # so one script is as good as another. But avoid the broken or
-@@ -2552,7 +2260,7 @@
- # AFS /usr/afsws/bin/install, which mishandles nonexistent args
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:2555: checking for a BSD compatible install" >&5
-+echo "$as_me:2263: checking for a BSD compatible install" >&5
- echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
-@@ -2601,7 +2309,7 @@
- INSTALL=$ac_install_sh
- fi
- fi
--echo "$as_me:2604: result: $INSTALL" >&5
-+echo "$as_me:2312: result: $INSTALL" >&5
- echo "${ECHO_T}$INSTALL" >&6
-
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-@@ -2612,18 +2320,18 @@
-
- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
--echo "$as_me:2615: checking whether ln -s works" >&5
-+echo "$as_me:2323: checking whether ln -s works" >&5
- echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
- LN_S=$as_ln_s
- if test "$LN_S" = "ln -s"; then
-- echo "$as_me:2619: result: yes" >&5
-+ echo "$as_me:2327: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-- echo "$as_me:2622: result: no, using $LN_S" >&5
-+ echo "$as_me:2330: result: no, using $LN_S" >&5
- echo "${ECHO_T}no, using $LN_S" >&6
- fi
-
--echo "$as_me:2626: checking if $LN_S -f options work" >&5
-+echo "$as_me:2334: checking if $LN_S -f options work" >&5
- echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6
-
- rm -f conf$$.src conf$$dst
-@@ -2635,12 +2343,12 @@
- cf_prog_ln_sf=no
- fi
- rm -f conf$$.dst conf$$src
--echo "$as_me:2638: result: $cf_prog_ln_sf" >&5
-+echo "$as_me:2346: result: $cf_prog_ln_sf" >&5
- echo "${ECHO_T}$cf_prog_ln_sf" >&6
-
- test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
-
--echo "$as_me:2643: checking for long file names" >&5
-+echo "$as_me:2351: checking for long file names" >&5
- echo $ECHO_N "checking for long file names... $ECHO_C" >&6
- if test "${ac_cv_sys_long_file_names+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2679,7 +2387,7 @@
- rm -rf $ac_xdir 2>/dev/null
- done
- fi
--echo "$as_me:2682: result: $ac_cv_sys_long_file_names" >&5
-+echo "$as_me:2390: result: $ac_cv_sys_long_file_names" >&5
- echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
- if test $ac_cv_sys_long_file_names = yes; then
-
-@@ -2691,7 +2399,7 @@
-
- # if we find pkg-config, check if we should install the ".pc" files.
-
--echo "$as_me:2694: checking if you want to use pkg-config" >&5
-+echo "$as_me:2402: checking if you want to use pkg-config" >&5
- echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
-
- # Check whether --with-pkg-config or --without-pkg-config was given.
-@@ -2701,7 +2409,7 @@
- else
- cf_pkg_config=yes
- fi;
--echo "$as_me:2704: result: $cf_pkg_config" >&5
-+echo "$as_me:2412: result: $cf_pkg_config" >&5
- echo "${ECHO_T}$cf_pkg_config" >&6
-
- case $cf_pkg_config in #(vi
-@@ -2709,10 +2417,11 @@
- PKG_CONFIG=none
- ;;
- yes) #(vi
-- if test -n "$ac_tool_prefix"; then
-+
-+if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
- set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
--echo "$as_me:2715: checking for $ac_word" >&5
-+echo "$as_me:2424: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2729,7 +2438,7 @@
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:2732: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:2441: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -2740,10 +2449,10 @@
- PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-
- if test -n "$PKG_CONFIG"; then
-- echo "$as_me:2743: result: $PKG_CONFIG" >&5
-+ echo "$as_me:2452: result: $PKG_CONFIG" >&5
- echo "${ECHO_T}$PKG_CONFIG" >&6
- else
-- echo "$as_me:2746: result: no" >&5
-+ echo "$as_me:2455: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2752,7 +2461,7 @@
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
--echo "$as_me:2755: checking for $ac_word" >&5
-+echo "$as_me:2464: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2769,7 +2478,7 @@
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:2772: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:2481: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -2781,10 +2490,10 @@
- ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-
- if test -n "$ac_pt_PKG_CONFIG"; then
-- echo "$as_me:2784: result: $ac_pt_PKG_CONFIG" >&5
-+ echo "$as_me:2493: result: $ac_pt_PKG_CONFIG" >&5
- echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
- else
-- echo "$as_me:2787: result: no" >&5
-+ echo "$as_me:2496: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2815,7 +2524,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval PKG_CONFIG="$PKG_CONFIG"
- case ".$PKG_CONFIG" in #(vi
- .NONE/*)
-@@ -2827,7 +2536,7 @@
- PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:2830: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
-+ { { echo "$as_me:2539: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
- echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-@@ -2836,15 +2545,50 @@
- fi
-
- if test "$PKG_CONFIG" != none ; then
-- echo "$as_me:2839: checking if we should install .pc files for $PKG_CONFIG" >&5
--echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
-+ echo "$as_me:2548: checking for $PKG_CONFIG library directory" >&5
-+echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6
-
-- # Leave this as something that can be overridden in the environment.
-- if test -z "$PKG_CONFIG_LIBDIR" ; then
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
-- fi
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
-- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
-+# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given.
-+if test "${with_pkg_config_libdir+set}" = set; then
-+ withval="$with_pkg_config_libdir"
-+ PKG_CONFIG_LIBDIR=$withval
-+else
-+ PKG_CONFIG_LIBDIR=yes
-+fi;
-+
-+ case x$PKG_CONFIG_LIBDIR in #(vi
-+ x/*) #(vi
-+ ;;
-+ xyes) #(vi
-+ # look for the library directory using the same prefix as the executable
-+ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`
-+ case x`(arch) 2>/dev/null` in #(vi
-+ *64) #(vi
-+ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
-+ do
-+ if test -d $cf_config/pkgconfig
-+ then
-+ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
-+ break
-+ fi
-+ done
-+ ;;
-+ *)
-+ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ ;;
-+ esac
-+
-+ echo "$as_me:2585: result: $PKG_CONFIG_LIBDIR" >&5
-+echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
-+fi
-+
-+if test "$PKG_CONFIG" != none ; then
-+ echo "$as_me:2590: checking if we should install .pc files for $PKG_CONFIG" >&5
-+echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
-
- # Check whether --enable-pc-files or --disable-pc-files was given.
- if test "${enable_pc_files+set}" = set; then
-@@ -2853,18 +2597,48 @@
- else
- enable_pc_files=no
- fi;
-- echo "$as_me:2856: result: $enable_pc_files" >&5
-+ echo "$as_me:2600: result: $enable_pc_files" >&5
- echo "${ECHO_T}$enable_pc_files" >&6
-- else
-- echo "$as_me:2859: result: no" >&5
--echo "${ECHO_T}no" >&6
-- { echo "$as_me:2861: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
--echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
-- enable_pc_files=no
-+ if test "$enable_pc_files" != no
-+ then
-+
-+if test "x$prefix" != xNONE; then
-+ cf_path_syntax="$prefix"
-+else
-+ cf_path_syntax="$ac_default_prefix"
-+fi
-+
-+case ".$PKG_CONFIG_LIBDIR" in #(vi
-+.\$\(*\)*|.\'*\'*) #(vi
-+ ;;
-+..|./*|.\\*) #(vi
-+ ;;
-+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-+ ;;
-+.\${*prefix}*|.\${*dir}*) #(vi
-+ eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR"
-+ case ".$PKG_CONFIG_LIBDIR" in #(vi
-+ .NONE/*)
-+ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+ esac
-+ ;; #(vi
-+.no|.NONE/*)
-+ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+*)
-+ { { echo "$as_me:2630: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5
-+echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;}
-+ { (exit 1); exit 1; }; }
-+ ;;
-+esac
-+
- fi
-+else
-+ enable_pc_files=no
- fi
-
--echo "$as_me:2867: checking if you want to build test-programs" >&5
-+echo "$as_me:2641: checking if you want to build test-programs" >&5
- echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
-
- # Check whether --with-tests or --without-tests was given.
-@@ -2874,10 +2648,10 @@
- else
- cf_with_tests=yes
- fi;
--echo "$as_me:2877: result: $cf_with_tests" >&5
-+echo "$as_me:2651: result: $cf_with_tests" >&5
- echo "${ECHO_T}$cf_with_tests" >&6
-
--echo "$as_me:2880: checking if we should assume mixed-case filenames" >&5
-+echo "$as_me:2654: checking if we should assume mixed-case filenames" >&5
- echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
-
- # Check whether --enable-mixed-case or --disable-mixed-case was given.
-@@ -2887,11 +2661,11 @@
- else
- enable_mixedcase=auto
- fi;
--echo "$as_me:2890: result: $enable_mixedcase" >&5
-+echo "$as_me:2664: result: $enable_mixedcase" >&5
- echo "${ECHO_T}$enable_mixedcase" >&6
- if test "$enable_mixedcase" = "auto" ; then
-
--echo "$as_me:2894: checking if filesystem supports mixed-case filenames" >&5
-+echo "$as_me:2668: checking if filesystem supports mixed-case filenames" >&5
- echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
- if test "${cf_cv_mixedcase+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2918,9 +2692,10 @@
- fi
-
- fi
--echo "$as_me:2921: result: $cf_cv_mixedcase" >&5
-+echo "$as_me:2695: result: $cf_cv_mixedcase" >&5
- echo "${ECHO_T}$cf_cv_mixedcase" >&6
--test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_mixedcase" = yes &&
-+cat >>confdefs.h <<\EOF
- #define MIXEDCASE_FILENAMES 1
- EOF
-
-@@ -2935,7 +2710,7 @@
- fi
-
- # do this after mixed-case option (tags/TAGS is not as important as tic).
--echo "$as_me:2938: checking whether ${MAKE-make} sets \${MAKE}" >&5
-+echo "$as_me:2713: checking whether ${MAKE-make} sets \${MAKE}" >&5
- echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
- set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
- if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-@@ -2955,11 +2730,11 @@
- rm -f conftest.make
- fi
- if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-- echo "$as_me:2958: result: yes" >&5
-+ echo "$as_me:2733: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- SET_MAKE=
- else
-- echo "$as_me:2962: result: no" >&5
-+ echo "$as_me:2737: result: no" >&5
- echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
- fi
-@@ -2968,7 +2743,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2971: checking for $ac_word" >&5
-+echo "$as_me:2746: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CTAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2983,7 +2758,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CTAGS="$ac_prog"
--echo "$as_me:2986: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2761: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2991,10 +2766,10 @@
- fi
- CTAGS=$ac_cv_prog_CTAGS
- if test -n "$CTAGS"; then
-- echo "$as_me:2994: result: $CTAGS" >&5
-+ echo "$as_me:2769: result: $CTAGS" >&5
- echo "${ECHO_T}$CTAGS" >&6
- else
-- echo "$as_me:2997: result: no" >&5
-+ echo "$as_me:2772: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3005,7 +2780,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:3008: checking for $ac_word" >&5
-+echo "$as_me:2783: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ETAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3020,7 +2795,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ETAGS="$ac_prog"
--echo "$as_me:3023: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2798: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3028,10 +2803,10 @@
- fi
- ETAGS=$ac_cv_prog_ETAGS
- if test -n "$ETAGS"; then
-- echo "$as_me:3031: result: $ETAGS" >&5
-+ echo "$as_me:2806: result: $ETAGS" >&5
- echo "${ECHO_T}$ETAGS" >&6
- else
-- echo "$as_me:3034: result: no" >&5
-+ echo "$as_me:2809: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3040,7 +2815,7 @@
-
- # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
- set dummy ${CTAGS:-ctags}; ac_word=$2
--echo "$as_me:3043: checking for $ac_word" >&5
-+echo "$as_me:2818: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3055,7 +2830,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_LOWER_TAGS="yes"
--echo "$as_me:3058: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2833: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3064,17 +2839,17 @@
- fi
- MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
- if test -n "$MAKE_LOWER_TAGS"; then
-- echo "$as_me:3067: result: $MAKE_LOWER_TAGS" >&5
-+ echo "$as_me:2842: result: $MAKE_LOWER_TAGS" >&5
- echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
- else
-- echo "$as_me:3070: result: no" >&5
-+ echo "$as_me:2845: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- if test "$cf_cv_mixedcase" = yes ; then
- # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
- set dummy ${ETAGS:-etags}; ac_word=$2
--echo "$as_me:3077: checking for $ac_word" >&5
-+echo "$as_me:2852: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3089,7 +2864,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_UPPER_TAGS="yes"
--echo "$as_me:3092: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2867: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3098,10 +2873,10 @@
- fi
- MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
- if test -n "$MAKE_UPPER_TAGS"; then
-- echo "$as_me:3101: result: $MAKE_UPPER_TAGS" >&5
-+ echo "$as_me:2876: result: $MAKE_UPPER_TAGS" >&5
- echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
- else
-- echo "$as_me:3104: result: no" >&5
-+ echo "$as_me:2879: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3121,7 +2896,7 @@
- MAKE_LOWER_TAGS="#"
- fi
-
--echo "$as_me:3124: checking for makeflags variable" >&5
-+echo "$as_me:2899: checking for makeflags variable" >&5
- echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
- if test "${cf_cv_makeflags+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3155,13 +2930,13 @@
- rm -f cf_makeflags.tmp
-
- fi
--echo "$as_me:3158: result: $cf_cv_makeflags" >&5
-+echo "$as_me:2933: result: $cf_cv_makeflags" >&5
- echo "${ECHO_T}$cf_cv_makeflags" >&6
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ranlib; ac_word=$2
--echo "$as_me:3164: checking for $ac_word" >&5
-+echo "$as_me:2939: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3176,7 +2951,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
--echo "$as_me:3179: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2954: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3184,10 +2959,10 @@
- fi
- RANLIB=$ac_cv_prog_RANLIB
- if test -n "$RANLIB"; then
-- echo "$as_me:3187: result: $RANLIB" >&5
-+ echo "$as_me:2962: result: $RANLIB" >&5
- echo "${ECHO_T}$RANLIB" >&6
- else
-- echo "$as_me:3190: result: no" >&5
-+ echo "$as_me:2965: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3196,7 +2971,7 @@
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
- set dummy ranlib; ac_word=$2
--echo "$as_me:3199: checking for $ac_word" >&5
-+echo "$as_me:2974: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3211,7 +2986,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_RANLIB="ranlib"
--echo "$as_me:3214: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2989: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3220,10 +2995,10 @@
- fi
- ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
- if test -n "$ac_ct_RANLIB"; then
-- echo "$as_me:3223: result: $ac_ct_RANLIB" >&5
-+ echo "$as_me:2998: result: $ac_ct_RANLIB" >&5
- echo "${ECHO_T}$ac_ct_RANLIB" >&6
- else
-- echo "$as_me:3226: result: no" >&5
-+ echo "$as_me:3001: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3235,7 +3010,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ld; ac_word=$2
--echo "$as_me:3238: checking for $ac_word" >&5
-+echo "$as_me:3013: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3250,7 +3025,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_LD="${ac_tool_prefix}ld"
--echo "$as_me:3253: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3028: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3258,10 +3033,10 @@
- fi
- LD=$ac_cv_prog_LD
- if test -n "$LD"; then
-- echo "$as_me:3261: result: $LD" >&5
-+ echo "$as_me:3036: result: $LD" >&5
- echo "${ECHO_T}$LD" >&6
- else
-- echo "$as_me:3264: result: no" >&5
-+ echo "$as_me:3039: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3270,7 +3045,7 @@
- ac_ct_LD=$LD
- # Extract the first word of "ld", so it can be a program name with args.
- set dummy ld; ac_word=$2
--echo "$as_me:3273: checking for $ac_word" >&5
-+echo "$as_me:3048: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3285,7 +3060,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_LD="ld"
--echo "$as_me:3288: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3063: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3294,10 +3069,10 @@
- fi
- ac_ct_LD=$ac_cv_prog_ac_ct_LD
- if test -n "$ac_ct_LD"; then
-- echo "$as_me:3297: result: $ac_ct_LD" >&5
-+ echo "$as_me:3072: result: $ac_ct_LD" >&5
- echo "${ECHO_T}$ac_ct_LD" >&6
- else
-- echo "$as_me:3300: result: no" >&5
-+ echo "$as_me:3075: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3309,7 +3084,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
--echo "$as_me:3312: checking for $ac_word" >&5
-+echo "$as_me:3087: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3324,7 +3099,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AR="${ac_tool_prefix}ar"
--echo "$as_me:3327: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3102: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3332,10 +3107,10 @@
- fi
- AR=$ac_cv_prog_AR
- if test -n "$AR"; then
-- echo "$as_me:3335: result: $AR" >&5
-+ echo "$as_me:3110: result: $AR" >&5
- echo "${ECHO_T}$AR" >&6
- else
-- echo "$as_me:3338: result: no" >&5
-+ echo "$as_me:3113: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3344,7 +3119,7 @@
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
- set dummy ar; ac_word=$2
--echo "$as_me:3347: checking for $ac_word" >&5
-+echo "$as_me:3122: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3359,7 +3134,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_AR="ar"
--echo "$as_me:3362: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3137: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3368,10 +3143,10 @@
- fi
- ac_ct_AR=$ac_cv_prog_ac_ct_AR
- if test -n "$ac_ct_AR"; then
-- echo "$as_me:3371: result: $ac_ct_AR" >&5
-+ echo "$as_me:3146: result: $ac_ct_AR" >&5
- echo "${ECHO_T}$ac_ct_AR" >&6
- else
-- echo "$as_me:3374: result: no" >&5
-+ echo "$as_me:3149: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3383,7 +3158,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
--echo "$as_me:3386: checking for $ac_word" >&5
-+echo "$as_me:3161: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3398,7 +3173,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AR="${ac_tool_prefix}ar"
--echo "$as_me:3401: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3176: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3406,10 +3181,10 @@
- fi
- AR=$ac_cv_prog_AR
- if test -n "$AR"; then
-- echo "$as_me:3409: result: $AR" >&5
-+ echo "$as_me:3184: result: $AR" >&5
- echo "${ECHO_T}$AR" >&6
- else
-- echo "$as_me:3412: result: no" >&5
-+ echo "$as_me:3187: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3418,7 +3193,7 @@
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
- set dummy ar; ac_word=$2
--echo "$as_me:3421: checking for $ac_word" >&5
-+echo "$as_me:3196: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3433,7 +3208,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_AR="ar"
--echo "$as_me:3436: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3211: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3442,10 +3217,10 @@
- fi
- ac_ct_AR=$ac_cv_prog_ac_ct_AR
- if test -n "$ac_ct_AR"; then
-- echo "$as_me:3445: result: $ac_ct_AR" >&5
-+ echo "$as_me:3220: result: $ac_ct_AR" >&5
- echo "${ECHO_T}$ac_ct_AR" >&6
- else
-- echo "$as_me:3448: result: no" >&5
-+ echo "$as_me:3223: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3454,7 +3229,7 @@
- AR="$ac_cv_prog_AR"
- fi
-
--echo "$as_me:3457: checking for options to update archives" >&5
-+echo "$as_me:3232: checking for options to update archives" >&5
- echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
- if test "${cf_cv_ar_flags+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3477,13 +3252,13 @@
- rm -f conftest.a
-
- cat >conftest.$ac_ext <<EOF
--#line 3480 "configure"
-+#line 3255 "configure"
- int testdata[3] = { 123, 456, 789 };
- EOF
-- if { (eval echo "$as_me:3483: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:3258: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3486: \$? = $ac_status" >&5
-+ echo "$as_me:3261: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
- $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
-@@ -3494,7 +3269,7 @@
- else
- test -n "$verbose" && echo " cannot compile test-program" 1>&6
-
--echo "${as_me:-configure}:3497: testing cannot compile test-program ..." 1>&5
-+echo "${as_me:-configure}:3272: testing cannot compile test-program ..." 1>&5
-
- break
- fi
-@@ -3502,7 +3277,7 @@
- rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
-
- fi
--echo "$as_me:3505: result: $cf_cv_ar_flags" >&5
-+echo "$as_me:3280: result: $cf_cv_ar_flags" >&5
- echo "${ECHO_T}$cf_cv_ar_flags" >&6
-
- if test -n "$ARFLAGS" ; then
-@@ -3513,7 +3288,17 @@
- ARFLAGS=$cf_cv_ar_flags
- fi
-
--echo "$as_me:3516: checking if you have specified an install-prefix" >&5
-+ echo "$as_me:3291: checking for PATH separator" >&5
-+echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6
-+ case $cf_cv_system_name in
-+ os2*) PATH_SEPARATOR=';' ;;
-+ *) ${PATH_SEPARATOR:=':'} ;;
-+ esac
-+
-+ echo "$as_me:3298: result: $PATH_SEPARATOR" >&5
-+echo "${ECHO_T}$PATH_SEPARATOR" >&6
-+
-+echo "$as_me:3301: checking if you have specified an install-prefix" >&5
- echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
-
- # Check whether --with-install-prefix or --without-install-prefix was given.
-@@ -3526,7 +3311,7 @@
- ;;
- esac
- fi;
--echo "$as_me:3529: result: $DESTDIR" >&5
-+echo "$as_me:3314: result: $DESTDIR" >&5
- echo "${ECHO_T}$DESTDIR" >&6
-
- ###############################################################################
-@@ -3554,7 +3339,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:3557: checking for $ac_word" >&5
-+echo "$as_me:3342: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_BUILD_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3569,7 +3354,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_BUILD_CC="$ac_prog"
--echo "$as_me:3572: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3357: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3577,10 +3362,10 @@
- fi
- BUILD_CC=$ac_cv_prog_BUILD_CC
- if test -n "$BUILD_CC"; then
-- echo "$as_me:3580: result: $BUILD_CC" >&5
-+ echo "$as_me:3365: result: $BUILD_CC" >&5
- echo "${ECHO_T}$BUILD_CC" >&6
- else
-- echo "$as_me:3583: result: no" >&5
-+ echo "$as_me:3368: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3588,12 +3373,12 @@
- done
-
- fi;
-- echo "$as_me:3591: checking for native build C compiler" >&5
-+ echo "$as_me:3376: checking for native build C compiler" >&5
- echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
-- echo "$as_me:3593: result: $BUILD_CC" >&5
-+ echo "$as_me:3378: result: $BUILD_CC" >&5
- echo "${ECHO_T}$BUILD_CC" >&6
-
-- echo "$as_me:3596: checking for native build C preprocessor" >&5
-+ echo "$as_me:3381: checking for native build C preprocessor" >&5
- echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
-
- # Check whether --with-build-cpp or --without-build-cpp was given.
-@@ -3603,10 +3388,10 @@
- else
- BUILD_CPP='${BUILD_CC} -E'
- fi;
-- echo "$as_me:3606: result: $BUILD_CPP" >&5
-+ echo "$as_me:3391: result: $BUILD_CPP" >&5
- echo "${ECHO_T}$BUILD_CPP" >&6
-
-- echo "$as_me:3609: checking for native build C flags" >&5
-+ echo "$as_me:3394: checking for native build C flags" >&5
- echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
-
- # Check whether --with-build-cflags or --without-build-cflags was given.
-@@ -3614,10 +3399,10 @@
- withval="$with_build_cflags"
- BUILD_CFLAGS="$withval"
- fi;
-- echo "$as_me:3617: result: $BUILD_CFLAGS" >&5
-+ echo "$as_me:3402: result: $BUILD_CFLAGS" >&5
- echo "${ECHO_T}$BUILD_CFLAGS" >&6
-
-- echo "$as_me:3620: checking for native build C preprocessor-flags" >&5
-+ echo "$as_me:3405: checking for native build C preprocessor-flags" >&5
- echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
-
- # Check whether --with-build-cppflags or --without-build-cppflags was given.
-@@ -3625,10 +3410,10 @@
- withval="$with_build_cppflags"
- BUILD_CPPFLAGS="$withval"
- fi;
-- echo "$as_me:3628: result: $BUILD_CPPFLAGS" >&5
-+ echo "$as_me:3413: result: $BUILD_CPPFLAGS" >&5
- echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
-
-- echo "$as_me:3631: checking for native build linker-flags" >&5
-+ echo "$as_me:3416: checking for native build linker-flags" >&5
- echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
-
- # Check whether --with-build-ldflags or --without-build-ldflags was given.
-@@ -3636,10 +3421,10 @@
- withval="$with_build_ldflags"
- BUILD_LDFLAGS="$withval"
- fi;
-- echo "$as_me:3639: result: $BUILD_LDFLAGS" >&5
-+ echo "$as_me:3424: result: $BUILD_LDFLAGS" >&5
- echo "${ECHO_T}$BUILD_LDFLAGS" >&6
-
-- echo "$as_me:3642: checking for native build linker-libraries" >&5
-+ echo "$as_me:3427: checking for native build linker-libraries" >&5
- echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
-
- # Check whether --with-build-libs or --without-build-libs was given.
-@@ -3647,7 +3432,7 @@
- withval="$with_build_libs"
- BUILD_LIBS="$withval"
- fi;
-- echo "$as_me:3650: result: $BUILD_LIBS" >&5
-+ echo "$as_me:3435: result: $BUILD_LIBS" >&5
- echo "${ECHO_T}$BUILD_LIBS" >&6
-
- # this assumes we're on Unix.
-@@ -3657,7 +3442,7 @@
- : ${BUILD_CC:='${CC}'}
-
- if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
-- { { echo "$as_me:3660: error: Cross-build requires two compilers.
-+ { { echo "$as_me:3445: error: Cross-build requires two compilers.
- Use --with-build-cc to specify the native compiler." >&5
- echo "$as_me: error: Cross-build requires two compilers.
- Use --with-build-cc to specify the native compiler." >&2;}
-@@ -3682,7 +3467,7 @@
- ### shared, for example.
- cf_list_models=""
-
--echo "$as_me:3685: checking if you want to build shared C-objects" >&5
-+echo "$as_me:3470: checking if you want to build shared C-objects" >&5
- echo $ECHO_N "checking if you want to build shared C-objects... $ECHO_C" >&6
-
- # Check whether --with-shared or --without-shared was given.
-@@ -3692,27 +3477,27 @@
- else
- with_shared=no
- fi;
--echo "$as_me:3695: result: $with_shared" >&5
-+echo "$as_me:3480: result: $with_shared" >&5
- echo "${ECHO_T}$with_shared" >&6
- test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-
--echo "$as_me:3699: checking for specified models" >&5
-+echo "$as_me:3484: checking for specified models" >&5
- echo $ECHO_N "checking for specified models... $ECHO_C" >&6
- test -z "$cf_list_models" && cf_list_models=normal
--echo "$as_me:3702: result: $cf_list_models" >&5
-+echo "$as_me:3487: result: $cf_list_models" >&5
- echo "${ECHO_T}$cf_list_models" >&6
-
- ### Use the first model as the default, and save its suffix for use in building
- ### up test-applications.
--echo "$as_me:3707: checking for default model" >&5
-+echo "$as_me:3492: checking for default model" >&5
- echo $ECHO_N "checking for default model... $ECHO_C" >&6
- DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
--echo "$as_me:3710: result: $DFT_LWR_MODEL" >&5
-+echo "$as_me:3495: result: $DFT_LWR_MODEL" >&5
- echo "${ECHO_T}$DFT_LWR_MODEL" >&6
-
- DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
--echo "$as_me:3715: checking for specific curses-directory" >&5
-+echo "$as_me:3500: checking for specific curses-directory" >&5
- echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
-
- # Check whether --with-curses-dir or --without-curses-dir was given.
-@@ -3722,7 +3507,7 @@
- else
- cf_cv_curses_dir=no
- fi;
--echo "$as_me:3725: result: $cf_cv_curses_dir" >&5
-+echo "$as_me:3510: result: $cf_cv_curses_dir" >&5
- echo "${ECHO_T}$cf_cv_curses_dir" >&6
-
- if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-@@ -3741,7 +3526,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
-@@ -3753,7 +3538,7 @@
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:3756: error: expected a pathname, not \"$withval\"" >&5
-+ { { echo "$as_me:3541: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-@@ -3786,7 +3571,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 3789 "configure"
-+#line 3574 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -3798,16 +3583,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3801: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3586: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3804: \$? = $ac_status" >&5
-+ echo "$as_me:3589: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3807: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3592: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3810: \$? = $ac_status" >&5
-+ echo "$as_me:3595: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -3824,7 +3609,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:3827: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:3612: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -3858,7 +3643,7 @@
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--echo "${as_me:-configure}:3861: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:3646: testing adding $cf_add_libdir to library-path ..." 1>&5
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
-@@ -3869,7 +3654,7 @@
- fi
- fi
-
--echo "$as_me:3872: checking if you want wide-character code" >&5
-+echo "$as_me:3657: checking if you want wide-character code" >&5
- echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
-
- # Check whether --enable-widec or --disable-widec was given.
-@@ -3879,11 +3664,11 @@
- else
- with_widec=no
- fi;
--echo "$as_me:3882: result: $with_widec" >&5
-+echo "$as_me:3667: result: $with_widec" >&5
- echo "${ECHO_T}$with_widec" >&6
- if test "$with_widec" = yes ; then
-
--echo "$as_me:3886: checking for multibyte character support" >&5
-+echo "$as_me:3671: checking for multibyte character support" >&5
- echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
- if test "${cf_cv_utf8_lib+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3891,7 +3676,7 @@
-
- cf_save_LIBS="$LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 3894 "configure"
-+#line 3679 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -3904,16 +3689,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:3907: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:3692: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:3910: \$? = $ac_status" >&5
-+ echo "$as_me:3695: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:3913: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3698: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3916: \$? = $ac_status" >&5
-+ echo "$as_me:3701: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_utf8_lib=yes
- else
-@@ -3925,12 +3710,12 @@
- cf_cv_header_path_utf8=
- cf_cv_library_path_utf8=
-
--echo "${as_me:-configure}:3928: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:3713: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-
- cf_save_LIBS="$LIBS"
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 3933 "configure"
-+#line 3718 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -3943,16 +3728,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:3946: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:3731: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:3949: \$? = $ac_status" >&5
-+ echo "$as_me:3734: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:3952: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3737: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3955: \$? = $ac_status" >&5
-+ echo "$as_me:3740: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_find_linkage_utf8=yes
-@@ -3966,7 +3751,7 @@
- LIBS="-lutf8 $cf_save_LIBS"
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 3969 "configure"
-+#line 3754 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -3979,16 +3764,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:3982: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:3767: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:3985: \$? = $ac_status" >&5
-+ echo "$as_me:3770: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:3988: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3773: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3991: \$? = $ac_status" >&5
-+ echo "$as_me:3776: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_find_linkage_utf8=yes
-@@ -4005,9 +3790,9 @@
-
- test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
-
--echo "${as_me:-configure}:4008: testing find linkage for utf8 library ..." 1>&5
-+echo "${as_me:-configure}:3793: testing find linkage for utf8 library ..." 1>&5
-
--echo "${as_me:-configure}:4010: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:3795: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
-
- cf_save_CPPFLAGS="$CPPFLAGS"
- cf_test_CPPFLAGS="$CPPFLAGS"
-@@ -4120,11 +3905,11 @@
- if test -d $cf_cv_header_path_utf8 ; then
- test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-
--echo "${as_me:-configure}:4123: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:3908: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-
- CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4127 "configure"
-+#line 3912 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -4137,21 +3922,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4140: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3925: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4143: \$? = $ac_status" >&5
-+ echo "$as_me:3928: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4146: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3931: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4149: \$? = $ac_status" >&5
-+ echo "$as_me:3934: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
-
--echo "${as_me:-configure}:4154: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:3939: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
-
- cf_cv_find_linkage_utf8=maybe
- cf_test_CPPFLAGS="$CPPFLAGS"
-@@ -4169,7 +3954,7 @@
-
- if test "$cf_cv_find_linkage_utf8" = maybe ; then
-
--echo "${as_me:-configure}:4172: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:3957: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
-
- cf_save_LIBS="$LIBS"
- cf_save_LDFLAGS="$LDFLAGS"
-@@ -4266,13 +4051,13 @@
- if test -d $cf_cv_library_path_utf8 ; then
- test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-
--echo "${as_me:-configure}:4269: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:4054: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-
- CPPFLAGS="$cf_test_CPPFLAGS"
- LIBS="-lutf8 $cf_save_LIBS"
- LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4275 "configure"
-+#line 4060 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -4285,21 +4070,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4288: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:4073: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4291: \$? = $ac_status" >&5
-+ echo "$as_me:4076: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:4294: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4079: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4297: \$? = $ac_status" >&5
-+ echo "$as_me:4082: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
-
--echo "${as_me:-configure}:4302: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:4087: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
-
- cf_cv_find_linkage_utf8=yes
- cf_cv_library_file_utf8="-lutf8"
-@@ -4341,13 +4126,14 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:4344: result: $cf_cv_utf8_lib" >&5
-+echo "$as_me:4129: result: $cf_cv_utf8_lib" >&5
- echo "${ECHO_T}$cf_cv_utf8_lib" >&6
-
- # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
- # ncurses/ncursesw:
- if test "$cf_cv_utf8_lib" = "add-on" ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBUTF8_H 1
- EOF
-
-@@ -4375,7 +4161,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4378 "configure"
-+#line 4164 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -4387,16 +4173,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4390: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4176: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4393: \$? = $ac_status" >&5
-+ echo "$as_me:4179: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4396: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4182: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4399: \$? = $ac_status" >&5
-+ echo "$as_me:4185: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -4413,7 +4199,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:4416: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:4202: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -4447,7 +4233,7 @@
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--echo "${as_me:-configure}:4450: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:4236: testing adding $cf_add_libdir to library-path ..." 1>&5
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
-@@ -4461,48 +4247,87 @@
- cf_ncuconfig_root=ncursesw
-
- echo "Looking for ${cf_ncuconfig_root}-config"
--for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+
-+if test -n "$ac_tool_prefix"; then
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:4256: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$NCURSES_CONFIG"; then
-+ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-+echo "$as_me:4271: found $ac_dir/$ac_word" >&5
-+break
-+done
-+
-+fi
-+fi
-+NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
-+if test -n "$NCURSES_CONFIG"; then
-+ echo "$as_me:4279: result: $NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$NCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:4282: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ test -n "$NCURSES_CONFIG" && break
-+ done
-+fi
-+if test -z "$NCURSES_CONFIG"; then
-+ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:4468: checking for $ac_word" >&5
-+echo "$as_me:4295: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
-+if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- case $NCURSES_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-+ if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
-+else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:4485: found $ac_dir/$ac_word" >&5
-- break
--fi
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-+echo "$as_me:4310: found $ac_dir/$ac_word" >&5
-+break
- done
-
-- ;;
--esac
- fi
--NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
--
--if test -n "$NCURSES_CONFIG"; then
-- echo "$as_me:4496: result: $NCURSES_CONFIG" >&5
--echo "${ECHO_T}$NCURSES_CONFIG" >&6
-+fi
-+ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
-+if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ echo "$as_me:4318: result: $ac_ct_NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
- else
-- echo "$as_me:4499: result: no" >&5
-+ echo "$as_me:4321: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-- test -n "$NCURSES_CONFIG" && break
-+ test -n "$ac_ct_NCURSES_CONFIG" && break
- done
--test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
-+test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
-+
-+ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
-+fi
-
- if test "$NCURSES_CONFIG" != none ; then
-
-@@ -4511,7 +4336,7 @@
-
- # even with config script, some packages use no-override for curses.h
-
--echo "$as_me:4514: checking if we have identified curses headers" >&5
-+echo "$as_me:4339: checking if we have identified curses headers" >&5
- echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
- if test "${cf_cv_ncurses_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4519,13 +4344,13 @@
-
- cf_cv_ncurses_header=none
- for cf_header in \
-- ncursesw/curses.h \
-- ncursesw/ncurses.h \
-- curses.h \
-- ncurses.h
-+ ncursesw/ncurses.h \
-+ ncursesw/curses.h \
-+ ncurses.h \
-+ curses.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 4528 "configure"
-+#line 4353 "configure"
- #include "confdefs.h"
- #include <${cf_header}>
- int
-@@ -4537,16 +4362,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4540: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4365: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4543: \$? = $ac_status" >&5
-+ echo "$as_me:4368: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4546: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4371: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4549: \$? = $ac_status" >&5
-+ echo "$as_me:4374: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_header=$cf_header; break
- else
-@@ -4557,11 +4382,11 @@
- done
-
- fi
--echo "$as_me:4560: result: $cf_cv_ncurses_header" >&5
-+echo "$as_me:4385: result: $cf_cv_ncurses_header" >&5
- echo "${ECHO_T}$cf_cv_ncurses_header" >&6
-
- if test "$cf_cv_ncurses_header" = none ; then
-- { { echo "$as_me:4564: error: No curses header-files found" >&5
-+ { { echo "$as_me:4389: error: No curses header-files found" >&5
- echo "$as_me: error: No curses header-files found" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -4571,23 +4396,23 @@
- for ac_header in $cf_cv_ncurses_header
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:4574: checking for $ac_header" >&5
-+echo "$as_me:4399: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 4580 "configure"
-+#line 4405 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:4584: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:4409: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:4590: \$? = $ac_status" >&5
-+ echo "$as_me:4415: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -4606,7 +4431,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:4609: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:4434: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-@@ -4659,7 +4484,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4662 "configure"
-+#line 4487 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -4671,16 +4496,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4674: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4499: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4677: \$? = $ac_status" >&5
-+ echo "$as_me:4502: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4680: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4505: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4683: \$? = $ac_status" >&5
-+ echo "$as_me:4508: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -4697,7 +4522,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:4700: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:4525: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -4714,7 +4539,7 @@
-
- }
-
--echo "$as_me:4717: checking for $cf_ncuhdr_root header in include-path" >&5
-+echo "$as_me:4542: checking for $cf_ncuhdr_root header in include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4726,7 +4551,7 @@
- do
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 4729 "configure"
-+#line 4554 "configure"
- #include "confdefs.h"
-
- #define _XOPEN_SOURCE_EXTENDED
-@@ -4758,16 +4583,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4761: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4586: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4764: \$? = $ac_status" >&5
-+ echo "$as_me:4589: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4767: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4592: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4770: \$? = $ac_status" >&5
-+ echo "$as_me:4595: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_h=$cf_header
-
-@@ -4782,14 +4607,14 @@
- done
-
- fi
--echo "$as_me:4785: result: $cf_cv_ncurses_h" >&5
-+echo "$as_me:4610: result: $cf_cv_ncurses_h" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h" >&6
-
- if test "$cf_cv_ncurses_h" != no ; then
- cf_cv_ncurses_header=$cf_cv_ncurses_h
- else
-
--echo "$as_me:4792: checking for $cf_ncuhdr_root include-path" >&5
-+echo "$as_me:4617: checking for $cf_ncuhdr_root include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h2+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4929,7 +4754,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4932 "configure"
-+#line 4757 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -4941,16 +4766,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4944: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4769: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4947: \$? = $ac_status" >&5
-+ echo "$as_me:4772: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4950: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4775: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4953: \$? = $ac_status" >&5
-+ echo "$as_me:4778: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -4967,7 +4792,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:4970: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:4795: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -4988,7 +4813,7 @@
- do
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 4991 "configure"
-+#line 4816 "configure"
- #include "confdefs.h"
-
- #include <$cf_header>
-@@ -5012,16 +4837,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5015: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4840: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5018: \$? = $ac_status" >&5
-+ echo "$as_me:4843: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5021: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4846: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5024: \$? = $ac_status" >&5
-+ echo "$as_me:4849: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_h2=$cf_header
-
-@@ -5042,12 +4867,12 @@
- CPPFLAGS="$cf_save2_CPPFLAGS"
- test "$cf_cv_ncurses_h2" != no && break
- done
-- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5045: error: not found" >&5
-+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:4870: error: not found" >&5
- echo "$as_me: error: not found" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:5050: result: $cf_cv_ncurses_h2" >&5
-+echo "$as_me:4875: result: $cf_cv_ncurses_h2" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
-
- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-@@ -5080,7 +4905,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5083 "configure"
-+#line 4908 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -5092,16 +4917,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5095: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:4920: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5098: \$? = $ac_status" >&5
-+ echo "$as_me:4923: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5101: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4926: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5104: \$? = $ac_status" >&5
-+ echo "$as_me:4929: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -5118,7 +4943,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:5121: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:4946: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -5139,7 +4964,8 @@
-
- case $cf_cv_ncurses_header in # (vi
- *ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_H 1
- EOF
-
-@@ -5148,20 +4974,22 @@
-
- case $cf_cv_ncurses_header in # (vi
- ncurses/curses.h|ncurses/ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_NCURSES_H 1
- EOF
-
- ;;
- ncursesw/curses.h|ncursesw/ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSESW_NCURSES_H 1
- EOF
-
- ;;
- esac
-
--echo "$as_me:5164: checking for terminfo header" >&5
-+echo "$as_me:4992: checking for terminfo header" >&5
- echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5179,7 +5007,7 @@
- for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 5182 "configure"
-+#line 5010 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -5194,16 +5022,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5197: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5025: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5200: \$? = $ac_status" >&5
-+ echo "$as_me:5028: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5203: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5031: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5206: \$? = $ac_status" >&5
-+ echo "$as_me:5034: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_term_header="$cf_test"
-@@ -5219,14 +5047,15 @@
- done
-
- fi
--echo "$as_me:5222: result: $cf_cv_term_header" >&5
-+echo "$as_me:5050: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
-
- # Set definitions to allow ifdef'ing to accommodate subdirectories
-
- case $cf_cv_term_header in # (vi
- *term.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_TERM_H 1
- EOF
-
-@@ -5235,13 +5064,15 @@
-
- case $cf_cv_term_header in # (vi
- ncurses/term.h) #(vi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_TERM_H 1
- EOF
-
- ;;
- ncursesw/term.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSESW_TERM_H 1
- EOF
-
-@@ -5249,11 +5080,12 @@
- esac
-
- # some applications need this, but should check for NCURSES_VERSION
-+
- cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
-
--echo "$as_me:5256: checking for ncurses version" >&5
-+echo "$as_me:5088: checking for ncurses version" >&5
- echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
- if test "${cf_cv_ncurses_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5279,10 +5111,10 @@
- #endif
- EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-- { (eval echo "$as_me:5282: \"$cf_try\"") >&5
-+ { (eval echo "$as_me:5114: \"$cf_try\"") >&5
- (eval $cf_try) 2>&5
- ac_status=$?
-- echo "$as_me:5285: \$? = $ac_status" >&5
-+ echo "$as_me:5117: \$? = $ac_status" >&5
- (exit $ac_status); }
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-@@ -5292,7 +5124,7 @@
-
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 5295 "configure"
-+#line 5127 "configure"
- #include "confdefs.h"
-
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -5317,15 +5149,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:5320: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5152: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5323: \$? = $ac_status" >&5
-+ echo "$as_me:5155: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:5325: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5157: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5328: \$? = $ac_status" >&5
-+ echo "$as_me:5160: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_ncurses_version=`cat $cf_tempfile`
-@@ -5339,9 +5171,10 @@
- rm -f $cf_tempfile
-
- fi
--echo "$as_me:5342: result: $cf_cv_ncurses_version" >&5
-+echo "$as_me:5174: result: $cf_cv_ncurses_version" >&5
- echo "${ECHO_T}$cf_cv_ncurses_version" >&6
--test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
-+test "$cf_cv_ncurses_version" = no ||
-+cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
-
-@@ -5351,7 +5184,7 @@
- # to link gpm.
- cf_ncurses_LIBS=""
- cf_ncurses_SAVE="$LIBS"
--echo "$as_me:5354: checking for Gpm_Open in -lgpm" >&5
-+echo "$as_me:5187: checking for Gpm_Open in -lgpm" >&5
- echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5359,7 +5192,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5362 "configure"
-+#line 5195 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -5378,16 +5211,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5381: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5214: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5384: \$? = $ac_status" >&5
-+ echo "$as_me:5217: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5387: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5220: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5390: \$? = $ac_status" >&5
-+ echo "$as_me:5223: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_Gpm_Open=yes
- else
-@@ -5398,10 +5231,10 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5401: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "$as_me:5234: result: $ac_cv_lib_gpm_Gpm_Open" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
- if test $ac_cv_lib_gpm_Gpm_Open = yes; then
-- echo "$as_me:5404: checking for initscr in -lgpm" >&5
-+ echo "$as_me:5237: checking for initscr in -lgpm" >&5
- echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5409,7 +5242,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5412 "configure"
-+#line 5245 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -5428,16 +5261,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5431: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5264: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5434: \$? = $ac_status" >&5
-+ echo "$as_me:5267: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5437: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5270: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5440: \$? = $ac_status" >&5
-+ echo "$as_me:5273: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_initscr=yes
- else
-@@ -5448,7 +5281,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5451: result: $ac_cv_lib_gpm_initscr" >&5
-+echo "$as_me:5284: result: $ac_cv_lib_gpm_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
- if test $ac_cv_lib_gpm_initscr = yes; then
- LIBS="$cf_ncurses_SAVE"
-@@ -5463,7 +5296,7 @@
- # This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
- if test "$cf_nculib_root" = ncurses ; then
-- echo "$as_me:5466: checking for tgoto in -lmytinfo" >&5
-+ echo "$as_me:5299: checking for tgoto in -lmytinfo" >&5
- echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
- if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5471,7 +5304,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmytinfo $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5474 "configure"
-+#line 5307 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -5490,16 +5323,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5493: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5326: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5496: \$? = $ac_status" >&5
-+ echo "$as_me:5329: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5499: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5332: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5502: \$? = $ac_status" >&5
-+ echo "$as_me:5335: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_mytinfo_tgoto=yes
- else
-@@ -5510,7 +5343,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5513: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "$as_me:5346: result: $ac_cv_lib_mytinfo_tgoto" >&5
- echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
- if test $ac_cv_lib_mytinfo_tgoto = yes; then
- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-@@ -5529,13 +5362,13 @@
-
- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- cf_libdir=""
-- echo "$as_me:5532: checking for initscr" >&5
-+ echo "$as_me:5365: checking for initscr" >&5
- echo $ECHO_N "checking for initscr... $ECHO_C" >&6
- if test "${ac_cv_func_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 5538 "configure"
-+#line 5371 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char initscr (); below. */
-@@ -5558,7 +5391,7 @@
- #if defined (__stub_initscr) || defined (__stub___initscr)
- choke me
- #else
--f = initscr;
-+f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -5566,16 +5399,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5569: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5402: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5572: \$? = $ac_status" >&5
-+ echo "$as_me:5405: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5575: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5408: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5578: \$? = $ac_status" >&5
-+ echo "$as_me:5411: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_initscr=yes
- else
-@@ -5585,18 +5418,18 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:5588: result: $ac_cv_func_initscr" >&5
-+echo "$as_me:5421: result: $ac_cv_func_initscr" >&5
- echo "${ECHO_T}$ac_cv_func_initscr" >&6
- if test $ac_cv_func_initscr = yes; then
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- else
-
- cf_save_LIBS="$LIBS"
-- echo "$as_me:5595: checking for initscr in -l$cf_nculib_root" >&5
-+ echo "$as_me:5428: checking for initscr in -l$cf_nculib_root" >&5
- echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
- LIBS="-l$cf_nculib_root $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5599 "configure"
-+#line 5432 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5608,25 +5441,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5611: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5444: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5614: \$? = $ac_status" >&5
-+ echo "$as_me:5447: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5617: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5450: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5620: \$? = $ac_status" >&5
-+ echo "$as_me:5453: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:5622: result: yes" >&5
-+ echo "$as_me:5455: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:5629: result: no" >&5
-+echo "$as_me:5462: result: no" >&5
- echo "${ECHO_T}no" >&6
-
- cf_search=
-@@ -5716,11 +5549,11 @@
-
- for cf_libdir in $cf_search
- do
-- echo "$as_me:5719: checking for -l$cf_nculib_root in $cf_libdir" >&5
-+ echo "$as_me:5552: checking for -l$cf_nculib_root in $cf_libdir" >&5
- echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5723 "configure"
-+#line 5556 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5732,25 +5565,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5735: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5568: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5738: \$? = $ac_status" >&5
-+ echo "$as_me:5571: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5741: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5574: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5744: \$? = $ac_status" >&5
-+ echo "$as_me:5577: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:5746: result: yes" >&5
-+ echo "$as_me:5579: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:5753: result: no" >&5
-+echo "$as_me:5586: result: no" >&5
- echo "${ECHO_T}no" >&6
- LIBS="$cf_save_LIBS"
- fi
-@@ -5765,7 +5598,7 @@
- eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
- if test $cf_found_library = no ; then
-- { { echo "$as_me:5768: error: Cannot link $cf_nculib_root library" >&5
-+ { { echo "$as_me:5601: error: Cannot link $cf_nculib_root library" >&5
- echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -5773,7 +5606,7 @@
- fi
-
- if test -n "$cf_ncurses_LIBS" ; then
-- echo "$as_me:5776: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
-+ echo "$as_me:5609: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
- cf_ncurses_SAVE="$LIBS"
- for p in $cf_ncurses_LIBS ; do
-@@ -5783,7 +5616,7 @@
- fi
- done
- cat >conftest.$ac_ext <<_ACEOF
--#line 5786 "configure"
-+#line 5619 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -5795,23 +5628,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5798: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5631: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5801: \$? = $ac_status" >&5
-+ echo "$as_me:5634: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5804: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5637: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5807: \$? = $ac_status" >&5
-+ echo "$as_me:5640: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:5809: result: yes" >&5
-+ echo "$as_me:5642: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:5814: result: no" >&5
-+echo "$as_me:5647: result: no" >&5
- echo "${ECHO_T}no" >&6
- LIBS="$cf_ncurses_SAVE"
- fi
-@@ -5831,48 +5664,87 @@
- cf_ncuconfig_root=ncurses
-
- echo "Looking for ${cf_ncuconfig_root}-config"
--for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+
-+if test -n "$ac_tool_prefix"; then
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:5673: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$NCURSES_CONFIG"; then
-+ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-+echo "$as_me:5688: found $ac_dir/$ac_word" >&5
-+break
-+done
-+
-+fi
-+fi
-+NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
-+if test -n "$NCURSES_CONFIG"; then
-+ echo "$as_me:5696: result: $NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$NCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:5699: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ test -n "$NCURSES_CONFIG" && break
-+ done
-+fi
-+if test -z "$NCURSES_CONFIG"; then
-+ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:5838: checking for $ac_word" >&5
-+echo "$as_me:5712: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
-+if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- case $NCURSES_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-+ if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
-+else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:5855: found $ac_dir/$ac_word" >&5
-- break
--fi
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-+echo "$as_me:5727: found $ac_dir/$ac_word" >&5
-+break
- done
-
-- ;;
--esac
- fi
--NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
--
--if test -n "$NCURSES_CONFIG"; then
-- echo "$as_me:5866: result: $NCURSES_CONFIG" >&5
--echo "${ECHO_T}$NCURSES_CONFIG" >&6
-+fi
-+ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
-+if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ echo "$as_me:5735: result: $ac_ct_NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
- else
-- echo "$as_me:5869: result: no" >&5
-+ echo "$as_me:5738: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-- test -n "$NCURSES_CONFIG" && break
-+ test -n "$ac_ct_NCURSES_CONFIG" && break
- done
--test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
-+test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
-+
-+ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
-+fi
-
- if test "$NCURSES_CONFIG" != none ; then
-
-@@ -5881,7 +5753,7 @@
-
- # even with config script, some packages use no-override for curses.h
-
--echo "$as_me:5884: checking if we have identified curses headers" >&5
-+echo "$as_me:5756: checking if we have identified curses headers" >&5
- echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
- if test "${cf_cv_ncurses_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5889,13 +5761,13 @@
-
- cf_cv_ncurses_header=none
- for cf_header in \
-- ncurses/curses.h \
-- ncurses/ncurses.h \
-- curses.h \
-- ncurses.h
-+ ncurses/ncurses.h \
-+ ncurses/curses.h \
-+ ncurses.h \
-+ curses.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 5898 "configure"
-+#line 5770 "configure"
- #include "confdefs.h"
- #include <${cf_header}>
- int
-@@ -5907,16 +5779,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5910: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5782: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5913: \$? = $ac_status" >&5
-+ echo "$as_me:5785: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5916: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5788: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5919: \$? = $ac_status" >&5
-+ echo "$as_me:5791: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_header=$cf_header; break
- else
-@@ -5927,11 +5799,11 @@
- done
-
- fi
--echo "$as_me:5930: result: $cf_cv_ncurses_header" >&5
-+echo "$as_me:5802: result: $cf_cv_ncurses_header" >&5
- echo "${ECHO_T}$cf_cv_ncurses_header" >&6
-
- if test "$cf_cv_ncurses_header" = none ; then
-- { { echo "$as_me:5934: error: No curses header-files found" >&5
-+ { { echo "$as_me:5806: error: No curses header-files found" >&5
- echo "$as_me: error: No curses header-files found" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -5941,23 +5813,23 @@
- for ac_header in $cf_cv_ncurses_header
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:5944: checking for $ac_header" >&5
-+echo "$as_me:5816: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 5950 "configure"
-+#line 5822 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:5954: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:5826: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:5960: \$? = $ac_status" >&5
-+ echo "$as_me:5832: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -5976,7 +5848,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:5979: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:5851: result: `eval echo '${'$as_ac_Header'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-@@ -6029,7 +5901,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6032 "configure"
-+#line 5904 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6041,16 +5913,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6044: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5916: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6047: \$? = $ac_status" >&5
-+ echo "$as_me:5919: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6050: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5922: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6053: \$? = $ac_status" >&5
-+ echo "$as_me:5925: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -6067,7 +5939,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:6070: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:5942: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -6084,7 +5956,7 @@
-
- }
-
--echo "$as_me:6087: checking for $cf_ncuhdr_root header in include-path" >&5
-+echo "$as_me:5959: checking for $cf_ncuhdr_root header in include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6096,7 +5968,7 @@
- do
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 6099 "configure"
-+#line 5971 "configure"
- #include "confdefs.h"
-
- #include <$cf_header>
-@@ -6120,16 +5992,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6123: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5995: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6126: \$? = $ac_status" >&5
-+ echo "$as_me:5998: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6129: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6001: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6132: \$? = $ac_status" >&5
-+ echo "$as_me:6004: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_h=$cf_header
-
-@@ -6144,14 +6016,14 @@
- done
-
- fi
--echo "$as_me:6147: result: $cf_cv_ncurses_h" >&5
-+echo "$as_me:6019: result: $cf_cv_ncurses_h" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h" >&6
-
- if test "$cf_cv_ncurses_h" != no ; then
- cf_cv_ncurses_header=$cf_cv_ncurses_h
- else
-
--echo "$as_me:6154: checking for $cf_ncuhdr_root include-path" >&5
-+echo "$as_me:6026: checking for $cf_ncuhdr_root include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h2+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6291,7 +6163,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6294 "configure"
-+#line 6166 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6303,16 +6175,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6306: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6178: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6309: \$? = $ac_status" >&5
-+ echo "$as_me:6181: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6312: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6184: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6315: \$? = $ac_status" >&5
-+ echo "$as_me:6187: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -6329,7 +6201,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:6332: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:6204: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -6350,7 +6222,7 @@
- do
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 6353 "configure"
-+#line 6225 "configure"
- #include "confdefs.h"
-
- #include <$cf_header>
-@@ -6374,16 +6246,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6377: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6249: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6380: \$? = $ac_status" >&5
-+ echo "$as_me:6252: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6383: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6255: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6386: \$? = $ac_status" >&5
-+ echo "$as_me:6258: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_h2=$cf_header
-
-@@ -6404,12 +6276,12 @@
- CPPFLAGS="$cf_save2_CPPFLAGS"
- test "$cf_cv_ncurses_h2" != no && break
- done
-- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6407: error: not found" >&5
-+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6279: error: not found" >&5
- echo "$as_me: error: not found" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:6412: result: $cf_cv_ncurses_h2" >&5
-+echo "$as_me:6284: result: $cf_cv_ncurses_h2" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
-
- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-@@ -6442,7 +6314,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6445 "configure"
-+#line 6317 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6454,16 +6326,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6457: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6329: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6460: \$? = $ac_status" >&5
-+ echo "$as_me:6332: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6463: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6335: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6466: \$? = $ac_status" >&5
-+ echo "$as_me:6338: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -6480,7 +6352,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:6483: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:6355: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -6501,7 +6373,8 @@
-
- case $cf_cv_ncurses_header in # (vi
- *ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_H 1
- EOF
-
-@@ -6510,20 +6383,22 @@
-
- case $cf_cv_ncurses_header in # (vi
- ncurses/curses.h|ncurses/ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_NCURSES_H 1
- EOF
-
- ;;
- ncursesw/curses.h|ncursesw/ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSESW_NCURSES_H 1
- EOF
-
- ;;
- esac
-
--echo "$as_me:6526: checking for terminfo header" >&5
-+echo "$as_me:6401: checking for terminfo header" >&5
- echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6541,7 +6416,7 @@
- for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 6544 "configure"
-+#line 6419 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -6556,16 +6431,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6559: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6434: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6562: \$? = $ac_status" >&5
-+ echo "$as_me:6437: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6565: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6440: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6568: \$? = $ac_status" >&5
-+ echo "$as_me:6443: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_term_header="$cf_test"
-@@ -6581,14 +6456,15 @@
- done
-
- fi
--echo "$as_me:6584: result: $cf_cv_term_header" >&5
-+echo "$as_me:6459: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
-
- # Set definitions to allow ifdef'ing to accommodate subdirectories
-
- case $cf_cv_term_header in # (vi
- *term.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_TERM_H 1
- EOF
-
-@@ -6597,13 +6473,15 @@
-
- case $cf_cv_term_header in # (vi
- ncurses/term.h) #(vi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_TERM_H 1
- EOF
-
- ;;
- ncursesw/term.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSESW_TERM_H 1
- EOF
-
-@@ -6611,11 +6489,12 @@
- esac
-
- # some applications need this, but should check for NCURSES_VERSION
-+
- cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
-
--echo "$as_me:6618: checking for ncurses version" >&5
-+echo "$as_me:6497: checking for ncurses version" >&5
- echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
- if test "${cf_cv_ncurses_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6641,10 +6520,10 @@
- #endif
- EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-- { (eval echo "$as_me:6644: \"$cf_try\"") >&5
-+ { (eval echo "$as_me:6523: \"$cf_try\"") >&5
- (eval $cf_try) 2>&5
- ac_status=$?
-- echo "$as_me:6647: \$? = $ac_status" >&5
-+ echo "$as_me:6526: \$? = $ac_status" >&5
- (exit $ac_status); }
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-@@ -6654,7 +6533,7 @@
-
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 6657 "configure"
-+#line 6536 "configure"
- #include "confdefs.h"
-
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -6679,15 +6558,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:6682: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6561: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6685: \$? = $ac_status" >&5
-+ echo "$as_me:6564: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:6687: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6566: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6690: \$? = $ac_status" >&5
-+ echo "$as_me:6569: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_ncurses_version=`cat $cf_tempfile`
-@@ -6701,9 +6580,10 @@
- rm -f $cf_tempfile
-
- fi
--echo "$as_me:6704: result: $cf_cv_ncurses_version" >&5
-+echo "$as_me:6583: result: $cf_cv_ncurses_version" >&5
- echo "${ECHO_T}$cf_cv_ncurses_version" >&6
--test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
-+test "$cf_cv_ncurses_version" = no ||
-+cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
-
-@@ -6713,7 +6593,7 @@
- # to link gpm.
- cf_ncurses_LIBS=""
- cf_ncurses_SAVE="$LIBS"
--echo "$as_me:6716: checking for Gpm_Open in -lgpm" >&5
-+echo "$as_me:6596: checking for Gpm_Open in -lgpm" >&5
- echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6721,7 +6601,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6724 "configure"
-+#line 6604 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -6740,16 +6620,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6743: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6623: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6746: \$? = $ac_status" >&5
-+ echo "$as_me:6626: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6749: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6629: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6752: \$? = $ac_status" >&5
-+ echo "$as_me:6632: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_Gpm_Open=yes
- else
-@@ -6760,10 +6640,10 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6763: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "$as_me:6643: result: $ac_cv_lib_gpm_Gpm_Open" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
- if test $ac_cv_lib_gpm_Gpm_Open = yes; then
-- echo "$as_me:6766: checking for initscr in -lgpm" >&5
-+ echo "$as_me:6646: checking for initscr in -lgpm" >&5
- echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6771,7 +6651,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6774 "configure"
-+#line 6654 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -6790,16 +6670,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6793: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6673: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6796: \$? = $ac_status" >&5
-+ echo "$as_me:6676: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6799: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6679: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6802: \$? = $ac_status" >&5
-+ echo "$as_me:6682: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_initscr=yes
- else
-@@ -6810,7 +6690,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6813: result: $ac_cv_lib_gpm_initscr" >&5
-+echo "$as_me:6693: result: $ac_cv_lib_gpm_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
- if test $ac_cv_lib_gpm_initscr = yes; then
- LIBS="$cf_ncurses_SAVE"
-@@ -6825,7 +6705,7 @@
- # This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
- if test "$cf_nculib_root" = ncurses ; then
-- echo "$as_me:6828: checking for tgoto in -lmytinfo" >&5
-+ echo "$as_me:6708: checking for tgoto in -lmytinfo" >&5
- echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
- if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -6833,7 +6713,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmytinfo $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6836 "configure"
-+#line 6716 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -6852,16 +6732,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6855: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6735: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6858: \$? = $ac_status" >&5
-+ echo "$as_me:6738: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6861: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6741: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6864: \$? = $ac_status" >&5
-+ echo "$as_me:6744: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_mytinfo_tgoto=yes
- else
-@@ -6872,7 +6752,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6875: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "$as_me:6755: result: $ac_cv_lib_mytinfo_tgoto" >&5
- echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
- if test $ac_cv_lib_mytinfo_tgoto = yes; then
- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-@@ -6891,13 +6771,13 @@
-
- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- cf_libdir=""
-- echo "$as_me:6894: checking for initscr" >&5
-+ echo "$as_me:6774: checking for initscr" >&5
- echo $ECHO_N "checking for initscr... $ECHO_C" >&6
- if test "${ac_cv_func_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 6900 "configure"
-+#line 6780 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char initscr (); below. */
-@@ -6920,7 +6800,7 @@
- #if defined (__stub_initscr) || defined (__stub___initscr)
- choke me
- #else
--f = initscr;
-+f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -6928,16 +6808,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6931: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6811: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6934: \$? = $ac_status" >&5
-+ echo "$as_me:6814: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6937: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6817: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6940: \$? = $ac_status" >&5
-+ echo "$as_me:6820: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_initscr=yes
- else
-@@ -6947,18 +6827,18 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:6950: result: $ac_cv_func_initscr" >&5
-+echo "$as_me:6830: result: $ac_cv_func_initscr" >&5
- echo "${ECHO_T}$ac_cv_func_initscr" >&6
- if test $ac_cv_func_initscr = yes; then
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- else
-
- cf_save_LIBS="$LIBS"
-- echo "$as_me:6957: checking for initscr in -l$cf_nculib_root" >&5
-+ echo "$as_me:6837: checking for initscr in -l$cf_nculib_root" >&5
- echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
- LIBS="-l$cf_nculib_root $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6961 "configure"
-+#line 6841 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -6970,25 +6850,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6973: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6853: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6976: \$? = $ac_status" >&5
-+ echo "$as_me:6856: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6979: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6859: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6982: \$? = $ac_status" >&5
-+ echo "$as_me:6862: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:6984: result: yes" >&5
-+ echo "$as_me:6864: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:6991: result: no" >&5
-+echo "$as_me:6871: result: no" >&5
- echo "${ECHO_T}no" >&6
-
- cf_search=
-@@ -7078,11 +6958,11 @@
-
- for cf_libdir in $cf_search
- do
-- echo "$as_me:7081: checking for -l$cf_nculib_root in $cf_libdir" >&5
-+ echo "$as_me:6961: checking for -l$cf_nculib_root in $cf_libdir" >&5
- echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7085 "configure"
-+#line 6965 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -7094,25 +6974,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7097: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6977: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7100: \$? = $ac_status" >&5
-+ echo "$as_me:6980: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7103: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6983: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7106: \$? = $ac_status" >&5
-+ echo "$as_me:6986: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:7108: result: yes" >&5
-+ echo "$as_me:6988: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7115: result: no" >&5
-+echo "$as_me:6995: result: no" >&5
- echo "${ECHO_T}no" >&6
- LIBS="$cf_save_LIBS"
- fi
-@@ -7127,7 +7007,7 @@
- eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
- if test $cf_found_library = no ; then
-- { { echo "$as_me:7130: error: Cannot link $cf_nculib_root library" >&5
-+ { { echo "$as_me:7010: error: Cannot link $cf_nculib_root library" >&5
- echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -7135,7 +7015,7 @@
- fi
-
- if test -n "$cf_ncurses_LIBS" ; then
-- echo "$as_me:7138: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
-+ echo "$as_me:7018: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
- cf_ncurses_SAVE="$LIBS"
- for p in $cf_ncurses_LIBS ; do
-@@ -7145,7 +7025,7 @@
- fi
- done
- cat >conftest.$ac_ext <<_ACEOF
--#line 7148 "configure"
-+#line 7028 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -7157,23 +7037,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7160: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7040: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7163: \$? = $ac_status" >&5
-+ echo "$as_me:7043: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7166: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7046: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7169: \$? = $ac_status" >&5
-+ echo "$as_me:7049: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:7171: result: yes" >&5
-+ echo "$as_me:7051: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7176: result: no" >&5
-+echo "$as_me:7056: result: no" >&5
- echo "${ECHO_T}no" >&6
- LIBS="$cf_ncurses_SAVE"
- fi
-@@ -7210,10 +7090,10 @@
- AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
- CF_EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
-- { (eval echo "$as_me:7213: \"$cf_try\"") >&5
-+ { (eval echo "$as_me:7093: \"$cf_try\"") >&5
- (eval $cf_try) 2>&5
- ac_status=$?
-- echo "$as_me:7216: \$? = $ac_status" >&5
-+ echo "$as_me:7096: \$? = $ac_status" >&5
- (exit $ac_status); }
- if test -f conftest.out ; then
- cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[ ][ ]*//"`
-@@ -7231,9 +7111,25 @@
-
- cf_cv_timestamp=`date`
-
--echo "$as_me:7234: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
-+echo "$as_me:7114: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
- echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
-
-+echo "$as_me:7117: checking if you want to have a library-prefix" >&5
-+echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6
-+
-+# Check whether --with-lib-prefix or --without-lib-prefix was given.
-+if test "${with_lib_prefix+set}" = set; then
-+ withval="$with_lib_prefix"
-+ with_lib_prefix=$withval
-+else
-+ with_lib_prefix=auto
-+fi;
-+echo "$as_me:7127: result: $with_lib_prefix" >&5
-+echo "${ECHO_T}$with_lib_prefix" >&6
-+
-+if test $with_lib_prefix = auto
-+then
-+
- case $cf_cv_system_name in #(vi
- OS/2*|os2*) #(vi
- LIB_PREFIX=''
-@@ -7243,7 +7139,12 @@
- esac
- cf_prefix=$LIB_PREFIX
-
--LIB_PREFIX=$cf_prefix
-+elif test $with_lib_prefix = no
-+then
-+ LIB_PREFIX=
-+else
-+ LIB_PREFIX=$with_lib_prefix
-+fi
-
- LIB_SUFFIX=
-
-@@ -7254,7 +7155,7 @@
- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
- fi
-
--echo "$as_me:7257: checking for default loader flags" >&5
-+echo "$as_me:7158: checking for default loader flags" >&5
- echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
- case $DFT_LWR_MODEL in
- normal) LD_MODEL='' ;;
-@@ -7262,11 +7163,11 @@
- profile) LD_MODEL='-pg';;
- shared) LD_MODEL='' ;;
- esac
--echo "$as_me:7265: result: $LD_MODEL" >&5
-+echo "$as_me:7166: result: $LD_MODEL" >&5
- echo "${ECHO_T}$LD_MODEL" >&6
-
- LD_RPATH_OPT=
--echo "$as_me:7269: checking for an rpath option" >&5
-+echo "$as_me:7170: checking for an rpath option" >&5
- echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
- case $cf_cv_system_name in #(vi
- irix*) #(vi
-@@ -7279,10 +7180,10 @@
- linux*|gnu*|k*bsd*-gnu) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--openbsd[2-9].*) #(vi
-+openbsd[2-9].*|mirbsd*) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--freebsd*) #(vi
-+dragonfly*|freebsd*) #(vi
- LD_RPATH_OPT="-rpath "
- ;;
- netbsd*) #(vi
-@@ -7297,17 +7198,17 @@
- *)
- ;;
- esac
--echo "$as_me:7300: result: $LD_RPATH_OPT" >&5
-+echo "$as_me:7201: result: $LD_RPATH_OPT" >&5
- echo "${ECHO_T}$LD_RPATH_OPT" >&6
-
- case "x$LD_RPATH_OPT" in #(vi
- x-R*)
-- echo "$as_me:7305: checking if we need a space after rpath option" >&5
-+ echo "$as_me:7206: checking if we need a space after rpath option" >&5
- echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
- cf_save_LIBS="$LIBS"
- LIBS="${LD_RPATH_OPT}$libdir $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7310 "configure"
-+#line 7211 "configure"
- #include "confdefs.h"
-
- int
-@@ -7319,16 +7220,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7322: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7223: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7325: \$? = $ac_status" >&5
-+ echo "$as_me:7226: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7328: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7229: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7331: \$? = $ac_status" >&5
-+ echo "$as_me:7232: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_rpath_space=no
- else
-@@ -7338,7 +7239,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save_LIBS"
-- echo "$as_me:7341: result: $cf_rpath_space" >&5
-+ echo "$as_me:7242: result: $cf_rpath_space" >&5
- echo "${ECHO_T}$cf_rpath_space" >&6
- test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
- ;;
-@@ -7353,7 +7254,7 @@
- cf_ld_rpath_opt=
- test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
-
-- echo "$as_me:7356: checking if release/abi version should be used for shared libs" >&5
-+ echo "$as_me:7257: checking if release/abi version should be used for shared libs" >&5
- echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
-
- # Check whether --with-shlib-version or --without-shlib-version was given.
-@@ -7368,7 +7269,7 @@
- cf_cv_shlib_version=$withval
- ;;
- *)
-- { { echo "$as_me:7371: error: option value must be one of: rel, abi, auto or no" >&5
-+ { { echo "$as_me:7272: error: option value must be one of: rel, abi, auto or no" >&5
- echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-@@ -7377,23 +7278,24 @@
- else
- cf_cv_shlib_version=auto
- fi;
-- echo "$as_me:7380: result: $cf_cv_shlib_version" >&5
-+ echo "$as_me:7281: result: $cf_cv_shlib_version" >&5
- echo "${ECHO_T}$cf_cv_shlib_version" >&6
-
- cf_cv_rm_so_locs=no
-+ cf_try_cflags=
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
- if test "$GCC" = yes
- then
-- echo "$as_me:7389: checking which $CC option to use" >&5
-+ echo "$as_me:7291: checking which $CC option to use" >&5
- echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
- cf_save_CFLAGS="$CFLAGS"
- for CC_SHARED_OPTS in -fPIC -fpic ''
- do
- CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7396 "configure"
-+#line 7298 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -7405,16 +7307,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7408: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7310: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7411: \$? = $ac_status" >&5
-+ echo "$as_me:7313: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7414: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7316: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7417: \$? = $ac_status" >&5
-+ echo "$as_me:7319: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -7423,7 +7325,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- done
-- echo "$as_me:7426: result: $CC_SHARED_OPTS" >&5
-+ echo "$as_me:7328: result: $CC_SHARED_OPTS" >&5
- echo "${ECHO_T}$CC_SHARED_OPTS" >&6
- CFLAGS="$cf_save_CFLAGS"
- fi
-@@ -7431,10 +7333,14 @@
- cf_cv_shlib_version_infix=no
-
- case $cf_cv_system_name in #(vi
-- aix[56]*) #(vi
-+ aix4.3-9*|aix[5-7]*) #(vi
- if test "$GCC" = yes; then
- CC_SHARED_OPTS=
-- MK_SHARED_LIB='$(CC) -shared'
-+ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
-+ else
-+ # CC_SHARED_OPTS='-qpic=large -G'
-+ # perhaps "-bM:SRE -bnoentry -bexpall"
-+ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
- fi
- ;;
- beos*) #(vi
-@@ -7460,12 +7366,12 @@
- chmod +x mk_shared_lib.sh
- ;;
- darwin*) #(vi
-- EXTRA_CFLAGS="-no-cpp-precomp"
-+ cf_try_cflags="no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
- cf_cv_shlib_version_infix=yes
-- echo "$as_me:7468: checking if ld -search_paths_first works" >&5
-+ echo "$as_me:7374: checking if ld -search_paths_first works" >&5
- echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
- if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -7474,7 +7380,7 @@
- cf_save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7477 "configure"
-+#line 7383 "configure"
- #include "confdefs.h"
-
- int
-@@ -7486,16 +7392,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7489: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7395: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7492: \$? = $ac_status" >&5
-+ echo "$as_me:7398: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7495: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7401: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7498: \$? = $ac_status" >&5
-+ echo "$as_me:7404: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ldflags_search_paths_first=yes
- else
-@@ -7506,12 +7412,20 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$cf_save_LDFLAGS
- fi
--echo "$as_me:7509: result: $cf_cv_ldflags_search_paths_first" >&5
-+echo "$as_me:7415: result: $cf_cv_ldflags_search_paths_first" >&5
- echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
- if test $cf_cv_ldflags_search_paths_first = yes; then
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- fi
- ;;
-+ hpux[7-8]*) #(vi
-+ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
-+ if test "$GCC" != yes; then
-+ CC_SHARED_OPTS='+Z'
-+ fi
-+ MK_SHARED_LIB='${LD} -b -o $@'
-+ INSTALL_LIB="-m 555"
-+ ;;
- hpux*) #(vi
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
-@@ -7525,9 +7439,19 @@
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
-+ interix*)
-+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-+ if test "$cf_cv_shlib_version" = rel; then
-+ cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}'
-+ else
-+ cf_shared_soname='`basename `'
-+ fi
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o '
-+ ;;
- irix*) #(vi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
-@@ -7544,7 +7468,7 @@
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-@@ -7556,13 +7480,34 @@
-
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
- ;;
-- openbsd[2-9].*) #(vi
-+ mingw*) #(vi
-+ cf_cv_shlib_version=mingw
-+ cf_cv_shlib_version_infix=mingw
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
-+ #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]'
-+ #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]'
-+ cat >mk_shared_lib.sh <<-CF_EOF
-+ #!/bin/sh
-+ SHARED_LIB=\$1
-+ IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\`
-+ shift
-+ cat <<-EOF
-+ Linking shared library
-+ ** SHARED_LIB \$SHARED_LIB
-+ ** IMPORT_LIB \$IMPORT_LIB
-+EOF
-+ exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
-+CF_EOF
-+ chmod +x mk_shared_lib.sh
-+ ;;
-+ openbsd[2-9].*|mirbsd*) #(vi
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
-
-@@ -7580,12 +7525,12 @@
- MK_SHARED_LIB='${LD} -Bshareable -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
-- freebsd*) #(vi
-+ dragonfly*|freebsd*) #(vi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
-- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-@@ -7602,7 +7547,7 @@
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
-@@ -7686,7 +7631,7 @@
- do
- CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7689 "configure"
-+#line 7634 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -7698,16 +7643,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7701: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7646: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7704: \$? = $ac_status" >&5
-+ echo "$as_me:7649: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7707: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7652: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7710: \$? = $ac_status" >&5
-+ echo "$as_me:7655: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -7744,22 +7689,63 @@
- test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
- ;;
- *)
-- { echo "$as_me:7747: WARNING: ignored --with-shlib-version" >&5
-+ { echo "$as_me:7692: WARNING: ignored --with-shlib-version" >&5
- echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
- ;;
- esac
- ;;
- esac
-
-- if test -n "$cf_ld_rpath_opt" ; then
-- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
-+ if test -n "$cf_try_cflags"
-+ then
-+cat > conftest.$ac_ext <<EOF
-+#line 7702 "${as_me:-configure}"
-+#include <stdio.h>
-+int main(int argc, char *argv[])
-+{
-+ printf("hello\n");
-+ return (argv[argc-1] == 0) ;
-+}
-+EOF
-+ cf_save_CFLAGS="$CFLAGS"
-+ for cf_opt in $cf_try_cflags
-+ do
-+ CFLAGS="$cf_save_CFLAGS -$cf_opt"
-+ echo "$as_me:7714: checking if CFLAGS option -$cf_opt works" >&5
-+echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6
-+ if { (eval echo "$as_me:7716: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7719: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ echo "$as_me:7721: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+ cf_save_CFLAGS="$CFLAGS"
-+ else
-+ echo "$as_me:7725: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+ fi
-+ done
-+ CFLAGS="$cf_save_CFLAGS"
- fi
-
-+ # RPATH_LIST is a colon-separated list of directories
-+ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
-+ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
-+
-+ test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6
-+
-+echo "${as_me:-configure}:7738: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
-+
-+ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
-+
-+echo "${as_me:-configure}:7742: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
-+
- # The test/sample programs in the original tree link using rpath option.
- # Make it optional for packagers.
- if test -n "$LOCAL_LDFLAGS"
- then
-- echo "$as_me:7762: checking if you want to link sample programs with rpath option" >&5
-+ echo "$as_me:7748: checking if you want to link sample programs with rpath option" >&5
- echo $ECHO_N "checking if you want to link sample programs with rpath option... $ECHO_C" >&6
-
- # Check whether --enable-rpath-link or --disable-rpath-link was given.
-@@ -7769,7 +7755,7 @@
- else
- with_rpath_link=yes
- fi;
-- echo "$as_me:7772: result: $with_rpath_link" >&5
-+ echo "$as_me:7758: result: $with_rpath_link" >&5
- echo "${ECHO_T}$with_rpath_link" >&6
- if test "$with_rpath_link" = no
- then
-@@ -7780,13 +7766,8 @@
-
- ###############################################################################
-
-- case $cf_cv_system_name in
-- os2*) PATH_SEPARATOR=';' ;;
-- *) PATH_SEPARATOR=':' ;;
-- esac
--
- ### use option --enable-broken-linker to force on use of broken-linker support
--echo "$as_me:7789: checking if you want broken-linker support code" >&5
-+echo "$as_me:7770: checking if you want broken-linker support code" >&5
- echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
-
- # Check whether --enable-broken_linker or --disable-broken_linker was given.
-@@ -7796,7 +7777,7 @@
- else
- with_broken_linker=${BROKEN_LINKER:-no}
- fi;
--echo "$as_me:7799: result: $with_broken_linker" >&5
-+echo "$as_me:7780: result: $with_broken_linker" >&5
- echo "${ECHO_T}$with_broken_linker" >&6
-
- BROKEN_LINKER=0
-@@ -7816,7 +7797,7 @@
- BROKEN_LINKER=1
- test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6
-
--echo "${as_me:-configure}:7819: testing cygwin linker is broken anyway ..." 1>&5
-+echo "${as_me:-configure}:7800: testing cygwin linker is broken anyway ..." 1>&5
-
- ;;
- esac
-@@ -7829,7 +7810,7 @@
- cf_xopen_source=
-
- case $host_os in #(vi
--aix[456]*) #(vi
-+aix[4-7]*) #(vi
- cf_xopen_source="-D_ALL_SOURCE"
- ;;
- cygwin) #(vi
-@@ -7840,6 +7821,7 @@
- ;;
- darwin*) #(vi
- cf_xopen_source="-D_DARWIN_C_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- freebsd*|dragonfly*) #(vi
- # 5.x headers associate
-@@ -7857,17 +7839,18 @@
- ;;
- irix[56].*) #(vi
- cf_xopen_source="-D_SGI_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- linux*|gnu*|mint*|k*bsd*-gnu) #(vi
-
--echo "$as_me:7863: checking if we must define _GNU_SOURCE" >&5
-+echo "$as_me:7846: checking if we must define _GNU_SOURCE" >&5
- echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_gnu_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 7870 "configure"
-+#line 7853 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7882,16 +7865,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7885: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7868: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7888: \$? = $ac_status" >&5
-+ echo "$as_me:7871: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7891: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7874: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7894: \$? = $ac_status" >&5
-+ echo "$as_me:7877: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gnu_source=no
- else
-@@ -7900,7 +7883,7 @@
- cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7903 "configure"
-+#line 7886 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7915,16 +7898,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7918: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7901: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7921: \$? = $ac_status" >&5
-+ echo "$as_me:7904: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7924: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7907: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7927: \$? = $ac_status" >&5
-+ echo "$as_me:7910: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gnu_source=no
- else
-@@ -7939,51 +7922,45 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:7942: result: $cf_cv_gnu_source" >&5
-+echo "$as_me:7925: result: $cf_cv_gnu_source" >&5
- echo "${ECHO_T}$cf_cv_gnu_source" >&6
- test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-
- ;;
- mirbsd*) #(vi
-- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
-- ;;
--netbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-- ;;
--openbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-- ;;
--osf[45]*) #(vi
-- cf_xopen_source="-D_OSF_SOURCE"
-- ;;
--nto-qnx*) #(vi
-- cf_xopen_source="-D_QNX_SOURCE"
-- ;;
--sco*) #(vi
-- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
-- ;;
--solaris2.1[0-9]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--solaris2.[1-9]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__"
-- ;;
--*)
-- echo "$as_me:7972: checking if we should define _XOPEN_SOURCE" >&5
--echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
--if test "${cf_cv_xopen_source+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
-+ cf_XOPEN_SOURCE=
-
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7979 "configure"
--#include "confdefs.h"
--#include <sys/types.h>
--int
--main ()
-+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-+
-+cf_save_CFLAGS="$CFLAGS"
-+cf_save_CPPFLAGS="$CPPFLAGS"
-+
-+cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+echo "$as_me:7947: checking if we should define _POSIX_C_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_posix_c_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+echo "${as_me:-configure}:7953: testing if the symbol is already defined go no further ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7956 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
- {
-
--#ifndef _XOPEN_SOURCE
-+#ifndef _POSIX_C_SOURCE
- make an error
- #endif
- ;
-@@ -7991,32 +7968,44 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7994: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7971: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7997: \$? = $ac_status" >&5
-+ echo "$as_me:7974: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8000: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7977: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8003: \$? = $ac_status" >&5
-+ echo "$as_me:7980: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_xopen_source=no
-+ cf_cv_posix_c_source=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_save="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 8012 "configure"
-+cf_want_posix_source=no
-+ case .$cf_POSIX_C_SOURCE in #(vi
-+ .[12]??*) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ ;;
-+ .2) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ cf_want_posix_source=yes
-+ ;;
-+ .*)
-+ cf_want_posix_source=yes
-+ ;;
-+ esac
-+ if test "$cf_want_posix_source" = yes ; then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8001 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
- main ()
- {
-
--#ifdef _XOPEN_SOURCE
-+#ifdef _POSIX_SOURCE
- make an error
- #endif
- ;
-@@ -8024,50 +8013,87 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8027: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8016: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8030: \$? = $ac_status" >&5
-+ echo "$as_me:8019: \$? = $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:8022: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8036: \$? = $ac_status" >&5
-+ echo "$as_me:8025: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_xopen_source=no
-+ :
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_xopen_source=$cf_XOPEN_SOURCE
-+cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS="$cf_save"
-+ fi
-+
-+echo "${as_me:-configure}:8036: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-+
-+echo "${as_me:-configure}:8041: testing if the second compile does not leave our definition intact error ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8044 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-
-+#ifndef _POSIX_C_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8059: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8062: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8065: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8068: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_posix_c_source=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-
- fi
--echo "$as_me:8051: result: $cf_cv_xopen_source" >&5
--echo "${ECHO_T}$cf_cv_xopen_source" >&6
-- if test "$cf_cv_xopen_source" != no ; then
--
--CFLAGS=`echo "$CFLAGS" | \
-- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+rm -f conftest.$ac_objext conftest.$ac_ext
-
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+fi
-+echo "$as_me:8084: result: $cf_cv_posix_c_source" >&5
-+echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-
-- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+if test "$cf_cv_posix_c_source" != no ; then
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS"
-
- cf_fix_cppflags=no
- cf_new_cflags=
- cf_new_cppflags=
- cf_new_extra_cppflags=
-
--for cf_add_cflags in $cf_temp_xopen_source
-+for cf_add_cflags in $cf_cv_posix_c_source
- do
- case $cf_fix_cppflags in
- no)
-@@ -8140,38 +8166,550 @@
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-- fi
-+fi
-
--cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-+ ;;
-+netbsd*) #(vi
-+ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ ;;
-+openbsd[4-9]*) #(vi
-+ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
-+ cf_xopen_source="-D_BSD_SOURCE"
-+ cf_XOPEN_SOURCE=600
-+ ;;
-+openbsd*) #(vi
-+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-+ ;;
-+osf[45]*) #(vi
-+ cf_xopen_source="-D_OSF_SOURCE"
-+ ;;
-+nto-qnx*) #(vi
-+ cf_xopen_source="-D_QNX_SOURCE"
-+ ;;
-+sco*) #(vi
-+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
-+ ;;
-+solaris2.*) #(vi
-+ cf_xopen_source="-D__EXTENSIONS__"
-+ ;;
-+*)
-
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
-+echo "$as_me:8197: checking if we should define _XOPEN_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_xopen_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
--cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
-- sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8204 "configure"
-+#include "confdefs.h"
-
--cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
-- sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-
--echo "$as_me:8158: checking if we should define _POSIX_C_SOURCE" >&5
--echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
--if test "${cf_cv_posix_c_source+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
-+int
-+main ()
-+{
-+
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8223: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8226: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8229: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8232: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8241 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8260: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8263: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8266: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8269: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
- else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_xopen_source=$cf_XOPEN_SOURCE
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS="$cf_save"
-+
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:8284: result: $cf_cv_xopen_source" >&5
-+echo "${ECHO_T}$cf_cv_xopen_source" >&6
-+
-+if test "$cf_cv_xopen_source" != no ; then
-+
-+CFLAGS=`echo "$CFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_temp_xopen_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+fi
-+
-+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-+
-+cf_save_CFLAGS="$CFLAGS"
-+cf_save_CPPFLAGS="$CPPFLAGS"
-+
-+cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+echo "$as_me:8392: checking if we should define _POSIX_C_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_posix_c_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+echo "${as_me:-configure}:8398: testing if the symbol is already defined go no further ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8401 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-+
-+#ifndef _POSIX_C_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8416: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8419: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8422: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8425: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_posix_c_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_want_posix_source=no
-+ case .$cf_POSIX_C_SOURCE in #(vi
-+ .[12]??*) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ ;;
-+ .2) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ cf_want_posix_source=yes
-+ ;;
-+ .*)
-+ cf_want_posix_source=yes
-+ ;;
-+ esac
-+ if test "$cf_want_posix_source" = yes ; then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8446 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-+
-+#ifdef _POSIX_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8461: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8464: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8467: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8470: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ fi
-+
-+echo "${as_me:-configure}:8481: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-+
-+echo "${as_me:-configure}:8486: testing if the second compile does not leave our definition intact error ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8489 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-+
-+#ifndef _POSIX_C_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8504: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8507: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8510: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8513: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_posix_c_source=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-+
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:8529: result: $cf_cv_posix_c_source" >&5
-+echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-+
-+if test "$cf_cv_posix_c_source" != no ; then
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS"
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_cv_posix_c_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+fi
-+
-+ ;;
-+esac
-+
-+if test -n "$cf_xopen_source" ; then
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_xopen_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-
--echo "${as_me:-configure}:8164: testing if the symbol is already defined go no further ..." 1>&5
-+fi
-
-+if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
-+ echo "$as_me:8702: checking if _XOPEN_SOURCE really is set" >&5
-+echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 8167 "configure"
-+#line 8705 "configure"
- #include "confdefs.h"
--#include <sys/types.h>
-+#include <stdlib.h>
- int
- main ()
- {
-
--#ifndef _POSIX_C_SOURCE
-+#ifndef _XOPEN_SOURCE
- make an error
- #endif
- ;
-@@ -8179,44 +8717,37 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8182: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8720: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8185: \$? = $ac_status" >&5
-+ echo "$as_me:8723: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8188: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8726: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8191: \$? = $ac_status" >&5
-+ echo "$as_me:8729: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_posix_c_source=no
-+ cf_XOPEN_SOURCE_set=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_want_posix_source=no
-- case .$cf_POSIX_C_SOURCE in #(vi
-- .[12]??*) #(vi
-- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-- ;;
-- .2) #(vi
-- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-- cf_want_posix_source=yes
-- ;;
-- .*)
-- cf_want_posix_source=yes
-- ;;
-- esac
-- if test "$cf_want_posix_source" = yes ; then
-+cf_XOPEN_SOURCE_set=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ echo "$as_me:8738: result: $cf_XOPEN_SOURCE_set" >&5
-+echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
-+ if test $cf_XOPEN_SOURCE_set = yes
-+ then
- cat >conftest.$ac_ext <<_ACEOF
--#line 8212 "configure"
-+#line 8743 "configure"
- #include "confdefs.h"
--#include <sys/types.h>
-+#include <stdlib.h>
- int
- main ()
- {
-
--#ifdef _POSIX_SOURCE
-+#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
- make an error
- #endif
- ;
-@@ -8224,42 +8755,87 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8227: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8758: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8230: \$? = $ac_status" >&5
-+ echo "$as_me:8761: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8233: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8764: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8236: \$? = $ac_status" >&5
-+ echo "$as_me:8767: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ cf_XOPEN_SOURCE_set_ok=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
-+cf_XOPEN_SOURCE_set_ok=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- fi
-+ if test $cf_XOPEN_SOURCE_set_ok = no
-+ then
-+ { echo "$as_me:8778: WARNING: _XOPEN_SOURCE is lower than requested" >&5
-+echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
-+ fi
-+ else
-
--echo "${as_me:-configure}:8247: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+echo "$as_me:8783: checking if we should define _XOPEN_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_xopen_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
-- CFLAGS="$cf_trim_CFLAGS"
-- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8790 "configure"
-+#include "confdefs.h"
-
--echo "${as_me:-configure}:8252: testing if the second compile does not leave our definition intact error ..." 1>&5
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8809: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8812: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8815: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8818: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8255 "configure"
-+#line 8827 "configure"
- #include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
- #include <sys/types.h>
-+
- int
- main ()
- {
-
--#ifndef _POSIX_C_SOURCE
-+#ifdef _XOPEN_SOURCE
- make an error
- #endif
- ;
-@@ -8267,129 +8843,51 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8270: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8846: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8273: \$? = $ac_status" >&5
-+ echo "$as_me:8849: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8276: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8852: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8279: \$? = $ac_status" >&5
-+ echo "$as_me:8855: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ cf_cv_xopen_source=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_posix_c_source=no
-+cf_cv_xopen_source=$cf_XOPEN_SOURCE
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$cf_save_CFLAGS"
-- CPPFLAGS="$cf_save_CPPFLAGS"
-+ CPPFLAGS="$cf_save"
-
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:8295: result: $cf_cv_posix_c_source" >&5
--echo "${ECHO_T}$cf_cv_posix_c_source" >&6
--
--if test "$cf_cv_posix_c_source" != no ; then
-- CFLAGS="$cf_trim_CFLAGS"
-- CPPFLAGS="$cf_trim_CPPFLAGS"
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_cv_posix_c_source
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+echo "$as_me:8870: result: $cf_cv_xopen_source" >&5
-+echo "${ECHO_T}$cf_cv_xopen_source" >&6
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+if test "$cf_cv_xopen_source" != no ; then
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+CFLAGS=`echo "$CFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-
- CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
--fi
--
-- ;;
--esac
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-
--if test -n "$cf_xopen_source" ; then
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-
- cf_fix_cppflags=no
- cf_new_cflags=
- cf_new_cppflags=
- cf_new_extra_cppflags=
-
--for cf_add_cflags in $cf_xopen_source
-+for cf_add_cflags in $cf_temp_xopen_source
- do
- case $cf_fix_cppflags in
- no)
-@@ -8464,6 +8962,9 @@
-
- fi
-
-+ fi
-+fi
-+
- # Check whether --enable-largefile or --disable-largefile was given.
- if test "${enable_largefile+set}" = set; then
- enableval="$enable_largefile"
-@@ -8471,7 +8972,7 @@
- fi;
- if test "$enable_largefile" != no; then
-
-- echo "$as_me:8474: checking for special C compiler options needed for large files" >&5
-+ echo "$as_me:8975: checking for special C compiler options needed for large files" >&5
- echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_largefile_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8483,7 +8984,7 @@
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat >conftest.$ac_ext <<_ACEOF
--#line 8486 "configure"
-+#line 8987 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-@@ -8503,16 +9004,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8506: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9007: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8509: \$? = $ac_status" >&5
-+ echo "$as_me:9010: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8512: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9013: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8515: \$? = $ac_status" >&5
-+ echo "$as_me:9016: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -8522,16 +9023,16 @@
- rm -f conftest.$ac_objext
- CC="$CC -n32"
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8525: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9026: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8528: \$? = $ac_status" >&5
-+ echo "$as_me:9029: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8531: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9032: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8534: \$? = $ac_status" >&5
-+ echo "$as_me:9035: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_CC=' -n32'; break
- else
-@@ -8545,13 +9046,13 @@
- rm -f conftest.$ac_ext
- fi
- fi
--echo "$as_me:8548: result: $ac_cv_sys_largefile_CC" >&5
-+echo "$as_me:9049: result: $ac_cv_sys_largefile_CC" >&5
- echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
-- echo "$as_me:8554: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-+ echo "$as_me:9055: checking for _FILE_OFFSET_BITS value needed for large files" >&5
- echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_file_offset_bits+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8559,7 +9060,7 @@
- while :; do
- ac_cv_sys_file_offset_bits=no
- cat >conftest.$ac_ext <<_ACEOF
--#line 8562 "configure"
-+#line 9063 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-@@ -8579,16 +9080,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8582: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9083: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8585: \$? = $ac_status" >&5
-+ echo "$as_me:9086: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8588: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9089: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8591: \$? = $ac_status" >&5
-+ echo "$as_me:9092: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -8597,7 +9098,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 8600 "configure"
-+#line 9101 "configure"
- #include "confdefs.h"
- #define _FILE_OFFSET_BITS 64
- #include <sys/types.h>
-@@ -8618,16 +9119,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8621: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9122: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8624: \$? = $ac_status" >&5
-+ echo "$as_me:9125: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8627: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9128: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8630: \$? = $ac_status" >&5
-+ echo "$as_me:9131: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_file_offset_bits=64; break
- else
-@@ -8638,7 +9139,7 @@
- break
- done
- fi
--echo "$as_me:8641: result: $ac_cv_sys_file_offset_bits" >&5
-+echo "$as_me:9142: result: $ac_cv_sys_file_offset_bits" >&5
- echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
- if test "$ac_cv_sys_file_offset_bits" != no; then
-
-@@ -8648,7 +9149,7 @@
-
- fi
- rm -rf conftest*
-- echo "$as_me:8651: checking for _LARGE_FILES value needed for large files" >&5
-+ echo "$as_me:9152: checking for _LARGE_FILES value needed for large files" >&5
- echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_large_files+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8656,7 +9157,7 @@
- while :; do
- ac_cv_sys_large_files=no
- cat >conftest.$ac_ext <<_ACEOF
--#line 8659 "configure"
-+#line 9160 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-@@ -8676,16 +9177,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8679: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9180: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8682: \$? = $ac_status" >&5
-+ echo "$as_me:9183: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8685: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9186: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8688: \$? = $ac_status" >&5
-+ echo "$as_me:9189: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -8694,7 +9195,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 8697 "configure"
-+#line 9198 "configure"
- #include "confdefs.h"
- #define _LARGE_FILES 1
- #include <sys/types.h>
-@@ -8715,16 +9216,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8718: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9219: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8721: \$? = $ac_status" >&5
-+ echo "$as_me:9222: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8724: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9225: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8727: \$? = $ac_status" >&5
-+ echo "$as_me:9228: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_large_files=1; break
- else
-@@ -8735,7 +9236,7 @@
- break
- done
- fi
--echo "$as_me:8738: result: $ac_cv_sys_large_files" >&5
-+echo "$as_me:9239: result: $ac_cv_sys_large_files" >&5
- echo "${ECHO_T}$ac_cv_sys_large_files" >&6
- if test "$ac_cv_sys_large_files" != no; then
-
-@@ -8748,7 +9249,7 @@
- fi
-
- if test "$enable_largefile" != no ; then
-- echo "$as_me:8751: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-+ echo "$as_me:9252: checking for _LARGEFILE_SOURCE value needed for large files" >&5
- echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_largefile_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8756,7 +9257,7 @@
- while :; do
- ac_cv_sys_largefile_source=no
- cat >conftest.$ac_ext <<_ACEOF
--#line 8759 "configure"
-+#line 9260 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8768,16 +9269,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8771: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9272: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8774: \$? = $ac_status" >&5
-+ echo "$as_me:9275: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8777: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9278: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8780: \$? = $ac_status" >&5
-+ echo "$as_me:9281: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -8786,7 +9287,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 8789 "configure"
-+#line 9290 "configure"
- #include "confdefs.h"
- #define _LARGEFILE_SOURCE 1
- #include <stdio.h>
-@@ -8799,16 +9300,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8802: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9303: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8805: \$? = $ac_status" >&5
-+ echo "$as_me:9306: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8808: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9309: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8811: \$? = $ac_status" >&5
-+ echo "$as_me:9312: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_source=1; break
- else
-@@ -8819,7 +9320,7 @@
- break
- done
- fi
--echo "$as_me:8822: result: $ac_cv_sys_largefile_source" >&5
-+echo "$as_me:9323: result: $ac_cv_sys_largefile_source" >&5
- echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
- if test "$ac_cv_sys_largefile_source" != no; then
-
-@@ -8833,13 +9334,13 @@
- # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
- # in glibc 2.1.3, but that breaks too many other things.
- # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
--echo "$as_me:8836: checking for fseeko" >&5
-+echo "$as_me:9337: checking for fseeko" >&5
- echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
- if test "${ac_cv_func_fseeko+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 8842 "configure"
-+#line 9343 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8851,16 +9352,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8854: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9355: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8857: \$? = $ac_status" >&5
-+ echo "$as_me:9358: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8860: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9361: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8863: \$? = $ac_status" >&5
-+ echo "$as_me:9364: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_fseeko=yes
- else
-@@ -8870,7 +9371,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:8873: result: $ac_cv_func_fseeko" >&5
-+echo "$as_me:9374: result: $ac_cv_func_fseeko" >&5
- echo "${ECHO_T}$ac_cv_func_fseeko" >&6
- if test $ac_cv_func_fseeko = yes; then
-
-@@ -8891,14 +9392,14 @@
- test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
- test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
-
-- echo "$as_me:8894: checking whether to use struct dirent64" >&5
-+ echo "$as_me:9395: checking whether to use struct dirent64" >&5
- echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
- if test "${cf_cv_struct_dirent64+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8901 "configure"
-+#line 9402 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -8919,16 +9420,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8922: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9423: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8925: \$? = $ac_status" >&5
-+ echo "$as_me:9426: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8928: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9429: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8931: \$? = $ac_status" >&5
-+ echo "$as_me:9432: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_struct_dirent64=yes
- else
-@@ -8939,16 +9440,17 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:8942: result: $cf_cv_struct_dirent64" >&5
-+echo "$as_me:9443: result: $cf_cv_struct_dirent64" >&5
- echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
-- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
-+ test "$cf_cv_struct_dirent64" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_STRUCT_DIRENT64 1
- EOF
-
- fi
-
- ### Enable compiling-in rcs id's
--echo "$as_me:8951: checking if RCS identifiers should be compiled-in" >&5
-+echo "$as_me:9453: checking if RCS identifiers should be compiled-in" >&5
- echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
-
- # Check whether --with-rcs-ids or --without-rcs-ids was given.
-@@ -8958,16 +9460,17 @@
- else
- with_rcs_ids=no
- fi;
--echo "$as_me:8961: result: $with_rcs_ids" >&5
-+echo "$as_me:9463: result: $with_rcs_ids" >&5
- echo "${ECHO_T}$with_rcs_ids" >&6
--test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
-+test "$with_rcs_ids" = yes &&
-+cat >>confdefs.h <<\EOF
- #define USE_RCS_IDS 1
- EOF
-
- ###############################################################################
-
- ### Note that some functions (such as const) are normally disabled anyway.
--echo "$as_me:8970: checking if you want to build with function extensions" >&5
-+echo "$as_me:9473: checking if you want to build with function extensions" >&5
- echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
-
- # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
-@@ -8977,15 +9480,16 @@
- else
- with_ext_funcs=yes
- fi;
--echo "$as_me:8980: result: $with_ext_funcs" >&5
-+echo "$as_me:9483: result: $with_ext_funcs" >&5
- echo "${ECHO_T}$with_ext_funcs" >&6
- if test "$with_ext_funcs" = yes ; then
- NCURSES_EXT_FUNCS=1
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_USE_DEFAULT_COLORS 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define NCURSES_EXT_FUNCS 1
- EOF
-
-@@ -8994,7 +9498,7 @@
- fi
-
- ### use option --enable-const to turn on use of const beyond that in XSI.
--echo "$as_me:8997: checking for extended use of const keyword" >&5
-+echo "$as_me:9501: checking for extended use of const keyword" >&5
- echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
-
- # Check whether --enable-const or --disable-const was given.
-@@ -9004,7 +9508,7 @@
- else
- with_ext_const=no
- fi;
--echo "$as_me:9007: result: $with_ext_const" >&5
-+echo "$as_me:9511: result: $with_ext_const" >&5
- echo "${ECHO_T}$with_ext_const" >&6
- NCURSES_CONST='/*nothing*/'
- if test "$with_ext_const" = yes ; then
-@@ -9014,7 +9518,7 @@
- ###############################################################################
- # These options are relatively safe to experiment with.
-
--echo "$as_me:9017: checking if you want all development code" >&5
-+echo "$as_me:9521: checking if you want all development code" >&5
- echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
-
- # Check whether --with-develop or --without-develop was given.
-@@ -9024,7 +9528,7 @@
- else
- with_develop=no
- fi;
--echo "$as_me:9027: result: $with_develop" >&5
-+echo "$as_me:9531: result: $with_develop" >&5
- echo "${ECHO_T}$with_develop" >&6
-
- ###############################################################################
-@@ -9033,7 +9537,7 @@
- # This is still experimental (20080329), but should ultimately be moved to
- # the script-block --with-normal, etc.
-
--echo "$as_me:9036: checking if you want to link with the pthread library" >&5
-+echo "$as_me:9540: checking if you want to link with the pthread library" >&5
- echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
-
- # Check whether --with-pthread or --without-pthread was given.
-@@ -9043,27 +9547,27 @@
- else
- with_pthread=no
- fi;
--echo "$as_me:9046: result: $with_pthread" >&5
-+echo "$as_me:9550: result: $with_pthread" >&5
- echo "${ECHO_T}$with_pthread" >&6
-
- if test "$with_pthread" != no ; then
-- echo "$as_me:9050: checking for pthread.h" >&5
-+ echo "$as_me:9554: checking for pthread.h" >&5
- echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
- if test "${ac_cv_header_pthread_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 9056 "configure"
-+#line 9560 "configure"
- #include "confdefs.h"
- #include <pthread.h>
- _ACEOF
--if { (eval echo "$as_me:9060: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:9564: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:9066: \$? = $ac_status" >&5
-+ echo "$as_me:9570: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -9082,20 +9586,22 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:9085: result: $ac_cv_header_pthread_h" >&5
-+echo "$as_me:9589: result: $ac_cv_header_pthread_h" >&5
- echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
- if test $ac_cv_header_pthread_h = yes; then
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_PTHREADS_H 1
- EOF
-
-- echo "$as_me:9093: checking if we can link with the pthread library" >&5
--echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
-- cf_save_LIBS="$LIBS"
-- LIBS="-lpthread $LIBS"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 9098 "configure"
-+ for cf_lib_pthread in pthread c_r
-+ do
-+ echo "$as_me:9599: checking if we can link with the $cf_lib_pthread library" >&5
-+echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6
-+ cf_save_LIBS="$LIBS"
-+ LIBS="-l$cf_lib_pthread $LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9604 "configure"
- #include "confdefs.h"
-
- #include <pthread.h>
-@@ -9104,23 +9610,24 @@
- main ()
- {
-
-- int rc = pthread_create(0,0,0,0);
-+ int rc = pthread_create(0,0,0,0);
-+ int r2 = pthread_mutexattr_settype(0, 0);
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9114: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9621: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9117: \$? = $ac_status" >&5
-+ echo "$as_me:9624: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9120: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9627: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9123: \$? = $ac_status" >&5
-+ echo "$as_me:9630: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- with_pthread=yes
- else
-@@ -9129,27 +9636,30 @@
- with_pthread=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- LIBS="$cf_save_LIBS"
-- echo "$as_me:9133: result: $with_pthread" >&5
-+ LIBS="$cf_save_LIBS"
-+ echo "$as_me:9640: result: $with_pthread" >&5
- echo "${ECHO_T}$with_pthread" >&6
-+ test "$with_pthread" = yes && break
-+ done
-+
-+ if test "$with_pthread" = yes ; then
-+ LIBS="-l$cf_lib_pthread $LIBS"
-
-- if test "$with_pthread" = yes ; then
-- LIBS="-lpthread $LIBS"
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBPTHREADS 1
- EOF
-
-- else
-- { { echo "$as_me:9143: error: Cannot link with pthread library" >&5
-+ else
-+ { { echo "$as_me:9653: error: Cannot link with pthread library" >&5
- echo "$as_me: error: Cannot link with pthread library" >&2;}
- { (exit 1); exit 1; }; }
-- fi
-+ fi
-
- fi
-
- fi
-
--echo "$as_me:9152: checking if you want to use weak-symbols for pthreads" >&5
-+echo "$as_me:9662: checking if you want to use weak-symbols for pthreads" >&5
- echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
-
- # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
-@@ -9159,18 +9669,18 @@
- else
- use_weak_symbols=no
- fi;
--echo "$as_me:9162: result: $use_weak_symbols" >&5
-+echo "$as_me:9672: result: $use_weak_symbols" >&5
- echo "${ECHO_T}$use_weak_symbols" >&6
- if test "$use_weak_symbols" = yes ; then
-
--echo "$as_me:9166: checking if $CC supports weak symbols" >&5
-+echo "$as_me:9676: checking if $CC supports weak symbols" >&5
- echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
- if test "${cf_cv_weak_symbols+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 9173 "configure"
-+#line 9683 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -9196,16 +9706,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9199: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9709: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9202: \$? = $ac_status" >&5
-+ echo "$as_me:9712: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9205: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9715: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9208: \$? = $ac_status" >&5
-+ echo "$as_me:9718: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_weak_symbols=yes
- else
-@@ -9216,7 +9726,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:9219: result: $cf_cv_weak_symbols" >&5
-+echo "$as_me:9729: result: $cf_cv_weak_symbols" >&5
- echo "${ECHO_T}$cf_cv_weak_symbols" >&6
-
- else
-@@ -9224,7 +9734,8 @@
- fi
-
- if test $cf_cv_weak_symbols = yes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_WEAK_SYMBOLS 1
- EOF
-
-@@ -9232,7 +9743,8 @@
-
- PTHREAD=
- if test "$with_pthread" = "yes" ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_PTHREADS 1
- EOF
-
-@@ -9243,13 +9755,13 @@
- fi
-
- # OpenSUSE is installing ncurses6, using reentrant option.
--echo "$as_me:9246: checking for _nc_TABSIZE" >&5
-+echo "$as_me:9758: checking for _nc_TABSIZE" >&5
- echo $ECHO_N "checking for _nc_TABSIZE... $ECHO_C" >&6
- if test "${ac_cv_func__nc_TABSIZE+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 9252 "configure"
-+#line 9764 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char _nc_TABSIZE (); below. */
-@@ -9272,7 +9784,7 @@
- #if defined (__stub__nc_TABSIZE) || defined (__stub____nc_TABSIZE)
- choke me
- #else
--f = _nc_TABSIZE;
-+f = _nc_TABSIZE; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -9280,16 +9792,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9283: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9795: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9286: \$? = $ac_status" >&5
-+ echo "$as_me:9798: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9289: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9801: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9292: \$? = $ac_status" >&5
-+ echo "$as_me:9804: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func__nc_TABSIZE=yes
- else
-@@ -9299,7 +9811,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:9302: result: $ac_cv_func__nc_TABSIZE" >&5
-+echo "$as_me:9814: result: $ac_cv_func__nc_TABSIZE" >&5
- echo "${ECHO_T}$ac_cv_func__nc_TABSIZE" >&6
- if test $ac_cv_func__nc_TABSIZE = yes; then
- assume_reentrant=yes
-@@ -9311,7 +9823,7 @@
- # opaque outside of that, so there is no --enable-opaque option. We can use
- # this option without --with-pthreads, but this will be always set for
- # pthreads.
--echo "$as_me:9314: checking if you want experimental reentrant code" >&5
-+echo "$as_me:9826: checking if you want experimental reentrant code" >&5
- echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
-
- # Check whether --enable-reentrant or --disable-reentrant was given.
-@@ -9321,7 +9833,7 @@
- else
- with_reentrant=$assume_reentrant
- fi;
--echo "$as_me:9324: result: $with_reentrant" >&5
-+echo "$as_me:9836: result: $with_reentrant" >&5
- echo "${ECHO_T}$with_reentrant" >&6
- if test "$with_reentrant" = yes ; then
- cf_cv_enable_reentrant=1
-@@ -9333,7 +9845,8 @@
- elif test "$assume_reentrant" = no ; then
- LIB_SUFFIX="t${LIB_SUFFIX}"
- fi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_REENTRANT 1
- EOF
-
-@@ -9343,7 +9856,7 @@
-
- ### Allow using a different wrap-prefix
- if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
-- echo "$as_me:9346: checking for prefix used to wrap public variables" >&5
-+ echo "$as_me:9859: checking for prefix used to wrap public variables" >&5
- echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
-
- # Check whether --with-wrap-prefix or --without-wrap-prefix was given.
-@@ -9353,7 +9866,7 @@
- else
- NCURSES_WRAP_PREFIX=_nc_
- fi;
-- echo "$as_me:9356: result: $NCURSES_WRAP_PREFIX" >&5
-+ echo "$as_me:9869: result: $NCURSES_WRAP_PREFIX" >&5
- echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
- else
- NCURSES_WRAP_PREFIX=_nc_
-@@ -9366,26 +9879,46 @@
- ###############################################################################
-
- ### use option --disable-echo to suppress full display compiling commands
--echo "$as_me:9369: checking if you want to display full commands during build" >&5
--echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
-+
-+echo "$as_me:9883: checking if you want to see long compiling messages" >&5
-+echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
-
- # Check whether --enable-echo or --disable-echo was given.
- if test "${enable_echo+set}" = set; then
- enableval="$enable_echo"
-- with_echo=$enableval
-+ test "$enableval" != no && enableval=yes
-+ if test "$enableval" != "yes" ; then
-+
-+ ECHO_LT='--silent'
-+ ECHO_LD='@echo linking $@;'
-+ RULE_CC='@echo compiling $<'
-+ SHOW_CC='@echo compiling $@'
-+ ECHO_CC='@'
-+
-+ else
-+
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-+
-+ fi
- else
-- with_echo=yes
-+ enableval=yes
-+
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-+
- fi;
--if test "$with_echo" = yes; then
-- ECHO_LINK=
--else
-- ECHO_LINK='@ echo linking $@ ... ;'
--fi
--echo "$as_me:9384: result: $with_echo" >&5
--echo "${ECHO_T}$with_echo" >&6
-+echo "$as_me:9917: result: $enableval" >&5
-+echo "${ECHO_T}$enableval" >&6
-
- ### use option --enable-warnings to turn on all gcc warnings
--echo "$as_me:9388: checking if you want to see compiler warnings" >&5
-+echo "$as_me:9921: checking if you want to see compiler warnings" >&5
- echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
-
- # Check whether --enable-warnings or --disable-warnings was given.
-@@ -9393,7 +9926,7 @@
- enableval="$enable_warnings"
- with_warnings=$enableval
- fi;
--echo "$as_me:9396: result: $with_warnings" >&5
-+echo "$as_me:9929: result: $with_warnings" >&5
- echo "${ECHO_T}$with_warnings" >&6
-
- if test "x$with_warnings" = "xyes"; then
-@@ -9405,12 +9938,12 @@
- if test "$GCC" = yes ; then
- case $host_os in
- linux*|gnu*)
-- echo "$as_me:9408: checking if this is really Intel C compiler" >&5
-+ echo "$as_me:9941: checking if this is really Intel C compiler" >&5
- echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
- cf_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -no-gcc"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9413 "configure"
-+#line 9946 "configure"
- #include "confdefs.h"
-
- int
-@@ -9427,16 +9960,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9430: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9963: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9433: \$? = $ac_status" >&5
-+ echo "$as_me:9966: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9436: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9969: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9439: \$? = $ac_status" >&5
-+ echo "$as_me:9972: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- INTEL_COMPILER=yes
- cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-@@ -9447,14 +9980,63 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$cf_save_CFLAGS"
-- echo "$as_me:9450: result: $INTEL_COMPILER" >&5
-+ echo "$as_me:9983: result: $INTEL_COMPILER" >&5
- echo "${ECHO_T}$INTEL_COMPILER" >&6
- ;;
- esac
- fi
-
-+CLANG_COMPILER=no
-+
-+if test "$GCC" = yes ; then
-+ echo "$as_me:9992: checking if this is really Clang C compiler" >&5
-+echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
-+ cf_save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS -Qunused-arguments"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9997 "configure"
-+#include "confdefs.h"
-+
-+int
-+main ()
-+{
-+
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:10014: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:10017: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:10020: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:10023: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ CLANG_COMPILER=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ echo "$as_me:10034: result: $CLANG_COMPILER" >&5
-+echo "${ECHO_T}$CLANG_COMPILER" >&6
-+fi
-+
- cat > conftest.$ac_ext <<EOF
--#line 9457 "${as_me:-configure}"
-+#line 10039 "${as_me:-configure}"
- int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
- EOF
-
-@@ -9471,7 +10053,7 @@
- # remark #981: operands are evaluated in unspecified order
- # warning #279: controlling expression is constant
-
-- { echo "$as_me:9474: checking for $CC warning options..." >&5
-+ { echo "$as_me:10056: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
-@@ -9487,12 +10069,12 @@
- wd981
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-- if { (eval echo "$as_me:9490: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:10072: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9493: \$? = $ac_status" >&5
-+ echo "$as_me:10075: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:9495: result: ... -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:10077: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
-@@ -9501,7 +10083,7 @@
-
- elif test "$GCC" = yes
- then
-- { echo "$as_me:9504: checking for $CC warning options..." >&5
-+ { echo "$as_me:10086: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS=
-@@ -9521,12 +10103,12 @@
- Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-- if { (eval echo "$as_me:9524: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:10106: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9527: \$? = $ac_status" >&5
-+ echo "$as_me:10109: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:9529: result: ... -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:10111: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- case $cf_opt in #(vi
- Wcast-qual) #(vi
-@@ -9537,7 +10119,17 @@
- [34].*)
- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-
--echo "${as_me:-configure}:9540: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+echo "${as_me:-configure}:10122: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+
-+ continue;;
-+ esac
-+ ;;
-+ Wpointer-arith) #(vi
-+ case $GCC_VERSION in
-+ [12].*)
-+ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-+
-+echo "${as_me:-configure}:10132: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-
- continue;;
- esac
-@@ -9570,10 +10162,10 @@
- EOF
- if test "$GCC" = yes
- then
-- { echo "$as_me:9573: checking for $CC __attribute__ directives..." >&5
-+ { echo "$as_me:10165: checking for $CC __attribute__ directives..." >&5
- echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
- cat > conftest.$ac_ext <<EOF
--#line 9576 "${as_me:-configure}"
-+#line 10168 "${as_me:-configure}"
- #include "confdefs.h"
- #include "conftest.h"
- #include "conftest.i"
-@@ -9622,36 +10214,60 @@
- ;;
- esac
-
-- if { (eval echo "$as_me:9625: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:10217: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9628: \$? = $ac_status" >&5
-+ echo "$as_me:10220: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:9630: result: ... $cf_attribute" >&5
-+ test -n "$verbose" && echo "$as_me:10222: result: ... $cf_attribute" >&5
- echo "${ECHO_T}... $cf_attribute" >&6
- cat conftest.h >>confdefs.h
- case $cf_attribute in #(vi
-- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
-+ noreturn) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_NORETURN $cf_directive
- EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-+
-+ ;;
-+ printf) #(vi
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-+
-+cat >>confdefs.h <<\EOF
-+#define GCC_PRINTF 1
- EOF
-+
- fi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_PRINTFLIKE(fmt,var) $cf_value
-+EOF
-+
- ;;
- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-+
-+cat >>confdefs.h <<\EOF
-+#define GCC_SCANF 1
- EOF
-+
- fi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_SCANFLIKE(fmt,var) $cf_value
-+EOF
-+
-+ ;;
-+ unused) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_UNUSED $cf_directive
-+EOF
-+
- ;;
- esac
- fi
-@@ -9663,7 +10279,7 @@
- fi
-
- ### use option --enable-assertions to turn on generation of assertion code
--echo "$as_me:9666: checking if you want to enable runtime assertions" >&5
-+echo "$as_me:10282: checking if you want to enable runtime assertions" >&5
- echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
-
- # Check whether --enable-assertions or --disable-assertions was given.
-@@ -9673,16 +10289,12 @@
- else
- with_assertions=no
- fi;
--echo "$as_me:9676: result: $with_assertions" >&5
-+echo "$as_me:10292: result: $with_assertions" >&5
- echo "${ECHO_T}$with_assertions" >&6
- if test -n "$GCC"
- then
- if test "$with_assertions" = no
- then
-- cat >>confdefs.h <<\EOF
--#define NDEBUG 1
--EOF
--
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
-
-@@ -9692,6 +10304,7 @@
- fi
-
- ### use option --disable-leaks to suppress "permanent" leaks, for testing
-+
- cat >>confdefs.h <<\EOF
- #define HAVE_NC_ALLOC_H 1
- EOF
-@@ -9701,7 +10314,8 @@
- # Check whether --enable-expanded or --disable-expanded was given.
- if test "${enable_expanded+set}" = set; then
- enableval="$enable_expanded"
-- test "$enableval" = yes && cat >>confdefs.h <<\EOF
-+ test "$enableval" = yes &&
-+cat >>confdefs.h <<\EOF
- #define NCURSES_EXPANDED 1
- EOF
-
-@@ -9712,7 +10326,8 @@
- # Check whether --enable-macros or --disable-macros was given.
- if test "${enable_macros+set}" = set; then
- enableval="$enable_macros"
-- test "$enableval" = no && cat >>confdefs.h <<\EOF
-+ test "$enableval" = no &&
-+cat >>confdefs.h <<\EOF
- #define NCURSES_NOMACROS 1
- EOF
-
-@@ -9727,7 +10342,7 @@
- ;;
- esac
-
--echo "$as_me:9730: checking whether to add trace feature to all models" >&5
-+echo "$as_me:10345: checking whether to add trace feature to all models" >&5
- echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
-
- # Check whether --with-trace or --without-trace was given.
-@@ -9737,7 +10352,7 @@
- else
- cf_with_trace=$cf_all_traces
- fi;
--echo "$as_me:9740: result: $cf_with_trace" >&5
-+echo "$as_me:10355: result: $cf_with_trace" >&5
- echo "${ECHO_T}$cf_with_trace" >&6
-
- if test "$cf_with_trace" = yes ; then
-@@ -9830,13 +10445,13 @@
- *mingw32*) #(vi
- ;;
- *)
--echo "$as_me:9833: checking for gettimeofday" >&5
-+echo "$as_me:10448: checking for gettimeofday" >&5
- echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
- if test "${ac_cv_func_gettimeofday+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 9839 "configure"
-+#line 10454 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gettimeofday (); below. */
-@@ -9859,7 +10474,7 @@
- #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
- choke me
- #else
--f = gettimeofday;
-+f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -9867,16 +10482,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9870: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10485: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9873: \$? = $ac_status" >&5
-+ echo "$as_me:10488: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9876: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10491: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9879: \$? = $ac_status" >&5
-+ echo "$as_me:10494: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_gettimeofday=yes
- else
-@@ -9886,7 +10501,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:9889: result: $ac_cv_func_gettimeofday" >&5
-+echo "$as_me:10504: result: $ac_cv_func_gettimeofday" >&5
- echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
- if test $ac_cv_func_gettimeofday = yes; then
- cat >>confdefs.h <<\EOF
-@@ -9895,7 +10510,7 @@
-
- else
-
--echo "$as_me:9898: checking for gettimeofday in -lbsd" >&5
-+echo "$as_me:10513: checking for gettimeofday in -lbsd" >&5
- echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
- if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9903,7 +10518,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lbsd $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9906 "configure"
-+#line 10521 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -9922,16 +10537,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9925: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10540: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9928: \$? = $ac_status" >&5
-+ echo "$as_me:10543: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9931: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10546: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9934: \$? = $ac_status" >&5
-+ echo "$as_me:10549: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_bsd_gettimeofday=yes
- else
-@@ -9942,10 +10557,11 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9945: result: $ac_cv_lib_bsd_gettimeofday" >&5
-+echo "$as_me:10560: result: $ac_cv_lib_bsd_gettimeofday" >&5
- echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
- if test $ac_cv_lib_bsd_gettimeofday = yes; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_GETTIMEOFDAY 1
- EOF
-
-@@ -9957,13 +10573,13 @@
- esac
-
- ### Checks for header files.
--echo "$as_me:9960: checking for ANSI C header files" >&5
-+echo "$as_me:10576: checking for ANSI C header files" >&5
- echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
- if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 9966 "configure"
-+#line 10582 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -9971,13 +10587,13 @@
- #include <float.h>
-
- _ACEOF
--if { (eval echo "$as_me:9974: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:10590: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:9980: \$? = $ac_status" >&5
-+ echo "$as_me:10596: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -9999,7 +10615,7 @@
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
--#line 10002 "configure"
-+#line 10618 "configure"
- #include "confdefs.h"
- #include <string.h>
-
-@@ -10017,7 +10633,7 @@
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
--#line 10020 "configure"
-+#line 10636 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
-
-@@ -10038,7 +10654,7 @@
- :
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10041 "configure"
-+#line 10657 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #if ((' ' & 0x0FF) == 0x020)
-@@ -10064,15 +10680,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:10067: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10683: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10070: \$? = $ac_status" >&5
-+ echo "$as_me:10686: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:10072: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10688: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10075: \$? = $ac_status" >&5
-+ echo "$as_me:10691: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -10085,7 +10701,7 @@
- fi
- fi
- fi
--echo "$as_me:10088: result: $ac_cv_header_stdc" >&5
-+echo "$as_me:10704: result: $ac_cv_header_stdc" >&5
- echo "${ECHO_T}$ac_cv_header_stdc" >&6
- if test $ac_cv_header_stdc = yes; then
-
-@@ -10098,13 +10714,13 @@
- ac_header_dirent=no
- for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
--echo "$as_me:10101: checking for $ac_hdr that defines DIR" >&5
-+echo "$as_me:10717: checking for $ac_hdr that defines DIR" >&5
- echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10107 "configure"
-+#line 10723 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$ac_hdr>
-@@ -10119,16 +10735,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10122: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:10738: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10125: \$? = $ac_status" >&5
-+ echo "$as_me:10741: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10128: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10744: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10131: \$? = $ac_status" >&5
-+ echo "$as_me:10747: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
- else
-@@ -10138,7 +10754,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:10141: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:10757: 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
-@@ -10151,7 +10767,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:10154: checking for opendir in -ldir" >&5
-+ echo "$as_me:10770: checking for opendir in -ldir" >&5
- echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
- if test "${ac_cv_lib_dir_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10159,7 +10775,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldir $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10162 "configure"
-+#line 10778 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -10178,16 +10794,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10181: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10797: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10184: \$? = $ac_status" >&5
-+ echo "$as_me:10800: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10187: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10803: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10190: \$? = $ac_status" >&5
-+ echo "$as_me:10806: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dir_opendir=yes
- else
-@@ -10198,14 +10814,14 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10201: result: $ac_cv_lib_dir_opendir" >&5
-+echo "$as_me:10817: result: $ac_cv_lib_dir_opendir" >&5
- echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
- if test $ac_cv_lib_dir_opendir = yes; then
- LIBS="$LIBS -ldir"
- fi
-
- else
-- echo "$as_me:10208: checking for opendir in -lx" >&5
-+ echo "$as_me:10824: checking for opendir in -lx" >&5
- echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
- if test "${ac_cv_lib_x_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10213,7 +10829,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lx $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10216 "configure"
-+#line 10832 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -10232,16 +10848,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10235: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10851: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10238: \$? = $ac_status" >&5
-+ echo "$as_me:10854: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10241: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10857: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10244: \$? = $ac_status" >&5
-+ echo "$as_me:10860: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_x_opendir=yes
- else
-@@ -10252,7 +10868,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10255: result: $ac_cv_lib_x_opendir" >&5
-+echo "$as_me:10871: result: $ac_cv_lib_x_opendir" >&5
- echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
- if test $ac_cv_lib_x_opendir = yes; then
- LIBS="$LIBS -lx"
-@@ -10260,13 +10876,13 @@
-
- fi
-
--echo "$as_me:10263: checking whether time.h and sys/time.h may both be included" >&5
-+echo "$as_me:10879: checking whether time.h and sys/time.h may both be included" >&5
- echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
- if test "${ac_cv_header_time+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10269 "configure"
-+#line 10885 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/time.h>
-@@ -10282,16 +10898,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10285: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:10901: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10288: \$? = $ac_status" >&5
-+ echo "$as_me:10904: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10291: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10907: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10294: \$? = $ac_status" >&5
-+ echo "$as_me:10910: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_time=yes
- else
-@@ -10301,7 +10917,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:10304: result: $ac_cv_header_time" >&5
-+echo "$as_me:10920: result: $ac_cv_header_time" >&5
- echo "${ECHO_T}$ac_cv_header_time" >&6
- if test $ac_cv_header_time = yes; then
-
-@@ -10319,104 +10935,13 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
-
--echo "$as_me:10322: checking for $CC option to accept ANSI C" >&5
--echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_stdc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_cv_prog_cc_stdc=no
--ac_save_CC=$CC
--cat >conftest.$ac_ext <<_ACEOF
--#line 10330 "configure"
--#include "confdefs.h"
--#include <stdarg.h>
--#include <stdio.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
--struct buf { int x; };
--FILE * (*rcsopen) (struct buf *, struct stat *, int);
--static char *e (p, i)
-- char **p;
-- int i;
--{
-- return p[i];
--}
--static char *f (char * (*g) (char **, int), char **p, ...)
--{
-- char *s;
-- va_list v;
-- va_start (v,p);
-- s = g (p, va_arg (v,int));
-- va_end (v);
-- return s;
--}
--int test (int i, double x);
--struct s1 {int (*f) (int a);};
--struct s2 {int (*f) (double a);};
--int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
--int argc;
--char **argv;
--int
--main ()
--{
--return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-- ;
-- return 0;
--}
--_ACEOF
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX 10.20 and later -Ae
--# HP-UX older versions -Aa -D_HPUX_SOURCE
--# SVR4 -Xc -D__EXTENSIONS__
--for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
--do
-- CC="$ac_save_CC $ac_arg"
-- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10379: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:10382: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10385: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10388: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_prog_cc_stdc=$ac_arg
--break
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--fi
--rm -f conftest.$ac_objext
--done
--rm -f conftest.$ac_ext conftest.$ac_objext
--CC=$ac_save_CC
--
--fi
--
--case "x$ac_cv_prog_cc_stdc" in
-- x|xno)
-- echo "$as_me:10405: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6 ;;
-- *)
-- echo "$as_me:10408: result: $ac_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-- CC="$CC $ac_cv_prog_cc_stdc" ;;
--esac
--
--echo "$as_me:10413: checking for an ANSI C-conforming const" >&5
-+echo "$as_me:10938: checking for an ANSI C-conforming const" >&5
- echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
- if test "${ac_cv_c_const+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10419 "configure"
-+#line 10944 "configure"
- #include "confdefs.h"
-
- int
-@@ -10474,16 +10999,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10477: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11002: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10480: \$? = $ac_status" >&5
-+ echo "$as_me:11005: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10483: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11008: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10486: \$? = $ac_status" >&5
-+ echo "$as_me:11011: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
- else
-@@ -10493,7 +11018,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:10496: result: $ac_cv_c_const" >&5
-+echo "$as_me:11021: result: $ac_cv_c_const" >&5
- echo "${ECHO_T}$ac_cv_c_const" >&6
- if test $ac_cv_c_const = no; then
-
-@@ -10505,7 +11030,7 @@
-
- ### Checks for external-data
-
--echo "$as_me:10508: checking if data-only library module links" >&5
-+echo "$as_me:11033: checking if data-only library module links" >&5
- echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
- if test "${cf_cv_link_dataonly+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10513,20 +11038,20 @@
-
- rm -f conftest.a
- cat >conftest.$ac_ext <<EOF
--#line 10516 "configure"
-+#line 11041 "configure"
- int testdata[3] = { 123, 456, 789 };
- EOF
-- if { (eval echo "$as_me:10519: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:11044: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10522: \$? = $ac_status" >&5
-+ echo "$as_me:11047: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- mv conftest.o data.o && \
- ( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
- fi
- rm -f conftest.$ac_ext data.o
- cat >conftest.$ac_ext <<EOF
--#line 10529 "configure"
-+#line 11054 "configure"
- int testfunc()
- {
- #if defined(NeXT)
-@@ -10539,10 +11064,10 @@
- #endif
- }
- EOF
-- if { (eval echo "$as_me:10542: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:11067: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10545: \$? = $ac_status" >&5
-+ echo "$as_me:11070: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- mv conftest.o func.o && \
- ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
-@@ -10555,7 +11080,7 @@
- cf_cv_link_dataonly=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10558 "configure"
-+#line 11083 "configure"
- #include "confdefs.h"
-
- int main()
-@@ -10566,15 +11091,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:10569: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11094: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10572: \$? = $ac_status" >&5
-+ echo "$as_me:11097: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:10574: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11099: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10577: \$? = $ac_status" >&5
-+ echo "$as_me:11102: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_link_dataonly=yes
- else
-@@ -10589,11 +11114,12 @@
-
- fi
-
--echo "$as_me:10592: result: $cf_cv_link_dataonly" >&5
-+echo "$as_me:11117: result: $cf_cv_link_dataonly" >&5
- echo "${ECHO_T}$cf_cv_link_dataonly" >&6
-
- if test "$cf_cv_link_dataonly" = no ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define BROKEN_LINKER 1
- EOF
-
-@@ -10602,7 +11128,7 @@
-
- ### Checks for library functions.
-
--echo "$as_me:10605: checking for working mkstemp" >&5
-+echo "$as_me:11131: checking for working mkstemp" >&5
- echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
- if test "${cf_cv_func_mkstemp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10610,68 +11136,10 @@
-
- rm -rf conftest*
- if test "$cross_compiling" = yes; then
-- echo "$as_me:10613: checking for mkstemp" >&5
--echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
--if test "${ac_cv_func_mkstemp+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 10619 "configure"
--#include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char mkstemp (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char mkstemp ();
--char (*f) ();
--
--int
--main ()
--{
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
--choke me
--#else
--f = mkstemp;
--#endif
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10650: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10653: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10656: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10659: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_mkstemp=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_mkstemp=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:10669: result: $ac_cv_func_mkstemp" >&5
--echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
--
-+ cf_cv_func_mkstemp=maybe
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10674 "configure"
-+#line 11142 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -10709,15 +11177,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:10712: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11180: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10715: \$? = $ac_status" >&5
-+ echo "$as_me:11183: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:10717: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11185: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10720: \$? = $ac_status" >&5
-+ echo "$as_me:11188: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_func_mkstemp=yes
-
-@@ -10732,80 +11200,89 @@
- fi
-
- fi
--echo "$as_me:10735: result: $cf_cv_func_mkstemp" >&5
-+echo "$as_me:11203: result: $cf_cv_func_mkstemp" >&5
- echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
--if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
-- cat >>confdefs.h <<\EOF
--#define HAVE_MKSTEMP 1
--EOF
--
--fi
--
--echo "$as_me:10744: checking return type of signal handlers" >&5
--echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
--if test "${ac_cv_type_signal+set}" = set; then
-+if test "x$cf_cv_func_mkstemp" = xmaybe ; then
-+ echo "$as_me:11206: checking for mkstemp" >&5
-+echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
-+if test "${ac_cv_func_mkstemp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10750 "configure"
-+#line 11212 "configure"
- #include "confdefs.h"
--#include <sys/types.h>
--#include <signal.h>
--#ifdef signal
--# undef signal
--#endif
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char mkstemp (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
--extern "C" void (*signal (int, void (*)(int)))(int);
--#else
--void (*signal ()) ();
-+extern "C"
- #endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char mkstemp ();
-+char (*f) ();
-
- int
- main ()
- {
--int i;
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
-+choke me
-+#else
-+f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10772: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11243: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10775: \$? = $ac_status" >&5
-+ echo "$as_me:11246: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10778: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11249: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10781: \$? = $ac_status" >&5
-+ echo "$as_me:11252: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_type_signal=void
-+ ac_cv_func_mkstemp=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_type_signal=int
-+ac_cv_func_mkstemp=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:10791: result: $ac_cv_type_signal" >&5
--echo "${ECHO_T}$ac_cv_type_signal" >&6
-+echo "$as_me:11262: result: $ac_cv_func_mkstemp" >&5
-+echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
-
--cat >>confdefs.h <<EOF
--#define RETSIGTYPE $ac_cv_type_signal
-+fi
-+if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_MKSTEMP 1
- EOF
-
-+fi
-+
- if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
- CFLAGS=`echo ${CFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
- CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
- fi
-
-+cf_with_ada=yes
- if test "$cf_with_ada" != "no" ; then
-
- cf_ada_make=gnatmake
- # Extract the first word of "$cf_ada_make", so it can be a program name with args.
- set dummy $cf_ada_make; ac_word=$2
--echo "$as_me:10808: checking for $ac_word" >&5
-+echo "$as_me:11285: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_gnat_exists+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10820,7 +11297,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_gnat_exists="yes"
--echo "$as_me:10823: found $ac_dir/$ac_word" >&5
-+echo "$as_me:11300: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -10829,31 +11306,32 @@
- fi
- gnat_exists=$ac_cv_prog_gnat_exists
- if test -n "$gnat_exists"; then
-- echo "$as_me:10832: result: $gnat_exists" >&5
-+ echo "$as_me:11309: result: $gnat_exists" >&5
- echo "${ECHO_T}$gnat_exists" >&6
- else
-- echo "$as_me:10835: result: no" >&5
-+ echo "$as_me:11312: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-+ cf_cv_prog_gnat_correct=no
- else
-
--echo "$as_me:10843: checking for gnat version" >&5
-+echo "$as_me:11321: checking for gnat version" >&5
- echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
- cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
- grep '[0-9].[0-9][0-9]*' |\
- sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
--echo "$as_me:10848: result: $cf_gnat_version" >&5
-+echo "$as_me:11326: result: $cf_gnat_version" >&5
- echo "${ECHO_T}$cf_gnat_version" >&6
-
- case $cf_gnat_version in #(vi
--3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi
-+3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi
- cf_cv_prog_gnat_correct=yes
- ;;
- *)
-- { echo "$as_me:10856: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
-+ { echo "$as_me:11334: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
- echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
- cf_cv_prog_gnat_correct=no
- ;;
-@@ -10861,7 +11339,7 @@
-
- # Extract the first word of "m4", so it can be a program name with args.
- set dummy m4; ac_word=$2
--echo "$as_me:10864: checking for $ac_word" >&5
-+echo "$as_me:11342: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_M4_exists+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10876,7 +11354,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_M4_exists="yes"
--echo "$as_me:10879: found $ac_dir/$ac_word" >&5
-+echo "$as_me:11357: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -10885,10 +11363,10 @@
- fi
- M4_exists=$ac_cv_prog_M4_exists
- if test -n "$M4_exists"; then
-- echo "$as_me:10888: result: $M4_exists" >&5
-+ echo "$as_me:11366: result: $M4_exists" >&5
- echo "${ECHO_T}$M4_exists" >&6
- else
-- echo "$as_me:10891: result: no" >&5
-+ echo "$as_me:11369: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -10897,7 +11375,7 @@
- echo Ada95 binding required program m4 not found. Ada95 binding disabled.
- fi
- if test "$cf_cv_prog_gnat_correct" = yes; then
-- echo "$as_me:10900: checking if GNAT works" >&5
-+ echo "$as_me:11378: checking if GNAT works" >&5
- echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
-
- rm -rf conftest* *~conftest*
-@@ -10925,30 +11403,34 @@
- fi
- rm -rf conftest* *~conftest*
-
-- echo "$as_me:10928: result: $cf_cv_prog_gnat_correct" >&5
-+ echo "$as_me:11406: result: $cf_cv_prog_gnat_correct" >&5
- echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
- fi
- fi
-
- if test "$cf_cv_prog_gnat_correct" = yes; then
-
-- # make ADAFLAGS consistent with CFLAGS
-- case "$CFLAGS" in
-- *-g*)
-+ echo "$as_me:11413: checking optimization options for ADAFLAGS" >&5
-+echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
-+ case "$CFLAGS" in
-+ *-g*)
-
- ADAFLAGS="$ADAFLAGS -g"
-
-- ;;
-- esac
-- case "$CFLAGS" in
-- *-O*)
-+ ;;
-+ esac
-+ case "$CFLAGS" in
-+ *-O*)
-+ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'`
-
-- ADAFLAGS="$ADAFLAGS -O3"
-+ ADAFLAGS="$ADAFLAGS $cf_O_flag"
-
-- ;;
-- esac
-+ ;;
-+ esac
-+ echo "$as_me:11430: result: $ADAFLAGS" >&5
-+echo "${ECHO_T}$ADAFLAGS" >&6
-
--echo "$as_me:10951: checking if GNAT supports generics" >&5
-+echo "$as_me:11433: checking if GNAT supports generics" >&5
- echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
- case $cf_gnat_version in #(vi
- 3.[1-9]*|[4-9].*) #(vi
-@@ -10958,7 +11440,7 @@
- cf_gnat_generics=no
- ;;
- esac
--echo "$as_me:10961: result: $cf_gnat_generics" >&5
-+echo "$as_me:11443: result: $cf_gnat_generics" >&5
- echo "${ECHO_T}$cf_gnat_generics" >&6
-
- if test "$cf_gnat_generics" = yes
-@@ -10970,7 +11452,7 @@
- cf_generic_objects=
- fi
-
--echo "$as_me:10973: checking if GNAT supports SIGINT" >&5
-+echo "$as_me:11455: checking if GNAT supports SIGINT" >&5
- echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
- if test "${cf_cv_gnat_sigint+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -11018,7 +11500,7 @@
- rm -rf conftest* *~conftest*
-
- fi
--echo "$as_me:11021: result: $cf_cv_gnat_sigint" >&5
-+echo "$as_me:11503: result: $cf_cv_gnat_sigint" >&5
- echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
-
- if test $cf_cv_gnat_sigint = yes ; then
-@@ -11027,7 +11509,7 @@
- USE_GNAT_SIGINT="#"
- fi
-
--echo "$as_me:11030: checking if GNAT pragma Unreferenced works" >&5
-+echo "$as_me:11512: checking if GNAT pragma Unreferenced works" >&5
- echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
- if test "${cf_cv_pragma_unreferenced+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -11058,7 +11540,7 @@
- rm -rf conftest* *~conftest*
-
- fi
--echo "$as_me:11061: result: $cf_cv_pragma_unreferenced" >&5
-+echo "$as_me:11543: result: $cf_cv_pragma_unreferenced" >&5
- echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
-
- # if the pragma is supported, use it (needed in the Trace code).
-@@ -11071,7 +11553,7 @@
- cf_gnat_libraries=no
- cf_gnat_projects=no
-
--echo "$as_me:11074: checking if GNAT supports project files" >&5
-+echo "$as_me:11556: checking if GNAT supports project files" >&5
- echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
- case $cf_gnat_version in #(vi
- 3.[0-9]*) #(vi
-@@ -11139,14 +11621,14 @@
- esac
- ;;
- esac
--echo "$as_me:11142: result: $cf_gnat_projects" >&5
-+echo "$as_me:11624: result: $cf_gnat_projects" >&5
- echo "${ECHO_T}$cf_gnat_projects" >&6
-
- if test $cf_gnat_projects = yes
- then
-- echo "$as_me:11147: checking if GNAT supports libraries" >&5
-+ echo "$as_me:11629: checking if GNAT supports libraries" >&5
- echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
-- echo "$as_me:11149: result: $cf_gnat_libraries" >&5
-+ echo "$as_me:11631: result: $cf_gnat_libraries" >&5
- echo "${ECHO_T}$cf_gnat_libraries" >&6
- fi
-
-@@ -11166,7 +11648,7 @@
- USE_GNAT_LIBRARIES="#"
- fi
-
--echo "$as_me:11169: checking for ada-compiler" >&5
-+echo "$as_me:11651: checking for ada-compiler" >&5
- echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
-
- # Check whether --with-ada-compiler or --without-ada-compiler was given.
-@@ -11177,12 +11659,12 @@
- cf_ada_compiler=gnatmake
- fi;
-
--echo "$as_me:11180: result: $cf_ada_compiler" >&5
-+echo "$as_me:11662: result: $cf_ada_compiler" >&5
- echo "${ECHO_T}$cf_ada_compiler" >&6
-
- cf_ada_package=terminal_interface
-
--echo "$as_me:11185: checking for ada-include" >&5
-+echo "$as_me:11667: checking for ada-include" >&5
- echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
-
- # Check whether --with-ada-include or --without-ada-include was given.
-@@ -11206,7 +11688,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
-@@ -11218,19 +11700,19 @@
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:11221: error: expected a pathname, not \"$withval\"" >&5
-+ { { echo "$as_me:11703: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- fi
--ADA_INCLUDE="$withval"
-+eval ADA_INCLUDE="$withval"
-
--echo "$as_me:11230: result: $ADA_INCLUDE" >&5
-+echo "$as_me:11712: result: $ADA_INCLUDE" >&5
- echo "${ECHO_T}$ADA_INCLUDE" >&6
-
--echo "$as_me:11233: checking for ada-objects" >&5
-+echo "$as_me:11715: checking for ada-objects" >&5
- echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
-
- # Check whether --with-ada-objects or --without-ada-objects was given.
-@@ -11254,7 +11736,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
-@@ -11266,19 +11748,19 @@
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:11269: error: expected a pathname, not \"$withval\"" >&5
-+ { { echo "$as_me:11751: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- fi
--ADA_OBJECTS="$withval"
-+eval ADA_OBJECTS="$withval"
-
--echo "$as_me:11278: result: $ADA_OBJECTS" >&5
-+echo "$as_me:11760: result: $ADA_OBJECTS" >&5
- echo "${ECHO_T}$ADA_OBJECTS" >&6
-
--echo "$as_me:11281: checking if an Ada95 shared-library should be built" >&5
-+echo "$as_me:11763: checking if an Ada95 shared-library should be built" >&5
- echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
-
- # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
-@@ -11288,7 +11770,7 @@
- else
- with_ada_sharedlib=no
- fi;
--echo "$as_me:11291: result: $with_ada_sharedlib" >&5
-+echo "$as_me:11773: result: $with_ada_sharedlib" >&5
- echo "${ECHO_T}$with_ada_sharedlib" >&6
-
- ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
-@@ -11304,12 +11786,12 @@
- fi
-
- else
-- { { echo "$as_me:11307: error: No usable Ada compiler found" >&5
-+ { { echo "$as_me:11789: error: No usable Ada compiler found" >&5
- echo "$as_me: error: No usable Ada compiler found" >&2;}
- { (exit 1); exit 1; }; }
- fi
- else
-- { { echo "$as_me:11312: error: The Ada compiler is needed for this package" >&5
-+ { { echo "$as_me:11794: error: The Ada compiler is needed for this package" >&5
- echo "$as_me: error: The Ada compiler is needed for this package" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -11317,25 +11799,27 @@
- ################################################################################
-
- # not needed
--TINFO_ARGS2=
-+TINFO_LDFLAGS2=
-+
-+TINFO_LIBS=
-
- ### Construct the list of include-directories to be generated
-
--CPPFLAGS="$CPPFLAGS -I. -I../include"
--if test "$srcdir" != "."; then
-- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
--fi
- if test "$GCC" != yes; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- else
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- fi
-+if test "$srcdir" != "."; then
-+ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
-+fi
-+CPPFLAGS="-I. -I../include $CPPFLAGS"
-
- ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
- if test "$srcdir" != "."; then
-@@ -11354,7 +11838,7 @@
- fi
-
- ### Build up pieces for makefile rules
--echo "$as_me:11357: checking default library suffix" >&5
-+echo "$as_me:11841: checking default library suffix" >&5
- echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
-
- case $DFT_LWR_MODEL in
-@@ -11365,10 +11849,10 @@
- shared) DFT_ARG_SUFFIX='' ;;
- esac
- test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
--echo "$as_me:11368: result: $DFT_ARG_SUFFIX" >&5
-+echo "$as_me:11852: result: $DFT_ARG_SUFFIX" >&5
- echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-
--echo "$as_me:11371: checking default library-dependency suffix" >&5
-+echo "$as_me:11855: checking default library-dependency suffix" >&5
- echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
-
- case $DFT_LWR_MODEL in #(vi
-@@ -11390,11 +11874,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[56]*) #(vi
-+ aix[5-7]*) #(vi
- DFT_LIB_SUFFIX='.a'
- DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- DFT_LIB_SUFFIX='.dll'
- DFT_DEP_SUFFIX='.dll.a'
- ;;
-@@ -11421,10 +11905,10 @@
- esac
- test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
- test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
--echo "$as_me:11424: result: $DFT_DEP_SUFFIX" >&5
-+echo "$as_me:11908: result: $DFT_DEP_SUFFIX" >&5
- echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
-
--echo "$as_me:11427: checking default object directory" >&5
-+echo "$as_me:11911: checking default object directory" >&5
- echo $ECHO_N "checking default object directory... $ECHO_C" >&6
-
- case $DFT_LWR_MODEL in
-@@ -11440,7 +11924,7 @@
- DFT_OBJ_SUBDIR='obj_s' ;;
- esac
- esac
--echo "$as_me:11443: result: $DFT_OBJ_SUBDIR" >&5
-+echo "$as_me:11927: result: $DFT_OBJ_SUBDIR" >&5
- echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
-
- ### Set up low-level terminfo dependencies for makefiles.
-@@ -11656,7 +12140,7 @@
- : ${CONFIG_STATUS=./config.status}
- ac_clean_files_save=$ac_clean_files
- ac_clean_files="$ac_clean_files $CONFIG_STATUS"
--{ echo "$as_me:11659: creating $CONFIG_STATUS" >&5
-+{ echo "$as_me:12143: creating $CONFIG_STATUS" >&5
- echo "$as_me: creating $CONFIG_STATUS" >&6;}
- cat >$CONFIG_STATUS <<_ACEOF
- #! $SHELL
-@@ -11788,7 +12272,7 @@
- cat >>$CONFIG_STATUS <<EOF
- ac_cs_version="\\
- config.status
--configured by $0, generated by GNU Autoconf 2.52.20101002,
-+configured by $0, generated by GNU Autoconf 2.52.20121002,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
- Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-@@ -11832,7 +12316,7 @@
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
-- { { echo "$as_me:11835: error: ambiguous option: $1
-+ { { echo "$as_me:12319: 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;}
-@@ -11851,7 +12335,7 @@
- ac_need_defaults=false;;
-
- # This is an error.
-- -*) { { echo "$as_me:11854: error: unrecognized option: $1
-+ -*) { { echo "$as_me:12338: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&5
- echo "$as_me: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&2;}
-@@ -11870,7 +12354,7 @@
- ## Running config.status. ##
- ## ----------------------- ##
-
--This file was extended by $as_me 2.52.20101002, executed with
-+This file was extended by $as_me 2.52.20121002, executed with
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
-@@ -11892,8 +12376,8 @@
- AWK="$AWK"
- DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
- DFT_LWR_MODEL="$DFT_LWR_MODEL"
--ECHO_LINK="$ECHO_LINK"
- LIB_NAME="$LIB_NAME"
-+LIB_PREFIX="$LIB_PREFIX"
- LIB_SUFFIX="$LIB_SUFFIX"
- LN_S="$LN_S"
- NCURSES_MAJOR="$NCURSES_MAJOR"
-@@ -11922,7 +12406,7 @@
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
-- *) { { echo "$as_me:11925: error: invalid argument: $ac_config_target" >&5
-+ *) { { echo "$as_me:12409: error: invalid argument: $ac_config_target" >&5
- echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-@@ -11981,6 +12465,7 @@
- s,@bindir@,$bindir,;t t
- s,@sbindir@,$sbindir,;t t
- s,@libexecdir@,$libexecdir,;t t
-+s,@datarootdir@,$datarootdir,;t t
- s,@datadir@,$datadir,;t t
- s,@sysconfdir@,$sysconfdir,;t t
- s,@sharedstatedir@,$sharedstatedir,;t t
-@@ -12024,9 +12509,8 @@
- s,@ac_ct_CC@,$ac_ct_CC,;t t
- s,@EXEEXT@,$EXEEXT,;t t
- s,@OBJEXT@,$OBJEXT,;t t
--s,@CPP@,$CPP,;t t
- s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
--s,@PROG_EXT@,$PROG_EXT,;t t
-+s,@CPP@,$CPP,;t t
- s,@AWK@,$AWK,;t t
- s,@EGREP@,$EGREP,;t t
- s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-@@ -12061,6 +12545,7 @@
- s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
- s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
- s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t
-+s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t
- s,@NCURSES_MAJOR@,$NCURSES_MAJOR,;t t
- s,@NCURSES_MINOR@,$NCURSES_MINOR,;t t
- s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t
-@@ -12083,13 +12568,18 @@
- s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
- s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t
- s,@INSTALL_LIB@,$INSTALL_LIB,;t t
-+s,@RPATH_LIST@,$RPATH_LIST,;t t
- s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
- s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
- s,@NCURSES_CONST@,$NCURSES_CONST,;t t
- s,@PTHREAD@,$PTHREAD,;t t
- s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
- s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
--s,@ECHO_LINK@,$ECHO_LINK,;t t
-+s,@ECHO_LT@,$ECHO_LT,;t t
-+s,@ECHO_LD@,$ECHO_LD,;t t
-+s,@RULE_CC@,$RULE_CC,;t t
-+s,@SHOW_CC@,$SHOW_CC,;t t
-+s,@ECHO_CC@,$ECHO_CC,;t t
- s,@ADAFLAGS@,$ADAFLAGS,;t t
- s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
- s,@ADA_TRACE@,$ADA_TRACE,;t t
-@@ -12109,7 +12599,8 @@
- s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t
- s,@ADA_SHAREDLIB@,$ADA_SHAREDLIB,;t t
- s,@MAKE_ADA_SHAREDLIB@,$MAKE_ADA_SHAREDLIB,;t t
--s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
-+s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t
-+s,@TINFO_LIBS@,$TINFO_LIBS,;t t
- s,@ACPPFLAGS@,$ACPPFLAGS,;t t
- s,@DFT_ARG_SUFFIX@,$DFT_ARG_SUFFIX,;t t
- s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
-@@ -12237,7 +12728,7 @@
- esac
-
- if test x"$ac_file" != x-; then
-- { echo "$as_me:12240: creating $ac_file" >&5
-+ { echo "$as_me:12731: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
-@@ -12255,7 +12746,7 @@
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:12258: error: cannot find input file: $f" >&5
-+ test -f "$f" || { { echo "$as_me:12749: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo $f;;
-@@ -12268,13 +12759,45 @@
- echo $srcdir/$f
- else
- # /dev/null tree
-- { { echo "$as_me:12271: error: cannot find input file: $f" >&5
-+ { { echo "$as_me:12762: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- EOF
-+cat >>$CONFIG_STATUS <<\EOF
-+ ac_warn_datarootdir=no
-+ if test x"$ac_file" != x-; then
-+ for ac_item in $ac_file_inputs
-+ do
-+ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item`
-+ if test -n "$ac_seen"; then
-+ ac_used=`grep '@datarootdir@' $ac_item`
-+ if test -z "$ac_used"; then
-+ { echo "$as_me:12778: WARNING: datarootdir was used implicitly but not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: datarootdir was used implicitly but not set:
-+$ac_seen" >&2;}
-+ ac_warn_datarootdir=yes
-+ fi
-+ fi
-+ ac_seen=`grep '${datarootdir}' $ac_item`
-+ if test -n "$ac_seen"; then
-+ { echo "$as_me:12787: WARNING: datarootdir was used explicitly but not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: datarootdir was used explicitly but not set:
-+$ac_seen" >&2;}
-+ ac_warn_datarootdir=yes
-+ fi
-+ done
-+ fi
-+
-+if test "x$ac_warn_datarootdir" = xyes; then
-+ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'"
-+fi
-+
-+EOF
- cat >>$CONFIG_STATUS <<EOF
- sed "$ac_vpsub
- $extrasub
-@@ -12289,11 +12812,35 @@
- " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
-- mv $tmp/out $ac_file
-+ cp $tmp/out $ac_file
-+
-+ for ac_name in prefix exec_prefix datarootdir
-+ do
-+ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file`
-+ if test -n "$ac_seen"; then
-+ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
-+ if test -z "$ac_init"; then
-+ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
-+ { echo "$as_me:12824: WARNING: Variable $ac_name is used but was not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: Variable $ac_name is used but was not set:
-+$ac_seen" >&2;}
-+ fi
-+ fi
-+ done
-+ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out
-+ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
-+ if test -s $tmp/out; then
-+ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
-+ { echo "$as_me:12835: WARNING: Some variables may not be substituted:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: Some variables may not be substituted:
-+$ac_seen" >&2;}
-+ fi
- else
- cat $tmp/out
-- rm -f $tmp/out
- fi
-+ rm -f $tmp/out
-
- done
- EOF
-@@ -12334,7 +12881,7 @@
- * ) ac_file_in=$ac_file.in ;;
- esac
-
-- test x"$ac_file" != x- && { echo "$as_me:12337: creating $ac_file" >&5
-+ test x"$ac_file" != x- && { echo "$as_me:12884: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
-@@ -12345,7 +12892,7 @@
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:12348: error: cannot find input file: $f" >&5
-+ test -f "$f" || { { echo "$as_me:12895: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo $f;;
-@@ -12358,7 +12905,7 @@
- echo $srcdir/$f
- else
- # /dev/null tree
-- { { echo "$as_me:12361: error: cannot find input file: $f" >&5
-+ { { echo "$as_me:12908: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
-@@ -12416,7 +12963,7 @@
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-- { echo "$as_me:12419: $ac_file is unchanged" >&5
-+ { echo "$as_me:12966: $ac_file is unchanged" >&5
- echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-Index: Ada95/configure.in
-Prereq: 1.30
---- ncurses-5.9/Ada95/configure.in 2011-03-31 22:49:22.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/configure.in 2013-04-27 19:50:17.000000000 +0000
-@@ -1,5 +1,5 @@
- dnl***************************************************************************
--dnl Copyright (c) 2010,2011 Free Software Foundation, Inc. *
-+dnl Copyright (c) 2010-2012,2013 Free Software Foundation, Inc. *
- dnl *
- dnl Permission is hereby granted, free of charge, to any person obtaining a *
- dnl copy of this software and associated documentation files (the *
-@@ -28,24 +28,20 @@
- dnl
- dnl Author: Thomas E. Dickey
- dnl
--dnl $Id: configure.in,v 1.30 2011/03/31 22:49:22 tom Exp $
-+dnl $Id: configure.in,v 1.47 2013/04/27 19:50:17 tom Exp $
- dnl Process this file with autoconf to produce a configure script.
- dnl
- dnl See http://invisible-island.net/autoconf/ for additional information.
- dnl
- dnl ---------------------------------------------------------------------------
--AC_PREREQ(2.13.20020210)
--AC_REVISION($Revision: 1.30 $)
-+AC_PREREQ(2.52.20030208)
-+AC_REVISION($Revision: 1.47 $)
- AC_INIT(gen/gen.c)
- AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
-
- CF_TOP_BUILDDIR
-
--CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
--AC_ARG_WITH(system-type,
--[ --with-system-type=XXX test: override derived host system-type],
--[AC_MSG_WARN(overriding system type to $withval)
-- cf_cv_system_name=$withval])
-+CF_WITH_SYSTYPE
-
- ### Save the given $CFLAGS to allow user-override.
- cf_user_CFLAGS="$CFLAGS"
-@@ -54,15 +50,10 @@
- CF_CFG_DEFAULTS
-
- ### Checks for programs.
--AC_PROG_CC
--CF_GCC_VERSION
--
-+CF_PROG_CC(gnatgcc gcc cc)
- AC_PROG_CPP
- AC_PROG_GCC_TRADITIONAL
- CF_PROG_CC_C_O(CC)
--AC_ISC_POSIX
--CF_ANSI_CC_REQD
--CF_PROG_EXT
-
- AC_ARG_PROGRAM
-
-@@ -75,28 +66,8 @@
-
- # if we find pkg-config, check if we should install the ".pc" files.
- CF_PKG_CONFIG
--
--if test "$PKG_CONFIG" != none ; then
-- AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
--
-- # Leave this as something that can be overridden in the environment.
-- if test -z "$PKG_CONFIG_LIBDIR" ; then
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
-- fi
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
-- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
-- AC_ARG_ENABLE(pc-files,
-- [ --enable-pc-files generate and install .pc files for pkg-config],
-- [enable_pc_files=$enableval],
-- [enable_pc_files=no])
-- AC_MSG_RESULT($enable_pc_files)
-- else
-- AC_MSG_RESULT(no)
-- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
-- enable_pc_files=no
-- fi
--fi
--AC_SUBST(PKG_CONFIG_LIBDIR)
-+CF_WITH_PKG_CONFIG_LIBDIR
-+CF_ENABLE_PC_FILES
-
- AC_MSG_CHECKING(if you want to build test-programs)
- AC_ARG_WITH(tests,
-@@ -130,6 +101,7 @@
- AC_CHECK_TOOL(LD, ld, ld)
- AC_CHECK_TOOL(AR, ar, ar)
- CF_AR_FLAGS
-+CF_PATHSEP
-
- dnl Special option for use by system-builders: the install-prefix is used to
- dnl adjust the location into which the actual install is done, so that an
-@@ -186,9 +158,7 @@
-
- CF_NCURSES_ADDON
-
--CF_LIB_PREFIX(cf_prefix)
--LIB_PREFIX=$cf_prefix
--AC_SUBST(LIB_PREFIX)
-+CF_WITH_LIB_PREFIX(cf_prefix)
-
- LIB_SUFFIX=
- AC_SUBST(LIB_SUFFIX)
-@@ -235,8 +205,6 @@
- ###############################################################################
- CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
-
--CF_PATHSEP
--
- ### use option --enable-broken-linker to force on use of broken-linker support
- AC_MSG_CHECKING(if you want broken-linker support code)
- AC_ARG_ENABLE(broken_linker,
-@@ -272,7 +240,7 @@
- [with_rcs_ids=$withval],
- [with_rcs_ids=no])
- AC_MSG_RESULT($with_rcs_ids)
--test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
-+test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 if RCS identifiers should be compiled-in)])
-
- ###############################################################################
- CF_HELP_MESSAGE(Extensions:)
-@@ -286,8 +254,8 @@
- AC_MSG_RESULT($with_ext_funcs)
- if test "$with_ext_funcs" = yes ; then
- NCURSES_EXT_FUNCS=1
-- AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
-- AC_DEFINE(NCURSES_EXT_FUNCS)
-+ AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 if we have use_default_colors function])
-+ AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extended functions])
- else
- NCURSES_EXT_FUNCS=0
- fi
-@@ -337,12 +305,12 @@
- fi
-
- if test $cf_cv_weak_symbols = yes ; then
-- AC_DEFINE(USE_WEAK_SYMBOLS)
-+ AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads])
- fi
-
- PTHREAD=
- if test "$with_pthread" = "yes" ; then
-- AC_DEFINE(USE_PTHREADS)
-+ AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use the pthreads library])
- enable_reentrant=yes
- if test $cf_cv_weak_symbols = yes ; then
- PTHREAD=-lpthread
-@@ -370,7 +338,7 @@
- elif test "$assume_reentrant" = no ; then
- LIB_SUFFIX="t${LIB_SUFFIX}"
- fi
-- AC_DEFINE(USE_REENTRANT)
-+ AC_DEFINE(USE_REENTRANT,1,[Define to 1 to compile with experimental reentrant code])
- else
- cf_cv_enable_reentrant=0
- fi
-@@ -388,24 +356,13 @@
- NCURSES_WRAP_PREFIX=_nc_
- fi
- AC_SUBST(NCURSES_WRAP_PREFIX)
--AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX")
-+AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ ncurses internal prefix])
-
- ###############################################################################
- CF_HELP_MESSAGE(Testing/development Options:)
-
- ### use option --disable-echo to suppress full display compiling commands
--AC_MSG_CHECKING(if you want to display full commands during build)
--AC_ARG_ENABLE(echo,
-- [ --enable-echo build: display "compiling" commands (default)],
-- [with_echo=$enableval],
-- [with_echo=yes])
--if test "$with_echo" = yes; then
-- ECHO_LINK=
--else
-- ECHO_LINK='@ echo linking $@ ... ;'
--fi
--AC_MSG_RESULT($with_echo)
--AC_SUBST(ECHO_LINK)
-+CF_DISABLE_ECHO
-
- ### use option --enable-warnings to turn on all gcc warnings
- AC_MSG_CHECKING(if you want to see compiler warnings)
-@@ -431,7 +388,6 @@
- then
- if test "$with_assertions" = no
- then
-- AC_DEFINE(NDEBUG)
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
- CF_ADD_ADAFLAGS(-gnata)
-@@ -439,17 +395,17 @@
- fi
-
- ### use option --disable-leaks to suppress "permanent" leaks, for testing
--AC_DEFINE(HAVE_NC_ALLOC_H)
-+AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header])
-
- ### use option --enable-expanded to generate certain macros as functions
- AC_ARG_ENABLE(expanded,
- [ --enable-expanded test: generate functions for certain macros],
-- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
-+ [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 if ncurses macros should be expanded as functions])])
-
- ### use option --disable-macros to suppress macros in favor of functions
- AC_ARG_ENABLE(macros,
- [ --disable-macros test: use functions rather than macros],
-- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
-+ [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 if ncurses macros should be expanded as functions])])
-
- # Normally we only add trace() to the debug-library. Allow this to be
- # extended to all models of the ncurses library:
-@@ -485,7 +441,7 @@
- AC_DEFINE(HAVE_GETTIMEOFDAY),[
-
- AC_CHECK_LIB(bsd, gettimeofday,
-- AC_DEFINE(HAVE_GETTIMEOFDAY)
-+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday])
- LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
- ;;
- esac
-@@ -505,8 +461,6 @@
- ### Checks for library functions.
- CF_MKSTEMP
-
--AC_TYPE_SIGNAL
--
- dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
- if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
- CF_STRIP_G_OPT(CFLAGS)
-@@ -514,24 +468,13 @@
- fi
-
- CF_HELP_MESSAGE(Ada95 Binding Options:)
--
-+cf_with_ada=yes
- dnl Check for availability of GNU Ada Translator (GNAT).
- dnl At the moment we support no other Ada95 compiler.
- if test "$cf_with_ada" != "no" ; then
- CF_PROG_GNAT
- if test "$cf_cv_prog_gnat_correct" = yes; then
--
-- # make ADAFLAGS consistent with CFLAGS
-- case "$CFLAGS" in
-- *-g*)
-- CF_ADD_ADAFLAGS(-g)
-- ;;
-- esac
-- case "$CFLAGS" in
-- *-O*)
-- CF_ADD_ADAFLAGS(-O3)
-- ;;
-- esac
-+ CF_FIXUP_ADAFLAGS
-
- CF_GNAT_GENERICS
- CF_GNAT_SIGINT
-@@ -556,8 +499,10 @@
- ################################################################################
-
- # not needed
--TINFO_ARGS2=
--AC_SUBST(TINFO_ARGS2)
-+TINFO_LDFLAGS2=
-+AC_SUBST(TINFO_LDFLAGS2)
-+TINFO_LIBS=
-+AC_SUBST(TINFO_LIBS)
-
- ### Construct the list of include-directories to be generated
- CF_INCLUDE_DIRS
-@@ -594,7 +539,7 @@
-
- SUB_MAKEFILES="gen/adacurses${DFT_ARG_SUFFIX}-config:gen/adacurses-config.in"
-
--AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR')
-+AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as the library path-separator])
-
- ### Now that we're done running tests, add the compiler-warnings, if any
- CF_ADD_CFLAGS($EXTRA_CFLAGS)
-@@ -656,8 +601,8 @@
- AWK="$AWK"
- DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
- DFT_LWR_MODEL="$DFT_LWR_MODEL"
--ECHO_LINK="$ECHO_LINK"
- LIB_NAME="$LIB_NAME"
-+LIB_PREFIX="$LIB_PREFIX"
- LIB_SUFFIX="$LIB_SUFFIX"
- LN_S="$LN_S"
- NCURSES_MAJOR="$NCURSES_MAJOR"
-Index: Ada95/doc/Makefile.in
-Prereq: 1.2
---- ncurses-5.9/Ada95/doc/Makefile.in 2011-03-26 19:26:17.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/doc/Makefile.in 2012-08-11 21:31:56.000000000 +0000
-@@ -1,4 +1,4 @@
--# $Id: Makefile.in,v 1.2 2011/03/26 19:26:17 tom Exp $
-+# $Id: Makefile.in,v 1.3 2012/08/11 21:31:56 tom Exp $
- ##############################################################################
- # Copyright (c) 2011 Free Software Foundation, Inc. #
- # #
-@@ -38,6 +38,7 @@
- srcdir = @srcdir@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-+datarootdir = @datarootdir@
- datadir = @datadir@
- mandir = @mandir@
-
-Index: Ada95/gen/Makefile.in
-Prereq: 1.74
---- ncurses-5.9/Ada95/gen/Makefile.in 2011-03-26 23:36:30.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/gen/Makefile.in 2012-10-06 18:58:48.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -28,7 +28,7 @@
- #
- # Author: Juergen Pfeifer, 1996
- #
--# $Id: Makefile.in,v 1.74 2011/03/26 23:36:30 tom Exp $
-+# $Id: Makefile.in,v 1.77 2012/10/06 18:58:48 tom Exp $
- #
- .SUFFIXES:
-
-@@ -36,7 +36,7 @@
- VPATH = @srcdir@
- THIS = Makefile
-
--x = @PROG_EXT@
-+x = @EXEEXT@
-
- top_srcdir = @top_srcdir@
- DESTDIR = @DESTDIR@
-@@ -73,7 +73,7 @@
- LOCAL_LIBDIR = @top_builddir@/lib
-
- LINK = $(HOST_CC)
--LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_ARGS2@
-+LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @TINFO_LDFLAGS2@ @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_LIBS@
-
- RANLIB = @RANLIB@
-
-@@ -179,7 +179,7 @@
- -rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
-
- $(PROG_GENERATE): gen.o
-- @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
-+ @ECHO_LD@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
-
- gen.o: $(srcdir)/gen.c
- $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
-@@ -411,7 +411,7 @@
- @mkdir -p $(HTML_DIR)
- cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
- @USE_OLD_MAKERULES@ ln -sf ../src/*.ali .
--@USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali .
-+@USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali .
- @echo "Filtering generated files"
- @for f in $(GEN_SRC); do \
- h=`basename $$f` ;\
-Index: Ada95/gen/gen.c
-Prereq: 1.59
---- ncurses-5.9/Ada95/gen/gen.c 2011-03-31 23:50:24.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/gen/gen.c 2011-04-30 19:47:19.000000000 +0000
-@@ -32,7 +32,7 @@
-
- /*
- Version Control
-- $Id: gen.c,v 1.59 2011/03/31 23:50:24 tom Exp $
-+ $Id: gen.c,v 1.60 2011/04/30 19:47:19 Nicolas.Boulenguez Exp $
- --------------------------------------------------------------------------*/
- /*
- This program generates various record structures and constants from the
-@@ -124,19 +124,15 @@
- int len, /* size of the record in bytes */
- int bias)
- {
-- const char *unused_name = "Unused";
-- int long_bits = (8 * (int)sizeof(unsigned long));
-- int len_bits = (8 * len);
-- int i, j, n, l, cnt = 0, low, high;
-+ const int len_bits = (8 * len);
-+ int i, l, low, high;
- int width = strlen(RES_NAME) + 3;
- unsigned long a;
-- unsigned long mask = 0;
-
- assert(nap != NULL);
-
- for (i = 0; nap[i].name != (char *)0; i++)
- {
-- cnt++;
- l = (int)strlen(nap[i].name);
- if (l > width)
- width = l;
-@@ -147,32 +143,8 @@
- printf(" record\n");
- for (i = 0; nap[i].name != (char *)0; i++)
- {
-- mask |= nap[i].attr;
- printf(" %-*s : Boolean;\n", width, nap[i].name);
- }
--
-- /*
-- * Compute a mask for the unused bits in this target.
-- */
-- mask = ~mask;
-- /*
-- * Bits in the biased area are unused by the target.
-- */
-- for (j = 0; j < bias; ++j)
-- {
-- mask &= (unsigned long)(~(1L << j));
-- }
-- /*
-- * Bits past the target's size are really unused.
-- */
-- for (j = len_bits + bias; j < long_bits; ++j)
-- {
-- mask &= (unsigned long)(~(1L << j));
-- }
-- if (mask != 0)
-- {
-- printf(" %-*s : Boolean;\n", width, unused_name);
-- }
- printf(" end record;\n");
- printf(" pragma Convention (C, %s);\n\n", name);
-
-@@ -187,17 +159,10 @@
- printf(" %-*s at 0 range %2d .. %2d;\n", width, nap[i].name,
- low - bias, high - bias);
- }
-- if (mask != 0)
-- {
-- l = find_pos((char *)&mask, sizeof(mask), &low, &high);
-- if (l >= 0)
-- printf(" %-*s at 0 range %2d .. %2d;\n", width, unused_name,
-- low - bias, high - bias);
-- }
-- i = 1;
-- n = cnt;
- printf(" end record;\n");
-+ printf(" pragma Warnings (Off);");
- printf(" for %s'Size use %d;\n", name, len_bits);
-+ printf(" pragma Warnings (On);\n");
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.");
- }
-Index: Ada95/include/ncurses_defs
-Prereq: 1.41
---- ncurses-5.9/Ada95/include/ncurses_defs 2008-11-16 00:19:59.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/include/ncurses_defs 2013-04-27 19:50:17.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: ncurses_defs,v 1.41 2008/11/16 00:19:59 juergen Exp $
-+# $Id: ncurses_defs,v 1.44 2013/04/27 19:50:17 tom Exp $
- ##############################################################################
--# Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. #
-+# Copyright (c) 2000-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -33,7 +33,6 @@
-
- BROKEN_LINKER
- BSD_TPUTS
--CC_HAS_PROTOS
- CPP_HAS_PARAM_INIT
- CURSES_ACS_ARRAY acs_map
- CURSES_WACS_ARRAY _nc_wacs
-@@ -120,7 +119,6 @@
- HAVE_SIZECHANGE
- HAVE_SLK_COLOR
- HAVE_SLK_INIT 1
--HAVE_STRDUP
- HAVE_STRSTR
- HAVE_SYMLINK
- HAVE_SYS_BSDTYPES_H
-@@ -174,7 +172,6 @@
- NEED_PTEM_H
- NO_LEAKS
- PURE_TERMINFO
--RETSIGTYPE
- STDC_HEADERS
- SVR4_ACTION
- SVR4_TERMIO
-Index: Ada95/samples/Makefile.in
-Prereq: 1.46
---- ncurses-5.9/Ada95/samples/Makefile.in 2011-03-28 23:45:08.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/samples/Makefile.in 2012-10-06 19:00:42.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -28,7 +28,7 @@
- #
- # Author: Juergen Pfeifer, 1996
- #
--# $Id: Makefile.in,v 1.46 2011/03/28 23:45:08 tom Exp $
-+# $Id: Makefile.in,v 1.48 2012/10/06 19:00:42 tom Exp $
- #
- .SUFFIXES:
-
-@@ -36,12 +36,13 @@
- VPATH = @srcdir@
- THIS = Makefile
-
--x = @PROG_EXT@
-+x = @EXEEXT@
-
- srcdir = @srcdir@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
- bindir = @bindir@
-+datarootdir = @datarootdir@
- datadir = @datadir@
- libdir = @libdir@
- includedir = @includedir@
-Index: Ada95/src/Makefile.in
-Prereq: 1.60
---- ncurses-5.9/Ada95/src/Makefile.in 2011-03-31 09:46:16.000000000 +0000
-+++ ncurses-5.9-20130504/Ada95/src/Makefile.in 2011-04-30 22:24:45.000000000 +0000
-@@ -28,7 +28,7 @@
- #
- # Author: Juergen Pfeifer, 1996
- #
--# $Id: Makefile.in,v 1.60 2011/03/31 09:46:16 tom Exp $
-+# $Id: Makefile.in,v 1.62 2011/04/30 22:24:45 tom Exp $
- #
- .SUFFIXES:
-
-@@ -218,7 +218,9 @@
- $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ -DPRAGMA_UNREF=@PRAGMA_UNREF@ $(srcdir)/$(ABASE)-trace.adb_p $@
-
- ###############################################################################
--C_OBJS = c_varargs_to_ada.o ncurses_compat.o
-+# Use these definitions when building a shared library.
-+SHARED_C_OBJS = c_varargs_to_ada.o ncurses_compat.o
-+SHARED_OBJS = $(SHARED_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
-
- c_varargs_to_ada.o : $(srcdir)/c_varargs_to_ada.c
- $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/c_varargs_to_ada.c
-@@ -227,13 +229,22 @@
- $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/ncurses_compat.c
-
- ###############################################################################
-+# Use these definitions when building a static library.
-+STATIC_C_OBJS = static_c_varargs_to_ada.o static_ncurses_compat.o
-+STATIC_OBJS = $(STATIC_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
-
--MIXED_OBJS = $(C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
-+static_c_varargs_to_ada.o : $(srcdir)/c_varargs_to_ada.c
-+ $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/c_varargs_to_ada.c
-+
-+static_ncurses_compat.o : $(srcdir)/ncurses_compat.c
-+ $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/ncurses_compat.c
-+
-+###############################################################################
-
- @USE_OLD_MAKERULES@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
- @USE_OLD_MAKERULES@ $(BUILD_DIR_LIB) \
--@USE_OLD_MAKERULES@ $(MIXED_OBJS)
--@USE_OLD_MAKERULES@ $(AR) $(ARFLAGS) $@ $(MIXED_OBJS)
-+@USE_OLD_MAKERULES@ $(STATIC_OBJS)
-+@USE_OLD_MAKERULES@ $(AR) $(ARFLAGS) $@ $(STATIC_OBJS)
-
- $(BUILD_DIR)/static-ali : ; mkdir -p $@
- $(BUILD_DIR)/static-obj : ; mkdir -p $@
-@@ -245,10 +256,10 @@
-
- @USE_GNAT_PROJECTS@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
- @USE_GNAT_PROJECTS@ $(ABASE)-trace.adb \
--@USE_GNAT_PROJECTS@ $(C_OBJS) \
-+@USE_GNAT_PROJECTS@ $(STATIC_C_OBJS) \
- @USE_GNAT_PROJECTS@ $(STATIC_DIRS)
- @USE_GNAT_PROJECTS@ $(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=static
--@USE_GNAT_PROJECTS@ $(AR) $(ARFLAGS) $@ $(C_OBJS)
-+@USE_GNAT_PROJECTS@ $(AR) $(ARFLAGS) $@ $(STATIC_C_OBJS)
- @USE_GNAT_PROJECTS@
- @USE_GNAT_LIBRARIES@install \
- @USE_GNAT_LIBRARIES@install.libs :: \
-@@ -274,8 +285,11 @@
- $(BUILD_DIR)/dynamic-obj
-
- @MAKE_ADA_SHAREDLIB@all :: $(BUILD_DIR_LIB)/$(SHARED_LIBNAME)
--@MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: $(ABASE)-trace.adb $(SHARED_DIRS)
--@MAKE_ADA_SHAREDLIB@ cp $(MIXED_OBJS) $(BUILD_DIR)/dynamic-obj/
-+@MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: \
-+@MAKE_ADA_SHAREDLIB@ $(ABASE)-trace.adb \
-+@MAKE_ADA_SHAREDLIB@ $(SHARED_DIRS) \
-+@MAKE_ADA_SHAREDLIB@ $(SHARED_OBJS)
-+@MAKE_ADA_SHAREDLIB@ cp $(SHARED_OBJS) $(BUILD_DIR)/dynamic-obj/
- @MAKE_ADA_SHAREDLIB@ $(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=dynamic
-
- install \
-Index: INSTALL
-Prereq: 1.155
---- ncurses-5.9/INSTALL 2011-03-31 08:27:24.000000000 +0000
-+++ ncurses-5.9-20130504/INSTALL 2013-03-09 21:22:04.000000000 +0000
-@@ -1,5 +1,5 @@
- -------------------------------------------------------------------------------
---- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
-+-- Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. --
- -- --
- -- Permission is hereby granted, free of charge, to any person obtaining a --
- -- copy of this software and associated documentation files (the --
-@@ -25,7 +25,7 @@
- -- sale, use or other dealings in this Software without prior written --
- -- authorization. --
- -------------------------------------------------------------------------------
---- $Id: INSTALL,v 1.155 2011/03/31 08:27:24 tom Exp $
-+-- $Id: INSTALL,v 1.167 2013/03/09 21:22:04 tom Exp $
- ---------------------------------------------------------------------
- How to install Ncurses/Terminfo on your system
- ---------------------------------------------------------------------
-@@ -407,13 +407,14 @@
-
- --disable-tic-depends
- When building shared libraries, normally the tic library is linked to
-- depend upon the ncurses library (and in turn, on the term-library if
-- the --with-termlib option was given). The tic- and term-libraries
-- ABI does not depend on the --enable-widec option. Some packagers have
-- used this to reduce the number of library files which are packaged
-- by using only one copy of those libraries. To make this work properly,
-+ depend upon the ncurses library (or equivalently, on the tinfo-library
-+ if the --with-termlib option was given). The tic- and tinfo-library
-+ ABIs do not depend on the --enable-widec option. Some packagers have
-+ used this to reduce the number of library files which are packaged by
-+ using only one copy of those libraries. To make this work properly,
- the tic library must be built without an explicit dependency on the
-- ncurses (or ncursesw) library. Use this configure option to do that.
-+ underlying library (ncurses vs ncursesw, tinfo vs tinfow). Use this
-+ configure option to do that.
- For example
- configure --with-ticlib --with-shared --disable-tic-depends
-
-@@ -555,6 +556,9 @@
- library by reducing global and static variables. This option is also
- set if --with-pthread is used.
-
-+ Enabling this option adds a "t" to the library names, except for the
-+ special case when --enable-weak-symbols is also used.
-+
- --enable-rpath
- Use rpath option when generating shared libraries, and (with some
- restrictions) when linking the corresponding programs. This originally
-@@ -595,6 +599,14 @@
- reducing the need for juggling the global SP value with set_term() and
- delscreen().
-
-+ --enable-string-hacks
-+ Controls whether strlcat and strlcpy may be used. The same issue
-+ applies to OpenBSD's warnings about snprintf, noting that this function
-+ is weakly standardized.
-+
-+ Aside from stifling these warnings, there is no functional improvement
-+ in ncurses.
-+
- --enable-symlinks
- If your system supports symbolic links, make tic use symbolic links
- rather than hard links to save diskspace when writing aliases in the
-@@ -616,6 +628,12 @@
- match is found in the terminfo database. See also the --enable-getcap
- and --enable-getcap-cache options.
-
-+ Termcap support requires run-time parsing rather than loading
-+ predigested data. If you have specified --with-ticlib, then you
-+ cannot have termcap support since run-time parsing is done in the
-+ tic library, which is intentionally not part of normal linkage
-+ dependencies.
-+
- --enable-warnings
- Turn on GCC compiler warnings. There should be only a few.
-
-@@ -740,6 +758,12 @@
- executables, e.g., by setting "--with-chtype=long" (the configure
- script supplies "unsigned").
-
-+ --with-cxx-shared
-+ When --with-shared is set, build libncurses++ as a shared library.
-+ This implicitly relies upon building with gcc/g++, since other
-+ compiler suites may have differences in the way shared libraries are
-+ built. libtool by the way has similar limitations.
-+
- --with-database=XXX
- Specify the terminfo source file to install. Usually you will wish
- to install ncurses' default (misc/terminfo.src). Certain systems
-@@ -824,7 +848,17 @@
- NOTE: a few systems build shared libraries with fixed pathnames; this
- option probably will not work for those configurations.
-
-- --with-libtool[=XXX]
-+ --with-lib-prefix=XXX
-+ OS/2 EMX used a different naming convention from most Unix-like
-+ platforms. It required that the "lib" part of a library name was
-+ omitted. Newer EMX as part of eComStation does not follow that
-+ convention. Use this option to override the configure script's
-+ assumptions about the library-prefix. If this option is omitted, it
-+ uses the original OS/2 EMX convention for that platform. Use
-+ "--with-lib-prefix=lib" for the newer EMX in eComStation. Use
-+ "--without-lib-prefix" to suppress it for other odd platforms.
-+
-+ --with-libtool[=XXX]
- Generate libraries with libtool. If this option is selected, then it
- overrides all other library model specifications. Note that libtool
- must already be installed, uses makefile rules dependent on GNU make,
-@@ -904,6 +938,10 @@
- --with-pkg-config=[DIR]
- Check for pkg-config, optionally specifying its path.
-
-+ --with-pkg-config-libdir=[DIR]
-+ If pkg-config was found, override the automatic check for its library
-+ path.
-+
- --with-profile
- Generate profile-libraries These are named by adding "_p" to the root,
- e.g., libncurses_p.a
-@@ -996,10 +1034,27 @@
- library dependencies for tic and other programs built with the tic
- library.
-
-+ --with-tparm-arg[=XXX]
-+ Override the type used for tparm() arguments, which normally is a
-+ "long". However the function must assume that its arguments can hold a
-+ pointer to char's which is not always workable for 64-bit platforms. A
-+ better choice would be intptr_t, which was not available at the time
-+ tparm's interface was defined.
-+
-+ If the option is not given, this defaults to "long".
-+
- --with-trace
- Configure the trace() function as part of the all models of the ncurses
- library. Normally it is part of the debug (libncurses_g) library only.
-
-+ --with-xterm-kbs=XXX
-+ Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
-+ backspace) or DEL (^?, or 127). XXX can be BS (or bs, 8) or DEL
-+ (or del, 127).
-+
-+ During installation, the makefile and scripts modifies the "xterm+kbs"
-+ terminfo entry to use this setting.
-+
- --with-valgrind
- For testing, compile with debug option.
- This also sets the --disable-leaks option.
-@@ -1024,6 +1079,8 @@
- install as "ncurses.h" and modify the installed headers and manpages
- accordingly.
-
-+ Likewise, do not install an alias "curses" for the ncurses manpage.
-+
- --without-cxx
- XSI curses declares "bool" as part of the interface. C++ also declares
- "bool". Neither specifies the size and type of booleans, but both
-@@ -1726,20 +1783,37 @@
- By default, there are no entries on the fallback list. After you have
- built the ncurses suite for the first time, you can change the list
- (the process needs infocmp(1)). To do so, use the script
-- ncurses/tinfo/MKfallback.sh. A configure script option
-+ ncurses/tinfo/MKfallback.sh. The configure script option
- --with-fallbacks does this (it accepts a comma-separated list of the
- names you wish, and does not require a rebuild).
-
- If you wanted (say) to have linux, vt100, and xterm fallbacks, you
-- would use the commands
-+ might use the commands
-
- cd ncurses;
-- tinfo/MKfallback.sh linux vt100 xterm >fallback.c
-+ tinfo/MKfallback.sh \
-+ $TERMINFO \
-+ ../misc/terminfo.src \
-+ `which tic` \
-+ linux vt100 xterm >fallback.c
-+
-+ The first three parameters of the script are normally supplied by
-+ the configured makefiles via the "--with-fallbacks" option. They
-+ are
-+
-+ 1) the location of the terminfo database
-+ 2) the source for the terminfo entries
-+ 3) the location of the tic program, used to create a terminfo
-+ database.
-
- Then just rebuild and reinstall the library as you would normally.
- You can restore the default empty fallback list with
-
-- tinfo/MKfallback.sh >fallback.c
-+ tinfo/MKfallback.sh \
-+ $TERMINFO \
-+ ../misc/terminfo.src \
-+ `which tic` \
-+ >fallback.c
-
- The overhead for an empty fallback list is one trivial stub function.
- Any non-empty fallback list is const-ed and therefore lives in sharable
-Index: MANIFEST
---- ncurses-5.9/MANIFEST 2011-03-28 00:29:04.000000000 +0000
-+++ ncurses-5.9-20130504/MANIFEST 2013-01-26 22:19:36.000000000 +0000
-@@ -545,6 +545,8 @@
- ./include/nc_alloc.h
- ./include/nc_mingw.h
- ./include/nc_panel.h
-+./include/nc_string.h
-+./include/nc_termios.h
- ./include/nc_tparm.h
- ./include/ncurses_cfg.hin
- ./include/ncurses_defs
-@@ -764,7 +766,6 @@
- ./mk-0th.awk
- ./mk-1st.awk
- ./mk-2nd.awk
--./mk-dlls.sh.in
- ./mk-hdr.awk
- ./ncurses/Makefile.in
- ./ncurses/README
-@@ -850,7 +851,6 @@
- ./ncurses/base/lib_wattron.c
- ./ncurses/base/lib_winch.c
- ./ncurses/base/lib_window.c
--./ncurses/base/memmove.c
- ./ncurses/base/nc_panel.c
- ./ncurses/base/resizeterm.c
- ./ncurses/base/safe_sprintf.c
-@@ -867,6 +867,12 @@
- ./ncurses/llib-lncursest
- ./ncurses/llib-lncursestw
- ./ncurses/llib-lncursesw
-+./ncurses/llib-ltic
-+./ncurses/llib-ltictw
-+./ncurses/llib-lticw
-+./ncurses/llib-ltinfo
-+./ncurses/llib-ltinfotw
-+./ncurses/llib-ltinfow
- ./ncurses/modules
- ./ncurses/tinfo/MKcaptab.awk
- ./ncurses/tinfo/MKcaptab.sh
-@@ -915,10 +921,10 @@
- ./ncurses/tinfo/make_hash.c
- ./ncurses/tinfo/make_keys.c
- ./ncurses/tinfo/name_match.c
-+./ncurses/tinfo/obsolete.c
- ./ncurses/tinfo/parse_entry.c
- ./ncurses/tinfo/read_entry.c
- ./ncurses/tinfo/read_termcap.c
--./ncurses/tinfo/setbuf.c
- ./ncurses/tinfo/strings.c
- ./ncurses/tinfo/tinfo_driver.c
- ./ncurses/tinfo/trim_sgr0.c
-@@ -943,8 +949,6 @@
- ./ncurses/tty/lib_tstp.c
- ./ncurses/tty/lib_twait.c
- ./ncurses/tty/lib_vidattr.c
--./ncurses/tty/tty_display.h
--./ncurses/tty/tty_input.h
- ./ncurses/tty/tty_update.c
- ./ncurses/wcwidth.h
- ./ncurses/widechar/charable.c
-@@ -967,9 +971,18 @@
- ./ncurses/widechar/lib_vline_set.c
- ./ncurses/widechar/lib_wacs.c
- ./ncurses/widechar/lib_wunctrl.c
-+./ncurses/widechar/widechars.c
- ./ncurses/win32con/gettimeofday.c
- ./ncurses/win32con/wcwidth.c
- ./ncurses/win32con/win_driver.c
-+./package/debian/changelog
-+./package/debian/compat
-+./package/debian/control
-+./package/debian/copyright
-+./package/debian/rules
-+./package/debian/source/format
-+./package/debian/watch
-+./package/ncurses.spec
- ./panel/Makefile.in
- ./panel/headers
- ./panel/llib-lpanel
-@@ -1022,6 +1035,7 @@
- ./test/cardfile.dat
- ./test/chgat.c
- ./test/clip_printw.c
-+./test/color_name.h
- ./test/color_set.c
- ./test/configure
- ./test/configure.in
-@@ -1092,12 +1106,15 @@
- ./test/test_instr.c
- ./test/test_inwstr.c
- ./test/test_opaque.c
-+./test/test_vid_puts.c
-+./test/test_vidputs.c
- ./test/testaddch.c
- ./test/testcurs.c
- ./test/testscanw.c
- ./test/tracemunch
- ./test/view.c
- ./test/widechars-utf8.txt
-+./test/widechars.h
- ./test/worm.c
- ./test/xmas.c
- ./test/xterm-16color.dat
-Index: Makefile.in
-Prereq: 1.30
---- ncurses-5.9/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/Makefile.in 2012-10-06 17:31:01.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.30 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.35 2012/10/06 17:31:01 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -35,7 +35,8 @@
- VPATH = @srcdir@
-
- DESTDIR=@DESTDIR@
--CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)"
-+RPATH_LIST=@RPATH_LIST@
-+TOP_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)"
-
- @SET_MAKE@
-
-@@ -48,6 +49,7 @@
-
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-+datarootdir = @datarootdir@
-
- bindir = @bindir@
- ticdir = @TERMINFO@
-@@ -87,12 +89,9 @@
- fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \
- echo '** Will overwrite non-ncurses curses.h'
-
--dlls: libs
-- $(SHELL) $(srcdir)/mk-dlls.sh
--
- distclean \
- realclean ::
-- -rm -f mk-dlls.sh mingw_arch
-+
-
- # Put the common rules here so that we can easily construct the list of
- # directories to visit.
-Index: NEWS
-Prereq: 1.1682
---- ncurses-5.9/NEWS 2011-04-04 00:02:42.000000000 +0000
-+++ ncurses-5.9-20130504/NEWS 2013-05-04 23:03:37.000000000 +0000
-@@ -1,5 +1,5 @@
- -------------------------------------------------------------------------------
---- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
-+-- Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. --
- -- --
- -- Permission is hereby granted, free of charge, to any person obtaining a --
- -- copy of this software and associated documentation files (the --
-@@ -25,7 +25,7 @@
- -- sale, use or other dealings in this Software without prior written --
- -- authorization. --
- -------------------------------------------------------------------------------
---- $Id: NEWS,v 1.1682 2011/04/04 00:02:42 tom Exp $
-+-- $Id: NEWS,v 1.2053 2013/05/04 23:03:37 tom Exp $
- -------------------------------------------------------------------------------
-
- This is a log of changes that ncurses has gone through since Zeyd started
-@@ -45,6 +45,1074 @@
- Changes through 1.9.9e did not credit all contributions;
- it is not possible to add this information.
-
-+20130504
-+ + fixes for issues found by Coverity:
-+ + correct FNKEY() macro in progs/dump_entry.c, allowing kf11-kf63 to
-+ display when infocmp's -R option is used for HP or AIX subsets.
-+ + fix dead-code issue with test/movewindow.c
-+ + improve limited-checking in _nc_read_termtype().
-+
-+20130427
-+ + fix clang 3.2 warning in progs/dump_entry.c
-+ + drop AC_TYPE_SIGNAL check; ncurses relies on c89 and later.
-+
-+20130413
-+ + add MinGW to cases where ncurses installs by default into /usr
-+ (prompted by discussion with Daniel Silva Ferreira).
-+ + add -D option to infocmp's usage-message (patch by Miroslav Lichvar).
-+ + add a missing 'int' type for main function in configure check for
-+ type of bool variable, to work with clang 3.2 (report by Dmitri
-+ Gribenko).
-+ + improve configure check for static_cast, to work with clang 3.2
-+ (report by Dmitri Gribenko).
-+ + re-order rule for demo.o and macros defining header dependencies in
-+ c++/Makefile.in to accommodate gmake (report by Dmitri Gribenko).
-+
-+20130406
-+ + improve parameter checking in copywin().
-+ + modify configure script to work around OS X's "libtool" program, to
-+ choose glibtool instead. At the same time, chance the autoconf macro
-+ to look for a "tool" rather than a "prog", to help with potential use
-+ in cross-compiling.
-+ + separate the rpath usage for c++ library from demo program
-+ (Redhat #911540)
-+ + update/correct header-dependencies in c++ makefile (report by Werner
-+ Fink).
-+ + add --with-cxx-shared to dpkg-script, as done for rpm-script.
-+
-+20130324
-+ + build-fix for libtool configuration (reports by Daniel Silva Ferreira
-+ and Roumen Petrov).
-+
-+20130323
-+ + build-fix for OS X, to handle changes for --with-cxx-shared feature
-+ (report by Christian Ebert).
-+ + change initialization for vt220, similar entries for consistency
-+ with cursor-key strings (NetBSD #47674) -TD
-+ + further improvements to linux-16color (Benjamin Sittler)
-+
-+20130316
-+ + additional fix for tic.c, to allocate missing buffer space.
-+ + eliminate configure-script warnings for gen-pkgconfig.in
-+ + correct typo in sgr string for sun-color,
-+ add bold for consistency with sgr,
-+ change smso for consistency with sgr -TD
-+ + correct typo in sgr string for terminator -TD
-+ + add blink to the attributes masked by ncv in linux-16color (report
-+ by Benjamin Sittler)
-+ + improve warning message from post-load checking for missing "%?"
-+ operator by tic/infocmp by showing the entry name and capability.
-+ + minor formatting improvement to tic/infocmp -f option to ensure
-+ line split after "%;".
-+ + amend scripting for --with-cxx-shared option to handle the debug
-+ library "libncurses++_g.a" (report by Sven Joachim).
-+
-+20130309
-+ + amend change to toe.c for reading from /dev/zero, to ensure that
-+ there is a buffer for the temporary filename (cf: 20120324).
-+ + regenerated html manpages.
-+ + fix typo in terminfo.head (report by Sven Joachim, cf: 20130302).
-+ + updated some autoconf macros:
-+ + CF_ACVERSION_CHECK, from byacc 1.9 20130304
-+ + CF_INTEL_COMPILER, CF_XOPEN_SOURCE from luit 2.0-20130217
-+ + add configure option --with-cxx-shared to permit building
-+ libncurses++ as a shared library when using g++, e.g., the same
-+ limitations as libtool but better integrated with the usual build
-+ configuration (Redhat #911540).
-+ + modify MKkey_defs.sh to filter out build-path which was unnecessarily
-+ shown in curses.h (Debian #689131).
-+
-+20130302
-+ + add section to terminfo manpage discussing user-defined capabilities.
-+ + update manpage description of NCURSES_NO_SETBUF, explaining why it
-+ is obsolete.
-+ + add a check in waddch_nosync() to ensure that tab characters are
-+ treated as control characters; some broken locales claim they are
-+ printable.
-+ + add some traces to the Windows console driver.
-+ + initialize a temporary array in _nc_mbtowc, needed for some cases
-+ of raw input in MinGW port.
-+
-+20130218
-+ + correct ifdef on change to lib_twait.c (report by Werner Fink).
-+ + update config.guess, config.sub
-+
-+20130216
-+ + modify test/testcurs.c to work with mouse for ncurses as it does for
-+ pdcurses.
-+ + modify test/knight.c to work with mouse for pdcurses as it does for
-+ ncurses.
-+ + modify internal recursion in wgetch() which handles cooked mode to
-+ check if the call to wgetnstr() returned an error. This can happen
-+ when both nocbreak() and nodelay() are set, for instance (report by
-+ Nils Christopher Brause) (cf: 960418).
-+ + fixes for issues found by Coverity:
-+ + add a check for valid position in ClearToEOS()
-+ + fix in lib_twait.c when --enable-wgetch-events is used, pointer
-+ use after free.
-+ + improve a limit-check in make_hash.c
-+ + fix a memory leak in hashed_db.c
-+
-+20130209
-+ + modify test/configure script to make it simpler to override names
-+ of curses-related libraries, to help with linking with pdcurses in
-+ mingw environment.
-+ + if the --with-terminfo-dirs configure option is not used, there is
-+ no corresponding compiled-in value for that. Fill in "no default
-+ value" for that part of the manpage substitution.
-+
-+20130202
-+ + correct initialization in knight.c which let it occasionally make
-+ an incorrect move (cf: 20001028).
-+ + improve documentation of the terminfo/termcap search path.
-+
-+20130126
-+ + further fixes to mvcur to pass callback function (cf: 20130112),
-+ needed to make test/dots_mvcur work.
-+ + reduce calls to SetConsoleActiveScreenBuffer in win_driver.c, to
-+ help reduce flicker.
-+ + modify configure script to omit "+b" from linker options for very
-+ old HP-UX systems (report by Dennis Grevenstein)
-+ + add HP-UX workaround for missing EILSEQ on old HP-UX systems (patch
-+ by Dennis Grevenstein).
-+ + restore memmove/strdup support for antique systems (request by
-+ Dennis Grevenstein).
-+ + change %l behavior in tparm to push the string length onto the stack
-+ rather than saving the formatted length into the output buffer
-+ (report by Roy Marples, cf: 980620).
-+
-+20130119
-+ + fixes for issues found by Coverity:
-+ + fix memory leak in safe_sprintf.c
-+ + add check for return-value in tty_update.c
-+ + correct initialization for -s option in test/view.c
-+ + add check for numeric overflow in lib_instr.c
-+ + improve error-checking in copywin
-+ + add advice in infocmp manpage for termcap users (Debian #698469).
-+ + add "-y" option to test/demo_termcap and test/demo_terminfo to
-+ demonstrate behavior with/without extended capabilities.
-+ + updated termcap manpage to document legacy termcap behavior for
-+ matching capability names.
-+ + modify name-comparison for tgetstr, etc., to accommodate legacy
-+ applications as well as to improve compatbility with BSD 4.2
-+ termcap implementations (Debian #698299) (cf: 980725).
-+
-+20130112
-+ + correct prototype in manpage for vid_puts.
-+ + drop ncurses/tty/tty_display.h, ncurses/tty/tty_input.h, since they
-+ are unused in the current driver model.
-+ + modify mvcur to use stdout except when called within the ncurses
-+ library.
-+ + modify vidattr and vid_attr to use stdout as documented in manpage.
-+ + amend changes made to buffering in 20120825 so that the low-level
-+ putp() call uses stdout rather than ncurses' internal buffering.
-+ The putp_sp() call does the same, for consistency (Redhat #892674).
-+
-+20130105
-+ + add "-s" option to test/view.c to allow it to start in single-step
-+ mode, reducing size of trace files when it is used for debugging
-+ MinGW changes.
-+ + revert part of 20121222 change to tinfo_driver.c
-+ + add experimental logic in win_driver.c to improve optimization of
-+ screen updates. This does not yet work with double-width characters,
-+ so it is ifdef'd out for the moment (prompted by report by Erwin
-+ Waterlander regarding screen flicker).
-+
-+20121229
-+ + fix coverity warnings regarding copying into fixed-size buffers.
-+ + add throw-declarations in the c++ binding per Coverity warning.
-+ + minor changes to new-items for consistent reference to bug-report
-+ numbers.
-+
-+20121222
-+ + add *.dSYM directories to clean-rule in ncurses directory makefile,
-+ for Mac OS builds.
-+ + add a configure check for gcc option -no-cpp-precomp, which is not
-+ available in all Mac OS X configurations (report by Andras Salamon,
-+ cf: 20011208).
-+ + improve 20021221 workaround for broken acs, handling a case where
-+ that ACS_xxx character is not in the acsc string but there is a known
-+ wide-character which can be used.
-+
-+20121215
-+ + fix several warnings from clang 3.1 --analyze, includes correcting
-+ a null-pointer check in _nc_mvcur_resume.
-+ + correct display of double-width characters with MinGW port (report
-+ by Erwin Waterlander).
-+ + replace MinGW's wcrtomb(), fixing a problem with _nc_viscbuf
-+ > fixes based on Coverity report:
-+ + correct coloring in test/bs.c
-+ + correct check for 8-bit value in _nc_insert_ch().
-+ + remove dead code in progs/tset.c, test/linedata.h
-+ + add null-pointer checks in lib_tracemse.c, panel.priv.h, and some
-+ test-programs.
-+
-+20121208
-+ + modify test/knight.c to show the number of choices possible for
-+ each position in automove option, e.g., to allow user to follow
-+ Warnsdorff's rule to solve the puzzle.
-+ + modify test/hanoi.c to show the minimum number of moves possible for
-+ the given number of tiles (prompted by patch by Lucas Gioia).
-+ > fixes based on Coverity report:
-+ + remove a few redundant checks.
-+ + correct logic in test/bs.c, when randomly placing a specific type of
-+ ship.
-+ + check return value from remove/unlink in tic.
-+ + check return value from sscanf in test/ncurses.c
-+ + fix a null dereference in c++/cursesw.cc
-+ + fix two instances of uninitialized variables when configuring for the
-+ terminal driver.
-+ + correct scope of variable used in SetSafeOutcWrapper macro.
-+ + set umask when calling mkstemp in tic.
-+ + initialize wbkgrndset() temporary variable when extended-colors are
-+ used.
-+
-+20121201
-+ + also replace MinGW's wctomb(), fixing a problem with setcchar().
-+ + modify test/view.c to load UTF-8 when built with MinGW by using
-+ regular win32 API because the MinGW functions mblen() and mbtowc()
-+ do not work.
-+
-+20121124
-+ + correct order of color initialization versus display in some of the
-+ test-programs, e.g., test_addstr.c
-+ > fixes based on Coverity report:
-+ + delete windows on exit from some of the test-programs.
-+
-+20121117
-+ > fixes based on Coverity report:
-+ + add missing braces around FreeAndNull in two places.
-+ + various fixes in test/ncurses.c
-+ + improve limit-checks in tinfo/make_hash.c, tinfo/read_entry.c
-+ + correct malloc size in progs/infocmp.c
-+ + guard against negative array indices in test/knight.c
-+ + fix off-by-one limit check in test/color_name.h
-+ + add null-pointer check in progs/tabs.c, test/bs.c, test/demo_forms.c,
-+ test/inchs.c
-+ + fix memory-leak in tinfo/lib_setup.c, progs/toe.c,
-+ test/clip_printw.c, test/demo_menus.c
-+ + delete unused windows in test/chgat.c, test/clip_printw.c,
-+ test/insdelln.c, test/newdemo.c on error-return.
-+
-+20121110
-+ + modify configure macro CF_INCLUDE_DIRS to put $CPPFLAGS after the
-+ local -I include options in case someone has set conflicting -I
-+ options in $CPPFLAGS (prompted by patch for ncurses/Makefile.in by
-+ Vassili Courzakis).
-+ + modify the ncurses*-config scripts to eliminate relative paths from
-+ the RPATH_LIST variable, e.g., "../lib" as used in installing shared
-+ libraries or executables.
-+
-+20121102
-+ + realign these related pages:
-+ curs_add_wchstr.3x
-+ curs_addchstr.3x
-+ curs_addstr.3x
-+ curs_addwstr.3x
-+ and fix a long-ago error in curs_addstr.3x which said that a -1
-+ length parameter would only write as much as fit onto one line
-+ (report by Reuben Thomas).
-+ + remove obsolete fallback _nc_memmove() for memmove()/bcopy().
-+ + remove obsolete fallback _nc_strdup() for strdup().
-+ + cancel any debug-rpm in package/ncurses.spec
-+ + reviewed vte-2012, reverted most of the change since it was incorrect
-+ based on testing with tack -TD
-+ + un-cancel the initc in vte-256color, since this was implemented
-+ starting with version 0.20 in 2009 -TD
-+
-+20121026
-+ + improve malloc/realloc checking (prompted by discussion in Redhat
-+ #866989).
-+ + add ncurses test-program as "ncurses6" to the rpm- and dpkg-scripts.
-+ + updated configure macros CF_GCC_VERSION and CF_WITH_PATHLIST. The
-+ first corrects pattern used for Mac OS X's customization of gcc.
-+
-+20121017
-+ + fix change to _nc_scroll_optimize(), which incorrectly freed memory
-+ (Redhat #866989).
-+
-+20121013
-+ + add vte-2012, gnome-2012, making these the defaults for vte/gnome
-+ (patch by Christian Persch).
-+
-+20121006
-+ + improve CF_GCC_VERSION to work around Debian's customization of gcc
-+ --version message.
-+ + improve configure macros as done in byacc:
-+ + drop 2.13 compatibility; use 2.52.xxxx version only since EMX port
-+ has used that for a while.
-+ + add 3rd parameter to AC_DEFINE's to allow autoheader to run, i.e.,
-+ for experimental use.
-+ + remove unused configure macros.
-+ + modify configure script and makefiles to quiet new autoconf warning
-+ for LIBS_TO_MAKE variable.
-+ + modify configure script to show $PATH_SEPARATOR variable.
-+ + update config.guess, config.sub
-+
-+20120922
-+ + modify setupterm to set its copy of TERM to "unknown" if configured
-+ for the terminal driver and TERM was null or empty.
-+ + modify treatment of TERM variable for MinGW port to allow explicit
-+ use of the windows console driver by checking if $TERM is set to
-+ "#win32con" or an abbreviation of that.
-+ + undo recent change to fallback definition of vsscanf() to build with
-+ older Solaris compilers (cf: 20120728).
-+
-+20120908
-+ + add test-screens to test/ncurses to show 256-characters at a time,
-+ to help with MinGW port.
-+
-+20120903
-+ + simplify varargs logic in lib_printw.c; va_copy is no longer needed
-+ there.
-+ + modifications for MinGW port to make wide-character display usable.
-+
-+20120902
-+ + regenerate configure script (report by Sven Joachim, cf: 20120901).
-+
-+20120901
-+ + add a null-pointer check in _nc_flush (cf: 20120825).
-+ + fix a case in _nc_scroll_optimize() where the _oldnums_list array
-+ might not be allocated.
-+ + improve comparisons in configure.in for unset shell variables.
-+
-+20120826
-+ + increase size of ncurses' output-buffer, in case of very small
-+ initial screen-sizes.
-+ + fix evaluation of TERMINFO and TERMINFO_DIRS default values as needed
-+ after changes to use --datarootdir (reports by Gabriele Balducci,
-+ Roumen Petrov).
-+
-+20120825
-+ + change output buffering scheme, using buffer maintained by ncurses
-+ rather than stdio, to avoid problems with SIGTSTP handling (report
-+ by Brian Bloniarz).
-+
-+20120811
-+ + update autoconf patch to 2.52.20120811, adding --datarootdir
-+ (prompted by discussion with Erwin Waterlander).
-+ + improve description of --enable-reentrant option in README and the
-+ INSTALL file.
-+ + add nsterm-256color, make this the default nsterm -TD
-+ + remove bw from nsterm-bce, per testing with tack -TD
-+
-+20120804
-+ + update test/configure, adding check for tinfo library.
-+ + improve limit-checks for the getch fifo (report by Werner Fink).
-+ + fix a remaining mismatch between $with_echo and the symbols updated
-+ for CF_DISABLE_ECHO affecting parameters for mk-2nd.awk (report by
-+ Sven Joachim, cf: 20120317).
-+ + modify followup check for pkg-config's library directory in the
-+ --enable-pc-files option to validate syntax (report by Sven Joachim,
-+ cf: 20110716).
-+
-+20120728
-+ + correct path for ncurses_mingw.h in include/headers, in case build
-+ is done outside source-tree (patch by Roumen Petrov).
-+ + modify some older xterm entries to align with xterm source -TD
-+ + separate "xterm-old" alias from "xterm-r6" -TD
-+ + add E3 extended capability to xterm-basic and putty -TD
-+ + parenthesize parameters of other macros in curses.h -TD
-+ + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h
-+ in case it happens to be a comma-expression, etc. (patch by Nick
-+ Black).
-+
-+20120721
-+ + improved form_request_by_name() and menu_request_by_name().
-+ + eliminate two fixed-size buffers in toe.c
-+ + extend use_tioctl() to have expected behavior when use_env(FALSE) and
-+ use_tioctl(TRUE) are called.
-+ + modify ncurses test-program, adding -E and -T options to demonstrate
-+ use_env() versus use_tioctl().
-+
-+20120714
-+ + add use_tioctl() function (adapted from patch by Werner Fink,
-+ Novell #769788):
-+
-+20120707
-+ + add ncurses_mingw.h to installed headers (prompted by patch by
-+ Juergen Pfeifer).
-+ + clarify return-codes from wgetch() in response to SIGWINCH (prompted
-+ by Novell #769788).
-+ + modify resizeterm() to always push a KEY_RESIZE onto the fifo, even
-+ if screensize is unchanged. Modify _nc_update_screensize() to push a
-+ KEY_RESIZE if there was a SIGWINCH, even if it does not call
-+ resizeterm(). These changes eliminate the case where a SIGWINCH is
-+ received, but ERR returned from wgetch or wgetnstr because the screen
-+ dimensions did not change (Novell #769788).
-+
-+20120630
-+ + add --enable-interop to sample package scripts (suggested by Juergen
-+ Pfeifer).
-+ + update CF_PATH_SYNTAX macro, from mawk changes.
-+ + modify mk-0th.awk to allow for generating llib-ltic, etc., though
-+ some work is needed on cproto to work with lib_gen.c to update
-+ llib-lncurses.
-+ + remove redundant getenv() cal in database-iterator leftover from
-+ cleanup in 20120622 changes (report by Sven Joachim).
-+
-+20120622
-+ + add -d, -e and -q options to test/demo_terminfo and test/demo_termcap
-+ + fix caching of environment variables in database-iterator (patch by
-+ Philippe Troin, Redhat #831366).
-+
-+20120616
-+ + add configure check to distinguish clang from gcc to eliminate
-+ warnings about unused command-line parameters when compiler warnings
-+ are enabled.
-+ + improve behavior when updating terminfo entries which are hardlinked
-+ by allowing for the possibility that an alias has been repurposed to
-+ a new primary name.
-+ + fix some strict compiler warnings based on package scripts.
-+ + further fixes for configure check for working poll (Debian #676461).
-+
-+20120608
-+ + fix an uninitialized variable in -c/-n logic for infocmp changes
-+ (cf: 20120526).
-+ + corrected fix for building c++ binding with clang 3.0 (report/patch
-+ by Richard Yao, Gentoo #417613, cf: 20110409)
-+ + correct configure check for working poll, fixing the case where stdin
-+ is redirected, e.g., in rpm/dpkg builds (Debian #676461).
-+ + add rpm- and dpkg-scripts, to test those build-environments.
-+ The resulting packages are used only for testing.
-+
-+20120602
-+ + add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD
-+ + add kdch1, etc., to qvt108 -TD
-+ + add dl1/il1 to some entries based on dl/il values -TD
-+ + add dl to simpleterm -TD
-+ + add consistency-checks in tic for insert-line vs delete-line
-+ controls, and insert/delete-char keys
-+ + correct no-leaks logic in infocmp when doing comparisons, fixing
-+ duplicate free of entries given via the command-line, and freeing
-+ entries loaded from the last-but-one of files specified on the
-+ command-line.
-+ + add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord,
-+ analysis by Martin Husemann).
-+ + add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by
-+ Onno van der Linden).
-+
-+20120526
-+ + extend -c and -n options of infocmp to allow comparing more than two
-+ entries.
-+ + correct check in infocmp for number of terminal names when more than
-+ two are given.
-+ + correct typo in curs_threads.3x (report by Yanhui Shen on
-+ freebsd-hackers mailing list).
-+
-+20120512
-+ + corrected 'op' for bterm (report by Samuel Thibault) -TD
-+ + modify test/background.c to demonstrate a background character
-+ holding a colored ACS_HLINE. The behavior differs from SVr4 due to
-+ the thick- and double-line extension (cf: 20091003).
-+ + modify handling of acs characters in PutAttrChar to avoid mapping an
-+ unmapped character to a space with A_ALTCHARSET set.
-+ + rewrite vt520 entry based on vt420 -TD
-+
-+20120505
-+ + remove p6 (bold) from opus3n1+ for consistency -TD
-+ + remove acs stuff from env230 per clues in Ingres termcap -TD
-+ + modify env230 sgr/sgr0 to match other capabilities -TD
-+ + modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD
-+ + make sgr for dku7202 agree with other caps -TD
-+ + make sgr for ibmpc agree with other caps -TD
-+ + make sgr for tek4107 agree with other caps -TD
-+ + make sgr for ndr9500 agree with other caps -TD
-+ + make sgr for sco-ansi agree with other caps -TD
-+ + make sgr for d410 agree with other caps -TD
-+ + make sgr for d210 agree with other caps -TD
-+ + make sgr for d470c, d470c-7b agree with other caps -TD
-+ + remove redundant AC_DEFINE for NDEBUG versus Makefile definition.
-+ + fix a back-link in _nc_delink_entry(), which is needed if ncurses is
-+ configured with --enable-termcap and --disable-getcap.
-+
-+20120428
-+ + fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
-+ + add eslok flag to dec+sl -TD
-+ + dec+sl applies to vt320 and up -TD
-+ + drop wsl width from xterm+sl -TD
-+ + reuse xterm+sl in putty and nsca-m -TD
-+ + add ansi+tabs to vt520 -TD
-+ + add ansi+enq to vt220-vt520 -TD
-+ + fix a compiler warning in example in ncurses-intro.doc (Paul Waring).
-+ + added paragraph in keyname manpage telling how extended capabilities
-+ are interpreted as key definitions.
-+ + modify tic's check of conflicting key definitions to include extended
-+ capability strings in addition to the existing check on predefined
-+ keys.
-+
-+20120421
-+ + improve cleanup of temporary files in tic using atexit().
-+ + add msgr to vt420, similar DEC vtXXX entries -TD
-+ + add several missing vt420 capabilities from vt220 -TD
-+ + factor out ansi+pp from several entries -TD
-+ + change xterm+sl and xterm+sl-twm to include only the status-line
-+ capabilities and not "use=xterm", making them more generally useful
-+ as building-blocks -TD
-+ + add dec+sl building block, as example -TD
-+
-+20120414
-+ + add XT to some terminfo entries to improve usefulness for other
-+ applications than screen, which would like to pretend that xterm's
-+ title is a status-line. -TD
-+ + change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review
-+ of ordering and overrides -TD
-+ + add consistency check in tic for screen's "XT" capability.
-+ + add section in terminfo.src summarizing the user-defined capabilities
-+ used in that file -TD
-+
-+20120407
-+ + fix an inconsistency between tic/infocmp "-x" option; tic omits all
-+ non-standard capabilities, while infocmp was ignoring only the user
-+ definable capabilities.
-+ + improve special case in tic parsing of description to allow it to be
-+ followed by terminfo capabilities. Previously the description had to
-+ be the last field on an input line to allow tic to distinguish
-+ between termcap and terminfo format while still allowing commas to be
-+ embedded in the description.
-+ + correct variable name in gen_edit.sh which broke configurability of
-+ the --with-xterm-kbs option.
-+ + revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD
-+ + further amend 20110910 change, providing for configure-script
-+ override of the "linux" terminfo entry to install and changing the
-+ default for that to "linux2.2" (Debian #665959).
-+
-+20120331
-+ + update Ada95/configure to use CF_DISABLE_ECHO (cf: 20120317).
-+ + correct order of use-clauses in st-256color -TD
-+ + modify configure script to look for gnatgcc if the Ada95 binding
-+ is built, in preference to the default gcc/cc (suggested by
-+ Nicolas Boulenguez).
-+ + modify configure script to ensure that the same -On option used for
-+ the C compiler in CFLAGS is used for ADAFLAGS rather than simply
-+ using "-O3" (suggested by Nicolas Boulenguez)
-+
-+20120324
-+ + amend an old fix so that next_char() exits properly for empty files,
-+ e.g., from reading /dev/null (cf: 20080804).
-+ + modify tic so that it can read from the standard input, or from
-+ a character device. Because tic uses seek's, this requires writing
-+ the data to a temporary file first (prompted by remark by Sven
-+ Joachim) (cf: 20000923).
-+
-+20120317
-+ + correct a check made in lib_napms.c, so that terminfo applications
-+ can again use napms() (cf: 20110604).
-+ + add a note in tic.h regarding required casts for ABSENT_BOOLEAN
-+ (cf: 20040327).
-+ + correct scripting for --disable-echo option in test/configure.
-+ + amend check for missing c++ compiler to work when no error is
-+ reported, and no variables set (cf: 20021206).
-+ + add/use configure macro CF_DISABLE_ECHO.
-+
-+20120310
-+ + fix some strict compiler warnings for abi6 and 64-bits.
-+ + use begin_va_copy/end_va_copy macros in lib_printw.c (cf: 20120303).
-+ + improve a limit-check in infocmp.c (Werner Fink):
-+
-+20120303
-+ + minor tidying of terminfo.tail, clarify reason for limitation
-+ regarding mapping of \0 to \200
-+ + minor improvement to _nc_copy_termtype(), using memcpy to replace
-+ loops.
-+ + fix no-leaks checking in test/demo_termcap.c to account for multiple
-+ calls to setupterm().
-+ + modified the libgpm change to show previous load as a problem in the
-+ debug-trace.
-+ > merge some patches from OpenSUSE rpm (Werner Fink):
-+ + ncurses-5.7-printw.dif, fixes for varargs handling in lib_printw.c
-+ + ncurses-5.7-gpm.dif, do not dlopen libgpm if already loaded by
-+ runtime linker
-+ + ncurses-5.6-fallback.dif, do not free arrays and strings from static
-+ fallback entries
-+
-+20120228
-+ + fix breakage in tic/infocmp from 20120225 (report by Werner Fink).
-+
-+20120225
-+ + modify configure script to allow creating dll's for MinGW when
-+ cross-compiling.
-+ + add --enable-string-hacks option to control whether strlcat and
-+ strlcpy may be used. The same issue applies to OpenBSD's warnings
-+ about snprintf, noting that this function is weakly standardized.
-+ + add configure checks for strlcat, strlcpy and snprintf, to help
-+ reduce bogus warnings with OpenBSD builds.
-+ + build-fix for OpenBSD 4.9 to supply consistent intptr_t declaration
-+ (cf:20111231)
-+ + update config.guess, config.sub
-+
-+20120218
-+ + correct CF_ETIP_DEFINES configure macro, making it exit properly on
-+ the first success (patch by Pierre Labastie).
-+ + improve configure macro CF_MKSTEMP by moving existence-check for
-+ mkstemp out of the AC_TRY_RUN, to help with cross-compiles.
-+ + improve configure macro CF_FUNC_POLL from luit changes to detect
-+ broken implementations, e.g., with Mac OS X.
-+ + add configure option --with-tparm-arg
-+ + build-fix for MinGW cross-compiling, so that make_hash does not
-+ depend on TTY definition (cf: 20111008).
-+
-+20120211
-+ + make sgr for xterm-pcolor agree with other caps -TD
-+ + make sgr for att5425 agree with other caps -TD
-+ + make sgr for att630 agree with other caps -TD
-+ + make sgr for linux entries agree with other caps -TD
-+ + make sgr for tvi9065 agree with other caps -TD
-+ + make sgr for ncr260vt200an agree with other caps -TD
-+ + make sgr for ncr160vt100pp agree with other caps -TD
-+ + make sgr for ncr260vt300an agree with other caps -TD
-+ + make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD
-+ + make sgr for cygwin, cygwinDBG agree with other caps -TD
-+ + add configure option --with-xterm-kbs to simplify configuration for
-+ Linux versus most other systems.
-+
-+20120204
-+ + improved tic -D option, avoid making target directory and provide
-+ better diagnostics.
-+
-+20120128
-+ + add mach-gnu (Debian #614316, patch by Samuel Thibault)
-+ + add mach-gnu-color, tweaks to mach-gnu terminfo -TD
-+ + make sgr for sun-color agree with smso -TD
-+ + make sgr for prism9 agree with other caps -TD
-+ + make sgr for icl6404 agree with other caps -TD
-+ + make sgr for ofcons agree with other caps -TD
-+ + make sgr for att5410v1, att4415, att620 agree with other caps -TD
-+ + make sgr for aaa-unk, aaa-rv agree with other caps -TD
-+ + make sgr for avt-ns agree with other caps -TD
-+ + amend fix intended to separate fixups for acsc to allow "tic -cv" to
-+ give verbose warnings (cf: 20110730).
-+ + modify misc/gen-edit.sh to make the location of the tabset directory
-+ consistent with misc/Makefile.in, i.e., using ${datadir}/tabset
-+ (Debian #653435, patch by Sven Joachim).
-+
-+20120121
-+ + add --with-lib-prefix option to allow configuring for old/new flavors
-+ of OS/2 EMX.
-+ + modify check for gnat version to allow for year, as used in FreeBSD
-+ port.
-+ + modify check_existence() in db_iterator.c to simply check if the
-+ path is a directory or file, according to the need. Checking for
-+ directory size also gives no usable result with OS/2 (cf: 20120107).
-+ + support OS/2 kLIBC (patch by KO Myung-Han).
-+
-+20120114
-+ + several improvements to test/movewindow.c (prompted by discussion on
-+ Linux Mint forum):
-+ + modify movement commands to make them continuous
-+ + rewrote the test for mvderwin
-+ + rewrote the test for recursive mvwin
-+ + split-out reusable CF_WITH_NCURSES_ETC macro in test/configure.in
-+ + updated configure macro CF_XOPEN_SOURCE, build-fixes for Mac OS X
-+ and OpenBSD.
-+ + regenerated html manpages.
-+
-+20120107
-+ + various improvments for MinGW (Juergen Pfeifer):
-+ + modify stat() calls to ignore the st_size member
-+ + drop mk-dlls.sh script.
-+ + change recommended regular expression library.
-+ + modify rain.c to allow for threaded configuraton.
-+ + modify tset.c to allow for case when size-change logic is not used.
-+
-+20111231
-+ + modify toe's report when -a and -s options are combined, to add
-+ a column showing which entries belong to a given database.
-+ + add -s option to toe, to sort its output.
-+ + modify progs/toe.c, simplifying use of db-iterator results to use
-+ caching improvements from 20111001 and 20111126.
-+ + correct generation of pc-files when ticlib or termlib options are
-+ given to rename the corresponding tic- or tinfo-libraries (report
-+ by Sven Joachim).
-+
-+20111224
-+ + document a portability issue with tput, i.e., that scripts which work
-+ with ncurses may fail in other implementations that do no parameter
-+ analysis.
-+ + add putty-sco entry -TD
-+
-+20111217
-+ + review/fix places in manpages where --program-prefix configure option
-+ was not being used.
-+ + add -D option to infocmp, to show the database locations that it
-+ could use.
-+ + fix build for the special case where term-driver, ticlib and termlib
-+ are all enabled. The terminal driver depends on a few features in
-+ the base ncurses library, so tic's dependencies include both ncurses
-+ and termlib.
-+ + fix build work for term-driver when --enable-wgetch-events option is
-+ enabled.
-+ + use <stdint.h> types to fix some questionable casts to void*.
-+
-+20111210
-+ + modify configure script to check if thread library provides
-+ pthread_mutexattr_settype(), e.g., not provided by Solaris 2.6
-+ + modify configure script to suppress check to define _XOPEN_SOURCE
-+ for IRIX64, since its header files have a conflict versus
-+ _SGI_SOURCE.
-+ + modify configure script to add ".pc" files for tic- and
-+ tinfo-libraries, which were omitted in recent change (cf: 20111126).
-+ + fix inconsistent checks on $PKG_CONFIG variable in configure script.
-+
-+20111203
-+ + modify configure-check for etip.h dependencies, supplying a temporary
-+ copy of ncurses_dll.h since it is a generated file (prompted by
-+ Debian #646977).
-+ + modify CF_CPP_PARAM_INIT "main" function to work with current C++.
-+
-+20111126
-+ + correct database iterator's check for duplicate entries
-+ (cf: 20111001).
-+ + modify database iterator to ignore $TERMCAP when it is not an
-+ absolute pathname.
-+ + add -D option to tic, to show the database locations that it could
-+ use.
-+ + improve description of database locations in tic manpage.
-+ + modify the configure script to generate a list of the ".pc" files to
-+ generate, rather than deriving the list from the libraries which have
-+ been built (patch by Mike Frysinger).
-+ + use AC_CHECK_TOOLS in preference to AC_PATH_PROGS when searching for
-+ ncurses*-config, e.g., in Ada95/configure and test/configure (adapted
-+ from patch by Mike Frysinger).
-+
-+20111119
-+ + remove obsolete/conflicting fallback definition for _POSIX_SOURCE
-+ from curses.priv.h, fixing a regression with IRIX64 and Tru64
-+ (cf: 20110416)
-+ + modify _nc_tic_dir() to ensure that its return-value is nonnull,
-+ i.e., the database iterator was not initialized. This case is needed
-+ to when tic is translating to termcap, rather than loading the
-+ database (cf: 20111001).
-+
-+20111112
-+ + add pccon entries for OpenBSD console (Alexei Malinin).
-+ + build-fix for OpenBSD 4.9 with gcc 4.2.1, setting _XOPEN_SOURCE to
-+ 600 to work around inconsistent ifdef'ing of wcstof between C and
-+ C++ header files.
-+ + modify capconvert script to accept more than exact match on "xterm",
-+ e.g., the "xterm-*" variants, to exclude from the conversion (patch
-+ by Robert Millan).
-+ + add -lc_r as alternative for -lpthread, allows build of threaded code
-+ in older FreeBSD machines.
-+ + build-fix for MirBSD, which fails when either _XOPEN_SOURCE or
-+ _POSIX_SOURCE are defined.
-+ + fix a typo misc/Makefile.in, used in uninstalling pc-files.
-+
-+20111030
-+ + modify make_db_path() to allow creating "terminfo.db" in the same
-+ directory as an existing "terminfo" directory. This fixes a case
-+ where switching between hashed/filesystem databases would cause the
-+ new hashed database to be installed in the next best location -
-+ root's home directory.
-+ + add variable cf_cv_prog_gnat_correct to those passed to
-+ config.status, fixing a problem with Ada95 builds (cf: 20111022).
-+ + change feature test from _XPG5 to _XOPEN_SOURCE in two places, to
-+ accommodate broken implementations for _XPG6.
-+ + eliminate usage of NULL symbol from etip.h, to reduce header
-+ interdependencies.
-+ + add configure check to decide when to add _XOPEN_SOURCE define to
-+ compiler options, i.e., for Solaris 10 and later (cf: 20100403).
-+ This is a workaround for gcc 4.6, which fails to build the c++
-+ binding if that symbol is defined by the application, due to
-+ incorrectly combining the corresponding feature test macros
-+ (report by Peter Kruse).
-+
-+20111022
-+ + correct logic for discarding mouse events, retaining the partial
-+ events used to build up click, double-click, etc, until needed
-+ (cf: 20110917).
-+ + fix configure script to avoid creating unused Ada95 makefile when
-+ gnat does not work.
-+ + cleanup width-related gcc 3.4.3 warnings for 64-bit platform, for the
-+ internal functions of libncurses. The external interface of courses
-+ uses bool, which still produces these warnings.
-+
-+20111015
-+ + improve description of --disable-tic-depends option to make it
-+ clear that it may be useful whether or not the --with-termlib
-+ option is also given (report by Sven Joachim).
-+ + amend termcap equivalent for set_pglen_inch to use the X/Open
-+ "YI" rather than the obsolete Solaris 2.5 "sL" (cf: 990109).
-+ + improve manpage for tgetent differences from termcap library.
-+
-+20111008
-+ + moved static data from db_iterator.c to lib_data.c
-+ + modify db_iterator.c for memory-leak checking, fix one leak.
-+ + modify misc/gen-pkgconfig.in to use Requires.private for the parts
-+ of ncurses rather than Requires, as well as Libs.private for the
-+ other library dependencies (prompted by Debian #644728).
-+
-+20111001
-+ + modify tic "-K" option to only set the strict-flag rather than force
-+ source-output. That allows the same flag to control the parser for
-+ input and output of termcap source.
-+ + modify _nc_getent() to ignore backslash at the end of a comment line,
-+ making it consistent with ncurses' parser.
-+ + restore a special-case check for directory needed to make termcap
-+ text files load as if they were databases (cf: 20110924).
-+ + modify tic's resolution/collision checking to attempt to remove the
-+ conflicting alias from the second entry in the pair, which is
-+ normally following in the source file. Also improved the warning
-+ message to make it simpler to see which alias is the problem.
-+ + improve performance of the database iterator by caching search-list.
-+
-+20110925
-+ + add a missing "else" in changes to _nc_read_tic_entry().
-+
-+20110924
-+ + modify _nc_read_tic_entry() so that hashed-database is checked before
-+ filesystem.
-+ + updated CF_CURSES_LIBS check in test/configure script.
-+ + modify configure script and makefiles to split TIC_ARGS and
-+ TINFO_ARGS into pieces corresponding to LDFLAGS and LIBS variables,
-+ to help separate searches for tic- and tinfo-libraries (patch by Nick
-+ Alcock aka "Nix").
-+ + build-fix for lib_mouse.c changes (cf: 20110917).
-+
-+20110917
-+ + fix compiler warning for clang 2.9
-+ + improve merging of mouse events (integrated patch by Damien
-+ Guibouret).
-+ + correct mask-check used in lib_mouse for wheel mouse buttons 4/5
-+ (patch by Damien Guibouret).
-+
-+20110910
-+ + modify misc/gen_edit.sh to select a "linux" entry which works with
-+ the current kernel rather than assuming it is always "linux3.0"
-+ (cf: 20110716).
-+ + revert a change to getmouse() which had the undesirable side-effect
-+ of suppressing button-release events (report by Damien Guibouret,
-+ cf: 20100102).
-+ + add xterm+kbs fragment from xterm #272 -TD
-+ + add configure option --with-pkg-config-libdir to provide control over
-+ the actual directory into which pc-files are installed, do not use
-+ the pkg-config environment variables (discussion with Frederic L W
-+ Meunier).
-+ + add link to mailing-list archive in announce.html.in, as done in
-+ FAQ (prompted by question by Andrius Bentkus).
-+ + improve manpage install by adjusting the "#include" examples to
-+ show the ncurses-subdirectory used when --disable-overwrite option
-+ is used.
-+ + install an alias for "curses" to the ncurses manpage, tied to the
-+ --with-curses-h configure option (suggested by Reuben Thomas).
-+
-+20110903
-+ + propagate error-returns from wresize, i.e., the internal
-+ increase_size and decrease_size functions through resize_term (report
-+ by Tim van der Molen, cf: 20020713).
-+ + fix typo in tset manpage (patch by Sven Joachim).
-+
-+20110820
-+ + add a check to ensure that termcap files which might have "^?" do
-+ not use the terminfo interpretation as "\177".
-+ + minor cleanup of X-terminal emulator section of terminfo.src -TD
-+ + add terminator entry -TD
-+ + add simpleterm entry -TD
-+ + improve wattr_get macros by ensuring that if the window pointer is
-+ null, then the attribute and color values returned will be zero
-+ (cf: 20110528).
-+
-+20110813
-+ + add substitution for $RPATH_LIST to misc/ncurses-config.in
-+ + improve performance of tic with hashed-database by caching the
-+ database connection, using atexit() to cleanup.
-+ + modify treatment of 2-character aliases at the beginning of termcap
-+ entries so they are not counted in use-resolution, since these are
-+ guaranteed to be unique. Also ignore these aliases when reporting
-+ the primary name of the entry (cf: 20040501)
-+ + double-check gn (generic) flag in terminal descriptions to
-+ accommodate old/buggy termcap databases which misused that feature.
-+ + minor fixes to _nc_tgetent(), ensure buffer is initialized even on
-+ error-return.
-+
-+20110807
-+ + improve rpath fix from 20110730 by ensuring that the new $RPATH_LIST
-+ variable is defined in the makefiles which use it.
-+ + build-fix for DragonFlyBSD's pkgsrc in test/configure script.
-+ + build-fixes for NetBSD 5.1 with termcap support enabled.
-+ + corrected k9 in dg460-ansi, add other features based on manuals -TD
-+ + improve trimming of whitespace at the end of terminfo/termcap output
-+ from tic/infocmp.
-+ + when writing termcap source, ensure that colons in the description
-+ field are translated to a non-delimiter, i.e., "=".
-+ + add "-0" option to tic/infocmp, to make the termcap/terminfo source
-+ use a single line.
-+ + add a null-pointer check when handling the $CC variable.
-+
-+20110730
-+ + modify configure script and makefiles in c++ and progs to allow the
-+ directory used for rpath option to be overridden, e.g., to work
-+ around updates to the variables used by tic during an install.
-+ + add -K option to tic/infocmp, to provide stricter BSD-compatibility
-+ for termcap output.
-+ + add _nc_strict_bsd variable in tic library which controls the
-+ "strict" BSD termcap compatibility from 20110723, plus these
-+ features:
-+ + allow escapes such as "\8" and "\9" when reading termcap
-+ + disallow "\a", "\e", "\l", "\s" and "\:" escapes when reading
-+ termcap files, passing through "a", "e", etc.
-+ + expand "\:" as "\072" on output.
-+ + modify _nc_get_token() to reset the token's string value in case
-+ there is a string-typed token lacking the "=" marker.
-+ + fix a few memory leaks in _nc_tgetent.
-+ + fix a few places where reading from a termcap file could refer to
-+ freed memory.
-+ + add an overflow check when converting terminfo/termcap numeric
-+ values, since terminfo stores those in a short, and they must be
-+ positive.
-+ + correct internal variables used for translating to termcap "%>"
-+ feature, and translating from termcap %B to terminfo, needed by
-+ tctest (cf: 19991211).
-+ + amend a minor fix to acsc when loading a termcap file to separate it
-+ from warnings needed for tic (cf: 20040710)
-+ + modify logic in _nc_read_entry() and _nc_read_tic_entry() to allow
-+ a termcap file to be handled via TERMINFO_DIRS.
-+ + modify _nc_infotocap() to include non-mandatory padding when
-+ translating to termcap.
-+ + modify _nc_read_termcap_entry(), passing a flag in the case where
-+ getcap is used, to reduce interactive warning messages.
-+
-+20110723
-+ + add a check in start_color() to limit color-pairs to 256 when
-+ extended colors are not supported (patch by David Benjamin).
-+ + modify setcchar to omit no-longer-needed OR'ing of color pair in
-+ the SetAttr() macro (patch by David Benjamin).
-+ + add kich1 to sun terminfo entry (Yuri Pankov)
-+ + use bold rather than reverse for smso in sun-color terminfo entry
-+ (Yuri Pankov).
-+ + improve generation of termcap using tic/infocmp -C option, e.g.,
-+ to correspond with 4.2BSD (prompted by discussion with Yuri Pankov
-+ regarding Schilling's test program):
-+ + translate %02 and %03 to %2 and %3 respectively.
-+ + suppress string capabilities which use %s, not supported by tgoto
-+ + use \040 rather than \s
-+ + expand null characters as \200 rather than \0
-+ + modify configure script to support shared libraries for DragonFlyBSD.
-+
-+20110716
-+ + replace an assert() in _nc_Free_Argument() with a regular null
-+ pointer check (report/analysis by Franjo Ivancic).
-+ + modify configure --enable-pc-files option to take into account the
-+ PKG_CONFIG_PATH variable (report by Frederic L W Meunier).
-+ + add/use xterm+tmux chunk from xterm #271 -TD
-+ + resync xterm-new entry from xterm #271 -TD
-+ + add E3 extended capability to linux-basic (Miroslav Lichvar)
-+ + add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD
-+ + add SI/SO change to linux2.6 entry (Debian #515609) -TD
-+ + fix inconsistent tabset path in pcmw (Todd C. Miller).
-+ + remove a backslash which continued comment, obscuring altos3
-+ definition with OpenBSD toolset (Nicholas Marriott).
-+
-+20110702
-+ + add workaround from xterm #271 changes to ensure that compiler flags
-+ are not used in the $CC variable.
-+ + improve support for shared libraries, tested with AIX 5.3, 6.1 and
-+ 7.1 with both gcc 4.2.4 and cc.
-+ + modify configure checks for AIX to include release 7.x
-+ + add loader flags/libraries to libtool options so that dynamic loading
-+ works properly, adapted from ncurses-5.7-ldflags-with-libtool.patch
-+ at gentoo prefix repository (patch by Michael Haubenwallner).
-+
-+20110626
-+ + move include of nc_termios.h out of term_entry.h, since the latter
-+ is installed, e.g., for tack while the former is not (report by
-+ Sven Joachim).
-+
-+20110625
-+ + improve cleanup() function in lib_tstp.c, using _exit() rather than
-+ exit() and checking for SIGTERM rather than SIGQUIT (prompted by
-+ comments forwarded by Nicholas Marriott).
-+ + reduce name pollution from term.h, moving fallback #define's for
-+ tcgetattr(), etc., to new private header nc_termios.h (report by
-+ Sergio NNX).
-+ + two minor fixes for tracing (patch by Vassili Courzakis).
-+ + improve trace initialization by starting it in use_env() and
-+ ripoffline().
-+ + review old email, add details for some changelog entries.
-+
-+20110611
-+ + update minix entry to minix 3.2 (Thomas Cort).
-+ + fix a strict compiler warning in change to wattr_get (cf: 20110528).
-+
-+20110604
-+ + fixes for MirBSD port:
-+ + set default prefix to /usr.
-+ + add support for shared libraries in configure script.
-+ + use S_ISREG and S_ISDIR consistently, with fallback definitions.
-+ + add a few more checks based on ncurses/link_test.
-+ + modify MKlib_gen.sh to handle sp-funcs renaming of NCURSES_OUTC type.
-+
-+20110528
-+ + add case to CF_SHARED_OPTS for Interix (patch by Markus Duft).
-+ + used ncurses/link_test to check for behavior when the terminal has
-+ not been initialized and when an application passes null pointers
-+ to the library. Added checks to cover this (prompted by Redhat
-+ #707344).
-+ + modify MKlib_gen.sh to make its main() function call each function
-+ with zero parameters, to help find inconsistent checking for null
-+ pointers, etc.
-+
-+20110521
-+ + fix warnings from clang 2.7 "--analyze"
-+
-+20110514
-+ + compiler-warning fixes in panel and progs.
-+ + modify CF_PKG_CONFIG macro, from changes to tin -TD
-+ + modify CF_CURSES_FUNCS configure macro, used in test directory
-+ configure script:
-+ + work around (non-optimizer) bug in gcc 4.2.1 which caused
-+ test-expression to be omitted from executable.
-+ + force the linker to see a link-time expression of a symbol, to
-+ help work around weak-symbol issues.
-+
-+20110507
-+ + update discussion of MKfallback.sh script in INSTALL; normally the
-+ script is used automatically via the configured makefiles. However
-+ there are still occasions when it might be used directly by packagers
-+ (report by Gunter Schaffler).
-+ + modify misc/ncurses-config.in to omit the "-L" option from the
-+ "--libs" output if the library directory is /usr/lib.
-+ + change order of tests for curses.h versus ncurses.h headers in the
-+ configure scripts for Ada95 and test-directories, to look for
-+ ncurses.h, from fixes to tin -TD
-+ + modify ncurses/tinfo/access.c to account for Tandem's root uid
-+ (report by Joachim Schmitz).
-+
-+20110430
-+ + modify rules in Ada95/src/Makefile.in to ensure that the PIC option
-+ is not used when building a static library (report by Nicolas
-+ Boulenguez):
-+ + Ada95 build-fix for big-endian architectures such as sparc. This
-+ undoes one of the fixes from 20110319, which added an "Unused" member
-+ to representation clauses, replacing that with pragmas to suppress
-+ warnings about unused bits (patch by Nicolas Boulenguez):
-+
-+20110423
-+ + add check in test/configure for use_window, use_screen.
-+ + add configure-checks for getopt's variables, which may be declared
-+ as different types on some Unix systems.
-+ + add check in test/configure for some legacy curses types of the
-+ function pointer passed to tputs().
-+ + modify init_pair() to accept -1's for color value after
-+ assume_default_colors() has been called (Debian #337095).
-+ + modify test/background.c, adding commmand-line options to demonstrate
-+ assume_default_colors() and use_default_colors().
-+
-+20110416
-+ + modify configure script/source-code to only define _POSIX_SOURCE if
-+ the checks for sigaction and/or termios fail, and if _POSIX_C_SOURCE
-+ and _XOPEN_SOURCE are undefined (report by Valentin Ochs).
-+ + update config.guess, config.sub
-+
-+20110409
-+ + fixes to build c++ binding with clang 3.0 (patch by Alexander
-+ Kolesen).
-+ + add check for unctrl.h in test/configure, to work around breakage in
-+ some ncurses packages.
-+ + add "--disable-widec" option to test/configure script.
-+ + add "--with-curses-colr" and "--with-curses-5lib" options to the
-+ test/configure script to address testing with very old machines.
-+
- 20110404 5.9 release for upload to ftp.gnu.org
-
- 20110402
-@@ -100,7 +1168,7 @@
- + modify configure script to provide value for HTML_DIR in
- Ada95/gen/Makefile.in, which depends on whether the Ada95 binding is
- distributed separately (report by Nicolas Boulenguez).
-- + modify configure script to add -g and/or -O3 to ADAFLAGS if the
-+ + modify configure script to add "-g" and/or "-O3" to ADAFLAGS if the
- CFLAGS for the build has these options.
- + amend change from 20070324, to not add 1 to the result of getmaxx
- and getmaxy in the Ada binding (report by Nicolas Boulenguez for
-@@ -155,7 +1223,7 @@
- 20110212
- + regenerated html manpages.
- + use _tracef() in show_where() function of tic, to work correctly with
-- special case of trace configuration.
-+ special case of trace configuration.
-
- 20110205
- + add xterm-utf8 entry as a demo of the U8 feature -TD
-@@ -219,7 +1287,7 @@
- version which works with termcap.
- + remove obsolete emacs "Local Variables" section from documentation
- (request by Sven Joachim).
-- + update doc/html/index.html to include NCURSES-Programming-HOWTO.html
-+ + update doc/html/index.html to include NCURSES-Programming-HOWTO.html
- (report by Sven Joachim).
-
- 20101128
-@@ -294,8 +1362,8 @@
- Sven Joachim).
- + add parameterized cursor-controls to linux-basic (report by Dae) -TD
- > patch by Juergen Pfeifer:
-- + document how to build 32-bit libraries in README.MinGW
-- + fixes to filename computation in mk-dlls.sh.in
-+ + document how to build 32-bit libraries in README.MinGW
-+ + fixes to filename computation in mk-dlls.sh.in
- + use POSIX locale in mk-dlls.sh.in rather than en_US (report by Sven
- Joachim).
- + add a check in mk-dlls.sh.in to obtain the size of a pointer to
-@@ -478,7 +1546,7 @@
- 20100417
- + modify _nc_capcmp() to work with cancelled strings.
- + correct translation of "^" in _nc_infotocap(), used to transform
-- terminfo to termcap strings
-+ terminfo to termcap strings
- + add configure --disable-rpath-hack, to allow disabling the feature
- which adds rpath options for libraries in unusual places.
- + improve CF_RPATH_HACK_2 by checking if the rpath option for a given
-@@ -1533,8 +2601,8 @@
- that library.
- + add/modify null-pointer checks in several functions for SP and/or
- the WINDOW* parameter (report by Thorben Krueger).
-- + fixes for field_buffer() in formw library (see Redhat Bugzilla
-- #310071, patches by Miroslav Lichvar).
-+ + fixes for field_buffer() in formw library (see Redhat #310071,
-+ patches by Miroslav Lichvar).
- + improve performance of NCURSES_CHAR_EQ code (patch by Miroslav
- Lichvar).
- + update/improve mlterm and rxvt terminfo entries, e.g., for
-@@ -1645,7 +2713,7 @@
- + modify configure script to quiet c++ build with libtool when the
- --disable-echo option is used.
- + modify configure script to disable ada95 if libtool is selected,
-- writing a warning message (addresses FreeBSD ports/114493).
-+ writing a warning message (addresses FreeBSD #114493).
- + update config.guess, config.sub
-
- 20070707
-@@ -2130,8 +3198,7 @@
- + workaround for 20050806 ifdef's change to allow visbuf.c to compile
- when using --with-termlib --with-trace options.
- + improve tgetstr() by making the return value point into the user's
-- buffer, if provided (patch by Miroslav Lichvar (see Redhat Bugzilla
-- #202480)).
-+ buffer, if provided (patch by Miroslav Lichvar (see Redhat #202480)).
- + correct libraries needed for foldkeys (report by Stanislav Ievlev)
-
- 20060826
-@@ -2144,10 +3211,10 @@
- source output (Debian #378783).
- + modify configure script to ensure that if the C compiler is used
- rather than the loader in making shared libraries, the $(CFLAGS)
-- variable is also used (Redhat Bugzilla #199369).
-+ variable is also used (Redhat #199369).
- + port hashed-db code to db2 and db3.
- + fix a bug in tgetent() from 20060625 and 20060715 changes
-- (patch/analysis by Miroslav Lichvar (see Redhat Bugzilla #202480)).
-+ (patch/analysis by Miroslav Lichvar (see Redhat #202480)).
-
- 20060805
- + updated xterm function-keys terminfo to match xterm #216 -TD
-@@ -2939,7 +4006,7 @@
- of cur_term if the same output was selected. This now reuses it only
- when setupterm() is called from tgetent(), which has no notion of
- separate SCREENs. Note that tgetent() must be called after initscr()
-- or newterm() to use this feature (Redhat Bugzilla #140326).
-+ or newterm() to use this feature (Redhat #140326).
- + add a check in CF_BUILD_CC macro to ensure that developer has given
- the --with-build-cc option when cross-compiling (report by Alexandre
- Campo).
-@@ -3032,7 +4099,7 @@
- entries, e.g., so it can analyze the xterm-8bit entry.
- + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin).
- + correct translation of "%%" in terminfo format to termcap, e.g.,
-- using "tic -C" (Redhat Bugzilla #130921).
-+ using "tic -C" (Redhat #130921).
- + modified configure script CF_XOPEN_SOURCE macro to ensure that if
- it defines _POSIX_C_SOURCE, that it defines it to a specific value
- (comp.os.stratus newsgroup comment).
-@@ -3043,9 +4110,9 @@
- However that did find a coding error in Assume_Default_Colors().
- + modify several terminfo entries to ensure xterm mouse and cursor
- visibility are reset in rs2 string: hurd, putty, gnome,
-- konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The
-- xterm entries are left alone - old ones for compatibility, and the
-- new ones do not require this change. -TD
-+ konsole-base, mlterm, Eterm, screen (Debian #265784, Debian #55637).
-+ The xterm entries are left alone - old ones for compatibility, and
-+ the new ones do not require this change. -TD
-
- 20040814
- + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators
-@@ -3076,8 +4143,8 @@
- + modify "tic -cv" to ignore delays when comparing strings. Also
- modify it to ignore a canceled sgr string, e.g., for terminals which
- cannot properly combine attributes in one control sequence.
-- + corrections for gnome and konsole entries (Redhat Bugzilla #122815,
-- patch by Hans de Goede)
-+ + corrections for gnome and konsole entries (Redhat #122815, patch by
-+ Hans de Goede)
- > terminfo updates -TD
- + make ncsa-m rmacs/smacs consistent with sgr
- + add sgr, rc/sc and ech to syscons entries
-@@ -3090,7 +4157,7 @@
- > terminfo updates -TD
- + add xterm-pc-fkeys
- + review/update gnome and gnome-rh90 entries (prompted by Redhat
-- Bugzilla #122815).
-+ #122815).
- + review/update konsole entries
- + add sgr, correct sgr0 for kterm and mlterm
- + correct tsl string in kterm
-@@ -4204,7 +5271,7 @@
- + add a check in kgetch() for cooked characters in the fifo to avoid
- calling fifo_push() when a KEY_RESIZE is available (report/analysis
- by Sam Varshavchik <mrsam@courier-mta.com>).
-- + fix an overlooked case for bugzilla #68199 (Philippe Blain).
-+ + fix an overlooked case for Redhat #68199 (Philippe Blain).
- + ensure clearerr() is called before using ferror() e.g., in
- lib_screen.c (report by Philippe Blain).
-
-@@ -4212,7 +5279,7 @@
- + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific
- pointers for curscr/stdscr/newscr when scr_save() and scr_restore()
- modify the global curscr/stdscr/newscr variables. Fixes Redhat
-- bugzilla #68199 dated 2002-07-07.
-+ #68199.
- + add checks for null pointer in calls to tparm() and tgoto() based on
- FreeBSD bug report. If ncurses were built with termcap support, and
- the first call to tgoto() were a zero-length string, the result would
-@@ -4245,7 +5312,7 @@
- Olaf Buddenhagen <olafBuddenhagen@web.de>).
- + modified wresize() to ensure that a failed realloc will not corrupt
- the window structure, and to make subwindows fit within the resized
-- window (completes Debian #87678, #101699)
-+ window (completes Debian #87678, Debian #101699)
-
- 20020803
- + fix an off-by-one in lib_pad.c check for limits of pad (patch by
-@@ -4940,9 +6007,9 @@
- which may be in libutf8.
- + remove some unnecessary text from curs_extend.3x and
- default_colors.3x which caused man-db to make incorrect symbolic
-- links (Debian bug report #99550).
-+ links (Debian #99550).
- + add configure check if cast for _IO_va_list is needed to compile
-- C++ vscan code (Debian bug report #97945).
-+ C++ vscan code (Debian #97945).
- > several patches from Sven Verdoolaege:
- + correct code that used non-standard auto-initialization of a struct,
- which gcc allows (report by Larry Virden).
-@@ -5077,7 +6144,7 @@
- + add some examples of customizing screen's terminfo:
- screen.xterm-xfree86, screen.xterm-r6, screen.teraterm -TD
- + modify screen's terminfo entry to match the khome/kend in screen
-- 3.09.08 (Debian bug report #92215).
-+ 3.09.08 (Debian #92215).
- + correct a memory leak in forms library (report by Stefan Vogtner
- <stefan@vogtner.de>) (patch by Juergen Pfeifer).
-
-@@ -5091,12 +6158,12 @@
- + add .cc.ii rule to c++ makefile, to get preprocessor output for
- debugging.
- + correct configure script handling of @keyword@ substitutions when the
-- --with-manpage-renames option is given (cf: 20000715, fixes Debian
-- bug #89939).
-+ --with-manpage-renames option is given (cf: 20000715, fixes Debian
-+ #89939).
- + report stack underflow/overflow in tparm() when tic -cv option is
- given.
- + remove spurious "%|" operator from xterm-xfree86 terminfo entry,
-- (reported by Adam Costello <amc@cs.berkeley.edu>, Debian bug #89222).
-+ (reported by Adam Costello <amc@cs.berkeley.edu>, Debian #89222).
-
- 20010310
- + cleanup of newdemo.c, fixing some ambiguous expressions noted by gcc
-@@ -5800,7 +6867,7 @@
- + correct spelling error in terminfo entry name: bq300-rv was given as
- bg300-rv in esr's version.
- + modify redrawwin() macro so its parameter is fully parenthesized
-- (fixes Debian bug report #61088).
-+ (fixes Debian #61088).
- + correct formatting error in dump_entry() which set incorrect column
- value when no newline trimming was needed at the end of an entry,
- before appending "use=" clauses (cf: 960406).
-@@ -6530,7 +7597,7 @@
- handling in lynx (reported by Kim DeVaughn).
-
- 990306 pre-release
-- + add -G option to tic and infocmp, to reverse the -g option.
-+ + add -G option to tic and infocmp, to reverse the "-g" option.
- + recode functions in name_match.c to avoid use of strncpy, which
- caused a 4-fold slowdown in tic (cf: 980530).
- + correct a few warnings about sign-extension in recent changes.
-@@ -6901,7 +7968,7 @@
- since that is a little more efficient.
- + minor correction to infocmp to avoid displaying "difference" between
- two capabilities that are rendered in equivalent forms.
-- + add -g option to tic/infocmp to force character constants to be
-+ + add "-g" option to tic/infocmp to force character constants to be
- displayed in quoted form. Otherwise their decimal values are shown.
- + modify setupterm so that cancelled strings are treated the same as
- absent strings, cancelled and absent booleans false (does not affect
-@@ -8979,15 +10046,18 @@
- + correction to #317.
- > patch 317 (ESR):
- + re-add _nc_hash_map
-- + modify EmitRange to maintain position as per original design.
-- + add hashtest.c, program to time the hashmap optimization.
-+ + modify EmitRange to maintain position as per original design
-+ (patch by A. Lukyanov).
-+ + modify test/ncurses.c and tputs, etc., to allow trace counting
-+ output characters.
-+ + add hashtest.c program to time the hashmap optimization.
- > patch 316 (ESR):
- + add logic to deal with magic-cookie (how was this tested?)
- (lib_doupdate.c).
- + add ncurses.c driver for magic-cookie, some fixes to ncurses.c
- > patch 315 (ESR):
-- + merged Alexander V Lukyanov's patch to use ech and rep - untested
-- (lib_doupdate.c).
-+ + merge changes to lib_doupdate.c to use ech and rep - untested
-+ (patch by Alexander V Lukyanov).
- + modified handling of interrupted system calls - untested
- (lib_getch.c, lib_twait.c).
- + new function _nc_mvcur_resume()
-@@ -9059,12 +10129,12 @@
- + corrected typo in dtterm description.
- > patch 313 (ESR):
- + add dtterm description
-- + clarify ncurses 'i' test (drop vscanf subtest)
-+ + clarify ncurses 'i' test (drop mvwscanw subtest)
-
- 960810 - snapshot
- + correct nl()/nonl() to work as per SVr4 & XSI.
- + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code)
-- + refine configure-test for -g option (Tim Mooney).
-+ + refine configure-test for "-g" option (Tim Mooney).
- + correct interaction between O_BLANK and NEW_LINE request in form
- library (Juergen Pfeifer)
-
-@@ -9073,7 +10143,8 @@
- > patch 312 (ESR):
- correct terminfo.src corrupted by #310
- > patch 311 (ESR):
-- + fix idlok() and idcok() and the default of the idlok switch.
-+ + fix idlok() and idcok() and the default of the idlok switch (report
-+ by Ville Sulko).
-
- 960803 - snapshot
- + corrected tparm to handle capability strings without explicit pop
-@@ -9083,7 +10154,7 @@
- > patch 310 (ESR):
- + documentation and prototyping errors for has_color, immedok and idcok
- (reported by William P Setzer <wsetzer@pams.ncsu.edu>)
-- + updated qnx terminfo entry (by Michael Hunter)
-+ + updated qnx terminfo entry (patch by Michael Hunter)
-
- 960730
- + eliminate quoted includes in ncurses subdirectory, ensure config.h
-@@ -9095,7 +10166,7 @@
- + call cbreak() in initscr(), as per XSI & SVr4.
- + turn off hardware echo in initscr() as per XSI & SVr4
- > patch 309 (ESR):
-- + terminfo changes (9.3.10), from BRL
-+ + terminfo changes (9.3.9), from BRL
- + add more checks to terminfo parser.
- + add more symbols to infocmp.
-
-@@ -9114,6 +10185,7 @@
- > patch 308 (ESR):
- + terminfo changes (9.3.8)
- + modified logic of error-reporting in terminfo parser
-+ + fix option-processing bug in toe.
-
- 960713 - snapshot
- + always check for <sys/bsdtypes.h> since ISC needs it to declare
-@@ -9122,9 +10194,19 @@
- by Juergen Pfeifer, Mike Long)
- + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
- + corrected prototype for delay_output() -- bump ABI to 3.2
-- + terminfo patches #306/307 (ESR).
-+ + patch 307 (ESR):
-+ + enable more translations of nonstandard caps, and document them.
-+ + misc/terminfo.src update to 9.13.8
-+ + patch 306 (ESR):
- + moved logic that filters out rmul and rmso from setupterm to newterm
- where it is less likely to interfere with termcap applications.
-+ + cosmetic fixes to test/ncurses.c
-+ + modify open() call in ncurses/read_entry.c to use O_RDONLY symbol
-+ rather than constant (report by mib).
-+ + misc/terminfo.src sgr0 and acsc changes (report by Philippe De
-+ Muyter).
-+ + modify ncurses/comp_parse.c so that entries containing a "+" can
-+ have missing rmcup vs smcup.
-
- 960707
- + rollback ESR's #305 change to terminfo.src (it breaks existing
-@@ -9139,7 +10221,6 @@
- + make lib_vidattr.c more readable using macros.
- + filter out rmul, rmso that conflict with sgr0 when reading terminal
- descriptions.
-- + added sanity-checking of various paired string attributes (ESR).
- + work around autoconf bug, force $INSTALL to absolute path
- (reported by Zeyd).
- + modify man-page install for BSDI to install preformatted .0 files
-@@ -9152,6 +10233,12 @@
- + disable scrollok during the ncurses 'p' test; if it is enabled the
- stdscr will scroll when putting the box-corners in the lower-right
- of the screen.
-+ > patch 305 (ESR):
-+ + added sanity-checking of various paired string attributes.
-+ + misc/terminfo.src update to 9.13.7 (report by A. Lukyanov).
-+ + modify man/Makefile.in to make terminfo.5 during normal build.
-+ > patch 304 (ESR):
-+ + corrected allocation-length for $HOME/.terminfo path.
-
- 960629 - snapshot
- + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for
-@@ -9234,6 +10321,7 @@
- + better fix for nvi refresh-bug (Rick Marshall)
- + fix for bug in handling of interrupted keystroke waits,
- (Werner Fleck).
-+ + misc/ncurses-intro.html syntax fix (Kajiyama Tamito).
-
- 960601 - snapshot
- + auto-configure man-page compression-format and renames for Debian.
-@@ -9248,7 +10336,7 @@
- + enhancement to the control over the new PC-style soft key format.
- allow caller now to select whether or not one wants to have
- the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
-- + typos, don't use inline with -g (Philippe De Muyter)
-+ + typos, don't use inline with "-g" (Philippe De Muyter)
- + fixes for menus & wattr-, slk-functions (Juergen Pfeifer)
-
- 960526 - snapshot
-@@ -9263,6 +10351,9 @@
- + include sys/types.h in case stdlib.h does not declare size_t.
- + fixes for makefile (Tim Mooney)
- + fixes for menus & forms (Juergen Pfeifer)
-+ > patch 302 (ESR):
-+ + improve hash function (suggested by Alexander V Lukyanov).
-+ + 9.13.4 update for terminfo.src
-
- 960518 - snapshot
- + revised ncurses.c panner test, let pad abut all 4 sides of screen.
-@@ -9275,6 +10366,8 @@
- confusion, and made this check for the /usr/lib/terminfo pre-existing
- directory.
- > patches 299-301 (ESR):
-+ + html fixes (Phillippe de Muyter).
-+ + fix typo in ncurses-intro.html (report by Fabrizio Polacco).
- + added hashmap.c
- + mods to tracing, especially for ACS chars.
- + corrected off-by-one in IDCtransform.
-@@ -9294,13 +10387,21 @@
- > patches 297, 298 (ESR):
- + implement TERMINFO_DIRS, and -o option of tic
- + added TRACE_IEVENT
-- + removed boolean version of 'getm'
-- + added lib_print.c (for Rick Marshall)
-- + added has_key()
-+ + fix REQ_TOGGLE_ITEM in menu/menu_driver.c; it could select but not
-+ deselect.
-+ + added lib_print.c (request by Rick Marshall).
-+ + added has_key() (request by Juergen Pfeifer).
-+ + do not issue clrtoeol or clrtobot if the relevant portion of the line
-+ is already blank (analysis by Keith Bostic).
-+ + add parentheses for parameters of COLOR_PAIR and PAIR_NUMBER macros
-+ (analysis by Jurgen Eidt).
-+ + update screen's notion of cursor position in endwin() (analysis by
-+ Alexander Lukyanov).
- + added 't' to ncurses.c test.
- + moved delay_output() to lib_tputs.c
- + removed tparam() (was added in 1.9.9, but conflicts with emacs and
- is not part of X/Open Curses).
-+ + removed boolean version of 'getm'.
- + misc cursor & optimization fixes.
-
- 960504 - snapshot
-@@ -9326,11 +10427,20 @@
- + make TIOCGWINSZ configure test less stringent, in case user
- configures via terminal that cannot get screen size.
- > patches 295, 296 (ESR):
-- + new "-e" option of tic.
-- + fix for "infocmp -e".
-- + restore working-directory in read_termcap.c
- + split lib_kernel.c, lib_setup.c and names.c in order to reduce
- overhead for programs that use only termcap features.
-+ + new "-e" and "-h" options of tic (request by Tony Nugent).
-+ + fix bug in mandatory-delay logic in lib_tputs.c (report by Sven
-+ Verdoolaege).
-+ + fix for "infocmp -e" to emit correct initializers (reported by Manual
-+ J Novoa III).
-+ + restore working-directory in read_termcap.c (report by Kayvan
-+ Sylvan).
-+ + use "-h" option on Solaris when generating shared libraries on
-+ Solaris 2.5 to record the library name in the file, for assisting
-+ the loader (patch by Scott Kramer).
-+ + undo patch #294 changes to form and menu libraries (request by
-+ Juergen Pfeifer).
-
- 960418 - snapshot
- + use autoconf 2.9
-@@ -9338,10 +10448,22 @@
- definitions via <termios.h>, modified macros in lib_raw.c to avoid
- K&R-style substitution)
- > patches 293, 294 (ESR):
-- + mods to wgetch() in cooked mode
-- + corrected askuser() logic in tset
-- + correct interaction of endwin() with mouse processing
-+ + rewrite wsyncup(), wsyncdown(), as well as small fixes to form and
-+ menu libraries to fix echo-breakage introduced by 1.8.9, 1.9.9e
-+ changes (patches by Juergen Pfeifer).
-+ + fix compile under QNX 4.2 by defining ONLCR in lib_raw.c when
-+ __QNX__ is defined (patch by Michael Hunter).
-+ + modify setupterm() to match documentation for its return value, fix
-+ newterm to work with this change (report by Emmet Lazich).
-+ + add checks in getch() for error, return ERR as appropriate (report by
-+ Emmet Lazich).
-+ + mods to wgetch() in cooked mode (report by Pete Seebach).
-+ + corrected askuser() logic in tset (patch by Remco Treffkorn).
-+ + correct interaction of endwin() with mouse processing (report by
-+ Michael Elkins).
- + added trace support for TTY flags
-+ + update terminfo.src to 9.13.1
-+ + FreeBSD console entries (patch by Andrew Chernov).
-
- 960406
- + fixes for NeXT, ISC and HPUX auto-configure
-Index: README
-Prereq: 1.23
---- ncurses-5.9/README 2006-04-22 22:19:37.000000000 +0000
-+++ ncurses-5.9-20130504/README 2012-08-11 20:11:26.000000000 +0000
-@@ -1,5 +1,5 @@
- -------------------------------------------------------------------------------
---- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. --
-+-- Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. --
- -- --
- -- Permission is hereby granted, free of charge, to any person obtaining a --
- -- copy of this software and associated documentation files (the --
-@@ -25,7 +25,7 @@
- -- sale, use or other dealings in this Software without prior written --
- -- authorization. --
- -------------------------------------------------------------------------------
---- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $
-+-- $Id: README,v 1.25 2012/08/11 20:11:26 tom Exp $
- -------------------------------------------------------------------------------
- README file for the ncurses package
-
-@@ -78,6 +78,10 @@
- library interfaces are not binary-compatible with the non-wide-character
- version.
-
-+If you configure using the --enable-reentrant option, a "t" is appended to the
-+library names (e.g., libncursest.a) and the resulting libraries have a
-+different binary interface which makes the ncurses interface more "opaque".
-+
- The ncurses libraries implement the curses API. The panel, menu and forms
- libraries implement clones of the SVr4 panel, menu and forms APIs. The source
- code for these lives in the `ncurses', `panel', `menu', and `form' directories
-@@ -122,8 +126,9 @@
- tic -- terminfo source to binary compiler
- infocmp -- terminfo binary to source decompiler/comparator
- clear -- emits clear-screen for current terminal
-+ tabs -- set tabs on a terminal
- tput -- shell-script access to terminal capabilities.
-- toe -- table of entries utility
-+ toe -- table of entries utility
- tset -- terminal-initialization utility
-
- The first two (tic and infocmp) are used for manipulating terminfo
-@@ -153,8 +158,10 @@
- configuration scripts, porting, mods to adhere to XSI Curses in the
- areas of background color, terminal modes. Also memory leak testing,
- the wresize, default colors and key definition extensions and numerous
-- bug fixes (more than half of those enumerated in NEWS beginning with
-- the internal release 1.8.9).
-+ bug fixes -- more than half of those enumerated in NEWS beginning with
-+ the internal release 1.8.9, see
-+
-+ http://invisible-island.net/personal/changelogs.html
-
- Florian La Roche (official maintainer for FSF's ncurses 4.2)
- Beginning with release 4.2, ncurses is distributed under an MIT-style
-Index: README.MinGW
-Prereq: 1.5
---- ncurses-5.9/README.MinGW 2011-02-26 16:57:17.000000000 +0000
-+++ ncurses-5.9-20130504/README.MinGW 2012-09-22 17:46:04.000000000 +0000
-@@ -1,5 +1,5 @@
- -------------------------------------------------------------------------------
---- Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. --
-+-- Copyright (c) 2008-2011,2012 Free Software Foundation, Inc. --
- -- --
- -- Permission is hereby granted, free of charge, to any person obtaining a --
- -- copy of this software and associated documentation files (the --
-@@ -25,7 +25,7 @@
- -- sale, use or other dealings in this Software without prior written --
- -- authorization. --
- -------------------------------------------------------------------------------
---- $Id: README.MinGW,v 1.5 2011/02/26 16:57:17 tom Exp $
-+-- $Id: README.MinGW,v 1.9 2012/09/22 17:46:04 tom Exp $
- -- Author: Juergen Pfeifer
- -------------------------------------------------------------------------------
-
-@@ -39,7 +39,7 @@
- To build ncurses for native Windows, you need the MinGW toolchain. The
- original MinGW toolchain from the above site is only for 32-Bit Windows. As
- Windows Server - and also regular workstations - are moving to 64-Bit, it
--seems to be reasonable to have a toolchain that supports both architectures.
-+seems to be reasonable to have a toolchain that supports both architectures.
- I recommend to use the TDM gcc toolchain which you can find at
- http://tdm-gcc.tdragon.net/download. Go to the download section and select
- the bundle installer for tdm64 (MinGW-w64). This installs a multilib version
-@@ -47,7 +47,7 @@
- versions. It also comes with a working pthread implementation.
-
- The latest config and build scripts we use for MinGW have only been tested
--for the gcc-4.4 compiler toolchain (or better).
-+for the gcc-4.6.1 compiler toolchain (or better).
-
- Using MinGW is a pragmatic decision, it's the easiest way to port this
- heavily UNIX based sourcebase to native Windows. The goal is of course
-@@ -55,22 +55,13 @@
- common traditional development environments on Windows, mainly with
- Microsoft Visual Studio.
-
--If you start a bash from the MSYS environment, please make sure that the
--Microsoft Development tools are in your PATH right after the MinGW
--tools. The LIB.EXE tool is the only one needed. You need this only if
--you want to build DLLs that work with native Windows programs. If you
--don't have any Microsoft Development tools on your machine, consider
--at least to get the free "Visual C++ 2010 Express Edition".
--It contains the LIB.EXE tool. You may also use this compiler to test
--writing native Windows programs using the ncurses DLLs without using
--MinGW then for writing apps.
--
--It is necessary to unset the TERM environment variable, to activate the
--Windows console-driver.
-+The TERM environment variable must be set specially to active the Windows
-+console-driver. The driver checks if TERM is set to "#win32con" (explicit
-+use) or if TERM is unset or empty (implicit).
-
- Please also make sure that MSYS links to the correct directory containing
- your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows
--CMD.EXE command shell go to the MSYS root directory (most probably
-+CMD.EXE command shell go to the MSYS root directory (most probably
- C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw
- that points to the MinGW toolchain directory. If not, delete the mingw
- directory and use the mklink command (or the linkd.exe utility on older
-@@ -79,62 +70,60 @@
- This code requires WindowsNT 5.1 or better, which means on the client
- Windows XP or better, on the server Windows Server 2003 or better.
-
--In order to build ncurses for the planned interop layer with .NET, we
--recommend to use these options with configure
-+I recommend using libtool to build ncurses on MinGW, because libtool
-+knows exactly how to build dll's on Windows for use with MinGW.
-+
-+To build a modern but still small footprint ncurses that provides
-+hooks for interop, I recommend using these options:
-
-+ --with-libtool
- --disable-home-terminfo
-- --enable-reentrant
-+ --enable-database
-+ --disable-termcap
- --enable-sp-funcs
- --enable-term-driver
- --enable-interop
-- --with-pthread (if using TDM toolchain as recommended)
-
--This is the configuration commandline as I'm using it at the moment:
-+This is the configuration commandline as I'm using it at the moment (assuming
-+environment variable MINGW_ROOT to hold the root directory name of your MinGW
-+build):
-
- ./configure \
-- --prefix=/mingw \
-- --without-cxx-binding \
-+ --prefix=$MINGW_ROOT \
-+ --with-cxx \
- --without-ada \
- --enable-warnings \
- --enable-assertions \
-- --enable-reentrant \
-- --with-debug \
-- --with-normal \
- --disable-home-terminfo \
-+ --enable-database \
- --enable-sp-funcs \
- --enable-term-driver \
- --enable-interop \
-- --with-pthread
-+ --disable-termcap \
-+ --with-progs \
-+ --with-libtool \
-+ --enable-pc-files \
-+ --mandir=$MINGW_ROOT/share/man
-
--If you are on a 64-Bit Windows system and want to build a 32-Bit version
--of ncurses, you may use this commandline for configuration (when using
--the TDM toolchain):
--
--CC="gcc -m32" LD="ld -m32" ./configure \
-- --prefix=/mingw \
-- --without-cxx-binding \
-- --without-ada \
-- --enable-warnings \
-- --enable-assertions \
-- --enable-reentrant \
-- --with-debug \
-- --with-normal \
-- --disable-home-terminfo \
-- --enable-sp-funcs \
-- --enable-term-driver \
-- --enable-interop \
-- --with-pthread
-+Please note that it is also necessary to set this environment variable:
-
--All the options above are - like the whole Windows support -
--experimental.
-+export PATH_SEPARATOR=";"
-+
-+in order to parse the terminfo paths correctly. Terminfo paths should
-+always be separated by a seeeemicolon,even when running under MSYS.
-
--In order to build the DLLs, after your regular make you must call
-+To support regular expressions properly, ncurses under MinGW should be
-+linked against the gnurx regex library, which must be built separately
-+under MinGW. See
-
-- make dlls
-+ ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libgnurx-src-2.5.zip
-+
-+All the options above are - like the whole Windows support -
-+experimental.
-
- A lot is still TODO, e.g.:
-
-- - Wide Character support
-+ - Wide Character support (display is workable, but input untested)
- The Win32Con driver should actually only use Unicode in the
- future.
- - Thread support (locking). If using TDM toolchain this is done by
-@@ -145,5 +134,5 @@
- - Workarounds for MinGW's filesystem access are necessary to make infocmp
- work (though tic works).
-
--To support terminfo, we need to have an ioctl() simulation for the
--serial and networked Terminals.
-+To support terminfo, we would need to have an ioctl() simulation for the
-+serial and networked terminals.
-Index: aclocal.m4
-Prereq: 1.553
---- ncurses-5.9/aclocal.m4 2011-03-31 23:35:38.000000000 +0000
-+++ ncurses-5.9-20130504/aclocal.m4 2013-04-13 22:59:35.000000000 +0000
-@@ -1,5 +1,5 @@
- dnl***************************************************************************
--dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+dnl Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- dnl *
- dnl Permission is hereby granted, free of charge, to any person obtaining a *
- dnl copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- dnl
- dnl Author: Thomas E. Dickey 1995-on
- dnl
--dnl $Id: aclocal.m4,v 1.553 2011/03/31 23:35:38 tom Exp $
-+dnl $Id: aclocal.m4,v 1.666 2013/04/13 22:59:35 tom Exp $
- dnl Macros used in NCURSES auto-configuration script.
- dnl
- dnl These macros are maintained separately from NCURSES. The copyright on
-@@ -62,6 +62,32 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56
-+dnl ------------------
-+dnl Conditionally generate script according to whether we're using a given autoconf.
-+dnl
-+dnl $1 = version to compare against
-+dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
-+dnl $3 = code to use if AC_ACVERSION is older than $1.
-+define([CF_ACVERSION_CHECK],
-+[
-+ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl
-+ifdef([m4_version_compare],
-+[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
-+[CF_ACVERSION_COMPARE(
-+AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
-+AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
-+dnl --------------------
-+dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
-+dnl MAJOR2, MINOR2, TERNARY2,
-+dnl PRINTABLE2, not FOUND, FOUND)
-+define([CF_ACVERSION_COMPARE],
-+[ifelse(builtin([eval], [$2 < $5]), 1,
-+[ifelse([$8], , ,[$8])],
-+[ifelse([$9], , ,[$9])])])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
- dnl -------------------
- dnl Construct the list of include-options for the C programs in the Ada95
-@@ -313,76 +339,6 @@
- }
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
--dnl ----------------
--dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
--dnl in the sharutils 4.2 distribution.
--AC_DEFUN([CF_ANSI_CC_CHECK],
--[
--AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
--cf_cv_ansi_cc=no
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
--for cf_arg in "-DCC_HAS_PROTOS" \
-- "" \
-- -qlanglvl=ansi \
-- -std1 \
-- -Ae \
-- "-Aa -D_HPUX_SOURCE" \
-- -Xc
--do
-- CF_ADD_CFLAGS($cf_arg)
-- AC_TRY_COMPILE(
--[
--#ifndef CC_HAS_PROTOS
--#if !defined(__STDC__) || (__STDC__ != 1)
--choke me
--#endif
--#endif
--],[
-- int test (int i, double x);
-- struct s1 {int (*f) (int a);};
-- struct s2 {int (*f) (double a);};],
-- [cf_cv_ansi_cc="$cf_arg"; break])
--done
--CFLAGS="$cf_save_CFLAGS"
--CPPFLAGS="$cf_save_CPPFLAGS"
--])
--
--if test "$cf_cv_ansi_cc" != "no"; then
--if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-- CF_ADD_CFLAGS($cf_cv_ansi_cc)
--else
-- AC_DEFINE(CC_HAS_PROTOS)
--fi
--fi
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
--dnl ---------------
--dnl For programs that must use an ANSI compiler, obtain compiler options that
--dnl will make it recognize prototypes. We'll do preprocessor checks in other
--dnl macros, since tools such as unproto can fake prototypes, but only part of
--dnl the preprocessor.
--AC_DEFUN([CF_ANSI_CC_REQD],
--[AC_REQUIRE([CF_ANSI_CC_CHECK])
--if test "$cf_cv_ansi_cc" = "no"; then
-- AC_MSG_ERROR(
--[Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto])
--fi
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
- dnl --------------
- dnl Allow user to disable a normally-on option.
-@@ -465,7 +421,7 @@
- AC_SUBST(ARFLAGS)
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
-+dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50
- dnl -----------------
- dnl Check if awk can handle big strings using printf. Some older versions of
- dnl awk choke on large strings passed via "%s".
-@@ -479,8 +435,8 @@
- eval $2=no
- ;;
- *) #(vi
-- if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
-- | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
-+ if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
-+ | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
- eval $2=yes
- else
- eval $2=no
-@@ -536,7 +492,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
-+dnl CF_BOOL_SIZE version: 13 updated: 2013/04/13 18:03:21
- dnl ------------
- dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
- dnl Don't bother looking for bool.h, since it's been deprecated.
-@@ -570,7 +526,7 @@
-
- #endif
-
--main()
-+int main()
- {
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
-@@ -604,7 +560,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
-+dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
- dnl -----------
- dnl If we're cross-compiling, allow the user to override the tools and their
- dnl options. The configure script is oriented toward identifying the host
-@@ -614,7 +570,8 @@
- dnl $1 = default for $CPPFLAGS
- dnl $2 = default for $LIBS
- AC_DEFUN([CF_BUILD_CC],[
--AC_REQUIRE([CF_PROG_EXT])
-+CF_ACVERSION_CHECK(2.52,,
-+ [AC_REQUIRE([CF_PROG_EXT])])
- if test "$cross_compiling" = yes ; then
-
- # defaults that we might want to override
-@@ -695,7 +652,33 @@
- AC_SUBST(BUILD_OBJEXT)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
-+dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
-+dnl ---------------
-+dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
-+dnl into CC. This will not help with broken scripts that wrap the compiler with
-+dnl options, but eliminates a more common category of user confusion.
-+AC_DEFUN([CF_CC_ENV_FLAGS],
-+[
-+# This should have been defined by AC_PROG_CC
-+: ${CC:=cc}
-+
-+AC_MSG_CHECKING(\$CC variable)
-+case "$CC" in #(vi
-+*[[\ \ ]]-[[IUD]]*)
-+ AC_MSG_RESULT(broken)
-+ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
-+ # humor him...
-+ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
-+ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
-+ CF_ADD_CFLAGS($cf_flags)
-+ ;;
-+*)
-+ AC_MSG_RESULT(ok)
-+ ;;
-+esac
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CFG_DEFAULTS version: 9 updated: 2013/04/13 18:58:32
- dnl ---------------
- dnl Determine the default configuration into which we'll install ncurses. This
- dnl can be overridden by the user's command-line options. There's two items to
-@@ -713,7 +696,7 @@
- if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
-- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
-+ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|k*bsd*-gnu|mingw*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
-@@ -749,30 +732,51 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
-+dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13
- dnl ----------
- dnl Check if the terminal-capability database functions are available. If not,
- dnl ncurses has a much-reduced version.
- AC_DEFUN([CF_CGETENT],[
--AC_MSG_CHECKING(for terminal-capability database functions)
--AC_CACHE_VAL(cf_cv_cgetent,[
-+AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
- AC_TRY_LINK([
- #include <stdlib.h>],[
- char temp[128];
- char *buf = temp;
- char *db_array = temp;
-- cgetent(&buf, /* int *, */ &db_array, "vt100");
-+ cgetent(&buf, &db_array, "vt100");
- cgetcap(buf, "tc", '=');
- cgetmatch(buf, "tc");
- ],
- [cf_cv_cgetent=yes],
- [cf_cv_cgetent=no])
- ])
--AC_MSG_RESULT($cf_cv_cgetent)
--test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
-+
-+if test "$cf_cv_cgetent" = yes
-+then
-+ AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
-+AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
-+AC_TRY_LINK([
-+#include <stdlib.h>],[
-+ char temp[128];
-+ char *buf = temp;
-+#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
-+ const char *db_array = temp;
-+ cgetent(&buf, &db_array, "vt100");
-+#endif
-+ cgetcap(buf, "tc", '=');
-+ cgetmatch(buf, "tc");
-+ ],
-+ [cf_cv_cgetent_const=yes],
-+ [cf_cv_cgetent_const=no])
-+])
-+ if test "$cf_cv_cgetent_const" = yes
-+ then
-+ AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
-+ fi
-+fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
-+dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
- dnl --------------
- dnl Check if we're accidentally using a cache from a different machine.
- dnl Derive the system name, as a check for reusing the autoconf cache.
-@@ -795,7 +799,7 @@
- system_name="`(hostname) 2>/dev/null`"
- fi
- fi
--test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
-+test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
- AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
-
- test -z "$system_name" && system_name="$cf_cv_system_name"
-@@ -908,7 +912,82 @@
- fi
- ])])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
-+dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
-+dnl ------------------------
-+dnl Show the version of libtool
-+dnl
-+dnl Save the version in a cache variable - this is not entirely a good thing,
-+dnl but the version string from libtool is very ugly, and for bug reports it
-+dnl might be useful to have the original string.
-+AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
-+if test -n "$LIBTOOL" && test "$LIBTOOL" != none
-+then
-+ AC_MSG_CHECKING(version of $LIBTOOL)
-+ CF_LIBTOOL_VERSION
-+ AC_MSG_RESULT($cf_cv_libtool_version)
-+ if test -z "$cf_cv_libtool_version" ; then
-+ AC_MSG_ERROR(This is not GNU libtool)
-+ fi
-+else
-+ AC_MSG_ERROR(GNU libtool has not been found)
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05
-+dnl ----------------
-+dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
-+AC_DEFUN([CF_CHECK_WCHAR_H],[
-+AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
-+AC_TRY_COMPILE(
-+[
-+#include <stdlib.h>
-+#include <wchar.h>
-+],[
-+ wint_t foo = 0;
-+ int bar = iswpunct(foo)],
-+ [cf_cv_wchar_h_okay=yes],
-+ [cf_cv_wchar_h_okay=no])])
-+
-+if test $cf_cv_wchar_h_okay = no
-+then
-+ CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39
-+dnl -----------------
-+dnl Check if the given compiler is really clang. clang's C driver defines
-+dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
-+dnl not ignore some gcc options.
-+dnl
-+dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
-+dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
-+dnl the wrappers for gcc and g++ warnings.
-+dnl
-+dnl $1 = GCC (default) or GXX
-+dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
-+dnl $3 = CFLAGS (default) or CXXFLAGS
-+AC_DEFUN([CF_CLANG_COMPILER],[
-+ifelse([$2],,CLANG_COMPILER,[$2])=no
-+
-+if test "$ifelse([$1],,[$1],GCC)" = yes ; then
-+ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
-+ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
-+ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
-+ AC_TRY_COMPILE([],[
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+],[])
-+ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
-+ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13
- dnl -----------------
- dnl Check if the C++ compiler accepts duplicate parameter initialization. This
- dnl is a late feature for the standard and is not in some recent compilers
-@@ -932,7 +1011,7 @@
- {
- value = x;
- }
--void main() { }
-+int main() { }
- ],
- [cf_cv_cpp_param_init=yes],
- [cf_cv_cpp_param_init=no],
-@@ -940,10 +1019,10 @@
- AC_LANG_RESTORE
- ])
- fi
--test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
-+test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
-+dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
- dnl ------------------
- dnl Check if the C++ compiler accepts static_cast in generics. This appears to
- dnl not be supported in g++ before 3.0
-@@ -965,7 +1044,7 @@
- int begin_x = 0)
- {
- }
--
-+ NCursesPanel();
- ~NCursesPanel();
- };
-
-@@ -996,10 +1075,58 @@
-
- fi
-
--test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
-+test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41
-+dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34
-+dnl ---------------
-+dnl Setup special archiver flags for given compilers.
-+AC_DEFUN([CF_CXX_AR_FLAGS],[
-+ CXX_AR='$(AR)'
-+ CXX_ARFLAGS='$(ARFLAGS)'
-+ case $cf_cv_system_name in #(vi
-+ irix*) #(vi
-+ if test "$GXX" != yes ; then
-+ CXX_AR='$(CXX)'
-+ CXX_ARFLAGS='-ar -o'
-+ fi
-+ ;;
-+ sco3.2v5*) #(vi
-+ CXXLDFLAGS="-u main"
-+ ;;
-+ solaris2*)
-+ if test "$GXX" != yes ; then
-+ CXX_AR='$(CXX)'
-+ CXX_ARFLAGS='-xar -o'
-+ fi
-+ ;;
-+ esac
-+ AC_SUBST(CXXLDFLAGS)
-+ AC_SUBST(CXX_AR)
-+ AC_SUBST(CXX_ARFLAGS)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
-+dnl -------------------------
-+dnl For c++, check if iostream uses "std::" namespace.
-+AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
-+AC_CHECK_HEADERS(iostream)
-+if test x"$ac_cv_header_iostream" = xyes ; then
-+ AC_MSG_CHECKING(if iostream uses std-namespace)
-+ AC_TRY_COMPILE([
-+#include <iostream>
-+using std::endl;
-+using std::cerr;],[
-+cerr << "testing" << endl;
-+],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
-+ AC_MSG_RESULT($cf_iostream_namespace)
-+ if test "$cf_iostream_namespace" = yes ; then
-+ AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
-+ fi
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_C_INLINE version: 4 updated: 2012/06/16 14:55:39
- dnl -----------
- dnl Check if the C compiler supports "inline".
- dnl $1 is the name of a shell variable to set if inline is supported
-@@ -1012,6 +1139,9 @@
- if test "$INTEL_COMPILER" = yes
- then
- :
-+ elif test "$CLANG_COMPILER" = yes
-+ then
-+ :
- elif test "$GCC" = yes
- then
- AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
-@@ -1057,7 +1187,44 @@
- AC_SUBST(DIRS_TO_MAKE)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32
-+dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
-+dnl ---------------
-+dnl You can always use "make -n" to see the actual options, but it's hard to
-+dnl pick out/analyze warning messages when the compile-line is long.
-+dnl
-+dnl Sets:
-+dnl ECHO_LT - symbol to control if libtool is verbose
-+dnl ECHO_LD - symbol to prefix "cc -o" lines
-+dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
-+dnl SHOW_CC - symbol to put before explicit "cc -c" lines
-+dnl ECHO_CC - symbol to put before any "cc" line
-+dnl
-+AC_DEFUN([CF_DISABLE_ECHO],[
-+AC_MSG_CHECKING(if you want to see long compiling messages)
-+CF_ARG_DISABLE(echo,
-+ [ --disable-echo do not display "compiling" commands],
-+ [
-+ ECHO_LT='--silent'
-+ ECHO_LD='@echo linking [$]@;'
-+ RULE_CC='@echo compiling [$]<'
-+ SHOW_CC='@echo compiling [$]@'
-+ ECHO_CC='@'
-+],[
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-+])
-+AC_MSG_RESULT($enableval)
-+AC_SUBST(ECHO_LT)
-+AC_SUBST(ECHO_LD)
-+AC_SUBST(RULE_CC)
-+AC_SUBST(SHOW_CC)
-+AC_SUBST(ECHO_CC)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
- dnl ----------------
- dnl Combine no-leak checks with the libraries or tools that are used for the
- dnl checks.
-@@ -1075,8 +1242,8 @@
- AC_MSG_RESULT($with_no_leaks)
-
- if test "$with_no_leaks" = yes ; then
-- AC_DEFINE(NO_LEAKS)
-- AC_DEFINE(YY_NO_LEAKS)
-+ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
-+ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-@@ -1123,6 +1290,30 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
-+dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
-+dnl ------------------
-+dnl This is the "--enable-pc-files" option, which is available if there is a
-+dnl pkg-config configuration on the local machine.
-+AC_DEFUN([CF_ENABLE_PC_FILES],[
-+AC_REQUIRE([CF_PKG_CONFIG])
-+AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
-+
-+if test "$PKG_CONFIG" != none ; then
-+ AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
-+ AC_ARG_ENABLE(pc-files,
-+ [ --enable-pc-files generate and install .pc files for pkg-config],
-+ [enable_pc_files=$enableval],
-+ [enable_pc_files=no])
-+ AC_MSG_RESULT($enable_pc_files)
-+ if test "$enable_pc_files" != no
-+ then
-+ CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
-+ fi
-+else
-+ enable_pc_files=no
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
- dnl ---------------
- dnl Check if the rpath option should be used, setting cache variable
-@@ -1137,6 +1328,37 @@
- AC_MSG_RESULT($cf_cv_enable_rpath)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12
-+dnl ----------------------
-+dnl On a few platforms, the compiler and/or loader nags with untruthful
-+dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
-+dnl and implying that most uses of the recommended alternatives are correct.
-+dnl
-+dnl Factually speaking, no one has actually counted the number of uses of these
-+dnl functions versus the total of incorrect uses. Samples of a few thousand
-+dnl instances are meaningless compared to the hundreds of millions of lines of
-+dnl existing C code.
-+dnl
-+dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
-+dnl platforms, in implementations of varying quality. Likewise, snprintf is
-+dnl standard - but evolved through phases, and older implementations are likely
-+dnl to yield surprising results, as documented in manpages on various systems.
-+AC_DEFUN([CF_ENABLE_STRING_HACKS],
-+[
-+AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
-+AC_ARG_ENABLE(string-hacks,
-+ [ --enable-string-hacks work around bogus compiler/loader warnings],
-+ [with_string_hacks=$enableval],
-+ [with_string_hacks=no])
-+AC_MSG_RESULT($with_string_hacks)
-+
-+if test "x$with_string_hacks" = "xyes"; then
-+ AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
-+ AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
-+ AC_CHECK_FUNCS( strlcat strlcpy snprintf )
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
- dnl --------
- dnl Check if 'errno' is declared in <errno.h>
-@@ -1145,7 +1367,7 @@
- CF_CHECK_ERRNO(errno)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
-+dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07
- dnl ---------------
- dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
- dnl math.h and builtin.h, only for ncurses
-@@ -1154,11 +1376,17 @@
- AC_MSG_CHECKING(for special defines needed for etip.h)
- cf_save_CXXFLAGS="$CXXFLAGS"
- cf_result="none"
-+
-+# etip.h includes ncurses.h which includes ncurses_dll.h
-+# But ncurses_dll.h is generated - fix here.
-+test -d include || mkdir include
-+test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h
-+
- for cf_math in "" MATH_H
- do
- for cf_excp in "" MATH_EXCEPTION
- do
-- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
-+ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
- test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
- test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
- AC_TRY_COMPILE([
-@@ -1167,7 +1395,7 @@
- test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
- test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
- cf_result="$cf_math $cf_excp"
-- break
-+ break 2
- ],[])
- done
- done
-@@ -1305,7 +1533,35 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02
-+dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
-+dnl -----------------
-+dnl make ADAFLAGS consistent with CFLAGS
-+AC_DEFUN([CF_FIXUP_ADAFLAGS],[
-+ AC_MSG_CHECKING(optimization options for ADAFLAGS)
-+ case "$CFLAGS" in
-+ *-g*)
-+ CF_ADD_ADAFLAGS(-g)
-+ ;;
-+ esac
-+ case "$CFLAGS" in
-+ *-O*)
-+ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
-+ CF_ADD_ADAFLAGS($cf_O_flag)
-+ ;;
-+ esac
-+ AC_MSG_RESULT($ADAFLAGS)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
-+dnl --------------
-+dnl Forget that we saw the given tool.
-+AC_DEFUN([CF_FORGET_TOOL],[
-+unset ac_cv_prog_ac_ct_$1
-+unset ac_ct_$1
-+unset $1
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15
- dnl -------------
- dnl Test for dlsym() and related functions, as well as libdl.
- dnl
-@@ -1332,7 +1588,7 @@
- dlclose(obj);
- }
- }],[
-- AC_DEFINE(HAVE_LIBDL)],[
-+ AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
- AC_MSG_ERROR(Cannot link test program for libdl)])
- AC_MSG_RESULT(ok)
- else
-@@ -1340,7 +1596,7 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
-+dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20
- dnl ---------------
- dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
- dnl is found, add our own version of memmove to the list of objects.
-@@ -1365,13 +1621,13 @@
- ])
- ],[cf_cv_good_bcopy=no])
- if test "$cf_cv_good_bcopy" = yes ; then
-- AC_DEFINE(USE_OK_BCOPY)
-+ AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
- else
-- AC_DEFINE(USE_MY_MEMMOVE)
-+ AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
- fi
- ])])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
-+dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13
- dnl -----------------
- dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
- dnl AIX 4.x, provide a non-working version.
-@@ -1402,7 +1658,7 @@
- [cf_cv_func_nanosleep=no],
- [cf_cv_func_nanosleep=unknown])])
-
--test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
-+test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
- ])
- dnl ---------------------------------------------------------------------------
- dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02
-@@ -1433,14 +1689,17 @@
- ])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
-+dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07
- dnl ------------
- dnl See if the poll function really works. Some platforms have poll(), but
- dnl it does not work for terminals or files.
- AC_DEFUN([CF_FUNC_POLL],[
- AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
- AC_TRY_RUN([
-+#include <stdlib.h>
- #include <stdio.h>
-+#include <unistd.h>
-+#include <fcntl.h>
- #ifdef HAVE_POLL_H
- #include <poll.h>
- #else
-@@ -1450,19 +1709,42 @@
- struct pollfd myfds;
- int ret;
-
-- myfds.fd = 0;
-+ /* check for Darwin bug with respect to "devices" */
-+ myfds.fd = open("/dev/null", 1); /* O_WRONLY */
-+ if (myfds.fd < 0)
-+ myfds.fd = 0;
- myfds.events = POLLIN;
-+ myfds.revents = 0;
-
- ret = poll(&myfds, 1, 100);
-- ${cf_cv_main_return:-return}(ret != 0);
-+
-+ if (ret < 0 || (myfds.revents & POLLNVAL)) {
-+ ret = -1;
-+ } else {
-+ int fd = 0;
-+ if (!isatty(fd)) {
-+ fd = open("/dev/tty", 2); /* O_RDWR */
-+ }
-+
-+ if (fd >= 0) {
-+ /* also check with standard input */
-+ myfds.fd = fd;
-+ myfds.events = POLLIN;
-+ myfds.revents = 0;
-+ ret = poll(&myfds, 1, 100);
-+ } else {
-+ ret = -1;
-+ }
-+ }
-+ ${cf_cv_main_return:-return}(ret < 0);
- }],
- [cf_cv_working_poll=yes],
- [cf_cv_working_poll=no],
- [cf_cv_working_poll=unknown])])
--test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
-+test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
-+dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
- dnl ---------------
- dnl Some old/broken variations define tcgetattr() only as a macro in
- dnl termio(s).h
-@@ -1488,10 +1770,10 @@
- tcgetattr(1, &foo);],
- [cf_cv_have_tcgetattr=yes],
- [cf_cv_have_tcgetattr=no])])
--test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
-+test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
-+dnl CF_FUNC_VSSCANF version: 4 updated: 2012/10/06 17:56:13
- dnl ---------------
- dnl Check for vsscanf() function, which is in c9x but generally not in earlier
- dnl versions of C. It is in the GNU C library, and can often be simulated by
-@@ -1529,14 +1811,14 @@
- cf_cv_func_vsscanf=no])])])])
-
- case $cf_cv_func_vsscanf in #(vi
--vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
--vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
--_doscan) AC_DEFINE(HAVE__DOSCAN);;
-+vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; #(vi
-+vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; #(vi
-+_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
- esac
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
-+dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
- dnl -----------------
- dnl Test for availability of useful gcc __attribute__ directives to quiet
- dnl compiler warnings. Though useful, not all are supported -- and contrary
-@@ -1614,27 +1896,27 @@
- test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
- cat conftest.h >>confdefs.h
- case $cf_attribute in #(vi
-+ noreturn) #(vi
-+ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
-+ ;;
- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--EOF
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-+ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
- fi
-+ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
- ;;
- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--EOF
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-+ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
- fi
-+ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
-+ ;;
-+ unused) #(vi
-+ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
- ;;
- esac
- fi
-@@ -1646,7 +1928,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
-+dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
- dnl --------------
- dnl Find version of gcc
- AC_DEFUN([CF_GCC_VERSION],[
-@@ -1654,13 +1936,13 @@
- GCC_VERSION=none
- if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of $CC)
-- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
-+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- AC_MSG_RESULT($GCC_VERSION)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
-+dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39
- 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:
-@@ -1683,6 +1965,7 @@
- [
- AC_REQUIRE([CF_GCC_VERSION])
- CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
-+CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
-
- cat > conftest.$ac_ext <<EOF
- #line __oline__ "${as_me:-configure}"
-@@ -1758,6 +2041,13 @@
- continue;;
- esac
- ;;
-+ Wpointer-arith) #(vi
-+ case $GCC_VERSION in
-+ [[12]].*)
-+ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
-+ continue;;
-+ esac
-+ ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
-@@ -1769,6 +2059,29 @@
- AC_SUBST(EXTRA_CFLAGS)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_GETOPT_HEADER version: 5 updated: 2012/10/06 16:39:58
-+dnl ----------------
-+dnl Check for getopt's variables which are commonly defined in stdlib.h,
-+dnl unistd.h or (nonstandard) in getopt.h
-+AC_DEFUN([CF_GETOPT_HEADER],
-+[
-+AC_HAVE_HEADERS(unistd.h getopt.h)
-+AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
-+cf_cv_getopt_header=none
-+for cf_header in stdio.h stdlib.h unistd.h getopt.h
-+do
-+AC_TRY_COMPILE([
-+#include <$cf_header>],
-+[int x = optind; char *y = optarg],
-+[cf_cv_getopt_header=$cf_header
-+ break])
-+done
-+])
-+if test $cf_cv_getopt_header != none ; then
-+ AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h])
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
- dnl ----------------
- AC_DEFUN([CF_GNAT_GENERICS],
-@@ -2040,7 +2353,7 @@
- rm -rf conftest* *~conftest*
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41
-+dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
- dnl ---------------
- dnl Verify version of GNAT.
- AC_DEFUN([CF_GNAT_VERSION],
-@@ -2052,7 +2365,7 @@
- AC_MSG_RESULT($cf_gnat_version)
-
- case $cf_gnat_version in #(vi
--3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi
-+3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
- cf_cv_prog_gnat_correct=yes
- ;;
- *)
-@@ -2092,7 +2405,7 @@
- test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GPP_LIBRARY version: 10 updated: 2010/05/29 16:31:02
-+dnl CF_GPP_LIBRARY version: 11 updated: 2012/10/06 17:56:13
- dnl --------------
- dnl If we're trying to use g++, test if libg++ is installed (a rather common
- dnl problem :-). If we have the compiler but no library, we'll be able to
-@@ -2119,9 +2432,9 @@
- [cf_cxx_library=yes
- CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
- if test "$cf_gpp_libname" = cpp ; then
-- AC_DEFINE(HAVE_GPP_BUILTIN_H)
-+ AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
- else
-- AC_DEFINE(HAVE_GXX_BUILTIN_H)
-+ AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
- fi],
- [AC_TRY_LINK([
- #include <builtin.h>
-@@ -2129,28 +2442,28 @@
- [two_arg_error_handler_t foo2 = lib_error_handler],
- [cf_cxx_library=yes
- CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
-- AC_DEFINE(HAVE_BUILTIN_H)],
-+ AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
- [cf_cxx_library=no])])
- LIBS="$cf_save"
- AC_MSG_RESULT($cf_cxx_library)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GXX_VERSION version: 6 updated: 2010/10/23 15:44:18
-+dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39
- dnl --------------
- dnl Check for version of g++
- AC_DEFUN([CF_GXX_VERSION],[
- AC_REQUIRE([AC_PROG_CPP])
- GXX_VERSION=none
- if test "$GXX" = yes; then
-- AC_MSG_CHECKING(version of g++)
-+ AC_MSG_CHECKING(version of ${CXX:-g++})
- GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GXX_VERSION" && GXX_VERSION=unknown
- AC_MSG_RESULT($GXX_VERSION)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GXX_WARNINGS version: 6 updated: 2010/08/14 18:25:37
-+dnl CF_GXX_WARNINGS version: 7 updated: 2012/06/16 14:55:39
- dnl ---------------
- dnl Check if the compiler supports useful warning options.
- dnl
-@@ -2173,6 +2486,7 @@
- [
-
- CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
-+CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
-
- AC_REQUIRE([CF_GXX_VERSION])
-
-@@ -2464,7 +2778,7 @@
- [AC_DIVERT_HELP([$1])dnl
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
-+dnl CF_INCLUDE_DIRS version: 7 updated: 2012/11/10 19:15:05
- dnl ---------------
- dnl Construct the list of include-options according to whether we're building
- dnl in the source directory or using '--srcdir=DIR' option. If we're building
-@@ -2472,25 +2786,25 @@
- dnl since that usually breaks gcc's shadow-includes.
- AC_DEFUN([CF_INCLUDE_DIRS],
- [
--CPPFLAGS="$CPPFLAGS -I. -I../include"
--if test "$srcdir" != "."; then
-- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
--fi
- if test "$GCC" != yes; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- else
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- fi
-+if test "$srcdir" != "."; then
-+ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
-+fi
-+CPPFLAGS="-I. -I../include $CPPFLAGS"
- AC_SUBST(CPPFLAGS)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
-+dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05
- dnl -----------------
- dnl Check if the given compiler is really the Intel compiler for Linux. It
- dnl tries to imitate gcc, but does not return an error when it finds a mismatch
-@@ -2504,6 +2818,7 @@
- dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
- dnl $3 = CFLAGS (default) or CXXFLAGS
- AC_DEFUN([CF_INTEL_COMPILER],[
-+AC_REQUIRE([AC_CANONICAL_HOST])
- ifelse([$2],,INTEL_COMPILER,[$2])=no
-
- if test "$ifelse([$1],,[$1],GCC)" = yes ; then
-@@ -2527,7 +2842,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
-+dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
- dnl ----------
- dnl Check if we have either a function or macro for 'isascii()'.
- AC_DEFUN([CF_ISASCII],
-@@ -2539,10 +2854,10 @@
- [cf_cv_have_isascii=no])
- ])dnl
- AC_MSG_RESULT($cf_cv_have_isascii)
--test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
-+test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
-+dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51
- dnl ------------
- dnl Add checks for large file support.
- AC_DEFUN([CF_LARGEFILE],[
-@@ -2576,12 +2891,12 @@
- [cf_cv_struct_dirent64=yes],
- [cf_cv_struct_dirent64=no])
- ])
-- test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
-+ test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
- fi
- ])
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_LDFLAGS_STATIC version: 8 updated: 2010/10/23 14:39:56
-+dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48
- dnl -----------------
- dnl Check for compiler/linker flags used to temporarily force usage of static
- dnl libraries. This depends on the compiler and platform. Use this to help
-@@ -2602,7 +2917,7 @@
- esac
- else
- case $cf_cv_system_name in #(
-- aix[[456]]*) #( from ld manpage
-+ aix[[4-7]]*) #( from ld manpage
- LDFLAGS_STATIC=-bstatic
- LDFLAGS_SHARED=-bdynamic
- ;;
-@@ -2652,7 +2967,17 @@
- int cf_ldflags_static(FILE *fp);
- ],[
- return cf_ldflags_static(stdin);
--],[cf_ldflags_static=yes],[cf_ldflags_static=no])
-+],[
-+ # some linkers simply ignore the -dynamic
-+ case x`file conftest$ac_exeext 2>/dev/null` in #(vi
-+ *static*) # (vi
-+ cf_ldflags_static=no
-+ ;;
-+ *)
-+ cf_ldflags_static=yes
-+ ;;
-+ esac
-+],[cf_ldflags_static=no])
-
- rm -f libconftest.*
- LIBS="$cf_save_LIBS"
-@@ -2673,7 +2998,7 @@
- AC_SUBST(LDFLAGS_SHARED)
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
-+dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
- dnl ---------------
- dnl For the given system and compiler, find the compiler flags to pass to the
- dnl loader to use the "rpath" feature.
-@@ -2694,10 +3019,10 @@
- linux*|gnu*|k*bsd*-gnu) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--openbsd[[2-9]].*) #(vi
-+openbsd[[2-9]].*|mirbsd*) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--freebsd*) #(vi
-+dragonfly*|freebsd*) #(vi
- LD_RPATH_OPT="-rpath "
- ;;
- netbsd*) #(vi
-@@ -2756,11 +3081,23 @@
- $1="$cf_library_path_list [$]$1"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
-+dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
-+dnl ------------------
-+AC_DEFUN([CF_LIBTOOL_VERSION],[
-+if test -n "$LIBTOOL" && test "$LIBTOOL" != none
-+then
-+ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
-+else
-+ cf_cv_libtool_version=
-+fi
-+test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
- dnl -------------
- dnl Compute the library-prefix for the given host system
- dnl $1 = variable to set
--AC_DEFUN([CF_LIB_PREFIX],
-+define([CF_LIB_PREFIX],
- [
- case $cf_cv_system_name in #(vi
- OS/2*|os2*) #(vi
-@@ -2773,11 +3110,11 @@
- AC_SUBST(LIB_PREFIX)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LIB_RULES version: 61 updated: 2010/10/23 16:10:30
-+dnl CF_LIB_RULES version: 72 updated: 2013/03/24 17:10:41
- dnl ------------
- dnl Append definitions and rules for the given models to the subdirectory
- dnl Makefiles, and the recursion rule for the top-level Makefile. If the
--dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
-+dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
- dnl the corresponding makefile to list the models that we'll generate.
- dnl
- dnl For shared libraries, make a list of symbolic links to construct when
-@@ -2786,15 +3123,19 @@
- dnl lib<name>.so ->
- dnl lib<name>.so.<major> ->
- dnl lib<name>.so.<maj>.<minor>
-+dnl
-+dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
- AC_DEFUN([CF_LIB_RULES],
- [
--CF_LIB_PREFIX(cf_prefix)
-+cf_prefix=$LIB_PREFIX
- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
-
--if test $cf_cv_shlib_version = cygdll ; then
-+case $cf_cv_shlib_version in #(vi
-+cygdll|mingw)
- TINFO_NAME=$TINFO_ARG_SUFFIX
- TINFO_SUFFIX=.dll
--fi
-+ ;;
-+esac
-
- if test -n "$TINFO_SUFFIX" ; then
- case $TINFO_SUFFIX in
-@@ -2820,79 +3161,73 @@
- elif test -f $srcdir/$cf_dir/modules; then
-
- SHARED_LIB=
-- LIBS_TO_MAKE=
-+ Libs_To_Make=
- for cf_item in $cf_LIST_MODELS
- do
- CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
-+ cf_libname=$cf_dir
-+ test "$cf_dir" = c++ && cf_libname=ncurses++
- if test $cf_item = shared ; then
-- if test "$cf_cv_do_symlinks" = yes ; then
-- case "$cf_cv_shlib_version" in #(vi
-- rel) #(vi
-- case "$cf_cv_system_name" in #(vi
-- darwin*)
-- case .${LIB_SUFFIX} in
-- .tw*)
-- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
-- cf_suffix=tw'.${REL_VERSION}'"$cf_suffix"
-- ;;
-- .t*)
-- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
-- cf_suffix=t'.${REL_VERSION}'"$cf_suffix"
-- ;;
-- .w*)
-- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
-- cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
-+ if test -n "${LIB_SUFFIX}"
-+ then
-+ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
-+ else
-+ cf_shared_suffix="$cf_suffix"
-+ fi
-+ if test "$cf_cv_do_symlinks" = yes ; then
-+ cf_version_name=
-+
-+ case "$cf_cv_shlib_version" in #(vi
-+ rel) #(vi
-+ cf_version_name=REL_VERSION
- ;;
-- *)
-- cf_suffix='.${REL_VERSION}'"$cf_suffix"
-+ abi)
-+ cf_version_name=ABI_VERSION
- ;;
- esac
-- ;; #(vi
-- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
-- esac
-+
-+ if test -n "$cf_version_name"
-+ then
-+ case "$cf_cv_system_name" in #(vi
-+ darwin*)
-+ # "w", etc?
-+ cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
-+ ;; #(vi
-+ *)
-+ cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
-+ ;;
-+ esac
-+ fi
-+ if test -n "${LIB_SUFFIX}"
-+ then
-+ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
-+ else
-+ cf_shared_suffix="$cf_suffix"
-+ fi
-+ fi
-+ # cygwin needs import library, and has unique naming convention
-+ # use autodetected ${cf_prefix} for import lib and static lib, but
-+ # use 'cyg' prefix for shared lib.
-+ case $cf_cv_shlib_version in #(vi
-+ cygdll) #(vi
-+ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
-+ Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}"
-+ continue
- ;;
-- abi)
-- case "$cf_cv_system_name" in #(vi
-- darwin*)
-- case .${LIB_SUFFIX} in
-- .tw*)
-- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
-- cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- .t*)
-- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
-- cf_suffix=t'.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- .w*)
-- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
-- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- *)
-- cf_suffix='.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- esac
-- ;; #(vi
-- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
-- esac
-+ mingw)
-+ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
-+ Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}"
-+ continue
- ;;
- esac
- fi
-- # cygwin needs import library, and has unique naming convention
-- # use autodetected ${cf_prefix} for import lib and static lib, but
-- # use 'cyg' prefix for shared lib.
-- if test $cf_cv_shlib_version = cygdll ; then
-- cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
-- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
-- continue
-- fi
-- fi
-- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
-+ Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}"
- done
-
- if test $cf_dir = ncurses ; then
- cf_subsets="$LIB_SUBSETS"
- cf_r_parts="$cf_subsets"
-- cf_liblist="$LIBS_TO_MAKE"
-+ cf_liblist="$Libs_To_Make"
-
- while test -n "$cf_r_parts"
- do
-@@ -2912,7 +3247,7 @@
- ;;
- esac
- if test -n "$cf_item"; then
-- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
-+ Libs_To_Make="$cf_item $Libs_To_Make"
- fi
- else
- break
-@@ -2922,13 +3257,40 @@
- cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
- fi
-
-- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
-+ if test $cf_dir = c++; then
-+ if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
-+ cf_list=
-+ for cf_item in $Libs_To_Make
-+ do
-+ case $cf_item in
-+ *.a)
-+ ;;
-+ *)
-+ cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
-+ ;;
-+ esac
-+ for cf_test in $cf_list
-+ do
-+ if test "$cf_test" = "$cf_item"
-+ then
-+ cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
-+ cf_item=
-+ break
-+ fi
-+ done
-+ test -n "$cf_item" && cf_list="$cf_list $cf_item"
-+ done
-+ Libs_To_Make="$cf_list"
-+ fi
-+ fi
-+
-+ sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
- -e "s%@SHARED_LIB@%$SHARED_LIB%" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
-- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
-+ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- for cf_subset in $cf_subsets
-@@ -2936,8 +3298,23 @@
- cf_subdirs=
- for cf_item in $cf_LIST_MODELS
- do
-+
- echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
- CF_UPPER(cf_ITEM,$cf_item)
-+
-+ CXX_MODEL=$cf_ITEM
-+ if test "$CXX_MODEL" = SHARED; then
-+ case $cf_cv_shlib_version in #(vi
-+ cygdll|mingw) #(vi
-+ test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
-+ with_shared_cxx=yes
-+ ;;
-+ *)
-+ test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
-+ ;;
-+ esac
-+ fi
-+
- CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
- CF_OBJ_SUBDIR($cf_item,cf_subdir)
-
-@@ -2955,6 +3332,8 @@
- cf_libname=$TICS_LIB_SUFFIX
- ;;
- esac
-+ elif test $cf_dir = c++ ; then
-+ cf_libname=ncurses++$LIB_SUFFIX
- else
- cf_libname=${cf_libname}$LIB_SUFFIX
- fi
-@@ -3006,10 +3385,12 @@
- name=${cf_libname}${cf_dir_suffix} \
- traces=$LIB_TRACING \
- MODEL=$cf_ITEM \
-+ CXX_MODEL=$CXX_MODEL \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
-+ driver=$cf_cv_term_driver \
- SymLink="$LN_S" \
- TermlibRoot=$TINFO_NAME \
- TermlibSuffix=$TINFO_SUFFIX \
-@@ -3048,7 +3429,7 @@
- done
- fi
-
-- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
-+ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile
- done
-
- for cf_dir in $SRC_SUBDIRS
-@@ -3063,7 +3444,7 @@
- echo 'libs \' >> Makefile
- echo 'install.libs \' >> Makefile
- echo 'uninstall.libs ::' >> Makefile
-- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
-+ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile
- ;;
- esac
- fi
-@@ -3086,7 +3467,7 @@
- uninstall.libs \\
- install.$cf_dir \\
- uninstall.$cf_dir ::
-- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
-+ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
- CF_EOF
- elif test -f $srcdir/$cf_dir/headers; then
- cat >> Makefile <<CF_EOF
-@@ -3096,7 +3477,7 @@
- uninstall.libs \\
- install.includes \\
- uninstall.includes ::
-- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
-+ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
- CF_EOF
- fi
- done
-@@ -3105,7 +3486,7 @@
-
- install.libs uninstall.libs \\
- install.data uninstall.data ::
--$MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
-+$MAKE_TERMINFO cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
- CF_EOF
-
- if test "x$cf_with_manpages" = xyes; then
-@@ -3113,7 +3494,7 @@
-
- install.man \\
- uninstall.man ::
-- cd man && \${MAKE} \${CF_MFLAGS} \[$]@
-+ cd man && \${MAKE} \${TOP_MFLAGS} \[$]@
- CF_EOF
- fi
-
-@@ -3134,7 +3515,7 @@
-
- install.man \\
- uninstall.man ::
-- cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
-+ cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@
- CF_EOF
- fi
- fi
-@@ -3252,7 +3633,7 @@
- fi
- fi
- done
--AC_SUBST(LIBS_TO_MAKE)
-+AC_SUBST(Libs_To_Make)
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
-@@ -3292,7 +3673,7 @@
- ])
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
-+dnl CF_LIB_SUFFIX version: 18 updated: 2012/02/25 15:20:07
- dnl -------------
- dnl Compute the library file-suffix from the given model name
- dnl $1 = model name
-@@ -3321,11 +3702,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[[56]]*) #(vi
-+ aix[[5-7]]*) #(vi
- $2='.a'
- $3=[$]$2
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- $2='.dll'
- $3='.dll.a'
- ;;
-@@ -3372,7 +3753,7 @@
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
-+dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
- dnl ----------------
- dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
- dnl only data (i.e., no functions), for example NeXT. On those systems we'll
-@@ -3429,13 +3810,13 @@
- AC_MSG_RESULT($cf_cv_link_dataonly)
-
- if test "$cf_cv_link_dataonly" = no ; then
-- AC_DEFINE(BROKEN_LINKER)
-+ AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
- BROKEN_LINKER=1
- fi
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
-+dnl CF_LINK_FUNCS version: 8 updated: 2012/10/06 17:56:13
- 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.
-@@ -3487,23 +3868,11 @@
- 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)
-+ test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
-+ test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
--dnl --------------
--dnl Check if a return from main to the shell actually returns the same exit
--dnl code. This is true for almost any POSIX environment.
--dnl
--dnl Some very old environments did not flush stdout, etc., on an exit. That
--dnl would be a useful case to test for also.
--AC_DEFUN([CF_MAIN_RETURN],
--[
--cf_cv_main_return=return
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46
- dnl ------------
- dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
-@@ -3799,7 +4168,7 @@
- AC_MSG_RESULT($MANPAGE_TBL)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_MAN_PAGES version: 39 updated: 2010/10/23 15:44:18
-+dnl CF_MAN_PAGES version: 43 updated: 2013/02/09 12:53: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
-@@ -3856,6 +4225,7 @@
- # this script is generated by the configure-script CF_MAN_PAGES macro.
-
- prefix="$cf_prefix"
-+datarootdir="$datarootdir"
- datadir="$datadir"
-
- NCURSES_MAJOR="$NCURSES_MAJOR"
-@@ -3916,11 +4286,12 @@
- if test ! -f $cf_man_alias ; then
- cat >>$cf_man_alias <<-CF_EOF2
- s,@DATADIR@,\$datadir,g
-- s,@TERMINFO@,\$TERMINFO,g
-- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
-- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
-- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
-- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
-+ s,@TERMINFO@,\${TERMINFO:="no default value"},g
-+ s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
-+ s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
-+ s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
-+ s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
-+ s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
- CF_EOF
- ifelse($1,,,[
- for cf_name in $1
-@@ -3949,7 +4320,9 @@
-
- if test "$MANPAGE_ALIASES" != no ; then
- cat >>$cf_edit_man <<CF_EOF
-- aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
-+ nCurses=ignore.3x
-+ test $with_curses_h = yes && nCurses=ncurses.3x
-+ aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u; test \$inalias = \$nCurses && echo curses\`
- CF_EOF
- fi
-
-@@ -3995,6 +4368,13 @@
- fi
- CF_EOF
-
-+if test $with_overwrite != yes ; then
-+cat >>$cf_edit_man <<CF_EOF
-+ sed -e "/\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
-+ mv \$TMP.out \$TMP
-+CF_EOF
-+fi
-+
- if test $with_curses_h != yes ; then
- cat >>$cf_edit_man <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
-@@ -4154,7 +4534,7 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
-+dnl CF_MIXEDCASE_FILENAMES version: 4 updated: 2012/10/02 20:55:03
- 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.
-@@ -4181,10 +4561,10 @@
- rm -f conftest CONFTEST
- fi
- ])
--test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
-+test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
-+dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
- dnl ----------
- dnl Check for a working mkstemp. This creates two files, checks that they are
- dnl successfully created and distinct (AmigaOS apparently fails on the last).
-@@ -4226,11 +4606,13 @@
- }
- ],[cf_cv_func_mkstemp=yes
- ],[cf_cv_func_mkstemp=no
--],[AC_CHECK_FUNC(mkstemp)
--])
-+],[cf_cv_func_mkstemp=maybe])
- ])
-+if test "x$cf_cv_func_mkstemp" = xmaybe ; then
-+ AC_CHECK_FUNC(mkstemp)
-+fi
- if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
-- AC_DEFINE(HAVE_MKSTEMP)
-+ AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-@@ -4258,14 +4640,14 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
-+dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
- dnl ------------------
- dnl see CF_WITH_NO_LEAKS
- AC_DEFUN([CF_NO_LEAKS_OPTION],[
- AC_MSG_CHECKING(if you want to use $1 for testing)
- AC_ARG_WITH($1,
- [$2],
-- [AC_DEFINE($3)ifelse([$4],,[
-+ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
- $4
- ])
- : ${with_cflags:=-g}
-@@ -4326,20 +4708,23 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
-+dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12
- dnl ----------
--dnl Provide a value for the $PATH and similar separator
-+dnl Provide a value for the $PATH and similar separator (or amend the value
-+dnl as provided in autoconf 2.5x).
- AC_DEFUN([CF_PATHSEP],
- [
-+ AC_MSG_CHECKING(for PATH separator)
- case $cf_cv_system_name in
- os2*) PATH_SEPARATOR=';' ;;
-- *) PATH_SEPARATOR=':' ;;
-+ *) ${PATH_SEPARATOR:=':'} ;;
- esac
- ifelse([$1],,,[$1=$PATH_SEPARATOR])
- AC_SUBST(PATH_SEPARATOR)
-+ AC_MSG_RESULT($PATH_SEPARATOR)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
-+dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
- dnl --------------
- dnl Check the argument to see that it looks like a pathname. Rewrite it if it
- dnl begins with one of the prefix/exec_prefix variables, and then again if the
-@@ -4359,7 +4744,7 @@
- ;;
- .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
- ;;
--.\[$]{*prefix}*) #(vi
-+.\[$]{*prefix}*|.\[$]{*dir}*) #(vi
- eval $1="[$]$1"
- case ".[$]$1" in #(vi
- .NONE/*)
-@@ -4376,7 +4761,7 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
-+dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
- dnl -------------
- dnl Check for the package-config program, unless disabled by command-line.
- AC_DEFUN([CF_PKG_CONFIG],
-@@ -4393,7 +4778,9 @@
- PKG_CONFIG=none
- ;;
- yes) #(vi
-- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
-+ CF_ACVERSION_CHECK(2.52,
-+ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
-+ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
- ;;
- *)
- PKG_CONFIG=$withval
-@@ -4554,6 +4941,19 @@
- test -z "$AWK" && AC_MSG_ERROR(No awk program found)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55
-+dnl ----------
-+dnl standard check for CC, plus followup sanity checks
-+dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
-+AC_DEFUN([CF_PROG_CC],[
-+ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
-+CF_GCC_VERSION
-+CF_ACVERSION_CHECK(2.52,
-+ [AC_PROG_CC_STDC],
-+ [CF_ANSI_CC_REQD])
-+CF_CC_ENV_FLAGS
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
- dnl --------------
- dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
-@@ -4593,31 +4993,6 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
--dnl --------------
--dnl Check if C (preprocessor) -U and -D options are processed in the order
--dnl given rather than by type of option. Some compilers insist on apply all
--dnl of the -U options after all of the -D options. Others allow mixing them,
--dnl and may predefine symbols that conflict with those we define.
--AC_DEFUN([CF_PROG_CC_U_D],
--[
--AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
-- cf_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
-- AC_TRY_COMPILE([],[
--#ifndef U_D_OPTIONS
--make an undefined-error
--#endif
--#ifdef D_U_OPTIONS
--make a defined-error
--#endif
-- ],[
-- cf_cv_cc_u_d_options=yes],[
-- cf_cv_cc_u_d_options=no])
-- CPPFLAGS="$cf_save_CPPFLAGS"
--])
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
- dnl -------------
- dnl AC_PROG_EGREP was introduced in autoconf 2.53.
-@@ -4633,32 +5008,7 @@
- test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
--dnl -----------
--dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
--AC_DEFUN([CF_PROG_EXT],
--[
--AC_REQUIRE([CF_CHECK_CACHE])
--case $cf_cv_system_name in
--os2*)
-- CFLAGS="$CFLAGS -Zmt"
-- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
-- CXXFLAGS="$CXXFLAGS -Zmt"
-- # autoconf's macro sets -Zexe and suffix both, which conflict:w
-- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
-- ac_cv_exeext=.exe
-- ;;
--esac
--
--AC_EXEEXT
--AC_OBJEXT
--
--PROG_EXT="$EXEEXT"
--AC_SUBST(PROG_EXT)
--test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18
-+dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47
- dnl ------------
- dnl Check for gnatmake, ensure that it is complete.
- AC_DEFUN([CF_PROG_GNAT],[
-@@ -4666,6 +5016,7 @@
- AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
- if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-+ cf_cv_prog_gnat_correct=no
- else
- CF_GNAT_VERSION
- AC_CHECK_PROG(M4_exists, m4, yes, no)
-@@ -4709,7 +5060,7 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
-+dnl CF_PROG_LDCONFIG version: 3 updated: 2011/06/04 20:09:13
- dnl ----------------
- dnl Check for ldconfig, needed to fixup shared libraries that would be built
- dnl and then used in the install.
-@@ -4718,7 +5069,7 @@
- LDCONFIG=:
- else
- case "$cf_cv_system_name" in #(vi
--dragonfly*|freebsd*) #(vi
-+dragonfly*|mirbsd*|freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
- *) LDPATH=$PATH:/sbin:/usr/sbin
-@@ -4759,7 +5110,7 @@
- test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_REGEX version: 8 updated: 2010/08/07 14:09:44
-+dnl CF_REGEX version: 10 updated: 2012/10/04 20:12:20
- dnl --------
- dnl Attempt to determine if we've got one of the flavors of regular-expression
- dnl code that we can support.
-@@ -4771,7 +5122,7 @@
- cf_regex_libs="regex re"
- case $host_os in #(vi
- mingw*)
-- cf_regex_libs="regex.dll $cf_regex_libs"
-+ cf_regex_libs="gnurx $cf_regex_libs"
- ;;
- esac
-
-@@ -4833,9 +5184,9 @@
-
- case $cf_cv_regex_hdrs in #(vi
- no) AC_MSG_WARN(no regular expression header found) ;; #(vi
-- regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
-- regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
-- regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
-+ regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;; #(vi
-+ regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;; #(vi
-+ regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
-@@ -4984,7 +5335,7 @@
- AC_SUBST(EXTRA_LDFLAGS)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16
-+dnl CF_SHARED_OPTS version: 72 updated: 2013/01/26 16:26:12
- dnl --------------
- dnl --------------
- dnl Attempt to determine the appropriate CC/LD options for creating a shared
-@@ -5040,6 +5391,7 @@
- AC_MSG_RESULT($cf_cv_shlib_version)
-
- cf_cv_rm_so_locs=no
-+ cf_try_cflags=
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
-@@ -5059,10 +5411,14 @@
- cf_cv_shlib_version_infix=no
-
- case $cf_cv_system_name in #(vi
-- aix[[56]]*) #(vi
-+ aix4.[3-9]*|aix[[5-7]]*) #(vi
- if test "$GCC" = yes; then
- CC_SHARED_OPTS=
-- MK_SHARED_LIB='$(CC) -shared'
-+ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
-+ else
-+ # CC_SHARED_OPTS='-qpic=large -G'
-+ # perhaps "-bM:SRE -bnoentry -bexpall"
-+ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
- fi
- ;;
- beos*) #(vi
-@@ -5088,7 +5444,7 @@
- chmod +x mk_shared_lib.sh
- ;;
- darwin*) #(vi
-- EXTRA_CFLAGS="-no-cpp-precomp"
-+ cf_try_cflags="no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
-@@ -5102,6 +5458,14 @@
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- fi
- ;;
-+ hpux[[7-8]]*) #(vi
-+ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
-+ if test "$GCC" != yes; then
-+ CC_SHARED_OPTS='+Z'
-+ fi
-+ MK_SHARED_LIB='${LD} -b -o $[@]'
-+ INSTALL_LIB="-m 555"
-+ ;;
- hpux*) #(vi
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
-@@ -5115,9 +5479,19 @@
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
-+ interix*)
-+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-+ if test "$cf_cv_shlib_version" = rel; then
-+ cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
-+ else
-+ cf_shared_soname='`basename $@`'
-+ fi
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
-+ ;;
- irix*) #(vi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
-@@ -5134,18 +5508,39 @@
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
- ;;
-- openbsd[[2-9]].*) #(vi
-+ mingw*) #(vi
-+ cf_cv_shlib_version=mingw
-+ cf_cv_shlib_version_infix=mingw
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
-+ #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]'
-+ #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]'
-+ cat >mk_shared_lib.sh <<-CF_EOF
-+ #!/bin/sh
-+ SHARED_LIB=\[$]1
-+ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
-+ shift
-+ cat <<-EOF
-+ Linking shared library
-+ ** SHARED_LIB \[$]SHARED_LIB
-+ ** IMPORT_LIB \[$]IMPORT_LIB
-+EOF
-+ exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
-+CF_EOF
-+ chmod +x mk_shared_lib.sh
-+ ;;
-+ openbsd[[2-9]].*|mirbsd*) #(vi
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- CF_SHARED_SONAME
-@@ -5156,12 +5551,12 @@
- MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
-- freebsd*) #(vi
-+ dragonfly*|freebsd*) #(vi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
-- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CF_SHARED_SONAME
- MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
-@@ -5171,7 +5566,7 @@
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
-@@ -5276,10 +5671,40 @@
- ;;
- esac
-
-- if test -n "$cf_ld_rpath_opt" ; then
-- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
-+ if test -n "$cf_try_cflags"
-+ then
-+cat > conftest.$ac_ext <<EOF
-+#line __oline__ "${as_me:-configure}"
-+#include <stdio.h>
-+int main(int argc, char *argv[[]])
-+{
-+ printf("hello\n");
-+ return (argv[[argc-1]] == 0) ;
-+}
-+EOF
-+ cf_save_CFLAGS="$CFLAGS"
-+ for cf_opt in $cf_try_cflags
-+ do
-+ CFLAGS="$cf_save_CFLAGS -$cf_opt"
-+ AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
-+ if AC_TRY_EVAL(ac_compile); then
-+ AC_MSG_RESULT(yes)
-+ cf_save_CFLAGS="$CFLAGS"
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ done
-+ CFLAGS="$cf_save_CFLAGS"
- fi
-
-+
-+ # RPATH_LIST is a colon-separated list of directories
-+ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
-+ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
-+
-+ CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
-+ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
-+
- AC_SUBST(CC_SHARED_OPTS)
- AC_SUBST(LD_RPATH_OPT)
- AC_SUBST(LD_SHARED_OPTS)
-@@ -5290,6 +5715,7 @@
- AC_SUBST(LOCAL_LDFLAGS)
- AC_SUBST(LOCAL_LDFLAGS2)
- AC_SUBST(INSTALL_LIB)
-+ AC_SUBST(RPATH_LIST)
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
-@@ -5369,7 +5795,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
-+dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
- dnl ---------------
- dnl signal handler, but there are some gcc depedencies in that recommendation.
- dnl Try anyway.
-@@ -5401,10 +5827,10 @@
- done
- ])
- AC_MSG_RESULT($cf_cv_sig_atomic_t)
--test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
-+test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
-+dnl CF_SIZECHANGE version: 9 updated: 2012/10/06 11:17:15
- dnl -------------
- dnl Check for definitions & structures needed for window size-changing
- dnl FIXME: check that this works with "snake" (HP-UX 10.x)
-@@ -5465,7 +5891,7 @@
- done
- ])
- if test "$cf_cv_sizechange" != no ; then
-- AC_DEFINE(HAVE_SIZECHANGE)
-+ AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechar declarations are provided])
- case $cf_cv_sizechange in #(vi
- NEED*)
- AC_DEFINE_UNQUOTED($cf_cv_sizechange )
-@@ -5474,7 +5900,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SRC_MODULES version: 21 updated: 2010/09/04 17:37:40
-+dnl CF_SRC_MODULES version: 26 updated: 2012/01/07 15:08:24
- dnl --------------
- dnl For each parameter, test if the source-directory exists, and if it contains
- dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
-@@ -5497,6 +5923,7 @@
- TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
- fi
-
-+PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}"
- cf_cv_src_modules=
- for cf_dir in $1
- do
-@@ -5535,6 +5962,7 @@
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
- fi
-+ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}"
- fi
- fi
- done
-@@ -5562,10 +5990,18 @@
- SRC_SUBDIRS="$SRC_SUBDIRS test"
- fi
- test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
--test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
-+if test "$cf_with_cxx_binding" != no; then
-+ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}"
-+ SRC_SUBDIRS="$SRC_SUBDIRS c++"
-+fi
-+
-+test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
-+test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
-+
-+AC_SUBST(PC_MODULES_TO_MAKE)
-
- ADA_SUBDIRS=
--if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
-+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then
- SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
- ADA_SUBDIRS="gen src"
- if test "x$cf_with_tests" != "xno" ; then
-@@ -5624,13 +6060,13 @@
- AC_DEFUN([CF_STRIP_G_OPT],
- [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
-+dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
- dnl -------------------
- dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
- dnl do this if we've found the sigaction function.
--dnl
--dnl If needed, define SVR4_ACTION.
- AC_DEFUN([CF_STRUCT_SIGACTION],[
-+AC_REQUIRE([CF_XOPEN_SOURCE])
-+
- if test "$ac_cv_func_sigaction" = yes; then
- AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
- AC_TRY_COMPILE([
-@@ -5645,22 +6081,24 @@
- #include <signal.h>],
- [struct sigaction act],
- [sigact_bad=yes
-- AC_DEFINE(SVR4_ACTION)],
-+ AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
- [sigact_bad=unknown])])
- AC_MSG_RESULT($sigact_bad)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
-+dnl CF_STRUCT_TERMIOS version: 7 updated: 2012/10/06 17:56:13
- dnl -----------------
- dnl Some machines require _POSIX_SOURCE to completely define struct termios.
--dnl If so, define SVR4_TERMIO
- AC_DEFUN([CF_STRUCT_TERMIOS],[
-+AC_REQUIRE([CF_XOPEN_SOURCE])
-+
- AC_CHECK_HEADERS( \
- termio.h \
- termios.h \
- unistd.h \
- )
-+
- if test "$ISC" = yes ; then
- AC_CHECK_HEADERS( sys/termio.h )
- fi
-@@ -5680,7 +6118,7 @@
- #include <termios.h>],
- [struct termios foo; int x = foo.c_iflag],
- termios_bad=unknown,
-- termios_bad=yes AC_DEFINE(SVR4_TERMIO))
-+ termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
- ])
- AC_MSG_RESULT($termios_bad)
- fi
-@@ -5704,23 +6142,6 @@
- CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
--dnl --------
--dnl Shorthand macro for substituting things that the user may override
--dnl with an environment variable.
--dnl
--dnl $1 = long/descriptive name
--dnl $2 = environment variable
--dnl $3 = default value
--AC_DEFUN([CF_SUBST],
--[AC_CACHE_VAL(cf_cv_subst_$2,[
--AC_MSG_CHECKING(for $1 (symbol $2))
--CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
--cf_cv_subst_$2=[$]$2
--AC_MSG_RESULT([$]$2)
--])
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
- dnl -----------
- dnl Shorthand macro for substituting things that the user may override
-@@ -5766,7 +6187,7 @@
- AC_SUBST(cf_cv_type_of_bool)dnl
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
-+dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07
- dnl ------------------
- dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
- dnl older SCO configurations.
-@@ -5786,7 +6207,7 @@
- [cf_cv_sys_time_select=no])
- ])
- AC_MSG_RESULT($cf_cv_sys_time_select)
--test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-+test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
-@@ -5798,7 +6219,46 @@
- AC_SUBST(top_builddir)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
-+dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
-+dnl -------------------
-+dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
-+dnl can define it successfully.
-+AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
-+AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+],[
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_cv_xopen_source=no],
-+ [cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+],[
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_cv_xopen_source=no],
-+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
-+ CPPFLAGS="$cf_save"
-+ ])
-+])
-+
-+if test "$cf_cv_xopen_source" != no ; then
-+ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
-+ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+ CF_ADD_CFLAGS($cf_temp_xopen_source)
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
-+dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13
- dnl ----------------
- dnl Determine the type we should use for chtype (and attr_t, which is treated
- dnl as the same thing). We want around 32 bits, so on most machines want a
-@@ -5847,10 +6307,10 @@
- AC_MSG_RESULT($cf_cv_typeof_chtype)
-
- AC_SUBST(cf_cv_typeof_chtype)
--AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
-+AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
-+dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
- dnl -----------------
- dnl
- AC_DEFUN([CF_TYPE_SIGACTION],
-@@ -5863,7 +6323,7 @@
- [cf_cv_type_sigaction=yes],
- [cf_cv_type_sigaction=no])])
- AC_MSG_RESULT($cf_cv_type_sigaction)
--test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
-+test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
-@@ -5890,7 +6350,7 @@
- $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
-+dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
- dnl -----------
- dnl Check for multibyte support, and if not found, utf8 compatibility library
- AC_DEFUN([CF_UTF8_LIB],
-@@ -5909,14 +6369,14 @@
- # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
- # ncurses/ncursesw:
- if test "$cf_cv_utf8_lib" = "add-on" ; then
-- AC_DEFINE(HAVE_LIBUTF8_H)
-+ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
- CF_ADD_INCDIR($cf_cv_header_path_utf8)
- CF_ADD_LIBDIR($cf_cv_library_path_utf8)
- CF_ADD_LIBS($cf_cv_library_file_utf8)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
-+dnl CF_VA_COPY version: 3 updated: 2012/10/06 11:17:15
- dnl ----------
- dnl check for va_copy, part of stdarg.h
- dnl Also, workaround for glibc's __va_copy, by checking for both.
-@@ -5931,7 +6391,7 @@
- cf_cv_have_va_copy=yes,
- cf_cv_have_va_copy=no)])
-
--test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
-+test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
-
- AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
- AC_TRY_LINK([
-@@ -5943,7 +6403,7 @@
- cf_cv_have___va_copy=yes,
- cf_cv_have___va_copy=no)])
-
--test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
-+test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
- ])
- dnl ---------------------------------------------------------------------------
- dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
-@@ -5954,7 +6414,7 @@
- CF_MSG_LOG([$1])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
-+dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
- dnl -------------
- dnl Check if type wide-character type $1 is declared, and if so, which header
- dnl file is needed. The second parameter is used to set a shell variable when
-@@ -5986,7 +6446,7 @@
- [cf_cv_$1=unknown])])])
-
- if test "$cf_cv_$1" = yes ; then
-- AC_DEFINE(NEED_WCHAR_H)
-+ AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
- NEED_WCHAR_H=1
- fi
-
-@@ -6149,7 +6609,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
-+dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13
- dnl -----------
- dnl
- dnl The option parameter (if neither yes/no) is assumed to be the name of
-@@ -6165,10 +6625,10 @@
-
- if test "$with_gpm" != no ; then
- AC_CHECK_HEADER(gpm.h,[
-- AC_DEFINE(HAVE_GPM_H)
-+ AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
- if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
- CF_VERBOSE(assuming we really have GPM library)
-- AC_DEFINE(HAVE_LIBGPM)
-+ AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
- else
- AC_CHECK_LIB(gpm,Gpm_Open,[:],[
- AC_MSG_ERROR(Cannot link with GPM library)
-@@ -6182,7 +6642,7 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_LIBTOOL version: 26 updated: 2010/10/23 15:55:24
-+dnl CF_WITH_LIBTOOL version: 29 updated: 2013/04/06 18:03:09
- dnl ---------------
- dnl Provide a configure option to incorporate libtool. Define several useful
- dnl symbols for the makefile rules.
-@@ -6252,13 +6712,20 @@
- CF_PATH_SYNTAX(with_libtool)
- LIBTOOL=$with_libtool
- else
-- AC_PATH_PROG(LIBTOOL,libtool)
-+ AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
-+ CF_LIBTOOL_VERSION
-+ if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
-+ then
-+ CF_FORGET_TOOL(LIBTOOL)
-+ AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
-+ CF_LIBTOOL_VERSION
-+ fi
- fi
- if test -z "$LIBTOOL" ; then
- AC_MSG_ERROR(Cannot find libtool)
- fi
- ])dnl
-- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
-+ LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
- LIB_OBJECT='${OBJECTS:.o=.lo}'
- LIB_SUFFIX=.la
- LIB_CLEAN='${LIBTOOL} --mode=clean'
-@@ -6268,22 +6735,12 @@
- LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
- LIB_PREP=:
-
-- # Show the version of libtool
-- AC_MSG_CHECKING(version of libtool)
--
-- # Save the version in a cache variable - this is not entirely a good
-- # thing, but the version string from libtool is very ugly, and for
-- # bug reports it might be useful to have the original string. "("
-- cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
-- AC_MSG_RESULT($cf_cv_libtool_version)
-- if test -z "$cf_cv_libtool_version" ; then
-- AC_MSG_ERROR(This is not GNU libtool)
-- fi
-+ CF_CHECK_LIBTOOL_VERSION
-
- # special hack to add -no-undefined (which libtool should do for itself)
- LT_UNDEF=
- case "$cf_cv_system_name" in #(vi
-- cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
-+ cygwin*|mingw32*|uwin*|aix[[4-7]]) #(vi
- LT_UNDEF=-no-undefined
- ;;
- esac
-@@ -6323,7 +6780,33 @@
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18
-+dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
-+dnl ------------------
-+dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
-+dnl "lib" prefix, e.g., because it used the dll naming convention.
-+dnl
-+dnl $1 = variable to set
-+AC_DEFUN([CF_WITH_LIB_PREFIX],
-+[
-+AC_MSG_CHECKING(if you want to have a library-prefix)
-+AC_ARG_WITH(lib-prefix,
-+ [ --with-lib-prefix override library-prefix],
-+ [with_lib_prefix=$withval],
-+ [with_lib_prefix=auto])
-+AC_MSG_RESULT($with_lib_prefix)
-+
-+if test $with_lib_prefix = auto
-+then
-+ CF_LIB_PREFIX($1)
-+elif test $with_lib_prefix = no
-+then
-+ LIB_PREFIX=
-+else
-+ LIB_PREFIX=$with_lib_prefix
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
- dnl ------------
- dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
- dnl defaulting to yes/no.
-@@ -6340,11 +6823,11 @@
- if ifelse([$5],,true,[test -n "$5"]) ; then
- CF_PATH_SYNTAX(withval)
- fi
--$3="$withval"
-+eval $3="$withval"
- AC_SUBST($3)dnl
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_PATHLIST version: 7 updated: 2010/10/23 16:10:30
-+dnl CF_WITH_PATHLIST version: 9 updated: 2012/10/18 05:05:24
- dnl ----------------
- dnl Process an option specifying a list of colon-separated paths.
- dnl
-@@ -6365,7 +6848,7 @@
- for cf_src_path in $withval
- do
- CF_PATH_SYNTAX(cf_src_path)
-- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
-+ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
- cf_dst_path="${cf_dst_path}${cf_src_path}"
- done
- IFS="$ac_save_ifs"
-@@ -6381,12 +6864,65 @@
- cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
- ])
-
--eval '$3="$cf_dst_path"'
-+# This may use the prefix/exec_prefix symbols which will only yield "NONE"
-+# so we have to check/work around. We do prefer the result of "eval"...
-+eval cf_dst_eval="$cf_dst_path"
-+case "x$cf_dst_eval" in #(vi
-+xNONE*) #(vi
-+ $3=$cf_dst_path
-+ ;;
-+*)
-+ $3="$cf_dst_eval"
-+ ;;
-+esac
- AC_SUBST($3)dnl
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
-+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47
-+dnl -------------------------
-+dnl Allow the choice of the pkg-config library directory to be overridden.
-+AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
-+if test "$PKG_CONFIG" != none ; then
-+ AC_MSG_CHECKING(for $PKG_CONFIG library directory)
-+ AC_ARG_WITH(pkg-config-libdir,
-+ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
-+ [PKG_CONFIG_LIBDIR=$withval],
-+ [PKG_CONFIG_LIBDIR=yes])
-+
-+ case x$PKG_CONFIG_LIBDIR in #(vi
-+ x/*) #(vi
-+ ;;
-+ xyes) #(vi
-+ # look for the library directory using the same prefix as the executable
-+ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
-+ case x`(arch) 2>/dev/null` in #(vi
-+ *64) #(vi
-+ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
-+ do
-+ if test -d $cf_config/pkgconfig
-+ then
-+ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
-+ break
-+ fi
-+ done
-+ ;;
-+ *)
-+ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ ;;
-+ esac
-+
-+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
-+fi
-+
-+AC_SUBST(PKG_CONFIG_LIBDIR)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51
- dnl ---------------
- dnl Check for POSIX thread library.
- AC_DEFUN([CF_WITH_PTHREAD],
-@@ -6400,25 +6936,30 @@
-
- if test "$with_pthread" != no ; then
- AC_CHECK_HEADER(pthread.h,[
-- AC_DEFINE(HAVE_PTHREADS_H)
-+ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
-
-- AC_MSG_CHECKING(if we can link with the pthread library)
-- cf_save_LIBS="$LIBS"
-- CF_ADD_LIB(pthread)
-- AC_TRY_LINK([
-+ for cf_lib_pthread in pthread c_r
-+ do
-+ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
-+ cf_save_LIBS="$LIBS"
-+ CF_ADD_LIB($cf_lib_pthread)
-+ AC_TRY_LINK([
- #include <pthread.h>
- ],[
-- int rc = pthread_create(0,0,0,0);
-+ int rc = pthread_create(0,0,0,0);
-+ int r2 = pthread_mutexattr_settype(0, 0);
- ],[with_pthread=yes],[with_pthread=no])
-- LIBS="$cf_save_LIBS"
-- AC_MSG_RESULT($with_pthread)
-+ LIBS="$cf_save_LIBS"
-+ AC_MSG_RESULT($with_pthread)
-+ test "$with_pthread" = yes && break
-+ done
-
-- if test "$with_pthread" = yes ; then
-- CF_ADD_LIB(pthread)
-- AC_DEFINE(HAVE_LIBPTHREADS)
-- else
-- AC_MSG_ERROR(Cannot link with pthread library)
-- fi
-+ if test "$with_pthread" = yes ; then
-+ CF_ADD_LIB($cf_lib_pthread)
-+ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
-+ else
-+ AC_MSG_ERROR(Cannot link with pthread library)
-+ fi
- ])
- fi
- ])
-@@ -6448,7 +6989,7 @@
- ])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
-+dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
- dnl ----------------
- dnl If we can compile with sysmouse, make it available unless it is not wanted.
- AC_DEFUN([CF_WITH_SYSMOUSE],[
-@@ -6474,10 +7015,30 @@
- ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
- fi
- AC_MSG_RESULT($cf_with_sysmouse)
--test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
-+test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
-+dnl ---------------
-+dnl For testing, override the derived host system-type which is used to decide
-+dnl things such as the linker commands used to build shared libraries. This is
-+dnl normally chosen automatically based on the type of system which you are
-+dnl building on. We use it for testing the configure script.
-+dnl
-+dnl This is different from the --host option: it is used only for testing parts
-+dnl of the configure script which would not be reachable with --host since that
-+dnl relies on the build environment being real, rather than mocked up.
-+AC_DEFUN([CF_WITH_SYSTYPE],[
-+CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
-+AC_ARG_WITH(system-type,
-+ [ --with-system-type=XXX test: override derived host system-type],
-+[AC_MSG_WARN(overriding system type to $withval)
-+ cf_cv_system_name=$withval
-+ host_os=$withval
-+])
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
- dnl ----------------
- AC_DEFUN([CF_WITH_VALGRIND],[
-@@ -6486,7 +7047,7 @@
- [USE_VALGRIND])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
-+dnl CF_XOPEN_SOURCE version: 43 updated: 2013/02/10 10:41:05
- dnl ---------------
- dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
- dnl or adapt to the vendor's definitions to get equivalent functionality,
-@@ -6496,13 +7057,14 @@
- dnl $1 is the nominal value for _XOPEN_SOURCE
- dnl $2 is the nominal value for _POSIX_C_SOURCE
- AC_DEFUN([CF_XOPEN_SOURCE],[
-+AC_REQUIRE([AC_CANONICAL_HOST])
-
- cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
- cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
- cf_xopen_source=
-
- case $host_os in #(vi
--aix[[456]]*) #(vi
-+aix[[4-7]]*) #(vi
- cf_xopen_source="-D_ALL_SOURCE"
- ;;
- cygwin) #(vi
-@@ -6513,6 +7075,7 @@
- ;;
- darwin*) #(vi
- cf_xopen_source="-D_DARWIN_C_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- freebsd*|dragonfly*) #(vi
- # 5.x headers associate
-@@ -6530,15 +7093,23 @@
- ;;
- irix[[56]].*) #(vi
- cf_xopen_source="-D_SGI_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- linux*|gnu*|mint*|k*bsd*-gnu) #(vi
- CF_GNU_SOURCE
- ;;
- mirbsd*) #(vi
-- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
-+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
-+ cf_XOPEN_SOURCE=
-+ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
- netbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ ;;
-+openbsd[[4-9]]*) #(vi
-+ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
-+ cf_xopen_source="-D_BSD_SOURCE"
-+ cf_XOPEN_SOURCE=600
- ;;
- openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-@@ -6552,36 +7123,11 @@
- sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
--solaris2.1[[0-9]]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--solaris2.[[1-9]]) #(vi
-+solaris2.*) #(vi
- cf_xopen_source="-D__EXTENSIONS__"
- ;;
- *)
-- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
-- AC_TRY_COMPILE([#include <sys/types.h>],[
--#ifndef _XOPEN_SOURCE
--make an error
--#endif],
-- [cf_cv_xopen_source=no],
-- [cf_save="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- AC_TRY_COMPILE([#include <sys/types.h>],[
--#ifdef _XOPEN_SOURCE
--make an error
--#endif],
-- [cf_cv_xopen_source=no],
-- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
-- CPPFLAGS="$cf_save"
-- ])
--])
-- if test "$cf_cv_xopen_source" != no ; then
-- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
-- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-- CF_ADD_CFLAGS($cf_temp_xopen_source)
-- fi
-+ CF_TRY_XOPEN_SOURCE
- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
- esac
-@@ -6589,4 +7135,33 @@
- if test -n "$cf_xopen_source" ; then
- CF_ADD_CFLAGS($cf_xopen_source)
- fi
-+
-+dnl In anything but the default case, we may have system-specific setting
-+dnl which is still not guaranteed to provide all of the entrypoints that
-+dnl _XOPEN_SOURCE would yield.
-+if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
-+ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
-+ AC_TRY_COMPILE([#include <stdlib.h>],[
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_XOPEN_SOURCE_set=yes],
-+ [cf_XOPEN_SOURCE_set=no])
-+ AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
-+ if test $cf_XOPEN_SOURCE_set = yes
-+ then
-+ AC_TRY_COMPILE([#include <stdlib.h>],[
-+#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_XOPEN_SOURCE_set_ok=yes],
-+ [cf_XOPEN_SOURCE_set_ok=no])
-+ if test $cf_XOPEN_SOURCE_set_ok = no
-+ then
-+ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
-+ fi
-+ else
-+ CF_TRY_XOPEN_SOURCE
-+ fi
-+fi
- ])
-Index: announce.html.in
-Prereq: 1.85
---- ncurses-5.9/announce.html.in 2011-04-04 00:05:34.000000000 +0000
-+++ ncurses-5.9-20130504/announce.html.in 2011-09-10 18:11:12.000000000 +0000
-@@ -1,6 +1,6 @@
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <!--
-- $Id: announce.html.in,v 1.85 2011/04/04 00:05:34 tom Exp $
-+ $Id: announce.html.in,v 1.86 2011/09/10 18:11:12 tom Exp $
- ****************************************************************************
- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
-@@ -77,30 +77,38 @@
- compatible from ncurses 5.0 through 5.8; very few applications
- will require recompilation, depending on the platform. These are
- the highlights from the change-log since ncurses 5.8 release.
-- <p>
-- This is a bug-fix release, correcting a small number of urgent problems
-- in the ncurses library from the 5.8 release.
-- <p>
-- It also improves the Ada95 binding:
-+
-+ <p>This is a bug-fix release, correcting a small number of urgent
-+ problems in the ncurses library from the 5.8 release.</p>
-+
-+ <p>It also improves the Ada95 binding:</p>
-+
- <ul>
-- <li>fixes a longstanding portability problem with its use of the
-- <a href="http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
-- function. Because that function uses variable-length argument lists,
-- its interface with gnat does not work with certain platforms.
-- <li>improves configurability and portability, particularly when built
-- separately from the main ncurses tree. The 5.8 release introduced
-- scripts which can be used to construct separate tarballs for the
-- Ada95 and ncurses examples.
-- <p>Those were a proof of concept. For the 5.9 release, those
-- scripts are augmented with rpm- and dpkg-scripts used in test builds
-- against a variety of gnat- and system ncurses versions as old as
-- gnat 3.15 and ncurses 5.4 (see snapshots and systems tested
-- <a href="http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.
-- <li>additional improvements were made for portability of the
-- ncurses examples, adding rpm- and dpkg-scripts for test-builds.
-- See
-- <a href="http://invisible-island.net/ncurses/ncurses-examples.html">this page</a>
-- for snapshots and other information.
-+ <li>fixes a longstanding portability problem with its use of
-+ the <a href=
-+ "http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
-+ function. Because that function uses variable-length argument
-+ lists, its interface with gnat does not work with certain
-+ platforms.</li>
-+
-+ <li>improves configurability and portability, particularly when
-+ built separately from the main ncurses tree. The 5.8 release
-+ introduced scripts which can be used to construct separate
-+ tarballs for the Ada95 and ncurses examples.
-+
-+ <p>Those were a proof of concept. For the 5.9 release, those
-+ scripts are augmented with rpm- and dpkg-scripts used in test
-+ builds against a variety of gnat- and system ncurses versions
-+ as old as gnat 3.15 and ncurses 5.4 (see snapshots and
-+ systems tested <a href=
-+ "http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.</p>
-+ </li>
-+
-+ <li>additional improvements were made for portability of the
-+ ncurses examples, adding rpm- and dpkg-scripts for test-builds.
-+ See <a href=
-+ "http://invisible-island.net/ncurses/ncurses-examples.html">this
-+ page</a> for snapshots and other information.</li>
- </ul>
-
- <h1>Features of Ncurses</h1>The ncurses package is fully
-@@ -364,6 +372,13 @@
- are made available at <a href=
- "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
-
-+ <p>There is an archive of the mailing list here:</p>
-+
-+ <p><a href=
-+ "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
-+ (also <a href=
-+ "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
-+
- <h2>Future Plans</h2>
-
- <ul>
-Index: c++/Makefile.in
-Prereq: 1.93
---- ncurses-5.9/c++/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/c++/Makefile.in 2013-04-13 18:24:43.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.93 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.104 2013/04/13 18:24:43 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -65,6 +65,9 @@
-
- AR = @AR@
- ARFLAGS = @ARFLAGS@
-+AWK = @AWK@
-+LD = @LD@
-+LN_S = @LN_S@
-
- CXX_AR = @CXX_AR@
- CXX_ARFLAGS = @CXX_ARFLAGS@
-@@ -109,35 +112,41 @@
- LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.a
- LIBNAME = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@
-
--MY_LIBRARY = ../lib/$(LIBNAME)
-+LIBRARIES = @Libs_To_Make@
-
- LINK_FLAGS = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@LIB_SUFFIX@
-+RPATH_LIST = @RPATH_LIST@
-+MK_SHARED_LIB = @MK_SHARED_LIB@
-
--LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(MY_LIBRARY)
-+LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(LIBRARIES)
- LINK_NORMAL = $(LINK_FLAGS)
- LINK_DEBUG = $(LINK_FLAGS)
- LINK_PROFILE = $(LINK_FLAGS)
- LINK_SHARED = $(LINK_FLAGS)
-
-+# flags for test-programs
- TEST_LIBS = @TEST_LIBS@
- TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
--
--LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
-+TEST_LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
- @LD_MODEL@ $(TEST_LIBS) @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
-
--LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
--LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
--LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG)
--LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
--LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-+LDFLAGS_LIBTOOL = $(TEST_LDFLAGS) $(CFLAGS_LIBTOOL)
-+LDFLAGS_NORMAL = $(TEST_LDFLAGS) $(CFLAGS_NORMAL)
-+LDFLAGS_DEBUG = $(TEST_LDFLAGS) $(CFLAGS_DEBUG)
-+LDFLAGS_PROFILE = $(TEST_LDFLAGS) $(CFLAGS_PROFILE)
-+LDFLAGS_SHARED = $(TEST_LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-
- LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@)
-
-+# flags for library built by this makefile
-+LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
-+ @LD_MODEL@ $(TEST_LIBS) @LIBS@ $(CXXLIBS)
-+
- AUTO_SRC = \
- etip.h
-
- all \
--libs :: $(AUTO_SRC) $(MY_LIBRARY)
-+libs :: $(AUTO_SRC) $(LIBRARIES)
-
- @MAKE_TESTS@all :: demo$x
-
-@@ -148,61 +157,16 @@
- tags:
- $(CTAGS) *.[h] *.cc
-
--# Build a conventional library for installing, since a shared library would
--# pull in all of the ncurses libraries (panel, menu, form, ncurses) as direct
--# dependencies.
--LIB_OBJS = \
-- $(MODEL)/cursesf$o \
-- $(MODEL)/cursesm$o \
-- $(MODEL)/cursesw$o \
-- $(MODEL)/cursespad$o \
-- $(MODEL)/cursesp$o \
-- $(MODEL)/cursslk$o \
-- $(MODEL)/cursesapp$o \
-- $(MODEL)/cursesmain$o
--
--../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
-- $(CXX_AR) $(CXX_ARFLAGS) $@ $?
-- $(RANLIB) $@
--
--../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
-- cd ../lib && $(LIBTOOL_LINK) $(CXX) $(CXXFLAGS) \
-- -o $(LIBNAME) $(LIB_OBJS:$o=.lo) \
-- -rpath $(INSTALL_PREFIX)$(libdir) \
-- $(LIBTOOL_VERSION) $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)
--
--OBJS_DEMO = $(MODEL)/demo$o
--
--$(MODEL)/demo$o : $(srcdir)/demo.cc \
-- $(cursesf_h) $(cursesm_h) $(cursesapp_h)
--
--demo$x: $(OBJS_DEMO) \
-- $(MY_LIBRARY) \
-- @TEST_DEPS@
-- @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT)
--
--etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
-- cp $(srcdir)/etip.h.in $@
-- sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
--
- $(DESTDIR)$(libdir) :
- mkdir -p $@
-
--install \
--install.libs:: $(MY_LIBRARY) $(DESTDIR)$(libdir)
-- $(LIBTOOL_INSTALL) $(INSTALL_LIB) $(MY_LIBRARY) $(DESTDIR)$(libdir)/$(LIBNAME)
--
--uninstall \
--uninstall.libs::
-- -$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
--
- mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace
-
- clean :: mostlyclean
- -sh -c "if test -n '$x' ; then $(MAKE) clean x=''; fi"
- -rm -rf $(MODEL)/SunWS_cache
-- -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(MY_LIBRARY) $(LIB_OBJS) $(OBJS_DEMO)
-+ -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(LIBRARIES) $(OBJS_DEMO)
- -rm -rf .libs
-
- distclean :: clean
-@@ -212,8 +176,16 @@
-
- ###############################################################################
-
-+internal_h = $(srcdir)/internal.h \
-+ $(INCDIR)/ncurses_cfg.h \
-+ $(INCDIR)/nc_mingw.h \
-+ $(INCDIR)/nc_string.h
-+
-+etip_h = etip.h \
-+ $(INCDIR)/ncurses_dll.h
-+
- cursesw_h = $(srcdir)/cursesw.h \
-- etip.h \
-+ $(etip_h) \
- $(INCDIR)/curses.h
-
- cursesp_h = $(srcdir)/cursesp.h \
-@@ -244,5 +216,26 @@
- cd ../panel && $(MAKE) $@
-
- ###############################################################################
-+
-+OBJS_DEMO = $(MODEL)/demo$o
-+
-+$(MODEL)/demo$o : $(srcdir)/demo.cc \
-+ $(internal_h) \
-+ $(cursesf_h) \
-+ $(cursesm_h) \
-+ $(cursesapp_h)
-+ @echo 'compiling demo (obj_s)'
-+ @$(LIBTOOL_COMPILE) $(CXX) $(CFLAGS_DEFAULT) -c $(srcdir)/demo.cc -o $@
-+
-+demo$x: $(OBJS_DEMO) \
-+ $(LIBRARIES) \
-+ @TEST_DEPS@
-+ @ECHO_LD@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT)
-+
-+etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
-+ cp $(srcdir)/etip.h.in $@
-+ sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
-+
-+###############################################################################
- # The remainder of this file is automatically generated during configuration
- ###############################################################################
-Index: c++/cursesapp.h
-Prereq: 1.11
---- ncurses-5.9/c++/cursesapp.h 2005-05-28 21:57:44.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesapp.h 2011-09-17 22:12:10.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,7 +31,7 @@
- * Author: Juergen Pfeifer, 1997 *
- ****************************************************************************/
-
--// $Id: cursesapp.h,v 1.11 2005/05/28 21:57:44 tom Exp $
-+// $Id: cursesapp.h,v 1.12 2011/09/17 22:12:10 tom Exp $
-
- #ifndef NCURSES_CURSESAPP_H_incl
- #define NCURSES_CURSESAPP_H_incl
-@@ -80,6 +80,7 @@
- // This method is called to initialize the SLKs. Default is nothing.
- // You may rewrite this in your derived class
- virtual void init_labels(Soft_Label_Key_Set& S) const {
-+ (void) S;
- }
-
- // Your derived class must implement this method. The return value must
-@@ -118,6 +119,8 @@
- // Process the commandline arguments. The default implementation simply
- // ignores them. Your derived class may rewrite this.
- virtual void handleArgs(int argc, char* argv[]) {
-+ (void) argc;
-+ (void) argv;
- }
-
- // Does this application use colors?
-@@ -138,37 +141,37 @@
-
- // Attributes to use for menu and forms foregrounds
- virtual chtype foregrounds() const {
-- return b_Colors ? COLOR_PAIR(1) : A_BOLD;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(1)) : A_BOLD;
- }
-
- // Attributes to use for menu and forms backgrounds
- virtual chtype backgrounds() const {
-- return b_Colors ? COLOR_PAIR(2) : A_NORMAL;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(2)) : A_NORMAL;
- }
-
- // Attributes to use for inactive (menu) elements
- virtual chtype inactives() const {
-- return b_Colors ? (COLOR_PAIR(3)|A_DIM) : A_DIM;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(3)|A_DIM) : A_DIM;
- }
-
- // Attributes to use for (form) labels and SLKs
- virtual chtype labels() const {
-- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(4)) : A_NORMAL;
- }
-
- // Attributes to use for form backgrounds
- virtual chtype dialog_backgrounds() const {
-- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(4)) : A_NORMAL;
- }
-
- // Attributes to use as default for (form) window backgrounds
- virtual chtype window_backgrounds() const {
-- return b_Colors ? COLOR_PAIR(5) : A_NORMAL;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(5)) : A_NORMAL;
- }
-
- // Attributes to use for the title window
- virtual chtype screen_titles() const {
-- return b_Colors ? COLOR_PAIR(6) : A_BOLD;
-+ return b_Colors ? static_cast<chtype>(COLOR_PAIR(6)) : A_BOLD;
- }
-
- };
-Index: c++/cursesf.cc
-Prereq: 1.21
---- ncurses-5.9/c++/cursesf.cc 2005-08-13 18:09:06.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesf.cc 2011-09-17 22:12:10.000000000 +0000
-@@ -1,6 +1,6 @@
- // * this is for making emacs happy: -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
- #include "cursesf.h"
- #include "cursesapp.h"
-
--MODULE_ID("$Id: cursesf.cc,v 1.21 2005/08/13 18:09:06 tom Exp $")
-+MODULE_ID("$Id: cursesf.cc,v 1.22 2011/09/17 22:12:10 tom Exp $")
-
- NCursesFormField::~NCursesFormField ()
- {
-@@ -234,11 +234,13 @@
- void
- NCursesForm::On_Field_Init(NCursesFormField& field)
- {
-+ (void) field;
- }
-
- void
- NCursesForm::On_Field_Termination(NCursesFormField& field)
- {
-+ (void) field;
- }
-
- // call the form driver and do basic error checking.
-@@ -260,16 +262,19 @@
-
- void NCursesForm::On_Request_Denied(int c) const
- {
-+ (void) c;
- ::beep();
- }
-
- void NCursesForm::On_Invalid_Field(int c) const
- {
-+ (void) c;
- ::beep();
- }
-
- void NCursesForm::On_Unknown_Command(int c) const
- {
-+ (void) c;
- ::beep();
- }
-
-@@ -373,6 +378,7 @@
- //
- bool _nc_xx_fld_fcheck(FIELD *f, const void *u)
- {
-+ (void) f;
- NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
- assert(F != 0);
- UserDefinedFieldType* udf = reinterpret_cast<UserDefinedFieldType*>(F->fieldtype());
-@@ -405,6 +411,7 @@
-
- bool _nc_xx_next_choice(FIELD *f, const void *u)
- {
-+ (void) f;
- NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
- assert(F != 0);
- UserDefinedFieldType_With_Choice* udf =
-@@ -415,6 +422,7 @@
-
- bool _nc_xx_prev_choice(FIELD *f, const void *u)
- {
-+ (void) f;
- NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
- assert(F != 0);
- UserDefinedFieldType_With_Choice* udf =
-Index: c++/cursesf.h
-Prereq: 1.28
---- ncurses-5.9/c++/cursesf.h 2005-08-13 18:08:24.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesf.h 2012-12-29 21:49:58.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,7 +31,7 @@
- * Author: Juergen Pfeifer, 1997 *
- ****************************************************************************/
-
--// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
-+// $Id: cursesf.h,v 1.31 2012/12/29 21:49:58 tom Exp $
-
- #ifndef NCURSES_CURSESF_H_incl
- #define NCURSES_CURSESF_H_incl 1
-@@ -61,7 +61,7 @@
- protected:
- FIELDTYPE* fieldtype;
-
-- inline void OnError(int err) const THROWS(NCursesFormException) {
-+ inline void OnError(int err) const THROW2(NCursesException const, NCursesFormException) {
- if (err!=E_OK)
- THROW(new NCursesFormException (err));
- }
-@@ -109,7 +109,7 @@
- NCursesFieldType* ftype; // Associated field type
-
- // Error handler
-- inline void OnError (int err) const THROWS(NCursesFormException) {
-+ inline void OnError (int err) const THROW2(NCursesException const, NCursesFormException) {
- if (err != E_OK)
- THROW(new NCursesFormException (err));
- }
-@@ -391,7 +391,7 @@
- bool with_frame,
- bool autoDeleteFields);
-
-- inline void OnError (int err) const THROWS(NCursesFormException) {
-+ inline void OnError (int err) const THROW2(NCursesException const, NCursesFormException) {
- if (err != E_OK)
- THROW(new NCursesFormException (err));
- }
-@@ -677,7 +677,7 @@
- }
-
- public:
-- NCursesUserForm (NCursesFormField Fields[],
-+ NCursesUserForm (NCursesFormField* Fields[],
- const T* p_UserData = STATIC_CAST(T*)(0),
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
-@@ -686,7 +686,7 @@
- set_user (const_cast<void *>(p_UserData));
- };
-
-- NCursesUserForm (NCursesFormField Fields[],
-+ NCursesUserForm (NCursesFormField* Fields[],
- int nlines,
- int ncols,
- int begin_y = 0,
-Index: c++/cursesm.cc
-Prereq: 1.22
---- ncurses-5.9/c++/cursesm.cc 2005-04-02 20:39:05.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesm.cc 2011-09-17 22:11:32.000000000 +0000
-@@ -1,6 +1,6 @@
- // * this is for making emacs happy: -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
- #include "cursesm.h"
- #include "cursesapp.h"
-
--MODULE_ID("$Id: cursesm.cc,v 1.22 2005/04/02 20:39:05 tom Exp $")
-+MODULE_ID("$Id: cursesm.cc,v 1.23 2011/09/17 22:11:32 tom Exp $")
-
- NCursesMenuItem::~NCursesMenuItem()
- {
-@@ -375,33 +375,39 @@
- void
- NCursesMenu::On_Item_Init(NCursesMenuItem& item)
- {
-+ (void) item;
- }
-
- void
- NCursesMenu::On_Item_Termination(NCursesMenuItem& item)
- {
-+ (void) item;
- }
-
- void
- NCursesMenu::On_Request_Denied(int c) const
- {
-+ (void) c;
- ::beep();
- }
-
- void
- NCursesMenu::On_Not_Selectable(int c) const
- {
-+ (void) c;
- ::beep();
- }
-
- void
- NCursesMenu::On_No_Match(int c) const
- {
-+ (void) c;
- ::beep();
- }
-
- void
- NCursesMenu::On_Unknown_Command(int c) const
- {
-+ (void) c;
- ::beep();
- }
-Index: c++/cursesm.h
-Prereq: 1.25
---- ncurses-5.9/c++/cursesm.h 2005-08-13 18:10:36.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesm.h 2012-12-29 21:48:33.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,7 +31,7 @@
- * Author: Juergen Pfeifer, 1997 *
- ****************************************************************************/
-
--// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
-+// $Id: cursesm.h,v 1.29 2012/12/29 21:48:33 tom Exp $
-
- #ifndef NCURSES_CURSESM_H_incl
- #define NCURSES_CURSESM_H_incl 1
-@@ -53,7 +53,7 @@
- protected:
- ITEM *item;
-
-- inline void OnError (int err) const THROWS(NCursesMenuException) {
-+ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
- if (err != E_OK)
- THROW(new NCursesMenuException (err));
- }
-@@ -82,6 +82,7 @@
- NCursesMenuItem(const NCursesMenuItem& rhs)
- : item(0)
- {
-+ (void) rhs;
- }
-
- virtual ~NCursesMenuItem ();
-@@ -252,7 +253,7 @@
- bool with_frame,
- bool autoDeleteItems);
-
-- inline void OnError (int err) const THROWS(NCursesMenuException) {
-+ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
- if (err != E_OK)
- THROW(new NCursesMenuException (this, err));
- }
-@@ -635,7 +636,7 @@
- }
-
- public:
-- NCursesUserMenu (NCursesMenuItem Items[],
-+ NCursesUserMenu (NCursesMenuItem* Items[],
- const T* p_UserData = STATIC_CAST(T*)(0),
- bool with_frame=FALSE,
- bool autoDelete_Items=FALSE)
-@@ -644,7 +645,7 @@
- set_user (const_cast<void *>(p_UserData));
- };
-
-- NCursesUserMenu (NCursesMenuItem Items[],
-+ NCursesUserMenu (NCursesMenuItem* Items[],
- int nlines,
- int ncols,
- int begin_y = 0,
-Index: c++/cursesp.h
-Prereq: 1.29
---- ncurses-5.9/c++/cursesp.h 2008-08-16 17:20:23.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesp.h 2012-12-29 21:50:55.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
- #ifndef NCURSES_CURSESP_H_incl
- #define NCURSES_CURSESP_H_incl 1
-
--// $Id: cursesp.h,v 1.29 2008/08/16 17:20:23 tom Exp $
-+// $Id: cursesp.h,v 1.30 2012/12/29 21:50:55 tom Exp $
-
- #include <cursesw.h>
-
-@@ -86,7 +86,7 @@
- return result;
- }
-
-- void OnError (int err) const THROWS(NCursesPanelException)
-+ void OnError (int err) const THROW2(NCursesException const, NCursesPanelException)
- {
- if (err==ERR)
- THROW(new NCursesPanelException (this, err));
-Index: c++/cursespad.cc
-Prereq: 1.13
---- ncurses-5.9/c++/cursespad.cc 2008-08-04 18:59:22.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursespad.cc 2013-03-30 19:45:36.000000000 +0000
-@@ -1,6 +1,6 @@
- // * this is for making emacs happy: -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,10 +33,9 @@
-
- #include "internal.h"
-
--#include <etip.h>
- #include <cursesw.h>
-
--MODULE_ID("$Id: cursespad.cc,v 1.13 2008/08/04 18:59:22 tom Exp $")
-+MODULE_ID("$Id: cursespad.cc,v 1.17 2013/03/30 19:45:36 tom Exp $")
-
- NCursesPad::NCursesPad(int nlines, int ncols)
- : NCursesWindow(),
-@@ -220,6 +219,7 @@
-
- void NCursesFramedPad::OnOperation(int pad_req)
- {
-+ (void) pad_req;
- NCursesWindow* W = Win();
- NCursesWindow* W2 = getWindow();
-
-@@ -228,25 +228,45 @@
- int Height = W->height();
- int i, row, col, h_len, v_len;
-
-- h_len = (Width*Width + width() - 1)/width();
-- if (h_len==0)
-+ int my_width = width();
-+
-+ if (my_width != 0) {
-+ h_len = (Width*Width + my_width - 1) / my_width;
-+ if (h_len==0)
-+ h_len = 1;
-+ if (h_len > Width)
-+ h_len = Width;
-+ } else {
- h_len = 1;
-- if (h_len > Width)
-- h_len = Width;
-+ }
-
-- v_len = (Height*Height + height() - 1)/height();
-- if (v_len==0)
-+ int my_height = height();
-+
-+ if (my_height != 0) {
-+ v_len = (Height*Height + my_height - 1) / my_height;
-+ if (v_len==0)
-+ v_len = 1;
-+ if (v_len > Height)
-+ v_len = Height;
-+ } else {
- v_len = 1;
-- if (v_len > Height)
-- v_len = Height;
-+ }
-
-- col = (min_col * Width + width() - 1) / width();
-- if (col + h_len > Width)
-- col = Width - h_len;
--
-- row = (min_row * Height + height() - 1) / height();
-- if (row + v_len > Height)
-- row = Height - v_len;
-+ if (my_width != 0) {
-+ col = (min_col * Width + my_width - 1) / my_width;
-+ if (col + h_len > Width)
-+ col = Width - h_len;
-+ } else {
-+ col = 0;
-+ }
-+
-+ if (my_height != 0) {
-+ row = (min_row * Height + my_height - 1) / my_height;
-+ if (row + v_len > Height)
-+ row = Height - v_len;
-+ } else {
-+ row = 0;
-+ }
-
- W2->vline(1,Width+1,Height);
- W2->attron(A_REVERSE);
-Index: c++/cursesw.cc
-Prereq: 1.51
---- ncurses-5.9/c++/cursesw.cc 2009-03-28 21:31:37.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesw.cc 2012-12-08 22:06:41.000000000 +0000
-@@ -1,6 +1,6 @@
- // * this is for making emacs happy: -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 2007-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
- #include "internal.h"
- #include "cursesw.h"
-
--MODULE_ID("$Id: cursesw.cc,v 1.51 2009/03/28 21:31:37 tom Exp $")
-+MODULE_ID("$Id: cursesw.cc,v 1.53 2012/12/08 22:06:41 tom Exp $")
-
- #define COLORS_NEED_INITIALIZATION -1
- #define COLORS_NOT_INITIALIZED 0
-@@ -192,7 +192,6 @@
- constructing();
-
- w = static_cast<WINDOW *>(0);
-- set_keyboard();
- }
-
- NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x)
-@@ -285,12 +284,14 @@
- NCursesWindow::NCursesWindow(WINDOW *win, int ncols)
- : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
- {
-+ (void) ncols;
- initialize();
- w = win;
- }
-
- int _nc_xx_ripoff_init(WINDOW *w, int ncols)
- {
-+ (void) ncols;
- int res = ERR;
-
- RIPOFFINIT init = *prip++;
-Index: c++/cursesw.h
-Prereq: 1.48
---- ncurses-5.9/c++/cursesw.h 2008-01-19 21:09:10.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursesw.h 2011-09-17 22:12:10.000000000 +0000
-@@ -1,7 +1,7 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- // vile:cppmode
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,7 +31,7 @@
- #ifndef NCURSES_CURSESW_H_incl
- #define NCURSES_CURSESW_H_incl 1
-
--// $Id: cursesw.h,v 1.48 2008/01/19 21:09:10 tom Exp $
-+// $Id: cursesw.h,v 1.49 2011/09/17 22:12:10 tom Exp $
-
- #include <etip.h>
-
-@@ -1438,16 +1438,19 @@
- // The driver translates the keystroke c into an Pad_Request
-
- virtual void OnUnknownOperation(int pad_req) {
-+ (void) pad_req;
- ::beep();
- }
- // This is called if the driver returns an unknown op-code
-
- virtual void OnNavigationError(int pad_req) {
-+ (void) pad_req;
- ::beep();
- }
- // This is called if a navigation request couldn't be satisfied
-
- virtual void OnOperation(int pad_req) {
-+ (void) pad_req;
- };
- // OnOperation is called if a Pad_Operation was executed and just before
- // the refresh() operation is done.
-@@ -1542,11 +1545,15 @@
- }
-
- void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) {
-+ (void) view;
-+ (void) v_grid;
-+ (void) h_grid;
- err_handler("Operation not allowed");
- }
- // Disable this call; the viewport is already defined
-
- void setSubWindow(NCursesWindow& sub) {
-+ (void) sub;
- err_handler("Operation not allowed");
- }
- // Disable this call; the viewport subwindow is already defined
-Index: c++/cursslk.cc
-Prereq: 1.15
---- ncurses-5.9/c++/cursslk.cc 2005-08-06 22:12:36.000000000 +0000
-+++ ncurses-5.9-20130504/c++/cursslk.cc 2012-02-23 10:41:56.000000000 +0000
-@@ -1,6 +1,6 @@
- // * this is for making emacs happy: -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2005,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,14 +35,15 @@
- #include "cursslk.h"
- #include "cursesapp.h"
-
--MODULE_ID("$Id: cursslk.cc,v 1.15 2005/08/06 22:12:36 tom Exp $")
-+MODULE_ID("$Id: cursslk.cc,v 1.16 2012/02/23 10:41:56 tom Exp $")
-
- Soft_Label_Key_Set::Soft_Label_Key&
- Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)
- {
- delete[] label;
-- label = new char[1 + ::strlen(text)];
-- (::strcpy)(label,text);
-+ size_t need = 1 + ::strlen(text);
-+ label = new char[need];
-+ ::_nc_STRCPY(label,text,need);
- return *this;
- }
-
-Index: c++/demo.cc
-Prereq: 1.39
---- ncurses-5.9/c++/demo.cc 2008-12-07 02:07:34.000000000 +0000
-+++ ncurses-5.9-20130504/c++/demo.cc 2012-02-23 10:41:56.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
- * Demo code for NCursesMenu and NCursesForm written by
- * Juergen Pfeifer
- *
-- * $Id: demo.cc,v 1.39 2008/12/07 02:07:34 juergen Exp $
-+ * $Id: demo.cc,v 1.41 2012/02/23 10:41:56 tom Exp $
- */
-
- #include "internal.h"
-@@ -220,6 +220,7 @@
- int chk;
- protected:
- bool field_check(NCursesFormField& f) {
-+ (void) f;
- return TRUE;
- }
- bool char_check(int c) {
-@@ -319,7 +320,7 @@
- for(int i=1; i <= S->labels(); i++) {
- char buf[8];
- assert(i < 100);
-- ::sprintf(buf, "Frm%02d", i);
-+ ::_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "Frm%02d", i);
- (*S)[i] = buf; // Text
- (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
- }
-@@ -539,7 +540,7 @@
- for(int i=1; i <= S.labels(); i++) {
- char buf[8];
- assert(i < 100);
-- ::sprintf(buf, "Key%02d", i);
-+ ::_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "Key%02d", i);
- S[i] = buf; // Text
- S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
- }
-Index: c++/etip.h.in
-Prereq: 1.37
---- ncurses-5.9/c++/etip.h.in 2008-08-30 19:27:32.000000000 +0000
-+++ ncurses-5.9-20130504/c++/etip.h.in 2012-12-29 21:50:44.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,7 +31,7 @@
- * Author: Juergen Pfeifer, 1997 *
- ****************************************************************************/
-
--// $Id: etip.h.in,v 1.37 2008/08/30 19:27:32 tom Exp $
-+// $Id: etip.h.in,v 1.39 2012/12/29 21:50:44 tom Exp $
-
- #ifndef NCURSES_ETIP_H_incl
- #define NCURSES_ETIP_H_incl 1
-@@ -184,7 +184,7 @@
-
- NCursesPanelException (const char *msg, int err) :
- NCursesException (msg, err),
-- p (NULL)
-+ p (0)
- {};
-
- NCursesPanelException (const NCursesPanel* panel,
-@@ -196,7 +196,7 @@
-
- NCursesPanelException (int err) :
- NCursesException ("panel library error", err),
-- p (NULL)
-+ p (0)
- {};
-
- NCursesPanelException (const NCursesPanel* panel,
-@@ -235,7 +235,7 @@
-
- NCursesMenuException (const char *msg, int err) :
- NCursesException (msg, err),
-- m (NULL)
-+ m (0)
- {};
-
- NCursesMenuException (const NCursesMenu* menu,
-@@ -247,7 +247,7 @@
-
- NCursesMenuException (int err) :
- NCursesException ("menu library error", err),
-- m (NULL)
-+ m (0)
- {};
-
- NCursesMenuException (const NCursesMenu* menu,
-@@ -286,7 +286,7 @@
-
- NCursesFormException (const char *msg, int err) :
- NCursesException (msg, err),
-- f (NULL)
-+ f (0)
- {};
-
- NCursesFormException (const NCursesForm* form,
-@@ -298,7 +298,7 @@
-
- NCursesFormException (int err) :
- NCursesException ("form library error", err),
-- f (NULL)
-+ f (0)
- {};
-
- NCursesFormException (const NCursesForm* form,
-@@ -367,11 +367,13 @@
- #define NCURSES_CPP_TRY /* nothing */
- #define NCURSES_CPP_CATCH(e) if (false)
- #define THROWS(s) /* nothing */
-+#define THROW2(s,t) /* nothing */
- #elif CPP_HAS_TRY_CATCH
- throw *e;
- #define NCURSES_CPP_TRY try
- #define NCURSES_CPP_CATCH(e) catch(e)
- #define THROWS(s) throw(s)
-+#define THROW2(s,t) throw(s,t)
- #endif
- }
-
-Index: c++/internal.h
-Prereq: 1.17
---- ncurses-5.9/c++/internal.h 2008-12-07 02:07:34.000000000 +0000
-+++ ncurses-5.9-20130504/c++/internal.h 2012-02-23 10:41:56.000000000 +0000
-@@ -1,6 +1,6 @@
- // * This makes emacs happy -*-Mode: C++;-*-
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,7 +31,7 @@
- * Author: Juergen Pfeifer, 1997 *
- ****************************************************************************/
-
--// $Id: internal.h,v 1.17 2008/12/07 02:07:34 juergen Exp $
-+// $Id: internal.h,v 1.18 2012/02/23 10:41:56 tom Exp $
-
- #ifndef NCURSES_CPLUS_INTERNAL_H
- #define NCURSES_CPLUS_INTERNAL_H 1
-@@ -62,4 +62,6 @@
- #define NULL 0
- #endif
-
-+#include <nc_string.h>
-+
- #endif /* NCURSES_CPLUS_INTERNAL_H */
-Index: c++/modules
-Prereq: 1.7
---- ncurses-5.9/c++/modules 2006-12-24 00:53:08.000000000 +0000
-+++ ncurses-5.9-20130504/c++/modules 2013-03-30 19:41:11.000000000 +0000
-@@ -1,7 +1,7 @@
- # Program modules
--# $Id: modules,v 1.7 2006/12/24 00:53:08 tom Exp $
-+# $Id: modules,v 1.11 2013/03/30 19:41:11 tom Exp $
- ##############################################################################
--# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2006,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -32,14 +32,13 @@
- #
-
- @ base
--cursesf c++ $(srcdir) $(cursesf_h) $(cursesapp_h)
--cursesm c++ $(srcdir) $(cursesm_h) $(cursesapp_h)
--cursesp c++ $(srcdir) $(cursesp_h)
--cursesw c++ $(srcdir) $(cursesw_h)
--cursespad c++ $(srcdir) $(cursesw_h)
--cursslk c++ $(srcdir) $(cursslk_h) $(cursesapp_h)
--cursesapp c++ $(srcdir) $(cursesapp_h)
--cursesmain c++ $(srcdir) $(cursesapp_h)
--demo c++ $(srcdir) $(cursesf_h) $(cursesm_h) $(cursesapp_h)
-+cursesf c++ $(srcdir) $(internal_h) $(cursesf_h) $(cursesapp_h)
-+cursesm c++ $(srcdir) $(internal_h) $(cursesm_h) $(cursesapp_h)
-+cursesw c++ $(srcdir) $(internal_h) $(cursesw_h)
-+cursespad c++ $(srcdir) $(internal_h) $(cursesw_h)
-+cursesp c++ $(srcdir) $(internal_h) $(cursesp_h)
-+cursslk c++ $(srcdir) $(internal_h) $(cursesapp_h)
-+cursesapp c++ $(srcdir) $(internal_h) $(cursesapp_h)
-+cursesmain c++ $(srcdir) $(internal_h) $(cursesapp_h) $(INCDIR)/nc_alloc.h
-
- # vile:makemode
-Index: config.guess
---- ncurses-5.9/config.guess 2010-09-28 23:11:39.000000000 +0000
-+++ ncurses-5.9-20130504/config.guess 2013-02-10 14:28:37.000000000 +0000
-@@ -1,14 +1,12 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
--# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
--# Free Software Foundation, Inc.
-+# Copyright 1992-2013 Free Software Foundation, Inc.
-
--timestamp='2010-09-24'
-+timestamp='2013-02-04'
-
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
-+# the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful, but
-@@ -17,26 +15,22 @@
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
--# 02110-1301, USA.
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
--# the same distribution terms that you use for the rest of that program.
--
--
--# Originally written by Per Bothner. Please send patches (context
--# diff format) to <config-patches@gnu.org> and include a ChangeLog
--# entry.
-+# the same distribution terms that you use for the rest of that
-+# program. This Exception is an additional permission under section 7
-+# of the GNU General Public License, version 3 ("GPLv3").
- #
--# This script attempts to guess a canonical system name similar to
--# config.sub. If it succeeds, it prints the system name on stdout, and
--# exits with 0. Otherwise, it exits with 1.
-+# Originally written by Per Bothner.
- #
- # You can get the latest version of this script from:
- # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-+#
-+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
-+
-
- me=`echo "$0" | sed -e 's,.*/,,'`
-
-@@ -56,9 +50,7 @@
- GNU config.guess ($timestamp)
-
- Originally written by Per Bothner.
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
--Software Foundation, Inc.
-+Copyright 1992-2013 Free Software Foundation, Inc.
-
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -92,7 +84,7 @@
- exit 1
- fi
-
--trap 'exit 1' HUP INT TERM
-+trap 'exit 1' 1 2 15
-
- # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
- # compiler to aid in system detection is discouraged as it requires
-@@ -106,7 +98,7 @@
-
- set_cc_for_build='
- trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
--trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
-+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
- : ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
-@@ -145,7 +137,7 @@
- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
-- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
- # switched to ELF, *-*-netbsd* would select the old
- # object file format. This provides both forward
-@@ -202,6 +194,10 @@
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit ;;
-+ *:Bitrig:*:*)
-+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
-+ exit ;;
- *:OpenBSD:*:*)
- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-@@ -220,10 +216,10 @@
- exit ;;
- alpha:OSF1:*:*)
- case $UNAME_RELEASE in
-- *4.0)
-+ *4.0)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- ;;
-- *5.*)
-+ *5.*)
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
- ;;
- esac
-@@ -270,7 +266,10 @@
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-- exit ;;
-+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-+ exitcode=$?
-+ trap '' 0
-+ exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
-@@ -301,7 +300,7 @@
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
-- arm:riscos:*:*|arm:RISCOS:*:*)
-+ arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-@@ -326,8 +325,8 @@
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
- s390x:SunOS:*:*)
-- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-- exit ;;
-+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+ exit ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
-@@ -495,7 +494,7 @@
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
-- exit ;;
-+ exit ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
-@@ -597,50 +596,50 @@
- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
-- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-- 532) # CPU_PA_RISC2_0
-- case "${sc_kernel_bits}" in
-- 32) HP_ARCH="hppa2.0n" ;;
-- 64) HP_ARCH="hppa2.0w" ;;
-+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-+ 532) # CPU_PA_RISC2_0
-+ case "${sc_kernel_bits}" in
-+ 32) HP_ARCH="hppa2.0n" ;;
-+ 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
-- esac ;;
-- esac
-+ esac ;;
-+ esac
- fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
-- sed 's/^ //' << EOF >$dummy.c
-+ sed 's/^ //' << EOF >$dummy.c
-
-- #define _HPUX_SOURCE
-- #include <stdlib.h>
-- #include <unistd.h>
--
-- int main ()
-- {
-- #if defined(_SC_KERNEL_BITS)
-- long bits = sysconf(_SC_KERNEL_BITS);
-- #endif
-- long cpu = sysconf (_SC_CPU_VERSION);
--
-- switch (cpu)
-- {
-- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-- case CPU_PA_RISC2_0:
-- #if defined(_SC_KERNEL_BITS)
-- switch (bits)
-- {
-- case 64: puts ("hppa2.0w"); break;
-- case 32: puts ("hppa2.0n"); break;
-- default: puts ("hppa2.0"); break;
-- } break;
-- #else /* !defined(_SC_KERNEL_BITS) */
-- puts ("hppa2.0"); break;
-- #endif
-- default: puts ("hppa1.0"); break;
-- }
-- exit (0);
-- }
-+ #define _HPUX_SOURCE
-+ #include <stdlib.h>
-+ #include <unistd.h>
-+
-+ int main ()
-+ {
-+ #if defined(_SC_KERNEL_BITS)
-+ long bits = sysconf(_SC_KERNEL_BITS);
-+ #endif
-+ long cpu = sysconf (_SC_CPU_VERSION);
-+
-+ switch (cpu)
-+ {
-+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-+ case CPU_PA_RISC2_0:
-+ #if defined(_SC_KERNEL_BITS)
-+ switch (bits)
-+ {
-+ case 64: puts ("hppa2.0w"); break;
-+ case 32: puts ("hppa2.0n"); break;
-+ default: puts ("hppa2.0"); break;
-+ } break;
-+ #else /* !defined(_SC_KERNEL_BITS) */
-+ puts ("hppa2.0"); break;
-+ #endif
-+ default: puts ("hppa1.0"); break;
-+ }
-+ exit (0);
-+ }
- EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
- test -z "$HP_ARCH" && HP_ARCH=hppa
-@@ -789,21 +788,26 @@
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
- *:FreeBSD:*:*)
-- case ${UNAME_MACHINE} in
-- pc98)
-- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+ UNAME_PROCESSOR=`/usr/bin/uname -p`
-+ case ${UNAME_PROCESSOR} in
- amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
-- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- esac
- exit ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
-+ *:MINGW64*:*)
-+ echo ${UNAME_MACHINE}-pc-mingw64
-+ exit ;;
- *:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
-+ i*:MSYS*:*)
-+ echo ${UNAME_MACHINE}-pc-msys
-+ exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
-@@ -820,8 +824,8 @@
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
- IA64)
-- echo ia64-unknown-interix${UNAME_RELEASE}
-- exit ;;
-+ echo ia64-unknown-interix${UNAME_RELEASE}
-+ exit ;;
- esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
-@@ -858,15 +862,22 @@
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
-+ aarch64:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
-+ aarch64_be:Linux:*:*)
-+ UNAME_MACHINE=aarch64_be
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-- EV5) UNAME_MACHINE=alphaev5 ;;
-- EV56) UNAME_MACHINE=alphaev56 ;;
-- PCA56) UNAME_MACHINE=alphapca56 ;;
-- PCA57) UNAME_MACHINE=alphapca56 ;;
-- EV6) UNAME_MACHINE=alphaev6 ;;
-- EV67) UNAME_MACHINE=alphaev67 ;;
-- EV68*) UNAME_MACHINE=alphaev68 ;;
-+ EV5) UNAME_MACHINE=alphaev5 ;;
-+ EV56) UNAME_MACHINE=alphaev56 ;;
-+ PCA56) UNAME_MACHINE=alphapca56 ;;
-+ PCA57) UNAME_MACHINE=alphapca56 ;;
-+ EV6) UNAME_MACHINE=alphaev6 ;;
-+ EV67) UNAME_MACHINE=alphaev67 ;;
-+ EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-@@ -874,30 +885,39 @@
- exit ;;
- arm*:Linux:*:*)
- eval $set_cc_for_build
-- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \
-- grep -q __ARM_EABI__
-+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-+ | grep -q __ARM_EABI__
- then
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- else
-- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-+ | grep -q __ARM_PCS_VFP
-+ then
-+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+ else
-+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
-+ fi
- fi
- exit ;;
- avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- cris:Linux:*:*)
-- echo cris-axis-linux-gnu
-+ echo ${UNAME_MACHINE}-axis-linux-gnu
- exit ;;
- crisv32:Linux:*:*)
-- echo crisv32-axis-linux-gnu
-+ echo ${UNAME_MACHINE}-axis-linux-gnu
- exit ;;
- frv:Linux:*:*)
-- echo frv-unknown-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
-+ hexagon:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- i*86:Linux:*:*)
- LIBC=gnu
- eval $set_cc_for_build
-- sed 's/^ //' << EOF >$dummy.c
-+ sed 's/^ //' << EOF >$dummy.c
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-@@ -934,14 +954,14 @@
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- ;;
- or32:Linux:*:*)
-- echo or32-unknown-linux-gnu
-- exit ;;
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
-+ exit ;;
- padre:Linux:*:*)
- echo sparc-unknown-linux-gnu
- exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
-- echo hppa64-unknown-linux-gnu
-- exit ;;
-+ echo hppa64-unknown-linux-gnu
-+ exit ;;
- parisc:Linux:*:* | hppa:Linux:*:*)
- # Look for CPU level
- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-@@ -969,13 +989,13 @@
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- tile*:Linux:*:*)
-- echo ${UNAME_MACHINE}-tilera-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-gnu
- exit ;;
- x86_64:Linux:*:*)
-- echo x86_64-unknown-linux-gnu
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit ;;
- xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
-@@ -1093,7 +1113,7 @@
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
- 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-- && { echo i486-ncr-sysv4; exit; } ;;
-+ && { echo i486-ncr-sysv4; exit; } ;;
- NCR*:*:4.2:* | MPRAS*:*:4.2:*)
- OS_REL='.3'
- test -r /etc/.relid \
-@@ -1136,8 +1156,8 @@
- echo ns32k-sni-sysv
- fi
- exit ;;
-- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-- # says <Richard.M.Bartel@ccMail.Census.GOV>
-+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-+ # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
- *:UNIX_System_V:4*:FTX*)
-@@ -1165,9 +1185,9 @@
- exit ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
-- echo mips-nec-sysv${UNAME_RELEASE}
-+ echo mips-nec-sysv${UNAME_RELEASE}
- else
-- echo mips-unknown-sysv${UNAME_RELEASE}
-+ echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
-@@ -1182,6 +1202,9 @@
- BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
-+ x86_64:Haiku:*:*)
-+ echo x86_64-unknown-haiku
-+ exit ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
-@@ -1212,12 +1235,12 @@
- i386)
- eval $set_cc_for_build
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-- grep IS_64BIT_ARCH >/dev/null
-- then
-- UNAME_PROCESSOR="x86_64"
-- fi
-+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+ grep IS_64BIT_ARCH >/dev/null
-+ then
-+ UNAME_PROCESSOR="x86_64"
-+ fi
- fi ;;
- unknown) UNAME_PROCESSOR=powerpc ;;
- esac
-@@ -1226,8 +1249,8 @@
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
-- UNAME_PROCESSOR=i386
-- UNAME_MACHINE=pc
-+ UNAME_PROCESSOR=i386
-+ UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
-@@ -1237,7 +1260,7 @@
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
-- NSE-?:NONSTOP_KERNEL:*:*)
-+ NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
-@@ -1306,11 +1329,11 @@
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
-+ x86_64:VMkernel:*:*)
-+ echo ${UNAME_MACHINE}-unknown-esx
-+ exit ;;
- esac
-
--#echo '(No uname command or uname output not recognized.)' 1>&2
--#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
--
- eval $set_cc_for_build
- cat >$dummy.c <<EOF
- #ifdef _SEQUENT_
-@@ -1328,11 +1351,11 @@
- #include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
- #ifdef NEWSOS4
-- "4"
-+ "4"
- #else
-- ""
-+ ""
- #endif
-- ); exit (0);
-+ ); exit (0);
- #endif
- #endif
-
-Index: config.sub
---- ncurses-5.9/config.sub 2010-09-10 22:25:58.000000000 +0000
-+++ ncurses-5.9-20130504/config.sub 2013-02-10 14:28:47.000000000 +0000
-@@ -1,38 +1,31 @@
- #! /bin/sh
- # Configuration validation subroutine script.
--# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
--# Free Software Foundation, Inc.
--
--timestamp='2010-09-11'
--
--# This file is (in principle) common to ALL GNU software.
--# The presence of a machine in this file suggests that SOME GNU software
--# can handle that machine. It does not imply ALL GNU software can.
--#
--# This file is free software; you can redistribute it and/or modify
--# it under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
-+# Copyright 1992-2013 Free Software Foundation, Inc.
-+
-+timestamp='2013-02-04'
-+
-+# This file is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
--# This program is distributed in the hope that it will be useful,
--# but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--# GNU General Public License for more details.
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+# General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
--# 02110-1301, USA.
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
--# the same distribution terms that you use for the rest of that program.
-+# the same distribution terms that you use for the rest of that
-+# program. This Exception is an additional permission under section 7
-+# of the GNU General Public License, version 3 ("GPLv3").
-
-
--# Please send patches to <config-patches@gnu.org>. Submit a context
--# diff and a properly formatted GNU ChangeLog entry.
-+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
- #
- # Configuration subroutine to validate and canonicalize a configuration type.
- # Supply the specified configuration type as an argument.
-@@ -75,9 +68,7 @@
- version="\
- GNU config.sub ($timestamp)
-
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
--2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
--Software Foundation, Inc.
-+Copyright 1992-2013 Free Software Foundation, Inc.
-
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -125,13 +116,17 @@
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
-+ android-linux)
-+ os=-linux-android
-+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-+ ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
-@@ -154,7 +149,7 @@
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-- -apple | -axis | -knuth | -cray | -microblaze)
-+ -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
-@@ -175,10 +170,10 @@
- os=-chorusos
- basic_machine=$1
- ;;
-- -chorusrdb)
-- os=-chorusrdb
-+ -chorusrdb)
-+ os=-chorusrdb
- basic_machine=$1
-- ;;
-+ ;;
- -hiux*)
- os=-hiuxwe2
- ;;
-@@ -223,6 +218,12 @@
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
-+ -lynx*178)
-+ os=-lynxos178
-+ ;;
-+ -lynx*5)
-+ os=-lynxos5
-+ ;;
- -lynx*)
- os=-lynxos
- ;;
-@@ -247,20 +248,27 @@
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
-+ | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
-- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-+ | arc \
-+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
-+ | avr | avr32 \
-+ | be32 | be64 \
- | bfin \
- | c4x | clipper \
- | d10v | d30v | dlx | dsp16xx \
-+ | epiphany \
- | fido | fr30 | frv \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-+ | hexagon \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
-+ | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
-- | maxq | mb | microblaze | mcore | mep | metag \
-+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
-@@ -278,30 +286,32 @@
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
-+ | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
-- | nds32 | nds32le | nds32be\
-- | nios | nios2 \
-+ | nds32 | nds32le | nds32be \
-+ | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
-+ | open8 \
- | or32 \
- | pdp10 | pdp11 | pj | pjl \
-- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-+ | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pyramid \
-- | rx \
-+ | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-- | spu | strongarm \
-- | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-+ | spu \
-+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
-- | v850 | v850e \
-+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | we32k \
-- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-+ | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
-@@ -314,8 +324,7 @@
- c6x)
- basic_machine=tic6x-unknown
- ;;
-- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-- # Motorola 68HC11/12.
-+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
-@@ -325,12 +334,27 @@
- basic_machine=mt-unknown
- ;;
-
-+ strongarm | thumb | xscale)
-+ basic_machine=arm-unknown
-+ ;;
-+ xgate)
-+ basic_machine=$basic_machine-unknown
-+ os=-none
-+ ;;
-+ xscaleeb)
-+ basic_machine=armeb-unknown
-+ ;;
-+
-+ xscaleel)
-+ basic_machine=armel-unknown
-+ ;;
-+
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
-- basic_machine=$basic_machine-pc
-- ;;
-+ basic_machine=$basic_machine-pc
-+ ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-@@ -339,11 +363,13 @@
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
-+ | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
-+ | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
-@@ -352,12 +378,15 @@
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-+ | hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
-+ | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
-+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
-+ | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
-@@ -375,31 +404,34 @@
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-+ | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
-- | nios-* | nios2-* \
-+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
-+ | open8-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pyramid-* \
-- | romp-* | rs6000-* | rx-* \
-+ | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
-- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-- | tahoe-* | thumb-* \
-+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
-+ | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-- | tile-* | tilegx-* \
-+ | tile*-* \
- | tron-* \
- | ubicom32-* \
-- | v850-* | v850e-* | vax-* \
-+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-+ | vax-* \
- | we32k-* \
-- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-+ | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
-@@ -539,7 +571,7 @@
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
-- cr16)
-+ cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
-@@ -697,7 +729,6 @@
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
--# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
-@@ -755,9 +786,13 @@
- basic_machine=ns32k-utek
- os=-sysv
- ;;
-- microblaze)
-+ microblaze*)
- basic_machine=microblaze-xilinx
- ;;
-+ mingw64)
-+ basic_machine=x86_64-pc
-+ os=-mingw64
-+ ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
-@@ -794,10 +829,18 @@
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
- ;;
-+ msys)
-+ basic_machine=i386-pc
-+ os=-msys
-+ ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
-+ nacl)
-+ basic_machine=le32-unknown
-+ os=-nacl
-+ ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
-@@ -950,9 +993,10 @@
- ;;
- power) basic_machine=power-ibm
- ;;
-- ppc) basic_machine=powerpc-unknown
-+ ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
-- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-+ ppc-* | ppcbe-*)
-+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
-@@ -977,7 +1021,11 @@
- basic_machine=i586-unknown
- os=-pw32
- ;;
-- rdos)
-+ rdos | rdos64)
-+ basic_machine=x86_64-pc
-+ os=-rdos
-+ ;;
-+ rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
-@@ -1046,6 +1094,9 @@
- basic_machine=i860-stratus
- os=-sysv4
- ;;
-+ strongarm-* | thumb-*)
-+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
-+ ;;
- sun2)
- basic_machine=m68000-sun
- ;;
-@@ -1102,13 +1153,8 @@
- basic_machine=t90-cray
- os=-unicos
- ;;
-- # This must be matched before tile*.
-- tilegx*)
-- basic_machine=tilegx-unknown
-- os=-linux-gnu
-- ;;
- tile*)
-- basic_machine=tile-unknown
-+ basic_machine=$basic_machine-unknown
- os=-linux-gnu
- ;;
- tx39)
-@@ -1178,6 +1224,9 @@
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
-+ xscale-* | xscalee[bl]-*)
-+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-+ ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
-@@ -1303,21 +1352,21 @@
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-- | -sym* | -kopensolaris* \
-+ | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-- | -openbsd* | -solidbsd* \
-+ | -bitrig* | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
-- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-- | -mingw32* | -linux-gnu* | -linux-android* \
-- | -linux-newlib* | -linux-uclibc* \
-+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
-+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-@@ -1449,9 +1498,6 @@
- -aros*)
- os=-aros
- ;;
-- -kaos*)
-- os=-kaos
-- ;;
- -zvmoe)
- os=-zvmoe
- ;;
-@@ -1500,6 +1546,9 @@
- c4x-* | tic4x-*)
- os=-coff
- ;;
-+ hexagon-*)
-+ os=-elf
-+ ;;
- tic54x-*)
- os=-coff
- ;;
-@@ -1527,9 +1576,6 @@
- ;;
- m68000-sun)
- os=-sunos3
-- # This also exists in the configure program, but was not the
-- # default.
-- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
-Index: configure
---- ncurses-5.9/configure 2011-03-31 23:35:51.000000000 +0000
-+++ ncurses-5.9-20130504/configure 2013-04-27 19:50:56.000000000 +0000
-@@ -1,7 +1,7 @@
- #! /bin/sh
--# From configure.in Revision: 1.520 .
-+# From configure.in Revision: 1.565 .
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by Autoconf 2.52.20101002.
-+# Generated by Autoconf 2.52.20121002.
- #
- # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
- # Free Software Foundation, Inc.
-@@ -171,15 +171,16 @@
- bindir='${exec_prefix}/bin'
- sbindir='${exec_prefix}/sbin'
- libexecdir='${exec_prefix}/libexec'
--datadir='${prefix}/share'
-+datarootdir='${prefix}/share'
-+datadir='${datarootdir}'
- sysconfdir='${prefix}/etc'
- sharedstatedir='${prefix}/com'
- localstatedir='${prefix}/var'
- libdir='${exec_prefix}/lib'
- includedir='${prefix}/include'
- oldincludedir='/usr/include'
--infodir='${prefix}/info'
--mandir='${prefix}/man'
-+infodir='${datarootdir}/info'
-+mandir='${datarootdir}/man'
-
- # Identity of this package.
- PACKAGE_NAME=
-@@ -230,6 +231,13 @@
- | --da=*)
- datadir=$ac_optarg ;;
-
-+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-+ | --dataroo | --dataro | --datar)
-+ ac_prev=datarootdir ;;
-+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-+ datarootdir=$ac_optarg ;;
-+
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
-@@ -505,7 +513,7 @@
- done
-
- # Be sure to have absolute paths.
--for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-+for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
- do
- eval ac_val=$`echo $ac_var`
-@@ -654,15 +662,16 @@
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
-- --datadir=DIR read-only architecture-independent data [PREFIX/share]
-+ --datarootdir=DIR read-only architecture-independent data [PREFIX/share]
-+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
-- --infodir=DIR info documentation [PREFIX/info]
-- --mandir=DIR man documentation [PREFIX/man]
-+ --infodir=DIR info documentation [DATAROOTDIR/info]
-+ --mandir=DIR man documentation [DATAROOTDIR/man]
- EOF
-
- cat <<\EOF
-@@ -694,14 +703,15 @@
- --with-rel-version=XXX override derived release version
- --with-abi-version=XXX override derived ABI version
- --with-system-type=XXX test: override derived host system-type
-+ --without-ada suppress check for Ada95, don't build demo
- --without-cxx do not adjust ncurses bool to match C++
- --without-cxx-binding do not build C++ binding and demo
-- --without-ada suppress check for Ada95, don't build demo
- --without-manpages suppress install of manpages
- --without-progs suppress build with programs (e.g., tic)
- --without-tests suppress build with test-programs
- --without-curses-h install curses.h as ncurses.h only
- --with-pkg-config{=path} enable/disable use of pkg-config
-+ --with-pkg-config-libdir=XXX use given directory for installing pc-files
- --enable-pc-files generate and install .pc files for pkg-config
- --enable-mixed-case tic should assume mixed-case filenames
- --with-install-prefix prefixes actual install-location ($DESTDIR)
-@@ -719,6 +729,8 @@
- --with-normal generate normal-libraries (default)
- --with-debug generate debug-libraries (default)
- --with-profile generate profile-libraries
-+ --with-cxx-shared generate C++ shared-libraries
-+ --with-lib-prefix override library-prefix
- --with-termlib generate separate terminfo library
- --with-ticlib generate separate tic library
- --with-gpm use Alessandro Rubini's GPM library
-@@ -735,6 +747,7 @@
- --with-hashed-db specify hashed-database library
- --with-fallbacks=XXX specify list of fallback terminal descriptions
- --without-xterm-new specify if xterm terminfo should be old version
-+ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL
- --with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo)
- --with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo)
- --disable-big-core assume machine has little memory
-@@ -759,6 +772,7 @@
- --with-ospeed=TYPE override type of ospeed variable
- --with-mmask-t=TYPE override type of mmask_t
- --with-ccharw-max=XXX override size CCHARW_MAX
-+ --with-tparm-arg=TYPE override parameter type of tparm
- --with-rcs-ids compile-in RCS identifiers
- Options to Specify How Manpages are Installed:
- --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
-@@ -796,8 +810,9 @@
- --disable-scroll-hints compile without scroll-hints code
- --enable-wgetch-events compile with experimental wgetch-events code
- Testing/development Options:
-- --enable-echo build: display "compiling" commands (default)
-+ --disable-echo do not display "compiling" commands
- --enable-warnings build: turn on GCC compiler warnings
-+ --enable-string-hacks work around bogus compiler/loader warnings
- --enable-assertions test: turn on generation of assertion code
- --with-dmalloc test: use Gray Watson's dmalloc library
- --with-dbmalloc test: use Conor Cahill's dbmalloc library
-@@ -883,7 +898,7 @@
- running configure, to aid debugging if configure makes a mistake.
-
- It was created by $as_me, which was
--generated by GNU Autoconf 2.52.20101002. Invocation command line was
-+generated by GNU Autoconf 2.52.20121002. Invocation command line was
-
- $ $0 $@
-
-@@ -1007,7 +1022,7 @@
- fi
- for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
-- { echo "$as_me:1010: loading site script $ac_site_file" >&5
-+ { echo "$as_me:1025: loading site script $ac_site_file" >&5
- echo "$as_me: loading site script $ac_site_file" >&6;}
- cat "$ac_site_file" >&5
- . "$ac_site_file"
-@@ -1018,7 +1033,7 @@
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
-- { echo "$as_me:1021: loading cache $cache_file" >&5
-+ { echo "$as_me:1036: loading cache $cache_file" >&5
- echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
-@@ -1026,7 +1041,7 @@
- esac
- fi
- else
-- { echo "$as_me:1029: creating cache $cache_file" >&5
-+ { echo "$as_me:1044: creating cache $cache_file" >&5
- echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
- fi
-@@ -1042,21 +1057,21 @@
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
-- { echo "$as_me:1045: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-+ { echo "$as_me:1060: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
-- { echo "$as_me:1049: error: \`$ac_var' was not set in the previous run" >&5
-+ { echo "$as_me:1064: error: \`$ac_var' was not set in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
-- { echo "$as_me:1055: error: \`$ac_var' has changed since the previous run:" >&5
-+ { echo "$as_me:1070: error: \`$ac_var' has changed since the previous run:" >&5
- echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-- { echo "$as_me:1057: former value: $ac_old_val" >&5
-+ { echo "$as_me:1072: former value: $ac_old_val" >&5
- echo "$as_me: former value: $ac_old_val" >&2;}
-- { echo "$as_me:1059: current value: $ac_new_val" >&5
-+ { echo "$as_me:1074: current value: $ac_new_val" >&5
- echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
-@@ -1075,9 +1090,9 @@
- fi
- done
- if $ac_cache_corrupted; then
-- { echo "$as_me:1078: error: changes in the environment can compromise the build" >&5
-+ { echo "$as_me:1093: error: changes in the environment can compromise the build" >&5
- echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-- { { echo "$as_me:1080: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-+ { { echo "$as_me:1095: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
- echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1098,10 +1113,10 @@
- echo "#! $SHELL" >conftest.sh
- echo "exit 0" >>conftest.sh
- chmod +x conftest.sh
--if { (echo "$as_me:1101: PATH=\".;.\"; conftest.sh") >&5
-+if { (echo "$as_me:1116: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
-- echo "$as_me:1104: \$? = $ac_status" >&5
-+ echo "$as_me:1119: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- ac_path_separator=';'
- else
-@@ -1114,7 +1129,7 @@
-
- top_builddir=`pwd`
-
--echo "$as_me:1117: checking for egrep" >&5
-+echo "$as_me:1132: checking for egrep" >&5
- echo $ECHO_N "checking for egrep... $ECHO_C" >&6
- if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1124,11 +1139,11 @@
- else ac_cv_prog_egrep='egrep'
- fi
- fi
--echo "$as_me:1127: result: $ac_cv_prog_egrep" >&5
-+echo "$as_me:1142: result: $ac_cv_prog_egrep" >&5
- echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
--test -z "$EGREP" && { { echo "$as_me:1131: error: No egrep program found" >&5
-+test -z "$EGREP" && { { echo "$as_me:1146: error: No egrep program found" >&5
- echo "$as_me: error: No egrep program found" >&2;}
- { (exit 1); exit 1; }; }
-
-@@ -1138,7 +1153,7 @@
- cf_cv_abi_version=${NCURSES_MAJOR}
- cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
- cf_cv_timestamp=`date`
--echo "$as_me:1141: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
-+echo "$as_me:1156: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
- echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
-
- test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
-@@ -1146,7 +1161,7 @@
- # Check whether --with-rel-version or --without-rel-version was given.
- if test "${with_rel_version+set}" = set; then
- withval="$with_rel_version"
-- { echo "$as_me:1149: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
-+ { echo "$as_me:1164: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
- echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
- cf_cv_rel_version=$withval
- fi;
-@@ -1159,13 +1174,13 @@
- [0-9]*) #(vi
- ;;
- *)
-- { { echo "$as_me:1162: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
-+ { { echo "$as_me:1177: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
- echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
- else
-- { { echo "$as_me:1168: error: Release major-version value is empty" >&5
-+ { { echo "$as_me:1183: error: Release major-version value is empty" >&5
- echo "$as_me: error: Release major-version value is empty" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1175,13 +1190,13 @@
- [0-9]*) #(vi
- ;;
- *)
-- { { echo "$as_me:1178: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
-+ { { echo "$as_me:1193: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
- echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
- else
-- { { echo "$as_me:1184: error: Release minor-version value is empty" >&5
-+ { { echo "$as_me:1199: error: Release minor-version value is empty" >&5
- echo "$as_me: error: Release minor-version value is empty" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1191,7 +1206,7 @@
- # Check whether --with-abi-version or --without-abi-version was given.
- if test "${with_abi_version+set}" = set; then
- withval="$with_abi_version"
-- { echo "$as_me:1194: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
-+ { echo "$as_me:1209: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
- echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
- cf_cv_abi_version=$withval
- fi;
-@@ -1201,13 +1216,13 @@
- [0-9]*) #(vi
- ;;
- *)
-- { { echo "$as_me:1204: error: ABI version is not a number: $cf_cv_abi_version" >&5
-+ { { echo "$as_me:1219: error: ABI version is not a number: $cf_cv_abi_version" >&5
- echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
- else
-- { { echo "$as_me:1210: error: ABI version value is empty" >&5
-+ { { echo "$as_me:1225: error: ABI version value is empty" >&5
- echo "$as_me: error: ABI version value is empty" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1229,7 +1244,7 @@
- fi
- done
- if test -z "$ac_aux_dir"; then
-- { { echo "$as_me:1232: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-+ { { echo "$as_me:1247: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
- echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1239,11 +1254,11 @@
-
- # Make sure we can run config.sub.
- $ac_config_sub sun4 >/dev/null 2>&1 ||
-- { { echo "$as_me:1242: error: cannot run $ac_config_sub" >&5
-+ { { echo "$as_me:1257: error: cannot run $ac_config_sub" >&5
- echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
--echo "$as_me:1246: checking build system type" >&5
-+echo "$as_me:1261: checking build system type" >&5
- echo $ECHO_N "checking build system type... $ECHO_C" >&6
- if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1252,23 +1267,23 @@
- test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
- test -z "$ac_cv_build_alias" &&
-- { { echo "$as_me:1255: error: cannot guess build type; you must specify one" >&5
-+ { { echo "$as_me:1270: error: cannot guess build type; you must specify one" >&5
- echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
- ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-- { { echo "$as_me:1259: error: $ac_config_sub $ac_cv_build_alias failed." >&5
-+ { { echo "$as_me:1274: error: $ac_config_sub $ac_cv_build_alias failed." >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1264: result: $ac_cv_build" >&5
-+echo "$as_me:1279: result: $ac_cv_build" >&5
- echo "${ECHO_T}$ac_cv_build" >&6
- build=$ac_cv_build
- build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
- build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
- build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
--echo "$as_me:1271: checking host system type" >&5
-+echo "$as_me:1286: checking host system type" >&5
- echo $ECHO_N "checking host system type... $ECHO_C" >&6
- if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1277,12 +1292,12 @@
- test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
- ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-- { { echo "$as_me:1280: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-+ { { echo "$as_me:1295: error: $ac_config_sub $ac_cv_host_alias failed" >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1285: result: $ac_cv_host" >&5
-+echo "$as_me:1300: result: $ac_cv_host" >&5
- echo "${ECHO_T}$ac_cv_host" >&6
- host=$ac_cv_host
- host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1290,7 +1305,7 @@
- host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
- if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
-- echo "$as_me:1293: checking target system type" >&5
-+ echo "$as_me:1308: checking target system type" >&5
- echo $ECHO_N "checking target system type... $ECHO_C" >&6
- if test "${ac_cv_target+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1299,12 +1314,12 @@
- test "x$ac_cv_target_alias" = "x" &&
- ac_cv_target_alias=$ac_cv_host_alias
- ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
-- { { echo "$as_me:1302: error: $ac_config_sub $ac_cv_target_alias failed" >&5
-+ { { echo "$as_me:1317: error: $ac_config_sub $ac_cv_target_alias failed" >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1307: result: $ac_cv_target" >&5
-+echo "$as_me:1322: result: $ac_cv_target" >&5
- echo "${ECHO_T}$ac_cv_target" >&6
- target=$ac_cv_target
- target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1324,7 +1339,8 @@
- system_name="`(hostname) 2>/dev/null`"
- fi
- fi
--test -n "$system_name" && cat >>confdefs.h <<EOF
-+test -n "$system_name" &&
-+cat >>confdefs.h <<EOF
- #define SYSTEM_NAME "$system_name"
- EOF
-
-@@ -1335,13 +1351,13 @@
- fi
-
- test -z "$system_name" && system_name="$cf_cv_system_name"
--test -n "$cf_cv_system_name" && echo "$as_me:1338: result: Configuring for $cf_cv_system_name" >&5
-+test -n "$cf_cv_system_name" && echo "$as_me:1354: result: Configuring for $cf_cv_system_name" >&5
- echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
-
- if test ".$system_name" != ".$cf_cv_system_name" ; then
-- echo "$as_me:1342: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
-+ echo "$as_me:1358: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
- echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
-- { { echo "$as_me:1344: error: \"Please remove config.cache and try again.\"" >&5
-+ { { echo "$as_me:1360: error: \"Please remove config.cache and try again.\"" >&5
- echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1349,9 +1365,11 @@
- # Check whether --with-system-type or --without-system-type was given.
- if test "${with_system_type+set}" = set; then
- withval="$with_system_type"
-- { echo "$as_me:1352: WARNING: overriding system type to $withval" >&5
-+ { echo "$as_me:1368: WARNING: overriding system type to $withval" >&5
- echo "$as_me: WARNING: overriding system type to $withval" >&2;}
-- cf_cv_system_name=$withval
-+ cf_cv_system_name=$withval
-+ host_os=$withval
-+
- fi;
-
- ### Save the given $CFLAGS to allow user-override.
-@@ -1359,23 +1377,23 @@
-
- ### Default install-location
-
--echo "$as_me:1362: checking for prefix" >&5
-+echo "$as_me:1380: checking for prefix" >&5
- echo $ECHO_N "checking for prefix... $ECHO_C" >&6
- if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
-- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
-+ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|k*bsd*-gnu|mingw*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
- fi
--echo "$as_me:1374: result: $prefix" >&5
-+echo "$as_me:1392: result: $prefix" >&5
- echo "${ECHO_T}$prefix" >&6
-
- if test "x$prefix" = "xNONE" ; then
--echo "$as_me:1378: checking for default include-directory" >&5
-+echo "$as_me:1396: checking for default include-directory" >&5
- echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
- test -n "$verbose" && echo 1>&6
- for cf_symbol in \
-@@ -1398,11 +1416,26 @@
- fi
- test -n "$verbose" && echo " tested $cf_dir" 1>&6
- done
--echo "$as_me:1401: result: $includedir" >&5
-+echo "$as_me:1419: result: $includedir" >&5
- echo "${ECHO_T}$includedir" >&6
- fi
-
- ### Checks for programs.
-+
-+# Check whether --with-ada or --without-ada was given.
-+if test "${with_ada+set}" = set; then
-+ withval="$with_ada"
-+ cf_with_ada=$withval
-+else
-+ cf_with_ada=yes
-+fi;
-+if test "x$cf_with_ada" = xyes
-+then
-+ cf_PROG_CC="gnatgcc gcc cc"
-+else
-+ cf_PROG_CC="gcc cc"
-+fi
-+
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -1410,213 +1443,11 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:1415: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_CC="${ac_tool_prefix}gcc"
--echo "$as_me:1430: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:1438: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:1441: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "gcc", so it can be a program name with args.
--set dummy gcc; ac_word=$2
--echo "$as_me:1450: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_ac_ct_CC="gcc"
--echo "$as_me:1465: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:1473: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:1476: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
--
--if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
--set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:1489: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_CC="${ac_tool_prefix}cc"
--echo "$as_me:1504: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:1512: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:1515: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:1524: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--ac_cv_prog_ac_ct_CC="cc"
--echo "$as_me:1539: found $ac_dir/$ac_word" >&5
--break
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:1547: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
--else
-- echo "$as_me:1550: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
--
--fi
--if test -z "$CC"; then
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:1563: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$CC"; then
-- ac_cv_prog_CC="$CC" # Let the user override the test.
--else
-- ac_prog_rejected=no
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- $as_executable_p "$ac_dir/$ac_word" || continue
--if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-- ac_prog_rejected=yes
-- continue
--fi
--ac_cv_prog_CC="cc"
--echo "$as_me:1583: found $ac_dir/$ac_word" >&5
--break
--done
--
--if test $ac_prog_rejected = yes; then
-- # We found a bogon in the path, so make sure we never use it.
-- set dummy $ac_cv_prog_CC
-- shift
-- if test $# != 0; then
-- # We chose a different compiler from the bogus one.
-- # However, it has the same basename, so the bogon will be chosen
-- # first if we set CC to just the basename; use the full file name.
-- shift
-- set dummy "$ac_dir/$ac_word" ${1+"$@"}
-- shift
-- ac_cv_prog_CC="$@"
-- fi
--fi
--fi
--fi
--CC=$ac_cv_prog_CC
--if test -n "$CC"; then
-- echo "$as_me:1605: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:1608: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- for ac_prog in cl
-+ for ac_prog in $cf_PROG_CC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
- set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:1619: checking for $ac_word" >&5
-+echo "$as_me:1450: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1631,7 +1462,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
--echo "$as_me:1634: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1465: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1639,10 +1470,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:1642: result: $CC" >&5
-+ echo "$as_me:1473: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
-- echo "$as_me:1645: result: no" >&5
-+ echo "$as_me:1476: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1651,11 +1482,11 @@
- fi
- if test -z "$CC"; then
- ac_ct_CC=$CC
-- for ac_prog in cl
-+ for ac_prog in $cf_PROG_CC
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:1658: checking for $ac_word" >&5
-+echo "$as_me:1489: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1670,7 +1501,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="$ac_prog"
--echo "$as_me:1673: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1504: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1678,10 +1509,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:1681: result: $ac_ct_CC" >&5
-+ echo "$as_me:1512: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
-- echo "$as_me:1684: result: no" >&5
-+ echo "$as_me:1515: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1691,34 +1522,32 @@
- CC=$ac_ct_CC
- fi
-
--fi
--
--test -z "$CC" && { { echo "$as_me:1696: error: no acceptable cc found in \$PATH" >&5
-+test -z "$CC" && { { echo "$as_me:1525: error: no acceptable cc found in \$PATH" >&5
- echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-
- # Provide some information about the compiler.
--echo "$as_me:1701:" \
-+echo "$as_me:1530:" \
- "checking for C compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:1704: \"$ac_compiler --version </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1533: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1707: \$? = $ac_status" >&5
-+ echo "$as_me:1536: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:1709: \"$ac_compiler -v </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1538: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1712: \$? = $ac_status" >&5
-+ echo "$as_me:1541: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:1714: \"$ac_compiler -V </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1543: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1717: \$? = $ac_status" >&5
-+ echo "$as_me:1546: \$? = $ac_status" >&5
- (exit $ac_status); }
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 1721 "configure"
-+#line 1550 "configure"
- #include "confdefs.h"
-
- int
-@@ -1734,13 +1563,13 @@
- # Try to create an executable without -o first, disregard a.out.
- # It will help us diagnose broken compilers, and finding out an intuition
- # of exeext.
--echo "$as_me:1737: checking for C compiler default output" >&5
-+echo "$as_me:1566: checking for C compiler default output" >&5
- echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
- ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:1740: \"$ac_link_default\"") >&5
-+if { (eval echo "$as_me:1569: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
-- echo "$as_me:1743: \$? = $ac_status" >&5
-+ echo "$as_me:1572: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
- # not robust to junk in `.', hence go to wildcards (a.*) only as a last
-@@ -1763,34 +1592,34 @@
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1766: error: C compiler cannot create executables" >&5
-+{ { echo "$as_me:1595: error: C compiler cannot create executables" >&5
- echo "$as_me: error: C compiler cannot create executables" >&2;}
- { (exit 77); exit 77; }; }
- fi
-
- ac_exeext=$ac_cv_exeext
--echo "$as_me:1772: result: $ac_file" >&5
-+echo "$as_me:1601: result: $ac_file" >&5
- echo "${ECHO_T}$ac_file" >&6
-
- # Check the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1777: checking whether the C compiler works" >&5
-+echo "$as_me:1606: checking whether the C compiler works" >&5
- echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
- # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
- # If not cross compiling, check that we can run a simple program.
- if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
-- { (eval echo "$as_me:1783: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1612: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1786: \$? = $ac_status" >&5
-+ echo "$as_me:1615: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
-- { { echo "$as_me:1793: error: cannot run C compiled programs.
-+ { { echo "$as_me:1622: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&5
- echo "$as_me: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&2;}
-@@ -1798,24 +1627,24 @@
- fi
- fi
- fi
--echo "$as_me:1801: result: yes" >&5
-+echo "$as_me:1630: result: yes" >&5
- echo "${ECHO_T}yes" >&6
-
- rm -f a.out a.exe conftest$ac_cv_exeext
- ac_clean_files=$ac_clean_files_save
- # Check the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1808: checking whether we are cross compiling" >&5
-+echo "$as_me:1637: checking whether we are cross compiling" >&5
- echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:1810: result: $cross_compiling" >&5
-+echo "$as_me:1639: result: $cross_compiling" >&5
- echo "${ECHO_T}$cross_compiling" >&6
-
--echo "$as_me:1813: checking for executable suffix" >&5
-+echo "$as_me:1642: checking for executable suffix" >&5
- echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
--if { (eval echo "$as_me:1815: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:1644: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:1818: \$? = $ac_status" >&5
-+ echo "$as_me:1647: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
- # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-@@ -1831,25 +1660,25 @@
- esac
- done
- else
-- { { echo "$as_me:1834: error: cannot compute EXEEXT: cannot compile and link" >&5
-+ { { echo "$as_me:1663: error: cannot compute EXEEXT: cannot compile and link" >&5
- echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- rm -f conftest$ac_cv_exeext
--echo "$as_me:1840: result: $ac_cv_exeext" >&5
-+echo "$as_me:1669: result: $ac_cv_exeext" >&5
- echo "${ECHO_T}$ac_cv_exeext" >&6
-
- rm -f conftest.$ac_ext
- EXEEXT=$ac_cv_exeext
- ac_exeext=$EXEEXT
--echo "$as_me:1846: checking for object suffix" >&5
-+echo "$as_me:1675: checking for object suffix" >&5
- echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
- if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1852 "configure"
-+#line 1681 "configure"
- #include "confdefs.h"
-
- int
-@@ -1861,10 +1690,10 @@
- }
- _ACEOF
- rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:1864: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1693: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1867: \$? = $ac_status" >&5
-+ echo "$as_me:1696: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
-@@ -1876,24 +1705,24 @@
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1879: error: cannot compute OBJEXT: cannot compile" >&5
-+{ { echo "$as_me:1708: error: cannot compute OBJEXT: cannot compile" >&5
- echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
--echo "$as_me:1886: result: $ac_cv_objext" >&5
-+echo "$as_me:1715: result: $ac_cv_objext" >&5
- echo "${ECHO_T}$ac_cv_objext" >&6
- OBJEXT=$ac_cv_objext
- ac_objext=$OBJEXT
--echo "$as_me:1890: checking whether we are using the GNU C compiler" >&5
-+echo "$as_me:1719: checking whether we are using the GNU C compiler" >&5
- echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
- if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1896 "configure"
-+#line 1725 "configure"
- #include "confdefs.h"
-
- int
-@@ -1908,16 +1737,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1911: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1740: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1914: \$? = $ac_status" >&5
-+ echo "$as_me:1743: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1917: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1746: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1920: \$? = $ac_status" >&5
-+ echo "$as_me:1749: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
- else
-@@ -1929,19 +1758,19 @@
- ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
- fi
--echo "$as_me:1932: result: $ac_cv_c_compiler_gnu" >&5
-+echo "$as_me:1761: result: $ac_cv_c_compiler_gnu" >&5
- echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
- GCC=`test $ac_compiler_gnu = yes && echo yes`
- ac_test_CFLAGS=${CFLAGS+set}
- ac_save_CFLAGS=$CFLAGS
- CFLAGS="-g"
--echo "$as_me:1938: checking whether $CC accepts -g" >&5
-+echo "$as_me:1767: checking whether $CC accepts -g" >&5
- echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
- if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1944 "configure"
-+#line 1773 "configure"
- #include "confdefs.h"
-
- int
-@@ -1953,16 +1782,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1956: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1785: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1959: \$? = $ac_status" >&5
-+ echo "$as_me:1788: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1962: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1791: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1965: \$? = $ac_status" >&5
-+ echo "$as_me:1794: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
- else
-@@ -1972,7 +1801,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:1975: result: $ac_cv_prog_cc_g" >&5
-+echo "$as_me:1804: result: $ac_cv_prog_cc_g" >&5
- echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-@@ -1999,16 +1828,16 @@
- #endif
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2002: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1831: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2005: \$? = $ac_status" >&5
-+ echo "$as_me:1834: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2008: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1837: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2011: \$? = $ac_status" >&5
-+ echo "$as_me:1840: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- ''\
-@@ -2020,7 +1849,7 @@
- 'void exit (int);'
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 2023 "configure"
-+#line 1852 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- $ac_declaration
-@@ -2033,16 +1862,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2036: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1865: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2039: \$? = $ac_status" >&5
-+ echo "$as_me:1868: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2042: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1871: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2045: \$? = $ac_status" >&5
-+ echo "$as_me:1874: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -2052,7 +1881,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 2055 "configure"
-+#line 1884 "configure"
- #include "confdefs.h"
- $ac_declaration
- int
-@@ -2064,16 +1893,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2067: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1896: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2070: \$? = $ac_status" >&5
-+ echo "$as_me:1899: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2073: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1902: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2076: \$? = $ac_status" >&5
-+ echo "$as_me:1905: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -2103,55 +1932,246 @@
-
- GCC_VERSION=none
- if test "$GCC" = yes ; then
-- echo "$as_me:2106: checking version of $CC" >&5
-+ echo "$as_me:1935: checking version of $CC" >&5
- echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
-- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
-+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
-- echo "$as_me:2110: result: $GCC_VERSION" >&5
-+ echo "$as_me:1939: result: $GCC_VERSION" >&5
- echo "${ECHO_T}$GCC_VERSION" >&6
- fi
-
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--ac_main_return=return
--echo "$as_me:2120: checking how to run the C preprocessor" >&5
--echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
--# On Suns, sometimes $CPP names a directory.
--if test -n "$CPP" && test -d "$CPP"; then
-- CPP=
--fi
--if test -z "$CPP"; then
-- if test "${ac_cv_prog_CPP+set}" = set; then
-+echo "$as_me:1943: checking for $CC option to accept ANSI C" >&5
-+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-+if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- # Double quotes because CPP needs to be expanded
-- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-- do
-- ac_preproc_ok=false
--for ac_c_preproc_warn_flag in '' yes
--do
-- # Use a header file that comes with gcc, so configuring glibc
-- # with a fresh cross-compiler works.
-- # On the NeXT, cc -E runs the code through the compiler's parser,
-- # not just through cpp. "Syntax error" is here to catch this case.
-- cat >conftest.$ac_ext <<_ACEOF
--#line 2141 "configure"
-+ ac_cv_prog_cc_stdc=no
-+ac_save_CC=$CC
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 1951 "configure"
- #include "confdefs.h"
--#include <assert.h>
-- Syntax error
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-+struct buf { int x; };
-+FILE * (*rcsopen) (struct buf *, struct stat *, int);
-+static char *e (p, i)
-+ char **p;
-+ int i;
-+{
-+ return p[i];
-+}
-+static char *f (char * (*g) (char **, int), char **p, ...)
-+{
-+ char *s;
-+ va_list v;
-+ va_start (v,p);
-+ s = g (p, va_arg (v,int));
-+ va_end (v);
-+ return s;
-+}
-+int test (int i, double x);
-+struct s1 {int (*f) (int a);};
-+struct s2 {int (*f) (double a);};
-+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-+int argc;
-+char **argv;
-+int
-+main ()
-+{
-+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-+ ;
-+ return 0;
-+}
- _ACEOF
--if { (eval echo "$as_me:2146: \"$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:2152: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-+# Don't try gcc -ansi; that turns off useful extensions and
-+# breaks some systems' header files.
-+# AIX -qlanglvl=ansi
-+# Ultrix and OSF/1 -std1
-+# HP-UX 10.20 and later -Ae
-+# HP-UX older versions -Aa -D_HPUX_SOURCE
-+# SVR4 -Xc -D__EXTENSIONS__
-+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-+do
-+ CC="$ac_save_CC $ac_arg"
-+ rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:2000: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:2003: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:2006: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:2009: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_prog_cc_stdc=$ac_arg
-+break
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext
-+done
-+rm -f conftest.$ac_ext conftest.$ac_objext
-+CC=$ac_save_CC
-+
-+fi
-+
-+case "x$ac_cv_prog_cc_stdc" in
-+ x|xno)
-+ echo "$as_me:2026: result: none needed" >&5
-+echo "${ECHO_T}none needed" >&6 ;;
-+ *)
-+ echo "$as_me:2029: result: $ac_cv_prog_cc_stdc" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-+ CC="$CC $ac_cv_prog_cc_stdc" ;;
-+esac
-+
-+# This should have been defined by AC_PROG_CC
-+: ${CC:=cc}
-+
-+echo "$as_me:2037: checking \$CC variable" >&5
-+echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-+case "$CC" in #(vi
-+*[\ \ ]-[IUD]*)
-+ echo "$as_me:2041: result: broken" >&5
-+echo "${ECHO_T}broken" >&6
-+ { echo "$as_me:2043: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
-+echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
-+ # humor him...
-+ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'`
-+ CC=`echo "$CC" | sed -e 's/[ ].*//'`
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_flags
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ ;;
-+*)
-+ echo "$as_me:2129: result: ok" >&5
-+echo "${ECHO_T}ok" >&6
-+ ;;
-+esac
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+ac_main_return=return
-+echo "$as_me:2140: checking how to run the C preprocessor" >&5
-+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-+# On Suns, sometimes $CPP names a directory.
-+if test -n "$CPP" && test -d "$CPP"; then
-+ CPP=
-+fi
-+if test -z "$CPP"; then
-+ if test "${ac_cv_prog_CPP+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ # Double quotes because CPP needs to be expanded
-+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-+ do
-+ ac_preproc_ok=false
-+for ac_c_preproc_warn_flag in '' yes
-+do
-+ # Use a header file that comes with gcc, so configuring glibc
-+ # with a fresh cross-compiler works.
-+ # On the NeXT, cc -E runs the code through the compiler's parser,
-+ # not just through cpp. "Syntax error" is here to catch this case.
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 2161 "configure"
-+#include "confdefs.h"
-+#include <assert.h>
-+ Syntax error
-+_ACEOF
-+if { (eval echo "$as_me:2166: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ egrep -v '^ *\+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:2172: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
-@@ -2172,17 +2192,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 2175 "configure"
-+#line 2195 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:2179: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2199: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:2185: \$? = $ac_status" >&5
-+ echo "$as_me:2205: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2219,7 +2239,7 @@
- else
- ac_cv_prog_CPP=$CPP
- fi
--echo "$as_me:2222: result: $CPP" >&5
-+echo "$as_me:2242: result: $CPP" >&5
- echo "${ECHO_T}$CPP" >&6
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
-@@ -2229,18 +2249,18 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
--#line 2232 "configure"
-+#line 2252 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:2237: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2257: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:2243: \$? = $ac_status" >&5
-+ echo "$as_me:2263: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2263,17 +2283,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 2266 "configure"
-+#line 2286 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:2270: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2290: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:2276: \$? = $ac_status" >&5
-+ echo "$as_me:2296: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2301,7 +2321,7 @@
- if $ac_preproc_ok; then
- :
- else
-- { { echo "$as_me:2304: error: C preprocessor \"$CPP\" fails sanity check" >&5
-+ { { echo "$as_me:2324: error: C preprocessor \"$CPP\" fails sanity check" >&5
- echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -2314,14 +2334,14 @@
- ac_main_return=return
-
- if test $ac_cv_c_compiler_gnu = yes; then
-- echo "$as_me:2317: checking whether $CC needs -traditional" >&5
-+ echo "$as_me:2337: checking whether $CC needs -traditional" >&5
- echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
- if test "${ac_cv_prog_gcc_traditional+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
--#line 2324 "configure"
-+#line 2344 "configure"
- #include "confdefs.h"
- #include <sgtty.h>
- int Autoconf = TIOCGETP;
-@@ -2336,7 +2356,7 @@
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 2339 "configure"
-+#line 2359 "configure"
- #include "confdefs.h"
- #include <termio.h>
- int Autoconf = TCGETA;
-@@ -2349,14 +2369,14 @@
-
- fi
- fi
--echo "$as_me:2352: result: $ac_cv_prog_gcc_traditional" >&5
-+echo "$as_me:2372: result: $ac_cv_prog_gcc_traditional" >&5
- echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
- if test $ac_cv_prog_gcc_traditional = yes; then
- CC="$CC -traditional"
- fi
- fi
-
--echo "$as_me:2359: checking whether $CC understands -c and -o together" >&5
-+echo "$as_me:2379: checking whether $CC understands -c and -o together" >&5
- echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
- if test "${cf_cv_prog_CC_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2372,15 +2392,15 @@
- # We do the test twice because some compilers refuse to overwrite an
- # existing .o file with -o, though they will create one.
- ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
--if { (eval echo "$as_me:2375: \"$ac_try\"") >&5
-+if { (eval echo "$as_me:2395: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2378: \$? = $ac_status" >&5
-+ echo "$as_me:2398: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- test -f conftest2.$ac_objext && { (eval echo "$as_me:2380: \"$ac_try\"") >&5
-+ test -f conftest2.$ac_objext && { (eval echo "$as_me:2400: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2383: \$? = $ac_status" >&5
-+ echo "$as_me:2403: \$? = $ac_status" >&5
- (exit $ac_status); };
- then
- eval cf_cv_prog_CC_c_o=yes
-@@ -2391,318 +2411,24 @@
-
- fi
- if test $cf_cv_prog_CC_c_o = yes; then
-- echo "$as_me:2394: result: yes" >&5
-+ echo "$as_me:2414: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-- echo "$as_me:2397: result: no" >&5
-+ echo "$as_me:2417: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
--echo "$as_me:2401: checking for POSIXized ISC" >&5
--echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
--if test -d /etc/conf/kconfig.d &&
-- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
--then
-- echo "$as_me:2406: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-- ISC=yes # If later tests want to check for ISC.
--
--cat >>confdefs.h <<\EOF
--#define _POSIX_SOURCE 1
--EOF
--
-- if test "$GCC" = yes; then
-- CC="$CC -posix"
-- else
-- CC="$CC -Xp"
-- fi
--else
-- echo "$as_me:2420: result: no" >&5
--echo "${ECHO_T}no" >&6
-- ISC=
--fi
--
--echo "$as_me:2425: checking for ${CC:-cc} option to accept ANSI C" >&5
--echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
--if test "${cf_cv_ansi_cc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
--cf_cv_ansi_cc=no
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
--for cf_arg in "-DCC_HAS_PROTOS" \
-- "" \
-- -qlanglvl=ansi \
-- -std1 \
-- -Ae \
-- "-Aa -D_HPUX_SOURCE" \
-- -Xc
--do
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_arg
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
-- cat >conftest.$ac_ext <<_ACEOF
--#line 2529 "configure"
--#include "confdefs.h"
--
--#ifndef CC_HAS_PROTOS
--#if !defined(__STDC__) || (__STDC__ != 1)
--choke me
--#endif
--#endif
--
--int
--main ()
--{
--
-- int test (int i, double x);
-- struct s1 {int (*f) (int a);};
-- struct s2 {int (*f) (double a);};
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2550: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:2553: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2556: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:2559: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_cv_ansi_cc="$cf_arg"; break
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--done
--CFLAGS="$cf_save_CFLAGS"
--CPPFLAGS="$cf_save_CPPFLAGS"
--
--fi
--echo "$as_me:2572: result: $cf_cv_ansi_cc" >&5
--echo "${ECHO_T}$cf_cv_ansi_cc" >&6
--
--if test "$cf_cv_ansi_cc" != "no"; then
--if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_cv_ansi_cc
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
--else
-- cat >>confdefs.h <<\EOF
--#define CC_HAS_PROTOS 1
--EOF
--
--fi
--fi
--
--if test "$cf_cv_ansi_cc" = "no"; then
-- { { echo "$as_me:2665: error: Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto" >&5
--echo "$as_me: error: Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto" >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--case $cf_cv_system_name in
--os2*)
-- CFLAGS="$CFLAGS -Zmt"
-- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
-- CXXFLAGS="$CXXFLAGS -Zmt"
-- # autoconf's macro sets -Zexe and suffix both, which conflict:w
-- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
-- ac_cv_exeext=.exe
-- ;;
--esac
--
--PROG_EXT="$EXEEXT"
--
--test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
--#define PROG_EXT "$PROG_EXT"
--EOF
--
- if test "$cross_compiling" = yes ; then
- LDCONFIG=:
- else
- case "$cf_cv_system_name" in #(vi
--dragonfly*|freebsd*) #(vi
-+dragonfly*|mirbsd*|freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
- *) LDPATH=$PATH:/sbin:/usr/sbin
- # Extract the first word of "ldconfig", so it can be a program name with args.
- set dummy ldconfig; ac_word=$2
--echo "$as_me:2705: checking for $ac_word" >&5
-+echo "$as_me:2431: 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
-@@ -2719,7 +2445,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:2722: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:2448: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -2730,10 +2456,10 @@
- LDCONFIG=$ac_cv_path_LDCONFIG
-
- if test -n "$LDCONFIG"; then
-- echo "$as_me:2733: result: $LDCONFIG" >&5
-+ echo "$as_me:2459: result: $LDCONFIG" >&5
- echo "${ECHO_T}$LDCONFIG" >&6
- else
-- echo "$as_me:2736: result: no" >&5
-+ echo "$as_me:2462: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2741,7 +2467,7 @@
- esac
- fi
-
--echo "$as_me:2744: checking if you want to ensure bool is consistent with C++" >&5
-+echo "$as_me:2470: 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.
-@@ -2751,7 +2477,7 @@
- else
- cf_with_cxx=yes
- fi;
--echo "$as_me:2754: result: $cf_with_cxx" >&5
-+echo "$as_me:2480: result: $cf_with_cxx" >&5
- echo "${ECHO_T}$cf_with_cxx" >&6
- if test "X$cf_with_cxx" = Xno ; then
- CXX=""
-@@ -2769,7 +2495,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:2772: checking for $ac_word" >&5
-+echo "$as_me:2498: 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
-@@ -2784,7 +2510,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:2787: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2513: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2792,10 +2518,10 @@
- fi
- CXX=$ac_cv_prog_CXX
- if test -n "$CXX"; then
-- echo "$as_me:2795: result: $CXX" >&5
-+ echo "$as_me:2521: result: $CXX" >&5
- echo "${ECHO_T}$CXX" >&6
- else
-- echo "$as_me:2798: result: no" >&5
-+ echo "$as_me:2524: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2808,7 +2534,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:2811: checking for $ac_word" >&5
-+echo "$as_me:2537: 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
-@@ -2823,7 +2549,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:2826: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2552: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2831,10 +2557,10 @@
- fi
- ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
- if test -n "$ac_ct_CXX"; then
-- echo "$as_me:2834: result: $ac_ct_CXX" >&5
-+ echo "$as_me:2560: result: $ac_ct_CXX" >&5
- echo "${ECHO_T}$ac_ct_CXX" >&6
- else
-- echo "$as_me:2837: result: no" >&5
-+ echo "$as_me:2563: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2846,32 +2572,32 @@
- fi
-
- # Provide some information about the compiler.
--echo "$as_me:2849:" \
-+echo "$as_me:2575:" \
- "checking for C++ compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:2852: \"$ac_compiler --version </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:2578: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:2855: \$? = $ac_status" >&5
-+ echo "$as_me:2581: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:2857: \"$ac_compiler -v </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:2583: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:2860: \$? = $ac_status" >&5
-+ echo "$as_me:2586: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:2862: \"$ac_compiler -V </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:2588: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:2865: \$? = $ac_status" >&5
-+ echo "$as_me:2591: \$? = $ac_status" >&5
- (exit $ac_status); }
-
--echo "$as_me:2868: checking whether we are using the GNU C++ compiler" >&5
-+echo "$as_me:2594: checking whether we are using the GNU C++ compiler" >&5
- echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
- if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 2874 "configure"
-+#line 2600 "configure"
- #include "confdefs.h"
-
- int
-@@ -2886,16 +2612,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2889: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2615: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2892: \$? = $ac_status" >&5
-+ echo "$as_me:2618: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2895: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2621: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2898: \$? = $ac_status" >&5
-+ echo "$as_me:2624: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
- else
-@@ -2907,19 +2633,19 @@
- ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
- fi
--echo "$as_me:2910: result: $ac_cv_cxx_compiler_gnu" >&5
-+echo "$as_me:2636: result: $ac_cv_cxx_compiler_gnu" >&5
- echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
- GXX=`test $ac_compiler_gnu = yes && echo yes`
- ac_test_CXXFLAGS=${CXXFLAGS+set}
- ac_save_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="-g"
--echo "$as_me:2916: checking whether $CXX accepts -g" >&5
-+echo "$as_me:2642: checking whether $CXX accepts -g" >&5
- echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
- if test "${ac_cv_prog_cxx_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 2922 "configure"
-+#line 2648 "configure"
- #include "confdefs.h"
-
- int
-@@ -2931,16 +2657,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2934: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2660: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2937: \$? = $ac_status" >&5
-+ echo "$as_me:2663: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2940: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2666: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2943: \$? = $ac_status" >&5
-+ echo "$as_me:2669: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cxx_g=yes
- else
-@@ -2950,7 +2676,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:2953: result: $ac_cv_prog_cxx_g" >&5
-+echo "$as_me:2679: 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
-@@ -2977,7 +2703,7 @@
- 'void exit (int);'
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 2980 "configure"
-+#line 2706 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- $ac_declaration
-@@ -2990,16 +2716,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2993: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2719: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2996: \$? = $ac_status" >&5
-+ echo "$as_me:2722: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2999: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2725: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3002: \$? = $ac_status" >&5
-+ echo "$as_me:2728: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -3009,7 +2735,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 3012 "configure"
-+#line 2738 "configure"
- #include "confdefs.h"
- $ac_declaration
- int
-@@ -3021,16 +2747,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3024: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2750: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3027: \$? = $ac_status" >&5
-+ echo "$as_me:2753: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3030: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2756: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3033: \$? = $ac_status" >&5
-+ echo "$as_me:2759: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -3053,11 +2779,11 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
-
-- # autoconf 2.5x removed the error - by hardcoding it to g++.
-+ # autoconf 2.5x removed the error (hardcoding it to g++, or just blank)
- if test "$CXX" = "g++" ; then
- # Extract the first word of "g++", so it can be a program name with args.
- set dummy g++; ac_word=$2
--echo "$as_me:3060: checking for $ac_word" >&5
-+echo "$as_me:2786: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3074,7 +2800,7 @@
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_CXX="$ac_dir/$ac_word"
-- echo "$as_me:3077: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:2803: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -3085,28 +2811,30 @@
- CXX=$ac_cv_path_CXX
-
- if test -n "$CXX"; then
-- echo "$as_me:3088: result: $CXX" >&5
-+ echo "$as_me:2814: result: $CXX" >&5
- echo "${ECHO_T}$CXX" >&6
- else
-- echo "$as_me:3091: result: no" >&5
-+ echo "$as_me:2817: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- fi
-- if test "$CXX" = "g++" ; then
-- { echo "$as_me:3097: WARNING: ignoring hardcoded g++" >&5
--echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
-+ case "x$CXX" in #(vi
-+ x|xg++)
-+ { echo "$as_me:2824: WARNING: You don't have any C++ compiler, too bad" >&5
-+echo "$as_me: WARNING: You don't have any C++ compiler, too bad" >&2;}
- cf_with_cxx=no; CXX=""; GXX="";
-- fi
-+ ;;
-+ esac
- fi
-
- GXX_VERSION=none
- if test "$GXX" = yes; then
-- echo "$as_me:3105: checking version of g++" >&5
--echo $ECHO_N "checking version of g++... $ECHO_C" >&6
-+ echo "$as_me:2833: checking version of ${CXX:-g++}" >&5
-+echo $ECHO_N "checking version of ${CXX:-g++}... $ECHO_C" >&6
- GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- test -z "$GXX_VERSION" && GXX_VERSION=unknown
-- echo "$as_me:3109: result: $GXX_VERSION" >&5
-+ echo "$as_me:2837: result: $GXX_VERSION" >&5
- echo "${ECHO_T}$GXX_VERSION" >&6
- fi
-
-@@ -3114,12 +2842,12 @@
- 1*|2.[0-6]*)
- # GXX=""; CXX=""; ac_cv_prog_gxx=no
- # cf_cxx_library=no
-- { echo "$as_me:3117: WARNING: templates do not work" >&5
-+ { echo "$as_me:2845: WARNING: templates do not work" >&5
- echo "$as_me: WARNING: templates do not work" >&2;}
- ;;
- esac
-
--echo "$as_me:3122: checking if you want to build C++ binding and demo" >&5
-+echo "$as_me:2850: checking if you want to build C++ binding and demo" >&5
- echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
-
- # Check whether --with-cxx-binding or --without-cxx-binding was given.
-@@ -3129,23 +2857,15 @@
- else
- cf_with_cxx_binding=$cf_with_cxx
- fi;
--echo "$as_me:3132: result: $cf_with_cxx_binding" >&5
-+echo "$as_me:2860: result: $cf_with_cxx_binding" >&5
- echo "${ECHO_T}$cf_with_cxx_binding" >&6
-
--echo "$as_me:3135: checking if you want to build with Ada95" >&5
-+echo "$as_me:2863: 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.
--if test "${with_ada+set}" = set; then
-- withval="$with_ada"
-- cf_with_ada=$withval
--else
-- cf_with_ada=yes
--fi;
--echo "$as_me:3145: result: $cf_with_ada" >&5
-+echo "$as_me:2865: result: $cf_with_ada" >&5
- echo "${ECHO_T}$cf_with_ada" >&6
-
--echo "$as_me:3148: checking if you want to install manpages" >&5
-+echo "$as_me:2868: checking if you want to install manpages" >&5
- echo $ECHO_N "checking if you want to install manpages... $ECHO_C" >&6
-
- # Check whether --with-manpages or --without-manpages was given.
-@@ -3155,10 +2875,10 @@
- else
- cf_with_manpages=yes
- fi;
--echo "$as_me:3158: result: $cf_with_manpages" >&5
-+echo "$as_me:2878: result: $cf_with_manpages" >&5
- echo "${ECHO_T}$cf_with_manpages" >&6
-
--echo "$as_me:3161: checking if you want to build programs such as tic" >&5
-+echo "$as_me:2881: checking if you want to build programs such as tic" >&5
- echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
-
- # Check whether --with-progs or --without-progs was given.
-@@ -3168,10 +2888,10 @@
- else
- cf_with_progs=yes
- fi;
--echo "$as_me:3171: result: $cf_with_progs" >&5
-+echo "$as_me:2891: result: $cf_with_progs" >&5
- echo "${ECHO_T}$cf_with_progs" >&6
-
--echo "$as_me:3174: checking if you want to build test-programs" >&5
-+echo "$as_me:2894: checking if you want to build test-programs" >&5
- echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
-
- # Check whether --with-tests or --without-tests was given.
-@@ -3181,10 +2901,10 @@
- else
- cf_with_tests=yes
- fi;
--echo "$as_me:3184: result: $cf_with_tests" >&5
-+echo "$as_me:2904: result: $cf_with_tests" >&5
- echo "${ECHO_T}$cf_with_tests" >&6
-
--echo "$as_me:3187: checking if you wish to install curses.h" >&5
-+echo "$as_me:2907: checking if you wish to install curses.h" >&5
- echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
-
- # Check whether --with-curses-h or --without-curses-h was given.
-@@ -3194,7 +2914,7 @@
- else
- with_curses_h=yes
- fi;
--echo "$as_me:3197: result: $with_curses_h" >&5
-+echo "$as_me:2917: result: $with_curses_h" >&5
- echo "${ECHO_T}$with_curses_h" >&6
-
- modules_to_build="ncurses"
-@@ -3220,7 +2940,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:3223: checking for $ac_word" >&5
-+echo "$as_me:2943: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3235,7 +2955,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AWK="$ac_prog"
--echo "$as_me:3238: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2958: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3243,21 +2963,21 @@
- fi
- AWK=$ac_cv_prog_AWK
- if test -n "$AWK"; then
-- echo "$as_me:3246: result: $AWK" >&5
-+ echo "$as_me:2966: result: $AWK" >&5
- echo "${ECHO_T}$AWK" >&6
- else
-- echo "$as_me:3249: result: no" >&5
-+ echo "$as_me:2969: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- test -n "$AWK" && break
- done
-
--test -z "$AWK" && { { echo "$as_me:3256: error: No awk program found" >&5
-+test -z "$AWK" && { { echo "$as_me:2976: error: No awk program found" >&5
- echo "$as_me: error: No awk program found" >&2;}
- { (exit 1); exit 1; }; }
-
--echo "$as_me:3260: checking for egrep" >&5
-+echo "$as_me:2980: checking for egrep" >&5
- echo $ECHO_N "checking for egrep... $ECHO_C" >&6
- if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3267,11 +2987,11 @@
- else ac_cv_prog_egrep='egrep'
- fi
- fi
--echo "$as_me:3270: result: $ac_cv_prog_egrep" >&5
-+echo "$as_me:2990: result: $ac_cv_prog_egrep" >&5
- echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
--test -z "$EGREP" && { { echo "$as_me:3274: error: No egrep program found" >&5
-+test -z "$EGREP" && { { echo "$as_me:2994: error: No egrep program found" >&5
- echo "$as_me: error: No egrep program found" >&2;}
- { (exit 1); exit 1; }; }
-
-@@ -3287,7 +3007,7 @@
- # AFS /usr/afsws/bin/install, which mishandles nonexistent args
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:3290: checking for a BSD compatible install" >&5
-+echo "$as_me:3010: checking for a BSD compatible install" >&5
- echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
-@@ -3336,7 +3056,7 @@
- INSTALL=$ac_install_sh
- fi
- fi
--echo "$as_me:3339: result: $INSTALL" >&5
-+echo "$as_me:3059: result: $INSTALL" >&5
- echo "${ECHO_T}$INSTALL" >&6
-
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-@@ -3361,7 +3081,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:3364: checking for $ac_word" >&5
-+echo "$as_me:3084: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_LINT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3376,7 +3096,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_LINT="$ac_prog"
--echo "$as_me:3379: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3099: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3384,28 +3104,28 @@
- fi
- LINT=$ac_cv_prog_LINT
- if test -n "$LINT"; then
-- echo "$as_me:3387: result: $LINT" >&5
-+ echo "$as_me:3107: result: $LINT" >&5
- echo "${ECHO_T}$LINT" >&6
- else
-- echo "$as_me:3390: result: no" >&5
-+ echo "$as_me:3110: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- test -n "$LINT" && break
- done
-
--echo "$as_me:3397: checking whether ln -s works" >&5
-+echo "$as_me:3117: checking whether ln -s works" >&5
- echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
- LN_S=$as_ln_s
- if test "$LN_S" = "ln -s"; then
-- echo "$as_me:3401: result: yes" >&5
-+ echo "$as_me:3121: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-- echo "$as_me:3404: result: no, using $LN_S" >&5
-+ echo "$as_me:3124: result: no, using $LN_S" >&5
- echo "${ECHO_T}no, using $LN_S" >&6
- fi
-
--echo "$as_me:3408: checking if $LN_S -f options work" >&5
-+echo "$as_me:3128: checking if $LN_S -f options work" >&5
- echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6
-
- rm -f conf$$.src conf$$dst
-@@ -3417,12 +3137,12 @@
- cf_prog_ln_sf=no
- fi
- rm -f conf$$.dst conf$$src
--echo "$as_me:3420: result: $cf_prog_ln_sf" >&5
-+echo "$as_me:3140: result: $cf_prog_ln_sf" >&5
- echo "${ECHO_T}$cf_prog_ln_sf" >&6
-
- test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
-
--echo "$as_me:3425: checking for long file names" >&5
-+echo "$as_me:3145: checking for long file names" >&5
- echo $ECHO_N "checking for long file names... $ECHO_C" >&6
- if test "${ac_cv_sys_long_file_names+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3461,7 +3181,7 @@
- rm -rf $ac_xdir 2>/dev/null
- done
- fi
--echo "$as_me:3464: result: $ac_cv_sys_long_file_names" >&5
-+echo "$as_me:3184: result: $ac_cv_sys_long_file_names" >&5
- echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
- if test $ac_cv_sys_long_file_names = yes; then
-
-@@ -3473,7 +3193,7 @@
-
- # if we find pkg-config, check if we should install the ".pc" files.
-
--echo "$as_me:3476: checking if you want to use pkg-config" >&5
-+echo "$as_me:3196: checking if you want to use pkg-config" >&5
- echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
-
- # Check whether --with-pkg-config or --without-pkg-config was given.
-@@ -3483,7 +3203,7 @@
- else
- cf_pkg_config=yes
- fi;
--echo "$as_me:3486: result: $cf_pkg_config" >&5
-+echo "$as_me:3206: result: $cf_pkg_config" >&5
- echo "${ECHO_T}$cf_pkg_config" >&6
-
- case $cf_pkg_config in #(vi
-@@ -3491,10 +3211,11 @@
- PKG_CONFIG=none
- ;;
- yes) #(vi
-- if test -n "$ac_tool_prefix"; then
-+
-+if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
- set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
--echo "$as_me:3497: checking for $ac_word" >&5
-+echo "$as_me:3218: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3511,7 +3232,7 @@
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:3514: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:3235: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -3522,10 +3243,10 @@
- PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-
- if test -n "$PKG_CONFIG"; then
-- echo "$as_me:3525: result: $PKG_CONFIG" >&5
-+ echo "$as_me:3246: result: $PKG_CONFIG" >&5
- echo "${ECHO_T}$PKG_CONFIG" >&6
- else
-- echo "$as_me:3528: result: no" >&5
-+ echo "$as_me:3249: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3534,7 +3255,7 @@
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
--echo "$as_me:3537: checking for $ac_word" >&5
-+echo "$as_me:3258: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3551,7 +3272,7 @@
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:3554: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:3275: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -3563,10 +3284,10 @@
- ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-
- if test -n "$ac_pt_PKG_CONFIG"; then
-- echo "$as_me:3566: result: $ac_pt_PKG_CONFIG" >&5
-+ echo "$as_me:3287: result: $ac_pt_PKG_CONFIG" >&5
- echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
- else
-- echo "$as_me:3569: result: no" >&5
-+ echo "$as_me:3290: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3597,7 +3318,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval PKG_CONFIG="$PKG_CONFIG"
- case ".$PKG_CONFIG" in #(vi
- .NONE/*)
-@@ -3609,7 +3330,7 @@
- PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:3612: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
-+ { { echo "$as_me:3333: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
- echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-@@ -3617,16 +3338,51 @@
-
- fi
-
--if test "$PKG_CONFIG" != no ; then
-- echo "$as_me:3621: checking if we should install .pc files for $PKG_CONFIG" >&5
--echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
-+if test "$PKG_CONFIG" != none ; then
-+ echo "$as_me:3342: checking for $PKG_CONFIG library directory" >&5
-+echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6
-
-- # Leave this as something that can be overridden in the environment.
-- if test -z "$PKG_CONFIG_LIBDIR" ; then
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
-- fi
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
-- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
-+# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given.
-+if test "${with_pkg_config_libdir+set}" = set; then
-+ withval="$with_pkg_config_libdir"
-+ PKG_CONFIG_LIBDIR=$withval
-+else
-+ PKG_CONFIG_LIBDIR=yes
-+fi;
-+
-+ case x$PKG_CONFIG_LIBDIR in #(vi
-+ x/*) #(vi
-+ ;;
-+ xyes) #(vi
-+ # look for the library directory using the same prefix as the executable
-+ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`
-+ case x`(arch) 2>/dev/null` in #(vi
-+ *64) #(vi
-+ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
-+ do
-+ if test -d $cf_config/pkgconfig
-+ then
-+ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
-+ break
-+ fi
-+ done
-+ ;;
-+ *)
-+ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ ;;
-+ esac
-+
-+ echo "$as_me:3379: result: $PKG_CONFIG_LIBDIR" >&5
-+echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
-+fi
-+
-+if test "$PKG_CONFIG" != none ; then
-+ echo "$as_me:3384: checking if we should install .pc files for $PKG_CONFIG" >&5
-+echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
-
- # Check whether --enable-pc-files or --disable-pc-files was given.
- if test "${enable_pc_files+set}" = set; then
-@@ -3635,18 +3391,48 @@
- else
- enable_pc_files=no
- fi;
-- echo "$as_me:3638: result: $enable_pc_files" >&5
-+ echo "$as_me:3394: result: $enable_pc_files" >&5
- echo "${ECHO_T}$enable_pc_files" >&6
-- else
-- echo "$as_me:3641: result: no" >&5
--echo "${ECHO_T}no" >&6
-- { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
--echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
-- enable_pc_files=no
-+ if test "$enable_pc_files" != no
-+ then
-+
-+if test "x$prefix" != xNONE; then
-+ cf_path_syntax="$prefix"
-+else
-+ cf_path_syntax="$ac_default_prefix"
-+fi
-+
-+case ".$PKG_CONFIG_LIBDIR" in #(vi
-+.\$\(*\)*|.\'*\'*) #(vi
-+ ;;
-+..|./*|.\\*) #(vi
-+ ;;
-+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-+ ;;
-+.\${*prefix}*|.\${*dir}*) #(vi
-+ eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR"
-+ case ".$PKG_CONFIG_LIBDIR" in #(vi
-+ .NONE/*)
-+ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+ esac
-+ ;; #(vi
-+.no|.NONE/*)
-+ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+*)
-+ { { echo "$as_me:3424: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5
-+echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;}
-+ { (exit 1); exit 1; }; }
-+ ;;
-+esac
-+
- fi
-+else
-+ enable_pc_files=no
- fi
-
--echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5
-+echo "$as_me:3435: checking if we should assume mixed-case filenames" >&5
- echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
-
- # Check whether --enable-mixed-case or --disable-mixed-case was given.
-@@ -3656,11 +3442,11 @@
- else
- enable_mixedcase=auto
- fi;
--echo "$as_me:3659: result: $enable_mixedcase" >&5
-+echo "$as_me:3445: result: $enable_mixedcase" >&5
- echo "${ECHO_T}$enable_mixedcase" >&6
- if test "$enable_mixedcase" = "auto" ; then
-
--echo "$as_me:3663: checking if filesystem supports mixed-case filenames" >&5
-+echo "$as_me:3449: 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
-@@ -3687,16 +3473,18 @@
- fi
-
- fi
--echo "$as_me:3690: result: $cf_cv_mixedcase" >&5
-+echo "$as_me:3476: result: $cf_cv_mixedcase" >&5
- echo "${ECHO_T}$cf_cv_mixedcase" >&6
--test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_mixedcase" = yes &&
-+cat >>confdefs.h <<\EOF
- #define MIXEDCASE_FILENAMES 1
- EOF
-
- else
- cf_cv_mixedcase=$enable_mixedcase
-- if test "$enable_mixedcase" = "yes" ; then
-- cat >>confdefs.h <<\EOF
-+ if test "x$enable_mixedcase" = "xyes" ; then
-+
-+cat >>confdefs.h <<\EOF
- #define MIXEDCASE_FILENAMES 1
- EOF
-
-@@ -3704,7 +3492,7 @@
- fi
-
- # do this after mixed-case option (tags/TAGS is not as important as tic).
--echo "$as_me:3707: checking whether ${MAKE-make} sets \${MAKE}" >&5
-+echo "$as_me:3495: checking whether ${MAKE-make} sets \${MAKE}" >&5
- echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
- set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
- if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-@@ -3724,11 +3512,11 @@
- rm -f conftest.make
- fi
- if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-- echo "$as_me:3727: result: yes" >&5
-+ echo "$as_me:3515: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- SET_MAKE=
- else
-- echo "$as_me:3731: result: no" >&5
-+ echo "$as_me:3519: result: no" >&5
- echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
- fi
-@@ -3737,7 +3525,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:3740: checking for $ac_word" >&5
-+echo "$as_me:3528: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CTAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3752,7 +3540,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CTAGS="$ac_prog"
--echo "$as_me:3755: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3543: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3760,10 +3548,10 @@
- fi
- CTAGS=$ac_cv_prog_CTAGS
- if test -n "$CTAGS"; then
-- echo "$as_me:3763: result: $CTAGS" >&5
-+ echo "$as_me:3551: result: $CTAGS" >&5
- echo "${ECHO_T}$CTAGS" >&6
- else
-- echo "$as_me:3766: result: no" >&5
-+ echo "$as_me:3554: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3774,7 +3562,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:3777: checking for $ac_word" >&5
-+echo "$as_me:3565: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ETAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3789,7 +3577,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ETAGS="$ac_prog"
--echo "$as_me:3792: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3580: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3797,10 +3585,10 @@
- fi
- ETAGS=$ac_cv_prog_ETAGS
- if test -n "$ETAGS"; then
-- echo "$as_me:3800: result: $ETAGS" >&5
-+ echo "$as_me:3588: result: $ETAGS" >&5
- echo "${ECHO_T}$ETAGS" >&6
- else
-- echo "$as_me:3803: result: no" >&5
-+ echo "$as_me:3591: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3809,7 +3597,7 @@
-
- # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
- set dummy ${CTAGS:-ctags}; ac_word=$2
--echo "$as_me:3812: checking for $ac_word" >&5
-+echo "$as_me:3600: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3824,7 +3612,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_LOWER_TAGS="yes"
--echo "$as_me:3827: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3615: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3833,17 +3621,17 @@
- fi
- MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
- if test -n "$MAKE_LOWER_TAGS"; then
-- echo "$as_me:3836: result: $MAKE_LOWER_TAGS" >&5
-+ echo "$as_me:3624: result: $MAKE_LOWER_TAGS" >&5
- echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
- else
-- echo "$as_me:3839: result: no" >&5
-+ echo "$as_me:3627: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- if test "$cf_cv_mixedcase" = yes ; then
- # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
- set dummy ${ETAGS:-etags}; ac_word=$2
--echo "$as_me:3846: checking for $ac_word" >&5
-+echo "$as_me:3634: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3858,7 +3646,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_UPPER_TAGS="yes"
--echo "$as_me:3861: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3649: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3867,10 +3655,10 @@
- fi
- MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
- if test -n "$MAKE_UPPER_TAGS"; then
-- echo "$as_me:3870: result: $MAKE_UPPER_TAGS" >&5
-+ echo "$as_me:3658: result: $MAKE_UPPER_TAGS" >&5
- echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
- else
-- echo "$as_me:3873: result: no" >&5
-+ echo "$as_me:3661: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3890,7 +3678,7 @@
- MAKE_LOWER_TAGS="#"
- fi
-
--echo "$as_me:3893: checking for makeflags variable" >&5
-+echo "$as_me:3681: checking for makeflags variable" >&5
- echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
- if test "${cf_cv_makeflags+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3924,13 +3712,13 @@
- rm -f cf_makeflags.tmp
-
- fi
--echo "$as_me:3927: result: $cf_cv_makeflags" >&5
-+echo "$as_me:3715: result: $cf_cv_makeflags" >&5
- echo "${ECHO_T}$cf_cv_makeflags" >&6
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ranlib; ac_word=$2
--echo "$as_me:3933: checking for $ac_word" >&5
-+echo "$as_me:3721: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3945,7 +3733,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
--echo "$as_me:3948: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3736: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3953,10 +3741,10 @@
- fi
- RANLIB=$ac_cv_prog_RANLIB
- if test -n "$RANLIB"; then
-- echo "$as_me:3956: result: $RANLIB" >&5
-+ echo "$as_me:3744: result: $RANLIB" >&5
- echo "${ECHO_T}$RANLIB" >&6
- else
-- echo "$as_me:3959: result: no" >&5
-+ echo "$as_me:3747: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -3965,7 +3753,7 @@
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
- set dummy ranlib; ac_word=$2
--echo "$as_me:3968: checking for $ac_word" >&5
-+echo "$as_me:3756: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3980,7 +3768,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_RANLIB="ranlib"
--echo "$as_me:3983: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3771: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -3989,10 +3777,10 @@
- fi
- ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
- if test -n "$ac_ct_RANLIB"; then
-- echo "$as_me:3992: result: $ac_ct_RANLIB" >&5
-+ echo "$as_me:3780: result: $ac_ct_RANLIB" >&5
- echo "${ECHO_T}$ac_ct_RANLIB" >&6
- else
-- echo "$as_me:3995: result: no" >&5
-+ echo "$as_me:3783: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4004,7 +3792,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ld; ac_word=$2
--echo "$as_me:4007: checking for $ac_word" >&5
-+echo "$as_me:3795: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4019,7 +3807,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_LD="${ac_tool_prefix}ld"
--echo "$as_me:4022: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3810: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4027,10 +3815,10 @@
- fi
- LD=$ac_cv_prog_LD
- if test -n "$LD"; then
-- echo "$as_me:4030: result: $LD" >&5
-+ echo "$as_me:3818: result: $LD" >&5
- echo "${ECHO_T}$LD" >&6
- else
-- echo "$as_me:4033: result: no" >&5
-+ echo "$as_me:3821: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4039,7 +3827,7 @@
- ac_ct_LD=$LD
- # Extract the first word of "ld", so it can be a program name with args.
- set dummy ld; ac_word=$2
--echo "$as_me:4042: checking for $ac_word" >&5
-+echo "$as_me:3830: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4054,7 +3842,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_LD="ld"
--echo "$as_me:4057: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3845: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4063,10 +3851,10 @@
- fi
- ac_ct_LD=$ac_cv_prog_ac_ct_LD
- if test -n "$ac_ct_LD"; then
-- echo "$as_me:4066: result: $ac_ct_LD" >&5
-+ echo "$as_me:3854: result: $ac_ct_LD" >&5
- echo "${ECHO_T}$ac_ct_LD" >&6
- else
-- echo "$as_me:4069: result: no" >&5
-+ echo "$as_me:3857: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4078,7 +3866,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
--echo "$as_me:4081: checking for $ac_word" >&5
-+echo "$as_me:3869: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4093,7 +3881,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AR="${ac_tool_prefix}ar"
--echo "$as_me:4096: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3884: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4101,10 +3889,10 @@
- fi
- AR=$ac_cv_prog_AR
- if test -n "$AR"; then
-- echo "$as_me:4104: result: $AR" >&5
-+ echo "$as_me:3892: result: $AR" >&5
- echo "${ECHO_T}$AR" >&6
- else
-- echo "$as_me:4107: result: no" >&5
-+ echo "$as_me:3895: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4113,7 +3901,7 @@
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
- set dummy ar; ac_word=$2
--echo "$as_me:4116: checking for $ac_word" >&5
-+echo "$as_me:3904: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4128,7 +3916,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_AR="ar"
--echo "$as_me:4131: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3919: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4137,10 +3925,10 @@
- fi
- ac_ct_AR=$ac_cv_prog_ac_ct_AR
- if test -n "$ac_ct_AR"; then
-- echo "$as_me:4140: result: $ac_ct_AR" >&5
-+ echo "$as_me:3928: result: $ac_ct_AR" >&5
- echo "${ECHO_T}$ac_ct_AR" >&6
- else
-- echo "$as_me:4143: result: no" >&5
-+ echo "$as_me:3931: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4152,7 +3940,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
--echo "$as_me:4155: checking for $ac_word" >&5
-+echo "$as_me:3943: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4167,7 +3955,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AR="${ac_tool_prefix}ar"
--echo "$as_me:4170: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3958: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4175,10 +3963,10 @@
- fi
- AR=$ac_cv_prog_AR
- if test -n "$AR"; then
-- echo "$as_me:4178: result: $AR" >&5
-+ echo "$as_me:3966: result: $AR" >&5
- echo "${ECHO_T}$AR" >&6
- else
-- echo "$as_me:4181: result: no" >&5
-+ echo "$as_me:3969: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4187,7 +3975,7 @@
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
- set dummy ar; ac_word=$2
--echo "$as_me:4190: checking for $ac_word" >&5
-+echo "$as_me:3978: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4202,7 +3990,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_AR="ar"
--echo "$as_me:4205: found $ac_dir/$ac_word" >&5
-+echo "$as_me:3993: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4211,10 +3999,10 @@
- fi
- ac_ct_AR=$ac_cv_prog_ac_ct_AR
- if test -n "$ac_ct_AR"; then
-- echo "$as_me:4214: result: $ac_ct_AR" >&5
-+ echo "$as_me:4002: result: $ac_ct_AR" >&5
- echo "${ECHO_T}$ac_ct_AR" >&6
- else
-- echo "$as_me:4217: result: no" >&5
-+ echo "$as_me:4005: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4223,7 +4011,7 @@
- AR="$ac_cv_prog_AR"
- fi
-
--echo "$as_me:4226: checking for options to update archives" >&5
-+echo "$as_me:4014: checking for options to update archives" >&5
- echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
- if test "${cf_cv_ar_flags+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4246,13 +4034,13 @@
- rm -f conftest.a
-
- cat >conftest.$ac_ext <<EOF
--#line 4249 "configure"
-+#line 4037 "configure"
- int testdata[3] = { 123, 456, 789 };
- EOF
-- if { (eval echo "$as_me:4252: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:4040: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4255: \$? = $ac_status" >&5
-+ echo "$as_me:4043: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
- $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
-@@ -4263,7 +4051,7 @@
- else
- test -n "$verbose" && echo " cannot compile test-program" 1>&6
-
--echo "${as_me:-configure}:4266: testing cannot compile test-program ..." 1>&5
-+echo "${as_me:-configure}:4054: testing cannot compile test-program ..." 1>&5
-
- break
- fi
-@@ -4271,7 +4059,7 @@
- rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
-
- fi
--echo "$as_me:4274: result: $cf_cv_ar_flags" >&5
-+echo "$as_me:4062: result: $cf_cv_ar_flags" >&5
- echo "${ECHO_T}$cf_cv_ar_flags" >&6
-
- if test -n "$ARFLAGS" ; then
-@@ -4282,20 +4070,20 @@
- ARFLAGS=$cf_cv_ar_flags
- fi
-
--echo "$as_me:4285: checking if you have specified an install-prefix" >&5
-+echo "$as_me:4073: checking if you have specified an install-prefix" >&5
- echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
-
- # Check whether --with-install-prefix or --without-install-prefix was given.
- if test "${with_install_prefix+set}" = set; then
- withval="$with_install_prefix"
-- case "$withval" in #(vi
-- yes|no) #(vi
-+ case "x$withval" in #(vi
-+ xyes|xno) #(vi
- ;;
- *) DESTDIR="$withval"
- ;;
- esac
- fi;
--echo "$as_me:4298: result: $DESTDIR" >&5
-+echo "$as_me:4086: result: $DESTDIR" >&5
- echo "${ECHO_T}$DESTDIR" >&6
-
- ###############################################################################
-@@ -4323,7 +4111,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:4326: checking for $ac_word" >&5
-+echo "$as_me:4114: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_BUILD_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4338,7 +4126,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_BUILD_CC="$ac_prog"
--echo "$as_me:4341: found $ac_dir/$ac_word" >&5
-+echo "$as_me:4129: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -4346,10 +4134,10 @@
- fi
- BUILD_CC=$ac_cv_prog_BUILD_CC
- if test -n "$BUILD_CC"; then
-- echo "$as_me:4349: result: $BUILD_CC" >&5
-+ echo "$as_me:4137: result: $BUILD_CC" >&5
- echo "${ECHO_T}$BUILD_CC" >&6
- else
-- echo "$as_me:4352: result: no" >&5
-+ echo "$as_me:4140: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -4357,12 +4145,12 @@
- done
-
- fi;
-- echo "$as_me:4360: checking for native build C compiler" >&5
-+ echo "$as_me:4148: checking for native build C compiler" >&5
- echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
-- echo "$as_me:4362: result: $BUILD_CC" >&5
-+ echo "$as_me:4150: result: $BUILD_CC" >&5
- echo "${ECHO_T}$BUILD_CC" >&6
-
-- echo "$as_me:4365: checking for native build C preprocessor" >&5
-+ echo "$as_me:4153: checking for native build C preprocessor" >&5
- echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
-
- # Check whether --with-build-cpp or --without-build-cpp was given.
-@@ -4372,10 +4160,10 @@
- else
- BUILD_CPP='${BUILD_CC} -E'
- fi;
-- echo "$as_me:4375: result: $BUILD_CPP" >&5
-+ echo "$as_me:4163: result: $BUILD_CPP" >&5
- echo "${ECHO_T}$BUILD_CPP" >&6
-
-- echo "$as_me:4378: checking for native build C flags" >&5
-+ echo "$as_me:4166: checking for native build C flags" >&5
- echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
-
- # Check whether --with-build-cflags or --without-build-cflags was given.
-@@ -4383,10 +4171,10 @@
- withval="$with_build_cflags"
- BUILD_CFLAGS="$withval"
- fi;
-- echo "$as_me:4386: result: $BUILD_CFLAGS" >&5
-+ echo "$as_me:4174: result: $BUILD_CFLAGS" >&5
- echo "${ECHO_T}$BUILD_CFLAGS" >&6
-
-- echo "$as_me:4389: checking for native build C preprocessor-flags" >&5
-+ echo "$as_me:4177: checking for native build C preprocessor-flags" >&5
- echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
-
- # Check whether --with-build-cppflags or --without-build-cppflags was given.
-@@ -4394,10 +4182,10 @@
- withval="$with_build_cppflags"
- BUILD_CPPFLAGS="$withval"
- fi;
-- echo "$as_me:4397: result: $BUILD_CPPFLAGS" >&5
-+ echo "$as_me:4185: result: $BUILD_CPPFLAGS" >&5
- echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
-
-- echo "$as_me:4400: checking for native build linker-flags" >&5
-+ echo "$as_me:4188: checking for native build linker-flags" >&5
- echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
-
- # Check whether --with-build-ldflags or --without-build-ldflags was given.
-@@ -4405,10 +4193,10 @@
- withval="$with_build_ldflags"
- BUILD_LDFLAGS="$withval"
- fi;
-- echo "$as_me:4408: result: $BUILD_LDFLAGS" >&5
-+ echo "$as_me:4196: result: $BUILD_LDFLAGS" >&5
- echo "${ECHO_T}$BUILD_LDFLAGS" >&6
-
-- echo "$as_me:4411: checking for native build linker-libraries" >&5
-+ echo "$as_me:4199: checking for native build linker-libraries" >&5
- echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
-
- # Check whether --with-build-libs or --without-build-libs was given.
-@@ -4416,7 +4204,7 @@
- withval="$with_build_libs"
- BUILD_LIBS="$withval"
- fi;
-- echo "$as_me:4419: result: $BUILD_LIBS" >&5
-+ echo "$as_me:4207: result: $BUILD_LIBS" >&5
- echo "${ECHO_T}$BUILD_LIBS" >&6
-
- # this assumes we're on Unix.
-@@ -4426,7 +4214,7 @@
- : ${BUILD_CC:='${CC}'}
-
- if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
-- { { echo "$as_me:4429: error: Cross-build requires two compilers.
-+ { { echo "$as_me:4217: error: Cross-build requires two compilers.
- Use --with-build-cc to specify the native compiler." >&5
- echo "$as_me: error: Cross-build requires two compilers.
- Use --with-build-cc to specify the native compiler." >&2;}
-@@ -4451,7 +4239,7 @@
- ### shared, for example.
- cf_list_models=""
-
--echo "$as_me:4454: checking if libtool -version-number should be used" >&5
-+echo "$as_me:4242: checking if libtool -version-number should be used" >&5
- echo $ECHO_N "checking if libtool -version-number should be used... $ECHO_C" >&6
-
- # Check whether --enable-libtool-version or --disable-libtool-version was given.
-@@ -4468,7 +4256,7 @@
- cf_libtool_version=yes
-
- fi;
--echo "$as_me:4471: result: $cf_libtool_version" >&5
-+echo "$as_me:4259: result: $cf_libtool_version" >&5
- echo "${ECHO_T}$cf_libtool_version" >&6
-
- if test "$cf_libtool_version" = yes ; then
-@@ -4493,7 +4281,7 @@
- LIB_INSTALL=
- LIB_UNINSTALL=
-
--echo "$as_me:4496: checking if you want to build libraries with libtool" >&5
-+echo "$as_me:4284: checking if you want to build libraries with libtool" >&5
- echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
-
- # Check whether --with-libtool or --without-libtool was given.
-@@ -4503,7 +4291,7 @@
- else
- with_libtool=no
- fi;
--echo "$as_me:4506: result: $with_libtool" >&5
-+echo "$as_me:4294: result: $with_libtool" >&5
- echo "${ECHO_T}$with_libtool" >&6
- if test "$with_libtool" != "no"; then
-
-@@ -4522,7 +4310,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval with_libtool="$with_libtool"
- case ".$with_libtool" in #(vi
- .NONE/*)
-@@ -4534,7 +4322,7 @@
- with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:4537: error: expected a pathname, not \"$with_libtool\"" >&5
-+ { { echo "$as_me:4325: error: expected a pathname, not \"$with_libtool\"" >&5
- echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-@@ -4542,50 +4330,199 @@
-
- LIBTOOL=$with_libtool
- else
-- # Extract the first word of "libtool", so it can be a program name with args.
--set dummy libtool; ac_word=$2
--echo "$as_me:4547: checking for $ac_word" >&5
-+ if test -n "$ac_tool_prefix"; then
-+ for ac_prog in libtool glibtool
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:4338: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_LIBTOOL+set}" = set; then
-+if test "${ac_cv_prog_LIBTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- case $LIBTOOL in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_LIBTOOL="$LIBTOOL" # Let the user override the test with a path.
-- ;;
-- *)
-+ if test -n "$LIBTOOL"; then
-+ ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test.
-+else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
-- echo "$as_me:4564: found $ac_dir/$ac_word" >&5
-- break
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog"
-+echo "$as_me:4353: found $ac_dir/$ac_word" >&5
-+break
-+done
-+
-+fi
-+fi
-+LIBTOOL=$ac_cv_prog_LIBTOOL
-+if test -n "$LIBTOOL"; then
-+ echo "$as_me:4361: result: $LIBTOOL" >&5
-+echo "${ECHO_T}$LIBTOOL" >&6
-+else
-+ echo "$as_me:4364: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ test -n "$LIBTOOL" && break
-+ done
- fi
-+if test -z "$LIBTOOL"; then
-+ ac_ct_LIBTOOL=$LIBTOOL
-+ for ac_prog in libtool glibtool
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:4377: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_LIBTOOL"; then
-+ ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_LIBTOOL="$ac_prog"
-+echo "$as_me:4392: found $ac_dir/$ac_word" >&5
-+break
- done
-
-- ;;
--esac
- fi
--LIBTOOL=$ac_cv_path_LIBTOOL
-+fi
-+ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL
-+if test -n "$ac_ct_LIBTOOL"; then
-+ echo "$as_me:4400: result: $ac_ct_LIBTOOL" >&5
-+echo "${ECHO_T}$ac_ct_LIBTOOL" >&6
-+else
-+ echo "$as_me:4403: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ test -n "$ac_ct_LIBTOOL" && break
-+done
-+test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none"
-+
-+ LIBTOOL=$ac_ct_LIBTOOL
-+fi
-+
-+if test -n "$LIBTOOL" && test "$LIBTOOL" != none
-+then
-+ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
-+else
-+ cf_cv_libtool_version=
-+fi
-+test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
-+
-+ if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
-+ then
-+
-+unset ac_cv_prog_ac_ct_LIBTOOL
-+unset ac_ct_LIBTOOL
-+unset LIBTOOL
-+
-+ if test -n "$ac_tool_prefix"; then
-+ for ac_prog in glibtool
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:4434: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_LIBTOOL+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$LIBTOOL"; then
-+ ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog"
-+echo "$as_me:4449: found $ac_dir/$ac_word" >&5
-+break
-+done
-
-+fi
-+fi
-+LIBTOOL=$ac_cv_prog_LIBTOOL
- if test -n "$LIBTOOL"; then
-- echo "$as_me:4575: result: $LIBTOOL" >&5
-+ echo "$as_me:4457: result: $LIBTOOL" >&5
- echo "${ECHO_T}$LIBTOOL" >&6
- else
-- echo "$as_me:4578: result: no" >&5
-+ echo "$as_me:4460: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-+ test -n "$LIBTOOL" && break
-+ done
-+fi
-+if test -z "$LIBTOOL"; then
-+ ac_ct_LIBTOOL=$LIBTOOL
-+ for ac_prog in glibtool
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:4473: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_LIBTOOL"; then
-+ ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_LIBTOOL="$ac_prog"
-+echo "$as_me:4488: found $ac_dir/$ac_word" >&5
-+break
-+done
-+
-+fi
-+fi
-+ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL
-+if test -n "$ac_ct_LIBTOOL"; then
-+ echo "$as_me:4496: result: $ac_ct_LIBTOOL" >&5
-+echo "${ECHO_T}$ac_ct_LIBTOOL" >&6
-+else
-+ echo "$as_me:4499: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ test -n "$ac_ct_LIBTOOL" && break
-+done
-+test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none"
-+
-+ LIBTOOL=$ac_ct_LIBTOOL
-+fi
-+
-+if test -n "$LIBTOOL" && test "$LIBTOOL" != none
-+then
-+ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
-+else
-+ cf_cv_libtool_version=
-+fi
-+test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
-+
-+ fi
- fi
- if test -z "$LIBTOOL" ; then
-- { { echo "$as_me:4584: error: Cannot find libtool" >&5
-+ { { echo "$as_me:4521: error: Cannot find libtool" >&5
- echo "$as_me: error: Cannot find libtool" >&2;}
- { (exit 1); exit 1; }; }
- fi
-- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
-+ LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
- LIB_OBJECT='${OBJECTS:.o=.lo}'
- LIB_SUFFIX=.la
- LIB_CLEAN='${LIBTOOL} --mode=clean'
-@@ -4595,26 +4532,36 @@
- LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
- LIB_PREP=:
-
-- # Show the version of libtool
-- echo "$as_me:4599: checking version of libtool" >&5
--echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
--
-- # Save the version in a cache variable - this is not entirely a good
-- # thing, but the version string from libtool is very ugly, and for
-- # bug reports it might be useful to have the original string. "("
-+if test -n "$LIBTOOL" && test "$LIBTOOL" != none
-+then
-+ echo "$as_me:4537: checking version of $LIBTOOL" >&5
-+echo $ECHO_N "checking version of $LIBTOOL... $ECHO_C" >&6
-+
-+if test -n "$LIBTOOL" && test "$LIBTOOL" != none
-+then
- cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
-- echo "$as_me:4606: result: $cf_cv_libtool_version" >&5
-+else
-+ cf_cv_libtool_version=
-+fi
-+test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
-+
-+ echo "$as_me:4548: result: $cf_cv_libtool_version" >&5
- echo "${ECHO_T}$cf_cv_libtool_version" >&6
- if test -z "$cf_cv_libtool_version" ; then
-- { { echo "$as_me:4609: error: This is not GNU libtool" >&5
-+ { { echo "$as_me:4551: error: This is not GNU libtool" >&5
- echo "$as_me: error: This is not GNU libtool" >&2;}
- { (exit 1); exit 1; }; }
- fi
-+else
-+ { { echo "$as_me:4556: error: GNU libtool has not been found" >&5
-+echo "$as_me: error: GNU libtool has not been found" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-
- # special hack to add -no-undefined (which libtool should do for itself)
- LT_UNDEF=
- case "$cf_cv_system_name" in #(vi
-- cygwin*|mingw32*|uwin*|aix[456]) #(vi
-+ cygwin*|mingw32*|uwin*|aix[4-7]) #(vi
- LT_UNDEF=-no-undefined
- ;;
- esac
-@@ -4642,7 +4589,7 @@
-
- else
-
--echo "$as_me:4645: checking if you want to build shared libraries" >&5
-+echo "$as_me:4592: checking if you want to build shared libraries" >&5
- echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
-
- # Check whether --with-shared or --without-shared was given.
-@@ -4652,11 +4599,11 @@
- else
- with_shared=no
- fi;
--echo "$as_me:4655: result: $with_shared" >&5
-+echo "$as_me:4602: result: $with_shared" >&5
- echo "${ECHO_T}$with_shared" >&6
--test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-+test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared"
-
--echo "$as_me:4659: checking if you want to build static libraries" >&5
-+echo "$as_me:4606: checking if you want to build static libraries" >&5
- echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
-
- # Check whether --with-normal or --without-normal was given.
-@@ -4666,11 +4613,11 @@
- else
- with_normal=yes
- fi;
--echo "$as_me:4669: result: $with_normal" >&5
-+echo "$as_me:4616: result: $with_normal" >&5
- echo "${ECHO_T}$with_normal" >&6
--test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
-+test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal"
-
--echo "$as_me:4673: checking if you want to build debug libraries" >&5
-+echo "$as_me:4620: checking if you want to build debug libraries" >&5
- echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
-
- # Check whether --with-debug or --without-debug was given.
-@@ -4680,11 +4627,11 @@
- else
- with_debug=yes
- fi;
--echo "$as_me:4683: result: $with_debug" >&5
-+echo "$as_me:4630: result: $with_debug" >&5
- echo "${ECHO_T}$with_debug" >&6
--test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
-+test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug"
-
--echo "$as_me:4687: checking if you want to build profiling libraries" >&5
-+echo "$as_me:4634: checking if you want to build profiling libraries" >&5
- echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
-
- # Check whether --with-profile or --without-profile was given.
-@@ -4694,27 +4641,44 @@
- else
- with_profile=no
- fi;
--echo "$as_me:4697: result: $with_profile" >&5
-+echo "$as_me:4644: result: $with_profile" >&5
- echo "${ECHO_T}$with_profile" >&6
--test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
-+test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile"
-+
-+fi
-+
-+if test "X$cf_with_cxx_binding" != Xno; then
-+if test "x$with_shared" = "xyes"; then
-+echo "$as_me:4652: checking if you want to build C++ shared libraries" >&5
-+echo $ECHO_N "checking if you want to build C++ shared libraries... $ECHO_C" >&6
-
-+# Check whether --with-cxx-shared or --without-cxx-shared was given.
-+if test "${with_cxx_shared+set}" = set; then
-+ withval="$with_cxx_shared"
-+ with_shared_cxx=$withval
-+else
-+ with_shared_cxx=no
-+fi;
-+echo "$as_me:4662: result: $with_shared_cxx" >&5
-+echo "${ECHO_T}$with_shared_cxx" >&6
-+fi
- fi
-
- ###############################################################################
-
--echo "$as_me:4705: checking for specified models" >&5
-+echo "$as_me:4669: checking for specified models" >&5
- echo $ECHO_N "checking for specified models... $ECHO_C" >&6
- test -z "$cf_list_models" && cf_list_models=normal
- test "$with_libtool" != "no" && cf_list_models=libtool
--echo "$as_me:4709: result: $cf_list_models" >&5
-+echo "$as_me:4673: result: $cf_list_models" >&5
- echo "${ECHO_T}$cf_list_models" >&6
-
- ### Use the first model as the default, and save its suffix for use in building
- ### up test-applications.
--echo "$as_me:4714: checking for default model" >&5
-+echo "$as_me:4678: checking for default model" >&5
- echo $ECHO_N "checking for default model... $ECHO_C" >&6
- DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
--echo "$as_me:4717: result: $DFT_LWR_MODEL" >&5
-+echo "$as_me:4681: result: $DFT_LWR_MODEL" >&5
- echo "${ECHO_T}$DFT_LWR_MODEL" >&6
-
- DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-@@ -4728,6 +4692,22 @@
- LIB_DIR=../lib
- LIB_2ND=../../lib
-
-+echo "$as_me:4695: checking if you want to have a library-prefix" >&5
-+echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6
-+
-+# Check whether --with-lib-prefix or --without-lib-prefix was given.
-+if test "${with_lib_prefix+set}" = set; then
-+ withval="$with_lib_prefix"
-+ with_lib_prefix=$withval
-+else
-+ with_lib_prefix=auto
-+fi;
-+echo "$as_me:4705: result: $with_lib_prefix" >&5
-+echo "${ECHO_T}$with_lib_prefix" >&6
-+
-+if test $with_lib_prefix = auto
-+then
-+
- case $cf_cv_system_name in #(vi
- OS/2*|os2*) #(vi
- LIB_PREFIX=''
-@@ -4737,13 +4717,28 @@
- esac
- cf_prefix=$LIB_PREFIX
-
--LIB_PREFIX=$cf_prefix
-+elif test $with_lib_prefix = no
-+then
-+ LIB_PREFIX=
-+else
-+ LIB_PREFIX=$with_lib_prefix
-+fi
-
- LIB_SUFFIX=
-
-+ echo "$as_me:4729: checking for PATH separator" >&5
-+echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6
-+ case $cf_cv_system_name in
-+ os2*) PATH_SEPARATOR=';' ;;
-+ *) ${PATH_SEPARATOR:=':'} ;;
-+ esac
-+
-+ echo "$as_me:4736: result: $PATH_SEPARATOR" >&5
-+echo "${ECHO_T}$PATH_SEPARATOR" >&6
-+
- ###############################################################################
-
--echo "$as_me:4746: checking if you want to build a separate terminfo library" >&5
-+echo "$as_me:4741: checking if you want to build a separate terminfo library" >&5
- echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
-
- # Check whether --with-termlib or --without-termlib was given.
-@@ -4753,10 +4748,10 @@
- else
- with_termlib=no
- fi;
--echo "$as_me:4756: result: $with_termlib" >&5
-+echo "$as_me:4751: result: $with_termlib" >&5
- echo "${ECHO_T}$with_termlib" >&6
-
--echo "$as_me:4759: checking if you want to build a separate tic library" >&5
-+echo "$as_me:4754: checking if you want to build a separate tic library" >&5
- echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
-
- # Check whether --with-ticlib or --without-ticlib was given.
-@@ -4766,13 +4761,13 @@
- else
- with_ticlib=no
- fi;
--echo "$as_me:4769: result: $with_ticlib" >&5
-+echo "$as_me:4764: result: $with_ticlib" >&5
- echo "${ECHO_T}$with_ticlib" >&6
-
- ### Checks for special libraries, must be done up-front.
- SHLIB_LIST=""
-
--echo "$as_me:4775: checking if you want to link with the GPM mouse library" >&5
-+echo "$as_me:4770: checking if you want to link with the GPM mouse library" >&5
- echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
-
- # Check whether --with-gpm or --without-gpm was given.
-@@ -4782,27 +4777,27 @@
- else
- with_gpm=maybe
- fi;
--echo "$as_me:4785: result: $with_gpm" >&5
-+echo "$as_me:4780: result: $with_gpm" >&5
- echo "${ECHO_T}$with_gpm" >&6
-
- if test "$with_gpm" != no ; then
-- echo "$as_me:4789: checking for gpm.h" >&5
-+ echo "$as_me:4784: checking for gpm.h" >&5
- echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
- if test "${ac_cv_header_gpm_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 4795 "configure"
-+#line 4790 "configure"
- #include "confdefs.h"
- #include <gpm.h>
- _ACEOF
--if { (eval echo "$as_me:4799: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:4794: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:4805: \$? = $ac_status" >&5
-+ echo "$as_me:4800: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -4821,25 +4816,25 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:4824: result: $ac_cv_header_gpm_h" >&5
-+echo "$as_me:4819: result: $ac_cv_header_gpm_h" >&5
- echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
- if test $ac_cv_header_gpm_h = yes; then
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_GPM_H 1
- EOF
-
- if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
- test -n "$verbose" && echo " assuming we really have GPM library" 1>&6
-
--echo "${as_me:-configure}:4835: testing assuming we really have GPM library ..." 1>&5
-+echo "${as_me:-configure}:4830: testing assuming we really have GPM library ..." 1>&5
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBGPM 1
- EOF
-
- else
-- echo "$as_me:4842: checking for Gpm_Open in -lgpm" >&5
-+ echo "$as_me:4837: checking for Gpm_Open in -lgpm" >&5
- echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4847,7 +4842,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4850 "configure"
-+#line 4845 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -4866,16 +4861,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4869: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:4864: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4872: \$? = $ac_status" >&5
-+ echo "$as_me:4867: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:4875: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4870: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4878: \$? = $ac_status" >&5
-+ echo "$as_me:4873: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_Gpm_Open=yes
- else
-@@ -4886,13 +4881,13 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:4889: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "$as_me:4884: result: $ac_cv_lib_gpm_Gpm_Open" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
- if test $ac_cv_lib_gpm_Gpm_Open = yes; then
- :
- else
-
-- { { echo "$as_me:4895: error: Cannot link with GPM library" >&5
-+ { { echo "$as_me:4890: error: Cannot link with GPM library" >&5
- echo "$as_me: error: Cannot link with GPM library" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -4902,7 +4897,7 @@
-
- else
-
-- test "$with_gpm" != maybe && { echo "$as_me:4905: WARNING: Cannot find GPM header" >&5
-+ test "$with_gpm" != maybe && { echo "$as_me:4900: WARNING: Cannot find GPM header" >&5
- echo "$as_me: WARNING: Cannot find GPM header" >&2;}
- with_gpm=no
-
-@@ -4911,7 +4906,7 @@
- fi
-
- if test "$with_gpm" != no ; then
-- echo "$as_me:4914: checking if you want to load GPM dynamically" >&5
-+ echo "$as_me:4909: checking if you want to load GPM dynamically" >&5
- echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
-
- # Check whether --with-dlsym or --without-dlsym was given.
-@@ -4921,18 +4916,18 @@
- else
- with_dlsym=yes
- fi;
-- echo "$as_me:4924: result: $with_dlsym" >&5
-+ echo "$as_me:4919: result: $with_dlsym" >&5
- echo "${ECHO_T}$with_dlsym" >&6
-- if test "$with_dlsym" = yes ; then
-+ if test "x$with_dlsym" = xyes ; then
-
- cf_have_dlsym=no
--echo "$as_me:4929: checking for dlsym" >&5
-+echo "$as_me:4924: checking for dlsym" >&5
- echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
- if test "${ac_cv_func_dlsym+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 4935 "configure"
-+#line 4930 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlsym (); below. */
-@@ -4955,7 +4950,7 @@
- #if defined (__stub_dlsym) || defined (__stub___dlsym)
- choke me
- #else
--f = dlsym;
-+f = dlsym; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -4963,16 +4958,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4966: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:4961: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4969: \$? = $ac_status" >&5
-+ echo "$as_me:4964: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:4972: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4967: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4975: \$? = $ac_status" >&5
-+ echo "$as_me:4970: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_dlsym=yes
- else
-@@ -4982,14 +4977,14 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:4985: result: $ac_cv_func_dlsym" >&5
-+echo "$as_me:4980: result: $ac_cv_func_dlsym" >&5
- echo "${ECHO_T}$ac_cv_func_dlsym" >&6
- if test $ac_cv_func_dlsym = yes; then
- cf_have_dlsym=yes
- else
-
- cf_have_libdl=no
--echo "$as_me:4992: checking for dlsym in -ldl" >&5
-+echo "$as_me:4987: checking for dlsym in -ldl" >&5
- echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
- if test "${ac_cv_lib_dl_dlsym+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -4997,7 +4992,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldl $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5000 "configure"
-+#line 4995 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -5016,16 +5011,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5019: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5014: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5022: \$? = $ac_status" >&5
-+ echo "$as_me:5017: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5025: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5020: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5028: \$? = $ac_status" >&5
-+ echo "$as_me:5023: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dl_dlsym=yes
- else
-@@ -5036,7 +5031,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5039: result: $ac_cv_lib_dl_dlsym" >&5
-+echo "$as_me:5034: result: $ac_cv_lib_dl_dlsym" >&5
- echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
- if test $ac_cv_lib_dl_dlsym = yes; then
-
-@@ -5049,10 +5044,10 @@
- if test "$cf_have_dlsym" = yes ; then
- test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
-
-- echo "$as_me:5052: checking whether able to link to dl*() functions" >&5
-+ echo "$as_me:5047: checking whether able to link to dl*() functions" >&5
- echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 5055 "configure"
-+#line 5050 "configure"
- #include "confdefs.h"
- #include <dlfcn.h>
- int
-@@ -5070,19 +5065,19 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5073: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5068: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5076: \$? = $ac_status" >&5
-+ echo "$as_me:5071: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5079: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5074: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5082: \$? = $ac_status" >&5
-+ echo "$as_me:5077: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBDL 1
- EOF
-
-@@ -5090,28 +5085,28 @@
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-
-- { { echo "$as_me:5093: error: Cannot link test program for libdl" >&5
-+ { { echo "$as_me:5088: error: Cannot link test program for libdl" >&5
- echo "$as_me: error: Cannot link test program for libdl" >&2;}
- { (exit 1); exit 1; }; }
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- echo "$as_me:5098: result: ok" >&5
-+ echo "$as_me:5093: result: ok" >&5
- echo "${ECHO_T}ok" >&6
- else
-- { { echo "$as_me:5101: error: Cannot find dlsym function" >&5
-+ { { echo "$as_me:5096: error: Cannot find dlsym function" >&5
- echo "$as_me: error: Cannot find dlsym function" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
-- if test "$with_gpm" != yes ; then
-+ if test "x$with_gpm" != xyes ; then
- test -n "$verbose" && echo " assuming soname for gpm is $with_gpm" 1>&6
-
--echo "${as_me:-configure}:5109: testing assuming soname for gpm is $with_gpm ..." 1>&5
-+echo "${as_me:-configure}:5104: testing assuming soname for gpm is $with_gpm ..." 1>&5
-
- cf_cv_gpm_soname="$with_gpm"
- else
-
--echo "$as_me:5114: checking for soname of gpm library" >&5
-+echo "$as_me:5109: checking for soname of gpm library" >&5
- echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
- if test "${cf_cv_gpm_soname+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5129,15 +5124,15 @@
- CF_EOF
- cf_save_LIBS="$LIBS"
- LIBS="-lgpm $LIBS"
-- if { (eval echo "$as_me:5132: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:5127: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5135: \$? = $ac_status" >&5
-+ echo "$as_me:5130: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
-- if { (eval echo "$as_me:5137: \"$ac_link\"") >&5
-+ if { (eval echo "$as_me:5132: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5140: \$? = $ac_status" >&5
-+ echo "$as_me:5135: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
- test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
-@@ -5148,11 +5143,12 @@
- fi
-
- fi
--echo "$as_me:5151: result: $cf_cv_gpm_soname" >&5
-+echo "$as_me:5146: result: $cf_cv_gpm_soname" >&5
- echo "${ECHO_T}$cf_cv_gpm_soname" >&6
-
- fi
-- test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <<EOF
-+ test "$cf_cv_gpm_soname" != "unknown" &&
-+cat >>confdefs.h <<EOF
- #define LIBGPM_SONAME "$cf_cv_gpm_soname"
- EOF
-
-@@ -5161,11 +5157,12 @@
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- TEST_LIBS="-lgpm $TEST_LIBS"
- fi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBGPM 1
- EOF
-
--echo "$as_me:5168: checking for Gpm_Wgetch in -lgpm" >&5
-+echo "$as_me:5165: checking for Gpm_Wgetch in -lgpm" >&5
- echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5173,7 +5170,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5176 "configure"
-+#line 5173 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -5192,16 +5189,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5195: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5192: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5198: \$? = $ac_status" >&5
-+ echo "$as_me:5195: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5201: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5198: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5204: \$? = $ac_status" >&5
-+ echo "$as_me:5201: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_Gpm_Wgetch=yes
- else
-@@ -5212,11 +5209,11 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5215: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
-+echo "$as_me:5212: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
- if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
-
--echo "$as_me:5219: checking if GPM is weakly bound to curses library" >&5
-+echo "$as_me:5216: checking if GPM is weakly bound to curses library" >&5
- echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
- if test "${cf_cv_check_gpm_wgetch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5240,15 +5237,15 @@
- # to rely on the static library, noting that some packagers may not
- # include it.
- LIBS="-static -lgpm -dynamic $LIBS"
-- if { (eval echo "$as_me:5243: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:5240: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5246: \$? = $ac_status" >&5
-+ echo "$as_me:5243: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
-- if { (eval echo "$as_me:5248: \"$ac_link\"") >&5
-+ if { (eval echo "$as_me:5245: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5251: \$? = $ac_status" >&5
-+ echo "$as_me:5248: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[vVwW]\>'`
- test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
-@@ -5260,11 +5257,11 @@
- fi
-
- fi
--echo "$as_me:5263: result: $cf_cv_check_gpm_wgetch" >&5
-+echo "$as_me:5260: result: $cf_cv_check_gpm_wgetch" >&5
- echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
-
- if test "$cf_cv_check_gpm_wgetch" != yes ; then
-- { echo "$as_me:5267: WARNING: GPM library is already linked with curses - read the FAQ" >&5
-+ { echo "$as_me:5264: WARNING: GPM library is already linked with curses - read the FAQ" >&5
- echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
- fi
-
-@@ -5274,7 +5271,7 @@
-
- # not everyone has "test -c"
- if test -c /dev/sysmouse 2>/dev/null ; then
--echo "$as_me:5277: checking if you want to use sysmouse" >&5
-+echo "$as_me:5274: checking if you want to use sysmouse" >&5
- echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
-
- # Check whether --with-sysmouse or --without-sysmouse was given.
-@@ -5286,7 +5283,7 @@
- fi;
- if test "$cf_with_sysmouse" != no ; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 5289 "configure"
-+#line 5286 "configure"
- #include "confdefs.h"
-
- #include <osreldate.h>
-@@ -5309,16 +5306,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5312: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5309: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5315: \$? = $ac_status" >&5
-+ echo "$as_me:5312: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5318: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5315: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5321: \$? = $ac_status" >&5
-+ echo "$as_me:5318: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_with_sysmouse=yes
- else
-@@ -5328,9 +5325,10 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:5331: result: $cf_with_sysmouse" >&5
-+echo "$as_me:5328: result: $cf_with_sysmouse" >&5
- echo "${ECHO_T}$cf_with_sysmouse" >&6
--test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_with_sysmouse" = yes &&
-+cat >>confdefs.h <<\EOF
- #define USE_SYSMOUSE 1
- EOF
-
-@@ -5338,15 +5336,15 @@
-
- if test X"$CC_G_OPT" = X"" ; then
- CC_G_OPT='-g'
-- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
-+ test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT=''
- fi
-
- if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
-- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
-+ test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT=''
- fi
-
--echo "$as_me:5349: checking for default loader flags" >&5
-+echo "$as_me:5347: checking for default loader flags" >&5
- echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
- case $DFT_LWR_MODEL in
- libtool) LD_MODEL='' ;;
-@@ -5355,13 +5353,13 @@
- profile) LD_MODEL='-pg';;
- shared) LD_MODEL='' ;;
- esac
--echo "$as_me:5358: result: $LD_MODEL" >&5
-+echo "$as_me:5356: result: $LD_MODEL" >&5
- echo "${ECHO_T}$LD_MODEL" >&6
-
- case $DFT_LWR_MODEL in
- shared)
-
--echo "$as_me:5364: checking if rpath option should be used" >&5
-+echo "$as_me:5362: checking if rpath option should be used" >&5
- echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
-
- # Check whether --enable-rpath or --disable-rpath was given.
-@@ -5371,10 +5369,10 @@
- else
- cf_cv_enable_rpath=no
- fi;
--echo "$as_me:5374: result: $cf_cv_enable_rpath" >&5
-+echo "$as_me:5372: result: $cf_cv_enable_rpath" >&5
- echo "${ECHO_T}$cf_cv_enable_rpath" >&6
-
--echo "$as_me:5377: checking if shared libraries should be relinked during install" >&5
-+echo "$as_me:5375: checking if shared libraries should be relinked during install" >&5
- echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
-
- # Check whether --enable-relink or --disable-relink was given.
-@@ -5384,13 +5382,13 @@
- else
- cf_cv_do_relink=yes
- fi;
--echo "$as_me:5387: result: $cf_cv_do_relink" >&5
-+echo "$as_me:5385: result: $cf_cv_do_relink" >&5
- echo "${ECHO_T}$cf_cv_do_relink" >&6
- ;;
- esac
-
- LD_RPATH_OPT=
--echo "$as_me:5393: checking for an rpath option" >&5
-+echo "$as_me:5391: checking for an rpath option" >&5
- echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
- case $cf_cv_system_name in #(vi
- irix*) #(vi
-@@ -5403,10 +5401,10 @@
- linux*|gnu*|k*bsd*-gnu) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--openbsd[2-9].*) #(vi
-+openbsd[2-9].*|mirbsd*) #(vi
- LD_RPATH_OPT="-Wl,-rpath,"
- ;;
--freebsd*) #(vi
-+dragonfly*|freebsd*) #(vi
- LD_RPATH_OPT="-rpath "
- ;;
- netbsd*) #(vi
-@@ -5421,17 +5419,17 @@
- *)
- ;;
- esac
--echo "$as_me:5424: result: $LD_RPATH_OPT" >&5
-+echo "$as_me:5422: result: $LD_RPATH_OPT" >&5
- echo "${ECHO_T}$LD_RPATH_OPT" >&6
-
- case "x$LD_RPATH_OPT" in #(vi
- x-R*)
-- echo "$as_me:5429: checking if we need a space after rpath option" >&5
-+ echo "$as_me:5427: checking if we need a space after rpath option" >&5
- echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
- cf_save_LIBS="$LIBS"
- LIBS="${LD_RPATH_OPT}$libdir $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5434 "configure"
-+#line 5432 "configure"
- #include "confdefs.h"
-
- int
-@@ -5443,16 +5441,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5446: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5444: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5449: \$? = $ac_status" >&5
-+ echo "$as_me:5447: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5452: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5450: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5455: \$? = $ac_status" >&5
-+ echo "$as_me:5453: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_rpath_space=no
- else
-@@ -5462,7 +5460,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save_LIBS"
-- echo "$as_me:5465: result: $cf_rpath_space" >&5
-+ echo "$as_me:5463: result: $cf_rpath_space" >&5
- echo "${ECHO_T}$cf_rpath_space" >&6
- test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
- ;;
-@@ -5477,7 +5475,7 @@
- cf_ld_rpath_opt=
- test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
-
-- echo "$as_me:5480: checking if release/abi version should be used for shared libs" >&5
-+ echo "$as_me:5478: checking if release/abi version should be used for shared libs" >&5
- echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
-
- # Check whether --with-shlib-version or --without-shlib-version was given.
-@@ -5492,7 +5490,7 @@
- cf_cv_shlib_version=$withval
- ;;
- *)
-- { { echo "$as_me:5495: error: option value must be one of: rel, abi, auto or no" >&5
-+ { { echo "$as_me:5493: error: option value must be one of: rel, abi, auto or no" >&5
- echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
- { (exit 1); exit 1; }; }
- ;;
-@@ -5501,23 +5499,24 @@
- else
- cf_cv_shlib_version=auto
- fi;
-- echo "$as_me:5504: result: $cf_cv_shlib_version" >&5
-+ echo "$as_me:5502: result: $cf_cv_shlib_version" >&5
- echo "${ECHO_T}$cf_cv_shlib_version" >&6
-
- cf_cv_rm_so_locs=no
-+ cf_try_cflags=
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
- if test "$GCC" = yes
- then
-- echo "$as_me:5513: checking which $CC option to use" >&5
-+ echo "$as_me:5512: checking which $CC option to use" >&5
- echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
- cf_save_CFLAGS="$CFLAGS"
- for CC_SHARED_OPTS in -fPIC -fpic ''
- do
- CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5520 "configure"
-+#line 5519 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -5529,16 +5528,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5532: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5531: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5535: \$? = $ac_status" >&5
-+ echo "$as_me:5534: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5538: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5537: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5541: \$? = $ac_status" >&5
-+ echo "$as_me:5540: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -5547,7 +5546,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- done
-- echo "$as_me:5550: result: $CC_SHARED_OPTS" >&5
-+ echo "$as_me:5549: result: $CC_SHARED_OPTS" >&5
- echo "${ECHO_T}$CC_SHARED_OPTS" >&6
- CFLAGS="$cf_save_CFLAGS"
- fi
-@@ -5555,10 +5554,14 @@
- cf_cv_shlib_version_infix=no
-
- case $cf_cv_system_name in #(vi
-- aix[56]*) #(vi
-+ aix4.3-9*|aix[5-7]*) #(vi
- if test "$GCC" = yes; then
- CC_SHARED_OPTS=
-- MK_SHARED_LIB='$(CC) -shared'
-+ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
-+ else
-+ # CC_SHARED_OPTS='-qpic=large -G'
-+ # perhaps "-bM:SRE -bnoentry -bexpall"
-+ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
- fi
- ;;
- beos*) #(vi
-@@ -5584,12 +5587,12 @@
- chmod +x mk_shared_lib.sh
- ;;
- darwin*) #(vi
-- EXTRA_CFLAGS="-no-cpp-precomp"
-+ cf_try_cflags="no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
- cf_cv_shlib_version_infix=yes
-- echo "$as_me:5592: checking if ld -search_paths_first works" >&5
-+ echo "$as_me:5595: checking if ld -search_paths_first works" >&5
- echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
- if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5598,7 +5601,7 @@
- cf_save_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5601 "configure"
-+#line 5604 "configure"
- #include "confdefs.h"
-
- int
-@@ -5610,16 +5613,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5613: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5616: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5616: \$? = $ac_status" >&5
-+ echo "$as_me:5619: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5619: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5622: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5622: \$? = $ac_status" >&5
-+ echo "$as_me:5625: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ldflags_search_paths_first=yes
- else
-@@ -5630,12 +5633,20 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$cf_save_LDFLAGS
- fi
--echo "$as_me:5633: result: $cf_cv_ldflags_search_paths_first" >&5
-+echo "$as_me:5636: result: $cf_cv_ldflags_search_paths_first" >&5
- echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
- if test $cf_cv_ldflags_search_paths_first = yes; then
- LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
- fi
- ;;
-+ hpux[7-8]*) #(vi
-+ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
-+ if test "$GCC" != yes; then
-+ CC_SHARED_OPTS='+Z'
-+ fi
-+ MK_SHARED_LIB='${LD} -b -o $@'
-+ INSTALL_LIB="-m 555"
-+ ;;
- hpux*) #(vi
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
-@@ -5649,9 +5660,19 @@
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
-+ interix*)
-+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-+ if test "$cf_cv_shlib_version" = rel; then
-+ cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}'
-+ else
-+ cf_shared_soname='`basename `'
-+ fi
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o '
-+ ;;
- irix*) #(vi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
-@@ -5668,7 +5689,7 @@
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-@@ -5680,13 +5701,34 @@
-
- MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
- ;;
-- openbsd[2-9].*) #(vi
-+ mingw*) #(vi
-+ cf_cv_shlib_version=mingw
-+ cf_cv_shlib_version_infix=mingw
-+ CC_SHARED_OPTS=
-+ MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
-+ #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]'
-+ #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]'
-+ cat >mk_shared_lib.sh <<-CF_EOF
-+ #!/bin/sh
-+ SHARED_LIB=\$1
-+ IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\`
-+ shift
-+ cat <<-EOF
-+ Linking shared library
-+ ** SHARED_LIB \$SHARED_LIB
-+ ** IMPORT_LIB \$IMPORT_LIB
-+EOF
-+ exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
-+CF_EOF
-+ chmod +x mk_shared_lib.sh
-+ ;;
-+ openbsd[2-9].*|mirbsd*) #(vi
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_enable_rpath" = yes ; then
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
-
-@@ -5704,12 +5746,12 @@
- MK_SHARED_LIB='${LD} -Bshareable -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
-- freebsd*) #(vi
-+ dragonfly*|freebsd*) #(vi
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
-- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- fi
-
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
-@@ -5726,7 +5768,7 @@
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
- LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
-- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
-+ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
- if test "$cf_cv_shlib_version" = auto; then
- if test -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=abi
-@@ -5810,7 +5852,7 @@
- do
- CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 5813 "configure"
-+#line 5855 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -5822,16 +5864,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5825: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5867: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5828: \$? = $ac_status" >&5
-+ echo "$as_me:5870: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5831: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5873: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5834: \$? = $ac_status" >&5
-+ echo "$as_me:5876: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -5868,21 +5910,62 @@
- test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
- ;;
- *)
-- { echo "$as_me:5871: WARNING: ignored --with-shlib-version" >&5
-+ { echo "$as_me:5913: WARNING: ignored --with-shlib-version" >&5
- echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
- ;;
- esac
- ;;
- esac
-
-- if test -n "$cf_ld_rpath_opt" ; then
-- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
-+ if test -n "$cf_try_cflags"
-+ then
-+cat > conftest.$ac_ext <<EOF
-+#line 5923 "${as_me:-configure}"
-+#include <stdio.h>
-+int main(int argc, char *argv[])
-+{
-+ printf("hello\n");
-+ return (argv[argc-1] == 0) ;
-+}
-+EOF
-+ cf_save_CFLAGS="$CFLAGS"
-+ for cf_opt in $cf_try_cflags
-+ do
-+ CFLAGS="$cf_save_CFLAGS -$cf_opt"
-+ echo "$as_me:5935: checking if CFLAGS option -$cf_opt works" >&5
-+echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6
-+ if { (eval echo "$as_me:5937: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:5940: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ echo "$as_me:5942: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+ cf_save_CFLAGS="$CFLAGS"
-+ else
-+ echo "$as_me:5946: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+ fi
-+ done
-+ CFLAGS="$cf_save_CFLAGS"
- fi
-
-+ # RPATH_LIST is a colon-separated list of directories
-+ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
-+ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
-+
-+ test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6
-+
-+echo "${as_me:-configure}:5959: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
-+
-+ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
-+
-+echo "${as_me:-configure}:5963: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
-+
- if test "$CC_SHARED_OPTS" = "unknown"; then
- for model in $cf_list_models; do
- if test "$model" = "shared"; then
-- { { echo "$as_me:5885: error: Shared libraries are not supported in this version" >&5
-+ { { echo "$as_me:5968: error: Shared libraries are not supported in this version" >&5
- echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -5892,7 +5975,7 @@
- ### If we're building with rpath, try to link non-standard libs that way too.
- if test "$DFT_LWR_MODEL" = "shared"; then
-
--echo "$as_me:5895: checking if rpath-hack should be disabled" >&5
-+echo "$as_me:5978: checking if rpath-hack should be disabled" >&5
- echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
-
- # Check whether --enable-rpath-hack or --disable-rpath-hack was given.
-@@ -5909,21 +5992,21 @@
- cf_disable_rpath_hack=no
-
- fi;
--echo "$as_me:5912: result: $cf_disable_rpath_hack" >&5
-+echo "$as_me:5995: result: $cf_disable_rpath_hack" >&5
- echo "${ECHO_T}$cf_disable_rpath_hack" >&6
- if test "$cf_disable_rpath_hack" = no ; then
-
--echo "$as_me:5916: checking for updated LDFLAGS" >&5
-+echo "$as_me:5999: checking for updated LDFLAGS" >&5
- echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
- if test -n "$LD_RPATH_OPT" ; then
-- echo "$as_me:5919: result: maybe" >&5
-+ echo "$as_me:6002: result: maybe" >&5
- echo "${ECHO_T}maybe" >&6
-
- for ac_prog in ldd
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:5926: checking for $ac_word" >&5
-+echo "$as_me:6009: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -5938,7 +6021,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_cf_ldd_prog="$ac_prog"
--echo "$as_me:5941: found $ac_dir/$ac_word" >&5
-+echo "$as_me:6024: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -5946,10 +6029,10 @@
- fi
- cf_ldd_prog=$ac_cv_prog_cf_ldd_prog
- if test -n "$cf_ldd_prog"; then
-- echo "$as_me:5949: result: $cf_ldd_prog" >&5
-+ echo "$as_me:6032: result: $cf_ldd_prog" >&5
- echo "${ECHO_T}$cf_ldd_prog" >&6
- else
-- echo "$as_me:5952: result: no" >&5
-+ echo "$as_me:6035: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -5963,7 +6046,7 @@
- cf_rpath_oops=
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 5966 "configure"
-+#line 6049 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -5975,16 +6058,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5978: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6061: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5981: \$? = $ac_status" >&5
-+ echo "$as_me:6064: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5984: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6067: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5987: \$? = $ac_status" >&5
-+ echo "$as_me:6070: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
- cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort -u`
-@@ -6012,7 +6095,7 @@
- then
- test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6
-
--echo "${as_me:-configure}:6015: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
-+echo "${as_me:-configure}:6098: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
-
- LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
- break
-@@ -6024,11 +6107,11 @@
-
- test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-
--echo "${as_me:-configure}:6027: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-+echo "${as_me:-configure}:6110: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-
- test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
-
--echo "${as_me:-configure}:6031: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
-+echo "${as_me:-configure}:6114: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
-
- cf_rpath_dst=
- for cf_rpath_src in $LDFLAGS
-@@ -6065,7 +6148,7 @@
- then
- test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-
--echo "${as_me:-configure}:6068: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
-+echo "${as_me:-configure}:6151: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
-
- EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
- fi
-@@ -6078,11 +6161,11 @@
-
- test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
-
--echo "${as_me:-configure}:6081: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
-+echo "${as_me:-configure}:6164: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
-
- test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6
-
--echo "${as_me:-configure}:6085: testing ...checking LIBS $LIBS ..." 1>&5
-+echo "${as_me:-configure}:6168: testing ...checking LIBS $LIBS ..." 1>&5
-
- cf_rpath_dst=
- for cf_rpath_src in $LIBS
-@@ -6119,7 +6202,7 @@
- then
- test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-
--echo "${as_me:-configure}:6122: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
-+echo "${as_me:-configure}:6205: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
-
- EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
- fi
-@@ -6132,11 +6215,11 @@
-
- test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6
-
--echo "${as_me:-configure}:6135: testing ...checked LIBS $LIBS ..." 1>&5
-+echo "${as_me:-configure}:6218: testing ...checked LIBS $LIBS ..." 1>&5
-
- test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-
--echo "${as_me:-configure}:6139: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-+echo "${as_me:-configure}:6222: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-
- fi
-
-@@ -6147,7 +6230,7 @@
- ###############################################################################
-
- ### use option --disable-overwrite to leave out the link to -lcurses
--echo "$as_me:6150: checking if you wish to install ncurses overwriting curses" >&5
-+echo "$as_me:6233: checking if you wish to install ncurses overwriting curses" >&5
- echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
-
- # Check whether --enable-overwrite or --disable-overwrite was given.
-@@ -6157,10 +6240,10 @@
- else
- if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
- fi;
--echo "$as_me:6160: result: $with_overwrite" >&5
-+echo "$as_me:6243: result: $with_overwrite" >&5
- echo "${ECHO_T}$with_overwrite" >&6
-
--echo "$as_me:6163: checking if external terminfo-database is used" >&5
-+echo "$as_me:6246: checking if external terminfo-database is used" >&5
- echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
-
- # Check whether --enable-database or --disable-database was given.
-@@ -6170,7 +6253,7 @@
- else
- use_database=yes
- fi;
--echo "$as_me:6173: result: $use_database" >&5
-+echo "$as_me:6256: result: $use_database" >&5
- echo "${ECHO_T}$use_database" >&6
-
- case $host_os in #(vi
-@@ -6178,21 +6261,17 @@
- TERMINFO_SRC='${top_srcdir}/misc/emx.src'
- ;;
- *) #(vi
-- TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
-- ;;
--esac
--
-- case $cf_cv_system_name in
-- os2*) PATH_SEPARATOR=';' ;;
-- *) PATH_SEPARATOR=':' ;;
-- esac
-+ TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
-+ ;;
-+esac
-
- if test "$use_database" != no ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_DATABASE 1
- EOF
-
-- echo "$as_me:6195: checking which terminfo source-file will be installed" >&5
-+ echo "$as_me:6274: checking which terminfo source-file will be installed" >&5
- echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
-
- # Check whether --with-database or --without-database was given.
-@@ -6200,10 +6279,10 @@
- withval="$with_database"
- TERMINFO_SRC=$withval
- fi;
-- echo "$as_me:6203: result: $TERMINFO_SRC" >&5
-+ echo "$as_me:6282: result: $TERMINFO_SRC" >&5
- echo "${ECHO_T}$TERMINFO_SRC" >&6
-
-- echo "$as_me:6206: checking whether to use hashed database instead of directory/tree" >&5
-+ echo "$as_me:6285: checking whether to use hashed database instead of directory/tree" >&5
- echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
-
- # Check whether --with-hashed-db or --without-hashed-db was given.
-@@ -6213,13 +6292,13 @@
- else
- with_hashed_db=no
- fi;
-- echo "$as_me:6216: result: $with_hashed_db" >&5
-+ echo "$as_me:6295: result: $with_hashed_db" >&5
- echo "${ECHO_T}$with_hashed_db" >&6
- else
- with_hashed_db=no
- fi
-
--echo "$as_me:6222: checking for list of fallback descriptions" >&5
-+echo "$as_me:6301: checking for list of fallback descriptions" >&5
- echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
-
- # Check whether --with-fallbacks or --without-fallbacks was given.
-@@ -6229,11 +6308,11 @@
- else
- with_fallback=
- fi;
--echo "$as_me:6232: result: $with_fallback" >&5
-+echo "$as_me:6311: result: $with_fallback" >&5
- echo "${ECHO_T}$with_fallback" >&6
- FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
-
--echo "$as_me:6236: checking if you want modern xterm or antique" >&5
-+echo "$as_me:6315: checking if you want modern xterm or antique" >&5
- echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
-
- # Check whether --with-xterm-new or --without-xterm-new was given.
-@@ -6247,17 +6326,42 @@
- no) with_xterm_new=xterm-old;;
- *) with_xterm_new=xterm-new;;
- esac
--echo "$as_me:6250: result: $with_xterm_new" >&5
-+echo "$as_me:6329: result: $with_xterm_new" >&5
- echo "${ECHO_T}$with_xterm_new" >&6
- WHICH_XTERM=$with_xterm_new
-
-+echo "$as_me:6333: checking if xterm backspace sends BS or DEL" >&5
-+echo $ECHO_N "checking if xterm backspace sends BS or DEL... $ECHO_C" >&6
-+
-+# Check whether --with-xterm-kbs or --without-xterm-kbs was given.
-+if test "${with_xterm_kbs+set}" = set; then
-+ withval="$with_xterm_kbs"
-+ with_xterm_kbs=$withval
-+else
-+ with_xterm_kbs=BS
-+fi;
-+case x$with_xterm_kbs in
-+xyes|xno|xBS|xbs|x8)
-+ with_xterm_kbs=BS
-+ ;;
-+xDEL|xdel|x127)
-+ with_xterm_kbs=DEL
-+ ;;
-+*)
-+ with_xterm_kbs=$withval
-+ ;;
-+esac
-+echo "$as_me:6354: result: $with_xterm_kbs" >&5
-+echo "${ECHO_T}$with_xterm_kbs" >&6
-+XTERM_KBS=$with_xterm_kbs
-+
- MAKE_TERMINFO=
- if test "$use_database" = no ; then
- TERMINFO="${datadir}/terminfo"
- MAKE_TERMINFO="#"
- else
-
--echo "$as_me:6260: checking for list of terminfo directories" >&5
-+echo "$as_me:6364: checking for list of terminfo directories" >&5
- echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
-
- # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
-@@ -6285,7 +6389,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval cf_src_path="$cf_src_path"
- case ".$cf_src_path" in #(vi
- .NONE/*)
-@@ -6297,26 +6401,37 @@
- cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:6300: error: expected a pathname, not \"$cf_src_path\"" >&5
-+ { { echo "$as_me:6404: error: expected a pathname, not \"$cf_src_path\"" >&5
- echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
-- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
-+ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
- cf_dst_path="${cf_dst_path}${cf_src_path}"
- done
- IFS="$ac_save_ifs"
-
--eval 'TERMINFO_DIRS="$cf_dst_path"'
-+# This may use the prefix/exec_prefix symbols which will only yield "NONE"
-+# so we have to check/work around. We do prefer the result of "eval"...
-+eval cf_dst_eval="$cf_dst_path"
-+case "x$cf_dst_eval" in #(vi
-+xNONE*) #(vi
-+ TERMINFO_DIRS=$cf_dst_path
-+ ;;
-+*)
-+ TERMINFO_DIRS="$cf_dst_eval"
-+ ;;
-+esac
-
--echo "$as_me:6313: result: $TERMINFO_DIRS" >&5
-+echo "$as_me:6427: result: $TERMINFO_DIRS" >&5
- echo "${ECHO_T}$TERMINFO_DIRS" >&6
--test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
-+test -n "$TERMINFO_DIRS" &&
-+cat >>confdefs.h <<EOF
- #define TERMINFO_DIRS "$TERMINFO_DIRS"
- EOF
-
--echo "$as_me:6319: checking for default terminfo directory" >&5
-+echo "$as_me:6434: checking for default terminfo directory" >&5
- echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
-
- # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
-@@ -6340,7 +6455,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
-@@ -6352,17 +6467,18 @@
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:6355: error: expected a pathname, not \"$withval\"" >&5
-+ { { echo "$as_me:6470: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- fi
--TERMINFO="$withval"
-+eval TERMINFO="$withval"
-
--echo "$as_me:6364: result: $TERMINFO" >&5
-+echo "$as_me:6479: result: $TERMINFO" >&5
- echo "${ECHO_T}$TERMINFO" >&6
-+
- cat >>confdefs.h <<EOF
- #define TERMINFO "$TERMINFO"
- EOF
-@@ -6371,7 +6487,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:6374: checking if big-core option selected" >&5
-+echo "$as_me:6490: checking if big-core option selected" >&5
- echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
-
- # Check whether --enable-big-core or --disable-big-core was given.
-@@ -6383,7 +6499,7 @@
- with_big_core=no
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 6386 "configure"
-+#line 6502 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -6397,15 +6513,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:6400: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6516: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6403: \$? = $ac_status" >&5
-+ echo "$as_me:6519: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:6405: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6521: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6408: \$? = $ac_status" >&5
-+ echo "$as_me:6524: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- with_big_core=yes
- else
-@@ -6417,16 +6533,17 @@
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- fi;
--echo "$as_me:6420: result: $with_big_core" >&5
-+echo "$as_me:6536: result: $with_big_core" >&5
- echo "${ECHO_T}$with_big_core" >&6
--test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
-+test "x$with_big_core" = "xyes" &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_BIG_CORE 1
- EOF
-
- ### ISO C only guarantees 512-char strings, we have tables which load faster
- ### when constructed using "big" strings. More than the C compiler, the awk
- ### program is a limit on most vendor UNIX systems. Check that we can build.
--echo "$as_me:6429: checking if big-strings option selected" >&5
-+echo "$as_me:6546: checking if big-strings option selected" >&5
- echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
-
- # Check whether --enable-big-strings or --disable-big-strings was given.
-@@ -6440,8 +6557,8 @@
- eval with_big_strings=no
- ;;
- *) #(vi
-- if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' \
-- | $AWK '{ printf "%d\n", length($0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
-+ if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
-+ | $AWK '{ printf "%d\n", length($0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
- eval with_big_strings=yes
- else
- eval with_big_strings=no
-@@ -6450,14 +6567,14 @@
- esac
-
- fi;
--echo "$as_me:6453: result: $with_big_strings" >&5
-+echo "$as_me:6570: result: $with_big_strings" >&5
- echo "${ECHO_T}$with_big_strings" >&6
-
- USE_BIG_STRINGS=0
--test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
-+test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1
-
- ### use option --enable-termcap to compile in the termcap fallback support
--echo "$as_me:6460: checking if you want termcap-fallback support" >&5
-+echo "$as_me:6577: checking if you want termcap-fallback support" >&5
- echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
-
- # Check whether --enable-termcap or --disable-termcap was given.
-@@ -6467,25 +6584,26 @@
- else
- with_termcap=no
- fi;
--echo "$as_me:6470: result: $with_termcap" >&5
-+echo "$as_me:6587: result: $with_termcap" >&5
- echo "${ECHO_T}$with_termcap" >&6
-
--if test "$with_termcap" != "yes" ; then
-+if test "x$with_termcap" != "xyes" ; then
- if test "$use_database" = no ; then
- if test -z "$with_fallback" ; then
-- { { echo "$as_me:6476: error: You have disabled the database w/o specifying fallbacks" >&5
-+ { { echo "$as_me:6593: error: You have disabled the database w/o specifying fallbacks" >&5
- echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define PURE_TERMINFO 1
- EOF
-
- else
-
- if test "$with_ticlib" != no ; then
-- { { echo "$as_me:6488: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
-+ { { echo "$as_me:6606: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
- echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -6494,7 +6612,7 @@
- #define USE_TERMCAP 1
- EOF
-
--echo "$as_me:6497: checking for list of termcap files" >&5
-+echo "$as_me:6615: checking for list of termcap files" >&5
- echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
-
- # Check whether --with-termpath or --without-termpath was given.
-@@ -6522,7 +6640,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval cf_src_path="$cf_src_path"
- case ".$cf_src_path" in #(vi
- .NONE/*)
-@@ -6534,27 +6652,38 @@
- cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:6537: error: expected a pathname, not \"$cf_src_path\"" >&5
-+ { { echo "$as_me:6655: error: expected a pathname, not \"$cf_src_path\"" >&5
- echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
-- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
-+ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
- cf_dst_path="${cf_dst_path}${cf_src_path}"
- done
- IFS="$ac_save_ifs"
-
--eval 'TERMPATH="$cf_dst_path"'
-+# This may use the prefix/exec_prefix symbols which will only yield "NONE"
-+# so we have to check/work around. We do prefer the result of "eval"...
-+eval cf_dst_eval="$cf_dst_path"
-+case "x$cf_dst_eval" in #(vi
-+xNONE*) #(vi
-+ TERMPATH=$cf_dst_path
-+ ;;
-+*)
-+ TERMPATH="$cf_dst_eval"
-+ ;;
-+esac
-
--echo "$as_me:6550: result: $TERMPATH" >&5
-+echo "$as_me:6678: result: $TERMPATH" >&5
- echo "${ECHO_T}$TERMPATH" >&6
--test -n "$TERMPATH" && cat >>confdefs.h <<EOF
-+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:6557: checking if fast termcap-loader is needed" >&5
-+echo "$as_me:6686: checking if fast termcap-loader is needed" >&5
- echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
-
- # Check whether --enable-getcap or --disable-getcap was given.
-@@ -6564,13 +6693,14 @@
- else
- with_getcap=no
- fi;
--echo "$as_me:6567: result: $with_getcap" >&5
-+echo "$as_me:6696: result: $with_getcap" >&5
- echo "${ECHO_T}$with_getcap" >&6
--test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
-+test "x$with_getcap" = "xyes" &&
-+cat >>confdefs.h <<\EOF
- #define USE_GETCAP 1
- EOF
-
--echo "$as_me:6573: checking if translated termcaps will be cached in ~/.terminfo" >&5
-+echo "$as_me:6703: checking if translated termcaps will be cached in ~/.terminfo" >&5
- echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
-
- # Check whether --enable-getcap-cache or --disable-getcap-cache was given.
-@@ -6580,16 +6710,17 @@
- else
- with_getcap_cache=no
- fi;
--echo "$as_me:6583: result: $with_getcap_cache" >&5
-+echo "$as_me:6713: result: $with_getcap_cache" >&5
- echo "${ECHO_T}$with_getcap_cache" >&6
--test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
-+test "x$with_getcap_cache" = "xyes" &&
-+cat >>confdefs.h <<\EOF
- #define USE_GETCAP_CACHE 1
- EOF
-
- fi
-
- ### Use option --disable-home-terminfo to completely remove ~/.terminfo
--echo "$as_me:6592: checking if ~/.terminfo is wanted" >&5
-+echo "$as_me:6723: checking if ~/.terminfo is wanted" >&5
- echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
-
- # Check whether --enable-home-terminfo or --disable-home-terminfo was given.
-@@ -6599,13 +6730,14 @@
- else
- with_home_terminfo=yes
- fi;
--echo "$as_me:6602: result: $with_home_terminfo" >&5
-+echo "$as_me:6733: result: $with_home_terminfo" >&5
- echo "${ECHO_T}$with_home_terminfo" >&6
--test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
-+test "x$with_home_terminfo" = "xyes" &&
-+cat >>confdefs.h <<\EOF
- #define USE_HOME_TERMINFO 1
- EOF
-
--echo "$as_me:6608: checking if you want to use restricted environment when running as root" >&5
-+echo "$as_me:6740: checking if you want to use restricted environment when running as root" >&5
- echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
-
- # Check whether --enable-root-environ or --disable-root-environ was given.
-@@ -6615,9 +6747,10 @@
- else
- with_root_environ=yes
- fi;
--echo "$as_me:6618: result: $with_root_environ" >&5
-+echo "$as_me:6750: result: $with_root_environ" >&5
- echo "${ECHO_T}$with_root_environ" >&6
--test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_root_environ" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_ROOT_ENVIRON 1
- EOF
-
-@@ -6629,13 +6762,13 @@
- unlink
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:6632: checking for $ac_func" >&5
-+echo "$as_me:6765: checking for $ac_func" >&5
- echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
- if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 6638 "configure"
-+#line 6771 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-@@ -6658,7 +6791,7 @@
- #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
- choke me
- #else
--f = $ac_func;
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -6666,16 +6799,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6669: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6802: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6672: \$? = $ac_status" >&5
-+ echo "$as_me:6805: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6675: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6808: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6678: \$? = $ac_status" >&5
-+ echo "$as_me:6811: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
- else
-@@ -6685,7 +6818,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:6688: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "$as_me:6821: 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
-@@ -6702,13 +6835,13 @@
- symlink
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:6705: checking for $ac_func" >&5
-+echo "$as_me:6838: 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 6711 "configure"
-+#line 6844 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-@@ -6731,7 +6864,7 @@
- #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
- choke me
- #else
--f = $ac_func;
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -6739,16 +6872,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6742: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6875: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6745: \$? = $ac_status" >&5
-+ echo "$as_me:6878: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6748: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6881: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6751: \$? = $ac_status" >&5
-+ echo "$as_me:6884: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
- else
-@@ -6758,7 +6891,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:6761: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "$as_me:6894: 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
-@@ -6769,7 +6902,7 @@
- done
-
- else
-- echo "$as_me:6772: checking if link/symlink functions work" >&5
-+ echo "$as_me:6905: 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
-@@ -6782,7 +6915,7 @@
- eval 'ac_cv_func_'$cf_func'=error'
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 6785 "configure"
-+#line 6918 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -6812,15 +6945,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:6815: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6948: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6818: \$? = $ac_status" >&5
-+ echo "$as_me:6951: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:6820: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6953: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6823: \$? = $ac_status" >&5
-+ echo "$as_me:6956: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
-@@ -6838,13 +6971,15 @@
- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
-
- fi
--echo "$as_me:6841: result: $cf_cv_link_funcs" >&5
-+echo "$as_me:6974: result: $cf_cv_link_funcs" >&5
- echo "${ECHO_T}$cf_cv_link_funcs" >&6
-- test "$ac_cv_func_link" = yes && cat >>confdefs.h <<\EOF
-+ test "$ac_cv_func_link" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_LINK 1
- EOF
-
-- test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF
-+ test "$ac_cv_func_symlink" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_SYMLINK 1
- EOF
-
-@@ -6855,8 +6990,8 @@
-
- # soft links (symbolic links) are useful for some systems where hard links do
- # not work, or to make it simpler to copy terminfo trees around.
--if test "$ac_cv_func_symlink" = yes ; then
-- echo "$as_me:6859: checking if tic should use symbolic links" >&5
-+if test "x$ac_cv_func_symlink" = xyes ; then
-+ echo "$as_me:6994: 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.
-@@ -6866,34 +7001,36 @@
- else
- with_symlinks=no
- fi;
-- echo "$as_me:6869: result: $with_symlinks" >&5
-+ echo "$as_me:7004: result: $with_symlinks" >&5
- echo "${ECHO_T}$with_symlinks" >&6
- fi
-
- # If we have hard links and did not choose to use soft links instead, there is
- # no reason to make this choice optional - use the hard links.
- if test "$with_symlinks" = no ; then
-- echo "$as_me:6876: checking if tic should use hard links" >&5
-+ echo "$as_me:7011: 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
-+ if test "x$ac_cv_func_link" = xyes ; then
- with_links=yes
- else
- with_links=no
- fi
-- echo "$as_me:6883: result: $with_links" >&5
-+ echo "$as_me:7018: result: $with_links" >&5
- echo "${ECHO_T}$with_links" >&6
- fi
-
--test "$with_links" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_links" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_LINKS 1
- EOF
-
--test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_symlinks" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_SYMLINKS 1
- EOF
-
- ### use option --enable-broken-linker to force on use of broken-linker support
--echo "$as_me:6896: checking if you want broken-linker support code" >&5
-+echo "$as_me:7033: 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.
-@@ -6903,12 +7040,13 @@
- else
- with_broken_linker=${BROKEN_LINKER:-no}
- fi;
--echo "$as_me:6906: result: $with_broken_linker" >&5
-+echo "$as_me:7043: result: $with_broken_linker" >&5
- echo "${ECHO_T}$with_broken_linker" >&6
-
- BROKEN_LINKER=0
--if test "$with_broken_linker" = yes ; then
-- cat >>confdefs.h <<\EOF
-+if test "x$with_broken_linker" = xyes ; then
-+
-+cat >>confdefs.h <<\EOF
- #define BROKEN_LINKER 1
- EOF
-
-@@ -6916,21 +7054,22 @@
- elif test "$DFT_LWR_MODEL" = shared ; then
- case $cf_cv_system_name in #(vi
- cygwin*)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define BROKEN_LINKER 1
- EOF
-
- BROKEN_LINKER=1
- test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6
-
--echo "${as_me:-configure}:6926: testing cygwin linker is broken anyway ..." 1>&5
-+echo "${as_me:-configure}:7065: testing cygwin linker is broken anyway ..." 1>&5
-
- ;;
- esac
- fi
-
- ### use option --enable-bsdpad to have tputs process BSD-style prefix padding
--echo "$as_me:6933: checking if tputs should process BSD-style prefix padding" >&5
-+echo "$as_me:7072: 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.
-@@ -6940,9 +7079,10 @@
- else
- with_bsdpad=no
- fi;
--echo "$as_me:6943: result: $with_bsdpad" >&5
-+echo "$as_me:7082: result: $with_bsdpad" >&5
- echo "${ECHO_T}$with_bsdpad" >&6
--test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_bsdpad" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define BSD_TPUTS 1
- EOF
-
-@@ -6962,7 +7102,7 @@
- cf_xopen_source=
-
- case $host_os in #(vi
--aix[456]*) #(vi
-+aix[4-7]*) #(vi
- cf_xopen_source="-D_ALL_SOURCE"
- ;;
- cygwin) #(vi
-@@ -6973,6 +7113,7 @@
- ;;
- darwin*) #(vi
- cf_xopen_source="-D_DARWIN_C_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- freebsd*|dragonfly*) #(vi
- # 5.x headers associate
-@@ -6990,17 +7131,18 @@
- ;;
- irix[56].*) #(vi
- cf_xopen_source="-D_SGI_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- linux*|gnu*|mint*|k*bsd*-gnu) #(vi
-
--echo "$as_me:6996: checking if we must define _GNU_SOURCE" >&5
-+echo "$as_me:7138: 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 7003 "configure"
-+#line 7145 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7015,16 +7157,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7018: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7160: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7021: \$? = $ac_status" >&5
-+ echo "$as_me:7163: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7024: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7166: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7027: \$? = $ac_status" >&5
-+ echo "$as_me:7169: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gnu_source=no
- else
-@@ -7033,7 +7175,7 @@
- cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7036 "configure"
-+#line 7178 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7048,16 +7190,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7051: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7193: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7054: \$? = $ac_status" >&5
-+ echo "$as_me:7196: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7057: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7199: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7060: \$? = $ac_status" >&5
-+ echo "$as_me:7202: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gnu_source=no
- else
-@@ -7065,23 +7207,267 @@
- cat conftest.$ac_ext >&5
- cf_cv_gnu_source=yes
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS="$cf_save"
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS="$cf_save"
-+
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:7217: result: $cf_cv_gnu_source" >&5
-+echo "${ECHO_T}$cf_cv_gnu_source" >&6
-+test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-+
-+ ;;
-+mirbsd*) #(vi
-+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
-+ cf_XOPEN_SOURCE=
-+
-+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-+
-+cf_save_CFLAGS="$CFLAGS"
-+cf_save_CPPFLAGS="$CPPFLAGS"
-+
-+cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+echo "$as_me:7239: checking if we should define _POSIX_C_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_posix_c_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+echo "${as_me:-configure}:7245: testing if the symbol is already defined go no further ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7248 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-+
-+#ifndef _POSIX_C_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:7263: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7266: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:7269: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7272: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_posix_c_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_want_posix_source=no
-+ case .$cf_POSIX_C_SOURCE in #(vi
-+ .[12]??*) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ ;;
-+ .2) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ cf_want_posix_source=yes
-+ ;;
-+ .*)
-+ cf_want_posix_source=yes
-+ ;;
-+ esac
-+ if test "$cf_want_posix_source" = yes ; then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7293 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-+
-+#ifdef _POSIX_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:7308: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7311: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:7314: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7317: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ fi
-+
-+echo "${as_me:-configure}:7328: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-+
-+echo "${as_me:-configure}:7333: testing if the second compile does not leave our definition intact error ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7336 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-+
-+#ifndef _POSIX_C_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:7351: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7354: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:7357: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:7360: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_posix_c_source=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-+
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:7376: result: $cf_cv_posix_c_source" >&5
-+echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-+
-+if test "$cf_cv_posix_c_source" != no ; then
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS"
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_cv_posix_c_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:7075: result: $cf_cv_gnu_source" >&5
--echo "${ECHO_T}$cf_cv_gnu_source" >&6
--test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-
-- ;;
--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
-+ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ ;;
-+openbsd[4-9]*) #(vi
-+ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
-+ cf_xopen_source="-D_BSD_SOURCE"
-+ cf_XOPEN_SOURCE=600
- ;;
- openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-@@ -7095,23 +7481,25 @@
- sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
--solaris2.1[0-9]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--solaris2.[1-9]) #(vi
-+solaris2.*) #(vi
- cf_xopen_source="-D__EXTENSIONS__"
- ;;
- *)
-- echo "$as_me:7105: checking if we should define _XOPEN_SOURCE" >&5
-+
-+echo "$as_me:7489: checking if we should define _XOPEN_SOURCE" >&5
- echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_xopen_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 7112 "configure"
-+#line 7496 "configure"
- #include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
- #include <sys/types.h>
-+
- int
- main ()
- {
-@@ -7124,16 +7512,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7127: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7515: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7130: \$? = $ac_status" >&5
-+ echo "$as_me:7518: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7133: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7521: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7136: \$? = $ac_status" >&5
-+ echo "$as_me:7524: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_xopen_source=no
- else
-@@ -7142,9 +7530,13 @@
- cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7145 "configure"
-+#line 7533 "configure"
- #include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
- #include <sys/types.h>
-+
- int
- main ()
- {
-@@ -7157,16 +7549,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7160: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7552: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7163: \$? = $ac_status" >&5
-+ echo "$as_me:7555: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7166: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7558: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7169: \$? = $ac_status" >&5
-+ echo "$as_me:7561: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_xopen_source=no
- else
-@@ -7181,9 +7573,10 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:7184: result: $cf_cv_xopen_source" >&5
-+echo "$as_me:7576: result: $cf_cv_xopen_source" >&5
- echo "${ECHO_T}$cf_cv_xopen_source" >&6
-- if test "$cf_cv_xopen_source" != no ; then
-+
-+if test "$cf_cv_xopen_source" != no ; then
-
- CFLAGS=`echo "$CFLAGS" | \
- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-@@ -7193,7 +7586,7 @@
- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-
-- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -7273,7 +7666,7 @@
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-- fi
-+fi
-
- cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-
-@@ -7288,16 +7681,16 @@
- sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-
--echo "$as_me:7291: checking if we should define _POSIX_C_SOURCE" >&5
-+echo "$as_me:7684: checking if we should define _POSIX_C_SOURCE" >&5
- echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_posix_c_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--echo "${as_me:-configure}:7297: testing if the symbol is already defined go no further ..." 1>&5
-+echo "${as_me:-configure}:7690: testing if the symbol is already defined go no further ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 7300 "configure"
-+#line 7693 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7312,16 +7705,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7315: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7708: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7318: \$? = $ac_status" >&5
-+ echo "$as_me:7711: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7321: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7714: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7324: \$? = $ac_status" >&5
-+ echo "$as_me:7717: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_posix_c_source=no
- else
-@@ -7342,7 +7735,7 @@
- esac
- if test "$cf_want_posix_source" = yes ; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 7345 "configure"
-+#line 7738 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7357,16 +7750,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7360: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7753: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7363: \$? = $ac_status" >&5
-+ echo "$as_me:7756: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7366: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7759: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7369: \$? = $ac_status" >&5
-+ echo "$as_me:7762: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -7377,15 +7770,15 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-
--echo "${as_me:-configure}:7380: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+echo "${as_me:-configure}:7773: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-
--echo "${as_me:-configure}:7385: testing if the second compile does not leave our definition intact error ..." 1>&5
-+echo "${as_me:-configure}:7778: testing if the second compile does not leave our definition intact error ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 7388 "configure"
-+#line 7781 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -7400,16 +7793,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7403: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7796: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7406: \$? = $ac_status" >&5
-+ echo "$as_me:7799: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7409: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7802: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7412: \$? = $ac_status" >&5
-+ echo "$as_me:7805: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -7425,7 +7818,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:7428: result: $cf_cv_posix_c_source" >&5
-+echo "$as_me:7821: result: $cf_cv_posix_c_source" >&5
- echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-
- if test "$cf_cv_posix_c_source" != no ; then
-@@ -7500,29 +7893,293 @@
- CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+fi
-+
-+ ;;
-+esac
-+
-+if test -n "$cf_xopen_source" ; then
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_xopen_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+fi
-+
-+if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
-+ echo "$as_me:7994: checking if _XOPEN_SOURCE really is set" >&5
-+echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7997 "configure"
-+#include "confdefs.h"
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8012: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8015: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8018: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8021: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_XOPEN_SOURCE_set=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_XOPEN_SOURCE_set=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ echo "$as_me:8030: result: $cf_XOPEN_SOURCE_set" >&5
-+echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
-+ if test $cf_XOPEN_SOURCE_set = yes
-+ then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8035 "configure"
-+#include "confdefs.h"
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+
-+#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8050: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8053: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8056: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8059: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_XOPEN_SOURCE_set_ok=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_XOPEN_SOURCE_set_ok=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ if test $cf_XOPEN_SOURCE_set_ok = no
-+ then
-+ { echo "$as_me:8070: WARNING: _XOPEN_SOURCE is lower than requested" >&5
-+echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
-+ fi
-+ else
-+
-+echo "$as_me:8075: checking if we should define _XOPEN_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_xopen_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8082 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8101: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8104: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8107: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8110: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 8119 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8138: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8141: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8144: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8147: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_xopen_source=$cf_XOPEN_SOURCE
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS="$cf_save"
-+
- fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-+echo "$as_me:8162: result: $cf_cv_xopen_source" >&5
-+echo "${ECHO_T}$cf_cv_xopen_source" >&6
-
--fi
-+if test "$cf_cv_xopen_source" != no ; then
-
-- ;;
--esac
-+CFLAGS=`echo "$CFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-
--if test -n "$cf_xopen_source" ; then
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-
- cf_fix_cppflags=no
- cf_new_cflags=
- cf_new_cppflags=
- cf_new_extra_cppflags=
-
--for cf_add_cflags in $cf_xopen_source
-+for cf_add_cflags in $cf_temp_xopen_source
- do
- case $cf_fix_cppflags in
- no)
-@@ -7597,16 +8254,19 @@
-
- fi
-
-+ fi
-+fi
-+
- # Work around breakage on OS X
-
--echo "$as_me:7602: checking if SIGWINCH is defined" >&5
-+echo "$as_me:8262: checking if SIGWINCH is defined" >&5
- echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
- if test "${cf_cv_define_sigwinch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 7609 "configure"
-+#line 8269 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -7621,23 +8281,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7624: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8284: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7627: \$? = $ac_status" >&5
-+ echo "$as_me:8287: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7630: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8290: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7633: \$? = $ac_status" >&5
-+ echo "$as_me:8293: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_define_sigwinch=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 7640 "configure"
-+#line 8300 "configure"
- #include "confdefs.h"
-
- #undef _XOPEN_SOURCE
-@@ -7655,16 +8315,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7658: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8318: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7661: \$? = $ac_status" >&5
-+ echo "$as_me:8321: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7664: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8324: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7667: \$? = $ac_status" >&5
-+ echo "$as_me:8327: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_define_sigwinch=maybe
- else
-@@ -7678,11 +8338,11 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:7681: result: $cf_cv_define_sigwinch" >&5
-+echo "$as_me:8341: result: $cf_cv_define_sigwinch" >&5
- echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
-
- if test "$cf_cv_define_sigwinch" = maybe ; then
--echo "$as_me:7685: checking for actual SIGWINCH definition" >&5
-+echo "$as_me:8345: checking for actual SIGWINCH definition" >&5
- echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
- if test "${cf_cv_fixup_sigwinch+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -7693,7 +8353,7 @@
- while test $cf_sigwinch != 1
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 7696 "configure"
-+#line 8356 "configure"
- #include "confdefs.h"
-
- #undef _XOPEN_SOURCE
-@@ -7715,16 +8375,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7718: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8378: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7721: \$? = $ac_status" >&5
-+ echo "$as_me:8381: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7724: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8384: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7727: \$? = $ac_status" >&5
-+ echo "$as_me:8387: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_fixup_sigwinch=$cf_sigwinch
- break
-@@ -7738,7 +8398,7 @@
- done
-
- fi
--echo "$as_me:7741: result: $cf_cv_fixup_sigwinch" >&5
-+echo "$as_me:8401: result: $cf_cv_fixup_sigwinch" >&5
- echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
-
- if test "$cf_cv_fixup_sigwinch" != unknown ; then
-@@ -7748,13 +8408,13 @@
-
- # Checks for CODESET support.
-
-- echo "$as_me:7751: checking for nl_langinfo and CODESET" >&5
-+ echo "$as_me:8411: checking for nl_langinfo and CODESET" >&5
- echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
- if test "${am_cv_langinfo_codeset+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 7757 "configure"
-+#line 8417 "configure"
- #include "confdefs.h"
- #include <langinfo.h>
- int
-@@ -7766,16 +8426,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7769: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8429: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7772: \$? = $ac_status" >&5
-+ echo "$as_me:8432: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7775: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8435: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7778: \$? = $ac_status" >&5
-+ echo "$as_me:8438: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- am_cv_langinfo_codeset=yes
- else
-@@ -7786,7 +8446,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
- fi
--echo "$as_me:7789: result: $am_cv_langinfo_codeset" >&5
-+echo "$as_me:8449: result: $am_cv_langinfo_codeset" >&5
- echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
- if test $am_cv_langinfo_codeset = yes; then
-
-@@ -7800,7 +8460,7 @@
- NCURSES_OK_WCHAR_T=
- NCURSES_OK_WINT_T=
-
--echo "$as_me:7803: checking if you want wide-character code" >&5
-+echo "$as_me:8463: checking if you want wide-character code" >&5
- echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
-
- # Check whether --enable-widec or --disable-widec was given.
-@@ -7810,23 +8470,72 @@
- else
- with_widec=no
- fi;
--echo "$as_me:7813: result: $with_widec" >&5
-+echo "$as_me:8473: result: $with_widec" >&5
- echo "${ECHO_T}$with_widec" >&6
--if test "$with_widec" = yes ; then
-+if test "x$with_widec" = xyes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_WIDEC_SUPPORT 1
- EOF
-
-- case "$CFLAGS $CPPFLAGS" in #(vi
-- *-D_XOPEN_SOURCE=500) #(vi
-- ;;
-- *)
-+cat >>confdefs.h <<\EOF
-+#define NCURSES_WIDECHAR 1
-+EOF
-+
-+echo "$as_me:8486: checking if wchar.h can be used as is" >&5
-+echo $ECHO_N "checking if wchar.h can be used as is... $ECHO_C" >&6
-+if test "${cf_cv_wchar_h_okay+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 8493 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <wchar.h>
-+
-+int
-+main ()
-+{
-+
-+ wint_t foo = 0;
-+ int bar = iswpunct(foo)
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:8510: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8513: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:8516: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8519: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_wchar_h_okay=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_wchar_h_okay=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+fi
-+echo "$as_me:8529: result: $cf_cv_wchar_h_okay" >&5
-+echo "${ECHO_T}$cf_cv_wchar_h_okay" >&6
-
--echo "$as_me:7826: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-+if test $cf_cv_wchar_h_okay = no
-+then
-+
-+echo "$as_me:8535: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
- echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 7829 "configure"
-+#line 8538 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
-
-@@ -7842,16 +8551,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7845: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8554: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7848: \$? = $ac_status" >&5
-+ echo "$as_me:8557: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7851: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8560: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7854: \$? = $ac_status" >&5
-+ echo "$as_me:8563: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_result=no
- else
-@@ -7860,16 +8569,16 @@
- cf_result=yes
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:7863: result: $cf_result" >&5
-+echo "$as_me:8572: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
-
- if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
- elif test "x" != "x" ; then
-- echo "$as_me:7869: checking checking for compatible value versus " >&5
-+ echo "$as_me:8578: checking checking for compatible value versus " >&5
- echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 7872 "configure"
-+#line 8581 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
-
-@@ -7885,16 +8594,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7888: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7891: \$? = $ac_status" >&5
-+ echo "$as_me:8600: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7894: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8603: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7897: \$? = $ac_status" >&5
-+ echo "$as_me:8606: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_result=yes
- else
-@@ -7903,7 +8612,7 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- echo "$as_me:7906: result: $cf_result" >&5
-+ echo "$as_me:8615: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
-@@ -7911,8 +8620,7 @@
- fi
- fi
-
-- ;;
-- esac
-+fi
-
- # with_overwrite=no
- NCURSES_CH_T=cchar_t
-@@ -7920,13 +8628,13 @@
- for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:7923: checking for $ac_func" >&5
-+echo "$as_me:8631: checking for $ac_func" >&5
- echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
- if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 7929 "configure"
-+#line 8637 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-@@ -7949,7 +8657,7 @@
- #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
- choke me
- #else
--f = $ac_func;
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -7957,16 +8665,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7960: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8668: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7963: \$? = $ac_status" >&5
-+ echo "$as_me:8671: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7966: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8674: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7969: \$? = $ac_status" >&5
-+ echo "$as_me:8677: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
- else
-@@ -7976,7 +8684,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:7979: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "$as_me:8687: 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
-@@ -7986,9 +8694,9 @@
- fi
- done
-
-- if test "$ac_cv_func_putwc" != yes ; then
-+ if test "x$ac_cv_func_putwc" != xyes ; then
-
--echo "$as_me:7991: checking for multibyte character support" >&5
-+echo "$as_me:8699: checking for multibyte character support" >&5
- echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
- if test "${cf_cv_utf8_lib+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -7996,7 +8704,7 @@
-
- cf_save_LIBS="$LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7999 "configure"
-+#line 8707 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8009,16 +8717,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8012: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8720: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8015: \$? = $ac_status" >&5
-+ echo "$as_me:8723: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8018: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8726: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8021: \$? = $ac_status" >&5
-+ echo "$as_me:8729: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_utf8_lib=yes
- else
-@@ -8030,12 +8738,12 @@
- cf_cv_header_path_utf8=
- cf_cv_library_path_utf8=
-
--echo "${as_me:-configure}:8033: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:8741: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-
- cf_save_LIBS="$LIBS"
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8038 "configure"
-+#line 8746 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -8048,16 +8756,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8051: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8759: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8054: \$? = $ac_status" >&5
-+ echo "$as_me:8762: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8057: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8765: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8060: \$? = $ac_status" >&5
-+ echo "$as_me:8768: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_find_linkage_utf8=yes
-@@ -8071,7 +8779,7 @@
- LIBS="-lutf8 $cf_save_LIBS"
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8074 "configure"
-+#line 8782 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -8084,16 +8792,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8087: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8795: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8090: \$? = $ac_status" >&5
-+ echo "$as_me:8798: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8093: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8801: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8096: \$? = $ac_status" >&5
-+ echo "$as_me:8804: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_find_linkage_utf8=yes
-@@ -8110,9 +8818,9 @@
-
- test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
-
--echo "${as_me:-configure}:8113: testing find linkage for utf8 library ..." 1>&5
-+echo "${as_me:-configure}:8821: testing find linkage for utf8 library ..." 1>&5
-
--echo "${as_me:-configure}:8115: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:8823: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
-
- cf_save_CPPFLAGS="$CPPFLAGS"
- cf_test_CPPFLAGS="$CPPFLAGS"
-@@ -8225,11 +8933,11 @@
- if test -d $cf_cv_header_path_utf8 ; then
- test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-
--echo "${as_me:-configure}:8228: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:8936: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-
- CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8232 "configure"
-+#line 8940 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -8242,21 +8950,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8245: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8953: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8248: \$? = $ac_status" >&5
-+ echo "$as_me:8956: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8251: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8959: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8254: \$? = $ac_status" >&5
-+ echo "$as_me:8962: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
-
--echo "${as_me:-configure}:8259: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:8967: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
-
- cf_cv_find_linkage_utf8=maybe
- cf_test_CPPFLAGS="$CPPFLAGS"
-@@ -8274,7 +8982,7 @@
-
- if test "$cf_cv_find_linkage_utf8" = maybe ; then
-
--echo "${as_me:-configure}:8277: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
-+echo "${as_me:-configure}:8985: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
-
- cf_save_LIBS="$LIBS"
- cf_save_LDFLAGS="$LDFLAGS"
-@@ -8371,13 +9079,13 @@
- if test -d $cf_cv_library_path_utf8 ; then
- test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-
--echo "${as_me:-configure}:8374: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:9082: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-
- CPPFLAGS="$cf_test_CPPFLAGS"
- LIBS="-lutf8 $cf_save_LIBS"
- LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8380 "configure"
-+#line 9088 "configure"
- #include "confdefs.h"
-
- #include <libutf8.h>
-@@ -8390,21 +9098,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8393: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9101: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8396: \$? = $ac_status" >&5
-+ echo "$as_me:9104: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8399: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9107: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8402: \$? = $ac_status" >&5
-+ echo "$as_me:9110: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
-
--echo "${as_me:-configure}:8407: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
-+echo "${as_me:-configure}:9115: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
-
- cf_cv_find_linkage_utf8=yes
- cf_cv_library_file_utf8="-lutf8"
-@@ -8446,13 +9154,14 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:8449: result: $cf_cv_utf8_lib" >&5
-+echo "$as_me:9157: result: $cf_cv_utf8_lib" >&5
- echo "${ECHO_T}$cf_cv_utf8_lib" >&6
-
- # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
- # ncurses/ncursesw:
- if test "$cf_cv_utf8_lib" = "add-on" ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBUTF8_H 1
- EOF
-
-@@ -8480,7 +9189,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8483 "configure"
-+#line 9192 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8492,16 +9201,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8495: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9204: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8498: \$? = $ac_status" >&5
-+ echo "$as_me:9207: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8501: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9210: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8504: \$? = $ac_status" >&5
-+ echo "$as_me:9213: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -8518,7 +9227,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:8521: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:9230: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -8552,7 +9261,7 @@
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--echo "${as_me:-configure}:8555: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:9264: testing adding $cf_add_libdir to library-path ..." 1>&5
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
-@@ -8569,14 +9278,14 @@
- fi
-
- # This is needed on Tru64 5.0 to declare mbstate_t
--echo "$as_me:8572: checking if we must include wchar.h to declare mbstate_t" >&5
-+echo "$as_me:9281: checking if we must include wchar.h to declare mbstate_t" >&5
- echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
- if test "${cf_cv_mbstate_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8579 "configure"
-+#line 9288 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8594,23 +9303,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9306: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8600: \$? = $ac_status" >&5
-+ echo "$as_me:9309: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8603: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9312: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8606: \$? = $ac_status" >&5
-+ echo "$as_me:9315: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_mbstate_t=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 8613 "configure"
-+#line 9322 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8629,16 +9338,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8632: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9341: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8635: \$? = $ac_status" >&5
-+ echo "$as_me:9344: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8638: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9347: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8641: \$? = $ac_status" >&5
-+ echo "$as_me:9350: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_mbstate_t=yes
- else
-@@ -8650,11 +9359,12 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:8653: result: $cf_cv_mbstate_t" >&5
-+echo "$as_me:9362: result: $cf_cv_mbstate_t" >&5
- echo "${ECHO_T}$cf_cv_mbstate_t" >&6
-
- if test "$cf_cv_mbstate_t" = yes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NEED_WCHAR_H 1
- EOF
-
-@@ -8667,14 +9377,14 @@
- fi
-
- # This is needed on Tru64 5.0 to declare wchar_t
--echo "$as_me:8670: checking if we must include wchar.h to declare wchar_t" >&5
-+echo "$as_me:9380: checking if we must include wchar.h to declare wchar_t" >&5
- echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
- if test "${cf_cv_wchar_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8677 "configure"
-+#line 9387 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8692,23 +9402,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8695: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9405: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8698: \$? = $ac_status" >&5
-+ echo "$as_me:9408: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8701: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9411: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8704: \$? = $ac_status" >&5
-+ echo "$as_me:9414: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wchar_t=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 8711 "configure"
-+#line 9421 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8727,16 +9437,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8730: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9440: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8733: \$? = $ac_status" >&5
-+ echo "$as_me:9443: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8736: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9446: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8739: \$? = $ac_status" >&5
-+ echo "$as_me:9449: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wchar_t=yes
- else
-@@ -8748,11 +9458,12 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:8751: result: $cf_cv_wchar_t" >&5
-+echo "$as_me:9461: result: $cf_cv_wchar_t" >&5
- echo "${ECHO_T}$cf_cv_wchar_t" >&6
-
- if test "$cf_cv_wchar_t" = yes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NEED_WCHAR_H 1
- EOF
-
-@@ -8770,14 +9481,14 @@
- fi
-
- # This is needed on Tru64 5.0 to declare wint_t
--echo "$as_me:8773: checking if we must include wchar.h to declare wint_t" >&5
-+echo "$as_me:9484: checking if we must include wchar.h to declare wint_t" >&5
- echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
- if test "${cf_cv_wint_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8780 "configure"
-+#line 9491 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8795,23 +9506,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8798: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9509: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8801: \$? = $ac_status" >&5
-+ echo "$as_me:9512: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8804: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9515: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8807: \$? = $ac_status" >&5
-+ echo "$as_me:9518: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wint_t=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 8814 "configure"
-+#line 9525 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -8830,16 +9541,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8833: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9544: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8836: \$? = $ac_status" >&5
-+ echo "$as_me:9547: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8839: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9550: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8842: \$? = $ac_status" >&5
-+ echo "$as_me:9553: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wint_t=yes
- else
-@@ -8851,11 +9562,12 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:8854: result: $cf_cv_wint_t" >&5
-+echo "$as_me:9565: result: $cf_cv_wint_t" >&5
- echo "${ECHO_T}$cf_cv_wint_t" >&6
-
- if test "$cf_cv_wint_t" = yes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NEED_WCHAR_H 1
- EOF
-
-@@ -8873,7 +9585,8 @@
- fi
-
- if test "$NCURSES_MBSTATE_T" != 0; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NEED_MBSTATE_T_DEF 1
- EOF
-
-@@ -8890,7 +9603,7 @@
- ;;
- esac
-
--echo "$as_me:8893: checking whether to enable _LP64 definition in curses.h" >&5
-+echo "$as_me:9606: checking whether to enable _LP64 definition in curses.h" >&5
- echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
-
- # Check whether --enable-lp64 or --disable-lp64 was given.
-@@ -8900,10 +9613,10 @@
- else
- with_lp64=$default_with_lp64
- fi;
--echo "$as_me:8903: result: $with_lp64" >&5
-+echo "$as_me:9616: result: $with_lp64" >&5
- echo "${ECHO_T}$with_lp64" >&6
-
--if test "$with_lp64" = yes ; then
-+if test "x$with_lp64" = xyes ; then
- cf_cv_enable_lp64=1
- else
- cf_cv_enable_lp64=0
-@@ -8916,7 +9629,7 @@
- fi;
- if test "$enable_largefile" != no; then
-
-- echo "$as_me:8919: checking for special C compiler options needed for large files" >&5
-+ echo "$as_me:9632: checking for special C compiler options needed for large files" >&5
- echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_largefile_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8928,7 +9641,7 @@
- # IRIX 6.2 and later do not support large files by default,
- # so use the C compiler's -n32 option if that helps.
- cat >conftest.$ac_ext <<_ACEOF
--#line 8931 "configure"
-+#line 9644 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-@@ -8948,16 +9661,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8951: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9664: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8954: \$? = $ac_status" >&5
-+ echo "$as_me:9667: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8957: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9670: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8960: \$? = $ac_status" >&5
-+ echo "$as_me:9673: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -8967,16 +9680,16 @@
- rm -f conftest.$ac_objext
- CC="$CC -n32"
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8970: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9683: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8973: \$? = $ac_status" >&5
-+ echo "$as_me:9686: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8976: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9689: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8979: \$? = $ac_status" >&5
-+ echo "$as_me:9692: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_CC=' -n32'; break
- else
-@@ -8990,13 +9703,13 @@
- rm -f conftest.$ac_ext
- fi
- fi
--echo "$as_me:8993: result: $ac_cv_sys_largefile_CC" >&5
-+echo "$as_me:9706: result: $ac_cv_sys_largefile_CC" >&5
- echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
- if test "$ac_cv_sys_largefile_CC" != no; then
- CC=$CC$ac_cv_sys_largefile_CC
- fi
-
-- echo "$as_me:8999: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-+ echo "$as_me:9712: checking for _FILE_OFFSET_BITS value needed for large files" >&5
- echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_file_offset_bits+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9004,7 +9717,7 @@
- while :; do
- ac_cv_sys_file_offset_bits=no
- cat >conftest.$ac_ext <<_ACEOF
--#line 9007 "configure"
-+#line 9720 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-@@ -9024,16 +9737,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9027: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9740: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9030: \$? = $ac_status" >&5
-+ echo "$as_me:9743: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9033: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9746: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9036: \$? = $ac_status" >&5
-+ echo "$as_me:9749: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -9042,7 +9755,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 9045 "configure"
-+#line 9758 "configure"
- #include "confdefs.h"
- #define _FILE_OFFSET_BITS 64
- #include <sys/types.h>
-@@ -9063,16 +9776,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9066: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9779: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9069: \$? = $ac_status" >&5
-+ echo "$as_me:9782: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9072: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9785: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9075: \$? = $ac_status" >&5
-+ echo "$as_me:9788: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_file_offset_bits=64; break
- else
-@@ -9083,7 +9796,7 @@
- break
- done
- fi
--echo "$as_me:9086: result: $ac_cv_sys_file_offset_bits" >&5
-+echo "$as_me:9799: result: $ac_cv_sys_file_offset_bits" >&5
- echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
- if test "$ac_cv_sys_file_offset_bits" != no; then
-
-@@ -9093,7 +9806,7 @@
-
- fi
- rm -rf conftest*
-- echo "$as_me:9096: checking for _LARGE_FILES value needed for large files" >&5
-+ echo "$as_me:9809: checking for _LARGE_FILES value needed for large files" >&5
- echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_large_files+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9101,7 +9814,7 @@
- while :; do
- ac_cv_sys_large_files=no
- cat >conftest.$ac_ext <<_ACEOF
--#line 9104 "configure"
-+#line 9817 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-@@ -9121,16 +9834,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9124: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9837: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9127: \$? = $ac_status" >&5
-+ echo "$as_me:9840: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9130: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9843: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9133: \$? = $ac_status" >&5
-+ echo "$as_me:9846: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -9139,7 +9852,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 9142 "configure"
-+#line 9855 "configure"
- #include "confdefs.h"
- #define _LARGE_FILES 1
- #include <sys/types.h>
-@@ -9160,16 +9873,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9163: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9876: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9166: \$? = $ac_status" >&5
-+ echo "$as_me:9879: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9169: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9882: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9172: \$? = $ac_status" >&5
-+ echo "$as_me:9885: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_large_files=1; break
- else
-@@ -9180,7 +9893,7 @@
- break
- done
- fi
--echo "$as_me:9183: result: $ac_cv_sys_large_files" >&5
-+echo "$as_me:9896: result: $ac_cv_sys_large_files" >&5
- echo "${ECHO_T}$ac_cv_sys_large_files" >&6
- if test "$ac_cv_sys_large_files" != no; then
-
-@@ -9193,7 +9906,7 @@
- fi
-
- if test "$enable_largefile" != no ; then
-- echo "$as_me:9196: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-+ echo "$as_me:9909: checking for _LARGEFILE_SOURCE value needed for large files" >&5
- echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
- if test "${ac_cv_sys_largefile_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -9201,7 +9914,7 @@
- while :; do
- ac_cv_sys_largefile_source=no
- cat >conftest.$ac_ext <<_ACEOF
--#line 9204 "configure"
-+#line 9917 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -9213,16 +9926,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9216: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9929: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9219: \$? = $ac_status" >&5
-+ echo "$as_me:9932: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9222: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9935: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9225: \$? = $ac_status" >&5
-+ echo "$as_me:9938: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -9231,7 +9944,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 9234 "configure"
-+#line 9947 "configure"
- #include "confdefs.h"
- #define _LARGEFILE_SOURCE 1
- #include <stdio.h>
-@@ -9244,16 +9957,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9247: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:9960: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9250: \$? = $ac_status" >&5
-+ echo "$as_me:9963: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9253: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9966: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9256: \$? = $ac_status" >&5
-+ echo "$as_me:9969: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_largefile_source=1; break
- else
-@@ -9264,7 +9977,7 @@
- break
- done
- fi
--echo "$as_me:9267: result: $ac_cv_sys_largefile_source" >&5
-+echo "$as_me:9980: result: $ac_cv_sys_largefile_source" >&5
- echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
- if test "$ac_cv_sys_largefile_source" != no; then
-
-@@ -9278,13 +9991,13 @@
- # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
- # in glibc 2.1.3, but that breaks too many other things.
- # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
--echo "$as_me:9281: checking for fseeko" >&5
-+echo "$as_me:9994: checking for fseeko" >&5
- echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
- if test "${ac_cv_func_fseeko+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 9287 "configure"
-+#line 10000 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -9296,16 +10009,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9299: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10012: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9302: \$? = $ac_status" >&5
-+ echo "$as_me:10015: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9305: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10018: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9308: \$? = $ac_status" >&5
-+ echo "$as_me:10021: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_fseeko=yes
- else
-@@ -9315,7 +10028,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:9318: result: $ac_cv_func_fseeko" >&5
-+echo "$as_me:10031: result: $ac_cv_func_fseeko" >&5
- echo "${ECHO_T}$ac_cv_func_fseeko" >&6
- if test $ac_cv_func_fseeko = yes; then
-
-@@ -9336,14 +10049,14 @@
- test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
- test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
-
-- echo "$as_me:9339: checking whether to use struct dirent64" >&5
-+ echo "$as_me:10052: checking whether to use struct dirent64" >&5
- echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
- if test "${cf_cv_struct_dirent64+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 9346 "configure"
-+#line 10059 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -9364,16 +10077,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:9367: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:10080: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:9370: \$? = $ac_status" >&5
-+ echo "$as_me:10083: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:9373: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10086: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9376: \$? = $ac_status" >&5
-+ echo "$as_me:10089: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_struct_dirent64=yes
- else
-@@ -9384,16 +10097,17 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:9387: result: $cf_cv_struct_dirent64" >&5
-+echo "$as_me:10100: result: $cf_cv_struct_dirent64" >&5
- echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
-- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
-+ test "$cf_cv_struct_dirent64" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_STRUCT_DIRENT64 1
- EOF
-
- fi
-
- ### use option --disable-tparm-varargs to make tparm() conform to X/Open
--echo "$as_me:9396: checking if you want tparm not to use X/Open fixed-parameter list" >&5
-+echo "$as_me:10110: checking if you want tparm not to use X/Open fixed-parameter list" >&5
- echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
-
- # Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
-@@ -9403,14 +10117,14 @@
- else
- with_tparm_varargs=yes
- fi;
--echo "$as_me:9406: result: $with_tparm_varargs" >&5
-+echo "$as_me:10120: result: $with_tparm_varargs" >&5
- echo "${ECHO_T}$with_tparm_varargs" >&6
- NCURSES_TPARM_VARARGS=0
--test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
-+test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1
-
- ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
- if test "$with_ticlib" != no ; then
--echo "$as_me:9413: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
-+echo "$as_me:10127: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
- echo $ECHO_N "checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library... $ECHO_C" >&6
-
- # Check whether --enable-tic-depends or --disable-tic-depends was given.
-@@ -9420,14 +10134,14 @@
- else
- with_tic_depends=yes
- fi;
--echo "$as_me:9423: result: $with_tic_depends" >&5
-+echo "$as_me:10137: result: $with_tic_depends" >&5
- echo "${ECHO_T}$with_tic_depends" >&6
- else
- with_tic_depends=no
- fi
-
- ### use option --with-bool to override bool's type
--echo "$as_me:9430: checking for type of bool" >&5
-+echo "$as_me:10144: checking for type of bool" >&5
- echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
-
- # Check whether --with-bool or --without-bool was given.
-@@ -9437,10 +10151,10 @@
- else
- NCURSES_BOOL=auto
- fi;
--echo "$as_me:9440: result: $NCURSES_BOOL" >&5
-+echo "$as_me:10154: result: $NCURSES_BOOL" >&5
- echo "${ECHO_T}$NCURSES_BOOL" >&6
-
--echo "$as_me:9443: checking for alternate terminal capabilities file" >&5
-+echo "$as_me:10157: checking for alternate terminal capabilities file" >&5
- echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
-
- # Check whether --with-caps or --without-caps was given.
-@@ -9451,11 +10165,11 @@
- TERMINFO_CAPS=Caps
- fi;
- test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
--echo "$as_me:9454: result: $TERMINFO_CAPS" >&5
-+echo "$as_me:10168: result: $TERMINFO_CAPS" >&5
- echo "${ECHO_T}$TERMINFO_CAPS" >&6
-
- ### use option --with-chtype to override chtype's type
--echo "$as_me:9458: checking for type of chtype" >&5
-+echo "$as_me:10172: checking for type of chtype" >&5
- echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
-
- # Check whether --with-chtype or --without-chtype was given.
-@@ -9465,11 +10179,11 @@
- else
- NCURSES_CHTYPE=auto
- fi;
--echo "$as_me:9468: result: $NCURSES_CHTYPE" >&5
-+echo "$as_me:10182: result: $NCURSES_CHTYPE" >&5
- echo "${ECHO_T}$NCURSES_CHTYPE" >&6
-
- ### use option --with-ospeed to override ospeed's type
--echo "$as_me:9472: checking for type of ospeed" >&5
-+echo "$as_me:10186: checking for type of ospeed" >&5
- echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
-
- # Check whether --with-ospeed or --without-ospeed was given.
-@@ -9479,11 +10193,11 @@
- else
- NCURSES_OSPEED=short
- fi;
--echo "$as_me:9482: result: $NCURSES_OSPEED" >&5
-+echo "$as_me:10196: result: $NCURSES_OSPEED" >&5
- echo "${ECHO_T}$NCURSES_OSPEED" >&6
-
- ### use option --with-mmask-t to override mmask_t's type
--echo "$as_me:9486: checking for type of mmask_t" >&5
-+echo "$as_me:10200: checking for type of mmask_t" >&5
- echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
-
- # Check whether --with-mmask-t or --without-mmask-t was given.
-@@ -9493,11 +10207,11 @@
- else
- NCURSES_MMASK_T=auto
- fi;
--echo "$as_me:9496: result: $NCURSES_MMASK_T" >&5
-+echo "$as_me:10210: result: $NCURSES_MMASK_T" >&5
- echo "${ECHO_T}$NCURSES_MMASK_T" >&6
-
- ### use option --with-ccharw-max to override CCHARW_MAX size
--echo "$as_me:9500: checking for size CCHARW_MAX" >&5
-+echo "$as_me:10214: checking for size CCHARW_MAX" >&5
- echo $ECHO_N "checking for size CCHARW_MAX... $ECHO_C" >&6
-
- # Check whether --with-ccharw-max or --without-ccharw-max was given.
-@@ -9507,11 +10221,25 @@
- else
- NCURSES_CCHARW_MAX=5
- fi;
--echo "$as_me:9510: result: $NCURSES_CCHARW_MAX" >&5
-+echo "$as_me:10224: result: $NCURSES_CCHARW_MAX" >&5
- echo "${ECHO_T}$NCURSES_CCHARW_MAX" >&6
-
-+### use option --with-tparm-arg to override tparm's argument type
-+echo "$as_me:10228: checking for type of tparm args" >&5
-+echo $ECHO_N "checking for type of tparm args... $ECHO_C" >&6
-+
-+# Check whether --with-tparm-arg or --without-tparm-arg was given.
-+if test "${with_tparm_arg+set}" = set; then
-+ withval="$with_tparm_arg"
-+ NCURSES_TPARM_ARG="$withval"
-+else
-+ NCURSES_TPARM_ARG=long
-+fi;
-+echo "$as_me:10238: result: $NCURSES_TPARM_ARG" >&5
-+echo "${ECHO_T}$NCURSES_TPARM_ARG" >&6
-+
- ### Enable compiling-in rcs id's
--echo "$as_me:9514: checking if RCS identifiers should be compiled-in" >&5
-+echo "$as_me:10242: checking if RCS identifiers should be compiled-in" >&5
- echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
-
- # Check whether --with-rcs-ids or --without-rcs-ids was given.
-@@ -9521,15 +10249,16 @@
- else
- with_rcs_ids=no
- fi;
--echo "$as_me:9524: result: $with_rcs_ids" >&5
-+echo "$as_me:10252: result: $with_rcs_ids" >&5
- echo "${ECHO_T}$with_rcs_ids" >&6
--test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_rcs_ids" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_RCS_IDS 1
- EOF
-
- ###############################################################################
-
--echo "$as_me:9532: checking format of man-pages" >&5
-+echo "$as_me:10261: checking format of man-pages" >&5
- echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
-
- # Check whether --with-manpage-format or --without-manpage-format was given.
-@@ -9618,14 +10347,14 @@
- ;;
- esac
-
--echo "$as_me:9621: result: $MANPAGE_FORMAT" >&5
-+echo "$as_me:10350: result: $MANPAGE_FORMAT" >&5
- echo "${ECHO_T}$MANPAGE_FORMAT" >&6
- if test -n "$cf_unknown" ; then
-- { echo "$as_me:9624: WARNING: Unexpected manpage-format $cf_unknown" >&5
-+ { echo "$as_me:10353: WARNING: Unexpected manpage-format $cf_unknown" >&5
- echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
- fi
-
--echo "$as_me:9628: checking for manpage renaming" >&5
-+echo "$as_me:10357: checking for manpage renaming" >&5
- echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
-
- # Check whether --with-manpage-renames or --without-manpage-renames was given.
-@@ -9653,7 +10382,7 @@
- if test -f $srcdir/man/$MANPAGE_RENAMES ; then
- MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
- elif test ! -f $MANPAGE_RENAMES ; then
-- { { echo "$as_me:9656: error: not a filename: $MANPAGE_RENAMES" >&5
-+ { { echo "$as_me:10385: error: not a filename: $MANPAGE_RENAMES" >&5
- echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -9667,10 +10396,10 @@
- fi
- fi
-
--echo "$as_me:9670: result: $MANPAGE_RENAMES" >&5
-+echo "$as_me:10399: result: $MANPAGE_RENAMES" >&5
- echo "${ECHO_T}$MANPAGE_RENAMES" >&6
-
--echo "$as_me:9673: checking if manpage aliases will be installed" >&5
-+echo "$as_me:10402: checking if manpage aliases will be installed" >&5
- echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
-
- # Check whether --with-manpage-aliases or --without-manpage-aliases was given.
-@@ -9681,7 +10410,7 @@
- MANPAGE_ALIASES=yes
- fi;
-
--echo "$as_me:9684: result: $MANPAGE_ALIASES" >&5
-+echo "$as_me:10413: result: $MANPAGE_ALIASES" >&5
- echo "${ECHO_T}$MANPAGE_ALIASES" >&6
-
- case "x$LN_S" in #(vi
-@@ -9695,7 +10424,7 @@
-
- MANPAGE_SYMLINKS=no
- if test "$MANPAGE_ALIASES" = yes ; then
--echo "$as_me:9698: checking if manpage symlinks should be used" >&5
-+echo "$as_me:10427: checking if manpage symlinks should be used" >&5
- echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
-
- # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
-@@ -9708,17 +10437,17 @@
-
- if test "$$cf_use_symlinks" = no; then
- if test "$MANPAGE_SYMLINKS" = yes ; then
-- { echo "$as_me:9711: WARNING: cannot make symlinks" >&5
-+ { echo "$as_me:10440: WARNING: cannot make symlinks" >&5
- echo "$as_me: WARNING: cannot make symlinks" >&2;}
- MANPAGE_SYMLINKS=no
- fi
- fi
-
--echo "$as_me:9717: result: $MANPAGE_SYMLINKS" >&5
-+echo "$as_me:10446: result: $MANPAGE_SYMLINKS" >&5
- echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
- fi
-
--echo "$as_me:9721: checking for manpage tbl" >&5
-+echo "$as_me:10450: checking for manpage tbl" >&5
- echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
-
- # Check whether --with-manpage-tbl or --without-manpage-tbl was given.
-@@ -9729,7 +10458,7 @@
- MANPAGE_TBL=no
- fi;
-
--echo "$as_me:9732: result: $MANPAGE_TBL" >&5
-+echo "$as_me:10461: result: $MANPAGE_TBL" >&5
- echo "${ECHO_T}$MANPAGE_TBL" >&6
-
- if test "$prefix" = "NONE" ; then
-@@ -9776,6 +10505,7 @@
- # this script is generated by the configure-script CF_MAN_PAGES macro.
-
- prefix="$cf_prefix"
-+datarootdir="$datarootdir"
- datadir="$datadir"
-
- NCURSES_MAJOR="$NCURSES_MAJOR"
-@@ -9836,11 +10566,12 @@
- if test ! -f $cf_man_alias ; then
- cat >>$cf_man_alias <<-CF_EOF2
- s,@DATADIR@,\$datadir,g
-- s,@TERMINFO@,\$TERMINFO,g
-- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
-- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
-- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
-- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
-+ s,@TERMINFO@,\${TERMINFO:="no default value"},g
-+ s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
-+ s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
-+ s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
-+ s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
-+ s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
- CF_EOF
-
- for cf_name in captoinfo clear infocmp infotocap tabs tic toe tput tset
-@@ -9869,7 +10600,9 @@
-
- if test "$MANPAGE_ALIASES" != no ; then
- cat >>$cf_edit_man <<CF_EOF
-- aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
-+ nCurses=ignore.3x
-+ test $with_curses_h = yes && nCurses=ncurses.3x
-+ aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u; test \$inalias = \$nCurses && echo curses\`
- CF_EOF
- fi
-
-@@ -9915,6 +10648,13 @@
- fi
- CF_EOF
-
-+if test $with_overwrite != yes ; then
-+cat >>$cf_edit_man <<CF_EOF
-+ sed -e "/\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
-+ mv \$TMP.out \$TMP
-+CF_EOF
-+fi
-+
- if test $with_curses_h != yes ; then
- cat >>$cf_edit_man <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
-@@ -10051,7 +10791,7 @@
- ###############################################################################
-
- ### Note that some functions (such as const) are normally disabled anyway.
--echo "$as_me:10054: checking if you want to build with function extensions" >&5
-+echo "$as_me:10794: checking if you want to build with function extensions" >&5
- echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
-
- # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
-@@ -10061,39 +10801,52 @@
- else
- with_ext_funcs=yes
- fi;
--echo "$as_me:10064: result: $with_ext_funcs" >&5
-+echo "$as_me:10804: result: $with_ext_funcs" >&5
- echo "${ECHO_T}$with_ext_funcs" >&6
--if test "$with_ext_funcs" = yes ; then
-+if test "x$with_ext_funcs" = xyes ; then
- NCURSES_EXT_FUNCS=1
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_ASSUME_DEFAULT_COLORS 1
-+EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_CURSES_VERSION 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_HAS_KEY 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_RESIZETERM 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_RESIZE_TERM 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_TERM_ENTRY_H 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_USE_DEFAULT_COLORS 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
-+#define HAVE_USE_SCREEN 1
-+EOF
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_USE_WINDOW 1
-+EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_WRESIZE 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define NCURSES_EXT_FUNCS 1
- EOF
-
-@@ -10103,7 +10856,7 @@
- GENERATED_EXT_FUNCS=
- fi
-
--echo "$as_me:10106: checking if you want to build with experimental SCREEN extensions" >&5
-+echo "$as_me:10859: checking if you want to build with experimental SCREEN extensions" >&5
- echo $ECHO_N "checking if you want to build with experimental SCREEN extensions... $ECHO_C" >&6
-
- # Check whether --enable-sp-funcs or --disable-sp-funcs was given.
-@@ -10113,11 +10866,12 @@
- else
- with_sp_funcs=no
- fi;
--echo "$as_me:10116: result: $with_sp_funcs" >&5
-+echo "$as_me:10869: result: $with_sp_funcs" >&5
- echo "${ECHO_T}$with_sp_funcs" >&6
--if test "$with_sp_funcs" = yes ; then
-+if test "x$with_sp_funcs" = xyes ; then
- NCURSES_SP_FUNCS=1
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NCURSES_SP_FUNCS 1
- EOF
-
-@@ -10127,7 +10881,7 @@
- GENERATED_SP_FUNCS=
- fi
-
--echo "$as_me:10130: checking if you want to build with experimental terminal-driver" >&5
-+echo "$as_me:10884: checking if you want to build with experimental terminal-driver" >&5
- echo $ECHO_N "checking if you want to build with experimental terminal-driver... $ECHO_C" >&6
-
- # Check whether --enable-term-driver or --disable-term-driver was given.
-@@ -10137,22 +10891,23 @@
- else
- with_term_driver=no
- fi;
--echo "$as_me:10140: result: $with_term_driver" >&5
-+echo "$as_me:10894: result: $with_term_driver" >&5
- echo "${ECHO_T}$with_term_driver" >&6
--if test "$with_term_driver" = yes ; then
-- cat >>confdefs.h <<\EOF
-+if test "x$with_term_driver" = xyes ; then
-+
-+cat >>confdefs.h <<\EOF
- #define USE_TERM_DRIVER 1
- EOF
-
-- if test "$with_sp_funcs" != yes ; then
-- { { echo "$as_me:10148: error: The term-driver option relies upon sp-funcs" >&5
-+ if test "x$with_sp_funcs" != xyes ; then
-+ { { echo "$as_me:10903: error: The term-driver option relies upon sp-funcs" >&5
- echo "$as_me: error: The term-driver option relies upon sp-funcs" >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-
- ### use option --enable-const to turn on use of const beyond that in XSI.
--echo "$as_me:10155: checking for extended use of const keyword" >&5
-+echo "$as_me:10910: checking for extended use of const keyword" >&5
- echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
-
- # Check whether --enable-const or --disable-const was given.
-@@ -10162,15 +10917,15 @@
- else
- with_ext_const=no
- fi;
--echo "$as_me:10165: result: $with_ext_const" >&5
-+echo "$as_me:10920: result: $with_ext_const" >&5
- echo "${ECHO_T}$with_ext_const" >&6
- NCURSES_CONST='/*nothing*/'
--if test "$with_ext_const" = yes ; then
-+if test "x$with_ext_const" = xyes ; then
- NCURSES_CONST=const
- fi
-
- ### use option --enable-ext-colors to turn on use of colors beyond 16.
--echo "$as_me:10173: checking if you want to use extended colors" >&5
-+echo "$as_me:10928: checking if you want to use extended colors" >&5
- echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6
-
- # Check whether --enable-ext-colors or --disable-ext-colors was given.
-@@ -10180,12 +10935,12 @@
- else
- with_ext_colors=no
- fi;
--echo "$as_me:10183: result: $with_ext_colors" >&5
-+echo "$as_me:10938: result: $with_ext_colors" >&5
- echo "${ECHO_T}$with_ext_colors" >&6
- NCURSES_EXT_COLORS=0
--if test "$with_ext_colors" = yes ; then
-- if test "$with_widec" != yes ; then
-- { { echo "$as_me:10188: error: This option applies only to wide-character library" >&5
-+if test "x$with_ext_colors" = xyes ; then
-+ if test "x$with_widec" != xyes ; then
-+ { { echo "$as_me:10943: error: This option applies only to wide-character library" >&5
- echo "$as_me: error: This option applies only to wide-character library" >&2;}
- { (exit 1); exit 1; }; }
- else
-@@ -10196,7 +10951,7 @@
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
-- { echo "$as_me:10199: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-+ { echo "$as_me:10954: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
- echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
- ;;
- esac
-@@ -10204,14 +10959,15 @@
-
- fi
- NCURSES_EXT_COLORS=1
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NCURSES_EXT_COLORS 1
- EOF
-
- fi
-
- ### use option --enable-ext-mouse to modify coding to support 5-button mice
--echo "$as_me:10214: checking if you want to use extended mouse encoding" >&5
-+echo "$as_me:10970: checking if you want to use extended mouse encoding" >&5
- echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6
-
- # Check whether --enable-ext-mouse or --disable-ext-mouse was given.
-@@ -10221,10 +10977,10 @@
- else
- with_ext_mouse=no
- fi;
--echo "$as_me:10224: result: $with_ext_mouse" >&5
-+echo "$as_me:10980: result: $with_ext_mouse" >&5
- echo "${ECHO_T}$with_ext_mouse" >&6
- NCURSES_MOUSE_VERSION=1
--if test "$with_ext_mouse" = yes ; then
-+if test "x$with_ext_mouse" = xyes ; then
- NCURSES_MOUSE_VERSION=2
-
- if test "${with_abi_version+set}" != set; then
-@@ -10232,7 +10988,7 @@
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
-- { echo "$as_me:10235: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-+ { echo "$as_me:10991: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
- echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
- ;;
- esac
-@@ -10240,7 +10996,7 @@
-
- fi
-
--echo "$as_me:10243: checking if you want \$NCURSES_NO_PADDING code" >&5
-+echo "$as_me:10999: checking if you want \$NCURSES_NO_PADDING code" >&5
- echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
-
- # Check whether --enable-no-padding or --disable-no-padding was given.
-@@ -10250,19 +11006,20 @@
- else
- with_no_padding=$with_ext_funcs
- fi;
--echo "$as_me:10253: result: $with_no_padding" >&5
-+echo "$as_me:11009: result: $with_no_padding" >&5
- echo "${ECHO_T}$with_no_padding" >&6
--test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_no_padding" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define NCURSES_NO_PADDING 1
- EOF
-
--echo "$as_me:10259: checking for ANSI C header files" >&5
-+echo "$as_me:11016: checking for ANSI C header files" >&5
- echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
- if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10265 "configure"
-+#line 11022 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -10270,13 +11027,13 @@
- #include <float.h>
-
- _ACEOF
--if { (eval echo "$as_me:10273: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:11030: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:10279: \$? = $ac_status" >&5
-+ echo "$as_me:11036: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -10298,7 +11055,7 @@
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
--#line 10301 "configure"
-+#line 11058 "configure"
- #include "confdefs.h"
- #include <string.h>
-
-@@ -10316,7 +11073,7 @@
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
--#line 10319 "configure"
-+#line 11076 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
-
-@@ -10337,7 +11094,7 @@
- :
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10340 "configure"
-+#line 11097 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #if ((' ' & 0x0FF) == 0x020)
-@@ -10363,15 +11120,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:10366: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11123: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10369: \$? = $ac_status" >&5
-+ echo "$as_me:11126: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:10371: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11128: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10374: \$? = $ac_status" >&5
-+ echo "$as_me:11131: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -10384,7 +11141,7 @@
- fi
- fi
- fi
--echo "$as_me:10387: result: $ac_cv_header_stdc" >&5
-+echo "$as_me:11144: result: $ac_cv_header_stdc" >&5
- echo "${ECHO_T}$ac_cv_header_stdc" >&6
- if test $ac_cv_header_stdc = yes; then
-
-@@ -10400,28 +11157,28 @@
- inttypes.h stdint.h unistd.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:10403: checking for $ac_header" >&5
-+echo "$as_me:11160: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10409 "configure"
-+#line 11166 "configure"
- #include "confdefs.h"
- $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10415: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11172: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10418: \$? = $ac_status" >&5
-+ echo "$as_me:11175: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10421: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11178: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10424: \$? = $ac_status" >&5
-+ echo "$as_me:11181: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
- else
-@@ -10431,7 +11188,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:10434: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:11191: 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
-@@ -10441,13 +11198,13 @@
- fi
- done
-
--echo "$as_me:10444: checking for signed char" >&5
-+echo "$as_me:11201: checking for signed char" >&5
- echo $ECHO_N "checking for signed char... $ECHO_C" >&6
- if test "${ac_cv_type_signed_char+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10450 "configure"
-+#line 11207 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -10462,16 +11219,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10465: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11222: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10468: \$? = $ac_status" >&5
-+ echo "$as_me:11225: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10471: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11228: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10474: \$? = $ac_status" >&5
-+ echo "$as_me:11231: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signed_char=yes
- else
-@@ -10481,10 +11238,10 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:10484: result: $ac_cv_type_signed_char" >&5
-+echo "$as_me:11241: result: $ac_cv_type_signed_char" >&5
- echo "${ECHO_T}$ac_cv_type_signed_char" >&6
-
--echo "$as_me:10487: checking size of signed char" >&5
-+echo "$as_me:11244: checking size of signed char" >&5
- echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
- if test "${ac_cv_sizeof_signed_char+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -10493,7 +11250,7 @@
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
- cat >conftest.$ac_ext <<_ACEOF
--#line 10496 "configure"
-+#line 11253 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -10505,21 +11262,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10508: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11265: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10511: \$? = $ac_status" >&5
-+ echo "$as_me:11268: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10514: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11271: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10517: \$? = $ac_status" >&5
-+ echo "$as_me:11274: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_lo=0 ac_mid=0
- while :; do
- cat >conftest.$ac_ext <<_ACEOF
--#line 10522 "configure"
-+#line 11279 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -10531,16 +11288,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10534: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11291: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10537: \$? = $ac_status" >&5
-+ echo "$as_me:11294: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10540: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11297: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10543: \$? = $ac_status" >&5
-+ echo "$as_me:11300: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=$ac_mid; break
- else
-@@ -10556,7 +11313,7 @@
- ac_hi=-1 ac_mid=-1
- while :; do
- cat >conftest.$ac_ext <<_ACEOF
--#line 10559 "configure"
-+#line 11316 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -10568,16 +11325,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10571: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11328: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10574: \$? = $ac_status" >&5
-+ echo "$as_me:11331: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10577: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11334: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10580: \$? = $ac_status" >&5
-+ echo "$as_me:11337: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_lo=$ac_mid; break
- else
-@@ -10593,7 +11350,7 @@
- while test "x$ac_lo" != "x$ac_hi"; do
- ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
- cat >conftest.$ac_ext <<_ACEOF
--#line 10596 "configure"
-+#line 11353 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -10605,16 +11362,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:10608: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11365: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:10611: \$? = $ac_status" >&5
-+ echo "$as_me:11368: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:10614: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11371: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10617: \$? = $ac_status" >&5
-+ echo "$as_me:11374: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_hi=$ac_mid
- else
-@@ -10627,12 +11384,12 @@
- ac_cv_sizeof_signed_char=$ac_lo
- else
- if test "$cross_compiling" = yes; then
-- { { echo "$as_me:10630: error: cannot run test program while cross compiling" >&5
-+ { { echo "$as_me:11387: error: cannot run test program while cross compiling" >&5
- echo "$as_me: error: cannot run test program while cross compiling" >&2;}
- { (exit 1); exit 1; }; }
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10635 "configure"
-+#line 11392 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -10648,15 +11405,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:10651: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11408: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10654: \$? = $ac_status" >&5
-+ echo "$as_me:11411: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:10656: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11413: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10659: \$? = $ac_status" >&5
-+ echo "$as_me:11416: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sizeof_signed_char=`cat conftest.val`
- else
-@@ -10672,7 +11429,7 @@
- ac_cv_sizeof_signed_char=0
- fi
- fi
--echo "$as_me:10675: result: $ac_cv_sizeof_signed_char" >&5
-+echo "$as_me:11432: result: $ac_cv_sizeof_signed_char" >&5
- echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
- cat >>confdefs.h <<EOF
- #define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
-@@ -10683,7 +11440,7 @@
- else
- NCURSES_SBOOL="char"
- fi
--echo "$as_me:10686: checking if you want to use signed Boolean array in term.h" >&5
-+echo "$as_me:11443: checking if you want to use signed Boolean array in term.h" >&5
- echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
-
- # Check whether --enable-signed-char or --disable-signed-char was given.
-@@ -10693,12 +11450,12 @@
- else
- with_signed_char=no
- fi;
--echo "$as_me:10696: result: $with_signed_char" >&5
-+echo "$as_me:11453: result: $with_signed_char" >&5
- echo "${ECHO_T}$with_signed_char" >&6
--test "$with_signed_char" != yes && NCURSES_SBOOL="char"
-+test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
-
- ### use option --enable-sigwinch to turn on use of SIGWINCH logic
--echo "$as_me:10701: checking if you want SIGWINCH handler" >&5
-+echo "$as_me:11458: checking if you want SIGWINCH handler" >&5
- echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
-
- # Check whether --enable-sigwinch or --disable-sigwinch was given.
-@@ -10708,14 +11465,15 @@
- else
- with_sigwinch=$with_ext_funcs
- fi;
--echo "$as_me:10711: result: $with_sigwinch" >&5
-+echo "$as_me:11468: result: $with_sigwinch" >&5
- echo "${ECHO_T}$with_sigwinch" >&6
--test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_sigwinch" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_SIGWINCH 1
- EOF
-
- ### use option --enable-tcap-names to allow user to define new capabilities
--echo "$as_me:10718: checking if you want user-definable terminal capabilities like termcap" >&5
-+echo "$as_me:11476: checking if you want user-definable terminal capabilities like termcap" >&5
- echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
-
- # Check whether --enable-tcap-names or --disable-tcap-names was given.
-@@ -10725,15 +11483,15 @@
- else
- with_tcap_names=$with_ext_funcs
- fi;
--echo "$as_me:10728: result: $with_tcap_names" >&5
-+echo "$as_me:11486: result: $with_tcap_names" >&5
- echo "${ECHO_T}$with_tcap_names" >&6
- NCURSES_XNAMES=0
--test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-+test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
-
- ###############################################################################
- # These options are relatively safe to experiment with.
-
--echo "$as_me:10736: checking if you want all development code" >&5
-+echo "$as_me:11494: checking if you want all development code" >&5
- echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
-
- # Check whether --with-develop or --without-develop was given.
-@@ -10743,11 +11501,11 @@
- else
- with_develop=no
- fi;
--echo "$as_me:10746: result: $with_develop" >&5
-+echo "$as_me:11504: result: $with_develop" >&5
- echo "${ECHO_T}$with_develop" >&6
-
- ### use option --enable-hard-tabs to turn on use of hard-tabs optimize
--echo "$as_me:10750: checking if you want hard-tabs code" >&5
-+echo "$as_me:11508: checking if you want hard-tabs code" >&5
- echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
-
- # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
-@@ -10757,14 +11515,15 @@
- else
- enable_hard_tabs=$with_develop
- fi;
--echo "$as_me:10760: result: $enable_hard_tabs" >&5
-+echo "$as_me:11518: result: $enable_hard_tabs" >&5
- echo "${ECHO_T}$enable_hard_tabs" >&6
--test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
-+test "x$enable_hard_tabs" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_HARD_TABS 1
- EOF
-
- ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
--echo "$as_me:10767: checking if you want limited support for xmc" >&5
-+echo "$as_me:11526: checking if you want limited support for xmc" >&5
- echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
-
- # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
-@@ -10774,16 +11533,17 @@
- else
- enable_xmc_glitch=$with_develop
- fi;
--echo "$as_me:10777: result: $enable_xmc_glitch" >&5
-+echo "$as_me:11536: result: $enable_xmc_glitch" >&5
- echo "${ECHO_T}$enable_xmc_glitch" >&6
--test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
-+test "x$enable_xmc_glitch" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_XMC_SUPPORT 1
- EOF
-
- ###############################################################################
- # These are just experimental, probably should not be in a package:
-
--echo "$as_me:10786: checking if you do not want to assume colors are white-on-black" >&5
-+echo "$as_me:11546: checking if you do not want to assume colors are white-on-black" >&5
- echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
-
- # Check whether --enable-assumed-color or --disable-assumed-color was given.
-@@ -10793,14 +11553,15 @@
- else
- with_assumed_color=yes
- fi;
--echo "$as_me:10796: result: $with_assumed_color" >&5
-+echo "$as_me:11556: result: $with_assumed_color" >&5
- echo "${ECHO_T}$with_assumed_color" >&6
--test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_assumed_color" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_ASSUMED_COLOR 1
- EOF
-
- ### use option --enable-hashmap to turn on use of hashmap scrolling logic
--echo "$as_me:10803: checking if you want hashmap scrolling-optimization code" >&5
-+echo "$as_me:11564: checking if you want hashmap scrolling-optimization code" >&5
- echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
-
- # Check whether --enable-hashmap or --disable-hashmap was given.
-@@ -10810,14 +11571,15 @@
- else
- with_hashmap=yes
- fi;
--echo "$as_me:10813: result: $with_hashmap" >&5
-+echo "$as_me:11574: result: $with_hashmap" >&5
- echo "${ECHO_T}$with_hashmap" >&6
--test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_hashmap" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_HASHMAP 1
- EOF
-
- ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
--echo "$as_me:10820: checking if you want colorfgbg code" >&5
-+echo "$as_me:11582: checking if you want colorfgbg code" >&5
- echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
-
- # Check whether --enable-colorfgbg or --disable-colorfgbg was given.
-@@ -10827,14 +11589,15 @@
- else
- with_colorfgbg=no
- fi;
--echo "$as_me:10830: result: $with_colorfgbg" >&5
-+echo "$as_me:11592: result: $with_colorfgbg" >&5
- echo "${ECHO_T}$with_colorfgbg" >&6
--test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_colorfgbg" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_COLORFGBG 1
- EOF
-
- ### use option --enable-interop to turn on use of bindings used for interop
--echo "$as_me:10837: checking if you want interop bindings" >&5
-+echo "$as_me:11600: checking if you want interop bindings" >&5
- echo $ECHO_N "checking if you want interop bindings... $ECHO_C" >&6
-
- # Check whether --enable-interop or --disable-interop was given.
-@@ -10844,16 +11607,16 @@
- else
- with_exp_interop=no
- fi;
--echo "$as_me:10847: result: $with_exp_interop" >&5
-+echo "$as_me:11610: result: $with_exp_interop" >&5
- echo "${ECHO_T}$with_exp_interop" >&6
-
- NCURSES_INTEROP_FUNCS=0
--test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1
-+test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1
-
- # This is still experimental (20080329), but should ultimately be moved to
- # the script-block --with-normal, etc.
-
--echo "$as_me:10856: checking if you want to link with the pthread library" >&5
-+echo "$as_me:11619: checking if you want to link with the pthread library" >&5
- echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
-
- # Check whether --with-pthread or --without-pthread was given.
-@@ -10863,27 +11626,27 @@
- else
- with_pthread=no
- fi;
--echo "$as_me:10866: result: $with_pthread" >&5
-+echo "$as_me:11629: result: $with_pthread" >&5
- echo "${ECHO_T}$with_pthread" >&6
-
- if test "$with_pthread" != no ; then
-- echo "$as_me:10870: checking for pthread.h" >&5
-+ echo "$as_me:11633: checking for pthread.h" >&5
- echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
- if test "${ac_cv_header_pthread_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10876 "configure"
-+#line 11639 "configure"
- #include "confdefs.h"
- #include <pthread.h>
- _ACEOF
--if { (eval echo "$as_me:10880: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:11643: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:10886: \$? = $ac_status" >&5
-+ echo "$as_me:11649: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -10902,20 +11665,22 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:10905: result: $ac_cv_header_pthread_h" >&5
-+echo "$as_me:11668: result: $ac_cv_header_pthread_h" >&5
- echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
- if test $ac_cv_header_pthread_h = yes; then
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_PTHREADS_H 1
- EOF
-
-- echo "$as_me:10913: checking if we can link with the pthread library" >&5
--echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
-- cf_save_LIBS="$LIBS"
-- LIBS="-lpthread $LIBS"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 10918 "configure"
-+ for cf_lib_pthread in pthread c_r
-+ do
-+ echo "$as_me:11678: checking if we can link with the $cf_lib_pthread library" >&5
-+echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6
-+ cf_save_LIBS="$LIBS"
-+ LIBS="-l$cf_lib_pthread $LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 11683 "configure"
- #include "confdefs.h"
-
- #include <pthread.h>
-@@ -10924,23 +11689,24 @@
- main ()
- {
-
-- int rc = pthread_create(0,0,0,0);
-+ int rc = pthread_create(0,0,0,0);
-+ int r2 = pthread_mutexattr_settype(0, 0);
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10934: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11700: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10937: \$? = $ac_status" >&5
-+ echo "$as_me:11703: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10940: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11706: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10943: \$? = $ac_status" >&5
-+ echo "$as_me:11709: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- with_pthread=yes
- else
-@@ -10949,34 +11715,37 @@
- with_pthread=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- LIBS="$cf_save_LIBS"
-- echo "$as_me:10953: result: $with_pthread" >&5
-+ LIBS="$cf_save_LIBS"
-+ echo "$as_me:11719: result: $with_pthread" >&5
- echo "${ECHO_T}$with_pthread" >&6
-+ test "$with_pthread" = yes && break
-+ done
-+
-+ if test "$with_pthread" = yes ; then
-+ LIBS="-l$cf_lib_pthread $LIBS"
-
-- if test "$with_pthread" = yes ; then
-- LIBS="-lpthread $LIBS"
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define HAVE_LIBPTHREADS 1
- EOF
-
-- else
-- { { echo "$as_me:10963: error: Cannot link with pthread library" >&5
-+ else
-+ { { echo "$as_me:11732: error: Cannot link with pthread library" >&5
- echo "$as_me: error: Cannot link with pthread library" >&2;}
- { (exit 1); exit 1; }; }
-- fi
-+ fi
-
- fi
-
- fi
-
- if test "x$with_pthread" != xno; then
-- echo "$as_me:10973: checking for pthread_kill" >&5
-+ echo "$as_me:11742: checking for pthread_kill" >&5
- echo $ECHO_N "checking for pthread_kill... $ECHO_C" >&6
- if test "${ac_cv_func_pthread_kill+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 10979 "configure"
-+#line 11748 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char pthread_kill (); below. */
-@@ -10999,7 +11768,7 @@
- #if defined (__stub_pthread_kill) || defined (__stub___pthread_kill)
- choke me
- #else
--f = pthread_kill;
-+f = pthread_kill; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -11007,16 +11776,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11010: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11779: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11013: \$? = $ac_status" >&5
-+ echo "$as_me:11782: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11016: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11785: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11019: \$? = $ac_status" >&5
-+ echo "$as_me:11788: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_pthread_kill=yes
- else
-@@ -11026,11 +11795,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:11029: result: $ac_cv_func_pthread_kill" >&5
-+echo "$as_me:11798: result: $ac_cv_func_pthread_kill" >&5
- echo "${ECHO_T}$ac_cv_func_pthread_kill" >&6
- if test $ac_cv_func_pthread_kill = yes; then
-
-- echo "$as_me:11033: checking if you want to allow EINTR in wgetch with pthreads" >&5
-+ echo "$as_me:11802: checking if you want to allow EINTR in wgetch with pthreads" >&5
- echo $ECHO_N "checking if you want to allow EINTR in wgetch with pthreads... $ECHO_C" >&6
-
- # Check whether --enable-pthreads-eintr or --disable-pthreads-eintr was given.
-@@ -11040,17 +11809,18 @@
- else
- use_pthreads_eintr=no
- fi;
-- echo "$as_me:11043: result: $use_pthreads_eintr" >&5
-+ echo "$as_me:11812: result: $use_pthreads_eintr" >&5
- echo "${ECHO_T}$use_pthreads_eintr" >&6
-- if test $use_pthreads_eintr = yes ; then
-- cat >>confdefs.h <<\EOF
-+ if test "x$use_pthreads_eintr" = xyes ; then
-+
-+cat >>confdefs.h <<\EOF
- #define USE_PTHREADS_EINTR 1
- EOF
-
- fi
- fi
-
-- echo "$as_me:11053: checking if you want to use weak-symbols for pthreads" >&5
-+ echo "$as_me:11823: checking if you want to use weak-symbols for pthreads" >&5
- echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
-
- # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
-@@ -11060,18 +11830,18 @@
- else
- use_weak_symbols=no
- fi;
-- echo "$as_me:11063: result: $use_weak_symbols" >&5
-+ echo "$as_me:11833: result: $use_weak_symbols" >&5
- echo "${ECHO_T}$use_weak_symbols" >&6
-- if test "$use_weak_symbols" = yes ; then
-+ if test "x$use_weak_symbols" = xyes ; then
-
--echo "$as_me:11067: checking if $CC supports weak symbols" >&5
-+echo "$as_me:11837: checking if $CC supports weak symbols" >&5
- echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
- if test "${cf_cv_weak_symbols+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 11074 "configure"
-+#line 11844 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -11097,16 +11867,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:11100: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:11870: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11103: \$? = $ac_status" >&5
-+ echo "$as_me:11873: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:11106: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11876: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11109: \$? = $ac_status" >&5
-+ echo "$as_me:11879: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_weak_symbols=yes
- else
-@@ -11117,15 +11887,16 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:11120: result: $cf_cv_weak_symbols" >&5
-+echo "$as_me:11890: result: $cf_cv_weak_symbols" >&5
- echo "${ECHO_T}$cf_cv_weak_symbols" >&6
-
- else
- cf_cv_weak_symbols=no
- fi
-
-- if test $cf_cv_weak_symbols = yes ; then
-- cat >>confdefs.h <<\EOF
-+ if test "x$cf_cv_weak_symbols" = xyes ; then
-+
-+cat >>confdefs.h <<\EOF
- #define USE_WEAK_SYMBOLS 1
- EOF
-
-@@ -11133,13 +11904,14 @@
- fi
-
- PTHREAD=
--if test "$with_pthread" = "yes" ; then
-- cat >>confdefs.h <<\EOF
-+if test "x$with_pthread" = "xyes" ; then
-+
-+cat >>confdefs.h <<\EOF
- #define USE_PTHREADS 1
- EOF
-
- enable_reentrant=yes
-- if test $cf_cv_weak_symbols = yes ; then
-+ if test "x$cf_cv_weak_symbols" = xyes ; then
- PTHREAD=-lpthread
- fi
- fi
-@@ -11148,7 +11920,7 @@
- # opaque outside of that, so there is no --enable-opaque option. We can use
- # this option without --with-pthreads, but this will be always set for
- # pthreads.
--echo "$as_me:11151: checking if you want experimental reentrant code" >&5
-+echo "$as_me:11923: checking if you want experimental reentrant code" >&5
- echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
-
- # Check whether --enable-reentrant or --disable-reentrant was given.
-@@ -11158,14 +11930,14 @@
- else
- with_reentrant=no
- fi;
--echo "$as_me:11161: result: $with_reentrant" >&5
-+echo "$as_me:11933: result: $with_reentrant" >&5
- echo "${ECHO_T}$with_reentrant" >&6
--if test "$with_reentrant" = yes ; then
-+if test "x$with_reentrant" = xyes ; then
- cf_cv_enable_reentrant=1
- cf_cv_enable_opaque="NCURSES_INTERNALS"
- NCURSES_OPAQUE=1
- NCURSES_SIZE_T=int
-- if test $cf_cv_weak_symbols = yes ; then
-+ if test "x$cf_cv_weak_symbols" = xyes ; then
-
- # remove pthread library from $LIBS
- LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ ]//g' -e 's/-lpthread$//'`
-@@ -11175,7 +11947,8 @@
- else
- LIB_SUFFIX="t${LIB_SUFFIX}"
- fi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_REENTRANT 1
- EOF
-
-@@ -11184,7 +11957,7 @@
- 5.*)
- cf_cv_rel_version=6.0
- cf_cv_abi_version=6
-- { echo "$as_me:11187: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
-+ { echo "$as_me:11960: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
- echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
- ;;
- esac
-@@ -11199,7 +11972,7 @@
-
- ### Allow using a different wrap-prefix
- if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
-- echo "$as_me:11202: checking for prefix used to wrap public variables" >&5
-+ echo "$as_me:11975: checking for prefix used to wrap public variables" >&5
- echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
-
- # Check whether --with-wrap-prefix or --without-wrap-prefix was given.
-@@ -11209,7 +11982,7 @@
- else
- NCURSES_WRAP_PREFIX=_nc_
- fi;
-- echo "$as_me:11212: result: $NCURSES_WRAP_PREFIX" >&5
-+ echo "$as_me:11985: result: $NCURSES_WRAP_PREFIX" >&5
- echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
- else
- NCURSES_WRAP_PREFIX=_nc_
-@@ -11219,7 +11992,7 @@
- #define NCURSES_WRAP_PREFIX "$NCURSES_WRAP_PREFIX"
- EOF
-
--echo "$as_me:11222: checking if you want experimental safe-sprintf code" >&5
-+echo "$as_me:11995: checking if you want experimental safe-sprintf code" >&5
- echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
-
- # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
-@@ -11229,16 +12002,17 @@
- else
- with_safe_sprintf=no
- fi;
--echo "$as_me:11232: result: $with_safe_sprintf" >&5
-+echo "$as_me:12005: result: $with_safe_sprintf" >&5
- echo "${ECHO_T}$with_safe_sprintf" >&6
--test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_safe_sprintf" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_SAFE_SPRINTF 1
- EOF
-
- ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
- # when hashmap is used scroll hints are useless
- if test "$with_hashmap" = no ; then
--echo "$as_me:11241: checking if you want to experiment without scrolling-hints code" >&5
-+echo "$as_me:12015: checking if you want to experiment without scrolling-hints code" >&5
- echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
-
- # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
-@@ -11248,15 +12022,16 @@
- else
- with_scroll_hints=yes
- fi;
--echo "$as_me:11251: result: $with_scroll_hints" >&5
-+echo "$as_me:12025: result: $with_scroll_hints" >&5
- echo "${ECHO_T}$with_scroll_hints" >&6
--test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_scroll_hints" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define USE_SCROLL_HINTS 1
- EOF
-
- fi
-
--echo "$as_me:11259: checking if you want experimental wgetch-events code" >&5
-+echo "$as_me:12034: checking if you want experimental wgetch-events code" >&5
- echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
-
- # Check whether --enable-wgetch-events or --disable-wgetch-events was given.
-@@ -11266,37 +12041,64 @@
- else
- with_wgetch_events=no
- fi;
--echo "$as_me:11269: result: $with_wgetch_events" >&5
-+echo "$as_me:12044: result: $with_wgetch_events" >&5
- echo "${ECHO_T}$with_wgetch_events" >&6
--test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
-+test "x$with_wgetch_events" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define NCURSES_WGETCH_EVENTS 1
- EOF
-
- ###############################################################################
-
- ### use option --disable-echo to suppress full display compiling commands
--echo "$as_me:11278: checking if you want to display full commands during build" >&5
--echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
-+
-+echo "$as_me:12055: checking if you want to see long compiling messages" >&5
-+echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
-
- # Check whether --enable-echo or --disable-echo was given.
- if test "${enable_echo+set}" = set; then
- enableval="$enable_echo"
-- with_echo=$enableval
-+ test "$enableval" != no && enableval=yes
-+ if test "$enableval" != "yes" ; then
-+
-+ ECHO_LT='--silent'
-+ ECHO_LD='@echo linking $@;'
-+ RULE_CC='@echo compiling $<'
-+ SHOW_CC='@echo compiling $@'
-+ ECHO_CC='@'
-+
-+ else
-+
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-+
-+ fi
- else
-- with_echo=yes
-+ enableval=yes
-+
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-+
- fi;
--if test "$with_echo" = yes; then
-+echo "$as_me:12089: result: $enableval" >&5
-+echo "${ECHO_T}$enableval" >&6
-+
-+if test "x$enable_echo" = xyes; then
- ECHO_LINK=
- else
- ECHO_LINK='@ echo linking $@ ... ;'
- test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
- test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
- fi
--echo "$as_me:11295: result: $with_echo" >&5
--echo "${ECHO_T}$with_echo" >&6
-
- ### use option --enable-warnings to turn on all gcc warnings
--echo "$as_me:11299: checking if you want to see compiler warnings" >&5
-+echo "$as_me:12101: checking if you want to see compiler warnings" >&5
- echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
-
- # Check whether --enable-warnings or --disable-warnings was given.
-@@ -11304,7 +12106,7 @@
- enableval="$enable_warnings"
- with_warnings=$enableval
- fi;
--echo "$as_me:11307: result: $with_warnings" >&5
-+echo "$as_me:12109: result: $with_warnings" >&5
- echo "${ECHO_T}$with_warnings" >&6
-
- if test "x$with_warnings" = "xyes"; then
-@@ -11316,12 +12118,12 @@
- if test "$GCC" = yes ; then
- case $host_os in
- linux*|gnu*)
-- echo "$as_me:11319: checking if this is really Intel C compiler" >&5
-+ echo "$as_me:12121: checking if this is really Intel C compiler" >&5
- echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
- cf_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -no-gcc"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11324 "configure"
-+#line 12126 "configure"
- #include "confdefs.h"
-
- int
-@@ -11338,16 +12140,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:11341: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:12143: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11344: \$? = $ac_status" >&5
-+ echo "$as_me:12146: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:11347: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12149: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11350: \$? = $ac_status" >&5
-+ echo "$as_me:12152: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- INTEL_COMPILER=yes
- cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-@@ -11358,14 +12160,63 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- CFLAGS="$cf_save_CFLAGS"
-- echo "$as_me:11361: result: $INTEL_COMPILER" >&5
-+ echo "$as_me:12163: result: $INTEL_COMPILER" >&5
- echo "${ECHO_T}$INTEL_COMPILER" >&6
- ;;
- esac
- fi
-
-+CLANG_COMPILER=no
-+
-+if test "$GCC" = yes ; then
-+ echo "$as_me:12172: checking if this is really Clang C compiler" >&5
-+echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
-+ cf_save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS -Qunused-arguments"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12177 "configure"
-+#include "confdefs.h"
-+
-+int
-+main ()
-+{
-+
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:12194: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12197: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:12200: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12203: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ CLANG_COMPILER=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ echo "$as_me:12214: result: $CLANG_COMPILER" >&5
-+echo "${ECHO_T}$CLANG_COMPILER" >&6
-+fi
-+
- cat > conftest.$ac_ext <<EOF
--#line 11368 "${as_me:-configure}"
-+#line 12219 "${as_me:-configure}"
- int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
- EOF
-
-@@ -11382,7 +12233,7 @@
- # remark #981: operands are evaluated in unspecified order
- # warning #279: controlling expression is constant
-
-- { echo "$as_me:11385: checking for $CC warning options..." >&5
-+ { echo "$as_me:12236: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
-@@ -11398,12 +12249,12 @@
- wd981
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-- if { (eval echo "$as_me:11401: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:12252: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11404: \$? = $ac_status" >&5
-+ echo "$as_me:12255: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:11406: result: ... -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:12257: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
-@@ -11412,7 +12263,7 @@
-
- elif test "$GCC" = yes
- then
-- { echo "$as_me:11415: checking for $CC warning options..." >&5
-+ { echo "$as_me:12266: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS=
-@@ -11432,12 +12283,12 @@
- Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-- if { (eval echo "$as_me:11435: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:12286: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11438: \$? = $ac_status" >&5
-+ echo "$as_me:12289: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:11440: result: ... -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:12291: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- case $cf_opt in #(vi
- Wcast-qual) #(vi
-@@ -11448,7 +12299,17 @@
- [34].*)
- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-
--echo "${as_me:-configure}:11451: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+echo "${as_me:-configure}:12302: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+
-+ continue;;
-+ esac
-+ ;;
-+ Wpointer-arith) #(vi
-+ case $GCC_VERSION in
-+ [12].*)
-+ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-+
-+echo "${as_me:-configure}:12312: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-
- continue;;
- esac
-@@ -11461,19 +12322,19 @@
- fi
- rm -rf conftest*
-
-- if test "$cf_with_cxx" = yes ; then
-+ if test "x$cf_with_cxx" = xyes ; then
-
- INTEL_CPLUSPLUS=no
-
- if test "$GCC" = yes ; then
- case $host_os in
- linux*|gnu*)
-- echo "$as_me:11471: checking if this is really Intel C++ compiler" >&5
-+ echo "$as_me:12332: checking if this is really Intel C++ compiler" >&5
- echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
- cf_save_CFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -no-gcc"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11476 "configure"
-+#line 12337 "configure"
- #include "confdefs.h"
-
- int
-@@ -11490,16 +12351,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:11493: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:12354: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11496: \$? = $ac_status" >&5
-+ echo "$as_me:12357: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:11499: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12360: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11502: \$? = $ac_status" >&5
-+ echo "$as_me:12363: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- INTEL_CPLUSPLUS=yes
- cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-@@ -11510,12 +12371,61 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- CXXFLAGS="$cf_save_CFLAGS"
-- echo "$as_me:11513: result: $INTEL_CPLUSPLUS" >&5
-+ echo "$as_me:12374: result: $INTEL_CPLUSPLUS" >&5
- echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
- ;;
- esac
- fi
-
-+CLANG_CPLUSPLUS=no
-+
-+if test "$GCC" = yes ; then
-+ echo "$as_me:12383: checking if this is really Clang C++ compiler" >&5
-+echo $ECHO_N "checking if this is really Clang C++ compiler... $ECHO_C" >&6
-+ cf_save_CFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS -Qunused-arguments"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12388 "configure"
-+#include "confdefs.h"
-+
-+int
-+main ()
-+{
-+
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:12405: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12408: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:12411: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12414: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ CLANG_CPLUSPLUS=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CXXFLAGS="$cf_save_CFLAGS"
-+ echo "$as_me:12425: result: $CLANG_CPLUSPLUS" >&5
-+echo "${ECHO_T}$CLANG_CPLUSPLUS" >&6
-+fi
-+
- ac_ext=cc
- ac_cpp='$CXXCPP $CPPFLAGS'
- ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -11524,7 +12434,7 @@
- ac_main_return=return
-
- cat > conftest.$ac_ext <<EOF
--#line 11527 "configure"
-+#line 12437 "configure"
- int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
- EOF
-
-@@ -11542,7 +12452,7 @@
- # remark #981: operands are evaluated in unspecified order
- # warning #269: invalid format string conversion
-
-- { echo "$as_me:11545: checking for $CC warning options..." >&5
-+ { echo "$as_me:12455: checking for $CC warning options..." >&5
- echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CXXFLAGS="$CXXFLAGS"
- EXTRA_CXXFLAGS="-Wall"
-@@ -11559,12 +12469,12 @@
- wd981
- do
- CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
-- if { (eval echo "$as_me:11562: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:12472: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11565: \$? = $ac_status" >&5
-+ echo "$as_me:12475: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:11567: result: ... -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:12477: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
- fi
-@@ -11573,7 +12483,7 @@
-
- elif test "$GXX" = yes
- then
-- { echo "$as_me:11576: checking for $CXX warning options..." >&5
-+ { echo "$as_me:12486: checking for $CXX warning options..." >&5
- echo "$as_me: checking for $CXX warning options..." >&6;}
- cf_save_CXXFLAGS="$CXXFLAGS"
- EXTRA_CXXFLAGS="-W -Wall"
-@@ -11602,16 +12512,16 @@
- Wundef $cf_gxx_extra_warnings Wno-unused
- do
- CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
-- if { (eval echo "$as_me:11605: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:12515: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11608: \$? = $ac_status" >&5
-+ echo "$as_me:12518: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:11610: result: ... -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:12520: result: ... -$cf_opt" >&5
- echo "${ECHO_T}... -$cf_opt" >&6
- EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
- else
-- test -n "$verbose" && echo "$as_me:11614: result: ... no -$cf_opt" >&5
-+ test -n "$verbose" && echo "$as_me:12524: result: ... no -$cf_opt" >&5
- echo "${ECHO_T}... no -$cf_opt" >&6
- fi
- done
-@@ -11647,10 +12557,10 @@
- EOF
- if test "$GCC" = yes
- then
-- { echo "$as_me:11650: checking for $CC __attribute__ directives..." >&5
-+ { echo "$as_me:12560: checking for $CC __attribute__ directives..." >&5
- echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
- cat > conftest.$ac_ext <<EOF
--#line 11653 "${as_me:-configure}"
-+#line 12563 "${as_me:-configure}"
- #include "confdefs.h"
- #include "conftest.h"
- #include "conftest.i"
-@@ -11699,36 +12609,60 @@
- ;;
- esac
-
-- if { (eval echo "$as_me:11702: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:12612: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11705: \$? = $ac_status" >&5
-+ echo "$as_me:12615: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:11707: result: ... $cf_attribute" >&5
-+ test -n "$verbose" && echo "$as_me:12617: result: ... $cf_attribute" >&5
- echo "${ECHO_T}... $cf_attribute" >&6
- cat conftest.h >>confdefs.h
- case $cf_attribute in #(vi
-+ noreturn) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_NORETURN $cf_directive
-+EOF
-+
-+ ;;
- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-+
-+cat >>confdefs.h <<\EOF
-+#define GCC_PRINTF 1
- EOF
-+
- fi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_PRINTFLIKE(fmt,var) $cf_value
-+EOF
-+
- ;;
- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-+
-+cat >>confdefs.h <<\EOF
-+#define GCC_SCANF 1
- EOF
-+
- fi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_SCANFLIKE(fmt,var) $cf_value
-+EOF
-+
-+ ;;
-+ unused) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_UNUSED $cf_directive
-+EOF
-+
- ;;
- esac
- fi
-@@ -11739,8 +12673,101 @@
- rm -rf conftest*
- fi
-
-+echo "$as_me:12676: checking if you want to work around bogus compiler/loader warnings" >&5
-+echo $ECHO_N "checking if you want to work around bogus compiler/loader warnings... $ECHO_C" >&6
-+
-+# Check whether --enable-string-hacks or --disable-string-hacks was given.
-+if test "${enable_string_hacks+set}" = set; then
-+ enableval="$enable_string_hacks"
-+ with_string_hacks=$enableval
-+else
-+ with_string_hacks=no
-+fi;
-+echo "$as_me:12686: result: $with_string_hacks" >&5
-+echo "${ECHO_T}$with_string_hacks" >&6
-+
-+if test "x$with_string_hacks" = "xyes"; then
-+
-+cat >>confdefs.h <<\EOF
-+#define USE_STRING_HACKS 1
-+EOF
-+
-+ { echo "$as_me:12695: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5
-+echo "$as_me: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&2;}
-+
-+for ac_func in strlcat strlcpy snprintf
-+do
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+echo "$as_me:12701: 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 12707 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func ();
-+char (*f) ();
-+
-+int
-+main ()
-+{
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:12738: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12741: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:12744: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12747: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ eval "$as_ac_var=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+eval "$as_ac_var=no"
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:12757: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+EOF
-+
-+fi
-+done
-+
-+fi
-+
- ### use option --enable-assertions to turn on generation of assertion code
--echo "$as_me:11743: checking if you want to enable runtime assertions" >&5
-+echo "$as_me:12770: checking if you want to enable runtime assertions" >&5
- echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
-
- # Check whether --enable-assertions or --disable-assertions was given.
-@@ -11750,16 +12777,12 @@
- else
- with_assertions=no
- fi;
--echo "$as_me:11753: result: $with_assertions" >&5
-+echo "$as_me:12780: result: $with_assertions" >&5
- echo "${ECHO_T}$with_assertions" >&6
- if test -n "$GCC"
- then
- if test "$with_assertions" = no
- then
-- cat >>confdefs.h <<\EOF
--#define NDEBUG 1
--EOF
--
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
-
-@@ -11770,13 +12793,14 @@
-
- ### use option --disable-leaks to suppress "permanent" leaks, for testing
-
--echo "$as_me:11773: checking if you want to use dmalloc for testing" >&5
-+echo "$as_me:12796: checking if you want to use dmalloc for testing" >&5
- echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
-
- # Check whether --with-dmalloc or --without-dmalloc was given.
- if test "${with_dmalloc+set}" = set; then
- withval="$with_dmalloc"
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<EOF
- #define USE_DMALLOC 1
- EOF
-
-@@ -11786,7 +12810,7 @@
- else
- with_dmalloc=
- fi;
--echo "$as_me:11789: result: ${with_dmalloc:-no}" >&5
-+echo "$as_me:12813: result: ${with_dmalloc:-no}" >&5
- echo "${ECHO_T}${with_dmalloc:-no}" >&6
-
- case .$with_cflags in #(vi
-@@ -11880,23 +12904,23 @@
- esac
-
- if test "$with_dmalloc" = yes ; then
-- echo "$as_me:11883: checking for dmalloc.h" >&5
-+ echo "$as_me:12907: checking for dmalloc.h" >&5
- echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
- if test "${ac_cv_header_dmalloc_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 11889 "configure"
-+#line 12913 "configure"
- #include "confdefs.h"
- #include <dmalloc.h>
- _ACEOF
--if { (eval echo "$as_me:11893: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:12917: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:11899: \$? = $ac_status" >&5
-+ echo "$as_me:12923: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -11915,11 +12939,11 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:11918: result: $ac_cv_header_dmalloc_h" >&5
-+echo "$as_me:12942: result: $ac_cv_header_dmalloc_h" >&5
- echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
- if test $ac_cv_header_dmalloc_h = yes; then
-
--echo "$as_me:11922: checking for dmalloc_debug in -ldmalloc" >&5
-+echo "$as_me:12946: checking for dmalloc_debug in -ldmalloc" >&5
- echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
- if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -11927,7 +12951,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldmalloc $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11930 "configure"
-+#line 12954 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -11946,16 +12970,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11949: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12973: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11952: \$? = $ac_status" >&5
-+ echo "$as_me:12976: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11955: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12979: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11958: \$? = $ac_status" >&5
-+ echo "$as_me:12982: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dmalloc_dmalloc_debug=yes
- else
-@@ -11966,7 +12990,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:11969: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
-+echo "$as_me:12993: 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
-@@ -11981,13 +13005,14 @@
-
- fi
-
--echo "$as_me:11984: checking if you want to use dbmalloc for testing" >&5
-+echo "$as_me:13008: checking if you want to use dbmalloc for testing" >&5
- echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
-
- # Check whether --with-dbmalloc or --without-dbmalloc was given.
- if test "${with_dbmalloc+set}" = set; then
- withval="$with_dbmalloc"
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<EOF
- #define USE_DBMALLOC 1
- EOF
-
-@@ -11997,7 +13022,7 @@
- else
- with_dbmalloc=
- fi;
--echo "$as_me:12000: result: ${with_dbmalloc:-no}" >&5
-+echo "$as_me:13025: result: ${with_dbmalloc:-no}" >&5
- echo "${ECHO_T}${with_dbmalloc:-no}" >&6
-
- case .$with_cflags in #(vi
-@@ -12091,23 +13116,23 @@
- esac
-
- if test "$with_dbmalloc" = yes ; then
-- echo "$as_me:12094: checking for dbmalloc.h" >&5
-+ echo "$as_me:13119: checking for dbmalloc.h" >&5
- echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
- if test "${ac_cv_header_dbmalloc_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 12100 "configure"
-+#line 13125 "configure"
- #include "confdefs.h"
- #include <dbmalloc.h>
- _ACEOF
--if { (eval echo "$as_me:12104: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:13129: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:12110: \$? = $ac_status" >&5
-+ echo "$as_me:13135: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -12126,11 +13151,11 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:12129: result: $ac_cv_header_dbmalloc_h" >&5
-+echo "$as_me:13154: result: $ac_cv_header_dbmalloc_h" >&5
- echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
- if test $ac_cv_header_dbmalloc_h = yes; then
-
--echo "$as_me:12133: checking for debug_malloc in -ldbmalloc" >&5
-+echo "$as_me:13158: checking for debug_malloc in -ldbmalloc" >&5
- echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
- if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12138,7 +13163,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldbmalloc $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12141 "configure"
-+#line 13166 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -12157,16 +13182,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12160: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13185: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12163: \$? = $ac_status" >&5
-+ echo "$as_me:13188: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12166: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13191: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12169: \$? = $ac_status" >&5
-+ echo "$as_me:13194: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dbmalloc_debug_malloc=yes
- else
-@@ -12177,7 +13202,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12180: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
-+echo "$as_me:13205: 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
-@@ -12192,13 +13217,14 @@
-
- fi
-
--echo "$as_me:12195: checking if you want to use valgrind for testing" >&5
-+echo "$as_me:13220: checking if you want to use valgrind for testing" >&5
- echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
-
- # Check whether --with-valgrind or --without-valgrind was given.
- if test "${with_valgrind+set}" = set; then
- withval="$with_valgrind"
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<EOF
- #define USE_VALGRIND 1
- EOF
-
-@@ -12208,7 +13234,7 @@
- else
- with_valgrind=
- fi;
--echo "$as_me:12211: result: ${with_valgrind:-no}" >&5
-+echo "$as_me:13237: result: ${with_valgrind:-no}" >&5
- echo "${ECHO_T}${with_valgrind:-no}" >&6
-
- case .$with_cflags in #(vi
-@@ -12301,7 +13327,7 @@
- ;;
- esac
-
--echo "$as_me:12304: checking if you want to perform memory-leak testing" >&5
-+echo "$as_me:13330: checking if you want to perform memory-leak testing" >&5
- echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
-
- # Check whether --enable-leaks or --disable-leaks was given.
-@@ -12311,15 +13337,16 @@
- else
- : ${with_no_leaks:=no}
- fi;
--echo "$as_me:12314: result: $with_no_leaks" >&5
-+echo "$as_me:13340: result: $with_no_leaks" >&5
- echo "${ECHO_T}$with_no_leaks" >&6
-
- if test "$with_no_leaks" = yes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define NO_LEAKS 1
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define YY_NO_LEAKS 1
- EOF
-
-@@ -12334,7 +13361,8 @@
- # Check whether --enable-expanded or --disable-expanded was given.
- if test "${enable_expanded+set}" = set; then
- enableval="$enable_expanded"
-- test "$enableval" = yes && cat >>confdefs.h <<\EOF
-+ test "x$enableval" = xyes &&
-+cat >>confdefs.h <<\EOF
- #define NCURSES_EXPANDED 1
- EOF
-
-@@ -12345,7 +13373,8 @@
- # Check whether --enable-macros or --disable-macros was given.
- if test "${enable_macros+set}" = set; then
- enableval="$enable_macros"
-- test "$enableval" = no && cat >>confdefs.h <<\EOF
-+ test "$enableval" = no &&
-+cat >>confdefs.h <<\EOF
- #define NCURSES_NOMACROS 1
- EOF
-
-@@ -12360,7 +13389,7 @@
- ;;
- esac
-
--echo "$as_me:12363: checking whether to add trace feature to all models" >&5
-+echo "$as_me:13392: checking whether to add trace feature to all models" >&5
- echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
-
- # Check whether --with-trace or --without-trace was given.
-@@ -12370,10 +13399,10 @@
- else
- cf_with_trace=$cf_all_traces
- fi;
--echo "$as_me:12373: result: $cf_with_trace" >&5
-+echo "$as_me:13402: result: $cf_with_trace" >&5
- echo "${ECHO_T}$cf_with_trace" >&6
-
--if test "$cf_with_trace" = yes ; then
-+if test "x$cf_with_trace" = xyes ; then
- LIB_TRACING=all
- ADA_TRACE=TRUE
-
-@@ -12465,13 +13494,13 @@
- *mingw32*) #(vi
- ;;
- *)
--echo "$as_me:12468: checking for gettimeofday" >&5
-+echo "$as_me:13497: checking for gettimeofday" >&5
- echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
- if test "${ac_cv_func_gettimeofday+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 12474 "configure"
-+#line 13503 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gettimeofday (); below. */
-@@ -12494,7 +13523,7 @@
- #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
- choke me
- #else
--f = gettimeofday;
-+f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -12502,16 +13531,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12505: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13534: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12508: \$? = $ac_status" >&5
-+ echo "$as_me:13537: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12511: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13540: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12514: \$? = $ac_status" >&5
-+ echo "$as_me:13543: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_gettimeofday=yes
- else
-@@ -12521,16 +13550,17 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:12524: result: $ac_cv_func_gettimeofday" >&5
-+echo "$as_me:13553: result: $ac_cv_func_gettimeofday" >&5
- echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
- if test $ac_cv_func_gettimeofday = yes; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_GETTIMEOFDAY 1
- EOF
-
- else
-
--echo "$as_me:12533: checking for gettimeofday in -lbsd" >&5
-+echo "$as_me:13563: checking for gettimeofday in -lbsd" >&5
- echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
- if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12538,7 +13568,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lbsd $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12541 "configure"
-+#line 13571 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -12557,16 +13587,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12560: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13590: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12563: \$? = $ac_status" >&5
-+ echo "$as_me:13593: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12566: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13596: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12569: \$? = $ac_status" >&5
-+ echo "$as_me:13599: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_bsd_gettimeofday=yes
- else
-@@ -12577,10 +13607,11 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12580: result: $ac_cv_lib_bsd_gettimeofday" >&5
-+echo "$as_me:13610: result: $ac_cv_lib_bsd_gettimeofday" >&5
- echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
- if test $ac_cv_lib_bsd_gettimeofday = yes; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_GETTIMEOFDAY 1
- EOF
-
-@@ -12591,14 +13622,14 @@
- ;;
- esac
-
--echo "$as_me:12594: checking if -lm needed for math functions" >&5
-+echo "$as_me:13625: checking if -lm needed for math functions" >&5
- echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
- if test "${cf_cv_need_libm+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 12601 "configure"
-+#line 13632 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -12613,16 +13644,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12616: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13647: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12619: \$? = $ac_status" >&5
-+ echo "$as_me:13650: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12622: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13653: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12625: \$? = $ac_status" >&5
-+ echo "$as_me:13656: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_need_libm=no
- else
-@@ -12632,7 +13663,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:12635: result: $cf_cv_need_libm" >&5
-+echo "$as_me:13666: result: $cf_cv_need_libm" >&5
- echo "${ECHO_T}$cf_cv_need_libm" >&6
- if test "$cf_cv_need_libm" = yes
- then
-@@ -12640,13 +13671,13 @@
- fi
-
- ### Checks for header files.
--echo "$as_me:12643: checking for ANSI C header files" >&5
-+echo "$as_me:13674: checking for ANSI C header files" >&5
- echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
- if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 12649 "configure"
-+#line 13680 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -12654,13 +13685,13 @@
- #include <float.h>
-
- _ACEOF
--if { (eval echo "$as_me:12657: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:13688: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:12663: \$? = $ac_status" >&5
-+ echo "$as_me:13694: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -12682,7 +13713,7 @@
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
--#line 12685 "configure"
-+#line 13716 "configure"
- #include "confdefs.h"
- #include <string.h>
-
-@@ -12700,7 +13731,7 @@
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
--#line 12703 "configure"
-+#line 13734 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
-
-@@ -12721,7 +13752,7 @@
- :
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 12724 "configure"
-+#line 13755 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #if ((' ' & 0x0FF) == 0x020)
-@@ -12747,15 +13778,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:12750: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13781: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12753: \$? = $ac_status" >&5
-+ echo "$as_me:13784: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:12755: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13786: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12758: \$? = $ac_status" >&5
-+ echo "$as_me:13789: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -12768,7 +13799,7 @@
- fi
- fi
- fi
--echo "$as_me:12771: result: $ac_cv_header_stdc" >&5
-+echo "$as_me:13802: result: $ac_cv_header_stdc" >&5
- echo "${ECHO_T}$ac_cv_header_stdc" >&6
- if test $ac_cv_header_stdc = yes; then
-
-@@ -12781,13 +13812,13 @@
- ac_header_dirent=no
- for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
--echo "$as_me:12784: checking for $ac_hdr that defines DIR" >&5
-+echo "$as_me:13815: checking for $ac_hdr that defines DIR" >&5
- echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 12790 "configure"
-+#line 13821 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$ac_hdr>
-@@ -12802,16 +13833,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:12805: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13836: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:12808: \$? = $ac_status" >&5
-+ echo "$as_me:13839: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:12811: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13842: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12814: \$? = $ac_status" >&5
-+ echo "$as_me:13845: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
- else
-@@ -12821,7 +13852,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:12824: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:13855: 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
-@@ -12834,7 +13865,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:12837: checking for opendir in -ldir" >&5
-+ echo "$as_me:13868: checking for opendir in -ldir" >&5
- echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
- if test "${ac_cv_lib_dir_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12842,7 +13873,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldir $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12845 "configure"
-+#line 13876 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -12861,16 +13892,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12864: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13895: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12867: \$? = $ac_status" >&5
-+ echo "$as_me:13898: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12870: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13901: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12873: \$? = $ac_status" >&5
-+ echo "$as_me:13904: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dir_opendir=yes
- else
-@@ -12881,14 +13912,14 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12884: result: $ac_cv_lib_dir_opendir" >&5
-+echo "$as_me:13915: result: $ac_cv_lib_dir_opendir" >&5
- echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
- if test $ac_cv_lib_dir_opendir = yes; then
- LIBS="$LIBS -ldir"
- fi
-
- else
-- echo "$as_me:12891: checking for opendir in -lx" >&5
-+ echo "$as_me:13922: checking for opendir in -lx" >&5
- echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
- if test "${ac_cv_lib_x_opendir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -12896,7 +13927,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lx $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12899 "configure"
-+#line 13930 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -12915,16 +13946,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12918: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13949: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12921: \$? = $ac_status" >&5
-+ echo "$as_me:13952: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12924: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13955: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12927: \$? = $ac_status" >&5
-+ echo "$as_me:13958: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_x_opendir=yes
- else
-@@ -12935,7 +13966,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12938: result: $ac_cv_lib_x_opendir" >&5
-+echo "$as_me:13969: result: $ac_cv_lib_x_opendir" >&5
- echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
- if test $ac_cv_lib_x_opendir = yes; then
- LIBS="$LIBS -lx"
-@@ -12943,13 +13974,13 @@
-
- fi
-
--echo "$as_me:12946: checking whether time.h and sys/time.h may both be included" >&5
-+echo "$as_me:13977: checking whether time.h and sys/time.h may both be included" >&5
- echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
- if test "${ac_cv_header_time+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 12952 "configure"
-+#line 13983 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/time.h>
-@@ -12965,16 +13996,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:12968: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13999: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:12971: \$? = $ac_status" >&5
-+ echo "$as_me:14002: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:12974: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14005: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12977: \$? = $ac_status" >&5
-+ echo "$as_me:14008: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_time=yes
- else
-@@ -12984,7 +14015,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:12987: result: $ac_cv_header_time" >&5
-+echo "$as_me:14018: result: $ac_cv_header_time" >&5
- echo "${ECHO_T}$ac_cv_header_time" >&6
- if test $ac_cv_header_time = yes; then
-
-@@ -12999,17 +14030,17 @@
- cf_regex_libs="regex re"
- case $host_os in #(vi
- mingw*)
-- cf_regex_libs="regex.dll $cf_regex_libs"
-+ cf_regex_libs="gnurx $cf_regex_libs"
- ;;
- esac
-
--echo "$as_me:13006: checking for regcomp" >&5
-+echo "$as_me:14037: checking for regcomp" >&5
- echo $ECHO_N "checking for regcomp... $ECHO_C" >&6
- if test "${ac_cv_func_regcomp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 13012 "configure"
-+#line 14043 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char regcomp (); below. */
-@@ -13032,7 +14063,7 @@
- #if defined (__stub_regcomp) || defined (__stub___regcomp)
- choke me
- #else
--f = regcomp;
-+f = regcomp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -13040,16 +14071,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13043: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14074: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13046: \$? = $ac_status" >&5
-+ echo "$as_me:14077: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13049: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14080: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13052: \$? = $ac_status" >&5
-+ echo "$as_me:14083: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_regcomp=yes
- else
-@@ -13059,7 +14090,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:13062: result: $ac_cv_func_regcomp" >&5
-+echo "$as_me:14093: result: $ac_cv_func_regcomp" >&5
- echo "${ECHO_T}$ac_cv_func_regcomp" >&6
- if test $ac_cv_func_regcomp = yes; then
- cf_regex_func=regcomp
-@@ -13068,7 +14099,7 @@
- for cf_regex_lib in $cf_regex_libs
- do
- as_ac_Lib=`echo "ac_cv_lib_$cf_regex_lib''_regcomp" | $as_tr_sh`
--echo "$as_me:13071: checking for regcomp in -l$cf_regex_lib" >&5
-+echo "$as_me:14102: checking for regcomp in -l$cf_regex_lib" >&5
- echo $ECHO_N "checking for regcomp in -l$cf_regex_lib... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Lib+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13076,7 +14107,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-l$cf_regex_lib $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 13079 "configure"
-+#line 14110 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -13095,16 +14126,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13098: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14129: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13101: \$? = $ac_status" >&5
-+ echo "$as_me:14132: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13104: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14135: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13107: \$? = $ac_status" >&5
-+ echo "$as_me:14138: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Lib=yes"
- else
-@@ -13115,7 +14146,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:13118: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "$as_me:14149: result: `eval echo '${'$as_ac_Lib'}'`" >&5
- echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
- if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-
-@@ -13129,13 +14160,13 @@
- fi
-
- if test "$cf_regex_func" = no ; then
-- echo "$as_me:13132: checking for compile" >&5
-+ echo "$as_me:14163: checking for compile" >&5
- echo $ECHO_N "checking for compile... $ECHO_C" >&6
- if test "${ac_cv_func_compile+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 13138 "configure"
-+#line 14169 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char compile (); below. */
-@@ -13158,7 +14189,7 @@
- #if defined (__stub_compile) || defined (__stub___compile)
- choke me
- #else
--f = compile;
-+f = compile; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -13166,16 +14197,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13169: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14200: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13172: \$? = $ac_status" >&5
-+ echo "$as_me:14203: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13175: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14206: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13178: \$? = $ac_status" >&5
-+ echo "$as_me:14209: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_compile=yes
- else
-@@ -13185,13 +14216,13 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:13188: result: $ac_cv_func_compile" >&5
-+echo "$as_me:14219: result: $ac_cv_func_compile" >&5
- echo "${ECHO_T}$ac_cv_func_compile" >&6
- if test $ac_cv_func_compile = yes; then
- cf_regex_func=compile
- else
-
-- echo "$as_me:13194: checking for compile in -lgen" >&5
-+ echo "$as_me:14225: checking for compile in -lgen" >&5
- echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6
- if test "${ac_cv_lib_gen_compile+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13199,7 +14230,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgen $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 13202 "configure"
-+#line 14233 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -13218,16 +14249,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13221: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14252: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13224: \$? = $ac_status" >&5
-+ echo "$as_me:14255: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13227: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14258: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13230: \$? = $ac_status" >&5
-+ echo "$as_me:14261: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gen_compile=yes
- else
-@@ -13238,7 +14269,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:13241: result: $ac_cv_lib_gen_compile" >&5
-+echo "$as_me:14272: result: $ac_cv_lib_gen_compile" >&5
- echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6
- if test $ac_cv_lib_gen_compile = yes; then
-
-@@ -13251,11 +14282,11 @@
- fi
-
- if test "$cf_regex_func" = no ; then
-- { echo "$as_me:13254: WARNING: cannot find regular expression library" >&5
-+ { echo "$as_me:14285: WARNING: cannot find regular expression library" >&5
- echo "$as_me: WARNING: cannot find regular expression library" >&2;}
- fi
-
--echo "$as_me:13258: checking for regular-expression headers" >&5
-+echo "$as_me:14289: checking for regular-expression headers" >&5
- echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
- if test "${cf_cv_regex_hdrs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13267,7 +14298,7 @@
- for cf_regex_hdr in regexp.h regexpr.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 13270 "configure"
-+#line 14301 "configure"
- #include "confdefs.h"
- #include <$cf_regex_hdr>
- int
-@@ -13282,16 +14313,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13285: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14316: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13288: \$? = $ac_status" >&5
-+ echo "$as_me:14319: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13291: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14322: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13294: \$? = $ac_status" >&5
-+ echo "$as_me:14325: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_regex_hdrs=$cf_regex_hdr
-@@ -13308,7 +14339,7 @@
- for cf_regex_hdr in regex.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 13311 "configure"
-+#line 14342 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$cf_regex_hdr>
-@@ -13326,16 +14357,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13329: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14360: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13332: \$? = $ac_status" >&5
-+ echo "$as_me:14363: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13335: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14366: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13338: \$? = $ac_status" >&5
-+ echo "$as_me:14369: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_regex_hdrs=$cf_regex_hdr
-@@ -13351,21 +14382,24 @@
- esac
-
- fi
--echo "$as_me:13354: result: $cf_cv_regex_hdrs" >&5
-+echo "$as_me:14385: result: $cf_cv_regex_hdrs" >&5
- echo "${ECHO_T}$cf_cv_regex_hdrs" >&6
-
- case $cf_cv_regex_hdrs in #(vi
-- no) { echo "$as_me:13358: WARNING: no regular expression header found" >&5
-+ no) { echo "$as_me:14389: WARNING: no regular expression header found" >&5
- echo "$as_me: WARNING: no regular expression header found" >&2;} ;; #(vi
-- regex.h) cat >>confdefs.h <<\EOF
-+ regex.h)
-+cat >>confdefs.h <<\EOF
- #define HAVE_REGEX_H_FUNCS 1
- EOF
- ;; #(vi
-- regexp.h) cat >>confdefs.h <<\EOF
-+ regexp.h)
-+cat >>confdefs.h <<\EOF
- #define HAVE_REGEXP_H_FUNCS 1
- EOF
- ;; #(vi
-- regexpr.h) cat >>confdefs.h <<\EOF
-+ regexpr.h)
-+cat >>confdefs.h <<\EOF
- #define HAVE_REGEXPR_H_FUNCS 1
- EOF
- ;;
-@@ -13391,23 +14425,71 @@
-
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:13394: checking for $ac_header" >&5
-+echo "$as_me:14428: 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 14434 "configure"
-+#include "confdefs.h"
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:14438: \"$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:14444: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+fi
-+echo "$as_me:14463: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-+
-+fi
-+done
-+
-+for ac_header in unistd.h getopt.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:14476: 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 13400 "configure"
-+#line 14482 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:13404: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:14486: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:13410: \$? = $ac_status" >&5
-+ echo "$as_me:14492: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -13426,7 +14508,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:13429: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:14511: 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
-@@ -13436,11 +14518,65 @@
- fi
- done
-
-+echo "$as_me:14521: checking for header declaring getopt variables" >&5
-+echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
-+if test "${cf_cv_getopt_header+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cf_cv_getopt_header=none
-+for cf_header in stdio.h stdlib.h unistd.h getopt.h
-+do
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14531 "configure"
-+#include "confdefs.h"
-+
-+#include <$cf_header>
-+int
-+main ()
-+{
-+int x = optind; char *y = optarg
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14544: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:14547: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14550: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:14553: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_getopt_header=$cf_header
-+ break
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-+
-+fi
-+echo "$as_me:14565: result: $cf_cv_getopt_header" >&5
-+echo "${ECHO_T}$cf_cv_getopt_header" >&6
-+if test $cf_cv_getopt_header != none ; then
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_GETOPT_HEADER 1
-+EOF
-+
-+fi
-+
- # check for ISC (this may also define _POSIX_SOURCE)
- # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
--if test "$ISC" = yes ; then
-+if test "x$ISC" = xyes ; then
-
--echo "$as_me:13443: checking for main in -lcposix" >&5
-+echo "$as_me:14579: checking for main in -lcposix" >&5
- echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
- if test "${ac_cv_lib_cposix_main+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13448,7 +14584,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lcposix $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 13451 "configure"
-+#line 14587 "configure"
- #include "confdefs.h"
-
- int
-@@ -13460,16 +14596,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13463: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14599: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13466: \$? = $ac_status" >&5
-+ echo "$as_me:14602: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13469: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14605: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13472: \$? = $ac_status" >&5
-+ echo "$as_me:14608: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_cposix_main=yes
- else
-@@ -13480,7 +14616,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:13483: result: $ac_cv_lib_cposix_main" >&5
-+echo "$as_me:14619: 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
-@@ -13491,7 +14627,7 @@
-
- fi
-
-- echo "$as_me:13494: checking for bzero in -linet" >&5
-+ echo "$as_me:14630: checking for bzero in -linet" >&5
- echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
- if test "${ac_cv_lib_inet_bzero+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13499,7 +14635,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-linet $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 13502 "configure"
-+#line 14638 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -13518,16 +14654,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13521: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:14657: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13524: \$? = $ac_status" >&5
-+ echo "$as_me:14660: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13527: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14663: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13530: \$? = $ac_status" >&5
-+ echo "$as_me:14666: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_inet_bzero=yes
- else
-@@ -13538,173 +14674,83 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:13541: result: $ac_cv_lib_inet_bzero" >&5
-+echo "$as_me:14677: result: $ac_cv_lib_inet_bzero" >&5
- echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
- if test $ac_cv_lib_inet_bzero = yes; then
- LIBS="-linet $LIBS"
- fi
- fi
--
--echo "$as_me:13548: checking if sys/time.h works with sys/select.h" >&5
--echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
--if test "${cf_cv_sys_time_select+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
--cat >conftest.$ac_ext <<_ACEOF
--#line 13555 "configure"
--#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;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13575: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:13578: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13581: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:13584: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_cv_sys_time_select=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_cv_sys_time_select=no
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--
--fi
--
--echo "$as_me:13596: result: $cf_cv_sys_time_select" >&5
--echo "${ECHO_T}$cf_cv_sys_time_select" >&6
--test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
--#define HAVE_SYS_TIME_SELECT 1
--EOF
--
--### checks for compiler characteristics
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--ac_main_return=return
--
--echo "$as_me:13610: checking for $CC option to accept ANSI C" >&5
--echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_stdc+set}" = set; then
-+
-+echo "$as_me:14684: 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
-- ac_cv_prog_cc_stdc=no
--ac_save_CC=$CC
-+
- cat >conftest.$ac_ext <<_ACEOF
--#line 13618 "configure"
-+#line 14691 "configure"
- #include "confdefs.h"
--#include <stdarg.h>
--#include <stdio.h>
-+
- #include <sys/types.h>
--#include <sys/stat.h>
--/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
--struct buf { int x; };
--FILE * (*rcsopen) (struct buf *, struct stat *, int);
--static char *e (p, i)
-- char **p;
-- int i;
--{
-- return p[i];
--}
--static char *f (char * (*g) (char **, int), char **p, ...)
--{
-- char *s;
-- va_list v;
-- va_start (v,p);
-- s = g (p, va_arg (v,int));
-- va_end (v);
-- return s;
--}
--int test (int i, double x);
--struct s1 {int (*f) (int a);};
--struct s2 {int (*f) (double a);};
--int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
--int argc;
--char **argv;
-+#ifdef HAVE_SYS_TIME_H
-+#include <sys/time.h>
-+#endif
-+#ifdef HAVE_SYS_SELECT_H
-+#include <sys/select.h>
-+#endif
-+
- int
- main ()
- {
--return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-+
- ;
- return 0;
- }
- _ACEOF
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX 10.20 and later -Ae
--# HP-UX older versions -Aa -D_HPUX_SOURCE
--# SVR4 -Xc -D__EXTENSIONS__
--for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
--do
-- CC="$ac_save_CC $ac_arg"
-- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13667: \"$ac_compile\"") >&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14711: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13670: \$? = $ac_status" >&5
-+ echo "$as_me:14714: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13673: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14717: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13676: \$? = $ac_status" >&5
-+ echo "$as_me:14720: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_prog_cc_stdc=$ac_arg
--break
-+ cf_cv_sys_time_select=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_cv_sys_time_select=no
- fi
--rm -f conftest.$ac_objext
--done
--rm -f conftest.$ac_ext conftest.$ac_objext
--CC=$ac_save_CC
-+rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
-
--case "x$ac_cv_prog_cc_stdc" in
-- x|xno)
-- echo "$as_me:13693: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6 ;;
-- *)
-- echo "$as_me:13696: result: $ac_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-- CC="$CC $ac_cv_prog_cc_stdc" ;;
--esac
-+echo "$as_me:14732: result: $cf_cv_sys_time_select" >&5
-+echo "${ECHO_T}$cf_cv_sys_time_select" >&6
-+test "$cf_cv_sys_time_select" = yes &&
-+cat >>confdefs.h <<\EOF
-+#define HAVE_SYS_TIME_SELECT 1
-+EOF
-+
-+### checks for compiler characteristics
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+ac_main_return=return
-
--echo "$as_me:13701: checking for an ANSI C-conforming const" >&5
-+echo "$as_me:14747: checking for an ANSI C-conforming const" >&5
- echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
- if test "${ac_cv_c_const+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 13707 "configure"
-+#line 14753 "configure"
- #include "confdefs.h"
-
- int
-@@ -13762,16 +14808,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13765: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14811: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13768: \$? = $ac_status" >&5
-+ echo "$as_me:14814: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13771: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14817: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13774: \$? = $ac_status" >&5
-+ echo "$as_me:14820: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
- else
-@@ -13781,7 +14827,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:13784: result: $ac_cv_c_const" >&5
-+echo "$as_me:14830: result: $ac_cv_c_const" >&5
- echo "${ECHO_T}$ac_cv_c_const" >&6
- if test $ac_cv_c_const = no; then
-
-@@ -13791,7 +14837,7 @@
-
- fi
-
--echo "$as_me:13794: checking for inline" >&5
-+echo "$as_me:14840: checking for inline" >&5
- echo $ECHO_N "checking for inline... $ECHO_C" >&6
- if test "${ac_cv_c_inline+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13799,7 +14845,7 @@
- ac_cv_c_inline=no
- for ac_kw in inline __inline__ __inline; do
- cat >conftest.$ac_ext <<_ACEOF
--#line 13802 "configure"
-+#line 14848 "configure"
- #include "confdefs.h"
- #ifndef __cplusplus
- static $ac_kw int static_foo () {return 0; }
-@@ -13808,16 +14854,16 @@
-
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13811: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14857: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13814: \$? = $ac_status" >&5
-+ echo "$as_me:14860: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13817: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14863: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13820: \$? = $ac_status" >&5
-+ echo "$as_me:14866: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_inline=$ac_kw; break
- else
-@@ -13828,7 +14874,7 @@
- done
-
- fi
--echo "$as_me:13831: result: $ac_cv_c_inline" >&5
-+echo "$as_me:14877: result: $ac_cv_c_inline" >&5
- echo "${ECHO_T}$ac_cv_c_inline" >&6
- case $ac_cv_c_inline in
- inline | yes) ;;
-@@ -13849,9 +14895,12 @@
- if test "$INTEL_COMPILER" = yes
- then
- :
-+ elif test "$CLANG_COMPILER" = yes
-+ then
-+ :
- elif test "$GCC" = yes
- then
-- echo "$as_me:13854: checking if $CC supports options to tune inlining" >&5
-+ echo "$as_me:14903: checking if $CC supports options to tune inlining" >&5
- echo $ECHO_N "checking if $CC supports options to tune inlining... $ECHO_C" >&6
- if test "${cf_cv_gcc_inline+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13860,7 +14909,7 @@
- cf_save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
- cat >conftest.$ac_ext <<_ACEOF
--#line 13863 "configure"
-+#line 14912 "configure"
- #include "confdefs.h"
- inline int foo(void) { return 1; }
- int
-@@ -13872,16 +14921,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13875: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14924: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13878: \$? = $ac_status" >&5
-+ echo "$as_me:14927: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13881: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14930: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13884: \$? = $ac_status" >&5
-+ echo "$as_me:14933: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gcc_inline=yes
- else
-@@ -13893,7 +14942,7 @@
- CFLAGS=$cf_save_CFLAGS
-
- fi
--echo "$as_me:13896: result: $cf_cv_gcc_inline" >&5
-+echo "$as_me:14945: result: $cf_cv_gcc_inline" >&5
- echo "${ECHO_T}$cf_cv_gcc_inline" >&6
- if test "$cf_cv_gcc_inline" = yes ; then
-
-@@ -13979,7 +15028,7 @@
- fi
- fi
-
--echo "$as_me:13982: checking for signal global datatype" >&5
-+echo "$as_me:15031: checking for signal global datatype" >&5
- echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
- if test "${cf_cv_sig_atomic_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -13991,7 +15040,7 @@
- "int"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 13994 "configure"
-+#line 15043 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -14014,16 +15063,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14017: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15066: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14020: \$? = $ac_status" >&5
-+ echo "$as_me:15069: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14023: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15072: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14026: \$? = $ac_status" >&5
-+ echo "$as_me:15075: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_sig_atomic_t=$cf_type
- else
-@@ -14037,15 +15086,16 @@
-
- fi
-
--echo "$as_me:14040: result: $cf_cv_sig_atomic_t" >&5
-+echo "$as_me:15089: result: $cf_cv_sig_atomic_t" >&5
- echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
--test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
-+test "$cf_cv_sig_atomic_t" != no &&
-+cat >>confdefs.h <<EOF
- #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
- EOF
-
- if test $NCURSES_CHTYPE = auto ; then
-
--echo "$as_me:14048: checking for type of chtype" >&5
-+echo "$as_me:15098: checking for type of chtype" >&5
- echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
- if test "${cf_cv_typeof_chtype+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -14055,7 +15105,7 @@
- cf_cv_typeof_chtype=long
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 14058 "configure"
-+#line 15108 "configure"
- #include "confdefs.h"
-
- #define WANT_BITS 31
-@@ -14090,15 +15140,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:14093: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15143: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14096: \$? = $ac_status" >&5
-+ echo "$as_me:15146: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:14098: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15148: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14101: \$? = $ac_status" >&5
-+ echo "$as_me:15151: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_typeof_chtype=`cat cf_test.out`
- else
-@@ -14113,7 +15163,7 @@
-
- fi
-
--echo "$as_me:14116: result: $cf_cv_typeof_chtype" >&5
-+echo "$as_me:15166: result: $cf_cv_typeof_chtype" >&5
- echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
-
- cat >>confdefs.h <<EOF
-@@ -14125,14 +15175,14 @@
- fi
- test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
-
--echo "$as_me:14128: checking if unsigned literals are legal" >&5
-+echo "$as_me:15178: checking if unsigned literals are legal" >&5
- echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
- if test "${cf_cv_unsigned_literals+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14135 "configure"
-+#line 15185 "configure"
- #include "confdefs.h"
-
- int
-@@ -14144,16 +15194,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14147: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15197: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14150: \$? = $ac_status" >&5
-+ echo "$as_me:15200: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14153: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15203: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14156: \$? = $ac_status" >&5
-+ echo "$as_me:15206: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_unsigned_literals=yes
- else
-@@ -14165,7 +15215,7 @@
-
- fi
-
--echo "$as_me:14168: result: $cf_cv_unsigned_literals" >&5
-+echo "$as_me:15218: result: $cf_cv_unsigned_literals" >&5
- echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
-
- cf_cv_1UL="1"
-@@ -14181,14 +15231,14 @@
-
- ### Checks for external-data
-
--echo "$as_me:14184: checking if external errno is declared" >&5
-+echo "$as_me:15234: checking if external errno is declared" >&5
- echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
- if test "${cf_cv_dcl_errno+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14191 "configure"
-+#line 15241 "configure"
- #include "confdefs.h"
-
- #ifdef HAVE_STDLIB_H
-@@ -14206,16 +15256,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14209: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15259: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14212: \$? = $ac_status" >&5
-+ echo "$as_me:15262: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14215: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15265: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14218: \$? = $ac_status" >&5
-+ echo "$as_me:15268: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_dcl_errno=yes
- else
-@@ -14226,7 +15276,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:14229: result: $cf_cv_dcl_errno" >&5
-+echo "$as_me:15279: result: $cf_cv_dcl_errno" >&5
- echo "${ECHO_T}$cf_cv_dcl_errno" >&6
-
- if test "$cf_cv_dcl_errno" = no ; then
-@@ -14241,14 +15291,14 @@
-
- # It's possible (for near-UNIX clones) that the data doesn't exist
-
--echo "$as_me:14244: checking if external errno exists" >&5
-+echo "$as_me:15294: checking if external errno exists" >&5
- echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
- if test "${cf_cv_have_errno+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14251 "configure"
-+#line 15301 "configure"
- #include "confdefs.h"
-
- #undef errno
-@@ -14263,16 +15313,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14266: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15316: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14269: \$? = $ac_status" >&5
-+ echo "$as_me:15319: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14272: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15322: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14275: \$? = $ac_status" >&5
-+ echo "$as_me:15325: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_have_errno=yes
- else
-@@ -14283,7 +15333,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
- fi
--echo "$as_me:14286: result: $cf_cv_have_errno" >&5
-+echo "$as_me:15336: result: $cf_cv_have_errno" >&5
- echo "${ECHO_T}$cf_cv_have_errno" >&6
-
- if test "$cf_cv_have_errno" = yes ; then
-@@ -14296,7 +15346,7 @@
-
- fi
-
--echo "$as_me:14299: checking if data-only library module links" >&5
-+echo "$as_me:15349: checking if data-only library module links" >&5
- echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
- if test "${cf_cv_link_dataonly+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -14304,20 +15354,20 @@
-
- rm -f conftest.a
- cat >conftest.$ac_ext <<EOF
--#line 14307 "configure"
-+#line 15357 "configure"
- int testdata[3] = { 123, 456, 789 };
- EOF
-- if { (eval echo "$as_me:14310: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:15360: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14313: \$? = $ac_status" >&5
-+ echo "$as_me:15363: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- mv conftest.o data.o && \
- ( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
- fi
- rm -f conftest.$ac_ext data.o
- cat >conftest.$ac_ext <<EOF
--#line 14320 "configure"
-+#line 15370 "configure"
- int testfunc()
- {
- #if defined(NeXT)
-@@ -14330,10 +15380,10 @@
- #endif
- }
- EOF
-- if { (eval echo "$as_me:14333: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:15383: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14336: \$? = $ac_status" >&5
-+ echo "$as_me:15386: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- mv conftest.o func.o && \
- ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
-@@ -14346,7 +15396,7 @@
- cf_cv_link_dataonly=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 14349 "configure"
-+#line 15399 "configure"
- #include "confdefs.h"
-
- int main()
-@@ -14357,15 +15407,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:14360: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15410: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14363: \$? = $ac_status" >&5
-+ echo "$as_me:15413: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:14365: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15415: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14368: \$? = $ac_status" >&5
-+ echo "$as_me:15418: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_link_dataonly=yes
- else
-@@ -14380,11 +15430,12 @@
-
- fi
-
--echo "$as_me:14383: result: $cf_cv_link_dataonly" >&5
-+echo "$as_me:15433: result: $cf_cv_link_dataonly" >&5
- echo "${ECHO_T}$cf_cv_link_dataonly" >&6
-
- if test "$cf_cv_link_dataonly" = no ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define BROKEN_LINKER 1
- EOF
-
-@@ -14400,10 +15451,12 @@
- getttynam \
- issetugid \
- poll \
-+putenv \
- remove \
- select \
- setbuf \
- setbuffer \
-+setenv \
- setvbuf \
- sigaction \
- sigvec \
-@@ -14415,13 +15468,13 @@
-
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:14418: checking for $ac_func" >&5
-+echo "$as_me:15471: checking for $ac_func" >&5
- echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
- if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 14424 "configure"
-+#line 15477 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-@@ -14444,7 +15497,7 @@
- #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
- choke me
- #else
--f = $ac_func;
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -14452,16 +15505,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14455: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15508: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14458: \$? = $ac_status" >&5
-+ echo "$as_me:15511: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14461: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15514: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14464: \$? = $ac_status" >&5
-+ echo "$as_me:15517: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
- else
-@@ -14471,7 +15524,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:14474: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "$as_me:15527: 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
-@@ -14481,16 +15534,16 @@
- fi
- done
-
--if test "$with_getcap" = "yes" ; then
-+if test "x$with_getcap" = "xyes" ; then
-
--echo "$as_me:14486: checking for terminal-capability database functions" >&5
-+echo "$as_me:15539: 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 14493 "configure"
-+#line 15546 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -14501,7 +15554,7 @@
- char temp[128];
- char *buf = temp;
- char *db_array = temp;
-- cgetent(&buf, /* int *, */ &db_array, "vt100");
-+ cgetent(&buf, &db_array, "vt100");
- cgetcap(buf, "tc", '=');
- cgetmatch(buf, "tc");
-
-@@ -14510,16 +15563,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14513: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15566: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14516: \$? = $ac_status" >&5
-+ echo "$as_me:15569: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14519: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15572: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14522: \$? = $ac_status" >&5
-+ echo "$as_me:15575: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_cgetent=yes
- else
-@@ -14530,23 +15583,87 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
- fi
--
--echo "$as_me:14534: result: $cf_cv_cgetent" >&5
-+echo "$as_me:15586: result: $cf_cv_cgetent" >&5
- echo "${ECHO_T}$cf_cv_cgetent" >&6
--test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
-+
-+if test "$cf_cv_cgetent" = yes
-+then
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_BSD_CGETENT 1
- EOF
-
-+echo "$as_me:15596: checking if cgetent uses const parameter" >&5
-+echo $ECHO_N "checking if cgetent uses const parameter... $ECHO_C" >&6
-+if test "${cf_cv_cgetent_const+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 15603 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+
-+ char temp[128];
-+ char *buf = temp;
-+#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
-+ const char *db_array = temp;
-+ cgetent(&buf, &db_array, "vt100");
-+#endif
-+ cgetcap(buf, "tc", '=');
-+ cgetmatch(buf, "tc");
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:15625: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:15628: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:15631: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:15634: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_cgetent_const=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_cgetent_const=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:15645: result: $cf_cv_cgetent_const" >&5
-+echo "${ECHO_T}$cf_cv_cgetent_const" >&6
-+ if test "$cf_cv_cgetent_const" = yes
-+ then
-+
-+cat >>confdefs.h <<EOF
-+#define CGETENT_CONST const
-+EOF
-+
-+ fi
-+fi
-+
- fi
-
--echo "$as_me:14542: checking for isascii" >&5
-+echo "$as_me:15659: checking for isascii" >&5
- echo $ECHO_N "checking for isascii... $ECHO_C" >&6
- if test "${cf_cv_have_isascii+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14549 "configure"
-+#line 15666 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- int
-@@ -14558,16 +15675,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14561: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15678: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14564: \$? = $ac_status" >&5
-+ echo "$as_me:15681: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14567: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15684: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14570: \$? = $ac_status" >&5
-+ echo "$as_me:15687: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_have_isascii=yes
- else
-@@ -14578,17 +15695,18 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
- fi
--echo "$as_me:14581: result: $cf_cv_have_isascii" >&5
-+echo "$as_me:15698: result: $cf_cv_have_isascii" >&5
- echo "${ECHO_T}$cf_cv_have_isascii" >&6
--test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_have_isascii" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_ISASCII 1
- EOF
-
- if test "$ac_cv_func_sigaction" = yes; then
--echo "$as_me:14588: checking whether sigaction needs _POSIX_SOURCE" >&5
-+echo "$as_me:15706: checking whether sigaction needs _POSIX_SOURCE" >&5
- echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14591 "configure"
-+#line 15709 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -14602,16 +15720,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14605: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15723: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14608: \$? = $ac_status" >&5
-+ echo "$as_me:15726: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14611: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15729: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14614: \$? = $ac_status" >&5
-+ echo "$as_me:15732: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- sigact_bad=no
- else
-@@ -14619,7 +15737,7 @@
- cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14622 "configure"
-+#line 15740 "configure"
- #include "confdefs.h"
-
- #define _POSIX_SOURCE
-@@ -14634,20 +15752,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14637: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15755: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14640: \$? = $ac_status" >&5
-+ echo "$as_me:15758: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14643: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15761: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14646: \$? = $ac_status" >&5
-+ echo "$as_me:15764: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- sigact_bad=yes
-- cat >>confdefs.h <<\EOF
--#define SVR4_ACTION 1
-+
-+cat >>confdefs.h <<\EOF
-+#define _POSIX_SOURCE 1
- EOF
-
- else
-@@ -14658,11 +15777,11 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14661: result: $sigact_bad" >&5
-+echo "$as_me:15780: result: $sigact_bad" >&5
- echo "${ECHO_T}$sigact_bad" >&6
- fi
-
--echo "$as_me:14665: checking if nanosleep really works" >&5
-+echo "$as_me:15784: checking if nanosleep really works" >&5
- echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
- if test "${cf_cv_func_nanosleep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -14672,7 +15791,7 @@
- cf_cv_func_nanosleep=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 14675 "configure"
-+#line 15794 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -14697,15 +15816,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:14700: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15819: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14703: \$? = $ac_status" >&5
-+ echo "$as_me:15822: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:14705: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15824: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14708: \$? = $ac_status" >&5
-+ echo "$as_me:15827: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_func_nanosleep=yes
- else
-@@ -14717,10 +15836,11 @@
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- fi
--echo "$as_me:14720: result: $cf_cv_func_nanosleep" >&5
-+echo "$as_me:15839: result: $cf_cv_func_nanosleep" >&5
- echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
-
--test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
-+test "$cf_cv_func_nanosleep" = "yes" &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_NANOSLEEP 1
- EOF
-
-@@ -14731,23 +15851,23 @@
-
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:14734: checking for $ac_header" >&5
-+echo "$as_me:15854: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 14740 "configure"
-+#line 15860 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:14744: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:15864: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:14750: \$? = $ac_status" >&5
-+ echo "$as_me:15870: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -14766,7 +15886,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:14769: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:15889: 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
-@@ -14781,23 +15901,23 @@
- for ac_header in sys/termio.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:14784: checking for $ac_header" >&5
-+echo "$as_me:15904: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 14790 "configure"
-+#line 15910 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:14794: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:15914: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:14800: \$? = $ac_status" >&5
-+ echo "$as_me:15920: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -14816,7 +15936,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:14819: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:15939: 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
-@@ -14834,10 +15954,10 @@
- *) termios_bad=maybe ;;
- esac
- if test "$termios_bad" = maybe ; then
-- echo "$as_me:14837: checking whether termios.h needs _POSIX_SOURCE" >&5
-+ echo "$as_me:15957: checking whether termios.h needs _POSIX_SOURCE" >&5
- echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14840 "configure"
-+#line 15960 "configure"
- #include "confdefs.h"
- #include <termios.h>
- int
-@@ -14849,16 +15969,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14852: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15972: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14855: \$? = $ac_status" >&5
-+ echo "$as_me:15975: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14858: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15978: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14861: \$? = $ac_status" >&5
-+ echo "$as_me:15981: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- termios_bad=no
- else
-@@ -14866,7 +15986,7 @@
- cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14869 "configure"
-+#line 15989 "configure"
- #include "confdefs.h"
-
- #define _POSIX_SOURCE
-@@ -14880,23 +16000,24 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14883: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:16003: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14886: \$? = $ac_status" >&5
-+ echo "$as_me:16006: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14889: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16009: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14892: \$? = $ac_status" >&5
-+ echo "$as_me:16012: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- termios_bad=unknown
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--termios_bad=yes cat >>confdefs.h <<\EOF
--#define SVR4_TERMIO 1
-+termios_bad=yes
-+cat >>confdefs.h <<\EOF
-+#define _POSIX_SOURCE 1
- EOF
-
- fi
-@@ -14904,19 +16025,19 @@
-
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- echo "$as_me:14907: result: $termios_bad" >&5
-+ echo "$as_me:16028: result: $termios_bad" >&5
- echo "${ECHO_T}$termios_bad" >&6
- fi
- fi
-
--echo "$as_me:14912: checking for tcgetattr" >&5
-+echo "$as_me:16033: checking for tcgetattr" >&5
- echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
- if test "${cf_cv_have_tcgetattr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14919 "configure"
-+#line 16040 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -14944,16 +16065,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14947: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16068: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14950: \$? = $ac_status" >&5
-+ echo "$as_me:16071: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14953: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16074: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14956: \$? = $ac_status" >&5
-+ echo "$as_me:16077: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_have_tcgetattr=yes
- else
-@@ -14963,20 +16084,21 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:14966: result: $cf_cv_have_tcgetattr" >&5
-+echo "$as_me:16087: result: $cf_cv_have_tcgetattr" >&5
- echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
--test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_have_tcgetattr" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_TCGETATTR 1
- EOF
-
--echo "$as_me:14972: checking for vsscanf function or workaround" >&5
-+echo "$as_me:16094: checking for vsscanf function or workaround" >&5
- echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
- if test "${cf_cv_func_vsscanf+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 14979 "configure"
-+#line 16101 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -14992,16 +16114,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14995: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16117: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14998: \$? = $ac_status" >&5
-+ echo "$as_me:16120: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15001: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16123: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15004: \$? = $ac_status" >&5
-+ echo "$as_me:16126: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_func_vsscanf=vsscanf
- else
-@@ -15009,7 +16131,7 @@
- cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 15012 "configure"
-+#line 16134 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -15031,16 +16153,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15034: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16156: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15037: \$? = $ac_status" >&5
-+ echo "$as_me:16159: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15040: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16162: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15043: \$? = $ac_status" >&5
-+ echo "$as_me:16165: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_func_vsscanf=vfscanf
- else
-@@ -15048,7 +16170,7 @@
- cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 15051 "configure"
-+#line 16173 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -15070,16 +16192,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15073: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16195: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15076: \$? = $ac_status" >&5
-+ echo "$as_me:16198: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15079: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16201: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15082: \$? = $ac_status" >&5
-+ echo "$as_me:16204: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_func_vsscanf=_doscan
- else
-@@ -15094,25 +16216,28 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:15097: result: $cf_cv_func_vsscanf" >&5
-+echo "$as_me:16219: result: $cf_cv_func_vsscanf" >&5
- echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
-
- case $cf_cv_func_vsscanf in #(vi
--vsscanf) cat >>confdefs.h <<\EOF
-+vsscanf)
-+cat >>confdefs.h <<\EOF
- #define HAVE_VSSCANF 1
- EOF
- ;; #(vi
--vfscanf) cat >>confdefs.h <<\EOF
-+vfscanf)
-+cat >>confdefs.h <<\EOF
- #define HAVE_VFSCANF 1
- EOF
- ;; #(vi
--_doscan) cat >>confdefs.h <<\EOF
-+_doscan)
-+cat >>confdefs.h <<\EOF
- #define HAVE__DOSCAN 1
- EOF
- ;;
- esac
-
--echo "$as_me:15115: checking for working mkstemp" >&5
-+echo "$as_me:16240: checking for working mkstemp" >&5
- echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
- if test "${cf_cv_func_mkstemp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -15120,13 +16245,80 @@
-
- rm -rf conftest*
- if test "$cross_compiling" = yes; then
-- echo "$as_me:15123: checking for mkstemp" >&5
-+ cf_cv_func_mkstemp=maybe
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 16251 "configure"
-+#include "confdefs.h"
-+
-+#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;
-+ ${cf_cv_main_return:-return}(result);
-+}
-+
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:16289: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:16292: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:16294: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:16297: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_func_mkstemp=yes
-+
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_func_mkstemp=no
-+
-+fi
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+
-+fi
-+echo "$as_me:16312: result: $cf_cv_func_mkstemp" >&5
-+echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
-+if test "x$cf_cv_func_mkstemp" = xmaybe ; then
-+ echo "$as_me:16315: checking for mkstemp" >&5
- echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
- if test "${ac_cv_func_mkstemp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15129 "configure"
-+#line 16321 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mkstemp (); below. */
-@@ -15148,104 +16340,41 @@
- something starting with __ and the normal name is an alias. */
- #if defined (__stub_mkstemp) || defined (__stub___mkstemp)
- choke me
--#else
--f = mkstemp;
--#endif
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15160: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:15163: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15166: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:15169: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_mkstemp=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_mkstemp=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:15179: result: $ac_cv_func_mkstemp" >&5
--echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
--
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 15184 "configure"
--#include "confdefs.h"
--
--#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;
-+#else
-+f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-
-- 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;
-- ${cf_cv_main_return:-return}(result);
-+ ;
-+ return 0;
- }
--
- _ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:15222: \"$ac_link\"") >&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:16352: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15225: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:15227: \"$ac_try\"") >&5
-+ echo "$as_me:16355: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:16358: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15230: \$? = $ac_status" >&5
-+ echo "$as_me:16361: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_func_mkstemp=yes
--
-+ ac_cv_func_mkstemp=yes
- else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+ echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_func_mkstemp=no
--
-+ac_cv_func_mkstemp=no
- fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
-+echo "$as_me:16371: result: $ac_cv_func_mkstemp" >&5
-+echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
-
- fi
--echo "$as_me:15245: result: $cf_cv_func_mkstemp" >&5
--echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
- if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_MKSTEMP 1
- EOF
-
-@@ -15259,22 +16388,22 @@
- HAVE_VSSCANF=0
- fi
-
--if test "$cross_compiling" = yes ; then
-- { echo "$as_me:15263: WARNING: cross compiling: assume setvbuf params not reversed" >&5
-+if test "x$cross_compiling" = xyes ; then
-+ { echo "$as_me:16392: WARNING: cross compiling: assume setvbuf params not reversed" >&5
- echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
- else
-- echo "$as_me:15266: checking whether setvbuf arguments are reversed" >&5
-+ echo "$as_me:16395: checking whether setvbuf arguments are reversed" >&5
- echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
- if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test "$cross_compiling" = yes; then
-- { { echo "$as_me:15272: error: cannot run test program while cross compiling" >&5
-+ { { echo "$as_me:16401: error: cannot run test program while cross compiling" >&5
- echo "$as_me: error: cannot run test program while cross compiling" >&2;}
- { (exit 1); exit 1; }; }
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15277 "configure"
-+#line 16406 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- /* If setvbuf has the reversed format, exit 0. */
-@@ -15291,15 +16420,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:15294: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16423: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15297: \$? = $ac_status" >&5
-+ echo "$as_me:16426: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:15299: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16428: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15302: \$? = $ac_status" >&5
-+ echo "$as_me:16431: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_setvbuf_reversed=yes
- else
-@@ -15312,7 +16441,7 @@
- fi
- rm -f core core.* *.core
- fi
--echo "$as_me:15315: result: $ac_cv_func_setvbuf_reversed" >&5
-+echo "$as_me:16444: result: $ac_cv_func_setvbuf_reversed" >&5
- echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
- if test $ac_cv_func_setvbuf_reversed = yes; then
-
-@@ -15323,68 +16452,66 @@
- fi
-
- fi
--echo "$as_me:15326: checking return type of signal handlers" >&5
--echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
--if test "${ac_cv_type_signal+set}" = set; then
-+echo "$as_me:16455: checking for intptr_t" >&5
-+echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6
-+if test "${ac_cv_type_intptr_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15332 "configure"
-+#line 16461 "configure"
- #include "confdefs.h"
--#include <sys/types.h>
--#include <signal.h>
--#ifdef signal
--# undef signal
--#endif
--#ifdef __cplusplus
--extern "C" void (*signal (int, void (*)(int)))(int);
--#else
--void (*signal ()) ();
--#endif
--
-+$ac_includes_default
- int
- main ()
- {
--int i;
-+if ((intptr_t *) 0)
-+ return 0;
-+if (sizeof (intptr_t))
-+ return 0;
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:15354: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:16476: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:15357: \$? = $ac_status" >&5
-+ echo "$as_me:16479: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:15360: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16482: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15363: \$? = $ac_status" >&5
-+ echo "$as_me:16485: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_type_signal=void
-+ ac_cv_type_intptr_t=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_type_signal=int
-+ac_cv_type_intptr_t=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:15373: result: $ac_cv_type_signal" >&5
--echo "${ECHO_T}$ac_cv_type_signal" >&6
-+echo "$as_me:16495: result: $ac_cv_type_intptr_t" >&5
-+echo "${ECHO_T}$ac_cv_type_intptr_t" >&6
-+if test $ac_cv_type_intptr_t = yes; then
-+ :
-+else
-
- cat >>confdefs.h <<EOF
--#define RETSIGTYPE $ac_cv_type_signal
-+#define intptr_t long
- EOF
-
--echo "$as_me:15380: checking for type sigaction_t" >&5
-+fi
-+
-+echo "$as_me:16507: checking for type sigaction_t" >&5
- echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
- if test "${cf_cv_type_sigaction+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 15387 "configure"
-+#line 16514 "configure"
- #include "confdefs.h"
-
- #include <signal.h>
-@@ -15397,16 +16524,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:15400: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:16527: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:15403: \$? = $ac_status" >&5
-+ echo "$as_me:16530: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:15406: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16533: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15409: \$? = $ac_status" >&5
-+ echo "$as_me:16536: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_type_sigaction=yes
- else
-@@ -15417,13 +16544,14 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-
--echo "$as_me:15420: result: $cf_cv_type_sigaction" >&5
-+echo "$as_me:16547: result: $cf_cv_type_sigaction" >&5
- echo "${ECHO_T}$cf_cv_type_sigaction" >&6
--test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_type_sigaction" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_TYPE_SIGACTION 1
- EOF
-
--echo "$as_me:15426: checking declaration of size-change" >&5
-+echo "$as_me:16554: checking declaration of size-change" >&5
- echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
- if test "${cf_cv_sizechange+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -15438,7 +16566,7 @@
- CPPFLAGS="$cf_save_CPPFLAGS"
- test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
- cat >conftest.$ac_ext <<_ACEOF
--#line 15441 "configure"
-+#line 16569 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #ifdef HAVE_TERMIOS_H
-@@ -15482,16 +16610,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:15485: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:16613: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:15488: \$? = $ac_status" >&5
-+ echo "$as_me:16616: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:15491: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16619: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15494: \$? = $ac_status" >&5
-+ echo "$as_me:16622: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_sizechange=yes
- else
-@@ -15510,10 +16638,11 @@
- done
-
- fi
--echo "$as_me:15513: result: $cf_cv_sizechange" >&5
-+echo "$as_me:16641: result: $cf_cv_sizechange" >&5
- echo "${ECHO_T}$cf_cv_sizechange" >&6
- if test "$cf_cv_sizechange" != no ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_SIZECHANGE 1
- EOF
-
-@@ -15527,13 +16656,13 @@
- esac
- fi
-
--echo "$as_me:15530: checking for memmove" >&5
-+echo "$as_me:16659: checking for memmove" >&5
- echo $ECHO_N "checking for memmove... $ECHO_C" >&6
- if test "${ac_cv_func_memmove+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15536 "configure"
-+#line 16665 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char memmove (); below. */
-@@ -15556,7 +16685,7 @@
- #if defined (__stub_memmove) || defined (__stub___memmove)
- choke me
- #else
--f = memmove;
-+f = memmove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -15564,16 +16693,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15567: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16696: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15570: \$? = $ac_status" >&5
-+ echo "$as_me:16699: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15573: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16702: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15576: \$? = $ac_status" >&5
-+ echo "$as_me:16705: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_memmove=yes
- else
-@@ -15583,19 +16712,19 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:15586: result: $ac_cv_func_memmove" >&5
-+echo "$as_me:16715: result: $ac_cv_func_memmove" >&5
- echo "${ECHO_T}$ac_cv_func_memmove" >&6
- if test $ac_cv_func_memmove = yes; then
- :
- else
-
--echo "$as_me:15592: checking for bcopy" >&5
-+echo "$as_me:16721: checking for bcopy" >&5
- echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
- if test "${ac_cv_func_bcopy+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15598 "configure"
-+#line 16727 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char bcopy (); below. */
-@@ -15618,7 +16747,7 @@
- #if defined (__stub_bcopy) || defined (__stub___bcopy)
- choke me
- #else
--f = bcopy;
-+f = bcopy; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -15626,16 +16755,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15629: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16758: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15632: \$? = $ac_status" >&5
-+ echo "$as_me:16761: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15635: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16764: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15638: \$? = $ac_status" >&5
-+ echo "$as_me:16767: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_bcopy=yes
- else
-@@ -15645,11 +16774,11 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:15648: result: $ac_cv_func_bcopy" >&5
-+echo "$as_me:16777: result: $ac_cv_func_bcopy" >&5
- echo "${ECHO_T}$ac_cv_func_bcopy" >&6
- if test $ac_cv_func_bcopy = yes; then
-
-- echo "$as_me:15652: checking if bcopy does overlapping moves" >&5
-+ echo "$as_me:16781: checking if bcopy does overlapping moves" >&5
- echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
- if test "${cf_cv_good_bcopy+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -15659,7 +16788,7 @@
- cf_cv_good_bcopy=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15662 "configure"
-+#line 16791 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -15673,15 +16802,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:15676: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16805: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15679: \$? = $ac_status" >&5
-+ echo "$as_me:16808: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:15681: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16810: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15684: \$? = $ac_status" >&5
-+ echo "$as_me:16813: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_good_bcopy=yes
- else
-@@ -15694,7 +16823,7 @@
- fi
-
- fi
--echo "$as_me:15697: result: $cf_cv_good_bcopy" >&5
-+echo "$as_me:16826: result: $cf_cv_good_bcopy" >&5
- echo "${ECHO_T}$cf_cv_good_bcopy" >&6
-
- else
-@@ -15702,12 +16831,14 @@
- fi
-
- if test "$cf_cv_good_bcopy" = yes ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_OK_BCOPY 1
- EOF
-
- else
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_MY_MEMMOVE 1
- EOF
-
-@@ -15715,7 +16846,7 @@
-
- fi
-
--echo "$as_me:15718: checking if poll really works" >&5
-+echo "$as_me:16849: checking if poll really works" >&5
- echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
- if test "${cf_cv_working_poll+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -15725,10 +16856,13 @@
- cf_cv_working_poll=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15728 "configure"
-+#line 16859 "configure"
- #include "confdefs.h"
-
-+#include <stdlib.h>
- #include <stdio.h>
-+#include <unistd.h>
-+#include <fcntl.h>
- #ifdef HAVE_POLL_H
- #include <poll.h>
- #else
-@@ -15738,23 +16872,46 @@
- struct pollfd myfds;
- int ret;
-
-- myfds.fd = 0;
-+ /* check for Darwin bug with respect to "devices" */
-+ myfds.fd = open("/dev/null", 1); /* O_WRONLY */
-+ if (myfds.fd < 0)
-+ myfds.fd = 0;
- myfds.events = POLLIN;
-+ myfds.revents = 0;
-
- ret = poll(&myfds, 1, 100);
-- ${cf_cv_main_return:-return}(ret != 0);
-+
-+ if (ret < 0 || (myfds.revents & POLLNVAL)) {
-+ ret = -1;
-+ } else {
-+ int fd = 0;
-+ if (!isatty(fd)) {
-+ fd = open("/dev/tty", 2); /* O_RDWR */
-+ }
-+
-+ if (fd >= 0) {
-+ /* also check with standard input */
-+ myfds.fd = fd;
-+ myfds.events = POLLIN;
-+ myfds.revents = 0;
-+ ret = poll(&myfds, 1, 100);
-+ } else {
-+ ret = -1;
-+ }
-+ }
-+ ${cf_cv_main_return:-return}(ret < 0);
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:15749: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16906: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15752: \$? = $ac_status" >&5
-+ echo "$as_me:16909: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:15754: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16911: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15757: \$? = $ac_status" >&5
-+ echo "$as_me:16914: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_working_poll=yes
- else
-@@ -15766,20 +16923,21 @@
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- fi
--echo "$as_me:15769: result: $cf_cv_working_poll" >&5
-+echo "$as_me:16926: result: $cf_cv_working_poll" >&5
- echo "${ECHO_T}$cf_cv_working_poll" >&6
--test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
-+test "$cf_cv_working_poll" = "yes" &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_WORKING_POLL 1
- EOF
-
--echo "$as_me:15775: checking for va_copy" >&5
-+echo "$as_me:16933: checking for va_copy" >&5
- echo $ECHO_N "checking for va_copy... $ECHO_C" >&6
- if test "${cf_cv_have_va_copy+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 15782 "configure"
-+#line 16940 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -15796,16 +16954,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15799: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:16957: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15802: \$? = $ac_status" >&5
-+ echo "$as_me:16960: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15805: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:16963: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15808: \$? = $ac_status" >&5
-+ echo "$as_me:16966: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_have_va_copy=yes
- else
-@@ -15815,21 +16973,22 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:15818: result: $cf_cv_have_va_copy" >&5
-+echo "$as_me:16976: result: $cf_cv_have_va_copy" >&5
- echo "${ECHO_T}$cf_cv_have_va_copy" >&6
-
--test "$cf_cv_have_va_copy" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_have_va_copy" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE_VA_COPY 1
- EOF
-
--echo "$as_me:15825: checking for __va_copy" >&5
-+echo "$as_me:16984: checking for __va_copy" >&5
- echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6
- if test "${cf_cv_have___va_copy+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 15832 "configure"
-+#line 16991 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -15846,16 +17005,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15849: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17008: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15852: \$? = $ac_status" >&5
-+ echo "$as_me:17011: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15855: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17014: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15858: \$? = $ac_status" >&5
-+ echo "$as_me:17017: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_have___va_copy=yes
- else
-@@ -15865,20 +17024,21 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:15868: result: $cf_cv_have___va_copy" >&5
-+echo "$as_me:17027: result: $cf_cv_have___va_copy" >&5
- echo "${ECHO_T}$cf_cv_have___va_copy" >&6
-
--test "$cf_cv_have___va_copy" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_have___va_copy" = yes &&
-+cat >>confdefs.h <<\EOF
- #define HAVE___VA_COPY 1
- EOF
-
--echo "$as_me:15875: checking for pid_t" >&5
-+echo "$as_me:17035: checking for pid_t" >&5
- echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
- if test "${ac_cv_type_pid_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15881 "configure"
-+#line 17041 "configure"
- #include "confdefs.h"
- $ac_includes_default
- int
-@@ -15893,16 +17053,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:15896: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:17056: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:15899: \$? = $ac_status" >&5
-+ echo "$as_me:17059: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:15902: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17062: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15905: \$? = $ac_status" >&5
-+ echo "$as_me:17065: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_pid_t=yes
- else
-@@ -15912,7 +17072,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:15915: result: $ac_cv_type_pid_t" >&5
-+echo "$as_me:17075: result: $ac_cv_type_pid_t" >&5
- echo "${ECHO_T}$ac_cv_type_pid_t" >&6
- if test $ac_cv_type_pid_t = yes; then
- :
-@@ -15927,23 +17087,23 @@
- for ac_header in unistd.h vfork.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:15930: checking for $ac_header" >&5
-+echo "$as_me:17090: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15936 "configure"
-+#line 17096 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:15940: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:17100: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:15946: \$? = $ac_status" >&5
-+ echo "$as_me:17106: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -15962,7 +17122,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:15965: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:17125: 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
-@@ -15975,13 +17135,13 @@
- for ac_func in fork vfork
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:15978: checking for $ac_func" >&5
-+echo "$as_me:17138: checking for $ac_func" >&5
- echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
- if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 15984 "configure"
-+#line 17144 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-@@ -16004,7 +17164,7 @@
- #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
- choke me
- #else
--f = $ac_func;
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -16012,16 +17172,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:16015: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17175: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16018: \$? = $ac_status" >&5
-+ echo "$as_me:17178: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:16021: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17181: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16024: \$? = $ac_status" >&5
-+ echo "$as_me:17184: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
- else
-@@ -16031,7 +17191,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:16034: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "$as_me:17194: 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
-@@ -16043,7 +17203,7 @@
-
- ac_cv_func_fork_works=$ac_cv_func_fork
- if test "x$ac_cv_func_fork" = xyes; then
-- echo "$as_me:16046: checking for working fork" >&5
-+ echo "$as_me:17206: checking for working fork" >&5
- echo $ECHO_N "checking for working fork... $ECHO_C" >&6
- if test "${ac_cv_func_fork_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16066,15 +17226,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:16069: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17229: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16072: \$? = $ac_status" >&5
-+ echo "$as_me:17232: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:16074: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17234: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16077: \$? = $ac_status" >&5
-+ echo "$as_me:17237: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_fork_works=yes
- else
-@@ -16086,7 +17246,7 @@
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- fi
--echo "$as_me:16089: result: $ac_cv_func_fork_works" >&5
-+echo "$as_me:17249: result: $ac_cv_func_fork_works" >&5
- echo "${ECHO_T}$ac_cv_func_fork_works" >&6
-
- fi
-@@ -16100,12 +17260,12 @@
- ac_cv_func_fork_works=yes
- ;;
- esac
-- { echo "$as_me:16103: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
-+ { echo "$as_me:17263: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
- echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
- fi
- ac_cv_func_vfork_works=$ac_cv_func_vfork
- if test "x$ac_cv_func_vfork" = xyes; then
-- echo "$as_me:16108: checking for working vfork" >&5
-+ echo "$as_me:17268: checking for working vfork" >&5
- echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
- if test "${ac_cv_func_vfork_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16114,7 +17274,7 @@
- ac_cv_func_vfork_works=cross
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 16117 "configure"
-+#line 17277 "configure"
- #include "confdefs.h"
- /* Thanks to Paul Eggert for this test. */
- #include <stdio.h>
-@@ -16211,15 +17371,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:16214: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17374: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16217: \$? = $ac_status" >&5
-+ echo "$as_me:17377: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:16219: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17379: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16222: \$? = $ac_status" >&5
-+ echo "$as_me:17382: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_vfork_works=yes
- else
-@@ -16231,13 +17391,13 @@
- rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- fi
--echo "$as_me:16234: result: $ac_cv_func_vfork_works" >&5
-+echo "$as_me:17394: result: $ac_cv_func_vfork_works" >&5
- echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
-
- fi;
- if test "x$ac_cv_func_fork_works" = xcross; then
- ac_cv_func_vfork_works=ac_cv_func_vfork
-- { echo "$as_me:16240: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
-+ { echo "$as_me:17400: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
- echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
- fi
-
-@@ -16264,7 +17424,7 @@
-
- # special check for test/ditto.c
-
--echo "$as_me:16267: checking for openpty in -lutil" >&5
-+echo "$as_me:17427: checking for openpty in -lutil" >&5
- echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
- if test "${ac_cv_lib_util_openpty+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16272,7 +17432,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lutil $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 16275 "configure"
-+#line 17435 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -16291,16 +17451,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:16294: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17454: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16297: \$? = $ac_status" >&5
-+ echo "$as_me:17457: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:16300: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17460: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16303: \$? = $ac_status" >&5
-+ echo "$as_me:17463: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_util_openpty=yes
- else
-@@ -16311,7 +17471,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:16314: result: $ac_cv_lib_util_openpty" >&5
-+echo "$as_me:17474: result: $ac_cv_lib_util_openpty" >&5
- echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
- if test $ac_cv_lib_util_openpty = yes; then
- cf_cv_lib_util=yes
-@@ -16319,7 +17479,7 @@
- cf_cv_lib_util=no
- fi
-
--echo "$as_me:16322: checking for openpty header" >&5
-+echo "$as_me:17482: checking for openpty header" >&5
- echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
- if test "${cf_cv_func_openpty+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16330,7 +17490,7 @@
- for cf_header in pty.h libutil.h util.h
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 16333 "configure"
-+#line 17493 "configure"
- #include "confdefs.h"
-
- #include <$cf_header>
-@@ -16347,16 +17507,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:16350: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17510: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16353: \$? = $ac_status" >&5
-+ echo "$as_me:17513: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:16356: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17516: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16359: \$? = $ac_status" >&5
-+ echo "$as_me:17519: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_func_openpty=$cf_header
-@@ -16374,25 +17534,27 @@
- LIBS="$cf_save_LIBS"
-
- fi
--echo "$as_me:16377: result: $cf_cv_func_openpty" >&5
-+echo "$as_me:17537: result: $cf_cv_func_openpty" >&5
- echo "${ECHO_T}$cf_cv_func_openpty" >&6
-
- if test "$cf_cv_func_openpty" != no ; then
-- cat >>confdefs.h <<EOF
-+
-+cat >>confdefs.h <<EOF
- #define USE_OPENPTY_HEADER <$cf_cv_func_openpty>
- EOF
-
-- cat >>confdefs.h <<\EOF
-+cat >>confdefs.h <<\EOF
- #define USE_XTERM_PTY 1
- EOF
-
-- if test "$cf_cv_lib_util" = yes ; then
-+ if test "x$cf_cv_lib_util" = xyes ; then
- TEST_LIBS="-lutil $TEST_LIBS"
- fi
- fi
-
- if test "$with_hashed_db" != no ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define USE_HASHED_DB 1
- EOF
-
-@@ -16426,7 +17588,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 16429 "configure"
-+#line 17591 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -16438,16 +17600,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:16441: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:17603: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:16444: \$? = $ac_status" >&5
-+ echo "$as_me:17606: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:16447: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17609: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16450: \$? = $ac_status" >&5
-+ echo "$as_me:17612: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -16464,7 +17626,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:16467: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:17629: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -16498,7 +17660,7 @@
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--echo "${as_me:-configure}:16501: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:17663: testing adding $cf_add_libdir to library-path ..." 1>&5
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
-@@ -16509,23 +17671,23 @@
- fi
- esac
-
--echo "$as_me:16512: checking for db.h" >&5
-+echo "$as_me:17674: checking for db.h" >&5
- echo $ECHO_N "checking for db.h... $ECHO_C" >&6
- if test "${ac_cv_header_db_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 16518 "configure"
-+#line 17680 "configure"
- #include "confdefs.h"
- #include <db.h>
- _ACEOF
--if { (eval echo "$as_me:16522: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:17684: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:16528: \$? = $ac_status" >&5
-+ echo "$as_me:17690: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -16544,11 +17706,11 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:16547: result: $ac_cv_header_db_h" >&5
-+echo "$as_me:17709: result: $ac_cv_header_db_h" >&5
- echo "${ECHO_T}$ac_cv_header_db_h" >&6
- if test $ac_cv_header_db_h = yes; then
-
--echo "$as_me:16551: checking for version of db" >&5
-+echo "$as_me:17713: checking for version of db" >&5
- echo $ECHO_N "checking for version of db... $ECHO_C" >&6
- if test "${cf_cv_hashed_db_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16559,10 +17721,10 @@
- for cf_db_version in 1 2 3 4 5
- do
-
--echo "${as_me:-configure}:16562: testing checking for db version $cf_db_version ..." 1>&5
-+echo "${as_me:-configure}:17724: testing checking for db version $cf_db_version ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 16565 "configure"
-+#line 17727 "configure"
- #include "confdefs.h"
-
- $ac_includes_default
-@@ -16592,16 +17754,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:16595: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:17757: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:16598: \$? = $ac_status" >&5
-+ echo "$as_me:17760: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:16601: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17763: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16604: \$? = $ac_status" >&5
-+ echo "$as_me:17766: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_hashed_db_version=$cf_db_version
-@@ -16615,16 +17777,16 @@
- done
-
- fi
--echo "$as_me:16618: result: $cf_cv_hashed_db_version" >&5
-+echo "$as_me:17780: result: $cf_cv_hashed_db_version" >&5
- echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
-
- if test "$cf_cv_hashed_db_version" = unknown ; then
-- { { echo "$as_me:16622: error: Cannot determine version of db" >&5
-+ { { echo "$as_me:17784: error: Cannot determine version of db" >&5
- echo "$as_me: error: Cannot determine version of db" >&2;}
- { (exit 1); exit 1; }; }
- else
-
--echo "$as_me:16627: checking for db libraries" >&5
-+echo "$as_me:17789: checking for db libraries" >&5
- echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
- if test "${cf_cv_hashed_db_libs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16638,10 +17800,10 @@
- LIBS="-l$cf_db_libs $LIBS"
- fi
-
--echo "${as_me:-configure}:16641: testing checking for library "$cf_db_libs" ..." 1>&5
-+echo "${as_me:-configure}:17803: testing checking for library "$cf_db_libs" ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 16644 "configure"
-+#line 17806 "configure"
- #include "confdefs.h"
-
- $ac_includes_default
-@@ -16696,16 +17858,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:16699: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:17861: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16702: \$? = $ac_status" >&5
-+ echo "$as_me:17864: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:16705: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17867: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16708: \$? = $ac_status" >&5
-+ echo "$as_me:17870: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- if test -n "$cf_db_libs" ; then
-@@ -16725,11 +17887,11 @@
- done
-
- fi
--echo "$as_me:16728: result: $cf_cv_hashed_db_libs" >&5
-+echo "$as_me:17890: result: $cf_cv_hashed_db_libs" >&5
- echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
-
- if test "$cf_cv_hashed_db_libs" = unknown ; then
-- { { echo "$as_me:16732: error: Cannot determine library for db" >&5
-+ { { echo "$as_me:17894: error: Cannot determine library for db" >&5
- echo "$as_me: error: Cannot determine library for db" >&2;}
- { (exit 1); exit 1; }; }
- elif test "$cf_cv_hashed_db_libs" != default ; then
-@@ -16739,7 +17901,7 @@
-
- else
-
-- { { echo "$as_me:16742: error: Cannot find db.h" >&5
-+ { { echo "$as_me:17904: error: Cannot find db.h" >&5
- echo "$as_me: error: Cannot find db.h" >&2;}
- { (exit 1); exit 1; }; }
-
-@@ -16754,7 +17916,7 @@
-
- # Just in case, check if the C compiler has a bool type.
-
--echo "$as_me:16757: checking if we should include stdbool.h" >&5
-+echo "$as_me:17919: checking if we should include stdbool.h" >&5
- echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
-
- if test "${cf_cv_header_stdbool_h+set}" = set; then
-@@ -16762,7 +17924,7 @@
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 16765 "configure"
-+#line 17927 "configure"
- #include "confdefs.h"
-
- int
-@@ -16774,23 +17936,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:16777: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:17939: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:16780: \$? = $ac_status" >&5
-+ echo "$as_me:17942: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:16783: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17945: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16786: \$? = $ac_status" >&5
-+ echo "$as_me:17948: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=0
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 16793 "configure"
-+#line 17955 "configure"
- #include "confdefs.h"
-
- #ifndef __BEOS__
-@@ -16806,16 +17968,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:16809: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:17971: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:16812: \$? = $ac_status" >&5
-+ echo "$as_me:17974: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:16815: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:17977: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16818: \$? = $ac_status" >&5
-+ echo "$as_me:17980: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=1
- else
-@@ -16829,13 +17991,13 @@
- fi
-
- if test "$cf_cv_header_stdbool_h" = 1
--then echo "$as_me:16832: result: yes" >&5
-+then echo "$as_me:17994: result: yes" >&5
- echo "${ECHO_T}yes" >&6
--else echo "$as_me:16834: result: no" >&5
-+else echo "$as_me:17996: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
--echo "$as_me:16838: checking for builtin bool type" >&5
-+echo "$as_me:18000: checking for builtin bool type" >&5
- echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
-
- if test "${cf_cv_cc_bool_type+set}" = set; then
-@@ -16843,7 +18005,7 @@
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 16846 "configure"
-+#line 18008 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -16858,16 +18020,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:16861: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:18023: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:16864: \$? = $ac_status" >&5
-+ echo "$as_me:18026: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:16867: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18029: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16870: \$? = $ac_status" >&5
-+ echo "$as_me:18032: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_cc_bool_type=1
- else
-@@ -16880,9 +18042,9 @@
- fi
-
- if test "$cf_cv_cc_bool_type" = 1
--then echo "$as_me:16883: result: yes" >&5
-+then echo "$as_me:18045: result: yes" >&5
- echo "${ECHO_T}yes" >&6
--else echo "$as_me:16885: result: no" >&5
-+else echo "$as_me:18047: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -16904,7 +18066,7 @@
- cf_stdcpp_libname=stdc++
- ;;
- esac
--echo "$as_me:16907: checking for library $cf_stdcpp_libname" >&5
-+echo "$as_me:18069: checking for library $cf_stdcpp_libname" >&5
- echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
- if test "${cf_cv_libstdcpp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16913,7 +18075,7 @@
- cf_save="$LIBS"
- LIBS="-l$cf_stdcpp_libname $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 16916 "configure"
-+#line 18078 "configure"
- #include "confdefs.h"
-
- #include <strstream.h>
-@@ -16929,16 +18091,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:16932: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:18094: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:16935: \$? = $ac_status" >&5
-+ echo "$as_me:18097: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:16938: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18100: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16941: \$? = $ac_status" >&5
-+ echo "$as_me:18103: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_libstdcpp=yes
- else
-@@ -16950,12 +18112,12 @@
- LIBS="$cf_save"
-
- fi
--echo "$as_me:16953: result: $cf_cv_libstdcpp" >&5
-+echo "$as_me:18115: result: $cf_cv_libstdcpp" >&5
- echo "${ECHO_T}$cf_cv_libstdcpp" >&6
- test "$cf_cv_libstdcpp" = yes && CXXLIBS="-l$cf_stdcpp_libname $CXXLIBS"
- fi
-
-- echo "$as_me:16958: checking whether $CXX understands -c and -o together" >&5
-+ echo "$as_me:18120: checking whether $CXX understands -c and -o together" >&5
- echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
- if test "${cf_cv_prog_CXX_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -16971,15 +18133,15 @@
- # We do the test twice because some compilers refuse to overwrite an
- # existing .o file with -o, though they will create one.
- ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
--if { (eval echo "$as_me:16974: \"$ac_try\"") >&5
-+if { (eval echo "$as_me:18136: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16977: \$? = $ac_status" >&5
-+ echo "$as_me:18139: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- test -f conftest2.$ac_objext && { (eval echo "$as_me:16979: \"$ac_try\"") >&5
-+ test -f conftest2.$ac_objext && { (eval echo "$as_me:18141: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:16982: \$? = $ac_status" >&5
-+ echo "$as_me:18144: \$? = $ac_status" >&5
- (exit $ac_status); };
- then
- eval cf_cv_prog_CXX_c_o=yes
-@@ -16990,10 +18152,10 @@
-
- fi
- if test $cf_cv_prog_CXX_c_o = yes; then
-- echo "$as_me:16993: result: yes" >&5
-+ echo "$as_me:18155: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
-- echo "$as_me:16996: result: no" >&5
-+ echo "$as_me:18158: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -17013,12 +18175,12 @@
- ;;
- esac
- if test "$GXX" = yes; then
-- echo "$as_me:17016: checking for lib$cf_gpp_libname" >&5
-+ echo "$as_me:18178: checking for lib$cf_gpp_libname" >&5
- echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
- cf_save="$LIBS"
- LIBS="-l$cf_gpp_libname $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 17021 "configure"
-+#line 18183 "configure"
- #include "confdefs.h"
-
- #include <$cf_gpp_libname/builtin.h>
-@@ -17032,26 +18194,28 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:17035: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:18197: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:17038: \$? = $ac_status" >&5
-+ echo "$as_me:18200: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:17041: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18203: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17044: \$? = $ac_status" >&5
-+ echo "$as_me:18206: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cxx_library=yes
- CXXLIBS="-l$cf_gpp_libname $CXXLIBS"
- if test "$cf_gpp_libname" = cpp ; then
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_GPP_BUILTIN_H 1
- EOF
-
- else
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_GXX_BUILTIN_H 1
- EOF
-
-@@ -17060,7 +18224,7 @@
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 17063 "configure"
-+#line 18227 "configure"
- #include "confdefs.h"
-
- #include <builtin.h>
-@@ -17074,20 +18238,21 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:17077: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:18241: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:17080: \$? = $ac_status" >&5
-+ echo "$as_me:18244: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:17083: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18247: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17086: \$? = $ac_status" >&5
-+ echo "$as_me:18250: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cxx_library=yes
- CXXLIBS="-l$cf_gpp_libname $CXXLIBS"
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_BUILTIN_H 1
- EOF
-
-@@ -17100,7 +18265,7 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save"
-- echo "$as_me:17103: result: $cf_cxx_library" >&5
-+ echo "$as_me:18268: result: $cf_cxx_library" >&5
- echo "${ECHO_T}$cf_cxx_library" >&6
- fi
-
-@@ -17116,7 +18281,7 @@
- ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
- ac_main_return=return
--echo "$as_me:17119: checking how to run the C++ preprocessor" >&5
-+echo "$as_me:18284: checking how to run the C++ preprocessor" >&5
- echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
- if test -z "$CXXCPP"; then
- if test "${ac_cv_prog_CXXCPP+set}" = set; then
-@@ -17133,18 +18298,18 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
--#line 17136 "configure"
-+#line 18301 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:17141: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:18306: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:17147: \$? = $ac_status" >&5
-+ echo "$as_me:18312: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
-@@ -17167,17 +18332,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 17170 "configure"
-+#line 18335 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:17174: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:18339: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:17180: \$? = $ac_status" >&5
-+ echo "$as_me:18345: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
-@@ -17214,7 +18379,7 @@
- else
- ac_cv_prog_CXXCPP=$CXXCPP
- fi
--echo "$as_me:17217: result: $CXXCPP" >&5
-+echo "$as_me:18382: result: $CXXCPP" >&5
- echo "${ECHO_T}$CXXCPP" >&6
- ac_preproc_ok=false
- for ac_cxx_preproc_warn_flag in '' yes
-@@ -17224,18 +18389,18 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
--#line 17227 "configure"
-+#line 18392 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:17232: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:18397: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:17238: \$? = $ac_status" >&5
-+ echo "$as_me:18403: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
-@@ -17258,17 +18423,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 17261 "configure"
-+#line 18426 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:17265: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:18430: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:17271: \$? = $ac_status" >&5
-+ echo "$as_me:18436: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
-@@ -17296,7 +18461,7 @@
- if $ac_preproc_ok; then
- :
- else
-- { { echo "$as_me:17299: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
-+ { { echo "$as_me:18464: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
- echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -17308,26 +18473,74 @@
- ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
- ac_main_return=return
-
--for ac_header in iostream typeinfo
-+for ac_header in typeinfo
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:18479: 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 18485 "configure"
-+#include "confdefs.h"
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:18489: \"$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:18495: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_cxx_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+fi
-+echo "$as_me:18514: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-+
-+fi
-+done
-+
-+for ac_header in iostream
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:17314: checking for $ac_header" >&5
-+echo "$as_me:18527: checking for $ac_header" >&5
- echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
- if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 17320 "configure"
-+#line 18533 "configure"
- #include "confdefs.h"
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:17324: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:18537: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:17330: \$? = $ac_status" >&5
-+ echo "$as_me:18543: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
-@@ -17346,7 +18559,7 @@
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:17349: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "$as_me:18562: 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
-@@ -17356,11 +18569,11 @@
- fi
- done
-
-- if test x"$ac_cv_header_iostream" = xyes ; then
-- echo "$as_me:17360: checking if iostream uses std-namespace" >&5
-+if test x"$ac_cv_header_iostream" = xyes ; then
-+ echo "$as_me:18573: checking if iostream uses std-namespace" >&5
- echo $ECHO_N "checking if iostream uses std-namespace... $ECHO_C" >&6
-- cat >conftest.$ac_ext <<_ACEOF
--#line 17363 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 18576 "configure"
- #include "confdefs.h"
-
- #include <iostream>
-@@ -17377,16 +18590,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:17380: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:18593: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:17383: \$? = $ac_status" >&5
-+ echo "$as_me:18596: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:17386: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18599: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17389: \$? = $ac_status" >&5
-+ echo "$as_me:18602: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_iostream_namespace=yes
- else
-@@ -17395,17 +18608,18 @@
- cf_iostream_namespace=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- echo "$as_me:17398: result: $cf_iostream_namespace" >&5
-+ echo "$as_me:18611: result: $cf_iostream_namespace" >&5
- echo "${ECHO_T}$cf_iostream_namespace" >&6
-- if test "$cf_iostream_namespace" = yes ; then
-- cat >>confdefs.h <<\EOF
-+ if test "$cf_iostream_namespace" = yes ; then
-+
-+cat >>confdefs.h <<\EOF
- #define IOSTREAM_NAMESPACE 1
- EOF
-
-- fi
-- fi
-+ fi
-+fi
-
--echo "$as_me:17408: checking if we should include stdbool.h" >&5
-+echo "$as_me:18622: checking if we should include stdbool.h" >&5
- echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
-
- if test "${cf_cv_header_stdbool_h+set}" = set; then
-@@ -17413,7 +18627,7 @@
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 17416 "configure"
-+#line 18630 "configure"
- #include "confdefs.h"
-
- int
-@@ -17425,23 +18639,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:17428: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:18642: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:17431: \$? = $ac_status" >&5
-+ echo "$as_me:18645: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:17434: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18648: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17437: \$? = $ac_status" >&5
-+ echo "$as_me:18651: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=0
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- cat >conftest.$ac_ext <<_ACEOF
--#line 17444 "configure"
-+#line 18658 "configure"
- #include "confdefs.h"
-
- #ifndef __BEOS__
-@@ -17457,16 +18671,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:17460: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:18674: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:17463: \$? = $ac_status" >&5
-+ echo "$as_me:18677: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:17466: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18680: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17469: \$? = $ac_status" >&5
-+ echo "$as_me:18683: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_header_stdbool_h=1
- else
-@@ -17480,13 +18694,13 @@
- fi
-
- if test "$cf_cv_header_stdbool_h" = 1
--then echo "$as_me:17483: result: yes" >&5
-+then echo "$as_me:18697: result: yes" >&5
- echo "${ECHO_T}yes" >&6
--else echo "$as_me:17485: result: no" >&5
-+else echo "$as_me:18699: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
--echo "$as_me:17489: checking for builtin bool type" >&5
-+echo "$as_me:18703: checking for builtin bool type" >&5
- echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
-
- if test "${cf_cv_builtin_bool+set}" = set; then
-@@ -17494,7 +18708,7 @@
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 17497 "configure"
-+#line 18711 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -17509,16 +18723,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:17512: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:18726: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:17515: \$? = $ac_status" >&5
-+ echo "$as_me:18729: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:17518: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18732: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17521: \$? = $ac_status" >&5
-+ echo "$as_me:18735: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_builtin_bool=1
- else
-@@ -17531,13 +18745,13 @@
- fi
-
- if test "$cf_cv_builtin_bool" = 1
--then echo "$as_me:17534: result: yes" >&5
-+then echo "$as_me:18748: result: yes" >&5
- echo "${ECHO_T}yes" >&6
--else echo "$as_me:17536: result: no" >&5
-+else echo "$as_me:18750: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
--echo "$as_me:17540: checking for size of bool" >&5
-+echo "$as_me:18754: checking for size of bool" >&5
- echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
- if test "${cf_cv_type_of_bool+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -17548,7 +18762,7 @@
- cf_cv_type_of_bool=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 17551 "configure"
-+#line 18765 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -17572,7 +18786,7 @@
-
- #endif
-
--main()
-+int main()
- {
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
-@@ -17590,15 +18804,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:17593: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:18807: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:17596: \$? = $ac_status" >&5
-+ echo "$as_me:18810: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:17598: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18812: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17601: \$? = $ac_status" >&5
-+ echo "$as_me:18815: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_type_of_bool=`cat cf_test.out`
- if test -z "$cf_cv_type_of_bool"; then
-@@ -17616,30 +18830,36 @@
- fi
-
- rm -f cf_test.out
--echo "$as_me:17619: result: $cf_cv_type_of_bool" >&5
-+echo "$as_me:18833: result: $cf_cv_type_of_bool" >&5
- echo "${ECHO_T}$cf_cv_type_of_bool" >&6
- if test "$cf_cv_type_of_bool" = unknown ; then
- case .$NCURSES_BOOL in #(vi
- .auto|.) NCURSES_BOOL=unsigned;;
- esac
-- { echo "$as_me:17625: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
-+ { echo "$as_me:18839: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
- echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
- cf_cv_type_of_bool=$NCURSES_BOOL
- fi
-
--echo "$as_me:17630: checking for special defines needed for etip.h" >&5
-+echo "$as_me:18844: checking for special defines needed for etip.h" >&5
- echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
- cf_save_CXXFLAGS="$CXXFLAGS"
- cf_result="none"
-+
-+# etip.h includes ncurses.h which includes ncurses_dll.h
-+# But ncurses_dll.h is generated - fix here.
-+test -d include || mkdir include
-+test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h
-+
- for cf_math in "" MATH_H
- do
- for cf_excp in "" MATH_EXCEPTION
- do
-- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
-+ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
- test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
- test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
- cat >conftest.$ac_ext <<_ACEOF
--#line 17642 "configure"
-+#line 18862 "configure"
- #include "confdefs.h"
-
- #include <etip.h.in>
-@@ -17653,16 +18873,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:17656: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:18876: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:17659: \$? = $ac_status" >&5
-+ echo "$as_me:18879: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:17662: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18882: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17665: \$? = $ac_status" >&5
-+ echo "$as_me:18885: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- test -n "$cf_math" && cat >>confdefs.h <<EOF
-@@ -17674,7 +18894,7 @@
- EOF
-
- cf_result="$cf_math $cf_excp"
-- break
-+ break 2
-
- else
- echo "$as_me: failed program was:" >&5
-@@ -17683,12 +18903,12 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- done
- done
--echo "$as_me:17686: result: $cf_result" >&5
-+echo "$as_me:18906: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
- CXXFLAGS="$cf_save_CXXFLAGS"
-
- if test -n "$CXX"; then
--echo "$as_me:17691: checking if $CXX accepts parameter initialization" >&5
-+echo "$as_me:18911: checking if $CXX accepts parameter initialization" >&5
- echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
- if test "${cf_cv_cpp_param_init+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -17705,7 +18925,7 @@
- cf_cv_cpp_param_init=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 17708 "configure"
-+#line 18928 "configure"
- #include "confdefs.h"
-
- class TEST {
-@@ -17720,19 +18940,19 @@
- {
- value = x;
- }
--void main() { }
-+int main() { }
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:17727: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:18947: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:17730: \$? = $ac_status" >&5
-+ echo "$as_me:18950: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:17732: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:18952: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17735: \$? = $ac_status" >&5
-+ echo "$as_me:18955: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_cpp_param_init=yes
- else
-@@ -17751,16 +18971,17 @@
- ac_main_return=return
-
- fi
--echo "$as_me:17754: result: $cf_cv_cpp_param_init" >&5
-+echo "$as_me:18974: result: $cf_cv_cpp_param_init" >&5
- echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
- fi
--test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_cpp_param_init" = yes &&
-+cat >>confdefs.h <<\EOF
- #define CPP_HAS_PARAM_INIT 1
- EOF
-
- if test -n "$CXX"; then
-
--echo "$as_me:17763: checking if $CXX accepts static_cast" >&5
-+echo "$as_me:18984: checking if $CXX accepts static_cast" >&5
- echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
- if test "${cf_cv_cpp_static_cast+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -17774,7 +18995,7 @@
- ac_main_return=return
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 17777 "configure"
-+#line 18998 "configure"
- #include "confdefs.h"
-
- class NCursesPanel
-@@ -17786,7 +19007,7 @@
- int begin_x = 0)
- {
- }
--
-+ NCursesPanel();
- ~NCursesPanel();
- };
-
-@@ -17818,16 +19039,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:17821: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:19042: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:17824: \$? = $ac_status" >&5
-+ echo "$as_me:19045: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:17827: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:19048: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17830: \$? = $ac_status" >&5
-+ echo "$as_me:19051: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_cpp_static_cast=yes
- else
-@@ -17845,12 +19066,13 @@
- ac_main_return=return
-
- fi
--echo "$as_me:17848: result: $cf_cv_cpp_static_cast" >&5
-+echo "$as_me:19069: result: $cf_cv_cpp_static_cast" >&5
- echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
-
- fi
-
--test "$cf_cv_cpp_static_cast" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_cpp_static_cast" = yes &&
-+cat >>confdefs.h <<\EOF
- #define CPP_HAS_STATIC_CAST 1
- EOF
-
-@@ -17893,7 +19115,7 @@
- else
- if test "$cf_cv_header_stdbool_h" = 1 ; then
-
--echo "$as_me:17896: checking for size of bool" >&5
-+echo "$as_me:19118: checking for size of bool" >&5
- echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
- if test "${cf_cv_type_of_bool+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -17904,7 +19126,7 @@
- cf_cv_type_of_bool=unknown
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 17907 "configure"
-+#line 19129 "configure"
- #include "confdefs.h"
-
- #include <stdlib.h>
-@@ -17928,7 +19150,7 @@
-
- #endif
-
--main()
-+int main()
- {
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
-@@ -17946,15 +19168,15 @@
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:17949: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:19171: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:17952: \$? = $ac_status" >&5
-+ echo "$as_me:19174: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:17954: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:19176: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:17957: \$? = $ac_status" >&5
-+ echo "$as_me:19179: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_type_of_bool=`cat cf_test.out`
- if test -z "$cf_cv_type_of_bool"; then
-@@ -17972,25 +19194,25 @@
- fi
-
- rm -f cf_test.out
--echo "$as_me:17975: result: $cf_cv_type_of_bool" >&5
-+echo "$as_me:19197: result: $cf_cv_type_of_bool" >&5
- echo "${ECHO_T}$cf_cv_type_of_bool" >&6
- if test "$cf_cv_type_of_bool" = unknown ; then
- case .$NCURSES_BOOL in #(vi
- .auto|.) NCURSES_BOOL=unsigned;;
- esac
-- { echo "$as_me:17981: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
-+ { echo "$as_me:19203: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
- echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
- cf_cv_type_of_bool=$NCURSES_BOOL
- fi
-
- else
-- echo "$as_me:17987: checking for fallback type of bool" >&5
-+ echo "$as_me:19209: checking for fallback type of bool" >&5
- echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
- case "$host_cpu" in #(vi
- i?86) cf_cv_type_of_bool=char ;; #(vi
- *) cf_cv_type_of_bool=int ;;
- esac
-- echo "$as_me:17993: result: $cf_cv_type_of_bool" >&5
-+ echo "$as_me:19215: result: $cf_cv_type_of_bool" >&5
- echo "${ECHO_T}$cf_cv_type_of_bool" >&6
- fi
- fi
-@@ -18019,7 +19241,7 @@
-
- if test "$cf_with_ada" != "no" ; then
- if test "$with_libtool" != "no"; then
-- { echo "$as_me:18022: WARNING: libtool does not support Ada - disabling feature" >&5
-+ { echo "$as_me:19244: WARNING: libtool does not support Ada - disabling feature" >&5
- echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
- cf_with_ada=no
- fi
-@@ -18030,7 +19252,7 @@
- cf_ada_make=gnatmake
- # Extract the first word of "$cf_ada_make", so it can be a program name with args.
- set dummy $cf_ada_make; ac_word=$2
--echo "$as_me:18033: checking for $ac_word" >&5
-+echo "$as_me:19255: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_gnat_exists+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -18045,7 +19267,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_gnat_exists="yes"
--echo "$as_me:18048: found $ac_dir/$ac_word" >&5
-+echo "$as_me:19270: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -18054,31 +19276,32 @@
- fi
- gnat_exists=$ac_cv_prog_gnat_exists
- if test -n "$gnat_exists"; then
-- echo "$as_me:18057: result: $gnat_exists" >&5
-+ echo "$as_me:19279: result: $gnat_exists" >&5
- echo "${ECHO_T}$gnat_exists" >&6
- else
-- echo "$as_me:18060: result: no" >&5
-+ echo "$as_me:19282: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-+ cf_cv_prog_gnat_correct=no
- else
-
--echo "$as_me:18068: checking for gnat version" >&5
-+echo "$as_me:19291: checking for gnat version" >&5
- echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
- cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
- grep '[0-9].[0-9][0-9]*' |\
- sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
--echo "$as_me:18073: result: $cf_gnat_version" >&5
-+echo "$as_me:19296: result: $cf_gnat_version" >&5
- echo "${ECHO_T}$cf_gnat_version" >&6
-
- case $cf_gnat_version in #(vi
--3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi
-+3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi
- cf_cv_prog_gnat_correct=yes
- ;;
- *)
-- { echo "$as_me:18081: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
-+ { echo "$as_me:19304: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
- echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
- cf_cv_prog_gnat_correct=no
- ;;
-@@ -18086,7 +19309,7 @@
-
- # Extract the first word of "m4", so it can be a program name with args.
- set dummy m4; ac_word=$2
--echo "$as_me:18089: checking for $ac_word" >&5
-+echo "$as_me:19312: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_M4_exists+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -18101,7 +19324,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_M4_exists="yes"
--echo "$as_me:18104: found $ac_dir/$ac_word" >&5
-+echo "$as_me:19327: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -18110,10 +19333,10 @@
- fi
- M4_exists=$ac_cv_prog_M4_exists
- if test -n "$M4_exists"; then
-- echo "$as_me:18113: result: $M4_exists" >&5
-+ echo "$as_me:19336: result: $M4_exists" >&5
- echo "${ECHO_T}$M4_exists" >&6
- else
-- echo "$as_me:18116: result: no" >&5
-+ echo "$as_me:19339: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -18122,7 +19345,7 @@
- echo Ada95 binding required program m4 not found. Ada95 binding disabled.
- fi
- if test "$cf_cv_prog_gnat_correct" = yes; then
-- echo "$as_me:18125: checking if GNAT works" >&5
-+ echo "$as_me:19348: checking if GNAT works" >&5
- echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
-
- rm -rf conftest* *~conftest*
-@@ -18150,32 +19373,36 @@
- fi
- rm -rf conftest* *~conftest*
-
-- echo "$as_me:18153: result: $cf_cv_prog_gnat_correct" >&5
-+ echo "$as_me:19376: result: $cf_cv_prog_gnat_correct" >&5
- echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
- fi
- fi
-
-- if test "$cf_cv_prog_gnat_correct" = yes; then
-+ if test "x$cf_cv_prog_gnat_correct" = xyes; then
-
- ADAFLAGS="$ADAFLAGS -gnatpn"
-
-- # make ADAFLAGS consistent with CFLAGS
-- case "$CFLAGS" in
-- *-g*)
-+ echo "$as_me:19385: checking optimization options for ADAFLAGS" >&5
-+echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
-+ case "$CFLAGS" in
-+ *-g*)
-
- ADAFLAGS="$ADAFLAGS -g"
-
-- ;;
-- esac
-- case "$CFLAGS" in
-- *-O*)
-+ ;;
-+ esac
-+ case "$CFLAGS" in
-+ *-O*)
-+ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'`
-
-- ADAFLAGS="$ADAFLAGS -O3"
-+ ADAFLAGS="$ADAFLAGS $cf_O_flag"
-
-- ;;
-- esac
-+ ;;
-+ esac
-+ echo "$as_me:19402: result: $ADAFLAGS" >&5
-+echo "${ECHO_T}$ADAFLAGS" >&6
-
--echo "$as_me:18178: checking if GNAT supports generics" >&5
-+echo "$as_me:19405: checking if GNAT supports generics" >&5
- echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
- case $cf_gnat_version in #(vi
- 3.[1-9]*|[4-9].*) #(vi
-@@ -18185,7 +19412,7 @@
- cf_gnat_generics=no
- ;;
- esac
--echo "$as_me:18188: result: $cf_gnat_generics" >&5
-+echo "$as_me:19415: result: $cf_gnat_generics" >&5
- echo "${ECHO_T}$cf_gnat_generics" >&6
-
- if test "$cf_gnat_generics" = yes
-@@ -18197,7 +19424,7 @@
- cf_generic_objects=
- fi
-
--echo "$as_me:18200: checking if GNAT supports SIGINT" >&5
-+echo "$as_me:19427: checking if GNAT supports SIGINT" >&5
- echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
- if test "${cf_cv_gnat_sigint+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -18245,7 +19472,7 @@
- rm -rf conftest* *~conftest*
-
- fi
--echo "$as_me:18248: result: $cf_cv_gnat_sigint" >&5
-+echo "$as_me:19475: result: $cf_cv_gnat_sigint" >&5
- echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
-
- if test $cf_cv_gnat_sigint = yes ; then
-@@ -18254,7 +19481,7 @@
- USE_GNAT_SIGINT="#"
- fi
-
--echo "$as_me:18257: checking if GNAT pragma Unreferenced works" >&5
-+echo "$as_me:19484: checking if GNAT pragma Unreferenced works" >&5
- echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
- if test "${cf_cv_pragma_unreferenced+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -18285,7 +19512,7 @@
- rm -rf conftest* *~conftest*
-
- fi
--echo "$as_me:18288: result: $cf_cv_pragma_unreferenced" >&5
-+echo "$as_me:19515: result: $cf_cv_pragma_unreferenced" >&5
- echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
-
- # if the pragma is supported, use it (needed in the Trace code).
-@@ -18298,7 +19525,7 @@
- cf_gnat_libraries=no
- cf_gnat_projects=no
-
--echo "$as_me:18301: checking if GNAT supports project files" >&5
-+echo "$as_me:19528: checking if GNAT supports project files" >&5
- echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
- case $cf_gnat_version in #(vi
- 3.[0-9]*) #(vi
-@@ -18366,14 +19593,14 @@
- esac
- ;;
- esac
--echo "$as_me:18369: result: $cf_gnat_projects" >&5
-+echo "$as_me:19596: result: $cf_gnat_projects" >&5
- echo "${ECHO_T}$cf_gnat_projects" >&6
-
- if test $cf_gnat_projects = yes
- then
-- echo "$as_me:18374: checking if GNAT supports libraries" >&5
-+ echo "$as_me:19601: checking if GNAT supports libraries" >&5
- echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
-- echo "$as_me:18376: result: $cf_gnat_libraries" >&5
-+ echo "$as_me:19603: result: $cf_gnat_libraries" >&5
- echo "${ECHO_T}$cf_gnat_libraries" >&6
- fi
-
-@@ -18393,7 +19620,7 @@
- USE_GNAT_LIBRARIES="#"
- fi
-
--echo "$as_me:18396: checking for ada-compiler" >&5
-+echo "$as_me:19623: checking for ada-compiler" >&5
- echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
-
- # Check whether --with-ada-compiler or --without-ada-compiler was given.
-@@ -18404,12 +19631,12 @@
- cf_ada_compiler=gnatmake
- fi;
-
--echo "$as_me:18407: result: $cf_ada_compiler" >&5
-+echo "$as_me:19634: result: $cf_ada_compiler" >&5
- echo "${ECHO_T}$cf_ada_compiler" >&6
-
- cf_ada_package=terminal_interface
-
--echo "$as_me:18412: checking for ada-include" >&5
-+echo "$as_me:19639: checking for ada-include" >&5
- echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
-
- # Check whether --with-ada-include or --without-ada-include was given.
-@@ -18433,7 +19660,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
-@@ -18445,19 +19672,19 @@
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:18448: error: expected a pathname, not \"$withval\"" >&5
-+ { { echo "$as_me:19675: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- fi
--ADA_INCLUDE="$withval"
-+eval ADA_INCLUDE="$withval"
-
--echo "$as_me:18457: result: $ADA_INCLUDE" >&5
-+echo "$as_me:19684: result: $ADA_INCLUDE" >&5
- echo "${ECHO_T}$ADA_INCLUDE" >&6
-
--echo "$as_me:18460: checking for ada-objects" >&5
-+echo "$as_me:19687: checking for ada-objects" >&5
- echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
-
- # Check whether --with-ada-objects or --without-ada-objects was given.
-@@ -18481,7 +19708,7 @@
- ;;
- .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
--.\${*prefix}*) #(vi
-+.\${*prefix}*|.\${*dir}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
-@@ -18493,19 +19720,19 @@
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- *)
-- { { echo "$as_me:18496: error: expected a pathname, not \"$withval\"" >&5
-+ { { echo "$as_me:19723: error: expected a pathname, not \"$withval\"" >&5
- echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- fi
--ADA_OBJECTS="$withval"
-+eval ADA_OBJECTS="$withval"
-
--echo "$as_me:18505: result: $ADA_OBJECTS" >&5
-+echo "$as_me:19732: result: $ADA_OBJECTS" >&5
- echo "${ECHO_T}$ADA_OBJECTS" >&6
-
--echo "$as_me:18508: checking if an Ada95 shared-library should be built" >&5
-+echo "$as_me:19735: checking if an Ada95 shared-library should be built" >&5
- echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
-
- # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
-@@ -18515,7 +19742,7 @@
- else
- with_ada_sharedlib=no
- fi;
--echo "$as_me:18518: result: $with_ada_sharedlib" >&5
-+echo "$as_me:19745: result: $with_ada_sharedlib" >&5
- echo "${ECHO_T}$with_ada_sharedlib" >&6
-
- ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
-@@ -18546,11 +19773,11 @@
- ### chooses to split module lists into libraries.
- ###
- ### (see CF_LIB_RULES).
--echo "$as_me:18549: checking for library subsets" >&5
-+echo "$as_me:19776: checking for library subsets" >&5
- echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
- LIB_SUBSETS=
-
--if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
-+if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then
- LIB_SUBSETS="${LIB_SUBSETS}ticlib"
- if test "$with_ticlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
-@@ -18560,7 +19787,7 @@
- fi
-
- LIB_SUBSETS="${LIB_SUBSETS}termlib"
--test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
-+test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
-
- if test "$with_termlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
-@@ -18584,29 +19811,29 @@
- esac
- fi
-
--test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
--test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-+test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
-+test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-
--echo "$as_me:18590: result: $LIB_SUBSETS" >&5
-+echo "$as_me:19817: result: $LIB_SUBSETS" >&5
- echo "${ECHO_T}$LIB_SUBSETS" >&6
-
- ### Construct the list of include-directories to be generated
-
--CPPFLAGS="$CPPFLAGS -I. -I../include"
--if test "$srcdir" != "."; then
-- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
--fi
- if test "$GCC" != yes; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- else
-- CPPFLAGS="$CPPFLAGS -I\${includedir}"
-+ CPPFLAGS="-I\${includedir} $CPPFLAGS"
- fi
- fi
-+if test "$srcdir" != "."; then
-+ CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
-+fi
-+CPPFLAGS="-I. -I../include $CPPFLAGS"
-
- ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
- if test "$srcdir" != "."; then
-@@ -18625,7 +19852,7 @@
- fi
-
- ### Build up pieces for makefile rules
--echo "$as_me:18628: checking default library suffix" >&5
-+echo "$as_me:19855: checking default library suffix" >&5
- echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
-
- case $DFT_LWR_MODEL in
-@@ -18636,10 +19863,10 @@
- shared) DFT_ARG_SUFFIX='' ;;
- esac
- test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
--echo "$as_me:18639: result: $DFT_ARG_SUFFIX" >&5
-+echo "$as_me:19866: result: $DFT_ARG_SUFFIX" >&5
- echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-
--echo "$as_me:18642: checking default library-dependency suffix" >&5
-+echo "$as_me:19869: checking default library-dependency suffix" >&5
- echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
-
- case $DFT_LWR_MODEL in #(vi
-@@ -18661,11 +19888,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[56]*) #(vi
-+ aix[5-7]*) #(vi
- DFT_LIB_SUFFIX='.a'
- DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- DFT_LIB_SUFFIX='.dll'
- DFT_DEP_SUFFIX='.dll.a'
- ;;
-@@ -18692,10 +19919,10 @@
- esac
- test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
- test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
--echo "$as_me:18695: result: $DFT_DEP_SUFFIX" >&5
-+echo "$as_me:19922: result: $DFT_DEP_SUFFIX" >&5
- echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
-
--echo "$as_me:18698: checking default object directory" >&5
-+echo "$as_me:19925: checking default object directory" >&5
- echo $ECHO_N "checking default object directory... $ECHO_C" >&6
-
- case $DFT_LWR_MODEL in
-@@ -18711,16 +19938,20 @@
- DFT_OBJ_SUBDIR='obj_s' ;;
- esac
- esac
--echo "$as_me:18714: result: $DFT_OBJ_SUBDIR" >&5
-+echo "$as_me:19941: result: $DFT_OBJ_SUBDIR" >&5
- echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
-
--# libtool thinks it can make c++ shared libraries (perhaps only g++)
--if test "$cf_with_cxx" = yes ; then
--echo "$as_me:18719: checking c++ library-dependency suffix" >&5
-+if test "x$cf_with_cxx" = xyes ; then
-+echo "$as_me:19945: checking c++ library-dependency suffix" >&5
- echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
- if test "$with_libtool" != "no"; then
-+ # libtool thinks it can make c++ shared libraries (perhaps only g++)
-+ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
-+elif test "$with_shared_cxx" != "no"; then
-+ # also for g++ users...
- CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
- else
-+ # we normally make a static library because C/C++ library rules differ
-
- case normal in #(vi
- libtool) #(vi
-@@ -18741,11 +19972,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[56]*) #(vi
-+ aix[5-7]*) #(vi
- CXX_LIB_SUFFIX='.a'
- CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- CXX_LIB_SUFFIX='.dll'
- CXX_DEP_SUFFIX='.dll.a'
- ;;
-@@ -18772,14 +20003,15 @@
- esac
- test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
- test -n "$LIB_SUFFIX" && CXX_DEP_SUFFIX="${LIB_SUFFIX}${CXX_DEP_SUFFIX}"
-+
- fi
--echo "$as_me:18776: result: $CXX_LIB_SUFFIX" >&5
-+echo "$as_me:20008: result: $CXX_LIB_SUFFIX" >&5
- echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
-
- fi
-
- # do not want -ldl in build except as needed for -lncurses dependency
--if test "$with_dlsym" = yes ; then
-+if test "x$with_dlsym" = xyes ; then
- if test $DFT_LWR_MODEL = shared || \
- test $DFT_LWR_MODEL = libtool ; then
-
-@@ -18793,7 +20025,7 @@
- # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
- # do not need libdl
- TICS_LIST=
--if test "$with_dlsym" = yes ; then
-+if test "x$with_dlsym" = xyes ; then
-
- # remove dl library from $SHLIB_LIST
- TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
-@@ -18802,7 +20034,7 @@
-
- if test "$with_ticlib" != no ; then
-
-- if test "$with_ticlib" != yes ; then
-+ if test "x$with_ticlib" != xyes ; then
- TICS_NAME=$with_ticlib
- TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
-@@ -18812,14 +20044,16 @@
- TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
- TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
- fi
-- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
-+ TICS_LDFLAGS="-L${LIB_DIR}"
-+ TICS_LIBS="-l${TICS_LIB_SUFFIX}"
- else
-- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TICS_LDFLAGS="-L${LIB_DIR}"
-+ TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
- fi
-
- if test "$with_termlib" != no ; then
-
-- if test "$with_termlib" != yes ; then
-+ if test "x$with_termlib" != xyes ; then
- TINFO_NAME=$with_termlib
- TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
-@@ -18837,14 +20071,22 @@
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
-- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
-+ TINFO_LDFLAGS="-L${LIB_DIR}"
-+ TINFO_LIBS="$TEST_ARGS"
- TICS_LIST="$SHLIB_LIST $TEST_ARGS"
- SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
- else
- TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
- TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
-- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
-- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
-+ if test "x$with_term_driver" != xno ; then
-+ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
-+ else
-+ TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
-+ TINFO_LIBS="$TEST_ARGS"
-+ fi
-+ TINFO_LDFLAGS="-L${LIB_DIR}"
- SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
- fi
- else
-@@ -18852,13 +20094,14 @@
- TINFO_NAME=${LIB_NAME}
- TINFO_SUFFIX=${DFT_LIB_SUFFIX}
- TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
-- if test "$with_tic_depends" = yes ; then
-+ if test "x$with_tic_depends" = xyes ; then
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
- else
- TICS_LIST="$SHLIB_LIST"
- fi
-
-- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TINFO_LDFLAGS="-L${LIB_DIR}"
-+ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
- fi
-
- if test "$DFT_LWR_MODEL" = shared ; then
-@@ -18870,7 +20113,7 @@
- esac
- fi
-
--if test "$with_dlsym" = yes ; then
-+if test "x$with_dlsym" = xyes ; then
-
- # remove dl library from $TICS_LIST
- TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
-@@ -18882,7 +20125,7 @@
- fi
-
- # needed for Ada95
--TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
-+TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'`
-
- case $DFT_LWR_MODEL in
- normal|debug|profile)
-@@ -18900,7 +20143,7 @@
- esac
- else
- case $cf_cv_system_name in #(
-- aix[456]*) #( from ld manpage
-+ aix[4-7]*) #( from ld manpage
- LDFLAGS_STATIC=-bstatic
- LDFLAGS_SHARED=-bdynamic
- ;;
-@@ -18927,19 +20170,19 @@
-
- if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
- then
-- echo "$as_me:18930: checking if linker supports switching between static/dynamic" >&5
-+ echo "$as_me:20173: checking if linker supports switching between static/dynamic" >&5
- echo $ECHO_N "checking if linker supports switching between static/dynamic... $ECHO_C" >&6
-
- rm -f libconftest.a
- cat >conftest.$ac_ext <<EOF
--#line 18935 "configure"
-+#line 20178 "configure"
- #include <stdio.h>
- int cf_ldflags_static(FILE *fp) { return fflush(fp); }
- EOF
-- if { (eval echo "$as_me:18939: \"$ac_compile\"") >&5
-+ if { (eval echo "$as_me:20182: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:18942: \$? = $ac_status" >&5
-+ echo "$as_me:20185: \$? = $ac_status" >&5
- (exit $ac_status); } ; then
- ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&5 1>/dev/null
- ( eval $RANLIB libconftest.a ) 2>&5 >/dev/null
-@@ -18950,10 +20193,10 @@
-
- LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 18953 "configure"
-+#line 20196 "configure"
- #include "confdefs.h"
-
--#line 18956 "configure"
-+#line 20199 "configure"
- #include <stdio.h>
- int cf_ldflags_static(FILE *fp);
-
-@@ -18968,18 +20211,28 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:18971: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:20214: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:18974: \$? = $ac_status" >&5
-+ echo "$as_me:20217: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:18977: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:20220: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:18980: \$? = $ac_status" >&5
-+ echo "$as_me:20223: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_ldflags_static=yes
-+
-+ # some linkers simply ignore the -dynamic
-+ case x`file conftest$ac_exeext 2>/dev/null` in #(vi
-+ *static*) # (vi
-+ cf_ldflags_static=no
-+ ;;
-+ *)
-+ cf_ldflags_static=yes
-+ ;;
-+ esac
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-@@ -18990,7 +20243,7 @@
- rm -f libconftest.*
- LIBS="$cf_save_LIBS"
-
-- echo "$as_me:18993: result: $cf_ldflags_static" >&5
-+ echo "$as_me:20246: result: $cf_ldflags_static" >&5
- echo "${ECHO_T}$cf_ldflags_static" >&6
-
- if test $cf_ldflags_static != yes
-@@ -19006,12 +20259,12 @@
- ;;
- esac
-
--echo "$as_me:19009: checking where we will install curses.h" >&5
-+echo "$as_me:20262: checking where we will install curses.h" >&5
- echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
- test "$with_overwrite" = no && \
- test "x$includedir" = 'x${prefix}/include' && \
- includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
--echo "$as_me:19014: result: $includedir" >&5
-+echo "$as_me:20267: result: $includedir" >&5
- echo "${ECHO_T}$includedir" >&6
-
- ### Resolve a conflict between normal and wide-curses by forcing applications
-@@ -19019,7 +20272,7 @@
- if test "$with_overwrite" != no ; then
- if test "$NCURSES_LIBUTF8" = 1 ; then
- NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
-- { echo "$as_me:19022: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
-+ { echo "$as_me:20275: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
- echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
- fi
- fi
-@@ -19029,6 +20282,7 @@
- NCURSES_TREE=
-
- ### predefined stuff for the test programs
-+
- cat >>confdefs.h <<\EOF
- #define HAVE_SLK_COLOR 1
- EOF
-@@ -19036,7 +20290,7 @@
- ### Construct the list of subdirectories for which we'll customize makefiles
- ### with the appropriate compile-rules.
-
--echo "$as_me:19039: checking for src modules" >&5
-+echo "$as_me:20293: checking for src modules" >&5
- echo $ECHO_N "checking for src modules... $ECHO_C" >&6
-
- # dependencies and linker-arguments for test-programs
-@@ -19050,6 +20304,7 @@
- TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
- fi
-
-+PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}"
- cf_cv_src_modules=
- for cf_dir in $modules_to_build
- do
-@@ -19096,10 +20351,11 @@
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
- fi
-+ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}"
- fi
- fi
- done
--echo "$as_me:19102: result: $cf_cv_src_modules" >&5
-+echo "$as_me:20358: result: $cf_cv_src_modules" >&5
- echo "${ECHO_T}$cf_cv_src_modules" >&6
-
- TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-@@ -19118,10 +20374,16 @@
- SRC_SUBDIRS="$SRC_SUBDIRS test"
- fi
- test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
--test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
-+if test "$cf_with_cxx_binding" != no; then
-+ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}"
-+ SRC_SUBDIRS="$SRC_SUBDIRS c++"
-+fi
-+
-+test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
-+test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
-
- ADA_SUBDIRS=
--if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
-+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then
- SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
- ADA_SUBDIRS="gen src"
- if test "x$cf_with_tests" != "xno" ; then
-@@ -19143,7 +20405,7 @@
-
- fi
-
--if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
-+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
- SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in"
- fi
-@@ -19181,6 +20443,7 @@
- NCURSES_SHLIB2='sh $(top_srcdir)/misc/shlib'
-
- # values to use as strings
-+
- cat >>confdefs.h <<EOF
- #define NCURSES_PATHSEP '$PATH_SEPARATOR'
- EOF
-@@ -19271,32 +20534,32 @@
-
- ### Define substitutions for header files to avoid name-pollution
-
--if test "$cf_cv_have_tcgetattr" = yes ; then
-+if test "x$cf_cv_have_tcgetattr" = xyes ; then
- HAVE_TCGETATTR=1
- else
- HAVE_TCGETATTR=0
- fi
-
--if test "$ac_cv_header_termio_h" = yes ; then
-+if test "x$ac_cv_header_termio_h" = xyes ; then
- HAVE_TERMIO_H=1
- else
- HAVE_TERMIO_H=0
- fi
-
--if test "$ac_cv_header_termios_h" = yes ; then
-+if test "x$ac_cv_header_termios_h" = xyes ; then
- HAVE_TERMIOS_H=1
- else
- HAVE_TERMIOS_H=0
- fi
-
- ################################################################################
--test "$use_database" = yes && \
-+test "x$use_database" = xyes && \
- SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
-
- SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
- SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in"
-
--if test x"$enable_pc_files" = xyes ; then \
-+if test "x$enable_pc_files" = xyes ; then \
- SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
- MAKE_PC_FILES=
- else
-@@ -19305,7 +20568,7 @@
-
- # Extract the first word of "tic", so it can be a program name with args.
- set dummy tic; ac_word=$2
--echo "$as_me:19308: checking for $ac_word" >&5
-+echo "$as_me:20571: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_path_TIC_PATH+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -19322,7 +20585,7 @@
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_TIC_PATH="$ac_dir/$ac_word"
-- echo "$as_me:19325: found $ac_dir/$ac_word" >&5
-+ echo "$as_me:20588: found $ac_dir/$ac_word" >&5
- break
- fi
- done
-@@ -19334,10 +20597,10 @@
- TIC_PATH=$ac_cv_path_TIC_PATH
-
- if test -n "$TIC_PATH"; then
-- echo "$as_me:19337: result: $TIC_PATH" >&5
-+ echo "$as_me:20600: result: $TIC_PATH" >&5
- echo "${ECHO_T}$TIC_PATH" >&6
- else
-- echo "$as_me:19340: result: no" >&5
-+ echo "$as_me:20603: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -19345,7 +20608,7 @@
- then
- if test "$TIC_PATH" = unknown
- then
-- { echo "$as_me:19348: WARNING: no tic program found for fallbacks" >&5
-+ { echo "$as_me:20611: WARNING: no tic program found for fallbacks" >&5
- echo "$as_me: WARNING: no tic program found for fallbacks" >&2;}
- fi
- fi
-@@ -19358,12 +20621,13 @@
-
- ADAHTML_DIR=../../doc/html/ada
-
-+# these could be configurable, but are not currently
-+PANEL_NAME=panel
-+MENU_NAME=menu
-+FORM_NAME=form
-+CXX_NAME=ncurses++
-+
- SUB_SCRIPTS=
--case $cf_cv_system_name in #(vi
--*mingw32*) #(vi
-- SUB_SCRIPTS="mk-dlls.sh"
-- ;;
--esac
-
- ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/ncurses_dll.h include/termcap.h include/unctrl.h $SUB_SCRIPTS $SUB_MAKEFILES Makefile"
- ac_config_commands="$ac_config_commands default"
-@@ -19446,7 +20710,7 @@
- : ${CONFIG_STATUS=./config.status}
- ac_clean_files_save=$ac_clean_files
- ac_clean_files="$ac_clean_files $CONFIG_STATUS"
--{ echo "$as_me:19449: creating $CONFIG_STATUS" >&5
-+{ echo "$as_me:20713: creating $CONFIG_STATUS" >&5
- echo "$as_me: creating $CONFIG_STATUS" >&6;}
- cat >$CONFIG_STATUS <<_ACEOF
- #! $SHELL
-@@ -19578,7 +20842,7 @@
- cat >>$CONFIG_STATUS <<EOF
- ac_cs_version="\\
- config.status
--configured by $0, generated by GNU Autoconf 2.52.20101002,
-+configured by $0, generated by GNU Autoconf 2.52.20121002,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
- Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-@@ -19622,7 +20886,7 @@
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
-- { { echo "$as_me:19625: error: ambiguous option: $1
-+ { { echo "$as_me:20889: 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;}
-@@ -19641,7 +20905,7 @@
- ac_need_defaults=false;;
-
- # This is an error.
-- -*) { { echo "$as_me:19644: error: unrecognized option: $1
-+ -*) { { echo "$as_me:20908: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&5
- echo "$as_me: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&2;}
-@@ -19660,7 +20924,7 @@
- ## Running config.status. ##
- ## ----------------------- ##
-
--This file was extended by $as_me 2.52.20101002, executed with
-+This file was extended by $as_me 2.52.20121002, executed with
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
-@@ -19682,10 +20946,11 @@
- AWK="$AWK"
- DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
- DFT_LWR_MODEL="$DFT_LWR_MODEL"
--ECHO_LINK="$ECHO_LINK"
-+ECHO_LD="$ECHO_LD"
- LDCONFIG="$LDCONFIG"
- LIBTOOL_VERSION="$LIBTOOL_VERSION"
- LIB_NAME="$LIB_NAME"
-+LIB_PREFIX="$LIB_PREFIX"
- LIB_SUBSETS="$LIB_SUBSETS"
- LIB_SUFFIX="$LIB_SUFFIX"
- LIB_TRACING="$LIB_TRACING"
-@@ -19707,7 +20972,7 @@
- TINFO_SUFFIX="$TINFO_SUFFIX"
- USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
- WITH_CURSES_H="$with_curses_h"
--WITH_ECHO="$with_echo"
-+WITH_ECHO="${enable_echo:=yes}"
- WITH_OVERWRITE="$with_overwrite"
- cf_LIST_MODELS="$cf_list_models"
- cf_cv_abi_version="$cf_cv_abi_version"
-@@ -19717,16 +20982,19 @@
- cf_cv_enable_opaque="$cf_cv_enable_opaque"
- cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
- cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
-+cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
- cf_cv_rel_version="$cf_cv_rel_version"
- cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
- cf_cv_shared_soname='$cf_cv_shared_soname'
- cf_cv_shlib_version="$cf_cv_shlib_version"
- cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
- cf_cv_system_name="$cf_cv_system_name"
-+cf_cv_term_driver="$with_term_driver"
- cf_with_ada="$cf_with_ada"
- cf_with_cxx_binding="$cf_with_cxx_binding"
- cf_with_manpages="$cf_with_manpages"
- cf_with_tests="$cf_with_tests"
-+with_shared_cxx="$with_shared_cxx"
- host="$host"
- target="$target"
-
-@@ -19747,7 +21015,7 @@
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
-- *) { { echo "$as_me:19750: error: invalid argument: $ac_config_target" >&5
-+ *) { { echo "$as_me:21018: error: invalid argument: $ac_config_target" >&5
- echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-@@ -19806,6 +21074,7 @@
- s,@bindir@,$bindir,;t t
- s,@sbindir@,$sbindir,;t t
- s,@libexecdir@,$libexecdir,;t t
-+s,@datarootdir@,$datarootdir,;t t
- s,@datadir@,$datadir,;t t
- s,@sysconfdir@,$sysconfdir,;t t
- s,@sharedstatedir@,$sharedstatedir,;t t
-@@ -19858,9 +21127,8 @@
- s,@ac_ct_CC@,$ac_ct_CC,;t t
- s,@EXEEXT@,$EXEEXT,;t t
- s,@OBJEXT@,$OBJEXT,;t t
--s,@CPP@,$CPP,;t t
- s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
--s,@PROG_EXT@,$PROG_EXT,;t t
-+s,@CPP@,$CPP,;t t
- s,@LDCONFIG@,$LDCONFIG,;t t
- s,@CXX@,$CXX,;t t
- s,@CXXFLAGS@,$CXXFLAGS,;t t
-@@ -19900,6 +21168,7 @@
- s,@cf_list_models@,$cf_list_models,;t t
- s,@LIBTOOL_VERSION@,$LIBTOOL_VERSION,;t t
- s,@LIBTOOL@,$LIBTOOL,;t t
-+s,@ac_ct_LIBTOOL@,$ac_ct_LIBTOOL,;t t
- s,@LT_UNDEF@,$LT_UNDEF,;t t
- s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
- s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t
-@@ -19931,10 +21200,12 @@
- s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
- s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t
- s,@INSTALL_LIB@,$INSTALL_LIB,;t t
-+s,@RPATH_LIST@,$RPATH_LIST,;t t
- s,@cf_ldd_prog@,$cf_ldd_prog,;t t
- s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t
- s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t
- s,@WHICH_XTERM@,$WHICH_XTERM,;t t
-+s,@XTERM_KBS@,$XTERM_KBS,;t t
- s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
- s,@TERMINFO@,$TERMINFO,;t t
- s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
-@@ -19955,6 +21226,7 @@
- s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
- s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
- s,@NCURSES_CCHARW_MAX@,$NCURSES_CCHARW_MAX,;t t
-+s,@NCURSES_TPARM_ARG@,$NCURSES_TPARM_ARG,;t t
- s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
- s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
- s,@GENERATED_EXT_FUNCS@,$GENERATED_EXT_FUNCS,;t t
-@@ -19972,6 +21244,11 @@
- s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
- s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t
- s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
-+s,@ECHO_LT@,$ECHO_LT,;t t
-+s,@ECHO_LD@,$ECHO_LD,;t t
-+s,@RULE_CC@,$RULE_CC,;t t
-+s,@SHOW_CC@,$SHOW_CC,;t t
-+s,@ECHO_CC@,$ECHO_CC,;t t
- s,@ECHO_LINK@,$ECHO_LINK,;t t
- s,@ADAFLAGS@,$ADAFLAGS,;t t
- s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
-@@ -20015,12 +21292,14 @@
- s,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t
- s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t
- s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t
--s,@TICS_ARGS@,$TICS_ARGS,;t t
-+s,@TICS_LDFLAGS@,$TICS_LDFLAGS,;t t
-+s,@TICS_LIBS@,$TICS_LIBS,;t t
- s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t
- s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t
- s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t
--s,@TINFO_ARGS@,$TINFO_ARGS,;t t
--s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
-+s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t
-+s,@TINFO_LIBS@,$TINFO_LIBS,;t t
-+s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t
- s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t
- s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t
- s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t
-@@ -20032,6 +21311,7 @@
- s,@TEST_DEPS@,$TEST_DEPS,;t t
- s,@TEST_ARG2@,$TEST_ARG2,;t t
- s,@TEST_DEP2@,$TEST_DEP2,;t t
-+s,@PC_MODULES_TO_MAKE@,$PC_MODULES_TO_MAKE,;t t
- s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t
- s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t
- s,@NCURSES_SHLIB2@,$NCURSES_SHLIB2,;t t
-@@ -20043,6 +21323,10 @@
- s,@TIC_PATH@,$TIC_PATH,;t t
- s,@MAKE_TESTS@,$MAKE_TESTS,;t t
- s,@ADAHTML_DIR@,$ADAHTML_DIR,;t t
-+s,@PANEL_NAME@,$PANEL_NAME,;t t
-+s,@MENU_NAME@,$MENU_NAME,;t t
-+s,@FORM_NAME@,$FORM_NAME,;t t
-+s,@CXX_NAME@,$CXX_NAME,;t t
- CEOF
-
- EOF
-@@ -20157,7 +21441,7 @@
- esac
-
- if test x"$ac_file" != x-; then
-- { echo "$as_me:20160: creating $ac_file" >&5
-+ { echo "$as_me:21444: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
-@@ -20175,7 +21459,7 @@
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:20178: error: cannot find input file: $f" >&5
-+ test -f "$f" || { { echo "$as_me:21462: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo $f;;
-@@ -20188,13 +21472,45 @@
- echo $srcdir/$f
- else
- # /dev/null tree
-- { { echo "$as_me:20191: error: cannot find input file: $f" >&5
-+ { { echo "$as_me:21475: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- EOF
-+cat >>$CONFIG_STATUS <<\EOF
-+ ac_warn_datarootdir=no
-+ if test x"$ac_file" != x-; then
-+ for ac_item in $ac_file_inputs
-+ do
-+ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item`
-+ if test -n "$ac_seen"; then
-+ ac_used=`grep '@datarootdir@' $ac_item`
-+ if test -z "$ac_used"; then
-+ { echo "$as_me:21491: WARNING: datarootdir was used implicitly but not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: datarootdir was used implicitly but not set:
-+$ac_seen" >&2;}
-+ ac_warn_datarootdir=yes
-+ fi
-+ fi
-+ ac_seen=`grep '${datarootdir}' $ac_item`
-+ if test -n "$ac_seen"; then
-+ { echo "$as_me:21500: WARNING: datarootdir was used explicitly but not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: datarootdir was used explicitly but not set:
-+$ac_seen" >&2;}
-+ ac_warn_datarootdir=yes
-+ fi
-+ done
-+ fi
-+
-+if test "x$ac_warn_datarootdir" = xyes; then
-+ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'"
-+fi
-+
-+EOF
- cat >>$CONFIG_STATUS <<EOF
- sed "$ac_vpsub
- $extrasub
-@@ -20209,11 +21525,35 @@
- " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
-- mv $tmp/out $ac_file
-+ cp $tmp/out $ac_file
-+
-+ for ac_name in prefix exec_prefix datarootdir
-+ do
-+ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file`
-+ if test -n "$ac_seen"; then
-+ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
-+ if test -z "$ac_init"; then
-+ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
-+ { echo "$as_me:21537: WARNING: Variable $ac_name is used but was not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: Variable $ac_name is used but was not set:
-+$ac_seen" >&2;}
-+ fi
-+ fi
-+ done
-+ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out
-+ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
-+ if test -s $tmp/out; then
-+ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
-+ { echo "$as_me:21548: WARNING: Some variables may not be substituted:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: Some variables may not be substituted:
-+$ac_seen" >&2;}
-+ fi
- else
- cat $tmp/out
-- rm -f $tmp/out
- fi
-+ rm -f $tmp/out
-
- done
- EOF
-@@ -20254,7 +21594,7 @@
- * ) ac_file_in=$ac_file.in ;;
- esac
-
-- test x"$ac_file" != x- && { echo "$as_me:20257: creating $ac_file" >&5
-+ test x"$ac_file" != x- && { echo "$as_me:21597: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
-@@ -20265,7 +21605,7 @@
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:20268: error: cannot find input file: $f" >&5
-+ test -f "$f" || { { echo "$as_me:21608: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo $f;;
-@@ -20278,7 +21618,7 @@
- echo $srcdir/$f
- else
- # /dev/null tree
-- { { echo "$as_me:20281: error: cannot find input file: $f" >&5
-+ { { echo "$as_me:21621: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
-@@ -20336,7 +21676,7 @@
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-- { echo "$as_me:20339: $ac_file is unchanged" >&5
-+ { echo "$as_me:21679: $ac_file is unchanged" >&5
- echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-@@ -20394,25 +21734,20 @@
- if test ! -d $srcdir/$cf_dir; then
- continue
- elif test -f $srcdir/$cf_dir/programs; then
-- $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
-+ $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
- fi
- done
-
- fi
-
-- case $cf_cv_system_name in #(vi
-- OS/2*|os2*) #(vi
-- LIB_PREFIX=''
-- ;;
-- *) LIB_PREFIX='lib'
-- ;;
-- esac
- cf_prefix=$LIB_PREFIX
-
--if test $cf_cv_shlib_version = cygdll ; then
-+case $cf_cv_shlib_version in #(vi
-+cygdll|mingw)
- TINFO_NAME=$TINFO_ARG_SUFFIX
- TINFO_SUFFIX=.dll
--fi
-+ ;;
-+esac
-
- if test -n "$TINFO_SUFFIX" ; then
- case $TINFO_SUFFIX in
-@@ -20438,7 +21773,7 @@
- elif test -f $srcdir/$cf_dir/modules; then
-
- SHARED_LIB=
-- LIBS_TO_MAKE=
-+ Libs_To_Make=
- for cf_item in $cf_LIST_MODELS
- do
-
-@@ -20461,11 +21796,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[56]*) #(vi
-+ aix[5-7]*) #(vi
- cf_suffix='.a'
- cf_depsuf=$cf_suffix
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- cf_suffix='.dll'
- cf_depsuf='.dll.a'
- ;;
-@@ -20493,75 +21828,69 @@
- test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}"
- test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}"
-
-+ cf_libname=$cf_dir
-+ test "$cf_dir" = c++ && cf_libname=ncurses++
- if test $cf_item = shared ; then
-- if test "$cf_cv_do_symlinks" = yes ; then
-- case "$cf_cv_shlib_version" in #(vi
-- rel) #(vi
-- case "$cf_cv_system_name" in #(vi
-- darwin*)
-- case .${LIB_SUFFIX} in
-- .tw*)
-- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
-- cf_suffix=tw'.${REL_VERSION}'"$cf_suffix"
-- ;;
-- .t*)
-- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
-- cf_suffix=t'.${REL_VERSION}'"$cf_suffix"
-- ;;
-- .w*)
-- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
-- cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
-+ if test -n "${LIB_SUFFIX}"
-+ then
-+ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
-+ else
-+ cf_shared_suffix="$cf_suffix"
-+ fi
-+ if test "$cf_cv_do_symlinks" = yes ; then
-+ cf_version_name=
-+
-+ case "$cf_cv_shlib_version" in #(vi
-+ rel) #(vi
-+ cf_version_name=REL_VERSION
- ;;
-- *)
-- cf_suffix='.${REL_VERSION}'"$cf_suffix"
-+ abi)
-+ cf_version_name=ABI_VERSION
- ;;
- esac
-- ;; #(vi
-- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
-- esac
-+
-+ if test -n "$cf_version_name"
-+ then
-+ case "$cf_cv_system_name" in #(vi
-+ darwin*)
-+ # "w", etc?
-+ cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
-+ ;; #(vi
-+ *)
-+ cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
-+ ;;
-+ esac
-+ fi
-+ if test -n "${LIB_SUFFIX}"
-+ then
-+ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
-+ else
-+ cf_shared_suffix="$cf_suffix"
-+ fi
-+ fi
-+ # cygwin needs import library, and has unique naming convention
-+ # use autodetected ${cf_prefix} for import lib and static lib, but
-+ # use 'cyg' prefix for shared lib.
-+ case $cf_cv_shlib_version in #(vi
-+ cygdll) #(vi
-+ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
-+ Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}"
-+ continue
- ;;
-- abi)
-- case "$cf_cv_system_name" in #(vi
-- darwin*)
-- case .${LIB_SUFFIX} in
-- .tw*)
-- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
-- cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- .t*)
-- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
-- cf_suffix=t'.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- .w*)
-- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
-- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- *)
-- cf_suffix='.${ABI_VERSION}'"$cf_suffix"
-- ;;
-- esac
-- ;; #(vi
-- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
-- esac
-+ mingw)
-+ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
-+ Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}"
-+ continue
- ;;
- esac
- fi
-- # cygwin needs import library, and has unique naming convention
-- # use autodetected ${cf_prefix} for import lib and static lib, but
-- # use 'cyg' prefix for shared lib.
-- if test $cf_cv_shlib_version = cygdll ; then
-- cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
-- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
-- continue
-- fi
-- fi
-- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
-+ Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}"
- done
-
- if test $cf_dir = ncurses ; then
- cf_subsets="$LIB_SUBSETS"
- cf_r_parts="$cf_subsets"
-- cf_liblist="$LIBS_TO_MAKE"
-+ cf_liblist="$Libs_To_Make"
-
- while test -n "$cf_r_parts"
- do
-@@ -20581,7 +21910,7 @@
- ;;
- esac
- if test -n "$cf_item"; then
-- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
-+ Libs_To_Make="$cf_item $Libs_To_Make"
- fi
- else
- break
-@@ -20591,13 +21920,40 @@
- cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
- fi
-
-- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
-+ if test $cf_dir = c++; then
-+ if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
-+ cf_list=
-+ for cf_item in $Libs_To_Make
-+ do
-+ case $cf_item in
-+ *.a)
-+ ;;
-+ *)
-+ cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
-+ ;;
-+ esac
-+ for cf_test in $cf_list
-+ do
-+ if test "$cf_test" = "$cf_item"
-+ then
-+ cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
-+ cf_item=
-+ break
-+ fi
-+ done
-+ test -n "$cf_item" && cf_list="$cf_list $cf_item"
-+ done
-+ Libs_To_Make="$cf_list"
-+ fi
-+ fi
-+
-+ sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
- -e "s%@SHARED_LIB@%$SHARED_LIB%" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
-- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
-+ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- for cf_subset in $cf_subsets
-@@ -20605,10 +21961,27 @@
- cf_subdirs=
- for cf_item in $cf_LIST_MODELS
- do
-+
- echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
-
- cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-+ CXX_MODEL=$cf_ITEM
-+ if test "$CXX_MODEL" = SHARED; then
-+ case $cf_cv_shlib_version in #(vi
-+ cygdll|mingw) #(vi
-+ test "x$with_shared_cxx" = xno && test -n "$verbose" && echo " overriding CXX_MODEL to SHARED" 1>&6
-+
-+echo "${as_me:-configure}:21975: testing overriding CXX_MODEL to SHARED ..." 1>&5
-+
-+ with_shared_cxx=yes
-+ ;;
-+ *)
-+ test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
-+ ;;
-+ esac
-+ fi
-+
- case $cf_item in #(vi
- libtool) #(vi
- cf_suffix='.la'
-@@ -20628,11 +22001,11 @@
- ;;
- shared) #(vi
- case $cf_cv_system_name in
-- aix[56]*) #(vi
-+ aix[5-7]*) #(vi
- cf_suffix='.a'
- cf_depsuf=$cf_suffix
- ;;
-- cygwin*) #(vi
-+ cygwin*|mingw*) #(vi
- cf_suffix='.dll'
- cf_depsuf='.dll.a'
- ;;
-@@ -20688,6 +22061,8 @@
- cf_libname=$TICS_LIB_SUFFIX
- ;;
- esac
-+ elif test $cf_dir = c++ ; then
-+ cf_libname=ncurses++$LIB_SUFFIX
- else
- cf_libname=${cf_libname}$LIB_SUFFIX
- fi
-@@ -20739,10 +22114,12 @@
- name=${cf_libname}${cf_dir_suffix} \
- traces=$LIB_TRACING \
- MODEL=$cf_ITEM \
-+ CXX_MODEL=$CXX_MODEL \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
-+ driver=$cf_cv_term_driver \
- SymLink="$LN_S" \
- TermlibRoot=$TINFO_NAME \
- TermlibSuffix=$TINFO_SUFFIX \
-@@ -20781,7 +22158,7 @@
- done
- fi
-
-- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >>Makefile
-+ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >>Makefile
- done
-
- for cf_dir in $SRC_SUBDIRS
-@@ -20796,7 +22173,7 @@
- echo 'libs \' >> Makefile
- echo 'install.libs \' >> Makefile
- echo 'uninstall.libs ::' >> Makefile
-- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >> Makefile
-+ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >> Makefile
- ;;
- esac
- fi
-@@ -20819,7 +22196,7 @@
- uninstall.libs \\
- install.$cf_dir \\
- uninstall.$cf_dir ::
-- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \$@
-+ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \$@
- CF_EOF
- elif test -f $srcdir/$cf_dir/headers; then
- cat >> Makefile <<CF_EOF
-@@ -20829,7 +22206,7 @@
- uninstall.libs \\
- install.includes \\
- uninstall.includes ::
-- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \$@
-+ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \$@
- CF_EOF
- fi
- done
-@@ -20838,7 +22215,7 @@
-
- install.libs uninstall.libs \\
- install.data uninstall.data ::
--$MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \$@
-+$MAKE_TERMINFO cd misc && \${MAKE} \${TOP_MFLAGS} \$@
- CF_EOF
-
- if test "x$cf_with_manpages" = xyes; then
-@@ -20846,7 +22223,7 @@
-
- install.man \\
- uninstall.man ::
-- cd man && \${MAKE} \${CF_MFLAGS} \$@
-+ cd man && \${MAKE} \${TOP_MFLAGS} \$@
- CF_EOF
- fi
-
-@@ -20867,7 +22244,7 @@
-
- install.man \\
- uninstall.man ::
-- cd tack && \${MAKE} \${CF_MFLAGS} \$@
-+ cd tack && \${MAKE} \${TOP_MFLAGS} \$@
- CF_EOF
- fi
- fi
-@@ -20979,7 +22356,7 @@
- fi
- done
-
--if test "x$cf_with_ada" != xno ; then
-+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
- if test -z "$USE_OLD_MAKERULES" ; then
- $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
- fi
-Index: configure.in
-Prereq: 1.520
---- ncurses-5.9/configure.in 2011-03-28 00:22:26.000000000 +0000
-+++ ncurses-5.9-20130504/configure.in 2013-04-27 19:37:40.000000000 +0000
-@@ -1,5 +1,5 @@
- dnl***************************************************************************
--dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+dnl Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- dnl *
- dnl Permission is hereby granted, free of charge, to any person obtaining a *
- dnl copy of this software and associated documentation files (the *
-@@ -28,14 +28,14 @@
- dnl
- dnl Author: Thomas E. Dickey 1995-on
- dnl
--dnl $Id: configure.in,v 1.520 2011/03/28 00:22:26 tom Exp $
-+dnl $Id: configure.in,v 1.565 2013/04/27 19:37:40 tom Exp $
- dnl Process this file with autoconf to produce a configure script.
- dnl
- dnl See http://invisible-island.net/autoconf/ for additional information.
- dnl
- dnl ---------------------------------------------------------------------------
--AC_PREREQ(2.13.20020210)
--AC_REVISION($Revision: 1.520 $)
-+AC_PREREQ(2.52.20030208)
-+AC_REVISION($Revision: 1.565 $)
- AC_INIT(ncurses/base/lib_initscr.c)
- AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
-
-@@ -45,11 +45,7 @@
- CF_WITH_REL_VERSION(NCURSES)
- CF_WITH_ABI_VERSION
-
--CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
--AC_ARG_WITH(system-type,
--[ --with-system-type=XXX test: override derived host system-type],
--[AC_MSG_WARN(overriding system type to $withval)
-- cf_cv_system_name=$withval])
-+CF_WITH_SYSTYPE
-
- ### Save the given $CFLAGS to allow user-override.
- cf_user_CFLAGS="$CFLAGS"
-@@ -58,15 +54,22 @@
- CF_CFG_DEFAULTS
-
- ### Checks for programs.
--AC_PROG_CC
--CF_GCC_VERSION
-+AC_ARG_WITH(ada,
-+ [ --without-ada suppress check for Ada95, don't build demo],
-+ [cf_with_ada=$withval],
-+ [cf_with_ada=yes])
-+if test "x$cf_with_ada" = xyes
-+then
-+ cf_PROG_CC="gnatgcc gcc cc"
-+else
-+ cf_PROG_CC="gcc cc"
-+fi
-+
-+CF_PROG_CC($cf_PROG_CC)
-
- AC_PROG_CPP
- AC_PROG_GCC_TRADITIONAL
- CF_PROG_CC_C_O(CC)
--AC_ISC_POSIX
--CF_ANSI_CC_REQD
--CF_PROG_EXT
- CF_PROG_LDCONFIG
-
- dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the
-@@ -89,14 +92,16 @@
- cf_with_cxx=no; CXX=""; GXX="";])dnl
- AC_PROG_CXX
- popdef([AC_MSG_ERROR])dnl
-- # autoconf 2.5x removed the error - by hardcoding it to g++.
-+ # autoconf 2.5x removed the error (hardcoding it to g++, or just blank)
- if test "$CXX" = "g++" ; then
- AC_PATH_PROG(CXX,g++)
- fi
-- if test "$CXX" = "g++" ; then
-- AC_MSG_WARN(ignoring hardcoded g++)
-+ case "x$CXX" in #(vi
-+ x|xg++)
-+ AC_MSG_WARN([You don't have any C++ compiler, too bad])
- cf_with_cxx=no; CXX=""; GXX="";
-- fi
-+ ;;
-+ esac
- fi
-
- CF_GXX_VERSION
-@@ -116,10 +121,6 @@
- AC_MSG_RESULT($cf_with_cxx_binding)
-
- AC_MSG_CHECKING(if you want to build with Ada95)
--AC_ARG_WITH(ada,
-- [ --without-ada suppress check for Ada95, don't build demo],
-- [cf_with_ada=$withval],
-- [cf_with_ada=yes])
- AC_MSG_RESULT($cf_with_ada)
-
- AC_MSG_CHECKING(if you want to install manpages)
-@@ -168,28 +169,8 @@
-
- # if we find pkg-config, check if we should install the ".pc" files.
- CF_PKG_CONFIG
--
--if test "$PKG_CONFIG" != no ; then
-- AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
--
-- # Leave this as something that can be overridden in the environment.
-- if test -z "$PKG_CONFIG_LIBDIR" ; then
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
-- fi
-- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
-- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
-- AC_ARG_ENABLE(pc-files,
-- [ --enable-pc-files generate and install .pc files for pkg-config],
-- [enable_pc_files=$enableval],
-- [enable_pc_files=no])
-- AC_MSG_RESULT($enable_pc_files)
-- else
-- AC_MSG_RESULT(no)
-- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
-- enable_pc_files=no
-- fi
--fi
--AC_SUBST(PKG_CONFIG_LIBDIR)
-+CF_WITH_PKG_CONFIG_LIBDIR
-+CF_ENABLE_PC_FILES
-
- AC_MSG_CHECKING(if we should assume mixed-case filenames)
- AC_ARG_ENABLE(mixed-case,
-@@ -201,8 +182,8 @@
- CF_MIXEDCASE_FILENAMES
- else
- cf_cv_mixedcase=$enable_mixedcase
-- if test "$enable_mixedcase" = "yes" ; then
-- AC_DEFINE(MIXEDCASE_FILENAMES)
-+ if test "x$enable_mixedcase" = "xyes" ; then
-+ AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if tic should assume mixed-case filenames])
- fi
- fi
-
-@@ -223,8 +204,8 @@
- AC_MSG_CHECKING(if you have specified an install-prefix)
- AC_ARG_WITH(install-prefix,
- [ --with-install-prefix prefixes actual install-location ($DESTDIR)],
-- [case "$withval" in #(vi
-- yes|no) #(vi
-+ [case "x$withval" in #(vi
-+ xyes|xno) #(vi
- ;;
- *) DESTDIR="$withval"
- ;;
-@@ -261,7 +242,7 @@
- [with_shared=$withval],
- [with_shared=no])
- AC_MSG_RESULT($with_shared)
--test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-+test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared"
-
- AC_MSG_CHECKING(if you want to build static libraries)
- AC_ARG_WITH(normal,
-@@ -269,7 +250,7 @@
- [with_normal=$withval],
- [with_normal=yes])
- AC_MSG_RESULT($with_normal)
--test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
-+test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal"
-
- AC_MSG_CHECKING(if you want to build debug libraries)
- AC_ARG_WITH(debug,
-@@ -277,7 +258,7 @@
- [with_debug=$withval],
- [with_debug=yes])
- AC_MSG_RESULT($with_debug)
--test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
-+test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug"
-
- AC_MSG_CHECKING(if you want to build profiling libraries)
- AC_ARG_WITH(profile,
-@@ -285,10 +266,21 @@
- [with_profile=$withval],
- [with_profile=no])
- AC_MSG_RESULT($with_profile)
--test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
-+test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile"
-
- fi
-
-+if test "X$cf_with_cxx_binding" != Xno; then
-+if test "x$with_shared" = "xyes"; then
-+AC_MSG_CHECKING(if you want to build C++ shared libraries)
-+AC_ARG_WITH(cxx-shared,
-+ [ --with-cxx-shared generate C++ shared-libraries],
-+ [with_shared_cxx=$withval],
-+ [with_shared_cxx=no])
-+AC_MSG_RESULT($with_shared_cxx)
-+fi
-+fi
-+
- ###############################################################################
-
- AC_MSG_CHECKING(for specified models)
-@@ -321,12 +313,11 @@
- LIB_DIR=../lib
- LIB_2ND=../../lib
-
--CF_LIB_PREFIX(cf_prefix)
--LIB_PREFIX=$cf_prefix
--AC_SUBST(LIB_PREFIX)
-+CF_WITH_LIB_PREFIX(cf_prefix)
-
- LIB_SUFFIX=
- AC_SUBST(LIB_SUFFIX)
-+CF_PATHSEP
-
- ###############################################################################
-
-@@ -354,21 +345,21 @@
- [with_dlsym=$withval],
- [with_dlsym=yes])
- AC_MSG_RESULT($with_dlsym)
-- if test "$with_dlsym" = yes ; then
-+ if test "x$with_dlsym" = xyes ; then
- CF_FUNC_DLSYM
-- if test "$with_gpm" != yes ; then
-+ if test "x$with_gpm" != xyes ; then
- CF_VERBOSE(assuming soname for gpm is $with_gpm)
- cf_cv_gpm_soname="$with_gpm"
- else
- CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
- fi
-- test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
-+ test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[Define as needed to set the gpm share library soname])
- SHLIB_LIST="-ldl $SHLIB_LIST"
- else
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- CF_ADD_LIB(gpm,TEST_LIBS)
- fi
-- AC_DEFINE(HAVE_LIBGPM)
-+ AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
- CF_CHECK_GPM_WGETCH
- fi
-
-@@ -378,13 +369,13 @@
-
- if test X"$CC_G_OPT" = X"" ; then
- CC_G_OPT='-g'
-- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
-+ test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT=''
- fi
- AC_SUBST(CC_G_OPT)
-
- if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
-- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
-+ test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT=''
- fi
- AC_SUBST(CXX_G_OPT)
-
-@@ -453,9 +444,8 @@
- esac
- AC_SUBST(TERMINFO_SRC)
-
--CF_PATHSEP
- if test "$use_database" != no ; then
-- AC_DEFINE(USE_DATABASE)
-+ AC_DEFINE(USE_DATABASE,1,[Define to 1 if we should use the terminal database])
-
- AC_MSG_CHECKING(which terminfo source-file will be installed)
- AC_ARG_WITH(database,
-@@ -494,6 +484,26 @@
- WHICH_XTERM=$with_xterm_new
- AC_SUBST(WHICH_XTERM)
-
-+AC_MSG_CHECKING(if xterm backspace sends BS or DEL)
-+AC_ARG_WITH(xterm-kbs,
-+ [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL],
-+ [with_xterm_kbs=$withval],
-+ [with_xterm_kbs=BS])
-+case x$with_xterm_kbs in
-+xyes|xno|xBS|xbs|x8)
-+ with_xterm_kbs=BS
-+ ;;
-+xDEL|xdel|x127)
-+ with_xterm_kbs=DEL
-+ ;;
-+*)
-+ with_xterm_kbs=$withval
-+ ;;
-+esac
-+AC_MSG_RESULT($with_xterm_kbs)
-+XTERM_KBS=$with_xterm_kbs
-+AC_SUBST(XTERM_KBS)
-+
- MAKE_TERMINFO=
- if test "$use_database" = no ; then
- TERMINFO="${datadir}/terminfo"
-@@ -507,7 +517,7 @@
- DATADIR/terminfo,
- ${datadir}/terminfo)
- AC_MSG_RESULT($TERMINFO_DIRS)
--test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS")
-+test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist])
-
- AC_MSG_CHECKING(for default terminfo directory)
- CF_WITH_PATH(default-terminfo-dir,
-@@ -516,7 +526,7 @@
- DATADIR/terminfo,
- ${datadir}/terminfo)
- AC_MSG_RESULT($TERMINFO)
--AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO")
-+AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[Define to set the default terminal database path])
-
- fi
-
-@@ -543,7 +553,7 @@
- [with_big_core=no],
- [with_big_core=no])])
- AC_MSG_RESULT($with_big_core)
--test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
-+test "x$with_big_core" = "xyes" && AC_DEFINE(HAVE_BIG_CORE,1,[Define to 1 if machine has ample memory for tic])
-
- ### ISO C only guarantees 512-char strings, we have tables which load faster
- ### when constructed using "big" strings. More than the C compiler, the awk
-@@ -556,7 +566,7 @@
- AC_MSG_RESULT($with_big_strings)
-
- USE_BIG_STRINGS=0
--test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
-+test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1
- AC_SUBST(USE_BIG_STRINGS)
-
- ### use option --enable-termcap to compile in the termcap fallback support
-@@ -567,27 +577,27 @@
- [with_termcap=no])
- AC_MSG_RESULT($with_termcap)
-
--if test "$with_termcap" != "yes" ; then
-+if test "x$with_termcap" != "xyes" ; then
- if test "$use_database" = no ; then
- if test -z "$with_fallback" ; then
- AC_ERROR(You have disabled the database w/o specifying fallbacks)
- fi
- fi
-- AC_DEFINE(PURE_TERMINFO)
-+ AC_DEFINE(PURE_TERMINFO,1,[Define to 1 if we should support only terminfo])
- else
-
- if test "$with_ticlib" != no ; then
- AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
- fi
-
--AC_DEFINE(USE_TERMCAP)
-+AC_DEFINE(USE_TERMCAP,1,[Define to 1 if we should support termcap])
- AC_MSG_CHECKING(for list of termcap files)
- CF_WITH_PATHLIST(termpath,
- [ --with-termpath=XXX specify list of termcap files],
- TERMPATH,
- /etc/termcap:/usr/share/misc/termcap)
- AC_MSG_RESULT($TERMPATH)
--test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
-+test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[Define to set the termcap searchlist])
-
- ### use option --enable-getcap to use a hacked getcap for reading termcaps
- AC_MSG_CHECKING(if fast termcap-loader is needed)
-@@ -596,7 +606,7 @@
- [with_getcap=$enableval],
- [with_getcap=no])
- AC_MSG_RESULT($with_getcap)
--test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
-+test "x$with_getcap" = "xyes" && AC_DEFINE(USE_GETCAP,1,[Define to 1 to use fast termcap-loader])
-
- AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
- AC_ARG_ENABLE(getcap-cache,
-@@ -604,7 +614,7 @@
- [with_getcap_cache=$enableval],
- [with_getcap_cache=no])
- AC_MSG_RESULT($with_getcap_cache)
--test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
-+test "x$with_getcap_cache" = "xyes" && AC_DEFINE(USE_GETCAP_CACHE,1,[Define to 1 if translated termcap should be stored in $HOME/.terminfo])
-
- fi
-
-@@ -615,7 +625,7 @@
- [with_home_terminfo=$enableval],
- [with_home_terminfo=yes])
- AC_MSG_RESULT($with_home_terminfo)
--test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
-+test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted])
-
- AC_MSG_CHECKING(if you want to use restricted environment when running as root)
- AC_ARG_ENABLE(root-environ,
-@@ -623,7 +633,7 @@
- [with_root_environ=$enableval],
- [with_root_environ=yes])
- AC_MSG_RESULT($with_root_environ)
--test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
-+test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user])
-
- ### Use option --enable-symlinks to make tic use symlinks, not hard links
- ### to reduce storage requirements for the terminfo database.
-@@ -634,7 +644,7 @@
-
- # soft links (symbolic links) are useful for some systems where hard links do
- # not work, or to make it simpler to copy terminfo trees around.
--if test "$ac_cv_func_symlink" = yes ; then
-+if test "x$ac_cv_func_symlink" = xyes ; then
- AC_MSG_CHECKING(if tic should use symbolic links)
- AC_ARG_ENABLE(symlinks,
- [ --enable-symlinks make tic use symbolic links not hard links],
-@@ -647,7 +657,7 @@
- # no reason to make this choice optional - use the hard links.
- if test "$with_symlinks" = no ; then
- AC_MSG_CHECKING(if tic should use hard links)
-- if test "$ac_cv_func_link" = yes ; then
-+ if test "x$ac_cv_func_link" = xyes ; then
- with_links=yes
- else
- with_links=no
-@@ -655,8 +665,8 @@
- AC_MSG_RESULT($with_links)
- fi
-
--test "$with_links" = yes && AC_DEFINE(USE_LINKS)
--test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)
-+test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks should be used in terminfo database])
-+test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database])
-
- ### use option --enable-broken-linker to force on use of broken-linker support
- AC_MSG_CHECKING(if you want broken-linker support code)
-@@ -667,13 +677,13 @@
- AC_MSG_RESULT($with_broken_linker)
-
- BROKEN_LINKER=0
--if test "$with_broken_linker" = yes ; then
-- AC_DEFINE(BROKEN_LINKER)
-+if test "x$with_broken_linker" = xyes ; then
-+ AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
- BROKEN_LINKER=1
- elif test "$DFT_LWR_MODEL" = shared ; then
- case $cf_cv_system_name in #(vi
- cygwin*)
-- AC_DEFINE(BROKEN_LINKER)
-+ AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
- BROKEN_LINKER=1
- CF_VERBOSE(cygwin linker is broken anyway)
- ;;
-@@ -688,7 +698,7 @@
- [with_bsdpad=$enableval],
- [with_bsdpad=no])
- AC_MSG_RESULT($with_bsdpad)
--test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)
-+test "x$with_bsdpad" = xyes && AC_DEFINE(BSD_TPUTS,1,[Define to 1 to recognize BSD-style prefix padding])
-
- ### use option --enable-widec to turn on use of wide-character support
- NCURSES_CH_T=chtype
-@@ -718,22 +728,17 @@
- [with_widec=$enableval],
- [with_widec=no])
- AC_MSG_RESULT($with_widec)
--if test "$with_widec" = yes ; then
-+if test "x$with_widec" = xyes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
-- AC_DEFINE(USE_WIDEC_SUPPORT)
-+ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code])
-+ AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code])
-
-- case "$CFLAGS $CPPFLAGS" in #(vi
-- *-D_XOPEN_SOURCE=500) #(vi
-- ;;
-- *)
-- CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
-- ;;
-- esac
-+ CF_CHECK_WCHAR_H
-
- # with_overwrite=no
- NCURSES_CH_T=cchar_t
- AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
-- if test "$ac_cv_func_putwc" != yes ; then
-+ if test "x$ac_cv_func_putwc" != xyes ; then
- CF_UTF8_LIB
- if test "$cf_cv_utf8_lib" != no ; then
- NCURSES_LIBUTF8=1
-@@ -744,7 +749,7 @@
- CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
-
- if test "$NCURSES_MBSTATE_T" != 0; then
-- AC_DEFINE(NEED_MBSTATE_T_DEF)
-+ AC_DEFINE(NEED_MBSTATE_T_DEF,1,[Define to 1 if we must declare mbstate_t])
- fi
- fi
- AC_SUBST(NCURSES_CH_T)
-@@ -775,7 +780,7 @@
- [with_lp64=$default_with_lp64])
- AC_MSG_RESULT($with_lp64)
-
--if test "$with_lp64" = yes ; then
-+if test "x$with_lp64" = xyes ; then
- cf_cv_enable_lp64=1
- else
- cf_cv_enable_lp64=0
-@@ -792,7 +797,7 @@
- [with_tparm_varargs=yes])
- AC_MSG_RESULT($with_tparm_varargs)
- NCURSES_TPARM_VARARGS=0
--test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
-+test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1
- AC_SUBST(NCURSES_TPARM_VARARGS)
-
- ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
-@@ -859,6 +864,15 @@
- AC_MSG_RESULT($NCURSES_CCHARW_MAX)
- AC_SUBST(NCURSES_CCHARW_MAX)
-
-+### use option --with-tparm-arg to override tparm's argument type
-+AC_MSG_CHECKING(for type of tparm args)
-+AC_ARG_WITH(tparm-arg,
-+ [ --with-tparm-arg=TYPE override parameter type of tparm],
-+ [NCURSES_TPARM_ARG="$withval"],
-+ [NCURSES_TPARM_ARG=long])
-+AC_MSG_RESULT($NCURSES_TPARM_ARG)
-+AC_SUBST(NCURSES_TPARM_ARG)
-+
- ### Enable compiling-in rcs id's
- AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
- AC_ARG_WITH(rcs-ids,
-@@ -866,7 +880,7 @@
- [with_rcs_ids=$withval],
- [with_rcs_ids=no])
- AC_MSG_RESULT($with_rcs_ids)
--test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
-+test "x$with_rcs_ids" = xyes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 to compile-in RCS identifiers])
-
- ###############################################################################
- CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ])
-@@ -881,16 +895,19 @@
- [with_ext_funcs=$enableval],
- [with_ext_funcs=yes])
- AC_MSG_RESULT($with_ext_funcs)
--if test "$with_ext_funcs" = yes ; then
-+if test "x$with_ext_funcs" = xyes ; then
- NCURSES_EXT_FUNCS=1
-- AC_DEFINE(HAVE_CURSES_VERSION)
-- AC_DEFINE(HAVE_HAS_KEY)
-- AC_DEFINE(HAVE_RESIZETERM)
-- AC_DEFINE(HAVE_RESIZE_TERM)
-- AC_DEFINE(HAVE_TERM_ENTRY_H)
-- AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
-- AC_DEFINE(HAVE_WRESIZE)
-- AC_DEFINE(NCURSES_EXT_FUNCS)
-+ AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS,1,[Define to 1 to enable assume_default_colors() function])
-+ AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 to enable curses_version() function])
-+ AC_DEFINE(HAVE_HAS_KEY,1,[Define to 1 to enable has_key() function])
-+ AC_DEFINE(HAVE_RESIZETERM,1,[Define to 1 to enable resizeterm() function])
-+ AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function])
-+ AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function])
-+ AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function])
-+ AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function])
-+ AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function])
-+ AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function])
-+ AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 to enable ncurses extended functions])
- GENERATED_EXT_FUNCS=generated
- else
- NCURSES_EXT_FUNCS=0
-@@ -905,9 +922,9 @@
- [with_sp_funcs=$enableval],
- [with_sp_funcs=no])
- AC_MSG_RESULT($with_sp_funcs)
--if test "$with_sp_funcs" = yes ; then
-+if test "x$with_sp_funcs" = xyes ; then
- NCURSES_SP_FUNCS=1
-- AC_DEFINE(NCURSES_SP_FUNCS)
-+ AC_DEFINE(NCURSES_SP_FUNCS,1,[Define to 1 to enable experimental SCREEN-extensions])
- GENERATED_SP_FUNCS=generated
- else
- NCURSES_SP_FUNCS=0
-@@ -922,9 +939,9 @@
- [with_term_driver=$enableval],
- [with_term_driver=no])
- AC_MSG_RESULT($with_term_driver)
--if test "$with_term_driver" = yes ; then
-- AC_DEFINE(USE_TERM_DRIVER)
-- if test "$with_sp_funcs" != yes ; then
-+if test "x$with_term_driver" = xyes ; then
-+ AC_DEFINE(USE_TERM_DRIVER,1,[Define to 1 to enable experimental terminal-driver])
-+ if test "x$with_sp_funcs" != xyes ; then
- AC_MSG_ERROR(The term-driver option relies upon sp-funcs)
- fi
- fi
-@@ -937,7 +954,7 @@
- [with_ext_const=no])
- AC_MSG_RESULT($with_ext_const)
- NCURSES_CONST='/*nothing*/'
--if test "$with_ext_const" = yes ; then
-+if test "x$with_ext_const" = xyes ; then
- NCURSES_CONST=const
- fi
- AC_SUBST(NCURSES_CONST)
-@@ -950,15 +967,15 @@
- [with_ext_colors=no])
- AC_MSG_RESULT($with_ext_colors)
- NCURSES_EXT_COLORS=0
--if test "$with_ext_colors" = yes ; then
-- if test "$with_widec" != yes ; then
-+if test "x$with_ext_colors" = xyes ; then
-+ if test "x$with_widec" != xyes ; then
- AC_MSG_ERROR(This option applies only to wide-character library)
- else
- # cannot be ABI 5 since it changes sizeof(cchar_t)
- CF_NCURSES_ABI_6
- fi
- NCURSES_EXT_COLORS=1
-- AC_DEFINE(NCURSES_EXT_COLORS)
-+ AC_DEFINE(NCURSES_EXT_COLORS,1,[Define to 1 to compile for 256-color support])
- fi
- AC_SUBST(NCURSES_EXT_COLORS)
-
-@@ -970,7 +987,7 @@
- [with_ext_mouse=no])
- AC_MSG_RESULT($with_ext_mouse)
- NCURSES_MOUSE_VERSION=1
--if test "$with_ext_mouse" = yes ; then
-+if test "x$with_ext_mouse" = xyes ; then
- NCURSES_MOUSE_VERSION=2
- CF_NCURSES_ABI_6
- fi
-@@ -982,7 +999,7 @@
- [with_no_padding=$enableval],
- [with_no_padding=$with_ext_funcs])
- AC_MSG_RESULT($with_no_padding)
--test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING)
-+test "x$with_no_padding" = xyes && AC_DEFINE(NCURSES_NO_PADDING,1,[Define to 1 to compile with $NCURSES_NO_PADDING code])
-
- AC_CHECK_SIZEOF([signed char], 0)
- if test "$ac_cv_sizeof_signed_char" = 1 ; then
-@@ -996,7 +1013,7 @@
- [with_signed_char=$enableval],
- [with_signed_char=no])
- AC_MSG_RESULT($with_signed_char)
--test "$with_signed_char" != yes && NCURSES_SBOOL="char"
-+test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
- AC_SUBST(NCURSES_SBOOL)
-
- ### use option --enable-sigwinch to turn on use of SIGWINCH logic
-@@ -1006,7 +1023,7 @@
- [with_sigwinch=$enableval],
- [with_sigwinch=$with_ext_funcs])
- AC_MSG_RESULT($with_sigwinch)
--test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)
-+test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
-
- ### use option --enable-tcap-names to allow user to define new capabilities
- AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
-@@ -1016,7 +1033,7 @@
- [with_tcap_names=$with_ext_funcs])
- AC_MSG_RESULT($with_tcap_names)
- NCURSES_XNAMES=0
--test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-+test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
- AC_SUBST(NCURSES_XNAMES)
-
- ###############################################################################
-@@ -1035,7 +1052,7 @@
- [ --enable-hard-tabs compile with hard-tabs code],,
- [enable_hard_tabs=$with_develop])
- AC_MSG_RESULT($enable_hard_tabs)
--test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS)
-+test "x$enable_hard_tabs" = xyes && AC_DEFINE(USE_HARD_TABS,1,[Define to 1 to compile with hard-tabs code])
-
- ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
- AC_MSG_CHECKING(if you want limited support for xmc)
-@@ -1043,7 +1060,7 @@
- [ --enable-xmc-glitch compile with support for xmc (magic-cookie)],,
- [enable_xmc_glitch=$with_develop])
- AC_MSG_RESULT($enable_xmc_glitch)
--test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
-+test "x$enable_xmc_glitch" = xyes && AC_DEFINE(USE_XMC_SUPPORT,1,[Define to 1 to compile with support for xmc (magic-cookie)])
-
- ###############################################################################
- # These are just experimental, probably should not be in a package:
-@@ -1055,7 +1072,7 @@
- [with_assumed_color=$enableval],
- [with_assumed_color=yes])
- AC_MSG_RESULT($with_assumed_color)
--test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR)
-+test "x$with_assumed_color" = xyes && AC_DEFINE(USE_ASSUMED_COLOR,1,[Define to 1 to assume things about default-colors])
-
- ### use option --enable-hashmap to turn on use of hashmap scrolling logic
- AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
-@@ -1064,7 +1081,7 @@
- [with_hashmap=$enableval],
- [with_hashmap=yes])
- AC_MSG_RESULT($with_hashmap)
--test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
-+test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization])
-
- ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
- AC_MSG_CHECKING(if you want colorfgbg code)
-@@ -1073,7 +1090,7 @@
- [with_colorfgbg=$enableval],
- [with_colorfgbg=no])
- AC_MSG_RESULT($with_colorfgbg)
--test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
-+test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code])
-
- ### use option --enable-interop to turn on use of bindings used for interop
- AC_MSG_CHECKING(if you want interop bindings)
-@@ -1084,7 +1101,7 @@
- AC_MSG_RESULT($with_exp_interop)
-
- NCURSES_INTEROP_FUNCS=0
--test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1
-+test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1
- AC_SUBST(NCURSES_INTEROP_FUNCS)
-
- # This is still experimental (20080329), but should ultimately be moved to
-@@ -1099,8 +1116,8 @@
- [use_pthreads_eintr=$enableval],
- [use_pthreads_eintr=no])
- AC_MSG_RESULT($use_pthreads_eintr)
-- if test $use_pthreads_eintr = yes ; then
-- AC_DEFINE(USE_PTHREADS_EINTR)
-+ if test "x$use_pthreads_eintr" = xyes ; then
-+ AC_DEFINE(USE_PTHREADS_EINTR,1,[Define to 1 to enable EINTR in wgetch with pthreads])
- fi])
-
- AC_MSG_CHECKING(if you want to use weak-symbols for pthreads)
-@@ -1109,22 +1126,22 @@
- [use_weak_symbols=$enableval],
- [use_weak_symbols=no])
- AC_MSG_RESULT($use_weak_symbols)
-- if test "$use_weak_symbols" = yes ; then
-+ if test "x$use_weak_symbols" = xyes ; then
- CF_WEAK_SYMBOLS
- else
- cf_cv_weak_symbols=no
- fi
-
-- if test $cf_cv_weak_symbols = yes ; then
-- AC_DEFINE(USE_WEAK_SYMBOLS)
-+ if test "x$cf_cv_weak_symbols" = xyes ; then
-+ AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads])
- fi
- fi
-
- PTHREAD=
--if test "$with_pthread" = "yes" ; then
-- AC_DEFINE(USE_PTHREADS)
-+if test "x$with_pthread" = "xyes" ; then
-+ AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use pthreads feature])
- enable_reentrant=yes
-- if test $cf_cv_weak_symbols = yes ; then
-+ if test "x$cf_cv_weak_symbols" = xyes ; then
- PTHREAD=-lpthread
- fi
- fi
-@@ -1140,19 +1157,19 @@
- [with_reentrant=$enableval],
- [with_reentrant=no])
- AC_MSG_RESULT($with_reentrant)
--if test "$with_reentrant" = yes ; then
-+if test "x$with_reentrant" = xyes ; then
- cf_cv_enable_reentrant=1
- cf_cv_enable_opaque="NCURSES_INTERNALS"
- NCURSES_OPAQUE=1
- NCURSES_SIZE_T=int
-- if test $cf_cv_weak_symbols = yes ; then
-+ if test "x$cf_cv_weak_symbols" = xyes ; then
- CF_REMOVE_LIB(LIBS,$LIBS,pthread)
- CF_ADD_LIB(pthread,TEST_LIBS)
- CF_ADD_LIB(pthread,TEST_LIBS2)
- else
- LIB_SUFFIX="t${LIB_SUFFIX}"
- fi
-- AC_DEFINE(USE_REENTRANT)
-+ AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use experimental reentrant feature])
- CF_NCURSES_ABI_6
- else
- cf_cv_enable_reentrant=0
-@@ -1177,7 +1194,7 @@
- NCURSES_WRAP_PREFIX=_nc_
- fi
- AC_SUBST(NCURSES_WRAP_PREFIX)
--AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX")
-+AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ prefix])
-
- AC_MSG_CHECKING(if you want experimental safe-sprintf code)
- AC_ARG_ENABLE(safe-sprintf,
-@@ -1185,7 +1202,7 @@
- [with_safe_sprintf=$enableval],
- [with_safe_sprintf=no])
- AC_MSG_RESULT($with_safe_sprintf)
--test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)
-+test "x$with_safe_sprintf" = xyes && AC_DEFINE(USE_SAFE_SPRINTF,1,[Define to 1 to compile with experimental safe-sprintf code])
-
- ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
- # when hashmap is used scroll hints are useless
-@@ -1196,7 +1213,7 @@
- [with_scroll_hints=$enableval],
- [with_scroll_hints=yes])
- AC_MSG_RESULT($with_scroll_hints)
--test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
-+test "x$with_scroll_hints" = xyes && AC_DEFINE(USE_SCROLL_HINTS,1,[Define to 1 to compile without scroll-hints code])
- fi
-
- AC_MSG_CHECKING(if you want experimental wgetch-events code)
-@@ -1205,25 +1222,20 @@
- [with_wgetch_events=$enableval],
- [with_wgetch_events=no])
- AC_MSG_RESULT($with_wgetch_events)
--test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS)
-+test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with experimental wgetch-events code])
-
- ###############################################################################
- CF_HELP_MESSAGE(Testing/development Options:)
-
- ### use option --disable-echo to suppress full display compiling commands
--AC_MSG_CHECKING(if you want to display full commands during build)
--AC_ARG_ENABLE(echo,
-- [ --enable-echo build: display "compiling" commands (default)],
-- [with_echo=$enableval],
-- [with_echo=yes])
--if test "$with_echo" = yes; then
-+CF_DISABLE_ECHO
-+if test "x$enable_echo" = xyes; then
- ECHO_LINK=
- else
- ECHO_LINK='@ echo linking $@ ... ;'
- test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
- test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
- fi
--AC_MSG_RESULT($with_echo)
- AC_SUBST(ECHO_LINK)
-
- ### use option --enable-warnings to turn on all gcc warnings
-@@ -1236,11 +1248,12 @@
- if test "x$with_warnings" = "xyes"; then
- CF_ADD_ADAFLAGS(-gnatg)
- CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
-- if test "$cf_with_cxx" = yes ; then
-+ if test "x$cf_with_cxx" = xyes ; then
- CF_GXX_WARNINGS(Wno-unused)
- fi
- fi
- CF_GCC_ATTRIBUTES
-+CF_ENABLE_STRING_HACKS
-
- ### use option --enable-assertions to turn on generation of assertion code
- AC_MSG_CHECKING(if you want to enable runtime assertions)
-@@ -1253,7 +1266,6 @@
- then
- if test "$with_assertions" = no
- then
-- AC_DEFINE(NDEBUG)
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
- CF_ADD_ADAFLAGS(-gnata)
-@@ -1262,17 +1274,17 @@
-
- ### use option --disable-leaks to suppress "permanent" leaks, for testing
- CF_DISABLE_LEAKS
--AC_DEFINE(HAVE_NC_ALLOC_H)
-+AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header])
-
- ### use option --enable-expanded to generate certain macros as functions
- AC_ARG_ENABLE(expanded,
- [ --enable-expanded test: generate functions for certain macros],
-- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
-+ [test "x$enableval" = xyes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 to generate functions for certain macros])])
-
- ### use option --disable-macros to suppress macros in favor of functions
- AC_ARG_ENABLE(macros,
- [ --disable-macros test: use functions rather than macros],
-- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
-+ [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 to use functions rather than macros])])
-
- # Normally we only add trace() to the debug-library. Allow this to be
- # extended to all models of the ncurses library:
-@@ -1290,7 +1302,7 @@
- [cf_with_trace=$cf_all_traces])
- AC_MSG_RESULT($cf_with_trace)
-
--if test "$cf_with_trace" = yes ; then
-+if test "x$cf_with_trace" = xyes ; then
- LIB_TRACING=all
- ADA_TRACE=TRUE
- CF_ADD_CFLAGS(-DTRACE)
-@@ -1307,10 +1319,10 @@
- ;;
- *)
- AC_CHECK_FUNC(gettimeofday,
-- AC_DEFINE(HAVE_GETTIMEOFDAY),[
-+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
-
- AC_CHECK_LIB(bsd, gettimeofday,
-- AC_DEFINE(HAVE_GETTIMEOFDAY)
-+ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
- CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
- ;;
- esac
-@@ -1344,9 +1356,11 @@
- wctype.h \
- )
-
-+CF_GETOPT_HEADER
-+
- # check for ISC (this may also define _POSIX_SOURCE)
- # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
--if test "$ISC" = yes ; then
-+if test "x$ISC" = xyes ; then
- AC_CHECK_LIB(cposix,main)
- AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()'
- fi
-@@ -1393,10 +1407,12 @@
- getttynam \
- issetugid \
- poll \
-+putenv \
- remove \
- select \
- setbuf \
- setbuffer \
-+setenv \
- setvbuf \
- sigaction \
- sigvec \
-@@ -1406,7 +1422,7 @@
- times \
- vsnprintf \
- )
--if test "$with_getcap" = "yes" ; then
-+if test "x$with_getcap" = "xyes" ; then
- CF_CGETENT
- fi
-
-@@ -1421,12 +1437,12 @@
- CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
-
- dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
--if test "$cross_compiling" = yes ; then
-+if test "x$cross_compiling" = xyes ; then
- AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
- else
- AC_FUNC_SETVBUF_REVERSED
- fi
--AC_TYPE_SIGNAL
-+AC_CHECK_TYPE(intptr_t, long)
- CF_TYPE_SIGACTION
- CF_SIZECHANGE
- CF_FUNC_MEMMOVE
-@@ -1437,9 +1453,9 @@
- # special check for test/ditto.c
- CF_FUNC_OPENPTY
- if test "$cf_cv_func_openpty" != no ; then
-- AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>)
-- AC_DEFINE(USE_XTERM_PTY)
-- if test "$cf_cv_lib_util" = yes ; then
-+ AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function])
-+ AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface])
-+ if test "x$cf_cv_lib_util" = xyes ; then
- CF_ADD_LIB(util,TEST_LIBS)
- fi
- fi
-@@ -1447,7 +1463,7 @@
- AC_SUBST(TEST_LIBS2)
-
- if test "$with_hashed_db" != no ; then
-- AC_DEFINE(USE_HASHED_DB)
-+ AC_DEFINE(USE_HASHED_DB,1,[Define to 1 if we should build terminfo in hashed database])
- CF_HASHED_DB($with_hashed_db)
- fi
-
-@@ -1478,50 +1494,14 @@
- ;;
- esac
-
-- AC_CHECK_HEADERS(iostream typeinfo)
--
-- if test x"$ac_cv_header_iostream" = xyes ; then
-- AC_MSG_CHECKING(if iostream uses std-namespace)
-- AC_TRY_COMPILE([
--#include <iostream>
--using std::endl;
--using std::cerr;],[
--cerr << "testing" << endl;
--],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
-- AC_MSG_RESULT($cf_iostream_namespace)
-- if test "$cf_iostream_namespace" = yes ; then
-- AC_DEFINE(IOSTREAM_NAMESPACE)
-- fi
-- fi
--
-+ AC_CHECK_HEADERS(typeinfo)
-+ CF_CXX_IOSTREAM_NAMESPACE
- CF_BOOL_DECL
- CF_BOOL_SIZE
- CF_ETIP_DEFINES
- CF_CPP_PARAM_INIT
- CF_CPP_STATIC_CAST
--
-- CXX_AR='$(AR)'
-- CXX_ARFLAGS='$(ARFLAGS)'
-- case $cf_cv_system_name in #(vi
-- irix*) #(vi
-- if test "$GXX" != yes ; then
-- CXX_AR='$(CXX)'
-- CXX_ARFLAGS='-ar -o'
-- fi
-- ;;
-- sco3.2v5*) #(vi
-- CXXLDFLAGS="-u main"
-- ;;
-- solaris2*)
-- if test "$GXX" != yes ; then
-- CXX_AR='$(CXX)'
-- CXX_ARFLAGS='-xar -o'
-- fi
-- ;;
-- esac
-- AC_SUBST(CXXLDFLAGS)
-- AC_SUBST(CXX_AR)
-- AC_SUBST(CXX_ARFLAGS)
-+ CF_CXX_AR_FLAGS
- else
- cf_cxx_library=no
- cf_cv_builtin_bool=1
-@@ -1593,20 +1573,9 @@
- dnl At the moment we support no other Ada95 compiler.
- if test "$cf_with_ada" != "no" ; then
- CF_PROG_GNAT
-- if test "$cf_cv_prog_gnat_correct" = yes; then
-+ if test "x$cf_cv_prog_gnat_correct" = xyes; then
- CF_ADD_ADAFLAGS(-gnatpn)
--
-- # make ADAFLAGS consistent with CFLAGS
-- case "$CFLAGS" in
-- *-g*)
-- CF_ADD_ADAFLAGS(-g)
-- ;;
-- esac
-- case "$CFLAGS" in
-- *-O*)
-- CF_ADD_ADAFLAGS(-O3)
-- ;;
-- esac
-+ CF_FIXUP_ADAFLAGS
-
- CF_GNAT_GENERICS
- CF_GNAT_SIGINT
-@@ -1640,7 +1609,7 @@
- AC_MSG_CHECKING(for library subsets)
- LIB_SUBSETS=
-
--if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
-+if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then
- LIB_SUBSETS="${LIB_SUBSETS}ticlib"
- if test "$with_ticlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
-@@ -1650,7 +1619,7 @@
- fi
-
- LIB_SUBSETS="${LIB_SUBSETS}termlib"
--test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
-+test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
-
- if test "$with_termlib" != no ; then
- LIB_SUBSETS="${LIB_SUBSETS} "
-@@ -1674,8 +1643,8 @@
- esac
- fi
-
--test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
--test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-+test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
-+test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-
- AC_MSG_RESULT($LIB_SUBSETS)
-
-@@ -1699,20 +1668,24 @@
- AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
- AC_MSG_RESULT($DFT_OBJ_SUBDIR)
-
--# libtool thinks it can make c++ shared libraries (perhaps only g++)
--if test "$cf_with_cxx" = yes ; then
-+if test "x$cf_with_cxx" = xyes ; then
- AC_MSG_CHECKING(c++ library-dependency suffix)
- if test "$with_libtool" != "no"; then
-+ # libtool thinks it can make c++ shared libraries (perhaps only g++)
-+ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
-+elif test "$with_shared_cxx" != "no"; then
-+ # also for g++ users...
- CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
- else
-- CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library
-+ # we normally make a static library because C/C++ library rules differ
-+ CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)
- fi
- AC_MSG_RESULT($CXX_LIB_SUFFIX)
- AC_SUBST(CXX_LIB_SUFFIX)
- fi
-
- # do not want -ldl in build except as needed for -lncurses dependency
--if test "$with_dlsym" = yes ; then
-+if test "x$with_dlsym" = xyes ; then
- if test $DFT_LWR_MODEL = shared || \
- test $DFT_LWR_MODEL = libtool ; then
- CF_REMOVE_LIB(LIBS,$LIBS,dl)
-@@ -1723,13 +1696,13 @@
- # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
- # do not need libdl
- TICS_LIST=
--if test "$with_dlsym" = yes ; then
-+if test "x$with_dlsym" = xyes ; then
- CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
- fi
-
- if test "$with_ticlib" != no ; then
-
-- if test "$with_ticlib" != yes ; then
-+ if test "x$with_ticlib" != xyes ; then
- TICS_NAME=$with_ticlib
- TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
-@@ -1739,18 +1712,21 @@
- TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
- TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
- fi
-- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
-+ TICS_LDFLAGS="-L${LIB_DIR}"
-+ TICS_LIBS="-l${TICS_LIB_SUFFIX}"
- else
-- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TICS_LDFLAGS="-L${LIB_DIR}"
-+ TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
- fi
- AC_SUBST(TICS_ARG_SUFFIX)
- AC_SUBST(TICS_DEP_SUFFIX)
- AC_SUBST(TICS_LIB_SUFFIX)
--AC_SUBST(TICS_ARGS)
-+AC_SUBST(TICS_LDFLAGS)
-+AC_SUBST(TICS_LIBS)
-
- if test "$with_termlib" != no ; then
-
-- if test "$with_termlib" != yes ; then
-+ if test "x$with_termlib" != xyes ; then
- TINFO_NAME=$with_termlib
- TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
- TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
-@@ -1768,14 +1744,22 @@
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- TEST_ARG2="${TEST_DEP2}"
-- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
-+ TINFO_LDFLAGS="-L${LIB_DIR}"
-+ TINFO_LIBS="$TEST_ARGS"
- TICS_LIST="$SHLIB_LIST $TEST_ARGS"
- SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
- else
- TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
- TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
-- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
-- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
-+ if test "x$with_term_driver" != xno ; then
-+ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
-+ else
-+ TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
-+ TINFO_LIBS="$TEST_ARGS"
-+ fi
-+ TINFO_LDFLAGS="-L${LIB_DIR}"
- SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
- fi
- else
-@@ -1783,13 +1767,14 @@
- TINFO_NAME=${LIB_NAME}
- TINFO_SUFFIX=${DFT_LIB_SUFFIX}
- TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
-- if test "$with_tic_depends" = yes ; then
-+ if test "x$with_tic_depends" = xyes ; then
- TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
- else
- TICS_LIST="$SHLIB_LIST"
- fi
-
-- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
-+ TINFO_LDFLAGS="-L${LIB_DIR}"
-+ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
- fi
-
- if test "$DFT_LWR_MODEL" = shared ; then
-@@ -1804,9 +1789,10 @@
- AC_SUBST(TINFO_ARG_SUFFIX)
- AC_SUBST(TINFO_DEP_SUFFIX)
- AC_SUBST(TINFO_LIB_SUFFIX)
--AC_SUBST(TINFO_ARGS)
-+AC_SUBST(TINFO_LDFLAGS)
-+AC_SUBST(TINFO_LIBS)
-
--if test "$with_dlsym" = yes ; then
-+if test "x$with_dlsym" = xyes ; then
- CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
- fi
-
-@@ -1815,8 +1801,8 @@
- fi
-
- # needed for Ada95
--TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
--AC_SUBST(TINFO_ARGS2)
-+TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'`
-+AC_SUBST(TINFO_LDFLAGS2)
-
- case $DFT_LWR_MODEL in
- normal|debug|profile)
-@@ -1850,14 +1836,14 @@
- AC_SUBST(NCURSES_TREE)
-
- ### predefined stuff for the test programs
--AC_DEFINE(HAVE_SLK_COLOR)
-+AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs])
-
- ### Construct the list of subdirectories for which we'll customize makefiles
- ### with the appropriate compile-rules.
-
- CF_SRC_MODULES($modules_to_build)
-
--if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
-+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
- SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in"
- fi
-@@ -1869,26 +1855,26 @@
- AC_SUBST(NCURSES_SHLIB2)
-
- # values to use as strings
--AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR')
-+AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as library path-separator])
-
--AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}")
-+AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic])
-
- ### Now that we're done running tests, add the compiler-warnings, if any
- CF_ADD_CFLAGS($EXTRA_CFLAGS)
-
- ### Define substitutions for header files to avoid name-pollution
--CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
--CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
--CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
-+CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0)
-+CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0)
-+CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0)
-
- ################################################################################
--test "$use_database" = yes && \
-+test "x$use_database" = xyes && \
- SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
-
- SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
- SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in"
-
--if test x"$enable_pc_files" = xyes ; then \
-+if test "x$enable_pc_files" = xyes ; then \
- SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
- MAKE_PC_FILES=
- else
-@@ -1917,12 +1903,18 @@
- ADAHTML_DIR=../../doc/html/ada
- AC_SUBST(ADAHTML_DIR)
-
-+# these could be configurable, but are not currently
-+PANEL_NAME=panel
-+MENU_NAME=menu
-+FORM_NAME=form
-+CXX_NAME=ncurses++
-+
-+AC_SUBST(PANEL_NAME)
-+AC_SUBST(MENU_NAME)
-+AC_SUBST(FORM_NAME)
-+AC_SUBST(CXX_NAME)
-+
- SUB_SCRIPTS=
--case $cf_cv_system_name in #(vi
--*mingw32*) #(vi
-- SUB_SCRIPTS="mk-dlls.sh"
-- ;;
--esac
-
- AC_OUTPUT( \
- include/MKterm.h.awk \
-@@ -1934,11 +1926,11 @@
- $SUB_MAKEFILES \
- Makefile,[
- if test "x$cf_with_tests" != xno ; then
-- CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK"], test)
-+ CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test)
- fi
- CF_LIB_RULES($SRC_SUBDIRS)
-
--if test "x$cf_with_ada" != xno ; then
-+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
- if test -z "$USE_OLD_MAKERULES" ; then
- $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
- fi
-@@ -1950,10 +1942,11 @@
- AWK="$AWK"
- DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
- DFT_LWR_MODEL="$DFT_LWR_MODEL"
--ECHO_LINK="$ECHO_LINK"
-+ECHO_LD="$ECHO_LD"
- LDCONFIG="$LDCONFIG"
- LIBTOOL_VERSION="$LIBTOOL_VERSION"
- LIB_NAME="$LIB_NAME"
-+LIB_PREFIX="$LIB_PREFIX"
- LIB_SUBSETS="$LIB_SUBSETS"
- LIB_SUFFIX="$LIB_SUFFIX"
- LIB_TRACING="$LIB_TRACING"
-@@ -1975,7 +1968,7 @@
- TINFO_SUFFIX="$TINFO_SUFFIX"
- USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
- WITH_CURSES_H="$with_curses_h"
--WITH_ECHO="$with_echo"
-+WITH_ECHO="${enable_echo:=yes}"
- WITH_OVERWRITE="$with_overwrite"
- cf_LIST_MODELS="$cf_list_models"
- cf_cv_abi_version="$cf_cv_abi_version"
-@@ -1985,16 +1978,19 @@
- cf_cv_enable_opaque="$cf_cv_enable_opaque"
- cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
- cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
-+cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
- cf_cv_rel_version="$cf_cv_rel_version"
- cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
- cf_cv_shared_soname='$cf_cv_shared_soname'
- cf_cv_shlib_version="$cf_cv_shlib_version"
- cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
- cf_cv_system_name="$cf_cv_system_name"
-+cf_cv_term_driver="$with_term_driver"
- cf_with_ada="$cf_with_ada"
- cf_with_cxx_binding="$cf_with_cxx_binding"
- cf_with_manpages="$cf_with_manpages"
- cf_with_tests="$cf_with_tests"
-+with_shared_cxx="$with_shared_cxx"
- host="$host"
- target="$target"
-
-Index: dist.mk
-Prereq: 1.810
---- ncurses-5.9/dist.mk 2011-04-04 22:42:20.000000000 +0000
-+++ ncurses-5.9-20130504/dist.mk 2013-05-04 14:55:13.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -25,7 +25,7 @@
- # use or other dealings in this Software without prior written #
- # authorization. #
- ##############################################################################
--# $Id: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $
-+# $Id: dist.mk,v 1.926 2013/05/04 14:55:13 tom Exp $
- # Makefile for creating ncurses distributions.
- #
- # This only needs to be used directly as a makefile by developers, but
-@@ -37,7 +37,7 @@
- # These define the major/minor/patch versions of ncurses.
- NCURSES_MAJOR = 5
- NCURSES_MINOR = 9
--NCURSES_PATCH = 20110404
-+NCURSES_PATCH = 20130504
-
- # We don't append the patch to the version, since this only applies to releases
- VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
-Index: doc/html/man/adacurses-config.1.html
---- ncurses-5.9/doc/html/man/adacurses-config.1.html 2011-04-04 22:46:28.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/adacurses-config.1.html 2013-03-09 22:11:58.000000000 +0000
-@@ -83,7 +83,7 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/captoinfo.1m.html
---- ncurses-5.9/doc/html/man/captoinfo.1m.html 2011-04-04 22:46:28.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/captoinfo.1m.html 2013-03-09 22:11:58.000000000 +0000
-@@ -87,8 +87,8 @@
-
- </PRE>
- <H2>FILES</H2><PRE>
-- /usr/share/terminfo Compiled terminal description
-- database.
-+ /usr/share/terminfo Compiled terminal description data-
-+ base.
-
-
- </PRE>
-@@ -101,7 +101,6 @@
- has not mistakenly translated a completely unknown and
- random capability and/or syntax error.
-
--
- Nonstd Std From Terminfo
- name name capability
- -----------------------------------------------
-@@ -116,8 +115,8 @@
- EN @7 XENIX key_end
- GE ae XENIX exit_alt_charset_mode
- GS as XENIX enter_alt_charset_mode
--
- HM kh XENIX key_home
-+
- LD kL XENIX key_dl
- PD kN XENIX key_npage
- PN po XENIX prtr_off
-@@ -139,7 +138,6 @@
- bilities for forms drawing, designed to take advantage of
- the IBM PC high-half graphics. They were as follows:
-
--
- Cap Graphic
- -----------------------------
- G2 upper left
-@@ -182,7 +180,6 @@
- font0 s0ds
- font1 s1ds
- font2 s2ds
--
- font3 s3ds
-
- Additionally, the AIX <EM>box1</EM> capability will be automati-
-@@ -208,7 +205,7 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
- </PRE>
-Index: doc/html/man/clear.1.html
---- ncurses-5.9/doc/html/man/clear.1.html 2011-04-04 22:46:28.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/clear.1.html 2013-03-09 22:11:58.000000000 +0000
-@@ -69,7 +69,7 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/curs_add_wch.3x.html
---- ncurses-5.9/doc/html/man/curs_add_wch.3x.html 2011-02-25 23:24:49.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_add_wch.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_add_wch.3x,v 1.14 2011/01/15 15:27:43 tom Exp @
-+ * @Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -77,17 +77,17 @@
- ous character at that location is removed. A new
- character specified by <EM>wch</EM> is placed at that location
- with rendition specified by <EM>wch</EM>. The cursor then
-- advances to the next spacing character on the screen.
-+ advances to the next spacing character on the screen.
-
- <STRONG>o</STRONG> If <EM>wch</EM> refers to a non-spacing character, all previous
-- characters at that location are preserved. The non-
-- spacing characters of <EM>wch</EM> are added to the spacing
-- complex character, and the rendition specified by <EM>wch</EM>
-+ characters at that location are preserved. The non-
-+ spacing characters of <EM>wch</EM> are added to the spacing
-+ complex character, and the rendition specified by <EM>wch</EM>
- is ignored.
-
-- <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline,
-- backspace or other control character, the window is
-- updated and the cursor moves as if <STRONG>addch</STRONG> were called.
-+ <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline,
-+ backspace or other control character, the window is
-+ updated and the cursor moves as if <STRONG>addch</STRONG> were called.
-
- The <STRONG>echo_wchar</STRONG> function is functionally equivalent to a
- call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>. Similarly,
-@@ -104,15 +104,14 @@
- characters. These symbols correspond to the same VT100
- line-drawing set as <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG>.
-
--
- <EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM>
- ----------------------------------------------------------------
- WACS_BLOCK 0x25ae # solid square block
- WACS_BOARD 0x2592 # board of squares
- WACS_BTEE 0x2534 + bottom tee
- WACS_BULLET 0x00b7 o bullet
--
- WACS_CKBOARD 0x2592 : checker board (stipple)
-+
- WACS_DARROW 0x2193 v arrow pointing down
- WACS_DEGREE 0x00b0 ' degree symbol
- WACS_DIAMOND 0x25c6 + diamond
-@@ -144,7 +143,6 @@
- The wide-character configuration of ncurses also defines
- symbols for thick- and double-lines:
-
--
- <EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM>
- ---------------------------------------------------------------------
- WACS_T_ULCORNER 0x250f + thick upper left corner
-@@ -172,7 +170,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
- success.
-
-Index: doc/html/man/curs_add_wchstr.3x.html
---- ncurses-5.9/doc/html/man/curs_add_wchstr.3x.html 2011-01-09 01:03:05.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_add_wchstr.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_add_wchstr.3x,v 1.9 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -47,7 +47,7 @@
-
- </PRE>
- <H2>NAME</H2><PRE>
-- <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>,
-+ <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>,
- <STRONG>mvadd_wchstr</STRONG>, <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>, <STRONG>mvwadd_wchnstr</STRONG>
- - add an array of complex characters (and attributes) to a
- curses window
-@@ -69,39 +69,42 @@
-
- </PRE>
- <H2>DESCRIPTION</H2><PRE>
-- These routines copy the array of complex characters <EM>wchstr</EM>
-- into the window image structure at and after the current
-- cursor position. The four routines with <EM>n</EM> as the last
-- argument copy at most <EM>n</EM> elements, but no more than will
-- fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is copied,
-- to the maximum number of characters that will fit on the
-- line.
--
-- The window cursor is <EM>not</EM> advanced. These routines work
-- faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per-
-- form checking (such as for the newline, backspace, or car-
-- riage return characters), they do not advance the current
-- cursor position, they do not expand other control charac-
-- ters to ^-escapes, and they truncate the string if it
-- crosses the right margin, rather than wrapping it around
-- to the new line.
--
-- These routines end successfully on encountering a null
-- <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line. If a
-- complex character cannot completely fit at the end of the
-- current line, the remaining columns are filled with the
-+ These functions copy the (null-terminated) array of com-
-+ plex characters <EM>wchstr</EM> into the window image structure
-+ starting at the current cursor position. The four func-
-+ tions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
-+ but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
-+ whole array is copied, to the maximum number of characters
-+ that will fit on the line.
-+
-+ The window cursor is <EM>not</EM> advanced. These functions work
-+ faster than <STRONG>waddnstr</STRONG>. On the other hand:
-+
-+ <STRONG>o</STRONG> they do not perform checking (such as for the newline,
-+ backspace, or carriage return characters),
-+
-+ <STRONG>o</STRONG> they do not advance the current cursor position,
-+
-+ <STRONG>o</STRONG> they do not expand other control characters to ^-es-
-+ capes, and
-+
-+ <STRONG>o</STRONG> they truncate the string if it crosses the right mar-
-+ gin, rather than wrapping it around to the new line.
-+
-+ These functions end successfully on encountering a null
-+ <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line. If a
-+ complex character cannot completely fit at the end of the
-+ current line, the remaining columns are filled with the
- background character and rendition.
-
-
- </PRE>
--<H2>NOTES</H2><PRE>
-- All functions except <STRONG>wadd_wchnstr</STRONG> may be macros.
-+<H2>RETURN VALUE</H2><PRE>
-+ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
-+ on success.
-
--
--</PRE>
--<H2>RETURN VALUES</H2><PRE>
-- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
-- success.
-+ X/Open does not define any error conditions. This imple-
-+ mentation returns an error if the window pointer is null.
-
- Functions with a "mv" prefix first perform a cursor move-
- ment using <STRONG>wmove</STRONG>, and return an error if the position is
-@@ -109,14 +112,22 @@
-
-
- </PRE>
-+<H2>NOTES</H2><PRE>
-+ All functions except <STRONG>wadd_wchnstr</STRONG> may be macros.
-+
-+
-+</PRE>
- <H2>PORTABILITY</H2><PRE>
-- All these entry points are described in the XSI Curses
-- standard, Issue 4.
-+ These entry points are described in the XSI Curses stan-
-+ dard, Issue 4.
-
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
-+ <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
-+
-+ Comparable functions in the narrow-character (ncurses) li-
-+ brary are described in <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>.
-
-
-
-Index: doc/html/man/curs_addch.3x.html
---- ncurses-5.9/doc/html/man/curs_addch.3x.html 2011-02-25 23:24:50.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_addch.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -112,9 +112,8 @@
- characters to the screen with routines of the <STRONG>addch</STRONG> fam-
- ily. The default character listed below is used if the
- <STRONG>acsc</STRONG> capability does not define a terminal-specific
-- replacement for it. The names are taken from VT100
-- nomenclature.
--
-+ replacement for it. The names are taken from VT100 nomen-
-+ clature.
-
- <EM>Name</EM> <EM>Default</EM> <EM>Description</EM>
- --------------------------------------------------
-Index: doc/html/man/curs_addchstr.3x.html
---- ncurses-5.9/doc/html/man/curs_addchstr.3x.html 2011-01-09 01:03:04.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_addchstr.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_addchstr.3x,v 1.15 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -62,62 +62,63 @@
- <STRONG>int</STRONG> <STRONG>waddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvaddchstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvaddchnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
-- <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG>
-- <STRONG>*chstr);</STRONG>
-- <STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG>
-- <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
-+ <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
-+ <STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
-
-
- </PRE>
- <H2>DESCRIPTION</H2><PRE>
-- These routines copy <EM>chstr</EM> into the window image structure
-- at and after the current cursor position. The four rou-
-- tines with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
-- but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
-- whole string is copied, to the maximum number of charac-
-- ters that will fit on the line.
--
-- The window cursor is <EM>not</EM> advanced, and these routines work
-- faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per-
-- form any kind of checking (such as for the newline,
-- backspace, or carriage return characters), they do not ad-
-- vance the current cursor position, they do not expand oth-
-- er control characters to ^-escapes, and they truncate the
-- string if it crosses the right margin, rather than wrap-
-- ping it around to the new line.
-+ These functions copy the (null-terminated) <EM>chstr</EM> array in-
-+ to the window image structure starting at the current cur-
-+ sor position. The four functions with <EM>n</EM> as the last argu-
-+ ment copy at most <EM>n</EM> elements, but no more than will fit on
-+ the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is copied, to the
-+ maximum number of characters that will fit on the line.
-+
-+ The window cursor is <EM>not</EM> advanced. These functions work
-+ faster than <STRONG>waddnstr</STRONG>. On the other hand:
-+
-+ <STRONG>o</STRONG> they do not perform checking (such as for the newline,
-+ backspace, or carriage return characters),
-+
-+ <STRONG>o</STRONG> they do not advance the current cursor position,
-+
-+ <STRONG>o</STRONG> they do not expand other control characters to ^-es-
-+ capes, and
-+
-+ <STRONG>o</STRONG> they truncate the string if it crosses the right mar-
-+ gin, rather than wrapping it around to the new line.
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
-- success (the SVr4 manuals specify only "an integer value
-- other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
-- wise noted in the preceding routine descriptions.
-+<H2>RETURN VALUE</H2><PRE>
-+ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
-+ on success.
-
-- X/Open does not define any error conditions. This imple-
-+ X/Open does not define any error conditions. This imple-
- mentation returns an error if the window pointer is null.
-
-- Functions with a "mv" prefix first perform a cursor move-
-- ment using <STRONG>wmove</STRONG>, and return an error if the position is
-+ Functions with a "mv" prefix first perform a cursor move-
-+ ment using <STRONG>wmove</STRONG>, and return an error if the position is
- outside the window, or if the window pointer is null.
-
-
- </PRE>
- <H2>NOTES</H2><PRE>
-- Note that all routines except <STRONG>waddchnstr</STRONG> may be macros.
-+ All functions except <STRONG>waddchnstr</STRONG> may be macros.
-
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- These entry points are described in the XSI Curses stan-
-+ These entry points are described in the XSI Curses stan-
- dard, Issue 4.
-
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
-+ <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
-
-- Comparable functions in the wide-character (ncursesw) li-
-+ Comparable functions in the wide-character (ncursesw) li-
- brary are described in <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>.
-
-
-Index: doc/html/man/curs_addstr.3x.html
---- ncurses-5.9/doc/html/man/curs_addstr.3x.html 2011-01-09 01:03:05.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_addstr.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_addstr.3x,v 1.16 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -68,26 +68,32 @@
-
- </PRE>
- <H2>DESCRIPTION</H2><PRE>
-- These routines write the characters of the (null-terminat-
-- ed) character string <EM>str</EM> on the given window. It is simi-
-- lar to calling <STRONG>waddch</STRONG> once for each character in the
-- string. The four routines with <EM>n</EM> as the last argument
-- write at most <EM>n</EM> characters. If <EM>n</EM> is -1, then the entire
-- string will be added, up to the maximum number of charac-
-- ters that will fit on the line, or until a terminating
-- null is reached.
-+ These functions write the (null-terminated) character
-+ string <EM>str</EM> on the given window. It is similar to calling
-+ <STRONG>waddch</STRONG> once for each character in the string.
-+
-+ The <EM>mv</EM> functions perform cursor movement once, before
-+ writing any characters. Thereafter, the cursor is ad-
-+ vanced as a side-effect of writing to the window.
-+
-+ The four functions with <EM>n</EM> as the last argument write at
-+ most <EM>n</EM> characters, or until a terminating null is reached.
-+ If <EM>n</EM> is -1, then the entire string will be added.
-
-
- </PRE>
- <H2>RETURN VALUE</H2><PRE>
-- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
-- success (the SVr4 manuals specify only "an integer value
-- other than <STRONG>ERR</STRONG>") upon successful completion.
-+ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
-+ on success.
-
- X/Open does not define any error conditions. This imple-
-- mentation returns an error if the window pointer is null
-- or if the string pointer is null or if the corresponding
-- calls to <STRONG>waddch</STRONG> return an error.
-+ mentation returns an error
-+
-+ <STRONG>o</STRONG> if the window pointer is null or
-+
-+ <STRONG>o</STRONG> if the string pointer is null or
-+
-+ <STRONG>o</STRONG> if the corresponding calls to <STRONG>waddch</STRONG> return an error.
-
- Functions with a "mv" prefix first perform a cursor move-
- ment using <STRONG>wmove</STRONG>, and return an error if the position is
-@@ -96,16 +102,13 @@
-
- </PRE>
- <H2>NOTES</H2><PRE>
-- Note that all of these routines except <STRONG>waddstr</STRONG> and
-- <STRONG>waddnstr</STRONG> may be macros.
-+ All of these functions except <STRONG>waddnstr</STRONG> may be macros.
-
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- All these entry points are described in the XSI Curses
-- standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW,
-- associated with extended-level conformance, are not yet
-- detected.
-+ These functions are described in the XSI Curses standard,
-+ Issue 4.
-
-
- </PRE>
-Index: doc/html/man/curs_addwstr.3x.html
---- ncurses-5.9/doc/html/man/curs_addwstr.3x.html 2011-01-09 01:03:05.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_addwstr.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_addwstr.3x,v 1.10 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -68,43 +68,51 @@
-
- </PRE>
- <H2>DESCRIPTION</H2><PRE>
-- These routines write the characters of the (null-terminat-
-- ed) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window. It
-- is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t in
-- the string, then calling <STRONG>wadd_wch</STRONG> for the resulting
-+ These functions write the characters of the (null-termi-
-+ nated) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window.
-+ It is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t
-+ in the string, then calling <STRONG>wadd_wch</STRONG> for the resulting
- <STRONG>cchar_t</STRONG>.
-
-- The <EM>mv</EM> routines perform cursor movement once, before writ-
-- ing any characters. Thereafter, the cursor is advanced as
-- a side-effect of writing to the window.
-+ The <EM>mv</EM> functions perform cursor movement once, before
-+ writing any characters. Thereafter, the cursor is ad-
-+ vanced as a side-effect of writing to the window.
-
-- The four routines with <EM>n</EM> as the last argument write at
-- most <EM>n</EM> <STRONG>wchar_t</STRONG> characters. If <EM>n</EM> is -1, then the entire
-- string will be added, up to the maximum number of charac-
-- ters that will fit on the line, or until a terminating
-- null is reached.
-+ The four functions with <EM>n</EM> as the last argument write at
-+ most <EM>n</EM> <STRONG>wchar_t</STRONG> characters, or until a terminating null is
-+ reached. If <EM>n</EM> is -1, then the entire string will be
-+ added.
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
-- success.
-+<H2>RETURN VALUE</H2><PRE>
-+ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
-+ on success.
-
-- Functions with a "mv" prefix first perform a cursor move-
-- ment using <STRONG>wmove</STRONG>, and return an error if the position is
-+ X/Open does not define any error conditions. This imple-
-+ mentation returns an error
-+
-+ <STRONG>o</STRONG> if the window pointer is null or
-+
-+ <STRONG>o</STRONG> if the string pointer is null or
-+
-+ <STRONG>o</STRONG> if the corresponding calls to <STRONG>wadd_wch</STRONG> return an er-
-+ ror.
-+
-+ Functions with a "mv" prefix first perform a cursor move-
-+ ment using <STRONG>wmove</STRONG>, and return an error if the position is
- outside the window, or if the window pointer is null.
-
-
- </PRE>
- <H2>NOTES</H2><PRE>
-- Note that all of these routines except <STRONG>waddnwstr</STRONG> may be
-- macros.
-+ All of these functions except <STRONG>waddnwstr</STRONG> may be macros.
-
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- All these entry points are described in the XSI Curses
-- standard, Issue 4.
-+ These functions are described in the XSI Curses standard,
-+ Issue 4.
-
-
- </PRE>
-Index: doc/html/man/curs_attr.3x.html
---- ncurses-5.9/doc/html/man/curs_attr.3x.html 2011-02-25 23:24:50.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_attr.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -148,7 +148,6 @@
- be passed to the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or
- OR'd with the characters passed to <STRONG>addch</STRONG>.
-
--
- <STRONG>A_NORMAL</STRONG> Normal display (no highlight)
- <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
- <STRONG>A_UNDERLINE</STRONG> Underlining
-@@ -211,7 +210,6 @@
- the screen when changing the attributes. Use <STRONG>touchwin</STRONG> to
- force the screen to match the updated attributes.
-
--
- <STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
- <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
- <STRONG>WA_UNDERLINE</STRONG> Underlining
-Index: doc/html/man/curs_bkgrnd.3x.html
---- ncurses-5.9/doc/html/man/curs_bkgrnd.3x.html 2011-01-09 01:03:06.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_bkgrnd.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_bkgrnd.3x,v 1.4 2010/12/04 18:49:20 tom Exp @
-+ * @Id: curs_bkgrnd.3x,v 1.5 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -102,7 +102,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines do not return a
- value.
-
-Index: doc/html/man/curs_border_set.3x.html
---- ncurses-5.9/doc/html/man/curs_border_set.3x.html 2011-01-22 21:01:21.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_border_set.3x.html 2013-03-09 22:11:58.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_border_set.3x,v 1.10 2011/01/15 12:56:18 tom Exp @
-+ * @Id: curs_border_set.3x,v 1.11 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -154,7 +154,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- Upon successful completion, these functions return <STRONG>OK</STRONG>.
- Otherwise, they return <STRONG>ERR</STRONG>.
-
-Index: doc/html/man/curs_get_wch.3x.html
---- ncurses-5.9/doc/html/man/curs_get_wch.3x.html 2010-09-18 21:35:17.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_get_wch.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_get_wch.3x,v 1.7 2010/08/14 23:31:42 tom Exp @
-+ * @Id: curs_get_wch.3x,v 1.8 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -122,7 +122,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> func-
- tions successfully report the pressing of a function key,
- they return <STRONG>KEY_CODE_YES</STRONG>. When they successfully report a
-Index: doc/html/man/curs_get_wstr.3x.html
---- ncurses-5.9/doc/html/man/curs_get_wstr.3x.html 2011-01-09 01:03:08.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_get_wstr.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_get_wstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_get_wstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -118,7 +118,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- All of these functions return <STRONG>OK</STRONG> upon successful comple-
- tion. Otherwise, they return <STRONG>ERR</STRONG>.
-
-Index: doc/html/man/curs_getcchar.3x.html
---- ncurses-5.9/doc/html/man/curs_getcchar.3x.html 2011-01-09 01:03:07.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_getcchar.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2001-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_getcchar.3x,v 1.15 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_getcchar.3x,v 1.16 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -128,7 +128,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- When <EM>wch</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of
- wide characters referenced by <EM>wcval</EM>, including one for a
- trailing null.
-Index: doc/html/man/curs_getch.3x.html
---- ncurses-5.9/doc/html/man/curs_getch.3x.html 2011-02-25 23:24:52.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_getch.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -2,7 +2,7 @@
- <!--
- * t
- ****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_getch.3x,v 1.36 2011/01/22 19:38:51 tom Exp @
-+ * @Id: curs_getch.3x,v 1.37 2012/07/07 20:04:56 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -110,7 +110,6 @@
- be returned by the next call to <STRONG>wgetch</STRONG>. There is just one
- input queue for all windows.
-
--
- <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
- The following function keys, defined in <STRONG>&lt;curses.h&gt;</STRONG>, might
- be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note
-@@ -179,8 +178,8 @@
- KEY_REPLACE Replace key
- KEY_RESIZE Screen resized
- KEY_RESTART Restart key
-- KEY_RESUME Resume key
-
-+ KEY_RESUME Resume key
- KEY_SAVE Save key
- KEY_SBEG Shifted beginning key
- KEY_SCANCEL Shifted cancel key
-@@ -233,21 +232,18 @@
- sion of <STRONG>KEY_MOUSE</STRONG>.
-
-
--
- </PRE>
- <H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an
- integer value other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of ungetch())
- upon successful completion.
-
-- <STRONG>ungetch</STRONG>
-- returns an error if there is no more room in
-- the FIFO.
--
-- <STRONG>wgetch</STRONG>
-- returns an error if the window pointer is
-- null, or if its timeout expires without having
-- any data.
-+ <STRONG>ungetch</STRONG>
-+ returns ERR if there is no more room in the FIFO.
-+
-+ <STRONG>wgetch</STRONG>
-+ returns ERR if the window pointer is null, or if
-+ its timeout expires without having any data.
-
- Functions with a "mv" prefix first perform a cursor move-
- ment using <STRONG>wmove</STRONG>, and return an error if the position is
-Index: doc/html/man/curs_in_wchstr.3x.html
---- ncurses-5.9/doc/html/man/curs_in_wchstr.3x.html 2011-01-09 01:03:10.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_in_wchstr.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_in_wchstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp @
-+ * @Id: curs_in_wchstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -90,7 +90,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- Upon successful completion, these functions return <STRONG>OK</STRONG>.
- Otherwise, they return <STRONG>ERR</STRONG>.
-
-Index: doc/html/man/curs_inopts.3x.html
---- ncurses-5.9/doc/html/man/curs_inopts.3x.html 2011-01-09 01:03:09.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_inopts.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp @
-+ * @Id: curs_inopts.3x,v 1.17 2012/04/28 19:09:15 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -229,24 +229,58 @@
- ty, set echo or noecho explicitly just after initializa-
- tion, even if your program remains in cooked mode.
-
-+ When <STRONG>keypad</STRONG> is first enabled, ncurses loads the key-defi-
-+ nitions for the current terminal description. If the ter-
-+ minal description includes extended string capabilities,
-+ e.g., from using the <STRONG>-x</STRONG> option of tic, then ncurses also
-+ defines keys for the capabilities whose names begin with
-+ "k". The corresponding keycodes are generated and (de-
-+ pending on previous loads of terminal descriptions) may
-+ differ from one execution of a program to the next. The
-+ generated keycodes are recognized by the <STRONG>keyname</STRONG> function
-+ (which will then return a name beginning with "k" denoting
-+ the terminfo capability name rather than "K", used for
-+ curses key-names). On the other hand, an application can
-+ use <STRONG>define_key</STRONG> to establish a specific keycode for a given
-+ string. This makes it possible for an application to
-+ check for an extended capability's presence with <EM>tigetstr</EM>,
-+ and reassign the keycode to match its own needs.
-+
-+ Low-level applications can use <STRONG>tigetstr</STRONG> to obtain the def-
-+ inition of any particular string capability. Higher-level
-+ applications which use the curses <STRONG>wgetch</STRONG> and similar func-
-+ tions to return keycodes rely upon the order in which the
-+ strings are loaded. If more than one key definition has
-+ the same string value, then <STRONG>wgetch</STRONG> can return only one
-+ keycode. Most curses implementations (including ncurses)
-+ load key definitions in the order defined by the array of
-+ string capability names. The last key to be loaded deter-
-+ mines the keycode which will be returned. In ncurses, you
-+ may also have extended capabilities interpreted as key
-+ definitions. These are loaded after the predefined keys,
-+ and if a capability's value is the same as a previously-
-+ loaded key definition, the later definition is the one
-+ used.
-+
-
- </PRE>
- <H2>NOTES</H2><PRE>
-- Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG>
-- <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG>
-+ Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG>
-+ <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG>
- may be macros.
-
- The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in
-- that they attempt to restore to normal (`cooked') mode
-- from raw and cbreak modes respectively. Mixing raw/noraw
-- and cbreak/nocbreak calls leads to tty driver control
-- states that are hard to predict or understand; it is not
-+ that they attempt to restore to normal (`cooked') mode
-+ from raw and cbreak modes respectively. Mixing raw/noraw
-+ and cbreak/nocbreak calls leads to tty driver control
-+ states that are hard to predict or understand; it is not
- recommended.
-
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>
-+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
-+ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>
-
-
-
-Index: doc/html/man/curs_ins_wstr.3x.html
---- ncurses-5.9/doc/html/man/curs_ins_wstr.3x.html 2011-01-09 01:03:10.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_ins_wstr.3x.html 2013-03-09 22:11:59.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_ins_wstr.3x,v 1.6 2010/12/04 18:38:55 tom Exp @
-+ * @Id: curs_ins_wstr.3x,v 1.7 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -102,7 +102,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- Upon successful completion, these functions return OK.
- Otherwise, they return ERR.
-
-Index: doc/html/man/curs_inwstr.3x.html
---- ncurses-5.9/doc/html/man/curs_inwstr.3x.html 2011-01-09 01:03:11.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_inwstr.3x.html 2013-03-09 22:12:00.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_inwstr.3x,v 1.7 2010/12/04 18:38:55 tom Exp @
-+ * @Id: curs_inwstr.3x,v 1.8 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -87,7 +87,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- All routines return <STRONG>ERR</STRONG> upon failure. Upon successful com-
- pletion, the *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the *<STRONG>innwstr</STRONG>
- routines return the number of characters read into the
-Index: doc/html/man/curs_mouse.3x.html
---- ncurses-5.9/doc/html/man/curs_mouse.3x.html 2011-02-25 23:24:55.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_mouse.3x.html 2013-03-09 22:12:00.000000000 +0000
-@@ -98,7 +98,6 @@
-
- Here are the mouse event type masks which may be defined:
-
--
- <EM>Name</EM> <EM>Description</EM>
- ---------------------------------------------------------------------
- BUTTON1_PRESSED mouse button 1 down
-@@ -111,10 +110,9 @@
- BUTTON2_RELEASED mouse button 2 up
- BUTTON2_CLICKED mouse button 2 clicked
- BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
--
--
- BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
- ---------------------------------------------------------------------
-+
- BUTTON3_PRESSED mouse button 3 down
- BUTTON3_RELEASED mouse button 3 up
- BUTTON3_CLICKED mouse button 3 clicked
-Index: doc/html/man/curs_sp_funcs.3x.html
---- ncurses-5.9/doc/html/man/curs_sp_funcs.3x.html 2011-02-25 23:24:57.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_sp_funcs.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -193,16 +193,15 @@
- functions which improve the ability to manage multiple
- screens. This feature can be added to any of the configu-
- rations supported by ncurses; it adds new entrypoints
-- without changing the meaning of any of the existing ones.
--
-+ without changing the meaning of any of the existing ones.
-
- <STRONG>IMPROVED</STRONG> <STRONG>FUNCTIONS</STRONG>
-- Most of the functions are new versions of existing func-
-+ Most of the functions are new versions of existing func-
- tions. A parameter is added at the front of the parameter
- list. It is a SCREEN pointer.
-
-- The existing functions all use the current screen, which
-- is a static variable. The extended functions use the
-+ The existing functions all use the current screen, which
-+ is a static variable. The extended functions use the
- specified screen, thereby reducing the number of variables
- which must be modified to update multiple screens.
-
-@@ -210,22 +209,22 @@
- Here are the new functions:
-
- ceiling_panel
-- this returns a pointer to the topmost panel in the
-+ this returns a pointer to the topmost panel in the
- given screen.
-
- ground_panel
-- this returns a pointer to the lowest panel in the
-+ this returns a pointer to the lowest panel in the
- given screen.
-
- new_prescr
-- when creating a new screen, the library uses static
-- variables which have been preset, e.g., by
-+ when creating a new screen, the library uses static
-+ variables which have been preset, e.g., by
- <STRONG><A HREF="use_env.3x.html">use_env(3x)</A></STRONG>, <STRONG><A HREF="filter.3x.html">filter(3x)</A></STRONG>, etc. With the screen-point-
- er extension, there are situations where it must cre-
-- ate a current screen before the unextended library
-- does. The <STRONG>new_prescr</STRONG> function is used internally to
-+ ate a current screen before the unextended library
-+ does. The <STRONG>new_prescr</STRONG> function is used internally to
- handle these cases. It is also provided as an entry-
-- point to allow applications to customize the library
-+ point to allow applications to customize the library
- initialization.
-
-
-@@ -234,37 +233,36 @@
- This extension introduces some new names:
-
- NCURSES_SP_FUNCS
-- This is set to the library patch-level number. In
-- the unextended library, this is zero (0), to make it
-+ This is set to the library patch-level number. In
-+ the unextended library, this is zero (0), to make it
- useful for checking if the extension is provided.
-
- NCURSES_SP_NAME
-- The new functions are named using the macro <EM>NCURS-</EM>
-- <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
-+ The new functions are named using the macro <EM>NCURS-</EM>
-+ <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
- Currently this adds a "_sp" suffix to the name of the
-- unextended function. This manual page indexes the
-+ unextended function. This manual page indexes the
- extensions showing the full name. However the proper
-- usage of these functions uses the macro, to provide
-+ usage of these functions uses the macro, to provide
- for the possibility of changing the naming convention
- for specific library configurations.
-
- NCURSES_SP_OUTC
-- This is a new function-pointer type to use in the
-- screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
-+ This is a new function-pointer type to use in the
-+ screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
- used in the unextended library.
-
- NCURSES_OUTC
-- This is a function-pointer type used for the cases
-- where a function passes characters to the output
-+ This is a function-pointer type used for the cases
-+ where a function passes characters to the output
- stream, e.g., <STRONG><A HREF="vidputs.3x.html">vidputs(3x)</A></STRONG>.
-
-
--
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- These routines are specific to ncurses. They were not
-- supported on Version 7, BSD or System V implementations.
-- It is recommended that any code depending on ncurses ex-
-+ These routines are specific to ncurses. They were not
-+ supported on Version 7, BSD or System V implementations.
-+ It is recommended that any code depending on ncurses ex-
- tensions be conditioned using <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>.
-
-
-Index: doc/html/man/curs_termattrs.3x.html
---- ncurses-5.9/doc/html/man/curs_termattrs.3x.html 2011-02-25 23:24:58.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_termattrs.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -111,11 +111,11 @@
-
- If a given terminal does not support a video attribute
- that an application program is trying to use, <STRONG>curses</STRONG> may
-- substitute a different video attribute for it. The
-- <STRONG>termattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of
-- all video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG>
-- and <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is use-
-- ful when a <STRONG>curses</STRONG> program needs complete control over the
-+ substitute a different video attribute for it. The <STRONG>ter-</STRONG>
-+ <STRONG>mattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of all
-+ video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG> and
-+ <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is useful
-+ when a <STRONG>curses</STRONG> program needs complete control over the
- appearance of the screen.
-
- The <STRONG>termname</STRONG> routine returns the terminal name used by
-Index: doc/html/man/curs_termcap.3x.html
---- ncurses-5.9/doc/html/man/curs_termcap.3x.html 2011-01-09 01:03:14.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_termcap.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_termcap.3x,v 1.26 2010/12/04 18:38:55 tom Exp @
-+ * @Id: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -79,39 +79,62 @@
- bilities of entries for which a terminfo entry has been
- compiled.
-
-- The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns
-- 1 on success, 0 if there is no such entry, and -1 if the
-- terminfo database could not be found. The emulation ig-
-- nores the buffer pointer <EM>bp</EM>.
-+ <STRONG>INITIALIZATION</STRONG>
-+ The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns:
-
-+ 1 on success,
-+
-+ 0 if there is no such entry (or that it is a generic
-+ type, having too little information for curses ap-
-+ plications to run), and
-+
-+ -1 if the terminfo database could not be found.
-+
-+ This differs from the <EM>termcap</EM> library in two ways:
-+
-+ <STRONG>o</STRONG> The emulation ignores the buffer pointer <EM>bp</EM>. The
-+ <EM>termcap</EM> library would store a copy of the terminal
-+ description in the area referenced by this pointer.
-+ However, ncurses stores its terminal descriptions
-+ in compiled binary form, which is not the same
-+ thing.
-+
-+ <STRONG>o</STRONG> There is a difference in return codes. The <EM>termcap</EM>
-+ library does not check if the terminal description
-+ is marked with the <EM>generic</EM> capability, or if the
-+ terminal description has cursor-addressing.
-+
-+ <STRONG>CAPABILITY</STRONG> <STRONG>VALUES</STRONG>
- The <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or ze-
- ro if it is not available.
-
-- The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1
-+ The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1
- if it is not available.
-
-- The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or
-- zero if it is not available. Use <STRONG>tputs</STRONG> to output the re-
-- turned string. The return value will also be copied to
-- the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be
-+ The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or
-+ zero if it is not available. Use <STRONG>tputs</STRONG> to output the re-
-+ turned string. The return value will also be copied to
-+ the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be
- updated to point past the null ending this value.
-
- Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tget-</STRONG>
- <STRONG>flag</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetstr</STRONG> are compared in lookups.
-
-- The <STRONG>tgoto</STRONG> routine instantiates the parameters into the
-- given capability. The output from this routine is to be
-+ <STRONG>FORMATTING</STRONG> <STRONG>CAPABILITIES</STRONG>
-+ The <STRONG>tgoto</STRONG> routine instantiates the parameters into the
-+ given capability. The output from this routine is to be
- passed to <STRONG>tputs</STRONG>.
-
-- The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
-+ The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- manual page. It can retrieve capabilities by either term-
- cap or terminfo name.
-
-+ <STRONG>GLOBAL</STRONG> <STRONG>VARIABLES</STRONG>
- The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the ter-
- minfo entry's data for <STRONG>pad_char</STRONG>, <STRONG>cursor_up</STRONG> and
-- <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> is not used by
-+ <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> is not used by
- ncurses. <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function. <STRONG>BC</STRONG> is
-- used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set
-+ used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set
- by ncurses in a system-specific coding to reflect the ter-
- minal speed.
-
-@@ -119,7 +142,7 @@
- </PRE>
- <H2>RETURN VALUE</H2><PRE>
- Except where explicitly noted, routines that return an in-
-- teger return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies
-+ teger return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies
- "an integer value other than <STRONG>ERR</STRONG>") upon successful comple-
- tion.
-
-@@ -129,55 +152,77 @@
- </PRE>
- <H2>BUGS</H2><PRE>
- If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized
-- string, be aware that it will be returned in terminfo no-
-+ string, be aware that it will be returned in terminfo no-
- tation, not the older and not-quite-compatible termcap no-
-- tation. This will not cause problems if all you do with
-- it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-
-- style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if con-
-- figured to support termcap, will check if the string is
-- indeed terminfo-style by looking for "%p" parameters or
-- "$&lt;..&gt;" delays, and invoke a termcap-style parser if the
-+ tation. This will not cause problems if all you do with
-+ it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-
-+ style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if con-
-+ figured to support termcap, will check if the string is
-+ indeed terminfo-style by looking for "%p" parameters or
-+ "$&lt;..&gt;" delays, and invoke a termcap-style parser if the
- string does not appear to be terminfo).
-
-- Because terminfo conventions for representing padding in
-- string capabilities differ from termcap's, <STRONG>tputs("50");</STRONG>
-- will put out a literal "50" rather than busy-waiting for
-+ Because terminfo conventions for representing padding in
-+ string capabilities differ from termcap's, <STRONG>tputs("50");</STRONG>
-+ will put out a literal "50" rather than busy-waiting for
- 50 milliseconds. Cope with it.
-
-- Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG>
-- string. One consequence of this is that termcap applica-
-- tions assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter-
-- nate character set. This implementation checks for, and
-+ Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG>
-+ string. One consequence of this is that termcap applica-
-+ tions assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter-
-+ nate character set. This implementation checks for, and
- modifies the data shown to the termcap interface to accom-
- modate termcap's limitation in this respect.
-
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- The XSI Curses standard, Issue 4 describes these func-
-- tions. However, they are marked TO BE WITHDRAWN and may
-+ The XSI Curses standard, Issue 4 describes these func-
-+ tions. However, they are marked TO BE WITHDRAWN and may
- be removed in future versions.
-
-- Neither the XSI Curses standard nor the SVr4 man pages
-- documented the return values of <STRONG>tgetent</STRONG> correctly, though
-- all three were in fact returned ever since SVr1. In par-
-- ticular, an omission in the XSI Curses documentation has
-- been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or
-+ Neither the XSI Curses standard nor the SVr4 man pages
-+ documented the return values of <STRONG>tgetent</STRONG> correctly, though
-+ all three were in fact returned ever since SVr1. In par-
-+ ticular, an omission in the XSI Curses documentation has
-+ been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or
- <STRONG>ERR</STRONG>. Because the purpose of these functions is to provide
-- compatibility with the <EM>termcap</EM> library, that is a defect
-+ compatibility with the <EM>termcap</EM> library, that is a defect
- in XCurses, Issue 4, Version 2 rather than in ncurses.
-
-- External variables are provided for support of certain
-- termcap applications. However, termcap applications' use
-+ External variables are provided for support of certain
-+ termcap applications. However, termcap applications' use
- of those variables is poorly documented, e.g., not distin-
-- guishing between input and output. In particular, some
-+ guishing between input and output. In particular, some
- applications are reported to declare and/or modify <STRONG>ospeed</STRONG>.
-
-+ The comment that only the first two characters of the <STRONG>id</STRONG>
-+ parameter are used escapes many application developers.
-+ The original BSD 4.2 termcap library (and historical
-+ relics thereof) did not require a trailing null NUL on the
-+ parameter name passed to <STRONG>tgetstr</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetflag</STRONG>.
-+ Some applications assume that the termcap interface does
-+ not require the trailing NUL for the parameter name. Tak-
-+ ing into account these issues:
-+
-+ <STRONG>o</STRONG> As a special case, <STRONG>tgetflag</STRONG> matched against a single-
-+ character identifier provided that was at the end of
-+ the terminal description. You should not rely upon
-+ this behavior in portable programs. This implementa-
-+ tion disallows matches against single-character capa-
-+ bility names.
-+
-+ <STRONG>o</STRONG> This implementation disallows matches by the termcap
-+ interface against extended capability names which are
-+ longer than two characters.
-+
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
-
-+ http://invisible-island.net/ncurses/tctest.html
-+
-
-
- <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
-Index: doc/html/man/curs_terminfo.3x.html
---- ncurses-5.9/doc/html/man/curs_terminfo.3x.html 2011-01-09 01:03:15.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_terminfo.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1999-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_terminfo.3x,v 1.35 2010/12/04 18:38:55 tom Exp @
-+ * @Id: curs_terminfo.3x,v 1.37 2013/01/12 18:11:40 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -68,7 +68,7 @@
- <STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>vidputs(chtype</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
- <STRONG>int</STRONG> <STRONG>vidattr(chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
-- <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(char));</STRONG>
-+ <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
- <STRONG>int</STRONG> <STRONG>vid_attr(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvcur(int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM>, int <EM>newcol</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>tigetflag(char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
-Index: doc/html/man/curs_threads.3x.html
---- ncurses-5.9/doc/html/man/curs_threads.3x.html 2011-01-09 01:03:15.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_threads.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp @
-+ * @Id: curs_threads.3x,v 1.19 2012/05/26 17:03:26 tom Exp @
- * ***************************************************************************
- * ***************************************************************************
- -->
-@@ -61,9 +61,9 @@
- <STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG>
- <STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <STRONG>size);</STRONG>
- <STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <STRONG>size);</STRONG>
-- <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
-+ <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
- <STRONG>*data);</STRONG>
-- <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
-+ <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
- <STRONG>*data);</STRONG>
-
-
-Index: doc/html/man/curs_util.3x.html
---- ncurses-5.9/doc/html/man/curs_util.3x.html 2011-02-25 23:24:59.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/curs_util.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -1,7 +1,8 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
-+ * t
- ****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: curs_util.3x,v 1.32 2010/12/04 18:38:55 tom Exp @
-+ * @Id: curs_util.3x,v 1.36 2012/07/21 18:51:10 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -48,8 +49,8 @@
- </PRE>
- <H2>NAME</H2><PRE>
- <STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>,
-- <STRONG>nofilter</STRONG>, <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous
-- <STRONG>curses</STRONG> utility routines
-+ <STRONG>nofilter</STRONG>, <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>use_tioctl</STRONG>, <STRONG>wunctrl</STRONG> -
-+ miscellaneous <STRONG>curses</STRONG> utility routines
-
-
- </PRE>
-@@ -63,6 +64,7 @@
- <STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
- <STRONG>void</STRONG> <STRONG>nofilter(void);</STRONG>
- <STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <STRONG>f);</STRONG>
-+ <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <STRONG>f);</STRONG>
- <STRONG>int</STRONG> <STRONG>putwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>FILE</STRONG> <STRONG>*filep);</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*getwin(FILE</STRONG> <STRONG>*filep);</STRONG>
- <STRONG>int</STRONG> <STRONG>delay_output(int</STRONG> <STRONG>ms);</STRONG>
-@@ -122,16 +124,66 @@
- <STRONG>$TERM</STRONG>. The limitation arises because the <STRONG>filter</STRONG> routine
- modifies the in-memory copy of the terminal information.
-
-- The <STRONG>use_env</STRONG> routine, if used, is called before <STRONG>initscr</STRONG> or
-- <STRONG>newterm</STRONG> are called. When called with <STRONG>FALSE</STRONG> as an argu-
-- ment, the values of <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the
-- <EM>terminfo</EM> database will be used, even if environment vari-
-- ables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> (used by default) are set, or if
-- <STRONG>curses</STRONG> is running in a window (in which case default be-
-- havior would be to use the window size if <STRONG>LINES</STRONG> and
-- <STRONG>COLUMNS</STRONG> are not set). Note that setting <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
-- overrides the corresponding size which may be obtained
-- from the operating system.
-+ The <STRONG>use_env</STRONG> routine, if used, should be called before
-+ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
-+ screen size). It modifies the way <STRONG>ncurses</STRONG> treats environ-
-+ ment variables when determining the screen size.
-+
-+ <STRONG>o</STRONG> Normally ncurses looks first at the terminal database
-+ for the screen size.
-+
-+ If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it
-+ stops here unless If <STRONG>use_tioctl</STRONG> was also called with
-+ <STRONG>TRUE</STRONG> for parameter.
-+
-+ <STRONG>o</STRONG> Then it asks for the screen size via operating system
-+ calls. If successful, it overrides the values from
-+ the terminal database.
-+
-+ <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parame-
-+ ter), ncurses examines the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environ-
-+ ment variables, using a value in those to override the
-+ results from the operating system or terminal data-
-+ base.
-+
-+ Ncurses also updates the screen size in response to
-+ SIGWINCH, unless overridden by the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
-+ environment variables,
-+
-+ The <STRONG>use_tioctl</STRONG> routine, if used, should be called before
-+ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
-+ screen size). After <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an
-+ argument, ncurses modifies the last step in its computa-
-+ tion of screen size as follows:
-+
-+ <STRONG>o</STRONG> checks if the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables
-+ are set to a number greater than zero.
-+
-+ <STRONG>o</STRONG> for each, ncurses updates the corresponding environ-
-+ ment variable with the value that it has obtained via
-+ operating system call or from the terminal database.
-+
-+ <STRONG>o</STRONG> ncurses re-fetches the value of the environment vari-
-+ ables so that it is still the environment variables
-+ which set the screen size.
-+
-+ The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as summarized
-+ here:
-+
-+ <EM>use</EM><STRONG>_</STRONG><EM>env</EM> <EM>use</EM><STRONG>_</STRONG><EM>tioctl</EM> <EM>Summary</EM>
-+ ----------------------------------------------------------------
-+ TRUE FALSE This is the default behavior. ncurses
-+ uses operating system calls unless over-
-+ ridden by $LINES or $COLUMNS environment
-+ variables.
-+ TRUE TRUE ncurses updates $LINES and $COLUMNS
-+ based on operating system calls.
-+
-+ FALSE TRUE ncurses ignores $LINES and $COLUMNS, us-
-+ es operating system calls to obtain
-+ size.
-+ FALSE FALSE ncurses relies on the terminal database
-+ to determine size.
-
- The <STRONG>putwin</STRONG> routine writes all data associated with window
- <EM>win</EM> into the file to which <EM>filep</EM> points. This information
-@@ -241,16 +293,17 @@
- loaded when the terminal description is read by the li-
- brary.
-
-- The <STRONG>nofilter</STRONG> routine is specific to ncurses. It was not
-- supported on Version 7, BSD or System V implementations.
-- It is recommended that any code depending on ncurses ex-
-- tensions be conditioned using NCURSES_VERSION.
-+ The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are specific to
-+ ncurses. They were not supported on Version 7, BSD or
-+ System V implementations. It is recommended that any code
-+ depending on ncurses extensions be conditioned using
-+ NCURSES_VERSION.
-
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(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>curs_ker-</STRONG>
-- <STRONG><A HREF="curs_kernel.3x.html">nel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>lega-</STRONG>
-+ <STRONG><A HREF="curs_kernel.3x.html">nel(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>lega-</STRONG>
- <STRONG><A HREF="legacy_coding.3x.html">cy_coding(3x)</A></STRONG>.
-
-
-Index: doc/html/man/form.3x.html
---- ncurses-5.9/doc/html/man/form.3x.html 2011-04-04 22:46:40.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/form.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -243,7 +243,7 @@
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/form_field.3x.html
---- ncurses-5.9/doc/html/man/form_field.3x.html 2011-01-09 01:03:18.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/form_field.3x.html 2013-03-09 22:12:01.000000000 +0000
-@@ -2,7 +2,7 @@
- <!--
- * t
- ****************************************************************************
-- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: form_field.3x,v 1.10 2010/12/04 18:40:45 tom Exp @
-+ * @Id: form_field.3x,v 1.11 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -78,7 +78,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- The function <STRONG>form_fields</STRONG> returns a pointer (which may be
- <STRONG>NULL</STRONG>). It does not set errno.
-
-Index: doc/html/man/form_field_buffer.3x.html
---- ncurses-5.9/doc/html/man/form_field_buffer.3x.html 2011-02-25 23:25:01.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/form_field_buffer.3x.html 2013-03-09 22:12:02.000000000 +0000
-@@ -151,8 +151,8 @@
- When configured for wide characters, <STRONG>field_buffer</STRONG> returns
- a pointer to temporary storage (allocated and freed by the
- library). The application should not attempt to modify
-- the data. It will be freed on the next call to
-- <STRONG>field_buffer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>.
-+ the data. It will be freed on the next call to <STRONG>field_buf-</STRONG>
-+ <STRONG>fer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
- </PRE>
-Index: doc/html/man/form_fieldtype.3x.html
---- ncurses-5.9/doc/html/man/form_fieldtype.3x.html 2011-02-25 23:25:02.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/form_fieldtype.3x.html 2013-03-09 22:12:02.000000000 +0000
-@@ -112,8 +112,8 @@
- <STRONG>REQ_PREV_CHOICE</STRONG> assume that the possible values of a field
- form an ordered set, and provide the forms user with a way
- to move through the set. The <STRONG>set_fieldtype_choice</STRONG> func-
-- tion allows forms programmers to define successor and
-- predecessor functions for the field type. These functions
-+ tion allows forms programmers to define successor and pre-
-+ decessor functions for the field type. These functions
- take the field pointer and an argument-block structure as
- arguments.
-
-Index: doc/html/man/infocmp.1m.html
---- ncurses-5.9/doc/html/man/infocmp.1m.html 2011-04-04 22:46:44.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/infocmp.1m.html 2013-03-09 22:12:03.000000000 +0000
-@@ -2,7 +2,7 @@
- <!--
- * t
- ****************************************************************************
-- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: infocmp.1m,v 1.46 2010/12/04 18:40:45 tom Exp @
-+ * @Id: infocmp.1m,v 1.53 2013/02/02 22:07:35 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -53,7 +53,7 @@
-
- </PRE>
- <H2>SYNOPSIS</H2><PRE>
-- <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTUVcdegilnpqrtux</STRONG>]
-+ <STRONG>infocmp</STRONG> [<STRONG>-1CDEFGIKLTUVcdegilnpqrtux</STRONG>]
- [<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>]
- [<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>]
- [<EM>termname</EM>...]
-@@ -72,76 +72,91 @@
- <STRONG>Default</STRONG> <STRONG>Options</STRONG>
- If no options are specified and zero or one <EM>termnames</EM> are
- specified, the <STRONG>-I</STRONG> option will be assumed. If more than
-- one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
-+ one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
-
- <STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG>
-- <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
-- terminal <EM>termname</EM> with each of the descriptions given by
-- the entries for the other terminal's <EM>termnames</EM>. If a
-- capability is defined for only one of the terminals, the
-- value returned will depend on the type of the capability:
-- <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
-+ <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
-+ terminal <EM>termname</EM> with each of the descriptions given by
-+ the entries for the other terminal's <EM>termnames</EM>. If a
-+ capability is defined for only one of the terminals, the
-+ value returned will depend on the type of the capability:
-+ <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
- <STRONG>NULL</STRONG> for string variables.
-
-- The <STRONG>-d</STRONG> option produces a list of each capability that is
-- different between two entries. This option is useful to
-- show the difference between two entries, created by dif-
-+ The <STRONG>-d</STRONG> option produces a list of each capability that is
-+ different between two entries. This option is useful to
-+ show the difference between two entries, created by dif-
- ferent people, for the same or similar terminals.
-
-- The <STRONG>-c</STRONG> option produces a list of each capability that is
-- common between two entries. Capabilities that are not set
-- are ignored. This option can be used as a quick check to
-- see if the <STRONG>-u</STRONG> option is worth using.
--
-- The <STRONG>-n</STRONG> option produces a list of each capability that is
-- in neither entry. If no <EM>termnames</EM> are given, the environ-
-- ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>.
-- This can be used as a quick check to see if anything was
-- left out of a description.
-+ The <STRONG>-c</STRONG> option produces a list of each capability that is
-+ common between two or more entries. Capabilities that are
-+ not set are ignored. This option can be used as a quick
-+ check to see if the <STRONG>-u</STRONG> option is worth using.
-+
-+ The <STRONG>-n</STRONG> option produces a list of each capability that is
-+ in none of the given entries. If no <EM>termnames</EM> are given,
-+ the environment variable <STRONG>TERM</STRONG> will be used for both of the
-+ <EM>termnames</EM>. This can be used as a quick check to see if
-+ anything was left out of a description.
-
- <STRONG>Source</STRONG> <STRONG>Listing</STRONG> <STRONG>Options</STRONG> <STRONG>[-I]</STRONG> <STRONG>[-L]</STRONG> <STRONG>[-C]</STRONG> <STRONG>[-r]</STRONG>
-- The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
-+ The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
- for each terminal named.
-
- <STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
- <STRONG>-L</STRONG> use the long C variable name listed in &lt;<STRONG>term.h</STRONG>&gt;
- <STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
- <STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
-+ <STRONG>-K</STRONG> modifies the <STRONG>-C</STRONG> option, improving BSD-compatibility.
-
-- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
-+ If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
- will be used for the terminal name.
-
-- The source produced by the <STRONG>-C</STRONG> option may be used directly
-- as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
-+ The source produced by the <STRONG>-C</STRONG> option may be used directly
-+ as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
- be changed to the <STRONG>termcap</STRONG> format. <STRONG>infocmp</STRONG> will attempt to
-- convert most of the parameterized information, and any-
-- thing not converted will be plainly marked in the output
-+ convert most of the parameterized information, and any-
-+ thing not converted will be plainly marked in the output
- and commented out. These should be edited by hand.
-
-- All padding information for strings will be collected
-- together and placed at the beginning of the string where
-- <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
-+ For best results when converting to <STRONG>termcap</STRONG> format, you
-+ should use both <STRONG>-C</STRONG> and <STRONG>-r</STRONG>. Normally a termcap description
-+ is limited to 1023 bytes. infocmp trims away less essen-
-+ tial parts to make it fit. If you are converting to one
-+ of the (rare) termcap implementations which accept an
-+ unlimited size of termcap, you may want to add the <STRONG>-T</STRONG>
-+ option. More often however, you must help the termcap
-+ implementation, and trim excess whitespace (use the <STRONG>-0</STRONG>
-+ option for that).
-+
-+ All padding information for strings will be collected
-+ together and placed at the beginning of the string where
-+ <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
- tion with a trailing '/') will become optional.
-
- All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but
- which are derivable from other <STRONG>terminfo</STRONG> variables, will be
- output. Not all <STRONG>terminfo</STRONG> capabilities will be translated;
-- only those variables which were part of <STRONG>termcap</STRONG> will nor-
-- mally be output. Specifying the <STRONG>-r</STRONG> option will take off
-- this restriction, allowing all capabilities to be output
-- in <EM>termcap</EM> form.
-+ only those variables which were part of <STRONG>termcap</STRONG> will nor-
-+ mally be output. Specifying the <STRONG>-r</STRONG> option will take off
-+ this restriction, allowing all capabilities to be output
-+ in <EM>termcap</EM> form. Normally you would use both the <STRONG>-C</STRONG> and
-+ <STRONG>-r</STRONG> options. The actual format used incorporates some
-+ improvements for escaped characters from terminfo format.
-+ For a stricter BSD-compatible translation, use the <STRONG>-K</STRONG>
-+ option rather than <STRONG>-C</STRONG>.
-
- Note that because padding is collected to the beginning of
-- the capability, not all capabilities are output. Manda-
-- tory padding is not supported. Because <STRONG>termcap</STRONG> strings
-- are not as flexible, it is not always possible to convert
-- a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
-- format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
-- into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
-+ the capability, not all capabilities are output. Manda-
-+ tory padding is not supported. Because <STRONG>termcap</STRONG> strings
-+ are not as flexible, it is not always possible to convert
-+ a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
-+ format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
-+ into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
- original <STRONG>terminfo</STRONG> source.
-
-- Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
-- equivalents, and some terminal types which commonly have
-+ Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
-+ equivalents, and some terminal types which commonly have
- such sequences, are:
-
- <STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
-@@ -154,66 +169,77 @@
- <STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG> <STRONG>%r</STRONG> hp
-
- <STRONG>Use=</STRONG> <STRONG>Option</STRONG> <STRONG>[-u]</STRONG>
-- The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
-- the first terminal <EM>termname</EM> which is relative to the sum
-- of the descriptions given by the entries for the other
-- terminals <EM>termnames</EM>. It does this by analyzing the dif-
-- ferences between the first <EM>termname</EM> and the other
-+ The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
-+ the first terminal <EM>termname</EM> which is relative to the sum
-+ of the descriptions given by the entries for the other
-+ terminals <EM>termnames</EM>. It does this by analyzing the dif-
-+ ferences between the first <EM>termname</EM> and the other
- <EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> fields for
-- the other terminals. In this manner, it is possible to
-- retrofit generic terminfo entries into a terminal's
-+ the other terminals. In this manner, it is possible to
-+ retrofit generic terminfo entries into a terminal's
- description. Or, if two similar terminals exist, but were
-- coded at different times or by different people so that
-+ coded at different times or by different people so that
- each description is a full description, using <STRONG>infocmp</STRONG> will
- show what can be done to change one description to be rel-
- ative to the other.
-
- A capability will get printed with an at-sign (@) if it no
-- longer exists in the first <EM>termname</EM>, but one of the other
-- <EM>termname</EM> entries contains a value for it. A capability's
-- value gets printed if the value in the first <EM>termname</EM> is
-- not found in any of the other <EM>termname</EM> entries, or if the
-+ longer exists in the first <EM>termname</EM>, but one of the other
-+ <EM>termname</EM> entries contains a value for it. A capability's
-+ value gets printed if the value in the first <EM>termname</EM> is
-+ not found in any of the other <EM>termname</EM> entries, or if the
- first of the other <EM>termname</EM> entries that has this capabil-
-- ity gives a different value for the capability than that
-+ ity gives a different value for the capability than that
- in the first <EM>termname</EM>.
-
-- The order of the other <EM>termname</EM> entries is significant.
-- Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
-+ The order of the other <EM>termname</EM> entries is significant.
-+ Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
- of the capabilities, specifying two <STRONG>use=</STRONG> entries that con-
- tain differing entries for the same capabilities will pro-
-- duce different results depending on the order that the
-- entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
-- sistencies between the other <EM>termname</EM> entries as they are
-+ duce different results depending on the order that the
-+ entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
-+ sistencies between the other <EM>termname</EM> entries as they are
- found.
-
-- Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
-+ Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
- that contains that capability will cause the second speci-
-- fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
-+ fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
- description can be a useful check to make sure that every-
-- thing was specified correctly in the original source
-+ thing was specified correctly in the original source
- description.
-
-- Another error that does not cause incorrect compiled
-- files, but will slow down the compilation time, is speci-
-- fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
-- will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
-+ Another error that does not cause incorrect compiled
-+ files, but will slow down the compilation time, is speci-
-+ fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
-+ will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
- needed.
-
- <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
-- The location of the compiled <STRONG>terminfo</STRONG> database is taken
-- from the environment variable <STRONG>TERMINFO</STRONG> . If the variable
-- is not defined, or the terminal is not found in that loca-
-- tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG>
-- <STRONG>minfo</STRONG>, will be used. The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to
-- override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
-- for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG>
-- for the other <EM>termnames</EM>. With this, it is possible to
-- compare descriptions for a terminal with the same name
-- located in two different databases. This is useful for
-- comparing descriptions for the same terminal created by
-- different people.
-+ Like other <STRONG>ncurses</STRONG> utilities, infocmp looks for the termi-
-+ nal descriptions in several places. You can use the <STRONG>TER-</STRONG>
-+ <STRONG>MINFO</STRONG> and <STRONG>TERMINFO_DIRS</STRONG> environment variables to override
-+ the compiled-in default list of places to search (see
-+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> for details).
-+
-+ You can also use the options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> to override the
-+ list of places to search when comparing terminal descrip-
-+ tions:
-+
-+ <STRONG>o</STRONG> The <STRONG>-A</STRONG> option sets the location for the first <EM>termname</EM>
-+
-+ <STRONG>o</STRONG> The <STRONG>-B</STRONG> option sets the location for the other
-+ <EM>termnames</EM>.
-+
-+ Using these options, it is possible to compare descrip-
-+ tions for a terminal with the same name located in two
-+ different databases. For instance, you can use this fea-
-+ ture for comparing descriptions for the same terminal cre-
-+ ated by different people.
-
- <STRONG>Other</STRONG> <STRONG>Options</STRONG>
-+ <STRONG>-0</STRONG> causes the fields to be printed on one line, without
-+ wrapping.
-+
- <STRONG>-1</STRONG> causes the fields to be printed out one to a line.
- Otherwise, the fields will be printed several to a
- line to a maximum width of 60 characters.
-@@ -222,67 +248,71 @@
- rather than discarding them. Capabilities are com-
- mented by prefixing them with a period.
-
-+ <STRONG>-D</STRONG> tells <STRONG>infocmp</STRONG> to print the database locations that it
-+ knows about, and exit.
-+
- <STRONG>-E</STRONG> Dump the capabilities of the given terminal as
-- tables, needed in the C initializer for a TERMTYPE
-- structure (the terminal capability structure in the
-- <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing ver-
-- sions of the curses library hardwired for a given
-- terminal type. The tables are all declared static,
-- and are named according to the type and the name of
-+ tables, needed in the C initializer for a TERMTYPE
-+ structure (the terminal capability structure in the
-+ <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing ver-
-+ sions of the curses library hardwired for a given
-+ terminal type. The tables are all declared static,
-+ and are named according to the type and the name of
- the corresponding terminal entry.
-
-- Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
-- options was not needed; but support for extended
-+ Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
-+ options was not needed; but support for extended
- names required making the arrays of terminal capabil-
- ities separate from the TERMTYPE structure.
-
-- <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
-- initializer for a TERMTYPE structure (the terminal
-- capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option
-+ <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
-+ initializer for a TERMTYPE structure (the terminal
-+ capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option
- is useful for preparing versions of the curses
- library hardwired for a given terminal type.
-
-- <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
-- lowing arguments are filenames. The files are
-- searched for pairwise matches between entries, with
-+ <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
-+ lowing arguments are filenames. The files are
-+ searched for pairwise matches between entries, with
- two entries considered to match if any of their names
-- do. The report printed to standard output lists
-- entries with no matches in the other file, and
-- entries with more than one match. For entries with
-- exactly one match it includes a difference report.
-- Normally, to reduce the volume of the report, use
-- references are not resolved before looking for dif-
-+ do. The report printed to standard output lists
-+ entries with no matches in the other file, and
-+ entries with more than one match. For entries with
-+ exactly one match it includes a difference report.
-+ Normally, to reduce the volume of the report, use
-+ references are not resolved before looking for dif-
- ferences, but resolution can be forced by also speci-
- fying <STRONG>-r</STRONG>.
-
-- <STRONG>-f</STRONG> Display complex terminfo strings which contain
-+ <STRONG>-f</STRONG> Display complex terminfo strings which contain
- if/then/else/endif expressions indented for readabil-
- ity.
-
- <STRONG>-G</STRONG> Display constant literals in decimal form rather than
- their character equivalents.
-
-- <STRONG>-g</STRONG> Display constant character literals in quoted form
-+ <STRONG>-g</STRONG> Display constant character literals in quoted form
- rather than their decimal equivalents.
-
- <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset
-- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
-- string, the code tries to analyze it into actions in
-+ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
-+ string, the code tries to analyze it into actions in
- terms of the other capabilities in the entry, certain
-- X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
-- VT-series private modes (the set of recognized spe-
-- cial sequences has been selected for completeness
-- over the existing terminfo database). Each report
-- line consists of the capability name, followed by a
-+ X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
-+ VT-series private modes (the set of recognized spe-
-+ cial sequences has been selected for completeness
-+ over the existing terminfo database). Each report
-+ line consists of the capability name, followed by a
- colon and space, followed by a printable expansion of
-- the capability string with sections matching recog-
-- nized actions translated into {}-bracketed descrip-
-- tions. Here is a list of the DEC/ANSI special
-+ the capability string with sections matching recog-
-+ nized actions translated into {}-bracketed descrip-
-+ tions. Here is a list of the DEC/ANSI special
- sequences recognized: i.
-
- Action Meaning
- -----------------------------------------
- RIS full reset
-+
- SC save cursor
- RC restore cursor
- LL home-down
-@@ -310,17 +340,16 @@
- DEC[+-]CKM application cursor keys
- DEC[+-]ANM set VT52 mode
- DEC[+-]COLM 132-column mode
--
- DEC[+-]SCLM smooth scroll
- DEC[+-]SCNM reverse video mode
- DEC[+-]OM origin mode
- DEC[+-]AWM wraparound mode
- DEC[+-]ARM auto-repeat mode
-
-- It also recognizes a SGR action corresponding to
-- ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
-- values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
-- All but NORMAL may be prefixed with `+' (turn on) or
-+ It also recognizes a SGR action corresponding to
-+ ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
-+ values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
-+ All but NORMAL may be prefixed with `+' (turn on) or
- `-' (turn off).
-
- An SGR0 designates an empty highlight sequence (equivalent
-@@ -398,18 +427,19 @@
-
- </PRE>
- <H2>FILES</H2><PRE>
-- /usr/share/terminfo Compiled terminal description
-- database.
-+ /usr/share/terminfo Compiled terminal description data-
-+ base.
-
-
- </PRE>
- <H2>EXTENSIONS</H2><PRE>
-- The <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
-- and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
-+ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>,
-+ <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG> and <STRONG>-t</STRONG> options are not supported in SVr4
-+ curses.
-
- The <STRONG>-r</STRONG> option's notion of `termcap' capabilities is System
-- V Release 4's. Actual BSD curses versions will have a
-- more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG>
-+ V Release 4's. Actual BSD curses versions will have a
-+ more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG>
- <STRONG>-RBSD</STRONG>.
-
-
-@@ -420,10 +450,12 @@
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
-+ <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ http://invisible-island.net/ncurses/tctest.html
-+
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
- </PRE>
-Index: doc/html/man/infotocap.1m.html
---- ncurses-5.9/doc/html/man/infotocap.1m.html 2011-04-04 22:46:44.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/infotocap.1m.html 2013-03-09 22:12:03.000000000 +0000
-@@ -80,8 +80,8 @@
-
- </PRE>
- <H2>FILES</H2><PRE>
-- /usr/share/terminfo Compiled terminal description
-- database.
-+ /usr/share/terminfo Compiled terminal description data-
-+ base.
-
-
- </PRE>
-@@ -94,7 +94,7 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
- </PRE>
-Index: doc/html/man/menu.3x.html
---- ncurses-5.9/doc/html/man/menu.3x.html 2011-04-04 22:46:45.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/menu.3x.html 2013-03-09 22:12:03.000000000 +0000
-@@ -226,7 +226,7 @@
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/menu_driver.3x.html
---- ncurses-5.9/doc/html/man/menu_driver.3x.html 2011-02-25 23:25:05.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/menu_driver.3x.html 2013-03-09 22:12:03.000000000 +0000
-@@ -119,8 +119,8 @@
- Clear the menu pattern buffer.
-
- REQ_BACK_PATTERN
-- Delete the previous character from the pattern
-- buffer.
-+ Delete the previous character from the pattern buf-
-+ fer.
-
- REQ_NEXT_MATCH
- Move to the next item matching the pattern match.
-@@ -128,20 +128,20 @@
- REQ_PREV_MATCH
- Move to the previous item matching the pattern match.
-
-- If the second argument is a printable character, the code
-- appends it to the pattern buffer and attempts to move to
-- the next item matching the new pattern. If there is no
-+ If the second argument is a printable character, the code
-+ appends it to the pattern buffer and attempts to move to
-+ the next item matching the new pattern. If there is no
- such match, <STRONG>menu_driver</STRONG> returns <STRONG>E_NO_MATCH</STRONG> and deletes the
- appended character from the buffer.
-
-- If the second argument is one of the above pre-defined
-+ If the second argument is one of the above pre-defined
- requests, the corresponding action is performed.
-
- <STRONG>MOUSE</STRONG> <STRONG>HANDLING</STRONG>
-- If the second argument is the KEY_MOUSE special key, the
-+ If the second argument is the KEY_MOUSE special key, the
- associated mouse event is translated into one of the above
-- pre-defined requests. Currently only clicks in the user
-- window (e.g., inside the menu display area or the decora-
-+ pre-defined requests. Currently only clicks in the user
-+ window (e.g., inside the menu display area or the decora-
- tion window) are handled.
-
- If you click above the display region of the menu:
-@@ -160,32 +160,32 @@
-
- <STRONG>o</STRONG> a REQ_LAST_ITEM is generated for a triple-click.
-
-- If you click at an item inside the display area of the
-+ If you click at an item inside the display area of the
- menu:
-
- <STRONG>o</STRONG> the menu cursor is positioned to that item.
-
-- <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen-
-+ <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen-
- erated and <STRONG>E_UNKNOWN_COMMAND</STRONG> is returned. This return
-- value makes sense, because a double click usually
-+ value makes sense, because a double click usually
- means that an item-specific action should be returned.
- It is exactly the purpose of this return value to sig-
-- nal that an application specific command should be
-+ nal that an application specific command should be
- executed.
-
-- <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG>
-+ <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG>
- returns the result of this request.
-
-- If you clicked outside the user window or the mouse event
-- could not be translated into a menu request an
-+ If you clicked outside the user window or the mouse event
-+ could not be translated into a menu request an
- <STRONG>E_REQUEST_DENIED</STRONG> is returned.
-
- <STRONG>APPLICATION-DEFINED</STRONG> <STRONG>COMMANDS</STRONG>
- If the second argument is neither printable nor one of the
-- above pre-defined menu requests or KEY_MOUSE, the drive
-- assumes it is an application-specific command and returns
-+ above pre-defined menu requests or KEY_MOUSE, the drive
-+ assumes it is an application-specific command and returns
- <STRONG>E_UNKNOWN_COMMAND</STRONG>. Application-defined commands should be
-- defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of
-+ defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of
- these pre-defined requests.
-
-
-@@ -199,7 +199,7 @@
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
-- Routine detected an incorrect or out-of-range argu-
-+ Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_BAD_STATE</STRONG>
-@@ -232,14 +232,14 @@
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- These routines emulate the System V menu library. They
-- were not supported on Version 7 or BSD versions. The sup-
-+ These routines emulate the System V menu library. They
-+ were not supported on Version 7 or BSD versions. The sup-
- port for mouse events is ncurses specific.
-
-
- </PRE>
- <H2>AUTHORS</H2><PRE>
-- Juergen Pfeifer. Manual pages and adaptation for new
-+ Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-Index: doc/html/man/menu_items.3x.html
---- ncurses-5.9/doc/html/man/menu_items.3x.html 2011-01-09 01:03:24.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/menu_items.3x.html 2013-03-09 22:12:03.000000000 +0000
-@@ -2,7 +2,7 @@
- <!--
- * t
- ****************************************************************************
-- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: menu_items.3x,v 1.9 2010/12/04 18:40:45 tom Exp @
-+ * @Id: menu_items.3x,v 1.10 2012/11/03 23:03:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -74,7 +74,7 @@
-
-
- </PRE>
--<H2>RETURN VALUES</H2><PRE>
-+<H2>RETURN VALUE</H2><PRE>
- The function <STRONG>menu_items</STRONG> returns a pointer (which may be
- <STRONG>NULL</STRONG>). It does not set errno.
-
-Index: doc/html/man/ncurses.3x.html
---- ncurses-5.9/doc/html/man/ncurses.3x.html 2011-04-04 22:46:49.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/ncurses.3x.html 2013-03-09 22:12:04.000000000 +0000
-@@ -2,7 +2,7 @@
- <!--
- * t
- ****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp @
-+ * @Id: ncurses.3x,v 1.111 2013/03/02 22:15:25 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -63,7 +63,7 @@
- sonable optimization. This implementation is ``new
- curses'' (ncurses) and is the approved replacement for
- 4.4BSD classic curses, which has been discontinued. This
-- describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
- The <STRONG>ncurses</STRONG> library emulates the curses library of System
- V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
-@@ -150,48 +150,48 @@
- Among those, the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
- More general versions of these routines are included with
- names beginning with <STRONG>w</STRONG>, allowing the user to specify a
-- window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
-+ window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
-
-- After using routines to manipulate a window, <STRONG>refresh</STRONG> is
-- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
-- like <STRONG>stdscr</STRONG>. The characters in a window are actually of
-- type <STRONG>chtype</STRONG>, (character and attribute data) so that other
-- information about the character may also be stored with
-+ After using routines to manipulate a window, <STRONG>refresh</STRONG> is
-+ called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
-+ like <STRONG>stdscr</STRONG>. The characters in a window are actually of
-+ type <STRONG>chtype</STRONG>, (character and attribute data) so that other
-+ information about the character may also be stored with
- each character.
-
-- Special windows called <EM>pads</EM> may also be manipulated.
-+ Special windows called <EM>pads</EM> may also be manipulated.
- These are windows which are not constrained to the size of
-- the screen and whose contents need not be completely dis-
-+ the screen and whose contents need not be completely dis-
- played. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more information.
-
-- In addition to drawing characters on the screen, video
-- attributes and colors may be supported, causing the char-
-- acters to show up in such modes as underlined, in reverse
-- video, or in color on terminals that support such display
-+ In addition to drawing characters on the screen, video
-+ attributes and colors may be supported, causing the char-
-+ acters to show up in such modes as underlined, in reverse
-+ video, or in color on terminals that support such display
- enhancements. Line drawing characters may be specified to
-- be output. On input, <STRONG>curses</STRONG> is also able to translate
-- arrow and function keys that transmit escape sequences
-- into single values. The video attributes, line drawing
-- characters, and input values use names, defined in
-+ be output. On input, <STRONG>curses</STRONG> is also able to translate
-+ arrow and function keys that transmit escape sequences
-+ into single values. The video attributes, line drawing
-+ characters, and input values use names, defined in
- <STRONG>&lt;curses.h&gt;</STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
-
- If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
-- if the program is executing in a window environment, line
-- and column information in the environment will override
-+ if the program is executing in a window environment, line
-+ and column information in the environment will override
- information read by <EM>terminfo</EM>. This would affect a program
-- running in an AT&amp;T 630 layer, for example, where the size
-+ running in an AT&amp;T 630 layer, for example, where the size
- of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
-
-- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
-- gram using <STRONG>curses</STRONG> checks for a local terminal definition
-- before checking in the standard place. For example, if
-+ If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
-+ gram using <STRONG>curses</STRONG> checks for a local terminal definition
-+ before checking in the standard place. For example, if
- <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini-
- tion is found in
-
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
-
- (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
-- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
-+ creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
- set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
-
- <STRONG>$HOME/myterms/a/att4424</STRONG>,
-@@ -200,119 +200,117 @@
-
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
-
-- This is useful for developing experimental definitions or
-+ This is useful for developing experimental definitions or
- when write permission in <STRONG>/usr/share/terminfo</STRONG> is not avail-
- able.
-
-- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
-- <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
-+ The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
-+ <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
- of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val-
- ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
-
-- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
-+ The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
- <STRONG>curscr</STRONG> which is used for certain low-level operations like
-- clearing and redrawing a screen containing garbage. The
-+ clearing and redrawing a screen containing garbage. The
- <STRONG>curscr</STRONG> can be used in only a few routines.
-
- <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
-- Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
-+ Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
- tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
- tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
- out a prefix generally use <STRONG>stdscr</STRONG>.
-
- The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
-- to move to before performing the appropriate action. The
-- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
-- other routine. The coordinate <EM>y</EM> always refers to the row
-- (of the window), and <EM>x</EM> always refers to the column. The
-+ to move to before performing the appropriate action. The
-+ <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
-+ other routine. The coordinate <EM>y</EM> always refers to the row
-+ (of the window), and <EM>x</EM> always refers to the column. The
- upper left-hand corner is always (0,0), not (1,1).
-
- The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
-- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
-+ and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
- specified before the coordinates.
-
-- In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
-+ In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
- pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG>
- <STRONG>DOW</STRONG>.
-
- Option setting routines require a Boolean flag <EM>bf</EM> with the
-- value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
-- the data types used in the library routines, such as <STRONG>WIN-</STRONG>
-- <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
-- Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
-+ value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
-+ the data types used in the library routines, such as <STRONG>WIN-</STRONG>
-+ <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
-+ Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
- defined in <STRONG>&lt;term.h&gt;</STRONG>.
-
-- This manual page describes functions which may appear in
-- any configuration of the library. There are two common
-+ This manual page describes functions which may appear in
-+ any configuration of the library. There are two common
- configurations of the library:
-
- ncurses
- the "normal" library, which handles 8-bit
- characters. The normal (8-bit) library stores
-- characters combined with attributes in <STRONG>chtype</STRONG>
-+ characters combined with attributes in <STRONG>chtype</STRONG>
- data.
-
-- Attributes alone (no corresponding character)
-- may be stored in <STRONG>chtype</STRONG> or the equivalent
-- <STRONG>attr_t</STRONG> data. In either case, the data is
-+ Attributes alone (no corresponding character)
-+ may be stored in <STRONG>chtype</STRONG> or the equivalent
-+ <STRONG>attr_t</STRONG> data. In either case, the data is
- stored in something like an integer.
-
-- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
-+ Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
- stored as a <STRONG>chtype</STRONG>.
-
- ncursesw
-- the so-called "wide" library, which handles
-- multibyte characters (see the section on
-+ the so-called "wide" library, which handles
-+ multibyte characters (see the section on
- <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide" library
-- includes all of the calls from the "normal"
-- library. It adds about one third more calls
-+ includes all of the calls from the "normal"
-+ library. It adds about one third more calls
- using data types which store multibyte charac-
- ters:
-
- <STRONG>cchar_t</STRONG>
-- corresponds to <STRONG>chtype</STRONG>. However it is a
-- structure, because more data is stored
-- than can fit into an integer. The char-
-+ corresponds to <STRONG>chtype</STRONG>. However it is a
-+ structure, because more data is stored
-+ than can fit into an integer. The char-
- acters are large enough to require a full
-- integer value - and there may be more
-- than one character per cell. The video
-- attributes and color are stored in sepa-
-+ integer value - and there may be more
-+ than one character per cell. The video
-+ attributes and color are stored in sepa-
- rate fields of the structure.
-
- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
- stored as a <STRONG>cchar_t</STRONG>.
-
- <STRONG>wchar_t</STRONG>
-- stores a "wide" character. Like <STRONG>chtype</STRONG>,
-+ stores a "wide" character. Like <STRONG>chtype</STRONG>,
- this may be an integer.
-
- <STRONG>wint_t</STRONG>
-- stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
-+ stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
- though both may have the same size.
-
- The "wide" library provides new functions
-- which are analogous to functions in the "nor-
-- mal" library. There is a naming convention
-- which relates many of the normal/wide vari-
-- ants: a "_w" is inserted into the name. For
-+ which are analogous to functions in the "nor-
-+ mal" library. There is a naming convention
-+ which relates many of the normal/wide vari-
-+ ants: a "_w" is inserted into the name. For
- example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
-
--
- <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
- The following table lists each <STRONG>curses</STRONG> routine and the name
-- of the manual page on which it is described. Routines
-- flagged with `*' are ncurses-specific, not described by
-+ of the manual page on which it is described. Routines
-+ flagged with `*' are ncurses-specific, not described by
- XPG4 or present in SVr4.
-
--
- <STRONG>curses</STRONG> Routine Name Manual Page Name
- --------------------------------------------
- COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
- PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
- _nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
--
- _nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
- _nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
-+
- _traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
- _traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
- _tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
-@@ -376,9 +374,9 @@
- echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
- echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
- echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
--
- endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
- erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
-+
- erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
- erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
- filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
-@@ -442,9 +440,9 @@
- intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
- inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
- is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
--
- is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
- is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
-+
- is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
- is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
- is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
-@@ -508,9 +506,9 @@
- mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
- mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
- mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
--
- mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
- mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
-+
- mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
- mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
- mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
-@@ -574,9 +572,9 @@
- pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
- pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
- pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
--
- prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
- printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
-+
- putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
- qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
-@@ -640,9 +638,9 @@
- tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
- touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
--
- touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
- tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
-+
- tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
- tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
-@@ -656,6 +654,7 @@
- use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
- use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
- use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
-+ use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
- vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
-@@ -706,8 +705,8 @@
- wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
- wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
- wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
--
- wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
-+
- wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
- whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
- whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
-@@ -752,11 +751,14 @@
-
- </PRE>
- <H2>RETURN VALUE</H2><PRE>
-- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
-- and an integer value other than <STRONG>ERR</STRONG> upon successful com-
-- pletion, unless otherwise noted in the routine descrip-
-+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure
-+ and an integer value other than <STRONG>ERR</STRONG> upon successful com-
-+ pletion, unless otherwise noted in the routine descrip-
- tions.
-
-+ As a general rule, routines check for null pointers passed
-+ as parameters, and handle this as an error.
-+
- All macros return the value of the <STRONG>w</STRONG> version, except
- <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
- return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
-@@ -773,52 +775,56 @@
- important ones have been already discussed in detail.
-
- BAUDRATE
-- The debugging library checks this environment symbol
-- when the application has redirected output to a file.
-- The symbol's numeric value is used for the baudrate.
-- If no value is found, <STRONG>ncurses</STRONG> uses 9600. This allows
-- testers to construct repeatable test-cases that take
-- into account costs that depend on baudrate.
-+ The debugging library checks this environment vari-
-+ able when the application has redirected output to a
-+ file. The variable's numeric value is used for the
-+ baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600.
-+ This allows testers to construct repeatable test-
-+ cases that take into account costs that depend on
-+ baudrate.
-
- CC When set, change occurrences of the command_character
-- (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
-- entries to the value of this symbol. Very few ter-
-+ (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
-+ entries to the value of this variable. Very few ter-
- minfo entries provide this feature.
-
-- Because this name is also used in development envi-
-- ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
-+ Because this name is also used in development envi-
-+ ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
- ignores it if it does not happen to be a single char-
- acter.
-
- COLUMNS
- Specify the width of the screen in characters.
-- Applications running in a windowing environment usu-
-- ally are able to obtain the width of the window in
-- which they are executing. If neither the <STRONG>COLUMNS</STRONG>
-- value nor the terminal's screen size is available,
-- <STRONG>ncurses</STRONG> uses the size which may be specified in the
-+ Applications running in a windowing environment usu-
-+ ally are able to obtain the width of the window in
-+ which they are executing. If neither the <STRONG>COLUMNS</STRONG>
-+ value nor the terminal's screen size is available,
-+ <STRONG>ncurses</STRONG> uses the size which may be specified in the
- terminfo database (i.e., the <STRONG>cols</STRONG> capability).
-
-- It is important that your application use a correct
-- size for the screen. This is not always possible
-- because your application may be running on a host
-- which does not honor NAWS (Negotiations About Window
-- Size), or because you are temporarily running as
-- another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
-+ It is important that your application use a correct
-+ size for the screen. This is not always possible
-+ because your application may be running on a host
-+ which does not honor NAWS (Negotiations About Window
-+ Size), or because you are temporarily running as
-+ another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
- overrides the library's use of the screen size
- obtained from the operating system.
-
-- Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
-- independently. This is mainly useful to circumvent
-- legacy misfeatures of terminal descriptions, e.g.,
-+ Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
-+ independently. This is mainly useful to circumvent
-+ legacy misfeatures of terminal descriptions, e.g.,
- xterm which commonly specifies a 65 line screen. For
-- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
-+ best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
- in a terminal description for terminals which are run
- as emulations.
-
- Use the <STRONG>use_env</STRONG> function to disable all use of exter-
-- nal environment (including system calls) to determine
-- the screen size.
-+ nal environment (but not including system calls) to
-+ determine the screen size. Use the <STRONG>use_tioctl</STRONG> func-
-+ tion to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen
-+ size obtained from system calls or the terminal data-
-+ base.
-
- ESCDELAY
- Specifies the total time, in milliseconds, for which
-@@ -858,234 +864,278 @@
-
- LINES
- Like COLUMNS, specify the height of the screen in
-- characters. See COLUMNS for a detailed description.
-+ characters. See COLUMNS for a detailed description.
-
- MOUSE_BUTTONS_123
- This applies only to the OS/2 EMX port. It specifies
-- the order of buttons on the mouse. OS/2 numbers a
-+ the order of buttons on the mouse. OS/2 numbers a
- 3-button mouse inconsistently from other platforms:
-
- 1 = left
- 2 = right
- 3 = middle.
-
-- This symbol lets you customize the mouse. The symbol
-- must be three numeric digits 1-3 in any order, e.g.,
-- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
-- 132.
-+ This variable lets you customize the mouse. The
-+ variable must be three numeric digits 1-3 in any
-+ order, e.g., 123 or 321. If it is not specified,
-+ <STRONG>ncurses</STRONG> uses 132.
-
- NCURSES_ASSUMED_COLORS
-- Override the compiled-in assumption that the termi-
-- nal's default colors are white-on-black (see
-- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
-- background color values with this environment vari-
-- able by proving a 2-element list: foreground,back-
-- ground. For example, to tell ncurses to not assume
-- anything about the colors, set this to "-1,-1". To
-- make it green-on-black, set it to "2,0". Any posi-
-+ Override the compiled-in assumption that the termi-
-+ nal's default colors are white-on-black (see
-+ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
-+ background color values with this environment vari-
-+ able by proving a 2-element list: foreground,back-
-+ ground. For example, to tell ncurses to not assume
-+ anything about the colors, set this to "-1,-1". To
-+ make it green-on-black, set it to "2,0". Any posi-
- tive value from zero to the terminfo <STRONG>max_colors</STRONG> value
- is allowed.
-
- NCURSES_GPM_TERMS
-- This applies only to ncurses configured to use the
-+ This applies only to ncurses configured to use the
- GPM interface.
-
- If present, the environment variable is a list of one
-- or more terminal names against which the TERM envi-
-- ronment variable is matched. Setting it to an empty
-- value disables the GPM interface; using the built-in
-+ or more terminal names against which the TERM envi-
-+ ronment variable is matched. Setting it to an empty
-+ value disables the GPM interface; using the built-in
- support for xterm, etc.
-
-- If the environment variable is absent, ncurses will
-+ If the environment variable is absent, ncurses will
- attempt to open GPM if TERM contains "linux".
-
- NCURSES_NO_HARD_TABS
-- <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
-- optimization. In some cases, your terminal driver
-- may not handle these properly. Set this environment
-+ <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
-+ optimization. In some cases, your terminal driver
-+ may not handle these properly. Set this environment
- variable to disable the feature. You can also adjust
- your <STRONG>stty</STRONG> settings to avoid the problem.
-
- NCURSES_NO_MAGIC_COOKIES
- Some terminals use a magic-cookie feature which
-- requires special handling to make highlighting and
-- other video attributes display properly. You can
-- suppress the highlighting entirely for these termi-
-+ requires special handling to make highlighting and
-+ other video attributes display properly. You can
-+ suppress the highlighting entirely for these termi-
- nals by setting this environment variable.
-
- NCURSES_NO_PADDING
-- Most of the terminal descriptions in the terminfo
-- database are written for real "hardware" terminals.
-- Many people use terminal emulators which run in a
-- windowing environment and use curses-based applica-
-- tions. Terminal emulators can duplicate all of the
-+ Most of the terminal descriptions in the terminfo
-+ database are written for real "hardware" terminals.
-+ Many people use terminal emulators which run in a
-+ windowing environment and use curses-based applica-
-+ tions. Terminal emulators can duplicate all of the
- important aspects of a hardware terminal, but they do
-- not have the same limitations. The chief limitation
-- of a hardware terminal from the standpoint of your
-+ not have the same limitations. The chief limitation
-+ of a hardware terminal from the standpoint of your
- application is the management of dataflow, i.e., tim-
- ing. Unless a hardware terminal is interfaced into a
-- terminal concentrator (which does flow control), it
-- (or your application) must manage dataflow, prevent-
-- ing overruns. The cheapest solution (no hardware
-+ terminal concentrator (which does flow control), it
-+ (or your application) must manage dataflow, prevent-
-+ ing overruns. The cheapest solution (no hardware
- cost) is for your program to do this by pausing after
-- operations that the terminal does slowly, such as
-+ operations that the terminal does slowly, such as
- clearing the display.
-
-- As a result, many terminal descriptions (including
-- the vt100) have delay times embedded. You may wish
-- to use these descriptions, but not want to pay the
-+ As a result, many terminal descriptions (including
-+ the vt100) have delay times embedded. You may wish
-+ to use these descriptions, but not want to pay the
- performance penalty.
-
-- Set the NCURSES_NO_PADDING symbol to disable all but
-- mandatory padding. Mandatory padding is used as a
-- part of special control sequences such as <EM>flash</EM>.
-+ Set the NCURSES_NO_PADDING environment variable to
-+ disable all but mandatory padding. Mandatory padding
-+ is used as a part of special control sequences such
-+ as <EM>flash</EM>.
-
- NCURSES_NO_SETBUF
-- Normally <STRONG>ncurses</STRONG> enables buffered output during ter-
-- minal initialization. This is done (as in SVr4
-- curses) for performance reasons. For testing pur-
-- poses, both of <STRONG>ncurses</STRONG> and certain applications, this
-- feature is made optional. Setting the
-- NCURSES_NO_SETBUF variable disables output buffering,
-- leaving the output in the original (usually line
-- buffered) mode.
-+ This setting is obsolete. Before changes
-+
-+ <STRONG>o</STRONG> started with 5.9 patch 20120825 and
-+
-+ <STRONG>o</STRONG> continued though 5.9 patch 20130126
-+
-+ <STRONG>ncurses</STRONG> enabled buffered output during terminal ini-
-+ tialization. This was done (as in SVr4 curses) for
-+ performance reasons. For testing purposes, both of
-+ <STRONG>ncurses</STRONG> and certain applications, this feature was
-+ made optional. Setting the NCURSES_NO_SETBUF vari-
-+ able disabled output buffering, leaving the output in
-+ the original (usually line buffered) mode.
-+
-+ In the current implementation, ncurses performs its
-+ own buffering and does not require this workaround.
-+ It does not modify the buffering of the standard out-
-+ put.
-+
-+ The reason for the change was to make the behavior
-+ for interrupts and other signals more robust. One
-+ drawback is that certain nonconventional programs
-+ would mix ordinary stdio calls with ncurses calls and
-+ (usually) work. This is no longer possible since
-+ ncurses is not using the buffered standard output but
-+ its own output (to the same file descriptor). As a
-+ special case, the low-level calls such as <STRONG>putp</STRONG> still
-+ use the standard output. But high-level curses calls
-+ do not.
-
- NCURSES_NO_UTF8_ACS
- During initialization, the <STRONG>ncurses</STRONG> library checks for
-- special cases where VT100 line-drawing (and the cor-
-- responding alternate character set capabilities)
-- described in the terminfo are known to be missing.
-- Specifically, when running in a UTF-8 locale, the
-- Linux console emulator and the GNU screen program
-- ignore these. Ncurses checks the TERM environment
-- variable for these. For other special cases, you
-- should set this environment variable. Doing this
-- tells ncurses to use Unicode values which correspond
-+ special cases where VT100 line-drawing (and the cor-
-+ responding alternate character set capabilities)
-+ described in the terminfo are known to be missing.
-+ Specifically, when running in a UTF-8 locale, the
-+ Linux console emulator and the GNU screen program
-+ ignore these. Ncurses checks the TERM environment
-+ variable for these. For other special cases, you
-+ should set this environment variable. Doing this
-+ tells ncurses to use Unicode values which correspond
- to the VT100 line-drawing glyphs. That works for the
- special cases cited, and is likely to work for termi-
- nal emulators.
-
-- When setting this variable, you should set it to a
-- nonzero value. Setting it to zero (or to a nonnum-
-- ber) disables the special check for "linux" and
-+ When setting this variable, you should set it to a
-+ nonzero value. Setting it to zero (or to a nonnum-
-+ ber) disables the special check for "linux" and
- "screen".
-
-- As an alternative to the environment variable,
-- ncurses checks for an extended terminfo capability
-- <STRONG>U8</STRONG>. This is a numeric capability which can be com-
-+ As an alternative to the environment variable,
-+ ncurses checks for an extended terminfo capability
-+ <STRONG>U8</STRONG>. This is a numeric capability which can be com-
- piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
-
- # linux console, if patched to provide working
- # VT100 shift-in/shift-out, with corresponding font.
- linux-vt100|linux console with VT100 line-graphics,
-- U8#0, use=linux,
-+ U8#0, use=linux,
-
- # uxterm with vt100Graphics resource set to false
- xterm-utf8|xterm relying on UTF-8 line-graphics,
-- U8#1, use=xterm,
-+ U8#1, use=xterm,
-
- The name "U8" is chosen to be two characters, to per-
-- mit it to be used by applications that use ncurses'
-+ mit it to be used by applications that use ncurses'
- termcap interface.
-
- NCURSES_TRACE
-- During initialization, the <STRONG>ncurses</STRONG> debugging library
-- checks the NCURSES_TRACE symbol. If it is defined,
-- to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
-- using that value as the argument.
--
-- The argument values, which are defined in <STRONG>curses.h</STRONG>,
-- provide several types of information. When running
-- with traces enabled, your application will write the
-+ During initialization, the <STRONG>ncurses</STRONG> debugging library
-+ checks the NCURSES_TRACE environment variable. If it
-+ is defined, to a numeric value, <STRONG>ncurses</STRONG> calls the
-+ <STRONG>trace</STRONG> function, using that value as the argument.
-+
-+ The argument values, which are defined in <STRONG>curses.h</STRONG>,
-+ provide several types of information. When running
-+ with traces enabled, your application will write the
- file <STRONG>trace</STRONG> to the current directory.
-
-- TERM Denotes your terminal type. Each terminal type is
-+ TERM Denotes your terminal type. Each terminal type is
- distinct, though many are similar.
-
- TERMCAP
- If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM>
-- <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
-+ <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
- description in termcap form if it is not available in
- the terminfo database.
-
-- The TERMCAP symbol contains either a terminal
-- description (with newlines stripped out), or a file
-- name telling where the information denoted by the
-- TERM symbol exists. In either case, setting it
-- directs <STRONG>ncurses</STRONG> to ignore the usual place for this
-- information, e.g., /etc/termcap.
-+ The TERMCAP environment variable contains either a
-+ terminal description (with newlines stripped out), or
-+ a file name telling where the information denoted by
-+ the TERM environment variable exists. In either
-+ case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual
-+ place for this information, e.g., /etc/termcap.
-
- TERMINFO
- Overrides the directory in which <STRONG>ncurses</STRONG> searches for
- your terminal description. This is the simplest, but
-- not the only way to change the list of directories.
-+ not the only way to change the list of directories.
- The complete list of directories in order follows:
-
-- <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
-+ <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
- any, is searched first
-
-- <STRONG>o</STRONG> the directory specified by the TERMINFO symbol
-+ <STRONG>o</STRONG> the directory specified by the TERMINFO environ-
-+ ment variable
-
- <STRONG>o</STRONG> $HOME/.terminfo
-
-- <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS symbol
-+ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environ-
-+ ment variable
-+
-+ <STRONG>o</STRONG> one or more directories whose names are config-
-+ ured and compiled into the ncurses library, i.e.,
-
-- <STRONG>o</STRONG> one or more directories whose names are config-
-- ured and compiled into the ncurses library, e.g.,
-- /usr/share/terminfo
-+ <STRONG>o</STRONG> /usr/local/ncurses/share/ter-
-+ minfo:/usr/share/terminfo (corresponding to
-+ the TERMINFO_DIRS variable)
-+
-+ <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the
-+ TERMINFO variable)
-
- TERMINFO_DIRS
-- Specifies a list of directories to search for termi-
-- nal descriptions. The list is separated by colons
-- (i.e., ":") on Unix, semicolons on OS/2 EMX. All of
-- the terminal descriptions are in terminfo form, which
-- makes a subdirectory named for the first letter of
-- the terminal names therein.
-+ Specifies a list of directories to search for termi-
-+ nal descriptions. The list is separated by colons
-+ (i.e., ":") on Unix, semicolons on OS/2 EMX.
-+
-+ All of the terminal descriptions are in terminfo
-+ form. Normally these are stored in a directory tree,
-+ using subdirectories named by the first letter of the
-+ terminal names therein.
-+
-+ If <STRONG>ncurses</STRONG> is built with a hashed database, then each
-+ entry in this list can also be the path of the corre-
-+ sponding database file.
-+
-+ If <STRONG>ncurses</STRONG> is built with a support for reading term-
-+ cap files directly, then an entry in this list may be
-+ the path of a termcap file.
-
- TERMPATH
-- If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
-- checks the TERMPATH symbol. This is a list of file-
-- names separated by spaces or colons (i.e., ":") on
-- Unix, semicolons on OS/2 EMX. If the TERMPATH symbol
-- is not set, <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
-- /usr/share/misc/termcap and $HOME/.termcap, in that
-+ If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
-+ checks the TERMPATH environment variable. This is a
-+ list of filenames separated by spaces or colons
-+ (i.e., ":") on Unix, semicolons on OS/2 EMX.
-+
-+ If the TERMPATH environment variable is not set,
-+ <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
-+ /usr/share/misc/termcap and $HOME/.termcap, in that
- order.
-
-- The library may be configured to disregard the following
-- variables when the current user is the superuser (root),
-- or if the application uses setuid or setgid permissions:
-- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
-+ The library may be configured to disregard the following
-+ variables when the current user is the superuser (root),
-+ or if the application uses setuid or setgid permissions:
-+
-+ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as
-+ $HOME.
-
-
- </PRE>
- <H2>ALTERNATE CONFIGURATIONS</H2><PRE>
-- Several different configurations are possible, depending
-- on the configure script options used when building
-- <STRONG>ncurses</STRONG>. There are a few main options whose effects are
-+ Several different configurations are possible, depending
-+ on the configure script options used when building
-+ <STRONG>ncurses</STRONG>. There are a few main options whose effects are
- visible to the applications developer using <STRONG>ncurses</STRONG>:
-
- --disable-overwrite
-- The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
-+ The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
- <STRONG>OPSIS</STRONG>:
-
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
-- This option is used to avoid filename conflicts when
-- <STRONG>ncurses</STRONG> is not the main implementation of curses of
-- the computer. If <STRONG>ncurses</STRONG> is installed disabling
-- overwrite, it puts its headers in a subdirectory,
-+ This option is used to avoid filename conflicts when
-+ <STRONG>ncurses</STRONG> is not the main implementation of curses of
-+ the computer. If <STRONG>ncurses</STRONG> is installed disabling
-+ overwrite, it puts its headers in a subdirectory,
- e.g.,
-
- <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>
-
-- It also omits a symbolic link which would allow you
-+ It also omits a symbolic link which would allow you
- to use <STRONG>-lcurses</STRONG> to build executables.
-
- --enable-widec
-- The configure script renames the library and (if the
-- <STRONG>--disable-overwrite</STRONG> option is used) puts the header
-+ The configure script renames the library and (if the
-+ <STRONG>--disable-overwrite</STRONG> option is used) puts the header
- files in a different subdirectory. All of the
-- library names have a "w" appended to them, i.e.,
-+ library names have a "w" appended to them, i.e.,
- instead of
-
- <STRONG>-lncurses</STRONG>
-@@ -1095,16 +1145,16 @@
- <STRONG>-lncursesw</STRONG>
-
- You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com-
-- piling for the wide-character library to use the
-- extended (wide-character) functions. The <STRONG>curses.h</STRONG>
-- file which is installed for the wide-character
-- library is designed to be compatible with the normal
-+ piling for the wide-character library to use the
-+ extended (wide-character) functions. The <STRONG>curses.h</STRONG>
-+ file which is installed for the wide-character
-+ library is designed to be compatible with the normal
- library's header. Only the size of the <STRONG>WINDOW</STRONG> struc-
-- ture differs, and very few applications require more
-- than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are
-- installed allowing overwrite, the wide-character
-- library's headers should be installed last, to allow
-- applications to be built using either library from
-+ ture differs, and very few applications require more
-+ than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are
-+ installed allowing overwrite, the wide-character
-+ library's headers should be installed last, to allow
-+ applications to be built using either library from
- the same set of headers.
-
- --with-shared
-@@ -1114,16 +1164,16 @@
- --with-debug
-
- --with-profile
-- The shared and normal (static) library names differ
-- by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and
-- <STRONG>libncurses.a</STRONG>. The debug and profiling libraries add
-- a "_g" and a "_p" to the root names respectively,
-- e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
-+ The shared and normal (static) library names differ
-+ by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libn-</STRONG>
-+ <STRONG>curses.a</STRONG>. The debug and profiling libraries add a
-+ "_g" and a "_p" to the root names respectively, e.g.,
-+ <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
-
- --with-trace
-- The <STRONG>trace</STRONG> function normally resides in the debug
-+ The <STRONG>trace</STRONG> function normally resides in the debug
- library, but it is sometimes useful to configure this
-- in the shared library. Configure scripts should
-+ in the shared library. Configure scripts should
- check for the function's existence rather than assum-
- ing it is always in the debug library.
-
-@@ -1131,14 +1181,14 @@
- </PRE>
- <H2>FILES</H2><PRE>
- /usr/share/tabset
-- directory containing initialization files for the
-+ directory containing initialization files for the
- terminal capability database /usr/share/terminfo ter-
- minal capability database
-
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
-+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
- for detailed routine descriptions.
- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
-
-@@ -1148,52 +1198,61 @@
- The <STRONG>ncurses</STRONG> library can be compiled with an option
- (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term-
- cap file if the terminal setup code cannot find a terminfo
-- entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not
-- recommended, as it essentially includes an entire termcap
-- compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost
-+ entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not
-+ recommended, as it essentially includes an entire termcap
-+ compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost
- in core and startup cycles.
-
-- The <STRONG>ncurses</STRONG> library includes facilities for capturing
-- mouse events on certain terminals (including xterm). See
-+ The <STRONG>ncurses</STRONG> library includes facilities for capturing
-+ mouse events on certain terminals (including xterm). See
- the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
-
-- The <STRONG>ncurses</STRONG> library includes facilities for responding to
-- window resizing events, e.g., when running in an xterm.
-- See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
-- details. In addition, the library may be configured with
-+ The <STRONG>ncurses</STRONG> library includes facilities for responding to
-+ window resizing events, e.g., when running in an xterm.
-+ See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
-+ details. In addition, the library may be configured with
- a SIGWINCH handler.
-
-- The <STRONG>ncurses</STRONG> library extends the fixed set of function key
-- capabilities of terminals by allowing the application
-- designer to define additional key sequences at runtime.
-+ The <STRONG>ncurses</STRONG> library extends the fixed set of function key
-+ capabilities of terminals by allowing the application
-+ designer to define additional key sequences at runtime.
- See the <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> man-
- ual pages for details.
-
- The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi-
-- nals which implement the ISO-6429 SGR 39 and SGR 49 con-
-+ nals which implement the ISO-6429 SGR 39 and SGR 49 con-
- trols, which allow an application to reset the terminal to
-- its original foreground and background colors. From the
-- users' perspective, the application is able to draw col-
-- ored text on a background whose color is set indepen-
-- dently, providing better control over color contrasts.
-+ its original foreground and background colors. From the
-+ users' perspective, the application is able to draw col-
-+ ored text on a background whose color is set indepen-
-+ dently, providing better control over color contrasts.
- See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
-
-- The <STRONG>ncurses</STRONG> library includes a function for directing
-- application output to a printer attached to the terminal
-+ The <STRONG>ncurses</STRONG> library includes a function for directing
-+ application output to a printer attached to the terminal
- device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
-
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
-+ The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
- mant with XSI Curses. The EXTENDED XSI Curses functional-
- ity (including color support) is supported.
-
-- A small number of local differences (that is, individual
-- differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
-- described in <STRONG>PORTABILITY</STRONG> sections of the library man
-+ A small number of local differences (that is, individual
-+ differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
-+ described in <STRONG>PORTABILITY</STRONG> sections of the library man
- pages.
-
-+ Unlike other implementations, this one checks parameters
-+ such as pointers to WINDOW structures to ensure they are
-+ not null. The main reason for providing this behavior is
-+ to guard against programmer error. The standard interface
-+ does not provide a way for the library to tell an applica-
-+ tion which of several possible errors were detected.
-+ Relying on this (or some other) extension will adversely
-+ affect the portability of curses applications.
-+
- This implementation also contains several extensions:
-
- <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it
-@@ -1227,31 +1286,31 @@
-
- <STRONG>o</STRONG> This implementation can also be configured to provide
- a set of functions which improve the ability to manage
-- multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
-+ multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
-
-- In historic curses versions, delays embedded in the capa-
-+ In historic curses versions, delays embedded in the capa-
- bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
-- delay bits in the UNIX tty driver. In this implementa-
-- tion, all padding is done by sending NUL bytes. This
-- method is slightly more expensive, but narrows the inter-
-- face to the UNIX kernel significantly and increases the
-+ delay bits in the UNIX tty driver. In this implementa-
-+ tion, all padding is done by sending NUL bytes. This
-+ method is slightly more expensive, but narrows the inter-
-+ face to the UNIX kernel significantly and increases the
- package's portability correspondingly.
-
-
- </PRE>
- <H2>NOTES</H2><PRE>
-- The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the
-+ The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the
- header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
-
-- If standard output from a <STRONG>ncurses</STRONG> program is re-directed
-- to something which is not a tty, screen updates will be
-+ If standard output from a <STRONG>ncurses</STRONG> program is re-directed
-+ to something which is not a tty, screen updates will be
- directed to standard error. This was an undocumented fea-
- ture of AT&amp;T System V Release 3 curses.
-
-
- </PRE>
- <H2>AUTHORS</H2><PRE>
-- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
-+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
-
-
-Index: doc/html/man/ncurses5-config.1.html
---- ncurses-5.9/doc/html/man/ncurses5-config.1.html 2011-04-04 22:46:49.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/ncurses5-config.1.html 2013-03-09 22:12:04.000000000 +0000
-@@ -105,10 +105,11 @@
-
- <STRONG>--terminfo-dirs</STRONG>
- echos the $TERMINFO_DIRS directory list, e.g.,
-- /usr/local/ncurses/lib/terminfo:/usr/share/terminfo
-+ /usr/local/ncurses/share/terminfo:/usr/share/ter-
-+ minfo
-
- <STRONG>--termpath</STRONG>
-- echos the $TERMPATH termcap list, if support for
-+ echos the $TERMPATH termcap list, if support for
- termcap is configured.
-
- <STRONG>--help</STRONG> prints this message
-@@ -118,7 +119,7 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/panel.3x.html
---- ncurses-5.9/doc/html/man/panel.3x.html 2011-04-04 22:46:49.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/panel.3x.html 2013-03-09 22:12:04.000000000 +0000
-@@ -174,35 +174,35 @@
-
- </PRE>
- <H2>DIAGNOSTICS</H2><PRE>
-- Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
-- error occurs. Each routine that returns an int value
-+ Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
-+ error occurs. Each routine that returns an int value
- returns <STRONG>OK</STRONG> if it executes successfully and <STRONG>ERR</STRONG> if not.
-
-
- </PRE>
- <H2>COMPATIBILITY</H2><PRE>
-- Reasonable care has been taken to ensure compatibility
-- with the native panel facility introduced in SVr3.2
-- (inspection of the SVr4 manual pages suggests the
-- programming interface is unchanged). The <STRONG>PANEL</STRONG> data
-- structures are merely similar. The programmer is cau-
-- tioned not to directly use <STRONG>PANEL</STRONG> fields.
-+ Reasonable care has been taken to ensure compatibility
-+ with the native panel facility introduced in SVr3.2
-+ (inspection of the SVr4 manual pages suggests the program-
-+ ming interface is unchanged). The <STRONG>PANEL</STRONG> data structures
-+ are merely similar. The programmer is cautioned not to
-+ directly use <STRONG>PANEL</STRONG> fields.
-
-- The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
-- in this implementation, and work equally well with dis-
-+ The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
-+ in this implementation, and work equally well with dis-
- played or hidden panels. In the native System V implemen-
- tation, <STRONG>show_panel()</STRONG> is intended for making a hidden panel
-- visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
-- intended for making an already-visible panel move to the
-- top of the stack. You are cautioned to use the correct
-- function to ensure compatibility with native panel
-+ visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
-+ intended for making an already-visible panel move to the
-+ top of the stack. You are cautioned to use the correct
-+ function to ensure compatibility with native panel
- libraries.
-
-
- </PRE>
- <H2>NOTE</H2><PRE>
-- In your library list, libpanel.a should be before libn-
-- curses.a; that is, you want to say `-lpanel -lncurses',
-+ In your library list, libpanel.a should be before libn-
-+ curses.a; that is, you want to say `-lpanel -lncurses',
- not the other way around (which would usually give a link-
- error).
-
-@@ -218,14 +218,14 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
- </PRE>
- <H2>AUTHOR</H2><PRE>
-- Originally written by Warren Tucker &lt;wht@n4hgf.mt-
-- park.ga.us&gt;, primarily to assist in porting u386mon to
-- systems without a native panels library. Repackaged for
-+ Originally written by Warren Tucker &lt;wht@n4hgf.mt-
-+ park.ga.us&gt;, primarily to assist in porting u386mon to
-+ systems without a native panels library. Repackaged for
- ncurses by Zeyd ben-Halim.
-
-
-Index: doc/html/man/resizeterm.3x.html
---- ncurses-5.9/doc/html/man/resizeterm.3x.html 2011-01-09 01:03:28.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/resizeterm.3x.html 2013-03-09 22:12:04.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * authorization. *
- ****************************************************************************
- * Author: Thomas E. Dickey 1996-2005
-- * @Id: resizeterm.3x,v 1.14 2010/12/04 18:38:55 tom Exp @
-+ * @Id: resizeterm.3x,v 1.15 2012/07/07 18:38:21 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -113,9 +113,7 @@
- If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set,
- this overrides the library's use of the window size
- obtained from the operating system. Thus, even if a SIG-
-- WINCH is received, no screen size change may be recorded.
-- In that case, no <STRONG>KEY_RESIZE</STRONG> is queued for the next call to
-- <STRONG>getch</STRONG>; an <STRONG>ERR</STRONG> will be returned instead.
-+ WINCH is received, no screen size change may be recorded.
-
-
- </PRE>
-Index: doc/html/man/tabs.1.html
---- ncurses-5.9/doc/html/man/tabs.1.html 2011-04-04 22:46:50.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/tabs.1.html 2013-03-09 22:12:04.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: tabs.1,v 1.8 2010/12/04 18:40:45 tom Exp @
-+ * @Id: tabs.1,v 1.9 2011/12/17 23:31:59 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -156,7 +156,7 @@
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/term.7.html
---- ncurses-5.9/doc/html/man/term.7.html 2011-02-25 23:25:09.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/term.7.html 2013-03-09 22:12:05.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: term.7,v 1.22 2010/12/04 18:41:07 tom Exp @
-+ * @Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -85,9 +85,9 @@
- the tty device and baud rate.
-
- Setting your own <STRONG>TERM</STRONG> value may also be useful if you have
-- created a custom entry incorporating options (such as
-- visual bell or reverse-video) which you wish to override
-- the system default type for your line.
-+ created a custom entry incorporating options (such as vis-
-+ ual bell or reverse-video) which you wish to override the
-+ system default type for your line.
-
- Terminal type descriptions are stored as files of capabil-
- ity data underneath /usr/share/terminfo. To browse a list
-Index: doc/html/man/term_variables.3x.html
---- ncurses-5.9/doc/html/man/term_variables.3x.html 2011-01-09 01:03:29.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/term_variables.3x.html 2012-01-09 18:36:45.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: term_variables.3x,v 1.2 2010/12/04 18:38:55 tom Exp @
-+ * @Id: term_variables.3x,v 1.3 2011/12/17 23:31:50 tom Exp @
- -->
- <HTML>
- <HEAD>
-Index: doc/html/man/terminfo.5.html
---- ncurses-5.9/doc/html/man/terminfo.5.html 2011-04-04 22:46:51.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/terminfo.5.html 2013-03-09 22:12:05.000000000 +0000
-@@ -6,7 +6,7 @@
- * Note: this must be run through tbl before nroff.
- * The magic cookie on the first line triggers this under some man programs.
- ****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,9 +32,9 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: terminfo.head,v 1.18 2010/07/31 16:08:48 tom Exp @
-+ * @Id: terminfo.head,v 1.20 2013/03/02 23:52:37 tom Exp @
- * Head of terminfo man page ends here
-- * @Id: terminfo.tail,v 1.53 2010/12/04 18:38:55 tom Exp @
-+ * @Id: terminfo.tail,v 1.61 2013/03/03 00:06:39 tom Exp @
- * Beginning of terminfo.tail file
- * This file is part of ncurses.
- * See "terminfo.head" for copyright.
-@@ -78,7 +78,7 @@
- nals by giving a set of capabilities which they have, by
- specifying how to perform screen operations, and by speci-
- fying padding requirements and initialization sequences.
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
- Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
- fields (embedded commas may be escaped with a backslash or
-@@ -106,14 +106,13 @@
- Terminal names (except for the last, verbose entry) should
- be chosen using the following conventions. The particular
- piece of hardware making up the terminal should have a
-- root name, thus ``hp2621''. This name should not contain
-+ root name, thus "hp2621". This name should not contain
- hyphens. Modes that the hardware can be in, or user pref-
- erences, should be indicated by appending a hyphen and a
- mode suffix. Thus, a vt100 in 132 column mode would be
- vt100-w. The following suffixes should be used where pos-
- sible:
-
--
- <STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
- -<EM>nn</EM> Number of lines on the screen aaa-60
- -<EM>n</EM>p Number of pages of memory c100-4p
-@@ -126,14 +125,14 @@
- -ns No status line hp2626-ns
- -rv Reverse video c100-rv
- -s Enable status line vt100-s
--
- -vb Use visible bell instead of beep wy370-vb
-+
- -w Wide mode (&gt; 80 columns, usually 132) vt100-w
-
- For more on terminal naming conventions, see the <STRONG>term(7)</STRONG>
- manual page.
-
-- <STRONG>Capabilities</STRONG>
-+ <STRONG>Predefined</STRONG> <STRONG>Capabilities</STRONG>
- The following is a complete table of the capabilities
- included in a terminfo description block and available to
- terminfo-using code. In each line of the table,
-@@ -176,133 +175,134 @@
- These are the boolean capabilities:
-
-
-- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-- <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-- auto_left_margin bw bw cub1 wraps from col-
-+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-+ <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-+ auto_left_margin bw bw cub1 wraps from col-
- umn 0 to last column
-- auto_right_margin am am terminal has auto-
-+ auto_right_margin am am terminal has auto-
- matic margins
-- back_color_erase bce ut screen erased with
-+ back_color_erase bce ut screen erased with
- background color
-- can_change ccc cc terminal can re-
-+ can_change ccc cc terminal can re-
- define existing col-
- ors
-- ceol_standout_glitch xhp xs standout not erased
-+ ceol_standout_glitch xhp xs standout not erased
- by overwriting (hp)
-- col_addr_glitch xhpa YA only positive motion
-+ col_addr_glitch xhpa YA only positive motion
- for hpa/mhpa caps
-
-
-- cpi_changes_res cpix YF changing character
-+
-+ cpi_changes_res cpix YF changing character
- pitch changes reso-
- lution
-- cr_cancels_micro_mode crxm YB using cr turns off
-+ cr_cancels_micro_mode crxm YB using cr turns off
- micro mode
-- dest_tabs_magic_smso xt xt tabs destructive,
-+ dest_tabs_magic_smso xt xt tabs destructive,
- magic so char
- (t1061)
-- eat_newline_glitch xenl xn newline ignored
-+ eat_newline_glitch xenl xn newline ignored
- after 80 cols (con-
- cept)
-- erase_overstrike eo eo can erase over-
-+ erase_overstrike eo eo can erase over-
- strikes with a blank
-- generic_type gn gn generic line type
-- hard_copy hc hc hardcopy terminal
-- hard_cursor chts HC cursor is hard to
-+ generic_type gn gn generic line type
-+ hard_copy hc hc hardcopy terminal
-+ hard_cursor chts HC cursor is hard to
- see
-- has_meta_key km km Has a meta key
-+ has_meta_key km km Has a meta key
- (i.e., sets 8th-bit)
-- has_print_wheel daisy YC printer needs opera-
-+ has_print_wheel daisy YC printer needs opera-
- tor to change char-
- acter set
-- has_status_line hs hs has extra status
-+ has_status_line hs hs has extra status
- line
-- hue_lightness_saturation hls hl terminal uses only
-+ hue_lightness_saturation hls hl terminal uses only
- HLS color notation
- (Tektronix)
-- insert_null_glitch in in insert mode distin-
-+ insert_null_glitch in in insert mode distin-
- guishes nulls
-- lpi_changes_res lpix YG changing line pitch
-+ lpi_changes_res lpix YG changing line pitch
- changes resolution
-- memory_above da da display may be
-+ memory_above da da display may be
- retained above the
- screen
-- memory_below db db display may be
-+ memory_below db db display may be
- retained below the
- screen
-- move_insert_mode mir mi safe to move while
-+ move_insert_mode mir mi safe to move while
- in insert mode
-- move_standout_mode msgr ms safe to move while
-+ move_standout_mode msgr ms safe to move while
- in standout mode
-- needs_xon_xoff nxon nx padding will not
-+ needs_xon_xoff nxon nx padding will not
- work, xon/xoff
- required
-- no_esc_ctlc xsb xb beehive (f1=escape,
-+ no_esc_ctlc xsb xb beehive (f1=escape,
- f2=ctrl C)
-- no_pad_char npc NP pad character does
-+ no_pad_char npc NP pad character does
- not exist
-- non_dest_scroll_region ndscr ND scrolling region is
-+ non_dest_scroll_region ndscr ND scrolling region is
- non-destructive
-- non_rev_rmcup nrrmc NR smcup does not
-+ non_rev_rmcup nrrmc NR smcup does not
- reverse rmcup
-- over_strike os os terminal can over-
-+ over_strike os os terminal can over-
- strike
-- prtr_silent mc5i 5i printer will not
-+ prtr_silent mc5i 5i printer will not
- echo on screen
-- row_addr_glitch xvpa YD only positive motion
-+ row_addr_glitch xvpa YD only positive motion
- for vpa/mvpa caps
-- semi_auto_right_margin sam YE printing in last
-+ semi_auto_right_margin sam YE printing in last
- column causes cr
-- status_line_esc_ok eslok es escape can be used
-+ status_line_esc_ok eslok es escape can be used
- on the status line
-- tilde_glitch hz hz cannot print ~'s
-+ tilde_glitch hz hz cannot print ~'s
- (hazeltine)
-
-
-- transparent_underline ul ul underline character
-+ transparent_underline ul ul underline character
- overstrikes
-- xon_xoff xon xo terminal uses
-+ xon_xoff xon xo terminal uses
- xon/xoff handshaking
-
- These are the numeric capabilities:
-
-
-- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-- columns cols co number of columns in
-+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-+ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-+ columns cols co number of columns in
- a line
-- init_tabs it it tabs initially every
-+ init_tabs it it tabs initially every
- # spaces
-- label_height lh lh rows in each label
-- label_width lw lw columns in each
-+ label_height lh lh rows in each label
-+ label_width lw lw columns in each
- label
-- lines lines li number of lines on
-+ lines lines li number of lines on
- screen or page
-- lines_of_memory lm lm lines of memory if &gt;
-+ lines_of_memory lm lm lines of memory if &gt;
- line. 0 means varies
-- magic_cookie_glitch xmc sg number of blank
-+ magic_cookie_glitch xmc sg number of blank
- characters left by
- smso or rmso
-- max_attributes ma ma maximum combined
-+ max_attributes ma ma maximum combined
- attributes terminal
- can handle
-- max_colors colors Co maximum number of
-+ max_colors colors Co maximum number of
- colors on screen
-- max_pairs pairs pa maximum number of
-+ max_pairs pairs pa maximum number of
- color-pairs on the
- screen
-- maximum_windows wnum MW maximum number of
-+ maximum_windows wnum MW maximum number of
- defineable windows
-- no_color_video ncv NC video attributes
-+ no_color_video ncv NC video attributes
- that cannot be used
- with colors
-- num_labels nlab Nl number of labels on
-+ num_labels nlab Nl number of labels on
- screen
-- padding_baud_rate pb pb lowest baud rate
-+ padding_baud_rate pb pb lowest baud rate
- where padding needed
-- virtual_terminal vt vt virtual terminal
-+ virtual_terminal vt vt virtual terminal
- number (CB/unix)
-- width_status_line wsl ws number of columns in
-+ width_status_line wsl ws number of columns in
- status line
-
- The following numeric capabilities are present in the
-@@ -310,47 +310,47 @@
- man page. They came in with SVr4's printer support.
-
-
-- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-- bit_image_entwining bitwin Yo number of passes for
-+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-+ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
-+ bit_image_entwining bitwin Yo number of passes for
- each bit-image row
-- bit_image_type bitype Yp type of bit-image
-+ bit_image_type bitype Yp type of bit-image
- device
-- buffer_capacity bufsz Ya numbers of bytes
-+ buffer_capacity bufsz Ya numbers of bytes
- buffered before
- printing
-- buttons btns BT number of buttons on
-+ buttons btns BT number of buttons on
- mouse
-- dot_horz_spacing spinh Yc spacing of dots hor-
-+ dot_horz_spacing spinh Yc spacing of dots hor-
- izontally in dots
- per inch
-
-- dot_vert_spacing spinv Yb spacing of pins ver-
-+ dot_vert_spacing spinv Yb spacing of pins ver-
- tically in pins per
- inch
-- max_micro_address maddr Yd maximum value in
-+ max_micro_address maddr Yd maximum value in
- micro_..._address
-- max_micro_jump mjump Ye maximum value in
-+ max_micro_jump mjump Ye maximum value in
- parm_..._micro
-- micro_col_size mcs Yf character step size
-+ micro_col_size mcs Yf character step size
- when in micro mode
-- micro_line_size mls Yg line step size when
-+ micro_line_size mls Yg line step size when
- in micro mode
-- number_of_pins npins Yh numbers of pins in
-+ number_of_pins npins Yh numbers of pins in
- print-head
-- output_res_char orc Yi horizontal resolu-
-+ output_res_char orc Yi horizontal resolu-
- tion in units per
- line
-- output_res_horz_inch orhi Yk horizontal resolu-
-+ output_res_horz_inch orhi Yk horizontal resolu-
- tion in units per
- inch
-- output_res_line orl Yj vertical resolution
-+ output_res_line orl Yj vertical resolution
- in units per line
-- output_res_vert_inch orvi Yl vertical resolution
-+ output_res_vert_inch orvi Yl vertical resolution
- in units per inch
-- print_rate cps Ym print rate in char-
-+ print_rate cps Ym print rate in char-
- acters per second
-- wide_char_size widcs Yn character step size
-+ wide_char_size widcs Yn character step size
- when in double wide
- mode
-
-@@ -402,8 +402,8 @@
- prototype !?
- create_window cwin CW define a window #1
- from #2,#3 to #4,#5
-- cursor_address cup cm move to row #1
-- columns #2
-+ cursor_address cup cm move to row #1 col-
-+ umns #2
- cursor_down cud1 do down one line
- cursor_home home ho home cursor (if no
- cup)
-@@ -904,8 +904,8 @@
- zero_motion zerom Zx No motion for subse-
- quent character
-
-- The following string capabilities are present in the
-- SVr4.0 term structure, but were originally not documented
-+ The following string capabilities are present in the
-+ SVr4.0 term structure, but were originally not documented
- in the man page.
-
-
-@@ -989,13 +989,14 @@
- bottom margins to
- #1, #2
-
-- The XSI Curses standard added these. They are some
-- post-4.1 versions of System V curses, e.g., Solaris 2.5
-- and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are
-- invented; according to the XSI Curses standard, they have
-- no termcap names. If your compiled terminfo entries use
-- these, they may not be binary-compatible with System V
-- terminfo entries after SVr4.1; beware!
-+ The XSI Curses standard added these hardcopy capabili-
-+ ties. They were used in some post-4.1 versions of System
-+ V curses, e.g., Solaris 2.5 and IRIX 6.x. Except for <STRONG>YI</STRONG>,
-+ the <STRONG>ncurses</STRONG> termcap names for them are invented. Accord-
-+ ing to the XSI Curses standard, they have no termcap
-+ names. If your compiled terminfo entries use these, they
-+ may not be binary-compatible with System V terminfo
-+ entries after SVr4.1; beware!
-
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-@@ -1015,13 +1016,57 @@
- set_a_attributes sgr1 sA Define second set of
- video attributes
- #1-#6
-- set_pglen_inch slengthsL YI Set page length
-- to #1 hundredth of
-- an inch
-+ set_pglen_inch slengthYI Set page length to
-+ #1 hundredth of an
-+ inch (some implemen-
-+ tations use sL for
-+ termcap).
-+
-+ <STRONG>User-Defined</STRONG> <STRONG>Capabilities</STRONG>
-+ The preceding section listed the <EM>predefined</EM> capabilities.
-+ They deal with some special features for terminals no
-+ longer (or possibly never) produced. Occasionally there
-+ are special features of newer terminals which are awkward
-+ or impossible to represent by reusing the predefined capa-
-+ bilities.
-+
-+ <STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined
-+ capabilities. The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG>
-+ option for this purpose. When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats
-+ unknown capabilities as user-defined. That is, if <STRONG>tic</STRONG>
-+ encounters a capability name which it does not recognize,
-+ it infers its type (boolean, number or string) from the
-+ syntax and makes an extended table entry for that capabil-
-+ ity. The <STRONG>use_extended_names</STRONG> function makes this informa-
-+ tion conditionally available to applications. The ncurses
-+ library provides the data leaving most of the behavior to
-+ applications:
-+
-+ <STRONG>o</STRONG> User-defined capability strings whose name begins with
-+ "k" are treated as function keys.
-+
-+ <STRONG>o</STRONG> The types (boolean, number, string) determined by <STRONG>tic</STRONG>
-+ can be inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
-+
-+ <STRONG>o</STRONG> If the capability name happens to be two characters,
-+ the capability is also available through the termcap
-+ interface.
-+
-+ While termcap is said to be extensible because it does not
-+ use a predefined set of capabilities, in practice it has
-+ been limited to the capabilities defined by terminfo
-+ implementations. As a rule, user-defined capabilities
-+ intended for use by termcap applications should be limited
-+ to booleans and numbers to avoid running past the 1023
-+ byte limit assumed by termcap implementations and their
-+ applications. In particular, providing extended sets of
-+ function keys (past the 60 numbered keys and the handful
-+ of special named keys) is best done using the longer names
-+ available using terminfo.
-
- <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
- The following entry, describing an ANSI-standard terminal,
-- is representative of what a <STRONG>terminfo</STRONG> entry for a modern
-+ is representative of what a <STRONG>terminfo</STRONG> entry for a modern
- terminal typically looks like.
-
- ansi|ansi/pc-term compatible with color,
-@@ -1045,93 +1090,126 @@
- sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
- u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
-
-- Entries may continue onto multiple lines by placing white
-- space at the beginning of each line except the first.
-- Comments may be included on lines beginning with ``#''.
-- Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
-- bilities which indicate that the terminal has some partic-
-- ular feature, numeric capabilities giving the size of the
-- terminal or the size of particular delays, and string
-- capabilities, which give a sequence which can be used to
-- perform particular terminal operations.
-+ Entries may continue onto multiple lines by placing white
-+ space at the beginning of each line except the first.
-+ Comments may be included on lines beginning with "#".
-+ Capabilities in <EM>terminfo</EM> are of three types:
-+
-+ <STRONG>o</STRONG> Boolean capabilities which indicate that the terminal
-+ has some particular feature,
-
-+ <STRONG>o</STRONG> numeric capabilities giving the size of the terminal
-+ or the size of particular delays, and
-+
-+ <STRONG>o</STRONG> string capabilities, which give a sequence which can
-+ be used to perform particular terminal operations.
-
- <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
-- All capabilities have names. For instance, the fact that
-- ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
-- automatic return and line-feed when the end of a line is
-- reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
-+ All capabilities have names. For instance, the fact that
-+ ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
-+ automatic return and line-feed when the end of a line is
-+ reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
- description of ansi includes <STRONG>am</STRONG>. Numeric capabilities are
-- followed by the character `#' and then a positive value.
-- Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
-- minal has, gives the value `80' for ansi. Values for
-+ followed by the character `#' and then a positive value.
-+ Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
-+ minal has, gives the value `80' for ansi. Values for
- numeric capabilities may be specified in decimal, octal or
-- hexadecimal, using the C programming language conventions
-+ hexadecimal, using the C programming language conventions
- (e.g., 255, 0377 and 0xff or 0xFF).
-
-- Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
-+ Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
- end of line sequence) are given by the two-character code,
-- an `=', and then a string ending at the next following
-+ an `=', and then a string ending at the next following
- `,'.
-
-- A number of escape sequences are provided in the string
-+ A number of escape sequences are provided in the string
- valued capabilities for easy encoding of characters there.
-- Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
-- control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
-- <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
-- backspace, form-feed, and space. Other escapes include <STRONG>\^</STRONG>
-- for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
-- (<STRONG>\0</STRONG> will produce \200, which does not terminate a string
-- but behaves as a null character on most terminals, provid-
-- ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters
-- may be given as three octal digits after a <STRONG>\</STRONG>.
--
-- A delay in milliseconds may appear anywhere in a string
-- capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
-- and padding characters are supplied by <EM>tputs</EM> to provide
-- this delay. The delay must be a number with at most one
-+ Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
-+ control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
-+ <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
-+ backspace, form-feed, and space. Other escapes include
-+
-+ <STRONG>o</STRONG> <STRONG>\^</STRONG> for <STRONG>^</STRONG>,
-+
-+ <STRONG>o</STRONG> <STRONG>\\</STRONG> for <STRONG>\</STRONG>,
-+
-+ <STRONG>o</STRONG> <STRONG>\</STRONG>, for comma,
-+
-+ <STRONG>o</STRONG> <STRONG>\:</STRONG> for <STRONG>:</STRONG>,
-+
-+ <STRONG>o</STRONG> and <STRONG>\0</STRONG> for null.
-+
-+ <STRONG>\0</STRONG> will produce \200, which does not terminate a
-+ string but behaves as a null character on most termi-
-+ nals, providing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.
-+
-+ The reason for this quirk is to maintain binary com-
-+ patibility of the compiled terminfo files with other
-+ implementations, e.g., the SVr4 systems, which docu-
-+ ment this. Compiled terminfo files use null-termi-
-+ nated strings, with no lengths. Modifying this would
-+ require a new binary format, which would not work with
-+ other implementations.
-+
-+ Finally, characters may be given as three octal digits
-+ after a <STRONG>\</STRONG>.
-+
-+ A delay in milliseconds may appear anywhere in a string
-+ capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
-+ and padding characters are supplied by <EM>tputs</EM> to provide
-+ this delay. The delay must be a number with at most one
- decimal place of precision; it may be followed by suffixes
-- `*' or '/' or both. A `*' indicates that the padding
-- required is proportional to the number of lines affected
-- by the operation, and the amount given is the per-
-- affected-unit padding required. (In the case of insert
-+ `*' or '/' or both. A `*' indicates that the padding
-+ required is proportional to the number of lines affected
-+ by the operation, and the amount given is the per-
-+ affected-unit padding required. (In the case of insert
- character, the factor is still the number of <EM>lines</EM>
-- affected.) Normally, padding is advisory if the device
-- has the <STRONG>xon</STRONG> capability; it is used for cost computation
-- but does not trigger delays. A `/' suffix indicates that
-- the padding is mandatory and forces a delay of the given
-- number of milliseconds even on devices for which <STRONG>xon</STRONG> is
-+ affected.) Normally, padding is advisory if the device
-+ has the <STRONG>xon</STRONG> capability; it is used for cost computation
-+ but does not trigger delays. A `/' suffix indicates that
-+ the padding is mandatory and forces a delay of the given
-+ number of milliseconds even on devices for which <STRONG>xon</STRONG> is
- present to indicate flow control.
-
-- Sometimes individual capabilities must be commented out.
-- To do this, put a period before the capability name. For
-+ Sometimes individual capabilities must be commented out.
-+ To do this, put a period before the capability name. For
- example, see the second <STRONG>ind</STRONG> in the example above.
-
--
- <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
-- If the environment variable TERMINFO is set, it is inter-
-- preted as the pathname of a directory containing the com-
-- piled description you are working on. Only that directory
-- is searched.
--
-- If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter-
-- minfo reader code will instead look in the directory
-- <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails
-- to find one there, and the environment variable TER-
-- MINFO_DIRS is set, it will interpret the contents of that
-- variable as a list of colon- separated directories to be
-- searched (an empty entry is interpreted as a command to
-- search <EM>/usr/share/terminfo</EM>). If no description is found
-- in any of the TERMINFO_DIRS directories, the fetch fails.
--
-- If neither TERMINFO nor TERMINFO_DIRS is set, the last
-- place tried will be the system terminfo directory,
-- <EM>/usr/share/terminfo</EM>.
--
-- (Neither the <STRONG>$HOME/.terminfo</STRONG> lookups nor TERMINFO_DIRS
-- extensions are supported under stock System V ter-
-- minfo/curses.)
-+ The <STRONG>ncurses</STRONG> library searches for terminal descriptions in
-+ several places. It uses only the first description found.
-+ The library has a compiled-in list of places to search
-+ which can be overridden by environment variables. Before
-+ starting to search, <STRONG>ncurses</STRONG> eliminates duplicates in its
-+ search list.
-+
-+ <STRONG>o</STRONG> If the environment variable TERMINFO is set, it is
-+ interpreted as the pathname of a directory containing
-+ the compiled description you are working on. Only
-+ that directory is searched.
-+
-+ <STRONG>o</STRONG> If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in
-+ the directory <STRONG>$HOME/.terminfo</STRONG> for a compiled descrip-
-+ tion.
-+
-+ <STRONG>o</STRONG> Next, if the environment variable TERMINFO_DIRS is
-+ set, <STRONG>ncurses</STRONG> will interpret the contents of that vari-
-+ able as a list of colon-separated directories (or
-+ database files) to be searched.
-+
-+ An empty directory name (i.e., if the variable begins
-+ or ends with a colon, or contains adacent colons) is
-+ interpreted as the system location <EM>/usr/share/ter-</EM>
-+ <EM>minfo</EM>.
-+
-+ <STRONG>o</STRONG> Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
-+
-+ <STRONG>o</STRONG> a list of directories
-+ (/usr/local/ncurses/share/terminfo:/usr/share/ter-
-+ minfo), and
-
-+ <STRONG>o</STRONG> the system terminfo directory, <EM>/usr/share/terminfo</EM>
-+ (the compiled-in default).
-
- <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
- We now outline how to prepare descriptions of terminals.
-@@ -1152,7 +1230,6 @@
- ally needed. A similar test can be used for insert char-
- acter.
-
--
- <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
- The number of columns on each line for the terminal is
- given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
-@@ -1190,35 +1267,35 @@
- left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
-
- To scroll text down, a program goes to the top left corner
-- of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
-- The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
-+ of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
-+ The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
- respective corners of the screen.
-
- Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
- and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
-- that they take one parameter, and scroll that many lines.
-- They are also undefined except at the appropriate edge of
-+ that they take one parameter, and scroll that many lines.
-+ They are also undefined except at the appropriate edge of
- the screen.
-
-- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
-- right edge of the screen when text is output, but this
-+ The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
-+ right edge of the screen when text is output, but this
- does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
-- The only local motion which is defined from the left edge
-- is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
-- move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
-- given, the effect is undefined. This is useful for draw-
-- ing a box around the edge of the screen, for example. If
-- the terminal has switch selectable automatic margins, the
-- <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
-- If the terminal has a command which moves to the first
-- column of the next line, that command can be given as <STRONG>nel</STRONG>
-- (newline). It does not matter if the command clears the
-- remainder of the current line, so if the terminal has no
-- <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
-+ The only local motion which is defined from the left edge
-+ is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
-+ move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
-+ given, the effect is undefined. This is useful for draw-
-+ ing a box around the edge of the screen, for example. If
-+ the terminal has switch selectable automatic margins, the
-+ <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
-+ If the terminal has a command which moves to the first
-+ column of the next line, that command can be given as <STRONG>nel</STRONG>
-+ (newline). It does not matter if the command clears the
-+ remainder of the current line, so if the terminal has no
-+ <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
- out of one or both of them.
-
- These capabilities suffice to describe hard-copy and
-- "glass-tty" terminals. Thus the model 33 teletype is
-+ "glass-tty" terminals. Thus the model 33 teletype is
- described as
-
- 33|tty33|tty|model 33 teletype,
-@@ -1230,34 +1307,32 @@
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,
-
--
- <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
-- Cursor addressing and other strings requiring parameters
-- in the terminal are described by a parameterized string
-- capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For
-- example, to address the cursor, the <STRONG>cup</STRONG> capability is
-+ Cursor addressing and other strings requiring parameters
-+ in the terminal are described by a parameterized string
-+ capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For
-+ example, to address the cursor, the <STRONG>cup</STRONG> capability is
- given, using two parameters: the row and column to address
- to. (Rows and columns are numbered from zero and refer to
- the physical screen visible to the user, not to any unseen
-- memory.) If the terminal has memory relative cursor
-+ memory.) If the terminal has memory relative cursor
- addressing, that can be indicated by <STRONG>mrcup</STRONG>.
-
-- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
-- to manipulate it. Typically a sequence will push one of
-- the parameters onto the stack and then print it in some
-- format. Print (e.g., "%d") is a special case. Other
-- operations, including "%t" pop their operand from the
-+ The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
-+ to manipulate it. Typically a sequence will push one of
-+ the parameters onto the stack and then print it in some
-+ format. Print (e.g., "%d") is a special case. Other
-+ operations, including "%t" pop their operand from the
- stack. It is noted that more complex operations are often
- necessary, e.g., in the <STRONG>sgr</STRONG> string.
-
- The <STRONG>%</STRONG> encodings have the following meanings:
-
--
- %% outputs `%'
-
- %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
-- as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:'
-- to allow the next character to be a `-' flag, avoid-
-+ as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:'
-+ to allow the next character to be a `-' flag, avoid-
- ing interpreting "%-" as an operator.
-
- %c print pop() like %c in <STRONG>printf</STRONG>
-@@ -1279,11 +1354,11 @@
- %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
-+ 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>
-@@ -1307,16 +1382,16 @@
- logical AND and OR operations (for conditionals)
-
- %! %~
-- unary operations (logical and bit complement):
-+ unary operations (logical and bit complement):
- push(op pop())
-
- %i add 1 to first two parameters (for ANSI terminals)
-
- %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
-- This forms an if-then-else. The %e <EM>elsepart</EM> is
-- optional. Usually the %? <EM>expr</EM> part pushes a value
-- onto the stack, and %t pops it from the stack, test-
-- ing if it is nonzero (true). If it is zero (false),
-+ This forms an if-then-else. The %e <EM>elsepart</EM> is
-+ optional. Usually the %? <EM>expr</EM> part pushes a value
-+ onto the stack, and %t pops it from the stack, test-
-+ ing if it is nonzero (true). If it is zero (false),
- control passes to the %e (else) part.
-
- It is possible to form else-if's a la Algol 68:
-@@ -1342,241 +1417,238 @@
- its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
-
- The Microterm ACT-IV needs the current row and column sent
-- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
-- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
-- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
-+ preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
-+ in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
-+ need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
- move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is
-- necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
-- and <STRONG>\r</STRONG>, as the system may change or discard them. (The
-- library routines dealing with terminfo set tty modes so
-+ necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
-+ and <STRONG>\r</STRONG>, as the system may change or discard them. (The
-+ library routines dealing with terminfo set tty modes so
- that tabs are never expanded, so \t is safe to send. This
- turns out to be essential for the Ann Arbor 4080.)
-
- A final example is the LSI ADM-3a, which uses row and col-
- umn offset by a blank character, thus "cup=\E=%p1%'
-- '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
-- first parameter, pushes the ASCII value for a space (32),
-- adds them (pushing the sum on the stack in place of the
-- two previous values) and outputs that value as a charac-
-- ter. Then the same is done for the second parameter.
-+ '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
-+ first parameter, pushes the ASCII value for a space (32),
-+ adds them (pushing the sum on the stack in place of the
-+ two previous values) and outputs that value as a charac-
-+ ter. Then the same is done for the second parameter.
- More complex arithmetic is possible using the stack.
-
--
- <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
- If the terminal has a fast way to home the cursor (to very
-- upper left corner of screen) then this can be given as
-- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
-- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
-- with <STRONG>cuu1</STRONG> from the home position, but a program should
-- never do this itself (unless <STRONG>ll</STRONG> does) because it can make
-- no assumption about the effect of moving up from the home
-- position. Note that the home position is the same as
-+ upper left corner of screen) then this can be given as
-+ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
-+ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
-+ with <STRONG>cuu1</STRONG> from the home position, but a program should
-+ never do this itself (unless <STRONG>ll</STRONG> does) because it can make
-+ no assumption about the effect of moving up from the home
-+ position. Note that the home position is the same as
- addressing to (0,0): to the top left corner of the screen,
-- not of memory. (Thus, the \EH sequence on HP terminals
-+ not of memory. (Thus, the \EH sequence on HP terminals
- cannot be used for <STRONG>home</STRONG>.)
-
- If the terminal has row or column absolute cursor address-
-- ing, these can be given as single parameter capabilities
-+ ing, these can be given as single parameter capabilities
- <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
- tion absolute). Sometimes these are shorter than the more
-- general two parameter sequence (as with the hp2645) and
-- can be used in preference to <STRONG>cup</STRONG>. If there are
-- parameterized local motions (e.g., move <EM>n</EM> spaces to the
-- right) these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a
-- single parameter indicating how many spaces to move.
-- These are primarily useful if the terminal does not have
-- <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
-+ general two parameter sequence (as with the hp2645) and
-+ can be used in preference to <STRONG>cup</STRONG>. If there are parameter-
-+ ized local motions (e.g., move <EM>n</EM> spaces to the right)
-+ these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
-+ parameter indicating how many spaces to move. These are
-+ primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
-+ as the TEKTRONIX 4025.
-
- If the terminal needs to be in a special mode when running
- a program that uses these capabilities, the codes to enter
-- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
-- arises, for example, from terminals like the Concept with
-- more than one page of memory. If the terminal has only
-- memory relative cursor addressing and not screen relative
-+ and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
-+ arises, for example, from terminals like the Concept with
-+ more than one page of memory. If the terminal has only
-+ memory relative cursor addressing and not screen relative
- cursor addressing, a one screen-sized window must be fixed
-- into the terminal for cursor addressing to work properly.
-+ into the terminal for cursor addressing to work properly.
- This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
-- the command character to be the one used by terminfo. If
-- the <STRONG>smcup</STRONG> sequence will not restore the screen after an
-+ the command character to be the one used by terminfo. If
-+ the <STRONG>smcup</STRONG> sequence will not restore the screen after an
- <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
- <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
-
--
- <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
- If the terminal can clear from the current position to the
-- end of the line, leaving the cursor where it is, this
-+ end of the line, leaving the cursor where it is, this
- should be given as <STRONG>el</STRONG>. If the terminal can clear from the
-- beginning of the line to the current position inclusive,
-- leaving the cursor where it is, this should be given as
-- <STRONG>el1</STRONG>. If the terminal can clear from the current position
-- to the end of the display, then this should be given as
-- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
-- (Thus, it can be simulated by a request to delete a large
-+ beginning of the line to the current position inclusive,
-+ leaving the cursor where it is, this should be given as
-+ <STRONG>el1</STRONG>. If the terminal can clear from the current position
-+ to the end of the display, then this should be given as
-+ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
-+ (Thus, it can be simulated by a request to delete a large
- number of lines, if a true <STRONG>ed</STRONG> is not available.)
-
--
- <STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
-- If the terminal can open a new blank line before the line
-- where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
-- done only from the first position of a line. The cursor
-+ If the terminal can open a new blank line before the line
-+ where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
-+ done only from the first position of a line. The cursor
- must then appear on the newly blank line. If the terminal
-- can delete the line which the cursor is on, then this
-- should be given as <STRONG>dl1</STRONG>; this is done only from the first
-- position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
-- <STRONG>dl1</STRONG> which take a single parameter and insert or delete
-+ can delete the line which the cursor is on, then this
-+ should be given as <STRONG>dl1</STRONG>; this is done only from the first
-+ position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
-+ <STRONG>dl1</STRONG> which take a single parameter and insert or delete
- that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
-
-- If the terminal has a settable scrolling region (like the
-- vt100) the command to set this can be described with the
-- <STRONG>csr</STRONG> capability, which takes two parameters: the top and
-+ If the terminal has a settable scrolling region (like the
-+ vt100) the command to set this can be described with the
-+ <STRONG>csr</STRONG> capability, which takes two parameters: the top and
- bottom lines of the scrolling region. The cursor position
- is, alas, undefined after using this command.
-
-- It is possible to get the effect of insert or delete line
-+ It is possible to get the effect of insert or delete line
- using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
-- and restore cursor) commands may be useful for ensuring
-- that your synthesized insert/delete string does not move
-- the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
-- synthesis automatically, so you need not compose
-+ and restore cursor) commands may be useful for ensuring
-+ that your synthesized insert/delete string does not move
-+ the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
-+ synthesis automatically, so you need not compose
- insert/delete strings for an entry with <STRONG>csr</STRONG>).
-
- Yet another way to construct insert and delete might be to
-- use a combination of index with the memory-lock feature
-- found on some terminals (like the HP-700/90 series, which
-+ use a combination of index with the memory-lock feature
-+ found on some terminals (like the HP-700/90 series, which
- however also has insert/delete).
-
-- Inserting lines at the top or bottom of the screen can
-- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
-- true insert/delete line, and is often faster even on ter-
-+ Inserting lines at the top or bottom of the screen can
-+ also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
-+ true insert/delete line, and is often faster even on ter-
- minals with those features.
-
-- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
-- scrolling window is effectively a view port on a screen-
-- sized canvas. To test for this capability, create a
-- scrolling region in the middle of the screen, write some-
-- thing to the bottom line, move the cursor to the top of
-+ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
-+ scrolling window is effectively a view port on a screen-
-+ sized canvas. To test for this capability, create a
-+ scrolling region in the middle of the screen, write some-
-+ thing to the bottom line, move the cursor to the top of
- the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data
-- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
-- appears, then scrolling is non-destructive. System V and
-- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
-- late destructive scrolling; their documentation cautions
-- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
-+ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
-+ appears, then scrolling is non-destructive. System V and
-+ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
-+ late destructive scrolling; their documentation cautions
-+ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
- implementation is more liberal and will do explicit erases
- after scrolling if <STRONG>ndstr</STRONG> is defined.
-
- If the terminal has the ability to define a window as part
-- of memory, which all commands affect, it should be given
-+ of memory, which all commands affect, it should be given
- as the parameterized string <STRONG>wind</STRONG>. The four parameters are
-- the starting and ending lines in memory and the starting
-+ the starting and ending lines in memory and the starting
- and ending columns in memory, in that order.
-
-- If the terminal can retain display memory above, then the
-- <STRONG>da</STRONG> capability should be given; if display memory can be
-- retained below, then <STRONG>db</STRONG> should be given. These indicate
-- that deleting a line or scrolling may bring non-blank
-- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
-+ If the terminal can retain display memory above, then the
-+ <STRONG>da</STRONG> capability should be given; if display memory can be
-+ retained below, then <STRONG>db</STRONG> should be given. These indicate
-+ that deleting a line or scrolling may bring non-blank
-+ lines up from below or that scrolling back with <STRONG>ri</STRONG> may
- bring down non-blank lines.
-
--
- <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
-- There are two basic kinds of intelligent terminals with
-- respect to insert/delete character which can be described
-- using <EM>terminfo.</EM> The most common insert/delete character
-- operations affect only the characters on the current line
-- and shift characters off the end of the line rigidly.
-- Other terminals, such as the Concept 100 and the Perkin
-- Elmer Owl, make a distinction between typed and untyped
-- blanks on the screen, shifting upon an insert or delete
-- only to an untyped blank on the screen which is either
-- eliminated, or expanded to two untyped blanks. You can
-- determine the kind of terminal you have by clearing the
-- screen and then typing text separated by cursor motions.
-- Type "abc def" using local cursor motions (not spaces)
-- between the "abc" and the "def". Then position the cursor
-- before the "abc" and put the terminal in insert mode. If
-- typing characters causes the rest of the line to shift
-- rigidly and characters to fall off the end, then your ter-
-- minal does not distinguish between blanks and untyped
-- positions. If the "abc" shifts over to the "def" which
-- then move together around the end of the current line and
-- onto the next as you insert, you have the second type of
-- terminal, and should give the capability <STRONG>in</STRONG>, which stands
-- for "insert null". While these are two logically separate
-- attributes (one line versus multi-line insert mode, and
-- special treatment of untyped spaces) we have seen no ter-
-- minals whose insert mode cannot be described with the sin-
-- gle attribute.
-+ There are two basic kinds of intelligent terminals with
-+ respect to insert/delete character which can be described
-+ using <EM>terminfo.</EM> The most common insert/delete character
-+ operations affect only the characters on the current line
-+ and shift characters off the end of the line rigidly.
-+ Other terminals, such as the Concept 100 and the Perkin
-+ Elmer Owl, make a distinction between typed and untyped
-+ blanks on the screen, shifting upon an insert or delete
-+ only to an untyped blank on the screen which is either
-+ eliminated, or expanded to two untyped blanks.
-+
-+ You can determine the kind of terminal you have by clear-
-+ ing the screen and then typing text separated by cursor
-+ motions. Type "abc def" using local cursor motions
-+ (not spaces) between the "abc" and the "def". Then posi-
-+ tion the cursor before the "abc" and put the terminal in
-+ insert mode. If typing characters causes the rest of the
-+ line to shift rigidly and characters to fall off the end,
-+ then your terminal does not distinguish between blanks and
-+ untyped positions. If the "abc" shifts over to the "def"
-+ which then move together around the end of the current
-+ line and onto the next as you insert, you have the second
-+ type of terminal, and should give the capability <STRONG>in</STRONG>, which
-+ stands for "insert null".
-+
-+ While these are two logically separate attributes (one
-+ line versus multi-line insert mode, and special treatment
-+ of untyped spaces) we have seen no terminals whose insert
-+ mode cannot be described with the single attribute.
-
-- Terminfo can describe both terminals which have an insert
-+ Terminfo can describe both terminals which have an insert
- mode, and terminals which send a simple sequence to open a
-- blank position on the current line. Give as <STRONG>smir</STRONG> the
-- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
-- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
-- sequence needed to be sent just before sending the
-- character to be inserted. Most terminals with a true
-- insert mode will not give <STRONG>ich1</STRONG>; terminals which send a
-- sequence to open a screen position should give it here.
--
-- If your terminal has both, insert mode is usually prefer-
-- able to <STRONG>ich1</STRONG>. Technically, you should not give both
-- unless the terminal actually requires both to be used in
-- combination. Accordingly, some non-curses applications
-- get confused if both are present; the symptom is doubled
-+ blank position on the current line. Give as <STRONG>smir</STRONG> the
-+ sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
-+ sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
-+ sequence needed to be sent just before sending the charac-
-+ ter to be inserted. Most terminals with a true insert
-+ mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
-+ to open a screen position should give it here.
-+
-+ If your terminal has both, insert mode is usually prefer-
-+ able to <STRONG>ich1</STRONG>. Technically, you should not give both
-+ unless the terminal actually requires both to be used in
-+ combination. Accordingly, some non-curses applications
-+ get confused if both are present; the symptom is doubled
- characters in an update using insert. This requirement is
- now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
- and most smir insert modes do not require <STRONG>ich1</STRONG> before each
-- character. Therefore, the new <STRONG>curses</STRONG> actually assumes
-- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
-+ character. Therefore, the new <STRONG>curses</STRONG> actually assumes
-+ this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
- appropriate (but not both). If you have to write an entry
-- to be used under new curses for a terminal old enough to
-+ to be used under new curses for a terminal old enough to
- need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
-
- If post insert padding is needed, give this as a number of
-- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
-- which may need to be sent after an insert of a single
-+ milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
-+ which may need to be sent after an insert of a single
- character may also be given in <STRONG>ip</STRONG>. If your terminal needs
- both to be placed into an `insert mode' and a special code
-- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
-- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
-+ to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
-+ and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
- capability, with one parameter, <EM>n</EM>, will repeat the effects
- of <STRONG>ich1</STRONG> <EM>n</EM> times.
-
- If padding is necessary between characters typed while not
-- in insert mode, give this as a number of milliseconds
-- padding in <STRONG>rmp</STRONG>.
-+ in insert mode, give this as a number of milliseconds pad-
-+ ding in <STRONG>rmp</STRONG>.
-
-- It is occasionally necessary to move around while in
-- insert mode to delete characters on the same line (e.g.,
-- if there is a tab after the insertion position). If your
-- terminal allows motion while in insert mode you can give
-- the capability <STRONG>mir</STRONG> to speed up inserting in this case.
-- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
-+ It is occasionally necessary to move around while in
-+ insert mode to delete characters on the same line (e.g.,
-+ if there is a tab after the insertion position). If your
-+ terminal allows motion while in insert mode you can give
-+ the capability <STRONG>mir</STRONG> to speed up inserting in this case.
-+ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
- (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
- their insert mode works.
-
-- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
-- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
-- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
-- delete mode (any mode the terminal needs to be placed in
-+ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
-+ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
-+ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
-+ delete mode (any mode the terminal needs to be placed in
- for <STRONG>dch1</STRONG> to work).
-
-- A command to erase <EM>n</EM> characters (equivalent to outputting
-- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
-+ A command to erase <EM>n</EM> characters (equivalent to outputting
-+ <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
- with one parameter.
-
--
- <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
- If your terminal has one or more kinds of display
-- attributes, these can be represented in a number of dif-
-+ attributes, these can be represented in a number of dif-
- ferent ways. You should choose one display form as <EM>stand-</EM>
- <EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
-- eyes, format for highlighting error messages and other
-- attention getters. (If you have a choice, reverse video
-- plus half-bright is good, or reverse video alone.) The
-- sequences to enter and exit standout mode are given as
-- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
-- or out of standout mode leaves one or even two blank
-- spaces on the screen, as the TVI 912 and Teleray 1061 do,
-+ eyes, format for highlighting error messages and other
-+ attention getters. (If you have a choice, reverse video
-+ plus half-bright is good, or reverse video alone.) The
-+ sequences to enter and exit standout mode are given as
-+ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
-+ or out of standout mode leaves one or even two blank spa-
-+ ces on the screen, as the TVI 912 and Teleray 1061 do,
- then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
-
- Codes to begin underlining and end underlining can be
-@@ -1605,19 +1677,18 @@
-
- For example, the DEC vt220 supports most of the modes:
-
-+ <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
-
-- <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
--
-- none none \E[0m
-- p1 standout \E[0;1;7m
-- p2 underline \E[0;4m
-- p3 reverse \E[0;7m
-- p4 blink \E[0;5m
-- p5 dim not available
-- p6 bold \E[0;1m
-- p7 invis \E[0;8m
-- p8 protect not used
-- p9 altcharset ^O (off) ^N (on)
-+ none none \E[0m
-+ p1 standout \E[0;1;7m
-+ p2 underline \E[0;4m
-+ p3 reverse \E[0;7m
-+ p4 blink \E[0;5m
-+ p5 dim not available
-+ p6 bold \E[0;1m
-+ p7 invis \E[0;8m
-+ p8 protect not used
-+ p9 altcharset ^O (off) ^N (on)
-
- We begin each escape sequence by turning off any existing
- modes, since there is no quick way to determine whether
-@@ -1637,18 +1708,17 @@
- Writing out the above sequences, along with their depen-
- dencies yields
-
-+ <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
-
-- <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
-
-- \E[0 always \E[0
-- ;1 if p1 or p6 %?%p1%p6%|%t;1%;
-- ;4 if p2 %?%p2%|%t;4%;
-- ;5 if p4 %?%p4%|%t;5%;
--
-- ;7 if p1 or p3 %?%p1%p3%|%t;7%;
-- ;8 if p7 %?%p7%|%t;8%;
-- m always m
-- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-+ \E[0 always \E[0
-+ ;1 if p1 or p6 %?%p1%p6%|%t;1%;
-+ ;4 if p2 %?%p2%|%t;4%;
-+ ;5 if p4 %?%p4%|%t;5%;
-+ ;7 if p1 or p3 %?%p1%p3%|%t;7%;
-+ ;8 if p7 %?%p7%|%t;8%;
-+ m always m
-+ ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-
- Putting this all together into the sgr sequence gives:
-
-@@ -1664,8 +1734,8 @@
- assumes that sgr0 does not exit alternate character set
- mode.
-
-- Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
-- special ``cookies'' when they receive mode-setting
-+ Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit
-+ special "cookies" when they receive mode-setting
- sequences, which affect the display algorithm rather than
- having extra bits for each character. Some terminals,
- such as the HP 2621, automatically leave standout mode
-@@ -1695,7 +1765,6 @@
- erasable with a blank, then this should be indicated by
- giving <STRONG>eo</STRONG>.
-
--
- <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
- If the terminal has a keypad that transmits codes when the
- keys are pressed, this information can be given. Note
-@@ -1704,27 +1773,57 @@
- unshifted HP 2621 keys). If the keypad can be set to
- transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
- <STRONG>rmkx</STRONG>. Otherwise the keypad is assumed to always transmit.
-- The codes sent by the left arrow, right arrow, up arrow,
-- down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
-- <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
-- tion keys such as f0, f1, ..., f10, the codes they send
-- can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
-- labels other than the default f0 through f10, the labels
-- can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes
-- transmitted by certain other special keys can be given:
-- <STRONG>kll</STRONG> (home down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs),
-- <STRONG>kctab</STRONG> (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear
-- screen or erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG>
-- (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
-- of line), <STRONG>ked</STRONG> (clear to end of screen), <STRONG>kich1</STRONG> (insert
-- character or enter insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG>
-- (next page), <STRONG>kpp</STRONG> (previous page), <STRONG>kind</STRONG> (scroll for-
-- ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
-- in this column). In addition, if the keypad has a 3 by 3
-- array of keys including the four arrow keys, the other
-- five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.
-- These keys are useful when the effects of a 3 by 3 direc-
-- tional pad are needed.
-+
-+ The codes sent by the left arrow, right arrow, up arrow,
-+ down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
-+ <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
-+ tion keys such as f0, f1, ..., f10, the codes they send
-+ can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
-+ labels other than the default f0 through f10, the labels
-+ can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.
-+
-+ The codes transmitted by certain other special keys can be
-+ given:
-+
-+ <STRONG>o</STRONG> <STRONG>kll</STRONG> (home down),
-+
-+ <STRONG>o</STRONG> <STRONG>kbs</STRONG> (backspace),
-+
-+ <STRONG>o</STRONG> <STRONG>ktbc</STRONG> (clear all tabs),
-+
-+ <STRONG>o</STRONG> <STRONG>kctab</STRONG> (clear the tab stop in this column),
-+
-+ <STRONG>o</STRONG> <STRONG>kclr</STRONG> (clear screen or erase key),
-+
-+ <STRONG>o</STRONG> <STRONG>kdch1</STRONG> (delete character),
-+
-+ <STRONG>o</STRONG> <STRONG>kdl1</STRONG> (delete line),
-+
-+ <STRONG>o</STRONG> <STRONG>krmir</STRONG> (exit insert mode),
-+
-+ <STRONG>o</STRONG> <STRONG>kel</STRONG> (clear to end of line),
-+
-+ <STRONG>o</STRONG> <STRONG>ked</STRONG> (clear to end of screen),
-+
-+ <STRONG>o</STRONG> <STRONG>kich1</STRONG> (insert character or enter insert mode),
-+
-+ <STRONG>o</STRONG> <STRONG>kil1</STRONG> (insert line),
-+
-+ <STRONG>o</STRONG> <STRONG>knp</STRONG> (next page),
-+
-+ <STRONG>o</STRONG> <STRONG>kpp</STRONG> (previous page),
-+
-+ <STRONG>o</STRONG> <STRONG>kind</STRONG> (scroll forward/down),
-+
-+ <STRONG>o</STRONG> <STRONG>kri</STRONG> (scroll backward/up),
-+
-+ <STRONG>o</STRONG> <STRONG>khts</STRONG> (set a tab stop in this column).
-+
-+ In addition, if the keypad has a 3 by 3 array of keys
-+ including the four arrow keys, the other five keys can be
-+ given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are use-
-+ ful when the effects of a 3 by 3 directional pad are
-+ needed.
-
- Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
- <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
-@@ -1746,12 +1845,11 @@
- or more pln sequences to make sure that the change becomes
- visible.
-
--
- <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
- If the terminal has hardware tabs, the command to advance
- to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
-- I). A ``back-tab'' command which moves leftward to the
-- preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
-+ I). A "back-tab" command which moves leftward to the pre-
-+ ceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
- the teletype modes indicate that tabs are being expanded
- by the computer rather than being sent to the terminal,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
-@@ -1851,7 +1949,6 @@
- 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
-@@ -1883,110 +1980,105 @@
- The boolean capability <STRONG>eslok</STRONG> specifies that escape
- sequences, tabs, etc., work ordinarily in the status line.
-
-- The <STRONG>ncurses</STRONG> implementation does not yet use any of these
-- capabilities. They are documented here in case they ever
-+ The <STRONG>ncurses</STRONG> implementation does not yet use any of these
-+ capabilities. They are documented here in case they ever
- become important.
-
--
- <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
-- Many terminals have alternate character sets useful for
-- forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
-- the drawing characters supported by the VT100, with some
-- characters from the AT&amp;T 4410v1 added. This alternate
-+ Many terminals have alternate character sets useful for
-+ forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
-+ the drawing characters supported by the VT100, with some
-+ characters from the AT&amp;T 4410v1 added. This alternate
- character set may be specified by the <STRONG>acsc</STRONG> capability.
-
--
-- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
-- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
-- UK pound sign ACS_STERLING f }
-- arrow pointing down ACS_DARROW v .
-- arrow pointing left ACS_LARROW &lt; ,
-- arrow pointing right ACS_RARROW &gt; +
-- arrow pointing up ACS_UARROW ^ -
-- board of squares ACS_BOARD # h
-- bullet ACS_BULLET o ~
-- checker board (stipple) ACS_CKBOARD : a
-- degree symbol ACS_DEGREE \ f
-- diamond ACS_DIAMOND + `
-- greater-than-or-equal-to ACS_GEQUAL &gt; z
-- greek pi ACS_PI * {
-- horizontal line ACS_HLINE - q
-- lantern symbol ACS_LANTERN # i
-- large plus or crossover ACS_PLUS + n
-- less-than-or-equal-to ACS_LEQUAL &lt; y
--
-- lower left corner ACS_LLCORNER + m
-- lower right corner ACS_LRCORNER + j
-- not-equal ACS_NEQUAL ! |
-- plus/minus ACS_PLMINUS # g
-- scan line 1 ACS_S1 ~ o
-- scan line 3 ACS_S3 - p
-- scan line 7 ACS_S7 - r
-- scan line 9 ACS_S9 _ s
-- solid square block ACS_BLOCK # 0
-- tee pointing down ACS_TTEE + w
-- tee pointing left ACS_RTEE + u
-- tee pointing right ACS_LTEE + t
-- tee pointing up ACS_BTEE + v
-- upper left corner ACS_ULCORNER + l
-- upper right corner ACS_URCORNER + k
-- vertical line ACS_VLINE | x
--
-- The best way to define a new device's graphics set is to
-- add a column to a copy of this table for your terminal,
-- giving the character which (when emitted between
-- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
-- ing graphic. Then read off the VT100/your terminal char-
-- acter pairs right to left in sequence; these become the
-+ <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
-+ <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
-+ UK pound sign ACS_STERLING f }
-+ arrow pointing down ACS_DARROW v .
-+ arrow pointing left ACS_LARROW &lt; ,
-+ arrow pointing right ACS_RARROW &gt; +
-+ arrow pointing up ACS_UARROW ^ -
-+ board of squares ACS_BOARD # h
-+ bullet ACS_BULLET o ~
-+ checker board (stipple) ACS_CKBOARD : a
-+ degree symbol ACS_DEGREE \ f
-+ diamond ACS_DIAMOND + `
-+ greater-than-or-equal-to ACS_GEQUAL &gt; z
-+ greek pi ACS_PI * {
-+ horizontal line ACS_HLINE - q
-+ lantern symbol ACS_LANTERN # i
-+ large plus or crossover ACS_PLUS + n
-+ less-than-or-equal-to ACS_LEQUAL &lt; y
-+ lower left corner ACS_LLCORNER + m
-+ lower right corner ACS_LRCORNER + j
-+ not-equal ACS_NEQUAL ! |
-+ plus/minus ACS_PLMINUS # g
-+ scan line 1 ACS_S1 ~ o
-+ scan line 3 ACS_S3 - p
-+ scan line 7 ACS_S7 - r
-+ scan line 9 ACS_S9 _ s
-+ solid square block ACS_BLOCK # 0
-+ tee pointing down ACS_TTEE + w
-+ tee pointing left ACS_RTEE + u
-+ tee pointing right ACS_LTEE + t
-+ tee pointing up ACS_BTEE + v
-+ upper left corner ACS_ULCORNER + l
-+ upper right corner ACS_URCORNER + k
-+ vertical line ACS_VLINE | x
-+
-+ The best way to define a new device's graphics set is to
-+ add a column to a copy of this table for your terminal,
-+ giving the character which (when emitted between
-+ <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
-+ ing graphic. Then read off the VT100/your terminal char-
-+ acter pairs right to left in sequence; these become the
- ACSC string.
-
--
- <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
-- Most color terminals are either `Tektronix-like' or `HP-
-- like'. Tektronix-like terminals have a predefined set of
-- N colors (where N usually 8), and can set character-cell
-+ Most color terminals are either `Tektronix-like' or `HP-
-+ like'. Tektronix-like terminals have a predefined set of
-+ N colors (where N usually 8), and can set character-cell
- foreground and background characters independently, mixing
-- them into N * N color-pairs. On HP-like terminals, the
-+ them into N * N color-pairs. On HP-like terminals, the
- use must set each color pair up separately (foreground and
-- background are not independently settable). Up to M
-- color-pairs may be set up from 2*M different colors.
-+ background are not independently settable). Up to M
-+ color-pairs may be set up from 2*M different colors.
- ANSI-compatible terminals are Tektronix-like.
-
- Some basic color capabilities are independent of the color
- method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
-- the maximum numbers of colors and color-pairs that can be
-- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
-- resets foreground and background colors to their default
-- values for the terminal. The <STRONG>oc</STRONG> string resets all colors
-- or color-pairs to their default values for the terminal.
-- Some terminals (including many PC terminal emulators)
-- erase screen areas with the current background color
-- rather than the power-up default background; these should
-+ the maximum numbers of colors and color-pairs that can be
-+ displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
-+ resets foreground and background colors to their default
-+ values for the terminal. The <STRONG>oc</STRONG> string resets all colors
-+ or color-pairs to their default values for the terminal.
-+ Some terminals (including many PC terminal emulators)
-+ erase screen areas with the current background color
-+ rather than the power-up default background; these should
- have the boolean capability <STRONG>bce</STRONG>.
-
-- To change the current foreground or background color on a
-- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
-- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
-- and <STRONG>setb</STRONG> (set background). These take one parameter, the
-+ To change the current foreground or background color on a
-+ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
-+ and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
-+ and <STRONG>setb</STRONG> (set background). These take one parameter, the
- color number. The SVr4 documentation describes only
-- <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
-+ <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
- supports ANSI escape sequences to set background and fore-
-- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
-- tively. If the terminal supports other escape sequences
-- to set background and foreground, they should be coded as
-- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
-- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
-+ ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
-+ tively. If the terminal supports other escape sequences
-+ to set background and foreground, they should be coded as
-+ <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
-+ the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
- defined."
-
-- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
-+ The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
- numeric argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>
-- are portably defined as follows (the middle column is the
-+ are portably defined as follows (the middle column is the
- symbolic #define available in the header for the <STRONG>curses</STRONG> or
-- <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
-- these as it likes, but the RGB values indicate normal
-+ <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
-+ these as it likes, but the RGB values indicate normal
- locations in color space.
-
--
- <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
- black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
- red <STRONG>COLOR_RED</STRONG> 1 max,0,0
-@@ -1997,7 +2089,7 @@
- cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max
- white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
-
-- The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
-+ The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
- to a different mapping, i.e.,
-
- <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
-@@ -2009,132 +2101,130 @@
- magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max
- yellow <STRONG>COLOR_YELLOW</STRONG> 6 max,max,0
- white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
-+
- It is important to not confuse the two sets of color capa-
-- bilities; otherwise red/blue will be interchanged on the
-+ bilities; otherwise red/blue will be interchanged on the
- display.
-
-- On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
-+ On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
- parameter to set which color pair is current.
-
-- On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
-- present to indicate that colors can be modified. If so,
-+ On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
-+ present to indicate that colors can be modified. If so,
- the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
-- - 1)and three more parameters which describe the color.
-+ - 1)and three more parameters which describe the color.
- These three parameters default to being interpreted as RGB
-- (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
-+ (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
- is present, they are instead as HLS (Hue, Lightness, Satu-
- ration) indices. The ranges are terminal-dependent.
-
-- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
-- changing a color-pair value. It will take seven parame-
-- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
-- triples describing first background and then foreground
-- colors. These parameters must be (Red, Green, Blue) or
-+ On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
-+ changing a color-pair value. It will take seven parame-
-+ ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
-+ triples describing first background and then foreground
-+ colors. These parameters must be (Red, Green, Blue) or
- (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
-
-- On some color terminals, colors collide with highlights.
-+ On some color terminals, colors collide with highlights.
- You can register these collisions with the <STRONG>ncv</STRONG> capability.
-- This is a bit-mask of attributes not to be used when col-
-- ors are enabled. The correspondence with the attributes
-+ This is a bit-mask of attributes not to be used when col-
-+ ors are enabled. The correspondence with the attributes
- understood by <STRONG>curses</STRONG> is as follows:
-
--
-- <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
-- A_STANDOUT 0 1
-- A_UNDERLINE 1 2
-- A_REVERSE 2 4
-- A_BLINK 3 8
-- A_DIM 4 16
-- A_BOLD 5 32
-- A_INVIS 6 64
-- A_PROTECT 7 128
-- A_ALTCHARSET 8 256
--
-- For example, on many IBM PC consoles, the underline
-- attribute collides with the foreground color blue and is
-- not available in color mode. These should have an <STRONG>ncv</STRONG>
-+ <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
-+ A_STANDOUT 0 1
-+ A_UNDERLINE 1 2
-+ A_REVERSE 2 4
-+ A_BLINK 3 8
-+ A_DIM 4 16
-+ A_BOLD 5 32
-+ A_INVIS 6 64
-+ A_PROTECT 7 128
-+ A_ALTCHARSET 8 256
-+
-+ For example, on many IBM PC consoles, the underline
-+ attribute collides with the foreground color blue and is
-+ not available in color mode. These should have an <STRONG>ncv</STRONG>
- capability of 2.
-
-- SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
-+ SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
- and optimizes the output in favor of colors.
-
--
- <STRONG>Miscellaneous</STRONG>
-- If the terminal requires other than a null (zero) charac-
-- ter as a pad, then this can be given as pad. Only the
-- first character of the pad string is used. If the termi-
-+ If the terminal requires other than a null (zero) charac-
-+ ter as a pad, then this can be given as pad. Only the
-+ first character of the pad string is used. If the termi-
- nal does not have a pad character, specify npc. Note that
-- ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
-- though the application may set this value to something
-- other than a null, ncurses will test <STRONG>npc</STRONG> first and use
-+ ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
-+ though the application may set this value to something
-+ other than a null, ncurses will test <STRONG>npc</STRONG> first and use
- napms if the terminal has no pad character.
-
-- If the terminal can move up or down half a line, this can
-- be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
-+ If the terminal can move up or down half a line, this can
-+ be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
- down). This is primarily useful for superscripts and sub-
-- scripts on hard-copy terminals. If a hard-copy terminal
-- can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
-+ scripts on hard-copy terminals. If a hard-copy terminal
-+ can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
- (usually control L).
-
-- If there is a command to repeat a given character a given
-- number of times (to save time transmitting a large number
-- of identical characters) this can be indicated with the
-- parameterized string <STRONG>rep</STRONG>. The first parameter is the
-- character to be repeated and the second is the number of
-- times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
-+ If there is a command to repeat a given character a given
-+ number of times (to save time transmitting a large number
-+ of identical characters) this can be indicated with the
-+ parameterized string <STRONG>rep</STRONG>. The first parameter is the
-+ character to be repeated and the second is the number of
-+ times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
- the same as `xxxxxxxxxx'.
-
-- If the terminal has a settable command character, such as
-- the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
-+ If the terminal has a settable command character, such as
-+ the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
- prototype command character is chosen which is used in all
-- capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
-- bility to identify it. The following convention is sup-
-- ported on some UNIX systems: The environment is to be
-- searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
-+ capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
-+ bility to identify it. The following convention is sup-
-+ ported on some UNIX systems: The environment is to be
-+ searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
- of the prototype character are replaced with the character
- in the environment variable.
-
-- Terminal descriptions that do not represent a specific
-+ Terminal descriptions that do not represent a specific
- kind of known terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and
-- <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
-- that programs can complain that they do not know how to
-- talk to the terminal. (This capability does not apply to
-- <EM>virtual</EM> terminal descriptions for which the escape
-+ <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
-+ that programs can complain that they do not know how to
-+ talk to the terminal. (This capability does not apply to
-+ <EM>virtual</EM> terminal descriptions for which the escape
- sequences are known.)
-
-- If the terminal has a ``meta key'' which acts as a shift
-- key, setting the 8th bit of any character transmitted,
-- this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
-+ If the terminal has a "meta key" which acts as a shift
-+ key, setting the 8th bit of any character transmitted,
-+ this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
- will assume that the 8th bit is parity and it will usually
-- be cleared. If strings exist to turn this ``meta mode''
-- on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
-+ be cleared. If strings exist to turn this "meta mode" on
-+ and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
-
-- If the terminal has more lines of memory than will fit on
-- the screen at once, the number of lines of memory can be
-- indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
-+ If the terminal has more lines of memory than will fit on
-+ the screen at once, the number of lines of memory can be
-+ indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
- number of lines is not fixed, but that there is still more
- memory than fits on the screen.
-
- If the terminal is one of those supported by the UNIX vir-
-- tual terminal protocol, the terminal number can be given
-+ tual terminal protocol, the terminal number can be given
- as <STRONG>vt</STRONG>.
-
- Media copy strings which control an auxiliary printer con-
- nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con-
-- tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
-- turn on the printer. When the printer is on, all text
-- sent to the terminal will be sent to the printer. It is
-+ tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
-+ turn on the printer. When the printer is on, all text
-+ sent to the terminal will be sent to the printer. It is
- undefined whether the text is also displayed on the termi-
- nal screen when the printer is on. A variation <STRONG>mc5p</STRONG> takes
- one parameter, and leaves the printer on for as many char-
-- acters as the value of the parameter, then turns the
-- printer off. The parameter should not exceed 255. All
-+ acters as the value of the parameter, then turns the
-+ printer off. The parameter should not exceed 255. All
- text, including <STRONG>mc4</STRONG>, is transparently passed to the
- printer while an <STRONG>mc5p</STRONG> is in effect.
-
--
- <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
-- Hazeltine terminals, which do not allow `~' characters to
-+ Hazeltine terminals, which do not allow `~' characters to
- be displayed should indicate <STRONG>hz</STRONG>.
-
- Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
-@@ -2149,8 +2239,8 @@
- Note: the variable indicating this is now
- `dest_tabs_magic_smso'; in older versions, it was tel-
- eray_glitch. This glitch is also taken to mean that it is
-- not possible to position the cursor on top of a ``magic
-- cookie'', that to erase standout mode it is instead neces-
-+ not possible to position the cursor on top of a "magic
-+ cookie", that to erase standout mode it is instead neces-
- sary to use delete and insert line. The ncurses implemen-
- tation ignores this glitch.
-
-@@ -2165,7 +2255,6 @@
- Other specific terminal problems may be corrected by
- adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
-
--
- <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
- If there are two very similar terminals, one (the variant)
- can be defined as being just like the other (the base)
-@@ -2183,14 +2272,13 @@
- the use reference that imports it, where <EM>xx</EM> is the capa-
- bility. For example, the entry
-
-- 2621-nl, smkx@, rmkx@, use=2621,
-+ 2621-nl, smkx@, rmkx@, use=2621,
-
- defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
- capabilities, and hence does not turn on the function key
- labels when in visual mode. This is useful for different
- modes for a terminal, or for different user preferences.
-
--
- <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
- Long terminfo entries are unlikely to be a problem; to
- date, no entry has even approached terminfo's 4096-byte
-@@ -2229,21 +2317,21 @@
- libraries strip off the final newline, too (GNU termcap
- does not). Now suppose:
-
-- * a termcap entry before expansion is more than 1023
-- bytes long,
-+ <STRONG>o</STRONG> a termcap entry before expansion is more than 1023
-+ bytes long,
-
-- * and the application has only allocated a 1k buffer,
-+ <STRONG>o</STRONG> and the application has only allocated a 1k buffer,
-
-- * and the termcap library (like the one in BSD/OS 1.1
-- and GNU) reads the whole entry into the buffer, no
-- matter what its length, to see if it is the entry it
-- wants,
--
-- * and <STRONG>tgetent()</STRONG> is searching for a terminal type that
-- either is the long entry, appears in the termcap file
-- after the long entry, or does not appear in the file
-- at all (so that <STRONG>tgetent()</STRONG> has to search the whole
-- termcap file).
-+ <STRONG>o</STRONG> and the termcap library (like the one in BSD/OS 1.1
-+ and GNU) reads the whole entry into the buffer, no
-+ matter what its length, to see if it is the entry it
-+ wants,
-+
-+ <STRONG>o</STRONG> and <STRONG>tgetent()</STRONG> is searching for a terminal type that
-+ either is the long entry, appears in the termcap file
-+ after the long entry, or does not appear in the file
-+ at all (so that <STRONG>tgetent()</STRONG> has to search the whole
-+ termcap file).
-
- Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack,
- and probably core dump the program. Programs like telnet
-@@ -2288,61 +2376,64 @@
-
- </PRE>
- <H2>EXTENSIONS</H2><PRE>
-- Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
-- SVr4, do not interpret the %A and %O operators in parame-
-+ Searching for terminal descriptions in <STRONG>$HOME/.terminfo</STRONG> and
-+ TERMINFO_DIRS is not supported by older implementations.
-+
-+ Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
-+ SVr4, do not interpret the %A and %O operators in parame-
- ter strings.
-
-- SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
-- while in an alternate-character-set mode (such modes may,
-- among other things, map CR and NL to characters that do
-- not trigger local motions). The <STRONG>ncurses</STRONG> implementation
-- ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
-- bility that an XPG4 implementation making the opposite
-- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
-+ SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
-+ while in an alternate-character-set mode (such modes may,
-+ among other things, map CR and NL to characters that do
-+ not trigger local motions). The <STRONG>ncurses</STRONG> implementation
-+ ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
-+ bility that an XPG4 implementation making the opposite
-+ interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
- to have <STRONG>msgr</STRONG> turned off.
-
-- The <STRONG>ncurses</STRONG> library handles insert-character and insert-
-+ The <STRONG>ncurses</STRONG> library handles insert-character and insert-
- character modes in a slightly non-standard way to get bet-
-- ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
-+ ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
- subsection above.
-
-- The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
-- <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
-+ The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
-+ <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
- standard. They are deduced from the documentation for the
- AT&amp;T 505 terminal.
-
-- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
-- wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
-- and emulators like xterm that can return mouse-tracking
-+ Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
-+ wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
-+ and emulators like xterm that can return mouse-tracking
- information in the keyboard-input stream.
-
-- Different commercial ports of terminfo and curses support
-- different subsets of the XSI Curses standard and (in some
-+ Different commercial ports of terminfo and curses support
-+ different subsets of the XSI Curses standard and (in some
- cases) different extension sets. Here is a summary, accu-
- rate as of October 1995:
-
- <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
- ties.
-
-- <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
-+ <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
- extended string capability (<STRONG>set_pglen</STRONG>).
-
-- <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
-- minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
-- numerics with <STRONG>width_status_line</STRONG>; and the strings with
-+ <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
-+ minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
-+ numerics with <STRONG>width_status_line</STRONG>; and the strings with
- <STRONG>prtr_non</STRONG>.
-
-- <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
-+ <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
- numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func-
-- tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
-+ tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
- <STRONG>label_off</STRONG>, plus some incompatible extensions in the string
- table.
-
-- <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
-- through 63, plus a number of incompatible string table
-+ <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
-+ through 63, plus a number of incompatible string table
- extensions.
-
-- <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
-+ <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
-
-
- </PRE>
-Index: doc/html/man/tic.1m.html
---- ncurses-5.9/doc/html/man/tic.1m.html 2011-04-04 22:46:51.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/tic.1m.html 2013-03-09 22:12:05.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: tic.1m,v 1.47 2010/12/04 18:38:55 tom Exp @
-+ * @Id: tic.1m,v 1.57 2013/02/02 22:09:02 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -52,84 +52,141 @@
-
- </PRE>
- <H2>SYNOPSIS</H2><PRE>
-- <STRONG>tic</STRONG> [<STRONG>-1CGILNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>subset</EM>]
-- [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
-+ <STRONG>tic</STRONG> [<STRONG>-01CDGIKLNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>sub-</EM>
-+ <EM>set</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
-
-
- </PRE>
- <H2>DESCRIPTION</H2><PRE>
-- The command <STRONG>tic</STRONG> translates a <STRONG>terminfo</STRONG> file from source
-+ The <STRONG>tic</STRONG> command translates a <STRONG>terminfo</STRONG> file from source
- format into compiled format. The compiled format is nec-
- essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
-
-- The results are normally placed in the system terminfo
-- directory <STRONG>/usr/share/terminfo</STRONG>. There are two ways to
-- change this behavior.
-+ As described in <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, the database may be either a
-+ directory tree (one file per terminal entry) or a hashed
-+ database (one record per entry). The <STRONG>tic</STRONG> command writes
-+ only one type of entry, depending on how it was built:
-+
-+ <STRONG>o</STRONG> For directory trees, the top-level directory, e.g.,
-+ /usr/share/terminfo, specifies the location of the
-+ database.
-+
-+ <STRONG>o</STRONG> For hashed databases, a filename is needed. If the
-+ given file is not found by that name, but can be found
-+ by adding the suffix ".db", then that is used.
-+
-+ The default name for the hashed database is the same
-+ as the default directory name (only adding a ".db"
-+ suffix).
-+
-+ In either case (directory or hashed database), <STRONG>tic</STRONG> will
-+ create the container if it does not exist. For a direc-
-+ tory, this would be the "terminfo" leaf, versus a "ter-
-+ minfo.db" file.
-
-- First, you may override the system default by setting the
-- variable <STRONG>TERMINFO</STRONG> in your shell environment to a valid
-- (existing) directory name.
--
-- Secondly, if <STRONG>tic</STRONG> cannot get access to <EM>/usr/share/terminfo</EM>
-- or your TERMINFO directory, it looks for the directory
-- <EM>$HOME/.terminfo</EM>; if that directory exists, the entry is
-- placed there.
-+ The results are normally placed in the system terminfo
-+ database <STRONG>/usr/share/terminfo</STRONG>. The compiled terminal
-+ description can be placed in a different terminfo data-
-+ base. There are two ways to achieve this:
-+
-+ <STRONG>o</STRONG> First, you may override the system default either by
-+ using the <STRONG>-o</STRONG> option, or by setting the variable <STRONG>TER-</STRONG>
-+ <STRONG>MINFO</STRONG> in your shell environment to a valid database
-+ location.
-+
-+ <STRONG>o</STRONG> Secondly, if <STRONG>tic</STRONG> cannot write in <EM>/usr/share/terminfo</EM>
-+ or the location specified using your TERMINFO vari-
-+ able, it looks for the directory <EM>$HOME/.terminfo</EM> (or
-+ hashed database <EM>$HOME/.terminfo.db)</EM>; if that location
-+ exists, the entry is placed there.
-
- Libraries that read terminfo entries are expected to check
-- for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if
-- TERMINFO is not set, and finally look in <EM>/usr/share/ter-</EM>
-- <EM>minfo</EM>.
-+ in succession
-+
-+ <STRONG>o</STRONG> a location specified with the TERMINFO environment
-+ variable,
-+
-+ <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>,
-+
-+ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environment
-+ variable,
-+
-+ <STRONG>o</STRONG> a compiled-in list of directories
-+ (/usr/local/ncurses/share/terminfo:/usr/share/ter-
-+ minfo), and
-+
-+ <STRONG>o</STRONG> the system terminfo database (<EM>/usr/share/terminfo</EM>).
-+
-+ <STRONG>OPTIONS</STRONG>
-+ <STRONG>-0</STRONG> restricts the output to a single line
-
- <STRONG>-1</STRONG> restricts the output to a single column
-
- <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities
- rather than discarding them. Capabilities are com-
-- mented by prefixing them with a period. This sets
-- the <STRONG>-x</STRONG> option, because it treats the commented-out
-- entries as user-defined names. If the source is
-- termcap, accept the 2-character names required by
-+ mented by prefixing them with a period. This sets
-+ the <STRONG>-x</STRONG> option, because it treats the commented-out
-+ entries as user-defined names. If the source is
-+ termcap, accept the 2-character names required by
- version 6. Otherwise these are ignored.
-
-- <STRONG>-C</STRONG> Force source translation to termcap format. Note:
-- this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
-+ <STRONG>-C</STRONG> Force source translation to termcap format. Note:
-+ this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
- that it does not merely translate capability names,
-- but also translates terminfo strings to termcap
-+ but also translates terminfo strings to termcap
- format. Capabilities that are not translatable are
-- left in the entry under their terminfo names but
-- commented out with two preceding dots.
-+ left in the entry under their terminfo names but
-+ commented out with two preceding dots. The actual
-+ format used incorporates some improvements for
-+ escaped characters from terminfo format. For a
-+ stricter BSD-compatible translation, add the <STRONG>-K</STRONG>
-+ option.
-
-- <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including
-- syntax problems and bad use links. If you specify
-+ <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including
-+ syntax problems and bad use links. If you specify
- <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this option, the code will print warn-
- ings about entries which, after use resolution, are
-- more than 1023 (4096) bytes long. Due to a fixed
-- buffer length in older termcap libraries (and a
-- documented limit in terminfo), these entries may
-- cause core dumps.
-+ more than 1023 (4096) bytes long. Due to a fixed
-+ buffer length in older termcap libraries, as well
-+ as buggy checking for the buffer length (and a doc-
-+ umented limit in terminfo), these entries may cause
-+ core dumps with other implementations.
-+
-+ <STRONG>-D</STRONG> tells <STRONG>tic</STRONG> to print the database locations that it
-+ knows about, and exit. The first location shown is
-+ the one to which it would write compiled terminal
-+ descriptions. If <STRONG>tic</STRONG> is not able to find a
-+ writable database location according to the rules
-+ summarized above, it will print a diagnostic and
-+ exit with an error rather than printing a list of
-+ database locations.
-
- <STRONG>-e</STRONG> <EM>names</EM>
-- Limit writes and translations to the following
-- comma-separated list of terminals. If any name or
-+ Limit writes and translations to the following
-+ comma-separated list of terminals. If any name or
- alias of a terminal matches one of the names in the
-- list, the entry will be written or translated as
-- normal. Otherwise no output will be generated for
-+ list, the entry will be written or translated as
-+ normal. Otherwise no output will be generated for
- it. The option value is interpreted as a file con-
-- taining the list if it contains a '/'. (Note:
-- depending on how tic was compiled, this option may
-+ taining the list if it contains a '/'. (Note:
-+ depending on how tic was compiled, this option may
- require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.)
-
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
-- if/then/else/endif expressions indented for read-
-+ if/then/else/endif expressions indented for read-
- ability.
-
-- <STRONG>-G</STRONG> Display constant literals in decimal form rather
-+ <STRONG>-G</STRONG> Display constant literals in decimal form rather
- than their character equivalents.
-
-- <STRONG>-g</STRONG> Display constant character literals in quoted form
-+ <STRONG>-g</STRONG> Display constant character literals in quoted form
- rather than their decimal equivalents.
-
- <STRONG>-I</STRONG> Force source translation to terminfo format.
-
-+ <STRONG>-K</STRONG> Suppress some longstanding ncurses extensions to
-+ termcap format, e.g., "\s" for space.
-+
- <STRONG>-L</STRONG> Force source translation to terminfo format using
- the long C variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
-
-@@ -145,8 +202,8 @@
- This option forces a more literal translation that
- also preserves the obsolete capabilities.
-
-- <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given directory. Over-
-- rides the TERMINFO environment variable.
-+ <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location.
-+ Overrides the TERMINFO environment variable.
-
- <STRONG>-R</STRONG><EM>subset</EM>
- Restrict output to a given subset. This option is
-@@ -160,15 +217,15 @@
-
- <STRONG>-r</STRONG> Force entry resolution (so there are no remaining
- tc capabilities) even when doing translation to
-- termcap format. This may be needed if you are
-- preparing a termcap file for a termcap library
-- (such as GNU termcap through version 1.3 or BSD
-- termcap through 4.3BSD) that does not handle multi-
-- ple tc capabilities per entry.
--
-- <STRONG>-s</STRONG> Summarize the compile by showing the directory into
-- which entries are written, and the number of
-- entries which are compiled.
-+ termcap format. This may be needed if you are pre-
-+ paring a termcap file for a termcap library (such
-+ as GNU termcap through version 1.3 or BSD termcap
-+ through 4.3BSD) that does not handle multiple tc
-+ capabilities per entry.
-+
-+ <STRONG>-s</STRONG> Summarize the compile by showing the database loca-
-+ tion into which entries are written, and the number
-+ of entries which are compiled.
-
- <STRONG>-T</STRONG> eliminates size-restrictions on the generated text.
- This is mainly useful for testing and analysis,
-@@ -195,41 +252,48 @@
- 1. If <EM>n</EM> is specified and greater than 1, the level
- of detail is increased.
-
-- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
-- optional. If it is omitted, it defaults to 60.
-+ The debug flag levels are as follows:
-
-- <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is,
-- if you supply a capability name which <STRONG>tic</STRONG> does not
-- recognize, it will infer its type (boolean, number or
-- string) from the syntax and make an extended table
-- entry for that. User-defined capability strings
-- whose name begins with ``k'' are treated as function
-- keys.
-+ 1 Names of files created and linked
-
-- <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
-- in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each description
-- in the file describes the capabilities of a particu-
-- lar terminal.
-+ 2 Information related to the ``use'' facility
-
-- The debug flag levels are as follows:
-+ 3 Statistics from the hashing algorithm
-
-- 1 Names of files created and linked
-+ 5 String-table memory allocations
-
-- 2 Information related to the ``use'' facility
-+ 7 Entries into the string-table
-
-- 3 Statistics from the hashing algorithm
-+ 8 List of tokens encountered by scanner
-
-- 5 String-table memory allocations
-+ 9 All values computed in construction of the
-+ hash table
-
-- 7 Entries into the string-table
-+ If the debug level <EM>n</EM> is not given, it is taken to be
-+ one.
-
-- 8 List of tokens encountered by scanner
-+ <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
-+ optional. If it is omitted, it defaults to 60.
-
-- 9 All values computed in construction of the hash ta-
-- ble
-+ <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is,
-+ if you supply a capability name which <STRONG>tic</STRONG> does not
-+ recognize, it will infer its type (boolean, number or
-+ string) from the syntax and make an extended table
-+ entry for that. User-defined capability strings
-+ whose name begins with ``k'' are treated as function
-+ keys.
-
-- If the debug level <EM>n</EM> is not given, it is taken to be one.
-+ <STRONG>PARAMETERS</STRONG>
-+ <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
-+ in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each descrip-
-+ tion in the file describes the capabilities of a
-+ particular terminal.
-+
-+ If <EM>file</EM> is ``-'', then the data is read from the
-+ standard input. The <EM>file</EM> parameter may also be the
-+ path of a character-device.
-
-+ <STRONG>PROCESSING</STRONG>
- All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
- umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capabil-
- ity.
-@@ -237,10 +301,8 @@
- When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
- entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
- from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
-- created from <EM>file</EM> will be used first. If the environment
-- variable <STRONG>TERMINFO</STRONG> is set, that directory is searched
-- instead of <STRONG>/usr/share/terminfo</STRONG>.) <STRONG>tic</STRONG> duplicates the capa-
-- bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
-+ created from <EM>file</EM> will be used first. <STRONG>tic</STRONG> duplicates the
-+ capabilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
- exception of those capabilities that explicitly are
- defined in the current entry.
-
-@@ -249,52 +311,49 @@
- <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
- for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
-
-- If the environment variable <STRONG>TERMINFO</STRONG> is set, the compiled
-- results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>.
--
- Total compiled entries cannot exceed 4096 bytes. The name
-- field cannot exceed 512 bytes. Terminal names exceeding
-- the maximum alias length (32 characters on systems with
-+ field cannot exceed 512 bytes. Terminal names exceeding
-+ the maximum alias length (32 characters on systems with
- long filenames, 14 characters otherwise) will be truncated
-- to the maximum alias length and a warning message will be
-+ to the maximum alias length and a warning message will be
- printed.
-
-
- </PRE>
- <H2>COMPATIBILITY</H2><PRE>
-- There is some evidence that historic <STRONG>tic</STRONG> implementations
-- treated description fields with no whitespace in them as
-- additional aliases or short names. This <STRONG>tic</STRONG> does not do
-- that, but it does warn when description fields may be
-- treated that way and check them for dangerous characters.
-+ There is some evidence that historic <STRONG>tic</STRONG> implementations
-+ treated description fields with no whitespace in them as
-+ additional aliases or short names. This <STRONG>tic</STRONG> does not do
-+ that, but it does warn when description fields may be
-+ treated that way and check them for dangerous characters.
-
-
- </PRE>
- <H2>EXTENSIONS</H2><PRE>
-- Unlike the stock SVr4 <STRONG>tic</STRONG> command, this implementation can
-- actually compile termcap sources. In fact, entries in
-- terminfo and termcap syntax can be mixed in a single
-- source file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap
-- names taken to be equivalent to terminfo names.
-+ Unlike the SVr4 <STRONG>tic</STRONG> command, this implementation can actu-
-+ ally compile termcap sources. In fact, entries in ter-
-+ minfo and termcap syntax can be mixed in a single source
-+ file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap names taken
-+ to be equivalent to terminfo names.
-
- The SVr4 manual pages are not clear on the resolution
- rules for <STRONG>use</STRONG> capabilities. This implementation of <STRONG>tic</STRONG>
- will find <STRONG>use</STRONG> targets anywhere in the source file, or any-
- where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> is
-- defined), or in the user's <EM>$HOME/.terminfo</EM> directory (if
-- it exists), or (finally) anywhere in the system's file
-- tree of compiled entries.
-+ defined), or in the user's <EM>$HOME/.terminfo</EM> database (if it
-+ exists), or (finally) anywhere in the system's file tree
-+ of compiled entries.
-
- The error messages from this <STRONG>tic</STRONG> have the same format as
- GNU C error messages, and can be parsed by GNU Emacs's
- compile facility.
-
-- The <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-o</STRONG>, <STRONG>-r</STRONG>,
-- <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under SVr4. The
-- SVr4 <STRONG>-c</STRONG> mode does not report bad use links.
-+ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>,
-+ <STRONG>-o</STRONG>, <STRONG>-r</STRONG>, <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under
-+ SVr4. The SVr4 <STRONG>-c</STRONG> mode does not report bad use links.
-
- System V does not compile entries to or read entries from
-- your <EM>$HOME/.terminfo</EM> directory unless TERMINFO is explic-
-+ your <EM>$HOME/.terminfo</EM> database unless TERMINFO is explic-
- itly set to it.
-
-
-@@ -307,9 +366,9 @@
- </PRE>
- <H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
-- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
- </PRE>
-Index: doc/html/man/toe.1m.html
---- ncurses-5.9/doc/html/man/toe.1m.html 2011-04-04 22:46:51.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/toe.1m.html 2013-03-09 22:12:05.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: toe.1m,v 1.23 2010/12/04 18:40:45 tom Exp @
-+ * @Id: toe.1m,v 1.26 2012/01/01 00:40:51 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -52,7 +52,7 @@
-
- </PRE>
- <H2>SYNOPSIS</H2><PRE>
-- <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahuUV</STRONG>] <EM>file...</EM>
-+ <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahsuUV</STRONG>] <EM>file...</EM>
-
-
- </PRE>
-@@ -71,6 +71,14 @@
- ncurses would search, rather than only the first
- one that it finds.
-
-+ If the <STRONG>-s</STRONG> is also given, <STRONG>toe</STRONG> adds a column to the
-+ report, showing (like <STRONG><A HREF="conflict.1.html">conflict(1)</A></STRONG>) which entries
-+ which belong to a given terminal database. An "*"
-+ marks entries which differ, and "+" marks equiva-
-+ lent entries.
-+
-+ <STRONG>-s</STRONG> sort the output by the entry names.
-+
- <STRONG>-u</STRONG> <EM>file</EM>
- says to write a report to the standard output,
- listing dependencies in the given terminfo/termcap
-@@ -111,7 +119,7 @@
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/tput.1.html
---- ncurses-5.9/doc/html/man/tput.1.html 2011-04-04 22:46:51.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/tput.1.html 2013-03-09 22:12:05.000000000 +0000
-@@ -2,7 +2,7 @@
- <!--
- * t
- ****************************************************************************
-- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: tput.1,v 1.29 2010/12/04 18:41:07 tom Exp @
-+ * @Id: tput.1,v 1.32 2012/07/14 21:06:45 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -95,54 +95,53 @@
- option is unnecessary, because the default is taken
- from the environment variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is spec-
- ified, then the shell variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG>
-- will be ignored,and the operating system will not
-- be queried for the actual screen size.
-+ will also be ignored.
-
- <EM>capname</EM>
-- indicates the capability from the <STRONG>terminfo</STRONG>
-- database. When <STRONG>termcap</STRONG> support is compiled in, the
-+ indicates the capability from the <STRONG>terminfo</STRONG> data-
-+ base. When <STRONG>termcap</STRONG> support is compiled in, the
- <STRONG>termcap</STRONG> name for the capability is also accepted.
-
-- <EM>parms</EM> If the capability is a string that takes parame-
-+ <EM>parms</EM> If the capability is a string that takes parame-
- ters, the arguments <EM>parms</EM> will be instantiated into
- the string.
-
-- Most parameters are numbers. Only a few terminfo
-+ Most parameters are numbers. Only a few terminfo
- capabilities require string parameters; <STRONG>tput</STRONG> uses a
- table to decide which to pass as strings. Normally
-- <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution.
-+ <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution.
- If no parameters are given for the capability, <STRONG>tput</STRONG>
-- writes the string without performing the
-- substitution.
-+ writes the string without performing the substitu-
-+ tion.
-
-- <STRONG>-S</STRONG> allows more than one capability per invocation of
-+ <STRONG>-S</STRONG> allows more than one capability per invocation of
- <STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from
- the standard input instead of from the command line
-- (see example). Only one <EM>capname</EM> is allowed per
-- line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
-- and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
-+ (see example). Only one <EM>capname</EM> is allowed per
-+ line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
-+ and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
- CODES section).
-
- Again, <STRONG>tput</STRONG> uses a table and the presence of param-
-- eters in its input to decide whether to use <STRONG>tparm</STRONG>
-+ eters in its input to decide whether to use <STRONG>tparm</STRONG>
- (3x), and how to interpret the parameters.
-
-- <STRONG>-V</STRONG> reports the version of ncurses which was used in
-+ <STRONG>-V</STRONG> reports the version of ncurses which was used in
- this program, and exits.
-
-- <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry
-+ <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry
- for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above),
- the following will occur:
-
-- (1) if present, the terminal's initialization
-- strings will be output as detailed in the
-- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM>
-+ (1) if present, the terminal's initialization
-+ strings will be output as detailed in the
-+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM>
- <EM>tion</EM>,
-
-- (2) any delays (e.g., newline) specified in the
-+ (2) any delays (e.g., newline) specified in the
- entry will be set in the tty driver,
-
-- (3) tabs expansion will be turned on or off
-+ (3) tabs expansion will be turned on or off
- according to the specification in the entry,
- and
-
-@@ -153,22 +152,22 @@
- for any of the four above activities, that activity
- will silently be skipped.
-
-- <STRONG>reset</STRONG> Instead of putting out initialization strings, the
-- terminal's reset strings will be output if present
-- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not
-- present, but initialization strings are, the ini-
-- tialization strings will be output. Otherwise,
-+ <STRONG>reset</STRONG> Instead of putting out initialization strings, the
-+ terminal's reset strings will be output if present
-+ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not
-+ present, but initialization strings are, the ini-
-+ tialization strings will be output. Otherwise,
- <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
-
- <STRONG>longname</STRONG>
-- If the <STRONG>terminfo</STRONG> database is present and an entry
-- for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
-+ If the <STRONG>terminfo</STRONG> database is present and an entry
-+ for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
- then the long name of the terminal will be put out.
- The long name is the last name in the first line of
- the terminal's description in the <STRONG>terminfo</STRONG> database
- [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
-
-- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
-+ If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
- same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. See <STRONG>tset</STRONG> for comparison, which
- has similar behavior.
-
-@@ -177,13 +176,13 @@
- <H2>EXAMPLES</H2><PRE>
- <STRONG>tput</STRONG> <STRONG>init</STRONG>
- Initialize the terminal according to the type of ter-
-- minal in the environmental variable <STRONG>TERM</STRONG>. This com-
-- mand should be included in everyone's .profile after
-+ minal in the environmental variable <STRONG>TERM</STRONG>. This com-
-+ mand should be included in everyone's .profile after
- the environmental variable <STRONG>TERM</STRONG> has been exported, as
- illustrated on the <STRONG><A HREF="profile.5.html">profile(5)</A></STRONG> manual page.
-
- <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
-- Reset an AT&amp;T 5620 terminal, overriding the type of
-+ Reset an AT&amp;T 5620 terminal, overriding the type of
- terminal in the environmental variable <STRONG>TERM</STRONG>.
-
- <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
-@@ -263,29 +262,29 @@
- type of <EM>capname</EM>:
-
- <EM>boolean</EM>
-- a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
-+ a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
-
-- <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
-- for this terminal <EM>type</EM> (the value of <EM>capname</EM>
-- is returned on standard output); a value of <STRONG>1</STRONG>
-+ <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
-+ for this terminal <EM>type</EM> (the value of <EM>capname</EM>
-+ is returned on standard output); a value of <STRONG>1</STRONG>
- is set if <EM>capname</EM> is not defined for this ter-
-- minal <EM>type</EM> (nothing is written to standard
-+ minal <EM>type</EM> (nothing is written to standard
- output).
-
- <EM>integer</EM>
-- a value of <STRONG>0</STRONG> is always set, whether or not
-+ a value of <STRONG>0</STRONG> is always set, whether or not
- <EM>capname</EM> is defined for this terminal <EM>type</EM>. To
-- determine if <EM>capname</EM> is defined for this ter-
-+ determine if <EM>capname</EM> is defined for this ter-
- minal <EM>type</EM>, the user must test the value writ-
-- ten to standard output. A value of <STRONG>-1</STRONG> means
-- that <EM>capname</EM> is not defined for this terminal
-+ ten to standard output. A value of <STRONG>-1</STRONG> means
-+ that <EM>capname</EM> is not defined for this terminal
- <EM>type</EM>.
-
-- <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec-
-- tive files. In that case, the exit code is
-+ <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec-
-+ tive files. In that case, the exit code is
- set to 4 + <STRONG>errno</STRONG>.
-
-- Any other exit code indicates an error; see the DIAGNOS-
-+ Any other exit code indicates an error; see the DIAGNOS-
- TICS section.
-
-
-@@ -294,11 +293,10 @@
- <STRONG>tput</STRONG> prints the following error messages and sets the cor-
- responding exit codes.
-
--
- exit code error message
- ---------------------------------------------------------------------
-- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
-- the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
-+ <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
-+ the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
- <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
- <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
- <STRONG>2</STRONG> usage error
-@@ -310,25 +308,37 @@
-
- </PRE>
- <H2>PORTABILITY</H2><PRE>
-- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
-- tion features used in the <STRONG>cup</STRONG> example, are not supported
-+ The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
-+ tion features used in the <STRONG>cup</STRONG> example, are not supported
- in BSD curses or in AT&amp;T/USL curses before SVr4.
-
-- X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and
-- <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM>
-+ X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and
-+ <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM>
- <EM>name</EM> support. Other implementations of <STRONG>tput</STRONG> on SVr4-based
- systems such as Solaris, IRIX64 and HPUX as well as others
-- such as AIX and Tru64 provide support for <EM>capname</EM>
-- operands. A few platforms such as FreeBSD and NetBSD rec-
-- ognize termcap names rather than terminfo capability names
-- in their respective <STRONG>tput</STRONG> commands.
-+ such as AIX and Tru64 provide support for <EM>capname</EM> oper-
-+ ands.
-+
-+ A few platforms such as FreeBSD and NetBSD recognize term-
-+ cap names rather than terminfo capability names in their
-+ respective <STRONG>tput</STRONG> commands.
-+
-+ Most implementations which provide support for <EM>capname</EM> op-
-+ erands use the <EM>tparm</EM> function to expand parameters in it.
-+ That function expects a mixture of numeric and string
-+ parameters, requiring <STRONG>tput</STRONG> to know which type to use.
-+ This implementation uses a table to determine that for the
-+ standard <EM>capname</EM> operands, and an internal library func-
-+ tion to analyze nonstandard <EM>capname</EM> operands. Other
-+ implementations may simply guess that an operand contain-
-+ ing only digits is intended to be a number.
-
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-+ <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/man/tset.1.html
---- ncurses-5.9/doc/html/man/tset.1.html 2011-04-04 22:46:52.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/man/tset.1.html 2013-03-09 22:12:05.000000000 +0000
-@@ -1,7 +1,7 @@
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
- <!--
- ****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************
-- * @Id: tset.1,v 1.25 2010/12/04 18:38:55 tom Exp @
-+ * @Id: tset.1,v 1.27 2011/12/17 23:20:35 tom Exp @
- -->
- <HTML>
- <HEAD>
-@@ -116,8 +116,9 @@
-
- The options are as follows:
-
-- <STRONG>-c</STRONG> Set control characters and modes. <STRONG>-e</STRONG> Set the erase
-- character to <EM>ch</EM>.
-+ <STRONG>-c</STRONG> Set control characters and modes.
-+
-+ <STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
-
- <STRONG>-I</STRONG> Do not send the terminal or tab initialization
- strings to the terminal.
-@@ -126,51 +127,51 @@
-
- <STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
-
-- <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
-+ <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
- See the section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more infor-
- mation.
-
-- <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
-+ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
- and line kill characters. Normally <STRONG>tset</STRONG> displays the
-- values for control characters which differ from the
-+ values for control characters which differ from the
- system's default values.
-
-- <STRONG>-q</STRONG> The terminal type is displayed to the standard out-
-- put, and the terminal is not initialized in any way.
-+ <STRONG>-q</STRONG> The terminal type is displayed to the standard out-
-+ put, and the terminal is not initialized in any way.
- The option `-' by itself is equivalent but archaic.
-
- <STRONG>-r</STRONG> Print the terminal type to the standard error output.
-
- <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
- the environment variable <STRONG>TERM</STRONG> to the standard output.
-- See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
-+ See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
-
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this
- program, and exits.
-
-- <STRONG>-w</STRONG> Resize the window to match the size deduced via
-+ <STRONG>-w</STRONG> Resize the window to match the size deduced via
- <STRONG>setupterm</STRONG>. Normally this has no effect, unless
- <STRONG>setupterm</STRONG> is not able to detect the window size.
-
- The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be
-- entered as actual characters or by using the `hat' nota-
-- tion, i.e., control-h may be specified as ``^H'' or
-+ entered as actual characters or by using the `hat' nota-
-+ tion, i.e., control-h may be specified as ``^H'' or
- ``^h''.
-
-
- </PRE>
- <H2>SETTING THE ENVIRONMENT</H2><PRE>
-- It is often desirable to enter the terminal type and
-- information about the terminal's capabilities into the
-+ 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 <STRONG>-s</STRONG> option.
-
- 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
-+ 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
-- are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset the
-- shell variable <STRONG>noglob</STRONG>, leaving it unset. The following
-- line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the
-+ are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset the
-+ shell variable <STRONG>noglob</STRONG>, leaving it unset. The following
-+ line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the
- environment correctly:
-
- eval `tset -s options ... `
-@@ -180,107 +181,107 @@
- <H2>TERMINAL TYPE MAPPING</H2><PRE>
- When the terminal is not hardwired into the system (or the
- current system information is incorrect) the terminal type
-- derived from the <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental
-- variable is often something generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>,
-- or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a startup script it is
-- often desirable to provide information about the type of
-+ derived from the <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental
-+ variable is often something generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>,
-+ or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a startup script it is
-+ often desirable to provide information about the type of
- terminal used on such ports.
-
-- The purpose of the <STRONG>-m</STRONG> option is to map from some set of
-- conditions to a terminal type, that is, to tell <STRONG>tset</STRONG> ``If
-- I'm on this port at a particular speed, guess that I'm on
-+ 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 <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
-+ type. The port type is a string (delimited by either the
- operator or the colon character). The operator may be any
- combination of ``&gt;'', ``&lt;'', ``@'', and ``!''; ``&gt;'' means
-- greater than, ``&lt;'' means less than, ``@'' means equal to
-+ greater than, ``&lt;'' means less than, ``@'' means equal to
- and ``!'' inverts the sense of the test. The baud rate is
-- specified as a number and is compared with the speed of
-- the standard error output (which should be the control
-+ specified as a number and is compared with the speed of
-+ the standard error output (which should be the control
- terminal). The terminal type is a string.
-
- If the terminal type is not specified on the command line,
-- the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
-- 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-
-+ 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-
- ble mapping is used.
-
-- For example, consider the following mapping:
-+ For example, consider the following mapping:
- <STRONG>dialup&gt;9600:vt100</STRONG>. The port type is dialup , the operator
-- is &gt;, the baud rate specification is 9600, and the termi-
-+ is &gt;, the baud rate specification is 9600, and the termi-
- nal type is vt100. The result of this mapping is to spec-
- ify that if the terminal type is <STRONG>dialup</STRONG>, and the baud rate
-- is greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will
-+ is greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will
- be used.
-
- 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, <STRONG>-m</STRONG>
-+ type will match any port type. For example, <STRONG>-m</STRONG>
- <STRONG>dialup:vt100</STRONG> <STRONG>-m</STRONG> <STRONG>:?xterm</STRONG> 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
-+ 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.
-
-- 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 <STRONG>-m</STRONG> option argument be
-- placed within single quote characters, and that <STRONG>csh</STRONG> users
-- insert a backslash character (``\'') before any exclama-
-+ 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 <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 (``!'').
-
-
- </PRE>
- <H2>HISTORY</H2><PRE>
-- The <STRONG>tset</STRONG> command appeared in BSD 3.0. The <STRONG>ncurses</STRONG> imple-
-- mentation was lightly adapted from the 4.4BSD sources for
-+ The <STRONG>tset</STRONG> command appeared in BSD 3.0. The <STRONG>ncurses</STRONG> imple-
-+ mentation was lightly adapted from the 4.4BSD sources for
- a terminfo environment by Eric S. Raymond &lt;esr@snark.thyr-
- sus.com&gt;.
-
-
- </PRE>
- <H2>COMPATIBILITY</H2><PRE>
-- The <STRONG>tset</STRONG> utility has been provided for backward-compati-
-- bility with BSD environments (under most modern UNIXes,
-- <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for
-- each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most
-- important use). This implementation behaves like 4.4BSD
-+ The <STRONG>tset</STRONG> utility has been provided for backward-compati-
-+ bility with BSD environments (under most modern UNIXes,
-+ <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for
-+ each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most
-+ important use). This implementation behaves like 4.4BSD
- tset, with a few exceptions specified here.
-
-- The <STRONG>-S</STRONG> option of BSD tset no longer works; it prints an
-+ 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-
-+ <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
- noisily rather than silently induce lossage).
-
-- There was an undocumented 4.4BSD feature that invoking
-+ There was an undocumented 4.4BSD feature that invoking
- tset via a link named `TSET` (or via any other name begin-
-- ning with an upper-case letter) set the terminal to use
-+ ning with an upper-case letter) set the terminal to use
- upper-case only. This feature has been omitted.
-
-- 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>,
-+ 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>,
- <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> 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 <STRONG>-n</STRONG>
-- option remains, but has no effect. The <STRONG>-adnp</STRONG> options are
-+ 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 <STRONG>-n</STRONG>
-+ option remains, but has no effect. The <STRONG>-adnp</STRONG> options are
- therefore omitted from the usage summary above.
-
-- 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
-+ 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
-+ 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.
-@@ -294,7 +295,7 @@
- tells <STRONG>tset</STRONG> whether to initialize <STRONG>TERM</STRONG> using <STRONG>sh</STRONG> or <STRONG>csh</STRONG>
- syntax.
-
-- TERM Denotes your terminal type. Each terminal type is
-+ TERM Denotes your terminal type. Each terminal type is
- distinct, though many are similar.
-
- TERMCAP
-@@ -307,7 +308,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
-@@ -316,10 +317,10 @@
-
- </PRE>
- <H2>SEE ALSO</H2><PRE>
-- <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, ter-
-+ <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, ter-
- <STRONG><A HREF="minfo.5.html">minfo(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
-
-- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
-+ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20130309).
-
-
-
-Index: doc/html/ncurses-intro.html
-Prereq: 1.44
---- ncurses-5.9/doc/html/ncurses-intro.html 2010-12-04 16:46:22.000000000 +0000
-+++ ncurses-5.9-20130504/doc/html/ncurses-intro.html 2012-04-28 21:39:17.000000000 +0000
-@@ -1,8 +1,8 @@
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <!--
-- $Id: ncurses-intro.html,v 1.44 2010/12/04 16:46:22 tom Exp $
-+ $Id: ncurses-intro.html,v 1.45 2012/04/28 21:39:17 Paul.Waring Exp $
- ****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -431,6 +431,7 @@
- Here is a sample program to motivate the discussion:
-
- <PRE>
-+#include &lt;stdlib.h&gt;
- #include &lt;curses.h&gt;
- #include &lt;signal.h&gt;
-
-Index: doc/ncurses-intro.doc
---- ncurses-5.9/doc/ncurses-intro.doc 2007-03-03 23:45:04.000000000 +0000
-+++ ncurses-5.9-20130504/doc/ncurses-intro.doc 2012-04-28 22:48:33.000000000 +0000
-@@ -333,6 +333,7 @@
-
- Here is a sample program to motivate the discussion:
- #include <curses.h>
-+#include <curses.h>
- #include <signal.h>
-
- static void finish(int sig);
-Index: form/Makefile.in
-Prereq: 1.53
---- ncurses-5.9/form/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/form/Makefile.in 2012-09-29 19:37:34.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.53 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.55 2012/09/29 19:37:34 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -102,6 +102,7 @@
- SHLIB_DIRS = -L../lib
- SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-+RPATH_LIST = @RPATH_LIST@
- MK_SHARED_LIB = @MK_SHARED_LIB@
-
- NCURSES_MAJOR = @NCURSES_MAJOR@
-@@ -111,7 +112,7 @@
-
- RANLIB = @LIB_PREP@
-
--LIBRARIES = @LIBS_TO_MAKE@
-+LIBRARIES = @Libs_To_Make@
-
- LINT = @LINT@
- LINT_OPTS = @LINT_OPTS@
-Index: form/fld_arg.c
-Prereq: 1.12
---- ncurses-5.9/form/fld_arg.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_arg.c 2012-06-10 00:27:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_arg.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_arg.c,v 1.13 2012/06/10 00:27:49 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -71,7 +71,7 @@
-
- if (typ != 0 && make_arg != (void *)0)
- {
-- typ->status |= _HAS_ARGS;
-+ SetStatus(typ, _HAS_ARGS);
- typ->makearg = make_arg;
- typ->copyarg = copy_arg;
- typ->freearg = free_arg;
-Index: form/fld_def.c
-Prereq: 1.38
---- ncurses-5.9/form/fld_def.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_def.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_def.c,v 1.38 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_def.c,v 1.40 2012/03/11 00:37:16 tom Exp $")
-
- /* this can't be readonly */
- static FIELD default_field =
-@@ -65,8 +65,7 @@
- NCURSES_FIELD_EXTENSION
- };
-
--NCURSES_EXPORT_VAR(FIELD *)
--_nc_Default_Field = &default_field;
-+NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -186,10 +185,12 @@
- {
- if ((typ->status & _LINKED_TYPE) != 0)
- {
-- assert(argp != 0);
-- _nc_Free_Argument(typ->left, argp->left);
-- _nc_Free_Argument(typ->right, argp->right);
-- free(argp);
-+ if (argp != 0)
-+ {
-+ _nc_Free_Argument(typ->left, argp->left);
-+ _nc_Free_Argument(typ->right, argp->right);
-+ free(argp);
-+ }
- }
- else
- {
-@@ -293,14 +294,14 @@
- {
- T((T_CREATE("field %p"), (void *)New_Field));
- *New_Field = default_field;
-- New_Field->rows = rows;
-- New_Field->cols = cols;
-+ New_Field->rows = (short) rows;
-+ New_Field->cols = (short) cols;
- New_Field->drows = rows + nrow;
- New_Field->dcols = cols;
-- New_Field->frow = frow;
-- New_Field->fcol = fcol;
-+ New_Field->frow = (short) frow;
-+ New_Field->fcol = (short) fcol;
- New_Field->nrow = nrow;
-- New_Field->nbuf = nbuf;
-+ New_Field->nbuf = (short) nbuf;
- New_Field->link = New_Field;
-
- #if USE_WIDEC_SUPPORT
-Index: form/fld_dup.c
-Prereq: 1.13
---- ncurses-5.9/form/fld_dup.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_dup.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_dup.c,v 1.13 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_dup.c,v 1.14 2012/03/11 00:37:16 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -60,8 +60,8 @@
- {
- T((T_CREATE("field %p"), (void *)New_Field));
- *New_Field = *_nc_Default_Field;
-- New_Field->frow = frow;
-- New_Field->fcol = fcol;
-+ New_Field->frow = (short) frow;
-+ New_Field->fcol = (short) fcol;
- New_Field->link = New_Field;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
-Index: form/fld_ftchoice.c
-Prereq: 1.12
---- ncurses-5.9/form/fld_ftchoice.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_ftchoice.c 2012-06-10 00:27:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_ftchoice.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_ftchoice.c,v 1.13 2012/06/10 00:27:49 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -56,7 +56,7 @@
- if (!typ || !next_choice || !prev_choice)
- RETURN(E_BAD_ARGUMENT);
-
-- typ->status |= _HAS_CHOICE;
-+ SetStatus(typ, _HAS_CHOICE);
- #if NCURSES_INTEROP_FUNCS
- typ->enum_next.onext = next_choice;
- typ->enum_prev.oprev = prev_choice;
-Index: form/fld_ftlink.c
-Prereq: 1.14
---- ncurses-5.9/form/fld_ftlink.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_ftlink.c 2012-06-10 00:27:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_ftlink.c,v 1.14 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_ftlink.c,v 1.15 2012/06/10 00:27:49 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -62,11 +62,11 @@
- {
- T((T_CREATE("fieldtype %p"), (void *)nftyp));
- *nftyp = *_nc_Default_FieldType;
-- nftyp->status |= _LINKED_TYPE;
-+ SetStatus(nftyp, _LINKED_TYPE);
- if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
-- nftyp->status |= _HAS_ARGS;
-+ SetStatus(nftyp, _HAS_ARGS);
- if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE))
-- nftyp->status |= _HAS_CHOICE;
-+ SetStatus(nftyp, _HAS_CHOICE);
- nftyp->left = type1;
- nftyp->right = type2;
- type1->ref++;
-Index: form/fld_just.c
-Prereq: 1.12
---- ncurses-5.9/form/fld_just.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_just.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_just.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_just.c,v 1.13 2012/03/11 00:37:16 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -59,7 +59,7 @@
- Normalize_Field(field);
- if (field->just != just)
- {
-- field->just = just;
-+ field->just = (short) just;
- res = _nc_Synchronize_Attributes(field);
- }
- else
-Index: form/fld_link.c
-Prereq: 1.12
---- ncurses-5.9/form/fld_link.c 2010-01-23 21:14:35.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_link.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_link.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
-+MODULE_ID("$Id: fld_link.c,v 1.13 2012/03/11 00:37:16 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -61,8 +61,8 @@
- {
- T((T_CREATE("field %p"), (void *)New_Field));
- *New_Field = *_nc_Default_Field;
-- New_Field->frow = frow;
-- New_Field->fcol = fcol;
-+ New_Field->frow = (short) frow;
-+ New_Field->fcol = (short) fcol;
-
- New_Field->link = field->link;
- field->link = New_Field;
-Index: form/fld_max.c
-Prereq: 1.10
---- ncurses-5.9/form/fld_max.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_max.c 2012-06-10 00:21:24.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_max.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fld_max.c,v 1.12 2012/06/10 00:21:24 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -62,13 +62,13 @@
- RETURN(E_BAD_ARGUMENT);
- }
- field->maxgrow = maxgrow;
-- field->status &= ~_MAY_GROW;
-+ ClrStatus(field, _MAY_GROW);
- if (!(field->opts & O_STATIC))
- {
- if ((maxgrow == 0) ||
- (single_line_field && (field->dcols < maxgrow)) ||
- (!single_line_field && (field->drows < maxgrow)))
-- field->status |= _MAY_GROW;
-+ SetStatus(field, _MAY_GROW);
- }
- }
- RETURN(E_OK);
-Index: form/fld_move.c
-Prereq: 1.10
---- ncurses-5.9/form/fld_move.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_move.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_move.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fld_move.c,v 1.11 2012/03/11 00:37:16 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -56,8 +56,8 @@
- if (field->form)
- RETURN(E_CONNECTED);
-
-- field->frow = frow;
-- field->fcol = fcol;
-+ field->frow = (short) frow;
-+ field->fcol = (short) fcol;
- RETURN(E_OK);
- }
-
-Index: form/fld_page.c
-Prereq: 1.10
---- ncurses-5.9/form/fld_page.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_page.c 2012-06-10 00:12:47.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_page.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fld_page.c,v 1.12 2012/06/10 00:12:47 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -54,9 +54,9 @@
- RETURN(E_CONNECTED);
-
- if (new_page_flag)
-- field->status |= _NEWPAGE;
-+ SetStatus(field, _NEWPAGE);
- else
-- field->status &= ~_NEWPAGE;
-+ ClrStatus(field, _NEWPAGE);
-
- RETURN(E_OK);
- }
-Index: form/fld_stat.c
-Prereq: 1.12
---- ncurses-5.9/form/fld_stat.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fld_stat.c 2012-06-10 00:13:09.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fld_stat.c,v 1.12 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fld_stat.c,v 1.14 2012/06/10 00:13:09 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -51,9 +51,9 @@
- Normalize_Field(field);
-
- if (status)
-- field->status |= _CHANGED;
-+ SetStatus(field, _CHANGED);
- else
-- field->status &= ~_CHANGED;
-+ ClrStatus(field, _CHANGED);
-
- RETURN(E_OK);
- }
-Index: form/form.priv.h
-Prereq: 0.32
---- ncurses-5.9/form/form.priv.h 2009-11-07 21:26:43.000000000 +0000
-+++ ncurses-5.9-20130504/form/form.priv.h 2012-03-11 00:37:46.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,11 +30,11 @@
- * Author: Juergen Pfeifer, 1995,1997 *
- ****************************************************************************/
-
--/* $Id: form.priv.h,v 0.32 2009/11/07 21:26:43 tom Exp $ */
-+/* $Id: form.priv.h,v 0.33 2012/03/11 00:37:46 tom Exp $ */
-
- #ifndef FORM_PRIV_H
- #define FORM_PRIV_H 1
--
-+/* *INDENT-OFF*/
- #include "curses.priv.h"
- #include "mf_common.h"
-
-@@ -119,7 +119,7 @@
-
- /* Calculate the total size of all buffers for this field */
- #define Total_Buffer_Size(field) \
-- ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) * sizeof(FIELD_CELL) )
-+ ( (size_t)(Buffer_Length(field) + 1) * (size_t)(1+(field)->nbuf) * sizeof(FIELD_CELL) )
-
- /* Logic to determine whether or not a field is single lined */
- #define Single_Line_Field(field) \
-@@ -293,5 +293,6 @@
- result = ((*buffer || (l < width)) ? FALSE : TRUE); \
- }
- #endif
-+/* *INDENT-ON*/
-
- #endif /* FORM_PRIV_H */
-Index: form/frm_def.c
-Prereq: 1.25
---- ncurses-5.9/form/frm_def.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_def.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_def.c,v 1.25 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: frm_def.c,v 1.26 2012/03/11 00:37:16 tom Exp $")
-
- /* this can't be readonly */
- static FORM default_form =
-@@ -199,14 +199,14 @@
- for (j = 0; j < field_cnt; j++)
- {
- if (j == 0)
-- pg->pmin = j;
-+ pg->pmin = (short) j;
- else
- {
- if (fields[j]->status & _NEWPAGE)
- {
-- pg->pmax = j - 1;
-+ pg->pmax = (short) (j - 1);
- pg++;
-- pg->pmin = j;
-+ pg->pmin = (short) j;
- }
- }
-
-@@ -214,14 +214,14 @@
- maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
-
- if (form->rows < maximum_row_in_field)
-- form->rows = maximum_row_in_field;
-+ form->rows = (short) maximum_row_in_field;
- if (form->cols < maximum_col_in_field)
-- form->cols = maximum_col_in_field;
-+ form->cols = (short) maximum_col_in_field;
- }
-
-- pg->pmax = field_cnt - 1;
-- form->maxfield = field_cnt;
-- form->maxpage = page_nr;
-+ pg->pmax = (short) (field_cnt - 1);
-+ form->maxfield = (short) field_cnt;
-+ form->maxpage = (short) page_nr;
-
- /* Sort fields on form pages */
- for (page_nr = 0; page_nr < form->maxpage; page_nr++)
-@@ -230,8 +230,8 @@
-
- for (j = form->page[page_nr].pmin; j <= form->page[page_nr].pmax; j++)
- {
-- fields[j]->index = j;
-- fields[j]->page = page_nr;
-+ fields[j]->index = (short) j;
-+ fields[j]->page = (short) page_nr;
- fld = Insert_Field_By_Position(fields[j], fld);
- }
- if (fld)
-Index: form/frm_driver.c
-Prereq: 1.98
---- ncurses-5.9/form/frm_driver.c 2010-05-01 21:11:43.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_driver.c 2013-03-09 22:48:47.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_driver.c,v 1.98 2010/05/01 21:11:43 tom Exp $")
-+MODULE_ID("$Id: frm_driver.c,v 1.103 2013/03/09 22:48:47 tom Exp $")
-
- /*----------------------------------------------------------------------------
- This is the core module of the form library. It contains the majority
-@@ -172,7 +172,7 @@
- instead of a derived window because it contains invisible parts.
- This is true for non-public fields and for scrollable fields. */
- #define Has_Invisible_Parts(field) \
-- (!((field)->opts & O_PUBLIC) || \
-+ (!((unsigned)(field)->opts & O_PUBLIC) || \
- Is_Scroll_Field(field))
-
- /* Logic to decide whether or not a field needs justification */
-@@ -180,7 +180,7 @@
- (((field)->just != NO_JUSTIFICATION) && \
- (Single_Line_Field(field)) && \
- (((field)->dcols == (field)->cols) && \
-- ((field)->opts & O_STATIC)) )
-+ ((unsigned)(field)->opts & O_STATIC)))
-
- /* Logic to determine whether or not a dynamic field may still grow */
- #define Growable(field) ((field)->status & _MAY_GROW)
-@@ -188,13 +188,13 @@
- /* Macro to set the attributes for a fields window */
- #define Set_Field_Window_Attributes(field,win) \
- ( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \
-- (void) wattrset((win),(field)->fore) )
-+ (void) wattrset((win), (int)(field)->fore) )
-
- /* Logic to decide whether or not a field really appears on the form */
- #define Field_Really_Appears(field) \
- ((field->form) &&\
- (field->form->status & _POSTED) &&\
-- (field->opts & O_VISIBLE) &&\
-+ ((unsigned)field->opts & O_VISIBLE) &&\
- (field->page == field->form->curpage))
-
- /* Logic to determine whether or not we are on the first position in the
-@@ -601,8 +601,8 @@
- {
- if (form->status & _WINDOW_MODIFIED)
- {
-- form->status &= ~_WINDOW_MODIFIED;
-- form->status |= _FCHECK_REQUIRED;
-+ ClrStatus(form, _WINDOW_MODIFIED);
-+ SetStatus(form, _FCHECK_REQUIRED);
- Window_To_Buffer(form, form->current);
- wmove(form->w, form->currow, form->curcol);
- }
-@@ -653,7 +653,7 @@
- growth = Minimum(field->maxgrow - field->dcols, growth);
- field->dcols += growth;
- if (field->dcols == field->maxgrow)
-- field->status &= ~_MAY_GROW;
-+ ClrStatus(field, _MAY_GROW);
- }
- else
- {
-@@ -662,7 +662,7 @@
- growth = Minimum(field->maxgrow - field->drows, growth);
- field->drows += growth;
- if (field->drows == field->maxgrow)
-- field->status &= ~_MAY_GROW;
-+ ClrStatus(field, _MAY_GROW);
- }
- /* drows, dcols changed, so we get really the new buffer length */
- new_buflen = Buffer_Length(field);
-@@ -674,7 +674,7 @@
- field->drows = old_drows;
- if ((single_line_field && (field->dcols != field->maxgrow)) ||
- (!single_line_field && (field->drows != field->maxgrow)))
-- field->status |= _MAY_GROW;
-+ SetStatus(field, _MAY_GROW);
- }
- else
- {
-@@ -753,7 +753,7 @@
- (field->dcols != field->maxgrow)) ||
- (!single_line_field &&
- (field->drows != field->maxgrow)))
-- field->status |= _MAY_GROW;
-+ SetStatus(field, _MAY_GROW);
- free(newbuf);
- }
- }
-@@ -860,7 +860,7 @@
- field = form->current;
- formwin = Get_Form_Window(form);
-
-- if (field->opts & O_PUBLIC)
-+ if ((unsigned)field->opts & O_PUBLIC)
- {
- if (Is_Scroll_Field(field))
- {
-@@ -897,19 +897,19 @@
- if (form->currow < form->toprow)
- {
- form->toprow = form->currow;
-- field->status |= _NEWTOP;
-+ SetStatus(field, _NEWTOP);
- }
- if (form->currow >= row_after_bottom)
- {
- form->toprow = form->currow - field->rows + 1;
-- field->status |= _NEWTOP;
-+ SetStatus(field, _NEWTOP);
- }
- if (field->status & _NEWTOP)
- {
- /* means we have to copy whole range */
- first_modified_row = form->toprow;
- first_unmodified_row = first_modified_row + field->rows;
-- field->status &= ~_NEWTOP;
-+ ClrStatus(field, _NEWTOP);
- }
- else
- {
-@@ -1111,27 +1111,27 @@
- return E_SYSTEM_ERROR;
- else
- {
-- if (field->opts & O_VISIBLE)
-+ if ((unsigned)field->opts & O_VISIBLE)
- {
- Set_Field_Window_Attributes(field, win);
- }
- else
- {
-- (void)wattrset(win, WINDOW_ATTRS(fwin));
-+ (void)wattrset(win, (int)WINDOW_ATTRS(fwin));
- }
- werase(win);
- }
-
- if (!bEraseFlag)
- {
-- if (field->opts & O_PUBLIC)
-+ if ((unsigned)field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Perform_Justification(field, win);
- else
- Buffer_To_Window(field, win);
- }
-- field->status &= ~_NEWTOP;
-+ ClrStatus(field, _NEWTOP);
- }
- wsyncup(win);
- delwin(win);
-@@ -1170,18 +1170,18 @@
- form->currow = form->curcol = form->toprow = form->begincol = 0;
- werase(form->w);
-
-- if ((field->opts & O_PUBLIC) && Justification_Allowed(field))
-+ if (((unsigned)field->opts & O_PUBLIC) && Justification_Allowed(field))
- Undo_Justification(field, form->w);
- else
- Buffer_To_Window(field, form->w);
-
-- field->status |= _NEWTOP;
-+ SetStatus(field, _NEWTOP);
- res = _nc_Refresh_Current_Field(form);
- }
- else
- res = Display_Field(field);
- }
-- field->status |= _CHANGED;
-+ SetStatus(field, _CHANGED);
- return (res);
- }
-
-@@ -1211,7 +1211,7 @@
- return (E_SYSTEM_ERROR);
-
- for (linked_field = field->link;
-- linked_field != field;
-+ (linked_field != field) && (linked_field != 0);
- linked_field = linked_field->link)
- {
- if (((syncres = Synchronize_Field(linked_field)) != E_OK) &&
-@@ -1256,7 +1256,7 @@
- werase(form->w);
- wmove(form->w, form->currow, form->curcol);
-
-- if (field->opts & O_PUBLIC)
-+ if ((unsigned)field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Undo_Justification(field, form->w);
-@@ -1272,7 +1272,7 @@
- field->rows - 1, field->cols - 1, 0);
- wsyncup(formwin);
- Buffer_To_Window(field, form->w);
-- field->status |= _NEWTOP; /* fake refresh to paint all */
-+ SetStatus(field, _NEWTOP); /* fake refresh to paint all */
- _nc_Refresh_Current_Field(form);
- }
- }
-@@ -1326,34 +1326,34 @@
- field->opts = oldopts;
- returnCode(E_CURRENT);
- }
-- if ((form->curpage == field->page))
-+ if (form->curpage == field->page)
- {
-- if (changed_opts & O_VISIBLE)
-+ if ((unsigned)changed_opts & O_VISIBLE)
- {
-- if (newopts & O_VISIBLE)
-+ if ((unsigned)newopts & O_VISIBLE)
- res = Display_Field(field);
- else
- res = Erase_Field(field);
- }
- else
- {
-- if ((changed_opts & O_PUBLIC) &&
-- (newopts & O_VISIBLE))
-+ if (((unsigned)changed_opts & O_PUBLIC) &&
-+ ((unsigned)newopts & O_VISIBLE))
- res = Display_Field(field);
- }
- }
- }
- }
-
-- if (changed_opts & O_STATIC)
-+ if ((unsigned)changed_opts & O_STATIC)
- {
- bool single_line_field = Single_Line_Field(field);
- int res2 = E_OK;
-
-- if (newopts & O_STATIC)
-+ if ((unsigned)newopts & O_STATIC)
- {
- /* the field becomes now static */
-- field->status &= ~_MAY_GROW;
-+ ClrStatus(field, _MAY_GROW);
- /* if actually we have no hidden columns, justification may
- occur again */
- if (single_line_field &&
-@@ -1371,7 +1371,7 @@
- (single_line_field && (field->dcols < field->maxgrow)) ||
- (!single_line_field && (field->drows < field->maxgrow)))
- {
-- field->status |= _MAY_GROW;
-+ SetStatus(field, _MAY_GROW);
- /* a field with justification now changes its behavior,
- so we must redisplay it */
- if (single_line_field &&
-@@ -1424,18 +1424,18 @@
- !(form->status & _POSTED))
- {
- if ((form->w) &&
-- (field->opts & O_VISIBLE) &&
-+ ((unsigned)field->opts & O_VISIBLE) &&
- (field->form->curpage == field->page))
- {
- _nc_Refresh_Current_Field(form);
-- if (field->opts & O_PUBLIC)
-+ if ((unsigned)field->opts & O_PUBLIC)
- {
- if (field->drows > field->rows)
- {
- if (form->toprow == 0)
-- field->status &= ~_NEWTOP;
-+ ClrStatus(field, _NEWTOP);
- else
-- field->status |= _NEWTOP;
-+ SetStatus(field, _NEWTOP);
- }
- else
- {
-@@ -1469,7 +1469,7 @@
- delwin(form->w);
- form->w = new_window;
-
-- form->status &= ~_WINDOW_MODIFIED;
-+ ClrStatus(form, _WINDOW_MODIFIED);
- Set_Field_Window_Attributes(field, form->w);
-
- if (Has_Invisible_Parts(field))
-@@ -1998,7 +1998,7 @@
- {
- res = fct(form);
- if (res == E_OK)
-- form->current->status |= _NEWTOP;
-+ SetStatus(form, _NEWTOP);
- }
- return (res);
- }
-@@ -2430,7 +2430,7 @@
- int result = E_REQUEST_DENIED;
- bool Last_Row = ((field->drows - 1) == form->currow);
-
-- if ((field->opts & O_WRAP) && /* wrapping wanted */
-+ if (((unsigned)field->opts & O_WRAP) && /* wrapping wanted */
- (!Single_Line_Field(field)) && /* must be multi-line */
- (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */
- (!Last_Row || Growable(field))) /* there are more lines */
-@@ -2513,7 +2513,7 @@
- editable fields.
- */
- if ((fct == FE_Delete_Previous) &&
-- (form->opts & O_BS_OVERLOAD) &&
-+ ((unsigned)form->opts & O_BS_OVERLOAD) &&
- First_Position_In_Current_Field(form))
- {
- res = Inter_Field_Navigation(FN_Previous_Field, form);
-@@ -2522,7 +2522,7 @@
- {
- if (fct == FE_New_Line)
- {
-- if ((form->opts & O_NL_OVERLOAD) &&
-+ if (((unsigned)form->opts & O_NL_OVERLOAD) &&
- First_Position_In_Current_Field(form))
- {
- res = Inter_Field_Navigation(FN_Next_Field, form);
-@@ -2534,11 +2534,11 @@
- else
- {
- /* From now on, everything must be editable */
-- if (form->current->opts & O_EDIT)
-+ if ((unsigned)form->current->opts & O_EDIT)
- {
- res = fct(form);
- if (res == E_OK)
-- form->status |= _WINDOW_MODIFIED;
-+ SetStatus(form, _WINDOW_MODIFIED);
- }
- }
- }
-@@ -2571,7 +2571,7 @@
- if (Last_Row &&
- (!(Growable(field) && !Single_Line_Field(field))))
- {
-- if (!(form->opts & O_NL_OVERLOAD))
-+ if (!((unsigned)form->opts & O_NL_OVERLOAD))
- returnCode(E_REQUEST_DENIED);
- wmove(form->w, form->currow, form->curcol);
- wclrtoeol(form->w);
-@@ -2579,7 +2579,7 @@
- handled in the generic routine. The reason is,
- that FN_Next_Field may fail, but the form is
- definitively changed */
-- form->status |= _WINDOW_MODIFIED;
-+ SetStatus(form, _WINDOW_MODIFIED);
- returnCode(Inter_Field_Navigation(FN_Next_Field, form));
- }
- else
-@@ -2595,7 +2595,7 @@
- wclrtoeol(form->w);
- form->currow++;
- form->curcol = 0;
-- form->status |= _WINDOW_MODIFIED;
-+ SetStatus(form, _WINDOW_MODIFIED);
- returnCode(E_OK);
- }
- }
-@@ -2605,7 +2605,7 @@
- if (Last_Row &&
- !(Growable(field) && !Single_Line_Field(field)))
- {
-- if (!(form->opts & O_NL_OVERLOAD))
-+ if (!((unsigned)form->opts & O_NL_OVERLOAD))
- returnCode(E_REQUEST_DENIED);
- returnCode(Inter_Field_Navigation(FN_Next_Field, form));
- }
-@@ -2627,7 +2627,7 @@
- wmove(form->w, form->currow, form->curcol);
- winsertln(form->w);
- myADDNSTR(form->w, bp, (int)(t - bp));
-- form->status |= _WINDOW_MODIFIED;
-+ SetStatus(form, _WINDOW_MODIFIED);
- returnCode(E_OK);
- }
- }
-@@ -2926,7 +2926,7 @@
- EM_Overlay_Mode(FORM *form)
- {
- T((T_CALLED("EM_Overlay_Mode(%p)"), (void *)form));
-- form->status |= _OVLMODE;
-+ SetStatus(form, _OVLMODE);
- returnCode(E_OK);
- }
-
-@@ -2942,7 +2942,7 @@
- EM_Insert_Mode(FORM *form)
- {
- T((T_CALLED("EM_Insert_Mode(%p)"), (void *)form));
-- form->status &= ~_OVLMODE;
-+ ClrStatus(form, _OVLMODE);
- returnCode(E_OK);
- }
-
-@@ -3111,7 +3111,7 @@
- {
- if (typ)
- {
-- if (field->opts & O_NULLOK)
-+ if ((unsigned)field->opts & O_NULLOK)
- {
- FIELD_CELL *bp = field->buf;
-
-@@ -3168,12 +3168,12 @@
-
- Synchronize_Buffer(form);
- if ((form->status & _FCHECK_REQUIRED) ||
-- (!(field->opts & O_PASSOK)))
-+ (!((unsigned)field->opts & O_PASSOK)))
- {
- if (!Check_Field(form, field->type, field, (TypeArgument *)(field->arg)))
- return FALSE;
-- form->status &= ~_FCHECK_REQUIRED;
-- field->status |= _CHANGED;
-+ ClrStatus(form, _FCHECK_REQUIRED);
-+ SetStatus(field, _CHANGED);
- Synchronize_Linked_Fields(field);
- }
- return TRUE;
-@@ -3273,14 +3273,15 @@
- do
- {
- field = (field == last_on_page) ? first : field + 1;
-- if (((*field)->opts & O_VISIBLE))
-+ if (((unsigned)(*field)->opts & O_VISIBLE))
- break;
- }
- while (proposed != (*field));
-
- proposed = *field;
-
-- if ((proposed == *last_on_page) && !(proposed->opts & O_VISIBLE))
-+ if ((proposed == *last_on_page) &&
-+ !((unsigned)proposed->opts & O_VISIBLE))
- {
- /* This means, there is also no visible field on the page.
- So we propose the first one and hope the very best...
-@@ -3816,11 +3817,11 @@
- FIELD *last_field, *field_on_page;
-
- werase(Get_Form_Window(form));
-- form->curpage = page;
-+ form->curpage = (short)page;
- last_field = field_on_page = form->field[form->page[page].smin];
- do
- {
-- if (field_on_page->opts & O_VISIBLE)
-+ if ((unsigned)field_on_page->opts & O_VISIBLE)
- if ((res = Display_Field(field_on_page)) != E_OK)
- return (res);
- field_on_page = field_on_page->snext;
-@@ -3999,13 +4000,13 @@
- int result = E_REQUEST_DENIED;
-
- T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c)));
-- if ((field->opts & O_EDIT)
-+ if (((unsigned)field->opts & O_EDIT)
- #if FIX_FORM_INACTIVE_BUG
-- && (field->opts & O_ACTIVE)
-+ && ((unsigned)field->opts & O_ACTIVE)
- #endif
- )
- {
-- if ((field->opts & O_BLANK) &&
-+ if (((unsigned)field->opts & O_BLANK) &&
- First_Position_In_Current_Field(form) &&
- !(form->status & _FCHECK_REQUIRED) &&
- !(form->status & _WINDOW_MODIFIED))
-@@ -4035,8 +4036,8 @@
- bool End_Of_Field = (((field->drows - 1) == form->currow) &&
- ((field->dcols - 1) == form->curcol));
-
-- form->status |= _WINDOW_MODIFIED;
-- if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP))
-+ SetStatus(form, _WINDOW_MODIFIED);
-+ if (End_Of_Field && !Growable(field) && ((unsigned)field->opts & O_AUTOSKIP))
- result = Inter_Field_Navigation(FN_Next_Field, form);
- else
- {
-@@ -4228,7 +4229,10 @@
-
- if ((c >= MIN_FORM_COMMAND && c <= MAX_FORM_COMMAND) &&
- ((bindings[c - MIN_FORM_COMMAND].keycode & Key_Mask) == c))
-- BI = &(bindings[c - MIN_FORM_COMMAND]);
-+ {
-+ TR(TRACE_CALLS, ("form_request %s", form_request_name(c)));
-+ BI = &(bindings[c - MIN_FORM_COMMAND]);
-+ }
-
- if (BI)
- {
-@@ -4246,7 +4250,7 @@
- NULL /* Choice Request is generic */
- };
- size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0]));
-- size_t method = (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */
-+ size_t method = (size_t) ((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */
-
- if ((method >= nMethods) || !(BI->cmd))
- res = E_SYSTEM_ERROR;
-@@ -4255,9 +4259,13 @@
- Generic_Method fct = Generic_Methods[method];
-
- if (fct)
-- res = fct(BI->cmd, form);
-+ {
-+ res = fct(BI->cmd, form);
-+ }
- else
-- res = (BI->cmd) (form);
-+ {
-+ res = (BI->cmd) (form);
-+ }
- }
- }
- #ifdef NCURSES_MOUSE_VERSION
-@@ -4401,14 +4409,14 @@
- if (!field || !value || ((buffer < 0) || (buffer > field->nbuf)))
- RETURN(E_BAD_ARGUMENT);
-
-- len = Buffer_Length(field);
-+ len = (unsigned)Buffer_Length(field);
-
- if (Growable(field))
- {
- /* for a growable field we must assume zero terminated strings, because
- somehow we have to detect the length of what should be copied.
- */
-- unsigned int vlen = strlen(value);
-+ unsigned vlen = (unsigned)strlen(value);
-
- if (vlen > len)
- {
-@@ -4438,7 +4446,7 @@
- delwin(field->working);
- field->working = newpad(1, Buffer_Length(field) + 1);
- }
-- len = Buffer_Length(field);
-+ len = (unsigned)Buffer_Length(field);
- wclear(field->working);
- (void)mvwaddstr(field->working, 0, 0, value);
-
-@@ -4450,8 +4458,8 @@
- {
- for (i = 0; i < (unsigned)field->drows; ++i)
- {
-- (void)mvwin_wchnstr(field->working, 0, i * field->dcols,
-- widevalue + (i * field->dcols),
-+ (void)mvwin_wchnstr(field->working, 0, (int)i * field->dcols,
-+ widevalue + ((int)i * field->dcols),
- field->dcols);
- }
- for (i = 0; i < len; ++i)
-@@ -4512,7 +4520,7 @@
- {
- #if USE_WIDEC_SUPPORT
- FIELD_CELL *data = Address_Of_Nth_Buffer(field, buffer);
-- unsigned need = 0;
-+ size_t need = 0;
- int size = Buffer_Length(field);
- int n;
-
-@@ -4613,7 +4621,7 @@
- {
- result[need] = wch;
- }
-- passed += status;
-+ passed += (size_t) status;
- ++need;
- }
- else
-@@ -4633,7 +4641,7 @@
- break;
- result = typeCalloc(wchar_t, need);
-
-- *lengthp = need;
-+ *lengthp = (int)need;
- if (result == 0)
- break;
- }
-Index: form/frm_hook.c
-Prereq: 1.15
---- ncurses-5.9/form/frm_hook.c 2010-01-23 21:12:08.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_hook.c 2012-03-11 00:37:16.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,13 +32,13 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_hook.c,v 1.15 2010/01/23 21:12:08 tom Exp $")
-+MODULE_ID("$Id: frm_hook.c,v 1.16 2012/03/11 00:37:16 tom Exp $")
-
- /* "Template" macro to generate function to set application specific hook */
- #define GEN_HOOK_SET_FUNCTION( typ, name ) \
- NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
- {\
-- T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), form, func));\
-+ T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), (void *) form, func));\
- (Normalize_Form( form ) -> typ ## name) = func ;\
- RETURN(E_OK);\
- }
-Index: form/frm_opts.c
-Prereq: 1.15
---- ncurses-5.9/form/frm_opts.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_opts.c 2012-06-09 20:29:33.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_opts.c,v 1.15 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: frm_opts.c,v 1.16 2012/06/09 20:29:33 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -49,7 +49,7 @@
- {
- T((T_CALLED("set_form_opts(%p,%d)"), (void *)form, opts));
-
-- opts &= ALL_FORM_OPTS;
-+ opts &= (Form_Options) ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
-@@ -89,7 +89,7 @@
- {
- T((T_CALLED("form_opts_on(%p,%d)"), (void *)form, opts));
-
-- opts &= ALL_FORM_OPTS;
-+ opts &= (Form_Options) ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
-@@ -114,7 +114,7 @@
- {
- T((T_CALLED("form_opts_off(%p,%d)"), (void *)form, opts));
-
-- opts &= ALL_FORM_OPTS;
-+ opts &= (Form_Options) ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
-Index: form/frm_page.c
-Prereq: 1.11
---- ncurses-5.9/form/frm_page.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_page.c 2012-06-10 00:28:04.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_page.c,v 1.11 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: frm_page.c,v 1.12 2012/06/10 00:28:04 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -58,7 +58,7 @@
-
- if (!(form->status & _POSTED))
- {
-- form->curpage = page;
-+ form->curpage = (short)page;
- form->current = _nc_First_Active_Field(form);
- }
- else
-Index: form/frm_post.c
-Prereq: 1.10
---- ncurses-5.9/form/frm_post.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_post.c 2012-06-10 00:27:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_post.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: frm_post.c,v 1.11 2012/06/10 00:27:49 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnform
-@@ -77,7 +77,7 @@
- if ((err = _nc_Set_Form_Page(form, page, form->current)) != E_OK)
- RETURN(err);
-
-- form->status |= _POSTED;
-+ SetStatus(form, _POSTED);
-
- Call_Hook(form, forminit);
- Call_Hook(form, fieldinit);
-@@ -117,7 +117,7 @@
- werase(Get_Form_Window(form));
- delwin(form->w);
- form->w = (WINDOW *)0;
-- form->status &= ~_POSTED;
-+ ClrStatus(form, _POSTED);
- RETURN(E_OK);
- }
-
-Index: form/frm_req_name.c
-Prereq: 1.17
---- ncurses-5.9/form/frm_req_name.c 2009-10-10 16:17:01.000000000 +0000
-+++ ncurses-5.9-20130504/form/frm_req_name.c 2012-07-21 23:17:23.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: frm_req_name.c,v 1.17 2009/10/10 16:17:01 tom Exp $")
-+MODULE_ID("$Id: frm_req_name.c,v 1.18 2012/07/21 23:17:23 tom Exp $")
-
- static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
- {
-@@ -144,23 +144,26 @@
- /* because the table is so small, it doesn't really hurt
- to run sequentially through it.
- */
-- unsigned int i = 0;
-- char buf[16];
-+ size_t i = 0;
-+ char buf[16]; /* longest name is 10 chars */
-
- T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str)));
-
-- if (str)
-+ if (str != 0 && (i = strlen(str)) != 0)
- {
-- strncpy(buf, str, sizeof(buf));
-- while ((i < sizeof(buf)) && (buf[i] != '\0'))
-+ if (i > sizeof(buf) - 2)
-+ i = sizeof(buf) - 2;
-+ memcpy(buf, str, i);
-+ buf[i] = '\0';
-+
-+ for (i = 0; buf[i] != '\0'; ++i)
- {
- buf[i] = (char)toupper(UChar(buf[i]));
-- i++;
- }
-
- for (i = 0; i < A_SIZE; i++)
- {
-- if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
-+ if (strcmp(request_names[i], buf) == 0)
- returnCode(MIN_FORM_COMMAND + (int)i);
- }
- }
-Index: form/fty_generic.c
-Prereq: 1.5
---- ncurses-5.9/form/fty_generic.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fty_generic.c 2012-06-10 00:27:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fty_generic.c,v 1.5 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fty_generic.c,v 1.6 2012/06/10 00:27:49 tom Exp $")
-
- /*
- * This is not a full implementation of a field type, but adds some
-@@ -119,7 +119,7 @@
- if (res)
- {
- *res = *_nc_Default_FieldType;
-- res->status |= (_HAS_ARGS | _GENERIC);
-+ SetStatus(res, (_HAS_ARGS | _GENERIC));
- res->fieldcheck.gfcheck = field_check;
- res->charcheck.gccheck = char_check;
- res->genericarg = Generic_This_Type;
-Index: form/fty_int.c
-Prereq: 1.25
---- ncurses-5.9/form/fty_int.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fty_int.c 2012-02-23 10:02:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fty_int.c,v 1.25 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fty_int.c,v 1.26 2012/02/23 10:02:15 tom Exp $")
-
- #if USE_WIDEC_SUPPORT
- #define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
-@@ -233,7 +233,8 @@
- }
- if (result)
- {
-- sprintf(buf, "%.*ld", (prec > 0 ? prec : 0), val);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%.*ld", (prec > 0 ? prec : 0), val);
- set_field_buffer(field, 0, buf);
- }
- }
-Index: form/fty_num.c
-Prereq: 1.28
---- ncurses-5.9/form/fty_num.c 2010-01-23 21:14:36.000000000 +0000
-+++ ncurses-5.9-20130504/form/fty_num.c 2012-02-23 10:02:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fty_num.c,v 1.28 2010/01/23 21:14:36 tom Exp $")
-+MODULE_ID("$Id: fty_num.c,v 1.29 2012/02/23 10:02:15 tom Exp $")
-
- #if HAVE_LOCALE_H
- #include <locale.h>
-@@ -271,7 +271,8 @@
- }
- if (result)
- {
-- sprintf(buf, "%.*f", (prec > 0 ? prec : 0), val);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%.*f", (prec > 0 ? prec : 0), val);
- set_field_buffer(field, 0, buf);
- }
- }
-Index: form/fty_regex.c
-Prereq: 1.24
---- ncurses-5.9/form/fty_regex.c 2010-01-23 21:14:37.000000000 +0000
-+++ ncurses-5.9-20130504/form/fty_regex.c 2012-10-27 20:12:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
-
- #include "form.priv.h"
-
--MODULE_ID("$Id: fty_regex.c,v 1.24 2010/01/23 21:14:37 tom Exp $")
-+MODULE_ID("$Id: fty_regex.c,v 1.25 2012/10/27 20:12:53 tom Exp $")
-
- #if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
- #include <regex.h>
-@@ -123,9 +123,8 @@
- (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
- {
- T((T_CREATE("regex_t %p"), (void *)preg->pRegExp));
-- preg->refCount = typeMalloc(unsigned long, 1);
--
-- *(preg->refCount) = 1;
-+ if ((preg->refCount = typeMalloc(unsigned long, 1)) != 0)
-+ *(preg->refCount) = 1;
- }
- else
- {
-@@ -151,9 +150,8 @@
-
- T((T_CREATE("RegExp_Arg %p"), pArg));
- pArg->compiled_expression = NULL;
-- pArg->refCount = typeMalloc(unsigned long, 1);
--
-- *(pArg->refCount) = 1;
-+ if ((pArg->refCount = typeMalloc(unsigned long, 1)) != 0)
-+ *(pArg->refCount) = 1;
-
- do
- {
-Index: include/Caps
-Prereq: 1.37
---- ncurses-5.9/include/Caps 2010-12-04 18:47:13.000000000 +0000
-+++ ncurses-5.9-20130504/include/Caps 2011-10-15 23:10:18.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -29,7 +29,7 @@
- # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
- # and: Eric S. Raymond <esr@snark.thyrsus.com>
- #
--# $Id: Caps,v 1.37 2010/12/04 18:47:13 tom Exp $
-+# $Id: Caps,v 1.38 2011/10/15 23:10:18 tom Exp $
- #
- # This is the master termcap/terminfo capability table.
- #
-@@ -738,11 +738,13 @@
- #%.ad
- #%
- #%.in .8i
--#%The XSI Curses standard added these. They are some post-4.1
--#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
--#%The \fBncurses\fR termcap names for them are invented; according to the
--#%XSI Curses standard, they have no termcap names. If your compiled terminfo
--#%entries use these, they may not be binary-compatible with System V terminfo
-+#%The XSI Curses standard added these hardcopy capabilities.
-+#%They were used in some post-4.1 versions of System V curses,
-+#%e.g., Solaris 2.5 and IRIX 6.x.
-+#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
-+#%According to the XSI Curses standard, they have no termcap names.
-+#%If your compiled terminfo entries use these,
-+#%they may not be binary-compatible with System V terminfo
- #%entries after SVr4.1; beware!
- #%
- #%.na
-@@ -760,7 +762,7 @@
- enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
- enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
- set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
--set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-+set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
- #%.TE
- #%.ad
- #
-Index: include/Caps.aix4
-Prereq: 1.8
---- ncurses-5.9/include/Caps.aix4 2010-12-04 18:47:13.000000000 +0000
-+++ ncurses-5.9-20130504/include/Caps.aix4 2011-10-15 23:19:16.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 2001-2006,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -28,7 +28,7 @@
- #
- # Author: Thomas Dickey
- #
--# $Id: Caps.aix4,v 1.8 2010/12/04 18:47:13 tom Exp $
-+# $Id: Caps.aix4,v 1.9 2011/10/15 23:19:16 tom Exp $
- #
- # This is an adaptation of ncurses' termcap/terminfo capability table, which
- # is designed to align with AIX 4.x's terminfo.
-@@ -840,11 +840,13 @@
- #%.ad
- #%
- #%.in .8i
--#%The XSI Curses standard added these. They are some post-4.1
--#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
--#%The \fBncurses\fR termcap names for them are invented; according to the
--#%XSI Curses standard, they have no termcap names. If your compiled terminfo
--#%entries use these, they may not be binary-compatible with System V terminfo
-+#%The XSI Curses standard added these hardcopy capabilities.
-+#%They were used in some post-4.1 versions of System V curses,
-+#%e.g., Solaris 2.5 and IRIX 6.x.
-+#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
-+#%According to the XSI Curses standard, they have no termcap names.
-+#%If your compiled terminfo entries use these,
-+#%they may not be binary-compatible with System V terminfo
- #%entries after SVr4.1; beware!
- #%
- #%.na
-@@ -862,7 +864,7 @@
- enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
- enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
- set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
--set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-+set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
- #%.TE
- #%.ad
- #
-Index: include/Caps.hpux11
-Prereq: 1.5
---- ncurses-5.9/include/Caps.hpux11 2010-12-04 18:47:13.000000000 +0000
-+++ ncurses-5.9-20130504/include/Caps.hpux11 2011-10-15 23:20:04.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -28,7 +28,7 @@
- #
- # Author: Thomas Dickey
- #
--# $Id: Caps.hpux11,v 1.5 2010/12/04 18:47:13 tom Exp $
-+# $Id: Caps.hpux11,v 1.6 2011/10/15 23:20:04 tom Exp $
- #
- # This is an adaptation of ncurses' termcap/terminfo capability table, which
- # is designed to align with HPUX 11.x's terminfo.
-@@ -746,11 +746,13 @@
- #%.ad
- #%
- #%.in .8i
--#%The XSI Curses standard added these. They are some post-4.1
--#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
--#%The \fBncurses\fR termcap names for them are invented; according to the
--#%XSI Curses standard, they have no termcap names. If your compiled terminfo
--#%entries use these, they may not be binary-compatible with System V terminfo
-+#%The XSI Curses standard added these hardcopy capabilities.
-+#%They were used in some post-4.1 versions of System V curses,
-+#%e.g., Solaris 2.5 and IRIX 6.x.
-+#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
-+#%According to the XSI Curses standard, they have no termcap names.
-+#%If your compiled terminfo entries use these,
-+#%they may not be binary-compatible with System V terminfo
- #%entries after SVr4.1; beware!
- #%
- #%.na
-@@ -761,7 +763,7 @@
- #%lw25 lw6 lw2 lw20.
- #%\fBVariable Cap- TCap Description\fR
- #%\fBString name Code\fR
--set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-+set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
- enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
- enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
- enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
-Index: include/Caps.keys
-Prereq: 1.4
---- ncurses-5.9/include/Caps.keys 2010-12-04 18:47:13.000000000 +0000
-+++ ncurses-5.9-20130504/include/Caps.keys 2011-10-15 23:19:52.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 2001-2006,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -29,7 +29,7 @@
- # Author: Thomas Dickey
- # and: Ilya Zakharevich
- #
--# $Id: Caps.keys,v 1.4 2010/12/04 18:47:13 tom Exp $
-+# $Id: Caps.keys,v 1.5 2011/10/15 23:19:52 tom Exp $
- #
- # This is an adaptation of ncurses' termcap/terminfo capability table, which
- # is illustrates an experimental extension to describe alt-, shift- and
-@@ -828,11 +828,13 @@
- #%.ad
- #%
- #%.in .8i
--#%The XSI Curses standard added these. They are some post-4.1
--#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
--#%The \fBncurses\fR termcap names for them are invented; according to the
--#%XSI Curses standard, they have no termcap names. If your compiled terminfo
--#%entries use these, they may not be binary-compatible with System V terminfo
-+#%The XSI Curses standard added these hardcopy capabilities.
-+#%They were used in some post-4.1 versions of System V curses,
-+#%e.g., Solaris 2.5 and IRIX 6.x.
-+#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
-+#%According to the XSI Curses standard, they have no termcap names.
-+#%If your compiled terminfo entries use these,
-+#%they may not be binary-compatible with System V terminfo
- #%entries after SVr4.1; beware!
- #%
- #%.na
-@@ -850,7 +852,7 @@
- enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
- enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
- set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
--set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-+set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
- #%.TE
- #%.ad
- #
-Index: include/Caps.osf1r5
-Prereq: 1.5
---- ncurses-5.9/include/Caps.osf1r5 2010-12-04 18:47:13.000000000 +0000
-+++ ncurses-5.9-20130504/include/Caps.osf1r5 2011-10-15 22:52:09.000000000 +0000
-@@ -1,5 +1,5 @@
- ##############################################################################
--# Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -28,7 +28,7 @@
- #
- # Author: Thomas Dickey
- #
--# $Id: Caps.osf1r5,v 1.5 2010/12/04 18:47:13 tom Exp $
-+# $Id: Caps.osf1r5,v 1.6 2011/10/15 22:52:09 tom Exp $
- #
- # This is an adaptation of ncurses' termcap/terminfo capability table, which
- # is designed to align with OSF/1 version 5 (Tru64) terminfo.
-@@ -769,7 +769,7 @@
- xoff_character xoffc str XF - - ----- XOFF character
- xon_character xonc str XN - - ----- XON character
- zero_motion zerom str Zx - - ----- No motion for subsequent character
--set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
-+set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
- enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
- enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
- enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
-Index: include/MKkey_defs.sh
-Prereq: 1.14
---- ncurses-5.9/include/MKkey_defs.sh 2003-12-06 17:10:09.000000000 +0000
-+++ ncurses-5.9-20130504/include/MKkey_defs.sh 2013-03-09 16:32:01.000000000 +0000
-@@ -1,7 +1,7 @@
- #! /bin/sh
--# $Id: MKkey_defs.sh,v 1.14 2003/12/06 17:10:09 tom Exp $
-+# $Id: MKkey_defs.sh,v 1.15 2013/03/09 16:32:01 tom Exp $
- ##############################################################################
--# Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. #
-+# Copyright (c) 2001-2003,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -65,9 +65,12 @@
- key_event kv1 str V1 KEY_EVENT + ----- We were interrupted by an event
- EOF
-
-+THIS=./`basename $0`
-+PARM=./`basename $DATA`
-+
- cat <<EOF
- /*
-- * These definitions were generated by $0 $DATA
-+ * These definitions were generated by $THIS $PARM
- */
- EOF
-
-Index: include/MKterm.h.awk.in
-Prereq: 1.58
---- ncurses-5.9/include/MKterm.h.awk.in 2010-01-09 19:53:26.000000000 +0000
-+++ ncurses-5.9-20130504/include/MKterm.h.awk.in 2011-06-25 20:51:00.000000000 +0000
-@@ -1,7 +1,7 @@
- # vile:awkmode
- BEGIN {
- print "/****************************************************************************"
-- print " * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *"
-+ print " * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *"
- print " * *"
- print " * Permission is hereby granted, free of charge, to any person obtaining a *"
- print " * copy of this software and associated documentation files (the *"
-@@ -34,7 +34,7 @@
- print "/* and: Thomas E. Dickey 1995-on */"
- print "/****************************************************************************/"
- print ""
-- print "/* $Id: MKterm.h.awk.in,v 1.58 2010/01/09 19:53:26 tom Exp $ */"
-+ print "/* $Id: MKterm.h.awk.in,v 1.60 2011/06/25 20:51:00 tom Exp $ */"
- print ""
- print "/*"
- print "** term.h -- Definition of struct term"
-@@ -93,41 +93,6 @@
- print "#include <termio.h>"
- print "#define TTY struct termio"
- print ""
-- print "/* Add definitions to make termio look like termios."
-- print " * But ifdef it, since there are some implementations"
-- print " * that try to do this for us in a fake <termio.h>."
-- print " */"
-- print "#ifndef TCSANOW"
-- print "#define TCSANOW TCSETA"
-- print "#endif"
-- print "#ifndef TCSADRAIN"
-- print "#define TCSADRAIN TCSETAW"
-- print "#endif"
-- print "#ifndef TCSAFLUSH"
-- print "#define TCSAFLUSH TCSETAF"
-- print "#endif"
-- print "#ifndef tcsetattr"
-- print "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)"
-- print "#endif"
-- print "#ifndef tcgetattr"
-- print "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)"
-- print "#endif"
-- print "#ifndef cfgetospeed"
-- print "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)"
-- print "#endif"
-- print "#ifndef TCIFLUSH "
-- print "#define TCIFLUSH 0"
-- print "#endif"
-- print "#ifndef TCOFLUSH "
-- print "#define TCOFLUSH 1"
-- print "#endif"
-- print "#ifndef TCIOFLUSH "
-- print "#define TCIOFLUSH 2"
-- print "#endif"
-- print "#ifndef tcflush"
-- print "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)"
-- print "#endif"
-- print ""
- print "#else /* !HAVE_TERMIO_H */"
- print ""
- print "#if __MINGW32__"
-Index: include/curses.h.in
-Prereq: 1.220
---- ncurses-5.9/include/curses.h.in 2011-01-22 19:47:20.000000000 +0000
-+++ ncurses-5.9-20130504/include/curses.h.in 2012-09-16 21:05:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
- * and: Thomas E. Dickey 1996-on *
- ****************************************************************************/
-
--/* $Id: curses.h.in,v 1.220 2011/01/22 19:47:20 tom Exp $ */
-+/* $Id: curses.h.in,v 1.233 2012/09/16 21:05:02 tom Exp $ */
-
- #ifndef __NCURSES_H
- #define __NCURSES_H
-@@ -129,6 +129,13 @@
- #define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@
-
- /*
-+ * Control type used for tparm's arguments. While X/Open equates long and
-+ * char* values, this is not always workable for 64-bit platforms.
-+ */
-+#undef NCURSES_TPARM_ARG
-+#define NCURSES_TPARM_ARG @NCURSES_TPARM_ARG@
-+
-+/*
- * NCURSES_CH_T is used in building the library, but not used otherwise in
- * this header file, since that would make the normal/wide-character versions
- * of the header incompatible.
-@@ -151,15 +158,21 @@
-
- /*
- * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or
-- * conflicting) when _XOPEN_SOURCE is 500 or greater.
-+ * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is
-+ * not already defined, e.g., if the platform relies upon nonstandard feature
-+ * test macros, define it at this point if the standard feature test macros
-+ * indicate that it should be defined.
- */
--#undef NCURSES_WIDECHAR
--#if defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5)
--#define NCURSES_WIDECHAR
-+#ifndef NCURSES_WIDECHAR
-+#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
-+#define NCURSES_WIDECHAR 1
-+#else
-+#define NCURSES_WIDECHAR 0
- #endif
-+#endif /* NCURSES_WIDECHAR */
-
- #include <stdarg.h> /* we need va_list */
--#ifdef NCURSES_WIDECHAR
-+#if NCURSES_WIDECHAR
- #include <stddef.h> /* we want wchar_t */
- #endif
-
-@@ -250,7 +263,7 @@
- extern NCURSES_EXPORT_VAR(chtype) acs_map[];
- #endif
-
--#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)])
-+#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))])
-
- /* VT100 symbols begin here */
- #define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */
-@@ -342,7 +355,7 @@
-
- typedef chtype attr_t; /* ...must be at least as wide as chtype */
-
--#ifdef NCURSES_WIDECHAR
-+#if NCURSES_WIDECHAR
-
- #if @NCURSES_LIBUTF8@
- #ifdef mblen /* libutf8.h defines it w/o undefining first */
-@@ -366,7 +379,7 @@
- /*
- * cchar_t stores an array of CCHARW_MAX wide characters. The first is
- * normally a spacing character. The others are non-spacing. If those
-- * (spacing and nonspacing) do not fill the array, a null L'\0' follows.
-+ * (spacing and nonspacing) do not fill the array, a null L'\0' follows.
- * Otherwise, a null is assumed to follow when extracting via getcchar().
- */
- #define CCHARW_MAX @NCURSES_CCHARW_MAX@
-@@ -434,7 +447,7 @@
-
- NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
-
--#ifdef NCURSES_WIDECHAR
-+#if NCURSES_WIDECHAR
- cchar_t _bkgrnd; /* current background char/attribute pair */
- #if @NCURSES_EXT_COLORS@
- int _color; /* current color-pair for non-space character */
-@@ -757,6 +770,7 @@
- extern NCURSES_EXPORT(int) ungetch (int); /* implemented */
- extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */
- extern NCURSES_EXPORT(void) use_env (bool); /* implemented */
-+extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */
- extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */
- extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */
- extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */
-@@ -832,7 +846,7 @@
- #if NCURSES_TPARM_VARARGS
- extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */
- #else
--extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */
-+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */
- extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */
- #endif
-
-@@ -854,7 +868,7 @@
- /*
- * vid_attr() was implemented originally based on a draft of X/Open curses.
- */
--#ifndef NCURSES_WIDECHAR
-+#if !NCURSES_WIDECHAR
- #define vid_attr(a,pair,opts) vidattr(a)
- #endif
-
-@@ -994,6 +1008,7 @@
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */
-+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
- #if @NCURSES_EXT_FUNCS@
-@@ -1084,7 +1099,7 @@
- */
-
- #define wgetstr(w, s) wgetnstr(w, s, -1)
--#define getnstr(s, n) wgetnstr(stdscr, s, n)
-+#define getnstr(s, n) wgetnstr(stdscr, s, (n))
-
- #define setterm(term) setupterm(term, 1, (int *)0)
-
-@@ -1115,7 +1130,7 @@
- #define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
-
- #if !NCURSES_OPAQUE
--#if defined(NCURSES_WIDECHAR) && @NCURSES_EXT_COLORS@
-+#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@
- #define wattrset(win,at) ((win) \
- ? ((win)->_color = PAIR_NUMBER(at), \
- (win)->_attrs = NCURSES_CAST(attr_t, at), \
-@@ -1137,15 +1152,15 @@
-
- #define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0)
- #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
--#define hline(ch, n) whline(stdscr, ch, n)
--#define vline(ch, n) wvline(stdscr, ch, n)
-+#define hline(ch, n) whline(stdscr, ch, (n))
-+#define vline(ch, n) wvline(stdscr, ch, (n))
-
- #define winstr(w, s) winnstr(w, s, -1)
- #define winchstr(w, s) winchnstr(w, s, -1)
- #define winsstr(w, s) winsnstr(w, s, -1)
-
- #if !NCURSES_OPAQUE
--#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1)
-+#define redrawwin(win) wredrawln(win, 0, ((win) ? (win)->_maxy+1 : -1))
- #endif /* NCURSES_OPAQUE */
-
- #define waddstr(win,str) waddnstr(win,str,-1)
-@@ -1154,55 +1169,55 @@
- /*
- * These apply to the first 256 color pairs.
- */
--#define COLOR_PAIR(n) NCURSES_BITS(n, 0)
--#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
-+#define COLOR_PAIR(n) NCURSES_BITS((n), 0)
-+#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
-
- /*
- * pseudo functions for standard screen
- */
-
--#define addch(ch) waddch(stdscr,ch)
--#define addchnstr(str,n) waddchnstr(stdscr,str,n)
--#define addchstr(str) waddchstr(stdscr,str)
--#define addnstr(str,n) waddnstr(stdscr,str,n)
--#define addstr(str) waddnstr(stdscr,str,-1)
--#define attroff(at) wattroff(stdscr,at)
--#define attron(at) wattron(stdscr,at)
--#define attrset(at) wattrset(stdscr,at)
--#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o)
--#define attr_off(a,o) wattr_off(stdscr,a,o)
--#define attr_on(a,o) wattr_on(stdscr,a,o)
--#define attr_set(a,c,o) wattr_set(stdscr,a,c,o)
--#define bkgd(ch) wbkgd(stdscr,ch)
--#define bkgdset(ch) wbkgdset(stdscr,ch)
--#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o)
-+#define addch(ch) waddch(stdscr,(ch))
-+#define addchnstr(str,n) waddchnstr(stdscr,(str),(n))
-+#define addchstr(str) waddchstr(stdscr,(str))
-+#define addnstr(str,n) waddnstr(stdscr,(str),(n))
-+#define addstr(str) waddnstr(stdscr,(str),-1)
-+#define attroff(at) wattroff(stdscr,(at))
-+#define attron(at) wattron(stdscr,(at))
-+#define attrset(at) wattrset(stdscr,(at))
-+#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o))
-+#define attr_off(a,o) wattr_off(stdscr,(a),(o))
-+#define attr_on(a,o) wattr_on(stdscr,(a),(o))
-+#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o))
-+#define bkgd(ch) wbkgd(stdscr,(ch))
-+#define bkgdset(ch) wbkgdset(stdscr,(ch))
-+#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o))
- #define clear() wclear(stdscr)
- #define clrtobot() wclrtobot(stdscr)
- #define clrtoeol() wclrtoeol(stdscr)
--#define color_set(c,o) wcolor_set(stdscr,c,o)
-+#define color_set(c,o) wcolor_set(stdscr,(c),(o))
- #define delch() wdelch(stdscr)
- #define deleteln() winsdelln(stdscr,-1)
--#define echochar(c) wechochar(stdscr,c)
-+#define echochar(c) wechochar(stdscr,(c))
- #define erase() werase(stdscr)
- #define getch() wgetch(stdscr)
--#define getstr(str) wgetstr(stdscr,str)
-+#define getstr(str) wgetstr(stdscr,(str))
- #define inch() winch(stdscr)
--#define inchnstr(s,n) winchnstr(stdscr,s,n)
--#define inchstr(s) winchstr(stdscr,s)
--#define innstr(s,n) winnstr(stdscr,s,n)
--#define insch(c) winsch(stdscr,c)
--#define insdelln(n) winsdelln(stdscr,n)
-+#define inchnstr(s,n) winchnstr(stdscr,(s),(n))
-+#define inchstr(s) winchstr(stdscr,(s))
-+#define innstr(s,n) winnstr(stdscr,(s),(n))
-+#define insch(c) winsch(stdscr,(c))
-+#define insdelln(n) winsdelln(stdscr,(n))
- #define insertln() winsdelln(stdscr,1)
--#define insnstr(s,n) winsnstr(stdscr,s,n)
--#define insstr(s) winsstr(stdscr,s)
--#define instr(s) winstr(stdscr,s)
--#define move(y,x) wmove(stdscr,y,x)
-+#define insnstr(s,n) winsnstr(stdscr,(s),(n))
-+#define insstr(s) winsstr(stdscr,(s))
-+#define instr(s) winstr(stdscr,(s))
-+#define move(y,x) wmove(stdscr,(y),(x))
- #define refresh() wrefresh(stdscr)
--#define scrl(n) wscrl(stdscr,n)
--#define setscrreg(t,b) wsetscrreg(stdscr,t,b)
-+#define scrl(n) wscrl(stdscr,(n))
-+#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b))
- #define standend() wstandend(stdscr)
- #define standout() wstandout(stdscr)
--#define timeout(delay) wtimeout(stdscr,delay)
-+#define timeout(delay) wtimeout(stdscr,(delay))
- #define wdeleteln(win) winsdelln(win,-1)
- #define winsertln(win) winsdelln(win,1)
-
-@@ -1210,70 +1225,75 @@
- * mv functions
- */
-
--#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
--#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
--#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
--#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
--#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
--#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
--#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
--#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
--#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
--#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
--#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
--#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
--#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
--#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
--#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
--#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
--#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
--#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
--#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
--#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
--
--#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
--#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)
--#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)
--#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)
--#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
--#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)
--#define mvdelch(y,x) mvwdelch(stdscr,y,x)
--#define mvgetch(y,x) mvwgetch(stdscr,y,x)
--#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
--#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
--#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)
--#define mvinch(y,x) mvwinch(stdscr,y,x)
--#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)
--#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)
--#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)
--#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
--#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)
--#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)
--#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)
--#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
-+#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch)))
-+#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n)))
-+#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1))
-+#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n)))
-+#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1))
-+#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win))
-+#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o)))
-+#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win))
-+#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n)))
-+#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str)))
-+#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n)))
-+#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
-+#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n)))
-+#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s)))
-+#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n)))
-+#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c)))
-+#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n)))
-+#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s)))
-+#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s)))
-+#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n)))
-+
-+#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch))
-+#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n))
-+#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str))
-+#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n))
-+#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str))
-+#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o))
-+#define mvdelch(y,x) mvwdelch(stdscr,(y),(x))
-+#define mvgetch(y,x) mvwgetch(stdscr,(y),(x))
-+#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n))
-+#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str))
-+#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n))
-+#define mvinch(y,x) mvwinch(stdscr,(y),(x))
-+#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n))
-+#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s))
-+#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n))
-+#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c))
-+#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n))
-+#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s))
-+#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s))
-+#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n))
-
- /*
- * Some wide-character functions can be implemented without the extensions.
- */
- #if !NCURSES_OPAQUE
--#define getbkgd(win) ((win)->_bkgd)
-+#define getbkgd(win) ((win) ? ((win)->_bkgd) : 0)
- #endif /* NCURSES_OPAQUE */
-
- #define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
- #define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
-
- #if !NCURSES_OPAQUE
--#if defined(NCURSES_WIDECHAR) && @NCURSES_EXT_COLORS@
--#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \
-- (win)->_color = (p), \
-+#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@
-+#define wattr_set(win,a,p,opts) (((win) \
-+ ? ((win)->_attrs = ((a) & ~A_COLOR), \
-+ (win)->_color = (p)) \
-+ : OK), \
- OK)
--#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
-- (void)((p) != (void *)0 && (*(p) = (short)(win)->_color)), \
-+#define wattr_get(win,a,p,opts) ((void)(((a) != (void *)0) ? (*(a) = (win) ? (win)->_attrs : 0) : OK), \
-+ (void)(((p) != (void *)0) ? (*(p) = (win) ? (short)(win)->_color : 0) : OK), \
- OK)
- #else
--#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p)), OK)
--#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
-- (void)((p) != (void *)0 && (*(p) = (short)PAIR_NUMBER((win)->_attrs))), \
-+#define wattr_set(win,a,p,opts) (((win) \
-+ ? ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p))) \
-+ : OK), \
-+ OK)
-+#define wattr_get(win,a,p,opts) ((void)(((a) != (void *)0) ? (*(a) = (win) ? (win)->_attrs : 0) : OK), \
-+ (void)(((p) != (void *)0) ? (*(p) = (win) ? (short)PAIR_NUMBER((win)->_attrs) : 0) : OK), \
- OK)
- #endif
- #endif /* NCURSES_OPAQUE */
-Index: include/curses.tail
-Prereq: 1.20
---- ncurses-5.9/include/curses.tail 2010-03-28 19:10:55.000000000 +0000
-+++ ncurses-5.9-20130504/include/curses.tail 2011-10-29 20:03:22.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: curses.tail,v 1.20 2010/03/28 19:10:55 tom Exp $ */
-+/* $Id: curses.tail,v 1.21 2011/10/29 20:03:22 tom Exp $ */
- /*
- * vile:cmode:
- * This file is part of ncurses, designed to be appended after curses.h.in
-@@ -133,7 +133,7 @@
- extern NCURSES_EXPORT(char *) _tracechar (int);
- extern NCURSES_EXPORT(char *) _tracechtype (chtype);
- extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
--#ifdef NCURSES_WIDECHAR
-+#if NCURSES_WIDECHAR
- #define _tracech_t _tracecchar_t
- extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
- #define _tracech_t2 _tracecchar_t2
-Index: include/curses.wide
-Prereq: 1.42
---- ncurses-5.9/include/curses.wide 2010-03-30 00:39:41.000000000 +0000
-+++ ncurses-5.9-20130504/include/curses.wide 2012-07-28 18:10:02.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: curses.wide,v 1.42 2010/03/30 00:39:41 tom Exp $ */
-+/* $Id: curses.wide,v 1.45 2012/07/28 18:10:02 tom Exp $ */
- /*
- * vile:cmode:
- * This file is part of ncurses, designed to be appended after curses.h.in
-@@ -6,11 +6,11 @@
- */
- #define _XOPEN_CURSES 1
-
--#ifdef NCURSES_WIDECHAR
-+#if NCURSES_WIDECHAR
-
- extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
-
--#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
-+#define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))])
-
- #define WACS_BSSB NCURSES_WACS('l')
- #define WACS_SSBB NCURSES_WACS('m')
-@@ -230,77 +230,77 @@
- /*
- * XSI curses macros for XPG4 conformance.
- */
--#define add_wch(c) wadd_wch(stdscr,c)
--#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n)
--#define add_wchstr(str) wadd_wchstr(stdscr,str)
--#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n)
--#define addwstr(wstr) waddwstr(stdscr,wstr)
--#define bkgrnd(c) wbkgrnd(stdscr,c)
--#define bkgrndset(c) wbkgrndset(stdscr,c)
--#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
--#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0)
--#define echo_wchar(c) wecho_wchar(stdscr,c)
--#define get_wch(c) wget_wch(stdscr,c)
--#define get_wstr(t) wget_wstr(stdscr,t)
--#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch)
--#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n)
--#define hline_set(c,n) whline_set(stdscr,c,n)
--#define in_wch(c) win_wch(stdscr,c)
--#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n)
--#define in_wchstr(c) win_wchstr(stdscr,c)
--#define innwstr(c,n) winnwstr(stdscr,c,n)
--#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n)
--#define ins_wch(c) wins_wch(stdscr,c)
--#define ins_wstr(t) wins_wstr(stdscr,t)
--#define inwstr(c) winwstr(stdscr,c)
--#define vline_set(c,n) wvline_set(stdscr,c,n)
--#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
--#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
--#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
--#define win_wchstr(w,c) win_wchnstr(w,c,-1)
--#define wins_wstr(w,t) wins_nwstr(w,t,-1)
-+#define add_wch(c) wadd_wch(stdscr,(c))
-+#define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n))
-+#define add_wchstr(str) wadd_wchstr(stdscr,(str))
-+#define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n))
-+#define addwstr(wstr) waddwstr(stdscr,(wstr))
-+#define bkgrnd(c) wbkgrnd(stdscr,(c))
-+#define bkgrndset(c) wbkgrndset(stdscr,(c))
-+#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br)
-+#define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),0,0,0,0)
-+#define echo_wchar(c) wecho_wchar(stdscr,(c))
-+#define get_wch(c) wget_wch(stdscr,(c))
-+#define get_wstr(t) wget_wstr(stdscr,(t))
-+#define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch))
-+#define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n))
-+#define hline_set(c,n) whline_set(stdscr,(c),(n))
-+#define in_wch(c) win_wch(stdscr,(c))
-+#define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n))
-+#define in_wchstr(c) win_wchstr(stdscr,(c))
-+#define innwstr(c,n) winnwstr(stdscr,(c),(n))
-+#define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n))
-+#define ins_wch(c) wins_wch(stdscr,(c))
-+#define ins_wstr(t) wins_wstr(stdscr,(t))
-+#define inwstr(c) winwstr(stdscr,(c))
-+#define vline_set(c,n) wvline_set(stdscr,(c),(n))
-+#define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1)
-+#define waddwstr(win,wstr) waddnwstr((win),(wstr),-1)
-+#define wget_wstr(w,t) wgetn_wstr((w),(t),-1)
-+#define win_wchstr(w,c) win_wchnstr((w),(c),-1)
-+#define wins_wstr(w,t) wins_nwstr((w),(t),-1)
-
- #if !NCURSES_OPAQUE
--#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
-+#define wgetbkgrnd(win,wch) ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK)
- #endif
-
--#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
--#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n)
--#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s)
--#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n)
--#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr)
--#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c)
--#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t)
--#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n)
--#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n)
--#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c)
--#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n)
--#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c)
--#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n)
--#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n)
--#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c)
--#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t)
--#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c)
--#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n)
--
--#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
--#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
--#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
--#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
--#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
--#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
--#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
--#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
--#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
--#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
--#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
--#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
--#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
--#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
--#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
--#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
--#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
--#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
-+#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c))
-+#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n))
-+#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s))
-+#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n))
-+#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr))
-+#define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c))
-+#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t))
-+#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n))
-+#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n))
-+#define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c))
-+#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n))
-+#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c))
-+#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n))
-+#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n))
-+#define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c))
-+#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t))
-+#define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c))
-+#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n))
-+
-+#define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c)))
-+#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n)))
-+#define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s)))
-+#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n)))
-+#define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr)))
-+#define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c)))
-+#define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t)))
-+#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n)))
-+#define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n)))
-+#define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c)))
-+#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n)))
-+#define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c)))
-+#define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n)))
-+#define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n)))
-+#define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c)))
-+#define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t)))
-+#define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c)))
-+#define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n)))
-
- #endif /* NCURSES_NOMACROS */
-
-Index: include/headers
-Prereq: 1.10
---- ncurses-5.9/include/headers 2009-09-05 17:46:30.000000000 +0000
-+++ ncurses-5.9-20130504/include/headers 2012-07-28 22:41:34.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: headers,v 1.10 2009/09/05 17:46:30 tom Exp $
-+# $Id: headers,v 1.12 2012/07/28 22:41:34 Roumen.Petrov Exp $
- ##############################################################################
--# Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -29,14 +29,23 @@
- #
- # Author: Thomas E. Dickey 1996-on
- #
--term.h
- curses.h
- unctrl.h
--termcap.h
- ncurses_dll.h
-+
-+# Support for termcap (and tic, etc.), which can be a separate library
-+@ termlib
-+term.h
-+termcap.h
-+
-+# Headers used only for tic, other programs using internal interfaces
- @ ticlib
- $(srcdir)/tic.h
- $(srcdir)/term_entry.h
- $(srcdir)/nc_tparm.h
-
-+# Porting
-+@ port_win32con
-+$(srcdir)/ncurses_mingw.h
-+
- # vile:makemode
-Index: include/nc_alloc.h
-Prereq: 1.18
---- ncurses-5.9/include/nc_alloc.h 2010-11-20 22:59:49.000000000 +0000
-+++ ncurses-5.9-20130504/include/nc_alloc.h 2013-01-26 21:56:51.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,10 +29,11 @@
- /****************************************************************************
- * Author: Thomas E. Dickey 1996-on *
- ****************************************************************************/
--/* $Id: nc_alloc.h,v 1.18 2010/11/20 22:59:49 tom Exp $ */
-+/* $Id: nc_alloc.h,v 1.22 2013/01/26 21:56:51 tom Exp $ */
-
- #ifndef NC_ALLOC_included
- #define NC_ALLOC_included 1
-+/* *INDENT-OFF* */
-
- #ifdef __cplusplus
- extern "C" {
-@@ -94,6 +95,7 @@
- /* doalloc.c */
- extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
- #if !HAVE_STRDUP
-+#undef strdup
- #define strdup _nc_strdup
- extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
- #endif
-@@ -101,12 +103,14 @@
- /* entries.c */
- extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
-
--#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
--#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
--#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
-+#define typeMalloc(type,elts) (type *)malloc((size_t)(elts)*sizeof(type))
-+#define typeCalloc(type,elts) (type *)calloc((size_t)(elts),sizeof(type))
-+#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (size_t)(elts)*sizeof(type))
-
- #ifdef __cplusplus
- }
- #endif
-
-+/* *INDENT-ON* */
-+
- #endif /* NC_ALLOC_included */
-Index: include/nc_string.h
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/include/nc_string.h 2012-02-23 10:21:17.000000000 +0000
-@@ -0,0 +1,77 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+
-+#ifndef STRING_HACKS_H
-+#define STRING_HACKS_H 1
-+
-+#include <ncurses_cfg.h>
-+
-+/*
-+ * $Id: nc_string.h,v 1.3 2012/02/23 10:21:17 tom Exp $
-+ *
-+ * String-hacks. Use these macros to stifle warnings on (presumably) correct
-+ * uses of strcat, strcpy and sprintf.
-+ *
-+ * By the way -
-+ * A fundamental limitation of the interfaces (and frequent issue in bug
-+ * reports using these functions) is that sizes are passed as unsigned values
-+ * (with associated sign-extension problems), limiting their effectiveness
-+ * when checking for buffer overflow.
-+ */
-+
-+#ifdef __cplusplus
-+#define NCURSES_VOID /* nothing */
-+#else
-+#define NCURSES_VOID (void)
-+#endif
-+
-+#if USE_STRING_HACKS && HAVE_STRLCAT
-+#define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),(n))
-+#else
-+#define _nc_STRCAT(d,s,n) NCURSES_VOID strcat((d),(s))
-+#endif
-+
-+#if USE_STRING_HACKS && HAVE_STRLCPY
-+#define _nc_STRCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),(n))
-+#else
-+#define _nc_STRCPY(d,s,n) NCURSES_VOID strcpy((d),(s))
-+#endif
-+
-+#if USE_STRING_HACKS && HAVE_SNPRINTF
-+#define _nc_SPRINTF NCURSES_VOID snprintf
-+#define _nc_SLIMIT(n) (n),
-+#else
-+#define _nc_SPRINTF NCURSES_VOID sprintf
-+#define _nc_SLIMIT(n) /* nothing */
-+#endif
-+
-+#endif /* STRING_HACKS_H */
-Index: include/nc_termios.h
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/include/nc_termios.h 2011-06-25 20:44:05.000000000 +0000
-@@ -0,0 +1,171 @@
-+/****************************************************************************
-+ * Copyright (c) 2011 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2011 *
-+ ****************************************************************************/
-+
-+/* $Id: nc_termios.h,v 1.2 2011/06/25 20:44:05 tom Exp $ */
-+
-+#ifndef NC_TERMIOS_included
-+#define NC_TERMIOS_included 1
-+
-+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
-+
-+#else /* !HAVE_TERMIOS_H */
-+
-+#if HAVE_TERMIO_H
-+
-+/* Add definitions to make termio look like termios.
-+ * But ifdef it, since there are some implementations
-+ * that try to do this for us in a fake <termio.h>.
-+ */
-+#ifndef TCSADRAIN
-+#define TCSADRAIN TCSETAW
-+#endif
-+#ifndef TCSAFLUSH
-+#define TCSAFLUSH TCSETAF
-+#endif
-+#ifndef tcsetattr
-+#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)
-+#endif
-+#ifndef tcgetattr
-+#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)
-+#endif
-+#ifndef cfgetospeed
-+#define cfgetospeed(t) ((t)->c_cflag & CBAUD)
-+#endif
-+#ifndef TCIFLUSH
-+#define TCIFLUSH 0
-+#endif
-+#ifndef tcflush
-+#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)
-+#endif
-+
-+#else /* !HAVE_TERMIO_H */
-+
-+#if __MINGW32__
-+
-+/* c_cc chars */
-+#define VINTR 0
-+#define VQUIT 1
-+#define VERASE 2
-+#define VKILL 3
-+#define VEOF 4
-+#define VTIME 5
-+#define VMIN 6
-+
-+/* c_iflag bits */
-+#define ISTRIP 0000040
-+#define INLCR 0000100
-+#define IGNCR 0000200
-+#define ICRNL 0000400
-+#define BRKINT 0000002
-+#define PARMRK 0000010
-+#define IXON 0002000
-+#define IGNBRK 0000001
-+#define IGNPAR 0000004
-+#define INPCK 0000020
-+#define IXOFF 0010000
-+
-+/* c_oflag bits */
-+#define OPOST 0000001
-+
-+/* c_cflag bit meaning */
-+#define CBAUD 0010017
-+#define CSIZE 0000060
-+#define CS8 0000060
-+#define B0 0000000
-+#define B50 0000001
-+#define B75 0000002
-+#define B110 0000003
-+#define B134 0000004
-+#define B150 0000005
-+#define B200 0000006
-+#define B300 0000007
-+#define B600 0000010
-+#define B1200 0000011
-+#define B1800 0000012
-+#define B2400 0000013
-+#define B4800 0000014
-+#define B9600 0000015
-+#define CLOCAL 0004000
-+#define CREAD 0000200
-+#define CSTOPB 0000100
-+#define HUPCL 0002000
-+#define PARENB 0000400
-+#define PARODD 0001000
-+
-+/* c_lflag bits */
-+#define ECHO 0000010
-+#define ECHONL 0000100
-+#define ISIG 0000001
-+#define IEXTEN 0100000
-+#define ICANON 0000002
-+#define NOFLSH 0000200
-+#define ECHOE 0000020
-+#define ECHOK 0000040
-+
-+/* tcflush() */
-+#define TCIFLUSH 0
-+
-+/* tcsetattr uses these */
-+#define TCSADRAIN 1
-+
-+/* ioctls */
-+#define TCGETA 0x5405
-+#define TCFLSH 0x540B
-+#define TIOCGWINSZ 0x5413
-+
-+#ifndef cfgetospeed
-+#define cfgetospeed(t) ((t)->c_cflag & CBAUD)
-+#endif
-+
-+#ifndef tcsetattr
-+#define tcsetattr(fd, cmd, arg) _nc_mingw_ioctl(fd, cmd, arg)
-+#endif
-+
-+#ifndef tcgetattr
-+#define tcgetattr(fd, arg) _nc_mingw_ioctl(fd, TCGETA, arg)
-+#endif
-+
-+#ifndef tcflush
-+#define tcflush(fd, arg) _nc_mingw_ioctl(fd, TCFLSH, arg)
-+#endif
-+
-+#undef ttyname
-+#define ttyname(fd) NULL
-+
-+#else
-+
-+#endif /* __MINGW32__ */
-+#endif /* HAVE_TERMIO_H */
-+
-+#endif /* HAVE_TERMIOS_H */
-+
-+#endif /* NC_TERMIOS_included */
-Index: include/nc_tparm.h
-Prereq: 1.5
---- ncurses-5.9/include/nc_tparm.h 2010-12-25 20:27:22.000000000 +0000
-+++ ncurses-5.9-20130504/include/nc_tparm.h 2012-02-18 21:34:42.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,7 +30,7 @@
- * Author: Thomas E. Dickey 2006 *
- ****************************************************************************/
-
--/* $Id: nc_tparm.h,v 1.5 2010/12/25 20:27:22 tom Exp $ */
-+/* $Id: nc_tparm.h,v 1.6 2012/02/18 21:34:42 tom Exp $ */
-
- #ifndef NC_TPARM_included
- #define NC_TPARM_included 1
-@@ -40,8 +40,12 @@
- * assumption of the varargs code.
- */
- #ifndef TPARM_ARG
-+#ifdef NCURSES_TPARM_ARG
-+#define TPARM_ARG NCURSES_TPARM_ARG
-+#else
- #define TPARM_ARG long
- #endif
-+#endif /* TPARAM_ARG */
-
- #define TPARM_N(n) (TPARM_ARG)(n)
-
-Index: include/ncurses_defs
-Prereq: 1.46
---- ncurses-5.9/include/ncurses_defs 2011-03-22 09:17:59.000000000 +0000
-+++ ncurses-5.9-20130504/include/ncurses_defs 2013-04-27 19:46:53.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: ncurses_defs,v 1.46 2011/03/22 09:17:59 tom Exp $
-+# $Id: ncurses_defs,v 1.59 2013/04/27 19:46:53 tom Exp $
- ##############################################################################
--# Copyright (c) 2000-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 2000-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -33,7 +33,7 @@
-
- BROKEN_LINKER
- BSD_TPUTS
--CC_HAS_PROTOS
-+CGETENT_CONST /* nothing */
- CPP_HAS_PARAM_INIT
- CURSES_ACS_ARRAY acs_map
- CURSES_WACS_ARRAY _nc_wacs
-@@ -41,6 +41,7 @@
- ETIP_NEEDS_MATH_H
- GCC_NORETURN /* nothing */
- GCC_UNUSED /* nothing */
-+HAVE_ASSUME_DEFAULT_COLORS
- HAVE_BIG_CORE
- HAVE_BSD_CGETENT
- HAVE_BSD_SIGNAL_H
-@@ -102,6 +103,7 @@
- HAVE_POLL
- HAVE_POLL_H
- HAVE_PURIFY
-+HAVE_PUTENV
- HAVE_PUTWC
- HAVE_PUTWIN 1
- HAVE_REGEXPR_H_FUNCS
-@@ -115,6 +117,7 @@
- HAVE_SELECT
- HAVE_SETBUF
- HAVE_SETBUFFER
-+HAVE_SETENV
- HAVE_SETUPTERM 1
- HAVE_SETVBUF
- HAVE_SGTTY_H
-@@ -123,7 +126,11 @@
- HAVE_SIZECHANGE
- HAVE_SLK_COLOR
- HAVE_SLK_INIT 1
-+HAVE_SNPRINTF
-+HAVE_STDINT_H
- HAVE_STRDUP
-+HAVE_STRLCAT
-+HAVE_STRLCPY
- HAVE_STRSTR
- HAVE_SYMLINK
- HAVE_SYS_BSDTYPES_H
-@@ -153,9 +160,12 @@
- HAVE_TYPEINFO
- HAVE_TYPE_ATTR_T
- HAVE_TYPE_SIGACTION
-+HAVE_UNCTRL_H 1
- HAVE_UNISTD_H
- HAVE_UNLINK
- HAVE_USE_DEFAULT_COLORS
-+HAVE_USE_SCREEN
-+HAVE_USE_WINDOW
- HAVE_VFSCANF
- HAVE_VSNPRINTF
- HAVE_VSSCANF
-@@ -176,10 +186,10 @@
- NCURSES_EXT_FUNCS
- NCURSES_NO_PADDING
- NCURSES_PATHSEP ':'
-+NCURSES_WIDECHAR
- NEED_PTEM_H
- NO_LEAKS
- PURE_TERMINFO
--RETSIGTYPE
- STDC_HEADERS
- SVR4_ACTION
- SVR4_TERMIO
-@@ -205,6 +215,7 @@
- USE_SAFE_SPRINTF
- USE_SCROLL_HINTS
- USE_SIGWINCH
-+USE_STRING_HACKS
- USE_SYMLINKS
- USE_SYSMOUSE
- USE_TERMCAP
-Index: include/ncurses_mingw.h
-Prereq: 1.1
---- ncurses-5.9/include/ncurses_mingw.h 2008-12-14 19:22:16.000000000 +0000
-+++ ncurses-5.9-20130504/include/ncurses_mingw.h 2011-06-25 20:51:00.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -31,10 +31,10 @@
- * *
- ****************************************************************************/
-
--/* $Id: ncurses_mingw.h,v 1.1 2008/12/14 19:22:16 juergen Exp $ */
-+/* $Id: ncurses_mingw.h,v 1.2 2011/06/25 20:51:00 tom Exp $ */
-
- /*
-- * This is a placholder up to now and describes what needs to be implemented
-+ * This is a placeholder up to now and describes what needs to be implemented
- * to support I/O to external terminals with ncurses on the Windows OS.
- */
-
-@@ -67,98 +67,8 @@
- speed_t c_ospeed; /* c_ospeed */
- };
-
--/* c_cc chars */
--#define VINTR 0
--#define VQUIT 1
--#define VERASE 2
--#define VKILL 3
--#define VEOF 4
--#define VTIME 5
--#define VMIN 6
--
--/* c_iflag bits */
--#define ISTRIP 0000040
--#define INLCR 0000100
--#define IGNCR 0000200
--#define ICRNL 0000400
--#define BRKINT 0000002
--#define PARMRK 0000010
--#define IXON 0002000
--#define IGNBRK 0000001
--#define IGNPAR 0000004
--#define INPCK 0000020
--#define IXOFF 0010000
--
--/* c_oflag bits */
--#define OPOST 0000001
--
--/* c_cflag bit meaning */
--#define CBAUD 0010017
--#define CSIZE 0000060
--#define CS8 0000060
--#define B0 0000000
--#define B50 0000001
--#define B75 0000002
--#define B110 0000003
--#define B134 0000004
--#define B150 0000005
--#define B200 0000006
--#define B300 0000007
--#define B600 0000010
--#define B1200 0000011
--#define B1800 0000012
--#define B2400 0000013
--#define B4800 0000014
--#define B9600 0000015
--#define CLOCAL 0004000
--#define CREAD 0000200
--#define CSTOPB 0000100
--#define HUPCL 0002000
--#define PARENB 0000400
--#define PARODD 0001000
--
--/* c_lflag bits */
--#define ECHO 0000010
--#define ECHONL 0000100
--#define ISIG 0000001
--#define IEXTEN 0100000
--#define ICANON 0000002
--#define NOFLSH 0000200
--#define ECHOE 0000020
--#define ECHOK 0000040
--
--/* tcflush() */
--#define TCIFLUSH 0
--
--/* tcsetattr uses these */
--#define TCSADRAIN 1
--
--/* ioctls */
--#define TCGETA 0x5405
--#define TCFLSH 0x540B
--#define TIOCGWINSZ 0x5413
--
- extern int _nc_mingw_ioctl(int fd, long int request, struct termios* arg);
- extern void _nc_set_term_driver(void* term);
-
--#ifndef cfgetospeed
--#define cfgetospeed(t) ((t)->c_cflag & CBAUD)
--#endif
--
--#ifndef tcsetattr
--#define tcsetattr(fd, cmd, arg) _nc_mingw_ioctl(fd, cmd, arg)
--#endif
--
--#ifndef tcgetattr
--#define tcgetattr(fd, arg) _nc_mingw_ioctl(fd, TCGETA, arg)
--#endif
--
--#ifndef tcflush
--#define tcflush(fd, arg) _nc_mingw_ioctl(fd, TCFLSH, arg)
--#endif
--
--#undef ttyname
--#define ttyname(fd) NULL
--
--#endif
--#endif
-+#endif /* _NC_MINGWH */
-+#endif /* __MINGW32__ */
-Index: include/term_entry.h
-Prereq: 1.37
---- ncurses-5.9/include/term_entry.h 2009-07-11 16:52:29.000000000 +0000
-+++ ncurses-5.9-20130504/include/term_entry.h 2013-02-02 20:07:23.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
- * and: Thomas E. Dickey 1998-on *
- ****************************************************************************/
-
--/* $Id: term_entry.h,v 1.37 2009/07/11 16:52:29 tom Exp $ */
-+/* $Id: term_entry.h,v 1.43 2013/02/02 20:07:23 tom Exp $ */
-
- /*
- * term_entry.h -- interface to entry-manipulation code
-@@ -47,28 +47,46 @@
-
- #include <term.h>
-
-+ /*
-+ * see db_iterator.c - this enumeration lists the places searched for a
-+ * terminal description and defines the order in which they are searched.
-+ */
-+ typedef enum {
-+ dbdTIC = 0, /* special, used by tic when writing entry */
-+#if USE_DATABASE
-+ dbdEnvOnce, /* the $TERMINFO environment variable */
-+ dbdHome, /* $HOME/.terminfo */
-+ dbdEnvList, /* the $TERMINFO_DIRS environment variable */
-+ dbdCfgList, /* the compiled-in TERMINFO_DIRS value */
-+ dbdCfgOnce, /* the compiled-in TERMINFO value */
-+#endif
-+#if USE_TERMCAP
-+ dbdEnvOnce2, /* the $TERMCAP environment variable */
-+ dbdEnvList2, /* the $TERMPATH environment variable */
-+ dbdCfgList2, /* the compiled-in TERMPATH */
-+#endif
-+ dbdLAST
-+ } DBDIRS;
-+
- #define MAX_USES 32
- #define MAX_CROSSLINKS 16
-
--typedef struct entry {
-- TERMTYPE tterm;
-- unsigned nuses;
-- struct
-- {
-- char *name;
-- struct entry *link;
-- long line;
-- }
-- uses[MAX_USES];
-- int ncrosslinks;
-- struct entry *crosslinks[MAX_CROSSLINKS];
-- long cstart, cend;
-- long startline;
-- struct entry *next;
-- struct entry *last;
--}
--ENTRY;
--
-+ typedef struct entry {
-+ TERMTYPE tterm;
-+ unsigned nuses;
-+ struct {
-+ char *name;
-+ struct entry *link;
-+ long line;
-+ } uses[MAX_USES];
-+ int ncrosslinks;
-+ struct entry *crosslinks[MAX_CROSSLINKS];
-+ long cstart, cend;
-+ long startline;
-+ struct entry *next;
-+ struct entry *last;
-+ } ENTRY;
-+/* *INDENT-OFF* */
- #if NCURSES_XNAMES
- #define NUM_BOOLEANS(tp) (tp)->num_Booleans
- #define NUM_NUMBERS(tp) (tp)->num_Numbers
-@@ -132,7 +150,7 @@
-
- /* alloc_ttype.c: elementary allocation code */
- extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *);
--extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *);
-+extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *);
-
- /* free_ttype.c: elementary allocation code */
- extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
-@@ -166,9 +184,9 @@
-
- /* trace_xnames.c */
- extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
-+/* *INDENT-ON* */
-
- #ifdef __cplusplus
- }
- #endif
--
--#endif /* NCURSES_TERM_ENTRY_H_incl */
-+#endif /* NCURSES_TERM_ENTRY_H_incl */
-Index: include/tic.h
-Prereq: 1.65
---- ncurses-5.9/include/tic.h 2009-08-08 17:52:46.000000000 +0000
-+++ ncurses-5.9-20130504/include/tic.h 2012-03-17 18:22:10.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,14 +33,14 @@
- ****************************************************************************/
-
- /*
-- * $Id: tic.h,v 1.65 2009/08/08 17:52:46 tom Exp $
-+ * $Id: tic.h,v 1.69 2012/03/17 18:22:10 tom Exp $
- * tic.h - Global variables and structures for the terminfo
- * compiler.
- */
-
- #ifndef __TIC_H
- #define __TIC_H
--
-+/* *INDENT-OFF* */
- #ifdef __cplusplus
- extern "C" {
- #endif
-@@ -224,6 +224,12 @@
-
- #define NOTFOUND ((struct name_table_entry *) 0)
-
-+/*
-+ * The casts are required for correct sign-propagation with systems such as
-+ * AIX, IRIX64, Solaris which default to unsigned characters. The C standard
-+ * leaves this detail unspecified.
-+ */
-+
- /* out-of-band values for representing absent capabilities */
- #define ABSENT_BOOLEAN ((signed char)-1) /* 255 */
- #define ABSENT_NUMERIC (-1)
-@@ -248,6 +254,8 @@
- #define TERMINFO "/usr/share/terminfo"
- #endif
-
-+#ifdef NCURSES_TERM_ENTRY_H_incl
-+
- /* access.c */
- extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *);
- extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *);
-@@ -270,6 +278,7 @@
- extern NCURSES_EXPORT_VAR(int) _nc_curr_col;
- extern NCURSES_EXPORT_VAR(int) _nc_curr_line;
- extern NCURSES_EXPORT_VAR(int) _nc_syntax;
-+extern NCURSES_EXPORT_VAR(int) _nc_strict_bsd;
- extern NCURSES_EXPORT_VAR(long) _nc_comment_end;
- extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
- extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
-@@ -314,23 +323,6 @@
- extern const char * _nc_progname;
-
- /* db_iterator.c */
--typedef enum {
-- dbdTIC = 0,
--#if USE_DATABASE
-- dbdEnvOnce,
-- dbdHome,
-- dbdEnvList,
-- dbdCfgList,
-- dbdCfgOnce,
--#endif
--#if USE_TERMCAP
-- dbdEnvOnce2,
-- dbdEnvList2,
-- dbdCfgList2,
--#endif
-- dbdLAST
--} DBDIRS;
--
- extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *);
- extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
- extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *);
-@@ -339,8 +331,11 @@
- /* write_entry.c */
- extern NCURSES_EXPORT(int) _nc_tic_written (void);
-
-+#endif /* NCURSES_TERM_ENTRY_H_incl */
-+
- #ifdef __cplusplus
- }
- #endif
-
-+/* *INDENT-ON* */
- #endif /* __TIC_H */
-Index: man/Makefile.in
-Prereq: 1.45
---- ncurses-5.9/man/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/man/Makefile.in 2012-08-11 21:31:56.000000000 +0000
-@@ -1,4 +1,4 @@
--# $Id: Makefile.in,v 1.45 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.46 2012/08/11 21:31:56 tom Exp $
- ##############################################################################
- # Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. #
- # #
-@@ -41,6 +41,7 @@
- srcdir = @srcdir@
- prefix = @prefix@
- exec_prefix = @exec_prefix@
-+datarootdir = @datarootdir@
- datadir = @datadir@
- mandir = @mandir@
-
-Index: man/curs_add_wch.3x
-Prereq: 1.14
---- ncurses-5.9/man/curs_add_wch.3x 2011-01-15 15:27:43.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_add_wch.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_add_wch.3x,v 1.14 2011/01/15 15:27:43 tom Exp $
-+.\" $Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp $
- .TH curs_add_wch 3X ""
- .de bP
- .IP \(bu 4
-@@ -176,7 +176,7 @@
- WACS_D_VLINE 0x2551 | double vertical line
- WACS_D_PLUS 0x256c + double large plus or crossover
- .TE
--.SH RETURN VALUES
-+.SH RETURN VALUE
- .PP
- All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
- .PP
-Index: man/curs_add_wchstr.3x
-Prereq: 1.9
---- ncurses-5.9/man/curs_add_wchstr.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_add_wchstr.3x 2012-11-03 22:54:43.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,8 +26,13 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_add_wchstr.3x,v 1.9 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp $
- .TH curs_add_wchstr 3X ""
-+.de bP
-+.IP \(bu 4
-+..
-+.na
-+.hy 0
- .SH NAME
- \fBadd_wchstr\fR,
- \fBadd_wchnstr\fR,
-@@ -37,10 +42,12 @@
- \fBmvadd_wchnstr\fR,
- \fBmvwadd_wchstr\fR,
- \fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window
-+.ad
-+.hy
- .SH SYNOPSIS
--.B #include <curses.h>
--.PP
- .nf
-+\fB#include <curses.h>\fR
-+.PP
- \fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR
- .br
- \fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
-@@ -58,38 +65,53 @@
- \fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
- .fi
- .SH DESCRIPTION
--These routines copy the array of complex characters \fIwchstr\fR
--into the window image structure at and after the current cursor position.
--The four routines with \fIn\fR as the last
--argument copy at most \fIn\fR elements, but no more than will fit on the line.
-+These functions copy the (null-terminated)
-+array of complex characters \fIwchstr\fR
-+into the window image structure
-+starting at the current cursor position.
-+The four functions with \fIn\fR as the last
-+argument copy at most \fIn\fR elements,
-+but no more than will fit on the line.
- If \fBn\fR=\fB\-1\fR then the whole array is copied,
- to the maximum number of characters that will fit on the line.
- .PP
- The window cursor is \fInot\fR advanced.
--These routines work faster than \fBwaddnstr\fR.
--On the other hand, they do not perform checking
-+These functions work faster than \fBwaddnstr\fR.
-+On the other hand:
-+.bP
-+they do not perform checking
- (such as for the newline, backspace, or carriage return characters),
-+.bP
- they do not advance the current cursor position,
--they do not expand other control characters to ^-escapes,
--and they truncate the string if it crosses the right margin,
-+.bP
-+they do not expand other control characters to ^-escapes, and
-+.bP
-+they truncate the string if it crosses the right margin,
- rather than wrapping it around to the new line.
- .PP
--These routines end successfully
-+These functions end successfully
- on encountering a null \fIcchar_t\fR, or
- when they have filled the current line.
- If a complex character cannot completely fit at the end of the current line,
- the remaining columns are filled with the background character and rendition.
--.SH NOTES
--All functions except \fBwadd_wchnstr\fR may be macros.
--.SH RETURN VALUES
--All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
-+.SH RETURN VALUE
-+All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
-+.PP
-+X/Open does not define any error conditions.
-+This implementation returns an error
-+if the window pointer is null.
- .PP
- Functions with a "mv" prefix first perform a cursor movement using
- \fBwmove\fP, and return an error if the position is outside the window,
- or if the window pointer is null.
-+.SH NOTES
-+All functions except \fBwadd_wchnstr\fR may be macros.
- .SH PORTABILITY
--All these entry points are described in the XSI Curses standard, Issue 4.
-+These entry points are described in the XSI Curses standard, Issue 4.
- .SH SEE ALSO
--\fBcurses\fR(3X),
--\fBcurs_addchstr\fR(3X),
--\fBcurs_addwstr\fR(3X)
-+\fBcurs_addwstr\fR(3X),
-+\fBcurses\fR(3X).
-+.PP
-+Comparable functions in the narrow-character (ncurses) library are
-+described in
-+\fBcurs_addchstr\fR(3X).
-Index: man/curs_addchstr.3x
-Prereq: 1.15
---- ncurses-5.9/man/curs_addchstr.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_addchstr.3x 2012-11-03 22:54:43.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,8 +26,11 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_addchstr.3x,v 1.15 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp $
- .TH curs_addchstr 3X ""
-+.de bP
-+.IP \(bu 4
-+..
- .na
- .hy 0
- .SH NAME
-@@ -42,6 +45,7 @@
- .ad
- .hy
- .SH SYNOPSIS
-+.nf
- \fB#include <curses.h>\fR
- .PP
- \fBint addchstr(const chtype *chstr);\fR
-@@ -59,24 +63,33 @@
- \fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR
- .br
- \fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR
-+.fi
- .SH DESCRIPTION
--These routines copy \fIchstr\fR into the window image structure at and after
--the current cursor position. The four routines with \fIn\fR as the last
--argument copy at most \fIn\fR elements, but no more than will fit on the line.
--If \fBn\fR=\fB\-1\fR then the whole string is copied, to the maximum number of
--characters that will fit on the line.
-+These functions copy the (null-terminated)
-+\fIchstr\fR array
-+into the window image structure
-+starting at the current cursor position.
-+The four functions with \fIn\fR as the last
-+argument copy at most \fIn\fR elements,
-+but no more than will fit on the line.
-+If \fBn\fR=\fB\-1\fR then the whole array is copied,
-+to the maximum number of characters that will fit on the line.
- .PP
--The window cursor is \fInot\fR advanced, and these routines work faster than
--\fBwaddnstr\fR. On the other hand, they do not perform any kind of checking
--(such as for the newline, backspace, or carriage return characters), they do not
--advance the current cursor position, they do not expand other control characters
--to ^-escapes, and they truncate the string if it crosses the right margin,
-+The window cursor is \fInot\fR advanced.
-+These functions work faster than \fBwaddnstr\fR.
-+On the other hand:
-+.bP
-+they do not perform checking
-+(such as for the newline, backspace, or carriage return characters),
-+.bP
-+they do not advance the current cursor position,
-+.bP
-+they do not expand other control characters to ^-escapes, and
-+.bP
-+they truncate the string if it crosses the right margin,
- rather than wrapping it around to the new line.
--.SH RETURN VALUES
--All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
--(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
--successful completion, unless otherwise noted in the preceding routine
--descriptions.
-+.SH RETURN VALUE
-+All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
- .PP
- X/Open does not define any error conditions.
- This implementation returns an error
-@@ -86,10 +99,11 @@
- \fBwmove\fP, and return an error if the position is outside the window,
- or if the window pointer is null.
- .SH NOTES
--Note that all routines except \fBwaddchnstr\fR may be macros.
-+All functions except \fBwaddchnstr\fR may be macros.
- .SH PORTABILITY
- These entry points are described in the XSI Curses standard, Issue 4.
- .SH SEE ALSO
-+\fBcurs_addstr\fR(3X),
- \fBcurses\fR(3X).
- .PP
- Comparable functions in the wide-character (ncursesw) library are
-Index: man/curs_addstr.3x
-Prereq: 1.16
---- ncurses-5.9/man/curs_addstr.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_addstr.3x 2012-11-03 22:57:31.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,8 +26,11 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_addstr.3x,v 1.16 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp $
- .TH curs_addstr 3X ""
-+.de bP
-+.IP \(bu 4
-+..
- .na
- .hy 0
- .SH NAME
-@@ -62,34 +65,37 @@
- \fBint mvwaddnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr, int \fR\fIn\fR\fB);\fR
- .fi
- .SH DESCRIPTION
--These routines write the characters of the (null-terminated) character string
-+These functions write the (null-terminated) character string
- \fIstr\fR on the given window.
- It is similar to calling \fBwaddch\fR once for each character in the string.
--The four routines with \fIn\fR as the last argument
--write at most \fIn\fR characters.
--If \fIn\fR is \-1, then the entire string will be added,
--up to the maximum number of characters that will fit on the line,
-+.PP
-+The \fImv\fR functions perform cursor movement once, before writing any
-+characters.
-+Thereafter, the cursor is advanced as a side-effect of writing to the window.
-+.PP
-+The four functions with \fIn\fR as the last argument
-+write at most \fIn\fR characters,
- or until a terminating null is reached.
-+If \fIn\fR is \-1, then the entire string will be added.
- .SH RETURN VALUE
--All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
--(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
--successful completion.
-+All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
- .PP
- X/Open does not define any error conditions.
- This implementation returns an error
-+.bP
- if the window pointer is null or
-+.bP
- if the string pointer is null or
-+.bP
- if the corresponding calls to \fBwaddch\fP return an error.
- .PP
- Functions with a "mv" prefix first perform a cursor movement using
- \fBwmove\fP, and return an error if the position is outside the window,
- or if the window pointer is null.
- .SH NOTES
--Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
--macros.
-+All of these functions except \fBwaddnstr\fR may be macros.
- .SH PORTABILITY
--All these entry points are described in the XSI Curses standard, Issue 4. The
--XSI errors EILSEQ and EOVERFLOW, associated with extended-level conformance,
--are not yet detected.
-+These functions are described in the XSI Curses standard, Issue 4.
- .SH SEE ALSO
--\fBcurses\fR(3X), \fBcurs_addch\fR(3X).
-+\fBcurses\fR(3X),
-+\fBcurs_addch\fR(3X).
-Index: man/curs_addwstr.3x
-Prereq: 1.10
---- ncurses-5.9/man/curs_addwstr.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_addwstr.3x 2012-11-03 22:57:31.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,8 +26,11 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_addwstr.3x,v 1.10 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp $
- .TH curs_addwstr 3X ""
-+.de bP
-+.IP \(bu 4
-+..
- .na
- .hy 0
- .SH NAME
-@@ -62,31 +65,39 @@
- \fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
- .fi
- .SH DESCRIPTION
--These routines write the characters of the
-+These functions write the characters of the
- (null-terminated) \fBwchar_t\fR character string
- \fIwstr\fR on the given window.
- It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
- then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
- .PP
--The \fImv\fR routines perform cursor movement once, before writing any
-+The \fImv\fR functions perform cursor movement once, before writing any
- characters.
- Thereafter, the cursor is advanced as a side-effect of writing to the window.
- .PP
--The four routines with \fIn\fR as the last argument
--write at most \fIn\fR \fBwchar_t\fR characters.
--If \fIn\fR is \-1, then the entire string will be added,
--up to the maximum number of characters that will fit on the line,
-+The four functions with \fIn\fR as the last argument
-+write at most \fIn\fR \fBwchar_t\fR characters,
- or until a terminating null is reached.
--.SH RETURN VALUES
--All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
-+If \fIn\fR is \-1, then the entire string will be added.
-+.SH RETURN VALUE
-+All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
-+.PP
-+X/Open does not define any error conditions.
-+This implementation returns an error
-+.bP
-+if the window pointer is null or
-+.bP
-+if the string pointer is null or
-+.bP
-+if the corresponding calls to \fBwadd_wch\fP return an error.
- .PP
- Functions with a "mv" prefix first perform a cursor movement using
- \fBwmove\fP, and return an error if the position is outside the window,
- or if the window pointer is null.
- .SH NOTES
--Note that all of these routines except \fBwaddnwstr\fR may be macros.
-+All of these functions except \fBwaddnwstr\fR may be macros.
- .SH PORTABILITY
--All these entry points are described in the XSI Curses standard, Issue 4.
-+These functions are described in the XSI Curses standard, Issue 4.
- .SH SEE ALSO
- \fBcurses\fR(3X),
- \fBcurs_add_wch\fR(3X)
-Index: man/curs_bkgrnd.3x
-Prereq: 1.4
---- ncurses-5.9/man/curs_bkgrnd.3x 2010-12-04 18:49:20.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_bkgrnd.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_bkgrnd.3x,v 1.4 2010/12/04 18:49:20 tom Exp $
-+.\" $Id: curs_bkgrnd.3x,v 1.5 2012/11/03 23:03:59 tom Exp $
- .TH curs_bkgrnd 3X ""
- .SH NAME
- \fBbkgrnd\fR,
-@@ -89,7 +89,7 @@
- \fBbkgrndset\fR, and
- \fBgetbkgrnd\fR
- may be macros.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- The \fBbkgrndset\fR and \fBwbkgrndset\fR routines do not return a value.
- .PP
- Upon successful completion, the other functions return \fBOK\fR.
-Index: man/curs_border_set.3x
-Prereq: 1.10
---- ncurses-5.9/man/curs_border_set.3x 2011-01-15 12:56:18.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_border_set.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2011,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_border_set.3x,v 1.10 2011/01/15 12:56:18 tom Exp $
-+.\" $Id: curs_border_set.3x,v 1.11 2012/11/03 23:03:59 tom Exp $
- .TH curs_border_set 3X ""
- .na
- .hy 0
-@@ -187,7 +187,7 @@
- \fBvline_set\fR
- may be macros.
- .br
--.SH RETURN VALUES
-+.SH RETURN VALUE
- .PP
- Upon successful completion, these functions return
- \fBOK\fR.
-Index: man/curs_get_wch.3x
-Prereq: 1.7
---- ncurses-5.9/man/curs_get_wch.3x 2010-08-14 23:31:42.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_get_wch.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_get_wch.3x,v 1.7 2010/08/14 23:31:42 tom Exp $
-+.\" $Id: curs_get_wch.3x,v 1.8 2012/11/03 23:03:59 tom Exp $
- .TH curs_get_wch 3X ""
- .SH NAME
- \fBget_wch\fR,
-@@ -132,7 +132,7 @@
- .PP
- All functions except \fBwget_wch\fR and \fBunget_wch\fR
- may be macros.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- When
- \fBget_wch\fR,
- \fBwget_wch\fR,
-Index: man/curs_get_wstr.3x
-Prereq: 1.8
---- ncurses-5.9/man/curs_get_wstr.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_get_wstr.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_get_wstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_get_wstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp $
- .TH curs_get_wstr 3X ""
- .na
- .hy 0
-@@ -144,7 +144,7 @@
- is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value.
- .PP
- All of these routines except \fBwgetn_wstr\fR may be macros.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- All of these functions return \fBOK\fR upon successful completion.
- Otherwise, they return \fBERR\fR.
- .PP
-Index: man/curs_getcchar.3x
-Prereq: 1.15
---- ncurses-5.9/man/curs_getcchar.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_getcchar.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2001-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_getcchar.3x,v 1.15 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_getcchar.3x,v 1.16 2012/11/03 23:03:59 tom Exp $
- .TH curs_getcchar 3X ""
- .de bP
- .IP \(bu 4
-@@ -116,7 +116,7 @@
- The \fIwcval\fP argument may be a value generated by a call to
- \fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument.
- If \fIwcval\fP is constructed by any other means, the effect is unspecified.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- .PP
- When \fIwch\fP is a null pointer,
- \fBgetcchar\fP returns the number of wide characters referenced by
-Index: man/curs_getch.3x
-Prereq: 1.36
---- ncurses-5.9/man/curs_getch.3x 2011-01-22 19:38:51.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_getch.3x 2012-07-07 20:04:56.000000000 +0000
-@@ -1,6 +1,6 @@
- '\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_getch.3x,v 1.36 2011/01/22 19:38:51 tom Exp $
-+.\" $Id: curs_getch.3x,v 1.37 2012/07/07 20:04:56 tom Exp $
- .TH curs_getch 3X ""
- .na
- .hy 0
-@@ -237,14 +237,14 @@
- All routines return the integer \fBERR\fR upon failure and an integer value
- other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
- completion.
--.RS
-+.RS 3
- .TP 5
- \fBungetch\fP
--returns an error
-+returns ERR
- if there is no more room in the FIFO.
--.TP 5
-+.TP
- \fBwgetch\fP
--returns an error
-+returns ERR
- if the window pointer is null, or
- if its timeout expires without having any data.
- .RE
-Index: man/curs_in_wchstr.3x
-Prereq: 1.8
---- ncurses-5.9/man/curs_in_wchstr.3x 2010-12-04 18:36:44.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_in_wchstr.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_in_wchstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp $
-+.\" $Id: curs_in_wchstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp $
- .TH curs_in_wchstr 3X ""
- .na
- .hy 0
-@@ -98,7 +98,7 @@
- \fBmvwin_wchnstr\fR, or
- \fBwin_wchnstr\fR
- is recommended.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- Upon successful completion, these functions return
- \fBOK\fR.
- Otherwise, they return
-Index: man/curs_inopts.3x
-Prereq: 1.15
---- ncurses-5.9/man/curs_inopts.3x 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_inopts.3x 2012-04-28 19:09:15.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: curs_inopts.3x,v 1.17 2012/04/28 19:09:15 tom Exp $
- .TH curs_inopts 3X ""
- .na
- .hy 0
-@@ -223,6 +223,42 @@
- left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
- off as a side-effect. For best portability, set echo or noecho explicitly
- just after initialization, even if your program remains in cooked mode.
-+.PP
-+When \fBkeypad\fP is first enabled,
-+ncurses loads the key-definitions for the current terminal description.
-+If the terminal description includes extended string capabilities,
-+e.g., from using the \fB\-x\fP option of @TIC@,
-+then ncurses also defines keys for the capabilities whose names
-+begin with "k".
-+The corresponding keycodes are generated and (depending on previous
-+loads of terminal descriptions) may differ from one execution of a
-+program to the next.
-+The generated keycodes are recognized by the \fBkeyname\fP function
-+(which will then return a name beginning with "k" denoting the
-+terminfo capability name rather than "K", used for curses key-names).
-+On the other hand, an application can use \fBdefine_key\fP to establish
-+a specific keycode for a given string.
-+This makes it possible for an application to check for an extended
-+capability's presence with \fItigetstr\fP,
-+and reassign the keycode to match its own needs.
-+.PP
-+Low-level applications can use \fBtigetstr\fP to obtain the definition
-+of any particular string capability.
-+Higher-level applications which use the curses \fBwgetch\fP
-+and similar functions to return keycodes rely upon the order in which
-+the strings are loaded.
-+If more than one key definition has the same string value,
-+then \fBwgetch\fP can return only one keycode.
-+Most curses implementations (including ncurses)
-+load key definitions in the order
-+defined by the array of string capability names.
-+The last key to be loaded determines the keycode which will be returned.
-+In ncurses, you may also have extended capabilities interpreted as
-+key definitions.
-+These are loaded after the predefined keys,
-+and if a capability's value is the same as a previously-loaded
-+key definition,
-+the later definition is the one used.
- .SH NOTES
- Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
- \fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR,
-@@ -233,4 +269,9 @@
- respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
- control states that are hard to predict or understand; it is not recommended.
- .SH SEE ALSO
--\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7)
-+\fBcurses\fR(3X),
-+\fBcurs_getch\fR(3X),
-+\fBcurs_initscr\fR(3X),
-+\fBcurs_util\fR(3X),
-+\fBdefine_key\fR(3X),
-+\fBtermio\fR(7)
-Index: man/curs_ins_wstr.3x
-Prereq: 1.6
---- ncurses-5.9/man/curs_ins_wstr.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_ins_wstr.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_ins_wstr.3x,v 1.6 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: curs_ins_wstr.3x,v 1.7 2012/11/03 23:03:59 tom Exp $
- .TH curs_ins_wstr 3X ""
- .na
- .hy 0
-@@ -92,7 +92,7 @@
- functions will fail.
- XSI does not define what will happen if a nonspacing character follows
- a control character.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- Upon successful completion, these functions return OK.
- Otherwise, they return ERR.
- .PP
-Index: man/curs_inwstr.3x
-Prereq: 1.7
---- ncurses-5.9/man/curs_inwstr.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_inwstr.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_inwstr.3x,v 1.7 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: curs_inwstr.3x,v 1.8 2012/11/03 23:03:59 tom Exp $
- .TH curs_inwstr 3X ""
- .SH NAME
- \fBinwstr\fR,
-@@ -72,7 +72,7 @@
- Note that all routines except
- \fBwinnwstr\fR
- may be macros.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- All routines return
- \fBERR\fR
- upon failure. Upon
-Index: man/curs_overlay.3x
-Prereq: 1.16
---- ncurses-5.9/man/curs_overlay.3x 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_overlay.3x 2013-04-06 23:48:51.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_overlay.3x,v 1.16 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: curs_overlay.3x,v 1.17 2013/04/06 23:48:51 tom Exp $
- .TH curs_overlay 3X ""
- .na
- .hy 0
-@@ -48,18 +48,21 @@
- \fBint dmaxcol, int overlay);\fR
- .SH DESCRIPTION
- The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on
--top of \fIdstwin\fR. \fIscrwin\fR and \fIdstwin\fR are not required
--to be the same size; only text where the two windows overlap is
--copied. The difference is that \fBoverlay\fR is non-destructive
-+top of \fIdstwin\fR.
-+\fIscrwin\fR and \fIdstwin\fR are not required
-+to be the same size; only text where the two windows overlap is copied.
-+The difference is that \fBoverlay\fR is non-destructive
- (blanks are not copied) whereas \fBoverwrite\fR is destructive.
- .PP
- The \fBcopywin\fR routine provides a finer granularity of control over the
--\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR
--routine, a rectangle is specified in the destination window, (\fIdminrow\fR,
-+\fBoverlay\fR and \fBoverwrite\fR routines.
-+As in the \fBprefresh\fR routine,
-+a rectangle is specified in the destination window, (\fIdminrow\fR,
- \fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner
--coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). If the
--argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in
--\fBoverlay\fR.
-+coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR).
-+If the argument \fIoverlay\fR is \fBtrue\fR,
-+then copying is non-destructive,
-+as in \fBoverlay\fR.
- .SH RETURN VALUE
- Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR
- (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-@@ -75,7 +78,8 @@
- Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
- .SH PORTABILITY
- The XSI Curses standard, Issue 4 describes these functions (adding the const
--qualifiers). It further specifies their behavior in the presence of characters
-+qualifiers).
-+It further specifies their behavior in the presence of characters
- with multibyte renditions (not yet supported in this implementation).
- .SH SEE ALSO
- \fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
-Index: man/curs_termcap.3x
-Prereq: 1.26
---- ncurses-5.9/man/curs_termcap.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_termcap.3x 2013-01-19 15:58:48.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,8 +26,11 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_termcap.3x,v 1.26 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp $
- .TH curs_termcap 3X ""
-+.de bP
-+.IP \(bu 4
-+..
- .na
- .hy 0
- .ds n 5
-@@ -75,11 +78,39 @@
- routines are emulated using the \fIterminfo\fR database. Thus, they
- can only be used to query the capabilities of entries for which a
- terminfo entry has been compiled.
-+.SS INITIALIZATION
- .PP
- The \fBtgetent\fR routine loads the entry for \fIname\fR.
--It returns 1 on success, 0 if there is no such entry, and \-1 if the
--terminfo database could not be found.
-+It returns:
-+.RS 3
-+.TP 3
-+1
-+on success,
-+.TP 3
-+0
-+if there is no such entry
-+(or that it is a generic type, having too little information for curses
-+applications to run), and
-+.TP 3
-+\-1
-+if the terminfo database could not be found.
-+.RE
-+.PP
-+This differs from the \fItermcap\fP library in two ways:
-+.RS 3
-+.bP
- The emulation ignores the buffer pointer \fIbp\fR.
-+The \fItermcap\fP library would store a copy of the terminal
-+description in the area referenced by this pointer.
-+However, ncurses stores its terminal descriptions in compiled
-+binary form, which is not the same thing.
-+.bP
-+There is a difference in return codes.
-+The \fItermcap\fP library does not check if the terminal
-+description is marked with the \fIgeneric\fP capability,
-+or if the terminal description has cursor-addressing.
-+.RE
-+.SS CAPABILITY VALUES
- .PP
- The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
- or zero if it is not available.
-@@ -98,12 +129,14 @@
- \fBtgetflag\fR,
- \fBtgetnum\fR and
- \fBtgetstr\fR are compared in lookups.
-+.SS FORMATTING CAPABILITIES
- .PP
- The \fBtgoto\fR routine instantiates the parameters into the given capability.
- The output from this routine is to be passed to \fBtputs\fR.
- .PP
- The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
- page. It can retrieve capabilities by either termcap or terminfo name.
-+.SS GLOBAL VARIABLES
- .PP
- The variables
- \fBPC\fR,
-@@ -165,8 +198,28 @@
- e.g., not distinguishing between input and output.
- In particular, some applications are reported to declare and/or
- modify \fBospeed\fR.
-+.PP
-+The comment that only the first two characters of the \fBid\fR parameter
-+are used escapes many application developers.
-+The original BSD 4.2 termcap library (and historical relics thereof)
-+did not require a trailing null NUL on the parameter name passed
-+to \fBtgetstr\fP, \fBtgetnum\fP and \fBtgetflag\fP.
-+Some applications assume that the termcap interface does not require
-+the trailing NUL for the parameter name.
-+Taking into account these issues:
-+.bP
-+As a special case,
-+\fBtgetflag\fP matched against a single-character identifier
-+provided that was at the end of the terminal description.
-+You should not rely upon this behavior in portable programs.
-+This implementation disallows matches against single-character capability names.
-+.bP
-+This implementation disallows matches by the termcap interface against
-+extended capability names which are longer than two characters.
- .SH SEE ALSO
- \fBcurses\fR(3X),
- \fBterminfo\fR(\*n),
- \fBterm_variables\fR(3X),
- \fBputc\fR(3).
-+.sp
-+http://invisible-island.net/ncurses/tctest.html
-Index: man/curs_terminfo.3x
-Prereq: 1.35
---- ncurses-5.9/man/curs_terminfo.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_terminfo.3x 2013-01-12 18:11:40.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1999-2011,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_terminfo.3x,v 1.35 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: curs_terminfo.3x,v 1.37 2013/01/12 18:11:40 tom Exp $
- .TH curs_terminfo 3X ""
- .ds n 5
- .na
-@@ -77,7 +77,7 @@
- .br
- \fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR
- .br
--\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(char));\fR
-+\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
- .br
- \fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR
- .br
-@@ -346,7 +346,7 @@
- This implementation allows the caller to use \-1's for the old ordinates.
- In that case, the old location is unknown.
- .PP
--Extended terminal capability names, e.g., as defined by \fBtic\ \-x\fP,
-+Extended terminal capability names, e.g., as defined by \fB@TIC@\ \-x\fP,
- are not stored in the arrays described in this section.
- .SH SEE ALSO
- \fBcurses\fR(3X),
-Index: man/curs_threads.3x
-Prereq: 1.18
---- ncurses-5.9/man/curs_threads.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_threads.3x 2012-05-26 17:03:26.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2008,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: curs_threads.3x,v 1.19 2012/05/26 17:03:26 tom Exp $
- .TH curs_threads 3X ""
- .de bP
- .IP \(bu 4
-@@ -51,9 +51,9 @@
- .br
- \fBint set_tabsize(int size);\fR
- .br
--\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR
-+\fBint use_screen(SCREEN *scr, NCURSES_SCREEN_CB func, void *data);\fR
- .br
--\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR
-+\fBint use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data);\fR
- .br
- .SH DESCRIPTION
- This implementation can be configured to provide rudimentary support
-Index: man/curs_util.3x
-Prereq: 1.32
---- ncurses-5.9/man/curs_util.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/curs_util.3x 2012-07-21 18:51:10.000000000 +0000
-@@ -1,5 +1,6 @@
-+'\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +27,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: curs_util.3x,v 1.32 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: curs_util.3x,v 1.36 2012/07/21 18:51:10 tom Exp $
- .TH curs_util 3X ""
- .de bP
- .IP \(bu 4
-@@ -44,6 +45,7 @@
- \fBputwin\fR,
- \fBunctrl\fR,
- \fBuse_env\fR,
-+\fBuse_tioctl\fR,
- \fBwunctrl\fR \- miscellaneous \fBcurses\fR utility routines
- .ad
- .hy
-@@ -64,6 +66,8 @@
- .br
- \fBvoid use_env(bool f);\fR
- .br
-+\fBvoid use_tioctl(bool f);\fR
-+.br
- \fBint putwin(WINDOW *win, FILE *filep);\fR
- .br
- \fBWINDOW *getwin(FILE *filep);\fR
-@@ -123,16 +127,70 @@
- The limitation arises because the \fBfilter\fP routine modifies the
- in-memory copy of the terminal information.
- .PP
--The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or
--\fBnewterm\fR are called. When called with \fBFALSE\fR as an
--argument, the values of \fBlines\fR and \fBcolumns\fR specified in the
--\fIterminfo\fR database will be used, even if environment variables
--\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if
--\fBcurses\fR is running in a window (in which case default behavior
--would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are
--not set).
--Note that setting \fBLINES\fR or \fBCOLUMNS\fR overrides the
--corresponding size which may be obtained from the operating system.
-+The \fBuse_env\fR routine, if used,
-+should be called before \fBinitscr\fR or
-+\fBnewterm\fR are called
-+(because those compute the screen size).
-+It modifies the way \fBncurses\fP treats environment variables
-+when determining the screen size.
-+.bP
-+Normally ncurses looks first at the terminal database for the screen size.
-+.IP
-+If \fBuse_env\fP was called with \fBFALSE\fP for parameter,
-+it stops here unless
-+If \fBuse_tioctl\fP was also called with \fBTRUE\fP for parameter.
-+.bP
-+Then it asks for the screen size via operating system calls.
-+If successful,
-+it overrides the values from the terminal database.
-+.bP
-+Finally (unless \fBuse_env\fP was called with \fBFALSE\fP parameter),
-+ncurses examines the \fBLINES\fR or \fBCOLUMNS\fR environment variables,
-+using a value in those to override the results
-+from the operating system or terminal database.
-+.IP
-+Ncurses also updates the screen size in response to SIGWINCH,
-+unless overridden by the \fBLINES\fR or \fBCOLUMNS\fR environment variables,
-+.PP
-+The \fBuse_tioctl\fR routine, if used,
-+should be called before \fBinitscr\fR or \fBnewterm\fR are called
-+(because those compute the screen size).
-+After \fBuse_tioctl\fR is called with \fBTRUE\fR as an argument,
-+ncurses modifies the last step in its computation of screen size as follows:
-+.bP
-+checks if the \fBLINES\fR and \fBCOLUMNS\fR environment variables
-+are set to a number greater than zero.
-+.bP
-+for each, ncurses updates the corresponding environment variable
-+with the value that it has obtained via operating system call
-+or from the terminal database.
-+.bP
-+ncurses re-fetches the value of the environment variables so that
-+it is still the environment variables which set the screen size.
-+.PP
-+The \fBuse_env\fP and \fBuse_tioctl\fP routines combine as
-+summarized here:
-+.TS
-+center tab(/);
-+l l l
-+_ _ _
-+lw7 lw7 lw40.
-+\fIuse_env\fR/\fIuse_tioctl\fR/\fISummary\fR
-+TRUE/FALSE/T{
-+This is the default behavior.
-+ncurses uses operating system calls
-+unless overridden by $LINES or $COLUMNS environment variables.
-+T}
-+TRUE/TRUE/T{
-+ncurses updates $LINES and $COLUMNS based on operating system calls.
-+T}
-+FALSE/TRUE/T{
-+ncurses ignores $LINES and $COLUMNS, uses operating system calls to obtain size.
-+T}
-+FALSE/FALSE/T{
-+ncurses relies on the terminal database to determine size.
-+T}
-+.TE
- .PP
- The \fBputwin\fR routine writes all data associated with window \fIwin\fR into
- the file to which \fIfilep\fR points. This information can be later retrieved
-@@ -224,7 +282,7 @@
- .PP
- The \fBkeyname\fP function may return the names of user-defined
- string capabilities which are defined in the terminfo entry via the \fB\-x\fP
--option of \fBtic\fP.
-+option of \fB@TIC@\fP.
- This implementation automatically assigns at run-time keycodes to
- user-defined strings which begin with "k".
- The keycodes start at KEY_MAX, but are not guaranteed to be
-@@ -233,8 +291,8 @@
- The \fBuse_extended_names\fP function controls whether this data is
- loaded when the terminal description is read by the library.
- .PP
--The \fBnofilter\fP routine is specific to ncurses.
--It was not supported on Version 7, BSD or System V implementations.
-+The \fBnofilter\fP and \fBuse_tioctl\fP routines are specific to ncurses.
-+They were not supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on ncurses extensions
- be conditioned using NCURSES_VERSION.
- .SH SEE ALSO
-Index: man/form_field.3x
-Prereq: 1.10
---- ncurses-5.9/man/form_field.3x 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/form_field.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,6 +1,6 @@
- '\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: form_field.3x,v 1.10 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: form_field.3x,v 1.11 2012/11/03 23:03:59 tom Exp $
- .TH form_field 3X ""
- .SH NAME
- \fBform_field\fR \- make and break connections between fields and forms
-@@ -52,7 +52,7 @@
- .PP
- The function \fBmove_field\fR moves the given field (which must be disconnected)
- to a specified location on the screen.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- The function \fBform_fields\fR returns a pointer (which may be \fBNULL\fR).
- It does not set errno.
- .PP
-Index: man/infocmp.1m
-Prereq: 1.46
---- ncurses-5.9/man/infocmp.1m 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/infocmp.1m 2013-02-02 22:07:35.000000000 +0000
-@@ -1,6 +1,6 @@
- '\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -27,9 +27,12 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: infocmp.1m,v 1.46 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: infocmp.1m,v 1.53 2013/02/02 22:07:35 tom Exp $
- .TH @INFOCMP@ 1M ""
- .ds n 5
-+.de bP
-+.IP \(bu 4
-+..
- .ds d @TERMINFO@
- .SH NAME
- \fB@INFOCMP@\fR \- compare or print out \fIterminfo\fR descriptions
-@@ -37,10 +40,12 @@
- \fB@INFOCMP@\fR [\fB\-\
- 1\
- C\
-+D\
- E\
- F\
- G\
- I\
-+K\
- L\
- T\
- U\
-@@ -69,32 +74,40 @@
- \fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
- terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
- \fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
--binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean
-+binary file (\fBterm\fR) in a variety of formats.
-+In all cases, the boolean
- fields will be printed first, followed by the numeric fields, followed by the
- string fields.
- .SS Default Options
- If no options are specified and zero or one \fItermnames\fR are specified, the
--\fB\-I\fR option will be assumed. If more than one \fItermname\fR is specified,
-+\fB\-I\fR option will be assumed.
-+If more than one \fItermname\fR is specified,
- the \fB\-d\fR option will be assumed.
- .SS Comparison Options [\-d] [\-c] [\-n]
- \fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
- \fItermname\fR with each of the descriptions given by the entries for the other
--terminal's \fItermnames\fR. If a capability is defined for only one of the
-+terminal's \fItermnames\fR.
-+If a capability is defined for only one of the
- terminals, the value returned will depend on the type of the capability:
- \fBF\fR for boolean variables, \fB\-1\fR for integer variables, and \fBNULL\fR
- for string variables.
- .PP
- The \fB\-d\fR option produces a list of each capability that is different
--between two entries. This option is useful to show the difference between two
-+between two entries.
-+This option is useful to show the difference between two
- entries, created by different people, for the same or similar terminals.
- .PP
- The \fB\-c\fR option produces a list of each capability that is common between
--two entries. Capabilities that are not set are ignored. This option can be
-+two or more entries.
-+Capabilities that are not set are ignored.
-+This option can be
- used as a quick check to see if the \fB\-u\fR option is worth using.
- .PP
--The \fB\-n\fR option produces a list of each capability that is in neither
--entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR
--will be used for both of the \fItermnames\fR. This can be used as a quick
-+The \fB\-n\fR option produces a list of each capability that is in none of
-+the given entries.
-+If no \fItermnames\fR are given, the environment variable \fBTERM\fR
-+will be used for both of the \fItermnames\fR.
-+This can be used as a quick
- check to see if anything was left out of a description.
- .SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
- The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce a source listing for
-@@ -107,6 +120,7 @@
- \fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR>
- \fB\-C\fR/use the \fBtermcap\fR names
- \fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form
-+\fB\-K\fR/modifies the \fB\-C\fP option, improving BSD-compatibility.
- .TE
- .PP
- If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
-@@ -114,26 +128,48 @@
- .PP
- The source produced by the \fB\-C\fR option may be used directly as a
- \fBtermcap\fR entry, but not all parameterized strings can be changed to
--the \fBtermcap\fR format. \fB@INFOCMP@\fR will attempt to convert most of the
-+the \fBtermcap\fR format.
-+\fB@INFOCMP@\fR will attempt to convert most of the
- parameterized information, and anything not converted will be plainly marked in
--the output and commented out. These should be edited by hand.
-+the output and commented out.
-+These should be edited by hand.
-+.PP
-+For best results when converting to \fBtermcap\fP format,
-+you should use both \fB\-C\fP and \fB\-r\fP.
-+Normally a termcap description is limited to 1023 bytes.
-+@INFOCMP@ trims away less essential parts to make it fit.
-+If you are converting to one of the (rare) termcap implementations
-+which accept an unlimited size of termcap,
-+you may want to add the \fB\-T\fP option.
-+More often however, you must help the termcap implementation,
-+and trim excess whitespace (use the \fB\-0\fP option for that).
- .PP
- All padding information for strings will be collected together and placed
--at the beginning of the string where \fBtermcap\fR expects it. Mandatory
-+at the beginning of the string where \fBtermcap\fR expects it.
-+Mandatory
- padding (padding information with a trailing '/') will become optional.
- .PP
- All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
--are derivable from other \fBterminfo\fR variables, will be output. Not all
-+are derivable from other \fBterminfo\fR variables, will be output.
-+Not all
- \fBterminfo\fR capabilities will be translated; only those variables which were
--part of \fBtermcap\fR will normally be output. Specifying the \fB\-r\fR option
-+part of \fBtermcap\fR will normally be output.
-+Specifying the \fB\-r\fR option
- will take off this restriction, allowing all capabilities to be output in
- \fItermcap\fR form.
-+Normally you would use both the \fB\-C\fP and \fB\-r\fP options.
-+The actual format used incorporates some improvements for escaped characters
-+from terminfo format.
-+For a stricter BSD-compatible translation, use the \fB\-K\fR option
-+rather than \fB\-C\fP.
- .PP
- Note that because padding is collected to the beginning of the capability, not
--all capabilities are output. Mandatory padding is not supported. Because
-+all capabilities are output.
-+Mandatory padding is not supported.
-+Because
- \fBtermcap\fR strings are not as flexible, it is not always possible to convert
--a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A
--subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format
-+a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format.
-+A subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format
- will not necessarily reproduce the original \fBterminfo\fR
- source.
- .PP
-@@ -156,27 +192,33 @@
- .SS Use= Option [\-u]
- The \fB\-u\fR option produces a \fBterminfo\fR source description of the first
- terminal \fItermname\fR which is relative to the sum of the descriptions given
--by the entries for the other terminals \fItermnames\fR. It does this by
-+by the entries for the other terminals \fItermnames\fR.
-+It does this by
- analyzing the differences between the first \fItermname\fR and the other
- \fItermnames\fR and producing a description with \fBuse=\fR fields for the
--other terminals. In this manner, it is possible to retrofit generic terminfo
--entries into a terminal's description. Or, if two similar terminals exist, but
-+other terminals.
-+In this manner, it is possible to retrofit generic terminfo
-+entries into a terminal's description.
-+Or, if two similar terminals exist, but
- were coded at different times or by different people so that each description
- is a full description, using \fB@INFOCMP@\fR will show what can be done to change
- one description to be relative to the other.
- .PP
- A capability will get printed with an at-sign (@) if it no longer exists in the
- first \fItermname\fR, but one of the other \fItermname\fR entries contains a
--value for it. A capability's value gets printed if the value in the first
-+value for it.
-+A capability's value gets printed if the value in the first
- \fItermname\fR is not found in any of the other \fItermname\fR entries, or if
- the first of the other \fItermname\fR entries that has this capability gives a
- different value for the capability than that in the first \fItermname\fR.
- .PP
--The order of the other \fItermname\fR entries is significant. Since the
--terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
-+The order of the other \fItermname\fR entries is significant.
-+Since the
-+terminfo compiler \fB@TIC@\fR does a left-to-right scan of the capabilities,
- specifying two \fBuse=\fR entries that contain differing entries for the same
- capabilities will produce different results depending on the order that the
--entries are given in. \fB@INFOCMP@\fR will flag any such inconsistencies between
-+entries are given in.
-+\fB@INFOCMP@\fR will flag any such inconsistencies between
- the other \fItermname\fR entries as they are found.
- .PP
- Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
-@@ -187,29 +229,48 @@
- .PP
- Another error that does not cause incorrect compiled files, but will slow down
- the compilation time, is specifying extra \fBuse=\fR fields that are
--superfluous. \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
-+superfluous.
-+\fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
- were not needed.
- .SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
--The location of the compiled \fBterminfo\fR database is taken from the
--environment variable \fBTERMINFO\fR . If the variable is not defined, or the
--terminal is not found in that location, the system \fBterminfo\fR database,
--in \fB@TERMINFO@\fR, will be used. The options \fB\-A\fR
--and \fB\-B\fR may be used to override this location. The \fB\-A\fR option will
--set \fBTERMINFO\fR for the first \fItermname\fR and the \fB\-B\fR option will
--set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to
-+Like other \fBncurses\fP utilities,
-+@INFOCMP@ looks for the terminal descriptions in several places.
-+You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables
-+to override the compiled-in default list of places to search
-+(see \fBcurses\fP(3X) for details).
-+.PP
-+You can also use the options \fB\-A\fR
-+and \fB\-B\fR to override the list of places to search
-+when comparing terminal descriptions:
-+.bP
-+The \fB\-A\fR option sets the location for the first \fItermname\fR
-+.bP
-+The \fB\-B\fR option sets the location for the other \fItermnames\fR.
-+.PP
-+Using these options, it is possible to
- compare descriptions for a terminal with the same name located in two different
--databases. This is useful for comparing descriptions for the same terminal
-+databases.
-+For instance,
-+you can use this feature for comparing descriptions for the same terminal
- created by different people.
- .SS Other Options
- .TP 5
-+\fB\-0\fR
-+causes the fields to be printed on one line, without wrapping.
-+.TP 5
- \fB\-1\fR
--causes the fields to be printed out one to a line. Otherwise,
-+causes the fields to be printed out one to a line.
-+Otherwise,
- the fields will be printed several to a line to a maximum width
- of 60 characters.
- .TP
- \fB\-a\fR
- tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding
--them. Capabilities are commented by prefixing them with a period.
-+them.
-+Capabilities are commented by prefixing them with a period.
-+.TP
-+\fB\-D\fR
-+tells \fB@INFOCMP@\fP to print the database locations that it knows about, and exit.
- .TP 5
- \fB\-E\fR
- Dump the capabilities of the given terminal as tables, needed in
-@@ -231,12 +292,15 @@
- for a given terminal type.
- .TP 5
- \fB\-F\fR
--compare terminfo files. This assumes that two following arguments are
--filenames. The files are searched for pairwise matches between
-+compare terminfo files.
-+This assumes that two following arguments are filenames.
-+The files are searched for pairwise matches between
- entries, with two entries considered to match if any of their names do.
- The report printed to standard output lists entries with no matches in
--the other file, and entries with more than one match. For entries
--with exactly one match it includes a difference report. Normally,
-+the other file, and entries with more than one match.
-+For entries
-+with exactly one match it includes a difference report.
-+Normally,
- to reduce the volume of the report, use references are
- not resolved before looking for differences, but resolution can be forced
- by also specifying \fB\-r\fR.
-@@ -255,14 +319,17 @@
- .TP 5
- \fB\-i\fR
- Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
--(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the
-+(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry.
-+For each string, the
- code tries to analyze it into actions in terms of the other capabilities in the
- entry, certain X3.64/ISO 6429/ECMA\-48 capabilities, and certain DEC VT-series
- private modes (the set of recognized special sequences has been selected for
--completeness over the existing terminfo database). Each report line consists
-+completeness over the existing terminfo database).
-+Each report line consists
- of the capability name, followed by a colon and space, followed by a printable
- expansion of the capability string with sections matching recognized actions
--translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI
-+translated into {}-bracketed descriptions.
-+Here is a list of the DEC/ANSI
- special sequences recognized:
- i.
- .TS
-@@ -308,7 +375,8 @@
- .sp
- It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
- Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
--REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off).
-+REVERSE.
-+All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off).
- .PP
- An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
- .TP 5
-@@ -323,12 +391,15 @@
- "\-" for absent capabilities, "@" for canceled rather than "NULL".
- .TP 5
- \fB\-R\fR\fIsubset\fR
--Restrict output to a given subset. This option is for use with archaic
-+Restrict output to a given subset.
-+This option is for use with archaic
- versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
- the full set of SVR4/XSI Curses terminfo; and variants such as AIX
--that have their own extensions incompatible with SVr4/XSI. Available terminfo
-+that have their own extensions incompatible with SVr4/XSI.
-+Available terminfo
- subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for
--details. You can also choose the subset "BSD" which selects only capabilities
-+details.
-+You can also choose the subset "BSD" which selects only capabilities
- with termcap equivalents recognized by 4.4BSD.
- .TP
- \fB\-s \fR\fI[d|i|l|c]\fR
-@@ -362,7 +433,7 @@
- descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
- .TP
- \fB\-t\fR
--tells \fBtic\fP to discard commented-out capabilities.
-+tells \fB@TIC@\fP to discard commented-out capabilities.
- Normally when translating from terminfo to termcap,
- untranslatable capabilities are commented-out.
- .TP 5
-@@ -385,13 +456,15 @@
- \fB\-x\fR
- print information for user-defined capabilities.
- These are extensions to the terminfo repertoire which can be loaded
--using the \fB\-x\fR option of \fBtic\fP.
-+using the \fB\-x\fR option of \fB@TIC@\fP.
- .SH FILES
- .TP 20
- \*d
- Compiled terminal description database.
- .SH EXTENSIONS
- The
-+\fB\-0\fR,
-+\fB\-1\fR,
- \fB\-E\fR,
- \fB\-F\fR,
- \fB\-G\fR,
-@@ -410,7 +483,8 @@
- options are not supported in SVr4 curses.
- .PP
- The \fB\-r\fR option's notion of `termcap' capabilities is System V Release 4's.
--Actual BSD curses versions will have a more restricted set. To see only the
-+Actual BSD curses versions will have a more restricted set.
-+To see only the
- 4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
- .SH BUGS
- The \fB\-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
-@@ -421,6 +495,8 @@
- \fB@TOE@\fR(1M),
- \fBcurses\fR(3X),
- \fBterminfo\fR(\*n).
-+.sp
-+http://invisible-island.net/ncurses/tctest.html
- .PP
- This describes \fBncurses\fR
- version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-Index: man/menu_items.3x
-Prereq: 1.9
---- ncurses-5.9/man/menu_items.3x 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/menu_items.3x 2012-11-03 23:03:59.000000000 +0000
-@@ -1,6 +1,6 @@
- '\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: menu_items.3x,v 1.9 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: menu_items.3x,v 1.10 2012/11/03 23:03:59 tom Exp $
- .TH menu_items 3X ""
- .SH NAME
- \fBmenu_items\fR \- make and break connections between items and menus
-@@ -47,7 +47,7 @@
- The function \fBmenu_items\fR returns the item array of the given menu.
- .PP
- The function \fBitem_count\fR returns the count of items in \fImenu\fR.
--.SH RETURN VALUES
-+.SH RETURN VALUE
- The function \fBmenu_items\fR returns a pointer (which may be \fBNULL\fR).
- It does not set errno.
- .PP
-Index: man/ncurses.3x
-Prereq: 1.103
---- ncurses-5.9/man/ncurses.3x 2011-02-05 23:21:29.000000000 +0000
-+++ ncurses-5.9-20130504/man/ncurses.3x 2013-03-02 22:15:25.000000000 +0000
-@@ -1,6 +1,6 @@
- '\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp $
-+.\" $Id: ncurses.3x,v 1.111 2013/03/02 22:15:25 tom Exp $
- .hy 0
- .TH ncurses 3X ""
- .de bP
-@@ -55,8 +55,10 @@
- XSI stands for X/Open System Interfaces Extension.
- The \fBncurses\fR library is freely redistributable in source form.
- Differences from the SVr4
--curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
--described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
-+curses are summarized under the
-+\fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
-+described in detail in the respective
-+\fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
- of individual man pages.
- .PP
- The \fBncurses\fR library also provides many useful extensions,
-@@ -108,9 +110,9 @@
- .sp
- Before a \fBcurses\fR program is run, the tab stops of the terminal
- should be set and its initialization strings, if defined, must be output.
--This can be done by executing the \fBtput init\fR command
-+This can be done by executing the \fB@TPUT@ init\fR command
- after the shell environment variable \fBTERM\fR has been exported.
--\fBtset(1)\fR is usually responsible for doing this.
-+\fB@TSET@(1)\fR is usually responsible for doing this.
- [See \fBterminfo\fR(\*n) for further details.]
- .PP
- The \fBncurses\fR library permits manipulation of data structures,
-@@ -637,6 +639,7 @@
- use_env/\fBcurs_util\fR(3X)
- use_extended_names/\fBcurs_extend\fR(3X)*
- use_legacy_coding/\fBlegacy_coding\fR(3X)*
-+use_tioctl/\fBcurs_util\fR(3X)
- vid_attr/\fBcurs_terminfo\fR(3X)
- vid_puts/\fBcurs_terminfo\fR(3X)
- vidattr/\fBcurs_terminfo\fR(3X)
-@@ -734,9 +737,16 @@
- integer value other than \fBERR\fR upon successful completion, unless
- otherwise noted in the routine descriptions.
- .PP
-+As a general rule, routines check for null pointers passed as parameters,
-+and handle this as an error.
-+.PP
- All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
- \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
--The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
-+The return values of
-+\fBsetscrreg\fR,
-+\fBwsetscrreg\fR,
-+\fBgetyx\fR,
-+\fBgetbegyx\fR, and
- \fBgetmaxyx\fR are undefined (i.e., these should not be used as the
- right-hand side of assignment statements).
- .PP
-@@ -747,9 +757,9 @@
- The most important ones have been already discussed in detail.
- .TP 5
- BAUDRATE
--The debugging library checks this environment symbol when the application
-+The debugging library checks this environment variable when the application
- has redirected output to a file.
--The symbol's numeric value is used for the baudrate.
-+The variable's numeric value is used for the baudrate.
- If no value is found, \fBncurses\fR uses 9600.
- This allows testers to construct repeatable test-cases
- that take into account costs that depend on baudrate.
-@@ -757,7 +767,7 @@
- CC
- When set, change occurrences of the command_character
- (i.e., the \fBcmdch\fP capability)
--of the loaded terminfo entries to the value of this symbol.
-+of the loaded terminfo entries to the value of this variable.
- Very few terminfo entries provide this feature.
- .IP
- Because this name is also used in development environments to represent
-@@ -786,7 +796,9 @@
- a terminal description for terminals which are run as emulations.
- .IP
- Use the \fBuse_env\fR function to disable all use of external environment
--(including system calls) to determine the screen size.
-+(but not including system calls) to determine the screen size.
-+Use the \fBuse_tioctl\fR function to update \fBCOLUMNS\fP or \fBLINES\fP
-+to match the screen size obtained from system calls or the terminal database.
- .TP 5
- ESCDELAY
- Specifies the total time, in milliseconds, for which ncurses will
-@@ -837,8 +849,8 @@
- .br
- 3 = middle.
- .sp
--This symbol lets you customize the mouse.
--The symbol must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
-+This variable lets you customize the mouse.
-+The variable must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
- If it is not specified, \fBncurses\fR uses 132.
- .TP 5
- NCURSES_ASSUMED_COLORS
-@@ -899,19 +911,44 @@
- You may wish to use these descriptions,
- but not want to pay the performance penalty.
- .IP
--Set the NCURSES_NO_PADDING symbol to disable all but mandatory
-+Set the NCURSES_NO_PADDING environment variable to disable all but mandatory
- padding.
- Mandatory padding is used as a part of special control
- sequences such as \fIflash\fR.
- .TP 5
- NCURSES_NO_SETBUF
--Normally \fBncurses\fR enables buffered output during terminal initialization.
--This is done (as in SVr4 curses) for performance reasons.
-+This setting is obsolete.
-+Before changes
-+.RS
-+.bP
-+started with 5.9 patch 20120825
-+and
-+.bP
-+continued
-+though 5.9 patch 20130126
-+.RE
-+.IP
-+\fBncurses\fR enabled buffered output during terminal initialization.
-+This was done (as in SVr4 curses) for performance reasons.
- For testing purposes, both of \fBncurses\fR and certain applications,
--this feature is made optional.
-+this feature was made optional.
- Setting the NCURSES_NO_SETBUF variable
--disables output buffering, leaving the output in the original (usually
-+disabled output buffering, leaving the output in the original (usually
- line buffered) mode.
-+.IP
-+In the current implementation,
-+ncurses performs its own buffering and does not require this workaround.
-+It does not modify the buffering of the standard output.
-+.IP
-+The reason for the change was to make the behavior for interrupts and
-+other signals more robust.
-+One drawback is that certain nonconventional programs would mix
-+ordinary stdio calls with ncurses calls and (usually) work.
-+This is no longer possible since ncurses is not using
-+the buffered standard output but its own output (to the same file descriptor).
-+As a special case, the low-level calls such as \fBputp\fP still use the
-+standard output.
-+But high-level curses calls do not.
- .TP 5
- NCURSES_NO_UTF8_ACS
- During initialization, the \fBncurses\fR library
-@@ -933,20 +970,22 @@
- .IP
- As an alternative to the environment variable,
- ncurses checks for an extended terminfo capability \fBU8\fP.
--This is a numeric capability which can be compiled using \fBtic\ \-x\fP.
-+This is a numeric capability which can be compiled using \fB@TIC@\ \-x\fP.
- For example
- .RS 5
-+.ft CW
- .sp
- .nf
- # linux console, if patched to provide working
- # VT100 shift-in/shift-out, with corresponding font.
- linux-vt100|linux console with VT100 line-graphics,
-- U8#0, use=linux,
-+ U8#0, use=linux,
- .sp
- # uxterm with vt100Graphics resource set to false
- xterm-utf8|xterm relying on UTF-8 line-graphics,
-- U8#1, use=xterm,
-+ U8#1, use=xterm,
- .fi
-+.ft
- .RE
- .IP
- The name "U8" is chosen to be two characters,
-@@ -955,7 +994,7 @@
- .TP 5
- NCURSES_TRACE
- During initialization, the \fBncurses\fR debugging library
--checks the NCURSES_TRACE symbol.
-+checks the NCURSES_TRACE environment variable.
- If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
- function, using that value as the argument.
- .IP
-@@ -973,9 +1012,10 @@
- support, \fBncurses\fR will check for a terminal's description in
- termcap form if it is not available in the terminfo database.
- .IP
--The TERMCAP symbol contains either a terminal description (with
-+The TERMCAP environment variable contains either a terminal description (with
- newlines stripped out),
--or a file name telling where the information denoted by the TERM symbol exists.
-+or a file name telling where the information denoted by
-+the TERM environment variable exists.
- In either case, setting it directs \fBncurses\fR to ignore
- the usual place for this information, e.g., /etc/termcap.
- .TP 5
-@@ -988,33 +1028,51 @@
- .bP
- the last directory to which \fBncurses\fR wrote, if any, is searched first
- .bP
--the directory specified by the TERMINFO symbol
-+the directory specified by the TERMINFO environment variable
- .bP
- $HOME/.terminfo
- .bP
--directories listed in the TERMINFO_DIRS symbol
-+directories listed in the TERMINFO_DIRS environment variable
- .bP
- one or more directories whose names are configured and compiled into the
--ncurses library, e.g.,
--@TERMINFO@
-+ncurses library, i.e.,
-+.RS
-+.bP
-+@TERMINFO_DIRS@ (corresponding to the TERMINFO_DIRS variable)
-+.bP
-+@TERMINFO@ (corresponding to the TERMINFO variable)
-+.RE
- .RE
- .TP 5
- TERMINFO_DIRS
- Specifies a list of directories to search for terminal descriptions.
- The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
--All of the terminal descriptions are in terminfo form, which makes
--a subdirectory named for the first letter of the terminal names therein.
-+.IP
-+All of the terminal descriptions are in terminfo form.
-+Normally these are stored in a directory tree,
-+using subdirectories named by the first letter of the terminal names therein.
-+.IP
-+If \fBncurses\fP is built with a hashed database,
-+then each entry in this list can also be the path of the corresponding
-+database file.
-+.IP
-+If \fBncurses\fP is built with a support for reading termcap files
-+directly, then an entry in this list may be the path of a termcap file.
- .TP 5
- TERMPATH
- If TERMCAP does not hold a file name then \fBncurses\fR checks
--the TERMPATH symbol.
--This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
--If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
-+the TERMPATH environment variable.
-+This is a list of filenames separated by spaces or colons (i.e., ":") on Unix,
-+semicolons on OS/2 EMX.
-+.IP
-+If the TERMPATH environment variable is not set,
-+\fBncurses\fR looks in the files
- /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
- .PP
- The library may be configured to disregard the following variables when the
- current user is the superuser (root), or if the application uses setuid or
- setgid permissions:
-+.IP
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
- .SH ALTERNATE CONFIGURATIONS
- Several different configurations are possible,
-@@ -1042,8 +1100,9 @@
- to build executables.
- .TP 5
- \-\-enable\-widec
--The configure script renames the library and (if the \fB\-\-disable\-overwrite\fP
--option is used) puts the header files in a different subdirectory.
-+The configure script renames the library and
-+(if the \fB\-\-disable\-overwrite\fP option is used)
-+puts the header files in a different subdirectory.
- All of the library names have a "w" appended to them,
- i.e., instead of
- .RS
-@@ -1093,8 +1152,8 @@
- @TERMINFO@
- terminal capability database
- .SH SEE ALSO
--\fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
--descriptions.
-+\fBterminfo\fR(\*n) and related pages whose names begin
-+"curs_" for detailed routine descriptions.
- .br
- \fBcurs_variables\fR(3X)
- .SH EXTENSIONS
-@@ -1144,6 +1203,15 @@
- the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
- sections of the library man pages.
- .PP
-+Unlike other implementations, this one checks parameters such as pointers
-+to WINDOW structures to ensure they are not null.
-+The main reason for providing this behavior is to guard against programmer
-+error.
-+The standard interface does not provide a way for the library
-+to tell an application which of several possible errors were detected.
-+Relying on this (or some other) extension will adversely affect the
-+portability of curses applications.
-+.PP
- This implementation also contains several extensions:
- .bP
- The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
-Index: man/resizeterm.3x
-Prereq: 1.14
---- ncurses-5.9/man/resizeterm.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/resizeterm.3x 2012-07-07 18:38:21.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- .\"
- .\" Author: Thomas E. Dickey 1996-2005
- .\"
--.\" $Id: resizeterm.3x,v 1.14 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: resizeterm.3x,v 1.15 2012/07/07 18:38:21 tom Exp $
- .TH resizeterm 3X ""
- .SH NAME
- \fBis_term_resized\fR,
-@@ -86,8 +86,6 @@
- the operating system.
- Thus, even if a SIGWINCH is received,
- no screen size change may be recorded.
--In that case, no \fBKEY_RESIZE\fP is queued for the next call to \fBgetch\fP;
--an \fBERR\fP will be returned instead.
- .SH SEE ALSO
- \fBcurs_variables\fR(3X),
- \fBwresize\fR(3X).
-Index: man/tabs.1
-Prereq: 1.8
---- ncurses-5.9/man/tabs.1 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/tabs.1 2011-12-17 23:31:59.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,19 +26,19 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: tabs.1,v 1.8 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: tabs.1,v 1.9 2011/12/17 23:31:59 tom Exp $
- .TH @TABS@ 1 ""
- .ds n 5
- .SH NAME
--\fBtabs\fR \- set tabs on a terminal
-+\fB@TABS@\fR \- set tabs on a terminal
- .SH SYNOPSIS
--\fBtabs\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR
-+\fB@TABS@\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR
- .br
- .SH DESCRIPTION
- .PP
--The \fBtabs\fP program clears and sets tab-stops on the terminal.
-+The \fB@TABS@\fP program clears and sets tab-stops on the terminal.
- This uses the terminfo \fIclear_all_tabs\fP and \fIset_tab\fP capabilities.
--If either is absent, \fBtabs\fP is unable to clear/set tab-stops.
-+If either is absent, \fB@TABS@\fP is unable to clear/set tab-stops.
- The terminal should be configured to use hard tabs, e.g.,
- .sp
- .RS
-@@ -48,8 +48,8 @@
- .SS General Options
- .TP 5
- .BI \-T "name"
--Tell \fBtabs\fP which terminal type to use.
--If this option is not given, \fBtabs\fP will use the \fB$TERM\fP
-+Tell \fB@TABS@\fP which terminal type to use.
-+If this option is not given, \fB@TABS@\fP will use the \fB$TERM\fP
- environment variable.
- If that is not set, it will use the \fIansi+tabs\fP entry.
- .TP 5
-@@ -59,10 +59,10 @@
- The second data line shows the actual tab-stops, marked with asterisks.
- .TP 5
- .B \-n
--This option tells \fBtabs\fP to check the options and run any debugging
-+This option tells \fB@TABS@\fP to check the options and run any debugging
- option, but not to modify the terminal settings.
- .PP
--The \fBtabs\fP program processes a single list of tab stops.
-+The \fB@TABS@\fP program processes a single list of tab stops.
- The last option to be processed which defines a list is the one that
- determines the list to be processed.
- .SS Implicit Lists
-Index: man/term.7
-Prereq: 1.22
---- ncurses-5.9/man/term.7 2010-12-04 18:41:07.000000000 +0000
-+++ ncurses-5.9-20130504/man/term.7 2011-12-17 23:32:17.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: term.7,v 1.22 2010/12/04 18:41:07 tom Exp $
-+.\" $Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp $
- .TH term 7
- .ds n 5
- .ds d @TERMINFO@
-@@ -55,7 +55,7 @@
- are in fact using a VT100-superset console, terminal, or terminal emulator.)
- .PP
- In any case, you are free to override the system \fBTERM\fR setting to your
--taste in your shell profile. The \fBtset\fP(1) utility may be of assistance;
-+taste in your shell profile. The \fB@TSET@\fP(1) utility may be of assistance;
- you can give it a set of rules for deducing or requesting a terminal type based
- on the tty device and baud rate.
- .PP
-Index: man/term_variables.3x
-Prereq: 1.2
---- ncurses-5.9/man/term_variables.3x 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/term_variables.3x 2011-12-17 23:31:50.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 2010,2011 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: term_variables.3x,v 1.2 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: term_variables.3x,v 1.3 2011/12/17 23:31:50 tom Exp $
- .TH term_variables 3X ""
- .ds n 5
- .na
-@@ -110,7 +110,7 @@
- Alternatively, one can save the return value from \fBnewterm\fP
- or \fBsetupterm\fP to reuse in \fBset_term\fP.
- .SS Terminfo Names
--The \fBtic\fP(1) and \fBinfocmp\fP(1) programs use lookup tables for
-+The \fB@TIC@\fP(1) and \fB@INFOCMP@\fP(1) programs use lookup tables for
- the long and short names of terminfo capabilities,
- as well as the corresponding names for termcap capabilities.
- These are available to other applications,
-Index: man/terminfo.head
-Prereq: 1.18
---- ncurses-5.9/man/terminfo.head 2010-07-31 16:08:48.000000000 +0000
-+++ ncurses-5.9-20130504/man/terminfo.head 2013-03-09 22:11:36.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,10 +26,17 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: terminfo.head,v 1.18 2010/07/31 16:08:48 tom Exp $
-+.\" $Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp $
- .TH terminfo 5 "" "" "File Formats"
- .ds n 5
- .ds d @TERMINFO@
-+.ie \n(.g .ds `` \(lq
-+.el .ds `` ``
-+.ie \n(.g .ds '' \(rq
-+.el .ds '' ''
-+.de bP
-+.IP \(bu 4
-+..
- .SH NAME
- terminfo \- terminal capability data base
- .SH SYNOPSIS
-@@ -74,7 +81,7 @@
- Terminal names (except for the last, verbose entry) should
- be chosen using the following conventions.
- The particular piece of hardware making up the terminal should
--have a root name, thus ``hp2621''.
-+have a root name, thus \*(``hp2621\*(''.
- This name should not contain hyphens.
- Modes that the hardware can be in, or user preferences, should
- be indicated by appending a hyphen and a mode suffix.
-@@ -102,6 +109,6 @@
- .TE
- .PP
- For more on terminal naming conventions, see the \fBterm(7)\fR manual page.
--.SS Capabilities
-+.SS Predefined Capabilities
- .\" Head of terminfo man page ends here
- .ps -1
-Index: man/terminfo.tail
-Prereq: 1.53
---- ncurses-5.9/man/terminfo.tail 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/terminfo.tail 2013-03-03 00:06:39.000000000 +0000
-@@ -1,8 +1,51 @@
--.\" $Id: terminfo.tail,v 1.53 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: terminfo.tail,v 1.61 2013/03/03 00:06:39 tom Exp $
- .\" Beginning of terminfo.tail file
- .\" This file is part of ncurses.
- .\" See "terminfo.head" for copyright.
- .ps +1
-+.SS User-Defined Capabilities
-+.
-+The preceding section listed the \fIpredefined\fP capabilities.
-+They deal with some special features for terminals no longer
-+(or possibly never) produced.
-+Occasionally there are special features of newer terminals which
-+are awkward or impossible to represent by reusing the predefined
-+capabilities.
-+.PP
-+\fBncurses\fP addresses this limitation by allowing user-defined capabilities.
-+The \fB@TIC@\fP and \fB@INFOCMP@\fP programs provide
-+the \fB\-x\fP option for this purpose.
-+When \fB\-x\fP is set,
-+\fB@TIC@\fP treats unknown capabilities as user-defined.
-+That is, if \fB@TIC@\fP encounters a capability name
-+which it does not recognize,
-+it infers its type (boolean, number or string) from the syntax
-+and makes an extended table entry for that capability.
-+The \fBuse_extended_names\fP function makes this information
-+conditionally available to applications.
-+The ncurses library provides the data leaving most of the behavior
-+to applications:
-+.bP
-+User-defined capability strings whose name begins
-+with \*(``k\*('' are treated as function keys.
-+.bP
-+The types (boolean, number, string) determined by \fB@TIC@\fP
-+can be inferred by successful calls on \fBtigetflag\fP, etc.
-+.bP
-+If the capability name happens to be two characters,
-+the capability is also available through the termcap interface.
-+.PP
-+While termcap is said to be extensible because it does not use a predefined set
-+of capabilities,
-+in practice it has been limited to the capabilities defined by
-+terminfo implementations.
-+As a rule,
-+user-defined capabilities intended for use by termcap applications should
-+be limited to booleans and numbers to avoid running past the 1023 byte
-+limit assumed by termcap implementations and their applications.
-+In particular, providing extended sets of function keys (past the 60
-+numbered keys and the handful of special named keys) is best done using
-+the longer names available using terminfo.
- .
- .SS A Sample Entry
- .
-@@ -39,13 +82,18 @@
- .PP
- Entries may continue onto multiple lines by placing white space at
- the beginning of each line except the first.
--Comments may be included on lines beginning with ``#''.
-+Comments may be included on lines beginning with \*(``#\*(''.
- Capabilities in
- .I terminfo
- are of three types:
-+.bP
- Boolean capabilities which indicate that the terminal has
--some particular feature, numeric capabilities giving the size of the terminal
--or the size of particular delays, and string
-+some particular feature,
-+.bP
-+numeric capabilities giving the size of the terminal
-+or the size of particular delays, and
-+.bP
-+string
- capabilities, which give a sequence which can be used to perform particular
- terminal operations.
- .PP
-@@ -75,14 +123,29 @@
- \fB^x\fR maps to a control-x for any appropriate x, and the sequences
- \fB\en \el \er \et \eb \ef \es\fR give
- a newline, line-feed, return, tab, backspace, form-feed, and space.
--Other escapes include \fB\e^\fR for \fB^\fR,
-+Other escapes include
-+.bP
-+\fB\e^\fR for \fB^\fR,
-+.bP
- \fB\e\e\fR for \fB\e\fR,
-+.bP
- \fB\e\fR, for comma,
-+.bP
- \fB\e:\fR for \fB:\fR,
-+.bP
- and \fB\e0\fR for null.
--(\fB\e0\fR will produce \e200, which does not terminate a string but behaves
-+.IP
-+\fB\e0\fR will produce \e200, which does not terminate a string but behaves
- as a null character on most terminals, providing CS7 is specified.
--See stty(1).)
-+See stty(1).
-+.IP
-+The reason for this quirk is to maintain binary compatibility of the
-+compiled terminfo files with other implementations,
-+e.g., the SVr4 systems, which document this.
-+Compiled terminfo files use null-terminated strings, with no lengths.
-+Modifying this would require a new binary format,
-+which would not work with other implementations.
-+.PP
- Finally, characters may be given as three octal digits after a \fB\e\fR.
- .PP
- A delay in milliseconds may appear anywhere in a string capability, enclosed in
-@@ -115,27 +178,36 @@
- .PP
- .SS Fetching Compiled Descriptions
- .PP
-+The \fBncurses\fP library searches for terminal descriptions in several places.
-+It uses only the first description found.
-+The library has a compiled-in list of places to search
-+which can be overridden by environment variables.
-+Before starting to search,
-+\fBncurses\fP eliminates duplicates in its search list.
-+.bP
- If the environment variable TERMINFO is set, it is interpreted as the pathname
- of a directory containing the compiled description you are working on.
--Only
--that directory is searched.
--.PP
--If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code
--will instead look in the directory \fB$HOME/.terminfo\fR
-+Only that directory is searched.
-+.bP
-+If TERMINFO is not set,
-+\fBncurses\fR will instead look in the directory \fB$HOME/.terminfo\fR
- for a compiled description.
--If it fails to find one there, and the environment variable TERMINFO_DIRS is
--set, it will interpret the contents of that variable as a list of colon-
--separated directories to be searched (an empty entry is interpreted as a
--command to search \fI\*d\fR).
--If no description is found in any of the
--TERMINFO_DIRS directories, the fetch fails.
--.PP
--If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the
--system terminfo directory, \fI\*d\fR.
--.PP
--(Neither the \fB$HOME/.terminfo\fR lookups nor TERMINFO_DIRS extensions are
--supported under stock System V terminfo/curses.)
--.PP
-+.bP
-+Next, if the environment variable TERMINFO_DIRS is set,
-+\fBncurses\fR will interpret the contents of that variable
-+as a list of colon-separated directories (or database files) to be searched.
-+.IP
-+An empty directory name (i.e., if the variable begins or ends
-+with a colon, or contains adacent colons)
-+is interpreted as the system location \fI\*d\fR.
-+.bP
-+Finally, \fBncurses\fP searches these compiled-in locations:
-+.RS
-+.bP
-+a list of directories (@TERMINFO_DIRS@), and
-+.bP
-+the system terminfo directory, \fI\*d\fR (the compiled-in default).
-+.RE
- .SS Preparing Descriptions
- .PP
- We now outline how to prepare descriptions of terminals.
-@@ -397,7 +469,7 @@
- .IP
- where c\di\u are conditions, b\di\u are bodies.
- .IP
--Use the \fB\-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see
-+Use the \fB\-f\fP option of \fB@TIC@\fP or \fB@INFOCMP@\fP to see
- the structure of if-then-else's.
- Some strings, e.g., \fBsgr\fP can be very complicated when written
- on one line.
-@@ -593,6 +665,7 @@
- a distinction between typed and untyped blanks on the screen, shifting
- upon an insert or delete only to an untyped blank on the screen which is
- either eliminated, or expanded to two untyped blanks.
-+.PP
- You can determine the
- kind of terminal you have by clearing the screen and then typing
- text separated by cursor motions.
-@@ -608,6 +681,7 @@
- current line and onto the next as you insert, you have the second type of
- terminal, and should give the capability \fBin\fR, which stands for
- \*(lqinsert null\*(rq.
-+.PP
- While these are two logically separate attributes (one line versus multi-line
- insert mode, and special treatment of untyped spaces) we have seen no
- terminals whose insert mode cannot be described with the single attribute.
-@@ -824,9 +898,9 @@
- The only drawback to adding an sgr string is that termcap also
- assumes that sgr0 does not exit alternate character set mode.
- .PP
--Terminals with the ``magic cookie'' glitch
-+Terminals with the \*(``magic cookie\*('' glitch
- .RB ( xmc )
--deposit special ``cookies'' when they receive mode-setting sequences,
-+deposit special \*(``cookies\*('' when they receive mode-setting sequences,
- which affect the display algorithm rather than having extra bits for
- each character.
- Some terminals, such as the HP 2621, automatically leave standout
-@@ -871,6 +945,7 @@
- If the keypad can be set to transmit or not transmit,
- give these codes as \fBsmkx\fR and \fBrmkx\fR.
- Otherwise the keypad is assumed to always transmit.
-+.PP
- The codes sent by the left arrow, right arrow, up arrow, down arrow,
- and home keys can be given as
- \fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively.
-@@ -878,41 +953,60 @@
- can be given as \fBkf0, kf1, ..., kf10\fR.
- If these keys have labels other than the default f0 through f10, the labels
- can be given as \fBlf0, lf1, ..., lf10\fR.
-+.PP
- The codes transmitted by certain other special keys can be given:
-+.bP
- .B kll
- (home down),
-+.bP
- .B kbs
- (backspace),
-+.bP
- .B ktbc
- (clear all tabs),
-+.bP
- .B kctab
- (clear the tab stop in this column),
-+.bP
- .B kclr
- (clear screen or erase key),
-+.bP
- .B kdch1
- (delete character),
-+.bP
- .B kdl1
- (delete line),
-+.bP
- .B krmir
- (exit insert mode),
-+.bP
- .B kel
- (clear to end of line),
-+.bP
- .B ked
- (clear to end of screen),
-+.bP
- .B kich1
- (insert character or enter insert mode),
-+.bP
- .B kil1
- (insert line),
-+.bP
- .B knp
- (next page),
-+.bP
- .B kpp
- (previous page),
-+.bP
- .B kind
- (scroll forward/down),
-+.bP
- .B kri
- (scroll backward/up),
-+.bP
- .B khts
- (set a tab stop in this column).
-+.PP
- In addition, if the keypad has a 3 by 3 array of keys including the four
- arrow keys, the other five keys can be given as
- .BR ka1 ,
-@@ -956,7 +1050,7 @@
- tab stop can be given as
- .B ht
- (usually control I).
--A ``back-tab'' command which moves leftward to the preceding tab stop can
-+A \*(``back-tab\*('' command which moves leftward to the preceding tab stop can
- be given as
- .BR cbt .
- By convention, if the teletype modes indicate that tabs are being
-@@ -974,7 +1068,7 @@
- .B it
- is given, showing the number of spaces the tabs are set to.
- This is normally used by the
--.IR tset
-+.IR @TSET@
- command to determine whether to set the mode for hardware tab expansion,
- and whether to set the tab stops.
- If the terminal has tab stops that can be saved in non-volatile memory,
-@@ -1303,6 +1397,7 @@
- yellow \fBCOLOR_YELLOW\fR 6 max,max,0
- white \fBCOLOR_WHITE\fR 7 max,max,max
- .TE
-+.PP
- It is important to not confuse the two sets of color capabilities;
- otherwise red/blue will be interchanged on the display.
- .PP
-@@ -1420,13 +1515,13 @@
- .I virtual
- terminal descriptions for which the escape sequences are known.)
- .PP
--If the terminal has a ``meta key'' which acts as a shift key,
-+If the terminal has a \*(``meta key\*('' which acts as a shift key,
- setting the 8th bit of any character transmitted, this fact can
- be indicated with
- .BR km .
- Otherwise, software will assume that the 8th bit is parity and it
- will usually be cleared.
--If strings exist to turn this ``meta mode'' on and off, they
-+If strings exist to turn this \*(``meta mode\*('' on and off, they
- can be given as
- .B smm
- and
-@@ -1488,7 +1583,7 @@
- Note: the variable indicating this is now `dest_tabs_magic_smso'; in
- older versions, it was teleray_glitch.
- This glitch is also taken to mean that it is not possible to position
--the cursor on top of a ``magic cookie'',
-+the cursor on top of a \*(``magic cookie\*('',
- that to erase standout mode it is instead necessary to use
- delete and insert line.
- The ncurses implementation ignores this glitch.
-@@ -1524,8 +1619,10 @@
- A capability can be canceled by placing \fBxx@\fR to the left of the
- use reference that imports it, where \fIxx\fP is the capability.
- For example, the entry
-+.RS
- .PP
-- 2621\-nl, smkx@, rmkx@, use=2621,
-+2621\-nl, smkx@, rmkx@, use=2621,
-+.RE
- .PP
- defines a 2621\-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
- and hence does not turn on the function key labels when in visual mode.
-@@ -1570,19 +1667,15 @@
- backslash-newline pairs, which \fBtgetent()\fP strips out while reading it.
- Some termcap libraries strip off the final newline, too (GNU termcap does not).
- Now suppose:
--.TP 5
--*
-+.bP
- a termcap entry before expansion is more than 1023 bytes long,
--.TP 5
--*
-+.bP
- and the application has only allocated a 1k buffer,
--.TP 5
--*
-+.bP
- and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
- the whole entry into the buffer, no matter what its length, to see
- if it is the entry it wants,
--.TP 5
--*
-+.bP
- and \fBtgetent()\fP is searching for a terminal type that either is the
- long entry, appears in the termcap file after the long entry, or
- does not appear in the file at all (so that \fBtgetent()\fP has to search
-@@ -1625,6 +1718,11 @@
- SVr1, and have added extension capabilities to the string table that (in the
- binary format) collide with System V and XSI Curses extensions.
- .SH EXTENSIONS
-+.PP
-+Searching for terminal descriptions in
-+\fB$HOME/.terminfo\fR and TERMINFO_DIRS
-+is not supported by older implementations.
-+.PP
- Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, do not
- interpret the %A and %O operators in parameter strings.
- .PP
-@@ -1666,9 +1764,9 @@
- .PP
- \fBSVr1, Ultrix\fR \-\-
- These support a restricted subset of terminfo capabilities.
--The booleans
--end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the
--strings with \fBprtr_non\fR.
-+The booleans end with \fBxon_xoff\fR;
-+the numerics with \fBwidth_status_line\fR;
-+and the strings with \fBprtr_non\fR.
- .PP
- \fBHP/UX\fR \-\-
- Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR,
-Index: man/tic.1m
-Prereq: 1.47
---- ncurses-5.9/man/tic.1m 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/tic.1m 2013-02-02 22:09:02.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,19 +26,25 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: tic.1m,v 1.47 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: tic.1m,v 1.57 2013/02/02 22:09:02 tom Exp $
- .TH @TIC@ 1M ""
- .ds n 5
- .ds d @TERMINFO@
-+.de bP
-+.IP \(bu 4
-+..
- .SH NAME
--\fBtic\fR \- the \fIterminfo\fR entry-description compiler
-+\fB@TIC@\fR \- the \fIterminfo\fR entry-description compiler
- .SH SYNOPSIS
--\fBtic\fR
-+\fB@TIC@\fR
- [\fB\-\
-+0\
- 1\
- C\
-+D\
- G\
- I\
-+K\
- L\
- N\
- T\
-@@ -61,31 +67,69 @@
- \fIfile\fR
- .br
- .SH DESCRIPTION
--The command \fBtic\fR translates a \fBterminfo\fR file from source
-+The \fB@TIC@\fR command translates a \fBterminfo\fR file from source
- format into compiled format.
- The compiled format is necessary for use with
- the library routines in \fBncurses\fR(3X).
- .PP
--The results are normally placed in the system terminfo
--directory \fB\*d\fR.
--There are two ways to change this behavior.
--.PP
--First, you may override the system default by setting the variable
--\fBTERMINFO\fR in your shell environment to a valid (existing) directory name.
--.PP
--Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO
--directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory
--exists, the entry is placed there.
--.PP
--Libraries that read terminfo entries are expected to check for a TERMINFO
--directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
--finally look in \fI\*d\fR.
-+As described in \fBterm\fR(\*n), the database may be either a directory
-+tree (one file per terminal entry) or a hashed database (one record per entry).
-+The \fB@TIC@\fR command writes only one type of entry,
-+depending on how it was built:
-+.bP
-+For directory trees, the top-level directory, e.g., /usr/share/terminfo,
-+specifies the location of the database.
-+.bP
-+For hashed databases, a filename is needed.
-+If the given file is not found by that name,
-+but can be found by adding the suffix ".db",
-+then that is used.
-+.IP
-+The default name for the hashed database is the same as the
-+default directory name (only adding a ".db" suffix).
-+.PP
-+In either case (directory or hashed database),
-+\fB@TIC@\fP will create the container if it does not exist.
-+For a directory, this would be the "terminfo" leaf,
-+versus a "terminfo.db" file.
-+.PP
-+The results are normally placed in the system terminfo database \fB\*d\fR.
-+The compiled terminal description can be placed
-+in a different terminfo database.
-+There are two ways to achieve this:
-+.bP
-+First, you may override the system default either by
-+using the \fB\-o\fP option,
-+or by setting the variable \fBTERMINFO\fR
-+in your shell environment to a valid database location.
-+.bP
-+Secondly, if \fB@TIC@\fR cannot write in \fI\*d\fR
-+or the location specified using your TERMINFO variable,
-+it looks for the directory \fI$HOME/.terminfo\fR
-+(or hashed database \fI$HOME/.terminfo.db)\fR;
-+if that location exists, the entry is placed there.
-+.PP
-+Libraries that read terminfo entries are expected to check in succession
-+.bP
-+a location specified with the TERMINFO environment variable,
-+.bP
-+\fI$HOME/.terminfo\fR,
-+.bP
-+directories listed in the TERMINFO_DIRS environment variable,
-+.bP
-+a compiled-in list of directories (@TERMINFO_DIRS@), and
-+.bP
-+the system terminfo database (\fI\*d\fR).
-+.SS OPTIONS
-+.TP
-+\fB\-0\fR
-+restricts the output to a single line
- .TP
- \fB\-1\fR
- restricts the output to a single column
- .TP
- \fB\-a\fR
--tells \fBtic\fP to retain commented-out capabilities rather than discarding
-+tells \fB@TIC@\fP to retain commented-out capabilities rather than discarding
- them.
- Capabilities are commented by prefixing them with a period.
- This sets the \fB\-x\fR option, because it treats the commented-out
-@@ -101,16 +145,30 @@
- Capabilities
- that are not translatable are left in the entry under their terminfo names
- but commented out with two preceding dots.
-+The actual format used incorporates some improvements for escaped characters
-+from terminfo format.
-+For a stricter BSD-compatible translation, add the \fB\-K\fR option.
- .TP
- \fB\-c\fR
--tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and
-+tells \fB@TIC@\fP to only check \fIfile\fR for errors, including syntax problems and
- bad use links.
- If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code
- will print warnings about entries which, after use resolution, are more than
- 1023 (4096) bytes long.
--Due to a fixed buffer length in older termcap
--libraries (and a documented limit in terminfo), these entries may cause core
--dumps.
-+Due to a fixed buffer length in older termcap libraries,
-+as well as buggy checking for the buffer length
-+(and a documented limit in terminfo),
-+these entries may cause core
-+dumps with other implementations.
-+.TP
-+\fB\-D\fR
-+tells \fB@TIC@\fP to print the database locations that it knows about, and exit.
-+The first location shown is the one to which it would write compiled
-+terminal descriptions.
-+If \fB@TIC@\fP is not able to find a writable database location
-+according to the rules summarized above,
-+it will print a diagnostic and exit with an error rather than
-+printing a list of database locations.
- .TP
- \fB\-e \fR\fInames\fR
- Limit writes and translations to the following comma-separated list of
-@@ -137,6 +195,10 @@
- \fB\-I\fR
- Force source translation to terminfo format.
- .TP
-+\fB\-K\fR
-+Suppress some longstanding ncurses extensions to termcap format,
-+e.g., "\\s" for space.
-+.TP
- \fB\-L\fR
- Force source translation to terminfo format
- using the long C variable names listed in <\fBterm.h\fR>
-@@ -155,9 +217,8 @@
- obsolete capabilities.
- .TP
- \fB\-o\fR\fIdir\fR
--Write compiled entries to given directory.
--Overrides the TERMINFO environment
--variable.
-+Write compiled entries to given database location.
-+Overrides the TERMINFO environment variable.
- .TP
- \fB\-R\fR\fIsubset\fR
- Restrict output to a given subset.
-@@ -177,7 +238,7 @@
- tc capabilities per entry.
- .TP
- \fB\-s\fR
--Summarize the compile by showing the directory into which entries
-+Summarize the compile by showing the database location into which entries
- are written, and the number of entries which are compiled.
- .TP
- \fB\-T\fR
-@@ -186,12 +247,12 @@
- descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
- .TP
- \fB\-t\fR
--tells \fBtic\fP to discard commented-out capabilities.
-+tells \fB@TIC@\fP to discard commented-out capabilities.
- Normally when translating from terminfo to termcap,
- untranslatable capabilities are commented-out.
- .TP 5
- \fB\-U\fR
--tells \fBtic\fP to not post-process the data after parsing the source file.
-+tells \fB@TIC@\fP to not post-process the data after parsing the source file.
- Normally, it infers data which is commonly missing in older terminfo data,
- or in termcaps.
- .TP
-@@ -200,31 +261,13 @@
- .TP
- \fB\-v\fR\fIn\fR
- specifies that (verbose) output be written to standard error trace
--information showing \fBtic\fR's progress.
-+information showing \fB@TIC@\fR's progress.
- The optional parameter \fIn\fR is a number from 1 to 10, inclusive,
- indicating the desired level of detail of information.
- If \fIn\fR is omitted, the default level is 1.
- If \fIn\fR is specified and greater than 1, the level of
- detail is increased.
--.TP
--\fB\-w\fR\fIn\fR
--specifies the width of the output.
--The parameter is optional.
--If it is omitted, it defaults to 60.
--.TP
--\fB\-x\fR
--Treat unknown capabilities as user-defined.
--That is, if you supply a capability name which \fBtic\fP does not recognize,
--it will infer its type (boolean, number or string) from the syntax and
--make an extended table entry for that.
--User-defined capability strings
--whose name begins with ``k'' are treated as function keys.
--.TP
--\fIfile\fR
--contains one or more \fBterminfo\fR terminal descriptions in source
--format [see \fBterminfo\fR(\*n)].
--Each description in the file
--describes the capabilities of a particular terminal.
-+.RS
- .PP
- The debug flag levels are as follows:
- .TP
-@@ -250,19 +293,42 @@
- All values computed in construction of the hash table
- .LP
- If the debug level \fIn\fR is not given, it is taken to be one.
-+.RE
-+.TP
-+\fB\-w\fR\fIn\fR
-+specifies the width of the output.
-+The parameter is optional.
-+If it is omitted, it defaults to 60.
-+.TP
-+\fB\-x\fR
-+Treat unknown capabilities as user-defined.
-+That is, if you supply a capability name which \fB@TIC@\fP does not recognize,
-+it will infer its type (boolean, number or string) from the syntax and
-+make an extended table entry for that.
-+User-defined capability strings
-+whose name begins with ``k'' are treated as function keys.
-+.SS PARAMETERS
-+.TP
-+\fIfile\fR
-+contains one or more \fBterminfo\fR terminal descriptions in source
-+format [see \fBterminfo\fR(\*n)].
-+Each description in the file
-+describes the capabilities of a particular terminal.
-+.IP
-+If \fIfile\fR is ``-'', then the data is read from the standard input.
-+The \fIfile\fR parameter may also be the path of a character-device.
-+.SS PROCESSING
- .PP
--All but one of the capabilities recognized by \fBtic\fR are documented
-+All but one of the capabilities recognized by \fB@TIC@\fR are documented
- in \fBterminfo\fR(\*n).
- The exception is the \fBuse\fR capability.
- .PP
- When a \fBuse\fR=\fIentry\fR\-\fIname\fR field is discovered in a
--terminal entry currently being compiled, \fBtic\fR reads in the binary
-+terminal entry currently being compiled, \fB@TIC@\fR reads in the binary
- from \fB\*d\fR to complete the entry.
- (Entries created from
- \fIfile\fR will be used first.
--If the environment variable
--\fBTERMINFO\fR is set, that directory is searched instead of
--\fB\*d\fR.) \fBtic\fR duplicates the capabilities in
-+\fB@TIC@\fR duplicates the capabilities in
- \fIentry\fR\-\fIname\fR for the current entry, with the exception of
- those capabilities that explicitly are defined in the current entry.
- .PP
-@@ -272,9 +338,6 @@
- \fBentry_name_1\fR before \fBuse=\fR for these capabilities to be
- canceled in \fBentry_name_1\fR.
- .PP
--If the environment variable \fBTERMINFO\fR is set, the compiled
--results are placed there instead of \fB\*d\fR.
--.PP
- Total compiled entries cannot exceed 4096 bytes.
- The name field cannot
- exceed 512 bytes.
-@@ -282,14 +345,14 @@
- (32 characters on systems with long filenames, 14 characters otherwise)
- will be truncated to the maximum alias length and a warning message will be printed.
- .SH COMPATIBILITY
--There is some evidence that historic \fBtic\fR implementations treated
-+There is some evidence that historic \fB@TIC@\fR implementations treated
- description fields with no whitespace in them as additional aliases or
- short names.
--This \fBtic\fR does not do that, but it does warn when
-+This \fB@TIC@\fR does not do that, but it does warn when
- description fields may be treated that way and check them for dangerous
- characters.
- .SH EXTENSIONS
--Unlike the stock SVr4 \fBtic\fR command, this implementation can actually
-+Unlike the SVr4 \fB@TIC@\fR command, this implementation can actually
- compile termcap sources.
- In fact, entries in terminfo and termcap syntax can
- be mixed in a single source file.
-@@ -298,16 +361,20 @@
- .PP
- The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
- capabilities.
--This implementation of \fBtic\fR will find \fBuse\fR targets anywhere
-+This implementation of \fB@TIC@\fR will find \fBuse\fR targets anywhere
- in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if
--\fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory
--(if it exists), or (finally) anywhere in the system's file tree of
-+\fBTERMINFO\fR is defined),
-+or in the user's \fI$HOME/.terminfo\fR database
-+(if it exists),
-+or (finally) anywhere in the system's file tree of
- compiled entries.
- .PP
--The error messages from this \fBtic\fR have the same format as GNU C
-+The error messages from this \fB@TIC@\fR have the same format as GNU C
- error messages, and can be parsed by GNU Emacs's compile facility.
- .PP
- The
-+\fB\-0\fR,
-+\fB\-1\fR,
- \fB\-C\fR,
- \fB\-G\fR,
- \fB\-I\fR,
-@@ -329,7 +396,7 @@
- The SVr4 \fB\-c\fR mode does not report bad use links.
- .PP
- System V does not compile entries to or read entries from your
--\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
-+\fI$HOME/.terminfo\fR database unless TERMINFO is explicitly set to it.
- .SH FILES
- .TP 5
- \fB\*d/?/*\fR
-@@ -340,6 +407,7 @@
- \fB@INFOTOCAP@\fR(1M),
- \fB@TOE@\fR(1M),
- \fBcurses\fR(3X),
-+\fBterm\fR(\*n).
- \fBterminfo\fR(\*n).
- .PP
- This describes \fBncurses\fR
-Index: man/toe.1m
-Prereq: 1.23
---- ncurses-5.9/man/toe.1m 2010-12-04 18:40:45.000000000 +0000
-+++ ncurses-5.9-20130504/man/toe.1m 2012-01-01 00:40:51.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,19 +26,19 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: toe.1m,v 1.23 2010/12/04 18:40:45 tom Exp $
-+.\" $Id: toe.1m,v 1.26 2012/01/01 00:40:51 tom Exp $
- .TH @TOE@ 1M ""
- .ds n 5
- .ds d @TERMINFO@
- .SH NAME
--\fBtoe\fR \- table of (terminfo) entries
-+\fB@TOE@\fR \- table of (terminfo) entries
- .SH SYNOPSIS
--\fBtoe\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR
-+\fB@TOE@\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahsuUV\fR] \fIfile...\fR
- .br
- .SH DESCRIPTION
- .PP
- With no options,
--\fBtoe\fR lists all available terminal types by primary name
-+\fB@TOE@\fR lists all available terminal types by primary name
- with descriptions.
- File arguments specify the directories to be scanned; if no
- such arguments are given,
-@@ -52,6 +52,15 @@
- \fB\-a\fR
- report on all of the terminal databases which ncurses would search,
- rather than only the first one that it finds.
-+.IP
-+If the \fB\-s\fR is also given, \fB@TOE@\fR
-+adds a column to the report,
-+showing (like \fBconflict\fP(1)) which entries which
-+belong to a given terminal database.
-+An "*" marks entries which differ, and "+" marks equivalent entries.
-+.TP
-+\fB\-s\fR
-+sort the output by the entry names.
- .TP
- \fB\-u\fR \fIfile\fR
- says to write a report to the standard output,
-@@ -78,7 +87,7 @@
- .TP
- \fB\-v\fR\fIn\fR
- specifies that (verbose) output be written to standard error,
--showing \fBtoe\fR's progress.
-+showing \fB@TOE@\fR's progress.
- The optional parameter \fIn\fR is a number from 1 to 10,
- interpreted as for \fB@TIC@\fR(1M).
- .TP
-Index: man/tput.1
-Prereq: 1.29
---- ncurses-5.9/man/tput.1 2010-12-04 18:41:07.000000000 +0000
-+++ ncurses-5.9-20130504/man/tput.1 2012-07-14 21:06:45.000000000 +0000
-@@ -1,6 +1,6 @@
- '\" t
- .\"***************************************************************************
--.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: tput.1,v 1.29 2010/12/04 18:41:07 tom Exp $
-+.\" $Id: tput.1,v 1.32 2012/07/14 21:06:45 tom Exp $
- .TH @TPUT@ 1 ""
- .ds d @TERMINFO@
- .ds n 1
-@@ -77,11 +77,12 @@
- and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
- .TP
- \fB\-T\fR\fItype\fR
--indicates the \fItype\fR of terminal. Normally this option is
-+indicates the \fItype\fR of terminal.
-+Normally this option is
- unnecessary, because the default is taken from the environment
--variable \fBTERM\fR. If \fB\-T\fR is specified, then the shell
--variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
--operating system will not be queried for the actual screen size.
-+variable \fBTERM\fR.
-+If \fB\-T\fR is specified, then the shell
-+variables \fBLINES\fR and \fBCOLUMNS\fR will also be ignored.
- .TP
- \fIcapname\fR
- indicates the capability from the \fBterminfo\fR database. When
-@@ -159,7 +160,7 @@
- .PP
- If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
- same effect as \fB@TPUT@ reset\fR.
--See \fBtset\fR for comparison, which has similar behavior.
-+See \fB@TSET@\fR for comparison, which has similar behavior.
- .SH EXAMPLES
- .TP 5
- \fB@TPUT@ init\fR
-@@ -275,7 +276,7 @@
- .PP
- Any other exit code indicates an error; see the DIAGNOSTICS section.
- .SH DIAGNOSTICS
--\fBtput\fR prints the following error messages and sets the corresponding exit
-+\fB@TPUT@\fR prints the following error messages and sets the corresponding exit
- codes.
- .PP
- .ne 15
-@@ -303,17 +304,29 @@
- .PP
- X/Open documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP.
- In this implementation, \fBclear\fP is part of the \fIcapname\fR support.
--Other implementations of \fBtput\fP on
-+Other implementations of \fB@TPUT@\fP on
- SVr4-based systems such as Solaris, IRIX64 and HPUX
- as well as others such as AIX and Tru64
- provide support for \fIcapname\fR operands.
-+.PP
- A few platforms such as FreeBSD and NetBSD recognize termcap names rather
--than terminfo capability names in their respective \fBtput\fP commands.
-+than terminfo capability names in their respective \fB@TPUT@\fP commands.
-+.PP
-+Most implementations which provide support for \fIcapname\fR operands
-+use the \fItparm\fP function to expand parameters in it.
-+That function expects a mixture of numeric and string parameters,
-+requiring \fB@TPUT@\fP to know which type to use.
-+This implementation uses a table to determine that for
-+the standard \fIcapname\fR operands, and an internal library
-+function to analyze nonstandard \fIcapname\fR operands.
-+Other implementations may simply guess that an operand containing only digits
-+is intended to be a number.
- .SH SEE ALSO
- \fB@CLEAR@\fR(1),
- \fBstty\fR(1),
- \fBtabs\fR(\*n),
--\fBterminfo\fR(5).
-+\fBterminfo\fR(5),
-+\fBcurs_termcap\fR(3X).
- .PP
- This describes \fBncurses\fR
- version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-Index: man/tset.1
-Prereq: 1.25
---- ncurses-5.9/man/tset.1 2010-12-04 18:38:55.000000000 +0000
-+++ ncurses-5.9-20130504/man/tset.1 2011-12-17 23:20:35.000000000 +0000
-@@ -1,5 +1,5 @@
- .\"***************************************************************************
--.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
-@@ -26,12 +26,12 @@
- .\" authorization. *
- .\"***************************************************************************
- .\"
--.\" $Id: tset.1,v 1.25 2010/12/04 18:38:55 tom Exp $
-+.\" $Id: tset.1,v 1.27 2011/12/17 23:20:35 tom Exp $
- .TH @TSET@ 1 ""
- .SH NAME
--\fBtset\fR, \fBreset\fR \- terminal initialization
-+\fB@TSET@\fR, \fBreset\fR \- terminal initialization
- .SH SYNOPSIS
--\fBtset\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
-+\fB@TSET@\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
- .br
- \fBreset\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
- .SH DESCRIPTION
-@@ -72,7 +72,7 @@
- versus the other initialization.
- If neither option is given, both are assumed.
- .PP
--When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes,
-+When invoked as \fBreset\fR, \fB@TSET@\fR sets cooked and echo modes,
- turns off cbreak and raw modes, turns on newline translation and
- resets any unset special characters to their default values before
- doing the terminal initialization described above. This is useful
-@@ -89,6 +89,7 @@
- .TP 5
- .B \-c
- Set control characters and modes.
-+.TP 5
- .B \-e
- Set the erase character to \fIch\fR.
- .TP
-@@ -109,7 +110,7 @@
- .TP
- .B \-Q
- Do not display any values for the erase, interrupt and line kill characters.
--Normally \fBtset\fR displays the values for control characters which
-+Normally \fB@TSET@\fR displays the values for control characters which
- differ from the system's default values.
- .TP
- .B \-q
-@@ -152,19 +153,19 @@
- \fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
- or \fB.profile\fR files will initialize the environment correctly:
- .sp
-- eval \`tset \-s options ... \`
-+ eval \`@TSET@ \-s options ... \`
- .
- .SH TERMINAL TYPE MAPPING
- When the terminal is not hardwired into the system (or the current
- system information is incorrect) the terminal type derived from the
- \fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often
- something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR.
--When \fBtset\fR is used in a startup script it is often desirable to
-+When \fB@TSET@\fR is used in a startup script it is often desirable to
- provide information about the type of terminal used on such ports.
- .PP
- The purpose of the \fB\-m\fR option is to map
- from some set of conditions to a terminal type, that is, to
--tell \fBtset\fR
-+tell \fB@TSET@\fR
- ``If I'm on this port at a particular speed, guess that I'm on that
- kind of terminal''.
- .PP
-@@ -207,20 +208,20 @@
- and that \fBcsh\fR users insert a backslash character (``\e'') before
- any exclamation marks (``!'').
- .SH HISTORY
--The \fBtset\fR command appeared in BSD 3.0. The \fBncurses\fR implementation
-+The \fB@TSET@\fR command appeared in BSD 3.0. The \fBncurses\fR implementation
- was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
- S. Raymond <esr@snark.thyrsus.com>.
- .SH COMPATIBILITY
--The \fBtset\fR utility has been provided for backward-compatibility with BSD
-+The \fB@TSET@\fR utility has been provided for backward-compatibility with BSD
- environments (under most modern UNIXes, \fB/etc/inittab\fR and \fIgetty\fR(1)
- can set \fBTERM\fR appropriately for each dial-up line; this obviates what was
--\fBtset\fR's most important use). This implementation behaves like 4.4BSD
-+\fB@TSET@\fR's most important use). This implementation behaves like 4.4BSD
- tset, with a few exceptions specified here.
- .PP
- The \fB\-S\fR option of BSD tset no longer works; it prints an error message to stderr
- and dies. The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
- changes are because the \fBTERMCAP\fR variable is no longer supported under
--terminfo-based \fBncurses\fR, which makes \fBtset \-S\fR useless (we made it die
-+terminfo-based \fBncurses\fR, which makes \fB@TSET@ \-S\fR useless (we made it die
- noisily rather than silently induce lossage).
- .PP
- There was an undocumented 4.4BSD feature that invoking tset via a link named
-@@ -228,7 +229,7 @@
- terminal to use upper-case only. This feature has been omitted.
- .PP
- The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR
--options were deleted from the \fBtset\fR
-+options were deleted from the \fB@TSET@\fR
- utility in 4.4BSD.
- None of them were documented in 4.3BSD and all are
- of limited utility at best.
-@@ -243,14 +244,14 @@
- arguments, although it is strongly recommended that such usage be fixed to
- explicitly specify the character.
- .PP
--As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB\-Q\fR
-+As of 4.4BSD, executing \fB@TSET@\fR as \fBreset\fR no longer implies the \fB\-Q\fR
- option. Also, the interaction between the \- option and the \fIterminal\fR
--argument in some historic implementations of \fBtset\fR has been removed.
-+argument in some historic implementations of \fB@TSET@\fR has been removed.
- .SH ENVIRONMENT
--The \fBtset\fR command uses these environment variables:
-+The \fB@TSET@\fR command uses these environment variables:
- .TP 5
- SHELL
--tells \fBtset\fP whether to initialize \fBTERM\fP using \fBsh\fP or
-+tells \fB@TSET@\fP whether to initialize \fBTERM\fP using \fBsh\fP or
- \fBcsh\fP syntax.
- .TP 5
- TERM
-@@ -260,7 +261,7 @@
- TERMCAP
- may denote the location of a termcap database.
- If it is not an absolute pathname, e.g., begins with a `/',
--\fBtset\fP removes the variable from the environment before looking
-+\fB@TSET@\fP removes the variable from the environment before looking
- for the terminal description.
- .SH FILES
- .TP 5
-Index: menu/Makefile.in
-Prereq: 1.54
---- ncurses-5.9/menu/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/menu/Makefile.in 2012-09-29 19:37:34.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.54 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.56 2012/09/29 19:37:34 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -102,6 +102,7 @@
- SHLIB_DIRS = -L../lib
- SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-+RPATH_LIST = @RPATH_LIST@
- MK_SHARED_LIB = @MK_SHARED_LIB@
-
- NCURSES_MAJOR = @NCURSES_MAJOR@
-@@ -111,7 +112,7 @@
-
- RANLIB = @LIB_PREP@
-
--LIBRARIES = @LIBS_TO_MAKE@
-+LIBRARIES = @Libs_To_Make@
-
- LINT = @LINT@
- LINT_OPTS = @LINT_OPTS@
-Index: menu/m_attribs.c
-Prereq: 1.16
---- ncurses-5.9/menu/m_attribs.c 2010-01-23 21:16:54.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_attribs.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_attribs.c,v 1.16 2010/01/23 21:16:54 tom Exp $")
-+MODULE_ID("$Id: m_attribs.c,v 1.17 2012/03/10 23:43:41 tom Exp $")
-
- /* Macro to redraw menu if it is posted and changed */
- #define Refresh_Menu(menu) \
-@@ -51,7 +51,7 @@
- #define GEN_MENU_ATTR_SET_FCT( name ) \
- NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU* menu, chtype attr) \
- {\
-- T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr))); \
-+ T((T_CALLED("set_menu_" #name "(%p,%s)"), (void *) menu, _traceattr(attr))); \
- if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
- RETURN(E_BAD_ARGUMENT);\
- if (menu && ( menu -> name != attr))\
-Index: menu/m_driver.c
-Prereq: 1.29
---- ncurses-5.9/menu/m_driver.c 2010-01-23 21:20:10.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_driver.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_driver.c,v 1.29 2010/01/23 21:20:10 tom Exp $")
-+MODULE_ID("$Id: m_driver.c,v 1.31 2012/03/10 23:43:41 tom Exp $")
-
- /* Macros */
-
-@@ -47,7 +47,7 @@
-
- /* Add a new character to the match pattern buffer */
- #define Add_Character_To_Pattern(menu,ch) \
-- { (menu)->pattern[((menu)->pindex)++] = (ch);\
-+ { (menu)->pattern[((menu)->pindex)++] = (char) (ch);\
- (menu)->pattern[(menu)->pindex] = '\0'; }
-
- /*---------------------------------------------------------------------------
-@@ -537,7 +537,11 @@
- result = E_UNKNOWN_COMMAND;
- }
-
-- if (E_OK == result)
-+ if (item == 0)
-+ {
-+ result = E_BAD_STATE;
-+ }
-+ else if (E_OK == result)
- {
- /* Adjust the top row if it turns out that the current item unfortunately
- doesn't appear in the menu window */
-Index: menu/m_format.c
-Prereq: 1.16
---- ncurses-5.9/menu/m_format.c 2010-01-23 21:20:10.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_format.c 2012-06-09 23:54:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_format.c,v 1.16 2010/01/23 21:20:10 tom Exp $")
-+MODULE_ID("$Id: m_format.c,v 1.18 2012/06/09 23:54:02 tom Exp $")
-
- #define minimum(a,b) ((a)<(b) ? (a): (b))
-
-@@ -81,8 +81,8 @@
- if (menu->pattern)
- Reset_Pattern(menu);
-
-- menu->frows = rows;
-- menu->fcols = cols;
-+ menu->frows = (short)rows;
-+ menu->fcols = (short)cols;
-
- assert(rows > 0 && cols > 0);
- total_rows = (menu->nitems - 1) / cols + 1;
-@@ -90,21 +90,21 @@
- minimum(menu->nitems, cols) :
- (menu->nitems - 1) / total_rows + 1;
-
-- menu->rows = total_rows;
-- menu->cols = total_cols;
-- menu->arows = minimum(total_rows, rows);
-+ menu->rows = (short)total_rows;
-+ menu->cols = (short)total_cols;
-+ menu->arows = (short)minimum(total_rows, rows);
- menu->toprow = 0;
- menu->curitem = *(menu->items);
- assert(menu->curitem);
-- menu->status |= _LINK_NEEDED;
-+ SetStatus(menu, _LINK_NEEDED);
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- {
- if (rows > 0)
-- _nc_Default_Menu.frows = rows;
-+ _nc_Default_Menu.frows = (short)rows;
- if (cols > 0)
-- _nc_Default_Menu.fcols = cols;
-+ _nc_Default_Menu.fcols = (short)cols;
- }
-
- RETURN(E_OK);
-Index: menu/m_global.c
-Prereq: 1.25
---- ncurses-5.9/menu/m_global.c 2010-01-23 21:20:10.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_global.c 2012-06-10 00:09:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_global.c,v 1.25 2010/01/23 21:20:10 tom Exp $")
-+MODULE_ID("$Id: m_global.c,v 1.27 2012/06/10 00:09:15 tom Exp $")
-
- static char mark[] = "-";
- /* *INDENT-OFF* */
-@@ -117,17 +117,17 @@
- assert(menu && menu->items);
- for (items = menu->items; *items; items++)
- {
-- check = _nc_Calculate_Text_Width(&((*items)->name));
-+ check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name));
- if (check > MaximumNameLength)
- MaximumNameLength = check;
-
-- check = _nc_Calculate_Text_Width(&((*items)->description));
-+ check = (unsigned)_nc_Calculate_Text_Width(&((*items)->description));
- if (check > MaximumDescriptionLength)
- MaximumDescriptionLength = check;
- }
-
-- menu->namelen = MaximumNameLength;
-- menu->desclen = MaximumDescriptionLength;
-+ menu->namelen = (short)MaximumNameLength;
-+ menu->desclen = (short)MaximumDescriptionLength;
- T(("ComputeMaximum_NameDesc_Lengths %d,%d", menu->namelen, menu->desclen));
- }
-
-@@ -195,7 +195,7 @@
- {
- (*item)->value = FALSE;
- }
-- (*item)->index = ItemCount++;
-+ (*item)->index = (short)ItemCount++;
- (*item)->imenu = menu;
- }
- }
-@@ -206,7 +206,7 @@
- if (ItemCount != 0)
- {
- menu->items = items;
-- menu->nitems = ItemCount;
-+ menu->nitems = (short)ItemCount;
- ComputeMaximum_NameDesc_Lengths(menu);
- if ((menu->pattern = typeMalloc(char, (unsigned)(1 + menu->namelen))))
- {
-@@ -256,7 +256,7 @@
- T((T_CALLED("_nc_menu_text_width(%p)"), (const void *)item));
- if (result != 0 && item->str != 0)
- {
-- int count = mbstowcs(0, item->str, 0);
-+ int count = (int)mbstowcs(0, item->str, 0);
- wchar_t *temp = 0;
-
- if (count > 0
-@@ -343,7 +343,7 @@
-
- assert(menu);
-
-- menu->height = 1 + menu->spc_rows * (menu->arows - 1);
-+ menu->height = (short)(1 + menu->spc_rows * (menu->arows - 1));
-
- l = calculate_actual_width(menu, TRUE);
- l += menu->marklen;
-@@ -354,10 +354,10 @@
- l += menu->spc_desc;
- }
-
-- menu->itemlen = l;
-+ menu->itemlen = (short)l;
- l *= menu->cols;
- l += (menu->cols - 1) * menu->spc_cols; /* for the padding between the columns */
-- menu->width = l;
-+ menu->width = (short)l;
-
- T(("_nc_CalculateItem_Length_and_Width columns %d, item %d, width %d",
- menu->cols,
-@@ -388,7 +388,7 @@
- int Last_in_Column;
- bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE;
-
-- menu->status &= ~_LINK_NEEDED;
-+ ClrStatus(menu, _LINK_NEEDED);
-
- if (menu->opt & O_ROWMAJOR)
- {
-@@ -431,8 +431,8 @@
- (cycle ? menu->items[(row + 1) < menu->rows ?
- Number_Of_Items - 1 : col] :
- (ITEM *) 0);
-- item->x = col;
-- item->y = row;
-+ item->x = (short)col;
-+ item->y = (short)row;
- if (++col == Number_Of_Columns)
- {
- row++;
-@@ -482,8 +482,8 @@
- (ITEM *) 0
- );
-
-- item->x = col;
-- item->y = row;
-+ item->x = (short)col;
-+ item->y = (short)row;
- if ((++row) == Number_Of_Rows)
- {
- col++;
-@@ -568,7 +568,7 @@
-
- cur_item = menu->curitem;
- assert(cur_item);
-- menu->toprow = new_toprow;
-+ menu->toprow = (short)new_toprow;
- menu->curitem = new_current_item;
-
- if (mterm_called)
-@@ -590,7 +590,7 @@
- }
- else
- { /* if we are not posted, this is quite simple */
-- menu->toprow = new_toprow;
-+ menu->toprow = (short)new_toprow;
- menu->curitem = new_current_item;
- }
- }
-Index: menu/m_hook.c
-Prereq: 1.15
---- ncurses-5.9/menu/m_hook.c 2010-01-23 21:16:54.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_hook.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,13 +37,13 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_hook.c,v 1.15 2010/01/23 21:16:54 tom Exp $")
-+MODULE_ID("$Id: m_hook.c,v 1.16 2012/03/10 23:43:41 tom Exp $")
-
- /* "Template" macro to generate function to set application specific hook */
- #define GEN_HOOK_SET_FUNCTION( typ, name ) \
- NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
- {\
-- T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), menu, func));\
-+ T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), (void *) menu, func));\
- (Normalize_Menu(menu) -> typ ## name = func );\
- RETURN(E_OK);\
- }
-Index: menu/m_item_new.c
-Prereq: 1.30
---- ncurses-5.9/menu/m_item_new.c 2010-01-23 21:20:11.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_item_new.c 2012-06-09 23:55:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -44,7 +44,7 @@
- #endif
- #endif
-
--MODULE_ID("$Id: m_item_new.c,v 1.30 2010/01/23 21:20:11 tom Exp $")
-+MODULE_ID("$Id: m_item_new.c,v 1.33 2012/06/09 23:55:15 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnmenu
-@@ -62,7 +62,7 @@
- int result = TRUE;
-
- #if USE_WIDEC_SUPPORT
-- int count = mbstowcs(0, s, 0);
-+ int count = (int)mbstowcs(0, s, 0);
- wchar_t *temp = 0;
-
- assert(s);
-@@ -127,13 +127,13 @@
- {
- *item = _nc_Default_Item; /* hope we have struct assignment */
-
-- item->name.length = strlen(name);
-+ item->name.length = (unsigned short)strlen(name);
- item->name.str = name;
-
- if (description && (*description != '\0') &&
- Is_Printable_String(description))
- {
-- item->description.length = strlen(description);
-+ item->description.length = (unsigned short)strlen(description);
- item->description.str = description;
- }
- else
-@@ -195,12 +195,12 @@
- NCURSES_EXPORT(int)
- set_menu_mark(MENU * menu, const char *mark)
- {
-- unsigned l;
-+ short l;
-
- T((T_CALLED("set_menu_mark(%p,%s)"), (void *)menu, _nc_visbuf(mark)));
-
- if (mark && (*mark != '\0') && Is_Printable_String(mark))
-- l = strlen(mark);
-+ l = (short)strlen(mark);
- else
- l = 0;
-
-@@ -213,7 +213,7 @@
- {
- /* If the menu is already posted, the geometry is fixed. Then
- we can only accept a mark with exactly the same length */
-- if (menu->marklen != (int)l)
-+ if (menu->marklen != l)
- RETURN(E_BAD_ARGUMENT);
- }
- menu->marklen = l;
-@@ -222,14 +222,13 @@
- menu->mark = strdup(mark);
- if (menu->mark)
- {
-- strcpy(menu->mark, mark);
- if (menu != &_nc_Default_Menu)
-- menu->status |= _MARK_ALLOCATED;
-+ SetStatus(menu, _MARK_ALLOCATED);
- }
- else
- {
- menu->mark = old_mark;
-- menu->marklen = (old_mark != 0) ? strlen(old_mark) : 0;
-+ menu->marklen = (short)((old_mark != 0) ? strlen(old_mark) : 0);
- RETURN(E_SYSTEM_ERROR);
- }
- }
-Index: menu/m_pad.c
-Prereq: 1.12
---- ncurses-5.9/menu/m_pad.c 2010-01-23 21:20:10.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_pad.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_pad.c,v 1.12 2010/01/23 21:20:10 tom Exp $")
-+MODULE_ID("$Id: m_pad.c,v 1.13 2012/03/10 23:43:41 tom Exp $")
-
- /* Macro to redraw menu if it is posted and changed */
- #define Refresh_Menu(menu) \
-@@ -69,7 +69,7 @@
- RETURN(E_BAD_ARGUMENT);
-
- Normalize_Menu(menu);
-- menu->pad = pad;
-+ menu->pad = (unsigned char)pad;
-
- if (do_refresh)
- Refresh_Menu(menu);
-Index: menu/m_post.c
-Prereq: 1.29
---- ncurses-5.9/menu/m_post.c 2010-05-01 19:18:27.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_post.c 2012-06-09 23:54:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_post.c,v 1.29 2010/05/01 19:18:27 tom Exp $")
-+MODULE_ID("$Id: m_post.c,v 1.31 2012/06/09 23:54:35 tom Exp $")
-
- /*---------------------------------------------------------------------------
- | Facility : libnmenu
-@@ -67,7 +67,7 @@
- - it is a onevalued menu and it is the current item
- - or it has a selection value
- */
-- wattron(menu->win, menu->back);
-+ wattron(menu->win, (int)menu->back);
- if (item->value || (item == menu->curitem))
- {
- if (menu->marklen)
-@@ -79,13 +79,13 @@
- item. */
- if (!(menu->opt & O_ONEVALUE) && item->value && item != menu->curitem)
- {
-- wattron(menu->win, menu->fore);
-+ wattron(menu->win, (int)menu->fore);
- isfore = TRUE;
- }
- waddstr(menu->win, menu->mark);
- if (isfore)
- {
-- wattron(menu->win, menu->fore);
-+ wattron(menu->win, (int)menu->fore);
- isfore = FALSE;
- }
- }
-@@ -93,7 +93,7 @@
- else /* otherwise we have to wipe out the marker area */
- for (ch = ' ', i = menu->marklen; i > 0; i--)
- waddch(menu->win, ch);
-- wattroff(menu->win, menu->back);
-+ wattroff(menu->win, (int)menu->back);
- count += menu->marklen;
-
- /* First we have to calculate the attribute depending on selectability
-@@ -101,19 +101,19 @@
- */
- if (!(item->opt & O_SELECTABLE))
- {
-- wattron(menu->win, menu->grey);
-+ wattron(menu->win, (int)menu->grey);
- isgrey = TRUE;
- }
- else
- {
- if (item->value || item == menu->curitem)
- {
-- wattron(menu->win, menu->fore);
-+ wattron(menu->win, (int)menu->fore);
- isfore = TRUE;
- }
- else
- {
-- wattron(menu->win, menu->back);
-+ wattron(menu->win, (int)menu->back);
- isback = TRUE;
- }
- }
-@@ -158,10 +158,10 @@
- assert(cx >= 0 && cy >= 0);
- getyx(menu->win, ncy, ncx);
- if (isgrey)
-- wattroff(menu->win, menu->grey);
-+ wattroff(menu->win, (int)menu->grey);
- else if (isfore)
-- wattroff(menu->win, menu->fore);
-- wattron(menu->win, menu->back);
-+ wattroff(menu->win, (int)menu->fore);
-+ wattron(menu->win, (int)menu->back);
- for (j = 1; j < menu->spc_rows; j++)
- {
- if ((item_y + j) < getmaxy(menu->win))
-@@ -175,17 +175,17 @@
- }
- wmove(menu->win, ncy, ncx);
- if (!isback)
-- wattroff(menu->win, menu->back);
-+ wattroff(menu->win, (int)menu->back);
- }
- }
-
- /* Remove attributes */
- if (isfore)
-- wattroff(menu->win, menu->fore);
-+ wattroff(menu->win, (int)menu->fore);
- if (isback)
-- wattroff(menu->win, menu->back);
-+ wattroff(menu->win, (int)menu->back);
- if (isgrey)
-- wattroff(menu->win, menu->grey);
-+ wattroff(menu->win, (int)menu->grey);
- }
-
- /*---------------------------------------------------------------------------
-@@ -225,7 +225,7 @@
- {
- _nc_Post_Item(menu, hitem);
-
-- wattron(menu->win, menu->back);
-+ wattron(menu->win, (int)menu->back);
- if (((hitem = hitem->right) != lasthor) && hitem)
- {
- int i, j, cy, cx;
-@@ -244,7 +244,7 @@
- }
- }
- while (hitem && (hitem != lasthor));
-- wattroff(menu->win, menu->back);
-+ wattroff(menu->win, (int)menu->back);
-
- item = item->down;
- y += menu->spc_rows;
-@@ -305,7 +305,7 @@
- else
- RETURN(E_NOT_CONNECTED);
-
-- menu->status |= _POSTED;
-+ SetStatus(menu, _POSTED);
-
- if (!(menu->opt & O_ONEVALUE))
- {
-@@ -369,7 +369,7 @@
- delwin(menu->win);
- menu->win = (WINDOW *)0;
-
-- menu->status &= ~_POSTED;
-+ ClrStatus(menu, _POSTED);
-
- RETURN(E_OK);
- }
-Index: menu/m_req_name.c
-Prereq: 1.21
---- ncurses-5.9/menu/m_req_name.c 2009-10-10 16:17:23.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_req_name.c 2012-07-21 23:27:32.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_req_name.c,v 1.21 2009/10/10 16:17:23 tom Exp $")
-+MODULE_ID("$Id: m_req_name.c,v 1.22 2012/07/21 23:27:32 tom Exp $")
-
- static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] =
- {
-@@ -99,23 +99,26 @@
- /* because the table is so small, it doesn't really hurt
- to run sequentially through it.
- */
-- unsigned int i = 0;
-+ size_t i = 0;
- char buf[16];
-
- T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str)));
-
-- if (str)
-+ if (str != 0 && (i = strlen(str)) != 0)
- {
-- strncpy(buf, str, sizeof(buf));
-- while ((i < sizeof(buf)) && (buf[i] != '\0'))
-+ if (i > sizeof(buf) - 2)
-+ i = sizeof(buf) - 2;
-+ memcpy(buf, str, i);
-+ buf[i] = '\0';
-+
-+ for (i = 0; buf[i] != '\0'; ++i)
- {
- buf[i] = (char)toupper(UChar(buf[i]));
-- i++;
- }
-
- for (i = 0; i < A_SIZE; i++)
- {
-- if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
-+ if (strcmp(request_names[i], buf) == 0)
- returnCode(MIN_MENU_COMMAND + (int)i);
- }
- }
-Index: menu/m_spacing.c
-Prereq: 1.18
---- ncurses-5.9/menu/m_spacing.c 2010-01-23 21:20:10.000000000 +0000
-+++ ncurses-5.9-20130504/menu/m_spacing.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include "menu.priv.h"
-
--MODULE_ID("$Id: m_spacing.c,v 1.18 2010/01/23 21:20:10 tom Exp $")
-+MODULE_ID("$Id: m_spacing.c,v 1.19 2012/03/10 23:43:41 tom Exp $")
-
- #define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
- #define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
-@@ -70,9 +70,9 @@
- ((s_col < 0) || (s_col > MAX_SPC_COLS)))
- RETURN(E_BAD_ARGUMENT);
-
-- m->spc_desc = s_desc ? s_desc : 1;
-- m->spc_rows = s_row ? s_row : 1;
-- m->spc_cols = s_col ? s_col : 1;
-+ m->spc_desc = (short)(s_desc ? s_desc : 1);
-+ m->spc_rows = (short)(s_row ? s_row : 1);
-+ m->spc_cols = (short)(s_col ? s_col : 1);
- _nc_Calculate_Item_Length_and_Width(m);
-
- RETURN(E_OK);
-Index: menu/menu.priv.h
-Prereq: 1.23
---- ncurses-5.9/menu/menu.priv.h 2009-02-28 21:02:57.000000000 +0000
-+++ ncurses-5.9-20130504/menu/menu.priv.h 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,7 +30,7 @@
- * Author: Juergen Pfeifer, 1995,1997 *
- ****************************************************************************/
-
--/* $Id: menu.priv.h,v 1.23 2009/02/28 21:02:57 juergen Exp $ */
-+/* $Id: menu.priv.h,v 1.24 2012/03/10 23:43:41 tom Exp $ */
-
- /***************************************************************************
- * Module menu.priv.h *
-@@ -39,6 +39,7 @@
-
- #ifndef MENU_PRIV_H_incl
- #define MENU_PRIV_H_incl 1
-+/* *INDENT-OFF* */
-
- #include "curses.priv.h"
- #include "mf_common.h"
-@@ -99,10 +100,11 @@
- */
- #define Adjust_Current_Item(menu,row,item) \
- { if ((item)->y < row) \
-- row = (item)->y;\
-- if ( (item)->y >= (row + (menu)->arows) )\
-- row = ( (item)->y < ((menu)->rows - row) ) ? \
-- (item)->y : (menu)->rows - (menu)->arows;\
-+ row = (short) (item)->y; \
-+ if ( (item)->y >= (row + (menu)->arows) ) \
-+ row = (short) (( (item)->y < ((menu)->rows - row) ) \
-+ ? (item)->y \
-+ : (menu)->rows - (menu)->arows); \
- _nc_New_TopRow_and_CurrentItem(menu,row,item); }
-
- /* Reset the match pattern buffer */
-@@ -152,5 +154,6 @@
- #define returnMenuOpts(code) return code
-
- #endif /* TRACE/!TRACE */
-+/* *INDENT-ON* */
-
- #endif /* MENU_PRIV_H_incl */
-Index: menu/mf_common.h
-Prereq: 0.22
---- ncurses-5.9/menu/mf_common.h 2005-11-26 15:26:52.000000000 +0000
-+++ ncurses-5.9-20130504/menu/mf_common.h 2012-06-10 00:06:54.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2004,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,7 +30,7 @@
- * Author: Juergen Pfeifer, 1995,1997 *
- ****************************************************************************/
-
--/* $Id: mf_common.h,v 0.22 2005/11/26 15:26:52 tom Exp $ */
-+/* $Id: mf_common.h,v 0.24 2012/06/10 00:06:54 tom Exp $ */
-
- /* Common internal header for menu and form library */
-
-@@ -63,10 +63,9 @@
- #if USE_RCS_IDS
- #define MODULE_ID(id) static const char Ident[] = id;
- #else
--#define MODULE_ID(id) /*nothing*/
-+#define MODULE_ID(id) /*nothing */
- #endif
-
--
- /* Maximum regular 8-bit character code */
- #define MAX_REGULAR_CHARACTER (0xff)
-
-@@ -80,16 +79,19 @@
- #endif
-
- /* The few common values in the status fields for menus and forms */
--#define _POSTED (0x01U) /* menu or form is posted */
--#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */
-+#define _POSTED (0x01U) /* menu or form is posted */
-+#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */
-+
-+#define SetStatus(target,mask) (target)->status |= (unsigned short) (mask)
-+#define ClrStatus(target,mask) (target)->status = (unsigned short) (target->status & (~mask))
-
- /* Call object hook */
- #define Call_Hook( object, handler ) \
- if ( (object) != 0 && ((object)->handler) != (void *) 0 )\
- {\
-- (object)->status |= _IN_DRIVER;\
-+ SetStatus(object, _IN_DRIVER);\
- (object)->handler(object);\
-- (object)->status &= ~_IN_DRIVER;\
-+ ClrStatus(object, _IN_DRIVER);\
- }
-
- #endif /* MF_COMMON_H_incl */
-Index: misc/Makefile.in
-Prereq: 1.56
---- ncurses-5.9/misc/Makefile.in 2011-02-21 01:09:31.000000000 +0000
-+++ ncurses-5.9-20130504/misc/Makefile.in 2012-08-11 21:31:56.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.56 2011/02/21 01:09:31 tom Exp $
-+# $Id: Makefile.in,v 1.60 2012/08/11 21:31:56 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -56,6 +56,7 @@
- exec_prefix = @exec_prefix@
- bindir = @bindir@
- libdir = @libdir@
-+datarootdir = @datarootdir@
- datadir = @datadir@
-
- tabsetdir = $(datadir)/tabset
-@@ -120,7 +121,8 @@
-
- run_tic.sed :
- WHICH_XTERM=@WHICH_XTERM@ \
-- ticdir=${ticdir} \
-+ XTERM_KBS=@XTERM_KBS@ \
-+ datadir=${datadir} \
- $(SHELL) $(srcdir)/gen_edit.sh >$@
-
- $(DESTDIR)$(bindir) \
-@@ -139,7 +141,7 @@
-
- uninstall.libs :
- -rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
--@MAKE_PC_FILES@ $(SHELL) 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
-+@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
-
- tags :
-
-Index: misc/gen-pkgconfig.in
-Prereq: 1.8
---- ncurses-5.9/misc/gen-pkgconfig.in 2010-02-06 22:12:07.000000000 +0000
-+++ ncurses-5.9-20130504/misc/gen-pkgconfig.in 2013-03-16 23:33:34.000000000 +0000
-@@ -1,7 +1,7 @@
- #!@SHELL@
--# $Id: gen-pkgconfig.in,v 1.8 2010/02/06 22:12:07 Miroslav.Lichvar Exp $
-+# $Id: gen-pkgconfig.in,v 1.15 2013/03/16 23:33:34 tom Exp $
- ##############################################################################
--# Copyright (c) 2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 2009-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -28,7 +28,7 @@
- # authorization. #
- ##############################################################################
- #
--# Author: Thomas E. Dickey, 2009
-+# Author: Thomas E. Dickey
- #
- # The complete configure script for ncurses is the ncurses5-config (or similar
- # name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc).
-@@ -39,10 +39,10 @@
- # library, except that the tinfo library does not depend on ncurses.
- LIB_NAME=@LIB_NAME@
- TINFO_NAME=@TINFO_NAME@
--PANEL_NAME=panel # @PANEL_NAME@
--MENU_NAME=menu # @MENU_NAME@
--FORM_NAME=form # @FORM_NAME@
--CXX_NAME=ncurses++ # @CXX_NAME@
-+PANEL_NAME=@PANEL_NAME@
-+MENU_NAME=@MENU_NAME@
-+FORM_NAME=@FORM_NAME@
-+CXX_NAME=@CXX_NAME@
- DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
- TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@
- CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
-@@ -63,63 +63,48 @@
- MENU_LIBRARY="${MENU_NAME}@DFT_ARG_SUFFIX@"
- FORM_LIBRARY="${FORM_NAME}@DFT_ARG_SUFFIX@"
-
--SUB_LIBRARY_REQ=${SUB_LIBRARY}
--if test $TINFO_NAME = $LIB_NAME ; then
-- SUB_LIBRARY_REQ=
-+if test "$includedir" = "/usr/include" ; then
-+ CFLAGS=
-+else
-+ CFLAGS="-I\${includedir}"
- fi
-
--for lib in ../lib/*
--do
-- name=`basename $lib`
-- if test "$name" = "*" ; then
-- break
-- fi
--
-- root=`basename $name "$DFT_DEP_SUFFIX"`
-- if test "$name" = "$root" ; then
-- root=`basename $name "$CXX_LIB_SUFFIX"`
-- if test "$name" = "$root" ; then
-- continue
-- fi
-- fi
-+if test "$libdir" = "/usr/lib" ; then
-+ LDFLAGS=
-+else
-+ LDFLAGS="-L\${libdir}"
-+fi
-
-- name=`echo "$name" | sed -e 's/^lib//' -e 's/\..*$//'`
-+for name in @PC_MODULES_TO_MAKE@
-+do
-+ name="${name}"
-
- desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
-+ reqs=
-+
- if test $name = $MAIN_LIBRARY ; then
-- reqs=$SUB_LIBRARY_REQ
- desc="$desc library"
- elif test $name = $SUB_LIBRARY ; then
-- reqs=
- desc="$desc terminal interface library"
- elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
-- reqs="$PANEL_LIBRARY $MENU_LIBRARY $FORM_LIBRARY $MAIN_LIBRARY $SUB_LIBRARY_REQ"
-+ reqs="$PANEL_LIBRARY, $MENU_LIBRARY, $FORM_LIBRARY, $MAIN_LIBRARY"
- desc="$desc add-on library"
- else
-- reqs="$MAIN_LIBRARY $SUB_LIBRARY_REQ"
-+ reqs="$MAIN_LIBRARY"
- desc="$desc add-on library"
- fi
-
-- if test "$includedir" = "/usr/include" ; then
-- cflags=
-- else
-- cflags="-I\${includedir}"
-- fi
--
-- if test "$libdir" = "/usr/lib" ; then
-- libs=
-- else
-- libs="-L\${libdir}"
-- fi
-- libs="$libs -l$name"
--
-- # add dependencies that pkg-config cannot guess about
-- if test -z "$reqs" ; then
-- libs="$libs @LIBS@"
-+ if test $name != $SUB_LIBRARY && test $SUB_LIBRARY != $MAIN_LIBRARY ; then
-+ if test $name != $TINFO_NAME ; then
-+ test -n "$reqs" && reqs="$reqs, "
-+ reqs="${reqs}${SUB_LIBRARY}"
-+ fi
- fi
-
- echo "** creating ${name}.pc"
- cat >${name}.pc <<EOF
-+# vile:makemode
-+
- prefix=$show_prefix
- exec_prefix=$show_exec_prefix
- libdir=$show_libdir
-@@ -130,10 +115,13 @@
- Name: $name
- Description: $desc
- Version: \${version}
--Requires: $reqs
--Libs: $libs
--Cflags: $cflags
-+URL: http://invisible-island.net/ncurses
-+Requires.private: $reqs
-+Libs: $LDFLAGS -l$name
-+Libs.private: @LIBS@
-+Cflags: $CFLAGS
- EOF
-- # pr -f ${name}.pc
-+
-+ #pr -f ${name}.pc
- done
- # vile:shmode
-Index: misc/gen_edit.sh
-Prereq: 1.1
---- ncurses-5.9/misc/gen_edit.sh 2004-07-11 15:01:29.000000000 +0000
-+++ ncurses-5.9-20130504/misc/gen_edit.sh 2012-04-01 15:04:37.000000000 +0000
-@@ -1,6 +1,6 @@
- #!/bin/sh
- ##############################################################################
--# Copyright (c) 2004 Free Software Foundation, Inc. #
-+# Copyright (c) 2004-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -29,7 +29,7 @@
- #
- # Author: Thomas E. Dickey
- #
--# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $
-+# $Id: gen_edit.sh,v 1.5 2012/04/01 15:04:37 tom Exp $
- # Generate a sed-script for converting the terminfo.src to the form which will
- # be installed.
- #
-@@ -37,22 +37,82 @@
- # The leaf directory names (lib, tabset, terminfo)
- #
-
--: ${ticdir=@TERMINFO@}
--: ${xterm_new=@WHICH_XTERM@}
-+linux_dft=linux2.2
-+
-+: ${datadir=/usr/share}
-+: ${WHICH_LINUX=$linux_dft}
-+: ${WHICH_XTERM=xterm-new}
-+: ${XTERM_KBS=BS}
-
- # If we're not installing into /usr/share/, we'll have to adjust the location
- # of the tabset files in terminfo.src (which are in a parallel directory).
--TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
-+TABSET=${datadir}/tabset
- if test "x$TABSET" != "x/usr/share/tabset" ; then
- cat <<EOF
- s%/usr/share/tabset%$TABSET%g
- EOF
- fi
-
--if test "$xterm_new" != "xterm-new" ; then
-+if test "$WHICH_XTERM" != "xterm-new" ; then
-+echo "** using $WHICH_XTERM terminal description for XTerm entry" >&2
- cat <<EOF
- /^# This is xterm for ncurses/,/^$/{
- s/use=xterm-new,/use=$WHICH_XTERM,/
- }
- EOF
- fi
-+
-+if test "$XTERM_KBS" != "BS" ; then
-+echo "** using DEL for XTerm backspace-key" >&2
-+cat <<EOF
-+/^xterm+kbs|fragment for backspace key/,/^#/{
-+ s/kbs=^H,/kbs=^?,/
-+}
-+EOF
-+fi
-+
-+# Work around incompatibities built into Linux console. The 2.6 series added
-+# a patch to fixup the SI/SO behavior, which is closer to vt100, but the older
-+# kernels do not recognize those controls. All of the kernels recognize the
-+# older flavor of rmacs/smacs, but beginning in the late 1990s, changes made
-+# as part of implementing UTF-8 prevent using those for line-drawing when the
-+# console is in UTF-8 mode. Taking into account the fact that it took about
-+# ten years to provide (and distribute) the 2.6 series' change for SI/SO, the
-+# default remains "linux2.2".
-+case x$WHICH_LINUX in #(vi
-+xauto)
-+ system=`uname -s 2>/dev/null`
-+ if test "x$system" = xLinux
-+ then
-+ case x`uname -r` in
-+ x1.*)
-+ WHICH_LINUX=linux-c
-+ ;;
-+ x2.[0-4]*)
-+ WHICH_LINUX=linux2.2
-+ ;;
-+ *)
-+ WHICH_LINUX=linux3.0
-+ ;;
-+ esac
-+ else
-+ WHICH_LINUX=$linux_dft
-+ fi
-+ ;;
-+xlinux*)
-+ # allow specific setting
-+ ;;
-+*)
-+ WHICH_LINUX=$linux_dft
-+ ;;
-+esac
-+
-+if test $WHICH_LINUX != $linux_dft
-+then
-+echo "** using $WHICH_LINUX terminal description for Linux console" >&2
-+cat <<EOF
-+/^# This is Linux console for ncurses/,/^$/{
-+ s/use=$linux_dft,/use=$WHICH_LINUX,/
-+}
-+EOF
-+fi
-Index: misc/ncurses-config.in
-Prereq: 1.25
---- ncurses-5.9/misc/ncurses-config.in 2011-03-19 22:43:38.000000000 +0000
-+++ ncurses-5.9-20130504/misc/ncurses-config.in 2012-11-11 00:14:28.000000000 +0000
-@@ -1,7 +1,7 @@
- #!@SHELL@
--# $Id: ncurses-config.in,v 1.25 2011/03/19 22:43:38 tom Exp $
-+# $Id: ncurses-config.in,v 1.30 2012/11/11 00:14:28 tom Exp $
- ##############################################################################
--# Copyright (c) 2006-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -30,22 +30,48 @@
- #
- # Author: Thomas E. Dickey, 2006-on
-
-+LANG=C; export LANG
-+LANGUAGE=C; export LANGUAGE
-+LC_ALL=C; export LC_ALL
-+LC_CTYPE=C; export LC_CTYPE
-+
- prefix="@prefix@"
- exec_prefix="@exec_prefix@"
-
- bindir="@bindir@"
- includedir="@includedir@"
- libdir="@libdir@"
-+datarootdir="@datarootdir@"
- datadir="@datadir@"
- mandir="@mandir@"
-
- THIS="@LIB_NAME@@DFT_ARG_SUFFIX@"
- TINFO_LIB="@TINFO_ARG_SUFFIX@"
-+RPATH_LIST="@RPATH_LIST@"
-
--LANG=C; export LANG
--LANGUAGE=C; export LANGUAGE
--LC_ALL=C; export LC_ALL
--LC_CTYPE=C; export LC_CTYPE
-+# Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty.
-+# We cannot filter it out within the build-process since the variable is used
-+# in some special cases of installation using a relative path.
-+if test -n "$RPATH_LIST"
-+then
-+ save_IFS="$IFS"
-+ IFS='@PATH_SEPARATOR@'
-+ filtered=
-+ for item in $RPATH_LIST
-+ do
-+ case "$item" in
-+ ./*|../*|*/..|*/../*)
-+ ;;
-+ *)
-+ test -n "$filtered" && filtered="${filtered}@PATH_SEPARATOR@"
-+ filtered="${filtered}${item}"
-+ ;;
-+ esac
-+ done
-+ IFS="$save_IFS"
-+ # if the result is empty, there is little we can do to fix it
-+ RPATH_LIST="$filtered"
-+fi
-
- # with --disable-overwrite, we installed into a subdirectory, but transformed
- # the headers to include like this:
-@@ -83,13 +109,19 @@
- ENDECHO
- ;;
- --libs)
-+ if test "$libdir" = /usr/lib
-+ then
-+ LIBDIR=
-+ else
-+ LIBDIR=-L$libdir
-+ fi
- if test @TINFO_NAME@ = @LIB_NAME@ ; then
- sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-- -L$libdir @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
-+ $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
- ENDECHO
- else
- sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-- -L$libdir @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
-+ $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
- ENDECHO
- fi
- ;;
-@@ -163,4 +195,5 @@
- esac
- shift
- done
-+# vi:ts=4 sw=4
- # vile:shmode
-Index: misc/run_tic.in
-Prereq: 1.32
---- ncurses-5.9/misc/run_tic.in 2011-02-23 23:30:15.000000000 +0000
-+++ ncurses-5.9-20130504/misc/run_tic.in 2012-10-06 19:00:51.000000000 +0000
-@@ -1,7 +1,7 @@
- #!@SHELL@
--# $Id: run_tic.in,v 1.32 2011/02/23 23:30:15 tom Exp $
-+# $Id: run_tic.in,v 1.34 2012/10/06 19:00:51 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -41,13 +41,14 @@
- # The script is designed to be run from the misc/Makefile as
- # make install.data
-
--: ${suffix:=@PROG_EXT@}
-+: ${suffix:=@EXEEXT@}
- : ${DESTDIR:=@DESTDIR@}
- : ${prefix:=@prefix@}
- : ${exec_prefix:=@exec_prefix@}
- : ${bindir:=@bindir@}
- : ${top_srcdir:=@top_srcdir@}
- : ${srcdir:=@srcdir@}
-+: ${datarootdir:=@datarootdir@}
- : ${datadir:=@datadir@}
- : ${TIC_PATH:=@TIC_PATH@}
- : ${ticdir:=@TERMINFO@}
-Index: misc/terminfo.src
---- ncurses-5.9/misc/terminfo.src 2011-02-20 20:46:53.000000000 +0000
-+++ ncurses-5.9-20130504/misc/terminfo.src 2013-03-30 19:51:04.000000000 +0000
-@@ -6,8 +6,8 @@
- # Report bugs and new terminal descriptions to
- # bug-ncurses@gnu.org
- #
--# $Revision: 1.383 $
--# $Date: 2011/02/20 20:46:53 $
-+# $Revision: 1.475 $
-+# $Date: 2013/03/30 19:51:04 $
- #
- # The original header is preserved below for reference. It is noted that there
- # is a "newer" version which differs in some cosmetic details (but actually
-@@ -321,7 +321,7 @@
- # DEL and ^C are hardcoded to act as kill characters.
- # ^D acts as a line break (just like newline).
- # It also interprets
--# \033];xxx\007
-+# \033];xxx\007
- # for compatibility with xterm -TD
- 9term|Plan9 terminal emulator for X,
- am,
-@@ -376,11 +376,19 @@
- dim=\E[2m,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m,
- use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
--ansi+pp|ansi printer port,
-- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- ansi+csr|ansi scroll-region plus cursor save & restore,
- csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
-
-+# The normal (ANSI) flavor of "media copy" building block asserts that
-+# characters sent to the printer do not echo on the screen. DEC terminals
-+# can also be put into autoprinter mode, where each line is sent to the
-+# printer as you move off that line, e.g., by a carriage return.
-+ansi+pp|ansi printer port,
-+ mc5i,
-+ mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
-+dec+pp|DEC autoprinter mode,
-+ mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i,
-+
- # The IBM PC alternate character set. Plug this into any Intel console entry.
- # We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
- # ROM graphics for control characters such as the diamond, up- and down-arrow.
-@@ -456,9 +464,10 @@
- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
- dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
-- hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-- indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
-- smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
-+ hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-+ il=\E[%p1%dL, indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT,
-+ rmam=\E[?7l, sc=\E7, smam=\E[?7h, tbc=\E[g,
-+ vpa=\E[%i%p1%dd,
-
- #### ANSI/ECMA-48 terminals and terminal emulators
- #
-@@ -488,7 +497,7 @@
- # ansi-mtabs adds relative addressing and minimal tab support
- ansi-mtabs|any ansi terminal with pessimistic assumptions,
- it#8,
-- ht=^I, use=ansi+local1, use=ansi-mini,
-+ ht=^I, use=ansi-mini, use=ansi+local1,
-
- # ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
- #
-@@ -690,9 +699,7 @@
- use=ansi.sysk,
-
- #### ANSI console types
--#
-
--#############################################################################
- #
- # Atari ST terminals.
- # From Guido Flohr <gufl0000@stud.uni-sb.de>.
-@@ -909,7 +916,7 @@
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
-- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
-+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;11%;m,
- smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
- use=ecma+color,
-@@ -936,10 +943,30 @@
- # The 2.2.x kernels add a private mode that sets the cursor type; use that to
- # get a block cursor for cvvis.
- # reported by Frank Heckenbach <frank@g-n-u.de>.
--linux|linux console,
-+linux2.2|linux 2.2.x console,
- civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
- cvvis=\E[?25h\E[?8c, use=linux-c-nc,
-
-+# Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
-+# http://lkml.indiana.edu/hypermail/linux/kernel/0602.2/0868.html
-+# Using SI/SO has the drawback that it confuses screen. SCS would work.
-+# However, SCS is buggy (see comment in Debian #515609) -TD
-+# Further, this breaks longstanding workarounds for Linux console's line
-+# drawing (see Debian 665959) -TD
-+linux2.6|linux 2.6.x console,
-+ rmacs=^O,
-+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
-+ sgr0=\E[m\017, smacs=^N, use=linux2.2,
-+
-+# The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
-+# It is the same as xterm's erase-saved-lines feature.
-+linux3.0|linux 3.0 kernels,
-+ E3=\E[3;J, use=linux2.6,
-+
-+# This is Linux console for ncurses.
-+linux|linux console,
-+ use=linux2.2,
-+
- # Subject: linux 2.6.26 vt back_color_erase
- # Changes to the Linux console driver broke bce model as reported in
- # https://bugzilla.novell.com/show_bug.cgi?id=418613
-@@ -947,7 +974,7 @@
- # http://lkml.org/lkml/2008/4/26/305
- # http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e
- linux2.6.26|linux console w/o bce,
-- bce@, use=linux,
-+ bce@, use=linux2.6,
-
- # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
- linux-nic|linux with ich/ich1 suppressed for non-curses programs,
-@@ -998,9 +1025,9 @@
- # you use a 512-character console font. This uses bold for bright
- # foreground colors and blink for bright background colors.
- linux-16color|linux console with 16 colors,
-- colors#16, ncv#54, pairs#256,
-- setab=\E[4%p1%{8}%m%d%?%p1%{8}%>%t;5%e%p1%{8}%=%t;2%e;25%;m,
-- setaf=\E[3%p1%{8}%m%d%?%p1%{8}%>%t;1%e%p1%{8}%=%t;2%e;21%;m,
-+ colors#16, ncv#63, pairs#256,
-+ setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m,
-+ setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m,
- use=linux,
-
- # bterm (bogl 0.1.18)
-@@ -1024,7 +1051,7 @@
- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J,
-- op=\E49;39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
-+ op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
- rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
-
-@@ -1053,6 +1080,24 @@
- dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
-
-+# From: Samuel Thibault
-+# Source: git://git.sv.gnu.org/hurd/gnumach.git
-+# Files: i386/i386at/kd.c
-+#
-+# Added nel, hpa, sgr and removed rmacs, smacs based on source -TD
-+mach-gnu|GNU Mach,
-+ acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
-+ el1=\E[1K, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
-+ indn=\E[%p1%dS, invis=\E[8m, nel=\EE, rin=\E[%p1%dT,
-+ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m,
-+ use=mach,
-+
-+mach-gnu-color|Mach Console with ANSI color,
-+ colors#8, pairs#64,
-+ op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm,
-+ setaf=\E[3%p1%dm, use=mach-gnu,
-+
- # From: Marcus Brinkmann
- # http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
- #
-@@ -1183,7 +1228,7 @@
- civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
- cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
- rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
-- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
-+ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%e;10%;m,
- smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
- smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
- smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
-@@ -1649,6 +1694,56 @@
- qansi-w|QNX ansi for windows,
- xvpa, use=qansi-m,
-
-+#### OpenBSD consoles
-+#
-+# From: Alexei Malinin <Alexei.Malinin@mail.ru>; October, 2011.
-+#
-+# The following terminal descriptions for the AMD/Intel PC console
-+# were prepared based on information contained in the OpenBSD-4.9
-+# termtypes.master and wscons(4) & vga(4) manuals (2010, November).
-+#
-+# Added bce based on testing with tack -TD
-+# Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD
-+# Changed kbs to DEL and removed keys that duplicate stty settings -TD
-+#
-+pccon+keys|OpenBSD PC keyboard keys,
-+ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-+ kdch1=\E[3~, kend=\E[8~, kent=^M, kf1=\E[11~, kf10=\E[21~,
-+ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
-+ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-+ kf9=\E[20~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-+ krfr=^R,
-+pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console,
-+ acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o,
-+ sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
-+pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console,
-+ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-+ enacs=\E)0$<5>, rmacs=\E(B$<5>,
-+ sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>,
-+ sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>,
-+pccon+colors|ANSI colors for OpenBSD PC console,
-+ bce,
-+ colors#8, pairs#64,
-+ op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-+pccon+base|base capabilities for OpenBSD PC console,
-+ am, km, mc5i, msgr, npc, nxon, xenl, xon,
-+ cols#80, it#8, lines#24,
-+ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
-+ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
-+ dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-+ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-+ il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-+ rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m,
-+ tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
-+pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics,
-+ use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys,
-+pccon0|OpenBSD PC console with simple ASCII pseudographics,
-+ use=pccon0-m, use=pccon+colors,
-+pccon-m|OpenBSD PC console without colors,
-+ use=pccon+base, use=pccon+sgr+acs, use=pccon+keys,
-+pccon|OpenBSD PC console,
-+ use=pccon-m, use=pccon+colors,
-+
- #### NetBSD consoles
- #
- # pcvt termcap database entries (corresponding to release 3.31)
-@@ -1786,7 +1881,7 @@
- ofcons|DNARD OpenFirmware console,
- bw,
- cols#80, lines#30,
-- bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
-+ bel=^G, blink=\2335m, bold=\2331m, clear=^L, cr=^M,
- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
-@@ -1798,8 +1893,8 @@
- kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
- kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
- rmso=\2330m, rmul=\2330m,
-- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-- sgr0=\2330m,
-+ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8%;%?%p1%p3%|%t;7%;m,
-+ sgr0=\2330m, smso=\2337m, smul=\2334m,
-
- # NetBSD "wscons" emulator in vt220 mode.
- # This entry is based on the NetBSD termcap entry, correcting the ncv value.
-@@ -1816,7 +1911,8 @@
- wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
- bce, msgr,
- colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
-- is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
-+ civis=\E[?25l, cnorm=\E[?25h, is2=\E[r\E[25;1H,
-+ kdch1=\E[3~, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec,
-@@ -2377,8 +2473,9 @@
- # with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
- # PF1--PF4 are used as F1--F4.
- #
-+# added msgr -TD
- vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
-- OTbs, OTpt, am, mir, xenl, xon,
-+ OTbs, OTpt, am, mir, msgr, xenl, xon,
- cols#80, lines#24, vt#3,
- OTnl=^J,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-@@ -2404,8 +2501,15 @@
- # A much better description of the VT200/220; used to be vt220-8
- # changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
- # designation to accommodate bug in pcvt -TD
-+#
-+# Here's a picture of the VT220 editing keypad:
-+# +--------+--------+--------+
-+# | Find | Insert | Remove |
-+# +--------+--------+--------+
-+# | Select | Prev | Next |
-+# +--------+--------+--------+
- vt220|vt200|dec vt220,
-- OTbs, am, mc5i, mir, msgr, xenl, xon,
-+ OTbs, am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
-@@ -2417,20 +2521,21 @@
- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
-- is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
-- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
-- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
-- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
-- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
-- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
-- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
-- mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
-- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
-- rmul=\E[24m, rs1=\E[?3l, sc=\E7,
-+ is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, kcub1=\E[D,
-+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
-+ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
-+ kf14=\E[26~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-+ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
-+ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
-+ khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-+ krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
-+ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B$<4>,
-+ rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
-+ rs1=\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-+ smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+pp,
-+ use=ansi+enq,
- vt220-w|vt200-w|DEC vt220 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt220,
-@@ -2447,18 +2552,18 @@
- flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
- ich=\233%p1%d@, if=/usr/share/tabset/vt100,
- il=\233%p1%dL, il1=\233L, ind=\ED,
-- is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
-+ is2=\233?7h\233>\233?1l\E F\233?4l, kbs=^H,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
-- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
-- kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
-- kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
-- kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
-- kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
-- knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
-- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
-- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
-- rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
-- rs1=\233?3l, sc=\E7,
-+ kdch1=\2333~, kf1=\EOP, kf10=\23321~, kf11=\23323~,
-+ kf12=\23324~, kf13=\23325~, kf14=\23326~, kf17=\23331~,
-+ kf18=\23332~, kf19=\23333~, kf2=\EOQ, kf20=\23334~,
-+ kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~, kf8=\23319~,
-+ kf9=\23320~, kfnd=\2331~, khlp=\23328~, khome=\233H,
-+ kich1=\2332~, knp=\2336~, kpp=\2335~, krdo=\23329~,
-+ kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i,
-+ mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8, rev=\2337m, ri=\EM,
-+ rmacs=\E(B, rmam=\233?7l, rmir=\2334l, rmso=\23327m,
-+ rmul=\23324m, rs1=\233?3l, sc=\E7,
- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
- smso=\2337m, smul=\2334m, tbc=\2333g,
-@@ -2495,14 +2600,15 @@
- #
- # From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
- # (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
-+# added msgr -TD
- vt200-js|vt220-js|dec vt200 series with jump scroll,
-- am,
-+ am, msgr,
- cols#80,
- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ht=^I, il1=\E[L, ind=\ED,
-- is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
-+ is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1h\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
- rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
-@@ -2534,7 +2640,7 @@
- # From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
- # (vt320: uncommented <fsl> --esr)
- vt320|vt300|dec vt320 7 bit terminal,
-- am, eslok, hs, mir, msgr, xenl,
-+ am, hs, mir, msgr, xenl,
- cols#80, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-@@ -2543,9 +2649,8 @@
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
-- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
-- il1=\E[L, ind=\ED,
-+ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
-+ hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
-@@ -2553,8 +2658,7 @@
- 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,
-+ kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m,
-@@ -2563,7 +2667,7 @@
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-- tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
-+ use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq,
- vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
- am@,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
-@@ -2673,33 +2777,38 @@
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-- tsl=\E[2$~\E[1$}\E[1;%dH,
-+ tsl=\E[2$~\E[1$}\E[1;%dH, use=dec+sl,
-
- # (vt420: I removed <kf0>, it collided with <kf10>. I also restored
- # a missing <sc> -- esr)
-+# add msgr and other capabilities from vt220 -TD
- vt420|DEC VT420,
-- am, mir, xenl, xon,
-- cols#80, lines#24, vt#3,
-+ am, mir, msgr, xenl, xon,
-+ cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-- cub1=^H, cud1=\E[B, cuf1=\E[C,
-- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
-- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-- kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
-- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
-- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
-+ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
-+ clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
-+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-+ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA, cuu1=\E[A,
-+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-+ ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K,
-+ enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I,
-+ hts=\EH, ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
-+ il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[1;24r\E[24;1H,
-+ is3=\E[?67h\E[64;1"p, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-+ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[29~,
-+ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, kf6=\E[18~,
-+ kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, kfnd=\E[1~,
-+ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, nel=\EE,
-+ rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
-+ ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-+ rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-- smkx=\E=, smso=\E[7m, smul=\E[4m,
-+ sgr0=\E[m\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h,
-+ smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-+ use=ansi+pp, use=dec+sl, use=ansi+enq,
-
- # DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
- # takes two parameters, the key and the string. Translating the key is
-@@ -2772,58 +2881,11 @@
- # terminal mode is being used. If Set-Up has been disabled or
- # assigned to an unknown key, Set-Up may be entered by pressing
- # [F3] as the first key after power up, regardless of keyboard type.
--# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
- vt520|DEC VT520,
-- am, mir, xenl, xon,
-- cols#80, lines#24, vt#3,
-- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-- cub1=^H, cud1=\E[B, cuf1=\E[C,
-- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
-- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-- kslt=\E[4~,
-- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
-- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-- smso=\E[7m, smul=\E[4m,
-+ use=ansi+rca, use=vt420, use=ansi+tabs,
-
--# (vt525: I added <rmam>/<smam> based on the init string;
--# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
- vt525|DEC VT525,
-- am, mir, xenl, xon,
-- cols#80, lines#24, vt#3,
-- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
-- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-- cub1=^H, cud1=\E[B, cuf1=\E[C,
-- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
-- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
-- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
-- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
-- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
-- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
-- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-- kslt=\E[4~,
-- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
-- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
-- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
-- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
-- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
-- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
-- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
-- smso=\E[7m, smul=\E[4m,
-+ use=vt520,
-
- #### VT100 emulations
- #
-@@ -2887,7 +2949,7 @@
- # the default behavior -TD
-
- putty|PuTTY terminal emulator,
-- am, bce, bw, ccc, hs, mir, msgr, xenl, xon, XT,
-+ am, bce, bw, ccc, mir, msgr, xenl, xon, XT,
- colors#8, it#8, ncv#22, pairs#64, U8#1,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-@@ -2897,11 +2959,10 @@
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- dch=\E[%p1%dP, dch1=\E[P,
- dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
-- dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
-- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
-- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
-- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-- indn=\E[%p1%dS,
-+ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-+ el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H,
-+ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
-+ ind=^J, indn=\E[%p1%dS,
- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
- kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
-@@ -2922,7 +2983,8 @@
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
-- tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
-+ tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J, use=vt102+enq,
-+ use=xterm+sl,
- vt100-putty|Reset PuTTY to pure vt100,
- rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
- use=vt100,
-@@ -2937,6 +2999,28 @@
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, use=putty,
-
-+# Unlike xterm-sco, this leaves kmous ambiguous with kf1.
-+#
-+# Use modifiers to obtain function keys past 12:
-+# F1-F12 - normal
-+# F13-F24 - shift
-+# F25-F36 - control/alt
-+# F37-F48 - control/shift
-+#
-+putty-sco|putty with SCO function keys,
-+ kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-+ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
-+ kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
-+ kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
-+ kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
-+ kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
-+ kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
-+ kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
-+ kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
-+ kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
-+ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
-+ kich1=\E[L, knp=\E[G, kpp=\E[I, use=putty,
-+
- # This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
- # T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator
- # (communication program) which supports:
-@@ -3091,7 +3175,8 @@
- kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
- smso=\E[7m,
-
--#### X terminal emulators
-+######## X TERMINAL EMULATORS
-+#### XTERM
- #
- # You can add the following line to your .Xdefaults to change the terminal type
- # set by the xterms you start up to my-xterm:
-@@ -3154,7 +3239,7 @@
- # added khome/kend, hts based on the R6 xterm code - TD
- # (khome/kend do not actually work in X11R5 or X11R6, but many people use this
- # for compatibility with other emulators).
--xterm-r6|xterm-old|xterm X11R6 version,
-+xterm-r6|xterm X11R6 version,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#24,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-@@ -3180,10 +3265,12 @@
- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- use=vt100+enq,
-+xterm-old|antique xterm version,
-+ use=xterm-r6,
- # This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
- # The name has been changed and some aliases have been removed.
- xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
-- OTbs, am, bce, km, mir, msgr, xenl,
-+ OTbs, am, bce, km, mir, msgr, xenl, XT,
- cols#80, it#8, lines#24, ncv@,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-@@ -3227,13 +3314,13 @@
- # xterm to use terminfo-based descriptions with the titeInhibit resource.
- # -- the distribution contained incorrect khome/kend values -TD
- xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
-- mc5i,
- blink=\E[5m, ich1@, invis=\E[8m,
- is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
-- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
-- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
-+ rmcup=\E[?1047l\E[?1048l, rs1=\Ec,
-+ rs2=\E[!p\E[?3;4l\E[4l\E>,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-- smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
-+ smcup=\E[?1048h\E[?1047h, use=ansi+pp,
-+ use=xterm-xf86-v33,
-
- # This version was released in XFree86 4.0.
- xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
-@@ -3274,12 +3361,14 @@
- # This version reflects the current xterm features.
- xterm-new|modern xterm terminal emulator,
- npc,
-- indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
-- kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
-- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-- kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
-- knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
-+ indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM,
-+ rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm+tmux,
- use=xterm-basic,
-+
-+# This fragment is for people who cannot agree on what the backspace key
-+# should send.
-+xterm+kbs|fragment for backspace key,
-+ kbs=^H,
- #
- # This fragment describes as much of XFree86 xterm's "pc-style" function
- # keys as will fit into terminfo's 60 function keys.
-@@ -3445,7 +3534,7 @@
- #
- # This chunk is used for building the VT220/Sun/PC keyboard variants.
- xterm-basic|modern xterm terminal emulator - common,
-- OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
-+ OTbs, am, bce, km, mir, msgr, xenl, AX, XT,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
-@@ -3457,19 +3546,20 @@
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
-- ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
-- kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
-- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
-- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
-- rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
-- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
-- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-+ ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>,
-+ kmous=\E[M, meml=\El, memu=\Em, op=\E[39;49m, rc=\E8,
-+ rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
-+ rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>,
-+ rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
-+ rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm,
-+ setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
- sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
- smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
-- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
-+ smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J,
-+ use=ansi+pp, use=xterm+kbs, use=vt100+enq,
-
- # From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
- # In retrospect, something like xterm-r6 was intended here -TD
-@@ -3527,6 +3617,28 @@
- xterm-1003|testing xterm-mouse,
- XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
-
-+# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
-+# asked for some of xterm's advanced features to be added to its terminfo
-+# entry. It defines extended capabilities not found in standard terminfo or
-+# termcap. These are useful in tmux, for instance, hence the name.
-+#
-+# One caveat in adding extended capabilities in ncurses is that if the names
-+# are longer than two characters, then they will not be visible through the
-+# termcap interface.
-+#
-+# Ms modifies the selection/clipboard. Its parameters are
-+# p1 = the storage unit (clipboard, selection or cut buffer)
-+# p2 = the base64-encoded clipboard content.
-+#
-+# Ss is used to set the cursor style as described by the DECSCUSR
-+# function to a block or underline.
-+# Se resets the cursor style to the terminal power-on default.
-+#
-+# Cs and Cr set and reset the cursor colour.
-+xterm+tmux|advanced xterm features used in tmux,
-+ Cr=\E]112\007, Cs=\E]12;%p1%s\007,
-+ Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
-+
- # This is another variant, for XFree86 4.0 xterm (T.Dickey)
- # This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
- # To use it, your decTerminalID resource must be set to 200 or above.
-@@ -3552,8 +3664,8 @@
- hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
- il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
- is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
-- ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
-- kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
-+ ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kc1=\217q,
-+ kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
- kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
- kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
-@@ -3575,6 +3687,7 @@
- smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
- smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
- u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
-+ use=xterm+kbs,
-
- xterm-hp|xterm with hpterm function keys,
- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-@@ -3621,8 +3734,9 @@
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
-- home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
-- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-+ home=\EH, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-+ kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-+ use=xterm+kbs,
-
- xterm-noapp|xterm with cursor keys in normal mode,
- rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
-@@ -3640,25 +3754,68 @@
- xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
- U8#1, use=xterm,
-
--# These entries allow access to the X titlebar and icon name as a status line.
--# Note that twm (and possibly window managers descended from it such as tvtwm,
--# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
--# with it.
-+# These building-blocks allow access to the X titlebar and icon name as a
-+# status line. There are a few problems in using them in entries:
-+#
-+# a) tsl should have a parameter to denote the column on which to transfer to
-+# the status line.
-+# b) the "0" code for xterm updates both icon-title and window title. Some
-+# window managers such as twm (and possibly window managers descended from
-+# it such as tvtwm, ctwm, and vtwm) track windows by icon-name. Thus, you
-+# don't want to mess with icon-name when using those window managers.
- xterm+sl|access X title line and icon name,
- hs,
-- wsl#40,
-- dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
-+ dsl=\E]0;\007, fsl=^G, tsl=\E]0;,
- xterm+sl-twm|access X title line (pacify twm-descended window managers),
- hs,
-- wsl#40,
-- dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
-+ dsl=\E]2;\007, fsl=^G, tsl=\E]2;,
-+
-+# In contrast, this block can be used for a DEC vt320 and up. There are two
-+# controls used.
-+#
-+# DECSASD (select active status display)
-+# \E[0$} Main display
-+# \E[1$} Status line
-+#
-+# DECSSDT (select status line type)
-+# \E[0$~ No status line
-+# \E[1$~ Indicator status line
-+# \E[2$~ Host-writable status line
-+#
-+# The building block assumes that the terminal always shows something at the
-+# status line (either the indicator, or status line). That is because if no
-+# status line is used, then the terminal makes that line part of the user
-+# window, changing its size without notice.
-+#
-+# Because there is no "esl" (enable status line) capability, the "tsl"
-+# capability ensures that the status line is host-writable. A DEC terminal
-+# will clear the status line when changing from indicator to host-writable
-+# mode.
-+#
-+# Once on the status line, the row part of cursor addressing is ignored. Since
-+# tsl expects a parameter (to specify the column), the shortest addressing that
-+# can be used for this purpose is HPA, e.g., \E[5d to go to column 5.
-+#
-+dec+sl|DEC VTxx status line,
-+ eslok, hs,
-+ dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
-
- #
- # The following xterm variants don't depend on your base version
- #
- # xterm with bold instead of underline
- xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
-+ sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m,
- smso=\E[7m, smul=\E[1m, use=xterm-old,
-+
-+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-+xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
-+ ich@, ich1@, use=xterm,
-+# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
-+xterm1|xterm terminal emulator ignoring the alternate screen buffer,
-+ rmcup@, smcup@, use=xterm,
-+
-+#### KTERM
- # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
- # (kterm should not invoke DEC Graphics as the alternate character set
- # -- Kenji Rikitake)
-@@ -3676,12 +3833,51 @@
- tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
- kterm-color|kterm-co|kterm with ANSI colors,
- ncv@, use=kterm, use=ecma+color,
--# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
--xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
-- ich@, ich1@, use=xterm,
--# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
--xterm1|xterm terminal emulator ignoring the alternate screen buffer,
-- rmcup@, smcup@, use=xterm,
-+
-+#### Other XTERM
-+# These (xtermc and xtermm) are distributed with Solaris. They refer to a
-+# variant of xterm which is apparently no longer supported, but are interesting
-+# because they illustrate SVr4 curses mouse controls - T.Dickey
-+xtermm|xterm terminal emulator (monocrome),
-+ OTbs, am, km, mir, msgr, xenl,
-+ btns#3, cols#80, it#8, lines#24,
-+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-+ bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-+ el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
-+ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-+ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
-+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
-+ kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
-+ kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
-+ knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
-+ rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
-+ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-+ sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
-+ smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
-+
-+xtermc|xterm terminal emulator (color),
-+ colors#8, ncv#7, pairs#64,
-+ op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-+ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-+ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-+ use=xtermm,
-+
-+# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-+# Here's a termcap entry I've been using for xterm_color, which comes
-+# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
-+# color stuff, I also have a status line defined as the window manager
-+# title bar. [I have translated it to terminfo -- ESR]
-+xterm-pcolor|xterm with color used for highlights and status line,
-+ wsl#40,
-+ bold=\E[1;43m, rev=\E[7;34m,
-+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m,
-+ smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
-
- # This describes the capabilities of color_xterm, an xterm variant from
- # before ECMA-64 color support was folded into the main-line xterm release.
-@@ -3729,6 +3925,32 @@
- ncv@,
- op=\E[m, use=xterm-r6, use=klone+color,
-
-+# This entry describes an xterm with Sun-style function keys enabled
-+# via the X resource setting "xterm*sunFunctionKeys:true"
-+# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-+# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
-+# because we want it to be seen as <kcpy>.
-+# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
-+# with their Sun keyboard labels instead.
-+# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-+xterm-sun|xterm with sunFunctionKeys true,
-+ kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
-+ kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
-+ kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
-+ kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
-+ kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
-+ kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
-+ kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
-+ kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
-+ kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
-+ kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
-+ kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
-+ kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
-+ use=xterm-basic,
-+xterms-sun|small (80x24) xterm with sunFunctionKeys true,
-+ cols#80, lines#24, use=xterm-sun,
-+
-+#### GNOME (VTE)
- # this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
- gnome-rh62|Gnome terminal,
- bce,
-@@ -3782,7 +4004,7 @@
- #
- # bce and msgr are repaired.
- gnome-rh90|GNOME Terminal,
-- bce, msgr,
-+ bce, msgr, XT,
- hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
- kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
- vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
-@@ -3820,6 +4042,19 @@
- gnome-2008|GNOME Terminal snapshot 2.22.3,
- use=vte-2008,
-
-+# GNOME Terminal 3.6.0 (2012)
-+# VTE 0.34.1 was marked in git 2012-10-15 (three days after patch was applied
-+# in ncurses). It inherited from gnome-fc5, which broke the modified forms
-+# of f1-f4 -TD
-+#
-+# Testing with tack shows that flash does not/has not worked -TD
-+vte-2012|VTE 0.34.1,
-+ flash@, ritm=\E[23m, sitm=\E[3m, use=vte-2008,
-+# Version 3.6.1 sets TERM to xterm-256color (still hardcoded), which has
-+# 61 differences from a correct entry for gnome terminal.
-+gnome-2012|GNOME Terminal 3.6.0,
-+ use=vte-2012,
-+
- # GNOME terminal may automatically use the contents of the "xterm" terminfo to
- # supply key information which is not built into the program. With 2.22.3,
- # this list is built into the program (which addresses the inadvertant use of
-@@ -3848,13 +4083,13 @@
- use=vte+pcfkeys,
-
- vte|VTE aka GNOME Terminal,
-- use=vte-2008,
-+ use=vte-2012,
- gnome|GNOME Terminal,
- use=vte,
-
- # palette is hardcoded...
- vte-256color|VTE with xterm 256-colors,
-- initc@, use=xterm+256color, use=vte,
-+ use=xterm+256color, use=vte,
- gnome-256color|GNOME Terminal with xterm 256-colors,
- use=vte-256color,
-
-@@ -3865,8 +4100,9 @@
- # Since most of the terminfo-related behavior is due to the VTE library,
- # the terminfo is the same as gnome-terminal.
- xfce|Xfce Terminal,
-- use=vte,
-+ use=vte-2008,
-
-+#### Other GNOME
- # Multi-Gnome-Terminal 1.6.2
- #
- # This does not use VTE, and does have different behavior (compare xfce and
-@@ -3874,6 +4110,7 @@
- mgt|Multi GNOME Terminal,
- indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
-
-+#### KDE
- # This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
- # or not is debatable).
- kvt|KDE terminal,
-@@ -3922,7 +4159,7 @@
- ncv@,
- bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
-- hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
-+ hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1=\E[3~,
- kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
- kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
- kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
-@@ -3932,11 +4169,10 @@
- sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
- use=ecma+color, use=xterm-r6,
- konsole-linux|KDE console window with linux keyboard,
-- kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
-- kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
-- kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
-- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-- use=konsole-base,
-+ kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13@,
-+ kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E[[B, kf20@,
-+ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
-+ kf8=\E[19~, kf9=\E[20~, use=konsole-base,
- konsole-solaris|KDE console window with Solaris keyboard,
- kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
- # KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
-@@ -3972,6 +4208,7 @@
- konsole-256color|KDE console window with xterm 256-colors,
- initc@, use=xterm+256color, use=konsole,
-
-+#### MLTERM
- # This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
- #
- # It is nominally a vt102 emulator, with features borrowed from rxvt and
-@@ -4037,6 +4274,7 @@
- mlterm-256color|mlterm 3.0 with xterm 256-colors,
- use=xterm+256color, use=rxvt,
-
-+#### RXVT
- # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
- # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
- # Notes:
-@@ -4208,6 +4446,7 @@
- rxvt-16color|xterm with 16 colors like aixterm,
- ncv#32, use=ibm+16color, use=rxvt,
-
-+#### MRXVT
- # mrxvt 0.5.4
- #
- # mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
-@@ -4225,6 +4464,7 @@
- mrxvt-256color|multitabbed rxvt with 256 colors,
- use=xterm+256color, use=mrxvt,
-
-+#### ETERM
- # From: Michael Jennings <mej@valinux.com>
- #
- # Eterm 0.9.3
-@@ -4270,11 +4510,13 @@
- Eterm-88color|Eterm with 88 colors,
- use=xterm+88color, use=Eterm,
-
-+#### ATERM
- # Based on rxvt 2.4.8, it has a few differences in key bindings
- aterm|AfterStep terminal,
- XT,
- kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
-
-+#### XITERM
- # xiterm 0.5-5.2
- # This is not based on xterm's source...
- # vttest shows several problems with keyboard, cursor-movements.
-@@ -4283,48 +4525,8 @@
- km@,
- kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
-
--# These (xtermc and xtermm) are distributed with Solaris. They refer to a
--# variant of xterm which is apparently no longer supported, but are interesting
--# because they illustrate SVr4 curses mouse controls - T.Dickey
--xtermm|xterm terminal emulator (monocrome),
-- OTbs, am, km, mir, msgr, xenl,
-- btns#3, cols#80, it#8, lines#24,
-- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-- bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
-- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-- el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
-- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
-- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
-- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
-- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
-- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
-- knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
-- rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
-- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-- sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
-- smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
--
--xtermc|xterm terminal emulator (color),
-- colors#8, ncv#7, pairs#64,
-- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-- use=xtermm,
--
--# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
--# Here's a termcap entry I've been using for xterm_color, which comes
--# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
--# color stuff, I also have a status line defined as the window manager
--# title bar. [I have translated it to terminfo -- ESR]
--xterm-pcolor|xterm with color used for highlights and status line,
-- bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
-- smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
-
-+#### HPTERM
- # HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
- # from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS
- # chars look like --esr)
-@@ -4357,31 +4559,7 @@
- initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
- op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
-
--# This entry describes an xterm with Sun-style function keys enabled
--# via the X resource setting "xterm*sunFunctionKeys:true"
--# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
--# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
--# because we want it to be seen as <kcpy>.
--# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
--# with their Sun keyboard labels instead.
--# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
--xterm-sun|xterm with sunFunctionKeys true,
-- kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
-- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
-- kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
-- kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
-- kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
-- kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
-- kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
-- kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
-- kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
-- kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
-- kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
-- kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
-- use=xterm-basic,
--xterms-sun|small (80x24) xterm with sunFunctionKeys true,
-- cols#80, lines#24, use=xterm-sun,
--
-+#### EMU
- # This is for the extensible terminal emulator on the X11R6 contrib tape.
- # It corresponds to emu's internal emulation:
- # emu -term emu
-@@ -4443,6 +4621,8 @@
- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
- smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
-+
-+#### MVTERM
- # A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
- # print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings
- # indicate that it emulates more than one terminal, but incompletely.
-@@ -4477,7 +4657,7 @@
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
-
--### MTERM
-+#### MTERM
- #
- # This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
- #
-@@ -4598,6 +4778,123 @@
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
-
-+#### SIMPLETERM
-+# st.suckless.org
-+# st-0.1.1
-+#
-+# Note: the original terminfo description uses leading blank to persuade
-+# ncurses to use "st" as its name. Proper fix for that is to use "st" as an
-+# alias.
-+#
-+# Reading the code shows it should work for aixterm 16-colors
-+# - added st-16color
-+#
-+# Using tack:
-+# - set eo (erase-overstrike)
-+# - set xenl
-+# - tbc doesn't work
-+# - hts works
-+# - cbt doesn't work
-+# - shifted cursor-keys send sequences like rxvt
-+# - sgr referred to unimplemented "invis" mode.
-+# Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis
-+simpleterm|st| simpleterm,
-+ am, eo, mir, msgr, ul, xenl,
-+ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
-+ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-+ bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
-+ cnorm=\E[?12l\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-+ cub1=^H, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
-+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-+ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
-+ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
-+ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=\177,
-+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-+ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
-+ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-+ khome=\E[1~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8,
-+ rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7,
-+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-+ sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m,
-+st-16color|simpleterm with 16-colors,
-+ use=ibm+16color, use=simpleterm,
-+# 256 colors "works", but when running xterm's test-scripts, some garbage is
-+# shown in the titlebar.
-+st-256color|simpleterm with 256 colors,
-+ ccc@,
-+ initc@, use=xterm+256color, use=simpleterm,
-+
-+#### TERMINATOR
-+# http://software.jessies.org/terminator/
-+# Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit
-+# Debian/current -TD (2011/8/20)
-+#
-+# There are some packaging problems:
-+# a) using Java, the program starts off using 50Mb, and climbs from there,
-+# up to 114Mb after testing (no scrollback).
-+# b) it insists on reinstalling its terminal description in $HOME/.terminfo
-+# (two copies, just in case the host happens to be Mac OS X).
-+# I deleted this after testing with tack.
-+#
-+# Issues/features found with tack:
-+# a) tbc does not work (implying that hts also is broken).
-+# Comparing with the tabs utility shows a problem with the last tabstop on
-+# a line.
-+# b) has xterm-style shifted function-key strings
-+# meta also is used, but control is ignored.
-+# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta)
-+# d) some combinations of shift/control send xterm-style sequences for
-+# insert/delete/home/end.
-+# e) numeric keypad sends only numbers (compare with vttest).
-+# f) meta mode (km) is not implemented.
-+#
-+# Issues found with ncurses test-program:
-+# a) bce is inconsistently implemented
-+# b) widths of Unicode values above 256 do not always agree with wcwidth.
-+#
-+# Checked with vttest, found low degree of compatibility there.
-+#
-+# Checked with xterm's scripts, found that the 256-color palette is fixed.
-+#
-+# Fixes:
-+# a) add sgr string
-+# b) corrected sgr0 to reset alternate character set
-+# c) modified smacs/rmacs to use SCS rather than SI/SO
-+# d) removed bce
-+# e) removed km
-+terminator|Terminator no line wrap,
-+ eo, mir, msgr, xenl, xon,
-+ colors#256, cols#80, it#8, lines#24, lm#0, pairs#32767,
-+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
-+ bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
-+ cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-+ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
-+ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-+ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-+ dl=\E[%p1%dM, dl1=\E[M, dsl=\E]2;\007, ed=\E[J, el=\E[K,
-+ el1=\E[1K, enacs=\E(B\E)0, flash=^G, fsl=^G, home=\E[H,
-+ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
-+ ind=^J, is1=\E[?47l\E=\E[?1l,
-+ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
-+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
-+ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
-+ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
-+ kf15=\E[28~, kf16=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-+ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-+ op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
-+ rmcup=\E[?47l\E8, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
-+ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
-+ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
-+ s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[48;5;%p1%dm,
-+ setaf=\E[38;5;%p1%dm,
-+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
-+ sgr0=\E[m\E(B, smacs=\E(0, smcup=\E7\E[?47h, smir=\E[4h,
-+ smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]2;%p1,
-+ vpa=\E[%i%p1%dd,
-+
- ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
- #
-
-@@ -4780,7 +5077,7 @@
- bce@, bw,
- invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-- use=screen+fkeys, use=xterm-new,
-+ E3@, use=screen+fkeys, use=xterm-new,
- # xterm-r6 does not really support khome/kend unless it is propped up by
- # the translations resource.
- screen.xterm-r6|screen customized for X11R6 xterm,
-@@ -4920,18 +5217,18 @@
- # sequences for setting the window-title. So you must use tsl and fsl in
- # pairs, since the latter ends the string that is loaded to the window-title.
- ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
-- am, hs, km, mir, msgr, xenl,
-+ am, km, mir, msgr, xenl,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-- dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
-- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
-- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
-- il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
-+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
-+ el=\E[K, el1=\E[1K, enacs=\E)0, flash=\E[?5h\E[?5l,
-+ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
-+ if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
-+ ind=\n$<150*>,
- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
-@@ -4945,8 +5242,8 @@
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
-- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
-- u8=\E[?62;1;6c, use=ansi+enq,
-+ smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-+ u8=\E[?62;1;6c, use=xterm+sl, use=ansi+enq,
- ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- use=ncsa-m, use=klone+color,
- ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
-@@ -5064,10 +5361,10 @@
- kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
- kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
- kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
-- knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
-- kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
-- sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
-- u8=\E[1t, u9=\E[11t,
-+ kich1=\E[247z, knp=\E[222z, kopt=\E[194z, kpp=\E[216z,
-+ kres=\E[193z, kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@,
-+ rs2=\E[s, sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
-+ smso=\E[7m, u8=\E[1t, u9=\E[11t,
- # On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
- # flake out on the last line. Unfortunately, without them the terminal has no
- # way to scroll.
-@@ -5077,6 +5374,10 @@
- sun|sun1|sun2|Sun Microsystems Inc. workstation console,
- use=sun-il,
-
-+sun+sl|Sun Workstation window status line,
-+ hs,
-+ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l,
-+
- # From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
- sun-s|Sun Microsystems Workstation window with status line,
- hs,
-@@ -5130,12 +5431,13 @@
- # It supports bold, but not underline -TD (2009-09-19)
- sun-color|Sun Microsystems Workstation console with color support (IA systems),
- colors#8, ncv#3, pairs#64,
-- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-- cuu=\E[%p1%dA, home=\E[H, op=\E[0m, setab=\E[4%p1%dm,
-- setaf=\E[3%p1%dm,
-+ bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-+ cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s,
-+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-- use=sun,
-+ sgr=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, sgr0=\E[m,
-+ smso=\E[7m, use=sun,
-
- #### Iris consoles
- #
-@@ -5230,7 +5532,7 @@
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
-- is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
-+ is2=\E[?7h\E[?1h\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
- kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
-@@ -5278,7 +5580,7 @@
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
-- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
-+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-@@ -5405,7 +5707,7 @@
- #### Non-Unix Consoles
- #
-
--### EMX termcap.dat compatibility modes
-+#### EMX termcap.dat compatibility modes
- #
- # Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
- # no_color_video to inform the application that standout(1), underline(2)
-@@ -5544,7 +5846,7 @@
- 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,
-+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
- vpa=\E[%i%p1%dd, use=vt102+enq,
-@@ -5579,7 +5881,7 @@
- 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,
-+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
- sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
-
-@@ -5825,7 +6127,7 @@
- ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
-- rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
-+ rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/tabset/vt100,
- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-@@ -5968,7 +6270,7 @@
- # :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
- # :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
- # :HL=^AP\r:SP=\E[i:\
--# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-+# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:
- altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
- blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
- altos4|alt4|altos-4|altos IV,
-@@ -6183,7 +6485,7 @@
- da, db,
- lm#0, pb#19200,
- ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
-- is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
-+ is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk-cr,
- use=hp+labels, use=scrhp,
-
- # This entry is for sysline. It allocates a 23 line window with
-@@ -6384,7 +6686,7 @@
- hp2622|hp2622a|hp 2622,
- da, db,
- lm#0, pb#19200,
-- is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
-+ is2=\E&dj@\r, use=hp+pfk-cr, use=hp+labels, use=scrhp,
-
- # The 2623 is a 2622 with extra graphics hardware.
- hp2623|hp2623a|hp 2623,
-@@ -7088,6 +7390,9 @@
- # What seems to be going on here is that this entry was designed so that
- # the normal highlight is bold and standout is dim plus something else
- # (reverse-video maybe? But then, are there two <rev> sequences?)
-+#
-+# Added kdch1, kil1, kdl1 based on screenshot -TD:
-+# http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg
- qvt101+|qvt101p|qume qvt 101 PLUS product,
- am, bw, hs, ul,
- cols#80, lines#24, xmc#0,
-@@ -7096,11 +7401,11 @@
- dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
-- kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
-- kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
-- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
-- khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
-- smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-+ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
-+ kel=\ET, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r,
-+ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
-+ kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@,
-+ rmso=\E(, smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
- qvt102|qume qvt 102,
- cnorm=\E., use=qvt101,
- # (qvt103: added <rmam>/<smam> based on init string -- esr)
-@@ -8212,8 +8517,8 @@
- rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
- rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
- rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
-- sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
-- sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
-+ sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p8%t\E&%;%?%p9%t\E$%e\E%%%;,
-+ sgr0=\EG0\E%, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
- smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
- tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
-
-@@ -9726,7 +10031,7 @@
- flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
- fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-- is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
-+ is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
-@@ -9980,7 +10285,7 @@
- pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
-- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-+ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%p1%{1}%+%dH,
-
-@@ -10078,7 +10383,7 @@
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
- rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
-- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-+ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
- smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
-@@ -10284,7 +10589,7 @@
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
-- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-+ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
-@@ -10681,7 +10986,7 @@
- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
- rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l, sc=\E7,
-- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-+ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\017%;,
- sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx,
-@@ -10741,7 +11046,7 @@
- mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs2=\Ec, sc=\E7,
-- sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
-+ sgr=\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7%;m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
- lines#24, use=att630,
-@@ -11391,7 +11696,7 @@
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
- rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
- rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
-- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-+ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
- sgr0=\E[m,
- smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
- smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-@@ -11401,13 +11706,13 @@
- blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
- rs1=\E[H\E[7m\E[J$<156>,
-- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
-+ sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%t7;%;%?%p7%t8;%;m\016,
- sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
- # Ambassador with the DEC option, for partial vt100 compatibility.
- aaa+dec|ann arbor ambassador in dec vt100 mode,
- acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
- csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
-- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
-+ sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
- smacs=^O,
- aaa-18|ann arbor ambassador/18 lines,
- lines#18,
-@@ -11574,7 +11879,7 @@
- blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
- rs1=\E[H\E[7m\E[J,
-- sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
-+ sgr=\E[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t7;%;%?%p7%t8;%;m,
- sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
-
- #### Applied Digital Data Systems (adds)
-@@ -12416,7 +12721,7 @@
- # and mc5= should use the \E[?4i and \E[?5i strings instead).
-
- hds200|Human Designed Systems HDS200,
-- am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
-+ am, bw, eslok, hs, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, lm#0,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
-@@ -12445,13 +12750,12 @@
- kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
- kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
- kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
-- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
-- rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
-- rmul=\E[m\017, sc=\E7,
-+ nel=\E[E, rc=\E8, rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l,
-+ rmso=\E[m\017, rmul=\E[m\017, sc=\E7,
- sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
- smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
-- vpa=\E[%i%p1%dd,
-+ vpa=\E[%i%p1%dd, use=ansi+pp,
-
- # <ht> through <el> included to specify padding needed in raw mode.
- # (avt-ns: added empty <acsc> to suppress a tic warning --esr)
-@@ -12478,10 +12782,11 @@
- ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
- rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
- sc=\E7,
-- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-- sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
-- smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
-- tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-+ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e\016%;$<1>,
-+ sgr0=\E[m\016$<1>, smacs=\017$<1>,
-+ smcup=\E[=4l\E[1;24w\E2\r, smir=\E[4h,
-+ smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-+ vpa=\E[%p1%{1}%+%dd,
- avt-rv-ns|concept avt in reverse video mode/no status line,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
- use=avt-ns,
-@@ -12763,7 +13068,6 @@
- # backspace on all terminals. This is not so in DG mode.
- # (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
- # grounds that there is no matching ":ml:"
--# fixed garbled ":k9=\E[00\:z:" capability -- esr)
- dg460-ansi|Data General Dasher 460 in ANSI-mode,
- OTbs, am, msgr, ul,
- cols#80, it#8, lines#24,
-@@ -12774,10 +13078,12 @@
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
- kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
-- kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
-- lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
-- ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
-- smul=\E[4m,
-+ kf8=\E[009z, kf9=\E[00\:z, khome=\E[H, lf0=f1, lf1=f2,
-+ lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
-+ mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05,
-+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m,
-+ sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR,
-+ u7=\E[6n, u8=\E[5n, u9=\E[0n,
- # From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
- # Data General 605x
- # Ought to work for a Model 6242, Type D210 as well as a 605x.
-@@ -12824,7 +13130,7 @@
- cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
- ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
-- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
-+ sgr=\E[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|%p6%|%t7;%;m,
- sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
-
- # DASHER D210 series terminals in DG mode.
-@@ -13026,7 +13332,7 @@
- is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
- ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
- rs2=\E[4;0;2;1;1;1v\E(B\E)4,
-- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
-+ sgr=\E[%?%p1%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5%|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;,
- sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
-
- # Initialization string 2 sets:
-@@ -13196,12 +13502,12 @@
- #
- d470c|d470|Data General DASHER D470C,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
-+ sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m\E)%?%p9%t6\016%e4\017%;,
- use=dg+color, use=d460,
-
- d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
-- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;,
-+ sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m%?%p9%t\016%e\017%;,
- use=dg+color, use=d460-7b,
-
- # Initialization string 2 sets:
-@@ -13757,7 +14063,7 @@
- sb2|sb3|fixed superbee,
- xsb@, use=superbee,
-
--#### Beehive Medical Electronics
-+#### Beehive Medical Electronics
- #
- # Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
- # Regarding your question though; Beehive terminals weren't made by Harris.
-@@ -14224,6 +14530,8 @@
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g,
-+# "Megapel" refers to the display adapter, which was used with the IBM RT
-+# aka IBM 6150.
- ibm5081|hft|IBM Megapel Color display,
- acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
- s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
-@@ -14578,7 +14886,7 @@
- is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
- rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
- rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
-- sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
-+ sgr=\E[%'0'%?%p1%t%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?%p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ,
- sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
- icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
- rs2=\Eo1, use=icl6404,
-@@ -14895,7 +15203,7 @@
- # (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
- #
- prism9|p9|P9|MDC Prism-9 in ANSII mode,
-- am, bw, hs, mc5i, msgr, xenl, xon,
-+ am, bw, hs, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#72,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
- clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
-@@ -14911,14 +15219,15 @@
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-- khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
-- prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
-- ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
-+ khome=\E[H, nel=^M^J, prot=\E[32%{, rc=\E[%z,
-+ rep=\E[%p2%db%p1%c, rev=\E[7m, ri=\E[L, rmir=\E[4l,
-+ rmso=\E[27m, rmul=\E[24m,
- rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
- sc=\E[%y,
-- sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
-+ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?%p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
- sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
-+ use=ansi+pp,
-
- # p9-w: Prism-9 in 132 column mode
- # --------------------------------
-@@ -15282,7 +15591,7 @@
- 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>,
-+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
-@@ -15339,7 +15648,7 @@
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
-- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
-+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-@@ -15395,7 +15704,7 @@
- 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>,
-+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-@@ -15785,7 +16094,7 @@
- # Manufactured in the early/mid eighties, behaves almost the same as a
- # Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
- # keep the same keyboard layout), add an optional 25-line mode, replace the DIP
--# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
-+# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
- # 2), here is the NDR 9500. Even the line-lock, albeit disabled, is
- # recognized: if you type in "ESC !", the next (third) character is not
- # echoed, showing that the terminal was actually waiting for a parameter!
-@@ -15809,7 +16118,7 @@
- pfloc=\E|%{48}%p1%+%c2%p2\031,
- pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
- rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
-- sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
-+ sgr=\EG0\E%%%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
- sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
- tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
-
-@@ -16279,7 +16588,7 @@
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
- rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
-- sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
-+ sgr=\E%%!1\E[%?%p1%t;7;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t<0%;%?%p6%t;1%;m$<2>\E%%!0,
- sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
- smul=\E%!1\E[4m$<2>\E%!0,
- # Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
-@@ -16466,9 +16775,10 @@
- clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-- dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
-- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
-- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
-+ dch1=\E[1P, dim=\E[=1;<6m, dl=\E[%p1%dM, dl1=\E[1M,
-+ ech=\E%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
-+ home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L,
-+ ind=\ED,
- initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
- invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
-@@ -16639,7 +16949,7 @@
- kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
- ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
- rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
-- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
-+ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t30;40%;m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
- #### Apple II
-@@ -16885,6 +17195,8 @@
- #
- # echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
- #
-+# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
-+#
- # For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
- #
- # For Apple_Terminal v71+/v100+, use "nsterm-bce".
-@@ -17101,6 +17413,7 @@
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, use=nsterm+7,
-
-+# compare with xterm+sl-twm
- nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
- hs,
- wsl#50,
-@@ -17186,6 +17499,10 @@
- # and it is still not settable from the preferences dialog. This is
- # tracked under rdar://problem/7365108 and rdar://problem/7365134
- # in Apple's bug reporter.
-+#
-+# In OS X 10.7 (Leopard) the TERM which can be set in the preferences dialog
-+# defaults to xterm-color. Alternative selections are ansi, dtterm, rxvt,
-+# vt52, vt100, vt102 and xterm.
- nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
- bw@, mir, npc,
- civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
-@@ -17197,10 +17514,10 @@
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
- knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
-- use=nsterm-c-s-acs,
-+ kLFT5=\E[5D, kRIT5=\E[5C, use=nsterm-c-s-acs,
-
- # The versions of Terminal.app in Mac OS X version 10.3.x seem to have
--# the background color erase bug. The newer version 240.2 in Mac OS X
-+# the background color erase feature. The newer version 240.2 in Mac OS X
- # version 10.5 does not.
- #
- # This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
-@@ -17212,12 +17529,40 @@
- # defaults write com.apple.Terminal TermCapString nsterm-bce
- #
- # and that it is not set in Terminal's preferences dialog.
-+#
-+# Modified for OS X 10.8, omitting bw based on testing with tack -TD
-+#
-+# Notes:
-+# * The terminal description matches the default settings.
-+# * The keyboard is configurable via a dialog.
-+# * By default khome, kend, knext and kprev are honored only with a
-+# shift-modifier.
-+# * There are bindings for control left/right arrow (but not up/down).
-+# Added those to nsterm-16color, which is the version used for OS X 10.6
-+# * "Allow VT100 application keypage mode" is by default disabled.
-+# There is no way to press keypad-comma unless application mode is enabled
-+# and used.
-+# * 132-column mode stopped working during vttest's tests. Consider it broken.
-+# * CHT, REP, SU, SD are buggy.
-+# * ECH works (also in Leopard), but is not used here for compatibility.
-+# * The terminal preferences dialog replaces xterm-color by xterm-16color and
-+# xterm-256color. However, it adds "nsterm", so it is possible to use the
-+# nsterm entry from this file to override the MacPorts (20110404) or
-+# system (20081102) copy of this file.
- nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
-- bce, bw, use=nsterm-16color,
-+ bce, use=nsterm-16color,
-+
-+# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
-+# TERM_PROGRAM_VERSION=309
-+# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
-+# TERM_PROGRAM_VERSION=303
-+nsterm-256color|Terminal.app in OS X 10.8,
-+ ccc@,
-+ initc@, use=xterm+256color, use=nsterm-bce,
-
- # This is an alias which should always point to the "current" version
- nsterm|Apple_Terminal|AppKit Terminal.app,
-- use=nsterm-16color,
-+ use=nsterm-256color,
-
- # iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
- # more featureful) terminal emulator for Mac OS X. It is similar
-@@ -17752,6 +18097,23 @@
- # See
- # http://www.minix3.org/manpages/man4/console.4.html
- minix|minix console (v3),
-+ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
-+ kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
-+ kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~,
-+ kf14=\E[14;2~, kf15=\E[15;2~, kf16=\E[17;2~,
-+ kf17=\E[18;2~, kf18=\E[19;2~, kf19=\E[20;2~, kf2=\E[12~,
-+ kf20=\E[21;2~, kf21=\E[11;5~, kf22=\E[12;5~,
-+ kf23=\E[13;5~, kf24=\E[14;5~, kf25=\E[15;5~,
-+ kf26=\E[17;5~, kf27=\E[18;5~, kf28=\E[19;5~,
-+ kf29=\E[20;5~, kf3=\E[13~, kf30=\E[21;5~, kf31=\E[11;6~,
-+ kf32=\E[12;6~, kf33=\E[13;6~, kf34=\E[14;6~,
-+ kf35=\E[15;6~, kf36=\E[17;6~, kf37=\E[18;6~,
-+ kf38=\E[19;6~, kf39=\E[20;6~, kf4=\E[14~, kf40=\E[21;6~,
-+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-+ kich1=\E[@, knp=\E[U, kpp=\E[V, lf0@, lf1@, lf2@, lf3@, lf4@, lf5@,
-+ use=minix-3.0,
-+
-+minix-3.0|minix console (v3.0),
- use=ecma+color, use=minix-1.7,
-
- # See
-@@ -17792,7 +18154,7 @@
- am, use=minix-old,
-
- pc-minix|minix console on an Intel box,
-- use=klone+acs, use=minix,
-+ use=klone+acs, use=minix-3.0,
-
- # According to the Coherent 2.3 manual, the PC console is similar
- # to a z19. The differences seem to be (1) 25 lines, (2) no status
-@@ -18195,6 +18557,7 @@
- use=tws-generic,
- dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
- blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
-+ sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
-
- #=========================================================#
-@@ -18274,7 +18637,7 @@
-
- # This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
- bq300|Bull vt320 ISO Latin 1 80 columns terminal,
-- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
-+ am, eo, eslok, hs, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
-@@ -18298,14 +18661,14 @@
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
-- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
-- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
-- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
-- rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
-+ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
-+ rmcup=\E[?7h, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
-+ rmul=\E[24m, rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0,
-+ sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
- smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
-- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
-+ smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~, use=ansi+pp,
- bq300-rv|Bull vt320 reverse 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
-@@ -18383,12 +18746,12 @@
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D,
- cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
-- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
-+ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
- el=\233K, el1=\2331K, enacs=\E(B\E)0,
- flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
-- ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED,
-- is1=\E[63;2"p\E[2h,
-+ ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, il1=\233L,
-+ ind=\ED, is1=\E[63;2"p\E[2h,
- is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
- ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
-@@ -18401,11 +18764,12 @@
- khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
- krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
- lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
-- rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
-- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
-- rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
-+ rev=\2337m, ri=\EM, rmacs=\E(B, rmam=\233?7l,
-+ rmcup=\233?7h, rmir=\2334l, rmkx=\233?1l\E>,
-+ rmso=\23327m, rmul=\23324m, rs1=\E[!p, rs2=\E[?3l,
-+ s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
-- sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
-+ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
- smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
- smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
- bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
-@@ -19010,14 +19374,14 @@
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
-- dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
-- ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL,
-- ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
-- kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
-- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
-- kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
-- nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
-- rmso=\E[m, rmul=\E[m,
-+ dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
-+ home=\E[H, ht=^I, hts=\EH, if=/usr/share/tabset/vt100,
-+ il=\E[%p1%dL, il1=\E[L, ind=\ED, kbs=^H, kclr=\E[J,
-+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ked=\E[J,
-+ kf0=\E[~, kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW,
-+ kf6=\EOP, kf7=\EOQ, kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help,
-+ mc0=\E#7, nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM,
-+ rmcup=\E[?7h, rmso=\E[m, rmul=\E[m,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
- sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
-@@ -20217,9 +20581,9 @@
- sgr0=\EX, smacs=\EF, smso=\ET,
- env230|envision230|envision 230 graphics terminal,
- xenl@,
-- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-- sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-- use=vt100,
-+ enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@,
-+ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
-+ sgr0=\E[0m$<2>, smacs@, use=vt100,
- # These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
- # coupler attached, the whole rig fitting in a suitcase and more or less
- # portable. Hot stuff for c.1977 :-) -- esr
-@@ -20274,7 +20638,7 @@
- rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
- rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
- rs3=\EwG\Ee($<150>,
-- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
-+ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
- smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
- smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
-@@ -20881,7 +21245,7 @@
- # assigned in System V terminfo. There are some variant extension sets out
- # there. We try to describe them here.
- #
--# XENIX extensions:
-+#### XENIX extensions:
- #
- # The XENIX extensions include a set of function-key capabilities as follows:
- #
-@@ -20946,7 +21310,7 @@
- # When translating a termcap file, ncurses tic will do this automatically.
- # The double forms characters don't fit the SVr4 terminfo model.
- #
--# AT&T Extensions:
-+#### AT&T Extensions:
- #
- # The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
- # nonstandard capabilities. Its signature is the KM capability, used to name
-@@ -20957,7 +21321,7 @@
- # FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
- # cursor invisible), and CV=:ve: (make cursor normal).
- #
--# HP Extensions
-+#### HP Extensions
- #
- # The HP library (as of mid-1995, their term.h file version 70.1) appears to
- # have the System V capabilities up to SVr1 level. After that, it supports
-@@ -20966,7 +21330,7 @@
- # label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the
- # HP binary format incompatible with SVr4's.
- #
--# IBM Extensions
-+#### IBM Extensions
- #
- # There is a set of nonstandard terminfos used by IBM's AIX operating system.
- # The AIX terminfo library diverged from SVr1 terminfo, and replaces all
-@@ -20994,7 +21358,7 @@
- # The box2 characters are the double-line versions of these forms graphics.
- # The AIX binary terminfo format is incompatible with SVr4's.
- #
--# Iris console extensions:
-+#### Iris console extensions:
- #
- # HS is half-intensity start; HE is half-intensity end
- # CT is color terminal type (for Curses & rogue)
-@@ -21003,7 +21367,7 @@
- #
- # The ncurses tic utility recognizes HS as an alias for mh <dim>.
- #
--# TC Extensions:
-+#### TC Extensions:
- #
- # There is a set of extended termcaps associated with something
- # called the "Terminal Control" or TC package created by MainStream Systems,
-@@ -21011,11 +21375,110 @@
- # CF for civis and CO for cvvis. Finally, they define a boolean :ct:
- # that flags color terminals.
- #
-+######## NCURSES USER-DEFINABLE CAPABILITIES
-+#
-+# Extensions added after ncurses 5.0 generally use the "-x" option of tic and
-+# infocmp to manipulate user-definable capabilities. Those that are intended
-+# for use in either terminfo or termcap use 2-character names. Extended
-+# function keys do not use 2-character names, and are available only with
-+# terminfo.
-+#
-+# As of mid-2012, no other terminfo/termcap implementation than ncurses
-+# supports this extension; termcap libraries can as noted above make limited
-+# use of the feature.
-+#
-+# ncurses makes explicit checks for a few user-definable capabilities: AX, U8,
-+# XM.
-+#
-+#### SCREEN Extensions:
-+#
-+# The screen program uses the termcap interface. It recognizes a few useful
-+# nonstandard capabilities. Those are used in this file.
-+#
-+# AX (bool) Does understand ANSI set default fg/bg color (\E[39m /
-+# \E[49m).
-+# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
-+# E0 (str) Switch charset 'G0' back to standard charset.
-+# S0 (str) Switch charset 'G0' to the specified charset.
-+# XT (bool) Terminal understands special xterm sequences (OSC, mouse
-+# tracking).
-+#
-+# AX is relatively straightforward; it is interpreted by ncurses to say that
-+# SGR 39/49 reset the terminal's foreground and background colors to their
-+# "default".
-+#
-+# XT is harder, since screen's manpage does not give more details. For that,
-+# we must read screen's source-code. When XT is set, screen assumes
-+#
-+# a) OSC 1 sets the title string, e.g., for the icon. Recent versions of
-+# screen may also set the terminal's name, which is (for xterm) distinct
-+# from the icon name.
-+# b) OSC 20 sets the background pixmap. This is an rxvt feature.
-+# c) OSC 39 and OSC 49 set the default foreground/background colors. Again
-+# this is an rxvt feature.
-+# d) certain mode settings enable the mouse: 9, 1000, 1001, 1002, 1003.
-+# These are from xterm, although xterm accepts mouse codes that may not be
-+# recognized by screen, e.g., 1005, 1006.
-+# e) colors beyond 0..7 are implemented by xterm's aixterm-like 16-color
-+# sequence. However, because screen uses only termcap, the values returned
-+# by Af/Ab are not usable because they rely on expressions that termcap
-+# does not support. Therefore, screen uses a hardcoded string to work
-+# around the limitation.
-+# f) all entries named "*xterm*" or "*rxvt*" have the bce flag set.
-+#
-+# The other ISO-2022 features are rarely used, but provided here to make
-+# screen's termcap features available.
-+#
-+#### XTERM Extensions:
-+#
-+# Most of the xterm extensions are for function-keys. Since patch #94 (in
-+# 1999), xterm has supported shift/control/alt/meta modifiers which produce
-+# additional function-key strings. Some other developers copied the feature,
-+# though they did not follow xterm's lead in patch #167 (in 2002), to make
-+# these key definitions less ambiguous.
-+#
-+# A few terminals provide similar functionality (sending distinct keys when
-+# a modifier is used), including rxvt.
-+#
-+# These are the extended keys defined in this file:
-+#
-+# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
-+# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
-+# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
-+# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
-+#
-+# Here are the other xterm-related extensions which are used in this file:
-+#
-+# Cr is a string capability which resets the cursor color
-+# Cs is a string capability which sets the cursor color to a given value.
-+# The single string parameter is the color name/number, according to the
-+# implementation.
-+# Ms modifies the selection/clipboard. Its parameters are
-+# p1 = the storage unit (clipboard, selection or cut buffer)
-+# p2 = the base64-encoded clipboard content.
-+# Se resets the cursor style to the terminal power-on default.
-+# Ss is a string capability with one numeric parameter. It is used to set the
-+# cursor style as described by the DECSCUSR function to a block or
-+# underline.
-+# XM is a string capability which overrides ncurses's built-in string which
-+# enables xterm mouse mode.
-+#
-+#### Miscellaneous extensions:
-+#
-+# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
-+# This was implemented for the Hurd.
-+# E3 clears the terminal's scrollback buffer. This was implemented in the
-+# Linux 3.0 kernel as a security feature. It matches a feature which was
-+# added in xterm patch #107.
-+# U8 is a numeric capability which denotes a terminal emulator which does not
-+# support VT100 SI/SO when processing UTF-8 encoding. Set this to a nonzero
-+# value to enable it.
-+#
- ######## CHANGE HISTORY
- #
- # The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
--# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
--# project.
-+# Releases 9 and 10 (up until the release of ncurses 4.2 in 1998) were
-+# maintained by Eric S. Raymond as part of the ncurses project.
- #
- # This file contains all the capability information present in John Kunze's
- # last version of the termcap master file, except as noted in the change
-@@ -21115,7 +21578,7 @@
- # * Replaced HP entries up to hpsub with purpose-built ones.
- # * Blank rmir/smir/rmdc/smdc capabilities removed.
- # * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
--# 9.4.8 (Fri Apr 7 09:36:34 EDT 199):
-+# 9.4.8 (Fri Apr 7 09:36:34 EDT 1995):
- # * Replaced the Ann Arbor entries with SCO's, the init strings are
- # more efficient (but the entries otherwise identical).
- # * Added dg211 from Shuford archive.
-@@ -22224,7 +22687,7 @@
- # * add screen.rxvt -TD
- #
- # 2008-04-28
--# * add screen+fkeys (prompted by Debian # 478094) -TD
-+# * add screen+fkeys (prompted by Debian #478094) -TD
- #
- # 2008-06-28
- # * add screen.mlterm -TD
-@@ -22280,7 +22743,7 @@
- # 2009-12-12
- # * updated nsterm* entries (Benjamin Sittler, Emanuele Giaquinta)
- #
--# 2009-12-12
-+# 2009-12-19
- # * add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler)
- # * rename minix to minix-1.7, add minix entry for Minux3 -TD
- #
-@@ -22354,6 +22817,162 @@
- # * add xterm-utf8 as a demo of the U8 feature -TD
- #
- # 2011-02-20
--# * add cons25-debian entry (Brian M Carlson, Debina #607662).
-+# * add cons25-debian entry (Brian M Carlson, Debian #607662).
-+#
-+# 2011-06-11
-+# * update minix entry to minix 3.2 (Thomas Cort).
-+#
-+# 2011-07-09
-+# * fix inconsistent tabset path in pcmw (Todd C. Miller).
-+# * remove a backslash which continued comment, obscuring altos3
-+# definition with OpenBSD toolset (Nicholas Marriott).
-+#
-+# 2011-07-16
-+# * add/use xterm+tmux chunk from xterm #271 -TD
-+# * resync xterm-new entry from xterm #271 -TD
-+# * add E3 extended capability to linux-basic (Miroslav Lichvar)
-+# * add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD
-+# * add SI/SO change to linux2.6 entry (Debian #515609) -TD
-+#
-+# 2011-07-21
-+# * add kich1 to sun (Yuri Pankov)
-+# * use bold rather than reverse for smso in sun-color (Yuri Pankov).
-+#
-+# 2011-08-06
-+# * corrected k9 in dg460-ansi, add other features based on manuals -TD
-+#
-+# 2011-08-20
-+# * minor cleanup of X-terminal emulator section -TD
-+# * add terminator entry -TD
-+# * add simpleterm entry -TD
-+#
-+# 2011-09-10
-+# * add xterm+kbs fragment from xterm #272 -TD
-+#
-+# 2011-11-12
-+# * add pccon entries for OpenBSD console (Alexei Malinin)
-+#
-+# 2011-12-17
-+# * corrected old changelog comments -TD
-+#
-+# 2011-11-24
-+# * add putty-sco -TD
-+#
-+# 2012-01-28
-+# * add mach-gnu (Samuel Thibault)
-+# * add mach-gnu-color, tweaks to mach-gnu -TD
-+# * make sgr for sun-color agree with smso -TD
-+# * make sgr for prism9 agree with other caps -TD
-+# * make sgr for icl6404 agree with other caps -TD
-+# * make sgr for ofcons agree with other caps -TD
-+# * make sgr for att5410v1, att4415, att620 agree with other caps -TD
-+# * make sgr for aaa-unk, aaa-rv agree with other caps -TD
-+# * make sgr for avt-ns agree with other caps -TD
-+#
-+# 2012-02-11
-+# * make sgr for xterm-pcolor agree with other caps -TD
-+# * make sgr for att5425 agree with other caps -TD
-+# * make sgr for att630 agree with other caps -TD
-+# * make sgr for linux entries agree with other caps -TD
-+# * make sgr for tvi9065 agree with other caps -TD
-+# * make sgr for ncr260vt200an agree with other caps -TD
-+# * make sgr for ncr160vt100pp agree with other caps -TD
-+# * make sgr for ncr260vt300an agree with other caps -TD
-+# * make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD
-+# * make sgr for cygwin, cygwinDBG agree with other caps -TD
-+#
-+# 2012-03-31
-+# * correct order of use-clauses in st-256color -TD
-+#
-+# 2012-04-01
-+# * revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD
-+#
-+# 2012-04-14
-+# * document all of the user-defined capabilities in one place -TD
-+# * add XT to some places to improve usefulness for other applications
-+# than screen, which would like to pretend that xterm's title is
-+# a status-line. -TD
-+# * change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review
-+# of ordering and overrides -TD
-+#
-+# 2012-04-21
-+# * add msgr to vt420, similar DEC vtXXX entries -TD
-+# * add several missing vt420 capabilities from vt220 -TD
-+# * factor out ansi+pp from several entries -TD
-+# * change xterm+sl and xterm+sl-twm to include only the status-line
-+# capabilities and not "use=xterm", making them more generally useful
-+# as building-blocks -TD
-+# * add dec+sl building block, as example -TD
-+#
-+# 2012-04-28
-+# * fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
-+# * add eslok flag to dec+sl -TD
-+# * dec+sl applies to vt320 and up -TD
-+# * drop wsl width from xterm+sl -TD
-+# * reuse xterm+sl in putty and nsca-m -TD
-+# * add ansi+tabs to vt520 -TD
-+# * add ansi+enq to vt220-vt520 -TD
-+#
-+# 2012-05-05
-+# * remove p6 (bold) from opus3n1+ for consistency -TD
-+# * remove acs stuff from env230 per clues in Ingres termcap -TD
-+# * modify env230 sgr/sgr0 to match other capabilities -TD
-+# * modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD
-+# * make sgr for dku7202 agree with other caps -TD
-+# * make sgr for ibmpc agree with other caps -TD
-+# * make sgr for tek4107 agree with other caps -TD
-+# * make sgr for ndr9500 agree with other caps -TD
-+# * make sgr for sco-ansi agree with other caps -TD
-+# * make sgr for d410 agree with other caps -TD
-+# * make sgr for d210 agree with other caps -TD
-+# * make sgr for d470c, d470c-7b agree with other caps -TD
-+#
-+# 2012-05-12
-+# * rewrite vt520 entry based on vt420 -TD
-+# * corrected 'op' for bterm (report by Samuel Thibault) -TD
-+#
-+# 2012-06-02
-+# * add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord,
-+# analysis by Martin Husemann).
-+# * add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by
-+# Onno van der Linden).
-+# * add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD
-+# * add kdch1, etc., to qvt108 -TD
-+# * add dl1/il1 to some entries based on dl/il values -TD
-+# * add dl to simpleterm -TD
-+#
-+# 2012-06-10
-+# * modify some older xterm entries to align with xterm source -TD
-+# * separate "xterm-old" alias from "xterm-r6" -TD
-+#
-+# 2012-07-28
-+# * add E3 to xterm-basic and putty -TD
-+#
-+# 2012-08-11
-+# * add nsterm-256color, make this the default nsterm -TD
-+# * remove bw from nsterm-bce, per testing with tack -TD
-+#
-+# 2012-10-12
-+# * add vte-2012, gnome-2012, making these the defaults for vte/gnome
-+# (patch by Christian Persch).
-+#
-+# 2012-11-02
-+# * reviewed vte-2012, reverted most of the change since it was incorrect
-+# based on testing with tack -TD
-+# * un-cancel the initc in vte-256color, since this was implemented
-+# starting with version 0.20 in 2009 -TD
-+#
-+# 2013-03-16
-+# * correct typo in sgr string for sun-color,
-+# add bold for consistency with sgr,
-+# change smso for consistency with sgr -TD
-+# * correct typo in sgr string for terminator -TD
-+# * add blink to the attributes masked by ncv in linux-16color (report
-+# by Benjamin Sittler)
-+#
-+# 2013-03-23
-+# * change initialization for vt220, similar entries for consistency
-+# with cursor-key strings (NetBSD #47674) -TD
-+# * further improvements to linux-16color (Benjamin Sittler)
- #
- ######## SHANTIH! SHANTIH! SHANTIH!
-Index: mk-0th.awk
-Prereq: 1.18
---- ncurses-5.9/mk-0th.awk 2010-01-09 21:45:41.000000000 +0000
-+++ ncurses-5.9-20130504/mk-0th.awk 2012-06-30 20:56:11.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: mk-0th.awk,v 1.18 2010/01/09 21:45:41 tom Exp $
-+# $Id: mk-0th.awk,v 1.22 2012/06/30 20:56:11 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -34,14 +34,62 @@
- # Variables:
- # libname (library name, e.g., "ncurses", "panel", "forms", "menus")
- # subsets (is used here to decide if wide-character code is used)
-+# ticlib (library name for libtic, e.g., "tic")
-+# termlib (library name for libtinfo, e.g., "tinfo")
- #
-+function make_lintlib(name,sources) {
-+ print ""
-+ print "clean ::"
-+ printf "\trm -f llib-l%s.*\n", name
-+ print ""
-+ print "realclean ::"
-+ printf "\trm -f llib-l%s\n", name
-+ print ""
-+ printf "llib-l%s : %s\n", name, sources
-+ printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) %s >$@\n", sources
-+ print ""
-+ print "lintlib ::"
-+ printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)\n", name
-+ print ""
-+ print "lint ::"
-+ printf "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) %s $(LINT_LIBS)\n", sources
-+}
-+
-+# A blank in "subsets" indicates a split-off of the library into a separate
-+# file, e.g., for libtic or libtinfo. They are all logical parts of the same
-+# library.
-+function which_library() {
-+ if ( ( which == "ticlib" ) && ( subsets ~ /ticlib / ) ) {
-+ return ticlib;
-+ } else if ( ( which == "termlib" || which == "ext_tinfo" ) && ( subsets ~ /[[:space:]]base/ ) ) {
-+ return termlib;
-+ } else {
-+ return libname;
-+ }
-+}
-+
-+function show_list(name, len, list) {
-+ if ( len > 0 ) {
-+ printf "\n%s_SRC =", toupper(name);
-+ for (n = 0; n < len; ++n)
-+ printf " \\\n\t%s", list[n];
-+ print "";
-+ make_lintlib(name, sprintf("$(%s_SRC)", toupper(name)));
-+ }
-+}
-+
- BEGIN {
- which = libname;
- using = 0;
- found = 0;
-+ count_ticlib = 0;
-+ count_termlib = 0;
-+ count_library = 0;
- }
- /^@/ {
- which = $0;
-+ sub(/^@[[:blank:]]+/, "", which);
-+ sub(/[[:blank:]]+$/, "", which);
- }
- !/^[@#]/ {
- if (using == 0)
-@@ -50,6 +98,10 @@
- print "# generated by mk-0th.awk"
- printf "# libname: %s\n", libname
- printf "# subsets: %s\n", subsets
-+ if ( libname ~ /ncurses/ ) {
-+ printf "# ticlib: %s\n", ticlib
-+ printf "# termlib: %s\n", termlib
-+ }
- print ""
- print ".SUFFIXES: .c .cc .h .i .ii"
- print ".c.i :"
-@@ -80,9 +132,18 @@
- found = 2
- }
- if ( libname == "c++" || libname == "c++w" ) {
-- printf " \\\n\t%s/%s.cc", $3, $1
-+ srcname = sprintf("%s/%s.cc", $3, $1);
-+ printf " \\\n\t%s", srcname;
- } else if ( widechar == 1 || $3 != "$(wide)" ) {
-- printf " \\\n\t%s/%s.c", $3, $1
-+ srcname = sprintf("%s/%s.c", $3, $1);
-+ printf " \\\n\t%s", srcname;
-+ if ( which_library() == libname ) {
-+ list_library[count_library++] = srcname;
-+ } else if ( which_library() == ticlib ) {
-+ list_ticlib[count_ticlib++] = srcname;
-+ } else {
-+ list_termlib[count_termlib++] = srcname;
-+ }
- }
- }
- }
-@@ -91,22 +152,11 @@
- if ( found == 1 )
- {
- print ""
-- printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname
-- print "# it in the lintlib rule. We'll only remove in the cleanest setup."
-- print "clean ::"
-- printf "\trm -f llib-l%s.*\n", libname
-- print ""
-- print "realclean ::"
-- printf "\trm -f llib-l%s\n", libname
-- print ""
-- printf "llib-l%s : $(C_SRC)\n", libname
-- printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
-- print ""
-- print "lintlib :"
-- printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname
-- print ""
-- print "lint :"
-- print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
-+ printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname;
-+ print "# it in the lintlib rule. We'll only remove in the cleanest setup.";
-+ show_list(libname, count_library, list_library);
-+ show_list(ticlib, count_ticlib, list_ticlib);
-+ show_list(termlib, count_termlib, list_termlib);
- }
- else
- {
-@@ -115,3 +165,4 @@
- print "\t@echo no action needed"
- }
- }
-+# vile:ts=4 sw=4
-Index: mk-1st.awk
-Prereq: 1.85
---- ncurses-5.9/mk-1st.awk 2010-08-07 20:42:30.000000000 +0000
-+++ ncurses-5.9-20130504/mk-1st.awk 2013-03-12 11:09:40.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: mk-1st.awk,v 1.85 2010/08/07 20:42:30 Gabriele.Balducci Exp $
-+# $Id: mk-1st.awk,v 1.95 2013/03/12 11:09:40 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -34,10 +34,12 @@
- # name (library name, e.g., "ncurses", "panel", "forms", "menus")
- # traces ("all" or "DEBUG", to control whether tracing is compiled in)
- # MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
-+# CXX_MODEL (e.g., "DEBUG", uppercase)
- # model (directory into which we compile, e.g., "obj")
- # prefix (e.g., "lib", for Unix-style libraries)
- # suffix (e.g., "_g.a", for debug libraries)
- # subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
-+# driver ("yes" or "no", depends on --enable-term-driver)
- # ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
- # ShlibVerInfix ("yes" or "no", determines location of version #)
- # SymLink ("ln -s", etc)
-@@ -69,7 +71,7 @@
- }
- # see imp_name
- function imp_name_of(a_name) {
-- if (ShlibVerInfix == "cygdll") {
-+ if (ShlibVerInfix == "cygdll" || ShlibVerInfix == "mingw") {
- result = sprintf("%s%s%s.a", prefix, a_name, suffix);
- } else {
- result = "";
-@@ -80,6 +82,8 @@
- function abi_name_of(a_name) {
- if (ShlibVerInfix == "cygdll") {
- result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
-+ } else if (ShlibVerInfix == "mingw") {
-+ result = sprintf("%s%s$(ABI_VERSION)%s", prefix, a_name, suffix);
- } else if (ShlibVerInfix == "yes") {
- result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
- } else {
-@@ -91,6 +95,8 @@
- function rel_name_of(a_name) {
- if (ShlibVerInfix == "cygdll") {
- result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
-+ } else if (ShlibVerInfix == "mingw") {
-+ result = sprintf("%s%s$(REL_VERSION)%s", prefix, a_name, suffix);
- } else if (ShlibVerInfix == "yes") {
- result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
- } else {
-@@ -107,7 +113,7 @@
- } else {
- if ( ShlibVer == "rel" ) {
- result = rel_name_of(a_name);
-- } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
-+ } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" || ShlibVer == "mingw" ) {
- result = abi_name_of(a_name);
- } else {
- result = lib_name_of(a_name);
-@@ -124,23 +130,38 @@
- }
- }
- function rmlink(directory, dst) {
-- printf "\t-rm -f %s/%s\n", directory, dst
-+ if ( dst != "" ) {
-+ printf "\t-rm -f %s/%s\n", directory, dst
-+ }
- }
- function removelinks(directory) {
-- rmlink(directory, end_name);
-+ nlinks = 0;
-+ links[nlinks++] = end_name;
- if ( DoLinks == "reverse" ) {
- if ( ShlibVer == "rel" ) {
-- rmlink(directory, abi_name);
-- rmlink(directory, rel_name);
-+ links[nlinks++] = abi_name;
-+ links[nlinks++] = rel_name;
- } else if ( ShlibVer == "abi" ) {
-- rmlink(directory, abi_name);
-+ links[nlinks++] = abi_name;
- }
- } else {
- if ( ShlibVer == "rel" ) {
-- rmlink(directory, abi_name);
-- rmlink(directory, lib_name);
-+ links[nlinks++] = abi_name;
-+ links[nlinks++] = lib_name;
- } else if ( ShlibVer == "abi" ) {
-- rmlink(directory, lib_name);
-+ links[nlinks++] = lib_name;
-+ }
-+ }
-+ for (j = 0; j < nlinks; ++j) {
-+ found = 0;
-+ for (k = 0; k < j; ++k ) {
-+ if ( links[j] == links[k] ) {
-+ found = 1;
-+ break;
-+ }
-+ }
-+ if ( !found ) {
-+ rmlink(directory, links[j]);
- }
- }
- }
-@@ -148,7 +169,7 @@
- printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(%s) $(LDFLAGS)\n", objs, shlib_list
- }
- function sharedlinks(directory) {
-- if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) {
-+ if ( ShlibVer != "auto" && ShlibVer != "cygdll" && ShlibVer != "mingw" ) {
- printf "\tcd %s && (", directory
- if ( DoLinks == "reverse" ) {
- if ( ShlibVer == "rel" ) {
-@@ -181,6 +202,11 @@
- dst_libs = sprintf("%s/%s", directory, end_name);
- printf "%s : \\\n", dst_libs
- printf "\t\t%s \\\n", directory
-+ if (subset == "ticlib" && driver == "yes" ) {
-+ base = name;
-+ sub(/^tic/, "ncurses", base); # workaround for "w"
-+ printf "\t\t%s/%s \\\n", directory, end_name_of(base);
-+ }
- if (subset ~ /^base/ || subset == "ticlib" ) {
- save_suffix = suffix
- sub(/^[^.]\./,".",suffix)
-@@ -223,8 +249,9 @@
- printf "\t%s %s %s\n", program, src_name, dst_name
- }
- BEGIN {
-- found = 0
-- using = 0
-+ TOOL_PREFIX = "";
-+ found = 0;
-+ using = 0;
- }
- /^@/ {
- using = 0
-@@ -233,15 +260,26 @@
- } else if (index(subset,$2) > 0) {
- if (using == 0) {
- if (found == 0) {
-+ if ( name ~ /^.*\+\+.*/ ) {
-+ if ( CXX_MODEL == "NORMAL" && MODEL == "SHARED" ) {
-+ print ""
-+ printf "# overriding model from %s to match CXX_MODEL\n", MODEL;
-+ MODEL = "NORMAL";
-+ suffix = ".a";
-+ DoLinks = "no";
-+ }
-+ }
- print ""
- printf "# generated by mk-1st.awk (subset=%s)\n", subset
- printf "# name: %s\n", name
- printf "# traces: %s\n", traces
- printf "# MODEL: %s\n", MODEL
-+ printf "# CXX_MODEL: %s\n", CXX_MODEL
- printf "# model: %s\n", model
- printf "# prefix: %s\n", prefix
- printf "# suffix: %s\n", suffix
- printf "# subset: %s\n", subset
-+ printf "# driver: %s\n", driver
- printf "# ShlibVer: %s\n", ShlibVer
- printf "# ShlibVerInfix: %s\n", ShlibVerInfix
- printf "# SymLink: %s\n", SymLink
-@@ -285,12 +323,23 @@
- if ( found == 0 )
- {
- printf "%s_OBJS =", OBJS
-- if ( $2 == "lib" )
-- found = 1
-- else
-- found = 2
-+ if ( $2 == "lib" ) {
-+ found = 1;
-+ } else if ( $2 == "c++" ) {
-+ TOOL_PREFIX = "CXX_";
-+ found = 1;
-+ } else {
-+ found = 2;
-+ }
-+ if ( $2 == "c++" ) {
-+ CC_NAME="CXX"
-+ CC_FLAG="CXXFLAGS"
-+ } else {
-+ CC_NAME="CC"
-+ CC_FLAG="CFLAGS"
-+ }
- }
-- printf " \\\n\t../%s/%s$o", model, $1
-+ printf " \\\n\t../%s/%s$o", model, $1;
- }
- }
- END {
-@@ -316,7 +365,7 @@
- print "install \\"
- print "install.libs \\"
-
-- if ( ShlibVer == "cygdll" ) {
-+ if ( ShlibVer == "cygdll" || ShlibVer == "mingw") {
-
- dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)";
- printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs
-@@ -337,7 +386,7 @@
-
- if ( overwrite == "yes" && name == "ncurses" )
- {
-- if ( ShlibVer == "cygdll" ) {
-+ if ( ShlibVer == "cygdll" || ShlibVer == "mingw") {
- ovr_name = sprintf("libcurses%s.a", suffix)
- printf "\t@echo linking %s to %s\n", imp_name, ovr_name
- printf "\tcd $(DESTDIR)$(libdir) && ("
-@@ -358,7 +407,7 @@
- print "uninstall \\"
- print "uninstall.libs \\"
- printf "uninstall.%s ::\n", name
-- if ( ShlibVer == "cygdll" ) {
-+ if ( ShlibVer == "cygdll" || ShlibVer == "mingw") {
-
- printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name
- printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name
-@@ -371,11 +420,7 @@
- removelinks("$(DESTDIR)$(libdir)")
- if ( overwrite == "yes" && name == "ncurses" )
- {
-- if ( ShlibVer == "cygdll" ) {
-- ovr_name = sprintf("libcurses%s.a", suffix)
-- } else {
-- ovr_name = sprintf("libcurses%s", suffix)
-- }
-+ ovr_name = sprintf("libcurses%s", suffix)
- printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name
- }
- }
-@@ -388,20 +433,19 @@
- }
- else if ( MODEL == "LIBTOOL" )
- {
-- if ( $2 == "c++" ) {
-- compile="CXX"
-- } else {
-- compile="CC"
-- }
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
- if ( is_ticlib() ) {
-- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version
-+ which_list = "TICS_LIST";
- } else if ( is_termlib() ) {
-- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version
-+ which_list = "TINFO_LIST";
- } else {
-- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version
-+ which_list = "SHLIB_LIST";
- }
-+ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) $(%s) \\\n", CC_NAME, CC_FLAG;
-+ printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS;
-+ printf "\t\t-rpath $(DESTDIR)$(libdir) \\\n";
-+ printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list;
- print ""
- print "install \\"
- print "install.libs \\"
-@@ -419,7 +463,7 @@
- {
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
-- printf "\t$(AR) $(ARFLAGS) $@ $?\n"
-+ printf "\t$(%sAR) $(%sARFLAGS) $@ $?\n", TOOL_PREFIX, TOOL_PREFIX;
- printf "\t$(RANLIB) $@\n"
- if ( host == "vxworks" )
- {
-Index: ncurses/Makefile.in
-Prereq: 1.130
---- ncurses-5.9/ncurses/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/Makefile.in 2012-12-22 23:34:40.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.130 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.136 2012/12/22 23:34:40 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -64,6 +64,7 @@
- bindir = @bindir@
- libdir = @libdir@
- includedir = @includedir@
-+datarootdir = @datarootdir@
- datadir = @datadir@
-
- LIBTOOL = @LIBTOOL@
-@@ -107,7 +108,7 @@
- # is compiled into the build, or are test-programs that are not installed.
-
- BUILD_EXEEXT = @BUILD_EXEEXT@
--x = @PROG_EXT@
-+x = @EXEEXT@
-
- CFLAGS_LIBTOOL = $(CCFLAGS)
- CFLAGS_NORMAL = $(CCFLAGS)
-@@ -125,6 +126,7 @@
- TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@
- TICS_LIST = $(SHLIB_DIRS) @TICS_LIST@
-
-+RPATH_LIST = @RPATH_LIST@
- MK_SHARED_LIB = @MK_SHARED_LIB@
-
- NCURSES_MAJOR = @NCURSES_MAJOR@
-@@ -134,7 +136,7 @@
-
- RANLIB = @LIB_PREP@
-
--LIBRARIES = @LIBS_TO_MAKE@
-+LIBRARIES = @Libs_To_Make@
-
- LINT = @LINT@
- LINT_OPTS = @LINT_OPTS@
-@@ -262,7 +264,7 @@
- -rm -f $(AUTO_SRC)
- -rm -f make_keys$(BUILD_EXEEXT)
- -rm -f make_hash$(BUILD_EXEEXT)
-- -rm -rf .libs
-+ -rm -rf .libs *.dSYM
-
- distclean :: clean
- -rm -f Makefile
-@@ -282,21 +284,21 @@
- sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
-
- captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
-- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
-+ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
-
- hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
-- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
-+ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
-
- hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
-- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
-+ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
-
- lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
- ../@DFT_OBJ_SUBDIR@/dump_entry$o
-- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
-+ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
-
- link_test$x : ./link_test.c $(TEST_DEPS) \
- ../@DFT_OBJ_SUBDIR@/link_test$o
-- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
-+ @ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
-
- ../@DFT_OBJ_SUBDIR@/dump_entry$o:
- cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry$o
-Index: ncurses/base/MKkeyname.awk
-Prereq: 1.45
---- ncurses-5.9/ncurses/base/MKkeyname.awk 2010-12-19 01:36:14.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/MKkeyname.awk 2012-02-22 22:35:41.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: MKkeyname.awk,v 1.45 2010/12/19 01:36:14 tom Exp $
-+# $Id: MKkeyname.awk,v 1.47 2012/02/22 22:35:41 tom Exp $
- ##############################################################################
--# Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1999-2010,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -100,17 +100,18 @@
- print " if (MyTable[c] == 0) {"
- print " int cc = c;"
- print " p = name;"
-+ print "#define P_LIMIT (sizeof(name) - (size_t) (p - name))"
- print " if (cc >= 128 && (sp == 0 || sp->_use_meta)) {"
-- print " strcpy(p, \"M-\");"
-+ print " _nc_STRCPY(p, \"M-\", P_LIMIT);"
- print " p += 2;"
- print " cc -= 128;"
- print " }"
- print " if (cc < 32)"
-- print " sprintf(p, \"^%c\", cc + '@');"
-+ print " _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) \"^%c\", cc + '@');"
- print " else if (cc == 127)"
-- print " strcpy(p, \"^?\");"
-+ print " _nc_STRCPY(p, \"^?\", P_LIMIT);"
- print " else"
-- print " sprintf(p, \"%c\", cc);"
-+ print " _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) \"%c\", cc);"
- print " MyTable[c] = strdup(name);"
- print " }"
- print " result = MyTable[c];"
-Index: ncurses/base/MKlib_gen.sh
-Prereq: 1.43
---- ncurses-5.9/ncurses/base/MKlib_gen.sh 2011-01-22 19:47:29.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/MKlib_gen.sh 2011-06-04 19:14:08.000000000 +0000
-@@ -2,7 +2,7 @@
- #
- # MKlib_gen.sh -- generate sources from curses.h macro definitions
- #
--# ($Id: MKlib_gen.sh,v 1.43 2011/01/22 19:47:29 tom Exp $)
-+# ($Id: MKlib_gen.sh,v 1.46 2011/06/04 19:14:08 tom Exp $)
- #
- ##############################################################################
- # Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
-@@ -410,10 +410,45 @@
- print "#undef vwprintw"
- }
- /^DECLARATIONS/ {start = 1; next;}
-- {if (start) print \$0;}
-+ {
-+ if (start) {
-+ if ( "$USE" == "generated" ) {
-+ print \$0;
-+ } else if ( \$0 ~ /^[{}]?\$/ ) {
-+ print \$0;
-+ } else if ( \$0 ~ /;/ ) {
-+ print \$0;
-+ } else {
-+ calls[start] = \$0;
-+ print \$0;
-+ start++;
-+ }
-+ }
-+ }
- END {
- if ( "$USE" != "generated" ) {
-- print "int main(void) { return 0; }"
-+ print "int main(void)"
-+ print "{"
-+ for (n = 1; n < start; ++n) {
-+ value = calls[n];
-+ if ( value !~ /P_POUNDC/ ) {
-+ gsub(/[[:blank:]]+/," ",value);
-+ sub(/^[[:alnum:]_]+ /,"",value);
-+ sub(/^\* /,"",value);
-+ gsub(/[[:alnum:]_]+ \* /,"",value);
-+ gsub(/ (const) /," ",value);
-+ gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value);
-+ gsub(/ void /,"",value);
-+ sub(/^/,"call_",value);
-+ gsub(/ (a[[:digit:]]|z) /, " 0 ", value);
-+ gsub(/ int[[:blank:]]*[(][^)]+[)][(][^)]+[)]/, "0", value);
-+ printf "\t%s;\n", value;
-+ } else {
-+ print value;
-+ }
-+ }
-+ print " return 0;"
-+ print "}"
- }
- }
- EOF1
-@@ -422,6 +457,8 @@
- #include <ncurses_cfg.h>
- #undef NCURSES_NOMACROS
- #include <curses.h>
-+#include <term.h>
-+#include <unctrl.h>
-
- DECLARATIONS
-
-Index: ncurses/base/MKunctrl.awk
-Prereq: 1.26
---- ncurses-5.9/ncurses/base/MKunctrl.awk 2009-07-04 22:05:15.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/MKunctrl.awk 2012-06-09 20:29:33.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: MKunctrl.awk,v 1.26 2009/07/04 22:05:15 Clemens.Ladisch Exp $
-+# $Id: MKunctrl.awk,v 1.27 2012/06/09 20:29:33 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -140,7 +140,7 @@
- } else {
- stringname = "unctrl"
- }
-- print "\tint check = ChCharOf(ch);"
-+ print "\tint check = (int) ChCharOf(ch);"
- print "\tconst char *result;"
- print ""
- print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
-Index: ncurses/base/keybound.c
-Prereq: 1.10
---- ncurses-5.9/ncurses/base/keybound.c 2009-10-24 22:15:47.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/keybound.c 2011-10-22 16:47:05.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1999-2006,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1999-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,7 +33,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: keybound.c,v 1.10 2009/10/24 22:15:47 tom Exp $")
-+MODULE_ID("$Id: keybound.c,v 1.11 2011/10/22 16:47:05 tom Exp $")
-
- /*
- * Returns the count'th string definition which is associated with the
-@@ -46,7 +46,10 @@
-
- T((T_CALLED("keybound(%p, %d,%d)"), (void *) SP_PARM, code, count));
- if (SP_PARM != 0 && code >= 0) {
-- result = _nc_expand_try(SP_PARM->_keytry, (unsigned) code, &count, 0);
-+ result = _nc_expand_try(SP_PARM->_keytry,
-+ (unsigned) code,
-+ &count,
-+ (size_t) 0);
- }
- returnPtr(result);
- }
-Index: ncurses/base/keyok.c
-Prereq: 1.10
---- ncurses-5.9/ncurses/base/keyok.c 2009-10-24 22:15:47.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/keyok.c 2012-11-18 02:14:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,7 +33,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: keyok.c,v 1.10 2009/10/24 22:15:47 tom Exp $")
-+MODULE_ID("$Id: keyok.c,v 1.13 2012/11/18 02:14:35 tom Exp $")
-
- /*
- * Enable (or disable) ncurses' interpretation of a keycode by adding (or
-@@ -50,37 +50,47 @@
- {
- int code = ERR;
-
-- T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag));
-+ if (HasTerminal(SP_PARM)) {
-+ T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag));
- #ifdef USE_TERM_DRIVER
-- code = CallDriver_2(sp, kyOk, c, flag);
-+ code = CallDriver_2(sp, kyOk, c, flag);
- #else
-- T((T_CALLED("keyok(%d,%d)"), c, flag));
-- if (c >= 0) {
-- int count = 0;
-- char *s;
-- unsigned ch = (unsigned) c;
--
-- if (flag) {
-- while ((s = _nc_expand_try(SP_PARM->_key_ok, ch, &count, 0)) != 0
-- && _nc_remove_key(&(SP_PARM->_key_ok), ch)) {
-- code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch);
-- free(s);
-- count = 0;
-- if (code != OK)
-- break;
-- }
-- } else {
-- while ((s = _nc_expand_try(SP_PARM->_keytry, ch, &count, 0)) != 0
-- && _nc_remove_key(&(SP_PARM->_keytry), ch)) {
-- code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch);
-- free(s);
-- count = 0;
-- if (code != OK)
-- break;
-+ T((T_CALLED("keyok(%d,%d)"), c, flag));
-+ if (c >= 0) {
-+ int count = 0;
-+ char *s;
-+ unsigned ch = (unsigned) c;
-+
-+ if (flag) {
-+ while ((s = _nc_expand_try(SP_PARM->_key_ok,
-+ ch, &count, (size_t) 0)) != 0) {
-+ if (_nc_remove_key(&(SP_PARM->_key_ok), ch)) {
-+ code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch);
-+ free(s);
-+ count = 0;
-+ if (code != OK)
-+ break;
-+ } else {
-+ free(s);
-+ }
-+ }
-+ } else {
-+ while ((s = _nc_expand_try(SP_PARM->_keytry,
-+ ch, &count, (size_t) 0)) != 0) {
-+ if (_nc_remove_key(&(SP_PARM->_keytry), ch)) {
-+ code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch);
-+ free(s);
-+ count = 0;
-+ if (code != OK)
-+ break;
-+ } else {
-+ free(s);
-+ }
-+ }
- }
- }
-- }
- #endif
-+ }
- returnCode(code);
- }
-
-Index: ncurses/base/lib_addch.c
-Prereq: 1.124
---- ncurses-5.9/ncurses/base/lib_addch.c 2010-04-24 22:41:05.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_addch.c 2013-03-17 00:30:29.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
- #include <curses.priv.h>
- #include <ctype.h>
-
--MODULE_ID("$Id: lib_addch.c,v 1.124 2010/04/24 22:41:05 tom Exp $")
-+MODULE_ID("$Id: lib_addch.c,v 1.127 2013/03/17 00:30:29 tom Exp $")
-
- static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
-
-@@ -209,7 +209,8 @@
- buffer[WINDOW_EXT(win, addch_used)] = '\0';
- if ((len = (int) mbrtowc(&result,
- buffer,
-- WINDOW_EXT(win, addch_used), &state)) > 0) {
-+ (size_t) WINDOW_EXT(win, addch_used),
-+ &state)) > 0) {
- attr_t attrs = AttrOf(CHDEREF(ch));
- if_EXT_COLORS(int pair = GetPair(CHDEREF(ch)));
- SetChar(CHDEREF(ch), result, attrs);
-@@ -411,10 +412,12 @@
- #endif
- const char *s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx t);
- int tabsize = 8;
-+
- /*
- * If we are using the alternate character set, forget about locale.
- * Otherwise, if unctrl() returns a single-character or the locale
-- * claims the code is printable, treat it that way.
-+ * claims the code is printable (and not also a control character),
-+ * treat it that way.
- */
- if ((AttrOf(ch) & A_ALTCHARSET)
- || (
-@@ -424,14 +427,15 @@
- s[1] == 0
- )
- || (
-- isprint(t)
-+ (isprint(t) && !iscntrl(t))
- #if USE_WIDEC_SUPPORT
- || ((sp == 0 || !sp->_legacy_coding) &&
- (WINDOW_EXT(win, addch_used)
- || !_nc_is_charable(CharOf(ch))))
- #endif
-- ))
-+ )) {
- return waddch_literal(win, ch);
-+ }
-
- /*
- * Handle carriage control and other codes that are not printable, or are
-Index: ncurses/base/lib_addstr.c
-Prereq: 1.51
---- ncurses-5.9/ncurses/base/lib_addstr.c 2010-12-19 01:22:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_addstr.c 2011-05-28 23:02:09.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -44,7 +44,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_addstr.c,v 1.51 2010/12/19 01:22:58 tom Exp $")
-+MODULE_ID("$Id: lib_addstr.c,v 1.52 2011/05/28 23:02:09 tom Exp $")
-
- NCURSES_EXPORT(int)
- waddnstr(WINDOW *win, const char *astr, int n)
-@@ -119,8 +119,10 @@
- _nc_wchstrlen(const cchar_t *s)
- {
- int result = 0;
-- while (CharOf(s[result]) != L'\0') {
-- result++;
-+ if (s != 0) {
-+ while (CharOf(s[result]) != L'\0') {
-+ result++;
-+ }
- }
- return result;
- }
-Index: ncurses/base/lib_beep.c
-Prereq: 1.15
---- ncurses-5.9/ncurses/base/lib_beep.c 2009-10-24 22:02:14.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_beep.c 2013-01-12 17:26:25.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -46,7 +46,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_beep.c,v 1.15 2009/10/24 22:02:14 tom Exp $")
-+MODULE_ID("$Id: lib_beep.c,v 1.16 2013/01/12 17:26:25 tom Exp $")
-
- /*
- * beep()
-@@ -71,12 +71,9 @@
- if (cur_term == 0) {
- res = ERR;
- } else if (bell) {
-- TPUTS_TRACE("bell");
-- res = putp(bell);
-- _nc_flush();
-+ res = NCURSES_PUTP2_FLUSH("bell", bell);
- } else if (flash_screen) {
-- TPUTS_TRACE("flash_screen");
-- res = putp(flash_screen);
-+ res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen);
- _nc_flush();
- }
- #endif
-Index: ncurses/base/lib_bkgd.c
-Prereq: 1.43
---- ncurses-5.9/ncurses/base/lib_bkgd.c 2011-01-22 19:47:37.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_bkgd.c 2012-12-09 01:01:19.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_bkgd.c,v 1.43 2011/01/22 19:47:37 tom Exp $")
-+MODULE_ID("$Id: lib_bkgd.c,v 1.48 2012/12/09 01:01:19 tom Exp $")
-
- /*
- * Set the window's background information.
-@@ -85,6 +85,7 @@
- cchar_t wch;
- int tmp;
-
-+ memset(&wch, 0, sizeof(wch));
- (void) wgetbkgrnd(win, &wch);
- tmp = _nc_to_char((wint_t) CharOf(wch));
-
-@@ -118,16 +119,18 @@
- {
- int code = ERR;
- int x, y;
-- NCURSES_CH_T new_bkgd = CHDEREF(ch);
-
- T((T_CALLED("wbkgd(%p,%s)"), (void *) win, _tracech_t(ch)));
-
- if (win) {
-+ NCURSES_CH_T new_bkgd = CHDEREF(ch);
- NCURSES_CH_T old_bkgrnd;
-+
-+ memset(&old_bkgrnd, 0, sizeof(old_bkgrnd));
- wgetbkgrnd(win, &old_bkgrnd);
-
- (void) wbkgrndset(win, CHREF(new_bkgd));
-- (void) wattrset(win, AttrOf(win->_nc_bkgd));
-+ (void) wattrset(win, (int) AttrOf(win->_nc_bkgd));
-
- for (y = 0; y <= win->_maxy; y++) {
- for (x = 0; x <= win->_maxx; x++) {
-Index: ncurses/base/lib_color.c
-Prereq: 1.98
---- ncurses-5.9/ncurses/base/lib_color.c 2010-04-24 22:57:53.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_color.c 2013-03-09 22:33:38.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -45,7 +45,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_color.c,v 1.98 2010/04/24 22:57:53 tom Exp $")
-+MODULE_ID("$Id: lib_color.c,v 1.108 2013/03/09 22:33:38 tom Exp $")
-
- #ifdef USE_TERM_DRIVER
- #define CanChange InfoOf(SP_PARM).canchange
-@@ -264,8 +264,7 @@
-
- (void) SP_PARM;
- if (orig_pair != 0) {
-- TPUTS_TRACE("orig_pair");
-- putp(orig_pair);
-+ (void) NCURSES_PUTP2("orig_pair", orig_pair);
- result = TRUE;
- }
- return result;
-@@ -292,8 +291,7 @@
- result = CallDriver(SP_PARM, rescolors);
- #else
- if (orig_colors != 0) {
-- TPUTS_TRACE("orig_colors");
-- putp(orig_colors);
-+ NCURSES_PUTP2("orig_colors", orig_colors);
- result = TRUE;
- }
- #endif
-@@ -331,6 +329,13 @@
- default_bg(NCURSES_SP_ARG),
- NCURSES_SP_NAME(_nc_outch));
- }
-+#if !NCURSES_EXT_COLORS
-+ /*
-+ * Without ext-colors, we cannot represent more than 256 color pairs.
-+ */
-+ if (maxpairs > 256)
-+ maxpairs = 256;
-+#endif
-
- if (maxpairs > 0 && maxcolors > 0) {
- SP_PARM->_pair_limit = maxpairs;
-@@ -383,10 +388,10 @@
-
- /* This function was originally written by Daniel Weaver <danw@znyx.com> */
- static void
--rgb2hls(short r, short g, short b, short *h, short *l, short *s)
-+rgb2hls(int r, int g, int b, short *h, short *l, short *s)
- /* convert RGB to HLS system */
- {
-- short min, max, t;
-+ int min, max, t;
-
- if ((min = g < r ? g : r) > b)
- min = b;
-@@ -416,7 +421,7 @@
- else
- t = (short) (360 + ((r - g) * 60) / (max - min));
-
-- *h = t % 360;
-+ *h = (short) (t % 360);
- }
-
- /*
-@@ -439,7 +444,7 @@
-
- previous = SP_PARM->_color_pairs[pair];
- #if NCURSES_EXT_FUNCS
-- if (SP_PARM->_default_color) {
-+ if (SP_PARM->_default_color || SP_PARM->_assumed_color) {
- bool isDefault = FALSE;
- bool wasDefault = FALSE;
- int default_pairs = SP_PARM->_default_pairs;
-@@ -498,8 +503,9 @@
- {
- if ((f < 0) || !OkColorHi(f)
- || (b < 0) || !OkColorHi(b)
-- || (pair < 1))
-+ || (pair < 1)) {
- returnCode(ERR);
-+ }
- }
-
- /*
-@@ -545,11 +551,11 @@
- tp[f].red, tp[f].green, tp[f].blue,
- tp[b].red, tp[b].green, tp[b].blue));
-
-- TPUTS_TRACE("initialize_pair");
-- putp(TPARM_7(initialize_pair,
-- pair,
-- tp[f].red, tp[f].green, tp[f].blue,
-- tp[b].red, tp[b].green, tp[b].blue));
-+ NCURSES_PUTP2("initialize_pair",
-+ TPARM_7(initialize_pair,
-+ pair,
-+ tp[f].red, tp[f].green, tp[f].blue,
-+ tp[b].red, tp[b].green, tp[b].blue));
- }
- #endif
-
-@@ -607,8 +613,8 @@
- #ifdef USE_TERM_DRIVER
- CallDriver_4(SP_PARM, initcolor, color, r, g, b);
- #else
-- TPUTS_TRACE("initialize_color");
-- putp(TPARM_4(initialize_color, color, r, g, b));
-+ NCURSES_PUTP2("initialize_color",
-+ TPARM_4(initialize_color, color, r, g, b));
- #endif
- SP_PARM->_color_defs = max(color + 1, SP_PARM->_color_defs);
-
-@@ -628,8 +634,15 @@
- NCURSES_EXPORT(bool)
- NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL)
- {
-+ int result = FALSE;
-+
- T((T_CALLED("can_change_color(%p)"), (void *) SP_PARM));
-- returnCode((CanChange != 0) ? TRUE : FALSE);
-+
-+ if (HasTerminal(SP_PARM) && (CanChange != 0)) {
-+ result = TRUE;
-+ }
-+
-+ returnCode(result);
- }
-
- #if NCURSES_SP_FUNCS
-@@ -643,20 +656,22 @@
- NCURSES_EXPORT(bool)
- NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0)
- {
-- int code;
-+ int code = FALSE;
-
- (void) SP_PARM;
- T((T_CALLED("has_colors()")));
-+ if (HasTerminal(SP_PARM)) {
- #ifdef USE_TERM_DRIVER
-- code = HasColor;
-+ code = HasColor;
- #else
-- code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
-- && (((set_foreground != NULL)
-- && (set_background != NULL))
-- || ((set_a_foreground != NULL)
-- && (set_a_background != NULL))
-- || set_color_pair)) ? TRUE : FALSE);
-+ code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
-+ && (((set_foreground != NULL)
-+ && (set_background != NULL))
-+ || ((set_a_foreground != NULL)
-+ && (set_a_background != NULL))
-+ || set_color_pair)) ? TRUE : FALSE);
- #endif
-+ }
- returnCode(code);
- }
-
-@@ -731,8 +746,8 @@
- if (!ValidPair(pair)) {
- result = ERR;
- } else {
-- NCURSES_COLOR_T fg = FORE_OF(SP_PARM->_color_pairs[pair]);
-- NCURSES_COLOR_T bg = BACK_OF(SP_PARM->_color_pairs[pair]);
-+ NCURSES_COLOR_T fg = (NCURSES_COLOR_T) FORE_OF(SP_PARM->_color_pairs[pair]);
-+ NCURSES_COLOR_T bg = (NCURSES_COLOR_T) BACK_OF(SP_PARM->_color_pairs[pair]);
-
- #if NCURSES_EXT_FUNCS
- if (fg == COLOR_DEFAULT)
-@@ -765,9 +780,9 @@
-
- NCURSES_EXPORT(void)
- NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx
-- short old_pair,
-- short pair,
-- bool reverse,
-+ int old_pair,
-+ int pair,
-+ int reverse,
- NCURSES_SP_OUTC outc)
- {
- #ifdef USE_TERM_DRIVER
-@@ -775,7 +790,8 @@
- #else
- NCURSES_COLOR_T fg = COLOR_DEFAULT;
- NCURSES_COLOR_T bg = COLOR_DEFAULT;
-- NCURSES_COLOR_T old_fg, old_bg;
-+ NCURSES_COLOR_T old_fg = -1;
-+ NCURSES_COLOR_T old_bg = -1;
-
- if (!ValidPair(pair)) {
- return;
-@@ -787,13 +803,14 @@
- 1, outc);
- return;
- } else if (SP_PARM != 0) {
-- pair_content((short) pair, &fg, &bg);
-+ if (pair_content((short) pair, &fg, &bg) == ERR)
-+ return;
- }
- }
-
- if (old_pair >= 0
- && SP_PARM != 0
-- && pair_content(old_pair, &old_fg, &old_bg) != ERR) {
-+ && pair_content((short) old_pair, &old_fg, &old_bg) != ERR) {
- if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
- || (isDefaultColor(bg) && !isDefaultColor(old_bg))) {
- #if NCURSES_EXT_FUNCS
-@@ -847,7 +864,7 @@
-
- #if NCURSES_SP_FUNCS
- NCURSES_EXPORT(void)
--_nc_do_color(short old_pair, short pair, bool reverse, NCURSES_OUTC outc)
-+_nc_do_color(int old_pair, int pair, int reverse, NCURSES_OUTC outc)
- {
- SetSafeOutcWrapper(outc);
- NCURSES_SP_NAME(_nc_do_color) (CURRENT_SCREEN,
-Index: ncurses/base/lib_dft_fgbg.c
-Prereq: 1.25
---- ncurses-5.9/ncurses/base/lib_dft_fgbg.c 2009-10-24 22:15:00.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_dft_fgbg.c 2011-04-23 18:28:18.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_dft_fgbg.c,v 1.25 2009/10/24 22:15:00 tom Exp $")
-+MODULE_ID("$Id: lib_dft_fgbg.c,v 1.26 2011/04/23 18:28:18 tom Exp $")
-
- /*
- * Modify the behavior of color-pair 0 so that the library doesn't assume that
-@@ -80,6 +80,7 @@
- SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
- if (SP_PARM->_color_pairs != 0) {
- bool save = SP_PARM->_default_color;
-+ SP_PARM->_assumed_color = TRUE;
- SP_PARM->_default_color = TRUE;
- init_pair(0, (short) fg, (short) bg);
- SP_PARM->_default_color = save;
-Index: ncurses/base/lib_driver.c
-Prereq: 1.3
---- ncurses-5.9/ncurses/base/lib_driver.c 2010-12-20 00:29:17.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_driver.c 2012-09-22 19:32:46.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,7 +33,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_driver.c,v 1.3 2010/12/20 00:29:17 tom Exp $")
-+MODULE_ID("$Id: lib_driver.c,v 1.4 2012/09/22 19:32:46 tom Exp $")
-
- typedef struct DriverEntry {
- const char *name;
-@@ -43,9 +43,9 @@
- static DRIVER_ENTRY DriverTable[] =
- {
- #ifdef __MINGW32__
-- {"win", &_nc_WIN_DRIVER},
-+ {"win32con", &_nc_WIN_DRIVER},
- #endif
-- {"tinfo", &_nc_TINFO_DRIVER}
-+ {"tinfo", &_nc_TINFO_DRIVER} /* must be last */
- };
-
- NCURSES_EXPORT(int)
-@@ -63,6 +63,20 @@
-
- for (i = 0; i < SIZEOF(DriverTable); i++) {
- res = DriverTable[i].driver;
-+ /*
-+ * Use "#" (a character which cannot begin a terminal's name) to
-+ * select specific driver from the table.
-+ *
-+ * In principle, we could have more than one non-terminfo driver,
-+ * e.g., "win32gui".
-+ */
-+ if (name != 0 && *name == '#') {
-+ size_t n = strlen(name + 1);
-+ if (n != 0
-+ && strncmp(name + 1, DriverTable[i].name, n)) {
-+ continue;
-+ }
-+ }
- if (res->CanHandle(TCB, name, errret)) {
- use = res;
- break;
-Index: ncurses/base/lib_flash.c
-Prereq: 1.11
---- ncurses-5.9/ncurses/base/lib_flash.c 2009-10-24 22:02:14.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_flash.c 2013-01-12 17:26:07.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -46,7 +46,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_flash.c,v 1.11 2009/10/24 22:02:14 tom Exp $")
-+MODULE_ID("$Id: lib_flash.c,v 1.13 2013/01/12 17:26:07 tom Exp $")
-
- /*
- * flash()
-@@ -66,15 +66,13 @@
- if (SP_PARM != 0)
- res = CallDriver_1(SP_PARM, doBeepOrFlash, FALSE);
- #else
-- /* FIXME: should make sure that we are not in altchar mode */
-- if (flash_screen) {
-- TPUTS_TRACE("flash_screen");
-- res = putp(flash_screen);
-- _nc_flush();
-- } else if (bell) {
-- TPUTS_TRACE("bell");
-- res = putp(bell);
-- _nc_flush();
-+ if (HasTerminal(SP_PARM)) {
-+ /* FIXME: should make sure that we are not in altchar mode */
-+ if (flash_screen) {
-+ res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen);
-+ } else if (bell) {
-+ res = NCURSES_PUTP2_FLUSH("bell", bell);
-+ }
- }
- #endif
- returnCode(res);
-Index: ncurses/base/lib_freeall.c
-Prereq: 1.59
---- ncurses-5.9/ncurses/base/lib_freeall.c 2010-01-23 17:57:43.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_freeall.c 2012-11-17 23:53:03.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- extern int malloc_errfd; /* FIXME */
- #endif
-
--MODULE_ID("$Id: lib_freeall.c,v 1.59 2010/01/23 17:57:43 tom Exp $")
-+MODULE_ID("$Id: lib_freeall.c,v 1.62 2012/11/17 23:53:03 tom Exp $")
-
- /*
- * Free all ncurses data. This is used for testing only (there's no practical
-@@ -70,19 +70,21 @@
-
- /* Delete only windows that're not a parent */
- for (each_window(SP_PARM, p)) {
-+ WINDOW *p_win = &(p->win);
- bool found = FALSE;
-
- for (each_window(SP_PARM, q)) {
-+ WINDOW *q_win = &(q->win);
- if ((p != q)
-- && (q->win._flags & _SUBWIN)
-- && (&(p->win) == q->win._parent)) {
-+ && (q_win->_flags & _SUBWIN)
-+ && (p_win == q_win->_parent)) {
- found = TRUE;
- break;
- }
- }
-
- if (!found) {
-- if (delwin(&(p->win)) != ERR)
-+ if (delwin(p_win) != ERR)
- deleted = TRUE;
- break;
- }
-@@ -100,7 +102,7 @@
-
- (void) _nc_printf_string(0, empty_va);
- #ifdef TRACE
-- (void) _nc_trace_buf(-1, 0);
-+ (void) _nc_trace_buf(-1, (size_t) 0);
- #endif
- #if USE_WIDEC_SUPPORT
- FreeIfNeeded(_nc_wacs);
-@@ -129,8 +131,9 @@
- NCURSES_EXPORT(void)
- NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code)
- {
-- char *last_setbuf = (SP_PARM != 0) ? SP_PARM->_setbuf : 0;
-+ char *last_buffer = (SP_PARM != 0) ? SP_PARM->out_buffer : 0;
-
-+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
- NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG);
- #ifdef TRACE
- trace(0); /* close trace file, freeing its setbuf */
-@@ -139,8 +142,7 @@
- free(_nc_varargs("?", fake));
- }
- #endif
-- fclose(stdout);
-- FreeIfNeeded(last_setbuf);
-+ FreeIfNeeded(last_buffer);
- exit(code);
- }
-
-Index: ncurses/base/lib_getch.c
-Prereq: 1.121
---- ncurses-5.9/ncurses/base/lib_getch.c 2010-12-25 23:24:04.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_getch.c 2013-02-16 18:30:37.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_getch.c,v 1.121 2010/12/25 23:24:04 tom Exp $")
-+MODULE_ID("$Id: lib_getch.c,v 1.126 2013/02/16 18:30:37 tom Exp $")
-
- #include <fifo_defs.h>
-
-@@ -133,7 +133,7 @@
- int rc;
-
- #ifdef USE_TERM_DRIVER
-- rc = TCBOf(sp)->drv->testmouse(TCBOf(sp), delay);
-+ rc = TCBOf(sp)->drv->testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl));
- #else
- #if USE_SYSMOUSE
- if ((sp->_mouse_type == M_SYSMOUSE)
-@@ -163,7 +163,7 @@
- static NCURSES_INLINE int
- fifo_peek(SCREEN *sp)
- {
-- int ch = sp->_fifo[peek];
-+ int ch = (peek >= 0) ? sp->_fifo[peek] : ERR;
- TR(TRACE_IEVENT, ("peeking at %d", peek));
-
- p_inc();
-@@ -173,15 +173,16 @@
- static NCURSES_INLINE int
- fifo_pull(SCREEN *sp)
- {
-- int ch;
-- ch = sp->_fifo[head];
-+ int ch = (head >= 0) ? sp->_fifo[head] : ERR;
-+
- TR(TRACE_IEVENT, ("pulling %s from %d", _nc_tracechar(sp, ch), head));
-
- if (peek == head) {
- h_inc();
- peek = head;
-- } else
-+ } else {
- h_inc();
-+ }
-
- #ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
-@@ -200,7 +201,7 @@
- int mask = 0;
-
- (void) mask;
-- if (tail == -1)
-+ if (tail < 0)
- return ERR;
-
- #ifdef HIDE_EINTR
-@@ -257,6 +258,13 @@
- n = 1;
- } else
- #endif
-+#if USE_KLIBC_KBD
-+ if (isatty(sp->_ifd) && sp->_cbreak) {
-+ ch = _read_kbd(0, 1, !sp->_raw);
-+ n = (ch == -1) ? -1 : 1;
-+ sp->_extended_key = (ch == 0);
-+ } else
-+#endif
- { /* Can block... */
- #ifdef USE_TERM_DRIVER
- int buf;
-@@ -270,7 +278,7 @@
- # endif
- _nc_globals.read_thread = pthread_self();
- # endif
-- n = (int) read(sp->_ifd, &c2, 1);
-+ n = (int) read(sp->_ifd, &c2, (size_t) 1);
- #if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
- #endif
-@@ -431,11 +439,11 @@
- /* ungetch in reverse order */
- #ifdef NCURSES_WGETCH_EVENTS
- rc = recur_wgetnstr(win, buf);
-- if (rc != KEY_EVENT)
-+ if (rc != KEY_EVENT && rc != ERR)
- safe_ungetch(sp, '\n');
- #else
-- (void) recur_wgetnstr(win, buf);
-- safe_ungetch(sp, '\n');
-+ if (recur_wgetnstr(win, buf) != ERR)
-+ safe_ungetch(sp, '\n');
- #endif
- for (bufp = buf + strlen(buf); bufp > buf; bufp--)
- safe_ungetch(sp, bufp[-1]);
-@@ -569,7 +577,7 @@
- *
- * If carriage return is defined as a function key in the
- * terminfo, e.g., kent, then Solaris may return either ^J (or ^M
-- * if nonl() is set) or KEY_ENTER depending on the echo() mode.
-+ * if nonl() is set) or KEY_ENTER depending on the echo() mode.
- * We echo before translating carriage return based on nonl(),
- * since the visual result simply moves the cursor to column 0.
- *
-@@ -709,10 +717,11 @@
-
- if (ptr->value != 0) { /* sequence terminated */
- TR(TRACE_IEVENT, ("end of sequence"));
-- if (peek == tail)
-+ if (peek == tail) {
- fifo_clear(sp);
-- else
-+ } else {
- head = peek;
-+ }
- return (ptr->value);
- }
-
-Index: ncurses/base/lib_getstr.c
-Prereq: 1.29
---- ncurses-5.9/ncurses/base/lib_getstr.c 2009-10-24 21:59:02.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_getstr.c 2011-10-22 16:31:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,14 +40,14 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_getstr.c,v 1.29 2009/10/24 21:59:02 tom Exp $")
-+MODULE_ID("$Id: lib_getstr.c,v 1.30 2011/10/22 16:31:35 tom Exp $")
-
- /*
- * This wipes out the last character, no matter whether it was a tab, control
- * or other character, and handles reverse wraparound.
- */
- static char *
--WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed)
-+WipeOut(WINDOW *win, int y, int x, char *first, char *last, int echoed)
- {
- if (last > first) {
- *--last = '\0';
-Index: ncurses/base/lib_insch.c
-Prereq: 1.32
---- ncurses-5.9/ncurses/base/lib_insch.c 2009-10-24 22:04:35.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_insch.c 2012-12-15 22:51:12.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -43,7 +43,7 @@
- #include <curses.priv.h>
- #include <ctype.h>
-
--MODULE_ID("$Id: lib_insch.c,v 1.32 2009/10/24 22:04:35 tom Exp $")
-+MODULE_ID("$Id: lib_insch.c,v 1.33 2012/12/15 22:51:12 tom Exp $")
-
- /*
- * Insert the given character, updating the current location to simplify
-@@ -82,7 +82,7 @@
- #if USE_WIDEC_SUPPORT
- WINDOW_EXT(win, addch_used) == 0 &&
- #endif
-- is8bits(ChCharOf(ch)) &&
-+ is8bits(ch) &&
- (isprint(ChCharOf(ch)) ||
- (ChAttrOf(ch) & A_ALTCHARSET) ||
- (sp != 0 && sp->_legacy_coding && !iscntrl(ChCharOf(ch))))) {
-@@ -101,7 +101,7 @@
- *temp1 = _nc_render(win, wch);
- win->_curx++;
- }
-- } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
-+ } else if (is8bits(ch) && iscntrl(ChCharOf(ch))) {
- s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch));
- while (*s != '\0') {
- code = _nc_insert_ch(sp, win, ChAttrOf(ch) | UChar(*s));
-Index: ncurses/base/lib_instr.c
-Prereq: 1.17
---- ncurses-5.9/ncurses/base/lib_instr.c 2009-10-24 22:55:45.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_instr.c 2013-01-20 01:58:13.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -41,7 +41,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_instr.c,v 1.17 2009/10/24 22:55:45 tom Exp $")
-+MODULE_ID("$Id: lib_instr.c,v 1.20 2013/01/20 01:58:13 tom Exp $")
-
- NCURSES_EXPORT(int)
- winnstr(WINDOW *win, char *str, int n)
-@@ -78,11 +78,15 @@
- if (getcchar(cell, wch, &attrs, &pair, 0) == OK) {
-
- init_mb(state);
-- n3 = wcstombs(0, wch, 0);
-+ n3 = wcstombs(0, wch, (size_t) 0);
- if (!isEILSEQ(n3) && (n3 != 0)) {
-- if (((int) n3 + i) > n) {
-+ size_t need = n3 + 10 + (size_t) i;
-+ int have = (int) n3 + i;
-+
-+ /* check for loop-done as well as overflow */
-+ if (have > n || (int) need <= 0) {
- done = TRUE;
-- } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
-+ } else if ((tmp = typeCalloc(char, need)) == 0) {
- done = TRUE;
- } else {
- init_mb(state);
-Index: ncurses/base/lib_mouse.c
-Prereq: 1.121
---- ncurses-5.9/ncurses/base/lib_mouse.c 2011-01-22 19:47:47.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_mouse.c 2013-01-12 16:35:34.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -84,7 +84,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_mouse.c,v 1.121 2011/01/22 19:47:47 tom Exp $")
-+MODULE_ID("$Id: lib_mouse.c,v 1.140 2013/01/12 16:35:34 tom Exp $")
-
- #include <tic.h>
-
-@@ -120,6 +120,17 @@
- #endif
- #endif /* use_SYSMOUSE */
-
-+#if USE_KLIBC_MOUSE
-+#include <sys/socket.h>
-+#define pipe(handles) socketpair(AF_LOCAL, SOCK_STREAM, 0, handles)
-+#define DosWrite(hfile, pbuffer, cbwrite, pcbactual) \
-+ write(hfile, pbuffer, cbwrite)
-+#define DosExit(action, result ) /* do nothing */
-+#define DosCreateThread(ptid, pfn, param, flag, cbStack) \
-+ (*(ptid) = _beginthread(pfn, NULL, cbStack, \
-+ (void *)param), (*(ptid) == -1))
-+#endif
-+
- #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
-
- #define MASK_RELEASE(x) (mmask_t) NCURSES_MOUSE_MASK(x, 001)
-@@ -148,6 +159,9 @@
- #define INVALID_EVENT -1
- #define NORMAL_EVENT 0
-
-+#define ValidEvent(ep) ((ep)->id != INVALID_EVENT)
-+#define Invalidate(ep) (ep)->id = INVALID_EVENT
-+
- #if USE_GPM_SUPPORT
-
- #ifndef LIBGPM_SONAME
-@@ -211,7 +225,7 @@
- char buf[6];
- unsigned long ignore;
-
-- strncpy(buf, key_mouse, 3); /* should be "\033[M" */
-+ strcpy(buf, "\033[M"); /* should be the same as key_mouse */
- buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40);
- buf[4] = ' ' + x - LEFT_COL + 1;
- buf[5] = ' ' + y - TOP_ROW + 1;
-@@ -219,7 +233,11 @@
- }
-
- static void
-+#if USE_KLIBC_MOUSE
-+mouse_server(void *param)
-+#else
- mouse_server(unsigned long param)
-+#endif
- {
- SCREEN *sp = (SCREEN *) param;
- unsigned short fWait = MOU_WAIT;
-@@ -245,7 +263,8 @@
- /* sit and wait on the event queue */
- rc = MouReadEventQue(&mouev, &fWait, hmou);
- if (rc) {
-- sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc);
-+ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err))
-+ "Error reading mouse queue, rc=%lu.\r\n", rc);
- break;
- }
- if (!sp->_emxmouse_activated)
-@@ -271,9 +290,11 @@
- finish:
- oldstate = mouev.fs;
- }
-- } else
-- sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n",
-- nbuttons, rc);
-+ } else {
-+ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err))
-+ "Error setting event mask, buttons=%d, rc=%lu.\r\n",
-+ nbuttons, rc);
-+ }
-
- DosWrite(2, err, strlen(err), &rc);
- MouClose(hmou);
-@@ -367,20 +388,26 @@
- #if USE_EMX_MOUSE
- sp->_emxmouse_activated = enable;
- #else
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "xterm-mouse",
-- TPARM_1(sp->_mouse_xtermcap, enable));
-+ NCURSES_PUTP2("xterm-mouse", TPARM_1(sp->_mouse_xtermcap, enable));
- #endif
- sp->_mouse_active = enable;
- }
-
- #if USE_GPM_SUPPORT
- static bool
--allow_gpm_mouse(void)
-+allow_gpm_mouse(SCREEN *sp)
- {
- bool result = FALSE;
-
-- /* GPM does printf's without checking if stdout is a terminal */
-+#if USE_WEAK_SYMBOLS
-+ /* Danger Robinson: do not use dlopen for libgpm if already loaded */
-+ if ((Gpm_Wgetch)) {
-+ if (!sp->_mouse_gpm_loaded) {
-+ T(("GPM library was already dlopen'd, not by us"));
-+ }
-+ } else
-+#endif
-+ /* GPM does printf's without checking if stdout is a terminal */
- if (isatty(fileno(stdout))) {
- char *list = getenv("NCURSES_GPM_TERMS");
- char *env = getenv("TERM");
-@@ -506,7 +533,7 @@
-
- /* Try gpm first, because gpm may be configured to run in xterm */
- #if USE_GPM_SUPPORT
-- if (allow_gpm_mouse()) {
-+ if (allow_gpm_mouse(sp)) {
- if (!sp->_mouse_gpm_loaded) {
- #ifdef HAVE_LIBDL
- load_gpm_library(sp);
-@@ -673,7 +700,7 @@
-
- sp->_mouse_eventp = FirstEV(sp);
- for (i = 0; i < EV_MAX; i++)
-- sp->_mouse_events[i].id = INVALID_EVENT;
-+ Invalidate(sp->_mouse_events + i);
-
- initialize_mousetype(sp);
-
-@@ -750,6 +777,7 @@
- eventp->bstate |= BUTTON3_RELEASED;
- break;
- default:
-+ eventp->bstate |= REPORT_MOUSE_POSITION;
- break;
- }
-
-@@ -830,7 +858,6 @@
-
- if (sp->_mouse_type == M_XTERM) {
- unsigned char kbuf[4];
-- mmask_t prev;
- size_t grabbed;
- int res;
-
-@@ -896,35 +923,51 @@
-
- /* processing code goes here */
- eventp->bstate = 0;
-- prev = PREV(eventp)->bstate;
-
- #if USE_EMX_MOUSE
- #define PRESS_POSITION(n) \
-- eventp->bstate = MASK_PRESS(n); \
-- if (kbuf[0] & 0x40) \
-- eventp->bstate = MASK_RELEASE(n)
-+ do { \
-+ eventp->bstate = MASK_PRESS(n); \
-+ sp->_mouse_bstate |= MASK_PRESS(n); \
-+ if (kbuf[0] & 0x40) { \
-+ eventp->bstate = MASK_RELEASE(n); \
-+ sp->_mouse_bstate &= ~MASK_PRESS(n); \
-+ } \
-+ } while (0)
- #else
- #define PRESS_POSITION(n) \
-- eventp->bstate = (mmask_t) (prev & MASK_PRESS(n) \
-- ? REPORT_MOUSE_POSITION \
-- : MASK_PRESS(n))
-+ do { \
-+ eventp->bstate = (mmask_t) (sp->_mouse_bstate & MASK_PRESS(n) \
-+ ? REPORT_MOUSE_POSITION \
-+ : MASK_PRESS(n)); \
-+ sp->_mouse_bstate |= MASK_PRESS(n); \
-+ } while (0)
- #endif
-
- switch (kbuf[0] & 0x3) {
- case 0x0:
-- if (kbuf[0] & 64)
-+ if ((kbuf[0] & 96) == 96) {
- eventp->bstate = MASK_PRESS(4);
-- else
-+ /* Do not record in sp->_mouse_bstate; there will be no
-+ * corresponding release event.
-+ */
-+ } else {
- PRESS_POSITION(1);
-+ }
- break;
-
- case 0x1:
-+ if ((kbuf[0] & 96) == 96) {
- #if NCURSES_MOUSE_VERSION == 2
-- if (kbuf[0] & 64)
- eventp->bstate = MASK_PRESS(5);
-- else
-+ /* See comment above for button 4 */
-+#else
-+ /* Ignore this event as it is not a true press of the button */
-+ eventp->bstate = REPORT_MOUSE_POSITION;
- #endif
-+ } else {
- PRESS_POSITION(2);
-+ }
- break;
-
- case 0x2:
-@@ -939,12 +982,13 @@
- * release, we can infer the button actually released by looking at
- * the previous event.
- */
-- if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) {
-+ if (sp->_mouse_bstate & BUTTON_PRESSED) {
- eventp->bstate = BUTTON_RELEASED;
- for (b = 1; b <= MAX_BUTTONS; ++b) {
-- if (!(prev & MASK_PRESS(b)))
-+ if (!(sp->_mouse_bstate & MASK_PRESS(b)))
- eventp->bstate &= ~MASK_RELEASE(b);
- }
-+ sp->_mouse_bstate = 0;
- } else {
- /*
- * XFree86 xterm will return a stream of release-events to
-@@ -985,7 +1029,7 @@
- }
-
- static void
--mouse_activate(SCREEN *sp, bool on)
-+mouse_activate(SCREEN *sp, int on)
- {
- if (!on && !sp->_mouse_initialized)
- return;
-@@ -994,7 +1038,7 @@
- return;
-
- if (on) {
--
-+ sp->_mouse_bstate = 0;
- switch (sp->_mouse_type) {
- case M_XTERM:
- #if NCURSES_EXT_FUNCS
-@@ -1074,10 +1118,13 @@
- /* parse a run of atomic mouse events into a gesture */
- {
- MEVENT *eventp = sp->_mouse_eventp;
-- MEVENT *ep, *runp, *next, *prev = PREV(eventp);
-+ MEVENT *next, *ep;
-+ MEVENT *first_valid = NULL;
-+ MEVENT *first_invalid = NULL;
- int n;
- int b;
- bool merge;
-+ bool endLoop;
-
- TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount));
-
-@@ -1094,7 +1141,8 @@
- *
- * It's possible that the run may not resolve to a single event (for
- * example, if the user quadruple-clicks). If so, leading events
-- * in the run are ignored.
-+ * in the run are ignored if user does not call getmouse in a loop (getting
-+ * them from newest to older).
- *
- * Note that this routine is independent of the format of the specific
- * format of the pointing-device's reports. We can use it to parse
-@@ -1102,79 +1150,110 @@
- * button basis, as long as the device-dependent mouse code puts stuff
- * on the queue in MEVENT format.
- */
-- if (runcount == 1) {
-- TR(MY_TRACE,
-- ("_nc_mouse_parse: returning simple mouse event %s at slot %ld",
-- _nc_tracemouse(sp, prev),
-- (long) IndexEV(sp, prev)));
-- return (prev->id >= NORMAL_EVENT)
-- ? ((prev->bstate & sp->_mouse_mask) ? TRUE : FALSE)
-- : FALSE;
-- }
-
-- /* find the start of the run */
-- runp = eventp;
-- for (n = runcount; n > 0; n--) {
-- runp = PREV(runp);
-+ /*
-+ * Reset all events that were not set, in case the user sometimes calls
-+ * getmouse only once and other times until there are no more events in
-+ * queue.
-+ *
-+ * This also allows reaching the beginning of the run.
-+ */
-+ ep = eventp;
-+ for (n = runcount; n < EV_MAX; n++) {
-+ Invalidate(ep);
-+ ep = NEXT(ep);
- }
-
- #ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
- _trace_slot(sp, "before mouse press/release merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-- RunParams(sp, eventp, runp),
-+ RunParams(sp, eventp, ep),
- runcount);
- _nc_unlock_global(tracef);
- }
- #endif /* TRACE */
-
- /* first pass; merge press/release pairs */
-- do {
-- merge = FALSE;
-- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
-+ endLoop = FALSE;
-+ while (!endLoop) {
-+ next = NEXT(ep);
-+ if (next == eventp) {
-+ /* Will end the loop, but compact before */
-+ endLoop = TRUE;
-+ } else {
-
- #define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \
- == !(next->bstate & MASK_RELEASE(x)))
-
-- if (ep->x == next->x && ep->y == next->y
-+ if (ValidEvent(ep) && ValidEvent(next)
-+ && ep->x == next->x && ep->y == next->y
- && (ep->bstate & BUTTON_PRESSED)
-- && MASK_CHANGED(1)
-- && MASK_CHANGED(2)
-- && MASK_CHANGED(3)
-- && MASK_CHANGED(4)
--#if NCURSES_MOUSE_VERSION == 2
-- && MASK_CHANGED(5)
--#endif
-- ) {
-+ && (!(next->bstate & BUTTON_PRESSED))) {
-+ bool changed = TRUE;
-+
- for (b = 1; b <= MAX_BUTTONS; ++b) {
-- if ((sp->_mouse_mask & MASK_CLICK(b))
-- && (ep->bstate & MASK_PRESS(b))) {
-- ep->bstate &= ~MASK_PRESS(b);
-- ep->bstate |= MASK_CLICK(b);
-- merge = TRUE;
-+ if (!MASK_CHANGED(b)) {
-+ changed = FALSE;
-+ break;
-+ }
-+ }
-+
-+ if (changed) {
-+ merge = FALSE;
-+ for (b = 1; b <= MAX_BUTTONS; ++b) {
-+ if ((sp->_mouse_mask & MASK_CLICK(b))
-+ && (ep->bstate & MASK_PRESS(b))) {
-+ next->bstate &= ~MASK_RELEASE(b);
-+ next->bstate |= MASK_CLICK(b);
-+ merge = TRUE;
-+ }
-+ }
-+ if (merge) {
-+ Invalidate(ep);
- }
- }
-- if (merge)
-- next->id = INVALID_EVENT;
- }
- }
-- } while
-- (merge);
-
-+ /* Compact valid events */
-+ if (!ValidEvent(ep)) {
-+ if ((first_valid != NULL) && (first_invalid == NULL)) {
-+ first_invalid = ep;
-+ }
-+ } else {
-+ if (first_valid == NULL) {
-+ first_valid = ep;
-+ } else if (first_invalid != NULL) {
-+ *first_invalid = *ep;
-+ Invalidate(ep);
-+ first_invalid = NEXT(first_invalid);
-+ }
-+ }
-+
-+ ep = next;
-+ }
-+
-+ if (first_invalid != NULL) {
-+ eventp = first_invalid;
-+ }
- #ifdef TRACE
- if (USE_TRACEF(TRACE_IEVENT)) {
- _trace_slot(sp, "before mouse click merge:");
-- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-- RunParams(sp, eventp, runp),
-- runcount);
-- _nc_unlock_global(tracef);
-+ if (first_valid == NULL) {
-+ _tracef("_nc_mouse_parse: no valid event");
-+ } else {
-+ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-+ RunParams(sp, eventp, first_valid),
-+ runcount);
-+ _nc_unlock_global(tracef);
-+ }
- }
- #endif /* TRACE */
-
- /*
-- * Second pass; merge click runs. At this point, click events are
-- * each followed by one invalid event. We merge click events
-- * forward in the queue.
-+ * Second pass; merge click runs. We merge click events forward in the
-+ * queue. For example, double click can be changed to triple click.
- *
- * NOTE: There is a problem with this design! If the application
- * allows enough click events to pile up in the circular queue so
-@@ -1187,87 +1266,102 @@
- * but the timer element would have to have sub-second resolution,
- * which would get us into portability trouble.
- */
-- do {
-- MEVENT *follower;
--
-- merge = FALSE;
-- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next)
-- if (ep->id != INVALID_EVENT) {
-- if (next->id != INVALID_EVENT)
-- continue;
-- follower = NEXT(next);
-- if (follower->id == INVALID_EVENT)
-- continue;
--
-- /* merge click events forward */
-- if ((ep->bstate & BUTTON_CLICKED)
-- && (follower->bstate & BUTTON_CLICKED)) {
-- for (b = 1; b <= MAX_BUTTONS; ++b) {
-- if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
-- && (follower->bstate & MASK_CLICK(b))) {
-- follower->bstate &= ~MASK_CLICK(b);
-- follower->bstate |= MASK_DOUBLE_CLICK(b);
-- merge = TRUE;
-- }
-+ first_invalid = NULL;
-+ endLoop = (first_valid == NULL);
-+ ep = first_valid;
-+ while (!endLoop) {
-+ next = NEXT(ep);
-+
-+ if (next == eventp) {
-+ /* Will end the loop, but check event type and compact before */
-+ endLoop = TRUE;
-+ } else if (!ValidEvent(next)) {
-+ continue;
-+ } else {
-+ /* merge click events forward */
-+ if ((ep->bstate & BUTTON_CLICKED)
-+ && (next->bstate & BUTTON_CLICKED)) {
-+ merge = FALSE;
-+ for (b = 1; b <= MAX_BUTTONS; ++b) {
-+ if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
-+ && (ep->bstate & MASK_CLICK(b))
-+ && (next->bstate & MASK_CLICK(b))) {
-+ next->bstate &= ~MASK_CLICK(b);
-+ next->bstate |= MASK_DOUBLE_CLICK(b);
-+ merge = TRUE;
- }
-- if (merge)
-- ep->id = INVALID_EVENT;
- }
-+ if (merge) {
-+ Invalidate(ep);
-+ }
-+ }
-
-- /* merge double-click events forward */
-- if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
-- && (follower->bstate & BUTTON_CLICKED)) {
-- for (b = 1; b <= MAX_BUTTONS; ++b) {
-- if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
-- && (follower->bstate & MASK_CLICK(b))) {
-- follower->bstate &= ~MASK_CLICK(b);
-- follower->bstate |= MASK_TRIPLE_CLICK(b);
-- merge = TRUE;
-- }
-+ /* merge double-click events forward */
-+ if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
-+ && (next->bstate & BUTTON_CLICKED)) {
-+ merge = FALSE;
-+ for (b = 1; b <= MAX_BUTTONS; ++b) {
-+ if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
-+ && (ep->bstate & MASK_DOUBLE_CLICK(b))
-+ && (next->bstate & MASK_CLICK(b))) {
-+ next->bstate &= ~MASK_CLICK(b);
-+ next->bstate |= MASK_TRIPLE_CLICK(b);
-+ merge = TRUE;
- }
-- if (merge)
-- ep->id = INVALID_EVENT;
-+ }
-+ if (merge) {
-+ Invalidate(ep);
- }
- }
-- } while
-- (merge);
-+ }
-
--#ifdef TRACE
-- if (USE_TRACEF(TRACE_IEVENT)) {
-- _trace_slot(sp, "before mouse event queue compaction:");
-- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-- RunParams(sp, eventp, runp),
-- runcount);
-- _nc_unlock_global(tracef);
-- }
--#endif /* TRACE */
-+ /* Discard event if it does not match event mask */
-+ if (!(ep->bstate & sp->_mouse_mask2)) {
-+ Invalidate(ep);
-+ }
-
-- /*
-- * Now try to throw away trailing events flagged invalid, or that
-- * don't match the current event mask.
-- */
-- for (; runcount; prev = PREV(eventp), runcount--)
-- if (prev->id == INVALID_EVENT || !(prev->bstate & sp->_mouse_mask)) {
-- sp->_mouse_eventp = eventp = prev;
-+ /* Compact valid events */
-+ if (!ValidEvent(ep)) {
-+ if (ep == first_valid) {
-+ first_valid = next;
-+ } else if (first_invalid == NULL) {
-+ first_invalid = ep;
-+ }
-+ } else if (first_invalid != NULL) {
-+ *first_invalid = *ep;
-+ Invalidate(ep);
-+ first_invalid = NEXT(first_invalid);
- }
-+
-+ ep = next;
-+ }
-+
-+ if (first_invalid == NULL) {
-+ first_invalid = eventp;
-+ }
-+ sp->_mouse_eventp = first_invalid;
-+
- #ifdef TRACE
-- if (USE_TRACEF(TRACE_IEVENT)) {
-- _trace_slot(sp, "after mouse event queue compaction:");
-- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-- RunParams(sp, eventp, runp),
-- runcount);
-- _nc_unlock_global(tracef);
-+ if (first_valid != NULL) {
-+ if (USE_TRACEF(TRACE_IEVENT)) {
-+ _trace_slot(sp, "after mouse event queue compaction:");
-+ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
-+ RunParams(sp, first_invalid, first_valid),
-+ runcount);
-+ _nc_unlock_global(tracef);
-+ }
-+ for (ep = first_valid; ep != first_invalid; ep = NEXT(ep)) {
-+ if (ValidEvent(ep))
-+ TR(MY_TRACE,
-+ ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
-+ _nc_tracemouse(sp, ep),
-+ (long) IndexEV(sp, ep)));
-+ }
- }
-- for (ep = runp; ep != eventp; ep = NEXT(ep))
-- if (ep->id != INVALID_EVENT)
-- TR(MY_TRACE,
-- ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
-- _nc_tracemouse(sp, ep),
-- (long) IndexEV(sp, ep)));
- #endif /* TRACE */
-
- /* after all this, do we have a valid event? */
-- return (PREV(eventp)->id != INVALID_EVENT);
-+ return ValidEvent(PREV(first_invalid));
- }
-
- static void
-@@ -1359,7 +1453,16 @@
- /* compute the current-event pointer */
- MEVENT *prev = PREV(eventp);
-
-- if (prev->id != INVALID_EVENT) {
-+ /*
-+ * Discard events not matching mask (there could be still some if
-+ * _nc_mouse_parse was not called, e.g., when _nc_mouse_inline returns
-+ * false).
-+ */
-+ while (ValidEvent(prev) && (!(prev->bstate & SP_PARM->_mouse_mask2))) {
-+ Invalidate(prev);
-+ prev = PREV(prev);
-+ }
-+ if (ValidEvent(prev)) {
- /* copy the event we find there */
- *aevent = *prev;
-
-@@ -1367,9 +1470,16 @@
- _nc_tracemouse(SP_PARM, prev),
- (long) IndexEV(SP_PARM, prev)));
-
-- prev->id = INVALID_EVENT; /* so the queue slot becomes free */
-- SP_PARM->_mouse_eventp = PREV(prev);
-+ Invalidate(prev); /* so the queue slot becomes free */
-+ SP_PARM->_mouse_eventp = prev;
- result = OK;
-+ } else {
-+ /* Reset the provided event */
-+ aevent->bstate = 0;
-+ Invalidate(aevent);
-+ aevent->x = 0;
-+ aevent->y = 0;
-+ aevent->z = 0;
- }
- }
- returnCode(result);
-@@ -1420,6 +1530,7 @@
- /* set the mouse event mask */
- {
- mmask_t result = 0;
-+ int b;
-
- T((T_CALLED("mousemask(%p,%#lx,%p)"),
- (void *) SP_PARM,
-@@ -1447,6 +1558,22 @@
- mouse_activate(SP_PARM, (bool) (result != 0));
-
- SP_PARM->_mouse_mask = result;
-+ SP_PARM->_mouse_mask2 = result;
-+
-+ /*
-+ * Make a mask corresponding to the states we will need to
-+ * retain (temporarily) while building up the state that the
-+ * user asked for.
-+ */
-+ for (b = 1; b <= MAX_BUTTONS; ++b) {
-+ if (SP_PARM->_mouse_mask2 & MASK_TRIPLE_CLICK(b))
-+ SP_PARM->_mouse_mask2 |= MASK_DOUBLE_CLICK(b);
-+ if (SP_PARM->_mouse_mask2 & MASK_DOUBLE_CLICK(b))
-+ SP_PARM->_mouse_mask2 |= MASK_CLICK(b);
-+ if (SP_PARM->_mouse_mask2 & MASK_CLICK(b))
-+ SP_PARM->_mouse_mask2 |= (MASK_PRESS(b) |
-+ MASK_RELEASE(b));
-+ }
- }
- }
- }
-Index: ncurses/base/lib_newterm.c
-Prereq: 1.86
---- ncurses-5.9/ncurses/base/lib_newterm.c 2010-05-20 23:25:18.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_newterm.c 2012-01-21 19:21:29.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,17 +42,13 @@
-
- #include <curses.priv.h>
-
--#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
--#define _POSIX_SOURCE
--#endif
--
- #ifndef CUR
- #define CUR SP_TERMTYPE
- #endif
-
- #include <tic.h>
-
--MODULE_ID("$Id: lib_newterm.c,v 1.86 2010/05/20 23:25:18 tom Exp $")
-+MODULE_ID("$Id: lib_newterm.c,v 1.88 2012/01/21 19:21:29 KO.Myung-Hun Exp $")
-
- #ifdef USE_TERM_DRIVER
- #define NumLabels InfoOf(SP_PARM).numlabels
-@@ -283,7 +279,8 @@
- NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp));
- #ifdef TERMIOS
- SP_PARM->_use_meta = ((new_term->Ottyb.c_cflag & CSIZE) == CS8 &&
-- !(new_term->Ottyb.c_iflag & ISTRIP));
-+ !(new_term->Ottyb.c_iflag & ISTRIP)) ||
-+ USE_KLIBC_KBD;
- #else
- SP_PARM->_use_meta = FALSE;
- #endif
-Index: ncurses/base/lib_newwin.c
-Prereq: 1.69
---- ncurses-5.9/ncurses/base/lib_newwin.c 2011-03-07 21:58:17.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_newwin.c 2011-05-28 21:32:51.000000000 +0000
-@@ -43,7 +43,7 @@
- #include <curses.priv.h>
- #include <stddef.h>
-
--MODULE_ID("$Id: lib_newwin.c,v 1.69 2011/03/07 21:58:17 tom Exp $")
-+MODULE_ID("$Id: lib_newwin.c,v 1.71 2011/05/28 21:32:51 tom Exp $")
-
- #define window_is(name) ((sp)->_##name == win)
-
-@@ -141,7 +141,11 @@
- T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), (void *) SP_PARM, num_lines, num_columns,
- begy, begx));
-
-- if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0)
-+ if (begy < 0
-+ || begx < 0
-+ || num_lines < 0
-+ || num_columns < 0
-+ || SP_PARM == 0)
- returnWin(0);
-
- if (num_lines == 0)
-@@ -235,10 +239,15 @@
- NCURSES_EXPORT(WINDOW *)
- subwin(WINDOW *w, int l, int c, int y, int x)
- {
-+ WINDOW *result = 0;
-+
- T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x));
-- T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
-+ if (w != 0) {
-+ T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
-
-- returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx));
-+ result = derwin(w, l, c, y - w->_begy, x - w->_begx);
-+ }
-+ returnWin(result);
- }
-
- static bool
-Index: ncurses/base/lib_overlay.c
-Prereq: 1.29
---- ncurses-5.9/ncurses/base/lib_overlay.c 2009-10-24 23:21:31.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_overlay.c 2013-04-06 23:47:13.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,7 +40,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_overlay.c,v 1.29 2009/10/24 23:21:31 tom Exp $")
-+MODULE_ID("$Id: lib_overlay.c,v 1.31 2013/04/06 23:47:13 tom Exp $")
-
- static int
- overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
-@@ -151,7 +151,10 @@
- dminrow, dmincol,
- dmaxrow, dmaxcol, over));
-
-- if (src && dst) {
-+ if (src != 0
-+ && dst != 0
-+ && dmaxrow >= dminrow
-+ && dmaxcol >= dmincol) {
- _nc_lock_global(curses);
-
- bk = AttrOf(dst->_nc_bkgd);
-@@ -160,6 +163,7 @@
- /* make sure rectangle exists in source */
- if ((sminrow + dmaxrow - dminrow) <= (src->_maxy + 1) &&
- (smincol + dmaxcol - dmincol) <= (src->_maxx + 1)) {
-+ bool copied = FALSE;
-
- T(("rectangle exists in source"));
-
-@@ -172,10 +176,18 @@
- dy <= dmaxrow;
- sy++, dy++) {
-
-+ if (dy < 0 || sy < 0)
-+ continue;
-+
- touched = FALSE;
- for (dx = dmincol, sx = smincol;
- dx <= dmaxcol;
- sx++, dx++) {
-+
-+ if (dx < 0 || sx < 0)
-+ continue;
-+ copied = TRUE;
-+
- if (over) {
- if ((CharOf(src->_line[sy].text[sx]) != L(' ')) &&
- (!CharEq(dst->_line[dy].text[dx],
-@@ -201,7 +213,8 @@
- }
- }
- T(("finished copywin"));
-- rc = OK;
-+ if (copied)
-+ rc = OK;
- }
- }
- _nc_unlock_global(curses);
-Index: ncurses/base/lib_printw.c
-Prereq: 1.20
---- ncurses-5.9/ncurses/base/lib_printw.c 2009-10-24 22:07:03.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_printw.c 2012-09-03 17:55:28.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,7 +27,7 @@
- ****************************************************************************/
-
- /****************************************************************************
-- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
-+ * Author: Thomas E. Dickey 1997-on *
- ****************************************************************************/
-
- /*
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_printw.c,v 1.20 2009/10/24 22:07:03 tom Exp $")
-+MODULE_ID("$Id: lib_printw.c,v 1.23 2012/09/03 17:55:28 tom Exp $")
-
- NCURSES_EXPORT(int)
- printw(const char *fmt,...)
-@@ -48,10 +48,11 @@
- int code;
-
- #ifdef TRACE
-- va_start(argp, fmt);
-+ va_list argq;
-+ va_start(argq, fmt);
- T((T_CALLED("printw(%s%s)"),
-- _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
-- va_end(argp);
-+ _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
-+ va_end(argq);
- #endif
-
- va_start(argp, fmt);
-@@ -68,10 +69,11 @@
- int code;
-
- #ifdef TRACE
-- va_start(argp, fmt);
-+ va_list argq;
-+ va_start(argq, fmt);
- T((T_CALLED("wprintw(%p,%s%s)"),
-- (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
-- va_end(argp);
-+ (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
-+ va_end(argq);
- #endif
-
- va_start(argp, fmt);
-@@ -88,10 +90,11 @@
- int code;
-
- #ifdef TRACE
-- va_start(argp, fmt);
-+ va_list argq;
-+ va_start(argq, fmt);
- T((T_CALLED("mvprintw(%d,%d,%s%s)"),
-- y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
-- va_end(argp);
-+ y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
-+ va_end(argq);
- #endif
-
- if ((code = move(y, x)) != ERR) {
-@@ -109,10 +112,11 @@
- int code;
-
- #ifdef TRACE
-- va_start(argp, fmt);
-+ va_list argq;
-+ va_start(argq, fmt);
- T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"),
-- y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
-- va_end(argp);
-+ y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
-+ va_end(argq);
- #endif
-
- if ((code = wmove(win, y, x)) != ERR) {
-Index: ncurses/base/lib_refresh.c
-Prereq: 1.44
---- ncurses-5.9/ncurses/base/lib_refresh.c 2010-12-19 01:22:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_refresh.c 2011-06-25 19:02:22.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_refresh.c,v 1.44 2010/12/19 01:22:58 tom Exp $")
-+MODULE_ID("$Id: lib_refresh.c,v 1.45 2011/06/25 19:02:22 Vassili.Courzakis Exp $")
-
- NCURSES_EXPORT(int)
- wrefresh(WINDOW *win)
-@@ -90,12 +90,6 @@
- #endif
-
- T((T_CALLED("wnoutrefresh(%p)"), (void *) win));
--#ifdef TRACE
-- if (USE_TRACEF(TRACE_UPDATE)) {
-- _tracedump("...win", win);
-- _nc_unlock_global(tracef);
-- }
--#endif /* TRACE */
-
- /*
- * This function will break badly if we try to refresh a pad.
-@@ -104,6 +98,13 @@
- || (win->_flags & _ISPAD))
- returnCode(ERR);
-
-+#ifdef TRACE
-+ if (USE_TRACEF(TRACE_UPDATE)) {
-+ _tracedump("...win", win);
-+ _nc_unlock_global(tracef);
-+ }
-+#endif /* TRACE */
-+
- /* put them here so "win == 0" won't break our code */
- begx = win->_begx;
- begy = win->_begy;
-Index: ncurses/base/lib_restart.c
-Prereq: 1.13
---- ncurses-5.9/ncurses/base/lib_restart.c 2009-10-24 22:47:43.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_restart.c 2012-12-08 20:40:06.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -41,11 +41,7 @@
-
- #include <curses.priv.h>
-
--#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
--#define _POSIX_SOURCE
--#endif
--
--MODULE_ID("$Id: lib_restart.c,v 1.13 2009/10/24 22:47:43 tom Exp $")
-+MODULE_ID("$Id: lib_restart.c,v 1.15 2012/12/08 20:40:06 tom Exp $")
-
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
-@@ -55,7 +51,7 @@
- {
- int result;
- #ifdef USE_TERM_DRIVER
-- TERMINAL *new_term;
-+ TERMINAL *new_term = 0;
- #endif
-
- T((T_CALLED("restartterm(%p,%s,%d,%p)"),
-Index: ncurses/base/lib_scanw.c
-Prereq: 1.12
---- ncurses-5.9/ncurses/base/lib_scanw.c 2009-10-24 22:35:14.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_scanw.c 2011-10-22 16:31:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2001,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,14 +40,14 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_scanw.c,v 1.12 2009/10/24 22:35:14 tom Exp $")
-+MODULE_ID("$Id: lib_scanw.c,v 1.13 2011/10/22 16:31:35 tom Exp $")
-
- NCURSES_EXPORT(int)
- vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
- {
- char buf[BUFSIZ];
-
-- if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR)
-+ if (wgetnstr(win, buf, (int) sizeof(buf) - 1) == ERR)
- return (ERR);
-
- return (vsscanf(buf, fmt, argp));
-Index: ncurses/base/lib_screen.c
-Prereq: 1.38
---- ncurses-5.9/ncurses/base/lib_screen.c 2009-10-24 22:08:55.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_screen.c 2011-10-22 15:03:11.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_screen.c,v 1.38 2009/10/24 22:08:55 tom Exp $")
-+MODULE_ID("$Id: lib_screen.c,v 1.41 2011/10/22 15:03:11 tom Exp $")
-
- #define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */
-
-@@ -51,8 +51,11 @@
-
- T((T_CALLED("getwin(%p)"), (void *) filep));
-
-+ if (filep == 0) {
-+ returnWin(0);
-+ }
- clearerr(filep);
-- if (fread(&tmp, 1, sizeof(WINDOW), filep) < sizeof(WINDOW)
-+ if (fread(&tmp, (size_t) 1, sizeof(WINDOW), filep) < sizeof(WINDOW)
- || ferror(filep)
- || tmp._maxy == 0
- || tmp._maxy > MAX_SIZE
-@@ -110,7 +113,7 @@
-
- for (n = 0; n <= nwin->_maxy; n++) {
- clearerr(filep);
-- if (fread(nwin->_line[n].text, 1, linesize, filep) < linesize
-+ if (fread(nwin->_line[n].text, (size_t) 1, linesize, filep) < linesize
- || ferror(filep)) {
- delwin(nwin);
- returnWin(0);
-@@ -141,7 +144,7 @@
- size_t len = (size_t) (win->_maxx + 1);
-
- clearerr(filep);
-- if (fwrite(win, sizeof(WINDOW), 1, filep) != 1
-+ if (fwrite(win, sizeof(WINDOW), (size_t) 1, filep) != 1
- || ferror(filep))
- returnCode(code);
-
-@@ -189,18 +192,20 @@
- NCURSES_EXPORT(int)
- scr_dump(const char *file)
- {
-+ int result;
- FILE *fp = 0;
-
- T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file)));
-
- if (_nc_access(file, W_OK) < 0
- || (fp = fopen(file, "wb")) == 0) {
-- returnCode(ERR);
-+ result = ERR;
- } else {
- (void) putwin(newscr, fp);
- (void) fclose(fp);
-- returnCode(OK);
-+ result = OK;
- }
-+ returnCode(result);
- }
-
- NCURSES_EXPORT(int)
-Index: ncurses/base/lib_scroll.c
-Prereq: 1.28
---- ncurses-5.9/ncurses/base/lib_scroll.c 2010-12-19 01:48:09.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_scroll.c 2011-10-22 16:34:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -43,13 +43,13 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_scroll.c,v 1.28 2010/12/19 01:48:09 tom Exp $")
-+MODULE_ID("$Id: lib_scroll.c,v 1.29 2011/10/22 16:34:50 tom Exp $")
-
- NCURSES_EXPORT(void)
- _nc_scroll_window(WINDOW *win,
- int const n,
-- NCURSES_SIZE_T const top,
-- NCURSES_SIZE_T const bottom,
-+ int const top,
-+ int const bottom,
- NCURSES_CH_T blank)
- {
- int limit;
-Index: ncurses/base/lib_set_term.c
-Prereq: 1.138
---- ncurses-5.9/ncurses/base/lib_set_term.c 2010-12-20 00:42:20.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_set_term.c 2012-12-22 21:30:04.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -47,7 +47,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_set_term.c,v 1.138 2010/12/20 00:42:20 tom Exp $")
-+MODULE_ID("$Id: lib_set_term.c,v 1.147 2012/12/22 21:30:04 tom Exp $")
-
- #ifdef USE_TERM_DRIVER
- #define MaxColors InfoOf(sp).maxcolors
-@@ -188,18 +188,7 @@
- FreeIfNeeded(sp->_acs_map);
- FreeIfNeeded(sp->_screen_acs_map);
-
-- /*
-- * If the associated output stream has been closed, we can discard the
-- * set-buffer. Limit the error check to EBADF, since fflush may fail
-- * for other reasons than trying to operate upon a closed stream.
-- */
-- if (sp->_ofp != 0
-- && sp->_setbuf != 0
-- && fflush(sp->_ofp) != 0
-- && errno == EBADF) {
-- free(sp->_setbuf);
-- }
--
-+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
- NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx sp->_term);
- free(sp);
-
-@@ -272,8 +261,8 @@
- }
- #endif
-
--#define ReturnScreenError() _nc_set_screen(0); \
-- returnCode(ERR)
-+#define ReturnScreenError() { _nc_set_screen(0); \
-+ returnCode(ERR); } while (0)
-
- /* OS-independent screen initializations */
- NCURSES_EXPORT(int)
-@@ -284,7 +273,7 @@
- int slines,
- int scolumns,
- FILE *output,
-- bool filtered,
-+ int filtered,
- int slk_format)
- {
- char *env;
-@@ -383,7 +372,15 @@
- sp->_lines = (NCURSES_SIZE_T) slines;
- sp->_lines_avail = (NCURSES_SIZE_T) slines;
- sp->_columns = (NCURSES_SIZE_T) scolumns;
-+
-+ fflush(output);
-+ sp->_ofd = output ? fileno(output) : -1;
- sp->_ofp = output;
-+ sp->out_limit = (size_t) ((2 + slines) * (6 + scolumns));
-+ if ((sp->out_buffer = malloc(sp->out_limit)) == 0)
-+ sp->out_limit = 0;
-+ sp->out_inuse = 0;
-+
- SP_PRE_INIT(sp);
- SetNoPadding(sp);
-
-@@ -584,9 +581,13 @@
-
- NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_ARG);
- #if USE_WIDEC_SUPPORT
-+ sp->_screen_unicode = _nc_unicode_locale();
- _nc_init_wacs();
-+ if (_nc_wacs == 0) {
-+ ReturnScreenError();
-+ }
-
-- sp->_screen_acs_fix = (_nc_unicode_locale()
-+ sp->_screen_acs_fix = (sp->_screen_unicode
- && _nc_locale_breaks_acs(sp->_term));
- #endif
- env = _nc_get_locale();
-@@ -619,6 +620,7 @@
- #endif
- #if USE_SIZECHANGE
- sp->_resize = NCURSES_SP_NAME(resizeterm);
-+ sp->_ungetch = safe_ungetch;
- #endif
-
- NewScreen(sp)->_clear = TRUE;
-@@ -695,7 +697,7 @@
- _nc_setupscreen(int slines GCC_UNUSED,
- int scolumns GCC_UNUSED,
- FILE *output,
-- bool filtered,
-+ int filtered,
- int slk_format)
- {
- SCREEN *sp = 0;
-@@ -759,6 +761,7 @@
- int line,
- int (*init) (WINDOW *, int))
- {
-+ START_TRACE();
- return NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx
- (line < 0) ? -1 : 1,
- init);
-Index: ncurses/base/lib_slkrefr.c
-Prereq: 1.26
---- ncurses-5.9/ncurses/base/lib_slkrefr.c 2010-05-01 19:17:28.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_slkrefr.c 2013-01-12 17:25:48.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -43,7 +43,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_slkrefr.c,v 1.26 2010/05/01 19:17:28 tom Exp $")
-+MODULE_ID("$Id: lib_slkrefr.c,v 1.29 2013/01/12 17:25:48 tom Exp $")
-
- #ifdef USE_TERM_DRIVER
- #define NumLabels InfoOf(SP_PARM).numlabels
-@@ -100,22 +100,22 @@
- CallDriver_2(sp, hwlabel, i + 1, slk->ent[i].form_text);
- #else
- if (i < num_labels) {
-- TPUTS_TRACE("plab_norm");
-- putp(TPARM_2(plab_norm, i + 1, slk->ent[i].form_text));
-+ NCURSES_PUTP2("plab_norm",
-+ TPARM_2(plab_norm,
-+ i + 1,
-+ slk->ent[i].form_text));
- }
- #endif
- } else {
- if (fmt == 4)
- slk_paint_info(slk->win);
- wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
-- if (sp->_slk) {
-- (void) wattrset(slk->win, AttrOf(sp->_slk->attr));
-- }
-+ (void) wattrset(slk->win, (int) AttrOf(slk->attr));
- waddstr(slk->win, slk->ent[i].form_text);
- /* if we simulate SLK's, it's looking much more
- natural to use the current ATTRIBUTE also
- for the label window */
-- (void) wattrset(slk->win, WINDOW_ATTRS(StdScreen(sp)));
-+ (void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp)));
- }
- }
- slk->ent[i].dirty = FALSE;
-@@ -128,11 +128,9 @@
- CallDriver_1(sp, hwlabelOnOff, slk->hidden ? FALSE : TRUE);
- #else
- if (slk->hidden) {
-- TPUTS_TRACE("label_off");
-- putp(label_off);
-+ NCURSES_PUTP2("label_off", label_off);
- } else {
-- TPUTS_TRACE("label_on");
-- putp(label_on);
-+ NCURSES_PUTP2("label_on", label_on);
- }
- #endif
- }
-Index: ncurses/base/lib_slkset.c
-Prereq: 1.21
---- ncurses-5.9/ncurses/base/lib_slkset.c 2010-12-25 23:43:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_slkset.c 2012-12-08 23:09:25.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -44,13 +44,13 @@
- #endif
- #endif
-
--MODULE_ID("$Id: lib_slkset.c,v 1.21 2010/12/25 23:43:58 tom Exp $")
-+MODULE_ID("$Id: lib_slkset.c,v 1.24 2012/12/08 23:09:25 tom Exp $")
-
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format)
- {
- SLK *slk;
-- int offset;
-+ int offset = 0;
- int numchrs;
- int numcols;
- int limit;
-@@ -111,13 +111,12 @@
- slk->ent[i].ent_text[numchrs] = '\0';
-
- if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
-- (unsigned) (limit +
-- numchrs + 1))
-+ (size_t) (limit +
-+ numchrs + 1))
- ) == 0)
- returnCode(ERR);
-
- switch (format) {
-- default:
- case 0: /* left-justified */
- offset = 0;
- break;
-@@ -131,16 +130,16 @@
- if (offset <= 0)
- offset = 0;
- else
-- memset(slk->ent[i].form_text, ' ', (unsigned) offset);
-+ memset(slk->ent[i].form_text, ' ', (size_t) offset);
-
- memcpy(slk->ent[i].form_text + offset,
- slk->ent[i].ent_text,
-- (unsigned) numchrs);
-+ (size_t) numchrs);
-
- if (offset < limit) {
- memset(slk->ent[i].form_text + offset + numchrs,
- ' ',
-- (unsigned) (limit - (offset + numcols)));
-+ (size_t) (limit - (offset + numcols)));
- }
-
- slk->ent[i].form_text[numchrs - numcols + limit] = 0;
-Index: ncurses/base/lib_touch.c
-Prereq: 1.11
---- ncurses-5.9/ncurses/base/lib_touch.c 2010-12-19 01:22:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_touch.c 2012-06-09 20:29:33.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -43,7 +43,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_touch.c,v 1.11 2010/12/19 01:22:58 tom Exp $")
-+MODULE_ID("$Id: lib_touch.c,v 1.12 2012/06/09 20:29:33 tom Exp $")
-
- NCURSES_EXPORT(bool)
- is_linetouched(WINDOW *win, int line)
-@@ -84,7 +84,7 @@
- for (i = y; i < y + n; i++) {
- if (i > win->_maxy)
- break;
-- win->_line[i].firstchar = changed ? 0 : _NOCHANGE;
-+ win->_line[i].firstchar = (NCURSES_SIZE_T) (changed ? 0 : _NOCHANGE);
- win->_line[i].lastchar = (NCURSES_SIZE_T) (changed
- ? win->_maxx
- : _NOCHANGE);
-Index: ncurses/base/lib_ungetch.c
-Prereq: 1.14
---- ncurses-5.9/ncurses/base/lib_ungetch.c 2009-10-24 22:12:21.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/lib_ungetch.c 2012-08-04 17:38:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_ungetch.c,v 1.14 2009/10/24 22:12:21 tom Exp $")
-+MODULE_ID("$Id: lib_ungetch.c,v 1.16 2012/08/04 17:38:53 tom Exp $")
-
- #include <fifo_defs.h>
-
-@@ -64,13 +64,14 @@
-
- T((T_CALLED("ungetch(%p,%s)"), (void *) sp, _nc_tracechar(sp, ch)));
-
-- if (tail != -1) {
-- if (head == -1) {
-+ if (sp != 0 && tail >= 0) {
-+ if (head < 0) {
- head = 0;
- t_inc();
- peek = tail; /* no raw keys */
-- } else
-+ } else {
- h_dec();
-+ }
-
- sp->_fifo[head] = ch;
- T(("ungetch %s ok", _nc_tracechar(sp, ch)));
-Index: ncurses/base/resizeterm.c
-Prereq: 1.43
---- ncurses-5.9/ncurses/base/resizeterm.c 2011-01-10 01:34:49.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/resizeterm.c 2012-07-07 17:07:23.000000000 +0000
-@@ -45,7 +45,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: resizeterm.c,v 1.43 2011/01/10 01:34:49 tom Exp $")
-+MODULE_ID("$Id: resizeterm.c,v 1.45 2012/07/07 17:07:23 tom Exp $")
-
- /*
- * If we're trying to be reentrant, do not want any local statics.
-@@ -365,58 +365,71 @@
- }
- #endif
- if (ToLines > screen_lines(SP_PARM)) {
-- increase_size(NCURSES_SP_ARGx
-- myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
-+ result = increase_size(NCURSES_SP_ARGx
-+ myLines = ToLines,
-+ myCols,
-+ was_stolen EXTRA_ARGS);
- CurLines = myLines;
- CurCols = myCols;
- }
-
-- if (ToCols > screen_columns(SP_PARM)) {
-- increase_size(NCURSES_SP_ARGx
-- myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
-+ if ((result == OK)
-+ && (ToCols > screen_columns(SP_PARM))) {
-+ result = increase_size(NCURSES_SP_ARGx
-+ myLines,
-+ myCols = ToCols,
-+ was_stolen EXTRA_ARGS);
- CurLines = myLines;
- CurCols = myCols;
- }
-
-- if (ToLines < myLines ||
-- ToCols < myCols) {
-- decrease_size(NCURSES_SP_ARGx ToLines, ToCols, was_stolen EXTRA_ARGS);
-+ if ((result == OK)
-+ && (ToLines < myLines ||
-+ ToCols < myCols)) {
-+ result = decrease_size(NCURSES_SP_ARGx
-+ ToLines,
-+ ToCols,
-+ was_stolen EXTRA_ARGS);
- }
-
-- screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines;
-- screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols;
-+ if (result == OK) {
-+ screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines;
-+ screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols;
-
- #ifdef USE_TERM_DRIVER
-- CallDriver_2(SP_PARM, setsize, ToLines, ToCols);
-+ CallDriver_2(SP_PARM, setsize, ToLines, ToCols);
- #else
-- lines = (NCURSES_SIZE_T) ToLines;
-- columns = (NCURSES_SIZE_T) ToCols;
-+ lines = (NCURSES_SIZE_T) ToLines;
-+ columns = (NCURSES_SIZE_T) ToCols;
- #endif
-
-- SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen);
-+ SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen);
-
-- if (SP_PARM->oldhash) {
-- FreeAndNull(SP_PARM->oldhash);
-- }
-- if (SP_PARM->newhash) {
-- FreeAndNull(SP_PARM->newhash);
-- }
-+ if (SP_PARM->oldhash) {
-+ FreeAndNull(SP_PARM->oldhash);
-+ }
-+ if (SP_PARM->newhash) {
-+ FreeAndNull(SP_PARM->newhash);
-+ }
- #ifdef TRACE
-- if (USE_TRACEF(TRACE_UPDATE)) {
-- SET_LINES(ToLines - was_stolen);
-- SET_COLS(ToCols);
-- show_window_sizes("after");
-- _nc_unlock_global(tracef);
-- }
-+ if (USE_TRACEF(TRACE_UPDATE)) {
-+ SET_LINES(ToLines - was_stolen);
-+ SET_COLS(ToCols);
-+ show_window_sizes("after");
-+ _nc_unlock_global(tracef);
-+ }
- #endif
-+ }
- }
-
-- /*
-- * Always update LINES, to allow for call from lib_doupdate.c which
-- * needs to have the count adjusted by the stolen (ripped off) lines.
-- */
-- SET_LINES(ToLines - was_stolen);
-- SET_COLS(ToCols);
-+ if (result == OK) {
-+ /*
-+ * Always update LINES, to allow for call from lib_doupdate.c which
-+ * needs to have the count adjusted by the stolen (ripped off) lines.
-+ */
-+ SET_LINES(ToLines - was_stolen);
-+ SET_COLS(ToCols);
-+ }
-
- _nc_nonsp_unlock_global(curses);
-
-@@ -471,7 +484,6 @@
- result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols);
-
- #if USE_SIGWINCH
-- safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */
- clearok(CurScreen(SP_PARM), TRUE); /* screen contents are unknown */
-
- /* ripped-off lines are a special case: if we did not lengthen
-@@ -501,6 +513,9 @@
- }
- #endif
- }
-+#if USE_SIGWINCH
-+ safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */
-+#endif
- }
-
- returnCode(result);
-Index: ncurses/base/safe_sprintf.c
-Prereq: 1.24
---- ncurses-5.9/ncurses/base/safe_sprintf.c 2010-06-05 22:22:27.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/safe_sprintf.c 2013-01-20 01:04:32.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -27,13 +27,13 @@
- ****************************************************************************/
-
- /****************************************************************************
-- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
-+ * Author: Thomas E. Dickey 1997-on *
- ****************************************************************************/
-
- #include <curses.priv.h>
- #include <ctype.h>
-
--MODULE_ID("$Id: safe_sprintf.c,v 1.24 2010/06/05 22:22:27 tom Exp $")
-+MODULE_ID("$Id: safe_sprintf.c,v 1.27 2013/01/20 01:04:32 tom Exp $")
-
- #if USE_SAFE_SPRINTF
-
-@@ -109,12 +109,16 @@
- } else if (state == Prec) {
- prec = ival;
- }
-- sprintf(fmt_arg, "%d", ival);
-+ _nc_SPRINTF(fmt_arg,
-+ _nc_SLIMIT(sizeof(fmt_arg))
-+ "%d", ival);
- fmt_len += strlen(fmt_arg);
- if ((format = _nc_doalloc(format, fmt_len)) == 0) {
-+ free(buffer);
- return -1;
- }
-- strcpy(&format[--f], fmt_arg);
-+ --f;
-+ _nc_STRCPY(&format[f], fmt_arg, fmt_len - f);
- f = strlen(format);
- } else if (isalpha(UChar(*fmt))) {
- done = TRUE;
-@@ -185,13 +189,13 @@
- format[f] = '\0';
- switch (used) {
- case 'i':
-- sprintf(buffer, format, ival);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, ival);
- break;
- case 'f':
-- sprintf(buffer, format, fval);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, fval);
- break;
- default:
-- sprintf(buffer, format, pval);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, pval);
- break;
- }
- len += (int) strlen(buffer);
-Index: ncurses/base/vsscanf.c
-Prereq: 1.18
---- ncurses-5.9/ncurses/base/vsscanf.c 2004-04-03 20:27:02.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/vsscanf.c 2012-02-22 22:26:58.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2004,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -38,7 +38,7 @@
-
- #if !HAVE_VSSCANF
-
--MODULE_ID("$Id: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $")
-+MODULE_ID("$Id: vsscanf.c,v 1.20 2012/02/22 22:26:58 tom Exp $")
-
- #if !(HAVE_VFSCANF || HAVE__DOSCAN)
-
-@@ -293,12 +293,12 @@
-
- /* add %n, if the format was not that */
- if (chunk != cAssigned) {
-- strcat(my_fmt, "%n");
-+ _nc_STRCAT(my_fmt, "%n", len_fmt);
- }
-
- switch (chunk) {
- case cAssigned:
-- strcat(my_fmt, "%n");
-+ _nc_STRCAT(my_fmt, "%n", len_fmt);
- pointer = &eaten;
- break;
- case cInt:
-Index: ncurses/base/wresize.c
-Prereq: 1.34
---- ncurses-5.9/ncurses/base/wresize.c 2010-06-05 22:36:26.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/base/wresize.c 2011-05-21 18:55:07.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,7 +33,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: wresize.c,v 1.34 2010/06/05 22:36:26 tom Exp $")
-+MODULE_ID("$Id: wresize.c,v 1.35 2011/05/21 18:55:07 tom Exp $")
-
- static int
- cleanup_lines(struct ldat *data, int length)
-@@ -175,9 +175,10 @@
- for (col = 0; col <= ToCols; ++col)
- s[col] = win->_nc_bkgd;
- }
-- } else {
-- assert(pline != 0);
-+ } else if (pline != 0 && pline[win->_pary + row].text != 0) {
- s = &pline[win->_pary + row].text[win->_parx];
-+ } else {
-+ s = 0;
- }
-
- if_USE_SCROLL_HINTS(new_lines[row].oldindex = row);
-Index: ncurses/build.priv.h
-Prereq: 1.6
---- ncurses-5.9/ncurses/build.priv.h 2010-05-22 20:30:35.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/build.priv.h 2012-02-22 22:17:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,9 +30,8 @@
- * Author: Thomas E. Dickey 2010 *
- ****************************************************************************/
-
--
- /*
-- * $Id: build.priv.h,v 1.6 2010/05/22 20:30:35 tom Exp $
-+ * $Id: build.priv.h,v 1.9 2012/02/22 22:17:02 tom Exp $
- *
- * build.priv.h
- *
-@@ -83,6 +82,7 @@
- #define SIZEOF(v) (sizeof(v) / sizeof(v[0]))
-
- #include <nc_alloc.h>
-+#include <nc_string.h>
-
- /* declare these, to avoid needing term.h */
- #if BROKEN_LINKER || USE_REENTRANT
-Index: ncurses/curses.priv.h
-Prereq: 1.475
---- ncurses-5.9/ncurses/curses.priv.h 2011-01-22 21:10:19.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/curses.priv.h 2013-01-26 21:51:56.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
- ****************************************************************************/
-
- /*
-- * $Id: curses.priv.h,v 1.475 2011/01/22 21:10:19 tom Exp $
-+ * $Id: curses.priv.h,v 1.523 2013/01/26 21:51:56 tom Exp $
- *
- * curses.priv.h
- *
-@@ -65,6 +65,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <sys/stat.h>
-
- #if HAVE_UNISTD_H
- #include <unistd.h>
-@@ -85,6 +86,12 @@
-
- #include <errno.h>
-
-+#if defined __hpux
-+# ifndef EILSEQ
-+# define EILSEQ 47
-+# endif
-+#endif
-+
- #ifndef PATH_MAX
- # if defined(_POSIX_PATH_MAX)
- # define PATH_MAX _POSIX_PATH_MAX
-@@ -111,6 +118,14 @@
- #define USE_FUNC_POLL 0
- #endif
-
-+#if HAVE_INTTYPES_H
-+# include <inttypes.h>
-+#else
-+# if HAVE_STDINT_H
-+# include <stdint.h>
-+# endif
-+#endif
-+
- /* include signal.h before curses.h to work-around defect in glibc 2.1.3 */
- #include <signal.h>
-
-@@ -135,6 +150,15 @@
- #define USE_EMX_MOUSE 0
- #endif
-
-+/* kLIBC keyboard/mouse support */
-+#if defined(__OS2__) && defined(__KLIBC__)
-+#define USE_KLIBC_KBD 1
-+#define USE_KLIBC_MOUSE 1
-+#else
-+#define USE_KLIBC_KBD 0
-+#define USE_KLIBC_MOUSE 0
-+#endif
-+
- #define DEFAULT_MAXCLICK 166
- #define EV_MAX 8 /* size of mouse circular event queue */
-
-@@ -192,6 +216,18 @@
- #endif
-
- /*
-+ * Either/both S_ISxxx and/or S_IFxxx are defined in sys/types.h; some systems
-+ * lack one or the other.
-+ */
-+#ifndef S_ISDIR
-+#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR)
-+#endif
-+
-+#ifndef S_ISREG
-+#define S_ISREG(mode) ((mode & S_IFMT) == S_IFREG)
-+#endif
-+
-+/*
- * Scroll hints are useless when hashmap is used
- */
- #if !USE_SCROLL_HINTS
-@@ -208,6 +244,8 @@
- #define if_USE_SCROLL_HINTS(stmt) /*nothing*/
- #endif
-
-+#include <nc_string.h>
-+
- /*
- * Options for terminal drivers, etc...
- */
-@@ -325,6 +363,7 @@
- #endif
-
- #include <term.h>
-+#include <nc_termios.h>
-
- /*
- * Reduce dependency on cur_term global by using terminfo data from SCREEN's
-@@ -365,7 +404,7 @@
- #define if_EXT_COLORS(stmt) stmt
- #define SetPair(value,p) SetPair2((value).ext_color, AttrOf(value), p)
- #define SetPair2(c,a,p) c = (p), \
-- a = (unColor2(a) | (A_COLOR & ColorPair(oldColor(c))))
-+ a = (unColor2(a) | (A_COLOR & (unsigned) ColorPair(oldColor(c))))
- #define GetPair(value) GetPair2((value).ext_color, AttrOf(value))
- #define GetPair2(c,a) ((c) ? (c) : PairNumber(a))
- #define oldColor(p) (((p) > 255) ? 255 : (p))
-@@ -373,11 +412,7 @@
- #define SET_WINDOW_PAIR(w,p) (w)->_color = (p)
- #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b))
-
--#if NCURSES_SP_FUNCS
--#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vid_attr)(sp, attr, pair, 0)
--#else
--#define VIDATTR(sp,attr,pair) vid_attr(attr, pair, 0)
--#endif
-+#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vid_puts)(NCURSES_SP_ARGx attr, (short) pair, 0, NCURSES_OUTC_FUNC)
-
- #else /* !NCURSES_EXT_COLORS */
-
-@@ -390,14 +425,14 @@
- WINDOW_ATTRS(w) |= (A_COLOR & (attr_t) ColorPair(p))
- #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b))
-
--#if NCURSES_SP_FUNCS
--#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidattr)(sp, attr)
--#else
--#define VIDATTR(sp,attr,pair) vidattr(attr)
--#endif
-+#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidputs)(NCURSES_SP_ARGx attr, NCURSES_OUTC_FUNC)
-
- #endif /* NCURSES_EXT_COLORS */
-
-+#define NCURSES_OUTC_FUNC NCURSES_SP_NAME(_nc_outch)
-+#define NCURSES_PUTP2(name,value) NCURSES_SP_NAME(_nc_putp)(NCURSES_SP_ARGx name, value)
-+#define NCURSES_PUTP2_FLUSH(name,value) NCURSES_SP_NAME(_nc_putp_flush)(NCURSES_SP_ARGx name, value)
-+
- #if NCURSES_NO_PADDING
- #define GetNoPadding(sp) ((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding)
- #define SetNoPadding(sp) _nc_set_no_padding(sp)
-@@ -467,6 +502,9 @@
- # endif
- # define _declare(name) __extension__ extern __typeof__(name) name
- # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
-+#else
-+# undef USE_WEAK_SYMBOLS
-+# define USE_WEAK_SYMBOLS 0
- #endif
- #endif
-
-@@ -665,6 +703,9 @@
- #if USE_GPM_SUPPORT
- #undef buttons /* term.h defines this, and gpm uses it! */
- #include <gpm.h>
-+#if USE_WEAK_SYMBOLS
-+weak_symbol(Gpm_Wgetch);
-+#endif
-
- #ifdef HAVE_LIBDL
- /* link dynamically to GPM */
-@@ -766,17 +807,23 @@
- #define INIT_TERM_DRIVER() /* nothing */
- #endif
-
-+typedef struct {
-+ const char *name;
-+ char *value;
-+} ITERATOR_VARS;
-+
- /*
- * Global data which is not specific to a screen.
- */
- typedef struct {
-+ SIG_ATOMIC_T have_sigtstp;
- SIG_ATOMIC_T have_sigwinch;
- SIG_ATOMIC_T cleanup_nested;
-
- bool init_signals;
- bool init_screen;
-
-- const char *comp_sourcename;
-+ char *comp_sourcename;
- char *comp_termtype;
-
- bool have_tic_directory;
-@@ -798,6 +845,12 @@
- int tgetent_index;
- long tgetent_sequence;
-
-+ char *dbd_blob; /* string-heap for dbd_list[] */
-+ char **dbd_list; /* distinct places to look for data */
-+ int dbd_size; /* length of dbd_list[] */
-+ time_t dbd_time; /* cache last updated */
-+ ITERATOR_VARS dbd_vars[dbdLAST];
-+
- #ifndef USE_SP_WINDOWLIST
- WINDOWLIST *_nc_windowlist;
- #define WindowList(sp) _nc_globals._nc_windowlist
-@@ -891,6 +944,7 @@
- const char *_tputs_trace;
- #endif
- #endif
-+ bool use_tioctl;
- } NCURSES_PRESCREEN;
-
- /*
-@@ -911,11 +965,13 @@
- */
-
- struct screen {
-- int _ifd; /* input file ptr for screen */
-+ int _ifd; /* input file descriptor for screen */
-+ int _ofd; /* output file descriptor for screen */
- FILE *_ofp; /* output file ptr for screen */
-- char *_setbuf; /* buffered I/O for output */
-+ char *out_buffer; /* output buffer */
-+ size_t out_limit; /* output buffer size */
-+ size_t out_inuse; /* output buffer current use */
- bool _filtered; /* filter() was called */
-- bool _buffered; /* setvbuf uses _setbuf data */
- bool _prescreen; /* is in prescreen phase */
- bool _use_env; /* LINES & COLS from environment? */
- int _checkfd; /* filedesc for typeahead check */
-@@ -1015,6 +1071,7 @@
- int _pair_count; /* count of color pairs */
- int _pair_limit; /* actual limit of color-pairs */
- #if NCURSES_EXT_FUNCS
-+ bool _assumed_color; /* use assumed colors */
- bool _default_color; /* use default colors */
- bool _has_sgr_39_49; /* has ECMA default color support */
- int _default_fg; /* assumed default foreground */
-@@ -1032,6 +1089,10 @@
- bool _use_rmso; /* true if we may use 'rmso' */
- bool _use_rmul; /* true if we may use 'rmul' */
-
-+#if USE_KLIBC_KBD
-+ bool _extended_key; /* true if an extended key */
-+#endif
-+
- /*
- * These data correspond to the state of the idcok() and idlok()
- * functions. A caveat is in order here: the XSI and SVr4
-@@ -1055,7 +1116,9 @@
- void (*_mouse_wrap) (SCREEN *);
- int _mouse_fd; /* file-descriptor, if any */
- bool _mouse_active; /* true if initialized */
-- mmask_t _mouse_mask;
-+ mmask_t _mouse_mask; /* set via mousemask() */
-+ mmask_t _mouse_mask2; /* OR's in press/release bits */
-+ mmask_t _mouse_bstate;
- NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */
- MEVENT _mouse_events[EV_MAX]; /* hold the last mouse event seen */
- MEVENT *_mouse_eventp; /* next free slot in event queue */
-@@ -1102,6 +1165,7 @@
- */
- #if USE_SIZECHANGE
- int (*_resize)(NCURSES_SP_DCLx int y, int x);
-+ int (*_ungetch)(SCREEN *, int);
- #endif
-
- /*
-@@ -1120,7 +1184,6 @@
- int *_oldnum_list;
- int _oldnum_size;
-
-- bool _cleanup; /* cleanup after int/quit signal */
- NCURSES_SP_OUTC _outch; /* output handler if not putc */
-
- int _legacy_coding; /* see use_legacy_coding() */
-@@ -1158,7 +1221,10 @@
- * UTF-8, but do not permit ACS at the same time (see tty_update.c).
- */
- bool _screen_acs_fix;
-+ bool _screen_unicode;
- #endif
-+
-+ bool _use_tioctl;
- };
-
- extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
-@@ -1168,7 +1234,7 @@
- WINDOWLIST *next;
- SCREEN *screen; /* screen containing the window */
- WINDOW win; /* WINDOW_EXT() needs to account for offset */
--#ifdef NCURSES_WIDECHAR
-+#if NCURSES_WIDECHAR
- char addch_work[(MB_LEN_MAX * 9) + 1];
- unsigned addch_used; /* number of bytes in addch_work[] */
- int addch_x; /* x-position for addch_work[] */
-@@ -1189,7 +1255,7 @@
- sp->_endwin = TRUE; \
- sp->_cursor = -1; \
- WindowList(sp) = 0; \
-- sp->_outch = NCURSES_SP_NAME(_nc_outch); \
-+ sp->_outch = NCURSES_OUTC_FUNC; \
- sp->jump = 0 \
-
- /* usually in <limits.h> */
-@@ -1322,9 +1388,9 @@
- #define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \
- mbstate_t PUT_st; wchar_t PUTC_ch
- #define PUTC_INIT init_mb (PUT_st)
--#define PUTC(ch,b) do { if(!isWidecExt(ch)) { \
-+#define PUTC(ch) do { if(!isWidecExt(ch)) { \
- if (Charable(ch)) { \
-- fputc(CharOf(ch), b); \
-+ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \
- COUNT_OUTCHARS(1); \
- } else { \
- PUTC_INIT; \
-@@ -1336,10 +1402,14 @@
- (ch).chars[PUTC_i], &PUT_st); \
- if (PUTC_n <= 0) { \
- if (PUTC_ch && is8bits(PUTC_ch) && PUTC_i == 0) \
-- putc(PUTC_ch,b); \
-+ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \
- break; \
-+ } else { \
-+ int PUTC_j; \
-+ for (PUTC_j = 0; PUTC_j < PUTC_n; ++PUTC_j) { \
-+ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx PUTC_buf[PUTC_j]); \
-+ } \
- } \
-- IGNORE_RC(fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b)); \
- } \
- COUNT_OUTCHARS(PUTC_i); \
- } } } while (0)
-@@ -1362,7 +1432,7 @@
- AttrOf(dst) |= (attr_t) (ext + 1)
-
- #define if_WIDEC(code) code
--#define Charable(ch) ((SP_PARM != 0 && SP_PARM->_legacy_coding) \
-+#define Charable(ch) ((SP_PARM->_legacy_coding) \
- || (AttrOf(ch) & A_ALTCHARSET) \
- || (!isWidecExt(ch) && \
- (ch).chars[1] == L'\0' && \
-@@ -1383,8 +1453,8 @@
- #define CHDEREF(wch) wch
- #define ARG_CH_T NCURSES_CH_T
- #define CARG_CH_T NCURSES_CH_T
--#define PUTC_DATA int data = 0
--#define PUTC(ch,b) do { data = CharOf(ch); putc(data,b); } while (0)
-+#define PUTC_DATA /* nothing */
-+#define PUTC(ch) NCURSES_OUTC_FUNC (NCURSES_SP_ARGx (int) ch)
-
- #define BLANK (' '|A_NORMAL)
- #define ZEROS ('\0'|A_NORMAL)
-@@ -1412,25 +1482,25 @@
-
- #define CHANGED_CELL(line,col) \
- if (line->firstchar == _NOCHANGE) \
-- line->firstchar = line->lastchar = (NCURSES_SIZE_T) col; \
-+ line->firstchar = line->lastchar = (NCURSES_SIZE_T) (col); \
- else if ((col) < line->firstchar) \
-- line->firstchar = (NCURSES_SIZE_T) col; \
-+ line->firstchar = (NCURSES_SIZE_T) (col); \
- else if ((col) > line->lastchar) \
-- line->lastchar = (NCURSES_SIZE_T) col
-+ line->lastchar = (NCURSES_SIZE_T) (col)
-
- #define CHANGED_RANGE(line,start,end) \
- if (line->firstchar == _NOCHANGE \
- || line->firstchar > (start)) \
-- line->firstchar = (NCURSES_SIZE_T) start; \
-+ line->firstchar = (NCURSES_SIZE_T) (start); \
- if (line->lastchar == _NOCHANGE \
- || line->lastchar < (end)) \
-- line->lastchar = (NCURSES_SIZE_T) end
-+ line->lastchar = (NCURSES_SIZE_T) (end)
-
- #define CHANGED_TO_EOL(line,start,end) \
- if (line->firstchar == _NOCHANGE \
- || line->firstchar > (start)) \
-- line->firstchar = (NCURSES_SIZE_T) start; \
-- line->lastchar = (NCURSES_SIZE_T) end
-+ line->firstchar = (NCURSES_SIZE_T) (start); \
-+ line->lastchar = (NCURSES_SIZE_T) (end)
-
- #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
-
-@@ -1444,6 +1514,20 @@
- #include <nc_alloc.h>
-
- /*
-+ * Use these for tic/infocmp malloc failures. Generally the ncurses library
-+ * tries to limp along after a failure.
-+ */
-+#define TYPE_MALLOC(type, size, name) \
-+ name = typeMalloc(type, size); \
-+ if (name == 0) \
-+ _nc_err_abort(MSG_NO_MEMORY)
-+
-+#define TYPE_REALLOC(type, size, name) \
-+ name = typeRealloc(type, size, name); \
-+ if (name == 0) \
-+ _nc_err_abort(MSG_NO_MEMORY)
-+
-+/*
- * TTY bit definition for converting tabs to spaces.
- */
- #ifdef TAB3
-@@ -1528,7 +1612,7 @@
- #define returnVoidPtr(code) TRACE_RETURN(code,void_ptr)
- #define returnWin(code) TRACE_RETURN(code,win)
-
--extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (NCURSES_BOOL);
-+extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (int);
- extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);
- extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *);
- extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *);
-@@ -1539,7 +1623,7 @@
- extern NCURSES_EXPORT(chtype) _nc_retrace_chtype (chtype);
- extern NCURSES_EXPORT(const char *) _nc_altcharset_name(attr_t, chtype);
- extern NCURSES_EXPORT(const char *) _nc_retrace_cptr (const char *);
--extern NCURSES_EXPORT(char) _nc_retrace_char (char);
-+extern NCURSES_EXPORT(char) _nc_retrace_char (int);
- extern NCURSES_EXPORT(int) _nc_retrace_int (int);
- extern NCURSES_EXPORT(int) _nc_retrace_int_attr_t (attr_t);
- extern NCURSES_EXPORT(mmask_t) _nc_retrace_mmask_t (SCREEN *, mmask_t);
-@@ -1795,6 +1879,8 @@
- /* lib_mvcur.c */
- #define INFINITY 1000000 /* cost: too high to use */
-
-+extern NCURSES_EXPORT(int) _nc_mvcur(int yold, int xold, int ynew, int xnew);
-+
- extern NCURSES_EXPORT(void) _nc_mvcur_init (void);
- extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);
- extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);
-@@ -1816,12 +1902,31 @@
- extern NCURSES_EXPORT(char *) _nc_get_locale(void);
- extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
- extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(TERMINAL *);
--extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
--extern NCURSES_EXPORT(void) _nc_tinfo_cmdch(TERMINAL *, char);
-+extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, int);
-+extern NCURSES_EXPORT(void) _nc_tinfo_cmdch(TERMINAL *, int);
-
- /* lib_set_term.c */
- extern NCURSES_EXPORT(int) _nc_ripoffline(int, int(*)(WINDOW*, int));
-
-+/* lib_setup.c */
-+#define ret_error(code, fmt, arg) if (errret) {\
-+ *errret = code;\
-+ returnCode(ERR);\
-+ } else {\
-+ fprintf(stderr, fmt, arg);\
-+ exit(EXIT_FAILURE);\
-+ }
-+
-+#define ret_error1(code, fmt, arg) ret_error(code, "'%s': " fmt, arg)
-+
-+#define ret_error0(code, msg) if (errret) {\
-+ *errret = code;\
-+ returnCode(ERR);\
-+ } else {\
-+ fprintf(stderr, msg);\
-+ exit(EXIT_FAILURE);\
-+ }
-+
- /* lib_tstp.c */
- #if USE_SIGWINCH
- extern NCURSES_EXPORT(int) _nc_handle_sigwinch(SCREEN *);
-@@ -1875,16 +1980,17 @@
- extern NCURSES_EXPORT(int) _nc_baudrate (int);
- extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
- extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);
--extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, bool);
-+extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, int);
- extern NCURSES_EXPORT(int) _nc_ospeed (int);
- extern NCURSES_EXPORT(int) _nc_outch (int);
-+extern NCURSES_EXPORT(int) _nc_putchar (int);
- extern NCURSES_EXPORT(int) _nc_putp(const char *, const char *);
- extern NCURSES_EXPORT(int) _nc_putp_flush(const char *, const char *);
- extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);
--extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int);
- extern NCURSES_EXPORT(int) _nc_setup_tinfo(const char *, TERMTYPE *);
-+extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, int, int);
- extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
--extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, NCURSES_OUTC);
-+extern NCURSES_EXPORT(void) _nc_do_color (int, int, int, NCURSES_OUTC);
- extern NCURSES_EXPORT(void) _nc_flush (void);
- extern NCURSES_EXPORT(void) _nc_free_and_exit (int) GCC_NORETURN;
- extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *);
-@@ -1895,8 +2001,9 @@
- extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
- extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);
- extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);
--extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
--extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
-+extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, int);
-+extern NCURSES_EXPORT(void) _nc_setenv_num (const char *, int);
-+extern NCURSES_EXPORT(void) _nc_signal_handler (int);
- extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
- extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *);
-
-@@ -1905,7 +2012,9 @@
- extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
- extern NCURSES_EXPORT(void) _nc_codes_leaks(void);
- extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void);
-+extern NCURSES_EXPORT(void) _nc_comp_error_leaks(void);
- extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
-+extern NCURSES_EXPORT(void) _nc_db_iterator_leaks(void);
- extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
- extern NCURSES_EXPORT(void) _nc_names_leaks(void);
- extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
-@@ -1914,7 +2023,7 @@
- #if !(defined(USE_TERMLIB) || defined(USE_BUILD_CC))
- extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
- extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);
--extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, NCURSES_SIZE_T const, NCURSES_SIZE_T const, NCURSES_CH_T);
-+extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, int const, int const, NCURSES_CH_T);
- #endif
-
- #if USE_WIDEC_SUPPORT
-@@ -1946,8 +2055,26 @@
- * Wide-character macros to hide some platform-differences.
- */
- #if USE_WIDEC_SUPPORT
-+
-+#if defined(__MINGW32__)
-+/*
-+ * MinGW has wide-character functions, but they do not work correctly.
-+ */
-+
-+extern int __MINGW_NOTHROW _nc_wctomb(char *, wchar_t);
-+#define wctomb(s,wc) _nc_wctomb(s,wc)
-+#define wcrtomb(s,wc,n) _nc_wctomb(s,wc)
-+
-+extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *, const char *, size_t);
-+#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n)
-+
-+extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t);
-+#define mblen(s,n) _nc_mblen(s, n)
-+
-+#endif /* __MINGW32__ */
-+
- #if HAVE_MBTOWC && HAVE_MBLEN
--#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0))
-+#define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0))
- #define count_mbytes(buffer,length,state) mblen(buffer,length)
- #define check_mbytes(wch,buffer,length,state) \
- (int) mbtowc(&wch, buffer, length)
-@@ -1960,7 +2087,8 @@
- #else
- make an error
- #endif
--#endif
-+
-+#endif /* USE_WIDEC_SUPPORT */
-
- /*
- * Not everyone has vsscanf(), but we'd like to use it for scanw().
-@@ -2049,9 +2177,9 @@
-
- #define SetSafeOutcWrapper(outc) \
- SCREEN* sp = CURRENT_SCREEN; \
-+ struct screen outc_wrapper; \
- if (sp==0) { \
-- struct screen dummy; \
-- sp = &dummy; \
-+ sp = &outc_wrapper; \
- memset(sp,0,sizeof(struct screen)); \
- sp->_outch = _nc_outc_wrapper; \
- }\
-@@ -2084,39 +2212,39 @@
-
- typedef struct term_driver {
- bool isTerminfo;
-- bool (*CanHandle)(struct DriverTCB*,const char*,int*);
-+ bool (*CanHandle)(struct DriverTCB*, const char*, int*);
- void (*init)(struct DriverTCB*);
- void (*release)(struct DriverTCB*);
- int (*size)(struct DriverTCB*, int* Line, int *Cols);
-- int (*sgmode)(struct DriverTCB*, bool setFlag, TTY*);
-+ int (*sgmode)(struct DriverTCB*, int setFlag, TTY*);
- chtype (*conattr)(struct DriverTCB*);
- int (*hwcur)(struct DriverTCB*, int yold, int xold, int y, int x);
-- int (*mode)(struct DriverTCB*, bool progFlag, bool defFlag);
-+ int (*mode)(struct DriverTCB*, int progFlag, int defFlag);
- bool (*rescol)(struct DriverTCB*);
- bool (*rescolors)(struct DriverTCB*);
-- void (*color)(struct DriverTCB*,bool fore, int color, int(*)(SCREEN*,int));
-- int (*doBeepOrFlash)(struct DriverTCB*, bool);
-- void (*initpair)(struct DriverTCB*,short,short,short);
-- void (*initcolor)(struct DriverTCB*,short,short,short,short);
-- void (*docolor)(struct DriverTCB*,short,short,bool,int(*)(SCREEN*,int));
-+ void (*color)(struct DriverTCB*, int fore, int color, int(*)(SCREEN*, int));
-+ int (*doBeepOrFlash)(struct DriverTCB*, int);
-+ void (*initpair)(struct DriverTCB*, int, int, int);
-+ void (*initcolor)(struct DriverTCB*, int, int, int, int);
-+ void (*docolor)(struct DriverTCB*, int, int, int, int(*)(SCREEN*, int));
- void (*initmouse)(struct DriverTCB*);
-- int (*testmouse)(struct DriverTCB*,int);
-+ int (*testmouse)(struct DriverTCB*, int EVENTLIST_2nd(_nc_eventlist*));
- void (*setfilter)(struct DriverTCB*);
-- void (*hwlabel)(struct DriverTCB*,int,char*);
-- void (*hwlabelOnOff)(struct DriverTCB*,bool);
-+ void (*hwlabel)(struct DriverTCB*, int, char*);
-+ void (*hwlabelOnOff)(struct DriverTCB*, int);
- int (*update)(struct DriverTCB*);
-- int (*defaultcolors)(struct DriverTCB*,int,int);
-- int (*print)(struct DriverTCB*,char*,int);
-- int (*getsize)(struct DriverTCB*,int*,int*);
-- int (*setsize)(struct DriverTCB*,int,int);
-- void (*initacs)(struct DriverTCB*,chtype*,chtype*);
-+ int (*defaultcolors)(struct DriverTCB*, int, int);
-+ int (*print)(struct DriverTCB*, char*, int);
-+ int (*getsize)(struct DriverTCB*, int*, int*);
-+ int (*setsize)(struct DriverTCB*, int, int);
-+ void (*initacs)(struct DriverTCB*, chtype*, chtype*);
- void (*scinit)(SCREEN *);
- void (*scexit)(SCREEN *);
-- int (*twait)(struct DriverTCB*,int,int,int* EVENTLIST_2nd(_nc_eventlist*));
-- int (*read)(struct DriverTCB*,int*);
-- int (*nap)(struct DriverTCB*,int);
-- int (*kpad)(struct DriverTCB*, bool);
-- int (*kyOk)(struct DriverTCB*, int, bool);
-+ int (*twait)(struct DriverTCB*, int, int, int* EVENTLIST_2nd(_nc_eventlist*));
-+ int (*read)(struct DriverTCB*, int*);
-+ int (*nap)(struct DriverTCB*, int);
-+ int (*kpad)(struct DriverTCB*, int);
-+ int (*kyOk)(struct DriverTCB*, int, int);
- bool (*kyExist)(struct DriverTCB*, int);
- } TERM_DRIVER;
-
-@@ -2166,7 +2294,7 @@
- #else
- #define TINFO_HAS_KEY NCURSES_SP_NAME(has_key)
- #define TINFO_DOUPDATE NCURSES_SP_NAME(doupdate)
--#define TINFO_MVCUR NCURSES_SP_NAME(mvcur)
-+#define TINFO_MVCUR NCURSES_SP_NAME(_nc_mvcur)
- #endif
-
- /*
-@@ -2174,7 +2302,7 @@
- */
- #ifdef USE_TERM_DRIVER
- extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, TERMINAL *, int *, int *);
--extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, NCURSES_CONST char *, int , int *, bool);
-+extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, NCURSES_CONST char *, int , int *, int);
- #define TINFO_GET_SIZE(sp, tp, lp, cp) \
- _nc_get_screensize(sp, tp, lp, cp)
- #define TINFO_SET_CURTERM(sp, tp) \
-@@ -2239,7 +2367,9 @@
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_get_tty_mode)(SCREEN*,TTY*);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_mcprint)(SCREEN*,char*, int);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_msec_cost)(SCREEN*, const char *, int);
-+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_mvcur)(SCREEN*, int, int, int, int);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_outch)(SCREEN*, int);
-+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putchar)(SCREEN*, int);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putp)(SCREEN*, const char *, const char*);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putp_flush)(SCREEN*, const char *, const char *);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_resetty)(SCREEN*);
-@@ -2250,12 +2380,12 @@
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_scr_restore)(SCREEN*, const char*);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_scrolln)(SCREEN*, int, int, int, int);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_set_tty_mode)(SCREEN*, TTY*);
--extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_setupscreen)(SCREEN**, int, int, FILE *, bool, int);
-+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_setupscreen)(SCREEN**, int, int, FILE *, int, int);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_tgetent)(SCREEN*,char*,const char *);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_tigetnum)(SCREEN*,NCURSES_CONST char*);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_vid_attr)(SCREEN *, attr_t, short, void *);
- extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_vidputs)(SCREEN*,chtype,int(*) (SCREEN*, int));
--extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_color)(SCREEN*, short, short, bool, NCURSES_SP_OUTC);
-+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_color)(SCREEN*, int, int, int, NCURSES_SP_OUTC);
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_xmc_glitch)(SCREEN*, attr_t);
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_flush)(SCREEN*);
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
-@@ -2271,7 +2401,7 @@
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_screen_wrap)(SCREEN*);
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_scroll_oldhash)(SCREEN*, int n, int top, int bot);
- extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_scroll_optimize)(SCREEN*);
--extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, bool);
-+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, int);
-
- extern NCURSES_EXPORT(void) _nc_cookie_init(SCREEN *sp);
-
-Index: ncurses/fifo_defs.h
-Prereq: 1.6
---- ncurses-5.9/ncurses/fifo_defs.h 2008-06-28 15:52:32.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/fifo_defs.h 2012-08-04 15:59:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2002,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
- /*
- * Common macros for lib_getch.c, lib_ungetch.c
- *
-- * $Id: fifo_defs.h,v 1.6 2008/06/28 15:52:32 tom Exp $
-+ * $Id: fifo_defs.h,v 1.7 2012/08/04 15:59:17 tom Exp $
- */
-
- #ifndef FIFO_DEFS_H
-@@ -45,14 +45,42 @@
- /* peek points to next uninterpreted character */
- #define peek sp->_fifopeek
-
--#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
--#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
--#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
--#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear(sp);}
--#define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;}
-+#define h_inc() { \
-+ (head >= FIFO_SIZE-1) \
-+ ? head = 0 \
-+ : head++; \
-+ if (head == tail) \
-+ head = -1, tail = 0; \
-+ }
-+#define h_dec() { \
-+ (head <= 0) \
-+ ? head = FIFO_SIZE-1 \
-+ : head--; \
-+ if (head == tail) \
-+ tail = -1; \
-+ }
-+#define t_inc() { \
-+ (tail >= FIFO_SIZE-1) \
-+ ? tail = 0 \
-+ : tail++; \
-+ if (tail == head) \
-+ tail = -1; \
-+ }
-+#define t_dec() { \
-+ (tail <= 0) \
-+ ? tail = FIFO_SIZE-1 \
-+ : tail--; \
-+ if (head == tail) \
-+ fifo_clear(sp); \
-+ }
-+#define p_inc() { \
-+ (peek >= FIFO_SIZE-1) \
-+ ? peek = 0 \
-+ : peek++; \
-+ }
-
--#define cooked_key_in_fifo() ((head != -1) && (peek != head))
--#define raw_key_in_fifo() ((head != -1) && (peek != tail))
-+#define cooked_key_in_fifo() ((head >= 0) && (peek != head))
-+#define raw_key_in_fifo() ((head >= 0) && (peek != tail))
-
- #undef HIDE_EINTR
-
-Index: ncurses/llib-lncurses
---- ncurses-5.9/ncurses/llib-lncurses 2011-01-08 18:57:00.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-lncurses 2012-07-14 17:39:00.000000000 +0000
-@@ -3369,6 +3369,17 @@
- NCURSES_BOOL f)
- { /* void */ }
-
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl
-+void use_tioctl(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
- #undef _nc_get_screensize
- void _nc_get_screensize(
- SCREEN *sp,
-Index: ncurses/llib-lncursest
---- ncurses-5.9/ncurses/llib-lncursest 2011-01-08 19:03:20.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-lncursest 2012-07-14 17:39:00.000000000 +0000
-@@ -3449,6 +3449,17 @@
- NCURSES_BOOL f)
- { /* void */ }
-
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl
-+void use_tioctl(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
- #undef _nc_get_screensize
- void _nc_get_screensize(
- SCREEN *sp,
-Index: ncurses/llib-lncursestw
---- ncurses-5.9/ncurses/llib-lncursestw 2011-01-08 19:11:35.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-lncursestw 2012-07-14 17:39:00.000000000 +0000
-@@ -4234,6 +4234,17 @@
- NCURSES_BOOL f)
- { /* void */ }
-
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioct
-+void use_tioct(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
- #undef _nc_get_screensize
- void _nc_get_screensize(
- SCREEN *sp,
-Index: ncurses/llib-lncursesw
---- ncurses-5.9/ncurses/llib-lncursesw 2011-01-08 19:01:11.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-lncursesw 2012-07-14 17:39:00.000000000 +0000
-@@ -4154,6 +4154,17 @@
- NCURSES_BOOL f)
- { /* void */ }
-
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl
-+void use_tioctl(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
- #undef _nc_get_screensize
- void _nc_get_screensize(
- SCREEN *sp,
-Index: ncurses/llib-ltic
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-ltic 2012-06-30 20:16:16.000000000 +0000
-@@ -0,0 +1,212 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+/* LINTLIBRARY */
-+
-+/* ./tinfo/alloc_entry.c */
-+
-+#include <curses.priv.h>
-+#include <tic.h>
-+
-+#undef _nc_init_entry
-+void _nc_init_entry(
-+ TERMTYPE *const tp)
-+ { /* void */ }
-+
-+#undef _nc_copy_entry
-+ENTRY *_nc_copy_entry(
-+ ENTRY *oldp)
-+ { return(*(ENTRY **)0); }
-+
-+#undef _nc_save_str
-+char *_nc_save_str(
-+ const char *const string)
-+ { return(*(char **)0); }
-+
-+#undef _nc_wrap_entry
-+void _nc_wrap_entry(
-+ ENTRY *const ep,
-+ NCURSES_BOOL copy_strings)
-+ { /* void */ }
-+
-+#undef _nc_merge_entry
-+void _nc_merge_entry(
-+ TERMTYPE *const to,
-+ TERMTYPE *const from)
-+ { /* void */ }
-+
-+/* ./tinfo/captoinfo.c */
-+
-+#include <ctype.h>
-+
-+#undef _nc_captoinfo
-+char *_nc_captoinfo(
-+ const char *cap,
-+ const char *s,
-+ int const parameterized)
-+ { return(*(char **)0); }
-+
-+#undef _nc_infotocap
-+char *_nc_infotocap(
-+ const char *cap,
-+ const char *str,
-+ int const parameterized)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/comp_expand.c */
-+
-+#undef _nc_tic_expand
-+char *_nc_tic_expand(
-+ const char *srcp,
-+ NCURSES_BOOL tic_format,
-+ int numbers)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/comp_parse.c */
-+
-+#undef _nc_check_termtype2
-+void (*_nc_check_termtype2)(
-+ TERMTYPE *p1,
-+ NCURSES_BOOL p2);
-+#undef _nc_check_termtype
-+void (*_nc_check_termtype)(
-+ TERMTYPE *p1);
-+
-+#undef _nc_entry_match
-+NCURSES_BOOL _nc_entry_match(
-+ char *n1,
-+ char *n2)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_read_entry_source
-+void _nc_read_entry_source(
-+ FILE *fp,
-+ char *buf,
-+ int literal,
-+ NCURSES_BOOL silent,
-+ NCURSES_BOOL (*hook)(
-+ ENTRY *p1))
-+ { /* void */ }
-+
-+#undef _nc_resolve_uses2
-+int _nc_resolve_uses2(
-+ NCURSES_BOOL fullresolve,
-+ NCURSES_BOOL literal)
-+ { return(*(int *)0); }
-+
-+#undef _nc_resolve_uses
-+int _nc_resolve_uses(
-+ NCURSES_BOOL fullresolve)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/comp_scan.c */
-+
-+#undef _nc_syntax
-+int _nc_syntax;
-+#undef _nc_strict_bsd
-+int _nc_strict_bsd;
-+#undef _nc_curr_file_pos
-+long _nc_curr_file_pos;
-+#undef _nc_comment_start
-+long _nc_comment_start;
-+#undef _nc_comment_end
-+long _nc_comment_end;
-+#undef _nc_start_line
-+long _nc_start_line;
-+#undef _nc_curr_token
-+struct token _nc_curr_token;
-+#undef _nc_disable_period
-+NCURSES_BOOL _nc_disable_period;
-+
-+#undef _nc_reset_input
-+void _nc_reset_input(
-+ FILE *fp,
-+ char *buf)
-+ { /* void */ }
-+
-+#undef _nc_get_token
-+int _nc_get_token(
-+ NCURSES_BOOL silent)
-+ { return(*(int *)0); }
-+
-+#undef _nc_trans_string
-+int _nc_trans_string(
-+ char *ptr,
-+ char *last)
-+ { return(*(int *)0); }
-+
-+#undef _nc_push_token
-+void _nc_push_token(
-+ int tokclass)
-+ { /* void */ }
-+
-+#undef _nc_panic_mode
-+void _nc_panic_mode(
-+ char ch)
-+ { /* void */ }
-+
-+/* ./tinfo/parse_entry.c */
-+
-+#undef _nc_parse_entry
-+int _nc_parse_entry(
-+ struct entry *entryp,
-+ int literal,
-+ NCURSES_BOOL silent)
-+ { return(*(int *)0); }
-+
-+#undef _nc_capcmp
-+int _nc_capcmp(
-+ const char *s,
-+ const char *t)
-+ { return(*(int *)0); }
-+
-+typedef struct {
-+ const char *from;
-+ const char *to;
-+} assoc;
-+
-+/* ./tinfo/write_entry.c */
-+
-+#include <hashed_db.h>
-+
-+#undef _nc_set_writedir
-+void _nc_set_writedir(
-+ char *dir)
-+ { /* void */ }
-+
-+#undef _nc_write_entry
-+void _nc_write_entry(
-+ TERMTYPE *const tp)
-+ { /* void */ }
-+
-+#undef _nc_tic_written
-+int _nc_tic_written(void)
-+ { return(*(int *)0); }
-Index: ncurses/llib-ltictw
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-ltictw 2012-06-30 21:24:08.000000000 +0000
-@@ -0,0 +1,212 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+/* LINTLIBRARY */
-+
-+/* ./tinfo/alloc_entry.c */
-+
-+#include <curses.priv.h>
-+#include <tic.h>
-+
-+#undef _nc_init_entry
-+void _nc_init_entry(
-+ TERMTYPE *const tp)
-+ { /* void */ }
-+
-+#undef _nc_copy_entry
-+ENTRY *_nc_copy_entry(
-+ ENTRY *oldp)
-+ { return(*(ENTRY **)0); }
-+
-+#undef _nc_save_str
-+char *_nc_save_str(
-+ const char *const string)
-+ { return(*(char **)0); }
-+
-+#undef _nc_wrap_entry
-+void _nc_wrap_entry(
-+ ENTRY *const ep,
-+ NCURSES_BOOL copy_strings)
-+ { /* void */ }
-+
-+#undef _nc_merge_entry
-+void _nc_merge_entry(
-+ TERMTYPE *const to,
-+ TERMTYPE *const from)
-+ { /* void */ }
-+
-+/* ./tinfo/captoinfo.c */
-+
-+#include <ctype.h>
-+
-+#undef _nc_captoinfo
-+char *_nc_captoinfo(
-+ const char *cap,
-+ const char *s,
-+ int const parameterized)
-+ { return(*(char **)0); }
-+
-+#undef _nc_infotocap
-+char *_nc_infotocap(
-+ const char *cap,
-+ const char *str,
-+ int const parameterized)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/comp_expand.c */
-+
-+#undef _nc_tic_expand
-+char *_nc_tic_expand(
-+ const char *srcp,
-+ NCURSES_BOOL tic_format,
-+ int numbers)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/comp_parse.c */
-+
-+#undef _nc_check_termtype2
-+void (*_nc_check_termtype2)(
-+ TERMTYPE *p1,
-+ NCURSES_BOOL p2);
-+#undef _nc_check_termtype
-+void (*_nc_check_termtype)(
-+ TERMTYPE *p1);
-+
-+#undef _nc_entry_match
-+NCURSES_BOOL _nc_entry_match(
-+ char *n1,
-+ char *n2)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_read_entry_source
-+void _nc_read_entry_source(
-+ FILE *fp,
-+ char *buf,
-+ int literal,
-+ NCURSES_BOOL silent,
-+ NCURSES_BOOL (*hook)(
-+ ENTRY *p1))
-+ { /* void */ }
-+
-+#undef _nc_resolve_uses2
-+int _nc_resolve_uses2(
-+ NCURSES_BOOL fullresolve,
-+ NCURSES_BOOL literal)
-+ { return(*(int *)0); }
-+
-+#undef _nc_resolve_uses
-+int _nc_resolve_uses(
-+ NCURSES_BOOL fullresolve)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/comp_scan.c */
-+
-+#undef _nc_syntax
-+int _nc_syntax;
-+#undef _nc_strict_bsd
-+int _nc_strict_bsd;
-+#undef _nc_curr_file_pos
-+long _nc_curr_file_pos;
-+#undef _nc_comment_start
-+long _nc_comment_start;
-+#undef _nc_comment_end
-+long _nc_comment_end;
-+#undef _nc_start_line
-+long _nc_start_line;
-+#undef _nc_curr_token
-+struct token _nc_curr_token;
-+#undef _nc_disable_period
-+NCURSES_BOOL _nc_disable_period;
-+
-+#undef _nc_reset_input
-+void _nc_reset_input(
-+ FILE *fp,
-+ char *buf)
-+ { /* void */ }
-+
-+#undef _nc_get_token
-+int _nc_get_token(
-+ NCURSES_BOOL silent)
-+ { return(*(int *)0); }
-+
-+#undef _nc_trans_string
-+int _nc_trans_string(
-+ char *ptr,
-+ char *last)
-+ { return(*(int *)0); }
-+
-+#undef _nc_push_token
-+void _nc_push_token(
-+ int tokclass)
-+ { /* void */ }
-+
-+#undef _nc_panic_mode
-+void _nc_panic_mode(
-+ char ch)
-+ { /* void */ }
-+
-+/* ./tinfo/parse_entry.c */
-+
-+#undef _nc_parse_entry
-+int _nc_parse_entry(
-+ struct entry *entryp,
-+ int literal,
-+ NCURSES_BOOL silent)
-+ { return(*(int *)0); }
-+
-+#undef _nc_capcmp
-+int _nc_capcmp(
-+ const char *s,
-+ const char *t)
-+ { return(*(int *)0); }
-+
-+typedef struct {
-+ const char *from;
-+ const char *to;
-+} assoc;
-+
-+/* ./tinfo/write_entry.c */
-+
-+#include <hashed_db.h>
-+
-+#undef _nc_set_writedir
-+void _nc_set_writedir(
-+ char *dir)
-+ { /* void */ }
-+
-+#undef _nc_write_entry
-+void _nc_write_entry(
-+ TERMTYPE *const tp)
-+ { /* void */ }
-+
-+#undef _nc_tic_written
-+int _nc_tic_written(void)
-+ { return(*(int *)0); }
-Index: ncurses/llib-lticw
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-lticw 2012-06-30 21:00:26.000000000 +0000
-@@ -0,0 +1,212 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+/* LINTLIBRARY */
-+
-+/* ./tinfo/alloc_entry.c */
-+
-+#include <curses.priv.h>
-+#include <tic.h>
-+
-+#undef _nc_init_entry
-+void _nc_init_entry(
-+ TERMTYPE *const tp)
-+ { /* void */ }
-+
-+#undef _nc_copy_entry
-+ENTRY *_nc_copy_entry(
-+ ENTRY *oldp)
-+ { return(*(ENTRY **)0); }
-+
-+#undef _nc_save_str
-+char *_nc_save_str(
-+ const char *const string)
-+ { return(*(char **)0); }
-+
-+#undef _nc_wrap_entry
-+void _nc_wrap_entry(
-+ ENTRY *const ep,
-+ NCURSES_BOOL copy_strings)
-+ { /* void */ }
-+
-+#undef _nc_merge_entry
-+void _nc_merge_entry(
-+ TERMTYPE *const to,
-+ TERMTYPE *const from)
-+ { /* void */ }
-+
-+/* ./tinfo/captoinfo.c */
-+
-+#include <ctype.h>
-+
-+#undef _nc_captoinfo
-+char *_nc_captoinfo(
-+ const char *cap,
-+ const char *s,
-+ int const parameterized)
-+ { return(*(char **)0); }
-+
-+#undef _nc_infotocap
-+char *_nc_infotocap(
-+ const char *cap,
-+ const char *str,
-+ int const parameterized)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/comp_expand.c */
-+
-+#undef _nc_tic_expand
-+char *_nc_tic_expand(
-+ const char *srcp,
-+ NCURSES_BOOL tic_format,
-+ int numbers)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/comp_parse.c */
-+
-+#undef _nc_check_termtype2
-+void (*_nc_check_termtype2)(
-+ TERMTYPE *p1,
-+ NCURSES_BOOL p2);
-+#undef _nc_check_termtype
-+void (*_nc_check_termtype)(
-+ TERMTYPE *p1);
-+
-+#undef _nc_entry_match
-+NCURSES_BOOL _nc_entry_match(
-+ char *n1,
-+ char *n2)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_read_entry_source
-+void _nc_read_entry_source(
-+ FILE *fp,
-+ char *buf,
-+ int literal,
-+ NCURSES_BOOL silent,
-+ NCURSES_BOOL (*hook)(
-+ ENTRY *p1))
-+ { /* void */ }
-+
-+#undef _nc_resolve_uses2
-+int _nc_resolve_uses2(
-+ NCURSES_BOOL fullresolve,
-+ NCURSES_BOOL literal)
-+ { return(*(int *)0); }
-+
-+#undef _nc_resolve_uses
-+int _nc_resolve_uses(
-+ NCURSES_BOOL fullresolve)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/comp_scan.c */
-+
-+#undef _nc_syntax
-+int _nc_syntax;
-+#undef _nc_strict_bsd
-+int _nc_strict_bsd;
-+#undef _nc_curr_file_pos
-+long _nc_curr_file_pos;
-+#undef _nc_comment_start
-+long _nc_comment_start;
-+#undef _nc_comment_end
-+long _nc_comment_end;
-+#undef _nc_start_line
-+long _nc_start_line;
-+#undef _nc_curr_token
-+struct token _nc_curr_token;
-+#undef _nc_disable_period
-+NCURSES_BOOL _nc_disable_period;
-+
-+#undef _nc_reset_input
-+void _nc_reset_input(
-+ FILE *fp,
-+ char *buf)
-+ { /* void */ }
-+
-+#undef _nc_get_token
-+int _nc_get_token(
-+ NCURSES_BOOL silent)
-+ { return(*(int *)0); }
-+
-+#undef _nc_trans_string
-+int _nc_trans_string(
-+ char *ptr,
-+ char *last)
-+ { return(*(int *)0); }
-+
-+#undef _nc_push_token
-+void _nc_push_token(
-+ int tokclass)
-+ { /* void */ }
-+
-+#undef _nc_panic_mode
-+void _nc_panic_mode(
-+ char ch)
-+ { /* void */ }
-+
-+/* ./tinfo/parse_entry.c */
-+
-+#undef _nc_parse_entry
-+int _nc_parse_entry(
-+ struct entry *entryp,
-+ int literal,
-+ NCURSES_BOOL silent)
-+ { return(*(int *)0); }
-+
-+#undef _nc_capcmp
-+int _nc_capcmp(
-+ const char *s,
-+ const char *t)
-+ { return(*(int *)0); }
-+
-+typedef struct {
-+ const char *from;
-+ const char *to;
-+} assoc;
-+
-+/* ./tinfo/write_entry.c */
-+
-+#include <hashed_db.h>
-+
-+#undef _nc_set_writedir
-+void _nc_set_writedir(
-+ char *dir)
-+ { /* void */ }
-+
-+#undef _nc_write_entry
-+void _nc_write_entry(
-+ TERMTYPE *const tp)
-+ { /* void */ }
-+
-+#undef _nc_tic_written
-+int _nc_tic_written(void)
-+ { return(*(int *)0); }
-Index: ncurses/llib-ltinfo
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-ltinfo 2012-07-14 17:39:00.000000000 +0000
-@@ -0,0 +1,1504 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+/* LINTLIBRARY */
-+
-+/* ./tinfo/access.c */
-+
-+#include <curses.priv.h>
-+#include <ctype.h>
-+#include <tic.h>
-+
-+#undef _nc_rootname
-+char *_nc_rootname(
-+ char *path)
-+ { return(*(char **)0); }
-+
-+#undef _nc_is_abs_path
-+NCURSES_BOOL _nc_is_abs_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_pathlast
-+unsigned _nc_pathlast(
-+ const char *path)
-+ { return(*(unsigned *)0); }
-+
-+#undef _nc_basename
-+char *_nc_basename(
-+ char *path)
-+ { return(*(char **)0); }
-+
-+#undef _nc_access
-+int _nc_access(
-+ const char *path,
-+ int mode)
-+ { return(*(int *)0); }
-+
-+#undef _nc_is_dir_path
-+NCURSES_BOOL _nc_is_dir_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_is_file_path
-+NCURSES_BOOL _nc_is_file_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_env_access
-+int _nc_env_access(void)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/add_tries.c */
-+
-+#undef _nc_add_to_try
-+int _nc_add_to_try(
-+ TRIES **tree,
-+ const char *str,
-+ unsigned code)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/alloc_ttype.c */
-+
-+#undef _nc_align_termtype
-+void _nc_align_termtype(
-+ TERMTYPE *to,
-+ TERMTYPE *from)
-+ { /* void */ }
-+
-+#undef _nc_copy_termtype
-+void _nc_copy_termtype(
-+ TERMTYPE *dst,
-+ const TERMTYPE *src)
-+ { /* void */ }
-+
-+/* ./codes.c */
-+
-+#undef boolcodes
-+char *const boolcodes[] = {0};
-+#undef numcodes
-+char *const numcodes[] = {0};
-+#undef strcodes
-+char *const strcodes[] = {0};
-+
-+/* ./comp_captab.c */
-+
-+#include <hashsize.h>
-+
-+#undef _nc_get_table
-+const struct name_table_entry *_nc_get_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const struct name_table_entry **)0); }
-+
-+#undef _nc_get_hash_table
-+const HashValue *_nc_get_hash_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const HashValue **)0); }
-+
-+#undef _nc_get_alias_table
-+const struct alias *_nc_get_alias_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const struct alias **)0); }
-+
-+#undef _nc_get_hash_info
-+const HashData *_nc_get_hash_info(
-+ NCURSES_BOOL termcap)
-+ { return(*(const HashData **)0); }
-+
-+/* ./tinfo/comp_error.c */
-+
-+#undef _nc_suppress_warnings
-+NCURSES_BOOL _nc_suppress_warnings;
-+#undef _nc_curr_line
-+int _nc_curr_line;
-+#undef _nc_curr_col
-+int _nc_curr_col;
-+
-+#undef _nc_get_source
-+const char *_nc_get_source(void)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_set_source
-+void _nc_set_source(
-+ const char *const name)
-+ { /* void */ }
-+
-+#undef _nc_set_type
-+void _nc_set_type(
-+ const char *const name)
-+ { /* void */ }
-+
-+#undef _nc_get_type
-+void _nc_get_type(
-+ char *name)
-+ { /* void */ }
-+
-+#undef _nc_warning
-+void _nc_warning(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_err_abort
-+void _nc_err_abort(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_syserr_abort
-+void _nc_syserr_abort(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+/* ./tinfo/comp_hash.c */
-+
-+#undef _nc_find_entry
-+struct name_table_entry const *_nc_find_entry(
-+ const char *string,
-+ const HashValue *hash_table)
-+ { return(*(struct name_table_entry const **)0); }
-+
-+#undef _nc_find_type_entry
-+struct name_table_entry const *_nc_find_type_entry(
-+ const char *string,
-+ int type,
-+ NCURSES_BOOL termcap)
-+ { return(*(struct name_table_entry const **)0); }
-+
-+/* ./tinfo/db_iterator.c */
-+
-+#include <time.h>
-+
-+#undef _nc_tic_dir
-+const char *_nc_tic_dir(
-+ const char *path)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_keep_tic_dir
-+void _nc_keep_tic_dir(
-+ const char *path)
-+ { /* void */ }
-+
-+#undef _nc_last_db
-+void _nc_last_db(void)
-+ { /* void */ }
-+
-+#undef _nc_next_db
-+const char *_nc_next_db(
-+ DBDIRS *state,
-+ int *offset)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_first_db
-+void _nc_first_db(
-+ DBDIRS *state,
-+ int *offset)
-+ { /* void */ }
-+
-+/* ./tinfo/doalloc.c */
-+
-+#undef _nc_doalloc
-+void *_nc_doalloc(
-+ void *oldp,
-+ size_t amount)
-+ { return(*(void **)0); }
-+
-+/* ./tinfo/entries.c */
-+
-+#undef _nc_head
-+ENTRY *_nc_head;
-+#undef _nc_tail
-+ENTRY *_nc_tail;
-+
-+#undef _nc_free_entry
-+void _nc_free_entry(
-+ ENTRY *headp,
-+ TERMTYPE *tterm)
-+ { /* void */ }
-+
-+#undef _nc_free_entries
-+void _nc_free_entries(
-+ ENTRY *headp)
-+ { /* void */ }
-+
-+#undef _nc_delink_entry
-+ENTRY *_nc_delink_entry(
-+ ENTRY *headp,
-+ TERMTYPE *tterm)
-+ { return(*(ENTRY **)0); }
-+
-+#undef _nc_leaks_tinfo
-+void _nc_leaks_tinfo(void)
-+ { /* void */ }
-+
-+/* ./fallback.c */
-+
-+#undef _nc_fallback
-+const TERMTYPE *_nc_fallback(
-+ const char *name)
-+ { return(*(const TERMTYPE **)0); }
-+
-+/* ./tinfo/free_ttype.c */
-+
-+#undef _nc_free_termtype
-+void _nc_free_termtype(
-+ TERMTYPE *ptr)
-+ { /* void */ }
-+
-+#undef _nc_user_definable
-+NCURSES_BOOL _nc_user_definable;
-+
-+#undef use_extended_names
-+int use_extended_names(
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/getenv_num.c */
-+
-+#undef _nc_getenv_num
-+int _nc_getenv_num(
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/home_terminfo.c */
-+
-+#undef _nc_home_terminfo
-+char *_nc_home_terminfo(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/init_keytry.c */
-+
-+#if 0
-+
-+#include <init_keytry.h>
-+
-+#undef _nc_tinfo_fkeys
-+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
-+
-+#endif
-+
-+#undef _nc_init_keytry
-+void _nc_init_keytry(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+/* ./tinfo/lib_acs.c */
-+
-+#undef acs_map
-+chtype acs_map[128];
-+
-+#undef _nc_init_acs_sp
-+void _nc_init_acs_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_init_acs
-+void _nc_init_acs(void)
-+ { /* void */ }
-+
-+/* ./tinfo/lib_baudrate.c */
-+
-+#include <termcap.h>
-+
-+struct speed {
-+ int s;
-+ int sp;
-+};
-+
-+#undef _nc_baudrate
-+int _nc_baudrate(
-+ int OSpeed)
-+ { return(*(int *)0); }
-+
-+#undef _nc_ospeed
-+int _nc_ospeed(
-+ int BaudRate)
-+ { return(*(int *)0); }
-+
-+#undef baudrate_sp
-+int baudrate_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef baudrate
-+int baudrate(void)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_cur_term.c */
-+
-+#undef cur_term
-+TERMINAL *cur_term;
-+
-+#undef set_curterm_sp
-+TERMINAL *set_curterm_sp(
-+ SCREEN *sp,
-+ TERMINAL *termp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef set_curterm
-+TERMINAL *set_curterm(
-+ TERMINAL *termp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef del_curterm_sp
-+int del_curterm_sp(
-+ SCREEN *sp,
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+#undef del_curterm
-+int del_curterm(
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_data.c */
-+
-+#undef stdscr
-+WINDOW *stdscr;
-+#undef curscr
-+WINDOW *curscr;
-+#undef newscr
-+WINDOW *newscr;
-+#undef _nc_screen_chain
-+SCREEN *_nc_screen_chain;
-+#undef SP
-+SCREEN *SP;
-+#undef _nc_globals
-+NCURSES_GLOBALS _nc_globals;
-+#undef _nc_prescreen
-+NCURSES_PRESCREEN _nc_prescreen;
-+
-+#undef _nc_screen_of
-+SCREEN *_nc_screen_of(
-+ WINDOW *win)
-+ { return(*(SCREEN **)0); }
-+
-+/* ./tinfo/lib_has_cap.c */
-+
-+#undef has_ic_sp
-+NCURSES_BOOL has_ic_sp(
-+ SCREEN *sp)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_ic
-+NCURSES_BOOL has_ic(void)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_il_sp
-+NCURSES_BOOL has_il_sp(
-+ SCREEN *sp)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_il
-+NCURSES_BOOL has_il(void)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+/* ./tinfo/lib_kernel.c */
-+
-+#undef erasechar_sp
-+char erasechar_sp(
-+ SCREEN *sp)
-+ { return(*(char *)0); }
-+
-+#undef erasechar
-+char erasechar(void)
-+ { return(*(char *)0); }
-+
-+#undef killchar_sp
-+char killchar_sp(
-+ SCREEN *sp)
-+ { return(*(char *)0); }
-+
-+#undef killchar
-+char killchar(void)
-+ { return(*(char *)0); }
-+
-+#undef flushinp_sp
-+int flushinp_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef flushinp
-+int flushinp(void)
-+ { return(*(int *)0); }
-+
-+/* ./lib_keyname.c */
-+
-+struct kn { short offset; int code; };
-+
-+#undef keyname_sp
-+char *keyname_sp(
-+ SCREEN *sp,
-+ int c)
-+ { return(*(char **)0); }
-+
-+#undef keyname
-+char *keyname(
-+ int c)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_longname.c */
-+
-+#undef longname
-+char *longname(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_napms.c */
-+
-+#include <sys/time.h>
-+
-+#undef napms_sp
-+int napms_sp(
-+ SCREEN *sp,
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef napms
-+int napms(
-+ int ms)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_options.c */
-+
-+#undef idlok
-+int idlok(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef idcok
-+void idcok(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { /* void */ }
-+
-+#undef halfdelay_sp
-+int halfdelay_sp(
-+ SCREEN *sp,
-+ int t)
-+ { return(*(int *)0); }
-+
-+#undef halfdelay
-+int halfdelay(
-+ int t)
-+ { return(*(int *)0); }
-+
-+#undef nodelay
-+int nodelay(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef notimeout
-+int notimeout(
-+ WINDOW *win,
-+ NCURSES_BOOL f)
-+ { return(*(int *)0); }
-+
-+#undef wtimeout
-+void wtimeout(
-+ WINDOW *win,
-+ int delay)
-+ { /* void */ }
-+
-+#undef keypad
-+int keypad(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef meta
-+int meta(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef curs_set_sp
-+int curs_set_sp(
-+ SCREEN *sp,
-+ int vis)
-+ { return(*(int *)0); }
-+
-+#undef curs_set
-+int curs_set(
-+ int vis)
-+ { return(*(int *)0); }
-+
-+#undef typeahead_sp
-+int typeahead_sp(
-+ SCREEN *sp,
-+ int fd)
-+ { return(*(int *)0); }
-+
-+#undef typeahead
-+int typeahead(
-+ int fd)
-+ { return(*(int *)0); }
-+
-+#undef has_key_sp
-+int has_key_sp(
-+ SCREEN *sp,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef has_key
-+int has_key(
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp_flush_sp
-+int _nc_putp_flush_sp(
-+ SCREEN *sp,
-+ const char *name,
-+ const char *value)
-+ { return(*(int *)0); }
-+
-+#undef _nc_keypad
-+int _nc_keypad(
-+ SCREEN *sp,
-+ int flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_raw.c */
-+
-+#undef raw_sp
-+int raw_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef raw
-+int raw(void)
-+ { return(*(int *)0); }
-+
-+#undef cbreak_sp
-+int cbreak_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef cbreak
-+int cbreak(void)
-+ { return(*(int *)0); }
-+
-+#undef qiflush_sp
-+void qiflush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef qiflush
-+void qiflush(void)
-+ { /* void */ }
-+
-+#undef noraw_sp
-+int noraw_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef noraw
-+int noraw(void)
-+ { return(*(int *)0); }
-+
-+#undef nocbreak_sp
-+int nocbreak_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef nocbreak
-+int nocbreak(void)
-+ { return(*(int *)0); }
-+
-+#undef noqiflush_sp
-+void noqiflush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef noqiflush
-+void noqiflush(void)
-+ { /* void */ }
-+
-+#undef intrflush_sp
-+int intrflush_sp(
-+ SCREEN *sp,
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef intrflush
-+int intrflush(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_setup.c */
-+
-+#include <locale.h>
-+#include <sys/ioctl.h>
-+#include <langinfo.h>
-+
-+#undef ttytype
-+char ttytype[256];
-+#undef LINES
-+int LINES;
-+#undef COLS
-+int COLS;
-+#undef TABSIZE
-+int TABSIZE;
-+
-+#undef set_tabsize_sp
-+int set_tabsize_sp(
-+ SCREEN *sp,
-+ int value)
-+ { return(*(int *)0); }
-+
-+#undef set_tabsize
-+int set_tabsize(
-+ int value)
-+ { return(*(int *)0); }
-+
-+#undef _nc_handle_sigwinch
-+int _nc_handle_sigwinch(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef use_env_sp
-+void use_env_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_env
-+void use_env(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl
-+void use_tioctl(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef _nc_get_screensize
-+void _nc_get_screensize(
-+ SCREEN *sp,
-+ int *linep,
-+ int *colp)
-+ { /* void */ }
-+
-+#undef _nc_update_screensize
-+void _nc_update_screensize(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_setup_tinfo
-+int _nc_setup_tinfo(
-+ const char *const tn,
-+ TERMTYPE *const tp)
-+ { return(*(int *)0); }
-+
-+#undef _nc_tinfo_cmdch
-+void _nc_tinfo_cmdch(
-+ TERMINAL *termp,
-+ int proto)
-+ { /* void */ }
-+
-+#undef _nc_get_locale
-+char *_nc_get_locale(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_unicode_locale
-+int _nc_unicode_locale(void)
-+ { return(*(int *)0); }
-+
-+#undef _nc_locale_breaks_acs
-+int _nc_locale_breaks_acs(
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+#undef _nc_setupterm
-+int _nc_setupterm(
-+ char *tname,
-+ int Filedes,
-+ int *errret,
-+ int reuse)
-+ { return(*(int *)0); }
-+
-+#undef new_prescr
-+SCREEN *new_prescr(void)
-+ { return(*(SCREEN **)0); }
-+
-+#undef setupterm
-+int setupterm(
-+ char *tname,
-+ int Filedes,
-+ int *errret)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_termcap.c */
-+
-+#undef UP
-+char *UP;
-+#undef BC
-+char *BC;
-+
-+#undef tgetent_sp
-+int tgetent_sp(
-+ SCREEN *sp,
-+ char *bufp,
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+#if 0
-+
-+#include <capdefaults.c>
-+
-+#endif
-+
-+#undef tgetent
-+int tgetent(
-+ char *bufp,
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+#undef tgetflag_sp
-+int tgetflag_sp(
-+ SCREEN *sp,
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetflag
-+int tgetflag(
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetnum_sp
-+int tgetnum_sp(
-+ SCREEN *sp,
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetnum
-+int tgetnum(
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetstr_sp
-+char *tgetstr_sp(
-+ SCREEN *sp,
-+ char *id,
-+ char **area)
-+ { return(*(char **)0); }
-+
-+#undef tgetstr
-+char *tgetstr(
-+ char *id,
-+ char **area)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_termname.c */
-+
-+#undef termname_sp
-+char *termname_sp(
-+ SCREEN *sp)
-+ { return(*(char **)0); }
-+
-+#undef termname
-+char *termname(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tgoto.c */
-+
-+#undef tgoto
-+char *tgoto(
-+ const char *string,
-+ int x,
-+ int y)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_ti.c */
-+
-+#undef tigetflag_sp
-+int tigetflag_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetflag
-+int tigetflag(
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetnum_sp
-+int tigetnum_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetnum
-+int tigetnum(
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetstr_sp
-+char *tigetstr_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(char **)0); }
-+
-+#undef tigetstr
-+char *tigetstr(
-+ char *str)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tparm.c */
-+
-+#undef _nc_tparm_err
-+int _nc_tparm_err;
-+
-+#undef _nc_tparm_analyze
-+int _nc_tparm_analyze(
-+ const char *string,
-+ char *p_is_s[9],
-+ int *popcount)
-+ { return(*(int *)0); }
-+
-+#undef tparm
-+char *tparm(
-+ char *string,
-+ ...)
-+ { return(*(char **)0); }
-+
-+#undef tiparm
-+char *tiparm(
-+ const char *string,
-+ ...)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tputs.c */
-+
-+#undef PC
-+char PC;
-+#undef ospeed
-+short ospeed;
-+#undef _nc_nulls_sent
-+int _nc_nulls_sent;
-+
-+#undef _nc_set_no_padding
-+void _nc_set_no_padding(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef delay_output_sp
-+int delay_output_sp(
-+ SCREEN *sp,
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef delay_output
-+int delay_output(
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef _nc_flush_sp
-+void _nc_flush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_flush
-+void _nc_flush(void)
-+ { /* void */ }
-+
-+#undef _nc_outch_sp
-+int _nc_outch_sp(
-+ SCREEN *sp,
-+ int ch)
-+ { return(*(int *)0); }
-+
-+#undef _nc_outch
-+int _nc_outch(
-+ int ch)
-+ { return(*(int *)0); }
-+
-+#undef putp_sp
-+int putp_sp(
-+ SCREEN *sp,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp_sp
-+int _nc_putp_sp(
-+ SCREEN *sp,
-+ const char *name,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef putp
-+int putp(
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp
-+int _nc_putp(
-+ const char *name,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef tputs_sp
-+int tputs_sp(
-+ SCREEN *sp,
-+ const char *string,
-+ int affcnt,
-+ NCURSES_OUTC_sp outc)
-+ { return(*(int *)0); }
-+
-+#undef _nc_outc_wrapper
-+int _nc_outc_wrapper(
-+ SCREEN *sp,
-+ int c)
-+ { return(*(int *)0); }
-+
-+#undef tputs
-+int tputs(
-+ const char *string,
-+ int affcnt,
-+ int (*outc)(
-+ int p1))
-+ { return(*(int *)0); }
-+
-+/* ./trace/lib_trace.c */
-+
-+#undef _nc_tracing
-+unsigned _nc_tracing;
-+#undef _nc_tputs_trace
-+const char *_nc_tputs_trace = {0};
-+#undef _nc_outchars
-+long _nc_outchars;
-+
-+#undef trace
-+void trace(
-+ const unsigned int tracelevel)
-+ { /* void */ }
-+
-+#undef _tracef
-+void _tracef(
-+ const char *fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_retrace_bool
-+NCURSES_BOOL _nc_retrace_bool(
-+ int code)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_retrace_char
-+char _nc_retrace_char(
-+ int code)
-+ { return(*(char *)0); }
-+
-+#undef _nc_retrace_int
-+int _nc_retrace_int(
-+ int code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_retrace_unsigned
-+unsigned _nc_retrace_unsigned(
-+ unsigned code)
-+ { return(*(unsigned *)0); }
-+
-+#undef _nc_retrace_ptr
-+char *_nc_retrace_ptr(
-+ char *code)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_cptr
-+const char *_nc_retrace_cptr(
-+ const char *code)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_retrace_cvoid_ptr
-+void *_nc_retrace_cvoid_ptr(
-+ void *code)
-+ { return(*(void **)0); }
-+
-+#undef _nc_retrace_void_ptr
-+void *_nc_retrace_void_ptr(
-+ void *code)
-+ { return(*(void **)0); }
-+
-+#undef _nc_retrace_sp
-+SCREEN *_nc_retrace_sp(
-+ SCREEN *code)
-+ { return(*(SCREEN **)0); }
-+
-+#undef _nc_retrace_win
-+WINDOW *_nc_retrace_win(
-+ WINDOW *code)
-+ { return(*(WINDOW **)0); }
-+
-+/* ./trace/lib_traceatr.c */
-+
-+#undef _traceattr2
-+char *_traceattr2(
-+ int bufnum,
-+ chtype newmode)
-+ { return(*(char **)0); }
-+
-+#undef _traceattr
-+char *_traceattr(
-+ attr_t newmode)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_int_attr_t
-+int _nc_retrace_int_attr_t(
-+ attr_t code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_retrace_attr_t
-+attr_t _nc_retrace_attr_t(
-+ attr_t code)
-+ { return(*(attr_t *)0); }
-+
-+#undef _nc_altcharset_name
-+const char *_nc_altcharset_name(
-+ attr_t attr,
-+ chtype ch)
-+ { return(*(const char **)0); }
-+
-+#undef _tracechtype2
-+char *_tracechtype2(
-+ int bufnum,
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracechtype
-+char *_tracechtype(
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_chtype
-+chtype _nc_retrace_chtype(
-+ chtype code)
-+ { return(*(chtype *)0); }
-+
-+/* ./trace/lib_tracebits.c */
-+
-+typedef struct {
-+ unsigned int val;
-+ const char *name;
-+} BITNAMES;
-+
-+#undef _nc_trace_ttymode
-+char *_nc_trace_ttymode(
-+ struct termios *tty)
-+ { return(*(char **)0); }
-+
-+#undef _nc_tracebits
-+char *_nc_tracebits(void)
-+ { return(*(char **)0); }
-+
-+/* ./trace/lib_tracechr.c */
-+
-+#undef _nc_tracechar
-+char *_nc_tracechar(
-+ SCREEN *sp,
-+ int ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracechar
-+char *_tracechar(
-+ int ch)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_ttyflags.c */
-+
-+#undef _nc_get_tty_mode_sp
-+int _nc_get_tty_mode_sp(
-+ SCREEN *sp,
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_get_tty_mode
-+int _nc_get_tty_mode(
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_set_tty_mode_sp
-+int _nc_set_tty_mode_sp(
-+ SCREEN *sp,
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_set_tty_mode
-+int _nc_set_tty_mode(
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef def_shell_mode_sp
-+int def_shell_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef def_shell_mode
-+int def_shell_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef def_prog_mode_sp
-+int def_prog_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef def_prog_mode
-+int def_prog_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef reset_prog_mode_sp
-+int reset_prog_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef reset_prog_mode
-+int reset_prog_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef reset_shell_mode_sp
-+int reset_shell_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef reset_shell_mode
-+int reset_shell_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef savetty_sp
-+int savetty_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef savetty
-+int savetty(void)
-+ { return(*(int *)0); }
-+
-+#undef resetty_sp
-+int resetty_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef resetty
-+int resetty(void)
-+ { return(*(int *)0); }
-+
-+/* ./tty/lib_twait.c */
-+
-+#undef _nc_timed_wait
-+int _nc_timed_wait(
-+ SCREEN *sp,
-+ int mode,
-+ int milliseconds,
-+ int *timeleft)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/name_match.c */
-+
-+#undef _nc_first_name
-+char *_nc_first_name(
-+ const char *const sp)
-+ { return(*(char **)0); }
-+
-+#undef _nc_name_match
-+int _nc_name_match(
-+ const char *const namelst,
-+ const char *const name,
-+ const char *const delim)
-+ { return(*(int *)0); }
-+
-+/* ./names.c */
-+
-+#undef boolnames
-+char *const boolnames[] = {0};
-+#undef boolfnames
-+char *const boolfnames[] = {0};
-+#undef numnames
-+char *const numnames[] = {0};
-+#undef numfnames
-+char *const numfnames[] = {0};
-+#undef strnames
-+char *const strnames[] = {0};
-+#undef strfnames
-+char *const strfnames[] = {0};
-+
-+/* ./tinfo/read_entry.c */
-+
-+#include <hashed_db.h>
-+
-+#undef _nc_read_termtype
-+int _nc_read_termtype(
-+ TERMTYPE *ptr,
-+ char *buffer,
-+ int limit)
-+ { return(*(int *)0); }
-+
-+#undef _nc_read_file_entry
-+int _nc_read_file_entry(
-+ const char *const filename,
-+ TERMTYPE *ptr)
-+ { return(*(int *)0); }
-+
-+#undef _nc_read_entry
-+int _nc_read_entry(
-+ const char *const name,
-+ char *const filename,
-+ TERMTYPE *const tp)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/read_termcap.c */
-+
-+#include <sys/types.h>
-+
-+#undef _nc_read_termcap
-+void _nc_read_termcap(void)
-+ { /* void */ }
-+
-+/* ./tinfo/setbuf.c */
-+
-+#undef _nc_set_buffer_sp
-+void _nc_set_buffer_sp(
-+ SCREEN *sp,
-+ FILE *ofp,
-+ int buffered)
-+ { /* void */ }
-+
-+#undef _nc_set_buffer
-+void _nc_set_buffer(
-+ FILE *ofp,
-+ int buffered)
-+ { /* void */ }
-+
-+/* ./tinfo/strings.c */
-+
-+#undef _nc_str_init
-+string_desc *_nc_str_init(
-+ string_desc *dst,
-+ char *src,
-+ size_t len)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_str_null
-+string_desc *_nc_str_null(
-+ string_desc *dst,
-+ size_t len)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_str_copy
-+string_desc *_nc_str_copy(
-+ string_desc *dst,
-+ string_desc *src)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_safe_strcat
-+NCURSES_BOOL _nc_safe_strcat(
-+ string_desc *dst,
-+ const char *src)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_safe_strcpy
-+NCURSES_BOOL _nc_safe_strcpy(
-+ string_desc *dst,
-+ const char *src)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+/* ./trace/trace_buf.c */
-+
-+#undef _nc_trace_buf
-+char *_nc_trace_buf(
-+ int bufnum,
-+ size_t want)
-+ { return(*(char **)0); }
-+
-+#undef _nc_trace_bufcat
-+char *_nc_trace_bufcat(
-+ int bufnum,
-+ const char *value)
-+ { return(*(char **)0); }
-+
-+/* ./trace/trace_tries.c */
-+
-+#undef _nc_trace_tries
-+void _nc_trace_tries(
-+ TRIES *tree)
-+ { /* void */ }
-+
-+/* ./base/tries.c */
-+
-+#undef _nc_expand_try
-+char *_nc_expand_try(
-+ TRIES *tree,
-+ unsigned code,
-+ int *count,
-+ size_t len)
-+ { return(*(char **)0); }
-+
-+#undef _nc_remove_key
-+int _nc_remove_key(
-+ TRIES **tree,
-+ unsigned code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_remove_string
-+int _nc_remove_string(
-+ TRIES **tree,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/trim_sgr0.c */
-+
-+#undef _nc_trim_sgr0
-+char *_nc_trim_sgr0(
-+ TERMTYPE *tp)
-+ { return(*(char **)0); }
-+
-+/* ./unctrl.c */
-+
-+#undef unctrl_sp
-+char *unctrl_sp(
-+ SCREEN *sp,
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef unctrl
-+char *unctrl(
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+/* ./trace/visbuf.c */
-+
-+#undef _nc_visbuf2
-+const char *_nc_visbuf2(
-+ int bufnum,
-+ const char *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_visbuf
-+const char *_nc_visbuf(
-+ const char *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_visbufn
-+const char *_nc_visbufn(
-+ const char *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viscbuf2
-+const char *_nc_viscbuf2(
-+ int bufnum,
-+ const chtype *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viscbuf
-+const char *_nc_viscbuf(
-+ const chtype *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+/* ./base/define_key.c */
-+
-+#undef define_key_sp
-+int define_key_sp(
-+ SCREEN *sp,
-+ const char *str,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef define_key
-+int define_key(
-+ const char *str,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/hashed_db.c */
-+
-+#undef _nc_hashed_db
-+void _nc_hashed_db(void)
-+ { /* void */ }
-+
-+/* ./base/key_defined.c */
-+
-+#undef key_defined_sp
-+int key_defined_sp(
-+ SCREEN *sp,
-+ const char *str)
-+ { return(*(int *)0); }
-+
-+#undef key_defined
-+int key_defined(
-+ const char *str)
-+ { return(*(int *)0); }
-+
-+/* ./base/keybound.c */
-+
-+#undef keybound_sp
-+char *keybound_sp(
-+ SCREEN *sp,
-+ int code,
-+ int count)
-+ { return(*(char **)0); }
-+
-+#undef keybound
-+char *keybound(
-+ int code,
-+ int count)
-+ { return(*(char **)0); }
-+
-+/* ./base/keyok.c */
-+
-+#undef keyok_sp
-+int keyok_sp(
-+ SCREEN *sp,
-+ int c,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef keyok
-+int keyok(
-+ int c,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./base/version.c */
-+
-+#undef curses_version
-+const char *curses_version(void)
-+ { return(*(const char **)0); }
-Index: ncurses/llib-ltinfotw
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-ltinfotw 2012-07-14 17:39:00.000000000 +0000
-@@ -0,0 +1,1646 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+/* LINTLIBRARY */
-+
-+/* ./tinfo/access.c */
-+
-+#include <curses.priv.h>
-+#include <ctype.h>
-+#include <tic.h>
-+
-+#undef _nc_rootname
-+char *_nc_rootname(
-+ char *path)
-+ { return(*(char **)0); }
-+
-+#undef _nc_is_abs_path
-+NCURSES_BOOL _nc_is_abs_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_pathlast
-+unsigned _nc_pathlast(
-+ const char *path)
-+ { return(*(unsigned *)0); }
-+
-+#undef _nc_basename
-+char *_nc_basename(
-+ char *path)
-+ { return(*(char **)0); }
-+
-+#undef _nc_access
-+int _nc_access(
-+ const char *path,
-+ int mode)
-+ { return(*(int *)0); }
-+
-+#undef _nc_is_dir_path
-+NCURSES_BOOL _nc_is_dir_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_is_file_path
-+NCURSES_BOOL _nc_is_file_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_env_access
-+int _nc_env_access(void)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/add_tries.c */
-+
-+#undef _nc_add_to_try
-+int _nc_add_to_try(
-+ TRIES **tree,
-+ const char *str,
-+ unsigned code)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/alloc_ttype.c */
-+
-+#undef _nc_align_termtype
-+void _nc_align_termtype(
-+ TERMTYPE *to,
-+ TERMTYPE *from)
-+ { /* void */ }
-+
-+#undef _nc_copy_termtype
-+void _nc_copy_termtype(
-+ TERMTYPE *dst,
-+ const TERMTYPE *src)
-+ { /* void */ }
-+
-+/* ./codes.c */
-+
-+#undef _nc_boolcodes
-+char *const *_nc_boolcodes(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_numcodes
-+char *const *_nc_numcodes(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_strcodes
-+char *const *_nc_strcodes(void)
-+ { return(*(char **)0); }
-+
-+/* ./comp_captab.c */
-+
-+#include <hashsize.h>
-+
-+#undef _nc_get_table
-+const struct name_table_entry *_nc_get_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const struct name_table_entry **)0); }
-+
-+#undef _nc_get_hash_table
-+const HashValue *_nc_get_hash_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const HashValue **)0); }
-+
-+#undef _nc_get_alias_table
-+const struct alias *_nc_get_alias_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const struct alias **)0); }
-+
-+#undef _nc_get_hash_info
-+const HashData *_nc_get_hash_info(
-+ NCURSES_BOOL termcap)
-+ { return(*(const HashData **)0); }
-+
-+/* ./tinfo/comp_error.c */
-+
-+#undef _nc_suppress_warnings
-+NCURSES_BOOL _nc_suppress_warnings;
-+#undef _nc_curr_line
-+int _nc_curr_line;
-+#undef _nc_curr_col
-+int _nc_curr_col;
-+
-+#undef _nc_get_source
-+const char *_nc_get_source(void)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_set_source
-+void _nc_set_source(
-+ const char *const name)
-+ { /* void */ }
-+
-+#undef _nc_set_type
-+void _nc_set_type(
-+ const char *const name)
-+ { /* void */ }
-+
-+#undef _nc_get_type
-+void _nc_get_type(
-+ char *name)
-+ { /* void */ }
-+
-+#undef _nc_warning
-+void _nc_warning(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_err_abort
-+void _nc_err_abort(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_syserr_abort
-+void _nc_syserr_abort(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+/* ./tinfo/comp_hash.c */
-+
-+#undef _nc_find_entry
-+struct name_table_entry const *_nc_find_entry(
-+ const char *string,
-+ const HashValue *hash_table)
-+ { return(*(struct name_table_entry const **)0); }
-+
-+#undef _nc_find_type_entry
-+struct name_table_entry const *_nc_find_type_entry(
-+ const char *string,
-+ int type,
-+ NCURSES_BOOL termcap)
-+ { return(*(struct name_table_entry const **)0); }
-+
-+/* ./tinfo/db_iterator.c */
-+
-+#include <time.h>
-+
-+#undef _nc_tic_dir
-+const char *_nc_tic_dir(
-+ const char *path)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_keep_tic_dir
-+void _nc_keep_tic_dir(
-+ const char *path)
-+ { /* void */ }
-+
-+#undef _nc_last_db
-+void _nc_last_db(void)
-+ { /* void */ }
-+
-+#undef _nc_next_db
-+const char *_nc_next_db(
-+ DBDIRS *state,
-+ int *offset)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_first_db
-+void _nc_first_db(
-+ DBDIRS *state,
-+ int *offset)
-+ { /* void */ }
-+
-+/* ./tinfo/doalloc.c */
-+
-+#undef _nc_doalloc
-+void *_nc_doalloc(
-+ void *oldp,
-+ size_t amount)
-+ { return(*(void **)0); }
-+
-+/* ./tinfo/entries.c */
-+
-+#undef _nc_head
-+ENTRY *_nc_head;
-+#undef _nc_tail
-+ENTRY *_nc_tail;
-+
-+#undef _nc_free_entry
-+void _nc_free_entry(
-+ ENTRY *headp,
-+ TERMTYPE *tterm)
-+ { /* void */ }
-+
-+#undef _nc_free_entries
-+void _nc_free_entries(
-+ ENTRY *headp)
-+ { /* void */ }
-+
-+#undef _nc_delink_entry
-+ENTRY *_nc_delink_entry(
-+ ENTRY *headp,
-+ TERMTYPE *tterm)
-+ { return(*(ENTRY **)0); }
-+
-+#undef _nc_leaks_tinfo
-+void _nc_leaks_tinfo(void)
-+ { /* void */ }
-+
-+/* ./fallback.c */
-+
-+#undef _nc_fallback
-+const TERMTYPE *_nc_fallback(
-+ const char *name)
-+ { return(*(const TERMTYPE **)0); }
-+
-+/* ./tinfo/free_ttype.c */
-+
-+#undef _nc_free_termtype
-+void _nc_free_termtype(
-+ TERMTYPE *ptr)
-+ { /* void */ }
-+
-+#undef _nc_user_definable
-+NCURSES_BOOL _nc_user_definable;
-+
-+#undef use_extended_names
-+int use_extended_names(
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/getenv_num.c */
-+
-+#undef _nc_getenv_num
-+int _nc_getenv_num(
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/home_terminfo.c */
-+
-+#undef _nc_home_terminfo
-+char *_nc_home_terminfo(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/init_keytry.c */
-+
-+#if 0
-+
-+#include <init_keytry.h>
-+
-+#undef _nc_tinfo_fkeys
-+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
-+
-+#endif
-+
-+#undef _nc_init_keytry
-+void _nc_init_keytry(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+/* ./tinfo/lib_acs.c */
-+
-+#undef _nc_acs_map
-+chtype *_nc_acs_map(void)
-+ { return(*(chtype **)0); }
-+
-+#undef _nc_init_acs_sp
-+void _nc_init_acs_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_init_acs
-+void _nc_init_acs(void)
-+ { /* void */ }
-+
-+/* ./tinfo/lib_baudrate.c */
-+
-+#include <termcap.h>
-+
-+struct speed {
-+ int s;
-+ int sp;
-+};
-+
-+#undef _nc_baudrate
-+int _nc_baudrate(
-+ int OSpeed)
-+ { return(*(int *)0); }
-+
-+#undef _nc_ospeed
-+int _nc_ospeed(
-+ int BaudRate)
-+ { return(*(int *)0); }
-+
-+#undef baudrate_sp
-+int baudrate_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef baudrate
-+int baudrate(void)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_cur_term.c */
-+
-+#undef _nc_get_cur_term_sp
-+TERMINAL *_nc_get_cur_term_sp(
-+ SCREEN *sp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef _nc_get_cur_term
-+TERMINAL *_nc_get_cur_term(void)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef _nc_cur_term
-+TERMINAL *_nc_cur_term(void)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef set_curterm_sp
-+TERMINAL *set_curterm_sp(
-+ SCREEN *sp,
-+ TERMINAL *termp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef set_curterm
-+TERMINAL *set_curterm(
-+ TERMINAL *termp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef del_curterm_sp
-+int del_curterm_sp(
-+ SCREEN *sp,
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+#undef del_curterm
-+int del_curterm(
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_data.c */
-+
-+#undef _nc_stdscr
-+WINDOW *_nc_stdscr(void)
-+ { return(*(WINDOW **)0); }
-+
-+#undef _nc_curscr
-+WINDOW *_nc_curscr(void)
-+ { return(*(WINDOW **)0); }
-+
-+#undef _nc_newscr
-+WINDOW *_nc_newscr(void)
-+ { return(*(WINDOW **)0); }
-+
-+#undef _nc_screen_chain
-+SCREEN *_nc_screen_chain;
-+#undef SP
-+SCREEN *SP;
-+#undef _nc_globals
-+NCURSES_GLOBALS _nc_globals;
-+#undef _nc_prescreen
-+NCURSES_PRESCREEN _nc_prescreen;
-+
-+#undef _nc_screen_of
-+SCREEN *_nc_screen_of(
-+ WINDOW *win)
-+ { return(*(SCREEN **)0); }
-+
-+#undef _nc_init_pthreads
-+void _nc_init_pthreads(void)
-+ { /* void */ }
-+
-+#undef _nc_mutex_init
-+void _nc_mutex_init(
-+ pthread_mutex_t *obj)
-+ { /* void */ }
-+
-+#undef _nc_mutex_lock
-+int _nc_mutex_lock(
-+ pthread_mutex_t *obj)
-+ { return(*(int *)0); }
-+
-+#undef _nc_mutex_trylock
-+int _nc_mutex_trylock(
-+ pthread_mutex_t *obj)
-+ { return(*(int *)0); }
-+
-+#undef _nc_mutex_unlock
-+int _nc_mutex_unlock(
-+ pthread_mutex_t *obj)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_has_cap.c */
-+
-+#undef has_ic_sp
-+NCURSES_BOOL has_ic_sp(
-+ SCREEN *sp)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_ic
-+NCURSES_BOOL has_ic(void)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_il_sp
-+NCURSES_BOOL has_il_sp(
-+ SCREEN *sp)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_il
-+NCURSES_BOOL has_il(void)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+/* ./tinfo/lib_kernel.c */
-+
-+#undef erasechar_sp
-+char erasechar_sp(
-+ SCREEN *sp)
-+ { return(*(char *)0); }
-+
-+#undef erasechar
-+char erasechar(void)
-+ { return(*(char *)0); }
-+
-+#undef killchar_sp
-+char killchar_sp(
-+ SCREEN *sp)
-+ { return(*(char *)0); }
-+
-+#undef killchar
-+char killchar(void)
-+ { return(*(char *)0); }
-+
-+#undef flushinp_sp
-+int flushinp_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef flushinp
-+int flushinp(void)
-+ { return(*(int *)0); }
-+
-+/* ./lib_keyname.c */
-+
-+struct kn { short offset; int code; };
-+
-+#undef keyname_sp
-+char *keyname_sp(
-+ SCREEN *sp,
-+ int c)
-+ { return(*(char **)0); }
-+
-+#undef keyname
-+char *keyname(
-+ int c)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_longname.c */
-+
-+#undef longname_sp
-+char *longname_sp(
-+ SCREEN *sp)
-+ { return(*(char **)0); }
-+
-+#undef longname
-+char *longname(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_napms.c */
-+
-+#undef napms_sp
-+int napms_sp(
-+ SCREEN *sp,
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef napms
-+int napms(
-+ int ms)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_options.c */
-+
-+#undef idlok
-+int idlok(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef idcok
-+void idcok(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { /* void */ }
-+
-+#undef halfdelay_sp
-+int halfdelay_sp(
-+ SCREEN *sp,
-+ int t)
-+ { return(*(int *)0); }
-+
-+#undef halfdelay
-+int halfdelay(
-+ int t)
-+ { return(*(int *)0); }
-+
-+#undef nodelay
-+int nodelay(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef notimeout
-+int notimeout(
-+ WINDOW *win,
-+ NCURSES_BOOL f)
-+ { return(*(int *)0); }
-+
-+#undef wtimeout
-+void wtimeout(
-+ WINDOW *win,
-+ int delay)
-+ { /* void */ }
-+
-+#undef keypad
-+int keypad(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef meta
-+int meta(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef curs_set_sp
-+int curs_set_sp(
-+ SCREEN *sp,
-+ int vis)
-+ { return(*(int *)0); }
-+
-+#undef curs_set
-+int curs_set(
-+ int vis)
-+ { return(*(int *)0); }
-+
-+#undef typeahead_sp
-+int typeahead_sp(
-+ SCREEN *sp,
-+ int fd)
-+ { return(*(int *)0); }
-+
-+#undef typeahead
-+int typeahead(
-+ int fd)
-+ { return(*(int *)0); }
-+
-+#undef has_key_sp
-+int has_key_sp(
-+ SCREEN *sp,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef has_key
-+int has_key(
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp_flush_sp
-+int _nc_putp_flush_sp(
-+ SCREEN *sp,
-+ const char *name,
-+ const char *value)
-+ { return(*(int *)0); }
-+
-+#undef _nc_keypad
-+int _nc_keypad(
-+ SCREEN *sp,
-+ int flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_raw.c */
-+
-+#undef raw_sp
-+int raw_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef raw
-+int raw(void)
-+ { return(*(int *)0); }
-+
-+#undef cbreak_sp
-+int cbreak_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef cbreak
-+int cbreak(void)
-+ { return(*(int *)0); }
-+
-+#undef qiflush_sp
-+void qiflush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef qiflush
-+void qiflush(void)
-+ { /* void */ }
-+
-+#undef noraw_sp
-+int noraw_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef noraw
-+int noraw(void)
-+ { return(*(int *)0); }
-+
-+#undef nocbreak_sp
-+int nocbreak_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef nocbreak
-+int nocbreak(void)
-+ { return(*(int *)0); }
-+
-+#undef noqiflush_sp
-+void noqiflush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef noqiflush
-+void noqiflush(void)
-+ { /* void */ }
-+
-+#undef intrflush_sp
-+int intrflush_sp(
-+ SCREEN *sp,
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef intrflush
-+int intrflush(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_setup.c */
-+
-+#include <locale.h>
-+#include <sys/ioctl.h>
-+#include <langinfo.h>
-+
-+#undef _nc_ttytype
-+char *_nc_ttytype(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_ptr_Lines
-+int *_nc_ptr_Lines(
-+ SCREEN *sp)
-+ { return(*(int **)0); }
-+
-+#undef _nc_LINES
-+int _nc_LINES(void)
-+ { return(*(int *)0); }
-+
-+#undef _nc_ptr_Cols
-+int *_nc_ptr_Cols(
-+ SCREEN *sp)
-+ { return(*(int **)0); }
-+
-+#undef _nc_COLS
-+int _nc_COLS(void)
-+ { return(*(int *)0); }
-+
-+#undef _nc_ptr_Tabsize
-+int *_nc_ptr_Tabsize(
-+ SCREEN *sp)
-+ { return(*(int **)0); }
-+
-+#undef _nc_TABSIZE
-+int _nc_TABSIZE(void)
-+ { return(*(int *)0); }
-+
-+#undef set_tabsize_sp
-+int set_tabsize_sp(
-+ SCREEN *sp,
-+ int value)
-+ { return(*(int *)0); }
-+
-+#undef set_tabsize
-+int set_tabsize(
-+ int value)
-+ { return(*(int *)0); }
-+
-+#undef _nc_handle_sigwinch
-+int _nc_handle_sigwinch(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef use_env_sp
-+void use_env_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_env
-+void use_env(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl
-+void use_tioctl(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef _nc_get_screensize
-+void _nc_get_screensize(
-+ SCREEN *sp,
-+ int *linep,
-+ int *colp)
-+ { /* void */ }
-+
-+#undef _nc_update_screensize
-+void _nc_update_screensize(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_setup_tinfo
-+int _nc_setup_tinfo(
-+ const char *const tn,
-+ TERMTYPE *const tp)
-+ { return(*(int *)0); }
-+
-+#undef _nc_tinfo_cmdch
-+void _nc_tinfo_cmdch(
-+ TERMINAL *termp,
-+ int proto)
-+ { /* void */ }
-+
-+#undef _nc_get_locale
-+char *_nc_get_locale(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_unicode_locale
-+int _nc_unicode_locale(void)
-+ { return(*(int *)0); }
-+
-+#undef _nc_locale_breaks_acs
-+int _nc_locale_breaks_acs(
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+#undef _nc_setupterm
-+int _nc_setupterm(
-+ char *tname,
-+ int Filedes,
-+ int *errret,
-+ int reuse)
-+ { return(*(int *)0); }
-+
-+#undef new_prescr
-+SCREEN *new_prescr(void)
-+ { return(*(SCREEN **)0); }
-+
-+#undef setupterm
-+int setupterm(
-+ char *tname,
-+ int Filedes,
-+ int *errret)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_termcap.c */
-+
-+#undef UP
-+char *UP;
-+#undef BC
-+char *BC;
-+
-+#undef tgetent_sp
-+int tgetent_sp(
-+ SCREEN *sp,
-+ char *bufp,
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+#if 0
-+
-+#include <capdefaults.c>
-+
-+#endif
-+
-+#undef tgetent
-+int tgetent(
-+ char *bufp,
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+#undef tgetflag_sp
-+int tgetflag_sp(
-+ SCREEN *sp,
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetflag
-+int tgetflag(
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetnum_sp
-+int tgetnum_sp(
-+ SCREEN *sp,
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetnum
-+int tgetnum(
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetstr_sp
-+char *tgetstr_sp(
-+ SCREEN *sp,
-+ char *id,
-+ char **area)
-+ { return(*(char **)0); }
-+
-+#undef tgetstr
-+char *tgetstr(
-+ char *id,
-+ char **area)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_termname.c */
-+
-+#undef termname_sp
-+char *termname_sp(
-+ SCREEN *sp)
-+ { return(*(char **)0); }
-+
-+#undef termname
-+char *termname(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tgoto.c */
-+
-+#undef tgoto
-+char *tgoto(
-+ const char *string,
-+ int x,
-+ int y)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_ti.c */
-+
-+#undef tigetflag_sp
-+int tigetflag_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetflag
-+int tigetflag(
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetnum_sp
-+int tigetnum_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetnum
-+int tigetnum(
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetstr_sp
-+char *tigetstr_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(char **)0); }
-+
-+#undef tigetstr
-+char *tigetstr(
-+ char *str)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tparm.c */
-+
-+#undef _nc_tparm_err
-+int _nc_tparm_err;
-+
-+#undef _nc_tparm_analyze
-+int _nc_tparm_analyze(
-+ const char *string,
-+ char *p_is_s[9],
-+ int *popcount)
-+ { return(*(int *)0); }
-+
-+#undef tparm
-+char *tparm(
-+ char *string,
-+ ...)
-+ { return(*(char **)0); }
-+
-+#undef tiparm
-+char *tiparm(
-+ const char *string,
-+ ...)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tputs.c */
-+
-+#undef PC
-+char PC;
-+#undef ospeed
-+short ospeed;
-+#undef _nc_nulls_sent
-+int _nc_nulls_sent;
-+
-+#undef _nc_set_no_padding
-+void _nc_set_no_padding(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef delay_output_sp
-+int delay_output_sp(
-+ SCREEN *sp,
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef delay_output
-+int delay_output(
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef _nc_flush_sp
-+void _nc_flush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_flush
-+void _nc_flush(void)
-+ { /* void */ }
-+
-+#undef _nc_outch_sp
-+int _nc_outch_sp(
-+ SCREEN *sp,
-+ int ch)
-+ { return(*(int *)0); }
-+
-+#undef _nc_outch
-+int _nc_outch(
-+ int ch)
-+ { return(*(int *)0); }
-+
-+#undef putp_sp
-+int putp_sp(
-+ SCREEN *sp,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp_sp
-+int _nc_putp_sp(
-+ SCREEN *sp,
-+ const char *name,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef putp
-+int putp(
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp
-+int _nc_putp(
-+ const char *name,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef tputs_sp
-+int tputs_sp(
-+ SCREEN *sp,
-+ const char *string,
-+ int affcnt,
-+ NCURSES_OUTC_sp outc)
-+ { return(*(int *)0); }
-+
-+#undef _nc_outc_wrapper
-+int _nc_outc_wrapper(
-+ SCREEN *sp,
-+ int c)
-+ { return(*(int *)0); }
-+
-+#undef tputs
-+int tputs(
-+ const char *string,
-+ int affcnt,
-+ int (*outc)(
-+ int p1))
-+ { return(*(int *)0); }
-+
-+/* ./trace/lib_trace.c */
-+
-+#undef _nc_tracing
-+unsigned _nc_tracing;
-+
-+#undef _nc__nc_tputs_trace
-+const char *_nc__nc_tputs_trace(void)
-+ { return(*(const char **)0); }
-+
-+#undef _nc__nc_outchars
-+long _nc__nc_outchars(void)
-+ { return(*(long *)0); }
-+
-+#undef _nc_set_tputs_trace
-+void _nc_set_tputs_trace(
-+ const char *s)
-+ { /* void */ }
-+
-+#undef _nc_count_outchars
-+void _nc_count_outchars(
-+ long increment)
-+ { /* void */ }
-+
-+#undef trace
-+void trace(
-+ const unsigned int tracelevel)
-+ { /* void */ }
-+
-+#undef _tracef
-+void _tracef(
-+ const char *fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_retrace_bool
-+NCURSES_BOOL _nc_retrace_bool(
-+ int code)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_retrace_char
-+char _nc_retrace_char(
-+ int code)
-+ { return(*(char *)0); }
-+
-+#undef _nc_retrace_int
-+int _nc_retrace_int(
-+ int code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_retrace_unsigned
-+unsigned _nc_retrace_unsigned(
-+ unsigned code)
-+ { return(*(unsigned *)0); }
-+
-+#undef _nc_retrace_ptr
-+char *_nc_retrace_ptr(
-+ char *code)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_cptr
-+const char *_nc_retrace_cptr(
-+ const char *code)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_retrace_cvoid_ptr
-+void *_nc_retrace_cvoid_ptr(
-+ void *code)
-+ { return(*(void **)0); }
-+
-+#undef _nc_retrace_void_ptr
-+void *_nc_retrace_void_ptr(
-+ void *code)
-+ { return(*(void **)0); }
-+
-+#undef _nc_retrace_sp
-+SCREEN *_nc_retrace_sp(
-+ SCREEN *code)
-+ { return(*(SCREEN **)0); }
-+
-+#undef _nc_retrace_win
-+WINDOW *_nc_retrace_win(
-+ WINDOW *code)
-+ { return(*(WINDOW **)0); }
-+
-+#undef _nc_use_tracef
-+int _nc_use_tracef(
-+ unsigned mask)
-+ { return(*(int *)0); }
-+
-+#undef _nc_locked_tracef
-+void _nc_locked_tracef(
-+ const char *fmt,
-+ ...)
-+ { /* void */ }
-+
-+/* ./trace/lib_traceatr.c */
-+
-+#undef _traceattr2
-+char *_traceattr2(
-+ int bufnum,
-+ chtype newmode)
-+ { return(*(char **)0); }
-+
-+#undef _traceattr
-+char *_traceattr(
-+ attr_t newmode)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_int_attr_t
-+int _nc_retrace_int_attr_t(
-+ attr_t code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_retrace_attr_t
-+attr_t _nc_retrace_attr_t(
-+ attr_t code)
-+ { return(*(attr_t *)0); }
-+
-+#undef _nc_altcharset_name
-+const char *_nc_altcharset_name(
-+ attr_t attr,
-+ chtype ch)
-+ { return(*(const char **)0); }
-+
-+#undef _tracechtype2
-+char *_tracechtype2(
-+ int bufnum,
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracechtype
-+char *_tracechtype(
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_chtype
-+chtype _nc_retrace_chtype(
-+ chtype code)
-+ { return(*(chtype *)0); }
-+
-+#undef _tracecchar_t2
-+char *_tracecchar_t2(
-+ int bufnum,
-+ const cchar_t *ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracecchar_t
-+char *_tracecchar_t(
-+ const cchar_t *ch)
-+ { return(*(char **)0); }
-+
-+/* ./trace/lib_tracebits.c */
-+
-+typedef struct {
-+ unsigned int val;
-+ const char *name;
-+} BITNAMES;
-+
-+#undef _nc_trace_ttymode
-+char *_nc_trace_ttymode(
-+ struct termios *tty)
-+ { return(*(char **)0); }
-+
-+#undef _nc_tracebits
-+char *_nc_tracebits(void)
-+ { return(*(char **)0); }
-+
-+/* ./trace/lib_tracechr.c */
-+
-+#undef _nc_tracechar
-+char *_nc_tracechar(
-+ SCREEN *sp,
-+ int ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracechar
-+char *_tracechar(
-+ int ch)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_ttyflags.c */
-+
-+#undef _nc_get_tty_mode_sp
-+int _nc_get_tty_mode_sp(
-+ SCREEN *sp,
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_get_tty_mode
-+int _nc_get_tty_mode(
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_set_tty_mode_sp
-+int _nc_set_tty_mode_sp(
-+ SCREEN *sp,
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_set_tty_mode
-+int _nc_set_tty_mode(
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef def_shell_mode_sp
-+int def_shell_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef def_shell_mode
-+int def_shell_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef def_prog_mode_sp
-+int def_prog_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef def_prog_mode
-+int def_prog_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef reset_prog_mode_sp
-+int reset_prog_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef reset_prog_mode
-+int reset_prog_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef reset_shell_mode_sp
-+int reset_shell_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef reset_shell_mode
-+int reset_shell_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef savetty_sp
-+int savetty_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef savetty
-+int savetty(void)
-+ { return(*(int *)0); }
-+
-+#undef resetty_sp
-+int resetty_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef resetty
-+int resetty(void)
-+ { return(*(int *)0); }
-+
-+/* ./tty/lib_twait.c */
-+
-+#include <sys/time.h>
-+
-+#undef _nc_timed_wait
-+int _nc_timed_wait(
-+ SCREEN *sp,
-+ int mode,
-+ int milliseconds,
-+ int *timeleft)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/name_match.c */
-+
-+#undef _nc_first_name
-+char *_nc_first_name(
-+ const char *const sp)
-+ { return(*(char **)0); }
-+
-+#undef _nc_name_match
-+int _nc_name_match(
-+ const char *const namelst,
-+ const char *const name,
-+ const char *const delim)
-+ { return(*(int *)0); }
-+
-+/* ./names.c */
-+
-+#undef _nc_boolnames
-+char *const *_nc_boolnames(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_boolfnames
-+char *const *_nc_boolfnames(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_numnames
-+char *const *_nc_numnames(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_numfnames
-+char *const *_nc_numfnames(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_strnames
-+char *const *_nc_strnames(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_strfnames
-+char *const *_nc_strfnames(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/read_entry.c */
-+
-+#include <hashed_db.h>
-+
-+#undef _nc_read_termtype
-+int _nc_read_termtype(
-+ TERMTYPE *ptr,
-+ char *buffer,
-+ int limit)
-+ { return(*(int *)0); }
-+
-+#undef _nc_read_file_entry
-+int _nc_read_file_entry(
-+ const char *const filename,
-+ TERMTYPE *ptr)
-+ { return(*(int *)0); }
-+
-+#undef _nc_read_entry
-+int _nc_read_entry(
-+ const char *const name,
-+ char *const filename,
-+ TERMTYPE *const tp)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/read_termcap.c */
-+
-+#include <sys/types.h>
-+
-+#undef _nc_read_termcap
-+void _nc_read_termcap(void)
-+ { /* void */ }
-+
-+/* ./tinfo/setbuf.c */
-+
-+#undef _nc_set_buffer_sp
-+void _nc_set_buffer_sp(
-+ SCREEN *sp,
-+ FILE *ofp,
-+ int buffered)
-+ { /* void */ }
-+
-+#undef _nc_set_buffer
-+void _nc_set_buffer(
-+ FILE *ofp,
-+ int buffered)
-+ { /* void */ }
-+
-+/* ./tinfo/strings.c */
-+
-+#undef _nc_str_init
-+string_desc *_nc_str_init(
-+ string_desc *dst,
-+ char *src,
-+ size_t len)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_str_null
-+string_desc *_nc_str_null(
-+ string_desc *dst,
-+ size_t len)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_str_copy
-+string_desc *_nc_str_copy(
-+ string_desc *dst,
-+ string_desc *src)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_safe_strcat
-+NCURSES_BOOL _nc_safe_strcat(
-+ string_desc *dst,
-+ const char *src)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_safe_strcpy
-+NCURSES_BOOL _nc_safe_strcpy(
-+ string_desc *dst,
-+ const char *src)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+/* ./trace/trace_buf.c */
-+
-+#undef _nc_trace_buf
-+char *_nc_trace_buf(
-+ int bufnum,
-+ size_t want)
-+ { return(*(char **)0); }
-+
-+#undef _nc_trace_bufcat
-+char *_nc_trace_bufcat(
-+ int bufnum,
-+ const char *value)
-+ { return(*(char **)0); }
-+
-+/* ./trace/trace_tries.c */
-+
-+#undef _nc_trace_tries
-+void _nc_trace_tries(
-+ TRIES *tree)
-+ { /* void */ }
-+
-+/* ./base/tries.c */
-+
-+#undef _nc_expand_try
-+char *_nc_expand_try(
-+ TRIES *tree,
-+ unsigned code,
-+ int *count,
-+ size_t len)
-+ { return(*(char **)0); }
-+
-+#undef _nc_remove_key
-+int _nc_remove_key(
-+ TRIES **tree,
-+ unsigned code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_remove_string
-+int _nc_remove_string(
-+ TRIES **tree,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/trim_sgr0.c */
-+
-+#undef _nc_trim_sgr0
-+char *_nc_trim_sgr0(
-+ TERMTYPE *tp)
-+ { return(*(char **)0); }
-+
-+/* ./unctrl.c */
-+
-+#undef unctrl_sp
-+char *unctrl_sp(
-+ SCREEN *sp,
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef unctrl
-+char *unctrl(
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+/* ./trace/visbuf.c */
-+
-+#undef _nc_visbuf2
-+const char *_nc_visbuf2(
-+ int bufnum,
-+ const char *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_visbuf
-+const char *_nc_visbuf(
-+ const char *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_visbufn
-+const char *_nc_visbufn(
-+ const char *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswbuf2
-+const char *_nc_viswbuf2(
-+ int bufnum,
-+ const wchar_t *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswbuf
-+const char *_nc_viswbuf(
-+ const wchar_t *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswbufn
-+const char *_nc_viswbufn(
-+ const wchar_t *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswibuf
-+const char *_nc_viswibuf(
-+ const wint_t *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viscbuf2
-+const char *_nc_viscbuf2(
-+ int bufnum,
-+ const cchar_t *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viscbuf
-+const char *_nc_viscbuf(
-+ const cchar_t *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+/* ./base/define_key.c */
-+
-+#undef define_key_sp
-+int define_key_sp(
-+ SCREEN *sp,
-+ const char *str,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef define_key
-+int define_key(
-+ const char *str,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/hashed_db.c */
-+
-+#undef _nc_hashed_db
-+void _nc_hashed_db(void)
-+ { /* void */ }
-+
-+/* ./base/key_defined.c */
-+
-+#undef key_defined_sp
-+int key_defined_sp(
-+ SCREEN *sp,
-+ const char *str)
-+ { return(*(int *)0); }
-+
-+#undef key_defined
-+int key_defined(
-+ const char *str)
-+ { return(*(int *)0); }
-+
-+/* ./base/keybound.c */
-+
-+#undef keybound_sp
-+char *keybound_sp(
-+ SCREEN *sp,
-+ int code,
-+ int count)
-+ { return(*(char **)0); }
-+
-+#undef keybound
-+char *keybound(
-+ int code,
-+ int count)
-+ { return(*(char **)0); }
-+
-+/* ./base/keyok.c */
-+
-+#undef keyok_sp
-+int keyok_sp(
-+ SCREEN *sp,
-+ int c,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef keyok
-+int keyok(
-+ int c,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./base/version.c */
-+
-+#undef curses_version
-+const char *curses_version(void)
-+ { return(*(const char **)0); }
-Index: ncurses/llib-ltinfow
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/llib-ltinfow 2012-07-14 17:39:00.000000000 +0000
-@@ -0,0 +1,1537 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2012 *
-+ ****************************************************************************/
-+/* LINTLIBRARY */
-+
-+/* ./tinfo/access.c */
-+
-+#include <curses.priv.h>
-+#include <ctype.h>
-+#include <tic.h>
-+
-+#undef _nc_rootname
-+char *_nc_rootname(
-+ char *path)
-+ { return(*(char **)0); }
-+
-+#undef _nc_is_abs_path
-+NCURSES_BOOL _nc_is_abs_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_pathlast
-+unsigned _nc_pathlast(
-+ const char *path)
-+ { return(*(unsigned *)0); }
-+
-+#undef _nc_basename
-+char *_nc_basename(
-+ char *path)
-+ { return(*(char **)0); }
-+
-+#undef _nc_access
-+int _nc_access(
-+ const char *path,
-+ int mode)
-+ { return(*(int *)0); }
-+
-+#undef _nc_is_dir_path
-+NCURSES_BOOL _nc_is_dir_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_is_file_path
-+NCURSES_BOOL _nc_is_file_path(
-+ const char *path)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_env_access
-+int _nc_env_access(void)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/add_tries.c */
-+
-+#undef _nc_add_to_try
-+int _nc_add_to_try(
-+ TRIES **tree,
-+ const char *str,
-+ unsigned code)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/alloc_ttype.c */
-+
-+#undef _nc_align_termtype
-+void _nc_align_termtype(
-+ TERMTYPE *to,
-+ TERMTYPE *from)
-+ { /* void */ }
-+
-+#undef _nc_copy_termtype
-+void _nc_copy_termtype(
-+ TERMTYPE *dst,
-+ const TERMTYPE *src)
-+ { /* void */ }
-+
-+/* ./codes.c */
-+
-+#undef boolcodes
-+char *const boolcodes[] = {0};
-+#undef numcodes
-+char *const numcodes[] = {0};
-+#undef strcodes
-+char *const strcodes[] = {0};
-+
-+/* ./comp_captab.c */
-+
-+#include <hashsize.h>
-+
-+#undef _nc_get_table
-+const struct name_table_entry *_nc_get_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const struct name_table_entry **)0); }
-+
-+#undef _nc_get_hash_table
-+const HashValue *_nc_get_hash_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const HashValue **)0); }
-+
-+#undef _nc_get_alias_table
-+const struct alias *_nc_get_alias_table(
-+ NCURSES_BOOL termcap)
-+ { return(*(const struct alias **)0); }
-+
-+#undef _nc_get_hash_info
-+const HashData *_nc_get_hash_info(
-+ NCURSES_BOOL termcap)
-+ { return(*(const HashData **)0); }
-+
-+/* ./tinfo/comp_error.c */
-+
-+#undef _nc_suppress_warnings
-+NCURSES_BOOL _nc_suppress_warnings;
-+#undef _nc_curr_line
-+int _nc_curr_line;
-+#undef _nc_curr_col
-+int _nc_curr_col;
-+
-+#undef _nc_get_source
-+const char *_nc_get_source(void)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_set_source
-+void _nc_set_source(
-+ const char *const name)
-+ { /* void */ }
-+
-+#undef _nc_set_type
-+void _nc_set_type(
-+ const char *const name)
-+ { /* void */ }
-+
-+#undef _nc_get_type
-+void _nc_get_type(
-+ char *name)
-+ { /* void */ }
-+
-+#undef _nc_warning
-+void _nc_warning(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_err_abort
-+void _nc_err_abort(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_syserr_abort
-+void _nc_syserr_abort(
-+ const char *const fmt,
-+ ...)
-+ { /* void */ }
-+
-+/* ./tinfo/comp_hash.c */
-+
-+#undef _nc_find_entry
-+struct name_table_entry const *_nc_find_entry(
-+ const char *string,
-+ const HashValue *hash_table)
-+ { return(*(struct name_table_entry const **)0); }
-+
-+#undef _nc_find_type_entry
-+struct name_table_entry const *_nc_find_type_entry(
-+ const char *string,
-+ int type,
-+ NCURSES_BOOL termcap)
-+ { return(*(struct name_table_entry const **)0); }
-+
-+/* ./tinfo/db_iterator.c */
-+
-+#include <time.h>
-+
-+#undef _nc_tic_dir
-+const char *_nc_tic_dir(
-+ const char *path)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_keep_tic_dir
-+void _nc_keep_tic_dir(
-+ const char *path)
-+ { /* void */ }
-+
-+#undef _nc_last_db
-+void _nc_last_db(void)
-+ { /* void */ }
-+
-+#undef _nc_next_db
-+const char *_nc_next_db(
-+ DBDIRS *state,
-+ int *offset)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_first_db
-+void _nc_first_db(
-+ DBDIRS *state,
-+ int *offset)
-+ { /* void */ }
-+
-+/* ./tinfo/doalloc.c */
-+
-+#undef _nc_doalloc
-+void *_nc_doalloc(
-+ void *oldp,
-+ size_t amount)
-+ { return(*(void **)0); }
-+
-+/* ./tinfo/entries.c */
-+
-+#undef _nc_head
-+ENTRY *_nc_head;
-+#undef _nc_tail
-+ENTRY *_nc_tail;
-+
-+#undef _nc_free_entry
-+void _nc_free_entry(
-+ ENTRY *headp,
-+ TERMTYPE *tterm)
-+ { /* void */ }
-+
-+#undef _nc_free_entries
-+void _nc_free_entries(
-+ ENTRY *headp)
-+ { /* void */ }
-+
-+#undef _nc_delink_entry
-+ENTRY *_nc_delink_entry(
-+ ENTRY *headp,
-+ TERMTYPE *tterm)
-+ { return(*(ENTRY **)0); }
-+
-+#undef _nc_leaks_tinfo
-+void _nc_leaks_tinfo(void)
-+ { /* void */ }
-+
-+/* ./fallback.c */
-+
-+#undef _nc_fallback
-+const TERMTYPE *_nc_fallback(
-+ const char *name)
-+ { return(*(const TERMTYPE **)0); }
-+
-+/* ./tinfo/free_ttype.c */
-+
-+#undef _nc_free_termtype
-+void _nc_free_termtype(
-+ TERMTYPE *ptr)
-+ { /* void */ }
-+
-+#undef _nc_user_definable
-+NCURSES_BOOL _nc_user_definable;
-+
-+#undef use_extended_names
-+int use_extended_names(
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/getenv_num.c */
-+
-+#undef _nc_getenv_num
-+int _nc_getenv_num(
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/home_terminfo.c */
-+
-+#undef _nc_home_terminfo
-+char *_nc_home_terminfo(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/init_keytry.c */
-+
-+#if 0
-+
-+#include <init_keytry.h>
-+
-+#undef _nc_tinfo_fkeys
-+const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
-+
-+#endif
-+
-+#undef _nc_init_keytry
-+void _nc_init_keytry(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+/* ./tinfo/lib_acs.c */
-+
-+#undef acs_map
-+chtype acs_map[128];
-+
-+#undef _nc_init_acs_sp
-+void _nc_init_acs_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_init_acs
-+void _nc_init_acs(void)
-+ { /* void */ }
-+
-+/* ./tinfo/lib_baudrate.c */
-+
-+#include <termcap.h>
-+
-+struct speed {
-+ int s;
-+ int sp;
-+};
-+
-+#undef _nc_baudrate
-+int _nc_baudrate(
-+ int OSpeed)
-+ { return(*(int *)0); }
-+
-+#undef _nc_ospeed
-+int _nc_ospeed(
-+ int BaudRate)
-+ { return(*(int *)0); }
-+
-+#undef baudrate_sp
-+int baudrate_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef baudrate
-+int baudrate(void)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_cur_term.c */
-+
-+#undef cur_term
-+TERMINAL *cur_term;
-+
-+#undef set_curterm_sp
-+TERMINAL *set_curterm_sp(
-+ SCREEN *sp,
-+ TERMINAL *termp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef set_curterm
-+TERMINAL *set_curterm(
-+ TERMINAL *termp)
-+ { return(*(TERMINAL **)0); }
-+
-+#undef del_curterm_sp
-+int del_curterm_sp(
-+ SCREEN *sp,
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+#undef del_curterm
-+int del_curterm(
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_data.c */
-+
-+#undef stdscr
-+WINDOW *stdscr;
-+#undef curscr
-+WINDOW *curscr;
-+#undef newscr
-+WINDOW *newscr;
-+#undef _nc_screen_chain
-+SCREEN *_nc_screen_chain;
-+#undef SP
-+SCREEN *SP;
-+#undef _nc_globals
-+NCURSES_GLOBALS _nc_globals;
-+#undef _nc_prescreen
-+NCURSES_PRESCREEN _nc_prescreen;
-+
-+#undef _nc_screen_of
-+SCREEN *_nc_screen_of(
-+ WINDOW *win)
-+ { return(*(SCREEN **)0); }
-+
-+/* ./tinfo/lib_has_cap.c */
-+
-+#undef has_ic_sp
-+NCURSES_BOOL has_ic_sp(
-+ SCREEN *sp)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_ic
-+NCURSES_BOOL has_ic(void)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_il_sp
-+NCURSES_BOOL has_il_sp(
-+ SCREEN *sp)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef has_il
-+NCURSES_BOOL has_il(void)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+/* ./tinfo/lib_kernel.c */
-+
-+#undef erasechar_sp
-+char erasechar_sp(
-+ SCREEN *sp)
-+ { return(*(char *)0); }
-+
-+#undef erasechar
-+char erasechar(void)
-+ { return(*(char *)0); }
-+
-+#undef killchar_sp
-+char killchar_sp(
-+ SCREEN *sp)
-+ { return(*(char *)0); }
-+
-+#undef killchar
-+char killchar(void)
-+ { return(*(char *)0); }
-+
-+#undef flushinp_sp
-+int flushinp_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef flushinp
-+int flushinp(void)
-+ { return(*(int *)0); }
-+
-+/* ./lib_keyname.c */
-+
-+struct kn { short offset; int code; };
-+
-+#undef keyname_sp
-+char *keyname_sp(
-+ SCREEN *sp,
-+ int c)
-+ { return(*(char **)0); }
-+
-+#undef keyname
-+char *keyname(
-+ int c)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_longname.c */
-+
-+#undef longname
-+char *longname(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_napms.c */
-+
-+#include <sys/time.h>
-+
-+#undef napms_sp
-+int napms_sp(
-+ SCREEN *sp,
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef napms
-+int napms(
-+ int ms)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_options.c */
-+
-+#undef idlok
-+int idlok(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef idcok
-+void idcok(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { /* void */ }
-+
-+#undef halfdelay_sp
-+int halfdelay_sp(
-+ SCREEN *sp,
-+ int t)
-+ { return(*(int *)0); }
-+
-+#undef halfdelay
-+int halfdelay(
-+ int t)
-+ { return(*(int *)0); }
-+
-+#undef nodelay
-+int nodelay(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef notimeout
-+int notimeout(
-+ WINDOW *win,
-+ NCURSES_BOOL f)
-+ { return(*(int *)0); }
-+
-+#undef wtimeout
-+void wtimeout(
-+ WINDOW *win,
-+ int delay)
-+ { /* void */ }
-+
-+#undef keypad
-+int keypad(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef meta
-+int meta(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef curs_set_sp
-+int curs_set_sp(
-+ SCREEN *sp,
-+ int vis)
-+ { return(*(int *)0); }
-+
-+#undef curs_set
-+int curs_set(
-+ int vis)
-+ { return(*(int *)0); }
-+
-+#undef typeahead_sp
-+int typeahead_sp(
-+ SCREEN *sp,
-+ int fd)
-+ { return(*(int *)0); }
-+
-+#undef typeahead
-+int typeahead(
-+ int fd)
-+ { return(*(int *)0); }
-+
-+#undef has_key_sp
-+int has_key_sp(
-+ SCREEN *sp,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef has_key
-+int has_key(
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp_flush_sp
-+int _nc_putp_flush_sp(
-+ SCREEN *sp,
-+ const char *name,
-+ const char *value)
-+ { return(*(int *)0); }
-+
-+#undef _nc_keypad
-+int _nc_keypad(
-+ SCREEN *sp,
-+ int flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_raw.c */
-+
-+#undef raw_sp
-+int raw_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef raw
-+int raw(void)
-+ { return(*(int *)0); }
-+
-+#undef cbreak_sp
-+int cbreak_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef cbreak
-+int cbreak(void)
-+ { return(*(int *)0); }
-+
-+#undef qiflush_sp
-+void qiflush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef qiflush
-+void qiflush(void)
-+ { /* void */ }
-+
-+#undef noraw_sp
-+int noraw_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef noraw
-+int noraw(void)
-+ { return(*(int *)0); }
-+
-+#undef nocbreak_sp
-+int nocbreak_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef nocbreak
-+int nocbreak(void)
-+ { return(*(int *)0); }
-+
-+#undef noqiflush_sp
-+void noqiflush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef noqiflush
-+void noqiflush(void)
-+ { /* void */ }
-+
-+#undef intrflush_sp
-+int intrflush_sp(
-+ SCREEN *sp,
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef intrflush
-+int intrflush(
-+ WINDOW *win,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_setup.c */
-+
-+#include <locale.h>
-+#include <sys/ioctl.h>
-+#include <langinfo.h>
-+
-+#undef ttytype
-+char ttytype[256];
-+#undef LINES
-+int LINES;
-+#undef COLS
-+int COLS;
-+#undef TABSIZE
-+int TABSIZE;
-+
-+#undef set_tabsize_sp
-+int set_tabsize_sp(
-+ SCREEN *sp,
-+ int value)
-+ { return(*(int *)0); }
-+
-+#undef set_tabsize
-+int set_tabsize(
-+ int value)
-+ { return(*(int *)0); }
-+
-+#undef _nc_handle_sigwinch
-+int _nc_handle_sigwinch(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef use_env_sp
-+void use_env_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_env
-+void use_env(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl_sp
-+void use_tioctl_sp(
-+ SCREEN *sp,
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef use_tioctl
-+void use_tioctl(
-+ NCURSES_BOOL f)
-+ { /* void */ }
-+
-+#undef _nc_get_screensize
-+void _nc_get_screensize(
-+ SCREEN *sp,
-+ int *linep,
-+ int *colp)
-+ { /* void */ }
-+
-+#undef _nc_update_screensize
-+void _nc_update_screensize(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_setup_tinfo
-+int _nc_setup_tinfo(
-+ const char *const tn,
-+ TERMTYPE *const tp)
-+ { return(*(int *)0); }
-+
-+#undef _nc_tinfo_cmdch
-+void _nc_tinfo_cmdch(
-+ TERMINAL *termp,
-+ int proto)
-+ { /* void */ }
-+
-+#undef _nc_get_locale
-+char *_nc_get_locale(void)
-+ { return(*(char **)0); }
-+
-+#undef _nc_unicode_locale
-+int _nc_unicode_locale(void)
-+ { return(*(int *)0); }
-+
-+#undef _nc_locale_breaks_acs
-+int _nc_locale_breaks_acs(
-+ TERMINAL *termp)
-+ { return(*(int *)0); }
-+
-+#undef _nc_setupterm
-+int _nc_setupterm(
-+ char *tname,
-+ int Filedes,
-+ int *errret,
-+ int reuse)
-+ { return(*(int *)0); }
-+
-+#undef new_prescr
-+SCREEN *new_prescr(void)
-+ { return(*(SCREEN **)0); }
-+
-+#undef setupterm
-+int setupterm(
-+ char *tname,
-+ int Filedes,
-+ int *errret)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/lib_termcap.c */
-+
-+#undef UP
-+char *UP;
-+#undef BC
-+char *BC;
-+
-+#undef tgetent_sp
-+int tgetent_sp(
-+ SCREEN *sp,
-+ char *bufp,
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+#if 0
-+
-+#include <capdefaults.c>
-+
-+#endif
-+
-+#undef tgetent
-+int tgetent(
-+ char *bufp,
-+ const char *name)
-+ { return(*(int *)0); }
-+
-+#undef tgetflag_sp
-+int tgetflag_sp(
-+ SCREEN *sp,
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetflag
-+int tgetflag(
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetnum_sp
-+int tgetnum_sp(
-+ SCREEN *sp,
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetnum
-+int tgetnum(
-+ char *id)
-+ { return(*(int *)0); }
-+
-+#undef tgetstr_sp
-+char *tgetstr_sp(
-+ SCREEN *sp,
-+ char *id,
-+ char **area)
-+ { return(*(char **)0); }
-+
-+#undef tgetstr
-+char *tgetstr(
-+ char *id,
-+ char **area)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_termname.c */
-+
-+#undef termname_sp
-+char *termname_sp(
-+ SCREEN *sp)
-+ { return(*(char **)0); }
-+
-+#undef termname
-+char *termname(void)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tgoto.c */
-+
-+#undef tgoto
-+char *tgoto(
-+ const char *string,
-+ int x,
-+ int y)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_ti.c */
-+
-+#undef tigetflag_sp
-+int tigetflag_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetflag
-+int tigetflag(
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetnum_sp
-+int tigetnum_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetnum
-+int tigetnum(
-+ char *str)
-+ { return(*(int *)0); }
-+
-+#undef tigetstr_sp
-+char *tigetstr_sp(
-+ SCREEN *sp,
-+ char *str)
-+ { return(*(char **)0); }
-+
-+#undef tigetstr
-+char *tigetstr(
-+ char *str)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tparm.c */
-+
-+#undef _nc_tparm_err
-+int _nc_tparm_err;
-+
-+#undef _nc_tparm_analyze
-+int _nc_tparm_analyze(
-+ const char *string,
-+ char *p_is_s[9],
-+ int *popcount)
-+ { return(*(int *)0); }
-+
-+#undef tparm
-+char *tparm(
-+ char *string,
-+ ...)
-+ { return(*(char **)0); }
-+
-+#undef tiparm
-+char *tiparm(
-+ const char *string,
-+ ...)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_tputs.c */
-+
-+#undef PC
-+char PC;
-+#undef ospeed
-+short ospeed;
-+#undef _nc_nulls_sent
-+int _nc_nulls_sent;
-+
-+#undef _nc_set_no_padding
-+void _nc_set_no_padding(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef delay_output_sp
-+int delay_output_sp(
-+ SCREEN *sp,
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef delay_output
-+int delay_output(
-+ int ms)
-+ { return(*(int *)0); }
-+
-+#undef _nc_flush_sp
-+void _nc_flush_sp(
-+ SCREEN *sp)
-+ { /* void */ }
-+
-+#undef _nc_flush
-+void _nc_flush(void)
-+ { /* void */ }
-+
-+#undef _nc_outch_sp
-+int _nc_outch_sp(
-+ SCREEN *sp,
-+ int ch)
-+ { return(*(int *)0); }
-+
-+#undef _nc_outch
-+int _nc_outch(
-+ int ch)
-+ { return(*(int *)0); }
-+
-+#undef putp_sp
-+int putp_sp(
-+ SCREEN *sp,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp_sp
-+int _nc_putp_sp(
-+ SCREEN *sp,
-+ const char *name,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef putp
-+int putp(
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef _nc_putp
-+int _nc_putp(
-+ const char *name,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+#undef tputs_sp
-+int tputs_sp(
-+ SCREEN *sp,
-+ const char *string,
-+ int affcnt,
-+ NCURSES_OUTC_sp outc)
-+ { return(*(int *)0); }
-+
-+#undef _nc_outc_wrapper
-+int _nc_outc_wrapper(
-+ SCREEN *sp,
-+ int c)
-+ { return(*(int *)0); }
-+
-+#undef tputs
-+int tputs(
-+ const char *string,
-+ int affcnt,
-+ int (*outc)(
-+ int p1))
-+ { return(*(int *)0); }
-+
-+/* ./trace/lib_trace.c */
-+
-+#undef _nc_tracing
-+unsigned _nc_tracing;
-+#undef _nc_tputs_trace
-+const char *_nc_tputs_trace = {0};
-+#undef _nc_outchars
-+long _nc_outchars;
-+
-+#undef trace
-+void trace(
-+ const unsigned int tracelevel)
-+ { /* void */ }
-+
-+#undef _tracef
-+void _tracef(
-+ const char *fmt,
-+ ...)
-+ { /* void */ }
-+
-+#undef _nc_retrace_bool
-+NCURSES_BOOL _nc_retrace_bool(
-+ int code)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_retrace_char
-+char _nc_retrace_char(
-+ int code)
-+ { return(*(char *)0); }
-+
-+#undef _nc_retrace_int
-+int _nc_retrace_int(
-+ int code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_retrace_unsigned
-+unsigned _nc_retrace_unsigned(
-+ unsigned code)
-+ { return(*(unsigned *)0); }
-+
-+#undef _nc_retrace_ptr
-+char *_nc_retrace_ptr(
-+ char *code)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_cptr
-+const char *_nc_retrace_cptr(
-+ const char *code)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_retrace_cvoid_ptr
-+void *_nc_retrace_cvoid_ptr(
-+ void *code)
-+ { return(*(void **)0); }
-+
-+#undef _nc_retrace_void_ptr
-+void *_nc_retrace_void_ptr(
-+ void *code)
-+ { return(*(void **)0); }
-+
-+#undef _nc_retrace_sp
-+SCREEN *_nc_retrace_sp(
-+ SCREEN *code)
-+ { return(*(SCREEN **)0); }
-+
-+#undef _nc_retrace_win
-+WINDOW *_nc_retrace_win(
-+ WINDOW *code)
-+ { return(*(WINDOW **)0); }
-+
-+/* ./trace/lib_traceatr.c */
-+
-+#undef _traceattr2
-+char *_traceattr2(
-+ int bufnum,
-+ chtype newmode)
-+ { return(*(char **)0); }
-+
-+#undef _traceattr
-+char *_traceattr(
-+ attr_t newmode)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_int_attr_t
-+int _nc_retrace_int_attr_t(
-+ attr_t code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_retrace_attr_t
-+attr_t _nc_retrace_attr_t(
-+ attr_t code)
-+ { return(*(attr_t *)0); }
-+
-+#undef _nc_altcharset_name
-+const char *_nc_altcharset_name(
-+ attr_t attr,
-+ chtype ch)
-+ { return(*(const char **)0); }
-+
-+#undef _tracechtype2
-+char *_tracechtype2(
-+ int bufnum,
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracechtype
-+char *_tracechtype(
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef _nc_retrace_chtype
-+chtype _nc_retrace_chtype(
-+ chtype code)
-+ { return(*(chtype *)0); }
-+
-+#undef _tracecchar_t2
-+char *_tracecchar_t2(
-+ int bufnum,
-+ const cchar_t *ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracecchar_t
-+char *_tracecchar_t(
-+ const cchar_t *ch)
-+ { return(*(char **)0); }
-+
-+/* ./trace/lib_tracebits.c */
-+
-+typedef struct {
-+ unsigned int val;
-+ const char *name;
-+} BITNAMES;
-+
-+#undef _nc_trace_ttymode
-+char *_nc_trace_ttymode(
-+ struct termios *tty)
-+ { return(*(char **)0); }
-+
-+#undef _nc_tracebits
-+char *_nc_tracebits(void)
-+ { return(*(char **)0); }
-+
-+/* ./trace/lib_tracechr.c */
-+
-+#undef _nc_tracechar
-+char *_nc_tracechar(
-+ SCREEN *sp,
-+ int ch)
-+ { return(*(char **)0); }
-+
-+#undef _tracechar
-+char *_tracechar(
-+ int ch)
-+ { return(*(char **)0); }
-+
-+/* ./tinfo/lib_ttyflags.c */
-+
-+#undef _nc_get_tty_mode_sp
-+int _nc_get_tty_mode_sp(
-+ SCREEN *sp,
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_get_tty_mode
-+int _nc_get_tty_mode(
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_set_tty_mode_sp
-+int _nc_set_tty_mode_sp(
-+ SCREEN *sp,
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef _nc_set_tty_mode
-+int _nc_set_tty_mode(
-+ struct termios *buf)
-+ { return(*(int *)0); }
-+
-+#undef def_shell_mode_sp
-+int def_shell_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef def_shell_mode
-+int def_shell_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef def_prog_mode_sp
-+int def_prog_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef def_prog_mode
-+int def_prog_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef reset_prog_mode_sp
-+int reset_prog_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef reset_prog_mode
-+int reset_prog_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef reset_shell_mode_sp
-+int reset_shell_mode_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef reset_shell_mode
-+int reset_shell_mode(void)
-+ { return(*(int *)0); }
-+
-+#undef savetty_sp
-+int savetty_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef savetty
-+int savetty(void)
-+ { return(*(int *)0); }
-+
-+#undef resetty_sp
-+int resetty_sp(
-+ SCREEN *sp)
-+ { return(*(int *)0); }
-+
-+#undef resetty
-+int resetty(void)
-+ { return(*(int *)0); }
-+
-+/* ./tty/lib_twait.c */
-+
-+#undef _nc_timed_wait
-+int _nc_timed_wait(
-+ SCREEN *sp,
-+ int mode,
-+ int milliseconds,
-+ int *timeleft)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/name_match.c */
-+
-+#undef _nc_first_name
-+char *_nc_first_name(
-+ const char *const sp)
-+ { return(*(char **)0); }
-+
-+#undef _nc_name_match
-+int _nc_name_match(
-+ const char *const namelst,
-+ const char *const name,
-+ const char *const delim)
-+ { return(*(int *)0); }
-+
-+/* ./names.c */
-+
-+#undef boolnames
-+char *const boolnames[] = {0};
-+#undef boolfnames
-+char *const boolfnames[] = {0};
-+#undef numnames
-+char *const numnames[] = {0};
-+#undef numfnames
-+char *const numfnames[] = {0};
-+#undef strnames
-+char *const strnames[] = {0};
-+#undef strfnames
-+char *const strfnames[] = {0};
-+
-+/* ./tinfo/read_entry.c */
-+
-+#include <hashed_db.h>
-+
-+#undef _nc_read_termtype
-+int _nc_read_termtype(
-+ TERMTYPE *ptr,
-+ char *buffer,
-+ int limit)
-+ { return(*(int *)0); }
-+
-+#undef _nc_read_file_entry
-+int _nc_read_file_entry(
-+ const char *const filename,
-+ TERMTYPE *ptr)
-+ { return(*(int *)0); }
-+
-+#undef _nc_read_entry
-+int _nc_read_entry(
-+ const char *const name,
-+ char *const filename,
-+ TERMTYPE *const tp)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/read_termcap.c */
-+
-+#include <sys/types.h>
-+
-+#undef _nc_read_termcap
-+void _nc_read_termcap(void)
-+ { /* void */ }
-+
-+/* ./tinfo/setbuf.c */
-+
-+#undef _nc_set_buffer_sp
-+void _nc_set_buffer_sp(
-+ SCREEN *sp,
-+ FILE *ofp,
-+ int buffered)
-+ { /* void */ }
-+
-+#undef _nc_set_buffer
-+void _nc_set_buffer(
-+ FILE *ofp,
-+ int buffered)
-+ { /* void */ }
-+
-+/* ./tinfo/strings.c */
-+
-+#undef _nc_str_init
-+string_desc *_nc_str_init(
-+ string_desc *dst,
-+ char *src,
-+ size_t len)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_str_null
-+string_desc *_nc_str_null(
-+ string_desc *dst,
-+ size_t len)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_str_copy
-+string_desc *_nc_str_copy(
-+ string_desc *dst,
-+ string_desc *src)
-+ { return(*(string_desc **)0); }
-+
-+#undef _nc_safe_strcat
-+NCURSES_BOOL _nc_safe_strcat(
-+ string_desc *dst,
-+ const char *src)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+#undef _nc_safe_strcpy
-+NCURSES_BOOL _nc_safe_strcpy(
-+ string_desc *dst,
-+ const char *src)
-+ { return(*(NCURSES_BOOL *)0); }
-+
-+/* ./trace/trace_buf.c */
-+
-+#undef _nc_trace_buf
-+char *_nc_trace_buf(
-+ int bufnum,
-+ size_t want)
-+ { return(*(char **)0); }
-+
-+#undef _nc_trace_bufcat
-+char *_nc_trace_bufcat(
-+ int bufnum,
-+ const char *value)
-+ { return(*(char **)0); }
-+
-+/* ./trace/trace_tries.c */
-+
-+#undef _nc_trace_tries
-+void _nc_trace_tries(
-+ TRIES *tree)
-+ { /* void */ }
-+
-+/* ./base/tries.c */
-+
-+#undef _nc_expand_try
-+char *_nc_expand_try(
-+ TRIES *tree,
-+ unsigned code,
-+ int *count,
-+ size_t len)
-+ { return(*(char **)0); }
-+
-+#undef _nc_remove_key
-+int _nc_remove_key(
-+ TRIES **tree,
-+ unsigned code)
-+ { return(*(int *)0); }
-+
-+#undef _nc_remove_string
-+int _nc_remove_string(
-+ TRIES **tree,
-+ const char *string)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/trim_sgr0.c */
-+
-+#undef _nc_trim_sgr0
-+char *_nc_trim_sgr0(
-+ TERMTYPE *tp)
-+ { return(*(char **)0); }
-+
-+/* ./unctrl.c */
-+
-+#undef unctrl_sp
-+char *unctrl_sp(
-+ SCREEN *sp,
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+#undef unctrl
-+char *unctrl(
-+ chtype ch)
-+ { return(*(char **)0); }
-+
-+/* ./trace/visbuf.c */
-+
-+#undef _nc_visbuf2
-+const char *_nc_visbuf2(
-+ int bufnum,
-+ const char *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_visbuf
-+const char *_nc_visbuf(
-+ const char *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_visbufn
-+const char *_nc_visbufn(
-+ const char *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswbuf2
-+const char *_nc_viswbuf2(
-+ int bufnum,
-+ const wchar_t *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswbuf
-+const char *_nc_viswbuf(
-+ const wchar_t *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswbufn
-+const char *_nc_viswbufn(
-+ const wchar_t *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viswibuf
-+const char *_nc_viswibuf(
-+ const wint_t *buf)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viscbuf2
-+const char *_nc_viscbuf2(
-+ int bufnum,
-+ const cchar_t *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+#undef _nc_viscbuf
-+const char *_nc_viscbuf(
-+ const cchar_t *buf,
-+ int len)
-+ { return(*(const char **)0); }
-+
-+/* ./base/define_key.c */
-+
-+#undef define_key_sp
-+int define_key_sp(
-+ SCREEN *sp,
-+ const char *str,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+#undef define_key
-+int define_key(
-+ const char *str,
-+ int keycode)
-+ { return(*(int *)0); }
-+
-+/* ./tinfo/hashed_db.c */
-+
-+#undef _nc_hashed_db
-+void _nc_hashed_db(void)
-+ { /* void */ }
-+
-+/* ./base/key_defined.c */
-+
-+#undef key_defined_sp
-+int key_defined_sp(
-+ SCREEN *sp,
-+ const char *str)
-+ { return(*(int *)0); }
-+
-+#undef key_defined
-+int key_defined(
-+ const char *str)
-+ { return(*(int *)0); }
-+
-+/* ./base/keybound.c */
-+
-+#undef keybound_sp
-+char *keybound_sp(
-+ SCREEN *sp,
-+ int code,
-+ int count)
-+ { return(*(char **)0); }
-+
-+#undef keybound
-+char *keybound(
-+ int code,
-+ int count)
-+ { return(*(char **)0); }
-+
-+/* ./base/keyok.c */
-+
-+#undef keyok_sp
-+int keyok_sp(
-+ SCREEN *sp,
-+ int c,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+#undef keyok
-+int keyok(
-+ int c,
-+ NCURSES_BOOL flag)
-+ { return(*(int *)0); }
-+
-+/* ./base/version.c */
-+
-+#undef curses_version
-+const char *curses_version(void)
-+ { return(*(const char **)0); }
-Index: ncurses/modules
-Prereq: 1.117
---- ncurses-5.9/ncurses/modules 2010-08-07 18:41:02.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/modules 2013-01-26 22:17:55.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: modules,v 1.117 2010/08/07 18:41:02 tom Exp $
-+# $Id: modules,v 1.120 2013/01/26 22:17:55 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -115,7 +115,6 @@
- varargs lib $(trace) $(HEADER_DEPS)
-
- # Modules for porting
--memmove lib $(base) $(HEADER_DEPS)
- vsscanf lib $(base) $(HEADER_DEPS)
-
- # actually an extension, but with its own configure option (--disable-leaks)
-@@ -199,9 +198,9 @@
- lib_twait lib $(serial) $(HEADER_DEPS)
- name_match lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h
- names lib . $(HEADER_DEPS)
-+obsolete lib $(tinfo) $(HEADER_DEPS)
- read_entry lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h $(INCDIR)/hashed_db.h
- read_termcap lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h
--setbuf lib $(tinfo) $(HEADER_DEPS)
- strings lib $(tinfo) $(HEADER_DEPS)
- trace_buf lib $(trace) $(HEADER_DEPS)
- trace_tries lib $(trace) $(HEADER_DEPS)
-@@ -236,6 +235,7 @@
- @ port_win32con
- gettimeofday lib $(win32con) $(HEADER_DEPS)
- wcwidth lib $(win32con) $(HEADER_DEPS)
-+widechars lib $(wide) $(HEADER_DEPS)
- win_driver lib $(win32con) $(HEADER_DEPS)
-
- @ port_tinfo
-Index: ncurses/tinfo/MKcaptab.sh
-Prereq: 1.13
---- ncurses-5.9/ncurses/tinfo/MKcaptab.sh 2010-12-25 23:43:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/MKcaptab.sh 2011-10-22 16:34:50.000000000 +0000
-@@ -1,6 +1,6 @@
- #!/bin/sh
- ##############################################################################
--# Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 2007-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -26,7 +26,7 @@
- # use or other dealings in this Software without prior written #
- # authorization. #
- ##############################################################################
--# $Id: MKcaptab.sh,v 1.13 2010/12/25 23:43:58 tom Exp $
-+# $Id: MKcaptab.sh,v 1.14 2011/10/22 16:34:50 tom Exp $
- AWK=${1-awk}
- OPT1=${2-0}
- OPT2=${3-tinfo/MKcaptab.awk}
-@@ -99,12 +99,12 @@
- _nc_build_alias(struct alias **actual,
- const alias_table_data *source,
- const char *strings,
-- unsigned tablesize)
-+ size_t tablesize)
- {
- if (*actual == 0) {
- *actual = typeCalloc(struct alias, tablesize + 1);
- if (*actual != 0) {
-- unsigned n;
-+ size_t n;
- for (n = 0; n < tablesize; ++n) {
- add_alias(from);
- add_alias(to);
-@@ -178,7 +178,7 @@
- static int
- compare_tcap_names(const char *a, const char *b)
- {
-- return !strncmp(a, b, TCAP_LEN);
-+ return !strncmp(a, b, (size_t) TCAP_LEN);
- }
-
- static int
-Index: ncurses/tinfo/access.c
-Prereq: 1.16
---- ncurses-5.9/ncurses/tinfo/access.c 2010-01-23 17:57:43.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/access.c 2012-09-01 19:21:29.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,11 +33,18 @@
- #include <curses.priv.h>
-
- #include <ctype.h>
--#include <sys/stat.h>
-
- #include <tic.h>
-
--MODULE_ID("$Id: access.c,v 1.16 2010/01/23 17:57:43 tom Exp $")
-+MODULE_ID("$Id: access.c,v 1.23 2012/09/01 19:21:29 tom Exp $")
-+
-+#ifdef __TANDEM
-+#define ROOT_UID 65535
-+#endif
-+
-+#ifndef ROOT_UID
-+#define ROOT_UID 0
-+#endif
-
- #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
-
-@@ -53,7 +60,7 @@
- result = temp;
- #if !MIXEDCASE_FILENAMES
- for (s = result; *s != '\0'; ++s) {
-- *s = LOWERCASE(*s);
-+ *s = (char) LOWERCASE(*s);
- }
- #endif
- #if defined(PROG_EXT)
-@@ -108,24 +115,33 @@
- NCURSES_EXPORT(int)
- _nc_access(const char *path, int mode)
- {
-- if (access(path, mode) < 0) {
-+ int result;
-+
-+ if (path == 0) {
-+ result = -1;
-+ } else if (access(path, mode) < 0) {
- if ((mode & W_OK) != 0
- && errno == ENOENT
- && strlen(path) < PATH_MAX) {
- char head[PATH_MAX];
-- char *leaf = _nc_basename(strcpy(head, path));
-+ char *leaf;
-
-+ _nc_STRCPY(head, path, sizeof(head));
-+ leaf = _nc_basename(head);
- if (leaf == 0)
- leaf = head;
- *leaf = '\0';
- if (head == leaf)
-- (void) strcpy(head, ".");
-+ _nc_STRCPY(head, ".", sizeof(head));
-
-- return access(head, R_OK | W_OK | X_OK);
-+ result = access(head, R_OK | W_OK | X_OK);
-+ } else {
-+ result = -1;
- }
-- return -1;
-+ } else {
-+ result = 0;
- }
-- return 0;
-+ return result;
- }
-
- NCURSES_EXPORT(bool)
-@@ -135,7 +151,7 @@
- struct stat sb;
-
- if (stat(path, &sb) == 0
-- && (sb.st_mode & S_IFMT) == S_IFDIR) {
-+ && S_ISDIR(sb.st_mode)) {
- result = TRUE;
- }
- return result;
-@@ -148,7 +164,7 @@
- struct stat sb;
-
- if (stat(path, &sb) == 0
-- && (sb.st_mode & S_IFMT) == S_IFREG) {
-+ && S_ISREG(sb.st_mode)) {
- result = TRUE;
- }
- return result;
-@@ -170,6 +186,7 @@
- || getgid() != getegid())
- return FALSE;
- #endif
-- return getuid() != 0 && geteuid() != 0; /* ...finally, disallow root */
-+ /* ...finally, disallow root */
-+ return (getuid() != ROOT_UID) && (geteuid() != ROOT_UID);
- }
- #endif
-Index: ncurses/tinfo/alloc_entry.c
-Prereq: 1.51
---- ncurses-5.9/ncurses/tinfo/alloc_entry.c 2010-12-25 23:06:01.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/alloc_entry.c 2012-10-27 21:32:23.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -47,7 +47,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: alloc_entry.c,v 1.51 2010/12/25 23:06:01 tom Exp $")
-+MODULE_ID("$Id: alloc_entry.c,v 1.57 2012/10/27 21:32:23 tom Exp $")
-
- #define ABSENT_OFFSET -1
- #define CANCELLED_OFFSET -2
-@@ -73,7 +73,7 @@
- #endif
-
- if (stringbuf == 0)
-- stringbuf = (char *) malloc(MAX_STRTAB);
-+ TYPE_MALLOC(char, (size_t) MAX_STRTAB, stringbuf);
-
- #if NCURSES_XNAMES
- tp->num_Booleans = BOOLCOUNT;
-@@ -84,11 +84,11 @@
- tp->ext_Strings = 0;
- #endif
- if (tp->Booleans == 0)
-- tp->Booleans = typeMalloc(NCURSES_SBOOL, BOOLCOUNT);
-+ TYPE_MALLOC(NCURSES_SBOOL, BOOLCOUNT, tp->Booleans);
- if (tp->Numbers == 0)
-- tp->Numbers = typeMalloc(short, NUMCOUNT);
-+ TYPE_MALLOC(short, NUMCOUNT, tp->Numbers);
- if (tp->Strings == 0)
-- tp->Strings = typeMalloc(char *, STRCOUNT);
-+ TYPE_MALLOC(char *, STRCOUNT, tp->Strings);
-
- for_each_boolean(i, tp)
- tp->Booleans[i] = FALSE;
-@@ -131,7 +131,7 @@
- result = (stringbuf + next_free - 1);
- }
- } else if (next_free + len < MAX_STRTAB) {
-- strcpy(&stringbuf[next_free], string);
-+ _nc_STRCPY(&stringbuf[next_free], string, MAX_STRTAB);
- DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
- DEBUG(7, ("at location %d", (int) next_free));
- next_free += len;
-@@ -194,8 +194,7 @@
- useoffsets[i] = (int) (ep->uses[i].name - stringbuf);
- }
-
-- if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0)
-- _nc_err_abort(MSG_NO_MEMORY);
-+ TYPE_MALLOC(char, next_free, tp->str_table);
- (void) memcpy(tp->str_table, stringbuf, next_free);
-
- tp->term_names = tp->str_table + n;
-@@ -216,16 +215,18 @@
- if ((n = (unsigned) NUM_EXT_NAMES(tp)) != 0) {
- if (n < SIZEOF(offsets)) {
- size_t length = 0;
-+ size_t offset;
- for (i = 0; i < n; i++) {
- length += strlen(tp->ext_Names[i]) + 1;
- offsets[i] = (int) (tp->ext_Names[i] - stringbuf);
- }
-- if ((tp->ext_str_table = typeMalloc(char, length)) == 0)
-- _nc_err_abort(MSG_NO_MEMORY);
-- for (i = 0, length = 0; i < n; i++) {
-- tp->ext_Names[i] = tp->ext_str_table + length;
-- strcpy(tp->ext_Names[i], stringbuf + offsets[i]);
-- length += strlen(tp->ext_Names[i]) + 1;
-+ TYPE_MALLOC(char, length, tp->ext_str_table);
-+ for (i = 0, offset = 0; i < n; i++) {
-+ tp->ext_Names[i] = tp->ext_str_table + offset;
-+ _nc_STRCPY(tp->ext_Names[i],
-+ stringbuf + offsets[i],
-+ length - offset);
-+ offset += strlen(tp->ext_Names[i]) + 1;
- }
- }
- }
-Index: ncurses/tinfo/alloc_ttype.c
-Prereq: 1.22
---- ncurses-5.9/ncurses/tinfo/alloc_ttype.c 2010-12-19 00:24:09.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/alloc_ttype.c 2012-10-27 21:23:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1999-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: alloc_ttype.c,v 1.22 2010/12/19 00:24:09 tom Exp $")
-+MODULE_ID("$Id: alloc_ttype.c,v 1.26 2012/10/27 21:23:17 tom Exp $")
-
- #if NCURSES_XNAMES
- /*
-@@ -104,7 +104,7 @@
-
- if (to->ext_Booleans != ext_Booleans) {
- EXTEND_NUM(num_Booleans, ext_Booleans);
-- to->Booleans = typeRealloc(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
-+ TYPE_REALLOC(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
- for (n = to->ext_Booleans - 1,
- m = ext_Booleans - 1,
- base = to->num_Booleans - (m + 1); m >= 0; m--) {
-@@ -116,9 +116,10 @@
- }
- to->ext_Booleans = UShort(ext_Booleans);
- }
-+
- if (to->ext_Numbers != ext_Numbers) {
- EXTEND_NUM(num_Numbers, ext_Numbers);
-- to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers);
-+ TYPE_REALLOC(short, to->num_Numbers, to->Numbers);
- for (n = to->ext_Numbers - 1,
- m = ext_Numbers - 1,
- base = to->num_Numbers - (m + 1); m >= 0; m--) {
-@@ -132,7 +133,7 @@
- }
- if (to->ext_Strings != ext_Strings) {
- EXTEND_NUM(num_Strings, ext_Strings);
-- to->Strings = typeRealloc(char *, to->num_Strings, to->Strings);
-+ TYPE_REALLOC(char *, to->num_Strings, to->Strings);
- for (n = to->ext_Strings - 1,
- m = ext_Strings - 1,
- base = to->num_Strings - (m + 1); m >= 0; m--) {
-@@ -301,7 +302,7 @@
- }
- }
-
-- tp->ext_Names = typeRealloc(char *, total, tp->ext_Names);
-+ TYPE_REALLOC(char *, total, tp->ext_Names);
- for (k = total - 1; k > j; k--)
- tp->ext_Names[k] = tp->ext_Names[k - 1];
- tp->ext_Names[j] = name;
-@@ -311,21 +312,21 @@
- case BOOLEAN:
- tp->ext_Booleans++;
- tp->num_Booleans++;
-- tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
-+ TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
- for (k = (unsigned) (tp->num_Booleans - 1); k > j; k--)
- tp->Booleans[k] = tp->Booleans[k - 1];
- break;
- case NUMBER:
- tp->ext_Numbers++;
- tp->num_Numbers++;
-- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
-+ TYPE_REALLOC(short, tp->num_Numbers, tp->Numbers);
- for (k = (unsigned) (tp->num_Numbers - 1); k > j; k--)
- tp->Numbers[k] = tp->Numbers[k - 1];
- break;
- case STRING:
- tp->ext_Strings++;
- tp->num_Strings++;
-- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
-+ TYPE_REALLOC(char *, tp->num_Strings, tp->Strings);
- for (k = (unsigned) (tp->num_Strings - 1); k > j; k--)
- tp->Strings[k] = tp->Strings[k - 1];
- break;
-@@ -417,7 +418,7 @@
- * into it, updating to's counts for booleans, etc. Fortunately we do
- * this only for the terminfo compiler (tic) and comparer (infocmp).
- */
-- ext_Names = typeMalloc(char *, (size_t)(na + nb));
-+ TYPE_MALLOC(char *, (size_t)(na + nb), ext_Names);
-
- if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers))
- adjust_cancels(to, from);
-@@ -461,7 +462,7 @@
- if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) {
- nb = (ext_Booleans + ext_Numbers + ext_Strings);
- realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings);
-- from->ext_Names = typeRealloc(char *, (size_t) nb, from->ext_Names);
-+ TYPE_REALLOC(char *, (size_t) nb, from->ext_Names);
- memcpy(from->ext_Names, ext_Names, sizeof(char *) * (size_t) nb);
- DEBUG(2, ("realigned %d extended names for '%s' (from)",
- NUM_EXT_NAMES(from), from->term_names));
-@@ -473,22 +474,25 @@
- #endif
-
- NCURSES_EXPORT(void)
--_nc_copy_termtype(TERMTYPE *dst, TERMTYPE *src)
-+_nc_copy_termtype(TERMTYPE *dst, const TERMTYPE *src)
- {
- unsigned i;
-
- *dst = *src; /* ...to copy the sizes and string-tables */
-- dst->Booleans = typeMalloc(NCURSES_SBOOL, NUM_BOOLEANS(dst));
-- dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst));
-- dst->Strings = typeMalloc(char *, NUM_STRINGS(dst));
--
-- /* FIXME: use memcpy for these and similar loops */
-- for_each_boolean(i, dst)
-- dst->Booleans[i] = src->Booleans[i];
-- for_each_number(i, dst)
-- dst->Numbers[i] = src->Numbers[i];
-- for_each_string(i, dst)
-- dst->Strings[i] = src->Strings[i];
-+
-+ TYPE_MALLOC(NCURSES_SBOOL, NUM_BOOLEANS(dst), dst->Booleans);
-+ TYPE_MALLOC(short, NUM_NUMBERS(dst), dst->Numbers);
-+ TYPE_MALLOC(char *, NUM_STRINGS(dst), dst->Strings);
-+
-+ memcpy(dst->Booleans,
-+ src->Booleans,
-+ NUM_BOOLEANS(dst) * sizeof(dst->Booleans[0]));
-+ memcpy(dst->Numbers,
-+ src->Numbers,
-+ NUM_NUMBERS(dst) * sizeof(dst->Numbers[0]));
-+ memcpy(dst->Strings,
-+ src->Strings,
-+ NUM_STRINGS(dst) * sizeof(dst->Strings[0]));
-
- /* FIXME: we probably should also copy str_table and ext_str_table,
- * but tic and infocmp are not written to exploit that (yet).
-@@ -496,7 +500,7 @@
-
- #if NCURSES_XNAMES
- if ((i = NUM_EXT_NAMES(src)) != 0) {
-- dst->ext_Names = typeMalloc(char *, i);
-+ TYPE_MALLOC(char *, i, dst->ext_Names);
- memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *));
- } else {
- dst->ext_Names = 0;
-Index: ncurses/tinfo/captoinfo.c
-Prereq: 1.58
---- ncurses-5.9/ncurses/tinfo/captoinfo.c 2010-12-04 20:08:19.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/captoinfo.c 2012-12-30 00:50:40.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -93,7 +93,7 @@
- #include <ctype.h>
- #include <tic.h>
-
--MODULE_ID("$Id: captoinfo.c,v 1.58 2010/12/04 20:08:19 tom Exp $")
-+MODULE_ID("$Id: captoinfo.c,v 1.77 2012/12/30 00:50:40 tom Exp $")
-
- #define MAX_PUSHED 16 /* max # args we can push onto the stack */
-
-@@ -114,9 +114,7 @@
- /* initialize 'my_string', 'my_length' */
- {
- if (my_string == 0)
-- my_string = typeMalloc(char, my_length = 256);
-- if (my_string == 0)
-- _nc_err_abort(MSG_NO_MEMORY);
-+ TYPE_MALLOC(char, my_length = 256, my_string);
-
- *my_string = '\0';
- return my_string;
-@@ -133,7 +131,7 @@
- _nc_err_abort(MSG_NO_MEMORY);
- d = my_string + have;
- }
-- (void) strcpy(d, s);
-+ _nc_STRCPY(d, s, my_length - have);
- return d + strlen(d);
- }
-
-@@ -240,6 +238,12 @@
- else if (parm == 2)
- parm = 1;
- }
-+
-+ while (n--) {
-+ dp = save_string(dp, "%p");
-+ dp = save_char(dp, '0' + parm);
-+ }
-+
- if (onstack == parm) {
- if (n > 1) {
- _nc_warning("string may not be optimal");
-@@ -255,11 +259,6 @@
-
- onstack = parm;
-
-- while (n--) {
-- dp = save_string(dp, "%p");
-- dp = save_char(dp, '0' + parm);
-- }
--
- if (seenn && parm < 3) {
- dp = save_string(dp, "%{96}%^");
- }
-@@ -469,73 +468,9 @@
- break;
- }
- break;
--#ifdef REVISIBILIZE
-- case '\\':
-- dp = save_char(dp, *s++);
-- dp = save_char(dp, *s++);
-- break;
-- case '\n':
-- dp = save_string(dp, "\\n");
-- s++;
-- break;
-- case '\t':
-- dp = save_string(dp, "\\t");
-- s++;
-- break;
-- case '\r':
-- dp = save_string(dp, "\\r");
-- s++;
-- break;
-- case '\200':
-- dp = save_string(dp, "\\0");
-- s++;
-- break;
-- case '\f':
-- dp = save_string(dp, "\\f");
-- s++;
-- break;
-- case '\b':
-- dp = save_string(dp, "\\b");
-- s++;
-- break;
-- case ' ':
-- dp = save_string(dp, "\\s");
-- s++;
-- break;
-- case '^':
-- dp = save_string(dp, "\\^");
-- s++;
-- break;
-- case ':':
-- dp = save_string(dp, "\\:");
-- s++;
-- break;
-- case ',':
-- dp = save_string(dp, "\\,");
-- s++;
-- break;
-- default:
-- if (*s == '\033') {
-- dp = save_string(dp, "\\E");
-- s++;
-- } else if (*s > 0 && *s < 32) {
-- dp = save_char(dp, '^');
-- dp = save_char(dp, *s + '@');
-- s++;
-- } else if (*s <= 0 || *s >= 127) {
-- dp = save_char(dp, '\\');
-- dp = save_char(dp, ((*s & 0300) >> 6) + '0');
-- dp = save_char(dp, ((*s & 0070) >> 3) + '0');
-- dp = save_char(dp, (*s & 0007) + '0');
-- s++;
-- } else
-- dp = save_char(dp, *s++);
-- break;
--#else
- default:
- dp = save_char(dp, *s++);
- break;
--#endif
- }
- }
-
-@@ -578,7 +513,7 @@
- {
- char buffer[80];
- int tst;
-- sprintf(buffer, fmt, ch1, ch2);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) fmt, ch1, ch2);
- tst = strlen(buffer) - 1;
- assert(len == tst);
- }
-@@ -597,10 +532,13 @@
- bufptr = save_char(bufptr, '\\');
- bufptr = save_char(bufptr, c1);
- } else {
-- if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */
-- (void) strcpy(temp, unctrl((chtype) c1));
-- else
-- (void) sprintf(temp, "\\%03o", c1);
-+ if (c1 == (c1 & 0x1f)) { /* iscntrl() returns T on 255 */
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "%.20s", unctrl((chtype) c1));
-+ } else {
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "\\%03o", c1);
-+ }
- bufptr = save_string(bufptr, temp);
- }
- return bufptr;
-@@ -646,13 +584,15 @@
- int in0, in1, in2;
- char ch1 = 0, ch2 = 0;
- char *bufptr = init_string();
-+ char octal[4];
- int len;
- bool syntax_error = FALSE;
-
- /* we may have to move some trailing mandatory padding up front */
- padding = str + strlen(str) - 1;
-- if (padding > str && *padding == '>' && *--padding == '/') {
-- --padding;
-+ if (padding > str && *padding == '>') {
-+ if (*--padding == '/')
-+ --padding;
- while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
- padding--;
- if (padding > str && *padding == '<' && *--padding == '$')
-@@ -663,7 +603,7 @@
- bufptr = save_char(bufptr, *padding++);
- }
-
-- for (; *str && str != trimmed; str++) {
-+ for (; *str && ((trimmed == 0) || (str < trimmed)); str++) {
- int c1, c2;
- char *cp = 0;
-
-@@ -685,8 +625,72 @@
- } else if (str[1] == ',') {
- bufptr = save_char(bufptr, *++str);
- } else {
-+ int xx1, xx2;
-+
- bufptr = save_char(bufptr, *str++);
-- bufptr = save_char(bufptr, *str);
-+ xx1 = *str;
-+ if (_nc_strict_bsd) {
-+ if (isdigit(UChar(xx1))) {
-+ int pad = 0;
-+
-+ if (!isdigit(UChar(str[1])))
-+ pad = 2;
-+ else if (str[1] && !isdigit(UChar(str[2])))
-+ pad = 1;
-+
-+ /*
-+ * Test for "\0", "\00" or "\000" and transform those
-+ * into "\200".
-+ */
-+ if (xx1 == '0'
-+ && ((pad == 2) || (str[1] == '0'))
-+ && ((pad >= 1) || (str[2] == '0'))) {
-+ xx2 = '2';
-+ } else {
-+ xx2 = '0';
-+ pad = 0; /* FIXME - optionally pad to 3 digits */
-+ }
-+ while (pad-- > 0) {
-+ bufptr = save_char(bufptr, xx2);
-+ xx2 = '0';
-+ }
-+ } else if (strchr("E\\nrtbf", xx1) == 0) {
-+ switch (xx1) {
-+ case 'e':
-+ xx1 = 'E';
-+ break;
-+ case 'l':
-+ xx1 = 'n';
-+ break;
-+ case 's':
-+ bufptr = save_char(bufptr, '0');
-+ bufptr = save_char(bufptr, '4');
-+ xx1 = '0';
-+ break;
-+ case ':':
-+ /*
-+ * Note: termcap documentation claims that ":"
-+ * must be escaped as "\072", however the
-+ * documentation is incorrect - read the code.
-+ * The replacement does not work reliably,
-+ * so the advice is not helpful.
-+ */
-+ bufptr = save_char(bufptr, '0');
-+ bufptr = save_char(bufptr, '7');
-+ xx1 = '2';
-+ break;
-+ default:
-+ /* should not happen, but handle this anyway */
-+ _nc_SPRINTF(octal, _nc_SLIMIT(sizeof(octal))
-+ "%03o", UChar(xx1));
-+ bufptr = save_char(bufptr, octal[0]);
-+ bufptr = save_char(bufptr, octal[1]);
-+ xx1 = octal[2];
-+ break;
-+ }
-+ }
-+ }
-+ bufptr = save_char(bufptr, xx1);
- }
- } else if (str[0] == '$' && str[1] == '<') { /* discard padding */
- str += 2;
-@@ -703,7 +707,8 @@
- && ((in0 == 4 && in1 == 10 && in2 == 48)
- || (in0 == 3 && in1 == 9 && in2 == 38))) {
- /* dumb-down an optimized case from xterm-256color for termcap */
-- str = strstr(str, ";m");
-+ if ((str = strstr(str, ";m")) == 0)
-+ break; /* cannot happen */
- ++str;
- if (in2 == 48) {
- bufptr = save_string(bufptr, "[48;5;%dm");
-@@ -720,13 +725,13 @@
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) {
- str = strchr(str, ';');
-- bufptr = save_tc_inequality(bufptr, c1, c2);
-+ bufptr = save_tc_inequality(bufptr, c1, ch2);
- } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) {
- str = strchr(str, ';');
-- bufptr = save_tc_inequality(bufptr, c1, c2);
-+ bufptr = save_tc_inequality(bufptr, ch1, c2);
- } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) {
- str = strchr(str, ';');
-- bufptr = save_tc_inequality(bufptr, c1, c2);
-+ bufptr = save_tc_inequality(bufptr, ch1, ch2);
- } else if ((len = bcd_expression(str)) != 0) {
- str += len;
- bufptr = save_string(bufptr, "%B");
-@@ -741,15 +746,15 @@
- bufptr = save_tc_char(bufptr, c1);
- }
- /* FIXME: this "works" for 'delta' */
-- else if (strncmp(str, "%{2}%*%-", 8) == 0) {
-+ else if (strncmp(str, "%{2}%*%-", (size_t) 8) == 0) {
- str += 7;
- bufptr = save_string(bufptr, "%D");
-- } else if (strncmp(str, "%{96}%^", 7) == 0) {
-+ } else if (strncmp(str, "%{96}%^", (size_t) 7) == 0) {
- str += 6;
- if (saw_m++ == 0) {
- bufptr = save_string(bufptr, "%n");
- }
-- } else if (strncmp(str, "%{127}%^", 8) == 0) {
-+ } else if (strncmp(str, "%{127}%^", (size_t) 8) == 0) {
- str += 7;
- if (saw_n++ == 0) {
- bufptr = save_string(bufptr, "%m");
-@@ -772,8 +777,25 @@
- case '8':
- case '9':
- bufptr = save_char(bufptr, '%');
-- while (isdigit(UChar(*str)))
-- bufptr = save_char(bufptr, *str++);
-+ ch1 = 0;
-+ ch2 = 0;
-+ while (isdigit(UChar(*str))) {
-+ ch2 = ch1;
-+ ch1 = *str++;
-+ if (_nc_strict_bsd) {
-+ if (ch1 > '3')
-+ return 0;
-+ } else {
-+ bufptr = save_char(bufptr, ch1);
-+ }
-+ }
-+ if (_nc_strict_bsd) {
-+ if (ch2 != 0 && ch2 != '0')
-+ return 0;
-+ if (ch1 < '2')
-+ ch1 = 'd';
-+ bufptr = save_char(bufptr, ch1);
-+ }
- if (strchr("doxX.", *str)) {
- if (*str != 'd') /* termcap doesn't have octal, hex */
- return 0;
-@@ -794,6 +816,8 @@
- * termcap notation.
- */
- case 's':
-+ if (_nc_strict_bsd)
-+ return 0;
- bufptr = save_string(bufptr, "%s");
- break;
-
-@@ -826,7 +850,7 @@
- * but that may not be the end of the string.
- */
- assert(str != 0);
-- if (*str == '\0')
-+ if (str == 0 || *str == '\0')
- break;
-
- } /* endwhile (*str) */
-Index: ncurses/tinfo/comp_error.c
-Prereq: 1.31
---- ncurses-5.9/ncurses/tinfo/comp_error.c 2007-04-21 23:38:32.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/comp_error.c 2012-02-22 22:34:31.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -41,7 +41,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $")
-+MODULE_ID("$Id: comp_error.c,v 1.36 2012/02/22 22:34:31 tom Exp $")
-
- NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
- NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
-@@ -59,7 +59,8 @@
- NCURSES_EXPORT(void)
- _nc_set_source(const char *const name)
- {
-- SourceName = name;
-+ FreeIfNeeded(SourceName);
-+ SourceName = strdup(name);
- }
-
- NCURSES_EXPORT(void)
-@@ -70,7 +71,7 @@
- if (TermType != 0) {
- TermType[0] = '\0';
- if (name)
-- strncat(TermType, name, MAX_NAME_SIZE);
-+ strncat(TermType, name, (size_t) MAX_NAME_SIZE);
- }
- }
-
-@@ -84,7 +85,7 @@
- }
- #endif
- if (name != 0)
-- strcpy(name, TermType != 0 ? TermType : "");
-+ _nc_STRCPY(name, TermType != 0 ? TermType : "", MAX_NAME_SIZE);
- }
-
- static NCURSES_INLINE void
-@@ -151,3 +152,12 @@
- exit(EXIT_FAILURE);
- #endif
- }
-+
-+#if NO_LEAKS
-+NCURSES_EXPORT(void)
-+_nc_comp_error_leaks(void)
-+{
-+ FreeAndNull(SourceName);
-+ FreeAndNull(TermType);
-+}
-+#endif
-Index: ncurses/tinfo/comp_expand.c
-Prereq: 1.21
---- ncurses-5.9/ncurses/tinfo/comp_expand.c 2010-01-16 17:11:23.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/comp_expand.c 2012-03-24 18:37:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
- #include <ctype.h>
- #include <tic.h>
-
--MODULE_ID("$Id: comp_expand.c,v 1.21 2010/01/16 17:11:23 tom Exp $")
-+MODULE_ID("$Id: comp_expand.c,v 1.25 2012/03/24 18:37:17 tom Exp $")
-
- static int
- trailing_spaces(const char *src)
-@@ -49,6 +49,8 @@
- #define REALCTL(s) (UChar(*(s)) < 127 && iscntrl(UChar(*(s))))
- #define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s))))
-
-+#define P_LIMIT(p) (length - (size_t)(p))
-+
- NCURSES_EXPORT(char *)
- _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
- {
-@@ -61,15 +63,15 @@
- size_t need = (2 + strlen(str)) * 4;
- int ch;
-
--#if NO_LEAKS
- if (srcp == 0) {
-+#if NO_LEAKS
- if (buffer != 0) {
- FreeAndNull(buffer);
- length = 0;
- }
-+#endif
- return 0;
- }
--#endif
- if (buffer == 0 || need > length) {
- if ((buffer = typeRealloc(char, length = need, buffer)) == 0)
- return 0;
-@@ -90,7 +92,8 @@
- && str[1] != '\\'
- && REALPRINT(str + 1)
- && str[2] == S_QUOTE) {
-- sprintf(buffer + bufp, "{%d}", str[1]);
-+ _nc_SPRINTF(buffer + bufp, _nc_SLIMIT(P_LIMIT(bufp))
-+ "{%d}", str[1]);
- bufp += (int) strlen(buffer + bufp);
- str += 2;
- } else {
-@@ -177,10 +180,12 @@
- #define UnCtl(c) ((c) + '@')
- else if (REALCTL(str) && ch != '\\'
- && (!islong || isdigit(UChar(str[1])))) {
-- (void) sprintf(&buffer[bufp], "^%c", UnCtl(ch));
-+ _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp))
-+ "^%c", UnCtl(ch));
- bufp += 2;
- } else {
-- (void) sprintf(&buffer[bufp], "\\%03o", ch);
-+ _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp))
-+ "\\%03o", ch);
- bufp += 4;
- }
-
-Index: ncurses/tinfo/comp_parse.c
-Prereq: 1.73
---- ncurses-5.9/ncurses/tinfo/comp_parse.c 2010-12-25 23:06:37.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/comp_parse.c 2012-10-27 21:48:03.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,15 +35,10 @@
- /*
- * comp_parse.c -- parser driver loop and use handling.
- *
-- * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
-- * _nc_resolve_uses2(void)
-- * _nc_free_entries(void)
-- *
- * Use this code by calling _nc_read_entry_source() on as many source
- * files as you like (either terminfo or termcap syntax). If you
- * want use-resolution, call _nc_resolve_uses2(). To free the list
- * storage, do _nc_free_entries().
-- *
- */
-
- #include <curses.priv.h>
-@@ -52,7 +47,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: comp_parse.c,v 1.73 2010/12/25 23:06:37 tom Exp $")
-+MODULE_ID("$Id: comp_parse.c,v 1.86 2012/10/27 21:48:03 tom Exp $")
-
- static void sanity_check2(TERMTYPE *, bool);
- NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
-@@ -61,6 +56,8 @@
- static void sanity_check(TERMTYPE *);
- NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
-
-+static void fixup_acsc(TERMTYPE *, int);
-+
- static void
- enqueue(ENTRY * ep)
- /* add an entry to the in-core list */
-@@ -86,16 +83,28 @@
- if (len > MAX_NAME_SIZE)
- len = MAX_NAME_SIZE;
- (void) strncpy(dst, src, len);
-- (void) strcpy(dst + len, "|");
-+ _nc_STRCPY(dst + len, "|", MAX_NAME_SIZE);
- src = dst;
- }
- return src;
- }
- #define ForceBar(dst, src) ((strchr(src, '|') == 0) ? force_bar(dst, src) : src)
-
--NCURSES_EXPORT(bool)
--_nc_entry_match(char *n1, char *n2)
--/* do any of the aliases in a pair of terminal names match? */
-+#if USE_TERMCAP && NCURSES_XNAMES
-+static char *
-+skip_index(char *name)
-+{
-+ char *bar = strchr(name, '|');
-+
-+ if (bar != 0 && (bar - name) == 2)
-+ name = bar + 1;
-+
-+ return name;
-+}
-+#endif
-+
-+static bool
-+check_collisions(char *n1, char *n2, int counter)
- {
- char *pstart, *qstart, *pend, *qend;
- char nc1[MAX_NAME_SIZE + 2];
-@@ -104,15 +113,98 @@
- n1 = ForceBar(nc1, n1);
- n2 = ForceBar(nc2, n2);
-
-- for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1)
-- for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1)
-+#if USE_TERMCAP && NCURSES_XNAMES
-+ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
-+ n1 = skip_index(n1);
-+ n2 = skip_index(n2);
-+ }
-+#endif
-+
-+ for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) {
-+ for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) {
- if ((pend - pstart == qend - qstart)
-- && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0)
-+ && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) {
-+ if (counter > 0)
-+ (void) fprintf(stderr, "Name collision '%.*s' between\n",
-+ (int) (pend - pstart), pstart);
- return (TRUE);
-+ }
-+ }
-+ }
-
- return (FALSE);
- }
-
-+static char *
-+next_name(char *name)
-+{
-+ if (*name != '\0')
-+ ++name;
-+ return name;
-+}
-+
-+static char *
-+name_ending(char *name)
-+{
-+ if (*name == '\0') {
-+ name = 0;
-+ } else {
-+ while (*name != '\0' && *name != '|')
-+ ++name;
-+ }
-+ return name;
-+}
-+
-+/*
-+ * Essentially, find the conflict reported in check_collisions() and remove
-+ * it from the second name, unless that happens to be the last alias.
-+ */
-+static bool
-+remove_collision(char *n1, char *n2)
-+{
-+ char *p1 = n1;
-+ char *p2 = n2;
-+ char *pstart, *qstart, *pend, *qend;
-+ bool removed = FALSE;
-+
-+#if USE_TERMCAP && NCURSES_XNAMES
-+ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
-+ p1 = n1 = skip_index(n1);
-+ p2 = n2 = skip_index(n2);
-+ }
-+#else
-+ (void) p1;
-+#endif
-+
-+ for (pstart = n1; (pend = name_ending(pstart)); pstart = next_name(pend)) {
-+ for (qstart = n2; (qend = name_ending(qstart)); qstart = next_name(qend)) {
-+ if ((pend - pstart == qend - qstart)
-+ && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) {
-+ if (qstart != p2 || *qend == '|') {
-+ if (*qend == '|')
-+ ++qend;
-+ while ((*qstart++ = *qend++) != '\0') ;
-+ fprintf(stderr, "...now\t%s\n", p2);
-+ } else {
-+ fprintf(stderr, "Cannot remove alias '%.*s'\n",
-+ (int) (qend - qstart), qstart);
-+ }
-+ removed = TRUE;
-+ break;
-+ }
-+ }
-+ }
-+
-+ return removed;
-+}
-+
-+/* do any of the aliases in a pair of terminal names match? */
-+NCURSES_EXPORT(bool)
-+_nc_entry_match(char *n1, char *n2)
-+{
-+ return check_collisions(n1, n2, 0);
-+}
-+
- /****************************************************************************
- *
- * Entry compiler and resolution logic
-@@ -198,19 +290,19 @@
-
- for_entry_list(rp) {
- if (qp > rp
-- && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
-- matchcount++;
-- if (matchcount == 1) {
-- (void) fprintf(stderr, "Name collision between %s",
-- _nc_first_name(qp->tterm.term_names));
-- multiples++;
-+ && check_collisions(qp->tterm.term_names,
-+ rp->tterm.term_names,
-+ matchcount + 1)) {
-+ if (!matchcount++) {
-+ (void) fprintf(stderr, "\t%s\n", rp->tterm.term_names);
-+ }
-+ (void) fprintf(stderr, "and\t%s\n", qp->tterm.term_names);
-+ if (!remove_collision(rp->tterm.term_names,
-+ qp->tterm.term_names)) {
-+ ++multiples;
- }
-- if (matchcount >= 1)
-- (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names));
- }
- }
-- if (matchcount >= 1)
-- (void) putc('\n', stderr);
- }
- if (multiples > 0)
- return (FALSE);
-@@ -256,9 +348,7 @@
- DEBUG(2, ("%s: resolving use=%s (compiled)",
- child, lookfor));
-
-- rp = typeMalloc(ENTRY, 1);
-- if (rp == 0)
-- _nc_err_abort(MSG_NO_MEMORY);
-+ TYPE_MALLOC(ENTRY, 1, rp);
- rp->tterm = thisterm;
- rp->nuses = 0;
- rp->next = lastread;
-@@ -378,7 +468,34 @@
- for_entry_list(qp) {
- _nc_curr_line = (int) qp->startline;
- _nc_set_type(_nc_first_name(qp->tterm.term_names));
-- _nc_check_termtype2(&qp->tterm, literal);
-+ /*
-+ * tic overrides this function pointer to provide more verbose
-+ * checking.
-+ */
-+ if (_nc_check_termtype2 != sanity_check2) {
-+ SCREEN *save_SP = SP;
-+ SCREEN fake_sp;
-+ TERMINAL fake_tm;
-+ TERMINAL *save_tm = cur_term;
-+
-+ /*
-+ * Setup so that tic can use ordinary terminfo interface
-+ * to obtain capability information.
-+ */
-+ memset(&fake_sp, 0, sizeof(fake_sp));
-+ memset(&fake_tm, 0, sizeof(fake_tm));
-+ fake_sp._term = &fake_tm;
-+ fake_tm.type = qp->tterm;
-+ SP = &fake_sp;
-+ set_curterm(&fake_tm);
-+
-+ _nc_check_termtype2(&qp->tterm, literal);
-+
-+ SP = save_SP;
-+ set_curterm(save_tm);
-+ } else {
-+ fixup_acsc(&qp->tterm, literal);
-+ }
- }
- DEBUG(2, ("SANITY CHECK FINISHED"));
- }
-@@ -403,6 +520,17 @@
- #define CUR tp->
-
- static void
-+fixup_acsc(TERMTYPE *tp, int literal)
-+{
-+ if (!literal) {
-+ if (acs_chars == 0
-+ && enter_alt_charset_mode != 0
-+ && exit_alt_charset_mode != 0)
-+ acs_chars = strdup(VT_ACSC);
-+ }
-+}
-+
-+static void
- sanity_check2(TERMTYPE *tp, bool literal)
- {
- if (!PRESENT(exit_attribute_mode)) {
-@@ -428,10 +556,7 @@
- * prefer to bypass it...
- */
- if (!literal) {
-- if (acs_chars == 0
-- && enter_alt_charset_mode != 0
-- && exit_alt_charset_mode != 0)
-- acs_chars = strdup(VT_ACSC);
-+ fixup_acsc(tp, literal);
- ANDMISSING(enter_alt_charset_mode, acs_chars);
- ANDMISSING(exit_alt_charset_mode, acs_chars);
- }
-Index: ncurses/tinfo/comp_scan.c
-Prereq: 1.89
---- ncurses-5.9/ncurses/tinfo/comp_scan.c 2010-12-25 23:06:37.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/comp_scan.c 2012-12-08 22:19:25.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -50,7 +50,7 @@
- #include <ctype.h>
- #include <tic.h>
-
--MODULE_ID("$Id: comp_scan.c,v 1.89 2010/12/25 23:06:37 tom Exp $")
-+MODULE_ID("$Id: comp_scan.c,v 1.101 2012/12/08 22:19:25 tom Exp $")
-
- /*
- * Maximum length of string capability we'll accept before raising an error.
-@@ -61,6 +61,7 @@
- #define iswhite(ch) (ch == ' ' || ch == '\t')
-
- NCURSES_EXPORT_VAR (int) _nc_syntax = 0; /* termcap or terminfo? */
-+NCURSES_EXPORT_VAR (int) _nc_strict_bsd = 1; /* ncurses extended termcap? */
- NCURSES_EXPORT_VAR (long) _nc_curr_file_pos = 0; /* file offset of current line */
- NCURSES_EXPORT_VAR (long) _nc_comment_start = 0; /* start of comment range before name */
- NCURSES_EXPORT_VAR (long) _nc_comment_end = 0; /* end of comment range before name */
-@@ -127,14 +128,19 @@
- * Returns the final nonblank character on the current input buffer
- */
- static int
--last_char(void)
-+last_char(int from_end)
- {
- size_t len = strlen(bufptr);
-+ int result = 0;
-+
- while (len--) {
-- if (!isspace(UChar(bufptr[len])))
-- return bufptr[len];
-+ if (!isspace(UChar(bufptr[len]))) {
-+ if (from_end < (int) len)
-+ result = bufptr[(int) len - from_end];
-+ break;
-+ }
- }
-- return 0;
-+ return result;
- }
-
- /*
-@@ -195,7 +201,8 @@
- result = typeRealloc(char, allocated, result);
- if (result == 0)
- return (EOF);
-- bufstart = result;
-+ if (bufstart)
-+ bufstart = result;
- }
- if (used == 0)
- _nc_curr_file_pos = ftell(yyin);
-@@ -212,7 +219,7 @@
- }
- } else {
- if (used != 0)
-- strcat(result, "\n");
-+ _nc_STRCAT(result, "\n", allocated);
- }
- if ((bufptr = bufstart) != 0) {
- used = strlen(bufptr);
-@@ -256,12 +263,12 @@
- }
-
- static void
--push_back(char c)
-+push_back(int c)
- /* push a character back onto the input stream */
- {
- if (bufptr == bufstart)
- _nc_syserr_abort("Can't backspace off beginning of line");
-- *--bufptr = c;
-+ *--bufptr = (char) c;
- _nc_curr_col--;
- }
-
-@@ -299,6 +306,8 @@
- *tok_ptr++ = (char) ch; \
- *tok_ptr = '\0'
-
-+static char *tok_buf;
-+
- /*
- * int
- * get_token()
-@@ -336,15 +345,14 @@
- _nc_get_token(bool silent)
- {
- static const char terminfo_punct[] = "@%&*!#";
-- static char *tok_buf;
-
-- char *after_list;
-- char *after_name;
-+ char *after_name; /* after primary name */
-+ char *after_list; /* after primary and alias list */
- char *numchk;
- char *tok_ptr;
- char *s;
- char numbuf[80];
-- int ch;
-+ int ch, c0, c1;
- int dot_flag = FALSE;
- int type;
- long number;
-@@ -372,11 +380,10 @@
-
- if (end_of_stream()) {
- yyin = 0;
-- next_char(); /* frees its allocated memory */
-+ (void) next_char(); /* frees its allocated memory */
- if (tok_buf != 0) {
- if (_nc_curr_token.tk_name == tok_buf)
- _nc_curr_token.tk_name = 0;
-- FreeAndNull(tok_buf);
- }
- return (EOF);
- }
-@@ -390,6 +397,7 @@
- }
-
- ch = eat_escaped_newline(ch);
-+ _nc_curr_token.tk_valstring = 0;
-
- #ifdef TRACE
- old_line = _nc_curr_line;
-@@ -457,7 +465,7 @@
- after_list = tok_ptr;
- if (after_name == 0)
- after_name = tok_ptr;
-- } else if (ch == ':' && last_char() != ',') {
-+ } else if (ch == ':' && last_char(0) != ',') {
- _nc_syntax = SYN_TERMCAP;
- separator = ':';
- break;
-@@ -471,12 +479,64 @@
- if (after_name == 0)
- break;
- /*
-- * If we see a comma, we assume this is terminfo unless we
-- * subsequently run into a colon. But we don't stop
-- * looking for a colon until hitting a newline. This
-- * allows commas to be embedded in description fields of
-- * either syntax.
-+ * We saw a comma, but are not entirely sure this is
-+ * terminfo format, since we can still be parsing the
-+ * description field (for either syntax).
-+ *
-+ * A properly formatted termcap line ends with either a
-+ * colon, or a backslash after a colon. It is possible
-+ * to have a backslash in the middle of a capability, but
-+ * then there would be no leading whitespace on the next
-+ * line - something we want to discourage.
- */
-+ c0 = last_char(0);
-+ c1 = last_char(1);
-+ if (c1 != ':' && c0 != '\\' && c0 != ':') {
-+ bool capability = FALSE;
-+
-+ /*
-+ * Since it is not termcap, assume the line is terminfo
-+ * format. However, the comma can be embedded in a
-+ * description field. It also can be a separator
-+ * between a description field and a capability.
-+ *
-+ * Improve the guess by checking if the next word after
-+ * the comma does not look like a capability. In that
-+ * case, extend the description past the comma.
-+ */
-+ for (s = bufptr; isspace(UChar(*s)); ++s) {
-+ ;
-+ }
-+ if (islower(UChar(*s))) {
-+ char *name = s;
-+ while (isalnum(UChar(*s))) {
-+ ++s;
-+ }
-+ if (*s == '#' || *s == '=' || *s == '@') {
-+ /*
-+ * Checking solely with syntax allows us to
-+ * support extended capabilities with string
-+ * values.
-+ */
-+ capability = TRUE;
-+ } else if (*s == ',') {
-+ c0 = *s;
-+ *s = '\0';
-+ /*
-+ * Otherwise, we can handle predefined boolean
-+ * capabilities, still aided by syntax.
-+ */
-+ if (_nc_find_entry(name,
-+ _nc_get_hash_table(FALSE))) {
-+ capability = TRUE;
-+ }
-+ *s = (char) c0;
-+ }
-+ }
-+ if (capability) {
-+ break;
-+ }
-+ }
- } else
- ch = eat_escaped_newline(ch);
-
-@@ -748,7 +808,7 @@
- if (!(is7bits(c) && isprint(c))) {
- _nc_warning("Illegal ^ character - '%s'", unctrl(UChar(c)));
- }
-- if (c == '?') {
-+ if (c == '?' && (_nc_syntax != SYN_TERMCAP)) {
- *(ptr++) = '\177';
- if (_nc_tracing)
- _nc_warning("Allow ^? as synonym for \\177");
-@@ -758,23 +818,29 @@
- *(ptr++) = (char) (c);
- }
- } else if (c == '\\') {
-+ bool strict_bsd = ((_nc_syntax == SYN_TERMCAP) && _nc_strict_bsd);
-+
- c = next_char();
- if (c == EOF)
- _nc_err_abort(MSG_NO_INPUTS);
-
-- if (c >= '0' && c <= '7') {
-+#define isoctal(c) ((c) >= '0' && (c) <= '7')
-+
-+ if (isoctal(c) || (strict_bsd && isdigit(c))) {
- number = c - '0';
- for (i = 0; i < 2; i++) {
- c = next_char();
- if (c == EOF)
- _nc_err_abort(MSG_NO_INPUTS);
-
-- if (c < '0' || c > '7') {
-+ if (!isoctal(c)) {
- if (isdigit(c)) {
-- _nc_warning("Non-octal digit `%c' in \\ sequence", c);
-- /* allow the digit; it'll do less harm */
-+ if (!strict_bsd) {
-+ _nc_warning("Non-octal digit `%c' in \\ sequence", c);
-+ /* allow the digit; it'll do less harm */
-+ }
- } else {
-- push_back((char) c);
-+ push_back(c);
- break;
- }
- }
-@@ -782,21 +848,16 @@
- number = number * 8 + c - '0';
- }
-
-- if (number == 0)
-+ number = UChar(number);
-+ if (number == 0 && !strict_bsd)
- number = 0200;
- *(ptr++) = (char) number;
- } else {
- switch (c) {
- case 'E':
-- case 'e':
- *(ptr++) = '\033';
- break;
-
-- case 'a':
-- *(ptr++) = '\007';
-- break;
--
-- case 'l':
- case 'n':
- *(ptr++) = '\n';
- break;
-@@ -809,10 +870,6 @@
- *(ptr++) = '\010';
- break;
-
-- case 's':
-- *(ptr++) = ' ';
-- break;
--
- case 'f':
- *(ptr++) = '\014';
- break;
-@@ -833,16 +890,33 @@
- *(ptr++) = ',';
- break;
-
-- case ':':
-- *(ptr++) = ':';
-- break;
--
- case '\n':
- continue;
-
- default:
-- _nc_warning("Illegal character '%s' in \\ sequence",
-- unctrl(UChar(c)));
-+ if ((_nc_syntax == SYN_TERMINFO) || !_nc_strict_bsd) {
-+ switch (c) {
-+ case 'a':
-+ c = '\007';
-+ break;
-+ case 'e':
-+ c = '\033';
-+ break;
-+ case 'l':
-+ c = '\n';
-+ break;
-+ case 's':
-+ c = ' ';
-+ break;
-+ case ':':
-+ c = ':';
-+ break;
-+ default:
-+ _nc_warning("Illegal character '%s' in \\ sequence",
-+ unctrl(UChar(c)));
-+ break;
-+ }
-+ }
- /* FALLTHRU */
- case '|':
- *(ptr++) = (char) c;
-@@ -862,7 +936,7 @@
-
- if (!ignored) {
- if (_nc_curr_col <= 1) {
-- push_back((char) c);
-+ push_back(c);
- c = '\n';
- break;
- }
-@@ -934,5 +1008,8 @@
- if (pushname != 0) {
- FreeAndNull(pushname);
- }
-+ if (tok_buf != 0) {
-+ FreeAndNull(tok_buf);
-+ }
- }
- #endif
-Index: ncurses/tinfo/db_iterator.c
-Prereq: 1.9
---- ncurses-5.9/ncurses/tinfo/db_iterator.c 2010-12-25 23:00:25.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/db_iterator.c 2012-08-25 21:55:00.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,13 +36,142 @@
-
- #include <curses.priv.h>
-
-+#include <time.h>
- #include <tic.h>
-
--MODULE_ID("$Id: db_iterator.c,v 1.9 2010/12/25 23:00:25 tom Exp $")
-+#if USE_HASHED_DB
-+#include <hashed_db.h>
-+#endif
-+
-+MODULE_ID("$Id: db_iterator.c,v 1.35 2012/08/25 21:55:00 tom Exp $")
-
- #define HaveTicDirectory _nc_globals.have_tic_directory
- #define KeepTicDirectory _nc_globals.keep_tic_directory
- #define TicDirectory _nc_globals.tic_directory
-+#define my_blob _nc_globals.dbd_blob
-+#define my_list _nc_globals.dbd_list
-+#define my_size _nc_globals.dbd_size
-+#define my_time _nc_globals.dbd_time
-+#define my_vars _nc_globals.dbd_vars
-+
-+static void
-+add_to_blob(const char *text, size_t limit)
-+{
-+ (void) limit;
-+
-+ if (*text != '\0') {
-+ char *last = my_blob + strlen(my_blob);
-+ if (last != my_blob)
-+ *last++ = NCURSES_PATHSEP;
-+ _nc_STRCPY(last, text, limit);
-+ }
-+}
-+
-+static bool
-+check_existence(const char *name, struct stat *sb)
-+{
-+ bool result = FALSE;
-+
-+ if (stat(name, sb) == 0
-+ && (S_ISDIR(sb->st_mode) || S_ISREG(sb->st_mode))) {
-+ result = TRUE;
-+ }
-+#if USE_HASHED_DB
-+ else if (strlen(name) < PATH_MAX - sizeof(DBM_SUFFIX)) {
-+ char temp[PATH_MAX];
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%s%s", name, DBM_SUFFIX);
-+ if (stat(temp, sb) == 0 && S_ISREG(sb->st_mode)) {
-+ result = TRUE;
-+ }
-+ }
-+#endif
-+ return result;
-+}
-+
-+/*
-+ * Store the latest value of an environment variable in my_vars[] so we can
-+ * detect if one changes, invalidating the cached search-list.
-+ */
-+static bool
-+update_getenv(const char *name, DBDIRS which)
-+{
-+ bool result = FALSE;
-+
-+ if (which < dbdLAST) {
-+ char *value;
-+
-+ if ((value = getenv(name)) == 0 || (value = strdup(value)) == 0) {
-+ ;
-+ } else if (my_vars[which].name == 0 || strcmp(my_vars[which].name, name)) {
-+ FreeIfNeeded(my_vars[which].value);
-+ my_vars[which].name = name;
-+ my_vars[which].value = value;
-+ result = TRUE;
-+ } else if ((my_vars[which].value != 0) ^ (value != 0)) {
-+ FreeIfNeeded(my_vars[which].value);
-+ my_vars[which].value = value;
-+ result = TRUE;
-+ } else if (value != 0 && strcmp(value, my_vars[which].value)) {
-+ FreeIfNeeded(my_vars[which].value);
-+ my_vars[which].value = value;
-+ result = TRUE;
-+ } else {
-+ free(value);
-+ }
-+ }
-+ return result;
-+}
-+
-+static char *
-+cache_getenv(const char *name, DBDIRS which)
-+{
-+ char *result = 0;
-+
-+ (void) update_getenv(name, which);
-+ if (which < dbdLAST) {
-+ result = my_vars[which].value;
-+ }
-+ return result;
-+}
-+
-+/*
-+ * The cache expires if at least a second has passed since the initial lookup,
-+ * or if one of the environment variables changed.
-+ *
-+ * Only a few applications use multiple lookups of terminal entries, seems that
-+ * aside from bulk I/O such as tic and toe, that leaves interactive programs
-+ * which should not be modifying the terminal databases in a way that would
-+ * invalidate the search-list.
-+ *
-+ * The "1-second" is to allow for user-directed changes outside the program.
-+ */
-+static bool
-+cache_expired(void)
-+{
-+ bool result = FALSE;
-+ time_t now = time((time_t *) 0);
-+
-+ if (now > my_time) {
-+ result = TRUE;
-+ } else {
-+ DBDIRS n;
-+ for (n = (DBDIRS) 0; n < dbdLAST; ++n) {
-+ if (my_vars[n].name != 0
-+ && update_getenv(my_vars[n].name, n)) {
-+ result = TRUE;
-+ break;
-+ }
-+ }
-+ }
-+ return result;
-+}
-+
-+static void
-+free_cache(void)
-+{
-+ FreeAndNull(my_blob);
-+ FreeAndNull(my_list);
-+}
-
- /*
- * Record the "official" location of the terminfo directory, according to
-@@ -51,6 +180,7 @@
- NCURSES_EXPORT(const char *)
- _nc_tic_dir(const char *path)
- {
-+ T(("_nc_tic_dir %s", NonNull(path)));
- if (!KeepTicDirectory) {
- if (path != 0) {
- TicDirectory = path;
-@@ -61,7 +191,7 @@
- return _nc_tic_dir(envp);
- }
- }
-- return TicDirectory;
-+ return TicDirectory ? TicDirectory : TERMINFO;
- }
-
- /*
-@@ -77,61 +207,16 @@
- }
-
- /*
-- * Process the list of :-separated directories, looking for the terminal type.
-- * We don't use strtok because it does not show us empty tokens.
-- */
--#define ThisDbList _nc_globals.dbi_list
--#define ThisDbSize _nc_globals.dbi_size
--
--/*
- * Cleanup.
- */
- NCURSES_EXPORT(void)
- _nc_last_db(void)
- {
-- if (ThisDbList != 0) {
-- FreeAndNull(ThisDbList);
-- }
-- ThisDbSize = 0;
--}
--
--/* The TERMINFO_DIRS value, if defined by the configure script, begins with a
-- * ":", which will be interpreted as TERMINFO.
-- */
--static const char *
--next_list_item(const char *source, int *offset)
--{
-- if (source != 0) {
-- FreeIfNeeded(ThisDbList);
-- ThisDbList = strdup(source);
-- ThisDbSize = (int) strlen(source);
-- }
--
-- if (ThisDbList != 0 && ThisDbSize && *offset < ThisDbSize) {
-- static char system_db[] = TERMINFO;
-- char *result = ThisDbList + *offset;
-- char *marker = strchr(result, NCURSES_PATHSEP);
--
-- /*
-- * Put a null on the marker if a separator was found. Set the offset
-- * to the next position after the marker so we can call this function
-- * again, using the data at the offset.
-- */
-- if (marker == 0) {
-- *offset += (int) strlen(result);
-- } else {
-- *marker++ = 0;
-- *offset = (int) (marker - ThisDbList);
-- }
-- if (*result == 0 && result != (ThisDbList + ThisDbSize))
-- result = system_db;
-- return result;
-+ if (my_blob != 0 && cache_expired()) {
-+ free_cache();
- }
-- return 0;
- }
-
--#define NEXT_DBD(var, offset) next_list_item((*offset == 0) ? var : 0, offset)
--
- /*
- * This is a simple iterator which allows the caller to step through the
- * possible locations for a terminfo directory. ncurses uses this to find
-@@ -141,84 +226,186 @@
- _nc_next_db(DBDIRS * state, int *offset)
- {
- const char *result;
-- char *envp;
--
-- while (*state < dbdLAST) {
-- DBDIRS next = (DBDIRS) ((int) (*state) + 1);
-
-+ (void) offset;
-+ if ((int) *state < my_size
-+ && my_list != 0
-+ && my_list[*state] != 0) {
-+ result = my_list[*state];
-+ (*state)++;
-+ } else {
- result = 0;
-+ }
-+ if (result != 0) {
-+ T(("_nc_next_db %d %s", *state, result));
-+ }
-+ return result;
-+}
-+
-+NCURSES_EXPORT(void)
-+_nc_first_db(DBDIRS * state, int *offset)
-+{
-+ bool cache_has_expired = FALSE;
-+ *state = dbdTIC;
-+ *offset = 0;
-+
-+ T(("_nc_first_db"));
-+
-+ /* build a blob containing all of the strings we will use for a lookup
-+ * table.
-+ */
-+ if (my_blob == 0 || (cache_has_expired = cache_expired())) {
-+ size_t blobsize = 0;
-+ const char *values[dbdLAST];
-+ struct stat *my_stat;
-+ int j, k;
-+
-+ if (cache_has_expired)
-+ free_cache();
-+
-+ for (j = 0; j < dbdLAST; ++j)
-+ values[j] = 0;
-+
-+ /*
-+ * This is the first item in the list, and is used only when tic is
-+ * writing to the database, as a performance improvement.
-+ */
-+ values[dbdTIC] = TicDirectory;
-
-- switch (*state) {
-- case dbdTIC:
-- if (HaveTicDirectory)
-- result = _nc_tic_dir(0);
-- break;
- #if USE_DATABASE
-- case dbdEnvOnce:
-- if (use_terminfo_vars()) {
-- if ((envp = getenv("TERMINFO")) != 0)
-- result = _nc_tic_dir(envp);
-- }
-- break;
-- case dbdHome:
-- if (use_terminfo_vars()) {
-- result = _nc_home_terminfo();
-- }
-- break;
-- case dbdEnvList:
-- if (use_terminfo_vars()) {
-- if ((result = NEXT_DBD(getenv("TERMINFO_DIRS"), offset)) != 0)
-- next = *state;
-- }
-- break;
-- case dbdCfgList:
- #ifdef TERMINFO_DIRS
-- if ((result = NEXT_DBD(TERMINFO_DIRS, offset)) != 0)
-- next = *state;
-+ values[dbdCfgList] = TERMINFO_DIRS;
-+#endif
-+#ifdef TERMINFO
-+ values[dbdCfgOnce] = TERMINFO;
- #endif
-- break;
-- case dbdCfgOnce:
--#ifndef TERMINFO_DIRS
-- result = TERMINFO;
- #endif
-- break;
--#endif /* USE_DATABASE */
-+
- #if USE_TERMCAP
-- case dbdEnvOnce2:
-- if (use_terminfo_vars()) {
-- if ((envp = getenv("TERMCAP")) != 0)
-- result = _nc_tic_dir(envp);
-- }
-- break;
-- case dbdEnvList2:
-- if (use_terminfo_vars()) {
-- if ((result = NEXT_DBD(getenv("TERMPATH"), offset)) != 0)
-- next = *state;
-+ values[dbdCfgList2] = TERMPATH;
-+#endif
-+
-+ if (use_terminfo_vars()) {
-+#if USE_DATABASE
-+ values[dbdEnvOnce] = cache_getenv("TERMINFO", dbdEnvOnce);
-+ values[dbdHome] = _nc_home_terminfo();
-+ (void) cache_getenv("HOME", dbdHome);
-+ values[dbdEnvList] = cache_getenv("TERMINFO_DIRS", dbdEnvList);
-+
-+#endif
-+#if USE_TERMCAP
-+ values[dbdEnvOnce2] = cache_getenv("TERMCAP", dbdEnvOnce2);
-+ /* only use $TERMCAP if it is an absolute path */
-+ if (values[dbdEnvOnce2] != 0
-+ && *values[dbdEnvOnce2] != '/') {
-+ values[dbdEnvOnce2] = 0;
- }
-- break;
-- case dbdCfgList2:
-- if ((result = NEXT_DBD(TERMPATH, offset)) != 0)
-- next = *state;
-- break;
-+ values[dbdEnvList2] = cache_getenv("TERMPATH", dbdEnvList2);
- #endif /* USE_TERMCAP */
-- case dbdLAST:
-- break;
- }
-- if (*state != next) {
-- *state = next;
-- *offset = 0;
-- _nc_last_db();
-+
-+ for (j = 0; j < dbdLAST; ++j) {
-+ if (values[j] == 0)
-+ values[j] = "";
-+ blobsize += 2 + strlen(values[j]);
- }
-- if (result != 0) {
-- return result;
-+
-+ my_blob = malloc(blobsize);
-+ if (my_blob != 0) {
-+ *my_blob = '\0';
-+ for (j = 0; j < dbdLAST; ++j) {
-+ add_to_blob(values[j], blobsize);
-+ }
-+
-+ /* Now, build an array which will be pointers to the distinct
-+ * strings in the blob.
-+ */
-+ blobsize = 2;
-+ for (j = 0; my_blob[j] != '\0'; ++j) {
-+ if (my_blob[j] == NCURSES_PATHSEP)
-+ ++blobsize;
-+ }
-+ my_list = typeCalloc(char *, blobsize);
-+ my_stat = typeCalloc(struct stat, blobsize);
-+ if (my_list != 0 && my_stat != 0) {
-+ k = 0;
-+ my_list[k++] = my_blob;
-+ for (j = 0; my_blob[j] != '\0'; ++j) {
-+ if (my_blob[j] == NCURSES_PATHSEP) {
-+ my_blob[j] = '\0';
-+ my_list[k++] = &my_blob[j + 1];
-+ }
-+ }
-+
-+ /*
-+ * Eliminate duplicates from the list.
-+ */
-+ for (j = 0; my_list[j] != 0; ++j) {
-+#ifdef TERMINFO
-+ if (*my_list[j] == '\0')
-+ my_list[j] = strdup(TERMINFO);
-+#endif
-+ for (k = 0; k < j; ++k) {
-+ if (!strcmp(my_list[j], my_list[k])) {
-+ k = j - 1;
-+ while ((my_list[j] = my_list[j + 1]) != 0) {
-+ ++j;
-+ }
-+ j = k;
-+ break;
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Eliminate non-existent databases, and those that happen to
-+ * be symlinked to another location.
-+ */
-+ for (j = 0; my_list[j] != 0; ++j) {
-+ bool found = check_existence(my_list[j], &my_stat[j]);
-+#if HAVE_LINK
-+ if (found) {
-+ for (k = 0; k < j; ++k) {
-+ if (my_stat[j].st_dev == my_stat[k].st_dev
-+ && my_stat[j].st_ino == my_stat[k].st_ino) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ }
-+#endif
-+ if (!found) {
-+ k = j;
-+ while ((my_list[k] = my_list[k + 1]) != 0) {
-+ ++k;
-+ }
-+ --j;
-+ }
-+ }
-+ my_size = j;
-+ my_time = time((time_t *) 0);
-+ } else {
-+ FreeAndNull(my_blob);
-+ }
-+ free(my_stat);
- }
- }
-- return 0;
- }
-
--NCURSES_EXPORT(void)
--_nc_first_db(DBDIRS * state, int *offset)
-+#if NO_LEAKS
-+void
-+_nc_db_iterator_leaks(void)
- {
-- *state = dbdTIC;
-- *offset = 0;
-+ DBDIRS which;
-+
-+ if (my_blob != 0)
-+ FreeAndNull(my_blob);
-+ if (my_list != 0)
-+ FreeAndNull(my_list);
-+ for (which = 0; (int) which < dbdLAST; ++which) {
-+ my_vars[which].name = 0;
-+ FreeIfNeeded(my_vars[which].value);
-+ my_vars[which].value = 0;
-+ }
- }
-+#endif
-Index: ncurses/tinfo/doalloc.c
-Prereq: 1.8
---- ncurses-5.9/ncurses/tinfo/doalloc.c 2002-08-31 21:48:11.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/doalloc.c 2012-11-03 19:27:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2000,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: doalloc.c,v 1.8 2002/08/31 21:48:11 Philippe.Blain Exp $")
-+MODULE_ID("$Id: doalloc.c,v 1.11 2012/11/03 19:27:41 tom Exp $")
-
- NCURSES_EXPORT(void *)
- _nc_doalloc(void *oldp, size_t amount)
-@@ -56,20 +56,3 @@
- }
- return newp;
- }
--
--#if !HAVE_STRDUP
--NCURSES_EXPORT(char *)
--_nc_strdup(const char *src)
--{
-- char *dst;
-- if (src != 0) {
-- dst = typeMalloc(char, strlen(src) + 1);
-- if (dst != 0) {
-- (void) strcpy(dst, src);
-- }
-- } else {
-- dst = 0;
-- }
-- return dst;
--}
--#endif
-Index: ncurses/tinfo/entries.c
-Prereq: 1.17
---- ncurses-5.9/ncurses/tinfo/entries.c 2010-01-23 17:57:43.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/entries.c 2012-05-05 20:33:44.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: entries.c,v 1.17 2010/01/23 17:57:43 tom Exp $")
-+MODULE_ID("$Id: entries.c,v 1.21 2012/05/05 20:33:44 tom Exp $")
-
- /****************************************************************************
- *
-@@ -96,6 +96,9 @@
- if (last != 0) {
- last->next = ep->next;
- }
-+ if (ep->next != 0) {
-+ ep->next->last = last;
-+ }
- if (ep == _nc_head) {
- _nc_head = ep->next;
- }
-@@ -128,19 +131,21 @@
- _nc_free_entries(_nc_head);
- _nc_get_type(0);
- _nc_first_name(0);
-+ _nc_db_iterator_leaks();
- _nc_keyname_leaks();
- #if BROKEN_LINKER || USE_REENTRANT
- _nc_names_leaks();
- _nc_codes_leaks();
- FreeIfNeeded(_nc_prescreen.real_acs_map);
- #endif
-+ _nc_comp_error_leaks();
-
- if ((s = _nc_home_terminfo()) != 0)
- free(s);
-
- #ifdef TRACE
- trace(0);
-- _nc_trace_buf(-1, 0);
-+ _nc_trace_buf(-1, (size_t) 0);
- #endif
-
- #endif /* NO_LEAKS */
-Index: ncurses/tinfo/getenv_num.c
-Prereq: 1.3
---- ncurses-5.9/ncurses/tinfo/getenv_num.c 2000-12-10 02:55:07.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/getenv_num.c 2012-07-14 21:17:19.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2000,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: getenv_num.c,v 1.3 2000/12/10 02:55:07 tom Exp $")
-+MODULE_ID("$Id: getenv_num.c,v 1.4 2012/07/14 21:17:19 tom Exp $")
-
- NCURSES_EXPORT(int)
- _nc_getenv_num(const char *name)
-@@ -54,3 +54,20 @@
-
- return (int) value;
- }
-+
-+NCURSES_EXPORT(void)
-+_nc_setenv_num(const char *name, int value)
-+{
-+ if (name != 0 && value >= 0) {
-+ char buffer[128];
-+#if HAVE_SETENV
-+ sprintf(buffer, "%d", value);
-+ setenv(name, buffer, 1);
-+#elif HAVE_PUTENV
-+ char *s;
-+ sprintf(buffer, "%s=%d", name, value);
-+ if ((s = strdup(buffer)) != 0)
-+ putenv(s);
-+#endif
-+ }
-+}
-Index: ncurses/tinfo/hashed_db.c
-Prereq: 1.14
---- ncurses-5.9/ncurses/tinfo/hashed_db.c 2008-12-13 20:59:02.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/hashed_db.c 2013-02-16 21:50:03.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,12 +36,81 @@
-
- #if USE_HASHED_DB
-
--MODULE_ID("$Id: hashed_db.c,v 1.14 2008/12/13 20:59:02 tom Exp $")
-+MODULE_ID("$Id: hashed_db.c,v 1.16 2013/02/16 21:50:03 tom Exp $")
-
- #if HASHED_DB_API >= 2
- static DBC *cursor;
- #endif
-
-+typedef struct _myconn {
-+ struct _myconn *next;
-+ DB *db;
-+ char *path;
-+ bool modify;
-+} MYCONN;
-+
-+static MYCONN *connections;
-+
-+static void
-+cleanup(void)
-+{
-+ while (connections != 0) {
-+ _nc_db_close(connections->db);
-+ }
-+}
-+
-+static DB *
-+find_connection(const char *path, bool modify)
-+{
-+ DB *result = 0;
-+ MYCONN *p;
-+
-+ for (p = connections; p != 0; p = p->next) {
-+ if (!strcmp(p->path, path) && p->modify == modify) {
-+ result = p->db;
-+ break;
-+ }
-+ }
-+
-+ return result;
-+}
-+
-+static void
-+drop_connection(DB * db)
-+{
-+ MYCONN *p, *q;
-+
-+ for (p = connections, q = 0; p != 0; q = p, p = p->next) {
-+ if (p->db == db) {
-+ if (q != 0)
-+ q->next = p->next;
-+ else
-+ connections = p->next;
-+ free(p->path);
-+ free(p);
-+ break;
-+ }
-+ }
-+}
-+
-+static void
-+make_connection(DB * db, const char *path, bool modify)
-+{
-+ MYCONN *p = typeCalloc(MYCONN, 1);
-+
-+ if (p != 0) {
-+ p->db = db;
-+ p->path = strdup(path);
-+ p->modify = modify;
-+ if (p->path != 0) {
-+ p->next = connections;
-+ connections = p;
-+ } else {
-+ free(p);
-+ }
-+ }
-+}
-+
- /*
- * Open the database.
- */
-@@ -51,50 +120,57 @@
- DB *result = 0;
- int code;
-
-+ if (connections == 0)
-+ atexit(cleanup);
-+
-+ if ((result = find_connection(path, modify)) == 0) {
-+
- #if HASHED_DB_API >= 4
-- db_create(&result, NULL, 0);
-- if ((code = result->open(result,
-- NULL,
-- path,
-- NULL,
-- DB_HASH,
-- modify ? DB_CREATE : DB_RDONLY,
-- 0644)) != 0) {
-- result = 0;
-- }
-+ db_create(&result, NULL, 0);
-+ if ((code = result->open(result,
-+ NULL,
-+ path,
-+ NULL,
-+ DB_HASH,
-+ modify ? DB_CREATE : DB_RDONLY,
-+ 0644)) != 0) {
-+ result = 0;
-+ }
- #elif HASHED_DB_API >= 3
-- db_create(&result, NULL, 0);
-- if ((code = result->open(result,
-- path,
-- NULL,
-- DB_HASH,
-- modify ? DB_CREATE : DB_RDONLY,
-- 0644)) != 0) {
-- result = 0;
-- }
-+ db_create(&result, NULL, 0);
-+ if ((code = result->open(result,
-+ path,
-+ NULL,
-+ DB_HASH,
-+ modify ? DB_CREATE : DB_RDONLY,
-+ 0644)) != 0) {
-+ result = 0;
-+ }
- #elif HASHED_DB_API >= 2
-- if ((code = db_open(path,
-- DB_HASH,
-- modify ? DB_CREATE : DB_RDONLY,
-- 0644,
-- (DB_ENV *) 0,
-- (DB_INFO *) 0,
-- &result)) != 0) {
-- result = 0;
-- }
-+ if ((code = db_open(path,
-+ DB_HASH,
-+ modify ? DB_CREATE : DB_RDONLY,
-+ 0644,
-+ (DB_ENV *) 0,
-+ (DB_INFO *) 0,
-+ &result)) != 0) {
-+ result = 0;
-+ }
- #else
-- if ((result = dbopen(path,
-- modify ? (O_CREAT | O_RDWR) : O_RDONLY,
-- 0644,
-- DB_HASH,
-- NULL)) == 0) {
-- code = errno;
-- }
-+ if ((result = dbopen(path,
-+ modify ? (O_CREAT | O_RDWR) : O_RDONLY,
-+ 0644,
-+ DB_HASH,
-+ NULL)) == 0) {
-+ code = errno;
-+ }
- #endif
-- if (result != 0) {
-- T(("opened %s", path));
-- } else {
-- T(("cannot open %s: %s", path, strerror(code)));
-+ if (result != 0) {
-+ make_connection(result, path, modify);
-+ T(("opened %s", path));
-+ } else {
-+ T(("cannot open %s: %s", path, strerror(code)));
-+ }
- }
- return result;
- }
-@@ -107,6 +183,7 @@
- {
- int result;
-
-+ drop_connection(db);
- #if HASHED_DB_API >= 2
- result = db->close(db, 0);
- #else
-Index: ncurses/tinfo/home_terminfo.c
-Prereq: 1.12
---- ncurses-5.9/ncurses/tinfo/home_terminfo.c 2010-12-25 23:43:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/home_terminfo.c 2012-10-27 21:49:14.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,7 +37,7 @@
- #include <curses.priv.h>
- #include <tic.h>
-
--MODULE_ID("$Id: home_terminfo.c,v 1.12 2010/12/25 23:43:58 tom Exp $")
-+MODULE_ID("$Id: home_terminfo.c,v 1.15 2012/10/27 21:49:14 tom Exp $")
-
- /* ncurses extension...fall back on user's private directory */
-
-@@ -54,10 +54,8 @@
- if (MyBuffer == 0) {
- if ((home = getenv("HOME")) != 0) {
- size_t want = (strlen(home) + sizeof(PRIVATE_INFO));
-- MyBuffer = typeMalloc(char, want);
-- if (MyBuffer == 0)
-- _nc_err_abort(MSG_NO_MEMORY);
-- (void) sprintf(MyBuffer, PRIVATE_INFO, home);
-+ TYPE_MALLOC(char, want, MyBuffer);
-+ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(want) PRIVATE_INFO, home);
- }
- }
- result = MyBuffer;
-Index: ncurses/tinfo/lib_acs.c
-Prereq: 1.43
---- ncurses-5.9/ncurses/tinfo/lib_acs.c 2010-12-25 23:00:45.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_acs.c 2013-01-12 17:24:42.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_acs.c,v 1.43 2010/12/25 23:00:45 tom Exp $")
-+MODULE_ID("$Id: lib_acs.c,v 1.44 2013/01/12 17:24:42 tom Exp $")
-
- #if BROKEN_LINKER || USE_REENTRANT
- #define MyBuffer _nc_prescreen.real_acs_map
-@@ -169,8 +169,7 @@
- CallDriver_2(SP_PARM, initacs, real_map, fake_map);
- #else
- if (ena_acs != NULL) {
-- TPUTS_TRACE("ena_acs");
-- putp(ena_acs);
-+ NCURSES_PUTP2("ena_acs", ena_acs);
- }
- #if NCURSES_EXT_FUNCS
- /*
-Index: ncurses/tinfo/lib_cur_term.c
-Prereq: 1.30
---- ncurses-5.9/ncurses/tinfo/lib_cur_term.c 2010-12-19 01:38:45.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_cur_term.c 2012-11-18 02:12:43.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #include <curses.priv.h>
- #include <termcap.h> /* ospeed */
-
--MODULE_ID("$Id: lib_cur_term.c,v 1.30 2010/12/19 01:38:45 tom Exp $")
-+MODULE_ID("$Id: lib_cur_term.c,v 1.31 2012/11/18 02:12:43 tom Exp $")
-
- #undef CUR
- #define CUR termp->type.
-@@ -148,8 +148,9 @@
-
- FreeIfNeeded(termp->_termname);
- #if USE_HOME_TERMINFO
-- if (_nc_globals.home_terminfo != 0)
-+ if (_nc_globals.home_terminfo != 0) {
- FreeAndNull(_nc_globals.home_terminfo);
-+ }
- #endif
- #ifdef USE_TERM_DRIVER
- if (TCB->drv)
-Index: ncurses/tinfo/lib_data.c
-Prereq: 1.61
---- ncurses-5.9/ncurses/tinfo/lib_data.c 2010-05-15 22:06:56.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_data.c 2012-08-25 18:38:43.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_data.c,v 1.61 2010/05/15 22:06:56 tom Exp $")
-+MODULE_ID("$Id: lib_data.c,v 1.65 2012/08/25 18:38:43 tom Exp $")
-
- /*
- * OS/2's native linker complains if we don't initialize public data when
-@@ -114,6 +114,7 @@
- #define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 }
-
- NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
-+ 0, /* have_sigtstp */
- 0, /* have_sigwinch */
- 0, /* cleanup_nested */
-
-@@ -125,7 +126,7 @@
-
- FALSE, /* have_tic_directory */
- FALSE, /* keep_tic_directory */
-- TERMINFO, /* tic_directory */
-+ 0, /* tic_directory */
-
- NULL, /* dbi_list */
- 0, /* dbi_size */
-@@ -142,6 +143,12 @@
- 0, /* tgetent_index */
- 0, /* tgetent_sequence */
-
-+ 0, /* dbd_blob */
-+ 0, /* dbd_list */
-+ 0, /* dbd_size */
-+ 0, /* dbd_time */
-+ { { 0, 0 } }, /* dbd_vars */
-+
- #ifndef USE_SP_WINDOWLIST
- 0, /* _nc_windowlist */
- #endif
-@@ -249,6 +256,7 @@
- NULL, /* _tputs_trace */
- #endif
- #endif
-+ FALSE, /* use_tioctl */
- };
- /* *INDENT-ON* */
-
-Index: ncurses/tinfo/lib_napms.c
-Prereq: 1.20
---- ncurses-5.9/ncurses/tinfo/lib_napms.c 2009-11-07 20:37:30.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_napms.c 2012-06-30 22:08:24.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -51,17 +51,21 @@
- #endif
- #endif
-
--MODULE_ID("$Id: lib_napms.c,v 1.20 2009/11/07 20:37:30 tom Exp $")
-+MODULE_ID("$Id: lib_napms.c,v 1.23 2012/06/30 22:08:24 tom Exp $")
-
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms)
- {
-- (void) SP_PARM;
- T((T_CALLED("napms(%d)"), ms));
-
- #ifdef USE_TERM_DRIVER
-- CallDriver_1(SP_PARM, nap, ms);
-+ if (HasTerminal(SP_PARM)) {
-+ CallDriver_1(SP_PARM, nap, ms);
-+ }
- #else /* !USE_TERM_DRIVER */
-+#if NCURSES_SP_FUNCS
-+ (void) sp;
-+#endif
- #if HAVE_NANOSLEEP
- {
- struct timespec request, remaining;
-Index: ncurses/tinfo/lib_options.c
-Prereq: 1.71
---- ncurses-5.9/ncurses/tinfo/lib_options.c 2009-10-24 21:56:15.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_options.c 2013-01-12 16:44:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -46,7 +46,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_options.c,v 1.71 2009/10/24 21:56:15 tom Exp $")
-+MODULE_ID("$Id: lib_options.c,v 1.74 2013/01/12 16:44:17 tom Exp $")
-
- NCURSES_EXPORT(int)
- idlok(WINDOW *win, bool flag)
-@@ -165,16 +165,16 @@
- #ifdef USE_TERM_DRIVER
- if (IsTermInfo(sp)) {
- if (flag) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on);
-+ NCURSES_PUTP2("meta_on", meta_on);
- } else {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off);
-+ NCURSES_PUTP2("meta_off", meta_off);
- }
- }
- #else
- if (flag) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on);
-+ NCURSES_PUTP2("meta_on", meta_on);
- } else {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off);
-+ NCURSES_PUTP2("meta_off", meta_off);
- }
- #endif
- result = OK;
-@@ -199,19 +199,16 @@
- if (!bBuiltIn) {
- switch (vis) {
- case 2:
-- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
-- "cursor_visible",
-- cursor_visible);
-+ code = NCURSES_PUTP2_FLUSH("cursor_visible",
-+ cursor_visible);
- break;
- case 1:
-- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
-- "cursor_normal",
-- cursor_normal);
-+ code = NCURSES_PUTP2_FLUSH("cursor_normal",
-+ cursor_normal);
- break;
- case 0:
-- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
-- "cursor_invisible",
-- cursor_invisible);
-+ code = NCURSES_PUTP2_FLUSH("cursor_invisible",
-+ cursor_invisible);
- break;
- }
- } else
-@@ -301,7 +298,7 @@
- NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_DCLx
- const char *name, const char *value)
- {
-- int rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value);
-+ int rc = NCURSES_PUTP2(name, value);
- if (rc != ERR) {
- _nc_flush();
- }
-@@ -324,7 +321,7 @@
- * the terminal state _before_ switching modes.
- */
- NCURSES_EXPORT(int)
--_nc_keypad(SCREEN *sp, bool flag)
-+_nc_keypad(SCREEN *sp, int flag)
- {
- int rc = ERR;
-
-@@ -354,13 +351,9 @@
- sp->_keypad_on = flag;
- #else
- if (flag) {
-- (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
-- "keypad_xmit",
-- keypad_xmit);
-+ (void) NCURSES_PUTP2_FLUSH("keypad_xmit", keypad_xmit);
- } else if (!flag && keypad_local) {
-- (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
-- "keypad_local",
-- keypad_local);
-+ (void) NCURSES_PUTP2_FLUSH("keypad_local", keypad_local);
- }
-
- if (flag && !sp->_tried) {
-Index: ncurses/tinfo/lib_print.c
-Prereq: 1.20
---- ncurses-5.9/ncurses/tinfo/lib_print.c 2010-06-05 22:18:35.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_print.c 2012-02-22 22:34:31.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_print.c,v 1.20 2010/06/05 22:18:35 tom Exp $")
-+MODULE_ID("$Id: lib_print.c,v 1.23 2012/02/22 22:34:31 tom Exp $")
-
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len)
-@@ -76,10 +76,10 @@
- return (ERR);
- }
-
-- (void) strcpy(mybuf, switchon);
-- memcpy(mybuf + onsize, data, (unsigned) len);
-+ _nc_STRCPY(mybuf, switchon, need);
-+ memcpy(mybuf + onsize, data, (size_t) len);
- if (offsize)
-- (void) strcpy(mybuf + onsize + len, prtr_off);
-+ _nc_STRCPY(mybuf + onsize + len, prtr_off, need);
-
- /*
- * We're relying on the atomicity of UNIX writes here. The
-Index: ncurses/tinfo/lib_raw.c
-Prereq: 1.19
---- ncurses-5.9/ncurses/tinfo/lib_raw.c 2010-04-24 23:49:12.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_raw.c 2012-01-21 19:21:29.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -49,11 +49,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_raw.c,v 1.19 2010/04/24 23:49:12 tom Exp $")
--
--#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
--#define _POSIX_SOURCE
--#endif
-+MODULE_ID("$Id: lib_raw.c,v 1.21 2012/01/21 19:21:29 KO.Myung-Hun Exp $")
-
- #if HAVE_SYS_TERMIO_H
- #include <sys/termio.h> /* needed for ISC */
-@@ -66,6 +62,11 @@
- #define _nc_setmode(mode) /* nothing */
- #endif
-
-+#if USE_KLIBC_KBD
-+#define INCL_KBD
-+#include <os2.h>
-+#endif
-+
- #define COOKED_INPUT (IXON|BRKINT|PARMRK)
-
- #ifdef TRACE
-@@ -100,6 +101,17 @@
- #endif
- result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
- if (result == OK) {
-+#if USE_KLIBC_KBD
-+ KBDINFO kbdinfo;
-+
-+ kbdinfo.cb = sizeof(kbdinfo);
-+ KbdGetStatus(&kbdinfo, 0);
-+
-+ kbdinfo.cb = sizeof(kbdinfo);
-+ kbdinfo.fsMask &= ~KEYBOARD_ASCII_MODE;
-+ kbdinfo.fsMask |= KEYBOARD_BINARY_MODE;
-+ KbdSetStatus(&kbdinfo, 0);
-+#endif
- SP_PARM->_raw = TRUE;
- SP_PARM->_cbreak = 1;
- termp->Nttyb = buf;
-@@ -218,6 +230,17 @@
- #endif
- result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
- if (result == OK) {
-+#if USE_KLIBC_KBD
-+ KBDINFO kbdinfo;
-+
-+ kbdinfo.cb = sizeof(kbdinfo);
-+ KbdGetStatus(&kbdinfo, 0);
-+
-+ kbdinfo.cb = sizeof(kbdinfo);
-+ kbdinfo.fsMask &= ~KEYBOARD_BINARY_MODE;
-+ kbdinfo.fsMask |= KEYBOARD_ASCII_MODE;
-+ KbdSetStatus(&kbdinfo, 0);
-+#endif
- SP_PARM->_raw = FALSE;
- SP_PARM->_cbreak = 0;
- termp->Nttyb = buf;
-Index: ncurses/tinfo/lib_setup.c
-Prereq: 1.135
---- ncurses-5.9/ncurses/tinfo/lib_setup.c 2011-02-06 01:04:21.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_setup.c 2012-12-15 19:04:54.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,21 +37,18 @@
- * Terminal setup routines common to termcap and terminfo:
- *
- * use_env(bool)
-+ * use_tioctl(bool)
- * setupterm(char *, int, int *)
- */
-
- #include <curses.priv.h>
- #include <tic.h> /* for MAX_NAME_SIZE */
-
--#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
--#define _POSIX_SOURCE
--#endif
--
- #if HAVE_LOCALE_H
- #include <locale.h>
- #endif
-
--MODULE_ID("$Id: lib_setup.c,v 1.135 2011/02/06 01:04:21 tom Exp $")
-+MODULE_ID("$Id: lib_setup.c,v 1.155 2012/12/15 19:04:54 tom Exp $")
-
- /****************************************************************************
- *
-@@ -225,6 +222,7 @@
- {
- T((T_CALLED("use_env(%p,%d)"), (void *) SP_PARM, (int) f));
- #if NCURSES_SP_FUNCS
-+ START_TRACE();
- if (IsPreScreen(SP_PARM)) {
- SP_PARM->_use_env = f;
- }
-@@ -234,14 +232,39 @@
- returnVoid;
- }
-
-+NCURSES_EXPORT(void)
-+NCURSES_SP_NAME(use_tioctl) (NCURSES_SP_DCLx bool f)
-+{
-+ T((T_CALLED("use_tioctl(%p,%d)"), (void *) SP_PARM, (int) f));
-+#if NCURSES_SP_FUNCS
-+ START_TRACE();
-+ if (IsPreScreen(SP_PARM)) {
-+ SP_PARM->_use_tioctl = f;
-+ }
-+#else
-+ _nc_prescreen.use_tioctl = f;
-+#endif
-+ returnVoid;
-+}
-+
- #if NCURSES_SP_FUNCS
- NCURSES_EXPORT(void)
- use_env(bool f)
- {
- T((T_CALLED("use_env(%d)"), (int) f));
-+ START_TRACE();
- _nc_prescreen.use_env = f;
- returnVoid;
- }
-+
-+NCURSES_EXPORT(void)
-+use_tioctl(bool f)
-+{
-+ T((T_CALLED("use_tioctl(%d)"), (int) f));
-+ START_TRACE();
-+ _nc_prescreen.use_tioctl = f;
-+ returnVoid;
-+}
- #endif
-
- NCURSES_EXPORT(void)
-@@ -281,7 +304,7 @@
- *linep = (int) lines;
- *colp = (int) columns;
-
-- if (_nc_prescreen.use_env) {
-+ if (_nc_prescreen.use_env || _nc_prescreen.use_tioctl) {
- int value;
-
- #ifdef __EMX__
-@@ -289,7 +312,9 @@
- int screendata[2];
- _scrsize(screendata);
- *colp = screendata[0];
-- *linep = screendata[1];
-+ *linep = ((sp != 0 && sp->_filtered)
-+ ? 1
-+ : screendata[1]);
- T(("EMX screen size: environment LINES = %d COLUMNS = %d",
- *linep, *colp));
- }
-@@ -315,19 +340,33 @@
- }
- #endif /* HAVE_SIZECHANGE */
-
-- /*
-- * Finally, look for environment variables.
-- *
-- * Solaris lets users override either dimension with an environment
-- * variable.
-- */
-- if ((value = _nc_getenv_num("LINES")) > 0) {
-- *linep = value;
-- T(("screen size: environment LINES = %d", *linep));
-- }
-- if ((value = _nc_getenv_num("COLUMNS")) > 0) {
-- *colp = value;
-- T(("screen size: environment COLUMNS = %d", *colp));
-+ if (_nc_prescreen.use_env) {
-+ if (_nc_prescreen.use_tioctl) {
-+ /*
-+ * If environment variables are used, update them.
-+ */
-+ if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) {
-+ _nc_setenv_num("LINES", *linep);
-+ }
-+ if (_nc_getenv_num("COLUMNS") > 0) {
-+ _nc_setenv_num("COLUMNS", *colp);
-+ }
-+ }
-+
-+ /*
-+ * Finally, look for environment variables.
-+ *
-+ * Solaris lets users override either dimension with an environment
-+ * variable.
-+ */
-+ if ((value = _nc_getenv_num("LINES")) > 0) {
-+ *linep = value;
-+ T(("screen size: environment LINES = %d", *linep));
-+ }
-+ if ((value = _nc_getenv_num("COLUMNS")) > 0) {
-+ *colp = value;
-+ T(("screen size: environment COLUMNS = %d", *colp));
-+ }
- }
-
- /* if we can't get dynamic info about the size, use static */
-@@ -399,10 +438,12 @@
- * We're doing it this way because those functions belong to the upper
- * ncurses library, while this resides in the lower terminfo library.
- */
-- if (sp != 0
-- && sp->_resize != 0) {
-- if ((new_lines != old_lines) || (new_cols != old_cols))
-+ if (sp != 0 && sp->_resize != 0) {
-+ if ((new_lines != old_lines) || (new_cols != old_cols)) {
- sp->_resize(NCURSES_SP_ARGx new_lines, new_cols);
-+ } else if (sp->_sig_winch && (sp->_ungetch != 0)) {
-+ sp->_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */
-+ }
- sp->_sig_winch = FALSE;
- }
- }
-@@ -414,22 +455,6 @@
- *
- ****************************************************************************/
-
--#define ret_error(code, fmt, arg) if (errret) {\
-- *errret = code;\
-- returnCode(ERR);\
-- } else {\
-- fprintf(stderr, fmt, arg);\
-- exit(EXIT_FAILURE);\
-- }
--
--#define ret_error0(code, msg) if (errret) {\
-- *errret = code;\
-- returnCode(ERR);\
-- } else {\
-- fprintf(stderr, msg);\
-- exit(EXIT_FAILURE);\
-- }
--
- #if USE_DATABASE || USE_TERMCAP
- /*
- * Return 1 if entry found, 0 if not found, -1 if database not accessible,
-@@ -467,7 +492,7 @@
- ** and substitute it in for the prototype given in 'command_character'.
- */
- void
--_nc_tinfo_cmdch(TERMINAL * termp, char proto)
-+_nc_tinfo_cmdch(TERMINAL * termp, int proto)
- {
- unsigned i;
- char CC;
-@@ -481,8 +506,8 @@
- if ((tmp = getenv("CC")) != 0 && strlen(tmp) == 1) {
- CC = *tmp;
- for_each_string(i, &(termp->type)) {
-- for (tmp = termp->type.Strings[i]; *tmp; tmp++) {
-- if (*tmp == proto)
-+ for (tmp = termp->type.Strings[i]; tmp && *tmp; tmp++) {
-+ if (UChar(*tmp) == proto)
- *tmp = CC;
- }
- }
-@@ -520,7 +545,9 @@
- _nc_unicode_locale(void)
- {
- int result = 0;
--#if HAVE_LANGINFO_CODESET
-+#if defined(__MINGW32__) && USE_WIDEC_SUPPORT
-+ result = 1;
-+#elif HAVE_LANGINFO_CODESET
- char *env = nl_langinfo(CODESET);
- result = !strcmp(env, "UTF-8");
- T(("_nc_unicode_locale(%s) ->%d", env, result));
-@@ -551,7 +578,7 @@
- int value;
- int result = 0;
-
-- if ((env = getenv(env_name)) != 0) {
-+ if (getenv(env_name) != 0) {
- result = _nc_getenv_num(env_name);
- } else if ((value = tigetnum("U8")) >= 0) {
- result = value; /* use extension feature */
-@@ -578,7 +605,7 @@
- NCURSES_CONST char *tname,
- int Filedes,
- int *errret,
-- bool reuse)
-+ int reuse)
- {
- #ifdef USE_TERM_DRIVER
- TERMINAL_CONTROL_BLOCK *TCB = 0;
-@@ -608,7 +635,11 @@
- if (tname == 0) {
- tname = getenv("TERM");
- if (tname == 0 || *tname == '\0') {
-+#ifdef USE_TERM_DRIVER
-+ tname = "unknown";
-+#else
- ret_error0(TGETENT_ERR, "TERM environment variable not set.\n");
-+#endif
- }
- }
-
-@@ -651,6 +682,9 @@
- && _nc_name_match(termp->type.term_names, tname, "|")) {
- T(("reusing existing terminal information and mode-settings"));
- code = OK;
-+#ifdef USE_TERM_DRIVER
-+ TCB = (TERMINAL_CONTROL_BLOCK *) termp;
-+#endif
- } else {
- #ifdef USE_TERM_DRIVER
- termp = (TERMINAL *) typeCalloc(TERMINAL_CONTROL_BLOCK, 1);
-@@ -684,7 +718,7 @@
- const TERMTYPE *fallback = _nc_fallback(tname);
-
- if (fallback) {
-- termp->type = *fallback;
-+ _nc_copy_termtype(&(termp->type), fallback);
- status = TGETENT_YES;
- }
- }
-@@ -694,11 +728,11 @@
- if (status == TGETENT_ERR) {
- ret_error0(status, "terminals database is inaccessible\n");
- } else if (status == TGETENT_NO) {
-- ret_error(status, "'%s': unknown terminal type.\n", tname);
-+ ret_error1(status, "unknown terminal type.\n", tname);
- }
- }
- #if !USE_REENTRANT
-- strncpy(ttytype, termp->type.term_names, NAMESIZE - 1);
-+ strncpy(ttytype, termp->type.term_names, (size_t) (NAMESIZE - 1));
- ttytype[NAMESIZE - 1] = '\0';
- #endif
-
-@@ -708,7 +742,7 @@
- set_curterm(termp);
-
- if (command_character)
-- _nc_tinfo_cmdch(termp, *command_character);
-+ _nc_tinfo_cmdch(termp, UChar(*command_character));
-
- /*
- * If an application calls setupterm() rather than initscr() or
-@@ -742,10 +776,22 @@
-
- #ifndef USE_TERM_DRIVER
- if (generic_type) {
-- ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
-- }
-- if (hard_copy) {
-- ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname);
-+ /*
-+ * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity
-+ * check before giving up.
-+ */
-+ if ((VALID_STRING(cursor_address)
-+ || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home)))
-+ && VALID_STRING(clear_screen)) {
-+ free(termp);
-+ ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname);
-+ } else {
-+ free(termp);
-+ ret_error1(TGETENT_NO, "I need something more specific.\n", tname);
-+ }
-+ } else if (hard_copy) {
-+ free(termp);
-+ ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname);
- }
- #endif
- returnCode(code);
-@@ -798,10 +844,10 @@
- _nc_setupterm(NCURSES_CONST char *tname,
- int Filedes,
- int *errret,
-- bool reuse)
-+ int reuse)
- {
- int res;
-- TERMINAL *termp;
-+ TERMINAL *termp = 0;
- res = TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse);
- if (ERR != res)
- NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN_PRE, termp);
-Index: ncurses/tinfo/lib_termcap.c
-Prereq: 1.73
---- ncurses-5.9/ncurses/tinfo/lib_termcap.c 2010-12-25 19:27:12.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_termcap.c 2013-01-19 18:20:05.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -48,7 +48,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_termcap.c,v 1.73 2010/12/25 19:27:12 tom Exp $")
-+MODULE_ID("$Id: lib_termcap.c,v 1.79 2013/01/19 18:20:05 tom Exp $")
-
- NCURSES_EXPORT_VAR(char *) UP = 0;
- NCURSES_EXPORT_VAR(char *) BC = 0;
-@@ -63,6 +63,15 @@
- #define LAST_USE MyCache[CacheInx].last_used
- #define LAST_SEQ MyCache[CacheInx].sequence
-
-+/*
-+ * Termcap names are matched only using the first two bytes.
-+ * Ignore any extended names longer than two bytes, to avoid problems
-+ * with legacy code which passes in parameters whose use is long forgotten.
-+ */
-+#define ValidCap(cap) (((cap)[0] != '\0') && ((cap)[1] != '\0'))
-+#define SameCap(a,b) (((a)[0] == (b)[0]) && ((a)[1] == (b)[1]))
-+#define ValidExt(ext) (ValidCap(ext) && (ext)[2] == '\0')
-+
- /***************************************************************************
- *
- * tgetent(bufp, term)
-@@ -97,7 +106,7 @@
- #ifdef USE_TERM_DRIVER
- if (termp == 0 ||
- !((TERMINAL_CONTROL_BLOCK *) termp)->drv->isTerminfo)
-- return (rc);
-+ returnCode(rc);
- #endif
-
- /*
-@@ -202,11 +211,13 @@
- static bool
- same_tcname(const char *a, const char *b)
- {
-- fprintf(stderr, "compare(%s,%s)\n", a, b);
-- return !strncmp(a, b, 2);
-+ bool code = SameCap(a, b);
-+ fprintf(stderr, "compare(%s,%s) %s\n", a, b, code ? "same" : "diff");
-+ return code;
- }
-+
- #else
--#define same_tcname(a,b) !strncmp(a,b,2)
-+#define same_tcname(a,b) SameCap(a,b)
- #endif
-
- /***************************************************************************
-@@ -225,7 +236,7 @@
- int i, j;
-
- T((T_CALLED("tgetflag(%p, %s)"), (void *) SP_PARM, id));
-- if (HasTInfoTerminal(SP_PARM)) {
-+ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
- TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
- struct name_table_entry const *entry_ptr;
-
-@@ -238,7 +249,7 @@
- j = -1;
- for_each_ext_boolean(i, tp) {
- const char *capname = ExtBoolname(tp, i, boolcodes);
-- if (same_tcname(id, capname)) {
-+ if (same_tcname(id, capname) && ValidExt(capname)) {
- j = i;
- break;
- }
-@@ -277,7 +288,7 @@
- int i, j;
-
- T((T_CALLED("tgetnum(%p, %s)"), (void *) SP_PARM, id));
-- if (HasTInfoTerminal(SP_PARM)) {
-+ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
- TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
- struct name_table_entry const *entry_ptr;
-
-@@ -290,7 +301,7 @@
- j = -1;
- for_each_ext_number(i, tp) {
- const char *capname = ExtNumname(tp, i, numcodes);
-- if (same_tcname(id, capname)) {
-+ if (same_tcname(id, capname) && ValidExt(capname)) {
- j = i;
- break;
- }
-@@ -329,7 +340,7 @@
- int i, j;
-
- T((T_CALLED("tgetstr(%s,%p)"), id, (void *) area));
-- if (HasTInfoTerminal(SP_PARM)) {
-+ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
- TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
- struct name_table_entry const *entry_ptr;
-
-@@ -342,7 +353,7 @@
- j = -1;
- for_each_ext_string(i, tp) {
- const char *capname = ExtStrname(tp, i, strcodes);
-- if (same_tcname(id, capname)) {
-+ if (same_tcname(id, capname) && ValidExt(capname)) {
- j = i;
- break;
- }
-@@ -351,7 +362,7 @@
- #endif
- if (j >= 0) {
- result = tp->Strings[j];
-- TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result)));
-+ TR(TRACE_DATABASE, ("found match %d: %s", j, _nc_visbuf(result)));
- /* setupterm forces canceled strings to null */
- if (VALID_STRING(result)) {
- if (result == exit_attribute_mode
-@@ -361,7 +372,7 @@
- }
- if (area != 0
- && *area != 0) {
-- (void) strcpy(*area, result);
-+ _nc_STRCPY(*area, result, 1024);
- result = *area;
- *area += strlen(*area) + 1;
- }
-Index: ncurses/tinfo/lib_tgoto.c
-Prereq: 1.13
---- ncurses-5.9/ncurses/tinfo/lib_tgoto.c 2008-08-16 19:29:32.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_tgoto.c 2012-02-24 02:08:08.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2000-2006,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 2000-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
- #include <ctype.h>
- #include <termcap.h>
-
--MODULE_ID("$Id: lib_tgoto.c,v 1.13 2008/08/16 19:29:32 tom Exp $")
-+MODULE_ID("$Id: lib_tgoto.c,v 1.16 2012/02/24 02:08:08 tom Exp $")
-
- #if !PURE_TERMINFO
- static bool
-@@ -159,7 +159,8 @@
- break;
- }
- if (fmt != 0) {
-- sprintf(result + used, fmt, *value++);
-+ _nc_SPRINTF(result + used, _nc_SLIMIT(length - used)
-+ fmt, *value++);
- used += strlen(result + used);
- fmt = 0;
- }
-@@ -174,7 +175,7 @@
- }
- if (result != 0) {
- if (need_BC) {
-- strcpy(result + used, BC);
-+ _nc_STRCPY(result + used, BC, length - used);
- used += strlen(BC);
- }
- result[used] = '\0';
-Index: ncurses/tinfo/lib_tparm.c
-Prereq: 1.82
---- ncurses-5.9/ncurses/tinfo/lib_tparm.c 2011-01-15 22:19:12.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_tparm.c 2013-01-26 17:07:05.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
- #include <ctype.h>
- #include <tic.h>
-
--MODULE_ID("$Id: lib_tparm.c,v 1.82 2011/01/15 22:19:12 tom Exp $")
-+MODULE_ID("$Id: lib_tparm.c,v 1.88 2013/01/26 17:07:05 tom Exp $")
-
- /*
- * char *
-@@ -128,9 +128,7 @@
- need += TPS(out_used);
- if (need > TPS(out_size)) {
- TPS(out_size) = need * 2;
-- TPS(out_buff) = typeRealloc(char, TPS(out_size), TPS(out_buff));
-- if (TPS(out_buff) == 0)
-- _nc_err_abort(MSG_NO_MEMORY);
-+ TYPE_REALLOC(char, TPS(out_size), TPS(out_buff));
- }
- }
-
-@@ -143,7 +141,9 @@
-
- get_space(s_len + 1);
-
-- (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, s);
-+ _nc_SPRINTF(TPS(out_buff) + TPS(out_used),
-+ _nc_SLIMIT(TPS(out_size) - TPS(out_used))
-+ fmt, s);
- TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
- }
-
-@@ -153,9 +153,11 @@
- if (len < 30)
- len = 30; /* actually log10(MAX_INT)+1 */
-
-- get_space((unsigned) len + 1);
-+ get_space((size_t) len + 1);
-
-- (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, number);
-+ _nc_SPRINTF(TPS(out_buff) + TPS(out_used),
-+ _nc_SLIMIT(TPS(out_size) - TPS(out_used))
-+ fmt, number);
- TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
- }
-
-@@ -164,7 +166,7 @@
- {
- if (c == 0)
- c = 0200;
-- get_space(1);
-+ get_space((size_t) 1);
- TPS(out_buff)[TPS(out_used)++] = (char) c;
- }
-
-@@ -450,7 +452,7 @@
- }
-
- static NCURSES_INLINE char *
--tparam_internal(bool use_TPARM_ARG, const char *string, va_list ap)
-+tparam_internal(int use_TPARM_ARG, const char *string, va_list ap)
- {
- char *p_is_s[NUM_PARM];
- TPARM_ARG param[NUM_PARM];
-@@ -522,7 +524,7 @@
- }
- #ifdef TRACE
- if (USE_TRACEF(TRACE_CALLS)) {
-- for (i = 0; i < popcount; i++) {
-+ for (i = 0; i < num_args; i++) {
- if (p_is_s[i] != 0)
- save_text(", %s", _nc_visbuf(p_is_s[i]), 0);
- else
-@@ -559,7 +561,7 @@
- break;
-
- case 'l':
-- save_number("%d", (int) strlen(spop()), 0);
-+ npush((int) strlen(spop()));
- break;
-
- case 's':
-@@ -757,7 +759,7 @@
- cp++;
- } /* endwhile (*cp) */
-
-- get_space(1);
-+ get_space((size_t) 1);
- TPS(out_buff)[TPS(out_used)] = '\0';
-
- T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff))));
-Index: ncurses/tinfo/lib_tputs.c
-Prereq: 1.81
---- ncurses-5.9/ncurses/tinfo/lib_tputs.c 2010-12-20 00:42:50.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_tputs.c 2013-01-12 20:57:32.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -51,7 +51,7 @@
- #include <termcap.h> /* ospeed */
- #include <tic.h>
-
--MODULE_ID("$Id: lib_tputs.c,v 1.81 2010/12/20 00:42:50 tom Exp $")
-+MODULE_ID("$Id: lib_tputs.c,v 1.93 2013/01/12 20:57:32 tom Exp $")
-
- NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
- NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
-@@ -119,7 +119,17 @@
- NCURSES_EXPORT(void)
- NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0)
- {
-- (void) fflush(NC_OUTPUT(SP_PARM));
-+ if (SP_PARM != 0 && SP_PARM->_ofd >= 0) {
-+ if (SP_PARM->out_inuse) {
-+ size_t amount = SP->out_inuse;
-+ /*
-+ * Help a little, if the write is interrupted, by first resetting
-+ * our amount.
-+ */
-+ SP->out_inuse = 0;
-+ IGNORE_RC(write(SP_PARM->_ofd, SP_PARM->out_buffer, amount));
-+ }
-+ }
- }
-
- #if NCURSES_SP_FUNCS
-@@ -138,17 +148,23 @@
- COUNT_OUTCHARS(1);
-
- if (HasTInfoTerminal(SP_PARM)
-- && SP_PARM != 0
-- && SP_PARM->_cleanup) {
-- char tmp = (char) ch;
-- /*
-- * POSIX says write() is safe in a signal handler, but the
-- * buffered I/O is not.
-- */
-- if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, 1) == -1)
-- rc = ERR;
-+ && SP_PARM != 0) {
-+ if (SP_PARM->out_buffer != 0) {
-+ if (SP_PARM->out_inuse + 1 >= SP_PARM->out_limit)
-+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
-+ SP_PARM->out_buffer[SP_PARM->out_inuse++] = (char) ch;
-+ } else {
-+ char tmp = (char) ch;
-+ /*
-+ * POSIX says write() is safe in a signal handler, but the
-+ * buffered I/O is not.
-+ */
-+ if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, (size_t) 1) == -1)
-+ rc = ERR;
-+ }
- } else {
-- if (putc(ch, NC_OUTPUT(SP_PARM)) == EOF)
-+ char tmp = (char) ch;
-+ if (write(fileno(stdout), &tmp, (size_t) 1) == -1)
- rc = ERR;
- }
- return rc;
-@@ -162,13 +178,48 @@
- }
- #endif
-
-+/*
-+ * This is used for the putp special case.
-+ */
-+NCURSES_EXPORT(int)
-+NCURSES_SP_NAME(_nc_putchar) (NCURSES_SP_DCLx int ch)
-+{
-+ (void) SP_PARM;
-+ return putchar(ch);
-+}
-+
-+#if NCURSES_SP_FUNCS
-+NCURSES_EXPORT(int)
-+_nc_putchar(int ch)
-+{
-+ return putchar(ch);
-+}
-+#endif
-+
-+/*
-+ * putp is special - per documentation it calls tputs with putchar as the
-+ * parameter for outputting characters. This means that it uses stdio, which
-+ * is not signal-safe. Applications call this entrypoint; we do not call it
-+ * from within the library.
-+ */
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(putp) (NCURSES_SP_DCLx const char *string)
- {
- return NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
-- string, 1, NCURSES_SP_NAME(_nc_outch));
-+ string, 1, NCURSES_SP_NAME(_nc_putchar));
- }
-
-+#if NCURSES_SP_FUNCS
-+NCURSES_EXPORT(int)
-+putp(const char *string)
-+{
-+ return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string);
-+}
-+#endif
-+
-+/*
-+ * Use these entrypoints rather than "putp" within the library.
-+ */
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_DCLx
- const char *name GCC_UNUSED,
-@@ -178,19 +229,14 @@
-
- if (string != 0) {
- TPUTS_TRACE(name);
-- rc = NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx string);
-+ rc = NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
-+ string, 1, NCURSES_SP_NAME(_nc_outch));
- }
- return rc;
- }
-
- #if NCURSES_SP_FUNCS
- NCURSES_EXPORT(int)
--putp(const char *string)
--{
-- return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string);
--}
--
--NCURSES_EXPORT(int)
- _nc_putp(const char *name, const char *string)
- {
- return NCURSES_SP_NAME(_nc_putp) (CURRENT_SCREEN, name, string);
-@@ -216,9 +262,9 @@
-
- if (USE_TRACEF(TRACE_TPUTS)) {
- if (outc == NCURSES_SP_NAME(_nc_outch))
-- (void) strcpy(addrbuf, "_nc_outch");
-+ _nc_STRCPY(addrbuf, "_nc_outch", sizeof(addrbuf));
- else
-- (void) sprintf(addrbuf, "%p", outc);
-+ _nc_SPRINTF(addrbuf, _nc_SLIMIT(sizeof(addrbuf)) "%p", outc);
- if (_nc_tputs_trace) {
- _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace,
- _nc_visbuf(string), affcnt, addrbuf);
-Index: ncurses/tinfo/lib_ttyflags.c
-Prereq: 1.27
---- ncurses-5.9/ncurses/tinfo/lib_ttyflags.c 2010-12-25 23:43:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/lib_ttyflags.c 2012-01-21 19:21:29.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -41,7 +41,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_ttyflags.c,v 1.27 2010/12/25 23:43:58 tom Exp $")
-+MODULE_ID("$Id: lib_ttyflags.c,v 1.28 2012/01/21 19:21:29 KO.Myung-Hun Exp $")
-
- NCURSES_EXPORT(int)
- NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf)
-@@ -105,7 +105,11 @@
- result = CallDriver_2(SP_PARM, sgmode, TRUE, buf);
- #else
- for (;;) {
-- if (SET_TTY(termp->Filedes, buf) != 0) {
-+ if ((SET_TTY(termp->Filedes, buf) != 0)
-+#if USE_KLIBC_KBD
-+ && !isatty(termp->Filedes)
-+#endif
-+ ) {
- if (errno == EINTR)
- continue;
- if ((errno == ENOTTY) && (SP_PARM != 0))
-Index: ncurses/tinfo/make_hash.c
-Prereq: 1.3
---- ncurses-5.9/ncurses/tinfo/make_hash.c 2010-05-22 18:02:50.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/make_hash.c 2013-02-16 21:27:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -44,7 +44,7 @@
-
- #include <ctype.h>
-
--MODULE_ID("$Id: make_hash.c,v 1.3 2010/05/22 18:02:50 tom Exp $")
-+MODULE_ID("$Id: make_hash.c,v 1.12 2013/02/16 21:27:50 tom Exp $")
-
- /*
- * _nc_make_hash_table()
-@@ -59,6 +59,23 @@
- #define MODULE_ID(id) /*nothing */
- #include <tinfo/doalloc.c>
-
-+static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ exit(EXIT_FAILURE);
-+}
-+
-+static char *
-+strmalloc(char *s)
-+{
-+ char *result = malloc(strlen(s) + 1);
-+ if (result == 0)
-+ failed("strmalloc");
-+ strcpy(result, s);
-+ return result;
-+}
-+
- /*
- * int hash_function(string)
- *
-@@ -119,6 +136,18 @@
-
- #define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */
-
-+static int
-+count_columns(char **list)
-+{
-+ int result = 0;
-+ if (list != 0) {
-+ while (*list++) {
-+ ++result;
-+ }
-+ }
-+ return result;
-+}
-+
- static char **
- parse_columns(char *buffer)
- {
-@@ -126,7 +155,7 @@
-
- int col = 0;
-
-- if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0)
-+ if (list == 0 && (list = typeCalloc(char *, (MAX_COLUMNS + 1))) == 0)
- return (0);
-
- if (*buffer != '#') {
-@@ -201,8 +230,15 @@
- list = parse_columns(buffer);
- if (list == 0) /* blank or comment */
- continue;
-+ if (column > count_columns(list)) {
-+ fprintf(stderr, "expected %d columns, have %d:\n%s\n",
-+ column,
-+ count_columns(list),
-+ buffer);
-+ exit(EXIT_FAILURE);
-+ }
- name_table[n].nte_link = -1; /* end-of-hash */
-- name_table[n].nte_name = strdup(list[column]);
-+ name_table[n].nte_name = strmalloc(list[column]);
- if (!strcmp(list[2], "bool")) {
- name_table[n].nte_type = BOOLEAN;
- name_table[n].nte_index = BoolCount++;
-@@ -256,13 +292,12 @@
- printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name);
- } else {
-
-- printf("static struct name_table_entry %s _nc_%s_table[] =\n",
-- bigstring ? "" : "const",
-+ printf("static struct name_table_entry const _nc_%s_table[] =\n",
- root_name);
- printf("{\n");
- for (n = 0; n < CAPTABSIZE; n++) {
-- sprintf(buffer, "\"%s\"",
-- name_table[n].nte_name);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "\"%s\"",
-+ name_table[n].nte_name);
- printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
- buffer,
- typenames[name_table[n].nte_type],
-Index: ncurses/tinfo/make_keys.c
-Prereq: 1.19
---- ncurses-5.9/ncurses/tinfo/make_keys.c 2010-06-05 22:08:00.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/make_keys.c 2011-10-22 16:34:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #define USE_TERMLIB 1
- #include <build.priv.h>
-
--MODULE_ID("$Id: make_keys.c,v 1.19 2010/06/05 22:08:00 tom Exp $")
-+MODULE_ID("$Id: make_keys.c,v 1.20 2011/10/22 16:34:50 tom Exp $")
-
- #include <names.c>
-
-@@ -76,7 +76,7 @@
- unsigned maxlen = 16;
- int scanned;
-
-- while (fgets(buffer, sizeof(buffer), ifp) != 0) {
-+ while (fgets(buffer, (int) sizeof(buffer), ifp) != 0) {
- if (*buffer == '#')
- continue;
-
-Index: ncurses/tinfo/name_match.c
-Prereq: 1.18
---- ncurses-5.9/ncurses/tinfo/name_match.c 2008-11-16 00:19:59.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/name_match.c 2012-11-18 02:10:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1999-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,25 +33,38 @@
- #include <curses.priv.h>
- #include <tic.h>
-
--MODULE_ID("$Id: name_match.c,v 1.18 2008/11/16 00:19:59 juergen Exp $")
-+MODULE_ID("$Id: name_match.c,v 1.22 2012/11/18 02:10:17 tom Exp $")
-
--/*
-- * _nc_first_name(char *names)
-- *
-- * Extract the primary name from a compiled entry.
-- */
- #define FirstName _nc_globals.first_name
-
-+#if USE_TERMCAP && NCURSES_XNAMES
-+static const char *
-+skip_index(const char *name)
-+{
-+ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
-+ const char *bar = strchr(name, '|');
-+ if (bar != 0 && (bar - name) == 2)
-+ name = bar + 1;
-+ }
-+ return name;
-+}
-+#endif
-+
-+/*
-+ * Get the primary name from the given name list. For terminfo, this is the
-+ * first name. For termcap, this may be the second name, if the first one
-+ * happens to be two characters.
-+ */
- NCURSES_EXPORT(char *)
- _nc_first_name(const char *const sp)
--/* get the first name from the given name list */
- {
- unsigned n;
-
- #if NO_LEAKS
- if (sp == 0) {
-- if (FirstName != 0)
-+ if (FirstName != 0) {
- FreeAndNull(FirstName);
-+ }
- } else
- #endif
- {
-@@ -59,8 +72,12 @@
- FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
-
- if (FirstName != 0) {
-+ const char *src = sp;
-+#if USE_TERMCAP && NCURSES_XNAMES
-+ src = skip_index(sp);
-+#endif
- for (n = 0; n < MAX_NAME_SIZE; n++) {
-- if ((FirstName[n] = sp[n]) == '\0'
-+ if ((FirstName[n] = src[n]) == '\0'
- || (FirstName[n] == '|'))
- break;
- }
-@@ -71,11 +88,8 @@
- }
-
- /*
-- * int _nc_name_match(namelist, name, delim)
-- *
-- * Is the given name matched in namelist?
-+ * Is the given name matched in namelist?
- */
--
- NCURSES_EXPORT(int)
- _nc_name_match(const char *const namelst, const char *const name, const char *const delim)
- {
-Index: ncurses/tinfo/obsolete.c
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/obsolete.c 2013-01-26 22:07:51.000000000 +0000
-@@ -0,0 +1,102 @@
-+/****************************************************************************
-+ * Copyright (c) 2013 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+/****************************************************************************
-+ * Author: Thomas E. Dickey 2013 *
-+ ****************************************************************************/
-+
-+/*
-+** Support for obsolete features.
-+*/
-+
-+#include <curses.priv.h>
-+
-+MODULE_ID("$Id: obsolete.c,v 1.1 2013/01/26 22:07:51 tom Exp $")
-+
-+/*
-+ * Obsolete entrypoint retained for binary compatbility.
-+ */
-+NCURSES_EXPORT(void)
-+NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_DCLx FILE *ofp, int buffered)
-+{
-+#if NCURSES_SP_FUNCS
-+ (void) SP_PARM;
-+#endif
-+ (void) ofp;
-+ (void) buffered;
-+}
-+
-+#if NCURSES_SP_FUNCS
-+NCURSES_EXPORT(void)
-+_nc_set_buffer(FILE *ofp, int buffered)
-+{
-+ NCURSES_SP_NAME(_nc_set_buffer) (CURRENT_SCREEN, ofp, buffered);
-+}
-+#endif
-+
-+#if !HAVE_STRDUP
-+NCURSES_EXPORT(char *)
-+_nc_strdup(const char *s)
-+{
-+ char *result = 0;
-+ if (s != 0) {
-+ size_t need = strlen(s);
-+ result = malloc(need + 1);
-+ if (result != 0) {
-+ strcpy(result, s);
-+ }
-+ }
-+ return result;
-+}
-+#endif
-+
-+#if USE_MY_MEMMOVE
-+#define DST ((char *)s1)
-+#define SRC ((const char *)s2)
-+NCURSES_EXPORT(void *)
-+_nc_memmove(void *s1, const void *s2, size_t n)
-+{
-+ if (n != 0) {
-+ if ((DST + n > SRC) && (SRC + n > DST)) {
-+ static char *bfr;
-+ static size_t length;
-+ register size_t j;
-+ if (length < n) {
-+ length = (n * 3) / 2;
-+ bfr = typeRealloc(char, length, bfr);
-+ }
-+ for (j = 0; j < n; j++)
-+ bfr[j] = SRC[j];
-+ s2 = bfr;
-+ }
-+ while (n-- != 0)
-+ DST[n] = SRC[n];
-+ }
-+ return s1;
-+}
-+#endif /* USE_MY_MEMMOVE */
-Index: ncurses/tinfo/parse_entry.c
-Prereq: 1.75
---- ncurses-5.9/ncurses/tinfo/parse_entry.c 2010-05-01 19:35:09.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/parse_entry.c 2012-10-27 21:43:45.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -47,7 +47,7 @@
- #include <ctype.h>
- #include <tic.h>
-
--MODULE_ID("$Id: parse_entry.c,v 1.75 2010/05/01 19:35:09 tom Exp $")
-+MODULE_ID("$Id: parse_entry.c,v 1.79 2012/10/27 21:43:45 tom Exp $")
-
- #ifdef LINT
- static short const parametrized[] =
-@@ -145,27 +145,27 @@
- case BOOLEAN:
- tp->ext_Booleans++;
- tp->num_Booleans++;
-- tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
-+ TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
- for_each_value(tp->num_Booleans)
- tp->Booleans[last] = tp->Booleans[last - 1];
- break;
- case NUMBER:
- tp->ext_Numbers++;
- tp->num_Numbers++;
-- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
-+ TYPE_REALLOC(short, tp->num_Numbers, tp->Numbers);
- for_each_value(tp->num_Numbers)
- tp->Numbers[last] = tp->Numbers[last - 1];
- break;
- case STRING:
- tp->ext_Strings++;
- tp->num_Strings++;
-- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
-+ TYPE_REALLOC(char *, tp->num_Strings, tp->Strings);
- for_each_value(tp->num_Strings)
- tp->Strings[last] = tp->Strings[last - 1];
- break;
- }
- actual = NUM_EXT_NAMES(tp);
-- tp->ext_Names = typeRealloc(char *, actual, tp->ext_Names);
-+ TYPE_REALLOC(char *, actual, tp->ext_Names);
- while (--actual > offset)
- tp->ext_Names[actual] = tp->ext_Names[actual - 1];
- tp->ext_Names[offset] = _nc_save_str(name);
-@@ -203,6 +203,8 @@
- { bad_tc_usage = TRUE; \
- _nc_warning("Legacy termcap allows only a trailing tc= clause"); }
-
-+#define MAX_NUMBER 0x7fff /* positive shorts only */
-+
- NCURSES_EXPORT(int)
- _nc_parse_entry(struct entry *entryp, int literal, bool silent)
- {
-@@ -444,8 +446,12 @@
- break;
-
- case NUMBER:
-- entryp->tterm.Numbers[entry_ptr->nte_index] =
-- (short) _nc_curr_token.tk_valnumber;
-+ if (_nc_curr_token.tk_valnumber > MAX_NUMBER) {
-+ entryp->tterm.Numbers[entry_ptr->nte_index] = MAX_NUMBER;
-+ } else {
-+ entryp->tterm.Numbers[entry_ptr->nte_index] =
-+ (short) _nc_curr_token.tk_valnumber;
-+ }
- break;
-
- case STRING:
-@@ -654,14 +660,16 @@
-
- if (WANTED(carriage_return)) {
- if (carriage_return_delay > 0) {
-- sprintf(buf, "%s$<%d>", C_CR, carriage_return_delay);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%s$<%d>", C_CR, carriage_return_delay);
- carriage_return = _nc_save_str(buf);
- } else
- carriage_return = _nc_save_str(C_CR);
- }
- if (WANTED(cursor_left)) {
- if (backspace_delay > 0) {
-- sprintf(buf, "%s$<%d>", C_BS, backspace_delay);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%s$<%d>", C_BS, backspace_delay);
- cursor_left = _nc_save_str(buf);
- } else if (backspaces_with_bs == 1)
- cursor_left = _nc_save_str(C_BS);
-@@ -674,7 +682,8 @@
- cursor_down = linefeed_if_not_lf;
- else if (linefeed_is_newline != 1) {
- if (new_line_delay > 0) {
-- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%s$<%d>", C_LF, new_line_delay);
- cursor_down = _nc_save_str(buf);
- } else
- cursor_down = _nc_save_str(C_LF);
-@@ -685,7 +694,8 @@
- cursor_down = linefeed_if_not_lf;
- else if (linefeed_is_newline != 1) {
- if (new_line_delay > 0) {
-- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%s$<%d>", C_LF, new_line_delay);
- scroll_forward = _nc_save_str(buf);
- } else
- scroll_forward = _nc_save_str(C_LF);
-@@ -694,7 +704,8 @@
- if (WANTED(newline)) {
- if (linefeed_is_newline == 1) {
- if (new_line_delay > 0) {
-- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%s$<%d>", C_LF, new_line_delay);
- newline = _nc_save_str(buf);
- } else
- newline = _nc_save_str(C_LF);
-@@ -736,7 +747,8 @@
- */
- if (WANTED(tab)) {
- if (horizontal_tab_delay > 0) {
-- sprintf(buf, "%s$<%d>", C_HT, horizontal_tab_delay);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
-+ "%s$<%d>", C_HT, horizontal_tab_delay);
- tab = _nc_save_str(buf);
- } else
- tab = _nc_save_str(C_HT);
-Index: ncurses/tinfo/read_entry.c
-Prereq: 1.108
---- ncurses-5.9/ncurses/tinfo/read_entry.c 2011-02-26 15:36:06.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/read_entry.c 2013-05-04 22:53:42.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -41,7 +41,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: read_entry.c,v 1.108 2011/02/26 15:36:06 tom Exp $")
-+MODULE_ID("$Id: read_entry.c,v 1.122 2013/05/04 22:53:42 tom Exp $")
-
- #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
-
-@@ -99,7 +99,7 @@
- if (have > 0) {
- if ((int) want > have)
- want = (unsigned) have;
-- memcpy(dst, src + *offset, want);
-+ memcpy(dst, src + *offset, (size_t) want);
- *offset += (int) want;
- } else {
- want = 0;
-@@ -107,22 +107,24 @@
- return (int) want;
- }
-
--#define Read(buf, count) fake_read(buffer, &offset, limit, buf, count)
-+#define Read(buf, count) fake_read(buffer, &offset, limit, buf, (unsigned) count)
-
- #define read_shorts(buf, count) \
-- (Read(buf, (unsigned) (count)*2) == (int) (count)*2)
-+ (Read(buf, (count)*2) == (int) (count)*2)
-
- #define even_boundary(value) \
- if ((value) % 2 != 0) Read(buf, 1)
-
-+/*
-+ * Return TGETENT_YES if read, TGETENT_NO if not found or garbled.
-+ */
- NCURSES_EXPORT(int)
- _nc_read_termtype(TERMTYPE *ptr, char *buffer, int limit)
--/* return 1 if read, 0 if not found or garbled */
- {
- int offset = 0;
- int name_size, bool_count, num_count, str_count, str_size;
- int i;
-- char buf[MAX_ENTRY_SIZE + 1];
-+ char buf[MAX_ENTRY_SIZE + 2];
- char *string_table;
- unsigned want, have;
-
-@@ -157,7 +159,7 @@
- want = (unsigned) (str_size + name_size + 1);
- if (str_size) {
- /* try to allocate space for the string table */
-- if (str_count * 2 >= (int) sizeof(buf)
-+ if (str_count * 2 >= MAX_ENTRY_SIZE
- || (string_table = typeMalloc(char, want)) == 0) {
- return (TGETENT_NO);
- }
-@@ -173,7 +175,7 @@
- ptr->str_table = string_table;
- ptr->term_names = string_table;
- if ((have = (unsigned) Read(ptr->term_names, want)) != want) {
-- memset(ptr->term_names + have, 0, want - have);
-+ memset(ptr->term_names + have, 0, (size_t) (want - have));
- }
- ptr->term_names[want] = '\0';
- string_table += (want + 1);
-@@ -236,9 +238,9 @@
- unsigned need = (unsigned) (ext_bool_count + ext_num_count + ext_str_count);
- int base = 0;
-
-- if (need >= sizeof(buf)
-- || ext_str_size >= (int) sizeof(buf)
-- || ext_str_limit >= (int) sizeof(buf)
-+ if (need >= (MAX_ENTRY_SIZE / 2)
-+ || ext_str_size >= MAX_ENTRY_SIZE
-+ || ext_str_limit >= MAX_ENTRY_SIZE
- || ext_bool_count < 0
- || ext_num_count < 0
- || ext_str_count < 0
-@@ -250,9 +252,9 @@
- ptr->num_Numbers = UShort(NUMCOUNT + ext_num_count);
- ptr->num_Strings = UShort(STRCOUNT + ext_str_count);
-
-- ptr->Booleans = typeRealloc(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans);
-- ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers);
-- ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings);
-+ TYPE_REALLOC(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans);
-+ TYPE_REALLOC(short, ptr->num_Numbers, ptr->Numbers);
-+ TYPE_REALLOC(char *, ptr->num_Strings, ptr->Strings);
-
- TR(TRACE_DATABASE, ("extended header is %d/%d/%d(%d:%d)",
- ext_bool_count, ext_num_count, ext_str_count,
-@@ -277,6 +279,8 @@
- }
-
- TR(TRACE_DATABASE, ("READ extended-offsets @%d", offset));
-+ if ((unsigned) (ext_str_count + (int) need) >= (MAX_ENTRY_SIZE / 2))
-+ return (TGETENT_NO);
- if ((ext_str_count || need)
- && !read_shorts(buf, ext_str_count + (int) need))
- return (TGETENT_NO);
-@@ -313,7 +317,7 @@
- }
-
- if (need) {
-- if (ext_str_count >= (MAX_ENTRY_SIZE * 2))
-+ if (ext_str_count >= (MAX_ENTRY_SIZE / 2))
- return (TGETENT_NO);
- if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0)
- return (TGETENT_NO);
-@@ -326,17 +330,18 @@
- ext_str_limit, ptr->ext_str_table + base);
- }
-
-- T(("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)",
-- ptr->num_Booleans, ptr->ext_Booleans,
-- ptr->num_Numbers, ptr->ext_Numbers,
-- ptr->num_Strings, ptr->ext_Strings));
-+ TR(TRACE_DATABASE,
-+ ("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)",
-+ ptr->num_Booleans, ptr->ext_Booleans,
-+ ptr->num_Numbers, ptr->ext_Numbers,
-+ ptr->num_Strings, ptr->ext_Strings));
-
- TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans));
- } else
- #endif /* NCURSES_XNAMES */
- {
-- T(("...done reading terminfo bool %d num %d str %d",
-- bool_count, num_count, str_count));
-+ TR(TRACE_DATABASE, ("...done reading terminfo bool %d num %d str %d",
-+ bool_count, num_count, str_count));
- #if NCURSES_XNAMES
- TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans));
- #endif
-@@ -371,13 +376,13 @@
-
- if (_nc_access(filename, R_OK) < 0
- || (fp = fopen(filename, "rb")) == 0) {
-- T(("cannot open terminfo %s (errno=%d)", filename, errno));
-+ TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno));
- code = TGETENT_NO;
- } else {
- if ((limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp))
- > 0) {
-
-- T(("read terminfo %s", filename));
-+ TR(TRACE_DATABASE, ("read terminfo %s", filename));
- if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) {
- _nc_free_termtype(ptr);
- }
-@@ -390,6 +395,58 @@
- return (code);
- }
-
-+#if USE_HASHED_DB
-+/*
-+ * Return if if we can build the filename of a ".db" file.
-+ */
-+static bool
-+make_db_filename(char *filename, unsigned limit, const char *const path)
-+{
-+ static const char suffix[] = DBM_SUFFIX;
-+
-+ unsigned lens = sizeof(suffix) - 1;
-+ unsigned size = strlen(path);
-+ unsigned test = lens + size;
-+ bool result = FALSE;
-+
-+ if (test < limit) {
-+ if (size >= lens
-+ && !strcmp(path + size - lens, suffix))
-+ _nc_STRCPY(filename, path, limit);
-+ else
-+ _nc_SPRINTF(filename, _nc_SLIMIT(limit) "%s%s", path, suffix);
-+ result = TRUE;
-+ }
-+ return result;
-+}
-+#endif
-+
-+/*
-+ * Return true if we can build the name of a filesystem entry.
-+ */
-+static bool
-+make_dir_filename(char *filename,
-+ unsigned limit,
-+ const char *const path,
-+ const char *name)
-+{
-+ bool result = FALSE;
-+
-+#if USE_TERMCAP
-+ if (_nc_is_dir_path(path))
-+#endif
-+ {
-+ unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name));
-+
-+ if (need <= limit) {
-+ _nc_SPRINTF(filename, _nc_SLIMIT(limit)
-+ "%s/" LEAF_FMT "/%s", path, *name, name);
-+ result = TRUE;
-+ }
-+ }
-+ return result;
-+}
-+
- /*
- * Build a terminfo pathname and try to read the data. Returns TGETENT_YES on
- * success, TGETENT_NO on failure.
-@@ -401,101 +458,80 @@
- const char *name,
- TERMTYPE *const tp)
- {
-- int result = TGETENT_NO;
--
-- /*
-- * If we are looking in a directory, assume the entry is a file under that,
-- * according to the normal rules.
-- */
-- unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name));
-- if (need <= limit)
-- (void) sprintf(filename, "%s/" LEAF_FMT "/%s", path, *name, name);
-+ int code = TGETENT_NO;
-
-- if (_nc_is_dir_path(path))
-- result = _nc_read_file_entry(filename, tp);
- #if USE_HASHED_DB
-- else {
-- static const char suffix[] = DBM_SUFFIX;
-- DB *capdbp;
-- unsigned lens = sizeof(suffix) - 1;
-- unsigned size = strlen(path);
-- unsigned test = lens + size;
--
-- if (test < limit) {
-- if (size >= lens
-- && !strcmp(path + size - lens, suffix))
-- (void) strcpy(filename, path);
-- else
-- (void) sprintf(filename, "%s%s", path, suffix);
-+ DB *capdbp;
-
-- /*
-- * It would be nice to optimize the dbopen/close activity, as
-- * done in the cgetent implementation for tc= clauses. However,
-- * since we support multiple database locations, we cannot do
-- * that.
-- */
-- if ((capdbp = _nc_db_open(filename, FALSE)) != 0) {
-- DBT key, data;
-- int reccnt = 0;
-- char *save = strdup(name);
--
-- memset(&key, 0, sizeof(key));
-- key.data = save;
-- key.size = strlen(save);
--
-- /*
-- * This lookup could return termcap data, which we do not want.
-- * We are looking for compiled (binary) terminfo data.
-- *
-- * cgetent uses a two-level lookup. On the first it uses the
-- * given name to return a record containing only the aliases
-- * for an entry. On the second (using that list of aliases as
-- * a key), it returns the content of the terminal description.
-- * We expect second lookup to return data beginning with the
-- * same set of aliases.
-- *
-- * For compiled terminfo, the list of aliases in the second
-- * case will be null-terminated. A termcap entry will not be,
-- * and will run on into the description. So we can easily
-- * distinguish between the two (source/binary) by checking the
-- * lengths.
-- */
-- while (_nc_db_get(capdbp, &key, &data) == 0) {
-- int used = data.size - 1;
-- char *have = (char *) data.data;
--
-- if (*have++ == 0) {
-- if (data.size > key.size
-- && IS_TIC_MAGIC(have)) {
-- result = _nc_read_termtype(tp, have, used);
-- if (result == TGETENT_NO) {
-- _nc_free_termtype(tp);
-- }
-- }
-- break;
-- }
-+ if (make_db_filename(filename, limit, path)
-+ && (capdbp = _nc_db_open(filename, FALSE)) != 0) {
-
-- /*
-- * Just in case we have a corrupt database, do not waste
-- * time with it.
-- */
-- if (++reccnt >= 3)
-- break;
--
-- /*
-- * Prepare for the second level.
-- */
-- key.data = have;
-- key.size = used;
-+ DBT key, data;
-+ int reccnt = 0;
-+ char *save = strdup(name);
-+
-+ memset(&key, 0, sizeof(key));
-+ key.data = save;
-+ key.size = strlen(save);
-+
-+ /*
-+ * This lookup could return termcap data, which we do not want. We are
-+ * looking for compiled (binary) terminfo data.
-+ *
-+ * cgetent uses a two-level lookup. On the first it uses the given
-+ * name to return a record containing only the aliases for an entry.
-+ * On the second (using that list of aliases as a key), it returns the
-+ * content of the terminal description. We expect second lookup to
-+ * return data beginning with the same set of aliases.
-+ *
-+ * For compiled terminfo, the list of aliases in the second case will
-+ * be null-terminated. A termcap entry will not be, and will run on
-+ * into the description. So we can easily distinguish between the two
-+ * (source/binary) by checking the lengths.
-+ */
-+ while (_nc_db_get(capdbp, &key, &data) == 0) {
-+ int used = data.size - 1;
-+ char *have = (char *) data.data;
-+
-+ if (*have++ == 0) {
-+ if (data.size > key.size
-+ && IS_TIC_MAGIC(have)) {
-+ code = _nc_read_termtype(tp, have, used);
-+ if (code == TGETENT_NO) {
-+ _nc_free_termtype(tp);
-+ }
- }
--
-- _nc_db_close(capdbp);
-- free(save);
-+ break;
- }
-+
-+ /*
-+ * Just in case we have a corrupt database, do not waste time with
-+ * it.
-+ */
-+ if (++reccnt >= 3)
-+ break;
-+
-+ /*
-+ * Prepare for the second level.
-+ */
-+ key.data = have;
-+ key.size = used;
- }
-+
-+ free(save);
-+ } else /* may be either filesystem or flat file */
-+#endif
-+ if (make_dir_filename(filename, limit, path, name)) {
-+ code = _nc_read_file_entry(filename, tp);
-+ }
-+#if USE_TERMCAP
-+ else if (code != TGETENT_YES) {
-+ code = _nc_read_termcap_entry(name, tp);
-+ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
-+ "%.*s", PATH_MAX - 1, _nc_get_source());
- }
- #endif
-- return result;
-+ return code;
- }
- #endif /* USE_DATABASE */
-
-@@ -513,31 +549,35 @@
- {
- int code = TGETENT_NO;
-
-- sprintf(filename, "%.*s", PATH_MAX - 1, name);
-+ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
-+ "%.*s", PATH_MAX - 1, name);
-+
- if (strlen(name) == 0
- || strcmp(name, ".") == 0
- || strcmp(name, "..") == 0
- || _nc_pathlast(name) != 0
- || strchr(name, NCURSES_PATHSEP) != 0) {
-- T(("illegal or missing entry name '%s'", name));
-+ TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", name));
- } else {
- #if USE_DATABASE
-- DBDIRS state = dbdTIC;
-- int offset = 0;
-+ DBDIRS state;
-+ int offset;
- const char *path;
-
-+ _nc_first_db(&state, &offset);
- while ((path = _nc_next_db(&state, &offset)) != 0) {
-+ TR(TRACE_DATABASE, ("_nc_read_tic_entry path=%s, name=%s", path, name));
- code = _nc_read_tic_entry(filename, PATH_MAX, path, name, tp);
- if (code == TGETENT_YES) {
- _nc_last_db();
- break;
- }
- }
--#endif
--#if USE_TERMCAP
-+#elif USE_TERMCAP
- if (code != TGETENT_YES) {
- code = _nc_read_termcap_entry(name, tp);
-- sprintf(filename, "%.*s", PATH_MAX - 1, _nc_get_source());
-+ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
-+ "%.*s", PATH_MAX - 1, _nc_get_source());
- }
- #endif
- }
-Index: ncurses/tinfo/read_termcap.c
-Prereq: 1.74
---- ncurses-5.9/ncurses/tinfo/read_termcap.c 2010-01-23 17:57:43.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/read_termcap.c 2012-05-05 19:40:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -54,10 +54,9 @@
-
- #include <ctype.h>
- #include <sys/types.h>
--#include <sys/stat.h>
- #include <tic.h>
-
--MODULE_ID("$Id: read_termcap.c,v 1.74 2010/01/23 17:57:43 tom Exp $")
-+MODULE_ID("$Id: read_termcap.c,v 1.87 2012/05/05 19:40:50 tom Exp $")
-
- #if !PURE_TERMINFO
-
-@@ -74,7 +73,7 @@
-
- if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0)
- result = TERMPATH;
-- T(("TERMPATH is %s", result));
-+ TR(TRACE_DATABASE, ("TERMPATH is %s", result));
- return result;
- }
-
-@@ -162,7 +161,7 @@
- return (-1);
- }
- gottoprec = 0;
-- (void) strcpy(toprec, ent);
-+ _nc_STRCPY(toprec, ent, topreclen);
- return (0);
- }
-
-@@ -295,7 +294,7 @@
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
-- (void) strcpy(record, toprec);
-+ _nc_STRCPY(record, toprec, topreclen + BFRAG);
- rp = record + topreclen + 1;
- r_end = rp + BFRAG;
- current = in_array;
-@@ -384,7 +383,14 @@
- c = *bp++;
- if (c == '\n') {
- lineno++;
-- if (rp == record || *(rp - 1) != '\\')
-+ /*
-+ * Unlike BSD 4.3, this ignores a backslash at the
-+ * end of a comment-line. That makes it consistent
-+ * with the rest of ncurses -TD
-+ */
-+ if (rp == record
-+ || *record == '#'
-+ || *(rp - 1) != '\\')
- break;
- }
- *rp++ = c;
-@@ -442,8 +448,10 @@
- break;
- }
-
-- if (!foundit)
-+ if (!foundit) {
-+ free(record);
- return (TC_NOT_FOUND);
-+ }
- }
-
- /*
-@@ -455,7 +463,7 @@
- register int newilen;
- unsigned ilen;
- int diff, iret, tclen, oline;
-- char *icap, *scan, *tc, *tcstart, *tcend;
-+ char *icap = 0, *scan, *tc, *tcstart, *tcend;
-
- /*
- * Loop invariants:
-@@ -468,8 +476,9 @@
- scan = record;
- tc_not_resolved = FALSE;
- for (;;) {
-- if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0)
-+ if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0) {
- break;
-+ }
-
- /*
- * Find end of tc=name and stomp on the trailing `:'
-@@ -486,6 +495,7 @@
- tclen = s - tcstart;
- tcend = s;
-
-+ icap = 0;
- iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd,
- tc, depth + 1, 0);
- newicap = icap; /* Put into a register. */
-@@ -496,12 +506,13 @@
- if (myfd)
- (void) close(fd);
- free(record);
-+ FreeIfNeeded(icap);
- return (iret);
- }
-- if (iret == TC_UNRESOLVED)
-+ if (iret == TC_UNRESOLVED) {
- tc_not_resolved = TRUE;
-- /* couldn't resolve tc */
-- if (iret == TC_NOT_FOUND) {
-+ /* couldn't resolve tc */
-+ } else if (iret == TC_NOT_FOUND) {
- *(s - 1) = ':';
- scan = s - 1;
- tc_not_resolved = TRUE;
-@@ -581,8 +592,9 @@
- }
-
- *cap = record;
-- if (tc_not_resolved)
-+ if (tc_not_resolved) {
- return (TC_UNRESOLVED);
-+ }
- return (current);
- }
-
-@@ -697,8 +709,6 @@
- #define PVECSIZ 32 /* max number of names in path */
- #define TBUFSIZ (2048*2)
-
--static char *tbuf;
--
- /*
- * On entry, srcp points to a non ':' character which is the beginning of the
- * token, if any. We'll try to return a string that doesn't end with a ':'.
-@@ -776,18 +786,18 @@
- register char *p;
- register char *cp;
- char *dummy = NULL;
-- char **fname;
-+ CGETENT_CONST char **fname;
- char *home;
- int i;
- char pathbuf[PBUFSIZ]; /* holds raw path of filenames */
-- char *pathvec[PVECSIZ]; /* to point to names in pathbuf */
-- char **pvec; /* holds usable tail of path vector */
-+ CGETENT_CONST char *pathvec[PVECSIZ]; /* point to names in pathbuf */
-+ CGETENT_CONST char **pvec; /* holds usable tail of path vector */
- NCURSES_CONST char *termpath;
- string_desc desc;
-
-+ *lineno = 1;
- fname = pathvec;
- pvec = pathvec;
-- tbuf = bp;
- p = pathbuf;
- cp = use_terminfo_vars()? getenv("TERMCAP") : NULL;
-
-@@ -812,10 +822,11 @@
- if ((home = getenv("HOME")) != 0 && *home != '\0'
- && strchr(home, ' ') == 0
- && strlen(home) < sizeof(temp) - 10) { /* setup path */
-- sprintf(temp, "%s/", home); /* $HOME first */
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "%s/", home); /* $HOME first */
- }
- /* if no $HOME look in current directory */
-- strcat(temp, ".termcap");
-+ _nc_STRCAT(temp, ".termcap", sizeof(temp));
- _nc_safe_strcat(&desc, temp);
- _nc_safe_strcat(&desc, " ");
- _nc_safe_strcat(&desc, get_termpath());
-@@ -841,6 +852,9 @@
- }
- }
- *fname = 0; /* mark end of vector */
-+#if !HAVE_BSD_CGETENT
-+ (void) _nc_cgetset(0);
-+#endif
- if (_nc_is_abs_path(cp)) {
- if (_nc_cgetset(cp) < 0) {
- return (TC_SYS_ERR);
-@@ -853,6 +867,7 @@
- * empty fields, and mistakenly use the last valid cap entry instead of
- * the first (breaks tc= includes)
- */
-+ *bp = '\0';
- if (i >= 0) {
- char *pd, *ps, *tok;
- int endflag = FALSE;
-@@ -932,7 +947,7 @@
- if (count < MAXPATHS
- && _nc_access(path, R_OK) == 0) {
- termpaths[count++] = path;
-- T(("Adding termpath %s", path));
-+ TR(TRACE_DATABASE, ("Adding termpath %s", path));
- }
- termpaths[count] = 0;
- if (save != 0)
-@@ -956,13 +971,13 @@
- static char *source;
- static int lineno;
-
-- T(("read termcap entry for %s", tn));
-+ TR(TRACE_DATABASE, ("read termcap entry for %s", tn));
-
- if (strlen(tn) == 0
- || strcmp(tn, ".") == 0
- || strcmp(tn, "..") == 0
- || _nc_pathlast(tn) != 0) {
-- T(("illegal or missing entry name '%s'", tn));
-+ TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", tn));
- return TGETENT_NO;
- }
-
-@@ -980,7 +995,7 @@
- _nc_curr_line = lineno;
- _nc_set_source(source);
- }
-- _nc_read_entry_source((FILE *) 0, tc, FALSE, FALSE, NULLHOOK);
-+ _nc_read_entry_source((FILE *) 0, tc, FALSE, TRUE, NULLHOOK);
- #else
- /*
- * Here is what the 4.4BSD termcap(3) page prescribes:
-@@ -1027,7 +1042,9 @@
- normal = FALSE;
- } else if (_nc_name_match(tc, tn, "|:")) { /* treat as a capability file */
- use_buffer = TRUE;
-- (void) sprintf(tc_buf, "%.*s\n", (int) sizeof(tc_buf) - 2, tc);
-+ _nc_SPRINTF(tc_buf,
-+ _nc_SLIMIT(sizeof(tc_buf))
-+ "%.*s\n", (int) sizeof(tc_buf) - 2, tc);
- normal = FALSE;
- }
- }
-@@ -1049,8 +1066,9 @@
- if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0'
- && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
- /* user's .termcap, if any, should override it */
-- (void) strcpy(envhome, h);
-- (void) sprintf(pathbuf, PRIVATE_CAP, envhome);
-+ _nc_STRCPY(envhome, h, sizeof(envhome));
-+ _nc_SPRINTF(pathbuf, _nc_SLIMIT(sizeof(pathbuf))
-+ PRIVATE_CAP, envhome);
- ADD_TC(pathbuf, filecount);
- }
- }
-@@ -1063,7 +1081,7 @@
- for (j = 0; j < filecount; j++) {
- bool omit = FALSE;
- if (stat(termpaths[j], &test_stat[j]) != 0
-- || (test_stat[j].st_mode & S_IFMT) != S_IFREG) {
-+ || !S_ISREG(test_stat[j].st_mode)) {
- omit = TRUE;
- } else {
- for (k = 0; k < j; k++) {
-@@ -1075,7 +1093,7 @@
- }
- }
- if (omit) {
-- T(("Path %s is a duplicate", termpaths[j]));
-+ TR(TRACE_DATABASE, ("Path %s is a duplicate", termpaths[j]));
- for (k = j + 1; k < filecount; k++) {
- termpaths[k - 1] = termpaths[k];
- test_stat[k - 1] = test_stat[k];
-@@ -1100,7 +1118,7 @@
-
- for (i = 0; i < filecount; i++) {
-
-- T(("Looking for %s in %s", tn, termpaths[i]));
-+ TR(TRACE_DATABASE, ("Looking for %s in %s", tn, termpaths[i]));
- if (_nc_access(termpaths[i], R_OK) == 0
- && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
- _nc_set_source(termpaths[i]);
-@@ -1138,8 +1156,7 @@
- * from the list.
- */
- *tp = ep->tterm;
-- _nc_delink_entry(_nc_head, &(ep->tterm));
-- free(ep);
-+ _nc_free_entry(_nc_head, &(ep->tterm));
-
- /*
- * OK, now try to write the type to user's terminfo directory.
-Index: ncurses/tinfo/strings.c
-Prereq: 1.6
---- ncurses-5.9/ncurses/tinfo/strings.c 2007-08-11 17:12:17.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/strings.c 2012-02-22 22:34:31.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2000-2003,2007 Free Software Foundation, Inc. *
-+ * Copyright (c) 2000-2007,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: strings.c,v 1.6 2007/08/11 17:12:17 tom Exp $")
-+MODULE_ID("$Id: strings.c,v 1.8 2012/02/22 22:34:31 tom Exp $")
-
- /****************************************************************************
- * Useful string functions (especially for mvcur)
-@@ -110,7 +110,7 @@
-
- if (len < dst->s_size) {
- if (dst->s_tail != 0) {
-- strcpy(dst->s_tail, src);
-+ _nc_STRCPY(dst->s_tail, src, dst->s_size);
- dst->s_tail += len;
- }
- dst->s_size -= len;
-@@ -131,7 +131,7 @@
-
- if (len < dst->s_size) {
- if (dst->s_head != 0) {
-- strcpy(dst->s_head, src);
-+ _nc_STRCPY(dst->s_head, src, dst->s_size);
- dst->s_tail = dst->s_head + len;
- }
- dst->s_size = dst->s_init - len;
-Index: ncurses/tinfo/tinfo_driver.c
-Prereq: 1.13
---- ncurses-5.9/ncurses/tinfo/tinfo_driver.c 2010-12-20 01:47:09.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/tinfo_driver.c 2013-01-12 22:01:43.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -50,7 +50,7 @@
- # endif
- #endif
-
--MODULE_ID("$Id: tinfo_driver.c,v 1.13 2010/12/20 01:47:09 tom Exp $")
-+MODULE_ID("$Id: tinfo_driver.c,v 1.29 2013/01/12 22:01:43 tom Exp $")
-
- /*
- * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
-@@ -93,7 +93,7 @@
-
- #define TCBMAGIC NCDRV_MAGIC(NCDRV_TINFO)
- #define AssertTCB() assert(TCB!=0 && TCB->magic==TCBMAGIC)
--#define SetSP() assert(TCB->csp!=0); sp = TCB->csp
-+#define SetSP() assert(TCB->csp!=0); sp = TCB->csp; (void) sp
-
- /*
- * This routine needs to do all the work to make curscr look
-@@ -106,22 +106,6 @@
- return TINFO_DOUPDATE(TCB->csp);
- }
-
--#define ret_error(code, fmt, arg) if (errret) {\
-- *errret = code;\
-- return(FALSE); \
-- } else {\
-- fprintf(stderr, fmt, arg);\
-- exit(EXIT_FAILURE);\
-- }
--
--#define ret_error0(code, msg) if (errret) {\
-- *errret = code;\
-- return(FALSE);\
-- } else {\
-- fprintf(stderr, msg);\
-- exit(EXIT_FAILURE);\
-- }
--
- static bool
- drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret)
- {
-@@ -156,12 +140,12 @@
- if (status == TGETENT_ERR) {
- ret_error0(status, "terminals database is inaccessible\n");
- } else if (status == TGETENT_NO) {
-- ret_error(status, "'%s': unknown terminal type.\n", tname);
-+ ret_error1(status, "unknown terminal type.\n", tname);
- }
- }
- result = TRUE;
- #if !USE_REENTRANT
-- strncpy(ttytype, termp->type.term_names, NAMESIZE - 1);
-+ strncpy(ttytype, termp->type.term_names, (size_t) NAMESIZE - 1);
- ttytype[NAMESIZE - 1] = '\0';
- #endif
-
-@@ -169,17 +153,27 @@
- _nc_tinfo_cmdch(termp, *command_character);
-
- if (generic_type) {
-- ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
-+ /*
-+ * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity
-+ * check before giving up.
-+ */
-+ if ((VALID_STRING(cursor_address)
-+ || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home)))
-+ && VALID_STRING(clear_screen)) {
-+ ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname);
-+ } else {
-+ ret_error1(TGETENT_NO, "I need something more specific.\n", tname);
-+ }
- }
- if (hard_copy) {
-- ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname);
-+ ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname);
- }
-
- return result;
- }
-
- static int
--drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, bool beepFlag)
-+drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, int beepFlag)
- {
- SCREEN *sp;
- int res = ERR;
-@@ -190,22 +184,18 @@
- /* FIXME: should make sure that we are not in altchar mode */
- if (beepFlag) {
- if (bell) {
-- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell);
-+ res = NCURSES_PUTP2("bell", bell);
- NCURSES_SP_NAME(_nc_flush) (sp);
- } else if (flash_screen) {
-- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "flash_screen",
-- flash_screen);
-+ res = NCURSES_PUTP2("flash_screen", flash_screen);
- NCURSES_SP_NAME(_nc_flush) (sp);
- }
- } else {
- if (flash_screen) {
-- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "flash_screen",
-- flash_screen);
-+ res = NCURSES_PUTP2("flash_screen", flash_screen);
- NCURSES_SP_NAME(_nc_flush) (sp);
- } else if (bell) {
-- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell);
-+ res = NCURSES_PUTP2("bell", bell);
- NCURSES_SP_NAME(_nc_flush) (sp);
- }
- }
-@@ -277,7 +267,7 @@
-
- static void
- drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB,
-- bool fore,
-+ int fore,
- int color,
- NCURSES_SP_OUTC outc)
- {
-@@ -321,7 +311,7 @@
- SetSP();
-
- if (orig_pair != 0) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_pair", orig_pair);
-+ NCURSES_PUTP2("orig_pair", orig_pair);
- result = TRUE;
- }
- return result;
-@@ -337,7 +327,7 @@
- SetSP();
-
- if (orig_colors != 0) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_colors", orig_colors);
-+ NCURSES_PUTP2("orig_colors", orig_colors);
- result = TRUE;
- }
- return result;
-@@ -348,14 +338,18 @@
- {
- SCREEN *sp;
- bool useEnv = TRUE;
-+ bool useTioctl = TRUE;
-
- AssertTCB();
- sp = TCB->csp; /* can be null here */
-
- if (sp) {
- useEnv = sp->_use_env;
-- } else
-+ useTioctl = sp->_use_tioctl;
-+ } else {
- useEnv = _nc_prescreen.use_env;
-+ useTioctl = _nc_prescreen.use_tioctl;
-+ }
-
- /* figure out the size of the screen */
- T(("screen size: terminfo lines = %d columns = %d", lines, columns));
-@@ -363,7 +357,7 @@
- *linep = (int) lines;
- *colp = (int) columns;
-
-- if (useEnv) {
-+ if (useEnv || useTioctl) {
- int value;
-
- #ifdef __EMX__
-@@ -371,7 +365,9 @@
- int screendata[2];
- _scrsize(screendata);
- *colp = screendata[0];
-- *linep = screendata[1];
-+ *linep = ((sp != 0 && sp->_filtered)
-+ ? 1
-+ : screendata[1]);
- T(("EMX screen size: environment LINES = %d COLUMNS = %d",
- *linep, *colp));
- }
-@@ -400,19 +396,33 @@
- }
- #endif /* HAVE_SIZECHANGE */
-
-- /*
-- * Finally, look for environment variables.
-- *
-- * Solaris lets users override either dimension with an environment
-- * variable.
-- */
-- if ((value = _nc_getenv_num("LINES")) > 0) {
-- *linep = value;
-- T(("screen size: environment LINES = %d", *linep));
-- }
-- if ((value = _nc_getenv_num("COLUMNS")) > 0) {
-- *colp = value;
-- T(("screen size: environment COLUMNS = %d", *colp));
-+ if (useEnv) {
-+ if (useTioctl) {
-+ /*
-+ * If environment variables are used, update them.
-+ */
-+ if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) {
-+ _nc_setenv_num("LINES", *linep);
-+ }
-+ if (_nc_getenv_num("COLUMNS") > 0) {
-+ _nc_setenv_num("COLUMNS", *colp);
-+ }
-+ }
-+
-+ /*
-+ * Finally, look for environment variables.
-+ *
-+ * Solaris lets users override either dimension with an environment
-+ * variable.
-+ */
-+ if ((value = _nc_getenv_num("LINES")) > 0) {
-+ *linep = value;
-+ T(("screen size: environment LINES = %d", *linep));
-+ }
-+ if ((value = _nc_getenv_num("COLUMNS")) > 0) {
-+ *colp = value;
-+ T(("screen size: environment COLUMNS = %d", *colp));
-+ }
- }
-
- /* if we can't get dynamic info about the size, use static */
-@@ -463,7 +473,7 @@
- }
-
- static int
--drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf)
-+drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, int setFlag, TTY * buf)
- {
- SCREEN *sp = TCB->csp;
- TERMINAL *_term = (TERMINAL *) TCB;
-@@ -497,7 +507,7 @@
- }
-
- static int
--drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag)
-+drv_mode(TERMINAL_CONTROL_BLOCK * TCB, int progFlag, int defFlag)
- {
- SCREEN *sp;
- TERMINAL *_term = (TERMINAL *) TCB;
-@@ -620,15 +630,13 @@
- static void
- drv_init(TERMINAL_CONTROL_BLOCK * TCB)
- {
-- SCREEN *sp;
- TERMINAL *trm;
-
- AssertTCB();
-
- trm = (TERMINAL *) TCB;
-- sp = TCB->csp;
-
-- TCB->info.initcolor = initialize_color;
-+ TCB->info.initcolor = VALID_STRING(initialize_color);
- TCB->info.canchange = can_change;
- TCB->info.hascolor = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
- && (((set_foreground != NULL)
-@@ -665,7 +673,7 @@
- #define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE)
-
- static void
--drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, short pair, short f, short b)
-+drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, int pair, int f, int b)
- {
- SCREEN *sp;
-
-@@ -681,12 +689,11 @@
- tp[f].red, tp[f].green, tp[f].blue,
- tp[b].red, tp[b].green, tp[b].blue));
-
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "initialize_pair",
-- TPARM_7(initialize_pair,
-- pair,
-- tp[f].red, tp[f].green, tp[f].blue,
-- tp[b].red, tp[b].green, tp[b].blue));
-+ NCURSES_PUTP2("initialize_pair",
-+ TPARM_7(initialize_pair,
-+ pair,
-+ tp[f].red, tp[f].green, tp[f].blue,
-+ tp[b].red, tp[b].green, tp[b].blue));
- }
- }
-
-@@ -712,23 +719,22 @@
-
- static void
- drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB,
-- short color, short r, short g, short b)
-+ int color, int r, int g, int b)
- {
- SCREEN *sp = TCB->csp;
-
- AssertTCB();
- if (initialize_color != NULL) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "initialize_color",
-- TPARM_4(initialize_color, color, r, g, b));
-+ NCURSES_PUTP2("initialize_color",
-+ TPARM_4(initialize_color, color, r, g, b));
- }
- }
-
- static void
- drv_do_color(TERMINAL_CONTROL_BLOCK * TCB,
-- short old_pair,
-- short pair,
-- bool reverse,
-+ int old_pair,
-+ int pair,
-+ int reverse,
- NCURSES_SP_OUTC outc)
- {
- SCREEN *sp = TCB->csp;
-@@ -759,7 +765,7 @@
- if (old_pair >= 0
- && sp != 0
- && NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx
-- old_pair,
-+ (short) old_pair,
- &old_fg,
- &old_bg) !=ERR) {
- if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
-@@ -845,7 +851,9 @@
- }
-
- static int
--drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB, int delay)
-+drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB,
-+ int delay
-+ EVENTLIST_2nd(_nc_eventlist * evl))
- {
- int rc = 0;
- SCREEN *sp;
-@@ -882,7 +890,7 @@
- {
- SCREEN *sp = TCB->csp;
- AssertTCB();
-- return TINFO_MVCUR(sp, yold, xold, ynew, xnew);
-+ return NCURSES_SP_NAME(_nc_mvcur) (sp, yold, xold, ynew, xnew);
- }
-
- static void
-@@ -892,22 +900,21 @@
-
- AssertTCB();
- if (labnum > 0 && labnum <= num_labels) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "plab_norm",
-- TPARM_2(plab_norm, labnum, text));
-+ NCURSES_PUTP2("plab_norm",
-+ TPARM_2(plab_norm, labnum, text));
- }
- }
-
- static void
--drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, bool OnFlag)
-+drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, int OnFlag)
- {
- SCREEN *sp = TCB->csp;
-
- AssertTCB();
- if (OnFlag) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_on", label_on);
-+ NCURSES_PUTP2("label_on", label_on);
- } else {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_off", label_off);
-+ NCURSES_PUTP2("label_off", label_off);
- }
- }
-
-@@ -972,7 +979,7 @@
- AssertTCB();
- assert(sp != 0);
- if (ena_acs != NULL) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "ena_acs", ena_acs);
-+ NCURSES_PUTP2("ena_acs", ena_acs);
- }
- #if NCURSES_EXT_FUNCS
- /*
-@@ -1176,7 +1183,7 @@
- if ((pthread_self) && (pthread_kill) && (pthread_equal))
- _nc_globals.read_thread = pthread_self();
- # endif
-- n = read(sp->_ifd, &c2, 1);
-+ n = read(sp->_ifd, &c2, (size_t) 1);
- #if USE_PTHREADS_EINTR
- _nc_globals.read_thread = 0;
- #endif
-@@ -1209,7 +1216,7 @@
- int rc = ERR;
-
- if (value) {
-- rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value);
-+ rc = NCURSES_PUTP2(name, value);
- }
- return rc;
- }
-@@ -1225,7 +1232,7 @@
- }
-
- static int
--drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag)
-+drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, int flag)
- {
- int ret = ERR;
- SCREEN *sp;
-@@ -1251,7 +1258,7 @@
- }
-
- static int
--drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, bool flag)
-+drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, int flag)
- {
- SCREEN *sp;
- int code = ERR;
-@@ -1264,7 +1271,8 @@
- if (c >= 0) {
- unsigned ch = (unsigned) c;
- if (flag) {
-- while ((s = _nc_expand_try(sp->_key_ok, ch, &count, 0)) != 0
-+ while ((s = _nc_expand_try(sp->_key_ok,
-+ ch, &count, (size_t) 0)) != 0
- && _nc_remove_key(&(sp->_key_ok), ch)) {
- code = _nc_add_to_try(&(sp->_keytry), s, ch);
- free(s);
-@@ -1273,7 +1281,8 @@
- break;
- }
- } else {
-- while ((s = _nc_expand_try(sp->_keytry, ch, &count, 0)) != 0
-+ while ((s = _nc_expand_try(sp->_keytry,
-+ ch, &count, (size_t) 0)) != 0
- && _nc_remove_key(&(sp->_keytry), ch)) {
- code = _nc_add_to_try(&(sp->_key_ok), s, ch);
- free(s);
-Index: ncurses/tinfo/trim_sgr0.c
-Prereq: 1.12
---- ncurses-5.9/ncurses/tinfo/trim_sgr0.c 2010-12-25 23:03:57.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/trim_sgr0.c 2012-12-15 20:57:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2005-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2005-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
-
- #include <tic.h>
-
--MODULE_ID("$Id: trim_sgr0.c,v 1.12 2010/12/25 23:03:57 tom Exp $")
-+MODULE_ID("$Id: trim_sgr0.c,v 1.15 2012/12/15 20:57:17 tom Exp $")
-
- #undef CUR
- #define CUR tp->
-@@ -48,21 +48,28 @@
- static char *
- set_attribute_9(TERMTYPE *tp, int flag)
- {
-- const char *result;
-+ const char *value;
-+ char *result;
-
-- if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
-- result = "";
-- return strdup(result);
-+ value = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag);
-+ if (PRESENT(value))
-+ result = strdup(value);
-+ else
-+ result = 0;
-+ return result;
- }
-
- static int
- is_csi(const char *s)
- {
-- if (UChar(s[0]) == CSI)
-- return 1;
-- else if (s[0] == ESC && s[1] == L_BRACK)
-- return 2;
-- return 0;
-+ int result = 0;
-+ if (s != 0) {
-+ if (UChar(s[0]) == CSI)
-+ result = 1;
-+ else if (s[0] == ESC && s[1] == L_BRACK)
-+ result = 2;
-+ }
-+ return result;
- }
-
- static char *
-@@ -97,7 +104,7 @@
- static bool
- rewrite_sgr(char *s, char *attr)
- {
-- if (PRESENT(s)) {
-+ if (s != 0) {
- if (PRESENT(attr)) {
- size_t len_s = strlen(s);
- size_t len_a = strlen(attr);
-@@ -108,7 +115,7 @@
- for (n = 0; n < len_s - len_a; ++n) {
- s[n] = s[n + len_a];
- }
-- strcpy(s + n, attr);
-+ _nc_STRCPY(s + n, attr, strlen(s) + 1);
- TR(TRACE_DATABASE, ("to:\n\t%s", s));
- }
- }
-@@ -121,33 +128,35 @@
- similar_sgr(char *a, char *b)
- {
- bool result = FALSE;
-- int csi_a = is_csi(a);
-- int csi_b = is_csi(b);
-- size_t len_a;
-- size_t len_b;
--
-- TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s",
-- _nc_visbuf2(1, a),
-- _nc_visbuf2(2, b)));
-- if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
-- a += csi_a;
-- b += csi_b;
-- if (*a != *b) {
-- a = skip_zero(a);
-- b = skip_zero(b);
-+ if (a != 0 && b != 0) {
-+ int csi_a = is_csi(a);
-+ int csi_b = is_csi(b);
-+ size_t len_a;
-+ size_t len_b;
-+
-+ TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s",
-+ _nc_visbuf2(1, a),
-+ _nc_visbuf2(2, b)));
-+ if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
-+ a += csi_a;
-+ b += csi_b;
-+ if (*a != *b) {
-+ a = skip_zero(a);
-+ b = skip_zero(b);
-+ }
- }
-+ len_a = strlen(a);
-+ len_b = strlen(b);
-+ if (len_a && len_b) {
-+ if (len_a > len_b)
-+ result = (strncmp(a, b, len_b) == 0);
-+ else
-+ result = (strncmp(a, b, len_a) == 0);
-+ }
-+ TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result,
-+ _nc_visbuf2(1, a),
-+ _nc_visbuf2(2, b)));
- }
-- len_a = strlen(a);
-- len_b = strlen(b);
-- if (len_a && len_b) {
-- if (len_a > len_b)
-- result = (strncmp(a, b, len_b) == 0);
-- else
-- result = (strncmp(a, b, len_a) == 0);
-- }
-- TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result,
-- _nc_visbuf2(1, a),
-- _nc_visbuf2(2, b)));
- return result;
- }
-
-Index: ncurses/tinfo/write_entry.c
-Prereq: 1.78
---- ncurses-5.9/ncurses/tinfo/write_entry.c 2010-12-25 23:23:08.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tinfo/write_entry.c 2012-12-29 23:12:22.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,21 +39,15 @@
- #include <curses.priv.h>
- #include <hashed_db.h>
-
--#include <sys/stat.h>
--
- #include <tic.h>
-
--#ifndef S_ISDIR
--#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR)
--#endif
--
- #if 1
- #define TRACE_OUT(p) DEBUG(2, p)
- #else
- #define TRACE_OUT(p) /*nothing */
- #endif
-
--MODULE_ID("$Id: write_entry.c,v 1.78 2010/12/25 23:23:08 tom Exp $")
-+MODULE_ID("$Id: write_entry.c,v 1.87 2012/12/29 23:12:22 tom Exp $")
-
- static int total_written;
-
-@@ -76,7 +70,7 @@
- DEBUG(1, ("Created %s", filename));
-
- if (write_object(tp, buffer, &offset, limit) == ERR
-- || fwrite(buffer, sizeof(char), offset, fp) != offset) {
-+ || fwrite(buffer, sizeof(char), (size_t) offset, fp) != offset) {
- _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename);
- }
-
-@@ -105,7 +99,7 @@
- if (verified[s - dirnames])
- return;
-
-- sprintf(dir, LEAF_FMT, code);
-+ _nc_SPRINTF(dir, _nc_SLIMIT(sizeof(dir)) LEAF_FMT, code);
- if (make_db_root(dir) < 0) {
- _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
- }
-@@ -115,36 +109,35 @@
- #endif /* !USE_HASHED_DB */
-
- static int
--make_db_path(char *dst, const char *src, unsigned limit)
-+make_db_path(char *dst, const char *src, size_t limit)
- {
- int rc = -1;
- const char *top = _nc_tic_dir(0);
-
- if (src == top || _nc_is_abs_path(src)) {
- if (strlen(src) + 1 <= limit) {
-- (void) strcpy(dst, src);
-+ _nc_STRCPY(dst, src, limit);
- rc = 0;
- }
- } else {
- if (strlen(top) + strlen(src) + 2 <= limit) {
-- (void) sprintf(dst, "%s/%s", top, src);
-+ _nc_SPRINTF(dst, _nc_SLIMIT(limit) "%s/%s", top, src);
- rc = 0;
- }
- }
- #if USE_HASHED_DB
- if (rc == 0) {
-- if (_nc_is_dir_path(dst)) {
-- rc = -1;
-- } else {
-- static const char suffix[] = DBM_SUFFIX;
-- unsigned have = strlen(dst);
-- unsigned need = strlen(suffix);
-- if (have > need && strcmp(dst + have - need, suffix)) {
-- if (have + need <= limit)
-- strcat(dst, suffix);
-- else
-- rc = -1;
-+ static const char suffix[] = DBM_SUFFIX;
-+ size_t have = strlen(dst);
-+ size_t need = strlen(suffix);
-+ if (have > need && strcmp(dst + (int) (have - need), suffix)) {
-+ if (have + need <= limit) {
-+ _nc_STRCAT(dst, suffix, limit);
-+ } else {
-+ rc = -1;
- }
-+ } else if (_nc_is_dir_path(dst)) {
-+ rc = -1;
- }
- }
- #endif
-@@ -164,10 +157,11 @@
- #if USE_HASHED_DB
- DB *capdbp;
-
-- if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL)
-+ if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL) {
- rc = -1;
-- else if (_nc_db_close(capdbp) < 0)
-+ } else if (_nc_db_close(capdbp) < 0) {
- rc = -1;
-+ }
- #else
- struct stat statbuf;
-
-@@ -279,16 +273,21 @@
- char name_list[MAX_TERMINFO_LENGTH];
- char *first_name, *other_names;
- char *ptr;
-+ const char *term_names = tp->term_names;
-+ size_t name_size = strlen(term_names);
-
-- assert(strlen(tp->term_names) != 0);
-- assert(strlen(tp->term_names) < sizeof(name_list));
-+ if (name_size == 0) {
-+ _nc_syserr_abort("no terminal name found.");
-+ } else if (name_size >= sizeof(name_list) - 1) {
-+ _nc_syserr_abort("terminal name too long: %s", term_names);
-+ }
-
-- (void) strcpy(name_list, tp->term_names);
-+ _nc_STRCPY(name_list, term_names, sizeof(name_list));
- DEBUG(7, ("Name list = '%s'", name_list));
-
- first_name = name_list;
-
-- ptr = &name_list[strlen(name_list) - 1];
-+ ptr = &name_list[name_size - 1];
- other_names = ptr + 1;
-
- while (ptr > name_list && *ptr != '|')
-@@ -322,8 +321,8 @@
- buffer[0] = 0;
-
- memset(&key, 0, sizeof(key));
-- key.data = tp->term_names;
-- key.size = strlen(tp->term_names);
-+ key.data = term_names;
-+ key.size = name_size;
-
- memset(&data, 0, sizeof(data));
- data.data = buffer;
-@@ -334,10 +333,12 @@
- buffer[0] = 2;
-
- key.data = name_list;
-- key.size = strlen(name_list);
-+ key.size = name_size;
-
-- strcpy(buffer + 1, tp->term_names);
-- data.size = strlen(tp->term_names) + 1;
-+ _nc_STRCPY(buffer + 1,
-+ term_names,
-+ sizeof(buffer) - 1);
-+ data.size = name_size + 1;
-
- _nc_db_put(capdb, &key, &data);
-
-@@ -355,7 +356,6 @@
-
- _nc_db_put(capdb, &key, &data);
- }
-- _nc_db_close(capdb);
- }
- }
- #else /* !USE_HASHED_DB */
-@@ -366,7 +366,8 @@
- if (strlen(first_name) >= sizeof(filename) - (2 + LEAF_LEN))
- _nc_warning("terminal name too long.");
-
-- sprintf(filename, LEAF_FMT "/%s", first_name[0], first_name);
-+ _nc_SPRINTF(filename, _nc_SLIMIT(sizeof(filename))
-+ LEAF_FMT "/%s", first_name[0], first_name);
-
- /*
- * Has this primary name been written since the first call to
-@@ -376,7 +377,22 @@
- if (start_time > 0 &&
- stat(filename, &statbuf) >= 0
- && statbuf.st_mtime >= start_time) {
-+#if HAVE_LINK && !USE_SYMLINKS
-+ /*
-+ * If the file has more than one link, the reason for the previous
-+ * write could be that the current primary name used to be an alias for
-+ * the previous entry. In that case, unlink the file so that we will
-+ * not modify the previous entry as we write this one.
-+ */
-+ if (statbuf.st_nlink > 1) {
-+ _nc_warning("name redefined.");
-+ unlink(filename);
-+ } else {
-+ _nc_warning("name multiply defined.");
-+ }
-+#else
- _nc_warning("name multiply defined.");
-+#endif
- }
-
- check_writeable(first_name[0]);
-@@ -407,7 +423,8 @@
- }
-
- check_writeable(ptr[0]);
-- sprintf(linkname, LEAF_FMT "/%s", ptr[0], ptr);
-+ _nc_SPRINTF(linkname, _nc_SLIMIT(sizeof(linkname))
-+ LEAF_FMT "/%s", ptr[0], ptr);
-
- if (strcmp(filename, linkname) == 0) {
- _nc_warning("self-synonym ignored");
-@@ -422,7 +439,7 @@
- if (first_name[0] == linkname[0])
- strncpy(symlinkname, first_name, sizeof(symlinkname) - 1);
- else {
-- strcpy(symlinkname, "../");
-+ _nc_STRCPY(symlinkname, "../", sizeof(suymlinkname));
- strncat(symlinkname, filename, sizeof(symlinkname) - 4);
- }
- symlinkname[sizeof(symlinkname) - 1] = '\0';
-@@ -491,7 +508,7 @@
- return (want / size);
- }
-
--#define Write(buf, size, count) fake_write(buffer, offset, limit, (char *) buf, count, size)
-+#define Write(buf, size, count) fake_write(buffer, offset, (size_t) limit, (char *) buf, (size_t) count, (size_t) size)
-
- #undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */
- #define HI(x) ((x) / 256)
-@@ -706,7 +723,7 @@
- return (ERR);
-
- nextfree = compute_offsets(tp->Strings + STRCOUNT,
-- tp->ext_Strings,
-+ (size_t) tp->ext_Strings,
- offsets);
- TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree));
-
-@@ -714,7 +731,7 @@
- return (ERR);
-
- nextfree += compute_offsets(tp->ext_Names,
-- extcnt,
-+ (size_t) extcnt,
- offsets + tp->ext_Strings);
- TRACE_OUT(("after extended capnames, nextfree=%d", nextfree));
- strmax = tp->ext_Strings + extcnt;
-@@ -742,7 +759,7 @@
-
- TRACE_OUT(("WRITE %d numbers @%d", tp->ext_Numbers, *offset));
- if (tp->ext_Numbers) {
-- convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers);
-+ convert_shorts(buf, tp->Numbers + NUMCOUNT, (size_t) tp->ext_Numbers);
- if (Write(buf, 2, tp->ext_Numbers) != tp->ext_Numbers)
- return (ERR);
- }
-Index: ncurses/trace/lib_trace.c
-Prereq: 1.76
---- ncurses-5.9/ncurses/trace/lib_trace.c 2010-12-19 01:21:19.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/lib_trace.c 2012-04-29 00:20:43.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -47,7 +47,7 @@
-
- #include <ctype.h>
-
--MODULE_ID("$Id: lib_trace.c,v 1.76 2010/12/19 01:21:19 tom Exp $")
-+MODULE_ID("$Id: lib_trace.c,v 1.81 2012/04/29 00:20:43 tom Exp $")
-
- NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
-
-@@ -103,9 +103,9 @@
- }
- TracePath[size] = '\0';
- assert(strlen(TracePath) <= size);
-- strcat(TracePath, "/trace");
-+ _nc_STRCAT(TracePath, "/trace", sizeof(TracePath));
- if (_nc_is_dir_path(TracePath)) {
-- strcat(TracePath, ".log");
-+ _nc_STRCAT(TracePath, ".log", sizeof(TracePath));
- }
- }
-
-@@ -121,7 +121,7 @@
- * end of each line. This is useful in case the program dies.
- */
- #if HAVE_SETVBUF /* ANSI */
-- (void) setvbuf(TraceFP, (char *) 0, _IOLBF, 0);
-+ (void) setvbuf(TraceFP, (char *) 0, _IOLBF, (size_t) 0);
- #elif HAVE_SETBUF /* POSIX */
- (void) setbuffer(TraceFP, (char *) 0);
- #endif
-@@ -185,9 +185,9 @@
- if ((pthread_self))
- # endif
- #ifdef __MINGW32__
-- fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self().p);
-+ fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self().p);
- #else
-- fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self());
-+ fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self());
- #endif
- #endif
- if (before || after) {
-@@ -218,7 +218,7 @@
-
- /* Trace 'bool' return-values */
- NCURSES_EXPORT(NCURSES_BOOL)
--_nc_retrace_bool(NCURSES_BOOL code)
-+_nc_retrace_bool(int code)
- {
- T((T_RETURN("%s"), code ? "TRUE" : "FALSE"));
- return code;
-@@ -226,10 +226,10 @@
-
- /* Trace 'char' return-values */
- NCURSES_EXPORT(char)
--_nc_retrace_char(char code)
-+_nc_retrace_char(int code)
- {
- T((T_RETURN("%c"), code));
-- return code;
-+ return (char) code;
- }
-
- /* Trace 'int' return-values */
-Index: ncurses/trace/lib_traceatr.c
-Prereq: 1.74
---- ncurses-5.9/ncurses/trace/lib_traceatr.c 2011-01-22 19:48:01.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/lib_traceatr.c 2012-02-22 22:40:24.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -43,10 +43,13 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_traceatr.c,v 1.74 2011/01/22 19:48:01 tom Exp $")
-+MODULE_ID("$Id: lib_traceatr.c,v 1.79 2012/02/22 22:40:24 tom Exp $")
-
- #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
-
-+#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size)
-+#define COLOR_BUF_SIZE(num) (sizeof(my_buffer[num]))
-+
- #ifdef TRACE
-
- static const char l_brace[] = StringOf(L_BRACE);
-@@ -65,9 +68,12 @@
- my_cached = c;
- my_select = !my_select;
- if (c == COLOR_DEFAULT)
-- strcpy(my_buffer[my_select], "default");
-+ _nc_STRCPY(my_buffer[my_select], "default",
-+ COLOR_BUF_SIZE(my_select));
- else
-- sprintf(my_buffer[my_select], "color%d", c);
-+ _nc_SPRINTF(my_buffer[my_select],
-+ _nc_SLIMIT(COLOR_BUF_SIZE(my_select))
-+ "color%d", c);
- }
- return my_buffer[my_select];
- }
-@@ -120,14 +126,14 @@
- ;
- size_t n;
- char temp[80];
-- char *result = _nc_trace_buf(bufnum, BUFSIZ);
-+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
-
- if (result != 0) {
- unsigned save_nc_tracing = _nc_tracing;
-
- _nc_tracing = 0;
-
-- strcpy(result, l_brace);
-+ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
-
- for (n = 0; n < SIZEOF(names); n++) {
- if ((newmode & names[n].val) != 0) {
-@@ -139,18 +145,20 @@
- short pairnum = (short) PairNumber(newmode);
- #ifdef USE_TERMLIB
- /* pair_content lives in libncurses */
-- (void) sprintf(temp, "{%d}", pairnum);
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "{%d}", pairnum);
- #else
- short fg, bg;
-
- if (pair_content(pairnum, &fg, &bg) == OK) {
-- (void) sprintf(temp,
-- "{%d = {%s, %s}}",
-- pairnum,
-- COLOR_OF(fg),
-- COLOR_OF(bg));
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "{%d = {%s, %s}}",
-+ pairnum,
-+ COLOR_OF(fg),
-+ COLOR_OF(bg));
- } else {
-- (void) sprintf(temp, "{%d}", pairnum);
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "{%d}", pairnum);
- }
- #endif
- result = _nc_trace_bufcat(bufnum, temp);
-@@ -243,7 +251,7 @@
- #if NCURSES_SP_FUNCS
- (void) sp;
- #endif
-- if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
-+ if (SP_PARM != 0 && (attr & A_ALTCHARSET) && (acs_chars != 0)) {
- char *cp;
- char *found = 0;
- const ALT_NAMES *strp;
-@@ -271,10 +279,10 @@
- _tracechtype2(int bufnum, chtype ch)
- {
- const char *found;
-- char *result = _nc_trace_buf(bufnum, BUFSIZ);
-+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
-
- if (result != 0) {
-- strcpy(result, l_brace);
-+ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
- if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
- (void) _nc_trace_bufcat(bufnum, found);
- } else
-@@ -311,12 +319,12 @@
- NCURSES_EXPORT(char *)
- _tracecchar_t2(int bufnum, const cchar_t *ch)
- {
-- char *result = _nc_trace_buf(bufnum, BUFSIZ);
-+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
- attr_t attr;
- const char *found;
-
- if (result != 0) {
-- strcpy(result, l_brace);
-+ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
- if (ch != 0) {
- attr = AttrOfD(ch);
- if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != 0) {
-Index: ncurses/trace/lib_tracebits.c
-Prereq: 1.19
---- ncurses-5.9/ncurses/trace/lib_tracebits.c 2011-01-09 00:23:03.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/lib_tracebits.c 2012-06-09 19:55:46.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,11 +34,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_tracebits.c,v 1.19 2011/01/09 00:23:03 tom Exp $")
--
--#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
--#define _POSIX_SOURCE
--#endif
-+MODULE_ID("$Id: lib_tracebits.c,v 1.23 2012/06/09 19:55:46 tom Exp $")
-
- #if HAVE_SYS_TERMIO_H
- #include <sys/termio.h> /* needed for ISC */
-@@ -80,22 +76,24 @@
- const char *name;
- } BITNAMES;
-
-+#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size)
-+
- static void
- lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val)
- {
- const BITNAMES *sp;
-
-- (void) strcat(buf, label);
-- (void) strcat(buf, ": {");
-+ _nc_STRCAT(buf, label, TRACE_BUF_SIZE(0));
-+ _nc_STRCAT(buf, ": {", TRACE_BUF_SIZE(0));
- for (sp = table; sp->name; sp++)
- if (sp->val != 0
- && (val & sp->val) == sp->val) {
-- (void) strcat(buf, sp->name);
-- (void) strcat(buf, ", ");
-+ _nc_STRCAT(buf, sp->name, TRACE_BUF_SIZE(0));
-+ _nc_STRCAT(buf, ", ", TRACE_BUF_SIZE(0));
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
-- (void) strcat(buf, "} ");
-+ _nc_STRCAT(buf, "} ", TRACE_BUF_SIZE(0));
- }
-
- NCURSES_EXPORT(char *)
-@@ -192,7 +190,7 @@
- CS_DATA(CS8),
- };
- const char *result = "CSIZE? ";
-- int value = (tty->c_cflag & CSIZE);
-+ int value = (int) (tty->c_cflag & CSIZE);
- unsigned n;
-
- if (value != 0) {
-@@ -203,7 +201,7 @@
- }
- }
- }
-- strcat(buf, result);
-+ _nc_STRCAT(buf, result, TRACE_BUF_SIZE(0));
- }
- #endif
-
-Index: ncurses/trace/lib_tracechr.c
-Prereq: 1.20
---- ncurses-5.9/ncurses/trace/lib_tracechr.c 2009-04-18 22:48:29.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/lib_tracechr.c 2012-02-22 22:40:24.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,10 +39,12 @@
-
- #include <ctype.h>
-
--MODULE_ID("$Id: lib_tracechr.c,v 1.20 2009/04/18 22:48:29 tom Exp $")
-+MODULE_ID("$Id: lib_tracechr.c,v 1.22 2012/02/22 22:40:24 tom Exp $")
-
- #ifdef TRACE
-
-+#define MyBufSize sizeof(_nc_globals.tracechr_buf)
-+
- NCURSES_EXPORT(char *)
- _nc_tracechar(SCREEN *sp, int ch)
- {
-@@ -55,19 +57,22 @@
- name = safe_keyname(SP_PARM, ch);
- if (name == 0 || *name == '\0')
- name = "NULL";
-- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
-+ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
-+ "'%.30s' = %#03o", name, ch);
- } else if (!is8bits(ch) || !isprint(UChar(ch))) {
- /*
- * workaround for glibc bug:
- * sprintf changes the result from unctrl() to an empty string if it
- * does not correspond to a valid multibyte sequence.
- */
-- (void) sprintf(MyBuffer, "%#03o", ch);
-+ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
-+ "%#03o", ch);
- } else {
- name = safe_unctrl(SP_PARM, (chtype) ch);
- if (name == 0 || *name == 0)
- name = "null"; /* shouldn't happen */
-- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
-+ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
-+ "'%.30s' = %#03o", name, ch);
- }
- return (MyBuffer);
- }
-Index: ncurses/trace/lib_tracedmp.c
-Prereq: 1.32
---- ncurses-5.9/ncurses/trace/lib_tracedmp.c 2009-04-18 21:01:38.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/lib_tracedmp.c 2012-10-27 20:54:42.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #include <curses.priv.h>
- #include <ctype.h>
-
--MODULE_ID("$Id: lib_tracedmp.c,v 1.32 2009/04/18 21:01:38 tom Exp $")
-+MODULE_ID("$Id: lib_tracedmp.c,v 1.34 2012/10/27 20:54:42 tom Exp $")
-
- #ifdef TRACE
-
-@@ -70,6 +70,8 @@
- if (++width + 1 > (int) my_length) {
- my_length = (unsigned) (2 * (width + 1));
- my_buffer = typeRealloc(char, my_length, my_buffer);
-+ if (my_buffer == 0)
-+ return;
- }
-
- for (n = 0; n <= win->_maxy; ++n) {
-@@ -111,7 +113,7 @@
- if (multicolumn) {
- ep = my_buffer;
- for (j = 0; j < width; ++j) {
-- chtype test = WidecExt(win->_line[n].text[j]);
-+ int test = WidecExt(win->_line[n].text[j]);
- if (test) {
- ep[j] = (char) (test + '0');
- } else {
-Index: ncurses/trace/lib_tracemse.c
-Prereq: 1.18
---- ncurses-5.9/ncurses/trace/lib_tracemse.c 2011-01-22 19:48:08.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/lib_tracemse.c 2012-12-15 23:51:19.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -38,7 +38,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_tracemse.c,v 1.18 2011/01/22 19:48:08 tom Exp $")
-+MODULE_ID("$Id: lib_tracemse.c,v 1.21 2012/12/15 23:51:19 tom Exp $")
-
- #ifdef TRACE
-
-@@ -47,7 +47,11 @@
- static char *
- _trace_mmask_t(SCREEN *sp, mmask_t code)
- {
--#define SHOW(m, s) if ((code & m) == m) strcat(strcat(my_buffer, s), ", ")
-+#define SHOW(m, s) \
-+ if ((code & m) == m) { \
-+ _nc_STRCAT(my_buffer, s, sizeof(my_buffer)); \
-+ _nc_STRCAT(my_buffer, ", ", sizeof(my_buffer)); \
-+ }
-
- SHOW(BUTTON1_RELEASED, "release-1");
- SHOW(BUTTON1_PRESSED, "press-1");
-@@ -110,23 +114,33 @@
- NCURSES_EXPORT(char *)
- _nc_tracemouse(SCREEN *sp, MEVENT const *ep)
- {
-- (void) sprintf(my_buffer, TRACEMSE_FMT,
-- ep->id,
-- ep->x,
-- ep->y,
-- ep->z,
-- (unsigned long) ep->bstate);
-+ char *result = 0;
-
-- (void) _trace_mmask_t(sp, ep->bstate);
-- (void) strcat(my_buffer, "}");
-- return (my_buffer);
-+ if (sp != 0) {
-+ _nc_SPRINTF(my_buffer, _nc_SLIMIT(sizeof(my_buffer))
-+ TRACEMSE_FMT,
-+ ep->id,
-+ ep->x,
-+ ep->y,
-+ ep->z,
-+ (unsigned long) ep->bstate);
-+
-+ (void) _trace_mmask_t(sp, ep->bstate);
-+ _nc_STRCAT(my_buffer, "}", sizeof(my_buffer));
-+ result = (my_buffer);
-+ }
-+ return result;
- }
-
- NCURSES_EXPORT(mmask_t)
- _nc_retrace_mmask_t(SCREEN *sp, mmask_t code)
- {
-- *my_buffer = '\0';
-- T((T_RETURN("{%s}"), _trace_mmask_t(sp, code)));
-+ if (sp != 0) {
-+ *my_buffer = '\0';
-+ T((T_RETURN("{%s}"), _trace_mmask_t(sp, code)));
-+ } else {
-+ T((T_RETURN("{?}")));
-+ }
- return code;
- }
-
-Index: ncurses/trace/trace_buf.c
-Prereq: 1.17
---- ncurses-5.9/ncurses/trace/trace_buf.c 2011-01-22 19:48:16.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/trace_buf.c 2012-02-22 22:34:31.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: trace_buf.c,v 1.17 2011/01/22 19:48:16 tom Exp $")
-+MODULE_ID("$Id: trace_buf.c,v 1.20 2012/02/22 22:34:31 tom Exp $")
-
- #ifdef TRACE
-
-@@ -103,13 +103,14 @@
- NCURSES_EXPORT(char *)
- _nc_trace_bufcat(int bufnum, const char *value)
- {
-- char *buffer = _nc_trace_alloc(bufnum, 0);
-+ char *buffer = _nc_trace_alloc(bufnum, (size_t) 0);
- if (buffer != 0) {
- size_t have = strlen(buffer);
-+ size_t need = strlen(value) + have;
-
-- buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value));
-+ buffer = _nc_trace_alloc(bufnum, 1 + need);
- if (buffer != 0)
-- (void) strcpy(buffer + have, value);
-+ _nc_STRCPY(buffer + have, value, need);
-
- }
- return buffer;
-Index: ncurses/trace/trace_tries.c
-Prereq: 1.16
---- ncurses-5.9/ncurses/trace/trace_tries.c 2011-01-09 00:23:27.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/trace_tries.c 2012-10-27 20:50:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1999-2009,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1999-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: trace_tries.c,v 1.16 2011/01/09 00:23:27 tom Exp $")
-+MODULE_ID("$Id: trace_tries.c,v 1.17 2012/10/27 20:50:50 tom Exp $")
-
- #ifdef TRACE
- #define my_buffer _nc_globals.tracetry_buf
-@@ -49,28 +49,31 @@
- my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length);
- }
-
-- while (tree != 0) {
-- if ((my_buffer[level] = tree->ch) == 0)
-- my_buffer[level] = 128;
-- my_buffer[level + 1] = 0;
-- if (tree->value != 0) {
-- _tracef("%5d: %s (%s)", tree->value,
-- _nc_visbuf((char *) my_buffer), keyname(tree->value));
-+ if (my_buffer != 0) {
-+ while (tree != 0) {
-+ if ((my_buffer[level] = tree->ch) == 0)
-+ my_buffer[level] = 128;
-+ my_buffer[level + 1] = 0;
-+ if (tree->value != 0) {
-+ _tracef("%5d: %s (%s)", tree->value,
-+ _nc_visbuf((char *) my_buffer), keyname(tree->value));
-+ }
-+ if (tree->child)
-+ recur_tries(tree->child, level + 1);
-+ tree = tree->sibling;
- }
-- if (tree->child)
-- recur_tries(tree->child, level + 1);
-- tree = tree->sibling;
- }
- }
-
- NCURSES_EXPORT(void)
- _nc_trace_tries(TRIES * tree)
- {
-- my_buffer = typeMalloc(unsigned char, my_length = 80);
-- _tracef("BEGIN tries %p", (void *) tree);
-- recur_tries(tree, 0);
-- _tracef(". . . tries %p", (void *) tree);
-- free(my_buffer);
-+ if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != 0) {
-+ _tracef("BEGIN tries %p", (void *) tree);
-+ recur_tries(tree, 0);
-+ _tracef(". . . tries %p", (void *) tree);
-+ free(my_buffer);
-+ }
- }
-
- #else
-Index: ncurses/trace/varargs.c
-Prereq: 1.8
---- ncurses-5.9/ncurses/trace/varargs.c 2008-11-16 00:19:59.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/varargs.c 2012-10-27 21:03:28.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2001-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 2001-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
-
- #include <ctype.h>
-
--MODULE_ID("$Id: varargs.c,v 1.8 2008/11/16 00:19:59 juergen Exp $")
-+MODULE_ID("$Id: varargs.c,v 1.11 2012/10/27 21:03:28 tom Exp $")
-
- #ifdef TRACE
-
-@@ -149,25 +149,32 @@
- param = buffer;
- switch (used) {
- case atInteger:
-- sprintf(buffer, "%d", ival);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%d", ival);
- break;
- case atFloat:
-- sprintf(buffer, "%f", fval);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%f", fval);
- break;
- case atPoint:
-- sprintf(buffer, "%p", pval);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%p", pval);
- break;
- case atString:
- param = _nc_visbuf2(1, sval);
- break;
- case atUnknown:
- default:
-- strcpy(buffer, "?");
-+ _nc_STRCPY(buffer, "?", sizeof(buffer));
- break;
- }
- MyLength += strlen(param) + 2;
- MyBuffer = typeRealloc(char, MyLength, MyBuffer);
-- sprintf(MyBuffer + strlen(MyBuffer), ", %s", param);
-+ if (MyBuffer != 0) {
-+ _nc_SPRINTF(MyBuffer + strlen(MyBuffer),
-+ _nc_SLIMIT(MyLength - strlen(MyBuffer))
-+ ", %s", param);
-+ }
- }
- }
- used = atUnknown;
-@@ -177,7 +184,7 @@
- }
- }
-
-- return (MyBuffer);
-+ return (MyBuffer ? MyBuffer : dummy);
- }
- #else
- EMPTY_MODULE(_nc_varargs)
-Index: ncurses/trace/visbuf.c
-Prereq: 1.37
---- ncurses-5.9/ncurses/trace/visbuf.c 2010-05-29 18:51:41.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/trace/visbuf.c 2012-10-27 20:58:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
- #include <tic.h>
- #include <ctype.h>
-
--MODULE_ID("$Id: visbuf.c,v 1.37 2010/05/29 18:51:41 tom Exp $")
-+MODULE_ID("$Id: visbuf.c,v 1.42 2012/10/27 20:58:50 tom Exp $")
-
- #define NUM_VISBUFS 4
-
-@@ -55,8 +55,16 @@
- static const char r_brace[] = StringOf(R_BRACE);
- #endif
-
-+#if USE_STRING_HACKS && HAVE_SNPRINTF
-+#define VisChar(tp, chr, limit) _nc_vischar(tp, chr, limit)
-+#define LIMIT_ARG ,size_t limit
-+#else
-+#define VisChar(tp, chr, limit) _nc_vischar(tp, chr)
-+#define LIMIT_ARG /* nothing */
-+#endif
-+
- static char *
--_nc_vischar(char *tp, unsigned c)
-+_nc_vischar(char *tp, unsigned c LIMIT_ARG)
- {
- if (c == '"' || c == '\\') {
- *tp++ = '\\';
-@@ -84,7 +92,8 @@
- *tp++ = '^';
- *tp++ = (char) ('@' + c);
- } else {
-- sprintf(tp, "\\%03lo", (unsigned long) ChCharOf(c));
-+ _nc_SPRINTF(tp, _nc_SLIMIT(limit)
-+ "\\%03lo", (unsigned long) ChCharOf(c));
- tp += strlen(tp);
- }
- *tp = 0;
-@@ -97,6 +106,7 @@
- const char *vbuf = 0;
- char *tp;
- int c;
-+ int count;
-
- if (buf == 0)
- return ("(null)");
-@@ -106,6 +116,7 @@
- if (len < 0)
- len = (int) strlen(buf);
-
-+ count = len;
- #ifdef TRACE
- vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len));
- #else
-@@ -124,8 +135,8 @@
- #endif
- if (tp != 0) {
- *tp++ = D_QUOTE;
-- while ((--len >= 0) && (c = *buf++) != '\0') {
-- tp = _nc_vischar(tp, UChar(c));
-+ while ((--count >= 0) && (c = *buf++) != '\0') {
-+ tp = VisChar(tp, UChar(c), NormalLen(len));
- }
- *tp++ = D_QUOTE;
- *tp = '\0';
-@@ -175,6 +186,7 @@
- const char *vbuf;
- char *tp;
- wchar_t c;
-+ int count;
-
- if (buf == 0)
- return ("(null)");
-@@ -182,6 +194,7 @@
- if (len < 0)
- len = (int) wcslen(buf);
-
-+ count = len;
- #ifdef TRACE
- vbuf = tp = _nc_trace_buf(bufnum, WideLen(len));
- #else
-@@ -193,15 +206,16 @@
- #endif
- if (tp != 0) {
- *tp++ = D_QUOTE;
-- while ((--len >= 0) && (c = *buf++) != '\0') {
-+ while ((--count >= 0) && (c = *buf++) != '\0') {
- char temp[CCHARW_MAX + 80];
- int j = wctomb(temp, c), k;
- if (j <= 0) {
-- sprintf(temp, "\\u%08X", (unsigned) c);
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
-+ "\\u%08X", (unsigned) c);
- j = (int) strlen(temp);
- }
- for (k = 0; k < j; ++k) {
-- tp = _nc_vischar(tp, UChar(temp[k]));
-+ tp = VisChar(tp, UChar(temp[k]), WideLen(len));
- }
- }
- *tp++ = D_QUOTE;
-@@ -248,10 +262,12 @@
- else
- mybuf = typeMalloc(wchar_t, mylen);
- }
-- for (n = 0; buf[n] != 0; ++n) {
-- mybuf[n] = (wchar_t) buf[n];
-+ if (mybuf != 0) {
-+ for (n = 0; buf[n] != 0; ++n) {
-+ mybuf[n] = (wchar_t) buf[n];
-+ }
-+ mybuf[n] = L'\0';
- }
-- mybuf[n] = L'\0';
-
- return _nc_viswbuf2(0, mybuf);
- }
-@@ -261,7 +277,7 @@
- NCURSES_EXPORT(const char *)
- _nc_viscbuf2(int bufnum, const NCURSES_CH_T * buf, int len)
- {
-- char *result = _nc_trace_buf(bufnum, BUFSIZ);
-+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
- int first;
- const char *found;
-
-@@ -315,7 +331,7 @@
- break;
- for (k = 0; k < PUTC_n; k++) {
- char temp[80];
-- _nc_vischar(temp, UChar(PUTC_buf[k]));
-+ VisChar(temp, UChar(PUTC_buf[k]), sizeof(temp));
- (void) _nc_trace_bufcat(bufnum, temp);
- }
- }
-@@ -323,8 +339,8 @@
- #else
- {
- char temp[80];
-- _nc_vischar(temp, UChar(buf[j]));
-- result = _nc_trace_bufcat(bufnum, temp);
-+ VisChar(temp, UChar(buf[j]), sizeof(temp));
-+ (void) _nc_trace_bufcat(bufnum, temp);
- }
- #endif /* USE_WIDEC_SUPPORT */
- }
-Index: ncurses/tty/hardscroll.c
-Prereq: 1.47
---- ncurses-5.9/ncurses/tty/hardscroll.c 2010-04-24 23:46:47.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/hardscroll.c 2012-10-17 09:01:10.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -147,7 +147,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: hardscroll.c,v 1.47 2010/04/24 23:46:47 tom Exp $")
-+MODULE_ID("$Id: hardscroll.c,v 1.51 2012/10/17 09:01:10 tom Exp $")
-
- #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
-
-@@ -173,9 +173,9 @@
- # if USE_HASHMAP
- # define oldnums(sp) (sp)->_oldnum_list
- # define OLDNUM(sp,n) oldnums(sp)[n]
--# else /* !USE_HASHMAP */
-+# else /* !USE_HASHMAP */
- # define OLDNUM(sp,n) NewScreen(sp)->_line[n].oldindex
--# endif /* !USE_HASHMAP */
-+# endif /* !USE_HASHMAP */
-
- #define OLDNUM_SIZE(sp) (sp)->_oldnum_size
-
-@@ -193,14 +193,20 @@
- #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
- #if USE_HASHMAP
- /* get enough storage */
-- if (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) {
-+ assert(OLDNUM_SIZE(SP_PARM) >= 0);
-+ assert(screen_lines(SP_PARM) > 0);
-+ if ((oldnums(SP_PARM) == 0)
-+ || (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))) {
-+ int need_lines = ((OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))
-+ ? screen_lines(SP_PARM)
-+ : OLDNUM_SIZE(SP_PARM));
- int *new_oldnums = typeRealloc(int,
-- (size_t) screen_lines(SP_PARM),
-+ (size_t) need_lines,
- oldnums(SP_PARM));
- if (!new_oldnums)
- return;
- oldnums(SP_PARM) = new_oldnums;
-- OLDNUM_SIZE(SP_PARM) = screen_lines(SP_PARM);
-+ OLDNUM_SIZE(SP_PARM) = need_lines;
- }
- /* calculate the indices */
- NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_ARG);
-@@ -302,7 +308,9 @@
-
- *buf = '\0';
- for (n = 0; n < screen_lines(SP_PARM); n++)
-- (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(SP_PARM, n));
-+ _nc_SPRINTF(buf + strlen(buf),
-+ _nc_SLIMIT(want - strlen(buf))
-+ " %02d", OLDNUM(SP_PARM, n));
- TR(TRACE_UPDATE | TRACE_MOVE, ("virt %s", buf));
- free(buf);
- }
-Index: ncurses/tty/hashmap.c
-Prereq: 1.62
---- ncurses-5.9/ncurses/tty/hashmap.c 2010-04-24 23:46:07.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/hashmap.c 2011-10-22 16:34:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -73,7 +73,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: hashmap.c,v 1.62 2010/04/24 23:46:07 tom Exp $")
-+MODULE_ID("$Id: hashmap.c,v 1.63 2011/10/22 16:34:50 tom Exp $")
-
- #ifdef HASHDEBUG
-
-@@ -163,7 +163,7 @@
- * effective. 'blank' indicates whether the line 'to' would become blank.
- */
- static NCURSES_INLINE bool
--cost_effective(SCREEN *sp, const int from, const int to, const bool blank)
-+cost_effective(SCREEN *sp, const int from, const int to, const int blank)
- {
- int new_from;
-
-Index: ncurses/tty/lib_mvcur.c
-Prereq: 1.126
---- ncurses-5.9/ncurses/tty/lib_mvcur.c 2011-01-22 19:48:21.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/lib_mvcur.c 2013-01-27 01:40:01.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -159,7 +159,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_mvcur.c,v 1.126 2011/01/22 19:48:21 tom Exp $")
-+MODULE_ID("$Id: lib_mvcur.c,v 1.132 2013/01/27 01:40:01 tom Exp $")
-
- #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */
-
-@@ -176,6 +176,9 @@
- static float diff;
- #endif /* MAIN */
-
-+#undef NCURSES_OUTC_FUNC
-+#define NCURSES_OUTC_FUNC myOutCh
-+
- #define OPT_SIZE 512
-
- static int normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt);
-@@ -274,10 +277,9 @@
- /* Set the scroll-region to a known state (the default) */
- {
- if (change_scroll_region) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "change_scroll_region",
-- TPARM_2(change_scroll_region,
-- 0, screen_lines(SP_PARM) - 1));
-+ NCURSES_PUTP2("change_scroll_region",
-+ TPARM_2(change_scroll_region,
-+ 0, screen_lines(SP_PARM) - 1));
- }
- }
-
-@@ -285,14 +287,12 @@
- NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_DCL0)
- /* what to do at initialization time and after each shellout */
- {
-- if (SP_PARM && !IsTermInfo(SP_PARM))
-+ if (!SP_PARM || !IsTermInfo(SP_PARM))
- return;
-
- /* initialize screen for cursor access */
- if (enter_ca_mode) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "enter_ca_mode",
-- enter_ca_mode);
-+ NCURSES_PUTP2("enter_ca_mode", enter_ca_mode);
- }
-
- /*
-@@ -327,13 +327,14 @@
- NCURSES_SP_NAME(_nc_mvcur_init) (NCURSES_SP_DCL0)
- /* initialize the cost structure */
- {
-- if (SP_PARM->_ofp && isatty(fileno(SP_PARM->_ofp)))
-+ if (SP_PARM->_ofp && isatty(fileno(SP_PARM->_ofp))) {
- SP_PARM->_char_padding = ((BAUDBYTE * 1000 * 10)
- / (BAUDRATE(SP_PARM) > 0
- ? BAUDRATE(SP_PARM)
- : 9600));
-- else
-+ } else {
- SP_PARM->_char_padding = 1; /* must be nonzero */
-+ }
- if (SP_PARM->_char_padding <= 0)
- SP_PARM->_char_padding = 1; /* must be nonzero */
- TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP_PARM->_char_padding));
-@@ -481,9 +482,7 @@
- }
-
- if (exit_ca_mode) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "exit_ca_mode",
-- exit_ca_mode);
-+ NCURSES_PUTP2("exit_ca_mode", exit_ca_mode);
- }
- /*
- * Reset terminal's tab counter. There's a long-time bug that
-@@ -549,7 +548,7 @@
- int from_x,
- int to_y,
- int to_x,
-- bool ovw)
-+ int ovw)
- /* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */
- {
- string_desc save;
-@@ -770,7 +769,10 @@
- */
-
- static NCURSES_INLINE int
--onscreen_mvcur(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew, bool ovw)
-+onscreen_mvcur(NCURSES_SP_DCLx
-+ int yold, int xold,
-+ int ynew, int xnew, int ovw,
-+ NCURSES_SP_OUTC myOutCh)
- /* onscreen move from (yold, xold) to (ynew, xnew) */
- {
- string_desc result;
-@@ -935,7 +937,7 @@
- if (usecost != INFINITY) {
- TPUTS_TRACE("mvcur");
- NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
-- buffer, 1, NCURSES_SP_NAME(_nc_outch));
-+ buffer, 1, myOutCh);
- SP_PARM->_cursrow = ynew;
- SP_PARM->_curscol = xnew;
- return (OK);
-@@ -943,9 +945,14 @@
- return (ERR);
- }
-
--NCURSES_EXPORT(int)
--TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew)
--/* optimized cursor move from (yold, xold) to (ynew, xnew) */
-+/*
-+ * optimized cursor move from (yold, xold) to (ynew, xnew)
-+ */
-+static int
-+_nc_real_mvcur(NCURSES_SP_DCLx
-+ int yold, int xold,
-+ int ynew, int xnew,
-+ NCURSES_SP_OUTC myOutCh)
- {
- NCURSES_CH_T oldattr;
- int code;
-@@ -994,20 +1001,16 @@
-
- if (l > 0) {
- if (carriage_return) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "carriage_return",
-- carriage_return);
-+ NCURSES_PUTP2("carriage_return", carriage_return);
- } else
-- NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\r');
-+ myOutCh(NCURSES_SP_ARGx '\r');
- xold = 0;
-
- while (l > 0) {
- if (newline) {
-- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
-- "newline",
-- newline);
-+ NCURSES_PUTP2("newline", newline);
- } else
-- NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\n');
-+ myOutCh(NCURSES_SP_ARGx '\n');
- l--;
- }
- }
-@@ -1027,7 +1030,7 @@
- ynew = screen_lines(SP_PARM) - 1;
-
- /* destination location is on screen now */
-- code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, TRUE);
-+ code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, TRUE, myOutCh);
-
- /*
- * Restore attributes if we disabled them before moving.
-@@ -1042,13 +1045,63 @@
- returnCode(code);
- }
-
--#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER)
-+/*
-+ * These entrypoints are used within the library.
-+ */
-+NCURSES_EXPORT(int)
-+NCURSES_SP_NAME(_nc_mvcur) (NCURSES_SP_DCLx
-+ int yold, int xold,
-+ int ynew, int xnew)
-+{
-+ return _nc_real_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew,
-+ NCURSES_SP_NAME(_nc_outch));
-+}
-+
-+#if NCURSES_SP_FUNCS
-+NCURSES_EXPORT(int)
-+_nc_mvcur(int yold, int xold,
-+ int ynew, int xnew)
-+{
-+ return NCURSES_SP_NAME(_nc_mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew);
-+}
-+#endif
-+
-+#if defined(USE_TERM_DRIVER)
-+/*
-+ * The terminal driver does not support the external "mvcur()".
-+ */
-+NCURSES_EXPORT(int)
-+TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew)
-+{
-+ return _nc_real_mvcur(NCURSES_SP_ARGx
-+ yold, xold,
-+ ynew, xnew,
-+ NCURSES_SP_NAME(_nc_outch));
-+}
-+
-+#else /* !USE_TERM_DRIVER */
-+
-+/*
-+ * These entrypoints support users of the library.
-+ */
-+NCURSES_EXPORT(int)
-+NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx int yold, int xold, int ynew,
-+ int xnew)
-+{
-+ return _nc_real_mvcur(NCURSES_SP_ARGx
-+ yold, xold,
-+ ynew, xnew,
-+ NCURSES_SP_NAME(_nc_putchar));
-+}
-+
-+#if NCURSES_SP_FUNCS
- NCURSES_EXPORT(int)
- mvcur(int yold, int xold, int ynew, int xnew)
- {
- return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew);
- }
- #endif
-+#endif /* USE_TERM_DRIVER */
-
- #if defined(TRACE) || defined(NCURSES_TEST)
- NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
-Index: ncurses/tty/lib_tstp.c
-Prereq: 1.41
---- ncurses-5.9/ncurses/tty/lib_tstp.c 2010-05-15 21:31:12.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/lib_tstp.c 2013-04-27 19:50:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,11 +42,7 @@
-
- #include <SigAction.h>
-
--#if SVR4_ACTION && !defined(_POSIX_SOURCE)
--#define _POSIX_SOURCE
--#endif
--
--MODULE_ID("$Id: lib_tstp.c,v 1.41 2010/05/15 21:31:12 tom Exp $")
-+MODULE_ID("$Id: lib_tstp.c,v 1.47 2013/04/27 19:50:17 tom Exp $")
-
- #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
- #define USE_SIGTSTP 1
-@@ -138,7 +134,7 @@
-
- #if USE_SIGTSTP
- static void
--tstp(int dummy GCC_UNUSED)
-+handle_SIGTSTP(int dummy GCC_UNUSED)
- {
- SCREEN *sp = CURRENT_SCREEN;
- sigset_t mask, omask;
-@@ -148,7 +144,8 @@
- int sigttou_blocked;
- #endif
-
-- T(("tstp() called"));
-+ _nc_globals.have_sigtstp = 1;
-+ T(("handle_SIGTSTP() called"));
-
- /*
- * The user may have changed the prog_mode tty bits, so save them.
-@@ -239,21 +236,24 @@
- #endif /* USE_SIGTSTP */
-
- static void
--cleanup(int sig)
-+handle_SIGINT(int sig)
- {
- SCREEN *sp = CURRENT_SCREEN;
-
- /*
-- * Actually, doing any sort of I/O from within an signal handler is
-- * "unsafe". But we'll _try_ to clean up the screen and terminal
-- * settings on the way out.
-+ * Much of this is unsafe from a signal handler. But we'll _try_ to clean
-+ * up the screen and terminal settings on the way out.
-+ *
-+ * There are at least the following problems:
-+ * 1) Walking the SCREEN list is unsafe, since all list management
-+ * is done without any signal blocking.
-+ * 2) On systems which have REENTRANT turned on, set_term() uses
-+ * _nc_lock_global() which could deadlock or misbehave in other ways.
-+ * 3) endwin() calls all sorts of stuff, many of which use stdio or
-+ * other library functions which are clearly unsafe.
- */
- if (!_nc_globals.cleanup_nested++
-- && (sig == SIGINT
--#ifdef SIGQUIT
-- || sig == SIGQUIT
--#endif
-- )) {
-+ && (sig == SIGINT || sig == SIGTERM)) {
- #if HAVE_SIGACTION || HAVE_SIGVEC
- sigaction_t act;
- sigemptyset(&act.sa_mask);
-@@ -268,22 +268,21 @@
- for (each_screen(scan)) {
- if (scan->_ofp != 0
- && isatty(fileno(scan->_ofp))) {
-- scan->_cleanup = TRUE;
- scan->_outch = NCURSES_SP_NAME(_nc_outch);
- }
- set_term(scan);
- NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG);
- if (sp)
-- sp->_endwin = FALSE; /* in case we have an atexit! */
-+ sp->_endwin = FALSE; /* in case of reuse */
- }
- }
- }
-- exit(EXIT_FAILURE);
-+ _exit(EXIT_FAILURE);
- }
-
- #if USE_SIGWINCH
- static void
--sigwinch(int sig GCC_UNUSED)
-+handle_SIGWINCH(int sig GCC_UNUSED)
- {
- _nc_globals.have_sigwinch = 1;
- # if USE_PTHREADS_EINTR
-@@ -301,7 +300,7 @@
- * handler.
- */
- static int
--CatchIfDefault(int sig, RETSIGTYPE (*handler) (int))
-+CatchIfDefault(int sig, void (*handler) (int))
- {
- int result;
- #if HAVE_SIGACTION || HAVE_SIGVEC
-@@ -331,7 +330,7 @@
- result = FALSE;
- }
- #else /* !HAVE_SIGACTION */
-- RETSIGTYPE (*ohandler) (int);
-+ void (*ohandler) (int);
-
- ohandler = signal(sig, SIG_IGN);
- if (ohandler == SIG_DFL
-@@ -364,7 +363,7 @@
- * the caller later changes its mind, but that doesn't seem correct.
- */
- NCURSES_EXPORT(void)
--_nc_signal_handler(bool enable)
-+_nc_signal_handler(int enable)
- {
- T((T_CALLED("_nc_signal_handler(%d)"), enable));
- #if USE_SIGTSTP /* Xenix 2.x doesn't have SIGTSTP, for example */
-@@ -385,7 +384,7 @@
- #ifdef SA_RESTART
- new_sigaction.sa_flags |= SA_RESTART;
- #endif /* SA_RESTART */
-- new_sigaction.sa_handler = tstp;
-+ new_sigaction.sa_handler = handle_SIGTSTP;
- (void) sigaction(SIGTSTP, &new_sigaction, NULL);
- } else {
- ignore_tstp = TRUE;
-@@ -396,10 +395,10 @@
-
- if (!_nc_globals.init_signals) {
- if (enable) {
-- CatchIfDefault(SIGINT, cleanup);
-- CatchIfDefault(SIGTERM, cleanup);
-+ CatchIfDefault(SIGINT, handle_SIGINT);
-+ CatchIfDefault(SIGTERM, handle_SIGINT);
- #if USE_SIGWINCH
-- CatchIfDefault(SIGWINCH, sigwinch);
-+ CatchIfDefault(SIGWINCH, handle_SIGWINCH);
- #endif
- _nc_globals.init_signals = TRUE;
- }
-Index: ncurses/tty/lib_twait.c
-Prereq: 1.61
---- ncurses-5.9/ncurses/tty/lib_twait.c 2010-12-25 23:43:58.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/lib_twait.c 2013-02-18 09:22:27.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -53,6 +53,11 @@
- #include <OS.h>
- #endif
-
-+#if USE_KLIBC_KBD
-+#define INCL_KBD
-+#include <os2.h>
-+#endif
-+
- #if USE_FUNC_POLL
- # if HAVE_SYS_TIME_H
- # include <sys/time.h>
-@@ -70,10 +75,10 @@
- #endif
- #undef CUR
-
--MODULE_ID("$Id: lib_twait.c,v 1.61 2010/12/25 23:43:58 tom Exp $")
-+MODULE_ID("$Id: lib_twait.c,v 1.67 2013/02/18 09:22:27 tom Exp $")
-
- static long
--_nc_gettime(TimeType * t0, bool first)
-+_nc_gettime(TimeType * t0, int first)
- {
- long res;
-
-@@ -184,6 +189,12 @@
- fd_set set;
- #endif
-
-+#if USE_KLIBC_KBD
-+ fd_set saved_set;
-+ KBDKEYINFO ki;
-+ struct timeval tv;
-+#endif
-+
- long starttime, returntime;
-
- TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d",
-@@ -207,6 +218,7 @@
- starttime = _nc_gettime(&t0, TRUE);
-
- count = 0;
-+ (void) count;
-
- #ifdef NCURSES_WGETCH_EVENTS
- if ((mode & TW_EVENT) && evl)
-@@ -217,8 +229,11 @@
- memset(fd_list, 0, sizeof(fd_list));
-
- #ifdef NCURSES_WGETCH_EVENTS
-- if ((mode & TW_EVENT) && evl)
-+ if ((mode & TW_EVENT) && evl) {
- fds = typeMalloc(struct pollfd, MIN_FDS + evl->count);
-+ if (fds == 0)
-+ return TW_NONE;
-+ }
- #endif
-
- if (mode & TW_INPUT) {
-@@ -247,7 +262,7 @@
- }
- #endif
-
-- result = poll(fds, (unsigned) count, milliseconds);
-+ result = poll(fds, (size_t) count, milliseconds);
-
- #ifdef NCURSES_WGETCH_EVENTS
- if ((mode & TW_EVENT) && evl) {
-@@ -274,10 +289,6 @@
- }
- }
- }
--
-- if (fds != fd_list)
-- free((char *) fds);
--
- #endif
-
- #elif defined(__BEOS__)
-@@ -329,10 +340,12 @@
- */
- FD_ZERO(&set);
-
-+#if !USE_KLIBC_KBD
- if (mode & TW_INPUT) {
- FD_SET(sp->_ifd, &set);
- count = sp->_ifd + 1;
- }
-+#endif
- if ((mode & TW_MOUSE)
- && (fd = sp->_mouse_fd) >= 0) {
- FD_SET(fd, &set);
-@@ -352,6 +365,31 @@
- }
- #endif
-
-+#if USE_KLIBC_KBD
-+ for (saved_set = set;; set = saved_set) {
-+ if ((mode & TW_INPUT)
-+ && (sp->_extended_key
-+ || (KbdPeek(&ki, 0) == 0
-+ && (ki.fbStatus & KBDTRF_FINAL_CHAR_IN)))) {
-+ FD_ZERO(&set);
-+ FD_SET(sp->_ifd, &set);
-+ result = 1;
-+ break;
-+ }
-+
-+ tv.tv_sec = 0;
-+ tv.tv_usec = (milliseconds == 0) ? 0 : (10 * 1000);
-+
-+ if ((result = select(count, &set, NULL, NULL, &tv)) != 0)
-+ break;
-+
-+ /* Time out ? */
-+ if (milliseconds >= 0 && _nc_gettime(&t0, FALSE) >= milliseconds) {
-+ result = 0;
-+ break;
-+ }
-+ }
-+#else
- if (milliseconds >= 0) {
- struct timeval ntimeout;
- ntimeout.tv_sec = milliseconds / 1000;
-@@ -360,6 +398,7 @@
- } else {
- result = select(count, &set, NULL, NULL, NULL);
- }
-+#endif
-
- #ifdef NCURSES_WGETCH_EVENTS
- if ((mode & TW_EVENT) && evl) {
-@@ -462,5 +501,12 @@
- result |= TW_EVENT;
- #endif
-
-+#if USE_FUNC_POLL
-+#ifdef NCURSES_WGETCH_EVENTS
-+ if (fds != fd_list)
-+ free((char *) fds);
-+#endif
-+#endif
-+
- return (result);
- }
-Index: ncurses/tty/lib_vidattr.c
-Prereq: 1.61
---- ncurses-5.9/ncurses/tty/lib_vidattr.c 2010-06-05 22:22:04.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/lib_vidattr.c 2013-01-12 18:00:54.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -69,7 +69,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_vidattr.c,v 1.61 2010/06/05 22:22:04 tom Exp $")
-+MODULE_ID("$Id: lib_vidattr.c,v 1.63 2013/01/12 18:00:54 tom Exp $")
-
- #define doPut(mode) \
- TPUTS_TRACE(#mode); \
-@@ -324,7 +324,7 @@
- T((T_CALLED("vidattr(%p,%s)"), (void *) SP_PARM, _traceattr(newmode)));
- returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx
- newmode,
-- NCURSES_SP_NAME(_nc_outch)));
-+ NCURSES_SP_NAME(_nc_putchar)));
- }
-
- #if NCURSES_SP_FUNCS
-@@ -341,42 +341,44 @@
- chtype attrs = A_NORMAL;
-
- T((T_CALLED("termattrs(%p)"), (void *) SP_PARM));
-+
-+ if (HasTerminal(SP_PARM)) {
- #ifdef USE_TERM_DRIVER
-- if (HasTerminal(SP_PARM))
- attrs = CallDriver(SP_PARM, conattr);
- #else
-
-- if (enter_alt_charset_mode)
-- attrs |= A_ALTCHARSET;
-+ if (enter_alt_charset_mode)
-+ attrs |= A_ALTCHARSET;
-
-- if (enter_blink_mode)
-- attrs |= A_BLINK;
-+ if (enter_blink_mode)
-+ attrs |= A_BLINK;
-
-- if (enter_bold_mode)
-- attrs |= A_BOLD;
-+ if (enter_bold_mode)
-+ attrs |= A_BOLD;
-
-- if (enter_dim_mode)
-- attrs |= A_DIM;
-+ if (enter_dim_mode)
-+ attrs |= A_DIM;
-
-- if (enter_reverse_mode)
-- attrs |= A_REVERSE;
-+ if (enter_reverse_mode)
-+ attrs |= A_REVERSE;
-
-- if (enter_standout_mode)
-- attrs |= A_STANDOUT;
-+ if (enter_standout_mode)
-+ attrs |= A_STANDOUT;
-
-- if (enter_protected_mode)
-- attrs |= A_PROTECT;
-+ if (enter_protected_mode)
-+ attrs |= A_PROTECT;
-
-- if (enter_secure_mode)
-- attrs |= A_INVIS;
-+ if (enter_secure_mode)
-+ attrs |= A_INVIS;
-
-- if (enter_underline_mode)
-- attrs |= A_UNDERLINE;
-+ if (enter_underline_mode)
-+ attrs |= A_UNDERLINE;
-
-- if (SP_PARM->_coloron)
-- attrs |= A_COLOR;
-+ if (SP_PARM->_coloron)
-+ attrs |= A_COLOR;
-
- #endif
-+ }
- returnChtype(attrs);
- }
-
-Index: ncurses/tty/tty_update.c
-Prereq: 1.264
---- ncurses-5.9/ncurses/tty/tty_update.c 2010-12-19 01:21:02.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/tty/tty_update.c 2013-02-16 21:12:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -82,7 +82,7 @@
-
- #include <ctype.h>
-
--MODULE_ID("$Id: tty_update.c,v 1.264 2010/12/19 01:21:02 tom Exp $")
-+MODULE_ID("$Id: tty_update.c,v 1.276 2013/02/16 21:12:02 tom Exp $")
-
- /*
- * This define controls the line-breakout optimization. Every once in a
-@@ -145,8 +145,7 @@
-
- NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
- memset(buf, '\0', sizeof(buf));
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx "\033[6n"); /* only works on ANSI-compatibles */
-- NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
-+ NCURSES_PUTP2_FLUSH("cpr", "\033[6n"); /* only works on ANSI-compatibles */
- *(s = buf) = 0;
- do {
- int ask = sizeof(buf) - 1 - (s - buf);
-@@ -209,7 +208,9 @@
- {
- int chlen = 1;
- NCURSES_CH_T my_ch;
-+#if USE_WIDEC_SUPPORT
- PUTC_DATA;
-+#endif
- NCURSES_CH_T tilde;
- NCURSES_CH_T attr = CHDEREF(ch);
-
-@@ -276,6 +277,11 @@
- && SP_PARM->_screen_acs_map[CharOf(my_ch)]) {
- RemAttr(attr, A_ALTCHARSET);
- my_ch = _nc_wacs[CharOf(my_ch)];
-+ } else if (SP_PARM->_screen_unicode
-+ && !SP_PARM->_screen_acs_map[CharOf(my_ch)]
-+ && _nc_wacs[CharOf(my_ch)].chars[0]) {
-+ RemAttr(attr, A_ALTCHARSET);
-+ my_ch = _nc_wacs[CharOf(my_ch)];
- }
- #endif
- /*
-@@ -288,13 +294,12 @@
- int j = CharOfD(ch);
- chtype temp = UChar(SP_PARM->_acs_map[j]);
-
-- if (!(SP_PARM->_screen_acs_map[j])) {
-+ if (temp != 0) {
-+ SetChar(my_ch, temp, AttrOf(attr));
-+ } else {
-+ my_ch = CHDEREF(ch);
- RemAttr(attr, A_ALTCHARSET);
-- if (temp == 0)
-- temp = ' ';
- }
-- if (temp != 0)
-- SetChar(my_ch, temp, AttrOf(attr));
- }
- ch = CHREF(my_ch);
- }
-@@ -304,22 +309,13 @@
- }
-
- UpdateAttrs(SP_PARM, attr);
-+ PUTC(CHDEREF(ch));
- #if !USE_WIDEC_SUPPORT
-- /* FIXME - we do this special case for signal handling, should see how to
-- * make it work for wide characters.
-- */
-- if (SP_PARM->_outch != 0) {
-- SP_PARM->_outch(NCURSES_SP_ARGx UChar(ch));
-- } else
-+ COUNT_OUTCHARS(1);
- #endif
-- {
-- PUTC(CHDEREF(ch), SP_PARM->_ofp); /* macro's fastest... */
-- COUNT_OUTCHARS(1);
-- }
- SP_PARM->_curscol += chlen;
- if (char_padding) {
-- TPUTS_TRACE("char_padding");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx char_padding);
-+ NCURSES_PUTP2("char_padding", char_padding);
- }
- }
-
-@@ -342,7 +338,7 @@
- struct pollfd fds[1];
- fds[0].fd = SP_PARM->_checkfd;
- fds[0].events = POLLIN;
-- if (poll(fds, 1, 0) > 0) {
-+ if (poll(fds, (size_t) 1, 0) > 0) {
- have_pending = TRUE;
- }
- #elif defined(__BEOS__)
-@@ -390,8 +386,7 @@
- PutAttrChar(NCURSES_SP_ARGx ch);
- } else if (enter_am_mode && exit_am_mode) {
- /* we can suppress automargin */
-- TPUTS_TRACE("exit_am_mode");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_am_mode);
-+ NCURSES_PUTP2("exit_am_mode", exit_am_mode);
-
- PutAttrChar(NCURSES_SP_ARGx ch);
- SP_PARM->_curscol--;
-@@ -400,8 +395,7 @@
- SP_PARM->_curscol,
- "exit_am_mode");
-
-- TPUTS_TRACE("enter_am_mode");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_am_mode);
-+ NCURSES_PUTP2("enter_am_mode", enter_am_mode);
- } else if ((enter_insert_mode && exit_insert_mode)
- || insert_character || parm_ich) {
- GoTo(NCURSES_SP_ARGx
-@@ -497,11 +491,12 @@
- return FALSE;
- if ((pair = GetPair(CHDEREF(ch))) != 0) {
- short fg, bg;
-- NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx
-- (short) pair,
-- &fg, &bg);
-- if (fg != C_MASK || bg != C_MASK)
-+ if (NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx
-+ (short) pair,
-+ &fg, &bg) == ERR
-+ || (fg != C_MASK || bg != C_MASK)) {
- return FALSE;
-+ }
- }
- #else
- if (AttrOfD(ch) & A_COLOR)
-@@ -563,8 +558,7 @@
- && runcount > SP_PARM->_ech_cost + SP_PARM->_cup_ch_cost
- && can_clear_with(NCURSES_SP_ARGx CHREF(ntext0))) {
- UpdateAttrs(SP_PARM, ntext0);
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
-- TPARM_1(erase_chars, runcount));
-+ NCURSES_PUTP2("erase_chars", TPARM_1(erase_chars, runcount));
-
- /*
- * If this is the last part of the given interval,
-@@ -677,6 +671,9 @@
-
- T((T_CALLED("_nc_tinfo:doupdate(%p)"), (void *) SP_PARM));
-
-+ if (SP_PARM == 0)
-+ returnCode(ERR);
-+
- #if !USE_REENTRANT
- /*
- * It is "legal" but unlikely that an application could assign a new
-@@ -1076,32 +1073,29 @@
- */
-
- static void
--ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, bool needclear)
-+ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, int needclear)
- {
- int j;
-
-- if (SP_PARM != 0) {
-- if (CurScreen(SP_PARM) != 0
-- && SP_PARM->_cursrow >= 0) {
-- for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) {
-- if (j >= 0) {
-- NCURSES_CH_T *cp =
-- &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]);
--
-- if (!CharEq(*cp, blank)) {
-- *cp = blank;
-- needclear = TRUE;
-- }
-+ if (CurScreen(SP_PARM) != 0
-+ && SP_PARM->_cursrow >= 0) {
-+ for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) {
-+ if (j >= 0) {
-+ NCURSES_CH_T *cp =
-+ &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]);
-+
-+ if (!CharEq(*cp, blank)) {
-+ *cp = blank;
-+ needclear = TRUE;
- }
- }
- }
- }
-
-- if (needclear && (SP_PARM != 0)) {
-+ if (needclear) {
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("clr_eol");
- if (clr_eol && SP_PARM->_el_cost <= (screen_columns(SP_PARM) - SP_PARM->_curscol)) {
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
-+ NCURSES_PUTP2("clr_eol", clr_eol);
- } else {
- int count = (screen_columns(SP_PARM) - SP_PARM->_curscol);
- while (count-- > 0)
-@@ -1121,12 +1115,14 @@
- {
- int row, col;
-
-- if (0 == SP_PARM)
-- return;
--
- row = SP_PARM->_cursrow;
- col = SP_PARM->_curscol;
-
-+ if (row < 0)
-+ row = 0;
-+ if (col < 0)
-+ col = 0;
-+
- UpdateAttrs(SP_PARM, blank);
- TPUTS_TRACE("clr_eos");
- NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
-@@ -1370,13 +1366,11 @@
- && SP_PARM->_el_cost <= SP_PARM->_el1_cost) {
- GoTo(NCURSES_SP_ARGx lineno, 0);
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("clr_eol");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
-+ NCURSES_PUTP2("clr_eol", clr_eol);
- } else {
- GoTo(NCURSES_SP_ARGx lineno, nFirstChar - 1);
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("clr_bol");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_bol);
-+ NCURSES_PUTP2("clr_bol", clr_bol);
- }
-
- while (firstChar < nFirstChar)
-@@ -1574,8 +1568,7 @@
- if (fast_clear) {
- if (clear_screen) {
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("clear_screen");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clear_screen);
-+ NCURSES_PUTP2("clear_screen", clear_screen);
- SP_PARM->_cursrow = SP_PARM->_curscol = 0;
- position_check(SP_PARM,
- SP_PARM->_cursrow,
-@@ -1595,8 +1588,7 @@
- UpdateAttrs(SP_PARM, blank);
- for (i = 0; i < screen_lines(SP_PARM); i++) {
- GoTo(NCURSES_SP_ARGx i, 0);
-- TPUTS_TRACE("clr_eol");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
-+ NCURSES_PUTP2("clr_eol", clr_eol);
- }
- GoTo(NCURSES_SP_ARGx 0, 0);
- }
-@@ -1647,27 +1639,22 @@
- count--;
- }
- } else if (enter_insert_mode && exit_insert_mode) {
-- TPUTS_TRACE("enter_insert_mode");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_insert_mode);
-+ NCURSES_PUTP2("enter_insert_mode", enter_insert_mode);
- while (count) {
- PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
- if (insert_padding) {
-- TPUTS_TRACE("insert_padding");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding);
-+ NCURSES_PUTP2("insert_padding", insert_padding);
- }
- line++;
- count--;
- }
-- TPUTS_TRACE("exit_insert_mode");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode);
-+ NCURSES_PUTP2("exit_insert_mode", exit_insert_mode);
- } else {
- while (count) {
-- TPUTS_TRACE("insert_character");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_character);
-+ NCURSES_PUTP2("insert_character", insert_character);
- PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
- if (insert_padding) {
-- TPUTS_TRACE("insert_padding");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding);
-+ NCURSES_PUTP2("insert_padding", insert_padding);
- }
- line++;
- count--;
-@@ -1701,8 +1688,7 @@
- NCURSES_SP_NAME(_nc_outch));
- } else {
- for (n = 0; n < count; n++) {
-- TPUTS_TRACE("delete_character");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_character);
-+ NCURSES_PUTP2("delete_character", delete_character);
- }
- }
- }
-@@ -1754,13 +1740,11 @@
- if (n == 1 && scroll_forward && top == miny && bot == maxy) {
- GoTo(NCURSES_SP_ARGx bot, 0);
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("scroll_forward");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward);
-+ NCURSES_PUTP2("scroll_forward", scroll_forward);
- } else if (n == 1 && delete_line && bot == maxy) {
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("delete_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
-+ NCURSES_PUTP2("delete_line", delete_line);
- } else if (parm_index && top == miny && bot == maxy) {
- GoTo(NCURSES_SP_ARGx bot, 0);
- UpdateAttrs(SP_PARM, blank);
-@@ -1781,15 +1765,13 @@
- GoTo(NCURSES_SP_ARGx bot, 0);
- UpdateAttrs(SP_PARM, blank);
- for (i = 0; i < n; i++) {
-- TPUTS_TRACE("scroll_forward");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward);
-+ NCURSES_PUTP2("scroll_forward", scroll_forward);
- }
- } else if (delete_line && bot == maxy) {
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
- for (i = 0; i < n; i++) {
-- TPUTS_TRACE("delete_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
-+ NCURSES_PUTP2("delete_line", delete_line);
- }
- } else
- return ERR;
-@@ -1823,13 +1805,11 @@
- if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("scroll_reverse");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse);
-+ NCURSES_PUTP2("scroll_reverse", scroll_reverse);
- } else if (n == 1 && insert_line && bot == maxy) {
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
-- TPUTS_TRACE("insert_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
-+ NCURSES_PUTP2("insert_line", insert_line);
- } else if (parm_rindex && top == miny && bot == maxy) {
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
-@@ -1850,15 +1830,13 @@
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
- for (i = 0; i < n; i++) {
-- TPUTS_TRACE("scroll_reverse");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse);
-+ NCURSES_PUTP2("scroll_reverse", scroll_reverse);
- }
- } else if (insert_line && bot == maxy) {
- GoTo(NCURSES_SP_ARGx top, 0);
- UpdateAttrs(SP_PARM, blank);
- for (i = 0; i < n; i++) {
-- TPUTS_TRACE("insert_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
-+ NCURSES_PUTP2("insert_line", insert_line);
- }
- } else
- return ERR;
-@@ -1889,8 +1867,7 @@
- GoTo(NCURSES_SP_ARGx del, 0);
- UpdateAttrs(SP_PARM, blank);
- if (n == 1 && delete_line) {
-- TPUTS_TRACE("delete_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
-+ NCURSES_PUTP2("delete_line", delete_line);
- } else if (parm_delete_line) {
- TPUTS_TRACE("parm_delete_line");
- NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
-@@ -1899,16 +1876,14 @@
- NCURSES_SP_NAME(_nc_outch));
- } else { /* if (delete_line) */
- for (i = 0; i < n; i++) {
-- TPUTS_TRACE("delete_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
-+ NCURSES_PUTP2("delete_line", delete_line);
- }
- }
-
- GoTo(NCURSES_SP_ARGx ins, 0);
- UpdateAttrs(SP_PARM, blank);
- if (n == 1 && insert_line) {
-- TPUTS_TRACE("insert_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
-+ NCURSES_PUTP2("insert_line", insert_line);
- } else if (parm_insert_line) {
- TPUTS_TRACE("parm_insert_line");
- NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
-@@ -1917,8 +1892,7 @@
- NCURSES_SP_NAME(_nc_outch));
- } else { /* if (insert_line) */
- for (i = 0; i < n; i++) {
-- TPUTS_TRACE("insert_line");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
-+ NCURSES_PUTP2("insert_line", insert_line);
- }
- }
-
-@@ -1975,24 +1949,20 @@
- && (SP_PARM->_cursrow == bot || SP_PARM->_cursrow == bot - 1))
- && save_cursor && restore_cursor) {
- cursor_saved = TRUE;
-- TPUTS_TRACE("save_cursor");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor);
-+ NCURSES_PUTP2("save_cursor", save_cursor);
- }
-- TPUTS_TRACE("change_scroll_region");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
-- TPARM_2(change_scroll_region, top, bot));
-+ NCURSES_PUTP2("change_scroll_region",
-+ TPARM_2(change_scroll_region, top, bot));
- if (cursor_saved) {
-- TPUTS_TRACE("restore_cursor");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor);
-+ NCURSES_PUTP2("restore_cursor", restore_cursor);
- } else {
- SP_PARM->_cursrow = SP_PARM->_curscol = -1;
- }
-
- res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, top, bot, blank);
-
-- TPUTS_TRACE("change_scroll_region");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
-- TPARM_2(change_scroll_region, 0, maxy));
-+ NCURSES_PUTP2("change_scroll_region",
-+ TPARM_2(change_scroll_region, 0, maxy));
- SP_PARM->_cursrow = SP_PARM->_curscol = -1;
- }
-
-@@ -2025,15 +1995,12 @@
- SP_PARM->_cursrow == top - 1)
- && save_cursor && restore_cursor) {
- cursor_saved = TRUE;
-- TPUTS_TRACE("save_cursor");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor);
-+ NCURSES_PUTP2("save_cursor", save_cursor);
- }
-- TPUTS_TRACE("change_scroll_region");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
-- TPARM_2(change_scroll_region, top, bot));
-+ NCURSES_PUTP2("change_scroll_region",
-+ TPARM_2(change_scroll_region, top, bot));
- if (cursor_saved) {
-- TPUTS_TRACE("restore_cursor");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor);
-+ NCURSES_PUTP2("restore_cursor", restore_cursor);
- } else {
- SP_PARM->_cursrow = SP_PARM->_curscol = -1;
- }
-@@ -2041,9 +2008,8 @@
- res = scroll_csr_backward(NCURSES_SP_ARGx
- -n, top, bot, top, bot, blank);
-
-- TPUTS_TRACE("change_scroll_region");
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
-- TPARM_2(change_scroll_region, 0, maxy));
-+ NCURSES_PUTP2("change_scroll_region",
-+ TPARM_2(change_scroll_region, 0, maxy));
- SP_PARM->_cursrow = SP_PARM->_curscol = -1;
- }
-
-@@ -2114,23 +2080,25 @@
- }
-
- if (exit_attribute_mode)
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_attribute_mode);
-+ NCURSES_PUTP2("exit_attribute_mode", exit_attribute_mode);
- else {
- /* turn off attributes */
- if (exit_alt_charset_mode)
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_alt_charset_mode);
-+ NCURSES_PUTP2("exit_alt_charset_mode", exit_alt_charset_mode);
- if (exit_standout_mode)
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_standout_mode);
-+ NCURSES_PUTP2("exit_standout_mode", exit_standout_mode);
- if (exit_underline_mode)
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_underline_mode);
-+ NCURSES_PUTP2("exit_underline_mode", exit_underline_mode);
- }
- if (exit_insert_mode)
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode);
-- if (enter_am_mode && exit_am_mode)
-- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
-- (auto_right_margin
-- ? enter_am_mode
-- : exit_am_mode));
-+ NCURSES_PUTP2("exit_insert_mode", exit_insert_mode);
-+ if (enter_am_mode && exit_am_mode) {
-+ if (auto_right_margin) {
-+ NCURSES_PUTP2("enter_am_mode", enter_am_mode);
-+ } else {
-+ NCURSES_PUTP2("exit_am_mode", exit_am_mode);
-+ }
-+ }
- }
-
- #if NCURSES_SP_FUNCS
-@@ -2159,33 +2127,33 @@
- NCURSES_EXPORT(void)
- NCURSES_SP_NAME(_nc_screen_wrap) (NCURSES_SP_DCL0)
- {
-- if (SP_PARM == 0)
-- return;
-+ if (SP_PARM != 0) {
-
-- UpdateAttrs(SP_PARM, normal);
-+ UpdateAttrs(SP_PARM, normal);
- #if NCURSES_EXT_FUNCS
-- if (SP_PARM->_coloron
-- && !SP_PARM->_default_color) {
-- static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
-- SP_PARM->_default_color = TRUE;
-- NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx
-- -1,
-- 0,
-- FALSE,
-- NCURSES_SP_NAME(_nc_outch));
-- SP_PARM->_default_color = FALSE;
--
-- TINFO_MVCUR(NCURSES_SP_ARGx
-- SP_PARM->_cursrow,
-- SP_PARM->_curscol,
-- screen_lines(SP_PARM) - 1,
-- 0);
-+ if (SP_PARM->_coloron
-+ && !SP_PARM->_default_color) {
-+ static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
-+ SP_PARM->_default_color = TRUE;
-+ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx
-+ -1,
-+ 0,
-+ FALSE,
-+ NCURSES_SP_NAME(_nc_outch));
-+ SP_PARM->_default_color = FALSE;
-+
-+ TINFO_MVCUR(NCURSES_SP_ARGx
-+ SP_PARM->_cursrow,
-+ SP_PARM->_curscol,
-+ screen_lines(SP_PARM) - 1,
-+ 0);
-
-- ClrToEOL(NCURSES_SP_ARGx blank, TRUE);
-- }
-+ ClrToEOL(NCURSES_SP_ARGx blank, TRUE);
-+ }
- #endif
-- if (SP_PARM->_color_defs) {
-- NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG);
-+ if (SP_PARM->_color_defs) {
-+ NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG);
-+ }
- }
- }
-
-Index: ncurses/widechar/lib_box_set.c
-Prereq: 1.5
---- ncurses-5.9/ncurses/widechar/lib_box_set.c 2009-10-24 22:36:56.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_box_set.c 2011-06-25 19:02:07.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2003,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_box_set.c,v 1.5 2009/10/24 22:36:56 tom Exp $")
-+MODULE_ID("$Id: lib_box_set.c,v 1.6 2011/06/25 19:02:07 Vassili.Courzakis Exp $")
-
- NCURSES_EXPORT(int)
- wborder_set(WINDOW *win,
-@@ -52,7 +52,7 @@
- NCURSES_SIZE_T endx, endy;
- NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr;
-
-- T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
-+ T((T_CALLED("wborder_set(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
- (void *) win,
- _tracech_t2(1, ls),
- _tracech_t2(2, rs),
-Index: ncurses/widechar/lib_cchar.c
-Prereq: 1.20
---- ncurses-5.9/ncurses/widechar/lib_cchar.c 2010-12-25 23:46:26.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_cchar.c 2012-03-24 18:37:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,7 +35,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_cchar.c,v 1.20 2010/12/25 23:46:26 tom Exp $")
-+MODULE_ID("$Id: lib_cchar.c,v 1.26 2012/03/24 18:37:17 tom Exp $")
-
- /*
- * The SuSv2 description leaves some room for interpretation. We'll assume wch
-@@ -58,9 +58,9 @@
- (void *) wcval, _nc_viswbuf(wch),
- (unsigned long) attrs, color_pair, opts));
-
-- len = (unsigned) wcslen(wch);
- if (opts != NULL
-- || (len > 1 && wcwidth(wch[0]) < 0)) {
-+ || wch == NULL
-+ || ((len = (unsigned) wcslen(wch)) > 1 && wcwidth(wch[0]) < 0)) {
- code = ERR;
- } else {
- if (len > CCHARW_MAX)
-@@ -80,7 +80,7 @@
- memset(wcval, 0, sizeof(*wcval));
-
- if (len != 0) {
-- SetAttr(*wcval, attrs | (attr_t) ColorPair(color_pair));
-+ SetAttr(*wcval, attrs);
- SetPair(CHDEREF(wcval), color_pair);
- memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
- TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
-@@ -110,8 +110,8 @@
- (void *) color_pair,
- opts));
-
-- if (opts == NULL) {
-- len = ((wp = wmemchr(wcval->chars, L'\0', CCHARW_MAX))
-+ if (opts == NULL && wcval != NULL) {
-+ len = ((wp = wmemchr(wcval->chars, L'\0', (size_t) CCHARW_MAX))
- ? (int) (wp - wcval->chars)
- : CCHARW_MAX);
-
-@@ -126,7 +126,7 @@
- } else if (len >= 0) {
- *attrs = AttrOf(*wcval) & A_ATTRIBUTES;
- *color_pair = (short) GetPair(*wcval);
-- wmemcpy(wch, wcval->chars, (unsigned) len);
-+ wmemcpy(wch, wcval->chars, (size_t) len);
- wch[len] = L'\0';
- code = OK;
- }
-Index: ncurses/widechar/lib_get_wch.c
-Prereq: 1.22
---- ncurses-5.9/ncurses/widechar/lib_get_wch.c 2010-08-28 21:00:35.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_get_wch.c 2011-05-28 23:00:29.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,7 +40,7 @@
- #include <curses.priv.h>
- #include <ctype.h>
-
--MODULE_ID("$Id: lib_get_wch.c,v 1.22 2010/08/28 21:00:35 tom Exp $")
-+MODULE_ID("$Id: lib_get_wch.c,v 1.23 2011/05/28 23:00:29 tom Exp $")
-
- NCURSES_EXPORT(int)
- wget_wch(WINDOW *win, wint_t *result)
-@@ -106,7 +106,10 @@
- } else {
- code = ERR;
- }
-- *result = (wint_t) value;
-+
-+ if (result != 0)
-+ *result = (wint_t) value;
-+
- _nc_unlock_global(curses);
- T(("result %#o", value));
- returnCode(code);
-Index: ncurses/widechar/lib_get_wstr.c
-Prereq: 1.12
---- ncurses-5.9/ncurses/widechar/lib_get_wstr.c 2009-10-24 22:38:11.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_get_wstr.c 2011-10-22 16:31:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_get_wstr.c,v 1.12 2009/10/24 22:38:11 tom Exp $")
-+MODULE_ID("$Id: lib_get_wstr.c,v 1.13 2011/10/22 16:31:35 tom Exp $")
-
- static int
- wadd_wint(WINDOW *win, wint_t *src)
-@@ -49,7 +49,7 @@
-
- wch[0] = (wchar_t) (*src);
- wch[1] = 0;
-- setcchar(&tmp, wch, A_NORMAL, 0, NULL);
-+ setcchar(&tmp, wch, A_NORMAL, (short) 0, NULL);
- return wadd_wch(win, &tmp);
- }
-
-@@ -58,7 +58,7 @@
- * or other character, and handles reverse wraparound.
- */
- static wint_t *
--WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed)
-+WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, int echoed)
- {
- if (last > first) {
- *--last = '\0';
-Index: ncurses/widechar/lib_ins_wch.c
-Prereq: 1.16
---- ncurses-5.9/ncurses/widechar/lib_ins_wch.c 2010-12-19 01:34:04.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_ins_wch.c 2011-10-22 16:34:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_ins_wch.c,v 1.16 2010/12/19 01:34:04 tom Exp $")
-+MODULE_ID("$Id: lib_ins_wch.c,v 1.17 2011/10/22 16:34:50 tom Exp $")
-
- /*
- * Insert the given character, updating the current location to simplify
-@@ -132,7 +132,7 @@
- (void) setcchar(&tmp_cchar,
- &tmp_wchar,
- WA_NORMAL,
-- 0,
-+ (short) 0,
- (void *) 0);
- code = _nc_insert_wch(win, &tmp_cchar);
- } else {
-Index: ncurses/widechar/lib_inwstr.c
-Prereq: 1.5
---- ncurses-5.9/ncurses/widechar/lib_inwstr.c 2009-10-24 22:37:29.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_inwstr.c 2011-05-28 22:49:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2004,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_inwstr.c,v 1.5 2009/10/24 22:37:29 tom Exp $")
-+MODULE_ID("$Id: lib_inwstr.c,v 1.6 2011/05/28 22:49:49 tom Exp $")
-
- NCURSES_EXPORT(int)
- winnwstr(WINDOW *win, wchar_t *wstr, int n)
-@@ -93,8 +93,13 @@
- winwstr(WINDOW *win, wchar_t *wstr)
- {
- int result = OK;
-+
- T((T_CALLED("winwstr(%p,%p)"), (void *) win, (void *) wstr));
-- if (winnwstr(win, wstr, CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR)
-+ if (win == 0) {
-+ result = ERR;
-+ } else if (winnwstr(win, wstr,
-+ CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) {
- result = ERR;
-+ }
- returnCode(result);
- }
-Index: ncurses/widechar/lib_slk_wset.c
-Prereq: 1.11
---- ncurses-5.9/ncurses/widechar/lib_slk_wset.c 2005-01-16 01:03:53.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_slk_wset.c 2011-10-22 15:52:20.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. *
-+ * Copyright (c) 2003-2002,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,7 +40,7 @@
- #include <wctype.h>
- #endif
-
--MODULE_ID("$Id: lib_slk_wset.c,v 1.11 2005/01/16 01:03:53 tom Exp $")
-+MODULE_ID("$Id: lib_slk_wset.c,v 1.13 2011/10/22 15:52:20 tom Exp $")
-
- NCURSES_EXPORT(int)
- slk_wset(int i, const wchar_t *astr, int format)
-@@ -53,19 +53,21 @@
-
- T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format));
-
-- init_mb(state);
-- str = astr;
-- if ((arglen = wcsrtombs(NULL, &str, 0, &state)) != (size_t) -1) {
-- if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
-- str = astr;
-- if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {
-- /* glibc documentation claims that the terminating L'\0'
-- * is written, but it is not...
-- */
-- mystr[arglen] = 0;
-- result = slk_set(i, mystr, format);
-+ if (astr != 0) {
-+ init_mb(state);
-+ str = astr;
-+ if ((arglen = wcsrtombs(NULL, &str, (size_t) 0, &state)) != (size_t) -1) {
-+ if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
-+ str = astr;
-+ if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {
-+ /* glibc documentation claims that the terminating L'\0'
-+ * is written, but it is not...
-+ */
-+ mystr[arglen] = 0;
-+ result = slk_set(i, mystr, format);
-+ }
-+ free(mystr);
- }
-- free(mystr);
- }
- }
- returnCode(result);
-Index: ncurses/widechar/lib_unget_wch.c
-Prereq: 1.14
---- ncurses-5.9/ncurses/widechar/lib_unget_wch.c 2010-07-24 11:35:21.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_unget_wch.c 2011-10-22 16:34:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_unget_wch.c,v 1.14 2010/07/24 11:35:21 tom Exp $")
-+MODULE_ID("$Id: lib_unget_wch.c,v 1.15 2011/10/22 16:34:50 tom Exp $")
-
- /*
- * Wrapper for wcrtomb() which obtains the length needed for the given
-@@ -55,7 +55,7 @@
- const wchar_t *tempp = temp;
- temp[0] = source;
- temp[1] = 0;
-- result = (int) wcsrtombs(NULL, &tempp, 0, state);
-+ result = (int) wcsrtombs(NULL, &tempp, (size_t) 0, state);
- } else {
- result = (int) wcrtomb(target, source, state);
- }
-Index: ncurses/widechar/lib_vid_attr.c
-Prereq: 1.14
---- ncurses-5.9/ncurses/widechar/lib_vid_attr.c 2010-12-19 01:44:24.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_vid_attr.c 2013-01-12 18:01:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
- #define CUR SP_TERMTYPE
- #endif
-
--MODULE_ID("$Id: lib_vid_attr.c,v 1.14 2010/12/19 01:44:24 tom Exp $")
-+MODULE_ID("$Id: lib_vid_attr.c,v 1.17 2013/01/12 18:01:35 tom Exp $")
-
- #define doPut(mode) TPUTS_TRACE(#mode); NCURSES_SP_NAME(tputs)(NCURSES_SP_ARGx mode, 1, outc)
-
-@@ -120,7 +120,7 @@
- * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS
- * macro so this will work properly for the wide-character layout.
- */
-- unsigned value = no_color_video;
-+ unsigned value = (unsigned) no_color_video;
- attr_t mask = NCURSES_BITS((value & 63)
- | ((value & 192) << 1)
- | ((value & 256) >> 2), 8);
-@@ -278,7 +278,7 @@
- newmode,
- pair,
- opts,
-- NCURSES_SP_NAME(_nc_outch)));
-+ NCURSES_SP_NAME(_nc_putchar)));
- }
-
- #if NCURSES_SP_FUNCS
-@@ -296,24 +296,26 @@
- NCURSES_EXPORT(attr_t)
- NCURSES_SP_NAME(term_attrs) (NCURSES_SP_DCL0)
- {
-- attr_t attrs;
-+ attr_t attrs = 0;
-
- T((T_CALLED("term_attrs()")));
-- attrs = SP_PARM ? NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG) : 0;
-+ if (SP_PARM) {
-+ attrs = NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG);
-
-- /* these are only supported for wide-character mode */
-- if (enter_horizontal_hl_mode)
-- attrs |= WA_HORIZONTAL;
-- if (enter_left_hl_mode)
-- attrs |= WA_LEFT;
-- if (enter_low_hl_mode)
-- attrs |= WA_LOW;
-- if (enter_right_hl_mode)
-- attrs |= WA_RIGHT;
-- if (enter_top_hl_mode)
-- attrs |= WA_TOP;
-- if (enter_vertical_hl_mode)
-- attrs |= WA_VERTICAL;
-+ /* these are only supported for wide-character mode */
-+ if (enter_horizontal_hl_mode)
-+ attrs |= WA_HORIZONTAL;
-+ if (enter_left_hl_mode)
-+ attrs |= WA_LEFT;
-+ if (enter_low_hl_mode)
-+ attrs |= WA_LOW;
-+ if (enter_right_hl_mode)
-+ attrs |= WA_RIGHT;
-+ if (enter_top_hl_mode)
-+ attrs |= WA_TOP;
-+ if (enter_vertical_hl_mode)
-+ attrs |= WA_VERTICAL;
-+ }
-
- returnAttr(attrs);
- }
-Index: ncurses/widechar/lib_wacs.c
-Prereq: 1.10
---- ncurses-5.9/ncurses/widechar/lib_wacs.c 2010-12-19 01:43:19.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_wacs.c 2013-02-02 17:10:48.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,7 +32,7 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_wacs.c,v 1.10 2010/12/19 01:43:19 tom Exp $")
-+MODULE_ID("$Id: lib_wacs.c,v 1.13 2013/02/02 17:10:48 tom Exp $")
-
- NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0;
-
-@@ -119,22 +119,24 @@
- T(("initializing WIDE-ACS map (Unicode is%s active)",
- active ? "" : " not"));
-
-- _nc_wacs = typeCalloc(cchar_t, ACS_LEN);
-- for (n = 0; n < SIZEOF(table); ++n) {
-- int wide = wcwidth(table[n].value[active]);
--
-- m = table[n].map;
-- if (active && (wide == 1)) {
-- SetChar(_nc_wacs[m], table[n].value[active], A_NORMAL);
-- } else if (acs_map[m] & A_ALTCHARSET) {
-- SetChar(_nc_wacs[m], m, A_ALTCHARSET);
-- } else {
-- SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
-- }
-+ if ((_nc_wacs = typeCalloc(cchar_t, ACS_LEN)) != 0) {
-+
-+ for (n = 0; n < SIZEOF(table); ++n) {
-+ int wide = wcwidth(table[n].value[active]);
-
-- T(("#%d, SetChar(%c, %#04x) = %s",
-- n, m,
-- table[n].value[active],
-- _tracecchar_t(&_nc_wacs[m])));
-+ m = table[n].map;
-+ if (active && (wide == 1)) {
-+ SetChar(_nc_wacs[m], table[n].value[1], A_NORMAL);
-+ } else if (acs_map[m] & A_ALTCHARSET) {
-+ SetChar(_nc_wacs[m], m, A_ALTCHARSET);
-+ } else {
-+ SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
-+ }
-+
-+ T(("#%d, SetChar(%c, %#04x) = %s",
-+ n, m,
-+ table[n].value[active],
-+ _tracecchar_t(&_nc_wacs[m])));
-+ }
- }
- }
-Index: ncurses/widechar/lib_wunctrl.c
-Prereq: 1.14
---- ncurses-5.9/ncurses/widechar/lib_wunctrl.c 2010-12-19 01:42:15.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/lib_wunctrl.c 2012-12-15 20:53:42.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,14 +35,17 @@
-
- #include <curses.priv.h>
-
--MODULE_ID("$Id: lib_wunctrl.c,v 1.14 2010/12/19 01:42:15 tom Exp $")
-+MODULE_ID("$Id: lib_wunctrl.c,v 1.16 2012/12/15 20:53:42 tom Exp $")
-
- NCURSES_EXPORT(wchar_t *)
- NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc)
- {
- static wchar_t str[CCHARW_MAX + 1], *wsp;
-+ wchar_t *result;
-
-- if (Charable(*wc)) {
-+ if (wc == 0) {
-+ result = 0;
-+ } else if (SP_PARM != 0 && Charable(*wc)) {
- const char *p =
- NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx
- (unsigned) _nc_to_char((wint_t)CharOf(*wc)));
-@@ -51,9 +54,11 @@
- *wsp++ = (wchar_t) _nc_to_widechar(*p);
- }
- *wsp = 0;
-- return str;
-- } else
-- return wc->chars;
-+ result = str;
-+ } else {
-+ result = wc->chars;
-+ }
-+ return result;
- }
-
- #if NCURSES_SP_FUNCS
-Index: ncurses/widechar/widechars.c
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/ncurses/widechar/widechars.c 2013-03-02 18:55:51.000000000 +0000
-@@ -0,0 +1,152 @@
-+/****************************************************************************
-+ * Copyright (c) 2012,2013 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+#include <curses.priv.h>
-+
-+#if USE_WIDEC_SUPPORT
-+
-+MODULE_ID("$Id: widechars.c,v 1.5 2013/03/02 18:55:51 tom Exp $")
-+
-+#if defined(__MINGW32__)
-+/*
-+ * MinGW has wide-character functions, but they do not work correctly.
-+ */
-+
-+int
-+_nc_mbtowc(wchar_t *pwc, const char *s, size_t n)
-+{
-+ int result;
-+ int count;
-+ int try;
-+
-+ if (s != 0 && n != 0) {
-+ /*
-+ * MultiByteToWideChar() can decide to return more than one
-+ * wide-character. We want only one. Ignore any trailing null, both
-+ * in the initial count and in the conversion.
-+ */
-+ count = 0;
-+ for (try = 1; try <= (int) n; ++try) {
-+ count = MultiByteToWideChar(CP_UTF8,
-+ MB_ERR_INVALID_CHARS,
-+ s,
-+ try,
-+ pwc,
-+ 0);
-+ TR(TRACE_BITS, ("...try %d:%d", try, count));
-+ if (count > 0) {
-+ break;
-+ }
-+ }
-+ if (count < 1 || count > 2) {
-+ result = -1;
-+ } else {
-+ wchar_t actual[2];
-+ memset(&actual, 0, sizeof(actual));
-+ count = MultiByteToWideChar(CP_UTF8,
-+ MB_ERR_INVALID_CHARS,
-+ s,
-+ try,
-+ actual,
-+ 2);
-+ TR(TRACE_BITS, ("\twin32 ->%#x, %#x", actual[0], actual[1]));
-+ *pwc = actual[0];
-+ if (actual[1] != 0)
-+ result = -1;
-+ else
-+ result = try;
-+ }
-+ } else {
-+ result = 0;
-+ }
-+
-+ return result;
-+}
-+
-+int
-+_nc_mblen(const char *s, size_t n)
-+{
-+ int result = -1;
-+ int count;
-+ wchar_t temp;
-+
-+ if (s != 0 && n != 0) {
-+ count = _nc_mbtowc(&temp, s, n);
-+ if (count == 1) {
-+ int check = WideCharToMultiByte(CP_UTF8,
-+ 0,
-+ &temp,
-+ 1,
-+ NULL,
-+ 0, /* compute length only */
-+ NULL,
-+ NULL);
-+ TR(TRACE_BITS, ("\tcheck ->%d\n", check));
-+ if (check > 0 && (size_t) check <= n) {
-+ result = check;
-+ }
-+ }
-+ } else {
-+ result = 0;
-+ }
-+
-+ return result;
-+}
-+
-+int __MINGW_NOTHROW
-+_nc_wctomb(char *s, wchar_t wc)
-+{
-+ int result;
-+ int check;
-+
-+ check = WideCharToMultiByte(CP_UTF8,
-+ 0,
-+ &wc,
-+ 1,
-+ NULL,
-+ 0, /* compute length only */
-+ NULL,
-+ NULL);
-+ if (check > 0) {
-+ result = WideCharToMultiByte(CP_UTF8,
-+ 0,
-+ &wc,
-+ 1,
-+ s,
-+ check + 1,
-+ NULL,
-+ NULL);
-+ } else {
-+ result = -1;
-+ }
-+ return result;
-+}
-+
-+#endif /* __MINGW32__ */
-+
-+#endif /* USE_WIDEC_SUPPORT */
-Index: ncurses/win32con/win_driver.c
-Prereq: 1.10
---- ncurses-5.9/ncurses/win32con/win_driver.c 2010-12-25 19:28:21.000000000 +0000
-+++ ncurses-5.9-20130504/ncurses/win32con/win_driver.c 2013-03-02 19:48:06.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -28,7 +28,6 @@
-
- /****************************************************************************
- * Author: Juergen Pfeifer *
-- * *
- ****************************************************************************/
-
- /*
-@@ -39,12 +38,16 @@
- #include <curses.priv.h>
- #define CUR my_term.type.
-
--MODULE_ID("$Id: win_driver.c,v 1.10 2010/12/25 19:28:21 tom Exp $")
-+MODULE_ID("$Id: win_driver.c,v 1.18 2013/03/02 19:48:06 tom Exp $")
-
- #define WINMAGIC NCDRV_MAGIC(NCDRV_WINCONSOLE)
-
--#define AssertTCB() assert(TCB!=0 && TCB->magic==WINMAGIC)
--#define SetSP() assert(TCB->csp!=0); sp = TCB->csp
-+#define EXP_OPTIMIZE 0
-+
-+#define okConsoleHandle(TCB) (TCB != 0 && !InvalidConsoleHandle(TCB->hdl))
-+
-+#define AssertTCB() assert(TCB != 0 && (TCB->magic == WINMAGIC))
-+#define SetSP() assert(TCB->csp != 0); sp = TCB->csp; (void) sp
-
- #define GenMap(vKey,key) MAKELONG(key, vKey)
-
-@@ -69,6 +72,7 @@
- typedef struct props {
- CONSOLE_SCREEN_BUFFER_INFO SBI;
- bool progMode;
-+ TERM_HANDLE lastOut;
- DWORD map[MAPSIZE];
- DWORD rmap[MAPSIZE];
- WORD pairs[NUMPAIRS];
-@@ -103,7 +107,7 @@
- }
-
- static WORD
--MapAttr(TERMINAL_CONTROL_BLOCK * TCB, WORD res, chtype ch)
-+MapAttr(TERMINAL_CONTROL_BLOCK * TCB, WORD res, attr_t ch)
- {
- if (ch & A_COLOR) {
- int p;
-@@ -135,8 +139,68 @@
- return res;
- }
-
-+#if USE_WIDEC_SUPPORT
-+/*
-+ * TODO: support surrogate pairs
-+ * TODO: support combining characters
-+ * TODO: support acsc
-+ * TODO: check wcwidth of base character, fill if needed for double-width
-+ * TODO: _nc_wacs should be part of sp.
-+ */
- static BOOL
--con_write(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n)
-+con_write16(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, cchar_t *str, int limit)
-+{
-+ int actual = 0;
-+ CHAR_INFO ci[limit];
-+ COORD loc, siz;
-+ SMALL_RECT rec;
-+ int i;
-+ cchar_t ch;
-+ SCREEN *sp;
-+
-+ AssertTCB();
-+
-+ SetSP();
-+
-+ for (i = actual = 0; i < limit; i++) {
-+ ch = str[i];
-+ if (isWidecExt(ch))
-+ continue;
-+ ci[actual].Char.UnicodeChar = CharOf(ch);
-+ ci[actual].Attributes = MapAttr(TCB,
-+ PropOf(TCB)->SBI.wAttributes,
-+ AttrOf(ch));
-+ if (AttrOf(ch) & A_ALTCHARSET) {
-+ if (_nc_wacs) {
-+ int which = CharOf(ch);
-+ if (which > 0
-+ && which < ACS_LEN
-+ && CharOf(_nc_wacs[which]) != 0) {
-+ ci[actual].Char.UnicodeChar = CharOf(_nc_wacs[which]);
-+ } else {
-+ ci[actual].Char.UnicodeChar = ' ';
-+ }
-+ }
-+ }
-+ ++actual;
-+ }
-+
-+ loc.X = (short) 0;
-+ loc.Y = (short) 0;
-+ siz.X = (short) actual;
-+ siz.Y = 1;
-+
-+ rec.Left = (short) x;
-+ rec.Top = (short) y;
-+ rec.Right = (short) (x + limit - 1);
-+ rec.Bottom = rec.Top;
-+
-+ return WriteConsoleOutputW(TCB->hdl, ci, siz, loc, &rec);
-+}
-+#define con_write(tcb, y, x, str, n) con_write16(tcb, y, x, str, n)
-+#else
-+static BOOL
-+con_write8(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n)
- {
- CHAR_INFO ci[n];
- COORD loc, siz;
-@@ -147,9 +211,6 @@
-
- AssertTCB();
-
-- if (TCB == 0 || InvalidConsoleHandle(TCB->hdl))
-- return FALSE;
--
- SetSP();
-
- for (i = 0; i < n; i++) {
-@@ -177,55 +238,163 @@
-
- return WriteConsoleOutput(TCB->hdl, ci, siz, loc, &rec);
- }
-+#define con_write(tcb, y, x, str, n) con_write8(tcb, y, x, str, n)
-+#endif
-+
-+#if EXP_OPTIMIZE
-+/*
-+ * Comparing new/current screens, determine the last column-index for a change
-+ * beginning on the given row,col position. Unlike a serial terminal, there is
-+ * no cost for "moving" the "cursor" on the line as we update it.
-+ */
-+static int
-+find_end_of_change(SCREEN *sp, int row, int col)
-+{
-+ int result = col;
-+ struct ldat *curdat = CurScreen(sp)->_line + row;
-+ struct ldat *newdat = NewScreen(sp)->_line + row;
-+
-+ while (col <= newdat->lastchar) {
-+#if USE_WIDEC_SUPPORT
-+ if (isWidecExt(curdat->text[col]) || isWidecExt(newdat->text[col])) {
-+ result = col;
-+ } else if (memcmp(&curdat->text[col],
-+ &newdat->text[col],
-+ sizeof(curdat->text[0]))) {
-+ result = col;
-+ } else {
-+ break;
-+ }
-+#else
-+ if (curdat->text[col] != newdat->text[col]) {
-+ result = col;
-+ } else {
-+ break;
-+ }
-+#endif
-+ ++col;
-+ }
-+ return result;
-+}
-+
-+/*
-+ * Given a row,col position at the end of a change-chunk, look for the
-+ * beginning of the next change-chunk.
-+ */
-+static int
-+find_next_change(SCREEN *sp, int row, int col)
-+{
-+ struct ldat *curdat = CurScreen(sp)->_line + row;
-+ struct ldat *newdat = NewScreen(sp)->_line + row;
-+ int result = newdat->lastchar + 1;
-+
-+ while (++col <= newdat->lastchar) {
-+#if USE_WIDEC_SUPPORT
-+ if (isWidecExt(curdat->text[col]) != isWidecExt(newdat->text[col])) {
-+ result = col;
-+ break;
-+ } else if (memcmp(&curdat->text[col],
-+ &newdat->text[col],
-+ sizeof(curdat->text[0]))) {
-+ result = col;
-+ break;
-+ }
-+#else
-+ if (curdat->text[col] != newdat->text[col]) {
-+ result = col;
-+ break;
-+ }
-+#endif
-+ }
-+ return result;
-+}
-+
-+#define EndChange(first) \
-+ find_end_of_change(sp, y, first)
-+#define NextChange(last) \
-+ find_next_change(sp, y, last)
-+
-+#endif /* EXP_OPTIMIZE */
-
- #define MARK_NOCHANGE(win,row) \
- win->_line[row].firstchar = _NOCHANGE; \
- win->_line[row].lastchar = _NOCHANGE
-
-+static void
-+selectActiveHandle(TERMINAL_CONTROL_BLOCK * TCB)
-+{
-+ if (PropOf(TCB)->lastOut != TCB->hdl) {
-+ PropOf(TCB)->lastOut = TCB->hdl;
-+ SetConsoleActiveScreenBuffer(PropOf(TCB)->lastOut);
-+ }
-+}
-+
- static int
- drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB)
- {
-+ int result = ERR;
- int y, nonempty, n, x0, x1, Width, Height;
- SCREEN *sp;
-
- AssertTCB();
- SetSP();
-
-- Width = screen_columns(sp);
-- Height = screen_lines(sp);
-- nonempty = min(Height, NewScreen(sp)->_maxy + 1);
--
-- if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) {
-- int x;
-- chtype empty[Width];
-+ T((T_CALLED("win32con::drv_doupdate(%p)"), TCB));
-+ if (okConsoleHandle(TCB)) {
-+
-+ Width = screen_columns(sp);
-+ Height = screen_lines(sp);
-+ nonempty = min(Height, NewScreen(sp)->_maxy + 1);
-+
-+ if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) {
-+ int x;
-+#if USE_WIDEC_SUPPORT
-+ cchar_t empty[Width];
-+ wchar_t blank[2] =
-+ {
-+ L' ', L'\0'
-+ };
-
-- for (x = 0; x < Width; x++)
-- empty[x] = ' ';
-+ for (x = 0; x < Width; x++)
-+ setcchar(&empty[x], blank, 0, 0, 0);
-+#else
-+ chtype empty[Width];
-+
-+ for (x = 0; x < Width; x++)
-+ empty[x] = ' ';
-+#endif
-+
-+ for (y = 0; y < nonempty; y++) {
-+ con_write(TCB, y, 0, empty, Width);
-+ memcpy(empty,
-+ CurScreen(sp)->_line[y].text,
-+ Width * sizeof(empty[0]));
-+ }
-+ CurScreen(sp)->_clear = FALSE;
-+ NewScreen(sp)->_clear = FALSE;
-+ touchwin(NewScreen(sp));
-+ }
-
- for (y = 0; y < nonempty; y++) {
-- con_write(TCB, y, 0, empty, Width);
-- memcpy(empty,
-- CurScreen(sp)->_line[y].text,
-- Width * sizeof(chtype));
-- }
-- CurScreen(sp)->_clear = FALSE;
-- NewScreen(sp)->_clear = FALSE;
-- touchwin(NewScreen(sp));
-- }
--
-- for (y = 0; y < nonempty; y++) {
-- x0 = NewScreen(sp)->_line[y].firstchar;
-- if (x0 != _NOCHANGE) {
-- x1 = NewScreen(sp)->_line[y].lastchar;
-- n = x1 - x0 + 1;
-- if (n > 0) {
-- memcpy(CurScreen(sp)->_line[y].text + x0,
-- NewScreen(sp)->_line[y].text + x0,
-- n * sizeof(chtype));
-- con_write(TCB,
-- y,
-- x0,
-- ((chtype *) CurScreen(sp)->_line[y].text) + x0, n);
-+ x0 = NewScreen(sp)->_line[y].firstchar;
-+ if (x0 != _NOCHANGE) {
-+#if EXP_OPTIMIZE
-+ int x2;
-+ int limit = NewScreen(sp)->_line[y].lastchar;
-+ while ((x1 = EndChange(x0)) <= limit) {
-+ while ((x2 = NextChange(x1)) <= limit && x2 <= (x1 + 2)) {
-+ x1 = x2;
-+ }
-+ n = x1 - x0 + 1;
-+ memcpy(&CurScreen(sp)->_line[y].text[x0],
-+ &NewScreen(sp)->_line[y].text[x0],
-+ n * sizeof(CurScreen(sp)->_line[y].text[x0]));
-+ con_write(TCB,
-+ y,
-+ x0,
-+ &CurScreen(sp)->_line[y].text[x0], n);
-+ x0 = NextChange(x1);
-+ }
-
- /* mark line changed successfully */
- if (y <= NewScreen(sp)->_maxy) {
-@@ -234,26 +403,50 @@
- if (y <= CurScreen(sp)->_maxy) {
- MARK_NOCHANGE(CurScreen(sp), y);
- }
-+#else
-+ x1 = NewScreen(sp)->_line[y].lastchar;
-+ n = x1 - x0 + 1;
-+ if (n > 0) {
-+ memcpy(&CurScreen(sp)->_line[y].text[x0],
-+ &NewScreen(sp)->_line[y].text[x0],
-+ n * sizeof(CurScreen(sp)->_line[y].text[x0]));
-+ con_write(TCB,
-+ y,
-+ x0,
-+ &CurScreen(sp)->_line[y].text[x0], n);
-+
-+ /* mark line changed successfully */
-+ if (y <= NewScreen(sp)->_maxy) {
-+ MARK_NOCHANGE(NewScreen(sp), y);
-+ }
-+ if (y <= CurScreen(sp)->_maxy) {
-+ MARK_NOCHANGE(CurScreen(sp), y);
-+ }
-+ }
-+#endif
- }
- }
-- }
-
-- /* put everything back in sync */
-- for (y = nonempty; y <= NewScreen(sp)->_maxy; y++) {
-- MARK_NOCHANGE(NewScreen(sp), y);
-- }
-- for (y = nonempty; y <= CurScreen(sp)->_maxy; y++) {
-- MARK_NOCHANGE(CurScreen(sp), y);
-- }
--
-- if (!NewScreen(sp)->_leaveok) {
-- CurScreen(sp)->_curx = NewScreen(sp)->_curx;
-- CurScreen(sp)->_cury = NewScreen(sp)->_cury;
-+ /* put everything back in sync */
-+ for (y = nonempty; y <= NewScreen(sp)->_maxy; y++) {
-+ MARK_NOCHANGE(NewScreen(sp), y);
-+ }
-+ for (y = nonempty; y <= CurScreen(sp)->_maxy; y++) {
-+ MARK_NOCHANGE(CurScreen(sp), y);
-+ }
-
-- TCB->drv->hwcur(TCB, 0, 0, CurScreen(sp)->_cury, CurScreen(sp)->_curx);
-+ if (!NewScreen(sp)->_leaveok) {
-+ CurScreen(sp)->_curx = NewScreen(sp)->_curx;
-+ CurScreen(sp)->_cury = NewScreen(sp)->_cury;
-+
-+ TCB->drv->hwcur(TCB,
-+ 0, 0,
-+ CurScreen(sp)->_cury, CurScreen(sp)->_curx);
-+ }
-+ selectActiveHandle(TCB);
-+ result = OK;
- }
-- SetConsoleActiveScreenBuffer(TCB->hdl);
-- return OK;
-+ returnCode(result);
- }
-
- static bool
-@@ -269,7 +462,7 @@
- assert(tname != 0);
-
- TCB->magic = WINMAGIC;
-- if (*tname == 0 || *tname == 0) {
-+ if (*tname == 0 || *tname == 0 || *tname == '#') {
- code = TRUE;
- } else {
- TERMINAL my_term;
-@@ -308,7 +501,7 @@
-
- static int
- drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB,
-- bool beepFlag GCC_UNUSED)
-+ int beepFlag GCC_UNUSED)
- {
- SCREEN *sp;
- int res = ERR;
-@@ -348,13 +541,13 @@
-
- static void
- drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB,
-- bool fore,
-+ int fore,
- int color,
- int (*outc) (SCREEN *, int) GCC_UNUSED)
- {
- AssertTCB();
-
-- if (TCB && !InvalidConsoleHandle(TCB->hdl)) {
-+ if (okConsoleHandle(TCB)) {
- WORD a = MapColor(fore, color);
- a = ((PropOf(TCB)->SBI.wAttributes) & (fore ? 0xfff8 : 0xff8f)) | a;
- SetConsoleTextAttribute(TCB->hdl, a);
-@@ -368,7 +561,7 @@
- bool res = FALSE;
-
- AssertTCB();
-- if (TCB && !InvalidConsoleHandle(TCB->hdl)) {
-+ if (okConsoleHandle(TCB)) {
- WORD a = FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN;
- SetConsoleTextAttribute(TCB->hdl, a);
- GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI));
-@@ -392,14 +585,20 @@
- static int
- drv_size(TERMINAL_CONTROL_BLOCK * TCB, int *Lines, int *Cols)
- {
-+ int result = ERR;
-+
- AssertTCB();
-
-- if (TCB == NULL || Lines == NULL || Cols == NULL || InvalidConsoleHandle(TCB->hdl))
-- return ERR;
-+ T((T_CALLED("win32con::drv_size(%p)"), TCB));
-
-- *Lines = (int) (PropOf(TCB)->SBI.dwSize.Y);
-- *Cols = (int) (PropOf(TCB)->SBI.dwSize.X);
-- return OK;
-+ if (okConsoleHandle(TCB) &&
-+ Lines != NULL &&
-+ Cols != NULL) {
-+ *Lines = (int) (PropOf(TCB)->SBI.dwSize.Y);
-+ *Cols = (int) (PropOf(TCB)->SBI.dwSize.X);
-+ result = OK;
-+ }
-+ returnCode(result);
- }
-
- static int
-@@ -412,7 +611,7 @@
- }
-
- static int
--drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf)
-+drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, int setFlag, TTY * buf)
- {
- DWORD dwFlag = 0;
- tcflag_t iflag;
-@@ -479,7 +678,7 @@
- }
-
- static int
--drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag)
-+drv_mode(TERMINAL_CONTROL_BLOCK * TCB, int progFlag, int defFlag)
- {
- SCREEN *sp;
- TERMINAL *_term = (TERMINAL *) TCB;
-@@ -489,7 +688,8 @@
- sp = TCB->csp;
-
- PropOf(TCB)->progMode = progFlag;
-- SetConsoleActiveScreenBuffer(progFlag ? TCB->hdl : TCB->out);
-+ PropOf(TCB)->lastOut = progFlag ? TCB->hdl : TCB->out;
-+ SetConsoleActiveScreenBuffer(PropOf(TCB)->lastOut);
-
- if (progFlag) /* prog mode */ {
- if (defFlag) {
-@@ -674,9 +874,9 @@
-
- static void
- drv_initpair(TERMINAL_CONTROL_BLOCK * TCB,
-- short pair,
-- short f,
-- short b)
-+ int pair,
-+ int f,
-+ int b)
- {
- SCREEN *sp;
-
-@@ -691,10 +891,10 @@
-
- static void
- drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB,
-- short color GCC_UNUSED,
-- short r GCC_UNUSED,
-- short g GCC_UNUSED,
-- short b GCC_UNUSED)
-+ int color GCC_UNUSED,
-+ int r GCC_UNUSED,
-+ int g GCC_UNUSED,
-+ int b GCC_UNUSED)
- {
- SCREEN *sp;
-
-@@ -704,9 +904,9 @@
-
- static void
- drv_do_color(TERMINAL_CONTROL_BLOCK * TCB,
-- short old_pair GCC_UNUSED,
-- short pair GCC_UNUSED,
-- bool reverse GCC_UNUSED,
-+ int old_pair GCC_UNUSED,
-+ int pair GCC_UNUSED,
-+ int reverse GCC_UNUSED,
- int (*outc) (SCREEN *, int) GCC_UNUSED
- )
- {
-@@ -755,7 +955,7 @@
- int y, int x)
- {
- int ret = ERR;
-- if (TCB && !InvalidConsoleHandle(TCB->hdl)) {
-+ if (okConsoleHandle(TCB)) {
- COORD loc;
- loc.X = (short) x;
- loc.Y = (short) y;
-@@ -778,7 +978,7 @@
-
- static void
- drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB,
-- bool OnFlag GCC_UNUSED)
-+ int OnFlag GCC_UNUSED)
- {
- SCREEN *sp;
-
-@@ -999,8 +1199,7 @@
- }
- continue;
- default:
-- SetConsoleActiveScreenBuffer(!PropOf(TCB)->progMode ?
-- TCB->hdl : TCB->out);
-+ selectActiveHandle(TCB);
- continue;
- }
- }
-@@ -1080,7 +1279,6 @@
- BOOL b;
- DWORD nRead;
- WORD vk;
-- WORD sc;
-
- AssertTCB();
- assert(buf);
-@@ -1096,7 +1294,6 @@
- continue;
- *buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar;
- vk = inp_rec.Event.KeyEvent.wVirtualKeyCode;
-- sc = inp_rec.Event.KeyEvent.wVirtualScanCode;
- if (*buf == 0) {
- if (sp->_keypad_on) {
- *buf = MapKey(TCB, vk);
-@@ -1124,8 +1321,9 @@
- static int
- drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms)
- {
-+ T((T_CALLED("win32con::drv_nap(%p, %d)"), TCB, ms));
- Sleep(ms);
-- return OK;
-+ returnCode(OK);
- }
-
- static bool
-@@ -1142,6 +1340,7 @@
-
- AssertTCB();
-
-+ T((T_CALLED("win32con::drv_kyExist(%p, %d)"), TCB, keycode));
- res = bsearch(&key,
- PropOf(TCB)->rmap,
- (size_t) (N_INI + FKEYS),
-@@ -1153,11 +1352,11 @@
- if (!(nKey & 0x8000))
- found = TRUE;
- }
-- return found;
-+ returnCode(found);
- }
-
- static int
--drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag GCC_UNUSED)
-+drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, int flag GCC_UNUSED)
- {
- SCREEN *sp;
- int code = ERR;
-@@ -1165,14 +1364,15 @@
- AssertTCB();
- sp = TCB->csp;
-
-+ T((T_CALLED("win32con::drv_kpad(%p, %d)"), TCB, flag));
- if (sp) {
- code = OK;
- }
-- return code;
-+ returnCode(code);
- }
-
- static int
--drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int keycode, bool flag)
-+drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int keycode, int flag)
- {
- int code = ERR;
- SCREEN *sp;
-@@ -1184,6 +1384,7 @@
- AssertTCB();
- SetSP();
-
-+ T((T_CALLED("win32con::drv_keyok(%p, %d, %d)"), TCB, keycode, flag));
- if (sp) {
- res = bsearch(&key,
- PropOf(TCB)->rmap,
-@@ -1199,7 +1400,7 @@
- *(LONG *) res = GenMap(vKey, nKey);
- }
- }
-- return code;
-+ returnCode(code);
- }
-
- NCURSES_EXPORT_VAR (TERM_DRIVER) _nc_WIN_DRIVER = {
-Index: package/debian/changelog
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/changelog 2013-05-04 14:56:00.000000000 +0000
-@@ -0,0 +1,11 @@
-+ncurses6 (5.9-20130504) unstable; urgency=low
-+
-+ * latest weekly patch
-+
-+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 04 May 2013 10:55:57 -0400
-+
-+ncurses6 (5.9-20120608) unstable; urgency=low
-+
-+ * initial release
-+
-+ -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 08 Jun 2012 07:54:29 -0400
-Index: package/debian/compat
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/compat 2010-04-20 19:47:10.000000000 +0000
-@@ -0,0 +1 @@
-+5
-Index: package/debian/control
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/control 2012-06-08 13:29:14.000000000 +0000
-@@ -0,0 +1,16 @@
-+Source: ncurses6
-+Section: libdevel
-+Priority: optional
-+Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
-+Homepage: http://invisible-island.net/ncurses/
-+Build-Depends: debhelper (>= 7)
-+Standards-Version: 3.8.2
-+
-+Package: ncurses6
-+Architecture: any
-+Depends: ${misc:Depends}
-+Description: shared libraries for terminal handling
-+ The ncurses library routines are a terminal-independent method of
-+ updating character screens with reasonable optimization.
-+ .
-+ This package is used for testing ABI 6.
-Index: package/debian/copyright
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/copyright 2012-06-08 12:27:36.000000000 +0000
-@@ -0,0 +1,112 @@
-+This package is used for testing builds of ncurses.
-+
-+Copyright (c) 1998-2012 Free Software Foundation, Inc.
-+Copyright © 2001 by Pradeep Padala
-+
-+Permission is hereby granted, free of charge, to any person obtaining a
-+copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, distribute with modifications, sublicense, and/or sell
-+copies of the Software, and to permit persons to whom the Software is
-+furnished to do so, subject to the following conditions:
-+
-+The above copyright notice and this permission notice shall be included
-+in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+
-+Except as contained in this notice, the name(s) of the above copyright
-+holders shall not be used in advertising or otherwise to promote the
-+sale, use or other dealings in this Software without prior written
-+authorization.
-+
-+
-+Copyright (C) 1994 X Consortium
-+
-+Permission is hereby granted, free of charge, to any person obtaining a copy
-+of this software and associated documentation files (the "Software"), to
-+deal in the Software without restriction, including without limitation the
-+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-+sell copies of the Software, and to permit persons to whom the Software is
-+furnished to do so, subject to the following conditions:
-+
-+The above copyright notice and this permission notice shall be included in
-+all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-+TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+
-+Except as contained in this notice, the name of the X Consortium shall not
-+be used in advertising or otherwise to promote the sale, use or other deal-
-+ings in this Software without prior written authorization from the X Consor-
-+tium.
-+
-+
-+Copyright (c) 1980, 1991, 1992, 1993
-+ The Regents of the University of California. All rights reserved.
-+
-+Redistribution and use in source and binary forms, with or without
-+modification, are permitted provided that the following conditions
-+are met:
-+1. Redistributions of source code must retain the above copyright
-+ notice, this list of conditions and the following disclaimer.
-+2. Redistributions in binary form must reproduce the above copyright
-+ notice, this list of conditions and the following disclaimer in the
-+ documentation and/or other materials provided with the distribution.
-+3. Neither the name of the University nor the names of its contributors
-+ may be used to endorse or promote products derived from this software
-+ without specific prior written permission.
-+
-+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+SUCH DAMAGE.
-+
-+
-+Copyright 1996-2007 by Thomas E. Dickey
-+
-+ All Rights Reserved
-+
-+Permission is hereby granted, free of charge, to any person obtaining a
-+copy of this software and associated documentation files (the
-+"Software"), to deal in the Software without restriction, including
-+without limitation the rights to use, copy, modify, merge, publish,
-+distribute, sublicense, and/or sell copies of the Software, and to
-+permit persons to whom the Software is furnished to do so, subject to
-+the following conditions:
-+
-+The above copyright notice and this permission notice shall be included
-+in all copies or substantial portions of the Software.
-+
-+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-+IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
-+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+
-+Except as contained in this notice, the name(s) of the above copyright
-+holders shall not be used in advertising or otherwise to promote the
-+sale, use or other dealings in this Software without prior written
-+authorization.
-+
-+-- vile: txtmode file-encoding=utf-8
-Index: package/debian/rules
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/rules 2013-03-30 18:58:01.000000000 +0000
-@@ -0,0 +1,123 @@
-+#!/usr/bin/make -f
-+# MAde with the aid of dh_make, by Craig Small
-+# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
-+# Some lines taken from debmake, by Cristoph Lameter.
-+
-+# Uncomment this to turn on verbose mode.
-+#export DH_VERBOSE=1
-+
-+# These are used for cross-compiling and for saving the configure script
-+# from having to guess our platform (since we know it already)
-+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-+
-+CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
-+CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
-+
-+MY_DIR=/usr/local/ncurses6
-+MYDATA=/usr/local/ncurses/share/terminfo
-+BUILD_DIR=$(CURDIR)/debian/ncurses6
-+
-+CFLAGS = $(CC_NORMAL)
-+
-+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-+ CFLAGS += -O0
-+else
-+ CFLAGS += -O2
-+endif
-+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-+ INSTALL_PROGRAM += -s
-+endif
-+
-+
-+configure: configure-stamp
-+configure-stamp:
-+ dh_testdir
-+
-+ RPATH_LIST=../lib:$(MY_DIR)/lib \
-+ CFLAGS="$(CFLAGS)" ./configure \
-+ --host=$(DEB_HOST_GNU_TYPE) \
-+ --build=$(DEB_BUILD_GNU_TYPE) \
-+ --prefix=$(MY_DIR) \
-+ --with-default-terminfo-dir=$(MYDATA) \
-+ --with-terminfo-dirs=$(MYDATA):/usr/share/terminfo \
-+ --disable-echo \
-+ --disable-getcap \
-+ --disable-leaks \
-+ --disable-macros \
-+ --disable-termcap \
-+ --enable-const \
-+ --enable-ext-colors \
-+ --enable-ext-mouse \
-+ --enable-hard-tabs \
-+ --enable-interop \
-+ --enable-rpath \
-+ --enable-sp-funcs \
-+ --enable-warnings \
-+ --enable-widec \
-+ --verbose \
-+ --with-develop \
-+ --with-shared \
-+ --with-termlib \
-+ --with-ticlib \
-+ --with-trace \
-+ --with-cxx-shared \
-+ --with-xterm-kbs=DEL \
-+ --without-ada \
-+ --without-debug \
-+ --without-normal
-+
-+ touch configure-stamp
-+
-+build: build-stamp
-+build-stamp: configure-stamp
-+ dh_testdir
-+
-+ $(MAKE)
-+
-+ touch build-stamp
-+
-+clean:
-+ dh_testdir
-+ dh_testroot
-+
-+ [ ! -f makefile ] || $(MAKE) distclean
-+
-+ rm -f configure-stamp build-stamp install-stamp
-+
-+ dh_clean
-+
-+install: install-stamp
-+install-stamp: build-stamp
-+ dh_testdir
-+ dh_testroot
-+ dh_clean -k
-+ dh_installdirs
-+
-+ $(MAKE) install.libs install.progs DESTDIR=$(BUILD_DIR)
-+
-+ ( cd test && make ncurses LOCAL_LIBDIR=$(MY_DIR)/lib )
-+ mv test/ncurses $(BUILD_DIR)$(MY_DIR)/bin/ncurses6
-+
-+ touch install-stamp
-+
-+# Build architecture-independent files here.
-+binary-indep: build install
-+# No binary-indep target.
-+
-+# Build architecture-dependent files here.
-+binary-arch: build install
-+ dh_testdir
-+ dh_testroot
-+ dh_installchangelogs NEWS
-+ dh_strip
-+ dh_compress
-+ dh_fixperms
-+ dh_installdeb
-+ dh_shlibdeps
-+ dh_gencontrol
-+ dh_md5sums
-+ dh_builddeb
-+
-+binary: binary-indep binary-arch
-+.PHONY: build clean binary-indep binary-arch binary install install-stamp
-Index: package/debian/source/format
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/source/format 2010-06-22 21:37:16.000000000 +0000
-@@ -0,0 +1 @@
-+3.0 (native)
-Index: package/debian/watch
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/debian/watch 2012-06-08 11:53:43.000000000 +0000
-@@ -0,0 +1,4 @@
-+version=3
-+
-+opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \
-+ debian uupdate
-Index: package/ncurses.spec
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/package/ncurses.spec 2013-05-04 14:56:00.000000000 +0000
-@@ -0,0 +1,92 @@
-+Summary: shared libraries for terminal handling
-+Name: ncurses6
-+Release: 5.9
-+Version: 20130504
-+License: X11
-+Group: Development/Libraries
-+Source: ncurses-%{release}-%{version}.tgz
-+# URL: http://invisible-island.net/ncurses/
-+
-+%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
-+%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
-+
-+%define _prefix /usr/local/ncurses6
-+%define MYDATA /usr/local/ncurses/share/terminfo
-+
-+%description
-+The ncurses library routines are a terminal-independent method of
-+updating character screens with reasonable optimization.
-+
-+This package is used for testing ABI 6.
-+
-+%prep
-+
-+%define debug_package %{nil}
-+%setup -q -n ncurses-%{release}-%{version}
-+
-+%build
-+CFLAGS="%{CC_NORMAL}" \
-+RPATH_LIST=../lib:%{_prefix}/lib \
-+%configure \
-+ --target %{_target_platform} \
-+ --prefix=%{_prefix} \
-+ --includedir='${prefix}/include' \
-+ --with-default-terminfo-dir=%{MYDATA} \
-+ --with-install-prefix=$RPM_BUILD_ROOT \
-+ --with-terminfo-dirs=%{MYDATA}:/usr/share/terminfo \
-+ --disable-echo \
-+ --disable-getcap \
-+ --disable-leaks \
-+ --disable-macros \
-+ --disable-overwrite \
-+ --disable-termcap \
-+ --enable-const \
-+ --enable-ext-colors \
-+ --enable-ext-mouse \
-+ --enable-hard-tabs \
-+ --enable-interop \
-+ --enable-rpath \
-+ --enable-sp-funcs \
-+ --enable-warnings \
-+ --enable-widec \
-+ --verbose \
-+ --with-develop \
-+ --with-shared \
-+ --with-termlib \
-+ --with-ticlib \
-+ --with-trace \
-+ --with-cxx-shared \
-+ --with-xterm-kbs=DEL \
-+ --without-ada \
-+ --without-debug \
-+ --without-normal
-+
-+make
-+
-+%install
-+rm -rf $RPM_BUILD_ROOT
-+
-+make install.libs install.progs
-+rm -f test/ncurses
-+( cd test && make ncurses LOCAL_LIBDIR=%{_libdir} && mv ncurses $RPM_BUILD_ROOT/%{_bindir}/ncurses6 )
-+
-+%clean
-+rm -rf $RPM_BUILD_ROOT
-+
-+%files
-+%defattr(-,root,root,-)
-+%{_bindir}/*
-+%{_includedir}/*
-+%{_libdir}/*
-+#%{_datadir}/*
-+
-+%changelog
-+
-+* Sat Mar 09 2013 Thomas E. Dickey
-+- add --with-cxx-shared option to demonstrate c++ binding as shared library
-+
-+* Sat Oct 26 2012 Thomas E. Dickey
-+- add ncurses program as "ncurses6" to provide demonstration.
-+
-+* Fri Jun 08 2012 Thomas E. Dickey
-+- initial version.
-Index: panel/Makefile.in
-Prereq: 1.58
---- ncurses-5.9/panel/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/panel/Makefile.in 2012-09-29 19:37:34.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.58 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.61 2012/09/29 19:37:34 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -57,6 +57,7 @@
- bindir = @bindir@
- libdir = @libdir@
- includedir = @includedir@
-+datarootdir = @datarootdir@
- datadir = @datadir@
-
- LIBTOOL = @LIBTOOL@
-@@ -103,6 +104,7 @@
- SHLIB_DIRS = -L../lib
- SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-+RPATH_LIST = @RPATH_LIST@
- MK_SHARED_LIB = @MK_SHARED_LIB@
-
- NCURSES_MAJOR = @NCURSES_MAJOR@
-@@ -112,7 +114,7 @@
-
- RANLIB = @LIB_PREP@
-
--LIBRARIES = @LIBS_TO_MAKE@
-+LIBRARIES = @Libs_To_Make@
-
- LINT = @LINT@
- LINT_OPTS = @LINT_OPTS@
-Index: panel/p_above.c
-Prereq: 1.8
---- ncurses-5.9/panel/p_above.c 2010-01-23 21:22:15.000000000 +0000
-+++ ncurses-5.9-20130504/panel/p_above.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,13 +36,13 @@
- */
- #include "panel.priv.h"
-
--MODULE_ID("$Id: p_above.c,v 1.8 2010/01/23 21:22:15 tom Exp $")
-+MODULE_ID("$Id: p_above.c,v 1.9 2012/03/10 23:43:41 tom Exp $")
-
- #if NCURSES_SP_FUNCS
- NCURSES_EXPORT(PANEL *)
- ground_panel(SCREEN * sp)
- {
-- T((T_CALLED("ground_panel(%p)"), sp));
-+ T((T_CALLED("ground_panel(%p)"), (void *)sp));
- if (sp)
- {
- struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
-Index: panel/p_below.c
-Prereq: 1.8
---- ncurses-5.9/panel/p_below.c 2010-01-23 21:22:15.000000000 +0000
-+++ ncurses-5.9-20130504/panel/p_below.c 2012-03-10 23:43:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,13 +36,13 @@
- */
- #include "panel.priv.h"
-
--MODULE_ID("$Id: p_below.c,v 1.8 2010/01/23 21:22:15 tom Exp $")
-+MODULE_ID("$Id: p_below.c,v 1.9 2012/03/10 23:43:41 tom Exp $")
-
- #if NCURSES_SP_FUNCS
- NCURSES_EXPORT(PANEL *)
- ceiling_panel(SCREEN * sp)
- {
-- T((T_CALLED("ceiling_panel(%p)"), sp));
-+ T((T_CALLED("ceiling_panel(%p)"), (void *)sp));
- if (sp)
- {
- struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
-Index: panel/panel.c
-Prereq: 1.25
---- ncurses-5.9/panel/panel.c 2010-01-23 21:22:16.000000000 +0000
-+++ ncurses-5.9-20130504/panel/panel.c 2012-02-23 10:02:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -36,7 +36,7 @@
- /* panel.c -- implementation of panels library, some core routines */
- #include "panel.priv.h"
-
--MODULE_ID("$Id: panel.c,v 1.25 2010/01/23 21:22:16 tom Exp $")
-+MODULE_ID("$Id: panel.c,v 1.26 2012/02/23 10:02:15 tom Exp $")
-
- /*+-------------------------------------------------------------------------
- _nc_retrace_panel (pan)
-@@ -61,9 +61,9 @@
- char temp[32];
-
- if (ptr != 0)
-- sprintf(temp, "ptr:%p", ptr);
-+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "ptr:%p", ptr);
- else
-- strcpy(temp, "<null>");
-+ _nc_STRCPY(temp, "<null>", sizeof(temp));
- return _nc_visbuf(temp);
- }
- #endif
-@@ -95,7 +95,7 @@
-
- GetPanelHook(pan);
-
-- sprintf(s80, fmt, num, pan);
-+ _nc_SPRINTF(s80, _nc_SLIMIT(sizeof(s80)) fmt, num, pan);
- _tracef("%s b=%s t=%s", s80,
- (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
- (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
-@@ -143,7 +143,7 @@
- {
- char s80[80];
-
-- sprintf(s80, "Touchline s=%d c=%d", start, count);
-+ _nc_SPRINTF(s80, _nc_SLIMIT(sizeof(s80)) "Touchline s=%d c=%d", start, count);
- dPanel(s80, pan);
- touchline(pan->win, start, count);
- }
-Index: panel/panel.priv.h
-Prereq: 1.23
---- ncurses-5.9/panel/panel.priv.h 2009-04-11 20:33:55.000000000 +0000
-+++ ncurses-5.9-20130504/panel/panel.priv.h 2012-12-15 23:57:43.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
-
--/* $Id: panel.priv.h,v 1.23 2009/04/11 20:33:55 tom Exp $ */
-+/* $Id: panel.priv.h,v 1.25 2012/12/15 23:57:43 tom Exp $ */
-
- #ifndef NCURSES_PANEL_PRIV_H
- #define NCURSES_PANEL_PRIV_H 1
-@@ -89,7 +89,7 @@
- #define GetScreenHook(sp) \
- struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp)
- #define GetPanelHook(pan) \
-- GetScreenHook(_nc_screen_of((pan)->win))
-+ GetScreenHook(pan ? _nc_screen_of((pan)->win) : 0)
- #define GetWindowHook(win) \
- SCREEN* sp = _nc_screen_of(win); \
- GetScreenHook(sp)
-@@ -160,7 +160,7 @@
- ---------------------------------------------------------------------------*/
- #define PANEL_UPDATE(pan,panstart)\
- { PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
-- while(pan2) {\
-+ while(pan2 && pan2->win) {\
- if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
- int y, ix1, ix2, iy1, iy2;\
- COMPUTE_INTERSECTION(pan, pan2, ix1, ix2, iy1, iy2);\
-Index: progs/Makefile.in
-Prereq: 1.85
---- ncurses-5.9/progs/Makefile.in 2010-11-27 21:45:27.000000000 +0000
-+++ ncurses-5.9-20130504/progs/Makefile.in 2012-08-11 21:31:56.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.85 2010/11/27 21:45:27 tom Exp $
-+# $Id: Makefile.in,v 1.89 2012/08/11 21:31:56 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -61,6 +61,7 @@
- bindir = @bindir@
- libdir = @libdir@
- includedir = @includedir@
-+datarootdir = @datarootdir@
- datadir = @datadir@
-
- LIBTOOL = @LIBTOOL@
-@@ -104,20 +105,21 @@
- LD = @LD@
- LINK = @LINK_PROGS@ $(LIBTOOL_LINK)
- LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@
-+RPATH_LIST = @RPATH_LIST@
-
- LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
- LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
- LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG)
--LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
-+LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
- LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-
- LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
--LIBS_TIC = @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
--LDFLAGS_TIC = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
-+LIBS_TIC = @TINFO_LDFLAGS@ @LDFLAGS_STATIC@ @TICS_LIBS@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
-+LDFLAGS_TIC = @TICS_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
-
--LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
--LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
-+LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
-+LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
-
- LINT = @LINT@
- LINT_OPTS = @LINT_OPTS@
-@@ -230,46 +232,46 @@
- $(MODEL)/transform$o
-
- tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
-- @ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
-
- DEPS_TOE = \
- $(MODEL)/toe$o
-
- toe$x: $(DEPS_TOE) $(DEPS_CURSES)
-- @ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
-
- DEPS_CLEAR = \
- $(MODEL)/clear$o
-
- clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
-- @ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
-
- DEPS_TABS = \
- $(MODEL)/tabs$o
-
- tabs$x: $(DEPS_TABS) $(DEPS_TABS)
-- @ECHO_LINK@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@
-
- DEPS_TPUT = \
- $(MODEL)/tput$o \
- $(MODEL)/transform$o
-
- tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
-- @ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
-
- DEPS_INFOCMP = \
- $(MODEL)/infocmp$o \
- $(MODEL)/dump_entry$o
-
- infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
-- @ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
-
- DEPS_TSET = \
- $(MODEL)/tset$o \
- $(MODEL)/transform$o
-
- tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
-- @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
-+ @ECHO_LD@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
-
- termsort.c: $(srcdir)/MKtermsort.sh
- sh $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
-Index: progs/capconvert
-Prereq: 1.4
---- ncurses-5.9/progs/capconvert 2006-04-22 21:46:17.000000000 +0000
-+++ ncurses-5.9-20130504/progs/capconvert 2011-11-12 23:28:07.000000000 +0000
-@@ -1,6 +1,6 @@
- #!/bin/sh
- ##############################################################################
--# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2006,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -26,7 +26,7 @@
- # use or other dealings in this Software without prior written #
- # authorization. #
- ##############################################################################
--# $Id: capconvert,v 1.4 2006/04/22 21:46:17 tom Exp $
-+# $Id: capconvert,v 1.5 2011/11/12 23:28:07 Robert.Millan Exp $
- #
- # capconvert -- automated conversion from termcap to terminfo
- #
-@@ -77,16 +77,18 @@
- # Assumes the terminfo master covers all canned terminal types
- exit;
- fi
-- if test "$TERM" = "xterm"
-- then
-+ case $TERM in
-+ xterm | xterm-*)
- echo "You are running xterm, which usually sets TERMCAP itself."
- echo "We can ignore this, because terminfo knows about xterm."
- echo "So you will just use the system-wide terminfo tree."
-- exit;
-- else
-+ exit
-+ ;;
-+ *)
- echo "We will have to make a local one for you anyway, to capture the effect"
- echo "of your TERMCAP variable."
-- fi
-+ ;;
-+ esac
- else
- echo "No system-wide terminfo tree. We will make you a local one."
- fi
-@@ -109,7 +111,7 @@
- for x in $PATH .
- do
- if test $OPT $x/tic
-- then
-+ then
- TIC=$x/tic
- break
- fi
-@@ -141,7 +143,7 @@
- then
- echo "It appears you already have a private terminfo directory"
- echo "at $HOME/.terminfo; this seems odd, because TERMINFO"
-- echo "is not defined. I am not going to second-guess this -- if you"
-+ echo "is not defined. I am not going to second-guess this -- if you"
- echo "really want me to try auto-configuring for you, remove or"
- echo "rename $HOME/terminfo and run me again."
- exit;
-@@ -214,7 +216,7 @@
- #
- echo "You now have a private tree under $HOME/.terminfo;"
- echo "the ncurses library will automatically read from it,"
--echo "and ncurses tic will automatically compile entries to it."
-+echo "and ncurses tic will automatically compile entries to it."
-
- # We're done unless user has a .termcap file or equivalent named by TERMCAP
- if test -z "$TERMCAP"
-@@ -235,7 +237,7 @@
- echo "Done."
- echo "Note that editing $HOME/.termcap will no longer change the data curses sees."
- elif test -f "$TERMCAP"
--then
-+then
- echo "Your TERMCAP names the file $TERMCAP. I will compile that."
- eval $TIC $TERMCAP
- echo "Done."
-Index: progs/dump_entry.c
-Prereq: 1.89
---- ncurses-5.9/progs/dump_entry.c 2010-05-01 22:04:08.000000000 +0000
-+++ ncurses-5.9-20130504/progs/dump_entry.c 2013-05-04 18:48:56.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -39,7 +39,7 @@
- #include "termsort.c" /* this C file is generated */
- #include <parametrized.h> /* so is this */
-
--MODULE_ID("$Id: dump_entry.c,v 1.89 2010/05/01 22:04:08 tom Exp $")
-+MODULE_ID("$Id: dump_entry.c,v 1.109 2013/05/04 18:48:56 tom Exp $")
-
- #define INDENT 8
- #define DISCARD(string) string = ABSENT_STRING
-@@ -57,6 +57,7 @@
- static int outform; /* output format to use */
- static int sortmode; /* sort mode to use */
- static int width = 60; /* max line width for listings */
-+static int height = 65535; /* max number of lines for listings */
- static int column; /* current column, limited by 'width' */
- static int oldcol; /* last value of column before wrap */
- static bool pretty; /* true if we format if-then-else strings */
-@@ -72,7 +73,7 @@
- static NCURSES_CONST char *const *num_names;
- static NCURSES_CONST char *const *str_names;
-
--static const char *separator, *trailer;
-+static const char *separator = "", *trailer = "";
-
- /* cover various ports and variants of terminfo */
- #define V_ALLCAPS 0 /* all capabilities (SVr4, XSI, ncurses) */
-@@ -99,6 +100,15 @@
- #define StrIndirect(j) ((sortmode == S_NOSORT) ? (j) : str_indirect[j])
- #endif
-
-+static void failed(const char *) GCC_NORETURN;
-+
-+static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
- static void
- strncpy_DYN(DYNBUF * dst, const char *src, size_t need)
- {
-@@ -106,6 +116,8 @@
- if (want > dst->size) {
- dst->size += (want + 1024); /* be generous */
- dst->text = typeRealloc(char, dst->size, dst->text);
-+ if (dst->text == 0)
-+ failed("strncpy_DYN");
- }
- (void) strncpy(dst->text + dst->used, src, need);
- dst->used += need;
-@@ -172,11 +184,17 @@
- }
-
- void
--dump_init(const char *version, int mode, int sort, int twidth, int traceval,
-+dump_init(const char *version,
-+ int mode,
-+ int sort,
-+ int twidth,
-+ int theight,
-+ unsigned traceval,
- bool formatted)
- /* set up for entry display */
- {
- width = twidth;
-+ height = theight;
- pretty = formatted;
-
- /* versions */
-@@ -201,7 +219,7 @@
- bool_names = boolnames;
- num_names = numnames;
- str_names = strnames;
-- separator = twidth ? ", " : ",";
-+ separator = (twidth > 0 && theight > 1) ? ", " : ",";
- trailer = "\n\t";
- break;
-
-@@ -209,7 +227,7 @@
- bool_names = boolfnames;
- num_names = numfnames;
- str_names = strfnames;
-- separator = twidth ? ", " : ",";
-+ separator = (twidth > 0 && theight > 1) ? ", " : ",";
- trailer = "\n\t";
- break;
-
-@@ -291,7 +309,11 @@
- static void set_obsolete_termcaps(TERMTYPE *tp);
-
- /* is this the index of a function key string? */
--#define FNKEY(i) (((i)<= 65 && (i)>= 75) || ((i)<= 216 && (i)>= 268))
-+#define FNKEY(i) \
-+ (((i) >= STR_IDX(key_f0) && \
-+ (i) <= STR_IDX(key_f9)) || \
-+ ((i) >= STR_IDX(key_f11) && \
-+ (i) <= STR_IDX(key_f63)))
-
- /*
- * If we configure with a different Caps file, the offsets into the arrays
-@@ -393,8 +415,8 @@
- static void
- wrap_concat(const char *src)
- {
-- unsigned need = strlen(src);
-- unsigned want = strlen(separator) + need;
-+ size_t need = strlen(src);
-+ size_t want = strlen(separator) + need;
-
- if (column > INDENT
- && column + (int) want > width) {
-@@ -473,7 +495,7 @@
- }
-
- static char *
--fmt_complex(char *src, int level)
-+fmt_complex(TERMTYPE *tterm, const char *capability, char *src, int level)
- {
- bool percent = FALSE;
- bool params = has_params(src);
-@@ -509,13 +531,15 @@
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 1);
- if (*src++ == '?') {
-- src = fmt_complex(src, level + 1);
-+ src = fmt_complex(tterm, capability, src, level + 1);
- if (*src != '\0' && *src != '%') {
- strncpy_DYN(&tmpbuf, "\n", 1);
- indent_DYN(&tmpbuf, level + 1);
- }
- } else if (level == 1) {
-- _nc_warning("%%%c without %%?", *src);
-+ _nc_warning("%s: %%%c without %%? in %s",
-+ _nc_first_name(tterm->term_names),
-+ *src, capability);
- }
- }
- continue;
-@@ -529,9 +553,17 @@
- indent_DYN(&tmpbuf, level);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src++, 1);
-+ if (src[0] == '%'
-+ && src[1] != '\0'
-+ && (strchr("?e;", src[1])) == 0) {
-+ tmpbuf.text[tmpbuf.used++] = '\n';
-+ indent_DYN(&tmpbuf, level);
-+ }
- return src;
- }
-- _nc_warning("%%; without %%?");
-+ _nc_warning("%s: %%; without %%? in %s",
-+ _nc_first_name(tterm->term_names),
-+ capability);
- }
- break;
- case 'p':
-@@ -593,14 +625,28 @@
- column = INDENT; /* FIXME: workaround to prevent empty lines */
- } else {
- strcpy_DYN(&outbuf, tterm->term_names);
-+
-+ /*
-+ * Colon is legal in terminfo descriptions, but not in termcap.
-+ */
-+ if (!infodump) {
-+ char *p = outbuf.text;
-+ while (*p) {
-+ if (*p == ':') {
-+ *p = '=';
-+ }
-+ ++p;
-+ }
-+ }
- strcpy_DYN(&outbuf, separator);
- column = (int) outbuf.used;
-- force_wrap();
-+ if (height > 1)
-+ force_wrap();
- }
-
- for_each_boolean(j, tterm) {
- i = BoolIndirect(j);
-- name = ExtBoolname(tterm, i, bool_names);
-+ name = ExtBoolname(tterm, (int) i, bool_names);
- assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
-
- if (!version_filter(BOOLEAN, i))
-@@ -610,21 +656,21 @@
-
- predval = pred(BOOLEAN, i);
- if (predval != FAIL) {
-- (void) strcpy(buffer, name);
-+ _nc_STRCPY(buffer, name, sizeof(buffer));
- if (predval <= 0)
-- (void) strcat(buffer, "@");
-+ _nc_STRCAT(buffer, "@", sizeof(buffer));
- else if (i + 1 > num_bools)
- num_bools = i + 1;
- WRAP_CONCAT;
- }
- }
-
-- if (column != INDENT)
-+ if (column != INDENT && height > 1)
- force_wrap();
-
- for_each_number(j, tterm) {
- i = NumIndirect(j);
-- name = ExtNumname(tterm, i, num_names);
-+ name = ExtNumname(tterm, (int) i, num_names);
- assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
-
- if (!version_filter(NUMBER, i))
-@@ -635,9 +681,11 @@
- predval = pred(NUMBER, i);
- if (predval != FAIL) {
- if (tterm->Numbers[i] < 0) {
-- sprintf(buffer, "%s@", name);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%s@", name);
- } else {
-- sprintf(buffer, "%s#%d", name, tterm->Numbers[i]);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%s#%d", name, tterm->Numbers[i]);
- if (i + 1 > num_values)
- num_values = i + 1;
- }
-@@ -645,7 +693,7 @@
- }
- }
-
-- if (column != INDENT)
-+ if (column != INDENT && height > 1)
- force_wrap();
-
- len += (int) (num_bools
-@@ -670,7 +718,7 @@
-
- for_each_string(j, tterm) {
- i = StrIndirect(j);
-- name = ExtStrname(tterm, i, str_names);
-+ name = ExtStrname(tterm, (int) i, str_names);
- assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
-
- capability = tterm->Strings[i];
-@@ -698,14 +746,14 @@
- if (PRESENT(insert_character) || PRESENT(parm_ich)) {
- if (SAME_CAP(i, enter_insert_mode)
- && enter_insert_mode == ABSENT_STRING) {
-- (void) strcpy(buffer, "im=");
-+ _nc_STRCPY(buffer, "im=", sizeof(buffer));
- WRAP_CONCAT;
- continue;
- }
-
- if (SAME_CAP(i, exit_insert_mode)
- && exit_insert_mode == ABSENT_STRING) {
-- (void) strcpy(buffer, "ei=");
-+ _nc_STRCPY(buffer, "ei=", sizeof(buffer));
- WRAP_CONCAT;
- continue;
- }
-@@ -739,7 +787,8 @@
- num_strings = i + 1;
-
- if (!VALID_STRING(capability)) {
-- sprintf(buffer, "%s@", name);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%s@", name);
- WRAP_CONCAT;
- } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
- int params = ((i < (int) SIZEOF(parametrized))
-@@ -750,13 +799,14 @@
-
- if (cv == 0) {
- if (outform == F_TCONVERR) {
-- sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!",
-- name, srccap);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%s=!!! %s WILL NOT CONVERT !!!",
-+ name, srccap);
- } else if (suppress_untranslatable) {
- continue;
- } else {
- char *s = srccap, *d = buffer;
-- sprintf(d, "..%s=", name);
-+ _nc_SPRINTF(d, _nc_SLIMIT(sizeof(buffer)) "..%s=", name);
- d += strlen(d);
- while ((*d = *s++) != 0) {
- if (*d == ':') {
-@@ -769,7 +819,8 @@
- }
- }
- } else {
-- sprintf(buffer, "%s=%s", name, cv);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%s=%s", name, cv);
- }
- len += (int) strlen(capability) + 1;
- WRAP_CONCAT;
-@@ -783,7 +834,7 @@
- if (pretty
- && (outform == F_TERMINFO
- || outform == F_VARIABLE)) {
-- fmt_complex(src, 1);
-+ fmt_complex(tterm, name, src, 1);
- } else {
- strcpy_DYN(&tmpbuf, src);
- }
-@@ -793,7 +844,9 @@
- }
- }
- /* e.g., trimmed_sgr0 */
-- if (capability != tterm->Strings[i])
-+ if (capability != ABSENT_STRING &&
-+ capability != CANCELLED_STRING &&
-+ capability != tterm->Strings[i])
- free(capability);
- }
- len += (int) (num_strings * 2);
-@@ -805,11 +858,13 @@
- */
- if (tversion == V_HPUX) {
- if (VALID_STRING(memory_lock)) {
-- (void) sprintf(buffer, "meml=%s", memory_lock);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "meml=%s", memory_lock);
- WRAP_CONCAT;
- }
- if (VALID_STRING(memory_unlock)) {
-- (void) sprintf(buffer, "memu=%s", memory_unlock);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "memu=%s", memory_unlock);
- WRAP_CONCAT;
- }
- } else if (tversion == V_AIX) {
-@@ -832,9 +887,41 @@
- tp[0] = '\0';
-
- if (box_ok) {
-- (void) strcpy(buffer, "box1=");
-- (void) strcat(buffer, _nc_tic_expand(boxchars,
-- outform == F_TERMINFO, numbers));
-+ char *tmp = _nc_tic_expand(boxchars,
-+ (outform == F_TERMINFO),
-+ numbers);
-+ _nc_STRCPY(buffer, "box1=", sizeof(buffer));
-+ while (*tmp != '\0') {
-+ size_t have = strlen(buffer);
-+ size_t next = strlen(tmp);
-+ size_t want = have + next + 1;
-+ size_t last = next;
-+ char save = '\0';
-+
-+ /*
-+ * If the expanded string is too long for the buffer,
-+ * chop it off and save the location where we chopped it.
-+ */
-+ if (want >= sizeof(buffer)) {
-+ save = tmp[last];
-+ tmp[last] = '\0';
-+ }
-+ _nc_STRCAT(buffer, tmp, sizeof(buffer));
-+
-+ /*
-+ * If we chopped the buffer, replace the missing piece and
-+ * shift everything to append the remainder.
-+ */
-+ if (save != '\0') {
-+ next = 0;
-+ tmp[last] = save;
-+ while ((tmp[next] = tmp[last + next]) != '\0') {
-+ ++next;
-+ }
-+ } else {
-+ break;
-+ }
-+ }
- WRAP_CONCAT;
- }
- }
-@@ -846,7 +933,7 @@
- */
- if (outcount) {
- bool trimmed = FALSE;
-- j = outbuf.used;
-+ j = (PredIdx) outbuf.used;
- if (j >= 2
- && outbuf.text[j - 1] == '\t'
- && outbuf.text[j - 2] == '\n') {
-@@ -926,7 +1013,7 @@
- char name[10];
-
- for (n = 0; n <= 10; ++n) {
-- sprintf(name, "lf%d", n);
-+ _nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "lf%d", n);
- if ((cap = find_string(tterm, name)) != ABSENT_STRING
- && kill_string(tterm, cap)) {
- target -= (int) (strlen(cap) + 5);
-@@ -951,7 +1038,7 @@
- char name[10];
-
- for (n = 60; n >= 0; --n) {
-- sprintf(name, "kf%d", n);
-+ _nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "kf%d", n);
- if ((cap = find_string(tterm, name)) != ABSENT_STRING
- && kill_string(tterm, cap)) {
- target -= (int) (strlen(cap) + 5);
-@@ -1064,7 +1151,7 @@
- */
- unsigned n;
- for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) {
-- const char *name = ExtStrname(tterm, n, strnames);
-+ const char *name = ExtStrname(tterm, (int) n, strnames);
-
- if (VALID_STRING(tterm->Strings[n])) {
- set_attributes = ABSENT_STRING;
-@@ -1144,21 +1231,45 @@
-
- if (outform == F_TERMCAP || outform == F_TCONVERR)
- trim_trailing();
-- (void) sprintf(buffer, "%s%s", infodump ? "use=" : "tc=", name);
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "%s%s", infodump ? "use=" : "tc=", name);
- wrap_concat(buffer);
- }
-
- int
- show_entry(void)
- {
-- trim_trailing();
-+ /*
-+ * Trim any remaining whitespace.
-+ */
-+ if (outbuf.used != 0) {
-+ bool infodump = (outform != F_TERMCAP && outform != F_TCONVERR);
-+ char delim = (char) (infodump ? ',' : ':');
-+ int j;
-+
-+ for (j = (int) outbuf.used - 1; j > 0; --j) {
-+ char ch = outbuf.text[j];
-+ if (ch == '\n') {
-+ ;
-+ } else if (isspace(UChar(ch))) {
-+ outbuf.used = (size_t) j;
-+ } else if (!infodump && ch == '\\') {
-+ outbuf.used = (size_t) j;
-+ } else if (ch == delim && (j == 0 || outbuf.text[j - 1] != '\\')) {
-+ outbuf.used = (size_t) (j + 1);
-+ } else {
-+ break;
-+ }
-+ }
-+ outbuf.text[outbuf.used] = '\0';
-+ }
- (void) fputs(outbuf.text, stdout);
- putchar('\n');
- return (int) outbuf.used;
- }
-
- void
--compare_entry(void (*hook) (PredType t, PredIdx i, const char *name),
-+compare_entry(PredHook hook,
- TERMTYPE *tp GCC_UNUSED,
- bool quiet)
- /* compare two entries */
-@@ -1170,7 +1281,7 @@
- fputs(" comparing booleans.\n", stdout);
- for_each_boolean(j, tp) {
- i = BoolIndirect(j);
-- name = ExtBoolname(tp, i, bool_names);
-+ name = ExtBoolname(tp, (int) i, bool_names);
-
- if (isObsolete(outform, name))
- continue;
-@@ -1182,7 +1293,7 @@
- fputs(" comparing numbers.\n", stdout);
- for_each_number(j, tp) {
- i = NumIndirect(j);
-- name = ExtNumname(tp, i, num_names);
-+ name = ExtNumname(tp, (int) i, num_names);
-
- if (isObsolete(outform, name))
- continue;
-@@ -1194,7 +1305,7 @@
- fputs(" comparing strings.\n", stdout);
- for_each_string(j, tp) {
- i = StrIndirect(j);
-- name = ExtStrname(tp, i, str_names);
-+ name = ExtStrname(tp, (int) i, str_names);
-
- if (isObsolete(outform, name))
- continue;
-Index: progs/dump_entry.h
-Prereq: 1.30
---- ncurses-5.9/progs/dump_entry.h 2008-07-12 20:23:03.000000000 +0000
-+++ ncurses-5.9-20130504/progs/dump_entry.h 2011-08-06 16:33:05.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -32,9 +32,8 @@
- * and: Thomas E. Dickey 1996-on *
- ****************************************************************************/
-
--
- /*
-- * $Id: dump_entry.h,v 1.30 2008/07/12 20:23:03 tom Exp $
-+ * $Id: dump_entry.h,v 1.32 2011/08/06 16:33:05 tom Exp $
- *
- * Dump control definitions and variables
- */
-@@ -64,16 +63,17 @@
-
- typedef unsigned PredType;
- typedef unsigned PredIdx;
--typedef int (*PredFunc)(PredType, PredIdx);
-+typedef int (*PredFunc) (PredType, PredIdx);
-+typedef void (*PredHook) (PredType, PredIdx, const char *);
-
- extern NCURSES_CONST char *nametrans(const char *);
- extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int);
- extern int show_entry(void);
--extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool);
-+extern void compare_entry(PredHook, TERMTYPE *, bool);
- extern void dump_entry(TERMTYPE *, bool, bool, int, PredFunc);
--extern void dump_init(const char *, int, int, int, int, bool);
-+extern void dump_init(const char *, int, int, int, int, unsigned, bool);
- extern void dump_uses(const char *, bool);
--extern void repair_acsc(TERMTYPE * tp);
-+extern void repair_acsc(TERMTYPE *tp);
-
- #define FAIL -1
-
-Index: progs/infocmp.c
-Prereq: 1.105
---- ncurses-5.9/progs/infocmp.c 2010-05-01 22:04:08.000000000 +0000
-+++ ncurses-5.9-20130504/progs/infocmp.c 2013-04-13 22:15:14.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -42,7 +42,7 @@
-
- #include <dump_entry.h>
-
--MODULE_ID("$Id: infocmp.c,v 1.105 2010/05/01 22:04:08 tom Exp $")
-+MODULE_ID("$Id: infocmp.c,v 1.124 2013/04/13 22:15:14 Miroslav.Lichvar Exp $")
-
- #define L_CURL "{"
- #define R_CURL "}"
-@@ -70,8 +70,9 @@
- static const char *s_absent = "NULL";
- static const char *s_cancel = "NULL";
- static const char *tversion; /* terminfo version selected */
--static int itrace; /* trace flag for debugging */
-+static unsigned itrace; /* trace flag for debugging */
- static int mwidth = 60;
-+static int mheight = 65535;
- static int numbers = 0; /* format "%'char'" to/from "%{number}" */
- static int outform = F_TERMINFO; /* output format */
- static int sortmode; /* sort_mode */
-@@ -86,27 +87,52 @@
- static bool ignorepads; /* ignore pad prefixes when diffing */
-
- #if NO_LEAKS
-+
-+typedef struct {
-+ ENTRY *head;
-+ ENTRY *tail;
-+} ENTERED;
-+
-+static ENTERED *entered;
-+
- #undef ExitProgram
- static void ExitProgram(int code) GCC_NORETURN;
- /* prototype is to get gcc to accept the noreturn attribute */
- static void
- ExitProgram(int code)
- {
-- while (termcount-- > 0)
-- _nc_free_termtype(&entries[termcount].tterm);
-+ int n;
-+
-+ for (n = 0; n < termcount; ++n) {
-+ ENTRY *new_head = _nc_head;
-+ ENTRY *new_tail = _nc_tail;
-+ _nc_head = entered[n].head;
-+ _nc_tail = entered[n].tail;
-+ _nc_free_entries(entered[n].head);
-+ _nc_head = new_head;
-+ _nc_tail = new_tail;
-+ }
- _nc_leaks_dump_entry();
- free(entries);
-+ free(entered);
- _nc_free_tic(code);
- }
- #endif
-
-+static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
- static char *
- canonical_name(char *ptr, char *buf)
- /* extract the terminal type's primary name */
- {
- char *bp;
-
-- (void) strcpy(buf, ptr);
-+ _nc_STRCPY(buf, ptr, NAMESIZE);
- if ((bp = strchr(buf, '|')) != 0)
- *bp = '\0';
-
-@@ -307,13 +333,13 @@
- {
- switch (val) {
- case ABSENT_NUMERIC:
-- strcpy(buf, s_absent);
-+ _nc_STRCPY(buf, s_absent, MAX_STRING);
- break;
- case CANCELLED_NUMERIC:
-- strcpy(buf, s_cancel);
-+ _nc_STRCPY(buf, s_cancel, MAX_STRING);
- break;
- default:
-- sprintf(buf, "%d", val);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(MAX_STRING) "%d", val);
- break;
- }
- }
-@@ -323,31 +349,90 @@
- /* display the value of a string capability */
- {
- if (val == ABSENT_STRING)
-- strcpy(buf, s_absent);
-+ _nc_STRCPY(buf, s_absent, MAX_STRING);
- else if (val == CANCELLED_STRING)
-- strcpy(buf, s_cancel);
-+ _nc_STRCPY(buf, s_cancel, MAX_STRING);
- else {
-- sprintf(buf, "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val));
-+ _nc_SPRINTF(buf, _nc_SLIMIT(MAX_STRING)
-+ "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val));
-+ }
-+}
-+
-+/*
-+ * Show "comparing..." message for the given terminal names.
-+ */
-+static void
-+show_comparing(char **names)
-+{
-+ if (itrace) {
-+ switch (compare) {
-+ case C_DIFFERENCE:
-+ (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
-+ break;
-+
-+ case C_COMMON:
-+ (void) fprintf(stderr, "%s: dumping common capabilities\n", _nc_progname);
-+ break;
-+
-+ case C_NAND:
-+ (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
-+ break;
-+ }
-+ }
-+ if (*names) {
-+ printf("comparing %s", *names++);
-+ if (*names) {
-+ printf(" to %s", *names++);
-+ while (*names) {
-+ printf(", %s", *names++);
-+ }
-+ }
-+ printf(".\n");
- }
- }
-
-+/*
-+ * ncurses stores two types of non-standard capabilities:
-+ * a) capabilities listed past the "STOP-HERE" comment in the Caps file.
-+ * These are used in the terminfo source file to provide data for termcaps,
-+ * e.g., when there is no equivalent capability in terminfo, as well as for
-+ * widely-used non-standard capabilities.
-+ * b) user-definable capabilities, via "tic -x".
-+ *
-+ * However, if "-x" is omitted from the tic command, both types of
-+ * non-standard capability are not loaded into the terminfo database. This
-+ * macro is used for limit-checks against the symbols that tic uses to omit
-+ * the two types of non-standard entry.
-+ */
-+#define check_user_definable(n,limit) if (!_nc_user_definable && (n) > (limit)) break
-+
-+/*
-+ * Use these macros to simplify loops on C_COMMON and C_NAND:
-+ */
-+#define for_each_entry() while (entries[extra].tterm.term_names)
-+#define next_entry (&(entries[extra++].tterm))
-+
- static void
- compare_predicate(PredType type, PredIdx idx, const char *name)
- /* predicate function to use for entry difference reports */
- {
-- register ENTRY *e1 = &entries[0];
-- register ENTRY *e2 = &entries[1];
-- char buf1[MAX_STRING], buf2[MAX_STRING];
-+ ENTRY *e1 = &entries[0];
-+ ENTRY *e2 = &entries[1];
-+ char buf1[MAX_STRING];
-+ char buf2[MAX_STRING];
- int b1, b2;
- int n1, n2;
- char *s1, *s2;
-+ bool found;
-+ int extra = 1;
-
- switch (type) {
- case CMP_BOOLEAN:
-+ check_user_definable(idx, BOOLWRITE);
- b1 = e1->tterm.Booleans[idx];
-- b2 = e2->tterm.Booleans[idx];
- switch (compare) {
- case C_DIFFERENCE:
-+ b2 = next_entry->Booleans[idx];
- if (!(b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) && b1 != b2)
- (void) printf("\t%s: %s%s%s.\n",
- name,
-@@ -357,45 +442,93 @@
- break;
-
- case C_COMMON:
-- if (b1 == b2 && b1 != ABSENT_BOOLEAN)
-- (void) printf("\t%s= %s.\n", name, dump_boolean(b1));
-+ if (b1 != ABSENT_BOOLEAN) {
-+ found = TRUE;
-+ for_each_entry() {
-+ b2 = next_entry->Booleans[idx];
-+ if (b1 != b2) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) printf("\t%s= %s.\n", name, dump_boolean(b1));
-+ }
-+ }
- break;
-
- case C_NAND:
-- if (b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN)
-- (void) printf("\t!%s.\n", name);
-+ if (b1 == ABSENT_BOOLEAN) {
-+ found = TRUE;
-+ for_each_entry() {
-+ b2 = next_entry->Booleans[idx];
-+ if (b1 != b2) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) printf("\t!%s.\n", name);
-+ }
-+ }
- break;
- }
- break;
-
- case CMP_NUMBER:
-+ check_user_definable(idx, NUMWRITE);
- n1 = e1->tterm.Numbers[idx];
-- n2 = e2->tterm.Numbers[idx];
-- dump_numeric(n1, buf1);
-- dump_numeric(n2, buf2);
- switch (compare) {
- case C_DIFFERENCE:
-- if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2)
-+ n2 = next_entry->Numbers[idx];
-+ if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2) {
-+ dump_numeric(n1, buf1);
-+ dump_numeric(n2, buf2);
- (void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
-+ }
- break;
-
- case C_COMMON:
-- if (n1 != ABSENT_NUMERIC && n2 != ABSENT_NUMERIC && n1 == n2)
-- (void) printf("\t%s= %s.\n", name, buf1);
-+ if (n1 != ABSENT_NUMERIC) {
-+ found = TRUE;
-+ for_each_entry() {
-+ n2 = next_entry->Numbers[idx];
-+ if (n1 != n2) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ dump_numeric(n1, buf1);
-+ (void) printf("\t%s= %s.\n", name, buf1);
-+ }
-+ }
- break;
-
- case C_NAND:
-- if (n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)
-- (void) printf("\t!%s.\n", name);
-+ if (n1 == ABSENT_NUMERIC) {
-+ found = TRUE;
-+ for_each_entry() {
-+ n2 = next_entry->Numbers[idx];
-+ if (n1 != n2) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) printf("\t!%s.\n", name);
-+ }
-+ }
- break;
- }
- break;
-
- case CMP_STRING:
-+ check_user_definable(idx, STRWRITE);
- s1 = e1->tterm.Strings[idx];
-- s2 = e2->tterm.Strings[idx];
- switch (compare) {
- case C_DIFFERENCE:
-+ s2 = next_entry->Strings[idx];
- if (capcmp(idx, s1, s2)) {
- dump_string(s1, buf1);
- dump_string(s2, buf2);
-@@ -405,13 +538,35 @@
- break;
-
- case C_COMMON:
-- if (s1 && s2 && !capcmp(idx, s1, s2))
-- (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1));
-+ if (s1 != ABSENT_STRING) {
-+ found = TRUE;
-+ for_each_entry() {
-+ s2 = next_entry->Strings[idx];
-+ if (capcmp(idx, s1, s2) != 0) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1));
-+ }
-+ }
- break;
-
- case C_NAND:
-- if (!s1 && !s2)
-- (void) printf("\t!%s.\n", name);
-+ if (s1 == ABSENT_STRING) {
-+ found = TRUE;
-+ for_each_entry() {
-+ s2 = next_entry->Strings[idx];
-+ if (s2 != s1) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) printf("\t!%s.\n", name);
-+ }
-+ }
- break;
- }
- break;
-@@ -430,16 +585,37 @@
- break;
-
- case C_COMMON:
-- if (e1->nuses && e2->nuses && useeq(e1, e2)) {
-- (void) fputs("\tuse: ", stdout);
-- print_uses(e1, stdout);
-- fputs(".\n", stdout);
-+ if (e1->nuses) {
-+ found = TRUE;
-+ for_each_entry() {
-+ e2 = &entries[extra++];
-+ if (e2->nuses != e1->nuses || !useeq(e1, e2)) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) fputs("\tuse: ", stdout);
-+ print_uses(e1, stdout);
-+ fputs(".\n", stdout);
-+ }
- }
- break;
-
- case C_NAND:
-- if (!e1->nuses && !e2->nuses)
-- (void) printf("\t!use.\n");
-+ if (!e1->nuses) {
-+ found = TRUE;
-+ for_each_entry() {
-+ e2 = &entries[extra++];
-+ if (e2->nuses != e1->nuses) {
-+ found = FALSE;
-+ break;
-+ }
-+ }
-+ if (found) {
-+ (void) printf("\t!use.\n");
-+ }
-+ }
- break;
- }
- }
-@@ -556,7 +732,7 @@
- }
-
- static bool
--same_param(const char *table, const char *param, unsigned length)
-+same_param(const char *table, const char *param, size_t length)
- {
- bool result = FALSE;
- if (strncmp(table, param, length) == 0) {
-@@ -581,15 +757,15 @@
- size_t tlen = strlen(ap->from);
-
- if (same_param(ap->from, ep, tlen)) {
-- (void) strcat(dst, ap->to);
-+ _nc_STRCAT(dst, ap->to, MAX_TERMINFO_LENGTH);
- found = TRUE;
- break;
- }
- }
-
- if (!found)
-- (void) strcat(dst, ep);
-- (void) strcat(dst, ";");
-+ _nc_STRCAT(dst, ep, MAX_TERMINFO_LENGTH);
-+ _nc_STRCAT(dst, ";", MAX_TERMINFO_LENGTH);
- } while
- ((ep = strtok((char *) 0, ";")));
-
-@@ -682,7 +858,11 @@
- && (next = (size_t) csi + len)
- && ((sp[next] == 'h') || (sp[next] == 'l'))) {
-
-- (void) strcpy(buf2, (sp[next] == 'h') ? "ECMA+" : "ECMA-");
-+ _nc_STRCPY(buf2,
-+ ((sp[next] == 'h')
-+ ? "ECMA+"
-+ : "ECMA-"),
-+ sizeof(buf2));
- (void) strncpy(buf3, sp + csi, len);
- buf3[len] = '\0';
- len += (size_t) csi + 1;
-@@ -699,7 +879,11 @@
- && (next = (size_t) csi + 1 + len)
- && ((sp[next] == 'h') || (sp[next] == 'l'))) {
-
-- (void) strcpy(buf2, (sp[next] == 'h') ? "DEC+" : "DEC-");
-+ _nc_STRCPY(buf2,
-+ ((sp[next] == 'h')
-+ ? "DEC+"
-+ : "DEC-"),
-+ sizeof(buf2));
- (void) strncpy(buf3, sp + csi + 1, len);
- buf3[len] = '\0';
- len += (size_t) csi + 2;
-@@ -715,7 +899,7 @@
- && (next = (size_t) csi + len)
- && sp[next] == 'm') {
-
-- (void) strcpy(buf2, "SGR:");
-+ _nc_STRCPY(buf2, "SGR:", sizeof(buf2));
- (void) strncpy(buf3, sp + csi, len);
- buf3[len] = '\0';
- len += (size_t) csi + 1;
-@@ -727,8 +911,8 @@
- && (csi = skip_csi(sp)) != 0
- && sp[csi] == 'm') {
- len = (size_t) csi + 1;
-- (void) strcpy(buf2, "SGR:");
-- strcat(buf2, ecma_highlights[0].to);
-+ _nc_STRCPY(buf2, "SGR:", sizeof(buf2));
-+ _nc_STRCAT(buf2, ecma_highlights[0].to, sizeof(buf2));
- expansion = buf2;
- }
-
-@@ -739,7 +923,7 @@
- expansion = "RSR";
- len = 1;
- } else {
-- (void) sprintf(buf2, "1;%dr", tp_lines);
-+ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "1;%dr", tp_lines);
- len = strlen(buf2);
- if (strncmp(buf2, sp + csi, len) == 0)
- expansion = "RSR";
-@@ -750,12 +934,12 @@
- /* now check for home-down */
- if (!expansion
- && (csi = skip_csi(sp)) != 0) {
-- (void) sprintf(buf2, "%d;1H", tp_lines);
-+ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "%d;1H", tp_lines);
- len = strlen(buf2);
- if (strncmp(buf2, sp + csi, len) == 0) {
- expansion = "LL";
- } else {
-- (void) sprintf(buf2, "%dH", tp_lines);
-+ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "%dH", tp_lines);
- len = strlen(buf2);
- if (strncmp(buf2, sp + csi, len) == 0) {
- expansion = "LL";
-@@ -795,12 +979,16 @@
- int i, n;
-
- memset(heads, 0, sizeof(heads));
-- dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, itrace, FALSE);
-+ dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, 65535, itrace, FALSE);
-
- for (n = 0; n < argc && n < MAXCOMPARE; n++) {
- if (freopen(argv[n], "r", stdin) == 0)
- _nc_err_abort("Can't open %s", argv[n]);
-
-+#if NO_LEAKS
-+ entered[n].head = _nc_head;
-+ entered[n].tail = _nc_tail;
-+#endif
- _nc_head = _nc_tail = 0;
-
- /* parse entries out of the source file */
-@@ -925,6 +1113,11 @@
- #endif
- if (!(entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp))) {
- char name1[NAMESIZE], name2[NAMESIZE];
-+ char *names[3];
-+
-+ names[0] = name1;
-+ names[1] = name2;
-+ names[2] = 0;
-
- entries[0] = *qp;
- entries[1] = *rp;
-@@ -934,29 +1127,17 @@
-
- switch (compare) {
- case C_DIFFERENCE:
-- if (itrace)
-- (void) fprintf(stderr,
-- "%s: dumping differences\n",
-- _nc_progname);
-- (void) printf("comparing %s to %s.\n", name1, name2);
-+ show_comparing(names);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
-- if (itrace)
-- (void) fprintf(stderr,
-- "%s: dumping common capabilities\n",
-- _nc_progname);
-- (void) printf("comparing %s to %s.\n", name1, name2);
-+ show_comparing(names);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
-- if (itrace)
-- (void) fprintf(stderr,
-- "%s: dumping differences\n",
-- _nc_progname);
-- (void) printf("comparing %s to %s.\n", name1, name2);
-+ show_comparing(names);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
-@@ -974,7 +1155,9 @@
- "Usage: infocmp [options] [-A directory] [-B directory] [termname...]"
- ,""
- ,"Options:"
-+ ," -0 print single-row"
- ," -1 print single-column"
-+ ," -K use termcap-names and BSD syntax"
- ," -C use termcap-names"
- ," -F compare terminfo-files"
- ," -I use terminfo-names"
-@@ -982,6 +1165,7 @@
- ," -R subset (see manpage)"
- ," -T eliminate size limits (test)"
- ," -U eliminate post-processing of entries"
-+ ," -D print database locations"
- ," -V print version"
- #if NCURSES_XNAMES
- ," -a with -F, list commented-out caps"
-@@ -1030,19 +1214,25 @@
- any_initializer(const char *fmt, const char *type)
- {
- static char *initializer;
-+ static size_t need;
- char *s;
-
-- if (initializer == 0)
-- initializer = (char *) malloc(strlen(entries->tterm.term_names) +
-- strlen(type) + strlen(fmt));
-+ if (initializer == 0) {
-+ need = (strlen(entries->tterm.term_names)
-+ + strlen(type)
-+ + strlen(fmt));
-+ initializer = (char *) malloc(need + 1);
-+ if (initializer == 0)
-+ failed("any_initializer");
-+ }
-
-- (void) strcpy(initializer, entries->tterm.term_names);
-+ _nc_STRCPY(initializer, entries->tterm.term_names, need);
- for (s = initializer; *s != 0 && *s != '|'; s++) {
- if (!isalnum(UChar(*s)))
- *s = '_';
- }
- *s = 0;
-- (void) sprintf(s, fmt, type);
-+ _nc_SPRINTF(s, _nc_SLIMIT(need) fmt, type);
- return initializer;
- }
-
-@@ -1073,9 +1263,10 @@
-
- if (VALID_STRING(term->Strings[n])) {
- tp = buf;
-+#define TP_LIMIT ((MAX_STRING - 5) - (size_t)(tp - buf))
- *tp++ = '"';
- for (sp = term->Strings[n];
-- *sp != 0 && (tp - buf) < MAX_STRING - 6;
-+ *sp != 0 && TP_LIMIT > 2;
- sp++) {
- if (isascii(UChar(*sp))
- && isprint(UChar(*sp))
-@@ -1083,14 +1274,15 @@
- && *sp != '"')
- *tp++ = *sp;
- else {
-- (void) sprintf(tp, "\\%03o", UChar(*sp));
-+ _nc_SPRINTF(tp, _nc_SLIMIT(TP_LIMIT) "\\%03o", UChar(*sp));
- tp += 4;
- }
- }
- *tp++ = '"';
- *tp = '\0';
- (void) printf("static char %-20s[] = %s;\n",
-- string_variable(ExtStrname(term, n, strnames)), buf);
-+ string_variable(ExtStrname(term, (int) n, strnames)),
-+ buf);
- }
- }
- printf("\n");
-@@ -1116,7 +1308,7 @@
- break;
- }
- (void) printf("\t/* %3u: %-8s */\t%s,\n",
-- n, ExtBoolname(term, n, boolnames), str);
-+ n, ExtBoolname(term, (int) n, boolnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
-@@ -1132,12 +1324,12 @@
- str = "CANCELLED_NUMERIC";
- break;
- default:
-- sprintf(buf, "%d", term->Numbers[n]);
-+ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "%d", term->Numbers[n]);
- str = buf;
- break;
- }
- (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
-- ExtNumname(term, n, numnames), str);
-+ ExtNumname(term, (int) n, numnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
-@@ -1150,10 +1342,10 @@
- else if (term->Strings[n] == CANCELLED_STRING)
- str = "CANCELLED_STRING";
- else {
-- str = string_variable(ExtStrname(term, n, strnames));
-+ str = string_variable(ExtStrname(term, (int) n, strnames));
- }
- (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
-- ExtStrname(term, n, strnames), str);
-+ ExtStrname(term, (int) n, strnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
-@@ -1165,15 +1357,15 @@
- name_initializer("string_ext"), L_CURL);
- for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
- (void) printf("\t/* %3u: bool */\t\"%s\",\n",
-- n, ExtBoolname(term, n, boolnames));
-+ n, ExtBoolname(term, (int) n, boolnames));
- }
- for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
- (void) printf("\t/* %3u: num */\t\"%s\",\n",
-- n, ExtNumname(term, n, numnames));
-+ n, ExtNumname(term, (int) n, numnames));
- }
- for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
- (void) printf("\t/* %3u: str */\t\"%s\",\n",
-- n, ExtStrname(term, n, strnames));
-+ n, ExtStrname(term, (int) n, strnames));
- }
- (void) printf("%s;\n", R_CURL);
- }
-@@ -1247,6 +1439,23 @@
- return terminal;
- }
-
-+/*
-+ * Show the databases that infocmp knows about. The location to which it writes is
-+ */
-+static void
-+show_databases(void)
-+{
-+ DBDIRS state;
-+ int offset;
-+ const char *path2;
-+
-+ _nc_first_db(&state, &offset);
-+ while ((path2 = _nc_next_db(&state, &offset)) != 0) {
-+ printf("%s\n", path2);
-+ }
-+ _nc_last_db();
-+}
-+
- /***************************************************************************
- *
- * Main sequence
-@@ -1269,7 +1478,7 @@
- /* Also avoid overflowing smaller stacks on systems like AmigaOS */
- path *tfile = 0;
- char **tname = 0;
-- int maxterms;
-+ size_t maxterms;
-
- char **myargv;
-
-@@ -1287,18 +1496,27 @@
- #if NCURSES_XNAMES
- use_extended_names(FALSE);
- #endif
-+ _nc_strict_bsd = 0;
-
- _nc_progname = _nc_rootname(argv[0]);
-
- /* make sure we have enough space to add two terminal entries */
- myargv = typeCalloc(char *, (size_t) (argc + 3));
-+ if (myargv == 0)
-+ failed("myargv");
-+
- memcpy(myargv, argv, (sizeof(char *) * (size_t) argc));
- argv = myargv;
-
- while ((c = getopt(argc,
- argv,
-- "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != -1) {
-+ "01A:aB:CcDdEeFfGgIiKLlnpqR:rs:TtUuVv:w:x")) != -1) {
- switch (c) {
-+ case '0':
-+ mwidth = 65535;
-+ mheight = 1;
-+ break;
-+
- case '1':
- mwidth = 0;
- break;
-@@ -1317,6 +1535,9 @@
- restdir = optarg;
- break;
-
-+ case 'K':
-+ _nc_strict_bsd = 1;
-+ /* FALLTHRU */
- case 'C':
- outform = F_TERMCAP;
- tversion = "BSD";
-@@ -1324,6 +1545,11 @@
- sortmode = S_TERMCAP;
- break;
-
-+ case 'D':
-+ show_databases();
-+ ExitProgram(EXIT_SUCCESS);
-+ break;
-+
- case 'c':
- compare = C_COMMON;
- break;
-@@ -1441,7 +1667,7 @@
- ExitProgram(EXIT_SUCCESS);
-
- case 'v':
-- itrace = optarg_to_number();
-+ itrace = (unsigned) optarg_to_number();
- set_trace_level(itrace);
- break;
-
-@@ -1460,10 +1686,17 @@
- }
- }
-
-- maxterms = (argc + 2 - optind);
-- tfile = typeMalloc(path, maxterms);
-- tname = typeCalloc(char *, maxterms);
-- entries = typeCalloc(ENTRY, maxterms);
-+ maxterms = (size_t) (argc + 2 - optind);
-+ if ((tfile = typeMalloc(path, maxterms)) == 0)
-+ failed("tfile");
-+ if ((tname = typeCalloc(char *, maxterms)) == 0)
-+ failed("tname");
-+ if ((entries = typeCalloc(ENTRY, maxterms)) == 0)
-+ failed("entries");
-+#if NO_LEAKS
-+ if ((entered = typeCalloc(ENTERED, maxterms)) == 0)
-+ failed("entered");
-+#endif
-
- if (tfile == 0
- || tname == 0
-@@ -1476,9 +1709,6 @@
- if (sortmode == S_DEFAULT)
- sortmode = S_TERMINFO;
-
-- /* set up for display */
-- dump_init(tversion, outform, sortmode, mwidth, itrace, formatted);
--
- /* make sure we have at least one terminal name to work with */
- if (optind >= argc)
- argv[argc++] = terminal_env();
-@@ -1487,9 +1717,23 @@
- if (compare != C_DEFAULT && optind >= argc - 1)
- argv[argc++] = terminal_env();
-
-+ /* exactly one terminal name with no options means display it */
- /* exactly two terminal names with no options means do -d */
-- if (argc - optind == 2 && compare == C_DEFAULT)
-- compare = C_DIFFERENCE;
-+ if (compare == C_DEFAULT) {
-+ switch (argc - optind) {
-+ default:
-+ fprintf(stderr, "%s: too many names to compare\n", _nc_progname);
-+ ExitProgram(EXIT_FAILURE);
-+ case 1:
-+ break;
-+ case 2:
-+ compare = C_DIFFERENCE;
-+ break;
-+ }
-+ }
-+
-+ /* set up for display */
-+ dump_init(tversion, outform, sortmode, mwidth, mheight, itrace, formatted);
-
- if (!filecompare) {
- /* grab the entries */
-@@ -1507,9 +1751,11 @@
- #else
- #define LEAF_FMT "%02x"
- #endif
-- (void) sprintf(tfile[termcount], "%s/" LEAF_FMT "/%s",
-- directory,
-- UChar(*argv[optind]), argv[optind]);
-+ _nc_SPRINTF(tfile[termcount],
-+ _nc_SLIMIT(sizeof(path))
-+ "%s/" LEAF_FMT "/%s",
-+ directory,
-+ UChar(*argv[optind]), argv[optind]);
- if (itrace)
- (void) fprintf(stderr,
- "%s: reading entry %s from file %s\n",
-@@ -1599,27 +1845,17 @@
- break;
-
- case C_DIFFERENCE:
-- if (itrace)
-- (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
-- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
-+ show_comparing(tname);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
-- if (itrace)
-- (void) fprintf(stderr,
-- "%s: dumping common capabilities\n",
-- _nc_progname);
-- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
-+ show_comparing(tname);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
-- if (itrace)
-- (void) fprintf(stderr,
-- "%s: dumping differences\n",
-- _nc_progname);
-- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
-+ show_comparing(tname);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
-@@ -1640,15 +1876,16 @@
- break;
- }
- }
-- } else if (compare == C_USEALL)
-+ } else if (compare == C_USEALL) {
- (void) fprintf(stderr, "Sorry, -u doesn't work with -F\n");
-- else if (compare == C_DEFAULT)
-+ } else if (compare == C_DEFAULT) {
- (void) fprintf(stderr, "Use `tic -[CI] <file>' for this.\n");
-- else if (argc - optind != 2)
-+ } else if (argc - optind != 2) {
- (void) fprintf(stderr,
- "File comparison needs exactly two file arguments.\n");
-- else
-+ } else {
- file_comparison(argc - optind, argv + optind);
-+ }
-
- MAIN_LEAKS();
- ExitProgram(EXIT_SUCCESS);
-Index: progs/progs.priv.h
-Prereq: 1.34
---- ncurses-5.9/progs/progs.priv.h 2008-08-03 17:43:05.000000000 +0000
-+++ ncurses-5.9-20130504/progs/progs.priv.h 2012-02-22 22:11:27.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,7 +30,7 @@
- * Author: Thomas E. Dickey 1997-on *
- ****************************************************************************/
- /*
-- * $Id: progs.priv.h,v 1.34 2008/08/03 17:43:05 tom Exp $
-+ * $Id: progs.priv.h,v 1.39 2012/02/22 22:11:27 tom Exp $
- *
- * progs.priv.h
- *
-@@ -42,7 +42,7 @@
- #if USE_RCS_IDS
- #define MODULE_ID(id) static const char Ident[] = id;
- #else
--#define MODULE_ID(id) /*nothing*/
-+#define MODULE_ID(id) /*nothing */
- #endif
-
- #include <stdlib.h>
-@@ -90,6 +90,14 @@
- # endif
- #endif
-
-+#if HAVE_INTTYPES_H
-+# include <inttypes.h>
-+#else
-+# if HAVE_STDINT_H
-+# include <stdint.h>
-+# endif
-+#endif
-+
- #include <assert.h>
- #include <errno.h>
-
-@@ -99,7 +107,7 @@
-
- #if HAVE_GETOPT_H
- #include <getopt.h>
--#else
-+#elif !defined(HAVE_GETOPT_HEADER)
- /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its
- * variables doesn't hurt.
- */
-@@ -109,9 +117,11 @@
-
- #include <curses.h>
- #include <term_entry.h>
-+#include <nc_termios.h>
- #include <tic.h>
- #include <nc_tparm.h>
-
-+#include <nc_string.h>
- #include <nc_alloc.h>
- #if HAVE_NC_FREEALL
- #undef ExitProgram
-@@ -171,7 +181,7 @@
- # elif defined(MAXPATHLEN)
- # define PATH_MAX MAXPATHLEN
- # else
--# define PATH_MAX 255 /* the Posix minimum pathsize */
-+# define PATH_MAX 255 /* the Posix minimum pathsize */
- # endif
- #endif
-
-@@ -183,7 +193,7 @@
- # if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
- # define isascii(c) (UChar(c) <= 127)
- # else
--# define isascii(c) 1 /* not really ascii anyway */
-+# define isascii(c) 1 /* not really ascii anyway */
- # endif
- #endif
-
-Index: progs/tabs.c
-Prereq: 1.19
---- ncurses-5.9/progs/tabs.c 2010-10-23 22:26:01.000000000 +0000
-+++ ncurses-5.9-20130504/progs/tabs.c 2012-11-18 01:21:47.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -37,12 +37,19 @@
- #define USE_LIBTINFO
- #include <progs.priv.h>
-
--MODULE_ID("$Id: tabs.c,v 1.19 2010/10/23 22:26:01 tom Exp $")
-+MODULE_ID("$Id: tabs.c,v 1.25 2012/11/18 01:21:47 tom Exp $")
-
- static void usage(void) GCC_NORETURN;
-
- static int max_cols;
-
-+static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
- static int
- putch(int c)
- {
-@@ -83,28 +90,29 @@
- int prior = 0;
- int ch;
-
-- if (result != 0) {
-- while ((ch = *tab_list++) != '\0') {
-- if (isdigit(UChar(ch))) {
-- value *= 10;
-- value += (ch - '0');
-- } else if (ch == ',') {
-- result[n] = value + prior;
-- if (n > 0 && result[n] <= result[n - 1]) {
-- fprintf(stderr,
-- "tab-stops are not in increasing order: %d %d\n",
-- value, result[n - 1]);
-- free(result);
-- result = 0;
-- break;
-- }
-- ++n;
-- value = 0;
-- prior = 0;
-- } else if (ch == '+') {
-- if (n)
-- prior = result[n - 1];
-+ if (result == 0)
-+ failed("decode_tabs");
-+
-+ while ((ch = *tab_list++) != '\0') {
-+ if (isdigit(UChar(ch))) {
-+ value *= 10;
-+ value += (ch - '0');
-+ } else if (ch == ',') {
-+ result[n] = value + prior;
-+ if (n > 0 && result[n] <= result[n - 1]) {
-+ fprintf(stderr,
-+ "tab-stops are not in increasing order: %d %d\n",
-+ value, result[n - 1]);
-+ free(result);
-+ result = 0;
-+ break;
- }
-+ ++n;
-+ value = 0;
-+ prior = 0;
-+ } else if (ch == '+') {
-+ if (n)
-+ prior = result[n - 1];
- }
- }
-
-@@ -126,6 +134,7 @@
- result[n++] = value + prior;
- result[n] = 0;
- }
-+
- return result;
- }
-
-@@ -140,10 +149,11 @@
- for (n = 0; n < max_cols; n += 10) {
- int ch = 1 + (n / 10);
- char buffer[20];
-- sprintf(buffer, "----+----%c",
-- ((ch < 10)
-- ? (ch + '0')
-- : (ch + 'A' - 10)));
-+ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
-+ "----+----%c",
-+ ((ch < 10)
-+ ? (ch + '0')
-+ : (ch + 'A' - 10)));
- printf("%.*s", ((max_cols - n) > 10) ? 10 : (max_cols - n), buffer);
- }
- putchar('\n');
-@@ -227,7 +237,7 @@
- bool result = FALSE;
-
- if (source != 0) {
-- unsigned len = strlen(source);
-+ size_t len = strlen(source);
- if (len != 0)
- result = (source[len - 1] != ',');
- } else {
-@@ -251,7 +261,7 @@
-
- if (copied != 0 && *copied != '\0') {
- const char *comma = ",";
-- unsigned need = 1 + strlen(copied);
-+ size_t need = 1 + strlen(copied);
-
- if (*copied == ',')
- comma = "";
-@@ -263,15 +273,16 @@
- need += strlen(*append);
-
- result = malloc(need);
-- if (result != 0) {
-- *result = '\0';
-- if (*append != 0) {
-- strcpy(result, *append);
-- free(*append);
-- }
-- strcat(result, comma);
-- strcat(result, copied);
-+ if (result == 0)
-+ failed("add_to_tab_list");
-+
-+ *result = '\0';
-+ if (*append != 0) {
-+ _nc_STRCPY(result, *append, need);
-+ free(*append);
- }
-+ _nc_STRCAT(result, comma, need);
-+ _nc_STRCAT(result, copied, need);
-
- *append = result;
- }
-@@ -353,7 +364,6 @@
- bool no_op = FALSE;
- int n, ch;
- NCURSES_CONST char *term_name = 0;
-- const char *mar_list = 0; /* ignored */
- char *append = 0;
- const char *tab_list = 0;
-
-@@ -446,7 +456,11 @@
- while ((ch = *++option) != '\0') {
- switch (ch) {
- case 'm':
-- mar_list = option;
-+ /*
-+ * The "+mXXX" option is unimplemented because only the long-obsolete
-+ * att510d implements smgl, which is needed to support
-+ * this option.
-+ */
- break;
- default:
- /* special case of relative stops separated by spaces? */
-Index: progs/tic.c
-Prereq: 1.147
---- ncurses-5.9/progs/tic.c 2011-02-12 18:39:08.000000000 +0000
-+++ ncurses-5.9-20130504/progs/tic.c 2013-03-17 00:57:05.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -35,6 +35,7 @@
- /*
- * tic.c --- Main program for terminfo compiler
- * by Eric S. Raymond
-+ * and Thomas E Dickey
- *
- */
-
-@@ -42,9 +43,12 @@
- #include <sys/stat.h>
-
- #include <dump_entry.h>
-+#include <hashed_db.h>
- #include <transform.h>
-
--MODULE_ID("$Id: tic.c,v 1.147 2011/02/12 18:39:08 tom Exp $")
-+MODULE_ID("$Id: tic.c,v 1.185 2013/03/17 00:57:05 tom Exp $")
-+
-+#define STDIN_NAME "<stdin>"
-
- const char *_nc_progname = "tic";
-
-@@ -53,6 +57,7 @@
- static bool capdump = FALSE; /* running as infotocap? */
- static bool infodump = FALSE; /* running as captoinfo? */
- static bool showsummary = FALSE;
-+static char **namelst = 0;
- static const char *to_remove;
-
- static void (*save_check_termtype) (TERMTYPE *, bool);
-@@ -69,11 +74,13 @@
- 1\
- a\
- C\
-+D\
- c\
- f\
- G\
- g\
- I\
-+K\
- L\
- N\
- r\
-@@ -99,8 +106,10 @@
- #endif
-
- static void
--cleanup(char **namelst GCC_UNUSED)
-+cleanup(void)
- {
-+ int rc;
-+
- #if NO_LEAKS
- free_namelist(namelst);
- #endif
-@@ -108,10 +117,12 @@
- fclose(tmp_fp);
- if (to_remove != 0) {
- #if HAVE_REMOVE
-- remove(to_remove);
-+ rc = remove(to_remove);
- #else
-- unlink(to_remove);
-+ rc = unlink(to_remove);
- #endif
-+ if (rc != 0)
-+ perror(to_remove);
- }
- }
-
-@@ -119,7 +130,6 @@
- failed(const char *msg)
- {
- perror(msg);
-- cleanup((char **) 0);
- ExitProgram(EXIT_FAILURE);
- }
-
-@@ -133,7 +143,9 @@
- #if NCURSES_XNAMES
- " -a retain commented-out capabilities (sets -x also)",
- #endif
-+ " -K translate entries to termcap source form with BSD syntax",
- " -C translate entries to termcap source form",
-+ " -D print list of tic's database locations (first must be writable)",
- " -c check only, validate input without compiling or translating",
- " -e<names> translate/compile only entries named by comma-separated list",
- " -f format complex strings for readability",
-@@ -173,7 +185,7 @@
-
- #define L_BRACE '{'
- #define R_BRACE '}'
--#define S_QUOTE '\'';
-+#define S_QUOTE '\''
-
- static void
- write_it(ENTRY * ep)
-@@ -216,12 +228,12 @@
- }
- *d = 0;
- if (strlen(result) < strlen(s))
-- strcpy(s, result);
-+ _nc_STRCPY(s, result, strlen(s) + 1);
- }
- }
-
- _nc_set_type(_nc_first_name(ep->tterm.term_names));
-- _nc_curr_line = ep->startline;
-+ _nc_curr_line = (int) ep->startline;
- _nc_write_entry(&ep->tterm);
- }
-
-@@ -286,8 +298,10 @@
- if (in_name) {
- if (used + 1 >= have) {
- have += 132;
-- namebuf = typeRealloc(char, have, namebuf);
-- suffix = typeRealloc(char, have, suffix);
-+ if ((namebuf = typeRealloc(char, have, namebuf)) == 0)
-+ failed("put_translate namebuf");
-+ if ((suffix = typeRealloc(char, have, suffix)) == 0)
-+ failed("put_translate suffix");
- }
- if (c == '\n' || c == '@') {
- namebuf[used++] = '\0';
-@@ -308,7 +322,7 @@
- if ((up = strchr(namebuf, '#')) != 0
- || (up = strchr(namebuf, '=')) != 0
- || ((up = strchr(namebuf, '@')) != 0 && up[1] == '>')) {
-- (void) strcpy(suffix, up);
-+ _nc_STRCPY(suffix, up, have);
- *up = '\0';
- }
-
-@@ -339,39 +353,122 @@
- static char *
- stripped(char *src)
- {
-+ char *dst = 0;
-+
- while (isspace(UChar(*src)))
- src++;
-+
- if (*src != '\0') {
-- char *dst;
- size_t len;
-
-- if ((dst = strdup(src)) == NULL)
-+ if ((dst = strdup(src)) == NULL) {
- failed("strdup");
-+ } else {
-+ len = strlen(dst);
-+ while (--len != 0 && isspace(UChar(dst[len])))
-+ dst[len] = '\0';
-+ }
-+ }
-+ return dst;
-+}
-
-- assert(dst != 0);
-+static FILE *
-+open_tempfile(char *filename)
-+{
-+ FILE *result = 0;
-
-- len = strlen(dst);
-- while (--len != 0 && isspace(UChar(dst[len])))
-- dst[len] = '\0';
-- return dst;
-+ _nc_STRCPY(filename, "/tmp/XXXXXX", PATH_MAX);
-+#if HAVE_MKSTEMP
-+ {
-+ int oldmask = umask(077);
-+ int fd = mkstemp(filename);
-+ if (fd >= 0)
-+ result = fdopen(fd, "w");
-+ umask(oldmask);
- }
-- return 0;
-+#else
-+ if (tmpnam(filename) != 0)
-+ result = fopen(filename, "w");
-+#endif
-+ return result;
- }
-
- static FILE *
--open_input(const char *filename)
-+copy_input(FILE *source, const char *filename, char *alt_file)
- {
-- FILE *fp = fopen(filename, "r");
-+ char my_altfile[PATH_MAX];
-+ FILE *result = 0;
-+ FILE *target = 0;
-+ int ch;
-+
-+ if (alt_file == 0)
-+ alt_file = my_altfile;
-+
-+ if (source == 0) {
-+ failed("copy_input (source)");
-+ } else if ((target = open_tempfile(alt_file)) == 0) {
-+ failed("copy_input (target)");
-+ } else {
-+ clearerr(source);
-+ for (;;) {
-+ ch = fgetc(source);
-+ if (feof(source)) {
-+ break;
-+ } else if (ferror(source)) {
-+ failed(filename);
-+ } else if (ch == 0) {
-+ /* don't loop in case someone wants to convert /dev/zero */
-+ fprintf(stderr, "%s: %s is not a text-file\n", _nc_progname, filename);
-+ ExitProgram(EXIT_FAILURE);
-+ }
-+ fputc(ch, target);
-+ }
-+ fclose(source);
-+ /*
-+ * rewind() does not force the target file's data to disk (not does
-+ * fflush()...). So open a second stream on the data and then close
-+ * the one that we were writing on before starting to read from the
-+ * second stream.
-+ */
-+ result = fopen(alt_file, "r+");
-+ fclose(target);
-+ to_remove = strdup(alt_file);
-+ }
-+ return result;
-+}
-+
-+static FILE *
-+open_input(const char *filename, char *alt_file)
-+{
-+ FILE *fp;
- struct stat sb;
-+ int mode;
-
-- if (fp == 0) {
-- fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
-+ if (!strcmp(filename, "-")) {
-+ fp = copy_input(stdin, STDIN_NAME, alt_file);
-+ } else if (stat(filename, &sb) < 0) {
-+ fprintf(stderr, "%s: %s %s\n", _nc_progname, filename, strerror(errno));
- ExitProgram(EXIT_FAILURE);
-- }
-- if (fstat(fileno(fp), &sb) < 0
-- || (sb.st_mode & S_IFMT) != S_IFREG) {
-+ } else if ((mode = (sb.st_mode & S_IFMT)) == S_IFDIR
-+ || (mode != S_IFREG && mode != S_IFCHR)) {
- fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
- ExitProgram(EXIT_FAILURE);
-+ } else {
-+ fp = fopen(filename, "r");
-+
-+ if (fp == 0) {
-+ fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
-+ ExitProgram(EXIT_FAILURE);
-+ }
-+ if (mode != S_IFREG) {
-+ if (alt_file != 0) {
-+ FILE *fp2 = copy_input(fp, filename, alt_file);
-+ fp = fp2;
-+ } else {
-+ fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
-+ ExitProgram(EXIT_FAILURE);
-+ }
-+ }
- }
- return fp;
- }
-@@ -389,7 +486,7 @@
- if (src == 0) {
- /* EMPTY */ ;
- } else if (strchr(src, '/') != 0) { /* a filename */
-- FILE *fp = open_input(src);
-+ FILE *fp = open_input(src, (char *) 0);
-
- for (pass = 1; pass <= 2; pass++) {
- nn = 0;
-@@ -403,7 +500,8 @@
- }
- }
- if (pass == 1) {
-- dst = typeCalloc(char *, nn + 1);
-+ if ((dst = typeCalloc(char *, nn + 1)) == 0)
-+ failed("make_namelist");
- rewind(fp);
- }
- }
-@@ -425,8 +523,10 @@
- if (mark == '\0')
- break;
- }
-- if (pass == 1)
-- dst = typeCalloc(char *, nn + 1);
-+ if (pass == 1) {
-+ if ((dst = typeCalloc(char *, nn + 1)) == 0)
-+ failed("make_namelist");
-+ }
- }
- }
- if (showsummary && (dst != 0)) {
-@@ -456,26 +556,118 @@
- return (code);
- }
-
--static FILE *
--open_tempfile(char *name)
-+static char *
-+valid_db_path(const char *nominal)
- {
-- FILE *result = 0;
--#if HAVE_MKSTEMP
-- int fd = mkstemp(name);
-- if (fd >= 0)
-- result = fdopen(fd, "w");
-+ struct stat sb;
-+#if USE_HASHED_DB
-+ char suffix[] = DBM_SUFFIX;
-+ size_t need = strlen(nominal) + sizeof(suffix);
-+ char *result = malloc(need);
-+
-+ if (result == 0)
-+ failed("valid_db_path");
-+ _nc_STRCPY(result, nominal, need);
-+ if (strcmp(result + need - sizeof(suffix), suffix)) {
-+ _nc_STRCAT(result, suffix, need);
-+ }
- #else
-- if (tmpnam(name) != 0)
-- result = fopen(name, "w");
-+ char *result = strdup(nominal);
- #endif
-+
-+ DEBUG(1, ("** stat(%s)", result));
-+ if (stat(result, &sb) >= 0) {
-+#if USE_HASHED_DB
-+ if (!S_ISREG(sb.st_mode)
-+ || access(result, R_OK | W_OK) != 0) {
-+ DEBUG(1, ("...not a writable file"));
-+ free(result);
-+ result = 0;
-+ }
-+#else
-+ if (!S_ISDIR(sb.st_mode)
-+ || access(result, R_OK | W_OK | X_OK) != 0) {
-+ DEBUG(1, ("...not a writable directory"));
-+ free(result);
-+ result = 0;
-+ }
-+#endif
-+ } else {
-+ /* check if parent is directory and is writable */
-+ unsigned leaf = _nc_pathlast(result);
-+
-+ DEBUG(1, ("...not found"));
-+ if (leaf) {
-+ char save = result[leaf];
-+ result[leaf] = 0;
-+ if (stat(result, &sb) >= 0
-+ && S_ISDIR(sb.st_mode)
-+ && access(result, R_OK | W_OK | X_OK) == 0) {
-+ result[leaf] = save;
-+ } else {
-+ DEBUG(1, ("...parent directory %s is not writable", result));
-+ free(result);
-+ result = 0;
-+ }
-+ } else {
-+ DEBUG(1, ("... no parent directory"));
-+ free(result);
-+ result = 0;
-+ }
-+ }
- return result;
- }
-
-+/*
-+ * Show the databases to which tic could write. The location to which it
-+ * writes is always the first one. If none are writable, print an error
-+ * message.
-+ */
-+static void
-+show_databases(const char *outdir)
-+{
-+ bool specific = (outdir != 0) || getenv("TERMINFO") != 0;
-+ char *result;
-+ const char *tried = 0;
-+
-+ if (outdir == 0) {
-+ outdir = _nc_tic_dir(0);
-+ }
-+ if ((result = valid_db_path(outdir)) != 0) {
-+ printf("%s\n", result);
-+ free(result);
-+ } else {
-+ tried = outdir;
-+ }
-+
-+ if ((outdir = _nc_home_terminfo())) {
-+ if ((result = valid_db_path(outdir)) != 0) {
-+ printf("%s\n", result);
-+ free(result);
-+ } else if (!specific) {
-+ tried = outdir;
-+ }
-+ }
-+
-+ /*
-+ * If we can write in neither location, give an error message.
-+ */
-+ if (tried) {
-+ fflush(stdout);
-+ fprintf(stderr, "%s: %s (no permission)\n", _nc_progname, tried);
-+ ExitProgram(EXIT_FAILURE);
-+ }
-+}
-+
-+#define VtoTrace(opt) (unsigned) ((opt > 0) ? opt : (opt == 0))
-+
- int
- main(int argc, char *argv[])
- {
- char my_tmpname[PATH_MAX];
-- int v_opt = -1, debug_level;
-+ char my_altfile[PATH_MAX];
-+ int v_opt = -1;
-+ unsigned debug_level;
- int smart_defaults = TRUE;
- char *termcap;
- ENTRY *qp;
-@@ -486,6 +678,7 @@
- int sortmode = S_TERMINFO; /* sort_mode */
-
- int width = 60;
-+ int height = 65535;
- bool formatted = FALSE; /* reformat complex strings? */
- bool literal = FALSE; /* suppress post-processing? */
- int numbers = 0; /* format "%'char'" to/from "%{number}" */
-@@ -493,7 +686,6 @@
- bool limited = TRUE;
- char *tversion = (char *) NULL;
- const char *source_file = "terminfo";
-- char **namelst = 0;
- char *outdir = (char *) NULL;
- bool check_only = FALSE;
- bool suppress_untranslatable = FALSE;
-@@ -501,6 +693,7 @@
- log_fp = stderr;
-
- _nc_progname = _nc_rootname(argv[0]);
-+ atexit(cleanup);
-
- if ((infodump = same_program(_nc_progname, PROG_CAPTOINFO)) != FALSE) {
- outform = F_TERMINFO;
-@@ -513,6 +706,7 @@
- #if NCURSES_XNAMES
- use_extended_names(FALSE);
- #endif
-+ _nc_strict_bsd = 0;
-
- /*
- * Processing arguments is a little complicated, since someone made a
-@@ -520,7 +714,7 @@
- * be optional.
- */
- while ((this_opt = getopt(argc, argv,
-- "0123456789CILNR:TUVace:fGgo:rstvwx")) != -1) {
-+ "0123456789CDIKLNR:TUVace:fGgo:rstvwx")) != -1) {
- if (isdigit(this_opt)) {
- switch (last_opt) {
- case 'v':
-@@ -530,19 +724,40 @@
- width = (width * 10) + (this_opt - '0');
- break;
- default:
-- if (this_opt != '1')
-+ switch (this_opt) {
-+ case '0':
-+ last_opt = this_opt;
-+ width = 65535;
-+ height = 1;
-+ break;
-+ case '1':
-+ last_opt = this_opt;
-+ width = 0;
-+ break;
-+ default:
- usage();
-- last_opt = this_opt;
-- width = 0;
-+ }
- }
- continue;
- }
- switch (this_opt) {
-+ case 'K':
-+ _nc_strict_bsd = 1;
-+ /* the initial version of -K in 20110730 fell-thru here, but the
-+ * same flag is useful when reading sources -TD
-+ */
-+ break;
- case 'C':
- capdump = TRUE;
- outform = F_TERMCAP;
- sortmode = S_TERMCAP;
- break;
-+ case 'D':
-+ debug_level = VtoTrace(v_opt);
-+ set_trace_level(debug_level);
-+ show_databases(outdir);
-+ ExitProgram(EXIT_SUCCESS);
-+ break;
- case 'I':
- infodump = TRUE;
- outform = F_TERMINFO;
-@@ -568,7 +783,6 @@
- break;
- case 'V':
- puts(curses_version());
-- cleanup(namelst);
- ExitProgram(EXIT_SUCCESS);
- case 'c':
- check_only = TRUE;
-@@ -618,7 +832,7 @@
- last_opt = this_opt;
- }
-
-- debug_level = (v_opt > 0) ? v_opt : (v_opt == 0);
-+ debug_level = VtoTrace(v_opt);
- set_trace_level(debug_level);
-
- if (_nc_tracing) {
-@@ -638,8 +852,8 @@
- */
- if (namelst && (!infodump && !capdump)) {
- (void) fprintf(stderr,
-- "Sorry, -e can't be used without -I or -C\n");
-- cleanup(namelst);
-+ "%s: Sorry, -e can't be used without -I or -C\n",
-+ _nc_progname);
- ExitProgram(EXIT_FAILURE);
- }
- #endif /* HAVE_BIG_CORE */
-@@ -663,16 +877,16 @@
- if (access(termcap, F_OK) == 0) {
- /* file exists */
- source_file = termcap;
-- } else if ((tmp_fp = open_tempfile(strcpy(my_tmpname,
-- "/tmp/XXXXXX")))
-- != 0) {
-- source_file = my_tmpname;
-- fprintf(tmp_fp, "%s\n", termcap);
-- fclose(tmp_fp);
-- tmp_fp = open_input(source_file);
-- to_remove = source_file;
- } else {
-- failed("tmpnam");
-+ if ((tmp_fp = open_tempfile(my_tmpname)) != 0) {
-+ source_file = my_tmpname;
-+ fprintf(tmp_fp, "%s\n", termcap);
-+ fclose(tmp_fp);
-+ tmp_fp = open_input(source_file, (char *) 0);
-+ to_remove = source_file;
-+ } else {
-+ failed("tmpnam");
-+ }
- }
- }
- } else {
-@@ -682,24 +896,28 @@
- _nc_progname,
- _nc_progname,
- usage_string);
-- cleanup(namelst);
- ExitProgram(EXIT_FAILURE);
- }
- }
-
-- if (tmp_fp == 0)
-- tmp_fp = open_input(source_file);
-+ if (tmp_fp == 0) {
-+ tmp_fp = open_input(source_file, my_altfile);
-+ if (!strcmp(source_file, "-")) {
-+ source_file = STDIN_NAME;
-+ }
-+ }
-
-- if (infodump)
-+ if (infodump) {
- dump_init(tversion,
- smart_defaults
- ? outform
- : F_LITERAL,
-- sortmode, width, debug_level, formatted);
-- else if (capdump)
-+ sortmode, width, height, debug_level, formatted);
-+ } else if (capdump) {
- dump_init(tversion,
- outform,
-- sortmode, width, debug_level, FALSE);
-+ sortmode, width, height, debug_level, FALSE);
-+ }
-
- /* parse entries out of the source file */
- _nc_set_source(source_file);
-@@ -716,7 +934,6 @@
- /* do use resolution */
- if (check_only || (!infodump && !capdump) || forceresolve) {
- if (!_nc_resolve_uses2(TRUE, literal) && !check_only) {
-- cleanup(namelst);
- ExitProgram(EXIT_FAILURE);
- }
- }
-@@ -750,7 +967,7 @@
-
- for_entry_list(qp) {
- if (matches(namelst, qp->tterm.term_names)) {
-- int j = qp->cend - qp->cstart;
-+ long j = qp->cend - qp->cstart;
- int len = 0;
-
- /* this is in case infotocap() generates warnings */
-@@ -767,7 +984,7 @@
- repair_acsc(&qp->tterm);
- dump_entry(&qp->tterm, suppress_untranslatable,
- limited, numbers, NULL);
-- for (j = 0; j < (int) qp->nuses; j++)
-+ for (j = 0; j < (long) qp->nuses; j++)
- dump_uses(qp->uses[j].name, !capdump);
- len = show_entry();
- if (debug_level != 0 && !limited)
-@@ -811,7 +1028,6 @@
- else
- fprintf(log_fp, "No entries written\n");
- }
-- cleanup(namelst);
- ExitProgram(EXIT_SUCCESS);
- }
-
-@@ -915,18 +1131,18 @@
- return result;
- }
-
--static int
-+static long
- keypad_index(const char *string)
- {
- char *test;
- const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */
- int ch;
-- int result = -1;
-+ long result = -1;
-
- if ((ch = keypad_final(string)) != '\0') {
- test = strchr(list, ch);
- if (test != 0)
-- result = (test - list);
-+ result = (long) (test - list);
- }
- return result;
- }
-@@ -1015,13 +1231,18 @@
- int count;
- char *list[4];
-
-+ /* it is rare to have an insert-line feature without a matching delete */
-+ ANDMISSING(parm_insert_line, insert_line);
-+ ANDMISSING(parm_delete_line, delete_line);
-+ ANDMISSING(parm_insert_line, parm_delete_line);
-+
- /* if we have a parameterized form, then the non-parameterized is easy */
- ANDMISSING(parm_down_cursor, cursor_down);
- ANDMISSING(parm_up_cursor, cursor_up);
- ANDMISSING(parm_left_cursor, cursor_left);
- ANDMISSING(parm_right_cursor, cursor_right);
-
-- /* Given any of a set of cursor movement, the whole set should be present.
-+ /* Given any of a set of cursor movement, the whole set should be present.
- * Technically this is not true (we could use cursor_address to fill in
- * unsupported controls), but it is likely.
- */
-@@ -1097,11 +1318,11 @@
- VALID_STRING(key_c1) &&
- VALID_STRING(key_c3)) {
- char final[MAX_KP + 1];
-- int list[MAX_KP];
-+ long list[MAX_KP];
- int increase = 0;
- int j, k, kk;
-- int last;
-- int test;
-+ long last;
-+ long test;
-
- final[0] = keypad_final(key_a1);
- final[1] = keypad_final(key_a3);
-@@ -1149,19 +1370,19 @@
- assert(strlen(show) < (MAX_KP * 4));
- switch (kk) {
- case 0:
-- strcat(show, " ka1");
-+ _nc_STRCAT(show, " ka1", sizeof(show));
- break;
- case 1:
-- strcat(show, " ka3");
-+ _nc_STRCAT(show, " ka3", sizeof(show));
- break;
- case 2:
-- strcat(show, " kb2");
-+ _nc_STRCAT(show, " kb2", sizeof(show));
- break;
- case 3:
-- strcat(show, " kc1");
-+ _nc_STRCAT(show, " kc1", sizeof(show));
- break;
- case 4:
-- strcat(show, " kc3");
-+ _nc_STRCAT(show, " kc3", sizeof(show));
- break;
- }
- }
-@@ -1176,18 +1397,24 @@
- VALID_STRING(key_c3)) {
- show[0] = '\0';
- if (keypad_index(key_a1) >= 0)
-- strcat(show, " ka1");
-+ _nc_STRCAT(show, " ka1", sizeof(show));
- if (keypad_index(key_a3) >= 0)
-- strcat(show, " ka3");
-+ _nc_STRCAT(show, " ka3", sizeof(show));
- if (keypad_index(key_b2) >= 0)
-- strcat(show, " kb2");
-+ _nc_STRCAT(show, " kb2", sizeof(show));
- if (keypad_index(key_c1) >= 0)
-- strcat(show, " kc1");
-+ _nc_STRCAT(show, " kc1", sizeof(show));
- if (keypad_index(key_c3) >= 0)
-- strcat(show, " kc3");
-+ _nc_STRCAT(show, " kc3", sizeof(show));
- if (*show != '\0')
- _nc_warning("vt100 keypad map incomplete:%s", show);
- }
-+
-+ /*
-+ * These warnings are useful for consistency checks - it is possible that
-+ * there are real terminals with mismatches in these
-+ */
-+ ANDMISSING(key_ic, key_dc);
- }
-
- static void
-@@ -1216,6 +1443,72 @@
- ANDMISSING(parm_up_micro, micro_up);
- }
-
-+static bool
-+uses_SGR_39_49(const char *value)
-+{
-+ return (strstr(value, "39;49") != 0
-+ || strstr(value, "49;39") != 0);
-+}
-+
-+/*
-+ * Check consistency of termcap extensions related to "screen".
-+ */
-+static void
-+check_screen(TERMTYPE *tp)
-+{
-+ if (_nc_user_definable) {
-+ int have_XT = tigetflag("XT");
-+ int have_XM = tigetflag("XM");
-+ int have_bce = back_color_erase;
-+ bool have_kmouse = FALSE;
-+ bool use_sgr_39_49 = FALSE;
-+ char *name = _nc_first_name(tp->term_names);
-+
-+ if (!VALID_BOOLEAN(have_bce)) {
-+ have_bce = FALSE;
-+ }
-+ if (!VALID_BOOLEAN(have_XM)) {
-+ have_XM = FALSE;
-+ }
-+ if (!VALID_BOOLEAN(have_XT)) {
-+ have_XT = FALSE;
-+ }
-+ if (VALID_STRING(key_mouse)) {
-+ have_kmouse = !strcmp("\033[M", key_mouse);
-+ }
-+ if (VALID_STRING(orig_colors)) {
-+ use_sgr_39_49 = uses_SGR_39_49(orig_colors);
-+ } else if (VALID_STRING(orig_pair)) {
-+ use_sgr_39_49 = uses_SGR_39_49(orig_pair);
-+ }
-+
-+ if (have_XM && have_XT) {
-+ _nc_warning("Screen's XT capability conflicts with XM");
-+ } else if (have_XT
-+ && strstr(name, "screen") != 0
-+ && strchr(name, '.') != 0) {
-+ _nc_warning("Screen's \"screen\" entries should not have XT set");
-+ } else if (have_XT) {
-+ if (!have_kmouse && have_bce) {
-+ if (VALID_STRING(key_mouse)) {
-+ _nc_warning("Value of kmous inconsistent with screen's usage");
-+ } else {
-+ _nc_warning("Expected kmous capability with XT");
-+ }
-+ }
-+ if (!have_bce && max_colors > 0)
-+ _nc_warning("Expected bce capability with XT");
-+ if (!use_sgr_39_49 && have_bce && max_colors > 0)
-+ _nc_warning("Expected orig_colors capability with XT to have 39/49 parameters");
-+ if (VALID_STRING(to_status_line))
-+ _nc_warning("\"tsl\" capability is redundant, given XT");
-+ } else {
-+ if (have_kmouse && !have_XM)
-+ _nc_warning("Expected XT to be set, given kmous");
-+ }
-+ }
-+}
-+
- /*
- * Returns the expected number of parameters for the given capability.
- */
-@@ -1527,7 +1820,7 @@
- show_where(unsigned level)
- {
- if (_nc_tracing >= DEBUG_LEVEL(level)) {
-- char my_name[256];
-+ char my_name[MAX_NAME_SIZE];
- _nc_get_type(my_name);
- _tracef("\"%s\", line %d, '%s'",
- _nc_get_source(),
-@@ -1539,6 +1832,58 @@
- #define show_where(level) /* nothing */
- #endif
-
-+typedef struct {
-+ int keycode;
-+ const char *name;
-+ const char *value;
-+} NAME_VALUE;
-+
-+static NAME_VALUE *
-+get_fkey_list(TERMTYPE *tp)
-+{
-+ NAME_VALUE *result = typeMalloc(NAME_VALUE, NUM_STRINGS(tp) + 1);
-+ const struct tinfo_fkeys *all_fkeys = _nc_tinfo_fkeys;
-+ int used = 0;
-+ int j;
-+
-+ if (result == 0)
-+ failed("get_fkey_list");
-+
-+ for (j = 0; all_fkeys[j].code; j++) {
-+ char *a = tp->Strings[all_fkeys[j].offset];
-+ if (VALID_STRING(a)) {
-+ result[used].keycode = (int) all_fkeys[j].code;
-+ result[used].name = strnames[all_fkeys[j].offset];
-+ result[used].value = a;
-+ ++used;
-+ }
-+ }
-+#if NCURSES_XNAMES
-+ for (j = STRCOUNT; j < NUM_STRINGS(tp); ++j) {
-+ const char *name = ExtStrname(tp, j, strnames);
-+ if (*name == 'k') {
-+ result[used].keycode = -1;
-+ result[used].name = name;
-+ result[used].value = tp->Strings[j];
-+ ++used;
-+ }
-+ }
-+#endif
-+ result[used].keycode = 0;
-+ return result;
-+}
-+
-+static void
-+show_fkey_name(NAME_VALUE * data)
-+{
-+ if (data->keycode > 0) {
-+ fprintf(stderr, " %s", keyname(data->keycode));
-+ fprintf(stderr, " (capability \"%s\")", data->name);
-+ } else {
-+ fprintf(stderr, " capability \"%s\"", data->name);
-+ }
-+}
-+
- /* other sanity-checks (things that we don't want in the normal
- * logic that reads a terminfo entry)
- */
-@@ -1547,7 +1892,6 @@
- {
- bool conflict = FALSE;
- unsigned j, k;
-- char fkeys[STRCOUNT];
-
- /*
- * A terminal entry may contain more than one keycode assigned to
-@@ -1555,44 +1899,50 @@
- * return one (the last one assigned).
- */
- if (!(_nc_syntax == SYN_TERMCAP && capdump)) {
-- memset(fkeys, 0, sizeof(fkeys));
-- for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
-- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
-+ char *check = calloc((size_t) (NUM_STRINGS(tp) + 1), sizeof(char));
-+ NAME_VALUE *given = get_fkey_list(tp);
-+
-+ if (check == 0)
-+ failed("check_termtype");
-+
-+ for (j = 0; given[j].keycode; ++j) {
-+ const char *a = given[j].value;
- bool first = TRUE;
-- if (!VALID_STRING(a))
-- continue;
-- for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
-- char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
-- if (!VALID_STRING(b)
-- || fkeys[k])
-+
-+ for (k = j + 1; given[k].keycode; k++) {
-+ const char *b = given[k].value;
-+ if (check[k])
- continue;
- if (!_nc_capcmp(a, b)) {
-- fkeys[j] = 1;
-- fkeys[k] = 1;
-+ check[j] = 1;
-+ check[k] = 1;
- if (first) {
- if (!conflict) {
- _nc_warning("Conflicting key definitions (using the last)");
- conflict = TRUE;
- }
-- fprintf(stderr, "... %s is the same as %s",
-- keyname((int) _nc_tinfo_fkeys[j].code),
-- keyname((int) _nc_tinfo_fkeys[k].code));
-+ fprintf(stderr, "...");
-+ show_fkey_name(given + j);
-+ fprintf(stderr, " is the same as");
-+ show_fkey_name(given + k);
- first = FALSE;
- } else {
-- fprintf(stderr, ", %s",
-- keyname((int) _nc_tinfo_fkeys[k].code));
-+ fprintf(stderr, ", ");
-+ show_fkey_name(given + k);
- }
- }
- }
- if (!first)
- fprintf(stderr, "\n");
- }
-+ free(given);
-+ free(check);
- }
-
-- for (j = 0; j < NUM_STRINGS(tp); j++) {
-+ for_each_string(j, tp) {
- char *a = tp->Strings[j];
- if (VALID_STRING(a))
-- check_params(tp, ExtStrname(tp, j, strnames), a);
-+ check_params(tp, ExtStrname(tp, (int) j, strnames), a);
- }
-
- check_acs(tp);
-@@ -1600,6 +1950,7 @@
- check_cursor(tp);
- check_keypad(tp);
- check_printer(tp);
-+ check_screen(tp);
-
- /*
- * These may be mismatched because the terminal description relies on
-Index: progs/toe.c
-Prereq: 1.52
---- ncurses-5.9/progs/toe.c 2010-05-01 22:04:08.000000000 +0000
-+++ ncurses-5.9-20130504/progs/toe.c 2013-03-09 22:45:23.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -44,12 +44,23 @@
- #include <hashed_db.h>
- #endif
-
--MODULE_ID("$Id: toe.c,v 1.52 2010/05/01 22:04:08 tom Exp $")
-+MODULE_ID("$Id: toe.c,v 1.71 2013/03/09 22:45:23 tom Exp $")
-
- #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
-
-+typedef struct {
-+ int db_index;
-+ unsigned long checksum;
-+ char *term_name;
-+ char *description;
-+} TERMDATA;
-+
- const char *_nc_progname;
-
-+static TERMDATA *ptr_termdata; /* array of terminal data */
-+static size_t use_termdata; /* actual usage in ptr_termdata[] */
-+static size_t len_termdata; /* allocated size of ptr_termdata[] */
-+
- #if NO_LEAKS
- #undef ExitProgram
- static void ExitProgram(int code) GCC_NORETURN;
-@@ -61,6 +72,8 @@
- }
- #endif
-
-+static void failed(const char *) GCC_NORETURN;
-+
- static void
- failed(const char *msg)
- {
-@@ -68,6 +81,150 @@
- ExitProgram(EXIT_FAILURE);
- }
-
-+static char *
-+strmalloc(const char *value)
-+{
-+ char *result = strdup(value);
-+ if (result == 0) {
-+ failed("strmalloc");
-+ }
-+ return result;
-+}
-+
-+static TERMDATA *
-+new_termdata(void)
-+{
-+ size_t want = use_termdata + 1;
-+
-+ if (want >= len_termdata) {
-+ len_termdata = (2 * want) + 10;
-+ ptr_termdata = typeRealloc(TERMDATA, len_termdata, ptr_termdata);
-+ if (ptr_termdata == 0)
-+ failed("ptr_termdata");
-+ }
-+
-+ return ptr_termdata + use_termdata++;
-+}
-+
-+static int
-+compare_termdata(const void *a, const void *b)
-+{
-+ const TERMDATA *p = (const TERMDATA *) a;
-+ const TERMDATA *q = (const TERMDATA *) b;
-+ int result = strcmp(p->term_name, q->term_name);
-+
-+ if (result == 0) {
-+ result = (p->db_index - q->db_index);
-+ }
-+ return result;
-+}
-+
-+/*
-+ * Sort the array of TERMDATA and print it. If more than one database is being
-+ * reported, add a column to show which database has a given entry.
-+ */
-+static void
-+show_termdata(int eargc, char **eargv)
-+{
-+ int j, k;
-+ size_t n;
-+
-+ if (use_termdata) {
-+ if (eargc > 1) {
-+ for (j = 0; j < eargc; ++j) {
-+ for (k = 0; k <= j; ++k) {
-+ printf("--");
-+ }
-+ printf("> ");
-+ printf("%s\n", eargv[j]);
-+ }
-+ }
-+ if (use_termdata > 1)
-+ qsort(ptr_termdata, use_termdata, sizeof(TERMDATA), compare_termdata);
-+ for (n = 0; n < use_termdata; ++n) {
-+
-+ /*
-+ * If there is more than one database, show how they differ.
-+ */
-+ if (eargc > 1) {
-+ unsigned long check = 0;
-+ k = 0;
-+ for (;;) {
-+ for (; k < ptr_termdata[n].db_index; ++k) {
-+ printf("--");
-+ }
-+
-+ /*
-+ * If this is the first entry, or its checksum differs
-+ * from the first entry's checksum, print "*". Otherwise
-+ * it looks enough like a duplicate to print "+".
-+ */
-+ printf("%c-", ((check == 0
-+ || (check != ptr_termdata[n].checksum))
-+ ? '*'
-+ : '+'));
-+ check = ptr_termdata[n].checksum;
-+
-+ ++k;
-+ if ((n + 1) >= use_termdata
-+ || strcmp(ptr_termdata[n].term_name,
-+ ptr_termdata[n + 1].term_name)) {
-+ break;
-+ }
-+ ++n;
-+ }
-+ for (; k < eargc; ++k) {
-+ printf("--");
-+ }
-+ printf(":\t");
-+ }
-+
-+ (void) printf("%-10s\t%s\n",
-+ ptr_termdata[n].term_name,
-+ ptr_termdata[n].description);
-+ }
-+ }
-+}
-+
-+static void
-+free_termdata(void)
-+{
-+ if (ptr_termdata != 0) {
-+ while (use_termdata != 0) {
-+ --use_termdata;
-+ free(ptr_termdata[use_termdata].term_name);
-+ free(ptr_termdata[use_termdata].description);
-+ }
-+ free(ptr_termdata);
-+ ptr_termdata = 0;
-+ }
-+ use_termdata = 0;
-+ len_termdata = 0;
-+}
-+
-+static char **
-+allocArgv(size_t count)
-+{
-+ char **result = typeCalloc(char *, count + 1);
-+ if (result == 0)
-+ failed("realloc eargv");
-+
-+ assert(result != 0);
-+ return result;
-+}
-+
-+static void
-+freeArgv(char **argv)
-+{
-+ if (argv) {
-+ int count = 0;
-+ while (argv[count]) {
-+ free(argv[count++]);
-+ }
-+ free(argv);
-+ }
-+}
-+
- #if USE_HASHED_DB
- static bool
- make_db_name(char *dst, const char *src, unsigned limit)
-@@ -81,61 +238,94 @@
-
- if (need <= limit) {
- if (size >= lens
-- && !strcmp(src + size - lens, suffix))
-- (void) strcpy(dst, src);
-- else
-- (void) sprintf(dst, "%s%s", src, suffix);
-+ && !strcmp(src + size - lens, suffix)) {
-+ _nc_STRCPY(dst, src, PATH_MAX);
-+ } else {
-+ _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%s%s", src, suffix);
-+ }
- result = TRUE;
- }
- return result;
- }
- #endif
-
--static bool
--is_database(const char *path)
-+typedef void (DescHook) (int /* db_index */ ,
-+ int /* db_limit */ ,
-+ const char * /* term_name */ ,
-+ TERMTYPE * /* term */ );
-+
-+static const char *
-+term_description(TERMTYPE *tp)
- {
-- bool result = FALSE;
--#if USE_DATABASE
-- if (_nc_is_dir_path(path) && access(path, R_OK | X_OK) == 0) {
-- result = TRUE;
-- }
--#endif
--#if USE_TERMCAP
-- if (_nc_is_file_path(path) && access(path, R_OK) == 0) {
-- result = TRUE;
-+ const char *desc;
-+
-+ if (tp->term_names == 0
-+ || (desc = strrchr(tp->term_names, '|')) == 0
-+ || (*++desc == '\0')) {
-+ desc = "(No description)";
- }
--#endif
--#if USE_HASHED_DB
-- if (!result) {
-- char filename[PATH_MAX];
-- if (_nc_is_file_path(path) && access(path, R_OK) == 0) {
-- result = TRUE;
-- } else if (make_db_name(filename, path, sizeof(filename))) {
-- if (_nc_is_file_path(filename) && access(filename, R_OK) == 0) {
-- result = TRUE;
-- }
-+
-+ return desc;
-+}
-+
-+/* display a description for the type */
-+static void
-+deschook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp)
-+{
-+ (void) db_index;
-+ (void) db_limit;
-+ (void) printf("%-10s\t%s\n", term_name, term_description(tp));
-+}
-+
-+static unsigned long
-+string_sum(const char *value)
-+{
-+ unsigned long result = 0;
-+
-+ if ((intptr_t) value == (intptr_t) (-1)) {
-+ result = ~result;
-+ } else if (value) {
-+ while (*value) {
-+ result += UChar(*value);
-+ ++value;
- }
- }
--#endif
- return result;
- }
-
--static void
--deschook(const char *cn, TERMTYPE *tp)
--/* display a description for the type */
-+static unsigned long
-+checksum_of(TERMTYPE *tp)
- {
-- const char *desc;
-+ unsigned long result = string_sum(tp->term_names);
-+ unsigned i;
-
-- if ((desc = strrchr(tp->term_names, '|')) == 0 || *++desc == '\0')
-- desc = "(No description)";
-+ for (i = 0; i < NUM_BOOLEANS(tp); i++) {
-+ result += (unsigned long) (tp->Booleans[i]);
-+ }
-+ for (i = 0; i < NUM_NUMBERS(tp); i++) {
-+ result += (unsigned long) (tp->Numbers[i]);
-+ }
-+ for (i = 0; i < NUM_STRINGS(tp); i++) {
-+ result += string_sum(tp->Strings[i]);
-+ }
-+ return result;
-+}
-+
-+/* collect data, to sort before display */
-+static void
-+sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp)
-+{
-+ TERMDATA *data = new_termdata();
-
-- (void) printf("%-10s\t%s\n", cn, desc);
-+ data->db_index = db_index;
-+ data->checksum = ((db_limit > 1) ? checksum_of(tp) : 0);
-+ data->term_name = strmalloc(term_name);
-+ data->description = strmalloc(term_description(tp));
- }
-
- #if USE_TERMCAP
- static void
--show_termcap(char *buffer,
-- void (*hook) (const char *, TERMTYPE *tp))
-+show_termcap(int db_index, int db_limit, char *buffer, DescHook hook)
- {
- TERMTYPE data;
- char *next = strchr(buffer, ':');
-@@ -149,20 +339,36 @@
- if (last)
- ++last;
-
-- data.term_names = strdup(buffer);
-+ memset(&data, 0, sizeof(data));
-+ data.term_names = strmalloc(buffer);
- while ((next = strtok(list, "|")) != 0) {
- if (next != last)
-- hook(next, &data);
-+ hook(db_index, db_limit, next, &data);
- list = 0;
- }
- free(data.term_names);
- }
- #endif
-
-+#if USE_DATABASE
-+static char *
-+copy_entryname(DIRENT * src)
-+{
-+ size_t len = NAMLEN(src);
-+ char *result = malloc(len + 1);
-+ if (result == 0)
-+ failed("copy entryname");
-+ memcpy(result, src->d_name, len);
-+ result[len] = '\0';
-+
-+ return result;
-+}
-+#endif
-+
- static int
- typelist(int eargc, char *eargv[],
- bool verbosity,
-- void (*hook) (const char *, TERMTYPE *tp))
-+ DescHook hook)
- /* apply a function to each entry in given terminfo directories */
- {
- int i;
-@@ -179,28 +385,35 @@
- (void) fprintf(stderr,
- "%s: can't open terminfo directory %s\n",
- _nc_progname, eargv[i]);
-- return (EXIT_FAILURE);
-- } else if (verbosity)
-+ continue;
-+ }
-+
-+ if (verbosity)
- (void) printf("#\n#%s:\n#\n", eargv[i]);
-
- while ((subdir = readdir(termdir)) != 0) {
-- size_t len = NAMLEN(subdir);
-- size_t cwd_len = len + strlen(eargv[i]) + 3;
-- char name_1[PATH_MAX];
-+ size_t cwd_len;
-+ char *name_1;
- DIR *entrydir;
- DIRENT *entry;
-
-+ name_1 = copy_entryname(subdir);
-+ if (isDotname(name_1)) {
-+ free(name_1);
-+ continue;
-+ }
-+
-+ cwd_len = NAMLEN(subdir) + strlen(eargv[i]) + 3;
- cwd_buf = typeRealloc(char, cwd_len, cwd_buf);
- if (cwd_buf == 0)
- failed("realloc cwd_buf");
-
- assert(cwd_buf != 0);
-
-- strncpy(name_1, subdir->d_name, len)[len] = '\0';
-- if (isDotname(name_1))
-- continue;
-+ _nc_SPRINTF(cwd_buf, _nc_SLIMIT(cwd_len)
-+ "%s/%s/", eargv[i], name_1);
-+ free(name_1);
-
-- (void) sprintf(cwd_buf, "%s/%.*s/", eargv[i], (int) len, name_1);
- if (chdir(cwd_buf) != 0)
- continue;
-
-@@ -210,15 +423,16 @@
- continue;
- }
- while ((entry = readdir(entrydir)) != 0) {
-- char name_2[PATH_MAX];
-+ char *name_2;
- TERMTYPE lterm;
- char *cn;
- int status;
-
-- len = NAMLEN(entry);
-- strncpy(name_2, entry->d_name, len)[len] = '\0';
-- if (isDotname(name_2) || !_nc_is_file_path(name_2))
-+ name_2 = copy_entryname(entry);
-+ if (isDotname(name_2) || !_nc_is_file_path(name_2)) {
-+ free(name_2);
- continue;
-+ }
-
- status = _nc_read_file_entry(name_2, &lterm);
- if (status <= 0) {
-@@ -226,6 +440,10 @@
- (void) fprintf(stderr,
- "%s: couldn't open terminfo file %s.\n",
- _nc_progname, name_2);
-+ free(cwd_buf);
-+ free(name_2);
-+ closedir(entrydir);
-+ closedir(termdir);
- return (EXIT_FAILURE);
- }
-
-@@ -233,21 +451,26 @@
- cn = _nc_first_name(lterm.term_names);
- if (!strcmp(cn, name_2)) {
- /* apply the selected hook function */
-- (*hook) (cn, &lterm);
-+ hook(i, eargc, cn, &lterm);
- }
- _nc_free_termtype(&lterm);
-+ free(name_2);
- }
- closedir(entrydir);
- }
- closedir(termdir);
- if (cwd_buf != 0)
- free(cwd_buf);
-+ continue;
- }
- #if USE_HASHED_DB
- else {
- DB *capdbp;
- char filename[PATH_MAX];
-
-+ if (verbosity)
-+ (void) printf("#\n#%s:\n#\n", eargv[i]);
-+
- if (make_db_name(filename, eargv[i], sizeof(filename))) {
- if ((capdbp = _nc_db_open(filename, FALSE)) != 0) {
- DBT key, data;
-@@ -265,7 +488,7 @@
- /* only visit things once, by primary name */
- cn = _nc_first_name(lterm.term_names);
- /* apply the selected hook function */
-- (*hook) (cn, &lterm);
-+ hook(i, eargc, cn, &lterm);
- _nc_free_termtype(&lterm);
- }
- }
-@@ -273,6 +496,7 @@
- }
-
- _nc_db_close(capdbp);
-+ continue;
- }
- }
- }
-@@ -280,37 +504,43 @@
- #endif
- #if USE_TERMCAP
- #if HAVE_BSD_CGETENT
-- char *db_array[2];
-- char *buffer = 0;
-+ {
-+ CGETENT_CONST char *db_array[2];
-+ char *buffer = 0;
-
-- if (verbosity)
-- (void) printf("#\n#%s:\n#\n", eargv[i]);
-+ if (verbosity)
-+ (void) printf("#\n#%s:\n#\n", eargv[i]);
-
-- db_array[0] = eargv[i];
-- db_array[1] = 0;
-+ db_array[0] = eargv[i];
-+ db_array[1] = 0;
-
-- if (cgetfirst(&buffer, db_array)) {
-- show_termcap(buffer, hook);
-- free(buffer);
-- while (cgetnext(&buffer, db_array)) {
-- show_termcap(buffer, hook);
-+ if (cgetfirst(&buffer, db_array) > 0) {
-+ show_termcap(i, eargc, buffer, hook);
- free(buffer);
-+ while (cgetnext(&buffer, db_array) > 0) {
-+ show_termcap(i, eargc, buffer, hook);
-+ free(buffer);
-+ }
-+ cgetclose();
-+ continue;
- }
- }
-- cgetclose();
- #else
- /* scan termcap text-file only */
- if (_nc_is_file_path(eargv[i])) {
- char buffer[2048];
- FILE *fp;
-
-+ if (verbosity)
-+ (void) printf("#\n#%s:\n#\n", eargv[i]);
-+
- if ((fp = fopen(eargv[i], "r")) != 0) {
- while (fgets(buffer, sizeof(buffer), fp) != 0) {
- if (*buffer == '#')
- continue;
- if (isspace(*buffer))
- continue;
-- show_termcap(buffer, hook);
-+ show_termcap(i, eargc, buffer, hook);
- }
- fclose(fp);
- }
-@@ -319,13 +549,18 @@
- #endif
- }
-
-+ if (hook == sorthook) {
-+ show_termdata(eargc, eargv);
-+ free_termdata();
-+ }
-+
- return (EXIT_SUCCESS);
- }
-
- static void
- usage(void)
- {
-- (void) fprintf(stderr, "usage: %s [-ahuUV] [-v n] [file...]\n", _nc_progname);
-+ (void) fprintf(stderr, "usage: %s [-ahsuUV] [-v n] [file...]\n", _nc_progname);
- ExitProgram(EXIT_FAILURE);
- }
-
-@@ -340,23 +575,24 @@
- unsigned i;
- int code;
- int this_opt, last_opt = '?';
-- int v_opt = 0;
-+ unsigned v_opt = 0;
-+ DescHook *hook = deschook;
-
- _nc_progname = _nc_rootname(argv[0]);
-
-- while ((this_opt = getopt(argc, argv, "0123456789ahu:vU:V")) != -1) {
-+ while ((this_opt = getopt(argc, argv, "0123456789ahsu:vU:V")) != -1) {
- /* handle optional parameter */
- if (isdigit(this_opt)) {
- switch (last_opt) {
- case 'v':
-- v_opt = (this_opt - '0');
-+ v_opt = (unsigned) (this_opt - '0');
- break;
- default:
- if (isdigit(last_opt))
- v_opt *= 10;
- else
- v_opt = 0;
-- v_opt += (this_opt - '0');
-+ v_opt += (unsigned) (this_opt - '0');
- last_opt = this_opt;
- }
- continue;
-@@ -368,6 +604,9 @@
- case 'h':
- header = TRUE;
- break;
-+ case 's':
-+ hook = sorthook;
-+ break;
- case 'u':
- direct_dependencies = TRUE;
- report_file = optarg;
-@@ -450,7 +689,7 @@
- * If we get this far, user wants a simple terminal type listing.
- */
- if (optind < argc) {
-- code = typelist(argc - optind, argv + optind, header, deschook);
-+ code = typelist(argc - optind, argv + optind, header, hook);
- } else if (all_dirs) {
- DBDIRS state;
- int offset;
-@@ -460,64 +699,41 @@
-
- code = EXIT_FAILURE;
- for (pass = 0; pass < 2; ++pass) {
-- unsigned count = 0;
-+ size_t count = 0;
-
- _nc_first_db(&state, &offset);
- while ((path = _nc_next_db(&state, &offset)) != 0) {
-- if (!is_database(path)) {
-- ;
-- } else if (eargv != 0) {
-- unsigned n;
-- int found = FALSE;
--
-- /* eliminate duplicates */
-- for (n = 0; n < count; ++n) {
-- if (!strcmp(path, eargv[n])) {
-- found = TRUE;
-- break;
-- }
-- }
-- if (!found) {
-- eargv[count] = strdup(path);
-- ++count;
-- }
-- } else {
-- ++count;
-+ if (pass) {
-+ eargv[count] = strmalloc(path);
- }
-+ ++count;
- }
- if (!pass) {
-- eargv = typeCalloc(char *, count + 1);
-+ eargv = allocArgv(count);
- if (eargv == 0)
-- failed("realloc eargv");
--
-- assert(eargv != 0);
-+ failed("eargv");
- } else {
-- code = typelist((int) count, eargv, header, deschook);
-- while (count-- > 0)
-- free(eargv[count]);
-- free(eargv);
-+ code = typelist((int) count, eargv, header, hook);
-+ freeArgv(eargv);
- }
- }
- } else {
- DBDIRS state;
- int offset;
- const char *path;
-- char *eargv[3];
-- int count = 0;
-+ char **eargv = allocArgv(2);
-+ size_t count = 0;
-
-+ if (eargv == 0)
-+ failed("eargv");
- _nc_first_db(&state, &offset);
-- while ((path = _nc_next_db(&state, &offset)) != 0) {
-- if (is_database(path)) {
-- eargv[count++] = strdup(path);
-- break;
-- }
-+ if ((path = _nc_next_db(&state, &offset)) != 0) {
-+ eargv[count++] = strmalloc(path);
- }
-- eargv[count] = 0;
-
-- code = typelist(count, eargv, header, deschook);
-+ code = typelist((int) count, eargv, header, hook);
-
-- while (count-- > 0)
-- free(eargv[count]);
-+ freeArgv(eargv);
- }
- _nc_last_db();
-
-Index: progs/tput.c
-Prereq: 1.46
---- ncurses-5.9/progs/tput.c 2010-01-09 16:53:24.000000000 +0000
-+++ ncurses-5.9-20130504/progs/tput.c 2012-02-18 21:51:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -47,7 +47,7 @@
- #endif
- #include <transform.h>
-
--MODULE_ID("$Id: tput.c,v 1.46 2010/01/09 16:53:24 tom Exp $")
-+MODULE_ID("$Id: tput.c,v 1.48 2012/02/18 21:51:17 tom Exp $")
-
- #define PUTS(s) fputs(s, stdout)
- #define PUTCHAR(c) putchar(c)
-@@ -94,9 +94,6 @@
- * Lookup the type of call we should make to tparm(). This ignores the actual
- * terminfo capability (bad, because it is not extensible), but makes this
- * code portable to platforms where sizeof(int) != sizeof(char *).
-- *
-- * FIXME: If we want extensibility, analyze the capability string as we do
-- * in tparm() to decide how to parse the varargs list.
- */
- static TParams
- tparm_type(const char *name)
-@@ -338,7 +335,7 @@
- case Numbers:
- default:
- (void) _nc_tparm_analyze(s, p_is_s, &popcount);
--#define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n])
-+#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
- s = TPARM_9(s,
- myParam(1),
- myParam(2),
-Index: progs/transform.c
-Prereq: 1.2
---- ncurses-5.9/progs/transform.c 2010-09-04 21:16:17.000000000 +0000
-+++ ncurses-5.9-20130504/progs/transform.c 2011-05-14 22:41:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2009-2010,2011 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,21 +34,21 @@
-
- #include <transform.h>
-
--MODULE_ID("$Id: transform.c,v 1.2 2010/09/04 21:16:17 tom Exp $")
-+MODULE_ID("$Id: transform.c,v 1.3 2011/05/14 22:41:17 tom Exp $")
-
- #ifdef SUFFIX_IGNORED
- static void
--trim_suffix(const char *a, unsigned *len)
-+trim_suffix(const char *a, size_t *len)
- {
- const char ignore[] = SUFFIX_IGNORED;
-
- if (sizeof(ignore) != 0) {
- bool trim = FALSE;
-- unsigned need = (sizeof(ignore) - 1);
-+ size_t need = (sizeof(ignore) - 1);
-
- if (*len > need) {
-- unsigned first = *len - need;
-- unsigned n;
-+ size_t first = *len - need;
-+ size_t n;
- trim = TRUE;
- for (n = first; n < *len; ++n) {
- if (tolower(UChar(a[n])) != tolower(UChar(ignore[n - first]))) {
-@@ -69,8 +69,8 @@
- bool
- same_program(const char *a, const char *b)
- {
-- unsigned len_a = strlen(a);
-- unsigned len_b = strlen(b);
-+ size_t len_a = strlen(a);
-+ size_t len_b = strlen(b);
-
- trim_suffix(a, &len_a);
- trim_suffix(b, &len_b);
-Index: progs/tset.c
-Prereq: 1.82
---- ncurses-5.9/progs/tset.c 2010-05-01 21:42:46.000000000 +0000
-+++ ncurses-5.9-20130504/progs/tset.c 2013-03-23 21:38:08.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -119,7 +119,7 @@
- #include <dump_entry.h>
- #include <transform.h>
-
--MODULE_ID("$Id: tset.c,v 1.82 2010/05/01 21:42:46 tom Exp $")
-+MODULE_ID("$Id: tset.c,v 1.91 2013/03/23 21:38:08 tom Exp $")
-
- /*
- * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
-@@ -148,6 +148,10 @@
- #undef CTRL
- #define CTRL(x) ((x) & 0x1f)
-
-+static void failed(const char *) GCC_NORETURN;
-+static void exit_error(void) GCC_NORETURN;
-+static void err(const char *,...) GCC_NORETURN;
-+
- const char *_nc_progname = "tset";
-
- static TTY mode, oldmode, original;
-@@ -160,7 +164,10 @@
- static int terasechar = -1; /* new erase character */
- static int intrchar = -1; /* new interrupt character */
- static int tkillchar = -1; /* new kill character */
-+
-+#if HAVE_SIZECHANGE
- static int tlines, tcolumns; /* window size */
-+#endif
-
- #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
-
-@@ -203,13 +210,13 @@
- failed(const char *msg)
- {
- char temp[BUFSIZ];
-- unsigned len = strlen(_nc_progname) + 2;
-+ size_t len = strlen(_nc_progname) + 2;
-
- if ((int) len < (int) sizeof(temp) - 12) {
-- strcpy(temp, _nc_progname);
-- strcat(temp, ": ");
-+ _nc_STRCPY(temp, _nc_progname, sizeof(temp));
-+ _nc_STRCAT(temp, ": ", sizeof(temp));
- } else {
-- strcpy(temp, "tset: ");
-+ _nc_STRCPY(temp, "tset: ", sizeof(temp));
- }
- perror(strncat(temp, msg, sizeof(temp) - strlen(temp) - 2));
- exit_error();
-@@ -467,9 +474,6 @@
- mapp->speed = tbaudrate(p);
- }
-
-- if (arg == (char *) 0) /* Non-optional type. */
-- goto badmopt;
--
- mapp->type = arg;
-
- /* Terminate porttype, if specified. */
-@@ -527,19 +531,19 @@
- match = TRUE;
- break;
- case EQ:
-- match = (ospeed == mapp->speed);
-+ match = ((int) ospeed == mapp->speed);
- break;
- case GE:
-- match = (ospeed >= mapp->speed);
-+ match = ((int) ospeed >= mapp->speed);
- break;
- case GT:
-- match = (ospeed > mapp->speed);
-+ match = ((int) ospeed > mapp->speed);
- break;
- case LE:
-- match = (ospeed <= mapp->speed);
-+ match = ((int) ospeed <= mapp->speed);
- break;
- case LT:
-- match = (ospeed < mapp->speed);
-+ match = ((int) ospeed < mapp->speed);
- break;
- default:
- match = FALSE;
-@@ -1043,11 +1047,18 @@
- {
- if (set_tab && clear_all_tabs) {
- int c;
-+ int lim =
-+#if HAVE_SIZECHANGE
-+ tcolumns
-+#else
-+ columns
-+#endif
-+ ;
-
- (void) putc('\r', stderr); /* Force to left margin. */
- tputs(clear_all_tabs, 0, outc);
-
-- for (c = 8; c < tcolumns; c += 8) {
-+ for (c = 8; c < lim; c += 8) {
- /* Get to the right column. In BSD tset, this
- * used to try a bunch of half-clever things
- * with cup and hpa, for an average saving of
-@@ -1273,10 +1284,10 @@
- (void) get_termcap_entry(*argv);
-
- if (!noset) {
-+#if HAVE_SIZECHANGE
- tcolumns = columns;
- tlines = lines;
-
--#if HAVE_SIZECHANGE
- if (opt_w) {
- STRUCT_WINSIZE win;
- /* Set window size if not set already */
-Index: test/Makefile.in
-Prereq: 1.108
---- ncurses-5.9/test/Makefile.in 2010-11-28 16:39:40.000000000 +0000
-+++ ncurses-5.9-20130504/test/Makefile.in 2011-09-24 15:13:44.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: Makefile.in,v 1.108 2010/11/28 16:39:40 tom Exp $
-+# $Id: Makefile.in,v 1.109 2011/09/24 15:13:44 nix Exp $
- ##############################################################################
--# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -102,7 +102,7 @@
- LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
- LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-
--TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
-+TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
-
- # use these for linking with all of the libraries
- LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB)
-@@ -117,8 +117,8 @@
- LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
-
- # use these for linking with the tinfo library if we have it, or curses library if not
--LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
--LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
-+LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
-+LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
-
- LINT = @LINT@
- LINT_OPTS = @LINT_OPTS@
-Index: test/README
-Prereq: 1.44
---- ncurses-5.9/test/README 2011-02-26 00:09:25.000000000 +0000
-+++ ncurses-5.9-20130504/test/README 2013-01-19 21:30:38.000000000 +0000
-@@ -1,5 +1,5 @@
- -------------------------------------------------------------------------------
---- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
-+-- Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. --
- -- --
- -- Permission is hereby granted, free of charge, to any person obtaining a --
- -- copy of this software and associated documentation files (the --
-@@ -25,7 +25,7 @@
- -- sale, use or other dealings in this Software without prior written --
- -- authorization. --
- -------------------------------------------------------------------------------
---- $Id: README,v 1.44 2011/02/26 00:09:25 tom Exp $
-+-- $Id: README,v 1.47 2013/01/19 21:30:38 tom Exp $
- -------------------------------------------------------------------------------
-
- The programs in this directory are designed to test your newest toy :-)
-@@ -223,18 +223,18 @@
- SP lib: form
- TABSIZE test: test_opaque
- UP -
--acs_map test: gdc ins_wide inserts knight movewindow ncurses newdemo test_add_wchstr test_addchstr test_addstr test_addwstr testcurs
-+acs_map test: background gdc ins_wide inserts knight movewindow ncurses newdemo test_add_wchstr test_addchstr test_addstr test_addwstr testcurs
- add_wch test: demo_panels ncurses test_add_wchstr test_addwstr
- add_wchnstr test: test_add_wchstr
- add_wchstr test: test_add_wchstr view
--addch test: blue bs echochar hashtest ncurses savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm
-+addch test: background blue bs echochar hashtest ncurses savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm
- addchnstr test: test_addchstr
- addchstr test: test_addchstr
- addnstr test: test_addstr
- addnwstr test: ncurses test_addwstr
- addstr test: blue bs cardfile gdc hanoi lrtest ncurses savescreen test_addstr
- addwstr test: ncurses test_addwstr
--assume_default_colors test: ncurses
-+assume_default_colors test: background ncurses
- assume_default_colors_sp -
- attr_get test: ncurses
- attr_off test: ncurses
-@@ -271,7 +271,7 @@
- color_content_sp -
- color_set test: color_set ncurses
- copywin test: ncurses testcurs
--cur_term test: demo_terminfo dots dots_mvcur lrtest progs: clear tabs tput tset
-+cur_term test: demo_terminfo dots dots_mvcur lrtest test_vid_puts test_vidputs progs: clear tabs tput tset
- curs_set test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas
- curs_set_sp lib: ncurses
- curscr test: demo_panels edit_field knight lrtest ncurses savescreen tclock view
-@@ -306,7 +306,7 @@
- erasewchar -
- filter test: filter
- filter_sp -
--flash test: cardfile lrtest ncurses tclock testcurs
-+flash test: cardfile lrtest movewindow ncurses tclock testcurs
- flash_sp -
- flushinp test: ncurses newdemo testcurs
- flushinp_sp lib: ncurses
-@@ -399,7 +399,7 @@
- key_name test: key_names ncurses
- keybound test: demo_altkeys demo_defkey
- keybound_sp lib: ncurses
--keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic
-+keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw test_getstr testcurs view progs: tic
- keyname_sp lib: ncurses
- keyok test: demo_keyok foldkeys
- keyok_sp lib: ncurses
-@@ -430,7 +430,7 @@
- mvaddwstr test: test_addwstr
- mvchgat test: chgat
- mvcur test: dots_mvcur redraw
--mvcur_sp lib: ncurses
-+mvcur_sp -
- mvdelch -
- mvderwin test: movewindow
- mvget_wch -
-@@ -457,7 +457,7 @@
- mvinsstr test: inserts
- mvinstr test: test_instr
- mvinwstr test: test_inwstr
--mvprintw test: bs demo_menus firework hanoi ncurses tclock view
-+mvprintw test: background bs demo_menus firework hanoi ncurses tclock view
- mvscanw -
- mvvline test: ncurses
- mvvline_set test: ncurses
-@@ -542,13 +542,13 @@
- prefresh test: testcurs
- printw test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses savescreen testcurs testscanw view
- putp progs: tput
--putp_sp lib: ncurses
-+putp_sp -
- putwin test: ncurses
- qiflush -
- qiflush_sp -
- raw test: demo_forms ncurses redraw testcurs
- raw_sp lib: ncurses
--redrawwin test: redraw
-+redrawwin test: redraw view
- refresh test: blue bs demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses savescreen tclock testcurs view xmas
- reset_prog_mode test: filter ncurses
- reset_prog_mode_sp lib: ncurses
-@@ -586,7 +586,7 @@
- set_term lib: ncurses
- setcchar test: demo_panels ins_wide ncurses test_add_wchstr test_addwstr view
- setscrreg test: view
--setupterm test: demo_termcap demo_terminfo dots progs: clear tabs tput tset
-+setupterm test: demo_termcap demo_terminfo dots test_vid_puts test_vidputs progs: clear tabs tput tset
- slk_attr -
- slk_attr_off -
- slk_attr_on -
-@@ -644,20 +644,20 @@
- tgetstr test: demo_termcap railroad
- tgetstr_sp -
- tgoto test: railroad
--tigetflag test: demo_terminfo progs: tput
-+tigetflag test: demo_terminfo progs: tic tput
- tigetflag_sp -
- tigetnum test: demo_terminfo ncurses progs: tput
- tigetnum_sp -
--tigetstr test: blue demo_defkey demo_terminfo foldkeys testcurs progs: tput
-+tigetstr test: demo_defkey demo_terminfo foldkeys testcurs progs: tput
- tigetstr_sp -
- timeout test: rain savescreen
- tiparm -
- touchline test: chgat clip_printw insdelln
- touchwin test: chgat clip_printw demo_menus edit_field filter firstlast inch_wide inchs ins_wide insdelln inserts movewindow ncurses redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
- tparm test: dots dots_mvcur progs: tabs tic tput
--tputs test: dots dots_mvcur railroad progs: clear tabs tset
-+tputs test: dots dots_mvcur railroad test_vid_puts test_vidputs progs: clear tabs tset
- tputs_sp lib: ncurses
--trace test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
-+trace test: demo_menus hashtest lrtest ncurses testcurs view worm
- ttytype lib: ncurses
- typeahead test: testcurs
- typeahead_sp lib: ncurses
-@@ -670,22 +670,24 @@
- ungetmouse -
- ungetmouse_sp -
- untouchwin lib: form
--use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas
-+use_default_colors test: background filter firework gdc hanoi knight ncurses rain tclock worm xmas
- use_default_colors_sp -
--use_env progs: tput
-+use_env test: ncurses progs: tput
- use_env_sp -
--use_extended_names test: demo_terminfo progs: infocmp tic
-+use_extended_names test: demo_termcap demo_terminfo progs: infocmp tic
- use_legacy_coding -
- use_legacy_coding_sp -
- use_screen test: ditto
-+use_tioctl test: ncurses
-+use_tioctl_sp -
- use_window test: rain worm
--vid_attr -
-+vid_attr test: test_vid_puts
- vid_attr_sp -
--vid_puts -
-+vid_puts test: test_vid_puts
- vid_puts_sp -
--vidattr -
--vidattr_sp lib: ncurses
--vidputs -
-+vidattr test: test_vidputs
-+vidattr_sp -
-+vidputs test: test_vidputs
- vidputs_sp lib: ncurses
- vline test: gdc ncurses
- vline_set -
-Index: test/aclocal.m4
-Prereq: 1.50
---- ncurses-5.9/test/aclocal.m4 2011-03-24 08:28:07.000000000 +0000
-+++ ncurses-5.9-20130504/test/aclocal.m4 2013-03-09 21:41:33.000000000 +0000
-@@ -1,5 +1,5 @@
- dnl***************************************************************************
--dnl Copyright (c) 2003-2010,2011 Free Software Foundation, Inc. *
-+dnl Copyright (c) 2003-2012,2013 Free Software Foundation, Inc. *
- dnl *
- dnl Permission is hereby granted, free of charge, to any person obtaining a *
- dnl copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- dnl authorization. *
- dnl***************************************************************************
- dnl
--dnl $Id: aclocal.m4,v 1.50 2011/03/24 08:28:07 tom Exp $
-+dnl $Id: aclocal.m4,v 1.86 2013/03/09 21:41:33 tom Exp $
- dnl
- dnl Author: Thomas E. Dickey
- dnl
-@@ -40,6 +40,32 @@
- dnl
- dnl ---------------------------------------------------------------------------
- dnl ---------------------------------------------------------------------------
-+dnl CF_ACVERSION_CHECK version: 4 updated: 2013/03/04 19:52:56
-+dnl ------------------
-+dnl Conditionally generate script according to whether we're using a given autoconf.
-+dnl
-+dnl $1 = version to compare against
-+dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
-+dnl $3 = code to use if AC_ACVERSION is older than $1.
-+define([CF_ACVERSION_CHECK],
-+[
-+ifdef([AC_ACVERSION], ,[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])dnl
-+ifdef([m4_version_compare],
-+[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
-+[CF_ACVERSION_COMPARE(
-+AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
-+AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
-+dnl --------------------
-+dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
-+dnl MAJOR2, MINOR2, TERNARY2,
-+dnl PRINTABLE2, not FOUND, FOUND)
-+define([CF_ACVERSION_COMPARE],
-+[ifelse(builtin([eval], [$2 < $5]), 1,
-+[ifelse([$8], , ,[$8])],
-+[ifelse([$9], , ,[$9])])])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
- dnl -------------
- dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
-@@ -272,76 +298,6 @@
- }
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
--dnl ----------------
--dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
--dnl in the sharutils 4.2 distribution.
--AC_DEFUN([CF_ANSI_CC_CHECK],
--[
--AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
--cf_cv_ansi_cc=no
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
--for cf_arg in "-DCC_HAS_PROTOS" \
-- "" \
-- -qlanglvl=ansi \
-- -std1 \
-- -Ae \
-- "-Aa -D_HPUX_SOURCE" \
-- -Xc
--do
-- CF_ADD_CFLAGS($cf_arg)
-- AC_TRY_COMPILE(
--[
--#ifndef CC_HAS_PROTOS
--#if !defined(__STDC__) || (__STDC__ != 1)
--choke me
--#endif
--#endif
--],[
-- int test (int i, double x);
-- struct s1 {int (*f) (int a);};
-- struct s2 {int (*f) (double a);};],
-- [cf_cv_ansi_cc="$cf_arg"; break])
--done
--CFLAGS="$cf_save_CFLAGS"
--CPPFLAGS="$cf_save_CPPFLAGS"
--])
--
--if test "$cf_cv_ansi_cc" != "no"; then
--if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-- CF_ADD_CFLAGS($cf_cv_ansi_cc)
--else
-- AC_DEFINE(CC_HAS_PROTOS)
--fi
--fi
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
--dnl ---------------
--dnl For programs that must use an ANSI compiler, obtain compiler options that
--dnl will make it recognize prototypes. We'll do preprocessor checks in other
--dnl macros, since tools such as unproto can fake prototypes, but only part of
--dnl the preprocessor.
--AC_DEFUN([CF_ANSI_CC_REQD],
--[AC_REQUIRE([CF_ANSI_CC_CHECK])
--if test "$cf_cv_ansi_cc" = "no"; then
-- AC_MSG_ERROR(
--[Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto])
--fi
--])dnl
--dnl ---------------------------------------------------------------------------
- dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
- dnl --------------
- dnl Allow user to disable a normally-on option.
-@@ -377,7 +333,33 @@
- ])dnl
- ])])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
-+dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
-+dnl ---------------
-+dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
-+dnl into CC. This will not help with broken scripts that wrap the compiler with
-+dnl options, but eliminates a more common category of user confusion.
-+AC_DEFUN([CF_CC_ENV_FLAGS],
-+[
-+# This should have been defined by AC_PROG_CC
-+: ${CC:=cc}
-+
-+AC_MSG_CHECKING(\$CC variable)
-+case "$CC" in #(vi
-+*[[\ \ ]]-[[IUD]]*)
-+ AC_MSG_RESULT(broken)
-+ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
-+ # humor him...
-+ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
-+ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
-+ CF_ADD_CFLAGS($cf_flags)
-+ ;;
-+*)
-+ AC_MSG_RESULT(ok)
-+ ;;
-+esac
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
- dnl --------------
- dnl Check if we're accidentally using a cache from a different machine.
- dnl Derive the system name, as a check for reusing the autoconf cache.
-@@ -400,7 +382,7 @@
- system_name="`(hostname) 2>/dev/null`"
- fi
- fi
--test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
-+test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
- AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
-
- test -z "$system_name" && system_name="$cf_cv_system_name"
-@@ -434,7 +416,40 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_ACS_MAP version: 6 updated: 2010/10/23 15:54:49
-+dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39
-+dnl -----------------
-+dnl Check if the given compiler is really clang. clang's C driver defines
-+dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
-+dnl not ignore some gcc options.
-+dnl
-+dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
-+dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
-+dnl the wrappers for gcc and g++ warnings.
-+dnl
-+dnl $1 = GCC (default) or GXX
-+dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
-+dnl $3 = CFLAGS (default) or CXXFLAGS
-+AC_DEFUN([CF_CLANG_COMPILER],[
-+ifelse([$2],,CLANG_COMPILER,[$2])=no
-+
-+if test "$ifelse([$1],,[$1],GCC)" = yes ; then
-+ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
-+ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
-+ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
-+ AC_TRY_COMPILE([],[
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+],[])
-+ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
-+ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
- dnl -----------------
- dnl Check for likely values of acs_map[]:
- AC_DEFUN([CF_CURSES_ACS_MAP],
-@@ -452,7 +467,7 @@
- done
- ])
-
--test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
-+test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_])
- ])
- dnl ---------------------------------------------------------------------------
- dnl CF_CURSES_CHECK_DATA version: 4 updated: 2011/01/15 16:39:24
-@@ -499,7 +514,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_CHECK_TYPE version: 3 updated: 2010/10/23 15:54:49
-+dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
- dnl --------------------
- dnl Check if curses.h defines the given type
- AC_DEFUN([CF_CURSES_CHECK_TYPE],
-@@ -515,9 +530,9 @@
- AC_MSG_RESULT($cf_result)
- if test $cf_result = yes ; then
- CF_UPPER(cf_result,have_type_$1)
-- AC_DEFINE_UNQUOTED($cf_result)
-+ AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
- else
-- AC_DEFINE_UNQUOTED($1,$2)
-+ AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-@@ -533,7 +548,7 @@
- CF_CURSES_LIBS
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11
-+dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
- dnl ------------------
- dnl Look for the curses headers.
- AC_DEFUN([CF_CURSES_CPPFLAGS],[
-@@ -542,13 +557,19 @@
- cf_cv_curses_incdir=no
- case $host_os in #(vi
- hpux10.*) #(vi
-- test -d /usr/include/curses_colr && \
-- cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+ if test "x$cf_cv_screen" = "xcurses_colr"
-+ then
-+ test -d /usr/include/curses_colr && \
-+ cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+ fi
- ;;
- sunos3*|sunos4*)
-- test -d /usr/5lib && \
-- test -d /usr/5include && \
-- cf_cv_curses_incdir="-I/usr/5include"
-+ if test "x$cf_cv_screen" = "xcurses_5lib"
-+ then
-+ test -d /usr/5lib && \
-+ test -d /usr/5include && \
-+ cf_cv_curses_incdir="-I/usr/5include"
-+ fi
- ;;
- esac
- ])
-@@ -558,7 +579,7 @@
- CF_TERM_HEADER
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_FUNCS version: 15 updated: 2010/10/23 15:52:32
-+dnl CF_CURSES_FUNCS version: 17 updated: 2011/05/14 16:07:29
- dnl ---------------
- dnl Curses-functions are a little complicated, since a lot of them are macros.
- AC_DEFUN([CF_CURSES_FUNCS],
-@@ -566,6 +587,7 @@
- AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
- AC_REQUIRE([CF_XOPEN_CURSES])
- AC_REQUIRE([CF_CURSES_TERM_H])
-+AC_REQUIRE([CF_CURSES_UNCTRL_H])
- for cf_func in $1
- do
- CF_UPPER(cf_tr_func,$cf_func)
-@@ -578,7 +600,8 @@
- [
- #ifndef ${cf_func}
- long foo = (long)(&${cf_func});
--${cf_cv_main_return:-return}(foo == 0);
-+if (foo + 1234 > 5678)
-+ ${cf_cv_main_return:-return}(foo);
- #endif
- ],
- [cf_result=yes],
-@@ -595,7 +618,7 @@
- done
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
-+dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
- dnl ----------------
- dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
- dnl variations of ncurses' installs.
-@@ -605,10 +628,10 @@
- AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
- cf_cv_ncurses_header=none
- for cf_header in ifelse($1,,,[ \
-- $1/curses.h \
-- $1/ncurses.h]) \
-- curses.h \
-- ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
-+ $1/ncurses.h \
-+ $1/curses.h]) \
-+ ncurses.h \
-+ curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
- do
- AC_TRY_COMPILE([#include <${cf_header}>],
- [initscr(); tgoto("?", 0,0)],
-@@ -624,7 +647,7 @@
- AC_CHECK_HEADERS($cf_cv_ncurses_header)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_LIBS version: 33 updated: 2011/03/06 12:37:18
-+dnl CF_CURSES_LIBS version: 37 updated: 2013/02/09 17:33:50
- dnl --------------
- dnl Look for the curses libraries. Older curses implementations may require
- dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
-@@ -644,17 +667,24 @@
- AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
- ;;
- hpux10.*) #(vi
-- AC_CHECK_LIB(cur_colr,initscr,[
-- CF_ADD_LIBS(-lcur_colr)
-- ac_cv_func_initscr=yes
-- ],[
-- AC_CHECK_LIB(Hcurses,initscr,[
-- # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-- CF_ADD_LIBS(-lHcurses)
-- CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
-- ac_cv_func_initscr=yes
-- ])])
-- ;;
-+ # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
-+ # next (1998), and xcurses "newer" (2000). There is no header file for
-+ # Hcurses; the subdirectory curses_colr has the headers (curses.h and
-+ # term.h) for cur_colr
-+ if test "x$cf_cv_screen" = "xcurses_colr"
-+ then
-+ AC_CHECK_LIB(cur_colr,initscr,[
-+ CF_ADD_LIBS(-lcur_colr)
-+ ac_cv_func_initscr=yes
-+ ],[
-+ AC_CHECK_LIB(Hcurses,initscr,[
-+ # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-+ CF_ADD_LIBS(-lHcurses)
-+ CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
-+ ac_cv_func_initscr=yes
-+ ])])
-+ fi
-+ ;;
- linux*)
- case `arch 2>/dev/null` in
- x86_64)
-@@ -669,76 +699,83 @@
- CF_ADD_LIBDIR(/lib)
- ;;
- esac
-- ;;
-+ ;;
- sunos3*|sunos4*)
-- if test -d /usr/5lib ; then
-- CF_ADD_LIBDIR(/usr/5lib)
-- CF_ADD_LIBS(-lcurses -ltermcap)
-+ if test "x$cf_cv_screen" = "xcurses_5lib"
-+ then
-+ if test -d /usr/5lib ; then
-+ CF_ADD_LIBDIR(/usr/5lib)
-+ CF_ADD_LIBS(-lcurses -ltermcap)
-+ fi
- fi
- ac_cv_func_initscr=yes
- ;;
- esac
-
- if test ".$ac_cv_func_initscr" != .yes ; then
-- cf_save_LIBS="$LIBS"
-- cf_term_lib=""
-- cf_curs_lib=""
-+ cf_save_LIBS="$LIBS"
-
-- if test ".${cf_cv_ncurses_version:-no}" != .no
-- then
-- cf_check_list="ncurses curses cursesX"
-- else
-- cf_check_list="cursesX curses ncurses"
-- fi
-+ if test ".${cf_cv_ncurses_version:-no}" != .no
-+ then
-+ cf_check_list="ncurses curses cursesX"
-+ else
-+ cf_check_list="cursesX curses ncurses"
-+ fi
-
-- # Check for library containing tgoto. Do this before curses library
-- # because it may be needed to link the test-case for initscr.
-- AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
-- for cf_term_lib in $cf_check_list termcap termlib unknown
-- do
-- AC_CHECK_LIB($cf_term_lib,tgoto,[break])
-- done
-- ])
-+ # Check for library containing tgoto. Do this before curses library
-+ # because it may be needed to link the test-case for initscr.
-+ if test "x$cf_term_lib" = x
-+ then
-+ AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
-+ for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
-+ do
-+ AC_CHECK_LIB($cf_term_lib,tgoto,[break])
-+ done
-+ ])
-+ fi
-
-- # Check for library containing initscr
-- test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-- for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
-- do
-- AC_CHECK_LIB($cf_curs_lib,initscr,[break])
-- done
-- test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
-+ # Check for library containing initscr
-+ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-+ if test "x$cf_curs_lib" = x
-+ then
-+ for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
-+ do
-+ AC_CHECK_LIB($cf_curs_lib,initscr,[break])
-+ done
-+ fi
-+ test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
-
-- LIBS="-l$cf_curs_lib $cf_save_LIBS"
-- if test "$cf_term_lib" = unknown ; then
-- AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
-- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
-- [initscr()],
-- [cf_result=yes],
-- [cf_result=no])
-- AC_MSG_RESULT($cf_result)
-- test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
-- elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-- :
-- elif test "$cf_term_lib" != predefined ; then
-- AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
-- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
-- [initscr(); tgoto((char *)0, 0, 0);],
-- [cf_result=no],
-- [
-- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
-- [initscr()],
-- [cf_result=yes],
-- [cf_result=error])
-- ])
-- AC_MSG_RESULT($cf_result)
-- fi
-+ LIBS="-l$cf_curs_lib $cf_save_LIBS"
-+ if test "$cf_term_lib" = unknown ; then
-+ AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
-+ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
-+ [initscr()],
-+ [cf_result=yes],
-+ [cf_result=no])
-+ AC_MSG_RESULT($cf_result)
-+ test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
-+ elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-+ :
-+ elif test "$cf_term_lib" != predefined ; then
-+ AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
-+ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
-+ [initscr(); tgoto((char *)0, 0, 0);],
-+ [cf_result=no],
-+ [
-+ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-+ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
-+ [initscr()],
-+ [cf_result=yes],
-+ [cf_result=error])
-+ ])
-+ AC_MSG_RESULT($cf_result)
-+ fi
- fi
- fi
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_TERM_H version: 8 updated: 2010/10/23 15:54:49
-+dnl CF_CURSES_TERM_H version: 10 updated: 2012/10/06 08:57:51
- dnl ----------------
- dnl SVr4 curses should have term.h as well (where it puts the definitions of
- dnl the low-level interface). This may not be true in old/broken implementations,
-@@ -752,9 +789,17 @@
-
- # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
- # for <term.h> if we do not find the variant.
--for cf_header in \
-- `echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
-- term.h
-+
-+cf_header_list="term.h ncurses/term.h ncursesw/term.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
-+ cf_header_list="$cf_header_item $cf_header_list"
-+ ;;
-+esac
-+
-+for cf_header in $cf_header_list
- do
- AC_TRY_COMPILE([
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -789,18 +834,73 @@
-
- case $cf_cv_term_header in #(vi
- term.h) #(vi
-- AC_DEFINE(HAVE_TERM_H)
-+ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
- ;;
- ncurses/term.h) #(vi
-- AC_DEFINE(HAVE_NCURSES_TERM_H)
-+ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
- ;;
- ncursesw/term.h)
-- AC_DEFINE(HAVE_NCURSESW_TERM_H)
-+ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
-+ ;;
-+esac
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_CURSES_UNCTRL_H version: 2 updated: 2012/10/06 08:57:51
-+dnl ------------------
-+dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
-+dnl may put it in a subdirectory (along with ncurses' other headers, of
-+dnl course). Packages which put the headers in inconsistent locations are
-+dnl broken).
-+AC_DEFUN([CF_CURSES_UNCTRL_H],
-+[
-+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-+
-+AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
-+
-+# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
-+# for <unctrl.h> if we do not find the variant.
-+
-+cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
-+ cf_header_list="$cf_header_item $cf_header_list"
-+ ;;
-+esac
-+
-+for cf_header in $cf_header_list
-+do
-+ AC_TRY_COMPILE([
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <${cf_header}>],
-+ [WINDOW *x],
-+ [cf_cv_unctrl_header=$cf_header
-+ break],
-+ [cf_cv_unctrl_header=no])
-+done
-+
-+case $cf_cv_unctrl_header in #(vi
-+no)
-+ AC_MSG_WARN(unctrl.h header not found)
-+ ;;
-+esac
-+])
-+
-+case $cf_cv_unctrl_header in #(vi
-+unctrl.h) #(vi
-+ AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
-+ ;;
-+ncurses/unctrl.h) #(vi
-+ AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
-+ ;;
-+ncursesw/unctrl.h)
-+ AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
- ;;
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59
-+dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
- dnl ------------------
- dnl Check for likely values of wacs_map[].
- AC_DEFUN([CF_CURSES_WACS_MAP],
-@@ -819,10 +919,10 @@
- break])
- done])
-
--test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map)
-+test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_CURSES_WACS_SYMBOLS version: 1 updated: 2011/01/15 11:28:59
-+dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
- dnl ----------------------
- dnl Do a check to see if the WACS_xxx constants are defined compatibly with
- dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
-@@ -854,7 +954,7 @@
- fi
- ])
-
--test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS)
-+test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
-@@ -862,7 +962,7 @@
- dnl "dirname" is not portable, so we fake it with a shell script.
- AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57
-+dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
- dnl ---------------
- dnl You can always use "make -n" to see the actual options, but it's hard to
- dnl pick out/analyze warning messages when the compile-line is long.
-@@ -877,7 +977,7 @@
- AC_DEFUN([CF_DISABLE_ECHO],[
- AC_MSG_CHECKING(if you want to see long compiling messages)
- CF_ARG_DISABLE(echo,
-- [ --disable-echo display "compiling" commands],
-+ [ --disable-echo do not display "compiling" commands],
- [
- ECHO_LT='--silent'
- ECHO_LD='@echo linking [$]@;'
-@@ -899,7 +999,7 @@
- AC_SUBST(ECHO_CC)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32
-+dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
- dnl ----------------
- dnl Combine no-leak checks with the libraries or tools that are used for the
- dnl checks.
-@@ -917,11 +1017,30 @@
- AC_MSG_RESULT($with_no_leaks)
-
- if test "$with_no_leaks" = yes ; then
-- AC_DEFINE(NO_LEAKS)
-- AC_DEFINE(YY_NO_LEAKS)
-+ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
-+ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
-+dnl ---------------------
-+dnl The rpath-hack makes it simpler to build programs, particularly with the
-+dnl *BSD ports which may have essential libraries in unusual places. But it
-+dnl can interfere with building an executable for the base system. Use this
-+dnl option in that case.
-+AC_DEFUN([CF_DISABLE_RPATH_HACK],
-+[
-+AC_MSG_CHECKING(if rpath-hack should be disabled)
-+CF_ARG_DISABLE(rpath-hack,
-+ [ --disable-rpath-hack don't add rpath options for additional libraries],
-+ [cf_disable_rpath_hack=yes],
-+ [cf_disable_rpath_hack=no])
-+AC_MSG_RESULT($cf_disable_rpath_hack)
-+if test "$cf_disable_rpath_hack" = no ; then
-+ CF_RPATH_HACK
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
- dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
- dnl ------------------
- dnl Configure-option to enable gcc warnings
-@@ -1122,7 +1241,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_FUNC_CURSES_VERSION version: 5 updated: 2010/10/23 15:54:49
-+dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
- dnl ----------------------
- dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
- dnl It's a character string "SVR4", not documented.
-@@ -1141,10 +1260,10 @@
- ,[cf_cv_func_curses_version=no]
- ,[cf_cv_func_curses_version=unknown])
- rm -f core])
--test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
-+test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
-+dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
- dnl -----------------
- dnl Test for availability of useful gcc __attribute__ directives to quiet
- dnl compiler warnings. Though useful, not all are supported -- and contrary
-@@ -1222,27 +1341,27 @@
- test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
- cat conftest.h >>confdefs.h
- case $cf_attribute in #(vi
-+ noreturn) #(vi
-+ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
-+ ;;
- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--EOF
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-+ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
- fi
-+ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
- ;;
- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--EOF
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-+ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
- fi
-+ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
-+ ;;
-+ unused) #(vi
-+ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
- ;;
- esac
- fi
-@@ -1254,7 +1373,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
-+dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
- dnl --------------
- dnl Find version of gcc
- AC_DEFUN([CF_GCC_VERSION],[
-@@ -1262,13 +1381,13 @@
- GCC_VERSION=none
- if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of $CC)
-- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
-+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- AC_MSG_RESULT($GCC_VERSION)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
-+dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39
- dnl ---------------
- dnl Check if the compiler supports useful warning options. There's a few that
- dnl we don't use, simply because they're too noisy:
-@@ -1291,6 +1410,7 @@
- [
- AC_REQUIRE([CF_GCC_VERSION])
- CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
-+CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
-
- cat > conftest.$ac_ext <<EOF
- #line __oline__ "${as_me:-configure}"
-@@ -1366,6 +1486,13 @@
- continue;;
- esac
- ;;
-+ Wpointer-arith) #(vi
-+ case $GCC_VERSION in
-+ [[12]].*)
-+ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
-+ continue;;
-+ esac
-+ ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
-@@ -1377,6 +1504,29 @@
- AC_SUBST(EXTRA_CFLAGS)
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_GETOPT_HEADER version: 5 updated: 2012/10/06 16:39:58
-+dnl ----------------
-+dnl Check for getopt's variables which are commonly defined in stdlib.h,
-+dnl unistd.h or (nonstandard) in getopt.h
-+AC_DEFUN([CF_GETOPT_HEADER],
-+[
-+AC_HAVE_HEADERS(unistd.h getopt.h)
-+AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
-+cf_cv_getopt_header=none
-+for cf_header in stdio.h stdlib.h unistd.h getopt.h
-+do
-+AC_TRY_COMPILE([
-+#include <$cf_header>],
-+[int x = optind; char *y = optarg],
-+[cf_cv_getopt_header=$cf_header
-+ break])
-+done
-+])
-+if test $cf_cv_getopt_header != none ; then
-+ AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h])
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
- dnl -------------
- dnl Check if we must define _GNU_SOURCE to get a reasonable value for
-@@ -1453,6 +1603,13 @@
- $1="[$]$1 $cf_header_path_list"
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
-+dnl ---------------
-+dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
-+AC_DEFUN([CF_HELP_MESSAGE],
-+[AC_DIVERT_HELP([$1])dnl
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
- dnl -----------------
- dnl If we do not have a given script, look for it in the parent directory.
-@@ -1461,7 +1618,7 @@
- test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
-+dnl CF_INTEL_COMPILER version: 5 updated: 2013/02/10 10:41:05
- dnl -----------------
- dnl Check if the given compiler is really the Intel compiler for Linux. It
- dnl tries to imitate gcc, but does not return an error when it finds a mismatch
-@@ -1475,6 +1632,7 @@
- dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
- dnl $3 = CFLAGS (default) or CXXFLAGS
- AC_DEFUN([CF_INTEL_COMPILER],[
-+AC_REQUIRE([AC_CANONICAL_HOST])
- ifelse([$2],,INTEL_COMPILER,[$2])=no
-
- if test "$ifelse([$1],,[$1],GCC)" = yes ; then
-@@ -1498,6 +1656,60 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
-+dnl ---------------
-+dnl For the given system and compiler, find the compiler flags to pass to the
-+dnl loader to use the "rpath" feature.
-+AC_DEFUN([CF_LD_RPATH_OPT],
-+[
-+AC_REQUIRE([CF_CHECK_CACHE])
-+
-+LD_RPATH_OPT=
-+AC_MSG_CHECKING(for an rpath option)
-+case $cf_cv_system_name in #(vi
-+irix*) #(vi
-+ if test "$GCC" = yes; then
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ else
-+ LD_RPATH_OPT="-rpath "
-+ fi
-+ ;;
-+linux*|gnu*|k*bsd*-gnu) #(vi
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ ;;
-+openbsd[[2-9]].*|mirbsd*) #(vi
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ ;;
-+dragonfly*|freebsd*) #(vi
-+ LD_RPATH_OPT="-rpath "
-+ ;;
-+netbsd*) #(vi
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ ;;
-+osf*|mls+*) #(vi
-+ LD_RPATH_OPT="-rpath "
-+ ;;
-+solaris2*) #(vi
-+ LD_RPATH_OPT="-R"
-+ ;;
-+*)
-+ ;;
-+esac
-+AC_MSG_RESULT($LD_RPATH_OPT)
-+
-+case "x$LD_RPATH_OPT" in #(vi
-+x-R*)
-+ AC_MSG_CHECKING(if we need a space after rpath option)
-+ cf_save_LIBS="$LIBS"
-+ CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
-+ AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
-+ LIBS="$cf_save_LIBS"
-+ AC_MSG_RESULT($cf_rpath_space)
-+ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
-+ ;;
-+esac
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
- dnl ---------------
- dnl Construct a search-list of directories for a nonstandard library-file
-@@ -1588,38 +1800,7 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_MIN_GETCCHAR version: 3 updated: 2010/10/23 15:54:49
--dnl ---------------
--dnl CF_MIN_GETCCHAR
--dnl Check whether getcchar's return value counts the trailing null in a wchar_t
--dnl string, or not. X/Open says it does, but Tru64 and Solaris do not do this.
--AC_DEFUN([CF_MIN_GETCCHAR],[
--AC_CACHE_CHECK(if getcchar counts trailing null,cf_cv_min_getcchar,[
--AC_TRY_RUN([
--#include <stdlib.h>
--#include <stdarg.h>
--#include <${cf_cv_ncurses_header:-curses.h}>
--
--int main()
--{
-- wchar_t data[2];
-- cchar_t temp[2];
-- int count;
-- data[0] = L'\0';
-- setcchar(temp, data, 0, 0, (void *)0);
-- count = getcchar(temp, (wchar_t *)0, (attr_t *)0, (short *)0, (void *)0);
-- ${cf_cv_main_return:-return}(count != 0);
--}],
-- [cf_cv_min_getcchar=no],
-- [cf_cv_min_getcchar=yes],
-- [cf_cv_min_getcchar=yes])
--])
--if test "$cf_cv_min_getcchar" = yes ; then
-- AC_DEFINE(MIN_GETCCHAR,1)
--fi
--])dnl
--dnl ---------------------------------------------------------------------------
--dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
-+dnl CF_MIXEDCASE_FILENAMES version: 4 updated: 2012/10/02 20:55:03
- 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.
-@@ -1646,7 +1827,7 @@
- rm -f conftest CONFTEST
- fi
- ])
--test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
-+test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
-@@ -1690,7 +1871,7 @@
- ,[$1=no])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
-+dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51
- dnl -----------------
- dnl Tie together the configure-script macros for ncurses.
- dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
-@@ -1702,7 +1883,10 @@
- cf_ncuconfig_root=ifelse($1,,ncurses,$1)
-
- echo "Looking for ${cf_ncuconfig_root}-config"
--AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
-+
-+CF_ACVERSION_CHECK(2.52,
-+ [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
-+ [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
-
- if test "$NCURSES_CONFIG" != none ; then
-
-@@ -1713,7 +1897,7 @@
- CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
-
- dnl like CF_NCURSES_CPPFLAGS
--AC_DEFINE(NCURSES)
-+AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
-
- dnl like CF_NCURSES_LIBS
- CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
-@@ -1730,7 +1914,7 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
-+dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
- dnl -------------------
- dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
- dnl the CPPFLAGS variable so we can include its header.
-@@ -1776,12 +1960,12 @@
- CF_TERM_HEADER
-
- # some applications need this, but should check for NCURSES_VERSION
--AC_DEFINE(NCURSES)
-+AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
-
- CF_NCURSES_VERSION
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_EXT_FUNCS version: 3 updated: 2010/11/13 19:43:23
-+dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
- dnl --------------------
- dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
- dnl may provide these functions. Define the symbol if it is not defined, and
-@@ -1813,10 +1997,10 @@
- [cf_cv_ncurses_ext_funcs=no])
- ])
- ])
--test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS)
-+test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
-+dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51
- dnl -----------------
- dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
- dnl variations of ncurses' installs.
-@@ -1867,16 +2051,16 @@
-
- case $cf_cv_ncurses_header in # (vi
- *ncurses.h)
-- AC_DEFINE(HAVE_NCURSES_H)
-+ AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
- ;;
- esac
-
- case $cf_cv_ncurses_header in # (vi
- ncurses/curses.h|ncurses/ncurses.h)
-- AC_DEFINE(HAVE_NCURSES_NCURSES_H)
-+ AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
- ;;
- ncursesw/curses.h|ncursesw/ncurses.h)
-- AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
-+ AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
- ;;
- esac
-
-@@ -1950,7 +2134,7 @@
- AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
-+dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
- dnl ------------------
- dnl Check for the version of ncurses, to aid in reporting bugs, etc.
- dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
-@@ -2009,7 +2193,7 @@
- ])
- rm -f $cf_tempfile
- ])
--test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
-+test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
-@@ -2028,7 +2212,7 @@
- AC_SUBST(NCURSES_WRAP_PREFIX)
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_NETBSD_FORM_H version: 1 updated: 2011/01/15 14:59:18
-+dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
- dnl ----------------
- dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
- dnl Some workarounds are needed in client programs to allow them to compile.
-@@ -2045,10 +2229,10 @@
- ],[cf_cv_netbsd_form_h=no])
- ])
-
--test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H)
-+test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H,1,[Define to 1 if we appear to be using NetBSD form.h])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NETBSD_MENU_H version: 1 updated: 2011/01/15 14:59:18
-+dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
- dnl ----------------
- dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
- dnl Some workarounds are needed in client programs to allow them to compile.
-@@ -2064,17 +2248,17 @@
- ],[cf_cv_netbsd_menu_h=no])
- ])
-
--test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H)
-+test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
-+dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
- dnl ------------------
- dnl see CF_WITH_NO_LEAKS
- AC_DEFUN([CF_NO_LEAKS_OPTION],[
- AC_MSG_CHECKING(if you want to use $1 for testing)
- AC_ARG_WITH($1,
- [$2],
-- [AC_DEFINE($3)ifelse([$4],,[
-+ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
- $4
- ])
- : ${with_cflags:=-g}
-@@ -2096,7 +2280,7 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
-+dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
- dnl --------------
- dnl Check the argument to see that it looks like a pathname. Rewrite it if it
- dnl begins with one of the prefix/exec_prefix variables, and then again if the
-@@ -2116,7 +2300,7 @@
- ;;
- .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
- ;;
--.\[$]{*prefix}*) #(vi
-+.\[$]{*prefix}*|.\[$]{*dir}*) #(vi
- eval $1="[$]$1"
- case ".[$]$1" in #(vi
- .NONE/*)
-@@ -2133,13 +2317,15 @@
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PDCURSES_X11 version: 11 updated: 2011/01/15 18:45:38
-+dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
- dnl ---------------
- dnl Configure for PDCurses' X11 library
- AC_DEFUN([CF_PDCURSES_X11],[
- AC_REQUIRE([CF_X_ATHENA])
-
--AC_PATH_PROGS(XCURSES_CONFIG,xcurses-config,none)
-+CF_ACVERSION_CHECK(2.52,
-+ [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
-+ [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
-
- if test "$XCURSES_CONFIG" != none ; then
-
-@@ -2168,15 +2354,15 @@
- fi
-
- if test $cf_cv_lib_XCurses = yes ; then
-- AC_DEFINE(UNIX)
-- AC_DEFINE(XCURSES)
-- AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES))
-+ AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
-+ AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
-+ AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
- else
- AC_MSG_ERROR(Cannot link with XCurses)
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
-+dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
- dnl -------------
- dnl Check for the package-config program, unless disabled by command-line.
- AC_DEFUN([CF_PKG_CONFIG],
-@@ -2193,7 +2379,9 @@
- PKG_CONFIG=none
- ;;
- yes) #(vi
-- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
-+ CF_ACVERSION_CHECK(2.52,
-+ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
-+ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
- ;;
- *)
- PKG_CONFIG=$withval
-@@ -2305,29 +2493,17 @@
-
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
--dnl --------------
--dnl Check if C (preprocessor) -U and -D options are processed in the order
--dnl given rather than by type of option. Some compilers insist on apply all
--dnl of the -U options after all of the -D options. Others allow mixing them,
--dnl and may predefine symbols that conflict with those we define.
--AC_DEFUN([CF_PROG_CC_U_D],
--[
--AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
-- cf_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
-- AC_TRY_COMPILE([],[
--#ifndef U_D_OPTIONS
--make an undefined-error
--#endif
--#ifdef D_U_OPTIONS
--make a defined-error
--#endif
-- ],[
-- cf_cv_cc_u_d_options=yes],[
-- cf_cv_cc_u_d_options=no])
-- CPPFLAGS="$cf_save_CPPFLAGS"
--])
-+dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55
-+dnl ----------
-+dnl standard check for CC, plus followup sanity checks
-+dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
-+AC_DEFUN([CF_PROG_CC],[
-+ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
-+CF_GCC_VERSION
-+CF_ACVERSION_CHECK(2.52,
-+ [AC_PROG_CC_STDC],
-+ [CF_ANSI_CC_REQD])
-+CF_CC_ENV_FLAGS
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
-@@ -2373,7 +2549,122 @@
- -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
-+dnl CF_RPATH_HACK version: 9 updated: 2011/02/13 13:31:33
-+dnl -------------
-+AC_DEFUN([CF_RPATH_HACK],
-+[
-+AC_REQUIRE([CF_LD_RPATH_OPT])
-+AC_MSG_CHECKING(for updated LDFLAGS)
-+if test -n "$LD_RPATH_OPT" ; then
-+ AC_MSG_RESULT(maybe)
-+
-+ AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
-+ cf_rpath_list="/usr/lib /lib"
-+ if test "$cf_ldd_prog" != no
-+ then
-+ cf_rpath_oops=
-+
-+AC_TRY_LINK([#include <stdio.h>],
-+ [printf("Hello");],
-+ [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
-+ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`])
-+
-+ # If we passed the link-test, but get a "not found" on a given library,
-+ # this could be due to inept reconfiguration of gcc to make it only
-+ # partly honor /usr/local/lib (or whatever). Sometimes this behavior
-+ # is intentional, e.g., installing gcc in /usr/bin and suppressing the
-+ # /usr/local libraries.
-+ if test -n "$cf_rpath_oops"
-+ then
-+ for cf_rpath_src in $cf_rpath_oops
-+ do
-+ for cf_rpath_dir in \
-+ /usr/local \
-+ /usr/pkg \
-+ /opt/sfw
-+ do
-+ if test -f $cf_rpath_dir/lib/$cf_rpath_src
-+ then
-+ CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
-+ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
-+ break
-+ fi
-+ done
-+ done
-+ fi
-+ fi
-+
-+ CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
-+
-+ CF_RPATH_HACK_2(LDFLAGS)
-+ CF_RPATH_HACK_2(LIBS)
-+
-+ CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
-+fi
-+AC_SUBST(EXTRA_LDFLAGS)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
-+dnl ---------------
-+dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
-+dnl EXTRA_LDFLAGS for each -L option found.
-+dnl
-+dnl $cf_rpath_list contains a list of directories to ignore.
-+dnl
-+dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
-+dnl but LIBS often has misplaced -L options.
-+AC_DEFUN([CF_RPATH_HACK_2],
-+[
-+CF_VERBOSE(...checking $1 [$]$1)
-+
-+cf_rpath_dst=
-+for cf_rpath_src in [$]$1
-+do
-+ case $cf_rpath_src in #(vi
-+ -L*) #(vi
-+
-+ # check if this refers to a directory which we will ignore
-+ cf_rpath_skip=no
-+ if test -n "$cf_rpath_list"
-+ then
-+ for cf_rpath_item in $cf_rpath_list
-+ do
-+ if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
-+ then
-+ cf_rpath_skip=yes
-+ break
-+ fi
-+ done
-+ fi
-+
-+ if test "$cf_rpath_skip" = no
-+ then
-+ # transform the option
-+ if test "$LD_RPATH_OPT" = "-R " ; then
-+ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
-+ else
-+ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
-+ fi
-+
-+ # if we have not already added this, add it now
-+ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
-+ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
-+ then
-+ CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
-+ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
-+ fi
-+ fi
-+ ;;
-+ esac
-+ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
-+done
-+$1=$cf_rpath_dst
-+
-+CF_VERBOSE(...checked $1 [$]$1)
-+AC_SUBST(EXTRA_LDFLAGS)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
- dnl ---------------
- dnl signal handler, but there are some gcc depedencies in that recommendation.
- dnl Try anyway.
-@@ -2405,7 +2696,7 @@
- done
- ])
- AC_MSG_RESULT($cf_cv_sig_atomic_t)
--test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
-+test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
- ])dnl
- dnl ---------------------------------------------------------------------------
- dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
-@@ -2425,7 +2716,7 @@
- CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
-+dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07
- dnl ------------------
- dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
- dnl older SCO configurations.
-@@ -2445,10 +2736,10 @@
- [cf_cv_sys_time_select=no])
- ])
- AC_MSG_RESULT($cf_cv_sys_time_select)
--test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-+test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
-+dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51
- dnl --------------
- dnl Look for term.h, which is part of X/Open curses. It defines the interface
- dnl to terminfo database. Usually it is in the same include-path as curses.h,
-@@ -2481,20 +2772,73 @@
-
- case $cf_cv_term_header in # (vi
- *term.h)
-- AC_DEFINE(HAVE_TERM_H)
-+ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
- ;;
- esac
-
- case $cf_cv_term_header in # (vi
- ncurses/term.h) #(vi
-- AC_DEFINE(HAVE_NCURSES_TERM_H)
-+ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
- ;;
- ncursesw/term.h)
-- AC_DEFINE(HAVE_NCURSESW_TERM_H)
-+ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
- ;;
- esac
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
-+dnl ---------------
-+dnl Define a top_builddir symbol, for applications that need an absolute path.
-+AC_DEFUN([CF_TOP_BUILDDIR],
-+[
-+top_builddir=`pwd`
-+AC_SUBST(top_builddir)
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl CF_TPUTS_PROTO version: 2 updated: 2011/04/23 19:25:50
-+dnl --------------
-+dnl Check for type of function-pointer passed to tputs. Some old
-+dnl implementations used functions that had different prototypes, making it
-+dnl hard to compile portable programs using tputs.
-+AC_DEFUN([CF_TPUTS_PROTO],[
-+CF_CURSES_FUNCS(tputs)
-+if test x$cf_cv_func_tputs = xyes
-+then
-+ cf_done=no
-+ for cf_arg in int char
-+ do
-+ for cf_ret in int void
-+ do
-+ if test $cf_ret = void
-+ then
-+ cf_return="/* nothing */"
-+ else
-+ cf_return="return value"
-+ fi
-+ AC_TRY_COMPILE([
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <$cf_cv_term_header>
-+
-+static $cf_ret outc($cf_arg value) { $cf_return; }
-+],[
-+ tputs("hello", 0, outc);
-+ ${cf_cv_main_return:-return}(0);
-+],[
-+ CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
-+ cat >>confdefs.h <<EOF
-+#define TPUTS_ARG $cf_arg
-+#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
-+#define TPUTS_RETURN(value) $cf_return
-+EOF
-+ cf_done=yes
-+ break
-+])
-+ done
-+ test $cf_done = yes && break
-+ done
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30
- dnl -----------------
- dnl This is a simple wrapper to use for pkg-config, for libraries which may be
-@@ -2520,6 +2864,45 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
-+dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
-+dnl -------------------
-+dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
-+dnl can define it successfully.
-+AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
-+AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+],[
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_cv_xopen_source=no],
-+ [cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ AC_TRY_COMPILE([
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+],[
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_cv_xopen_source=no],
-+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
-+ CPPFLAGS="$cf_save"
-+ ])
-+])
-+
-+if test "$cf_cv_xopen_source" != no ; then
-+ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
-+ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+ CF_ADD_CFLAGS($cf_temp_xopen_source)
-+fi
-+])
-+dnl ---------------------------------------------------------------------------
- dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
- dnl --------
- dnl Make an uppercase version of a variable
-@@ -2529,7 +2912,7 @@
- $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
-+dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
- dnl -----------
- dnl Check for multibyte support, and if not found, utf8 compatibility library
- AC_DEFUN([CF_UTF8_LIB],
-@@ -2548,7 +2931,7 @@
- # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
- # ncurses/ncursesw:
- if test "$cf_cv_utf8_lib" = "add-on" ; then
-- AC_DEFINE(HAVE_LIBUTF8_H)
-+ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
- CF_ADD_INCDIR($cf_cv_header_path_utf8)
- CF_ADD_LIBDIR($cf_cv_library_path_utf8)
- CF_ADD_LIBS($cf_cv_library_file_utf8)
-@@ -2563,7 +2946,7 @@
- CF_MSG_LOG([$1])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
-+dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
- dnl -------------
- dnl Check if type wide-character type $1 is declared, and if so, which header
- dnl file is needed. The second parameter is used to set a shell variable when
-@@ -2595,7 +2978,7 @@
- [cf_cv_$1=unknown])])])
-
- if test "$cf_cv_$1" = yes ; then
-- AC_DEFINE(NEED_WCHAR_H)
-+ AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
- NEED_WCHAR_H=1
- fi
-
-@@ -2667,6 +3050,60 @@
- fi
- ])dnl
- dnl ---------------------------------------------------------------------------
-+dnl CF_WITH_NCURSES_ETC version: 2 updated: 2012/01/13 10:49:00
-+dnl -------------------
-+dnl Use this macro for programs which use any variant of "curses", e.g.,
-+dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
-+dnl library (such as slang) should use a "--with-screen=XXX" option.
-+dnl
-+dnl This does not use AC_DEFUN, because that would tell autoconf to run each
-+dnl of the macros inside this one - before this macro.
-+define([CF_WITH_NCURSES_ETC],[
-+CF_WITH_CURSES_DIR
-+
-+cf_cv_screen=curses
-+
-+AC_MSG_CHECKING(for specified curses library type)
-+AC_ARG_WITH(ncursesw,
-+ [ --with-ncursesw use wide ncurses-libraries],
-+ [cf_cv_screen=ncursesw],[
-+
-+AC_ARG_WITH(ncurses,
-+ [ --with-ncurses use ncurses-libraries],
-+ [cf_cv_screen=ncurses],[
-+
-+AC_ARG_WITH(pdcurses,
-+ [ --with-pdcurses compile/link with pdcurses X11 library],
-+ [cf_cv_screen=pdcurses],[
-+
-+AC_ARG_WITH(curses-colr,
-+ [ --with-curses-colr compile/link with HPUX 10.x color-curses],
-+ [cf_cv_screen=curses_colr],[
-+
-+AC_ARG_WITH(curses-5lib,
-+ [ --with-curses-5lib compile/link with SunOS 5lib curses],
-+ [cf_cv_screen=curses_5lib])])])])])
-+
-+AC_MSG_RESULT($cf_cv_screen)
-+
-+case $cf_cv_screen in #(vi
-+curses|curses_*) #(vi
-+ CF_CURSES_CONFIG
-+ ;;
-+ncurses) #(vi
-+ CF_NCURSES_CONFIG
-+ ;;
-+ncursesw) #(vi
-+ CF_UTF8_LIB
-+ CF_NCURSES_CONFIG(ncursesw)
-+ ;;
-+pdcurses)
-+ CF_PDCURSES_X11
-+ ;;
-+esac
-+
-+])dnl
-+dnl ---------------------------------------------------------------------------
- dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
- dnl ----------------
- AC_DEFUN([CF_WITH_VALGRIND],[
-@@ -2714,7 +3151,7 @@
- test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
-+dnl CF_XOPEN_SOURCE version: 43 updated: 2013/02/10 10:41:05
- dnl ---------------
- dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
- dnl or adapt to the vendor's definitions to get equivalent functionality,
-@@ -2724,13 +3161,14 @@
- dnl $1 is the nominal value for _XOPEN_SOURCE
- dnl $2 is the nominal value for _POSIX_C_SOURCE
- AC_DEFUN([CF_XOPEN_SOURCE],[
-+AC_REQUIRE([AC_CANONICAL_HOST])
-
- cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
- cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
- cf_xopen_source=
-
- case $host_os in #(vi
--aix[[456]]*) #(vi
-+aix[[4-7]]*) #(vi
- cf_xopen_source="-D_ALL_SOURCE"
- ;;
- cygwin) #(vi
-@@ -2741,6 +3179,7 @@
- ;;
- darwin*) #(vi
- cf_xopen_source="-D_DARWIN_C_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- freebsd*|dragonfly*) #(vi
- # 5.x headers associate
-@@ -2758,15 +3197,23 @@
- ;;
- irix[[56]].*) #(vi
- cf_xopen_source="-D_SGI_SOURCE"
-+ cf_XOPEN_SOURCE=
- ;;
- linux*|gnu*|mint*|k*bsd*-gnu) #(vi
- CF_GNU_SOURCE
- ;;
- mirbsd*) #(vi
-- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
-+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
-+ cf_XOPEN_SOURCE=
-+ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
- netbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ ;;
-+openbsd[[4-9]]*) #(vi
-+ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
-+ cf_xopen_source="-D_BSD_SOURCE"
-+ cf_XOPEN_SOURCE=600
- ;;
- openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-@@ -2780,36 +3227,11 @@
- sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
--solaris2.1[[0-9]]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--solaris2.[[1-9]]) #(vi
-+solaris2.*) #(vi
- cf_xopen_source="-D__EXTENSIONS__"
- ;;
- *)
-- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
-- AC_TRY_COMPILE([#include <sys/types.h>],[
--#ifndef _XOPEN_SOURCE
--make an error
--#endif],
-- [cf_cv_xopen_source=no],
-- [cf_save="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- AC_TRY_COMPILE([#include <sys/types.h>],[
--#ifdef _XOPEN_SOURCE
--make an error
--#endif],
-- [cf_cv_xopen_source=no],
-- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
-- CPPFLAGS="$cf_save"
-- ])
--])
-- if test "$cf_cv_xopen_source" != no ; then
-- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
-- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-- CF_ADD_CFLAGS($cf_temp_xopen_source)
-- fi
-+ CF_TRY_XOPEN_SOURCE
- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
- esac
-@@ -2817,6 +3239,35 @@
- if test -n "$cf_xopen_source" ; then
- CF_ADD_CFLAGS($cf_xopen_source)
- fi
-+
-+dnl In anything but the default case, we may have system-specific setting
-+dnl which is still not guaranteed to provide all of the entrypoints that
-+dnl _XOPEN_SOURCE would yield.
-+if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
-+ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
-+ AC_TRY_COMPILE([#include <stdlib.h>],[
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_XOPEN_SOURCE_set=yes],
-+ [cf_XOPEN_SOURCE_set=no])
-+ AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
-+ if test $cf_XOPEN_SOURCE_set = yes
-+ then
-+ AC_TRY_COMPILE([#include <stdlib.h>],[
-+#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-+make an error
-+#endif],
-+ [cf_XOPEN_SOURCE_set_ok=yes],
-+ [cf_XOPEN_SOURCE_set_ok=no])
-+ if test $cf_XOPEN_SOURCE_set_ok = no
-+ then
-+ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
-+ fi
-+ else
-+ CF_TRY_XOPEN_SOURCE
-+ fi
-+fi
- ])
- dnl ---------------------------------------------------------------------------
- dnl CF_X_ATHENA version: 20 updated: 2010/11/09 05:18:02
-@@ -2957,7 +3408,7 @@
- fi
- ])
- dnl ---------------------------------------------------------------------------
--dnl CF_X_ATHENA_LIBS version: 10 updated: 2011/02/13 13:31:33
-+dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
- dnl ----------------
- dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
- dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
-@@ -2973,19 +3424,24 @@
- /usr/local
- do
- for cf_lib in \
-- "-l$cf_x_athena_root -lXmu" \
-- "-l$cf_x_athena_root -lXpm -lXmu" \
-- "-l${cf_x_athena_root}_s -lXmu_s"
-+ ${cf_x_athena_root} \
-+ ${cf_x_athena_root}7 \
-+ ${cf_x_athena_root}6
-+ do
-+ for cf_libs in \
-+ "-l$cf_lib -lXmu" \
-+ "-l$cf_lib -lXpm -lXmu" \
-+ "-l${cf_lib}_s -lXmu_s"
- do
- if test -z "$cf_x_athena_lib" ; then
- cf_save="$LIBS"
- cf_test=XawSimpleMenuAddGlobalActions
- if test $cf_path != default ; then
-- CF_ADD_LIBS(-L$cf_path/lib $cf_lib)
-- AC_MSG_CHECKING(for $cf_lib in $cf_path)
-+ CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
-+ AC_MSG_CHECKING(for $cf_libs in $cf_path)
- else
-- CF_ADD_LIBS($cf_lib)
-- AC_MSG_CHECKING(for $cf_test in $cf_lib)
-+ CF_ADD_LIBS($cf_libs)
-+ AC_MSG_CHECKING(for $cf_test in $cf_libs)
- fi
- AC_TRY_LINK([
- #include <X11/Intrinsic.h>
-@@ -2996,12 +3452,14 @@
- [cf_result=no])
- AC_MSG_RESULT($cf_result)
- if test "$cf_result" = yes ; then
-- cf_x_athena_lib="$cf_lib"
-+ cf_x_athena_lib="$cf_libs"
- break
- fi
- LIBS="$cf_save"
- fi
-- done
-+ done # cf_libs
-+ test -n "$cf_x_athena_lib" && break
-+ done # cf_lib
- done
-
- if test -z "$cf_x_athena_lib" ; then
-@@ -3021,7 +3479,7 @@
- [CF_ADD_LIB(Xext)])])
- ])dnl
- dnl ---------------------------------------------------------------------------
--dnl CF_X_TOOLKIT version: 20 updated: 2010/11/19 05:43:04
-+dnl CF_X_TOOLKIT version: 21 updated: 2012/10/04 06:57:36
- dnl ------------
- dnl Check for X Toolkit libraries
- dnl
-@@ -3095,7 +3553,7 @@
-
- AC_CHECK_FUNC(XtAppInitialize,,[
- AC_CHECK_LIB(Xt, XtAppInitialize,
-- [AC_DEFINE(HAVE_LIBXT)
-+ [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
- cf_have_X_LIBS=Xt
- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
- [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
-Index: test/background.c
-Prereq: 1.3
---- ncurses-5.9/test/background.c 2006-06-03 16:43:08.000000000 +0000
-+++ ncurses-5.9-20130504/test/background.c 2012-06-09 20:30:33.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2003,2006 Free Software Foundation, Inc. *
-+ * Copyright (c) 2003-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,15 +26,172 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: background.c,v 1.3 2006/06/03 16:43:08 tom Exp $
-+ * $Id: background.c,v 1.13 2012/06/09 20:30:33 tom Exp $
- */
-
--#include <test.priv.h>
-+#define NEED_COLOR_CODE 1
-+#define NEED_COLOR_NAME 1
-+#include <color_name.h>
-+
-+static int default_bg = COLOR_BLACK;
-+static int default_fg = COLOR_WHITE;
-+
-+static void
-+test_background(void)
-+{
-+ short f, b;
-+ int row;
-+ int chr;
-+
-+ if (pair_content(0, &f, &b) == ERR) {
-+ printw("pair 0 contains no data\n");
-+ } else {
-+ printw("pair 0 contains (%d,%d)\n", f, b);
-+ }
-+ getch();
-+
-+ printw("Initializing pair 1 to red/%s\n", color_name(default_bg));
-+ init_pair(1, COLOR_RED, (short) default_bg);
-+ bkgdset((chtype) (' ' | COLOR_PAIR(1)));
-+ printw("RED/BLACK\n");
-+ getch();
-+
-+ printw("Initializing pair 2 to %s/blue\n", color_name(default_fg));
-+ init_pair(2, (short) default_fg, COLOR_BLUE);
-+ bkgdset((chtype) (' ' | COLOR_PAIR(2)));
-+ printw("This line should be %s/blue\n", color_name(default_fg));
-+ getch();
-+
-+ printw("Initializing pair 3 to %s/cyan (ACS_HLINE)\n", color_name(default_fg));
-+ init_pair(3, (short) default_fg, COLOR_CYAN);
-+ printw("...and drawing a box which should be followed by lines\n");
-+ bkgdset(ACS_HLINE | COLOR_PAIR(3));
-+ /*
-+ * Characters from vt100 line-drawing should be mapped to line-drawing,
-+ * since A_ALTCHARSET is set in the background, and the character part
-+ * of the background is replaced by the nonblank characters written.
-+ *
-+ * Characters not in the line-drawing range are usually sent as-is.
-+ *
-+ * With SVr4 curses it is possible to rely on this to mix uppercase text
-+ * with the (lowercase) line-drawing characters. ncurses uses some of
-+ * the uppercase characters for encoding thick- and double-lines.
-+ */
-+ row = 7;
-+ mvprintw(row++, 10, "l");
-+ for (chr = 0; chr < 32; ++chr)
-+ addch(' ');
-+ printw("x\n");
-+ chr = 32;
-+ while (chr < 128) {
-+ if ((chr % 32) == 0)
-+ mvprintw(row++, 10, "x");
-+ addch((chtype) ((chr == 127) ? ' ' : chr));
-+ if ((++chr % 32) == 0)
-+ printw("x\n");
-+ }
-+ mvprintw(row++, 10, "m");
-+ for (chr = 0; chr < 32; ++chr)
-+ addch(' ');
-+ printw("j\n");
-+ getch();
-+
-+ bkgdset((chtype) (' ' | COLOR_PAIR(0)));
-+ printw("Default Colors\n");
-+ getch();
-+
-+ printw("Resetting colors to pair 1\n");
-+ bkgdset((chtype) (' ' | COLOR_PAIR(1)));
-+ printw("This line should be red/%s\n", color_name(default_bg));
-+ getch();
-+
-+ printw("Setting screen to pair 0\n");
-+ bkgd((chtype) (' ' | COLOR_PAIR(0)));
-+ getch();
-+
-+ printw("Setting screen to pair 1\n");
-+ bkgd((chtype) (' ' | COLOR_PAIR(1)));
-+ getch();
-+
-+ printw("Setting screen to pair 2\n");
-+ bkgd((chtype) (' ' | COLOR_PAIR(2)));
-+ getch();
-+
-+ printw("Setting screen to pair 3\n");
-+ bkgd((chtype) (' ' | COLOR_PAIR(3)));
-+ getch();
-+
-+ printw("Setting screen to pair 0\n");
-+ bkgd((chtype) (' ' | COLOR_PAIR(0)));
-+ getch();
-+}
-+
-+static void
-+usage(void)
-+{
-+ static const char *msg[] =
-+ {
-+ "Usage: background [options]"
-+ ,""
-+ ,"Options:"
-+#if HAVE_ASSUME_DEFAULT_COLORS
-+ ," -a invoke assume_default_colors, repeat to use in init_pair"
-+#endif
-+ ," -b XXX specify background color"
-+#if HAVE_USE_DEFAULT_COLORS
-+ ," -d invoke use_default_colors, repeat to use in init_pair"
-+#endif
-+ ," -f XXX specify foreground color"
-+ };
-+ size_t n;
-+
-+ for (n = 0; n < SIZEOF(msg); n++)
-+ fprintf(stderr, "%s\n", msg[n]);
-+
-+ ExitProgram(EXIT_FAILURE);
-+}
-
- int
- main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
- {
-- short f, b;
-+#if HAVE_ASSUME_DEFAULT_COLORS
-+ int a_option = 0;
-+#endif
-+#if HAVE_USE_DEFAULT_COLORS
-+ int d_option = 0;
-+#endif
-+ int n;
-+
-+ setlocale(LC_ALL, "");
-+
-+ while ((n = getopt(argc, argv, "ab:df:")) != -1) {
-+ switch (n) {
-+#if HAVE_ASSUME_DEFAULT_COLORS
-+ case 'a':
-+ ++a_option;
-+ break;
-+#endif
-+ case 'b':
-+ default_bg = color_code(optarg);
-+ break;
-+#if HAVE_USE_DEFAULT_COLORS
-+ case 'd':
-+ ++d_option;
-+ break;
-+#endif
-+ case 'f':
-+ default_fg = color_code(optarg);
-+ break;
-+ default:
-+ usage();
-+ }
-+ }
-+#if HAVE_USE_DEFAULT_COLORS && HAVE_ASSUME_DEFAULT_COLORS
-+ if (a_option && d_option) {
-+ fprintf(stderr, "Use either -a or -d option, but not both\n");
-+ ExitProgram(EXIT_FAILURE);
-+ }
-+#endif
-
- initscr();
- cbreak();
-@@ -43,47 +200,30 @@
- if (has_colors()) {
- start_color();
-
-- pair_content(0, &f, &b);
-- printw("pair 0 contains (%d,%d)\n", f, b);
-- getch();
-+#if HAVE_USE_DEFAULT_COLORS
-+ if (d_option) {
-+ printw("Using default colors...\n");
-+ use_default_colors();
-+ if (d_option > 1) {
-+ default_fg = -1;
-+ default_bg = -1;
-+ }
-+ }
-+#endif
-+#if HAVE_ASSUME_DEFAULT_COLORS
-+ if (a_option) {
-+ printw("Using assumed colors %s/%s...\n",
-+ color_name(default_fg),
-+ color_name(default_bg));
-+ assume_default_colors(default_fg, default_bg);
-+ if (a_option > 1) {
-+ default_fg = -1;
-+ default_bg = -1;
-+ }
-+ }
-+#endif
-
-- printw("Initializing pair 1 to red/black\n");
-- init_pair(1, COLOR_RED, COLOR_BLACK);
-- bkgdset(' ' | COLOR_PAIR(1));
-- printw("RED/BLACK\n");
-- getch();
--
-- printw("Initializing pair 2 to white/blue\n");
-- init_pair(2, COLOR_WHITE, COLOR_BLUE);
-- bkgdset(' ' | COLOR_PAIR(2));
-- printw("WHITE/BLUE\n");
-- getch();
--
-- printw("Resetting colors to pair 0\n");
-- bkgdset(' ' | COLOR_PAIR(0));
-- printw("Default Colors\n");
-- getch();
--
-- printw("Resetting colors to pair 1\n");
-- bkgdset(' ' | COLOR_PAIR(1));
-- printw("RED/BLACK\n");
-- getch();
--
-- printw("Setting screen to pair 0\n");
-- bkgd(' ' | COLOR_PAIR(0));
-- getch();
--
-- printw("Setting screen to pair 1\n");
-- bkgd(' ' | COLOR_PAIR(1));
-- getch();
--
-- printw("Setting screen to pair 2\n");
-- bkgd(' ' | COLOR_PAIR(2));
-- getch();
--
-- printw("Setting screen to pair 0\n");
-- bkgd(' ' | COLOR_PAIR(0));
-- getch();
-+ test_background();
-
- } else {
- printw("This demo requires a color terminal");
-Index: test/blue.c
-Prereq: 1.33
---- ncurses-5.9/test/blue.c 2009-10-24 21:03:35.000000000 +0000
-+++ ncurses-5.9-20130504/test/blue.c 2013-04-27 19:46:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,7 +40,7 @@
- * results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
- * just as good.
- *
-- * $Id: blue.c,v 1.33 2009/10/24 21:03:35 tom Exp $
-+ * $Id: blue.c,v 1.35 2013/04/27 19:46:53 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -70,7 +70,7 @@
- #define BLACK_ON_WHITE 2
- #define BLUE_ON_WHITE 3
-
--static RETSIGTYPE die(int onsig) GCC_NORETURN;
-+static void die(int onsig) GCC_NORETURN;
-
- static int deck_size = PACK_SIZE; /* initial deck */
- static int deck[PACK_SIZE];
-@@ -132,7 +132,7 @@
-
- static chtype *suits = letters; /* this may change to glyphs below */
-
--static RETSIGTYPE
-+static void
- die(int onsig)
- {
- (void) signal(onsig, SIG_IGN);
-@@ -202,8 +202,8 @@
- if (value == NOCARD)
- (void) addstr(" ");
- else {
-- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
-- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
-+ addch(ranks[value % SUIT_LENGTH][0] | (chtype) COLOR_PAIR(BLUE_ON_WHITE));
-+ addch(ranks[value % SUIT_LENGTH][1] | (chtype) COLOR_PAIR(BLUE_ON_WHITE));
- addch(suits[value / SUIT_LENGTH]);
- }
- (void) addch(' ');
-Index: test/bs.c
-Prereq: 1.52
---- ncurses-5.9/test/bs.c 2010-11-13 20:07:52.000000000 +0000
-+++ ncurses-5.9-20130504/test/bs.c 2013-04-27 19:46:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -34,7 +34,7 @@
- * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
- * v2.1 with ncurses mouse support, September 1995
- *
-- * $Id: bs.c,v 1.52 2010/11/13 20:07:52 tom Exp $
-+ * $Id: bs.c,v 1.61 2013/04/27 19:46:53 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -110,7 +110,7 @@
- static char destroy[] = "Destroyer";
- static char ptboat[] = "PT Boat";
-
--static char name[40];
-+static char *your_name;
- static char dftname[] = "stranger";
-
- /* direction constants */
-@@ -174,9 +174,9 @@
-
- #define PR (void)addstr
-
--static RETSIGTYPE uninitgame(int sig) GCC_NORETURN;
-+static void uninitgame(int sig) GCC_NORETURN;
-
--static RETSIGTYPE
-+static void
- uninitgame(int sig GCC_UNUSED)
- /* end the game, either normally or due to signal */
- {
-@@ -220,11 +220,12 @@
-
- CATCHALL(uninitgame);
-
-- if ((tmpname = getlogin()) != 0) {
-- (void) strcpy(name, tmpname);
-- name[0] = (char) toupper(UChar(name[0]));
-- } else
-- (void) strcpy(name, dftname);
-+ if ((tmpname = getlogin()) != 0 &&
-+ (your_name = strdup(tmpname)) != 0) {
-+ your_name[0] = (char) toupper(UChar(your_name[0]));
-+ } else {
-+ your_name = dftname;
-+ }
-
- (void) initscr();
- keypad(stdscr, TRUE);
-@@ -368,7 +369,7 @@
- MvAddCh(PYBASE + i, PXBASE - 3, (chtype) (i + 'A'));
- #ifdef A_COLOR
- if (has_colors())
-- attron(COLOR_PAIR(COLOR_BLUE));
-+ attron((attr_t) COLOR_PAIR(COLOR_BLUE));
- #endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
-@@ -386,7 +387,7 @@
- MvAddCh(CYBASE + i, CXBASE - 3, (chtype) (i + 'A'));
- #ifdef A_COLOR
- if (has_colors())
-- attron(COLOR_PAIR(COLOR_BLUE));
-+ attron((attr_t) COLOR_PAIR(COLOR_BLUE));
- #endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
-@@ -426,10 +427,11 @@
- placeship(COMPUTER, ss, FALSE);
- }
-
-- ss = (ship_t *) NULL;
- do {
- char c, docked[SHIPTYPES + 2], *cp = docked;
-
-+ ss = (ship_t *) NULL;
-+
- /* figure which ships still wait to be placed */
- *cp++ = 'R';
- for (i = 0; i < SHIPTYPES; i++)
-@@ -459,13 +461,14 @@
- do {
- c = (char) getch();
- } while
-- (!(strchr("hjklrR", c) || c == FF));
-+ (!(strchr("hjkl8462rR", c) || c == FF));
-
- if (c == FF) {
- (void) clearok(stdscr, TRUE);
- (void) refresh();
-+ } else if (ss == 0) {
-+ beep(); /* simple to verify, unlikely to happen */
- } else if (c == 'r') {
-- assert(ss != 0);
- prompt(1, "Random-placing your %s", ss->name);
- randomplace(PLAYER, ss);
- placeship(PLAYER, ss, TRUE);
-@@ -481,7 +484,6 @@
- }
- error((char *) NULL);
- } else if (strchr("hjkl8462", c)) {
-- assert(ss != 0);
- ss->x = curx;
- ss->y = cury;
-
-@@ -769,7 +771,7 @@
- cgoto(y1, x1);
- #ifdef A_COLOR
- if (has_colors())
-- attron(COLOR_PAIR(COLOR_GREEN));
-+ attron((attr_t) COLOR_PAIR(COLOR_GREEN));
- #endif /* A_COLOR */
- (void) addch(MARK_MISS);
- #ifdef A_COLOR
-@@ -795,7 +797,7 @@
- pgoto(y1, x1);
- #ifdef A_COLOR
- if (has_colors())
-- attron(COLOR_PAIR(COLOR_RED));
-+ attron((attr_t) COLOR_PAIR(COLOR_RED));
- #endif /* A_COLOR */
- (void) addch(SHOWHIT);
- #ifdef A_COLOR
-@@ -834,9 +836,9 @@
- #ifdef A_COLOR
- if (has_colors()) {
- if (hit)
-- attron(COLOR_PAIR(COLOR_RED));
-+ attron((attr_t) COLOR_PAIR(COLOR_RED));
- else
-- attron(COLOR_PAIR(COLOR_GREEN));
-+ attron((attr_t) COLOR_PAIR(COLOR_GREEN));
- }
- #endif /* A_COLOR */
- (void) addch((chtype) hits[PLAYER][curx][cury]);
-@@ -863,7 +865,9 @@
- m = " You'll pick up survivors from my %s, I hope...!";
- break;
- }
-- (void) printw(m, ss->name);
-+ if (m != 0) {
-+ (void) printw(m, ss->name);
-+ }
- (void) beep();
- }
- return (hit);
-@@ -952,8 +956,8 @@
- bool hit, sunk;
- ship_t *ss = NULL;
-
-- hit = board[PLAYER][x][y] ? MARK_HIT : MARK_MISS;
-- hits[COMPUTER][x][y] = (char) hit;
-+ hit = (bool) board[PLAYER][x][y];
-+ hits[COMPUTER][x][y] = (hit ? MARK_HIT : MARK_MISS);
- MvPrintw(PROMPTLINE, 0,
- "I shoot at %c%d. I %s!", y + 'A', x, hit ? "hit" :
- "miss");
-@@ -965,9 +969,9 @@
- #ifdef A_COLOR
- if (has_colors()) {
- if (hit)
-- attron(COLOR_PAIR(COLOR_RED));
-+ attron((attr_t) COLOR_PAIR(COLOR_RED));
- else
-- attron(COLOR_PAIR(COLOR_GREEN));
-+ attron((attr_t) COLOR_PAIR(COLOR_GREEN));
- }
- #endif /* A_COLOR */
- (void) addch((chtype) (hit ? SHOWHIT : SHOWSPLASH));
-@@ -1130,16 +1134,16 @@
- ++cpuwon;
- else
- ++plywon;
-- j = 18 + (int) strlen(name);
-+ j = 18 + (int) strlen(your_name);
- if (plywon >= 10)
- ++j;
- if (cpuwon >= 10)
- ++j;
- MvPrintw(1, (COLWIDTH - j) / 2,
-- "%s: %d Computer: %d", name, plywon, cpuwon);
-+ "%s: %d Computer: %d", your_name, plywon, cpuwon);
-
- prompt(2, (awinna())? "Want to be humiliated again, %s [yn]? "
-- : "Going to give me a chance for revenge, %s [yn]? ", name);
-+ : "Going to give me a chance for revenge, %s [yn]? ", your_name);
- return (sgetc("YN") == 'Y');
- }
-
-Index: test/cardfile.c
-Prereq: 1.38
---- ncurses-5.9/test/cardfile.c 2010-11-14 00:58:45.000000000 +0000
-+++ ncurses-5.9-20130504/test/cardfile.c 2012-11-03 19:26:50.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1999-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey
- *
-- * $Id: cardfile.c,v 1.38 2010/11/14 00:58:45 tom Exp $
-+ * $Id: cardfile.c,v 1.41 2012/11/03 19:26:50 tom Exp $
- *
- * File format: text beginning in column 1 is a title; other text is content.
- */
-@@ -68,17 +68,13 @@
- static bool try_color = FALSE;
- static char default_name[] = "cardfile.dat";
-
--#if !HAVE_STRDUP
--#define strdup my_strdup
--static char *
--strdup(const char *s)
--{
-- char *p = typeMalloc(char, strlen(s) + 1);
-- if (p)
-- strcpy(p, s);
-- return (p);
-+static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ endwin();
-+ ExitProgram(EXIT_FAILURE);
- }
--#endif /* not HAVE_STRDUP */
-
- static const char *
- skip(const char *buffer)
-@@ -146,6 +142,8 @@
- }
- if (card->content)
- strcpy(card->content + offset, content);
-+ else
-+ failed("add_content");
- }
- }
-
-@@ -414,7 +412,7 @@
- if ((win = newwin(panel_high, panel_wide, y, x)) == 0)
- break;
-
-- wbkgd(win, COLOR_PAIR(pair_2));
-+ wbkgd(win, (chtype) COLOR_PAIR(pair_2));
- keypad(win, TRUE);
- p->panel = new_panel(win);
- box(win, 0, 0);
-@@ -588,7 +586,7 @@
- start_color();
- init_pair(pair_1, COLOR_WHITE, COLOR_BLUE);
- init_pair(pair_2, COLOR_WHITE, COLOR_CYAN);
-- bkgd(COLOR_PAIR(pair_1));
-+ bkgd((chtype) COLOR_PAIR(pair_1));
- } else {
- try_color = FALSE;
- }
-Index: test/chgat.c
-Prereq: 1.11
---- ncurses-5.9/test/chgat.c 2010-05-01 19:12:26.000000000 +0000
-+++ ncurses-5.9-20130504/test/chgat.c 2012-11-18 01:55:35.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: chgat.c,v 1.11 2010/05/01 19:12:26 tom Exp $
-+ * $Id: chgat.c,v 1.12 2012/11/18 01:55:35 tom Exp $
- *
- * test-driver for chgat/wchgat/mvchgat/mvwchgat
- */
-@@ -176,6 +176,8 @@
- delwin(win1);
- touchwin(win);
- } else {
-+ if (win1 != 0)
-+ delwin(win1);
- beep();
- }
- }
-Index: test/clip_printw.c
-Prereq: 1.7
---- ncurses-5.9/test/clip_printw.c 2010-11-13 20:48:48.000000000 +0000
-+++ ncurses-5.9-20130504/test/clip_printw.c 2012-11-18 00:39:48.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: clip_printw.c,v 1.7 2010/11/13 20:48:48 tom Exp $
-+ * $Id: clip_printw.c,v 1.9 2012/11/18 00:39:48 tom Exp $
- *
- * demonstrate how to use printw without wrapping.
- */
-@@ -207,6 +207,8 @@
- delwin(win1);
- touchwin(win);
- } else {
-+ if (win1)
-+ delwin(win1);
- beep();
- }
- }
-@@ -329,7 +331,7 @@
- do {
- switch (st.ch) {
- case '.': /* change from current position */
-- (void) wattrset(win, st.attr | (chtype) COLOR_PAIR(st.pair));
-+ (void) wattrset(win, (int) (st.attr | (chtype) COLOR_PAIR(st.pair)));
- if (st.count > 0) {
- need = (unsigned) st.count + 1;
- sprintf(fmt, "%%c%%%ds%%c", st.count);
-@@ -337,12 +339,13 @@
- need = (unsigned) getmaxx(win) - 1;
- strcpy(fmt, "%c%s%c");
- }
-- if ((buffer = typeMalloc(char, need)) != 0) {
-+ if ((buffer = typeMalloc(char, need + 1)) != 0) {
- for (j = 0; j < need; ++j) {
- buffer[j] = (char) ('A' + (j % 26));
- }
- buffer[need - 1] = '\0';
- st.status = clip_wprintw(win, fmt, '[', buffer, ']');
-+ free(buffer);
- }
- break;
- case 'w':
-Index: test/color_name.h
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/test/color_name.h 2012-11-18 01:59:32.000000000 +0000
-@@ -0,0 +1,103 @@
-+/****************************************************************************
-+ * Copyright (c) 2011,2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+/*
-+ * $Id: color_name.h,v 1.4 2012/11/18 01:59:32 tom Exp $
-+ */
-+
-+#ifndef __COLORNAME_H
-+#define __COLORNAME_H 1
-+
-+#ifndef __TEST_PRIV_H
-+#include <test.priv.h>
-+#endif
-+
-+static NCURSES_CONST char *the_color_names[] =
-+{
-+ "black",
-+ "red",
-+ "green",
-+ "yellow",
-+ "blue",
-+ "magenta",
-+ "cyan",
-+ "white",
-+ "BLACK",
-+ "RED",
-+ "GREEN",
-+ "YELLOW",
-+ "BLUE",
-+ "MAGENTA",
-+ "CYAN",
-+ "WHITE"
-+};
-+
-+#ifdef NEED_COLOR_CODE
-+static int
-+color_code(const char *color)
-+{
-+ int result = 0;
-+ char *endp = 0;
-+ size_t n;
-+
-+ if ((result = (int) strtol(color, &endp, 0)) >= 0
-+ && (endp == 0 || *endp == 0)) {
-+ ;
-+ } else if (!strcmp(color, "default")) {
-+ result = -1;
-+ } else {
-+ for (n = 0; n < SIZEOF(the_color_names); ++n) {
-+ if (!strcmp(the_color_names[n], color)) {
-+ result = (int) n;
-+ break;
-+ }
-+ }
-+ }
-+ return result;
-+}
-+#endif /* NEED_COLOR_NAME */
-+
-+#ifdef NEED_COLOR_NAME
-+static const char *
-+color_name(int color)
-+{
-+ static char temp[20];
-+ const char *result = 0;
-+
-+ if (color >= (int) SIZEOF(the_color_names)) {
-+ sprintf(temp, "%d", color);
-+ result = temp;
-+ } else if (color < 0) {
-+ result = "default";
-+ } else {
-+ result = the_color_names[color];
-+ }
-+ return result;
-+}
-+#endif /* NEED_COLOR_NAME */
-+
-+#endif /* __COLORNAME_H */
-Index: test/color_set.c
-Prereq: 1.6
---- ncurses-5.9/test/color_set.c 2008-02-10 00:18:01.000000000 +0000
-+++ ncurses-5.9-20130504/test/color_set.c 2012-12-15 22:04:14.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 2003-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: color_set.c,v 1.6 2008/02/10 00:18:01 tom Exp $
-+ * $Id: color_set.c,v 1.7 2012/12/15 22:04:14 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -48,7 +48,7 @@
- if (has_colors()) {
- start_color();
-
-- pair_content(0, &f, &b);
-+ (void) pair_content(0, &f, &b);
- printw("pair 0 contains (%d,%d)\n", f, b);
- getch();
-
-Index: test/configure
---- ncurses-5.9/test/configure 2011-03-24 08:29:40.000000000 +0000
-+++ ncurses-5.9-20130504/test/configure 2013-04-27 19:51:02.000000000 +0000
-@@ -1,6 +1,6 @@
- #! /bin/sh
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by Autoconf 2.52.20101002.
-+# Generated by Autoconf 2.52.20121002.
- #
- # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
- # Free Software Foundation, Inc.
-@@ -105,42 +105,6 @@
- : ${ac_max_here_lines=38}
-
- ac_unique_file="ncurses.c"
--# Factoring default headers for most tests.
--ac_includes_default="\
--#include <stdio.h>
--#if HAVE_SYS_TYPES_H
--# include <sys/types.h>
--#endif
--#if HAVE_SYS_STAT_H
--# include <sys/stat.h>
--#endif
--#if STDC_HEADERS
--# include <stdlib.h>
--# include <stddef.h>
--#else
--# if HAVE_STDLIB_H
--# include <stdlib.h>
--# endif
--#endif
--#if HAVE_STRING_H
--# if !STDC_HEADERS && HAVE_MEMORY_H
--# include <memory.h>
--# endif
--# include <string.h>
--#endif
--#if HAVE_STRINGS_H
--# include <strings.h>
--#endif
--#if HAVE_INTTYPES_H
--# include <inttypes.h>
--#else
--# if HAVE_STDINT_H
--# include <stdint.h>
--# endif
--#endif
--#if HAVE_UNISTD_H
--# include <unistd.h>
--#endif"
-
- # Initialize some variables set by options.
- ac_init_help=
-@@ -170,15 +134,16 @@
- bindir='${exec_prefix}/bin'
- sbindir='${exec_prefix}/sbin'
- libexecdir='${exec_prefix}/libexec'
--datadir='${prefix}/share'
-+datarootdir='${prefix}/share'
-+datadir='${datarootdir}'
- sysconfdir='${prefix}/etc'
- sharedstatedir='${prefix}/com'
- localstatedir='${prefix}/var'
- libdir='${exec_prefix}/lib'
- includedir='${prefix}/include'
- oldincludedir='/usr/include'
--infodir='${prefix}/info'
--mandir='${prefix}/man'
-+infodir='${datarootdir}/info'
-+mandir='${datarootdir}/man'
-
- # Identity of this package.
- PACKAGE_NAME=
-@@ -229,6 +194,13 @@
- | --da=*)
- datadir=$ac_optarg ;;
-
-+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-+ | --dataroo | --dataro | --datar)
-+ ac_prev=datarootdir ;;
-+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-+ datarootdir=$ac_optarg ;;
-+
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
-@@ -504,7 +476,7 @@
- done
-
- # Be sure to have absolute paths.
--for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-+for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
- do
- eval ac_val=$`echo $ac_var`
-@@ -641,15 +613,16 @@
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
-- --datadir=DIR read-only architecture-independent data [PREFIX/share]
-+ --datarootdir=DIR read-only architecture-independent data [PREFIX/share]
-+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
-- --infodir=DIR info documentation [PREFIX/info]
-- --mandir=DIR man documentation [PREFIX/man]
-+ --infodir=DIR info documentation [DATAROOTDIR/info]
-+ --mandir=DIR man documentation [DATAROOTDIR/man]
- EOF
-
- cat <<\EOF
-@@ -673,31 +646,37 @@
-
- cat <<\EOF
-
--Optional Features:
-- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
-- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--
- Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
-
-- --disable-echo display "compiling" commands
-- --enable-warnings test: turn on gcc compiler warnings
-- --with-dmalloc test: use Gray Watson's dmalloc library
-- --with-dbmalloc test: use Conor Cahill's dbmalloc library
-- --with-valgrind test: use valgrind
-- --disable-leaks test: free permanent memory, analyze leaks
-+Optional Features:
-+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
-+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
-+
-+General Options:
-+ --with-pkg-config{=path} enable/disable use of pkg-config
-+ --disable-echo do not display "compiling" commands
-+Curses Version-dependent Options:
-+ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables
-+ --disable-widec disable checks for wide-character functions
- --with-curses-dir=DIR directory in which (n)curses is installed
-- --with-5lib use SunOS sysv-libraries
-- --with-ncursesw use wide ncurses-libraries (installed)
-- --with-ncurses use ncurses-libraries (installed)
-+ --with-ncursesw use wide ncurses-libraries
-+ --with-ncurses use ncurses-libraries
- --with-pdcurses compile/link with pdcurses X11 library
-+ --with-curses-colr compile/link with HPUX 10.x color-curses
-+ --with-curses-5lib compile/link with SunOS 5lib curses
- --with-Xaw3d link with Xaw 3d library
- --with-neXtaw link with neXT Athena library
- --with-XawPlus link with Athena-Plus library
-- --with-pkg-config{=path} enable/disable use of pkg-config
- --with-x use the X Window System
-- --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables
-+Testing/development Options:
-+ --enable-warnings test: turn on gcc compiler warnings
-+ --with-dmalloc test: use Gray Watson's dmalloc library
-+ --with-dbmalloc test: use Conor Cahill's dbmalloc library
-+ --with-valgrind test: use valgrind
-+ --disable-leaks test: free permanent memory, analyze leaks
-+ --disable-rpath-hack don't add rpath options for additional libraries
-
- Some influential environment variables:
- CC C compiler command
-@@ -767,7 +746,7 @@
- running configure, to aid debugging if configure makes a mistake.
-
- It was created by $as_me, which was
--generated by GNU Autoconf 2.52.20101002. Invocation command line was
-+generated by GNU Autoconf 2.52.20121002. Invocation command line was
-
- $ $0 $@
-
-@@ -891,7 +870,7 @@
- fi
- for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
-- { echo "$as_me:894: loading site script $ac_site_file" >&5
-+ { echo "$as_me:873: loading site script $ac_site_file" >&5
- echo "$as_me: loading site script $ac_site_file" >&6;}
- cat "$ac_site_file" >&5
- . "$ac_site_file"
-@@ -902,7 +881,7 @@
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
-- { echo "$as_me:905: loading cache $cache_file" >&5
-+ { echo "$as_me:884: loading cache $cache_file" >&5
- echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
-@@ -910,7 +889,7 @@
- esac
- fi
- else
-- { echo "$as_me:913: creating cache $cache_file" >&5
-+ { echo "$as_me:892: creating cache $cache_file" >&5
- echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
- fi
-@@ -926,21 +905,21 @@
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
-- { echo "$as_me:929: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-+ { echo "$as_me:908: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
-- { echo "$as_me:933: error: \`$ac_var' was not set in the previous run" >&5
-+ { echo "$as_me:912: error: \`$ac_var' was not set in the previous run" >&5
- echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
-- { echo "$as_me:939: error: \`$ac_var' has changed since the previous run:" >&5
-+ { echo "$as_me:918: error: \`$ac_var' has changed since the previous run:" >&5
- echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-- { echo "$as_me:941: former value: $ac_old_val" >&5
-+ { echo "$as_me:920: former value: $ac_old_val" >&5
- echo "$as_me: former value: $ac_old_val" >&2;}
-- { echo "$as_me:943: current value: $ac_new_val" >&5
-+ { echo "$as_me:922: current value: $ac_new_val" >&5
- echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
-@@ -959,9 +938,9 @@
- fi
- done
- if $ac_cache_corrupted; then
-- { echo "$as_me:962: error: changes in the environment can compromise the build" >&5
-+ { echo "$as_me:941: error: changes in the environment can compromise the build" >&5
- echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-- { { echo "$as_me:964: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-+ { { echo "$as_me:943: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
- echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -982,10 +961,10 @@
- echo "#! $SHELL" >conftest.sh
- echo "exit 0" >>conftest.sh
- chmod +x conftest.sh
--if { (echo "$as_me:985: PATH=\".;.\"; conftest.sh") >&5
-+if { (echo "$as_me:964: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
-- echo "$as_me:988: \$? = $ac_status" >&5
-+ echo "$as_me:967: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- ac_path_separator=';'
- else
-@@ -1017,7 +996,7 @@
- fi
- done
- if test -z "$ac_aux_dir"; then
-- { { echo "$as_me:1020: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-+ { { echo "$as_me:999: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
- echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1027,11 +1006,11 @@
-
- # Make sure we can run config.sub.
- $ac_config_sub sun4 >/dev/null 2>&1 ||
-- { { echo "$as_me:1030: error: cannot run $ac_config_sub" >&5
-+ { { echo "$as_me:1009: error: cannot run $ac_config_sub" >&5
- echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
--echo "$as_me:1034: checking build system type" >&5
-+echo "$as_me:1013: checking build system type" >&5
- echo $ECHO_N "checking build system type... $ECHO_C" >&6
- if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1040,16 +1019,16 @@
- test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
- test -z "$ac_cv_build_alias" &&
-- { { echo "$as_me:1043: error: cannot guess build type; you must specify one" >&5
-+ { { echo "$as_me:1022: error: cannot guess build type; you must specify one" >&5
- echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
- ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-- { { echo "$as_me:1047: error: $ac_config_sub $ac_cv_build_alias failed." >&5
-+ { { echo "$as_me:1026: error: $ac_config_sub $ac_cv_build_alias failed." >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1052: result: $ac_cv_build" >&5
-+echo "$as_me:1031: result: $ac_cv_build" >&5
- echo "${ECHO_T}$ac_cv_build" >&6
- build=$ac_cv_build
- build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1057,7 +1036,7 @@
- build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
- if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
-- echo "$as_me:1060: checking host system type" >&5
-+ echo "$as_me:1039: checking host system type" >&5
- echo $ECHO_N "checking host system type... $ECHO_C" >&6
- if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1066,12 +1045,12 @@
- test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
- ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-- { { echo "$as_me:1069: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-+ { { echo "$as_me:1048: error: $ac_config_sub $ac_cv_host_alias failed" >&5
- echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:1074: result: $ac_cv_host" >&5
-+echo "$as_me:1053: result: $ac_cv_host" >&5
- echo "${ECHO_T}$ac_cv_host" >&6
- host=$ac_cv_host
- host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-@@ -1085,7 +1064,8 @@
- system_name="`(hostname) 2>/dev/null`"
- fi
- fi
--test -n "$system_name" && cat >>confdefs.h <<EOF
-+test -n "$system_name" &&
-+cat >>confdefs.h <<EOF
- #define SYSTEM_NAME "$system_name"
- EOF
-
-@@ -1096,13 +1076,13 @@
- fi
-
- test -z "$system_name" && system_name="$cf_cv_system_name"
--test -n "$cf_cv_system_name" && echo "$as_me:1099: result: Configuring for $cf_cv_system_name" >&5
-+test -n "$cf_cv_system_name" && echo "$as_me:1079: result: Configuring for $cf_cv_system_name" >&5
- echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
-
- if test ".$system_name" != ".$cf_cv_system_name" ; then
-- echo "$as_me:1103: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
-+ echo "$as_me:1083: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
- echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
-- { { echo "$as_me:1105: error: \"Please remove config.cache and try again.\"" >&5
-+ { { echo "$as_me:1085: error: \"Please remove config.cache and try again.\"" >&5
- echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -1120,7 +1100,7 @@
- program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
- rm conftest.sed
-
--echo "$as_me:1123: checking whether ${MAKE-make} sets \${MAKE}" >&5
-+echo "$as_me:1103: checking whether ${MAKE-make} sets \${MAKE}" >&5
- echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
- set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
- if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-@@ -1140,11 +1120,11 @@
- rm -f conftest.make
- fi
- if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-- echo "$as_me:1143: result: yes" >&5
-+ echo "$as_me:1123: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- SET_MAKE=
- else
-- echo "$as_me:1147: result: no" >&5
-+ echo "$as_me:1127: result: no" >&5
- echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
- fi
-@@ -1158,7 +1138,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:1161: checking for $ac_word" >&5
-+echo "$as_me:1141: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1173,7 +1153,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
--echo "$as_me:1176: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1156: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1181,10 +1161,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:1184: result: $CC" >&5
-+ echo "$as_me:1164: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
-- echo "$as_me:1187: result: no" >&5
-+ echo "$as_me:1167: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1193,7 +1173,7 @@
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
- set dummy gcc; ac_word=$2
--echo "$as_me:1196: checking for $ac_word" >&5
-+echo "$as_me:1176: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1208,7 +1188,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="gcc"
--echo "$as_me:1211: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1191: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1216,10 +1196,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:1219: result: $ac_ct_CC" >&5
-+ echo "$as_me:1199: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
-- echo "$as_me:1222: result: no" >&5
-+ echo "$as_me:1202: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1232,7 +1212,7 @@
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:1235: checking for $ac_word" >&5
-+echo "$as_me:1215: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1247,7 +1227,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="${ac_tool_prefix}cc"
--echo "$as_me:1250: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1230: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1255,10 +1235,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:1258: result: $CC" >&5
-+ echo "$as_me:1238: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
-- echo "$as_me:1261: result: no" >&5
-+ echo "$as_me:1241: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1267,7 +1247,7 @@
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo "$as_me:1270: checking for $ac_word" >&5
-+echo "$as_me:1250: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1282,7 +1262,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="cc"
--echo "$as_me:1285: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1265: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1290,10 +1270,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:1293: result: $ac_ct_CC" >&5
-+ echo "$as_me:1273: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
-- echo "$as_me:1296: result: no" >&5
-+ echo "$as_me:1276: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1306,7 +1286,7 @@
- if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo "$as_me:1309: checking for $ac_word" >&5
-+echo "$as_me:1289: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1326,7 +1306,7 @@
- continue
- fi
- ac_cv_prog_CC="cc"
--echo "$as_me:1329: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1309: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1348,10 +1328,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:1351: result: $CC" >&5
-+ echo "$as_me:1331: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
-- echo "$as_me:1354: result: no" >&5
-+ echo "$as_me:1334: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1362,7 +1342,7 @@
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
- set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:1365: checking for $ac_word" >&5
-+echo "$as_me:1345: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1377,7 +1357,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
--echo "$as_me:1380: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1360: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1385,10 +1365,10 @@
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:1388: result: $CC" >&5
-+ echo "$as_me:1368: result: $CC" >&5
- echo "${ECHO_T}$CC" >&6
- else
-- echo "$as_me:1391: result: no" >&5
-+ echo "$as_me:1371: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1401,7 +1381,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:1404: checking for $ac_word" >&5
-+echo "$as_me:1384: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1416,7 +1396,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ac_ct_CC="$ac_prog"
--echo "$as_me:1419: found $ac_dir/$ac_word" >&5
-+echo "$as_me:1399: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -1424,10 +1404,10 @@
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:1427: result: $ac_ct_CC" >&5
-+ echo "$as_me:1407: result: $ac_ct_CC" >&5
- echo "${ECHO_T}$ac_ct_CC" >&6
- else
-- echo "$as_me:1430: result: no" >&5
-+ echo "$as_me:1410: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -1439,32 +1419,32 @@
-
- fi
-
--test -z "$CC" && { { echo "$as_me:1442: error: no acceptable cc found in \$PATH" >&5
-+test -z "$CC" && { { echo "$as_me:1422: error: no acceptable cc found in \$PATH" >&5
- echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-
- # Provide some information about the compiler.
--echo "$as_me:1447:" \
-+echo "$as_me:1427:" \
- "checking for C compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:1450: \"$ac_compiler --version </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1430: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1453: \$? = $ac_status" >&5
-+ echo "$as_me:1433: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:1455: \"$ac_compiler -v </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1435: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1458: \$? = $ac_status" >&5
-+ echo "$as_me:1438: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:1460: \"$ac_compiler -V </dev/null >&5\"") >&5
-+{ (eval echo "$as_me:1440: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
-- echo "$as_me:1463: \$? = $ac_status" >&5
-+ echo "$as_me:1443: \$? = $ac_status" >&5
- (exit $ac_status); }
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 1467 "configure"
-+#line 1447 "configure"
- #include "confdefs.h"
-
- int
-@@ -1480,13 +1460,13 @@
- # Try to create an executable without -o first, disregard a.out.
- # It will help us diagnose broken compilers, and finding out an intuition
- # of exeext.
--echo "$as_me:1483: checking for C compiler default output" >&5
-+echo "$as_me:1463: checking for C compiler default output" >&5
- echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
- ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:1486: \"$ac_link_default\"") >&5
-+if { (eval echo "$as_me:1466: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
-- echo "$as_me:1489: \$? = $ac_status" >&5
-+ echo "$as_me:1469: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
- # not robust to junk in `.', hence go to wildcards (a.*) only as a last
-@@ -1509,34 +1489,34 @@
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1512: error: C compiler cannot create executables" >&5
-+{ { echo "$as_me:1492: error: C compiler cannot create executables" >&5
- echo "$as_me: error: C compiler cannot create executables" >&2;}
- { (exit 77); exit 77; }; }
- fi
-
- ac_exeext=$ac_cv_exeext
--echo "$as_me:1518: result: $ac_file" >&5
-+echo "$as_me:1498: result: $ac_file" >&5
- echo "${ECHO_T}$ac_file" >&6
-
- # Check the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1523: checking whether the C compiler works" >&5
-+echo "$as_me:1503: checking whether the C compiler works" >&5
- echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
- # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
- # If not cross compiling, check that we can run a simple program.
- if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
-- { (eval echo "$as_me:1529: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1509: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1532: \$? = $ac_status" >&5
-+ echo "$as_me:1512: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
-- { { echo "$as_me:1539: error: cannot run C compiled programs.
-+ { { echo "$as_me:1519: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&5
- echo "$as_me: error: cannot run C compiled programs.
- If you meant to cross compile, use \`--host'." >&2;}
-@@ -1544,24 +1524,24 @@
- fi
- fi
- fi
--echo "$as_me:1547: result: yes" >&5
-+echo "$as_me:1527: result: yes" >&5
- echo "${ECHO_T}yes" >&6
-
- rm -f a.out a.exe conftest$ac_cv_exeext
- ac_clean_files=$ac_clean_files_save
- # Check the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:1554: checking whether we are cross compiling" >&5
-+echo "$as_me:1534: checking whether we are cross compiling" >&5
- echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:1556: result: $cross_compiling" >&5
-+echo "$as_me:1536: result: $cross_compiling" >&5
- echo "${ECHO_T}$cross_compiling" >&6
-
--echo "$as_me:1559: checking for executable suffix" >&5
-+echo "$as_me:1539: checking for executable suffix" >&5
- echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
--if { (eval echo "$as_me:1561: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:1541: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:1564: \$? = $ac_status" >&5
-+ echo "$as_me:1544: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
- # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-@@ -1577,25 +1557,25 @@
- esac
- done
- else
-- { { echo "$as_me:1580: error: cannot compute EXEEXT: cannot compile and link" >&5
-+ { { echo "$as_me:1560: error: cannot compute EXEEXT: cannot compile and link" >&5
- echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- rm -f conftest$ac_cv_exeext
--echo "$as_me:1586: result: $ac_cv_exeext" >&5
-+echo "$as_me:1566: result: $ac_cv_exeext" >&5
- echo "${ECHO_T}$ac_cv_exeext" >&6
-
- rm -f conftest.$ac_ext
- EXEEXT=$ac_cv_exeext
- ac_exeext=$EXEEXT
--echo "$as_me:1592: checking for object suffix" >&5
-+echo "$as_me:1572: checking for object suffix" >&5
- echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
- if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1598 "configure"
-+#line 1578 "configure"
- #include "confdefs.h"
-
- int
-@@ -1607,10 +1587,10 @@
- }
- _ACEOF
- rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:1610: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1590: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1613: \$? = $ac_status" >&5
-+ echo "$as_me:1593: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
-@@ -1622,24 +1602,24 @@
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--{ { echo "$as_me:1625: error: cannot compute OBJEXT: cannot compile" >&5
-+{ { echo "$as_me:1605: error: cannot compute OBJEXT: cannot compile" >&5
- echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
--echo "$as_me:1632: result: $ac_cv_objext" >&5
-+echo "$as_me:1612: result: $ac_cv_objext" >&5
- echo "${ECHO_T}$ac_cv_objext" >&6
- OBJEXT=$ac_cv_objext
- ac_objext=$OBJEXT
--echo "$as_me:1636: checking whether we are using the GNU C compiler" >&5
-+echo "$as_me:1616: checking whether we are using the GNU C compiler" >&5
- echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
- if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1642 "configure"
-+#line 1622 "configure"
- #include "confdefs.h"
-
- int
-@@ -1654,16 +1634,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1657: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1637: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1660: \$? = $ac_status" >&5
-+ echo "$as_me:1640: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1663: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1643: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1666: \$? = $ac_status" >&5
-+ echo "$as_me:1646: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
- else
-@@ -1675,19 +1655,19 @@
- ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
- fi
--echo "$as_me:1678: result: $ac_cv_c_compiler_gnu" >&5
-+echo "$as_me:1658: result: $ac_cv_c_compiler_gnu" >&5
- echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
- GCC=`test $ac_compiler_gnu = yes && echo yes`
- ac_test_CFLAGS=${CFLAGS+set}
- ac_save_CFLAGS=$CFLAGS
- CFLAGS="-g"
--echo "$as_me:1684: checking whether $CC accepts -g" >&5
-+echo "$as_me:1664: checking whether $CC accepts -g" >&5
- echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
- if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 1690 "configure"
-+#line 1670 "configure"
- #include "confdefs.h"
-
- int
-@@ -1699,16 +1679,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1702: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1682: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1705: \$? = $ac_status" >&5
-+ echo "$as_me:1685: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1708: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1688: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1711: \$? = $ac_status" >&5
-+ echo "$as_me:1691: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
- else
-@@ -1718,7 +1698,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:1721: result: $ac_cv_prog_cc_g" >&5
-+echo "$as_me:1701: result: $ac_cv_prog_cc_g" >&5
- echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-@@ -1745,16 +1725,16 @@
- #endif
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1728: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1751: \$? = $ac_status" >&5
-+ echo "$as_me:1731: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1754: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1734: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1757: \$? = $ac_status" >&5
-+ echo "$as_me:1737: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- ''\
-@@ -1766,7 +1746,7 @@
- 'void exit (int);'
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 1769 "configure"
-+#line 1749 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- $ac_declaration
-@@ -1779,16 +1759,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1782: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1762: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1785: \$? = $ac_status" >&5
-+ echo "$as_me:1765: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1788: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1768: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1791: \$? = $ac_status" >&5
-+ echo "$as_me:1771: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -1798,7 +1778,7 @@
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
--#line 1801 "configure"
-+#line 1781 "configure"
- #include "confdefs.h"
- $ac_declaration
- int
-@@ -1810,16 +1790,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:1813: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:1793: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:1816: \$? = $ac_status" >&5
-+ echo "$as_me:1796: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:1819: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:1799: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:1822: \$? = $ac_status" >&5
-+ echo "$as_me:1802: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
- else
-@@ -1847,13 +1827,214 @@
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
-
-+GCC_VERSION=none
-+if test "$GCC" = yes ; then
-+ echo "$as_me:1832: checking version of $CC" >&5
-+echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
-+ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
-+ test -z "$GCC_VERSION" && GCC_VERSION=unknown
-+ echo "$as_me:1836: result: $GCC_VERSION" >&5
-+echo "${ECHO_T}$GCC_VERSION" >&6
-+fi
-+
-+echo "$as_me:1840: checking for $CC option to accept ANSI C" >&5
-+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-+if test "${ac_cv_prog_cc_stdc+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_cv_prog_cc_stdc=no
-+ac_save_CC=$CC
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 1848 "configure"
-+#include "confdefs.h"
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-+struct buf { int x; };
-+FILE * (*rcsopen) (struct buf *, struct stat *, int);
-+static char *e (p, i)
-+ char **p;
-+ int i;
-+{
-+ return p[i];
-+}
-+static char *f (char * (*g) (char **, int), char **p, ...)
-+{
-+ char *s;
-+ va_list v;
-+ va_start (v,p);
-+ s = g (p, va_arg (v,int));
-+ va_end (v);
-+ return s;
-+}
-+int test (int i, double x);
-+struct s1 {int (*f) (int a);};
-+struct s2 {int (*f) (double a);};
-+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-+int argc;
-+char **argv;
-+int
-+main ()
-+{
-+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+# Don't try gcc -ansi; that turns off useful extensions and
-+# breaks some systems' header files.
-+# AIX -qlanglvl=ansi
-+# Ultrix and OSF/1 -std1
-+# HP-UX 10.20 and later -Ae
-+# HP-UX older versions -Aa -D_HPUX_SOURCE
-+# SVR4 -Xc -D__EXTENSIONS__
-+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-+do
-+ CC="$ac_save_CC $ac_arg"
-+ rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:1897: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:1900: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:1903: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:1906: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_prog_cc_stdc=$ac_arg
-+break
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext
-+done
-+rm -f conftest.$ac_ext conftest.$ac_objext
-+CC=$ac_save_CC
-+
-+fi
-+
-+case "x$ac_cv_prog_cc_stdc" in
-+ x|xno)
-+ echo "$as_me:1923: result: none needed" >&5
-+echo "${ECHO_T}none needed" >&6 ;;
-+ *)
-+ echo "$as_me:1926: result: $ac_cv_prog_cc_stdc" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-+ CC="$CC $ac_cv_prog_cc_stdc" ;;
-+esac
-+
-+# This should have been defined by AC_PROG_CC
-+: ${CC:=cc}
-+
-+echo "$as_me:1934: checking \$CC variable" >&5
-+echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-+case "$CC" in #(vi
-+*[\ \ ]-[IUD]*)
-+ echo "$as_me:1938: result: broken" >&5
-+echo "${ECHO_T}broken" >&6
-+ { echo "$as_me:1940: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
-+echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
-+ # humor him...
-+ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'`
-+ CC=`echo "$CC" | sed -e 's/[ ].*//'`
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_flags
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ ;;
-+*)
-+ echo "$as_me:2026: result: ok" >&5
-+echo "${ECHO_T}ok" >&6
-+ ;;
-+esac
-+
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- ac_main_return=return
--echo "$as_me:1856: checking how to run the C preprocessor" >&5
-+echo "$as_me:2037: checking how to run the C preprocessor" >&5
- echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-@@ -1874,18 +2055,18 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
--#line 1877 "configure"
-+#line 2058 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:1882: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2063: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:1888: \$? = $ac_status" >&5
-+ echo "$as_me:2069: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1908,17 +2089,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 1911 "configure"
-+#line 2092 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:1915: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2096: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:1921: \$? = $ac_status" >&5
-+ echo "$as_me:2102: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1955,7 +2136,7 @@
- else
- ac_cv_prog_CPP=$CPP
- fi
--echo "$as_me:1958: result: $CPP" >&5
-+echo "$as_me:2139: result: $CPP" >&5
- echo "${ECHO_T}$CPP" >&6
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
-@@ -1965,18 +2146,18 @@
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
--#line 1968 "configure"
-+#line 2149 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:1973: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2154: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:1979: \$? = $ac_status" >&5
-+ echo "$as_me:2160: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -1999,17 +2180,17 @@
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
--#line 2002 "configure"
-+#line 2183 "configure"
- #include "confdefs.h"
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:2006: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:2187: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:2012: \$? = $ac_status" >&5
-+ echo "$as_me:2193: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -2037,7 +2218,7 @@
- if $ac_preproc_ok; then
- :
- else
-- { { echo "$as_me:2040: error: C preprocessor \"$CPP\" fails sanity check" >&5
-+ { { echo "$as_me:2221: error: C preprocessor \"$CPP\" fails sanity check" >&5
- echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -2053,7 +2234,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2056: checking for $ac_word" >&5
-+echo "$as_me:2237: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2068,7 +2249,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_AWK="$ac_prog"
--echo "$as_me:2071: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2252: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2076,10 +2257,10 @@
- fi
- AWK=$ac_cv_prog_AWK
- if test -n "$AWK"; then
-- echo "$as_me:2079: result: $AWK" >&5
-+ echo "$as_me:2260: result: $AWK" >&5
- echo "${ECHO_T}$AWK" >&6
- else
-- echo "$as_me:2082: result: no" >&5
-+ echo "$as_me:2263: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2098,7 +2279,7 @@
- # AFS /usr/afsws/bin/install, which mishandles nonexistent args
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:2101: checking for a BSD compatible install" >&5
-+echo "$as_me:2282: checking for a BSD compatible install" >&5
- echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
-@@ -2147,7 +2328,7 @@
- INSTALL=$ac_install_sh
- fi
- fi
--echo "$as_me:2150: result: $INSTALL" >&5
-+echo "$as_me:2331: result: $INSTALL" >&5
- echo "${ECHO_T}$INSTALL" >&6
-
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-@@ -2172,7 +2353,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2175: checking for $ac_word" >&5
-+echo "$as_me:2356: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_LINT+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2187,7 +2368,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_LINT="$ac_prog"
--echo "$as_me:2190: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2371: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2195,17 +2376,17 @@
- fi
- LINT=$ac_cv_prog_LINT
- if test -n "$LINT"; then
-- echo "$as_me:2198: result: $LINT" >&5
-+ echo "$as_me:2379: result: $LINT" >&5
- echo "${ECHO_T}$LINT" >&6
- else
-- echo "$as_me:2201: result: no" >&5
-+ echo "$as_me:2382: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- test -n "$LINT" && break
- done
-
--echo "$as_me:2208: checking if filesystem supports mixed-case filenames" >&5
-+echo "$as_me:2389: checking if filesystem supports mixed-case filenames" >&5
- echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
- if test "${cf_cv_mixedcase+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2232,9 +2413,10 @@
- fi
-
- fi
--echo "$as_me:2235: result: $cf_cv_mixedcase" >&5
-+echo "$as_me:2416: result: $cf_cv_mixedcase" >&5
- echo "${ECHO_T}$cf_cv_mixedcase" >&6
--test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
-+test "$cf_cv_mixedcase" = yes &&
-+cat >>confdefs.h <<\EOF
- #define MIXEDCASE_FILENAMES 1
- EOF
-
-@@ -2242,7 +2424,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2245: checking for $ac_word" >&5
-+echo "$as_me:2427: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_CTAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2257,7 +2439,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_CTAGS="$ac_prog"
--echo "$as_me:2260: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2442: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2265,10 +2447,10 @@
- fi
- CTAGS=$ac_cv_prog_CTAGS
- if test -n "$CTAGS"; then
-- echo "$as_me:2268: result: $CTAGS" >&5
-+ echo "$as_me:2450: result: $CTAGS" >&5
- echo "${ECHO_T}$CTAGS" >&6
- else
-- echo "$as_me:2271: result: no" >&5
-+ echo "$as_me:2453: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2279,7 +2461,7 @@
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:2282: checking for $ac_word" >&5
-+echo "$as_me:2464: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_ETAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2294,7 +2476,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_ETAGS="$ac_prog"
--echo "$as_me:2297: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2479: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2302,10 +2484,10 @@
- fi
- ETAGS=$ac_cv_prog_ETAGS
- if test -n "$ETAGS"; then
-- echo "$as_me:2305: result: $ETAGS" >&5
-+ echo "$as_me:2487: result: $ETAGS" >&5
- echo "${ECHO_T}$ETAGS" >&6
- else
-- echo "$as_me:2308: result: no" >&5
-+ echo "$as_me:2490: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2314,7 +2496,7 @@
-
- # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
- set dummy ${CTAGS:-ctags}; ac_word=$2
--echo "$as_me:2317: checking for $ac_word" >&5
-+echo "$as_me:2499: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2329,7 +2511,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_LOWER_TAGS="yes"
--echo "$as_me:2332: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2514: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2338,17 +2520,17 @@
- fi
- MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
- if test -n "$MAKE_LOWER_TAGS"; then
-- echo "$as_me:2341: result: $MAKE_LOWER_TAGS" >&5
-+ echo "$as_me:2523: result: $MAKE_LOWER_TAGS" >&5
- echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
- else
-- echo "$as_me:2344: result: no" >&5
-+ echo "$as_me:2526: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
- if test "$cf_cv_mixedcase" = yes ; then
- # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
- set dummy ${ETAGS:-etags}; ac_word=$2
--echo "$as_me:2351: checking for $ac_word" >&5
-+echo "$as_me:2533: checking for $ac_word" >&5
- echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
- if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -2363,7 +2545,7 @@
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
- ac_cv_prog_MAKE_UPPER_TAGS="yes"
--echo "$as_me:2366: found $ac_dir/$ac_word" >&5
-+echo "$as_me:2548: found $ac_dir/$ac_word" >&5
- break
- done
-
-@@ -2372,10 +2554,10 @@
- fi
- MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
- if test -n "$MAKE_UPPER_TAGS"; then
-- echo "$as_me:2375: result: $MAKE_UPPER_TAGS" >&5
-+ echo "$as_me:2557: result: $MAKE_UPPER_TAGS" >&5
- echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
- else
-- echo "$as_me:2378: result: no" >&5
-+ echo "$as_me:2560: result: no" >&5
- echo "${ECHO_T}no" >&6
- fi
-
-@@ -2395,14 +2577,14 @@
- MAKE_LOWER_TAGS="#"
- fi
-
--echo "$as_me:2398: checking if -lm needed for math functions" >&5
-+echo "$as_me:2580: checking if -lm needed for math functions" >&5
- echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
- if test "${cf_cv_need_libm+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 2405 "configure"
-+#line 2587 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -2417,16 +2599,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:2420: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:2602: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:2423: \$? = $ac_status" >&5
-+ echo "$as_me:2605: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:2426: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2608: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2429: \$? = $ac_status" >&5
-+ echo "$as_me:2611: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_need_libm=no
- else
-@@ -2436,13 +2618,15 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:2439: result: $cf_cv_need_libm" >&5
-+echo "$as_me:2621: result: $cf_cv_need_libm" >&5
- echo "${ECHO_T}$cf_cv_need_libm" >&6
- if test "$cf_cv_need_libm" = yes
- then
- MATH_LIB=-lm
- fi
-
-+top_builddir=`pwd`
-+
- CC_G_OPT="-g"
- CC_SHARED_OPTS=unknown
- CPPFLAGS="$CPPFLAGS"
-@@ -2464,427 +2648,304 @@
- TEST_ARGS=""
- TEST_DEPS=""
- TEST_LIBS=""
--TINFO_ARGS='$(LIBS_CURSES)'
-+TINFO_LDFLAGS=''
-+TINFO_LIBS='$(LIBS_CURSES)'
- cf_cv_abi_version=""
- cf_cv_rel_version=""
-
- cf_cv_screen=curses
- cf_cv_libtype=
-
--echo "$as_me:2474: checking for ${CC:-cc} option to accept ANSI C" >&5
--echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
--if test "${cf_cv_ansi_cc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+if test "$GCC" = yes
-+then
-+cat > conftest.i <<EOF
-+#ifndef GCC_PRINTF
-+#define GCC_PRINTF 0
-+#endif
-+#ifndef GCC_SCANF
-+#define GCC_SCANF 0
-+#endif
-+#ifndef GCC_NORETURN
-+#define GCC_NORETURN /* nothing */
-+#endif
-+#ifndef GCC_UNUSED
-+#define GCC_UNUSED /* nothing */
-+#endif
-+EOF
-+if test "$GCC" = yes
-+then
-+ { echo "$as_me:2677: checking for $CC __attribute__ directives..." >&5
-+echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
-+cat > conftest.$ac_ext <<EOF
-+#line 2680 "${as_me:-configure}"
-+#include "confdefs.h"
-+#include "conftest.h"
-+#include "conftest.i"
-+#if GCC_PRINTF
-+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-+#else
-+#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-+#endif
-+#if GCC_SCANF
-+#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-+#else
-+#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-+#endif
-+extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-+extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-+extern void foo(void) GCC_NORETURN;
-+int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-+EOF
-+ cf_printf_attribute=no
-+ cf_scanf_attribute=no
-+ for cf_attribute in scanf printf unused noreturn
-+ do
-
--cf_cv_ansi_cc=no
--cf_save_CFLAGS="$CFLAGS"
--cf_save_CPPFLAGS="$CPPFLAGS"
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX -Aa -D_HPUX_SOURCE
--# SVR4 -Xc
--# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
--for cf_arg in "-DCC_HAS_PROTOS" \
-- "" \
-- -qlanglvl=ansi \
-- -std1 \
-- -Ae \
-- "-Aa -D_HPUX_SOURCE" \
-- -Xc
--do
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_arg
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+ cf_directive="__attribute__(($cf_attribute))"
-+ echo "checking for $CC $cf_directive" 1>&5
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-+ case $cf_attribute in #(vi
-+ printf) #(vi
-+ cf_printf_attribute=yes
-+ cat >conftest.h <<EOF
-+#define GCC_$cf_ATTRIBUTE 1
-+EOF
- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-+ scanf) #(vi
-+ cf_scanf_attribute=yes
-+ cat >conftest.h <<EOF
-+#define GCC_$cf_ATTRIBUTE 1
-+EOF
- ;;
- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+ cat >conftest.h <<EOF
-+#define GCC_$cf_ATTRIBUTE $cf_directive
-+EOF
-+ ;;
-+ esac
-
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+ if { (eval echo "$as_me:2729: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:2732: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ test -n "$verbose" && echo "$as_me:2734: result: ... $cf_attribute" >&5
-+echo "${ECHO_T}... $cf_attribute" >&6
-+ cat conftest.h >>confdefs.h
-+ case $cf_attribute in #(vi
-+ noreturn) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_NORETURN $cf_directive
-+EOF
-
- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ printf) #(vi
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+cat >>confdefs.h <<\EOF
-+#define GCC_PRINTF 1
-+EOF
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
-+ fi
-
--if test -n "$cf_new_cflags" ; then
-+cat >>confdefs.h <<EOF
-+#define GCC_PRINTFLIKE(fmt,var) $cf_value
-+EOF
-
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
-+ ;;
-+ scanf) #(vi
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-
--if test -n "$cf_new_cppflags" ; then
-+cat >>confdefs.h <<\EOF
-+#define GCC_SCANF 1
-+EOF
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
-+ fi
-
--if test -n "$cf_new_extra_cppflags" ; then
-+cat >>confdefs.h <<EOF
-+#define GCC_SCANFLIKE(fmt,var) $cf_value
-+EOF
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+ ;;
-+ unused) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_UNUSED $cf_directive
-+EOF
-+
-+ ;;
-+ esac
-+ fi
-+ done
-+else
-+ fgrep define conftest.i >>confdefs.h
-+fi
-+rm -rf conftest*
- fi
-
-- cat >conftest.$ac_ext <<_ACEOF
--#line 2578 "configure"
-+cf_XOPEN_SOURCE=500
-+cf_POSIX_C_SOURCE=199506L
-+cf_xopen_source=
-+
-+case $host_os in #(vi
-+aix[4-7]*) #(vi
-+ cf_xopen_source="-D_ALL_SOURCE"
-+ ;;
-+cygwin) #(vi
-+ cf_XOPEN_SOURCE=600
-+ ;;
-+darwin[0-8].*) #(vi
-+ cf_xopen_source="-D_APPLE_C_SOURCE"
-+ ;;
-+darwin*) #(vi
-+ cf_xopen_source="-D_DARWIN_C_SOURCE"
-+ cf_XOPEN_SOURCE=
-+ ;;
-+freebsd*|dragonfly*) #(vi
-+ # 5.x headers associate
-+ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
-+ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
-+ cf_POSIX_C_SOURCE=200112L
-+ cf_XOPEN_SOURCE=600
-+ cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ ;;
-+hpux11*) #(vi
-+ cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
-+ ;;
-+hpux*) #(vi
-+ cf_xopen_source="-D_HPUX_SOURCE"
-+ ;;
-+irix[56].*) #(vi
-+ cf_xopen_source="-D_SGI_SOURCE"
-+ cf_XOPEN_SOURCE=
-+ ;;
-+linux*|gnu*|mint*|k*bsd*-gnu) #(vi
-+
-+echo "$as_me:2831: 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 2838 "configure"
- #include "confdefs.h"
-+#include <sys/types.h>
-+int
-+main ()
-+{
-
--#ifndef CC_HAS_PROTOS
--#if !defined(__STDC__) || (__STDC__ != 1)
--choke me
--#endif
-+#ifndef _XOPEN_SOURCE
-+make an error
- #endif
--
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:2853: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:2856: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:2859: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:2862: \$? = $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 2871 "configure"
-+#include "confdefs.h"
-+#include <sys/types.h>
- int
- main ()
- {
-
-- int test (int i, double x);
-- struct s1 {int (*f) (int a);};
-- struct s2 {int (*f) (double a);};
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2599: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2886: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2602: \$? = $ac_status" >&5
-+ echo "$as_me:2889: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2605: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2892: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2608: \$? = $ac_status" >&5
-+ echo "$as_me:2895: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ansi_cc="$cf_arg"; break
-+ cf_cv_gnu_source=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_cv_gnu_source=yes
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--done
--CFLAGS="$cf_save_CFLAGS"
--CPPFLAGS="$cf_save_CPPFLAGS"
-+ CPPFLAGS="$cf_save"
-
- fi
--echo "$as_me:2621: result: $cf_cv_ansi_cc" >&5
--echo "${ECHO_T}$cf_cv_ansi_cc" >&6
-+rm -f conftest.$ac_objext conftest.$ac_ext
-
--if test "$cf_cv_ansi_cc" != "no"; then
--if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-+fi
-+echo "$as_me:2910: result: $cf_cv_gnu_source" >&5
-+echo "${ECHO_T}$cf_cv_gnu_source" >&6
-+test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
-+ ;;
-+mirbsd*) #(vi
-+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
-+ cf_XOPEN_SOURCE=
-
--for cf_add_cflags in $cf_cv_ansi_cc
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+cf_save_CFLAGS="$CFLAGS"
-+cf_save_CPPFLAGS="$CPPFLAGS"
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
--else
-- cat >>confdefs.h <<\EOF
--#define CC_HAS_PROTOS 1
--EOF
--
--fi
--fi
--
--if test "$cf_cv_ansi_cc" = "no"; then
-- { { echo "$as_me:2714: error: Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto" >&5
--echo "$as_me: error: Your compiler does not appear to recognize prototypes.
--You have the following choices:
-- a. adjust your compiler options
-- b. get an up-to-date compiler
-- c. use a wrapper such as unproto" >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--if test "$GCC" = yes
--then
--cat > conftest.i <<EOF
--#ifndef GCC_PRINTF
--#define GCC_PRINTF 0
--#endif
--#ifndef GCC_SCANF
--#define GCC_SCANF 0
--#endif
--#ifndef GCC_NORETURN
--#define GCC_NORETURN /* nothing */
--#endif
--#ifndef GCC_UNUSED
--#define GCC_UNUSED /* nothing */
--#endif
--EOF
--if test "$GCC" = yes
--then
-- { echo "$as_me:2745: checking for $CC __attribute__ directives..." >&5
--echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
--cat > conftest.$ac_ext <<EOF
--#line 2748 "${as_me:-configure}"
--#include "confdefs.h"
--#include "conftest.h"
--#include "conftest.i"
--#if GCC_PRINTF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--#else
--#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
--#endif
--#if GCC_SCANF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--#else
--#define GCC_SCANFLIKE(fmt,var) /*nothing*/
--#endif
--extern void wow(char *,...) GCC_SCANFLIKE(1,2);
--extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
--extern void foo(void) GCC_NORETURN;
--int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
--EOF
-- cf_printf_attribute=no
-- cf_scanf_attribute=no
-- for cf_attribute in scanf printf unused noreturn
-- do
--
--cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
-- cf_directive="__attribute__(($cf_attribute))"
-- echo "checking for $CC $cf_directive" 1>&5
--
-- case $cf_attribute in #(vi
-- printf) #(vi
-- cf_printf_attribute=yes
-- cat >conftest.h <<EOF
--#define GCC_$cf_ATTRIBUTE 1
--EOF
-- ;;
-- scanf) #(vi
-- cf_scanf_attribute=yes
-- cat >conftest.h <<EOF
--#define GCC_$cf_ATTRIBUTE 1
--EOF
-- ;;
-- *) #(vi
-- cat >conftest.h <<EOF
--#define GCC_$cf_ATTRIBUTE $cf_directive
--EOF
-- ;;
-- esac
--
-- if { (eval echo "$as_me:2797: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:2800: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:2802: result: ... $cf_attribute" >&5
--echo "${ECHO_T}... $cf_attribute" >&6
-- cat conftest.h >>confdefs.h
-- case $cf_attribute in #(vi
-- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--EOF
-- fi
-- ;;
-- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--EOF
-- fi
-- ;;
-- esac
-- fi
-- done
--else
-- fgrep define conftest.i >>confdefs.h
--fi
--rm -rf conftest*
--fi
--
--cf_XOPEN_SOURCE=500
--cf_POSIX_C_SOURCE=199506L
--cf_xopen_source=
--
--case $host_os in #(vi
--aix[456]*) #(vi
-- cf_xopen_source="-D_ALL_SOURCE"
-- ;;
--cygwin) #(vi
-- cf_XOPEN_SOURCE=600
-- ;;
--darwin[0-8].*) #(vi
-- cf_xopen_source="-D_APPLE_C_SOURCE"
-- ;;
--darwin*) #(vi
-- cf_xopen_source="-D_DARWIN_C_SOURCE"
-- ;;
--freebsd*|dragonfly*) #(vi
-- # 5.x headers associate
-- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
-- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
-- cf_POSIX_C_SOURCE=200112L
-- cf_XOPEN_SOURCE=600
-- cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--hpux11*) #(vi
-- cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
-- ;;
--hpux*) #(vi
-- cf_xopen_source="-D_HPUX_SOURCE"
-- ;;
--irix[56].*) #(vi
-- cf_xopen_source="-D_SGI_SOURCE"
-- ;;
--linux*|gnu*|mint*|k*bsd*-gnu) #(vi
--
--echo "$as_me:2873: checking if we must define _GNU_SOURCE" >&5
--echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
--if test "${cf_cv_gnu_source+set}" = set; then
-+echo "$as_me:2932: checking if we should define _POSIX_C_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_posix_c_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 2880 "configure"
-+echo "${as_me:-configure}:2938: testing if the symbol is already defined go no further ..." 1>&5
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 2941 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
- main ()
- {
-
--#ifndef _XOPEN_SOURCE
-+#ifndef _POSIX_C_SOURCE
- make an error
- #endif
- ;
-@@ -2892,32 +2953,44 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2895: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:2956: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2898: \$? = $ac_status" >&5
-+ echo "$as_me:2959: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2901: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:2962: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2904: \$? = $ac_status" >&5
-+ echo "$as_me:2965: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_gnu_source=no
-+ cf_cv_posix_c_source=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_save="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 2913 "configure"
-+cf_want_posix_source=no
-+ case .$cf_POSIX_C_SOURCE in #(vi
-+ .[12]??*) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ ;;
-+ .2) #(vi
-+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
-+ cf_want_posix_source=yes
-+ ;;
-+ .*)
-+ cf_want_posix_source=yes
-+ ;;
-+ esac
-+ if test "$cf_want_posix_source" = yes ; then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 2986 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
- main ()
- {
-
--#ifdef _XOPEN_SOURCE
-+#ifdef _POSIX_SOURCE
- make an error
- #endif
- ;
-@@ -2925,75 +2998,42 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:2928: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3001: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:2931: \$? = $ac_status" >&5
-+ echo "$as_me:3004: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:2934: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3007: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:2937: \$? = $ac_status" >&5
-+ echo "$as_me:3010: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_gnu_source=no
-+ :
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_gnu_source=yes
-+cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS="$cf_save"
-+ fi
-
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+echo "${as_me:-configure}:3021: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-
--fi
--echo "$as_me:2952: result: $cf_cv_gnu_source" >&5
--echo "${ECHO_T}$cf_cv_gnu_source" >&6
--test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-
-- ;;
--mirbsd*) #(vi
-- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
-- ;;
--netbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-- ;;
--openbsd*) #(vi
-- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-- ;;
--osf[45]*) #(vi
-- cf_xopen_source="-D_OSF_SOURCE"
-- ;;
--nto-qnx*) #(vi
-- cf_xopen_source="-D_QNX_SOURCE"
-- ;;
--sco*) #(vi
-- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
-- ;;
--solaris2.1[0-9]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- ;;
--solaris2.[1-9]) #(vi
-- cf_xopen_source="-D__EXTENSIONS__"
-- ;;
--*)
-- echo "$as_me:2982: checking if we should define _XOPEN_SOURCE" >&5
--echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
--if test "${cf_cv_xopen_source+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+echo "${as_me:-configure}:3026: testing if the second compile does not leave our definition intact error ..." 1>&5
-
-- cat >conftest.$ac_ext <<_ACEOF
--#line 2989 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3029 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
- main ()
- {
-
--#ifndef _XOPEN_SOURCE
-+#ifndef _POSIX_C_SOURCE
- make an error
- #endif
- ;
-@@ -3001,32 +3041,200 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3004: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3044: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3007: \$? = $ac_status" >&5
-+ echo "$as_me:3047: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3010: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3050: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3013: \$? = $ac_status" >&5
-+ echo "$as_me:3053: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_xopen_source=no
-+ :
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_save="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 3022 "configure"
--#include "confdefs.h"
--#include <sys/types.h>
--int
--main ()
--{
--
--#ifdef _XOPEN_SOURCE
-+cf_cv_posix_c_source=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-+
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:3069: result: $cf_cv_posix_c_source" >&5
-+echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-+
-+if test "$cf_cv_posix_c_source" != no ; then
-+ CFLAGS="$cf_trim_CFLAGS"
-+ CPPFLAGS="$cf_trim_CPPFLAGS"
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_cv_posix_c_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+fi
-+
-+ ;;
-+netbsd*) #(vi
-+ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
-+ ;;
-+openbsd[4-9]*) #(vi
-+ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
-+ cf_xopen_source="-D_BSD_SOURCE"
-+ cf_XOPEN_SOURCE=600
-+ ;;
-+openbsd*) #(vi
-+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
-+ ;;
-+osf[45]*) #(vi
-+ cf_xopen_source="-D_OSF_SOURCE"
-+ ;;
-+nto-qnx*) #(vi
-+ cf_xopen_source="-D_QNX_SOURCE"
-+ ;;
-+sco*) #(vi
-+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
-+ ;;
-+solaris2.*) #(vi
-+ cf_xopen_source="-D__EXTENSIONS__"
-+ ;;
-+*)
-+
-+echo "$as_me:3182: checking if we should define _XOPEN_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_xopen_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3189 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:3208: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:3211: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:3214: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:3217: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3226 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifdef _XOPEN_SOURCE
- make an error
- #endif
- ;
-@@ -3034,16 +3242,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3037: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3245: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3040: \$? = $ac_status" >&5
-+ echo "$as_me:3248: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3043: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3251: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3046: \$? = $ac_status" >&5
-+ echo "$as_me:3254: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_xopen_source=no
- else
-@@ -3058,9 +3266,10 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:3061: result: $cf_cv_xopen_source" >&5
-+echo "$as_me:3269: result: $cf_cv_xopen_source" >&5
- echo "${ECHO_T}$cf_cv_xopen_source" >&6
-- if test "$cf_cv_xopen_source" != no ; then
-+
-+if test "$cf_cv_xopen_source" != no ; then
-
- CFLAGS=`echo "$CFLAGS" | \
- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-@@ -3070,7 +3279,7 @@
- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-
-- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -3150,7 +3359,7 @@
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-- fi
-+fi
-
- cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-
-@@ -3165,16 +3374,16 @@
- sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
-
--echo "$as_me:3168: checking if we should define _POSIX_C_SOURCE" >&5
-+echo "$as_me:3377: checking if we should define _POSIX_C_SOURCE" >&5
- echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
- if test "${cf_cv_posix_c_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--echo "${as_me:-configure}:3174: testing if the symbol is already defined go no further ..." 1>&5
-+echo "${as_me:-configure}:3383: testing if the symbol is already defined go no further ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 3177 "configure"
-+#line 3386 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3189,16 +3398,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3192: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3401: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3195: \$? = $ac_status" >&5
-+ echo "$as_me:3404: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3198: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3407: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3201: \$? = $ac_status" >&5
-+ echo "$as_me:3410: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_posix_c_source=no
- else
-@@ -3219,7 +3428,7 @@
- esac
- if test "$cf_want_posix_source" = yes ; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 3222 "configure"
-+#line 3431 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3234,16 +3443,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3237: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3446: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3240: \$? = $ac_status" >&5
-+ echo "$as_me:3449: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3243: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3452: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3246: \$? = $ac_status" >&5
-+ echo "$as_me:3455: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -3254,15 +3463,15 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-
--echo "${as_me:-configure}:3257: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-+echo "${as_me:-configure}:3466: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-
--echo "${as_me:-configure}:3262: testing if the second compile does not leave our definition intact error ..." 1>&5
-+echo "${as_me:-configure}:3471: testing if the second compile does not leave our definition intact error ..." 1>&5
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 3265 "configure"
-+#line 3474 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- int
-@@ -3277,16 +3486,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3280: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3489: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3283: \$? = $ac_status" >&5
-+ echo "$as_me:3492: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3286: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3495: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3289: \$? = $ac_status" >&5
-+ echo "$as_me:3498: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -3302,7 +3511,7 @@
- rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:3305: result: $cf_cv_posix_c_source" >&5
-+echo "$as_me:3514: result: $cf_cv_posix_c_source" >&5
- echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-
- if test "$cf_cv_posix_c_source" != no ; then
-@@ -3474,191 +3683,274 @@
-
- fi
-
--echo "$as_me:3477: checking for $CC option to accept ANSI C" >&5
--echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_stdc+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_cv_prog_cc_stdc=no
--ac_save_CC=$CC
--cat >conftest.$ac_ext <<_ACEOF
--#line 3485 "configure"
-+if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
-+ echo "$as_me:3687: checking if _XOPEN_SOURCE really is set" >&5
-+echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3690 "configure"
- #include "confdefs.h"
--#include <stdarg.h>
--#include <stdio.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
--struct buf { int x; };
--FILE * (*rcsopen) (struct buf *, struct stat *, int);
--static char *e (p, i)
-- char **p;
-- int i;
--{
-- return p[i];
--}
--static char *f (char * (*g) (char **, int), char **p, ...)
--{
-- char *s;
-- va_list v;
-- va_start (v,p);
-- s = g (p, va_arg (v,int));
-- va_end (v);
-- return s;
--}
--int test (int i, double x);
--struct s1 {int (*f) (int a);};
--struct s2 {int (*f) (double a);};
--int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
--int argc;
--char **argv;
-+#include <stdlib.h>
- int
- main ()
- {
--return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-+
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
- ;
- return 0;
- }
- _ACEOF
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX 10.20 and later -Ae
--# HP-UX older versions -Aa -D_HPUX_SOURCE
--# SVR4 -Xc -D__EXTENSIONS__
--for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
--do
-- CC="$ac_save_CC $ac_arg"
-- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3534: \"$ac_compile\"") >&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:3705: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3537: \$? = $ac_status" >&5
-+ echo "$as_me:3708: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3540: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3711: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3543: \$? = $ac_status" >&5
-+ echo "$as_me:3714: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_prog_cc_stdc=$ac_arg
--break
-+ cf_XOPEN_SOURCE_set=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_XOPEN_SOURCE_set=no
- fi
--rm -f conftest.$ac_objext
--done
--rm -f conftest.$ac_ext conftest.$ac_objext
--CC=$ac_save_CC
--
--fi
--
--case "x$ac_cv_prog_cc_stdc" in
-- x|xno)
-- echo "$as_me:3560: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6 ;;
-- *)
-- echo "$as_me:3563: result: $ac_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-- CC="$CC $ac_cv_prog_cc_stdc" ;;
--esac
--
--echo "$as_me:3568: checking for an ANSI C-conforming const" >&5
--echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
--if test "${ac_cv_c_const+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 3574 "configure"
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ echo "$as_me:3723: result: $cf_XOPEN_SOURCE_set" >&5
-+echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
-+ if test $cf_XOPEN_SOURCE_set = yes
-+ then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3728 "configure"
- #include "confdefs.h"
--
-+#include <stdlib.h>
- int
- main ()
- {
--/* FIXME: Include the comments suggested by Paul. */
--#ifndef __cplusplus
-- /* Ultrix mips cc rejects this. */
-- typedef int charset[2];
-- const charset x;
-- /* SunOS 4.1.1 cc rejects this. */
-- char const *const *ccp;
-- char **p;
-- /* NEC SVR4.0.2 mips cc rejects this. */
-- struct point {int x, y;};
-- static struct point const zero = {0,0};
-- /* AIX XL C 1.02.0.0 rejects this.
-- It does not let you subtract one const X* pointer from another in
-- an arm of an if-expression whose if-part is not a constant
-- expression */
-- const char *g = "string";
-- ccp = &g + (g ? g-g : 0);
-- /* HPUX 7.0 cc rejects these. */
-- ++ccp;
-- p = (char**) ccp;
-- ccp = (char const *const *) p;
-- { /* SCO 3.2v4 cc rejects this. */
-- char *t;
-- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-- *t++ = 0;
-- }
-- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
-- int x[] = {25, 17};
-- const int *foo = &x[0];
-- ++foo;
-- }
-- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-- typedef const int *iptr;
-- iptr p = 0;
-- ++p;
-- }
-- { /* AIX XL C 1.02.0.0 rejects this saying
-- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-- struct s { int j; const int *ap[3]; };
-- struct s *b; b->j = 5;
-- }
-- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-- const int foo = 10;
-- }
-+#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
-+make an error
- #endif
--
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3632: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3743: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3635: \$? = $ac_status" >&5
-+ echo "$as_me:3746: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3638: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3749: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3641: \$? = $ac_status" >&5
-+ echo "$as_me:3752: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_c_const=yes
-+ cf_XOPEN_SOURCE_set_ok=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_c_const=no
-+cf_XOPEN_SOURCE_set_ok=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:3651: result: $ac_cv_c_const" >&5
--echo "${ECHO_T}$ac_cv_c_const" >&6
--if test $ac_cv_c_const = no; then
-+ if test $cf_XOPEN_SOURCE_set_ok = no
-+ then
-+ { echo "$as_me:3763: WARNING: _XOPEN_SOURCE is lower than requested" >&5
-+echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
-+ fi
-+ else
-
--cat >>confdefs.h <<\EOF
--#define const
--EOF
-+echo "$as_me:3768: checking if we should define _XOPEN_SOURCE" >&5
-+echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-+if test "${cf_cv_xopen_source+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3775 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifndef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:3794: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:3797: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:3800: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:3803: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_save="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 3812 "configure"
-+#include "confdefs.h"
-+
-+#include <stdlib.h>
-+#include <string.h>
-+#include <sys/types.h>
-+
-+int
-+main ()
-+{
-+
-+#ifdef _XOPEN_SOURCE
-+make an error
-+#endif
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:3831: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:3834: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:3837: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:3840: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xopen_source=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_xopen_source=$cf_XOPEN_SOURCE
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS="$cf_save"
-+
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:3855: result: $cf_cv_xopen_source" >&5
-+echo "${ECHO_T}$cf_cv_xopen_source" >&6
-+
-+if test "$cf_cv_xopen_source" != no ; then
-+
-+CFLAGS=`echo "$CFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
-+
-+ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_temp_xopen_source
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+fi
-+
-+ fi
- fi
-
--echo "$as_me:3661: checking for signal global datatype" >&5
-+echo "$as_me:3953: checking for signal global datatype" >&5
- echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
- if test "${cf_cv_sig_atomic_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3670,7 +3962,7 @@
- "int"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 3673 "configure"
-+#line 3965 "configure"
- #include "confdefs.h"
-
- #include <sys/types.h>
-@@ -3693,16 +3985,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3696: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:3988: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:3699: \$? = $ac_status" >&5
-+ echo "$as_me:3991: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3702: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:3994: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:3705: \$? = $ac_status" >&5
-+ echo "$as_me:3997: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_sig_atomic_t=$cf_type
- else
-@@ -3716,473 +4008,535 @@
-
- fi
-
--echo "$as_me:3719: result: $cf_cv_sig_atomic_t" >&5
-+echo "$as_me:4011: result: $cf_cv_sig_atomic_t" >&5
- echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
--test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
-+test "$cf_cv_sig_atomic_t" != no &&
-+cat >>confdefs.h <<EOF
- #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
- EOF
-
--echo "$as_me:3725: checking if you want to see long compiling messages" >&5
--echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
--
--# Check whether --enable-echo or --disable-echo was given.
--if test "${enable_echo+set}" = set; then
-- enableval="$enable_echo"
-- test "$enableval" != no && enableval=yes
-- if test "$enableval" != "yes" ; then
--
-- ECHO_LT='--silent'
-- ECHO_LD='@echo linking $@;'
-- RULE_CC='@echo compiling $<'
-- SHOW_CC='@echo compiling $@'
-- ECHO_CC='@'
--
-- else
--
-- ECHO_LT=''
-- ECHO_LD=''
-- RULE_CC=''
-- SHOW_CC=''
-- ECHO_CC=''
-+echo "$as_me:4018: checking if you want to use pkg-config" >&5
-+echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
-
-- fi
-+# Check whether --with-pkg-config or --without-pkg-config was given.
-+if test "${with_pkg_config+set}" = set; then
-+ withval="$with_pkg_config"
-+ cf_pkg_config=$withval
- else
-- enableval=yes
-+ cf_pkg_config=yes
-+fi;
-+echo "$as_me:4028: result: $cf_pkg_config" >&5
-+echo "${ECHO_T}$cf_pkg_config" >&6
-
-- ECHO_LT=''
-- ECHO_LD=''
-- RULE_CC=''
-- SHOW_CC=''
-- ECHO_CC=''
-+case $cf_pkg_config in #(vi
-+no) #(vi
-+ PKG_CONFIG=none
-+ ;;
-+yes) #(vi
-
--fi;
--echo "$as_me:3759: result: $enableval" >&5
--echo "${ECHO_T}$enableval" >&6
-+if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-+echo "$as_me:4040: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ case $PKG_CONFIG in
-+ [\\/]* | ?:[\\/]*)
-+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ if $as_executable_p "$ac_dir/$ac_word"; then
-+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
-+ echo "$as_me:4057: found $ac_dir/$ac_word" >&5
-+ break
-+fi
-+done
-
--GCC_VERSION=none
--if test "$GCC" = yes ; then
-- echo "$as_me:3764: checking version of $CC" >&5
--echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
-- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
-- test -z "$GCC_VERSION" && GCC_VERSION=unknown
-- echo "$as_me:3768: result: $GCC_VERSION" >&5
--echo "${ECHO_T}$GCC_VERSION" >&6
-+ ;;
-+esac
- fi
-+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-
--if ( test "$GCC" = yes || test "$GXX" = yes )
--then
--echo "$as_me:3774: checking if you want to turn on gcc warnings" >&5
--echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
-+if test -n "$PKG_CONFIG"; then
-+ echo "$as_me:4068: result: $PKG_CONFIG" >&5
-+echo "${ECHO_T}$PKG_CONFIG" >&6
-+else
-+ echo "$as_me:4071: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-
--# Check whether --enable-warnings or --disable-warnings was given.
--if test "${enable_warnings+set}" = set; then
-- enableval="$enable_warnings"
-- test "$enableval" != yes && enableval=no
-- if test "$enableval" != "no" ; then
-- with_warnings=yes
-- else
-- with_warnings=no
-- fi
-+fi
-+if test -z "$ac_cv_path_PKG_CONFIG"; then
-+ ac_pt_PKG_CONFIG=$PKG_CONFIG
-+ # Extract the first word of "pkg-config", so it can be a program name with args.
-+set dummy pkg-config; ac_word=$2
-+echo "$as_me:4080: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- enableval=no
-- with_warnings=no
-+ case $ac_pt_PKG_CONFIG in
-+ [\\/]* | ?:[\\/]*)
-+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ if $as_executable_p "$ac_dir/$ac_word"; then
-+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
-+ echo "$as_me:4097: found $ac_dir/$ac_word" >&5
-+ break
-+fi
-+done
-
--fi;
--echo "$as_me:3791: result: $with_warnings" >&5
--echo "${ECHO_T}$with_warnings" >&6
--if test "$with_warnings" = "yes"
--then
-+ test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none"
-+ ;;
-+esac
-+fi
-+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-
--if test "$GCC" = yes
--then
--cat > conftest.i <<EOF
--#ifndef GCC_PRINTF
--#define GCC_PRINTF 0
--#endif
--#ifndef GCC_SCANF
--#define GCC_SCANF 0
--#endif
--#ifndef GCC_NORETURN
--#define GCC_NORETURN /* nothing */
--#endif
--#ifndef GCC_UNUSED
--#define GCC_UNUSED /* nothing */
--#endif
--EOF
--if test "$GCC" = yes
--then
-- { echo "$as_me:3814: checking for $CC __attribute__ directives..." >&5
--echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
--cat > conftest.$ac_ext <<EOF
--#line 3817 "${as_me:-configure}"
--#include "confdefs.h"
--#include "conftest.h"
--#include "conftest.i"
--#if GCC_PRINTF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--#else
--#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
--#endif
--#if GCC_SCANF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--#else
--#define GCC_SCANFLIKE(fmt,var) /*nothing*/
--#endif
--extern void wow(char *,...) GCC_SCANFLIKE(1,2);
--extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
--extern void foo(void) GCC_NORETURN;
--int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
--EOF
-- cf_printf_attribute=no
-- cf_scanf_attribute=no
-- for cf_attribute in scanf printf unused noreturn
-- do
-+if test -n "$ac_pt_PKG_CONFIG"; then
-+ echo "$as_me:4109: result: $ac_pt_PKG_CONFIG" >&5
-+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
-+else
-+ echo "$as_me:4112: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-
--cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+ PKG_CONFIG=$ac_pt_PKG_CONFIG
-+else
-+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
-+fi
-
-- cf_directive="__attribute__(($cf_attribute))"
-- echo "checking for $CC $cf_directive" 1>&5
-+ ;;
-+*)
-+ PKG_CONFIG=$withval
-+ ;;
-+esac
-
-- case $cf_attribute in #(vi
-- printf) #(vi
-- cf_printf_attribute=yes
-- cat >conftest.h <<EOF
--#define GCC_$cf_ATTRIBUTE 1
--EOF
-- ;;
-- scanf) #(vi
-- cf_scanf_attribute=yes
-- cat >conftest.h <<EOF
--#define GCC_$cf_ATTRIBUTE 1
--EOF
-- ;;
-- *) #(vi
-- cat >conftest.h <<EOF
--#define GCC_$cf_ATTRIBUTE $cf_directive
--EOF
-- ;;
-- esac
-+test -z "$PKG_CONFIG" && PKG_CONFIG=none
-+if test "$PKG_CONFIG" != none ; then
-
-- if { (eval echo "$as_me:3866: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:3869: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:3871: result: ... $cf_attribute" >&5
--echo "${ECHO_T}... $cf_attribute" >&6
-- cat conftest.h >>confdefs.h
-- case $cf_attribute in #(vi
-- printf) #(vi
-- if test "$cf_printf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
--EOF
-- fi
-- ;;
-- scanf) #(vi
-- if test "$cf_scanf_attribute" = no ; then
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) /* nothing */
--EOF
-- else
-- cat >>confdefs.h <<EOF
--#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
--EOF
-- fi
-- ;;
-- esac
-- fi
-- done
-+if test "x$prefix" != xNONE; then
-+ cf_path_syntax="$prefix"
- else
-- fgrep define conftest.i >>confdefs.h
-+ cf_path_syntax="$ac_default_prefix"
- fi
--rm -rf conftest*
-+
-+case ".$PKG_CONFIG" in #(vi
-+.\$\(*\)*|.\'*\'*) #(vi
-+ ;;
-+..|./*|.\\*) #(vi
-+ ;;
-+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-+ ;;
-+.\${*prefix}*|.\${*dir}*) #(vi
-+ eval PKG_CONFIG="$PKG_CONFIG"
-+ case ".$PKG_CONFIG" in #(vi
-+ .NONE/*)
-+ PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+ esac
-+ ;; #(vi
-+.no|.NONE/*)
-+ PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+*)
-+ { { echo "$as_me:4155: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
-+echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
-+ { (exit 1); exit 1; }; }
-+ ;;
-+esac
-+
- fi
-
--INTEL_COMPILER=no
-+echo "$as_me:4163: checking if you want to see long compiling messages" >&5
-+echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
-
--if test "$GCC" = yes ; then
-- case $host_os in
-- linux*|gnu*)
-- echo "$as_me:3911: checking if this is really Intel C compiler" >&5
--echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
-- cf_save_CFLAGS="$CFLAGS"
-- CFLAGS="$CFLAGS -no-gcc"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 3916 "configure"
--#include "confdefs.h"
-+# Check whether --enable-echo or --disable-echo was given.
-+if test "${enable_echo+set}" = set; then
-+ enableval="$enable_echo"
-+ test "$enableval" != no && enableval=yes
-+ if test "$enableval" != "yes" ; then
-
--int
--main ()
--{
-+ ECHO_LT='--silent'
-+ ECHO_LD='@echo linking $@;'
-+ RULE_CC='@echo compiling $<'
-+ SHOW_CC='@echo compiling $@'
-+ ECHO_CC='@'
-
--#ifdef __INTEL_COMPILER
--#else
--make an error
--#endif
-+ else
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:3933: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:3936: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:3939: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:3942: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- INTEL_COMPILER=yes
--cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-
-+ fi
- else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- CFLAGS="$cf_save_CFLAGS"
-- echo "$as_me:3953: result: $INTEL_COMPILER" >&5
--echo "${ECHO_T}$INTEL_COMPILER" >&6
-- ;;
-- esac
--fi
-+ enableval=yes
-
--cat > conftest.$ac_ext <<EOF
--#line 3960 "${as_me:-configure}"
--int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
--EOF
-+ ECHO_LT=''
-+ ECHO_LD=''
-+ RULE_CC=''
-+ SHOW_CC=''
-+ ECHO_CC=''
-
--if test "$INTEL_COMPILER" = yes
--then
--# The "-wdXXX" options suppress warnings:
--# remark #1419: external declaration in primary source file
--# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
--# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
--# remark #193: zero used for undefined preprocessing identifier
--# remark #593: variable "curs_sb_left_arrow" was set but never used
--# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
--# remark #869: parameter "tw" was never referenced
--# remark #981: operands are evaluated in unspecified order
--# warning #279: controlling expression is constant
-+fi;
-+echo "$as_me:4197: result: $enableval" >&5
-+echo "${ECHO_T}$enableval" >&6
-
-- { echo "$as_me:3977: checking for $CC warning options..." >&5
--echo "$as_me: checking for $CC warning options..." >&6;}
-- cf_save_CFLAGS="$CFLAGS"
-- EXTRA_CFLAGS="-Wall"
-- for cf_opt in \
-- wd1419 \
-- wd1683 \
-- wd1684 \
-- wd193 \
-- wd593 \
-- wd279 \
-- wd810 \
-- wd869 \
-- wd981
-- do
-- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-- if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:3996: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5
--echo "${ECHO_T}... -$cf_opt" >&6
-- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-- fi
-- done
-- CFLAGS="$cf_save_CFLAGS"
--
--elif test "$GCC" = yes
--then
-- { echo "$as_me:4007: checking for $CC warning options..." >&5
--echo "$as_me: checking for $CC warning options..." >&6;}
-- cf_save_CFLAGS="$CFLAGS"
-- EXTRA_CFLAGS=
-- cf_warn_CONST=""
-- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
-- for cf_opt in W Wall \
-- Wbad-function-cast \
-- Wcast-align \
-- Wcast-qual \
-- Winline \
-- Wmissing-declarations \
-- Wmissing-prototypes \
-- Wnested-externs \
-- Wpointer-arith \
-- Wshadow \
-- Wstrict-prototypes \
-- Wundef $cf_warn_CONST
-- do
-- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-- if { (eval echo "$as_me:4027: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:4030: \$? = $ac_status" >&5
-- (exit $ac_status); }; then
-- test -n "$verbose" && echo "$as_me:4032: result: ... -$cf_opt" >&5
--echo "${ECHO_T}... -$cf_opt" >&6
-- case $cf_opt in #(vi
-- Wcast-qual) #(vi
-- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
-- ;;
-- Winline) #(vi
-- case $GCC_VERSION in
-- [34].*)
-- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-+echo "$as_me:4200: checking for ncurses wrap-prefix" >&5
-+echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
-
--echo "${as_me:-configure}:4043: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+# Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
-+if test "${with_ncurses_wrap_prefix+set}" = set; then
-+ withval="$with_ncurses_wrap_prefix"
-+ NCURSES_WRAP_PREFIX=$withval
-+else
-+ NCURSES_WRAP_PREFIX=_nc_
-+fi;
-+echo "$as_me:4210: result: $NCURSES_WRAP_PREFIX" >&5
-+echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
-
-- continue;;
-- esac
-- ;;
-- esac
-- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-- fi
-- done
-- CFLAGS="$cf_save_CFLAGS"
--fi
--rm -rf conftest*
-+echo "$as_me:4213: checking if you want to check for wide-character functions" >&5
-+echo $ECHO_N "checking if you want to check for wide-character functions... $ECHO_C" >&6
-
--fi
--fi
-+# Check whether --enable-widec or --disable-widec was given.
-+if test "${enable_widec+set}" = set; then
-+ enableval="$enable_widec"
-+ test "$enableval" != no && enableval=yes
-+ if test "$enableval" != "yes" ; then
-+ cf_enable_widec=no
-+ else
-+ cf_enable_widec=yes
-+ fi
-+else
-+ enableval=yes
-+ cf_enable_widec=yes
-
--echo "$as_me:4059: checking if you want to use dmalloc for testing" >&5
--echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
-+fi;
-+echo "$as_me:4230: result: $cf_enable_widec" >&5
-+echo "${ECHO_T}$cf_enable_widec" >&6
-
--# Check whether --with-dmalloc or --without-dmalloc was given.
--if test "${with_dmalloc+set}" = set; then
-- withval="$with_dmalloc"
-- cat >>confdefs.h <<\EOF
--#define USE_DMALLOC 1
--EOF
-+echo "$as_me:4233: checking for specific curses-directory" >&5
-+echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
-
-- : ${with_cflags:=-g}
-- : ${with_no_leaks:=yes}
-- with_dmalloc=yes
-+# Check whether --with-curses-dir or --without-curses-dir was given.
-+if test "${with_curses_dir+set}" = set; then
-+ withval="$with_curses_dir"
-+ cf_cv_curses_dir=$withval
- else
-- with_dmalloc=
-+ cf_cv_curses_dir=no
- fi;
--echo "$as_me:4075: result: ${with_dmalloc:-no}" >&5
--echo "${ECHO_T}${with_dmalloc:-no}" >&6
-+echo "$as_me:4243: result: $cf_cv_curses_dir" >&5
-+echo "${ECHO_T}$cf_cv_curses_dir" >&6
-
--case .$with_cflags in #(vi
--.*-g*)
-- case .$CFLAGS in #(vi
-- .*-g*) #(vi
-- ;;
-- *)
-+if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-+then
-
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
-+if test "x$prefix" != xNONE; then
-+ cf_path_syntax="$prefix"
-+else
-+ cf_path_syntax="$ac_default_prefix"
-+fi
-
--for cf_add_cflags in -g
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+case ".$withval" in #(vi
-+.\$\(*\)*|.\'*\'*) #(vi
-+ ;;
-+..|./*|.\\*) #(vi
-+ ;;
-+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-+ ;;
-+.\${*prefix}*|.\${*dir}*) #(vi
-+ eval withval="$withval"
-+ case ".$withval" in #(vi
-+ .NONE/*)
-+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+ esac
-+ ;; #(vi
-+.no|.NONE/*)
-+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
-+ ;;
-+*)
-+ { { echo "$as_me:4274: error: expected a pathname, not \"$withval\"" >&5
-+echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
-+ { (exit 1); exit 1; }; }
-+ ;;
-+esac
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+ if test -d "$cf_cv_curses_dir"
-+ then
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-+if test -n "$cf_cv_curses_dir/include" ; then
-+ for cf_add_incdir in $cf_cv_curses_dir/include
-+ do
-+ while test $cf_add_incdir != /usr/include
-+ do
-+ if test -d $cf_add_incdir
-+ then
-+ cf_have_incdir=no
-+ if test -n "$CFLAGS$CPPFLAGS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-+ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-+ cf_have_incdir=yes; break
- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+ done
-+ fi
-
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ if test "$cf_have_incdir" = no ; then
-+ if test "$cf_add_incdir" = /usr/local/include ; then
-+ if test "$GCC" = yes
-+ then
-+ cf_save_CPPFLAGS=$CPPFLAGS
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 4307 "configure"
-+#include "confdefs.h"
-+#include <stdio.h>
-+int
-+main ()
-+{
-+printf("Hello")
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:4319: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4322: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:4325: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4328: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_have_incdir=yes
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS=$cf_save_CPPFLAGS
-+ fi
-+ fi
-+ fi
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+ if test "$cf_have_incdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
-+echo "${as_me:-configure}:4345: testing adding $cf_add_incdir to include-path ..." 1>&5
-
--if test -n "$cf_new_cflags" ; then
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-- CFLAGS="$CFLAGS $cf_new_cflags"
-+ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-+ test "$cf_top_incdir" = "$cf_add_incdir" && break
-+ cf_add_incdir="$cf_top_incdir"
-+ else
-+ break
-+ fi
-+ fi
-+ done
-+ done
- fi
-
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
-+if test -n "$cf_cv_curses_dir/lib" ; then
-+ for cf_add_libdir in $cf_cv_curses_dir/lib
-+ do
-+ if test $cf_add_libdir = /usr/lib ; then
-+ :
-+ elif test -d $cf_add_libdir
-+ then
-+ cf_have_libdir=no
-+ if test -n "$LDFLAGS$LIBS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_libdir in $LDFLAGS $LIBS ; do
-+ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-+ cf_have_libdir=yes; break
-+ fi
-+ done
-+ fi
-+ if test "$cf_have_libdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--if test -n "$cf_new_extra_cppflags" ; then
-+echo "${as_me:-configure}:4379: testing adding $cf_add_libdir to library-path ..." 1>&5
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-+ fi
-+ fi
-+ done
- fi
-
-- ;;
-- esac
-+ fi
-+fi
-+
-+cf_cv_screen=curses
-+
-+echo "$as_me:4392: checking for specified curses library type" >&5
-+echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6
-+
-+# Check whether --with-ncursesw or --without-ncursesw was given.
-+if test "${with_ncursesw+set}" = set; then
-+ withval="$with_ncursesw"
-+ cf_cv_screen=ncursesw
-+else
-+
-+# Check whether --with-ncurses or --without-ncurses was given.
-+if test "${with_ncurses+set}" = set; then
-+ withval="$with_ncurses"
-+ cf_cv_screen=ncurses
-+else
-+
-+# Check whether --with-pdcurses or --without-pdcurses was given.
-+if test "${with_pdcurses+set}" = set; then
-+ withval="$with_pdcurses"
-+ cf_cv_screen=pdcurses
-+else
-+
-+# Check whether --with-curses-colr or --without-curses-colr was given.
-+if test "${with_curses_colr+set}" = set; then
-+ withval="$with_curses_colr"
-+ cf_cv_screen=curses_colr
-+else
-+
-+# Check whether --with-curses-5lib or --without-curses-5lib was given.
-+if test "${with_curses_5lib+set}" = set; then
-+ withval="$with_curses_5lib"
-+ cf_cv_screen=curses_5lib
-+fi;
-+fi;
-+fi;
-+fi;
-+fi;
-+
-+echo "$as_me:4429: result: $cf_cv_screen" >&5
-+echo "${ECHO_T}$cf_cv_screen" >&6
-+
-+case $cf_cv_screen in #(vi
-+curses|curses_*) #(vi
-+
-+echo "$as_me:4435: checking for extra include directories" >&5
-+echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
-+if test "${cf_cv_curses_incdir+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cf_cv_curses_incdir=no
-+case $host_os in #(vi
-+hpux10.*) #(vi
-+ if test "x$cf_cv_screen" = "xcurses_colr"
-+ then
-+ test -d /usr/include/curses_colr && \
-+ cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+ fi
-+ ;;
-+sunos3*|sunos4*)
-+ if test "x$cf_cv_screen" = "xcurses_5lib"
-+ then
-+ test -d /usr/5lib && \
-+ test -d /usr/5include && \
-+ cf_cv_curses_incdir="-I/usr/5include"
-+ fi
- ;;
- esac
-
--if test "$with_dmalloc" = yes ; then
-- echo "$as_me:4169: checking for dmalloc.h" >&5
--echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
--if test "${ac_cv_header_dmalloc_h+set}" = set; then
-+fi
-+echo "$as_me:4461: result: $cf_cv_curses_incdir" >&5
-+echo "${ECHO_T}$cf_cv_curses_incdir" >&6
-+test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
-+
-+echo "$as_me:4465: checking if we have identified curses headers" >&5
-+echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_header+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cf_cv_ncurses_header=none
-+for cf_header in \
-+ ncurses.h \
-+ curses.h ncurses/ncurses.h ncurses/curses.h
-+do
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 4477 "configure"
-+#include "confdefs.h"
-+#include <${cf_header}>
-+int
-+main ()
-+{
-+initscr(); tgoto("?", 0,0)
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:4489: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4492: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:4495: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4498: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_ncurses_header=$cf_header; break
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-+
-+fi
-+echo "$as_me:4509: result: $cf_cv_ncurses_header" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_header" >&6
-+
-+if test "$cf_cv_ncurses_header" = none ; then
-+ { { echo "$as_me:4513: error: No curses header-files found" >&5
-+echo "$as_me: error: No curses header-files found" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
-+
-+for ac_header in $cf_cv_ncurses_header
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:4523: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 4175 "configure"
-+#line 4529 "configure"
- #include "confdefs.h"
--#include <dmalloc.h>
-+#include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:4179: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:4533: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
-- echo "$as_me:4185: \$? = $ac_status" >&5
-+ echo "$as_me:4539: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -4193,238 +4547,316 @@
- ac_cpp_err=yes
- fi
- if test -z "$ac_cpp_err"; then
-- ac_cv_header_dmalloc_h=yes
-+ eval "$as_ac_Header=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-- ac_cv_header_dmalloc_h=no
-+ eval "$as_ac_Header=no"
- fi
- rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:4204: result: $ac_cv_header_dmalloc_h" >&5
--echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
--if test $ac_cv_header_dmalloc_h = yes; then
-+echo "$as_me:4558: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-
--echo "$as_me:4208: checking for dmalloc_debug in -ldmalloc" >&5
--echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
--if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
-+fi
-+done
-+
-+echo "$as_me:4568: checking for terminfo header" >&5
-+echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
-+if test "${cf_cv_term_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-ldmalloc $LIBS"
-+
-+case ${cf_cv_ncurses_header} in #(vi
-+*/ncurses.h|*/ncursesw.h) #(vi
-+ cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
-+ ;;
-+*)
-+ cf_term_header=term.h
-+ ;;
-+esac
-+
-+for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
-+do
- cat >conftest.$ac_ext <<_ACEOF
--#line 4216 "configure"
-+#line 4586 "configure"
- #include "confdefs.h"
-+#include <stdio.h>
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <$cf_test>
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char dmalloc_debug ();
- int
- main ()
- {
--dmalloc_debug ();
-+int x = auto_left_margin
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4235: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:4601: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:4238: \$? = $ac_status" >&5
-+ echo "$as_me:4604: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:4241: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:4607: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4244: \$? = $ac_status" >&5
-+ echo "$as_me:4610: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_dmalloc_dmalloc_debug=yes
-+
-+ cf_cv_term_header="$cf_test"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_dmalloc_dmalloc_debug=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:4255: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
--echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
--if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
-- cat >>confdefs.h <<EOF
--#define HAVE_LIBDMALLOC 1
--EOF
-
-- LIBS="-ldmalloc $LIBS"
-+ cf_cv_term_header=unknown
-
- fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ test "$cf_cv_term_header" != unknown && break
-+done
-
- fi
-+echo "$as_me:4626: result: $cf_cv_term_header" >&5
-+echo "${ECHO_T}$cf_cv_term_header" >&6
-
--fi
-+# Set definitions to allow ifdef'ing to accommodate subdirectories
-
--echo "$as_me:4270: checking if you want to use dbmalloc for testing" >&5
--echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
-+case $cf_cv_term_header in # (vi
-+*term.h)
-
--# Check whether --with-dbmalloc or --without-dbmalloc was given.
--if test "${with_dbmalloc+set}" = set; then
-- withval="$with_dbmalloc"
-- cat >>confdefs.h <<\EOF
--#define USE_DBMALLOC 1
-+cat >>confdefs.h <<\EOF
-+#define HAVE_TERM_H 1
- EOF
-
-- : ${with_cflags:=-g}
-- : ${with_no_leaks:=yes}
-- with_dbmalloc=yes
--else
-- with_dbmalloc=
--fi;
--echo "$as_me:4286: result: ${with_dbmalloc:-no}" >&5
--echo "${ECHO_T}${with_dbmalloc:-no}" >&6
-+ ;;
-+esac
-
--case .$with_cflags in #(vi
--.*-g*)
-- case .$CFLAGS in #(vi
-- .*-g*) #(vi
-- ;;
-- *)
-+case $cf_cv_term_header in # (vi
-+ncurses/term.h) #(vi
-
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_TERM_H 1
-+EOF
-
--for cf_add_cflags in -g
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+ ;;
-+ncursesw/term.h)
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSESW_TERM_H 1
-+EOF
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+esac
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+echo "$as_me:4658: checking for ncurses version" >&5
-+echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_version+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
-+ cf_cv_ncurses_version=no
-+ cf_tempfile=out$$
-+ rm -f $cf_tempfile
-+ if test "$cross_compiling" = yes; then
-
--if test -n "$cf_new_cflags" ; then
-+ # This will not work if the preprocessor splits the line after the
-+ # Autoconf token. The 'unproto' program does that.
-+ cat > conftest.$ac_ext <<EOF
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#undef Autoconf
-+#ifdef NCURSES_VERSION
-+Autoconf NCURSES_VERSION
-+#else
-+#ifdef __NCURSES_H
-+Autoconf "old"
-+#endif
-+;
-+#endif
-+EOF
-+ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-+ { (eval echo "$as_me:4684: \"$cf_try\"") >&5
-+ (eval $cf_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4687: \$? = $ac_status" >&5
-+ (exit $ac_status); }
-+ if test -f conftest.out ; then
-+ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-+ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
-+ rm -f conftest.out
-+ fi
-
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 4697 "configure"
-+#include "confdefs.h"
-
--if test -n "$cf_new_cppflags" ; then
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <stdio.h>
-+int main()
-+{
-+ FILE *fp = fopen("$cf_tempfile", "w");
-+#ifdef NCURSES_VERSION
-+# ifdef NCURSES_VERSION_PATCH
-+ fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-+# else
-+ fprintf(fp, "%s\n", NCURSES_VERSION);
-+# endif
-+#else
-+# ifdef __NCURSES_H
-+ fprintf(fp, "old\n");
-+# else
-+ make an error
-+# endif
-+#endif
-+ ${cf_cv_main_return:-return}(0);
-+}
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:4722: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4725: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:4727: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4730: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+ cf_cv_ncurses_version=`cat $cf_tempfile`
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
- fi
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+ rm -f $cf_tempfile
-
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-+echo "$as_me:4744: result: $cf_cv_ncurses_version" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_version" >&6
-+test "$cf_cv_ncurses_version" = no ||
-+cat >>confdefs.h <<\EOF
-+#define NCURSES 1
-+EOF
-
-- ;;
-- esac
-- ;;
--esac
-+echo "$as_me:4751: checking if we have identified curses libraries" >&5
-+echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 4754 "configure"
-+#include "confdefs.h"
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+int
-+main ()
-+{
-+initscr(); tgoto("?", 0,0)
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:4766: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4769: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:4772: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4775: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_result=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_result=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+echo "$as_me:4784: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-
--if test "$with_dbmalloc" = yes ; then
-- echo "$as_me:4380: checking for dbmalloc.h" >&5
--echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
--if test "${ac_cv_header_dbmalloc_h+set}" = set; then
-+if test "$cf_result" = no ; then
-+case $host_os in #(vi
-+freebsd*) #(vi
-+ echo "$as_me:4790: checking for tgoto in -lmytinfo" >&5
-+echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
-+if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 4386 "configure"
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lmytinfo $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 4798 "configure"
- #include "confdefs.h"
--#include <dbmalloc.h>
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char tgoto ();
-+int
-+main ()
-+{
-+tgoto ();
-+ ;
-+ return 0;
-+}
- _ACEOF
--if { (eval echo "$as_me:4390: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:4817: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:4396: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- ac_cv_header_dbmalloc_h=yes
-+ echo "$as_me:4820: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:4823: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:4826: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_mytinfo_tgoto=yes
- else
- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- ac_cv_header_dbmalloc_h=no
-+cat conftest.$ac_ext >&5
-+ac_cv_lib_mytinfo_tgoto=no
- fi
--rm -f conftest.err conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:4837: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
-+if test $ac_cv_lib_mytinfo_tgoto = yes; then
-+ LIBS="-lmytinfo $LIBS"
- fi
--echo "$as_me:4415: result: $ac_cv_header_dbmalloc_h" >&5
--echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
--if test $ac_cv_header_dbmalloc_h = yes; then
-
--echo "$as_me:4419: checking for debug_malloc in -ldbmalloc" >&5
--echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
--if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
-+ ;;
-+hpux10.*) #(vi
-+ # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
-+ # next (1998), and xcurses "newer" (2000). There is no header file for
-+ # Hcurses; the subdirectory curses_colr has the headers (curses.h and
-+ # term.h) for cur_colr
-+ if test "x$cf_cv_screen" = "xcurses_colr"
-+ then
-+ echo "$as_me:4851: checking for initscr in -lcur_colr" >&5
-+echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
-+if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-ldbmalloc $LIBS"
-+LIBS="-lcur_colr $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4427 "configure"
-+#line 4859 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -4433,313 +4865,115 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char debug_malloc ();
-+char initscr ();
- int
- main ()
- {
--debug_malloc ();
-+initscr ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:4878: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4449: \$? = $ac_status" >&5
-+ echo "$as_me:4881: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:4452: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:4884: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4455: \$? = $ac_status" >&5
-+ echo "$as_me:4887: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_dbmalloc_debug_malloc=yes
-+ ac_cv_lib_cur_colr_initscr=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_dbmalloc_debug_malloc=no
-+ac_cv_lib_cur_colr_initscr=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:4466: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
--echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
--if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
-- cat >>confdefs.h <<EOF
--#define HAVE_LIBDBMALLOC 1
--EOF
--
-- LIBS="-ldbmalloc $LIBS"
-+echo "$as_me:4898: result: $ac_cv_lib_cur_colr_initscr" >&5
-+echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
-+if test $ac_cv_lib_cur_colr_initscr = yes; then
-
--fi
-+ LIBS="-lcur_colr $LIBS"
-+ ac_cv_func_initscr=yes
-
--fi
-+else
-
--fi
-+ echo "$as_me:4907: checking for initscr in -lHcurses" >&5
-+echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
-+if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lHcurses $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 4915 "configure"
-+#include "confdefs.h"
-
--echo "$as_me:4481: checking if you want to use valgrind for testing" >&5
--echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
--
--# Check whether --with-valgrind or --without-valgrind was given.
--if test "${with_valgrind+set}" = set; then
-- withval="$with_valgrind"
-- cat >>confdefs.h <<\EOF
--#define USE_VALGRIND 1
--EOF
--
-- : ${with_cflags:=-g}
-- : ${with_no_leaks:=yes}
-- with_valgrind=yes
--else
-- with_valgrind=
--fi;
--echo "$as_me:4497: result: ${with_valgrind:-no}" >&5
--echo "${ECHO_T}${with_valgrind:-no}" >&6
--
--case .$with_cflags in #(vi
--.*-g*)
-- case .$CFLAGS in #(vi
-- .*-g*) #(vi
-- ;;
-- *)
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in -g
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
-- ;;
-- esac
-- ;;
--esac
--
--echo "$as_me:4590: checking if you want to perform memory-leak testing" >&5
--echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
--
--# Check whether --enable-leaks or --disable-leaks was given.
--if test "${enable_leaks+set}" = set; then
-- enableval="$enable_leaks"
-- if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
--else
-- : ${with_no_leaks:=no}
--fi;
--echo "$as_me:4600: result: $with_no_leaks" >&5
--echo "${ECHO_T}$with_no_leaks" >&6
--
--if test "$with_no_leaks" = yes ; then
-- cat >>confdefs.h <<\EOF
--#define NO_LEAKS 1
--EOF
--
-- cat >>confdefs.h <<\EOF
--#define YY_NO_LEAKS 1
--EOF
--
--fi
--
--echo "$as_me:4614: checking for specific curses-directory" >&5
--echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
--
--# Check whether --with-curses-dir or --without-curses-dir was given.
--if test "${with_curses_dir+set}" = set; then
-- withval="$with_curses_dir"
-- cf_cv_curses_dir=$withval
--else
-- cf_cv_curses_dir=no
--fi;
--echo "$as_me:4624: result: $cf_cv_curses_dir" >&5
--echo "${ECHO_T}$cf_cv_curses_dir" >&6
--
--if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
--then
--
--if test "x$prefix" != xNONE; then
-- cf_path_syntax="$prefix"
--else
-- cf_path_syntax="$ac_default_prefix"
--fi
--
--case ".$withval" in #(vi
--.\$\(*\)*|.\'*\'*) #(vi
-- ;;
--..|./*|.\\*) #(vi
-- ;;
--.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-- ;;
--.\${*prefix}*) #(vi
-- eval withval="$withval"
-- case ".$withval" in #(vi
-- .NONE/*)
-- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
-- ;;
-- esac
-- ;; #(vi
--.no|.NONE/*)
-- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
-- ;;
--*)
-- { { echo "$as_me:4655: error: expected a pathname, not \"$withval\"" >&5
--echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
-- { (exit 1); exit 1; }; }
-- ;;
--esac
--
-- if test -d "$cf_cv_curses_dir"
-- then
--
--if test -n "$cf_cv_curses_dir/include" ; then
-- for cf_add_incdir in $cf_cv_curses_dir/include
-- do
-- while test $cf_add_incdir != /usr/include
-- do
-- if test -d $cf_add_incdir
-- then
-- cf_have_incdir=no
-- if test -n "$CFLAGS$CPPFLAGS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-- cf_have_incdir=yes; break
-- fi
-- done
-- fi
--
-- if test "$cf_have_incdir" = no ; then
-- if test "$cf_add_incdir" = /usr/local/include ; then
-- if test "$GCC" = yes
-- then
-- cf_save_CPPFLAGS=$CPPFLAGS
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 4688 "configure"
--#include "confdefs.h"
--#include <stdio.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char initscr ();
- int
- main ()
- {
--printf("Hello")
-+initscr ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4700: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:4934: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4703: \$? = $ac_status" >&5
-+ echo "$as_me:4937: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4706: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:4940: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4709: \$? = $ac_status" >&5
-+ echo "$as_me:4943: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ ac_cv_lib_Hcurses_initscr=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_have_incdir=yes
-+ac_cv_lib_Hcurses_initscr=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS=$cf_save_CPPFLAGS
-- fi
-- fi
-- fi
--
-- if test "$cf_have_incdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:4954: result: $ac_cv_lib_Hcurses_initscr" >&5
-+echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
-+if test $ac_cv_lib_Hcurses_initscr = yes; then
-
--echo "${as_me:-configure}:4726: testing adding $cf_add_incdir to include-path ..." 1>&5
-+ # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-+ LIBS="-lHcurses $LIBS"
-+ CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
-+ ac_cv_func_initscr=yes
-
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-+fi
-
-- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-- test "$cf_top_incdir" = "$cf_add_incdir" && break
-- cf_add_incdir="$cf_top_incdir"
-- else
-- break
-- fi
-- fi
-- done
-- done
- fi
-
--if test -n "$cf_cv_curses_dir/lib" ; then
-- for cf_add_libdir in $cf_cv_curses_dir/lib
-+ fi
-+ ;;
-+linux*)
-+ case `arch 2>/dev/null` in
-+ x86_64)
-+ if test -d /lib64
-+ then
-+
-+if test -n "/lib64" ; then
-+ for cf_add_libdir in /lib64
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
-@@ -4757,7 +4991,7 @@
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--echo "${as_me:-configure}:4760: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "${as_me:-configure}:4994: testing adding $cf_add_libdir to library-path ..." 1>&5
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
-@@ -4765,370 +4999,339 @@
- done
- fi
-
-- fi
--fi
-+ else
-
--# Check whether --with-5lib or --without-5lib was given.
--if test "${with_5lib+set}" = set; then
-- withval="$with_5lib"
-- LIBS="-L/usr/5lib $LIBS"
-- CPPFLAGS="$CPPFLAGS -I/usr/5include"
--fi;
-+if test -n "/lib" ; then
-+ for cf_add_libdir in /lib
-+ do
-+ if test $cf_add_libdir = /usr/lib ; then
-+ :
-+ elif test -d $cf_add_libdir
-+ then
-+ cf_have_libdir=no
-+ if test -n "$LDFLAGS$LIBS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_libdir in $LDFLAGS $LIBS ; do
-+ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-+ cf_have_libdir=yes; break
-+ fi
-+ done
-+ fi
-+ if test "$cf_have_libdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--# Check whether --with-ncursesw or --without-ncursesw was given.
--if test "${with_ncursesw+set}" = set; then
-- withval="$with_ncursesw"
-- cf_cv_screen=ncursesw
--else
-+echo "${as_me:-configure}:5023: testing adding $cf_add_libdir to library-path ..." 1>&5
-
--# Check whether --with-ncurses or --without-ncurses was given.
--if test "${with_ncurses+set}" = set; then
-- withval="$with_ncurses"
-- cf_cv_screen=ncurses
--else
-+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-+ fi
-+ fi
-+ done
-+fi
-
--# Check whether --with-pdcurses or --without-pdcurses was given.
--if test "${with_pdcurses+set}" = set; then
-- withval="$with_pdcurses"
-- cf_cv_screen=pdcurses
--fi;
--fi;
--fi;
-+ fi
-+ ;;
-+ *)
-
--case $cf_cv_screen in
--curses)
-+if test -n "/lib" ; then
-+ for cf_add_libdir in /lib
-+ do
-+ if test $cf_add_libdir = /usr/lib ; then
-+ :
-+ elif test -d $cf_add_libdir
-+ then
-+ cf_have_libdir=no
-+ if test -n "$LDFLAGS$LIBS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_libdir in $LDFLAGS $LIBS ; do
-+ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-+ cf_have_libdir=yes; break
-+ fi
-+ done
-+ fi
-+ if test "$cf_have_libdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--echo "$as_me:4801: checking for extra include directories" >&5
--echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
--if test "${cf_cv_curses_incdir+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+echo "${as_me:-configure}:5054: testing adding $cf_add_libdir to library-path ..." 1>&5
-
--cf_cv_curses_incdir=no
--case $host_os in #(vi
--hpux10.*) #(vi
-- test -d /usr/include/curses_colr && \
-- cf_cv_curses_incdir="-I/usr/include/curses_colr"
-+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-+ fi
-+ fi
-+ done
-+fi
-+
-+ ;;
-+ esac
- ;;
- sunos3*|sunos4*)
-- test -d /usr/5lib && \
-- test -d /usr/5include && \
-- cf_cv_curses_incdir="-I/usr/5include"
-- ;;
--esac
-+ if test "x$cf_cv_screen" = "xcurses_5lib"
-+ then
-+ if test -d /usr/5lib ; then
-+
-+if test -n "/usr/5lib" ; then
-+ for cf_add_libdir in /usr/5lib
-+ do
-+ if test $cf_add_libdir = /usr/lib ; then
-+ :
-+ elif test -d $cf_add_libdir
-+ then
-+ cf_have_libdir=no
-+ if test -n "$LDFLAGS$LIBS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_libdir in $LDFLAGS $LIBS ; do
-+ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-+ cf_have_libdir=yes; break
-+ fi
-+ done
-+ fi
-+ if test "$cf_have_libdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
-+echo "${as_me:-configure}:5089: testing adding $cf_add_libdir to library-path ..." 1>&5
-+
-+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-+ fi
-+ fi
-+ done
- fi
--echo "$as_me:4821: result: $cf_cv_curses_incdir" >&5
--echo "${ECHO_T}$cf_cv_curses_incdir" >&6
--test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
-
--echo "$as_me:4825: checking if we have identified curses headers" >&5
--echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
--if test "${cf_cv_ncurses_header+set}" = set; then
-+ LIBS="-lcurses -ltermcap $LIBS"
-+ fi
-+ fi
-+ ac_cv_func_initscr=yes
-+ ;;
-+esac
-+
-+if test ".$ac_cv_func_initscr" != .yes ; then
-+ cf_save_LIBS="$LIBS"
-+
-+ if test ".${cf_cv_ncurses_version:-no}" != .no
-+ then
-+ cf_check_list="ncurses curses cursesX"
-+ else
-+ cf_check_list="cursesX curses ncurses"
-+ fi
-+
-+ # Check for library containing tgoto. Do this before curses library
-+ # because it may be needed to link the test-case for initscr.
-+ if test "x$cf_term_lib" = x
-+ then
-+ echo "$as_me:5118: checking for tgoto" >&5
-+echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
-+if test "${ac_cv_func_tgoto+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
--
--cf_cv_ncurses_header=none
--for cf_header in \
-- curses.h \
-- ncurses.h ncurses/curses.h ncurses/ncurses.h
--do
--cat >conftest.$ac_ext <<_ACEOF
--#line 4837 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5124 "configure"
- #include "confdefs.h"
--#include <${cf_header}>
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char tgoto (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char tgoto ();
-+char (*f) ();
-+
- int
- main ()
- {
--initscr(); tgoto("?", 0,0)
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_tgoto) || defined (__stub___tgoto)
-+choke me
-+#else
-+f = tgoto; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4849: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:5155: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4852: \$? = $ac_status" >&5
-+ echo "$as_me:5158: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4855: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:5161: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4858: \$? = $ac_status" >&5
-+ echo "$as_me:5164: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ncurses_header=$cf_header; break
-+ ac_cv_func_tgoto=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+ac_cv_func_tgoto=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--done
--
--fi
--echo "$as_me:4869: result: $cf_cv_ncurses_header" >&5
--echo "${ECHO_T}$cf_cv_ncurses_header" >&6
--
--if test "$cf_cv_ncurses_header" = none ; then
-- { { echo "$as_me:4873: error: No curses header-files found" >&5
--echo "$as_me: error: No curses header-files found" >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
--
--for ac_header in $cf_cv_ncurses_header
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:4883: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 4889 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:4893: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:4899: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--if test -z "$ac_cpp_err"; then
-- eval "$as_ac_Header=yes"
-+echo "$as_me:5174: result: $ac_cv_func_tgoto" >&5
-+echo "${ECHO_T}$ac_cv_func_tgoto" >&6
-+if test $ac_cv_func_tgoto = yes; then
-+ cf_term_lib=predefined
- else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:4918: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
--
--fi
--done
-
--echo "$as_me:4928: checking for terminfo header" >&5
--echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
--if test "${cf_cv_term_header+set}" = set; then
-+ for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
-+ do
-+ as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
-+echo "$as_me:5183: checking for tgoto in -l$cf_term_lib" >&5
-+echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
--
--case ${cf_cv_ncurses_header} in #(vi
--*/ncurses.h|*/ncursesw.h) #(vi
-- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
-- ;;
--*)
-- cf_term_header=term.h
-- ;;
--esac
--
--for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
--do
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-l$cf_term_lib $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 4946 "configure"
-+#line 5191 "configure"
- #include "confdefs.h"
--#include <stdio.h>
--#include <${cf_cv_ncurses_header:-curses.h}>
--#include <$cf_test>
-
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char tgoto ();
- int
- main ()
- {
--int x = auto_left_margin
-+tgoto ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:4961: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:5210: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:4964: \$? = $ac_status" >&5
-+ echo "$as_me:5213: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:4967: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:5216: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:4970: \$? = $ac_status" >&5
-+ echo "$as_me:5219: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
--
-- cf_cv_term_header="$cf_test"
-+ eval "$as_ac_Lib=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--
-- cf_cv_term_header=unknown
--
-+eval "$as_ac_Lib=no"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- test "$cf_cv_term_header" != unknown && break
--done
--
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:5230: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-+ break
- fi
--echo "$as_me:4986: result: $cf_cv_term_header" >&5
--echo "${ECHO_T}$cf_cv_term_header" >&6
--
--# Set definitions to allow ifdef'ing to accommodate subdirectories
--
--case $cf_cv_term_header in # (vi
--*term.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_TERM_H 1
--EOF
--
-- ;;
--esac
--
--case $cf_cv_term_header in # (vi
--ncurses/term.h) #(vi
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSES_TERM_H 1
--EOF
--
-- ;;
--ncursesw/term.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSESW_TERM_H 1
--EOF
--
-- ;;
--esac
-
--echo "$as_me:5015: checking for ncurses version" >&5
--echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
--if test "${cf_cv_ncurses_version+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+ done
-
-- cf_cv_ncurses_version=no
-- cf_tempfile=out$$
-- rm -f $cf_tempfile
-- if test "$cross_compiling" = yes; then
-+fi
-
-- # This will not work if the preprocessor splits the line after the
-- # Autoconf token. The 'unproto' program does that.
-- cat > conftest.$ac_ext <<EOF
--#include <${cf_cv_ncurses_header:-curses.h}>
--#undef Autoconf
--#ifdef NCURSES_VERSION
--Autoconf NCURSES_VERSION
--#else
--#ifdef __NCURSES_H
--Autoconf "old"
--#endif
--;
--#endif
--EOF
-- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-- { (eval echo "$as_me:5041: \"$cf_try\"") >&5
-- (eval $cf_try) 2>&5
-- ac_status=$?
-- echo "$as_me:5044: \$? = $ac_status" >&5
-- (exit $ac_status); }
-- if test -f conftest.out ; then
-- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
-- rm -f conftest.out
- fi
-
-+ # Check for library containing initscr
-+ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-+ if test "x$cf_curs_lib" = x
-+ then
-+ for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
-+ do
-+ as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh`
-+echo "$as_me:5249: checking for initscr in -l$cf_curs_lib" >&5
-+echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 5054 "configure"
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-l$cf_curs_lib $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 5257 "configure"
- #include "confdefs.h"
-
--#include <${cf_cv_ncurses_header:-curses.h}>
--#include <stdio.h>
--int main()
--{
-- FILE *fp = fopen("$cf_tempfile", "w");
--#ifdef NCURSES_VERSION
--# ifdef NCURSES_VERSION_PATCH
-- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
--# else
-- fprintf(fp, "%s\n", NCURSES_VERSION);
--# endif
--#else
--# ifdef __NCURSES_H
-- fprintf(fp, "old\n");
--# else
-- make an error
--# endif
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
- #endif
-- ${cf_cv_main_return:-return}(0);
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char initscr ();
-+int
-+main ()
-+{
-+initscr ();
-+ ;
-+ return 0;
- }
- _ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:5079: \"$ac_link\"") >&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:5276: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5082: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:5084: \"$ac_try\"") >&5
-+ echo "$as_me:5279: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:5282: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5087: \$? = $ac_status" >&5
-+ echo "$as_me:5285: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
--
-- cf_cv_ncurses_version=`cat $cf_tempfile`
-+ eval "$as_ac_Lib=yes"
- else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+ echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+eval "$as_ac_Lib=no"
- fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
- fi
-- rm -f $cf_tempfile
--
-+echo "$as_me:5296: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-+ break
- fi
--echo "$as_me:5101: result: $cf_cv_ncurses_version" >&5
--echo "${ECHO_T}$cf_cv_ncurses_version" >&6
--test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
--#define NCURSES 1
--EOF
-
--echo "$as_me:5107: checking if we have identified curses libraries" >&5
--echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line 5110 "configure"
-+ done
-+ fi
-+ test $cf_curs_lib = unknown && { { echo "$as_me:5304: error: no curses library found" >&5
-+echo "$as_me: error: no curses library found" >&2;}
-+ { (exit 1); exit 1; }; }
-+
-+ LIBS="-l$cf_curs_lib $cf_save_LIBS"
-+ if test "$cf_term_lib" = unknown ; then
-+ echo "$as_me:5310: checking if we can link with $cf_curs_lib library" >&5
-+echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5313 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--initscr(); tgoto("?", 0,0)
-+initscr()
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5122: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5325: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5125: \$? = $ac_status" >&5
-+ echo "$as_me:5328: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5128: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5331: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5131: \$? = $ac_status" >&5
-+ echo "$as_me:5334: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_result=yes
- else
-@@ -5137,919 +5340,720 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--echo "$as_me:5140: result: $cf_result" >&5
-+ echo "$as_me:5343: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
--
--if test "$cf_result" = no ; then
--case $host_os in #(vi
--freebsd*) #(vi
-- echo "$as_me:5146: checking for tgoto in -lmytinfo" >&5
--echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
--if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lmytinfo $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 5154 "configure"
-+ test $cf_result = no && { { echo "$as_me:5345: error: Cannot link curses library" >&5
-+echo "$as_me: error: Cannot link curses library" >&2;}
-+ { (exit 1); exit 1; }; }
-+ elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-+ :
-+ elif test "$cf_term_lib" != predefined ; then
-+ echo "$as_me:5351: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
-+echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5354 "configure"
- #include "confdefs.h"
--
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char tgoto ();
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--tgoto ();
-+initscr(); tgoto((char *)0, 0, 0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5173: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5366: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5176: \$? = $ac_status" >&5
-+ echo "$as_me:5369: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5179: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5372: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5182: \$? = $ac_status" >&5
-+ echo "$as_me:5375: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_mytinfo_tgoto=yes
-+ cf_result=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_mytinfo_tgoto=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:5193: result: $ac_cv_lib_mytinfo_tgoto" >&5
--echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
--if test $ac_cv_lib_mytinfo_tgoto = yes; then
-- LIBS="-lmytinfo $LIBS"
--fi
-
-- ;;
--hpux10.*) #(vi
-- echo "$as_me:5201: checking for initscr in -lcur_colr" >&5
--echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
--if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lcur_colr $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 5209 "configure"
-+ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5384 "configure"
- #include "confdefs.h"
--
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char initscr ();
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--initscr ();
-+initscr()
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5228: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:5396: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:5231: \$? = $ac_status" >&5
-+ echo "$as_me:5399: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5234: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5402: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5237: \$? = $ac_status" >&5
-+ echo "$as_me:5405: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_cur_colr_initscr=yes
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_cur_colr_initscr=no
-+cf_result=error
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
-+
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ echo "$as_me:5417: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ fi
-+fi
- fi
--echo "$as_me:5248: result: $ac_cv_lib_cur_colr_initscr" >&5
--echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
--if test $ac_cv_lib_cur_colr_initscr = yes; then
-
-- LIBS="-lcur_colr $LIBS"
-- ac_cv_func_initscr=yes
-+ ;;
-+ncurses) #(vi
-
--else
-+cf_ncuconfig_root=ncurses
-
-- echo "$as_me:5257: checking for initscr in -lHcurses" >&5
--echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
--if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
-+echo "Looking for ${cf_ncuconfig_root}-config"
-+
-+if test -n "$ac_tool_prefix"; then
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:5435: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lHcurses $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 5265 "configure"
--#include "confdefs.h"
-+ if test -n "$NCURSES_CONFIG"; then
-+ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-+echo "$as_me:5450: found $ac_dir/$ac_word" >&5
-+break
-+done
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char initscr ();
--int
--main ()
--{
--initscr ();
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5284: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:5287: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5290: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:5293: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_lib_Hcurses_initscr=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_lib_Hcurses_initscr=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:5304: result: $ac_cv_lib_Hcurses_initscr" >&5
--echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
--if test $ac_cv_lib_Hcurses_initscr = yes; then
--
-- # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-- LIBS="-lHcurses $LIBS"
-- CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
-- ac_cv_func_initscr=yes
--
- fi
--
-+NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
-+if test -n "$NCURSES_CONFIG"; then
-+ echo "$as_me:5458: result: $NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$NCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:5461: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
-- ;;
--linux*)
-- case `arch 2>/dev/null` in
-- x86_64)
-- if test -d /lib64
-- then
--
--if test -n "/lib64" ; then
-- for cf_add_libdir in /lib64
-- do
-- if test $cf_add_libdir = /usr/lib ; then
-- :
-- elif test -d $cf_add_libdir
-- then
-- cf_have_libdir=no
-- if test -n "$LDFLAGS$LIBS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_libdir in $LDFLAGS $LIBS ; do
-- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-- cf_have_libdir=yes; break
-- fi
-- done
-- fi
-- if test "$cf_have_libdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
--
--echo "${as_me:-configure}:5343: testing adding $cf_add_libdir to library-path ..." 1>&5
--
-- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-- fi
-- fi
-+ test -n "$NCURSES_CONFIG" && break
- done
- fi
-+if test -z "$NCURSES_CONFIG"; then
-+ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:5474: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-+echo "$as_me:5489: found $ac_dir/$ac_word" >&5
-+break
-+done
-
-- else
--
--if test -n "/lib" ; then
-- for cf_add_libdir in /lib
-- do
-- if test $cf_add_libdir = /usr/lib ; then
-- :
-- elif test -d $cf_add_libdir
-- then
-- cf_have_libdir=no
-- if test -n "$LDFLAGS$LIBS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_libdir in $LDFLAGS $LIBS ; do
-- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-- cf_have_libdir=yes; break
-- fi
-- done
-- fi
-- if test "$cf_have_libdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
--
--echo "${as_me:-configure}:5372: testing adding $cf_add_libdir to library-path ..." 1>&5
--
-- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-- fi
-- fi
-- done
- fi
--
-- fi
-- ;;
-- *)
--
--if test -n "/lib" ; then
-- for cf_add_libdir in /lib
-- do
-- if test $cf_add_libdir = /usr/lib ; then
-- :
-- elif test -d $cf_add_libdir
-- then
-- cf_have_libdir=no
-- if test -n "$LDFLAGS$LIBS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_libdir in $LDFLAGS $LIBS ; do
-- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-- cf_have_libdir=yes; break
-- fi
-- done
-- fi
-- if test "$cf_have_libdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
--
--echo "${as_me:-configure}:5403: testing adding $cf_add_libdir to library-path ..." 1>&5
--
-- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-- fi
-- fi
-- done
-+fi
-+ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
-+if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ echo "$as_me:5497: result: $ac_ct_NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:5500: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
-- ;;
-- esac
-- ;;
--sunos3*|sunos4*)
-- if test -d /usr/5lib ; then
--
--if test -n "/usr/5lib" ; then
-- for cf_add_libdir in /usr/5lib
-- do
-- if test $cf_add_libdir = /usr/lib ; then
-- :
-- elif test -d $cf_add_libdir
-- then
-- cf_have_libdir=no
-- if test -n "$LDFLAGS$LIBS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_libdir in $LDFLAGS $LIBS ; do
-- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-- cf_have_libdir=yes; break
-- fi
-- done
-- fi
-- if test "$cf_have_libdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
--
--echo "${as_me:-configure}:5436: testing adding $cf_add_libdir to library-path ..." 1>&5
-+ test -n "$ac_ct_NCURSES_CONFIG" && break
-+done
-+test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
-
-- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-- fi
-- fi
-- done
-+ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
- fi
-
-- LIBS="-lcurses -ltermcap $LIBS"
-- fi
-- ac_cv_func_initscr=yes
-- ;;
--esac
-+if test "$NCURSES_CONFIG" != none ; then
-
--if test ".$ac_cv_func_initscr" != .yes ; then
-- cf_save_LIBS="$LIBS"
-- cf_term_lib=""
-- cf_curs_lib=""
-+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
-+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
-
-- if test ".${cf_cv_ncurses_version:-no}" != .no
-- then
-- cf_check_list="ncurses curses cursesX"
-- else
-- cf_check_list="cursesX curses ncurses"
-- fi
-+# even with config script, some packages use no-override for curses.h
-
-- # Check for library containing tgoto. Do this before curses library
-- # because it may be needed to link the test-case for initscr.
-- echo "$as_me:5464: checking for tgoto" >&5
--echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
--if test "${ac_cv_func_tgoto+set}" = set; then
-+echo "$as_me:5518: checking if we have identified curses headers" >&5
-+echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 5470 "configure"
--#include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char tgoto (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char tgoto ();
--char (*f) ();
-
-+cf_cv_ncurses_header=none
-+for cf_header in \
-+ ncurses/ncurses.h \
-+ ncurses/curses.h \
-+ ncurses.h \
-+ curses.h
-+do
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 5532 "configure"
-+#include "confdefs.h"
-+#include <${cf_header}>
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_tgoto) || defined (__stub___tgoto)
--choke me
--#else
--f = tgoto;
--#endif
--
-+initscr(); tgoto("?", 0,0)
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5501: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:5544: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5504: \$? = $ac_status" >&5
-+ echo "$as_me:5547: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5507: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:5550: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5510: \$? = $ac_status" >&5
-+ echo "$as_me:5553: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_func_tgoto=yes
-+ cf_cv_ncurses_header=$cf_header; break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_func_tgoto=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-+
- fi
--echo "$as_me:5520: result: $ac_cv_func_tgoto" >&5
--echo "${ECHO_T}$ac_cv_func_tgoto" >&6
--if test $ac_cv_func_tgoto = yes; then
-- cf_term_lib=predefined
--else
-+echo "$as_me:5564: result: $cf_cv_ncurses_header" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_header" >&6
-
-- for cf_term_lib in $cf_check_list termcap termlib unknown
-- do
-- as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
--echo "$as_me:5529: checking for tgoto in -l$cf_term_lib" >&5
--echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+if test "$cf_cv_ncurses_header" = none ; then
-+ { { echo "$as_me:5568: error: No curses header-files found" >&5
-+echo "$as_me: error: No curses header-files found" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
-+
-+for ac_header in $cf_cv_ncurses_header
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:5578: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-l$cf_term_lib $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 5537 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5584 "configure"
- #include "confdefs.h"
--
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char tgoto ();
--int
--main ()
--{
--tgoto ();
-- ;
-- return 0;
--}
-+#include <$ac_header>
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5556: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:5559: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5562: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+if { (eval echo "$as_me:5588: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
-- echo "$as_me:5565: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- eval "$as_ac_Lib=yes"
-+ egrep -v '^ *\+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:5594: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
- else
- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--eval "$as_ac_Lib=no"
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
-+rm -f conftest.err conftest.$ac_ext
- fi
--echo "$as_me:5576: result: `eval echo '${'$as_ac_Lib'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
--if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-- break
-+echo "$as_me:5613: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-+
- fi
-+done
-
-- done
-+cat >>confdefs.h <<\EOF
-+#define NCURSES 1
-+EOF
-
--fi
-+cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-- # Check for library containing initscr
-- test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-- for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
-- do
-- as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh`
--echo "$as_me:5591: checking for initscr in -l$cf_curs_lib" >&5
--echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-l$cf_curs_lib $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 5599 "configure"
--#include "confdefs.h"
-+cat >>confdefs.h <<EOF
-+#define $cf_nculib_ROOT 1
-+EOF
-+
-+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char initscr ();
--int
--main ()
--{
--initscr ();
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5618: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:5621: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5624: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:5627: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- eval "$as_ac_Lib=yes"
- else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--eval "$as_ac_Lib=no"
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:5638: result: `eval echo '${'$as_ac_Lib'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
--if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-- break
--fi
-
-- done
-- test $cf_curs_lib = unknown && { { echo "$as_me:5645: error: no curses library found" >&5
--echo "$as_me: error: no curses library found" >&2;}
-- { (exit 1); exit 1; }; }
-+cf_ncuhdr_root=ncurses
-
-- LIBS="-l$cf_curs_lib $cf_save_LIBS"
-- if test "$cf_term_lib" = unknown ; then
-- echo "$as_me:5651: checking if we can link with $cf_curs_lib library" >&5
--echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
-- cat >conftest.$ac_ext <<_ACEOF
--#line 5654 "configure"
--#include "confdefs.h"
--#include <${cf_cv_ncurses_header:-curses.h}>
--int
--main ()
--{
--initscr()
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5666: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:5669: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5672: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:5675: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_result=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- echo "$as_me:5684: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- test $cf_result = no && { { echo "$as_me:5686: error: Cannot link curses library" >&5
--echo "$as_me: error: Cannot link curses library" >&2;}
-- { (exit 1); exit 1; }; }
-- elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-- :
-- elif test "$cf_term_lib" != predefined ; then
-- echo "$as_me:5692: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
--echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
-- cat >conftest.$ac_ext <<_ACEOF
--#line 5695 "configure"
--#include "confdefs.h"
--#include <${cf_cv_ncurses_header:-curses.h}>
--int
--main ()
--{
--initscr(); tgoto((char *)0, 0, 0);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5707: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:5710: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5713: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:5716: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=no
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
-+test -n "$cf_cv_curses_dir" && \
-+test "$cf_cv_curses_dir" != "no" && { \
-
-- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 5725 "configure"
-+if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
-+ for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
-+ do
-+ while test $cf_add_incdir != /usr/include
-+ do
-+ if test -d $cf_add_incdir
-+ then
-+ cf_have_incdir=no
-+ if test -n "$CFLAGS$CPPFLAGS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-+ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-+ cf_have_incdir=yes; break
-+ fi
-+ done
-+ fi
-+
-+ if test "$cf_have_incdir" = no ; then
-+ if test "$cf_add_incdir" = /usr/local/include ; then
-+ if test "$GCC" = yes
-+ then
-+ cf_save_CPPFLAGS=$CPPFLAGS
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5666 "configure"
- #include "confdefs.h"
--#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <stdio.h>
- int
- main ()
- {
--initscr()
-+printf("Hello")
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:5737: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:5678: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5740: \$? = $ac_status" >&5
-+ echo "$as_me:5681: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:5743: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:5684: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5746: \$? = $ac_status" >&5
-+ echo "$as_me:5687: \$? = $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=error
-+cf_have_incdir=yes
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS=$cf_save_CPPFLAGS
-+ fi
-+ fi
-+ fi
-
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- echo "$as_me:5758: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- fi
--fi
-+ if test "$cf_have_incdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-+
-+echo "${as_me:-configure}:5704: testing adding $cf_add_incdir to include-path ..." 1>&5
-+
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-+
-+ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-+ test "$cf_top_incdir" = "$cf_add_incdir" && break
-+ cf_add_incdir="$cf_top_incdir"
-+ else
-+ break
-+ fi
-+ fi
-+ done
-+ done
- fi
-
--echo "$as_me:5764: checking for NetBSD form.h" >&5
--echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
--if test "${cf_cv_netbsd_form_h+set}" = set; then
-+}
-+
-+echo "$as_me:5721: checking for $cf_ncuhdr_root header in include-path" >&5
-+echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 5771 "configure"
--#include "confdefs.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
-
--#include <${cf_cv_ncurses_header:-curses.h}>
--#include <form.h>
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5733 "configure"
-+#include "confdefs.h"
-
-+#include <$cf_header>
- int
- main ()
- {
-
-- FORM *form;
-- int y = current_field(form)->cursor_ypos;
-- int x = current_field(form)->cursor_xpos;
-+#ifdef NCURSES_VERSION
-+
-+printf("%s\n", NCURSES_VERSION);
-+#else
-+#ifdef __NCURSES_H
-+printf("old\n");
-+#else
-+ make an error
-+#endif
-+#endif
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5790: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5757: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5793: \$? = $ac_status" >&5
-+ echo "$as_me:5760: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5796: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5763: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5799: \$? = $ac_status" >&5
-+ echo "$as_me:5766: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_netbsd_form_h=yes
-+ cf_cv_ncurses_h=$cf_header
-
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_netbsd_form_h=no
-+cf_cv_ncurses_h=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-
-+ test "$cf_cv_ncurses_h" != no && break
-+ done
-+
- fi
--echo "$as_me:5811: result: $cf_cv_netbsd_form_h" >&5
--echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
-+echo "$as_me:5781: result: $cf_cv_ncurses_h" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_h" >&6
-
--test "$cf_cv_netbsd_form_h" = yes && cat >>confdefs.h <<\EOF
--#define HAVE_NETBSD_FORM_H 1
--EOF
-+if test "$cf_cv_ncurses_h" != no ; then
-+ cf_cv_ncurses_header=$cf_cv_ncurses_h
-+else
-
--echo "$as_me:5818: checking for NetBSD menu.h" >&5
--echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
--if test "${cf_cv_netbsd_menu_h+set}" = set; then
-+echo "$as_me:5788: checking for $cf_ncuhdr_root include-path" >&5
-+echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_h2+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 5825 "configure"
--#include "confdefs.h"
-+ test -n "$verbose" && echo
-
--#include <${cf_cv_ncurses_header:-curses.h}>
--#include <menu.h>
-+cf_search=
-+
-+# collect the current set of include-directories from compiler flags
-+cf_header_path_list=""
-+if test -n "${CFLAGS}${CPPFLAGS}" ; then
-+ for cf_header_path in $CPPFLAGS $CFLAGS
-+ do
-+ case $cf_header_path in #(vi
-+ -I*)
-+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
-+
-+test "$cf_header_path" != "NONE" && \
-+test -d "$cf_header_path" && \
-+ {
-+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
-+ test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
-+ test -d $cf_header_path/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
-+ test -d $cf_header_path/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
-+ test -d $cf_header_path/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
-+ test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-+}
-+
-+ cf_header_path_list="$cf_header_path_list $cf_search"
-+ ;;
-+ esac
-+ done
-+fi
-+
-+# add the variations for the package we are looking for
-+
-+cf_search=
-+
-+test "/usr" != "$prefix" && \
-+test -d "/usr" && \
-+(test $prefix = NONE || test "/usr" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for include-directories under /usr"
-+ test -d /usr/include && cf_search="$cf_search /usr/include"
-+ test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
-+ test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
-+ test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
-+ test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-+}
-+
-+test "$prefix" != "NONE" && \
-+test -d "$prefix" && \
-+ {
-+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
-+ test -d $prefix/include && cf_search="$cf_search $prefix/include"
-+ test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
-+ test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
-+ test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
-+ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-+}
-+
-+test "/usr/local" != "$prefix" && \
-+test -d "/usr/local" && \
-+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
-+ test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
-+ test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
-+ test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
-+ test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
-+ test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-+}
-+
-+test "/opt" != "$prefix" && \
-+test -d "/opt" && \
-+(test $prefix = NONE || test "/opt" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for include-directories under /opt"
-+ test -d /opt/include && cf_search="$cf_search /opt/include"
-+ test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
-+ test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
-+ test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
-+ test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-+}
-+
-+test "$HOME" != "$prefix" && \
-+test -d "$HOME" && \
-+(test $prefix = NONE || test "$HOME" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for include-directories under $HOME"
-+ test -d $HOME/include && cf_search="$cf_search $HOME/include"
-+ test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
-+ test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
-+ test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
-+ test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-+}
-+
-+test "$includedir" != NONE && \
-+test "$includedir" != "/usr/include" && \
-+test -d "$includedir" && {
-+ test -d $includedir && cf_search="$cf_search $includedir"
-+ test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
-+}
-+
-+test "$oldincludedir" != NONE && \
-+test "$oldincludedir" != "/usr/include" && \
-+test -d "$oldincludedir" && {
-+ test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
-+ test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
-+}
-+
-+cf_search="$cf_search $cf_header_path_list"
-+
-+ test -n "$verbose" && echo search path $cf_search
-+ cf_save2_CPPFLAGS="$CPPFLAGS"
-+ for cf_incdir in $cf_search
-+ do
-
-+if test -n "$cf_incdir" ; then
-+ for cf_add_incdir in $cf_incdir
-+ do
-+ while test $cf_add_incdir != /usr/include
-+ do
-+ if test -d $cf_add_incdir
-+ then
-+ cf_have_incdir=no
-+ if test -n "$CFLAGS$CPPFLAGS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-+ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-+ cf_have_incdir=yes; break
-+ fi
-+ done
-+ fi
-+
-+ if test "$cf_have_incdir" = no ; then
-+ if test "$cf_add_incdir" = /usr/local/include ; then
-+ if test "$GCC" = yes
-+ then
-+ cf_save_CPPFLAGS=$CPPFLAGS
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5928 "configure"
-+#include "confdefs.h"
-+#include <stdio.h>
- int
- main ()
- {
--
-- MENU *menu;
-- int y = menu->max_item_width;
--
-+printf("Hello")
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5843: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:5940: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5846: \$? = $ac_status" >&5
-+ echo "$as_me:5943: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5849: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:5946: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5852: \$? = $ac_status" >&5
-+ echo "$as_me:5949: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_netbsd_menu_h=yes
--
-+ :
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_netbsd_menu_h=no
-+cf_have_incdir=yes
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS=$cf_save_CPPFLAGS
-+ fi
-+ fi
-+ fi
-
--fi
--echo "$as_me:5864: result: $cf_cv_netbsd_menu_h" >&5
--echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
--
--test "$cf_cv_netbsd_menu_h" = yes && cat >>confdefs.h <<\EOF
--#define HAVE_NETBSD_MENU_H 1
--EOF
--
-- ;;
--ncurses)
--
--cf_ncuconfig_root=ncurses
-+ if test "$cf_have_incdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "Looking for ${cf_ncuconfig_root}-config"
--for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
--do
-- # Extract the first word of "$ac_prog", so it can be a program name with args.
--set dummy $ac_prog; ac_word=$2
--echo "$as_me:5881: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- case $NCURSES_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:5898: found $ac_dir/$ac_word" >&5
-- break
--fi
--done
-+echo "${as_me:-configure}:5966: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-- ;;
--esac
--fi
--NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
--if test -n "$NCURSES_CONFIG"; then
-- echo "$as_me:5909: result: $NCURSES_CONFIG" >&5
--echo "${ECHO_T}$NCURSES_CONFIG" >&6
--else
-- echo "$as_me:5912: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-+ test "$cf_top_incdir" = "$cf_add_incdir" && break
-+ cf_add_incdir="$cf_top_incdir"
-+ else
-+ break
-+ fi
-+ fi
-+ done
-+ done
- fi
-
-- test -n "$NCURSES_CONFIG" && break
--done
--test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
--
--if test "$NCURSES_CONFIG" != none ; then
--
--CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
--LIBS="`$NCURSES_CONFIG --libs` $LIBS"
--
--# even with config script, some packages use no-override for curses.h
--
--echo "$as_me:5927: checking if we have identified curses headers" >&5
--echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
--if test "${cf_cv_ncurses_header+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+ for cf_header in \
-+ ncurses.h \
-+ curses.h
-+ do
-
--cf_cv_ncurses_header=none
--for cf_header in \
-- ncurses/curses.h \
-- ncurses/ncurses.h \
-- curses.h \
-- ncurses.h
--do
--cat >conftest.$ac_ext <<_ACEOF
--#line 5941 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 5987 "configure"
- #include "confdefs.h"
--#include <${cf_header}>
-+
-+#include <$cf_header>
- int
- main ()
- {
--initscr(); tgoto("?", 0,0)
-+
-+#ifdef NCURSES_VERSION
-+
-+printf("%s\n", NCURSES_VERSION);
-+#else
-+#ifdef __NCURSES_H
-+printf("old\n");
-+#else
-+ make an error
-+#endif
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:5953: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6011: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:5956: \$? = $ac_status" >&5
-+ echo "$as_me:6014: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:5959: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6017: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:5962: \$? = $ac_status" >&5
-+ echo "$as_me:6020: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ncurses_header=$cf_header; break
-+ cf_cv_ncurses_h2=$cf_header
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_cv_ncurses_h2=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--done
--
--fi
--echo "$as_me:5973: result: $cf_cv_ncurses_header" >&5
--echo "${ECHO_T}$cf_cv_ncurses_header" >&6
-
--if test "$cf_cv_ncurses_header" = none ; then
-- { { echo "$as_me:5977: error: No curses header-files found" >&5
--echo "$as_me: error: No curses header-files found" >&2;}
-+ if test "$cf_cv_ncurses_h2" != no ; then
-+ cf_cv_ncurses_h2=$cf_incdir/$cf_header
-+ test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
-+ break
-+ fi
-+ test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
-+ done
-+ CPPFLAGS="$cf_save2_CPPFLAGS"
-+ test "$cf_cv_ncurses_h2" != no && break
-+ done
-+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6041: error: not found" >&5
-+echo "$as_me: error: not found" >&2;}
- { (exit 1); exit 1; }; }
--fi
--
--# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
--
--for ac_header in $cf_cv_ncurses_header
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:5987: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 5993 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:5997: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:6003: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- eval "$as_ac_Header=yes"
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:6022: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
-
- fi
--done
--
--cat >>confdefs.h <<\EOF
--#define NCURSES 1
--EOF
--
--cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
--cat >>confdefs.h <<EOF
--#define $cf_nculib_ROOT 1
--EOF
--
--cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
--
--else
--
--cf_ncuhdr_root=ncurses
-+echo "$as_me:6046: result: $cf_cv_ncurses_h2" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
-
--test -n "$cf_cv_curses_dir" && \
--test "$cf_cv_curses_dir" != "no" && { \
-+ cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-+ cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
-+ if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
-+ cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
-+ fi
-
--if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
-- for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
-+if test -n "$cf_1st_incdir" ; then
-+ for cf_add_incdir in $cf_1st_incdir
- do
- while test $cf_add_incdir != /usr/include
- do
-@@ -6072,7 +6076,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6075 "configure"
-+#line 6079 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -6084,16 +6088,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6087: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6091: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6090: \$? = $ac_status" >&5
-+ echo "$as_me:6094: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6093: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6097: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6096: \$? = $ac_status" >&5
-+ echo "$as_me:6100: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -6110,7 +6114,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:6113: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:6117: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -6125,1586 +6129,1504 @@
- done
- fi
-
--}
-+fi
-
--echo "$as_me:6130: checking for $cf_ncuhdr_root header in include-path" >&5
--echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
--if test "${cf_cv_ncurses_h+set}" = set; then
-+# Set definitions to allow ifdef'ing for ncurses.h
-+
-+case $cf_cv_ncurses_header in # (vi
-+*ncurses.h)
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_H 1
-+EOF
-+
-+ ;;
-+esac
-+
-+case $cf_cv_ncurses_header in # (vi
-+ncurses/curses.h|ncurses/ncurses.h)
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_NCURSES_H 1
-+EOF
-+
-+ ;;
-+ncursesw/curses.h|ncursesw/ncurses.h)
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSESW_NCURSES_H 1
-+EOF
-+
-+ ;;
-+esac
-+
-+echo "$as_me:6163: checking for terminfo header" >&5
-+echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
-+if test "${cf_cv_term_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
-- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
-- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
-- for cf_header in $cf_header_list
-- do
-+case ${cf_cv_ncurses_header} in #(vi
-+*/ncurses.h|*/ncursesw.h) #(vi
-+ cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
-+ ;;
-+*)
-+ cf_term_header=term.h
-+ ;;
-+esac
-
-- cat >conftest.$ac_ext <<_ACEOF
--#line 6142 "configure"
-+for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
-+do
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 6181 "configure"
- #include "confdefs.h"
-+#include <stdio.h>
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <$cf_test>
-
--#include <$cf_header>
- int
- main ()
- {
--
--#ifdef NCURSES_VERSION
--
--printf("%s\n", NCURSES_VERSION);
--#else
--#ifdef __NCURSES_H
--printf("old\n");
--#else
-- make an error
--#endif
--#endif
--
-+int x = auto_left_margin
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6166: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:6196: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:6169: \$? = $ac_status" >&5
-+ echo "$as_me:6199: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6172: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6202: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6175: \$? = $ac_status" >&5
-+ echo "$as_me:6205: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ncurses_h=$cf_header
-
-+ cf_cv_term_header="$cf_test"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_ncurses_h=no
-+
-+ cf_cv_term_header=unknown
-+
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--
-- test "$cf_cv_ncurses_h" != no && break
-- done
-+ test "$cf_cv_term_header" != unknown && break
-+done
-
- fi
--echo "$as_me:6190: result: $cf_cv_ncurses_h" >&5
--echo "${ECHO_T}$cf_cv_ncurses_h" >&6
-+echo "$as_me:6221: result: $cf_cv_term_header" >&5
-+echo "${ECHO_T}$cf_cv_term_header" >&6
-
--if test "$cf_cv_ncurses_h" != no ; then
-- cf_cv_ncurses_header=$cf_cv_ncurses_h
--else
-+# Set definitions to allow ifdef'ing to accommodate subdirectories
-
--echo "$as_me:6197: checking for $cf_ncuhdr_root include-path" >&5
--echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
--if test "${cf_cv_ncurses_h2+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+case $cf_cv_term_header in # (vi
-+*term.h)
-
-- test -n "$verbose" && echo
-+cat >>confdefs.h <<\EOF
-+#define HAVE_TERM_H 1
-+EOF
-
--cf_search=
-+ ;;
-+esac
-
--# collect the current set of include-directories from compiler flags
--cf_header_path_list=""
--if test -n "${CFLAGS}${CPPFLAGS}" ; then
-- for cf_header_path in $CPPFLAGS $CFLAGS
-- do
-- case $cf_header_path in #(vi
-- -I*)
-- cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
-+case $cf_cv_term_header in # (vi
-+ncurses/term.h) #(vi
-
--test "$cf_header_path" != "NONE" && \
--test -d "$cf_header_path" && \
-- {
-- test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
-- test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
-- test -d $cf_header_path/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
-- test -d $cf_header_path/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
-- test -d $cf_header_path/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
-- test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
--}
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_TERM_H 1
-+EOF
-
-- cf_header_path_list="$cf_header_path_list $cf_search"
-- ;;
-- esac
-- done
--fi
-+ ;;
-+ncursesw/term.h)
-
--# add the variations for the package we are looking for
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSESW_TERM_H 1
-+EOF
-
--cf_search=
-+ ;;
-+esac
-
--test "/usr" != "$prefix" && \
--test -d "/usr" && \
--(test $prefix = NONE || test "/usr" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under /usr"
-- test -d /usr/include && cf_search="$cf_search /usr/include"
-- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
-- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
-- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
-- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
--}
-+# some applications need this, but should check for NCURSES_VERSION
-
--test "$prefix" != "NONE" && \
--test -d "$prefix" && \
-- {
-- test -n "$verbose" && echo " ... testing for include-directories under $prefix"
-- test -d $prefix/include && cf_search="$cf_search $prefix/include"
-- test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
-- test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
-- test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
-- test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
--}
-+cat >>confdefs.h <<\EOF
-+#define NCURSES 1
-+EOF
-
--test "/usr/local" != "$prefix" && \
--test -d "/usr/local" && \
--(test $prefix = NONE || test "/usr/local" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
-- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
-- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
-- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
-- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
-- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
--}
-+echo "$as_me:6259: checking for ncurses version" >&5
-+echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_version+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
--test "/opt" != "$prefix" && \
--test -d "/opt" && \
--(test $prefix = NONE || test "/opt" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under /opt"
-- test -d /opt/include && cf_search="$cf_search /opt/include"
-- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
-- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
-- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
-- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
--}
-+ cf_cv_ncurses_version=no
-+ cf_tempfile=out$$
-+ rm -f $cf_tempfile
-+ if test "$cross_compiling" = yes; then
-
--test "$HOME" != "$prefix" && \
--test -d "$HOME" && \
--(test $prefix = NONE || test "$HOME" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
-- test -d $HOME/include && cf_search="$cf_search $HOME/include"
-- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
-- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
-- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
-- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
--}
-+ # This will not work if the preprocessor splits the line after the
-+ # Autoconf token. The 'unproto' program does that.
-+ cat > conftest.$ac_ext <<EOF
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#undef Autoconf
-+#ifdef NCURSES_VERSION
-+Autoconf NCURSES_VERSION
-+#else
-+#ifdef __NCURSES_H
-+Autoconf "old"
-+#endif
-+;
-+#endif
-+EOF
-+ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-+ { (eval echo "$as_me:6285: \"$cf_try\"") >&5
-+ (eval $cf_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:6288: \$? = $ac_status" >&5
-+ (exit $ac_status); }
-+ if test -f conftest.out ; then
-+ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-+ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
-+ rm -f conftest.out
-+ fi
-
--test "$includedir" != NONE && \
--test "$includedir" != "/usr/include" && \
--test -d "$includedir" && {
-- test -d $includedir && cf_search="$cf_search $includedir"
-- test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
--}
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 6298 "configure"
-+#include "confdefs.h"
-
--test "$oldincludedir" != NONE && \
--test "$oldincludedir" != "/usr/include" && \
--test -d "$oldincludedir" && {
-- test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
-- test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <stdio.h>
-+int main()
-+{
-+ FILE *fp = fopen("$cf_tempfile", "w");
-+#ifdef NCURSES_VERSION
-+# ifdef NCURSES_VERSION_PATCH
-+ fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-+# else
-+ fprintf(fp, "%s\n", NCURSES_VERSION);
-+# endif
-+#else
-+# ifdef __NCURSES_H
-+ fprintf(fp, "old\n");
-+# else
-+ make an error
-+# endif
-+#endif
-+ ${cf_cv_main_return:-return}(0);
- }
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:6323: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:6326: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:6328: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:6331: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-
--cf_search="$cf_search $cf_header_path_list"
--
-- test -n "$verbose" && echo search path $cf_search
-- cf_save2_CPPFLAGS="$CPPFLAGS"
-- for cf_incdir in $cf_search
-- do
-+ cf_cv_ncurses_version=`cat $cf_tempfile`
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+fi
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+ rm -f $cf_tempfile
-
--if test -n "$cf_incdir" ; then
-- for cf_add_incdir in $cf_incdir
-- do
-- while test $cf_add_incdir != /usr/include
-- do
-- if test -d $cf_add_incdir
-- then
-- cf_have_incdir=no
-- if test -n "$CFLAGS$CPPFLAGS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-- cf_have_incdir=yes; break
-- fi
-- done
-- fi
-+fi
-+echo "$as_me:6345: result: $cf_cv_ncurses_version" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_version" >&6
-+test "$cf_cv_ncurses_version" = no ||
-+cat >>confdefs.h <<\EOF
-+#define NCURSES 1
-+EOF
-
-- if test "$cf_have_incdir" = no ; then
-- if test "$cf_add_incdir" = /usr/local/include ; then
-- if test "$GCC" = yes
-- then
-- cf_save_CPPFLAGS=$CPPFLAGS
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 6337 "configure"
-+cf_nculib_root=ncurses
-+ # This works, except for the special case where we find gpm, but
-+ # ncurses is in a nonstandard location via $LIBS, and we really want
-+ # to link gpm.
-+cf_ncurses_LIBS=""
-+cf_ncurses_SAVE="$LIBS"
-+echo "$as_me:6358: checking for Gpm_Open in -lgpm" >&5
-+echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
-+if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lgpm $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 6366 "configure"
- #include "confdefs.h"
--#include <stdio.h>
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char Gpm_Open ();
- int
- main ()
- {
--printf("Hello")
-+Gpm_Open ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6349: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:6385: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6352: \$? = $ac_status" >&5
-+ echo "$as_me:6388: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6355: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:6391: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6358: \$? = $ac_status" >&5
-+ echo "$as_me:6394: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ ac_cv_lib_gpm_Gpm_Open=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_have_incdir=yes
-+ac_cv_lib_gpm_Gpm_Open=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS=$cf_save_CPPFLAGS
-- fi
-- fi
-- fi
--
-- if test "$cf_have_incdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
--
--echo "${as_me:-configure}:6375: testing adding $cf_add_incdir to include-path ..." 1>&5
--
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
--
-- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-- test "$cf_top_incdir" = "$cf_add_incdir" && break
-- cf_add_incdir="$cf_top_incdir"
-- else
-- break
-- fi
-- fi
-- done
-- done
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
- fi
--
-- for cf_header in \
-- ncurses.h \
-- curses.h
-- do
--
-- cat >conftest.$ac_ext <<_ACEOF
--#line 6396 "configure"
-+echo "$as_me:6405: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
-+if test $ac_cv_lib_gpm_Gpm_Open = yes; then
-+ echo "$as_me:6408: checking for initscr in -lgpm" >&5
-+echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
-+if test "${ac_cv_lib_gpm_initscr+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lgpm $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 6416 "configure"
- #include "confdefs.h"
-
--#include <$cf_header>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char initscr ();
- int
- main ()
- {
--
--#ifdef NCURSES_VERSION
--
--printf("%s\n", NCURSES_VERSION);
--#else
--#ifdef __NCURSES_H
--printf("old\n");
--#else
-- make an error
--#endif
--#endif
--
-+initscr ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6420: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:6435: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6423: \$? = $ac_status" >&5
-+ echo "$as_me:6438: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6426: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:6441: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6429: \$? = $ac_status" >&5
-+ echo "$as_me:6444: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ncurses_h2=$cf_header
--
-+ ac_cv_lib_gpm_initscr=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_ncurses_h2=no
-+ac_cv_lib_gpm_initscr=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:6455: result: $ac_cv_lib_gpm_initscr" >&5
-+echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
-+if test $ac_cv_lib_gpm_initscr = yes; then
-+ LIBS="$cf_ncurses_SAVE"
-+else
-+ cf_ncurses_LIBS="-lgpm"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--
-- if test "$cf_cv_ncurses_h2" != no ; then
-- cf_cv_ncurses_h2=$cf_incdir/$cf_header
-- test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
-- break
-- fi
-- test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
-- done
-- CPPFLAGS="$cf_save2_CPPFLAGS"
-- test "$cf_cv_ncurses_h2" != no && break
-- done
-- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6450: error: not found" >&5
--echo "$as_me: error: not found" >&2;}
-- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:6455: result: $cf_cv_ncurses_h2" >&5
--echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
--
-- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-- cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
-- if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
-- cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
-- fi
--
--if test -n "$cf_1st_incdir" ; then
-- for cf_add_incdir in $cf_1st_incdir
-- do
-- while test $cf_add_incdir != /usr/include
-- do
-- if test -d $cf_add_incdir
-- then
-- cf_have_incdir=no
-- if test -n "$CFLAGS$CPPFLAGS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-- cf_have_incdir=yes; break
-- fi
-- done
-- fi
-
-- if test "$cf_have_incdir" = no ; then
-- if test "$cf_add_incdir" = /usr/local/include ; then
-- if test "$GCC" = yes
-- then
-- cf_save_CPPFLAGS=$CPPFLAGS
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 6488 "configure"
-+case $host_os in #(vi
-+freebsd*)
-+ # This is only necessary if you are linking against an obsolete
-+ # version of ncurses (but it should do no harm, since it's static).
-+ if test "$cf_nculib_root" = ncurses ; then
-+ echo "$as_me:6470: checking for tgoto in -lmytinfo" >&5
-+echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
-+if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lmytinfo $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 6478 "configure"
- #include "confdefs.h"
--#include <stdio.h>
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char tgoto ();
- int
- main ()
- {
--printf("Hello")
-+tgoto ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6500: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:6497: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6503: \$? = $ac_status" >&5
-+ echo "$as_me:6500: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6506: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:6503: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6509: \$? = $ac_status" >&5
-+ echo "$as_me:6506: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ ac_cv_lib_mytinfo_tgoto=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_have_incdir=yes
-+ac_cv_lib_mytinfo_tgoto=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS=$cf_save_CPPFLAGS
-- fi
-- fi
-- fi
--
-- if test "$cf_have_incdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
--
--echo "${as_me:-configure}:6526: testing adding $cf_add_incdir to include-path ..." 1>&5
--
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
--
-- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-- test "$cf_top_incdir" = "$cf_add_incdir" && break
-- cf_add_incdir="$cf_top_incdir"
-- else
-- break
-- fi
-- fi
-- done
-- done
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
- fi
--
-+echo "$as_me:6517: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
-+if test $ac_cv_lib_mytinfo_tgoto = yes; then
-+ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
- fi
-
--# Set definitions to allow ifdef'ing for ncurses.h
--
--case $cf_cv_ncurses_header in # (vi
--*ncurses.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSES_H 1
--EOF
--
-+ fi
- ;;
- esac
-
--case $cf_cv_ncurses_header in # (vi
--ncurses/curses.h|ncurses/ncurses.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSES_NCURSES_H 1
--EOF
--
-- ;;
--ncursesw/curses.h|ncursesw/ncurses.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSESW_NCURSES_H 1
--EOF
-+LIBS="$cf_ncurses_LIBS $LIBS"
-
-- ;;
--esac
-+if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-+then
-+ LIBS="-l$cf_nculib_root $LIBS"
-+else
-
--echo "$as_me:6569: checking for terminfo header" >&5
--echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
--if test "${cf_cv_term_header+set}" = set; then
-+ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
-+ cf_libdir=""
-+ echo "$as_me:6536: checking for initscr" >&5
-+echo $ECHO_N "checking for initscr... $ECHO_C" >&6
-+if test "${ac_cv_func_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 6542 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char initscr (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char initscr ();
-+char (*f) ();
-
--case ${cf_cv_ncurses_header} in #(vi
--*/ncurses.h|*/ncursesw.h) #(vi
-- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
-- ;;
--*)
-- cf_term_header=term.h
-- ;;
--esac
-+int
-+main ()
-+{
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_initscr) || defined (__stub___initscr)
-+choke me
-+#else
-+f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-
--for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
--do
--cat >conftest.$ac_ext <<_ACEOF
--#line 6587 "configure"
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:6573: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:6576: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:6579: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:6582: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_func_initscr=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_func_initscr=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:6592: result: $ac_cv_func_initscr" >&5
-+echo "${ECHO_T}$ac_cv_func_initscr" >&6
-+if test $ac_cv_func_initscr = yes; then
-+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-+else
-+
-+ cf_save_LIBS="$LIBS"
-+ echo "$as_me:6599: checking for initscr in -l$cf_nculib_root" >&5
-+echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
-+ LIBS="-l$cf_nculib_root $LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 6603 "configure"
- #include "confdefs.h"
--#include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
--#include <$cf_test>
--
- int
- main ()
- {
--int x = auto_left_margin
-+initscr()
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:6602: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:6615: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6605: \$? = $ac_status" >&5
-+ echo "$as_me:6618: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:6608: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:6621: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6611: \$? = $ac_status" >&5
-+ echo "$as_me:6624: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-+ echo "$as_me:6626: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-
-- cf_cv_term_header="$cf_test"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+echo "$as_me:6633: result: no" >&5
-+echo "${ECHO_T}no" >&6
-
-- cf_cv_term_header=unknown
-+cf_search=
-+cf_library_path_list=""
-+if test -n "${LDFLAGS}${LIBS}" ; then
-+ for cf_library_path in $LDFLAGS $LIBS
-+ do
-+ case $cf_library_path in #(vi
-+ -L*)
-+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
-
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- test "$cf_cv_term_header" != unknown && break
--done
-+test "$cf_library_path" != "NONE" && \
-+test -d "$cf_library_path" && \
-+ {
-+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
-+ test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
-+ test -d $cf_library_path/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
-+ test -d $cf_library_path/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
-+ test -d $cf_library_path/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
-+ test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
-+}
-
-+ cf_library_path_list="$cf_library_path_list $cf_search"
-+ ;;
-+ esac
-+ done
- fi
--echo "$as_me:6627: result: $cf_cv_term_header" >&5
--echo "${ECHO_T}$cf_cv_term_header" >&6
-
--# Set definitions to allow ifdef'ing to accommodate subdirectories
--
--case $cf_cv_term_header in # (vi
--*term.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_TERM_H 1
--EOF
--
-- ;;
--esac
-+cf_search=
-
--case $cf_cv_term_header in # (vi
--ncurses/term.h) #(vi
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSES_TERM_H 1
--EOF
--
-- ;;
--ncursesw/term.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSESW_TERM_H 1
--EOF
-+test "/usr" != "$prefix" && \
-+test -d "/usr" && \
-+(test $prefix = NONE || test "/usr" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under /usr"
-+ test -d /usr/lib && cf_search="$cf_search /usr/lib"
-+ test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
-+ test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
-+ test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
-+ test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
-+}
-
-- ;;
--esac
-+test "$prefix" != "NONE" && \
-+test -d "$prefix" && \
-+ {
-+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
-+ test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
-+ test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
-+ test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
-+ test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
-+ test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
-+}
-
--# some applications need this, but should check for NCURSES_VERSION
--cat >>confdefs.h <<\EOF
--#define NCURSES 1
--EOF
-+test "/usr/local" != "$prefix" && \
-+test -d "/usr/local" && \
-+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
-+ test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
-+ test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
-+ test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
-+ test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
-+ test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-+}
-
--echo "$as_me:6661: checking for ncurses version" >&5
--echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
--if test "${cf_cv_ncurses_version+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+test "/opt" != "$prefix" && \
-+test -d "/opt" && \
-+(test $prefix = NONE || test "/opt" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under /opt"
-+ test -d /opt/lib && cf_search="$cf_search /opt/lib"
-+ test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
-+ test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
-+ test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
-+ test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
-+}
-
-- cf_cv_ncurses_version=no
-- cf_tempfile=out$$
-- rm -f $cf_tempfile
-- if test "$cross_compiling" = yes; then
-+test "$HOME" != "$prefix" && \
-+test -d "$HOME" && \
-+(test $prefix = NONE || test "$HOME" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
-+ test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
-+ test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
-+ test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
-+ test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
-+ test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
-+}
-
-- # This will not work if the preprocessor splits the line after the
-- # Autoconf token. The 'unproto' program does that.
-- cat > conftest.$ac_ext <<EOF
--#include <${cf_cv_ncurses_header:-curses.h}>
--#undef Autoconf
--#ifdef NCURSES_VERSION
--Autoconf NCURSES_VERSION
--#else
--#ifdef __NCURSES_H
--Autoconf "old"
--#endif
--;
--#endif
--EOF
-- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-- { (eval echo "$as_me:6687: \"$cf_try\"") >&5
-- (eval $cf_try) 2>&5
-- ac_status=$?
-- echo "$as_me:6690: \$? = $ac_status" >&5
-- (exit $ac_status); }
-- if test -f conftest.out ; then
-- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
-- rm -f conftest.out
-- fi
-+cf_search="$cf_library_path_list $cf_search"
-
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 6700 "configure"
-+ for cf_libdir in $cf_search
-+ do
-+ echo "$as_me:6723: checking for -l$cf_nculib_root in $cf_libdir" >&5
-+echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
-+ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 6727 "configure"
- #include "confdefs.h"
--
- #include <${cf_cv_ncurses_header:-curses.h}>
--#include <stdio.h>
--int main()
-+int
-+main ()
- {
-- FILE *fp = fopen("$cf_tempfile", "w");
--#ifdef NCURSES_VERSION
--# ifdef NCURSES_VERSION_PATCH
-- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
--# else
-- fprintf(fp, "%s\n", NCURSES_VERSION);
--# endif
--#else
--# ifdef __NCURSES_H
-- fprintf(fp, "old\n");
--# else
-- make an error
--# endif
--#endif
-- ${cf_cv_main_return:-return}(0);
-+initscr()
-+ ;
-+ return 0;
- }
- _ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:6725: \"$ac_link\"") >&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:6739: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6728: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:6730: \"$ac_try\"") >&5
-+ echo "$as_me:6742: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:6745: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6733: \$? = $ac_status" >&5
-+ echo "$as_me:6748: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
--
-- cf_cv_ncurses_version=`cat $cf_tempfile`
-+ echo "$as_me:6750: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-+ break
- else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+ echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+echo "$as_me:6757: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+ LIBS="$cf_save_LIBS"
- fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ done
-+
- fi
-- rm -f $cf_tempfile
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
- fi
--echo "$as_me:6747: result: $cf_cv_ncurses_version" >&5
--echo "${ECHO_T}$cf_cv_ncurses_version" >&6
--test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
--#define NCURSES 1
--EOF
-
--cf_nculib_root=ncurses
-- # This works, except for the special case where we find gpm, but
-- # ncurses is in a nonstandard location via $LIBS, and we really want
-- # to link gpm.
--cf_ncurses_LIBS=""
--cf_ncurses_SAVE="$LIBS"
--echo "$as_me:6759: checking for Gpm_Open in -lgpm" >&5
--echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
--if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lgpm $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 6767 "configure"
--#include "confdefs.h"
-+eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char Gpm_Open ();
-+if test $cf_found_library = no ; then
-+ { { echo "$as_me:6772: error: Cannot link $cf_nculib_root library" >&5
-+echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+fi
-+
-+if test -n "$cf_ncurses_LIBS" ; then
-+ echo "$as_me:6780: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
-+echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
-+ cf_ncurses_SAVE="$LIBS"
-+ for p in $cf_ncurses_LIBS ; do
-+ q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
-+ if test "$q" != "$LIBS" ; then
-+ LIBS="$q"
-+ fi
-+ done
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 6790 "configure"
-+#include "confdefs.h"
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--Gpm_Open ();
-+initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6786: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6802: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6789: \$? = $ac_status" >&5
-+ echo "$as_me:6805: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6792: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6808: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6795: \$? = $ac_status" >&5
-+ echo "$as_me:6811: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_gpm_Gpm_Open=yes
-+ echo "$as_me:6813: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_gpm_Gpm_Open=no
-+echo "$as_me:6818: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+ LIBS="$cf_ncurses_SAVE"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:6806: result: $ac_cv_lib_gpm_Gpm_Open" >&5
--echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
--if test $ac_cv_lib_gpm_Gpm_Open = yes; then
-- echo "$as_me:6809: checking for initscr in -lgpm" >&5
--echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
--if test "${ac_cv_lib_gpm_initscr+set}" = set; then
-+
-+cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+cat >>confdefs.h <<EOF
-+#define $cf_nculib_ROOT 1
-+EOF
-+
-+fi
-+
-+ ;;
-+ncursesw) #(vi
-+
-+echo "$as_me:6836: checking for multibyte character support" >&5
-+echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
-+if test "${cf_cv_utf8_lib+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lgpm $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 6817 "configure"
-+
-+ cf_save_LIBS="$LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 6844 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char initscr ();
-+#include <stdlib.h>
- int
- main ()
- {
--initscr ();
-+putwc(0,0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6836: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6857: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6839: \$? = $ac_status" >&5
-+ echo "$as_me:6860: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6842: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6863: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6845: \$? = $ac_status" >&5
-+ echo "$as_me:6866: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_gpm_initscr=yes
-+ cf_cv_utf8_lib=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_gpm_initscr=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:6856: result: $ac_cv_lib_gpm_initscr" >&5
--echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
--if test $ac_cv_lib_gpm_initscr = yes; then
-- LIBS="$cf_ncurses_SAVE"
--else
-- cf_ncurses_LIBS="-lgpm"
--fi
-
--fi
-+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
-+# will be set on completion of the AC_TRY_LINK below.
-+cf_cv_header_path_utf8=
-+cf_cv_library_path_utf8=
-+
-+echo "${as_me:-configure}:6878: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-+
-+cf_save_LIBS="$LIBS"
-
--case $host_os in #(vi
--freebsd*)
-- # This is only necessary if you are linking against an obsolete
-- # version of ncurses (but it should do no harm, since it's static).
-- if test "$cf_nculib_root" = ncurses ; then
-- echo "$as_me:6871: checking for tgoto in -lmytinfo" >&5
--echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
--if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lmytinfo $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 6879 "configure"
-+#line 6883 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char tgoto ();
-+#include <libutf8.h>
- int
- main ()
- {
--tgoto ();
-+putwc(0,0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6898: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6896: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6901: \$? = $ac_status" >&5
-+ echo "$as_me:6899: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6904: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6902: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6907: \$? = $ac_status" >&5
-+ echo "$as_me:6905: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_mytinfo_tgoto=yes
-+
-+ cf_cv_find_linkage_utf8=yes
-+ cf_cv_header_path_utf8=/usr/include
-+ cf_cv_library_path_utf8=/usr/lib
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_mytinfo_tgoto=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:6918: result: $ac_cv_lib_mytinfo_tgoto" >&5
--echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
--if test $ac_cv_lib_mytinfo_tgoto = yes; then
-- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
--fi
--
-- fi
-- ;;
--esac
--
--LIBS="$cf_ncurses_LIBS $LIBS"
-
--if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
--then
-- LIBS="-l$cf_nculib_root $LIBS"
--else
-+LIBS="-lutf8 $cf_save_LIBS"
-
-- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
-- cf_libdir=""
-- echo "$as_me:6937: checking for initscr" >&5
--echo $ECHO_N "checking for initscr... $ECHO_C" >&6
--if test "${ac_cv_func_initscr+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 6943 "configure"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 6919 "configure"
- #include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char initscr (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char initscr ();
--char (*f) ();
-
-+#include <libutf8.h>
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_initscr) || defined (__stub___initscr)
--choke me
--#else
--f = initscr;
--#endif
--
-+putwc(0,0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:6974: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:6932: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:6977: \$? = $ac_status" >&5
-+ echo "$as_me:6935: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:6980: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:6938: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:6983: \$? = $ac_status" >&5
-+ echo "$as_me:6941: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_func_initscr=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_initscr=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:6993: result: $ac_cv_func_initscr" >&5
--echo "${ECHO_T}$ac_cv_func_initscr" >&6
--if test $ac_cv_func_initscr = yes; then
-- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
--else
-
-- cf_save_LIBS="$LIBS"
-- echo "$as_me:7000: checking for initscr in -l$cf_nculib_root" >&5
--echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
-- LIBS="-l$cf_nculib_root $LIBS"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7004 "configure"
--#include "confdefs.h"
--#include <${cf_cv_ncurses_header:-curses.h}>
--int
--main ()
--{
--initscr()
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7016: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:7019: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7022: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:7025: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- echo "$as_me:7027: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-+ cf_cv_find_linkage_utf8=yes
-+ cf_cv_header_path_utf8=/usr/include
-+ cf_cv_library_path_utf8=/usr/lib
-+ cf_cv_library_file_utf8="-lutf8"
-
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7034: result: no" >&5
--echo "${ECHO_T}no" >&6
-+
-+ cf_cv_find_linkage_utf8=no
-+ LIBS="$cf_save_LIBS"
-+
-+ test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
-+
-+echo "${as_me:-configure}:6958: testing find linkage for utf8 library ..." 1>&5
-+
-+echo "${as_me:-configure}:6960: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
-+
-+ cf_save_CPPFLAGS="$CPPFLAGS"
-+ cf_test_CPPFLAGS="$CPPFLAGS"
-
- cf_search=
--cf_library_path_list=""
--if test -n "${LDFLAGS}${LIBS}" ; then
-- for cf_library_path in $LDFLAGS $LIBS
-+
-+# collect the current set of include-directories from compiler flags
-+cf_header_path_list=""
-+if test -n "${CFLAGS}${CPPFLAGS}" ; then
-+ for cf_header_path in $CPPFLAGS $CFLAGS
- do
-- case $cf_library_path in #(vi
-- -L*)
-- cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
-+ case $cf_header_path in #(vi
-+ -I*)
-+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
-
--test "$cf_library_path" != "NONE" && \
--test -d "$cf_library_path" && \
-+test "$cf_header_path" != "NONE" && \
-+test -d "$cf_header_path" && \
- {
-- test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
-- test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
-- test -d $cf_library_path/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
-- test -d $cf_library_path/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
-- test -d $cf_library_path/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
-- test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
-+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
-+ test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
-+ test -d $cf_header_path/include/utf8 && cf_search="$cf_search $cf_header_path/include/utf8"
-+ test -d $cf_header_path/include/utf8/include && cf_search="$cf_search $cf_header_path/include/utf8/include"
-+ test -d $cf_header_path/utf8/include && cf_search="$cf_search $cf_header_path/utf8/include"
-+ test -d $cf_header_path/utf8/include/utf8 && cf_search="$cf_search $cf_header_path/utf8/include/utf8"
- }
-
-- cf_library_path_list="$cf_library_path_list $cf_search"
-+ cf_header_path_list="$cf_header_path_list $cf_search"
- ;;
- esac
- done
- fi
-
-+# add the variations for the package we are looking for
-+
- cf_search=
-
- test "/usr" != "$prefix" && \
- test -d "/usr" && \
- (test $prefix = NONE || test "/usr" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
-- test -d /usr/lib && cf_search="$cf_search /usr/lib"
-- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
-- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
-- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
-- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
-+ test -n "$verbose" && echo " ... testing for include-directories under /usr"
-+ test -d /usr/include && cf_search="$cf_search /usr/include"
-+ test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8"
-+ test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include"
-+ test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include"
-+ test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8"
- }
-
- test "$prefix" != "NONE" && \
- test -d "$prefix" && \
- {
-- test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
-- test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
-- test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
-- test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
-- test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
-- test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
-+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
-+ test -d $prefix/include && cf_search="$cf_search $prefix/include"
-+ test -d $prefix/include/utf8 && cf_search="$cf_search $prefix/include/utf8"
-+ test -d $prefix/include/utf8/include && cf_search="$cf_search $prefix/include/utf8/include"
-+ test -d $prefix/utf8/include && cf_search="$cf_search $prefix/utf8/include"
-+ test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8"
- }
-
- test "/usr/local" != "$prefix" && \
- test -d "/usr/local" && \
- (test $prefix = NONE || test "/usr/local" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
-- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
-- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
-- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
-- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
-- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-+ test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
-+ test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
-+ test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8"
-+ test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include"
-+ test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include"
-+ test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8"
- }
-
- test "/opt" != "$prefix" && \
- test -d "/opt" && \
- (test $prefix = NONE || test "/opt" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
-- test -d /opt/lib && cf_search="$cf_search /opt/lib"
-- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
-- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
-- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
-- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
-+ test -n "$verbose" && echo " ... testing for include-directories under /opt"
-+ test -d /opt/include && cf_search="$cf_search /opt/include"
-+ test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8"
-+ test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include"
-+ test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include"
-+ test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8"
- }
-
- test "$HOME" != "$prefix" && \
- test -d "$HOME" && \
- (test $prefix = NONE || test "$HOME" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
-- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
-- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
-- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
-- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
-- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
-+ test -n "$verbose" && echo " ... testing for include-directories under $HOME"
-+ test -d $HOME/include && cf_search="$cf_search $HOME/include"
-+ test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8"
-+ test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include"
-+ test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include"
-+ test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8"
- }
-
--cf_search="$cf_library_path_list $cf_search"
-+test "$includedir" != NONE && \
-+test "$includedir" != "/usr/include" && \
-+test -d "$includedir" && {
-+ test -d $includedir && cf_search="$cf_search $includedir"
-+ test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8"
-+}
-
-- for cf_libdir in $cf_search
-- do
-- echo "$as_me:7124: checking for -l$cf_nculib_root in $cf_libdir" >&5
--echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
-- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7128 "configure"
-+test "$oldincludedir" != NONE && \
-+test "$oldincludedir" != "/usr/include" && \
-+test -d "$oldincludedir" && {
-+ test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
-+ test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8"
-+}
-+
-+cf_search="$cf_search $cf_header_path_list"
-+
-+ for cf_cv_header_path_utf8 in $cf_search
-+ do
-+ if test -d $cf_cv_header_path_utf8 ; then
-+ test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-+
-+echo "${as_me:-configure}:7073: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-+
-+ CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7077 "configure"
- #include "confdefs.h"
--#include <${cf_cv_ncurses_header:-curses.h}>
-+
-+#include <libutf8.h>
- int
- main ()
- {
--initscr()
-+putwc(0,0);
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7140: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:7090: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7143: \$? = $ac_status" >&5
-+ echo "$as_me:7093: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7146: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:7096: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7149: \$? = $ac_status" >&5
-+ echo "$as_me:7099: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:7151: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-- break
-+
-+ test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
-+
-+echo "${as_me:-configure}:7104: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
-+
-+ cf_cv_find_linkage_utf8=maybe
-+ cf_test_CPPFLAGS="$CPPFLAGS"
-+ break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7158: result: no" >&5
--echo "${ECHO_T}no" >&6
-- LIBS="$cf_save_LIBS"
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- done
-
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-
- fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ fi
-+ done
-
--eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-+ if test "$cf_cv_find_linkage_utf8" = maybe ; then
-
--if test $cf_found_library = no ; then
-- { { echo "$as_me:7173: error: Cannot link $cf_nculib_root library" >&5
--echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
-- { (exit 1); exit 1; }; }
--fi
-+echo "${as_me:-configure}:7122: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
-
--fi
-+ cf_save_LIBS="$LIBS"
-+ cf_save_LDFLAGS="$LDFLAGS"
-
--if test -n "$cf_ncurses_LIBS" ; then
-- echo "$as_me:7181: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
--echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
-- cf_ncurses_SAVE="$LIBS"
-- for p in $cf_ncurses_LIBS ; do
-- q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
-- if test "$q" != "$LIBS" ; then
-- LIBS="$q"
-- fi
-+ if test "$cf_cv_find_linkage_utf8" != yes ; then
-+
-+cf_search=
-+cf_library_path_list=""
-+if test -n "${LDFLAGS}${LIBS}" ; then
-+ for cf_library_path in $LDFLAGS $LIBS
-+ do
-+ case $cf_library_path in #(vi
-+ -L*)
-+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
-+
-+test "$cf_library_path" != "NONE" && \
-+test -d "$cf_library_path" && \
-+ {
-+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
-+ test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
-+ test -d $cf_library_path/lib/utf8 && cf_search="$cf_search $cf_library_path/lib/utf8"
-+ test -d $cf_library_path/lib/utf8/lib && cf_search="$cf_search $cf_library_path/lib/utf8/lib"
-+ test -d $cf_library_path/utf8/lib && cf_search="$cf_search $cf_library_path/utf8/lib"
-+ test -d $cf_library_path/utf8/lib/utf8 && cf_search="$cf_search $cf_library_path/utf8/lib/utf8"
-+}
-+
-+ cf_library_path_list="$cf_library_path_list $cf_search"
-+ ;;
-+ esac
- done
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7191 "configure"
-+fi
-+
-+cf_search=
-+
-+test "/usr" != "$prefix" && \
-+test -d "/usr" && \
-+(test $prefix = NONE || test "/usr" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under /usr"
-+ test -d /usr/lib && cf_search="$cf_search /usr/lib"
-+ test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8"
-+ test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib"
-+ test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib"
-+ test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8"
-+}
-+
-+test "$prefix" != "NONE" && \
-+test -d "$prefix" && \
-+ {
-+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
-+ test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
-+ test -d $prefix/lib/utf8 && cf_search="$cf_search $prefix/lib/utf8"
-+ test -d $prefix/lib/utf8/lib && cf_search="$cf_search $prefix/lib/utf8/lib"
-+ test -d $prefix/utf8/lib && cf_search="$cf_search $prefix/utf8/lib"
-+ test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8"
-+}
-+
-+test "/usr/local" != "$prefix" && \
-+test -d "/usr/local" && \
-+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
-+ test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
-+ test -d /usr/local/lib/utf8 && cf_search="$cf_search /usr/local/lib/utf8"
-+ test -d /usr/local/lib/utf8/lib && cf_search="$cf_search /usr/local/lib/utf8/lib"
-+ test -d /usr/local/utf8/lib && cf_search="$cf_search /usr/local/utf8/lib"
-+ test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8"
-+}
-+
-+test "/opt" != "$prefix" && \
-+test -d "/opt" && \
-+(test $prefix = NONE || test "/opt" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under /opt"
-+ test -d /opt/lib && cf_search="$cf_search /opt/lib"
-+ test -d /opt/lib/utf8 && cf_search="$cf_search /opt/lib/utf8"
-+ test -d /opt/lib/utf8/lib && cf_search="$cf_search /opt/lib/utf8/lib"
-+ test -d /opt/utf8/lib && cf_search="$cf_search /opt/utf8/lib"
-+ test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8"
-+}
-+
-+test "$HOME" != "$prefix" && \
-+test -d "$HOME" && \
-+(test $prefix = NONE || test "$HOME" != "$prefix") && {
-+ test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
-+ test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
-+ test -d $HOME/lib/utf8 && cf_search="$cf_search $HOME/lib/utf8"
-+ test -d $HOME/lib/utf8/lib && cf_search="$cf_search $HOME/lib/utf8/lib"
-+ test -d $HOME/utf8/lib && cf_search="$cf_search $HOME/utf8/lib"
-+ test -d $HOME/utf8/lib/utf8 && cf_search="$cf_search $HOME/utf8/lib/utf8"
-+}
-+
-+cf_search="$cf_library_path_list $cf_search"
-+
-+ for cf_cv_library_path_utf8 in $cf_search
-+ do
-+ if test -d $cf_cv_library_path_utf8 ; then
-+ test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-+
-+echo "${as_me:-configure}:7219: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-+
-+ CPPFLAGS="$cf_test_CPPFLAGS"
-+ LIBS="-lutf8 $cf_save_LIBS"
-+ LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7225 "configure"
- #include "confdefs.h"
--#include <${cf_cv_ncurses_header:-curses.h}>
-+
-+#include <libutf8.h>
- int
- main ()
- {
--initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
-+putwc(0,0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7203: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:7238: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:7206: \$? = $ac_status" >&5
-+ echo "$as_me:7241: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7209: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7244: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7212: \$? = $ac_status" >&5
-+ echo "$as_me:7247: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:7214: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+
-+ test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
-+
-+echo "${as_me:-configure}:7252: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
-+
-+ cf_cv_find_linkage_utf8=yes
-+ cf_cv_library_file_utf8="-lutf8"
-+ break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:7219: result: no" >&5
--echo "${ECHO_T}no" >&6
-- LIBS="$cf_ncurses_SAVE"
-+
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-+ LIBS="$cf_save_LIBS"
-+ LDFLAGS="$cf_save_LDFLAGS"
-+
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
-+ fi
-+ done
-+ CPPFLAGS="$cf_save_CPPFLAGS"
-+ LDFLAGS="$cf_save_LDFLAGS"
-+ fi
-
--cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+ else
-+ cf_cv_find_linkage_utf8=no
-+ fi
-
--cat >>confdefs.h <<EOF
--#define $cf_nculib_ROOT 1
--EOF
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
- fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-- ;;
--ncursesw)
-- cf_cv_libtype=w
-+LIBS="$cf_save_LIBS"
-
--echo "$as_me:7238: checking for multibyte character support" >&5
--echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
--if test "${cf_cv_utf8_lib+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
-+if test "$cf_cv_find_linkage_utf8" = yes ; then
-+cf_cv_utf8_lib=add-on
- else
-+cf_cv_utf8_lib=no
-+fi
-
-- cf_save_LIBS="$LIBS"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7246 "configure"
--#include "confdefs.h"
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:7294: result: $cf_cv_utf8_lib" >&5
-+echo "${ECHO_T}$cf_cv_utf8_lib" >&6
-
--#include <stdlib.h>
-+# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
-+# ncurses/ncursesw:
-+if test "$cf_cv_utf8_lib" = "add-on" ; then
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_LIBUTF8_H 1
-+EOF
-+
-+if test -n "$cf_cv_header_path_utf8" ; then
-+ for cf_add_incdir in $cf_cv_header_path_utf8
-+ do
-+ while test $cf_add_incdir != /usr/include
-+ do
-+ if test -d $cf_add_incdir
-+ then
-+ cf_have_incdir=no
-+ if test -n "$CFLAGS$CPPFLAGS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-+ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-+ cf_have_incdir=yes; break
-+ fi
-+ done
-+ fi
-+
-+ if test "$cf_have_incdir" = no ; then
-+ if test "$cf_add_incdir" = /usr/local/include ; then
-+ if test "$GCC" = yes
-+ then
-+ cf_save_CPPFLAGS=$CPPFLAGS
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 7329 "configure"
-+#include "confdefs.h"
-+#include <stdio.h>
- int
- main ()
- {
--putwc(0,0);
-+printf("Hello")
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7259: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:7341: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7262: \$? = $ac_status" >&5
-+ echo "$as_me:7344: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7265: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:7347: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7268: \$? = $ac_status" >&5
-+ echo "$as_me:7350: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_utf8_lib=yes
-+ :
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_have_incdir=yes
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS=$cf_save_CPPFLAGS
-+ fi
-+ fi
-+ fi
-
--# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
--# will be set on completion of the AC_TRY_LINK below.
--cf_cv_header_path_utf8=
--cf_cv_library_path_utf8=
--
--echo "${as_me:-configure}:7280: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
-+ if test "$cf_have_incdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--cf_save_LIBS="$LIBS"
-+echo "${as_me:-configure}:7367: testing adding $cf_add_incdir to include-path ..." 1>&5
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 7285 "configure"
--#include "confdefs.h"
-+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
--#include <libutf8.h>
--int
--main ()
--{
--putwc(0,0);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7298: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:7301: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7304: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:7307: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-+ test "$cf_top_incdir" = "$cf_add_incdir" && break
-+ cf_add_incdir="$cf_top_incdir"
-+ else
-+ break
-+ fi
-+ fi
-+ done
-+ done
-+fi
-
-- cf_cv_find_linkage_utf8=yes
-- cf_cv_header_path_utf8=/usr/include
-- cf_cv_library_path_utf8=/usr/lib
-+if test -n "$cf_cv_library_path_utf8" ; then
-+ for cf_add_libdir in $cf_cv_library_path_utf8
-+ do
-+ if test $cf_add_libdir = /usr/lib ; then
-+ :
-+ elif test -d $cf_add_libdir
-+ then
-+ cf_have_libdir=no
-+ if test -n "$LDFLAGS$LIBS" ; then
-+ # a loop is needed to ensure we can add subdirs of existing dirs
-+ for cf_test_libdir in $LDFLAGS $LIBS ; do
-+ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-+ cf_have_libdir=yes; break
-+ fi
-+ done
-+ fi
-+ if test "$cf_have_libdir" = no ; then
-+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
-+echo "${as_me:-configure}:7401: testing adding $cf_add_libdir to library-path ..." 1>&5
-
--LIBS="-lutf8 $cf_save_LIBS"
-+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-+ fi
-+ fi
-+ done
-+fi
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 7321 "configure"
--#include "confdefs.h"
-+ LIBS="$cf_cv_library_file_utf8 $LIBS"
-+fi
-
--#include <libutf8.h>
--int
--main ()
--{
--putwc(0,0);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7334: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:7337: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7340: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:7343: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+cf_ncuconfig_root=ncursesw
-
-- cf_cv_find_linkage_utf8=yes
-- cf_cv_header_path_utf8=/usr/include
-- cf_cv_library_path_utf8=/usr/lib
-- cf_cv_library_file_utf8="-lutf8"
-+echo "Looking for ${cf_ncuconfig_root}-config"
-
-+if test -n "$ac_tool_prefix"; then
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:7421: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--
-- cf_cv_find_linkage_utf8=no
-- LIBS="$cf_save_LIBS"
--
-- test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
--
--echo "${as_me:-configure}:7360: testing find linkage for utf8 library ..." 1>&5
--
--echo "${as_me:-configure}:7362: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
--
-- cf_save_CPPFLAGS="$CPPFLAGS"
-- cf_test_CPPFLAGS="$CPPFLAGS"
--
--cf_search=
--
--# collect the current set of include-directories from compiler flags
--cf_header_path_list=""
--if test -n "${CFLAGS}${CPPFLAGS}" ; then
-- for cf_header_path in $CPPFLAGS $CFLAGS
-- do
-- case $cf_header_path in #(vi
-- -I*)
-- cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
--
--test "$cf_header_path" != "NONE" && \
--test -d "$cf_header_path" && \
-- {
-- test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
-- test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
-- test -d $cf_header_path/include/utf8 && cf_search="$cf_search $cf_header_path/include/utf8"
-- test -d $cf_header_path/include/utf8/include && cf_search="$cf_search $cf_header_path/include/utf8/include"
-- test -d $cf_header_path/utf8/include && cf_search="$cf_search $cf_header_path/utf8/include"
-- test -d $cf_header_path/utf8/include/utf8 && cf_search="$cf_search $cf_header_path/utf8/include/utf8"
--}
-+ if test -n "$NCURSES_CONFIG"; then
-+ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-+echo "$as_me:7436: found $ac_dir/$ac_word" >&5
-+break
-+done
-
-- cf_header_path_list="$cf_header_path_list $cf_search"
-- ;;
-- esac
-- done
-+fi
-+fi
-+NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
-+if test -n "$NCURSES_CONFIG"; then
-+ echo "$as_me:7444: result: $NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$NCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:7447: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
--# add the variations for the package we are looking for
--
--cf_search=
--
--test "/usr" != "$prefix" && \
--test -d "/usr" && \
--(test $prefix = NONE || test "/usr" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under /usr"
-- test -d /usr/include && cf_search="$cf_search /usr/include"
-- test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8"
-- test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include"
-- test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include"
-- test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8"
--}
--
--test "$prefix" != "NONE" && \
--test -d "$prefix" && \
-- {
-- test -n "$verbose" && echo " ... testing for include-directories under $prefix"
-- test -d $prefix/include && cf_search="$cf_search $prefix/include"
-- test -d $prefix/include/utf8 && cf_search="$cf_search $prefix/include/utf8"
-- test -d $prefix/include/utf8/include && cf_search="$cf_search $prefix/include/utf8/include"
-- test -d $prefix/utf8/include && cf_search="$cf_search $prefix/utf8/include"
-- test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8"
--}
--
--test "/usr/local" != "$prefix" && \
--test -d "/usr/local" && \
--(test $prefix = NONE || test "/usr/local" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
-- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
-- test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8"
-- test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include"
-- test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include"
-- test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8"
--}
-+ test -n "$NCURSES_CONFIG" && break
-+ done
-+fi
-+if test -z "$NCURSES_CONFIG"; then
-+ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
-+ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:7460: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
-+echo "$as_me:7475: found $ac_dir/$ac_word" >&5
-+break
-+done
-
--test "/opt" != "$prefix" && \
--test -d "/opt" && \
--(test $prefix = NONE || test "/opt" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under /opt"
-- test -d /opt/include && cf_search="$cf_search /opt/include"
-- test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8"
-- test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include"
-- test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include"
-- test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8"
--}
-+fi
-+fi
-+ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
-+if test -n "$ac_ct_NCURSES_CONFIG"; then
-+ echo "$as_me:7483: result: $ac_ct_NCURSES_CONFIG" >&5
-+echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:7486: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-
--test "$HOME" != "$prefix" && \
--test -d "$HOME" && \
--(test $prefix = NONE || test "$HOME" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
-- test -d $HOME/include && cf_search="$cf_search $HOME/include"
-- test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8"
-- test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include"
-- test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include"
-- test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8"
--}
-+ test -n "$ac_ct_NCURSES_CONFIG" && break
-+done
-+test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
-
--test "$includedir" != NONE && \
--test "$includedir" != "/usr/include" && \
--test -d "$includedir" && {
-- test -d $includedir && cf_search="$cf_search $includedir"
-- test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8"
--}
-+ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
-+fi
-
--test "$oldincludedir" != NONE && \
--test "$oldincludedir" != "/usr/include" && \
--test -d "$oldincludedir" && {
-- test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
-- test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8"
--}
-+if test "$NCURSES_CONFIG" != none ; then
-
--cf_search="$cf_search $cf_header_path_list"
-+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
-+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
-
-- for cf_cv_header_path_utf8 in $cf_search
-- do
-- if test -d $cf_cv_header_path_utf8 ; then
-- test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
-+# even with config script, some packages use no-override for curses.h
-
--echo "${as_me:-configure}:7475: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
-+echo "$as_me:7504: checking if we have identified curses headers" >&5
-+echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_header+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
-- CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7479 "configure"
-+cf_cv_ncurses_header=none
-+for cf_header in \
-+ ncursesw/ncurses.h \
-+ ncursesw/curses.h \
-+ ncurses.h \
-+ curses.h
-+do
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 7518 "configure"
- #include "confdefs.h"
--
--#include <libutf8.h>
-+#include <${cf_header}>
- int
- main ()
- {
--putwc(0,0);
-+initscr(); tgoto("?", 0,0)
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7492: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7530: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7495: \$? = $ac_status" >&5
-+ echo "$as_me:7533: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7498: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7536: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7501: \$? = $ac_status" >&5
-+ echo "$as_me:7539: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
--
-- test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
--
--echo "${as_me:-configure}:7506: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
--
-- cf_cv_find_linkage_utf8=maybe
-- cf_test_CPPFLAGS="$CPPFLAGS"
-- break
-+ cf_cv_ncurses_header=$cf_header; break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--
-- CPPFLAGS="$cf_save_CPPFLAGS"
--
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-- fi
-- done
--
-- if test "$cf_cv_find_linkage_utf8" = maybe ; then
--
--echo "${as_me:-configure}:7524: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
--
-- cf_save_LIBS="$LIBS"
-- cf_save_LDFLAGS="$LDFLAGS"
--
-- if test "$cf_cv_find_linkage_utf8" != yes ; then
--
--cf_search=
--cf_library_path_list=""
--if test -n "${LDFLAGS}${LIBS}" ; then
-- for cf_library_path in $LDFLAGS $LIBS
-- do
-- case $cf_library_path in #(vi
-- -L*)
-- cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
--
--test "$cf_library_path" != "NONE" && \
--test -d "$cf_library_path" && \
-- {
-- test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
-- test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
-- test -d $cf_library_path/lib/utf8 && cf_search="$cf_search $cf_library_path/lib/utf8"
-- test -d $cf_library_path/lib/utf8/lib && cf_search="$cf_search $cf_library_path/lib/utf8/lib"
-- test -d $cf_library_path/utf8/lib && cf_search="$cf_search $cf_library_path/utf8/lib"
-- test -d $cf_library_path/utf8/lib/utf8 && cf_search="$cf_search $cf_library_path/utf8/lib/utf8"
--}
-+done
-
-- cf_library_path_list="$cf_library_path_list $cf_search"
-- ;;
-- esac
-- done
- fi
-+echo "$as_me:7550: result: $cf_cv_ncurses_header" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_header" >&6
-
--cf_search=
--
--test "/usr" != "$prefix" && \
--test -d "/usr" && \
--(test $prefix = NONE || test "/usr" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
-- test -d /usr/lib && cf_search="$cf_search /usr/lib"
-- test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8"
-- test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib"
-- test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib"
-- test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8"
--}
--
--test "$prefix" != "NONE" && \
--test -d "$prefix" && \
-- {
-- test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
-- test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
-- test -d $prefix/lib/utf8 && cf_search="$cf_search $prefix/lib/utf8"
-- test -d $prefix/lib/utf8/lib && cf_search="$cf_search $prefix/lib/utf8/lib"
-- test -d $prefix/utf8/lib && cf_search="$cf_search $prefix/utf8/lib"
-- test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8"
--}
--
--test "/usr/local" != "$prefix" && \
--test -d "/usr/local" && \
--(test $prefix = NONE || test "/usr/local" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
-- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
-- test -d /usr/local/lib/utf8 && cf_search="$cf_search /usr/local/lib/utf8"
-- test -d /usr/local/lib/utf8/lib && cf_search="$cf_search /usr/local/lib/utf8/lib"
-- test -d /usr/local/utf8/lib && cf_search="$cf_search /usr/local/utf8/lib"
-- test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8"
--}
--
--test "/opt" != "$prefix" && \
--test -d "/opt" && \
--(test $prefix = NONE || test "/opt" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
-- test -d /opt/lib && cf_search="$cf_search /opt/lib"
-- test -d /opt/lib/utf8 && cf_search="$cf_search /opt/lib/utf8"
-- test -d /opt/lib/utf8/lib && cf_search="$cf_search /opt/lib/utf8/lib"
-- test -d /opt/utf8/lib && cf_search="$cf_search /opt/utf8/lib"
-- test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8"
--}
--
--test "$HOME" != "$prefix" && \
--test -d "$HOME" && \
--(test $prefix = NONE || test "$HOME" != "$prefix") && {
-- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
-- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
-- test -d $HOME/lib/utf8 && cf_search="$cf_search $HOME/lib/utf8"
-- test -d $HOME/lib/utf8/lib && cf_search="$cf_search $HOME/lib/utf8/lib"
-- test -d $HOME/utf8/lib && cf_search="$cf_search $HOME/utf8/lib"
-- test -d $HOME/utf8/lib/utf8 && cf_search="$cf_search $HOME/utf8/lib/utf8"
--}
--
--cf_search="$cf_library_path_list $cf_search"
--
-- for cf_cv_library_path_utf8 in $cf_search
-- do
-- if test -d $cf_cv_library_path_utf8 ; then
-- test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
-+if test "$cf_cv_ncurses_header" = none ; then
-+ { { echo "$as_me:7554: error: No curses header-files found" >&5
-+echo "$as_me: error: No curses header-files found" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-
--echo "${as_me:-configure}:7621: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
-+# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
-
-- CPPFLAGS="$cf_test_CPPFLAGS"
-- LIBS="-lutf8 $cf_save_LIBS"
-- LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7627 "configure"
-+for ac_header in $cf_cv_ncurses_header
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:7564: 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 7570 "configure"
- #include "confdefs.h"
--
--#include <libutf8.h>
--int
--main ()
--{
--putwc(0,0);
-- ;
-- return 0;
--}
-+#include <$ac_header>
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:7640: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:7643: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:7646: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+if { (eval echo "$as_me:7574: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
-- echo "$as_me:7649: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
--
-- test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
--
--echo "${as_me:-configure}:7654: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
--
-- cf_cv_find_linkage_utf8=yes
-- cf_cv_library_file_utf8="-lutf8"
-- break
-+ egrep -v '^ *\+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:7580: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
- else
- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--
-- CPPFLAGS="$cf_save_CPPFLAGS"
-- LIBS="$cf_save_LIBS"
-- LDFLAGS="$cf_save_LDFLAGS"
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+fi
-+echo "$as_me:7599: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- fi
-- done
-- CPPFLAGS="$cf_save_CPPFLAGS"
-- LDFLAGS="$cf_save_LDFLAGS"
-- fi
-+done
-
-- else
-- cf_cv_find_linkage_utf8=no
-- fi
-+cat >>confdefs.h <<\EOF
-+#define NCURSES 1
-+EOF
-
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+cat >>confdefs.h <<EOF
-+#define $cf_nculib_ROOT 1
-+EOF
-
--LIBS="$cf_save_LIBS"
-+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
-
--if test "$cf_cv_find_linkage_utf8" = yes ; then
--cf_cv_utf8_lib=add-on
- else
--cf_cv_utf8_lib=no
--fi
-
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:7696: result: $cf_cv_utf8_lib" >&5
--echo "${ECHO_T}$cf_cv_utf8_lib" >&6
-+cf_ncuhdr_root=ncursesw
-
--# 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
-+test -n "$cf_cv_curses_dir" && \
-+test "$cf_cv_curses_dir" != "no" && { \
-
--if test -n "$cf_cv_header_path_utf8" ; then
-- for cf_add_incdir in $cf_cv_header_path_utf8
-+if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
-+ for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
- do
- while test $cf_add_incdir != /usr/include
- do
-@@ -7727,7 +7649,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 7730 "configure"
-+#line 7652 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -7739,16 +7661,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7742: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7664: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:7745: \$? = $ac_status" >&5
-+ echo "$as_me:7667: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7748: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7670: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:7751: \$? = $ac_status" >&5
-+ echo "$as_me:7673: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -7765,7 +7687,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:7768: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:7690: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -7780,305 +7702,21 @@
- done
- fi
-
--if test -n "$cf_cv_library_path_utf8" ; then
-- for cf_add_libdir in $cf_cv_library_path_utf8
-- do
-- if test $cf_add_libdir = /usr/lib ; then
-- :
-- elif test -d $cf_add_libdir
-- then
-- cf_have_libdir=no
-- if test -n "$LDFLAGS$LIBS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_libdir in $LDFLAGS $LIBS ; do
-- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
-- cf_have_libdir=yes; break
-- fi
-- done
-- fi
-- if test "$cf_have_libdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-+}
-
--echo "${as_me:-configure}:7802: testing adding $cf_add_libdir to library-path ..." 1>&5
-+echo "$as_me:7707: checking for $cf_ncuhdr_root header in include-path" >&5
-+echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_h+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
-- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
-- fi
-- fi
-- done
--fi
--
-- LIBS="$cf_cv_library_file_utf8 $LIBS"
--fi
--
--cf_ncuconfig_root=ncursesw
--
--echo "Looking for ${cf_ncuconfig_root}-config"
--for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
--do
-- # Extract the first word of "$ac_prog", so it can be a program name with args.
--set dummy $ac_prog; ac_word=$2
--echo "$as_me:7820: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- case $NCURSES_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:7837: found $ac_dir/$ac_word" >&5
-- break
--fi
--done
--
-- ;;
--esac
--fi
--NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
--
--if test -n "$NCURSES_CONFIG"; then
-- echo "$as_me:7848: result: $NCURSES_CONFIG" >&5
--echo "${ECHO_T}$NCURSES_CONFIG" >&6
--else
-- echo "$as_me:7851: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- test -n "$NCURSES_CONFIG" && break
--done
--test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
--
--if test "$NCURSES_CONFIG" != none ; then
--
--CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
--LIBS="`$NCURSES_CONFIG --libs` $LIBS"
--
--# even with config script, some packages use no-override for curses.h
--
--echo "$as_me:7866: checking if we have identified curses headers" >&5
--echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
--if test "${cf_cv_ncurses_header+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
--cf_cv_ncurses_header=none
--for cf_header in \
-- ncursesw/curses.h \
-- ncursesw/ncurses.h \
-- curses.h \
-- ncurses.h
--do
--cat >conftest.$ac_ext <<_ACEOF
--#line 7880 "configure"
--#include "confdefs.h"
--#include <${cf_header}>
--int
--main ()
--{
--initscr(); tgoto("?", 0,0)
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:7892: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:7895: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:7898: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:7901: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_cv_ncurses_header=$cf_header; break
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--done
--
--fi
--echo "$as_me:7912: result: $cf_cv_ncurses_header" >&5
--echo "${ECHO_T}$cf_cv_ncurses_header" >&6
--
--if test "$cf_cv_ncurses_header" = none ; then
-- { { echo "$as_me:7916: error: No curses header-files found" >&5
--echo "$as_me: error: No curses header-files found" >&2;}
-- { (exit 1); exit 1; }; }
--fi
--
--# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
--
--for ac_header in $cf_cv_ncurses_header
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:7926: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 7932 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:7936: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:7942: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- eval "$as_ac_Header=yes"
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:7961: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--cat >>confdefs.h <<\EOF
--#define NCURSES 1
--EOF
--
--cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
--cat >>confdefs.h <<EOF
--#define $cf_nculib_ROOT 1
--EOF
--
--cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
--
--else
--
--cf_ncuhdr_root=ncursesw
--
--test -n "$cf_cv_curses_dir" && \
--test "$cf_cv_curses_dir" != "no" && { \
--
--if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
-- for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
-- do
-- while test $cf_add_incdir != /usr/include
-- do
-- if test -d $cf_add_incdir
-- then
-- cf_have_incdir=no
-- if test -n "$CFLAGS$CPPFLAGS" ; then
-- # a loop is needed to ensure we can add subdirs of existing dirs
-- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
-- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
-- cf_have_incdir=yes; break
-- fi
-- done
-- fi
--
-- if test "$cf_have_incdir" = no ; then
-- if test "$cf_add_incdir" = /usr/local/include ; then
-- if test "$GCC" = yes
-- then
-- cf_save_CPPFLAGS=$CPPFLAGS
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 8014 "configure"
--#include "confdefs.h"
--#include <stdio.h>
--int
--main ()
--{
--printf("Hello")
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8026: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:8029: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8032: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:8035: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- :
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_have_incdir=yes
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- CPPFLAGS=$cf_save_CPPFLAGS
-- fi
-- fi
-- fi
--
-- if test "$cf_have_incdir" = no ; then
-- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
--
--echo "${as_me:-configure}:8052: testing adding $cf_add_incdir to include-path ..." 1>&5
--
-- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
--
-- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-- test "$cf_top_incdir" = "$cf_add_incdir" && break
-- cf_add_incdir="$cf_top_incdir"
-- else
-- break
-- fi
-- fi
-- done
-- done
--fi
--
--}
--
--echo "$as_me:8069: checking for $cf_ncuhdr_root header in include-path" >&5
--echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
--if test "${cf_cv_ncurses_h+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
-- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
-- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
-- for cf_header in $cf_header_list
-- do
-+ cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
-+ ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
-+ for cf_header in $cf_header_list
-+ do
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8081 "configure"
-+#line 7719 "configure"
- #include "confdefs.h"
-
- #define _XOPEN_SOURCE_EXTENDED
-@@ -8110,16 +7748,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8113: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7751: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8116: \$? = $ac_status" >&5
-+ echo "$as_me:7754: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8119: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7757: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8122: \$? = $ac_status" >&5
-+ echo "$as_me:7760: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_h=$cf_header
-
-@@ -8134,14 +7772,14 @@
- done
-
- fi
--echo "$as_me:8137: result: $cf_cv_ncurses_h" >&5
-+echo "$as_me:7775: result: $cf_cv_ncurses_h" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h" >&6
-
- if test "$cf_cv_ncurses_h" != no ; then
- cf_cv_ncurses_header=$cf_cv_ncurses_h
- else
-
--echo "$as_me:8144: checking for $cf_ncuhdr_root include-path" >&5
-+echo "$as_me:7782: checking for $cf_ncuhdr_root include-path" >&5
- echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
- if test "${cf_cv_ncurses_h2+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8281,7 +7919,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8284 "configure"
-+#line 7922 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8293,16 +7931,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8296: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:7934: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8299: \$? = $ac_status" >&5
-+ echo "$as_me:7937: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8302: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:7940: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8305: \$? = $ac_status" >&5
-+ echo "$as_me:7943: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -8319,7 +7957,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:8322: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:7960: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -8340,7 +7978,7 @@
- do
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 8343 "configure"
-+#line 7981 "configure"
- #include "confdefs.h"
-
- #include <$cf_header>
-@@ -8364,16 +8002,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8367: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8005: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8370: \$? = $ac_status" >&5
-+ echo "$as_me:8008: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8373: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8011: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8376: \$? = $ac_status" >&5
-+ echo "$as_me:8014: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_ncurses_h2=$cf_header
-
-@@ -8394,12 +8032,12 @@
- CPPFLAGS="$cf_save2_CPPFLAGS"
- test "$cf_cv_ncurses_h2" != no && break
- done
-- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8397: error: not found" >&5
-+ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8035: error: not found" >&5
- echo "$as_me: error: not found" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:8402: result: $cf_cv_ncurses_h2" >&5
-+echo "$as_me:8040: result: $cf_cv_ncurses_h2" >&5
- echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
-
- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-@@ -8432,7 +8070,7 @@
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8435 "configure"
-+#line 8073 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int
-@@ -8444,16 +8082,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8447: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8085: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8450: \$? = $ac_status" >&5
-+ echo "$as_me:8088: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8453: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8091: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8456: \$? = $ac_status" >&5
-+ echo "$as_me:8094: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
- else
-@@ -8470,7 +8108,7 @@
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
--echo "${as_me:-configure}:8473: testing adding $cf_add_incdir to include-path ..." 1>&5
-+echo "${as_me:-configure}:8111: testing adding $cf_add_incdir to include-path ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-
-@@ -8491,7 +8129,8 @@
-
- case $cf_cv_ncurses_header in # (vi
- *ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_H 1
- EOF
-
-@@ -8500,20 +8139,22 @@
-
- case $cf_cv_ncurses_header in # (vi
- ncurses/curses.h|ncurses/ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_NCURSES_H 1
- EOF
-
- ;;
- ncursesw/curses.h|ncursesw/ncurses.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSESW_NCURSES_H 1
- EOF
-
- ;;
- esac
-
--echo "$as_me:8516: checking for terminfo header" >&5
-+echo "$as_me:8157: checking for terminfo header" >&5
- echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
- if test "${cf_cv_term_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8531,7 +8172,7 @@
- for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
- do
- cat >conftest.$ac_ext <<_ACEOF
--#line 8534 "configure"
-+#line 8175 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -8546,16 +8187,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:8549: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:8190: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:8552: \$? = $ac_status" >&5
-+ echo "$as_me:8193: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:8555: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8196: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8558: \$? = $ac_status" >&5
-+ echo "$as_me:8199: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_term_header="$cf_test"
-@@ -8571,14 +8212,15 @@
- done
-
- fi
--echo "$as_me:8574: result: $cf_cv_term_header" >&5
-+echo "$as_me:8215: result: $cf_cv_term_header" >&5
- echo "${ECHO_T}$cf_cv_term_header" >&6
-
- # Set definitions to allow ifdef'ing to accommodate subdirectories
-
- case $cf_cv_term_header in # (vi
- *term.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_TERM_H 1
- EOF
-
-@@ -8587,13 +8229,15 @@
-
- case $cf_cv_term_header in # (vi
- ncurses/term.h) #(vi
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSES_TERM_H 1
- EOF
-
- ;;
- ncursesw/term.h)
-- cat >>confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\EOF
- #define HAVE_NCURSESW_TERM_H 1
- EOF
-
-@@ -8601,11 +8245,12 @@
- esac
-
- # some applications need this, but should check for NCURSES_VERSION
-+
- cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
-
--echo "$as_me:8608: checking for ncurses version" >&5
-+echo "$as_me:8253: checking for ncurses version" >&5
- echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
- if test "${cf_cv_ncurses_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8631,10 +8276,10 @@
- #endif
- EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-- { (eval echo "$as_me:8634: \"$cf_try\"") >&5
-+ { (eval echo "$as_me:8279: \"$cf_try\"") >&5
- (eval $cf_try) 2>&5
- ac_status=$?
-- echo "$as_me:8637: \$? = $ac_status" >&5
-+ echo "$as_me:8282: \$? = $ac_status" >&5
- (exit $ac_status); }
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
-@@ -8644,7 +8289,7 @@
-
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 8647 "configure"
-+#line 8292 "configure"
- #include "confdefs.h"
-
- #include <${cf_cv_ncurses_header:-curses.h}>
-@@ -8669,15 +8314,15 @@
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:8672: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8317: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8675: \$? = $ac_status" >&5
-+ echo "$as_me:8320: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:8677: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8322: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8680: \$? = $ac_status" >&5
-+ echo "$as_me:8325: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
- cf_cv_ncurses_version=`cat $cf_tempfile`
-@@ -8691,9 +8336,10 @@
- rm -f $cf_tempfile
-
- fi
--echo "$as_me:8694: result: $cf_cv_ncurses_version" >&5
-+echo "$as_me:8339: result: $cf_cv_ncurses_version" >&5
- echo "${ECHO_T}$cf_cv_ncurses_version" >&6
--test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
-+test "$cf_cv_ncurses_version" = no ||
-+cat >>confdefs.h <<\EOF
- #define NCURSES 1
- EOF
-
-@@ -8703,7 +8349,7 @@
- # to link gpm.
- cf_ncurses_LIBS=""
- cf_ncurses_SAVE="$LIBS"
--echo "$as_me:8706: checking for Gpm_Open in -lgpm" >&5
-+echo "$as_me:8352: 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
-@@ -8711,7 +8357,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8714 "configure"
-+#line 8360 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -8730,16 +8376,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8733: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8379: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8736: \$? = $ac_status" >&5
-+ echo "$as_me:8382: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8739: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8385: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8742: \$? = $ac_status" >&5
-+ echo "$as_me:8388: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_Gpm_Open=yes
- else
-@@ -8750,10 +8396,10 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:8753: result: $ac_cv_lib_gpm_Gpm_Open" >&5
-+echo "$as_me:8399: result: $ac_cv_lib_gpm_Gpm_Open" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
- if test $ac_cv_lib_gpm_Gpm_Open = yes; then
-- echo "$as_me:8756: checking for initscr in -lgpm" >&5
-+ echo "$as_me:8402: checking for initscr in -lgpm" >&5
- echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
- if test "${ac_cv_lib_gpm_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8761,7 +8407,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgpm $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8764 "configure"
-+#line 8410 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -8780,16 +8426,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8783: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8429: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8786: \$? = $ac_status" >&5
-+ echo "$as_me:8432: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8789: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8435: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8792: \$? = $ac_status" >&5
-+ echo "$as_me:8438: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_gpm_initscr=yes
- else
-@@ -8800,7 +8446,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:8803: result: $ac_cv_lib_gpm_initscr" >&5
-+echo "$as_me:8449: result: $ac_cv_lib_gpm_initscr" >&5
- echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
- if test $ac_cv_lib_gpm_initscr = yes; then
- LIBS="$cf_ncurses_SAVE"
-@@ -8815,7 +8461,7 @@
- # This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
- if test "$cf_nculib_root" = ncurses ; then
-- echo "$as_me:8818: checking for tgoto in -lmytinfo" >&5
-+ echo "$as_me:8464: checking for tgoto in -lmytinfo" >&5
- echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
- if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -8823,7 +8469,7 @@
- ac_check_lib_save_LIBS=$LIBS
- LIBS="-lmytinfo $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8826 "configure"
-+#line 8472 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -8842,16 +8488,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8845: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8491: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8848: \$? = $ac_status" >&5
-+ echo "$as_me:8494: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8851: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8497: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8854: \$? = $ac_status" >&5
-+ echo "$as_me:8500: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_mytinfo_tgoto=yes
- else
-@@ -8862,7 +8508,7 @@
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:8865: result: $ac_cv_lib_mytinfo_tgoto" >&5
-+echo "$as_me:8511: result: $ac_cv_lib_mytinfo_tgoto" >&5
- echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
- if test $ac_cv_lib_mytinfo_tgoto = yes; then
- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-@@ -8881,13 +8527,13 @@
-
- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- cf_libdir=""
-- echo "$as_me:8884: checking for initscr" >&5
-+ echo "$as_me:8530: checking for initscr" >&5
- echo $ECHO_N "checking for initscr... $ECHO_C" >&6
- if test "${ac_cv_func_initscr+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
--#line 8890 "configure"
-+#line 8536 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char initscr (); below. */
-@@ -8910,7 +8556,7 @@
- #if defined (__stub_initscr) || defined (__stub___initscr)
- choke me
- #else
--f = initscr;
-+f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
- #endif
-
- ;
-@@ -8918,16 +8564,16 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8921: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8567: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8924: \$? = $ac_status" >&5
-+ echo "$as_me:8570: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8927: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8573: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8930: \$? = $ac_status" >&5
-+ echo "$as_me:8576: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_initscr=yes
- else
-@@ -8937,18 +8583,18 @@
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:8940: result: $ac_cv_func_initscr" >&5
-+echo "$as_me:8586: result: $ac_cv_func_initscr" >&5
- echo "${ECHO_T}$ac_cv_func_initscr" >&6
- if test $ac_cv_func_initscr = yes; then
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- else
-
- cf_save_LIBS="$LIBS"
-- echo "$as_me:8947: checking for initscr in -l$cf_nculib_root" >&5
-+ echo "$as_me:8593: checking for initscr in -l$cf_nculib_root" >&5
- echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
- LIBS="-l$cf_nculib_root $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 8951 "configure"
-+#line 8597 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -8960,25 +8606,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:8963: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8609: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:8966: \$? = $ac_status" >&5
-+ echo "$as_me:8612: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:8969: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8615: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:8972: \$? = $ac_status" >&5
-+ echo "$as_me:8618: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:8974: result: yes" >&5
-+ echo "$as_me:8620: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:8981: result: no" >&5
-+echo "$as_me:8627: result: no" >&5
- echo "${ECHO_T}no" >&6
-
- cf_search=
-@@ -9068,11 +8714,11 @@
-
- for cf_libdir in $cf_search
- do
-- echo "$as_me:9071: checking for -l$cf_nculib_root in $cf_libdir" >&5
-+ echo "$as_me:8717: checking for -l$cf_nculib_root in $cf_libdir" >&5
- echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9075 "configure"
-+#line 8721 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -9084,25 +8730,25 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9087: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8733: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9090: \$? = $ac_status" >&5
-+ echo "$as_me:8736: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9093: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8739: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9096: \$? = $ac_status" >&5
-+ echo "$as_me:8742: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:9098: result: yes" >&5
-+ echo "$as_me:8744: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:9105: result: no" >&5
-+echo "$as_me:8751: result: no" >&5
- echo "${ECHO_T}no" >&6
- LIBS="$cf_save_LIBS"
- fi
-@@ -9117,7 +8763,7 @@
- eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
- if test $cf_found_library = no ; then
-- { { echo "$as_me:9120: error: Cannot link $cf_nculib_root library" >&5
-+ { { echo "$as_me:8766: error: Cannot link $cf_nculib_root library" >&5
- echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
- { (exit 1); exit 1; }; }
- fi
-@@ -9125,7 +8771,7 @@
- fi
-
- if test -n "$cf_ncurses_LIBS" ; then
-- echo "$as_me:9128: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
-+ echo "$as_me:8774: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
- cf_ncurses_SAVE="$LIBS"
- for p in $cf_ncurses_LIBS ; do
-@@ -9135,7 +8781,7 @@
- fi
- done
- cat >conftest.$ac_ext <<_ACEOF
--#line 9138 "configure"
-+#line 8784 "configure"
- #include "confdefs.h"
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
-@@ -9147,23 +8793,23 @@
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9150: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:8796: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9153: \$? = $ac_status" >&5
-+ echo "$as_me:8799: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9156: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:8802: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9159: \$? = $ac_status" >&5
-+ echo "$as_me:8805: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- echo "$as_me:9161: result: yes" >&5
-+ echo "$as_me:8807: result: yes" >&5
- echo "${ECHO_T}yes" >&6
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:9166: result: no" >&5
-+echo "$as_me:8812: result: no" >&5
- echo "${ECHO_T}no" >&6
- LIBS="$cf_ncurses_SAVE"
- fi
-@@ -9179,153 +8825,8 @@
- fi
-
- ;;
--pdcurses) #(vi
--
--echo "$as_me:9184: checking if you want to use pkg-config" >&5
--echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
--
--# Check whether --with-pkg-config or --without-pkg-config was given.
--if test "${with_pkg_config+set}" = set; then
-- withval="$with_pkg_config"
-- cf_pkg_config=$withval
--else
-- cf_pkg_config=yes
--fi;
--echo "$as_me:9194: result: $cf_pkg_config" >&5
--echo "${ECHO_T}$cf_pkg_config" >&6
--
--case $cf_pkg_config in #(vi
--no) #(vi
-- PKG_CONFIG=none
-- ;;
--yes) #(vi
-- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
--set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
--echo "$as_me:9205: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- case $PKG_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:9222: found $ac_dir/$ac_word" >&5
-- break
--fi
--done
--
-- ;;
--esac
--fi
--PKG_CONFIG=$ac_cv_path_PKG_CONFIG
--
--if test -n "$PKG_CONFIG"; then
-- echo "$as_me:9233: result: $PKG_CONFIG" >&5
--echo "${ECHO_T}$PKG_CONFIG" >&6
--else
-- echo "$as_me:9236: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_path_PKG_CONFIG"; then
-- ac_pt_PKG_CONFIG=$PKG_CONFIG
-- # Extract the first word of "pkg-config", so it can be a program name with args.
--set dummy pkg-config; ac_word=$2
--echo "$as_me:9245: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- case $ac_pt_PKG_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:9262: found $ac_dir/$ac_word" >&5
-- break
--fi
--done
--
-- test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none"
-- ;;
--esac
--fi
--ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
--
--if test -n "$ac_pt_PKG_CONFIG"; then
-- echo "$as_me:9274: result: $ac_pt_PKG_CONFIG" >&5
--echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
--else
-- echo "$as_me:9277: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
-- PKG_CONFIG=$ac_pt_PKG_CONFIG
--else
-- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
--fi
--
-- ;;
--*)
-- PKG_CONFIG=$withval
-- ;;
--esac
--
--test -z "$PKG_CONFIG" && PKG_CONFIG=none
--if test "$PKG_CONFIG" != none ; then
--
--if test "x$prefix" != xNONE; then
-- cf_path_syntax="$prefix"
--else
-- cf_path_syntax="$ac_default_prefix"
--fi
--
--case ".$PKG_CONFIG" in #(vi
--.\$\(*\)*|.\'*\'*) #(vi
-- ;;
--..|./*|.\\*) #(vi
-- ;;
--.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-- ;;
--.\${*prefix}*) #(vi
-- eval PKG_CONFIG="$PKG_CONFIG"
-- case ".$PKG_CONFIG" in #(vi
-- .NONE/*)
-- PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
-- ;;
-- esac
-- ;; #(vi
--.no|.NONE/*)
-- PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
-- ;;
--*)
-- { { echo "$as_me:9320: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
--echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
-- { (exit 1); exit 1; }; }
-- ;;
--esac
--
--fi
--
--echo "$as_me:9328: checking for X" >&5
-+pdcurses)
-+ echo "$as_me:8829: checking for X" >&5
- echo $ECHO_N "checking for X... $ECHO_C" >&6
-
- # Check whether --with-x or --without-x was given.
-@@ -9422,17 +8923,17 @@
- # Guess where to find include files, by looking for Intrinsic.h.
- # First, try using that file with no special directory specified.
- cat >conftest.$ac_ext <<_ACEOF
--#line 9425 "configure"
-+#line 8926 "configure"
- #include "confdefs.h"
- #include <X11/Intrinsic.h>
- _ACEOF
--if { (eval echo "$as_me:9429: \"$ac_cpp conftest.$ac_ext\"") >&5
-+if { (eval echo "$as_me:8930: \"$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:9435: \$? = $ac_status" >&5
-+ echo "$as_me:8936: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
-@@ -9465,238 +8966,711 @@
- ac_save_LIBS=$LIBS
- LIBS="-lXt $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9468 "configure"
-+#line 8969 "configure"
-+#include "confdefs.h"
-+#include <X11/Intrinsic.h>
-+int
-+main ()
-+{
-+XtMalloc (0)
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:8981: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8984: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:8987: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:8990: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ LIBS=$ac_save_LIBS
-+# We can link X programs with no special library path.
-+ac_x_libraries=
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+LIBS=$ac_save_LIBS
-+for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
-+do
-+ # Don't even attempt the hair of trying to link an X program!
-+ for ac_extension in a so sl dylib dll; do
-+ if test -r $ac_dir/libXt.$ac_extension; then
-+ ac_x_libraries=$ac_dir
-+ break 2
-+ fi
-+ done
-+done
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi # $ac_x_libraries = no
-+
-+if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
-+ # Didn't find X anywhere. Cache the known absence of X.
-+ ac_cv_have_x="have_x=no"
-+else
-+ # Record where we found X for the cache.
-+ ac_cv_have_x="have_x=yes \
-+ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-+fi
-+fi
-+
-+ fi
-+ eval "$ac_cv_have_x"
-+fi # $with_x != no
-+
-+if test "$have_x" != yes; then
-+ echo "$as_me:9028: result: $have_x" >&5
-+echo "${ECHO_T}$have_x" >&6
-+ no_x=yes
-+else
-+ # If each of the values was on the command line, it overrides each guess.
-+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
-+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
-+ # Update the cache value to reflect the command line values.
-+ ac_cv_have_x="have_x=yes \
-+ ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-+ echo "$as_me:9038: result: libraries $x_libraries, headers $x_includes" >&5
-+echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
-+fi
-+
-+if test "$no_x" = yes; then
-+ # Not all programs may use this symbol, but it does not hurt to define it.
-+
-+cat >>confdefs.h <<\EOF
-+#define X_DISPLAY_MISSING 1
-+EOF
-+
-+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-+else
-+ if test -n "$x_includes"; then
-+ X_CFLAGS="$X_CFLAGS -I$x_includes"
-+ fi
-+
-+ # It would also be nice to do this for all -L options, not just this one.
-+ if test -n "$x_libraries"; then
-+ X_LIBS="$X_LIBS -L$x_libraries"
-+ # For Solaris; some versions of Sun CC require a space after -R and
-+ # others require no space. Words are not sufficient . . . .
-+ case `(uname -sr) 2>/dev/null` in
-+ "SunOS 5"*)
-+ echo "$as_me:9062: checking whether -R must be followed by a space" >&5
-+echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
-+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9066 "configure"
-+#include "confdefs.h"
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9078: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9081: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9084: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9087: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_R_nospace=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_R_nospace=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ if test $ac_R_nospace = yes; then
-+ echo "$as_me:9097: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+ X_LIBS="$X_LIBS -R$x_libraries"
-+ else
-+ LIBS="$ac_xsave_LIBS -R $x_libraries"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9103 "configure"
-+#include "confdefs.h"
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9115: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9118: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9121: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9124: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_R_space=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_R_space=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ if test $ac_R_space = yes; then
-+ echo "$as_me:9134: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+ X_LIBS="$X_LIBS -R $x_libraries"
-+ else
-+ echo "$as_me:9138: result: neither works" >&5
-+echo "${ECHO_T}neither works" >&6
-+ fi
-+ fi
-+ LIBS=$ac_xsave_LIBS
-+ esac
-+ fi
-+
-+ # Check for system-dependent libraries X programs must link with.
-+ # Do this before checking for the system-independent R6 libraries
-+ # (-lICE), since we may need -lsocket or whatever for X linking.
-+
-+ if test "$ISC" = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
-+ else
-+ # Martyn Johnson says this is needed for Ultrix, if the X
-+ # libraries were built with DECnet support. And Karl Berry says
-+ # the Alpha needs dnet_stub (dnet does not exist).
-+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9158 "configure"
-+#include "confdefs.h"
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char XOpenDisplay ();
-+int
-+main ()
-+{
-+XOpenDisplay ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9177: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9180: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9183: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9186: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+echo "$as_me:9192: checking for dnet_ntoa in -ldnet" >&5
-+echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
-+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldnet $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 9200 "configure"
-+#include "confdefs.h"
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char dnet_ntoa ();
-+int
-+main ()
-+{
-+dnet_ntoa ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9219: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9222: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9225: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9228: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_dnet_dnet_ntoa=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_lib_dnet_dnet_ntoa=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:9239: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
-+echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
-+if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
-+fi
-+
-+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
-+ echo "$as_me:9246: checking for dnet_ntoa in -ldnet_stub" >&5
-+echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
-+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldnet_stub $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 9254 "configure"
-+#include "confdefs.h"
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char dnet_ntoa ();
-+int
-+main ()
-+{
-+dnet_ntoa ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9273: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9276: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9279: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9282: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_lib_dnet_stub_dnet_ntoa=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:9293: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
-+echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
-+if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-+fi
-+
-+ fi
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ LIBS="$ac_xsave_LIBS"
-+
-+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
-+ # to get the SysV transport functions.
-+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
-+ # needs -lnsl.
-+ # The nsl library prevents programs from opening the X display
-+ # on Irix 5.2, according to T.E. Dickey.
-+ # The functions gethostbyname, getservbyname, and inet_addr are
-+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
-+ echo "$as_me:9312: checking for gethostbyname" >&5
-+echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
-+if test "${ac_cv_func_gethostbyname+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9318 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char gethostbyname (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char gethostbyname ();
-+char (*f) ();
-+
-+int
-+main ()
-+{
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
-+choke me
-+#else
-+f = gethostbyname; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9349: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9352: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9355: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9358: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_func_gethostbyname=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_func_gethostbyname=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:9368: result: $ac_cv_func_gethostbyname" >&5
-+echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
-+
-+ if test $ac_cv_func_gethostbyname = no; then
-+ echo "$as_me:9372: checking for gethostbyname in -lnsl" >&5
-+echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
-+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lnsl $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 9380 "configure"
-+#include "confdefs.h"
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char gethostbyname ();
-+int
-+main ()
-+{
-+gethostbyname ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:9399: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9402: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:9405: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:9408: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_nsl_gethostbyname=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_lib_nsl_gethostbyname=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:9419: result: $ac_cv_lib_nsl_gethostbyname" >&5
-+echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
-+if test $ac_cv_lib_nsl_gethostbyname = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
-+fi
-+
-+ if test $ac_cv_lib_nsl_gethostbyname = no; then
-+ echo "$as_me:9426: checking for gethostbyname in -lbsd" >&5
-+echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
-+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lbsd $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 9434 "configure"
- #include "confdefs.h"
--#include <X11/Intrinsic.h>
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char gethostbyname ();
- int
- main ()
- {
--XtMalloc (0)
-+gethostbyname ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9480: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9453: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9483: \$? = $ac_status" >&5
-+ echo "$as_me:9456: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9486: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9459: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9489: \$? = $ac_status" >&5
-+ echo "$as_me:9462: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- LIBS=$ac_save_LIBS
--# We can link X programs with no special library path.
--ac_x_libraries=
-+ ac_cv_lib_bsd_gethostbyname=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--LIBS=$ac_save_LIBS
--for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
--do
-- # Don't even attempt the hair of trying to link an X program!
-- for ac_extension in a so sl dylib dll; do
-- if test -r $ac_dir/libXt.$ac_extension; then
-- ac_x_libraries=$ac_dir
-- break 2
-- fi
-- done
--done
-+ac_cv_lib_bsd_gethostbyname=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi # $ac_x_libraries = no
--
--if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
-- # Didn't find X anywhere. Cache the known absence of X.
-- ac_cv_have_x="have_x=no"
--else
-- # Record where we found X for the cache.
-- ac_cv_have_x="have_x=yes \
-- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
--fi
-+LIBS=$ac_check_lib_save_LIBS
- fi
--
-- fi
-- eval "$ac_cv_have_x"
--fi # $with_x != no
--
--if test "$have_x" != yes; then
-- echo "$as_me:9527: result: $have_x" >&5
--echo "${ECHO_T}$have_x" >&6
-- no_x=yes
--else
-- # If each of the values was on the command line, it overrides each guess.
-- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
-- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
-- # Update the cache value to reflect the command line values.
-- ac_cv_have_x="have_x=yes \
-- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-- echo "$as_me:9537: result: libraries $x_libraries, headers $x_includes" >&5
--echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
-+echo "$as_me:9473: result: $ac_cv_lib_bsd_gethostbyname" >&5
-+echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
-+if test $ac_cv_lib_bsd_gethostbyname = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
- fi
-
--if test "$no_x" = yes; then
-- # Not all programs may use this symbol, but it does not hurt to define it.
--
--cat >>confdefs.h <<\EOF
--#define X_DISPLAY_MISSING 1
--EOF
-+ fi
-+ fi
-
-- X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
-+ # socket/setsockopt and other routines are undefined under SCO ODT
-+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
-+ # on later versions), says Simon Leinen: it contains gethostby*
-+ # variants that don't use the nameserver (or something). -lsocket
-+ # must be given before -lnsl if both are needed. We assume that
-+ # if connect needs -lnsl, so does gethostbyname.
-+ echo "$as_me:9489: checking for connect" >&5
-+echo $ECHO_N "checking for connect... $ECHO_C" >&6
-+if test "${ac_cv_func_connect+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- if test -n "$x_includes"; then
-- X_CFLAGS="$X_CFLAGS -I$x_includes"
-- fi
--
-- # It would also be nice to do this for all -L options, not just this one.
-- if test -n "$x_libraries"; then
-- X_LIBS="$X_LIBS -L$x_libraries"
-- # For Solaris; some versions of Sun CC require a space after -R and
-- # others require no space. Words are not sufficient . . . .
-- case `(uname -sr) 2>/dev/null` in
-- "SunOS 5"*)
-- echo "$as_me:9561: checking whether -R must be followed by a space" >&5
--echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
-- ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 9565 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9495 "configure"
- #include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char connect (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char connect ();
-+char (*f) ();
-
- int
- main ()
- {
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_connect) || defined (__stub___connect)
-+choke me
-+#else
-+f = connect; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9577: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9526: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9580: \$? = $ac_status" >&5
-+ echo "$as_me:9529: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9583: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9532: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9586: \$? = $ac_status" >&5
-+ echo "$as_me:9535: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_R_nospace=yes
-+ ac_cv_func_connect=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_R_nospace=no
-+ac_cv_func_connect=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- if test $ac_R_nospace = yes; then
-- echo "$as_me:9596: result: no" >&5
--echo "${ECHO_T}no" >&6
-- X_LIBS="$X_LIBS -R$x_libraries"
-- else
-- LIBS="$ac_xsave_LIBS -R $x_libraries"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 9602 "configure"
-+fi
-+echo "$as_me:9545: result: $ac_cv_func_connect" >&5
-+echo "${ECHO_T}$ac_cv_func_connect" >&6
-+
-+ if test $ac_cv_func_connect = no; then
-+ echo "$as_me:9549: checking for connect in -lsocket" >&5
-+echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
-+if test "${ac_cv_lib_socket_connect+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 9557 "configure"
- #include "confdefs.h"
-
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char connect ();
- int
- main ()
- {
--
-+connect ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9614: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9576: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9617: \$? = $ac_status" >&5
-+ echo "$as_me:9579: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9620: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9582: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9623: \$? = $ac_status" >&5
-+ echo "$as_me:9585: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_R_space=yes
-+ ac_cv_lib_socket_connect=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_R_space=no
-+ac_cv_lib_socket_connect=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- if test $ac_R_space = yes; then
-- echo "$as_me:9633: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-- X_LIBS="$X_LIBS -R $x_libraries"
-- else
-- echo "$as_me:9637: result: neither works" >&5
--echo "${ECHO_T}neither works" >&6
-- fi
-- fi
-- LIBS=$ac_xsave_LIBS
-- esac
-- fi
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:9596: result: $ac_cv_lib_socket_connect" >&5
-+echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
-+if test $ac_cv_lib_socket_connect = yes; then
-+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-+fi
-
-- # Check for system-dependent libraries X programs must link with.
-- # Do this before checking for the system-independent R6 libraries
-- # (-lICE), since we may need -lsocket or whatever for X linking.
-+ fi
-
-- if test "$ISC" = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
-- else
-- # Martyn Johnson says this is needed for Ultrix, if the X
-- # libraries were built with DECnet support. And Karl Berry says
-- # the Alpha needs dnet_stub (dnet does not exist).
-- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
-- cat >conftest.$ac_ext <<_ACEOF
--#line 9657 "configure"
-+ # Guillermo Gomez says -lposix is necessary on A/UX.
-+ echo "$as_me:9605: checking for remove" >&5
-+echo $ECHO_N "checking for remove... $ECHO_C" >&6
-+if test "${ac_cv_func_remove+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9611 "configure"
- #include "confdefs.h"
--
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char remove (); below. */
-+#include <assert.h>
- /* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
- extern "C"
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char XOpenDisplay ();
-+char remove ();
-+char (*f) ();
-+
- int
- main ()
- {
--XOpenDisplay ();
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_remove) || defined (__stub___remove)
-+choke me
-+#else
-+f = remove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9676: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9642: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9679: \$? = $ac_status" >&5
-+ echo "$as_me:9645: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9682: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9648: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9685: \$? = $ac_status" >&5
-+ echo "$as_me:9651: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ ac_cv_func_remove=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--echo "$as_me:9691: checking for dnet_ntoa in -ldnet" >&5
--echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
--if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
-+ac_cv_func_remove=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:9661: result: $ac_cv_func_remove" >&5
-+echo "${ECHO_T}$ac_cv_func_remove" >&6
-+
-+ if test $ac_cv_func_remove = no; then
-+ echo "$as_me:9665: checking for remove in -lposix" >&5
-+echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
-+if test "${ac_cv_lib_posix_remove+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-ldnet $LIBS"
-+LIBS="-lposix $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9699 "configure"
-+#line 9673 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -9705,178 +9679,179 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char dnet_ntoa ();
-+char remove ();
- int
- main ()
- {
--dnet_ntoa ();
-+remove ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9718: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9692: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9721: \$? = $ac_status" >&5
-+ echo "$as_me:9695: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9724: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9698: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9727: \$? = $ac_status" >&5
-+ echo "$as_me:9701: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_dnet_dnet_ntoa=yes
-+ ac_cv_lib_posix_remove=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_dnet_dnet_ntoa=no
-+ac_cv_lib_posix_remove=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9738: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
--echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
--if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
-+echo "$as_me:9712: result: $ac_cv_lib_posix_remove" >&5
-+echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
-+if test $ac_cv_lib_posix_remove = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
- fi
-
-- if test $ac_cv_lib_dnet_dnet_ntoa = no; then
-- echo "$as_me:9745: checking for dnet_ntoa in -ldnet_stub" >&5
--echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
--if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
-+ fi
-+
-+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
-+ echo "$as_me:9721: checking for shmat" >&5
-+echo $ECHO_N "checking for shmat... $ECHO_C" >&6
-+if test "${ac_cv_func_shmat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-ldnet_stub $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 9753 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 9727 "configure"
- #include "confdefs.h"
--
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char shmat (); below. */
-+#include <assert.h>
- /* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
- extern "C"
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char dnet_ntoa ();
-+char shmat ();
-+char (*f) ();
-+
- int
- main ()
- {
--dnet_ntoa ();
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_shmat) || defined (__stub___shmat)
-+choke me
-+#else
-+f = shmat; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9772: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9758: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9775: \$? = $ac_status" >&5
-+ echo "$as_me:9761: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9778: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9764: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9781: \$? = $ac_status" >&5
-+ echo "$as_me:9767: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_dnet_stub_dnet_ntoa=yes
-+ ac_cv_func_shmat=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_dnet_stub_dnet_ntoa=no
-+ac_cv_func_shmat=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:9792: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
--echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
--if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
--fi
--
-- fi
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- LIBS="$ac_xsave_LIBS"
-+echo "$as_me:9777: result: $ac_cv_func_shmat" >&5
-+echo "${ECHO_T}$ac_cv_func_shmat" >&6
-
-- # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
-- # to get the SysV transport functions.
-- # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
-- # needs -lnsl.
-- # The nsl library prevents programs from opening the X display
-- # on Irix 5.2, according to T.E. Dickey.
-- # The functions gethostbyname, getservbyname, and inet_addr are
-- # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
-- echo "$as_me:9811: checking for gethostbyname" >&5
--echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
--if test "${ac_cv_func_gethostbyname+set}" = set; then
-+ if test $ac_cv_func_shmat = no; then
-+ echo "$as_me:9781: checking for shmat in -lipc" >&5
-+echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
-+if test "${ac_cv_lib_ipc_shmat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 9817 "configure"
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lipc $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 9789 "configure"
- #include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char gethostbyname (); below. */
--#include <assert.h>
-+
- /* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
- extern "C"
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char gethostbyname ();
--char (*f) ();
--
-+char shmat ();
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
--choke me
--#else
--f = gethostbyname;
--#endif
--
-+shmat ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9848: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9808: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9851: \$? = $ac_status" >&5
-+ echo "$as_me:9811: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9854: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:9814: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9857: \$? = $ac_status" >&5
-+ echo "$as_me:9817: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_func_gethostbyname=yes
-+ ac_cv_lib_ipc_shmat=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_func_gethostbyname=no
-+ac_cv_lib_ipc_shmat=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:9828: result: $ac_cv_lib_ipc_shmat" >&5
-+echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
-+if test $ac_cv_lib_ipc_shmat = yes; then
-+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
- fi
--echo "$as_me:9867: result: $ac_cv_func_gethostbyname" >&5
--echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
-
-- if test $ac_cv_func_gethostbyname = no; then
-- echo "$as_me:9871: checking for gethostbyname in -lnsl" >&5
--echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
--if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-+ fi
-+ fi
-+
-+ # Check for libraries that X11R6 Xt/Xaw programs need.
-+ ac_save_LDFLAGS=$LDFLAGS
-+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
-+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-+ # check for ICE first), but we must link in the order -lSM -lICE or
-+ # we get undefined symbols. So assume we have SM if we have ICE.
-+ # These have to be linked with before -lX11, unlike the other
-+ # libraries we check for below, so use a different variable.
-+ # John Interrante, Karl Berry
-+ echo "$as_me:9846: checking for IceConnectionNumber in -lICE" >&5
-+echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
-+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lnsl $LIBS"
-+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 9879 "configure"
-+#line 9854 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -9885,291 +9860,502 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char gethostbyname ();
-+char IceConnectionNumber ();
- int
- main ()
- {
--gethostbyname ();
-+IceConnectionNumber ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9898: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:9873: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9901: \$? = $ac_status" >&5
-+ echo "$as_me:9876: \$? = $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:9879: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9907: \$? = $ac_status" >&5
-+ echo "$as_me:9882: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_nsl_gethostbyname=yes
-+ ac_cv_lib_ICE_IceConnectionNumber=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_nsl_gethostbyname=no
-+ac_cv_lib_ICE_IceConnectionNumber=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9918: result: $ac_cv_lib_nsl_gethostbyname" >&5
--echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
--if test $ac_cv_lib_nsl_gethostbyname = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
-+echo "$as_me:9893: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
-+echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
-+if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
-+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
-+fi
-+
-+ LDFLAGS=$ac_save_LDFLAGS
-+
-+fi
-+
-+cf_x_athena=${cf_x_athena:-Xaw}
-+
-+echo "$as_me:9905: checking if you want to link with Xaw 3d library" >&5
-+echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
-+withval=
-+
-+# Check whether --with-Xaw3d or --without-Xaw3d was given.
-+if test "${with_Xaw3d+set}" = set; then
-+ withval="$with_Xaw3d"
-+
-+fi;
-+if test "$withval" = yes ; then
-+ cf_x_athena=Xaw3d
-+ echo "$as_me:9916: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+else
-+ echo "$as_me:9919: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+echo "$as_me:9923: checking if you want to link with neXT Athena library" >&5
-+echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
-+withval=
-+
-+# Check whether --with-neXtaw or --without-neXtaw was given.
-+if test "${with_neXtaw+set}" = set; then
-+ withval="$with_neXtaw"
-+
-+fi;
-+if test "$withval" = yes ; then
-+ cf_x_athena=neXtaw
-+ echo "$as_me:9934: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+else
-+ echo "$as_me:9937: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+echo "$as_me:9941: checking if you want to link with Athena-Plus library" >&5
-+echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
-+withval=
-+
-+# Check whether --with-XawPlus or --without-XawPlus was given.
-+if test "${with_XawPlus+set}" = set; then
-+ withval="$with_XawPlus"
-+
-+fi;
-+if test "$withval" = yes ; then
-+ cf_x_athena=XawPlus
-+ echo "$as_me:9952: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-+else
-+ echo "$as_me:9955: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+cf_x_athena_lib=""
-+
-+if test "$PKG_CONFIG" != none ; then
-+ cf_athena_list=
-+ test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
-+ for cf_athena_pkg in \
-+ $cf_athena_list \
-+ ${cf_x_athena} \
-+ ${cf_x_athena}-devel \
-+ lib${cf_x_athena} \
-+ lib${cf_x_athena}-devel
-+ do
-+
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
-+ test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6
-+
-+echo "${as_me:-configure}:9975: testing found package $cf_athena_pkg ..." 1>&5
-+
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`"
-+ test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
-+
-+echo "${as_me:-configure}:9981: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+
-+ test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
-+
-+echo "${as_me:-configure}:9985: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_pkgconfig_incs
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-- if test $ac_cv_lib_nsl_gethostbyname = no; then
-- echo "$as_me:9925: checking for gethostbyname in -lbsd" >&5
--echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
--if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
-+ LIBS="$cf_pkgconfig_libs $LIBS"
-+
-+ cf_x_athena_lib="$cf_pkgconfig_libs"
-+
-+cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+ cat >>confdefs.h <<EOF
-+#define $cf_x_athena_LIBS 1
-+EOF
-+
-+echo "$as_me:10075: checking for usable $cf_x_athena/Xmu package" >&5
-+echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
-+if test "${cf_cv_xaw_compat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lbsd $LIBS"
-+
- cat >conftest.$ac_ext <<_ACEOF
--#line 9933 "configure"
-+#line 10082 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gethostbyname ();
-+#include <X11/Xmu/CharSet.h>
-+
- int
- main ()
- {
--gethostbyname ();
-+
-+int check = XmuCompareISOLatin1("big", "small")
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:9952: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10098: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:9955: \$? = $ac_status" >&5
-+ echo "$as_me:10101: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:9958: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10104: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:9961: \$? = $ac_status" >&5
-+ echo "$as_me:10107: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_bsd_gethostbyname=yes
-+ cf_cv_xaw_compat=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_bsd_gethostbyname=no
-+cf_cv_xaw_compat=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:9972: result: $ac_cv_lib_bsd_gethostbyname" >&5
--echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
--if test $ac_cv_lib_bsd_gethostbyname = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
-+echo "$as_me:10117: result: $cf_cv_xaw_compat" >&5
-+echo "${ECHO_T}$cf_cv_xaw_compat" >&6
-+
-+ if test "$cf_cv_xaw_compat" = no
-+ then
-+ # workaround for broken ".pc" files...
-+ case "$cf_x_athena_lib" in #(vi
-+ *-lXmu*) #(vi
-+ ;;
-+ *)
-+ test -n "$verbose" && echo " work around broken package" 1>&6
-+
-+echo "${as_me:-configure}:10129: testing work around broken package ..." 1>&5
-+
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
-+ test -n "$verbose" && echo " found package xmu" 1>&6
-+
-+echo "${as_me:-configure}:10134: testing found package xmu ..." 1>&5
-+
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs xmu 2>/dev/null`"
-+ test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
-+
-+echo "${as_me:-configure}:10140: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+
-+ test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6
-+
-+echo "${as_me:-configure}:10144: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_pkgconfig_incs
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-
-- fi
-- fi
-+if test -n "$cf_new_cppflags" ; then
-
-- # lieder@skyler.mavd.honeywell.com says without -lsocket,
-- # socket/setsockopt and other routines are undefined under SCO ODT
-- # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
-- # on later versions), says Simon Leinen: it contains gethostby*
-- # variants that don't use the nameserver (or something). -lsocket
-- # must be given before -lnsl if both are needed. We assume that
-- # if connect needs -lnsl, so does gethostbyname.
-- echo "$as_me:9988: checking for connect" >&5
--echo $ECHO_N "checking for connect... $ECHO_C" >&6
--if test "${ac_cv_func_connect+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ LIBS="$cf_pkgconfig_libs $LIBS"
-+ :
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 9994 "configure"
--#include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char connect (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char connect ();
--char (*f) ();
-
--int
--main ()
--{
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_connect) || defined (__stub___connect)
--choke me
--#else
--f = connect;
--#endif
-+test -n "$verbose" && echo " ...before $LIBS" 1>&6
-+
-+echo "${as_me:-configure}:10230: testing ...before $LIBS ..." 1>&5
-+
-+LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/ / /g'`
-+test -n "$verbose" && echo " ...after $LIBS" 1>&6
-+
-+echo "${as_me:-configure}:10235: testing ...after $LIBS ..." 1>&5
-+
-+fi
-+
-+ ;;
-+ esac
-+ fi
-+
-+ break
-+else
-+ :
-+fi
-+
-+ done
-+fi
-+
-+if test -z "$cf_x_athena_lib" ; then
-+
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
-+ test -n "$verbose" && echo " found package Xext" 1>&6
-+
-+echo "${as_me:-configure}:10256: testing found package Xext ..." 1>&5
-+
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs Xext 2>/dev/null`"
-+ test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
-+
-+echo "${as_me:-configure}:10262: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+
-+ test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6
-+
-+echo "${as_me:-configure}:10266: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_pkgconfig_incs
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10025: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10028: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10031: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10034: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_connect=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_connect=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
--echo "$as_me:10044: result: $ac_cv_func_connect" >&5
--echo "${ECHO_T}$ac_cv_func_connect" >&6
-
-- if test $ac_cv_func_connect = no; then
-- echo "$as_me:10048: checking for connect in -lsocket" >&5
--echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
--if test "${ac_cv_lib_socket_connect+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 10056 "configure"
--#include "confdefs.h"
-+if test -n "$cf_new_cppflags" ; then
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char connect ();
--int
--main ()
--{
--connect ();
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10075: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10078: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10081: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10084: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_lib_socket_connect=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_lib_socket_connect=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:10095: result: $ac_cv_lib_socket_connect" >&5
--echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
--if test $ac_cv_lib_socket_connect = yes; then
-- X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
- fi
-
-- fi
--
-- # Guillermo Gomez says -lposix is necessary on A/UX.
-- echo "$as_me:10104: checking for remove" >&5
--echo $ECHO_N "checking for remove... $ECHO_C" >&6
--if test "${ac_cv_func_remove+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 10110 "configure"
--#include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char remove (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char remove ();
--char (*f) ();
-+if test -n "$cf_new_extra_cppflags" ; then
-
--int
--main ()
--{
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_remove) || defined (__stub___remove)
--choke me
--#else
--f = remove;
--#endif
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10141: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10144: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10147: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10150: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_remove=yes
-+ LIBS="$cf_pkgconfig_libs $LIBS"
-+ :
- else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_remove=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:10160: result: $ac_cv_func_remove" >&5
--echo "${ECHO_T}$ac_cv_func_remove" >&6
-
-- if test $ac_cv_func_remove = no; then
-- echo "$as_me:10164: checking for remove in -lposix" >&5
--echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
--if test "${ac_cv_lib_posix_remove+set}" = set; then
-+ echo "$as_me:10350: checking for XextCreateExtension in -lXext" >&5
-+echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
-+if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lposix $LIBS"
-+LIBS="-lXext $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10172 "configure"
-+#line 10358 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -10178,310 +10364,384 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char remove ();
-+char XextCreateExtension ();
- int
- main ()
- {
--remove ();
-+XextCreateExtension ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10191: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10377: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10194: \$? = $ac_status" >&5
-+ echo "$as_me:10380: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10197: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10383: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10200: \$? = $ac_status" >&5
-+ echo "$as_me:10386: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_posix_remove=yes
-+ ac_cv_lib_Xext_XextCreateExtension=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_posix_remove=no
-+ac_cv_lib_Xext_XextCreateExtension=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10211: result: $ac_cv_lib_posix_remove" >&5
--echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
--if test $ac_cv_lib_posix_remove = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-+echo "$as_me:10397: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
-+echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
-+if test $ac_cv_lib_Xext_XextCreateExtension = yes; then
-+ LIBS="-lXext $LIBS"
- fi
-
-- fi
-+fi
-
-- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
-- echo "$as_me:10220: checking for shmat" >&5
--echo $ECHO_N "checking for shmat... $ECHO_C" >&6
--if test "${ac_cv_func_shmat+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 10226 "configure"
--#include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char shmat (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char shmat ();
--char (*f) ();
-+cf_have_X_LIBS=no
-
--int
--main ()
--{
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_shmat) || defined (__stub___shmat)
--choke me
--#else
--f = shmat;
--#endif
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
-+ test -n "$verbose" && echo " found package xt" 1>&6
-+
-+echo "${as_me:-configure}:10410: testing found package xt ..." 1>&5
-+
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`"
-+ test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
-+
-+echo "${as_me:-configure}:10416: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+
-+ test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
-+
-+echo "${as_me:-configure}:10420: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_pkgconfig_incs
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10257: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10260: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10263: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10266: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_shmat=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_shmat=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
--echo "$as_me:10276: result: $ac_cv_func_shmat" >&5
--echo "${ECHO_T}$ac_cv_func_shmat" >&6
-
-- if test $ac_cv_func_shmat = no; then
-- echo "$as_me:10280: checking for shmat in -lipc" >&5
--echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
--if test "${ac_cv_lib_ipc_shmat+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lipc $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 10288 "configure"
--#include "confdefs.h"
-+if test -n "$cf_new_cppflags" ; then
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char shmat ();
--int
--main ()
--{
--shmat ();
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10307: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10310: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10313: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10316: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_lib_ipc_shmat=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_lib_ipc_shmat=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
- fi
--echo "$as_me:10327: result: $ac_cv_lib_ipc_shmat" >&5
--echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
--if test $ac_cv_lib_ipc_shmat = yes; then
-- X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-- fi
-- fi
-+ LIBS="$cf_pkgconfig_libs $LIBS"
-
-- # Check for libraries that X11R6 Xt/Xaw programs need.
-- ac_save_LDFLAGS=$LDFLAGS
-- test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
-- # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-- # check for ICE first), but we must link in the order -lSM -lICE or
-- # we get undefined symbols. So assume we have SM if we have ICE.
-- # These have to be linked with before -lX11, unlike the other
-- # libraries we check for below, so use a different variable.
-- # John Interrante, Karl Berry
-- echo "$as_me:10345: checking for IceConnectionNumber in -lICE" >&5
--echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
--if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
-+ case "x$LIBS" in #(vi
-+ *-lX11*) #(vi
-+ ;;
-+ *)
-+# we have an "xt" package, but it may omit Xt's dependency on X11
-+echo "$as_me:10507: checking for usable X dependency" >&5
-+echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
-+if test "${cf_cv_xt_x11_compat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lICE $X_EXTRA_LIBS $LIBS"
-+
- cat >conftest.$ac_ext <<_ACEOF
--#line 10353 "configure"
-+#line 10514 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char IceConnectionNumber ();
-+#include <X11/Xlib.h>
-+
- int
- main ()
- {
--IceConnectionNumber ();
-+
-+ int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
-+ int rc2 = XClearWindow((Display*) 0, (Window) 0);
-+ int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
-+ int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10372: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:10533: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10375: \$? = $ac_status" >&5
-+ echo "$as_me:10536: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10378: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:10539: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10381: \$? = $ac_status" >&5
-+ echo "$as_me:10542: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_ICE_IceConnectionNumber=yes
-+ cf_cv_xt_x11_compat=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_ICE_IceConnectionNumber=no
-+cf_cv_xt_x11_compat=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:10392: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
--echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
--if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
-- X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
- fi
-+echo "$as_me:10552: result: $cf_cv_xt_x11_compat" >&5
-+echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
-+ if test "$cf_cv_xt_x11_compat" = no
-+ then
-+ test -n "$verbose" && echo " work around broken X11 dependency" 1>&6
-
-- LDFLAGS=$ac_save_LDFLAGS
-+echo "${as_me:-configure}:10558: testing work around broken X11 dependency ..." 1>&5
-
--fi
-+ # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
-
--cf_x_athena=${cf_x_athena:-Xaw}
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
-+ test -n "$verbose" && echo " found package x11" 1>&6
-
--echo "$as_me:10404: checking if you want to link with Xaw 3d library" >&5
--echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
--withval=
-+echo "${as_me:-configure}:10565: testing found package x11 ..." 1>&5
-
--# Check whether --with-Xaw3d or --without-Xaw3d was given.
--if test "${with_Xaw3d+set}" = set; then
-- withval="$with_Xaw3d"
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`"
-+ test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
-
--fi;
--if test "$withval" = yes ; then
-- cf_x_athena=Xaw3d
-- echo "$as_me:10415: result: yes" >&5
--echo "${ECHO_T}yes" >&6
--else
-- echo "$as_me:10418: result: no" >&5
--echo "${ECHO_T}no" >&6
-+echo "${as_me:-configure}:10571: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+
-+ test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
-+
-+echo "${as_me:-configure}:10575: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in $cf_pkgconfig_incs
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-
--echo "$as_me:10422: checking if you want to link with neXT Athena library" >&5
--echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
--withval=
-+if test -n "$cf_new_cppflags" ; then
-
--# Check whether --with-neXtaw or --without-neXtaw was given.
--if test "${with_neXtaw+set}" = set; then
-- withval="$with_neXtaw"
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-
--fi;
--if test "$withval" = yes ; then
-- cf_x_athena=neXtaw
-- echo "$as_me:10433: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ LIBS="$cf_pkgconfig_libs $LIBS"
-+ :
- else
-- echo "$as_me:10436: result: no" >&5
--echo "${ECHO_T}no" >&6
-+
-+test -n "$verbose" && echo " ...before $LIBS" 1>&6
-+
-+echo "${as_me:-configure}:10661: testing ...before $LIBS ..." 1>&5
-+
-+LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/ / /g'`
-+test -n "$verbose" && echo " ...after $LIBS" 1>&6
-+
-+echo "${as_me:-configure}:10666: testing ...after $LIBS ..." 1>&5
-+
- fi
-
--echo "$as_me:10440: checking if you want to link with Athena-Plus library" >&5
--echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
--withval=
-+ fi
-+ ;;
-+ esac
-+
-+echo "$as_me:10674: checking for usable X Toolkit package" >&5
-+echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
-+if test "${cf_cv_xt_ice_compat+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 10681 "configure"
-+#include "confdefs.h"
-
--# Check whether --with-XawPlus or --without-XawPlus was given.
--if test "${with_XawPlus+set}" = set; then
-- withval="$with_XawPlus"
-+#include <X11/Shell.h>
-
--fi;
--if test "$withval" = yes ; then
-- cf_x_athena=XawPlus
-- echo "$as_me:10451: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+int
-+main ()
-+{
-+int num = IceConnectionNumber(0)
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:10696: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:10699: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:10702: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:10705: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_xt_ice_compat=yes
- else
-- echo "$as_me:10454: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_xt_ice_compat=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
-+echo "$as_me:10715: result: $cf_cv_xt_ice_compat" >&5
-+echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
-
--cf_x_athena_lib=""
-+ if test "$cf_cv_xt_ice_compat" = no
-+ then
-+ # workaround for broken ".pc" files used for X Toolkit.
-+ case "x$X_PRE_LIBS" in #(vi
-+ *-lICE*)
-+ case "x$LIBS" in #(vi
-+ *-lICE*) #(vi
-+ ;;
-+ *)
-+ test -n "$verbose" && echo " work around broken ICE dependency" 1>&6
-
--if test "$PKG_CONFIG" != none ; then
-- cf_athena_list=
-- test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
-- for cf_athena_pkg in \
-- $cf_athena_list \
-- ${cf_x_athena} \
-- ${cf_x_athena}-devel \
-- lib${cf_x_athena} \
-- lib${cf_x_athena}-devel
-- do
-+echo "${as_me:-configure}:10729: testing work around broken ICE dependency ..." 1>&5
-
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
-- test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
-+ test -n "$verbose" && echo " found package ice" 1>&6
-
--echo "${as_me:-configure}:10474: testing found package $cf_athena_pkg ..." 1>&5
-+echo "${as_me:-configure}:10734: testing found package ice ..." 1>&5
-
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`"
-- test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`"
-+ test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
-
--echo "${as_me:-configure}:10480: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:10740: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-
-- test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
-+ test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
-
--echo "${as_me:-configure}:10484: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:10744: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
-
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -10563,84 +10823,20 @@
-
- LIBS="$cf_pkgconfig_libs $LIBS"
-
-- cf_x_athena_lib="$cf_pkgconfig_libs"
--
--cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
-- cat >>confdefs.h <<EOF
--#define $cf_x_athena_LIBS 1
--EOF
--
--echo "$as_me:10574: checking for usable $cf_x_athena/Xmu package" >&5
--echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
--if test "${cf_cv_xaw_compat+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
--cat >conftest.$ac_ext <<_ACEOF
--#line 10581 "configure"
--#include "confdefs.h"
--
--#include <X11/Xmu/CharSet.h>
--
--int
--main ()
--{
--
--int check = XmuCompareISOLatin1("big", "small")
--
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10597: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:10600: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10603: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:10606: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_cv_xaw_compat=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_cv_xaw_compat=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:10616: result: $cf_cv_xaw_compat" >&5
--echo "${ECHO_T}$cf_cv_xaw_compat" >&6
--
-- if test "$cf_cv_xaw_compat" = no
-- then
-- # workaround for broken ".pc" files...
-- case "$cf_x_athena_lib" in #(vi
-- *-lXmu*) #(vi
-- ;;
-- *)
-- test -n "$verbose" && echo " work around broken package" 1>&6
--
--echo "${as_me:-configure}:10628: testing work around broken package ..." 1>&5
--
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
-- test -n "$verbose" && echo " found package xmu" 1>&6
-+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
-+ test -n "$verbose" && echo " found package sm" 1>&6
-
--echo "${as_me:-configure}:10633: testing found package xmu ..." 1>&5
-+echo "${as_me:-configure}:10829: testing found package sm ..." 1>&5
-
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs xmu 2>/dev/null`"
-- test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
-+ cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
-+ cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`"
-+ test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
-
--echo "${as_me:-configure}:10639: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+echo "${as_me:-configure}:10835: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-
-- test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6
-+ test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
-
--echo "${as_me:-configure}:10643: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:10839: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
-
- cf_fix_cppflags=no
- cf_new_cflags=
-@@ -10723,53 +10919,47 @@
- LIBS="$cf_pkgconfig_libs $LIBS"
- :
- else
-+ :
-+fi
-+
-+else
-
- test -n "$verbose" && echo " ...before $LIBS" 1>&6
-
--echo "${as_me:-configure}:10729: testing ...before $LIBS ..." 1>&5
-+echo "${as_me:-configure}:10929: testing ...before $LIBS ..." 1>&5
-
--LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/ / /g'`
-+LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/ / /g'`
- test -n "$verbose" && echo " ...after $LIBS" 1>&6
-
--echo "${as_me:-configure}:10734: testing ...after $LIBS ..." 1>&5
--
--fi
--
-- ;;
-- esac
-- fi
--
-- break
--else
-- :
--fi
-+echo "${as_me:-configure}:10934: testing ...after $LIBS ..." 1>&5
-
-- done
- fi
-
--if test -z "$cf_x_athena_lib" ; then
-+ ;;
-+ esac
-+ ;;
-+ esac
-+ fi
-
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
-- test -n "$verbose" && echo " found package Xext" 1>&6
-+ cf_have_X_LIBS=yes
-
--echo "${as_me:-configure}:10755: testing found package Xext ..." 1>&5
-+else
-
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs Xext 2>/dev/null`"
-- test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
-+ LDFLAGS="$X_LIBS $LDFLAGS"
-
--echo "${as_me:-configure}:10761: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
-
-- test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6
-+echo "${as_me:-configure}:10952: testing checking additions to CFLAGS ..." 1>&5
-
--echo "${as_me:-configure}:10765: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
-+cf_check_cflags="$CFLAGS"
-+cf_check_cppflags="$CPPFLAGS"
-
- cf_fix_cppflags=no
- cf_new_cflags=
- cf_new_cppflags=
- cf_new_extra_cppflags=
-
--for cf_add_cflags in $cf_pkgconfig_incs
-+for cf_add_cflags in $X_CFLAGS
- do
- case $cf_fix_cppflags in
- no)
-@@ -10828,33 +11018,144 @@
- done
-
- if test -n "$cf_new_cflags" ; then
-+ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-+
-+echo "${as_me:-configure}:11023: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-
- CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-
- if test -n "$cf_new_cppflags" ; then
-+ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-+
-+echo "${as_me:-configure}:11031: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-+
-+echo "${as_me:-configure}:11039: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+if test "$cf_check_cflags" != "$CFLAGS" ; then
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 11046 "configure"
-+#include "confdefs.h"
-+#include <stdio.h>
-+int
-+main ()
-+{
-+printf("Hello world");
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11058: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11061: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11064: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11067: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
-+
-+echo "${as_me:-configure}:11075: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
-+
-+ if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
-+ test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
-+
-+echo "${as_me:-configure}:11080: testing but keeping change to \$CPPFLAGS ..." 1>&5
-+
-+ fi
-+ CFLAGS="$cf_check_flags"
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+
-+ echo "$as_me:11088: checking for XOpenDisplay" >&5
-+echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
-+if test "${ac_cv_func_XOpenDisplay+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 11094 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char XOpenDisplay (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char XOpenDisplay ();
-+char (*f) ();
-+
-+int
-+main ()
-+{
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay)
-+choke me
-+#else
-+f = XOpenDisplay; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11125: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11128: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11131: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11134: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_func_XOpenDisplay=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_func_XOpenDisplay=no
- fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
--
-- LIBS="$cf_pkgconfig_libs $LIBS"
-- :
-+echo "$as_me:11144: result: $ac_cv_func_XOpenDisplay" >&5
-+echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
-+if test $ac_cv_func_XOpenDisplay = yes; then
-+ :
- else
-
-- echo "$as_me:10849: checking for XextCreateExtension in -lXext" >&5
--echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
--if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
-+ echo "$as_me:11150: checking for XOpenDisplay in -lX11" >&5
-+echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
-+if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lXext $LIBS"
-+LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 10857 "configure"
-+#line 11158 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -10863,486 +11164,447 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char XextCreateExtension ();
-+char XOpenDisplay ();
- int
- main ()
- {
--XextCreateExtension ();
-+XOpenDisplay ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:10876: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11177: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:10879: \$? = $ac_status" >&5
-+ echo "$as_me:11180: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:10882: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11183: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:10885: \$? = $ac_status" >&5
-+ echo "$as_me:11186: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_Xext_XextCreateExtension=yes
-+ ac_cv_lib_X11_XOpenDisplay=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_Xext_XextCreateExtension=no
-+ac_cv_lib_X11_XOpenDisplay=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:10896: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
--echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
--if test $ac_cv_lib_Xext_XextCreateExtension = yes; then
-- LIBS="-lXext $LIBS"
-+echo "$as_me:11197: result: $ac_cv_lib_X11_XOpenDisplay" >&5
-+echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
-+if test $ac_cv_lib_X11_XOpenDisplay = yes; then
-+ LIBS="-lX11 $LIBS"
- fi
-
- fi
-
--cf_have_X_LIBS=no
--
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
-- test -n "$verbose" && echo " found package xt" 1>&6
--
--echo "${as_me:-configure}:10909: testing found package xt ..." 1>&5
--
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`"
-- test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
--
--echo "${as_me:-configure}:10915: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
--
-- test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
--
--echo "${as_me:-configure}:10919: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_pkgconfig_incs
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ echo "$as_me:11205: checking for XtAppInitialize" >&5
-+echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
-+if test "${ac_cv_func_XtAppInitialize+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 11211 "configure"
-+#include "confdefs.h"
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char XtAppInitialize (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char XtAppInitialize ();
-+char (*f) ();
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+int
-+main ()
-+{
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize)
-+choke me
-+#else
-+f = XtAppInitialize; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11242: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11245: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11248: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11251: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_func_XtAppInitialize=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_func_XtAppInitialize=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:11261: result: $ac_cv_func_XtAppInitialize" >&5
-+echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
-+if test $ac_cv_func_XtAppInitialize = yes; then
-+ :
-+else
-
--if test -n "$cf_new_cflags" ; then
-+ echo "$as_me:11267: checking for XtAppInitialize in -lXt" >&5
-+echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
-+if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 11275 "configure"
-+#include "confdefs.h"
-
-- CFLAGS="$CFLAGS $cf_new_cflags"
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char XtAppInitialize ();
-+int
-+main ()
-+{
-+XtAppInitialize ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11294: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11297: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11300: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11303: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_Xt_XtAppInitialize=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_lib_Xt_XtAppInitialize=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
- fi
-+echo "$as_me:11314: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
-+echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
-+if test $ac_cv_lib_Xt_XtAppInitialize = yes; then
-
--if test -n "$cf_new_cppflags" ; then
-+cat >>confdefs.h <<\EOF
-+#define HAVE_LIBXT 1
-+EOF
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+ cf_have_X_LIBS=Xt
-+ LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
- fi
-
--if test -n "$cf_new_extra_cppflags" ; then
-+fi
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-- LIBS="$cf_pkgconfig_libs $LIBS"
-+if test $cf_have_X_LIBS = no ; then
-+ { echo "$as_me:11331: WARNING: Unable to successfully link X Toolkit library (-lXt) with
-+test program. You will have to check and add the proper libraries by hand
-+to makefile." >&5
-+echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
-+test program. You will have to check and add the proper libraries by hand
-+to makefile." >&2;}
-+fi
-
-- case "x$LIBS" in #(vi
-- *-lX11*) #(vi
-- ;;
-- *)
--# we have an "xt" package, but it may omit Xt's dependency on X11
--echo "$as_me:11006: checking for usable X dependency" >&5
--echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
--if test "${cf_cv_xt_x11_compat+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+cf_x_athena_root=$cf_x_athena
-+cf_x_athena_inc=""
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 11013 "configure"
-+for cf_path in default \
-+ /usr/contrib/X11R6 \
-+ /usr/contrib/X11R5 \
-+ /usr/lib/X11R5 \
-+ /usr/local
-+do
-+ if test -z "$cf_x_athena_inc" ; then
-+ cf_save="$CPPFLAGS"
-+ cf_test=X11/$cf_x_athena_root/SimpleMenu.h
-+ if test $cf_path != default ; then
-+ CPPFLAGS="$cf_save -I$cf_path/include"
-+ echo "$as_me:11353: checking for $cf_test in $cf_path" >&5
-+echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
-+ else
-+ echo "$as_me:11356: checking for $cf_test" >&5
-+echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
-+ fi
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 11360 "configure"
- #include "confdefs.h"
-
--#include <X11/Xlib.h>
--
-+#include <X11/Intrinsic.h>
-+#include <$cf_test>
- int
- main ()
- {
-
-- int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
-- int rc2 = XClearWindow((Display*) 0, (Window) 0);
-- int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
-- int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
--
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11032: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:11374: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11035: \$? = $ac_status" >&5
-+ echo "$as_me:11377: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11038: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:11380: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11041: \$? = $ac_status" >&5
-+ echo "$as_me:11383: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_xt_x11_compat=yes
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_xt_x11_compat=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+cf_result=no
- fi
--echo "$as_me:11051: result: $cf_cv_xt_x11_compat" >&5
--echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
-- if test "$cf_cv_xt_x11_compat" = no
-- then
-- test -n "$verbose" && echo " work around broken X11 dependency" 1>&6
--
--echo "${as_me:-configure}:11057: testing work around broken X11 dependency ..." 1>&5
--
-- # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
--
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
-- test -n "$verbose" && echo " found package x11" 1>&6
--
--echo "${as_me:-configure}:11064: testing found package x11 ..." 1>&5
--
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`"
-- test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
--
--echo "${as_me:-configure}:11070: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
--
-- test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
--
--echo "${as_me:-configure}:11074: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_pkgconfig_incs
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ echo "$as_me:11392: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ if test "$cf_result" = yes ; then
-+ cf_x_athena_inc=$cf_path
-+ break
-+ else
-+ CPPFLAGS="$cf_save"
-+ fi
-+ fi
- done
-
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
--
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
--fi
--
--if test -n "$cf_new_extra_cppflags" ; then
--
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
--
-- LIBS="$cf_pkgconfig_libs $LIBS"
-- :
--else
--
--test -n "$verbose" && echo " ...before $LIBS" 1>&6
--
--echo "${as_me:-configure}:11160: testing ...before $LIBS ..." 1>&5
--
--LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/ / /g'`
--test -n "$verbose" && echo " ...after $LIBS" 1>&6
--
--echo "${as_me:-configure}:11165: testing ...after $LIBS ..." 1>&5
--
-+if test -z "$cf_x_athena_inc" ; then
-+ { echo "$as_me:11404: WARNING: Unable to successfully find Athena header files with test program" >&5
-+echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;}
-+elif test "$cf_x_athena_inc" != default ; then
-+ CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
- fi
-
-- fi
-- ;;
-- esac
--
--echo "$as_me:11173: checking for usable X Toolkit package" >&5
--echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
--if test "${cf_cv_xt_ice_compat+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+cf_x_athena_root=$cf_x_athena
-+cf_x_athena_lib=""
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 11180 "configure"
-+for cf_path in default \
-+ /usr/contrib/X11R6 \
-+ /usr/contrib/X11R5 \
-+ /usr/lib/X11R5 \
-+ /usr/local
-+do
-+ for cf_lib in \
-+ ${cf_x_athena_root} \
-+ ${cf_x_athena_root}7 \
-+ ${cf_x_athena_root}6
-+ do
-+ for cf_libs in \
-+ "-l$cf_lib -lXmu" \
-+ "-l$cf_lib -lXpm -lXmu" \
-+ "-l${cf_lib}_s -lXmu_s"
-+ do
-+ if test -z "$cf_x_athena_lib" ; then
-+ cf_save="$LIBS"
-+ cf_test=XawSimpleMenuAddGlobalActions
-+ if test $cf_path != default ; then
-+ LIBS="-L$cf_path/lib $cf_libs $LIBS"
-+ echo "$as_me:11434: checking for $cf_libs in $cf_path" >&5
-+echo $ECHO_N "checking for $cf_libs in $cf_path... $ECHO_C" >&6
-+ else
-+ LIBS="$cf_libs $LIBS"
-+ echo "$as_me:11438: checking for $cf_test in $cf_libs" >&5
-+echo $ECHO_N "checking for $cf_test in $cf_libs... $ECHO_C" >&6
-+ fi
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 11442 "configure"
- #include "confdefs.h"
-
--#include <X11/Shell.h>
-+#include <X11/Intrinsic.h>
-+#include <X11/$cf_x_athena_root/SimpleMenu.h>
-
- int
- main ()
- {
--int num = IceConnectionNumber(0)
-
-+$cf_test((XtAppContext) 0)
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11195: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:11458: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11198: \$? = $ac_status" >&5
-+ echo "$as_me:11461: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11201: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:11464: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11204: \$? = $ac_status" >&5
-+ echo "$as_me:11467: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_xt_ice_compat=yes
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_xt_ice_compat=no
-+cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:11214: result: $cf_cv_xt_ice_compat" >&5
--echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
--
-- if test "$cf_cv_xt_ice_compat" = no
-- then
-- # workaround for broken ".pc" files used for X Toolkit.
-- case "x$X_PRE_LIBS" in #(vi
-- *-lICE*)
-- case "x$LIBS" in #(vi
-- *-lICE*) #(vi
-- ;;
-- *)
-- test -n "$verbose" && echo " work around broken ICE dependency" 1>&6
--
--echo "${as_me:-configure}:11228: testing work around broken ICE dependency ..." 1>&5
--
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
-- test -n "$verbose" && echo " found package ice" 1>&6
--
--echo "${as_me:-configure}:11233: testing found package ice ..." 1>&5
--
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`"
-- test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
--
--echo "${as_me:-configure}:11239: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
--
-- test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
--
--echo "${as_me:-configure}:11243: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $cf_pkgconfig_incs
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-+ echo "$as_me:11476: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ if test "$cf_result" = yes ; then
-+ cf_x_athena_lib="$cf_libs"
-+ break
- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+ LIBS="$cf_save"
-+ fi
-+ done # cf_libs
-+ test -n "$cf_x_athena_lib" && break
-+ done # cf_lib
-+done
-+
-+if test -z "$cf_x_athena_lib" ; then
-+ { { echo "$as_me:11490: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
-+echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+cat >>confdefs.h <<EOF
-+#define $cf_x_athena_LIBS 1
-+EOF
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+fi
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
-+if test -n "$ac_tool_prefix"; then
-+ for ac_prog in xcurses-config
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:11508: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_XCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$XCURSES_CONFIG"; then
-+ ac_cv_prog_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_XCURSES_CONFIG="$ac_tool_prefix$ac_prog"
-+echo "$as_me:11523: found $ac_dir/$ac_word" >&5
-+break
- done
-
--if test -n "$cf_new_cflags" ; then
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
-+fi
-+fi
-+XCURSES_CONFIG=$ac_cv_prog_XCURSES_CONFIG
-+if test -n "$XCURSES_CONFIG"; then
-+ echo "$as_me:11531: result: $XCURSES_CONFIG" >&5
-+echo "${ECHO_T}$XCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:11534: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
--if test -n "$cf_new_cppflags" ; then
-+ test -n "$XCURSES_CONFIG" && break
-+ done
-+fi
-+if test -z "$XCURSES_CONFIG"; then
-+ ac_ct_XCURSES_CONFIG=$XCURSES_CONFIG
-+ for ac_prog in xcurses-config
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:11547: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_XCURSES_CONFIG+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_XCURSES_CONFIG"; then
-+ ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_ct_XCURSES_CONFIG" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_prog"
-+echo "$as_me:11562: found $ac_dir/$ac_word" >&5
-+break
-+done
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+fi
-+ac_ct_XCURSES_CONFIG=$ac_cv_prog_ac_ct_XCURSES_CONFIG
-+if test -n "$ac_ct_XCURSES_CONFIG"; then
-+ echo "$as_me:11570: result: $ac_ct_XCURSES_CONFIG" >&5
-+echo "${ECHO_T}$ac_ct_XCURSES_CONFIG" >&6
-+else
-+ echo "$as_me:11573: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
--if test -n "$cf_new_extra_cppflags" ; then
-+ test -n "$ac_ct_XCURSES_CONFIG" && break
-+done
-+test -n "$ac_ct_XCURSES_CONFIG" || ac_ct_XCURSES_CONFIG="none"
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+ XCURSES_CONFIG=$ac_ct_XCURSES_CONFIG
- fi
-
-- LIBS="$cf_pkgconfig_libs $LIBS"
-+if test "$XCURSES_CONFIG" != none ; then
-
--if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
-- test -n "$verbose" && echo " found package sm" 1>&6
-+CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
-+LIBS="`$XCURSES_CONFIG --libs` $LIBS"
-
--echo "${as_me:-configure}:11328: testing found package sm ..." 1>&5
-+cf_cv_lib_XCurses=yes
-
-- cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
-- cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`"
-- test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
-+else
-
--echo "${as_me:-configure}:11334: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
-+LDFLAGS="$LDFLAGS $X_LIBS"
-
-- test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
-+test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
-
--echo "${as_me:-configure}:11338: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
-+echo "${as_me:-configure}:11597: testing checking additions to CFLAGS ..." 1>&5
-+
-+cf_check_cflags="$CFLAGS"
-+cf_check_cppflags="$CPPFLAGS"
-
- cf_fix_cppflags=no
- cf_new_cflags=
- cf_new_cppflags=
- cf_new_extra_cppflags=
-
--for cf_add_cflags in $cf_pkgconfig_incs
-+for cf_add_cflags in $X_CFLAGS
- do
- case $cf_fix_cppflags in
- no)
-@@ -11401,260 +11663,375 @@
- done
-
- if test -n "$cf_new_cflags" ; then
-+ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-+
-+echo "${as_me:-configure}:11668: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-
- CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-
- if test -n "$cf_new_cppflags" ; then
-+ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-+
-+echo "${as_me:-configure}:11676: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-
- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
- fi
-
- if test -n "$cf_new_extra_cppflags" ; then
-+ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
-+echo "${as_me:-configure}:11684: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-
-- LIBS="$cf_pkgconfig_libs $LIBS"
-- :
--else
-- :
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
-+if test "$cf_check_cflags" != "$CFLAGS" ; then
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 11691 "configure"
-+#include "confdefs.h"
-+#include <stdio.h>
-+int
-+main ()
-+{
-+printf("Hello world");
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11703: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11706: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11709: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11712: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
- else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
-
--test -n "$verbose" && echo " ...before $LIBS" 1>&6
--
--echo "${as_me:-configure}:11428: testing ...before $LIBS ..." 1>&5
-+echo "${as_me:-configure}:11720: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
-
--LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/ / /g'`
--test -n "$verbose" && echo " ...after $LIBS" 1>&6
-+ if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
-+ test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
-
--echo "${as_me:-configure}:11433: testing ...after $LIBS ..." 1>&5
-+echo "${as_me:-configure}:11725: testing but keeping change to \$CPPFLAGS ..." 1>&5
-
-+ fi
-+ CFLAGS="$cf_check_flags"
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
-
-- ;;
-- esac
-- ;;
-- esac
-- fi
--
-- cf_have_X_LIBS=yes
--
-+echo "$as_me:11733: checking for XOpenDisplay in -lX11" >&5
-+echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
-+if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 11741 "configure"
-+#include "confdefs.h"
-
-- LDFLAGS="$X_LIBS $LDFLAGS"
--
--test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
--
--echo "${as_me:-configure}:11451: testing checking additions to CFLAGS ..." 1>&5
--
--cf_check_cflags="$CFLAGS"
--cf_check_cppflags="$CPPFLAGS"
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char XOpenDisplay ();
-+int
-+main ()
-+{
-+XOpenDisplay ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11760: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11763: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11766: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11769: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_X11_XOpenDisplay=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+ac_cv_lib_X11_XOpenDisplay=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:11780: result: $ac_cv_lib_X11_XOpenDisplay" >&5
-+echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
-+if test $ac_cv_lib_X11_XOpenDisplay = yes; then
-+ LIBS="-lX11 $LIBS"
-+fi
-
--for cf_add_cflags in $X_CFLAGS
--do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+echo "$as_me:11786: checking for XCurses library" >&5
-+echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
-+if test "${cf_cv_lib_XCurses+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
-+LIBS="-lXCurses $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 11794 "configure"
-+#include "confdefs.h"
-
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+#include <xcurses.h>
-+char *XCursesProgramName = "test";
-
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+int
-+main ()
-+{
-+XCursesExit();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:11809: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11812: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:11815: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:11818: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_lib_XCurses=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_lib_XCurses=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+fi
-+echo "$as_me:11829: result: $cf_cv_lib_XCurses" >&5
-+echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+fi
-
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
-+if test $cf_cv_lib_XCurses = yes ; then
-
--if test -n "$cf_new_cflags" ; then
-- test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-+cat >>confdefs.h <<\EOF
-+#define UNIX 1
-+EOF
-
--echo "${as_me:-configure}:11522: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-+cat >>confdefs.h <<\EOF
-+#define XCURSES 1
-+EOF
-
-- CFLAGS="$CFLAGS $cf_new_cflags"
-+ echo "$as_me:11844: checking for xcurses.h" >&5
-+echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
-+if test "${ac_cv_header_xcurses_h+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 11850 "configure"
-+#include "confdefs.h"
-+#include <xcurses.h>
-+_ACEOF
-+if { (eval echo "$as_me:11854: \"$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:11860: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ ac_cv_header_xcurses_h=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ ac_cv_header_xcurses_h=no
-+fi
-+rm -f conftest.err conftest.$ac_ext
- fi
-+echo "$as_me:11879: result: $ac_cv_header_xcurses_h" >&5
-+echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
-+if test $ac_cv_header_xcurses_h = yes; then
-
--if test -n "$cf_new_cppflags" ; then
-- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-+cat >>confdefs.h <<\EOF
-+#define HAVE_XCURSES 1
-+EOF
-
--echo "${as_me:-configure}:11530: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-+fi
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+else
-+ { { echo "$as_me:11890: error: Cannot link with XCurses" >&5
-+echo "$as_me: error: Cannot link with XCurses" >&2;}
-+ { (exit 1); exit 1; }; }
- fi
-
--if test -n "$cf_new_extra_cppflags" ; then
-- test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-+ ;;
-+esac
-
--echo "${as_me:-configure}:11538: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-+case $cf_cv_screen in
-+curses|curses_*)
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
--fi
-+echo "$as_me:11901: checking for NetBSD form.h" >&5
-+echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
-+if test "${cf_cv_netbsd_form_h+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-
--if test "$cf_check_cflags" != "$CFLAGS" ; then
- cat >conftest.$ac_ext <<_ACEOF
--#line 11545 "configure"
-+#line 11908 "configure"
- #include "confdefs.h"
--#include <stdio.h>
-+
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <form.h>
-+
- int
- main ()
- {
--printf("Hello world");
-+
-+ FORM *form;
-+ int y = current_field(form)->cursor_ypos;
-+ int x = current_field(form)->cursor_xpos;
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11557: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:11927: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11560: \$? = $ac_status" >&5
-+ echo "$as_me:11930: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11563: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:11933: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11566: \$? = $ac_status" >&5
-+ echo "$as_me:11936: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ cf_cv_netbsd_form_h=yes
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
--
--echo "${as_me:-configure}:11574: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
--
-- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
-- test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
--
--echo "${as_me:-configure}:11579: testing but keeping change to \$CPPFLAGS ..." 1>&5
--
-- fi
-- CFLAGS="$cf_check_flags"
-+cf_cv_netbsd_form_h=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
- fi
-+echo "$as_me:11948: result: $cf_cv_netbsd_form_h" >&5
-+echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
-
-- echo "$as_me:11587: checking for XOpenDisplay" >&5
--echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
--if test "${ac_cv_func_XOpenDisplay+set}" = set; then
-+test "$cf_cv_netbsd_form_h" = yes &&
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NETBSD_FORM_H 1
-+EOF
-+
-+echo "$as_me:11956: checking for NetBSD menu.h" >&5
-+echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
-+if test "${cf_cv_netbsd_menu_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 11593 "configure"
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 11963 "configure"
- #include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char XOpenDisplay (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char XOpenDisplay ();
--char (*f) ();
-+
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <menu.h>
-
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay)
--choke me
--#else
--f = XOpenDisplay;
--#endif
-+
-+ MENU *menu;
-+ int y = menu->max_item_width;
-
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11624: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:11981: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11627: \$? = $ac_status" >&5
-+ echo "$as_me:11984: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11630: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:11987: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11633: \$? = $ac_status" >&5
-+ echo "$as_me:11990: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_func_XOpenDisplay=yes
-+ cf_cv_netbsd_menu_h=yes
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_func_XOpenDisplay=no
-+cf_cv_netbsd_menu_h=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
- fi
--echo "$as_me:11643: result: $ac_cv_func_XOpenDisplay" >&5
--echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
--if test $ac_cv_func_XOpenDisplay = yes; then
-- :
--else
-+echo "$as_me:12002: result: $cf_cv_netbsd_menu_h" >&5
-+echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
-
-- echo "$as_me:11649: checking for XOpenDisplay in -lX11" >&5
--echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
--if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
-+test "$cf_cv_netbsd_menu_h" = yes &&
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NETBSD_MENU_H 1
-+EOF
-+
-+ ;;
-+ncursesw)
-+ cf_cv_libtype=w
-+ ;;
-+esac
-+
-+case $cf_cv_screen in #(vi
-+pdcurses) #(vi
-+ ;;
-+*)
-+ # look for curses-related libraries
-+ : ${cf_panel_lib:=panel}
-+ : ${cf_menu_lib:=menu}
-+ : ${cf_form_lib:=form}
-+
-+as_ac_Lib=`echo "ac_cv_lib_$cf_panel_lib$cf_cv_libtype''_new_panel" | $as_tr_sh`
-+echo "$as_me:12026: checking for new_panel in -l$cf_panel_lib$cf_cv_libtype" >&5
-+echo $ECHO_N "checking for new_panel in -l$cf_panel_lib$cf_cv_libtype... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-+LIBS="-l$cf_panel_lib$cf_cv_libtype $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11657 "configure"
-+#line 12034 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -11663,115 +12040,116 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char XOpenDisplay ();
-+char new_panel ();
- int
- main ()
- {
--XOpenDisplay ();
-+new_panel ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11676: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12053: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11679: \$? = $ac_status" >&5
-+ echo "$as_me:12056: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11682: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12059: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11685: \$? = $ac_status" >&5
-+ echo "$as_me:12062: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_X11_XOpenDisplay=yes
-+ eval "$as_ac_Lib=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_X11_XOpenDisplay=no
-+eval "$as_ac_Lib=no"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:11696: result: $ac_cv_lib_X11_XOpenDisplay" >&5
--echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
--if test $ac_cv_lib_X11_XOpenDisplay = yes; then
-- LIBS="-lX11 $LIBS"
--fi
-+echo "$as_me:12073: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_LIB$cf_panel_lib$cf_cv_libtype" | $as_tr_cpp` 1
-+EOF
-+
-+ LIBS="-l$cf_panel_lib$cf_cv_libtype $LIBS"
-
- fi
-
-- echo "$as_me:11704: checking for XtAppInitialize" >&5
--echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
--if test "${ac_cv_func_XtAppInitialize+set}" = set; then
-+as_ac_Lib=`echo "ac_cv_lib_$cf_menu_lib$cf_cv_libtype''_menu_driver" | $as_tr_sh`
-+echo "$as_me:12085: checking for menu_driver in -l$cf_menu_lib$cf_cv_libtype" >&5
-+echo $ECHO_N "checking for menu_driver in -l$cf_menu_lib$cf_cv_libtype... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 11710 "configure"
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-l$cf_menu_lib$cf_cv_libtype $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 12093 "configure"
- #include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char XtAppInitialize (); below. */
--#include <assert.h>
-+
- /* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
- extern "C"
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char XtAppInitialize ();
--char (*f) ();
--
-+char menu_driver ();
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize)
--choke me
--#else
--f = XtAppInitialize;
--#endif
--
-+menu_driver ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11741: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12112: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11744: \$? = $ac_status" >&5
-+ echo "$as_me:12115: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11747: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12118: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11750: \$? = $ac_status" >&5
-+ echo "$as_me:12121: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_func_XtAppInitialize=yes
-+ eval "$as_ac_Lib=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_func_XtAppInitialize=no
-+eval "$as_ac_Lib=no"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:12132: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_LIB$cf_menu_lib$cf_cv_libtype" | $as_tr_cpp` 1
-+EOF
-+
-+ LIBS="-l$cf_menu_lib$cf_cv_libtype $LIBS"
-+
- fi
--echo "$as_me:11760: result: $ac_cv_func_XtAppInitialize" >&5
--echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
--if test $ac_cv_func_XtAppInitialize = yes; then
-- :
--else
-
-- echo "$as_me:11766: checking for XtAppInitialize in -lXt" >&5
--echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
--if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
-+as_ac_Lib=`echo "ac_cv_lib_$cf_form_lib$cf_cv_libtype''_form_driver" | $as_tr_sh`
-+echo "$as_me:12144: checking for form_driver in -l$cf_form_lib$cf_cv_libtype" >&5
-+echo $ECHO_N "checking for form_driver in -l$cf_form_lib$cf_cv_libtype... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-+LIBS="-l$cf_form_lib$cf_cv_libtype $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 11774 "configure"
-+#line 12152 "configure"
- #include "confdefs.h"
-
- /* Override any gcc2 internal prototype to avoid an error. */
-@@ -11780,2296 +12158,2187 @@
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char XtAppInitialize ();
-+char form_driver ();
- int
- main ()
- {
--XtAppInitialize ();
-+form_driver ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11793: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12171: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11796: \$? = $ac_status" >&5
-+ echo "$as_me:12174: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11799: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12177: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11802: \$? = $ac_status" >&5
-+ echo "$as_me:12180: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_Xt_XtAppInitialize=yes
-+ eval "$as_ac_Lib=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_Xt_XtAppInitialize=no
-+eval "$as_ac_Lib=no"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:11813: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
--echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
--if test $ac_cv_lib_Xt_XtAppInitialize = yes; then
-- cat >>confdefs.h <<\EOF
--#define HAVE_LIBXT 1
-+echo "$as_me:12191: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_LIB$cf_form_lib$cf_cv_libtype" | $as_tr_cpp` 1
- EOF
-
-- cf_have_X_LIBS=Xt
-- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
-+ LIBS="-l$cf_form_lib$cf_cv_libtype $LIBS"
-+
- fi
-
-+ # look for curses-related headers
-+
-+for ac_header in \
-+ nc_alloc.h \
-+ nomacros.h \
-+ form.h \
-+ menu.h \
-+ panel.h \
-+ term_entry.h \
-+
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:12214: 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 12220 "configure"
-+#include "confdefs.h"
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:12224: \"$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:12230: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
- fi
-+rm -f conftest.err conftest.$ac_ext
-+fi
-+echo "$as_me:12249: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-
- fi
-+done
-
--if test $cf_have_X_LIBS = no ; then
-- { echo "$as_me:11829: WARNING: Unable to successfully link X Toolkit library (-lXt) with
--test program. You will have to check and add the proper libraries by hand
--to makefile." >&5
--echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
--test program. You will have to check and add the proper libraries by hand
--to makefile." >&2;}
-+ ;;
-+esac
-+
-+echo "$as_me:12262: 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 12268 "configure"
-+#include "confdefs.h"
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <string.h>
-+#include <float.h>
-+
-+_ACEOF
-+if { (eval echo "$as_me:12276: \"$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:12282: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ ac_cv_header_stdc=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ ac_cv_header_stdc=no
- fi
-+rm -f conftest.err conftest.$ac_ext
-
--cf_x_athena_root=$cf_x_athena
--cf_x_athena_inc=""
-+if test $ac_cv_header_stdc = yes; then
-+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12304 "configure"
-+#include "confdefs.h"
-+#include <string.h>
-
--for cf_path in default \
-- /usr/contrib/X11R6 \
-- /usr/contrib/X11R5 \
-- /usr/lib/X11R5 \
-- /usr/local
--do
-- if test -z "$cf_x_athena_inc" ; then
-- cf_save="$CPPFLAGS"
-- cf_test=X11/$cf_x_athena_root/SimpleMenu.h
-- if test $cf_path != default ; then
-- CPPFLAGS="$cf_save -I$cf_path/include"
-- echo "$as_me:11851: checking for $cf_test in $cf_path" >&5
--echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
-- else
-- echo "$as_me:11854: checking for $cf_test" >&5
--echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
-- fi
-- cat >conftest.$ac_ext <<_ACEOF
--#line 11858 "configure"
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+ egrep "memchr" >/dev/null 2>&1; then
-+ :
-+else
-+ ac_cv_header_stdc=no
-+fi
-+rm -rf conftest*
-+
-+fi
-+
-+if test $ac_cv_header_stdc = yes; then
-+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12322 "configure"
- #include "confdefs.h"
-+#include <stdlib.h>
-
--#include <X11/Intrinsic.h>
--#include <$cf_test>
-+_ACEOF
-+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-+ egrep "free" >/dev/null 2>&1; then
-+ :
-+else
-+ ac_cv_header_stdc=no
-+fi
-+rm -rf conftest*
-+
-+fi
-+
-+if test $ac_cv_header_stdc = yes; then
-+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-+ if test "$cross_compiling" = yes; then
-+ :
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12343 "configure"
-+#include "confdefs.h"
-+#include <ctype.h>
-+#if ((' ' & 0x0FF) == 0x020)
-+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-+#else
-+# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
-+ || ('j' <= (c) && (c) <= 'r') \
-+ || ('s' <= (c) && (c) <= 'z'))
-+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-+#endif
-+
-+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
- int
- main ()
- {
--
-- ;
-- return 0;
-+ int i;
-+ for (i = 0; i < 256; i++)
-+ if (XOR (islower (i), ISLOWER (i))
-+ || toupper (i) != TOUPPER (i))
-+ $ac_main_return(2);
-+ $ac_main_return (0);
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:11872: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:12369: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:11875: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:11878: \"$ac_try\"") >&5
-+ echo "$as_me:12372: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:12374: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11881: \$? = $ac_status" >&5
-+ echo "$as_me:12377: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ :
- else
-- echo "$as_me: failed program was:" >&5
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
-+ac_cv_header_stdc=no
-+fi
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- echo "$as_me:11890: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- if test "$cf_result" = yes ; then
-- cf_x_athena_inc=$cf_path
-- break
-- else
-- CPPFLAGS="$cf_save"
-- fi
-- fi
--done
--
--if test -z "$cf_x_athena_inc" ; then
-- { echo "$as_me:11902: WARNING: Unable to successfully find Athena header files with test program" >&5
--echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;}
--elif test "$cf_x_athena_inc" != default ; then
-- CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
- fi
-+fi
-+echo "$as_me:12390: result: $ac_cv_header_stdc" >&5
-+echo "${ECHO_T}$ac_cv_header_stdc" >&6
-+if test $ac_cv_header_stdc = yes; then
-
--cf_x_athena_root=$cf_x_athena
--cf_x_athena_lib=""
-+cat >>confdefs.h <<\EOF
-+#define STDC_HEADERS 1
-+EOF
-
--for cf_path in default \
-- /usr/contrib/X11R6 \
-- /usr/contrib/X11R5 \
-- /usr/lib/X11R5 \
-- /usr/local
--do
-- for cf_lib in \
-- "-l$cf_x_athena_root -lXmu" \
-- "-l$cf_x_athena_root -lXpm -lXmu" \
-- "-l${cf_x_athena_root}_s -lXmu_s"
-- do
-- if test -z "$cf_x_athena_lib" ; then
-- cf_save="$LIBS"
-- cf_test=XawSimpleMenuAddGlobalActions
-- if test $cf_path != default ; then
-- LIBS="-L$cf_path/lib $cf_lib $LIBS"
-- echo "$as_me:11927: checking for $cf_lib in $cf_path" >&5
--echo $ECHO_N "checking for $cf_lib in $cf_path... $ECHO_C" >&6
-- else
-- LIBS="$cf_lib $LIBS"
-- echo "$as_me:11931: checking for $cf_test in $cf_lib" >&5
--echo $ECHO_N "checking for $cf_test in $cf_lib... $ECHO_C" >&6
-- fi
-- cat >conftest.$ac_ext <<_ACEOF
--#line 11935 "configure"
-+fi
-+
-+echo "$as_me:12400: 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 12406 "configure"
- #include "confdefs.h"
--
--#include <X11/Intrinsic.h>
--#include <X11/$cf_x_athena_root/SimpleMenu.h>
-+#include <sys/types.h>
-+#include <sys/time.h>
-+#include <time.h>
-
- int
- main ()
- {
--
--$cf_test((XtAppContext) 0)
-+if ((struct tm *) 0)
-+return 0;
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:11951: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:12422: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:11954: \$? = $ac_status" >&5
-+ echo "$as_me:12425: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:11957: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:12428: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:11960: \$? = $ac_status" >&5
-+ echo "$as_me:12431: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ ac_cv_header_time=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
-+ac_cv_header_time=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- echo "$as_me:11969: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- if test "$cf_result" = yes ; then
-- cf_x_athena_lib="$cf_lib"
-- break
-- fi
-- LIBS="$cf_save"
-- fi
-- done
--done
--
--if test -z "$cf_x_athena_lib" ; then
-- { { echo "$as_me:11981: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
--echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
-- { (exit 1); exit 1; }; }
-+rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-+echo "$as_me:12441: result: $ac_cv_header_time" >&5
-+echo "${ECHO_T}$ac_cv_header_time" >&6
-+if test $ac_cv_header_time = yes; then
-
--cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
--cat >>confdefs.h <<EOF
--#define $cf_x_athena_LIBS 1
-+cat >>confdefs.h <<\EOF
-+#define TIME_WITH_SYS_TIME 1
- EOF
-
- fi
-
--for ac_prog in xcurses-config
-+for ac_header in \
-+getopt.h \
-+locale.h \
-+math.h \
-+stdarg.h \
-+sys/ioctl.h \
-+sys/select.h \
-+sys/time.h \
-+termios.h \
-+unistd.h \
-+
- do
-- # Extract the first word of "$ac_prog", so it can be a program name with args.
--set dummy $ac_prog; ac_word=$2
--echo "$as_me:11998: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_path_XCURSES_CONFIG+set}" = set; then
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:12464: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- case $XCURSES_CONFIG in
-- [\\/]* | ?:[\\/]*)
-- ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a path.
-- ;;
-- *)
-- ac_save_IFS=$IFS; IFS=$ac_path_separator
--ac_dummy="$PATH"
--for ac_dir in $ac_dummy; do
-- IFS=$ac_save_IFS
-- test -z "$ac_dir" && ac_dir=.
-- if $as_executable_p "$ac_dir/$ac_word"; then
-- ac_cv_path_XCURSES_CONFIG="$ac_dir/$ac_word"
-- echo "$as_me:12015: found $ac_dir/$ac_word" >&5
-- break
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12470 "configure"
-+#include "confdefs.h"
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:12474: \"$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:12480: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
- fi
--done
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+fi
-+echo "$as_me:12499: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-
-- ;;
--esac
- fi
--XCURSES_CONFIG=$ac_cv_path_XCURSES_CONFIG
-+done
-
--if test -n "$XCURSES_CONFIG"; then
-- echo "$as_me:12026: result: $XCURSES_CONFIG" >&5
--echo "${ECHO_T}$XCURSES_CONFIG" >&6
-+for ac_header in unistd.h getopt.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:12512: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- echo "$as_me:12029: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12518 "configure"
-+#include "confdefs.h"
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:12522: \"$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:12528: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ eval "$as_ac_Header=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ eval "$as_ac_Header=no"
-+fi
-+rm -f conftest.err conftest.$ac_ext
- fi
-+echo "$as_me:12547: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+EOF
-
-- test -n "$XCURSES_CONFIG" && break
-+fi
- done
--test -n "$XCURSES_CONFIG" || XCURSES_CONFIG="none"
--
--if test "$XCURSES_CONFIG" != none ; then
--
--CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
--LIBS="`$XCURSES_CONFIG --libs` $LIBS"
--
--cf_cv_lib_XCurses=yes
-
-+echo "$as_me:12557: checking for header declaring getopt variables" >&5
-+echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
-+if test "${cf_cv_getopt_header+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--LDFLAGS="$LDFLAGS $X_LIBS"
--
--test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
--
--echo "${as_me:-configure}:12050: testing checking additions to CFLAGS ..." 1>&5
--
--cf_check_cflags="$CFLAGS"
--cf_check_cppflags="$CPPFLAGS"
--
--cf_fix_cppflags=no
--cf_new_cflags=
--cf_new_cppflags=
--cf_new_extra_cppflags=
--
--for cf_add_cflags in $X_CFLAGS
-+cf_cv_getopt_header=none
-+for cf_header in stdio.h stdlib.h unistd.h getopt.h
- do
--case $cf_fix_cppflags in
--no)
-- case $cf_add_cflags in #(vi
-- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-- case $cf_add_cflags in
-- -D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=yes
--
-- if test $cf_fix_cppflags = yes ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- elif test "${cf_tst_cflags}" = "\"'" ; then
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-- continue
-- fi
-- ;;
-- esac
-- case "$CPPFLAGS" in
-- *$cf_add_cflags) #(vi
-- ;;
-- *) #(vi
-- case $cf_add_cflags in #(vi
-- -D*)
-- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
--
--CPPFLAGS=`echo "$CPPFLAGS" | \
-- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
--
-- ;;
-- esac
-- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
-- *)
-- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-- ;;
-- esac
-- ;;
--yes)
-- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
--
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
--
-- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-- && test -z "${cf_tst_cflags}" \
-- && cf_fix_cppflags=no
-- ;;
--esac
--done
--
--if test -n "$cf_new_cflags" ; then
-- test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
--
--echo "${as_me:-configure}:12121: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
--
-- CFLAGS="$CFLAGS $cf_new_cflags"
--fi
--
--if test -n "$cf_new_cppflags" ; then
-- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
--
--echo "${as_me:-configure}:12129: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 12567 "configure"
-+#include "confdefs.h"
-
-- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+#include <$cf_header>
-+int
-+main ()
-+{
-+int x = optind; char *y = optarg
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:12580: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12583: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:12586: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12589: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_getopt_header=$cf_header
-+ break
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
- fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-
--if test -n "$cf_new_extra_cppflags" ; then
-- test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-+fi
-+echo "$as_me:12601: result: $cf_cv_getopt_header" >&5
-+echo "${ECHO_T}$cf_cv_getopt_header" >&6
-+if test $cf_cv_getopt_header != none ; then
-
--echo "${as_me:-configure}:12137: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-+cat >>confdefs.h <<\EOF
-+#define HAVE_GETOPT_HEADER 1
-+EOF
-
-- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
- fi
-
--if test "$cf_check_cflags" != "$CFLAGS" ; then
--cat >conftest.$ac_ext <<_ACEOF
--#line 12144 "configure"
-+for ac_func in \
-+gettimeofday \
-+
-+do
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+echo "$as_me:12616: 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 12622 "configure"
- #include "confdefs.h"
--#include <stdio.h>
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func (); below. */
-+#include <assert.h>
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func ();
-+char (*f) ();
-+
- int
- main ()
- {
--printf("Hello world");
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12156: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12653: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12159: \$? = $ac_status" >&5
-+ echo "$as_me:12656: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12162: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12659: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12165: \$? = $ac_status" >&5
-+ echo "$as_me:12662: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ eval "$as_ac_var=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
--
--echo "${as_me:-configure}:12173: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
--
-- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
-- test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
--
--echo "${as_me:-configure}:12178: testing but keeping change to \$CPPFLAGS ..." 1>&5
--
-- fi
-- CFLAGS="$cf_check_flags"
-+eval "$as_ac_var=no"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- fi
-+echo "$as_me:12672: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+EOF
-+
-+fi
-+done
-
--echo "$as_me:12186: checking for XOpenDisplay in -lX11" >&5
--echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
--if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
-+if test "$cf_enable_widec" = yes; then
-+
-+for ac_func in \
-+mblen \
-+mbrlen \
-+mbrtowc \
-+mbsrtowcs \
-+mbstowcs \
-+mbtowc \
-+wcsrtombs \
-+wcstombs \
-+
-+do
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+echo "$as_me:12696: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 12194 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12702 "configure"
- #include "confdefs.h"
--
-+/* System header to define __stub macros and hopefully few prototypes,
-+ which can conflict with char $ac_func (); below. */
-+#include <assert.h>
- /* Override any gcc2 internal prototype to avoid an error. */
- #ifdef __cplusplus
- extern "C"
- #endif
- /* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
--char XOpenDisplay ();
-+char $ac_func ();
-+char (*f) ();
-+
- int
- main ()
- {
--XOpenDisplay ();
-+/* The GNU C library defines this for functions which it implements
-+ to always fail with ENOSYS. Some functions are actually named
-+ something starting with __ and the normal name is an alias. */
-+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+choke me
-+#else
-+f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12213: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12733: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12216: \$? = $ac_status" >&5
-+ echo "$as_me:12736: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12219: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:12739: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12222: \$? = $ac_status" >&5
-+ echo "$as_me:12742: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_lib_X11_XOpenDisplay=yes
-+ eval "$as_ac_var=yes"
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_lib_X11_XOpenDisplay=no
-+eval "$as_ac_var=no"
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:12233: result: $ac_cv_lib_X11_XOpenDisplay" >&5
--echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
--if test $ac_cv_lib_X11_XOpenDisplay = yes; then
-- LIBS="-lX11 $LIBS"
-+echo "$as_me:12752: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ cat >>confdefs.h <<EOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+EOF
-+
- fi
-+done
-
--echo "$as_me:12239: checking for XCurses library" >&5
--echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
--if test "${cf_cv_lib_XCurses+set}" = set; then
-+fi
-+
-+echo "$as_me:12764: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-+echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
-+if test "${cf_cv_need_xopen_extension+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--LIBS="-lXCurses $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 12247 "configure"
-+#line 12771 "configure"
- #include "confdefs.h"
-
--#include <xcurses.h>
--char *XCursesProgramName = "test";
-+#include <stdlib.h>
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+int
-+main ()
-+{
-+
-+#if defined(NCURSES_VERSION_PATCH)
-+#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
-+ make an error
-+#endif
-+#endif
-+ long x = winnstr(stdscr, "", 0);
-+ int x1, y1;
-+ getbegyx(stdscr, y1, x1)
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:12793: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12796: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:12799: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12802: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_need_xopen_extension=no
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 12809 "configure"
-+#include "confdefs.h"
-
-+#define _XOPEN_SOURCE_EXTENDED
-+#include <stdlib.h>
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--XCursesExit();
-+
-+#ifdef NCURSES_VERSION
-+ cchar_t check;
-+ int check2 = curs_set((int)sizeof(check));
-+#endif
-+ long x = winnstr(stdscr, "", 0);
-+ int x1, y1;
-+ getbegyx(stdscr, y1, x1)
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12262: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:12831: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12265: \$? = $ac_status" >&5
-+ echo "$as_me:12834: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:12837: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12840: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_need_xopen_extension=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_need_xopen_extension=unknown
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:12852: result: $cf_cv_need_xopen_extension" >&5
-+echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
-+test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-+
-+echo "$as_me:12856: checking for term.h" >&5
-+echo $ECHO_N "checking for term.h... $ECHO_C" >&6
-+if test "${cf_cv_term_header+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
-+# for <term.h> if we do not find the variant.
-+
-+cf_header_list="term.h ncurses/term.h ncursesw/term.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
-+ cf_header_list="$cf_header_item $cf_header_list"
-+ ;;
-+esac
-+
-+for cf_header in $cf_header_list
-+do
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12877 "configure"
-+#include "confdefs.h"
-+
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <${cf_header}>
-+int
-+main ()
-+{
-+WINDOW *x
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:12891: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12894: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:12897: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12900: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_term_header=$cf_header
-+ break
-+else
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_cv_term_header=no
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-+
-+case $cf_cv_term_header in #(vi
-+no)
-+ # If curses is ncurses, some packagers still mess it up by trying to make
-+ # us use GNU termcap. This handles the most common case.
-+ for cf_header in ncurses/term.h ncursesw/term.h
-+ do
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 12919 "configure"
-+#include "confdefs.h"
-+
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#ifdef NCURSES_VERSION
-+#include <${cf_header}>
-+#else
-+make an error
-+#endif
-+int
-+main ()
-+{
-+WINDOW *x
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:12937: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:12940: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12268: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:12943: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12271: \$? = $ac_status" >&5
-+ echo "$as_me:12946: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_lib_XCurses=yes
-+ cf_cv_term_header=$cf_header
-+ break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_lib_XCurses=no
-+cf_cv_term_header=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ done
-+ ;;
-+esac
-
- fi
--echo "$as_me:12282: result: $cf_cv_lib_XCurses" >&5
--echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
-+echo "$as_me:12961: result: $cf_cv_term_header" >&5
-+echo "${ECHO_T}$cf_cv_term_header" >&6
-
--fi
-+case $cf_cv_term_header in #(vi
-+term.h) #(vi
-
--if test $cf_cv_lib_XCurses = yes ; then
-- cat >>confdefs.h <<\EOF
--#define UNIX 1
-+cat >>confdefs.h <<\EOF
-+#define HAVE_TERM_H 1
- EOF
-
-- cat >>confdefs.h <<\EOF
--#define XCURSES 1
--EOF
-+ ;;
-+ncurses/term.h) #(vi
-
-- echo "$as_me:12296: checking for xcurses.h" >&5
--echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
--if test "${ac_cv_header_xcurses_h+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12302 "configure"
--#include "confdefs.h"
--#include <xcurses.h>
--_ACEOF
--if { (eval echo "$as_me:12306: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:12312: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- ac_cv_header_xcurses_h=yes
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- ac_cv_header_xcurses_h=no
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:12331: result: $ac_cv_header_xcurses_h" >&5
--echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
--if test $ac_cv_header_xcurses_h = yes; then
-- cat >>confdefs.h <<\EOF
--#define HAVE_XCURSES 1
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_TERM_H 1
- EOF
-
--fi
-+ ;;
-+ncursesw/term.h)
-
--else
-- { { echo "$as_me:12341: error: Cannot link with XCurses" >&5
--echo "$as_me: error: Cannot link with XCurses" >&2;}
-- { (exit 1); exit 1; }; }
--fi
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSESW_TERM_H 1
-+EOF
-
- ;;
- esac
-
--case $cf_cv_screen in #(vi
--pdcurses) #(vi
-- ;;
--*)
-- # look for curses-related libraries
--
--as_ac_Lib=`echo "ac_cv_lib_panel$cf_cv_libtype''_new_panel" | $as_tr_sh`
--echo "$as_me:12356: checking for new_panel in -lpanel$cf_cv_libtype" >&5
--echo $ECHO_N "checking for new_panel in -lpanel$cf_cv_libtype... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+echo "$as_me:12988: checking for unctrl.h" >&5
-+echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6
-+if test "${cf_cv_unctrl_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lpanel$cf_cv_libtype $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 12364 "configure"
-+
-+# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
-+# for <unctrl.h> if we do not find the variant.
-+
-+cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
-+
-+case ${cf_cv_ncurses_header:-curses.h} in #(vi
-+*/*)
-+ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
-+ cf_header_list="$cf_header_item $cf_header_list"
-+ ;;
-+esac
-+
-+for cf_header in $cf_header_list
-+do
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13009 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char new_panel ();
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <${cf_header}>
- int
- main ()
- {
--new_panel ();
-+WINDOW *x
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12383: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:13023: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:12386: \$? = $ac_status" >&5
-+ echo "$as_me:13026: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12389: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:13029: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12392: \$? = $ac_status" >&5
-+ echo "$as_me:13032: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- eval "$as_ac_Lib=yes"
-+ cf_cv_unctrl_header=$cf_header
-+ break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--eval "$as_ac_Lib=no"
-+cf_cv_unctrl_header=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+done
-+
-+case $cf_cv_unctrl_header in #(vi
-+no)
-+ { echo "$as_me:13046: WARNING: unctrl.h header not found" >&5
-+echo "$as_me: WARNING: unctrl.h header not found" >&2;}
-+ ;;
-+esac
-+
- fi
--echo "$as_me:12403: result: `eval echo '${'$as_ac_Lib'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
--if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_LIBpanel$cf_cv_libtype" | $as_tr_cpp` 1
-+echo "$as_me:13052: result: $cf_cv_unctrl_header" >&5
-+echo "${ECHO_T}$cf_cv_unctrl_header" >&6
-+
-+case $cf_cv_unctrl_header in #(vi
-+unctrl.h) #(vi
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_UNCTRL_H 1
- EOF
-
-- LIBS="-lpanel$cf_cv_libtype $LIBS"
-+ ;;
-+ncurses/unctrl.h) #(vi
-
--fi
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSES_UNCTRL_H 1
-+EOF
-
--as_ac_Lib=`echo "ac_cv_lib_menu$cf_cv_libtype''_menu_driver" | $as_tr_sh`
--echo "$as_me:12415: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
--echo $ECHO_N "checking for menu_driver in -lmenu$cf_cv_libtype... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+ ;;
-+ncursesw/unctrl.h)
-+
-+cat >>confdefs.h <<\EOF
-+#define HAVE_NCURSESW_UNCTRL_H 1
-+EOF
-+
-+ ;;
-+esac
-+
-+for cf_func in \
-+assume_default_colors \
-+chgat \
-+color_set \
-+filter \
-+getbegx \
-+getcurx \
-+getmaxx \
-+getnstr \
-+getparx \
-+getwin \
-+mvvline \
-+mvwvline \
-+napms \
-+putwin \
-+resize_term \
-+resizeterm \
-+ripoffline \
-+scr_dump \
-+setupterm \
-+slk_color \
-+slk_init \
-+termattrs \
-+tgetent \
-+tigetnum \
-+tigetstr \
-+typeahead \
-+use_default_colors \
-+use_screen \
-+use_window \
-+vsscanf \
-+vw_printw \
-+wchgat \
-+winsstr \
-+wresize \
-+wsyncdown \
-+
-+do
-+
-+cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+ echo "$as_me:13120: checking for ${cf_func}" >&5
-+echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
-+
-+echo "${as_me:-configure}:13123: testing ${cf_func} ..." 1>&5
-+
-+ if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lmenu$cf_cv_libtype $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 12423 "configure"
-+
-+ eval cf_result='$ac_cv_func_'$cf_func
-+ if test ".$cf_result" != ".no"; then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13132 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char menu_driver ();
-+#endif
-+
- int
- main ()
- {
--menu_driver ();
-+
-+#ifndef ${cf_func}
-+long foo = (long)(&${cf_func});
-+if (foo + 1234 > 5678)
-+ ${cf_cv_main_return:-return}(foo);
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12442: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13164: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12445: \$? = $ac_status" >&5
-+ echo "$as_me:13167: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12448: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13170: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12451: \$? = $ac_status" >&5
-+ echo "$as_me:13173: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- eval "$as_ac_Lib=yes"
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--eval "$as_ac_Lib=no"
-+cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
-+ fi
-+ eval 'cf_cv_func_'$cf_func'=$cf_result'
-+
- fi
--echo "$as_me:12462: result: `eval echo '${'$as_ac_Lib'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
--if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_LIBmenu$cf_cv_libtype" | $as_tr_cpp` 1
-+
-+ # use the computed/retrieved cache-value:
-+ eval 'cf_result=$cf_cv_func_'$cf_func
-+ echo "$as_me:13189: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ if test $cf_result != no; then
-+ cat >>confdefs.h <<EOF
-+#define HAVE_${cf_tr_func} 1
- EOF
-
-- LIBS="-lmenu$cf_cv_libtype $LIBS"
-+ fi
-+done
-
--fi
-+for cf_func in tputs
-+do
-
--as_ac_Lib=`echo "ac_cv_lib_form$cf_cv_libtype''_form_driver" | $as_tr_sh`
--echo "$as_me:12474: checking for form_driver in -lform$cf_cv_libtype" >&5
--echo $ECHO_N "checking for form_driver in -lform$cf_cv_libtype... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+ echo "$as_me:13204: checking for ${cf_func}" >&5
-+echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
-+
-+echo "${as_me:-configure}:13207: testing ${cf_func} ..." 1>&5
-+
-+ if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_check_lib_save_LIBS=$LIBS
--LIBS="-lform$cf_cv_libtype $LIBS"
--cat >conftest.$ac_ext <<_ACEOF
--#line 12482 "configure"
-+
-+ eval cf_result='$ac_cv_func_'$cf_func
-+ if test ".$cf_result" != ".no"; then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13216 "configure"
- #include "confdefs.h"
-
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char form_driver ();
-+#endif
-+
- int
- main ()
- {
--form_driver ();
-+
-+#ifndef ${cf_func}
-+long foo = (long)(&${cf_func});
-+if (foo + 1234 > 5678)
-+ ${cf_cv_main_return:-return}(foo);
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12501: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13248: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12504: \$? = $ac_status" >&5
-+ echo "$as_me:13251: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12507: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13254: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12510: \$? = $ac_status" >&5
-+ echo "$as_me:13257: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- eval "$as_ac_Lib=yes"
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--eval "$as_ac_Lib=no"
-+cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--LIBS=$ac_check_lib_save_LIBS
--fi
--echo "$as_me:12521: result: `eval echo '${'$as_ac_Lib'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
--if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_LIBform$cf_cv_libtype" | $as_tr_cpp` 1
--EOF
--
-- LIBS="-lform$cf_cv_libtype $LIBS"
-+ fi
-+ eval 'cf_cv_func_'$cf_func'=$cf_result'
-
- fi
-
-- # look for curses-related headers
--
--for ac_header in \
-- nc_alloc.h \
-- nomacros.h \
-- form.h \
-- menu.h \
-- panel.h \
-- term_entry.h \
--
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:12544: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12550 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:12554: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:12560: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- eval "$as_ac_Header=yes"
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:12579: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+ # use the computed/retrieved cache-value:
-+ eval 'cf_result=$cf_cv_func_'$cf_func
-+ echo "$as_me:13273: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ if test $cf_result != no; then
-+ cat >>confdefs.h <<EOF
-+#define HAVE_${cf_tr_func} 1
- EOF
-
--fi
-+ fi
- done
-
-- ;;
--esac
--
--echo "$as_me:12592: checking return type of signal handlers" >&5
--echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
--if test "${ac_cv_type_signal+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12598 "configure"
-+if test x$cf_cv_func_tputs = xyes
-+then
-+ cf_done=no
-+ for cf_arg in int char
-+ do
-+ for cf_ret in int void
-+ do
-+ if test $cf_ret = void
-+ then
-+ cf_return="/* nothing */"
-+ else
-+ cf_return="return value"
-+ fi
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13297 "configure"
- #include "confdefs.h"
--#include <sys/types.h>
--#include <signal.h>
--#ifdef signal
--# undef signal
--#endif
--#ifdef __cplusplus
--extern "C" void (*signal (int, void (*)(int)))(int);
--#else
--void (*signal ()) ();
--#endif
-+
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <$cf_cv_term_header>
-+
-+static $cf_ret outc($cf_arg value) { $cf_return; }
-
- int
- main ()
- {
--int i;
-+
-+ tputs("hello", 0, outc);
-+ ${cf_cv_main_return:-return}(0);
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:12620: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13317: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:12623: \$? = $ac_status" >&5
-+ echo "$as_me:13320: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:12626: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13323: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12629: \$? = $ac_status" >&5
-+ echo "$as_me:13326: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_type_signal=void
-+
-+ test -n "$verbose" && echo " prototype $cf_ret func($cf_arg value)" 1>&6
-+
-+echo "${as_me:-configure}:13331: testing prototype $cf_ret func($cf_arg value) ..." 1>&5
-+
-+ cat >>confdefs.h <<EOF
-+#define TPUTS_ARG $cf_arg
-+#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
-+#define TPUTS_RETURN(value) $cf_return
-+EOF
-+ cf_done=yes
-+ break
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_type_signal=int
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-+ done
-+ test $cf_done = yes && break
-+ done
- fi
--echo "$as_me:12639: result: $ac_cv_type_signal" >&5
--echo "${ECHO_T}$ac_cv_type_signal" >&6
-
--cat >>confdefs.h <<EOF
--#define RETSIGTYPE $ac_cv_type_signal
--EOF
--
--echo "$as_me:12646: checking for ANSI C header files" >&5
--echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
--if test "${ac_cv_header_stdc+set}" = set; then
-+echo "$as_me:13351: checking for ncurses extended functions" >&5
-+echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
-+if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12652 "configure"
--#include "confdefs.h"
--#include <stdlib.h>
--#include <stdarg.h>
--#include <string.h>
--#include <float.h>
--
--_ACEOF
--if { (eval echo "$as_me:12660: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:12666: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- ac_cv_header_stdc=yes
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- ac_cv_header_stdc=no
--fi
--rm -f conftest.err conftest.$ac_ext
-
--if test $ac_cv_header_stdc = yes; then
-- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12688 "configure"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 13358 "configure"
- #include "confdefs.h"
--#include <string.h>
--
--_ACEOF
--if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-- egrep "memchr" >/dev/null 2>&1; then
-- :
--else
-- ac_cv_header_stdc=no
--fi
--rm -rf conftest*
-
--fi
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+int
-+main ()
-+{
-
--if test $ac_cv_header_stdc = yes; then
-- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12706 "configure"
--#include "confdefs.h"
--#include <stdlib.h>
-+int x = NCURSES_EXT_FUNCS
-
-+ ;
-+ return 0;
-+}
- _ACEOF
--if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-- egrep "free" >/dev/null 2>&1; then
-- :
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:13373: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:13376: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:13379: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:13382: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_cv_ncurses_ext_funcs=defined
- else
-- ac_cv_header_stdc=no
--fi
--rm -rf conftest*
--
--fi
-+ echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-
--if test $ac_cv_header_stdc = yes; then
-- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-- if test "$cross_compiling" = yes; then
-- :
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12727 "configure"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 13390 "configure"
- #include "confdefs.h"
--#include <ctype.h>
--#if ((' ' & 0x0FF) == 0x020)
--# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
--# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
--#else
--# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
-- || ('j' <= (c) && (c) <= 'r') \
-- || ('s' <= (c) && (c) <= 'z'))
--# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
--#endif
-
--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
-- int i;
-- for (i = 0; i < 256; i++)
-- if (XOR (islower (i), ISLOWER (i))
-- || toupper (i) != TOUPPER (i))
-- $ac_main_return(2);
-- $ac_main_return (0);
-+
-+ (void) assume_default_colors (0, 0);
-+ (void) curses_version ();
-+ (void) define_key (0, 0);
-+ (void) is_term_resized (0, 0);
-+ (void) key_defined (0);
-+ (void) keybound (0, 0);
-+ (void) keyok (0, 0);
-+ (void) resize_term (0, 0);
-+ (void) resizeterm (0, 0);
-+ (void) use_default_colors ();
-+ (void) use_extended_names (0);
-+ (void) wresize (0, 0, 0);
-+ ;
-+ return 0;
- }
- _ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:12753: \"$ac_link\"") >&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:13415: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:12756: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:12758: \"$ac_try\"") >&5
-+ echo "$as_me:13418: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:13421: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12761: \$? = $ac_status" >&5
-+ echo "$as_me:13424: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- :
-+ cf_cv_ncurses_ext_funcs=yes
- else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+ echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_header_stdc=no
--fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
-+cf_cv_ncurses_ext_funcs=no
- fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+
- fi
--echo "$as_me:12774: result: $ac_cv_header_stdc" >&5
--echo "${ECHO_T}$ac_cv_header_stdc" >&6
--if test $ac_cv_header_stdc = yes; then
-+rm -f conftest.$ac_objext conftest.$ac_ext
-
-+fi
-+echo "$as_me:13438: result: $cf_cv_ncurses_ext_funcs" >&5
-+echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
-+test "$cf_cv_ncurses_ext_funcs" = yes &&
- cat >>confdefs.h <<\EOF
--#define STDC_HEADERS 1
-+#define NCURSES_EXT_FUNCS 1
- EOF
-
--fi
-+if test "$cf_enable_widec" = yes
-+then
-+ # workaround for systems with ncurses before 20111029, due to change of
-+ # feature test macro from _XPG5 to _XOPEN_SOURCE
-+ if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno
-+ then
-+ cf_define_xpg5=no
-+ echo "$as_me:13452: checking if _XPG5 should be defined to enable wide-characters" >&5
-+echo $ECHO_N "checking if _XPG5 should be defined to enable wide-characters... $ECHO_C" >&6
-
--echo "$as_me:12784: checking whether time.h and sys/time.h may both be included" >&5
--echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
--if test "${ac_cv_header_time+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12790 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13456 "configure"
- #include "confdefs.h"
--#include <sys/types.h>
--#include <sys/time.h>
--#include <time.h>
-
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--if ((struct tm *) 0)
--return 0;
-+int x = _XPG5
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:12806: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13469: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:12809: \$? = $ac_status" >&5
-+ echo "$as_me:13472: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:12812: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13475: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12815: \$? = $ac_status" >&5
-+ echo "$as_me:13478: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_header_time=yes
-+ :
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_header_time=no
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:12825: result: $ac_cv_header_time" >&5
--echo "${ECHO_T}$ac_cv_header_time" >&6
--if test $ac_cv_header_time = yes; then
--
--cat >>confdefs.h <<\EOF
--#define TIME_WITH_SYS_TIME 1
--EOF
--
--fi
--
--for ac_header in \
--getopt.h \
--locale.h \
--math.h \
--stdarg.h \
--sys/ioctl.h \
--sys/select.h \
--sys/time.h \
--termios.h \
--unistd.h \
--
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:12848: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12854 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:12858: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:12864: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- eval "$as_ac_Header=yes"
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
--fi
--echo "$as_me:12883: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--for ac_func in \
--gettimeofday \
--mblen \
--mbrlen \
--mbrtowc \
--mbsrtowcs \
--mbstowcs \
--mbtowc \
--strdup \
--wcsrtombs \
--wcstombs \
--
--do
--as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:12907: checking for $ac_func" >&5
--echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
--if eval "test \"\${$as_ac_var+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 12913 "configure"
-+cf_save_cppflags="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XPG5"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13487 "configure"
- #include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char $ac_func (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char $ac_func ();
--char (*f) ();
-
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
--choke me
--#else
--f = $ac_func;
--#endif
--
-+int x = _XPG5
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:12944: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:13500: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:12947: \$? = $ac_status" >&5
-+ echo "$as_me:13503: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:12950: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:13506: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:12953: \$? = $ac_status" >&5
-+ echo "$as_me:13509: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- eval "$as_ac_var=yes"
-+ cf_define_xpg5=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--eval "$as_ac_var=no"
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CPPFLAGS="$cf_save_cppflags"
- fi
--echo "$as_me:12963: result: `eval echo '${'$as_ac_var'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
--EOF
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ echo "$as_me:13520: result: $cf_define_xpg5" >&5
-+echo "${ECHO_T}$cf_define_xpg5" >&6
-
--fi
--done
-+ if test "$cf_define_xpg5" = yes
-+ then
-+ CPPFLAGS="$CPPFLAGS -D_XPG5"
-+ fi
-+ fi
-
--echo "$as_me:12973: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
--echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
--if test "${cf_cv_need_xopen_extension+set}" = set; then
-+ echo "$as_me:13529: checking for wide-character functions" >&5
-+echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
-+if test "${cf_cv_widechar_funcs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 12980 "configure"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13536 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
-
--#if defined(NCURSES_VERSION_PATCH)
--#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
-- make an error
--#endif
--#endif
-- long x = winnstr(stdscr, "", 0);
-- int x1, y1;
-- getbegyx(stdscr, y1, x1)
-+ static wchar_t src_wchar[2];
-+ static cchar_t dst_cchar;
-+ setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13002: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13553: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13005: \$? = $ac_status" >&5
-+ echo "$as_me:13556: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13008: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13559: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13011: \$? = $ac_status" >&5
-+ echo "$as_me:13562: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_need_xopen_extension=no
-+ cf_cv_widechar_funcs=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_cv_widechar_funcs=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+
-+fi
-+echo "$as_me:13573: result: $cf_cv_widechar_funcs" >&5
-+echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
-+ if test "$cf_cv_widechar_funcs" != no ; then
-+
-+cat >>confdefs.h <<\EOF
-+#define USE_WIDEC_SUPPORT 1
-+EOF
-+
-+ else
-+ cat >>confdefs.h <<\EOF
-+#define USE_WIDEC_SUPPORT 0
-+EOF
-+
-+ fi
-+else
-+ cat >>confdefs.h <<\EOF
-+#define USE_WIDEC_SUPPORT 0
-+EOF
-+
-+fi
-+
-+echo "$as_me:13594: checking if sys/time.h works with sys/select.h" >&5
-+echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
-+if test "${cf_cv_sys_time_select+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
- cat >conftest.$ac_ext <<_ACEOF
--#line 13018 "configure"
-+#line 13601 "configure"
- #include "confdefs.h"
-
--#define _XOPEN_SOURCE_EXTENDED
--#include <stdlib.h>
--#include <${cf_cv_ncurses_header:-curses.h}>
-+#include <sys/types.h>
-+#ifdef HAVE_SYS_TIME_H
-+#include <sys/time.h>
-+#endif
-+#ifdef HAVE_SYS_SELECT_H
-+#include <sys/select.h>
-+#endif
-+
- int
- main ()
- {
-
--#ifdef NCURSES_VERSION
-- cchar_t check;
-- int check2 = curs_set((int)sizeof(check));
--#endif
-- long x = winnstr(stdscr, "", 0);
-- int x1, y1;
-- getbegyx(stdscr, y1, x1)
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13040: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:13621: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13043: \$? = $ac_status" >&5
-+ echo "$as_me:13624: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13046: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:13627: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13049: \$? = $ac_status" >&5
-+ echo "$as_me:13630: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_need_xopen_extension=yes
-+ cf_cv_sys_time_select=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_need_xopen_extension=unknown
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+cf_cv_sys_time_select=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+
- fi
--echo "$as_me:13061: result: $cf_cv_need_xopen_extension" >&5
--echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
--test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-
--echo "$as_me:13065: checking for term.h" >&5
--echo $ECHO_N "checking for term.h... $ECHO_C" >&6
--if test "${cf_cv_term_header+set}" = set; then
-+echo "$as_me:13642: result: $cf_cv_sys_time_select" >&5
-+echo "${ECHO_T}$cf_cv_sys_time_select" >&6
-+test "$cf_cv_sys_time_select" = yes &&
-+cat >>confdefs.h <<\EOF
-+#define HAVE_SYS_TIME_SELECT 1
-+EOF
-+
-+echo "$as_me:13649: checking for function curses_version" >&5
-+echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
-+if test "${cf_cv_func_curses_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
--# for <term.h> if we do not find the variant.
--for cf_header in \
-- `echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
-- term.h
--do
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13078 "configure"
-+if test "$cross_compiling" = yes; then
-+ cf_cv_func_curses_version=unknown
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13659 "configure"
- #include "confdefs.h"
-
- #include <${cf_cv_ncurses_header:-curses.h}>
--#include <${cf_header}>
--int
--main ()
-+int main()
- {
--WINDOW *x
-- ;
-- return 0;
-+ char temp[1024];
-+ sprintf(temp, "%s\n", curses_version());
-+ ${cf_cv_main_return:-return}(0);
- }
-+
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13092: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:13672: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13095: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13098: \"$ac_try\"") >&5
-+ echo "$as_me:13675: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:13677: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13101: \$? = $ac_status" >&5
-+ echo "$as_me:13680: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_term_header=$cf_header
-- break
-+ cf_cv_func_curses_version=yes
-+
- else
-- echo "$as_me: failed program was:" >&5
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_term_header=no
-+cf_cv_func_curses_version=no
-+
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--done
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+rm -f core
-+fi
-+echo "$as_me:13695: result: $cf_cv_func_curses_version" >&5
-+echo "${ECHO_T}$cf_cv_func_curses_version" >&6
-+test "$cf_cv_func_curses_version" = yes &&
-+cat >>confdefs.h <<\EOF
-+#define HAVE_CURSES_VERSION 1
-+EOF
-
--case $cf_cv_term_header in #(vi
--no)
-- # If curses is ncurses, some packagers still mess it up by trying to make
-- # us use GNU termcap. This handles the most common case.
-- for cf_header in ncurses/term.h ncursesw/term.h
-- do
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13120 "configure"
-+echo "$as_me:13702: checking for alternate character set array" >&5
-+echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
-+if test "${cf_cv_curses_acs_map+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+
-+cf_cv_curses_acs_map=unknown
-+for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
-+do
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 13712 "configure"
- #include "confdefs.h"
-
- #include <${cf_cv_ncurses_header:-curses.h}>
--#ifdef NCURSES_VERSION
--#include <${cf_header}>
--#else
--make an error
--#endif
-+
- int
- main ()
- {
--WINDOW *x
-+
-+$name['k'] = ACS_PLUS
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13138: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:13728: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13141: \$? = $ac_status" >&5
-+ echo "$as_me:13731: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13144: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:13734: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13147: \$? = $ac_status" >&5
-+ echo "$as_me:13737: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_term_header=$cf_header
-- break
-+ cf_cv_curses_acs_map=$name; break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_term_header=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-- done
-- ;;
--esac
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+done
-
- fi
--echo "$as_me:13162: result: $cf_cv_term_header" >&5
--echo "${ECHO_T}$cf_cv_term_header" >&6
--
--case $cf_cv_term_header in #(vi
--term.h) #(vi
-- cat >>confdefs.h <<\EOF
--#define HAVE_TERM_H 1
--EOF
--
-- ;;
--ncurses/term.h) #(vi
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSES_TERM_H 1
--EOF
-+echo "$as_me:13748: result: $cf_cv_curses_acs_map" >&5
-+echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
-
-- ;;
--ncursesw/term.h)
-- cat >>confdefs.h <<\EOF
--#define HAVE_NCURSESW_TERM_H 1
-+test "$cf_cv_curses_acs_map" != unknown &&
-+cat >>confdefs.h <<EOF
-+#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
- EOF
-
-- ;;
--esac
--
--for cf_func in \
--chgat \
--color_set \
--filter \
--getbegx \
--getcurx \
--getmaxx \
--getnstr \
--getparx \
--getwin \
--mvvline \
--mvwvline \
--napms \
--putwin \
--resize_term \
--resizeterm \
--ripoffline \
--scr_dump \
--setupterm \
--slk_color \
--slk_init \
--termattrs \
--tgetent \
--tigetnum \
--tigetstr \
--typeahead \
--use_default_colors \
--vw_printw \
--vsscanf \
--wchgat \
--winsstr \
--wresize \
--wsyncdown \
--
--do
--
--cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
-- echo "$as_me:13224: checking for ${cf_func}" >&5
--echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
--
--echo "${as_me:-configure}:13227: testing ${cf_func} ..." 1>&5
-+if test "$cf_enable_widec" = yes; then
-
-- if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
-+echo "$as_me:13758: checking for wide alternate character set array" >&5
-+echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
-+if test "${cf_cv_curses_wacs_map+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
-- eval cf_result='$ac_cv_func_'$cf_func
-- if test ".$cf_result" != ".no"; then
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13236 "configure"
-+ cf_cv_curses_wacs_map=unknown
-+ for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
-+ do
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13768 "configure"
- #include "confdefs.h"
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
-+#ifndef _XOPEN_SOURCE_EXTENDED
-+#define _XOPEN_SOURCE_EXTENDED
- #endif
--
-+#include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--
--#ifndef ${cf_func}
--long foo = (long)(&${cf_func});
--${cf_cv_main_return:-return}(foo == 0);
--#endif
--
-+void *foo = &($name['k'])
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13267: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13784: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13270: \$? = $ac_status" >&5
-+ echo "$as_me:13787: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13273: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13790: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13276: \$? = $ac_status" >&5
-+ echo "$as_me:13793: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ cf_cv_curses_wacs_map=$name
-+ break
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- fi
-- eval 'cf_cv_func_'$cf_func'=$cf_result'
--
-+ done
- fi
-+echo "$as_me:13804: result: $cf_cv_curses_wacs_map" >&5
-+echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
-
-- # use the computed/retrieved cache-value:
-- eval 'cf_result=$cf_cv_func_'$cf_func
-- echo "$as_me:13292: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- if test $cf_result != no; then
-- cat >>confdefs.h <<EOF
--#define HAVE_${cf_tr_func} 1
-+test "$cf_cv_curses_wacs_map" != unknown &&
-+cat >>confdefs.h <<EOF
-+#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
- EOF
-
-- fi
--done
--
--echo "$as_me:13302: checking for ncurses extended functions" >&5
--echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
--if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
-+echo "$as_me:13812: checking for wide alternate character constants" >&5
-+echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
-+if test "${cf_cv_curses_wacs_symbols+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 13309 "configure"
-+cf_cv_curses_wacs_symbols=no
-+if test "$cf_cv_curses_wacs_map" != unknown
-+then
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13822 "configure"
- #include "confdefs.h"
-
-+#ifndef _XOPEN_SOURCE_EXTENDED
-+#define _XOPEN_SOURCE_EXTENDED
-+#endif
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--
--int x = NCURSES_EXT_FUNCS
--
-+cchar_t *foo = WACS_PLUS;
-+ $cf_cv_curses_wacs_map['k'] = *WACS_PLUS
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13324: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:13839: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13327: \$? = $ac_status" >&5
-+ echo "$as_me:13842: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13330: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:13845: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13333: \$? = $ac_status" >&5
-+ echo "$as_me:13848: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ncurses_ext_funcs=defined
-+ cf_cv_curses_wacs_symbols=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--
--cat >conftest.$ac_ext <<_ACEOF
--#line 13341 "configure"
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 13858 "configure"
- #include "confdefs.h"
-
-+#ifndef _XOPEN_SOURCE_EXTENDED
-+#define _XOPEN_SOURCE_EXTENDED
-+#endif
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
--
-- (void) assume_default_colors (0, 0);
-- (void) curses_version ();
-- (void) define_key (0, 0);
-- (void) is_term_resized (0, 0);
-- (void) key_defined (0);
-- (void) keybound (0, 0);
-- (void) keyok (0, 0);
-- (void) resize_term (0, 0);
-- (void) resizeterm (0, 0);
-- (void) use_default_colors ();
-- (void) use_extended_names (0);
-- (void) wresize (0, 0, 0);
-+cchar_t *foo = WACS_PLUS
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13366: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:13874: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:13369: \$? = $ac_status" >&5
-+ echo "$as_me:13877: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13372: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13880: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13375: \$? = $ac_status" >&5
-+ echo "$as_me:13883: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_ncurses_ext_funcs=yes
-+ cf_cv_curses_wacs_symbols=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_ncurses_ext_funcs=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-
- fi
--echo "$as_me:13389: result: $cf_cv_ncurses_ext_funcs" >&5
--echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
--test "$cf_cv_ncurses_ext_funcs" = yes && cat >>confdefs.h <<\EOF
--#define NCURSES_EXT_FUNCS 1
-+echo "$as_me:13894: result: $cf_cv_curses_wacs_symbols" >&5
-+echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
-+
-+test "$cf_cv_curses_wacs_symbols" != no &&
-+cat >>confdefs.h <<\EOF
-+#define CURSES_WACS_SYMBOLS 1
- EOF
-
--echo "$as_me:13395: checking for wide-character functions" >&5
--echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
--if test "${cf_cv_widechar_funcs+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+fi
-
-+echo "$as_me:13904: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 13402 "configure"
-+#line 13907 "configure"
- #include "confdefs.h"
-
-+#ifndef _XOPEN_SOURCE_EXTENDED
-+#define _XOPEN_SOURCE_EXTENDED
-+#endif
- #include <${cf_cv_ncurses_header:-curses.h}>
- int
- main ()
- {
-
-- static wchar_t src_wchar[2];
-- static cchar_t dst_cchar;
-- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-+attr_t foo
-
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13419: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:13925: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13422: \$? = $ac_status" >&5
-+ echo "$as_me:13928: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13425: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:13931: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13428: \$? = $ac_status" >&5
-+ echo "$as_me:13934: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_widechar_funcs=yes
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_widechar_funcs=no
-+cf_result=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:13943: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+if test $cf_result = yes ; then
-
--fi
--echo "$as_me:13439: result: $cf_cv_widechar_funcs" >&5
--echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
--if test "$cf_cv_widechar_funcs" != no ; then
-- cat >>confdefs.h <<\EOF
--#define USE_WIDEC_SUPPORT 1
-+cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+cat >>confdefs.h <<EOF
-+#define $cf_result 1
- EOF
-
- else
-- cat >>confdefs.h <<\EOF
--#define USE_WIDEC_SUPPORT 0
-+
-+cat >>confdefs.h <<EOF
-+#define attr_t long
- EOF
-
- fi
-
--# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-+if test "$cf_enable_widec" = yes; then
-
--for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-- inttypes.h stdint.h unistd.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:13459: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+# This is needed on Tru64 5.0 to declare mbstate_t
-+echo "$as_me:13964: checking if we must include wchar.h to declare mbstate_t" >&5
-+echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
-+if test "${cf_cv_mbstate_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13465 "configure"
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 13971 "configure"
- #include "confdefs.h"
--$ac_includes_default
--#include <$ac_header>
-+
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#ifdef HAVE_LIBUTF8_H
-+#include <libutf8.h>
-+#endif
-+int
-+main ()
-+{
-+mbstate_t state
-+ ;
-+ return 0;
-+}
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13471: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:13989: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13474: \$? = $ac_status" >&5
-+ echo "$as_me:13992: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13477: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:13995: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13480: \$? = $ac_status" >&5
-+ echo "$as_me:13998: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- eval "$as_ac_Header=yes"
-+ cf_cv_mbstate_t=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--eval "$as_ac_Header=no"
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:13490: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--echo "$as_me:13500: checking for pid_t" >&5
--echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
--if test "${ac_cv_type_pid_t+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13506 "configure"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14005 "configure"
- #include "confdefs.h"
--$ac_includes_default
-+
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <wchar.h>
-+#ifdef HAVE_LIBUTF8_H
-+#include <libutf8.h>
-+#endif
- int
- main ()
- {
--if ((pid_t *) 0)
-- return 0;
--if (sizeof (pid_t))
-- return 0;
-+mbstate_t value
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13521: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14024: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13524: \$? = $ac_status" >&5
-+ echo "$as_me:14027: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13527: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14030: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13530: \$? = $ac_status" >&5
-+ echo "$as_me:14033: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_type_pid_t=yes
-+ cf_cv_mbstate_t=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_type_pid_t=no
-+cf_cv_mbstate_t=unknown
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:13540: result: $ac_cv_type_pid_t" >&5
--echo "${ECHO_T}$ac_cv_type_pid_t" >&6
--if test $ac_cv_type_pid_t = yes; then
-- :
--else
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+fi
-+echo "$as_me:14045: result: $cf_cv_mbstate_t" >&5
-+echo "${ECHO_T}$cf_cv_mbstate_t" >&6
-
--cat >>confdefs.h <<EOF
--#define pid_t int
-+if test "$cf_cv_mbstate_t" = yes ; then
-+
-+cat >>confdefs.h <<\EOF
-+#define NEED_WCHAR_H 1
- EOF
-
-+ NEED_WCHAR_H=1
- fi
-
--for ac_header in unistd.h vfork.h
--do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:13555: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13561 "configure"
--#include "confdefs.h"
--#include <$ac_header>
--_ACEOF
--if { (eval echo "$as_me:13565: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-- ac_status=$?
-- egrep -v '^ *\+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:13571: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-- eval "$as_ac_Header=yes"
--else
-- echo "$as_me: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- eval "$as_ac_Header=no"
--fi
--rm -f conftest.err conftest.$ac_ext
-+# if we do not find mbstate_t in either place, use substitution to provide a fallback.
-+if test "$cf_cv_mbstate_t" = unknown ; then
-+ NCURSES_MBSTATE_T=1
- fi
--echo "$as_me:13590: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
--EOF
-
-+# if we find mbstate_t in either place, use substitution to provide a fallback.
-+if test "$cf_cv_mbstate_t" != unknown ; then
-+ NCURSES_OK_MBSTATE_T=1
- fi
--done
-
--for ac_func in fork vfork
--do
--as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:13603: checking for $ac_func" >&5
--echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
--if eval "test \"\${$as_ac_var+set}\" = set"; then
-+# This is needed on Tru64 5.0 to declare wchar_t
-+echo "$as_me:14068: checking if we must include wchar.h to declare wchar_t" >&5
-+echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
-+if test "${cf_cv_wchar_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13609 "configure"
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14075 "configure"
- #include "confdefs.h"
--/* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char $ac_func (); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--#ifdef __cplusplus
--extern "C"
--#endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char $ac_func ();
--char (*f) ();
-
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#ifdef HAVE_LIBUTF8_H
-+#include <libutf8.h>
-+#endif
- int
- main ()
- {
--/* The GNU C library defines this for functions which it implements
-- to always fail with ENOSYS. Some functions are actually named
-- something starting with __ and the normal name is an alias. */
--#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
--choke me
--#else
--f = $ac_func;
--#endif
--
-+wchar_t state
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:13640: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14093: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13643: \$? = $ac_status" >&5
-+ echo "$as_me:14096: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:13646: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14099: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13649: \$? = $ac_status" >&5
-+ echo "$as_me:14102: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- eval "$as_ac_var=yes"
-+ cf_cv_wchar_t=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--eval "$as_ac_var=no"
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--fi
--echo "$as_me:13659: result: `eval echo '${'$as_ac_var'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-- cat >>confdefs.h <<EOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
--EOF
--
--fi
--done
--
--ac_cv_func_fork_works=$ac_cv_func_fork
--if test "x$ac_cv_func_fork" = xyes; then
-- echo "$as_me:13671: checking for working fork" >&5
--echo $ECHO_N "checking for working fork... $ECHO_C" >&6
--if test "${ac_cv_func_fork_works+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test "$cross_compiling" = yes; then
-- ac_cv_func_fork_works=cross
--else
-- cat >conftest.$ac_ext <<_ACEOF
--/* By Rüdiger Kuhlmann. */
-- #include <sys/types.h>
-- #if HAVE_UNISTD_H
-- # include <unistd.h>
-- #endif
-- /* Some systems only have a dummy stub for fork() */
-- int main ()
-- {
-- if (fork() < 0)
-- $ac_main_return (1);
-- $ac_main_return (0);
-- }
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:13694: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:13697: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:13699: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:13702: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_func_fork_works=yes
--else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--ac_cv_func_fork_works=no
--fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
--fi
--echo "$as_me:13714: result: $ac_cv_func_fork_works" >&5
--echo "${ECHO_T}$ac_cv_func_fork_works" >&6
--
--fi
--if test "x$ac_cv_func_fork_works" = xcross; then
-- case $host in
-- *-*-amigaos* | *-*-msdosdjgpp*)
-- # Override, as these systems have only a dummy fork() stub
-- ac_cv_func_fork_works=no
-- ;;
-- *)
-- ac_cv_func_fork_works=yes
-- ;;
-- esac
-- { echo "$as_me:13728: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
--echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
--fi
--ac_cv_func_vfork_works=$ac_cv_func_vfork
--if test "x$ac_cv_func_vfork" = xyes; then
-- echo "$as_me:13733: checking for working vfork" >&5
--echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
--if test "${ac_cv_func_vfork_works+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test "$cross_compiling" = yes; then
-- ac_cv_func_vfork_works=cross
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13742 "configure"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14109 "configure"
- #include "confdefs.h"
--/* Thanks to Paul Eggert for this test. */
-+
-+#include <stdlib.h>
-+#include <stdarg.h>
- #include <stdio.h>
--#include <sys/types.h>
--#include <sys/stat.h>
--#if HAVE_UNISTD_H
--# include <unistd.h>
--#endif
--#if HAVE_VFORK_H
--# include <vfork.h>
--#endif
--/* On some sparc systems, changes by the child to local and incoming
-- argument registers are propagated back to the parent. The compiler
-- is told about this with #include <vfork.h>, but some compilers
-- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
-- static variable whose address is put into a register that is
-- clobbered by the vfork. */
--static
--#ifdef __cplusplus
--sparc_address_test (int arg)
--# else
--sparc_address_test (arg) int arg;
-+#include <wchar.h>
-+#ifdef HAVE_LIBUTF8_H
-+#include <libutf8.h>
- #endif
--{
-- static pid_t child;
-- if (!child) {
-- child = vfork ();
-- if (child < 0) {
-- perror ("vfork");
-- _exit(2);
-- }
-- if (!child) {
-- arg = getpid();
-- write(-1, "", 0);
-- _exit (arg);
-- }
-- }
--}
--
- int
- main ()
- {
-- pid_t parent = getpid ();
-- pid_t child;
--
-- sparc_address_test ();
--
-- child = vfork ();
--
-- if (child == 0) {
-- /* Here is another test for sparc vfork register problems. This
-- test uses lots of local variables, at least as many local
-- variables as main has allocated so far including compiler
-- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
-- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
-- reuse the register of parent for one of the local variables,
-- since it will think that parent can't possibly be used any more
-- in this routine. Assigning to the local variable will thus
-- munge parent in the parent process. */
-- pid_t
-- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
-- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
-- /* Convince the compiler that p..p7 are live; otherwise, it might
-- use the same hardware register for all 8 local variables. */
-- if (p != p1 || p != p2 || p != p3 || p != p4
-- || p != p5 || p != p6 || p != p7)
-- _exit(1);
--
-- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
-- from child file descriptors. If the child closes a descriptor
-- before it execs or exits, this munges the parent's descriptor
-- as well. Test for this by closing stdout in the child. */
-- _exit(close(fileno(stdout)) != 0);
-- } else {
-- int status;
-- struct stat st;
--
-- while (wait(&status) != child)
-- ;
-- $ac_main_return(
-- /* Was there some problem with vforking? */
-- child < 0
--
-- /* Did the child fail? (This shouldn't happen.) */
-- || status
--
-- /* Did the vfork/compiler bug occur? */
-- || parent != getpid()
--
-- /* Did the file descriptor bug occur? */
-- || fstat(fileno(stdout), &st) != 0
-- );
-- }
-+wchar_t value
-+ ;
-+ return 0;
- }
- _ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:13839: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14128: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13842: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:13844: \"$ac_try\"") >&5
-+ echo "$as_me:14131: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14134: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13847: \$? = $ac_status" >&5
-+ echo "$as_me:14137: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- ac_cv_func_vfork_works=yes
-+ cf_cv_wchar_t=yes
- else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+ echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--ac_cv_func_vfork_works=no
--fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+cf_cv_wchar_t=unknown
- fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:13859: result: $ac_cv_func_vfork_works" >&5
--echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
--
--fi;
--if test "x$ac_cv_func_fork_works" = xcross; then
-- ac_cv_func_vfork_works=ac_cv_func_vfork
-- { echo "$as_me:13865: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
--echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
-+rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-+echo "$as_me:14149: result: $cf_cv_wchar_t" >&5
-+echo "${ECHO_T}$cf_cv_wchar_t" >&6
-
--if test "x$ac_cv_func_vfork_works" = xyes; then
--
--cat >>confdefs.h <<\EOF
--#define HAVE_WORKING_VFORK 1
--EOF
--
--else
-+if test "$cf_cv_wchar_t" = yes ; then
-
- cat >>confdefs.h <<\EOF
--#define vfork fork
-+#define NEED_WCHAR_H 1
- EOF
-
-+ NEED_WCHAR_H=1
- fi
--if test "x$ac_cv_func_fork_works" = xyes; then
-
--cat >>confdefs.h <<\EOF
--#define HAVE_WORKING_FORK 1
--EOF
-+# if we do not find wchar_t in either place, use substitution to provide a fallback.
-+if test "$cf_cv_wchar_t" = unknown ; then
-+ NCURSES_WCHAR_T=1
-+fi
-
-+# if we find wchar_t in either place, use substitution to provide a fallback.
-+if test "$cf_cv_wchar_t" != unknown ; then
-+ NCURSES_OK_WCHAR_T=1
- fi
-
--echo "$as_me:13890: checking if sys/time.h works with sys/select.h" >&5
--echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
--if test "${cf_cv_sys_time_select+set}" = set; then
-+# This is needed on Tru64 5.0 to declare wint_t
-+echo "$as_me:14172: checking if we must include wchar.h to declare wint_t" >&5
-+echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
-+if test "${cf_cv_wint_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
- cat >conftest.$ac_ext <<_ACEOF
--#line 13897 "configure"
-+#line 14179 "configure"
- #include "confdefs.h"
-
--#include <sys/types.h>
--#ifdef HAVE_SYS_TIME_H
--#include <sys/time.h>
--#endif
--#ifdef HAVE_SYS_SELECT_H
--#include <sys/select.h>
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#ifdef HAVE_LIBUTF8_H
-+#include <libutf8.h>
- #endif
--
- int
- main ()
- {
--
-+wint_t state
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:13917: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14197: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13920: \$? = $ac_status" >&5
-+ echo "$as_me:14200: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:13923: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14203: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13926: \$? = $ac_status" >&5
-+ echo "$as_me:14206: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_sys_time_select=yes
-+ cf_cv_wint_t=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_sys_time_select=no
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--
--fi
--
--echo "$as_me:13938: result: $cf_cv_sys_time_select" >&5
--echo "${ECHO_T}$cf_cv_sys_time_select" >&6
--test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
--#define HAVE_SYS_TIME_SELECT 1
--EOF
--
--echo "$as_me:13944: checking for function curses_version" >&5
--echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
--if test "${cf_cv_func_curses_version+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--
--if test "$cross_compiling" = yes; then
-- cf_cv_func_curses_version=unknown
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 13954 "configure"
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14213 "configure"
- #include "confdefs.h"
-
--#include <${cf_cv_ncurses_header:-curses.h}>
--int main()
-+#include <stdlib.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <wchar.h>
-+#ifdef HAVE_LIBUTF8_H
-+#include <libutf8.h>
-+#endif
-+int
-+main ()
- {
-- char temp[1024];
-- sprintf(temp, "%s\n", curses_version());
-- ${cf_cv_main_return:-return}(0);
-+wint_t value
-+ ;
-+ return 0;
- }
--
- _ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:13967: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14232: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:13970: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:13972: \"$ac_try\"") >&5
-+ echo "$as_me:14235: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14238: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:13975: \$? = $ac_status" >&5
-+ echo "$as_me:14241: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_func_curses_version=yes
--
-+ cf_cv_wint_t=yes
- else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+ echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_func_curses_version=no
--
-+cf_cv_wint_t=unknown
- fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--rm -f core
-+rm -f conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:13990: result: $cf_cv_func_curses_version" >&5
--echo "${ECHO_T}$cf_cv_func_curses_version" >&6
--test "$cf_cv_func_curses_version" = yes && cat >>confdefs.h <<\EOF
--#define HAVE_CURSES_VERSION 1
-+echo "$as_me:14253: result: $cf_cv_wint_t" >&5
-+echo "${ECHO_T}$cf_cv_wint_t" >&6
-+
-+if test "$cf_cv_wint_t" = yes ; then
-+
-+cat >>confdefs.h <<\EOF
-+#define NEED_WCHAR_H 1
- EOF
-
--echo "$as_me:13996: checking for ncurses wrap-prefix" >&5
--echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
-+ NEED_WCHAR_H=1
-+fi
-
--# Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
--if test "${with_ncurses_wrap_prefix+set}" = set; then
-- withval="$with_ncurses_wrap_prefix"
-- NCURSES_WRAP_PREFIX=$withval
--else
-- NCURSES_WRAP_PREFIX=_nc_
--fi;
--echo "$as_me:14006: result: $NCURSES_WRAP_PREFIX" >&5
--echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
-+# if we do not find wint_t in either place, use substitution to provide a fallback.
-+if test "$cf_cv_wint_t" = unknown ; then
-+ NCURSES_WINT_T=1
-+fi
-
--echo "$as_me:14009: checking for alternate character set array" >&5
--echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
--if test "${cf_cv_curses_acs_map+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+# if we find wint_t in either place, use substitution to provide a fallback.
-+if test "$cf_cv_wint_t" != unknown ; then
-+ NCURSES_OK_WINT_T=1
-+fi
-
--cf_cv_curses_acs_map=unknown
--for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
--do
-+ if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
-+
-+echo "$as_me:14277: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14019 "configure"
-+#line 14280 "configure"
- #include "confdefs.h"
-
-+#ifndef _XOPEN_SOURCE_EXTENDED
-+#define _XOPEN_SOURCE_EXTENDED
-+#endif
- #include <${cf_cv_ncurses_header:-curses.h}>
--
- int
- main ()
- {
-
--$name['k'] = ACS_PLUS
-+mbstate_t foo
-
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14035: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14298: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14038: \$? = $ac_status" >&5
-+ echo "$as_me:14301: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14041: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14304: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14044: \$? = $ac_status" >&5
-+ echo "$as_me:14307: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_curses_acs_map=$name; break
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_result=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--done
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:14316: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+if test $cf_result = yes ; then
-
--fi
--echo "$as_me:14055: result: $cf_cv_curses_acs_map" >&5
--echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
-+cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
--test "$cf_cv_curses_acs_map" != unknown && cat >>confdefs.h <<EOF
--#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
-+cat >>confdefs.h <<EOF
-+#define $cf_result 1
- EOF
-
--echo "$as_me:14062: checking for wide alternate character set array" >&5
--echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
--if test "${cf_cv_curses_wacs_map+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
-- cf_cv_curses_wacs_map=unknown
-- for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
-- do
-- cat >conftest.$ac_ext <<_ACEOF
--#line 14072 "configure"
-+cat >>confdefs.h <<EOF
-+#define mbstate_t long
-+EOF
-+
-+fi
-+
-+ fi
-+
-+ if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-+
-+echo "$as_me:14338: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14341 "configure"
- #include "confdefs.h"
-
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14079,86 +14348,58 @@
- int
- main ()
- {
--void *foo = &($name['k'])
-+
-+wchar_t foo
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14088: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14359: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14091: \$? = $ac_status" >&5
-+ echo "$as_me:14362: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14094: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14365: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14097: \$? = $ac_status" >&5
-+ echo "$as_me:14368: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_curses_wacs_map=$name
-- break
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_result=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-- done
--fi
--echo "$as_me:14108: result: $cf_cv_curses_wacs_map" >&5
--echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:14377: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+if test $cf_result = yes ; then
-
--test "$cf_cv_curses_wacs_map" != unknown && cat >>confdefs.h <<EOF
--#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
-+cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+cat >>confdefs.h <<EOF
-+#define $cf_result 1
- EOF
-
--echo "$as_me:14115: checking for wide alternate character constants" >&5
--echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
--if test "${cf_cv_curses_wacs_symbols+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-
--cf_cv_curses_wacs_symbols=no
--if test "$cf_cv_curses_wacs_map" != unknown
--then
-- cat >conftest.$ac_ext <<_ACEOF
--#line 14125 "configure"
--#include "confdefs.h"
-+cat >>confdefs.h <<EOF
-+#define wchar_t long
-+EOF
-
--#ifndef _XOPEN_SOURCE_EXTENDED
--#define _XOPEN_SOURCE_EXTENDED
--#endif
--#include <${cf_cv_ncurses_header:-curses.h}>
--int
--main ()
--{
--cchar_t *foo = WACS_PLUS;
-- $cf_cv_curses_wacs_map['k'] = *WACS_PLUS
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14142: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:14145: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14148: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:14151: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_cv_curses_wacs_symbols=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 14161 "configure"
-+
-+ fi
-+
-+ if test "$NCURSES_OK_WINT_T" = 0 ; then
-+
-+echo "$as_me:14399: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 14402 "configure"
- #include "confdefs.h"
-
- #ifndef _XOPEN_SOURCE_EXTENDED
-@@ -14168,70 +14409,95 @@
- int
- main ()
- {
--cchar_t *foo = WACS_PLUS
-+
-+wint_t foo
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14177: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:14420: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14180: \$? = $ac_status" >&5
-+ echo "$as_me:14423: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14183: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:14426: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14186: \$? = $ac_status" >&5
-+ echo "$as_me:14429: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_curses_wacs_symbols=yes
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_result=no
- fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:14438: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+if test $cf_result = yes ; then
-+
-+cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+cat >>confdefs.h <<EOF
-+#define $cf_result 1
-+EOF
-+
-+else
-+
-+cat >>confdefs.h <<EOF
-+#define wint_t long
-+EOF
-+
- fi
-
-+ fi
- fi
--echo "$as_me:14197: result: $cf_cv_curses_wacs_symbols" >&5
--echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
-
--test "$cf_cv_curses_wacs_symbols" != no && cat >>confdefs.h <<\EOF
--#define CURSES_WACS_SYMBOLS 1
--EOF
-+echo "$as_me:14459: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
-
--echo "$as_me:14204: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
--echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
--#line 14207 "configure"
-+#line 14463 "configure"
- #include "confdefs.h"
-
--#ifndef _XOPEN_SOURCE_EXTENDED
--#define _XOPEN_SOURCE_EXTENDED
--#endif
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
- #include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
-+#endif
-+#endif
-+
- int
- main ()
- {
-
--attr_t foo
-+void *foo = &(boolnames)
-
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14225: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14491: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14228: \$? = $ac_status" >&5
-+ echo "$as_me:14494: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14231: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14497: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14234: \$? = $ac_status" >&5
-+ echo "$as_me:14500: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_result=yes
- else
-@@ -14240,868 +14506,1570 @@
- cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14243: result: $cf_result" >&5
-+echo "$as_me:14509: result: $cf_result" >&5
- echo "${ECHO_T}$cf_result" >&6
-+
- if test $cf_result = yes ; then
-
--cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >>confdefs.h <<EOF
- #define $cf_result 1
- EOF
-
- else
-- cat >>confdefs.h <<EOF
--#define attr_t long
--EOF
--
--fi
--
--# This is needed on Tru64 5.0 to declare mbstate_t
--echo "$as_me:14261: checking if we must include wchar.h to declare mbstate_t" >&5
--echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
--if test "${cf_cv_mbstate_t+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-+ echo "$as_me:14521: checking for data boolnames in library" >&5
-+echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6
-+ # BSD linkers insist on making weak linkage, but resolve at runtime.
-+ if test "$cross_compiling" = yes; then
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 14268 "configure"
-+ # cross-compiling
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 14528 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
--#include <stdarg.h>
--#include <stdio.h>
--#ifdef HAVE_LIBUTF8_H
--#include <libutf8.h>
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
-+#endif
- #endif
-+
-+extern char boolnames;
- int
- main ()
- {
--mbstate_t state
-+
-+ do {
-+ void *foo = &(boolnames);
-+ ${cf_cv_main_return:-return}(foo == 0);
-+ } while (0)
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14286: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:14560: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14289: \$? = $ac_status" >&5
-+ echo "$as_me:14563: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14292: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:14566: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14295: \$? = $ac_status" >&5
-+ echo "$as_me:14569: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_mbstate_t=no
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
-+cf_result=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 14581 "configure"
-+#include "confdefs.h"
-+
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
-+#endif
-+#endif
-+
-+extern char boolnames;
-+int main(void)
-+{
-+ void *foo = &(boolnames);
-+ ${cf_cv_main_return:-return}(foo == 0);
-+}
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:14606: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:14609: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:14611: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:14614: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cf_result=yes
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+cat conftest.$ac_ext >&5
-+cf_result=no
-+fi
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+ echo "$as_me:14625: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ if test $cf_result = yes ; then
-+
-+cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+ cat >>confdefs.h <<EOF
-+#define $cf_result 1
-+EOF
-+
-+ fi
-+fi
-+
-+echo "$as_me:14638: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
-+echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
-+
- cat >conftest.$ac_ext <<_ACEOF
--#line 14302 "configure"
-+#line 14642 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
--#include <stdarg.h>
--#include <stdio.h>
--#include <wchar.h>
--#ifdef HAVE_LIBUTF8_H
--#include <libutf8.h>
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
-+#endif
- #endif
-+
- int
- main ()
- {
--mbstate_t value
-+
-+void *foo = &(boolfnames)
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14321: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:14670: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14324: \$? = $ac_status" >&5
-+ echo "$as_me:14673: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14327: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:14676: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14330: \$? = $ac_status" >&5
-+ echo "$as_me:14679: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_mbstate_t=yes
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_mbstate_t=unknown
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+cf_result=no
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
--fi
--echo "$as_me:14342: result: $cf_cv_mbstate_t" >&5
--echo "${ECHO_T}$cf_cv_mbstate_t" >&6
--
--if test "$cf_cv_mbstate_t" = yes ; then
-- cat >>confdefs.h <<\EOF
--#define NEED_WCHAR_H 1
--EOF
-+echo "$as_me:14688: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-
-- NEED_WCHAR_H=1
--fi
-+if test $cf_result = yes ; then
-
--# if we do not find mbstate_t in either place, use substitution to provide a fallback.
--if test "$cf_cv_mbstate_t" = unknown ; then
-- NCURSES_MBSTATE_T=1
--fi
-+cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
--# if we find mbstate_t in either place, use substitution to provide a fallback.
--if test "$cf_cv_mbstate_t" != unknown ; then
-- NCURSES_OK_MBSTATE_T=1
--fi
-+ cat >>confdefs.h <<EOF
-+#define $cf_result 1
-+EOF
-
--# This is needed on Tru64 5.0 to declare wchar_t
--echo "$as_me:14364: checking if we must include wchar.h to declare wchar_t" >&5
--echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
--if test "${cf_cv_wchar_t+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-+ echo "$as_me:14700: checking for data boolfnames in library" >&5
-+echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6
-+ # BSD linkers insist on making weak linkage, but resolve at runtime.
-+ if test "$cross_compiling" = yes; then
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 14371 "configure"
-+ # cross-compiling
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 14707 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
--#include <stdarg.h>
--#include <stdio.h>
--#ifdef HAVE_LIBUTF8_H
--#include <libutf8.h>
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
- #endif
-+#endif
-+
-+extern char boolfnames;
- int
- main ()
- {
--wchar_t state
-+
-+ do {
-+ void *foo = &(boolfnames);
-+ ${cf_cv_main_return:-return}(foo == 0);
-+ } while (0)
-+
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14389: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:14739: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14392: \$? = $ac_status" >&5
-+ echo "$as_me:14742: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14395: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:14745: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14398: \$? = $ac_status" >&5
-+ echo "$as_me:14748: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_wchar_t=no
-+ cf_result=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cat >conftest.$ac_ext <<_ACEOF
--#line 14405 "configure"
-+cf_result=no
-+fi
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 14760 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
--#include <stdarg.h>
--#include <stdio.h>
--#include <wchar.h>
--#ifdef HAVE_LIBUTF8_H
--#include <libutf8.h>
-+#ifdef HAVE_XCURSES
-+#include <xcurses.h>
-+char * XCursesProgramName = "test";
-+#else
-+#include <${cf_cv_ncurses_header:-curses.h}>
-+#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-+#include <ncursesw/term.h>
-+#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-+#include <ncurses/term.h>
-+#elif defined(HAVE_TERM_H)
-+#include <term.h>
- #endif
--int
--main ()
-+#endif
-+
-+extern char boolfnames;
-+int main(void)
- {
--wchar_t value
-- ;
-- return 0;
-+ void *foo = &(boolfnames);
-+ ${cf_cv_main_return:-return}(foo == 0);
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14424: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:14785: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14427: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14430: \"$ac_try\"") >&5
-+ echo "$as_me:14788: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:14790: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14433: \$? = $ac_status" >&5
-+ echo "$as_me:14793: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_wchar_t=yes
-+ cf_result=yes
- else
-- echo "$as_me: failed program was:" >&5
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_wchar_t=unknown
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+cf_result=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:14445: result: $cf_cv_wchar_t" >&5
--echo "${ECHO_T}$cf_cv_wchar_t" >&6
-+ echo "$as_me:14804: result: $cf_result" >&5
-+echo "${ECHO_T}$cf_result" >&6
-+ if test $cf_result = yes ; then
-
--if test "$cf_cv_wchar_t" = yes ; then
-- cat >>confdefs.h <<\EOF
--#define NEED_WCHAR_H 1
-+cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+ cat >>confdefs.h <<EOF
-+#define $cf_result 1
- EOF
-
-- NEED_WCHAR_H=1
-+ fi
- fi
-
--# if we do not find wchar_t in either place, use substitution to provide a fallback.
--if test "$cf_cv_wchar_t" = unknown ; then
-- NCURSES_WCHAR_T=1
--fi
-+if ( test "$GCC" = yes || test "$GXX" = yes )
-+then
-+echo "$as_me:14819: checking if you want to turn on gcc warnings" >&5
-+echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
-
--# if we find wchar_t in either place, use substitution to provide a fallback.
--if test "$cf_cv_wchar_t" != unknown ; then
-- NCURSES_OK_WCHAR_T=1
--fi
-+# Check whether --enable-warnings or --disable-warnings was given.
-+if test "${enable_warnings+set}" = set; then
-+ enableval="$enable_warnings"
-+ test "$enableval" != yes && enableval=no
-+ if test "$enableval" != "no" ; then
-+ with_warnings=yes
-+ else
-+ with_warnings=no
-+ fi
-+else
-+ enableval=no
-+ with_warnings=no
-
--# This is needed on Tru64 5.0 to declare wint_t
--echo "$as_me:14467: checking if we must include wchar.h to declare wint_t" >&5
--echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
--if test "${cf_cv_wint_t+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi;
-+echo "$as_me:14836: result: $with_warnings" >&5
-+echo "${ECHO_T}$with_warnings" >&6
-+if test "$with_warnings" = "yes"
-+then
-+
-+if test "$GCC" = yes
-+then
-+cat > conftest.i <<EOF
-+#ifndef GCC_PRINTF
-+#define GCC_PRINTF 0
-+#endif
-+#ifndef GCC_SCANF
-+#define GCC_SCANF 0
-+#endif
-+#ifndef GCC_NORETURN
-+#define GCC_NORETURN /* nothing */
-+#endif
-+#ifndef GCC_UNUSED
-+#define GCC_UNUSED /* nothing */
-+#endif
-+EOF
-+if test "$GCC" = yes
-+then
-+ { echo "$as_me:14859: checking for $CC __attribute__ directives..." >&5
-+echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
-+cat > conftest.$ac_ext <<EOF
-+#line 14862 "${as_me:-configure}"
-+#include "confdefs.h"
-+#include "conftest.h"
-+#include "conftest.i"
-+#if GCC_PRINTF
-+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-+#else
-+#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-+#endif
-+#if GCC_SCANF
-+#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-+#else
-+#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-+#endif
-+extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-+extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-+extern void foo(void) GCC_NORETURN;
-+int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-+EOF
-+ cf_printf_attribute=no
-+ cf_scanf_attribute=no
-+ for cf_attribute in scanf printf unused noreturn
-+ do
-+
-+cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+
-+ cf_directive="__attribute__(($cf_attribute))"
-+ echo "checking for $CC $cf_directive" 1>&5
-+
-+ case $cf_attribute in #(vi
-+ printf) #(vi
-+ cf_printf_attribute=yes
-+ cat >conftest.h <<EOF
-+#define GCC_$cf_ATTRIBUTE 1
-+EOF
-+ ;;
-+ scanf) #(vi
-+ cf_scanf_attribute=yes
-+ cat >conftest.h <<EOF
-+#define GCC_$cf_ATTRIBUTE 1
-+EOF
-+ ;;
-+ *) #(vi
-+ cat >conftest.h <<EOF
-+#define GCC_$cf_ATTRIBUTE $cf_directive
-+EOF
-+ ;;
-+ esac
-+
-+ if { (eval echo "$as_me:14911: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:14914: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ test -n "$verbose" && echo "$as_me:14916: result: ... $cf_attribute" >&5
-+echo "${ECHO_T}... $cf_attribute" >&6
-+ cat conftest.h >>confdefs.h
-+ case $cf_attribute in #(vi
-+ noreturn) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_NORETURN $cf_directive
-+EOF
-+
-+ ;;
-+ printf) #(vi
-+ cf_value='/* nothing */'
-+ if test "$cf_printf_attribute" != no ; then
-+ cf_value='__attribute__((format(printf,fmt,var)))'
-+
-+cat >>confdefs.h <<\EOF
-+#define GCC_PRINTF 1
-+EOF
-+
-+ fi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_PRINTFLIKE(fmt,var) $cf_value
-+EOF
-+
-+ ;;
-+ scanf) #(vi
-+ cf_value='/* nothing */'
-+ if test "$cf_scanf_attribute" != no ; then
-+ cf_value='__attribute__((format(scanf,fmt,var)))'
-+
-+cat >>confdefs.h <<\EOF
-+#define GCC_SCANF 1
-+EOF
-+
-+ fi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_SCANFLIKE(fmt,var) $cf_value
-+EOF
-+
-+ ;;
-+ unused) #(vi
-+
-+cat >>confdefs.h <<EOF
-+#define GCC_UNUSED $cf_directive
-+EOF
-+
-+ ;;
-+ esac
-+ fi
-+ done
- else
-+ fgrep define conftest.i >>confdefs.h
-+fi
-+rm -rf conftest*
-+fi
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 14474 "configure"
-+INTEL_COMPILER=no
-+
-+if test "$GCC" = yes ; then
-+ case $host_os in
-+ linux*|gnu*)
-+ echo "$as_me:14980: checking if this is really Intel C compiler" >&5
-+echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
-+ cf_save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS -no-gcc"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 14985 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
--#include <stdarg.h>
--#include <stdio.h>
--#ifdef HAVE_LIBUTF8_H
--#include <libutf8.h>
--#endif
- int
- main ()
- {
--wint_t state
-+
-+#ifdef __INTEL_COMPILER
-+#else
-+make an error
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14492: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15002: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14495: \$? = $ac_status" >&5
-+ echo "$as_me:15005: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14498: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15008: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14501: \$? = $ac_status" >&5
-+ echo "$as_me:15011: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_wint_t=no
-+ INTEL_COMPILER=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cat >conftest.$ac_ext <<_ACEOF
--#line 14508 "configure"
-+fi
-+rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ echo "$as_me:15022: result: $INTEL_COMPILER" >&5
-+echo "${ECHO_T}$INTEL_COMPILER" >&6
-+ ;;
-+ esac
-+fi
-+
-+CLANG_COMPILER=no
-+
-+if test "$GCC" = yes ; then
-+ echo "$as_me:15031: checking if this is really Clang C compiler" >&5
-+echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
-+ cf_save_CFLAGS="$CFLAGS"
-+ CFLAGS="$CFLAGS -Qunused-arguments"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 15036 "configure"
- #include "confdefs.h"
-
--#include <stdlib.h>
--#include <stdarg.h>
--#include <stdio.h>
--#include <wchar.h>
--#ifdef HAVE_LIBUTF8_H
--#include <libutf8.h>
--#endif
- int
- main ()
- {
--wint_t value
-+
-+#ifdef __clang__
-+#else
-+make an error
-+#endif
-+
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14527: \"$ac_compile\"") >&5
-+if { (eval echo "$as_me:15053: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
-- echo "$as_me:14530: \$? = $ac_status" >&5
-+ echo "$as_me:15056: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14533: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15059: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14536: \$? = $ac_status" >&5
-+ echo "$as_me:15062: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_cv_wint_t=yes
-+ CLANG_COMPILER=yes
-+cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
-+
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_cv_wint_t=unknown
- fi
- rm -f conftest.$ac_objext conftest.$ac_ext
-+ CFLAGS="$cf_save_CFLAGS"
-+ echo "$as_me:15073: result: $CLANG_COMPILER" >&5
-+echo "${ECHO_T}$CLANG_COMPILER" >&6
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
-+
-+cat > conftest.$ac_ext <<EOF
-+#line 15078 "${as_me:-configure}"
-+int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-+EOF
-+
-+if test "$INTEL_COMPILER" = yes
-+then
-+# The "-wdXXX" options suppress warnings:
-+# remark #1419: external declaration in primary source file
-+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-+# remark #193: zero used for undefined preprocessing identifier
-+# remark #593: variable "curs_sb_left_arrow" was set but never used
-+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-+# remark #869: parameter "tw" was never referenced
-+# remark #981: operands are evaluated in unspecified order
-+# warning #279: controlling expression is constant
-+
-+ { echo "$as_me:15095: checking for $CC warning options..." >&5
-+echo "$as_me: checking for $CC warning options..." >&6;}
-+ cf_save_CFLAGS="$CFLAGS"
-+ EXTRA_CFLAGS="-Wall"
-+ for cf_opt in \
-+ wd1419 \
-+ wd1683 \
-+ wd1684 \
-+ wd193 \
-+ wd593 \
-+ wd279 \
-+ wd810 \
-+ wd869 \
-+ wd981
-+ do
-+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-+ if { (eval echo "$as_me:15111: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:15114: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ test -n "$verbose" && echo "$as_me:15116: result: ... -$cf_opt" >&5
-+echo "${ECHO_T}... -$cf_opt" >&6
-+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-+ fi
-+ done
-+ CFLAGS="$cf_save_CFLAGS"
-+
-+elif test "$GCC" = yes
-+then
-+ { echo "$as_me:15125: checking for $CC warning options..." >&5
-+echo "$as_me: checking for $CC warning options..." >&6;}
-+ cf_save_CFLAGS="$CFLAGS"
-+ EXTRA_CFLAGS=
-+ cf_warn_CONST=""
-+ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
-+ for cf_opt in W Wall \
-+ Wbad-function-cast \
-+ Wcast-align \
-+ Wcast-qual \
-+ Winline \
-+ Wmissing-declarations \
-+ Wmissing-prototypes \
-+ Wnested-externs \
-+ Wpointer-arith \
-+ Wshadow \
-+ Wstrict-prototypes \
-+ Wundef $cf_warn_CONST
-+ do
-+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-+ if { (eval echo "$as_me:15145: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>&5
-+ ac_status=$?
-+ echo "$as_me:15148: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ test -n "$verbose" && echo "$as_me:15150: result: ... -$cf_opt" >&5
-+echo "${ECHO_T}... -$cf_opt" >&6
-+ case $cf_opt in #(vi
-+ Wcast-qual) #(vi
-+ CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
-+ ;;
-+ Winline) #(vi
-+ case $GCC_VERSION in
-+ [34].*)
-+ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-+
-+echo "${as_me:-configure}:15161: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+
-+ continue;;
-+ esac
-+ ;;
-+ Wpointer-arith) #(vi
-+ case $GCC_VERSION in
-+ [12].*)
-+ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-+
-+echo "${as_me:-configure}:15171: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-+
-+ continue;;
-+ esac
-+ ;;
-+ esac
-+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-+ fi
-+ done
-+ CFLAGS="$cf_save_CFLAGS"
- fi
--echo "$as_me:14548: result: $cf_cv_wint_t" >&5
--echo "${ECHO_T}$cf_cv_wint_t" >&6
-+rm -rf conftest*
-
--if test "$cf_cv_wint_t" = yes ; then
-- cat >>confdefs.h <<\EOF
--#define NEED_WCHAR_H 1
-+fi
-+fi
-+
-+echo "$as_me:15187: checking if you want to use dmalloc for testing" >&5
-+echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
-+
-+# Check whether --with-dmalloc or --without-dmalloc was given.
-+if test "${with_dmalloc+set}" = set; then
-+ withval="$with_dmalloc"
-+
-+cat >>confdefs.h <<EOF
-+#define USE_DMALLOC 1
- EOF
-
-- NEED_WCHAR_H=1
-+ : ${with_cflags:=-g}
-+ : ${with_no_leaks:=yes}
-+ with_dmalloc=yes
-+else
-+ with_dmalloc=
-+fi;
-+echo "$as_me:15204: result: ${with_dmalloc:-no}" >&5
-+echo "${ECHO_T}${with_dmalloc:-no}" >&6
-+
-+case .$with_cflags in #(vi
-+.*-g*)
-+ case .$CFLAGS in #(vi
-+ .*-g*) #(vi
-+ ;;
-+ *)
-+
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-+
-+for cf_add_cflags in -g
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-+
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-+
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-+
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
-
--# if we do not find wint_t in either place, use substitution to provide a fallback.
--if test "$cf_cv_wint_t" = unknown ; then
-- NCURSES_WINT_T=1
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-+
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ ;;
-+ esac
-+ ;;
-+esac
-+
-+if test "$with_dmalloc" = yes ; then
-+ echo "$as_me:15298: checking for dmalloc.h" >&5
-+echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
-+if test "${ac_cv_header_dmalloc_h+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 15304 "configure"
-+#include "confdefs.h"
-+#include <dmalloc.h>
-+_ACEOF
-+if { (eval echo "$as_me:15308: \"$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:15314: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ ac_cv_header_dmalloc_h=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ ac_cv_header_dmalloc_h=no
- fi
--
--# if we find wint_t in either place, use substitution to provide a fallback.
--if test "$cf_cv_wint_t" != unknown ; then
-- NCURSES_OK_WINT_T=1
-+rm -f conftest.err conftest.$ac_ext
- fi
-+echo "$as_me:15333: result: $ac_cv_header_dmalloc_h" >&5
-+echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
-+if test $ac_cv_header_dmalloc_h = yes; then
-
--if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
--
--echo "$as_me:14571: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
--echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
-+echo "$as_me:15337: checking for dmalloc_debug in -ldmalloc" >&5
-+echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
-+if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldmalloc $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 14574 "configure"
-+#line 15345 "configure"
- #include "confdefs.h"
-
--#ifndef _XOPEN_SOURCE_EXTENDED
--#define _XOPEN_SOURCE_EXTENDED
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
- #endif
--#include <${cf_cv_ncurses_header:-curses.h}>
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char dmalloc_debug ();
- int
- main ()
- {
--
--mbstate_t foo
--
-+dmalloc_debug ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14592: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:15364: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14595: \$? = $ac_status" >&5
-+ echo "$as_me:15367: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14598: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:15370: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14601: \$? = $ac_status" >&5
-+ echo "$as_me:15373: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ ac_cv_lib_dmalloc_dmalloc_debug=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
-+ac_cv_lib_dmalloc_dmalloc_debug=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14610: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
--if test $cf_result = yes ; then
--
--cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
--
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:15384: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
-+echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
-+if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
-+ cat >>confdefs.h <<EOF
-+#define HAVE_LIBDMALLOC 1
- EOF
-
--else
-- cat >>confdefs.h <<EOF
--#define mbstate_t long
--EOF
-+ LIBS="-ldmalloc $LIBS"
-
- fi
-
- fi
-
--if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-+fi
-
--echo "$as_me:14631: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
--echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line 14634 "configure"
--#include "confdefs.h"
-+echo "$as_me:15399: checking if you want to use dbmalloc for testing" >&5
-+echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
-
--#ifndef _XOPEN_SOURCE_EXTENDED
--#define _XOPEN_SOURCE_EXTENDED
--#endif
--#include <${cf_cv_ncurses_header:-curses.h}>
--int
--main ()
--{
-+# Check whether --with-dbmalloc or --without-dbmalloc was given.
-+if test "${with_dbmalloc+set}" = set; then
-+ withval="$with_dbmalloc"
-
--wchar_t foo
-+cat >>confdefs.h <<EOF
-+#define USE_DBMALLOC 1
-+EOF
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14652: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:14655: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14658: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:14661: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=yes
-+ : ${with_cflags:=-g}
-+ : ${with_no_leaks:=yes}
-+ with_dbmalloc=yes
- else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_result=no
--fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14670: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
--if test $cf_result = yes ; then
-+ with_dbmalloc=
-+fi;
-+echo "$as_me:15416: result: ${with_dbmalloc:-no}" >&5
-+echo "${ECHO_T}${with_dbmalloc:-no}" >&6
-
--cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+case .$with_cflags in #(vi
-+.*-g*)
-+ case .$CFLAGS in #(vi
-+ .*-g*) #(vi
-+ ;;
-+ *)
-
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
--EOF
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-
--else
-- cat >>confdefs.h <<EOF
--#define wchar_t long
--EOF
-+for cf_add_cflags in -g
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
--fi
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-
--fi
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-
--if test "$NCURSES_OK_WINT_T" = 0 ; then
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-
--echo "$as_me:14691: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
--echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
--cat >conftest.$ac_ext <<_ACEOF
--#line 14694 "configure"
--#include "confdefs.h"
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
--#ifndef _XOPEN_SOURCE_EXTENDED
--#define _XOPEN_SOURCE_EXTENDED
--#endif
--#include <${cf_cv_ncurses_header:-curses.h}>
--int
--main ()
--{
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
--wint_t foo
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14712: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-- ac_status=$?
-- echo "$as_me:14715: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14718: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:14721: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_result=no
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14730: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
--if test $cf_result = yes ; then
-
--cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+if test -n "$cf_new_cppflags" ; then
-
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
--EOF
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
-+fi
-
--else
-- cat >>confdefs.h <<EOF
--#define wint_t long
--EOF
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ ;;
-+ esac
-+ ;;
-+esac
-
-+if test "$with_dbmalloc" = yes ; then
-+ echo "$as_me:15510: checking for dbmalloc.h" >&5
-+echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
-+if test "${ac_cv_header_dbmalloc_h+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 15516 "configure"
-+#include "confdefs.h"
-+#include <dbmalloc.h>
-+_ACEOF
-+if { (eval echo "$as_me:15520: \"$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:15526: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ ac_cv_header_dbmalloc_h=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ ac_cv_header_dbmalloc_h=no
- fi
--
-+rm -f conftest.err conftest.$ac_ext
- fi
-+echo "$as_me:15545: result: $ac_cv_header_dbmalloc_h" >&5
-+echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
-+if test $ac_cv_header_dbmalloc_h = yes; then
-
--echo "$as_me:14749: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
--echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
--
-+echo "$as_me:15549: checking for debug_malloc in -ldbmalloc" >&5
-+echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
-+if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-ldbmalloc $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
--#line 14753 "configure"
-+#line 15557 "configure"
- #include "confdefs.h"
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
- #endif
--
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char debug_malloc ();
- int
- main ()
- {
--
--void *foo = &(boolnames)
--
-+debug_malloc ();
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14781: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:15576: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14784: \$? = $ac_status" >&5
-+ echo "$as_me:15579: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14787: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:15582: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14790: \$? = $ac_status" >&5
-+ echo "$as_me:15585: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ ac_cv_lib_dbmalloc_debug_malloc=yes
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
-+ac_cv_lib_dbmalloc_debug_malloc=no
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14799: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:15596: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
-+echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
-+if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
-+ cat >>confdefs.h <<EOF
-+#define HAVE_LIBDBMALLOC 1
-+EOF
-
--if test $cf_result = yes ; then
-+ LIBS="-ldbmalloc $LIBS"
-
--cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+fi
-
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
-+fi
-+
-+fi
-+
-+echo "$as_me:15611: checking if you want to use valgrind for testing" >&5
-+echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
-+
-+# Check whether --with-valgrind or --without-valgrind was given.
-+if test "${with_valgrind+set}" = set; then
-+ withval="$with_valgrind"
-+
-+cat >>confdefs.h <<EOF
-+#define USE_VALGRIND 1
- EOF
-
-+ : ${with_cflags:=-g}
-+ : ${with_no_leaks:=yes}
-+ with_valgrind=yes
- else
-- echo "$as_me:14811: checking for data boolnames in library" >&5
--echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6
-- # BSD linkers insist on making weak linkage, but resolve at runtime.
-- if test "$cross_compiling" = yes; then
-+ with_valgrind=
-+fi;
-+echo "$as_me:15628: result: ${with_valgrind:-no}" >&5
-+echo "${ECHO_T}${with_valgrind:-no}" >&6
-
-- # cross-compiling
-- cat >conftest.$ac_ext <<_ACEOF
--#line 14818 "configure"
--#include "confdefs.h"
-+case .$with_cflags in #(vi
-+.*-g*)
-+ case .$CFLAGS in #(vi
-+ .*-g*) #(vi
-+ ;;
-+ *)
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
--#endif
-+cf_fix_cppflags=no
-+cf_new_cflags=
-+cf_new_cppflags=
-+cf_new_extra_cppflags=
-
--extern char boolnames;
--int
--main ()
--{
-+for cf_add_cflags in -g
-+do
-+case $cf_fix_cppflags in
-+no)
-+ case $cf_add_cflags in #(vi
-+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
-+ case $cf_add_cflags in
-+ -D*)
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
-- do {
-- void *foo = &(boolnames);
-- ${cf_cv_main_return:-return}(foo == 0);
-- } while (0)
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=yes
-
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:14850: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:14853: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:14856: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:14859: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=yes
--else
-- echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_result=no
--fi
--rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ if test $cf_fix_cppflags = yes ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ elif test "${cf_tst_cflags}" = "\"'" ; then
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-+ continue
-+ fi
-+ ;;
-+ esac
-+ case "$CPPFLAGS" in
-+ *$cf_add_cflags) #(vi
-+ ;;
-+ *) #(vi
-+ case $cf_add_cflags in #(vi
-+ -D*)
-+ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 14871 "configure"
--#include "confdefs.h"
-+CPPFLAGS=`echo "$CPPFLAGS" | \
-+ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
-+ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
--#endif
-+ ;;
-+ esac
-+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+ *)
-+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
-+ ;;
-+ esac
-+ ;;
-+yes)
-+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
--extern char boolnames;
--int main(void)
--{
-- void *foo = &(boolnames);
-- ${cf_cv_main_return:-return}(foo == 0);
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:14896: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:14899: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:14901: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:14904: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=yes
--else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_result=no
-+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-+
-+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
-+ && test -z "${cf_tst_cflags}" \
-+ && cf_fix_cppflags=no
-+ ;;
-+esac
-+done
-+
-+if test -n "$cf_new_cflags" ; then
-+
-+ CFLAGS="$CFLAGS $cf_new_cflags"
- fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+
-+if test -n "$cf_new_cppflags" ; then
-+
-+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
- fi
-- echo "$as_me:14915: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- if test $cf_result = yes ; then
-
--cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+if test -n "$cf_new_extra_cppflags" ; then
-+
-+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-+fi
-+
-+ ;;
-+ esac
-+ ;;
-+esac
-+
-+echo "$as_me:15721: checking if you want to perform memory-leak testing" >&5
-+echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
-+
-+# Check whether --enable-leaks or --disable-leaks was given.
-+if test "${enable_leaks+set}" = set; then
-+ enableval="$enable_leaks"
-+ if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
-+else
-+ : ${with_no_leaks:=no}
-+fi;
-+echo "$as_me:15731: result: $with_no_leaks" >&5
-+echo "${ECHO_T}$with_no_leaks" >&6
-+
-+if test "$with_no_leaks" = yes ; then
-
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
-+cat >>confdefs.h <<\EOF
-+#define NO_LEAKS 1
-+EOF
-+
-+cat >>confdefs.h <<\EOF
-+#define YY_NO_LEAKS 1
- EOF
-
-- fi
- fi
-
--echo "$as_me:14928: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
--echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
-+LD_RPATH_OPT=
-+echo "$as_me:15747: checking for an rpath option" >&5
-+echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
-+case $cf_cv_system_name in #(vi
-+irix*) #(vi
-+ if test "$GCC" = yes; then
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ else
-+ LD_RPATH_OPT="-rpath "
-+ fi
-+ ;;
-+linux*|gnu*|k*bsd*-gnu) #(vi
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ ;;
-+openbsd[2-9].*|mirbsd*) #(vi
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ ;;
-+dragonfly*|freebsd*) #(vi
-+ LD_RPATH_OPT="-rpath "
-+ ;;
-+netbsd*) #(vi
-+ LD_RPATH_OPT="-Wl,-rpath,"
-+ ;;
-+osf*|mls+*) #(vi
-+ LD_RPATH_OPT="-rpath "
-+ ;;
-+solaris2*) #(vi
-+ LD_RPATH_OPT="-R"
-+ ;;
-+*)
-+ ;;
-+esac
-+echo "$as_me:15778: result: $LD_RPATH_OPT" >&5
-+echo "${ECHO_T}$LD_RPATH_OPT" >&6
-
--cat >conftest.$ac_ext <<_ACEOF
--#line 14932 "configure"
-+case "x$LD_RPATH_OPT" in #(vi
-+x-R*)
-+ echo "$as_me:15783: checking if we need a space after rpath option" >&5
-+echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
-+ cf_save_LIBS="$LIBS"
-+ LIBS="${LD_RPATH_OPT}$libdir $LIBS"
-+ cat >conftest.$ac_ext <<_ACEOF
-+#line 15788 "configure"
- #include "confdefs.h"
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
--#endif
--
- int
- main ()
- {
-
--void *foo = &(boolfnames)
--
- ;
- return 0;
- }
- _ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:14960: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:15800: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:14963: \$? = $ac_status" >&5
-+ echo "$as_me:15803: \$? = $ac_status" >&5
- (exit $ac_status); } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:14966: \"$ac_try\"") >&5
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:15806: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:14969: \$? = $ac_status" >&5
-+ echo "$as_me:15809: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ cf_rpath_space=no
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
-+cf_rpath_space=yes
- fi
--rm -f conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:14978: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-+ LIBS="$cf_save_LIBS"
-+ echo "$as_me:15819: result: $cf_rpath_space" >&5
-+echo "${ECHO_T}$cf_rpath_space" >&6
-+ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
-+ ;;
-+esac
-
--if test $cf_result = yes ; then
-+echo "$as_me:15825: checking if rpath-hack should be disabled" >&5
-+echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
-
--cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+# Check whether --enable-rpath-hack or --disable-rpath-hack was given.
-+if test "${enable_rpath_hack+set}" = set; then
-+ enableval="$enable_rpath_hack"
-+ test "$enableval" != no && enableval=yes
-+ if test "$enableval" != "yes" ; then
-+ cf_disable_rpath_hack=yes
-+ else
-+ cf_disable_rpath_hack=no
-+ fi
-+else
-+ enableval=yes
-+ cf_disable_rpath_hack=no
-
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
--EOF
-+fi;
-+echo "$as_me:15842: result: $cf_disable_rpath_hack" >&5
-+echo "${ECHO_T}$cf_disable_rpath_hack" >&6
-+if test "$cf_disable_rpath_hack" = no ; then
-+
-+echo "$as_me:15846: checking for updated LDFLAGS" >&5
-+echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
-+if test -n "$LD_RPATH_OPT" ; then
-+ echo "$as_me:15849: result: maybe" >&5
-+echo "${ECHO_T}maybe" >&6
-
-+ for ac_prog in ldd
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:15856: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- echo "$as_me:14990: checking for data boolfnames in library" >&5
--echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6
-- # BSD linkers insist on making weak linkage, but resolve at runtime.
-- if test "$cross_compiling" = yes; then
-+ if test -n "$cf_ldd_prog"; then
-+ ac_cv_prog_cf_ldd_prog="$cf_ldd_prog" # Let the user override the test.
-+else
-+ ac_save_IFS=$IFS; IFS=$ac_path_separator
-+ac_dummy="$PATH"
-+for ac_dir in $ac_dummy; do
-+ IFS=$ac_save_IFS
-+ test -z "$ac_dir" && ac_dir=.
-+ $as_executable_p "$ac_dir/$ac_word" || continue
-+ac_cv_prog_cf_ldd_prog="$ac_prog"
-+echo "$as_me:15871: found $ac_dir/$ac_word" >&5
-+break
-+done
-
-- # cross-compiling
-- cat >conftest.$ac_ext <<_ACEOF
--#line 14997 "configure"
--#include "confdefs.h"
-+fi
-+fi
-+cf_ldd_prog=$ac_cv_prog_cf_ldd_prog
-+if test -n "$cf_ldd_prog"; then
-+ echo "$as_me:15879: result: $cf_ldd_prog" >&5
-+echo "${ECHO_T}$cf_ldd_prog" >&6
-+else
-+ echo "$as_me:15882: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
--#endif
-+ test -n "$cf_ldd_prog" && break
-+done
-+test -n "$cf_ldd_prog" || cf_ldd_prog="no"
-
--extern char boolfnames;
-+ cf_rpath_list="/usr/lib /lib"
-+ if test "$cf_ldd_prog" != no
-+ then
-+ cf_rpath_oops=
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+#line 15896 "configure"
-+#include "confdefs.h"
-+#include <stdio.h>
- int
- main ()
- {
--
-- do {
-- void *foo = &(boolfnames);
-- ${cf_cv_main_return:-return}(foo == 0);
-- } while (0)
--
-+printf("Hello");
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:15029: \"$ac_link\"") >&5
-+if { (eval echo "$as_me:15908: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
-- echo "$as_me:15032: \$? = $ac_status" >&5
-+ echo "$as_me:15911: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:15035: \"$ac_try\"") >&5
-+ { (eval echo "$as_me:15914: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
-- echo "$as_me:15038: \$? = $ac_status" >&5
-+ echo "$as_me:15917: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-- cf_result=yes
-+ cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
-+ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort -u`
- else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
--cf_result=no
- fi
- rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
--else
-- cat >conftest.$ac_ext <<_ACEOF
--#line 15050 "configure"
--#include "confdefs.h"
-+ # If we passed the link-test, but get a "not found" on a given library,
-+ # this could be due to inept reconfiguration of gcc to make it only
-+ # partly honor /usr/local/lib (or whatever). Sometimes this behavior
-+ # is intentional, e.g., installing gcc in /usr/bin and suppressing the
-+ # /usr/local libraries.
-+ if test -n "$cf_rpath_oops"
-+ then
-+ for cf_rpath_src in $cf_rpath_oops
-+ do
-+ for cf_rpath_dir in \
-+ /usr/local \
-+ /usr/pkg \
-+ /opt/sfw
-+ do
-+ if test -f $cf_rpath_dir/lib/$cf_rpath_src
-+ then
-+ test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6
-+
-+echo "${as_me:-configure}:15945: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
-+
-+ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
-+ break
-+ fi
-+ done
-+ done
-+ fi
-+ fi
-
--#ifdef HAVE_XCURSES
--#include <xcurses.h>
--char * XCursesProgramName = "test";
--#else
--#include <${cf_cv_ncurses_header:-curses.h}>
--#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
--#include <ncursesw/term.h>
--#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
--#include <ncurses/term.h>
--#elif defined(HAVE_TERM_H)
--#include <term.h>
--#endif
--#endif
-+ test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-
--extern char boolfnames;
--int main(void)
--{
-- void *foo = &(boolfnames);
-- ${cf_cv_main_return:-return}(foo == 0);
--}
--_ACEOF
--rm -f conftest$ac_exeext
--if { (eval echo "$as_me:15075: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-- ac_status=$?
-- echo "$as_me:15078: \$? = $ac_status" >&5
-- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:15080: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:15083: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- cf_result=yes
--else
-- echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
--cat conftest.$ac_ext >&5
--cf_result=no
--fi
--rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
--fi
-- echo "$as_me:15094: result: $cf_result" >&5
--echo "${ECHO_T}$cf_result" >&6
-- if test $cf_result = yes ; then
-+echo "${as_me:-configure}:15957: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-
--cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-+test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
-
-- cat >>confdefs.h <<EOF
--#define $cf_result 1
--EOF
-+echo "${as_me:-configure}:15961: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
-+
-+cf_rpath_dst=
-+for cf_rpath_src in $LDFLAGS
-+do
-+ case $cf_rpath_src in #(vi
-+ -L*) #(vi
-+
-+ # check if this refers to a directory which we will ignore
-+ cf_rpath_skip=no
-+ if test -n "$cf_rpath_list"
-+ then
-+ for cf_rpath_item in $cf_rpath_list
-+ do
-+ if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
-+ then
-+ cf_rpath_skip=yes
-+ break
-+ fi
-+ done
-+ fi
-+
-+ if test "$cf_rpath_skip" = no
-+ then
-+ # transform the option
-+ if test "$LD_RPATH_OPT" = "-R " ; then
-+ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
-+ else
-+ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
-+ fi
-+
-+ # if we have not already added this, add it now
-+ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
-+ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
-+ then
-+ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-+
-+echo "${as_me:-configure}:15998: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
-+
-+ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
-+ fi
-+ fi
-+ ;;
-+ esac
-+ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
-+done
-+LDFLAGS=$cf_rpath_dst
-+
-+test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
-+
-+echo "${as_me:-configure}:16011: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
-+
-+test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6
-+
-+echo "${as_me:-configure}:16015: testing ...checking LIBS $LIBS ..." 1>&5
-+
-+cf_rpath_dst=
-+for cf_rpath_src in $LIBS
-+do
-+ case $cf_rpath_src in #(vi
-+ -L*) #(vi
-+
-+ # check if this refers to a directory which we will ignore
-+ cf_rpath_skip=no
-+ if test -n "$cf_rpath_list"
-+ then
-+ for cf_rpath_item in $cf_rpath_list
-+ do
-+ if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
-+ then
-+ cf_rpath_skip=yes
-+ break
-+ fi
-+ done
-+ fi
-+
-+ if test "$cf_rpath_skip" = no
-+ then
-+ # transform the option
-+ if test "$LD_RPATH_OPT" = "-R " ; then
-+ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
-+ else
-+ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
-+ fi
-+
-+ # if we have not already added this, add it now
-+ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
-+ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
-+ then
-+ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
-+
-+echo "${as_me:-configure}:16052: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
-+
-+ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
-+ fi
-+ fi
-+ ;;
-+ esac
-+ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
-+done
-+LIBS=$cf_rpath_dst
-+
-+test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6
-+
-+echo "${as_me:-configure}:16065: testing ...checked LIBS $LIBS ..." 1>&5
-+
-+ test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
-+
-+echo "${as_me:-configure}:16069: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
-+
-+fi
-
-- fi
- fi
-
- TEST_ARGS="$LIBS"
-@@ -15188,7 +16156,7 @@
- : ${CONFIG_STATUS=./config.status}
- ac_clean_files_save=$ac_clean_files
- ac_clean_files="$ac_clean_files $CONFIG_STATUS"
--{ echo "$as_me:15191: creating $CONFIG_STATUS" >&5
-+{ echo "$as_me:16159: creating $CONFIG_STATUS" >&5
- echo "$as_me: creating $CONFIG_STATUS" >&6;}
- cat >$CONFIG_STATUS <<_ACEOF
- #! $SHELL
-@@ -15320,7 +16288,7 @@
- cat >>$CONFIG_STATUS <<EOF
- ac_cs_version="\\
- config.status
--configured by $0, generated by GNU Autoconf 2.52.20101002,
-+configured by $0, generated by GNU Autoconf 2.52.20121002,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
- Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-@@ -15364,7 +16332,7 @@
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
-- { { echo "$as_me:15367: error: ambiguous option: $1
-+ { { echo "$as_me:16335: error: ambiguous option: $1
- Try \`$0 --help' for more information." >&5
- echo "$as_me: error: ambiguous option: $1
- Try \`$0 --help' for more information." >&2;}
-@@ -15383,7 +16351,7 @@
- ac_need_defaults=false;;
-
- # This is an error.
-- -*) { { echo "$as_me:15386: error: unrecognized option: $1
-+ -*) { { echo "$as_me:16354: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&5
- echo "$as_me: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&2;}
-@@ -15402,7 +16370,7 @@
- ## Running config.status. ##
- ## ----------------------- ##
-
--This file was extended by $as_me 2.52.20101002, executed with
-+This file was extended by $as_me 2.52.20121002, executed with
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
-@@ -15419,7 +16387,9 @@
- #
-
- AWK="$AWK"
-+ECHO_CC="$ECHO_CC"
- ECHO_LD="$ECHO_LD"
-+SHOW_CC="$SHOW_LD"
-
- EOF
-
-@@ -15431,7 +16401,7 @@
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- "ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ncurses_cfg.h:ncurses_tst.hin" ;;
-- *) { { echo "$as_me:15434: error: invalid argument: $ac_config_target" >&5
-+ *) { { echo "$as_me:16404: error: invalid argument: $ac_config_target" >&5
- echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-@@ -15490,6 +16460,7 @@
- s,@bindir@,$bindir,;t t
- s,@sbindir@,$sbindir,;t t
- s,@libexecdir@,$libexecdir,;t t
-+s,@datarootdir@,$datarootdir,;t t
- s,@datadir@,$datadir,;t t
- s,@sysconfdir@,$sysconfdir,;t t
- s,@sharedstatedir@,$sharedstatedir,;t t
-@@ -15529,6 +16500,7 @@
- s,@ac_ct_CC@,$ac_ct_CC,;t t
- s,@EXEEXT@,$EXEEXT,;t t
- s,@OBJEXT@,$OBJEXT,;t t
-+s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
- s,@CPP@,$CPP,;t t
- s,@AWK@,$AWK,;t t
- s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-@@ -15541,6 +16513,7 @@
- s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
- s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t
- s,@MATH_LIB@,$MATH_LIB,;t t
-+s,@top_builddir@,$top_builddir,;t t
- s,@CC_G_OPT@,$CC_G_OPT,;t t
- s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t
- s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
-@@ -15561,25 +16534,29 @@
- s,@TEST_ARGS@,$TEST_ARGS,;t t
- s,@TEST_DEPS@,$TEST_DEPS,;t t
- s,@TEST_LIBS@,$TEST_LIBS,;t t
--s,@TINFO_ARGS@,$TINFO_ARGS,;t t
-+s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t
-+s,@TINFO_LIBS@,$TINFO_LIBS,;t t
- s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t
- s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t
--s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
-+s,@PKG_CONFIG@,$PKG_CONFIG,;t t
-+s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
- s,@ECHO_LT@,$ECHO_LT,;t t
- s,@ECHO_LD@,$ECHO_LD,;t t
- s,@RULE_CC@,$RULE_CC,;t t
- s,@SHOW_CC@,$SHOW_CC,;t t
- s,@ECHO_CC@,$ECHO_CC,;t t
--s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
-+s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
- s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t
--s,@PKG_CONFIG@,$PKG_CONFIG,;t t
--s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
-+s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t
- s,@X_CFLAGS@,$X_CFLAGS,;t t
- s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
- s,@X_LIBS@,$X_LIBS,;t t
- s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
- s,@XCURSES_CONFIG@,$XCURSES_CONFIG,;t t
--s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
-+s,@ac_ct_XCURSES_CONFIG@,$ac_ct_XCURSES_CONFIG,;t t
-+s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
-+s,@cf_ldd_prog@,$cf_ldd_prog,;t t
-+s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t
- CEOF
-
- EOF
-@@ -15694,7 +16671,7 @@
- esac
-
- if test x"$ac_file" != x-; then
-- { echo "$as_me:15697: creating $ac_file" >&5
-+ { echo "$as_me:16674: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
-@@ -15712,7 +16689,7 @@
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:15715: error: cannot find input file: $f" >&5
-+ test -f "$f" || { { echo "$as_me:16692: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo $f;;
-@@ -15725,13 +16702,45 @@
- echo $srcdir/$f
- else
- # /dev/null tree
-- { { echo "$as_me:15728: error: cannot find input file: $f" >&5
-+ { { echo "$as_me:16705: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- EOF
-+cat >>$CONFIG_STATUS <<\EOF
-+ ac_warn_datarootdir=no
-+ if test x"$ac_file" != x-; then
-+ for ac_item in $ac_file_inputs
-+ do
-+ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item`
-+ if test -n "$ac_seen"; then
-+ ac_used=`grep '@datarootdir@' $ac_item`
-+ if test -z "$ac_used"; then
-+ { echo "$as_me:16721: WARNING: datarootdir was used implicitly but not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: datarootdir was used implicitly but not set:
-+$ac_seen" >&2;}
-+ ac_warn_datarootdir=yes
-+ fi
-+ fi
-+ ac_seen=`grep '${datarootdir}' $ac_item`
-+ if test -n "$ac_seen"; then
-+ { echo "$as_me:16730: WARNING: datarootdir was used explicitly but not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: datarootdir was used explicitly but not set:
-+$ac_seen" >&2;}
-+ ac_warn_datarootdir=yes
-+ fi
-+ done
-+ fi
-+
-+if test "x$ac_warn_datarootdir" = xyes; then
-+ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'"
-+fi
-+
-+EOF
- cat >>$CONFIG_STATUS <<EOF
- sed "$ac_vpsub
- $extrasub
-@@ -15746,11 +16755,35 @@
- " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
-- mv $tmp/out $ac_file
-+ cp $tmp/out $ac_file
-+
-+ for ac_name in prefix exec_prefix datarootdir
-+ do
-+ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file`
-+ if test -n "$ac_seen"; then
-+ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
-+ if test -z "$ac_init"; then
-+ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
-+ { echo "$as_me:16767: WARNING: Variable $ac_name is used but was not set:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: Variable $ac_name is used but was not set:
-+$ac_seen" >&2;}
-+ fi
-+ fi
-+ done
-+ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out
-+ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
-+ if test -s $tmp/out; then
-+ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
-+ { echo "$as_me:16778: WARNING: Some variables may not be substituted:
-+$ac_seen" >&5
-+echo "$as_me: WARNING: Some variables may not be substituted:
-+$ac_seen" >&2;}
-+ fi
- else
- cat $tmp/out
-- rm -f $tmp/out
- fi
-+ rm -f $tmp/out
-
- done
- EOF
-@@ -15791,7 +16824,7 @@
- * ) ac_file_in=$ac_file.in ;;
- esac
-
-- test x"$ac_file" != x- && { echo "$as_me:15794: creating $ac_file" >&5
-+ test x"$ac_file" != x- && { echo "$as_me:16827: creating $ac_file" >&5
- echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
-@@ -15802,7 +16835,7 @@
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:15805: error: cannot find input file: $f" >&5
-+ test -f "$f" || { { echo "$as_me:16838: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo $f;;
-@@ -15815,7 +16848,7 @@
- echo $srcdir/$f
- else
- # /dev/null tree
-- { { echo "$as_me:15818: error: cannot find input file: $f" >&5
-+ { { echo "$as_me:16851: error: cannot find input file: $f" >&5
- echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
-@@ -15873,7 +16906,7 @@
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-- { echo "$as_me:15876: $ac_file is unchanged" >&5
-+ { echo "$as_me:16909: $ac_file is unchanged" >&5
- echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-@@ -15949,7 +16982,8 @@
- \$(MODEL)/$N.o : \$(srcdir)/$N.c \\
- \$(srcdir)/test.priv.h \\
- ncurses_cfg.h
-- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
-+ $SHOW_CC
-+ $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
- TEST_EOF
- done
-
-Index: test/configure.in
-Prereq: 1.90
---- ncurses-5.9/test/configure.in 2011-03-22 09:15:08.000000000 +0000
-+++ ncurses-5.9-20130504/test/configure.in 2013-04-27 19:45:29.000000000 +0000
-@@ -1,5 +1,5 @@
- dnl***************************************************************************
--dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+dnl Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- dnl *
- dnl Permission is hereby granted, free of charge, to any person obtaining a *
- dnl copy of this software and associated documentation files (the *
-@@ -28,7 +28,7 @@
- dnl
- dnl Author: Thomas E. Dickey 1996, etc.
- dnl
--dnl $Id: configure.in,v 1.90 2011/03/22 09:15:08 tom Exp $
-+dnl $Id: configure.in,v 1.111 2013/04/27 19:45:29 tom Exp $
- dnl This is a simple configuration-script for the ncurses test programs that
- dnl allows the test-directory to be separately configured against a reference
- dnl system (i.e., sysvr4 curses)
-@@ -38,7 +38,7 @@
- dnl
- dnl See http://invisible-island.net/autoconf/ for additional information.
- dnl ---------------------------------------------------------------------------
--AC_PREREQ(2.13.20020210)
-+AC_PREREQ(2.52.20030208)
- AC_INIT(ncurses.c)
- AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
-
-@@ -49,7 +49,7 @@
- AC_ARG_PROGRAM
-
- AC_PROG_MAKE_SET
--AC_PROG_CC
-+CF_PROG_CC
- AC_PROG_CPP
- AC_PROG_AWK
- CF_PROG_INSTALL
-@@ -60,6 +60,7 @@
- AC_SUBST(MATH_LIB)
-
- dnl Things that we don't need (or must override) if we're not building ncurses
-+CF_TOP_BUILDDIR
- CC_G_OPT="-g" AC_SUBST(CC_G_OPT)
- CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS)
- CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS)
-@@ -81,7 +82,8 @@
- TEST_ARGS="" AC_SUBST(TEST_ARGS)
- TEST_DEPS="" AC_SUBST(TEST_DEPS)
- TEST_LIBS="" AC_SUBST(TEST_LIBS)
--TINFO_ARGS='$(LIBS_CURSES)' AC_SUBST(TINFO_ARGS)
-+TINFO_LDFLAGS='' AC_SUBST(TINFO_LDFLAGS)
-+TINFO_LIBS='$(LIBS_CURSES)' AC_SUBST(TINFO_LIBS)
- cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
- cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
-
-@@ -91,55 +93,38 @@
- AC_EXEEXT
- AC_OBJEXT
-
--CF_ANSI_CC_REQD
- CF_GCC_ATTRIBUTES
- CF_XOPEN_SOURCE
--AC_C_CONST
- CF_SIG_ATOMIC_T
-
-+dnl ---------------------------------------------------------------------------
-+CF_HELP_MESSAGE(General Options:)
-+CF_PKG_CONFIG
- CF_DISABLE_ECHO
--CF_ENABLE_WARNINGS
-
--CF_DISABLE_LEAKS
--CF_WITH_CURSES_DIR
-+dnl ---------------------------------------------------------------------------
-+CF_HELP_MESSAGE(Curses Version-dependent Options:)
-+CF_NCURSES_WRAP_PREFIX
-
--dnl SunOS 4.x
--AC_ARG_WITH(5lib,
-- [ --with-5lib use SunOS sysv-libraries],
-- [LIBS="-L/usr/5lib $LIBS"
-- CPPFLAGS="$CPPFLAGS -I/usr/5include"])
-+AC_MSG_CHECKING(if you want to check for wide-character functions)
-+CF_ARG_DISABLE(widec,
-+ [ --disable-widec disable checks for wide-character functions],
-+ cf_enable_widec=no,
-+ cf_enable_widec=yes,
-+ yes)
-+AC_MSG_RESULT($cf_enable_widec)
-
- dnl ---------------------------------------------------------------------------
--dnl NcursesW, installed in conventional location
--AC_ARG_WITH(ncursesw,
-- [ --with-ncursesw use wide ncurses-libraries (installed)],
-- [cf_cv_screen=ncursesw],[
--
--dnl Ncurses, installed in conventional location
--AC_ARG_WITH(ncurses,
-- [ --with-ncurses use ncurses-libraries (installed)],
-- [cf_cv_screen=ncurses],[
--
--AC_ARG_WITH(pdcurses,
-- [ --with-pdcurses compile/link with pdcurses X11 library],
-- [cf_cv_screen=pdcurses])])])
-+CF_HELP_MESSAGE(Curses Version-dependent Options:)
-+CF_WITH_NCURSES_ETC
-
- case $cf_cv_screen in
--curses)
-- CF_CURSES_CONFIG
-+curses|curses_*)
- CF_NETBSD_FORM_H
- CF_NETBSD_MENU_H
- ;;
--ncurses)
-- CF_NCURSES_CONFIG
-- ;;
- ncursesw)
- cf_cv_libtype=w
-- CF_UTF8_LIB
-- CF_NCURSES_CONFIG(ncursesw)
-- ;;
--pdcurses) #(vi
-- CF_PDCURSES_X11
- ;;
- esac
-
-@@ -153,9 +138,12 @@
- ;;
- *)
- # look for curses-related libraries
-- AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
-- AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
-- AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
-+ : ${cf_panel_lib:=panel}
-+ : ${cf_menu_lib:=menu}
-+ : ${cf_form_lib:=form}
-+ AC_CHECK_LIB($cf_panel_lib$cf_cv_libtype,new_panel)
-+ AC_CHECK_LIB($cf_menu_lib$cf_cv_libtype,menu_driver)
-+ AC_CHECK_LIB($cf_form_lib$cf_cv_libtype,form_driver)
-
- # look for curses-related headers
- AC_CHECK_HEADERS( \
-@@ -169,8 +157,6 @@
- ;;
- esac
-
--AC_TYPE_SIGNAL
--
- AC_STDC_HEADERS
- AC_HEADER_TIME
- AC_CHECK_HEADERS( \
-@@ -185,20 +171,27 @@
- unistd.h \
- )
-
-+CF_GETOPT_HEADER
-+
- AC_CHECK_FUNCS( \
- gettimeofday \
-+)
-+
-+if test "$cf_enable_widec" = yes; then
-+AC_CHECK_FUNCS( \
- mblen \
- mbrlen \
- mbrtowc \
- mbsrtowcs \
- mbstowcs \
- mbtowc \
--strdup \
- wcsrtombs \
- wcstombs \
- )
-+fi
-
- CF_CURSES_FUNCS( \
-+assume_default_colors \
- chgat \
- color_set \
- filter \
-@@ -225,61 +218,104 @@
- tigetstr \
- typeahead \
- use_default_colors \
--vw_printw \
-+use_screen \
-+use_window \
- vsscanf \
-+vw_printw \
- wchgat \
- winsstr \
- wresize \
- wsyncdown \
- )
-
-+CF_TPUTS_PROTO
- CF_NCURSES_EXT_FUNCS
-
--AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
--AC_TRY_LINK([
-+if test "$cf_enable_widec" = yes
-+then
-+ # workaround for systems with ncurses before 20111029, due to change of
-+ # feature test macro from _XPG5 to _XOPEN_SOURCE
-+ if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno
-+ then
-+ cf_define_xpg5=no
-+ AC_MSG_CHECKING(if _XPG5 should be defined to enable wide-characters)
-+
-+ AC_TRY_COMPILE([
-+#include <${cf_cv_ncurses_header:-curses.h}>],
-+ [int x = _XPG5],,
-+ [cf_save_cppflags="$CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS -D_XPG5"
-+ AC_TRY_COMPILE([
-+#include <${cf_cv_ncurses_header:-curses.h}>],
-+ [int x = _XPG5],
-+ [cf_define_xpg5=yes])
-+ CPPFLAGS="$cf_save_cppflags"])
-+ AC_MSG_RESULT($cf_define_xpg5)
-+
-+ if test "$cf_define_xpg5" = yes
-+ then
-+ CPPFLAGS="$CPPFLAGS -D_XPG5"
-+ fi
-+ fi
-+
-+ AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
-+ AC_TRY_LINK([
- #include <${cf_cv_ncurses_header:-curses.h}>],
--[
-- static wchar_t src_wchar[2];
-- static cchar_t dst_cchar;
-- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-- ],
-- [cf_cv_widechar_funcs=yes],
-- [cf_cv_widechar_funcs=no])
--])
--if test "$cf_cv_widechar_funcs" != no ; then
-- AC_DEFINE(USE_WIDEC_SUPPORT,1)
-+ [
-+ static wchar_t src_wchar[2];
-+ static cchar_t dst_cchar;
-+ setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-+ ],
-+ [cf_cv_widechar_funcs=yes],
-+ [cf_cv_widechar_funcs=no])
-+ ])
-+ if test "$cf_cv_widechar_funcs" != no ; then
-+ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to enable wide-character support in (n)curses])
-+ else
-+ AC_DEFINE(USE_WIDEC_SUPPORT,0)
-+ fi
- else
- AC_DEFINE(USE_WIDEC_SUPPORT,0)
- fi
-
--AC_FUNC_VFORK
- CF_SYS_TIME_SELECT
- CF_FUNC_CURSES_VERSION
--CF_CURSES_ACS_MAP
--CF_CURSES_WACS_MAP
--CF_CURSES_WACS_SYMBOLS
--
--CF_CURSES_CHECK_TYPE(attr_t,long)
--
--CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
--CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
--CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
-
--if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
-- CF_CURSES_CHECK_TYPE(mbstate_t,long)
-+CF_CURSES_ACS_MAP
-+if test "$cf_enable_widec" = yes; then
-+ CF_CURSES_WACS_MAP
-+ CF_CURSES_WACS_SYMBOLS
- fi
-
--if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-- CF_CURSES_CHECK_TYPE(wchar_t,long)
--fi
-+CF_CURSES_CHECK_TYPE(attr_t,long)
-
--if test "$NCURSES_OK_WINT_T" = 0 ; then
-- CF_CURSES_CHECK_TYPE(wint_t,long)
-+if test "$cf_enable_widec" = yes; then
-+ CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
-+ CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
-+ CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
-+
-+ if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
-+ CF_CURSES_CHECK_TYPE(mbstate_t,long)
-+ fi
-+
-+ if test "$NCURSES_OK_WCHAR_T" = 0 ; then
-+ CF_CURSES_CHECK_TYPE(wchar_t,long)
-+ fi
-+
-+ if test "$NCURSES_OK_WINT_T" = 0 ; then
-+ CF_CURSES_CHECK_TYPE(wint_t,long)
-+ fi
- fi
-
- CF_CURSES_CHECK_DATA(boolnames)
- CF_CURSES_CHECK_DATA(boolfnames)
-
-+dnl ---------------------------------------------------------------------------
-+CF_HELP_MESSAGE(Testing/development Options:)
-+CF_ENABLE_WARNINGS
-+CF_DISABLE_LEAKS
-+CF_DISABLE_RPATH_HACK
-+
- TEST_ARGS="$LIBS"
- LIBS=
-
-@@ -302,7 +338,8 @@
- \$(MODEL)/$N.o : \$(srcdir)/$N.c \\
- \$(srcdir)/test.priv.h \\
- ncurses_cfg.h
-- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
-+ $SHOW_CC
-+ $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
- TEST_EOF
- done
-
-@@ -317,5 +354,7 @@
- fi
- ],[
- AWK="$AWK"
-+ECHO_CC="$ECHO_CC"
- ECHO_LD="$ECHO_LD"
-+SHOW_CC="$SHOW_LD"
- ],cat)
-Index: test/demo_defkey.c
-Prereq: 1.20
---- ncurses-5.9/test/demo_defkey.c 2010-11-14 00:59:35.000000000 +0000
-+++ ncurses-5.9-20130504/test/demo_defkey.c 2012-12-29 22:55:39.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2008,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: demo_defkey.c,v 1.20 2010/11/14 00:59:35 tom Exp $
-+ * $Id: demo_defkey.c,v 1.21 2012/12/29 22:55:39 tom Exp $
- *
- * Demonstrate the define_key() function.
- * Thomas Dickey - 2002/11/23
-@@ -106,7 +106,7 @@
- for (pass = 0; pass < 2; ++pass) {
- for (n = 0; string[n] != '\0'; ++n) {
- char temp[80];
-- strcpy(temp, visichar(string[n]));
-+ strncpy(temp, visichar(string[n]), sizeof(temp) - 2);
- if (pass)
- strcat(result, temp);
- else
-Index: test/demo_forms.c
-Prereq: 1.38
---- ncurses-5.9/test/demo_forms.c 2011-01-15 18:15:11.000000000 +0000
-+++ ncurses-5.9-20130504/test/demo_forms.c 2012-11-18 01:22:44.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2003-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 2003-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: demo_forms.c,v 1.38 2011/01/15 18:15:11 tom Exp $
-+ * $Id: demo_forms.c,v 1.40 2012/11/18 01:22:44 tom Exp $
- *
- * Demonstrate a variety of functions from the form library.
- * Thomas Dickey - 2003/4/26
-@@ -108,7 +108,7 @@
- set_field_just(f, j_value);
- if (d_option) {
- if (has_colors()) {
-- set_field_fore(f, COLOR_PAIR(2));
-+ set_field_fore(f, (chtype) COLOR_PAIR(2));
- set_field_back(f, A_UNDERLINE | COLOR_PAIR(3));
- } else {
- set_field_fore(f, A_BOLD);
-@@ -153,10 +153,10 @@
- set_form_sub(f, derwin(w, rows, cols, 1, 2));
- box(w, 0, 0);
- keypad(w, TRUE);
-- }
-
-- if (post_form(f) != E_OK)
-- wrefresh(w);
-+ if (post_form(f) != E_OK)
-+ wrefresh(w);
-+ }
- }
-
- static void
-@@ -257,7 +257,7 @@
- int currow, curcol;
-
- if (has_colors()) {
-- wbkgd(win, COLOR_PAIR(1));
-+ wbkgd(win, (chtype) COLOR_PAIR(1));
- }
- werase(win);
- form_getyx(form, currow, curcol);
-@@ -309,15 +309,15 @@
- }
-
- waddch(win, ' ');
-- (void) wattrset(win, field_fore(field));
-+ (void) wattrset(win, (int) field_fore(field));
- waddstr(win, "fore");
-- wattroff(win, field_fore(field));
-+ wattroff(win, (int) field_fore(field));
-
- waddch(win, '/');
-
-- (void) wattrset(win, field_back(field));
-+ (void) wattrset(win, (int) field_back(field));
- waddstr(win, "back");
-- wattroff(win, field_back(field));
-+ wattroff(win, (int) field_back(field));
-
- wprintw(win, ", pad '%c'",
- field_pad(field));
-@@ -531,7 +531,7 @@
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_CYAN, COLOR_BLACK);
-- bkgd(COLOR_PAIR(1));
-+ bkgd((chtype) COLOR_PAIR(1));
- refresh();
- }
-
-@@ -540,6 +540,7 @@
- endwin();
- ExitProgram(EXIT_SUCCESS);
- }
-+
- #else
- int
- main(void)
-Index: test/demo_menus.c
-Prereq: 1.32
---- ncurses-5.9/test/demo_menus.c 2011-01-15 20:02:47.000000000 +0000
-+++ ncurses-5.9-20130504/test/demo_menus.c 2012-11-18 00:18:54.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2005-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 2005-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: demo_menus.c,v 1.32 2011/01/15 20:02:47 tom Exp $
-+ * $Id: demo_menus.c,v 1.37 2012/11/18 00:18:54 tom Exp $
- *
- * Demonstrate a variety of functions from the menu library.
- * Thomas Dickey - 2005/4/9
-@@ -109,18 +109,6 @@
-
- static bool loaded_file = FALSE;
-
--#if !HAVE_STRDUP
--#define strdup my_strdup
--static char *
--strdup(char *s)
--{
-- char *p = typeMalloc(char, strlen(s) + 1);
-- if (p)
-- strcpy(p, s);
-- return (p);
--}
--#endif /* not HAVE_STRDUP */
--
- /* Common function to allow ^T to toggle trace-mode in the middle of a test
- * so that trace-files can be made smaller.
- */
-@@ -225,8 +213,8 @@
- result = new_menu(items);
-
- if (has_colors()) {
-- set_menu_fore(result, COLOR_PAIR(1));
-- set_menu_back(result, COLOR_PAIR(2));
-+ set_menu_fore(result, (chtype) COLOR_PAIR(1));
-+ set_menu_back(result, (chtype) COLOR_PAIR(2));
- }
-
- set_menu_format(result, maxrow, maxcol);
-@@ -281,12 +269,15 @@
- free((char *) blob);
- }
- free(items);
-+ items = 0;
- }
- #ifdef TRACE
- if ((count > 0) && (m == mpTrace)) {
- ITEM **ip = items;
-- while (*ip)
-- free(*ip++);
-+ if (ip != 0) {
-+ while (*ip)
-+ free(*ip++);
-+ }
- }
- #endif
- }
-@@ -398,6 +389,8 @@
- }
- loaded_file = TRUE;
- }
-+ if (ap == 0)
-+ free(items);
- }
- }
- if (ap == 0) {
-@@ -831,7 +824,7 @@
- {
- static const char *const tbl[] =
- {
-- "Usage: demo_menus [options]"
-+ "Usage: demo_menus [options] [menu-file]"
- ,""
- ,"Options:"
- #if HAVE_RIPOFFLINE
-@@ -867,7 +860,7 @@
- #endif /* HAVE_RIPOFFLINE */
- #ifdef TRACE
- case 't':
-- trace(strtoul(optarg, 0, 0));
-+ trace((unsigned) strtoul(optarg, 0, 0));
- break;
- #endif
- default:
-Index: test/demo_termcap.c
-Prereq: 1.14
---- ncurses-5.9/test/demo_termcap.c 2011-01-15 21:41:27.000000000 +0000
-+++ ncurses-5.9-20130504/test/demo_termcap.c 2013-01-19 19:30:52.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2005-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 2005-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey
- *
-- * $Id: demo_termcap.c,v 1.14 2011/01/15 21:41:27 tom Exp $
-+ * $Id: demo_termcap.c,v 1.23 2013/01/19 19:30:52 tom Exp $
- *
- * A simple demo of the termcap interface.
- */
-@@ -50,11 +50,112 @@
- #if USE_CODE_LISTS
- static bool b_opt = FALSE;
- static bool n_opt = FALSE;
-+static bool q_opt = FALSE;
- static bool s_opt = FALSE;
- #endif
-
-+static char *d_opt;
-+static char *e_opt;
-+static char **db_list;
-+static int db_item;
-+
-+static long total_values;
-+
- #define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0)
-
-+#if NO_LEAKS && USE_CODE_LISTS
-+
-+#define MYSCR struct _myscr
-+MYSCR {
-+ MYSCR *next;
-+ TERMINAL *term;
-+};
-+
-+static MYSCR *my_screens;
-+
-+static void
-+save_screen(void)
-+{
-+ MYSCR *obj = malloc(sizeof(MYSCR));
-+ obj->next = my_screens;
-+ obj->term = cur_term;
-+ my_screens = obj;
-+}
-+#else
-+#define save_screen() /* nothing */
-+#endif
-+
-+static char *
-+make_dbitem(char *p, char *q)
-+{
-+ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q));
-+ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q);
-+ return result;
-+}
-+
-+static void
-+make_dblist(void)
-+{
-+ if (d_opt && e_opt) {
-+ int pass;
-+
-+ for (pass = 0; pass < 2; ++pass) {
-+ char *p, *q;
-+ size_t count = 0;
-+
-+ for (p = q = d_opt; *p != '\0'; ++p) {
-+ if (*p == ':') {
-+ if (p != q + 1) {
-+ if (pass) {
-+ db_list[count] = make_dbitem(p, q);
-+ }
-+ count++;
-+ }
-+ q = p + 1;
-+ }
-+ }
-+ if (p != q + 1) {
-+ if (pass) {
-+ db_list[count] = make_dbitem(p, q);
-+ }
-+ count++;
-+ }
-+ if (!pass) {
-+ db_list = typeCalloc(char *, count + 1);
-+ }
-+ }
-+ }
-+}
-+
-+static char *
-+next_dbitem(void)
-+{
-+ char *result = 0;
-+
-+ if (db_list) {
-+ if ((result = db_list[db_item]) == 0) {
-+ db_item = 0;
-+ result = db_list[0];
-+ } else {
-+ db_item++;
-+ }
-+ }
-+ printf("** %s\n", result);
-+ return result;
-+}
-+
-+static void
-+free_dblist(void)
-+{
-+ if (db_list) {
-+ int n;
-+ for (n = 0; db_list[n]; ++n)
-+ free(db_list[n]);
-+ free(db_list);
-+ db_list = 0;
-+ }
-+}
-+
- static void
- dumpit(NCURSES_CONST char *cap)
- {
-@@ -70,66 +171,77 @@
- int num;
-
- if ((str = tgetstr(cap, &ap)) != 0) {
-- /*
-- * Note that the strings returned are mostly terminfo format, since
-- * ncurses does not convert except for a handful of special cases.
-- */
-- printf(FNAME(str), cap);
-- while (*str != 0) {
-- int ch = UChar(*str++);
-- switch (ch) {
-- case '\177':
-- fputs("^?", stdout);
-- break;
-- case '\033':
-- fputs("\\E", stdout);
-- break;
-- case '\b':
-- fputs("\\b", stdout);
-- break;
-- case '\f':
-- fputs("\\f", stdout);
-- break;
-- case '\n':
-- fputs("\\n", stdout);
-- break;
-- case '\r':
-- fputs("\\r", stdout);
-- break;
-- case ' ':
-- fputs("\\s", stdout);
-- break;
-- case '\t':
-- fputs("\\t", stdout);
-- break;
-- case '^':
-- fputs("\\^", stdout);
-- break;
-- case ':':
-- fputs("\\072", stdout);
-- break;
-- case '\\':
-- fputs("\\\\", stdout);
-- break;
-- default:
-- if (isgraph(ch))
-- fputc(ch, stdout);
-- else if (ch < 32)
-- printf("^%c", ch + '@');
-- else
-- printf("\\%03o", ch);
-- break;
-+ total_values++;
-+ if (!q_opt) {
-+ /*
-+ * Note that the strings returned are mostly terminfo format, since
-+ * ncurses does not convert except for a handful of special cases.
-+ */
-+ printf(FNAME(str), cap);
-+ while (*str != 0) {
-+ int ch = UChar(*str++);
-+ switch (ch) {
-+ case '\177':
-+ fputs("^?", stdout);
-+ break;
-+ case '\033':
-+ fputs("\\E", stdout);
-+ break;
-+ case '\b':
-+ fputs("\\b", stdout);
-+ break;
-+ case '\f':
-+ fputs("\\f", stdout);
-+ break;
-+ case '\n':
-+ fputs("\\n", stdout);
-+ break;
-+ case '\r':
-+ fputs("\\r", stdout);
-+ break;
-+ case ' ':
-+ fputs("\\s", stdout);
-+ break;
-+ case '\t':
-+ fputs("\\t", stdout);
-+ break;
-+ case '^':
-+ fputs("\\^", stdout);
-+ break;
-+ case ':':
-+ fputs("\\072", stdout);
-+ break;
-+ case '\\':
-+ fputs("\\\\", stdout);
-+ break;
-+ default:
-+ if (isgraph(ch))
-+ fputc(ch, stdout);
-+ else if (ch < 32)
-+ printf("^%c", ch + '@');
-+ else
-+ printf("\\%03o", ch);
-+ break;
-+ }
- }
-+ printf("\n");
- }
-- printf("\n");
- } else if ((num = tgetnum(cap)) >= 0) {
-- printf(FNAME(num), cap);
-- printf(" %d\n", num);
-+ total_values++;
-+ if (!q_opt) {
-+ printf(FNAME(num), cap);
-+ printf(" %d\n", num);
-+ }
- } else if (tgetflag(cap) > 0) {
-- printf(FNAME(flg), cap);
-- printf("%s\n", "true");
-+ ++total_values;
-+ if (!q_opt) {
-+ printf(FNAME(flg), cap);
-+ printf("%s\n", "true");
-+ }
- }
-- fflush(stdout);
-+
-+ if (!q_opt)
-+ fflush(stdout);
- }
-
- static void
-@@ -137,6 +249,9 @@
- {
- char buffer[1024];
-
-+ if (db_list) {
-+ putenv(next_dbitem());
-+ }
- printf("Terminal type %s\n", name);
- if (tgetent(buffer, name) >= 0) {
- char cap[3];
-@@ -159,17 +274,21 @@
-
- #if USE_CODE_LISTS
- static void
--demo_terminfo(NCURSES_CONST char *name)
-+demo_termcap(NCURSES_CONST char *name)
- {
- unsigned n;
- NCURSES_CONST char *cap;
-
-+ if (db_list) {
-+ putenv(next_dbitem());
-+ }
- printf("Terminal type \"%s\"\n", name);
- #if HAVE_SETUPTERM
- setupterm(name, 1, (int *) 0);
- #else
- setterm(name);
- #endif
-+ save_screen();
-
- if (b_opt) {
- for (n = 0;; ++n) {
-@@ -204,7 +323,7 @@
- {
- static const char *msg[] =
- {
-- "Usage: demo_terminfo [options] [terminal]",
-+ "Usage: demo_termcap [options] [terminal]",
- "",
- "If no options are given, print all (boolean, numeric, string)",
- "capabilities for the given terminal, using short names.",
-@@ -212,9 +331,15 @@
- "Options:",
- " -a try all names, print capabilities found",
- " -b print boolean-capabilities",
-+ " -d LIST colon-separated list of databases to use",
-+ " -e NAME environment variable to set with -d option",
- " -n print numeric-capabilities",
-+ " -q quiet (prints only counts)",
- " -r COUNT repeat for given count",
- " -s print string-capabilities",
-+#ifdef NCURSES_VERSION
-+ " -y disable extended capabilities",
-+#endif
- };
- unsigned n;
- for (n = 0; n < SIZEOF(msg); ++n) {
-@@ -235,7 +360,7 @@
- int repeat;
- int r_opt = 1;
-
-- while ((n = getopt(argc, argv, "abnr:s")) != -1) {
-+ while ((n = getopt(argc, argv, "abd:e:nqr:sy")) != -1) {
- switch (n) {
- case 'a':
- a_opt = TRUE;
-@@ -243,9 +368,18 @@
- case 'b':
- b_opt = TRUE;
- break;
-+ case 'd':
-+ d_opt = optarg;
-+ break;
-+ case 'e':
-+ e_opt = optarg;
-+ break;
- case 'n':
- n_opt = TRUE;
- break;
-+ case 'q':
-+ q_opt = TRUE;
-+ break;
- case 'r':
- if ((r_opt = atoi(optarg)) <= 0)
- usage();
-@@ -253,6 +387,11 @@
- case 's':
- s_opt = TRUE;
- break;
-+#ifdef NCURSES_VERSION
-+ case 'y':
-+ use_extended_names(FALSE);
-+ break;
-+#endif
- default:
- usage();
- break;
-@@ -268,6 +407,8 @@
- a_opt = TRUE;
- #endif
-
-+ make_dblist();
-+
- if (a_opt) {
- if (optind < argc) {
- for (n = optind; n < argc; ++n) {
-@@ -285,17 +426,35 @@
- for (repeat = 0; repeat < r_opt; ++repeat) {
- if (optind < argc) {
- for (n = optind; n < argc; ++n) {
-- demo_terminfo(argv[n]);
-+ demo_termcap(argv[n]);
- }
- } else if ((name = getenv("TERM")) != 0) {
-- demo_terminfo(name);
-+ demo_termcap(name);
- } else {
- static char dumb[] = "dumb";
-- demo_terminfo(dumb);
-+ demo_termcap(dumb);
- }
- }
-- }
-+#if NO_LEAKS
-+ /*
-+ * ncurses' tgetent() interface caches some entries and its no-leaks
-+ * code discards those. The calls to setupterm() on the other hand
-+ * are not cached, and each call allocates a chunk of memory, even
-+ * if the same terminal type is requested repeatedly.
-+ */
-+ while (my_screens != 0) {
-+ MYSCR *next = my_screens->next;
-+ del_curterm(my_screens->term);
-+ free(my_screens);
-+ my_screens = next;
-+ }
- #endif
-+ }
-+#endif /* USE_CODE_LISTS */
-+
-+ printf("%ld values\n", total_values);
-+
-+ free_dblist();
-
- ExitProgram(EXIT_SUCCESS);
- }
-@@ -306,6 +465,6 @@
- char *argv[]GCC_UNUSED)
- {
- printf("This program requires termcap\n");
-- exit(EXIT_FAILURE);
-+ ExitProgram(EXIT_FAILURE);
- }
- #endif
-Index: test/demo_terminfo.c
-Prereq: 1.9
---- ncurses-5.9/test/demo_terminfo.c 2010-11-28 00:15:27.000000000 +0000
-+++ ncurses-5.9-20130504/test/demo_terminfo.c 2013-01-19 19:30:58.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2009-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey
- *
-- * $Id: demo_terminfo.c,v 1.9 2010/11/28 00:15:27 tom Exp $
-+ * $Id: demo_terminfo.c,v 1.16 2013/01/19 19:30:58 tom Exp $
- *
- * A simple demo of the terminfo interface.
- */
-@@ -52,12 +52,90 @@
- static bool b_opt = FALSE;
- static bool f_opt = FALSE;
- static bool n_opt = FALSE;
-+static bool q_opt = FALSE;
- static bool s_opt = FALSE;
- static bool x_opt = FALSE;
-
-+static char *d_opt;
-+static char *e_opt;
-+static char **db_list;
-+static int db_item;
-+
-+static long total_values;
-+
- #define FCOLS 8
- #define FNAME(type) "%s %-*s = ", #type, FCOLS
-
-+static char *
-+make_dbitem(char *p, char *q)
-+{
-+ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q));
-+ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q);
-+ return result;
-+}
-+
-+static void
-+make_dblist(void)
-+{
-+ if (d_opt && e_opt) {
-+ int pass;
-+
-+ for (pass = 0; pass < 2; ++pass) {
-+ char *p, *q;
-+ size_t count = 0;
-+
-+ for (p = q = d_opt; *p != '\0'; ++p) {
-+ if (*p == ':') {
-+ if (p != q + 1) {
-+ if (pass) {
-+ db_list[count] = make_dbitem(p, q);
-+ }
-+ count++;
-+ }
-+ q = p + 1;
-+ }
-+ }
-+ if (p != q + 1) {
-+ if (pass) {
-+ db_list[count] = make_dbitem(p, q);
-+ }
-+ count++;
-+ }
-+ if (!pass) {
-+ db_list = typeCalloc(char *, count + 1);
-+ }
-+ }
-+ }
-+}
-+
-+static char *
-+next_dbitem(void)
-+{
-+ char *result = 0;
-+
-+ if (db_list) {
-+ if ((result = db_list[db_item]) == 0) {
-+ db_item = 0;
-+ result = db_list[0];
-+ } else {
-+ db_item++;
-+ }
-+ }
-+ printf("** %s\n", result);
-+ return result;
-+}
-+
-+static void
-+free_dblist(void)
-+{
-+ if (db_list) {
-+ int n;
-+ for (n = 0; db_list[n]; ++n)
-+ free(db_list[n]);
-+ free(db_list);
-+ db_list = 0;
-+ }
-+}
- static void
- dumpit(NCURSES_CONST char *cap)
- {
-@@ -72,66 +150,77 @@
- int num;
-
- if ((str = tigetstr(cap)) != 0 && (str != (char *) -1)) {
-- /*
-- * Note that the strings returned are mostly terminfo format, since
-- * ncurses does not convert except for a handful of special cases.
-- */
-- printf(FNAME(str), cap);
-- while (*str != 0) {
-- int ch = UChar(*str++);
-- switch (ch) {
-- case '\177':
-- fputs("^?", stdout);
-- break;
-- case '\033':
-- fputs("\\E", stdout);
-- break;
-- case '\b':
-- fputs("\\b", stdout);
-- break;
-- case '\f':
-- fputs("\\f", stdout);
-- break;
-- case '\n':
-- fputs("\\n", stdout);
-- break;
-- case '\r':
-- fputs("\\r", stdout);
-- break;
-- case ' ':
-- fputs("\\s", stdout);
-- break;
-- case '\t':
-- fputs("\\t", stdout);
-- break;
-- case '^':
-- fputs("\\^", stdout);
-- break;
-- case ':':
-- fputs("\\072", stdout);
-- break;
-- case '\\':
-- fputs("\\\\", stdout);
-- break;
-- default:
-- if (isgraph(ch))
-- fputc(ch, stdout);
-- else if (ch < 32)
-- printf("^%c", ch + '@');
-- else
-- printf("\\%03o", ch);
-- break;
-+ total_values++;
-+ if (!q_opt) {
-+ /*
-+ * Note that the strings returned are mostly terminfo format, since
-+ * ncurses does not convert except for a handful of special cases.
-+ */
-+ printf(FNAME(str), cap);
-+ while (*str != 0) {
-+ int ch = UChar(*str++);
-+ switch (ch) {
-+ case '\177':
-+ fputs("^?", stdout);
-+ break;
-+ case '\033':
-+ fputs("\\E", stdout);
-+ break;
-+ case '\b':
-+ fputs("\\b", stdout);
-+ break;
-+ case '\f':
-+ fputs("\\f", stdout);
-+ break;
-+ case '\n':
-+ fputs("\\n", stdout);
-+ break;
-+ case '\r':
-+ fputs("\\r", stdout);
-+ break;
-+ case ' ':
-+ fputs("\\s", stdout);
-+ break;
-+ case '\t':
-+ fputs("\\t", stdout);
-+ break;
-+ case '^':
-+ fputs("\\^", stdout);
-+ break;
-+ case ':':
-+ fputs("\\072", stdout);
-+ break;
-+ case '\\':
-+ fputs("\\\\", stdout);
-+ break;
-+ default:
-+ if (isgraph(ch))
-+ fputc(ch, stdout);
-+ else if (ch < 32)
-+ printf("^%c", ch + '@');
-+ else
-+ printf("\\%03o", ch);
-+ break;
-+ }
- }
-+ printf("\n");
- }
-- printf("\n");
- } else if ((num = tigetnum(cap)) >= 0) {
-- printf(FNAME(num), cap);
-- printf(" %d\n", num);
-+ total_values++;
-+ if (!q_opt) {
-+ printf(FNAME(num), cap);
-+ printf(" %d\n", num);
-+ }
- } else if ((num = tigetflag(cap)) >= 0) {
-- printf(FNAME(flg), cap);
-- printf("%s\n", num ? "true" : "false");
-+ total_values++;
-+ if (!q_opt) {
-+ printf(FNAME(flg), cap);
-+ printf("%s\n", num ? "true" : "false");
-+ }
- }
-- fflush(stdout);
-+
-+ if (!q_opt)
-+ fflush(stdout);
- }
-
- static void
-@@ -140,6 +229,9 @@
- unsigned n;
- NCURSES_CONST char *cap;
-
-+ if (db_list) {
-+ putenv(next_dbitem());
-+ }
- printf("Terminal type \"%s\"\n", name);
- setupterm(name, 1, (int *) 0);
-
-@@ -191,7 +283,7 @@
- }
- #endif
- } else {
-- char temp[10];
-+ char temp[80];
- static const char *xterm_keys[] =
- {
- "kDC", "kDN", "kEND", "kHOM", "kIC",
-@@ -200,9 +292,9 @@
- for (n = 0; n < SIZEOF(xterm_keys); ++n) {
- for (mod = 0; mod < 8; ++mod) {
- if (mod == 0)
-- strcpy(temp, xterm_keys[n]);
-+ sprintf(temp, "%.*s", 8, xterm_keys[n]);
- else
-- sprintf(temp, "%s%d", xterm_keys[n], mod);
-+ sprintf(temp, "%.*s%d", 8, xterm_keys[n], mod);
- dumpit(temp);
- }
- }
-@@ -224,12 +316,16 @@
- "",
- "Options:",
- " -b print boolean-capabilities",
-+ " -d LIST colon-separated list of databases to use",
-+ " -e NAME environment variable to set with -d option",
- " -f print full names",
- " -n print numeric-capabilities",
-+ " -q quiet (prints only counts)",
- " -r COUNT repeat for given count",
- " -s print string-capabilities",
- #ifdef NCURSES_VERSION
- " -x print extended capabilities",
-+ " -y disable extended capabilities",
- #endif
- };
- unsigned n;
-@@ -246,18 +342,30 @@
- int repeat;
- char *name;
- int r_opt = 1;
-+#ifdef NCURSES_VERSION
-+ bool xy_opt = TRUE; /* by default, use_extended_names is true */
-+#endif
-
-- while ((n = getopt(argc, argv, "bfnr:sx")) != -1) {
-+ while ((n = getopt(argc, argv, "bd:e:fnqr:sxy")) != -1) {
- switch (n) {
- case 'b':
- b_opt = TRUE;
- break;
-+ case 'd':
-+ d_opt = optarg;
-+ break;
-+ case 'e':
-+ e_opt = optarg;
-+ break;
- case 'f':
- f_opt = TRUE;
- break;
- case 'n':
- n_opt = TRUE;
- break;
-+ case 'q':
-+ q_opt = TRUE;
-+ break;
- case 'r':
- if ((r_opt = atoi(optarg)) <= 0)
- usage();
-@@ -268,7 +376,10 @@
- #ifdef NCURSES_VERSION
- case 'x':
- x_opt = TRUE;
-- use_extended_names(TRUE);
-+ xy_opt = TRUE;
-+ break;
-+ case 'y':
-+ xy_opt = FALSE;
- break;
- #endif
- default:
-@@ -277,12 +388,18 @@
- }
- }
-
-+#ifdef NCURSES_VERSION
-+ use_extended_names(xy_opt);
-+#endif
-+
- if (!(b_opt || n_opt || s_opt || x_opt)) {
- b_opt = TRUE;
- n_opt = TRUE;
- s_opt = TRUE;
- }
-
-+ make_dblist();
-+
- for (repeat = 0; repeat < r_opt; ++repeat) {
- if (optind < argc) {
- for (n = optind; n < argc; ++n) {
-@@ -296,6 +413,10 @@
- }
- }
-
-+ printf("%ld values\n", total_values);
-+
-+ free_dblist();
-+
- ExitProgram(EXIT_SUCCESS);
- }
-
-Index: test/ditto.c
-Prereq: 1.40
---- ncurses-5.9/test/ditto.c 2010-11-14 01:06:47.000000000 +0000
-+++ ncurses-5.9-20130504/test/ditto.c 2012-11-24 20:16:18.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey (1998-on)
- *
-- * $Id: ditto.c,v 1.40 2010/11/14 01:06:47 tom Exp $
-+ * $Id: ditto.c,v 1.42 2012/11/24 20:16:18 tom Exp $
- *
- * The program illustrates how to set up multiple screens from a single
- * program.
-@@ -80,6 +80,7 @@
- int which1; /* this screen's index in DITTO[] array */
- int length; /* length of windows[] and peeks[] */
- char **titles; /* per-window titles */
-+ WINDOW **parents; /* display boxes around each screen's data */
- WINDOW **windows; /* display data from each screen */
- PEEK *peeks; /* indices for each screen's fifo */
- FIFO fifo; /* fifo for this screen */
-@@ -98,6 +99,9 @@
- DITTO *ditto; /* data for all screens */
- } DDATA;
-
-+static void failed(const char *) GCC_NORETURN;
-+static void usage(void) GCC_NORETURN;
-+
- static void
- failed(const char *s)
- {
-@@ -201,6 +205,7 @@
- scrollok(stdscr, TRUE);
- box(stdscr, 0, 0);
-
-+ target->parents = typeCalloc(WINDOW *, (size_t) target->length);
- target->windows = typeCalloc(WINDOW *, (size_t) target->length);
- target->peeks = typeCalloc(PEEK, (size_t) target->length);
-
-@@ -220,6 +225,7 @@
- nodelay(inner, TRUE);
- #endif
-
-+ target->parents[k] = outer;
- target->windows[k] = inner;
- }
- doupdate();
-Index: test/dots.c
-Prereq: 1.22
---- ncurses-5.9/test/dots.c 2010-11-14 01:00:02.000000000 +0000
-+++ ncurses-5.9-20130504/test/dots.c 2011-04-23 19:15:04.000000000 +0000
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey <dickey@clark.net> 1999
- *
-- * $Id: dots.c,v 1.22 2010/11/14 01:00:02 tom Exp $
-+ * $Id: dots.c,v 1.23 2011/04/23 19:15:04 tom Exp $
- *
- * A simple demo of the terminfo interface.
- */
-@@ -46,8 +46,8 @@
- static long total_chars = 0;
- static time_t started;
-
--static int
--outc(TPUTS_ARG c)
-+static
-+TPUTS_PROTO(outc, c)
- {
- int rc = c;
-
-@@ -58,7 +58,7 @@
- } else {
- rc = putc(c, stdout);
- }
-- return rc;
-+ TPUTS_RETURN(rc);
- }
-
- static bool
-Index: test/dots_mvcur.c
-Prereq: 1.6
---- ncurses-5.9/test/dots_mvcur.c 2010-11-14 01:00:44.000000000 +0000
-+++ ncurses-5.9-20130504/test/dots_mvcur.c 2011-04-23 19:17:20.000000000 +0000
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey - 2007
- *
-- * $Id: dots_mvcur.c,v 1.6 2010/11/14 01:00:44 tom Exp $
-+ * $Id: dots_mvcur.c,v 1.7 2011/04/23 19:17:20 tom Exp $
- *
- * A simple demo of the terminfo interface, and mvcur.
- */
-@@ -46,8 +46,8 @@
- static long total_chars = 0;
- static time_t started;
-
--static int
--outc(TPUTS_ARG c)
-+static
-+TPUTS_PROTO(outc, c)
- {
- int rc = c;
-
-@@ -59,7 +59,7 @@
- if (putc(c, stdout) == EOF)
- rc = EOF;
- }
-- return rc;
-+ TPUTS_RETURN(rc);
- }
-
- static bool
-Index: test/echochar.c
-Prereq: 1.8
---- ncurses-5.9/test/echochar.c 2010-11-14 01:00:44.000000000 +0000
-+++ ncurses-5.9-20130504/test/echochar.c 2012-06-09 20:30:32.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: echochar.c,v 1.8 2010/11/14 01:00:44 tom Exp $
-+ * $Id: echochar.c,v 1.9 2012/06/09 20:30:32 tom Exp $
- *
- * Demonstrate the echochar function (compare to dots.c).
- * Thomas Dickey - 2006/11/4
-@@ -74,7 +74,7 @@
- (short) fg,
- (short) bg);
- }
-- attron(COLOR_PAIR(pair));
-+ attron((attr_t) COLOR_PAIR(pair));
- }
-
- int
-Index: test/filter.c
-Prereq: 1.13
---- ncurses-5.9/test/filter.c 2010-11-13 20:55:54.000000000 +0000
-+++ ncurses-5.9-20130504/test/filter.c 2012-06-09 20:30:32.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
- *
-- * $Id: filter.c,v 1.13 2010/11/13 20:55:54 tom Exp $
-+ * $Id: filter.c,v 1.15 2012/06/09 20:30:32 tom Exp $
- */
- #include <test.priv.h>
-
-@@ -133,7 +133,7 @@
- background = -1;
- #endif
- init_pair(1, COLOR_CYAN, (short) background);
-- underline = COLOR_PAIR(1);
-+ underline = (attr_t) COLOR_PAIR(1);
- } else {
- underline = A_UNDERLINE;
- }
-@@ -143,7 +143,7 @@
- reset_shell_mode();
- printf("\n");
- fflush(stdout);
-- system(buffer);
-+ IGNORE_RC(system(buffer));
- reset_prog_mode();
- touchwin(stdscr);
- erase();
-Index: test/firework.c
-Prereq: 1.27
---- ncurses-5.9/test/firework.c 2010-11-13 20:58:25.000000000 +0000
-+++ ncurses-5.9-20130504/test/firework.c 2013-04-27 19:46:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: firework.c,v 1.27 2010/11/13 20:58:25 tom Exp $
-+ * $Id: firework.c,v 1.29 2013/04/27 19:46:53 tom Exp $
- */
- #include <test.priv.h>
-
-@@ -41,7 +41,7 @@
- endwin();
- }
-
--static RETSIGTYPE
-+static void
- onsig(int n GCC_UNUSED)
- {
- cleanup();
-@@ -94,14 +94,14 @@
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
-- (void) attrset(COLOR_PAIR(1) | bold);
-+ (void) attrset((chtype) COLOR_PAIR(1) | bold);
- MvPrintw(row - 1, col - 1, " - ");
- MvPrintw(row + 0, col - 1, "-+-");
- MvPrintw(row + 1, col - 1, " - ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
-- (void) attrset(COLOR_PAIR(1) | bold);
-+ (void) attrset((chtype) COLOR_PAIR(1) | bold);
- MvPrintw(row - 2, col - 2, " --- ");
- MvPrintw(row - 1, col - 2, "-+++-");
- MvPrintw(row + 0, col - 2, "-+#+-");
-@@ -110,7 +110,7 @@
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
-- (void) attrset(COLOR_PAIR(1) | bold);
-+ (void) attrset((chtype) COLOR_PAIR(1) | bold);
- MvPrintw(row - 2, col - 2, " +++ ");
- MvPrintw(row - 1, col - 2, "++#++");
- MvPrintw(row + 0, col - 2, "+# #+");
-@@ -119,7 +119,7 @@
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
-- (void) attrset(COLOR_PAIR(1) | bold);
-+ (void) attrset((chtype) COLOR_PAIR(1) | bold);
- MvPrintw(row - 2, col - 2, " # ");
- MvPrintw(row - 1, col - 2, "## ##");
- MvPrintw(row + 0, col - 2, "# #");
-@@ -128,7 +128,7 @@
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
-- (void) attrset(COLOR_PAIR(1) | bold);
-+ (void) attrset((chtype) COLOR_PAIR(1) | bold);
- MvPrintw(row - 2, col - 2, " # # ");
- MvPrintw(row - 1, col - 2, "# #");
- MvPrintw(row + 0, col - 2, " ");
-Index: test/gdc.c
-Prereq: 1.34
---- ncurses-5.9/test/gdc.c 2010-11-13 21:01:23.000000000 +0000
-+++ ncurses-5.9-20130504/test/gdc.c 2013-04-27 19:50:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,7 +33,7 @@
- * modified 10-18-89 for curses (jrl)
- * 10-18-89 added signal handling
- *
-- * $Id: gdc.c,v 1.34 2010/11/13 21:01:23 tom Exp $
-+ * $Id: gdc.c,v 1.37 2013/04/27 19:50:17 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -60,7 +60,7 @@
- static bool redirected = FALSE;
- static bool hascolor = FALSE;
-
--static RETSIGTYPE
-+static void
- sighndl(int signo)
- {
- signal(signo, sighndl);
-@@ -78,7 +78,7 @@
- int n;
-
- if (hascolor)
-- (void) attrset(COLOR_PAIR(PAIR_FRAMES));
-+ (void) attrset((attr_t) COLOR_PAIR(PAIR_FRAMES));
-
- MvAddCh(YBASE - 1, XBASE - 1, ACS_ULCORNER);
- hline(ACS_HLINE, XLENGTH);
-@@ -102,7 +102,7 @@
- vline(ACS_VLINE, YDEPTH);
-
- if (hascolor)
-- (void) attrset(COLOR_PAIR(PAIR_OTHERS));
-+ (void) attrset((attr_t) COLOR_PAIR(PAIR_OTHERS));
- }
-
- static void
-@@ -110,13 +110,13 @@
- {
- if (on) {
- if (hascolor) {
-- attron(COLOR_PAIR(PAIR_DIGITS));
-+ attron((attr_t) COLOR_PAIR(PAIR_DIGITS));
- } else {
- attron(A_STANDOUT);
- }
- } else {
- if (hascolor) {
-- attron(COLOR_PAIR(PAIR_OTHERS));
-+ attron((attr_t) COLOR_PAIR(PAIR_OTHERS));
- } else {
- attroff(A_STANDOUT);
- }
-@@ -220,7 +220,7 @@
- init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED);
- init_pair(PAIR_OTHERS, COLOR_RED, bg);
- init_pair(PAIR_FRAMES, COLOR_WHITE, bg);
-- (void) attrset(COLOR_PAIR(PAIR_OTHERS));
-+ (void) attrset((attr_t) COLOR_PAIR(PAIR_OTHERS));
- }
-
- restart:
-@@ -231,7 +231,7 @@
- drawbox(FALSE);
-
- do {
-- char buf[30];
-+ char buf[40];
-
- time(&now);
- tm = localtime(&now);
-@@ -293,7 +293,7 @@
- }
-
- /* this depends on the detailed format of ctime(3) */
-- (void) strcpy(buf, ctime(&now));
-+ (void) strncpy(buf, ctime(&now), 30);
- (void) strcpy(buf + 10, buf + 19);
- MvAddStr(16, 30, buf);
-
-Index: test/hanoi.c
-Prereq: 1.31
---- ncurses-5.9/test/hanoi.c 2010-11-14 01:01:07.000000000 +0000
-+++ ncurses-5.9-20130504/test/hanoi.c 2012-12-08 16:41:56.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -41,10 +41,11 @@
- *
- * Date: 05.Nov.90
- *
-- * $Id: hanoi.c,v 1.31 2010/11/14 01:01:07 tom Exp $
-+ * $Id: hanoi.c,v 1.34 2012/12/08 16:41:56 tom Exp $
- */
-
- #include <test.priv.h>
-+#include <math.h>
-
- #define NPEGS 3 /* This is not configurable !! */
- #define MINTILES 3
-@@ -57,7 +58,7 @@
- #define MIDPEG 39
- #define RIGHTPEG 59
-
--#define LENTOIND(x) (((x)-1)/2)
-+#define LENTOIND(x) (((int)(x)-1)/2)
- #define OTHER(a,b) (3-((a)+(b)))
-
- struct Peg {
-@@ -84,10 +85,11 @@
- COLOR_MAGENTA, /* Length 17 */
- COLOR_RED, /* Length 19 */
- };
-+static int NTiles = 0;
- static int NMoves = 0;
- static bool AutoFlag = FALSE;
-
--static void InitTiles(int NTiles);
-+static void InitTiles(void);
- static void DisplayTiles(void);
- static void MakeMove(int From, int To);
- static void AutoMove(int From, int To, int Num);
-@@ -99,7 +101,7 @@
- int
- main(int argc, char **argv)
- {
-- int NTiles, FromCol, ToCol;
-+ int FromCol, ToCol;
-
- setlocale(LC_ALL, "");
-
-@@ -130,9 +132,6 @@
- Usage();
- ExitProgram(EXIT_FAILURE);
- }
--#ifdef TRACE
-- trace(TRACE_MAXIMUM);
--#endif
- initscr();
- if (has_colors()) {
- int i;
-@@ -155,7 +154,7 @@
- curs_set(0);
- leaveok(stdscr, TRUE); /* Attempt to remove cursor */
- }
-- InitTiles(NTiles);
-+ InitTiles();
- DisplayTiles();
- if (AutoFlag) {
- do {
-@@ -211,7 +210,7 @@
- }
-
- static void
--InitTiles(int NTiles)
-+InitTiles(void)
- {
- int Size, SlotNo;
-
-@@ -232,7 +231,7 @@
- erase();
- MvAddStr(1, 24, "T O W E R S O F H A N O I");
- MvAddStr(3, 34, "SJR 1990");
-- MvPrintw(19, 5, "Moves : %d", NMoves);
-+ MvPrintw(19, 5, "Moves : %d of %.0f", NMoves, pow(2.0, NTiles) - 1);
- (void) attrset(A_REVERSE);
- MvAddStr(BASELINE, 8,
- " ");
-@@ -255,7 +254,7 @@
- memset(TileBuf, ' ', len);
- TileBuf[len] = '\0';
- if (has_colors())
-- (void) attrset(COLOR_PAIR(LENTOIND(len)));
-+ (void) attrset((attr_t) COLOR_PAIR(LENTOIND(len)));
- else
- (void) attrset(A_REVERSE);
- MvAddStr(BASELINE - (SlotNo + 1),
-@@ -310,12 +309,12 @@
- if (Num == 1) {
- MakeMove(From, To);
- napms(500);
-- return;
-+ } else {
-+ AutoMove(From, OTHER(From, To), Num - 1);
-+ MakeMove(From, To);
-+ napms(500);
-+ AutoMove(OTHER(From, To), To, Num - 1);
- }
-- AutoMove(From, OTHER(From, To), Num - 1);
-- MakeMove(From, To);
-- napms(500);
-- AutoMove(OTHER(From, To), To, Num - 1);
- }
-
- static int
-Index: test/hashtest.c
-Prereq: 1.31
---- ncurses-5.9/test/hashtest.c 2010-11-13 23:43:15.000000000 +0000
-+++ ncurses-5.9-20130504/test/hashtest.c 2013-04-27 19:50:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -30,7 +30,7 @@
- *
- * Generate timing statistics for vertical-motion optimization.
- *
-- * $Id: hashtest.c,v 1.31 2010/11/13 23:43:15 tom Exp $
-+ * $Id: hashtest.c,v 1.32 2013/04/27 19:50:17 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -54,7 +54,7 @@
- endwin();
- }
-
--static RETSIGTYPE
-+static void
- finish(int sig GCC_UNUSED)
- {
- cleanup();
-Index: test/inchs.c
-Prereq: 1.11
---- ncurses-5.9/test/inchs.c 2010-11-13 23:41:23.000000000 +0000
-+++ ncurses-5.9-20130504/test/inchs.c 2012-11-18 01:58:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2007-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: inchs.c,v 1.11 2010/11/13 23:41:23 tom Exp $
-+ * $Id: inchs.c,v 1.12 2012/11/18 01:58:15 tom Exp $
- *
- * Author: Thomas E Dickey
- */
-@@ -50,6 +50,16 @@
- #define BASE_Y 7
- #define MAX_COLS 1024
-
-+static void
-+failed(const char *s)
-+{
-+ int save = errno;
-+ endwin();
-+ errno = save;
-+ perror(s);
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
- static bool
- Quit(int ch)
- {
-@@ -87,6 +97,8 @@
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-+ if (txtwin == 0)
-+ failed("cannot create txtwin");
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
-Index: test/ins_wide.c
-Prereq: 1.15
---- ncurses-5.9/test/ins_wide.c 2010-12-12 00:20:14.000000000 +0000
-+++ ncurses-5.9-20130504/test/ins_wide.c 2012-12-16 00:51:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: ins_wide.c,v 1.15 2010/12/12 00:20:14 tom Exp $
-+ * $Id: ins_wide.c,v 1.20 2012/12/16 00:51:02 tom Exp $
- *
- * Demonstrate the wins_wstr() and wins_wch functions.
- * Thomas Dickey - 2002/11/23
-@@ -228,8 +228,9 @@
- WINDOW *work = 0;
- WINDOW *show = 0;
- int margin = (2 * MY_TABSIZE) - 1;
-- Options option = ((m_opt ? oMove : oDefault)
-- | ((w_opt || (level > 0)) ? oWindow : oDefault));
-+ Options option = (Options) ((int) (m_opt ? oMove : oDefault)
-+ | (int) ((w_opt || (level > 0))
-+ ? oWindow : oDefault));
-
- if (first) {
- static char cmd[80];
-@@ -241,6 +242,15 @@
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
-+
-+ /*
-+ * Show the characters inserted in color, to distinguish from those
-+ * that are shifted.
-+ */
-+ if (has_colors()) {
-+ start_color();
-+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
-+ }
- }
-
- limit = LINES - 5;
-@@ -274,14 +284,8 @@
-
- doupdate();
-
-- /*
-- * Show the characters inserted in color, to distinguish from those that
-- * are shifted.
-- */
- if (has_colors()) {
-- start_color();
-- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- wbkgdset(work, COLOR_PAIR(1) | ' ');
-+ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
- }
-
- while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
-@@ -290,11 +294,13 @@
- case key_RECUR:
- test_inserts(level + 1);
-
-- touchwin(look);
-+ if (look)
-+ touchwin(look);
- touchwin(work);
- touchwin(show);
-
-- wnoutrefresh(look);
-+ if (look)
-+ wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
-@@ -438,10 +444,10 @@
- }
- }
- if (level > 0) {
-- delwin(show);
- delwin(work);
- delwin(look);
- }
-+ delwin(show);
- }
-
- static void
-Index: test/insdelln.c
-Prereq: 1.5
---- ncurses-5.9/test/insdelln.c 2010-11-13 23:39:38.000000000 +0000
-+++ ncurses-5.9-20130504/test/insdelln.c 2012-11-18 00:37:58.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: insdelln.c,v 1.5 2010/11/13 23:39:38 tom Exp $
-+ * $Id: insdelln.c,v 1.7 2012/11/18 00:37:58 tom Exp $
- *
- * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln
- */
-@@ -175,6 +175,8 @@
- delwin(win1);
- touchwin(win);
- } else {
-+ if (win1)
-+ delwin(win1);
- beep();
- }
- }
-@@ -300,7 +302,7 @@
- init_status(win, &st);
-
- do {
-- (void) wattrset(win, st.attr | (attr_t) COLOR_PAIR(st.pair));
-+ (void) wattrset(win, (int) (st.attr | (attr_t) COLOR_PAIR(st.pair)));
- switch (st.ch) {
- case 'i':
- for (n = 0; n < st.count; ++n)
-Index: test/inserts.c
-Prereq: 1.23
---- ncurses-5.9/test/inserts.c 2010-12-12 00:19:55.000000000 +0000
-+++ ncurses-5.9-20130504/test/inserts.c 2012-12-16 00:35:27.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: inserts.c,v 1.23 2010/12/12 00:19:55 tom Exp $
-+ * $Id: inserts.c,v 1.27 2012/12/16 00:35:27 tom Exp $
- *
- * Demonstrate the winsstr() and winsch functions.
- * Thomas Dickey - 2002/10/19
-@@ -167,6 +167,15 @@
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
-+
-+ /*
-+ * Show the characters inserted in color, to distinguish from those
-+ * that are shifted.
-+ */
-+ if (has_colors()) {
-+ start_color();
-+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
-+ }
- }
-
- limit = LINES - 5;
-@@ -200,14 +209,8 @@
-
- doupdate();
-
-- /*
-- * Show the characters inserted in color, to distinguish from those that
-- * are shifted.
-- */
- if (has_colors()) {
-- start_color();
-- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- wbkgdset(work, COLOR_PAIR(1) | ' ');
-+ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
- }
-
- while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
-@@ -216,11 +219,13 @@
- case key_RECUR:
- test_inserts(level + 1);
-
-- touchwin(look);
-+ if (look)
-+ touchwin(look);
- touchwin(work);
- touchwin(show);
-
-- wnoutrefresh(look);
-+ if (look)
-+ wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
-@@ -368,10 +373,10 @@
- }
- }
- if (level > 0) {
-- delwin(show);
- delwin(work);
- delwin(look);
- }
-+ delwin(show);
- }
-
- static void
-Index: test/knight.c
-Prereq: 1.31
---- ncurses-5.9/test/knight.c 2010-11-13 20:44:21.000000000 +0000
-+++ ncurses-5.9-20130504/test/knight.c 2013-02-16 19:53:08.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -33,7 +33,7 @@
- * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
- * added September 20th 1995.
- *
-- * $Id: knight.c,v 1.31 2010/11/13 20:44:21 tom Exp $
-+ * $Id: knight.c,v 1.36 2013/02/16 19:53:08 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -123,13 +123,16 @@
- (void) init_pair(PLUS_COLOR, (short) COLOR_RED, (short) bg);
- (void) init_pair(MINUS_COLOR, (short) COLOR_GREEN, (short) bg);
-
-- trail |= COLOR_PAIR(TRAIL_COLOR);
-- plus |= COLOR_PAIR(PLUS_COLOR);
-- minus |= COLOR_PAIR(MINUS_COLOR);
-+ trail |= (chtype) COLOR_PAIR(TRAIL_COLOR);
-+ plus |= (chtype) COLOR_PAIR(PLUS_COLOR);
-+ minus |= (chtype) COLOR_PAIR(MINUS_COLOR);
- }
- #ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
- #endif /* NCURSES_MOUSE_VERSION */
-+#if defined(PDCURSES)
-+ mouse_set(BUTTON1_RELEASED);
-+#endif
-
- oldch = minus;
- }
-@@ -300,15 +303,16 @@
- }
- }
-
--static void
-+static bool
- find_next_move(int *y, int *x)
- {
- unsigned j, k;
- int found = -1;
- int first = -1;
-- int next = 0;
-+ int next = -1;
- int oldy, oldx;
- int newy, newx;
-+ bool result = FALSE;
-
- if (movecount > 1) {
- oldy = history[movecount - 1].y;
-@@ -335,9 +339,27 @@
- *y = oldy + offsets[next].y;
- *x = oldx + offsets[next].x;
- }
-- } else {
-- beep();
-+ result = TRUE;
- }
-+ return result;
-+}
-+
-+static void
-+count_next_moves(int y, int x)
-+{
-+ int count = 0;
-+ unsigned j;
-+
-+ wprintw(msgwin, "\nMove %d", movecount);
-+ for (j = 0; j < SIZEOF(offsets); j++) {
-+ int newy = y + offsets[j].y;
-+ int newx = x + offsets[j].x;
-+ if (chksqr(newy, newx)) {
-+ ++count;
-+ }
-+ }
-+ wprintw(msgwin, ", gives %d choices", count);
-+ wclrtoeol(msgwin);
- }
-
- static void
-@@ -558,8 +580,9 @@
- nx = col + 1;
- break;
-
--#ifdef NCURSES_MOUSE_VERSION
-+#ifdef KEY_MOUSE
- case KEY_MOUSE:
-+#ifdef NCURSES_MOUSE_VERSION
- {
- MEVENT myevent;
-
-@@ -576,6 +599,24 @@
- }
- }
- #endif /* NCURSES_MOUSE_VERSION */
-+#ifdef PDCURSES
-+ {
-+ int test_y, test_x;
-+ request_mouse_pos();
-+ test_y = MOUSE_Y_POS + 0;
-+ test_x = MOUSE_X_POS + 1;
-+ if (test_y >= CY(0) && test_y <= CY(BDEPTH)
-+ && test_x >= CX(0) && test_x <= CX(BWIDTH)) {
-+ ny = CYINV(test_y);
-+ nx = CXINV(test_x);
-+ wmove(helpwin, 0, 0);
-+ wrefresh(helpwin);
-+ ungetch('\n');
-+ }
-+ break;
-+ }
-+#endif /* PDCURSES */
-+#endif /* KEY_MOUSE */
-
- case KEY_B2:
- case '\n':
-@@ -614,8 +655,8 @@
- ny = history[movecount].y;
- nx = history[movecount].x;
- if (nx < 0 || ny < 0) {
-- ny = lastrow;
-- nx = lastcol;
-+ ny = (lastrow >= 0) ? lastrow : 0;
-+ nx = (lastcol >= 0) ? lastcol : 0;
- }
- movecount = 0;
- board[ny][nx] = FALSE;
-@@ -652,7 +693,10 @@
- case 'a':
- nx = col;
- ny = rw;
-- find_next_move(&ny, &nx);
-+ if (find_next_move(&ny, &nx))
-+ count_next_moves(ny, nx);
-+ else
-+ beep();
- break;
-
- case 'F':
-Index: test/linedata.h
---- ncurses-5.9/test/linedata.h 2010-11-13 21:12:31.000000000 +0000
-+++ ncurses-5.9-20130504/test/linedata.h 2012-12-15 22:57:19.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -85,10 +85,8 @@
- beep();
- continue;
- }
-- } else if (code != ERR) {
-- result = (int) ch;
-- break;
- } else {
-+ result = (int) ch;
- break;
- }
- }
-Index: test/modules
-Prereq: 1.43
---- ncurses-5.9/test/modules 2010-01-23 17:51:38.000000000 +0000
-+++ ncurses-5.9-20130504/test/modules 2013-01-12 22:50:55.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: modules,v 1.43 2010/01/23 17:51:38 tom Exp $
-+# $Id: modules,v 1.47 2013/01/12 22:50:55 tom Exp $
- ##############################################################################
--# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
-+# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -86,10 +86,12 @@
- test_instr progs $(srcdir) $(HEADER_DEPS)
- test_inwstr progs $(srcdir) $(HEADER_DEPS)
- test_opaque progs $(srcdir) $(HEADER_DEPS)
-+test_vid_puts progs $(srcdir) $(HEADER_DEPS)
-+test_vidputs progs $(srcdir) $(HEADER_DEPS)
- testaddch progs $(srcdir) $(HEADER_DEPS)
- testcurs progs $(srcdir) $(HEADER_DEPS)
- testscanw progs $(srcdir) $(HEADER_DEPS)
--view progs $(srcdir) $(HEADER_DEPS)
-+view progs $(srcdir) $(HEADER_DEPS) $(srcdir)/widechars.h
- worm progs $(srcdir) $(HEADER_DEPS)
- xmas progs $(srcdir) $(HEADER_DEPS)
-
-Index: test/movewindow.c
-Prereq: 1.24
---- ncurses-5.9/test/movewindow.c 2010-11-13 23:34:55.000000000 +0000
-+++ ncurses-5.9-20130504/test/movewindow.c 2013-05-04 19:41:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006-2008,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,18 +26,22 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: movewindow.c,v 1.24 2010/11/13 23:34:55 tom Exp $
-+ * $Id: movewindow.c,v 1.39 2013/05/04 19:41:02 tom Exp $
- *
- * Demonstrate move functions for windows and derived windows from the curses
- * library.
- *
-- * Thomas Dickey - 2006/2/11
-+ * Author: Thomas E. Dickey
- */
- /*
- derwin
- mvderwin
- subwin
- mvwin
-+
-+TODO:
-+ add command to reset subwindow's origin to coincide with parent.
-+ add command to delete subwindow (check if it has subwindows though)
- */
-
- #include <test.priv.h>
-@@ -76,6 +80,14 @@
- static FRAME *all_windows;
-
- static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ endwin();
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
-+static void
- message(int lineno, CONST_FMT char *fmt, va_list argp)
- {
- int y, x;
-@@ -122,7 +134,12 @@
- * Arrow keys move cursor, return location at current on non-arrow key.
- */
- static PAIR *
--selectcell(WINDOW *parent, int uli, int ulj, int lri, int lrj)
-+selectcell(WINDOW *parent,
-+ WINDOW *child,
-+ int uli, int ulj,
-+ int lri, int lrj,
-+ bool relative,
-+ bool * more)
- {
- static PAIR res; /* result cell */
- int si = lri - uli + 1; /* depth of the select area */
-@@ -131,25 +148,46 @@
-
- res.y = uli;
- res.x = ulj;
-+
-+ if (child != 0) {
-+ if (relative) {
-+ getparyx(child, i, j);
-+ } else {
-+ getbegyx(child, i, j);
-+ i -= uli + getbegy(parent);
-+ j -= ulj + getbegx(parent);
-+ }
-+ }
-+
-+ if (more)
-+ *more = FALSE;
-+
- for (;;) {
-- tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d",
-+ bool moved = FALSE;
-+
-+ tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d -> %d,%d",
- uli, ulj,
- lri, lrj,
-+ i, j,
- uli + i, ulj + j);
- wmove(parent, uli + i, ulj + j);
-
- switch (wgetch(parent)) {
- case KEY_UP:
- i += si - 1;
-+ moved = TRUE;
- break;
- case KEY_DOWN:
- i++;
-+ moved = TRUE;
- break;
- case KEY_LEFT:
- j += sj - 1;
-+ moved = TRUE;
- break;
- case KEY_RIGHT:
- j++;
-+ moved = TRUE;
- break;
- case QUIT:
- case ESCAPE:
-@@ -161,8 +199,13 @@
-
- getmouse(&event);
- if (event.y > uli && event.x > ulj) {
-- i = event.y - uli;
-- j = event.x - ulj;
-+ if (parent != stdscr) {
-+ i = event.y - getbegy(parent) - uli;
-+ j = event.x - getbegx(parent) - ulj;
-+ } else {
-+ i = event.y - uli;
-+ j = event.x - ulj;
-+ }
- } else {
- beep();
- break;
-@@ -175,8 +218,26 @@
- res.x = ulj + j;
- return (&res);
- }
-- i %= si;
-- j %= sj;
-+
-+ if (si <= 0)
-+ i = 0;
-+ else
-+ i %= si;
-+
-+ if (sj <= 0)
-+ j = 0;
-+ else
-+ j %= sj;
-+
-+ /*
-+ * If the caller can handle continuous movement, return the result.
-+ */
-+ if (moved && more) {
-+ *more = TRUE;
-+ res.y = uli + i;
-+ res.x = ulj + j;
-+ return (&res);
-+ }
- }
- }
-
-@@ -194,12 +255,20 @@
- bool result = FALSE;
-
- head_line("Use arrows to move cursor, anything else to mark corner 1");
-- if ((tmp = selectcell(parent, min_line, min_col, max_line, max_col)) != 0) {
-+ if ((tmp = selectcell(parent, 0,
-+ min_line, min_col,
-+ max_line, max_col,
-+ FALSE,
-+ (bool *) 0)) != 0) {
- *ul = *tmp;
- MvWAddCh(parent, ul->y, ul->x, '*');
-
- head_line("Use arrows to move cursor, anything else to mark corner 2");
-- if ((tmp = selectcell(parent, ul->y, ul->x, max_line, max_col)) != 0) {
-+ if ((tmp = selectcell(parent, 0,
-+ ul->y, ul->x,
-+ max_line, max_col,
-+ FALSE,
-+ (bool *) 0)) != 0) {
- *lr = *tmp;
- MvWAddCh(parent, lr->y, lr->x, '*');
- wmove(parent, lr->y, lr->x);
-@@ -252,6 +321,8 @@
- keypad(child, TRUE);
- if (need > have) {
- all_windows = typeRealloc(FRAME, need, all_windows);
-+ if (!all_windows)
-+ failed("add_window");
- }
- all_windows[num_windows].parent = parent;
- all_windows[num_windows].child = child;
-@@ -341,10 +412,7 @@
-
- for (n = 0; n < num_windows; ++n) {
- if (all_windows[n].parent == parent) {
-- int y0, x0;
--
-- getbegyx(all_windows[n].child, y0, x0);
-- mvwin(all_windows[n].child, y0 + dy, x0 + dx);
-+ mvwin(all_windows[n].child, dy, dx);
- recur_move_window(all_windows[n].child, dy, dx);
- }
- }
-@@ -366,20 +434,24 @@
- int min_line = top ? LINE_MIN : 0;
- int max_line = top ? LINE_MAX : getmaxy(parent);
- PAIR *tmp;
-+ bool more;
-
- head_line("Select new position for %swindow", top ? "" : "sub");
-
-- if ((tmp = selectcell(parent,
-- min_line, min_col,
-- max_line, max_col)) != 0) {
-+ while ((tmp = selectcell(parent,
-+ win,
-+ min_line, min_col,
-+ max_line, max_col,
-+ FALSE,
-+ &more)) != 0) {
- int y0, x0;
- getbegyx(parent, y0, x0);
- /*
-- * Note: Moving a subwindow has the effect of moving a viewport
-- * around the screen. The parent window retains the contents of
-- * the subwindow in the original location, but the viewport will
-- * show the contents (again) at the new location. So it will look
-- * odd when testing.
-+ * Moving a subwindow has the effect of moving a viewport around
-+ * the screen. The parent window retains the contents of the
-+ * subwindow in the original location, but the viewport will show
-+ * the contents (again) at the new location. So it will look odd
-+ * when testing.
- */
- if (mvwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) {
- if (recur) {
-@@ -388,45 +460,69 @@
- refresh_all(win);
- doupdate();
- result = TRUE;
-+ } else {
-+ result = FALSE;
- }
-+ if (!more)
-+ break;
- }
- }
-+ head_line("done");
- return result;
- }
-
-+static void
-+show_derwin(WINDOW *win)
-+{
-+ int pary, parx, maxy, maxx;
-+
-+ getmaxyx(win, maxy, maxx);
-+ getparyx(win, pary, parx);
-+
-+ head_line("Select new position for derived window at %d,%d (%d,%d)",
-+ pary, parx, maxy, maxx);
-+}
-+
- /*
- * test mvderwin().
- */
- static bool
--move_subwin(WINDOW *win)
-+move_derwin(WINDOW *win)
- {
- WINDOW *parent = parent_of(win);
- bool result = FALSE;
-
- if (parent != 0) {
- bool top = (parent == stdscr);
-- if (!top) {
-- int min_col = top ? COL_MIN : 0;
-- int max_col = top ? COL_MAX : getmaxx(parent);
-- int min_line = top ? LINE_MIN : 0;
-- int max_line = top ? LINE_MAX : getmaxy(parent);
-- PAIR *tmp;
--
-- head_line("Select new position for subwindow");
--
-- if ((tmp = selectcell(parent,
-- min_line, min_col,
-- max_line, max_col)) != 0) {
-- int y0, x0;
-- getbegyx(parent, y0, x0);
-- if (mvderwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) {
-- refresh_all(win);
-- doupdate();
-- result = TRUE;
-- }
-+ int min_col = top ? COL_MIN : 0;
-+ int max_col = top ? COL_MAX : getmaxx(parent);
-+ int min_line = top ? LINE_MIN : 0;
-+ int max_line = top ? LINE_MAX : getmaxy(parent);
-+ PAIR *tmp;
-+ bool more;
-+
-+ show_derwin(win);
-+ while ((tmp = selectcell(parent,
-+ win,
-+ min_line, min_col,
-+ max_line, max_col,
-+ TRUE,
-+ &more)) != 0) {
-+ if (mvderwin(win, tmp->y, tmp->x) != ERR) {
-+ refresh_all(win);
-+ doupdate();
-+ repaint_one(win);
-+ doupdate();
-+ result = TRUE;
-+ show_derwin(win);
-+ } else {
-+ flash();
- }
-+ if (!more)
-+ break;
- }
- }
-+ head_line("done");
- return result;
- }
-
-@@ -449,6 +545,28 @@
- wrefresh(win);
- }
-
-+static void
-+fill_with_pattern(WINDOW *win)
-+{
-+ int y, x;
-+ int y0, x0;
-+ int y1, x1;
-+ int ch = 'a';
-+
-+ getyx(win, y0, x0);
-+ getmaxyx(win, y1, x1);
-+ for (y = 0; y < y1; ++y) {
-+ for (x = 0; x < x1; ++x) {
-+ MvWAddCh(win, y, x, (chtype) ch);
-+ if (++ch > 'z')
-+ ch = 'a';
-+ }
-+ }
-+ wsyncdown(win);
-+ wmove(win, y0, x0);
-+ wrefresh(win);
-+}
-+
- #define lines_of(ul,lr) (lr.y - ul.y + 1)
- #define cols_of(ul,lr) (lr.x - ul.x + 1)
- #define pair_of(ul) ul.y, ul.x
-@@ -523,12 +641,13 @@
- { 'b', "Draw a box inside the current window" },
- { 'c', "Create a new window" },
- { 'd', "Create a new derived window" },
-+ { 'D', "Move derived window (moves viewport)" },
- { 'f', "Fill the current window with the next character" },
-+ { 'F', "Fill the current window with a pattern" },
- { 'm', "Move the current window" },
- { 'M', "Move the current window (and its children)" },
- { 'q', "Quit" },
- { 's', "Create a new subwindow" },
-- { 't', "Move the current subwindow (moves content)" },
- { CTRL('L'), "Repaint all windows, doing current one last" },
- { CTRL('N'), "Cursor to next window" },
- { CTRL('P'), "Cursor to previous window" },
-@@ -571,6 +690,10 @@
- #endif /* NCURSES_MOUSE_VERSION */
-
- while (!done && (ch = wgetch(current_win)) != ERR) {
-+ int y, x;
-+
-+ getyx(current_win, y, x);
-+
- switch (ch) {
- case '?':
- show_help(current_win);
-@@ -584,9 +707,18 @@
- case 'd':
- current_win = create_my_derwin(current_win);
- break;
-+ case 'D':
-+ if (!move_derwin(current_win)) {
-+ tail_line("error");
-+ continue;
-+ }
-+ break;
- case 'f':
- fill_window(current_win, (chtype) wgetch(current_win));
- break;
-+ case 'F':
-+ fill_with_pattern(current_win);
-+ break;
- case 'm':
- case 'M':
- if (!move_window(current_win, (ch == 'M'))) {
-@@ -600,12 +732,6 @@
- case 's':
- current_win = create_my_subwin(current_win);
- break;
-- case 't':
-- if (!move_subwin(current_win)) {
-- tail_line("error");
-- continue;
-- }
-- break;
- case CTRL('L'):
- refresh_all(current_win);
- break;
-@@ -621,6 +747,7 @@
- /* want to allow deleting a window also */
- #endif
- default:
-+ wmove(current_win, y, x);
- tail_line("unrecognized key (use '?' for help)");
- beep();
- continue;
-Index: test/ncurses.c
-Prereq: 1.365
---- ncurses-5.9/test/ncurses.c 2011-01-22 19:48:33.000000000 +0000
-+++ ncurses-5.9-20130504/test/ncurses.c 2013-04-27 19:46:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -40,7 +40,7 @@
- Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
- Thomas E. Dickey (beginning revision 1.27 in 1996).
-
--$Id: ncurses.c,v 1.365 2011/01/22 19:48:33 tom Exp $
-+$Id: ncurses.c,v 1.389 2013/04/27 19:46:53 tom Exp $
-
- ***************************************************************************/
-
-@@ -166,6 +166,14 @@
-
- static void main_menu(bool);
-
-+static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ endwin();
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
- /* The behavior of mvhline, mvvline for negative/zero length is unspecified,
- * though we can rely on negative x/y values to stop the macro.
- */
-@@ -490,7 +498,7 @@
- #ifdef __MINGW32__
- system("cmd.exe");
- #else
-- system("sh");
-+ IGNORE_RC(system("sh"));
- #endif
- if (message)
- addstr("returned from shellout.\n");
-@@ -723,6 +731,8 @@
- len_winstack = need;
- winstack = typeRealloc(WINSTACK, len_winstack, winstack);
- }
-+ if (!winstack)
-+ failed("remember_boxes");
- winstack[level].text = txt_win;
- winstack[level].frame = box_win;
- }
-@@ -777,12 +787,21 @@
- }
- doupdate();
- }
--#endif /* resize_boxes */
-+#endif /* resize_boxes */
- #else
- #define forget_boxes() /* nothing */
- #define remember_boxes(level,text,frame) /* nothing */
- #endif
-
-+/*
-+ * Return-code is OK/ERR or a keyname.
-+ */
-+static const char *
-+ok_keyname(int code)
-+{
-+ return ((code == OK) ? "OK" : ((code == ERR) ? "ERR" : keyname(code)));
-+}
-+
- static void
- wgetch_test(unsigned level, WINDOW *win, int delay)
- {
-@@ -824,9 +843,11 @@
- } else if (c == 'g') {
- waddstr(win, "getstr test: ");
- echo();
-- wgetnstr(win, buf, sizeof(buf) - 1);
-+ c = wgetnstr(win, buf, sizeof(buf) - 1);
- noecho();
-- wprintw(win, "I saw %d characters:\n\t`%s'.", (int) strlen(buf), buf);
-+ wprintw(win, "I saw %d characters:\n\t`%s' (%s).",
-+ (int) strlen(buf), buf,
-+ ok_keyname(c));
- wclrtoeol(win);
- wgetch_wrap(win, first_y);
- } else if (c == 'k') {
-@@ -1023,6 +1044,8 @@
- free(result);
- result = 0;
- }
-+ } else {
-+ failed("wcstos");
- }
- }
- return result;
-@@ -1072,7 +1095,7 @@
- } else if (c == 'g') {
- waddstr(win, "getstr test: ");
- echo();
-- code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1);
-+ code = wgetn_wstr(win, wint_buf, BUFSIZ - 1);
- noecho();
- if (code == ERR) {
- wprintw(win, "wgetn_wstr returns an error.");
-@@ -1394,7 +1417,7 @@
- if (!(termattrs() & test)) {
- printw(" (N/A)");
- } else {
-- if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
-+ if (ncv > 0 && stdscr && (getbkgd(stdscr) & A_COLOR)) {
- static const chtype table[] =
- {
- A_STANDOUT,
-@@ -1637,6 +1660,7 @@
- short pair;
- wchar_t wch[10];
-
-+ memset(&ch, 0, sizeof(ch));
- if (getbkgrnd(&ch) != ERR) {
- if (getcchar(&ch, wch, &attr, &pair, 0) != ERR) {
- result = attr;
-@@ -1675,8 +1699,8 @@
- add_wch(&ch);
- }
- } else {
-- attr_t old_attr;
-- short old_pair;
-+ attr_t old_attr = 0;
-+ short old_pair = 0;
-
- (void) attr_get(&old_attr, &old_pair, 0);
- (void) attr_set(attr, pair, 0);
-@@ -1895,7 +1919,7 @@
- } else if (color < 0) {
- strcpy(temp, "default");
- } else {
-- strcpy(temp, the_color_names[color]);
-+ sprintf(temp, "%.*s", 16, the_color_names[color]);
- }
- printw("%-*.*s", width, width, temp);
- }
-@@ -2159,7 +2183,7 @@
- bool opt_wide = FALSE;
- bool opt_nums = FALSE;
- bool opt_xchr = FALSE;
-- wchar_t buffer[10];
-+ wchar_t buffer[80];
- WINDOW *helpwin;
-
- if (COLORS * COLORS == COLOR_PAIRS) {
-@@ -2220,7 +2244,7 @@
-
- if (row >= 0 && move(row, col) != ERR) {
- init_pair(pair, InxToFG(i), InxToBG(i));
-- color_set(pair, NULL);
-+ (void) color_set(pair, NULL);
- if (opt_acsc)
- attr_on((attr_t) A_ALTCHARSET, NULL);
- if (opt_bold)
-@@ -2972,7 +2996,7 @@
- #endif
- default:
- if (cycle_attr(c, &at_code, &attr)) {
-- slk_attr_set(attr, (fg || bg), NULL);
-+ slk_attr_set(attr, (short) (fg || bg), NULL);
- slk_touch();
- slk_noutrefresh();
- break;
-@@ -3000,15 +3024,46 @@
- #endif
- #endif /* SLK_INIT */
-
--/* ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
-+static void
-+show_256_chars(int repeat, attr_t attr, short pair)
-+{
-+ unsigned first = 0;
-+ unsigned last = 255;
-+ unsigned code;
-+ int count;
-+
-+ erase();
-+ attron(A_BOLD);
-+ MvPrintw(0, 20, "Display of Character Codes %#0x to %#0x",
-+ first, last);
-+ attroff(A_BOLD);
-+ refresh();
-+
-+ for (code = first; code <= last; ++code) {
-+ int row = (int) (2 + (code / 16));
-+ int col = (int) (5 * (code % 16));
-+ mvaddch(row, col, colored_chtype(code, attr, pair));
-+ for (count = 1; count < repeat; ++count) {
-+ addch(colored_chtype(code, attr, pair));
-+ }
-+ }
-+
-+}
-+
-+/*
-+ * Show a slice of 32 characters, allowing those to be repeated up to the
-+ * screen's width.
-+ *
-+ * ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
- * terminal to perform functions. The remaining codes can be graphic.
- */
- static void
--show_upper_chars(unsigned first, int repeat, attr_t attr, short pair)
-+show_upper_chars(int base, int pagesize, int repeat, attr_t attr, short pair)
- {
-- bool C1 = (first == 128);
- unsigned code;
-- unsigned last = first + 31;
-+ unsigned first = (unsigned) base;
-+ unsigned last = first + (unsigned) pagesize - 2;
-+ bool C1 = (first == 128);
- int reply;
-
- erase();
-@@ -3020,8 +3075,8 @@
-
- for (code = first; code <= last; code++) {
- int count = repeat;
-- int row = 2 + ((int) (code - first) % 16);
-- int col = ((int) (code - first) / 16) * COLS / 2;
-+ int row = 2 + ((int) (code - first) % (pagesize / 2));
-+ int col = ((int) (code - first) / (pagesize / 2)) * COLS / 2;
- char tmp[80];
- sprintf(tmp, "%3u (0x%x)", code, code);
- MvPrintw(row, col, "%*s: ", COLS / 4, tmp);
-@@ -3195,6 +3250,7 @@
- acs_display(void)
- {
- int c = 'a';
-+ int pagesize = 32;
- char *term = getenv("TERM");
- const char *pch_kludge = ((term != 0 && strstr(term, "linux"))
- ? "p=PC, "
-@@ -3222,6 +3278,13 @@
- else
- beep();
- break;
-+ case 'w':
-+ if (pagesize == 32) {
-+ pagesize = 256;
-+ } else {
-+ pagesize = 32;
-+ }
-+ break;
- case 'x':
- ToggleAcs(last_show_acs, show_box_chars);
- break;
-@@ -3265,15 +3328,18 @@
- }
- break;
- }
-- if (last_show_acs != 0)
-+ if (pagesize != 32) {
-+ show_256_chars(repeat, attr, pair);
-+ } else if (last_show_acs != 0) {
- last_show_acs(repeat, attr, pair);
-- else
-- show_upper_chars((unsigned) (digit * 32 + 128), repeat, attr, pair);
-+ } else {
-+ show_upper_chars(digit * pagesize + 128, pagesize, repeat, attr, pair);
-+ }
-
- MvPrintw(LINES - 3, 0,
- "Note: ANSI terminals may not display C1 characters.");
- MvPrintw(LINES - 2, 0,
-- "Select: a=ACS, x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit",
-+ "Select: a=ACS, w=all x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit",
- pch_kludge);
- if (use_colors) {
- MvPrintw(LINES - 1, 0,
-@@ -3312,6 +3378,53 @@
- return dst;
- }
-
-+/*
-+ * Header/legend take up no more than 8 lines, leaving 16 lines on a 24-line
-+ * display. If there are no repeats, we could normally display 16 lines of 64
-+ * characters (1024 total). However, taking repeats and double-width cells
-+ * into account, use 256 characters for the page.
-+ */
-+static void
-+show_paged_widechars(int base,
-+ int pagesize,
-+ int repeat,
-+ int space,
-+ attr_t attr,
-+ short pair)
-+{
-+ int first = base * pagesize;
-+ int last = first + pagesize - 1;
-+ int per_line = 16;
-+ cchar_t temp;
-+ wchar_t code;
-+ wchar_t codes[10];
-+
-+ erase();
-+ attron(A_BOLD);
-+ MvPrintw(0, 20, "Display of Character Codes %#x to %#x", first, last);
-+ attroff(A_BOLD);
-+
-+ for (code = first; (int) code <= last; code++) {
-+ int row = (2 + ((int) code - first) / per_line);
-+ int col = 5 * ((int) code % per_line);
-+ int count;
-+
-+ memset(&codes, 0, sizeof(codes));
-+ codes[0] = code;
-+ setcchar(&temp, codes, attr, pair, 0);
-+ move(row, col);
-+ if (wcwidth(code) == 0 && code != 0) {
-+ addch((chtype) space |
-+ (A_REVERSE ^ attr) |
-+ (attr_t) COLOR_PAIR(pair));
-+ }
-+ add_wch(&temp);
-+ for (count = 1; count < repeat; ++count) {
-+ add_wch(&temp);
-+ }
-+ }
-+}
-+
- static void
- show_upper_widechars(int first, int repeat, int space, attr_t attr, short pair)
- {
-@@ -3332,11 +3445,13 @@
- int count = repeat;
- int y, x;
-
-- memset(&codes, 0, sizeof(codes));
-- codes[0] = code;
- sprintf(tmp, "%3ld (0x%lx)", (long) code, (long) code);
- MvPrintw(row, col, "%*s: ", COLS / 4, tmp);
-+
-+ memset(&codes, 0, sizeof(codes));
-+ codes[0] = code;
- setcchar(&temp, codes, attr, pair, 0);
-+
- do {
- /*
- * Give non-spacing characters something to combine with. If we
-@@ -3350,16 +3465,17 @@
- (attr_t) COLOR_PAIR(pair));
- }
- /*
-- * This could use add_wch(), but is done for comparison with the
-- * normal 'f' test (and to make a test-case for echo_wchar()).
-- * The screen will flicker because the erase() at the top of the
-- * function is met by the builtin refresh() in echo_wchar().
-+ * This uses echo_wchar(), for comparison with the normal 'f'
-+ * test (and to make a test-case for echo_wchar()). The screen
-+ * may flicker because the erase() at the top of the function
-+ * is met by the builtin refresh() in echo_wchar().
- */
- echo_wchar(&temp);
- /*
- * The repeat-count may make text wrap - avoid that.
- */
- getyx(stdscr, y, x);
-+ (void) y;
- if (x >= col + (COLS / 2) - 2)
- break;
- } while (--count > 0);
-@@ -3612,7 +3728,7 @@
-
- MvPrintw(row, col, "%*s : ", COLS / 4, name);
- (void) attr_set(attr, pair, 0);
-- addstr(strcpy(temp, code));
-+ addstr(strncpy(temp, code, 20));
- (void) attr_set(A_NORMAL, 0, 0);
- return n + 1;
- }
-@@ -3680,6 +3796,7 @@
- int digit = 0;
- int repeat = 1;
- int space = ' ';
-+ int pagesize = 32;
- chtype attr = A_NORMAL;
- int fg = COLOR_BLACK;
- int bg = COLOR_BLACK;
-@@ -3705,6 +3822,13 @@
- ToggleAcs(last_show_wacs, show_wacs_chars_thick);
- break;
- #endif
-+ case 'w':
-+ if (pagesize == 32) {
-+ pagesize = 256;
-+ } else {
-+ pagesize = 32;
-+ }
-+ break;
- case 'x':
- ToggleAcs(last_show_wacs, show_wbox_chars);
- break;
-@@ -3738,20 +3862,25 @@
- }
- break;
- }
-- if (last_show_wacs != 0)
-+ if (pagesize != 32) {
-+ show_paged_widechars(digit, pagesize, repeat, space, attr, pair);
-+ } else if (last_show_wacs != 0) {
- last_show_wacs(repeat, attr, pair);
-- else
-+ } else {
- show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair);
-+ }
-
-- MvPrintw(LINES - 3, 0,
-- "Select: a/d/t WACS, x box, u UTF-8, 0-9,+/- non-ASCII, </> repeat, ESC=quit");
-+ MvPrintw(LINES - 4, 0,
-+ "Select: a/d/t WACS, w=all x=box, u UTF-8, ^L repaint");
-+ MvPrintw(LINES - 3, 2,
-+ "0-9,+/- non-ASCII, </> repeat, _ space, ESC=quit");
- if (use_colors) {
-- MvPrintw(LINES - 2, 0,
-+ MvPrintw(LINES - 2, 2,
- "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.",
- attrs_to_cycle[at_code].name,
- fg, bg);
- } else {
-- MvPrintw(LINES - 2, 0,
-+ MvPrintw(LINES - 2, 2,
- "v/V cycles through video attributes (%s).",
- attrs_to_cycle[at_code].name);
- }
-@@ -3779,7 +3908,7 @@
- /* Use non-default colors if possible to exercise bce a little */
- if (use_colors) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- normal |= COLOR_PAIR(1);
-+ normal |= (chtype) COLOR_PAIR(1);
- }
- bkgdset(normal);
- erase();
-@@ -4115,7 +4244,8 @@
- outerbox(ul, lr, TRUE);
- refresh();
-
-- wrefresh(rwindow);
-+ if (rwindow != 0)
-+ wrefresh(rwindow);
-
- move(0, 0);
- clrtoeol();
-@@ -4186,9 +4316,11 @@
- switch (c) {
- case CTRL('C'):
- if ((neww = typeCalloc(FRAME, 1)) == 0) {
-+ failed("acs_and_scroll");
- goto breakout;
- }
- if ((neww->wind = getwindow()) == (WINDOW *) 0) {
-+ failed("acs_and_scroll");
- free(neww);
- goto breakout;
- }
-@@ -4269,12 +4401,16 @@
-
- neww->next = current ? current->next : 0;
- neww->last = current;
-- neww->last->next = neww;
-- neww->next->last = neww;
-+ if (neww->last != 0)
-+ neww->last->next = neww;
-+ if (neww->next != 0)
-+ neww->next->last = neww;
-
- neww->wind = getwin(fp);
-
- wrefresh(neww->wind);
-+ } else {
-+ failed("acs_and_scroll");
- }
- (void) fclose(fp);
- }
-@@ -5226,7 +5362,7 @@
- #ifdef A_COLOR
- if (use_colors) {
- init_pair(2, COLOR_CYAN, COLOR_BLUE);
-- wbkgd(subWin, COLOR_PAIR(2) | ' ');
-+ wbkgd(subWin, (chtype) (COLOR_PAIR(2) | ' '));
- }
- #endif
- (void) wattrset(subWin, A_BOLD);
-@@ -5449,6 +5585,8 @@
- for (n = 0; t_tbl[n].name != 0; n++)
- need += strlen(t_tbl[n].name) + 2;
- buf = typeMalloc(char, need);
-+ if (!buf)
-+ failed("tracetrace");
- }
- sprintf(buf, "0x%02x = {", tlevel);
- if (tlevel == 0) {
-@@ -5622,10 +5760,9 @@
- set_form_sub(f, derwin(w, rows, cols, 1, 2));
- box(w, 0, 0);
- keypad(w, TRUE);
-+ if (post_form(f) != E_OK)
-+ wrefresh(w);
- }
--
-- if (post_form(f) != E_OK)
-- wrefresh(w);
- }
-
- static void
-@@ -5649,55 +5786,60 @@
- if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK
- && nbuf > 0) {
- char *source = field_buffer(me, 1);
-- char temp[80];
-+ size_t have = (source ? strlen(source) : 0) + 1;
-+ size_t need = 80 + have;
-+ char *temp = malloc(need);
- long len;
-
-- strcpy(temp, source ? source : "");
-- len = (long) (char *) field_userptr(me);
-- if (c <= KEY_MAX) {
-- if (isgraph(c) && (len + 1) < (int) sizeof(temp)) {
-- temp[len++] = (char) c;
-- temp[len] = 0;
-- set_field_buffer(me, 1, temp);
-- c = '*';
-- } else {
-- c = 0;
-- }
-- } else {
-- switch (c) {
-- case REQ_BEG_FIELD:
-- case REQ_CLR_EOF:
-- case REQ_CLR_EOL:
-- case REQ_DEL_LINE:
-- case REQ_DEL_WORD:
-- case REQ_DOWN_CHAR:
-- case REQ_END_FIELD:
-- case REQ_INS_CHAR:
-- case REQ_INS_LINE:
-- case REQ_LEFT_CHAR:
-- case REQ_NEW_LINE:
-- case REQ_NEXT_WORD:
-- case REQ_PREV_WORD:
-- case REQ_RIGHT_CHAR:
-- case REQ_UP_CHAR:
-- c = 0; /* we don't want to do inline editing */
-- break;
-- case REQ_CLR_FIELD:
-- if (len) {
-- temp[0] = 0;
-+ if (temp != 0) {
-+ strncpy(temp, source ? source : "", have + 1);
-+ len = (long) (char *) field_userptr(me);
-+ if (c <= KEY_MAX) {
-+ if (isgraph(c) && (len + 1) < (int) sizeof(temp)) {
-+ temp[len++] = (char) c;
-+ temp[len] = 0;
- set_field_buffer(me, 1, temp);
-+ c = '*';
-+ } else {
-+ c = 0;
- }
-- break;
-- case REQ_DEL_CHAR:
-- case REQ_DEL_PREV:
-- if (len) {
-- temp[--len] = 0;
-- set_field_buffer(me, 1, temp);
-+ } else {
-+ switch (c) {
-+ case REQ_BEG_FIELD:
-+ case REQ_CLR_EOF:
-+ case REQ_CLR_EOL:
-+ case REQ_DEL_LINE:
-+ case REQ_DEL_WORD:
-+ case REQ_DOWN_CHAR:
-+ case REQ_END_FIELD:
-+ case REQ_INS_CHAR:
-+ case REQ_INS_LINE:
-+ case REQ_LEFT_CHAR:
-+ case REQ_NEW_LINE:
-+ case REQ_NEXT_WORD:
-+ case REQ_PREV_WORD:
-+ case REQ_RIGHT_CHAR:
-+ case REQ_UP_CHAR:
-+ c = 0; /* we don't want to do inline editing */
-+ break;
-+ case REQ_CLR_FIELD:
-+ if (len) {
-+ temp[0] = 0;
-+ set_field_buffer(me, 1, temp);
-+ }
-+ break;
-+ case REQ_DEL_CHAR:
-+ case REQ_DEL_PREV:
-+ if (len) {
-+ temp[--len] = 0;
-+ set_field_buffer(me, 1, temp);
-+ }
-+ break;
- }
-- break;
- }
-+ set_field_userptr(me, (void *) len);
-+ free(temp);
- }
-- set_field_userptr(me, (void *) len);
- }
- return c;
- }
-@@ -6056,11 +6198,11 @@
- break;
- case 2:
- init_pair(cpair, COLOR_BLUE, COLOR_WHITE);
-- (void) wattrset(win, (attr_t) COLOR_PAIR(cpair) | A_NORMAL);
-+ (void) wattrset(win, (int) (COLOR_PAIR(cpair) | A_NORMAL));
- break;
- case 3:
- init_pair(cpair, COLOR_WHITE, COLOR_BLUE);
-- (void) wattrset(win, (attr_t) COLOR_PAIR(cpair) | A_BOLD);
-+ (void) wattrset(win, (int) (COLOR_PAIR(cpair) | A_BOLD));
- break;
- }
- }
-@@ -6483,6 +6625,7 @@
- ," -a f,b set default-colors (assumed white-on-black)"
- ," -d use default-colors if terminal supports them"
- #endif
-+ ," -E call use_env(FALSE) to ignore $LINES and $COLUMNS"
- #if USE_SOFTKEYS
- ," -e fmt specify format for soft-keys test (e)"
- #endif
-@@ -6495,6 +6638,9 @@
- #if USE_LIBPANEL
- ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
- #endif
-+#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714)
-+ ," -T call use_tioctl(TRUE) to allow SIGWINCH to override environment"
-+#endif
- #ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
- #endif
-@@ -6517,7 +6663,7 @@
- }
-
- #ifdef SIGUSR1
--static RETSIGTYPE
-+static void
- announce_sig(int sig)
- {
- (void) fprintf(stderr, "Handled signal %d\r\n", sig);
-@@ -6681,17 +6827,27 @@
-
- setlocale(LC_ALL, "");
-
-- while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
-+ while ((c = getopt(argc, argv, "a:dEe:fhmp:s:Tt:")) != -1) {
- switch (c) {
- #ifdef NCURSES_VERSION
- case 'a':
- assumed_colors = TRUE;
-- sscanf(optarg, "%d,%d", &default_fg, &default_bg);
-+ switch (sscanf(optarg, "%d,%d", &default_fg, &default_bg)) {
-+ case 0:
-+ default_fg = COLOR_WHITE;
-+ /* FALLTHRU */
-+ case 1:
-+ default_bg = COLOR_BLACK;
-+ break;
-+ }
- break;
- case 'd':
- default_colors = TRUE;
- break;
- #endif
-+ case 'E':
-+ use_env(FALSE);
-+ break;
- case 'e':
- my_e_param = atoi(optarg);
- #ifdef NCURSES_VERSION
-@@ -6721,6 +6877,11 @@
- nap_msec = (int) atol(optarg);
- break;
- #endif
-+#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714)
-+ case 'T':
-+ use_tioctl(TRUE);
-+ break;
-+#endif
- #ifdef TRACE
- case 't':
- save_trace = (unsigned) strtol(optarg, 0, 0);
-@@ -6761,7 +6922,7 @@
- bkgdset(BLANK);
-
- /* tests, in general, will want these modes */
-- use_colors = monochrome ? FALSE : has_colors();
-+ use_colors = (bool) (monochrome ? FALSE : has_colors());
-
- if (use_colors) {
- start_color();
-@@ -6772,7 +6933,7 @@
- use_default_colors();
- min_colors = -1;
- }
--#if NCURSES_VERSION_PATCH >= 20000708
-+#if HAVE_ASSUME_DEFAULT_COLORS
- if (assumed_colors)
- assume_default_colors(default_fg, default_bg);
- #endif
-@@ -6785,6 +6946,8 @@
- if (can_change_color()) {
- short cp;
- all_colors = typeMalloc(RGB_DATA, (unsigned) max_colors);
-+ if (!all_colors)
-+ failed("all_colors");
- for (cp = 0; cp < max_colors; ++cp) {
- color_content(cp,
- &all_colors[cp].red,
-Index: test/newdemo.c
-Prereq: 1.35
---- ncurses-5.9/test/newdemo.c 2010-12-12 00:19:15.000000000 +0000
-+++ ncurses-5.9-20130504/test/newdemo.c 2013-04-27 19:46:53.000000000 +0000
-@@ -2,7 +2,7 @@
- * newdemo.c - A demo program using PDCurses. The program illustrate
- * the use of colours for text output.
- *
-- * $Id: newdemo.c,v 1.35 2010/12/12 00:19:15 tom Exp $
-+ * $Id: newdemo.c,v 1.40 2013/04/27 19:46:53 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -47,7 +47,7 @@
- /*
- * Trap interrupt
- */
--static RETSIGTYPE
-+static void
- trap(int sig GCC_UNUSED)
- {
- endwin();
-@@ -84,7 +84,7 @@
- if (pair > COLOR_PAIRS)
- pair = COLOR_PAIRS;
- init_pair((short) pair, (short) foreground, (short) background);
-- (void) wattrset(win, (attr_t) COLOR_PAIR(pair));
-+ (void) wattrset(win, (int) COLOR_PAIR(pair));
- }
- }
-
-@@ -96,7 +96,7 @@
- pair = COLOR_PAIRS;
- attrs |= (chtype) COLOR_PAIR(pair);
- }
-- (void) wattrset(win, attrs);
-+ (void) wattrset(win, (int) attrs);
- return attrs;
- }
-
-@@ -113,12 +113,19 @@
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
-- if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL)
-+
-+ if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL) {
- return 1;
-- if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL)
-+ }
-+ if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL) {
-+ delwin(swin1);
- return 1;
-- if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL)
-+ }
-+ if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL) {
-+ delwin(swin1);
-+ delwin(swin2);
- return 1;
-+ }
-
- set_colors(swin1, 8, COLOR_RED, COLOR_BLUE);
- werase(swin1);
-@@ -215,7 +222,7 @@
- {
- WINDOW *win;
- int w, x, y, i, j, k;
-- char buffer[200];
-+ char buffer[SIZEOF(messages) * 80];
- const char *message;
- int width, height;
- chtype save[80];
-Index: test/programs
-Prereq: 1.19
---- ncurses-5.9/test/programs 2009-09-12 19:44:01.000000000 +0000
-+++ ncurses-5.9-20130504/test/programs 2013-01-13 00:46:13.000000000 +0000
-@@ -1,6 +1,6 @@
--# $Id: programs,v 1.19 2009/09/12 19:44:01 tom Exp $
-+# $Id: programs,v 1.21 2013/01/13 00:46:13 tom Exp $
- ##############################################################################
--# Copyright (c) 2006-2008,2009 Free Software Foundation, Inc. #
-+# Copyright (c) 2006-2009,2013 Free Software Foundation, Inc. #
- # #
- # Permission is hereby granted, free of charge, to any person obtaining a #
- # copy of this software and associated documentation files (the "Software"), #
-@@ -83,6 +83,8 @@
- test_instr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_instr
- test_inwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_inwstr
- test_opaque $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_opaque
-+test_vid_puts $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vid_puts
-+test_vidputs $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vidputs
- testaddch $(LDFLAGS_CURSES) $(LOCAL_LIBS) testaddch
- testcurs $(LDFLAGS_CURSES) $(LOCAL_LIBS) testcurs
- testscanw $(LDFLAGS_CURSES) $(LOCAL_LIBS) testscanw
-Index: test/railroad.c
-Prereq: 1.19
---- ncurses-5.9/test/railroad.c 2009-10-24 21:37:56.000000000 +0000
-+++ ncurses-5.9-20130504/test/railroad.c 2011-04-23 19:15:04.000000000 +0000
-@@ -29,7 +29,7 @@
- /*
- * Author: Thomas E. Dickey - 2000
- *
-- * $Id: railroad.c,v 1.19 2009/10/24 21:37:56 tom Exp $
-+ * $Id: railroad.c,v 1.20 2011/04/23 19:15:04 tom Exp $
- *
- * A simple demo of the termcap interface.
- */
-@@ -55,8 +55,8 @@
-
- static bool interrupted = FALSE;
-
--static int
--outc(TPUTS_ARG c)
-+static
-+TPUTS_PROTO(outc, c)
- {
- int rc = OK;
-
-@@ -68,7 +68,7 @@
- if (putc(c, stdout) == EOF)
- rc = ERR;
- }
-- return rc;
-+ TPUTS_RETURN(rc);
- }
-
- static void
-Index: test/rain.c
-Prereq: 1.38
---- ncurses-5.9/test/rain.c 2010-11-13 20:11:46.000000000 +0000
-+++ ncurses-5.9-20130504/test/rain.c 2012-01-21 23:54:47.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: rain.c,v 1.38 2010/11/13 20:11:46 tom Exp $
-+ * $Id: rain.c,v 1.40 2012/01/21 23:54:47 tom Exp $
- */
- #include <test.priv.h>
-
-@@ -222,7 +222,7 @@
- * Find myself in the list of threads so we can count the number of loops.
- */
- for (mystats = 0; mystats < MAX_THREADS; ++mystats) {
--#ifdef __MINGW32__
-+#if defined(__MINGW32__) && !defined(__WINPTHREADS_VERSION)
- if (drop_threads[mystats].myself.p == pthread_self().p)
- #else
- if (drop_threads[mystats].myself == pthread_self())
-@@ -256,7 +256,7 @@
- /*
- * The description of pthread_create() is misleading, since it implies that
- * threads will exit cleanly after their function returns.
-- *
-+ *
- * Since they do not (and the number of threads is limited by system
- * resources), make a limited number of threads, and signal any that are
- * waiting when we want a thread past that limit.
-Index: test/redraw.c
-Prereq: 1.5
---- ncurses-5.9/test/redraw.c 2010-05-01 22:04:08.000000000 +0000
-+++ ncurses-5.9-20130504/test/redraw.c 2012-12-08 20:46:02.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: redraw.c,v 1.5 2010/05/01 22:04:08 tom Exp $
-+ * $Id: redraw.c,v 1.8 2012/12/08 20:46:02 tom Exp $
- *
- * Demonstrate the redrawwin() and wredrawln() functions.
- * Thomas Dickey - 2006/11/4
-@@ -113,7 +113,7 @@
- * using mvcur(). It is ifdef'd for NCURSES, since X/Open does
- * not define the case where the old location is unknown.
- */
-- system("date");
-+ IGNORE_RC(system("date"));
- mvcur(-1, -1, y, x);
- break;
- #endif
-Index: test/tclock.c
-Prereq: 1.30
---- ncurses-5.9/test/tclock.c 2011-03-22 09:16:00.000000000 +0000
-+++ ncurses-5.9-20130504/test/tclock.c 2012-06-09 19:17:02.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: tclock.c,v 1.30 2011/03/22 09:16:00 tom Exp $ */
-+/* $Id: tclock.c,v 1.31 2012/06/09 19:17:02 tom Exp $ */
-
- #include <test.priv.h>
-
-@@ -216,12 +216,12 @@
- attroff(A_REVERSE);
-
- if (has_colors())
-- (void) attrset(COLOR_PAIR(1));
-+ (void) attrset((attr_t) COLOR_PAIR(1));
-
- dline(1, cx, cy, cx + sdx, cy - sdy, 'O');
-
- if (has_colors())
-- (void) attrset(COLOR_PAIR(0));
-+ (void) attrset((attr_t) COLOR_PAIR(0));
-
- text = ctime(&tim);
- MvPrintw(2, 0, "%.*s", (int) (strlen(text) - 1), text);
-Index: test/test.priv.h
-Prereq: 1.103
---- ncurses-5.9/test/test.priv.h 2011-03-22 09:15:45.000000000 +0000
-+++ ncurses-5.9-20130504/test/test.priv.h 2013-02-10 01:00:04.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- /****************************************************************************
- * Author: Thomas E. Dickey 1996-on *
- ****************************************************************************/
--/* $Id: test.priv.h,v 1.103 2011/03/22 09:15:45 tom Exp $ */
-+/* $Id: test.priv.h,v 1.117 2013/02/10 01:00:04 tom Exp $ */
-
- #ifndef __TEST_PRIV_H
- #define __TEST_PRIV_H 1
-@@ -58,6 +58,10 @@
- /*
- * Fallback definitions to accommodate broken compilers.
- */
-+#ifndef HAVE_ASSUME_DEFAULT_COLORS
-+#define HAVE_ASSUME_DEFAULT_COLORS 0
-+#endif
-+
- #ifndef HAVE_CURSES_VERSION
- #define HAVE_CURSES_VERSION 0
- #endif
-@@ -170,10 +174,22 @@
- #define HAVE_SLK_INIT 0
- #endif
-
-+#ifndef HAVE_SYS_IOCTL_H
-+#define HAVE_SYS_IOCTL_H 0
-+#endif
-+
-+#ifndef HAVE_SYS_SELECT_H
-+#define HAVE_SYS_SELECT_H 0
-+#endif
-+
- #ifndef HAVE_TERMATTRS
- #define HAVE_TERMATTRS 0
- #endif
-
-+#ifndef HAVE_TERMIOS_H
-+#define HAVE_TERMIOS_H 0
-+#endif
-+
- #ifndef HAVE_TERMNAME
- #define HAVE_TERMNAME 0
- #endif
-@@ -202,6 +218,14 @@
- #define HAVE_USE_DEFAULT_COLORS 0
- #endif
-
-+#ifndef HAVE_USE_SCREEN
-+#define HAVE_USE_SCREEN 0
-+#endif
-+
-+#ifndef HAVE_USE_WINDOW
-+#define HAVE_USE_WINDOW 0
-+#endif
-+
- #ifndef HAVE_WRESIZE
- #define HAVE_WRESIZE 0
- #endif
-@@ -222,6 +246,13 @@
- #define NO_LEAKS 0
- #endif
-
-+/*
-+ * Workaround for HPUX
-+ */
-+#if defined(__hpux) && !defined(NCURSES_VERSION)
-+#define _ACS_COMPAT_CODE /* needed for acs_map vs __acs_map */
-+#endif
-+
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
-@@ -269,21 +300,18 @@
-
- /*
- * Not all curses.h implementations include unctrl.h,
-- * Solaris 10 xpg4 for example.
- */
--#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
--#if defined(HAVE_NCURSESW_NCURSES_H)
-+#if defined(HAVE_NCURSESW_UNCTRL_H)
- #include <ncursesw/unctrl.h>
--#elif defined(HAVE_NCURSES_NCURSES_H)
-+#elif defined(HAVE_NCURSES_UNCTRL_H)
- #include <ncurses/unctrl.h>
--#else
-+#elif defined(HAVE_UNCTRL_H)
- #include <unctrl.h>
- #endif
--#endif
-
- #if HAVE_GETOPT_H
- #include <getopt.h>
--#else
-+#elif !defined(HAVE_GETOPT_HEADER)
- /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables
- * doesn't hurt.
- */
-@@ -323,17 +351,20 @@
- #endif
-
- #if !USE_SOFTKEYS
--#define slk_init() /* nothing */
--#define slk_restore() /* nothing */
--#define slk_clear() /* nothing */
-+#define slk_init() /* nothing */
-+#define slk_restore() /* nothing */
-+#define slk_clear() /* nothing */
- #endif
-
- #ifndef HAVE_WSYNCDOWN
--#define wsyncdown(win) /* nothing */
-+#define wsyncdown(win) /* nothing */
- #endif
-
- #ifndef USE_WIDEC_SUPPORT
--#if (defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5)) && defined(WACS_ULCORNER)
-+#if (defined(_XOPEN_SOURCE_EXTENDED) \
-+ || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) \
-+ || (defined(NCURSES_WIDECHAR) && (NCURSES_WIDECHAR - 0 < 1))) \
-+ && defined(WACS_ULCORNER)
- #define USE_WIDEC_SUPPORT 1
- #else
- #define USE_WIDEC_SUPPORT 0
-@@ -609,8 +640,28 @@
- #define EXIT_FAILURE 1
- #endif
-
--#ifdef __MINGW32__
-+#if defined(__MINGW32__)
-+
-+#if defined(PDCURSES)
-+#ifdef WINVER
-+# if WINVER < 0x0501
-+# error WINVER must at least be 0x0501
-+# endif
-+#else
-+# define WINVER 0x0501
-+#endif
-+#include <windows.h>
-+#include <sys/time.h> /* for struct timeval */
-+#undef sleep
-+#define sleep(n) Sleep((n) * 1000)
-+#define SIGHUP 1
-+#define SIGKILL 9
-+#define getlogin() "username"
-+
-+#else
- #include <nc_mingw.h>
-+#endif
-+
- /* conflicts in test/firstlast.c */
- #undef large
- #undef small
-@@ -653,25 +704,32 @@
- * The same would be needed for HPUX 10.20
- */
- #ifndef TPUTS_ARG
-+#define TPUTS_ARG int
-+#endif
-+
- #if defined(sun) && !defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
-+#undef TPUTS_ARG
- #define TPUTS_ARG char
- extern char *tgoto(char *, int, int); /* available, but not prototyped */
--#else
--#define TPUTS_ARG int
- #endif
-+
-+#ifndef TPUTS_PROTO
-+#define TPUTS_PROTO(func,value) int func(TPUTS_ARG value)
-+#endif
-+
-+#ifndef TPUTS_RETURN
-+#define TPUTS_RETURN(value) return value
- #endif
-
- /*
- * Workarounds for Solaris's X/Open curses
- */
--#if defined(sun) && defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
- #if !defined(KEY_MIN) && defined(__KEY_MIN)
- #define KEY_MIN __KEY_MIN
- #endif
- #if !defined(KEY_MAX) && defined(__KEY_MIN)
- #define KEY_MAX __KEY_MAX
- #endif
--#endif
-
- /*
- * Workaround to build with Sun's default SVr4 curses.
-@@ -702,23 +760,10 @@
- #define CONST_MENUS /* nothing */
- #endif
-
--#ifndef HAVE_USE_WINDOW
--#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915) || !NCURSES_EXT_FUNCS
--#define HAVE_USE_WINDOW 0
--#else
--#define HAVE_USE_WINDOW 1
--#endif
--#endif
--
- /*
- * Simplify setting up demo of threading with these macros.
- */
-
--#if !HAVE_USE_WINDOW
--typedef int (*NCURSES_WINDOW_CB) (WINDOW *, void *);
--typedef int (*NCURSES_SCREEN_CB) (SCREEN *, void *);
--#endif
--
- #if HAVE_USE_WINDOW
- #define USING_WINDOW(w,func) use_window(w, (NCURSES_WINDOW_CB) func, w)
- #define USING_WINDOW2(w,func,data) use_window(w, (NCURSES_WINDOW_CB) func, data)
-@@ -745,6 +790,8 @@
- #define USE_TRACE 0
- #endif
-
-+#define Trace2(p) /* nothing */
-+
- #define MvAddCh (void) mvaddch
- #define MvWAddCh (void) mvwaddch
- #define MvAddStr (void) mvaddstr
-Index: test/test_add_wchstr.c
-Prereq: 1.15
---- ncurses-5.9/test/test_add_wchstr.c 2011-01-15 18:15:11.000000000 +0000
-+++ ncurses-5.9-20130504/test/test_add_wchstr.c 2012-12-16 00:12:04.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010,2011 Free Software Foundation, Inc. *
-+ * Copyright (c) 2010-2011,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: test_add_wchstr.c,v 1.15 2011/01/15 18:15:11 tom Exp $
-+ * $Id: test_add_wchstr.c,v 1.20 2012/12/16 00:12:04 tom Exp $
- *
- * Demonstrate the waddwchstr() and wadd_wch functions.
- * Thomas Dickey - 2009/9/12
-@@ -90,6 +90,8 @@
- if (need > temp_length) { \
- temp_length = need * 2; \
- temp_buffer = typeRealloc(cchar_t, temp_length, temp_buffer); \
-+ if (!temp_buffer) \
-+ failed("TempBuffer"); \
- } \
- have[0] = 0; \
- have[1] = 0; \
-@@ -317,6 +319,15 @@
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
-+
-+ /*
-+ * Show the characters added in color, to distinguish from those that
-+ * are shifted.
-+ */
-+ if (has_colors()) {
-+ start_color();
-+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
-+ }
- }
-
- limit = LINES - 5;
-@@ -350,14 +361,8 @@
-
- doupdate();
-
-- /*
-- * Show the characters added in color, to distinguish from those that
-- * are shifted.
-- */
- if (has_colors()) {
-- start_color();
-- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- wbkgdset(work, COLOR_PAIR(1) | ' ');
-+ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
- }
-
- while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
-@@ -366,11 +371,13 @@
- case key_RECUR:
- test_add_wchstr(level + 1);
-
-- touchwin(look);
-+ if (look)
-+ touchwin(look);
- touchwin(work);
- touchwin(show);
-
-- wnoutrefresh(look);
-+ if (look)
-+ wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
-@@ -514,8 +521,8 @@
- break;
- }
- }
-+ delwin(show);
- if (level > 0) {
-- delwin(show);
- delwin(work);
- delwin(look);
- }
-Index: test/test_addchstr.c
-Prereq: 1.13
---- ncurses-5.9/test/test_addchstr.c 2010-12-12 01:28:24.000000000 +0000
-+++ ncurses-5.9-20130504/test/test_addchstr.c 2012-12-16 00:36:27.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: test_addchstr.c,v 1.13 2010/12/12 01:28:24 tom Exp $
-+ * $Id: test_addchstr.c,v 1.18 2012/12/16 00:36:27 tom Exp $
- *
- * Demonstrate the waddchstr() and waddch functions.
- * Thomas Dickey - 2009/9/12
-@@ -101,6 +101,8 @@
- if (need > temp_length) {
- temp_length = need * 2;
- temp_buffer = typeRealloc(chtype, temp_length, temp_buffer);
-+ if (!temp_buffer)
-+ failed("TempBuffer");
- }
- do {
- const char *s;
-@@ -237,6 +239,15 @@
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
-+
-+ /*
-+ * Show the characters added in color, to distinguish from those that
-+ * are shifted.
-+ */
-+ if (has_colors()) {
-+ start_color();
-+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
-+ }
- }
-
- limit = LINES - 5;
-@@ -270,14 +281,8 @@
-
- doupdate();
-
-- /*
-- * Show the characters added in color, to distinguish from those that
-- * are shifted.
-- */
- if (has_colors()) {
-- start_color();
-- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- show_attr = COLOR_PAIR(1);
-+ show_attr = (attr_t) COLOR_PAIR(1);
- wbkgdset(work, show_attr | ' ');
- } else {
- show_attr = A_STANDOUT;
-@@ -289,11 +294,13 @@
- case key_RECUR:
- test_adds(level + 1);
-
-- touchwin(look);
-+ if (look)
-+ touchwin(look);
- touchwin(work);
- touchwin(show);
-
-- wnoutrefresh(look);
-+ if (look)
-+ wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
-@@ -445,10 +452,10 @@
- }
- }
- if (level > 0) {
-- delwin(show);
- delwin(work);
- delwin(look);
- }
-+ delwin(show);
- }
-
- static void
-Index: test/test_addstr.c
-Prereq: 1.6
---- ncurses-5.9/test/test_addstr.c 2010-12-12 00:17:37.000000000 +0000
-+++ ncurses-5.9-20130504/test/test_addstr.c 2012-12-16 00:14:10.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: test_addstr.c,v 1.6 2010/12/12 00:17:37 tom Exp $
-+ * $Id: test_addstr.c,v 1.10 2012/12/16 00:14:10 tom Exp $
- *
- * Demonstrate the waddstr() and waddch functions.
- * Thomas Dickey - 2009/9/12
-@@ -161,6 +161,15 @@
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
-+
-+ /*
-+ * Show the characters added in color, to distinguish from those that
-+ * are shifted.
-+ */
-+ if (has_colors()) {
-+ start_color();
-+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
-+ }
- }
-
- limit = LINES - 5;
-@@ -194,14 +203,8 @@
-
- doupdate();
-
-- /*
-- * Show the characters added in color, to distinguish from those that
-- * are shifted.
-- */
- if (has_colors()) {
-- start_color();
-- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- wbkgdset(work, COLOR_PAIR(1) | ' ');
-+ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
- }
-
- while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
-@@ -210,11 +213,13 @@
- case key_RECUR:
- test_adds(level + 1);
-
-- touchwin(look);
-+ if (look)
-+ touchwin(look);
- touchwin(work);
- touchwin(show);
-
-- wnoutrefresh(look);
-+ if (look)
-+ wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
-@@ -361,8 +366,8 @@
- break;
- }
- }
-+ delwin(show);
- if (level > 0) {
-- delwin(show);
- delwin(work);
- delwin(look);
- }
-Index: test/test_addwstr.c
-Prereq: 1.6
---- ncurses-5.9/test/test_addwstr.c 2010-12-12 00:18:00.000000000 +0000
-+++ ncurses-5.9-20130504/test/test_addwstr.c 2012-12-16 00:11:18.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: test_addwstr.c,v 1.6 2010/12/12 00:18:00 tom Exp $
-+ * $Id: test_addwstr.c,v 1.11 2012/12/16 00:11:18 tom Exp $
- *
- * Demonstrate the waddwstr() and wadd_wch functions.
- * Thomas Dickey - 2009/9/12
-@@ -233,8 +233,9 @@
- WINDOW *work = 0;
- WINDOW *show = 0;
- int margin = (2 * MY_TABSIZE) - 1;
-- Options option = ((m_opt ? oMove : oDefault)
-- | ((w_opt || (level > 0)) ? oWindow : oDefault));
-+ Options option = (Options) ((int) (m_opt ? oMove : oDefault)
-+ | (int) ((w_opt || (level > 0))
-+ ? oWindow : oDefault));
-
- if (first) {
- static char cmd[80];
-@@ -246,6 +247,15 @@
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
-+
-+ /*
-+ * Show the characters inserted in color, to distinguish from those that
-+ * are shifted.
-+ */
-+ if (has_colors()) {
-+ start_color();
-+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
-+ }
- }
-
- limit = LINES - 5;
-@@ -279,14 +289,8 @@
-
- doupdate();
-
-- /*
-- * Show the characters inserted in color, to distinguish from those that
-- * are shifted.
-- */
- if (has_colors()) {
-- start_color();
-- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- wbkgdset(work, COLOR_PAIR(1) | ' ');
-+ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
- }
-
- while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
-@@ -295,11 +299,13 @@
- case key_RECUR:
- test_inserts(level + 1);
-
-- touchwin(look);
-+ if (look)
-+ touchwin(look);
- touchwin(work);
- touchwin(show);
-
-- wnoutrefresh(look);
-+ if (look)
-+ wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
-@@ -445,8 +451,8 @@
- break;
- }
- }
-+ delwin(show);
- if (level > 0) {
-- delwin(show);
- delwin(work);
- delwin(look);
- }
-Index: test/test_getstr.c
-Prereq: 1.9
---- ncurses-5.9/test/test_getstr.c 2009-08-29 19:02:25.000000000 +0000
-+++ ncurses-5.9-20130504/test/test_getstr.c 2012-07-07 18:22:49.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 2007-2009,2012 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -26,7 +26,7 @@
- * authorization. *
- ****************************************************************************/
- /*
-- * $Id: test_getstr.c,v 1.9 2009/08/29 19:02:25 tom Exp $
-+ * $Id: test_getstr.c,v 1.10 2012/07/07 18:22:49 tom Exp $
- *
- * Author: Thomas E Dickey
- *
-@@ -58,6 +58,15 @@
- eMaxFlavor
- } Flavors;
-
-+/*
-+ * Return-code is OK/ERR or a keyname.
-+ */
-+static const char *
-+ok_keyname(int code)
-+{
-+ return ((code == OK) ? "OK" : ((code == ERR) ? "ERR" : keyname(code)));
-+}
-+
- static bool
- Quit(int ch)
- {
-@@ -310,7 +319,7 @@
- }
- noecho();
- (void) wattrset(txtwin, A_NORMAL);
-- wprintw(strwin, "%d:%s", rc, buffer);
-+ wprintw(strwin, "%s:%s", ok_keyname(rc), buffer);
- wnoutrefresh(strwin);
- break;
- default:
-Index: test/test_vid_puts.c
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/test/test_vid_puts.c 2013-01-13 01:04:14.000000000 +0000
-@@ -0,0 +1,148 @@
-+/****************************************************************************
-+ * Copyright (c) 2013 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+/*
-+ * $Id: test_vid_puts.c,v 1.4 2013/01/13 01:04:14 tom Exp $
-+ *
-+ * Demonstrate the vid_puts and vid_attr functions.
-+ * Thomas Dickey - 2013/01/12
-+ */
-+
-+#define USE_TINFO
-+#include <test.priv.h>
-+
-+#if USE_WIDEC_SUPPORT && HAVE_SETUPTERM
-+
-+#define valid(s) ((s != 0) && s != (char *)-1)
-+
-+static FILE *my_fp;
-+static bool p_opt = FALSE;
-+
-+static
-+TPUTS_PROTO(outc, c)
-+{
-+ int rc = c;
-+
-+ rc = putc(c, my_fp);
-+ TPUTS_RETURN(rc);
-+}
-+
-+static bool
-+outs(char *s)
-+{
-+ if (valid(s)) {
-+ tputs(s, 1, outc);
-+ return TRUE;
-+ }
-+ return FALSE;
-+}
-+
-+static void
-+cleanup(void)
-+{
-+ outs(exit_attribute_mode);
-+ if (!outs(orig_colors))
-+ outs(orig_pair);
-+ outs(cursor_normal);
-+}
-+
-+static void
-+change_attr(chtype attr)
-+{
-+ if (p_opt) {
-+ vid_puts(attr, (short) 0, (void *) 0, outc);
-+ } else {
-+ vid_attr(attr, (short) 0, (void *) 0);
-+ }
-+}
-+
-+static void
-+test_vid_puts(void)
-+{
-+ fprintf(my_fp, "Name: ");
-+ change_attr(A_BOLD);
-+ fputs("Bold", my_fp);
-+ change_attr(A_REVERSE);
-+ fputs(" Reverse", my_fp);
-+ change_attr(A_NORMAL);
-+ fputs("\n", my_fp);
-+}
-+
-+static void
-+usage(void)
-+{
-+ static const char *tbl[] =
-+ {
-+ "Usage: test_vid_puts [options]"
-+ ,""
-+ ,"Options:"
-+ ," -e use stderr (default stdout)"
-+ ," -p use vid_puts (default vid_attr)"
-+ };
-+ unsigned n;
-+ for (n = 0; n < SIZEOF(tbl); ++n)
-+ fprintf(stderr, "%s\n", tbl[n]);
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
-+int
-+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-+{
-+ int ch;
-+
-+ my_fp = stdout;
-+
-+ while ((ch = getopt(argc, argv, "ep")) != -1) {
-+ switch (ch) {
-+ case 'e':
-+ my_fp = stderr;
-+ break;
-+ case 'p':
-+ p_opt = TRUE;
-+ break;
-+ default:
-+ usage();
-+ break;
-+ }
-+ }
-+ if (optind < argc)
-+ usage();
-+
-+ setupterm((char *) 0, 1, (int *) 0);
-+ test_vid_puts();
-+ cleanup();
-+ ExitProgram(EXIT_SUCCESS);
-+}
-+
-+#else
-+int
-+main(void)
-+{
-+ printf("This program requires the wide-ncurses terminfo library\n");
-+ ExitProgram(EXIT_FAILURE);
-+}
-+#endif
-Index: test/test_vidputs.c
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/test/test_vidputs.c 2013-01-13 00:58:54.000000000 +0000
-@@ -0,0 +1,148 @@
-+/****************************************************************************
-+ * Copyright (c) 2013 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+/*
-+ * $Id: test_vidputs.c,v 1.3 2013/01/13 00:58:54 tom Exp $
-+ *
-+ * Demonstrate the vidputs and vidattr functions.
-+ * Thomas Dickey - 2013/01/12
-+ */
-+
-+#define USE_TINFO
-+#include <test.priv.h>
-+
-+#if HAVE_SETUPTERM
-+
-+#define valid(s) ((s != 0) && s != (char *)-1)
-+
-+static FILE *my_fp;
-+static bool p_opt = FALSE;
-+
-+static
-+TPUTS_PROTO(outc, c)
-+{
-+ int rc = c;
-+
-+ rc = putc(c, my_fp);
-+ TPUTS_RETURN(rc);
-+}
-+
-+static bool
-+outs(char *s)
-+{
-+ if (valid(s)) {
-+ tputs(s, 1, outc);
-+ return TRUE;
-+ }
-+ return FALSE;
-+}
-+
-+static void
-+cleanup(void)
-+{
-+ outs(exit_attribute_mode);
-+ if (!outs(orig_colors))
-+ outs(orig_pair);
-+ outs(cursor_normal);
-+}
-+
-+static void
-+change_attr(chtype attr)
-+{
-+ if (p_opt) {
-+ vidputs(attr, outc);
-+ } else {
-+ vidattr(attr);
-+ }
-+}
-+
-+static void
-+test_vidputs(void)
-+{
-+ fprintf(my_fp, "Name: ");
-+ change_attr(A_BOLD);
-+ fputs("Bold", my_fp);
-+ change_attr(A_REVERSE);
-+ fputs(" Reverse", my_fp);
-+ change_attr(A_NORMAL);
-+ fputs("\n", my_fp);
-+}
-+
-+static void
-+usage(void)
-+{
-+ static const char *tbl[] =
-+ {
-+ "Usage: test_vidputs [options]"
-+ ,""
-+ ,"Options:"
-+ ," -e use stderr (default stdout)"
-+ ," -p use vidputs (default vidattr)"
-+ };
-+ unsigned n;
-+ for (n = 0; n < SIZEOF(tbl); ++n)
-+ fprintf(stderr, "%s\n", tbl[n]);
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
-+int
-+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-+{
-+ int ch;
-+
-+ my_fp = stdout;
-+
-+ while ((ch = getopt(argc, argv, "ep")) != -1) {
-+ switch (ch) {
-+ case 'e':
-+ my_fp = stderr;
-+ break;
-+ case 'p':
-+ p_opt = TRUE;
-+ break;
-+ default:
-+ usage();
-+ break;
-+ }
-+ }
-+ if (optind < argc)
-+ usage();
-+
-+ setupterm((char *) 0, 1, (int *) 0);
-+ test_vidputs();
-+ cleanup();
-+ ExitProgram(EXIT_SUCCESS);
-+}
-+#else
-+int
-+main(int argc GCC_UNUSED,
-+ char *argv[]GCC_UNUSED)
-+{
-+ fprintf(stderr, "This program requires terminfo\n");
-+ exit(EXIT_FAILURE);
-+}
-+#endif
-Index: test/testaddch.c
-Prereq: 1.7
---- ncurses-5.9/test/testaddch.c 2009-08-29 19:02:25.000000000 +0000
-+++ ncurses-5.9-20130504/test/testaddch.c 2013-01-13 01:02:41.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -29,7 +29,7 @@
- * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
- * to demonstrate an inconsistency between ncurses and SVr4 curses.
- *
-- * $Id: testaddch.c,v 1.7 2009/08/29 19:02:25 tom Exp $
-+ * $Id: testaddch.c,v 1.9 2013/01/13 01:02:41 tom Exp $
- */
- #include <test.priv.h>
-
-@@ -63,7 +63,7 @@
- for (i = 0; i < 8; i++) {
- back = (i & 1) ? A_BOLD | 'B' : ' ';
- set = (i & 2) ? A_REVERSE : 0;
-- attr = (i & 4) ? COLOR_PAIR(4) : 0;
-+ attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0);
-
- bkgdset(back);
- (void) attrset(set);
-@@ -72,9 +72,9 @@
- }
- addch('\n');
- for (i = 0; i < 8; i++) {
-- back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' ';
-- set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0;
-- attr = (i & 4) ? COLOR_PAIR(4) : 0;
-+ back = (i & 1) ? (A_BOLD | 'B' | COLOR_PAIR(1)) : ' ';
-+ set = (i & 2) ? (A_REVERSE | COLOR_PAIR(2)) : 0;
-+ attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0);
-
- bkgdset(back);
- (void) attrset(set);
-Index: test/testcurs.c
-Prereq: 1.43
---- ncurses-5.9/test/testcurs.c 2010-11-13 21:02:28.000000000 +0000
-+++ ncurses-5.9-20130504/test/testcurs.c 2013-02-16 20:29:04.000000000 +0000
-@@ -6,7 +6,7 @@
- * wrs(5/28/93) -- modified to be consistent (perform identically) with either
- * PDCurses or under Unix System V, R4
- *
-- * $Id: testcurs.c,v 1.43 2010/11/13 21:02:28 tom Exp $
-+ * $Id: testcurs.c,v 1.47 2013/02/16 20:29:04 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -45,18 +45,6 @@
- };
- #define MAX_OPTIONS (int) SIZEOF(command)
-
--#if !HAVE_STRDUP
--#define strdup my_strdup
--static char *
--strdup(char *s)
--{
-- char *p = typeMalloc(char, strlen(s) + 1);
-- if (p)
-- strcpy(p, s);
-- return (p);
--}
--#endif /* not HAVE_STRDUP */
--
- static int width, height;
-
- int
-@@ -85,7 +73,7 @@
- #ifdef A_COLOR
- if (has_colors()) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
-- wbkgd(win, COLOR_PAIR(1));
-+ wbkgd(win, (chtype) COLOR_PAIR(1));
- } else
- wbkgd(win, A_REVERSE);
- #else
-@@ -353,6 +341,9 @@
- typeahead(-1);
- #endif
-
-+#ifdef NCURSES_MOUSE_VERSION
-+ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-+#endif
- #if defined(PDCURSES)
- mouse_set(ALL_MOUSE_EVENTS);
- #endif
-@@ -367,8 +358,38 @@
- wprintw(win, "Key Pressed: %c", c);
- else
- wprintw(win, "Key Pressed: %s", unctrl(UChar(c)));
--#if defined(PDCURSES)
-+#ifdef KEY_MOUSE
-+#define ButtonChanged(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, 037))
-+#define ButtonPressed(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED))
-+#define ButtonDouble(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED))
-+#define ButtonTriple(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED))
-+#define ButtonRelease(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED))
- if (c == KEY_MOUSE) {
-+ MEVENT event;
-+ int button = 0;
-+
-+ getmouse(&event);
-+ if (ButtonChanged(1))
-+ button = 1;
-+ else if (ButtonChanged(2))
-+ button = 2;
-+ else if (ButtonChanged(3))
-+ button = 3;
-+ else
-+ button = 0;
-+ wmove(win, 4, 18);
-+ wprintw(win, "Button %d: ", button);
-+ if (ButtonPressed(button))
-+ wprintw(win, "pressed: ");
-+ else if (ButtonDouble(button))
-+ wprintw(win, "double: ");
-+ else if (ButtonTriple(button))
-+ wprintw(win, "triple: ");
-+ else
-+ wprintw(win, "released: ");
-+ wprintw(win, " Position: Y: %d X: %d", event.y, event.x);
-+#if defined(NCURSES_MOUSE_VERSION)
-+#elif defined(PDCURSES)
- int button = 0;
- request_mouse_pos();
- if (BUTTON_CHANGED(1))
-@@ -390,8 +411,9 @@
- else
- wprintw(win, "released: ");
- wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS);
-+#endif /* PDCURSES */
- }
--#endif
-+#endif /* KEY_MOUSE */
- wrefresh(win);
- if (c == ' ')
- break;
-@@ -491,7 +513,7 @@
- #ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
-- wbkgd(win1, COLOR_PAIR(3));
-+ wbkgd(win1, (chtype) COLOR_PAIR(3));
- } else
- wbkgd(win1, A_NORMAL);
- #else
-@@ -693,9 +715,11 @@
- raw();
- wgetch(pad);
-
-- spad = subpad(pad, 12, 25, 6, 52);
-- MvWAddStr(spad, 2, 2, "This is a new subpad");
-- box(spad, 0, 0);
-+ if ((spad = subpad(pad, 12, 25, 6, 52)) != 0) {
-+ MvWAddStr(spad, 2, 2, "This is a new subpad");
-+ box(spad, 0, 0);
-+ delwin(spad);
-+ }
- prefresh(pad, 0, 0, 0, 0, 15, 75);
- keypad(pad, TRUE);
- raw();
-Index: test/view.c
-Prereq: 1.81
---- ncurses-5.9/test/view.c 2010-11-14 01:06:02.000000000 +0000
-+++ ncurses-5.9-20130504/test/view.c 2013-04-27 19:46:53.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -50,10 +50,11 @@
- * scroll operation worked, and the refresh() code only had to do a
- * partial repaint.
- *
-- * $Id: view.c,v 1.81 2010/11/14 01:06:02 tom Exp $
-+ * $Id: view.c,v 1.93 2013/04/27 19:46:53 tom Exp $
- */
-
- #include <test.priv.h>
-+#include <widechars.h>
-
- #include <time.h>
-
-@@ -81,24 +82,10 @@
- #include <sys/ptem.h>
- #endif
-
--#if USE_WIDEC_SUPPORT
--#if HAVE_MBTOWC && HAVE_MBLEN
--#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0))
--#define count_mbytes(buffer,length,state) mblen(buffer,length)
--#define check_mbytes(wch,buffer,length,state) \
-- (int) mbtowc(&wch, buffer, length)
--#define state_unused
--#elif HAVE_MBRTOWC && HAVE_MBRLEN
--#define reset_mbytes(state) init_mb(state)
--#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
--#define check_mbytes(wch,buffer,length,state) \
-- (int) mbrtowc(&wch, buffer, length, &state)
--#else
--make an error
--#endif
--#endif /* USE_WIDEC_SUPPORT */
-+#undef CTRL
-+#define CTRL(x) ((x) & 0x1f)
-
--static RETSIGTYPE finish(int sig) GCC_NORETURN;
-+static void finish(int sig) GCC_NORETURN;
- static void show_all(const char *tag);
-
- #if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZE_TERM
-@@ -108,11 +95,11 @@
- #endif
-
- #if CAN_RESIZE
--static RETSIGTYPE adjust(int sig);
-+static void adjust(int sig);
- static int interrupted;
-+static bool waiting = FALSE;
- #endif
-
--static bool waiting = FALSE;
- static int shift = 0;
- static bool try_color = FALSE;
-
-@@ -121,6 +108,8 @@
- static NCURSES_CH_T **lptr;
- static int num_lines;
-
-+static void usage(void) GCC_NORETURN;
-+
- static void
- usage(void)
- {
-@@ -135,6 +124,7 @@
- #if defined(KEY_RESIZE)
- ," -r use old-style sigwinch handler rather than KEY_RESIZE"
- #endif
-+ ," -s start in single-step mode, waiting for input"
- #ifdef TRACE
- ," -t trace screen updates"
- ," -T NUM specify trace mask"
-@@ -180,7 +170,7 @@
- {
- unsigned len = (unsigned) strlen(src);
- NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1);
-- unsigned j, k;
-+ size_t j, k;
- #if USE_WIDEC_SUPPORT
- wchar_t wstr[CCHARW_MAX + 1];
- wchar_t wch;
-@@ -243,6 +233,7 @@
- int value = 0;
- bool done = FALSE;
- bool got_number = FALSE;
-+ bool single_step = FALSE;
- #if CAN_RESIZE
- bool nonposix_resize = FALSE;
- #endif
-@@ -258,7 +249,7 @@
- (void) signal(SIGINT, finish); /* arrange interrupts to terminate */
- #endif
-
-- while ((i = getopt(argc, argv, "cin:rtT:")) != -1) {
-+ while ((i = getopt(argc, argv, "cin:rstT:")) != -1) {
- switch (i) {
- case 'c':
- try_color = TRUE;
-@@ -276,9 +267,18 @@
- nonposix_resize = TRUE;
- break;
- #endif
-+ case 's':
-+ single_step = TRUE;
-+ break;
- #ifdef TRACE
- case 'T':
-- trace((unsigned) atoi(optarg));
-+ {
-+ char *next = 0;
-+ int tvalue = (int) strtol(optarg, &next, 0);
-+ if (tvalue < 0 || (next != 0 && *next != 0))
-+ usage();
-+ trace((unsigned) tvalue);
-+ }
- break;
- case 't':
- trace(TRACE_CALLS);
-@@ -306,7 +306,7 @@
- (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */
- #endif
-
-- /* slurp the file */
-+ Trace(("slurp the file"));
- for (lptr = &vec_lines[0]; (lptr - vec_lines) < MAXLINES; lptr++) {
- char temp[BUFSIZ], *s, *d;
- int col;
-@@ -314,8 +314,26 @@
- if (fgets(buf, sizeof(buf), fp) == 0)
- break;
-
-- /* convert tabs so that shift will work properly */
-+#if USE_WIDEC_SUPPORT
-+ if (lptr == vec_lines) {
-+ if (!memcmp("", buf, 3)) {
-+ Trace(("trim BOM"));
-+ s = buf + 3;
-+ d = buf;
-+ do {
-+ } while ((*d++ = *s++) != '\0');
-+ }
-+ }
-+#endif
-+
-+ /* convert tabs and nonprinting chars so that shift will work properly */
- for (s = buf, d = temp, col = 0; (*d = *s) != '\0'; s++) {
-+ if (*d == '\r') {
-+ if (s[1] == '\n')
-+ continue;
-+ else
-+ break;
-+ }
- if (*d == '\n') {
- *d = '\0';
- break;
-@@ -347,14 +365,15 @@
- (void) nonl(); /* tell curses not to do NL->CR/NL on output */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-- nodelay(stdscr, TRUE);
-+ if (!single_step)
-+ nodelay(stdscr, TRUE);
- idlok(stdscr, TRUE); /* allow use of insert/delete line */
-
- if (try_color) {
- if (has_colors()) {
- start_color();
- init_pair(my_pair, COLOR_WHITE, COLOR_BLUE);
-- bkgd(COLOR_PAIR(my_pair));
-+ bkgd((chtype) COLOR_PAIR(my_pair));
- } else {
- try_color = FALSE;
- }
-@@ -373,10 +392,12 @@
- adjust(0);
- my_label = "interrupt";
- }
--#endif
- waiting = TRUE;
- c = getch();
- waiting = FALSE;
-+#else
-+ c = getch();
-+#endif
- if ((c < 127) && isdigit(c)) {
- if (!got_number) {
- MvPrintw(0, 0, "Count: ");
-@@ -466,6 +487,9 @@
- nodelay(stdscr, TRUE);
- my_delay = 0;
- break;
-+ case CTRL('L'):
-+ redrawwin(stdscr);
-+ break;
- case ERR:
- if (!my_delay)
- napms(50);
-@@ -483,7 +507,7 @@
- finish(0); /* we're done */
- }
-
--static RETSIGTYPE
-+static void
- finish(int sig)
- {
- endwin();
-@@ -510,7 +534,7 @@
- * The 'wrefresh(curscr)' is needed to force the refresh to start from the top
- * of the screen -- some xterms mangle the bitmap while resizing.
- */
--static RETSIGTYPE
-+static void
- adjust(int sig)
- {
- if (waiting || sig == 0) {
-@@ -553,7 +577,7 @@
- printw("%.*s", COLS, temp);
- clrtoeol();
- this_time = time((time_t *) 0);
-- strcpy(temp, ctime(&this_time));
-+ strncpy(temp, ctime(&this_time), 30);
- if ((i = (int) strlen(temp)) != 0) {
- temp[--i] = 0;
- if (move(0, COLS - i - 2) != ERR)
-Index: test/widechars.h
---- /dev/null 2013-05-05 10:34:48.558701642 +0000
-+++ ncurses-5.9-20130504/test/widechars.h 2012-12-01 20:45:54.000000000 +0000
-@@ -0,0 +1,71 @@
-+/****************************************************************************
-+ * Copyright (c) 2012 Free Software Foundation, Inc. *
-+ * *
-+ * Permission is hereby granted, free of charge, to any person obtaining a *
-+ * copy of this software and associated documentation files (the *
-+ * "Software"), to deal in the Software without restriction, including *
-+ * without limitation the rights to use, copy, modify, merge, publish, *
-+ * distribute, distribute with modifications, sublicense, and/or sell *
-+ * copies of the Software, and to permit persons to whom the Software is *
-+ * furnished to do so, subject to the following conditions: *
-+ * *
-+ * The above copyright notice and this permission notice shall be included *
-+ * in all copies or substantial portions of the Software. *
-+ * *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-+ * *
-+ * Except as contained in this notice, the name(s) of the above copyright *
-+ * holders shall not be used in advertising or otherwise to promote the *
-+ * sale, use or other dealings in this Software without prior written *
-+ * authorization. *
-+ ****************************************************************************/
-+
-+#ifndef __WIDECHARS_H
-+#define __WIDECHARS_H 1
-+
-+#include <test.priv.h>
-+
-+#if USE_WIDEC_SUPPORT
-+
-+#if defined(__MINGW32__)
-+/*
-+ * MinGW has wide-character functions, but they do not work correctly.
-+ */
-+
-+extern int _nc_mbtowc(wchar_t *pwc, const char *s, size_t n);
-+extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *pwc, const char *s, size_t n);
-+#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n)
-+
-+extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t);
-+#define mblen(s,n) _nc_mblen(s, n)
-+
-+#endif /* __MINGW32__ */
-+
-+#if HAVE_MBTOWC && HAVE_MBLEN
-+#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0))
-+#define count_mbytes(buffer,length,state) mblen(buffer,length)
-+#define check_mbytes(wch,buffer,length,state) \
-+ (int) mbtowc(&wch, buffer, length)
-+#define state_unused
-+#elif HAVE_MBRTOWC && HAVE_MBRLEN
-+#define reset_mbytes(state) init_mb(state)
-+#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
-+#define check_mbytes(wch,buffer,length,state) \
-+ (int) mbrtowc(&wch, buffer, length, &state)
-+#else
-+make an error
-+#endif
-+
-+#else
-+
-+#endif /* USE_WIDEC_SUPPORT */
-+
-+extern void widechars_stub(void);
-+
-+#endif /* __WIDECHARS_H */
-Index: test/worm.c
-Prereq: 1.60
---- ncurses-5.9/test/worm.c 2010-11-13 20:21:21.000000000 +0000
-+++ ncurses-5.9-20130504/test/worm.c 2013-04-27 19:50:17.000000000 +0000
-@@ -1,5 +1,5 @@
- /****************************************************************************
-- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
-@@ -61,7 +61,7 @@
- traces will be dumped. The program stops and waits for one character of
- input at the beginning and end of the interval.
-
-- $Id: worm.c,v 1.60 2010/11/13 20:21:21 tom Exp $
-+ $Id: worm.c,v 1.64 2013/04/27 19:50:17 tom Exp $
- */
-
- #include <test.priv.h>
-@@ -202,6 +202,14 @@
- /* *INDENT-ON* */
-
- static void
-+failed(const char *s)
-+{
-+ perror(s);
-+ endwin();
-+ ExitProgram(EXIT_FAILURE);
-+}
-+
-+static void
- cleanup(void)
- {
- USING_WINDOW(stdscr, wrefresh);
-@@ -209,7 +217,7 @@
- endwin();
- }
-
--static RETSIGTYPE
-+static void
- onsig(int sig GCC_UNUSED)
- {
- cleanup();
-@@ -391,6 +399,8 @@
- if (last_x != COLS - 1) {
- for (y = 0; y <= last_y; y++) {
- refs[y] = typeRealloc(int, (size_t) COLS, refs[y]);
-+ if (!refs[y])
-+ failed("update_refs");
- for (x = last_x + 1; x < COLS; x++)
- refs[y][x] = 0;
- }
-@@ -402,6 +412,8 @@
- refs = typeRealloc(int *, (size_t) LINES, refs);
- for (y = last_y + 1; y < LINES; y++) {
- refs[y] = typeMalloc(int, (size_t) COLS);
-+ if (!refs[y])
-+ failed("update_refs");
- for (x = 0; x < COLS; x++)
- refs[y][x] = 0;
- }
-@@ -419,6 +431,7 @@
- struct worm *w;
- int *ip;
- bool done = FALSE;
-+ int max_refs;
-
- setlocale(LC_ALL, "");
-
-@@ -489,7 +502,7 @@
-
- #define SET_COLOR(num, fg) \
- init_pair(num+1, (short) fg, (short) bg); \
-- flavor[num] |= COLOR_PAIR(num+1) | A_BOLD
-+ flavor[num] |= (chtype) COLOR_PAIR(num+1) | A_BOLD
-
- SET_COLOR(0, COLOR_GREEN);
- SET_COLOR(1, COLOR_RED);
-@@ -501,8 +514,9 @@
- }
- #endif /* A_COLOR */
-
-- refs = typeMalloc(int *, (size_t) LINES);
-- for (y = 0; y < LINES; y++) {
-+ max_refs = LINES;
-+ refs = typeMalloc(int *, (size_t) max_refs);
-+ for (y = 0; y < max_refs; y++) {
- refs[y] = typeMalloc(int, (size_t) COLS);
- for (x = 0; x < COLS; x++) {
- refs[y][x] = 0;
-@@ -596,7 +610,7 @@
- Trace(("Cleanup"));
- cleanup();
- #ifdef NO_LEAKS
-- for (y = 0; y < LINES; y++) {
-+ for (y = 0; y < max_refs; y++) {
- free(refs[y]);
- }
- free(refs);
-Index: test/xmas.c
-Prereq: 1.27
---- ncurses-5.9/test/xmas.c 2010-11-13 20:24:10.000000000 +0000
-+++ ncurses-5.9-20130504/test/xmas.c 2013-04-27 19:46:53.000000000 +0000
-@@ -92,7 +92,7 @@
- /******************************************************************************/
-
- /*
-- * $Id: xmas.c,v 1.27 2010/11/13 20:24:10 tom Exp $
-+ * $Id: xmas.c,v 1.28 2013/04/27 19:46:53 tom Exp $
- */
- #include <test.priv.h>
-
-@@ -148,7 +148,7 @@
- static int reindeer(void);
- static int blinkit(void);
-
--static RETSIGTYPE done(int sig) GCC_NORETURN;
-+static void done(int sig) GCC_NORETURN;
-
- static void
- set_color(WINDOW *win, chtype color)
-@@ -1143,7 +1143,7 @@
- return (0);
- }
-
--static RETSIGTYPE
-+static void
- done(int sig GCC_UNUSED)
- {
- CATCHALL(done);
diff --git a/source/l/ncurses/ncurses-5.9-20141206-patch.sh b/source/l/ncurses/ncurses-5.9-20141206-patch.sh
new file mode 100644
index 000000000..0a513594c
--- /dev/null
+++ b/source/l/ncurses/ncurses-5.9-20141206-patch.sh
@@ -0,0 +1,235455 @@
+#!/bin/sh
+# Use this script to patch ncurses 5.9 to 5.9 (20141206)
+# Run this script inside the ncurses 5.9 source directory et voila! Updated.
+
+if ( egrep '^NCURSES_MAJOR = 5$' dist.mk >/dev/null 2>&1 \
+ && egrep '^NCURSES_MINOR = 9$' dist.mk >/dev/null 2>&1 \
+ && egrep '^NCURSES_PATCH = 20110404$' dist.mk >/dev/null 2>&1 )
+then
+ echo patching...
+ rm -f mk-dlls.sh.in
+ rm -f ncurses/base/memmove.c
+ rm -f ncurses/tinfo/setbuf.c
+ rm -f ncurses/tty/tty_display.h
+ rm -f ncurses/tty/tty_input.h
+else
+ echo 'This does not look like ncurses 5.9'
+ exit 1
+fi
+
+
+patch -p1 -i $0 # shell command = this script = inputfile for patch
+exit
+
+# patch by Thomas E. Dickey <dickey@invisible-island.net>
+# created Sun Dec 7 14:00:27 UTC 2014
+# ------------------------------------------------------------------------------
+# Ada95/aclocal.m4 | 1337
+# Ada95/configure | 5102 -
+# Ada95/configure.in | 133
+# Ada95/doc/Makefile.in | 3
+# Ada95/gen/Makefile.in | 147
+# Ada95/gen/adacurses-config.in | 14
+# Ada95/gen/gen.c | 1900
+# Ada95/gen/terminal_interface-curses-aux.ads.m4 | 73
+# Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 | 9
+# Ada95/gen/terminal_interface-curses-forms.ads.m4 | 69
+# Ada95/gen/terminal_interface-curses-menus.ads.m4 | 54
+# Ada95/gen/terminal_interface-curses-mouse.ads.m4 | 44
+# Ada95/gen/terminal_interface-curses-panels.ads.m4 | 10
+# Ada95/gen/terminal_interface-curses-trace.ads.m4 | 54
+# Ada95/gen/terminal_interface-curses.adb.m4 | 281
+# Ada95/gen/terminal_interface-curses.ads.m4 | 507
+# Ada95/include/ncurses_defs | 7
+# Ada95/make-tar.sh | 13
+# Ada95/package/AdaCurses.spec | 6
+# Ada95/package/debian/source/format | 2
+# Ada95/samples/Makefile.in | 7
+# Ada95/samples/ncurses2-demo_forms.adb | 11
+# Ada95/samples/ncurses2-demo_pad.adb | 12
+# Ada95/samples/ncurses2-getch_test.adb | 12
+# Ada95/samples/ncurses2-overlap_test.adb | 11
+# Ada95/samples/ncurses2-trace_set.adb | 51
+# Ada95/samples/ncurses2-util.adb | 11
+# Ada95/samples/sample-explanation.adb | 12
+# Ada95/samples/sample-header_handler.adb | 13
+# Ada95/src/Makefile.in | 42
+# Ada95/src/c_varargs_to_ada.c | 6
+# Ada95/src/library.gpr | 4
+# Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb | 14
+# Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb | 14
+# Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb | 19
+# Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb | 18
+# Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb | 14
+# Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb | 18
+# Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb | 17
+# Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb | 18
+# Ada95/src/terminal_interface-curses-forms-field_types-user.adb | 19
+# Ada95/src/terminal_interface-curses-forms-field_types.adb | 56
+# Ada95/src/terminal_interface-curses-forms-field_user_data.adb | 11
+# Ada95/src/terminal_interface-curses-forms-form_user_data.adb | 11
+# Ada95/src/terminal_interface-curses-forms.adb | 352
+# Ada95/src/terminal_interface-curses-menus-item_user_data.adb | 11
+# Ada95/src/terminal_interface-curses-menus-menu_user_data.adb | 12
+# Ada95/src/terminal_interface-curses-menus.adb | 346
+# Ada95/src/terminal_interface-curses-mouse.adb | 9
+# Ada95/src/terminal_interface-curses-text_io.adb | 8
+# Ada95/src/terminal_interface-curses-trace.adb_p | 37
+# INSTALL | 205
+# MANIFEST | 67
+# Makefile.in | 30
+# NEWS | 1879
+# README | 17
+# README.MinGW | 95
+# aclocal.m4 | 2058
+# announce.html.in | 160
+# c++/Makefile.in | 121
+# c++/cursesapp.h | 21
+# c++/cursesf.cc | 12
+# c++/cursesf.h | 26
+# c++/cursesm.cc | 10
+# c++/cursesm.h | 23
+# c++/cursesmain.cc | 6
+# c++/cursesp.h | 15
+# c++/cursespad.cc | 56
+# c++/cursesw.cc | 23
+# c++/cursesw.h | 41
+# c++/cursslk.cc | 9
+# c++/demo.cc | 9
+# c++/etip.h.in | 18
+# c++/internal.h | 6
+# c++/modules | 21
+# config.guess | 508
+# config.sub | 228
+# configure | 9647 +-
+# configure.in | 753
+# dist.mk | 37
+# doc/html/Ada95.html | 471
+# doc/html/NCURSES-Programming-HOWTO.html |13472 ++--
+# doc/html/ada/files.htm | 16
+# doc/html/ada/files/T.htm | 7
+# doc/html/ada/funcs.htm | 16
+# doc/html/ada/funcs/A.htm | 39
+# doc/html/ada/funcs/B.htm | 32
+# doc/html/ada/funcs/C.htm | 87
+# doc/html/ada/funcs/D.htm | 80
+# doc/html/ada/funcs/E.htm | 26
+# doc/html/ada/funcs/F.htm | 98
+# doc/html/ada/funcs/G.htm | 128
+# doc/html/ada/funcs/H.htm | 32
+# doc/html/ada/funcs/I.htm | 88
+# doc/html/ada/funcs/K.htm | 18
+# doc/html/ada/funcs/L.htm | 25
+# doc/html/ada/funcs/M.htm | 84
+# doc/html/ada/funcs/N.htm | 52
+# doc/html/ada/funcs/O.htm | 14
+# doc/html/ada/funcs/P.htm | 50
+# doc/html/ada/funcs/Q.htm | 8
+# doc/html/ada/funcs/R.htm | 64
+# doc/html/ada/funcs/S.htm | 304
+# doc/html/ada/funcs/T.htm | 37
+# doc/html/ada/funcs/U.htm | 34
+# doc/html/ada/funcs/V.htm | 12
+# doc/html/ada/funcs/W.htm | 88
+# doc/html/ada/index.htm | 5
+# doc/html/ada/main.htm | 17
+# doc/html/ada/terminal_interface-curses-aux__adb.htm | 186
+# doc/html/ada/terminal_interface-curses-aux__ads.htm | 255
+# doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm | 122
+# doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm | 112
+# doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm | 122
+# doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm | 112
+# doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm | 126
+# doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm | 122
+# doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm | 157
+# doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm | 164
+# doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm | 130
+# doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm | 116
+# doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm | 122
+# doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm | 110
+# doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm | 134
+# doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm | 116
+# doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm | 127
+# doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm | 114
+# doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm | 174
+# doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm | 170
+# doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm | 207
+# doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm | 182
+# doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm | 401
+# doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm | 465
+# doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm | 151
+# doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm | 144
+# doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm | 157
+# doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm | 144
+# doc/html/ada/terminal_interface-curses-forms__adb.htm | 1648
+# doc/html/ada/terminal_interface-curses-forms__ads.htm | 1447
+# doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm | 131
+# doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm | 154
+# doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm | 130
+# doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm | 144
+# doc/html/ada/terminal_interface-curses-menus__adb.htm | 1286
+# doc/html/ada/terminal_interface-curses-menus__ads.htm | 1276
+# doc/html/ada/terminal_interface-curses-mouse__adb.htm | 312
+# doc/html/ada/terminal_interface-curses-mouse__ads.htm | 406
+# doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm | 134
+# doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm | 144
+# doc/html/ada/terminal_interface-curses-panels__adb.htm | 230
+# doc/html/ada/terminal_interface-curses-panels__ads.htm | 283
+# doc/html/ada/terminal_interface-curses-putwin__adb.htm | 136
+# doc/html/ada/terminal_interface-curses-putwin__ads.htm | 106
+# doc/html/ada/terminal_interface-curses-termcap__adb.htm | 214
+# doc/html/ada/terminal_interface-curses-termcap__ads.htm | 170
+# doc/html/ada/terminal_interface-curses-terminfo__adb.htm | 204
+# doc/html/ada/terminal_interface-curses-terminfo__ads.htm | 166
+# doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm | 158
+# doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm | 124
+# doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm | 124
+# doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm | 126
+# doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm | 132
+# doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm | 136
+# doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm | 128
+# doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm | 128
+# doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm | 132
+# doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm | 136
+# doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm | 132
+# doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm | 136
+# doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm | 126
+# doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm | 128
+# doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm | 126
+# doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm | 128
+# doc/html/ada/terminal_interface-curses-text_io__adb.htm | 340
+# doc/html/ada/terminal_interface-curses-text_io__ads.htm | 230
+# doc/html/ada/terminal_interface-curses-trace__adb.htm | 114
+# doc/html/ada/terminal_interface-curses-trace__ads.htm | 224
+# doc/html/ada/terminal_interface-curses__adb.htm | 3513 -
+# doc/html/ada/terminal_interface-curses__ads.htm | 3911 -
+# doc/html/ada/terminal_interface__ads.htm | 108
+# doc/html/announce.html | 4
+# doc/html/hackguide.html | 6
+# doc/html/index.html | 6
+# doc/html/man/adacurses-config.1.html | 62
+# doc/html/man/captoinfo.1m.html | 13
+# doc/html/man/clear.1.html | 16
+# doc/html/man/curs_add_wch.3x.html | 32
+# doc/html/man/curs_add_wchstr.3x.html | 81
+# doc/html/man/curs_addch.3x.html | 51
+# doc/html/man/curs_addchstr.3x.html | 69
+# doc/html/man/curs_addstr.3x.html | 49
+# doc/html/man/curs_addwstr.3x.html | 56
+# doc/html/man/curs_attr.3x.html | 90
+# doc/html/man/curs_beep.3x.html | 2
+# doc/html/man/curs_bkgd.3x.html | 2
+# doc/html/man/curs_bkgrnd.3x.html | 8
+# doc/html/man/curs_border.3x.html | 2
+# doc/html/man/curs_border_set.3x.html | 8
+# doc/html/man/curs_clear.3x.html | 2
+# doc/html/man/curs_color.3x.html | 2
+# doc/html/man/curs_delch.3x.html | 2
+# doc/html/man/curs_deleteln.3x.html | 2
+# doc/html/man/curs_extend.3x.html | 2
+# doc/html/man/curs_get_wch.3x.html | 8
+# doc/html/man/curs_get_wstr.3x.html | 8
+# doc/html/man/curs_getcchar.3x.html | 10
+# doc/html/man/curs_getch.3x.html | 56
+# doc/html/man/curs_getstr.3x.html | 2
+# doc/html/man/curs_getyx.3x.html | 2
+# doc/html/man/curs_in_wch.3x.html | 2
+# doc/html/man/curs_in_wchstr.3x.html | 8
+# doc/html/man/curs_inch.3x.html | 2
+# doc/html/man/curs_inchstr.3x.html | 2
+# doc/html/man/curs_initscr.3x.html | 79
+# doc/html/man/curs_inopts.3x.html | 60
+# doc/html/man/curs_ins_wch.3x.html | 2
+# doc/html/man/curs_ins_wstr.3x.html | 8
+# doc/html/man/curs_insch.3x.html | 2
+# doc/html/man/curs_insstr.3x.html | 2
+# doc/html/man/curs_instr.3x.html | 2
+# doc/html/man/curs_inwstr.3x.html | 8
+# doc/html/man/curs_kernel.3x.html | 2
+# doc/html/man/curs_legacy.3x.html | 2
+# doc/html/man/curs_memleaks.3x.html | 2
+# doc/html/man/curs_mouse.3x.html | 19
+# doc/html/man/curs_move.3x.html | 2
+# doc/html/man/curs_opaque.3x.html | 12
+# doc/html/man/curs_outopts.3x.html | 2
+# doc/html/man/curs_overlay.3x.html | 8
+# doc/html/man/curs_pad.3x.html | 2
+# doc/html/man/curs_print.3x.html | 2
+# doc/html/man/curs_printw.3x.html | 8
+# doc/html/man/curs_refresh.3x.html | 2
+# doc/html/man/curs_scanw.3x.html | 8
+# doc/html/man/curs_scr_dump.3x.html | 4
+# doc/html/man/curs_scroll.3x.html | 2
+# doc/html/man/curs_slk.3x.html | 2
+# doc/html/man/curs_sp_funcs.3x.html | 62
+# doc/html/man/curs_termattrs.3x.html | 12
+# doc/html/man/curs_termcap.3x.html | 133
+# doc/html/man/curs_terminfo.3x.html | 309
+# doc/html/man/curs_threads.3x.html | 13
+# doc/html/man/curs_touch.3x.html | 2
+# doc/html/man/curs_trace.3x.html | 2
+# doc/html/man/curs_util.3x.html | 166
+# doc/html/man/curs_variables.3x.html | 20
+# doc/html/man/curs_window.3x.html | 111
+# doc/html/man/default_colors.3x.html | 4
+# doc/html/man/define_key.3x.html | 2
+# doc/html/man/form.3x.html | 25
+# doc/html/man/form_cursor.3x.html | 2
+# doc/html/man/form_data.3x.html | 2
+# doc/html/man/form_driver.3x.html | 4
+# doc/html/man/form_field.3x.html | 8
+# doc/html/man/form_field_attributes.3x.html | 2
+# doc/html/man/form_field_buffer.3x.html | 6
+# doc/html/man/form_field_info.3x.html | 2
+# doc/html/man/form_field_just.3x.html | 2
+# doc/html/man/form_field_new.3x.html | 2
+# doc/html/man/form_field_opts.3x.html | 64
+# doc/html/man/form_field_userptr.3x.html | 2
+# doc/html/man/form_field_validation.3x.html | 2
+# doc/html/man/form_fieldtype.3x.html | 6
+# doc/html/man/form_hook.3x.html | 2
+# doc/html/man/form_new.3x.html | 2
+# doc/html/man/form_new_page.3x.html | 2
+# doc/html/man/form_opts.3x.html | 2
+# doc/html/man/form_page.3x.html | 2
+# doc/html/man/form_post.3x.html | 2
+# doc/html/man/form_requestname.3x.html | 2
+# doc/html/man/form_userptr.3x.html | 2
+# doc/html/man/form_variables.3x.html | 8
+# doc/html/man/form_win.3x.html | 2
+# doc/html/man/index.html | 121
+# doc/html/man/infocmp.1m.html | 290
+# doc/html/man/infotocap.1m.html | 8
+# doc/html/man/key_defined.3x.html | 2
+# doc/html/man/keybound.3x.html | 2
+# doc/html/man/keyok.3x.html | 2
+# doc/html/man/legacy_coding.3x.html | 2
+# doc/html/man/menu.3x.html | 25
+# doc/html/man/menu_attributes.3x.html | 2
+# doc/html/man/menu_cursor.3x.html | 2
+# doc/html/man/menu_driver.3x.html | 50
+# doc/html/man/menu_format.3x.html | 2
+# doc/html/man/menu_hook.3x.html | 2
+# doc/html/man/menu_items.3x.html | 8
+# doc/html/man/menu_mark.3x.html | 2
+# doc/html/man/menu_new.3x.html | 2
+# doc/html/man/menu_opts.3x.html | 2
+# doc/html/man/menu_pattern.3x.html | 2
+# doc/html/man/menu_post.3x.html | 2
+# doc/html/man/menu_requestname.3x.html | 2
+# doc/html/man/menu_spacing.3x.html | 2
+# doc/html/man/menu_userptr.3x.html | 2
+# doc/html/man/menu_win.3x.html | 2
+# doc/html/man/mitem_current.3x.html | 2
+# doc/html/man/mitem_name.3x.html | 2
+# doc/html/man/mitem_new.3x.html | 2
+# doc/html/man/mitem_opts.3x.html | 2
+# doc/html/man/mitem_userptr.3x.html | 2
+# doc/html/man/mitem_value.3x.html | 2
+# doc/html/man/mitem_visible.3x.html | 2
+# doc/html/man/ncurses.3x.html | 663
+# doc/html/man/ncurses5-config.1.html | 9
+# doc/html/man/panel.3x.html | 42
+# doc/html/man/resizeterm.3x.html | 57
+# doc/html/man/tabs.1.html | 44
+# doc/html/man/term.5.html | 2
+# doc/html/man/term.7.html | 12
+# doc/html/man/term_variables.3x.html | 20
+# doc/html/man/terminfo.5.html | 1481
+# doc/html/man/tic.1m.html | 334
+# doc/html/man/toe.1m.html | 18
+# doc/html/man/tput.1.html | 136
+# doc/html/man/tset.1.html | 70
+# doc/html/man/wresize.3x.html | 2
+# doc/html/ncurses-intro.html | 7
+# doc/ncurses-intro.doc | 1
+# form/Makefile.in | 17
+# form/fld_arg.c | 6
+# form/fld_def.c | 29
+# form/fld_dup.c | 8
+# form/fld_ftchoice.c | 6
+# form/fld_ftlink.c | 10
+# form/fld_just.c | 6
+# form/fld_link.c | 8
+# form/fld_max.c | 10
+# form/fld_move.c | 8
+# form/fld_page.c | 8
+# form/fld_stat.c | 8
+# form/form.h | 12
+# form/form.priv.h | 29
+# form/frm_data.c | 6
+# form/frm_def.c | 24
+# form/frm_driver.c | 500
+# form/frm_hook.c | 6
+# form/frm_opts.c | 18
+# form/frm_page.c | 6
+# form/frm_post.c | 8
+# form/frm_req_name.c | 21
+# form/fty_generic.c | 6
+# form/fty_int.c | 7
+# form/fty_num.c | 7
+# form/fty_regex.c | 14
+# form/llib-lformtw | 11
+# form/llib-lformw | 11
+# include/Caps | 18
+# include/Caps.aix4 | 18
+# include/Caps.hpux11 | 18
+# include/Caps.keys | 26
+# include/Caps.osf1r5 | 6
+# include/MKkey_defs.sh | 9
+# include/MKparametrized.sh | 15
+# include/MKterm.h.awk.in | 46
+# include/Makefile.in | 7
+# include/curses.h.in | 303
+# include/curses.tail | 4
+# include/curses.wide | 152
+# include/hashed_db.h | 4
+# include/headers | 18
+# include/nc_alloc.h | 14
+# include/nc_tparm.h | 8
+# include/ncurses_defs | 27
+# include/ncurses_dll.h.in | 20
+# include/ncurses_mingw.h | 138
+# include/term_entry.h | 68
+# include/tic.h | 35
+# man/MKada_config.in | 69
+# man/Makefile.in | 8
+# man/clear.1 | 11
+# man/curs_add_wch.3x | 6
+# man/curs_add_wchstr.3x | 64
+# man/curs_addch.3x | 27
+# man/curs_addchstr.3x | 50
+# man/curs_addstr.3x | 38
+# man/curs_addwstr.3x | 35
+# man/curs_attr.3x | 59
+# man/curs_bkgrnd.3x | 6
+# man/curs_border_set.3x | 6
+# man/curs_color.3x | 180
+# man/curs_get_wch.3x | 6
+# man/curs_get_wstr.3x | 6
+# man/curs_getcchar.3x | 6
+# man/curs_getch.3x | 30
+# man/curs_in_wchstr.3x | 6
+# man/curs_initscr.3x | 112
+# man/curs_inopts.3x | 63
+# man/curs_ins_wstr.3x | 6
+# man/curs_inwstr.3x | 6
+# man/curs_mouse.3x | 33
+# man/curs_opaque.3x | 18
+# man/curs_overlay.3x | 26
+# man/curs_sp_funcs.3x | 6
+# man/curs_termcap.3x | 61
+# man/curs_terminfo.3x | 207
+# man/curs_threads.3x | 9
+# man/curs_util.3x | 112
+# man/curs_variables.3x | 9
+# man/curs_window.3x | 109
+# man/form.3x | 10
+# man/form_field.3x | 6
+# man/form_field_opts.3x | 49
+# man/form_variables.3x | 6
+# man/infocmp.1m | 178
+# man/menu.3x | 10
+# man/menu_items.3x | 6
+# man/ncurses.3x | 198
+# man/resizeterm.3x | 16
+# man/tabs.1 | 24
+# man/term.7 | 6
+# man/term_variables.3x | 14
+# man/terminfo.head | 15
+# man/terminfo.tail | 404
+# man/tic.1m | 225
+# man/toe.1m | 21
+# man/tput.1 | 35
+# man/tset.1 | 103
+# menu/Makefile.in | 17
+# menu/m_attribs.c | 6
+# menu/m_driver.c | 12
+# menu/m_format.c | 20
+# menu/m_global.c | 42
+# menu/m_hook.c | 6
+# menu/m_item_new.c | 21
+# menu/m_pad.c | 6
+# menu/m_post.c | 40
+# menu/m_req_name.c | 19
+# menu/m_spacing.c | 10
+# menu/menu.priv.h | 27
+# menu/mf_common.h | 18
+# misc/Makefile.in | 17
+# misc/gen-pkgconfig.in | 88
+# misc/gen_edit.sh | 72
+# misc/ncurses-config.in | 49
+# misc/run_tic.in | 7
+# misc/terminfo.src |32219 +++++-----
+# mk-0th.awk | 91
+# mk-1st.awk | 122
+# mk-hdr.awk | 16
+# ncurses-5.9-20141206/Ada95/src/c_threaded_variables.c | 56
+# ncurses-5.9-20141206/Ada95/src/c_threaded_variables.h | 46
+# ncurses-5.9-20141206/COPYING | 28
+# ncurses-5.9-20141206/VERSION | 1
+# ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses_constants__ads.htm | 405
+# ncurses-5.9-20141206/include/nc_string.h | 77
+# ncurses-5.9-20141206/include/nc_termios.h | 161
+# ncurses-5.9-20141206/man/manhtml.aliases | 16
+# ncurses-5.9-20141206/man/manhtml.externs | 24
+# ncurses-5.9-20141206/ncurses/llib-ltic | 212
+# ncurses-5.9-20141206/ncurses/llib-ltict | 212
+# ncurses-5.9-20141206/ncurses/llib-ltictw | 212
+# ncurses-5.9-20141206/ncurses/llib-lticw | 212
+# ncurses-5.9-20141206/ncurses/llib-ltinfo | 1526
+# ncurses-5.9-20141206/ncurses/llib-ltinfot | 1635
+# ncurses-5.9-20141206/ncurses/llib-ltinfotw | 1668
+# ncurses-5.9-20141206/ncurses/llib-ltinfow | 1559
+# ncurses-5.9-20141206/ncurses/tinfo/obsolete.c | 239
+# ncurses-5.9-20141206/ncurses/widechar/widechars.c | 152
+# ncurses-5.9-20141206/package/debian-mingw/changelog | 11
+# ncurses-5.9-20141206/package/debian-mingw/compat | 1
+# ncurses-5.9-20141206/package/debian-mingw/control | 16
+# ncurses-5.9-20141206/package/debian-mingw/copyright | 112
+# ncurses-5.9-20141206/package/debian-mingw/rules | 140
+# ncurses-5.9-20141206/package/debian-mingw/source/format | 1
+# ncurses-5.9-20141206/package/debian-mingw/watch | 4
+# ncurses-5.9-20141206/package/debian-mingw64/changelog | 11
+# ncurses-5.9-20141206/package/debian-mingw64/compat | 1
+# ncurses-5.9-20141206/package/debian-mingw64/control | 16
+# ncurses-5.9-20141206/package/debian-mingw64/copyright | 112
+# ncurses-5.9-20141206/package/debian-mingw64/rules | 140
+# ncurses-5.9-20141206/package/debian-mingw64/source/format | 1
+# ncurses-5.9-20141206/package/debian-mingw64/watch | 4
+# ncurses-5.9-20141206/package/debian/changelog | 11
+# ncurses-5.9-20141206/package/debian/compat | 1
+# ncurses-5.9-20141206/package/debian/control | 16
+# ncurses-5.9-20141206/package/debian/copyright | 112
+# ncurses-5.9-20141206/package/debian/rules | 126
+# ncurses-5.9-20141206/package/debian/source/format | 1
+# ncurses-5.9-20141206/package/debian/watch | 4
+# ncurses-5.9-20141206/package/mingw-ncurses.nsi | 190
+# ncurses-5.9-20141206/package/mingw-ncurses.spec | 143
+# ncurses-5.9-20141206/package/ncurses.map | 1109
+# ncurses-5.9-20141206/package/ncurses.spec | 95
+# ncurses-5.9-20141206/package/ncurses.sym | 997
+# ncurses-5.9-20141206/package/ncursest.map | 1086
+# ncurses-5.9-20141206/package/ncursest.sym | 1001
+# ncurses-5.9-20141206/package/ncursestw.map | 1206
+# ncurses-5.9-20141206/package/ncursestw.sym | 1121
+# ncurses-5.9-20141206/package/ncursesw.map | 1220
+# ncurses-5.9-20141206/package/ncursesw.sym | 1111
+# ncurses-5.9-20141206/progs/tparm_type.c | 68
+# ncurses-5.9-20141206/progs/tparm_type.h | 52
+# ncurses-5.9-20141206/test/color_name.h | 103
+# ncurses-5.9-20141206/test/demo_forms.txt | 20
+# ncurses-5.9-20141206/test/dots_curses.c | 151
+# ncurses-5.9-20141206/test/dots_termcap.c | 254
+# ncurses-5.9-20141206/test/form_driver_w.c | 150
+# ncurses-5.9-20141206/test/package/mingw-ncurses-examples.spec | 109
+# ncurses-5.9-20141206/test/test_vid_puts.c | 148
+# ncurses-5.9-20141206/test/test_vidputs.c | 148
+# ncurses-5.9-20141206/test/widechars.h | 71
+# ncurses/Makefile.in | 43
+# ncurses/base/MKkeyname.awk | 30
+# ncurses/base/MKlib_gen.sh | 64
+# ncurses/base/MKunctrl.awk | 6
+# ncurses/base/define_key.c | 6
+# ncurses/base/keybound.c | 9
+# ncurses/base/keyok.c | 66
+# ncurses/base/lib_addch.c | 18
+# ncurses/base/lib_addstr.c | 10
+# ncurses/base/lib_beep.c | 13
+# ncurses/base/lib_bkgd.c | 13
+# ncurses/base/lib_chgat.c | 16
+# ncurses/base/lib_color.c | 176
+# ncurses/base/lib_colorset.c | 8
+# ncurses/base/lib_dft_fgbg.c | 7
+# ncurses/base/lib_driver.c | 24
+# ncurses/base/lib_endwin.c | 8
+# ncurses/base/lib_flash.c | 22
+# ncurses/base/lib_freeall.c | 20
+# ncurses/base/lib_getch.c | 68
+# ncurses/base/lib_getstr.c | 6
+# ncurses/base/lib_initscr.c | 8
+# ncurses/base/lib_insch.c | 34
+# ncurses/base/lib_instr.c | 16
+# ncurses/base/lib_mouse.c | 931
+# ncurses/base/lib_newterm.c | 25
+# ncurses/base/lib_newwin.c | 17
+# ncurses/base/lib_overlay.c | 21
+# ncurses/base/lib_printw.c | 34
+# ncurses/base/lib_refresh.c | 17
+# ncurses/base/lib_restart.c | 10
+# ncurses/base/lib_scanw.c | 6
+# ncurses/base/lib_screen.c | 19
+# ncurses/base/lib_scroll.c | 8
+# ncurses/base/lib_set_term.c | 60
+# ncurses/base/lib_slkatr_set.c | 10
+# ncurses/base/lib_slkcolor.c | 10
+# ncurses/base/lib_slkrefr.c | 26
+# ncurses/base/lib_slkset.c | 17
+# ncurses/base/lib_touch.c | 6
+# ncurses/base/lib_ungetch.c | 11
+# ncurses/base/resizeterm.c | 89
+# ncurses/base/safe_sprintf.c | 20
+# ncurses/base/vsscanf.c | 8
+# ncurses/base/wresize.c | 9
+# ncurses/build.priv.h | 6
+# ncurses/curses.priv.h | 436
+# ncurses/fifo_defs.h | 46
+# ncurses/llib-lncurses | 456
+# ncurses/llib-lncursest | 424
+# ncurses/llib-lncursestw | 562
+# ncurses/llib-lncursesw | 568
+# ncurses/modules | 8
+# ncurses/tinfo/MKcaptab.sh | 10
+# ncurses/tinfo/access.c | 43
+# ncurses/tinfo/alloc_entry.c | 55
+# ncurses/tinfo/alloc_ttype.c | 55
+# ncurses/tinfo/captoinfo.c | 212
+# ncurses/tinfo/comp_error.c | 20
+# ncurses/tinfo/comp_expand.c | 19
+# ncurses/tinfo/comp_parse.c | 187
+# ncurses/tinfo/comp_scan.c | 171
+# ncurses/tinfo/db_iterator.c | 431
+# ncurses/tinfo/doalloc.c | 21
+# ncurses/tinfo/entries.c | 11
+# ncurses/tinfo/getenv_num.c | 21
+# ncurses/tinfo/hashed_db.c | 165
+# ncurses/tinfo/home_terminfo.c | 10
+# ncurses/tinfo/lib_acs.c | 9
+# ncurses/tinfo/lib_baudrate.c | 71
+# ncurses/tinfo/lib_cur_term.c | 24
+# ncurses/tinfo/lib_data.c | 15
+# ncurses/tinfo/lib_has_cap.c | 8
+# ncurses/tinfo/lib_napms.c | 12
+# ncurses/tinfo/lib_options.c | 57
+# ncurses/tinfo/lib_print.c | 10
+# ncurses/tinfo/lib_raw.c | 35
+# ncurses/tinfo/lib_setup.c | 178
+# ncurses/tinfo/lib_termcap.c | 51
+# ncurses/tinfo/lib_tgoto.c | 9
+# ncurses/tinfo/lib_ti.c | 16
+# ncurses/tinfo/lib_tparm.c | 86
+# ncurses/tinfo/lib_tputs.c | 92
+# ncurses/tinfo/lib_ttyflags.c | 24
+# ncurses/tinfo/make_hash.c | 52
+# ncurses/tinfo/make_keys.c | 6
+# ncurses/tinfo/name_match.c | 42
+# ncurses/tinfo/parse_entry.c | 40
+# ncurses/tinfo/read_entry.c | 391
+# ncurses/tinfo/read_termcap.c | 89
+# ncurses/tinfo/strings.c | 8
+# ncurses/tinfo/tinfo_driver.c | 261
+# ncurses/tinfo/trim_sgr0.c | 85
+# ncurses/tinfo/write_entry.c | 110
+# ncurses/trace/lib_trace.c | 23
+# ncurses/trace/lib_traceatr.c | 49
+# ncurses/trace/lib_tracebits.c | 24
+# ncurses/trace/lib_tracechr.c | 15
+# ncurses/trace/lib_tracedmp.c | 8
+# ncurses/trace/lib_tracemse.c | 48
+# ncurses/trace/trace_buf.c | 11
+# ncurses/trace/trace_tries.c | 37
+# ncurses/trace/varargs.c | 23
+# ncurses/trace/visbuf.c | 52
+# ncurses/tty/hardscroll.c | 24
+# ncurses/tty/hashmap.c | 8
+# ncurses/tty/lib_mvcur.c | 126
+# ncurses/tty/lib_tstp.c | 57
+# ncurses/tty/lib_twait.c | 66
+# ncurses/tty/lib_vidattr.c | 95
+# ncurses/tty/tty_update.c | 316
+# ncurses/wcwidth.h | 21
+# ncurses/widechar/lib_box_set.c | 6
+# ncurses/widechar/lib_cchar.c | 24
+# ncurses/widechar/lib_erasewchar.c | 8
+# ncurses/widechar/lib_get_wch.c | 9
+# ncurses/widechar/lib_get_wstr.c | 8
+# ncurses/widechar/lib_ins_wch.c | 6
+# ncurses/widechar/lib_inwstr.c | 11
+# ncurses/widechar/lib_slk_wset.c | 30
+# ncurses/widechar/lib_unget_wch.c | 6
+# ncurses/widechar/lib_vid_attr.c | 85
+# ncurses/widechar/lib_wacs.c | 38
+# ncurses/widechar/lib_wunctrl.c | 17
+# ncurses/win32con/gettimeofday.c | 7
+# ncurses/win32con/win_driver.c | 1734
+# panel/Makefile.in | 18
+# panel/p_above.c | 6
+# panel/p_below.c | 6
+# panel/panel.c | 12
+# panel/panel.priv.h | 12
+# progs/Makefile.in | 40
+# progs/capconvert | 24
+# progs/clear.c | 12
+# progs/dump_entry.c | 258
+# progs/dump_entry.h | 19
+# progs/infocmp.c | 492
+# progs/modules | 9
+# progs/progs.priv.h | 27
+# progs/tabs.c | 146
+# progs/tic.c | 890
+# progs/toe.c | 456
+# progs/tput.c | 56
+# progs/transform.c | 16
+# progs/tset.c | 125
+# test/Makefile.in | 19
+# test/README | 52
+# test/aclocal.m4 | 1281
+# test/background.c | 230
+# test/blue.c | 12
+# test/bs.c | 46
+# test/cardfile.c | 30
+# test/chgat.c | 6
+# test/clip_printw.c | 11
+# test/color_set.c | 10
+# test/configure |19108 +++--
+# test/configure.in | 201
+# test/demo_defkey.c | 12
+# test/demo_forms.c | 224
+# test/demo_menus.c | 318
+# test/demo_panels.c | 6
+# test/demo_termcap.c | 758
+# test/demo_terminfo.c | 799
+# test/ditto.c | 10
+# test/dots.c | 24
+# test/dots_mvcur.c | 25
+# test/echochar.c | 4
+# test/edit_field.c | 69
+# test/edit_field.h | 8
+# test/filter.c | 10
+# test/firework.c | 18
+# test/gdc.c | 143
+# test/hanoi.c | 33
+# test/hashtest.c | 6
+# test/inchs.c | 16
+# test/ins_wide.c | 38
+# test/insdelln.c | 10
+# test/inserts.c | 29
+# test/key_names.c | 6
+# test/knight.c | 70
+# test/linedata.h | 6
+# test/make-tar.sh | 13
+# test/modules | 11
+# test/movewindow.c | 227
+# test/ncurses.c | 1197
+# test/newdemo.c | 23
+# test/package/debian/source/format | 2
+# test/package/ncurses-examples.spec | 4
+# test/programs | 9
+# test/railroad.c | 12
+# test/rain.c | 13
+# test/redraw.c | 6
+# test/tclock.c | 14
+# test/test.priv.h | 175
+# test/test_add_wchstr.c | 37
+# test/test_addchstr.c | 31
+# test/test_addstr.c | 29
+# test/test_addwstr.c | 38
+# test/test_getstr.c | 15
+# test/testaddch.c | 16
+# test/testcurs.c | 66
+# test/view.c | 88
+# test/worm.c | 31
+# test/xmas.c | 6
+# 706 files changed, 104950 insertions(+), 63097 deletions(-)
+# ------------------------------------------------------------------------------
+# Please remove the following files before applying this patch.
+# (You can feed this patch to 'sh' to do so.)
+
+rm -f mk-dlls.sh.in
+rm -f ncurses/base/memmove.c
+rm -f ncurses/tinfo/setbuf.c
+rm -f ncurses/tty/tty_display.h
+rm -f ncurses/tty/tty_input.h
+exit
+
+Index: Ada95/aclocal.m4
+Prereq: 1.24
+--- ncurses-5.9/Ada95/aclocal.m4 2011-03-31 23:32:36.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/aclocal.m4 2014-12-06 13:38:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 2010,2011 Free Software Foundation, Inc. *
++dnl Copyright (c) 2010-2013,2014 Free Software Foundation, Inc. *
+ dnl *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a *
+ dnl copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey
+ dnl
+-dnl $Id: aclocal.m4,v 1.24 2011/03/31 23:32:36 tom Exp $
++dnl $Id: aclocal.m4,v 1.93 2014/12/06 13:38:19 tom Exp $
+ dnl Macros used in NCURSES Ada95 auto-configuration script.
+ dnl
+ dnl These macros are maintained separately from NCURSES. The copyright on
+@@ -39,7 +39,33 @@
+ dnl
+ dnl ---------------------------------------------------------------------------
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
++dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
++dnl ------------------
++dnl Conditionally generate script according to whether we're using a given autoconf.
++dnl
++dnl $1 = version to compare against
++dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
++dnl $3 = code to use if AC_ACVERSION is older than $1.
++define([CF_ACVERSION_CHECK],
++[
++ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
++ifdef([m4_version_compare],
++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
++[CF_ACVERSION_COMPARE(
++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
++dnl --------------------
++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
++dnl MAJOR2, MINOR2, TERNARY2,
++dnl PRINTABLE2, not FOUND, FOUND)
++define([CF_ACVERSION_COMPARE],
++[ifelse(builtin([eval], [$2 < $5]), 1,
++[ifelse([$8], , ,[$8])],
++[ifelse([$9], , ,[$9])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
+ dnl -------------------
+ dnl Construct the list of include-options for the C programs in the Ada95
+ dnl binding.
+@@ -53,7 +79,7 @@
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ elif test "$includedir" != "/usr/include"; then
+ if test "$includedir" = '${prefix}/include' ; then
+- if test $prefix != /usr ; then
++ if test x$prefix != x/usr ; then
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ fi
+ else
+@@ -71,7 +97,7 @@
+ AC_SUBST(ADAFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
++dnl CF_ADD_CFLAGS version: 11 updated: 2014/07/22 05:32:57
+ dnl -------------
+ dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+ dnl The second parameter if given makes this macro verbose.
+@@ -96,7 +122,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -133,7 +159,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -260,15 +286,33 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
++dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
+ dnl -----------
+-dnl Add one or more libraries, used to enforce consistency.
++dnl Add one or more libraries, used to enforce consistency. Libraries are
++dnl prepended to an existing list, since their dependencies are assumed to
++dnl already exist in the list.
+ dnl
+ dnl $1 = libraries to add, with the "-l", etc.
+ dnl $2 = variable to update (default $LIBS)
+-AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
++AC_DEFUN([CF_ADD_LIBS],[
++cf_add_libs="$1"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++ifelse($2,,LIBS,[$2])="$cf_add_libs"
++])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
++dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
+ dnl ------------------
+ dnl Append to a search-list for a nonstandard header/lib-file
+ dnl $1 = the variable to return as result
+@@ -278,9 +322,9 @@
+ dnl $5 = a directory that we do not want $4 to match
+ AC_DEFUN([CF_ADD_SUBDIR_PATH],
+ [
+-test "$4" != "$5" && \
++test "x$4" != "x$5" && \
+ test -d "$4" && \
+-ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
++ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
+ test -n "$verbose" && echo " ... testing for $3-directories under $4"
+ test -d $4/$3 && $1="[$]$1 $4/$3"
+ test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
+@@ -290,75 +334,34 @@
+ }
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
+-dnl ----------------
+-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+-dnl in the sharutils 4.2 distribution.
+-AC_DEFUN([CF_ANSI_CC_CHECK],
+-[
+-AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
+-cf_cv_ansi_cc=no
+-cf_save_CFLAGS="$CFLAGS"
+-cf_save_CPPFLAGS="$CPPFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc
+-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+-for cf_arg in "-DCC_HAS_PROTOS" \
+- "" \
+- -qlanglvl=ansi \
+- -std1 \
+- -Ae \
+- "-Aa -D_HPUX_SOURCE" \
+- -Xc
+-do
+- CF_ADD_CFLAGS($cf_arg)
+- AC_TRY_COMPILE(
+-[
+-#ifndef CC_HAS_PROTOS
+-#if !defined(__STDC__) || (__STDC__ != 1)
+-choke me
+-#endif
+-#endif
+-],[
+- int test (int i, double x);
+- struct s1 {int (*f) (int a);};
+- struct s2 {int (*f) (double a);};],
+- [cf_cv_ansi_cc="$cf_arg"; break])
+-done
+-CFLAGS="$cf_save_CFLAGS"
+-CPPFLAGS="$cf_save_CPPFLAGS"
+-])
+-
+-if test "$cf_cv_ansi_cc" != "no"; then
+-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+- CF_ADD_CFLAGS($cf_cv_ansi_cc)
+-else
+- AC_DEFINE(CC_HAS_PROTOS)
+-fi
+-fi
+-])dnl
++dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
++dnl --------------
++dnl Allow user to disable a normally-on option.
++AC_DEFUN([CF_ARG_DISABLE],
++[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
+-dnl ---------------
+-dnl For programs that must use an ANSI compiler, obtain compiler options that
+-dnl will make it recognize prototypes. We'll do preprocessor checks in other
+-dnl macros, since tools such as unproto can fake prototypes, but only part of
+-dnl the preprocessor.
+-AC_DEFUN([CF_ANSI_CC_REQD],
+-[AC_REQUIRE([CF_ANSI_CC_CHECK])
+-if test "$cf_cv_ansi_cc" = "no"; then
+- AC_MSG_ERROR(
+-[Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto])
+-fi
++dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
++dnl -------------
++dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
++dnl values.
++dnl
++dnl Parameters:
++dnl $1 = option name
++dnl $2 = help-string
++dnl $3 = action to perform if option is not default
++dnl $4 = action if perform if option is default
++dnl $5 = default option value (either 'yes' or 'no')
++AC_DEFUN([CF_ARG_OPTION],
++[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
++ if test "$enableval" != "$5" ; then
++ifelse([$3],,[ :]dnl
++,[ $3]) ifelse([$4],,,[
++ else
++ $4])
++ fi],[enableval=$5 ifelse([$4],,,[
++ $4
+ ])dnl
++ ])])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
+ dnl -----------
+@@ -413,7 +416,7 @@
+ AC_SUBST(ARFLAGS)
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
++dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
+ dnl -----------
+ dnl If we're cross-compiling, allow the user to override the tools and their
+ dnl options. The configure script is oriented toward identifying the host
+@@ -423,7 +426,8 @@
+ dnl $1 = default for $CPPFLAGS
+ dnl $2 = default for $LIBS
+ AC_DEFUN([CF_BUILD_CC],[
+-AC_REQUIRE([CF_PROG_EXT])
++CF_ACVERSION_CHECK(2.52,,
++ [AC_REQUIRE([CF_PROG_EXT])])
+ if test "$cross_compiling" = yes ; then
+
+ # defaults that we might want to override
+@@ -504,7 +508,33 @@
+ AC_SUBST(BUILD_OBJEXT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
++dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
++dnl ---------------
++dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
++dnl into CC. This will not help with broken scripts that wrap the compiler with
++dnl options, but eliminates a more common category of user confusion.
++AC_DEFUN([CF_CC_ENV_FLAGS],
++[
++# This should have been defined by AC_PROG_CC
++: ${CC:=cc}
++
++AC_MSG_CHECKING(\$CC variable)
++case "$CC" in #(vi
++*[[\ \ ]]-[[IUD]]*)
++ AC_MSG_RESULT(broken)
++ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
++ # humor him...
++ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
++ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
++ CF_ADD_CFLAGS($cf_flags)
++ ;;
++*)
++ AC_MSG_RESULT(ok)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05
+ dnl ---------------
+ dnl Determine the default configuration into which we'll install ncurses. This
+ dnl can be overridden by the user's command-line options. There's two items to
+@@ -522,7 +552,7 @@
+ if test "x$prefix" = "xNONE" ; then
+ case "$cf_cv_system_name" in
+ # non-vendor systems don't have a conflict
+- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
+ prefix=/usr
+ ;;
+ *) prefix=$ac_default_prefix
+@@ -558,7 +588,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
++dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
+ dnl --------------
+ dnl Check if we're accidentally using a cache from a different machine.
+ dnl Derive the system name, as a check for reusing the autoconf cache.
+@@ -581,7 +611,7 @@
+ system_name="`(hostname) 2>/dev/null`"
+ fi
+ fi
+-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
+ AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+@@ -593,7 +623,40 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
++dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
++dnl -----------------
++dnl Check if the given compiler is really clang. clang's C driver defines
++dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
++dnl not ignore some gcc options.
++dnl
++dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
++dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
++dnl the wrappers for gcc and g++ warnings.
++dnl
++dnl $1 = GCC (default) or GXX
++dnl $2 = CLANG_COMPILER (default)
++dnl $3 = CFLAGS (default) or CXXFLAGS
++AC_DEFUN([CF_CLANG_COMPILER],[
++ifelse([$2],,CLANG_COMPILER,[$2])=no
++
++if test "$ifelse([$1],,[$1],GCC)" = yes ; then
++ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
++ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
++ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
++ AC_TRY_COMPILE([],[
++#ifdef __clang__
++#else
++make an error
++#endif
++],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++],[])
++ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
++ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
++fi
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
+ dnl ----------------
+ dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+ dnl variations of ncurses' installs.
+@@ -603,10 +666,10 @@
+ AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
+ cf_cv_ncurses_header=none
+ for cf_header in ifelse($1,,,[ \
+- $1/curses.h \
+- $1/ncurses.h]) \
+- curses.h \
+- ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
++ $1/ncurses.h \
++ $1/curses.h]) \
++ ncurses.h \
++ curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
+ do
+ AC_TRY_COMPILE([#include <${cf_header}>],
+ [initscr(); tgoto("?", 0,0)],
+@@ -627,6 +690,78 @@
+ dnl "dirname" is not portable, so we fake it with a shell script.
+ AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
++dnl ---------------
++dnl You can always use "make -n" to see the actual options, but it's hard to
++dnl pick out/analyze warning messages when the compile-line is long.
++dnl
++dnl Sets:
++dnl ECHO_LT - symbol to control if libtool is verbose
++dnl ECHO_LD - symbol to prefix "cc -o" lines
++dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
++dnl SHOW_CC - symbol to put before explicit "cc -c" lines
++dnl ECHO_CC - symbol to put before any "cc" line
++dnl
++AC_DEFUN([CF_DISABLE_ECHO],[
++AC_MSG_CHECKING(if you want to see long compiling messages)
++CF_ARG_DISABLE(echo,
++ [ --disable-echo do not display "compiling" commands],
++ [
++ ECHO_LT='--silent'
++ ECHO_LD='@echo linking [$]@;'
++ RULE_CC='@echo compiling [$]<'
++ SHOW_CC='@echo compiling [$]@'
++ ECHO_CC='@'
++],[
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
++])
++AC_MSG_RESULT($enableval)
++AC_SUBST(ECHO_LT)
++AC_SUBST(ECHO_LD)
++AC_SUBST(RULE_CC)
++AC_SUBST(SHOW_CC)
++AC_SUBST(ECHO_CC)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
++dnl ------------------------
++AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
++AC_MSG_CHECKING(if we want to use GNAT projects)
++CF_ARG_DISABLE(gnat-projects,
++ [ --disable-gnat-projects test: disable GNAT projects even if usable],
++ [enable_gnat_projects=no],
++ [enable_gnat_projects=yes])
++AC_MSG_RESULT($enable_gnat_projects)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
++dnl ------------------
++dnl This is the "--enable-pc-files" option, which is available if there is a
++dnl pkg-config configuration on the local machine.
++AC_DEFUN([CF_ENABLE_PC_FILES],[
++AC_REQUIRE([CF_PKG_CONFIG])
++AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
++
++if test "$PKG_CONFIG" != none ; then
++ AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
++ AC_ARG_ENABLE(pc-files,
++ [ --enable-pc-files generate and install .pc files for pkg-config],
++ [enable_pc_files=$enableval],
++ [enable_pc_files=no])
++ AC_MSG_RESULT($enable_pc_files)
++ if test "$enable_pc_files" != no
++ then
++ CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
++ fi
++else
++ enable_pc_files=no
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
+ dnl ---------------
+ dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
+@@ -807,7 +942,26 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
++dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
++dnl -----------------
++dnl make ADAFLAGS consistent with CFLAGS
++AC_DEFUN([CF_FIXUP_ADAFLAGS],[
++ AC_MSG_CHECKING(optimization options for ADAFLAGS)
++ case "$CFLAGS" in
++ *-g*)
++ CF_ADD_ADAFLAGS(-g)
++ ;;
++ esac
++ case "$CFLAGS" in
++ *-O*)
++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
++ CF_ADD_ADAFLAGS($cf_O_flag)
++ ;;
++ esac
++ AC_MSG_RESULT($ADAFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
+ dnl -----------------
+ dnl Test for availability of useful gcc __attribute__ directives to quiet
+ dnl compiler warnings. Though useful, not all are supported -- and contrary
+@@ -885,27 +1039,27 @@
+ test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
+ cat conftest.h >>confdefs.h
+ case $cf_attribute in #(vi
++ noreturn) #(vi
++ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
++ ;;
+ printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-EOF
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
++ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
+ fi
++ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
+ ;;
+ scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-EOF
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
++ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
+ fi
++ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
++ ;;
++ unused) #(vi
++ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
+ ;;
+ esac
+ fi
+@@ -917,7 +1071,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
++dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
+ dnl --------------
+ dnl Find version of gcc
+ AC_DEFUN([CF_GCC_VERSION],[
+@@ -925,13 +1079,13 @@
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+ AC_MSG_CHECKING(version of $CC)
+- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ test -z "$GCC_VERSION" && GCC_VERSION=unknown
+ AC_MSG_RESULT($GCC_VERSION)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
++dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35
+ dnl ---------------
+ dnl Check if the compiler supports useful warning options. There's a few that
+ dnl we don't use, simply because they're too noisy:
+@@ -954,6 +1108,7 @@
+ [
+ AC_REQUIRE([CF_GCC_VERSION])
+ CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
++CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
+
+ cat > conftest.$ac_ext <<EOF
+ #line __oline__ "${as_me:-configure}"
+@@ -1002,10 +1157,14 @@
+ EXTRA_CFLAGS=
+ cf_warn_CONST=""
+ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
+ for cf_opt in W Wall \
+ Wbad-function-cast \
+ Wcast-align \
+ Wcast-qual \
++ Wdeclaration-after-statement \
++ Wextra \
+ Winline \
+ Wmissing-declarations \
+ Wmissing-prototypes \
+@@ -1013,7 +1172,7 @@
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+- Wundef $cf_warn_CONST $1
++ Wundef $cf_gcc_warnings $cf_warn_CONST $1
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+@@ -1029,6 +1188,13 @@
+ continue;;
+ esac
+ ;;
++ Wpointer-arith) #(vi
++ case $GCC_VERSION in
++ [[12]].*)
++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
++ continue;;
++ esac
++ ;;
+ esac
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+@@ -1040,6 +1206,17 @@
+ AC_SUBST(EXTRA_CFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
++dnl -----------------
++AC_DEFUN([CF_GNATPREP_OPT_T],[
++AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
++cf_cv_gnatprep_opt_t=no
++gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
++])
++test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
++AC_SUBST(GNATPREP_OPTS)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
+ dnl ----------------
+ AC_DEFUN([CF_GNAT_GENERICS],
+@@ -1070,100 +1247,26 @@
+ AC_SUBST(cf_generic_objects)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
+-dnl --------------
+-dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
+-dnl is noted that gnat may compile a tasking unit even for configurations which
+-dnl fail at runtime.
+-AC_DEFUN([CF_GNAT_SIGINT],[
+-AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
+-CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
+-
+-package ConfTest is
+-
+- pragma Warnings (Off); -- the next pragma exists since 3.11p
+- pragma Unreserve_All_Interrupts;
+- pragma Warnings (On);
+-
+- protected Process is
+- procedure Stop;
+- function Continue return Boolean;
+- pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
+- private
+- Done : Boolean := False;
+- end Process;
+-
+-end ConfTest;],
+-[package body ConfTest is
+- protected body Process is
+- procedure Stop is
+- begin
+- Done := True;
+- end Stop;
+- function Continue return Boolean is
+- begin
+- return not Done;
+- end Continue;
+- end Process;
+-end ConfTest;],
+- [cf_cv_gnat_sigint=yes],
+- [cf_cv_gnat_sigint=no])])
+-
+-if test $cf_cv_gnat_sigint = yes ; then
+- USE_GNAT_SIGINT=""
+-else
+- USE_GNAT_SIGINT="#"
+-fi
+-AC_SUBST(USE_GNAT_SIGINT)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_PRAGMA_UNREF version: 1 updated: 2010/06/19 15:22:18
+-dnl --------------------
+-dnl Check if the gnat pragma "Unreferenced" works.
+-AC_DEFUN([CF_GNAT_PRAGMA_UNREF],[
+-AC_CACHE_CHECK(if GNAT pragma Unreferenced works,cf_cv_pragma_unreferenced,[
+-CF_GNAT_TRY_LINK([procedure conftest;],
+-[with Text_IO;
+-with GNAT.OS_Lib;
+-procedure conftest is
+- test : Integer;
+- pragma Unreferenced (test);
+-begin
+- test := 1;
+- Text_IO.Put ("Hello World");
+- Text_IO.New_Line;
+- GNAT.OS_Lib.OS_Exit (0);
+-end conftest;],
+- [cf_cv_pragma_unreferenced=yes],
+- [cf_cv_pragma_unreferenced=no])])
+-
+-# if the pragma is supported, use it (needed in the Trace code).
+-if test $cf_cv_pragma_unreferenced = yes ; then
+- PRAGMA_UNREF=TRUE
+-else
+- PRAGMA_UNREF=FALSE
+-fi
+-AC_SUBST(PRAGMA_UNREF)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_PROJECTS version: 2 updated: 2011/03/23 20:24:41
++dnl CF_GNAT_PROJECTS version: 7 updated: 2014/06/01 10:46:34
+ dnl ----------------
+ dnl GNAT projects are configured with ".gpr" project files.
+ dnl GNAT libraries are a further development, using the project feature.
+ AC_DEFUN([CF_GNAT_PROJECTS],
+ [
+ AC_REQUIRE([CF_GNAT_VERSION])
++AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
+
+ cf_gnat_libraries=no
+ cf_gnat_projects=no
+
++if test "$enable_gnat_projects" != no ; then
+ AC_MSG_CHECKING(if GNAT supports project files)
+ case $cf_gnat_version in #(vi
+ 3.[[0-9]]*) #(vi
+ ;;
+ *)
+ case $cf_cv_system_name in #(vi
+- cygwin*) #(vi
++ cygwin*|msys*) #(vi
+ ;;
+ *)
+ mkdir conftest.src conftest.bin conftest.lib
+@@ -1180,14 +1283,6 @@
+ for Library_Dir use External("BUILD_DIR");
+ Source_Dir := External ("SOURCE_DIR");
+ for Source_Dirs use (Source_Dir);
+- package Compiler is
+- for Default_Switches ("Ada") use
+- ("-g",
+- "-O2",
+- "-gnatafno",
+- "-gnatVa", -- All validity checks
+- "-gnatwa"); -- Activate all optional errors
+- end Compiler;
+ end Library;
+ CF_EOF
+ cat >>confpackage.ads <<CF_EOF
+@@ -1225,6 +1320,7 @@
+ ;;
+ esac
+ AC_MSG_RESULT($cf_gnat_projects)
++fi # enable_gnat_projects
+
+ if test $cf_gnat_projects = yes
+ then
+@@ -1253,6 +1349,53 @@
+ AC_SUBST(USE_GNAT_LIBRARIES)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GNAT_SIGINT version: 1 updated: 2011/03/27 20:07:59
++dnl --------------
++dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
++dnl is noted that gnat may compile a tasking unit even for configurations which
++dnl fail at runtime.
++AC_DEFUN([CF_GNAT_SIGINT],[
++AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
++CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
++
++package ConfTest is
++
++ pragma Warnings (Off); -- the next pragma exists since 3.11p
++ pragma Unreserve_All_Interrupts;
++ pragma Warnings (On);
++
++ protected Process is
++ procedure Stop;
++ function Continue return Boolean;
++ pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
++ private
++ Done : Boolean := False;
++ end Process;
++
++end ConfTest;],
++[package body ConfTest is
++ protected body Process is
++ procedure Stop is
++ begin
++ Done := True;
++ end Stop;
++ function Continue return Boolean is
++ begin
++ return not Done;
++ end Continue;
++ end Process;
++end ConfTest;],
++ [cf_cv_gnat_sigint=yes],
++ [cf_cv_gnat_sigint=no])])
++
++if test $cf_cv_gnat_sigint = yes ; then
++ USE_GNAT_SIGINT=""
++else
++ USE_GNAT_SIGINT="#"
++fi
++AC_SUBST(USE_GNAT_SIGINT)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNAT_TRY_LINK version: 3 updated: 2011/03/19 14:47:45
+ dnl ----------------
+ dnl Verify that a test program compiles/links with GNAT.
+@@ -1311,7 +1454,7 @@
+ rm -rf conftest* *~conftest*
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41
++dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
+ dnl ---------------
+ dnl Verify version of GNAT.
+ AC_DEFUN([CF_GNAT_VERSION],
+@@ -1323,7 +1466,7 @@
+ AC_MSG_RESULT($cf_gnat_version)
+
+ case $cf_gnat_version in #(vi
+-3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi
++3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
+ cf_cv_prog_gnat_correct=yes
+ ;;
+ *)
+@@ -1416,33 +1559,24 @@
+ [AC_DIVERT_HELP([$1])dnl
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
++dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
+ 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.
++dnl in the source directory or using '--srcdir=DIR' option.
+ AC_DEFUN([CF_INCLUDE_DIRS],
+ [
+-CPPFLAGS="$CPPFLAGS -I. -I../include"
+ if test "$srcdir" != "."; then
+- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
++ 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
++CPPFLAGS="-I../include $CPPFLAGS"
++if test "$srcdir" != "."; then
++ CPPFLAGS="-I\${srcdir} $CPPFLAGS"
+ fi
++CPPFLAGS="-I. $CPPFLAGS"
+ AC_SUBST(CPPFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
++dnl CF_INTEL_COMPILER version: 6 updated: 2014/03/17 13:13:07
+ dnl -----------------
+ dnl Check if the given compiler is really the Intel compiler for Linux. It
+ dnl tries to imitate gcc, but does not return an error when it finds a mismatch
+@@ -1456,6 +1590,7 @@
+ dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
+ dnl $3 = CFLAGS (default) or CXXFLAGS
+ AC_DEFUN([CF_INTEL_COMPILER],[
++AC_REQUIRE([AC_CANONICAL_HOST])
+ ifelse([$2],,INTEL_COMPILER,[$2])=no
+
+ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
+@@ -1470,7 +1605,7 @@
+ make an error
+ #endif
+ ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
+ ],[])
+ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
+ AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
+@@ -1479,7 +1614,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
++dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51
+ dnl ------------
+ dnl Add checks for large file support.
+ AC_DEFUN([CF_LARGEFILE],[
+@@ -1513,12 +1648,12 @@
+ [cf_cv_struct_dirent64=yes],
+ [cf_cv_struct_dirent64=no])
+ ])
+- test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
++ test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
+ fi
+ ])
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
++dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
+ dnl ---------------
+ dnl For the given system and compiler, find the compiler flags to pass to the
+ dnl loader to use the "rpath" feature.
+@@ -1539,10 +1674,10 @@
+ linux*|gnu*|k*bsd*-gnu) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-openbsd[[2-9]].*) #(vi
++openbsd[[2-9]].*|mirbsd*) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-freebsd*) #(vi
++dragonfly*|freebsd*) #(vi
+ LD_RPATH_OPT="-rpath "
+ ;;
+ netbsd*) #(vi
+@@ -1601,11 +1736,11 @@
+ $1="$cf_library_path_list [$]$1"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
++dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
+ dnl -------------
+ dnl Compute the library-prefix for the given host system
+ dnl $1 = variable to set
+-AC_DEFUN([CF_LIB_PREFIX],
++define([CF_LIB_PREFIX],
+ [
+ case $cf_cv_system_name in #(vi
+ OS/2*|os2*) #(vi
+@@ -1618,44 +1753,7 @@
+ AC_SUBST(LIB_PREFIX)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
+-dnl -------------
+-dnl Find the and soname for the given shared library. Set the cache variable
+-dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
+-dnl variable to "unknown".
+-dnl
+-dnl $1 = headers
+-dnl $2 = code
+-dnl $3 = library name
+-AC_DEFUN([CF_LIB_SONAME],
+-[
+-AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
+-
+-cf_cv_$3_soname=unknown
+-if test "$cross_compiling" != yes ; then
+-cat >conftest.$ac_ext <<CF_EOF
+-$1
+-int main()
+-{
+-$2
+- ${cf_cv_main_return:-return}(0);
+-}
+-CF_EOF
+-cf_save_LIBS="$LIBS"
+- CF_ADD_LIB($3)
+- if AC_TRY_EVAL(ac_compile) ; then
+- if AC_TRY_EVAL(ac_link) ; then
+- cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
+- test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
+- fi
+- fi
+-rm -rf conftest*
+-LIBS="$cf_save_LIBS"
+-fi
+-])
+-])
+-dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
++dnl CF_LIB_SUFFIX version: 23 updated: 2014/06/21 17:47:12
+ dnl -------------
+ dnl Compute the library file-suffix from the given model name
+ dnl $1 = model name
+@@ -1664,31 +1762,26 @@
+ dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
+ AC_DEFUN([CF_LIB_SUFFIX],
+ [
+- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
+- case $1 in #(vi
+- libtool) #(vi
++ case X$1 in #(vi
++ Xlibtool) #(vi
+ $2='.la'
+ $3=[$]$2
+ ;;
+- normal) #(vi
+- $2='.a'
+- $3=[$]$2
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ $2='_g.a'
+ $3=[$]$2
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ $2='_p.a'
+ $3=[$]$2
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[[56]]*) #(vi
+- $2='.a'
++ aix[[5-7]]*) #(vi
++ $2='.so'
+ $3=[$]$2
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ $2='.dll'
+ $3='.dll.a'
+ ;;
+@@ -1708,10 +1801,16 @@
+ ;;
+ esac
+ ;;
+- *) $2='.so'
++ *) #(vi
++ $2='.so'
+ $3=[$]$2
+ ;;
+ esac
++ ;;
++ *)
++ $2='.a'
++ $3=[$]$2
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
+ test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
+@@ -1735,7 +1834,7 @@
+ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
++dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
+ dnl ----------------
+ dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
+ dnl only data (i.e., no functions), for example NeXT. On those systems we'll
+@@ -1792,82 +1891,13 @@
+ AC_MSG_RESULT($cf_cv_link_dataonly)
+
+ if test "$cf_cv_link_dataonly" = no ; then
+- AC_DEFINE(BROKEN_LINKER)
++ AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
+ BROKEN_LINKER=1
+ fi
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
+-dnl -------------
+-dnl Most Unix systems have both link and symlink, a few don't have symlink.
+-dnl A few non-Unix systems implement symlink, but not link.
+-dnl A few non-systems implement neither (or have nonfunctional versions).
+-AC_DEFUN([CF_LINK_FUNCS],
+-[
+-AC_CHECK_FUNCS( \
+- remove \
+- unlink )
+-
+-if test "$cross_compiling" = yes ; then
+- AC_CHECK_FUNCS( \
+- link \
+- symlink )
+-else
+- AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
+- cf_cv_link_funcs=
+- for cf_func in link symlink ; do
+- AC_TRY_RUN([
+-#include <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
+- ${cf_cv_main_return:-return} (fail);
+-}
+- ],[
+- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
+- eval 'ac_cv_func_'$cf_func'=yes'],[
+- eval 'ac_cv_func_'$cf_func'=no'],[
+- eval 'ac_cv_func_'$cf_func'=error'])
+- done
+- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
+- ])
+- test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
+- test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
+-dnl --------------
+-dnl Check if a return from main to the shell actually returns the same exit
+-dnl code. This is true for almost any POSIX environment.
+-dnl
+-dnl Some very old environments did not flush stdout, etc., on an exit. That
+-dnl would be a useful case to test for also.
+-AC_DEFUN([CF_MAIN_RETURN],
+-[
+-cf_cv_main_return=return
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46
++dnl CF_MAKEFLAGS version: 15 updated: 2014/05/10 16:43:23
+ 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.
+@@ -1886,7 +1916,7 @@
+ CF_EOF
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ ]]*$,,'`
+ case "$cf_result" in
+- .*k)
++ .*k|.*kw)
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
+ case "$cf_result" in
+ .*CC=*) cf_cv_makeflags=
+@@ -1944,7 +1974,7 @@
+ AC_SUBST(MAKE_LOWER_TAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
++dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05
+ dnl ----------------------
+ dnl Check if the file-system supports mixed-case filenames. If we're able to
+ dnl create a lowercase name and see it as uppercase, it doesn't support that.
+@@ -1953,7 +1983,7 @@
+ AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
+ if test "$cross_compiling" = yes ; then
+ case $target_alias in #(vi
+- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
+ cf_cv_mixedcase=no
+ ;;
+ *)
+@@ -1971,10 +2001,10 @@
+ rm -f conftest CONFTEST
+ fi
+ ])
+-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
++dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
+ dnl ----------
+ dnl Check for a working mkstemp. This creates two files, checks that they are
+ dnl successfully created and distinct (AmigaOS apparently fails on the last).
+@@ -2016,11 +2046,13 @@
+ }
+ ],[cf_cv_func_mkstemp=yes
+ ],[cf_cv_func_mkstemp=no
+-],[AC_CHECK_FUNC(mkstemp)
+-])
++],[cf_cv_func_mkstemp=maybe])
+ ])
++if test "x$cf_cv_func_mkstemp" = xmaybe ; then
++ AC_CHECK_FUNC(mkstemp)
++fi
+ if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
+- AC_DEFINE(HAVE_MKSTEMP)
++ AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+@@ -2141,7 +2173,7 @@
+ ,[$1=no])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
++dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51
+ dnl -----------------
+ dnl Tie together the configure-script macros for ncurses.
+ dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
+@@ -2153,7 +2185,10 @@
+ cf_ncuconfig_root=ifelse($1,,ncurses,$1)
+
+ echo "Looking for ${cf_ncuconfig_root}-config"
+-AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
++
++CF_ACVERSION_CHECK(2.52,
++ [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
++ [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
+
+ if test "$NCURSES_CONFIG" != none ; then
+
+@@ -2164,7 +2199,7 @@
+ CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
+
+ dnl like CF_NCURSES_CPPFLAGS
+-AC_DEFINE(NCURSES)
++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
+
+ dnl like CF_NCURSES_LIBS
+ CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
+@@ -2181,7 +2216,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
++dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
+ dnl -------------------
+ dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
+ dnl the CPPFLAGS variable so we can include its header.
+@@ -2227,12 +2262,12 @@
+ CF_TERM_HEADER
+
+ # some applications need this, but should check for NCURSES_VERSION
+-AC_DEFINE(NCURSES)
++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
+
+ CF_NCURSES_VERSION
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
++dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51
+ dnl -----------------
+ dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+ dnl variations of ncurses' installs.
+@@ -2283,16 +2318,16 @@
+
+ case $cf_cv_ncurses_header in # (vi
+ *ncurses.h)
+- AC_DEFINE(HAVE_NCURSES_H)
++ AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
+ ;;
+ esac
+
+ case $cf_cv_ncurses_header in # (vi
+ ncurses/curses.h|ncurses/ncurses.h)
+- AC_DEFINE(HAVE_NCURSES_NCURSES_H)
++ AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
+ ;;
+ ncursesw/curses.h|ncursesw/ncurses.h)
+- AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
++ AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
+ ;;
+ esac
+
+@@ -2366,7 +2401,7 @@
+ AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
++dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
+ dnl ------------------
+ dnl Check for the version of ncurses, to aid in reporting bugs, etc.
+ dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
+@@ -2425,58 +2460,10 @@
+ ])
+ rm -f $cf_tempfile
+ ])
+-test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
+-dnl ------------------
+-dnl see CF_WITH_NO_LEAKS
+-AC_DEFUN([CF_NO_LEAKS_OPTION],[
+-AC_MSG_CHECKING(if you want to use $1 for testing)
+-AC_ARG_WITH($1,
+- [$2],
+- [AC_DEFINE($3)ifelse([$4],,[
+- $4
+-])
+- : ${with_cflags:=-g}
+- : ${with_no_leaks:=yes}
+- with_$1=yes],
+- [with_$1=])
+-AC_MSG_RESULT(${with_$1:-no})
+-
+-case .$with_cflags in #(vi
+-.*-g*)
+- case .$CFLAGS in #(vi
+- .*-g*) #(vi
+- ;;
+- *)
+- CF_ADD_CFLAGS([-g])
+- ;;
+- esac
+- ;;
+-esac
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
+-dnl ----------------
+-dnl Check if the given variable is a number. If not, report an error.
+-dnl $1 is the variable
+-dnl $2 is the message
+-AC_DEFUN([CF_NUMBER_SYNTAX],[
+-if test -n "$1" ; then
+- case $1 in #(vi
+- [[0-9]]*) #(vi
+- ;;
+- *)
+- AC_MSG_ERROR($2 is not a number: $1)
+- ;;
+- esac
+-else
+- AC_MSG_ERROR($2 value is empty)
+-fi
++test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
++dnl CF_OBJ_SUBDIR version: 6 updated: 2013/09/07 14:06:10
+ dnl -------------
+ dnl Compute the object-directory name from the given model name
+ AC_DEFUN([CF_OBJ_SUBDIR],
+@@ -2488,7 +2475,7 @@
+ profile) $2='obj_p' ;;
+ shared)
+ case $cf_cv_system_name in #(vi
+- cygwin) #(vi
++ cygwin|msys) #(vi
+ $2='objects' ;;
+ *)
+ $2='obj_s' ;;
+@@ -2496,20 +2483,23 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
++dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12
+ dnl ----------
+-dnl Provide a value for the $PATH and similar separator
++dnl Provide a value for the $PATH and similar separator (or amend the value
++dnl as provided in autoconf 2.5x).
+ AC_DEFUN([CF_PATHSEP],
+ [
++ AC_MSG_CHECKING(for PATH separator)
+ case $cf_cv_system_name in
+ os2*) PATH_SEPARATOR=';' ;;
+- *) PATH_SEPARATOR=':' ;;
++ *) ${PATH_SEPARATOR:=':'} ;;
+ esac
+ ifelse([$1],,,[$1=$PATH_SEPARATOR])
+ AC_SUBST(PATH_SEPARATOR)
++ AC_MSG_RESULT($PATH_SEPARATOR)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
++dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
+ dnl --------------
+ dnl Check the argument to see that it looks like a pathname. Rewrite it if it
+ dnl begins with one of the prefix/exec_prefix variables, and then again if the
+@@ -2529,7 +2519,7 @@
+ ;;
+ .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
+ ;;
+-.\[$]{*prefix}*) #(vi
++.\[$]{*prefix}*|.\[$]{*dir}*) #(vi
+ eval $1="[$]$1"
+ case ".[$]$1" in #(vi
+ .NONE/*)
+@@ -2546,7 +2536,7 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
+ dnl -------------
+ dnl Check for the package-config program, unless disabled by command-line.
+ AC_DEFUN([CF_PKG_CONFIG],
+@@ -2563,7 +2553,9 @@
+ PKG_CONFIG=none
+ ;;
+ yes) #(vi
+- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
++ CF_ACVERSION_CHECK(2.52,
++ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
++ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
+ ;;
+ *)
+ PKG_CONFIG=$withval
+@@ -2667,6 +2659,19 @@
+ test -z "$AWK" && AC_MSG_ERROR(No awk program found)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
++dnl ----------
++dnl standard check for CC, plus followup sanity checks
++dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
++AC_DEFUN([CF_PROG_CC],[
++ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
++CF_GCC_VERSION
++CF_ACVERSION_CHECK(2.52,
++ [AC_PROG_CC_STDC],
++ [CF_ANSI_CC_REQD])
++CF_CC_ENV_FLAGS
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
+ dnl --------------
+ dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
+@@ -2721,7 +2726,7 @@
+ test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
++dnl CF_PROG_EXT version: 11 updated: 2012/10/06 08:57:51
+ dnl -----------
+ dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
+ AC_DEFUN([CF_PROG_EXT],
+@@ -2743,10 +2748,10 @@
+
+ PROG_EXT="$EXEEXT"
+ AC_SUBST(PROG_EXT)
+-test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
++test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18
++dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47
+ dnl ------------
+ dnl Check for gnatmake, ensure that it is complete.
+ AC_DEFUN([CF_PROG_GNAT],[
+@@ -2754,6 +2759,7 @@
+ AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
+ if test "$ac_cv_prog_gnat_exists" = no; then
+ cf_ada_make=
++ cf_cv_prog_gnat_correct=no
+ else
+ CF_GNAT_VERSION
+ AC_CHECK_PROG(M4_exists, m4, yes, no)
+@@ -2831,18 +2837,19 @@
+ $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16
++dnl CF_SHARED_OPTS version: 84 updated: 2013/11/03 06:26:10
+ dnl --------------
+ dnl --------------
+ dnl Attempt to determine the appropriate CC/LD options for creating a shared
+ dnl library.
+ dnl
+-dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
+-dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
+-dnl We avoid compiling-in a ../lib path for the shared library since that can
+-dnl lead to unexpected results at runtime.
+-dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
+-dnl are compiled in ../../lib
++dnl Notes:
++dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
++dnl the build-tree, i.e., by making use of the libraries that are compiled in
++dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
++dnl shared library since that can lead to unexpected results at runtime.
++dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
++dnl libraries are compiled in ../../lib
+ dnl
+ dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
+ dnl to install symbolic links to the rel/abi versions of shared libraries.
+@@ -2857,12 +2864,19 @@
+ dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
+ AC_DEFUN([CF_SHARED_OPTS],
+ [
+- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
+ AC_REQUIRE([CF_LD_RPATH_OPT])
++ RM_SHARED_OPTS=
+ LOCAL_LDFLAGS=
+ LOCAL_LDFLAGS2=
+ LD_SHARED_OPTS=
+ INSTALL_LIB="-m 644"
++ : ${rel_builddir:=.}
++
++ shlibdir=$libdir
++ AC_SUBST(shlibdir)
++
++ MAKE_DLLS="#"
++ AC_SUBST(MAKE_DLLS)
+
+ cf_cv_do_symlinks=no
+ cf_ld_rpath_opt=
+@@ -2887,6 +2901,7 @@
+ AC_MSG_RESULT($cf_cv_shlib_version)
+
+ cf_cv_rm_so_locs=no
++ cf_try_cflags=
+
+ # Some less-capable ports of gcc support only -fpic
+ CC_SHARED_OPTS=
+@@ -2906,10 +2921,14 @@
+ cf_cv_shlib_version_infix=no
+
+ case $cf_cv_system_name in #(vi
+- aix[[56]]*) #(vi
++ aix4.[3-9]*|aix[[5-7]]*) #(vi
+ if test "$GCC" = yes; then
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='$(CC) -shared'
++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
++ else
++ # CC_SHARED_OPTS='-qpic=large -G'
++ # perhaps "-bM:SRE -bnoentry -bexpall"
++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
+ fi
+ ;;
+ beos*) #(vi
+@@ -2917,9 +2936,12 @@
+ ;;
+ cygwin*) #(vi
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
+ cf_cv_shlib_version=cygdll
+ cf_cv_shlib_version_infix=cygdll
++ shlibdir=$bindir
++ MAKE_DLLS=
+ cat >mk_shared_lib.sh <<-CF_EOF
+ #!/bin/sh
+ SHARED_LIB=\[$]1
+@@ -2930,12 +2952,34 @@
+ ** SHARED_LIB \[$]SHARED_LIB
+ ** IMPORT_LIB \[$]IMPORT_LIB
+ EOF
+- exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ msys*) #(vi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cf_cv_shlib_version=msysdll
++ cf_cv_shlib_version_infix=msysdll
++ shlibdir=$bindir
++ MAKE_DLLS=
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\[$]1
++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \[$]SHARED_LIB
++ ** IMPORT_LIB \[$]IMPORT_LIB
++EOF
++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
+ CF_EOF
+ chmod +x mk_shared_lib.sh
+ ;;
+ darwin*) #(vi
+- EXTRA_CFLAGS="-no-cpp-precomp"
++ cf_try_cflags="no-cpp-precomp"
+ CC_SHARED_OPTS="-dynamic"
+ MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+@@ -2949,6 +2993,14 @@
+ LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ fi
+ ;;
++ hpux[[7-8]]*) #(vi
++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='+Z'
++ fi
++ MK_SHARED_LIB='${LD} -b -o $[@]'
++ INSTALL_LIB="-m 555"
++ ;;
+ hpux*) #(vi
+ # (tested with gcc 2.7.2 -- I don't have c89)
+ if test "$GCC" = yes; then
+@@ -2962,9 +3014,19 @@
+ # readonly to exploit a quirk in the memory manager.
+ INSTALL_LIB="-m 555"
+ ;;
++ interix*)
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ if test "$cf_cv_shlib_version" = rel; then
++ cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
++ else
++ cf_shared_soname='`basename $@`'
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
++ ;;
+ irix*) #(vi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ # tested with IRIX 5.2 and 'cc'.
+ if test "$GCC" != yes; then
+@@ -2981,18 +3043,45 @@
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
+ ;;
+- openbsd[[2-9]].*) #(vi
++ mingw*) #(vi
++ cf_cv_shlib_version=mingw
++ cf_cv_shlib_version_infix=mingw
++ shlibdir=$bindir
++ MAKE_DLLS=
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,--enable-auto-import"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\[$]1
++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \[$]SHARED_LIB
++ ** IMPORT_LIB \[$]IMPORT_LIB
++EOF
++ exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ openbsd[[2-9]].*|mirbsd*) #(vi
+ if test "$DFT_LWR_MODEL" = "shared" ; then
+ LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ CF_SHARED_SONAME
+@@ -3003,12 +3092,12 @@
+ MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+ ;;
+- freebsd*) #(vi
++ dragonfly*|freebsd*) #(vi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
+@@ -3018,7 +3107,7 @@
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ if test "$cf_cv_shlib_version" = auto; then
+ if test -f /usr/libexec/ld.elf_so; then
+ cf_cv_shlib_version=abi
+@@ -3029,7 +3118,7 @@
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
+ else
+- MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]'
+ fi
+ ;;
+ osf*|mls+*) #(vi
+@@ -3123,20 +3212,57 @@
+ ;;
+ esac
+
+- if test -n "$cf_ld_rpath_opt" ; then
+- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
++ if test -n "$cf_try_cflags"
++ then
++cat > conftest.$ac_ext <<EOF
++#line __oline__ "${as_me:-configure}"
++#include <stdio.h>
++int main(int argc, char *argv[[]])
++{
++ printf("hello\n");
++ return (argv[[argc-1]] == 0) ;
++}
++EOF
++ cf_save_CFLAGS="$CFLAGS"
++ for cf_opt in $cf_try_cflags
++ do
++ CFLAGS="$cf_save_CFLAGS -$cf_opt"
++ AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
++ if AC_TRY_EVAL(ac_compile); then
++ AC_MSG_RESULT(yes)
++ cf_save_CFLAGS="$CFLAGS"
++ else
++ AC_MSG_RESULT(no)
++ fi
++ done
++ CFLAGS="$cf_save_CFLAGS"
+ fi
+
++
++ # RPATH_LIST is a colon-separated list of directories
++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
++
++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
++
++ CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
++ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
++
+ AC_SUBST(CC_SHARED_OPTS)
+ AC_SUBST(LD_RPATH_OPT)
+ AC_SUBST(LD_SHARED_OPTS)
+ AC_SUBST(MK_SHARED_LIB)
++ AC_SUBST(RM_SHARED_OPTS)
++
+ AC_SUBST(LINK_PROGS)
+ AC_SUBST(LINK_TESTS)
++
+ AC_SUBST(EXTRA_LDFLAGS)
+ AC_SUBST(LOCAL_LDFLAGS)
+ AC_SUBST(LOCAL_LDFLAGS2)
++
+ AC_SUBST(INSTALL_LIB)
++ AC_SUBST(RPATH_LIST)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
+@@ -3163,7 +3289,7 @@
+ AC_DEFUN([CF_STRIP_G_OPT],
+ [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
++dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
+ dnl --------------
+ dnl Construct a search-list for a nonstandard header/lib-file
+ dnl $1 = the variable to return as result
+@@ -3173,31 +3299,21 @@
+ [
+ $1=
+
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
+ CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
+-dnl --------
+-dnl Shorthand macro for substituting things that the user may override
+-dnl with an environment variable.
+-dnl
+-dnl $1 = long/descriptive name
+-dnl $2 = environment variable
+-dnl $3 = default value
+-AC_DEFUN([CF_SUBST],
+-[AC_CACHE_VAL(cf_cv_subst_$2,[
+-AC_MSG_CHECKING(for $1 (symbol $2))
+-CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
+-cf_cv_subst_$2=[$]$2
+-AC_MSG_RESULT([$]$2)
+-])
++
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ [$]HOME
++do
++ CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
++done
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
++dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51
+ dnl --------------
+ dnl Look for term.h, which is part of X/Open curses. It defines the interface
+ dnl to terminfo database. Usually it is in the same include-path as curses.h,
+@@ -3230,29 +3346,68 @@
+
+ case $cf_cv_term_header in # (vi
+ *term.h)
+- AC_DEFINE(HAVE_TERM_H)
++ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
+ ;;
+ esac
+
+ case $cf_cv_term_header in # (vi
+ ncurses/term.h) #(vi
+- AC_DEFINE(HAVE_NCURSES_TERM_H)
++ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
+ ;;
+ ncursesw/term.h)
+- AC_DEFINE(HAVE_NCURSESW_TERM_H)
++ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
+ ;;
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
++dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
+ dnl ---------------
+ dnl Define a top_builddir symbol, for applications that need an absolute path.
+ AC_DEFUN([CF_TOP_BUILDDIR],
+ [
+-top_builddir=`pwd`
++top_builddir=ifelse($1,,`pwd`,$1)
+ AC_SUBST(top_builddir)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
++dnl -------------------
++dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
++dnl can define it successfully.
++AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
++AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++],[
++#ifndef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
++ CPPFLAGS="$cf_save"
++ ])
++])
++
++if test "$cf_cv_xopen_source" != no ; then
++ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
++ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++ CF_ADD_CFLAGS($cf_temp_xopen_source)
++fi
++])
++dnl ---------------------------------------------------------------------------
+ dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
+ dnl --------
+ dnl Make an uppercase version of a variable
+@@ -3262,7 +3417,7 @@
+ $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
++dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
+ dnl -----------
+ dnl Check for multibyte support, and if not found, utf8 compatibility library
+ AC_DEFUN([CF_UTF8_LIB],
+@@ -3281,7 +3436,7 @@
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+ # ncurses/ncursesw:
+ if test "$cf_cv_utf8_lib" = "add-on" ; then
+- AC_DEFINE(HAVE_LIBUTF8_H)
++ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
+ CF_ADD_INCDIR($cf_cv_header_path_utf8)
+ CF_ADD_LIBDIR($cf_cv_library_path_utf8)
+ CF_ADD_LIBS($cf_cv_library_file_utf8)
+@@ -3363,14 +3518,14 @@
+ AC_MSG_RESULT($ADA_OBJECTS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_ADA_SHAREDLIB version: 2 updated: 2010/06/26 17:35:58
++dnl CF_WITH_ADA_SHAREDLIB version: 4 updated: 2014/05/31 21:08:37
+ dnl ---------------------
+ dnl Command-line option to specify if an Ada95 shared-library should be built,
+ dnl and optionally what its soname should be.
+ AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
+ AC_MSG_CHECKING(if an Ada95 shared-library should be built)
+ AC_ARG_WITH(ada-sharedlib,
+- [ --with-ada-sharedlib=XX build Ada95 shared-library],
++ [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
+ [with_ada_sharedlib=$withval],
+ [with_ada_sharedlib=no])
+ AC_MSG_RESULT($with_ada_sharedlib)
+@@ -3415,7 +3570,33 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18
++dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
++dnl ------------------
++dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
++dnl "lib" prefix, e.g., because it used the dll naming convention.
++dnl
++dnl $1 = variable to set
++AC_DEFUN([CF_WITH_LIB_PREFIX],
++[
++AC_MSG_CHECKING(if you want to have a library-prefix)
++AC_ARG_WITH(lib-prefix,
++ [ --with-lib-prefix override library-prefix],
++ [with_lib_prefix=$withval],
++ [with_lib_prefix=auto])
++AC_MSG_RESULT($with_lib_prefix)
++
++if test $with_lib_prefix = auto
++then
++ CF_LIB_PREFIX($1)
++elif test $with_lib_prefix = no
++then
++ LIB_PREFIX=
++else
++ LIB_PREFIX=$with_lib_prefix
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
+ dnl ------------
+ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
+ dnl defaulting to yes/no.
+@@ -3432,11 +3613,54 @@
+ if ifelse([$5],,true,[test -n "$5"]) ; then
+ CF_PATH_SYNTAX(withval)
+ fi
+-$3="$withval"
++eval $3="$withval"
+ AC_SUBST($3)dnl
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
++dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47
++dnl -------------------------
++dnl Allow the choice of the pkg-config library directory to be overridden.
++AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
++if test "$PKG_CONFIG" != none ; then
++ AC_MSG_CHECKING(for $PKG_CONFIG library directory)
++ AC_ARG_WITH(pkg-config-libdir,
++ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
++ [PKG_CONFIG_LIBDIR=$withval],
++ [PKG_CONFIG_LIBDIR=yes])
++
++ case x$PKG_CONFIG_LIBDIR in #(vi
++ x/*) #(vi
++ ;;
++ xyes) #(vi
++ # look for the library directory using the same prefix as the executable
++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
++ case x`(arch) 2>/dev/null` in #(vi
++ *64) #(vi
++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
++ do
++ if test -d $cf_config/pkgconfig
++ then
++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
++ break
++ fi
++ done
++ ;;
++ *)
++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
++ ;;
++ esac
++ ;;
++ *)
++ ;;
++ esac
++
++ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
++fi
++
++AC_SUBST(PKG_CONFIG_LIBDIR)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51
+ dnl ---------------
+ dnl Check for POSIX thread library.
+ AC_DEFUN([CF_WITH_PTHREAD],
+@@ -3450,30 +3674,55 @@
+
+ if test "$with_pthread" != no ; then
+ AC_CHECK_HEADER(pthread.h,[
+- AC_DEFINE(HAVE_PTHREADS_H)
++ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
+
+- AC_MSG_CHECKING(if we can link with the pthread library)
+- cf_save_LIBS="$LIBS"
+- CF_ADD_LIB(pthread)
+- AC_TRY_LINK([
++ for cf_lib_pthread in pthread c_r
++ do
++ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
++ cf_save_LIBS="$LIBS"
++ CF_ADD_LIB($cf_lib_pthread)
++ AC_TRY_LINK([
+ #include <pthread.h>
+ ],[
+- int rc = pthread_create(0,0,0,0);
++ int rc = pthread_create(0,0,0,0);
++ int r2 = pthread_mutexattr_settype(0, 0);
+ ],[with_pthread=yes],[with_pthread=no])
+- LIBS="$cf_save_LIBS"
+- AC_MSG_RESULT($with_pthread)
++ LIBS="$cf_save_LIBS"
++ AC_MSG_RESULT($with_pthread)
++ test "$with_pthread" = yes && break
++ done
+
+- if test "$with_pthread" = yes ; then
+- CF_ADD_LIB(pthread)
+- AC_DEFINE(HAVE_LIBPTHREADS)
+- else
+- AC_MSG_ERROR(Cannot link with pthread library)
+- fi
++ if test "$with_pthread" = yes ; then
++ CF_ADD_LIB($cf_lib_pthread)
++ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
++ else
++ AC_MSG_ERROR(Cannot link with pthread library)
++ fi
+ ])
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
++dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
++dnl ---------------
++dnl For testing, override the derived host system-type which is used to decide
++dnl things such as the linker commands used to build shared libraries. This is
++dnl normally chosen automatically based on the type of system which you are
++dnl building on. We use it for testing the configure script.
++dnl
++dnl This is different from the --host option: it is used only for testing parts
++dnl of the configure script which would not be reachable with --host since that
++dnl relies on the build environment being real, rather than mocked up.
++AC_DEFUN([CF_WITH_SYSTYPE],[
++CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
++AC_ARG_WITH(system-type,
++ [ --with-system-type=XXX test: override derived host system-type],
++[AC_MSG_WARN(overriding system type to $withval)
++ cf_cv_system_name=$withval
++ host_os=$withval
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_XOPEN_SOURCE version: 48 updated: 2014/09/01 12:29:14
+ dnl ---------------
+ dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
+ dnl or adapt to the vendor's definitions to get equivalent functionality,
+@@ -3483,16 +3732,17 @@
+ dnl $1 is the nominal value for _XOPEN_SOURCE
+ dnl $2 is the nominal value for _POSIX_C_SOURCE
+ AC_DEFUN([CF_XOPEN_SOURCE],[
++AC_REQUIRE([AC_CANONICAL_HOST])
+
+ cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
+ cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
+ cf_xopen_source=
+
+ case $host_os in #(vi
+-aix[[456]]*) #(vi
++aix[[4-7]]*) #(vi
+ cf_xopen_source="-D_ALL_SOURCE"
+ ;;
+-cygwin) #(vi
++cygwin|msys) #(vi
+ cf_XOPEN_SOURCE=600
+ ;;
+ darwin[[0-8]].*) #(vi
+@@ -3500,6 +3750,7 @@
+ ;;
+ darwin*) #(vi
+ cf_xopen_source="-D_DARWIN_C_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ freebsd*|dragonfly*) #(vi
+ # 5.x headers associate
+@@ -3517,15 +3768,26 @@
+ ;;
+ irix[[56]].*) #(vi
+ cf_xopen_source="-D_SGI_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+ CF_GNU_SOURCE
+ ;;
++minix*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
++ ;;
+ mirbsd*) #(vi
+- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
++ cf_XOPEN_SOURCE=
++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ ;;
+ netbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd[[4-9]]*) #(vi
++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
++ cf_xopen_source="-D_BSD_SOURCE"
++ cf_XOPEN_SOURCE=600
+ ;;
+ openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+@@ -3539,41 +3801,50 @@
+ sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+-solaris2.1[[0-9]]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-solaris2.[[1-9]]) #(vi
++solaris2.*) #(vi
+ cf_xopen_source="-D__EXTENSIONS__"
++ cf_cv_xopen_source=broken
++ ;;
++sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
++ cf_XOPEN_SOURCE=
++ cf_POSIX_C_SOURCE=
+ ;;
+ *)
+- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
+- AC_TRY_COMPILE([#include <sys/types.h>],[
++ CF_TRY_XOPEN_SOURCE
++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
++ ;;
++esac
++
++if test -n "$cf_xopen_source" ; then
++ CF_ADD_CFLAGS($cf_xopen_source,true)
++fi
++
++dnl In anything but the default case, we may have system-specific setting
++dnl which is still not guaranteed to provide all of the entrypoints that
++dnl _XOPEN_SOURCE would yield.
++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
++ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
++ AC_TRY_COMPILE([#include <stdlib.h>],[
+ #ifndef _XOPEN_SOURCE
+ make an error
+ #endif],
+- [cf_cv_xopen_source=no],
+- [cf_save="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- AC_TRY_COMPILE([#include <sys/types.h>],[
+-#ifdef _XOPEN_SOURCE
++ [cf_XOPEN_SOURCE_set=yes],
++ [cf_XOPEN_SOURCE_set=no])
++ AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
++ if test $cf_XOPEN_SOURCE_set = yes
++ then
++ AC_TRY_COMPILE([#include <stdlib.h>],[
++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
+ make an error
+ #endif],
+- [cf_cv_xopen_source=no],
+- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+- CPPFLAGS="$cf_save"
+- ])
+-])
+- if test "$cf_cv_xopen_source" != no ; then
+- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
+- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
+- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+- CF_ADD_CFLAGS($cf_temp_xopen_source)
++ [cf_XOPEN_SOURCE_set_ok=yes],
++ [cf_XOPEN_SOURCE_set_ok=no])
++ if test $cf_XOPEN_SOURCE_set_ok = no
++ then
++ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
++ fi
++ else
++ CF_TRY_XOPEN_SOURCE
+ fi
+- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+- ;;
+-esac
+-
+-if test -n "$cf_xopen_source" ; then
+- CF_ADD_CFLAGS($cf_xopen_source)
+ fi
+ ])
+Index: Ada95/configure
+--- ncurses-5.9/Ada95/configure 2011-03-31 23:34:47.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/configure 2014-12-06 13:38:40.000000000 +0000
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# From configure.in Revision: 1.30 .
++# From configure.in Revision: 1.56 .
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by Autoconf 2.52.20101002.
++# Generated by Autoconf 2.52.20141204.
+ #
+ # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+ # Free Software Foundation, Inc.
+@@ -135,15 +135,16 @@
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+-datadir='${prefix}/share'
++datarootdir='${prefix}/share'
++datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
++infodir='${datarootdir}/info'
++mandir='${datarootdir}/man'
+
+ # Identity of this package.
+ PACKAGE_NAME=
+@@ -194,6 +195,13 @@
+ | --da=*)
+ datadir=$ac_optarg ;;
+
++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
++ | --dataroo | --dataro | --datar)
++ ac_prev=datarootdir ;;
++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
++ datarootdir=$ac_optarg ;;
++
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+@@ -469,7 +477,7 @@
+ done
+
+ # Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
++for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+ do
+ eval ac_val=$`echo $ac_var`
+@@ -606,15 +614,16 @@
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+- --datadir=DIR read-only architecture-independent data [PREFIX/share]
++ --datarootdir=DIR read-only architecture-independent data [PREFIX/share]
++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+- --infodir=DIR info documentation [PREFIX/info]
+- --mandir=DIR man documentation [PREFIX/man]
++ --infodir=DIR info documentation [DATAROOTDIR/info]
++ --mandir=DIR man documentation [DATAROOTDIR/man]
+ EOF
+
+ cat <<\EOF
+@@ -645,7 +654,7 @@
+
+ --with-system-type=XXX test: override derived host system-type
+ --with-pkg-config{=path} enable/disable use of pkg-config
+- --enable-pc-files generate and install .pc files for pkg-config
++ --with-pkg-config-libdir=XXX use given directory for installing pc-files
+ --without-tests suppress build with test-programs
+ --enable-mixed-case tic should assume mixed-case filenames
+ --with-install-prefix prefixes actual install-location ($DESTDIR)
+@@ -660,6 +669,7 @@
+ --with-shared generate shared C-objects (needed for --with-ada-sharedlib)
+ --enable-widec compile with wide-char/UTF-8 code
+ --with-curses-dir=DIR directory in which (n)curses is installed
++ --with-lib-prefix override library-prefix
+ --with-shlib-version=X Specify rel or abi version for shared libs
+ --enable-rpath-link link sample programs with rpath option
+ Fine-Tuning Your Configuration:
+@@ -677,17 +687,18 @@
+ --enable-reentrant compile with experimental reentrant code
+ --with-wrap-prefix=XXX override prefix used for public variables
+ Testing/development Options:
+- --enable-echo build: display "compiling" commands (default)
++ --disable-echo do not display "compiling" commands
+ --enable-warnings build: turn on GCC compiler warnings
+ --enable-assertions test: turn on generation of assertion code
+ --enable-expanded test: generate functions for certain macros
+ --disable-macros test: use functions rather than macros
+ --with-trace test: add trace() function to all models of ncurses
++ --disable-gnat-projects test: disable GNAT projects even if usable
+ Ada95 Binding Options:
+ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)
+ --with-ada-include=DIR Ada includes are in DIR (default: PREFIX/share/ada/adainclude)
+ --with-ada-objects=DIR Ada objects are in DIR (default: PREFIX/lib/ada/adalib)
+- --with-ada-sharedlib=XX build Ada95 shared-library
++ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -757,7 +768,7 @@
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by $as_me, which was
+-generated by GNU Autoconf 2.52.20101002. Invocation command line was
++generated by GNU Autoconf 2.52.20141204. Invocation command line was
+
+ $ $0 $@
+
+@@ -881,7 +892,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+- { echo "$as_me:884: loading site script $ac_site_file" >&5
++ { echo "$as_me:895: loading site script $ac_site_file" >&5
+ echo "$as_me: loading site script $ac_site_file" >&6;}
+ cat "$ac_site_file" >&5
+ . "$ac_site_file"
+@@ -892,7 +903,7 @@
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+- { echo "$as_me:895: loading cache $cache_file" >&5
++ { echo "$as_me:906: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -900,7 +911,7 @@
+ esac
+ fi
+ else
+- { echo "$as_me:903: creating cache $cache_file" >&5
++ { echo "$as_me:914: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+ fi
+@@ -916,21 +927,21 @@
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+- { echo "$as_me:919: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++ { echo "$as_me:930: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+- { echo "$as_me:923: error: \`$ac_var' was not set in the previous run" >&5
++ { echo "$as_me:934: error: \`$ac_var' was not set in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+- { echo "$as_me:929: error: \`$ac_var' has changed since the previous run:" >&5
++ { echo "$as_me:940: error: \`$ac_var' has changed since the previous run:" >&5
+ echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+- { echo "$as_me:931: former value: $ac_old_val" >&5
++ { echo "$as_me:942: former value: $ac_old_val" >&5
+ echo "$as_me: former value: $ac_old_val" >&2;}
+- { echo "$as_me:933: current value: $ac_new_val" >&5
++ { echo "$as_me:944: current value: $ac_new_val" >&5
+ echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+@@ -949,9 +960,9 @@
+ fi
+ done
+ if $ac_cache_corrupted; then
+- { echo "$as_me:952: error: changes in the environment can compromise the build" >&5
++ { echo "$as_me:963: error: changes in the environment can compromise the build" >&5
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- { { echo "$as_me:954: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++ { { echo "$as_me:965: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -963,19 +974,19 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+- *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T=' ' ;;
++case `echo "testing\c" 2>/dev/null; echo 1,2,3`,`echo -n testing 2>/dev/null; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C= # newlines do not sed ;-) only broken shells would use this case anyway
++ ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+ esac
+ echo "#! $SHELL" >conftest.sh
+ echo "exit 0" >>conftest.sh
+ chmod +x conftest.sh
+-if { (echo "$as_me:975: PATH=\".;.\"; conftest.sh") >&5
++if { (echo "$as_me:986: PATH=\".;.\"; conftest.sh") >&5
+ (PATH=".;."; conftest.sh) 2>&5
+ ac_status=$?
+- echo "$as_me:978: \$? = $ac_status" >&5
++ echo "$as_me:989: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_path_separator=';'
+ else
+@@ -1005,7 +1016,7 @@
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+- { { echo "$as_me:1008: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++ { { echo "$as_me:1019: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1015,11 +1026,11 @@
+
+ # Make sure we can run config.sub.
+ $ac_config_sub sun4 >/dev/null 2>&1 ||
+- { { echo "$as_me:1018: error: cannot run $ac_config_sub" >&5
++ { { echo "$as_me:1029: error: cannot run $ac_config_sub" >&5
+ echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+-echo "$as_me:1022: checking build system type" >&5
++echo "$as_me:1033: checking build system type" >&5
+ echo $ECHO_N "checking build system type... $ECHO_C" >&6
+ if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1028,23 +1039,23 @@
+ test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+ test -z "$ac_cv_build_alias" &&
+- { { echo "$as_me:1031: error: cannot guess build type; you must specify one" >&5
++ { { echo "$as_me:1042: error: cannot guess build type; you must specify one" >&5
+ echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+- { { echo "$as_me:1035: error: $ac_config_sub $ac_cv_build_alias failed." >&5
++ { { echo "$as_me:1046: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1040: result: $ac_cv_build" >&5
++echo "$as_me:1051: result: $ac_cv_build" >&5
+ echo "${ECHO_T}$ac_cv_build" >&6
+ build=$ac_cv_build
+ build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+-echo "$as_me:1047: checking host system type" >&5
++echo "$as_me:1058: checking host system type" >&5
+ echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1053,12 +1064,12 @@
+ test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+- { { echo "$as_me:1056: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++ { { echo "$as_me:1067: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1061: result: $ac_cv_host" >&5
++echo "$as_me:1072: result: $ac_cv_host" >&5
+ echo "${ECHO_T}$ac_cv_host" >&6
+ host=$ac_cv_host
+ host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1066,7 +1077,7 @@
+ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+ if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+- echo "$as_me:1069: checking target system type" >&5
++ echo "$as_me:1080: checking target system type" >&5
+ echo $ECHO_N "checking target system type... $ECHO_C" >&6
+ if test "${ac_cv_target+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1075,12 +1086,12 @@
+ test "x$ac_cv_target_alias" = "x" &&
+ ac_cv_target_alias=$ac_cv_host_alias
+ ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+- { { echo "$as_me:1078: error: $ac_config_sub $ac_cv_target_alias failed" >&5
++ { { echo "$as_me:1089: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1083: result: $ac_cv_target" >&5
++echo "$as_me:1094: result: $ac_cv_target" >&5
+ echo "${ECHO_T}$ac_cv_target" >&6
+ target=$ac_cv_target
+ target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1100,7 +1111,8 @@
+ system_name="`(hostname) 2>/dev/null`"
+ fi
+ fi
+-test -n "$system_name" && cat >>confdefs.h <<EOF
++test -n "$system_name" &&
++cat >>confdefs.h <<EOF
+ #define SYSTEM_NAME "$system_name"
+ EOF
+
+@@ -1111,13 +1123,13 @@
+ fi
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+-test -n "$cf_cv_system_name" && echo "$as_me:1114: result: Configuring for $cf_cv_system_name" >&5
++test -n "$cf_cv_system_name" && echo "$as_me:1126: result: Configuring for $cf_cv_system_name" >&5
+ echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
+
+ if test ".$system_name" != ".$cf_cv_system_name" ; then
+- echo "$as_me:1118: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
++ echo "$as_me:1130: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
+- { { echo "$as_me:1120: error: \"Please remove config.cache and try again.\"" >&5
++ { { echo "$as_me:1132: error: \"Please remove config.cache and try again.\"" >&5
+ echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1125,9 +1137,11 @@
+ # Check whether --with-system-type or --without-system-type was given.
+ if test "${with_system_type+set}" = set; then
+ withval="$with_system_type"
+- { echo "$as_me:1128: WARNING: overriding system type to $withval" >&5
++ { echo "$as_me:1140: WARNING: overriding system type to $withval" >&5
+ echo "$as_me: WARNING: overriding system type to $withval" >&2;}
+- cf_cv_system_name=$withval
++ cf_cv_system_name=$withval
++ host_os=$withval
++
+ fi;
+
+ ### Save the given $CFLAGS to allow user-override.
+@@ -1135,23 +1149,23 @@
+
+ ### Default install-location
+
+-echo "$as_me:1138: checking for prefix" >&5
++echo "$as_me:1152: checking for prefix" >&5
+ echo $ECHO_N "checking for prefix... $ECHO_C" >&6
+ if test "x$prefix" = "xNONE" ; then
+ case "$cf_cv_system_name" in
+ # non-vendor systems don't have a conflict
+- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
+ prefix=/usr
+ ;;
+ *) prefix=$ac_default_prefix
+ ;;
+ esac
+ fi
+-echo "$as_me:1150: result: $prefix" >&5
++echo "$as_me:1164: result: $prefix" >&5
+ echo "${ECHO_T}$prefix" >&6
+
+ if test "x$prefix" = "xNONE" ; then
+-echo "$as_me:1154: checking for default include-directory" >&5
++echo "$as_me:1168: checking for default include-directory" >&5
+ echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
+ test -n "$verbose" && echo 1>&6
+ for cf_symbol in \
+@@ -1174,11 +1188,12 @@
+ fi
+ test -n "$verbose" && echo " tested $cf_dir" 1>&6
+ done
+-echo "$as_me:1177: result: $includedir" >&5
++echo "$as_me:1191: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+ fi
+
+ ### Checks for programs.
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -1186,213 +1201,11 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:1191: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-echo "$as_me:1206: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:1214: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:1217: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+- ac_ct_CC=$CC
+- # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:1226: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="gcc"
+-echo "$as_me:1241: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:1249: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:1252: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- CC=$ac_ct_CC
+-else
+- CC="$ac_cv_prog_CC"
+-fi
+-
+-if test -z "$CC"; then
+- if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:1265: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="${ac_tool_prefix}cc"
+-echo "$as_me:1280: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:1288: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:1291: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+- ac_ct_CC=$CC
+- # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:1300: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="cc"
+-echo "$as_me:1315: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:1323: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:1326: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- CC=$ac_ct_CC
+-else
+- CC="$ac_cv_prog_CC"
+-fi
+-
+-fi
+-if test -z "$CC"; then
+- # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:1339: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_prog_rejected=no
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+- ac_prog_rejected=yes
+- continue
+-fi
+-ac_cv_prog_CC="cc"
+-echo "$as_me:1359: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-if test $ac_prog_rejected = yes; then
+- # We found a bogon in the path, so make sure we never use it.
+- set dummy $ac_cv_prog_CC
+- shift
+- if test $# != 0; then
+- # We chose a different compiler from the bogus one.
+- # However, it has the same basename, so the bogon will be chosen
+- # first if we set CC to just the basename; use the full file name.
+- shift
+- set dummy "$ac_dir/$ac_word" ${1+"$@"}
+- shift
+- ac_cv_prog_CC="$@"
+- fi
+-fi
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:1381: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:1384: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$CC"; then
+- if test -n "$ac_tool_prefix"; then
+- for ac_prog in cl
++ for ac_prog in gnatgcc gcc cc
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1395: checking for $ac_word" >&5
++echo "$as_me:1208: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1407,7 +1220,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1410: found $ac_dir/$ac_word" >&5
++echo "$as_me:1223: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1415,10 +1228,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1418: result: $CC" >&5
++ echo "$as_me:1231: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1421: result: no" >&5
++ echo "$as_me:1234: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1427,11 +1240,11 @@
+ fi
+ if test -z "$CC"; then
+ ac_ct_CC=$CC
+- for ac_prog in cl
++ for ac_prog in gnatgcc gcc cc
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1434: checking for $ac_word" >&5
++echo "$as_me:1247: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1446,7 +1259,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+-echo "$as_me:1449: found $ac_dir/$ac_word" >&5
++echo "$as_me:1262: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1454,10 +1267,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1457: result: $ac_ct_CC" >&5
++ echo "$as_me:1270: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1460: result: no" >&5
++ echo "$as_me:1273: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1467,34 +1280,32 @@
+ CC=$ac_ct_CC
+ fi
+
+-fi
+-
+-test -z "$CC" && { { echo "$as_me:1472: error: no acceptable cc found in \$PATH" >&5
++test -z "$CC" && { { echo "$as_me:1283: error: no acceptable cc found in \$PATH" >&5
+ echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Provide some information about the compiler.
+-echo "$as_me:1477:" \
++echo "$as_me:1288:" \
+ "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1480: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1291: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1483: \$? = $ac_status" >&5
++ echo "$as_me:1294: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1485: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1296: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1488: \$? = $ac_status" >&5
++ echo "$as_me:1299: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1490: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1301: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1493: \$? = $ac_status" >&5
++ echo "$as_me:1304: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1497 "configure"
++#line 1308 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1510,13 +1321,13 @@
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-echo "$as_me:1513: checking for C compiler default output" >&5
++echo "$as_me:1324: checking for C compiler default output" >&5
+ echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:1516: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:1327: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+- echo "$as_me:1519: \$? = $ac_status" >&5
++ echo "$as_me:1330: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+ # not robust to junk in `.', hence go to wildcards (a.*) only as a last
+@@ -1539,34 +1350,34 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1542: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:1353: error: C compiler cannot create executables" >&5
+ echo "$as_me: error: C compiler cannot create executables" >&2;}
+ { (exit 77); exit 77; }; }
+ fi
+
+ ac_exeext=$ac_cv_exeext
+-echo "$as_me:1548: result: $ac_file" >&5
++echo "$as_me:1359: result: $ac_file" >&5
+ echo "${ECHO_T}$ac_file" >&6
+
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1553: checking whether the C compiler works" >&5
++echo "$as_me:1364: checking whether the C compiler works" >&5
+ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+- { (eval echo "$as_me:1559: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1370: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1562: \$? = $ac_status" >&5
++ echo "$as_me:1373: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+- { { echo "$as_me:1569: error: cannot run C compiled programs.
++ { { echo "$as_me:1380: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&5
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&2;}
+@@ -1574,24 +1385,24 @@
+ fi
+ fi
+ fi
+-echo "$as_me:1577: result: yes" >&5
++echo "$as_me:1388: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+
+ rm -f a.out a.exe conftest$ac_cv_exeext
+ ac_clean_files=$ac_clean_files_save
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1584: checking whether we are cross compiling" >&5
++echo "$as_me:1395: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1586: result: $cross_compiling" >&5
++echo "$as_me:1397: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+
+-echo "$as_me:1589: checking for executable suffix" >&5
++echo "$as_me:1400: checking for executable suffix" >&5
+ echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1591: \"$ac_link\"") >&5
++if { (eval echo "$as_me:1402: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:1594: \$? = $ac_status" >&5
++ echo "$as_me:1405: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+@@ -1607,25 +1418,25 @@
+ esac
+ done
+ else
+- { { echo "$as_me:1610: error: cannot compute EXEEXT: cannot compile and link" >&5
++ { { echo "$as_me:1421: error: cannot compute EXEEXT: cannot compile and link" >&5
+ echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest$ac_cv_exeext
+-echo "$as_me:1616: result: $ac_cv_exeext" >&5
++echo "$as_me:1427: result: $ac_cv_exeext" >&5
+ echo "${ECHO_T}$ac_cv_exeext" >&6
+
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-echo "$as_me:1622: checking for object suffix" >&5
++echo "$as_me:1433: checking for object suffix" >&5
+ echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+ if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1628 "configure"
++#line 1439 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1637,10 +1448,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1640: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1451: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1643: \$? = $ac_status" >&5
++ echo "$as_me:1454: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+@@ -1652,24 +1463,24 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1655: error: cannot compute OBJEXT: cannot compile" >&5
++{ { echo "$as_me:1466: error: cannot compute OBJEXT: cannot compile" >&5
+ echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1662: result: $ac_cv_objext" >&5
++echo "$as_me:1473: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1666: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:1477: checking whether we are using the GNU C compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1672 "configure"
++#line 1483 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1684,16 +1495,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1687: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1498: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1690: \$? = $ac_status" >&5
++ echo "$as_me:1501: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1693: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1504: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1696: \$? = $ac_status" >&5
++ echo "$as_me:1507: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -1705,19 +1516,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:1708: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:1519: result: $ac_cv_c_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+ GCC=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="-g"
+-echo "$as_me:1714: checking whether $CC accepts -g" >&5
++echo "$as_me:1525: checking whether $CC accepts -g" >&5
+ echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1720 "configure"
++#line 1531 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1729,16 +1540,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1732: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1543: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1735: \$? = $ac_status" >&5
++ echo "$as_me:1546: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1738: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1549: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1741: \$? = $ac_status" >&5
++ echo "$as_me:1552: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+ else
+@@ -1748,7 +1559,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1751: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:1562: result: $ac_cv_prog_cc_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+@@ -1775,16 +1586,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1778: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1589: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1781: \$? = $ac_status" >&5
++ echo "$as_me:1592: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1784: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1595: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1787: \$? = $ac_status" >&5
++ echo "$as_me:1598: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+@@ -1796,7 +1607,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1799 "configure"
++#line 1610 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -1809,16 +1620,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1812: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1623: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1815: \$? = $ac_status" >&5
++ echo "$as_me:1626: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1818: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1629: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1821: \$? = $ac_status" >&5
++ echo "$as_me:1632: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -1828,7 +1639,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1831 "configure"
++#line 1642 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -1840,16 +1651,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1843: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1654: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1846: \$? = $ac_status" >&5
++ echo "$as_me:1657: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1849: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1660: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1852: \$? = $ac_status" >&5
++ echo "$as_me:1663: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -1879,68 +1690,259 @@
+
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+- echo "$as_me:1882: checking version of $CC" >&5
++ echo "$as_me:1693: checking version of $CC" >&5
+ echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
+- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ test -z "$GCC_VERSION" && GCC_VERSION=unknown
+- echo "$as_me:1886: result: $GCC_VERSION" >&5
++ echo "$as_me:1697: result: $GCC_VERSION" >&5
+ echo "${ECHO_T}$GCC_VERSION" >&6
+ fi
+
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-ac_main_return=return
+-echo "$as_me:1896: checking how to run the C preprocessor" >&5
+-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+-# On Suns, sometimes $CPP names a directory.
+-if test -n "$CPP" && test -d "$CPP"; then
+- CPP=
+-fi
+-if test -z "$CPP"; then
+- if test "${ac_cv_prog_CPP+set}" = set; then
++echo "$as_me:1701: checking for $CC option to accept ANSI C" >&5
++echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
++if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- # Double quotes because CPP needs to be expanded
+- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+- do
+- ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+- # Use a header file that comes with gcc, so configuring glibc
+- # with a fresh cross-compiler works.
+- # On the NeXT, cc -E runs the code through the compiler's parser,
+- # not just through cpp. "Syntax error" is here to catch this case.
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 1917 "configure"
++ ac_cv_prog_cc_stdc=no
++ac_save_CC=$CC
++cat >conftest.$ac_ext <<_ACEOF
++#line 1709 "configure"
+ #include "confdefs.h"
+-#include <assert.h>
+- Syntax error
++#include <stdarg.h>
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
++struct buf { int x; };
++FILE * (*rcsopen) (struct buf *, struct stat *, int);
++static char *e (p, i)
++ char **p;
++ int i;
++{
++ return p[i];
++}
++static char *f (char * (*g) (char **, int), char **p, ...)
++{
++ char *s;
++ va_list v;
++ va_start (v,p);
++ s = g (p, va_arg (v,int));
++ va_end (v);
++ return s;
++}
++int test (int i, double x);
++struct s1 {int (*f) (int a);};
++struct s2 {int (*f) (double a);};
++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
++int argc;
++char **argv;
++int
++main ()
++{
++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
++ ;
++ return 0;
++}
+ _ACEOF
+-if { (eval echo "$as_me:1922: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++# Don't try gcc -ansi; that turns off useful extensions and
++# breaks some systems' header files.
++# AIX -qlanglvl=ansi
++# Ultrix and OSF/1 -std1
++# HP-UX 10.20 and later -Ae
++# HP-UX older versions -Aa -D_HPUX_SOURCE
++# SVR4 -Xc -D__EXTENSIONS__
++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
++do
++ CC="$ac_save_CC $ac_arg"
++ rm -f conftest.$ac_objext
++if { (eval echo "$as_me:1758: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:1928: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- :
++ echo "$as_me:1761: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:1764: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:1767: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_prog_cc_stdc=$ac_arg
++break
+ else
+ echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- # Broken: fails on valid input.
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext
++done
++rm -f conftest.$ac_ext conftest.$ac_objext
++CC=$ac_save_CC
++
++fi
++
++case "x$ac_cv_prog_cc_stdc" in
++ x|xno)
++ echo "$as_me:1784: result: none needed" >&5
++echo "${ECHO_T}none needed" >&6 ;;
++ *)
++ echo "$as_me:1787: result: $ac_cv_prog_cc_stdc" >&5
++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
++ CC="$CC $ac_cv_prog_cc_stdc" ;;
++esac
++
++# This should have been defined by AC_PROG_CC
++: ${CC:=cc}
++
++echo "$as_me:1795: checking \$CC variable" >&5
++echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
++case "$CC" in #(vi
++*[\ \ ]-[IUD]*)
++ echo "$as_me:1799: result: broken" >&5
++echo "${ECHO_T}broken" >&6
++ { echo "$as_me:1801: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
++echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
++ # humor him...
++ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'`
++ CC=`echo "$CC" | sed -e 's/[ ].*//'`
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_flags
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++ ;;
++*)
++ echo "$as_me:1887: result: ok" >&5
++echo "${ECHO_T}ok" >&6
++ ;;
++esac
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++ac_main_return=return
++echo "$as_me:1898: checking how to run the C preprocessor" >&5
++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
++# On Suns, sometimes $CPP names a directory.
++if test -n "$CPP" && test -d "$CPP"; then
++ CPP=
++fi
++if test -z "$CPP"; then
++ if test "${ac_cv_prog_CPP+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ # Double quotes because CPP needs to be expanded
++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
++ do
++ ac_preproc_ok=false
++for ac_c_preproc_warn_flag in '' yes
++do
++ # Use a header file that comes with gcc, so configuring glibc
++ # with a fresh cross-compiler works.
++ # On the NeXT, cc -E runs the code through the compiler's parser,
++ # not just through cpp. "Syntax error" is here to catch this case.
++ cat >conftest.$ac_ext <<_ACEOF
++#line 1919 "configure"
++#include "confdefs.h"
++#include <assert.h>
++ Syntax error
++_ACEOF
++if { (eval echo "$as_me:1924: \"$ac_cpp conftest.$ac_ext\"") >&5
++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++ ac_status=$?
++ egrep -v '^ *\+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:1930: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ # Broken: fails on valid input.
+ continue
+ fi
+ rm -f conftest.err conftest.$ac_ext
+@@ -1948,17 +1950,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1951 "configure"
++#line 1953 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:1955: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:1957: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:1961: \$? = $ac_status" >&5
++ echo "$as_me:1963: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1995,7 +1997,7 @@
+ else
+ ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:1998: result: $CPP" >&5
++echo "$as_me:2000: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -2005,18 +2007,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2008 "configure"
++#line 2010 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2013: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2015: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2019: \$? = $ac_status" >&5
++ echo "$as_me:2021: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2039,17 +2041,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2042 "configure"
++#line 2044 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2046: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2048: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2052: \$? = $ac_status" >&5
++ echo "$as_me:2054: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2077,7 +2079,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:2080: error: C preprocessor \"$CPP\" fails sanity check" >&5
++ { { echo "$as_me:2082: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -2090,14 +2092,14 @@
+ ac_main_return=return
+
+ if test $ac_cv_c_compiler_gnu = yes; then
+- echo "$as_me:2093: checking whether $CC needs -traditional" >&5
++ echo "$as_me:2095: checking whether $CC needs -traditional" >&5
+ echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+ if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_pattern="Autoconf.*'x'"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2100 "configure"
++#line 2102 "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+ int Autoconf = TIOCGETP;
+@@ -2112,7 +2114,7 @@
+
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2115 "configure"
++#line 2117 "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+ int Autoconf = TCGETA;
+@@ -2125,14 +2127,14 @@
+
+ fi
+ fi
+-echo "$as_me:2128: result: $ac_cv_prog_gcc_traditional" >&5
++echo "$as_me:2130: result: $ac_cv_prog_gcc_traditional" >&5
+ echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+ if test $ac_cv_prog_gcc_traditional = yes; then
+ CC="$CC -traditional"
+ fi
+ fi
+
+-echo "$as_me:2135: checking whether $CC understands -c and -o together" >&5
++echo "$as_me:2137: checking whether $CC understands -c and -o together" >&5
+ echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
+ if test "${cf_cv_prog_CC_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2148,15 +2150,15 @@
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+-if { (eval echo "$as_me:2151: \"$ac_try\"") >&5
++if { (eval echo "$as_me:2153: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2154: \$? = $ac_status" >&5
++ echo "$as_me:2156: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- test -f conftest2.$ac_objext && { (eval echo "$as_me:2156: \"$ac_try\"") >&5
++ test -f conftest2.$ac_objext && { (eval echo "$as_me:2158: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2159: \$? = $ac_status" >&5
++ echo "$as_me:2161: \$? = $ac_status" >&5
+ (exit $ac_status); };
+ then
+ eval cf_cv_prog_CC_c_o=yes
+@@ -2167,306 +2169,12 @@
+
+ fi
+ if test $cf_cv_prog_CC_c_o = yes; then
+- echo "$as_me:2170: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-else
+- echo "$as_me:2173: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-echo "$as_me:2177: checking for POSIXized ISC" >&5
+-echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
+-if test -d /etc/conf/kconfig.d &&
+- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+-then
+- echo "$as_me:2182: result: yes" >&5
++ echo "$as_me:2172: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+- ISC=yes # If later tests want to check for ISC.
+-
+-cat >>confdefs.h <<\EOF
+-#define _POSIX_SOURCE 1
+-EOF
+-
+- if test "$GCC" = yes; then
+- CC="$CC -posix"
+- else
+- CC="$CC -Xp"
+- fi
+ else
+- echo "$as_me:2196: result: no" >&5
++ echo "$as_me:2175: result: no" >&5
+ echo "${ECHO_T}no" >&6
+- ISC=
+-fi
+-
+-echo "$as_me:2201: checking for ${CC:-cc} option to accept ANSI C" >&5
+-echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
+-if test "${cf_cv_ansi_cc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-cf_cv_ansi_cc=no
+-cf_save_CFLAGS="$CFLAGS"
+-cf_save_CPPFLAGS="$CPPFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc
+-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+-for cf_arg in "-DCC_HAS_PROTOS" \
+- "" \
+- -qlanglvl=ansi \
+- -std1 \
+- -Ae \
+- "-Aa -D_HPUX_SOURCE" \
+- -Xc
+-do
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_arg
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 2305 "configure"
+-#include "confdefs.h"
+-
+-#ifndef CC_HAS_PROTOS
+-#if !defined(__STDC__) || (__STDC__ != 1)
+-choke me
+-#endif
+-#endif
+-
+-int
+-main ()
+-{
+-
+- int test (int i, double x);
+- struct s1 {int (*f) (int a);};
+- struct s2 {int (*f) (double a);};
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2326: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:2329: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2332: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:2335: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_cv_ansi_cc="$cf_arg"; break
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-done
+-CFLAGS="$cf_save_CFLAGS"
+-CPPFLAGS="$cf_save_CPPFLAGS"
+-
+ fi
+-echo "$as_me:2348: result: $cf_cv_ansi_cc" >&5
+-echo "${ECHO_T}$cf_cv_ansi_cc" >&6
+-
+-if test "$cf_cv_ansi_cc" != "no"; then
+-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_cv_ansi_cc
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+-else
+- cat >>confdefs.h <<\EOF
+-#define CC_HAS_PROTOS 1
+-EOF
+-
+-fi
+-fi
+-
+-if test "$cf_cv_ansi_cc" = "no"; then
+- { { echo "$as_me:2441: error: Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto" >&5
+-echo "$as_me: error: Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-case $cf_cv_system_name in
+-os2*)
+- CFLAGS="$CFLAGS -Zmt"
+- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+- CXXFLAGS="$CXXFLAGS -Zmt"
+- # autoconf's macro sets -Zexe and suffix both, which conflict:w
+- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
+- ac_cv_exeext=.exe
+- ;;
+-esac
+-
+-PROG_EXT="$EXEEXT"
+-
+-test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
+-#define PROG_EXT "$PROG_EXT"
+-EOF
+
+ test "$program_prefix" != NONE &&
+ program_transform_name="s,^,$program_prefix,;$program_transform_name"
+@@ -2485,7 +2193,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:2488: checking for $ac_word" >&5
++echo "$as_me:2196: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AWK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2500,7 +2208,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AWK="$ac_prog"
+-echo "$as_me:2503: found $ac_dir/$ac_word" >&5
++echo "$as_me:2211: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2508,21 +2216,21 @@
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+- echo "$as_me:2511: result: $AWK" >&5
++ echo "$as_me:2219: result: $AWK" >&5
+ echo "${ECHO_T}$AWK" >&6
+ else
+- echo "$as_me:2514: result: no" >&5
++ echo "$as_me:2222: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ test -n "$AWK" && break
+ done
+
+-test -z "$AWK" && { { echo "$as_me:2521: error: No awk program found" >&5
++test -z "$AWK" && { { echo "$as_me:2229: error: No awk program found" >&5
+ echo "$as_me: error: No awk program found" >&2;}
+ { (exit 1); exit 1; }; }
+
+-echo "$as_me:2525: checking for egrep" >&5
++echo "$as_me:2233: checking for egrep" >&5
+ echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+ if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2532,11 +2240,11 @@
+ else ac_cv_prog_egrep='egrep'
+ fi
+ fi
+-echo "$as_me:2535: result: $ac_cv_prog_egrep" >&5
++echo "$as_me:2243: result: $ac_cv_prog_egrep" >&5
+ echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+-test -z "$EGREP" && { { echo "$as_me:2539: error: No egrep program found" >&5
++test -z "$EGREP" && { { echo "$as_me:2247: error: No egrep program found" >&5
+ echo "$as_me: error: No egrep program found" >&2;}
+ { (exit 1); exit 1; }; }
+
+@@ -2552,7 +2260,7 @@
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:2555: checking for a BSD compatible install" >&5
++echo "$as_me:2263: checking for a BSD compatible install" >&5
+ echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+@@ -2601,7 +2309,7 @@
+ INSTALL=$ac_install_sh
+ fi
+ fi
+-echo "$as_me:2604: result: $INSTALL" >&5
++echo "$as_me:2312: result: $INSTALL" >&5
+ echo "${ECHO_T}$INSTALL" >&6
+
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+@@ -2612,18 +2320,18 @@
+
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+-echo "$as_me:2615: checking whether ln -s works" >&5
++echo "$as_me:2323: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+ LN_S=$as_ln_s
+ if test "$LN_S" = "ln -s"; then
+- echo "$as_me:2619: result: yes" >&5
++ echo "$as_me:2327: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+- echo "$as_me:2622: result: no, using $LN_S" >&5
++ echo "$as_me:2330: result: no, using $LN_S" >&5
+ echo "${ECHO_T}no, using $LN_S" >&6
+ fi
+
+-echo "$as_me:2626: checking if $LN_S -f options work" >&5
++echo "$as_me:2334: checking if $LN_S -f options work" >&5
+ echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6
+
+ rm -f conf$$.src conf$$dst
+@@ -2635,12 +2343,12 @@
+ cf_prog_ln_sf=no
+ fi
+ rm -f conf$$.dst conf$$src
+-echo "$as_me:2638: result: $cf_prog_ln_sf" >&5
++echo "$as_me:2346: result: $cf_prog_ln_sf" >&5
+ echo "${ECHO_T}$cf_prog_ln_sf" >&6
+
+ test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
+
+-echo "$as_me:2643: checking for long file names" >&5
++echo "$as_me:2351: checking for long file names" >&5
+ echo $ECHO_N "checking for long file names... $ECHO_C" >&6
+ if test "${ac_cv_sys_long_file_names+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2679,7 +2387,7 @@
+ rm -rf $ac_xdir 2>/dev/null
+ done
+ fi
+-echo "$as_me:2682: result: $ac_cv_sys_long_file_names" >&5
++echo "$as_me:2390: result: $ac_cv_sys_long_file_names" >&5
+ echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
+ if test $ac_cv_sys_long_file_names = yes; then
+
+@@ -2691,7 +2399,7 @@
+
+ # if we find pkg-config, check if we should install the ".pc" files.
+
+-echo "$as_me:2694: checking if you want to use pkg-config" >&5
++echo "$as_me:2402: checking if you want to use pkg-config" >&5
+ echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
+
+ # Check whether --with-pkg-config or --without-pkg-config was given.
+@@ -2701,7 +2409,7 @@
+ else
+ cf_pkg_config=yes
+ fi;
+-echo "$as_me:2704: result: $cf_pkg_config" >&5
++echo "$as_me:2412: result: $cf_pkg_config" >&5
+ echo "${ECHO_T}$cf_pkg_config" >&6
+
+ case $cf_pkg_config in #(vi
+@@ -2709,10 +2417,11 @@
+ PKG_CONFIG=none
+ ;;
+ yes) #(vi
+- if test -n "$ac_tool_prefix"; then
++
++if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+-echo "$as_me:2715: checking for $ac_word" >&5
++echo "$as_me:2424: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2729,7 +2438,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:2732: found $ac_dir/$ac_word" >&5
++ echo "$as_me:2441: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -2740,10 +2449,10 @@
+ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+ if test -n "$PKG_CONFIG"; then
+- echo "$as_me:2743: result: $PKG_CONFIG" >&5
++ echo "$as_me:2452: result: $PKG_CONFIG" >&5
+ echo "${ECHO_T}$PKG_CONFIG" >&6
+ else
+- echo "$as_me:2746: result: no" >&5
++ echo "$as_me:2455: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2752,7 +2461,7 @@
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+-echo "$as_me:2755: checking for $ac_word" >&5
++echo "$as_me:2464: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2769,7 +2478,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:2772: found $ac_dir/$ac_word" >&5
++ echo "$as_me:2481: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -2781,10 +2490,10 @@
+ ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+
+ if test -n "$ac_pt_PKG_CONFIG"; then
+- echo "$as_me:2784: result: $ac_pt_PKG_CONFIG" >&5
++ echo "$as_me:2493: result: $ac_pt_PKG_CONFIG" >&5
+ echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+ else
+- echo "$as_me:2787: result: no" >&5
++ echo "$as_me:2496: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2815,7 +2524,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval PKG_CONFIG="$PKG_CONFIG"
+ case ".$PKG_CONFIG" in #(vi
+ .NONE/*)
+@@ -2827,7 +2536,7 @@
+ PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:2830: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
++ { { echo "$as_me:2539: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -2836,35 +2545,48 @@
+ fi
+
+ if test "$PKG_CONFIG" != none ; then
+- echo "$as_me:2839: checking if we should install .pc files for $PKG_CONFIG" >&5
+-echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
++ echo "$as_me:2548: checking for $PKG_CONFIG library directory" >&5
++echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6
+
+- # Leave this as something that can be overridden in the environment.
+- if test -z "$PKG_CONFIG_LIBDIR" ; then
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
+- fi
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
+-
+-# Check whether --enable-pc-files or --disable-pc-files was given.
+-if test "${enable_pc_files+set}" = set; then
+- enableval="$enable_pc_files"
+- enable_pc_files=$enableval
++# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given.
++if test "${with_pkg_config_libdir+set}" = set; then
++ withval="$with_pkg_config_libdir"
++ PKG_CONFIG_LIBDIR=$withval
+ else
+- enable_pc_files=no
++ PKG_CONFIG_LIBDIR=yes
+ fi;
+- echo "$as_me:2856: result: $enable_pc_files" >&5
+-echo "${ECHO_T}$enable_pc_files" >&6
+- else
+- echo "$as_me:2859: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- { echo "$as_me:2861: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
+-echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
+- enable_pc_files=no
+- fi
++
++ case x$PKG_CONFIG_LIBDIR in #(vi
++ x/*) #(vi
++ ;;
++ xyes) #(vi
++ # look for the library directory using the same prefix as the executable
++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`
++ case x`(arch) 2>/dev/null` in #(vi
++ *64) #(vi
++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
++ do
++ if test -d $cf_config/pkgconfig
++ then
++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
++ break
++ fi
++ done
++ ;;
++ *)
++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
++ ;;
++ esac
++ ;;
++ *)
++ ;;
++ esac
++
++ echo "$as_me:2585: result: $PKG_CONFIG_LIBDIR" >&5
++echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
+ fi
+
+-echo "$as_me:2867: checking if you want to build test-programs" >&5
++echo "$as_me:2589: checking if you want to build test-programs" >&5
+ echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
+
+ # Check whether --with-tests or --without-tests was given.
+@@ -2874,10 +2596,10 @@
+ else
+ cf_with_tests=yes
+ fi;
+-echo "$as_me:2877: result: $cf_with_tests" >&5
++echo "$as_me:2599: result: $cf_with_tests" >&5
+ echo "${ECHO_T}$cf_with_tests" >&6
+
+-echo "$as_me:2880: checking if we should assume mixed-case filenames" >&5
++echo "$as_me:2602: checking if we should assume mixed-case filenames" >&5
+ echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
+
+ # Check whether --enable-mixed-case or --disable-mixed-case was given.
+@@ -2887,11 +2609,11 @@
+ else
+ enable_mixedcase=auto
+ fi;
+-echo "$as_me:2890: result: $enable_mixedcase" >&5
++echo "$as_me:2612: result: $enable_mixedcase" >&5
+ echo "${ECHO_T}$enable_mixedcase" >&6
+ if test "$enable_mixedcase" = "auto" ; then
+
+-echo "$as_me:2894: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:2616: checking if filesystem supports mixed-case filenames" >&5
+ echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+ if test "${cf_cv_mixedcase+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2899,7 +2621,7 @@
+
+ if test "$cross_compiling" = yes ; then
+ case $target_alias in #(vi
+- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
+ cf_cv_mixedcase=no
+ ;;
+ *)
+@@ -2918,9 +2640,10 @@
+ fi
+
+ fi
+-echo "$as_me:2921: result: $cf_cv_mixedcase" >&5
++echo "$as_me:2643: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_mixedcase" = yes &&
++cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+ EOF
+
+@@ -2935,7 +2658,7 @@
+ fi
+
+ # do this after mixed-case option (tags/TAGS is not as important as tic).
+-echo "$as_me:2938: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:2661: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+ if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+@@ -2955,11 +2678,11 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+- echo "$as_me:2958: result: yes" >&5
++ echo "$as_me:2681: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+ else
+- echo "$as_me:2962: result: no" >&5
++ echo "$as_me:2685: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -2968,7 +2691,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2971: checking for $ac_word" >&5
++echo "$as_me:2694: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CTAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2983,7 +2706,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CTAGS="$ac_prog"
+-echo "$as_me:2986: found $ac_dir/$ac_word" >&5
++echo "$as_me:2709: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2991,10 +2714,10 @@
+ fi
+ CTAGS=$ac_cv_prog_CTAGS
+ if test -n "$CTAGS"; then
+- echo "$as_me:2994: result: $CTAGS" >&5
++ echo "$as_me:2717: result: $CTAGS" >&5
+ echo "${ECHO_T}$CTAGS" >&6
+ else
+- echo "$as_me:2997: result: no" >&5
++ echo "$as_me:2720: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3005,7 +2728,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3008: checking for $ac_word" >&5
++echo "$as_me:2731: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ETAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3020,7 +2743,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ETAGS="$ac_prog"
+-echo "$as_me:3023: found $ac_dir/$ac_word" >&5
++echo "$as_me:2746: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3028,10 +2751,10 @@
+ fi
+ ETAGS=$ac_cv_prog_ETAGS
+ if test -n "$ETAGS"; then
+- echo "$as_me:3031: result: $ETAGS" >&5
++ echo "$as_me:2754: result: $ETAGS" >&5
+ echo "${ECHO_T}$ETAGS" >&6
+ else
+- echo "$as_me:3034: result: no" >&5
++ echo "$as_me:2757: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3040,7 +2763,7 @@
+
+ # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
+ set dummy ${CTAGS:-ctags}; ac_word=$2
+-echo "$as_me:3043: checking for $ac_word" >&5
++echo "$as_me:2766: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3055,7 +2778,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_LOWER_TAGS="yes"
+-echo "$as_me:3058: found $ac_dir/$ac_word" >&5
++echo "$as_me:2781: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3064,17 +2787,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+- echo "$as_me:3067: result: $MAKE_LOWER_TAGS" >&5
++ echo "$as_me:2790: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+- echo "$as_me:3070: result: no" >&5
++ echo "$as_me:2793: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ if test "$cf_cv_mixedcase" = yes ; then
+ # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
+ set dummy ${ETAGS:-etags}; ac_word=$2
+-echo "$as_me:3077: checking for $ac_word" >&5
++echo "$as_me:2800: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3089,7 +2812,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_UPPER_TAGS="yes"
+-echo "$as_me:3092: found $ac_dir/$ac_word" >&5
++echo "$as_me:2815: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3098,10 +2821,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+- echo "$as_me:3101: result: $MAKE_UPPER_TAGS" >&5
++ echo "$as_me:2824: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+- echo "$as_me:3104: result: no" >&5
++ echo "$as_me:2827: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3121,7 +2844,7 @@
+ MAKE_LOWER_TAGS="#"
+ fi
+
+-echo "$as_me:3124: checking for makeflags variable" >&5
++echo "$as_me:2847: 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
+@@ -3137,7 +2860,7 @@
+ CF_EOF
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[ ]*$,,'`
+ case "$cf_result" in
+- .*k)
++ .*k|.*kw)
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
+ case "$cf_result" in
+ .*CC=*) cf_cv_makeflags=
+@@ -3155,13 +2878,13 @@
+ rm -f cf_makeflags.tmp
+
+ fi
+-echo "$as_me:3158: result: $cf_cv_makeflags" >&5
++echo "$as_me:2881: result: $cf_cv_makeflags" >&5
+ echo "${ECHO_T}$cf_cv_makeflags" >&6
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:3164: checking for $ac_word" >&5
++echo "$as_me:2887: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3176,7 +2899,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-echo "$as_me:3179: found $ac_dir/$ac_word" >&5
++echo "$as_me:2902: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3184,10 +2907,10 @@
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+- echo "$as_me:3187: result: $RANLIB" >&5
++ echo "$as_me:2910: result: $RANLIB" >&5
+ echo "${ECHO_T}$RANLIB" >&6
+ else
+- echo "$as_me:3190: result: no" >&5
++ echo "$as_me:2913: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3196,7 +2919,7 @@
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+-echo "$as_me:3199: checking for $ac_word" >&5
++echo "$as_me:2922: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3211,7 +2934,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+-echo "$as_me:3214: found $ac_dir/$ac_word" >&5
++echo "$as_me:2937: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3220,10 +2943,10 @@
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+- echo "$as_me:3223: result: $ac_ct_RANLIB" >&5
++ echo "$as_me:2946: result: $ac_ct_RANLIB" >&5
+ echo "${ECHO_T}$ac_ct_RANLIB" >&6
+ else
+- echo "$as_me:3226: result: no" >&5
++ echo "$as_me:2949: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3235,7 +2958,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ld; ac_word=$2
+-echo "$as_me:3238: checking for $ac_word" >&5
++echo "$as_me:2961: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3250,7 +2973,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LD="${ac_tool_prefix}ld"
+-echo "$as_me:3253: found $ac_dir/$ac_word" >&5
++echo "$as_me:2976: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3258,10 +2981,10 @@
+ fi
+ LD=$ac_cv_prog_LD
+ if test -n "$LD"; then
+- echo "$as_me:3261: result: $LD" >&5
++ echo "$as_me:2984: result: $LD" >&5
+ echo "${ECHO_T}$LD" >&6
+ else
+- echo "$as_me:3264: result: no" >&5
++ echo "$as_me:2987: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3270,7 +2993,7 @@
+ ac_ct_LD=$LD
+ # Extract the first word of "ld", so it can be a program name with args.
+ set dummy ld; ac_word=$2
+-echo "$as_me:3273: checking for $ac_word" >&5
++echo "$as_me:2996: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3285,7 +3008,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_LD="ld"
+-echo "$as_me:3288: found $ac_dir/$ac_word" >&5
++echo "$as_me:3011: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3294,10 +3017,10 @@
+ fi
+ ac_ct_LD=$ac_cv_prog_ac_ct_LD
+ if test -n "$ac_ct_LD"; then
+- echo "$as_me:3297: result: $ac_ct_LD" >&5
++ echo "$as_me:3020: result: $ac_ct_LD" >&5
+ echo "${ECHO_T}$ac_ct_LD" >&6
+ else
+- echo "$as_me:3300: result: no" >&5
++ echo "$as_me:3023: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3309,7 +3032,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:3312: checking for $ac_word" >&5
++echo "$as_me:3035: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3324,7 +3047,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:3327: found $ac_dir/$ac_word" >&5
++echo "$as_me:3050: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3332,10 +3055,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+- echo "$as_me:3335: result: $AR" >&5
++ echo "$as_me:3058: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+- echo "$as_me:3338: result: no" >&5
++ echo "$as_me:3061: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3344,7 +3067,7 @@
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:3347: checking for $ac_word" >&5
++echo "$as_me:3070: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3359,7 +3082,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:3362: found $ac_dir/$ac_word" >&5
++echo "$as_me:3085: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3368,10 +3091,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+- echo "$as_me:3371: result: $ac_ct_AR" >&5
++ echo "$as_me:3094: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+- echo "$as_me:3374: result: no" >&5
++ echo "$as_me:3097: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3383,7 +3106,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:3386: checking for $ac_word" >&5
++echo "$as_me:3109: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3398,7 +3121,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:3401: found $ac_dir/$ac_word" >&5
++echo "$as_me:3124: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3406,10 +3129,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+- echo "$as_me:3409: result: $AR" >&5
++ echo "$as_me:3132: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+- echo "$as_me:3412: result: no" >&5
++ echo "$as_me:3135: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3418,7 +3141,7 @@
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:3421: checking for $ac_word" >&5
++echo "$as_me:3144: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3433,7 +3156,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:3436: found $ac_dir/$ac_word" >&5
++echo "$as_me:3159: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3442,10 +3165,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+- echo "$as_me:3445: result: $ac_ct_AR" >&5
++ echo "$as_me:3168: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+- echo "$as_me:3448: result: no" >&5
++ echo "$as_me:3171: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3454,7 +3177,7 @@
+ AR="$ac_cv_prog_AR"
+ fi
+
+-echo "$as_me:3457: checking for options to update archives" >&5
++echo "$as_me:3180: checking for options to update archives" >&5
+ echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
+ if test "${cf_cv_ar_flags+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3477,13 +3200,13 @@
+ rm -f conftest.a
+
+ cat >conftest.$ac_ext <<EOF
+-#line 3480 "configure"
++#line 3203 "configure"
+ int testdata[3] = { 123, 456, 789 };
+ EOF
+- if { (eval echo "$as_me:3483: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:3206: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3486: \$? = $ac_status" >&5
++ echo "$as_me:3209: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
+ $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
+@@ -3494,7 +3217,7 @@
+ else
+ test -n "$verbose" && echo " cannot compile test-program" 1>&6
+
+-echo "${as_me:-configure}:3497: testing cannot compile test-program ..." 1>&5
++echo "${as_me:-configure}:3220: testing cannot compile test-program ..." 1>&5
+
+ break
+ fi
+@@ -3502,7 +3225,7 @@
+ rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+
+ fi
+-echo "$as_me:3505: result: $cf_cv_ar_flags" >&5
++echo "$as_me:3228: result: $cf_cv_ar_flags" >&5
+ echo "${ECHO_T}$cf_cv_ar_flags" >&6
+
+ if test -n "$ARFLAGS" ; then
+@@ -3513,7 +3236,17 @@
+ ARFLAGS=$cf_cv_ar_flags
+ fi
+
+-echo "$as_me:3516: checking if you have specified an install-prefix" >&5
++ echo "$as_me:3239: checking for PATH separator" >&5
++echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6
++ case $cf_cv_system_name in
++ os2*) PATH_SEPARATOR=';' ;;
++ *) ${PATH_SEPARATOR:=':'} ;;
++ esac
++
++ echo "$as_me:3246: result: $PATH_SEPARATOR" >&5
++echo "${ECHO_T}$PATH_SEPARATOR" >&6
++
++echo "$as_me:3249: checking if you have specified an install-prefix" >&5
+ echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
+
+ # Check whether --with-install-prefix or --without-install-prefix was given.
+@@ -3526,7 +3259,7 @@
+ ;;
+ esac
+ fi;
+-echo "$as_me:3529: result: $DESTDIR" >&5
++echo "$as_me:3262: result: $DESTDIR" >&5
+ echo "${ECHO_T}$DESTDIR" >&6
+
+ ###############################################################################
+@@ -3554,7 +3287,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3557: checking for $ac_word" >&5
++echo "$as_me:3290: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_BUILD_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3569,7 +3302,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_BUILD_CC="$ac_prog"
+-echo "$as_me:3572: found $ac_dir/$ac_word" >&5
++echo "$as_me:3305: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3577,10 +3310,10 @@
+ fi
+ BUILD_CC=$ac_cv_prog_BUILD_CC
+ if test -n "$BUILD_CC"; then
+- echo "$as_me:3580: result: $BUILD_CC" >&5
++ echo "$as_me:3313: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+ else
+- echo "$as_me:3583: result: no" >&5
++ echo "$as_me:3316: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3588,12 +3321,12 @@
+ done
+
+ fi;
+- echo "$as_me:3591: checking for native build C compiler" >&5
++ echo "$as_me:3324: checking for native build C compiler" >&5
+ echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
+- echo "$as_me:3593: result: $BUILD_CC" >&5
++ echo "$as_me:3326: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+
+- echo "$as_me:3596: checking for native build C preprocessor" >&5
++ echo "$as_me:3329: checking for native build C preprocessor" >&5
+ echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
+
+ # Check whether --with-build-cpp or --without-build-cpp was given.
+@@ -3603,10 +3336,10 @@
+ else
+ BUILD_CPP='${BUILD_CC} -E'
+ fi;
+- echo "$as_me:3606: result: $BUILD_CPP" >&5
++ echo "$as_me:3339: result: $BUILD_CPP" >&5
+ echo "${ECHO_T}$BUILD_CPP" >&6
+
+- echo "$as_me:3609: checking for native build C flags" >&5
++ echo "$as_me:3342: checking for native build C flags" >&5
+ echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
+
+ # Check whether --with-build-cflags or --without-build-cflags was given.
+@@ -3614,10 +3347,10 @@
+ withval="$with_build_cflags"
+ BUILD_CFLAGS="$withval"
+ fi;
+- echo "$as_me:3617: result: $BUILD_CFLAGS" >&5
++ echo "$as_me:3350: result: $BUILD_CFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CFLAGS" >&6
+
+- echo "$as_me:3620: checking for native build C preprocessor-flags" >&5
++ echo "$as_me:3353: checking for native build C preprocessor-flags" >&5
+ echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
+
+ # Check whether --with-build-cppflags or --without-build-cppflags was given.
+@@ -3625,10 +3358,10 @@
+ withval="$with_build_cppflags"
+ BUILD_CPPFLAGS="$withval"
+ fi;
+- echo "$as_me:3628: result: $BUILD_CPPFLAGS" >&5
++ echo "$as_me:3361: result: $BUILD_CPPFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
+
+- echo "$as_me:3631: checking for native build linker-flags" >&5
++ echo "$as_me:3364: checking for native build linker-flags" >&5
+ echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
+
+ # Check whether --with-build-ldflags or --without-build-ldflags was given.
+@@ -3636,10 +3369,10 @@
+ withval="$with_build_ldflags"
+ BUILD_LDFLAGS="$withval"
+ fi;
+- echo "$as_me:3639: result: $BUILD_LDFLAGS" >&5
++ echo "$as_me:3372: result: $BUILD_LDFLAGS" >&5
+ echo "${ECHO_T}$BUILD_LDFLAGS" >&6
+
+- echo "$as_me:3642: checking for native build linker-libraries" >&5
++ echo "$as_me:3375: checking for native build linker-libraries" >&5
+ echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
+
+ # Check whether --with-build-libs or --without-build-libs was given.
+@@ -3647,7 +3380,7 @@
+ withval="$with_build_libs"
+ BUILD_LIBS="$withval"
+ fi;
+- echo "$as_me:3650: result: $BUILD_LIBS" >&5
++ echo "$as_me:3383: result: $BUILD_LIBS" >&5
+ echo "${ECHO_T}$BUILD_LIBS" >&6
+
+ # this assumes we're on Unix.
+@@ -3657,7 +3390,7 @@
+ : ${BUILD_CC:='${CC}'}
+
+ if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
+- { { echo "$as_me:3660: error: Cross-build requires two compilers.
++ { { echo "$as_me:3393: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&5
+ echo "$as_me: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&2;}
+@@ -3682,7 +3415,7 @@
+ ### shared, for example.
+ cf_list_models=""
+
+-echo "$as_me:3685: checking if you want to build shared C-objects" >&5
++echo "$as_me:3418: checking if you want to build shared C-objects" >&5
+ echo $ECHO_N "checking if you want to build shared C-objects... $ECHO_C" >&6
+
+ # Check whether --with-shared or --without-shared was given.
+@@ -3692,27 +3425,27 @@
+ else
+ with_shared=no
+ fi;
+-echo "$as_me:3695: result: $with_shared" >&5
++echo "$as_me:3428: result: $with_shared" >&5
+ echo "${ECHO_T}$with_shared" >&6
+ test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
+
+-echo "$as_me:3699: checking for specified models" >&5
++echo "$as_me:3432: checking for specified models" >&5
+ echo $ECHO_N "checking for specified models... $ECHO_C" >&6
+ test -z "$cf_list_models" && cf_list_models=normal
+-echo "$as_me:3702: result: $cf_list_models" >&5
++echo "$as_me:3435: result: $cf_list_models" >&5
+ echo "${ECHO_T}$cf_list_models" >&6
+
+ ### Use the first model as the default, and save its suffix for use in building
+ ### up test-applications.
+-echo "$as_me:3707: checking for default model" >&5
++echo "$as_me:3440: checking for default model" >&5
+ echo $ECHO_N "checking for default model... $ECHO_C" >&6
+ DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
+-echo "$as_me:3710: result: $DFT_LWR_MODEL" >&5
++echo "$as_me:3443: result: $DFT_LWR_MODEL" >&5
+ echo "${ECHO_T}$DFT_LWR_MODEL" >&6
+
+ DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+-echo "$as_me:3715: checking for specific curses-directory" >&5
++echo "$as_me:3448: checking for specific curses-directory" >&5
+ echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
+
+ # Check whether --with-curses-dir or --without-curses-dir was given.
+@@ -3722,7 +3455,7 @@
+ else
+ cf_cv_curses_dir=no
+ fi;
+-echo "$as_me:3725: result: $cf_cv_curses_dir" >&5
++echo "$as_me:3458: result: $cf_cv_curses_dir" >&5
+ echo "${ECHO_T}$cf_cv_curses_dir" >&6
+
+ if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+@@ -3741,7 +3474,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval withval="$withval"
+ case ".$withval" in #(vi
+ .NONE/*)
+@@ -3753,7 +3486,7 @@
+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:3756: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:3489: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -3786,7 +3519,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3789 "configure"
++#line 3522 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -3798,16 +3531,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3801: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3534: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3804: \$? = $ac_status" >&5
++ echo "$as_me:3537: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3807: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3540: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3810: \$? = $ac_status" >&5
++ echo "$as_me:3543: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -3824,7 +3557,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:3827: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:3560: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -3858,7 +3591,7 @@
+ if test "$cf_have_libdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-echo "${as_me:-configure}:3861: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:3594: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+ fi
+@@ -3869,7 +3602,7 @@
+ fi
+ fi
+
+-echo "$as_me:3872: checking if you want wide-character code" >&5
++echo "$as_me:3605: checking if you want wide-character code" >&5
+ echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
+
+ # Check whether --enable-widec or --disable-widec was given.
+@@ -3879,11 +3612,11 @@
+ else
+ with_widec=no
+ fi;
+-echo "$as_me:3882: result: $with_widec" >&5
++echo "$as_me:3615: result: $with_widec" >&5
+ echo "${ECHO_T}$with_widec" >&6
+ if test "$with_widec" = yes ; then
+
+-echo "$as_me:3886: checking for multibyte character support" >&5
++echo "$as_me:3619: checking for multibyte character support" >&5
+ echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
+ if test "${cf_cv_utf8_lib+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3891,7 +3624,7 @@
+
+ cf_save_LIBS="$LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3894 "configure"
++#line 3627 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -3904,16 +3637,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3907: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3640: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3910: \$? = $ac_status" >&5
++ echo "$as_me:3643: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3913: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3646: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3916: \$? = $ac_status" >&5
++ echo "$as_me:3649: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_utf8_lib=yes
+ else
+@@ -3925,12 +3658,12 @@
+ cf_cv_header_path_utf8=
+ cf_cv_library_path_utf8=
+
+-echo "${as_me:-configure}:3928: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:3661: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+
+ cf_save_LIBS="$LIBS"
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3933 "configure"
++#line 3666 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -3943,16 +3676,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3946: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3679: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3949: \$? = $ac_status" >&5
++ echo "$as_me:3682: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3952: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3685: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3955: \$? = $ac_status" >&5
++ echo "$as_me:3688: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_find_linkage_utf8=yes
+@@ -3966,7 +3699,7 @@
+ LIBS="-lutf8 $cf_save_LIBS"
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3969 "configure"
++#line 3702 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -3979,16 +3712,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:3982: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3715: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:3985: \$? = $ac_status" >&5
++ echo "$as_me:3718: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:3988: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3721: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3991: \$? = $ac_status" >&5
++ echo "$as_me:3724: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_find_linkage_utf8=yes
+@@ -4005,9 +3738,9 @@
+
+ test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
+
+-echo "${as_me:-configure}:4008: testing find linkage for utf8 library ..." 1>&5
++echo "${as_me:-configure}:3741: testing find linkage for utf8 library ..." 1>&5
+
+-echo "${as_me:-configure}:4010: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:3743: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+
+ cf_save_CPPFLAGS="$CPPFLAGS"
+ cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -4023,7 +3756,7 @@
+ -I*)
+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+
+-test "$cf_header_path" != "NONE" && \
++test "x$cf_header_path" != "xNONE" && \
+ test -d "$cf_header_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+@@ -4044,18 +3777,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8"
+- test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include"
+- test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include"
+- test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+@@ -4066,39 +3788,28 @@
+ test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8"
+- test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include"
+- test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include"
+- test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8"
+- test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include"
+- test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include"
+- test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8"
+- test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include"
+- test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include"
+- test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/utf8 && cf_search="$cf_search $cf_subdir_prefix/include/utf8"
++ test -d $cf_subdir_prefix/include/utf8/include && cf_search="$cf_search $cf_subdir_prefix/include/utf8/include"
++ test -d $cf_subdir_prefix/utf8/include && cf_search="$cf_search $cf_subdir_prefix/utf8/include"
++ test -d $cf_subdir_prefix/utf8/include/utf8 && cf_search="$cf_search $cf_subdir_prefix/utf8/include/utf8"
+ }
+
++done
++
+ test "$includedir" != NONE && \
+ test "$includedir" != "/usr/include" && \
+ test -d "$includedir" && {
+@@ -4120,11 +3831,11 @@
+ if test -d $cf_cv_header_path_utf8 ; then
+ test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:4123: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:3834: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+
+ CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4127 "configure"
++#line 3838 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -4137,21 +3848,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4140: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3851: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4143: \$? = $ac_status" >&5
++ echo "$as_me:3854: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4146: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3857: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4149: \$? = $ac_status" >&5
++ echo "$as_me:3860: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:4154: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:3865: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+
+ cf_cv_find_linkage_utf8=maybe
+ cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -4169,7 +3880,7 @@
+
+ if test "$cf_cv_find_linkage_utf8" = maybe ; then
+
+-echo "${as_me:-configure}:4172: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:3883: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+
+ cf_save_LIBS="$LIBS"
+ cf_save_LDFLAGS="$LDFLAGS"
+@@ -4185,7 +3896,7 @@
+ -L*)
+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+-test "$cf_library_path" != "NONE" && \
++test "x$cf_library_path" != "xNONE" && \
+ test -d "$cf_library_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+@@ -4204,18 +3915,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8"
+- test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib"
+- test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib"
+- test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+@@ -4226,39 +3926,28 @@
+ test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/utf8 && cf_search="$cf_search /usr/local/lib/utf8"
+- test -d /usr/local/lib/utf8/lib && cf_search="$cf_search /usr/local/lib/utf8/lib"
+- test -d /usr/local/utf8/lib && cf_search="$cf_search /usr/local/utf8/lib"
+- test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/utf8 && cf_search="$cf_search /opt/lib/utf8"
+- test -d /opt/lib/utf8/lib && cf_search="$cf_search /opt/lib/utf8/lib"
+- test -d /opt/utf8/lib && cf_search="$cf_search /opt/utf8/lib"
+- test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/utf8 && cf_search="$cf_search $HOME/lib/utf8"
+- test -d $HOME/lib/utf8/lib && cf_search="$cf_search $HOME/lib/utf8/lib"
+- test -d $HOME/utf8/lib && cf_search="$cf_search $HOME/utf8/lib"
+- test -d $HOME/utf8/lib/utf8 && cf_search="$cf_search $HOME/utf8/lib/utf8"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/utf8 && cf_search="$cf_search $cf_subdir_prefix/lib/utf8"
++ test -d $cf_subdir_prefix/lib/utf8/lib && cf_search="$cf_search $cf_subdir_prefix/lib/utf8/lib"
++ test -d $cf_subdir_prefix/utf8/lib && cf_search="$cf_search $cf_subdir_prefix/utf8/lib"
++ test -d $cf_subdir_prefix/utf8/lib/utf8 && cf_search="$cf_search $cf_subdir_prefix/utf8/lib/utf8"
+ }
+
++done
++
+ cf_search="$cf_library_path_list $cf_search"
+
+ for cf_cv_library_path_utf8 in $cf_search
+@@ -4266,13 +3955,13 @@
+ if test -d $cf_cv_library_path_utf8 ; then
+ test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:4269: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:3958: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+
+ CPPFLAGS="$cf_test_CPPFLAGS"
+ LIBS="-lutf8 $cf_save_LIBS"
+ LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4275 "configure"
++#line 3964 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -4285,21 +3974,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4288: \"$ac_link\"") >&5
++if { (eval echo "$as_me:3977: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4291: \$? = $ac_status" >&5
++ echo "$as_me:3980: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4294: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3983: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4297: \$? = $ac_status" >&5
++ echo "$as_me:3986: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:4302: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:3991: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+
+ cf_cv_find_linkage_utf8=yes
+ cf_cv_library_file_utf8="-lutf8"
+@@ -4341,13 +4030,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:4344: result: $cf_cv_utf8_lib" >&5
++echo "$as_me:4033: result: $cf_cv_utf8_lib" >&5
+ echo "${ECHO_T}$cf_cv_utf8_lib" >&6
+
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+ # ncurses/ncursesw:
+ if test "$cf_cv_utf8_lib" = "add-on" ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBUTF8_H 1
+ EOF
+
+@@ -4375,7 +4065,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4378 "configure"
++#line 4068 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4387,16 +4077,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4390: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4080: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4393: \$? = $ac_status" >&5
++ echo "$as_me:4083: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4396: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4086: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4399: \$? = $ac_status" >&5
++ echo "$as_me:4089: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -4413,7 +4103,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:4416: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4106: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -4447,71 +4137,140 @@
+ if test "$cf_have_libdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-echo "${as_me:-configure}:4450: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:4140: testing adding $cf_add_libdir to library-path ..." 1>&5
++
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
++ fi
++ done
++fi
++
++cf_add_libs="$cf_cv_library_file_utf8"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++fi
++
++cf_ncuconfig_root=ncursesw
++
++echo "Looking for ${cf_ncuconfig_root}-config"
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:4175: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$NCURSES_CONFIG"; then
++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
++echo "$as_me:4190: found $ac_dir/$ac_word" >&5
++break
++done
+
+- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+- fi
+- fi
+- done
+ fi
+-
+- LIBS="$cf_cv_library_file_utf8 $LIBS"
++fi
++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
++if test -n "$NCURSES_CONFIG"; then
++ echo "$as_me:4198: result: $NCURSES_CONFIG" >&5
++echo "${ECHO_T}$NCURSES_CONFIG" >&6
++else
++ echo "$as_me:4201: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+
+-cf_ncuconfig_root=ncursesw
+-
+-echo "Looking for ${cf_ncuconfig_root}-config"
+-for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++ test -n "$NCURSES_CONFIG" && break
++ done
++fi
++if test -z "$NCURSES_CONFIG"; then
++ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:4468: checking for $ac_word" >&5
++echo "$as_me:4214: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- case $NCURSES_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
++ if test -n "$ac_ct_NCURSES_CONFIG"; then
++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
++else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:4485: found $ac_dir/$ac_word" >&5
+- break
+-fi
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
++echo "$as_me:4229: found $ac_dir/$ac_word" >&5
++break
+ done
+
+- ;;
+-esac
+ fi
+-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+-
+-if test -n "$NCURSES_CONFIG"; then
+- echo "$as_me:4496: result: $NCURSES_CONFIG" >&5
+-echo "${ECHO_T}$NCURSES_CONFIG" >&6
++fi
++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
++if test -n "$ac_ct_NCURSES_CONFIG"; then
++ echo "$as_me:4237: result: $ac_ct_NCURSES_CONFIG" >&5
++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
+ else
+- echo "$as_me:4499: result: no" >&5
++ echo "$as_me:4240: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+- test -n "$NCURSES_CONFIG" && break
++ test -n "$ac_ct_NCURSES_CONFIG" && break
+ done
+-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
++
++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
++fi
+
+ if test "$NCURSES_CONFIG" != none ; then
+
+ CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+-LIBS="`$NCURSES_CONFIG --libs` $LIBS"
++
++cf_add_libs="`$NCURSES_CONFIG --libs`"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+ # even with config script, some packages use no-override for curses.h
+
+-echo "$as_me:4514: checking if we have identified curses headers" >&5
++echo "$as_me:4273: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4519,13 +4278,13 @@
+
+ cf_cv_ncurses_header=none
+ for cf_header in \
+- ncursesw/curses.h \
+- ncursesw/ncurses.h \
+- curses.h \
+- ncurses.h
++ ncursesw/ncurses.h \
++ ncursesw/curses.h \
++ ncurses.h \
++ curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4528 "configure"
++#line 4287 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -4537,16 +4296,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4540: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4299: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4543: \$? = $ac_status" >&5
++ echo "$as_me:4302: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4546: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4305: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4549: \$? = $ac_status" >&5
++ echo "$as_me:4308: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -4557,11 +4316,11 @@
+ done
+
+ fi
+-echo "$as_me:4560: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:4319: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+
+ if test "$cf_cv_ncurses_header" = none ; then
+- { { echo "$as_me:4564: error: No curses header-files found" >&5
++ { { echo "$as_me:4323: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -4571,23 +4330,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:4574: checking for $ac_header" >&5
++echo "$as_me:4333: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4580 "configure"
++#line 4339 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:4584: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4343: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:4590: \$? = $ac_status" >&5
++ echo "$as_me:4349: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4606,7 +4365,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4609: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:4368: 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
+@@ -4659,7 +4418,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4662 "configure"
++#line 4421 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4671,16 +4430,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4674: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4433: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4677: \$? = $ac_status" >&5
++ echo "$as_me:4436: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4680: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4439: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4683: \$? = $ac_status" >&5
++ echo "$as_me:4442: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -4697,7 +4456,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:4700: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4459: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -4714,7 +4473,7 @@
+
+ }
+
+-echo "$as_me:4717: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "$as_me:4476: checking for $cf_ncuhdr_root header in include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4726,7 +4485,7 @@
+ do
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4729 "configure"
++#line 4488 "configure"
+ #include "confdefs.h"
+
+ #define _XOPEN_SOURCE_EXTENDED
+@@ -4758,16 +4517,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4761: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4520: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4764: \$? = $ac_status" >&5
++ echo "$as_me:4523: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4767: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4526: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4770: \$? = $ac_status" >&5
++ echo "$as_me:4529: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ncurses_h=$cf_header
+
+@@ -4782,14 +4541,14 @@
+ done
+
+ fi
+-echo "$as_me:4785: result: $cf_cv_ncurses_h" >&5
++echo "$as_me:4544: result: $cf_cv_ncurses_h" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+
+ if test "$cf_cv_ncurses_h" != no ; then
+ cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+
+-echo "$as_me:4792: checking for $cf_ncuhdr_root include-path" >&5
++echo "$as_me:4551: checking for $cf_ncuhdr_root include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h2+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4808,7 +4567,7 @@
+ -I*)
+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+
+-test "$cf_header_path" != "NONE" && \
++test "x$cf_header_path" != "xNONE" && \
+ test -d "$cf_header_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+@@ -4829,18 +4588,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+@@ -4851,39 +4599,28 @@
+ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
++done
++
+ test "$includedir" != NONE && \
+ test "$includedir" != "/usr/include" && \
+ test -d "$includedir" && {
+@@ -4929,7 +4666,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4932 "configure"
++#line 4669 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -4941,16 +4678,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4944: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4681: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4947: \$? = $ac_status" >&5
++ echo "$as_me:4684: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4950: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4687: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4953: \$? = $ac_status" >&5
++ echo "$as_me:4690: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -4967,7 +4704,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:4970: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4707: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -4988,7 +4725,7 @@
+ do
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4991 "configure"
++#line 4728 "configure"
+ #include "confdefs.h"
+
+ #include <$cf_header>
+@@ -5012,16 +4749,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5015: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4752: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5018: \$? = $ac_status" >&5
++ echo "$as_me:4755: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5021: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4758: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5024: \$? = $ac_status" >&5
++ echo "$as_me:4761: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ncurses_h2=$cf_header
+
+@@ -5042,12 +4779,12 @@
+ CPPFLAGS="$cf_save2_CPPFLAGS"
+ test "$cf_cv_ncurses_h2" != no && break
+ done
+- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:5045: error: not found" >&5
++ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:4782: error: not found" >&5
+ echo "$as_me: error: not found" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:5050: result: $cf_cv_ncurses_h2" >&5
++echo "$as_me:4787: result: $cf_cv_ncurses_h2" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+
+ cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+@@ -5080,7 +4817,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5083 "configure"
++#line 4820 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -5092,16 +4829,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5095: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4832: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5098: \$? = $ac_status" >&5
++ echo "$as_me:4835: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5101: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4838: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5104: \$? = $ac_status" >&5
++ echo "$as_me:4841: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -5118,7 +4855,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:5121: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:4858: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -5139,7 +4876,8 @@
+
+ case $cf_cv_ncurses_header in # (vi
+ *ncurses.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSES_H 1
+ EOF
+
+@@ -5148,20 +4886,22 @@
+
+ case $cf_cv_ncurses_header in # (vi
+ ncurses/curses.h|ncurses/ncurses.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSES_NCURSES_H 1
+ EOF
+
+ ;;
+ ncursesw/curses.h|ncursesw/ncurses.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSESW_NCURSES_H 1
+ EOF
+
+ ;;
+ esac
+
+-echo "$as_me:5164: checking for terminfo header" >&5
++echo "$as_me:4904: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5179,7 +4919,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5182 "configure"
++#line 4922 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5194,16 +4934,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5197: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4937: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5200: \$? = $ac_status" >&5
++ echo "$as_me:4940: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5203: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4943: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5206: \$? = $ac_status" >&5
++ echo "$as_me:4946: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_term_header="$cf_test"
+@@ -5219,14 +4959,15 @@
+ done
+
+ fi
+-echo "$as_me:5222: result: $cf_cv_term_header" >&5
++echo "$as_me:4962: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+
+ case $cf_cv_term_header in # (vi
+ *term.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_TERM_H 1
+ EOF
+
+@@ -5235,13 +4976,15 @@
+
+ case $cf_cv_term_header in # (vi
+ ncurses/term.h) #(vi
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSES_TERM_H 1
+ EOF
+
+ ;;
+ ncursesw/term.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSESW_TERM_H 1
+ EOF
+
+@@ -5249,11 +4992,12 @@
+ esac
+
+ # some applications need this, but should check for NCURSES_VERSION
++
+ cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+ EOF
+
+-echo "$as_me:5256: checking for ncurses version" >&5
++echo "$as_me:5000: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5279,10 +5023,10 @@
+ #endif
+ EOF
+ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+- { (eval echo "$as_me:5282: \"$cf_try\"") >&5
++ { (eval echo "$as_me:5026: \"$cf_try\"") >&5
+ (eval $cf_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5285: \$? = $ac_status" >&5
++ echo "$as_me:5029: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ if test -f conftest.out ; then
+ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -5292,7 +5036,7 @@
+
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5295 "configure"
++#line 5039 "configure"
+ #include "confdefs.h"
+
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -5317,15 +5061,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5320: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5064: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5323: \$? = $ac_status" >&5
++ echo "$as_me:5067: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:5325: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5069: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5328: \$? = $ac_status" >&5
++ echo "$as_me:5072: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -5339,9 +5083,10 @@
+ rm -f $cf_tempfile
+
+ fi
+-echo "$as_me:5342: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:5086: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
++test "$cf_cv_ncurses_version" = no ||
++cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+ EOF
+
+@@ -5351,7 +5096,7 @@
+ # to link gpm.
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:5354: checking for Gpm_Open in -lgpm" >&5
++echo "$as_me:5099: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5359,7 +5104,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5362 "configure"
++#line 5107 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -5378,16 +5123,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5381: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5126: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5384: \$? = $ac_status" >&5
++ echo "$as_me:5129: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5387: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5132: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5390: \$? = $ac_status" >&5
++ echo "$as_me:5135: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -5398,10 +5143,10 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5401: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:5146: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+- echo "$as_me:5404: checking for initscr in -lgpm" >&5
++ echo "$as_me:5149: checking for initscr in -lgpm" >&5
+ echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5409,7 +5154,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5412 "configure"
++#line 5157 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -5428,16 +5173,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5431: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5176: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5434: \$? = $ac_status" >&5
++ echo "$as_me:5179: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5437: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5182: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5440: \$? = $ac_status" >&5
++ echo "$as_me:5185: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_initscr=yes
+ else
+@@ -5448,7 +5193,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5451: result: $ac_cv_lib_gpm_initscr" >&5
++echo "$as_me:5196: result: $ac_cv_lib_gpm_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+ if test $ac_cv_lib_gpm_initscr = yes; then
+ LIBS="$cf_ncurses_SAVE"
+@@ -5463,7 +5208,7 @@
+ # This is only necessary if you are linking against an obsolete
+ # version of ncurses (but it should do no harm, since it's static).
+ if test "$cf_nculib_root" = ncurses ; then
+- echo "$as_me:5466: checking for tgoto in -lmytinfo" >&5
++ echo "$as_me:5211: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5471,7 +5216,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5474 "configure"
++#line 5219 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -5490,16 +5235,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5493: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5238: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5496: \$? = $ac_status" >&5
++ echo "$as_me:5241: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5499: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5244: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5502: \$? = $ac_status" >&5
++ echo "$as_me:5247: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -5510,7 +5255,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5513: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:5258: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+@@ -5520,22 +5265,52 @@
+ ;;
+ esac
+
+-LIBS="$cf_ncurses_LIBS $LIBS"
++cf_add_libs="$cf_ncurses_LIBS"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+ if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+ then
+- LIBS="-l$cf_nculib_root $LIBS"
++
++cf_add_libs="-l$cf_nculib_root"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ else
+
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ cf_libdir=""
+- echo "$as_me:5532: checking for initscr" >&5
++ echo "$as_me:5307: checking for initscr" >&5
+ echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+ if test "${ac_cv_func_initscr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5538 "configure"
++#line 5313 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char initscr (); below. */
+@@ -5558,7 +5333,7 @@
+ #if defined (__stub_initscr) || defined (__stub___initscr)
+ choke me
+ #else
+-f = initscr;
++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -5566,16 +5341,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5569: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5344: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5572: \$? = $ac_status" >&5
++ echo "$as_me:5347: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5575: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5350: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5578: \$? = $ac_status" >&5
++ echo "$as_me:5353: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_initscr=yes
+ else
+@@ -5585,18 +5360,18 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:5588: result: $ac_cv_func_initscr" >&5
++echo "$as_me:5363: result: $ac_cv_func_initscr" >&5
+ echo "${ECHO_T}$ac_cv_func_initscr" >&6
+ if test $ac_cv_func_initscr = yes; then
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+
+ cf_save_LIBS="$LIBS"
+- echo "$as_me:5595: checking for initscr in -l$cf_nculib_root" >&5
++ echo "$as_me:5370: checking for initscr in -l$cf_nculib_root" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+ LIBS="-l$cf_nculib_root $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5599 "configure"
++#line 5374 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5608,25 +5383,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5611: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5386: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5614: \$? = $ac_status" >&5
++ echo "$as_me:5389: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5617: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5392: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5620: \$? = $ac_status" >&5
++ echo "$as_me:5395: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:5622: result: yes" >&5
++ echo "$as_me:5397: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:5629: result: no" >&5
++echo "$as_me:5404: result: no" >&5
+ echo "${ECHO_T}no" >&6
+
+ cf_search=
+@@ -5638,7 +5413,7 @@
+ -L*)
+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+-test "$cf_library_path" != "NONE" && \
++test "x$cf_library_path" != "xNONE" && \
+ test -d "$cf_library_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+@@ -5657,18 +5432,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
+- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+@@ -5679,48 +5443,37 @@
+ test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
+- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root"
+ }
+
++done
++
+ cf_search="$cf_library_path_list $cf_search"
+
+ for cf_libdir in $cf_search
+ do
+- echo "$as_me:5719: checking for -l$cf_nculib_root in $cf_libdir" >&5
++ echo "$as_me:5472: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5723 "configure"
++#line 5476 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5732,25 +5485,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5735: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5488: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5738: \$? = $ac_status" >&5
++ echo "$as_me:5491: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5741: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5494: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5744: \$? = $ac_status" >&5
++ echo "$as_me:5497: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:5746: result: yes" >&5
++ echo "$as_me:5499: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:5753: result: no" >&5
++echo "$as_me:5506: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ LIBS="$cf_save_LIBS"
+ fi
+@@ -5765,7 +5518,7 @@
+ eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+
+ if test $cf_found_library = no ; then
+- { { echo "$as_me:5768: error: Cannot link $cf_nculib_root library" >&5
++ { { echo "$as_me:5521: error: Cannot link $cf_nculib_root library" >&5
+ echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -5773,7 +5526,7 @@
+ fi
+
+ if test -n "$cf_ncurses_LIBS" ; then
+- echo "$as_me:5776: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++ echo "$as_me:5529: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+ cf_ncurses_SAVE="$LIBS"
+ for p in $cf_ncurses_LIBS ; do
+@@ -5783,7 +5536,7 @@
+ fi
+ done
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5786 "configure"
++#line 5539 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -5795,23 +5548,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5798: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5551: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5801: \$? = $ac_status" >&5
++ echo "$as_me:5554: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5804: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5557: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5807: \$? = $ac_status" >&5
++ echo "$as_me:5560: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:5809: result: yes" >&5
++ echo "$as_me:5562: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:5814: result: no" >&5
++echo "$as_me:5567: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ LIBS="$cf_ncurses_SAVE"
+ fi
+@@ -5831,57 +5584,111 @@
+ cf_ncuconfig_root=ncurses
+
+ echo "Looking for ${cf_ncuconfig_root}-config"
+-for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:5593: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$NCURSES_CONFIG"; then
++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
++echo "$as_me:5608: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
++if test -n "$NCURSES_CONFIG"; then
++ echo "$as_me:5616: result: $NCURSES_CONFIG" >&5
++echo "${ECHO_T}$NCURSES_CONFIG" >&6
++else
++ echo "$as_me:5619: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$NCURSES_CONFIG" && break
++ done
++fi
++if test -z "$NCURSES_CONFIG"; then
++ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:5838: checking for $ac_word" >&5
++echo "$as_me:5632: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- case $NCURSES_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
++ if test -n "$ac_ct_NCURSES_CONFIG"; then
++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
++else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:5855: found $ac_dir/$ac_word" >&5
+- break
+-fi
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
++echo "$as_me:5647: found $ac_dir/$ac_word" >&5
++break
+ done
+
+- ;;
+-esac
+ fi
+-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+-
+-if test -n "$NCURSES_CONFIG"; then
+- echo "$as_me:5866: result: $NCURSES_CONFIG" >&5
+-echo "${ECHO_T}$NCURSES_CONFIG" >&6
++fi
++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
++if test -n "$ac_ct_NCURSES_CONFIG"; then
++ echo "$as_me:5655: result: $ac_ct_NCURSES_CONFIG" >&5
++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
+ else
+- echo "$as_me:5869: result: no" >&5
++ echo "$as_me:5658: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+- test -n "$NCURSES_CONFIG" && break
++ test -n "$ac_ct_NCURSES_CONFIG" && break
+ done
+-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
++
++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
++fi
+
+ if test "$NCURSES_CONFIG" != none ; then
+
+ CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+-LIBS="`$NCURSES_CONFIG --libs` $LIBS"
++
++cf_add_libs="`$NCURSES_CONFIG --libs`"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+ # even with config script, some packages use no-override for curses.h
+
+-echo "$as_me:5884: checking if we have identified curses headers" >&5
++echo "$as_me:5691: checking if we have identified curses headers" >&5
+ echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5889,13 +5696,13 @@
+
+ cf_cv_ncurses_header=none
+ for cf_header in \
+- ncurses/curses.h \
+- ncurses/ncurses.h \
+- curses.h \
+- ncurses.h
++ ncurses/ncurses.h \
++ ncurses/curses.h \
++ ncurses.h \
++ curses.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5898 "configure"
++#line 5705 "configure"
+ #include "confdefs.h"
+ #include <${cf_header}>
+ int
+@@ -5907,16 +5714,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5910: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5717: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5913: \$? = $ac_status" >&5
++ echo "$as_me:5720: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5916: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5723: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5919: \$? = $ac_status" >&5
++ echo "$as_me:5726: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ncurses_header=$cf_header; break
+ else
+@@ -5927,11 +5734,11 @@
+ done
+
+ fi
+-echo "$as_me:5930: result: $cf_cv_ncurses_header" >&5
++echo "$as_me:5737: result: $cf_cv_ncurses_header" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+
+ if test "$cf_cv_ncurses_header" = none ; then
+- { { echo "$as_me:5934: error: No curses header-files found" >&5
++ { { echo "$as_me:5741: error: No curses header-files found" >&5
+ echo "$as_me: error: No curses header-files found" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -5941,23 +5748,23 @@
+ for ac_header in $cf_cv_ncurses_header
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:5944: checking for $ac_header" >&5
++echo "$as_me:5751: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5950 "configure"
++#line 5757 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:5954: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:5761: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:5960: \$? = $ac_status" >&5
++ echo "$as_me:5767: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -5976,7 +5783,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:5979: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:5786: 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
+@@ -6029,7 +5836,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6032 "configure"
++#line 5839 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6041,16 +5848,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6044: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5851: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6047: \$? = $ac_status" >&5
++ echo "$as_me:5854: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6050: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5857: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6053: \$? = $ac_status" >&5
++ echo "$as_me:5860: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -6067,7 +5874,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:6070: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:5877: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -6084,7 +5891,7 @@
+
+ }
+
+-echo "$as_me:6087: checking for $cf_ncuhdr_root header in include-path" >&5
++echo "$as_me:5894: checking for $cf_ncuhdr_root header in include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6096,7 +5903,7 @@
+ do
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6099 "configure"
++#line 5906 "configure"
+ #include "confdefs.h"
+
+ #include <$cf_header>
+@@ -6120,16 +5927,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6123: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5930: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6126: \$? = $ac_status" >&5
++ echo "$as_me:5933: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6129: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5936: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6132: \$? = $ac_status" >&5
++ echo "$as_me:5939: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ncurses_h=$cf_header
+
+@@ -6144,14 +5951,14 @@
+ done
+
+ fi
+-echo "$as_me:6147: result: $cf_cv_ncurses_h" >&5
++echo "$as_me:5954: result: $cf_cv_ncurses_h" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+
+ if test "$cf_cv_ncurses_h" != no ; then
+ cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+
+-echo "$as_me:6154: checking for $cf_ncuhdr_root include-path" >&5
++echo "$as_me:5961: checking for $cf_ncuhdr_root include-path" >&5
+ echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_h2+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6170,7 +5977,7 @@
+ -I*)
+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+
+-test "$cf_header_path" != "NONE" && \
++test "x$cf_header_path" != "xNONE" && \
+ test -d "$cf_header_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+@@ -6191,18 +5998,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+@@ -6213,39 +6009,28 @@
+ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
++done
++
+ test "$includedir" != NONE && \
+ test "$includedir" != "/usr/include" && \
+ test -d "$includedir" && {
+@@ -6291,7 +6076,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6294 "configure"
++#line 6079 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6303,16 +6088,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6306: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6091: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6309: \$? = $ac_status" >&5
++ echo "$as_me:6094: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6312: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6097: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6315: \$? = $ac_status" >&5
++ echo "$as_me:6100: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -6329,7 +6114,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:6332: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6117: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -6350,7 +6135,7 @@
+ do
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6353 "configure"
++#line 6138 "configure"
+ #include "confdefs.h"
+
+ #include <$cf_header>
+@@ -6374,16 +6159,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6377: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6162: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6380: \$? = $ac_status" >&5
++ echo "$as_me:6165: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6383: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6168: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6386: \$? = $ac_status" >&5
++ echo "$as_me:6171: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ncurses_h2=$cf_header
+
+@@ -6404,12 +6189,12 @@
+ CPPFLAGS="$cf_save2_CPPFLAGS"
+ test "$cf_cv_ncurses_h2" != no && break
+ done
+- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6407: error: not found" >&5
++ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6192: error: not found" >&5
+ echo "$as_me: error: not found" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:6412: result: $cf_cv_ncurses_h2" >&5
++echo "$as_me:6197: result: $cf_cv_ncurses_h2" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+
+ cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+@@ -6442,7 +6227,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6445 "configure"
++#line 6230 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -6454,16 +6239,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6457: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6242: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6460: \$? = $ac_status" >&5
++ echo "$as_me:6245: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6463: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6248: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6466: \$? = $ac_status" >&5
++ echo "$as_me:6251: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -6480,7 +6265,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:6483: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:6268: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -6501,7 +6286,8 @@
+
+ case $cf_cv_ncurses_header in # (vi
+ *ncurses.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSES_H 1
+ EOF
+
+@@ -6510,20 +6296,22 @@
+
+ case $cf_cv_ncurses_header in # (vi
+ ncurses/curses.h|ncurses/ncurses.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSES_NCURSES_H 1
+ EOF
+
+ ;;
+ ncursesw/curses.h|ncursesw/ncurses.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSESW_NCURSES_H 1
+ EOF
+
+ ;;
+ esac
+
+-echo "$as_me:6526: checking for terminfo header" >&5
++echo "$as_me:6314: checking for terminfo header" >&5
+ echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+ if test "${cf_cv_term_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6541,7 +6329,7 @@
+ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6544 "configure"
++#line 6332 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -6556,16 +6344,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6559: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6347: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:6562: \$? = $ac_status" >&5
++ echo "$as_me:6350: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6565: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6353: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6568: \$? = $ac_status" >&5
++ echo "$as_me:6356: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_term_header="$cf_test"
+@@ -6581,14 +6369,15 @@
+ done
+
+ fi
+-echo "$as_me:6584: result: $cf_cv_term_header" >&5
++echo "$as_me:6372: result: $cf_cv_term_header" >&5
+ echo "${ECHO_T}$cf_cv_term_header" >&6
+
+ # Set definitions to allow ifdef'ing to accommodate subdirectories
+
+ case $cf_cv_term_header in # (vi
+ *term.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_TERM_H 1
+ EOF
+
+@@ -6597,13 +6386,15 @@
+
+ case $cf_cv_term_header in # (vi
+ ncurses/term.h) #(vi
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSES_TERM_H 1
+ EOF
+
+ ;;
+ ncursesw/term.h)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_NCURSESW_TERM_H 1
+ EOF
+
+@@ -6611,11 +6402,12 @@
+ esac
+
+ # some applications need this, but should check for NCURSES_VERSION
++
+ cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+ EOF
+
+-echo "$as_me:6618: checking for ncurses version" >&5
++echo "$as_me:6410: checking for ncurses version" >&5
+ echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+ if test "${cf_cv_ncurses_version+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6641,10 +6433,10 @@
+ #endif
+ EOF
+ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+- { (eval echo "$as_me:6644: \"$cf_try\"") >&5
++ { (eval echo "$as_me:6436: \"$cf_try\"") >&5
+ (eval $cf_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6647: \$? = $ac_status" >&5
++ echo "$as_me:6439: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ if test -f conftest.out ; then
+ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+@@ -6654,7 +6446,7 @@
+
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6657 "configure"
++#line 6449 "configure"
+ #include "confdefs.h"
+
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -6679,15 +6471,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6682: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6474: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6685: \$? = $ac_status" >&5
++ echo "$as_me:6477: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6687: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6479: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6690: \$? = $ac_status" >&5
++ echo "$as_me:6482: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_ncurses_version=`cat $cf_tempfile`
+@@ -6701,9 +6493,10 @@
+ rm -f $cf_tempfile
+
+ fi
+-echo "$as_me:6704: result: $cf_cv_ncurses_version" >&5
++echo "$as_me:6496: result: $cf_cv_ncurses_version" >&5
+ echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
++test "$cf_cv_ncurses_version" = no ||
++cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+ EOF
+
+@@ -6713,7 +6506,7 @@
+ # to link gpm.
+ cf_ncurses_LIBS=""
+ cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:6716: checking for Gpm_Open in -lgpm" >&5
++echo "$as_me:6509: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6721,7 +6514,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6724 "configure"
++#line 6517 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6740,16 +6533,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6743: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6536: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6746: \$? = $ac_status" >&5
++ echo "$as_me:6539: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6749: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6542: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6752: \$? = $ac_status" >&5
++ echo "$as_me:6545: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -6760,10 +6553,10 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6763: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:6556: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+- echo "$as_me:6766: checking for initscr in -lgpm" >&5
++ echo "$as_me:6559: checking for initscr in -lgpm" >&5
+ echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6771,7 +6564,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6774 "configure"
++#line 6567 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6790,16 +6583,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6793: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6586: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6796: \$? = $ac_status" >&5
++ echo "$as_me:6589: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6799: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6592: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6802: \$? = $ac_status" >&5
++ echo "$as_me:6595: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_initscr=yes
+ else
+@@ -6810,7 +6603,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6813: result: $ac_cv_lib_gpm_initscr" >&5
++echo "$as_me:6606: result: $ac_cv_lib_gpm_initscr" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+ if test $ac_cv_lib_gpm_initscr = yes; then
+ LIBS="$cf_ncurses_SAVE"
+@@ -6825,7 +6618,7 @@
+ # This is only necessary if you are linking against an obsolete
+ # version of ncurses (but it should do no harm, since it's static).
+ if test "$cf_nculib_root" = ncurses ; then
+- echo "$as_me:6828: checking for tgoto in -lmytinfo" >&5
++ echo "$as_me:6621: checking for tgoto in -lmytinfo" >&5
+ echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+ if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -6833,7 +6626,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmytinfo $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6836 "configure"
++#line 6629 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -6852,16 +6645,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6855: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6648: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6858: \$? = $ac_status" >&5
++ echo "$as_me:6651: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6861: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6654: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6864: \$? = $ac_status" >&5
++ echo "$as_me:6657: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_mytinfo_tgoto=yes
+ else
+@@ -6872,7 +6665,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6875: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "$as_me:6668: result: $ac_cv_lib_mytinfo_tgoto" >&5
+ echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+ if test $ac_cv_lib_mytinfo_tgoto = yes; then
+ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+@@ -6882,22 +6675,52 @@
+ ;;
+ esac
+
+-LIBS="$cf_ncurses_LIBS $LIBS"
++cf_add_libs="$cf_ncurses_LIBS"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+ if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+ then
+- LIBS="-l$cf_nculib_root $LIBS"
++
++cf_add_libs="-l$cf_nculib_root"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ else
+
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+ cf_libdir=""
+- echo "$as_me:6894: checking for initscr" >&5
++ echo "$as_me:6717: checking for initscr" >&5
+ echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+ if test "${ac_cv_func_initscr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6900 "configure"
++#line 6723 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char initscr (); below. */
+@@ -6920,7 +6743,7 @@
+ #if defined (__stub_initscr) || defined (__stub___initscr)
+ choke me
+ #else
+-f = initscr;
++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -6928,16 +6751,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6931: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6754: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6934: \$? = $ac_status" >&5
++ echo "$as_me:6757: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6937: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6760: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6940: \$? = $ac_status" >&5
++ echo "$as_me:6763: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_initscr=yes
+ else
+@@ -6947,18 +6770,18 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6950: result: $ac_cv_func_initscr" >&5
++echo "$as_me:6773: result: $ac_cv_func_initscr" >&5
+ echo "${ECHO_T}$ac_cv_func_initscr" >&6
+ if test $ac_cv_func_initscr = yes; then
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+
+ cf_save_LIBS="$LIBS"
+- echo "$as_me:6957: checking for initscr in -l$cf_nculib_root" >&5
++ echo "$as_me:6780: checking for initscr in -l$cf_nculib_root" >&5
+ echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+ LIBS="-l$cf_nculib_root $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6961 "configure"
++#line 6784 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -6970,25 +6793,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6973: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6796: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6976: \$? = $ac_status" >&5
++ echo "$as_me:6799: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6979: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6802: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6982: \$? = $ac_status" >&5
++ echo "$as_me:6805: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:6984: result: yes" >&5
++ echo "$as_me:6807: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:6991: result: no" >&5
++echo "$as_me:6814: result: no" >&5
+ echo "${ECHO_T}no" >&6
+
+ cf_search=
+@@ -7000,7 +6823,7 @@
+ -L*)
+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+-test "$cf_library_path" != "NONE" && \
++test "x$cf_library_path" != "xNONE" && \
+ test -d "$cf_library_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+@@ -7019,18 +6842,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
+- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+@@ -7041,48 +6853,37 @@
+ test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
+- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root"
+ }
+
++done
++
+ cf_search="$cf_library_path_list $cf_search"
+
+ for cf_libdir in $cf_search
+ do
+- echo "$as_me:7081: checking for -l$cf_nculib_root in $cf_libdir" >&5
++ echo "$as_me:6882: checking for -l$cf_nculib_root in $cf_libdir" >&5
+ echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7085 "configure"
++#line 6886 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7094,25 +6895,25 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7097: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6898: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7100: \$? = $ac_status" >&5
++ echo "$as_me:6901: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7103: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6904: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7106: \$? = $ac_status" >&5
++ echo "$as_me:6907: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:7108: result: yes" >&5
++ echo "$as_me:6909: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7115: result: no" >&5
++echo "$as_me:6916: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ LIBS="$cf_save_LIBS"
+ fi
+@@ -7127,7 +6928,7 @@
+ eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+
+ if test $cf_found_library = no ; then
+- { { echo "$as_me:7130: error: Cannot link $cf_nculib_root library" >&5
++ { { echo "$as_me:6931: error: Cannot link $cf_nculib_root library" >&5
+ echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -7135,7 +6936,7 @@
+ fi
+
+ if test -n "$cf_ncurses_LIBS" ; then
+- echo "$as_me:7138: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++ echo "$as_me:6939: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+ echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+ cf_ncurses_SAVE="$LIBS"
+ for p in $cf_ncurses_LIBS ; do
+@@ -7145,7 +6946,7 @@
+ fi
+ done
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7148 "configure"
++#line 6949 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+@@ -7157,23 +6958,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7160: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6961: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7163: \$? = $ac_status" >&5
++ echo "$as_me:6964: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7166: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6967: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7169: \$? = $ac_status" >&5
++ echo "$as_me:6970: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:7171: result: yes" >&5
++ echo "$as_me:6972: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7176: result: no" >&5
++echo "$as_me:6977: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ LIBS="$cf_ncurses_SAVE"
+ fi
+@@ -7210,10 +7011,10 @@
+ AUTOCONF_$cf_name NCURSES_VERSION_$cf_name
+ CF_EOF
+ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | fgrep AUTOCONF_$cf_name >conftest.out"
+- { (eval echo "$as_me:7213: \"$cf_try\"") >&5
++ { (eval echo "$as_me:7014: \"$cf_try\"") >&5
+ (eval $cf_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7216: \$? = $ac_status" >&5
++ echo "$as_me:7017: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ if test -f conftest.out ; then
+ cf_result=`cat conftest.out | sed -e "s/^.*AUTOCONF_$cf_name[ ][ ]*//"`
+@@ -7231,9 +7032,25 @@
+
+ cf_cv_timestamp=`date`
+
+-echo "$as_me:7234: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
++echo "$as_me:7035: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+ echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
+
++echo "$as_me:7038: checking if you want to have a library-prefix" >&5
++echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6
++
++# Check whether --with-lib-prefix or --without-lib-prefix was given.
++if test "${with_lib_prefix+set}" = set; then
++ withval="$with_lib_prefix"
++ with_lib_prefix=$withval
++else
++ with_lib_prefix=auto
++fi;
++echo "$as_me:7048: result: $with_lib_prefix" >&5
++echo "${ECHO_T}$with_lib_prefix" >&6
++
++if test $with_lib_prefix = auto
++then
++
+ case $cf_cv_system_name in #(vi
+ OS/2*|os2*) #(vi
+ LIB_PREFIX=''
+@@ -7243,7 +7060,12 @@
+ esac
+ cf_prefix=$LIB_PREFIX
+
+-LIB_PREFIX=$cf_prefix
++elif test $with_lib_prefix = no
++then
++ LIB_PREFIX=
++else
++ LIB_PREFIX=$with_lib_prefix
++fi
+
+ LIB_SUFFIX=
+
+@@ -7254,7 +7076,7 @@
+ test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
+ fi
+
+-echo "$as_me:7257: checking for default loader flags" >&5
++echo "$as_me:7079: checking for default loader flags" >&5
+ echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
+ case $DFT_LWR_MODEL in
+ normal) LD_MODEL='' ;;
+@@ -7262,11 +7084,11 @@
+ profile) LD_MODEL='-pg';;
+ shared) LD_MODEL='' ;;
+ esac
+-echo "$as_me:7265: result: $LD_MODEL" >&5
++echo "$as_me:7087: result: $LD_MODEL" >&5
+ echo "${ECHO_T}$LD_MODEL" >&6
+
+ LD_RPATH_OPT=
+-echo "$as_me:7269: checking for an rpath option" >&5
++echo "$as_me:7091: checking for an rpath option" >&5
+ echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
+ case $cf_cv_system_name in #(vi
+ irix*) #(vi
+@@ -7279,10 +7101,10 @@
+ linux*|gnu*|k*bsd*-gnu) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-openbsd[2-9].*) #(vi
++openbsd[2-9].*|mirbsd*) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-freebsd*) #(vi
++dragonfly*|freebsd*) #(vi
+ LD_RPATH_OPT="-rpath "
+ ;;
+ netbsd*) #(vi
+@@ -7297,17 +7119,33 @@
+ *)
+ ;;
+ esac
+-echo "$as_me:7300: result: $LD_RPATH_OPT" >&5
++echo "$as_me:7122: result: $LD_RPATH_OPT" >&5
+ echo "${ECHO_T}$LD_RPATH_OPT" >&6
+
+ case "x$LD_RPATH_OPT" in #(vi
+ x-R*)
+- echo "$as_me:7305: checking if we need a space after rpath option" >&5
++ echo "$as_me:7127: checking if we need a space after rpath option" >&5
+ echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
+ cf_save_LIBS="$LIBS"
+- LIBS="${LD_RPATH_OPT}$libdir $LIBS"
++
++cf_add_libs="${LD_RPATH_OPT}$libdir"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7310 "configure"
++#line 7148 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -7319,16 +7157,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7322: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7160: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7325: \$? = $ac_status" >&5
++ echo "$as_me:7163: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7328: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7166: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7331: \$? = $ac_status" >&5
++ echo "$as_me:7169: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_rpath_space=no
+ else
+@@ -7338,22 +7176,28 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$cf_save_LIBS"
+- echo "$as_me:7341: result: $cf_rpath_space" >&5
++ echo "$as_me:7179: result: $cf_rpath_space" >&5
+ echo "${ECHO_T}$cf_rpath_space" >&6
+ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
+ ;;
+ esac
+
++ RM_SHARED_OPTS=
+ LOCAL_LDFLAGS=
+ LOCAL_LDFLAGS2=
+ LD_SHARED_OPTS=
+ INSTALL_LIB="-m 644"
++ : ${rel_builddir:=.}
++
++ shlibdir=$libdir
++
++ MAKE_DLLS="#"
+
+ cf_cv_do_symlinks=no
+ cf_ld_rpath_opt=
+ test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
+
+- echo "$as_me:7356: checking if release/abi version should be used for shared libs" >&5
++ echo "$as_me:7200: checking if release/abi version should be used for shared libs" >&5
+ echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
+
+ # Check whether --with-shlib-version or --without-shlib-version was given.
+@@ -7368,7 +7212,7 @@
+ cf_cv_shlib_version=$withval
+ ;;
+ *)
+- { { echo "$as_me:7371: error: option value must be one of: rel, abi, auto or no" >&5
++ { { echo "$as_me:7215: error: option value must be one of: rel, abi, auto or no" >&5
+ echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -7377,23 +7221,24 @@
+ else
+ cf_cv_shlib_version=auto
+ fi;
+- echo "$as_me:7380: result: $cf_cv_shlib_version" >&5
++ echo "$as_me:7224: result: $cf_cv_shlib_version" >&5
+ echo "${ECHO_T}$cf_cv_shlib_version" >&6
+
+ cf_cv_rm_so_locs=no
++ cf_try_cflags=
+
+ # Some less-capable ports of gcc support only -fpic
+ CC_SHARED_OPTS=
+ if test "$GCC" = yes
+ then
+- echo "$as_me:7389: checking which $CC option to use" >&5
++ echo "$as_me:7234: checking which $CC option to use" >&5
+ echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
+ for CC_SHARED_OPTS in -fPIC -fpic ''
+ do
+ CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7396 "configure"
++#line 7241 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7405,16 +7250,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7408: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7253: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7411: \$? = $ac_status" >&5
++ echo "$as_me:7256: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7414: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7259: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7417: \$? = $ac_status" >&5
++ echo "$as_me:7262: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -7423,7 +7268,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+- echo "$as_me:7426: result: $CC_SHARED_OPTS" >&5
++ echo "$as_me:7271: result: $CC_SHARED_OPTS" >&5
+ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
+ CFLAGS="$cf_save_CFLAGS"
+ fi
+@@ -7431,10 +7276,14 @@
+ cf_cv_shlib_version_infix=no
+
+ case $cf_cv_system_name in #(vi
+- aix[56]*) #(vi
++ aix4.3-9*|aix[5-7]*) #(vi
+ if test "$GCC" = yes; then
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='$(CC) -shared'
++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
++ else
++ # CC_SHARED_OPTS='-qpic=large -G'
++ # perhaps "-bM:SRE -bnoentry -bexpall"
++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
+ fi
+ ;;
+ beos*) #(vi
+@@ -7442,9 +7291,12 @@
+ ;;
+ cygwin*) #(vi
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
+ cf_cv_shlib_version=cygdll
+ cf_cv_shlib_version_infix=cygdll
++ shlibdir=$bindir
++ MAKE_DLLS=
+ cat >mk_shared_lib.sh <<-CF_EOF
+ #!/bin/sh
+ SHARED_LIB=\$1
+@@ -7455,17 +7307,39 @@
+ ** SHARED_LIB \$SHARED_LIB
+ ** IMPORT_LIB \$IMPORT_LIB
+ EOF
+- exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ msys*) #(vi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cf_cv_shlib_version=msysdll
++ cf_cv_shlib_version_infix=msysdll
++ shlibdir=$bindir
++ MAKE_DLLS=
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\$1
++ IMPORT_LIB=\`echo "\$1" | sed -e 's/msys-/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \$SHARED_LIB
++ ** IMPORT_LIB \$IMPORT_LIB
++EOF
++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
+ CF_EOF
+ chmod +x mk_shared_lib.sh
+ ;;
+ darwin*) #(vi
+- EXTRA_CFLAGS="-no-cpp-precomp"
++ cf_try_cflags="no-cpp-precomp"
+ CC_SHARED_OPTS="-dynamic"
+ MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+ cf_cv_shlib_version_infix=yes
+- echo "$as_me:7468: checking if ld -search_paths_first works" >&5
++ echo "$as_me:7342: checking if ld -search_paths_first works" >&5
+ echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
+ if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7474,7 +7348,7 @@
+ cf_save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7477 "configure"
++#line 7351 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -7486,16 +7360,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7489: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7363: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7492: \$? = $ac_status" >&5
++ echo "$as_me:7366: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7495: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7369: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7498: \$? = $ac_status" >&5
++ echo "$as_me:7372: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ldflags_search_paths_first=yes
+ else
+@@ -7506,12 +7380,20 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$cf_save_LDFLAGS
+ fi
+-echo "$as_me:7509: result: $cf_cv_ldflags_search_paths_first" >&5
++echo "$as_me:7383: result: $cf_cv_ldflags_search_paths_first" >&5
+ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
+ if test $cf_cv_ldflags_search_paths_first = yes; then
+ LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ fi
+ ;;
++ hpux[7-8]*) #(vi
++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='+Z'
++ fi
++ MK_SHARED_LIB='${LD} -b -o $@'
++ INSTALL_LIB="-m 555"
++ ;;
+ hpux*) #(vi
+ # (tested with gcc 2.7.2 -- I don't have c89)
+ if test "$GCC" = yes; then
+@@ -7525,9 +7407,19 @@
+ # readonly to exploit a quirk in the memory manager.
+ INSTALL_LIB="-m 555"
+ ;;
++ interix*)
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ if test "$cf_cv_shlib_version" = rel; then
++ cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}'
++ else
++ cf_shared_soname='`basename `'
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o '
++ ;;
+ irix*) #(vi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ # tested with IRIX 5.2 and 'cc'.
+ if test "$GCC" != yes; then
+@@ -7544,7 +7436,7 @@
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+@@ -7556,13 +7448,40 @@
+
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
+ ;;
+- openbsd[2-9].*) #(vi
++ mingw*) #(vi
++ cf_cv_shlib_version=mingw
++ cf_cv_shlib_version_infix=mingw
++ shlibdir=$bindir
++ MAKE_DLLS=
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,--enable-auto-import"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\$1
++ IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \$SHARED_LIB
++ ** IMPORT_LIB \$IMPORT_LIB
++EOF
++ exec \$* -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ openbsd[2-9].*|mirbsd*) #(vi
+ if test "$DFT_LWR_MODEL" = "shared" ; then
+ LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+
+@@ -7580,12 +7499,12 @@
+ MK_SHARED_LIB='${LD} -Bshareable -o $@'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+ ;;
+- freebsd*) #(vi
++ dragonfly*|freebsd*) #(vi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+@@ -7602,7 +7521,7 @@
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ if test "$cf_cv_shlib_version" = auto; then
+ if test -f /usr/libexec/ld.elf_so; then
+ cf_cv_shlib_version=abi
+@@ -7620,7 +7539,7 @@
+
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@'
+ else
+- MK_SHARED_LIB='${LD} -shared -Bshareable -o $@'
++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $@'
+ fi
+ ;;
+ osf*|mls+*) #(vi
+@@ -7686,7 +7605,7 @@
+ do
+ CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7689 "configure"
++#line 7608 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7698,16 +7617,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7701: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7620: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7704: \$? = $ac_status" >&5
++ echo "$as_me:7623: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7707: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7626: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7710: \$? = $ac_status" >&5
++ echo "$as_me:7629: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -7744,22 +7663,65 @@
+ test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
+ ;;
+ *)
+- { echo "$as_me:7747: WARNING: ignored --with-shlib-version" >&5
++ { echo "$as_me:7666: WARNING: ignored --with-shlib-version" >&5
+ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
+ ;;
+ esac
+ ;;
+ esac
+
+- if test -n "$cf_ld_rpath_opt" ; then
+- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
++ if test -n "$cf_try_cflags"
++ then
++cat > conftest.$ac_ext <<EOF
++#line 7676 "${as_me:-configure}"
++#include <stdio.h>
++int main(int argc, char *argv[])
++{
++ printf("hello\n");
++ return (argv[argc-1] == 0) ;
++}
++EOF
++ cf_save_CFLAGS="$CFLAGS"
++ for cf_opt in $cf_try_cflags
++ do
++ CFLAGS="$cf_save_CFLAGS -$cf_opt"
++ echo "$as_me:7688: checking if CFLAGS option -$cf_opt works" >&5
++echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6
++ if { (eval echo "$as_me:7690: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:7693: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ echo "$as_me:7695: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ cf_save_CFLAGS="$CFLAGS"
++ else
++ echo "$as_me:7699: result: no" >&5
++echo "${ECHO_T}no" >&6
++ fi
++ done
++ CFLAGS="$cf_save_CFLAGS"
+ fi
+
++ # RPATH_LIST is a colon-separated list of directories
++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
++
++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
++
++ test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6
++
++echo "${as_me:-configure}:7714: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
++
++ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
++
++echo "${as_me:-configure}:7718: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
++
+ # The test/sample programs in the original tree link using rpath option.
+ # Make it optional for packagers.
+ if test -n "$LOCAL_LDFLAGS"
+ then
+- echo "$as_me:7762: checking if you want to link sample programs with rpath option" >&5
++ echo "$as_me:7724: checking if you want to link sample programs with rpath option" >&5
+ echo $ECHO_N "checking if you want to link sample programs with rpath option... $ECHO_C" >&6
+
+ # Check whether --enable-rpath-link or --disable-rpath-link was given.
+@@ -7769,7 +7731,7 @@
+ else
+ with_rpath_link=yes
+ fi;
+- echo "$as_me:7772: result: $with_rpath_link" >&5
++ echo "$as_me:7734: result: $with_rpath_link" >&5
+ echo "${ECHO_T}$with_rpath_link" >&6
+ if test "$with_rpath_link" = no
+ then
+@@ -7780,13 +7742,8 @@
+
+ ###############################################################################
+
+- case $cf_cv_system_name in
+- os2*) PATH_SEPARATOR=';' ;;
+- *) PATH_SEPARATOR=':' ;;
+- esac
+-
+ ### use option --enable-broken-linker to force on use of broken-linker support
+-echo "$as_me:7789: checking if you want broken-linker support code" >&5
++echo "$as_me:7746: checking if you want broken-linker support code" >&5
+ echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
+
+ # Check whether --enable-broken_linker or --disable-broken_linker was given.
+@@ -7796,7 +7753,7 @@
+ else
+ with_broken_linker=${BROKEN_LINKER:-no}
+ fi;
+-echo "$as_me:7799: result: $with_broken_linker" >&5
++echo "$as_me:7756: result: $with_broken_linker" >&5
+ echo "${ECHO_T}$with_broken_linker" >&6
+
+ BROKEN_LINKER=0
+@@ -7816,7 +7773,7 @@
+ BROKEN_LINKER=1
+ test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6
+
+-echo "${as_me:-configure}:7819: testing cygwin linker is broken anyway ..." 1>&5
++echo "${as_me:-configure}:7776: testing cygwin linker is broken anyway ..." 1>&5
+
+ ;;
+ esac
+@@ -7829,10 +7786,10 @@
+ cf_xopen_source=
+
+ case $host_os in #(vi
+-aix[456]*) #(vi
++aix[4-7]*) #(vi
+ cf_xopen_source="-D_ALL_SOURCE"
+ ;;
+-cygwin) #(vi
++cygwin|msys) #(vi
+ cf_XOPEN_SOURCE=600
+ ;;
+ darwin[0-8].*) #(vi
+@@ -7840,6 +7797,7 @@
+ ;;
+ darwin*) #(vi
+ cf_xopen_source="-D_DARWIN_C_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ freebsd*|dragonfly*) #(vi
+ # 5.x headers associate
+@@ -7857,17 +7815,18 @@
+ ;;
+ irix[56].*) #(vi
+ cf_xopen_source="-D_SGI_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+
+-echo "$as_me:7863: checking if we must define _GNU_SOURCE" >&5
++echo "$as_me:7822: checking if we must define _GNU_SOURCE" >&5
+ echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_gnu_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7870 "configure"
++#line 7829 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7882,16 +7841,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7885: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7844: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7888: \$? = $ac_status" >&5
++ echo "$as_me:7847: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7891: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7850: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7894: \$? = $ac_status" >&5
++ echo "$as_me:7853: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gnu_source=no
+ else
+@@ -7900,7 +7859,7 @@
+ cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7903 "configure"
++#line 7862 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7915,16 +7874,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7918: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7877: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7921: \$? = $ac_status" >&5
++ echo "$as_me:7880: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7924: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7883: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7927: \$? = $ac_status" >&5
++ echo "$as_me:7886: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gnu_source=no
+ else
+@@ -7932,23 +7891,270 @@
+ cat conftest.$ac_ext >&5
+ cf_cv_gnu_source=yes
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS="$cf_save"
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS="$cf_save"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:7901: 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"
++
++ ;;
++minix*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
++ ;;
++mirbsd*) #(vi
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
++ cf_XOPEN_SOURCE=
++
++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
++
++cf_save_CFLAGS="$CFLAGS"
++cf_save_CPPFLAGS="$CPPFLAGS"
++
++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++echo "$as_me:7926: checking if we should define _POSIX_C_SOURCE" >&5
++echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_posix_c_source+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++echo "${as_me:-configure}:7932: testing if the symbol is already defined go no further ..." 1>&5
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7935 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++int
++main ()
++{
++
++#ifndef _POSIX_C_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7950: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:7953: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7956: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:7959: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_posix_c_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_want_posix_source=no
++ case .$cf_POSIX_C_SOURCE in #(vi
++ .[12]??*) #(vi
++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
++ ;;
++ .2) #(vi
++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
++ cf_want_posix_source=yes
++ ;;
++ .*)
++ cf_want_posix_source=yes
++ ;;
++ esac
++ if test "$cf_want_posix_source" = yes ; then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7980 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++int
++main ()
++{
++
++#ifdef _POSIX_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7995: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:7998: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8001: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8004: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ fi
++
++echo "${as_me:-configure}:8015: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
++
++echo "${as_me:-configure}:8020: testing if the second compile does not leave our definition intact error ..." 1>&5
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8023 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++int
++main ()
++{
++
++#ifndef _POSIX_C_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8038: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8041: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8044: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8047: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_posix_c_source=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ CPPFLAGS="$cf_save_CPPFLAGS"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:8063: result: $cf_cv_posix_c_source" >&5
++echo "${ECHO_T}$cf_cv_posix_c_source" >&6
++
++if test "$cf_cv_posix_c_source" != no ; then
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS"
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_cv_posix_c_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
+
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7942: result: $cf_cv_gnu_source" >&5
+-echo "${ECHO_T}$cf_cv_gnu_source" >&6
+-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+
+ ;;
+-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
++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd[4-9]*) #(vi
++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
++ cf_xopen_source="-D_BSD_SOURCE"
++ cf_XOPEN_SOURCE=600
+ ;;
+ openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+@@ -7962,23 +8168,30 @@
+ sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+-solaris2.1[0-9]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-solaris2.[1-9]) #(vi
++solaris2.*) #(vi
+ cf_xopen_source="-D__EXTENSIONS__"
++ cf_cv_xopen_source=broken
++ ;;
++sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
++ cf_XOPEN_SOURCE=
++ cf_POSIX_C_SOURCE=
+ ;;
+ *)
+- echo "$as_me:7972: checking if we should define _XOPEN_SOURCE" >&5
++
++echo "$as_me:8181: checking if we should define _XOPEN_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_xopen_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7979 "configure"
++#line 8188 "configure"
+ #include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
+ #include <sys/types.h>
++
+ int
+ main ()
+ {
+@@ -7991,16 +8204,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7994: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8207: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7997: \$? = $ac_status" >&5
++ echo "$as_me:8210: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8000: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8213: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8003: \$? = $ac_status" >&5
++ echo "$as_me:8216: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_xopen_source=no
+ else
+@@ -8009,9 +8222,13 @@
+ cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8012 "configure"
++#line 8225 "configure"
+ #include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
+ #include <sys/types.h>
++
+ int
+ main ()
+ {
+@@ -8024,16 +8241,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8027: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8244: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8030: \$? = $ac_status" >&5
++ echo "$as_me:8247: \$? = $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:8250: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8036: \$? = $ac_status" >&5
++ echo "$as_me:8253: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_xopen_source=no
+ else
+@@ -8048,9 +8265,10 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:8051: result: $cf_cv_xopen_source" >&5
++echo "$as_me:8268: result: $cf_cv_xopen_source" >&5
+ echo "${ECHO_T}$cf_cv_xopen_source" >&6
+- if test "$cf_cv_xopen_source" != no ; then
++
++if test "$cf_cv_xopen_source" != no ; then
+
+ CFLAGS=`echo "$CFLAGS" | \
+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+@@ -8060,7 +8278,7 @@
+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -8077,7 +8295,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -8118,7 +8336,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -8140,7 +8358,7 @@
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- fi
++fi
+
+ cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
+
+@@ -8155,16 +8373,16 @@
+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+-echo "$as_me:8158: checking if we should define _POSIX_C_SOURCE" >&5
++echo "$as_me:8376: checking if we should define _POSIX_C_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_posix_c_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-echo "${as_me:-configure}:8164: testing if the symbol is already defined go no further ..." 1>&5
++echo "${as_me:-configure}:8382: testing if the symbol is already defined go no further ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8167 "configure"
++#line 8385 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8179,16 +8397,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8182: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8400: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8185: \$? = $ac_status" >&5
++ echo "$as_me:8403: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8188: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8406: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8191: \$? = $ac_status" >&5
++ echo "$as_me:8409: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_posix_c_source=no
+ else
+@@ -8209,7 +8427,7 @@
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8212 "configure"
++#line 8430 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8224,16 +8442,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8227: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8445: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8230: \$? = $ac_status" >&5
++ echo "$as_me:8448: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8233: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8451: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8236: \$? = $ac_status" >&5
++ echo "$as_me:8454: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -8244,15 +8462,15 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+
+-echo "${as_me:-configure}:8247: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "${as_me:-configure}:8465: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+
+-echo "${as_me:-configure}:8252: testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "${as_me:-configure}:8470: testing if the second compile does not leave our definition intact error ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8255 "configure"
++#line 8473 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -8267,16 +8485,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8270: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8488: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8273: \$? = $ac_status" >&5
++ echo "$as_me:8491: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8276: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8494: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8279: \$? = $ac_status" >&5
++ echo "$as_me:8497: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -8292,7 +8510,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:8295: result: $cf_cv_posix_c_source" >&5
++echo "$as_me:8513: result: $cf_cv_posix_c_source" >&5
+ echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+
+ if test "$cf_cv_posix_c_source" != no ; then
+@@ -8314,7 +8532,92 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++fi
++
++ ;;
++esac
++
++if test -n "$cf_xopen_source" ; then
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_xopen_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -8355,7 +8658,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -8363,33 +8666,221 @@
+ done
+
+ if test -n "$cf_new_cflags" ; then
++ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
++
++echo "${as_me:-configure}:8671: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+
+ if test -n "$cf_new_cppflags" ; then
++ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
++
++echo "${as_me:-configure}:8679: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+ if test -n "$cf_new_extra_cppflags" ; then
++ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
++
++echo "${as_me:-configure}:8687: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+ fi
+
+- ;;
+-esac
++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
++ echo "$as_me:8695: checking if _XOPEN_SOURCE really is set" >&5
++echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8698 "configure"
++#include "confdefs.h"
++#include <stdlib.h>
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8713: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8716: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8719: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8722: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_XOPEN_SOURCE_set=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_XOPEN_SOURCE_set=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ echo "$as_me:8731: result: $cf_XOPEN_SOURCE_set" >&5
++echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
++ if test $cf_XOPEN_SOURCE_set = yes
++ then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8736 "configure"
++#include "confdefs.h"
++#include <stdlib.h>
++int
++main ()
++{
++
++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8751: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8754: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8757: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8760: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_XOPEN_SOURCE_set_ok=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_XOPEN_SOURCE_set_ok=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ if test $cf_XOPEN_SOURCE_set_ok = no
++ then
++ { echo "$as_me:8771: WARNING: _XOPEN_SOURCE is lower than requested" >&5
++echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
++ fi
++ else
++
++echo "$as_me:8776: checking if we should define _XOPEN_SOURCE" >&5
++echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_xopen_source+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8783 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8802: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8805: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8808: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8811: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8820 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifdef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8839: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8842: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8845: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8848: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_xopen_source=$cf_XOPEN_SOURCE
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS="$cf_save"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:8863: result: $cf_cv_xopen_source" >&5
++echo "${ECHO_T}$cf_cv_xopen_source" >&6
++
++if test "$cf_cv_xopen_source" != no ; then
++
++CFLAGS=`echo "$CFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+-if test -n "$cf_xopen_source" ; then
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+ cf_new_cppflags=
+ cf_new_extra_cppflags=
+
+-for cf_add_cflags in $cf_xopen_source
++for cf_add_cflags in $cf_temp_xopen_source
+ do
+ case $cf_fix_cppflags in
+ no)
+@@ -8399,7 +8890,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -8440,7 +8931,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -8464,6 +8955,9 @@
+
+ fi
+
++ fi
++fi
++
+ # Check whether --enable-largefile or --disable-largefile was given.
+ if test "${enable_largefile+set}" = set; then
+ enableval="$enable_largefile"
+@@ -8471,7 +8965,7 @@
+ fi;
+ if test "$enable_largefile" != no; then
+
+- echo "$as_me:8474: checking for special C compiler options needed for large files" >&5
++ echo "$as_me:8968: checking for special C compiler options needed for large files" >&5
+ echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8483,7 +8977,7 @@
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8486 "configure"
++#line 8980 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8503,16 +8997,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8506: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9000: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8509: \$? = $ac_status" >&5
++ echo "$as_me:9003: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8512: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9006: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8515: \$? = $ac_status" >&5
++ echo "$as_me:9009: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -8522,16 +9016,16 @@
+ rm -f conftest.$ac_objext
+ CC="$CC -n32"
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8525: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9019: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8528: \$? = $ac_status" >&5
++ echo "$as_me:9022: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8531: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9025: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8534: \$? = $ac_status" >&5
++ echo "$as_me:9028: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_largefile_CC=' -n32'; break
+ else
+@@ -8545,13 +9039,13 @@
+ rm -f conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:8548: result: $ac_cv_sys_largefile_CC" >&5
++echo "$as_me:9042: result: $ac_cv_sys_largefile_CC" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+- echo "$as_me:8554: checking for _FILE_OFFSET_BITS value needed for large files" >&5
++ echo "$as_me:9048: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8559,7 +9053,7 @@
+ while :; do
+ ac_cv_sys_file_offset_bits=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8562 "configure"
++#line 9056 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8579,16 +9073,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8582: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9076: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8585: \$? = $ac_status" >&5
++ echo "$as_me:9079: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8588: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9082: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8591: \$? = $ac_status" >&5
++ echo "$as_me:9085: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -8597,7 +9091,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8600 "configure"
++#line 9094 "configure"
+ #include "confdefs.h"
+ #define _FILE_OFFSET_BITS 64
+ #include <sys/types.h>
+@@ -8618,16 +9112,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8621: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9115: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8624: \$? = $ac_status" >&5
++ echo "$as_me:9118: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8627: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9121: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8630: \$? = $ac_status" >&5
++ echo "$as_me:9124: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_file_offset_bits=64; break
+ else
+@@ -8638,7 +9132,7 @@
+ break
+ done
+ fi
+-echo "$as_me:8641: result: $ac_cv_sys_file_offset_bits" >&5
++echo "$as_me:9135: result: $ac_cv_sys_file_offset_bits" >&5
+ echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+ if test "$ac_cv_sys_file_offset_bits" != no; then
+
+@@ -8648,7 +9142,7 @@
+
+ fi
+ rm -rf conftest*
+- echo "$as_me:8651: checking for _LARGE_FILES value needed for large files" >&5
++ echo "$as_me:9145: checking for _LARGE_FILES value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_large_files+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8656,7 +9150,7 @@
+ while :; do
+ ac_cv_sys_large_files=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8659 "configure"
++#line 9153 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8676,16 +9170,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8679: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9173: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8682: \$? = $ac_status" >&5
++ echo "$as_me:9176: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8685: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9179: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8688: \$? = $ac_status" >&5
++ echo "$as_me:9182: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -8694,7 +9188,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8697 "configure"
++#line 9191 "configure"
+ #include "confdefs.h"
+ #define _LARGE_FILES 1
+ #include <sys/types.h>
+@@ -8715,16 +9209,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8718: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9212: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8721: \$? = $ac_status" >&5
++ echo "$as_me:9215: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8724: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9218: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8727: \$? = $ac_status" >&5
++ echo "$as_me:9221: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_large_files=1; break
+ else
+@@ -8735,7 +9229,7 @@
+ break
+ done
+ fi
+-echo "$as_me:8738: result: $ac_cv_sys_large_files" >&5
++echo "$as_me:9232: result: $ac_cv_sys_large_files" >&5
+ echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+ if test "$ac_cv_sys_large_files" != no; then
+
+@@ -8748,7 +9242,7 @@
+ fi
+
+ if test "$enable_largefile" != no ; then
+- echo "$as_me:8751: checking for _LARGEFILE_SOURCE value needed for large files" >&5
++ echo "$as_me:9245: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8756,7 +9250,7 @@
+ while :; do
+ ac_cv_sys_largefile_source=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8759 "configure"
++#line 9253 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8768,16 +9262,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8771: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9265: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8774: \$? = $ac_status" >&5
++ echo "$as_me:9268: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8777: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9271: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8780: \$? = $ac_status" >&5
++ echo "$as_me:9274: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -8786,7 +9280,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8789 "configure"
++#line 9283 "configure"
+ #include "confdefs.h"
+ #define _LARGEFILE_SOURCE 1
+ #include <stdio.h>
+@@ -8799,16 +9293,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8802: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9296: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8805: \$? = $ac_status" >&5
++ echo "$as_me:9299: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8808: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9302: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8811: \$? = $ac_status" >&5
++ echo "$as_me:9305: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_largefile_source=1; break
+ else
+@@ -8819,7 +9313,7 @@
+ break
+ done
+ fi
+-echo "$as_me:8822: result: $ac_cv_sys_largefile_source" >&5
++echo "$as_me:9316: result: $ac_cv_sys_largefile_source" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
+ if test "$ac_cv_sys_largefile_source" != no; then
+
+@@ -8833,13 +9327,13 @@
+ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+ # in glibc 2.1.3, but that breaks too many other things.
+ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+-echo "$as_me:8836: checking for fseeko" >&5
++echo "$as_me:9330: checking for fseeko" >&5
+ echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
+ if test "${ac_cv_func_fseeko+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8842 "configure"
++#line 9336 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8851,16 +9345,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8854: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9348: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8857: \$? = $ac_status" >&5
++ echo "$as_me:9351: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8860: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9354: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8863: \$? = $ac_status" >&5
++ echo "$as_me:9357: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_fseeko=yes
+ else
+@@ -8870,7 +9364,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8873: result: $ac_cv_func_fseeko" >&5
++echo "$as_me:9367: result: $ac_cv_func_fseeko" >&5
+ echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+ if test $ac_cv_func_fseeko = yes; then
+
+@@ -8891,14 +9385,14 @@
+ test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+ test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
+
+- echo "$as_me:8894: checking whether to use struct dirent64" >&5
++ echo "$as_me:9388: checking whether to use struct dirent64" >&5
+ echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
+ if test "${cf_cv_struct_dirent64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8901 "configure"
++#line 9395 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -8919,16 +9413,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8922: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9416: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8925: \$? = $ac_status" >&5
++ echo "$as_me:9419: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8928: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9422: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8931: \$? = $ac_status" >&5
++ echo "$as_me:9425: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_struct_dirent64=yes
+ else
+@@ -8939,16 +9433,17 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:8942: result: $cf_cv_struct_dirent64" >&5
++echo "$as_me:9436: result: $cf_cv_struct_dirent64" >&5
+ echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
+- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
++ test "$cf_cv_struct_dirent64" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_STRUCT_DIRENT64 1
+ EOF
+
+ fi
+
+ ### Enable compiling-in rcs id's
+-echo "$as_me:8951: checking if RCS identifiers should be compiled-in" >&5
++echo "$as_me:9446: checking if RCS identifiers should be compiled-in" >&5
+ echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+
+ # Check whether --with-rcs-ids or --without-rcs-ids was given.
+@@ -8958,16 +9453,17 @@
+ else
+ with_rcs_ids=no
+ fi;
+-echo "$as_me:8961: result: $with_rcs_ids" >&5
++echo "$as_me:9456: result: $with_rcs_ids" >&5
+ echo "${ECHO_T}$with_rcs_ids" >&6
+-test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
++test "$with_rcs_ids" = yes &&
++cat >>confdefs.h <<\EOF
+ #define USE_RCS_IDS 1
+ EOF
+
+ ###############################################################################
+
+ ### Note that some functions (such as const) are normally disabled anyway.
+-echo "$as_me:8970: checking if you want to build with function extensions" >&5
++echo "$as_me:9466: checking if you want to build with function extensions" >&5
+ echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
+
+ # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
+@@ -8977,15 +9473,16 @@
+ else
+ with_ext_funcs=yes
+ fi;
+-echo "$as_me:8980: result: $with_ext_funcs" >&5
++echo "$as_me:9476: result: $with_ext_funcs" >&5
+ echo "${ECHO_T}$with_ext_funcs" >&6
+ if test "$with_ext_funcs" = yes ; then
+ NCURSES_EXT_FUNCS=1
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_USE_DEFAULT_COLORS 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define NCURSES_EXT_FUNCS 1
+ EOF
+
+@@ -8994,7 +9491,7 @@
+ fi
+
+ ### use option --enable-const to turn on use of const beyond that in XSI.
+-echo "$as_me:8997: checking for extended use of const keyword" >&5
++echo "$as_me:9494: checking for extended use of const keyword" >&5
+ echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+
+ # Check whether --enable-const or --disable-const was given.
+@@ -9004,7 +9501,7 @@
+ else
+ with_ext_const=no
+ fi;
+-echo "$as_me:9007: result: $with_ext_const" >&5
++echo "$as_me:9504: result: $with_ext_const" >&5
+ echo "${ECHO_T}$with_ext_const" >&6
+ NCURSES_CONST='/*nothing*/'
+ if test "$with_ext_const" = yes ; then
+@@ -9014,7 +9511,7 @@
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+
+-echo "$as_me:9017: checking if you want all development code" >&5
++echo "$as_me:9514: checking if you want all development code" >&5
+ echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
+
+ # Check whether --with-develop or --without-develop was given.
+@@ -9024,7 +9521,7 @@
+ else
+ with_develop=no
+ fi;
+-echo "$as_me:9027: result: $with_develop" >&5
++echo "$as_me:9524: result: $with_develop" >&5
+ echo "${ECHO_T}$with_develop" >&6
+
+ ###############################################################################
+@@ -9033,7 +9530,7 @@
+ # This is still experimental (20080329), but should ultimately be moved to
+ # the script-block --with-normal, etc.
+
+-echo "$as_me:9036: checking if you want to link with the pthread library" >&5
++echo "$as_me:9533: checking if you want to link with the pthread library" >&5
+ echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
+
+ # Check whether --with-pthread or --without-pthread was given.
+@@ -9043,27 +9540,27 @@
+ else
+ with_pthread=no
+ fi;
+-echo "$as_me:9046: result: $with_pthread" >&5
++echo "$as_me:9543: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
+
+ if test "$with_pthread" != no ; then
+- echo "$as_me:9050: checking for pthread.h" >&5
++ echo "$as_me:9547: checking for pthread.h" >&5
+ echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
+ if test "${ac_cv_header_pthread_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9056 "configure"
++#line 9553 "configure"
+ #include "confdefs.h"
+ #include <pthread.h>
+ _ACEOF
+-if { (eval echo "$as_me:9060: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:9557: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:9066: \$? = $ac_status" >&5
++ echo "$as_me:9563: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9082,20 +9579,38 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:9085: result: $ac_cv_header_pthread_h" >&5
++echo "$as_me:9582: result: $ac_cv_header_pthread_h" >&5
+ echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
+ if test $ac_cv_header_pthread_h = yes; then
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_PTHREADS_H 1
+ EOF
+
+- echo "$as_me:9093: checking if we can link with the pthread library" >&5
+-echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
+- cf_save_LIBS="$LIBS"
+- LIBS="-lpthread $LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9098 "configure"
++ for cf_lib_pthread in pthread c_r
++ do
++ echo "$as_me:9592: checking if we can link with the $cf_lib_pthread library" >&5
++echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6
++ cf_save_LIBS="$LIBS"
++
++cf_add_libs="-l$cf_lib_pthread"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9613 "configure"
+ #include "confdefs.h"
+
+ #include <pthread.h>
+@@ -9104,23 +9619,24 @@
+ main ()
+ {
+
+- int rc = pthread_create(0,0,0,0);
++ int rc = pthread_create(0,0,0,0);
++ int r2 = pthread_mutexattr_settype(0, 0);
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9114: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9630: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9117: \$? = $ac_status" >&5
++ echo "$as_me:9633: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9120: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9636: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9123: \$? = $ac_status" >&5
++ echo "$as_me:9639: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ with_pthread=yes
+ else
+@@ -9129,27 +9645,45 @@
+ with_pthread=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- LIBS="$cf_save_LIBS"
+- echo "$as_me:9133: result: $with_pthread" >&5
++ LIBS="$cf_save_LIBS"
++ echo "$as_me:9649: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
++ test "$with_pthread" = yes && break
++ done
++
++ if test "$with_pthread" = yes ; then
++
++cf_add_libs="-l$cf_lib_pthread"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- if test "$with_pthread" = yes ; then
+- LIBS="-lpthread $LIBS"
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBPTHREADS 1
+ EOF
+
+- else
+- { { echo "$as_me:9143: error: Cannot link with pthread library" >&5
++ else
++ { { echo "$as_me:9677: error: Cannot link with pthread library" >&5
+ echo "$as_me: error: Cannot link with pthread library" >&2;}
+ { (exit 1); exit 1; }; }
+- fi
++ fi
+
+ fi
+
+ fi
+
+-echo "$as_me:9152: checking if you want to use weak-symbols for pthreads" >&5
++echo "$as_me:9686: checking if you want to use weak-symbols for pthreads" >&5
+ echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
+
+ # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
+@@ -9159,18 +9693,18 @@
+ else
+ use_weak_symbols=no
+ fi;
+-echo "$as_me:9162: result: $use_weak_symbols" >&5
++echo "$as_me:9696: result: $use_weak_symbols" >&5
+ echo "${ECHO_T}$use_weak_symbols" >&6
+ if test "$use_weak_symbols" = yes ; then
+
+-echo "$as_me:9166: checking if $CC supports weak symbols" >&5
++echo "$as_me:9700: checking if $CC supports weak symbols" >&5
+ echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
+ if test "${cf_cv_weak_symbols+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9173 "configure"
++#line 9707 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -9196,16 +9730,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9199: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9733: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9202: \$? = $ac_status" >&5
++ echo "$as_me:9736: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9205: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9739: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9208: \$? = $ac_status" >&5
++ echo "$as_me:9742: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_weak_symbols=yes
+ else
+@@ -9216,7 +9750,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:9219: result: $cf_cv_weak_symbols" >&5
++echo "$as_me:9753: result: $cf_cv_weak_symbols" >&5
+ echo "${ECHO_T}$cf_cv_weak_symbols" >&6
+
+ else
+@@ -9224,7 +9758,8 @@
+ fi
+
+ if test $cf_cv_weak_symbols = yes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define USE_WEAK_SYMBOLS 1
+ EOF
+
+@@ -9232,7 +9767,8 @@
+
+ PTHREAD=
+ if test "$with_pthread" = "yes" ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define USE_PTHREADS 1
+ EOF
+
+@@ -9243,13 +9779,13 @@
+ fi
+
+ # OpenSUSE is installing ncurses6, using reentrant option.
+-echo "$as_me:9246: checking for _nc_TABSIZE" >&5
++echo "$as_me:9782: checking for _nc_TABSIZE" >&5
+ echo $ECHO_N "checking for _nc_TABSIZE... $ECHO_C" >&6
+ if test "${ac_cv_func__nc_TABSIZE+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9252 "configure"
++#line 9788 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char _nc_TABSIZE (); below. */
+@@ -9272,7 +9808,7 @@
+ #if defined (__stub__nc_TABSIZE) || defined (__stub____nc_TABSIZE)
+ choke me
+ #else
+-f = _nc_TABSIZE;
++f = _nc_TABSIZE; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -9280,16 +9816,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9283: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9819: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9286: \$? = $ac_status" >&5
++ echo "$as_me:9822: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9289: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9825: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9292: \$? = $ac_status" >&5
++ echo "$as_me:9828: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func__nc_TABSIZE=yes
+ else
+@@ -9299,7 +9835,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9302: result: $ac_cv_func__nc_TABSIZE" >&5
++echo "$as_me:9838: result: $ac_cv_func__nc_TABSIZE" >&5
+ echo "${ECHO_T}$ac_cv_func__nc_TABSIZE" >&6
+ if test $ac_cv_func__nc_TABSIZE = yes; then
+ assume_reentrant=yes
+@@ -9311,7 +9847,7 @@
+ # opaque outside of that, so there is no --enable-opaque option. We can use
+ # this option without --with-pthreads, but this will be always set for
+ # pthreads.
+-echo "$as_me:9314: checking if you want experimental reentrant code" >&5
++echo "$as_me:9850: checking if you want experimental reentrant code" >&5
+ echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
+
+ # Check whether --enable-reentrant or --disable-reentrant was given.
+@@ -9321,7 +9857,7 @@
+ else
+ with_reentrant=$assume_reentrant
+ fi;
+-echo "$as_me:9324: result: $with_reentrant" >&5
++echo "$as_me:9860: result: $with_reentrant" >&5
+ echo "${ECHO_T}$with_reentrant" >&6
+ if test "$with_reentrant" = yes ; then
+ cf_cv_enable_reentrant=1
+@@ -9333,7 +9869,8 @@
+ elif test "$assume_reentrant" = no ; then
+ LIB_SUFFIX="t${LIB_SUFFIX}"
+ fi
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define USE_REENTRANT 1
+ EOF
+
+@@ -9343,7 +9880,7 @@
+
+ ### Allow using a different wrap-prefix
+ if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+- echo "$as_me:9346: checking for prefix used to wrap public variables" >&5
++ echo "$as_me:9883: checking for prefix used to wrap public variables" >&5
+ echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
+
+ # Check whether --with-wrap-prefix or --without-wrap-prefix was given.
+@@ -9353,7 +9890,7 @@
+ else
+ NCURSES_WRAP_PREFIX=_nc_
+ fi;
+- echo "$as_me:9356: result: $NCURSES_WRAP_PREFIX" >&5
++ echo "$as_me:9893: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+ else
+ NCURSES_WRAP_PREFIX=_nc_
+@@ -9366,26 +9903,46 @@
+ ###############################################################################
+
+ ### use option --disable-echo to suppress full display compiling commands
+-echo "$as_me:9369: checking if you want to display full commands during build" >&5
+-echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
++
++echo "$as_me:9907: checking if you want to see long compiling messages" >&5
++echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
+
+ # Check whether --enable-echo or --disable-echo was given.
+ if test "${enable_echo+set}" = set; then
+ enableval="$enable_echo"
+- with_echo=$enableval
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++
++ ECHO_LT='--silent'
++ ECHO_LD='@echo linking $@;'
++ RULE_CC='@echo compiling $<'
++ SHOW_CC='@echo compiling $@'
++ ECHO_CC='@'
++
++ else
++
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
++
++ fi
+ else
+- with_echo=yes
++ enableval=yes
++
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
++
+ fi;
+-if test "$with_echo" = yes; then
+- ECHO_LINK=
+-else
+- ECHO_LINK='@ echo linking $@ ... ;'
+-fi
+-echo "$as_me:9384: result: $with_echo" >&5
+-echo "${ECHO_T}$with_echo" >&6
++echo "$as_me:9941: result: $enableval" >&5
++echo "${ECHO_T}$enableval" >&6
+
+ ### use option --enable-warnings to turn on all gcc warnings
+-echo "$as_me:9388: checking if you want to see compiler warnings" >&5
++echo "$as_me:9945: checking if you want to see compiler warnings" >&5
+ echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
+
+ # Check whether --enable-warnings or --disable-warnings was given.
+@@ -9393,7 +9950,7 @@
+ enableval="$enable_warnings"
+ with_warnings=$enableval
+ fi;
+-echo "$as_me:9396: result: $with_warnings" >&5
++echo "$as_me:9953: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+
+ if test "x$with_warnings" = "xyes"; then
+@@ -9405,12 +9962,12 @@
+ if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+- echo "$as_me:9408: checking if this is really Intel C compiler" >&5
++ echo "$as_me:9965: checking if this is really Intel C compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -no-gcc"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9413 "configure"
++#line 9970 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -9427,19 +9984,19 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9430: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9987: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9433: \$? = $ac_status" >&5
++ echo "$as_me:9990: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9436: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9993: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9439: \$? = $ac_status" >&5
++ echo "$as_me:9996: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ INTEL_COMPILER=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
+
+ else
+ echo "$as_me: failed program was:" >&5
+@@ -9447,14 +10004,63 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$cf_save_CFLAGS"
+- echo "$as_me:9450: result: $INTEL_COMPILER" >&5
++ echo "$as_me:10007: result: $INTEL_COMPILER" >&5
+ echo "${ECHO_T}$INTEL_COMPILER" >&6
+ ;;
+ esac
+ fi
+
++CLANG_COMPILER=no
++
++if test "$GCC" = yes ; then
++ echo "$as_me:10016: checking if this is really Clang C compiler" >&5
++echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
++ cf_save_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -Qunused-arguments"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 10021 "configure"
++#include "confdefs.h"
++
++int
++main ()
++{
++
++#ifdef __clang__
++#else
++make an error
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:10038: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:10041: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:10044: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:10047: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ CLANG_COMPILER=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ echo "$as_me:10058: result: $CLANG_COMPILER" >&5
++echo "${ECHO_T}$CLANG_COMPILER" >&6
++fi
++
+ cat > conftest.$ac_ext <<EOF
+-#line 9457 "${as_me:-configure}"
++#line 10063 "${as_me:-configure}"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+
+@@ -9471,7 +10077,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #279: controlling expression is constant
+
+- { echo "$as_me:9474: checking for $CC warning options..." >&5
++ { echo "$as_me:10080: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS="-Wall"
+@@ -9487,12 +10093,12 @@
+ wd981
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:9490: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:10096: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9493: \$? = $ac_status" >&5
++ echo "$as_me:10099: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:9495: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:10101: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+@@ -9501,16 +10107,20 @@
+
+ elif test "$GCC" = yes
+ then
+- { echo "$as_me:9504: checking for $CC warning options..." >&5
++ { echo "$as_me:10110: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS=
+ cf_warn_CONST=""
+ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
+ for cf_opt in W Wall \
+ Wbad-function-cast \
+ Wcast-align \
+ Wcast-qual \
++ Wdeclaration-after-statement \
++ Wextra \
+ Winline \
+ Wmissing-declarations \
+ Wmissing-prototypes \
+@@ -9518,15 +10128,15 @@
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+- Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
++ Wundef $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:9524: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:10134: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9527: \$? = $ac_status" >&5
++ echo "$as_me:10137: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:9529: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:10139: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ case $cf_opt in #(vi
+ Wcast-qual) #(vi
+@@ -9537,7 +10147,17 @@
+ [34].*)
+ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
+
+-echo "${as_me:-configure}:9540: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++echo "${as_me:-configure}:10150: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++
++ continue;;
++ esac
++ ;;
++ Wpointer-arith) #(vi
++ case $GCC_VERSION in
++ [12].*)
++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
++
++echo "${as_me:-configure}:10160: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+
+ continue;;
+ esac
+@@ -9570,10 +10190,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+- { echo "$as_me:9573: checking for $CC __attribute__ directives..." >&5
++ { echo "$as_me:10193: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 9576 "${as_me:-configure}"
++#line 10196 "${as_me:-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -9622,36 +10242,60 @@
+ ;;
+ esac
+
+- if { (eval echo "$as_me:9625: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:10245: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9628: \$? = $ac_status" >&5
++ echo "$as_me:10248: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:9630: result: ... $cf_attribute" >&5
++ test -n "$verbose" && echo "$as_me:10250: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ cat conftest.h >>confdefs.h
+ case $cf_attribute in #(vi
+- printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
++ noreturn) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_NORETURN $cf_directive
+ EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
++
++ ;;
++ printf) #(vi
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
++
++cat >>confdefs.h <<\EOF
++#define GCC_PRINTF 1
+ EOF
++
+ fi
++
++cat >>confdefs.h <<EOF
++#define GCC_PRINTFLIKE(fmt,var) $cf_value
++EOF
++
+ ;;
+ scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
++
++cat >>confdefs.h <<\EOF
++#define GCC_SCANF 1
+ EOF
++
+ fi
++
++cat >>confdefs.h <<EOF
++#define GCC_SCANFLIKE(fmt,var) $cf_value
++EOF
++
++ ;;
++ unused) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_UNUSED $cf_directive
++EOF
++
+ ;;
+ esac
+ fi
+@@ -9663,7 +10307,7 @@
+ fi
+
+ ### use option --enable-assertions to turn on generation of assertion code
+-echo "$as_me:9666: checking if you want to enable runtime assertions" >&5
++echo "$as_me:10310: checking if you want to enable runtime assertions" >&5
+ echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
+
+ # Check whether --enable-assertions or --disable-assertions was given.
+@@ -9673,16 +10317,12 @@
+ else
+ with_assertions=no
+ fi;
+-echo "$as_me:9676: result: $with_assertions" >&5
++echo "$as_me:10320: result: $with_assertions" >&5
+ echo "${ECHO_T}$with_assertions" >&6
+ if test -n "$GCC"
+ then
+ if test "$with_assertions" = no
+ then
+- cat >>confdefs.h <<\EOF
+-#define NDEBUG 1
+-EOF
+-
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
+ else
+
+@@ -9692,6 +10332,7 @@
+ fi
+
+ ### use option --disable-leaks to suppress "permanent" leaks, for testing
++
+ cat >>confdefs.h <<\EOF
+ #define HAVE_NC_ALLOC_H 1
+ EOF
+@@ -9701,7 +10342,8 @@
+ # Check whether --enable-expanded or --disable-expanded was given.
+ if test "${enable_expanded+set}" = set; then
+ enableval="$enable_expanded"
+- test "$enableval" = yes && cat >>confdefs.h <<\EOF
++ test "$enableval" = yes &&
++cat >>confdefs.h <<\EOF
+ #define NCURSES_EXPANDED 1
+ EOF
+
+@@ -9712,7 +10354,8 @@
+ # Check whether --enable-macros or --disable-macros was given.
+ if test "${enable_macros+set}" = set; then
+ enableval="$enable_macros"
+- test "$enableval" = no && cat >>confdefs.h <<\EOF
++ test "$enableval" = no &&
++cat >>confdefs.h <<\EOF
+ #define NCURSES_NOMACROS 1
+ EOF
+
+@@ -9727,7 +10370,7 @@
+ ;;
+ esac
+
+-echo "$as_me:9730: checking whether to add trace feature to all models" >&5
++echo "$as_me:10373: checking whether to add trace feature to all models" >&5
+ echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
+
+ # Check whether --with-trace or --without-trace was given.
+@@ -9737,7 +10380,7 @@
+ else
+ cf_with_trace=$cf_all_traces
+ fi;
+-echo "$as_me:9740: result: $cf_with_trace" >&5
++echo "$as_me:10383: result: $cf_with_trace" >&5
+ echo "${ECHO_T}$cf_with_trace" >&6
+
+ if test "$cf_with_trace" = yes ; then
+@@ -9758,7 +10401,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -9799,7 +10442,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -9825,18 +10468,38 @@
+ ADA_TRACE=FALSE
+ fi
+
++echo "$as_me:10471: checking if we want to use GNAT projects" >&5
++echo $ECHO_N "checking if we want to use GNAT projects... $ECHO_C" >&6
++
++# Check whether --enable-gnat-projects or --disable-gnat-projects was given.
++if test "${enable_gnat_projects+set}" = set; then
++ enableval="$enable_gnat_projects"
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++ enable_gnat_projects=no
++ else
++ enable_gnat_projects=yes
++ fi
++else
++ enableval=yes
++ enable_gnat_projects=yes
++
++fi;
++echo "$as_me:10488: result: $enable_gnat_projects" >&5
++echo "${ECHO_T}$enable_gnat_projects" >&6
++
+ ### Checks for libraries.
+ case $cf_cv_system_name in #(vi
+ *mingw32*) #(vi
+ ;;
+ *)
+-echo "$as_me:9833: checking for gettimeofday" >&5
++echo "$as_me:10496: checking for gettimeofday" >&5
+ echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+ if test "${ac_cv_func_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9839 "configure"
++#line 10502 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gettimeofday (); below. */
+@@ -9859,7 +10522,7 @@
+ #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
+ choke me
+ #else
+-f = gettimeofday;
++f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -9867,16 +10530,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9870: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10533: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9873: \$? = $ac_status" >&5
++ echo "$as_me:10536: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9876: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10539: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9879: \$? = $ac_status" >&5
++ echo "$as_me:10542: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_gettimeofday=yes
+ else
+@@ -9886,7 +10549,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9889: result: $ac_cv_func_gettimeofday" >&5
++echo "$as_me:10552: result: $ac_cv_func_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+ if test $ac_cv_func_gettimeofday = yes; then
+ cat >>confdefs.h <<\EOF
+@@ -9895,7 +10558,7 @@
+
+ else
+
+-echo "$as_me:9898: checking for gettimeofday in -lbsd" >&5
++echo "$as_me:10561: checking for gettimeofday in -lbsd" >&5
+ echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9903,7 +10566,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9906 "configure"
++#line 10569 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -9922,16 +10585,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9925: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10588: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9928: \$? = $ac_status" >&5
++ echo "$as_me:10591: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9931: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10594: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9934: \$? = $ac_status" >&5
++ echo "$as_me:10597: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_bsd_gettimeofday=yes
+ else
+@@ -9942,10 +10605,11 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9945: result: $ac_cv_lib_bsd_gettimeofday" >&5
++echo "$as_me:10608: result: $ac_cv_lib_bsd_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+ if test $ac_cv_lib_bsd_gettimeofday = yes; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_GETTIMEOFDAY 1
+ EOF
+
+@@ -9957,13 +10621,13 @@
+ esac
+
+ ### Checks for header files.
+-echo "$as_me:9960: checking for ANSI C header files" >&5
++echo "$as_me:10624: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9966 "configure"
++#line 10630 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -9971,13 +10635,13 @@
+ #include <float.h>
+
+ _ACEOF
+-if { (eval echo "$as_me:9974: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:10638: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:9980: \$? = $ac_status" >&5
++ echo "$as_me:10644: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -9999,7 +10663,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10002 "configure"
++#line 10666 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+
+@@ -10017,7 +10681,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10020 "configure"
++#line 10684 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+
+@@ -10038,7 +10702,7 @@
+ :
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10041 "configure"
++#line 10705 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -10064,15 +10728,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10067: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10731: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10070: \$? = $ac_status" >&5
++ echo "$as_me:10734: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:10072: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10736: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10075: \$? = $ac_status" >&5
++ echo "$as_me:10739: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -10085,7 +10749,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:10088: result: $ac_cv_header_stdc" >&5
++echo "$as_me:10752: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+
+@@ -10098,13 +10762,13 @@
+ ac_header_dirent=no
+ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+-echo "$as_me:10101: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:10765: checking for $ac_hdr that defines DIR" >&5
+ echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10107 "configure"
++#line 10771 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -10119,16 +10783,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10122: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10786: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10125: \$? = $ac_status" >&5
++ echo "$as_me:10789: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10128: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10792: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10131: \$? = $ac_status" >&5
++ echo "$as_me:10795: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+ else
+@@ -10138,7 +10802,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10141: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:10805: 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
+@@ -10151,7 +10815,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:10154: checking for opendir in -ldir" >&5
++ echo "$as_me:10818: checking for opendir in -ldir" >&5
+ echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+ if test "${ac_cv_lib_dir_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10159,7 +10823,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldir $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10162 "configure"
++#line 10826 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -10178,16 +10842,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10181: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10845: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10184: \$? = $ac_status" >&5
++ echo "$as_me:10848: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10187: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10851: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10190: \$? = $ac_status" >&5
++ echo "$as_me:10854: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dir_opendir=yes
+ else
+@@ -10198,14 +10862,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10201: result: $ac_cv_lib_dir_opendir" >&5
++echo "$as_me:10865: result: $ac_cv_lib_dir_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+ if test $ac_cv_lib_dir_opendir = yes; then
+ LIBS="$LIBS -ldir"
+ fi
+
+ else
+- echo "$as_me:10208: checking for opendir in -lx" >&5
++ echo "$as_me:10872: checking for opendir in -lx" >&5
+ echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+ if test "${ac_cv_lib_x_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10213,7 +10877,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lx $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10216 "configure"
++#line 10880 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -10232,191 +10896,100 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10235: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10899: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10238: \$? = $ac_status" >&5
++ echo "$as_me:10902: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10241: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10905: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10244: \$? = $ac_status" >&5
++ echo "$as_me:10908: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_x_opendir=yes
+ else
+ echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_x_opendir=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:10255: result: $ac_cv_lib_x_opendir" >&5
+-echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+-if test $ac_cv_lib_x_opendir = yes; then
+- LIBS="$LIBS -lx"
+-fi
+-
+-fi
+-
+-echo "$as_me:10263: checking whether time.h and sys/time.h may both be included" >&5
+-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+-if test "${ac_cv_header_time+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 10269 "configure"
+-#include "confdefs.h"
+-#include <sys/types.h>
+-#include <sys/time.h>
+-#include <time.h>
+-
+-int
+-main ()
+-{
+-if ((struct tm *) 0)
+-return 0;
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10285: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:10288: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10291: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10294: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_header_time=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_header_time=no
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:10304: result: $ac_cv_header_time" >&5
+-echo "${ECHO_T}$ac_cv_header_time" >&6
+-if test $ac_cv_header_time = yes; then
+-
+-cat >>confdefs.h <<\EOF
+-#define TIME_WITH_SYS_TIME 1
+-EOF
+-
+-fi
+-
+-### checks for compiler characteristics
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-ac_main_return=return
+-
+-echo "$as_me:10322: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 10330 "configure"
+-#include "confdefs.h"
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+- char **p;
+- int i;
+-{
+- return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+- char *s;
+- va_list v;
+- va_start (v,p);
+- s = g (p, va_arg (v,int));
+- va_end (v);
+- return s;
+-}
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
++cat conftest.$ac_ext >&5
++ac_cv_lib_x_opendir=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:10919: 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"
++fi
++
++fi
++
++echo "$as_me:10927: 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 10933 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++#include <sys/time.h>
++#include <time.h>
++
+ int
+ main ()
+ {
+-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
++if ((struct tm *) 0)
++return 0;
+ ;
+ return 0;
+ }
+ _ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX 10.20 and later -Ae
+-# HP-UX older versions -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+- CC="$ac_save_CC $ac_arg"
+- rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10379: \"$ac_compile\"") >&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:10949: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10382: \$? = $ac_status" >&5
++ echo "$as_me:10952: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10385: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10955: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10388: \$? = $ac_status" >&5
++ echo "$as_me:10958: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_prog_cc_stdc=$ac_arg
+-break
++ ac_cv_header_time=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++ac_cv_header_time=no
+ fi
+-rm -f conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:10968: result: $ac_cv_header_time" >&5
++echo "${ECHO_T}$ac_cv_header_time" >&6
++if test $ac_cv_header_time = yes; then
++
++cat >>confdefs.h <<\EOF
++#define TIME_WITH_SYS_TIME 1
++EOF
+
+ fi
+
+-case "x$ac_cv_prog_cc_stdc" in
+- x|xno)
+- echo "$as_me:10405: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+- *)
+- echo "$as_me:10408: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+- CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
++### checks for compiler characteristics
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++ac_main_return=return
+
+-echo "$as_me:10413: checking for an ANSI C-conforming const" >&5
++echo "$as_me:10986: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10419 "configure"
++#line 10992 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -10474,16 +11047,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10477: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11050: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10480: \$? = $ac_status" >&5
++ echo "$as_me:11053: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10483: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11056: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10486: \$? = $ac_status" >&5
++ echo "$as_me:11059: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+ else
+@@ -10493,7 +11066,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10496: result: $ac_cv_c_const" >&5
++echo "$as_me:11069: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+
+@@ -10505,7 +11078,7 @@
+
+ ### Checks for external-data
+
+-echo "$as_me:10508: checking if data-only library module links" >&5
++echo "$as_me:11081: checking if data-only library module links" >&5
+ echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
+ if test "${cf_cv_link_dataonly+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10513,20 +11086,20 @@
+
+ rm -f conftest.a
+ cat >conftest.$ac_ext <<EOF
+-#line 10516 "configure"
++#line 11089 "configure"
+ int testdata[3] = { 123, 456, 789 };
+ EOF
+- if { (eval echo "$as_me:10519: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:11092: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10522: \$? = $ac_status" >&5
++ echo "$as_me:11095: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ mv conftest.o data.o && \
+ ( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
+ fi
+ rm -f conftest.$ac_ext data.o
+ cat >conftest.$ac_ext <<EOF
+-#line 10529 "configure"
++#line 11102 "configure"
+ int testfunc()
+ {
+ #if defined(NeXT)
+@@ -10539,10 +11112,10 @@
+ #endif
+ }
+ EOF
+- if { (eval echo "$as_me:10542: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:11115: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10545: \$? = $ac_status" >&5
++ echo "$as_me:11118: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ mv conftest.o func.o && \
+ ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
+@@ -10555,7 +11128,7 @@
+ cf_cv_link_dataonly=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10558 "configure"
++#line 11131 "configure"
+ #include "confdefs.h"
+
+ int main()
+@@ -10566,15 +11139,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10569: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11142: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10572: \$? = $ac_status" >&5
++ echo "$as_me:11145: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:10574: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11147: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10577: \$? = $ac_status" >&5
++ echo "$as_me:11150: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_link_dataonly=yes
+ else
+@@ -10589,11 +11162,12 @@
+
+ fi
+
+-echo "$as_me:10592: result: $cf_cv_link_dataonly" >&5
++echo "$as_me:11165: result: $cf_cv_link_dataonly" >&5
+ echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+
+ if test "$cf_cv_link_dataonly" = no ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define BROKEN_LINKER 1
+ EOF
+
+@@ -10602,7 +11176,7 @@
+
+ ### Checks for library functions.
+
+-echo "$as_me:10605: checking for working mkstemp" >&5
++echo "$as_me:11179: checking for working mkstemp" >&5
+ echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
+ if test "${cf_cv_func_mkstemp+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10610,68 +11184,10 @@
+
+ rm -rf conftest*
+ if test "$cross_compiling" = yes; then
+- echo "$as_me:10613: checking for mkstemp" >&5
+-echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
+-if test "${ac_cv_func_mkstemp+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 10619 "configure"
+-#include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char mkstemp (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char mkstemp ();
+-char (*f) ();
+-
+-int
+-main ()
+-{
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
+-choke me
+-#else
+-f = mkstemp;
+-#endif
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10650: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10653: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10656: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10659: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_func_mkstemp=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_mkstemp=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:10669: result: $ac_cv_func_mkstemp" >&5
+-echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+-
++ cf_cv_func_mkstemp=maybe
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10674 "configure"
++#line 11190 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -10709,15 +11225,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10712: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11228: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10715: \$? = $ac_status" >&5
++ echo "$as_me:11231: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:10717: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11233: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10720: \$? = $ac_status" >&5
++ echo "$as_me:11236: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_mkstemp=yes
+
+@@ -10732,80 +11248,89 @@
+ fi
+
+ fi
+-echo "$as_me:10735: result: $cf_cv_func_mkstemp" >&5
++echo "$as_me:11251: result: $cf_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
+-if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
+- cat >>confdefs.h <<\EOF
+-#define HAVE_MKSTEMP 1
+-EOF
+-
+-fi
+-
+-echo "$as_me:10744: checking return type of signal handlers" >&5
+-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+-if test "${ac_cv_type_signal+set}" = set; then
++if test "x$cf_cv_func_mkstemp" = xmaybe ; then
++ echo "$as_me:11254: checking for mkstemp" >&5
++echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
++if test "${ac_cv_func_mkstemp+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10750 "configure"
++#line 11260 "configure"
+ #include "confdefs.h"
+-#include <sys/types.h>
+-#include <signal.h>
+-#ifdef signal
+-# undef signal
+-#endif
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char mkstemp (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+-extern "C" void (*signal (int, void (*)(int)))(int);
+-#else
+-void (*signal ()) ();
++extern "C"
+ #endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char mkstemp ();
++char (*f) ();
+
+ int
+ main ()
+ {
+-int i;
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
++choke me
++#else
++f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10772: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:11291: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10775: \$? = $ac_status" >&5
++ echo "$as_me:11294: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10778: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:11297: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10781: \$? = $ac_status" >&5
++ echo "$as_me:11300: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_type_signal=void
++ ac_cv_func_mkstemp=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_type_signal=int
++ac_cv_func_mkstemp=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10791: result: $ac_cv_type_signal" >&5
+-echo "${ECHO_T}$ac_cv_type_signal" >&6
++echo "$as_me:11310: result: $ac_cv_func_mkstemp" >&5
++echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+
+-cat >>confdefs.h <<EOF
+-#define RETSIGTYPE $ac_cv_type_signal
++fi
++if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
++
++cat >>confdefs.h <<\EOF
++#define HAVE_MKSTEMP 1
+ EOF
+
++fi
++
+ if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
+ CFLAGS=`echo ${CFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
+ CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'`
+ fi
+
++cf_with_ada=yes
+ if test "$cf_with_ada" != "no" ; then
+
+ cf_ada_make=gnatmake
+ # Extract the first word of "$cf_ada_make", so it can be a program name with args.
+ set dummy $cf_ada_make; ac_word=$2
+-echo "$as_me:10808: checking for $ac_word" >&5
++echo "$as_me:11333: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_gnat_exists+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10820,7 +11345,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_gnat_exists="yes"
+-echo "$as_me:10823: found $ac_dir/$ac_word" >&5
++echo "$as_me:11348: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -10829,31 +11354,32 @@
+ fi
+ gnat_exists=$ac_cv_prog_gnat_exists
+ if test -n "$gnat_exists"; then
+- echo "$as_me:10832: result: $gnat_exists" >&5
++ echo "$as_me:11357: result: $gnat_exists" >&5
+ echo "${ECHO_T}$gnat_exists" >&6
+ else
+- echo "$as_me:10835: result: no" >&5
++ echo "$as_me:11360: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ if test "$ac_cv_prog_gnat_exists" = no; then
+ cf_ada_make=
++ cf_cv_prog_gnat_correct=no
+ else
+
+-echo "$as_me:10843: checking for gnat version" >&5
++echo "$as_me:11369: checking for gnat version" >&5
+ echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
+ cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
+ grep '[0-9].[0-9][0-9]*' |\
+ sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
+-echo "$as_me:10848: result: $cf_gnat_version" >&5
++echo "$as_me:11374: result: $cf_gnat_version" >&5
+ echo "${ECHO_T}$cf_gnat_version" >&6
+
+ case $cf_gnat_version in #(vi
+-3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi
++3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi
+ cf_cv_prog_gnat_correct=yes
+ ;;
+ *)
+- { echo "$as_me:10856: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
++ { echo "$as_me:11382: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
+ echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
+ cf_cv_prog_gnat_correct=no
+ ;;
+@@ -10861,7 +11387,7 @@
+
+ # Extract the first word of "m4", so it can be a program name with args.
+ set dummy m4; ac_word=$2
+-echo "$as_me:10864: checking for $ac_word" >&5
++echo "$as_me:11390: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_M4_exists+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10876,7 +11402,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_M4_exists="yes"
+-echo "$as_me:10879: found $ac_dir/$ac_word" >&5
++echo "$as_me:11405: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -10885,10 +11411,10 @@
+ fi
+ M4_exists=$ac_cv_prog_M4_exists
+ if test -n "$M4_exists"; then
+- echo "$as_me:10888: result: $M4_exists" >&5
++ echo "$as_me:11414: result: $M4_exists" >&5
+ echo "${ECHO_T}$M4_exists" >&6
+ else
+- echo "$as_me:10891: result: no" >&5
++ echo "$as_me:11417: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -10897,7 +11423,7 @@
+ echo Ada95 binding required program m4 not found. Ada95 binding disabled.
+ fi
+ if test "$cf_cv_prog_gnat_correct" = yes; then
+- echo "$as_me:10900: checking if GNAT works" >&5
++ echo "$as_me:11426: checking if GNAT works" >&5
+ echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+
+ rm -rf conftest* *~conftest*
+@@ -10925,30 +11451,48 @@
+ fi
+ rm -rf conftest* *~conftest*
+
+- echo "$as_me:10928: result: $cf_cv_prog_gnat_correct" >&5
++ echo "$as_me:11454: result: $cf_cv_prog_gnat_correct" >&5
+ echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
+ fi
+ fi
+
+ if test "$cf_cv_prog_gnat_correct" = yes; then
+
+- # make ADAFLAGS consistent with CFLAGS
+- case "$CFLAGS" in
+- *-g*)
++ echo "$as_me:11461: checking optimization options for ADAFLAGS" >&5
++echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
++ case "$CFLAGS" in
++ *-g*)
+
+ ADAFLAGS="$ADAFLAGS -g"
+
+- ;;
+- esac
+- case "$CFLAGS" in
+- *-O*)
++ ;;
++ esac
++ case "$CFLAGS" in
++ *-O*)
++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'`
+
+- ADAFLAGS="$ADAFLAGS -O3"
++ ADAFLAGS="$ADAFLAGS $cf_O_flag"
+
+- ;;
+- esac
++ ;;
++ esac
++ echo "$as_me:11478: result: $ADAFLAGS" >&5
++echo "${ECHO_T}$ADAFLAGS" >&6
++
++echo "$as_me:11481: checking if GNATPREP supports -T option" >&5
++echo $ECHO_N "checking if GNATPREP supports -T option... $ECHO_C" >&6
++if test "${cf_cv_gnatprep_opt_t+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_gnatprep_opt_t=no
++gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
+
+-echo "$as_me:10951: checking if GNAT supports generics" >&5
++fi
++echo "$as_me:11491: result: $cf_cv_gnatprep_opt_t" >&5
++echo "${ECHO_T}$cf_cv_gnatprep_opt_t" >&6
++test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
++
++echo "$as_me:11495: checking if GNAT supports generics" >&5
+ echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[1-9]*|[4-9].*) #(vi
+@@ -10958,7 +11502,7 @@
+ cf_gnat_generics=no
+ ;;
+ esac
+-echo "$as_me:10961: result: $cf_gnat_generics" >&5
++echo "$as_me:11505: result: $cf_gnat_generics" >&5
+ echo "${ECHO_T}$cf_gnat_generics" >&6
+
+ if test "$cf_gnat_generics" = yes
+@@ -10970,7 +11514,7 @@
+ cf_generic_objects=
+ fi
+
+-echo "$as_me:10973: checking if GNAT supports SIGINT" >&5
++echo "$as_me:11517: checking if GNAT supports SIGINT" >&5
+ echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
+ if test "${cf_cv_gnat_sigint+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11018,7 +11562,7 @@
+ rm -rf conftest* *~conftest*
+
+ fi
+-echo "$as_me:11021: result: $cf_cv_gnat_sigint" >&5
++echo "$as_me:11565: result: $cf_cv_gnat_sigint" >&5
+ echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
+
+ if test $cf_cv_gnat_sigint = yes ; then
+@@ -11027,58 +11571,18 @@
+ USE_GNAT_SIGINT="#"
+ fi
+
+-echo "$as_me:11030: checking if GNAT pragma Unreferenced works" >&5
+-echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+-if test "${cf_cv_pragma_unreferenced+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-rm -rf conftest* *~conftest*
+-cat >>conftest.ads <<CF_EOF
+-procedure conftest;
+-CF_EOF
+-cat >>conftest.adb <<CF_EOF
+-with Text_IO;
+-with GNAT.OS_Lib;
+-procedure conftest is
+- test : Integer;
+- pragma Unreferenced (test);
+-begin
+- test := 1;
+- Text_IO.Put ("Hello World");
+- Text_IO.New_Line;
+- GNAT.OS_Lib.OS_Exit (0);
+-end conftest;
+-CF_EOF
+-if ( $cf_ada_make $ADAFLAGS conftest 1>&5 2>&1 ) ; then
+- cf_cv_pragma_unreferenced=yes
+-else
+- cf_cv_pragma_unreferenced=no
+-fi
+-rm -rf conftest* *~conftest*
+-
+-fi
+-echo "$as_me:11061: result: $cf_cv_pragma_unreferenced" >&5
+-echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
+-
+-# if the pragma is supported, use it (needed in the Trace code).
+-if test $cf_cv_pragma_unreferenced = yes ; then
+- PRAGMA_UNREF=TRUE
+-else
+- PRAGMA_UNREF=FALSE
+-fi
+-
+ cf_gnat_libraries=no
+ cf_gnat_projects=no
+
+-echo "$as_me:11074: checking if GNAT supports project files" >&5
++if test "$enable_gnat_projects" != no ; then
++echo "$as_me:11578: checking if GNAT supports project files" >&5
+ echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[0-9]*) #(vi
+ ;;
+ *)
+ case $cf_cv_system_name in #(vi
+- cygwin*) #(vi
++ cygwin*|msys*) #(vi
+ ;;
+ *)
+ mkdir conftest.src conftest.bin conftest.lib
+@@ -11095,14 +11599,6 @@
+ for Library_Dir use External("BUILD_DIR");
+ Source_Dir := External ("SOURCE_DIR");
+ for Source_Dirs use (Source_Dir);
+- package Compiler is
+- for Default_Switches ("Ada") use
+- ("-g",
+- "-O2",
+- "-gnatafno",
+- "-gnatVa", -- All validity checks
+- "-gnatwa"); -- Activate all optional errors
+- end Compiler;
+ end Library;
+ CF_EOF
+ cat >>confpackage.ads <<CF_EOF
+@@ -11139,14 +11635,15 @@
+ esac
+ ;;
+ esac
+-echo "$as_me:11142: result: $cf_gnat_projects" >&5
++echo "$as_me:11638: result: $cf_gnat_projects" >&5
+ echo "${ECHO_T}$cf_gnat_projects" >&6
++fi # enable_gnat_projects
+
+ if test $cf_gnat_projects = yes
+ then
+- echo "$as_me:11147: checking if GNAT supports libraries" >&5
++ echo "$as_me:11644: checking if GNAT supports libraries" >&5
+ echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
+- echo "$as_me:11149: result: $cf_gnat_libraries" >&5
++ echo "$as_me:11646: result: $cf_gnat_libraries" >&5
+ echo "${ECHO_T}$cf_gnat_libraries" >&6
+ fi
+
+@@ -11166,7 +11663,7 @@
+ USE_GNAT_LIBRARIES="#"
+ fi
+
+-echo "$as_me:11169: checking for ada-compiler" >&5
++echo "$as_me:11666: checking for ada-compiler" >&5
+ echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
+
+ # Check whether --with-ada-compiler or --without-ada-compiler was given.
+@@ -11177,12 +11674,12 @@
+ cf_ada_compiler=gnatmake
+ fi;
+
+-echo "$as_me:11180: result: $cf_ada_compiler" >&5
++echo "$as_me:11677: result: $cf_ada_compiler" >&5
+ echo "${ECHO_T}$cf_ada_compiler" >&6
+
+ cf_ada_package=terminal_interface
+
+-echo "$as_me:11185: checking for ada-include" >&5
++echo "$as_me:11682: checking for ada-include" >&5
+ echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
+
+ # Check whether --with-ada-include or --without-ada-include was given.
+@@ -11206,7 +11703,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval withval="$withval"
+ case ".$withval" in #(vi
+ .NONE/*)
+@@ -11218,19 +11715,19 @@
+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:11221: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:11718: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ fi
+-ADA_INCLUDE="$withval"
++eval ADA_INCLUDE="$withval"
+
+-echo "$as_me:11230: result: $ADA_INCLUDE" >&5
++echo "$as_me:11727: result: $ADA_INCLUDE" >&5
+ echo "${ECHO_T}$ADA_INCLUDE" >&6
+
+-echo "$as_me:11233: checking for ada-objects" >&5
++echo "$as_me:11730: checking for ada-objects" >&5
+ echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
+
+ # Check whether --with-ada-objects or --without-ada-objects was given.
+@@ -11254,7 +11751,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval withval="$withval"
+ case ".$withval" in #(vi
+ .NONE/*)
+@@ -11266,19 +11763,19 @@
+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:11269: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:11766: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ fi
+-ADA_OBJECTS="$withval"
++eval ADA_OBJECTS="$withval"
+
+-echo "$as_me:11278: result: $ADA_OBJECTS" >&5
++echo "$as_me:11775: result: $ADA_OBJECTS" >&5
+ echo "${ECHO_T}$ADA_OBJECTS" >&6
+
+-echo "$as_me:11281: checking if an Ada95 shared-library should be built" >&5
++echo "$as_me:11778: checking if an Ada95 shared-library should be built" >&5
+ echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
+
+ # Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
+@@ -11288,7 +11785,7 @@
+ else
+ with_ada_sharedlib=no
+ fi;
+-echo "$as_me:11291: result: $with_ada_sharedlib" >&5
++echo "$as_me:11788: result: $with_ada_sharedlib" >&5
+ echo "${ECHO_T}$with_ada_sharedlib" >&6
+
+ ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
+@@ -11304,12 +11801,12 @@
+ fi
+
+ else
+- { { echo "$as_me:11307: error: No usable Ada compiler found" >&5
++ { { echo "$as_me:11804: error: No usable Ada compiler found" >&5
+ echo "$as_me: error: No usable Ada compiler found" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ else
+- { { echo "$as_me:11312: error: The Ada compiler is needed for this package" >&5
++ { { echo "$as_me:11809: error: The Ada compiler is needed for this package" >&5
+ echo "$as_me: error: The Ada compiler is needed for this package" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -11317,25 +11814,20 @@
+ ################################################################################
+
+ # not needed
+-TINFO_ARGS2=
++TINFO_LDFLAGS2=
++
++TINFO_LIBS=
+
+ ### Construct the list of include-directories to be generated
+
+-CPPFLAGS="$CPPFLAGS -I. -I../include"
+ if test "$srcdir" != "."; then
+- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
++ 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
++CPPFLAGS="-I../include $CPPFLAGS"
++if test "$srcdir" != "."; then
++ CPPFLAGS="-I\${srcdir} $CPPFLAGS"
+ fi
++CPPFLAGS="-I. $CPPFLAGS"
+
+ ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
+ if test "$srcdir" != "."; then
+@@ -11345,7 +11837,7 @@
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ elif test "$includedir" != "/usr/include"; then
+ if test "$includedir" = '${prefix}/include' ; then
+- if test $prefix != /usr ; then
++ if test x$prefix != x/usr ; then
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ fi
+ else
+@@ -11354,7 +11846,7 @@
+ fi
+
+ ### Build up pieces for makefile rules
+-echo "$as_me:11357: checking default library suffix" >&5
++echo "$as_me:11849: checking default library suffix" >&5
+ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -11365,36 +11857,32 @@
+ shared) DFT_ARG_SUFFIX='' ;;
+ esac
+ test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
+-echo "$as_me:11368: result: $DFT_ARG_SUFFIX" >&5
++echo "$as_me:11860: result: $DFT_ARG_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
+
+-echo "$as_me:11371: checking default library-dependency suffix" >&5
++echo "$as_me:11863: checking default library-dependency suffix" >&5
+ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
+
+- case $DFT_LWR_MODEL in #(vi
+- libtool) #(vi
++ case X$DFT_LWR_MODEL in #(vi
++ Xlibtool) #(vi
+ DFT_LIB_SUFFIX='.la'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- normal) #(vi
+- DFT_LIB_SUFFIX='.a'
+- DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ DFT_LIB_SUFFIX='_g.a'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ DFT_LIB_SUFFIX='_p.a'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[56]*) #(vi
+- DFT_LIB_SUFFIX='.a'
++ aix[5-7]*) #(vi
++ DFT_LIB_SUFFIX='.so'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ DFT_LIB_SUFFIX='.dll'
+ DFT_DEP_SUFFIX='.dll.a'
+ ;;
+@@ -11414,17 +11902,23 @@
+ ;;
+ esac
+ ;;
+- *) DFT_LIB_SUFFIX='.so'
++ *) #(vi
++ DFT_LIB_SUFFIX='.so'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+ esac
++ ;;
++ *)
++ DFT_LIB_SUFFIX='.a'
++ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
+ test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
+-echo "$as_me:11424: result: $DFT_DEP_SUFFIX" >&5
++echo "$as_me:11918: result: $DFT_DEP_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
+
+-echo "$as_me:11427: checking default object directory" >&5
++echo "$as_me:11921: checking default object directory" >&5
+ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -11434,13 +11928,13 @@
+ profile) DFT_OBJ_SUBDIR='obj_p' ;;
+ shared)
+ case $cf_cv_system_name in #(vi
+- cygwin) #(vi
++ cygwin|msys) #(vi
+ DFT_OBJ_SUBDIR='objects' ;;
+ *)
+ DFT_OBJ_SUBDIR='obj_s' ;;
+ esac
+ esac
+-echo "$as_me:11443: result: $DFT_OBJ_SUBDIR" >&5
++echo "$as_me:11937: result: $DFT_OBJ_SUBDIR" >&5
+ echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
+
+ ### Set up low-level terminfo dependencies for makefiles.
+@@ -11450,6 +11944,9 @@
+ cygwin*)
+ # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
+ ;;
++ msys*)
++ # "lib" files have ".dll.a" suffix, "msys-" files have ".dll"
++ ;;
+ esac
+ fi
+
+@@ -11479,7 +11976,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -11520,7 +12017,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -11544,15 +12041,6 @@
+
+ ################################################################################
+
+-if test x"$enable_pc_files" = xyes ; then \
+-SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+-MAKE_PC_FILES=
+-else
+-MAKE_PC_FILES="#"
+-fi
+-
+-################################################################################
+-
+ TEST_ARG2=
+
+ TEST_LIBS2=
+@@ -11656,7 +12144,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:11659: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:12147: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -11788,7 +12276,7 @@
+ cat >>$CONFIG_STATUS <<EOF
+ ac_cs_version="\\
+ config.status
+-configured by $0, generated by GNU Autoconf 2.52.20101002,
++configured by $0, generated by GNU Autoconf 2.52.20141204,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+@@ -11832,7 +12320,7 @@
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+- { { echo "$as_me:11835: error: ambiguous option: $1
++ { { echo "$as_me:12323: 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;}
+@@ -11851,7 +12339,7 @@
+ ac_need_defaults=false;;
+
+ # This is an error.
+- -*) { { echo "$as_me:11854: error: unrecognized option: $1
++ -*) { { echo "$as_me:12342: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -11870,7 +12358,7 @@
+ ## Running config.status. ##
+ ## ----------------------- ##
+
+-This file was extended by $as_me 2.52.20101002, executed with
++This file was extended by $as_me 2.52.20141204, executed with
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+@@ -11892,8 +12380,8 @@
+ AWK="$AWK"
+ DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
+ DFT_LWR_MODEL="$DFT_LWR_MODEL"
+-ECHO_LINK="$ECHO_LINK"
+ LIB_NAME="$LIB_NAME"
++LIB_PREFIX="$LIB_PREFIX"
+ LIB_SUFFIX="$LIB_SUFFIX"
+ LN_S="$LN_S"
+ NCURSES_MAJOR="$NCURSES_MAJOR"
+@@ -11922,7 +12410,7 @@
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+ "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+- *) { { echo "$as_me:11925: error: invalid argument: $ac_config_target" >&5
++ *) { { echo "$as_me:12413: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+@@ -11981,6 +12469,7 @@
+ s,@bindir@,$bindir,;t t
+ s,@sbindir@,$sbindir,;t t
+ s,@libexecdir@,$libexecdir,;t t
++s,@datarootdir@,$datarootdir,;t t
+ s,@datadir@,$datadir,;t t
+ s,@sysconfdir@,$sysconfdir,;t t
+ s,@sharedstatedir@,$sharedstatedir,;t t
+@@ -12024,9 +12513,8 @@
+ s,@ac_ct_CC@,$ac_ct_CC,;t t
+ s,@EXEEXT@,$EXEEXT,;t t
+ s,@OBJEXT@,$OBJEXT,;t t
+-s,@CPP@,$CPP,;t t
+ s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
+-s,@PROG_EXT@,$PROG_EXT,;t t
++s,@CPP@,$CPP,;t t
+ s,@AWK@,$AWK,;t t
+ s,@EGREP@,$EGREP,;t t
+ s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+@@ -12061,6 +12549,7 @@
+ s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t
+ s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t
+ s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t
++s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t
+ s,@NCURSES_MAJOR@,$NCURSES_MAJOR,;t t
+ s,@NCURSES_MINOR@,$NCURSES_MINOR,;t t
+ s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t
+@@ -12073,33 +12562,41 @@
+ s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t
+ s,@CC_G_OPT@,$CC_G_OPT,;t t
+ s,@LD_MODEL@,$LD_MODEL,;t t
++s,@shlibdir@,$shlibdir,;t t
++s,@MAKE_DLLS@,$MAKE_DLLS,;t t
+ s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t
+ s,@LD_RPATH_OPT@,$LD_RPATH_OPT,;t t
+ s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t
+ s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t
++s,@RM_SHARED_OPTS@,$RM_SHARED_OPTS,;t t
+ s,@LINK_PROGS@,$LINK_PROGS,;t t
+ s,@LINK_TESTS@,$LINK_TESTS,;t t
+ s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t
+ s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
+ s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t
+ s,@INSTALL_LIB@,$INSTALL_LIB,;t t
++s,@RPATH_LIST@,$RPATH_LIST,;t t
+ s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
+ s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
+ s,@NCURSES_CONST@,$NCURSES_CONST,;t t
+ s,@PTHREAD@,$PTHREAD,;t t
+ s,@cf_cv_enable_reentrant@,$cf_cv_enable_reentrant,;t t
+ s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
+-s,@ECHO_LINK@,$ECHO_LINK,;t t
++s,@ECHO_LT@,$ECHO_LT,;t t
++s,@ECHO_LD@,$ECHO_LD,;t t
++s,@RULE_CC@,$RULE_CC,;t t
++s,@SHOW_CC@,$SHOW_CC,;t t
++s,@ECHO_CC@,$ECHO_CC,;t t
+ s,@ADAFLAGS@,$ADAFLAGS,;t t
+ s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+ s,@ADA_TRACE@,$ADA_TRACE,;t t
+ s,@gnat_exists@,$gnat_exists,;t t
+ s,@M4_exists@,$M4_exists,;t t
+ s,@cf_ada_make@,$cf_ada_make,;t t
++s,@GNATPREP_OPTS@,$GNATPREP_OPTS,;t t
+ s,@cf_compile_generics@,$cf_compile_generics,;t t
+ s,@cf_generic_objects@,$cf_generic_objects,;t t
+ s,@USE_GNAT_SIGINT@,$USE_GNAT_SIGINT,;t t
+-s,@PRAGMA_UNREF@,$PRAGMA_UNREF,;t t
+ s,@USE_OLD_MAKERULES@,$USE_OLD_MAKERULES,;t t
+ s,@USE_GNAT_PROJECTS@,$USE_GNAT_PROJECTS,;t t
+ s,@USE_GNAT_LIBRARIES@,$USE_GNAT_LIBRARIES,;t t
+@@ -12109,13 +12606,12 @@
+ s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t
+ s,@ADA_SHAREDLIB@,$ADA_SHAREDLIB,;t t
+ s,@MAKE_ADA_SHAREDLIB@,$MAKE_ADA_SHAREDLIB,;t t
+-s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
++s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t
++s,@TINFO_LIBS@,$TINFO_LIBS,;t t
+ s,@ACPPFLAGS@,$ACPPFLAGS,;t t
+ s,@DFT_ARG_SUFFIX@,$DFT_ARG_SUFFIX,;t t
+ s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
+ s,@DFT_OBJ_SUBDIR@,$DFT_OBJ_SUBDIR,;t t
+-s,@MAKE_PC_FILES@,$MAKE_PC_FILES,;t t
+-s,@cross_compiling@,$cross_compiling,;t t
+ s,@TEST_ARG2@,$TEST_ARG2,;t t
+ s,@TEST_LIBS2@,$TEST_LIBS2,;t t
+ s,@NCURSES_SHLIB2@,$NCURSES_SHLIB2,;t t
+@@ -12237,7 +12733,7 @@
+ esac
+
+ if test x"$ac_file" != x-; then
+- { echo "$as_me:12240: creating $ac_file" >&5
++ { echo "$as_me:12736: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+@@ -12255,7 +12751,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:12258: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:12754: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -12268,13 +12764,45 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:12271: error: cannot find input file: $f" >&5
++ { { echo "$as_me:12767: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ EOF
++cat >>$CONFIG_STATUS <<\EOF
++ ac_warn_datarootdir=no
++ if test x"$ac_file" != x-; then
++ for ac_item in $ac_file_inputs
++ do
++ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item`
++ if test -n "$ac_seen"; then
++ ac_used=`grep '@datarootdir@' $ac_item`
++ if test -z "$ac_used"; then
++ { echo "$as_me:12783: WARNING: datarootdir was used implicitly but not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: datarootdir was used implicitly but not set:
++$ac_seen" >&2;}
++ ac_warn_datarootdir=yes
++ fi
++ fi
++ ac_seen=`grep '${datarootdir}' $ac_item`
++ if test -n "$ac_seen"; then
++ { echo "$as_me:12792: WARNING: datarootdir was used explicitly but not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: datarootdir was used explicitly but not set:
++$ac_seen" >&2;}
++ ac_warn_datarootdir=yes
++ fi
++ done
++ fi
++
++if test "x$ac_warn_datarootdir" = xyes; then
++ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'"
++fi
++
++EOF
+ cat >>$CONFIG_STATUS <<EOF
+ sed "$ac_vpsub
+ $extrasub
+@@ -12289,11 +12817,35 @@
+ " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+- mv $tmp/out $ac_file
++ cp $tmp/out $ac_file
++
++ for ac_name in prefix exec_prefix datarootdir
++ do
++ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file`
++ if test -n "$ac_seen"; then
++ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
++ if test -z "$ac_init"; then
++ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
++ { echo "$as_me:12829: WARNING: Variable $ac_name is used but was not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: Variable $ac_name is used but was not set:
++$ac_seen" >&2;}
++ fi
++ fi
++ done
++ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out
++ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
++ if test -s $tmp/out; then
++ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
++ { echo "$as_me:12840: WARNING: Some variables may not be substituted:
++$ac_seen" >&5
++echo "$as_me: WARNING: Some variables may not be substituted:
++$ac_seen" >&2;}
++ fi
+ else
+ cat $tmp/out
+- rm -f $tmp/out
+ fi
++ rm -f $tmp/out
+
+ done
+ EOF
+@@ -12334,7 +12886,7 @@
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+- test x"$ac_file" != x- && { echo "$as_me:12337: creating $ac_file" >&5
++ test x"$ac_file" != x- && { echo "$as_me:12889: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+@@ -12345,7 +12897,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:12348: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:12900: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -12358,7 +12910,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:12361: error: cannot find input file: $f" >&5
++ { { echo "$as_me:12913: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -12416,7 +12968,7 @@
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+- { echo "$as_me:12419: $ac_file is unchanged" >&5
++ { echo "$as_me:12971: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+Index: Ada95/configure.in
+Prereq: 1.30
+--- ncurses-5.9/Ada95/configure.in 2011-03-31 22:49:22.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/configure.in 2014-08-02 20:29:22.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 2010,2011 Free Software Foundation, Inc. *
++dnl Copyright (c) 2010-2013,2014 Free Software Foundation, Inc. *
+ dnl *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a *
+ dnl copy of this software and associated documentation files (the *
+@@ -28,24 +28,20 @@
+ dnl
+ dnl Author: Thomas E. Dickey
+ dnl
+-dnl $Id: configure.in,v 1.30 2011/03/31 22:49:22 tom Exp $
++dnl $Id: configure.in,v 1.56 2014/08/02 20:29:22 tom Exp $
+ dnl Process this file with autoconf to produce a configure script.
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
+-AC_REVISION($Revision: 1.30 $)
++AC_PREREQ(2.52.20030208)
++AC_REVISION($Revision: 1.56 $)
+ AC_INIT(gen/gen.c)
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+
+ CF_TOP_BUILDDIR
+
+-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
+-AC_ARG_WITH(system-type,
+-[ --with-system-type=XXX test: override derived host system-type],
+-[AC_MSG_WARN(overriding system type to $withval)
+- cf_cv_system_name=$withval])
++CF_WITH_SYSTYPE
+
+ ### Save the given $CFLAGS to allow user-override.
+ cf_user_CFLAGS="$CFLAGS"
+@@ -54,15 +50,10 @@
+ CF_CFG_DEFAULTS
+
+ ### Checks for programs.
+-AC_PROG_CC
+-CF_GCC_VERSION
+-
++CF_PROG_CC(gnatgcc gcc cc)
+ AC_PROG_CPP
+ AC_PROG_GCC_TRADITIONAL
+ CF_PROG_CC_C_O(CC)
+-AC_ISC_POSIX
+-CF_ANSI_CC_REQD
+-CF_PROG_EXT
+
+ AC_ARG_PROGRAM
+
+@@ -75,28 +66,7 @@
+
+ # if we find pkg-config, check if we should install the ".pc" files.
+ CF_PKG_CONFIG
+-
+-if test "$PKG_CONFIG" != none ; then
+- AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
+-
+- # Leave this as something that can be overridden in the environment.
+- if test -z "$PKG_CONFIG_LIBDIR" ; then
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
+- fi
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
+- AC_ARG_ENABLE(pc-files,
+- [ --enable-pc-files generate and install .pc files for pkg-config],
+- [enable_pc_files=$enableval],
+- [enable_pc_files=no])
+- AC_MSG_RESULT($enable_pc_files)
+- else
+- AC_MSG_RESULT(no)
+- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
+- enable_pc_files=no
+- fi
+-fi
+-AC_SUBST(PKG_CONFIG_LIBDIR)
++CF_WITH_PKG_CONFIG_LIBDIR
+
+ AC_MSG_CHECKING(if you want to build test-programs)
+ AC_ARG_WITH(tests,
+@@ -130,6 +100,7 @@
+ AC_CHECK_TOOL(LD, ld, ld)
+ AC_CHECK_TOOL(AR, ar, ar)
+ CF_AR_FLAGS
++CF_PATHSEP
+
+ dnl Special option for use by system-builders: the install-prefix is used to
+ dnl adjust the location into which the actual install is done, so that an
+@@ -186,9 +157,7 @@
+
+ CF_NCURSES_ADDON
+
+-CF_LIB_PREFIX(cf_prefix)
+-LIB_PREFIX=$cf_prefix
+-AC_SUBST(LIB_PREFIX)
++CF_WITH_LIB_PREFIX(cf_prefix)
+
+ LIB_SUFFIX=
+ AC_SUBST(LIB_SUFFIX)
+@@ -235,8 +204,6 @@
+ ###############################################################################
+ CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
+
+-CF_PATHSEP
+-
+ ### use option --enable-broken-linker to force on use of broken-linker support
+ AC_MSG_CHECKING(if you want broken-linker support code)
+ AC_ARG_ENABLE(broken_linker,
+@@ -272,7 +239,7 @@
+ [with_rcs_ids=$withval],
+ [with_rcs_ids=no])
+ AC_MSG_RESULT($with_rcs_ids)
+-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
++test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 if RCS identifiers should be compiled-in)])
+
+ ###############################################################################
+ CF_HELP_MESSAGE(Extensions:)
+@@ -286,8 +253,8 @@
+ AC_MSG_RESULT($with_ext_funcs)
+ if test "$with_ext_funcs" = yes ; then
+ NCURSES_EXT_FUNCS=1
+- AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
+- AC_DEFINE(NCURSES_EXT_FUNCS)
++ AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 if we have use_default_colors function])
++ AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extended functions])
+ else
+ NCURSES_EXT_FUNCS=0
+ fi
+@@ -337,12 +304,12 @@
+ fi
+
+ if test $cf_cv_weak_symbols = yes ; then
+- AC_DEFINE(USE_WEAK_SYMBOLS)
++ AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads])
+ fi
+
+ PTHREAD=
+ if test "$with_pthread" = "yes" ; then
+- AC_DEFINE(USE_PTHREADS)
++ AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use the pthreads library])
+ enable_reentrant=yes
+ if test $cf_cv_weak_symbols = yes ; then
+ PTHREAD=-lpthread
+@@ -370,7 +337,7 @@
+ elif test "$assume_reentrant" = no ; then
+ LIB_SUFFIX="t${LIB_SUFFIX}"
+ fi
+- AC_DEFINE(USE_REENTRANT)
++ AC_DEFINE(USE_REENTRANT,1,[Define to 1 to compile with experimental reentrant code])
+ else
+ cf_cv_enable_reentrant=0
+ fi
+@@ -388,24 +355,13 @@
+ NCURSES_WRAP_PREFIX=_nc_
+ fi
+ AC_SUBST(NCURSES_WRAP_PREFIX)
+-AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX")
++AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ ncurses internal prefix])
+
+ ###############################################################################
+ CF_HELP_MESSAGE(Testing/development Options:)
+
+ ### use option --disable-echo to suppress full display compiling commands
+-AC_MSG_CHECKING(if you want to display full commands during build)
+-AC_ARG_ENABLE(echo,
+- [ --enable-echo build: display "compiling" commands (default)],
+- [with_echo=$enableval],
+- [with_echo=yes])
+-if test "$with_echo" = yes; then
+- ECHO_LINK=
+-else
+- ECHO_LINK='@ echo linking $@ ... ;'
+-fi
+-AC_MSG_RESULT($with_echo)
+-AC_SUBST(ECHO_LINK)
++CF_DISABLE_ECHO
+
+ ### use option --enable-warnings to turn on all gcc warnings
+ AC_MSG_CHECKING(if you want to see compiler warnings)
+@@ -416,7 +372,7 @@
+
+ if test "x$with_warnings" = "xyes"; then
+ CF_ADD_ADAFLAGS(-gnatg)
+- CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
++ CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum)
+ fi
+ CF_GCC_ATTRIBUTES
+
+@@ -431,7 +387,6 @@
+ then
+ if test "$with_assertions" = no
+ then
+- AC_DEFINE(NDEBUG)
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
+ else
+ CF_ADD_ADAFLAGS(-gnata)
+@@ -439,17 +394,17 @@
+ fi
+
+ ### use option --disable-leaks to suppress "permanent" leaks, for testing
+-AC_DEFINE(HAVE_NC_ALLOC_H)
++AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header])
+
+ ### use option --enable-expanded to generate certain macros as functions
+ AC_ARG_ENABLE(expanded,
+ [ --enable-expanded test: generate functions for certain macros],
+- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
++ [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 if ncurses macros should be expanded as functions])])
+
+ ### use option --disable-macros to suppress macros in favor of functions
+ AC_ARG_ENABLE(macros,
+ [ --disable-macros test: use functions rather than macros],
+- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
++ [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 if ncurses macros should be expanded as functions])])
+
+ # Normally we only add trace() to the debug-library. Allow this to be
+ # extended to all models of the ncurses library:
+@@ -476,6 +431,8 @@
+
+ AC_SUBST(ADA_TRACE)
+
++CF_DISABLE_GNAT_PROJECTS
++
+ ### Checks for libraries.
+ case $cf_cv_system_name in #(vi
+ *mingw32*) #(vi
+@@ -485,7 +442,7 @@
+ AC_DEFINE(HAVE_GETTIMEOFDAY),[
+
+ AC_CHECK_LIB(bsd, gettimeofday,
+- AC_DEFINE(HAVE_GETTIMEOFDAY)
++ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday])
+ LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
+ ;;
+ esac
+@@ -505,8 +462,6 @@
+ ### Checks for library functions.
+ CF_MKSTEMP
+
+-AC_TYPE_SIGNAL
+-
+ dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
+ if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then
+ CF_STRIP_G_OPT(CFLAGS)
+@@ -514,28 +469,18 @@
+ fi
+
+ CF_HELP_MESSAGE(Ada95 Binding Options:)
+-
++cf_with_ada=yes
+ dnl Check for availability of GNU Ada Translator (GNAT).
+ dnl At the moment we support no other Ada95 compiler.
+ if test "$cf_with_ada" != "no" ; then
+ CF_PROG_GNAT
+ if test "$cf_cv_prog_gnat_correct" = yes; then
++ CF_FIXUP_ADAFLAGS
+
+- # make ADAFLAGS consistent with CFLAGS
+- case "$CFLAGS" in
+- *-g*)
+- CF_ADD_ADAFLAGS(-g)
+- ;;
+- esac
+- case "$CFLAGS" in
+- *-O*)
+- CF_ADD_ADAFLAGS(-O3)
+- ;;
+- esac
++ CF_GNATPREP_OPT_T
+
+ CF_GNAT_GENERICS
+ CF_GNAT_SIGINT
+- CF_GNAT_PRAGMA_UNREF
+ CF_GNAT_PROJECTS
+
+ CF_WITH_ADA_COMPILER
+@@ -556,8 +501,10 @@
+ ################################################################################
+
+ # not needed
+-TINFO_ARGS2=
+-AC_SUBST(TINFO_ARGS2)
++TINFO_LDFLAGS2=
++AC_SUBST(TINFO_LDFLAGS2)
++TINFO_LIBS=
++AC_SUBST(TINFO_LIBS)
+
+ ### Construct the list of include-directories to be generated
+ CF_INCLUDE_DIRS
+@@ -586,6 +533,9 @@
+ cygwin*)
+ # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
+ ;;
++ msys*)
++ # "lib" files have ".dll.a" suffix, "msys-" files have ".dll"
++ ;;
+ esac
+ fi
+
+@@ -594,24 +544,13 @@
+
+ SUB_MAKEFILES="gen/adacurses${DFT_ARG_SUFFIX}-config:gen/adacurses-config.in"
+
+-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR')
++AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as the library path-separator])
+
+ ### Now that we're done running tests, add the compiler-warnings, if any
+ CF_ADD_CFLAGS($EXTRA_CFLAGS)
+
+ ################################################################################
+
+-if test x"$enable_pc_files" = xyes ; then \
+-SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+-MAKE_PC_FILES=
+-else
+-MAKE_PC_FILES="#"
+-fi
+-AC_SUBST(MAKE_PC_FILES)
+-AC_SUBST(cross_compiling)
+-
+-################################################################################
+-
+ TEST_ARG2=
+ AC_SUBST(TEST_ARG2)
+
+@@ -656,8 +595,8 @@
+ AWK="$AWK"
+ DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
+ DFT_LWR_MODEL="$DFT_LWR_MODEL"
+-ECHO_LINK="$ECHO_LINK"
+ LIB_NAME="$LIB_NAME"
++LIB_PREFIX="$LIB_PREFIX"
+ LIB_SUFFIX="$LIB_SUFFIX"
+ LN_S="$LN_S"
+ NCURSES_MAJOR="$NCURSES_MAJOR"
+Index: Ada95/doc/Makefile.in
+Prereq: 1.2
+--- ncurses-5.9/Ada95/doc/Makefile.in 2011-03-26 19:26:17.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/doc/Makefile.in 2012-08-11 21:31:56.000000000 +0000
+@@ -1,4 +1,4 @@
+-# $Id: Makefile.in,v 1.2 2011/03/26 19:26:17 tom Exp $
++# $Id: Makefile.in,v 1.3 2012/08/11 21:31:56 tom Exp $
+ ##############################################################################
+ # Copyright (c) 2011 Free Software Foundation, Inc. #
+ # #
+@@ -38,6 +38,7 @@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
++datarootdir = @datarootdir@
+ datadir = @datadir@
+ mandir = @mandir@
+
+Index: Ada95/gen/Makefile.in
+Prereq: 1.74
+--- ncurses-5.9/Ada95/gen/Makefile.in 2011-03-26 23:36:30.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/Makefile.in 2014-05-31 23:38:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ #
+ # Author: Juergen Pfeifer, 1996
+ #
+-# $Id: Makefile.in,v 1.74 2011/03/26 23:36:30 tom Exp $
++# $Id: Makefile.in,v 1.81 2014/05/31 23:38:17 tom Exp $
+ #
+ .SUFFIXES:
+
+@@ -36,7 +36,7 @@
+ VPATH = @srcdir@
+ THIS = Makefile
+
+-x = @PROG_EXT@
++x = @EXEEXT@
+
+ top_srcdir = @top_srcdir@
+ DESTDIR = @DESTDIR@
+@@ -73,7 +73,7 @@
+ LOCAL_LIBDIR = @top_builddir@/lib
+
+ LINK = $(HOST_CC)
+-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_ARGS2@
++LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @TINFO_LDFLAGS2@ @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_LIBS@
+
+ RANLIB = @RANLIB@
+
+@@ -97,39 +97,6 @@
+
+ ADA_SRCDIR = ../src
+
+-GEN_FILES0 = Base_Defs
+-
+-GEN_FILES1 = ACS_Map \
+- AC_Rep \
+- Base_Defs \
+- Character_Attribute_Set_Rep \
+- Color_Defs \
+- Key_Definitions \
+- Linker_Options \
+- Old_Keys \
+- Public_Variables \
+- Trace_Defs \
+- Version_Info \
+- Window_Offsets
+-
+-GEN_FILES2 = Menu_Opt_Rep \
+- Menu_Base_Defs \
+- Menu_Linker_Options \
+- Item_Rep
+-
+-GEN_FILES3 = Form_Opt_Rep \
+- Form_Base_Defs \
+- Form_Linker_Options \
+- Field_Rep
+-
+-GEN_FILES4 = Mouse_Base_Defs \
+- Mouse_Event_Rep \
+- Mouse_Events \
+- Panel_Linker_Options
+-
+-GEN_FILES5 = Chtype_Def \
+- Eti_Defs
+-
+ GEN_TARGETS = $(ADA_SRCDIR)/$(ABASE).ads \
+ $(ADA_SRCDIR)/$(ABASE).adb \
+ $(ADA_SRCDIR)/$(ABASE)-aux.ads \
+@@ -143,7 +110,8 @@
+ $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads \
+ $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads \
+ $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads \
+- $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
++ $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads \
++ $(ADA_SRCDIR)/$(ABASE)_constants.ads
+
+ GEN_SRC = $(srcdir)/$(ABASE).ads.m4 \
+ $(srcdir)/$(ABASE).adb.m4 \
+@@ -179,133 +147,57 @@
+ -rm -f $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
+
+ $(PROG_GENERATE): gen.o
+- @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
++ @ECHO_LD@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
+
+ gen.o: $(srcdir)/gen.c
+ $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
+-################################################################################
+-Character_Attribute_Set_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B A" >$@
+-
+-Base_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B B" >$@
+-
+-Color_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B C" >$@
+-
+-Window_Offsets: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B D" >$@
+-
+-Key_Definitions: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B K" >$@
+-
+-Linker_Options: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B L" >$@
+-
+-ACS_Map: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B M" >$@
+-
+-Old_Keys: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B O" >$@
+-
+-Public_Variables: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B P" >$@
+-
+-AC_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B R" >$@
+-
+-Version_Info: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B V" >$@
+-
+-Trace_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B T" >$@
+-################################################################################
+-Menu_Opt_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) M R" >$@
+-
+-Menu_Base_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) M B" >$@
+-
+-Menu_Linker_Options: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) M L" >$@
+-
+-Item_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) M I" >$@
+-################################################################################
+-Form_Opt_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) F R" >$@
+-
+-Form_Base_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) F B" >$@
+-
+-Form_Linker_Options: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) F L" >$@
+-
+-Field_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) F I" >$@
+-################################################################################
+-Mouse_Base_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) P B" >$@
+-
+-Mouse_Event_Rep: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) P M" >$@
+-
+-Mouse_Events: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) B E" >$@
+-
+-Panel_Linker_Options: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) P L" >$@
+-
+-Chtype_Def: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) E C" >$@
+
+-Eti_Defs: $(PROG_GENERATE)
+- $(WRAPPER) "$(GENERATE) E E" >$@
++$(ADA_SRCDIR)/$(ABASE)_constants.ads: $(PROG_GENERATE)
++ $(WRAPPER) "$(GENERATE)" >$@
+ ################################################################################
+ $(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
+- $(GEN_FILES1) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE).ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE).adb: $(srcdir)/$(ABASE).adb.m4 \
+- $(GEN_FILES1) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE).adb.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
+- $(GEN_FILES5) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-aux.ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE)-trace.ads: $(srcdir)/$(ABASE)-trace.ads.m4 \
+- $(GEN_FILES5) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-trace.ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
+- $(GEN_FILES2) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-menus.ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE)-forms.ads: $(srcdir)/$(ABASE)-forms.ads.m4 \
+- $(GEN_FILES3) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-forms.ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE)-mouse.ads: $(srcdir)/$(ABASE)-mouse.ads.m4 \
+- $(GEN_FILES4) $(srcdir)/normal.m4
++ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-mouse.ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
+ $(ADA_SRCDIR)/$(ABASE)-panels.ads: $(srcdir)/$(ABASE)-panels.ads.m4 \
+- $(GEN_FILES4) \
+ $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-panels.ads.m4 |\
+@@ -363,11 +255,6 @@
+
+ mostlyclean ::
+ -rm -f a.out core $(PROG_GENERATE) *.o
+- -rm -f $(GEN_FILES1)
+- -rm -f $(GEN_FILES2)
+- -rm -f $(GEN_FILES3)
+- -rm -f $(GEN_FILES4)
+- -rm -f $(GEN_FILES5)
+
+ clean :: mostlyclean
+ -rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
+@@ -411,7 +298,7 @@
+ @mkdir -p $(HTML_DIR)
+ cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
+ @USE_OLD_MAKERULES@ ln -sf ../src/*.ali .
+-@USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali .
++@USE_GNAT_PROJECTS@ ln -sf ../static-ali/*.ali .
+ @echo "Filtering generated files"
+ @for f in $(GEN_SRC); do \
+ h=`basename $$f` ;\
+Index: Ada95/gen/adacurses-config.in
+Prereq: 1.6
+--- ncurses-5.9/Ada95/gen/adacurses-config.in 2010-03-06 21:05:01.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/adacurses-config.in 2014-06-07 19:32:22.000000000 +0000
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# $Id: adacurses-config.in,v 1.6 2010/03/06 21:05:01 tom Exp $
++# $Id: adacurses-config.in,v 1.9 2014/06/07 19:32:22 Pascal.Pignard Exp $
+ ##############################################################################
+-# Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2007-2010,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -40,7 +40,7 @@
+
+ VERSION=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@
+
+-CFLAGS="-I$ADA_INCLUDE -aO$ADA_OBJECTS"
++CFLAGS="-aI$ADA_INCLUDE -aO$ADA_OBJECTS"
+ LIBS="-L$ADA_OBJECTS -lAdaCurses"
+
+ THIS="adacurses"
+@@ -57,19 +57,21 @@
+ ;;
+ x)
+ # if no parameter is given, give what gnatmake needs
+- echo "$CFLAGS -i -largs $LIBS"
++ echo "$CFLAGS -largs $LIBS"
+ ;;
+ x--help)
+ cat <<ENDHELP
+ Usage: ${THIS}-config [options]
+
+ Options:
+- --cflags echos the C compiler flags needed to compile with ${THIS}
+- --libs echos the libraries needed to link with ${THIS}
++ --cflags echos the gnat (Ada compiler) flags needed to compile with ${THIS}
++ --libs echos the gnat libraries needed to link with ${THIS}
+
+ --version echos the release+patchdate version of ${THIS}
+
+ --help prints this message
++
++If no options are given, echos the full set of flags needed by gnatmake.
+ ENDHELP
+ ;;
+ *)
+Index: Ada95/gen/gen.c
+Prereq: 1.59
+--- ncurses-5.9/Ada95/gen/gen.c 2011-03-31 23:50:24.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/gen.c 2014-05-31 21:00:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,1537 +32,503 @@
+
+ /*
+ Version Control
+- $Id: gen.c,v 1.59 2011/03/31 23:50:24 tom Exp $
++ $Id: gen.c,v 1.69 2014/05/31 21:00:08 tom Exp $
+ --------------------------------------------------------------------------*/
+ /*
+- This program generates various record structures and constants from the
+- ncurses header file for the Ada95 packages. Essentially it produces
+- Ada95 source on stdout, which is then merged using m4 into a template
+- to produce the real source.
+- */
++ This program prints on its standard output the source for the
++ Terminal_Interface.Curses_Constants Ada package specification. This pure
++ package only exports C constants to the Ada compiler.
++ */
+
+ #ifdef HAVE_CONFIG_H
+ #include <ncurses_cfg.h>
+ #else
+ #include <ncurses.h>
+-#define HAVE_USE_DEFAULT_COLORS 1
+ #endif
+
+ #include <stdlib.h>
+-#include <stddef.h>
+ #include <string.h>
+-#include <assert.h>
+-#include <ctype.h>
+
+ #include <menu.h>
+ #include <form.h>
+
+-#define UChar(c) ((unsigned char)(c))
+-#define RES_NAME "Reserved"
+-
+-static const char *model = "";
+-static int little_endian = 0;
+-
+-typedef struct
+- {
+- const char *name;
+- unsigned long attr;
+- }
+-name_attribute_pair;
+-
+-static int
+-find_pos(char *s, unsigned len, int *low, int *high)
+-{
+- unsigned int i, j;
+- int l = 0;
++#undef UCHAR
++#undef UINT
+
+- *high = -1;
+- *low = (int)(8 * len);
++typedef unsigned char UCHAR;
++typedef unsigned int UINT;
+
+- for (i = 0; i < len; i++, s++)
+- {
+- if (*s)
+- {
+- for (j = 0; j < 8 * sizeof(char); j++)
+-
+- {
+- if (((little_endian && ((*s) & 0x01)) ||
+- (!little_endian && ((*s) & 0x80))))
+- {
+- if (l > *high)
+- *high = l;
+- if (l < *low)
+- *low = l;
+- }
+- l++;
+- if (little_endian)
+- {
+- *s >>= 1;
+- }
+- else
+- {
+- *s = (char)(*s << 1);
+- }
+- }
+- }
+- else
+- l += 8;
+- }
+- return (*high >= 0 && (*low <= *high)) ? *low : -1;
+-}
++/* These global variables will be set by main () */
++static int little_endian;
++static const char *my_program_invocation_name = NULL;
+
+-/*
+- * This helper routine generates a representation clause for a
+- * record type defined in the binding.
+- * We are only dealing with record types which are of 32 or 16
+- * bit size, i.e. they fit into an (u)int or a (u)short.
+- */
+ static void
+-gen_reps(
+- const name_attribute_pair * nap, /* array of name_attribute_pair records */
+- const char *name, /* name of the represented record type */
+- int len, /* size of the record in bytes */
+- int bias)
++my_error(const char *message)
+ {
+- const char *unused_name = "Unused";
+- int long_bits = (8 * (int)sizeof(unsigned long));
+- int len_bits = (8 * len);
+- int i, j, n, l, cnt = 0, low, high;
+- int width = strlen(RES_NAME) + 3;
+- unsigned long a;
+- unsigned long mask = 0;
+-
+- assert(nap != NULL);
+-
+- for (i = 0; nap[i].name != (char *)0; i++)
+- {
+- cnt++;
+- l = (int)strlen(nap[i].name);
+- if (l > width)
+- width = l;
+- }
+- assert(width > 0);
+-
+- printf(" type %s is\n", name);
+- printf(" record\n");
+- for (i = 0; nap[i].name != (char *)0; i++)
+- {
+- mask |= nap[i].attr;
+- printf(" %-*s : Boolean;\n", width, nap[i].name);
+- }
+-
+- /*
+- * Compute a mask for the unused bits in this target.
+- */
+- mask = ~mask;
+- /*
+- * Bits in the biased area are unused by the target.
+- */
+- for (j = 0; j < bias; ++j)
+- {
+- mask &= (unsigned long)(~(1L << j));
+- }
+- /*
+- * Bits past the target's size are really unused.
+- */
+- for (j = len_bits + bias; j < long_bits; ++j)
+- {
+- mask &= (unsigned long)(~(1L << j));
+- }
+- if (mask != 0)
+- {
+- printf(" %-*s : Boolean;\n", width, unused_name);
+- }
+- printf(" end record;\n");
+- printf(" pragma Convention (C, %s);\n\n", name);
+-
+- printf(" for %s use\n", name);
+- printf(" record\n");
+-
+- for (i = 0; nap[i].name != (char *)0; i++)
+- {
+- a = nap[i].attr;
+- l = find_pos((char *)&a, sizeof(a), &low, &high);
+- if (l >= 0)
+- printf(" %-*s at 0 range %2d .. %2d;\n", width, nap[i].name,
+- low - bias, high - bias);
+- }
+- if (mask != 0)
+- {
+- l = find_pos((char *)&mask, sizeof(mask), &low, &high);
+- if (l >= 0)
+- printf(" %-*s at 0 range %2d .. %2d;\n", width, unused_name,
+- low - bias, high - bias);
+- }
+- i = 1;
+- n = cnt;
+- printf(" end record;\n");
+- printf(" for %s'Size use %d;\n", name, len_bits);
+- printf(" -- Please note: this rep. clause is generated and may be\n");
+- printf(" -- different on your system.");
++ fprintf(stderr, "%s: %s\n", my_program_invocation_name, message);
++ exit(EXIT_FAILURE);
+ }
+
+ static void
+-chtype_rep(const char *name, attr_t mask)
++print_constant(const char *name,
++ long value)
+ {
+- attr_t x = (attr_t)-1;
+- attr_t t = x & mask;
+- int low, high;
+- int l = find_pos((char *)&t, sizeof(t), &low, &high);
+-
+- if (l >= 0)
+- printf(" %-5s at 0 range %2d .. %2d;\n", name, low, high);
++ printf(" %-28s : constant := %ld;\n", name, value);
+ }
+
+-static void
+-gen_chtype_rep(const char *name)
+-{
+- printf(" for %s use\n record\n", name);
+- chtype_rep("Ch", A_CHARTEXT);
+- chtype_rep("Color", A_COLOR);
+- chtype_rep("Attr", (A_ATTRIBUTES & ~A_COLOR));
+- printf(" end record;\n for %s'Size use %ld;\n",
+- name, (long)(8 * sizeof(chtype)));
+-
+- printf(" -- Please note: this rep. clause is generated and may be\n");
+- printf(" -- different on your system.\n");
+-}
++#define PRINT_NAMED_CONSTANT(name) \
++ print_constant (#name, name)
+
+ static void
+-mrep_rep(const char *name, void *rec)
++print_comment(const char *message)
+ {
+- int low, high;
+- int l = find_pos((char *)rec, sizeof(MEVENT), &low, &high);
+-
+- if (l >= 0)
+- printf(" %-7s at 0 range %3d .. %3d;\n", name, low, high);
++ printf("\n -- %s\n\n", message);
+ }
+
+-static void
+-gen_mrep_rep(const char *name)
+-{
+- MEVENT x;
+-
+- printf(" for %s use\n record\n", name);
+-
+- memset(&x, 0, sizeof(x));
+- x.id = -1;
+- mrep_rep("Id", &x);
+-
+- memset(&x, 0, sizeof(x));
+- x.x = -1;
+- mrep_rep("X", &x);
+-
+- memset(&x, 0, sizeof(x));
+- x.y = -1;
+- mrep_rep("Y", &x);
+-
+- memset(&x, 0, sizeof(x));
+- x.z = -1;
+- mrep_rep("Z", &x);
+-
+- memset(&x, 0, sizeof(x));
+- x.bstate = (mmask_t) - 1;
+- mrep_rep("Bstate", &x);
+-
+- printf(" end record;\n");
+- printf(" -- Please note: this rep. clause is generated and may be\n");
+- printf(" -- different on your system.\n");
+-}
+-
+-static void
+-gen_attr_set(const char *name)
+-{
+- /* All of the A_xxx symbols are defined in ncurses, but not all are nonzero
+- * if "configure --enable-widec" is not specified. Originally (in
+- * 1999-2000), the ifdef's also were needed since the proposed bit-layout
+- * for wide characters allocated 16-bits for A_CHARTEXT, leaving too few
+- * bits for a few of the A_xxx symbols.
+- */
+- static const name_attribute_pair nap[] =
+- {
+-#if A_STANDOUT
+- {"Stand_Out", A_STANDOUT},
+-#endif
+-#if A_UNDERLINE
+- {"Under_Line", A_UNDERLINE},
+-#endif
+-#if A_REVERSE
+- {"Reverse_Video", A_REVERSE},
+-#endif
+-#if A_BLINK
+- {"Blink", A_BLINK},
+-#endif
+-#if A_DIM
+- {"Dim_Character", A_DIM},
+-#endif
+-#if A_BOLD
+- {"Bold_Character", A_BOLD},
+-#endif
+-#if A_ALTCHARSET
+- {"Alternate_Character_Set", A_ALTCHARSET},
+-#endif
+-#if A_INVIS
+- {"Invisible_Character", A_INVIS},
+-#endif
+-#if A_PROTECT
+- {"Protected_Character", A_PROTECT},
+-#endif
+-#if A_HORIZONTAL
+- {"Horizontal", A_HORIZONTAL},
+-#endif
+-#if A_LEFT
+- {"Left", A_LEFT},
+-#endif
+-#if A_LOW
+- {"Low", A_LOW},
+-#endif
+-#if A_RIGHT
+- {"Right", A_RIGHT},
+-#endif
+-#if A_TOP
+- {"Top", A_TOP},
+-#endif
+-#if A_VERTICAL
+- {"Vertical", A_VERTICAL},
+-#endif
+- {(char *)0, 0}
+- };
+- chtype attr = A_ATTRIBUTES & ~A_COLOR;
+- int start = -1;
+- int len = 0;
+- int i;
+- chtype set;
+- for (i = 0; i < (int)(8 * sizeof(chtype)); i++)
+-
+- {
+- set = (attr & 1);
+- if (set)
+- {
+- if (start < 0)
+- start = i;
+- if (start >= 0)
+- {
+- len++;
+- }
+- }
+- attr = attr >> 1;
+- }
+- gen_reps(nap, name, (len + 7) / 8, little_endian ? start : 0);
+-}
+-
+-static void
+-gen_trace(const char *name)
+-{
+- static const name_attribute_pair nap[] =
+- {
+- {"Times", TRACE_TIMES},
+- {"Tputs", TRACE_TPUTS},
+- {"Update", TRACE_UPDATE},
+- {"Cursor_Move", TRACE_MOVE},
+- {"Character_Output", TRACE_CHARPUT},
+- {"Calls", TRACE_CALLS},
+- {"Virtual_Puts", TRACE_VIRTPUT},
+- {"Input_Events", TRACE_IEVENT},
+- {"TTY_State", TRACE_BITS},
+- {"Internal_Calls", TRACE_ICALLS},
+- {"Character_Calls", TRACE_CCALLS},
+- {"Termcap_TermInfo", TRACE_DATABASE},
+- {"Attributes_And_Colors", TRACE_ATTRS},
+- {(char *)0, 0}
+- };
+- gen_reps(nap, name, sizeof(int), 0);
+-}
+-
+-static void
+-gen_menu_opt_rep(const char *name)
+-{
+- static const name_attribute_pair nap[] =
+- {
+-#ifdef O_ONEVALUE
+- {"One_Valued", O_ONEVALUE},
+-#endif
+-#ifdef O_SHOWDESC
+- {"Show_Descriptions", O_SHOWDESC},
+-#endif
+-#ifdef O_ROWMAJOR
+- {"Row_Major_Order", O_ROWMAJOR},
+-#endif
+-#ifdef O_IGNORECASE
+- {"Ignore_Case", O_IGNORECASE},
+-#endif
+-#ifdef O_SHOWMATCH
+- {"Show_Matches", O_SHOWMATCH},
++/*
++ * Make sure that KEY_MIN and KEY_MAX are defined.
++ * main () will protest if KEY_MIN == 256
++ */
++#ifndef KEY_MAX
++# define KEY_MAX 0777
+ #endif
+-#ifdef O_NONCYCLIC
+- {"Non_Cyclic", O_NONCYCLIC},
++#ifndef KEY_MIN
++# define KEY_MIN 0401
+ #endif
+- {(char *)0, 0}
+- };
+- gen_reps(nap, name, sizeof(int), 0);
+-}
+
+-static void
+-gen_item_opt_rep(const char *name)
+-{
+- static const name_attribute_pair nap[] =
+- {
+-#ifdef O_SELECTABLE
+- {"Selectable", O_SELECTABLE},
+-#endif
+- {(char *)0, 0}
+- };
+- gen_reps(nap, name, sizeof(int), 0);
++static UCHAR
++bit_is_set(const UCHAR * const data,
++ const UINT offset)
++{
++ const UCHAR byte = data[offset >> 3];
++ UINT bit;
++
++ if (little_endian)
++ bit = offset; /* offset */
++ else /* or */
++ bit = ~offset; /* 7 - offset */
++ bit &= 7; /* modulo 8 */
++ return byte & (UCHAR) (1 << bit);
+ }
+
+-static void
+-gen_form_opt_rep(const char *name)
++/* Find lowest and highest used offset in a byte array. */
++/* Returns 0 if and only if all bits are unset. */
++static int
++find_pos(const UCHAR * const data,
++ const UINT sizeof_data,
++ UINT * const low,
++ UINT * const high)
+ {
+- static const name_attribute_pair nap[] =
+- {
+-#ifdef O_NL_OVERLOAD
+- {"NL_Overload", O_NL_OVERLOAD},
+-#endif
+-#ifdef O_BS_OVERLOAD
+- {"BS_Overload", O_BS_OVERLOAD},
+-#endif
+- {(char *)0, 0}
+- };
+- gen_reps(nap, name, sizeof(int), 0);
+-}
++ const UINT last = (sizeof_data << 3) - 1;
++ UINT offset;
+
+-/*
+- * Generate the representation clause for the Field_Option_Set record
+- */
+-static void
+-gen_field_opt_rep(const char *name)
+-{
+- static const name_attribute_pair nap[] =
+- {
+-#ifdef O_VISIBLE
+- {"Visible", O_VISIBLE},
+-#endif
+-#ifdef O_ACTIVE
+- {"Active", O_ACTIVE},
+-#endif
+-#ifdef O_PUBLIC
+- {"Public", O_PUBLIC},
+-#endif
+-#ifdef O_EDIT
+- {"Edit", O_EDIT},
+-#endif
+-#ifdef O_WRAP
+- {"Wrap", O_WRAP},
+-#endif
+-#ifdef O_BLANK
+- {"Blank", O_BLANK},
+-#endif
+-#ifdef O_AUTOSKIP
+- {"Auto_Skip", O_AUTOSKIP},
+-#endif
+-#ifdef O_NULLOK
+- {"Null_Ok", O_NULLOK},
+-#endif
+-#ifdef O_PASSOK
+- {"Pass_Ok", O_PASSOK},
+-#endif
+-#ifdef O_STATIC
+- {"Static", O_STATIC},
+-#endif
+- {(char *)0, 0}
+- };
+- gen_reps(nap, name, sizeof(int), 0);
+-}
++ for (offset = last; !bit_is_set(data, offset); offset--)
++ if (!offset) /* All bits are 0. */
++ return 0;
++ *high = offset;
+
+-/*
+- * Generate a single key code constant definition.
+- */
+-static void
+-keydef(const char *name, const char *old_name, int value, int mode)
+-{
+- if (mode == 0) /* Generate the new name */
+- printf(" %-30s : constant Special_Key_Code := 8#%3o#;\n", name, value);
+- else
++ for (offset = 0; !bit_is_set(data, offset); offset++)
+ {
+- const char *s = old_name;
+- const char *t = name;
+-
+- /* generate the old name, but only if it doesn't conflict with the old
+- * name (Ada95 isn't case sensitive!)
+- */
+- while (*s && *t && (toupper(UChar(*s++)) == toupper(UChar(*t++))));
+- if (*s || *t)
+- printf(" %-16s : Special_Key_Code renames %s;\n", old_name, name);
+ }
++ *low = offset;
++
++ return -1;
+ }
+
+-/*
+- * Generate constants for the key codes. When called with mode==0, a
+- * complete list with nice constant names in proper casing style will
+- * be generated. Otherwise a list of old (i.e. C-style) names will be
+- * generated, given that the name wasn't already defined in the "nice"
+- * list.
+- */
+-static void
+-gen_keydefs(int mode)
+-{
+- char buf[16];
+- char obuf[16];
+- int i;
++#define PRINT_BITMASK(c_type, ada_name, mask_macro) \
++ { \
++ UINT first, last; \
++ c_type mask = (mask_macro); \
++ if (!find_pos ((UCHAR *)&mask, sizeof (mask), &first, &last)) \
++ my_error ("failed to locate " ada_name); \
++ print_constant (ada_name "_First", first); \
++ print_constant (ada_name "_Last", last); \
++ }
+
+-#ifdef KEY_CODE_YES
+- keydef("Key_Code_Yes", "KEY_CODE_YES", KEY_CODE_YES, mode);
+-#endif
+-#ifdef KEY_MIN
+- keydef("Key_Min", "KEY_MIN", KEY_MIN, mode);
+-#endif
+-#ifdef KEY_BREAK
+- keydef("Key_Break", "KEY_BREAK", KEY_BREAK, mode);
+-#endif
+-#ifdef KEY_DOWN
+- keydef("Key_Cursor_Down", "KEY_DOWN", KEY_DOWN, mode);
+-#endif
+-#ifdef KEY_UP
+- keydef("Key_Cursor_Up", "KEY_UP", KEY_UP, mode);
+-#endif
+-#ifdef KEY_LEFT
+- keydef("Key_Cursor_Left", "KEY_LEFT", KEY_LEFT, mode);
+-#endif
+-#ifdef KEY_RIGHT
+- keydef("Key_Cursor_Right", "KEY_RIGHT", KEY_RIGHT, mode);
+-#endif
+-#ifdef KEY_HOME
+- keydef("Key_Home", "KEY_HOME", KEY_HOME, mode);
+-#endif
+-#ifdef KEY_BACKSPACE
+- keydef("Key_Backspace", "KEY_BACKSPACE", KEY_BACKSPACE, mode);
+-#endif
+-#ifdef KEY_F0
+- keydef("Key_F0", "KEY_F0", KEY_F0, mode);
+-#endif
+-#ifdef KEY_F
+- for (i = 1; i <= 24; i++)
+- {
+- sprintf(buf, "Key_F%d", i);
+- sprintf(obuf, "KEY_F%d", i);
+- keydef(buf, obuf, KEY_F(i), mode);
+- }
+-#endif
+-#ifdef KEY_DL
+- keydef("Key_Delete_Line", "KEY_DL", KEY_DL, mode);
+-#endif
+-#ifdef KEY_IL
+- keydef("Key_Insert_Line", "KEY_IL", KEY_IL, mode);
+-#endif
+-#ifdef KEY_DC
+- keydef("Key_Delete_Char", "KEY_DC", KEY_DC, mode);
+-#endif
+-#ifdef KEY_IC
+- keydef("Key_Insert_Char", "KEY_IC", KEY_IC, mode);
+-#endif
+-#ifdef KEY_EIC
+- keydef("Key_Exit_Insert_Mode", "KEY_EIC", KEY_EIC, mode);
+-#endif
+-#ifdef KEY_CLEAR
+- keydef("Key_Clear_Screen", "KEY_CLEAR", KEY_CLEAR, mode);
+-#endif
+-#ifdef KEY_EOS
+- keydef("Key_Clear_End_Of_Screen", "KEY_EOS", KEY_EOS, mode);
+-#endif
+-#ifdef KEY_EOL
+- keydef("Key_Clear_End_Of_Line", "KEY_EOL", KEY_EOL, mode);
+-#endif
+-#ifdef KEY_SF
+- keydef("Key_Scroll_1_Forward", "KEY_SF", KEY_SF, mode);
+-#endif
+-#ifdef KEY_SR
+- keydef("Key_Scroll_1_Backward", "KEY_SR", KEY_SR, mode);
+-#endif
+-#ifdef KEY_NPAGE
+- keydef("Key_Next_Page", "KEY_NPAGE", KEY_NPAGE, mode);
+-#endif
+-#ifdef KEY_PPAGE
+- keydef("Key_Previous_Page", "KEY_PPAGE", KEY_PPAGE, mode);
+-#endif
+-#ifdef KEY_STAB
+- keydef("Key_Set_Tab", "KEY_STAB", KEY_STAB, mode);
+-#endif
+-#ifdef KEY_CTAB
+- keydef("Key_Clear_Tab", "KEY_CTAB", KEY_CTAB, mode);
+-#endif
+-#ifdef KEY_CATAB
+- keydef("Key_Clear_All_Tabs", "KEY_CATAB", KEY_CATAB, mode);
+-#endif
+-#ifdef KEY_ENTER
+- keydef("Key_Enter_Or_Send", "KEY_ENTER", KEY_ENTER, mode);
+-#endif
+-#ifdef KEY_SRESET
+- keydef("Key_Soft_Reset", "KEY_SRESET", KEY_SRESET, mode);
+-#endif
+-#ifdef KEY_RESET
+- keydef("Key_Reset", "KEY_RESET", KEY_RESET, mode);
+-#endif
+-#ifdef KEY_PRINT
+- keydef("Key_Print", "KEY_PRINT", KEY_PRINT, mode);
+-#endif
+-#ifdef KEY_LL
+- keydef("Key_Bottom", "KEY_LL", KEY_LL, mode);
+-#endif
+-#ifdef KEY_A1
+- keydef("Key_Upper_Left_Of_Keypad", "KEY_A1", KEY_A1, mode);
+-#endif
+-#ifdef KEY_A3
+- keydef("Key_Upper_Right_Of_Keypad", "KEY_A3", KEY_A3, mode);
+-#endif
+-#ifdef KEY_B2
+- keydef("Key_Center_Of_Keypad", "KEY_B2", KEY_B2, mode);
+-#endif
+-#ifdef KEY_C1
+- keydef("Key_Lower_Left_Of_Keypad", "KEY_C1", KEY_C1, mode);
+-#endif
+-#ifdef KEY_C3
+- keydef("Key_Lower_Right_Of_Keypad", "KEY_C3", KEY_C3, mode);
+-#endif
+-#ifdef KEY_BTAB
+- keydef("Key_Back_Tab", "KEY_BTAB", KEY_BTAB, mode);
+-#endif
+-#ifdef KEY_BEG
+- keydef("Key_Beginning", "KEY_BEG", KEY_BEG, mode);
+-#endif
+-#ifdef KEY_CANCEL
+- keydef("Key_Cancel", "KEY_CANCEL", KEY_CANCEL, mode);
+-#endif
+-#ifdef KEY_CLOSE
+- keydef("Key_Close", "KEY_CLOSE", KEY_CLOSE, mode);
+-#endif
+-#ifdef KEY_COMMAND
+- keydef("Key_Command", "KEY_COMMAND", KEY_COMMAND, mode);
+-#endif
+-#ifdef KEY_COPY
+- keydef("Key_Copy", "KEY_COPY", KEY_COPY, mode);
+-#endif
+-#ifdef KEY_CREATE
+- keydef("Key_Create", "KEY_CREATE", KEY_CREATE, mode);
+-#endif
+-#ifdef KEY_END
+- keydef("Key_End", "KEY_END", KEY_END, mode);
+-#endif
+-#ifdef KEY_EXIT
+- keydef("Key_Exit", "KEY_EXIT", KEY_EXIT, mode);
+-#endif
+-#ifdef KEY_FIND
+- keydef("Key_Find", "KEY_FIND", KEY_FIND, mode);
+-#endif
+-#ifdef KEY_HELP
+- keydef("Key_Help", "KEY_HELP", KEY_HELP, mode);
+-#endif
+-#ifdef KEY_MARK
+- keydef("Key_Mark", "KEY_MARK", KEY_MARK, mode);
+-#endif
+-#ifdef KEY_MESSAGE
+- keydef("Key_Message", "KEY_MESSAGE", KEY_MESSAGE, mode);
+-#endif
+-#ifdef KEY_MOVE
+- keydef("Key_Move", "KEY_MOVE", KEY_MOVE, mode);
+-#endif
+-#ifdef KEY_NEXT
+- keydef("Key_Next", "KEY_NEXT", KEY_NEXT, mode);
+-#endif
+-#ifdef KEY_OPEN
+- keydef("Key_Open", "KEY_OPEN", KEY_OPEN, mode);
+-#endif
+-#ifdef KEY_OPTIONS
+- keydef("Key_Options", "KEY_OPTIONS", KEY_OPTIONS, mode);
+-#endif
+-#ifdef KEY_PREVIOUS
+- keydef("Key_Previous", "KEY_PREVIOUS", KEY_PREVIOUS, mode);
+-#endif
+-#ifdef KEY_REDO
+- keydef("Key_Redo", "KEY_REDO", KEY_REDO, mode);
+-#endif
+-#ifdef KEY_REFERENCE
+- keydef("Key_Reference", "KEY_REFERENCE", KEY_REFERENCE, mode);
+-#endif
+-#ifdef KEY_REFRESH
+- keydef("Key_Refresh", "KEY_REFRESH", KEY_REFRESH, mode);
+-#endif
+-#ifdef KEY_REPLACE
+- keydef("Key_Replace", "KEY_REPLACE", KEY_REPLACE, mode);
+-#endif
+-#ifdef KEY_RESTART
+- keydef("Key_Restart", "KEY_RESTART", KEY_RESTART, mode);
+-#endif
+-#ifdef KEY_RESUME
+- keydef("Key_Resume", "KEY_RESUME", KEY_RESUME, mode);
+-#endif
+-#ifdef KEY_SAVE
+- keydef("Key_Save", "KEY_SAVE", KEY_SAVE, mode);
+-#endif
+-#ifdef KEY_SBEG
+- keydef("Key_Shift_Begin", "KEY_SBEG", KEY_SBEG, mode);
+-#endif
+-#ifdef KEY_SCANCEL
+- keydef("Key_Shift_Cancel", "KEY_SCANCEL", KEY_SCANCEL, mode);
+-#endif
+-#ifdef KEY_SCOMMAND
+- keydef("Key_Shift_Command", "KEY_SCOMMAND", KEY_SCOMMAND, mode);
+-#endif
+-#ifdef KEY_SCOPY
+- keydef("Key_Shift_Copy", "KEY_SCOPY", KEY_SCOPY, mode);
+-#endif
+-#ifdef KEY_SCREATE
+- keydef("Key_Shift_Create", "KEY_SCREATE", KEY_SCREATE, mode);
+-#endif
+-#ifdef KEY_SDC
+- keydef("Key_Shift_Delete_Char", "KEY_SDC", KEY_SDC, mode);
+-#endif
+-#ifdef KEY_SDL
+- keydef("Key_Shift_Delete_Line", "KEY_SDL", KEY_SDL, mode);
+-#endif
+-#ifdef KEY_SELECT
+- keydef("Key_Select", "KEY_SELECT", KEY_SELECT, mode);
+-#endif
+-#ifdef KEY_SEND
+- keydef("Key_Shift_End", "KEY_SEND", KEY_SEND, mode);
+-#endif
+-#ifdef KEY_SEOL
+- keydef("Key_Shift_Clear_End_Of_Line", "KEY_SEOL", KEY_SEOL, mode);
+-#endif
+-#ifdef KEY_SEXIT
+- keydef("Key_Shift_Exit", "KEY_SEXIT", KEY_SEXIT, mode);
+-#endif
+-#ifdef KEY_SFIND
+- keydef("Key_Shift_Find", "KEY_SFIND", KEY_SFIND, mode);
+-#endif
+-#ifdef KEY_SHELP
+- keydef("Key_Shift_Help", "KEY_SHELP", KEY_SHELP, mode);
+-#endif
+-#ifdef KEY_SHOME
+- keydef("Key_Shift_Home", "KEY_SHOME", KEY_SHOME, mode);
+-#endif
+-#ifdef KEY_SIC
+- keydef("Key_Shift_Insert_Char", "KEY_SIC", KEY_SIC, mode);
+-#endif
+-#ifdef KEY_SLEFT
+- keydef("Key_Shift_Cursor_Left", "KEY_SLEFT", KEY_SLEFT, mode);
+-#endif
+-#ifdef KEY_SMESSAGE
+- keydef("Key_Shift_Message", "KEY_SMESSAGE", KEY_SMESSAGE, mode);
+-#endif
+-#ifdef KEY_SMOVE
+- keydef("Key_Shift_Move", "KEY_SMOVE", KEY_SMOVE, mode);
+-#endif
+-#ifdef KEY_SNEXT
+- keydef("Key_Shift_Next_Page", "KEY_SNEXT", KEY_SNEXT, mode);
+-#endif
+-#ifdef KEY_SOPTIONS
+- keydef("Key_Shift_Options", "KEY_SOPTIONS", KEY_SOPTIONS, mode);
+-#endif
+-#ifdef KEY_SPREVIOUS
+- keydef("Key_Shift_Previous_Page", "KEY_SPREVIOUS", KEY_SPREVIOUS, mode);
+-#endif
+-#ifdef KEY_SPRINT
+- keydef("Key_Shift_Print", "KEY_SPRINT", KEY_SPRINT, mode);
+-#endif
+-#ifdef KEY_SREDO
+- keydef("Key_Shift_Redo", "KEY_SREDO", KEY_SREDO, mode);
+-#endif
+-#ifdef KEY_SREPLACE
+- keydef("Key_Shift_Replace", "KEY_SREPLACE", KEY_SREPLACE, mode);
+-#endif
+-#ifdef KEY_SRIGHT
+- keydef("Key_Shift_Cursor_Right", "KEY_SRIGHT", KEY_SRIGHT, mode);
+-#endif
+-#ifdef KEY_SRSUME
+- keydef("Key_Shift_Resume", "KEY_SRSUME", KEY_SRSUME, mode);
+-#endif
+-#ifdef KEY_SSAVE
+- keydef("Key_Shift_Save", "KEY_SSAVE", KEY_SSAVE, mode);
+-#endif
+-#ifdef KEY_SSUSPEND
+- keydef("Key_Shift_Suspend", "KEY_SSUSPEND", KEY_SSUSPEND, mode);
+-#endif
+-#ifdef KEY_SUNDO
+- keydef("Key_Shift_Undo", "KEY_SUNDO", KEY_SUNDO, mode);
+-#endif
+-#ifdef KEY_SUSPEND
+- keydef("Key_Suspend", "KEY_SUSPEND", KEY_SUSPEND, mode);
+-#endif
+-#ifdef KEY_UNDO
+- keydef("Key_Undo", "KEY_UNDO", KEY_UNDO, mode);
+-#endif
+-#ifdef KEY_MOUSE
+- keydef("Key_Mouse", "KEY_MOUSE", KEY_MOUSE, mode);
+-#endif
+-#ifdef KEY_RESIZE
+- keydef("Key_Resize", "KEY_RESIZE", KEY_RESIZE, mode);
+-#endif
+-}
++#define PRINT_NAMED_BITMASK(c_type, mask_macro) \
++ PRINT_BITMASK (c_type, #mask_macro, mask_macro)
+
+-/*
+- * Generate a constant with the given name. The second parameter
+- * is a reference to the ACS character in the acs_map[] array and
+- * will be translated into an index.
+- */
+-static void
+-acs_def(const char *name, chtype *a)
+-{
+- int c = (int)(a - &acs_map[0]);
++#define STRUCT_OFFSET(record, field) \
++ { \
++ UINT first, last; \
++ record mask; \
++ memset (&mask, 0, sizeof (mask)); \
++ memset (&mask.field, 0xff, sizeof(mask.field)); \
++ if (!find_pos ((UCHAR *)&mask, sizeof (mask), &first, &last)) \
++ my_error ("failed to locate" #record "_" #field); \
++ print_constant (#record "_" #field "_First", first); \
++ print_constant (#record "_" #field "_Last", last); \
++ }
+
+- printf(" %-24s : constant Character := ", name);
+- if (isprint(UChar(c)) && (c != '`'))
+- printf("'%c';\n", c);
+- else
+- printf("Character'Val (%d);\n", c);
+-}
++/*--------------------*/
++/* Start of main (). */
++/*--------------------*/
+
+-/*
+- * Generate the constants for the ACS characters
+- */
+-static void
+-gen_acs(void)
++int
++main(int argc, const char *argv[])
+ {
+- printf(" type C_ACS_Map is array (Character'Val (0) .. Character'Val (127))\n");
+- printf(" of Attributed_Character;\n");
+-#if USE_REENTRANT || BROKEN_LINKER
+- printf(" type C_ACS_Ptr is access C_ACS_Map;\n");
+- printf(" function ACS_Map return C_ACS_Ptr;\n");
+- printf(" pragma Import (C, ACS_Map, \""
+- NCURSES_WRAP_PREFIX
+- "acs_map\");\n");
+-#else
+- printf(" ACS_Map : C_ACS_Map;\n");
+- printf(" pragma Import (C, ACS_Map, \"acs_map\");\n");
+-#endif
+- printf(" --\n");
+- printf(" --\n");
+- printf(" -- Constants for several characters from the Alternate Character Set\n");
+- printf(" -- You must use these constants as indices into the ACS_Map array\n");
+- printf(" -- to get the corresponding attributed character at runtime.\n");
+- printf(" --\n");
++ const int x = 0x12345678;
+
+-#ifdef ACS_ULCORNER
+- acs_def("ACS_Upper_Left_Corner", &ACS_ULCORNER);
+-#endif
+-#ifdef ACS_LLCORNER
+- acs_def("ACS_Lower_Left_Corner", &ACS_LLCORNER);
+-#endif
+-#ifdef ACS_URCORNER
+- acs_def("ACS_Upper_Right_Corner", &ACS_URCORNER);
+-#endif
+-#ifdef ACS_LRCORNER
+- acs_def("ACS_Lower_Right_Corner", &ACS_LRCORNER);
+-#endif
+-#ifdef ACS_LTEE
+- acs_def("ACS_Left_Tee", &ACS_LTEE);
+-#endif
+-#ifdef ACS_RTEE
+- acs_def("ACS_Right_Tee", &ACS_RTEE);
+-#endif
+-#ifdef ACS_BTEE
+- acs_def("ACS_Bottom_Tee", &ACS_BTEE);
+-#endif
+-#ifdef ACS_TTEE
+- acs_def("ACS_Top_Tee", &ACS_TTEE);
+-#endif
+-#ifdef ACS_HLINE
+- acs_def("ACS_Horizontal_Line", &ACS_HLINE);
+-#endif
+-#ifdef ACS_VLINE
+- acs_def("ACS_Vertical_Line", &ACS_VLINE);
+-#endif
+-#ifdef ACS_PLUS
+- acs_def("ACS_Plus_Symbol", &ACS_PLUS);
+-#endif
+-#ifdef ACS_S1
+- acs_def("ACS_Scan_Line_1", &ACS_S1);
+-#endif
+-#ifdef ACS_S9
+- acs_def("ACS_Scan_Line_9", &ACS_S9);
+-#endif
+-#ifdef ACS_DIAMOND
+- acs_def("ACS_Diamond", &ACS_DIAMOND);
+-#endif
+-#ifdef ACS_CKBOARD
+- acs_def("ACS_Checker_Board", &ACS_CKBOARD);
+-#endif
+-#ifdef ACS_DEGREE
+- acs_def("ACS_Degree", &ACS_DEGREE);
+-#endif
+-#ifdef ACS_PLMINUS
+- acs_def("ACS_Plus_Minus", &ACS_PLMINUS);
+-#endif
+-#ifdef ACS_BULLET
+- acs_def("ACS_Bullet", &ACS_BULLET);
+-#endif
+-#ifdef ACS_LARROW
+- acs_def("ACS_Left_Arrow", &ACS_LARROW);
+-#endif
+-#ifdef ACS_RARROW
+- acs_def("ACS_Right_Arrow", &ACS_RARROW);
+-#endif
+-#ifdef ACS_DARROW
+- acs_def("ACS_Down_Arrow", &ACS_DARROW);
+-#endif
+-#ifdef ACS_UARROW
+- acs_def("ACS_Up_Arrow", &ACS_UARROW);
+-#endif
+-#ifdef ACS_BOARD
+- acs_def("ACS_Board_Of_Squares", &ACS_BOARD);
+-#endif
+-#ifdef ACS_LANTERN
+- acs_def("ACS_Lantern", &ACS_LANTERN);
+-#endif
+-#ifdef ACS_BLOCK
+- acs_def("ACS_Solid_Block", &ACS_BLOCK);
+-#endif
+-#ifdef ACS_S3
+- acs_def("ACS_Scan_Line_3", &ACS_S3);
+-#endif
+-#ifdef ACS_S7
+- acs_def("ACS_Scan_Line_7", &ACS_S7);
+-#endif
+-#ifdef ACS_LEQUAL
+- acs_def("ACS_Less_Or_Equal", &ACS_LEQUAL);
+-#endif
+-#ifdef ACS_GEQUAL
+- acs_def("ACS_Greater_Or_Equal", &ACS_GEQUAL);
+-#endif
+-#ifdef ACS_PI
+- acs_def("ACS_PI", &ACS_PI);
+-#endif
+-#ifdef ACS_NEQUAL
+- acs_def("ACS_Not_Equal", &ACS_NEQUAL);
+-#endif
+-#ifdef ACS_STERLING
+- acs_def("ACS_Sterling", &ACS_STERLING);
+-#endif
+-}
++ little_endian = (*((const char *)&x) == 0x78);
+
+-#define GEN_EVENT(name,value) \
+- printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
+- #name, value)
+-
+-#define GEN_MEVENT(name) \
+- printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
+- #name, name)
++ my_program_invocation_name = argv[0];
+
+-static void
+-gen_mouse_events(void)
+-{
+- mmask_t all1 = 0;
+- mmask_t all2 = 0;
+- mmask_t all3 = 0;
+- mmask_t all4 = 0;
+-
+-#ifdef BUTTON1_RELEASED
+- GEN_MEVENT(BUTTON1_RELEASED);
+- all1 |= BUTTON1_RELEASED;
+-#endif
+-#ifdef BUTTON1_PRESSED
+- GEN_MEVENT(BUTTON1_PRESSED);
+- all1 |= BUTTON1_PRESSED;
+-#endif
+-#ifdef BUTTON1_CLICKED
+- GEN_MEVENT(BUTTON1_CLICKED);
+- all1 |= BUTTON1_CLICKED;
+-#endif
+-#ifdef BUTTON1_DOUBLE_CLICKED
+- GEN_MEVENT(BUTTON1_DOUBLE_CLICKED);
+- all1 |= BUTTON1_DOUBLE_CLICKED;
+-#endif
+-#ifdef BUTTON1_TRIPLE_CLICKED
+- GEN_MEVENT(BUTTON1_TRIPLE_CLICKED);
+- all1 |= BUTTON1_TRIPLE_CLICKED;
+-#endif
+-#ifdef BUTTON1_RESERVED_EVENT
+- GEN_MEVENT(BUTTON1_RESERVED_EVENT);
+- all1 |= BUTTON1_RESERVED_EVENT;
+-#endif
+-#ifdef BUTTON2_RELEASED
+- GEN_MEVENT(BUTTON2_RELEASED);
+- all2 |= BUTTON2_RELEASED;
+-#endif
+-#ifdef BUTTON2_PRESSED
+- GEN_MEVENT(BUTTON2_PRESSED);
+- all2 |= BUTTON2_PRESSED;
+-#endif
+-#ifdef BUTTON2_CLICKED
+- GEN_MEVENT(BUTTON2_CLICKED);
+- all2 |= BUTTON2_CLICKED;
+-#endif
+-#ifdef BUTTON2_DOUBLE_CLICKED
+- GEN_MEVENT(BUTTON2_DOUBLE_CLICKED);
+- all2 |= BUTTON2_DOUBLE_CLICKED;
+-#endif
+-#ifdef BUTTON2_TRIPLE_CLICKED
+- GEN_MEVENT(BUTTON2_TRIPLE_CLICKED);
+- all2 |= BUTTON2_TRIPLE_CLICKED;
+-#endif
+-#ifdef BUTTON2_RESERVED_EVENT
+- GEN_MEVENT(BUTTON2_RESERVED_EVENT);
+- all2 |= BUTTON2_RESERVED_EVENT;
+-#endif
+-#ifdef BUTTON3_RELEASED
+- GEN_MEVENT(BUTTON3_RELEASED);
+- all3 |= BUTTON3_RELEASED;
+-#endif
+-#ifdef BUTTON3_PRESSED
+- GEN_MEVENT(BUTTON3_PRESSED);
+- all3 |= BUTTON3_PRESSED;
+-#endif
+-#ifdef BUTTON3_CLICKED
+- GEN_MEVENT(BUTTON3_CLICKED);
+- all3 |= BUTTON3_CLICKED;
+-#endif
+-#ifdef BUTTON3_DOUBLE_CLICKED
+- GEN_MEVENT(BUTTON3_DOUBLE_CLICKED);
+- all3 |= BUTTON3_DOUBLE_CLICKED;
+-#endif
+-#ifdef BUTTON3_TRIPLE_CLICKED
+- GEN_MEVENT(BUTTON3_TRIPLE_CLICKED);
+- all3 |= BUTTON3_TRIPLE_CLICKED;
+-#endif
+-#ifdef BUTTON3_RESERVED_EVENT
+- GEN_MEVENT(BUTTON3_RESERVED_EVENT);
+- all3 |= BUTTON3_RESERVED_EVENT;
+-#endif
+-#ifdef BUTTON4_RELEASED
+- GEN_MEVENT(BUTTON4_RELEASED);
+- all4 |= BUTTON4_RELEASED;
+-#endif
+-#ifdef BUTTON4_PRESSED
+- GEN_MEVENT(BUTTON4_PRESSED);
+- all4 |= BUTTON4_PRESSED;
+-#endif
+-#ifdef BUTTON4_CLICKED
+- GEN_MEVENT(BUTTON4_CLICKED);
+- all4 |= BUTTON4_CLICKED;
+-#endif
+-#ifdef BUTTON4_DOUBLE_CLICKED
+- GEN_MEVENT(BUTTON4_DOUBLE_CLICKED);
+- all4 |= BUTTON4_DOUBLE_CLICKED;
+-#endif
+-#ifdef BUTTON4_TRIPLE_CLICKED
+- GEN_MEVENT(BUTTON4_TRIPLE_CLICKED);
+- all4 |= BUTTON4_TRIPLE_CLICKED;
+-#endif
+-#ifdef BUTTON4_RESERVED_EVENT
+- GEN_MEVENT(BUTTON4_RESERVED_EVENT);
+- all4 |= BUTTON4_RESERVED_EVENT;
+-#endif
+-#ifdef BUTTON_CTRL
+- GEN_MEVENT(BUTTON_CTRL);
+-#endif
+-#ifdef BUTTON_SHIFT
+- GEN_MEVENT(BUTTON_SHIFT);
+-#endif
+-#ifdef BUTTON_ALT
+- GEN_MEVENT(BUTTON_ALT);
+-#endif
+-#ifdef REPORT_MOUSE_POSITION
+- GEN_MEVENT(REPORT_MOUSE_POSITION);
+-#endif
+-#ifdef ALL_MOUSE_EVENTS
+- GEN_MEVENT(ALL_MOUSE_EVENTS);
+-#endif
++ if (KEY_MIN == 256)
++ my_error("unexpected value for KEY_MIN: 256");
+
+- GEN_EVENT(BUTTON1_EVENTS, all1);
+- GEN_EVENT(BUTTON2_EVENTS, all2);
+- GEN_EVENT(BUTTON3_EVENTS, all3);
+- GEN_EVENT(BUTTON4_EVENTS, all4);
+-}
++ if (argc != 2)
++ my_error("Only one argument expected (DFT_ARG_SUFFIX)");
+
+-static void
+-wrap_one_var(const char *c_var,
+- const char *c_type,
+- const char *ada_func,
+- const char *ada_type)
+-{
+-#if USE_REENTRANT
+- /* must wrap variables */
++ printf("-- Generated by the C program %s (source " __FILE__ ").\n",
++ my_program_invocation_name);
++ printf("-- Do not edit this file directly.\n");
++ printf("-- The values provided here may vary on your system.\n");
+ printf("\n");
+- printf(" function %s return %s\n", ada_func, ada_type);
+- printf(" is\n");
+- printf(" function Result return %s;\n", c_type);
+- printf(" pragma Import (C, Result, \"" NCURSES_WRAP_PREFIX "%s\");\n", c_var);
+- printf(" begin\n");
+- if (strcmp(c_type, ada_type))
+- printf(" return %s (Result);\n", ada_type);
+- else
+- printf(" return Result;\n");
+- printf(" end %s;\n", ada_func);
+-#else
+- /* global variables are really global */
++ printf("with System;\n");
++ printf("package Terminal_Interface.Curses_Constants is\n");
++ printf(" pragma Pure;\n");
+ printf("\n");
+- printf(" function %s return %s\n", ada_func, ada_type);
+- printf(" is\n");
+- printf(" Result : %s;\n", c_type);
+- printf(" pragma Import (C, Result, \"%s\");\n", c_var);
+- printf(" begin\n");
+- if (strcmp(c_type, ada_type))
+- printf(" return %s (Result);\n", ada_type);
+- else
+- printf(" return Result;\n");
+- printf(" end %s;\n", ada_func);
+-#endif
+-}
+
+-#define GEN_PUBLIC_VAR(c_var, c_type, ada_func, ada_type) \
+- wrap_one_var(#c_var, #c_type, #ada_func, #ada_type)
+-
+-static void
+-gen_public_vars(void)
+-{
+- GEN_PUBLIC_VAR(stdscr, Window, Standard_Window, Window);
+- GEN_PUBLIC_VAR(curscr, Window, Current_Window, Window);
+- GEN_PUBLIC_VAR(LINES, C_Int, Lines, Line_Count);
+- GEN_PUBLIC_VAR(COLS, C_Int, Columns, Column_Count);
+- GEN_PUBLIC_VAR(TABSIZE, C_Int, Tab_Size, Natural);
+- GEN_PUBLIC_VAR(COLORS, C_Int, Number_Of_Colors, Natural);
+- GEN_PUBLIC_VAR(COLOR_PAIRS, C_Int, Number_Of_Color_Pairs, Natural);
+-}
+-
+-/*
+- * Output some comment lines indicating that the file is generated.
+- * The name parameter is the name of the facility to be used in
+- * the comment.
+- */
+-static void
+-prologue(const char *name)
+-{
+- printf("-- %s binding.\n", name);
+- printf("-- This module is generated. Please don't change it manually!\n");
+- printf("-- Run the generator instead.\n-- |");
+-
+- printf("define(`M4_BIT_ORDER',`%s_Order_First')",
++ printf(" DFT_ARG_SUFFIX : constant String := \"%s\";\n", argv[1]);
++ printf(" Bit_Order : constant System.Bit_Order := System.%s_Order_First;\n",
+ little_endian ? "Low" : "High");
+-}
++ print_constant("Sizeof_Bool", 8 * sizeof(bool));
+
+-/*
+- * Write the prologue for the curses facility and make sure that
+- * KEY_MIN and KEY_MAX are defined for the rest of this source.
+- */
+-static void
+-basedefs(void)
+-{
+- prologue("curses");
+-#ifndef KEY_MAX
+-# define KEY_MAX 0777
+-#endif
+- printf("define(`M4_KEY_MAX',`8#%o#')", KEY_MAX);
+-#ifndef KEY_MIN
+-# define KEY_MIN 0401
++ PRINT_NAMED_CONSTANT(OK);
++ PRINT_NAMED_CONSTANT(ERR);
++ printf(" pragma Warnings (Off); -- redefinition of Standard.True and False\n");
++ PRINT_NAMED_CONSTANT(TRUE);
++ PRINT_NAMED_CONSTANT(FALSE);
++ printf(" pragma Warnings (On);\n");
++
++ print_comment("Version of the ncurses library from extensions(3NCURSES)");
++ PRINT_NAMED_CONSTANT(NCURSES_VERSION_MAJOR);
++ PRINT_NAMED_CONSTANT(NCURSES_VERSION_MINOR);
++ printf(" Version : constant String := \"%d.%d\";\n",
++ NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR);
++
++ print_comment("Character non-color attributes from attr(3NCURSES)");
++ printf(" -- attr_t and chtype may be signed in C.\n");
++ printf(" type attr_t is mod 2 ** %lu;\n", (long unsigned)(8 * sizeof(attr_t)));
++ PRINT_NAMED_BITMASK(attr_t, A_CHARTEXT);
++ PRINT_NAMED_BITMASK(attr_t, A_COLOR);
++ PRINT_BITMASK(attr_t, "Attr", A_ATTRIBUTES & ~A_COLOR);
++ PRINT_NAMED_BITMASK(attr_t, A_STANDOUT);
++ PRINT_NAMED_BITMASK(attr_t, A_UNDERLINE);
++ PRINT_NAMED_BITMASK(attr_t, A_REVERSE);
++ PRINT_NAMED_BITMASK(attr_t, A_BLINK);
++ PRINT_NAMED_BITMASK(attr_t, A_DIM);
++ PRINT_NAMED_BITMASK(attr_t, A_BOLD);
++ PRINT_NAMED_BITMASK(attr_t, A_PROTECT);
++ PRINT_NAMED_BITMASK(attr_t, A_INVIS);
++ PRINT_NAMED_BITMASK(attr_t, A_ALTCHARSET);
++ PRINT_NAMED_BITMASK(attr_t, A_HORIZONTAL);
++ PRINT_NAMED_BITMASK(attr_t, A_LEFT);
++ PRINT_NAMED_BITMASK(attr_t, A_LOW);
++ PRINT_NAMED_BITMASK(attr_t, A_RIGHT);
++ PRINT_NAMED_BITMASK(attr_t, A_TOP);
++ PRINT_NAMED_BITMASK(attr_t, A_VERTICAL);
++ print_constant("chtype_Size", 8 * sizeof(chtype));
++
++ print_comment("predefined color numbers from color(3NCURSES)");
++ PRINT_NAMED_CONSTANT(COLOR_BLACK);
++ PRINT_NAMED_CONSTANT(COLOR_RED);
++ PRINT_NAMED_CONSTANT(COLOR_GREEN);
++ PRINT_NAMED_CONSTANT(COLOR_YELLOW);
++ PRINT_NAMED_CONSTANT(COLOR_BLUE);
++ PRINT_NAMED_CONSTANT(COLOR_MAGENTA);
++ PRINT_NAMED_CONSTANT(COLOR_CYAN);
++ PRINT_NAMED_CONSTANT(COLOR_WHITE);
++
++ print_comment("ETI return codes from ncurses.h");
++ PRINT_NAMED_CONSTANT(E_OK);
++ PRINT_NAMED_CONSTANT(E_SYSTEM_ERROR);
++ PRINT_NAMED_CONSTANT(E_BAD_ARGUMENT);
++ PRINT_NAMED_CONSTANT(E_POSTED);
++ PRINT_NAMED_CONSTANT(E_CONNECTED);
++ PRINT_NAMED_CONSTANT(E_BAD_STATE);
++ PRINT_NAMED_CONSTANT(E_NO_ROOM);
++ PRINT_NAMED_CONSTANT(E_NOT_POSTED);
++ PRINT_NAMED_CONSTANT(E_UNKNOWN_COMMAND);
++ PRINT_NAMED_CONSTANT(E_NO_MATCH);
++ PRINT_NAMED_CONSTANT(E_NOT_SELECTABLE);
++ PRINT_NAMED_CONSTANT(E_NOT_CONNECTED);
++ PRINT_NAMED_CONSTANT(E_REQUEST_DENIED);
++ PRINT_NAMED_CONSTANT(E_INVALID_FIELD);
++ PRINT_NAMED_CONSTANT(E_CURRENT);
++
++ print_comment("Input key codes not defined in any ncurses manpage");
++ PRINT_NAMED_CONSTANT(KEY_MIN);
++ PRINT_NAMED_CONSTANT(KEY_MAX);
++#ifdef KEY_CODE_YES
++ PRINT_NAMED_CONSTANT(KEY_CODE_YES);
+ #endif
+- if (KEY_MIN == 256)
+- {
+- fprintf(stderr, "Unexpected value for KEY_MIN: %d\n", KEY_MIN);
+- exit(1);
+- }
+- printf("define(`M4_SPECIAL_FIRST',`8#%o#')", KEY_MIN - 1);
+-}
+-
+-/*
+- * Write out the comment lines for the menu facility
+- */
+-static void
+-menu_basedefs(void)
+-{
+- prologue("menu");
+-}
+
+-/*
+- * Write out the comment lines for the form facility
+- */
+-static void
+-form_basedefs(void)
+-{
+- prologue("form");
+-}
++ print_comment("Input key codes from getch(3NCURSES)");
++ PRINT_NAMED_CONSTANT(KEY_BREAK);
++ PRINT_NAMED_CONSTANT(KEY_DOWN);
++ PRINT_NAMED_CONSTANT(KEY_UP);
++ PRINT_NAMED_CONSTANT(KEY_LEFT);
++ PRINT_NAMED_CONSTANT(KEY_RIGHT);
++ PRINT_NAMED_CONSTANT(KEY_HOME);
++ PRINT_NAMED_CONSTANT(KEY_BACKSPACE);
++ PRINT_NAMED_CONSTANT(KEY_F0);
++ print_constant("KEY_F1", KEY_F(1));
++ print_constant("KEY_F2", KEY_F(2));
++ print_constant("KEY_F3", KEY_F(3));
++ print_constant("KEY_F4", KEY_F(4));
++ print_constant("KEY_F5", KEY_F(5));
++ print_constant("KEY_F6", KEY_F(6));
++ print_constant("KEY_F7", KEY_F(7));
++ print_constant("KEY_F8", KEY_F(8));
++ print_constant("KEY_F9", KEY_F(9));
++ print_constant("KEY_F10", KEY_F(10));
++ print_constant("KEY_F11", KEY_F(11));
++ print_constant("KEY_F12", KEY_F(12));
++ print_constant("KEY_F13", KEY_F(13));
++ print_constant("KEY_F14", KEY_F(14));
++ print_constant("KEY_F15", KEY_F(15));
++ print_constant("KEY_F16", KEY_F(16));
++ print_constant("KEY_F17", KEY_F(17));
++ print_constant("KEY_F18", KEY_F(18));
++ print_constant("KEY_F19", KEY_F(19));
++ print_constant("KEY_F20", KEY_F(20));
++ print_constant("KEY_F21", KEY_F(21));
++ print_constant("KEY_F22", KEY_F(22));
++ print_constant("KEY_F23", KEY_F(23));
++ print_constant("KEY_F24", KEY_F(24));
++ PRINT_NAMED_CONSTANT(KEY_DL);
++ PRINT_NAMED_CONSTANT(KEY_IL);
++ PRINT_NAMED_CONSTANT(KEY_DC);
++ PRINT_NAMED_CONSTANT(KEY_IC);
++ PRINT_NAMED_CONSTANT(KEY_EIC);
++ PRINT_NAMED_CONSTANT(KEY_CLEAR);
++ PRINT_NAMED_CONSTANT(KEY_EOS);
++ PRINT_NAMED_CONSTANT(KEY_EOL);
++ PRINT_NAMED_CONSTANT(KEY_SF);
++ PRINT_NAMED_CONSTANT(KEY_SR);
++ PRINT_NAMED_CONSTANT(KEY_NPAGE);
++ PRINT_NAMED_CONSTANT(KEY_PPAGE);
++ PRINT_NAMED_CONSTANT(KEY_STAB);
++ PRINT_NAMED_CONSTANT(KEY_CTAB);
++ PRINT_NAMED_CONSTANT(KEY_CATAB);
++ PRINT_NAMED_CONSTANT(KEY_ENTER);
++ PRINT_NAMED_CONSTANT(KEY_SRESET);
++ PRINT_NAMED_CONSTANT(KEY_RESET);
++ PRINT_NAMED_CONSTANT(KEY_PRINT);
++ PRINT_NAMED_CONSTANT(KEY_LL);
++ PRINT_NAMED_CONSTANT(KEY_A1);
++ PRINT_NAMED_CONSTANT(KEY_A3);
++ PRINT_NAMED_CONSTANT(KEY_B2);
++ PRINT_NAMED_CONSTANT(KEY_C1);
++ PRINT_NAMED_CONSTANT(KEY_C3);
++ PRINT_NAMED_CONSTANT(KEY_BTAB);
++ PRINT_NAMED_CONSTANT(KEY_BEG);
++ PRINT_NAMED_CONSTANT(KEY_CANCEL);
++ PRINT_NAMED_CONSTANT(KEY_CLOSE);
++ PRINT_NAMED_CONSTANT(KEY_COMMAND);
++ PRINT_NAMED_CONSTANT(KEY_COPY);
++ PRINT_NAMED_CONSTANT(KEY_CREATE);
++ PRINT_NAMED_CONSTANT(KEY_END);
++ PRINT_NAMED_CONSTANT(KEY_EXIT);
++ PRINT_NAMED_CONSTANT(KEY_FIND);
++ PRINT_NAMED_CONSTANT(KEY_HELP);
++ PRINT_NAMED_CONSTANT(KEY_MARK);
++ PRINT_NAMED_CONSTANT(KEY_MESSAGE);
++ PRINT_NAMED_CONSTANT(KEY_MOVE);
++ PRINT_NAMED_CONSTANT(KEY_NEXT);
++ PRINT_NAMED_CONSTANT(KEY_OPEN);
++ PRINT_NAMED_CONSTANT(KEY_OPTIONS);
++ PRINT_NAMED_CONSTANT(KEY_PREVIOUS);
++ PRINT_NAMED_CONSTANT(KEY_REDO);
++ PRINT_NAMED_CONSTANT(KEY_REFERENCE);
++ PRINT_NAMED_CONSTANT(KEY_REFRESH);
++ PRINT_NAMED_CONSTANT(KEY_REPLACE);
++ PRINT_NAMED_CONSTANT(KEY_RESTART);
++ PRINT_NAMED_CONSTANT(KEY_RESUME);
++ PRINT_NAMED_CONSTANT(KEY_SAVE);
++ PRINT_NAMED_CONSTANT(KEY_SBEG);
++ PRINT_NAMED_CONSTANT(KEY_SCANCEL);
++ PRINT_NAMED_CONSTANT(KEY_SCOMMAND);
++ PRINT_NAMED_CONSTANT(KEY_SCOPY);
++ PRINT_NAMED_CONSTANT(KEY_SCREATE);
++ PRINT_NAMED_CONSTANT(KEY_SDC);
++ PRINT_NAMED_CONSTANT(KEY_SDL);
++ PRINT_NAMED_CONSTANT(KEY_SELECT);
++ PRINT_NAMED_CONSTANT(KEY_SEND);
++ PRINT_NAMED_CONSTANT(KEY_SEOL);
++ PRINT_NAMED_CONSTANT(KEY_SEXIT);
++ PRINT_NAMED_CONSTANT(KEY_SFIND);
++ PRINT_NAMED_CONSTANT(KEY_SHELP);
++ PRINT_NAMED_CONSTANT(KEY_SHOME);
++ PRINT_NAMED_CONSTANT(KEY_SIC);
++ PRINT_NAMED_CONSTANT(KEY_SLEFT);
++ PRINT_NAMED_CONSTANT(KEY_SMESSAGE);
++ PRINT_NAMED_CONSTANT(KEY_SMOVE);
++ PRINT_NAMED_CONSTANT(KEY_SNEXT);
++ PRINT_NAMED_CONSTANT(KEY_SOPTIONS);
++ PRINT_NAMED_CONSTANT(KEY_SPREVIOUS);
++ PRINT_NAMED_CONSTANT(KEY_SPRINT);
++ PRINT_NAMED_CONSTANT(KEY_SREDO);
++ PRINT_NAMED_CONSTANT(KEY_SREPLACE);
++ PRINT_NAMED_CONSTANT(KEY_SRIGHT);
++ PRINT_NAMED_CONSTANT(KEY_SRSUME);
++ PRINT_NAMED_CONSTANT(KEY_SSAVE);
++ PRINT_NAMED_CONSTANT(KEY_SSUSPEND);
++ PRINT_NAMED_CONSTANT(KEY_SUNDO);
++ PRINT_NAMED_CONSTANT(KEY_SUSPEND);
++ PRINT_NAMED_CONSTANT(KEY_UNDO);
++ PRINT_NAMED_CONSTANT(KEY_MOUSE);
++ PRINT_NAMED_CONSTANT(KEY_RESIZE);
++
++ print_comment("alternate character codes (ACS) from addch(3NCURSES)");
++#define PRINT_ACS(name) print_constant (#name, &name - &acs_map[0])
++ PRINT_ACS(ACS_ULCORNER);
++ PRINT_ACS(ACS_LLCORNER);
++ PRINT_ACS(ACS_URCORNER);
++ PRINT_ACS(ACS_LRCORNER);
++ PRINT_ACS(ACS_LTEE);
++ PRINT_ACS(ACS_RTEE);
++ PRINT_ACS(ACS_BTEE);
++ PRINT_ACS(ACS_TTEE);
++ PRINT_ACS(ACS_HLINE);
++ PRINT_ACS(ACS_VLINE);
++ PRINT_ACS(ACS_PLUS);
++ PRINT_ACS(ACS_S1);
++ PRINT_ACS(ACS_S9);
++ PRINT_ACS(ACS_DIAMOND);
++ PRINT_ACS(ACS_CKBOARD);
++ PRINT_ACS(ACS_DEGREE);
++ PRINT_ACS(ACS_PLMINUS);
++ PRINT_ACS(ACS_BULLET);
++ PRINT_ACS(ACS_LARROW);
++ PRINT_ACS(ACS_RARROW);
++ PRINT_ACS(ACS_DARROW);
++ PRINT_ACS(ACS_UARROW);
++ PRINT_ACS(ACS_BOARD);
++ PRINT_ACS(ACS_LANTERN);
++ PRINT_ACS(ACS_BLOCK);
++ PRINT_ACS(ACS_S3);
++ PRINT_ACS(ACS_S7);
++ PRINT_ACS(ACS_LEQUAL);
++ PRINT_ACS(ACS_GEQUAL);
++ PRINT_ACS(ACS_PI);
++ PRINT_ACS(ACS_NEQUAL);
++ PRINT_ACS(ACS_STERLING);
++
++ print_comment("Menu_Options from opts(3MENU)");
++ PRINT_NAMED_BITMASK(Menu_Options, O_ONEVALUE);
++ PRINT_NAMED_BITMASK(Menu_Options, O_SHOWDESC);
++ PRINT_NAMED_BITMASK(Menu_Options, O_ROWMAJOR);
++ PRINT_NAMED_BITMASK(Menu_Options, O_IGNORECASE);
++ PRINT_NAMED_BITMASK(Menu_Options, O_SHOWMATCH);
++ PRINT_NAMED_BITMASK(Menu_Options, O_NONCYCLIC);
++ print_constant("Menu_Options_Size", 8 * sizeof(Menu_Options));
++
++ print_comment("Item_Options from menu_opts(3MENU)");
++ PRINT_NAMED_BITMASK(Item_Options, O_SELECTABLE);
++ print_constant("Item_Options_Size", 8 * sizeof(Item_Options));
++
++ print_comment("Field_Options from field_opts(3FORM)");
++ PRINT_NAMED_BITMASK(Field_Options, O_VISIBLE);
++ PRINT_NAMED_BITMASK(Field_Options, O_ACTIVE);
++ PRINT_NAMED_BITMASK(Field_Options, O_PUBLIC);
++ PRINT_NAMED_BITMASK(Field_Options, O_EDIT);
++ PRINT_NAMED_BITMASK(Field_Options, O_WRAP);
++ PRINT_NAMED_BITMASK(Field_Options, O_BLANK);
++ PRINT_NAMED_BITMASK(Field_Options, O_AUTOSKIP);
++ PRINT_NAMED_BITMASK(Field_Options, O_NULLOK);
++ PRINT_NAMED_BITMASK(Field_Options, O_PASSOK);
++ PRINT_NAMED_BITMASK(Field_Options, O_STATIC);
++ print_constant("Field_Options_Size", 8 * sizeof(Field_Options));
++
++ print_comment("Field_Options from opts(3FORM)");
++ PRINT_NAMED_BITMASK(Field_Options, O_NL_OVERLOAD);
++ PRINT_NAMED_BITMASK(Field_Options, O_BS_OVERLOAD);
++ /* Field_Options_Size is defined below */
++
++ print_comment("MEVENT structure from mouse(3NCURSES)");
++ STRUCT_OFFSET(MEVENT, id);
++ STRUCT_OFFSET(MEVENT, x);
++ STRUCT_OFFSET(MEVENT, y);
++ STRUCT_OFFSET(MEVENT, z);
++ STRUCT_OFFSET(MEVENT, bstate);
++ print_constant("MEVENT_Size", 8 * sizeof(MEVENT));
+
+-/*
+- * Write out the comment lines for the mouse facility
+- */
+-static void
+-mouse_basedefs(void)
+-{
+- prologue("mouse");
+-}
+-
+-/*
+- * Write the definition of a single color
+- */
+-static void
+-color_def(const char *name, int value)
+-{
+- printf(" %-16s : constant Color_Number := %d;\n", name, value);
+-}
++ print_comment("mouse events from mouse(3NCURSES)");
++ {
++ mmask_t all_events;
+
+-/*
+- * Generate all color definitions
+- */
+-static void
+-gen_color(void)
+-{
+-#if HAVE_USE_DEFAULT_COLORS
+- color_def("Default_Color", -1);
+-#endif
+-#ifdef COLOR_BLACK
+- color_def("Black", COLOR_BLACK);
+-#endif
+-#ifdef COLOR_RED
+- color_def("Red", COLOR_RED);
+-#endif
+-#ifdef COLOR_GREEN
+- color_def("Green", COLOR_GREEN);
+-#endif
+-#ifdef COLOR_YELLOW
+- color_def("Yellow", COLOR_YELLOW);
+-#endif
+-#ifdef COLOR_BLUE
+- color_def("Blue", COLOR_BLUE);
+-#endif
+-#ifdef COLOR_MAGENTA
+- color_def("Magenta", COLOR_MAGENTA);
+-#endif
+-#ifdef COLOR_CYAN
+- color_def("Cyan", COLOR_CYAN);
+-#endif
+-#ifdef COLOR_WHITE
+- color_def("White", COLOR_WHITE);
++#define PRINT_MOUSE_EVENT(event) \
++ print_constant (#event, event); \
++ all_events |= event
++
++ all_events = 0;
++ PRINT_MOUSE_EVENT(BUTTON1_RELEASED);
++ PRINT_MOUSE_EVENT(BUTTON1_PRESSED);
++ PRINT_MOUSE_EVENT(BUTTON1_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON1_DOUBLE_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON1_TRIPLE_CLICKED);
++#ifdef BUTTON1_RESERVED_EVENT
++ PRINT_MOUSE_EVENT(BUTTON1_RESERVED_EVENT);
+ #endif
+-}
+-
+-/*
+- * Generate the linker options for the base facility
+- */
+-static void
+-gen_linkopts(void)
+-{
+- printf(" pragma Linker_Options (\"-lncurses%s\");\n", model);
+-}
++ print_constant("all_events_button_1", (long)all_events);
+
+-/*
+- * Generate the linker options for the menu facility
+- */
+-static void
+-gen_menu_linkopts(void)
+-{
+- printf(" pragma Linker_Options (\"-lmenu%s\");\n", model);
+-}
+-
+-/*
+- * Generate the linker options for the form facility
+- */
+-static void
+-gen_form_linkopts(void)
+-{
+- printf(" pragma Linker_Options (\"-lform%s\");\n", model);
+-}
+-
+-/*
+- * Generate the linker options for the panel facility
+- */
+-static void
+-gen_panel_linkopts(void)
+-{
+- printf(" pragma Linker_Options (\"-lpanel%s\");\n", model);
+-}
+-
+-static void
+-gen_version_info(void)
+-{
+- static const char *v1 =
+- " NC_Major_Version : constant := %d; -- Major version of the library\n";
+- static const char *v2 =
+- " NC_Minor_Version : constant := %d; -- Minor version of the library\n";
+- static const char *v3 =
+- " NC_Version : constant String := %c%d.%d%c; -- Version of library\n";
+-
+- printf(v1, NCURSES_VERSION_MAJOR);
+- printf(v2, NCURSES_VERSION_MINOR);
+- printf(v3, '"', NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR, '"');
+-}
+-
+-static int
+-eti_gen(char *buf, int code, const char *name, int *etimin, int *etimax)
+-{
+- sprintf(buf, " E_%-16s : constant Eti_Error := %d;\n", name, code);
+- if (code < *etimin)
+- *etimin = code;
+- if (code > *etimax)
+- *etimax = code;
+- return (int)strlen(buf);
+-}
+-
+-static void
+-gen_offsets(void)
+-{
+- const char *s_bool = "";
+-
+- if (sizeof(bool) == sizeof(char))
+- {
+- s_bool = "char";
+- }
+- else if (sizeof(bool) == sizeof(short))
+- {
+- s_bool = "short";
+- }
+- else if (sizeof(bool) == sizeof(int))
+- {
+- s_bool = "int";
+- }
+- printf(" Sizeof%-*s : constant Natural := %2ld; -- %s\n",
+- 12, "_bool", (long)sizeof(bool), "bool");
+-
+- printf(" type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n", s_bool);
+-}
+-
+-/*
+- * main() expects two arguments on the commandline, both single characters.
+- * The first character denotes the facility for which we generate output.
+- * Possible values are
+- * B - Base
+- * M - Menus
+- * F - Forms
+- * P - Pointer Device (Mouse)
+- * E - ETI base definitions
+- *
+- * The second character then denotes the specific output that should be
+- * generated for the selected facility.
+- */
+-int
+-main(int argc, char *argv[])
+-{
+- int x = 0x12345678;
+- char *s = (char *)&x;
+-
+- if (*s == 0x78)
+- little_endian = 1;
+-
+- if (argc != 4)
+- exit(1);
+- model = *++argv;
+-
+- switch (argv[1][0])
+- {
+- /* --------------------------------------------------------------- */
+- case 'B': /* The Base facility */
+- switch (argv[2][0])
+- {
+- case 'A': /* chtype translation into Ada95 record type */
+- gen_attr_set("Character_Attribute_Set");
+- break;
+- case 'B': /* write some initial comment lines */
+- basedefs();
+- break;
+- case 'C': /* generate color constants */
+- gen_color();
+- break;
+- case 'D': /* generate displacements of fields in WINDOW struct. */
+- gen_offsets();
+- break;
+- case 'E': /* generate Mouse Event codes */
+- gen_mouse_events();
+- break;
+- case 'K': /* translation of keycodes */
+- gen_keydefs(0);
+- break;
+- case 'L': /* generate the Linker_Options pragma */
+- gen_linkopts();
+- break;
+- case 'M': /* generate constants for the ACS characters */
+- gen_acs();
+- break;
+- case 'O': /* generate definitions of the old key code names */
+- gen_keydefs(1);
+- break;
+- case 'P': /* generate definitions of the public variables */
+- gen_public_vars();
+- break;
+- case 'R': /* generate representation clause for Attributed character */
+- gen_chtype_rep("Attributed_Character");
+- break;
+- case 'T': /* generate the Trace info */
+- gen_trace("Trace_Attribute_Set");
+- break;
+- case 'V': /* generate version info */
+- gen_version_info();
+- break;
+- default:
+- break;
+- }
+- break;
+- /* --------------------------------------------------------------- */
+- case 'M': /* The Menu facility */
+- switch (argv[2][0])
+- {
+- case 'R': /* generate representation clause for Menu_Option_Set */
+- gen_menu_opt_rep("Menu_Option_Set");
+- break;
+- case 'B': /* write some initial comment lines */
+- menu_basedefs();
+- break;
+- case 'L': /* generate the Linker_Options pragma */
+- gen_menu_linkopts();
+- break;
+- case 'I': /* generate representation clause for Item_Option_Set */
+- gen_item_opt_rep("Item_Option_Set");
+- break;
+- default:
+- break;
+- }
+- break;
+- /* --------------------------------------------------------------- */
+- case 'F': /* The Form facility */
+- switch (argv[2][0])
+- {
+- case 'R': /* generate representation clause for Form_Option_Set */
+- gen_form_opt_rep("Form_Option_Set");
+- break;
+- case 'B': /* write some initial comment lines */
+- form_basedefs();
+- break;
+- case 'L': /* generate the Linker_Options pragma */
+- gen_form_linkopts();
+- break;
+- case 'I': /* generate representation clause for Field_Option_Set */
+- gen_field_opt_rep("Field_Option_Set");
+- break;
+- default:
+- break;
+- }
+- break;
+- /* --------------------------------------------------------------- */
+- case 'P': /* The Pointer(=Mouse) facility */
+- switch (argv[2][0])
+- {
+- case 'B': /* write some initial comment lines */
+- mouse_basedefs();
+- break;
+- case 'M': /* generate representation clause for Mouse_Event */
+- gen_mrep_rep("Mouse_Event");
+- break;
+- case 'L': /* generate the Linker_Options pragma */
+- gen_panel_linkopts();
+- break;
+- default:
+- break;
+- }
+- break;
+- /* --------------------------------------------------------------- */
+- case 'E': /* chtype size detection */
+- switch (argv[2][0])
+- {
+- case 'C':
+- {
+- const char *fmt = " type C_Chtype is new %s;\n";
+- const char *afmt = " type C_AttrType is new %s;\n";
+-
+- if (sizeof(chtype) == sizeof(int))
+- {
+- if (sizeof(int) == sizeof(long))
+- printf(fmt, "C_ULong");
+-
+- else
+- printf(fmt, "C_UInt");
+- }
+- else if (sizeof(chtype) == sizeof(long))
+- {
+- printf(fmt, "C_ULong");
+- }
+- else
+- printf("Error\n");
+-
+- if (sizeof(attr_t) == sizeof(int))
+- {
+- if (sizeof(int) == sizeof(long))
+- printf(afmt, "C_ULong");
+-
+- else
+- printf(afmt, "C_UInt");
+- }
+- else if (sizeof(attr_t) == sizeof(long))
+- {
+- printf(afmt, "C_ULong");
+- }
+- else
+- printf("Error\n");
+-
+- printf("define(`CF_CURSES_OK',`%d')", OK);
+- printf("define(`CF_CURSES_ERR',`%d')", ERR);
+- printf("define(`CF_CURSES_TRUE',`%d')", TRUE);
+- printf("define(`CF_CURSES_FALSE',`%d')", FALSE);
+- }
+- break;
+- case 'E':
+- {
+- char *buf = (char *)malloc(2048);
+- char *p = buf;
+- int etimin = E_OK;
+- int etimax = E_OK;
+-
+- if (p)
+- {
+- p += eti_gen(p, E_OK, "Ok", &etimin, &etimax);
+- p += eti_gen(p, E_SYSTEM_ERROR, "System_Error", &etimin, &etimax);
+- p += eti_gen(p, E_BAD_ARGUMENT, "Bad_Argument", &etimin, &etimax);
+- p += eti_gen(p, E_POSTED, "Posted", &etimin, &etimax);
+- p += eti_gen(p, E_CONNECTED, "Connected", &etimin, &etimax);
+- p += eti_gen(p, E_BAD_STATE, "Bad_State", &etimin, &etimax);
+- p += eti_gen(p, E_NO_ROOM, "No_Room", &etimin, &etimax);
+- p += eti_gen(p, E_NOT_POSTED, "Not_Posted", &etimin, &etimax);
+- p += eti_gen(p, E_UNKNOWN_COMMAND,
+- "Unknown_Command", &etimin, &etimax);
+- p += eti_gen(p, E_NO_MATCH, "No_Match", &etimin, &etimax);
+- p += eti_gen(p, E_NOT_SELECTABLE,
+- "Not_Selectable", &etimin, &etimax);
+- p += eti_gen(p, E_NOT_CONNECTED,
+- "Not_Connected", &etimin, &etimax);
+- p += eti_gen(p, E_REQUEST_DENIED,
+- "Request_Denied", &etimin, &etimax);
+- p += eti_gen(p, E_INVALID_FIELD,
+- "Invalid_Field", &etimin, &etimax);
+- p += eti_gen(p, E_CURRENT,
+- "Current", &etimin, &etimax);
+- }
+- printf(" subtype Eti_Error is C_Int range %d .. %d;\n\n",
+- etimin, etimax);
+- printf("%s", buf);
+- }
+- break;
+- default:
+- break;
+- }
+- break;
+- /* --------------------------------------------------------------- */
+- case 'V': /* plain version dump */
+- {
+- switch (argv[2][0])
+- {
+- case '1': /* major version */
+-#ifdef NCURSES_VERSION_MAJOR
+- printf("%d", NCURSES_VERSION_MAJOR);
++ all_events = 0;
++ PRINT_MOUSE_EVENT(BUTTON2_RELEASED);
++ PRINT_MOUSE_EVENT(BUTTON2_PRESSED);
++ PRINT_MOUSE_EVENT(BUTTON2_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON2_DOUBLE_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON2_TRIPLE_CLICKED);
++#ifdef BUTTON2_RESERVED_EVENT
++ PRINT_MOUSE_EVENT(BUTTON2_RESERVED_EVENT);
+ #endif
+- break;
+- case '2': /* minor version */
+-#ifdef NCURSES_VERSION_MINOR
+- printf("%d", NCURSES_VERSION_MINOR);
++ print_constant("all_events_button_2", (long)all_events);
++
++ all_events = 0;
++ PRINT_MOUSE_EVENT(BUTTON3_RELEASED);
++ PRINT_MOUSE_EVENT(BUTTON3_PRESSED);
++ PRINT_MOUSE_EVENT(BUTTON3_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON3_DOUBLE_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON3_TRIPLE_CLICKED);
++#ifdef BUTTON3_RESERVED_EVENT
++ PRINT_MOUSE_EVENT(BUTTON3_RESERVED_EVENT);
+ #endif
+- break;
+- case '3': /* patch level */
+-#ifdef NCURSES_VERSION_PATCH
+- printf("%d", NCURSES_VERSION_PATCH);
++ print_constant("all_events_button_3", (long)all_events);
++
++ all_events = 0;
++ PRINT_MOUSE_EVENT(BUTTON4_RELEASED);
++ PRINT_MOUSE_EVENT(BUTTON4_PRESSED);
++ PRINT_MOUSE_EVENT(BUTTON4_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON4_DOUBLE_CLICKED);
++ PRINT_MOUSE_EVENT(BUTTON4_TRIPLE_CLICKED);
++#ifdef BUTTON4_RESERVED_EVENT
++ PRINT_MOUSE_EVENT(BUTTON4_RESERVED_EVENT);
+ #endif
+- break;
+- default:
+- break;
+- }
+- }
+- break;
+- /* --------------------------------------------------------------- */
+- default:
+- break;
+- }
+- return 0;
++ print_constant("all_events_button_4", (long)all_events);
++ }
++ PRINT_NAMED_CONSTANT(BUTTON_CTRL);
++ PRINT_NAMED_CONSTANT(BUTTON_SHIFT);
++ PRINT_NAMED_CONSTANT(BUTTON_ALT);
++ PRINT_NAMED_CONSTANT(REPORT_MOUSE_POSITION);
++ PRINT_NAMED_CONSTANT(ALL_MOUSE_EVENTS);
++
++ print_comment("trace selection from trace(3NCURSES)");
++ PRINT_NAMED_BITMASK(UINT, TRACE_TIMES);
++ PRINT_NAMED_BITMASK(UINT, TRACE_TPUTS);
++ PRINT_NAMED_BITMASK(UINT, TRACE_UPDATE);
++ PRINT_NAMED_BITMASK(UINT, TRACE_MOVE);
++ PRINT_NAMED_BITMASK(UINT, TRACE_CHARPUT);
++ PRINT_NAMED_BITMASK(UINT, TRACE_CALLS);
++ PRINT_NAMED_BITMASK(UINT, TRACE_VIRTPUT);
++ PRINT_NAMED_BITMASK(UINT, TRACE_IEVENT);
++ PRINT_NAMED_BITMASK(UINT, TRACE_BITS);
++ PRINT_NAMED_BITMASK(UINT, TRACE_ICALLS);
++ PRINT_NAMED_BITMASK(UINT, TRACE_CCALLS);
++ PRINT_NAMED_BITMASK(UINT, TRACE_DATABASE);
++ PRINT_NAMED_BITMASK(UINT, TRACE_ATTRS);
++ print_constant("Trace_Size", 8 * sizeof(UINT));
++
++ printf("end Terminal_Interface.Curses_Constants;\n");
++ exit(EXIT_SUCCESS);
+ }
+Index: Ada95/gen/terminal_interface-curses-aux.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-aux.ads.m4 2011-03-19 12:37:41.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-aux.ads.m4 2014-05-24 21:31:05.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,14 +38,12 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.18 $
++-- $Revision: 1.23 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+-include(`Base_Defs')
+ with System;
+ with Interfaces.C;
+ with Interfaces.C.Strings; use Interfaces.C.Strings;
+-with Unchecked_Conversion;
+
+ package Terminal_Interface.Curses.Aux is
+ pragma Preelaborate (Terminal_Interface.Curses.Aux);
+@@ -60,39 +58,39 @@
+ subtype C_ULong is Interfaces.C.unsigned_long;
+ subtype C_Char_Ptr is Interfaces.C.Strings.chars_ptr;
+ type C_Void_Ptr is new System.Address;
+-include(`Chtype_Def')
++
+ -- This is how those constants are defined in ncurses. I see them also
+ -- exactly like this in all ETI implementations I ever tested. So it
+ -- could be that this is quite general, but please check with your curses.
+ -- This is critical, because curses sometime mixes Boolean returns with
+ -- returning an error status.
+- Curses_Ok : constant C_Int := CF_CURSES_OK;
+- Curses_Err : constant C_Int := CF_CURSES_ERR;
++ Curses_Ok : constant C_Int := Curses_Constants.OK;
++ Curses_Err : constant C_Int := Curses_Constants.ERR;
+
+- Curses_True : constant C_Int := CF_CURSES_TRUE;
+- Curses_False : constant C_Int := CF_CURSES_FALSE;
++ Curses_True : constant C_Int := Curses_Constants.TRUE;
++ Curses_False : constant C_Int := Curses_Constants.FALSE;
+
+ -- Eti_Error: type for error codes returned by the menu and form subsystem
+-include(`Eti_Defs')
++ type Eti_Error is
++ (E_Current,
++ E_Invalid_Field,
++ E_Request_Denied,
++ E_Not_Connected,
++ E_Not_Selectable,
++ E_No_Match,
++ E_Unknown_Command,
++ E_Not_Posted,
++ E_No_Room,
++ E_Bad_State,
++ E_Connected,
++ E_Posted,
++ E_Bad_Argument,
++ E_System_Error,
++ E_Ok);
++
+ procedure Eti_Exception (Code : Eti_Error);
+- -- Dispatch the error code and raise the appropriate exception
+- --
+- --
+- -- Some helpers
+- function Chtype_To_AttrChar is new
+- Unchecked_Conversion (Source => C_Chtype,
+- Target => Attributed_Character);
+- function AttrChar_To_Chtype is new
+- Unchecked_Conversion (Source => Attributed_Character,
+- Target => C_Chtype);
+-
+- function AttrChar_To_AttrType is new
+- Unchecked_Conversion (Source => Attributed_Character,
+- Target => C_AttrType);
+-
+- function AttrType_To_AttrChar is new
+- Unchecked_Conversion (Source => C_AttrType,
+- Target => Attributed_Character);
++ -- Do nothing if Code = E_Ok.
++ -- Else dispatch the error code and raise the appropriate exception.
+
+ procedure Fill_String (Cp : chars_ptr;
+ Str : out String);
+@@ -102,4 +100,23 @@
+ function Fill_String (Cp : chars_ptr) return String;
+ -- Same but as function.
+
++private
++ for Eti_Error'Size use C_Int'Size;
++ pragma Convention (C, Eti_Error);
++ for Eti_Error use
++ (E_Current => Curses_Constants.E_CURRENT,
++ E_Invalid_Field => Curses_Constants.E_INVALID_FIELD,
++ E_Request_Denied => Curses_Constants.E_REQUEST_DENIED,
++ E_Not_Connected => Curses_Constants.E_NOT_CONNECTED,
++ E_Not_Selectable => Curses_Constants.E_NOT_SELECTABLE,
++ E_No_Match => Curses_Constants.E_NO_MATCH,
++ E_Unknown_Command => Curses_Constants.E_UNKNOWN_COMMAND,
++ E_Not_Posted => Curses_Constants.E_NOT_POSTED,
++ E_No_Room => Curses_Constants.E_NO_ROOM,
++ E_Bad_State => Curses_Constants.E_BAD_STATE,
++ E_Connected => Curses_Constants.E_CONNECTED,
++ E_Posted => Curses_Constants.E_POSTED,
++ E_Bad_Argument => Curses_Constants.E_BAD_ARGUMENT,
++ E_System_Error => Curses_Constants.E_SYSTEM_ERROR,
++ E_Ok => Curses_Constants.E_OK);
+ end Terminal_Interface.Curses.Aux;
+Index: Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 2011-03-18 23:10:43.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 2014-05-24 21:31:05.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,10 +38,11 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.16 $
++-- $Revision: 1.19 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Interfaces.C;
++with Terminal_Interface.Curses.Aux;
+
+ package Terminal_Interface.Curses.Forms.Field_Types is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
+@@ -227,12 +228,12 @@
+ Mak : Makearg_Function := Make_Arg'Access;
+ Cop : Copyarg_Function := Copy_Arg'Access;
+ Fre : Freearg_Function := Free_Arg'Access)
+- return C_Int;
++ return Aux.Eti_Error;
+ pragma Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
+
+ function Set_Fieldtype_Choice (Cft : C_Field_Type;
+ Next, Prev : Choice_Function)
+- return C_Int;
++ return Aux.Eti_Error;
+ pragma Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
+
+ end Terminal_Interface.Curses.Forms.Field_Types;
+Index: Ada95/gen/terminal_interface-curses-forms.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-forms.ads.m4 2009-12-26 17:31:35.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-forms.ads.m4 2014-05-24 21:31:57.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,18 +38,17 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.30 $
+--- $Date: 2009/12/26 17:31:35 $
++-- $Revision: 1.33 $
++-- $Date: 2014/05/24 21:31:57 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+-include(`Form_Base_Defs')
+ with System;
+ with Ada.Characters.Latin_1;
+
+ package Terminal_Interface.Curses.Forms is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms);
+-include(`Form_Linker_Options')dnl
+-include(`Linker_Options')
++ pragma Linker_Options ("-lform" & Curses_Constants.DFT_ARG_SUFFIX);
++
+ Space : Character renames Ada.Characters.Latin_1.Space;
+
+ type Field is private;
+@@ -63,18 +62,68 @@
+ Center,
+ Right);
+
++ type Field_Option_Set is
++ record
++ Visible : Boolean;
++ Active : Boolean;
++ Public : Boolean;
++ Edit : Boolean;
++ Wrap : Boolean;
++ Blank : Boolean;
++ Auto_Skip : Boolean;
++ Null_Ok : Boolean;
++ Pass_Ok : Boolean;
++ Static : Boolean;
++ end record;
++ pragma Convention (C_Pass_By_Copy, Field_Option_Set);
++
++ for Field_Option_Set use
++ record
++ Visible at 0 range Curses_Constants.O_VISIBLE_First
++ .. Curses_Constants.O_VISIBLE_Last;
++ Active at 0 range Curses_Constants.O_ACTIVE_First
++ .. Curses_Constants.O_ACTIVE_Last;
++ Public at 0 range Curses_Constants.O_PUBLIC_First
++ .. Curses_Constants.O_PUBLIC_Last;
++ Edit at 0 range Curses_Constants.O_EDIT_First
++ .. Curses_Constants.O_EDIT_Last;
++ Wrap at 0 range Curses_Constants.O_WRAP_First
++ .. Curses_Constants.O_WRAP_Last;
++ Blank at 0 range Curses_Constants.O_BLANK_First
++ .. Curses_Constants.O_BLANK_Last;
++ Auto_Skip at 0 range Curses_Constants.O_AUTOSKIP_First
++ .. Curses_Constants.O_AUTOSKIP_Last;
++ Null_Ok at 0 range Curses_Constants.O_NULLOK_First
++ .. Curses_Constants.O_NULLOK_Last;
++ Pass_Ok at 0 range Curses_Constants.O_PASSOK_First
++ .. Curses_Constants.O_PASSOK_Last;
++ Static at 0 range Curses_Constants.O_STATIC_First
++ .. Curses_Constants.O_STATIC_Last;
++ end record;
+ pragma Warnings (Off);
+-include(`Field_Rep')Dnl
+-
++ for Field_Option_Set'Size use Curses_Constants.Field_Options_Size;
+ pragma Warnings (On);
+
+ function Default_Field_Options return Field_Option_Set;
+ -- The initial defaults for the field options.
+ pragma Inline (Default_Field_Options);
+
++ type Form_Option_Set is
++ record
++ NL_Overload : Boolean;
++ BS_Overload : Boolean;
++ end record;
++ pragma Convention (C_Pass_By_Copy, Form_Option_Set);
++
++ for Form_Option_Set use
++ record
++ NL_Overload at 0 range Curses_Constants.O_NL_OVERLOAD_First
++ .. Curses_Constants.O_NL_OVERLOAD_Last;
++ BS_Overload at 0 range Curses_Constants.O_BS_OVERLOAD_First
++ .. Curses_Constants.O_BS_OVERLOAD_Last;
++ end record;
+ pragma Warnings (Off);
+-include(`Form_Opt_Rep')Dnl
+-
++ for Form_Option_Set'Size use Curses_Constants.Field_Options_Size;
+ pragma Warnings (On);
+
+ function Default_Form_Options return Form_Option_Set;
+Index: Ada95/gen/terminal_interface-curses-menus.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-menus.ads.m4 2009-12-26 18:35:22.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-menus.ads.m4 2014-05-24 21:31:57.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,18 +38,17 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.28 $
+--- $Date: 2009/12/26 18:35:22 $
++-- $Revision: 1.31 $
++-- $Date: 2014/05/24 21:31:57 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+-include(`Menu_Base_Defs')
+ with System;
+ with Ada.Characters.Latin_1;
+
+ package Terminal_Interface.Curses.Menus is
+ pragma Preelaborate (Terminal_Interface.Curses.Menus);
+-include(`Menu_Linker_Options')dnl
+-include(`Linker_Options')
++ pragma Linker_Options ("-lmenu" & Curses_Constants.DFT_ARG_SUFFIX);
++
+ Space : Character renames Ada.Characters.Latin_1.Space;
+
+ type Item is private;
+@@ -116,9 +115,34 @@
+ --
+ -- Menu options
+ --
++ type Menu_Option_Set is
++ record
++ One_Valued : Boolean;
++ Show_Descriptions : Boolean;
++ Row_Major_Order : Boolean;
++ Ignore_Case : Boolean;
++ Show_Matches : Boolean;
++ Non_Cyclic : Boolean;
++ end record;
++ pragma Convention (C_Pass_By_Copy, Menu_Option_Set);
++
++ for Menu_Option_Set use
++ record
++ One_Valued at 0 range Curses_Constants.O_ONEVALUE_First
++ .. Curses_Constants.O_ONEVALUE_Last;
++ Show_Descriptions at 0 range Curses_Constants.O_SHOWDESC_First
++ .. Curses_Constants.O_SHOWDESC_Last;
++ Row_Major_Order at 0 range Curses_Constants.O_ROWMAJOR_First
++ .. Curses_Constants.O_ROWMAJOR_Last;
++ Ignore_Case at 0 range Curses_Constants.O_IGNORECASE_First
++ .. Curses_Constants.O_IGNORECASE_Last;
++ Show_Matches at 0 range Curses_Constants.O_SHOWMATCH_First
++ .. Curses_Constants.O_SHOWMATCH_Last;
++ Non_Cyclic at 0 range Curses_Constants.O_NONCYCLIC_First
++ .. Curses_Constants.O_NONCYCLIC_Last;
++ end record;
+ pragma Warnings (Off);
+-include(`Menu_Opt_Rep')dnl
+-
++ for Menu_Option_Set'Size use Curses_Constants.Menu_Options_Size;
+ pragma Warnings (On);
+
+ function Default_Menu_Options return Menu_Option_Set;
+@@ -127,9 +151,19 @@
+ --
+ -- Item options
+ --
++ type Item_Option_Set is
++ record
++ Selectable : Boolean;
++ end record;
++ pragma Convention (C_Pass_By_Copy, Item_Option_Set);
++
++ for Item_Option_Set use
++ record
++ Selectable at 0 range Curses_Constants.O_SELECTABLE_First
++ .. Curses_Constants.O_SELECTABLE_Last;
++ end record;
+ pragma Warnings (Off);
+-include(`Item_Rep')dnl
+-
++ for Item_Option_Set'Size use Curses_Constants.Item_Options_Size;
+ pragma Warnings (On);
+
+ function Default_Item_Options return Item_Option_Set;
+Index: Ada95/gen/terminal_interface-curses-mouse.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-mouse.ads.m4 2011-03-19 12:35:58.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-mouse.ads.m4 2014-05-24 21:31:57.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,11 +38,10 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.29 $
+--- $Date: 2011/03/19 12:35:58 $
++-- $Revision: 1.31 $
++-- $Date: 2014/05/24 21:31:57 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+-include(`Mouse_Base_Defs')
+ with System;
+
+ package Terminal_Interface.Curses.Mouse is
+@@ -167,12 +166,35 @@
+ end record;
+ pragma Convention (C, Mouse_Event);
+
+-include(`Mouse_Event_Rep')
+- Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
+- -- This constant may be different on your system.
+-
+-include(`Mouse_Events')
+- No_Events : constant Event_Mask := 0;
+- All_Events : constant Event_Mask := ALL_MOUSE_EVENTS;
++ for Mouse_Event use
++ record
++ Id at 0 range Curses_Constants.MEVENT_id_First
++ .. Curses_Constants.MEVENT_id_Last;
++ X at 0 range Curses_Constants.MEVENT_x_First
++ .. Curses_Constants.MEVENT_x_Last;
++ Y at 0 range Curses_Constants.MEVENT_y_First
++ .. Curses_Constants.MEVENT_y_Last;
++ Z at 0 range Curses_Constants.MEVENT_z_First
++ .. Curses_Constants.MEVENT_z_Last;
++ Bstate at 0 range Curses_Constants.MEVENT_bstate_First
++ .. Curses_Constants.MEVENT_bstate_Last;
++ end record;
++ for Mouse_Event'Size use Curses_Constants.MEVENT_Size;
++ Generation_Bit_Order : System.Bit_Order renames Curses_Constants.Bit_Order;
++
++ BUTTON_CTRL : constant Event_Mask := Curses_Constants.BUTTON_CTRL;
++ BUTTON_SHIFT : constant Event_Mask := Curses_Constants.BUTTON_SHIFT;
++ BUTTON_ALT : constant Event_Mask := Curses_Constants.BUTTON_ALT;
++ BUTTON1_EVENTS : constant Event_Mask
++ := Curses_Constants.all_events_button_1;
++ BUTTON2_EVENTS : constant Event_Mask
++ := Curses_Constants.all_events_button_2;
++ BUTTON3_EVENTS : constant Event_Mask
++ := Curses_Constants.all_events_button_3;
++ BUTTON4_EVENTS : constant Event_Mask
++ := Curses_Constants.all_events_button_4;
++ ALL_MOUSE_EVENTS : constant Event_Mask := Curses_Constants.ALL_MOUSE_EVENTS;
++ No_Events : constant Event_Mask := 0;
++ All_Events : constant Event_Mask := ALL_MOUSE_EVENTS;
+
+ end Terminal_Interface.Curses.Mouse;
+Index: Ada95/gen/terminal_interface-curses-panels.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-panels.ads.m4 2009-12-26 17:38:58.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-panels.ads.m4 2014-05-24 21:31:57.000000000 +0000
+@@ -10,7 +10,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -38,16 +38,16 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.20 $
+--- $Date: 2009/12/26 17:38:58 $
++-- $Revision: 1.22 $
++-- $Date: 2014/05/24 21:31:57 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with System;
+
+ package Terminal_Interface.Curses.Panels is
+ pragma Preelaborate (Terminal_Interface.Curses.Panels);
+-include(`Panel_Linker_Options')dnl
+-include(`Linker_Options')
++ pragma Linker_Options ("-lpanel" & Curses_Constants.DFT_ARG_SUFFIX);
++
+ type Panel is private;
+
+ ---------------------------
+Index: Ada95/gen/terminal_interface-curses-trace.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses-trace.ads.m4 2000-12-02 22:31:21.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses-trace.ads.m4 2014-05-24 21:31:05.000000000 +0000
+@@ -9,7 +9,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000 Free Software Foundation, Inc. --
++-- Copyright (c) 2000,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -37,16 +37,62 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control:
+--- $Revision: 1.1 $
++-- $Revision: 1.4 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+
+ package Terminal_Interface.Curses.Trace is
+ pragma Preelaborate (Terminal_Interface.Curses.Trace);
+
+- pragma Warnings (Off);
+-include(`Trace_Defs')
++ type Trace_Attribute_Set is
++ record
++ Times : Boolean;
++ Tputs : Boolean;
++ Update : Boolean;
++ Cursor_Move : Boolean;
++ Character_Output : Boolean;
++ Calls : Boolean;
++ Virtual_Puts : Boolean;
++ Input_Events : Boolean;
++ TTY_State : Boolean;
++ Internal_Calls : Boolean;
++ Character_Calls : Boolean;
++ Termcap_TermInfo : Boolean;
++ Attribute_Color : Boolean;
++ end record;
++ pragma Convention (C_Pass_By_Copy, Trace_Attribute_Set);
+
++ for Trace_Attribute_Set use
++ record
++ Times at 0 range Curses_Constants.TRACE_TIMES_First
++ .. Curses_Constants.TRACE_TIMES_Last;
++ Tputs at 0 range Curses_Constants.TRACE_TPUTS_First
++ .. Curses_Constants.TRACE_TPUTS_Last;
++ Update at 0 range Curses_Constants.TRACE_UPDATE_First
++ .. Curses_Constants.TRACE_UPDATE_Last;
++ Cursor_Move at 0 range Curses_Constants.TRACE_MOVE_First
++ .. Curses_Constants.TRACE_MOVE_Last;
++ Character_Output at 0 range Curses_Constants.TRACE_CHARPUT_First
++ .. Curses_Constants.TRACE_CHARPUT_Last;
++ Calls at 0 range Curses_Constants.TRACE_CALLS_First
++ .. Curses_Constants.TRACE_CALLS_Last;
++ Virtual_Puts at 0 range Curses_Constants.TRACE_VIRTPUT_First
++ .. Curses_Constants.TRACE_VIRTPUT_Last;
++ Input_Events at 0 range Curses_Constants.TRACE_IEVENT_First
++ .. Curses_Constants.TRACE_IEVENT_Last;
++ TTY_State at 0 range Curses_Constants.TRACE_BITS_First
++ .. Curses_Constants.TRACE_BITS_Last;
++ Internal_Calls at 0 range Curses_Constants.TRACE_ICALLS_First
++ .. Curses_Constants.TRACE_ICALLS_Last;
++ Character_Calls at 0 range Curses_Constants.TRACE_CCALLS_First
++ .. Curses_Constants.TRACE_CCALLS_Last;
++ Termcap_TermInfo at 0 range Curses_Constants.TRACE_DATABASE_First
++ .. Curses_Constants.TRACE_DATABASE_Last;
++ Attribute_Color at 0 range Curses_Constants.TRACE_ATTRS_First
++ .. Curses_Constants.TRACE_ATTRS_Last;
++ end record;
++ pragma Warnings (Off);
++ for Trace_Attribute_Set'Size use Curses_Constants.Trace_Size;
+ pragma Warnings (On);
+
+ Trace_Disable : constant Trace_Attribute_Set := (others => False);
+Index: Ada95/gen/terminal_interface-curses.adb.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses.adb.m4 2011-03-22 23:02:14.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses.adb.m4 2014-05-24 21:31:05.000000000 +0000
+@@ -9,7 +9,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -37,8 +37,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.8 $
+--- $Date: 2011/03/22 23:02:14 $
++-- $Revision: 1.14 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with System;
+@@ -151,10 +151,10 @@
+ Ch : Attributed_Character)
+ is
+ function Waddch (W : Window;
+- Ch : C_Chtype) return C_Int;
++ Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Waddch, "waddch");
+ begin
+- if Waddch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++ if Waddch (Win, Ch) = Curses_Err then
+ raise Curses_Exception;
+ end if;
+ end Add;
+@@ -178,12 +178,13 @@
+ function mvwaddch (W : Window;
+ Y : C_Int;
+ X : C_Int;
+- Ch : C_Chtype) return C_Int;
++ Ch : Attributed_Character) return C_Int;
+ pragma Import (C, mvwaddch, "mvwaddch");
+ begin
+ if mvwaddch (Win, C_Int (Line),
+ C_Int (Column),
+- AttrChar_To_Chtype (Ch)) = Curses_Err then
++ Ch) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Add;
+@@ -208,10 +209,10 @@
+ Ch : Attributed_Character)
+ is
+ function Wechochar (W : Window;
+- Ch : C_Chtype) return C_Int;
++ Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Wechochar, "wechochar");
+ begin
+- if Wechochar (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++ if Wechochar (Win, Ch) = Curses_Err then
+ raise Curses_Exception;
+ end if;
+ end Add_With_Immediate_Echo;
+@@ -419,7 +420,8 @@
+ Txt (Str'Length) := Default_Character;
+ if Waddchnstr (Win,
+ Txt,
+- C_Int (Len)) = Curses_Err then
++ C_Int (Len)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Add;
+@@ -448,26 +450,25 @@
+ Lower_Right_Corner_Symbol : Attributed_Character := Default_Character)
+ is
+ function Wborder (W : Window;
+- LS : C_Chtype;
+- RS : C_Chtype;
+- TS : C_Chtype;
+- BS : C_Chtype;
+- ULC : C_Chtype;
+- URC : C_Chtype;
+- LLC : C_Chtype;
+- LRC : C_Chtype) return C_Int;
++ LS : Attributed_Character;
++ RS : Attributed_Character;
++ TS : Attributed_Character;
++ BS : Attributed_Character;
++ ULC : Attributed_Character;
++ URC : Attributed_Character;
++ LLC : Attributed_Character;
++ LRC : Attributed_Character) return C_Int;
+ pragma Import (C, Wborder, "wborder");
+ begin
+ if Wborder (Win,
+- AttrChar_To_Chtype (Left_Side_Symbol),
+- AttrChar_To_Chtype (Right_Side_Symbol),
+- AttrChar_To_Chtype (Top_Side_Symbol),
+- AttrChar_To_Chtype (Bottom_Side_Symbol),
+- AttrChar_To_Chtype (Upper_Left_Corner_Symbol),
+- AttrChar_To_Chtype (Upper_Right_Corner_Symbol),
+- AttrChar_To_Chtype (Lower_Left_Corner_Symbol),
+- AttrChar_To_Chtype (Lower_Right_Corner_Symbol)
+- ) = Curses_Err
++ Left_Side_Symbol,
++ Right_Side_Symbol,
++ Top_Side_Symbol,
++ Bottom_Side_Symbol,
++ Upper_Left_Corner_Symbol,
++ Upper_Right_Corner_Symbol,
++ Lower_Left_Corner_Symbol,
++ Lower_Right_Corner_Symbol) = Curses_Err
+ then
+ raise Curses_Exception;
+ end if;
+@@ -490,13 +491,14 @@
+ Line_Symbol : Attributed_Character := Default_Character)
+ is
+ function Whline (W : Window;
+- Ch : C_Chtype;
++ Ch : Attributed_Character;
+ Len : C_Int) return C_Int;
+ pragma Import (C, Whline, "whline");
+ begin
+ if Whline (Win,
+- AttrChar_To_Chtype (Line_Symbol),
+- C_Int (Line_Size)) = Curses_Err then
++ Line_Symbol,
++ C_Int (Line_Size)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Horizontal_Line;
+@@ -507,13 +509,14 @@
+ Line_Symbol : Attributed_Character := Default_Character)
+ is
+ function Wvline (W : Window;
+- Ch : C_Chtype;
++ Ch : Attributed_Character;
+ Len : C_Int) return C_Int;
+ pragma Import (C, Wvline, "wvline");
+ begin
+ if Wvline (Win,
+- AttrChar_To_Chtype (Line_Symbol),
+- C_Int (Line_Size)) = Curses_Err then
++ Line_Symbol,
++ C_Int (Line_Size)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Vertical_Line;
+@@ -611,10 +614,10 @@
+ On : Boolean := True)
+ is
+ function Wattron (Win : Window;
+- C_Attr : C_AttrType) return C_Int;
++ C_Attr : Attributed_Character) return C_Int;
+ pragma Import (C, Wattron, "wattr_on");
+ function Wattroff (Win : Window;
+- C_Attr : C_AttrType) return C_Int;
++ C_Attr : Attributed_Character) return C_Int;
+ pragma Import (C, Wattroff, "wattr_off");
+ -- In Ada we use the On Boolean to control whether or not we want to
+ -- switch on or off the attributes in the set.
+@@ -624,9 +627,9 @@
+ Attr => Attr);
+ begin
+ if On then
+- Err := Wattron (Win, AttrChar_To_AttrType (AC));
++ Err := Wattron (Win, AC);
+ else
+- Err := Wattroff (Win, AttrChar_To_AttrType (AC));
++ Err := Wattroff (Win, AC);
+ end if;
+ if Err = Curses_Err then
+ raise Curses_Exception;
+@@ -639,14 +642,13 @@
+ Color : Color_Pair := Color_Pair'First)
+ is
+ function Wattrset (Win : Window;
+- C_Attr : C_AttrType) return C_Int;
++ C_Attr : Attributed_Character) return C_Int;
+ pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
+ begin
+- if Wattrset (Win,
+- AttrChar_To_AttrType (Attributed_Character'
+- (Ch => Character'First,
+- Color => Color,
+- Attr => Attr))) = Curses_Err then
++ if Wattrset (Win, (Ch => Character'First,
++ Color => Color,
++ Attr => Attr)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Set_Character_Attributes;
+@@ -655,20 +657,18 @@
+ return Character_Attribute_Set
+ is
+ function Wattrget (Win : Window;
+- Atr : access C_AttrType;
++ Atr : access Attributed_Character;
+ Col : access C_Short;
+ Opt : System.Address) return C_Int;
+ pragma Import (C, Wattrget, "wattr_get");
+
+- Attr : aliased C_AttrType;
++ Attr : aliased Attributed_Character;
+ Col : aliased C_Short;
+ Res : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
+ System.Null_Address);
+- Ch : Attributed_Character;
+ begin
+ if Res = Curses_Ok then
+- Ch := AttrType_To_AttrChar (Attr);
+- return Ch.Attr;
++ return Attr.Attr;
+ else
+ raise Curses_Exception;
+ end if;
+@@ -678,20 +678,18 @@
+ return Color_Pair
+ is
+ function Wattrget (Win : Window;
+- Atr : access C_AttrType;
++ Atr : access Attributed_Character;
+ Col : access C_Short;
+ Opt : System.Address) return C_Int;
+ pragma Import (C, Wattrget, "wattr_get");
+
+- Attr : aliased C_AttrType;
++ Attr : aliased Attributed_Character;
+ Col : aliased C_Short;
+ Res : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
+ System.Null_Address);
+- Ch : Attributed_Character;
+ begin
+ if Res = Curses_Ok then
+- Ch := AttrType_To_AttrChar (Attr);
+- return Ch.Color;
++ return Attr.Color;
+ else
+ raise Curses_Exception;
+ end if;
+@@ -707,7 +705,8 @@
+ begin
+ if Wset_Color (Win,
+ C_Short (Pair),
+- C_Void_Ptr (System.Null_Address)) = Curses_Err then
++ C_Void_Ptr (System.Null_Address)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Set_Color;
+@@ -720,17 +719,19 @@
+ is
+ function Wchgat (Win : Window;
+ Cnt : C_Int;
+- Attr : C_AttrType;
++ Attr : Attributed_Character;
+ Color : C_Short;
+ Opts : System.Address := System.Null_Address)
+ return C_Int;
+ pragma Import (C, Wchgat, "wchgat");
+-
+- Ch : constant Attributed_Character :=
+- (Ch => Character'First, Color => Color_Pair'First, Attr => Attr);
+ begin
+- if Wchgat (Win, C_Int (Count), AttrChar_To_AttrType (Ch),
+- C_Short (Color)) = Curses_Err then
++ if Wchgat (Win,
++ C_Int (Count),
++ (Ch => Character'First,
++ Color => Color_Pair'First,
++ Attr => Attr),
++ C_Short (Color)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Change_Attributes;
+@@ -938,7 +939,8 @@
+ pragma Import (C, Notimeout, "notimeout");
+ begin
+ if Notimeout (Win, Curses_Bool (Boolean'Pos (Timer_Off)))
+- = Curses_Err then
++ = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Set_Escape_Timer_Mode;
+@@ -1051,7 +1053,8 @@
+ pragma Import (C, Wsetscrreg, "wsetscrreg");
+ begin
+ if Wsetscrreg (Win, C_Int (Top_Line), C_Int (Bottom_Line))
+- = Curses_Err then
++ = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Set_Scroll_Region;
+@@ -1108,7 +1111,8 @@
+ begin
+ if Wredrawln (Win,
+ C_Int (Begin_Line),
+- C_Int (Line_Count)) = Curses_Err then
++ C_Int (Line_Count)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Redraw;
+@@ -1158,20 +1162,21 @@
+ (Win : Window := Standard_Window;
+ Ch : Attributed_Character)
+ is
+- procedure WBackground (W : Window; Ch : C_Chtype);
++ procedure WBackground (W : Window; Ch : Attributed_Character);
+ pragma Import (C, WBackground, "wbkgdset");
+ begin
+- WBackground (Win, AttrChar_To_Chtype (Ch));
++ WBackground (Win, Ch);
+ end Set_Background;
+
+ procedure Change_Background
+ (Win : Window := Standard_Window;
+ Ch : Attributed_Character)
+ is
+- function WChangeBkgd (W : Window; Ch : C_Chtype) return C_Int;
++ function WChangeBkgd (W : Window; Ch : Attributed_Character)
++ return C_Int;
+ pragma Import (C, WChangeBkgd, "wbkgd");
+ begin
+- if WChangeBkgd (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++ if WChangeBkgd (Win, Ch) = Curses_Err then
+ raise Curses_Exception;
+ end if;
+ end Change_Background;
+@@ -1179,10 +1184,10 @@
+ function Get_Background (Win : Window := Standard_Window)
+ return Attributed_Character
+ is
+- function Wgetbkgd (Win : Window) return C_Chtype;
++ function Wgetbkgd (Win : Window) return Attributed_Character;
+ pragma Import (C, Wgetbkgd, "getbkgd");
+ begin
+- return Chtype_To_AttrChar (Wgetbkgd (Win));
++ return Wgetbkgd (Win);
+ end Get_Background;
+ ------------------------------------------------------------------------------
+ procedure Change_Lines_Status (Win : Window := Standard_Window;
+@@ -1197,7 +1202,8 @@
+ pragma Import (C, Wtouchln, "wtouchln");
+ begin
+ if Wtouchln (Win, C_Int (Start), C_Int (Count),
+- C_Int (Boolean'Pos (State))) = Curses_Err then
++ C_Int (Boolean'Pos (State))) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Change_Lines_Status;
+@@ -1208,7 +1214,7 @@
+ X : Column_Position;
+ begin
+ Get_Size (Win, Y, X);
+- pragma Unreferenced (X);
++ pragma Warnings (Off, X); -- unreferenced
+ Change_Lines_Status (Win, 0, Positive (Y), True);
+ end Touch;
+
+@@ -1218,7 +1224,7 @@
+ X : Column_Position;
+ begin
+ Get_Size (Win, Y, X);
+- pragma Unreferenced (X);
++ pragma Warnings (Off, X); -- unreferenced
+ Change_Lines_Status (Win, 0, Positive (Y), False);
+ end Untouch;
+
+@@ -1288,7 +1294,8 @@
+ C_Int (Destination_Bottom_Row),
+ C_Int (Destination_Right_Column),
+ Boolean'Pos (Non_Destructive_Mode)
+- ) = Curses_Err then
++ ) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Copy;
+@@ -1491,7 +1498,8 @@
+ C_Int (Destination_Top_Row),
+ C_Int (Destination_Left_Column),
+ C_Int (Destination_Bottom_Row),
+- C_Int (Destination_Right_Column)) = Curses_Err then
++ C_Int (Destination_Right_Column)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Refresh;
+@@ -1521,7 +1529,8 @@
+ C_Int (Destination_Top_Row),
+ C_Int (Destination_Left_Column),
+ C_Int (Destination_Bottom_Row),
+- C_Int (Destination_Right_Column)) = Curses_Err then
++ C_Int (Destination_Right_Column)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Refresh_Without_Update;
+@@ -1530,11 +1539,11 @@
+ (Pad : Window;
+ Ch : Attributed_Character)
+ is
+- function Pechochar (Pad : Window; Ch : C_Chtype)
++ function Pechochar (Pad : Window; Ch : Attributed_Character)
+ return C_Int;
+ pragma Import (C, Pechochar, "pechochar");
+ begin
+- if Pechochar (Pad, AttrChar_To_Chtype (Ch)) = Curses_Err then
++ if Pechochar (Pad, Ch) = Curses_Err then
+ raise Curses_Exception;
+ end if;
+ end Add_Character_To_Pad_And_Echo_It;
+@@ -1592,10 +1601,10 @@
+ function Peek (Win : Window := Standard_Window)
+ return Attributed_Character
+ is
+- function Winch (Win : Window) return C_Chtype;
++ function Winch (Win : Window) return Attributed_Character;
+ pragma Import (C, Winch, "winch");
+ begin
+- return Chtype_To_AttrChar (Winch (Win));
++ return Winch (Win);
+ end Peek;
+
+ function Peek
+@@ -1605,19 +1614,19 @@
+ is
+ function Mvwinch (Win : Window;
+ Lin : C_Int;
+- Col : C_Int) return C_Chtype;
++ Col : C_Int) return Attributed_Character;
+ pragma Import (C, Mvwinch, "mvwinch");
+ begin
+- return Chtype_To_AttrChar (Mvwinch (Win, C_Int (Line), C_Int (Column)));
++ return Mvwinch (Win, C_Int (Line), C_Int (Column));
+ end Peek;
+ ------------------------------------------------------------------------------
+ procedure Insert (Win : Window := Standard_Window;
+ Ch : Attributed_Character)
+ is
+- function Winsch (Win : Window; Ch : C_Chtype) return C_Int;
++ function Winsch (Win : Window; Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Winsch, "winsch");
+ begin
+- if Winsch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
++ if Winsch (Win, Ch) = Curses_Err then
+ raise Curses_Exception;
+ end if;
+ end Insert;
+@@ -1631,13 +1640,14 @@
+ function Mvwinsch (Win : Window;
+ Lin : C_Int;
+ Col : C_Int;
+- Ch : C_Chtype) return C_Int;
++ Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Mvwinsch, "mvwinsch");
+ begin
+ if Mvwinsch (Win,
+ C_Int (Line),
+ C_Int (Column),
+- AttrChar_To_Chtype (Ch)) = Curses_Err then
++ Ch) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Insert;
+@@ -1679,7 +1689,8 @@
+ begin
+ To_C (Str, Txt, Length);
+ if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
+- = Curses_Err then
++ = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Insert;
+@@ -1840,7 +1851,8 @@
+ begin
+ To_C (Text, Txt, Len);
+ if Slk_Set (C_Int (Label), Txt,
+- C_Int (Label_Justification'Pos (Fmt))) = Curses_Err then
++ C_Int (Label_Justification'Pos (Fmt))) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Set_Soft_Label_Key;
+@@ -1916,9 +1928,9 @@
+ (Attr : Character_Attribute_Set;
+ On : Boolean := True)
+ is
+- function Slk_Attron (Ch : C_Chtype) return C_Int;
++ function Slk_Attron (Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Slk_Attron, "slk_attron");
+- function Slk_Attroff (Ch : C_Chtype) return C_Int;
++ function Slk_Attroff (Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Slk_Attroff, "slk_attroff");
+
+ Err : C_Int;
+@@ -1927,9 +1939,9 @@
+ Color => Color_Pair'First);
+ begin
+ if On then
+- Err := Slk_Attron (AttrChar_To_Chtype (Ch));
++ Err := Slk_Attron (Ch);
+ else
+- Err := Slk_Attroff (AttrChar_To_Chtype (Ch));
++ Err := Slk_Attroff (Ch);
+ end if;
+ if Err = Curses_Err then
+ raise Curses_Exception;
+@@ -1940,36 +1952,36 @@
+ (Attr : Character_Attribute_Set := Normal_Video;
+ Color : Color_Pair := Color_Pair'First)
+ is
+- function Slk_Attrset (Ch : C_Chtype) return C_Int;
++ function Slk_Attrset (Ch : Attributed_Character) return C_Int;
+ pragma Import (C, Slk_Attrset, "slk_attrset");
+
+ Ch : constant Attributed_Character := (Ch => Character'First,
+ Attr => Attr,
+ Color => Color);
+ begin
+- if Slk_Attrset (AttrChar_To_Chtype (Ch)) = Curses_Err then
++ if Slk_Attrset (Ch) = Curses_Err then
+ raise Curses_Exception;
+ end if;
+ end Set_Soft_Label_Key_Attributes;
+
+ function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
+ is
+- function Slk_Attr return C_Chtype;
++ function Slk_Attr return Attributed_Character;
+ pragma Import (C, Slk_Attr, "slk_attr");
+
+- Attr : constant C_Chtype := Slk_Attr;
++ Attr : constant Attributed_Character := Slk_Attr;
+ begin
+- return Chtype_To_AttrChar (Attr).Attr;
++ return Attr.Attr;
+ end Get_Soft_Label_Key_Attributes;
+
+ function Get_Soft_Label_Key_Attributes return Color_Pair
+ is
+- function Slk_Attr return C_Chtype;
++ function Slk_Attr return Attributed_Character;
+ pragma Import (C, Slk_Attr, "slk_attr");
+
+- Attr : constant C_Chtype := Slk_Attr;
++ Attr : constant Attributed_Character := Slk_Attr;
+ begin
+- return Chtype_To_AttrChar (Attr).Color;
++ return Attr.Color;
+ end Get_Soft_Label_Key_Attributes;
+
+ procedure Set_Soft_Label_Key_Color (Pair : Color_Pair)
+@@ -1991,7 +2003,8 @@
+ pragma Import (C, Keyok, "keyok");
+ begin
+ if Keyok (C_Int (Key), Curses_Bool (Boolean'Pos (Enable)))
+- = Curses_Err then
++ = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Enable_Key;
+@@ -2015,18 +2028,18 @@
+ procedure Un_Control (Ch : Attributed_Character;
+ Str : out String)
+ is
+- function Unctrl (Ch : C_Chtype) return chars_ptr;
++ function Unctrl (Ch : Attributed_Character) return chars_ptr;
+ pragma Import (C, Unctrl, "unctrl");
+ begin
+- Fill_String (Unctrl (AttrChar_To_Chtype (Ch)), Str);
++ Fill_String (Unctrl (Ch), Str);
+ end Un_Control;
+
+ function Un_Control (Ch : Attributed_Character) return String
+ is
+- function Unctrl (Ch : C_Chtype) return chars_ptr;
++ function Unctrl (Ch : Attributed_Character) return chars_ptr;
+ pragma Import (C, Unctrl, "unctrl");
+ begin
+- return Fill_String (Unctrl (AttrChar_To_Chtype (Ch)));
++ return Fill_String (Unctrl (Ch));
+ end Un_Control;
+
+ procedure Delay_Output (Msecs : Natural)
+@@ -2099,10 +2112,10 @@
+
+ function Supported_Attributes return Character_Attribute_Set
+ is
+- function Termattrs return C_Chtype;
++ function Termattrs return Attributed_Character;
+ pragma Import (C, Termattrs, "termattrs");
+
+- Ch : constant Attributed_Character := Chtype_To_AttrChar (Termattrs);
++ Ch : constant Attributed_Character := Termattrs;
+ begin
+ return Ch.Attr;
+ end Supported_Attributes;
+@@ -2152,11 +2165,13 @@
+ raise Constraint_Error;
+ end if;
+ if Integer (Fore) >= Number_Of_Colors or else
+- Integer (Back) >= Number_Of_Colors then
++ Integer (Back) >= Number_Of_Colors
++ then
+ raise Constraint_Error;
+ end if;
+ if Initpair (C_Short (Pair), C_Short (Fore), C_Short (Back))
+- = Curses_Err then
++ = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Init_Pair;
+@@ -2205,7 +2220,8 @@
+ pragma Import (C, Initcolor, "init_color");
+ begin
+ if Initcolor (C_Short (Color), C_Short (Red), C_Short (Green),
+- C_Short (Blue)) = Curses_Err then
++ C_Short (Blue)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Init_Color;
+@@ -2236,7 +2252,8 @@
+ R, G, B : aliased C_Short;
+ begin
+ if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
+- Curses_Err then
++ Curses_Err
++ then
+ raise Curses_Exception;
+ else
+ Red := RGB_Value (R);
+@@ -2337,7 +2354,46 @@
+ end if;
+ end Nap_Milli_Seconds;
+ ------------------------------------------------------------------------------
+-include(`Public_Variables')
++ function Lines return Line_Count
++ is
++ function LINES_As_Function return Interfaces.C.int;
++ pragma Import (C, LINES_As_Function, "LINES_as_function");
++ begin
++ return Line_Count (LINES_As_Function);
++ end Lines;
++
++ function Columns return Column_Count
++ is
++ function COLS_As_Function return Interfaces.C.int;
++ pragma Import (C, COLS_As_Function, "COLS_as_function");
++ begin
++ return Column_Count (COLS_As_Function);
++ end Columns;
++
++ function Tab_Size return Natural
++ is
++ function TABSIZE_As_Function return Interfaces.C.int;
++ pragma Import (C, TABSIZE_As_Function, "TABSIZE_as_function");
++
++ begin
++ return Natural (TABSIZE_As_Function);
++ end Tab_Size;
++
++ function Number_Of_Colors return Natural
++ is
++ function COLORS_As_Function return Interfaces.C.int;
++ pragma Import (C, COLORS_As_Function, "COLORS_as_function");
++ begin
++ return Natural (COLORS_As_Function);
++ end Number_Of_Colors;
++
++ function Number_Of_Color_Pairs return Natural
++ is
++ function COLOR_PAIRS_As_Function return Interfaces.C.int;
++ pragma Import (C, COLOR_PAIRS_As_Function, "COLOR_PAIRS_as_function");
++ begin
++ return Natural (COLOR_PAIRS_As_Function);
++ end Number_Of_Color_Pairs;
+ ------------------------------------------------------------------------------
+ procedure Transform_Coordinates
+ (W : Window := Standard_Window;
+@@ -2493,7 +2549,8 @@
+ begin
+ if wresize (Win,
+ C_Int (Number_Of_Lines),
+- C_Int (Number_Of_Columns)) = Curses_Err then
++ C_Int (Number_Of_Columns)) = Curses_Err
++ then
+ raise Curses_Exception;
+ end if;
+ end Resize;
+Index: Ada95/gen/terminal_interface-curses.ads.m4
+--- ncurses-5.9/Ada95/gen/terminal_interface-curses.ads.m4 2011-03-19 23:05:56.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/gen/terminal_interface-curses.ads.m4 2014-05-24 21:31:57.000000000 +0000
+@@ -9,7 +9,7 @@
+ -- S P E C --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -37,18 +37,23 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.44 $
+--- $Date: 2011/03/19 23:05:56 $
++-- $Revision: 1.47 $
++-- $Date: 2014/05/24 21:31:57 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+-include(`Base_Defs')
+ with System.Storage_Elements;
+ with Interfaces.C; -- We need this for some assertions.
+
++with Terminal_Interface.Curses_Constants;
++
+ package Terminal_Interface.Curses is
+ pragma Preelaborate (Terminal_Interface.Curses);
+-include(`Linker_Options')
+-include(`Version_Info')
++ pragma Linker_Options ("-lncurses" & Curses_Constants.DFT_ARG_SUFFIX);
++
++ Major_Version : constant := Curses_Constants.NCURSES_VERSION_MAJOR;
++ Minor_Version : constant := Curses_Constants.NCURSES_VERSION_MINOR;
++ NC_Version : String renames Curses_Constants.Version;
++
+ type Window is private;
+ Null_Window : constant Window;
+
+@@ -65,24 +70,315 @@
+ -- request codes.
+
+ -- FIXME: The "-1" should be Curses_Err
+- subtype Real_Key_Code is Key_Code range -1 .. M4_KEY_MAX;
++ subtype Real_Key_Code is Key_Code range -1 .. Curses_Constants.KEY_MAX;
+ -- This are the codes that potentially represent a real keystroke.
+ -- Not all codes may be possible on a specific terminal. To check the
+ -- availability of a special key, the Has_Key function is provided.
+
+ subtype Special_Key_Code is Real_Key_Code
+- range M4_SPECIAL_FIRST .. Real_Key_Code'Last;
++ range Curses_Constants. KEY_MIN - 1 .. Real_Key_Code'Last;
+ -- Type for a function- or special key number
+
+ subtype Normal_Key_Code is Real_Key_Code range
+ Character'Pos (Character'First) .. Character'Pos (Character'Last);
+ -- This are the codes for regular (incl. non-graphical) characters.
+
++ -- For those who like to use the original key names we produce them were
++ -- they differ from the original.
++
+ -- Constants for function- and special keys
+- --
+- Key_None : constant Special_Key_Code := M4_SPECIAL_FIRST;
+-include(`Key_Definitions')
+- Key_Max : constant Special_Key_Code
++ Key_None : constant Special_Key_Code
++ := Curses_Constants.KEY_MIN - 1;
++ Key_Min : constant Special_Key_Code
++ := Curses_Constants.KEY_MIN;
++ Key_Break : constant Special_Key_Code
++ := Curses_Constants.KEY_BREAK;
++ KEY_DOWN : constant Special_Key_Code
++ := Curses_Constants.KEY_DOWN;
++ Key_Cursor_Down : Special_Key_Code renames KEY_DOWN;
++ KEY_UP : constant Special_Key_Code
++ := Curses_Constants.KEY_UP;
++ Key_Cursor_Up : Special_Key_Code renames KEY_UP;
++ KEY_LEFT : constant Special_Key_Code
++ := Curses_Constants.KEY_LEFT;
++ Key_Cursor_Left : Special_Key_Code renames KEY_LEFT;
++ KEY_RIGHT : constant Special_Key_Code
++ := Curses_Constants.KEY_RIGHT;
++ Key_Cursor_Right : Special_Key_Code renames KEY_RIGHT;
++ Key_Home : constant Special_Key_Code
++ := Curses_Constants.KEY_HOME;
++ Key_Backspace : constant Special_Key_Code
++ := Curses_Constants.KEY_BACKSPACE;
++ Key_F0 : constant Special_Key_Code
++ := Curses_Constants.KEY_F0;
++ Key_F1 : constant Special_Key_Code
++ := Curses_Constants.KEY_F1;
++ Key_F2 : constant Special_Key_Code
++ := Curses_Constants.KEY_F2;
++ Key_F3 : constant Special_Key_Code
++ := Curses_Constants.KEY_F3;
++ Key_F4 : constant Special_Key_Code
++ := Curses_Constants.KEY_F4;
++ Key_F5 : constant Special_Key_Code
++ := Curses_Constants.KEY_F5;
++ Key_F6 : constant Special_Key_Code
++ := Curses_Constants.KEY_F6;
++ Key_F7 : constant Special_Key_Code
++ := Curses_Constants.KEY_F7;
++ Key_F8 : constant Special_Key_Code
++ := Curses_Constants.KEY_F8;
++ Key_F9 : constant Special_Key_Code
++ := Curses_Constants.KEY_F9;
++ Key_F10 : constant Special_Key_Code
++ := Curses_Constants.KEY_F10;
++ Key_F11 : constant Special_Key_Code
++ := Curses_Constants.KEY_F11;
++ Key_F12 : constant Special_Key_Code
++ := Curses_Constants.KEY_F12;
++ Key_F13 : constant Special_Key_Code
++ := Curses_Constants.KEY_F13;
++ Key_F14 : constant Special_Key_Code
++ := Curses_Constants.KEY_F14;
++ Key_F15 : constant Special_Key_Code
++ := Curses_Constants.KEY_F15;
++ Key_F16 : constant Special_Key_Code
++ := Curses_Constants.KEY_F16;
++ Key_F17 : constant Special_Key_Code
++ := Curses_Constants.KEY_F17;
++ Key_F18 : constant Special_Key_Code
++ := Curses_Constants.KEY_F18;
++ Key_F19 : constant Special_Key_Code
++ := Curses_Constants.KEY_F19;
++ Key_F20 : constant Special_Key_Code
++ := Curses_Constants.KEY_F20;
++ Key_F21 : constant Special_Key_Code
++ := Curses_Constants.KEY_F21;
++ Key_F22 : constant Special_Key_Code
++ := Curses_Constants.KEY_F22;
++ Key_F23 : constant Special_Key_Code
++ := Curses_Constants.KEY_F23;
++ Key_F24 : constant Special_Key_Code
++ := Curses_Constants.KEY_F24;
++ KEY_DL : constant Special_Key_Code
++ := Curses_Constants.KEY_DL;
++ Key_Delete_Line : Special_Key_Code renames KEY_DL;
++ KEY_IL : constant Special_Key_Code
++ := Curses_Constants.KEY_IL;
++ Key_Insert_Line : Special_Key_Code renames KEY_IL;
++ KEY_DC : constant Special_Key_Code
++ := Curses_Constants.KEY_DC;
++ Key_Delete_Char : Special_Key_Code renames KEY_DC;
++ KEY_IC : constant Special_Key_Code
++ := Curses_Constants.KEY_IC;
++ Key_Insert_Char : Special_Key_Code renames KEY_IC;
++ KEY_EIC : constant Special_Key_Code
++ := Curses_Constants.KEY_EIC;
++ Key_Exit_Insert_Mode : Special_Key_Code renames KEY_EIC;
++ KEY_CLEAR : constant Special_Key_Code
++ := Curses_Constants.KEY_CLEAR;
++ Key_Clear_Screen : Special_Key_Code renames KEY_CLEAR;
++ KEY_EOS : constant Special_Key_Code
++ := Curses_Constants.KEY_EOS;
++ Key_Clear_End_Of_Screen : Special_Key_Code renames KEY_EOS;
++ KEY_EOL : constant Special_Key_Code
++ := Curses_Constants.KEY_EOL;
++ Key_Clear_End_Of_Line : Special_Key_Code renames KEY_EOL;
++ KEY_SF : constant Special_Key_Code
++ := Curses_Constants.KEY_SF;
++ Key_Scroll_1_Forward : Special_Key_Code renames KEY_SF;
++ KEY_SR : constant Special_Key_Code
++ := Curses_Constants.KEY_SR;
++ Key_Scroll_1_Backward : Special_Key_Code renames KEY_SR;
++ KEY_NPAGE : constant Special_Key_Code
++ := Curses_Constants.KEY_NPAGE;
++ Key_Next_Page : Special_Key_Code renames KEY_NPAGE;
++ KEY_PPAGE : constant Special_Key_Code
++ := Curses_Constants.KEY_PPAGE;
++ Key_Previous_Page : Special_Key_Code renames KEY_PPAGE;
++ KEY_STAB : constant Special_Key_Code
++ := Curses_Constants.KEY_STAB;
++ Key_Set_Tab : Special_Key_Code renames KEY_STAB;
++ KEY_CTAB : constant Special_Key_Code
++ := Curses_Constants.KEY_CTAB;
++ Key_Clear_Tab : Special_Key_Code renames KEY_CTAB;
++ KEY_CATAB : constant Special_Key_Code
++ := Curses_Constants.KEY_CATAB;
++ Key_Clear_All_Tabs : Special_Key_Code renames KEY_CATAB;
++ KEY_ENTER : constant Special_Key_Code
++ := Curses_Constants.KEY_ENTER;
++ Key_Enter_Or_Send : Special_Key_Code renames KEY_ENTER;
++ KEY_SRESET : constant Special_Key_Code
++ := Curses_Constants.KEY_SRESET;
++ Key_Soft_Reset : Special_Key_Code renames KEY_SRESET;
++ Key_Reset : constant Special_Key_Code
++ := Curses_Constants.KEY_RESET;
++ Key_Print : constant Special_Key_Code
++ := Curses_Constants.KEY_PRINT;
++ KEY_LL : constant Special_Key_Code
++ := Curses_Constants.KEY_LL;
++ Key_Bottom : Special_Key_Code renames KEY_LL;
++ KEY_A1 : constant Special_Key_Code
++ := Curses_Constants.KEY_A1;
++ Key_Upper_Left_Of_Keypad : Special_Key_Code renames KEY_A1;
++ KEY_A3 : constant Special_Key_Code
++ := Curses_Constants.KEY_A3;
++ Key_Upper_Right_Of_Keypad : Special_Key_Code renames KEY_A3;
++ KEY_B2 : constant Special_Key_Code
++ := Curses_Constants.KEY_B2;
++ Key_Center_Of_Keypad : Special_Key_Code renames KEY_B2;
++ KEY_C1 : constant Special_Key_Code
++ := Curses_Constants.KEY_C1;
++ Key_Lower_Left_Of_Keypad : Special_Key_Code renames KEY_C1;
++ KEY_C3 : constant Special_Key_Code
++ := Curses_Constants.KEY_C3;
++ Key_Lower_Right_Of_Keypad : Special_Key_Code renames KEY_C3;
++ KEY_BTAB : constant Special_Key_Code
++ := Curses_Constants.KEY_BTAB;
++ Key_Back_Tab : Special_Key_Code renames KEY_BTAB;
++ KEY_BEG : constant Special_Key_Code
++ := Curses_Constants.KEY_BEG;
++ Key_Beginning : Special_Key_Code renames KEY_BEG;
++ Key_Cancel : constant Special_Key_Code
++ := Curses_Constants.KEY_CANCEL;
++ Key_Close : constant Special_Key_Code
++ := Curses_Constants.KEY_CLOSE;
++ Key_Command : constant Special_Key_Code
++ := Curses_Constants.KEY_COMMAND;
++ Key_Copy : constant Special_Key_Code
++ := Curses_Constants.KEY_COPY;
++ Key_Create : constant Special_Key_Code
++ := Curses_Constants.KEY_CREATE;
++ Key_End : constant Special_Key_Code
++ := Curses_Constants.KEY_END;
++ Key_Exit : constant Special_Key_Code
++ := Curses_Constants.KEY_EXIT;
++ Key_Find : constant Special_Key_Code
++ := Curses_Constants.KEY_FIND;
++ Key_Help : constant Special_Key_Code
++ := Curses_Constants.KEY_HELP;
++ Key_Mark : constant Special_Key_Code
++ := Curses_Constants.KEY_MARK;
++ Key_Message : constant Special_Key_Code
++ := Curses_Constants.KEY_MESSAGE;
++ Key_Move : constant Special_Key_Code
++ := Curses_Constants.KEY_MOVE;
++ Key_Next : constant Special_Key_Code
++ := Curses_Constants.KEY_NEXT;
++ Key_Open : constant Special_Key_Code
++ := Curses_Constants.KEY_OPEN;
++ Key_Options : constant Special_Key_Code
++ := Curses_Constants.KEY_OPTIONS;
++ Key_Previous : constant Special_Key_Code
++ := Curses_Constants.KEY_PREVIOUS;
++ Key_Redo : constant Special_Key_Code
++ := Curses_Constants.KEY_REDO;
++ Key_Reference : constant Special_Key_Code
++ := Curses_Constants.KEY_REFERENCE;
++ Key_Refresh : constant Special_Key_Code
++ := Curses_Constants.KEY_REFRESH;
++ Key_Replace : constant Special_Key_Code
++ := Curses_Constants.KEY_REPLACE;
++ Key_Restart : constant Special_Key_Code
++ := Curses_Constants.KEY_RESTART;
++ Key_Resume : constant Special_Key_Code
++ := Curses_Constants.KEY_RESUME;
++ Key_Save : constant Special_Key_Code
++ := Curses_Constants.KEY_SAVE;
++ KEY_SBEG : constant Special_Key_Code
++ := Curses_Constants.KEY_SBEG;
++ Key_Shift_Begin : Special_Key_Code renames KEY_SBEG;
++ KEY_SCANCEL : constant Special_Key_Code
++ := Curses_Constants.KEY_SCANCEL;
++ Key_Shift_Cancel : Special_Key_Code renames KEY_SCANCEL;
++ KEY_SCOMMAND : constant Special_Key_Code
++ := Curses_Constants.KEY_SCOMMAND;
++ Key_Shift_Command : Special_Key_Code renames KEY_SCOMMAND;
++ KEY_SCOPY : constant Special_Key_Code
++ := Curses_Constants.KEY_SCOPY;
++ Key_Shift_Copy : Special_Key_Code renames KEY_SCOPY;
++ KEY_SCREATE : constant Special_Key_Code
++ := Curses_Constants.KEY_SCREATE;
++ Key_Shift_Create : Special_Key_Code renames KEY_SCREATE;
++ KEY_SDC : constant Special_Key_Code
++ := Curses_Constants.KEY_SDC;
++ Key_Shift_Delete_Char : Special_Key_Code renames KEY_SDC;
++ KEY_SDL : constant Special_Key_Code
++ := Curses_Constants.KEY_SDL;
++ Key_Shift_Delete_Line : Special_Key_Code renames KEY_SDL;
++ Key_Select : constant Special_Key_Code
++ := Curses_Constants.KEY_SELECT;
++ KEY_SEND : constant Special_Key_Code
++ := Curses_Constants.KEY_SEND;
++ Key_Shift_End : Special_Key_Code renames KEY_SEND;
++ KEY_SEOL : constant Special_Key_Code
++ := Curses_Constants.KEY_SEOL;
++ Key_Shift_Clear_End_Of_Line : Special_Key_Code renames KEY_SEOL;
++ KEY_SEXIT : constant Special_Key_Code
++ := Curses_Constants.KEY_SEXIT;
++ Key_Shift_Exit : Special_Key_Code renames KEY_SEXIT;
++ KEY_SFIND : constant Special_Key_Code
++ := Curses_Constants.KEY_SFIND;
++ Key_Shift_Find : Special_Key_Code renames KEY_SFIND;
++ KEY_SHELP : constant Special_Key_Code
++ := Curses_Constants.KEY_SHELP;
++ Key_Shift_Help : Special_Key_Code renames KEY_SHELP;
++ KEY_SHOME : constant Special_Key_Code
++ := Curses_Constants.KEY_SHOME;
++ Key_Shift_Home : Special_Key_Code renames KEY_SHOME;
++ KEY_SIC : constant Special_Key_Code
++ := Curses_Constants.KEY_SIC;
++ Key_Shift_Insert_Char : Special_Key_Code renames KEY_SIC;
++ KEY_SLEFT : constant Special_Key_Code
++ := Curses_Constants.KEY_SLEFT;
++ Key_Shift_Cursor_Left : Special_Key_Code renames KEY_SLEFT;
++ KEY_SMESSAGE : constant Special_Key_Code
++ := Curses_Constants.KEY_SMESSAGE;
++ Key_Shift_Message : Special_Key_Code renames KEY_SMESSAGE;
++ KEY_SMOVE : constant Special_Key_Code
++ := Curses_Constants.KEY_SMOVE;
++ Key_Shift_Move : Special_Key_Code renames KEY_SMOVE;
++ KEY_SNEXT : constant Special_Key_Code
++ := Curses_Constants.KEY_SNEXT;
++ Key_Shift_Next_Page : Special_Key_Code renames KEY_SNEXT;
++ KEY_SOPTIONS : constant Special_Key_Code
++ := Curses_Constants.KEY_SOPTIONS;
++ Key_Shift_Options : Special_Key_Code renames KEY_SOPTIONS;
++ KEY_SPREVIOUS : constant Special_Key_Code
++ := Curses_Constants.KEY_SPREVIOUS;
++ Key_Shift_Previous_Page : Special_Key_Code renames KEY_SPREVIOUS;
++ KEY_SPRINT : constant Special_Key_Code
++ := Curses_Constants.KEY_SPRINT;
++ Key_Shift_Print : Special_Key_Code renames KEY_SPRINT;
++ KEY_SREDO : constant Special_Key_Code
++ := Curses_Constants.KEY_SREDO;
++ Key_Shift_Redo : Special_Key_Code renames KEY_SREDO;
++ KEY_SREPLACE : constant Special_Key_Code
++ := Curses_Constants.KEY_SREPLACE;
++ Key_Shift_Replace : Special_Key_Code renames KEY_SREPLACE;
++ KEY_SRIGHT : constant Special_Key_Code
++ := Curses_Constants.KEY_SRIGHT;
++ Key_Shift_Cursor_Right : Special_Key_Code renames KEY_SRIGHT;
++ KEY_SRSUME : constant Special_Key_Code
++ := Curses_Constants.KEY_SRSUME;
++ Key_Shift_Resume : Special_Key_Code renames KEY_SRSUME;
++ KEY_SSAVE : constant Special_Key_Code
++ := Curses_Constants.KEY_SSAVE;
++ Key_Shift_Save : Special_Key_Code renames KEY_SSAVE;
++ KEY_SSUSPEND : constant Special_Key_Code
++ := Curses_Constants.KEY_SSUSPEND;
++ Key_Shift_Suspend : Special_Key_Code renames KEY_SSUSPEND;
++ KEY_SUNDO : constant Special_Key_Code
++ := Curses_Constants.KEY_SUNDO;
++ Key_Shift_Undo : Special_Key_Code renames KEY_SUNDO;
++ Key_Suspend : constant Special_Key_Code
++ := Curses_Constants.KEY_SUSPEND;
++ Key_Undo : constant Special_Key_Code
++ := Curses_Constants.KEY_UNDO;
++ Key_Mouse : constant Special_Key_Code
++ := Curses_Constants.KEY_MOUSE;
++ Key_Resize : constant Special_Key_Code
++ := Curses_Constants.KEY_RESIZE;
++ Key_Max : constant Special_Key_Code
+ := Special_Key_Code'Last;
+
+ subtype User_Key_Code is Key_Code
+@@ -90,12 +386,7 @@
+ -- This is reserved for user defined key codes. The range between Key_Max
+ -- and the first user code is reserved for subsystems like menu and forms.
+
+- -- For those who like to use the original key names we produce them were
+- -- they differ from the original. Please note that they may differ in
+- -- lower/upper case.
+-include(`Old_Keys')dnl
+-
+-------------------------------------------------------------------------------
++ --------------------------------------------------------------------------
+
+ type Color_Number is range -1 .. Integer (Interfaces.C.short'Last);
+ for Color_Number'Size use Interfaces.C.short'Size;
+@@ -104,7 +395,15 @@
+ -- (potentially) definable colors. Some of those indices are
+ -- predefined (see below), although they may not really exist.
+
+-include(`Color_Defs')
++ Black : constant Color_Number := Curses_Constants.COLOR_BLACK;
++ Red : constant Color_Number := Curses_Constants.COLOR_RED;
++ Green : constant Color_Number := Curses_Constants.COLOR_GREEN;
++ Yellow : constant Color_Number := Curses_Constants.COLOR_YELLOW;
++ Blue : constant Color_Number := Curses_Constants.COLOR_BLUE;
++ Magenta : constant Color_Number := Curses_Constants.COLOR_MAGENTA;
++ Cyan : constant Color_Number := Curses_Constants.COLOR_CYAN;
++ White : constant Color_Number := Curses_Constants.COLOR_WHITE;
++
+ type RGB_Value is range 0 .. Integer (Interfaces.C.short'Last);
+ for RGB_Value'Size use Interfaces.C.short'Size;
+ -- Some system may allow to redefine a color by setting RGB values.
+@@ -117,8 +416,73 @@
+ -- two colors described by Color_Numbers, one for the foreground and
+ -- the other for the background
+
+-include(`Character_Attribute_Set_Rep')
+- -- (n)curses uses all but the lowest 16 Bits for Attributes.
++ type Character_Attribute_Set is
++ record
++ Stand_Out : Boolean;
++ Under_Line : Boolean;
++ Reverse_Video : Boolean;
++ Blink : Boolean;
++ Dim_Character : Boolean;
++ Bold_Character : Boolean;
++ Protected_Character : Boolean;
++ Invisible_Character : Boolean;
++ Alternate_Character_Set : Boolean;
++ Horizontal : Boolean;
++ Left : Boolean;
++ Low : Boolean;
++ Right : Boolean;
++ Top : Boolean;
++ Vertical : Boolean;
++ end record;
++
++ for Character_Attribute_Set use
++ record
++ Stand_Out at 0 range
++ Curses_Constants.A_STANDOUT_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_STANDOUT_Last - Curses_Constants.Attr_First;
++ Under_Line at 0 range
++ Curses_Constants.A_UNDERLINE_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_UNDERLINE_Last - Curses_Constants.Attr_First;
++ Reverse_Video at 0 range
++ Curses_Constants.A_REVERSE_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_REVERSE_Last - Curses_Constants.Attr_First;
++ Blink at 0 range
++ Curses_Constants.A_BLINK_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_BLINK_Last - Curses_Constants.Attr_First;
++ Dim_Character at 0 range
++ Curses_Constants.A_DIM_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_DIM_Last - Curses_Constants.Attr_First;
++ Bold_Character at 0 range
++ Curses_Constants.A_BOLD_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_BOLD_Last - Curses_Constants.Attr_First;
++ Protected_Character at 0 range
++ Curses_Constants.A_PROTECT_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_PROTECT_Last - Curses_Constants.Attr_First;
++ Invisible_Character at 0 range
++ Curses_Constants.A_INVIS_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_INVIS_Last - Curses_Constants.Attr_First;
++ Alternate_Character_Set at 0 range
++ Curses_Constants.A_ALTCHARSET_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_ALTCHARSET_Last - Curses_Constants.Attr_First;
++ Horizontal at 0 range
++ Curses_Constants.A_HORIZONTAL_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_HORIZONTAL_Last - Curses_Constants.Attr_First;
++ Left at 0 range
++ Curses_Constants.A_LEFT_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_LEFT_Last - Curses_Constants.Attr_First;
++ Low at 0 range
++ Curses_Constants.A_LOW_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_LOW_Last - Curses_Constants.Attr_First;
++ Right at 0 range
++ Curses_Constants.A_RIGHT_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_RIGHT_Last - Curses_Constants.Attr_First;
++ Top at 0 range
++ Curses_Constants.A_TOP_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_TOP_Last - Curses_Constants.Attr_First;
++ Vertical at 0 range
++ Curses_Constants.A_VERTICAL_First - Curses_Constants.Attr_First
++ .. Curses_Constants.A_VERTICAL_Last - Curses_Constants.Attr_First;
++ end record;
+
+ Normal_Video : constant Character_Attribute_Set := (others => False);
+
+@@ -128,17 +492,29 @@
+ Color : Color_Pair;
+ Ch : Character;
+ end record;
+- pragma Convention (C, Attributed_Character);
++ pragma Convention (C_Pass_By_Copy, Attributed_Character);
+ -- This is the counterpart for the chtype in C.
+
+-include(`AC_Rep')
++ for Attributed_Character use
++ record
++ Ch at 0 range Curses_Constants.A_CHARTEXT_First
++ .. Curses_Constants.A_CHARTEXT_Last;
++ Color at 0 range Curses_Constants.A_COLOR_First
++ .. Curses_Constants.A_COLOR_Last;
++ pragma Warnings (Off);
++ Attr at 0 range Curses_Constants.Attr_First
++ .. Curses_Constants.Attr_Last;
++ pragma Warnings (On);
++ end record;
++ for Attributed_Character'Size use Curses_Constants.chtype_Size;
++
+ Default_Character : constant Attributed_Character
+ := (Ch => Character'First,
+ Color => Color_Pair'First,
+ Attr => (others => False)); -- preelaboratable Normal_Video
+
+ type Attributed_String is array (Positive range <>) of Attributed_Character;
+- pragma Pack (Attributed_String);
++ pragma Convention (C, Attributed_String);
+ -- In this binding we allow strings of attributed characters.
+
+ ------------------
+@@ -188,7 +564,78 @@
+ function Number_Of_Color_Pairs return Natural;
+ pragma Inline (Number_Of_Color_Pairs);
+
+-include(`ACS_Map')dnl
++ subtype ACS_Index is Character range
++ Character'Val (0) .. Character'Val (127);
++ function ACS_Map (Index : ACS_Index) return Attributed_Character;
++ pragma Import (C, ACS_Map, "acs_map_as_function");
++
++ -- Constants for several characters from the Alternate Character Set
++ -- You must use these constants as indices into the ACS_Map function
++ -- to get the corresponding attributed character at runtime
++ ACS_Upper_Left_Corner : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_ULCORNER);
++ ACS_Lower_Left_Corner : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_LLCORNER);
++ ACS_Upper_Right_Corner : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_URCORNER);
++ ACS_Lower_Right_Corner : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_LRCORNER);
++ ACS_Left_Tee : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_LTEE);
++ ACS_Right_Tee : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_RTEE);
++ ACS_Bottom_Tee : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_BTEE);
++ ACS_Top_Tee : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_TTEE);
++ ACS_Horizontal_Line : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_HLINE);
++ ACS_Vertical_Line : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_VLINE);
++ ACS_Plus_Symbol : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_PLUS);
++ ACS_Scan_Line_1 : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_S1);
++ ACS_Scan_Line_9 : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_S9);
++ ACS_Diamond : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_DIAMOND);
++ ACS_Checker_Board : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_CKBOARD);
++ ACS_Degree : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_DEGREE);
++ ACS_Plus_Minus : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_PLMINUS);
++ ACS_Bullet : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_BULLET);
++ ACS_Left_Arrow : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_LARROW);
++ ACS_Right_Arrow : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_RARROW);
++ ACS_Down_Arrow : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_DARROW);
++ ACS_Up_Arrow : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_UARROW);
++ ACS_Board_Of_Squares : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_BOARD);
++ ACS_Lantern : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_LANTERN);
++ ACS_Solid_Block : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_BLOCK);
++ ACS_Scan_Line_3 : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_S3);
++ ACS_Scan_Line_7 : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_S7);
++ ACS_Less_Or_Equal : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_LEQUAL);
++ ACS_Greater_Or_Equal : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_GEQUAL);
++ ACS_PI : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_PI);
++ ACS_Not_Equal : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_NEQUAL);
++ ACS_Sterling : constant ACS_Index
++ := Character'Val (Curses_Constants.ACS_STERLING);
+
+ -- MANPAGE(`curs_initscr.3x')
+ -- | Not implemented: newterm, set_term, delscreen
+@@ -196,11 +643,13 @@
+ -- ANCHOR(`stdscr',`Standard_Window')
+ function Standard_Window return Window;
+ -- AKA
++ pragma Import (C, Standard_Window, "stdscr_as_function");
+ pragma Inline (Standard_Window);
+
+ -- ANCHOR(`curscr',`Current_Window')
+ function Current_Window return Window;
+ -- AKA
++ pragma Import (C, Current_Window, "curscr_as_function");
+ pragma Inline (Current_Window);
+
+ -- ANCHOR(`initscr()',`Init_Screen')
+@@ -1476,6 +1925,8 @@
+
+ -- MANPAGE(`default_colors.3x')
+
++ Default_Color : constant Color_Number := -1;
++
+ -- ANCHOR(`use_default_colors()',`Use_Default_Colors')
+ procedure Use_Default_Colors;
+ -- AKA
+@@ -1553,7 +2004,11 @@
+ -- The next constants are generated and may be different on your
+ -- architecture.
+ --
+-include(`Window_Offsets')dnl
++
++ Sizeof_Bool : constant := Curses_Constants.Sizeof_Bool;
++
++ type Curses_Bool is mod 2 ** Sizeof_Bool;
++
+ Curses_Bool_False : constant Curses_Bool := 0;
+
+ end Terminal_Interface.Curses;
+Index: Ada95/include/ncurses_defs
+Prereq: 1.41
+--- ncurses-5.9/Ada95/include/ncurses_defs 2008-11-16 00:19:59.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/include/ncurses_defs 2013-04-27 19:50:17.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: ncurses_defs,v 1.41 2008/11/16 00:19:59 juergen Exp $
++# $Id: ncurses_defs,v 1.44 2013/04/27 19:50:17 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. #
++# Copyright (c) 2000-2012,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -33,7 +33,6 @@
+
+ BROKEN_LINKER
+ BSD_TPUTS
+-CC_HAS_PROTOS
+ CPP_HAS_PARAM_INIT
+ CURSES_ACS_ARRAY acs_map
+ CURSES_WACS_ARRAY _nc_wacs
+@@ -120,7 +119,6 @@
+ HAVE_SIZECHANGE
+ HAVE_SLK_COLOR
+ HAVE_SLK_INIT 1
+-HAVE_STRDUP
+ HAVE_STRSTR
+ HAVE_SYMLINK
+ HAVE_SYS_BSDTYPES_H
+@@ -174,7 +172,6 @@
+ NEED_PTEM_H
+ NO_LEAKS
+ PURE_TERMINFO
+-RETSIGTYPE
+ STDC_HEADERS
+ SVR4_ACTION
+ SVR4_TERMIO
+Index: Ada95/make-tar.sh
+Prereq: 1.12
+--- ncurses-5.9/Ada95/make-tar.sh 2011-03-26 19:07:38.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/make-tar.sh 2013-10-26 23:10:24.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+-# $Id: make-tar.sh,v 1.12 2011/03/26 19:07:38 tom Exp $
++# $Id: make-tar.sh,v 1.14 2013/10/26 23:10:24 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 2010-2011,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -66,11 +66,11 @@
+ make_changelog() {
+ test -f $1 && chmod u+w $1
+ cat >$1 <<EOF
+-`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_PATCH) unstable; urgency=low
++`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR-$NCURSES_PATCH) unstable; urgency=low
+
+ * snapshot of ncurses subpackage for $PKG_NAME.
+
+- -- `head -1 $HOME/.signature` `date -R`
++ -- `head -n 1 $HOME/.signature` `date -R`
+ EOF
+ }
+
+@@ -108,7 +108,10 @@
+ do
+ edit_specfile $spec
+ done
+-make_changelog $BUILD/$ROOTNAME/package/debian/changelog
++for spec in $BUILD/$ROOTNAME/package/debian*
++do
++ make_changelog $spec/changelog
++done
+
+ cp -p ../man/MKada_config.in $BUILD/$ROOTNAME/doc/
+ if test -z "$NO_HTML_DOCS"
+Index: Ada95/package/AdaCurses.spec
+Prereq: 1.12
+--- ncurses-5.9/Ada95/package/AdaCurses.spec 2011-04-01 00:08:32.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/package/AdaCurses.spec 2014-06-07 17:49:23.000000000 +0000
+@@ -2,7 +2,7 @@
+ %define AppProgram AdaCurses
+ %define AppVersion MAJOR.MINOR
+ %define AppRelease YYYYMMDD
+-# $Id: AdaCurses.spec,v 1.12 2011/04/01 00:08:32 tom Exp $
++# $Id: AdaCurses.spec,v 1.13 2014/06/07 17:49:23 tom Exp $
+ Name: %{AppProgram}
+ Version: %{AppVersion}
+ Release: %{AppRelease}
+@@ -68,11 +68,11 @@
+ %changelog
+ # each patch should add its ChangeLog entries here
+
+-* Thu Mar 31 2010 Thomas Dickey
++* Thu Mar 31 2011 Thomas Dickey
+ - use --with-shared option for consistency with --with-ada-sharelib
+ - ensure that MY_DATADIR is set when installing examples
+ - add ada_libdir symbol to handle special case where libdir is /usr/lib64
+ - use --disable-rpath-link to link sample programs without rpath
+
+-* Fri Mar 25 2010 Thomas Dickey
++* Fri Mar 25 2011 Thomas Dickey
+ - initial version
+Index: Ada95/package/debian/source/format
+--- ncurses-5.9/Ada95/package/debian/source/format 2010-12-30 14:23:50.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/package/debian/source/format 2014-06-02 00:05:04.000000000 +0000
+@@ -1 +1 @@
+-3.0 (native)
++3.0 (quilt)
+Index: Ada95/samples/Makefile.in
+Prereq: 1.46
+--- ncurses-5.9/Ada95/samples/Makefile.in 2011-03-28 23:45:08.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/Makefile.in 2012-10-06 19:00:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ #
+ # Author: Juergen Pfeifer, 1996
+ #
+-# $Id: Makefile.in,v 1.46 2011/03/28 23:45:08 tom Exp $
++# $Id: Makefile.in,v 1.48 2012/10/06 19:00:42 tom Exp $
+ #
+ .SUFFIXES:
+
+@@ -36,12 +36,13 @@
+ VPATH = @srcdir@
+ THIS = Makefile
+
+-x = @PROG_EXT@
++x = @EXEEXT@
+
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
++datarootdir = @datarootdir@
+ datadir = @datadir@
+ libdir = @libdir@
+ includedir = @includedir@
+Index: Ada95/samples/ncurses2-demo_forms.adb
+--- ncurses-5.9/Ada95/samples/ncurses2-demo_forms.adb 2011-03-23 00:44:12.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/ncurses2-demo_forms.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2006,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- $Revision: 1.6 $
+--- $Date: 2011/03/23 00:44:12 $
++-- $Revision: 1.7 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with ncurses2.util; use ncurses2.util;
+@@ -317,8 +317,9 @@
+ function my_form_driver (f : Form; c : Key_Code) return Boolean is
+ flag : constant Driver_Result := Driver (f, F_Validate_Field);
+ begin
+- if c = Form_Request_Code'Last + 1
+- and flag = Form_Ok then
++ if c = Form_Request_Code'Last + 1 and
++ flag = Form_Ok
++ then
+ return True;
+ else
+ Beep;
+Index: Ada95/samples/ncurses2-demo_pad.adb
+--- ncurses-5.9/Ada95/samples/ncurses2-demo_pad.adb 2011-03-23 00:44:12.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/ncurses2-demo_pad.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2008,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- $Revision: 1.8 $
+--- $Date: 2011/03/23 00:44:12 $
++-- $Revision: 1.9 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with ncurses2.util; use ncurses2.util;
+@@ -437,7 +437,8 @@
+ -- pan rightwards
+ -- if (basex + portx - (pymax > porty) < pxmax)
+ if basex + portx -
+- Column_Position (greater (pymax, porty)) < pxmax then
++ Column_Position (greater (pymax, porty)) < pxmax
++ then
+ -- if basex + portx < pxmax or
+ -- (pymax > porty and basex + portx - 1 < pxmax) then
+ basex := basex + 1;
+@@ -457,7 +458,8 @@
+ -- pan downwards
+ -- same as if (basey + porty - (pxmax > portx) < pymax)
+ if basey + porty -
+- Line_Position (greater (pxmax, portx)) < pymax then
++ Line_Position (greater (pxmax, portx)) < pymax
++ then
+ -- if (basey + porty < pymax) or
+ -- (pxmax > portx and basey + porty - 1 < pymax) then
+ basey := basey + 1;
+Index: Ada95/samples/ncurses2-getch_test.adb
+--- ncurses-5.9/Ada95/samples/ncurses2-getch_test.adb 2009-12-26 17:38:58.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/ncurses2-getch_test.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2008,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- $Revision: 1.8 $
+--- $Date: 2009/12/26 17:38:58 $
++-- $Revision: 1.9 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ -- Character input test
+@@ -210,8 +210,10 @@
+ end;
+ elsif c = Character'Pos ('s') then
+ ShellOut (True);
+- elsif c = Character'Pos ('x') or c = Character'Pos ('q') or
+- (c = Key_None and blockflag = Blocking) then
++ elsif c = Character'Pos ('x') or
++ c = Character'Pos ('q') or
++ (c = Key_None and blockflag = Blocking)
++ then
+ exit;
+ elsif c = Character'Pos ('?') then
+ Add (Str => "Type any key to see its keypad value. Also:");
+Index: Ada95/samples/ncurses2-overlap_test.adb
+--- ncurses-5.9/Ada95/samples/ncurses2-overlap_test.adb 2011-03-19 12:07:18.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/ncurses2-overlap_test.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2004,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- $Revision: 1.5 $
+--- $Date: 2011/03/19 12:07:18 $
++-- $Revision: 1.6 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with ncurses2.util; use ncurses2.util;
+@@ -72,8 +72,9 @@
+ Get_Size (win, y1, x1);
+ for y in 0 .. y1 - 1 loop
+ for x in 0 .. x1 - 1 loop
+- if ((x > (x1 - 1) / 3) and (x <= (2 * (x1 - 1)) / 3))
+- or (((y > (y1 - 1) / 3) and (y <= (2 * (y1 - 1)) / 3))) then
++ if ((x > (x1 - 1) / 3) and (x <= (2 * (x1 - 1)) / 3)) or
++ (((y > (y1 - 1) / 3) and (y <= (2 * (y1 - 1)) / 3)))
++ then
+ Move_Cursor (win, y, x);
+ Add (win, Ch => ch);
+ end if;
+Index: Ada95/samples/ncurses2-trace_set.adb
+--- ncurses-5.9/Ada95/samples/ncurses2-trace_set.adb 2011-03-23 00:40:33.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/ncurses2-trace_set.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2008,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- $Revision: 1.5 $
+--- $Date: 2011/03/23 00:40:33 $
++-- $Revision: 1.6 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with ncurses2.util; use ncurses2.util;
+@@ -141,7 +141,8 @@
+ (super.Internal_Calls or not sub.Internal_Calls) and
+ (super.Character_Calls or not sub.Character_Calls) and
+ (super.Termcap_TermInfo or not sub.Termcap_TermInfo) and
+- True then
++ True
++ then
+ return True;
+ else
+ return False;
+@@ -250,93 +251,107 @@
+ else
+
+ if subset (tlevel,
+- Trace_Attribute_Set'(Times => True, others => False)) then
++ Trace_Attribute_Set'(Times => True, others => False))
++ then
+ Append (buf, "Times");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+- Trace_Attribute_Set'(Tputs => True, others => False)) then
++ Trace_Attribute_Set'(Tputs => True, others => False))
++ then
+ Append (buf, "Tputs");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+- Trace_Attribute_Set'(Update => True, others => False)) then
++ Trace_Attribute_Set'(Update => True, others => False))
++ then
+ Append (buf, "Update");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Cursor_Move => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Cursor_Move");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Character_Output => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Character_Output");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+- Trace_Ordinary) then
++ Trace_Ordinary)
++ then
+ Append (buf, "Ordinary");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+- Trace_Attribute_Set'(Calls => True, others => False)) then
++ Trace_Attribute_Set'(Calls => True, others => False))
++ then
+ Append (buf, "Calls");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Virtual_Puts => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Virtual_Puts");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Input_Events => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Input_Events");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(TTY_State => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "TTY_State");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Internal_Calls => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Internal_Calls");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Character_Calls => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Character_Calls");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+ Trace_Attribute_Set'(Termcap_TermInfo => True,
+- others => False)) then
++ others => False))
++ then
+ Append (buf, "Termcap_TermInfo");
+ Append (buf, ", ");
+ end if;
+
+ if subset (tlevel,
+- Trace_Maximum) then
++ Trace_Maximum)
++ then
+ Append (buf, "Maximium");
+ Append (buf, ", ");
+ end if;
+Index: Ada95/samples/ncurses2-util.adb
+--- ncurses-5.9/Ada95/samples/ncurses2-util.adb 2008-07-26 18:51:20.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/ncurses2-util.adb 2014-05-24 21:32:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2006,2008 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2008,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,16 +35,12 @@
+ ------------------------------------------------------------------------------
+ -- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+ -- Version Control
+--- $Revision: 1.7 $
+--- $Date: 2008/07/26 18:51:20 $
++-- $Revision: 1.9 $
++-- $Date: 2014/05/24 21:32:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Ada.Text_IO; use Ada.Text_IO;
+
+-pragma Warnings (Off);
+-with Terminal_Interface.Curses.Aux;
+-pragma Warnings (On);
+-
+ with Terminal_Interface.Curses.Trace; use Terminal_Interface.Curses.Trace;
+
+ with Interfaces.C;
+@@ -115,7 +111,6 @@
+ procedure Cannot (s : String) is
+ use Interfaces.C;
+ use Interfaces.C.Strings;
+- use Terminal_Interface.Curses.Aux;
+ function getenv (x : char_array) return chars_ptr;
+ pragma Import (C, getenv, "getenv");
+ tmp1 : char_array (0 .. 10);
+Index: Ada95/samples/sample-explanation.adb
+--- ncurses-5.9/Ada95/samples/sample-explanation.adb 2011-03-26 22:33:29.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/sample-explanation.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control
+--- $Revision: 1.26 $
+--- $Date: 2011/03/26 22:33:29 $
++-- $Revision: 1.27 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ -- Poor mans help system. This scans a sequential file for key lines and
+@@ -321,8 +321,10 @@
+ Outer :
+ loop
+ exit Outer when not Next_Line;
+- if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
+- and then Buffer (1) = '#' then
++ if Last = (1 + Key'Length)
++ and then Key = Buffer (2 .. Last)
++ and then Buffer (1) = '#'
++ then
+ loop
+ exit when not Next_Line;
+ exit when Buffer (1) = '#';
+Index: Ada95/samples/sample-header_handler.adb
+--- ncurses-5.9/Ada95/samples/sample-header_handler.adb 2011-03-22 23:54:38.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/samples/sample-header_handler.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control
+--- $Revision: 1.19 $
+--- $Date: 2011/03/22 23:54:38 $
++-- $Revision: 1.20 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Ada.Calendar; use Ada.Calendar;
+@@ -121,8 +121,11 @@
+ D : constant Day_Number := Day (Now);
+ begin
+ if Header_Window /= Null_Window then
+- if Minute /= Display_Min or else Hour /= Display_Hour
+- or else Display_Day /= D or else Display_Month /= Mon then
++ if Minute /= Display_Min
++ or else Hour /= Display_Hour
++ or else Display_Day /= D
++ or else Display_Month /= Mon
++ then
+ Move_Cursor (Header_Window, 0, 0);
+ N_Out (D); Add (Header_Window, '.');
+ Add (Header_Window, Month_Names (Mon));
+Index: Ada95/src/Makefile.in
+Prereq: 1.60
+--- ncurses-5.9/Ada95/src/Makefile.in 2011-03-31 09:46:16.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/Makefile.in 2014-08-02 20:31:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ #
+ # Author: Juergen Pfeifer, 1996
+ #
+-# $Id: Makefile.in,v 1.60 2011/03/31 09:46:16 tom Exp $
++# $Id: Makefile.in,v 1.70 2014/08/02 20:31:47 tom Exp $
+ #
+ .SUFFIXES:
+
+@@ -215,25 +215,42 @@
+
+ $(ABASE)-trace.adb : $(srcdir)/$(ABASE)-trace.adb_p
+ rm -f $@
+- $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ -DPRAGMA_UNREF=@PRAGMA_UNREF@ $(srcdir)/$(ABASE)-trace.adb_p $@
++ $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ @GNATPREP_OPTS@ $(srcdir)/$(ABASE)-trace.adb_p $@
+
+ ###############################################################################
+-C_OBJS = c_varargs_to_ada.o ncurses_compat.o
++# Use these definitions when building a shared library.
++SHARED_C_OBJS = c_varargs_to_ada.o c_threaded_variables.o ncurses_compat.o
++SHARED_OBJS = $(SHARED_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
+
+ c_varargs_to_ada.o : $(srcdir)/c_varargs_to_ada.c
+ $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/c_varargs_to_ada.c
+
++c_threaded_variables.o : $(srcdir)/c_threaded_variables.c
++ $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/c_threaded_variables.c
++
+ ncurses_compat.o : $(srcdir)/ncurses_compat.c
+ $(CC) $(CFLAGS_DEFAULT) -c -o $@ $(srcdir)/ncurses_compat.c
+
+ ###############################################################################
++# Use these definitions when building a static library.
++STATIC_C_OBJS = static_c_varargs_to_ada.o static_c_threaded_variables.o static_ncurses_compat.o
++STATIC_OBJS = $(STATIC_C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
++
++static_c_varargs_to_ada.o : $(srcdir)/c_varargs_to_ada.c
++ $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/c_varargs_to_ada.c
++
++static_c_threaded_variables.o : $(srcdir)/c_threaded_variables.c
++ $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/c_threaded_variables.c
+
+-MIXED_OBJS = $(C_OBJS) @USE_OLD_MAKERULES@$(LIBOBJS) @cf_generic_objects@
++static_ncurses_compat.o : $(srcdir)/ncurses_compat.c
++ $(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/ncurses_compat.c
++
++###############################################################################
+
+ @USE_OLD_MAKERULES@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
+ @USE_OLD_MAKERULES@ $(BUILD_DIR_LIB) \
+-@USE_OLD_MAKERULES@ $(MIXED_OBJS)
+-@USE_OLD_MAKERULES@ $(AR) $(ARFLAGS) $@ $(MIXED_OBJS)
++@USE_OLD_MAKERULES@ $(STATIC_OBJS)
++@USE_OLD_MAKERULES@ $(AR) $(ARFLAGS) $@ $(STATIC_OBJS)
+
+ $(BUILD_DIR)/static-ali : ; mkdir -p $@
+ $(BUILD_DIR)/static-obj : ; mkdir -p $@
+@@ -245,10 +262,10 @@
+
+ @USE_GNAT_PROJECTS@$(BUILD_DIR_LIB)/$(STATIC_LIBNAME) :: \
+ @USE_GNAT_PROJECTS@ $(ABASE)-trace.adb \
+-@USE_GNAT_PROJECTS@ $(C_OBJS) \
++@USE_GNAT_PROJECTS@ $(STATIC_C_OBJS) \
+ @USE_GNAT_PROJECTS@ $(STATIC_DIRS)
+ @USE_GNAT_PROJECTS@ $(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=static
+-@USE_GNAT_PROJECTS@ $(AR) $(ARFLAGS) $@ $(C_OBJS)
++@USE_GNAT_PROJECTS@ $(AR) $(ARFLAGS) $@ $(STATIC_C_OBJS)
+ @USE_GNAT_PROJECTS@
+ @USE_GNAT_LIBRARIES@install \
+ @USE_GNAT_LIBRARIES@install.libs :: \
+@@ -274,8 +291,11 @@
+ $(BUILD_DIR)/dynamic-obj
+
+ @MAKE_ADA_SHAREDLIB@all :: $(BUILD_DIR_LIB)/$(SHARED_LIBNAME)
+-@MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: $(ABASE)-trace.adb $(SHARED_DIRS)
+-@MAKE_ADA_SHAREDLIB@ cp $(MIXED_OBJS) $(BUILD_DIR)/dynamic-obj/
++@MAKE_ADA_SHAREDLIB@$(BUILD_DIR_LIB)/$(SHARED_LIBNAME) :: \
++@MAKE_ADA_SHAREDLIB@ $(ABASE)-trace.adb \
++@MAKE_ADA_SHAREDLIB@ $(SHARED_DIRS) \
++@MAKE_ADA_SHAREDLIB@ $(SHARED_OBJS)
++@MAKE_ADA_SHAREDLIB@ cp $(SHARED_OBJS) $(BUILD_DIR)/dynamic-obj/
+ @MAKE_ADA_SHAREDLIB@ $(ADAMAKE) $(ADAMAKEFLAGS) -XLIB_KIND=dynamic
+
+ install \
+Index: Ada95/src/c_threaded_variables.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/Ada95/src/c_threaded_variables.c 2014-05-24 21:35:22.000000000 +0000
+@@ -0,0 +1,56 @@
++/****************************************************************************
++ * Copyright (c) 2011,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "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: Nicolas Boulenguez, 2011 *
++ ****************************************************************************/
++
++#include "c_threaded_variables.h"
++
++#define WRAP(type, name) \
++ type \
++ name ## _as_function () \
++ { \
++ return name; \
++ }
++/* *INDENT-OFF* */
++WRAP(WINDOW *, stdscr)
++WRAP(WINDOW *, curscr)
++
++WRAP(int, LINES)
++WRAP(int, COLS)
++WRAP(int, TABSIZE)
++WRAP(int, COLORS)
++WRAP(int, COLOR_PAIRS)
++
++chtype
++acs_map_as_function(char inx)
++{
++ return acs_map[(unsigned char) inx];
++}
++/* *INDENT-ON* */
+Index: Ada95/src/c_threaded_variables.h
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/Ada95/src/c_threaded_variables.h 2014-05-24 21:31:57.000000000 +0000
+@@ -0,0 +1,46 @@
++/****************************************************************************
++ * Copyright (c) 2011,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++#ifndef __C_THREADED_VARIABLES_H
++#define __C_THREADED_VARIABLES_H
++
++#include <curses.h>
++
++extern WINDOW *stdscr_as_function(void);
++extern WINDOW *curscr_as_function(void);
++
++extern int LINES_as_function(void);
++extern int LINES_as_function(void);
++extern int COLS_as_function(void);
++extern int TABSIZE_as_function(void);
++extern int COLORS_as_function(void);
++extern int COLOR_PAIRS_as_function(void);
++
++extern chtype acs_map_as_function(char /* index */ );
++
++#endif /* __C_THREADED_VARIABLES_H */
+Index: Ada95/src/c_varargs_to_ada.c
+Prereq: 1.4
+--- ncurses-5.9/Ada95/src/c_varargs_to_ada.c 2011-03-19 19:07:39.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/c_varargs_to_ada.c 2014-05-24 21:32:18.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,12 +32,12 @@
+
+ /*
+ Version Control
+- $Id: c_varargs_to_ada.c,v 1.4 2011/03/19 19:07:39 tom Exp $
++ $Id: c_varargs_to_ada.c,v 1.6 2014/05/24 21:32:18 tom Exp $
+ --------------------------------------------------------------------------*/
+ /*
+ */
+
+-#include <c_varargs_to_ada.h>
++#include "c_varargs_to_ada.h"
+
+ int
+ set_field_type_alnum(FIELD *field,
+Index: Ada95/src/library.gpr
+Prereq: 1.7
+--- ncurses-5.9/Ada95/src/library.gpr 2011-03-18 23:10:28.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/library.gpr 2014-06-01 01:13:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2010,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 2010-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written --
+ -- authorization. --
+ ------------------------------------------------------------------------------
+--- $Id: library.gpr,v 1.7 2011/03/18 23:10:28 Nicolas.Boulenguez Exp $
++-- $Id: library.gpr,v 1.9 2014/06/01 01:13:09 tom Exp $
+ -- http://gcc.gnu.org/onlinedocs/gnat_ugn_unw/Library-Projects.html
+ -- http://www.adaworld.com/debian/debian-ada-policy.html
+ project Library is
+Index: Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb 2011-03-19 00:45:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.11 $
+--- $Date: 2011/03/19 00:45:37 $
++-- $Revision: 1.13 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -47,15 +47,11 @@
+ Typ : Alpha_Field)
+ is
+ function Set_Fld_Type (F : Field := Fld;
+- Arg1 : C_Int) return C_Int;
++ Arg1 : C_Int) return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_alpha");
+
+- Res : Eti_Error;
+ begin
+- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width)));
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb 2011-03-19 00:45:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.11 $
+--- $Date: 2011/03/19 00:45:37 $
++-- $Revision: 1.13 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -47,15 +47,11 @@
+ Typ : AlphaNumeric_Field)
+ is
+ function Set_Fld_Type (F : Field := Fld;
+- Arg1 : C_Int) return C_Int;
++ Arg1 : C_Int) return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_alnum");
+
+- Res : Eti_Error;
+ begin
+- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width)));
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb 2011-03-22 23:03:27.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,7 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.10 $
++-- $Revision: 1.12 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Ada.Unchecked_Deallocation;
+@@ -94,21 +94,18 @@
+ function Set_Fld_Type (F : Field := Fld;
+ Arg1 : chars_ptr_array;
+ Arg2 : C_Int;
+- Arg3 : C_Int) return C_Int;
++ Arg3 : C_Int) return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_enum");
+
+- Res : Eti_Error;
+ begin
+ if Typ.Arr = null then
+ raise Form_Exception;
+ end if;
+- Res := Set_Fld_Type (Arg1 => Typ.Arr.all,
+- Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
+- Arg3 => C_Int (Boolean'Pos
+- (Typ.Match_Must_Be_Unique)));
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception
++ (Set_Fld_Type
++ (Arg1 => Typ.Arr.all,
++ Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
++ Arg3 => C_Int (Boolean'Pos (Typ.Match_Must_Be_Unique))));
+ Wrap_Builtin (Fld, Typ, C_Choice_Router);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb 2011-03-19 00:45:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.11 $
+--- $Date: 2011/03/19 00:45:37 $
++-- $Revision: 1.13 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -49,17 +49,13 @@
+ function Set_Fld_Type (F : Field := Fld;
+ Arg1 : C_Int;
+ Arg2 : C_Long_Int;
+- Arg3 : C_Long_Int) return C_Int;
++ Arg3 : C_Long_Int) return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_integer");
+
+- Res : Eti_Error;
+ begin
+- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
+- Arg2 => C_Long_Int (Typ.Lower_Limit),
+- Arg3 => C_Long_Int (Typ.Upper_Limit));
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
++ Arg2 => C_Long_Int (Typ.Lower_Limit),
++ Arg3 => C_Long_Int (Typ.Upper_Limit)));
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb 2011-03-19 00:45:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.11 $
+--- $Date: 2011/03/19 00:45:37 $
++-- $Revision: 1.13 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -47,15 +47,11 @@
+ Typ : Internet_V4_Address_Field)
+ is
+ function Set_Fld_Type (F : Field := Fld)
+- return C_Int;
++ return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_ipv4");
+
+- Res : Eti_Error;
+ begin
+- Res := Set_Fld_Type;
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type);
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb 2011-03-19 00:45:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.12 $
+--- $Date: 2011/03/19 00:45:37 $
++-- $Revision: 1.14 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Interfaces.C;
+@@ -52,17 +52,13 @@
+ function Set_Fld_Type (F : Field := Fld;
+ Arg1 : C_Int;
+ Arg2 : Double;
+- Arg3 : Double) return C_Int;
++ Arg3 : Double) return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_numeric");
+
+- Res : Eti_Error;
+ begin
+- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
+- Arg2 => Double (Typ.Lower_Limit),
+- Arg3 => Double (Typ.Upper_Limit));
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
++ Arg2 => Double (Typ.Lower_Limit),
++ Arg3 => Double (Typ.Upper_Limit)));
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb 2011-03-19 00:45:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,7 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.10 $
++-- $Revision: 1.12 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Interfaces.C; use Interfaces.C;
+@@ -46,21 +46,12 @@
+ procedure Set_Field_Type (Fld : Field;
+ Typ : Regular_Expression_Field)
+ is
+- type Char_Ptr is access all Interfaces.C.char;
+-
+ function Set_Ftyp (F : Field := Fld;
+- Arg1 : Char_Ptr) return C_Int;
++ Arg1 : char_array) return Eti_Error;
+ pragma Import (C, Set_Ftyp, "set_field_type_regexp");
+
+- Txt : char_array (0 .. Typ.Regular_Expression.all'Length);
+- Len : size_t;
+- Res : Eti_Error;
+ begin
+- To_C (Typ.Regular_Expression.all, Txt, Len);
+- Res := Set_Ftyp (Arg1 => Txt (Txt'First)'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Ftyp (Arg1 => To_C (Typ.Regular_Expression.all)));
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+Index: Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb 2011-03-22 10:53:37.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.17 $
+--- $Date: 2011/03/22 10:53:37 $
++-- $Revision: 1.20 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with System.Address_To_Access_Conversions;
+@@ -53,7 +53,7 @@
+ Result : Boolean;
+ Udf : constant User_Defined_Field_Type_With_Choice_Access :=
+ User_Defined_Field_Type_With_Choice_Access
+- (Argument_Access (Argument_Conversions.To_Pointer (Usr)).Typ);
++ (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
+ begin
+ Result := Next (Fld, Udf.all);
+ return Curses_Bool (Boolean'Pos (Result));
+@@ -65,7 +65,7 @@
+ Result : Boolean;
+ Udf : constant User_Defined_Field_Type_With_Choice_Access :=
+ User_Defined_Field_Type_With_Choice_Access
+- (Argument_Access (Argument_Conversions.To_Pointer (Usr)).Typ);
++ (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
+ begin
+ Result := Previous (Fld, Udf.all);
+ return Curses_Bool (Boolean'Pos (Result));
+@@ -88,16 +88,12 @@
+ Make_Arg'Access,
+ Copy_Arg'Access,
+ Free_Arg'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Res);
+
+ Res := Set_Fieldtype_Choice (T,
+ Generic_Next'Access,
+ Generic_Prev'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Res);
+ end if;
+ M_Generic_Choice := T;
+ end if;
+Index: Ada95/src/terminal_interface-curses-forms-field_types-user.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types-user.adb 2011-03-23 00:44:58.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types-user.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.21 $
+--- $Date: 2011/03/23 00:44:58 $
++-- $Revision: 1.23 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with System.Address_To_Access_Conversions;
+@@ -53,11 +53,9 @@
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_Generic_Type;
+ Arg1 : Argument_Access)
+- return C_Int;
++ return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_user");
+
+- Res : Eti_Error;
+-
+ function Allocate_Arg (T : User_Defined_Field_Type'Class)
+ return Argument_Access
+ is
+@@ -70,10 +68,7 @@
+ end Allocate_Arg;
+
+ begin
+- Res := Set_Fld_Type (Arg1 => Allocate_Arg (Typ));
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type (Arg1 => Allocate_Arg (Typ)));
+ end Set_Field_Type;
+
+ package Argument_Conversions is
+@@ -120,9 +115,7 @@
+ Make_Arg'Access,
+ Copy_Arg'Access,
+ Free_Arg'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Res);
+ end if;
+ M_Generic_Type := T;
+ end if;
+Index: Ada95/src/terminal_interface-curses-forms-field_types.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_types.adb 2011-03-22 23:22:27.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_types.adb 2014-09-13 19:00:47.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.25 $
+--- $Date: 2011/03/22 23:22:27 $
++-- $Revision: 1.28 $
++-- $Date: 2014/09/13 19:00:47 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -76,9 +76,10 @@
+ return null;
+ else
+ if Low_Level = M_Builtin_Router or else
+- Low_Level = M_Generic_Type or else
+- Low_Level = M_Choice_Router or else
+- Low_Level = M_Generic_Choice then
++ Low_Level = M_Generic_Type or else
++ Low_Level = M_Choice_Router or else
++ Low_Level = M_Generic_Choice
++ then
+ Arg := Argument_Access
+ (Argument_Conversions.To_Pointer (Get_Arg (Fld)));
+ if Arg = null then
+@@ -130,10 +131,9 @@
+ Usr_Arg : constant System.Address := Get_Arg (Fld);
+ Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
+ Arg : Argument_Access;
+- Res : Eti_Error;
+ function Set_Fld_Type (F : Field := Fld;
+ Cf : C_Field_Type := Cft;
+- Arg1 : Argument_Access) return C_Int;
++ Arg1 : Argument_Access) return Eti_Error;
+ pragma Import (C, Set_Fld_Type, "set_field_type_user");
+
+ begin
+@@ -152,10 +152,7 @@
+ end if;
+ end if;
+
+- Res := Set_Fld_Type (Arg1 => Arg);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fld_Type (Arg1 => Arg));
+ end if;
+ end Wrap_Builtin;
+
+@@ -223,7 +220,6 @@
+ --
+ function C_Builtin_Router return C_Field_Type
+ is
+- Res : Eti_Error;
+ T : C_Field_Type;
+ begin
+ if M_Builtin_Router = Null_Field_Type then
+@@ -232,13 +228,10 @@
+ if T = Null_Field_Type then
+ raise Form_Exception;
+ else
+- Res := Set_Fieldtype_Arg (T,
+- Make_Arg'Access,
+- Copy_Arg'Access,
+- Free_Arg'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fieldtype_Arg (T,
++ Make_Arg'Access,
++ Copy_Arg'Access,
++ Free_Arg'Access));
+ end if;
+ M_Builtin_Router := T;
+ end if;
+@@ -250,7 +243,6 @@
+ --
+ function C_Choice_Router return C_Field_Type
+ is
+- Res : Eti_Error;
+ T : C_Field_Type;
+ begin
+ if M_Choice_Router = Null_Field_Type then
+@@ -259,20 +251,14 @@
+ if T = Null_Field_Type then
+ raise Form_Exception;
+ else
+- Res := Set_Fieldtype_Arg (T,
+- Make_Arg'Access,
+- Copy_Arg'Access,
+- Free_Arg'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
+-
+- Res := Set_Fieldtype_Choice (T,
+- Next_Router'Access,
+- Prev_Router'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Fieldtype_Arg (T,
++ Make_Arg'Access,
++ Copy_Arg'Access,
++ Free_Arg'Access));
++
++ Eti_Exception (Set_Fieldtype_Choice (T,
++ Next_Router'Access,
++ Prev_Router'Access));
+ end if;
+ M_Choice_Router := T;
+ end if;
+Index: Ada95/src/terminal_interface-curses-forms-field_user_data.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-field_user_data.adb 2009-12-26 17:46:57.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-field_user_data.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,7 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.13 $
++-- $Revision: 1.15 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -55,14 +55,11 @@
+ Data : User_Access)
+ is
+ function Set_Field_Userptr (Fld : Field;
+- Usr : User_Access) return C_Int;
++ Usr : User_Access) return Eti_Error;
+ pragma Import (C, Set_Field_Userptr, "set_field_userptr");
+
+- Res : constant Eti_Error := Set_Field_Userptr (Fld, Data);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Userptr (Fld, Data));
+ end Set_User_Data;
+ -- |
+ -- |
+Index: Ada95/src/terminal_interface-curses-forms-form_user_data.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms-form_user_data.adb 2009-12-26 17:46:57.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms-form_user_data.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,7 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.13 $
++-- $Revision: 1.15 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ -- |
+@@ -56,14 +56,11 @@
+ Data : User_Access)
+ is
+ function Set_Form_Userptr (Frm : Form;
+- Data : User_Access) return C_Int;
++ Data : User_Access) return Eti_Error;
+ pragma Import (C, Set_Form_Userptr, "set_form_userptr");
+
+- Res : constant Eti_Error := Set_Form_Userptr (Frm, Data);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Form_Userptr (Frm, Data));
+ end Set_User_Data;
+ -- |
+ -- |
+Index: Ada95/src/terminal_interface-curses-forms.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-forms.adb 2011-03-22 23:37:32.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-forms.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,12 +35,11 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.28 $
+--- $Date: 2011/03/22 23:37:32 $
++-- $Revision: 1.32 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Ada.Unchecked_Deallocation;
+-with Ada.Unchecked_Conversion;
+
+ with Interfaces.C; use Interfaces.C;
+ with Interfaces.C.Strings; use Interfaces.C.Strings;
+@@ -62,22 +61,6 @@
+ -- |
+ -- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
+
+- function FOS_2_CInt is new
+- Ada.Unchecked_Conversion (Field_Option_Set,
+- C_Int);
+-
+- function CInt_2_FOS is new
+- Ada.Unchecked_Conversion (C_Int,
+- Field_Option_Set);
+-
+- function FrmOS_2_CInt is new
+- Ada.Unchecked_Conversion (Form_Option_Set,
+- C_Int);
+-
+- function CInt_2_FrmOS is new
+- Ada.Unchecked_Conversion (C_Int,
+- Form_Option_Set);
+-
+ procedure Request_Name (Key : Form_Request_Code;
+ Name : out String)
+ is
+@@ -130,15 +113,11 @@
+ -- |
+ procedure Delete (Fld : in out Field)
+ is
+- function Free_Field (Fld : Field) return C_Int;
++ function Free_Field (Fld : Field) return Eti_Error;
+ pragma Import (C, Free_Field, "free_field");
+
+- Res : Eti_Error;
+ begin
+- Res := Free_Field (Fld);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Free_Field (Fld));
+ Fld := Null_Field;
+ end Delete;
+ -- |
+@@ -194,16 +173,12 @@
+ Just : Field_Justification := None)
+ is
+ function Set_Field_Just (Fld : Field;
+- Just : C_Int) return C_Int;
++ Just : C_Int) return Eti_Error;
+ pragma Import (C, Set_Field_Just, "set_field_just");
+
+- Res : constant Eti_Error :=
+- Set_Field_Just (Fld,
+- C_Int (Field_Justification'Pos (Just)));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Just (Fld,
++ C_Int (Field_Justification'Pos (Just))));
+ end Set_Justification;
+ -- |
+ -- |
+@@ -227,22 +202,14 @@
+ Buffer : Buffer_Number := Buffer_Number'First;
+ Str : String)
+ is
+- type Char_Ptr is access all Interfaces.C.char;
+ function Set_Fld_Buffer (Fld : Field;
+ Bufnum : C_Int;
+- S : Char_Ptr)
+- return C_Int;
++ S : char_array)
++ return Eti_Error;
+ pragma Import (C, Set_Fld_Buffer, "set_field_buffer");
+
+- Txt : char_array (0 .. Str'Length);
+- Len : size_t;
+- Res : Eti_Error;
+- begin
+- To_C (Str, Txt, Len);
+- Res := Set_Fld_Buffer (Fld, C_Int (Buffer), Txt (Txt'First)'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ begin
++ Eti_Exception (Set_Fld_Buffer (Fld, C_Int (Buffer), To_C (Str)));
+ end Set_Buffer;
+ -- |
+ -- |
+@@ -276,12 +243,11 @@
+ Status : Boolean := True)
+ is
+ function Set_Fld_Status (Fld : Field;
+- St : C_Int) return C_Int;
++ St : C_Int) return Eti_Error;
+ pragma Import (C, Set_Fld_Status, "set_field_status");
+
+- Res : constant Eti_Error := Set_Fld_Status (Fld, Boolean'Pos (Status));
+ begin
+- if Res /= E_Ok then
++ if Set_Fld_Status (Fld, Boolean'Pos (Status)) /= E_Ok then
+ raise Form_Exception;
+ end if;
+ end Set_Status;
+@@ -308,14 +274,11 @@
+ Max : Natural := 0)
+ is
+ function Set_Field_Max (Fld : Field;
+- M : C_Int) return C_Int;
++ M : C_Int) return Eti_Error;
+ pragma Import (C, Set_Field_Max, "set_max_field");
+
+- Res : constant Eti_Error := Set_Field_Max (Fld, C_Int (Max));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Max (Fld, C_Int (Max)));
+ end Set_Maximum_Size;
+ -- |
+ -- |=====================================================================
+@@ -328,16 +291,11 @@
+ Options : Field_Option_Set)
+ is
+ function Set_Field_Opts (Fld : Field;
+- Opt : C_Int) return C_Int;
++ Opt : Field_Option_Set) return Eti_Error;
+ pragma Import (C, Set_Field_Opts, "set_field_opts");
+
+- Opt : constant C_Int := FOS_2_CInt (Options);
+- Res : Eti_Error;
+ begin
+- Res := Set_Field_Opts (Fld, Opt);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Opts (Fld, Options));
+ end Set_Options;
+ -- |
+ -- |
+@@ -347,22 +305,17 @@
+ On : Boolean := True)
+ is
+ function Field_Opts_On (Fld : Field;
+- Opt : C_Int) return C_Int;
++ Opt : Field_Option_Set) return Eti_Error;
+ pragma Import (C, Field_Opts_On, "field_opts_on");
+ function Field_Opts_Off (Fld : Field;
+- Opt : C_Int) return C_Int;
++ Opt : Field_Option_Set) return Eti_Error;
+ pragma Import (C, Field_Opts_Off, "field_opts_off");
+
+- Err : Eti_Error;
+- Opt : constant C_Int := FOS_2_CInt (Options);
+ begin
+ if On then
+- Err := Field_Opts_On (Fld, Opt);
++ Eti_Exception (Field_Opts_On (Fld, Options));
+ else
+- Err := Field_Opts_Off (Fld, Opt);
+- end if;
+- if Err /= E_Ok then
+- Eti_Exception (Err);
++ Eti_Exception (Field_Opts_Off (Fld, Options));
+ end if;
+ end Switch_Options;
+ -- |
+@@ -371,12 +324,11 @@
+ procedure Get_Options (Fld : Field;
+ Options : out Field_Option_Set)
+ is
+- function Field_Opts (Fld : Field) return C_Int;
++ function Field_Opts (Fld : Field) return Field_Option_Set;
+ pragma Import (C, Field_Opts, "field_opts");
+
+- Res : constant C_Int := Field_Opts (Fld);
+ begin
+- Options := CInt_2_FOS (Res);
++ Options := Field_Opts (Fld);
+ end Get_Options;
+ -- |
+ -- |
+@@ -402,18 +354,13 @@
+ Color : Color_Pair := Color_Pair'First)
+ is
+ function Set_Field_Fore (Fld : Field;
+- Attr : C_Chtype) return C_Int;
++ Attr : Attributed_Character) return Eti_Error;
+ pragma Import (C, Set_Field_Fore, "set_field_fore");
+
+- Ch : constant Attributed_Character := (Ch => Character'First,
+- Color => Color,
+- Attr => Fore);
+- Res : constant Eti_Error :=
+- Set_Field_Fore (Fld, AttrChar_To_Chtype (Ch));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Fore (Fld, (Ch => Character'First,
++ Color => Color,
++ Attr => Fore)));
+ end Set_Foreground;
+ -- |
+ -- |
+@@ -421,21 +368,21 @@
+ procedure Foreground (Fld : Field;
+ Fore : out Character_Attribute_Set)
+ is
+- function Field_Fore (Fld : Field) return C_Chtype;
++ function Field_Fore (Fld : Field) return Attributed_Character;
+ pragma Import (C, Field_Fore, "field_fore");
+ begin
+- Fore := Chtype_To_AttrChar (Field_Fore (Fld)).Attr;
++ Fore := Field_Fore (Fld).Attr;
+ end Foreground;
+
+ procedure Foreground (Fld : Field;
+ Fore : out Character_Attribute_Set;
+ Color : out Color_Pair)
+ is
+- function Field_Fore (Fld : Field) return C_Chtype;
++ function Field_Fore (Fld : Field) return Attributed_Character;
+ pragma Import (C, Field_Fore, "field_fore");
+ begin
+- Fore := Chtype_To_AttrChar (Field_Fore (Fld)).Attr;
+- Color := Chtype_To_AttrChar (Field_Fore (Fld)).Color;
++ Fore := Field_Fore (Fld).Attr;
++ Color := Field_Fore (Fld).Color;
+ end Foreground;
+ -- |
+ -- |
+@@ -446,18 +393,13 @@
+ Color : Color_Pair := Color_Pair'First)
+ is
+ function Set_Field_Back (Fld : Field;
+- Attr : C_Chtype) return C_Int;
++ Attr : Attributed_Character) return Eti_Error;
+ pragma Import (C, Set_Field_Back, "set_field_back");
+
+- Ch : constant Attributed_Character := (Ch => Character'First,
+- Color => Color,
+- Attr => Back);
+- Res : constant Eti_Error :=
+- Set_Field_Back (Fld, AttrChar_To_Chtype (Ch));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Back (Fld, (Ch => Character'First,
++ Color => Color,
++ Attr => Back)));
+ end Set_Background;
+ -- |
+ -- |
+@@ -465,21 +407,21 @@
+ procedure Background (Fld : Field;
+ Back : out Character_Attribute_Set)
+ is
+- function Field_Back (Fld : Field) return C_Chtype;
++ function Field_Back (Fld : Field) return Attributed_Character;
+ pragma Import (C, Field_Back, "field_back");
+ begin
+- Back := Chtype_To_AttrChar (Field_Back (Fld)).Attr;
++ Back := Field_Back (Fld).Attr;
+ end Background;
+
+ procedure Background (Fld : Field;
+ Back : out Character_Attribute_Set;
+ Color : out Color_Pair)
+ is
+- function Field_Back (Fld : Field) return C_Chtype;
++ function Field_Back (Fld : Field) return Attributed_Character;
+ pragma Import (C, Field_Back, "field_back");
+ begin
+- Back := Chtype_To_AttrChar (Field_Back (Fld)).Attr;
+- Color := Chtype_To_AttrChar (Field_Back (Fld)).Color;
++ Back := Field_Back (Fld).Attr;
++ Color := Field_Back (Fld).Color;
+ end Background;
+ -- |
+ -- |
+@@ -488,15 +430,12 @@
+ Pad : Character := Space)
+ is
+ function Set_Field_Pad (Fld : Field;
+- Ch : C_Int) return C_Int;
++ Ch : C_Int) return Eti_Error;
+ pragma Import (C, Set_Field_Pad, "set_field_pad");
+
+- Res : constant Eti_Error := Set_Field_Pad (Fld,
+- C_Int (Character'Pos (Pad)));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Pad (Fld,
++ C_Int (Character'Pos (Pad))));
+ end Set_Pad_Character;
+ -- |
+ -- |
+@@ -527,25 +466,21 @@
+ type C_Int_Access is access all C_Int;
+ function Fld_Info (Fld : Field;
+ L, C, Fr, Fc, Os, Ab : C_Int_Access)
+- return C_Int;
++ return Eti_Error;
+ pragma Import (C, Fld_Info, "field_info");
+
+ L, C, Fr, Fc, Os, Ab : aliased C_Int;
+- Res : constant Eti_Error := Fld_Info (Fld,
+- L'Access, C'Access,
+- Fr'Access, Fc'Access,
+- Os'Access, Ab'Access);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- else
+- Lines := Line_Count (L);
+- Columns := Column_Count (C);
+- First_Row := Line_Position (Fr);
+- First_Column := Column_Position (Fc);
+- Off_Screen := Natural (Os);
+- Additional_Buffers := Buffer_Number (Ab);
+- end if;
++ Eti_Exception (Fld_Info (Fld,
++ L'Access, C'Access,
++ Fr'Access, Fc'Access,
++ Os'Access, Ab'Access));
++ Lines := Line_Count (L);
++ Columns := Column_Count (C);
++ First_Row := Line_Position (Fr);
++ First_Column := Column_Position (Fc);
++ Off_Screen := Natural (Os);
++ Additional_Buffers := Buffer_Number (Ab);
+ end Info;
+ -- |
+ -- |
+@@ -556,21 +491,17 @@
+ Max : out Natural)
+ is
+ type C_Int_Access is access all C_Int;
+- function Dyn_Info (Fld : Field; L, C, M : C_Int_Access) return C_Int;
++ function Dyn_Info (Fld : Field; L, C, M : C_Int_Access) return Eti_Error;
+ pragma Import (C, Dyn_Info, "dynamic_field_info");
+
+ L, C, M : aliased C_Int;
+- Res : constant Eti_Error := Dyn_Info (Fld,
+- L'Access, C'Access,
+- M'Access);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- else
+- Lines := Line_Count (L);
+- Columns := Column_Count (C);
+- Max := Natural (M);
+- end if;
++ Eti_Exception (Dyn_Info (Fld,
++ L'Access, C'Access,
++ M'Access));
++ Lines := Line_Count (L);
++ Columns := Column_Count (C);
++ Max := Natural (M);
+ end Dynamic_Info;
+ -- |
+ -- |=====================================================================
+@@ -583,14 +514,11 @@
+ Win : Window)
+ is
+ function Set_Form_Win (Frm : Form;
+- Win : Window) return C_Int;
++ Win : Window) return Eti_Error;
+ pragma Import (C, Set_Form_Win, "set_form_win");
+
+- Res : constant Eti_Error := Set_Form_Win (Frm, Win);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Form_Win (Frm, Win));
+ end Set_Window;
+ -- |
+ -- |
+@@ -611,14 +539,11 @@
+ Win : Window)
+ is
+ function Set_Form_Sub (Frm : Form;
+- Win : Window) return C_Int;
++ Win : Window) return Eti_Error;
+ pragma Import (C, Set_Form_Sub, "set_form_sub");
+
+- Res : constant Eti_Error := Set_Form_Sub (Frm, Win);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Form_Sub (Frm, Win));
+ end Set_Sub_Window;
+ -- |
+ -- |
+@@ -640,16 +565,13 @@
+ Columns : out Column_Count)
+ is
+ type C_Int_Access is access all C_Int;
+- function M_Scale (Frm : Form; Yp, Xp : C_Int_Access) return C_Int;
++ function M_Scale (Frm : Form; Yp, Xp : C_Int_Access) return Eti_Error;
+ pragma Import (C, M_Scale, "scale_form");
+
+ X, Y : aliased C_Int;
+- Res : constant Eti_Error := M_Scale (Frm, Y'Access, X'Access);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
+- Lines := Line_Count (Y);
++ Eti_Exception (M_Scale (Frm, Y'Access, X'Access));
++ Lines := Line_Count (Y);
+ Columns := Column_Count (X);
+ end Scale;
+ -- |
+@@ -663,14 +585,11 @@
+ Proc : Form_Hook_Function)
+ is
+ function Set_Field_Init (Frm : Form;
+- Proc : Form_Hook_Function) return C_Int;
++ Proc : Form_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Field_Init, "set_field_init");
+
+- Res : constant Eti_Error := Set_Field_Init (Frm, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Init (Frm, Proc));
+ end Set_Field_Init_Hook;
+ -- |
+ -- |
+@@ -679,14 +598,11 @@
+ Proc : Form_Hook_Function)
+ is
+ function Set_Field_Term (Frm : Form;
+- Proc : Form_Hook_Function) return C_Int;
++ Proc : Form_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Field_Term, "set_field_term");
+
+- Res : constant Eti_Error := Set_Field_Term (Frm, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Field_Term (Frm, Proc));
+ end Set_Field_Term_Hook;
+ -- |
+ -- |
+@@ -695,14 +611,11 @@
+ Proc : Form_Hook_Function)
+ is
+ function Set_Form_Init (Frm : Form;
+- Proc : Form_Hook_Function) return C_Int;
++ Proc : Form_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Form_Init, "set_form_init");
+
+- Res : constant Eti_Error := Set_Form_Init (Frm, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Form_Init (Frm, Proc));
+ end Set_Form_Init_Hook;
+ -- |
+ -- |
+@@ -711,14 +624,11 @@
+ Proc : Form_Hook_Function)
+ is
+ function Set_Form_Term (Frm : Form;
+- Proc : Form_Hook_Function) return C_Int;
++ Proc : Form_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Form_Term, "set_form_term");
+
+- Res : constant Eti_Error := Set_Form_Term (Frm, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Form_Term (Frm, Proc));
+ end Set_Form_Term_Hook;
+ -- |
+ -- |=====================================================================
+@@ -731,19 +641,15 @@
+ Flds : Field_Array_Access)
+ is
+ function Set_Frm_Fields (Frm : Form;
+- Items : System.Address) return C_Int;
++ Items : System.Address) return Eti_Error;
+ pragma Import (C, Set_Frm_Fields, "set_form_fields");
+
+- Res : Eti_Error;
+ begin
+ pragma Assert (Flds.all (Flds'Last) = Null_Field);
+ if Flds.all (Flds'Last) /= Null_Field then
+ raise Form_Exception;
+ else
+- Res := Set_Frm_Fields (Frm, Flds.all (Flds'First)'Address);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Frm_Fields (Frm, Flds.all (Flds'First)'Address));
+ end if;
+ end Redefine;
+ -- |
+@@ -783,14 +689,11 @@
+ Line : Line_Position;
+ Column : Column_Position)
+ is
+- function Move (Fld : Field; L, C : C_Int) return C_Int;
++ function Move (Fld : Field; L, C : C_Int) return Eti_Error;
+ pragma Import (C, Move, "move_field");
+
+- Res : constant Eti_Error := Move (Fld, C_Int (Line), C_Int (Column));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Move (Fld, C_Int (Line), C_Int (Column)));
+ end Move;
+ -- |
+ -- |=====================================================================
+@@ -822,14 +725,11 @@
+ -- |
+ procedure Delete (Frm : in out Form)
+ is
+- function Free (Frm : Form) return C_Int;
++ function Free (Frm : Form) return Eti_Error;
+ pragma Import (C, Free, "free_form");
+
+- Res : constant Eti_Error := Free (Frm);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Free (Frm));
+ Frm := Null_Form;
+ end Delete;
+ -- |
+@@ -843,16 +743,11 @@
+ Options : Form_Option_Set)
+ is
+ function Set_Form_Opts (Frm : Form;
+- Opt : C_Int) return C_Int;
++ Opt : Form_Option_Set) return Eti_Error;
+ pragma Import (C, Set_Form_Opts, "set_form_opts");
+
+- Opt : constant C_Int := FrmOS_2_CInt (Options);
+- Res : Eti_Error;
+ begin
+- Res := Set_Form_Opts (Frm, Opt);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Form_Opts (Frm, Options));
+ end Set_Options;
+ -- |
+ -- |
+@@ -862,22 +757,17 @@
+ On : Boolean := True)
+ is
+ function Form_Opts_On (Frm : Form;
+- Opt : C_Int) return C_Int;
++ Opt : Form_Option_Set) return Eti_Error;
+ pragma Import (C, Form_Opts_On, "form_opts_on");
+ function Form_Opts_Off (Frm : Form;
+- Opt : C_Int) return C_Int;
++ Opt : Form_Option_Set) return Eti_Error;
+ pragma Import (C, Form_Opts_Off, "form_opts_off");
+
+- Err : Eti_Error;
+- Opt : constant C_Int := FrmOS_2_CInt (Options);
+ begin
+ if On then
+- Err := Form_Opts_On (Frm, Opt);
++ Eti_Exception (Form_Opts_On (Frm, Options));
+ else
+- Err := Form_Opts_Off (Frm, Opt);
+- end if;
+- if Err /= E_Ok then
+- Eti_Exception (Err);
++ Eti_Exception (Form_Opts_Off (Frm, Options));
+ end if;
+ end Switch_Options;
+ -- |
+@@ -886,12 +776,11 @@
+ procedure Get_Options (Frm : Form;
+ Options : out Form_Option_Set)
+ is
+- function Form_Opts (Frm : Form) return C_Int;
++ function Form_Opts (Frm : Form) return Form_Option_Set;
+ pragma Import (C, Form_Opts, "form_opts");
+
+- Res : constant C_Int := Form_Opts (Frm);
+ begin
+- Options := CInt_2_FrmOS (Res);
++ Options := Form_Opts (Frm);
+ end Get_Options;
+ -- |
+ -- |
+@@ -913,20 +802,16 @@
+ procedure Post (Frm : Form;
+ Post : Boolean := True)
+ is
+- function M_Post (Frm : Form) return C_Int;
++ function M_Post (Frm : Form) return Eti_Error;
+ pragma Import (C, M_Post, "post_form");
+- function M_Unpost (Frm : Form) return C_Int;
++ function M_Unpost (Frm : Form) return Eti_Error;
+ pragma Import (C, M_Unpost, "unpost_form");
+
+- Res : Eti_Error;
+ begin
+ if Post then
+- Res := M_Post (Frm);
++ Eti_Exception (M_Post (Frm));
+ else
+- Res := M_Unpost (Frm);
+- end if;
+- if Res /= E_Ok then
+- Eti_Exception (Res);
++ Eti_Exception (M_Unpost (Frm));
+ end if;
+ end Post;
+ -- |
+@@ -938,14 +823,11 @@
+ -- |
+ procedure Position_Cursor (Frm : Form)
+ is
+- function Pos_Form_Cursor (Frm : Form) return C_Int;
++ function Pos_Form_Cursor (Frm : Form) return Eti_Error;
+ pragma Import (C, Pos_Form_Cursor, "pos_form_cursor");
+
+- Res : constant Eti_Error := Pos_Form_Cursor (Frm);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Pos_Form_Cursor (Frm));
+ end Position_Cursor;
+ -- |
+ -- |=====================================================================
+@@ -993,25 +875,22 @@
+ function Driver (Frm : Form;
+ Key : Key_Code) return Driver_Result
+ is
+- function Frm_Driver (Frm : Form; Key : C_Int) return C_Int;
++ function Frm_Driver (Frm : Form; Key : C_Int) return Eti_Error;
+ pragma Import (C, Frm_Driver, "form_driver");
+
+ R : constant Eti_Error := Frm_Driver (Frm, C_Int (Key));
+ begin
+- if R /= E_Ok then
+- if R = E_Unknown_Command then
++ case R is
++ when E_Unknown_Command =>
+ return Unknown_Request;
+- elsif R = E_Invalid_Field then
++ when E_Invalid_Field =>
+ return Invalid_Field;
+- elsif R = E_Request_Denied then
++ when E_Request_Denied =>
+ return Request_Denied;
+- else
++ when others =>
+ Eti_Exception (R);
+ return Form_Ok;
+- end if;
+- else
+- return Form_Ok;
+- end if;
++ end case;
+ end Driver;
+ -- |
+ -- |=====================================================================
+@@ -1023,14 +902,11 @@
+ procedure Set_Current (Frm : Form;
+ Fld : Field)
+ is
+- function Set_Current_Fld (Frm : Form; Fld : Field) return C_Int;
++ function Set_Current_Fld (Frm : Form; Fld : Field) return Eti_Error;
+ pragma Import (C, Set_Current_Fld, "set_current_field");
+
+- Res : constant Eti_Error := Set_Current_Fld (Frm, Fld);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Current_Fld (Frm, Fld));
+ end Set_Current;
+ -- |
+ -- |
+@@ -1053,14 +929,11 @@
+ procedure Set_Page (Frm : Form;
+ Page : Page_Number := Page_Number'First)
+ is
+- function Set_Frm_Page (Frm : Form; Pg : C_Int) return C_Int;
++ function Set_Frm_Page (Frm : Form; Pg : C_Int) return Eti_Error;
+ pragma Import (C, Set_Frm_Page, "set_form_page");
+
+- Res : constant Eti_Error := Set_Frm_Page (Frm, C_Int (Page));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Frm_Page (Frm, C_Int (Page)));
+ end Set_Page;
+ -- |
+ -- |
+@@ -1102,14 +975,11 @@
+ procedure Set_New_Page (Fld : Field;
+ New_Page : Boolean := True)
+ is
+- function Set_Page (Fld : Field; Flg : C_Int) return C_Int;
++ function Set_Page (Fld : Field; Flg : C_Int) return Eti_Error;
+ pragma Import (C, Set_Page, "set_new_page");
+
+- Res : constant Eti_Error := Set_Page (Fld, Boolean'Pos (New_Page));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Page (Fld, Boolean'Pos (New_Page)));
+ end Set_New_Page;
+ -- |
+ -- |
+Index: Ada95/src/terminal_interface-curses-menus-item_user_data.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-menus-item_user_data.adb 2009-12-26 17:46:57.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-menus-item_user_data.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,7 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.12 $
++-- $Revision: 1.14 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Interfaces.C;
+@@ -49,14 +49,11 @@
+ Data : User_Access)
+ is
+ function Set_Item_Userptr (Itm : Item;
+- Addr : User_Access) return C_Int;
++ Addr : User_Access) return Eti_Error;
+ pragma Import (C, Set_Item_Userptr, "set_item_userptr");
+
+- Res : constant Eti_Error := Set_Item_Userptr (Itm, Data);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Item_Userptr (Itm, Data));
+ end Set_User_Data;
+
+ function Get_User_Data (Itm : Item) return User_Access
+Index: Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb 2009-12-26 17:46:57.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,7 +35,7 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.13 $
++-- $Revision: 1.15 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -48,14 +48,12 @@
+ Data : User_Access)
+ is
+ function Set_Menu_Userptr (Men : Menu;
+- Data : User_Access) return C_Int;
++ Data : User_Access) return Eti_Error;
+ pragma Import (C, Set_Menu_Userptr, "set_menu_userptr");
+
+- Res : constant Eti_Error := Set_Menu_Userptr (Men, Data);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Userptr (Men, Data));
++
+ end Set_User_Data;
+
+ function Get_User_Data (Men : Menu) return User_Access
+Index: Ada95/src/terminal_interface-curses-menus.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-menus.adb 2011-03-22 23:38:12.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-menus.adb 2014-05-24 21:31:05.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.28 $
+--- $Date: 2011/03/22 23:38:12 $
++-- $Revision: 1.32 $
++-- $Date: 2014/05/24 21:31:05 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Ada.Unchecked_Deallocation;
+@@ -46,8 +46,6 @@
+ with Interfaces.C.Strings; use Interfaces.C.Strings;
+ with Interfaces.C.Pointers;
+
+-with Ada.Unchecked_Conversion;
+-
+ package body Terminal_Interface.Curses.Menus is
+
+ type C_Item_Array is array (Natural range <>) of aliased Item;
+@@ -57,22 +55,6 @@
+ use type System.Bit_Order;
+ subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
+
+- function MOS_2_CInt is new
+- Ada.Unchecked_Conversion (Menu_Option_Set,
+- C_Int);
+-
+- function CInt_2_MOS is new
+- Ada.Unchecked_Conversion (C_Int,
+- Menu_Option_Set);
+-
+- function IOS_2_CInt is new
+- Ada.Unchecked_Conversion (Item_Option_Set,
+- C_Int);
+-
+- function CInt_2_IOS is new
+- Ada.Unchecked_Conversion (C_Int,
+- Item_Option_Set);
+-
+ ------------------------------------------------------------------------------
+ procedure Request_Name (Key : Menu_Request_Code;
+ Name : out String)
+@@ -128,10 +110,9 @@
+ function Itemname (Itm : Item) return chars_ptr;
+ pragma Import (C, Itemname, "item_name");
+
+- function Freeitem (Itm : Item) return C_Int;
++ function Freeitem (Itm : Item) return Eti_Error;
+ pragma Import (C, Freeitem, "free_item");
+
+- Res : Eti_Error;
+ Ptr : chars_ptr;
+ begin
+ Ptr := Descname (Itm);
+@@ -142,10 +123,7 @@
+ if Ptr /= Null_Ptr then
+ Interfaces.C.Strings.Free (Ptr);
+ end if;
+- Res := Freeitem (Itm);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Freeitem (Itm));
+ Itm := Null_Item;
+ end Delete;
+ -------------------------------------------------------------------------------
+@@ -153,14 +131,11 @@
+ Value : Boolean := True)
+ is
+ function Set_Item_Val (Itm : Item;
+- Val : C_Int) return C_Int;
++ Val : C_Int) return Eti_Error;
+ pragma Import (C, Set_Item_Val, "set_item_value");
+
+- Res : constant Eti_Error := Set_Item_Val (Itm, Boolean'Pos (Value));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Item_Val (Itm, Boolean'Pos (Value)));
+ end Set_Value;
+
+ function Value (Itm : Item) return Boolean
+@@ -192,16 +167,11 @@
+ Options : Item_Option_Set)
+ is
+ function Set_Item_Opts (Itm : Item;
+- Opt : C_Int) return C_Int;
++ Opt : Item_Option_Set) return Eti_Error;
+ pragma Import (C, Set_Item_Opts, "set_item_opts");
+
+- Opt : constant C_Int := IOS_2_CInt (Options);
+- Res : Eti_Error;
+ begin
+- Res := Set_Item_Opts (Itm, Opt);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Item_Opts (Itm, Options));
+ end Set_Options;
+
+ procedure Switch_Options (Itm : Item;
+@@ -209,34 +179,28 @@
+ On : Boolean := True)
+ is
+ function Item_Opts_On (Itm : Item;
+- Opt : C_Int) return C_Int;
++ Opt : Item_Option_Set) return Eti_Error;
+ pragma Import (C, Item_Opts_On, "item_opts_on");
+ function Item_Opts_Off (Itm : Item;
+- Opt : C_Int) return C_Int;
++ Opt : Item_Option_Set) return Eti_Error;
+ pragma Import (C, Item_Opts_Off, "item_opts_off");
+
+- Opt : constant C_Int := IOS_2_CInt (Options);
+- Err : Eti_Error;
+ begin
+ if On then
+- Err := Item_Opts_On (Itm, Opt);
++ Eti_Exception (Item_Opts_On (Itm, Options));
+ else
+- Err := Item_Opts_Off (Itm, Opt);
+- end if;
+- if Err /= E_Ok then
+- Eti_Exception (Err);
++ Eti_Exception (Item_Opts_Off (Itm, Options));
+ end if;
+ end Switch_Options;
+
+ procedure Get_Options (Itm : Item;
+ Options : out Item_Option_Set)
+ is
+- function Item_Opts (Itm : Item) return C_Int;
++ function Item_Opts (Itm : Item) return Item_Option_Set;
+ pragma Import (C, Item_Opts, "item_opts");
+
+- Res : constant C_Int := Item_Opts (Itm);
+ begin
+- Options := CInt_2_IOS (Res);
++ Options := Item_Opts (Itm);
+ end Get_Options;
+
+ function Get_Options (Itm : Item := Null_Item) return Item_Option_Set
+@@ -285,14 +249,11 @@
+ Itm : Item)
+ is
+ function Set_Curr_Item (Men : Menu;
+- Itm : Item) return C_Int;
++ Itm : Item) return Eti_Error;
+ pragma Import (C, Set_Curr_Item, "set_current_item");
+
+- Res : constant Eti_Error := Set_Curr_Item (Men, Itm);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Curr_Item (Men, Itm));
+ end Set_Current;
+
+ function Current (Men : Menu) return Item
+@@ -312,14 +273,11 @@
+ Line : Line_Position)
+ is
+ function Set_Toprow (Men : Menu;
+- Line : C_Int) return C_Int;
++ Line : C_Int) return Eti_Error;
+ pragma Import (C, Set_Toprow, "set_top_row");
+
+- Res : constant Eti_Error := Set_Toprow (Men, C_Int (Line));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Toprow (Men, C_Int (Line)));
+ end Set_Top_Row;
+
+ function Top_Row (Men : Menu) return Line_Position
+@@ -351,20 +309,16 @@
+ procedure Post (Men : Menu;
+ Post : Boolean := True)
+ is
+- function M_Post (Men : Menu) return C_Int;
++ function M_Post (Men : Menu) return Eti_Error;
+ pragma Import (C, M_Post, "post_menu");
+- function M_Unpost (Men : Menu) return C_Int;
++ function M_Unpost (Men : Menu) return Eti_Error;
+ pragma Import (C, M_Unpost, "unpost_menu");
+
+- Res : Eti_Error;
+ begin
+ if Post then
+- Res := M_Post (Men);
++ Eti_Exception (M_Post (Men));
+ else
+- Res := M_Unpost (Men);
+- end if;
+- if Res /= E_Ok then
+- Eti_Exception (Res);
++ Eti_Exception (M_Unpost (Men));
+ end if;
+ end Post;
+ -------------------------------------------------------------------------------
+@@ -372,16 +326,11 @@
+ Options : Menu_Option_Set)
+ is
+ function Set_Menu_Opts (Men : Menu;
+- Opt : C_Int) return C_Int;
++ Opt : Menu_Option_Set) return Eti_Error;
+ pragma Import (C, Set_Menu_Opts, "set_menu_opts");
+
+- Opt : constant C_Int := MOS_2_CInt (Options);
+- Res : Eti_Error;
+ begin
+- Res := Set_Menu_Opts (Men, Opt);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Opts (Men, Options));
+ end Set_Options;
+
+ procedure Switch_Options (Men : Menu;
+@@ -389,34 +338,28 @@
+ On : Boolean := True)
+ is
+ function Menu_Opts_On (Men : Menu;
+- Opt : C_Int) return C_Int;
++ Opt : Menu_Option_Set) return Eti_Error;
+ pragma Import (C, Menu_Opts_On, "menu_opts_on");
+ function Menu_Opts_Off (Men : Menu;
+- Opt : C_Int) return C_Int;
++ Opt : Menu_Option_Set) return Eti_Error;
+ pragma Import (C, Menu_Opts_Off, "menu_opts_off");
+
+- Opt : constant C_Int := MOS_2_CInt (Options);
+- Err : Eti_Error;
+ begin
+ if On then
+- Err := Menu_Opts_On (Men, Opt);
++ Eti_Exception (Menu_Opts_On (Men, Options));
+ else
+- Err := Menu_Opts_Off (Men, Opt);
+- end if;
+- if Err /= E_Ok then
+- Eti_Exception (Err);
++ Eti_Exception (Menu_Opts_Off (Men, Options));
+ end if;
+ end Switch_Options;
+
+ procedure Get_Options (Men : Menu;
+ Options : out Menu_Option_Set)
+ is
+- function Menu_Opts (Men : Menu) return C_Int;
++ function Menu_Opts (Men : Menu) return Menu_Option_Set;
+ pragma Import (C, Menu_Opts, "menu_opts");
+
+- Res : constant C_Int := Menu_Opts (Men);
+ begin
+- Options := CInt_2_MOS (Res);
++ Options := Menu_Opts (Men);
+ end Get_Options;
+
+ function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set
+@@ -431,14 +374,11 @@
+ Win : Window)
+ is
+ function Set_Menu_Win (Men : Menu;
+- Win : Window) return C_Int;
++ Win : Window) return Eti_Error;
+ pragma Import (C, Set_Menu_Win, "set_menu_win");
+
+- Res : constant Eti_Error := Set_Menu_Win (Men, Win);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Win (Men, Win));
+ end Set_Window;
+
+ function Get_Window (Men : Menu) return Window
+@@ -455,14 +395,11 @@
+ Win : Window)
+ is
+ function Set_Menu_Sub (Men : Menu;
+- Win : Window) return C_Int;
++ Win : Window) return Eti_Error;
+ pragma Import (C, Set_Menu_Sub, "set_menu_sub");
+
+- Res : constant Eti_Error := Set_Menu_Sub (Men, Win);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Sub (Men, Win));
+ end Set_Sub_Window;
+
+ function Get_Sub_Window (Men : Menu) return Window
+@@ -481,29 +418,23 @@
+ is
+ type C_Int_Access is access all C_Int;
+ function M_Scale (Men : Menu;
+- Yp, Xp : C_Int_Access) return C_Int;
++ Yp, Xp : C_Int_Access) return Eti_Error;
+ pragma Import (C, M_Scale, "scale_menu");
+
+ X, Y : aliased C_Int;
+- Res : constant Eti_Error := M_Scale (Men, Y'Access, X'Access);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (M_Scale (Men, Y'Access, X'Access));
+ Lines := Line_Count (Y);
+ Columns := Column_Count (X);
+ end Scale;
+ -------------------------------------------------------------------------------
+ procedure Position_Cursor (Men : Menu)
+ is
+- function Pos_Menu_Cursor (Men : Menu) return C_Int;
++ function Pos_Menu_Cursor (Men : Menu) return Eti_Error;
+ pragma Import (C, Pos_Menu_Cursor, "pos_menu_cursor");
+
+- Res : constant Eti_Error := Pos_Menu_Cursor (Men);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Pos_Menu_Cursor (Men));
+ end Position_Cursor;
+
+ -------------------------------------------------------------------------------
+@@ -512,18 +443,14 @@
+ is
+ type Char_Ptr is access all Interfaces.C.char;
+ function Set_Mark (Men : Menu;
+- Mark : Char_Ptr) return C_Int;
++ Mark : Char_Ptr) return Eti_Error;
+ pragma Import (C, Set_Mark, "set_menu_mark");
+
+ Txt : char_array (0 .. Mark'Length);
+ Len : size_t;
+- Res : Eti_Error;
+ begin
+ To_C (Mark, Txt, Len);
+- Res := Set_Mark (Men, Txt (Txt'First)'Access);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Mark (Men, Txt (Txt'First)'Access));
+ end Set_Mark;
+
+ procedure Mark (Men : Menu;
+@@ -550,37 +477,34 @@
+ Color : Color_Pair := Color_Pair'First)
+ is
+ function Set_Menu_Fore (Men : Menu;
+- Attr : C_Chtype) return C_Int;
++ Attr : Attributed_Character) return Eti_Error;
+ pragma Import (C, Set_Menu_Fore, "set_menu_fore");
+
+ Ch : constant Attributed_Character := (Ch => Character'First,
+ Color => Color,
+ Attr => Fore);
+- Res : constant Eti_Error := Set_Menu_Fore (Men, AttrChar_To_Chtype (Ch));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Fore (Men, Ch));
+ end Set_Foreground;
+
+ procedure Foreground (Men : Menu;
+ Fore : out Character_Attribute_Set)
+ is
+- function Menu_Fore (Men : Menu) return C_Chtype;
++ function Menu_Fore (Men : Menu) return Attributed_Character;
+ pragma Import (C, Menu_Fore, "menu_fore");
+ begin
+- Fore := Chtype_To_AttrChar (Menu_Fore (Men)).Attr;
++ Fore := Menu_Fore (Men).Attr;
+ end Foreground;
+
+ procedure Foreground (Men : Menu;
+ Fore : out Character_Attribute_Set;
+ Color : out Color_Pair)
+ is
+- function Menu_Fore (Men : Menu) return C_Chtype;
++ function Menu_Fore (Men : Menu) return Attributed_Character;
+ pragma Import (C, Menu_Fore, "menu_fore");
+ begin
+- Fore := Chtype_To_AttrChar (Menu_Fore (Men)).Attr;
+- Color := Chtype_To_AttrChar (Menu_Fore (Men)).Color;
++ Fore := Menu_Fore (Men).Attr;
++ Color := Menu_Fore (Men).Color;
+ end Foreground;
+
+ procedure Set_Background
+@@ -589,37 +513,34 @@
+ Color : Color_Pair := Color_Pair'First)
+ is
+ function Set_Menu_Back (Men : Menu;
+- Attr : C_Chtype) return C_Int;
++ Attr : Attributed_Character) return Eti_Error;
+ pragma Import (C, Set_Menu_Back, "set_menu_back");
+
+ Ch : constant Attributed_Character := (Ch => Character'First,
+ Color => Color,
+ Attr => Back);
+- Res : constant Eti_Error := Set_Menu_Back (Men, AttrChar_To_Chtype (Ch));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Back (Men, Ch));
+ end Set_Background;
+
+ procedure Background (Men : Menu;
+ Back : out Character_Attribute_Set)
+ is
+- function Menu_Back (Men : Menu) return C_Chtype;
++ function Menu_Back (Men : Menu) return Attributed_Character;
+ pragma Import (C, Menu_Back, "menu_back");
+ begin
+- Back := Chtype_To_AttrChar (Menu_Back (Men)).Attr;
++ Back := Menu_Back (Men).Attr;
+ end Background;
+
+ procedure Background (Men : Menu;
+ Back : out Character_Attribute_Set;
+ Color : out Color_Pair)
+ is
+- function Menu_Back (Men : Menu) return C_Chtype;
++ function Menu_Back (Men : Menu) return Attributed_Character;
+ pragma Import (C, Menu_Back, "menu_back");
+ begin
+- Back := Chtype_To_AttrChar (Menu_Back (Men)).Attr;
+- Color := Chtype_To_AttrChar (Menu_Back (Men)).Color;
++ Back := Menu_Back (Men).Attr;
++ Color := Menu_Back (Men).Color;
+ end Background;
+
+ procedure Set_Grey (Men : Menu;
+@@ -627,53 +548,46 @@
+ Color : Color_Pair := Color_Pair'First)
+ is
+ function Set_Menu_Grey (Men : Menu;
+- Attr : C_Chtype) return C_Int;
++ Attr : Attributed_Character) return Eti_Error;
+ pragma Import (C, Set_Menu_Grey, "set_menu_grey");
+
+ Ch : constant Attributed_Character := (Ch => Character'First,
+ Color => Color,
+ Attr => Grey);
+
+- Res : constant Eti_Error := Set_Menu_Grey (Men, AttrChar_To_Chtype (Ch));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Grey (Men, Ch));
+ end Set_Grey;
+
+ procedure Grey (Men : Menu;
+ Grey : out Character_Attribute_Set)
+ is
+- function Menu_Grey (Men : Menu) return C_Chtype;
++ function Menu_Grey (Men : Menu) return Attributed_Character;
+ pragma Import (C, Menu_Grey, "menu_grey");
+ begin
+- Grey := Chtype_To_AttrChar (Menu_Grey (Men)).Attr;
++ Grey := Menu_Grey (Men).Attr;
+ end Grey;
+
+ procedure Grey (Men : Menu;
+ Grey : out Character_Attribute_Set;
+ Color : out Color_Pair)
+ is
+- function Menu_Grey (Men : Menu) return C_Chtype;
++ function Menu_Grey (Men : Menu) return Attributed_Character;
+ pragma Import (C, Menu_Grey, "menu_grey");
+ begin
+- Grey := Chtype_To_AttrChar (Menu_Grey (Men)).Attr;
+- Color := Chtype_To_AttrChar (Menu_Grey (Men)).Color;
++ Grey := Menu_Grey (Men).Attr;
++ Color := Menu_Grey (Men).Color;
+ end Grey;
+
+ procedure Set_Pad_Character (Men : Menu;
+ Pad : Character := Space)
+ is
+ function Set_Menu_Pad (Men : Menu;
+- Ch : C_Int) return C_Int;
++ Ch : C_Int) return Eti_Error;
+ pragma Import (C, Set_Menu_Pad, "set_menu_pad");
+
+- Res : constant Eti_Error := Set_Menu_Pad (Men,
+- C_Int (Character'Pos (Pad)));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Pad (Men, C_Int (Character'Pos (Pad))));
+ end Set_Pad_Character;
+
+ procedure Pad_Character (Men : Menu;
+@@ -691,17 +605,14 @@
+ Col : Column_Position := 0)
+ is
+ function Set_Spacing (Men : Menu;
+- D, R, C : C_Int) return C_Int;
++ D, R, C : C_Int) return Eti_Error;
+ pragma Import (C, Set_Spacing, "set_menu_spacing");
+
+- Res : constant Eti_Error := Set_Spacing (Men,
+- C_Int (Descr),
+- C_Int (Row),
+- C_Int (Col));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Spacing (Men,
++ C_Int (Descr),
++ C_Int (Row),
++ C_Int (Col)));
+ end Set_Spacing;
+
+ procedure Spacing (Men : Menu;
+@@ -711,22 +622,18 @@
+ is
+ type C_Int_Access is access all C_Int;
+ function Get_Spacing (Men : Menu;
+- D, R, C : C_Int_Access) return C_Int;
++ D, R, C : C_Int_Access) return Eti_Error;
+ pragma Import (C, Get_Spacing, "menu_spacing");
+
+ D, R, C : aliased C_Int;
+- Res : constant Eti_Error := Get_Spacing (Men,
+- D'Access,
+- R'Access,
+- C'Access);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- else
+- Descr := Column_Position (D);
+- Row := Line_Position (R);
+- Col := Column_Position (C);
+- end if;
++ Eti_Exception (Get_Spacing (Men,
++ D'Access,
++ R'Access,
++ C'Access));
++ Descr := Column_Position (D);
++ Row := Line_Position (R);
++ Col := Column_Position (C);
+ end Spacing;
+ -------------------------------------------------------------------------------
+ function Set_Pattern (Men : Menu;
+@@ -734,7 +641,7 @@
+ is
+ type Char_Ptr is access all Interfaces.C.char;
+ function Set_Pattern (Men : Menu;
+- Pattern : Char_Ptr) return C_Int;
++ Pattern : Char_Ptr) return Eti_Error;
+ pragma Import (C, Set_Pattern, "set_menu_pattern");
+
+ S : char_array (0 .. Text'Length);
+@@ -744,11 +651,11 @@
+ To_C (Text, S, L);
+ Res := Set_Pattern (Men, S (S'First)'Access);
+ case Res is
+- when E_No_Match => return False;
+- when E_Ok => return True;
++ when E_No_Match =>
++ return False;
+ when others =>
+ Eti_Exception (Res);
+- return False;
++ return True;
+ end case;
+ end Set_Pattern;
+
+@@ -767,16 +674,14 @@
+ is
+ function Set_Menu_Fmt (Men : Menu;
+ Lin : C_Int;
+- Col : C_Int) return C_Int;
++ Col : C_Int) return Eti_Error;
+ pragma Import (C, Set_Menu_Fmt, "set_menu_format");
+
+- Res : constant Eti_Error := Set_Menu_Fmt (Men,
+- C_Int (Lines),
+- C_Int (Columns));
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Fmt (Men,
++ C_Int (Lines),
++ C_Int (Columns)));
++
+ end Set_Format;
+
+ procedure Format (Men : Menu;
+@@ -785,74 +690,58 @@
+ is
+ type C_Int_Access is access all C_Int;
+ function Menu_Fmt (Men : Menu;
+- Y, X : C_Int_Access) return C_Int;
++ Y, X : C_Int_Access) return Eti_Error;
+ pragma Import (C, Menu_Fmt, "menu_format");
+
+ L, C : aliased C_Int;
+- Res : constant Eti_Error := Menu_Fmt (Men, L'Access, C'Access);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- else
+- Lines := Line_Count (L);
+- Columns := Column_Count (C);
+- end if;
++ Eti_Exception (Menu_Fmt (Men, L'Access, C'Access));
++ Lines := Line_Count (L);
++ Columns := Column_Count (C);
+ end Format;
+ -------------------------------------------------------------------------------
+ procedure Set_Item_Init_Hook (Men : Menu;
+ Proc : Menu_Hook_Function)
+ is
+ function Set_Item_Init (Men : Menu;
+- Proc : Menu_Hook_Function) return C_Int;
++ Proc : Menu_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Item_Init, "set_item_init");
+
+- Res : constant Eti_Error := Set_Item_Init (Men, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Item_Init (Men, Proc));
+ end Set_Item_Init_Hook;
+
+ procedure Set_Item_Term_Hook (Men : Menu;
+ Proc : Menu_Hook_Function)
+ is
+ function Set_Item_Term (Men : Menu;
+- Proc : Menu_Hook_Function) return C_Int;
++ Proc : Menu_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Item_Term, "set_item_term");
+
+- Res : constant Eti_Error := Set_Item_Term (Men, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Item_Term (Men, Proc));
+ end Set_Item_Term_Hook;
+
+ procedure Set_Menu_Init_Hook (Men : Menu;
+ Proc : Menu_Hook_Function)
+ is
+ function Set_Menu_Init (Men : Menu;
+- Proc : Menu_Hook_Function) return C_Int;
++ Proc : Menu_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Menu_Init, "set_menu_init");
+
+- Res : constant Eti_Error := Set_Menu_Init (Men, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Init (Men, Proc));
+ end Set_Menu_Init_Hook;
+
+ procedure Set_Menu_Term_Hook (Men : Menu;
+ Proc : Menu_Hook_Function)
+ is
+ function Set_Menu_Term (Men : Menu;
+- Proc : Menu_Hook_Function) return C_Int;
++ Proc : Menu_Hook_Function) return Eti_Error;
+ pragma Import (C, Set_Menu_Term, "set_menu_term");
+
+- Res : constant Eti_Error := Set_Menu_Term (Men, Proc);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Menu_Term (Men, Proc));
+ end Set_Menu_Term_Hook;
+
+ function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function
+@@ -891,19 +780,15 @@
+ Items : Item_Array_Access)
+ is
+ function Set_Items (Men : Menu;
+- Items : System.Address) return C_Int;
++ Items : System.Address) return Eti_Error;
+ pragma Import (C, Set_Items, "set_menu_items");
+
+- Res : Eti_Error;
+ begin
+ pragma Assert (Items.all (Items'Last) = Null_Item);
+ if Items.all (Items'Last) /= Null_Item then
+ raise Menu_Exception;
+ else
+- Res := Set_Items (Men, Items.all'Address);
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Set_Items (Men, Items.all'Address));
+ end if;
+ end Redefine;
+
+@@ -955,14 +840,11 @@
+
+ procedure Delete (Men : in out Menu)
+ is
+- function Free (Men : Menu) return C_Int;
++ function Free (Men : Menu) return Eti_Error;
+ pragma Import (C, Free, "free_menu");
+
+- Res : constant Eti_Error := Free (Men);
+ begin
+- if Res /= E_Ok then
+- Eti_Exception (Res);
+- end if;
++ Eti_Exception (Free (Men));
+ Men := Null_Menu;
+ end Delete;
+
+@@ -971,22 +853,22 @@
+ Key : Key_Code) return Driver_Result
+ is
+ function Driver (Men : Menu;
+- Key : C_Int) return C_Int;
++ Key : C_Int) return Eti_Error;
+ pragma Import (C, Driver, "menu_driver");
+
+ R : constant Eti_Error := Driver (Men, C_Int (Key));
+ begin
+- if R /= E_Ok then
+- case R is
+- when E_Unknown_Command => return Unknown_Request;
+- when E_No_Match => return No_Match;
+- when E_Request_Denied |
+- E_Not_Selectable => return Request_Denied;
+- when others =>
+- Eti_Exception (R);
+- end case;
+- end if;
+- return Menu_Ok;
++ case R is
++ when E_Unknown_Command =>
++ return Unknown_Request;
++ when E_No_Match =>
++ return No_Match;
++ when E_Request_Denied | E_Not_Selectable =>
++ return Request_Denied;
++ when others =>
++ Eti_Exception (R);
++ return Menu_Ok;
++ end case;
+ end Driver;
+
+ procedure Free (IA : in out Item_Array_Access;
+Index: Ada95/src/terminal_interface-curses-mouse.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-mouse.adb 2009-12-26 17:38:58.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-mouse.adb 2014-09-13 19:10:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.24 $
+--- $Date: 2009/12/26 17:38:58 $
++-- $Revision: 1.25 $
++-- $Date: 2014/09/13 19:10:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+@@ -199,7 +199,8 @@
+ pragma Import (C, Wenclose, "wenclose");
+ begin
+ if Wenclose (Win, C_Int (Event.Y), C_Int (Event.X))
+- = Curses_Bool_False then
++ = Curses_Bool_False
++ then
+ return False;
+ else
+ return True;
+Index: Ada95/src/terminal_interface-curses-text_io.adb
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-text_io.adb 2011-03-22 23:38:49.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-text_io.adb 2014-05-24 21:32:18.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,8 +35,8 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.20 $
+--- $Date: 2011/03/22 23:38:49 $
++-- $Revision: 1.22 $
++-- $Date: 2014/05/24 21:32:18 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ package body Terminal_Interface.Curses.Text_IO is
+@@ -205,7 +205,7 @@
+ end if;
+
+ Get_Cursor_Position (Win, Y1, X);
+- pragma Unreferenced (X);
++ pragma Warnings (Off, X); -- unreferenced
+ N := Natural (To); N := N - 1;
+ Y2 := Line_Position (N);
+ if Y2 < Y1 then
+Index: Ada95/src/terminal_interface-curses-trace.adb_p
+--- ncurses-5.9/Ada95/src/terminal_interface-curses-trace.adb_p 2011-03-19 18:16:43.000000000 +0000
++++ ncurses-5.9-20141206/Ada95/src/terminal_interface-curses-trace.adb_p 2014-05-24 21:31:57.000000000 +0000
+@@ -7,7 +7,7 @@
+ -- B O D Y --
+ -- --
+ ------------------------------------------------------------------------------
+--- Copyright (c) 2000-2004,2009 Free Software Foundation, Inc. --
++-- Copyright (c) 2000-2009,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -35,60 +35,39 @@
+ ------------------------------------------------------------------------------
+ -- Author: Juergen Pfeifer, 1996
+ -- Version Control:
+--- $Revision: 1.7 $
++-- $Revision: 1.11 $
+ -- Binding Version 01.00
+ ------------------------------------------------------------------------------
+ #if ADA_TRACE then
+ with Interfaces.C; use Interfaces.C;
+-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+-with Ada.Unchecked_Conversion;
+ #end if;
+
+ package body Terminal_Interface.Curses.Trace is
+
+ #if ADA_TRACE then
+- type C_TraceType is new C_UInt;
+-
+- function TraceAda_To_TraceC is new
+- Ada.Unchecked_Conversion (Source => Trace_Attribute_Set,
+- Target => C_TraceType);
+-
+ procedure Trace_On (x : Trace_Attribute_Set) is
+- procedure traceC (y : C_TraceType);
++ procedure traceC (y : Trace_Attribute_Set);
+ pragma Import (C, traceC, "trace");
+ begin
+- traceC (TraceAda_To_TraceC (x));
++ traceC (x);
+ end Trace_On;
+
+- -- 75. (12) A C function that takes a variable number of arguments can
+- -- correspond to several Ada subprograms, taking various specific
+- -- numbers and types of parameters.
+-
+ procedure Trace_Put (str : String) is
+ procedure tracef (format : char_array; s : char_array);
+ pragma Import (C, tracef, "_traces");
+- Txt : char_array (0 .. str'Length);
+- Length : size_t;
+- formatstr : constant String := "%s" & ASCII.NUL;
+- formattxt : char_array (0 .. formatstr'Length);
++ -- _traces() is defined in c_varargs_to_ada.h
+ begin
+- To_C (formatstr, formattxt, Length);
+- To_C (str, Txt, Length);
+- tracef (formattxt, Txt);
++ tracef (To_C ("%s"), To_C (str));
+ end Trace_Put;
+ #else
+ procedure Trace_On (x : Trace_Attribute_Set) is
+-#if PRAGMA_UNREF
+- pragma Unreferenced (x);
+-#end if;
++ pragma Warnings (Off, x); -- unreferenced
+ begin
+ null;
+ end Trace_On;
+
+ procedure Trace_Put (str : String) is
+-#if PRAGMA_UNREF
+- pragma Unreferenced (str);
+-#end if;
++ pragma Warnings (Off, str); -- unreferenced
+ begin
+ null;
+ end Trace_Put;
+Index: COPYING
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/COPYING 2014-01-18 23:59:29.000000000 +0000
+@@ -0,0 +1,28 @@
++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, distribute with modifications, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
++DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
++THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++-- vile:txtmode fc=72
++-- $Id: COPYING,v 1.2 2014/01/18 23:59:29 tom Exp $
+Index: INSTALL
+Prereq: 1.155
+--- ncurses-5.9/INSTALL 2011-03-31 08:27:24.000000000 +0000
++++ ncurses-5.9-20141206/INSTALL 2014-12-06 13:31:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written --
+ -- authorization. --
+ -------------------------------------------------------------------------------
+--- $Id: INSTALL,v 1.155 2011/03/31 08:27:24 tom Exp $
++-- $Id: INSTALL,v 1.179 2014/12/06 13:31:57 tom Exp $
+ ---------------------------------------------------------------------
+ How to install Ncurses/Terminfo on your system
+ ---------------------------------------------------------------------
+@@ -315,6 +315,10 @@
+ programs are useful in this configuration, e.g., reset and tput versus
+ infocmp and tic.
+
++ --disable-db-install
++ Do not install the terminal database. This is used to omit features
++ for packages, as done with --without-progs.
++
+ --disable-ext-funcs
+ Disable function-extensions. Configure ncurses without the functions
+ that are not specified by XSI. See ncurses/modules for the exact
+@@ -333,6 +337,10 @@
+ --disable-largefile
+ Disable compiler flags needed to use large-file interfaces.
+
++ --disable-lib-suffixes
++ Suppress the "w", "t" or "tw" suffixes which normally would be added
++ to the library names for the --enable-widec and --with-pthread options.
++
+ --disable-libtool-version
+ when using --with-libtool, control how the major/minor version numbers
+ are used for constructing the library name.
+@@ -344,6 +352,10 @@
+ Use --disable-libtool-version to use the libtool -version-info feature.
+ This corresponds to the setting used before patch 20100515.
+
++ Starting with patch 20141115, using this option causes the configure
++ script to apply the top-level VERSION file to the ABI version used
++ for libtool.
++
+ --disable-leaks
+ For testing, compile-in code that frees memory that normally would not
+ be freed, to simplify analysis of memory-leaks.
+@@ -352,11 +364,17 @@
+ a screen, since (even after calling endwin()), it must be available
+ for use in the next call to refresh(). There are also chunks of
+ memory held for performance reasons. That makes it hard to analyze
+- curses applications for memory leaks. To work around this, build
+- a debugging version of the ncurses library which frees those chunks
++ curses applications for memory leaks. To work around this, build a
++ debugging version of the ncurses library which frees those chunks
+ which it can, and provides the _nc_free_and_exit() function to free
+- the remainder on exit. The ncurses utility and test programs use this
+- feature, e.g., via the ExitProgram() macro.
++ the remainder and then exit. The ncurses utility and test programs
++ use this feature, e.g., via the ExitProgram() macro.
++
++ Because this lies outside of the library's intended usage, it is not
++ normally considered part of the ABI. If there were some (as yet
++ unplanned) extension which frees memory in a manner that would let the
++ library resume and reallocate memory, then that would not use a "_nc_"
++ prefix.
+
+ --disable-lp64
+ The header files will ignore use of the _LP64 symbol to make chtype
+@@ -382,6 +400,37 @@
+ rather than the include directory. This makes it simpler to avoid
+ compile-time conflicts with other versions of curses.h
+
++ Putting the header files into a subdirectory assumes that applications
++ will follow the (standard) practice of including the headers with
++ reference to the subdirectory name. For instance, the normal ncurses
++ header would be included using
++
++ #include <ncurses/curses.h>
++ #include <ncurses/term.h>
++
++ while the ncursesw headers would be found this way:
++
++ #include <ncursesw/curses.h>
++ #include <ncursesw/term.h>
++
++ In either case (with or without the --disable-overwrite option),
++ almost all applications are designed to include a related set of
++ curses header files from the same directory.
++
++ Manipulating the --includedir configure option to put header files
++ directly in a subdirectory of the normal include-directory defeats
++ this, and breaks builds of portable applications. Likewise, putting
++ some headers in /usr/include, and others in a subdirectory is a good
++ way to break builds.
++
++ When configured with --disable-overwrite, the installed header files'
++ embedded #include's are adjusted to use the same style of includes
++ noted above. In particular, the unctrl.h header is included from
++ curses.h, which means that a makefile which tells the compiler to
++ include directly from the subdirectory will fail to compile correctly.
++ Without some special effort, it will either fail to compile at all,
++ or the compiler may find a different unctrl.h file.
++
+ --disable-relink
+ If --enable-rpath is given, the generated makefiles normally will
+ rebuild the libraries during install. Use this option to simply
+@@ -407,13 +456,14 @@
+
+ --disable-tic-depends
+ When building shared libraries, normally the tic library is linked to
+- depend upon the ncurses library (and in turn, on the term-library if
+- the --with-termlib option was given). The tic- and term-libraries
+- ABI does not depend on the --enable-widec option. Some packagers have
+- used this to reduce the number of library files which are packaged
+- by using only one copy of those libraries. To make this work properly,
++ depend upon the ncurses library (or equivalently, on the tinfo-library
++ if the --with-termlib option was given). The tic- and tinfo-library
++ ABIs do not depend on the --enable-widec option. Some packagers have
++ used this to reduce the number of library files which are packaged by
++ using only one copy of those libraries. To make this work properly,
+ the tic library must be built without an explicit dependency on the
+- ncurses (or ncursesw) library. Use this configure option to do that.
++ underlying library (ncurses vs ncursesw, tinfo vs tinfow). Use this
++ configure option to do that.
+ For example
+ configure --with-ticlib --with-shared --disable-tic-depends
+
+@@ -555,6 +605,9 @@
+ library by reducing global and static variables. This option is also
+ set if --with-pthread is used.
+
++ Enabling this option adds a "t" to the library names, except for the
++ special case when --enable-weak-symbols is also used.
++
+ --enable-rpath
+ Use rpath option when generating shared libraries, and (with some
+ restrictions) when linking the corresponding programs. This originally
+@@ -595,6 +648,14 @@
+ reducing the need for juggling the global SP value with set_term() and
+ delscreen().
+
++ --enable-string-hacks
++ Controls whether strlcat and strlcpy may be used. The same issue
++ applies to OpenBSD's warnings about snprintf, noting that this function
++ is weakly standardized.
++
++ Aside from stifling these warnings, there is no functional improvement
++ in ncurses.
++
+ --enable-symlinks
+ If your system supports symbolic links, make tic use symbolic links
+ rather than hard links to save diskspace when writing aliases in the
+@@ -616,6 +677,12 @@
+ match is found in the terminfo database. See also the --enable-getcap
+ and --enable-getcap-cache options.
+
++ Termcap support requires run-time parsing rather than loading
++ predigested data. If you have specified --with-ticlib, then you
++ cannot have termcap support since run-time parsing is done in the
++ tic library, which is intentionally not part of normal linkage
++ dependencies.
++
+ --enable-warnings
+ Turn on GCC compiler warnings. There should be only a few.
+
+@@ -740,6 +807,12 @@
+ executables, e.g., by setting "--with-chtype=long" (the configure
+ script supplies "unsigned").
+
++ --with-cxx-shared
++ When --with-shared is set, build libncurses++ as a shared library.
++ This implicitly relies upon building with gcc/g++, since other
++ compiler suites may have differences in the way shared libraries are
++ built. libtool by the way has similar limitations.
++
+ --with-database=XXX
+ Specify the terminfo source file to install. Usually you will wish
+ to install ncurses' default (misc/terminfo.src). Certain systems
+@@ -762,6 +835,11 @@
+ For testing, compile and link with Gray Watson's dmalloc library.
+ This also sets the --disable-leaks option.
+
++ --with-export-syms[=XXX]
++ Limit exported symbols using libtool. The configure script
++ automatically chooses an appropriate ".sym" file, which lists the
++ symbols which are part of the ABI.
++
+ --with-fallbacks=XXX
+ Specify a list of fallback terminal descriptions which will be
+ compiled into the ncurses library. See CONFIGURING FALLBACK ENTRIES.
+@@ -805,10 +883,15 @@
+ filesystem-based terminfo entries.
+
+ Use the parameter value to give the install-prefix used for the
+- datbase, e.g.,
++ database, e.g.,
+ --with-hashed-db=/usr/local/BigBase
+ to find the corresponding include- and lib-directories under the
+- given directory.
++ given directory. Alternatively, you can specify a directory leaf
++ name, e.g.,
++ --with-hashed-db=db4
++ to make the configure script look for files in a subdirectory such as
++ /usr/include/db4/db.h
++ /usr/lib/db4/libdb.so
+
+ See also the --enable-getcap option.
+
+@@ -824,7 +907,17 @@
+ NOTE: a few systems build shared libraries with fixed pathnames; this
+ option probably will not work for those configurations.
+
+- --with-libtool[=XXX]
++ --with-lib-prefix=XXX
++ OS/2 EMX used a different naming convention from most Unix-like
++ platforms. It required that the "lib" part of a library name was
++ omitted. Newer EMX as part of eComStation does not follow that
++ convention. Use this option to override the configure script's
++ assumptions about the library-prefix. If this option is omitted, it
++ uses the original OS/2 EMX convention for that platform. Use
++ "--with-lib-prefix=lib" for the newer EMX in eComStation. Use
++ "--without-lib-prefix" to suppress it for other odd platforms.
++
++ --with-libtool[=XXX]
+ Generate libraries with libtool. If this option is selected, then it
+ overrides all other library model specifications. Note that libtool
+ must already be installed, uses makefile rules dependent on GNU make,
+@@ -842,6 +935,9 @@
+ using the appropriate patch for autoconf from
+ http://invisible-island.net/autoconf/
+
++ --with-libtool-opts=XXX
++ Specify additional libtool options.
++
+ --with-manpage-aliases
+ Tell the configure script you wish to create entries in the
+ man-directory for aliases to manpages which list them, e.g., the
+@@ -904,6 +1000,10 @@
+ --with-pkg-config=[DIR]
+ Check for pkg-config, optionally specifying its path.
+
++ --with-pkg-config-libdir=[DIR]
++ If pkg-config was found, override the automatic check for its library
++ path.
++
+ --with-profile
+ Generate profile-libraries These are named by adding "_p" to the root,
+ e.g., libncurses_p.a
+@@ -936,11 +1036,23 @@
+ shared libraries, you may encounter problems with the linker.
+ For example, it may prevent you from running the build tree's
+ copy of tic (for installing the terminfo database) because it
+- loads the system's copy of the ncurses shared libraries. In that
+- case, using the misc/shlib script may be helpful, since it sets
+- $LD_LIBRARY_PATH to point to the build tree, e.g.,
++ loads the system's copy of the ncurses shared libraries.
++
++ In that case, using the misc/shlib script may be helpful, since it
++ sets $LD_LIBRARY_PATH to point to the build tree, e.g.,
++
+ ./misc/shlib make install
+
++ Alternatively, for most platforms, the linker accepts a list of
++ directories which will be searched for libraries at run-time. The
++ configure script allows you to modify this list using the
++ RPATH_LIST environment variable. It is a colon-separated list of
++ directories (default: the "libdir" set via the configure script).
++ If you set that to put "../lib" first in the list, the linker will
++ look first at the build-directory, and avoid conflict with libraries
++ already installed. One drawback to this approach is that libraries
++ can be accidentally searched in any "../lib" directory.
++
+ NOTE: If you use the --with-ada-sharedlib option, you should also
+ set this option, to ensure that C-language modules needed for the
+ Ada binding use appropriate compiler options.
+@@ -996,10 +1108,40 @@
+ library dependencies for tic and other programs built with the tic
+ library.
+
++ --with-tparm-arg[=XXX]
++ Override the type used for tparm() arguments, which normally is a
++ "long". However the function must assume that its arguments can hold a
++ pointer to char's which is not always workable for 64-bit platforms. A
++ better choice would be intptr_t, which was not available at the time
++ tparm's interface was defined.
++
++ If the option is not given, this defaults to "long".
++
+ --with-trace
+ Configure the trace() function as part of the all models of the ncurses
+ library. Normally it is part of the debug (libncurses_g) library only.
+
++ --with-versioned-syms[=XXX]
++ The Solaris, GNU and reportedly some other linkers (ld) accept a
++ "--version-script" option which tells the linker to annotate the
++ resulting objects with version identifiers. The configure script
++ will automatically apply a suitable ".map" file to provide this
++ information for Linux. Solaris mapfiles differ:
++
++ a) comments are not accepted
++ b) wildcards are not accepted
++ c) each symbol listed in the map file must exist in the library
++
++ Use "objdump -T" on a library to see the annotations.
++
++ --with-xterm-kbs=XXX
++ Configure xterm's terminfo entries to use either BS (^H, i.e., ASCII
++ backspace) or DEL (^?, or 127). XXX can be BS (or bs, 8) or DEL
++ (or del, 127).
++
++ During installation, the makefile and scripts modifies the "xterm+kbs"
++ terminfo entry to use this setting.
++
+ --with-valgrind
+ For testing, compile with debug option.
+ This also sets the --disable-leaks option.
+@@ -1024,6 +1166,8 @@
+ install as "ncurses.h" and modify the installed headers and manpages
+ accordingly.
+
++ Likewise, do not install an alias "curses" for the ncurses manpage.
++
+ --without-cxx
+ XSI curses declares "bool" as part of the interface. C++ also declares
+ "bool". Neither specifies the size and type of booleans, but both
+@@ -1726,20 +1870,37 @@
+ By default, there are no entries on the fallback list. After you have
+ built the ncurses suite for the first time, you can change the list
+ (the process needs infocmp(1)). To do so, use the script
+- ncurses/tinfo/MKfallback.sh. A configure script option
++ ncurses/tinfo/MKfallback.sh. The configure script option
+ --with-fallbacks does this (it accepts a comma-separated list of the
+ names you wish, and does not require a rebuild).
+
+ If you wanted (say) to have linux, vt100, and xterm fallbacks, you
+- would use the commands
++ might use the commands
+
+ cd ncurses;
+- tinfo/MKfallback.sh linux vt100 xterm >fallback.c
++ tinfo/MKfallback.sh \
++ $TERMINFO \
++ ../misc/terminfo.src \
++ `which tic` \
++ linux vt100 xterm >fallback.c
++
++ The first three parameters of the script are normally supplied by
++ the configured makefiles via the "--with-fallbacks" option. They
++ are
++
++ 1) the location of the terminfo database
++ 2) the source for the terminfo entries
++ 3) the location of the tic program, used to create a terminfo
++ database.
+
+ Then just rebuild and reinstall the library as you would normally.
+ You can restore the default empty fallback list with
+
+- tinfo/MKfallback.sh >fallback.c
++ tinfo/MKfallback.sh \
++ $TERMINFO \
++ ../misc/terminfo.src \
++ `which tic` \
++ >fallback.c
+
+ The overhead for an empty fallback list is one trivial stub function.
+ Any non-empty fallback list is const-ed and therefore lives in sharable
+Index: MANIFEST
+--- ncurses-5.9/MANIFEST 2011-03-28 00:29:04.000000000 +0000
++++ ncurses-5.9-20141206/MANIFEST 2014-11-15 14:03:59.000000000 +0000
+@@ -128,6 +128,8 @@
+ ./Ada95/samples/tour.adb
+ ./Ada95/samples/tour.ads
+ ./Ada95/src/Makefile.in
++./Ada95/src/c_threaded_variables.c
++./Ada95/src/c_threaded_variables.h
+ ./Ada95/src/c_varargs_to_ada.c
+ ./Ada95/src/c_varargs_to_ada.h
+ ./Ada95/src/library.gpr
+@@ -190,6 +192,7 @@
+ ./Ada95/src/terminal_interface-curses-text_io.ads
+ ./Ada95/src/terminal_interface-curses-trace.adb_p
+ ./Ada95/src/terminal_interface.ads
++./COPYING
+ ./INSTALL
+ ./MANIFEST
+ ./Makefile.in
+@@ -199,6 +202,7 @@
+ ./README.MinGW
+ ./README.emx
+ ./TO-DO
++./VERSION
+ ./aclocal.m4
+ ./announce.html.in
+ ./c++/Makefile.in
+@@ -332,6 +336,7 @@
+ ./doc/html/ada/terminal_interface-curses-trace__ads.htm
+ ./doc/html/ada/terminal_interface-curses__adb.htm
+ ./doc/html/ada/terminal_interface-curses__ads.htm
++./doc/html/ada/terminal_interface-curses_constants__ads.htm
+ ./doc/html/ada/terminal_interface__ads.htm
+ ./doc/html/announce.html
+ ./doc/html/hackguide.html
+@@ -545,6 +550,8 @@
+ ./include/nc_alloc.h
+ ./include/nc_mingw.h
+ ./include/nc_panel.h
++./include/nc_string.h
++./include/nc_termios.h
+ ./include/nc_tparm.h
+ ./include/ncurses_cfg.hin
+ ./include/ncurses_defs
+@@ -656,6 +663,8 @@
+ ./man/legacy_coding.3x
+ ./man/make_sed.sh
+ ./man/man_db.renames
++./man/manhtml.aliases
++./man/manhtml.externs
+ ./man/manlinks.sed
+ ./man/menu.3x
+ ./man/menu_attributes.3x
+@@ -764,7 +773,6 @@
+ ./mk-0th.awk
+ ./mk-1st.awk
+ ./mk-2nd.awk
+-./mk-dlls.sh.in
+ ./mk-hdr.awk
+ ./ncurses/Makefile.in
+ ./ncurses/README
+@@ -850,7 +858,6 @@
+ ./ncurses/base/lib_wattron.c
+ ./ncurses/base/lib_winch.c
+ ./ncurses/base/lib_window.c
+-./ncurses/base/memmove.c
+ ./ncurses/base/nc_panel.c
+ ./ncurses/base/resizeterm.c
+ ./ncurses/base/safe_sprintf.c
+@@ -867,6 +874,14 @@
+ ./ncurses/llib-lncursest
+ ./ncurses/llib-lncursestw
+ ./ncurses/llib-lncursesw
++./ncurses/llib-ltic
++./ncurses/llib-ltict
++./ncurses/llib-ltictw
++./ncurses/llib-lticw
++./ncurses/llib-ltinfo
++./ncurses/llib-ltinfot
++./ncurses/llib-ltinfotw
++./ncurses/llib-ltinfow
+ ./ncurses/modules
+ ./ncurses/tinfo/MKcaptab.awk
+ ./ncurses/tinfo/MKcaptab.sh
+@@ -915,10 +930,10 @@
+ ./ncurses/tinfo/make_hash.c
+ ./ncurses/tinfo/make_keys.c
+ ./ncurses/tinfo/name_match.c
++./ncurses/tinfo/obsolete.c
+ ./ncurses/tinfo/parse_entry.c
+ ./ncurses/tinfo/read_entry.c
+ ./ncurses/tinfo/read_termcap.c
+-./ncurses/tinfo/setbuf.c
+ ./ncurses/tinfo/strings.c
+ ./ncurses/tinfo/tinfo_driver.c
+ ./ncurses/tinfo/trim_sgr0.c
+@@ -943,8 +958,6 @@
+ ./ncurses/tty/lib_tstp.c
+ ./ncurses/tty/lib_twait.c
+ ./ncurses/tty/lib_vidattr.c
+-./ncurses/tty/tty_display.h
+-./ncurses/tty/tty_input.h
+ ./ncurses/tty/tty_update.c
+ ./ncurses/wcwidth.h
+ ./ncurses/widechar/charable.c
+@@ -967,9 +980,42 @@
+ ./ncurses/widechar/lib_vline_set.c
+ ./ncurses/widechar/lib_wacs.c
+ ./ncurses/widechar/lib_wunctrl.c
++./ncurses/widechar/widechars.c
+ ./ncurses/win32con/gettimeofday.c
+ ./ncurses/win32con/wcwidth.c
+ ./ncurses/win32con/win_driver.c
++./package/debian-mingw/changelog
++./package/debian-mingw/compat
++./package/debian-mingw/control
++./package/debian-mingw/copyright
++./package/debian-mingw/rules
++./package/debian-mingw/source/format
++./package/debian-mingw/watch
++./package/debian-mingw64/changelog
++./package/debian-mingw64/compat
++./package/debian-mingw64/control
++./package/debian-mingw64/copyright
++./package/debian-mingw64/rules
++./package/debian-mingw64/source/format
++./package/debian-mingw64/watch
++./package/debian/changelog
++./package/debian/compat
++./package/debian/control
++./package/debian/copyright
++./package/debian/rules
++./package/debian/source/format
++./package/debian/watch
++./package/mingw-ncurses.nsi
++./package/mingw-ncurses.spec
++./package/ncurses.map
++./package/ncurses.spec
++./package/ncurses.sym
++./package/ncursest.map
++./package/ncursest.sym
++./package/ncursestw.map
++./package/ncursestw.sym
++./package/ncursesw.map
++./package/ncursesw.sym
+ ./panel/Makefile.in
+ ./panel/headers
+ ./panel/llib-lpanel
+@@ -1007,6 +1053,8 @@
+ ./progs/tabs.c
+ ./progs/tic.c
+ ./progs/toe.c
++./progs/tparm_type.c
++./progs/tparm_type.h
+ ./progs/tput.c
+ ./progs/transform.c
+ ./progs/tset.c
+@@ -1022,12 +1070,14 @@
+ ./test/cardfile.dat
+ ./test/chgat.c
+ ./test/clip_printw.c
++./test/color_name.h
+ ./test/color_set.c
+ ./test/configure
+ ./test/configure.in
+ ./test/demo_altkeys.c
+ ./test/demo_defkey.c
+ ./test/demo_forms.c
++./test/demo_forms.txt
+ ./test/demo_keyok.c
+ ./test/demo_menus.c
+ ./test/demo_panels.c
+@@ -1035,7 +1085,9 @@
+ ./test/demo_terminfo.c
+ ./test/ditto.c
+ ./test/dots.c
++./test/dots_curses.c
+ ./test/dots_mvcur.c
++./test/dots_termcap.c
+ ./test/echochar.c
+ ./test/edit_field.c
+ ./test/edit_field.h
+@@ -1043,6 +1095,7 @@
+ ./test/firework.c
+ ./test/firstlast.c
+ ./test/foldkeys.c
++./test/form_driver_w.c
+ ./test/gdc.6
+ ./test/gdc.c
+ ./test/hanoi.c
+@@ -1073,6 +1126,7 @@
+ ./test/package/debian/rules
+ ./test/package/debian/source/format
+ ./test/package/debian/watch
++./test/package/mingw-ncurses-examples.spec
+ ./test/package/ncurses-examples.spec
+ ./test/programs
+ ./test/railroad.c
+@@ -1092,12 +1146,15 @@
+ ./test/test_instr.c
+ ./test/test_inwstr.c
+ ./test/test_opaque.c
++./test/test_vid_puts.c
++./test/test_vidputs.c
+ ./test/testaddch.c
+ ./test/testcurs.c
+ ./test/testscanw.c
+ ./test/tracemunch
+ ./test/view.c
+ ./test/widechars-utf8.txt
++./test/widechars.h
+ ./test/worm.c
+ ./test/xmas.c
+ ./test/xterm-16color.dat
+Index: Makefile.in
+Prereq: 1.30
+--- ncurses-5.9/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/Makefile.in 2014-01-18 20:19:45.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.30 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.38 2014/01/18 20:19:45 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -27,7 +27,7 @@
+ # authorization. #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
++# Author: Thomas E. Dickey 1996-on
+ #
+ # Master Makefile for ncurses library.
+
+@@ -35,7 +35,8 @@
+ VPATH = @srcdir@
+
+ DESTDIR=@DESTDIR@
+-CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)"
++RPATH_LIST=@RPATH_LIST@
++TOP_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" RPATH_LIST="$(RPATH_LIST)"
+
+ @SET_MAKE@
+
+@@ -48,13 +49,17 @@
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
++datarootdir = @datarootdir@
+
+ bindir = @bindir@
+ ticdir = @TERMINFO@
+ includedir = @includedir@
++includesubdir = @includesubdir@
+ libdir = @libdir@
+ mandir = @mandir@
+
++include_dir = ${includedir}${includesubdir}
++
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+
+@@ -74,25 +79,22 @@
+ @ echo ''
+ @ echo ' bin directory: '$(bindir)
+ @ echo ' lib directory: '$(libdir)
+- @ echo ' include directory: '$(includedir)
++ @ echo ' include directory: '$(include_dir)
+ @ echo ' man directory: '$(mandir)
+ @MAKE_TERMINFO@ @ echo ' terminfo directory: '$(ticdir)
+ @ echo ''
+- @ test "$(includedir)" = "$(prefix)/include" || \
++ @ test "$(include_dir)" = "$(prefix)/include" || \
+ echo '** Include-directory is not in a standard location'
+- @ test ! -f $(includedir)/termcap.h || \
+- fgrep NCURSES_VERSION $(includedir)/termcap.h >/dev/null || \
++ @ test ! -f $(include_dir)/termcap.h || \
++ fgrep NCURSES_VERSION $(include_dir)/termcap.h >/dev/null || \
+ echo '** Will overwrite non-ncurses termcap.h'
+- @ test ! -f $(includedir)/curses.h || \
+- fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \
++ @ test ! -f $(include_dir)/curses.h || \
++ fgrep NCURSES_VERSION $(include_dir)/curses.h >/dev/null || \
+ echo '** Will overwrite non-ncurses curses.h'
+
+-dlls: libs
+- $(SHELL) $(srcdir)/mk-dlls.sh
+-
+ distclean \
+ realclean ::
+- -rm -f mk-dlls.sh mingw_arch
++
+
+ # Put the common rules here so that we can easily construct the list of
+ # directories to visit.
+Index: NEWS
+Prereq: 1.1682
+--- ncurses-5.9/NEWS 2011-04-04 00:02:42.000000000 +0000
++++ ncurses-5.9-20141206/NEWS 2014-12-06 23:03:44.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written --
+ -- authorization. --
+ -------------------------------------------------------------------------------
+--- $Id: NEWS,v 1.1682 2011/04/04 00:02:42 tom Exp $
++-- $Id: NEWS,v 1.2307 2014/12/06 23:03:44 tom Exp $
+ -------------------------------------------------------------------------------
+
+ This is a log of changes that ncurses has gone through since Zeyd started
+@@ -45,6 +45,1705 @@
+ Changes through 1.9.9e did not credit all contributions;
+ it is not possible to add this information.
+
++20141206
++ + updated ".map" files so that each symbol that may be shared across
++ the different library configurations has the same label. Some
++ review is needed to ensure these are really compatible.
++ + modify MKlib_gen.sh to work around change in development version of
++ gcc introduced here:
++ https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
++ https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html
++ (reports by Marcus Shawcroft, Maohui Lei).
++ + improved configure macro CF_SUBDIR_PATH, from lynx changes.
++
++20141129
++ + improved ".map" files by generating them with a script that builds
++ ncurses with several related configurations and merges the results.
++ A further refinement is planned, to make the tic- and tinfo-library
++ symbols use the same versions across each of the four configurations
++ which are represented (reports by Sven Joachim, Werner Fink).
++
++20141115
++ + improve description of limits for color values and color pairs in
++ curs_color.3x (prompted by patch by Tim van der Molen).
++ + add VERSION file, using first field in that to record the ABI version
++ used for configure --with-libtool --disable-libtool-version
++ + add configure options for applying the ".map" and ".sym" files to
++ the ncurses, form, menu and panel libraries.
++ + add ".map" and ".sym" files to show exported symbols, e.g., for
++ symbol-versioning.
++
++20141101
++ + improve strict compiler-warnings by adding a cast in TRACE_RETURN
++ and making a new TRACE_RETURN1 macro for cases where the cast does
++ not apply.
++
++20141025
++ + in-progress changes to integrate the win32 console driver with the
++ msys2 configuration.
++
++20141018
++ + reviewed terminology 0.6.1, add function key definitions. None of
++ the vt100-compatibility issues were improved -TD
++ + improve infocmp conversion of extended capabilities to termcap by
++ correcting the limit check against parametrized[], as well as filling
++ in a check if the string happens to have parameters, e.g., "xm"
++ in recent changes.
++ + add check for zero/negative dimensions for resizeterm and resize_term
++ (report by Mike Gran).
++
++20141011
++ + add experimental support for xterm's 1005 mouse mode, to use in a
++ demonstration of its limitations.
++ + add experimental support for "%u" format to terminfo.
++ + modify test/ncurses.c to also show position reports in 'a' test.
++ + minor formatting fixes to _nc_trace_mmask_t, make this function
++ exported to help with debugging mouse changes.
++ + improve behavior of wheel-mice for xterm protocol, noting that there
++ are only button-presses for buttons "4" and "5", so there is no need
++ to wait to combine events into double-clicks (report/analysis by
++ Greg Field).
++ + provide examples xterm-1005 and xterm-1006 terminfo entries -TD
++ + implement decoder for xterm SGR 1006 mouse mode.
++
++20140927
++ + implement curs_set in win_driver.c
++ + implement flash in win_driver.c
++ + fix an infinite loop in win_driver.c if the command-window loses
++ focus.
++ + improve the non-buffered mode, i.e., NCURSES_CONSOLE2, of
++ win_driver.c by temporarily changing the buffer-size to match the
++ window-size to eliminate the scrollback. Also enforce a minimum
++ screen-size of 24x80 in the non-buffered mode.
++ + modify generated misc/Makefile to suppress install.data from the
++ dependencies if the --disable-db-install option is used, compensating
++ for the top-level makefile changes used to add ncurses*-config in the
++ 20140920 changes (report by Steven Honeyman).
++
++20140920
++ + add ncurses*-config to bin-directory of sample package-scripts.
++ + add check to ensure that getopt is available; this is a problem in
++ some older cross-compiler environments.
++ + expanded on the description of --disable-overwrite in INSTALL
++ (prompted by reports by Joakim Tjernlund, Thomas Klausner).
++ See Gentoo #522586 and NetBSD #49200 for examples.
++ which relates to the clarified guidelines.
++ + remove special logic from CF_INCLUDE_DIRS which adds the directory
++ for the --includedir from the build (report by Joakim Tjernlund).
++ + add case for Unixware to CF_XOPEN_SOURCE, from lynx changes.
++ + update config.sub from
++ http://git.savannah.gnu.org/cgit/config.git
++
++20140913
++ + add a configure check to ignore some of the plethora of non-working
++ C++ cross-compilers.
++ + build-fixes for Ada95 with gnat 4.9
++
++20140906
++ + build-fix and other improvements for port of ncurses-examples to
++ NetBSD.
++ + minor compiler-warning fixes.
++
++20140831
++ + modify test/demo_termcap.c and test/demo_terminfo.c to make their
++ options more directly comparable, and add "-i" option to specify
++ a terminal description filename to parse for names to lookup.
++
++20140823
++ + fix special case where double-width character overwrites a single-
++ width character in the first column (report by Egmont Koblinger,
++ cf: 20050813).
++
++20140816
++ + fix colors in ncurses 'b' test which did not work after changing
++ it to put the test-strings in subwindows (cf: 20140705).
++ + merge redundant SEE-ALSO sections in form and menu manpages.
++
++20140809
++ + modify declarations for user-data pointers in C++ binding to use
++ reinterpret_cast to facilitate converting typed pointers to void*
++ in user's application (patch by Adam Jiang).
++ + regenerated html manpages.
++ + add note regarding cause and effect for TERM in ncurses manpage,
++ having noted clueless verbiage in Terminal.app's "help" file
++ which reverses cause/effect.
++ + remove special fallback definition for NCURSES_ATTR_T, since macros
++ have resolved type-mismatches using casts (cf: 970412).
++ + fixes for win_driver.c:
++ + handle repainting on endwin/refresh combination.
++ + implement beep().
++ + minor cleanup.
++
++20140802
++ + minor portability fixes for MinGW:
++ + ensure WINVER is defined in makefiles rather than using headers
++ + add check for gnatprep "-T" option
++ + work around bug introduced by gcc 4.8.1 in MinGW which breaks
++ "trace" feature:
++ http://stackoverflow.com/questions/20877689/gcc-4-8-1-minggw-d-option-does-not-work-as-usual
++ + fix most compiler warnings for Cygwin ncurses-examples.
++ + restore "redundant" -I options in test/Makefile.in, since they are
++ typically needed when building the derived ncurses-examples package
++ (cf: 20140726).
++
++20140726
++ + eliminate some redundant -I options used for building libraries, and
++ ensure that ${srcdir} is added to the include-options (prompted by
++ discussion with Paul Gilmartin).
++ + modify configure script to work with Minix3.2
++ + add form library extension O_DYNAMIC_JUSTIFY option which can be
++ used to override the different treatment of justification for static
++ versus dynamic fields (adapted from patch by Leon Winter).
++ + add a null pointer check in test/edit_field.c (report/analysis by
++ Leon Winter, cf: 20130608).
++
++20140719
++ + make workarounds for compiling test-programs with NetBSD curses.
++ + improve configure macro CF_ADD_LIBS, to eliminate repeated -l/-L
++ options, from xterm changes.
++
++20140712
++ + correct Charable() macro check for A_ALTCHARSET in wide-characters.
++ + build-fix for position-debug code in tty_update.c, to work with or
++ without sp-funcs.
++
++20140705
++ + add w/W toggle to ncurses.c 'B' test, to demonstrate permutation of
++ video-attributes and colors with double-width character strings.
++
++20140629
++ + correct check in win_driver.c for saving screen contents, e.g., when
++ NCURSES_CONSOLE2 is set (cf: 20140503).
++ + reorganize b/B menu items in ncurses.c, putting the test-strings into
++ subwindows. This is needed for a planned change to use Unicode
++ fullwidth characters in the test-screens.
++ + correct update to form status for _NEWTOP, broken by fixes for
++ compiler warnings (patch by Leon Winter, cf: 20120616).
++
++20140621
++ + change shared-library suffix for AIX 5 and 6 to ".so", avoiding
++ conflict with the static library (report by Ben Lentz).
++ + document RPATH_LIST in INSTALLATION file, as part of workarounds for
++ upgrading an ncurses library using the "--with-shared" option.
++ + modify test/ncurses.c c/C tests to cycle through subsets of the
++ total number of colors, to better illustrate 8/16/88/256-colors by
++ providing directly comparable screens.
++ + add test/dots_curses.c, for comparison with the low-level examples.
++
++20140614
++ + fix dereference before null check found by Coverity in tic.c
++ (cf: 20140524).
++ + fix sign-extension bug in read_entry.c which prevented "toe" from
++ reading empty "screen+italics" entry.
++ + modify sgr for screen.xterm-new to support dim capability -TD
++ + add dim capability to nsterm+7 -TD
++ + cancel dim capability for iterm -TD
++ + add dim, invis capabilities to vte-2012 -TD
++ + add sitm/ritm to konsole-base and mlterm3 -TD
++
++20140609
++ > fix regression in screen terminfo entries (reports by Christian
++ Ebert, Gabriele Balducci) -TD
++ + revert the change to screen; see notes for why this did not work -TD
++ + cancel sitm/ritm for entries which extend "screen", to work around
++ screen's hardcoded behavior for SGR 3 -TD
++
++20140607
++ + separate masking for sgr in vidputs from sitm/ritm, which do not
++ overlap with sgr functionality.
++ + remove unneeded -i option from adacurses-config; put -a in the -I
++ option for consistency (patch by Pascal Pignard).
++ + update xterm-new to patch #305 -TD
++ + change format of test-scripts for Debian Ada95 and ncurses-examples
++ packages to quilted to work around Debian #700177 (cf: 20130907).
++ + build fix for form_driver_w.c as part of ncurses-examples package for
++ older ncurses than 20131207.
++ + add Hello World example to adacurses-config manpage.
++ + remove unused --enable-pc-files option from Ada95/configure.
++ + add --disable-gnat-projects option for testing.
++ + revert changes to Ada95 project-files configuration (cf: 20140524).
++ + corrected usage message in adacurses-config.
++
++20140524
++ + fix typo in ncurses manpage for the NCURSES_NO_MAGIC_COOKIE
++ environment variable.
++ + improve discussion of input-echoing in curs_getch.3x
++ + clarify discussion in curs_addch.3x of wrapping.
++ + modify parametrized.h to make fln non-padded.
++ + correct several entries which had termcap-style padding used in
++ terminfo: adm21, aj510, alto-h19, att605-pc, x820 -TD
++ + correct syntax for padding in some entries: dg211, h19 -TD
++ + correct ti924-8 which had confused padding versus octal escapes -TD
++ + correct padding in sbi entry -TD
++ + fix an old bug in the termcap emulation; "%i" was ignored in tparm()
++ because the parameters to be incremented were already on the internal
++ stack (report by Corinna Vinschen).
++ + modify tic's "-c" option to take into account the "-C" option to
++ activate additional checks which compare the results from running
++ tparm() on the terminfo expressions versus the translated termcap
++ expressions.
++ + modify tic to allow it to read from FIFOs (report by Matthieu Fronton,
++ cf: 20120324).
++ > patches by Nicolas Boulenguez:
++ + explicit dereferences to suppress some style warnings.
++ + when c_varargs_to_ada.c includes its header, use double quotes
++ instead of <>.
++ + samples/ncurses2-util.adb: removed unused with clause. The warning
++ was removed by an obsolete pragma.
++ + replaced Unreferenced pragmas with Warnings (Off). The latter,
++ available with older GNATs, needs no configure test. This also
++ replaces 3 untested Unreferenced pragmas.
++ + simplified To_C usage in trace handling. Using two parameters allows
++ some basic formatting, and avoids a warning about security with some
++ compiler flags.
++ + for generated Ada sources, replace many snippets with one pure
++ package.
++ + removed C_Chtype and its conversions.
++ + removed C_AttrType and its conversions.
++ + removed conversions between int, Item_Option_Set, Menu_Option_Set.
++ + removed int, Field_Option_Set, Item_Option_Set conversions.
++ + removed C_TraceType, Attribute_Option_Set conversions.
++ + replaced C.int with direct use of Eti_Error, now enumerated. As it
++ was used in a case statement, values were tested by the Ada compiler
++ to be consecutive anyway.
++ + src/Makefile.in: remove duplicate stanza
++ + only consider using a project for shared libraries.
++ + style. Silent gnat-4.9 warning about misplaced "then".
++ + generate shared library project to honor ADAFLAGS, LDFLAGS.
++
++20140510
++ + cleanup recently introduced compiler warnings for MingW port.
++ + workaround for ${MAKEFLAGS} configure check versus GNU make 4.0,
++ which introduces more than one gratuitous incompatibility.
++
++20140503
++ + add vt520ansi terminfo entry (patch by Mike Gran)
++ + further improve MinGW support for the scenario where there is an
++ ANSI-escapes handler such as ansicon running in the console window
++ (patch by Juergen Pfeifer).
++
++20140426
++ + add --disable-lib-suffixes option (adapted from patch by Juergen
++ Pfeifer).
++ + merge some changes from Juergen Pfeifer's work with MSYS2, to
++ simplify later merging:
++ + use NC_ISATTY() macro for isatty() in library
++ + add _nc_mingw_isatty() and related functions to windows-driver
++ + rename terminal driver entrypoints to simplify grep's
++ + remove a check in the sp-funcs flavor of newterm() which allowed only
++ the first call to newterm() to succeed (report by Thomas Beierlein,
++ cf: 20090927).
++
++20140419
++ + update config.guess, config.sub from
++ http://git.savannah.gnu.org/cgit/config.git
++
++20140412
++ + modify configure script:
++ + drop the -no-gcc option from Intel compiler, from lynx changes.
++ + extend the --with-hashed-db configure option to simplify building
++ with different versions of Berkeley database using FreeBSD ports.
++ + improve initialization for MinGW port (Juergen Pfeifer):
++ + enforce Windows-style path-separator if cross-compiling,
++ + add a driver-name method to each of the drivers,
++ + allow the Windows driver name to match "unknown", ignoring case,
++ + lengthen the built-in name for the Windows console driver to
++ "#win32console", and
++ + move the comparison of driver-names allowing abbreviation, e.g.,
++ to "#win32con" into the Windows console driver.
++
++20140329
++ + add check in tic for mismatch between ccc and initp/initc
++ + cancel ccc in putty-256color and konsole-256color for consistency
++ with the cancelled initc capability (patch by Sven Zuhlsdorf).
++ + add xterm+256setaf building block for various terminals which only
++ get the 256-color feature half-implemented -TD
++ + updated "st" entry (leaving the 0.1.1 version as "simpleterm") to
++ 0.4.1 -TD
++
++20140323
++ + fix typo in "mlterm" entry (report by Gabriele Balducci) -TD
++
++20140322
++ + use types from <stdint.h> in sample build-scripts for chtype, etc.
++ + modify configure script and curses.h.in to allow the types specified
++ using --with-chtype and related options to be defined in <stdint.h>
++ + add terminology entry -TD
++ + add mlterm3 entry, use that as "mlterm" -TD
++ + inherit mlterm-256color from mlterm -TD
++
++20140315
++ + modify _nc_New_TopRow_and_CurrentItem() to ensure that the menu's
++ top-row is adjusted as needed to ensure that the current item is
++ on the screen (patch by Johann Klammer).
++ + add wgetdelay() to retrieve _delay member of WINDOW if it happens to
++ be opaque, e.g., in the pthread configuration (prompted by patch by
++ Soren Brinkmann).
++
++20140308
++ + modify ifdef in read_entry.c to handle the case where
++ NCURSES_USE_DATABASE is not defined (patch by Xin Li).
++ + add cast in form_driver_w() to fix ARM build (patch by Xin Li).
++ + add logic to win_driver.c to save/restore screen contents when not
++ allocating a console-buffer (cf: 20140215).
++
++20140301
++ + clarify error-returns from newwin (report by Ruslan Nabioullin).
++
++20140222
++ + fix some compiler warnings in win_driver.c
++ + updated notes for wsvt25 based on tack and vttest -TD
++ + add teken entry to show actual properties of FreeBSD's "xterm"
++ console -TD
++
++20140215
++ + in-progress changes to win_driver.c to implement output without
++ allocating a console-buffer. This uses a pre-existing environment
++ variable NCGDB used by Juergen Pfeifer for debugging (prompted by
++ discussion with Erwin Waterlander regarding Console2, which hangs
++ when reading in an allocated console-buffer).
++ + add -t option to gdc.c, and modify to accept "S" to step through the
++ scrolling-stages.
++ + regenerate NCURSES-Programming-HOWTO.html to fix some of the broken
++ html emitted by docbook.
++
++20140209
++ + modify CF_XOPEN_SOURCE macro to omit followup check to determine if
++ _XOPEN_SOURCE can/should be defined. g++ 4.7.2 built on Solaris 10
++ has some header breakage due to its own predefinition of this symbol
++ (report by Jean-Pierre Flori, Sage #15796).
++
++20140201
++ + add/use symbol NCURSES_PAIRS_T like NCURSES_COLOR_T, to illustrate
++ which "short" types are for color pairs and which are color values.
++ + fix build for s390x, by correcting field bit offsets in generated
++ representation clauses when int=32 long=64 and endian=big, or at
++ least on s390x (patch by Nicolas Boulenguez).
++ + minor cleanup change to test/form_driver_w.c (patch by Gaute Hope).
++
++20140125
++ + remove unnecessary ifdef's in Ada95/gen/gen.c, which reportedly do
++ not work as is with gcc 4.8 due to fixes using chtype cast made for
++ new compiler warnings by gcc 4.8 in 20130824 (Debian #735753, patch
++ by Nicolas Boulenguez).
++
++20140118
++ + apply includesubdir variable which was introduced in 20130805 to
++ gen-pkgconfig.in (Debian #735782).
++
++20131221
++ + further improved man2html, used this to fix broken links in html
++ manpages. See
++ ftp://invisible-island.net/ncurses/patches/man2html
++
++20131214
++ + modify configure-script/ifdef's to allow OLD_TTY feature to be
++ suppressed if the type of ospeed is configured using the option
++ --with-ospeed to not be a short. By default, it is a short for
++ termcap-compatibility (adapted from suggestion by Christian
++ Weisgerber).
++ + correct a typo in _nc_baudrate() (patch by Christian Weisgerber,
++ cf: 20061230).
++ + fix a few -Wlogical-op warnings.
++ + updated llib-l* files.
++
++20131207
++ + add form_driver_w() entrypoint to wide-character forms library, as
++ well as test program form_driver_w (adapted from patch by Gaute
++ Hope).
++
++20131123
++ + minor fix for CF_GCC_WARNINGS to special-case options which are not
++ recognized by clang.
++
++20131116
++ + add special case to configure script to move _XOPEN_SOURCE_EXTENDED
++ definition from CPPFLAGS to CFLAGS if it happens to be needed for
++ Solaris, because g++ errors with that definition (report by
++ Jean-Pierre Flori, Sage #15268).
++ + correct logic in infocmp's -i option which was intended to ignore
++ strings which correspond to function-keys as candidates for piecing
++ together initialization- or reset-strings. The problem dates to
++ 1.9.7a, but was overlooked until changes in -Wlogical-op warnings for
++ gcc 4.8 (report by David Binderman).
++ + updated CF_GCC_WARNINGS to documented options for gcc 4.9.0, adding
++ checks for -Wextra, -Wignored-qualifiers and -Wlogical-op
++ + updated CF_GCC_WARNINGS to documented options for gcc 4.9.0, moving
++ checks for -Wextra and -Wdeclaration-after-statement into the macro,
++ and adding checks for -Wignored-qualifiers, -Wlogical-op and
++ -Wvarargs
++ + updated CF_CURSES_UNCTRL_H and CF_SHARED_OPTS macros from ongoing
++ work on cdk.
++ + update config.sub from
++ http://git.savannah.gnu.org/cgit/config.git
++
++20131110
++ + minor cleanup of terminfo.tail
++
++20131102
++ + use TS extension to describe xterm's title-escapes -TD
++ + modify terminator and nsterm-s to use xterm+sl-twm building block -TD
++ + update hurd.ti, add xenl to reflect 2011-03-06 change in
++ http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c
++ (Debian #727119).
++ + simplify pfkey expression in ansi.sys -TD
++
++20131027
++ + correct/simplify ifdef's for cur_term versus broken-linker and
++ reentrant options (report by Jean-Pierre Flori, cf: 20090530).
++ + modify release/version combinations in test build-scripts to make
++ them more consistent with other packages.
++
++20131019
++ + add nc_mingw.h to installed headers for MinGW port; needed for
++ compiling ncurses-examples.
++ + add rpm-script for testing cross-compile of ncurses-examples.
++
++20131014
++ + fix new typo in CF_ADA_INCLUDE_DIRS macro (report by Roumen Petrov).
++
++20131012
++ + fix a few compiler warnings in progs and test.
++ + minor fix to package/debian-mingw/rules, do not strip dll's.
++ + minor fixes to configure script for empty $prefix, e.g., when doing
++ cross-compiles to MinGW.
++ + add script for building test-packages of binaries cross-compiled to
++ MinGW using NSIS.
++
++20131005
++ + minor fixes for ncurses-example package and makefile.
++ + add scripts for test-builds of cross-compiler packages for ncurses6
++ to MinGW.
++
++20130928
++ + some build-fixes for ncurses-examples with NetBSD-6.0 curses, though
++ it lacks some common functions such as use_env() which is not yet
++ addressed.
++ + build-fix and some compiler warning fixes for ncurses-examples with
++ OpenBSD 5.3
++ + fix a possible null-pointer reference in a trace message from newterm.
++ + quiet a few warnings from NetBSD 6.0 namespace pollution by
++ nonstandard popcount() function in standard strings.h header.
++ + ignore g++ 4.2.1 warnings for "-Weffc++" in c++/cursesmain.cc
++ + fix a few overlooked places for --enable-string-hacks option.
++
++20130921
++ + fix typo in curs_attr.3x (patch by Sven Joachim, cf: 20130831).
++ + build-fix for --with-shared option for DragonFly and FreeBSD (report
++ by Rong-En Fan, cf: 20130727).
++
++20130907
++ + build-fixes for MSYS for two test-programs (patches by Ray Donnelly,
++ Alexey Pavlov).
++ + revert change to two of the dpkg format files, to work with dpkg
++ before/after Debian #700177.
++ + fix gcc -Wconversion warning in wattr_get() macro.
++ + add msys and msysdll to known host/configuration types (patch by
++ Alexey Pavlov).
++ + modify CF_RPATH_HACK configure macro to not rely upon "-u" option
++ of sort, improving portability.
++ + minor improvements for test-programs from reviewing Solaris port.
++ + update config.guess, config.sub from
++ http://git.savannah.gnu.org/cgit/config.git
++
++20130831
++ + modify test/ncurses.c b/B tests to display lines only for the
++ attributes which a given terminal supports, to make room for an
++ italics test.
++ + completed ncv table in terminfo.tail; it did not list the wide
++ character codes listed in X/Open Curses issue 7.
++ + add A_ITALIC extension (prompted by discussion with Egmont Koblinger).
++
++20130824
++ + fix some gcc 4.8 -Wconversion warnings.
++ + change format of dpkg test-scripts to quilted to work around bug
++ introduced by Debian #700177.
++ + discard cached keyname() values if meta() is changed after a value
++ was cached using (report by Kurban Mallachiev).
++
++20130816
++ + add checks in tic to warn about terminals which lack cursor
++ addressing, capabilities or having those, are marked as hard_copy or
++ generic_type.
++ + use --without-progs in mingw-ncurses rpm.
++ + split out _nc_init_termtype() from alloc_entry.c to use in MinGW
++ port when tic and other programs are not needed.
++
++20130805
++ + minor fixes to the --disable-overwrite logic, to ensure that the
++ configured $(includedir) is not cancelled by the mingwxx-filesystem
++ rpm macros.
++ + add --disable-db-install configure option, to simplify building
++ cross-compile support packages.
++ + add mingw-ncurses.spec file, for testing cross-compiles.
++
++20130727
++ + improve configure macros from ongoing work on cdk, dialog, xterm:
++ + CF_ADD_LIB_AFTER - fix a problem with -Wl options
++ + CF_RPATH_HACK - add missing result-message
++ + CF_SHARED_OPTS - modify to use $rel_builddir in cygwin and mingw
++ dll symbols (which can be overridden) rather than explicit "../".
++ + CF_SHARED_OPTS - modify NetBSD and DragonFly symbols to use ${CC}
++ rather than ${LD} to improve rpath support.
++ + CF_SHARED_OPTS - add a symbol to denote the temporary files that
++ are created by the macro, to simplify clean-rules.
++ + CF_X_ATHENA - trim extra libraries to work with -Wl,--as-needed
++ + fix a regression in hashed-database support for NetBSD, which uses
++ the key-size differently from other implementations (cf: 20121229).
++
++20130720
++ + further improvements for setupterm manpage, clarifying the
++ initialization of cur_term.
++
++20130713
++ + improve manpages for initscr and setupterm.
++ + minor compiler-warning fixes
++
++20130706
++ + add fallback defs for <inttypes.h> and <stdint.h> (cf: 20120225).
++ + add check for size of wchar_t, use that to suppress a chunk of
++ wcwidth.h in MinGW port.
++ + quiet linker warnings for MinGW cross-compile with dll's using the
++ --enable-auto-import flag.
++ + add ncurses.map rule to ncurses/Makefile to help diagnose symbol
++ table issues.
++
++20130622
++ + modify the clear program to take into account the E3 extended
++ capability to clear the terminal's scrollback buffer (patch by
++ Miroslav Lichvar, Redhat #815790).
++ + clarify in resizeterm manpage that LINES and COLS are updated.
++ + updated ansi example in terminfo.tail, correct misordered example
++ of sgr.
++ + fix other doclifter warnings for manpages
++ + remove unnecessary ".ta" in terminfo.tail, add missing ".fi"
++ (patch by Eric Raymond).
++
++20130615
++ + minor changes to some configure macros to make them more reusable.
++ + fixes for tabs program (prompted by report by Nick Andrik).
++ + corrected logic in command-line parsing of -a and -c predefined
++ tab-lists options.
++ + allow "-0" and "-8" options to be combined with others, e.g.,"-0d".
++ + make warning messages more consistent with the other utilities by
++ not printing the full pathname of the program.
++ + add -V option for consistency with other utilities.
++ + fix off-by-one in columns for tabs program when processing an option
++ such as "-5" (patch by Nick Andrik).
++
++20130608
++ + add to test/demo_forms.c examples of using the menu-hooks as well
++ as showing how the menu item user-data can be used to pass a callback
++ function pointer.
++ + add test/dots_termcap.c
++ + remove setupterm call from test/demo_termcap.c
++ + build-fix if --disable-ext-funcs configure option is used.
++ + modified test/edit_field.c and test/demo_forms.c to move the lengths
++ into a user-data structure, keeping the original string for later
++ expansion to free-format input/out demo.
++ + modified test/demo_forms.c to load data from file.
++ + added note to clarify Terminal.app's non-emulation of the various
++ terminal types listed in the preferences dialog -TD
++ + fix regression in error-reporting in lib_setup.c (Debian #711134,
++ cf: 20121117).
++ + build-fix for a case where --enable-broken_linker and
++ --enable-reentrant options are combined (report by George R Goffe).
++
++20130525
++ + modify mvcur() to distinguish between internal use by the ncurses
++ library, and external callers, preventing it from reading the content
++ of the screen which is only nonblank when curses calls have updated
++ it. This makes test/dots_mvcur.c avoid painting colored cells in
++ the left margin of the display.
++ + minor fix to test/dots_mvcur.c
++ + move configured symbols USE_DATABASE and USE_TERMCAP to term.h as
++ NCURSES_USE_DATABASE and NCURSES_USE_TERMCAP to allow consistent
++ use of these symbols in term_entry.h
++
++20130518
++ + corrected ifdefs in test/testcurs.c to allow comparison of mouse
++ interface versus pdcurses (cf: 20130316).
++ + add pow() to configure-check for math library, needed since
++ 20121208 for test/hanoi (Debian #708056).
++ + regenerated html manpages.
++ + update doctype used for html documentation.
++
++20130511
++ + move nsterm-related entries out of "obsolete" section to more
++ plausible "ansi consoles" -TD
++ + additional cleanup of table-of-contents by reordering -TD
++ + revise fix for check for 8-bit value in _nc_insert_ch(); prior fix
++ prevented inserts when video attributes were attached to the data
++ (cf: 20121215) (Redhat #959534).
++
++20130504
++ + fixes for issues found by Coverity:
++ + correct FNKEY() macro in progs/dump_entry.c, allowing kf11-kf63 to
++ display when infocmp's -R option is used for HP or AIX subsets.
++ + fix dead-code issue with test/movewindow.c
++ + improve limited-checking in _nc_read_termtype().
++
++20130427
++ + fix clang 3.2 warning in progs/dump_entry.c
++ + drop AC_TYPE_SIGNAL check; ncurses relies on c89 and later.
++
++20130413
++ + add MinGW to cases where ncurses installs by default into /usr
++ (prompted by discussion with Daniel Silva Ferreira).
++ + add -D option to infocmp's usage-message (patch by Miroslav Lichvar).
++ + add a missing 'int' type for main function in configure check for
++ type of bool variable, to work with clang 3.2 (report by Dmitri
++ Gribenko).
++ + improve configure check for static_cast, to work with clang 3.2
++ (report by Dmitri Gribenko).
++ + re-order rule for demo.o and macros defining header dependencies in
++ c++/Makefile.in to accommodate gmake (report by Dmitri Gribenko).
++
++20130406
++ + improve parameter checking in copywin().
++ + modify configure script to work around OS X's "libtool" program, to
++ choose glibtool instead. At the same time, chance the autoconf macro
++ to look for a "tool" rather than a "prog", to help with potential use
++ in cross-compiling.
++ + separate the rpath usage for c++ library from demo program
++ (Redhat #911540)
++ + update/correct header-dependencies in c++ makefile (report by Werner
++ Fink).
++ + add --with-cxx-shared to dpkg-script, as done for rpm-script.
++
++20130324
++ + build-fix for libtool configuration (reports by Daniel Silva Ferreira
++ and Roumen Petrov).
++
++20130323
++ + build-fix for OS X, to handle changes for --with-cxx-shared feature
++ (report by Christian Ebert).
++ + change initialization for vt220, similar entries for consistency
++ with cursor-key strings (NetBSD #47674) -TD
++ + further improvements to linux-16color (Benjamin Sittler)
++
++20130316
++ + additional fix for tic.c, to allocate missing buffer space.
++ + eliminate configure-script warnings for gen-pkgconfig.in
++ + correct typo in sgr string for sun-color,
++ add bold for consistency with sgr,
++ change smso for consistency with sgr -TD
++ + correct typo in sgr string for terminator -TD
++ + add blink to the attributes masked by ncv in linux-16color (report
++ by Benjamin Sittler)
++ + improve warning message from post-load checking for missing "%?"
++ operator by tic/infocmp by showing the entry name and capability.
++ + minor formatting improvement to tic/infocmp -f option to ensure
++ line split after "%;".
++ + amend scripting for --with-cxx-shared option to handle the debug
++ library "libncurses++_g.a" (report by Sven Joachim).
++
++20130309
++ + amend change to toe.c for reading from /dev/zero, to ensure that
++ there is a buffer for the temporary filename (cf: 20120324).
++ + regenerated html manpages.
++ + fix typo in terminfo.head (report by Sven Joachim, cf: 20130302).
++ + updated some autoconf macros:
++ + CF_ACVERSION_CHECK, from byacc 1.9 20130304
++ + CF_INTEL_COMPILER, CF_XOPEN_SOURCE from luit 2.0-20130217
++ + add configure option --with-cxx-shared to permit building
++ libncurses++ as a shared library when using g++, e.g., the same
++ limitations as libtool but better integrated with the usual build
++ configuration (Redhat #911540).
++ + modify MKkey_defs.sh to filter out build-path which was unnecessarily
++ shown in curses.h (Debian #689131).
++
++20130302
++ + add section to terminfo manpage discussing user-defined capabilities.
++ + update manpage description of NCURSES_NO_SETBUF, explaining why it
++ is obsolete.
++ + add a check in waddch_nosync() to ensure that tab characters are
++ treated as control characters; some broken locales claim they are
++ printable.
++ + add some traces to the Windows console driver.
++ + initialize a temporary array in _nc_mbtowc, needed for some cases
++ of raw input in MinGW port.
++
++20130218
++ + correct ifdef on change to lib_twait.c (report by Werner Fink).
++ + update config.guess, config.sub
++
++20130216
++ + modify test/testcurs.c to work with mouse for ncurses as it does for
++ pdcurses.
++ + modify test/knight.c to work with mouse for pdcurses as it does for
++ ncurses.
++ + modify internal recursion in wgetch() which handles cooked mode to
++ check if the call to wgetnstr() returned an error. This can happen
++ when both nocbreak() and nodelay() are set, for instance (report by
++ Nils Christopher Brause) (cf: 960418).
++ + fixes for issues found by Coverity:
++ + add a check for valid position in ClearToEOS()
++ + fix in lib_twait.c when --enable-wgetch-events is used, pointer
++ use after free.
++ + improve a limit-check in make_hash.c
++ + fix a memory leak in hashed_db.c
++
++20130209
++ + modify test/configure script to make it simpler to override names
++ of curses-related libraries, to help with linking with pdcurses in
++ MinGW environment.
++ + if the --with-terminfo-dirs configure option is not used, there is
++ no corresponding compiled-in value for that. Fill in "no default
++ value" for that part of the manpage substitution.
++
++20130202
++ + correct initialization in knight.c which let it occasionally make
++ an incorrect move (cf: 20001028).
++ + improve documentation of the terminfo/termcap search path.
++
++20130126
++ + further fixes to mvcur to pass callback function (cf: 20130112),
++ needed to make test/dots_mvcur work.
++ + reduce calls to SetConsoleActiveScreenBuffer in win_driver.c, to
++ help reduce flicker.
++ + modify configure script to omit "+b" from linker options for very
++ old HP-UX systems (report by Dennis Grevenstein)
++ + add HP-UX workaround for missing EILSEQ on old HP-UX systems (patch
++ by Dennis Grevenstein).
++ + restore memmove/strdup support for antique systems (request by
++ Dennis Grevenstein).
++ + change %l behavior in tparm to push the string length onto the stack
++ rather than saving the formatted length into the output buffer
++ (report by Roy Marples, cf: 980620).
++
++20130119
++ + fixes for issues found by Coverity:
++ + fix memory leak in safe_sprintf.c
++ + add check for return-value in tty_update.c
++ + correct initialization for -s option in test/view.c
++ + add check for numeric overflow in lib_instr.c
++ + improve error-checking in copywin
++ + add advice in infocmp manpage for termcap users (Debian #698469).
++ + add "-y" option to test/demo_termcap and test/demo_terminfo to
++ demonstrate behavior with/without extended capabilities.
++ + updated termcap manpage to document legacy termcap behavior for
++ matching capability names.
++ + modify name-comparison for tgetstr, etc., to accommodate legacy
++ applications as well as to improve compatbility with BSD 4.2
++ termcap implementations (Debian #698299) (cf: 980725).
++
++20130112
++ + correct prototype in manpage for vid_puts.
++ + drop ncurses/tty/tty_display.h, ncurses/tty/tty_input.h, since they
++ are unused in the current driver model.
++ + modify mvcur to use stdout except when called within the ncurses
++ library.
++ + modify vidattr and vid_attr to use stdout as documented in manpage.
++ + amend changes made to buffering in 20120825 so that the low-level
++ putp() call uses stdout rather than ncurses' internal buffering.
++ The putp_sp() call does the same, for consistency (Redhat #892674).
++
++20130105
++ + add "-s" option to test/view.c to allow it to start in single-step
++ mode, reducing size of trace files when it is used for debugging
++ MinGW changes.
++ + revert part of 20121222 change to tinfo_driver.c
++ + add experimental logic in win_driver.c to improve optimization of
++ screen updates. This does not yet work with double-width characters,
++ so it is ifdef'd out for the moment (prompted by report by Erwin
++ Waterlander regarding screen flicker).
++
++20121229
++ + fix coverity warnings regarding copying into fixed-size buffers.
++ + add throw-declarations in the c++ binding per Coverity warning.
++ + minor changes to new-items for consistent reference to bug-report
++ numbers.
++
++20121222
++ + add *.dSYM directories to clean-rule in ncurses directory makefile,
++ for Mac OS builds.
++ + add a configure check for gcc option -no-cpp-precomp, which is not
++ available in all Mac OS X configurations (report by Andras Salamon,
++ cf: 20011208).
++ + improve 20021221 workaround for broken acs, handling a case where
++ that ACS_xxx character is not in the acsc string but there is a known
++ wide-character which can be used.
++
++20121215
++ + fix several warnings from clang 3.1 --analyze, includes correcting
++ a null-pointer check in _nc_mvcur_resume.
++ + correct display of double-width characters with MinGW port (report
++ by Erwin Waterlander).
++ + replace MinGW's wcrtomb(), fixing a problem with _nc_viscbuf
++ > fixes based on Coverity report:
++ + correct coloring in test/bs.c
++ + correct check for 8-bit value in _nc_insert_ch().
++ + remove dead code in progs/tset.c, test/linedata.h
++ + add null-pointer checks in lib_tracemse.c, panel.priv.h, and some
++ test-programs.
++
++20121208
++ + modify test/knight.c to show the number of choices possible for
++ each position in automove option, e.g., to allow user to follow
++ Warnsdorff's rule to solve the puzzle.
++ + modify test/hanoi.c to show the minimum number of moves possible for
++ the given number of tiles (prompted by patch by Lucas Gioia).
++ > fixes based on Coverity report:
++ + remove a few redundant checks.
++ + correct logic in test/bs.c, when randomly placing a specific type of
++ ship.
++ + check return value from remove/unlink in tic.
++ + check return value from sscanf in test/ncurses.c
++ + fix a null dereference in c++/cursesw.cc
++ + fix two instances of uninitialized variables when configuring for the
++ terminal driver.
++ + correct scope of variable used in SetSafeOutcWrapper macro.
++ + set umask when calling mkstemp in tic.
++ + initialize wbkgrndset() temporary variable when extended-colors are
++ used.
++
++20121201
++ + also replace MinGW's wctomb(), fixing a problem with setcchar().
++ + modify test/view.c to load UTF-8 when built with MinGW by using
++ regular win32 API because the MinGW functions mblen() and mbtowc()
++ do not work.
++
++20121124
++ + correct order of color initialization versus display in some of the
++ test-programs, e.g., test_addstr.c
++ > fixes based on Coverity report:
++ + delete windows on exit from some of the test-programs.
++
++20121117
++ > fixes based on Coverity report:
++ + add missing braces around FreeAndNull in two places.
++ + various fixes in test/ncurses.c
++ + improve limit-checks in tinfo/make_hash.c, tinfo/read_entry.c
++ + correct malloc size in progs/infocmp.c
++ + guard against negative array indices in test/knight.c
++ + fix off-by-one limit check in test/color_name.h
++ + add null-pointer check in progs/tabs.c, test/bs.c, test/demo_forms.c,
++ test/inchs.c
++ + fix memory-leak in tinfo/lib_setup.c, progs/toe.c,
++ test/clip_printw.c, test/demo_menus.c
++ + delete unused windows in test/chgat.c, test/clip_printw.c,
++ test/insdelln.c, test/newdemo.c on error-return.
++
++20121110
++ + modify configure macro CF_INCLUDE_DIRS to put $CPPFLAGS after the
++ local -I include options in case someone has set conflicting -I
++ options in $CPPFLAGS (prompted by patch for ncurses/Makefile.in by
++ Vassili Courzakis).
++ + modify the ncurses*-config scripts to eliminate relative paths from
++ the RPATH_LIST variable, e.g., "../lib" as used in installing shared
++ libraries or executables.
++
++20121102
++ + realign these related pages:
++ curs_add_wchstr.3x
++ curs_addchstr.3x
++ curs_addstr.3x
++ curs_addwstr.3x
++ and fix a long-ago error in curs_addstr.3x which said that a -1
++ length parameter would only write as much as fit onto one line
++ (report by Reuben Thomas).
++ + remove obsolete fallback _nc_memmove() for memmove()/bcopy().
++ + remove obsolete fallback _nc_strdup() for strdup().
++ + cancel any debug-rpm in package/ncurses.spec
++ + reviewed vte-2012, reverted most of the change since it was incorrect
++ based on testing with tack -TD
++ + un-cancel the initc in vte-256color, since this was implemented
++ starting with version 0.20 in 2009 -TD
++
++20121026
++ + improve malloc/realloc checking (prompted by discussion in Redhat
++ #866989).
++ + add ncurses test-program as "ncurses6" to the rpm- and dpkg-scripts.
++ + updated configure macros CF_GCC_VERSION and CF_WITH_PATHLIST. The
++ first corrects pattern used for Mac OS X's customization of gcc.
++
++20121017
++ + fix change to _nc_scroll_optimize(), which incorrectly freed memory
++ (Redhat #866989).
++
++20121013
++ + add vte-2012, gnome-2012, making these the defaults for vte/gnome
++ (patch by Christian Persch).
++
++20121006
++ + improve CF_GCC_VERSION to work around Debian's customization of gcc
++ --version message.
++ + improve configure macros as done in byacc:
++ + drop 2.13 compatibility; use 2.52.xxxx version only since EMX port
++ has used that for a while.
++ + add 3rd parameter to AC_DEFINE's to allow autoheader to run, i.e.,
++ for experimental use.
++ + remove unused configure macros.
++ + modify configure script and makefiles to quiet new autoconf warning
++ for LIBS_TO_MAKE variable.
++ + modify configure script to show $PATH_SEPARATOR variable.
++ + update config.guess, config.sub
++
++20120922
++ + modify setupterm to set its copy of TERM to "unknown" if configured
++ for the terminal driver and TERM was null or empty.
++ + modify treatment of TERM variable for MinGW port to allow explicit
++ use of the windows console driver by checking if $TERM is set to
++ "#win32con" or an abbreviation of that.
++ + undo recent change to fallback definition of vsscanf() to build with
++ older Solaris compilers (cf: 20120728).
++
++20120908
++ + add test-screens to test/ncurses to show 256-characters at a time,
++ to help with MinGW port.
++
++20120903
++ + simplify varargs logic in lib_printw.c; va_copy is no longer needed
++ there.
++ + modifications for MinGW port to make wide-character display usable.
++
++20120902
++ + regenerate configure script (report by Sven Joachim, cf: 20120901).
++
++20120901
++ + add a null-pointer check in _nc_flush (cf: 20120825).
++ + fix a case in _nc_scroll_optimize() where the _oldnums_list array
++ might not be allocated.
++ + improve comparisons in configure.in for unset shell variables.
++
++20120826
++ + increase size of ncurses' output-buffer, in case of very small
++ initial screen-sizes.
++ + fix evaluation of TERMINFO and TERMINFO_DIRS default values as needed
++ after changes to use --datarootdir (reports by Gabriele Balducci,
++ Roumen Petrov).
++
++20120825
++ + change output buffering scheme, using buffer maintained by ncurses
++ rather than stdio, to avoid problems with SIGTSTP handling (report
++ by Brian Bloniarz).
++
++20120811
++ + update autoconf patch to 2.52.20120811, adding --datarootdir
++ (prompted by discussion with Erwin Waterlander).
++ + improve description of --enable-reentrant option in README and the
++ INSTALL file.
++ + add nsterm-256color, make this the default nsterm -TD
++ + remove bw from nsterm-bce, per testing with tack -TD
++
++20120804
++ + update test/configure, adding check for tinfo library.
++ + improve limit-checks for the getch fifo (report by Werner Fink).
++ + fix a remaining mismatch between $with_echo and the symbols updated
++ for CF_DISABLE_ECHO affecting parameters for mk-2nd.awk (report by
++ Sven Joachim, cf: 20120317).
++ + modify followup check for pkg-config's library directory in the
++ --enable-pc-files option to validate syntax (report by Sven Joachim,
++ cf: 20110716).
++
++20120728
++ + correct path for ncurses_mingw.h in include/headers, in case build
++ is done outside source-tree (patch by Roumen Petrov).
++ + modify some older xterm entries to align with xterm source -TD
++ + separate "xterm-old" alias from "xterm-r6" -TD
++ + add E3 extended capability to xterm-basic and putty -TD
++ + parenthesize parameters of other macros in curses.h -TD
++ + parenthesize parameter of COLOR_PAIR and PAIR_NUMBER in curses.h
++ in case it happens to be a comma-expression, etc. (patch by Nick
++ Black).
++
++20120721
++ + improved form_request_by_name() and menu_request_by_name().
++ + eliminate two fixed-size buffers in toe.c
++ + extend use_tioctl() to have expected behavior when use_env(FALSE) and
++ use_tioctl(TRUE) are called.
++ + modify ncurses test-program, adding -E and -T options to demonstrate
++ use_env() versus use_tioctl().
++
++20120714
++ + add use_tioctl() function (adapted from patch by Werner Fink,
++ Novell #769788):
++
++20120707
++ + add ncurses_mingw.h to installed headers (prompted by patch by
++ Juergen Pfeifer).
++ + clarify return-codes from wgetch() in response to SIGWINCH (prompted
++ by Novell #769788).
++ + modify resizeterm() to always push a KEY_RESIZE onto the fifo, even
++ if screensize is unchanged. Modify _nc_update_screensize() to push a
++ KEY_RESIZE if there was a SIGWINCH, even if it does not call
++ resizeterm(). These changes eliminate the case where a SIGWINCH is
++ received, but ERR returned from wgetch or wgetnstr because the screen
++ dimensions did not change (Novell #769788).
++
++20120630
++ + add --enable-interop to sample package scripts (suggested by Juergen
++ Pfeifer).
++ + update CF_PATH_SYNTAX macro, from mawk changes.
++ + modify mk-0th.awk to allow for generating llib-ltic, etc., though
++ some work is needed on cproto to work with lib_gen.c to update
++ llib-lncurses.
++ + remove redundant getenv() cal in database-iterator leftover from
++ cleanup in 20120622 changes (report by Sven Joachim).
++
++20120622
++ + add -d, -e and -q options to test/demo_terminfo and test/demo_termcap
++ + fix caching of environment variables in database-iterator (patch by
++ Philippe Troin, Redhat #831366).
++
++20120616
++ + add configure check to distinguish clang from gcc to eliminate
++ warnings about unused command-line parameters when compiler warnings
++ are enabled.
++ + improve behavior when updating terminfo entries which are hardlinked
++ by allowing for the possibility that an alias has been repurposed to
++ a new primary name.
++ + fix some strict compiler warnings based on package scripts.
++ + further fixes for configure check for working poll (Debian #676461).
++
++20120608
++ + fix an uninitialized variable in -c/-n logic for infocmp changes
++ (cf: 20120526).
++ + corrected fix for building c++ binding with clang 3.0 (report/patch
++ by Richard Yao, Gentoo #417613, cf: 20110409)
++ + correct configure check for working poll, fixing the case where stdin
++ is redirected, e.g., in rpm/dpkg builds (Debian #676461).
++ + add rpm- and dpkg-scripts, to test those build-environments.
++ The resulting packages are used only for testing.
++
++20120602
++ + add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD
++ + add kdch1, etc., to qvt108 -TD
++ + add dl1/il1 to some entries based on dl/il values -TD
++ + add dl to simpleterm -TD
++ + add consistency-checks in tic for insert-line vs delete-line
++ controls, and insert/delete-char keys
++ + correct no-leaks logic in infocmp when doing comparisons, fixing
++ duplicate free of entries given via the command-line, and freeing
++ entries loaded from the last-but-one of files specified on the
++ command-line.
++ + add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord,
++ analysis by Martin Husemann).
++ + add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by
++ Onno van der Linden).
++
++20120526
++ + extend -c and -n options of infocmp to allow comparing more than two
++ entries.
++ + correct check in infocmp for number of terminal names when more than
++ two are given.
++ + correct typo in curs_threads.3x (report by Yanhui Shen on
++ freebsd-hackers mailing list).
++
++20120512
++ + corrected 'op' for bterm (report by Samuel Thibault) -TD
++ + modify test/background.c to demonstrate a background character
++ holding a colored ACS_HLINE. The behavior differs from SVr4 due to
++ the thick- and double-line extension (cf: 20091003).
++ + modify handling of acs characters in PutAttrChar to avoid mapping an
++ unmapped character to a space with A_ALTCHARSET set.
++ + rewrite vt520 entry based on vt420 -TD
++
++20120505
++ + remove p6 (bold) from opus3n1+ for consistency -TD
++ + remove acs stuff from env230 per clues in Ingres termcap -TD
++ + modify env230 sgr/sgr0 to match other capabilities -TD
++ + modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD
++ + make sgr for dku7202 agree with other caps -TD
++ + make sgr for ibmpc agree with other caps -TD
++ + make sgr for tek4107 agree with other caps -TD
++ + make sgr for ndr9500 agree with other caps -TD
++ + make sgr for sco-ansi agree with other caps -TD
++ + make sgr for d410 agree with other caps -TD
++ + make sgr for d210 agree with other caps -TD
++ + make sgr for d470c, d470c-7b agree with other caps -TD
++ + remove redundant AC_DEFINE for NDEBUG versus Makefile definition.
++ + fix a back-link in _nc_delink_entry(), which is needed if ncurses is
++ configured with --enable-termcap and --disable-getcap.
++
++20120428
++ + fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
++ + add eslok flag to dec+sl -TD
++ + dec+sl applies to vt320 and up -TD
++ + drop wsl width from xterm+sl -TD
++ + reuse xterm+sl in putty and nsca-m -TD
++ + add ansi+tabs to vt520 -TD
++ + add ansi+enq to vt220-vt520 -TD
++ + fix a compiler warning in example in ncurses-intro.doc (Paul Waring).
++ + added paragraph in keyname manpage telling how extended capabilities
++ are interpreted as key definitions.
++ + modify tic's check of conflicting key definitions to include extended
++ capability strings in addition to the existing check on predefined
++ keys.
++
++20120421
++ + improve cleanup of temporary files in tic using atexit().
++ + add msgr to vt420, similar DEC vtXXX entries -TD
++ + add several missing vt420 capabilities from vt220 -TD
++ + factor out ansi+pp from several entries -TD
++ + change xterm+sl and xterm+sl-twm to include only the status-line
++ capabilities and not "use=xterm", making them more generally useful
++ as building-blocks -TD
++ + add dec+sl building block, as example -TD
++
++20120414
++ + add XT to some terminfo entries to improve usefulness for other
++ applications than screen, which would like to pretend that xterm's
++ title is a status-line. -TD
++ + change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review
++ of ordering and overrides -TD
++ + add consistency check in tic for screen's "XT" capability.
++ + add section in terminfo.src summarizing the user-defined capabilities
++ used in that file -TD
++
++20120407
++ + fix an inconsistency between tic/infocmp "-x" option; tic omits all
++ non-standard capabilities, while infocmp was ignoring only the user
++ definable capabilities.
++ + improve special case in tic parsing of description to allow it to be
++ followed by terminfo capabilities. Previously the description had to
++ be the last field on an input line to allow tic to distinguish
++ between termcap and terminfo format while still allowing commas to be
++ embedded in the description.
++ + correct variable name in gen_edit.sh which broke configurability of
++ the --with-xterm-kbs option.
++ + revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD
++ + further amend 20110910 change, providing for configure-script
++ override of the "linux" terminfo entry to install and changing the
++ default for that to "linux2.2" (Debian #665959).
++
++20120331
++ + update Ada95/configure to use CF_DISABLE_ECHO (cf: 20120317).
++ + correct order of use-clauses in st-256color -TD
++ + modify configure script to look for gnatgcc if the Ada95 binding
++ is built, in preference to the default gcc/cc (suggested by
++ Nicolas Boulenguez).
++ + modify configure script to ensure that the same -On option used for
++ the C compiler in CFLAGS is used for ADAFLAGS rather than simply
++ using "-O3" (suggested by Nicolas Boulenguez)
++
++20120324
++ + amend an old fix so that next_char() exits properly for empty files,
++ e.g., from reading /dev/null (cf: 20080804).
++ + modify tic so that it can read from the standard input, or from
++ a character device. Because tic uses seek's, this requires writing
++ the data to a temporary file first (prompted by remark by Sven
++ Joachim) (cf: 20000923).
++
++20120317
++ + correct a check made in lib_napms.c, so that terminfo applications
++ can again use napms() (cf: 20110604).
++ + add a note in tic.h regarding required casts for ABSENT_BOOLEAN
++ (cf: 20040327).
++ + correct scripting for --disable-echo option in test/configure.
++ + amend check for missing c++ compiler to work when no error is
++ reported, and no variables set (cf: 20021206).
++ + add/use configure macro CF_DISABLE_ECHO.
++
++20120310
++ + fix some strict compiler warnings for abi6 and 64-bits.
++ + use begin_va_copy/end_va_copy macros in lib_printw.c (cf: 20120303).
++ + improve a limit-check in infocmp.c (Werner Fink):
++
++20120303
++ + minor tidying of terminfo.tail, clarify reason for limitation
++ regarding mapping of \0 to \200
++ + minor improvement to _nc_copy_termtype(), using memcpy to replace
++ loops.
++ + fix no-leaks checking in test/demo_termcap.c to account for multiple
++ calls to setupterm().
++ + modified the libgpm change to show previous load as a problem in the
++ debug-trace.
++ > merge some patches from OpenSUSE rpm (Werner Fink):
++ + ncurses-5.7-printw.dif, fixes for varargs handling in lib_printw.c
++ + ncurses-5.7-gpm.dif, do not dlopen libgpm if already loaded by
++ runtime linker
++ + ncurses-5.6-fallback.dif, do not free arrays and strings from static
++ fallback entries
++
++20120228
++ + fix breakage in tic/infocmp from 20120225 (report by Werner Fink).
++
++20120225
++ + modify configure script to allow creating dll's for MinGW when
++ cross-compiling.
++ + add --enable-string-hacks option to control whether strlcat and
++ strlcpy may be used. The same issue applies to OpenBSD's warnings
++ about snprintf, noting that this function is weakly standardized.
++ + add configure checks for strlcat, strlcpy and snprintf, to help
++ reduce bogus warnings with OpenBSD builds.
++ + build-fix for OpenBSD 4.9 to supply consistent intptr_t declaration
++ (cf:20111231)
++ + update config.guess, config.sub
++
++20120218
++ + correct CF_ETIP_DEFINES configure macro, making it exit properly on
++ the first success (patch by Pierre Labastie).
++ + improve configure macro CF_MKSTEMP by moving existence-check for
++ mkstemp out of the AC_TRY_RUN, to help with cross-compiles.
++ + improve configure macro CF_FUNC_POLL from luit changes to detect
++ broken implementations, e.g., with Mac OS X.
++ + add configure option --with-tparm-arg
++ + build-fix for MinGW cross-compiling, so that make_hash does not
++ depend on TTY definition (cf: 20111008).
++
++20120211
++ + make sgr for xterm-pcolor agree with other caps -TD
++ + make sgr for att5425 agree with other caps -TD
++ + make sgr for att630 agree with other caps -TD
++ + make sgr for linux entries agree with other caps -TD
++ + make sgr for tvi9065 agree with other caps -TD
++ + make sgr for ncr260vt200an agree with other caps -TD
++ + make sgr for ncr160vt100pp agree with other caps -TD
++ + make sgr for ncr260vt300an agree with other caps -TD
++ + make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD
++ + make sgr for cygwin, cygwinDBG agree with other caps -TD
++ + add configure option --with-xterm-kbs to simplify configuration for
++ Linux versus most other systems.
++
++20120204
++ + improved tic -D option, avoid making target directory and provide
++ better diagnostics.
++
++20120128
++ + add mach-gnu (Debian #614316, patch by Samuel Thibault)
++ + add mach-gnu-color, tweaks to mach-gnu terminfo -TD
++ + make sgr for sun-color agree with smso -TD
++ + make sgr for prism9 agree with other caps -TD
++ + make sgr for icl6404 agree with other caps -TD
++ + make sgr for ofcons agree with other caps -TD
++ + make sgr for att5410v1, att4415, att620 agree with other caps -TD
++ + make sgr for aaa-unk, aaa-rv agree with other caps -TD
++ + make sgr for avt-ns agree with other caps -TD
++ + amend fix intended to separate fixups for acsc to allow "tic -cv" to
++ give verbose warnings (cf: 20110730).
++ + modify misc/gen-edit.sh to make the location of the tabset directory
++ consistent with misc/Makefile.in, i.e., using ${datadir}/tabset
++ (Debian #653435, patch by Sven Joachim).
++
++20120121
++ + add --with-lib-prefix option to allow configuring for old/new flavors
++ of OS/2 EMX.
++ + modify check for gnat version to allow for year, as used in FreeBSD
++ port.
++ + modify check_existence() in db_iterator.c to simply check if the
++ path is a directory or file, according to the need. Checking for
++ directory size also gives no usable result with OS/2 (cf: 20120107).
++ + support OS/2 kLIBC (patch by KO Myung-Han).
++
++20120114
++ + several improvements to test/movewindow.c (prompted by discussion on
++ Linux Mint forum):
++ + modify movement commands to make them continuous
++ + rewrote the test for mvderwin
++ + rewrote the test for recursive mvwin
++ + split-out reusable CF_WITH_NCURSES_ETC macro in test/configure.in
++ + updated configure macro CF_XOPEN_SOURCE, build-fixes for Mac OS X
++ and OpenBSD.
++ + regenerated html manpages.
++
++20120107
++ + various improvments for MinGW (Juergen Pfeifer):
++ + modify stat() calls to ignore the st_size member
++ + drop mk-dlls.sh script.
++ + change recommended regular expression library.
++ + modify rain.c to allow for threaded configuraton.
++ + modify tset.c to allow for case when size-change logic is not used.
++
++20111231
++ + modify toe's report when -a and -s options are combined, to add
++ a column showing which entries belong to a given database.
++ + add -s option to toe, to sort its output.
++ + modify progs/toe.c, simplifying use of db-iterator results to use
++ caching improvements from 20111001 and 20111126.
++ + correct generation of pc-files when ticlib or termlib options are
++ given to rename the corresponding tic- or tinfo-libraries (report
++ by Sven Joachim).
++
++20111224
++ + document a portability issue with tput, i.e., that scripts which work
++ with ncurses may fail in other implementations that do no parameter
++ analysis.
++ + add putty-sco entry -TD
++
++20111217
++ + review/fix places in manpages where --program-prefix configure option
++ was not being used.
++ + add -D option to infocmp, to show the database locations that it
++ could use.
++ + fix build for the special case where term-driver, ticlib and termlib
++ are all enabled. The terminal driver depends on a few features in
++ the base ncurses library, so tic's dependencies include both ncurses
++ and termlib.
++ + fix build work for term-driver when --enable-wgetch-events option is
++ enabled.
++ + use <stdint.h> types to fix some questionable casts to void*.
++
++20111210
++ + modify configure script to check if thread library provides
++ pthread_mutexattr_settype(), e.g., not provided by Solaris 2.6
++ + modify configure script to suppress check to define _XOPEN_SOURCE
++ for IRIX64, since its header files have a conflict versus
++ _SGI_SOURCE.
++ + modify configure script to add ".pc" files for tic- and
++ tinfo-libraries, which were omitted in recent change (cf: 20111126).
++ + fix inconsistent checks on $PKG_CONFIG variable in configure script.
++
++20111203
++ + modify configure-check for etip.h dependencies, supplying a temporary
++ copy of ncurses_dll.h since it is a generated file (prompted by
++ Debian #646977).
++ + modify CF_CPP_PARAM_INIT "main" function to work with current C++.
++
++20111126
++ + correct database iterator's check for duplicate entries
++ (cf: 20111001).
++ + modify database iterator to ignore $TERMCAP when it is not an
++ absolute pathname.
++ + add -D option to tic, to show the database locations that it could
++ use.
++ + improve description of database locations in tic manpage.
++ + modify the configure script to generate a list of the ".pc" files to
++ generate, rather than deriving the list from the libraries which have
++ been built (patch by Mike Frysinger).
++ + use AC_CHECK_TOOLS in preference to AC_PATH_PROGS when searching for
++ ncurses*-config, e.g., in Ada95/configure and test/configure (adapted
++ from patch by Mike Frysinger).
++
++20111119
++ + remove obsolete/conflicting fallback definition for _POSIX_SOURCE
++ from curses.priv.h, fixing a regression with IRIX64 and Tru64
++ (cf: 20110416)
++ + modify _nc_tic_dir() to ensure that its return-value is nonnull,
++ i.e., the database iterator was not initialized. This case is needed
++ to when tic is translating to termcap, rather than loading the
++ database (cf: 20111001).
++
++20111112
++ + add pccon entries for OpenBSD console (Alexei Malinin).
++ + build-fix for OpenBSD 4.9 with gcc 4.2.1, setting _XOPEN_SOURCE to
++ 600 to work around inconsistent ifdef'ing of wcstof between C and
++ C++ header files.
++ + modify capconvert script to accept more than exact match on "xterm",
++ e.g., the "xterm-*" variants, to exclude from the conversion (patch
++ by Robert Millan).
++ + add -lc_r as alternative for -lpthread, allows build of threaded code
++ in older FreeBSD machines.
++ + build-fix for MirBSD, which fails when either _XOPEN_SOURCE or
++ _POSIX_SOURCE are defined.
++ + fix a typo misc/Makefile.in, used in uninstalling pc-files.
++
++20111030
++ + modify make_db_path() to allow creating "terminfo.db" in the same
++ directory as an existing "terminfo" directory. This fixes a case
++ where switching between hashed/filesystem databases would cause the
++ new hashed database to be installed in the next best location -
++ root's home directory.
++ + add variable cf_cv_prog_gnat_correct to those passed to
++ config.status, fixing a problem with Ada95 builds (cf: 20111022).
++ + change feature test from _XPG5 to _XOPEN_SOURCE in two places, to
++ accommodate broken implementations for _XPG6.
++ + eliminate usage of NULL symbol from etip.h, to reduce header
++ interdependencies.
++ + add configure check to decide when to add _XOPEN_SOURCE define to
++ compiler options, i.e., for Solaris 10 and later (cf: 20100403).
++ This is a workaround for gcc 4.6, which fails to build the c++
++ binding if that symbol is defined by the application, due to
++ incorrectly combining the corresponding feature test macros
++ (report by Peter Kruse).
++
++20111022
++ + correct logic for discarding mouse events, retaining the partial
++ events used to build up click, double-click, etc, until needed
++ (cf: 20110917).
++ + fix configure script to avoid creating unused Ada95 makefile when
++ gnat does not work.
++ + cleanup width-related gcc 3.4.3 warnings for 64-bit platform, for the
++ internal functions of libncurses. The external interface of courses
++ uses bool, which still produces these warnings.
++
++20111015
++ + improve description of --disable-tic-depends option to make it
++ clear that it may be useful whether or not the --with-termlib
++ option is also given (report by Sven Joachim).
++ + amend termcap equivalent for set_pglen_inch to use the X/Open
++ "YI" rather than the obsolete Solaris 2.5 "sL" (cf: 990109).
++ + improve manpage for tgetent differences from termcap library.
++
++20111008
++ + moved static data from db_iterator.c to lib_data.c
++ + modify db_iterator.c for memory-leak checking, fix one leak.
++ + modify misc/gen-pkgconfig.in to use Requires.private for the parts
++ of ncurses rather than Requires, as well as Libs.private for the
++ other library dependencies (prompted by Debian #644728).
++
++20111001
++ + modify tic "-K" option to only set the strict-flag rather than force
++ source-output. That allows the same flag to control the parser for
++ input and output of termcap source.
++ + modify _nc_getent() to ignore backslash at the end of a comment line,
++ making it consistent with ncurses' parser.
++ + restore a special-case check for directory needed to make termcap
++ text files load as if they were databases (cf: 20110924).
++ + modify tic's resolution/collision checking to attempt to remove the
++ conflicting alias from the second entry in the pair, which is
++ normally following in the source file. Also improved the warning
++ message to make it simpler to see which alias is the problem.
++ + improve performance of the database iterator by caching search-list.
++
++20110925
++ + add a missing "else" in changes to _nc_read_tic_entry().
++
++20110924
++ + modify _nc_read_tic_entry() so that hashed-database is checked before
++ filesystem.
++ + updated CF_CURSES_LIBS check in test/configure script.
++ + modify configure script and makefiles to split TIC_ARGS and
++ TINFO_ARGS into pieces corresponding to LDFLAGS and LIBS variables,
++ to help separate searches for tic- and tinfo-libraries (patch by Nick
++ Alcock aka "Nix").
++ + build-fix for lib_mouse.c changes (cf: 20110917).
++
++20110917
++ + fix compiler warning for clang 2.9
++ + improve merging of mouse events (integrated patch by Damien
++ Guibouret).
++ + correct mask-check used in lib_mouse for wheel mouse buttons 4/5
++ (patch by Damien Guibouret).
++
++20110910
++ + modify misc/gen_edit.sh to select a "linux" entry which works with
++ the current kernel rather than assuming it is always "linux3.0"
++ (cf: 20110716).
++ + revert a change to getmouse() which had the undesirable side-effect
++ of suppressing button-release events (report by Damien Guibouret,
++ cf: 20100102).
++ + add xterm+kbs fragment from xterm #272 -TD
++ + add configure option --with-pkg-config-libdir to provide control over
++ the actual directory into which pc-files are installed, do not use
++ the pkg-config environment variables (discussion with Frederic L W
++ Meunier).
++ + add link to mailing-list archive in announce.html.in, as done in
++ FAQ (prompted by question by Andrius Bentkus).
++ + improve manpage install by adjusting the "#include" examples to
++ show the ncurses-subdirectory used when --disable-overwrite option
++ is used.
++ + install an alias for "curses" to the ncurses manpage, tied to the
++ --with-curses-h configure option (suggested by Reuben Thomas).
++
++20110903
++ + propagate error-returns from wresize, i.e., the internal
++ increase_size and decrease_size functions through resize_term (report
++ by Tim van der Molen, cf: 20020713).
++ + fix typo in tset manpage (patch by Sven Joachim).
++
++20110820
++ + add a check to ensure that termcap files which might have "^?" do
++ not use the terminfo interpretation as "\177".
++ + minor cleanup of X-terminal emulator section of terminfo.src -TD
++ + add terminator entry -TD
++ + add simpleterm entry -TD
++ + improve wattr_get macros by ensuring that if the window pointer is
++ null, then the attribute and color values returned will be zero
++ (cf: 20110528).
++
++20110813
++ + add substitution for $RPATH_LIST to misc/ncurses-config.in
++ + improve performance of tic with hashed-database by caching the
++ database connection, using atexit() to cleanup.
++ + modify treatment of 2-character aliases at the beginning of termcap
++ entries so they are not counted in use-resolution, since these are
++ guaranteed to be unique. Also ignore these aliases when reporting
++ the primary name of the entry (cf: 20040501)
++ + double-check gn (generic) flag in terminal descriptions to
++ accommodate old/buggy termcap databases which misused that feature.
++ + minor fixes to _nc_tgetent(), ensure buffer is initialized even on
++ error-return.
++
++20110807
++ + improve rpath fix from 20110730 by ensuring that the new $RPATH_LIST
++ variable is defined in the makefiles which use it.
++ + build-fix for DragonFlyBSD's pkgsrc in test/configure script.
++ + build-fixes for NetBSD 5.1 with termcap support enabled.
++ + corrected k9 in dg460-ansi, add other features based on manuals -TD
++ + improve trimming of whitespace at the end of terminfo/termcap output
++ from tic/infocmp.
++ + when writing termcap source, ensure that colons in the description
++ field are translated to a non-delimiter, i.e., "=".
++ + add "-0" option to tic/infocmp, to make the termcap/terminfo source
++ use a single line.
++ + add a null-pointer check when handling the $CC variable.
++
++20110730
++ + modify configure script and makefiles in c++ and progs to allow the
++ directory used for rpath option to be overridden, e.g., to work
++ around updates to the variables used by tic during an install.
++ + add -K option to tic/infocmp, to provide stricter BSD-compatibility
++ for termcap output.
++ + add _nc_strict_bsd variable in tic library which controls the
++ "strict" BSD termcap compatibility from 20110723, plus these
++ features:
++ + allow escapes such as "\8" and "\9" when reading termcap
++ + disallow "\a", "\e", "\l", "\s" and "\:" escapes when reading
++ termcap files, passing through "a", "e", etc.
++ + expand "\:" as "\072" on output.
++ + modify _nc_get_token() to reset the token's string value in case
++ there is a string-typed token lacking the "=" marker.
++ + fix a few memory leaks in _nc_tgetent.
++ + fix a few places where reading from a termcap file could refer to
++ freed memory.
++ + add an overflow check when converting terminfo/termcap numeric
++ values, since terminfo stores those in a short, and they must be
++ positive.
++ + correct internal variables used for translating to termcap "%>"
++ feature, and translating from termcap %B to terminfo, needed by
++ tctest (cf: 19991211).
++ + amend a minor fix to acsc when loading a termcap file to separate it
++ from warnings needed for tic (cf: 20040710)
++ + modify logic in _nc_read_entry() and _nc_read_tic_entry() to allow
++ a termcap file to be handled via TERMINFO_DIRS.
++ + modify _nc_infotocap() to include non-mandatory padding when
++ translating to termcap.
++ + modify _nc_read_termcap_entry(), passing a flag in the case where
++ getcap is used, to reduce interactive warning messages.
++
++20110723
++ + add a check in start_color() to limit color-pairs to 256 when
++ extended colors are not supported (patch by David Benjamin).
++ + modify setcchar to omit no-longer-needed OR'ing of color pair in
++ the SetAttr() macro (patch by David Benjamin).
++ + add kich1 to sun terminfo entry (Yuri Pankov)
++ + use bold rather than reverse for smso in sun-color terminfo entry
++ (Yuri Pankov).
++ + improve generation of termcap using tic/infocmp -C option, e.g.,
++ to correspond with 4.2BSD (prompted by discussion with Yuri Pankov
++ regarding Schilling's test program):
++ + translate %02 and %03 to %2 and %3 respectively.
++ + suppress string capabilities which use %s, not supported by tgoto
++ + use \040 rather than \s
++ + expand null characters as \200 rather than \0
++ + modify configure script to support shared libraries for DragonFlyBSD.
++
++20110716
++ + replace an assert() in _nc_Free_Argument() with a regular null
++ pointer check (report/analysis by Franjo Ivancic).
++ + modify configure --enable-pc-files option to take into account the
++ PKG_CONFIG_PATH variable (report by Frederic L W Meunier).
++ + add/use xterm+tmux chunk from xterm #271 -TD
++ + resync xterm-new entry from xterm #271 -TD
++ + add E3 extended capability to linux-basic (Miroslav Lichvar)
++ + add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD
++ + add SI/SO change to linux2.6 entry (Debian #515609) -TD
++ + fix inconsistent tabset path in pcmw (Todd C. Miller).
++ + remove a backslash which continued comment, obscuring altos3
++ definition with OpenBSD toolset (Nicholas Marriott).
++
++20110702
++ + add workaround from xterm #271 changes to ensure that compiler flags
++ are not used in the $CC variable.
++ + improve support for shared libraries, tested with AIX 5.3, 6.1 and
++ 7.1 with both gcc 4.2.4 and cc.
++ + modify configure checks for AIX to include release 7.x
++ + add loader flags/libraries to libtool options so that dynamic loading
++ works properly, adapted from ncurses-5.7-ldflags-with-libtool.patch
++ at gentoo prefix repository (patch by Michael Haubenwallner).
++
++20110626
++ + move include of nc_termios.h out of term_entry.h, since the latter
++ is installed, e.g., for tack while the former is not (report by
++ Sven Joachim).
++
++20110625
++ + improve cleanup() function in lib_tstp.c, using _exit() rather than
++ exit() and checking for SIGTERM rather than SIGQUIT (prompted by
++ comments forwarded by Nicholas Marriott).
++ + reduce name pollution from term.h, moving fallback #define's for
++ tcgetattr(), etc., to new private header nc_termios.h (report by
++ Sergio NNX).
++ + two minor fixes for tracing (patch by Vassili Courzakis).
++ + improve trace initialization by starting it in use_env() and
++ ripoffline().
++ + review old email, add details for some changelog entries.
++
++20110611
++ + update minix entry to minix 3.2 (Thomas Cort).
++ + fix a strict compiler warning in change to wattr_get (cf: 20110528).
++
++20110604
++ + fixes for MirBSD port:
++ + set default prefix to /usr.
++ + add support for shared libraries in configure script.
++ + use S_ISREG and S_ISDIR consistently, with fallback definitions.
++ + add a few more checks based on ncurses/link_test.
++ + modify MKlib_gen.sh to handle sp-funcs renaming of NCURSES_OUTC type.
++
++20110528
++ + add case to CF_SHARED_OPTS for Interix (patch by Markus Duft).
++ + used ncurses/link_test to check for behavior when the terminal has
++ not been initialized and when an application passes null pointers
++ to the library. Added checks to cover this (prompted by Redhat
++ #707344).
++ + modify MKlib_gen.sh to make its main() function call each function
++ with zero parameters, to help find inconsistent checking for null
++ pointers, etc.
++
++20110521
++ + fix warnings from clang 2.7 "--analyze"
++
++20110514
++ + compiler-warning fixes in panel and progs.
++ + modify CF_PKG_CONFIG macro, from changes to tin -TD
++ + modify CF_CURSES_FUNCS configure macro, used in test directory
++ configure script:
++ + work around (non-optimizer) bug in gcc 4.2.1 which caused
++ test-expression to be omitted from executable.
++ + force the linker to see a link-time expression of a symbol, to
++ help work around weak-symbol issues.
++
++20110507
++ + update discussion of MKfallback.sh script in INSTALL; normally the
++ script is used automatically via the configured makefiles. However
++ there are still occasions when it might be used directly by packagers
++ (report by Gunter Schaffler).
++ + modify misc/ncurses-config.in to omit the "-L" option from the
++ "--libs" output if the library directory is /usr/lib.
++ + change order of tests for curses.h versus ncurses.h headers in the
++ configure scripts for Ada95 and test-directories, to look for
++ ncurses.h, from fixes to tin -TD
++ + modify ncurses/tinfo/access.c to account for Tandem's root uid
++ (report by Joachim Schmitz).
++
++20110430
++ + modify rules in Ada95/src/Makefile.in to ensure that the PIC option
++ is not used when building a static library (report by Nicolas
++ Boulenguez):
++ + Ada95 build-fix for big-endian architectures such as sparc. This
++ undoes one of the fixes from 20110319, which added an "Unused" member
++ to representation clauses, replacing that with pragmas to suppress
++ warnings about unused bits (patch by Nicolas Boulenguez).
++
++20110423
++ + add check in test/configure for use_window, use_screen.
++ + add configure-checks for getopt's variables, which may be declared
++ as different types on some Unix systems.
++ + add check in test/configure for some legacy curses types of the
++ function pointer passed to tputs().
++ + modify init_pair() to accept -1's for color value after
++ assume_default_colors() has been called (Debian #337095).
++ + modify test/background.c, adding commmand-line options to demonstrate
++ assume_default_colors() and use_default_colors().
++
++20110416
++ + modify configure script/source-code to only define _POSIX_SOURCE if
++ the checks for sigaction and/or termios fail, and if _POSIX_C_SOURCE
++ and _XOPEN_SOURCE are undefined (report by Valentin Ochs).
++ + update config.guess, config.sub
++
++20110409
++ + fixes to build c++ binding with clang 3.0 (patch by Alexander
++ Kolesen).
++ + add check for unctrl.h in test/configure, to work around breakage in
++ some ncurses packages.
++ + add "--disable-widec" option to test/configure script.
++ + add "--with-curses-colr" and "--with-curses-5lib" options to the
++ test/configure script to address testing with very old machines.
++
+ 20110404 5.9 release for upload to ftp.gnu.org
+
+ 20110402
+@@ -100,7 +1799,7 @@
+ + modify configure script to provide value for HTML_DIR in
+ Ada95/gen/Makefile.in, which depends on whether the Ada95 binding is
+ distributed separately (report by Nicolas Boulenguez).
+- + modify configure script to add -g and/or -O3 to ADAFLAGS if the
++ + modify configure script to add "-g" and/or "-O3" to ADAFLAGS if the
+ CFLAGS for the build has these options.
+ + amend change from 20070324, to not add 1 to the result of getmaxx
+ and getmaxy in the Ada binding (report by Nicolas Boulenguez for
+@@ -155,7 +1854,7 @@
+ 20110212
+ + regenerated html manpages.
+ + use _tracef() in show_where() function of tic, to work correctly with
+- special case of trace configuration.
++ special case of trace configuration.
+
+ 20110205
+ + add xterm-utf8 entry as a demo of the U8 feature -TD
+@@ -219,7 +1918,7 @@
+ version which works with termcap.
+ + remove obsolete emacs "Local Variables" section from documentation
+ (request by Sven Joachim).
+- + update doc/html/index.html to include NCURSES-Programming-HOWTO.html
++ + update doc/html/index.html to include NCURSES-Programming-HOWTO.html
+ (report by Sven Joachim).
+
+ 20101128
+@@ -294,8 +1993,8 @@
+ Sven Joachim).
+ + add parameterized cursor-controls to linux-basic (report by Dae) -TD
+ > patch by Juergen Pfeifer:
+- + document how to build 32-bit libraries in README.MinGW
+- + fixes to filename computation in mk-dlls.sh.in
++ + document how to build 32-bit libraries in README.MinGW
++ + fixes to filename computation in mk-dlls.sh.in
+ + use POSIX locale in mk-dlls.sh.in rather than en_US (report by Sven
+ Joachim).
+ + add a check in mk-dlls.sh.in to obtain the size of a pointer to
+@@ -478,7 +2177,7 @@
+ 20100417
+ + modify _nc_capcmp() to work with cancelled strings.
+ + correct translation of "^" in _nc_infotocap(), used to transform
+- terminfo to termcap strings
++ terminfo to termcap strings
+ + add configure --disable-rpath-hack, to allow disabling the feature
+ which adds rpath options for libraries in unusual places.
+ + improve CF_RPATH_HACK_2 by checking if the rpath option for a given
+@@ -704,7 +2403,7 @@
+ + quiet some pedantic gcc warnings.
+ + modify _nc_wgetch() to check for a -1 in the fifo, e.g., after a
+ SIGWINCH, and discard that value, to avoid confusing application
+- (patch by Eygene Ryabinkin, FreeBSD bin/136223).
++ (patch by Eygene Ryabinkin, FreeBSD #136223).
+
+ 20091017
+ + modify handling of $PKG_CONFIG_LIBDIR to use only the first item in
+@@ -784,7 +2483,7 @@
+
+ 20090815
+ + correct use of terminfo capabilities for initializing soft-keys,
+- broken in 20090509 merging.
++ broken in 20090510 merging.
+ + modify wgetch() to ensure it checks SIGWINCH when it gets an error
+ in non-blocking mode (patch by Clemens Ladisch).
+ + use PATH_SEPARATOR symbol when substituting into run_tic.sh, to
+@@ -823,7 +2522,7 @@
+
+ 20090718
+ + fix a null-pointer check in _nc_format_slks() in lib_slk.c, from
+- 20070704 changes.
++ 20090704 changes.
+ + modify _nc_find_type_entry() to use hashing.
+ + make CCHARW_MAX value configurable, noting that changing this would
+ change the size of cchar_t, and would be ABI-incompatible.
+@@ -929,7 +2628,7 @@
+ intermediate variable LT_UNDEF in the configure script, and then
+ using that in the libtool link-commands.
+ + fix an missing use of NCURSES_PUBLIC_VAR() in tinfo/MKcodes.awk
+- from 2009031 changes.
++ from 20090321 changes.
+ + improve mk-1st.awk script by writing separate cases for the
+ LIBTOOL_LINK command, depending on which library (ncurses, ticlib,
+ termlib) is to be linked.
+@@ -1533,8 +3232,8 @@
+ that library.
+ + add/modify null-pointer checks in several functions for SP and/or
+ the WINDOW* parameter (report by Thorben Krueger).
+- + fixes for field_buffer() in formw library (see Redhat Bugzilla
+- #310071, patches by Miroslav Lichvar).
++ + fixes for field_buffer() in formw library (see Redhat #310071,
++ patches by Miroslav Lichvar).
+ + improve performance of NCURSES_CHAR_EQ code (patch by Miroslav
+ Lichvar).
+ + update/improve mlterm and rxvt terminfo entries, e.g., for
+@@ -1645,7 +3344,7 @@
+ + modify configure script to quiet c++ build with libtool when the
+ --disable-echo option is used.
+ + modify configure script to disable ada95 if libtool is selected,
+- writing a warning message (addresses FreeBSD ports/114493).
++ writing a warning message (addresses FreeBSD #114493).
+ + update config.guess, config.sub
+
+ 20070707
+@@ -2130,8 +3829,7 @@
+ + workaround for 20050806 ifdef's change to allow visbuf.c to compile
+ when using --with-termlib --with-trace options.
+ + improve tgetstr() by making the return value point into the user's
+- buffer, if provided (patch by Miroslav Lichvar (see Redhat Bugzilla
+- #202480)).
++ buffer, if provided (patch by Miroslav Lichvar (see Redhat #202480)).
+ + correct libraries needed for foldkeys (report by Stanislav Ievlev)
+
+ 20060826
+@@ -2144,10 +3842,10 @@
+ source output (Debian #378783).
+ + modify configure script to ensure that if the C compiler is used
+ rather than the loader in making shared libraries, the $(CFLAGS)
+- variable is also used (Redhat Bugzilla #199369).
++ variable is also used (Redhat #199369).
+ + port hashed-db code to db2 and db3.
+ + fix a bug in tgetent() from 20060625 and 20060715 changes
+- (patch/analysis by Miroslav Lichvar (see Redhat Bugzilla #202480)).
++ (patch/analysis by Miroslav Lichvar (see Redhat #202480)).
+
+ 20060805
+ + updated xterm function-keys terminfo to match xterm #216 -TD
+@@ -2939,7 +4637,7 @@
+ of cur_term if the same output was selected. This now reuses it only
+ when setupterm() is called from tgetent(), which has no notion of
+ separate SCREENs. Note that tgetent() must be called after initscr()
+- or newterm() to use this feature (Redhat Bugzilla #140326).
++ or newterm() to use this feature (Redhat #140326).
+ + add a check in CF_BUILD_CC macro to ensure that developer has given
+ the --with-build-cc option when cross-compiling (report by Alexandre
+ Campo).
+@@ -3032,7 +4730,7 @@
+ entries, e.g., so it can analyze the xterm-8bit entry.
+ + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin).
+ + correct translation of "%%" in terminfo format to termcap, e.g.,
+- using "tic -C" (Redhat Bugzilla #130921).
++ using "tic -C" (Redhat #130921).
+ + modified configure script CF_XOPEN_SOURCE macro to ensure that if
+ it defines _POSIX_C_SOURCE, that it defines it to a specific value
+ (comp.os.stratus newsgroup comment).
+@@ -3043,9 +4741,9 @@
+ However that did find a coding error in Assume_Default_Colors().
+ + modify several terminfo entries to ensure xterm mouse and cursor
+ visibility are reset in rs2 string: hurd, putty, gnome,
+- konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The
+- xterm entries are left alone - old ones for compatibility, and the
+- new ones do not require this change. -TD
++ konsole-base, mlterm, Eterm, screen (Debian #265784, Debian #55637).
++ The xterm entries are left alone - old ones for compatibility, and
++ the new ones do not require this change. -TD
+
+ 20040814
+ + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators
+@@ -3076,8 +4774,8 @@
+ + modify "tic -cv" to ignore delays when comparing strings. Also
+ modify it to ignore a canceled sgr string, e.g., for terminals which
+ cannot properly combine attributes in one control sequence.
+- + corrections for gnome and konsole entries (Redhat Bugzilla #122815,
+- patch by Hans de Goede)
++ + corrections for gnome and konsole entries (Redhat #122815, patch by
++ Hans de Goede)
+ > terminfo updates -TD
+ + make ncsa-m rmacs/smacs consistent with sgr
+ + add sgr, rc/sc and ech to syscons entries
+@@ -3090,7 +4788,7 @@
+ > terminfo updates -TD
+ + add xterm-pc-fkeys
+ + review/update gnome and gnome-rh90 entries (prompted by Redhat
+- Bugzilla #122815).
++ #122815).
+ + review/update konsole entries
+ + add sgr, correct sgr0 for kterm and mlterm
+ + correct tsl string in kterm
+@@ -3503,7 +5201,7 @@
+ generated when cross-compiling for DJGPP.
+ + modify infocmp to omit check for $TERM for operations that do not
+ require it, e.g., "infocmp -e" used to build fallback list (report by
+- Koblinger Egmont).
++ Egmont Koblinger).
+
+ 20031004
+ + add terminfo entries for DJGPP.
+@@ -4204,7 +5902,7 @@
+ + add a check in kgetch() for cooked characters in the fifo to avoid
+ calling fifo_push() when a KEY_RESIZE is available (report/analysis
+ by Sam Varshavchik <mrsam@courier-mta.com>).
+- + fix an overlooked case for bugzilla #68199 (Philippe Blain).
++ + fix an overlooked case for Redhat #68199 (Philippe Blain).
+ + ensure clearerr() is called before using ferror() e.g., in
+ lib_screen.c (report by Philippe Blain).
+
+@@ -4212,7 +5910,7 @@
+ + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific
+ pointers for curscr/stdscr/newscr when scr_save() and scr_restore()
+ modify the global curscr/stdscr/newscr variables. Fixes Redhat
+- bugzilla #68199 dated 2002-07-07.
++ #68199.
+ + add checks for null pointer in calls to tparm() and tgoto() based on
+ FreeBSD bug report. If ncurses were built with termcap support, and
+ the first call to tgoto() were a zero-length string, the result would
+@@ -4245,7 +5943,7 @@
+ Olaf Buddenhagen <olafBuddenhagen@web.de>).
+ + modified wresize() to ensure that a failed realloc will not corrupt
+ the window structure, and to make subwindows fit within the resized
+- window (completes Debian #87678, #101699)
++ window (completes Debian #87678, Debian #101699)
+
+ 20020803
+ + fix an off-by-one in lib_pad.c check for limits of pad (patch by
+@@ -4940,9 +6638,9 @@
+ which may be in libutf8.
+ + remove some unnecessary text from curs_extend.3x and
+ default_colors.3x which caused man-db to make incorrect symbolic
+- links (Debian bug report #99550).
++ links (Debian #99550).
+ + add configure check if cast for _IO_va_list is needed to compile
+- C++ vscan code (Debian bug report #97945).
++ C++ vscan code (Debian #97945).
+ > several patches from Sven Verdoolaege:
+ + correct code that used non-standard auto-initialization of a struct,
+ which gcc allows (report by Larry Virden).
+@@ -5077,7 +6775,7 @@
+ + add some examples of customizing screen's terminfo:
+ screen.xterm-xfree86, screen.xterm-r6, screen.teraterm -TD
+ + modify screen's terminfo entry to match the khome/kend in screen
+- 3.09.08 (Debian bug report #92215).
++ 3.09.08 (Debian #92215).
+ + correct a memory leak in forms library (report by Stefan Vogtner
+ <stefan@vogtner.de>) (patch by Juergen Pfeifer).
+
+@@ -5091,12 +6789,12 @@
+ + add .cc.ii rule to c++ makefile, to get preprocessor output for
+ debugging.
+ + correct configure script handling of @keyword@ substitutions when the
+- --with-manpage-renames option is given (cf: 20000715, fixes Debian
+- bug #89939).
++ --with-manpage-renames option is given (cf: 20000715, fixes Debian
++ #89939).
+ + report stack underflow/overflow in tparm() when tic -cv option is
+ given.
+ + remove spurious "%|" operator from xterm-xfree86 terminfo entry,
+- (reported by Adam Costello <amc@cs.berkeley.edu>, Debian bug #89222).
++ (reported by Adam Costello <amc@cs.berkeley.edu>, Debian #89222).
+
+ 20010310
+ + cleanup of newdemo.c, fixing some ambiguous expressions noted by gcc
+@@ -5800,7 +7498,7 @@
+ + correct spelling error in terminfo entry name: bq300-rv was given as
+ bg300-rv in esr's version.
+ + modify redrawwin() macro so its parameter is fully parenthesized
+- (fixes Debian bug report #61088).
++ (fixes Debian #61088).
+ + correct formatting error in dump_entry() which set incorrect column
+ value when no newline trimming was needed at the end of an entry,
+ before appending "use=" clauses (cf: 960406).
+@@ -6530,7 +8228,7 @@
+ handling in lynx (reported by Kim DeVaughn).
+
+ 990306 pre-release
+- + add -G option to tic and infocmp, to reverse the -g option.
++ + add -G option to tic and infocmp, to reverse the "-g" option.
+ + recode functions in name_match.c to avoid use of strncpy, which
+ caused a 4-fold slowdown in tic (cf: 980530).
+ + correct a few warnings about sign-extension in recent changes.
+@@ -6901,7 +8599,7 @@
+ since that is a little more efficient.
+ + minor correction to infocmp to avoid displaying "difference" between
+ two capabilities that are rendered in equivalent forms.
+- + add -g option to tic/infocmp to force character constants to be
++ + add "-g" option to tic/infocmp to force character constants to be
+ displayed in quoted form. Otherwise their decimal values are shown.
+ + modify setupterm so that cancelled strings are treated the same as
+ absent strings, cancelled and absent booleans false (does not affect
+@@ -7640,7 +9338,7 @@
+ + remove _nc_err_abort() calls when write_entry.c finds a directory but
+ cannot write to it, e.g., when translating part/all of /etc/termcap
+ (reported by Andreas Jaeger <aj@arthur.rhein-neckar.de>).
+- (this dates back to 951102, in 1.9.7a).
++ (this dates back to 951102 in 1.9.7a).
+ + minor ifdef fixes to compile with atac and glibc 2.0.5c
+ + add check for -lgen when configuring regexpr.h
+ + modify Solaris shared-library option "-d y" to "-dy" to workaround
+@@ -8109,7 +9807,7 @@
+ + modify tset to look in /etc/ttys or /etc/ttytype if the configuration
+ does not have getttynam().
+ + extend baudrate table in tset.c to match baudrate() function.
+- + add table entries for 230400 and 460800 bd to baudrate() function.
++ + add table entries for B230400 and B460800 to baudrate() function.
+ + improve breakout logic by allowing it before the first line updated,
+ which is what SVr4 curses does (patch by Alexander V. Lukyanov).
+ + correct initialization of vcost in relative_move(), for cursor-down
+@@ -8979,15 +10677,18 @@
+ + correction to #317.
+ > patch 317 (ESR):
+ + re-add _nc_hash_map
+- + modify EmitRange to maintain position as per original design.
+- + add hashtest.c, program to time the hashmap optimization.
++ + modify EmitRange to maintain position as per original design
++ (patch by A. Lukyanov).
++ + modify test/ncurses.c and tputs, etc., to allow trace counting
++ output characters.
++ + add hashtest.c program to time the hashmap optimization.
+ > patch 316 (ESR):
+ + add logic to deal with magic-cookie (how was this tested?)
+ (lib_doupdate.c).
+ + add ncurses.c driver for magic-cookie, some fixes to ncurses.c
+ > patch 315 (ESR):
+- + merged Alexander V Lukyanov's patch to use ech and rep - untested
+- (lib_doupdate.c).
++ + merge changes to lib_doupdate.c to use ech and rep - untested
++ (patch by Alexander V Lukyanov).
+ + modified handling of interrupted system calls - untested
+ (lib_getch.c, lib_twait.c).
+ + new function _nc_mvcur_resume()
+@@ -9059,12 +10760,12 @@
+ + corrected typo in dtterm description.
+ > patch 313 (ESR):
+ + add dtterm description
+- + clarify ncurses 'i' test (drop vscanf subtest)
++ + clarify ncurses 'i' test (drop mvwscanw subtest)
+
+ 960810 - snapshot
+ + correct nl()/nonl() to work as per SVr4 & XSI.
+ + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code)
+- + refine configure-test for -g option (Tim Mooney).
++ + refine configure-test for "-g" option (Tim Mooney).
+ + correct interaction between O_BLANK and NEW_LINE request in form
+ library (Juergen Pfeifer)
+
+@@ -9073,7 +10774,8 @@
+ > patch 312 (ESR):
+ correct terminfo.src corrupted by #310
+ > patch 311 (ESR):
+- + fix idlok() and idcok() and the default of the idlok switch.
++ + fix idlok() and idcok() and the default of the idlok switch (report
++ by Ville Sulko).
+
+ 960803 - snapshot
+ + corrected tparm to handle capability strings without explicit pop
+@@ -9083,7 +10785,7 @@
+ > patch 310 (ESR):
+ + documentation and prototyping errors for has_color, immedok and idcok
+ (reported by William P Setzer <wsetzer@pams.ncsu.edu>)
+- + updated qnx terminfo entry (by Michael Hunter)
++ + updated qnx terminfo entry (patch by Michael Hunter)
+
+ 960730
+ + eliminate quoted includes in ncurses subdirectory, ensure config.h
+@@ -9095,7 +10797,7 @@
+ + call cbreak() in initscr(), as per XSI & SVr4.
+ + turn off hardware echo in initscr() as per XSI & SVr4
+ > patch 309 (ESR):
+- + terminfo changes (9.3.10), from BRL
++ + terminfo changes (9.3.9), from BRL
+ + add more checks to terminfo parser.
+ + add more symbols to infocmp.
+
+@@ -9114,6 +10816,7 @@
+ > patch 308 (ESR):
+ + terminfo changes (9.3.8)
+ + modified logic of error-reporting in terminfo parser
++ + fix option-processing bug in toe.
+
+ 960713 - snapshot
+ + always check for <sys/bsdtypes.h> since ISC needs it to declare
+@@ -9122,9 +10825,19 @@
+ by Juergen Pfeifer, Mike Long)
+ + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
+ + corrected prototype for delay_output() -- bump ABI to 3.2
+- + terminfo patches #306/307 (ESR).
++ + patch 307 (ESR):
++ + enable more translations of nonstandard caps, and document them.
++ + misc/terminfo.src update to 9.13.8
++ + patch 306 (ESR):
+ + moved logic that filters out rmul and rmso from setupterm to newterm
+ where it is less likely to interfere with termcap applications.
++ + cosmetic fixes to test/ncurses.c
++ + modify open() call in ncurses/read_entry.c to use O_RDONLY symbol
++ rather than constant (report by mib).
++ + misc/terminfo.src sgr0 and acsc changes (report by Philippe De
++ Muyter).
++ + modify ncurses/comp_parse.c so that entries containing a "+" can
++ have missing rmcup vs smcup.
+
+ 960707
+ + rollback ESR's #305 change to terminfo.src (it breaks existing
+@@ -9139,7 +10852,6 @@
+ + make lib_vidattr.c more readable using macros.
+ + filter out rmul, rmso that conflict with sgr0 when reading terminal
+ descriptions.
+- + added sanity-checking of various paired string attributes (ESR).
+ + work around autoconf bug, force $INSTALL to absolute path
+ (reported by Zeyd).
+ + modify man-page install for BSDI to install preformatted .0 files
+@@ -9152,6 +10864,12 @@
+ + disable scrollok during the ncurses 'p' test; if it is enabled the
+ stdscr will scroll when putting the box-corners in the lower-right
+ of the screen.
++ > patch 305 (ESR):
++ + added sanity-checking of various paired string attributes.
++ + misc/terminfo.src update to 9.13.7 (report by A. Lukyanov).
++ + modify man/Makefile.in to make terminfo.5 during normal build.
++ > patch 304 (ESR):
++ + corrected allocation-length for $HOME/.terminfo path.
+
+ 960629 - snapshot
+ + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for
+@@ -9234,6 +10952,7 @@
+ + better fix for nvi refresh-bug (Rick Marshall)
+ + fix for bug in handling of interrupted keystroke waits,
+ (Werner Fleck).
++ + misc/ncurses-intro.html syntax fix (Kajiyama Tamito).
+
+ 960601 - snapshot
+ + auto-configure man-page compression-format and renames for Debian.
+@@ -9248,7 +10967,7 @@
+ + enhancement to the control over the new PC-style soft key format.
+ allow caller now to select whether or not one wants to have
+ the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
+- + typos, don't use inline with -g (Philippe De Muyter)
++ + typos, don't use inline with "-g" (Philippe De Muyter)
+ + fixes for menus & wattr-, slk-functions (Juergen Pfeifer)
+
+ 960526 - snapshot
+@@ -9263,6 +10982,9 @@
+ + include sys/types.h in case stdlib.h does not declare size_t.
+ + fixes for makefile (Tim Mooney)
+ + fixes for menus & forms (Juergen Pfeifer)
++ > patch 302 (ESR):
++ + improve hash function (suggested by Alexander V Lukyanov).
++ + 9.13.4 update for terminfo.src
+
+ 960518 - snapshot
+ + revised ncurses.c panner test, let pad abut all 4 sides of screen.
+@@ -9275,6 +10997,8 @@
+ confusion, and made this check for the /usr/lib/terminfo pre-existing
+ directory.
+ > patches 299-301 (ESR):
++ + html fixes (Phillippe de Muyter).
++ + fix typo in ncurses-intro.html (report by Fabrizio Polacco).
+ + added hashmap.c
+ + mods to tracing, especially for ACS chars.
+ + corrected off-by-one in IDCtransform.
+@@ -9294,13 +11018,21 @@
+ > patches 297, 298 (ESR):
+ + implement TERMINFO_DIRS, and -o option of tic
+ + added TRACE_IEVENT
+- + removed boolean version of 'getm'
+- + added lib_print.c (for Rick Marshall)
+- + added has_key()
++ + fix REQ_TOGGLE_ITEM in menu/menu_driver.c; it could select but not
++ deselect.
++ + added lib_print.c (request by Rick Marshall).
++ + added has_key() (request by Juergen Pfeifer).
++ + do not issue clrtoeol or clrtobot if the relevant portion of the line
++ is already blank (analysis by Keith Bostic).
++ + add parentheses for parameters of COLOR_PAIR and PAIR_NUMBER macros
++ (analysis by Jurgen Eidt).
++ + update screen's notion of cursor position in endwin() (analysis by
++ Alexander Lukyanov).
+ + added 't' to ncurses.c test.
+ + moved delay_output() to lib_tputs.c
+ + removed tparam() (was added in 1.9.9, but conflicts with emacs and
+ is not part of X/Open Curses).
++ + removed boolean version of 'getm'.
+ + misc cursor & optimization fixes.
+
+ 960504 - snapshot
+@@ -9326,11 +11058,20 @@
+ + make TIOCGWINSZ configure test less stringent, in case user
+ configures via terminal that cannot get screen size.
+ > patches 295, 296 (ESR):
+- + new "-e" option of tic.
+- + fix for "infocmp -e".
+- + restore working-directory in read_termcap.c
+ + split lib_kernel.c, lib_setup.c and names.c in order to reduce
+ overhead for programs that use only termcap features.
++ + new "-e" and "-h" options of tic (request by Tony Nugent).
++ + fix bug in mandatory-delay logic in lib_tputs.c (report by Sven
++ Verdoolaege).
++ + fix for "infocmp -e" to emit correct initializers (reported by Manual
++ J Novoa III).
++ + restore working-directory in read_termcap.c (report by Kayvan
++ Sylvan).
++ + use "-h" option on Solaris when generating shared libraries on
++ Solaris 2.5 to record the library name in the file, for assisting
++ the loader (patch by Scott Kramer).
++ + undo patch #294 changes to form and menu libraries (request by
++ Juergen Pfeifer).
+
+ 960418 - snapshot
+ + use autoconf 2.9
+@@ -9338,10 +11079,22 @@
+ definitions via <termios.h>, modified macros in lib_raw.c to avoid
+ K&R-style substitution)
+ > patches 293, 294 (ESR):
+- + mods to wgetch() in cooked mode
+- + corrected askuser() logic in tset
+- + correct interaction of endwin() with mouse processing
++ + rewrite wsyncup(), wsyncdown(), as well as small fixes to form and
++ menu libraries to fix echo-breakage introduced by 1.8.9, 1.9.9e
++ changes (patches by Juergen Pfeifer).
++ + fix compile under QNX 4.2 by defining ONLCR in lib_raw.c when
++ __QNX__ is defined (patch by Michael Hunter).
++ + modify setupterm() to match documentation for its return value, fix
++ newterm to work with this change (report by Emmet Lazich).
++ + add checks in getch() for error, return ERR as appropriate (report by
++ Emmet Lazich).
++ + mods to wgetch() in cooked mode (report by Pete Seebach).
++ + corrected askuser() logic in tset (patch by Remco Treffkorn).
++ + correct interaction of endwin() with mouse processing (report by
++ Michael Elkins).
+ + added trace support for TTY flags
++ + update terminfo.src to 9.13.1
++ + FreeBSD console entries (patch by Andrew Chernov).
+
+ 960406
+ + fixes for NeXT, ISC and HPUX auto-configure
+Index: README
+Prereq: 1.23
+--- ncurses-5.9/README 2006-04-22 22:19:37.000000000 +0000
++++ ncurses-5.9-20141206/README 2012-08-11 20:11:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2004,2006 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written --
+ -- authorization. --
+ -------------------------------------------------------------------------------
+--- $Id: README,v 1.23 2006/04/22 22:19:37 tom Exp $
++-- $Id: README,v 1.25 2012/08/11 20:11:26 tom Exp $
+ -------------------------------------------------------------------------------
+ README file for the ncurses package
+
+@@ -78,6 +78,10 @@
+ library interfaces are not binary-compatible with the non-wide-character
+ version.
+
++If you configure using the --enable-reentrant option, a "t" is appended to the
++library names (e.g., libncursest.a) and the resulting libraries have a
++different binary interface which makes the ncurses interface more "opaque".
++
+ The ncurses libraries implement the curses API. The panel, menu and forms
+ libraries implement clones of the SVr4 panel, menu and forms APIs. The source
+ code for these lives in the `ncurses', `panel', `menu', and `form' directories
+@@ -122,8 +126,9 @@
+ tic -- terminfo source to binary compiler
+ infocmp -- terminfo binary to source decompiler/comparator
+ clear -- emits clear-screen for current terminal
++ tabs -- set tabs on a terminal
+ tput -- shell-script access to terminal capabilities.
+- toe -- table of entries utility
++ toe -- table of entries utility
+ tset -- terminal-initialization utility
+
+ The first two (tic and infocmp) are used for manipulating terminfo
+@@ -153,8 +158,10 @@
+ configuration scripts, porting, mods to adhere to XSI Curses in the
+ areas of background color, terminal modes. Also memory leak testing,
+ the wresize, default colors and key definition extensions and numerous
+- bug fixes (more than half of those enumerated in NEWS beginning with
+- the internal release 1.8.9).
++ bug fixes -- more than half of those enumerated in NEWS beginning with
++ the internal release 1.8.9, see
++
++ http://invisible-island.net/personal/changelogs.html
+
+ Florian La Roche (official maintainer for FSF's ncurses 4.2)
+ Beginning with release 4.2, ncurses is distributed under an MIT-style
+Index: README.MinGW
+Prereq: 1.5
+--- ncurses-5.9/README.MinGW 2011-02-26 16:57:17.000000000 +0000
++++ ncurses-5.9-20141206/README.MinGW 2012-09-22 17:46:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 2008-2011,2012 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written --
+ -- authorization. --
+ -------------------------------------------------------------------------------
+--- $Id: README.MinGW,v 1.5 2011/02/26 16:57:17 tom Exp $
++-- $Id: README.MinGW,v 1.9 2012/09/22 17:46:04 tom Exp $
+ -- Author: Juergen Pfeifer
+ -------------------------------------------------------------------------------
+
+@@ -39,7 +39,7 @@
+ To build ncurses for native Windows, you need the MinGW toolchain. The
+ original MinGW toolchain from the above site is only for 32-Bit Windows. As
+ Windows Server - and also regular workstations - are moving to 64-Bit, it
+-seems to be reasonable to have a toolchain that supports both architectures.
++seems to be reasonable to have a toolchain that supports both architectures.
+ I recommend to use the TDM gcc toolchain which you can find at
+ http://tdm-gcc.tdragon.net/download. Go to the download section and select
+ the bundle installer for tdm64 (MinGW-w64). This installs a multilib version
+@@ -47,7 +47,7 @@
+ versions. It also comes with a working pthread implementation.
+
+ The latest config and build scripts we use for MinGW have only been tested
+-for the gcc-4.4 compiler toolchain (or better).
++for the gcc-4.6.1 compiler toolchain (or better).
+
+ Using MinGW is a pragmatic decision, it's the easiest way to port this
+ heavily UNIX based sourcebase to native Windows. The goal is of course
+@@ -55,22 +55,13 @@
+ common traditional development environments on Windows, mainly with
+ Microsoft Visual Studio.
+
+-If you start a bash from the MSYS environment, please make sure that the
+-Microsoft Development tools are in your PATH right after the MinGW
+-tools. The LIB.EXE tool is the only one needed. You need this only if
+-you want to build DLLs that work with native Windows programs. If you
+-don't have any Microsoft Development tools on your machine, consider
+-at least to get the free "Visual C++ 2010 Express Edition".
+-It contains the LIB.EXE tool. You may also use this compiler to test
+-writing native Windows programs using the ncurses DLLs without using
+-MinGW then for writing apps.
+-
+-It is necessary to unset the TERM environment variable, to activate the
+-Windows console-driver.
++The TERM environment variable must be set specially to active the Windows
++console-driver. The driver checks if TERM is set to "#win32con" (explicit
++use) or if TERM is unset or empty (implicit).
+
+ Please also make sure that MSYS links to the correct directory containing
+ your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows
+-CMD.EXE command shell go to the MSYS root directory (most probably
++CMD.EXE command shell go to the MSYS root directory (most probably
+ C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw
+ that points to the MinGW toolchain directory. If not, delete the mingw
+ directory and use the mklink command (or the linkd.exe utility on older
+@@ -79,62 +70,60 @@
+ This code requires WindowsNT 5.1 or better, which means on the client
+ Windows XP or better, on the server Windows Server 2003 or better.
+
+-In order to build ncurses for the planned interop layer with .NET, we
+-recommend to use these options with configure
++I recommend using libtool to build ncurses on MinGW, because libtool
++knows exactly how to build dll's on Windows for use with MinGW.
++
++To build a modern but still small footprint ncurses that provides
++hooks for interop, I recommend using these options:
+
++ --with-libtool
+ --disable-home-terminfo
+- --enable-reentrant
++ --enable-database
++ --disable-termcap
+ --enable-sp-funcs
+ --enable-term-driver
+ --enable-interop
+- --with-pthread (if using TDM toolchain as recommended)
+
+-This is the configuration commandline as I'm using it at the moment:
++This is the configuration commandline as I'm using it at the moment (assuming
++environment variable MINGW_ROOT to hold the root directory name of your MinGW
++build):
+
+ ./configure \
+- --prefix=/mingw \
+- --without-cxx-binding \
++ --prefix=$MINGW_ROOT \
++ --with-cxx \
+ --without-ada \
+ --enable-warnings \
+ --enable-assertions \
+- --enable-reentrant \
+- --with-debug \
+- --with-normal \
+ --disable-home-terminfo \
++ --enable-database \
+ --enable-sp-funcs \
+ --enable-term-driver \
+ --enable-interop \
+- --with-pthread
++ --disable-termcap \
++ --with-progs \
++ --with-libtool \
++ --enable-pc-files \
++ --mandir=$MINGW_ROOT/share/man
+
+-If you are on a 64-Bit Windows system and want to build a 32-Bit version
+-of ncurses, you may use this commandline for configuration (when using
+-the TDM toolchain):
+-
+-CC="gcc -m32" LD="ld -m32" ./configure \
+- --prefix=/mingw \
+- --without-cxx-binding \
+- --without-ada \
+- --enable-warnings \
+- --enable-assertions \
+- --enable-reentrant \
+- --with-debug \
+- --with-normal \
+- --disable-home-terminfo \
+- --enable-sp-funcs \
+- --enable-term-driver \
+- --enable-interop \
+- --with-pthread
++Please note that it is also necessary to set this environment variable:
+
+-All the options above are - like the whole Windows support -
+-experimental.
++export PATH_SEPARATOR=";"
++
++in order to parse the terminfo paths correctly. Terminfo paths should
++always be separated by a seeeemicolon,even when running under MSYS.
+
+-In order to build the DLLs, after your regular make you must call
++To support regular expressions properly, ncurses under MinGW should be
++linked against the gnurx regex library, which must be built separately
++under MinGW. See
+
+- make dlls
++ ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libgnurx-src-2.5.zip
++
++All the options above are - like the whole Windows support -
++experimental.
+
+ A lot is still TODO, e.g.:
+
+- - Wide Character support
++ - Wide Character support (display is workable, but input untested)
+ The Win32Con driver should actually only use Unicode in the
+ future.
+ - Thread support (locking). If using TDM toolchain this is done by
+@@ -145,5 +134,5 @@
+ - Workarounds for MinGW's filesystem access are necessary to make infocmp
+ work (though tic works).
+
+-To support terminfo, we need to have an ioctl() simulation for the
+-serial and networked Terminals.
++To support terminfo, we would need to have an ioctl() simulation for the
++serial and networked terminals.
+Index: VERSION
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/VERSION 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1 @@
++5:0:9 5.9 20141206
+Index: aclocal.m4
+Prereq: 1.553
+--- ncurses-5.9/aclocal.m4 2011-03-31 23:35:38.000000000 +0000
++++ ncurses-5.9-20141206/aclocal.m4 2014-12-06 13:37:21.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++dnl Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ dnl *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a *
+ dnl copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: aclocal.m4,v 1.553 2011/03/31 23:35:38 tom Exp $
++dnl $Id: aclocal.m4,v 1.719 2014/12/06 13:37:21 tom Exp $
+ dnl Macros used in NCURSES auto-configuration script.
+ dnl
+ dnl These macros are maintained separately from NCURSES. The copyright on
+@@ -62,7 +62,33 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADA_INCLUDE_DIRS version: 6 updated: 2010/02/26 19:52:07
++dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
++dnl ------------------
++dnl Conditionally generate script according to whether we're using a given autoconf.
++dnl
++dnl $1 = version to compare against
++dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
++dnl $3 = code to use if AC_ACVERSION is older than $1.
++define([CF_ACVERSION_CHECK],
++[
++ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
++ifdef([m4_version_compare],
++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
++[CF_ACVERSION_COMPARE(
++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
++dnl --------------------
++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
++dnl MAJOR2, MINOR2, TERNARY2,
++dnl PRINTABLE2, not FOUND, FOUND)
++define([CF_ACVERSION_COMPARE],
++[ifelse(builtin([eval], [$2 < $5]), 1,
++[ifelse([$8], , ,[$8])],
++[ifelse([$9], , ,[$9])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
+ dnl -------------------
+ dnl Construct the list of include-options for the C programs in the Ada95
+ dnl binding.
+@@ -76,7 +102,7 @@
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ elif test "$includedir" != "/usr/include"; then
+ if test "$includedir" = '${prefix}/include' ; then
+- if test $prefix != /usr ; then
++ if test x$prefix != x/usr ; then
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ fi
+ else
+@@ -94,7 +120,7 @@
+ AC_SUBST(ADAFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
++dnl CF_ADD_CFLAGS version: 11 updated: 2014/07/22 05:32:57
+ dnl -------------
+ dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+ dnl The second parameter if given makes this macro verbose.
+@@ -119,7 +145,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -156,7 +182,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -283,15 +309,33 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
++dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
+ dnl -----------
+-dnl Add one or more libraries, used to enforce consistency.
++dnl Add one or more libraries, used to enforce consistency. Libraries are
++dnl prepended to an existing list, since their dependencies are assumed to
++dnl already exist in the list.
+ dnl
+ dnl $1 = libraries to add, with the "-l", etc.
+ dnl $2 = variable to update (default $LIBS)
+-AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
++AC_DEFUN([CF_ADD_LIBS],[
++cf_add_libs="$1"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++ifelse($2,,LIBS,[$2])="$cf_add_libs"
++])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
++dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
+ dnl ------------------
+ dnl Append to a search-list for a nonstandard header/lib-file
+ dnl $1 = the variable to return as result
+@@ -301,9 +345,9 @@
+ dnl $5 = a directory that we do not want $4 to match
+ AC_DEFUN([CF_ADD_SUBDIR_PATH],
+ [
+-test "$4" != "$5" && \
++test "x$4" != "x$5" && \
+ test -d "$4" && \
+-ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
++ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
+ test -n "$verbose" && echo " ... testing for $3-directories under $4"
+ test -d $4/$3 && $1="[$]$1 $4/$3"
+ test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
+@@ -313,76 +357,6 @@
+ }
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
+-dnl ----------------
+-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+-dnl in the sharutils 4.2 distribution.
+-AC_DEFUN([CF_ANSI_CC_CHECK],
+-[
+-AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
+-cf_cv_ansi_cc=no
+-cf_save_CFLAGS="$CFLAGS"
+-cf_save_CPPFLAGS="$CPPFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc
+-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+-for cf_arg in "-DCC_HAS_PROTOS" \
+- "" \
+- -qlanglvl=ansi \
+- -std1 \
+- -Ae \
+- "-Aa -D_HPUX_SOURCE" \
+- -Xc
+-do
+- CF_ADD_CFLAGS($cf_arg)
+- AC_TRY_COMPILE(
+-[
+-#ifndef CC_HAS_PROTOS
+-#if !defined(__STDC__) || (__STDC__ != 1)
+-choke me
+-#endif
+-#endif
+-],[
+- int test (int i, double x);
+- struct s1 {int (*f) (int a);};
+- struct s2 {int (*f) (double a);};],
+- [cf_cv_ansi_cc="$cf_arg"; break])
+-done
+-CFLAGS="$cf_save_CFLAGS"
+-CPPFLAGS="$cf_save_CPPFLAGS"
+-])
+-
+-if test "$cf_cv_ansi_cc" != "no"; then
+-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+- CF_ADD_CFLAGS($cf_cv_ansi_cc)
+-else
+- AC_DEFINE(CC_HAS_PROTOS)
+-fi
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
+-dnl ---------------
+-dnl For programs that must use an ANSI compiler, obtain compiler options that
+-dnl will make it recognize prototypes. We'll do preprocessor checks in other
+-dnl macros, since tools such as unproto can fake prototypes, but only part of
+-dnl the preprocessor.
+-AC_DEFUN([CF_ANSI_CC_REQD],
+-[AC_REQUIRE([CF_ANSI_CC_CHECK])
+-if test "$cf_cv_ansi_cc" = "no"; then
+- AC_MSG_ERROR(
+-[Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto])
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
+ dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
+ dnl --------------
+ dnl Allow user to disable a normally-on option.
+@@ -465,7 +439,7 @@
+ AC_SUBST(ARFLAGS)
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
++dnl CF_AWK_BIG_PRINTF version: 4 updated: 2011/10/30 17:09:50
+ dnl -----------------
+ dnl Check if awk can handle big strings using printf. Some older versions of
+ dnl awk choke on large strings passed via "%s".
+@@ -479,8 +453,8 @@
+ eval $2=no
+ ;;
+ *) #(vi
+- if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
+- | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
++ if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
++ | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
+ eval $2=yes
+ else
+ eval $2=no
+@@ -536,7 +510,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
++dnl CF_BOOL_SIZE version: 13 updated: 2013/04/13 18:03:21
+ dnl ------------
+ dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
+ dnl Don't bother looking for bool.h, since it's been deprecated.
+@@ -570,7 +544,7 @@
+
+ #endif
+
+-main()
++int main()
+ {
+ FILE *fp = fopen("cf_test.out", "w");
+ if (fp != 0) {
+@@ -604,7 +578,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
++dnl CF_BUILD_CC version: 7 updated: 2012/10/06 15:31:55
+ dnl -----------
+ dnl If we're cross-compiling, allow the user to override the tools and their
+ dnl options. The configure script is oriented toward identifying the host
+@@ -614,7 +588,8 @@
+ dnl $1 = default for $CPPFLAGS
+ dnl $2 = default for $LIBS
+ AC_DEFUN([CF_BUILD_CC],[
+-AC_REQUIRE([CF_PROG_EXT])
++CF_ACVERSION_CHECK(2.52,,
++ [AC_REQUIRE([CF_PROG_EXT])])
+ if test "$cross_compiling" = yes ; then
+
+ # defaults that we might want to override
+@@ -695,7 +670,33 @@
+ AC_SUBST(BUILD_OBJEXT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
++dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
++dnl ---------------
++dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
++dnl into CC. This will not help with broken scripts that wrap the compiler with
++dnl options, but eliminates a more common category of user confusion.
++AC_DEFUN([CF_CC_ENV_FLAGS],
++[
++# This should have been defined by AC_PROG_CC
++: ${CC:=cc}
++
++AC_MSG_CHECKING(\$CC variable)
++case "$CC" in #(vi
++*[[\ \ ]]-[[IUD]]*)
++ AC_MSG_RESULT(broken)
++ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
++ # humor him...
++ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
++ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
++ CF_ADD_CFLAGS($cf_flags)
++ ;;
++*)
++ AC_MSG_RESULT(ok)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CFG_DEFAULTS version: 10 updated: 2013/09/07 13:54:05
+ dnl ---------------
+ dnl Determine the default configuration into which we'll install ncurses. This
+ dnl can be overridden by the user's command-line options. There's two items to
+@@ -713,7 +714,7 @@
+ if test "x$prefix" = "xNONE" ; then
+ case "$cf_cv_system_name" in
+ # non-vendor systems don't have a conflict
+- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
+ prefix=/usr
+ ;;
+ *) prefix=$ac_default_prefix
+@@ -749,30 +750,51 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
++dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13
+ dnl ----------
+ dnl Check if the terminal-capability database functions are available. If not,
+ dnl ncurses has a much-reduced version.
+ AC_DEFUN([CF_CGETENT],[
+-AC_MSG_CHECKING(for terminal-capability database functions)
+-AC_CACHE_VAL(cf_cv_cgetent,[
++AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
+ AC_TRY_LINK([
+ #include <stdlib.h>],[
+ char temp[128];
+ char *buf = temp;
+ char *db_array = temp;
+- cgetent(&buf, /* int *, */ &db_array, "vt100");
++ cgetent(&buf, &db_array, "vt100");
+ cgetcap(buf, "tc", '=');
+ cgetmatch(buf, "tc");
+ ],
+ [cf_cv_cgetent=yes],
+ [cf_cv_cgetent=no])
+ ])
+-AC_MSG_RESULT($cf_cv_cgetent)
+-test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
++
++if test "$cf_cv_cgetent" = yes
++then
++ AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
++AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
++AC_TRY_LINK([
++#include <stdlib.h>],[
++ char temp[128];
++ char *buf = temp;
++#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
++ const char *db_array = temp;
++ cgetent(&buf, &db_array, "vt100");
++#endif
++ cgetcap(buf, "tc", '=');
++ cgetmatch(buf, "tc");
++ ],
++ [cf_cv_cgetent_const=yes],
++ [cf_cv_cgetent_const=no])
++])
++ if test "$cf_cv_cgetent_const" = yes
++ then
++ AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
++ fi
++fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
++dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
+ dnl --------------
+ dnl Check if we're accidentally using a cache from a different machine.
+ dnl Derive the system name, as a check for reusing the autoconf cache.
+@@ -795,7 +817,7 @@
+ system_name="`(hostname) 2>/dev/null`"
+ fi
+ fi
+-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
+ AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+@@ -908,7 +930,82 @@
+ fi
+ ])])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
++dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
++dnl ------------------------
++dnl Show the version of libtool
++dnl
++dnl Save the version in a cache variable - this is not entirely a good thing,
++dnl but the version string from libtool is very ugly, and for bug reports it
++dnl might be useful to have the original string.
++AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
++if test -n "$LIBTOOL" && test "$LIBTOOL" != none
++then
++ AC_MSG_CHECKING(version of $LIBTOOL)
++ CF_LIBTOOL_VERSION
++ AC_MSG_RESULT($cf_cv_libtool_version)
++ if test -z "$cf_cv_libtool_version" ; then
++ AC_MSG_ERROR(This is not GNU libtool)
++ fi
++else
++ AC_MSG_ERROR(GNU libtool has not been found)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05
++dnl ----------------
++dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
++AC_DEFUN([CF_CHECK_WCHAR_H],[
++AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
++AC_TRY_COMPILE(
++[
++#include <stdlib.h>
++#include <wchar.h>
++],[
++ wint_t foo = 0;
++ int bar = iswpunct(foo)],
++ [cf_cv_wchar_h_okay=yes],
++ [cf_cv_wchar_h_okay=no])])
++
++if test $cf_cv_wchar_h_okay = no
++then
++ CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
++dnl -----------------
++dnl Check if the given compiler is really clang. clang's C driver defines
++dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
++dnl not ignore some gcc options.
++dnl
++dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
++dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
++dnl the wrappers for gcc and g++ warnings.
++dnl
++dnl $1 = GCC (default) or GXX
++dnl $2 = CLANG_COMPILER (default)
++dnl $3 = CFLAGS (default) or CXXFLAGS
++AC_DEFUN([CF_CLANG_COMPILER],[
++ifelse([$2],,CLANG_COMPILER,[$2])=no
++
++if test "$ifelse([$1],,[$1],GCC)" = yes ; then
++ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
++ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
++ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
++ AC_TRY_COMPILE([],[
++#ifdef __clang__
++#else
++make an error
++#endif
++],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++],[])
++ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
++ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
++fi
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13
+ dnl -----------------
+ dnl Check if the C++ compiler accepts duplicate parameter initialization. This
+ dnl is a late feature for the standard and is not in some recent compilers
+@@ -932,7 +1029,7 @@
+ {
+ value = x;
+ }
+-void main() { }
++int main() { }
+ ],
+ [cf_cv_cpp_param_init=yes],
+ [cf_cv_cpp_param_init=no],
+@@ -940,10 +1037,10 @@
+ AC_LANG_RESTORE
+ ])
+ fi
+-test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
++test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
++dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
+ dnl ------------------
+ dnl Check if the C++ compiler accepts static_cast in generics. This appears to
+ dnl not be supported in g++ before 3.0
+@@ -965,7 +1062,7 @@
+ int begin_x = 0)
+ {
+ }
+-
++ NCursesPanel();
+ ~NCursesPanel();
+ };
+
+@@ -996,10 +1093,58 @@
+
+ fi
+
+-test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
++test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CXX_AR_FLAGS version: 1 updated: 2011/10/29 08:35:34
++dnl ---------------
++dnl Setup special archiver flags for given compilers.
++AC_DEFUN([CF_CXX_AR_FLAGS],[
++ CXX_AR='$(AR)'
++ CXX_ARFLAGS='$(ARFLAGS)'
++ case $cf_cv_system_name in #(vi
++ irix*) #(vi
++ if test "$GXX" != yes ; then
++ CXX_AR='$(CXX)'
++ CXX_ARFLAGS='-ar -o'
++ fi
++ ;;
++ sco3.2v5*) #(vi
++ CXXLDFLAGS="-u main"
++ ;;
++ solaris2*)
++ if test "$GXX" != yes ; then
++ CXX_AR='$(CXX)'
++ CXX_ARFLAGS='-xar -o'
++ fi
++ ;;
++ esac
++ AC_SUBST(CXXLDFLAGS)
++ AC_SUBST(CXX_AR)
++ AC_SUBST(CXX_ARFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_C_INLINE version: 3 updated: 2010/05/01 15:14:41
++dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
++dnl -------------------------
++dnl For c++, check if iostream uses "std::" namespace.
++AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
++AC_CHECK_HEADERS(iostream)
++if test x"$ac_cv_header_iostream" = xyes ; then
++ AC_MSG_CHECKING(if iostream uses std-namespace)
++ AC_TRY_COMPILE([
++#include <iostream>
++using std::endl;
++using std::cerr;],[
++cerr << "testing" << endl;
++],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
++ AC_MSG_RESULT($cf_iostream_namespace)
++ if test "$cf_iostream_namespace" = yes ; then
++ AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
++ fi
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_C_INLINE version: 4 updated: 2012/06/16 14:55:39
+ dnl -----------
+ dnl Check if the C compiler supports "inline".
+ dnl $1 is the name of a shell variable to set if inline is supported
+@@ -1012,6 +1157,9 @@
+ if test "$INTEL_COMPILER" = yes
+ then
+ :
++ elif test "$CLANG_COMPILER" = yes
++ then
++ :
+ elif test "$GCC" = yes
+ then
+ AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
+@@ -1057,7 +1205,55 @@
+ AC_SUBST(DIRS_TO_MAKE)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32
++dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
++dnl ---------------
++dnl You can always use "make -n" to see the actual options, but it's hard to
++dnl pick out/analyze warning messages when the compile-line is long.
++dnl
++dnl Sets:
++dnl ECHO_LT - symbol to control if libtool is verbose
++dnl ECHO_LD - symbol to prefix "cc -o" lines
++dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
++dnl SHOW_CC - symbol to put before explicit "cc -c" lines
++dnl ECHO_CC - symbol to put before any "cc" line
++dnl
++AC_DEFUN([CF_DISABLE_ECHO],[
++AC_MSG_CHECKING(if you want to see long compiling messages)
++CF_ARG_DISABLE(echo,
++ [ --disable-echo do not display "compiling" commands],
++ [
++ ECHO_LT='--silent'
++ ECHO_LD='@echo linking [$]@;'
++ RULE_CC='@echo compiling [$]<'
++ SHOW_CC='@echo compiling [$]@'
++ ECHO_CC='@'
++],[
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
++])
++AC_MSG_RESULT($enableval)
++AC_SUBST(ECHO_LT)
++AC_SUBST(ECHO_LD)
++AC_SUBST(RULE_CC)
++AC_SUBST(SHOW_CC)
++AC_SUBST(ECHO_CC)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
++dnl ------------------------
++AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
++AC_MSG_CHECKING(if we want to use GNAT projects)
++CF_ARG_DISABLE(gnat-projects,
++ [ --disable-gnat-projects test: disable GNAT projects even if usable],
++ [enable_gnat_projects=no],
++ [enable_gnat_projects=yes])
++AC_MSG_RESULT($enable_gnat_projects)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
+ dnl ----------------
+ dnl Combine no-leak checks with the libraries or tools that are used for the
+ dnl checks.
+@@ -1075,12 +1271,12 @@
+ AC_MSG_RESULT($with_no_leaks)
+
+ if test "$with_no_leaks" = yes ; then
+- AC_DEFINE(NO_LEAKS)
+- AC_DEFINE(YY_NO_LEAKS)
++ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
++ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_DISABLE_LIBTOOL_VERSION version: 1 updated: 2010/05/15 15:45:59
++dnl CF_DISABLE_LIBTOOL_VERSION version: 2 updated: 2014/11/15 19:05:29
+ dnl --------------------------
+ dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
+ dnl the older "-version-info" feature. The newer feature allows us to use
+@@ -1099,8 +1295,25 @@
+ LIBTOOL_VERSION="-version-number"
+ else
+ LIBTOOL_VERSION="-version-info"
++ case "x$VERSION" in #(vi
++ x) #(vi
++ AC_MSG_WARN(VERSION was not set)
++ ;;
++ x*.*.*)
++ ABI_VERSION="$VERSION"
++ CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
++ ;;
++ x*:*:*)
++ ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
++ CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
++ ;;
++ *)
++ AC_MSG_WARN(unexpected VERSION value: $VERSION)
++ ;;
++ esac
+ fi
+
++AC_SUBST(ABI_VERSION)
+ AC_SUBST(LIBTOOL_VERSION)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+@@ -1123,6 +1336,30 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
++dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
++dnl ------------------
++dnl This is the "--enable-pc-files" option, which is available if there is a
++dnl pkg-config configuration on the local machine.
++AC_DEFUN([CF_ENABLE_PC_FILES],[
++AC_REQUIRE([CF_PKG_CONFIG])
++AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
++
++if test "$PKG_CONFIG" != none ; then
++ AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
++ AC_ARG_ENABLE(pc-files,
++ [ --enable-pc-files generate and install .pc files for pkg-config],
++ [enable_pc_files=$enableval],
++ [enable_pc_files=no])
++ AC_MSG_RESULT($enable_pc_files)
++ if test "$enable_pc_files" != no
++ then
++ CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
++ fi
++else
++ enable_pc_files=no
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
+ dnl ---------------
+ dnl Check if the rpath option should be used, setting cache variable
+@@ -1137,6 +1374,37 @@
+ AC_MSG_RESULT($cf_cv_enable_rpath)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12
++dnl ----------------------
++dnl On a few platforms, the compiler and/or loader nags with untruthful
++dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
++dnl and implying that most uses of the recommended alternatives are correct.
++dnl
++dnl Factually speaking, no one has actually counted the number of uses of these
++dnl functions versus the total of incorrect uses. Samples of a few thousand
++dnl instances are meaningless compared to the hundreds of millions of lines of
++dnl existing C code.
++dnl
++dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
++dnl platforms, in implementations of varying quality. Likewise, snprintf is
++dnl standard - but evolved through phases, and older implementations are likely
++dnl to yield surprising results, as documented in manpages on various systems.
++AC_DEFUN([CF_ENABLE_STRING_HACKS],
++[
++AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
++AC_ARG_ENABLE(string-hacks,
++ [ --enable-string-hacks work around bogus compiler/loader warnings],
++ [with_string_hacks=$enableval],
++ [with_string_hacks=no])
++AC_MSG_RESULT($with_string_hacks)
++
++if test "x$with_string_hacks" = "xyes"; then
++ AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
++ AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
++ AC_CHECK_FUNCS( strlcat strlcpy snprintf )
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
+ dnl --------
+ dnl Check if 'errno' is declared in <errno.h>
+@@ -1145,7 +1413,7 @@
+ CF_CHECK_ERRNO(errno)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
++dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07
+ dnl ---------------
+ dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
+ dnl math.h and builtin.h, only for ncurses
+@@ -1154,11 +1422,17 @@
+ AC_MSG_CHECKING(for special defines needed for etip.h)
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ cf_result="none"
++
++# etip.h includes ncurses.h which includes ncurses_dll.h
++# But ncurses_dll.h is generated - fix here.
++test -d include || mkdir include
++test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h
++
+ for cf_math in "" MATH_H
+ do
+ for cf_excp in "" MATH_EXCEPTION
+ do
+- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
+ test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
+ test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
+ AC_TRY_COMPILE([
+@@ -1167,7 +1441,7 @@
+ test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
+ test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
+ cf_result="$cf_math $cf_excp"
+- break
++ break 2
+ ],[])
+ done
+ done
+@@ -1305,7 +1579,69 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02
++dnl CF_FIND_SUB_INCDIR version: 1 updated: 2014/04/12 16:47:01
++dnl ------------------
++dnl Find an include-directory with the given leaf-name. This is useful for
++dnl example with FreeBSD ports, which use this convention to distinguish
++dnl different versions of the same port.
++AC_DEFUN([CF_FIND_SUB_INCDIR],[
++ CF_SUBDIR_PATH(cf_search,$1,include)
++ for cf_item in $cf_search
++ do
++ case $cf_item in #(vi
++ */$1)
++ CF_ADD_INCDIR($cf_item)
++ ;;
++ esac
++ done
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FIND_SUB_LIBDIR version: 1 updated: 2014/04/12 16:47:01
++dnl ------------------
++dnl Find a library-directory with the given leaf-name. This is useful for
++dnl example with FreeBSD ports, which use this convention to distinguish
++dnl different versions of the same port.
++AC_DEFUN([CF_FIND_SUB_LIBDIR],[
++ CF_SUBDIR_PATH(cf_search,$1,lib)
++ for cf_item in $cf_search
++ do
++ case $cf_item in #(vi
++ */$1)
++ CF_ADD_LIBDIR($cf_item)
++ ;;
++ esac
++ done
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
++dnl -----------------
++dnl make ADAFLAGS consistent with CFLAGS
++AC_DEFUN([CF_FIXUP_ADAFLAGS],[
++ AC_MSG_CHECKING(optimization options for ADAFLAGS)
++ case "$CFLAGS" in
++ *-g*)
++ CF_ADD_ADAFLAGS(-g)
++ ;;
++ esac
++ case "$CFLAGS" in
++ *-O*)
++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
++ CF_ADD_ADAFLAGS($cf_O_flag)
++ ;;
++ esac
++ AC_MSG_RESULT($ADAFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
++dnl --------------
++dnl Forget that we saw the given tool.
++AC_DEFUN([CF_FORGET_TOOL],[
++unset ac_cv_prog_ac_ct_$1
++unset ac_ct_$1
++unset $1
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15
+ dnl -------------
+ dnl Test for dlsym() and related functions, as well as libdl.
+ dnl
+@@ -1332,7 +1668,7 @@
+ dlclose(obj);
+ }
+ }],[
+- AC_DEFINE(HAVE_LIBDL)],[
++ AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
+ AC_MSG_ERROR(Cannot link test program for libdl)])
+ AC_MSG_RESULT(ok)
+ else
+@@ -1340,7 +1676,7 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
++dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20
+ dnl ---------------
+ dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
+ dnl is found, add our own version of memmove to the list of objects.
+@@ -1365,13 +1701,13 @@
+ ])
+ ],[cf_cv_good_bcopy=no])
+ if test "$cf_cv_good_bcopy" = yes ; then
+- AC_DEFINE(USE_OK_BCOPY)
++ AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
+ else
+- AC_DEFINE(USE_MY_MEMMOVE)
++ AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
+ fi
+ ])])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
++dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13
+ dnl -----------------
+ dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
+ dnl AIX 4.x, provide a non-working version.
+@@ -1402,7 +1738,7 @@
+ [cf_cv_func_nanosleep=no],
+ [cf_cv_func_nanosleep=unknown])])
+
+-test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
++test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
+ ])
+ dnl ---------------------------------------------------------------------------
+ dnl CF_FUNC_OPENPTY version: 3 updated: 2010/05/29 16:31:02
+@@ -1433,14 +1769,17 @@
+ ])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
++dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07
+ dnl ------------
+ dnl See if the poll function really works. Some platforms have poll(), but
+ dnl it does not work for terminals or files.
+ AC_DEFUN([CF_FUNC_POLL],[
+ AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
+ AC_TRY_RUN([
++#include <stdlib.h>
+ #include <stdio.h>
++#include <unistd.h>
++#include <fcntl.h>
+ #ifdef HAVE_POLL_H
+ #include <poll.h>
+ #else
+@@ -1450,19 +1789,42 @@
+ struct pollfd myfds;
+ int ret;
+
+- myfds.fd = 0;
++ /* check for Darwin bug with respect to "devices" */
++ myfds.fd = open("/dev/null", 1); /* O_WRONLY */
++ if (myfds.fd < 0)
++ myfds.fd = 0;
+ myfds.events = POLLIN;
++ myfds.revents = 0;
+
+ ret = poll(&myfds, 1, 100);
+- ${cf_cv_main_return:-return}(ret != 0);
++
++ if (ret < 0 || (myfds.revents & POLLNVAL)) {
++ ret = -1;
++ } else {
++ int fd = 0;
++ if (!isatty(fd)) {
++ fd = open("/dev/tty", 2); /* O_RDWR */
++ }
++
++ if (fd >= 0) {
++ /* also check with standard input */
++ myfds.fd = fd;
++ myfds.events = POLLIN;
++ myfds.revents = 0;
++ ret = poll(&myfds, 1, 100);
++ } else {
++ ret = -1;
++ }
++ }
++ ${cf_cv_main_return:-return}(ret < 0);
+ }],
+ [cf_cv_working_poll=yes],
+ [cf_cv_working_poll=no],
+ [cf_cv_working_poll=unknown])])
+-test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
++test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
++dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
+ dnl ---------------
+ dnl Some old/broken variations define tcgetattr() only as a macro in
+ dnl termio(s).h
+@@ -1488,10 +1850,10 @@
+ tcgetattr(1, &foo);],
+ [cf_cv_have_tcgetattr=yes],
+ [cf_cv_have_tcgetattr=no])])
+-test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
++test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
++dnl CF_FUNC_VSSCANF version: 4 updated: 2012/10/06 17:56:13
+ dnl ---------------
+ dnl Check for vsscanf() function, which is in c9x but generally not in earlier
+ dnl versions of C. It is in the GNU C library, and can often be simulated by
+@@ -1529,14 +1891,14 @@
+ cf_cv_func_vsscanf=no])])])])
+
+ case $cf_cv_func_vsscanf in #(vi
+-vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
+-vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
+-_doscan) AC_DEFINE(HAVE__DOSCAN);;
++vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);; #(vi
++vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);; #(vi
++_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
+ esac
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
++dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
+ dnl -----------------
+ dnl Test for availability of useful gcc __attribute__ directives to quiet
+ dnl compiler warnings. Though useful, not all are supported -- and contrary
+@@ -1614,27 +1976,27 @@
+ test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
+ cat conftest.h >>confdefs.h
+ case $cf_attribute in #(vi
++ noreturn) #(vi
++ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
++ ;;
+ printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-EOF
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
++ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
+ fi
++ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
+ ;;
+ scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-EOF
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
++ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
+ fi
++ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
++ ;;
++ unused) #(vi
++ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
+ ;;
+ esac
+ fi
+@@ -1646,7 +2008,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
++dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
+ dnl --------------
+ dnl Find version of gcc
+ AC_DEFUN([CF_GCC_VERSION],[
+@@ -1654,13 +2016,13 @@
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+ AC_MSG_CHECKING(version of $CC)
+- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ test -z "$GCC_VERSION" && GCC_VERSION=unknown
+ AC_MSG_RESULT($GCC_VERSION)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
++dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35
+ dnl ---------------
+ dnl Check if the compiler supports useful warning options. There's a few that
+ dnl we don't use, simply because they're too noisy:
+@@ -1683,6 +2045,7 @@
+ [
+ AC_REQUIRE([CF_GCC_VERSION])
+ CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
++CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
+
+ cat > conftest.$ac_ext <<EOF
+ #line __oline__ "${as_me:-configure}"
+@@ -1731,10 +2094,14 @@
+ EXTRA_CFLAGS=
+ cf_warn_CONST=""
+ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
+ for cf_opt in W Wall \
+ Wbad-function-cast \
+ Wcast-align \
+ Wcast-qual \
++ Wdeclaration-after-statement \
++ Wextra \
+ Winline \
+ Wmissing-declarations \
+ Wmissing-prototypes \
+@@ -1742,7 +2109,7 @@
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+- Wundef $cf_warn_CONST $1
++ Wundef $cf_gcc_warnings $cf_warn_CONST $1
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+@@ -1758,6 +2125,13 @@
+ continue;;
+ esac
+ ;;
++ Wpointer-arith) #(vi
++ case $GCC_VERSION in
++ [[12]].*)
++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
++ continue;;
++ esac
++ ;;
+ esac
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+@@ -1769,6 +2143,43 @@
+ AC_SUBST(EXTRA_CFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
++dnl ----------------
++dnl Check for getopt's variables which are commonly defined in stdlib.h,
++dnl unistd.h or (nonstandard) in getopt.h
++AC_DEFUN([CF_GETOPT_HEADER],
++[
++AC_HAVE_HEADERS(unistd.h getopt.h)
++AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++AC_TRY_COMPILE([
++#include <$cf_header>],
++[int x = optind; char *y = optarg],
++[cf_cv_getopt_header=$cf_header
++ break])
++done
++])
++if test $cf_cv_getopt_header != none ; then
++ AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
++fi
++if test $cf_cv_getopt_header = getopt.h ; then
++ AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
++dnl -----------------
++AC_DEFUN([CF_GNATPREP_OPT_T],[
++AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
++cf_cv_gnatprep_opt_t=no
++gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
++])
++test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
++AC_SUBST(GNATPREP_OPTS)
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNAT_GENERICS version: 2 updated: 2011/03/23 20:24:41
+ dnl ----------------
+ AC_DEFUN([CF_GNAT_GENERICS],
+@@ -1799,53 +2210,26 @@
+ AC_SUBST(cf_generic_objects)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_PRAGMA_UNREF version: 1 updated: 2010/06/19 15:22:18
+-dnl --------------------
+-dnl Check if the gnat pragma "Unreferenced" works.
+-AC_DEFUN([CF_GNAT_PRAGMA_UNREF],[
+-AC_CACHE_CHECK(if GNAT pragma Unreferenced works,cf_cv_pragma_unreferenced,[
+-CF_GNAT_TRY_LINK([procedure conftest;],
+-[with Text_IO;
+-with GNAT.OS_Lib;
+-procedure conftest is
+- test : Integer;
+- pragma Unreferenced (test);
+-begin
+- test := 1;
+- Text_IO.Put ("Hello World");
+- Text_IO.New_Line;
+- GNAT.OS_Lib.OS_Exit (0);
+-end conftest;],
+- [cf_cv_pragma_unreferenced=yes],
+- [cf_cv_pragma_unreferenced=no])])
+-
+-# if the pragma is supported, use it (needed in the Trace code).
+-if test $cf_cv_pragma_unreferenced = yes ; then
+- PRAGMA_UNREF=TRUE
+-else
+- PRAGMA_UNREF=FALSE
+-fi
+-AC_SUBST(PRAGMA_UNREF)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_PROJECTS version: 2 updated: 2011/03/23 20:24:41
++dnl CF_GNAT_PROJECTS version: 7 updated: 2014/06/01 10:46:34
+ dnl ----------------
+ dnl GNAT projects are configured with ".gpr" project files.
+ dnl GNAT libraries are a further development, using the project feature.
+ AC_DEFUN([CF_GNAT_PROJECTS],
+ [
+ AC_REQUIRE([CF_GNAT_VERSION])
++AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
+
+ cf_gnat_libraries=no
+ cf_gnat_projects=no
+
++if test "$enable_gnat_projects" != no ; then
+ AC_MSG_CHECKING(if GNAT supports project files)
+ case $cf_gnat_version in #(vi
+ 3.[[0-9]]*) #(vi
+ ;;
+ *)
+ case $cf_cv_system_name in #(vi
+- cygwin*) #(vi
++ cygwin*|msys*) #(vi
+ ;;
+ *)
+ mkdir conftest.src conftest.bin conftest.lib
+@@ -1862,14 +2246,6 @@
+ for Library_Dir use External("BUILD_DIR");
+ Source_Dir := External ("SOURCE_DIR");
+ for Source_Dirs use (Source_Dir);
+- package Compiler is
+- for Default_Switches ("Ada") use
+- ("-g",
+- "-O2",
+- "-gnatafno",
+- "-gnatVa", -- All validity checks
+- "-gnatwa"); -- Activate all optional errors
+- end Compiler;
+ end Library;
+ CF_EOF
+ cat >>confpackage.ads <<CF_EOF
+@@ -1907,6 +2283,7 @@
+ ;;
+ esac
+ AC_MSG_RESULT($cf_gnat_projects)
++fi # enable_gnat_projects
+
+ if test $cf_gnat_projects = yes
+ then
+@@ -2040,7 +2417,7 @@
+ rm -rf conftest* *~conftest*
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GNAT_VERSION version: 17 updated: 2011/03/23 20:24:41
++dnl CF_GNAT_VERSION version: 18 updated: 2012/01/21 19:28:10
+ dnl ---------------
+ dnl Verify version of GNAT.
+ AC_DEFUN([CF_GNAT_VERSION],
+@@ -2052,7 +2429,7 @@
+ AC_MSG_RESULT($cf_gnat_version)
+
+ case $cf_gnat_version in #(vi
+-3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) #(vi
++3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]]) #(vi
+ cf_cv_prog_gnat_correct=yes
+ ;;
+ *)
+@@ -2092,7 +2469,7 @@
+ test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GPP_LIBRARY version: 10 updated: 2010/05/29 16:31:02
++dnl CF_GPP_LIBRARY version: 11 updated: 2012/10/06 17:56:13
+ dnl --------------
+ dnl If we're trying to use g++, test if libg++ is installed (a rather common
+ dnl problem :-). If we have the compiler but no library, we'll be able to
+@@ -2119,9 +2496,9 @@
+ [cf_cxx_library=yes
+ CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
+ if test "$cf_gpp_libname" = cpp ; then
+- AC_DEFINE(HAVE_GPP_BUILTIN_H)
++ AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
+ else
+- AC_DEFINE(HAVE_GXX_BUILTIN_H)
++ AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
+ fi],
+ [AC_TRY_LINK([
+ #include <builtin.h>
+@@ -2129,28 +2506,28 @@
+ [two_arg_error_handler_t foo2 = lib_error_handler],
+ [cf_cxx_library=yes
+ CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
+- AC_DEFINE(HAVE_BUILTIN_H)],
++ AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
+ [cf_cxx_library=no])])
+ LIBS="$cf_save"
+ AC_MSG_RESULT($cf_cxx_library)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GXX_VERSION version: 6 updated: 2010/10/23 15:44:18
++dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39
+ dnl --------------
+ dnl Check for version of g++
+ AC_DEFUN([CF_GXX_VERSION],[
+ AC_REQUIRE([AC_PROG_CPP])
+ GXX_VERSION=none
+ if test "$GXX" = yes; then
+- AC_MSG_CHECKING(version of g++)
++ AC_MSG_CHECKING(version of ${CXX:-g++})
+ GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ test -z "$GXX_VERSION" && GXX_VERSION=unknown
+ AC_MSG_RESULT($GXX_VERSION)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GXX_WARNINGS version: 6 updated: 2010/08/14 18:25:37
++dnl CF_GXX_WARNINGS version: 8 updated: 2013/11/16 14:27:53
+ dnl ---------------
+ dnl Check if the compiler supports useful warning options.
+ dnl
+@@ -2173,6 +2550,7 @@
+ [
+
+ CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
++CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
+
+ AC_REQUIRE([CF_GXX_VERSION])
+
+@@ -2238,16 +2616,17 @@
+ for cf_opt in \
+ Wabi \
+ fabi-version=0 \
++ Wextra \
++ Wignored-qualifiers \
++ Wlogical-op \
+ Woverloaded-virtual \
+ Wsign-promo \
+ Wsynth \
+ Wold-style-cast \
+ Wcast-align \
+ Wcast-qual \
+- Wmissing-prototypes \
+ Wpointer-arith \
+ Wshadow \
+- Wstrict-prototypes \
+ Wundef $cf_gxx_extra_warnings $1
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
+@@ -2266,7 +2645,7 @@
+ AC_SUBST(EXTRA_CXXFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_HASHED_DB version: 4 updated: 2010/05/29 16:31:02
++dnl CF_HASHED_DB version: 5 updated: 2014/04/12 16:47:01
+ dnl ------------
+ dnl Look for an instance of the Berkeley hashed database.
+ dnl
+@@ -2281,6 +2660,16 @@
+ if test -d "$1" ; then
+ CF_ADD_INCDIR($1/include)
+ CF_ADD_LIBDIR($1/lib)
++ else
++ case "$1" in #(vi
++ ./*|../*|/*)
++ AC_MSG_WARN(no such directory $1)
++ ;; #(vi
++ *)
++ CF_FIND_SUB_INCDIR($1)
++ CF_FIND_SUB_LIBDIR($1)
++ ;;
++ esac
+ fi
+ esac
+ ])
+@@ -2373,7 +2762,7 @@
+ ])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
++dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
+ dnl --------------------
+ dnl Given that we have the header file for hashed database, find the version
+ dnl information.
+@@ -2382,7 +2771,7 @@
+ AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
+ cf_cv_hashed_db_version=unknown
+
+-for cf_db_version in 1 2 3 4 5
++for cf_db_version in 1 2 3 4 5 6
+ do
+ CF_MSG_LOG(checking for db version $cf_db_version)
+ AC_TRY_COMPILE([
+@@ -2464,33 +2853,24 @@
+ [AC_DIVERT_HELP([$1])dnl
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
++dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
+ 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.
++dnl in the source directory or using '--srcdir=DIR' option.
+ AC_DEFUN([CF_INCLUDE_DIRS],
+ [
+-CPPFLAGS="$CPPFLAGS -I. -I../include"
+ if test "$srcdir" != "."; then
+- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
++ 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
++CPPFLAGS="-I../include $CPPFLAGS"
++if test "$srcdir" != "."; then
++ CPPFLAGS="-I\${srcdir} $CPPFLAGS"
+ fi
++CPPFLAGS="-I. $CPPFLAGS"
+ AC_SUBST(CPPFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
++dnl CF_INTEL_COMPILER version: 6 updated: 2014/03/17 13:13:07
+ dnl -----------------
+ dnl Check if the given compiler is really the Intel compiler for Linux. It
+ dnl tries to imitate gcc, but does not return an error when it finds a mismatch
+@@ -2504,6 +2884,7 @@
+ dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
+ dnl $3 = CFLAGS (default) or CXXFLAGS
+ AC_DEFUN([CF_INTEL_COMPILER],[
++AC_REQUIRE([AC_CANONICAL_HOST])
+ ifelse([$2],,INTEL_COMPILER,[$2])=no
+
+ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
+@@ -2518,7 +2899,7 @@
+ make an error
+ #endif
+ ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
+ ],[])
+ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
+ AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
+@@ -2527,7 +2908,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
++dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
+ dnl ----------
+ dnl Check if we have either a function or macro for 'isascii()'.
+ AC_DEFUN([CF_ISASCII],
+@@ -2539,10 +2920,10 @@
+ [cf_cv_have_isascii=no])
+ ])dnl
+ AC_MSG_RESULT($cf_cv_have_isascii)
+-test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
++test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
++dnl CF_LARGEFILE version: 8 updated: 2012/10/06 08:57:51
+ dnl ------------
+ dnl Add checks for large file support.
+ AC_DEFUN([CF_LARGEFILE],[
+@@ -2576,12 +2957,12 @@
+ [cf_cv_struct_dirent64=yes],
+ [cf_cv_struct_dirent64=no])
+ ])
+- test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
++ test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
+ fi
+ ])
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LDFLAGS_STATIC version: 8 updated: 2010/10/23 14:39:56
++dnl CF_LDFLAGS_STATIC version: 10 updated: 2011/09/24 12:51:48
+ dnl -----------------
+ dnl Check for compiler/linker flags used to temporarily force usage of static
+ dnl libraries. This depends on the compiler and platform. Use this to help
+@@ -2602,7 +2983,7 @@
+ esac
+ else
+ case $cf_cv_system_name in #(
+- aix[[456]]*) #( from ld manpage
++ aix[[4-7]]*) #( from ld manpage
+ LDFLAGS_STATIC=-bstatic
+ LDFLAGS_SHARED=-bdynamic
+ ;;
+@@ -2652,7 +3033,17 @@
+ int cf_ldflags_static(FILE *fp);
+ ],[
+ return cf_ldflags_static(stdin);
+-],[cf_ldflags_static=yes],[cf_ldflags_static=no])
++],[
++ # some linkers simply ignore the -dynamic
++ case x`file conftest$ac_exeext 2>/dev/null` in #(vi
++ *static*) # (vi
++ cf_ldflags_static=no
++ ;;
++ *)
++ cf_ldflags_static=yes
++ ;;
++ esac
++],[cf_ldflags_static=no])
+
+ rm -f libconftest.*
+ LIBS="$cf_save_LIBS"
+@@ -2673,7 +3064,7 @@
+ AC_SUBST(LDFLAGS_SHARED)
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LD_RPATH_OPT version: 3 updated: 2010/06/02 05:03:05
++dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
+ dnl ---------------
+ dnl For the given system and compiler, find the compiler flags to pass to the
+ dnl loader to use the "rpath" feature.
+@@ -2694,10 +3085,10 @@
+ linux*|gnu*|k*bsd*-gnu) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-openbsd[[2-9]].*) #(vi
++openbsd[[2-9]].*|mirbsd*) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-freebsd*) #(vi
++dragonfly*|freebsd*) #(vi
+ LD_RPATH_OPT="-rpath "
+ ;;
+ netbsd*) #(vi
+@@ -2756,11 +3147,23 @@
+ $1="$cf_library_path_list [$]$1"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
++dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
++dnl ------------------
++AC_DEFUN([CF_LIBTOOL_VERSION],[
++if test -n "$LIBTOOL" && test "$LIBTOOL" != none
++then
++ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
++else
++ cf_cv_libtool_version=
++fi
++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_LIB_PREFIX version: 9 updated: 2012/01/21 19:28:10
+ dnl -------------
+ dnl Compute the library-prefix for the given host system
+ dnl $1 = variable to set
+-AC_DEFUN([CF_LIB_PREFIX],
++define([CF_LIB_PREFIX],
+ [
+ case $cf_cv_system_name in #(vi
+ OS/2*|os2*) #(vi
+@@ -2773,11 +3176,11 @@
+ AC_SUBST(LIB_PREFIX)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_RULES version: 61 updated: 2010/10/23 16:10:30
++dnl CF_LIB_RULES version: 75 updated: 2014/09/20 20:16:32
+ dnl ------------
+ dnl Append definitions and rules for the given models to the subdirectory
+ dnl Makefiles, and the recursion rule for the top-level Makefile. If the
+-dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
++dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
+ dnl the corresponding makefile to list the models that we'll generate.
+ dnl
+ dnl For shared libraries, make a list of symbolic links to construct when
+@@ -2786,15 +3189,19 @@
+ dnl lib<name>.so ->
+ dnl lib<name>.so.<major> ->
+ dnl lib<name>.so.<maj>.<minor>
++dnl
++dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
+ AC_DEFUN([CF_LIB_RULES],
+ [
+-CF_LIB_PREFIX(cf_prefix)
++cf_prefix=$LIB_PREFIX
+ AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
+
+-if test $cf_cv_shlib_version = cygdll ; then
++case $cf_cv_shlib_version in #(vi
++cygdll|msysdll|mingw)
+ TINFO_NAME=$TINFO_ARG_SUFFIX
+ TINFO_SUFFIX=.dll
+-fi
++ ;;
++esac
+
+ if test -n "$TINFO_SUFFIX" ; then
+ case $TINFO_SUFFIX in
+@@ -2820,79 +3227,78 @@
+ elif test -f $srcdir/$cf_dir/modules; then
+
+ SHARED_LIB=
+- LIBS_TO_MAKE=
++ Libs_To_Make=
+ for cf_item in $cf_LIST_MODELS
+ do
+ CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
++ cf_libname=$cf_dir
++ test "$cf_dir" = c++ && cf_libname=ncurses++
+ if test $cf_item = shared ; then
+- if test "$cf_cv_do_symlinks" = yes ; then
+- case "$cf_cv_shlib_version" in #(vi
+- rel) #(vi
+- case "$cf_cv_system_name" in #(vi
+- darwin*)
+- case .${LIB_SUFFIX} in
+- .tw*)
+- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
+- cf_suffix=tw'.${REL_VERSION}'"$cf_suffix"
+- ;;
+- .t*)
+- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
+- cf_suffix=t'.${REL_VERSION}'"$cf_suffix"
+- ;;
+- .w*)
+- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+- cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
++ if test -n "${LIB_SUFFIX}"
++ then
++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
++ else
++ cf_shared_suffix="$cf_suffix"
++ fi
++ if test "$cf_cv_do_symlinks" = yes ; then
++ cf_version_name=
++
++ case "$cf_cv_shlib_version" in #(vi
++ rel) #(vi
++ cf_version_name=REL_VERSION
+ ;;
+- *)
+- cf_suffix='.${REL_VERSION}'"$cf_suffix"
++ abi)
++ cf_version_name=ABI_VERSION
+ ;;
+ esac
+- ;; #(vi
+- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
+- esac
+- ;;
+- abi)
+- case "$cf_cv_system_name" in #(vi
+- darwin*)
+- case .${LIB_SUFFIX} in
+- .tw*)
+- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
+- cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- .t*)
+- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
+- cf_suffix=t'.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- .w*)
+- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- *)
+- cf_suffix='.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- esac
+- ;; #(vi
+- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
+- esac
++
++ if test -n "$cf_version_name"
++ then
++ case "$cf_cv_system_name" in #(vi
++ darwin*)
++ # "w", etc?
++ cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
++ ;; #(vi
++ *)
++ cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
++ ;;
++ esac
++ fi
++ if test -n "${LIB_SUFFIX}"
++ then
++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
++ else
++ cf_shared_suffix="$cf_suffix"
++ fi
++ fi
++ # cygwin needs import library, and has unique naming convention
++ # use autodetected ${cf_prefix} for import lib and static lib, but
++ # use 'cyg' prefix for shared lib.
++ case $cf_cv_shlib_version in #(vi
++ cygdll) #(vi
++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
++ Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}"
++ continue
++ ;;
++ msysdll) #(vi
++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
++ Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}"
++ continue
++ ;;
++ mingw)
++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
++ Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}"
++ continue
+ ;;
+ esac
+ fi
+- # cygwin needs import library, and has unique naming convention
+- # use autodetected ${cf_prefix} for import lib and static lib, but
+- # use 'cyg' prefix for shared lib.
+- if test $cf_cv_shlib_version = cygdll ; then
+- cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
+- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
+- continue
+- fi
+- fi
+- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
++ Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}"
+ done
+
+ if test $cf_dir = ncurses ; then
+ cf_subsets="$LIB_SUBSETS"
+ cf_r_parts="$cf_subsets"
+- cf_liblist="$LIBS_TO_MAKE"
++ cf_liblist="$Libs_To_Make"
+
+ while test -n "$cf_r_parts"
+ do
+@@ -2912,7 +3318,7 @@
+ ;;
+ esac
+ if test -n "$cf_item"; then
+- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
++ Libs_To_Make="$cf_item $Libs_To_Make"
+ fi
+ else
+ break
+@@ -2922,13 +3328,40 @@
+ cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
+ fi
+
+- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
++ if test $cf_dir = c++; then
++ if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
++ cf_list=
++ for cf_item in $Libs_To_Make
++ do
++ case $cf_item in
++ *.a)
++ ;;
++ *)
++ cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
++ ;;
++ esac
++ for cf_test in $cf_list
++ do
++ if test "$cf_test" = "$cf_item"
++ then
++ cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
++ cf_item=
++ break
++ fi
++ done
++ test -n "$cf_item" && cf_list="$cf_list $cf_item"
++ done
++ Libs_To_Make="$cf_list"
++ fi
++ fi
++
++ sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
+ -e "s%@SHARED_LIB@%$SHARED_LIB%" \
+ $cf_dir/Makefile >$cf_dir/Makefile.out
+ mv $cf_dir/Makefile.out $cf_dir/Makefile
+
+ $AWK -f $srcdir/mk-0th.awk \
+- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
++ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
+ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+
+ for cf_subset in $cf_subsets
+@@ -2936,8 +3369,23 @@
+ cf_subdirs=
+ for cf_item in $cf_LIST_MODELS
+ do
++
+ echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
+ CF_UPPER(cf_ITEM,$cf_item)
++
++ CXX_MODEL=$cf_ITEM
++ if test "$CXX_MODEL" = SHARED; then
++ case $cf_cv_shlib_version in #(vi
++ cygdll|msysdll|mingw) #(vi
++ test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
++ with_shared_cxx=yes
++ ;;
++ *)
++ test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
++ ;;
++ esac
++ fi
++
+ CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
+ CF_OBJ_SUBDIR($cf_item,cf_subdir)
+
+@@ -2955,6 +3403,8 @@
+ cf_libname=$TICS_LIB_SUFFIX
+ ;;
+ esac
++ elif test $cf_dir = c++ ; then
++ cf_libname=ncurses++$LIB_SUFFIX
+ else
+ cf_libname=${cf_libname}$LIB_SUFFIX
+ fi
+@@ -3006,10 +3456,12 @@
+ name=${cf_libname}${cf_dir_suffix} \
+ traces=$LIB_TRACING \
+ MODEL=$cf_ITEM \
++ CXX_MODEL=$CXX_MODEL \
+ model=$cf_subdir \
+ prefix=$cf_prefix \
+ suffix=$cf_suffix \
+ subset=$cf_subset \
++ driver=$cf_cv_term_driver \
+ SymLink="$LN_S" \
+ TermlibRoot=$TINFO_NAME \
+ TermlibSuffix=$TINFO_SUFFIX \
+@@ -3048,7 +3500,7 @@
+ done
+ fi
+
+- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >>Makefile
+ done
+
+ for cf_dir in $SRC_SUBDIRS
+@@ -3063,7 +3515,7 @@
+ echo 'libs \' >> Makefile
+ echo 'install.libs \' >> Makefile
+ echo 'uninstall.libs ::' >> Makefile
+- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@' >> Makefile
+ ;;
+ esac
+ fi
+@@ -3086,7 +3538,7 @@
+ uninstall.libs \\
+ install.$cf_dir \\
+ uninstall.$cf_dir ::
+- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
++ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
+ CF_EOF
+ elif test -f $srcdir/$cf_dir/headers; then
+ cat >> Makefile <<CF_EOF
+@@ -3096,24 +3548,32 @@
+ uninstall.libs \\
+ install.includes \\
+ uninstall.includes ::
+- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
++ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \[$]@
+ CF_EOF
+ fi
+ done
+
++if test "x$cf_with_db_install" = xyes; then
+ cat >> Makefile <<CF_EOF
+
+ install.libs uninstall.libs \\
+ install.data uninstall.data ::
+-$MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
++$MAKE_TERMINFO cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
++CF_EOF
++else
++cat >> Makefile <<CF_EOF
++
++install.libs uninstall.libs ::
++ cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@
+ CF_EOF
++fi
+
+ if test "x$cf_with_manpages" = xyes; then
+ cat >> Makefile <<CF_EOF
+
+ install.man \\
+ uninstall.man ::
+- cd man && \${MAKE} \${CF_MFLAGS} \[$]@
++ cd man && \${MAKE} \${TOP_MFLAGS} \[$]@
+ CF_EOF
+ fi
+
+@@ -3134,7 +3594,7 @@
+
+ install.man \\
+ uninstall.man ::
+- cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
++ cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@
+ CF_EOF
+ fi
+ fi
+@@ -3252,7 +3712,7 @@
+ fi
+ fi
+ done
+-AC_SUBST(LIBS_TO_MAKE)
++AC_SUBST(Libs_To_Make)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
+@@ -3292,7 +3752,7 @@
+ ])
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
++dnl CF_LIB_SUFFIX version: 23 updated: 2014/06/21 17:47:12
+ dnl -------------
+ dnl Compute the library file-suffix from the given model name
+ dnl $1 = model name
+@@ -3301,31 +3761,26 @@
+ dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
+ AC_DEFUN([CF_LIB_SUFFIX],
+ [
+- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
+- case $1 in #(vi
+- libtool) #(vi
++ case X$1 in #(vi
++ Xlibtool) #(vi
+ $2='.la'
+ $3=[$]$2
+ ;;
+- normal) #(vi
+- $2='.a'
+- $3=[$]$2
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ $2='_g.a'
+ $3=[$]$2
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ $2='_p.a'
+ $3=[$]$2
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[[56]]*) #(vi
+- $2='.a'
++ aix[[5-7]]*) #(vi
++ $2='.so'
+ $3=[$]$2
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ $2='.dll'
+ $3='.dll.a'
+ ;;
+@@ -3345,10 +3800,16 @@
+ ;;
+ esac
+ ;;
+- *) $2='.so'
++ *) #(vi
++ $2='.so'
+ $3=[$]$2
+ ;;
+ esac
++ ;;
++ *)
++ $2='.a'
++ $3=[$]$2
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
+ test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
+@@ -3372,7 +3833,7 @@
+ test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
++dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
+ dnl ----------------
+ dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
+ dnl only data (i.e., no functions), for example NeXT. On those systems we'll
+@@ -3429,13 +3890,13 @@
+ AC_MSG_RESULT($cf_cv_link_dataonly)
+
+ if test "$cf_cv_link_dataonly" = no ; then
+- AC_DEFINE(BROKEN_LINKER)
++ AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
+ BROKEN_LINKER=1
+ fi
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
++dnl CF_LINK_FUNCS version: 8 updated: 2012/10/06 17:56:13
+ 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.
+@@ -3487,24 +3948,12 @@
+ 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)
++ test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
++ test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
+-dnl --------------
+-dnl Check if a return from main to the shell actually returns the same exit
+-dnl code. This is true for almost any POSIX environment.
+-dnl
+-dnl Some very old environments did not flush stdout, etc., on an exit. That
+-dnl would be a useful case to test for also.
+-AC_DEFUN([CF_MAIN_RETURN],
+-[
+-cf_cv_main_return=return
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46
++dnl CF_MAKEFLAGS version: 15 updated: 2014/05/10 16:43:23
+ 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.
+@@ -3523,7 +3972,7 @@
+ CF_EOF
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ ]]*$,,'`
+ case "$cf_result" in
+- .*k)
++ .*k|.*kw)
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
+ case "$cf_result" in
+ .*CC=*) cf_cv_makeflags=
+@@ -3799,7 +4248,7 @@
+ AC_MSG_RESULT($MANPAGE_TBL)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MAN_PAGES version: 39 updated: 2010/10/23 15:44:18
++dnl CF_MAN_PAGES version: 43 updated: 2013/02/09 12:53: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
+@@ -3856,6 +4305,7 @@
+ # this script is generated by the configure-script CF_MAN_PAGES macro.
+
+ prefix="$cf_prefix"
++datarootdir="$datarootdir"
+ datadir="$datadir"
+
+ NCURSES_MAJOR="$NCURSES_MAJOR"
+@@ -3916,11 +4366,12 @@
+ if test ! -f $cf_man_alias ; then
+ cat >>$cf_man_alias <<-CF_EOF2
+ s,@DATADIR@,\$datadir,g
+- s,@TERMINFO@,\$TERMINFO,g
+- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
+- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
+- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
+- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
++ s,@TERMINFO@,\${TERMINFO:="no default value"},g
++ s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
++ s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
++ s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
++ s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
++ s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
+ CF_EOF
+ ifelse($1,,,[
+ for cf_name in $1
+@@ -3949,7 +4400,9 @@
+
+ if test "$MANPAGE_ALIASES" != no ; then
+ cat >>$cf_edit_man <<CF_EOF
+- aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
++ nCurses=ignore.3x
++ test $with_curses_h = yes && nCurses=ncurses.3x
++ aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u; test \$inalias = \$nCurses && echo curses\`
+ CF_EOF
+ fi
+
+@@ -3995,6 +4448,13 @@
+ fi
+ CF_EOF
+
++if test $with_overwrite != yes ; then
++cat >>$cf_edit_man <<CF_EOF
++ sed -e "/\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++CF_EOF
++fi
++
+ if test $with_curses_h != yes ; then
+ cat >>$cf_edit_man <<CF_EOF
+ sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
+@@ -4154,7 +4614,7 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
++dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05
+ dnl ----------------------
+ dnl Check if the file-system supports mixed-case filenames. If we're able to
+ dnl create a lowercase name and see it as uppercase, it doesn't support that.
+@@ -4163,7 +4623,7 @@
+ AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
+ if test "$cross_compiling" = yes ; then
+ case $target_alias in #(vi
+- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
+ cf_cv_mixedcase=no
+ ;;
+ *)
+@@ -4181,10 +4641,10 @@
+ rm -f conftest CONFTEST
+ fi
+ ])
+-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
++dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
+ dnl ----------
+ dnl Check for a working mkstemp. This creates two files, checks that they are
+ dnl successfully created and distinct (AmigaOS apparently fails on the last).
+@@ -4226,11 +4686,13 @@
+ }
+ ],[cf_cv_func_mkstemp=yes
+ ],[cf_cv_func_mkstemp=no
+-],[AC_CHECK_FUNC(mkstemp)
+-])
++],[cf_cv_func_mkstemp=maybe])
+ ])
++if test "x$cf_cv_func_mkstemp" = xmaybe ; then
++ AC_CHECK_FUNC(mkstemp)
++fi
+ if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
+- AC_DEFINE(HAVE_MKSTEMP)
++ AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+@@ -4258,14 +4720,14 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
++dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
+ dnl ------------------
+ dnl see CF_WITH_NO_LEAKS
+ AC_DEFUN([CF_NO_LEAKS_OPTION],[
+ AC_MSG_CHECKING(if you want to use $1 for testing)
+ AC_ARG_WITH($1,
+ [$2],
+- [AC_DEFINE($3)ifelse([$4],,[
++ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
+ $4
+ ])
+ : ${with_cflags:=-g}
+@@ -4306,7 +4768,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
++dnl CF_OBJ_SUBDIR version: 6 updated: 2013/09/07 14:06:10
+ dnl -------------
+ dnl Compute the object-directory name from the given model name
+ AC_DEFUN([CF_OBJ_SUBDIR],
+@@ -4318,7 +4780,7 @@
+ profile) $2='obj_p' ;;
+ shared)
+ case $cf_cv_system_name in #(vi
+- cygwin) #(vi
++ cygwin|msys) #(vi
+ $2='objects' ;;
+ *)
+ $2='obj_s' ;;
+@@ -4326,20 +4788,23 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
++dnl CF_PATHSEP version: 6 updated: 2012/09/29 18:38:12
+ dnl ----------
+-dnl Provide a value for the $PATH and similar separator
++dnl Provide a value for the $PATH and similar separator (or amend the value
++dnl as provided in autoconf 2.5x).
+ AC_DEFUN([CF_PATHSEP],
+ [
++ AC_MSG_CHECKING(for PATH separator)
+ case $cf_cv_system_name in
+ os2*) PATH_SEPARATOR=';' ;;
+- *) PATH_SEPARATOR=':' ;;
++ *) ${PATH_SEPARATOR:=':'} ;;
+ esac
+ ifelse([$1],,,[$1=$PATH_SEPARATOR])
+ AC_SUBST(PATH_SEPARATOR)
++ AC_MSG_RESULT($PATH_SEPARATOR)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
++dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
+ dnl --------------
+ dnl Check the argument to see that it looks like a pathname. Rewrite it if it
+ dnl begins with one of the prefix/exec_prefix variables, and then again if the
+@@ -4359,7 +4824,7 @@
+ ;;
+ .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
+ ;;
+-.\[$]{*prefix}*) #(vi
++.\[$]{*prefix}*|.\[$]{*dir}*) #(vi
+ eval $1="[$]$1"
+ case ".[$]$1" in #(vi
+ .NONE/*)
+@@ -4376,7 +4841,7 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
+ dnl -------------
+ dnl Check for the package-config program, unless disabled by command-line.
+ AC_DEFUN([CF_PKG_CONFIG],
+@@ -4393,7 +4858,9 @@
+ PKG_CONFIG=none
+ ;;
+ yes) #(vi
+- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
++ CF_ACVERSION_CHECK(2.52,
++ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
++ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
+ ;;
+ *)
+ PKG_CONFIG=$withval
+@@ -4554,6 +5021,19 @@
+ test -z "$AWK" && AC_MSG_ERROR(No awk program found)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
++dnl ----------
++dnl standard check for CC, plus followup sanity checks
++dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
++AC_DEFUN([CF_PROG_CC],[
++ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
++CF_GCC_VERSION
++CF_ACVERSION_CHECK(2.52,
++ [AC_PROG_CC_STDC],
++ [CF_ANSI_CC_REQD])
++CF_CC_ENV_FLAGS
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
+ dnl --------------
+ dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
+@@ -4593,31 +5073,6 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
+-dnl --------------
+-dnl Check if C (preprocessor) -U and -D options are processed in the order
+-dnl given rather than by type of option. Some compilers insist on apply all
+-dnl of the -U options after all of the -D options. Others allow mixing them,
+-dnl and may predefine symbols that conflict with those we define.
+-AC_DEFUN([CF_PROG_CC_U_D],
+-[
+-AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
+- cf_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+- AC_TRY_COMPILE([],[
+-#ifndef U_D_OPTIONS
+-make an undefined-error
+-#endif
+-#ifdef D_U_OPTIONS
+-make a defined-error
+-#endif
+- ],[
+- cf_cv_cc_u_d_options=yes],[
+- cf_cv_cc_u_d_options=no])
+- CPPFLAGS="$cf_save_CPPFLAGS"
+-])
+-])dnl
+-dnl ---------------------------------------------------------------------------
+ dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
+ dnl -------------
+ dnl AC_PROG_EGREP was introduced in autoconf 2.53.
+@@ -4633,32 +5088,7 @@
+ test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
+-dnl -----------
+-dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
+-AC_DEFUN([CF_PROG_EXT],
+-[
+-AC_REQUIRE([CF_CHECK_CACHE])
+-case $cf_cv_system_name in
+-os2*)
+- CFLAGS="$CFLAGS -Zmt"
+- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+- CXXFLAGS="$CXXFLAGS -Zmt"
+- # autoconf's macro sets -Zexe and suffix both, which conflict:w
+- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
+- ac_cv_exeext=.exe
+- ;;
+-esac
+-
+-AC_EXEEXT
+-AC_OBJEXT
+-
+-PROG_EXT="$EXEEXT"
+-AC_SUBST(PROG_EXT)
+-test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_GNAT version: 1 updated: 2010/06/19 15:22:18
++dnl CF_PROG_GNAT version: 2 updated: 2011/10/22 14:01:47
+ dnl ------------
+ dnl Check for gnatmake, ensure that it is complete.
+ AC_DEFUN([CF_PROG_GNAT],[
+@@ -4666,6 +5096,7 @@
+ AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
+ if test "$ac_cv_prog_gnat_exists" = no; then
+ cf_ada_make=
++ cf_cv_prog_gnat_correct=no
+ else
+ CF_GNAT_VERSION
+ AC_CHECK_PROG(M4_exists, m4, yes, no)
+@@ -4709,7 +5140,7 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
++dnl CF_PROG_LDCONFIG version: 3 updated: 2011/06/04 20:09:13
+ dnl ----------------
+ dnl Check for ldconfig, needed to fixup shared libraries that would be built
+ dnl and then used in the install.
+@@ -4718,7 +5149,7 @@
+ LDCONFIG=:
+ else
+ case "$cf_cv_system_name" in #(vi
+-dragonfly*|freebsd*) #(vi
++dragonfly*|mirbsd*|freebsd*) #(vi
+ test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
+ ;;
+ *) LDPATH=$PATH:/sbin:/usr/sbin
+@@ -4759,7 +5190,7 @@
+ test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_REGEX version: 8 updated: 2010/08/07 14:09:44
++dnl CF_REGEX version: 10 updated: 2012/10/04 20:12:20
+ dnl --------
+ dnl Attempt to determine if we've got one of the flavors of regular-expression
+ dnl code that we can support.
+@@ -4771,7 +5202,7 @@
+ cf_regex_libs="regex re"
+ case $host_os in #(vi
+ mingw*)
+- cf_regex_libs="regex.dll $cf_regex_libs"
++ cf_regex_libs="gnurx $cf_regex_libs"
+ ;;
+ esac
+
+@@ -4833,9 +5264,9 @@
+
+ case $cf_cv_regex_hdrs in #(vi
+ no) AC_MSG_WARN(no regular expression header found) ;; #(vi
+- regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
+- regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
+- regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
++ regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;; #(vi
++ regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;; #(vi
++ regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+@@ -4869,7 +5300,7 @@
+ $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_RPATH_HACK version: 9 updated: 2011/02/13 13:31:33
++dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
+ dnl -------------
+ AC_DEFUN([CF_RPATH_HACK],
+ [
+@@ -4886,8 +5317,8 @@
+
+ AC_TRY_LINK([#include <stdio.h>],
+ [printf("Hello");],
+- [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
+- cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`])
++ [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
+
+ # If we passed the link-test, but get a "not found" on a given library,
+ # this could be due to inept reconfiguration of gcc to make it only
+@@ -4920,6 +5351,8 @@
+ CF_RPATH_HACK_2(LIBS)
+
+ CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
++else
++ AC_MSG_RESULT(no)
+ fi
+ AC_SUBST(EXTRA_LDFLAGS)
+ ])dnl
+@@ -4984,18 +5417,19 @@
+ AC_SUBST(EXTRA_LDFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SHARED_OPTS version: 64 updated: 2010/06/05 16:51:16
++dnl CF_SHARED_OPTS version: 84 updated: 2013/11/03 06:26:10
+ dnl --------------
+ dnl --------------
+ dnl Attempt to determine the appropriate CC/LD options for creating a shared
+ dnl library.
+ dnl
+-dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
+-dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
+-dnl We avoid compiling-in a ../lib path for the shared library since that can
+-dnl lead to unexpected results at runtime.
+-dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
+-dnl are compiled in ../../lib
++dnl Notes:
++dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
++dnl the build-tree, i.e., by making use of the libraries that are compiled in
++dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
++dnl shared library since that can lead to unexpected results at runtime.
++dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
++dnl libraries are compiled in ../../lib
+ dnl
+ dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
+ dnl to install symbolic links to the rel/abi versions of shared libraries.
+@@ -5010,12 +5444,19 @@
+ dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
+ AC_DEFUN([CF_SHARED_OPTS],
+ [
+- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
+ AC_REQUIRE([CF_LD_RPATH_OPT])
++ RM_SHARED_OPTS=
+ LOCAL_LDFLAGS=
+ LOCAL_LDFLAGS2=
+ LD_SHARED_OPTS=
+ INSTALL_LIB="-m 644"
++ : ${rel_builddir:=.}
++
++ shlibdir=$libdir
++ AC_SUBST(shlibdir)
++
++ MAKE_DLLS="#"
++ AC_SUBST(MAKE_DLLS)
+
+ cf_cv_do_symlinks=no
+ cf_ld_rpath_opt=
+@@ -5040,6 +5481,7 @@
+ AC_MSG_RESULT($cf_cv_shlib_version)
+
+ cf_cv_rm_so_locs=no
++ cf_try_cflags=
+
+ # Some less-capable ports of gcc support only -fpic
+ CC_SHARED_OPTS=
+@@ -5059,10 +5501,14 @@
+ cf_cv_shlib_version_infix=no
+
+ case $cf_cv_system_name in #(vi
+- aix[[56]]*) #(vi
++ aix4.[3-9]*|aix[[5-7]]*) #(vi
+ if test "$GCC" = yes; then
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='$(CC) -shared'
++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
++ else
++ # CC_SHARED_OPTS='-qpic=large -G'
++ # perhaps "-bM:SRE -bnoentry -bexpall"
++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
+ fi
+ ;;
+ beos*) #(vi
+@@ -5070,9 +5516,12 @@
+ ;;
+ cygwin*) #(vi
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
+ cf_cv_shlib_version=cygdll
+ cf_cv_shlib_version_infix=cygdll
++ shlibdir=$bindir
++ MAKE_DLLS=
+ cat >mk_shared_lib.sh <<-CF_EOF
+ #!/bin/sh
+ SHARED_LIB=\[$]1
+@@ -5083,12 +5532,34 @@
+ ** SHARED_LIB \[$]SHARED_LIB
+ ** IMPORT_LIB \[$]IMPORT_LIB
+ EOF
+- exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ msys*) #(vi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cf_cv_shlib_version=msysdll
++ cf_cv_shlib_version_infix=msysdll
++ shlibdir=$bindir
++ MAKE_DLLS=
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\[$]1
++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \[$]SHARED_LIB
++ ** IMPORT_LIB \[$]IMPORT_LIB
++EOF
++ exec \[$]* -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
+ CF_EOF
+ chmod +x mk_shared_lib.sh
+ ;;
+ darwin*) #(vi
+- EXTRA_CFLAGS="-no-cpp-precomp"
++ cf_try_cflags="no-cpp-precomp"
+ CC_SHARED_OPTS="-dynamic"
+ MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+@@ -5102,6 +5573,14 @@
+ LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ fi
+ ;;
++ hpux[[7-8]]*) #(vi
++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='+Z'
++ fi
++ MK_SHARED_LIB='${LD} -b -o $[@]'
++ INSTALL_LIB="-m 555"
++ ;;
+ hpux*) #(vi
+ # (tested with gcc 2.7.2 -- I don't have c89)
+ if test "$GCC" = yes; then
+@@ -5115,9 +5594,19 @@
+ # readonly to exploit a quirk in the memory manager.
+ INSTALL_LIB="-m 555"
+ ;;
++ interix*)
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ if test "$cf_cv_shlib_version" = rel; then
++ cf_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
++ else
++ cf_shared_soname='`basename $@`'
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $@'
++ ;;
+ irix*) #(vi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ # tested with IRIX 5.2 and 'cc'.
+ if test "$GCC" != yes; then
+@@ -5134,18 +5623,45 @@
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
+ ;;
+- openbsd[[2-9]].*) #(vi
++ mingw*) #(vi
++ cf_cv_shlib_version=mingw
++ cf_cv_shlib_version_infix=mingw
++ shlibdir=$bindir
++ MAKE_DLLS=
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,--enable-auto-import"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\[$]1
++ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \[$]SHARED_LIB
++ ** IMPORT_LIB \[$]IMPORT_LIB
++EOF
++ exec \[$]* -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ openbsd[[2-9]].*|mirbsd*) #(vi
+ if test "$DFT_LWR_MODEL" = "shared" ; then
+ LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ CF_SHARED_SONAME
+@@ -5156,12 +5672,12 @@
+ MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+ ;;
+- freebsd*) #(vi
++ dragonfly*|freebsd*) #(vi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
+@@ -5171,7 +5687,7 @@
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ if test "$cf_cv_shlib_version" = auto; then
+ if test -f /usr/libexec/ld.elf_so; then
+ cf_cv_shlib_version=abi
+@@ -5182,7 +5698,7 @@
+ CF_SHARED_SONAME
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
+ else
+- MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $[@]'
+ fi
+ ;;
+ osf*|mls+*) #(vi
+@@ -5276,20 +5792,57 @@
+ ;;
+ esac
+
+- if test -n "$cf_ld_rpath_opt" ; then
+- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
++ if test -n "$cf_try_cflags"
++ then
++cat > conftest.$ac_ext <<EOF
++#line __oline__ "${as_me:-configure}"
++#include <stdio.h>
++int main(int argc, char *argv[[]])
++{
++ printf("hello\n");
++ return (argv[[argc-1]] == 0) ;
++}
++EOF
++ cf_save_CFLAGS="$CFLAGS"
++ for cf_opt in $cf_try_cflags
++ do
++ CFLAGS="$cf_save_CFLAGS -$cf_opt"
++ AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
++ if AC_TRY_EVAL(ac_compile); then
++ AC_MSG_RESULT(yes)
++ cf_save_CFLAGS="$CFLAGS"
++ else
++ AC_MSG_RESULT(no)
++ fi
++ done
++ CFLAGS="$cf_save_CFLAGS"
+ fi
+
++
++ # RPATH_LIST is a colon-separated list of directories
++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
++
++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
++
++ CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
++ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
++
+ AC_SUBST(CC_SHARED_OPTS)
+ AC_SUBST(LD_RPATH_OPT)
+ AC_SUBST(LD_SHARED_OPTS)
+ AC_SUBST(MK_SHARED_LIB)
++ AC_SUBST(RM_SHARED_OPTS)
++
+ AC_SUBST(LINK_PROGS)
+ AC_SUBST(LINK_TESTS)
++
+ AC_SUBST(EXTRA_LDFLAGS)
+ AC_SUBST(LOCAL_LDFLAGS)
+ AC_SUBST(LOCAL_LDFLAGS2)
++
+ AC_SUBST(INSTALL_LIB)
++ AC_SUBST(RPATH_LIST)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
+@@ -5369,7 +5922,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
++dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
+ dnl ---------------
+ dnl signal handler, but there are some gcc depedencies in that recommendation.
+ dnl Try anyway.
+@@ -5401,10 +5954,10 @@
+ done
+ ])
+ AC_MSG_RESULT($cf_cv_sig_atomic_t)
+-test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
++test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
++dnl CF_SIZECHANGE version: 9 updated: 2012/10/06 11:17:15
+ dnl -------------
+ dnl Check for definitions & structures needed for window size-changing
+ dnl FIXME: check that this works with "snake" (HP-UX 10.x)
+@@ -5465,7 +6018,7 @@
+ done
+ ])
+ if test "$cf_cv_sizechange" != no ; then
+- AC_DEFINE(HAVE_SIZECHANGE)
++ AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechar declarations are provided])
+ case $cf_cv_sizechange in #(vi
+ NEED*)
+ AC_DEFINE_UNQUOTED($cf_cv_sizechange )
+@@ -5474,7 +6027,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SRC_MODULES version: 21 updated: 2010/09/04 17:37:40
++dnl CF_SRC_MODULES version: 28 updated: 2014/09/20 20:16: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
+@@ -5497,6 +6050,7 @@
+ TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
+ fi
+
++PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}"
+ cf_cv_src_modules=
+ for cf_dir in $1
+ do
+@@ -5535,6 +6089,7 @@
+ TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
+ TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
+ fi
++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}"
+ fi
+ fi
+ done
+@@ -5561,11 +6116,20 @@
+ if test "x$cf_with_tests" != "xno" ; then
+ SRC_SUBDIRS="$SRC_SUBDIRS test"
+ fi
+-test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
+-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
++# always make this, to install the ncurses-config script
++SRC_SUBDIRS="$SRC_SUBDIRS misc"
++if test "$cf_with_cxx_binding" != no; then
++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}"
++ SRC_SUBDIRS="$SRC_SUBDIRS c++"
++fi
++
++test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
++test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
++
++AC_SUBST(PC_MODULES_TO_MAKE)
+
+ ADA_SUBDIRS=
+-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then
+ SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
+ ADA_SUBDIRS="gen src"
+ if test "x$cf_with_tests" != "xno" ; then
+@@ -5624,13 +6188,13 @@
+ AC_DEFUN([CF_STRIP_G_OPT],
+ [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
+ dnl -------------------
+ dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
+ dnl do this if we've found the sigaction function.
+-dnl
+-dnl If needed, define SVR4_ACTION.
+ AC_DEFUN([CF_STRUCT_SIGACTION],[
++AC_REQUIRE([CF_XOPEN_SOURCE])
++
+ if test "$ac_cv_func_sigaction" = yes; then
+ AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
+ AC_TRY_COMPILE([
+@@ -5645,22 +6209,24 @@
+ #include <signal.h>],
+ [struct sigaction act],
+ [sigact_bad=yes
+- AC_DEFINE(SVR4_ACTION)],
++ AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
+ [sigact_bad=unknown])])
+ AC_MSG_RESULT($sigact_bad)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
++dnl CF_STRUCT_TERMIOS version: 7 updated: 2012/10/06 17:56:13
+ dnl -----------------
+ dnl Some machines require _POSIX_SOURCE to completely define struct termios.
+-dnl If so, define SVR4_TERMIO
+ AC_DEFUN([CF_STRUCT_TERMIOS],[
++AC_REQUIRE([CF_XOPEN_SOURCE])
++
+ AC_CHECK_HEADERS( \
+ termio.h \
+ termios.h \
+ unistd.h \
+ )
++
+ if test "$ISC" = yes ; then
+ AC_CHECK_HEADERS( sys/termio.h )
+ fi
+@@ -5680,14 +6246,14 @@
+ #include <termios.h>],
+ [struct termios foo; int x = foo.c_iflag],
+ termios_bad=unknown,
+- termios_bad=yes AC_DEFINE(SVR4_TERMIO))
++ termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
+ ])
+ AC_MSG_RESULT($termios_bad)
+ fi
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
++dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
+ dnl --------------
+ dnl Construct a search-list for a nonstandard header/lib-file
+ dnl $1 = the variable to return as result
+@@ -5697,28 +6263,18 @@
+ [
+ $1=
+
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
+ CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
+-dnl --------
+-dnl Shorthand macro for substituting things that the user may override
+-dnl with an environment variable.
+-dnl
+-dnl $1 = long/descriptive name
+-dnl $2 = environment variable
+-dnl $3 = default value
+-AC_DEFUN([CF_SUBST],
+-[AC_CACHE_VAL(cf_cv_subst_$2,[
+-AC_MSG_CHECKING(for $1 (symbol $2))
+-CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
+-cf_cv_subst_$2=[$]$2
+-AC_MSG_RESULT([$]$2)
+-])
++
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ [$]HOME
++do
++ CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
++done
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
+@@ -5766,7 +6322,7 @@
+ AC_SUBST(cf_cv_type_of_bool)dnl
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
++dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07
+ dnl ------------------
+ dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
+ dnl older SCO configurations.
+@@ -5786,19 +6342,58 @@
+ [cf_cv_sys_time_select=no])
+ ])
+ AC_MSG_RESULT($cf_cv_sys_time_select)
+-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
++test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
++dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
+ dnl ---------------
+ dnl Define a top_builddir symbol, for applications that need an absolute path.
+ AC_DEFUN([CF_TOP_BUILDDIR],
+ [
+-top_builddir=`pwd`
++top_builddir=ifelse($1,,`pwd`,$1)
+ AC_SUBST(top_builddir)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
++dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
++dnl -------------------
++dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
++dnl can define it successfully.
++AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
++AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++],[
++#ifndef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
++ CPPFLAGS="$cf_save"
++ ])
++])
++
++if test "$cf_cv_xopen_source" != no ; then
++ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
++ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++ CF_ADD_CFLAGS($cf_temp_xopen_source)
++fi
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13
+ dnl ----------------
+ dnl Determine the type we should use for chtype (and attr_t, which is treated
+ dnl as the same thing). We want around 32 bits, so on most machines want a
+@@ -5847,10 +6442,10 @@
+ AC_MSG_RESULT($cf_cv_typeof_chtype)
+
+ AC_SUBST(cf_cv_typeof_chtype)
+-AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
++AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
++dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
+ dnl -----------------
+ dnl
+ AC_DEFUN([CF_TYPE_SIGACTION],
+@@ -5863,7 +6458,7 @@
+ [cf_cv_type_sigaction=yes],
+ [cf_cv_type_sigaction=no])])
+ AC_MSG_RESULT($cf_cv_type_sigaction)
+-test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
++test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
+@@ -5890,7 +6485,7 @@
+ $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
++dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
+ dnl -----------
+ dnl Check for multibyte support, and if not found, utf8 compatibility library
+ AC_DEFUN([CF_UTF8_LIB],
+@@ -5909,14 +6504,14 @@
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+ # ncurses/ncursesw:
+ if test "$cf_cv_utf8_lib" = "add-on" ; then
+- AC_DEFINE(HAVE_LIBUTF8_H)
++ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
+ CF_ADD_INCDIR($cf_cv_header_path_utf8)
+ CF_ADD_LIBDIR($cf_cv_library_path_utf8)
+ CF_ADD_LIBS($cf_cv_library_file_utf8)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
++dnl CF_VA_COPY version: 3 updated: 2012/10/06 11:17:15
+ dnl ----------
+ dnl check for va_copy, part of stdarg.h
+ dnl Also, workaround for glibc's __va_copy, by checking for both.
+@@ -5931,7 +6526,7 @@
+ cf_cv_have_va_copy=yes,
+ cf_cv_have_va_copy=no)])
+
+-test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
++test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
+
+ AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
+ AC_TRY_LINK([
+@@ -5943,7 +6538,7 @@
+ cf_cv_have___va_copy=yes,
+ cf_cv_have___va_copy=no)])
+
+-test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
++test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
+ ])
+ dnl ---------------------------------------------------------------------------
+ dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
+@@ -5954,7 +6549,95 @@
+ CF_MSG_LOG([$1])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
++dnl CF_VERSION_INFO version: 6 updated: 2013/06/16 10:25:53
++dnl ---------------
++dnl Define several useful symbols derived from the VERSION file. A separate
++dnl file is preferred to embedding the version numbers in various scripts.
++dnl (automake is a textbook-example of why the latter is a bad idea, but there
++dnl are others).
++dnl
++dnl The file contents are:
++dnl libtool-version release-version patch-version
++dnl or
++dnl release-version
++dnl where
++dnl libtool-version (see ?) consists of 3 integers separated by '.'
++dnl release-version consists of a major version and minor version
++dnl separated by '.', optionally followed by a patch-version
++dnl separated by '-'. The minor version need not be an
++dnl integer (but it is preferred).
++dnl patch-version is an integer in the form yyyymmdd, so ifdef's and
++dnl scripts can easily compare versions.
++dnl
++dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
++dnl simply extracts the first field using 'cut -f1'.
++dnl
++dnl Optional parameters:
++dnl $1 = internal name for package
++dnl $2 = external name for package
++AC_DEFUN([CF_VERSION_INFO],
++[
++if test -f $srcdir/VERSION ; then
++ AC_MSG_CHECKING(for package version)
++
++ # if there are not enough fields, cut returns the last one...
++ cf_field1=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
++ cf_field2=`sed -e '2,$d' $srcdir/VERSION|cut -f2`
++ cf_field3=`sed -e '2,$d' $srcdir/VERSION|cut -f3`
++
++ # this is how CF_BUNDLED_INTL uses $VERSION:
++ VERSION="$cf_field1"
++
++ VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
++ test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
++
++ VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
++ test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
++
++ AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
++
++ AC_MSG_CHECKING(for package patch date)
++ VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
++ case .$VERSION_PATCH in
++ .)
++ AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
++ ;;
++ .[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
++ ;;
++ *)
++ AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
++ ;;
++ esac
++ AC_MSG_RESULT($VERSION_PATCH)
++else
++ AC_MSG_ERROR(did not find $srcdir/VERSION)
++fi
++
++# show the actual data that we have for versions:
++CF_VERBOSE(ABI VERSION $VERSION)
++CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
++CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
++CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
++
++AC_SUBST(VERSION)
++AC_SUBST(VERSION_MAJOR)
++AC_SUBST(VERSION_MINOR)
++AC_SUBST(VERSION_PATCH)
++
++dnl if a package name is given, define its corresponding version info. We
++dnl need the package name to ensure that the defined symbols are unique.
++ifelse($1,,,[
++ cf_PACKAGE=$1
++ PACKAGE=ifelse($2,,$1,$2)
++ AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
++ AC_SUBST(PACKAGE)
++ CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
++ AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
++ AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
++])
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
+ dnl -------------
+ dnl Check if type wide-character type $1 is declared, and if so, which header
+ dnl file is needed. The second parameter is used to set a shell variable when
+@@ -5986,7 +6669,7 @@
+ [cf_cv_$1=unknown])])])
+
+ if test "$cf_cv_$1" = yes ; then
+- AC_DEFINE(NEED_WCHAR_H)
++ AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
+ NEED_WCHAR_H=1
+ fi
+
+@@ -6091,14 +6774,14 @@
+ AC_MSG_RESULT($ADA_OBJECTS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_ADA_SHAREDLIB version: 2 updated: 2010/06/26 17:35:58
++dnl CF_WITH_ADA_SHAREDLIB version: 4 updated: 2014/05/31 21:08:37
+ dnl ---------------------
+ dnl Command-line option to specify if an Ada95 shared-library should be built,
+ dnl and optionally what its soname should be.
+ AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
+ AC_MSG_CHECKING(if an Ada95 shared-library should be built)
+ AC_ARG_WITH(ada-sharedlib,
+- [ --with-ada-sharedlib=XX build Ada95 shared-library],
++ [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
+ [with_ada_sharedlib=$withval],
+ [with_ada_sharedlib=no])
+ AC_MSG_RESULT($with_ada_sharedlib)
+@@ -6149,7 +6832,33 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
++dnl CF_WITH_EXPORT_SYMS version: 2 updated: 2014/11/15 19:05:29
++dnl -------------------
++dnl Use this with libtool to specify the list of symbols that may be exported.
++dnl The input file contains one symbol per line; comments work with "#".
++dnl
++dnl $1 = basename of the ".sym" file (default $PACKAGE)
++AC_DEFUN([CF_WITH_EXPORT_SYMS],
++[
++AC_MSG_CHECKING(if exported-symbols file should be used)
++AC_ARG_WITH(export-syms,
++ [ --with-export-syms=XXX limit exported symbols using libtool],
++ [with_export_syms=$withval],
++ [with_export_syms=no])
++if test "x$with_export_syms" = xyes
++then
++ with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
++ AC_SUBST(PACKAGE)
++fi
++AC_MSG_RESULT($with_export_syms)
++if test "x$with_export_syms" != xno
++then
++ EXPORT_SYMS="$EXPORT_SYMS -export-symbols $with_export_syms"
++ AC_SUBST(EXPORT_SYMS)
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13
+ dnl -----------
+ dnl
+ dnl The option parameter (if neither yes/no) is assumed to be the name of
+@@ -6165,10 +6874,10 @@
+
+ if test "$with_gpm" != no ; then
+ AC_CHECK_HEADER(gpm.h,[
+- AC_DEFINE(HAVE_GPM_H)
++ AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
+ if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
+ CF_VERBOSE(assuming we really have GPM library)
+- AC_DEFINE(HAVE_LIBGPM)
++ AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
+ else
+ AC_CHECK_LIB(gpm,Gpm_Open,[:],[
+ AC_MSG_ERROR(Cannot link with GPM library)
+@@ -6182,7 +6891,7 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_LIBTOOL version: 26 updated: 2010/10/23 15:55:24
++dnl CF_WITH_LIBTOOL version: 31 updated: 2014/11/15 19:05:29
+ dnl ---------------
+ dnl Provide a configure option to incorporate libtool. Define several useful
+ dnl symbols for the makefile rules.
+@@ -6252,13 +6961,20 @@
+ CF_PATH_SYNTAX(with_libtool)
+ LIBTOOL=$with_libtool
+ else
+- AC_PATH_PROG(LIBTOOL,libtool)
++ AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
++ CF_LIBTOOL_VERSION
++ if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
++ then
++ CF_FORGET_TOOL(LIBTOOL)
++ AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
++ CF_LIBTOOL_VERSION
++ fi
+ fi
+ if test -z "$LIBTOOL" ; then
+ AC_MSG_ERROR(Cannot find libtool)
+ fi
+ ])dnl
+- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
++ LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
+ LIB_OBJECT='${OBJECTS:.o=.lo}'
+ LIB_SUFFIX=.la
+ LIB_CLEAN='${LIBTOOL} --mode=clean'
+@@ -6268,22 +6984,12 @@
+ LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
+ LIB_PREP=:
+
+- # Show the version of libtool
+- AC_MSG_CHECKING(version of libtool)
+-
+- # Save the version in a cache variable - this is not entirely a good
+- # thing, but the version string from libtool is very ugly, and for
+- # bug reports it might be useful to have the original string. "("
+- cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
+- AC_MSG_RESULT($cf_cv_libtool_version)
+- if test -z "$cf_cv_libtool_version" ; then
+- AC_MSG_ERROR(This is not GNU libtool)
+- fi
++ CF_CHECK_LIBTOOL_VERSION
+
+ # special hack to add -no-undefined (which libtool should do for itself)
+ LT_UNDEF=
+ case "$cf_cv_system_name" in #(vi
+- cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
++ cygwin*|msys*|mingw32*|uwin*|aix[[4-7]]) #(vi
+ LT_UNDEF=-no-undefined
+ ;;
+ esac
+@@ -6323,7 +7029,59 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18
++dnl CF_WITH_LIBTOOL_OPTS version: 3 updated: 2014/11/02 16:11:49
++dnl --------------------
++dnl Allow user to pass additional libtool options into the library creation
++dnl and link steps. The main use for this is to do something like
++dnl ./configure --with-libtool-opts=-static
++dnl to get the same behavior as automake-flavored
++dnl ./configure --enable-static
++AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
++AC_MSG_CHECKING(for additional libtool options)
++AC_ARG_WITH(libtool-opts,
++ [ --with-libtool-opts=XXX specify additional libtool options],
++ [with_libtool_opts=$withval],
++ [with_libtool_opts=no])
++AC_MSG_RESULT($with_libtool_opts)
++
++case .$with_libtool_opts in
++.yes|.no|.)
++ ;;
++*)
++ LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
++ ;;
++esac
++
++AC_SUBST(LIBTOOL_OPTS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
++dnl ------------------
++dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
++dnl "lib" prefix, e.g., because it used the dll naming convention.
++dnl
++dnl $1 = variable to set
++AC_DEFUN([CF_WITH_LIB_PREFIX],
++[
++AC_MSG_CHECKING(if you want to have a library-prefix)
++AC_ARG_WITH(lib-prefix,
++ [ --with-lib-prefix override library-prefix],
++ [with_lib_prefix=$withval],
++ [with_lib_prefix=auto])
++AC_MSG_RESULT($with_lib_prefix)
++
++if test $with_lib_prefix = auto
++then
++ CF_LIB_PREFIX($1)
++elif test $with_lib_prefix = no
++then
++ LIB_PREFIX=
++else
++ LIB_PREFIX=$with_lib_prefix
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19
+ dnl ------------
+ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
+ dnl defaulting to yes/no.
+@@ -6340,11 +7098,11 @@
+ if ifelse([$5],,true,[test -n "$5"]) ; then
+ CF_PATH_SYNTAX(withval)
+ fi
+-$3="$withval"
++eval $3="$withval"
+ AC_SUBST($3)dnl
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_PATHLIST version: 7 updated: 2010/10/23 16:10:30
++dnl CF_WITH_PATHLIST version: 9 updated: 2012/10/18 05:05:24
+ dnl ----------------
+ dnl Process an option specifying a list of colon-separated paths.
+ dnl
+@@ -6365,7 +7123,7 @@
+ for cf_src_path in $withval
+ do
+ CF_PATH_SYNTAX(cf_src_path)
+- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
+ cf_dst_path="${cf_dst_path}${cf_src_path}"
+ done
+ IFS="$ac_save_ifs"
+@@ -6381,12 +7139,65 @@
+ cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
+ ])
+
+-eval '$3="$cf_dst_path"'
++# This may use the prefix/exec_prefix symbols which will only yield "NONE"
++# so we have to check/work around. We do prefer the result of "eval"...
++eval cf_dst_eval="$cf_dst_path"
++case "x$cf_dst_eval" in #(vi
++xNONE*) #(vi
++ $3=$cf_dst_path
++ ;;
++*)
++ $3="$cf_dst_eval"
++ ;;
++esac
+ AC_SUBST($3)dnl
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_PTHREAD version: 3 updated: 2010/05/29 16:31:02
++dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47
++dnl -------------------------
++dnl Allow the choice of the pkg-config library directory to be overridden.
++AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
++if test "$PKG_CONFIG" != none ; then
++ AC_MSG_CHECKING(for $PKG_CONFIG library directory)
++ AC_ARG_WITH(pkg-config-libdir,
++ [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
++ [PKG_CONFIG_LIBDIR=$withval],
++ [PKG_CONFIG_LIBDIR=yes])
++
++ case x$PKG_CONFIG_LIBDIR in #(vi
++ x/*) #(vi
++ ;;
++ xyes) #(vi
++ # look for the library directory using the same prefix as the executable
++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
++ case x`(arch) 2>/dev/null` in #(vi
++ *64) #(vi
++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
++ do
++ if test -d $cf_config/pkgconfig
++ then
++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
++ break
++ fi
++ done
++ ;;
++ *)
++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
++ ;;
++ esac
++ ;;
++ *)
++ ;;
++ esac
++
++ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
++fi
++
++AC_SUBST(PKG_CONFIG_LIBDIR)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_WITH_PTHREAD version: 6 updated: 2012/10/06 17:41:51
+ dnl ---------------
+ dnl Check for POSIX thread library.
+ AC_DEFUN([CF_WITH_PTHREAD],
+@@ -6400,25 +7211,30 @@
+
+ if test "$with_pthread" != no ; then
+ AC_CHECK_HEADER(pthread.h,[
+- AC_DEFINE(HAVE_PTHREADS_H)
++ AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
+
+- AC_MSG_CHECKING(if we can link with the pthread library)
+- cf_save_LIBS="$LIBS"
+- CF_ADD_LIB(pthread)
+- AC_TRY_LINK([
++ for cf_lib_pthread in pthread c_r
++ do
++ AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
++ cf_save_LIBS="$LIBS"
++ CF_ADD_LIB($cf_lib_pthread)
++ AC_TRY_LINK([
+ #include <pthread.h>
+ ],[
+- int rc = pthread_create(0,0,0,0);
++ int rc = pthread_create(0,0,0,0);
++ int r2 = pthread_mutexattr_settype(0, 0);
+ ],[with_pthread=yes],[with_pthread=no])
+- LIBS="$cf_save_LIBS"
+- AC_MSG_RESULT($with_pthread)
++ LIBS="$cf_save_LIBS"
++ AC_MSG_RESULT($with_pthread)
++ test "$with_pthread" = yes && break
++ done
+
+- if test "$with_pthread" = yes ; then
+- CF_ADD_LIB(pthread)
+- AC_DEFINE(HAVE_LIBPTHREADS)
+- else
+- AC_MSG_ERROR(Cannot link with pthread library)
+- fi
++ if test "$with_pthread" = yes ; then
++ CF_ADD_LIB($cf_lib_pthread)
++ AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
++ else
++ AC_MSG_ERROR(Cannot link with pthread library)
++ fi
+ ])
+ fi
+ ])
+@@ -6448,7 +7264,7 @@
+ ])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
++dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
+ dnl ----------------
+ dnl If we can compile with sysmouse, make it available unless it is not wanted.
+ AC_DEFUN([CF_WITH_SYSMOUSE],[
+@@ -6474,10 +7290,30 @@
+ ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
+ fi
+ AC_MSG_RESULT($cf_with_sysmouse)
+-test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
++test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
++dnl ---------------
++dnl For testing, override the derived host system-type which is used to decide
++dnl things such as the linker commands used to build shared libraries. This is
++dnl normally chosen automatically based on the type of system which you are
++dnl building on. We use it for testing the configure script.
++dnl
++dnl This is different from the --host option: it is used only for testing parts
++dnl of the configure script which would not be reachable with --host since that
++dnl relies on the build environment being real, rather than mocked up.
++AC_DEFUN([CF_WITH_SYSTYPE],[
++CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
++AC_ARG_WITH(system-type,
++ [ --with-system-type=XXX test: override derived host system-type],
++[AC_MSG_WARN(overriding system type to $withval)
++ cf_cv_system_name=$withval
++ host_os=$withval
++])
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
+ dnl ----------------
+ AC_DEFUN([CF_WITH_VALGRIND],[
+@@ -6486,7 +7322,49 @@
+ [USE_VALGRIND])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
++dnl CF_WITH_VERSIONED_SYMS version: 2 updated: 2014/11/15 19:05:29
++dnl ----------------------
++dnl Use this when building shared library with ELF, to markup symbols with the
++dnl version identifier from the given input file. Generally that identifier is
++dnl the same as the SONAME at which the symbol was first introduced.
++dnl
++dnl $1 = basename of the ".sym" file (default $PACKAGE)
++AC_DEFUN([CF_WITH_VERSIONED_SYMS],
++[
++AC_MSG_CHECKING(if versioned-symbols file should be used)
++AC_ARG_WITH(versioned-syms,
++ [ --with-versioned-syms=X markup versioned symbols using ld],
++ [with_versioned_syms=$withval],
++ [with_versioned_syms=no])
++if test "x$with_versioned_syms" = xyes
++then
++ with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
++ AC_SUBST(PACKAGE)
++fi
++AC_MSG_RESULT($with_versioned_syms)
++
++if test "x$with_versioned_syms" != xno
++then
++ AC_SUBST(VERSIONED_SYMS)
++ case "x$MK_SHARED_LIB" in
++ *-Wl,*) #(vi
++ VERSIONED_SYMS="-Wl,--version-script,$with_versioned_syms"
++ MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
++ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
++ ;;
++ *-dy*) #(vi
++ VERSIONED_SYMS="-Wl,-M,$with_versioned_syms"
++ MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
++ CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
++ ;;
++ *)
++ AC_MSG_WARN(this system does not support versioned-symbols)
++ ;;
++ esac
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_XOPEN_SOURCE version: 48 updated: 2014/09/01 12:29:14
+ dnl ---------------
+ dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
+ dnl or adapt to the vendor's definitions to get equivalent functionality,
+@@ -6496,16 +7374,17 @@
+ dnl $1 is the nominal value for _XOPEN_SOURCE
+ dnl $2 is the nominal value for _POSIX_C_SOURCE
+ AC_DEFUN([CF_XOPEN_SOURCE],[
++AC_REQUIRE([AC_CANONICAL_HOST])
+
+ cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
+ cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
+ cf_xopen_source=
+
+ case $host_os in #(vi
+-aix[[456]]*) #(vi
++aix[[4-7]]*) #(vi
+ cf_xopen_source="-D_ALL_SOURCE"
+ ;;
+-cygwin) #(vi
++cygwin|msys) #(vi
+ cf_XOPEN_SOURCE=600
+ ;;
+ darwin[[0-8]].*) #(vi
+@@ -6513,6 +7392,7 @@
+ ;;
+ darwin*) #(vi
+ cf_xopen_source="-D_DARWIN_C_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ freebsd*|dragonfly*) #(vi
+ # 5.x headers associate
+@@ -6530,15 +7410,26 @@
+ ;;
+ irix[[56]].*) #(vi
+ cf_xopen_source="-D_SGI_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+ CF_GNU_SOURCE
+ ;;
++minix*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
++ ;;
+ mirbsd*) #(vi
+- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
++ cf_XOPEN_SOURCE=
++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ ;;
+ netbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd[[4-9]]*) #(vi
++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
++ cf_xopen_source="-D_BSD_SOURCE"
++ cf_XOPEN_SOURCE=600
+ ;;
+ openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+@@ -6552,41 +7443,50 @@
+ sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+-solaris2.1[[0-9]]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-solaris2.[[1-9]]) #(vi
++solaris2.*) #(vi
+ cf_xopen_source="-D__EXTENSIONS__"
++ cf_cv_xopen_source=broken
++ ;;
++sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
++ cf_XOPEN_SOURCE=
++ cf_POSIX_C_SOURCE=
+ ;;
+ *)
+- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
+- AC_TRY_COMPILE([#include <sys/types.h>],[
++ CF_TRY_XOPEN_SOURCE
++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
++ ;;
++esac
++
++if test -n "$cf_xopen_source" ; then
++ CF_ADD_CFLAGS($cf_xopen_source,true)
++fi
++
++dnl In anything but the default case, we may have system-specific setting
++dnl which is still not guaranteed to provide all of the entrypoints that
++dnl _XOPEN_SOURCE would yield.
++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
++ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
++ AC_TRY_COMPILE([#include <stdlib.h>],[
+ #ifndef _XOPEN_SOURCE
+ make an error
+ #endif],
+- [cf_cv_xopen_source=no],
+- [cf_save="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- AC_TRY_COMPILE([#include <sys/types.h>],[
+-#ifdef _XOPEN_SOURCE
++ [cf_XOPEN_SOURCE_set=yes],
++ [cf_XOPEN_SOURCE_set=no])
++ AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
++ if test $cf_XOPEN_SOURCE_set = yes
++ then
++ AC_TRY_COMPILE([#include <stdlib.h>],[
++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
+ make an error
+ #endif],
+- [cf_cv_xopen_source=no],
+- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+- CPPFLAGS="$cf_save"
+- ])
+-])
+- if test "$cf_cv_xopen_source" != no ; then
+- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
+- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
+- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+- CF_ADD_CFLAGS($cf_temp_xopen_source)
++ [cf_XOPEN_SOURCE_set_ok=yes],
++ [cf_XOPEN_SOURCE_set_ok=no])
++ if test $cf_XOPEN_SOURCE_set_ok = no
++ then
++ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
++ fi
++ else
++ CF_TRY_XOPEN_SOURCE
+ fi
+- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+- ;;
+-esac
+-
+-if test -n "$cf_xopen_source" ; then
+- CF_ADD_CFLAGS($cf_xopen_source)
+ fi
+ ])
+Index: announce.html.in
+Prereq: 1.85
+--- ncurses-5.9/announce.html.in 2011-04-04 00:05:34.000000000 +0000
++++ ncurses-5.9-20141206/announce.html.in 2013-05-18 10:12:25.000000000 +0000
+@@ -1,8 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <!--
+- $Id: announce.html.in,v 1.85 2011/04/04 00:05:34 tom Exp $
++ $Id: announce.html.in,v 1.89 2013/05/18 10:12:25 tom Exp $
+ ****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,11 +28,12 @@
+ * authorization. *
+ ****************************************************************************
+ -->
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+
+ <html>
+ <head>
+ <meta name="generator" content=
+- "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
++ "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
+
+ <title>Announcing ncurses @VERSION@</title>
+ <link rev="made" href="mailto:bug-ncurses@gnu.org">
+@@ -42,12 +42,13 @@
+ </head>
+
+ <body>
+- <h1>Announcing ncurses @VERSION@</h1>The ncurses (new curses)
+- library is a free software emulation of curses in System V
+- Release 4.0, and more. It uses terminfo format, supports pads and
+- color and multiple highlights and forms characters and
+- function-key mapping, and has all the other SYSV-curses
+- enhancements over BSD curses.
++ <h1>Announcing ncurses @VERSION@</h1>
++
++ <p>The ncurses (new curses) library is a free software emulation
++ of curses in System V Release 4.0, and more. It uses terminfo
++ format, supports pads and color and multiple highlights and forms
++ characters and function-key mapping, and has all the other
++ SYSV-curses enhancements over BSD curses.</p>
+
+ <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
+ that he considered 4.4BSD curses obsolete, and encouraged the
+@@ -73,38 +74,50 @@
+ It is also available at <a href=
+ "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
+
+- <h1>Release Notes</h1>This release is designed to be upward
+- compatible from ncurses 5.0 through 5.8; very few applications
+- will require recompilation, depending on the platform. These are
+- the highlights from the change-log since ncurses 5.8 release.
+- <p>
+- This is a bug-fix release, correcting a small number of urgent problems
+- in the ncurses library from the 5.8 release.
+- <p>
+- It also improves the Ada95 binding:
++ <h1>Release Notes</h1>
++
++ <p>This release is designed to be upward compatible from ncurses
++ 5.0 through 5.8; very few applications will require
++ recompilation, depending on the platform. These are the
++ highlights from the change-log since ncurses 5.8 release.</p>
++
++ <p>This is a bug-fix release, correcting a small number of urgent
++ problems in the ncurses library from the 5.8 release.</p>
++
++ <p>It also improves the Ada95 binding:</p>
++
+ <ul>
+- <li>fixes a longstanding portability problem with its use of the
+- <a href="http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
+- function. Because that function uses variable-length argument lists,
+- its interface with gnat does not work with certain platforms.
+- <li>improves configurability and portability, particularly when built
+- separately from the main ncurses tree. The 5.8 release introduced
+- scripts which can be used to construct separate tarballs for the
+- Ada95 and ncurses examples.
+- <p>Those were a proof of concept. For the 5.9 release, those
+- scripts are augmented with rpm- and dpkg-scripts used in test builds
+- against a variety of gnat- and system ncurses versions as old as
+- gnat 3.15 and ncurses 5.4 (see snapshots and systems tested
+- <a href="http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.
+- <li>additional improvements were made for portability of the
+- ncurses examples, adding rpm- and dpkg-scripts for test-builds.
+- See
+- <a href="http://invisible-island.net/ncurses/ncurses-examples.html">this page</a>
+- for snapshots and other information.
++ <li>fixes a longstanding portability problem with its use of
++ the <a href=
++ "http://invisible-island.net/ncurses/man/form_fieldtype.3x">set_field_type</a>
++ function. Because that function uses variable-length argument
++ lists, its interface with gnat does not work with certain
++ platforms.</li>
++
++ <li>improves configurability and portability, particularly when
++ built separately from the main ncurses tree. The 5.8 release
++ introduced scripts which can be used to construct separate
++ tarballs for the Ada95 and ncurses examples.
++
++ <p>Those were a proof of concept. For the 5.9 release, those
++ scripts are augmented with rpm- and dpkg-scripts used in test
++ builds against a variety of gnat- and system ncurses versions
++ as old as gnat 3.15 and ncurses 5.4 (see snapshots and
++ systems tested <a href=
++ "http://invisible-island.net/ncurses/ncurses-Ada95.html">here</a>.</p>
++ </li>
++
++ <li>additional improvements were made for portability of the
++ ncurses examples, adding rpm- and dpkg-scripts for test-builds.
++ See <a href=
++ "http://invisible-island.net/ncurses/ncurses-examples.html">this
++ page</a> for snapshots and other information.</li>
+ </ul>
+
+- <h1>Features of Ncurses</h1>The ncurses package is fully
+- compatible with SVr4 (System V Release 4) curses:
++ <h1>Features of Ncurses</h1>
++
++ <p>The ncurses package is fully compatible with SVr4 (System V
++ Release 4) curses:</p>
+
+ <ul>
+ <li>All 257 of the SVr4 calls have been implemented (and are
+@@ -132,8 +145,10 @@
+ entries for use with less capable
+ <strong>curses</strong>/<strong>terminfo</strong> versions such
+ as the HP/UX and AIX ports.</li>
+- </ul>The ncurses package also has many useful extensions over
+- SVr4:
++ </ul>
++
++ <p>The ncurses package also has many useful extensions over
++ SVr4:</p>
+
+ <ul>
+ <li>The API is 8-bit clean and base-level conformant with the
+@@ -249,12 +264,14 @@
+ interface.</li>
+ </ul>
+
+- <h1>State of the Package</h1>Numerous bugs present in earlier
+- versions have been fixed; the library is far more reliable than
+- it used to be. Bounds checking in many `dangerous' entry points
+- has been improved. The code is now type-safe according to gcc
+- -Wall. The library has been checked for malloc leaks and arena
+- corruption by the Purify memory-allocation tester.
++ <h1>State of the Package</h1>
++
++ <p>Numerous bugs present in earlier versions have been fixed; the
++ library is far more reliable than it used to be. Bounds checking
++ in many `dangerous' entry points has been improved. The code is
++ now type-safe according to gcc -Wall. The library has been
++ checked for malloc leaks and arena corruption by the Purify
++ memory-allocation tester.</p>
+
+ <p>The ncurses code has been tested with a wide variety of
+ applications including (versions starting with those noted):</p>
+@@ -321,8 +338,10 @@
+
+ <dd>newsreader, supporting color, MIME <a href=
+ "http://www.tin.org/">http://www.tin.org/</a></dd>
+- </dl>as well as some that use ncurses for the terminfo support
+- alone:
++ </dl>
++
++ <p>as well as some that use ncurses for the terminfo support
++ alone:</p>
+
+ <dl>
+ <dt>minicom</dt>
+@@ -341,15 +360,17 @@
+ <p>The ncurses distribution includes a selection of test programs
+ (including a few games).</p>
+
+- <h2>Who's Who and What's What</h2>Zeyd Ben-Halim started it from
+- a previous package pcurses, written by Pavel Curtis. Eric S.
+- Raymond continued development. J&uuml;rgen Pfeifer wrote most of
+- the form and menu libraries. Ongoing work is being done by
+- <a href="mailto:dickey@invisible-island.net">Thomas Dickey</a>.
+- Thomas Dickey acts as the maintainer for the Free Software
+- Foundation, which holds the copyright on ncurses. Contact the
+- current maintainers at <a href=
+- "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>.
++ <h2>Who's Who and What's What</h2>
++
++ <p>Zeyd Ben-Halim started it from a previous package pcurses,
++ written by Pavel Curtis. Eric S. Raymond continued development.
++ J&uuml;rgen Pfeifer wrote most of the form and menu libraries.
++ Ongoing work is being done by <a href=
++ "mailto:dickey@invisible-island.net">Thomas Dickey</a>. Thomas
++ Dickey acts as the maintainer for the Free Software Foundation,
++ which holds the copyright on ncurses. Contact the current
++ maintainers at <a href=
++ "mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>.</p>
+
+ <p>To join the ncurses mailing list, please write email to
+ <code>bug-ncurses-request@gnu.org</code> containing the line:</p>
+@@ -364,6 +385,13 @@
+ are made available at <a href=
+ "ftp://invisible-island.net/ncurses/">ftp://invisible-island.net/ncurses/</a>&nbsp;.</p>
+
++ <p>There is an archive of the mailing list here:</p>
++
++ <p><a href=
++ "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
++ (also <a href=
++ "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
++
+ <h2>Future Plans</h2>
+
+ <ul>
+@@ -371,15 +399,19 @@
+ support.</li>
+
+ <li>Ports to more systems, including DOS and Windows.</li>
+- </ul>We need people to help with these projects. If you are
+- interested in working on them, please join the ncurses list.
++ </ul>
++
++ <p>We need people to help with these projects. If you are
++ interested in working on them, please join the ncurses list.</p>
++
++ <h2>Other Related Resources</h2>
+
+- <h2>Other Related Resources</h2>The distribution provides a newer
+- version of the terminfo-format terminal description file once
+- maintained by <a href="http://www.catb.org/~esr/terminfo/">Eric
++ <p>The distribution provides a newer version of the
++ terminfo-format terminal description file once maintained by
++ <a href="http://www.catb.org/~esr/terminfo/">Eric
+ Raymond</a>&nbsp;. Unlike the older version, the termcap and
+ terminfo data are provided in the same file, and provides several
+- user-definable extensions beyond the X/Open specification.
++ user-definable extensions beyond the X/Open specification.</p>
+
+ <p>You can find lots of information on terminal-related topics
+ not covered in the terminfo file at <a href=
+Index: c++/Makefile.in
+Prereq: 1.93
+--- ncurses-5.9/c++/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/c++/Makefile.in 2014-11-15 00:46:17.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.93 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.108 2014/11/15 00:46:17 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -44,13 +44,21 @@
+
+ MODEL = ../@DFT_OBJ_SUBDIR@
+ DESTDIR = @DESTDIR@
++top_srcdir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
++bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL_CXX@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -65,6 +73,9 @@
+
+ AR = @AR@
+ ARFLAGS = @ARFLAGS@
++AWK = @AWK@
++LD = @LD@
++LN_S = @LN_S@
+
+ CXX_AR = @CXX_AR@
+ CXX_ARFLAGS = @CXX_ARFLAGS@
+@@ -76,7 +87,7 @@
+ CXXLIBS = @CXXLIBS@
+
+ INCDIR = ../include
+-CPPFLAGS = -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
++CPPFLAGS = -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CTAGS = @CTAGS@
+ ETAGS = @ETAGS@
+@@ -109,35 +120,41 @@
+ LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.a
+ LIBNAME = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@
+
+-MY_LIBRARY = ../lib/$(LIBNAME)
++LIBRARIES = @Libs_To_Make@
+
+ LINK_FLAGS = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@LIB_SUFFIX@
++RPATH_LIST = @RPATH_LIST@
++MK_SHARED_LIB = @MK_SHARED_LIB@
+
+-LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(MY_LIBRARY)
++LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib $(LIBRARIES)
+ LINK_NORMAL = $(LINK_FLAGS)
+ LINK_DEBUG = $(LINK_FLAGS)
+ LINK_PROFILE = $(LINK_FLAGS)
+ LINK_SHARED = $(LINK_FLAGS)
+
++# flags for test-programs
+ TEST_LIBS = @TEST_LIBS@
+ TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
+-
+-LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
++TEST_LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
+ @LD_MODEL@ $(TEST_LIBS) @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
+
+-LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
+-LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
+-LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG)
+-LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
+-LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
++LDFLAGS_LIBTOOL = $(TEST_LDFLAGS) $(CFLAGS_LIBTOOL)
++LDFLAGS_NORMAL = $(TEST_LDFLAGS) $(CFLAGS_NORMAL)
++LDFLAGS_DEBUG = $(TEST_LDFLAGS) $(CFLAGS_DEBUG)
++LDFLAGS_PROFILE = $(TEST_LDFLAGS) $(CFLAGS_PROFILE)
++LDFLAGS_SHARED = $(TEST_LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
+
+ LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@)
+
++# flags for library built by this makefile
++LDFLAGS = $(TEST_ARGS) @LDFLAGS@ \
++ @LD_MODEL@ $(TEST_LIBS) @LIBS@ $(CXXLIBS)
++
+ AUTO_SRC = \
+ etip.h
+
+ all \
+-libs :: $(AUTO_SRC) $(MY_LIBRARY)
++libs :: $(AUTO_SRC) $(LIBRARIES)
+
+ @MAKE_TESTS@all :: demo$x
+
+@@ -148,61 +165,16 @@
+ tags:
+ $(CTAGS) *.[h] *.cc
+
+-# Build a conventional library for installing, since a shared library would
+-# pull in all of the ncurses libraries (panel, menu, form, ncurses) as direct
+-# dependencies.
+-LIB_OBJS = \
+- $(MODEL)/cursesf$o \
+- $(MODEL)/cursesm$o \
+- $(MODEL)/cursesw$o \
+- $(MODEL)/cursespad$o \
+- $(MODEL)/cursesp$o \
+- $(MODEL)/cursslk$o \
+- $(MODEL)/cursesapp$o \
+- $(MODEL)/cursesmain$o
+-
+-../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
+- $(CXX_AR) $(CXX_ARFLAGS) $@ $?
+- $(RANLIB) $@
+-
+-../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
+- cd ../lib && $(LIBTOOL_LINK) $(CXX) $(CXXFLAGS) \
+- -o $(LIBNAME) $(LIB_OBJS:$o=.lo) \
+- -rpath $(INSTALL_PREFIX)$(libdir) \
+- $(LIBTOOL_VERSION) $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)
+-
+-OBJS_DEMO = $(MODEL)/demo$o
+-
+-$(MODEL)/demo$o : $(srcdir)/demo.cc \
+- $(cursesf_h) $(cursesm_h) $(cursesapp_h)
+-
+-demo$x: $(OBJS_DEMO) \
+- $(MY_LIBRARY) \
+- @TEST_DEPS@
+- @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT)
+-
+-etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
+- cp $(srcdir)/etip.h.in $@
+- sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
+-
+ $(DESTDIR)$(libdir) :
+ mkdir -p $@
+
+-install \
+-install.libs:: $(MY_LIBRARY) $(DESTDIR)$(libdir)
+- $(LIBTOOL_INSTALL) $(INSTALL_LIB) $(MY_LIBRARY) $(DESTDIR)$(libdir)/$(LIBNAME)
+-
+-uninstall \
+-uninstall.libs::
+- -$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
+-
+ mostlyclean ::
+ -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace
+
+ clean :: mostlyclean
+ -sh -c "if test -n '$x' ; then $(MAKE) clean x=''; fi"
+ -rm -rf $(MODEL)/SunWS_cache
+- -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(MY_LIBRARY) $(LIB_OBJS) $(OBJS_DEMO)
++ -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) $(LIBRARIES) $(OBJS_DEMO)
+ -rm -rf .libs
+
+ distclean :: clean
+@@ -212,8 +184,16 @@
+
+ ###############################################################################
+
++internal_h = $(srcdir)/internal.h \
++ $(INCDIR)/ncurses_cfg.h \
++ $(INCDIR)/nc_mingw.h \
++ $(INCDIR)/nc_string.h
++
++etip_h = etip.h \
++ $(INCDIR)/ncurses_dll.h
++
+ cursesw_h = $(srcdir)/cursesw.h \
+- etip.h \
++ $(etip_h) \
+ $(INCDIR)/curses.h
+
+ cursesp_h = $(srcdir)/cursesp.h \
+@@ -244,5 +224,26 @@
+ cd ../panel && $(MAKE) $@
+
+ ###############################################################################
++
++OBJS_DEMO = $(MODEL)/demo$o
++
++$(MODEL)/demo$o : $(srcdir)/demo.cc \
++ $(internal_h) \
++ $(cursesf_h) \
++ $(cursesm_h) \
++ $(cursesapp_h)
++ @echo 'compiling demo (obj_s)'
++ @$(LIBTOOL_COMPILE) $(CXX) $(CFLAGS_DEFAULT) -c $(srcdir)/demo.cc -o $@
++
++demo$x: $(OBJS_DEMO) \
++ $(LIBRARIES) \
++ @TEST_DEPS@
++ @ECHO_LD@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT)
++
++etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
++ cp $(srcdir)/etip.h.in $@
++ sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
++
++###############################################################################
+ # The remainder of this file is automatically generated during configuration
+ ###############################################################################
+Index: c++/cursesapp.h
+Prereq: 1.11
+--- ncurses-5.9/c++/cursesapp.h 2005-05-28 21:57:44.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesapp.h 2011-09-17 22:12:10.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,7 +31,7 @@
+ * Author: Juergen Pfeifer, 1997 *
+ ****************************************************************************/
+
+-// $Id: cursesapp.h,v 1.11 2005/05/28 21:57:44 tom Exp $
++// $Id: cursesapp.h,v 1.12 2011/09/17 22:12:10 tom Exp $
+
+ #ifndef NCURSES_CURSESAPP_H_incl
+ #define NCURSES_CURSESAPP_H_incl
+@@ -80,6 +80,7 @@
+ // This method is called to initialize the SLKs. Default is nothing.
+ // You may rewrite this in your derived class
+ virtual void init_labels(Soft_Label_Key_Set& S) const {
++ (void) S;
+ }
+
+ // Your derived class must implement this method. The return value must
+@@ -118,6 +119,8 @@
+ // Process the commandline arguments. The default implementation simply
+ // ignores them. Your derived class may rewrite this.
+ virtual void handleArgs(int argc, char* argv[]) {
++ (void) argc;
++ (void) argv;
+ }
+
+ // Does this application use colors?
+@@ -138,37 +141,37 @@
+
+ // Attributes to use for menu and forms foregrounds
+ virtual chtype foregrounds() const {
+- return b_Colors ? COLOR_PAIR(1) : A_BOLD;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(1)) : A_BOLD;
+ }
+
+ // Attributes to use for menu and forms backgrounds
+ virtual chtype backgrounds() const {
+- return b_Colors ? COLOR_PAIR(2) : A_NORMAL;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(2)) : A_NORMAL;
+ }
+
+ // Attributes to use for inactive (menu) elements
+ virtual chtype inactives() const {
+- return b_Colors ? (COLOR_PAIR(3)|A_DIM) : A_DIM;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(3)|A_DIM) : A_DIM;
+ }
+
+ // Attributes to use for (form) labels and SLKs
+ virtual chtype labels() const {
+- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(4)) : A_NORMAL;
+ }
+
+ // Attributes to use for form backgrounds
+ virtual chtype dialog_backgrounds() const {
+- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(4)) : A_NORMAL;
+ }
+
+ // Attributes to use as default for (form) window backgrounds
+ virtual chtype window_backgrounds() const {
+- return b_Colors ? COLOR_PAIR(5) : A_NORMAL;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(5)) : A_NORMAL;
+ }
+
+ // Attributes to use for the title window
+ virtual chtype screen_titles() const {
+- return b_Colors ? COLOR_PAIR(6) : A_BOLD;
++ return b_Colors ? static_cast<chtype>(COLOR_PAIR(6)) : A_BOLD;
+ }
+
+ };
+Index: c++/cursesf.cc
+Prereq: 1.21
+--- ncurses-5.9/c++/cursesf.cc 2005-08-13 18:09:06.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesf.cc 2011-09-17 22:12:10.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+ #include "cursesf.h"
+ #include "cursesapp.h"
+
+-MODULE_ID("$Id: cursesf.cc,v 1.21 2005/08/13 18:09:06 tom Exp $")
++MODULE_ID("$Id: cursesf.cc,v 1.22 2011/09/17 22:12:10 tom Exp $")
+
+ NCursesFormField::~NCursesFormField ()
+ {
+@@ -234,11 +234,13 @@
+ void
+ NCursesForm::On_Field_Init(NCursesFormField& field)
+ {
++ (void) field;
+ }
+
+ void
+ NCursesForm::On_Field_Termination(NCursesFormField& field)
+ {
++ (void) field;
+ }
+
+ // call the form driver and do basic error checking.
+@@ -260,16 +262,19 @@
+
+ void NCursesForm::On_Request_Denied(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+
+ void NCursesForm::On_Invalid_Field(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+
+ void NCursesForm::On_Unknown_Command(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+
+@@ -373,6 +378,7 @@
+ //
+ bool _nc_xx_fld_fcheck(FIELD *f, const void *u)
+ {
++ (void) f;
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
+ assert(F != 0);
+ UserDefinedFieldType* udf = reinterpret_cast<UserDefinedFieldType*>(F->fieldtype());
+@@ -405,6 +411,7 @@
+
+ bool _nc_xx_next_choice(FIELD *f, const void *u)
+ {
++ (void) f;
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
+ assert(F != 0);
+ UserDefinedFieldType_With_Choice* udf =
+@@ -415,6 +422,7 @@
+
+ bool _nc_xx_prev_choice(FIELD *f, const void *u)
+ {
++ (void) f;
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
+ assert(F != 0);
+ UserDefinedFieldType_With_Choice* udf =
+Index: c++/cursesf.h
+Prereq: 1.28
+--- ncurses-5.9/c++/cursesf.h 2005-08-13 18:08:24.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesf.h 2014-08-09 22:06:11.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,7 +31,7 @@
+ * Author: Juergen Pfeifer, 1997 *
+ ****************************************************************************/
+
+-// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
++// $Id: cursesf.h,v 1.32 2014/08/09 22:06:11 Adam.Jiang Exp $
+
+ #ifndef NCURSES_CURSESF_H_incl
+ #define NCURSES_CURSESF_H_incl 1
+@@ -61,7 +61,7 @@
+ protected:
+ FIELDTYPE* fieldtype;
+
+- inline void OnError(int err) const THROWS(NCursesFormException) {
++ inline void OnError(int err) const THROW2(NCursesException const, NCursesFormException) {
+ if (err!=E_OK)
+ THROW(new NCursesFormException (err));
+ }
+@@ -109,7 +109,7 @@
+ NCursesFieldType* ftype; // Associated field type
+
+ // Error handler
+- inline void OnError (int err) const THROWS(NCursesFormException) {
++ inline void OnError (int err) const THROW2(NCursesException const, NCursesFormException) {
+ if (err != E_OK)
+ THROW(new NCursesFormException (err));
+ }
+@@ -391,7 +391,7 @@
+ bool with_frame,
+ bool autoDeleteFields);
+
+- inline void OnError (int err) const THROWS(NCursesFormException) {
++ inline void OnError (int err) const THROW2(NCursesException const, NCursesFormException) {
+ if (err != E_OK)
+ THROW(new NCursesFormException (err));
+ }
+@@ -673,20 +673,21 @@
+ const T* p_UserData = STATIC_CAST(T*)(0))
+ : NCursesForm(nlines,ncols,begin_y,begin_x) {
+ if (form)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>
++ (p_UserData)));
+ }
+
+ public:
+- NCursesUserForm (NCursesFormField Fields[],
++ NCursesUserForm (NCursesFormField* Fields[],
+ const T* p_UserData = STATIC_CAST(T*)(0),
+ bool with_frame=FALSE,
+ bool autoDelete_Fields=FALSE)
+ : NCursesForm (Fields, with_frame, autoDelete_Fields) {
+ if (form)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ };
+
+- NCursesUserForm (NCursesFormField Fields[],
++ NCursesUserForm (NCursesFormField* Fields[],
+ int nlines,
+ int ncols,
+ int begin_y = 0,
+@@ -697,19 +698,20 @@
+ : NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
+ with_frame, autoDelete_Fields) {
+ if (form)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>
++ (p_UserData)));
+ };
+
+ virtual ~NCursesUserForm() {
+ };
+
+- inline T* UserData (void) const {
++ inline T* UserData (void) {
+ return reinterpret_cast<T*>(get_user ());
+ };
+
+ inline virtual void setUserData (const T* p_UserData) {
+ if (form)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ }
+
+ };
+Index: c++/cursesm.cc
+Prereq: 1.22
+--- ncurses-5.9/c++/cursesm.cc 2005-04-02 20:39:05.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesm.cc 2011-09-17 22:11:32.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2005,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+ #include "cursesm.h"
+ #include "cursesapp.h"
+
+-MODULE_ID("$Id: cursesm.cc,v 1.22 2005/04/02 20:39:05 tom Exp $")
++MODULE_ID("$Id: cursesm.cc,v 1.23 2011/09/17 22:11:32 tom Exp $")
+
+ NCursesMenuItem::~NCursesMenuItem()
+ {
+@@ -375,33 +375,39 @@
+ void
+ NCursesMenu::On_Item_Init(NCursesMenuItem& item)
+ {
++ (void) item;
+ }
+
+ void
+ NCursesMenu::On_Item_Termination(NCursesMenuItem& item)
+ {
++ (void) item;
+ }
+
+ void
+ NCursesMenu::On_Request_Denied(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+
+ void
+ NCursesMenu::On_Not_Selectable(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+
+ void
+ NCursesMenu::On_No_Match(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+
+ void
+ NCursesMenu::On_Unknown_Command(int c) const
+ {
++ (void) c;
+ ::beep();
+ }
+Index: c++/cursesm.h
+Prereq: 1.25
+--- ncurses-5.9/c++/cursesm.h 2005-08-13 18:10:36.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesm.h 2014-08-09 22:06:18.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,7 +31,7 @@
+ * Author: Juergen Pfeifer, 1997 *
+ ****************************************************************************/
+
+-// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
++// $Id: cursesm.h,v 1.30 2014/08/09 22:06:18 Adam.Jiang Exp $
+
+ #ifndef NCURSES_CURSESM_H_incl
+ #define NCURSES_CURSESM_H_incl 1
+@@ -53,7 +53,7 @@
+ protected:
+ ITEM *item;
+
+- inline void OnError (int err) const THROWS(NCursesMenuException) {
++ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
+ if (err != E_OK)
+ THROW(new NCursesMenuException (err));
+ }
+@@ -82,6 +82,7 @@
+ NCursesMenuItem(const NCursesMenuItem& rhs)
+ : item(0)
+ {
++ (void) rhs;
+ }
+
+ virtual ~NCursesMenuItem ();
+@@ -252,7 +253,7 @@
+ bool with_frame,
+ bool autoDeleteItems);
+
+- inline void OnError (int err) const THROWS(NCursesMenuException) {
++ inline void OnError (int err) const THROW2(NCursesException const, NCursesMenuException) {
+ if (err != E_OK)
+ THROW(new NCursesMenuException (this, err));
+ }
+@@ -631,20 +632,20 @@
+ const T* p_UserData = STATIC_CAST(T*)(0))
+ : NCursesMenu(nlines,ncols,begin_y,begin_x) {
+ if (menu)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ }
+
+ public:
+- NCursesUserMenu (NCursesMenuItem Items[],
++ NCursesUserMenu (NCursesMenuItem* Items[],
+ const T* p_UserData = STATIC_CAST(T*)(0),
+ bool with_frame=FALSE,
+ bool autoDelete_Items=FALSE)
+ : NCursesMenu (Items, with_frame, autoDelete_Items) {
+ if (menu)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ };
+
+- NCursesUserMenu (NCursesMenuItem Items[],
++ NCursesUserMenu (NCursesMenuItem* Items[],
+ int nlines,
+ int ncols,
+ int begin_y = 0,
+@@ -653,19 +654,19 @@
+ bool with_frame=FALSE)
+ : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
+ if (menu)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ };
+
+ virtual ~NCursesUserMenu() {
+ };
+
+- inline T* UserData (void) const {
++ inline T* UserData (void) {
+ return reinterpret_cast<T*>(get_user ());
+ };
+
+ inline virtual void setUserData (const T* p_UserData) {
+ if (menu)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ }
+ };
+
+Index: c++/cursesmain.cc
+Prereq: 1.14
+--- ncurses-5.9/c++/cursesmain.cc 2007-04-07 17:10:11.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesmain.cc 2013-09-28 20:56:47.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2007,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,13 +35,15 @@
+ #include "cursesapp.h"
+
+ #if CPP_HAS_TRY_CATCH && HAVE_IOSTREAM
++#pragma GCC diagnostic ignored "-Weffc++"
+ #include <iostream>
++#pragma GCC diagnostic warning "-Weffc++"
+ #else
+ #undef CPP_HAS_TRY_CATCH
+ #define CPP_HAS_TRY_CATCH 0
+ #endif
+
+-MODULE_ID("$Id: cursesmain.cc,v 1.14 2007/04/07 17:10:11 tom Exp $")
++MODULE_ID("$Id: cursesmain.cc,v 1.15 2013/09/28 20:56:47 tom Exp $")
+
+ #if HAVE_LOCALE_H
+ #include <locale.h>
+Index: c++/cursesp.h
+Prereq: 1.29
+--- ncurses-5.9/c++/cursesp.h 2008-08-16 17:20:23.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesp.h 2014-08-09 22:06:26.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+ #ifndef NCURSES_CURSESP_H_incl
+ #define NCURSES_CURSESP_H_incl 1
+
+-// $Id: cursesp.h,v 1.29 2008/08/16 17:20:23 tom Exp $
++// $Id: cursesp.h,v 1.31 2014/08/09 22:06:26 Adam.Jiang Exp $
+
+ #include <cursesw.h>
+
+@@ -86,7 +86,7 @@
+ return result;
+ }
+
+- void OnError (int err) const THROWS(NCursesPanelException)
++ void OnError (int err) const THROW2(NCursesException const, NCursesPanelException)
+ {
+ if (err==ERR)
+ THROW(new NCursesPanelException (this, err));
+@@ -236,7 +236,8 @@
+ : NCursesPanel (nlines, ncols, begin_y, begin_x)
+ {
+ if (p)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>
++ (p_UserData)));
+ };
+ // This creates an user panel of the requested size with associated
+ // user data pointed to by p_UserData.
+@@ -244,14 +245,14 @@
+ NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
+ {
+ if (p)
+- set_user(const_cast<void *>(p_UserData));
++ set_user(const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ };
+ // This creates an user panel associated with the ::stdscr and user data
+ // pointed to by p_UserData.
+
+ virtual ~NCursesUserPanel() {};
+
+- T* UserData (void) const
++ T* UserData (void)
+ {
+ return reinterpret_cast<T*>(get_user ());
+ };
+@@ -260,7 +261,7 @@
+ virtual void setUserData (const T* p_UserData)
+ {
+ if (p)
+- set_user (const_cast<void *>(p_UserData));
++ set_user (const_cast<void *>(reinterpret_cast<const void*>(p_UserData)));
+ }
+ // Associate the user panel with the user data pointed to by p_UserData.
+ };
+Index: c++/cursespad.cc
+Prereq: 1.13
+--- ncurses-5.9/c++/cursespad.cc 2008-08-04 18:59:22.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursespad.cc 2013-03-30 19:45:36.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,10 +33,9 @@
+
+ #include "internal.h"
+
+-#include <etip.h>
+ #include <cursesw.h>
+
+-MODULE_ID("$Id: cursespad.cc,v 1.13 2008/08/04 18:59:22 tom Exp $")
++MODULE_ID("$Id: cursespad.cc,v 1.17 2013/03/30 19:45:36 tom Exp $")
+
+ NCursesPad::NCursesPad(int nlines, int ncols)
+ : NCursesWindow(),
+@@ -220,6 +219,7 @@
+
+ void NCursesFramedPad::OnOperation(int pad_req)
+ {
++ (void) pad_req;
+ NCursesWindow* W = Win();
+ NCursesWindow* W2 = getWindow();
+
+@@ -228,25 +228,45 @@
+ int Height = W->height();
+ int i, row, col, h_len, v_len;
+
+- h_len = (Width*Width + width() - 1)/width();
+- if (h_len==0)
++ int my_width = width();
++
++ if (my_width != 0) {
++ h_len = (Width*Width + my_width - 1) / my_width;
++ if (h_len==0)
++ h_len = 1;
++ if (h_len > Width)
++ h_len = Width;
++ } else {
+ h_len = 1;
+- if (h_len > Width)
+- h_len = Width;
++ }
+
+- v_len = (Height*Height + height() - 1)/height();
+- if (v_len==0)
++ int my_height = height();
++
++ if (my_height != 0) {
++ v_len = (Height*Height + my_height - 1) / my_height;
++ if (v_len==0)
++ v_len = 1;
++ if (v_len > Height)
++ v_len = Height;
++ } else {
+ v_len = 1;
+- if (v_len > Height)
+- v_len = Height;
++ }
+
+- col = (min_col * Width + width() - 1) / width();
+- if (col + h_len > Width)
+- col = Width - h_len;
+-
+- row = (min_row * Height + height() - 1) / height();
+- if (row + v_len > Height)
+- row = Height - v_len;
++ if (my_width != 0) {
++ col = (min_col * Width + my_width - 1) / my_width;
++ if (col + h_len > Width)
++ col = Width - h_len;
++ } else {
++ col = 0;
++ }
++
++ if (my_height != 0) {
++ row = (min_row * Height + my_height - 1) / my_height;
++ if (row + v_len > Height)
++ row = Height - v_len;
++ } else {
++ row = 0;
++ }
+
+ W2->vline(1,Width+1,Height);
+ W2->attron(A_REVERSE);
+Index: c++/cursesw.cc
+Prereq: 1.51
+--- ncurses-5.9/c++/cursesw.cc 2009-03-28 21:31:37.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesw.cc 2014-02-01 22:10:42.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+ #include "internal.h"
+ #include "cursesw.h"
+
+-MODULE_ID("$Id: cursesw.cc,v 1.51 2009/03/28 21:31:37 tom Exp $")
++MODULE_ID("$Id: cursesw.cc,v 1.54 2014/02/01 22:10:42 tom Exp $")
+
+ #define COLORS_NEED_INITIALIZATION -1
+ #define COLORS_NOT_INITIALIZED 0
+@@ -192,7 +192,6 @@
+ constructing();
+
+ w = static_cast<WINDOW *>(0);
+- set_keyboard();
+ }
+
+ NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x)
+@@ -285,12 +284,14 @@
+ NCursesWindow::NCursesWindow(WINDOW *win, int ncols)
+ : w(0), alloced(FALSE), par(0), subwins(0), sib(0)
+ {
++ (void) ncols;
+ initialize();
+ w = win;
+ }
+
+ int _nc_xx_ripoff_init(WINDOW *w, int ncols)
+ {
++ (void) ncols;
+ int res = ERR;
+
+ RIPOFFINIT init = *prip++;
+@@ -400,16 +401,16 @@
+ }
+ }
+
+-short
++NCURSES_PAIRS_T
+ NCursesWindow::getPair() const
+ {
+- return static_cast<short>(PAIR_NUMBER(getattrs(w)));
++ return static_cast<NCURSES_PAIRS_T>(PAIR_NUMBER(getattrs(w)));
+ }
+
+-short
++NCURSES_COLOR_T
+ NCursesWindow::getcolor(int getback) const
+ {
+- short fore, back;
++ NCURSES_COLOR_T fore, back;
+
+ if (HaveColors()) {
+ if (::pair_content(getPair(), &fore, &back) == ERR)
+@@ -427,27 +428,27 @@
+ return (HaveColors()) ? COLORS : 1;
+ }
+
+-short
++NCURSES_PAIRS_T
+ NCursesWindow::getcolor() const
+ {
+ return (HaveColors()) ? getPair() : 0;
+ }
+
+ int
+-NCursesWindow::setpalette(short fore, short back, short pair)
++NCursesWindow::setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back, NCURSES_PAIRS_T pair)
+ {
+ return (HaveColors()) ? ::init_pair(pair, fore, back) : OK;
+ }
+
+ int
+-NCursesWindow::setpalette(short fore, short back)
++NCursesWindow::setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back)
+ {
+ return setpalette(fore, back, getPair());
+ }
+
+
+ int
+-NCursesWindow::setcolor(short pair)
++NCursesWindow::setcolor(NCURSES_PAIRS_T pair)
+ {
+ if (HaveColors()) {
+ if ((pair < 1) || (pair > COLOR_PAIRS))
+Index: c++/cursesw.h
+Prereq: 1.48
+--- ncurses-5.9/c++/cursesw.h 2008-01-19 21:09:10.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursesw.h 2014-02-01 22:17:37.000000000 +0000
+@@ -1,7 +1,7 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ // vile:cppmode
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,7 +31,7 @@
+ #ifndef NCURSES_CURSESW_H_incl
+ #define NCURSES_CURSESW_H_incl 1
+
+-// $Id: cursesw.h,v 1.48 2008/01/19 21:09:10 tom Exp $
++// $Id: cursesw.h,v 1.50 2014/02/01 22:17:37 tom Exp $
+
+ #include <etip.h>
+
+@@ -118,7 +118,7 @@
+ #endif
+
+ #ifdef chgat
+-inline int UNDEF(chgat)(int n, attr_t attr, short color, const void *opts) {
++inline int UNDEF(chgat)(int n, attr_t attr, NCURSES_PAIRS_T color, const void *opts) {
+ return chgat(n, attr, color, opts); }
+ #undef chgat
+ #define chgat UNDEF(chgat)
+@@ -151,7 +151,7 @@
+ #endif
+
+ #ifdef color_set
+-inline chtype UNDEF(color_set)(short p, void* opts) { return color_set(p, opts); }
++inline chtype UNDEF(color_set)(NCURSES_PAIRS_T p, void* opts) { return color_set(p, opts); }
+ #undef color_set
+ #define color_set UNDEF(color_set)
+ #endif
+@@ -361,7 +361,7 @@
+
+ #ifdef mvchgat
+ inline int UNDEF(mvchgat)(int y, int x, int n,
+- attr_t attr, short color, const void *opts) {
++ attr_t attr, NCURSES_PAIRS_T color, const void *opts) {
+ return mvchgat(y, x, n, attr, color, opts); }
+ #undef mvchgat
+ #define mvchgat UNDEF(mvchgat)
+@@ -463,7 +463,7 @@
+
+ #ifdef mvwchgat
+ inline int UNDEF(mvwchgat)(WINDOW *win, int y, int x, int n,
+- attr_t attr, short color, const void *opts) {
++ attr_t attr, NCURSES_PAIRS_T color, const void *opts) {
+ return mvwchgat(win, y, x, n, attr, color, opts); }
+ #undef mvwchgat
+ #define mvwchgat UNDEF(mvwchgat)
+@@ -763,10 +763,10 @@
+
+ void set_keyboard();
+
+- short getcolor(int getback) const;
+- short getPair() const;
++ NCURSES_COLOR_T getcolor(int getback) const;
++ NCURSES_PAIRS_T getPair() const;
+
+- static int setpalette(short fore, short back, short pair);
++ static int setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back, NCURSES_PAIRS_T pair);
+ static int colorInitialized;
+
+ // This private constructor is only used during the initialization
+@@ -896,19 +896,19 @@
+ int maxy() const { return getmaxy(w) == ERR ? ERR : getmaxy(w)-1; }
+ // Largest y coord in window
+
+- short getcolor() const;
++ NCURSES_PAIRS_T getcolor() const;
+ // Actual color pair
+
+- short foreground() const { return getcolor(0); }
++ NCURSES_COLOR_T foreground() const { return getcolor(0); }
+ // Actual foreground color
+
+- short background() const { return getcolor(1); }
++ NCURSES_COLOR_T background() const { return getcolor(1); }
+ // Actual background color
+
+- int setpalette(short fore, short back);
++ int setpalette(NCURSES_COLOR_T fore, NCURSES_COLOR_T back);
+ // Set color palette entry
+
+- int setcolor(short pair);
++ int setcolor(NCURSES_PAIRS_T pair);
+ // Set actually used palette entry
+
+ // -------------------------------------------------------------------------
+@@ -1107,18 +1107,18 @@
+ chtype attrget() { return ::getattrs(w); }
+ // Get the window attributes;
+
+- int color_set(short color_pair_number, void* opts=NULL) {
++ int color_set(NCURSES_PAIRS_T color_pair_number, void* opts=NULL) {
+ return ::wcolor_set(w, color_pair_number, opts); }
+ // Set the window color attribute;
+
+- int chgat(int n, attr_t attr, short color, const void *opts=NULL) {
++ int chgat(int n, attr_t attr, NCURSES_PAIRS_T color, const void *opts=NULL) {
+ return ::wchgat(w, n, attr, color, opts); }
+ // Change the attributes of the next n characters in the current line. If
+ // n is negative or greater than the number of remaining characters in the
+ // line, the attributes will be changed up to the end of the line.
+
+ int chgat(int y, int x,
+- int n, attr_t attr, short color, const void *opts=NULL) {
++ int n, attr_t attr, NCURSES_PAIRS_T color, const void *opts=NULL) {
+ return ::mvwchgat(w, y, x, n, attr, color, opts); }
+ // Move the cursor to the requested position and then perform chgat() as
+ // described above.
+@@ -1438,16 +1438,19 @@
+ // The driver translates the keystroke c into an Pad_Request
+
+ virtual void OnUnknownOperation(int pad_req) {
++ (void) pad_req;
+ ::beep();
+ }
+ // This is called if the driver returns an unknown op-code
+
+ virtual void OnNavigationError(int pad_req) {
++ (void) pad_req;
+ ::beep();
+ }
+ // This is called if a navigation request couldn't be satisfied
+
+ virtual void OnOperation(int pad_req) {
++ (void) pad_req;
+ };
+ // OnOperation is called if a Pad_Operation was executed and just before
+ // the refresh() operation is done.
+@@ -1542,11 +1545,15 @@
+ }
+
+ void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) {
++ (void) view;
++ (void) v_grid;
++ (void) h_grid;
+ err_handler("Operation not allowed");
+ }
+ // Disable this call; the viewport is already defined
+
+ void setSubWindow(NCursesWindow& sub) {
++ (void) sub;
+ err_handler("Operation not allowed");
+ }
+ // Disable this call; the viewport subwindow is already defined
+Index: c++/cursslk.cc
+Prereq: 1.15
+--- ncurses-5.9/c++/cursslk.cc 2005-08-06 22:12:36.000000000 +0000
++++ ncurses-5.9-20141206/c++/cursslk.cc 2012-02-23 10:41:56.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2005,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,14 +35,15 @@
+ #include "cursslk.h"
+ #include "cursesapp.h"
+
+-MODULE_ID("$Id: cursslk.cc,v 1.15 2005/08/06 22:12:36 tom Exp $")
++MODULE_ID("$Id: cursslk.cc,v 1.16 2012/02/23 10:41:56 tom Exp $")
+
+ Soft_Label_Key_Set::Soft_Label_Key&
+ Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)
+ {
+ delete[] label;
+- label = new char[1 + ::strlen(text)];
+- (::strcpy)(label,text);
++ size_t need = 1 + ::strlen(text);
++ label = new char[need];
++ ::_nc_STRCPY(label,text,need);
+ return *this;
+ }
+
+Index: c++/demo.cc
+Prereq: 1.39
+--- ncurses-5.9/c++/demo.cc 2008-12-07 02:07:34.000000000 +0000
++++ ncurses-5.9-20141206/c++/demo.cc 2012-02-23 10:41:56.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+ * Demo code for NCursesMenu and NCursesForm written by
+ * Juergen Pfeifer
+ *
+- * $Id: demo.cc,v 1.39 2008/12/07 02:07:34 juergen Exp $
++ * $Id: demo.cc,v 1.41 2012/02/23 10:41:56 tom Exp $
+ */
+
+ #include "internal.h"
+@@ -220,6 +220,7 @@
+ int chk;
+ protected:
+ bool field_check(NCursesFormField& f) {
++ (void) f;
+ return TRUE;
+ }
+ bool char_check(int c) {
+@@ -319,7 +320,7 @@
+ for(int i=1; i <= S->labels(); i++) {
+ char buf[8];
+ assert(i < 100);
+- ::sprintf(buf, "Frm%02d", i);
++ ::_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "Frm%02d", i);
+ (*S)[i] = buf; // Text
+ (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
+ }
+@@ -539,7 +540,7 @@
+ for(int i=1; i <= S.labels(); i++) {
+ char buf[8];
+ assert(i < 100);
+- ::sprintf(buf, "Key%02d", i);
++ ::_nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "Key%02d", i);
+ S[i] = buf; // Text
+ S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
+ }
+Index: c++/etip.h.in
+Prereq: 1.37
+--- ncurses-5.9/c++/etip.h.in 2008-08-30 19:27:32.000000000 +0000
++++ ncurses-5.9-20141206/c++/etip.h.in 2012-12-29 21:50:44.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,7 +31,7 @@
+ * Author: Juergen Pfeifer, 1997 *
+ ****************************************************************************/
+
+-// $Id: etip.h.in,v 1.37 2008/08/30 19:27:32 tom Exp $
++// $Id: etip.h.in,v 1.39 2012/12/29 21:50:44 tom Exp $
+
+ #ifndef NCURSES_ETIP_H_incl
+ #define NCURSES_ETIP_H_incl 1
+@@ -184,7 +184,7 @@
+
+ NCursesPanelException (const char *msg, int err) :
+ NCursesException (msg, err),
+- p (NULL)
++ p (0)
+ {};
+
+ NCursesPanelException (const NCursesPanel* panel,
+@@ -196,7 +196,7 @@
+
+ NCursesPanelException (int err) :
+ NCursesException ("panel library error", err),
+- p (NULL)
++ p (0)
+ {};
+
+ NCursesPanelException (const NCursesPanel* panel,
+@@ -235,7 +235,7 @@
+
+ NCursesMenuException (const char *msg, int err) :
+ NCursesException (msg, err),
+- m (NULL)
++ m (0)
+ {};
+
+ NCursesMenuException (const NCursesMenu* menu,
+@@ -247,7 +247,7 @@
+
+ NCursesMenuException (int err) :
+ NCursesException ("menu library error", err),
+- m (NULL)
++ m (0)
+ {};
+
+ NCursesMenuException (const NCursesMenu* menu,
+@@ -286,7 +286,7 @@
+
+ NCursesFormException (const char *msg, int err) :
+ NCursesException (msg, err),
+- f (NULL)
++ f (0)
+ {};
+
+ NCursesFormException (const NCursesForm* form,
+@@ -298,7 +298,7 @@
+
+ NCursesFormException (int err) :
+ NCursesException ("form library error", err),
+- f (NULL)
++ f (0)
+ {};
+
+ NCursesFormException (const NCursesForm* form,
+@@ -367,11 +367,13 @@
+ #define NCURSES_CPP_TRY /* nothing */
+ #define NCURSES_CPP_CATCH(e) if (false)
+ #define THROWS(s) /* nothing */
++#define THROW2(s,t) /* nothing */
+ #elif CPP_HAS_TRY_CATCH
+ throw *e;
+ #define NCURSES_CPP_TRY try
+ #define NCURSES_CPP_CATCH(e) catch(e)
+ #define THROWS(s) throw(s)
++#define THROW2(s,t) throw(s,t)
+ #endif
+ }
+
+Index: c++/internal.h
+Prereq: 1.17
+--- ncurses-5.9/c++/internal.h 2008-12-07 02:07:34.000000000 +0000
++++ ncurses-5.9-20141206/c++/internal.h 2012-02-23 10:41:56.000000000 +0000
+@@ -1,6 +1,6 @@
+ // * This makes emacs happy -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2008,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,7 +31,7 @@
+ * Author: Juergen Pfeifer, 1997 *
+ ****************************************************************************/
+
+-// $Id: internal.h,v 1.17 2008/12/07 02:07:34 juergen Exp $
++// $Id: internal.h,v 1.18 2012/02/23 10:41:56 tom Exp $
+
+ #ifndef NCURSES_CPLUS_INTERNAL_H
+ #define NCURSES_CPLUS_INTERNAL_H 1
+@@ -62,4 +62,6 @@
+ #define NULL 0
+ #endif
+
++#include <nc_string.h>
++
+ #endif /* NCURSES_CPLUS_INTERNAL_H */
+Index: c++/modules
+Prereq: 1.7
+--- ncurses-5.9/c++/modules 2006-12-24 00:53:08.000000000 +0000
++++ ncurses-5.9-20141206/c++/modules 2013-03-30 19:41:11.000000000 +0000
+@@ -1,7 +1,7 @@
+ # Program modules
+-# $Id: modules,v 1.7 2006/12/24 00:53:08 tom Exp $
++# $Id: modules,v 1.11 2013/03/30 19:41:11 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2006,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -32,14 +32,13 @@
+ #
+
+ @ base
+-cursesf c++ $(srcdir) $(cursesf_h) $(cursesapp_h)
+-cursesm c++ $(srcdir) $(cursesm_h) $(cursesapp_h)
+-cursesp c++ $(srcdir) $(cursesp_h)
+-cursesw c++ $(srcdir) $(cursesw_h)
+-cursespad c++ $(srcdir) $(cursesw_h)
+-cursslk c++ $(srcdir) $(cursslk_h) $(cursesapp_h)
+-cursesapp c++ $(srcdir) $(cursesapp_h)
+-cursesmain c++ $(srcdir) $(cursesapp_h)
+-demo c++ $(srcdir) $(cursesf_h) $(cursesm_h) $(cursesapp_h)
++cursesf c++ $(srcdir) $(internal_h) $(cursesf_h) $(cursesapp_h)
++cursesm c++ $(srcdir) $(internal_h) $(cursesm_h) $(cursesapp_h)
++cursesw c++ $(srcdir) $(internal_h) $(cursesw_h)
++cursespad c++ $(srcdir) $(internal_h) $(cursesw_h)
++cursesp c++ $(srcdir) $(internal_h) $(cursesp_h)
++cursslk c++ $(srcdir) $(internal_h) $(cursesapp_h)
++cursesapp c++ $(srcdir) $(internal_h) $(cursesapp_h)
++cursesmain c++ $(srcdir) $(internal_h) $(cursesapp_h) $(INCDIR)/nc_alloc.h
+
+ # vile:makemode
+Index: config.guess
+--- ncurses-5.9/config.guess 2010-09-28 23:11:39.000000000 +0000
++++ ncurses-5.9-20141206/config.guess 2014-04-19 18:29:33.000000000 +0000
+@@ -1,14 +1,12 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+-# Free Software Foundation, Inc.
++# Copyright 1992-2014 Free Software Foundation, Inc.
+
+-timestamp='2010-09-24'
++timestamp='2014-03-23'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
++# the Free Software Foundation; either version 3 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful, but
+@@ -17,26 +15,22 @@
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
+-
+-
+-# Originally written by Per Bothner. Please send patches (context
+-# diff format) to <config-patches@gnu.org> and include a ChangeLog
+-# entry.
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
+ #
+-# This script attempts to guess a canonical system name similar to
+-# config.sub. If it succeeds, it prints the system name on stdout, and
+-# exits with 0. Otherwise, it exits with 1.
++# Originally written by Per Bothner.
+ #
+ # You can get the latest version of this script from:
+ # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
++#
++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
++
+
+ me=`echo "$0" | sed -e 's,.*/,,'`
+
+@@ -56,9 +50,7 @@
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+-Software Foundation, Inc.
++Copyright 1992-2014 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -92,7 +84,7 @@
+ exit 1
+ fi
+
+-trap 'exit 1' HUP INT TERM
++trap 'exit 1' 1 2 15
+
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+ # compiler to aid in system detection is discouraged as it requires
+@@ -106,7 +98,7 @@
+
+ set_cc_for_build='
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+@@ -140,12 +132,33 @@
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
++case "${UNAME_SYSTEM}" in
++Linux|GNU|GNU/*)
++ # If the system lacks a compiler, then just pick glibc.
++ # We could probably try harder.
++ LIBC=gnu
++
++ eval $set_cc_for_build
++ cat <<-EOF > $dummy.c
++ #include <features.h>
++ #if defined(__UCLIBC__)
++ LIBC=uclibc
++ #elif defined(__dietlibc__)
++ LIBC=dietlibc
++ #else
++ LIBC=gnu
++ #endif
++ EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
++ ;;
++esac
++
+ # Note: order is significant - the case branches are not exclusive.
+
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+@@ -202,6 +215,10 @@
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
++ *:Bitrig:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
++ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+@@ -220,10 +237,10 @@
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+- *4.0)
++ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+- *5.*)
++ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+@@ -270,7 +287,10 @@
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- exit ;;
++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++ exitcode=$?
++ trap '' 0
++ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+@@ -301,7 +321,7 @@
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+- arm:riscos:*:*|arm:RISCOS:*:*)
++ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+@@ -326,8 +346,8 @@
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+- exit ;;
++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+@@ -495,7 +515,7 @@
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+- exit ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+@@ -597,50 +617,50 @@
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+- 532) # CPU_PA_RISC2_0
+- case "${sc_kernel_bits}" in
+- 32) HP_ARCH="hppa2.0n" ;;
+- 64) HP_ARCH="hppa2.0w" ;;
++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
++ 532) # CPU_PA_RISC2_0
++ case "${sc_kernel_bits}" in
++ 32) HP_ARCH="hppa2.0n" ;;
++ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+- esac ;;
+- esac
++ esac ;;
++ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ sed 's/^ //' << EOF >$dummy.c
++
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
+
+- #define _HPUX_SOURCE
+- #include <stdlib.h>
+- #include <unistd.h>
+-
+- int main ()
+- {
+- #if defined(_SC_KERNEL_BITS)
+- long bits = sysconf(_SC_KERNEL_BITS);
+- #endif
+- long cpu = sysconf (_SC_CPU_VERSION);
+-
+- switch (cpu)
+- {
+- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+- case CPU_PA_RISC2_0:
+- #if defined(_SC_KERNEL_BITS)
+- switch (bits)
+- {
+- case 64: puts ("hppa2.0w"); break;
+- case 32: puts ("hppa2.0n"); break;
+- default: puts ("hppa2.0"); break;
+- } break;
+- #else /* !defined(_SC_KERNEL_BITS) */
+- puts ("hppa2.0"); break;
+- #endif
+- default: puts ("hppa1.0"); break;
+- }
+- exit (0);
+- }
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
+ EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+@@ -789,21 +809,26 @@
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+- case ${UNAME_MACHINE} in
+- pc98)
+- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
++ *:MINGW64*:*)
++ echo ${UNAME_MACHINE}-pc-mingw64
++ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
++ *:MSYS*:*)
++ echo ${UNAME_MACHINE}-pc-msys
++ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+@@ -820,8 +845,8 @@
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+- echo ia64-unknown-interix${UNAME_RELEASE}
+- exit ;;
++ echo ia64-unknown-interix${UNAME_RELEASE}
++ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+@@ -849,70 +874,81 @@
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
++ aarch64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ aarch64_be:Linux:*:*)
++ UNAME_MACHINE=aarch64_be
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+- EV5) UNAME_MACHINE=alphaev5 ;;
+- EV56) UNAME_MACHINE=alphaev56 ;;
+- PCA56) UNAME_MACHINE=alphapca56 ;;
+- PCA57) UNAME_MACHINE=alphapca56 ;;
+- EV6) UNAME_MACHINE=alphaev6 ;;
+- EV67) UNAME_MACHINE=alphaev67 ;;
+- EV68*) UNAME_MACHINE=alphaev68 ;;
++ EV5) UNAME_MACHINE=alphaev5 ;;
++ EV56) UNAME_MACHINE=alphaev56 ;;
++ PCA56) UNAME_MACHINE=alphapca56 ;;
++ PCA57) UNAME_MACHINE=alphapca56 ;;
++ EV6) UNAME_MACHINE=alphaev6 ;;
++ EV67) UNAME_MACHINE=alphaev67 ;;
++ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ arc:Linux:*:* | arceb:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+- if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \
+- grep -q __ARM_EABI__
++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_EABI__
+ then
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_PCS_VFP
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
++ else
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
++ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ cris:Linux:*:*)
+- echo cris-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ crisv32:Linux:*:*)
+- echo crisv32-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ frv:Linux:*:*)
+- echo frv-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
++ hexagon:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+- LIBC=gnu
+- eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
+- #ifdef __dietlibc__
+- LIBC=dietlibc
+- #endif
+-EOF
+- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ ia64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m32r*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m68*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+@@ -931,54 +967,63 @@
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
+- or32:Linux:*:*)
+- echo or32-unknown-linux-gnu
+- exit ;;
++ openrisc*:Linux:*:*)
++ echo or1k-unknown-linux-${LIBC}
++ exit ;;
++ or32:Linux:*:* | or1k*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
++ exit ;;
+ padre:Linux:*:*)
+- echo sparc-unknown-linux-gnu
++ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+- echo hppa64-unknown-linux-gnu
+- exit ;;
++ echo hppa64-unknown-linux-${LIBC}
++ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+- PA7*) echo hppa1.1-unknown-linux-gnu ;;
+- PA8*) echo hppa2.0-unknown-linux-gnu ;;
+- *) echo hppa-unknown-linux-gnu ;;
++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
++ *) echo hppa-unknown-linux-${LIBC} ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+- echo powerpc64-unknown-linux-gnu
++ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+- echo powerpc-unknown-linux-gnu
++ echo powerpc-unknown-linux-${LIBC}
++ exit ;;
++ ppc64le:Linux:*:*)
++ echo powerpc64le-unknown-linux-${LIBC}
++ exit ;;
++ ppcle:Linux:*:*)
++ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+- echo ${UNAME_MACHINE}-ibm-linux
++ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+ sh64*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sh*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+- echo ${UNAME_MACHINE}-tilera-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+- echo ${UNAME_MACHINE}-dec-linux-gnu
++ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+- echo x86_64-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+@@ -1093,7 +1138,7 @@
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && { echo i486-ncr-sysv4; exit; } ;;
++ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+@@ -1136,8 +1181,8 @@
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+- # says <Richard.M.Bartel@ccMail.Census.GOV>
++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+@@ -1165,9 +1210,9 @@
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+- echo mips-nec-sysv${UNAME_RELEASE}
++ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+- echo mips-unknown-sysv${UNAME_RELEASE}
++ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+@@ -1182,6 +1227,9 @@
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
++ x86_64:Haiku:*:*)
++ echo x86_64-unknown-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+@@ -1208,26 +1256,38 @@
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+- case $UNAME_PROCESSOR in
+- i386)
+- eval $set_cc_for_build
+- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+- grep IS_64BIT_ARCH >/dev/null
+- then
+- UNAME_PROCESSOR="x86_64"
+- fi
+- fi ;;
+- unknown) UNAME_PROCESSOR=powerpc ;;
+- esac
++ eval $set_cc_for_build
++ if test "$UNAME_PROCESSOR" = unknown ; then
++ UNAME_PROCESSOR=powerpc
++ fi
++ if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ case $UNAME_PROCESSOR in
++ i386) UNAME_PROCESSOR=x86_64 ;;
++ powerpc) UNAME_PROCESSOR=powerpc64 ;;
++ esac
++ fi
++ fi
++ elif test "$UNAME_PROCESSOR" = i386 ; then
++ # Avoid executing cc on OS X 10.9, as it ships with a stub
++ # that puts up a graphical alert prompting to install
++ # developer tools. Any system running Mac OS X 10.7 or
++ # later (Darwin 11 and later) is required to have a 64-bit
++ # processor. This is not true of the ARM version of Darwin
++ # that Apple uses in portable devices.
++ UNAME_PROCESSOR=x86_64
++ fi
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+- UNAME_PROCESSOR=i386
+- UNAME_MACHINE=pc
++ UNAME_PROCESSOR=i386
++ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+@@ -1237,7 +1297,7 @@
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+- NSE-?:NONSTOP_KERNEL:*:*)
++ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+@@ -1306,158 +1366,10 @@
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+-esac
+-
+-#echo '(No uname command or uname output not recognized.)' 1>&2
+-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+-
+-eval $set_cc_for_build
+-cat >$dummy.c <<EOF
+-#ifdef _SEQUENT_
+-# include <sys/types.h>
+-# include <sys/utsname.h>
+-#endif
+-main ()
+-{
+-#if defined (sony)
+-#if defined (MIPSEB)
+- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+- I don't know.... */
+- printf ("mips-sony-bsd\n"); exit (0);
+-#else
+-#include <sys/param.h>
+- printf ("m68k-sony-newsos%s\n",
+-#ifdef NEWSOS4
+- "4"
+-#else
+- ""
+-#endif
+- ); exit (0);
+-#endif
+-#endif
+-
+-#if defined (__arm) && defined (__acorn) && defined (__unix)
+- printf ("arm-acorn-riscix\n"); exit (0);
+-#endif
+-
+-#if defined (hp300) && !defined (hpux)
+- printf ("m68k-hp-bsd\n"); exit (0);
+-#endif
+-
+-#if defined (NeXT)
+-#if !defined (__ARCHITECTURE__)
+-#define __ARCHITECTURE__ "m68k"
+-#endif
+- int version;
+- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+- if (version < 4)
+- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+- else
+- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+- exit (0);
+-#endif
+-
+-#if defined (MULTIMAX) || defined (n16)
+-#if defined (UMAXV)
+- printf ("ns32k-encore-sysv\n"); exit (0);
+-#else
+-#if defined (CMU)
+- printf ("ns32k-encore-mach\n"); exit (0);
+-#else
+- printf ("ns32k-encore-bsd\n"); exit (0);
+-#endif
+-#endif
+-#endif
+-
+-#if defined (__386BSD__)
+- printf ("i386-pc-bsd\n"); exit (0);
+-#endif
+-
+-#if defined (sequent)
+-#if defined (i386)
+- printf ("i386-sequent-dynix\n"); exit (0);
+-#endif
+-#if defined (ns32000)
+- printf ("ns32k-sequent-dynix\n"); exit (0);
+-#endif
+-#endif
+-
+-#if defined (_SEQUENT_)
+- struct utsname un;
+-
+- uname(&un);
+-
+- if (strncmp(un.version, "V2", 2) == 0) {
+- printf ("i386-sequent-ptx2\n"); exit (0);
+- }
+- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+- printf ("i386-sequent-ptx1\n"); exit (0);
+- }
+- printf ("i386-sequent-ptx\n"); exit (0);
+-
+-#endif
+-
+-#if defined (vax)
+-# if !defined (ultrix)
+-# include <sys/param.h>
+-# if defined (BSD)
+-# if BSD == 43
+- printf ("vax-dec-bsd4.3\n"); exit (0);
+-# else
+-# if BSD == 199006
+- printf ("vax-dec-bsd4.3reno\n"); exit (0);
+-# else
+- printf ("vax-dec-bsd\n"); exit (0);
+-# endif
+-# endif
+-# else
+- printf ("vax-dec-bsd\n"); exit (0);
+-# endif
+-# else
+- printf ("vax-dec-ultrix\n"); exit (0);
+-# endif
+-#endif
+-
+-#if defined (alliant) && defined (i860)
+- printf ("i860-alliant-bsd\n"); exit (0);
+-#endif
+-
+- exit (1);
+-}
+-EOF
+-
+-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+- { echo "$SYSTEM_NAME"; exit; }
+-
+-# Apollos put the system type in the environment.
+-
+-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+-
+-# Convex versions that predate uname can use getsysinfo(1)
+-
+-if [ -x /usr/convex/getsysinfo ]
+-then
+- case `getsysinfo -f cpu_type` in
+- c1*)
+- echo c1-convex-bsd
+- exit ;;
+- c2*)
+- if getsysinfo -f scalar_acc
+- then echo c32-convex-bsd
+- else echo c2-convex-bsd
+- fi
+- exit ;;
+- c34*)
+- echo c34-convex-bsd
+- exit ;;
+- c38*)
+- echo c38-convex-bsd
++ x86_64:VMkernel:*:*)
++ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
+- c4*)
+- echo c4-convex-bsd
+- exit ;;
+- esac
+-fi
++esac
+
+ cat >&2 <<EOF
+ $0: unable to guess system type
+Index: config.sub
+--- ncurses-5.9/config.sub 2010-09-10 22:25:58.000000000 +0000
++++ ncurses-5.9-20141206/config.sub 2014-09-19 22:49:34.000000000 +0000
+@@ -1,38 +1,31 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+-# Free Software Foundation, Inc.
+-
+-timestamp='2010-09-11'
+-
+-# This file is (in principle) common to ALL GNU software.
+-# The presence of a machine in this file suggests that SOME GNU software
+-# can handle that machine. It does not imply ALL GNU software can.
+-#
+-# This file is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
++# Copyright 1992-2014 Free Software Foundation, Inc.
++
++timestamp='2014-09-11'
++
++# This file is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
+ # (at your option) any later version.
+ #
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-# GNU General Public License for more details.
++# This program is distributed in the hope that it will be useful, but
++# WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see <http://www.gnu.org/licenses/>.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+-# the same distribution terms that you use for the rest of that program.
++# the same distribution terms that you use for the rest of that
++# program. This Exception is an additional permission under section 7
++# of the GNU General Public License, version 3 ("GPLv3").
+
+
+-# Please send patches to <config-patches@gnu.org>. Submit a context
+-# diff and a properly formatted GNU ChangeLog entry.
++# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+@@ -75,9 +68,7 @@
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
+-Software Foundation, Inc.
++Copyright 1992-2014 Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -125,13 +116,17 @@
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
++ android-linux)
++ os=-linux-android
++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
++ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+@@ -154,7 +149,7 @@
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple | -axis | -knuth | -cray | -microblaze)
++ -apple | -axis | -knuth | -cray | -microblaze*)
+ os=
+ basic_machine=$1
+ ;;
+@@ -175,10 +170,10 @@
+ os=-chorusos
+ basic_machine=$1
+ ;;
+- -chorusrdb)
+- os=-chorusrdb
++ -chorusrdb)
++ os=-chorusrdb
+ basic_machine=$1
+- ;;
++ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+@@ -223,6 +218,12 @@
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
++ -lynx*178)
++ os=-lynxos178
++ ;;
++ -lynx*5)
++ os=-lynxos5
++ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+@@ -247,20 +248,28 @@
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
++ | aarch64 | aarch64_be \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
++ | arc | arceb \
++ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
++ | avr | avr32 \
++ | be32 | be64 \
+ | bfin \
+- | c4x | clipper \
++ | c4x | c8051 | clipper \
+ | d10v | d30v | dlx | dsp16xx \
++ | epiphany \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
++ | k1om \
++ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+- | maxq | mb | microblaze | mcore | mep | metag \
++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+@@ -274,34 +283,38 @@
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
++ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+- | nds32 | nds32le | nds32be\
+- | nios | nios2 \
++ | nds32 | nds32le | nds32be \
++ | nios | nios2 | nios2eb | nios2el \
+ | ns16k | ns32k \
+- | or32 \
++ | open8 | or1k | or1knd | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+- | rx \
++ | riscv32 | riscv64 \
++ | rl78 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+- | spu | strongarm \
+- | tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
++ | spu \
++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+- | v850 | v850e \
++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | we32k \
+- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+@@ -314,8 +327,7 @@
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+- # Motorola 68HC11/12.
++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+@@ -325,12 +337,27 @@
+ basic_machine=mt-unknown
+ ;;
+
++ strongarm | thumb | xscale)
++ basic_machine=arm-unknown
++ ;;
++ xgate)
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ xscaleeb)
++ basic_machine=armeb-unknown
++ ;;
++
++ xscaleel)
++ basic_machine=armel-unknown
++ ;;
++
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+- basic_machine=$basic_machine-pc
+- ;;
++ basic_machine=$basic_machine-pc
++ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+@@ -339,25 +366,31 @@
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
++ | aarch64-* | aarch64_be-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
++ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+- | clipper-* | craynv-* | cydra-* \
++ | c8051-* | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
++ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
++ | k1om-* \
++ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
++ | microblaze-* | microblazeel-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+@@ -371,35 +404,41 @@
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
++ | mipsisa32r6-* | mipsisa32r6el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
++ | mipsisa64r6-* | mipsisa64r6el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
++ | mipsr5900-* | mipsr5900el-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+- | nios-* | nios2-* \
++ | nios-* | nios2-* | nios2eb-* | nios2el-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
++ | open8-* \
++ | or1k*-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+- | romp-* | rs6000-* | rx-* \
++ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+- | tahoe-* | thumb-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
++ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+- | tile-* | tilegx-* \
++ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+- | v850-* | v850e-* | vax-* \
++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
++ | vax-* \
+ | we32k-* \
+- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+@@ -539,7 +578,7 @@
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+- cr16)
++ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+@@ -697,7 +736,6 @@
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+@@ -755,11 +793,15 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+- microblaze)
++ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
++ mingw64)
++ basic_machine=x86_64-pc
++ os=-mingw64
++ ;;
+ mingw32)
+- basic_machine=i386-pc
++ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+@@ -787,6 +829,10 @@
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
++ moxiebox)
++ basic_machine=moxie-unknown
++ os=-moxiebox
++ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+@@ -794,10 +840,18 @@
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
++ msys)
++ basic_machine=i686-pc
++ os=-msys
++ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
++ nacl)
++ basic_machine=le32-unknown
++ os=-nacl
++ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+@@ -950,9 +1004,10 @@
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+- ppc) basic_machine=powerpc-unknown
++ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ppc-* | ppcbe-*)
++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+@@ -977,7 +1032,11 @@
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+- rdos)
++ rdos | rdos64)
++ basic_machine=x86_64-pc
++ os=-rdos
++ ;;
++ rdos32)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+@@ -1046,6 +1105,9 @@
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
++ strongarm-* | thumb-*)
++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+@@ -1102,13 +1164,8 @@
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+- # This must be matched before tile*.
+- tilegx*)
+- basic_machine=tilegx-unknown
+- os=-linux-gnu
+- ;;
+ tile*)
+- basic_machine=tile-unknown
++ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+@@ -1178,6 +1235,9 @@
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
++ xscale-* | xscalee[bl]-*)
++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+@@ -1303,29 +1363,29 @@
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+- | -sym* | -kopensolaris* \
++ | -sym* | -kopensolaris* | -plan9* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+- | -openbsd* | -solidbsd* \
++ | -bitrig* | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -linux-android* \
+- | -linux-newlib* | -linux-uclibc* \
+- | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+ | -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* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+@@ -1449,9 +1509,6 @@
+ -aros*)
+ os=-aros
+ ;;
+- -kaos*)
+- os=-kaos
+- ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+@@ -1500,6 +1557,12 @@
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
++ c8051-*)
++ os=-elf
++ ;;
++ hexagon-*)
++ os=-elf
++ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+@@ -1527,9 +1590,6 @@
+ ;;
+ m68000-sun)
+ os=-sunos3
+- # This also exists in the configure program, but was not the
+- # default.
+- # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+Index: configure
+--- ncurses-5.9/configure 2011-03-31 23:35:51.000000000 +0000
++++ ncurses-5.9-20141206/configure 2014-12-06 13:39:03.000000000 +0000
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# From configure.in Revision: 1.520 .
++# From configure.in Revision: 1.590 .
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by Autoconf 2.52.20101002.
++# Generated by Autoconf 2.52.20141204.
+ #
+ # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+ # Free Software Foundation, Inc.
+@@ -171,15 +171,16 @@
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+-datadir='${prefix}/share'
++datarootdir='${prefix}/share'
++datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
++infodir='${datarootdir}/info'
++mandir='${datarootdir}/man'
+
+ # Identity of this package.
+ PACKAGE_NAME=
+@@ -230,6 +231,13 @@
+ | --da=*)
+ datadir=$ac_optarg ;;
+
++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
++ | --dataroo | --dataro | --datar)
++ ac_prev=datarootdir ;;
++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
++ datarootdir=$ac_optarg ;;
++
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+@@ -505,7 +513,7 @@
+ done
+
+ # Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
++for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+ do
+ eval ac_val=$`echo $ac_var`
+@@ -654,15 +662,16 @@
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+- --datadir=DIR read-only architecture-independent data [PREFIX/share]
++ --datarootdir=DIR read-only architecture-independent data [PREFIX/share]
++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+- --infodir=DIR info documentation [PREFIX/info]
+- --mandir=DIR man documentation [PREFIX/man]
++ --infodir=DIR info documentation [DATAROOTDIR/info]
++ --mandir=DIR man documentation [DATAROOTDIR/man]
+ EOF
+
+ cat <<\EOF
+@@ -694,14 +703,16 @@
+ --with-rel-version=XXX override derived release version
+ --with-abi-version=XXX override derived ABI version
+ --with-system-type=XXX test: override derived host system-type
++ --without-ada suppress check for Ada95, don't build demo
+ --without-cxx do not adjust ncurses bool to match C++
+ --without-cxx-binding do not build C++ binding and demo
+- --without-ada suppress check for Ada95, don't build demo
++ --disable-db-install suppress install of terminal database
+ --without-manpages suppress install of manpages
+- --without-progs suppress build with programs (e.g., tic)
+- --without-tests suppress build with test-programs
++ --without-progs suppress build/install with programs (e.g., tic)
++ --without-tests suppress build/install with test-programs
+ --without-curses-h install curses.h as ncurses.h only
+ --with-pkg-config{=path} enable/disable use of pkg-config
++ --with-pkg-config-libdir=XXX use given directory for installing pc-files
+ --enable-pc-files generate and install .pc files for pkg-config
+ --enable-mixed-case tic should assume mixed-case filenames
+ --with-install-prefix prefixes actual install-location ($DESTDIR)
+@@ -719,6 +730,8 @@
+ --with-normal generate normal-libraries (default)
+ --with-debug generate debug-libraries (default)
+ --with-profile generate profile-libraries
++ --with-cxx-shared generate C++ shared-libraries
++ --with-lib-prefix override library-prefix
+ --with-termlib generate separate terminfo library
+ --with-ticlib generate separate tic library
+ --with-gpm use Alessandro Rubini's GPM library
+@@ -727,6 +740,10 @@
+ --enable-rpath use rpath option when generating shared libraries
+ --disable-relink relink shared libraries during install
+ --with-shlib-version=X Specify rel or abi version for shared libs
++ --with-libtool-opts=XXX specify additional libtool options
++ --with-export-syms=XXX limit exported symbols using libtool
++ --with-versioned-syms=X markup versioned symbols using ld
++ --disable-lib-suffixes disable library suffixes
+ --disable-rpath-hack don't add rpath options for additional libraries
+ Fine-Tuning Your Configuration:
+ --disable-overwrite leave out the link to -lcurses
+@@ -735,6 +752,7 @@
+ --with-hashed-db specify hashed-database library
+ --with-fallbacks=XXX specify list of fallback terminal descriptions
+ --without-xterm-new specify if xterm terminfo should be old version
++ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL
+ --with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo)
+ --with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo)
+ --disable-big-core assume machine has little memory
+@@ -759,6 +777,7 @@
+ --with-ospeed=TYPE override type of ospeed variable
+ --with-mmask-t=TYPE override type of mmask_t
+ --with-ccharw-max=XXX override size CCHARW_MAX
++ --with-tparm-arg=TYPE override parameter type of tparm
+ --with-rcs-ids compile-in RCS identifiers
+ Options to Specify How Manpages are Installed:
+ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
+@@ -796,8 +815,9 @@
+ --disable-scroll-hints compile without scroll-hints code
+ --enable-wgetch-events compile with experimental wgetch-events code
+ Testing/development Options:
+- --enable-echo build: display "compiling" commands (default)
++ --disable-echo do not display "compiling" commands
+ --enable-warnings build: turn on GCC compiler warnings
++ --enable-string-hacks work around bogus compiler/loader warnings
+ --enable-assertions test: turn on generation of assertion code
+ --with-dmalloc test: use Gray Watson's dmalloc library
+ --with-dbmalloc test: use Conor Cahill's dbmalloc library
+@@ -806,11 +826,12 @@
+ --enable-expanded test: generate functions for certain macros
+ --disable-macros test: use functions rather than macros
+ --with-trace test: add trace() function to all models of ncurses
++ --disable-gnat-projects test: disable GNAT projects even if usable
+ Ada95 Binding Options:
+ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)
+ --with-ada-include=DIR Ada includes are in DIR (default: PREFIX/share/ada/adainclude)
+ --with-ada-objects=DIR Ada objects are in DIR (default: PREFIX/lib/ada/adalib)
+- --with-ada-sharedlib=XX build Ada95 shared-library
++ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -883,7 +904,7 @@
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by $as_me, which was
+-generated by GNU Autoconf 2.52.20101002. Invocation command line was
++generated by GNU Autoconf 2.52.20141204. Invocation command line was
+
+ $ $0 $@
+
+@@ -1007,7 +1028,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+- { echo "$as_me:1010: loading site script $ac_site_file" >&5
++ { echo "$as_me:1031: loading site script $ac_site_file" >&5
+ echo "$as_me: loading site script $ac_site_file" >&6;}
+ cat "$ac_site_file" >&5
+ . "$ac_site_file"
+@@ -1018,7 +1039,7 @@
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+- { echo "$as_me:1021: loading cache $cache_file" >&5
++ { echo "$as_me:1042: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -1026,7 +1047,7 @@
+ esac
+ fi
+ else
+- { echo "$as_me:1029: creating cache $cache_file" >&5
++ { echo "$as_me:1050: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+ fi
+@@ -1042,21 +1063,21 @@
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+- { echo "$as_me:1045: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++ { echo "$as_me:1066: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+- { echo "$as_me:1049: error: \`$ac_var' was not set in the previous run" >&5
++ { echo "$as_me:1070: error: \`$ac_var' was not set in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+- { echo "$as_me:1055: error: \`$ac_var' has changed since the previous run:" >&5
++ { echo "$as_me:1076: error: \`$ac_var' has changed since the previous run:" >&5
+ echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+- { echo "$as_me:1057: former value: $ac_old_val" >&5
++ { echo "$as_me:1078: former value: $ac_old_val" >&5
+ echo "$as_me: former value: $ac_old_val" >&2;}
+- { echo "$as_me:1059: current value: $ac_new_val" >&5
++ { echo "$as_me:1080: current value: $ac_new_val" >&5
+ echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+@@ -1075,9 +1096,9 @@
+ fi
+ done
+ if $ac_cache_corrupted; then
+- { echo "$as_me:1078: error: changes in the environment can compromise the build" >&5
++ { echo "$as_me:1099: error: changes in the environment can compromise the build" >&5
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- { { echo "$as_me:1080: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++ { { echo "$as_me:1101: 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
+@@ -1089,19 +1110,19 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+- *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T=' ' ;;
++case `echo "testing\c" 2>/dev/null; echo 1,2,3`,`echo -n testing 2>/dev/null; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C= # newlines do not sed ;-) only broken shells would use this case anyway
++ ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+ esac
+ echo "#! $SHELL" >conftest.sh
+ echo "exit 0" >>conftest.sh
+ chmod +x conftest.sh
+-if { (echo "$as_me:1101: PATH=\".;.\"; conftest.sh") >&5
++if { (echo "$as_me:1122: PATH=\".;.\"; conftest.sh") >&5
+ (PATH=".;."; conftest.sh) 2>&5
+ ac_status=$?
+- echo "$as_me:1104: \$? = $ac_status" >&5
++ echo "$as_me:1125: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_path_separator=';'
+ else
+@@ -1114,7 +1135,7 @@
+
+ top_builddir=`pwd`
+
+-echo "$as_me:1117: checking for egrep" >&5
++echo "$as_me:1138: checking for egrep" >&5
+ echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+ if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1124,11 +1145,11 @@
+ else ac_cv_prog_egrep='egrep'
+ fi
+ fi
+-echo "$as_me:1127: result: $ac_cv_prog_egrep" >&5
++echo "$as_me:1148: result: $ac_cv_prog_egrep" >&5
+ echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+-test -z "$EGREP" && { { echo "$as_me:1131: error: No egrep program found" >&5
++test -z "$EGREP" && { { echo "$as_me:1152: error: No egrep program found" >&5
+ echo "$as_me: error: No egrep program found" >&2;}
+ { (exit 1); exit 1; }; }
+
+@@ -1138,15 +1159,99 @@
+ cf_cv_abi_version=${NCURSES_MAJOR}
+ cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
+ cf_cv_timestamp=`date`
+-echo "$as_me:1141: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
++echo "$as_me:1162: 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
+
++if test -f $srcdir/VERSION ; then
++ echo "$as_me:1166: checking for package version" >&5
++echo $ECHO_N "checking for package version... $ECHO_C" >&6
++
++ # if there are not enough fields, cut returns the last one...
++ cf_field1=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
++ cf_field2=`sed -e '2,$d' $srcdir/VERSION|cut -f2`
++ cf_field3=`sed -e '2,$d' $srcdir/VERSION|cut -f3`
++
++ # this is how CF_BUNDLED_INTL uses $VERSION:
++ VERSION="$cf_field1"
++
++ VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
++ test -z "$VERSION_MAJOR" && { { echo "$as_me:1178: error: missing major-version" >&5
++echo "$as_me: error: missing major-version" >&2;}
++ { (exit 1); exit 1; }; }
++
++ VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[^.]*\.//' -e 's/-.*//'`
++ test -z "$VERSION_MINOR" && { { echo "$as_me:1183: error: missing minor-version" >&5
++echo "$as_me: error: missing minor-version" >&2;}
++ { (exit 1); exit 1; }; }
++
++ echo "$as_me:1187: result: ${VERSION_MAJOR}.${VERSION_MINOR}" >&5
++echo "${ECHO_T}${VERSION_MAJOR}.${VERSION_MINOR}" >&6
++
++ echo "$as_me:1190: checking for package patch date" >&5
++echo $ECHO_N "checking for package patch date... $ECHO_C" >&6
++ VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[^-]*-//'`
++ case .$VERSION_PATCH in
++ .)
++ { { echo "$as_me:1195: error: missing patch-date $VERSION_PATCH" >&5
++echo "$as_me: error: missing patch-date $VERSION_PATCH" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++ .[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])
++ ;;
++ *)
++ { { echo "$as_me:1202: error: illegal patch-date $VERSION_PATCH" >&5
++echo "$as_me: error: illegal patch-date $VERSION_PATCH" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++ esac
++ echo "$as_me:1207: result: $VERSION_PATCH" >&5
++echo "${ECHO_T}$VERSION_PATCH" >&6
++else
++ { { echo "$as_me:1210: error: did not find $srcdir/VERSION" >&5
++echo "$as_me: error: did not find $srcdir/VERSION" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++# show the actual data that we have for versions:
++test -n "$verbose" && echo " ABI VERSION $VERSION" 1>&6
++
++echo "${as_me:-configure}:1218: testing ABI VERSION $VERSION ..." 1>&5
++
++test -n "$verbose" && echo " VERSION_MAJOR $VERSION_MAJOR" 1>&6
++
++echo "${as_me:-configure}:1222: testing VERSION_MAJOR $VERSION_MAJOR ..." 1>&5
++
++test -n "$verbose" && echo " VERSION_MINOR $VERSION_MINOR" 1>&6
++
++echo "${as_me:-configure}:1226: testing VERSION_MINOR $VERSION_MINOR ..." 1>&5
++
++test -n "$verbose" && echo " VERSION_PATCH $VERSION_PATCH" 1>&6
++
++echo "${as_me:-configure}:1230: testing VERSION_PATCH $VERSION_PATCH ..." 1>&5
++
++ cf_PACKAGE=NCURSES
++ PACKAGE=ncurses
++
++cat >>confdefs.h <<EOF
++#define PACKAGE "$PACKAGE"
++EOF
++
++cf_PACKAGE=`echo "$cf_PACKAGE" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ cat >>confdefs.h <<EOF
++#define ${cf_PACKAGE}_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}"
++EOF
++
++ cat >>confdefs.h <<EOF
++#define ${cf_PACKAGE}_PATCHDATE ${VERSION_PATCH}
++EOF
++
+ test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
+
+ # Check whether --with-rel-version or --without-rel-version was given.
+ if test "${with_rel_version+set}" = set; then
+ withval="$with_rel_version"
+- { echo "$as_me:1149: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
++ { echo "$as_me:1254: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+ echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
+ cf_cv_rel_version=$withval
+ fi;
+@@ -1159,13 +1264,13 @@
+ [0-9]*) #(vi
+ ;;
+ *)
+- { { echo "$as_me:1162: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
++ { { echo "$as_me:1267: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+ echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ else
+- { { echo "$as_me:1168: error: Release major-version value is empty" >&5
++ { { echo "$as_me:1273: error: Release major-version value is empty" >&5
+ echo "$as_me: error: Release major-version value is empty" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1175,13 +1280,13 @@
+ [0-9]*) #(vi
+ ;;
+ *)
+- { { echo "$as_me:1178: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
++ { { echo "$as_me:1283: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+ echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ else
+- { { echo "$as_me:1184: error: Release minor-version value is empty" >&5
++ { { echo "$as_me:1289: error: Release minor-version value is empty" >&5
+ echo "$as_me: error: Release minor-version value is empty" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1191,7 +1296,7 @@
+ # Check whether --with-abi-version or --without-abi-version was given.
+ if test "${with_abi_version+set}" = set; then
+ withval="$with_abi_version"
+- { echo "$as_me:1194: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
++ { echo "$as_me:1299: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+ echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
+ cf_cv_abi_version=$withval
+ fi;
+@@ -1201,13 +1306,13 @@
+ [0-9]*) #(vi
+ ;;
+ *)
+- { { echo "$as_me:1204: error: ABI version is not a number: $cf_cv_abi_version" >&5
++ { { echo "$as_me:1309: error: ABI version is not a number: $cf_cv_abi_version" >&5
+ echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+ else
+- { { echo "$as_me:1210: error: ABI version value is empty" >&5
++ { { echo "$as_me:1315: error: ABI version value is empty" >&5
+ echo "$as_me: error: ABI version value is empty" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1229,7 +1334,7 @@
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+- { { echo "$as_me:1232: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++ { { echo "$as_me:1337: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1239,11 +1344,11 @@
+
+ # Make sure we can run config.sub.
+ $ac_config_sub sun4 >/dev/null 2>&1 ||
+- { { echo "$as_me:1242: error: cannot run $ac_config_sub" >&5
++ { { echo "$as_me:1347: error: cannot run $ac_config_sub" >&5
+ echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+-echo "$as_me:1246: checking build system type" >&5
++echo "$as_me:1351: checking build system type" >&5
+ echo $ECHO_N "checking build system type... $ECHO_C" >&6
+ if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1252,23 +1357,23 @@
+ test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+ test -z "$ac_cv_build_alias" &&
+- { { echo "$as_me:1255: error: cannot guess build type; you must specify one" >&5
++ { { echo "$as_me:1360: error: cannot guess build type; you must specify one" >&5
+ echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+- { { echo "$as_me:1259: error: $ac_config_sub $ac_cv_build_alias failed." >&5
++ { { echo "$as_me:1364: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1264: result: $ac_cv_build" >&5
++echo "$as_me:1369: result: $ac_cv_build" >&5
+ echo "${ECHO_T}$ac_cv_build" >&6
+ build=$ac_cv_build
+ build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+-echo "$as_me:1271: checking host system type" >&5
++echo "$as_me:1376: checking host system type" >&5
+ echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1277,12 +1382,12 @@
+ test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+- { { echo "$as_me:1280: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++ { { echo "$as_me:1385: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1285: result: $ac_cv_host" >&5
++echo "$as_me:1390: result: $ac_cv_host" >&5
+ echo "${ECHO_T}$ac_cv_host" >&6
+ host=$ac_cv_host
+ host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1290,7 +1395,7 @@
+ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+ if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+- echo "$as_me:1293: checking target system type" >&5
++ echo "$as_me:1398: checking target system type" >&5
+ echo $ECHO_N "checking target system type... $ECHO_C" >&6
+ if test "${ac_cv_target+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1299,12 +1404,12 @@
+ test "x$ac_cv_target_alias" = "x" &&
+ ac_cv_target_alias=$ac_cv_host_alias
+ ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+- { { echo "$as_me:1302: error: $ac_config_sub $ac_cv_target_alias failed" >&5
++ { { echo "$as_me:1407: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1307: result: $ac_cv_target" >&5
++echo "$as_me:1412: result: $ac_cv_target" >&5
+ echo "${ECHO_T}$ac_cv_target" >&6
+ target=$ac_cv_target
+ target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1324,7 +1429,8 @@
+ system_name="`(hostname) 2>/dev/null`"
+ fi
+ fi
+-test -n "$system_name" && cat >>confdefs.h <<EOF
++test -n "$system_name" &&
++cat >>confdefs.h <<EOF
+ #define SYSTEM_NAME "$system_name"
+ EOF
+
+@@ -1335,13 +1441,13 @@
+ fi
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+-test -n "$cf_cv_system_name" && echo "$as_me:1338: result: Configuring for $cf_cv_system_name" >&5
++test -n "$cf_cv_system_name" && echo "$as_me:1444: result: Configuring for $cf_cv_system_name" >&5
+ echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
+
+ if test ".$system_name" != ".$cf_cv_system_name" ; then
+- echo "$as_me:1342: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
++ echo "$as_me:1448: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
+- { { echo "$as_me:1344: error: \"Please remove config.cache and try again.\"" >&5
++ { { echo "$as_me:1450: error: \"Please remove config.cache and try again.\"" >&5
+ echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1349,9 +1455,11 @@
+ # Check whether --with-system-type or --without-system-type was given.
+ if test "${with_system_type+set}" = set; then
+ withval="$with_system_type"
+- { echo "$as_me:1352: WARNING: overriding system type to $withval" >&5
++ { echo "$as_me:1458: WARNING: overriding system type to $withval" >&5
+ echo "$as_me: WARNING: overriding system type to $withval" >&2;}
+- cf_cv_system_name=$withval
++ cf_cv_system_name=$withval
++ host_os=$withval
++
+ fi;
+
+ ### Save the given $CFLAGS to allow user-override.
+@@ -1359,23 +1467,23 @@
+
+ ### Default install-location
+
+-echo "$as_me:1362: checking for prefix" >&5
++echo "$as_me:1470: checking for prefix" >&5
+ echo $ECHO_N "checking for prefix... $ECHO_C" >&6
+ if test "x$prefix" = "xNONE" ; then
+ case "$cf_cv_system_name" in
+ # non-vendor systems don't have a conflict
+- openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
++ openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
+ prefix=/usr
+ ;;
+ *) prefix=$ac_default_prefix
+ ;;
+ esac
+ fi
+-echo "$as_me:1374: result: $prefix" >&5
++echo "$as_me:1482: result: $prefix" >&5
+ echo "${ECHO_T}$prefix" >&6
+
+ if test "x$prefix" = "xNONE" ; then
+-echo "$as_me:1378: checking for default include-directory" >&5
++echo "$as_me:1486: checking for default include-directory" >&5
+ echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
+ test -n "$verbose" && echo 1>&6
+ for cf_symbol in \
+@@ -1398,11 +1506,26 @@
+ fi
+ test -n "$verbose" && echo " tested $cf_dir" 1>&6
+ done
+-echo "$as_me:1401: result: $includedir" >&5
++echo "$as_me:1509: result: $includedir" >&5
+ echo "${ECHO_T}$includedir" >&6
+ fi
+
+ ### Checks for programs.
++
++# Check whether --with-ada or --without-ada was given.
++if test "${with_ada+set}" = set; then
++ withval="$with_ada"
++ cf_with_ada=$withval
++else
++ cf_with_ada=yes
++fi;
++if test "x$cf_with_ada" = xyes
++then
++ cf_PROG_CC="gnatgcc gcc cc"
++else
++ cf_PROG_CC="gcc cc"
++fi
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -1410,213 +1533,11 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+ if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:1415: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-echo "$as_me:1430: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:1438: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:1441: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+- ac_ct_CC=$CC
+- # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:1450: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="gcc"
+-echo "$as_me:1465: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:1473: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:1476: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- CC=$ac_ct_CC
+-else
+- CC="$ac_cv_prog_CC"
+-fi
+-
+-if test -z "$CC"; then
+- if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:1489: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_CC="${ac_tool_prefix}cc"
+-echo "$as_me:1504: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:1512: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:1515: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+- ac_ct_CC=$CC
+- # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:1524: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$ac_ct_CC"; then
+- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-ac_cv_prog_ac_ct_CC="cc"
+-echo "$as_me:1539: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+- echo "$as_me:1547: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+- echo "$as_me:1550: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+- CC=$ac_ct_CC
+-else
+- CC="$ac_cv_prog_CC"
+-fi
+-
+-fi
+-if test -z "$CC"; then
+- # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:1563: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test -n "$CC"; then
+- ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+- ac_prog_rejected=no
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- $as_executable_p "$ac_dir/$ac_word" || continue
+-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+- ac_prog_rejected=yes
+- continue
+-fi
+-ac_cv_prog_CC="cc"
+-echo "$as_me:1583: found $ac_dir/$ac_word" >&5
+-break
+-done
+-
+-if test $ac_prog_rejected = yes; then
+- # We found a bogon in the path, so make sure we never use it.
+- set dummy $ac_cv_prog_CC
+- shift
+- if test $# != 0; then
+- # We chose a different compiler from the bogus one.
+- # However, it has the same basename, so the bogon will be chosen
+- # first if we set CC to just the basename; use the full file name.
+- shift
+- set dummy "$ac_dir/$ac_word" ${1+"$@"}
+- shift
+- ac_cv_prog_CC="$@"
+- fi
+-fi
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+- echo "$as_me:1605: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+- echo "$as_me:1608: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$CC"; then
+- if test -n "$ac_tool_prefix"; then
+- for ac_prog in cl
++ for ac_prog in $cf_PROG_CC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1619: checking for $ac_word" >&5
++echo "$as_me:1540: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1631,7 +1552,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1634: found $ac_dir/$ac_word" >&5
++echo "$as_me:1555: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1639,10 +1560,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1642: result: $CC" >&5
++ echo "$as_me:1563: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1645: result: no" >&5
++ echo "$as_me:1566: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1651,11 +1572,11 @@
+ fi
+ if test -z "$CC"; then
+ ac_ct_CC=$CC
+- for ac_prog in cl
++ for ac_prog in $cf_PROG_CC
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1658: checking for $ac_word" >&5
++echo "$as_me:1579: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1670,7 +1591,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+-echo "$as_me:1673: found $ac_dir/$ac_word" >&5
++echo "$as_me:1594: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1678,10 +1599,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1681: result: $ac_ct_CC" >&5
++ echo "$as_me:1602: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1684: result: no" >&5
++ echo "$as_me:1605: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1691,34 +1612,32 @@
+ CC=$ac_ct_CC
+ fi
+
+-fi
+-
+-test -z "$CC" && { { echo "$as_me:1696: error: no acceptable cc found in \$PATH" >&5
++test -z "$CC" && { { echo "$as_me:1615: error: no acceptable cc found in \$PATH" >&5
+ echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Provide some information about the compiler.
+-echo "$as_me:1701:" \
++echo "$as_me:1620:" \
+ "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1704: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1623: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1707: \$? = $ac_status" >&5
++ echo "$as_me:1626: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1709: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1628: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1712: \$? = $ac_status" >&5
++ echo "$as_me:1631: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1714: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1633: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1717: \$? = $ac_status" >&5
++ echo "$as_me:1636: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1721 "configure"
++#line 1640 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1734,13 +1653,13 @@
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-echo "$as_me:1737: checking for C compiler default output" >&5
++echo "$as_me:1656: checking for C compiler default output" >&5
+ echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:1740: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:1659: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+- echo "$as_me:1743: \$? = $ac_status" >&5
++ echo "$as_me:1662: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+ # not robust to junk in `.', hence go to wildcards (a.*) only as a last
+@@ -1763,34 +1682,34 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1766: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:1685: error: C compiler cannot create executables" >&5
+ echo "$as_me: error: C compiler cannot create executables" >&2;}
+ { (exit 77); exit 77; }; }
+ fi
+
+ ac_exeext=$ac_cv_exeext
+-echo "$as_me:1772: result: $ac_file" >&5
++echo "$as_me:1691: result: $ac_file" >&5
+ echo "${ECHO_T}$ac_file" >&6
+
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1777: checking whether the C compiler works" >&5
++echo "$as_me:1696: checking whether the C compiler works" >&5
+ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+- { (eval echo "$as_me:1783: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1702: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1786: \$? = $ac_status" >&5
++ echo "$as_me:1705: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+- { { echo "$as_me:1793: error: cannot run C compiled programs.
++ { { echo "$as_me:1712: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&5
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&2;}
+@@ -1798,24 +1717,24 @@
+ fi
+ fi
+ fi
+-echo "$as_me:1801: result: yes" >&5
++echo "$as_me:1720: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+
+ rm -f a.out a.exe conftest$ac_cv_exeext
+ ac_clean_files=$ac_clean_files_save
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1808: checking whether we are cross compiling" >&5
++echo "$as_me:1727: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1810: result: $cross_compiling" >&5
++echo "$as_me:1729: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+
+-echo "$as_me:1813: checking for executable suffix" >&5
++echo "$as_me:1732: checking for executable suffix" >&5
+ echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1815: \"$ac_link\"") >&5
++if { (eval echo "$as_me:1734: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:1818: \$? = $ac_status" >&5
++ echo "$as_me:1737: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+@@ -1831,25 +1750,25 @@
+ esac
+ done
+ else
+- { { echo "$as_me:1834: error: cannot compute EXEEXT: cannot compile and link" >&5
++ { { echo "$as_me:1753: error: cannot compute EXEEXT: cannot compile and link" >&5
+ echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest$ac_cv_exeext
+-echo "$as_me:1840: result: $ac_cv_exeext" >&5
++echo "$as_me:1759: result: $ac_cv_exeext" >&5
+ echo "${ECHO_T}$ac_cv_exeext" >&6
+
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-echo "$as_me:1846: checking for object suffix" >&5
++echo "$as_me:1765: checking for object suffix" >&5
+ echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+ if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1852 "configure"
++#line 1771 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1861,10 +1780,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1864: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1783: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1867: \$? = $ac_status" >&5
++ echo "$as_me:1786: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+@@ -1876,24 +1795,24 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1879: error: cannot compute OBJEXT: cannot compile" >&5
++{ { echo "$as_me:1798: error: cannot compute OBJEXT: cannot compile" >&5
+ echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1886: result: $ac_cv_objext" >&5
++echo "$as_me:1805: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1890: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:1809: checking whether we are using the GNU C compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1896 "configure"
++#line 1815 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1908,16 +1827,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1911: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1830: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1914: \$? = $ac_status" >&5
++ echo "$as_me:1833: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1917: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1836: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1920: \$? = $ac_status" >&5
++ echo "$as_me:1839: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -1929,19 +1848,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:1932: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:1851: result: $ac_cv_c_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+ GCC=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="-g"
+-echo "$as_me:1938: checking whether $CC accepts -g" >&5
++echo "$as_me:1857: checking whether $CC accepts -g" >&5
+ echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1944 "configure"
++#line 1863 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1953,16 +1872,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1956: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1875: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1959: \$? = $ac_status" >&5
++ echo "$as_me:1878: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1962: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1881: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1965: \$? = $ac_status" >&5
++ echo "$as_me:1884: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+ else
+@@ -1972,7 +1891,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1975: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:1894: result: $ac_cv_prog_cc_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+@@ -1999,16 +1918,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2002: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1921: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2005: \$? = $ac_status" >&5
++ echo "$as_me:1924: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2008: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1927: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2011: \$? = $ac_status" >&5
++ echo "$as_me:1930: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+@@ -2020,7 +1939,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2023 "configure"
++#line 1942 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -2033,16 +1952,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2036: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1955: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2039: \$? = $ac_status" >&5
++ echo "$as_me:1958: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2042: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1961: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2045: \$? = $ac_status" >&5
++ echo "$as_me:1964: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -2052,7 +1971,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2055 "configure"
++#line 1974 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -2064,16 +1983,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2067: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1986: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2070: \$? = $ac_status" >&5
++ echo "$as_me:1989: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2073: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1992: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2076: \$? = $ac_status" >&5
++ echo "$as_me:1995: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -2103,86 +2022,277 @@
+
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+- echo "$as_me:2106: checking version of $CC" >&5
++ echo "$as_me:2025: checking version of $CC" >&5
+ echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
+- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ test -z "$GCC_VERSION" && GCC_VERSION=unknown
+- echo "$as_me:2110: result: $GCC_VERSION" >&5
++ echo "$as_me:2029: result: $GCC_VERSION" >&5
+ echo "${ECHO_T}$GCC_VERSION" >&6
+ fi
+
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-ac_main_return=return
+-echo "$as_me:2120: checking how to run the C preprocessor" >&5
+-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+-# On Suns, sometimes $CPP names a directory.
+-if test -n "$CPP" && test -d "$CPP"; then
+- CPP=
+-fi
+-if test -z "$CPP"; then
+- if test "${ac_cv_prog_CPP+set}" = set; then
++echo "$as_me:2033: checking for $CC option to accept ANSI C" >&5
++echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
++if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- # Double quotes because CPP needs to be expanded
+- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+- do
+- ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+- # Use a header file that comes with gcc, so configuring glibc
+- # with a fresh cross-compiler works.
+- # On the NeXT, cc -E runs the code through the compiler's parser,
+- # not just through cpp. "Syntax error" is here to catch this case.
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 2141 "configure"
++ ac_cv_prog_cc_stdc=no
++ac_save_CC=$CC
++cat >conftest.$ac_ext <<_ACEOF
++#line 2041 "configure"
+ #include "confdefs.h"
+-#include <assert.h>
+- Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:2146: \"$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:2152: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- :
+-else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- # Broken: fails on valid input.
+-continue
+-fi
++#include <stdarg.h>
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
++struct buf { int x; };
++FILE * (*rcsopen) (struct buf *, struct stat *, int);
++static char *e (p, i)
++ char **p;
++ int i;
++{
++ return p[i];
++}
++static char *f (char * (*g) (char **, int), char **p, ...)
++{
++ char *s;
++ va_list v;
++ va_start (v,p);
++ s = g (p, va_arg (v,int));
++ va_end (v);
++ return s;
++}
++int test (int i, double x);
++struct s1 {int (*f) (int a);};
++struct s2 {int (*f) (double a);};
++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
++int argc;
++char **argv;
++int
++main ()
++{
++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
++ ;
++ return 0;
++}
++_ACEOF
++# Don't try gcc -ansi; that turns off useful extensions and
++# breaks some systems' header files.
++# AIX -qlanglvl=ansi
++# Ultrix and OSF/1 -std1
++# HP-UX 10.20 and later -Ae
++# HP-UX older versions -Aa -D_HPUX_SOURCE
++# SVR4 -Xc -D__EXTENSIONS__
++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
++do
++ CC="$ac_save_CC $ac_arg"
++ rm -f conftest.$ac_objext
++if { (eval echo "$as_me:2090: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:2093: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:2096: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:2099: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_prog_cc_stdc=$ac_arg
++break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext
++done
++rm -f conftest.$ac_ext conftest.$ac_objext
++CC=$ac_save_CC
++
++fi
++
++case "x$ac_cv_prog_cc_stdc" in
++ x|xno)
++ echo "$as_me:2116: result: none needed" >&5
++echo "${ECHO_T}none needed" >&6 ;;
++ *)
++ echo "$as_me:2119: result: $ac_cv_prog_cc_stdc" >&5
++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
++ CC="$CC $ac_cv_prog_cc_stdc" ;;
++esac
++
++# This should have been defined by AC_PROG_CC
++: ${CC:=cc}
++
++echo "$as_me:2127: checking \$CC variable" >&5
++echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
++case "$CC" in #(vi
++*[\ \ ]-[IUD]*)
++ echo "$as_me:2131: result: broken" >&5
++echo "${ECHO_T}broken" >&6
++ { echo "$as_me:2133: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
++echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
++ # humor him...
++ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'`
++ CC=`echo "$CC" | sed -e 's/[ ].*//'`
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_flags
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++ ;;
++*)
++ echo "$as_me:2219: result: ok" >&5
++echo "${ECHO_T}ok" >&6
++ ;;
++esac
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++ac_main_return=return
++echo "$as_me:2230: checking how to run the C preprocessor" >&5
++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
++# On Suns, sometimes $CPP names a directory.
++if test -n "$CPP" && test -d "$CPP"; then
++ CPP=
++fi
++if test -z "$CPP"; then
++ if test "${ac_cv_prog_CPP+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ # Double quotes because CPP needs to be expanded
++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
++ do
++ ac_preproc_ok=false
++for ac_c_preproc_warn_flag in '' yes
++do
++ # Use a header file that comes with gcc, so configuring glibc
++ # with a fresh cross-compiler works.
++ # On the NeXT, cc -E runs the code through the compiler's parser,
++ # not just through cpp. "Syntax error" is here to catch this case.
++ cat >conftest.$ac_ext <<_ACEOF
++#line 2251 "configure"
++#include "confdefs.h"
++#include <assert.h>
++ Syntax error
++_ACEOF
++if { (eval echo "$as_me:2256: \"$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:2262: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ # Broken: fails on valid input.
++continue
++fi
+ rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2175 "configure"
++#line 2285 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2179: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2289: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2185: \$? = $ac_status" >&5
++ echo "$as_me:2295: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2219,7 +2329,7 @@
+ else
+ ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:2222: result: $CPP" >&5
++echo "$as_me:2332: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -2229,18 +2339,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2232 "configure"
++#line 2342 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:2237: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2347: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2243: \$? = $ac_status" >&5
++ echo "$as_me:2353: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2263,17 +2373,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2266 "configure"
++#line 2376 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2270: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2380: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2276: \$? = $ac_status" >&5
++ echo "$as_me:2386: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2301,7 +2411,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:2304: error: C preprocessor \"$CPP\" fails sanity check" >&5
++ { { echo "$as_me:2414: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -2314,14 +2424,14 @@
+ ac_main_return=return
+
+ if test $ac_cv_c_compiler_gnu = yes; then
+- echo "$as_me:2317: checking whether $CC needs -traditional" >&5
++ echo "$as_me:2427: checking whether $CC needs -traditional" >&5
+ echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+ if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_pattern="Autoconf.*'x'"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2324 "configure"
++#line 2434 "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+ int Autoconf = TIOCGETP;
+@@ -2336,7 +2446,7 @@
+
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2339 "configure"
++#line 2449 "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+ int Autoconf = TCGETA;
+@@ -2349,14 +2459,14 @@
+
+ fi
+ fi
+-echo "$as_me:2352: result: $ac_cv_prog_gcc_traditional" >&5
++echo "$as_me:2462: result: $ac_cv_prog_gcc_traditional" >&5
+ echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+ if test $ac_cv_prog_gcc_traditional = yes; then
+ CC="$CC -traditional"
+ fi
+ fi
+
+-echo "$as_me:2359: checking whether $CC understands -c and -o together" >&5
++echo "$as_me:2469: checking whether $CC understands -c and -o together" >&5
+ echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
+ if test "${cf_cv_prog_CC_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2372,15 +2482,15 @@
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+-if { (eval echo "$as_me:2375: \"$ac_try\"") >&5
++if { (eval echo "$as_me:2485: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2378: \$? = $ac_status" >&5
++ echo "$as_me:2488: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- test -f conftest2.$ac_objext && { (eval echo "$as_me:2380: \"$ac_try\"") >&5
++ test -f conftest2.$ac_objext && { (eval echo "$as_me:2490: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2383: \$? = $ac_status" >&5
++ echo "$as_me:2493: \$? = $ac_status" >&5
+ (exit $ac_status); };
+ then
+ eval cf_cv_prog_CC_c_o=yes
+@@ -2391,349 +2501,55 @@
+
+ fi
+ if test $cf_cv_prog_CC_c_o = yes; then
+- echo "$as_me:2394: result: yes" >&5
++ echo "$as_me:2504: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+- echo "$as_me:2397: result: no" >&5
++ echo "$as_me:2507: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+-echo "$as_me:2401: checking for POSIXized ISC" >&5
+-echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
+-if test -d /etc/conf/kconfig.d &&
+- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+-then
+- echo "$as_me:2406: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- ISC=yes # If later tests want to check for ISC.
++if test "$cross_compiling" = yes ; then
++ LDCONFIG=:
++else
++case "$cf_cv_system_name" in #(vi
++dragonfly*|mirbsd*|freebsd*) #(vi
++ test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
++ ;;
++*) LDPATH=$PATH:/sbin:/usr/sbin
++ # Extract the first word of "ldconfig", so it can be a program name with args.
++set dummy ldconfig; ac_word=$2
++echo "$as_me:2521: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_path_LDCONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ case $LDCONFIG in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
++ ;;
++ *)
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$LDPATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ if $as_executable_p "$ac_dir/$ac_word"; then
++ ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
++ echo "$as_me:2538: found $ac_dir/$ac_word" >&5
++ break
++fi
++done
+
+-cat >>confdefs.h <<\EOF
+-#define _POSIX_SOURCE 1
+-EOF
++ ;;
++esac
++fi
++LDCONFIG=$ac_cv_path_LDCONFIG
+
+- if test "$GCC" = yes; then
+- CC="$CC -posix"
+- else
+- CC="$CC -Xp"
+- fi
++if test -n "$LDCONFIG"; then
++ echo "$as_me:2549: result: $LDCONFIG" >&5
++echo "${ECHO_T}$LDCONFIG" >&6
+ else
+- echo "$as_me:2420: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- ISC=
+-fi
+-
+-echo "$as_me:2425: checking for ${CC:-cc} option to accept ANSI C" >&5
+-echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
+-if test "${cf_cv_ansi_cc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-cf_cv_ansi_cc=no
+-cf_save_CFLAGS="$CFLAGS"
+-cf_save_CPPFLAGS="$CPPFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc
+-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+-for cf_arg in "-DCC_HAS_PROTOS" \
+- "" \
+- -qlanglvl=ansi \
+- -std1 \
+- -Ae \
+- "-Aa -D_HPUX_SOURCE" \
+- -Xc
+-do
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_arg
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 2529 "configure"
+-#include "confdefs.h"
+-
+-#ifndef CC_HAS_PROTOS
+-#if !defined(__STDC__) || (__STDC__ != 1)
+-choke me
+-#endif
+-#endif
+-
+-int
+-main ()
+-{
+-
+- int test (int i, double x);
+- struct s1 {int (*f) (int a);};
+- struct s2 {int (*f) (double a);};
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2550: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:2553: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2556: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:2559: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_cv_ansi_cc="$cf_arg"; break
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-done
+-CFLAGS="$cf_save_CFLAGS"
+-CPPFLAGS="$cf_save_CPPFLAGS"
+-
+-fi
+-echo "$as_me:2572: result: $cf_cv_ansi_cc" >&5
+-echo "${ECHO_T}$cf_cv_ansi_cc" >&6
+-
+-if test "$cf_cv_ansi_cc" != "no"; then
+-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_cv_ansi_cc
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+-else
+- cat >>confdefs.h <<\EOF
+-#define CC_HAS_PROTOS 1
+-EOF
+-
+-fi
+-fi
+-
+-if test "$cf_cv_ansi_cc" = "no"; then
+- { { echo "$as_me:2665: error: Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto" >&5
+-echo "$as_me: error: Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-case $cf_cv_system_name in
+-os2*)
+- CFLAGS="$CFLAGS -Zmt"
+- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+- CXXFLAGS="$CXXFLAGS -Zmt"
+- # autoconf's macro sets -Zexe and suffix both, which conflict:w
+- LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
+- ac_cv_exeext=.exe
+- ;;
+-esac
+-
+-PROG_EXT="$EXEEXT"
+-
+-test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
+-#define PROG_EXT "$PROG_EXT"
+-EOF
+-
+-if test "$cross_compiling" = yes ; then
+- LDCONFIG=:
+-else
+-case "$cf_cv_system_name" in #(vi
+-dragonfly*|freebsd*) #(vi
+- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
+- ;;
+-*) LDPATH=$PATH:/sbin:/usr/sbin
+- # Extract the first word of "ldconfig", so it can be a program name with args.
+-set dummy ldconfig; ac_word=$2
+-echo "$as_me:2705: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_LDCONFIG+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- case $LDCONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
+- ;;
+- *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$LDPATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
+- echo "$as_me:2722: found $ac_dir/$ac_word" >&5
+- break
+-fi
+-done
+-
+- ;;
+-esac
+-fi
+-LDCONFIG=$ac_cv_path_LDCONFIG
+-
+-if test -n "$LDCONFIG"; then
+- echo "$as_me:2733: result: $LDCONFIG" >&5
+-echo "${ECHO_T}$LDCONFIG" >&6
+-else
+- echo "$as_me:2736: result: no" >&5
++ echo "$as_me:2552: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2741,7 +2557,7 @@
+ esac
+ fi
+
+-echo "$as_me:2744: checking if you want to ensure bool is consistent with C++" >&5
++echo "$as_me:2560: 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.
+@@ -2751,7 +2567,7 @@
+ else
+ cf_with_cxx=yes
+ fi;
+-echo "$as_me:2754: result: $cf_with_cxx" >&5
++echo "$as_me:2570: result: $cf_with_cxx" >&5
+ echo "${ECHO_T}$cf_with_cxx" >&6
+ if test "X$cf_with_cxx" = Xno ; then
+ CXX=""
+@@ -2769,7 +2585,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:2772: checking for $ac_word" >&5
++echo "$as_me:2588: 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
+@@ -2784,7 +2600,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:2787: found $ac_dir/$ac_word" >&5
++echo "$as_me:2603: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2792,10 +2608,10 @@
+ fi
+ CXX=$ac_cv_prog_CXX
+ if test -n "$CXX"; then
+- echo "$as_me:2795: result: $CXX" >&5
++ echo "$as_me:2611: result: $CXX" >&5
+ echo "${ECHO_T}$CXX" >&6
+ else
+- echo "$as_me:2798: result: no" >&5
++ echo "$as_me:2614: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2808,7 +2624,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:2811: checking for $ac_word" >&5
++echo "$as_me:2627: 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
+@@ -2823,7 +2639,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:2826: found $ac_dir/$ac_word" >&5
++echo "$as_me:2642: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2831,10 +2647,10 @@
+ fi
+ ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+ if test -n "$ac_ct_CXX"; then
+- echo "$as_me:2834: result: $ac_ct_CXX" >&5
++ echo "$as_me:2650: result: $ac_ct_CXX" >&5
+ echo "${ECHO_T}$ac_ct_CXX" >&6
+ else
+- echo "$as_me:2837: result: no" >&5
++ echo "$as_me:2653: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2846,32 +2662,32 @@
+ fi
+
+ # Provide some information about the compiler.
+-echo "$as_me:2849:" \
++echo "$as_me:2665:" \
+ "checking for C++ compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:2852: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2668: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:2855: \$? = $ac_status" >&5
++ echo "$as_me:2671: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:2857: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2673: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:2860: \$? = $ac_status" >&5
++ echo "$as_me:2676: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:2862: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:2678: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:2865: \$? = $ac_status" >&5
++ echo "$as_me:2681: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+-echo "$as_me:2868: checking whether we are using the GNU C++ compiler" >&5
++echo "$as_me:2684: checking whether we are using the GNU C++ compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+ if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2874 "configure"
++#line 2690 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -2886,16 +2702,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2889: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2705: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2892: \$? = $ac_status" >&5
++ echo "$as_me:2708: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2895: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2711: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2898: \$? = $ac_status" >&5
++ echo "$as_me:2714: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -2907,19 +2723,19 @@
+ ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:2910: result: $ac_cv_cxx_compiler_gnu" >&5
++echo "$as_me:2726: result: $ac_cv_cxx_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+ GXX=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CXXFLAGS=${CXXFLAGS+set}
+ ac_save_CXXFLAGS=$CXXFLAGS
+ CXXFLAGS="-g"
+-echo "$as_me:2916: checking whether $CXX accepts -g" >&5
++echo "$as_me:2732: checking whether $CXX accepts -g" >&5
+ echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cxx_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2922 "configure"
++#line 2738 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -2931,16 +2747,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2934: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2750: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2937: \$? = $ac_status" >&5
++ echo "$as_me:2753: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2940: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2756: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2943: \$? = $ac_status" >&5
++ echo "$as_me:2759: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cxx_g=yes
+ else
+@@ -2950,7 +2766,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:2953: result: $ac_cv_prog_cxx_g" >&5
++echo "$as_me:2769: 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
+@@ -2977,7 +2793,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2980 "configure"
++#line 2796 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -2990,16 +2806,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2993: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2809: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2996: \$? = $ac_status" >&5
++ echo "$as_me:2812: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2999: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2815: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3002: \$? = $ac_status" >&5
++ echo "$as_me:2818: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -3009,7 +2825,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3012 "configure"
++#line 2828 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -3021,16 +2837,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3024: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2840: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3027: \$? = $ac_status" >&5
++ echo "$as_me:2843: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3030: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2846: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3033: \$? = $ac_status" >&5
++ echo "$as_me:2849: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -3053,18 +2869,90 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+
+- # 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:3060: 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_ext=cc
++ac_cpp='$CXXCPP $CPPFLAGS'
++ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
++ac_main_return=return
++
++ if test "x$cf_with_cxx" != xno
++ then
++ # Several of the C++ configurations do not work, particularly when
++ # cross-compiling (20140913 -TD)
++ echo "$as_me:2883: checking if $CXX works" >&5
++echo $ECHO_N "checking if $CXX works... $ECHO_C" >&6
++
++ save_CPPFLAGS="$CPPFLAGS"
++ eval cf_includedir=${includedir}
++ CPPFLAGS="$CPPFLAGS -I${cf_includedir}"
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 2891 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <stdio.h>
++
++int
++main ()
++{
++
++ printf("Hello world!\n")
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:2908: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:2911: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:2914: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:2917: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cxx_works=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cxx_works=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS="$save_CPPFLAGS"
++
++ echo "$as_me:2928: result: $cf_cxx_works" >&5
++echo "${ECHO_T}$cf_cxx_works" >&6
++ if test "x$cf_cxx_works" = xno
++ then
++ { echo "$as_me:2932: WARNING: Ignore $CXX, since it cannot compile hello-world." >&5
++echo "$as_me: WARNING: Ignore $CXX, since it cannot compile hello-world." >&2;}
++ cf_with_cxx=no; CXX=""; GXX="";
++ 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
++ac_main_return=return
++
++ # autoconf 2.5x removed the error (hardcoding it to g++, or just blank)
++ if test "$CXX" = "g++" ; then
++ # Extract the first word of "g++", so it can be a program name with args.
++set dummy g++; ac_word=$2
++echo "$as_me:2948: 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
+@@ -3074,7 +2962,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_CXX="$ac_dir/$ac_word"
+- echo "$as_me:3077: found $ac_dir/$ac_word" >&5
++ echo "$as_me:2965: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -3085,28 +2973,30 @@
+ CXX=$ac_cv_path_CXX
+
+ if test -n "$CXX"; then
+- echo "$as_me:3088: result: $CXX" >&5
++ echo "$as_me:2976: result: $CXX" >&5
+ echo "${ECHO_T}$CXX" >&6
+ else
+- echo "$as_me:3091: result: no" >&5
++ echo "$as_me:2979: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ fi
+- if test "$CXX" = "g++" ; then
+- { echo "$as_me:3097: WARNING: ignoring hardcoded g++" >&5
+-echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
++ case "x$CXX" in #(vi
++ x|xg++)
++ { echo "$as_me:2986: WARNING: You don't have any C++ compiler, too bad" >&5
++echo "$as_me: WARNING: You don't have any C++ compiler, too bad" >&2;}
+ cf_with_cxx=no; CXX=""; GXX="";
+- fi
++ ;;
++ esac
+ fi
+
+ GXX_VERSION=none
+ if test "$GXX" = yes; then
+- echo "$as_me:3105: checking version of g++" >&5
+-echo $ECHO_N "checking version of g++... $ECHO_C" >&6
++ echo "$as_me:2995: checking version of ${CXX:-g++}" >&5
++echo $ECHO_N "checking version of ${CXX:-g++}... $ECHO_C" >&6
+ GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ test -z "$GXX_VERSION" && GXX_VERSION=unknown
+- echo "$as_me:3109: result: $GXX_VERSION" >&5
++ echo "$as_me:2999: result: $GXX_VERSION" >&5
+ echo "${ECHO_T}$GXX_VERSION" >&6
+ fi
+
+@@ -3114,12 +3004,12 @@
+ 1*|2.[0-6]*)
+ # GXX=""; CXX=""; ac_cv_prog_gxx=no
+ # cf_cxx_library=no
+- { echo "$as_me:3117: WARNING: templates do not work" >&5
++ { echo "$as_me:3007: WARNING: templates do not work" >&5
+ echo "$as_me: WARNING: templates do not work" >&2;}
+ ;;
+ esac
+
+-echo "$as_me:3122: checking if you want to build C++ binding and demo" >&5
++echo "$as_me:3012: checking if you want to build C++ binding and demo" >&5
+ echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
+
+ # Check whether --with-cxx-binding or --without-cxx-binding was given.
+@@ -3129,23 +3019,28 @@
+ else
+ cf_with_cxx_binding=$cf_with_cxx
+ fi;
+-echo "$as_me:3132: result: $cf_with_cxx_binding" >&5
++echo "$as_me:3022: result: $cf_with_cxx_binding" >&5
+ echo "${ECHO_T}$cf_with_cxx_binding" >&6
+
+-echo "$as_me:3135: checking if you want to build with Ada95" >&5
++echo "$as_me:3025: checking if you want to build with Ada95" >&5
+ echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
++echo "$as_me:3027: result: $cf_with_ada" >&5
++echo "${ECHO_T}$cf_with_ada" >&6
+
+-# Check whether --with-ada or --without-ada was given.
+-if test "${with_ada+set}" = set; then
+- withval="$with_ada"
+- cf_with_ada=$withval
++echo "$as_me:3030: checking if you want to install terminal database" >&5
++echo $ECHO_N "checking if you want to install terminal database... $ECHO_C" >&6
++
++# Check whether --enable-db-install or --disable-db-install was given.
++if test "${enable_db_install+set}" = set; then
++ enableval="$enable_db_install"
++ cf_with_db_install=$enableval
+ else
+- cf_with_ada=yes
++ cf_with_db_install=yes
+ fi;
+-echo "$as_me:3145: result: $cf_with_ada" >&5
+-echo "${ECHO_T}$cf_with_ada" >&6
++echo "$as_me:3040: result: $cf_with_db_install" >&5
++echo "${ECHO_T}$cf_with_db_install" >&6
+
+-echo "$as_me:3148: checking if you want to install manpages" >&5
++echo "$as_me:3043: checking if you want to install manpages" >&5
+ echo $ECHO_N "checking if you want to install manpages... $ECHO_C" >&6
+
+ # Check whether --with-manpages or --without-manpages was given.
+@@ -3155,10 +3050,10 @@
+ else
+ cf_with_manpages=yes
+ fi;
+-echo "$as_me:3158: result: $cf_with_manpages" >&5
++echo "$as_me:3053: result: $cf_with_manpages" >&5
+ echo "${ECHO_T}$cf_with_manpages" >&6
+
+-echo "$as_me:3161: checking if you want to build programs such as tic" >&5
++echo "$as_me:3056: checking if you want to build programs such as tic" >&5
+ echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
+
+ # Check whether --with-progs or --without-progs was given.
+@@ -3168,10 +3063,10 @@
+ else
+ cf_with_progs=yes
+ fi;
+-echo "$as_me:3171: result: $cf_with_progs" >&5
++echo "$as_me:3066: result: $cf_with_progs" >&5
+ echo "${ECHO_T}$cf_with_progs" >&6
+
+-echo "$as_me:3174: checking if you want to build test-programs" >&5
++echo "$as_me:3069: checking if you want to build test-programs" >&5
+ echo $ECHO_N "checking if you want to build test-programs... $ECHO_C" >&6
+
+ # Check whether --with-tests or --without-tests was given.
+@@ -3181,10 +3076,10 @@
+ else
+ cf_with_tests=yes
+ fi;
+-echo "$as_me:3184: result: $cf_with_tests" >&5
++echo "$as_me:3079: result: $cf_with_tests" >&5
+ echo "${ECHO_T}$cf_with_tests" >&6
+
+-echo "$as_me:3187: checking if you wish to install curses.h" >&5
++echo "$as_me:3082: checking if you wish to install curses.h" >&5
+ echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
+
+ # Check whether --with-curses-h or --without-curses-h was given.
+@@ -3194,7 +3089,7 @@
+ else
+ with_curses_h=yes
+ fi;
+-echo "$as_me:3197: result: $with_curses_h" >&5
++echo "$as_me:3092: result: $with_curses_h" >&5
+ echo "${ECHO_T}$with_curses_h" >&6
+
+ modules_to_build="ncurses"
+@@ -3220,7 +3115,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3223: checking for $ac_word" >&5
++echo "$as_me:3118: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AWK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3235,7 +3130,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AWK="$ac_prog"
+-echo "$as_me:3238: found $ac_dir/$ac_word" >&5
++echo "$as_me:3133: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3243,21 +3138,21 @@
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+- echo "$as_me:3246: result: $AWK" >&5
++ echo "$as_me:3141: result: $AWK" >&5
+ echo "${ECHO_T}$AWK" >&6
+ else
+- echo "$as_me:3249: result: no" >&5
++ echo "$as_me:3144: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ test -n "$AWK" && break
+ done
+
+-test -z "$AWK" && { { echo "$as_me:3256: error: No awk program found" >&5
++test -z "$AWK" && { { echo "$as_me:3151: error: No awk program found" >&5
+ echo "$as_me: error: No awk program found" >&2;}
+ { (exit 1); exit 1; }; }
+
+-echo "$as_me:3260: checking for egrep" >&5
++echo "$as_me:3155: checking for egrep" >&5
+ echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+ if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3267,11 +3162,11 @@
+ else ac_cv_prog_egrep='egrep'
+ fi
+ fi
+-echo "$as_me:3270: result: $ac_cv_prog_egrep" >&5
++echo "$as_me:3165: result: $ac_cv_prog_egrep" >&5
+ echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+-test -z "$EGREP" && { { echo "$as_me:3274: error: No egrep program found" >&5
++test -z "$EGREP" && { { echo "$as_me:3169: error: No egrep program found" >&5
+ echo "$as_me: error: No egrep program found" >&2;}
+ { (exit 1); exit 1; }; }
+
+@@ -3287,7 +3182,7 @@
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:3290: checking for a BSD compatible install" >&5
++echo "$as_me:3185: checking for a BSD compatible install" >&5
+ echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+@@ -3336,7 +3231,7 @@
+ INSTALL=$ac_install_sh
+ fi
+ fi
+-echo "$as_me:3339: result: $INSTALL" >&5
++echo "$as_me:3234: result: $INSTALL" >&5
+ echo "${ECHO_T}$INSTALL" >&6
+
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+@@ -3361,7 +3256,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3364: checking for $ac_word" >&5
++echo "$as_me:3259: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LINT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3376,7 +3271,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LINT="$ac_prog"
+-echo "$as_me:3379: found $ac_dir/$ac_word" >&5
++echo "$as_me:3274: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3384,28 +3279,28 @@
+ fi
+ LINT=$ac_cv_prog_LINT
+ if test -n "$LINT"; then
+- echo "$as_me:3387: result: $LINT" >&5
++ echo "$as_me:3282: result: $LINT" >&5
+ echo "${ECHO_T}$LINT" >&6
+ else
+- echo "$as_me:3390: result: no" >&5
++ echo "$as_me:3285: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ test -n "$LINT" && break
+ done
+
+-echo "$as_me:3397: checking whether ln -s works" >&5
++echo "$as_me:3292: checking whether ln -s works" >&5
+ echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+ LN_S=$as_ln_s
+ if test "$LN_S" = "ln -s"; then
+- echo "$as_me:3401: result: yes" >&5
++ echo "$as_me:3296: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+- echo "$as_me:3404: result: no, using $LN_S" >&5
++ echo "$as_me:3299: result: no, using $LN_S" >&5
+ echo "${ECHO_T}no, using $LN_S" >&6
+ fi
+
+-echo "$as_me:3408: checking if $LN_S -f options work" >&5
++echo "$as_me:3303: checking if $LN_S -f options work" >&5
+ echo $ECHO_N "checking if $LN_S -f options work... $ECHO_C" >&6
+
+ rm -f conf$$.src conf$$dst
+@@ -3417,12 +3312,12 @@
+ cf_prog_ln_sf=no
+ fi
+ rm -f conf$$.dst conf$$src
+-echo "$as_me:3420: result: $cf_prog_ln_sf" >&5
++echo "$as_me:3315: result: $cf_prog_ln_sf" >&5
+ echo "${ECHO_T}$cf_prog_ln_sf" >&6
+
+ test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
+
+-echo "$as_me:3425: checking for long file names" >&5
++echo "$as_me:3320: checking for long file names" >&5
+ echo $ECHO_N "checking for long file names... $ECHO_C" >&6
+ if test "${ac_cv_sys_long_file_names+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3461,7 +3356,7 @@
+ rm -rf $ac_xdir 2>/dev/null
+ done
+ fi
+-echo "$as_me:3464: result: $ac_cv_sys_long_file_names" >&5
++echo "$as_me:3359: result: $ac_cv_sys_long_file_names" >&5
+ echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
+ if test $ac_cv_sys_long_file_names = yes; then
+
+@@ -3473,7 +3368,7 @@
+
+ # if we find pkg-config, check if we should install the ".pc" files.
+
+-echo "$as_me:3476: checking if you want to use pkg-config" >&5
++echo "$as_me:3371: checking if you want to use pkg-config" >&5
+ echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
+
+ # Check whether --with-pkg-config or --without-pkg-config was given.
+@@ -3483,7 +3378,7 @@
+ else
+ cf_pkg_config=yes
+ fi;
+-echo "$as_me:3486: result: $cf_pkg_config" >&5
++echo "$as_me:3381: result: $cf_pkg_config" >&5
+ echo "${ECHO_T}$cf_pkg_config" >&6
+
+ case $cf_pkg_config in #(vi
+@@ -3491,10 +3386,11 @@
+ PKG_CONFIG=none
+ ;;
+ yes) #(vi
+- if test -n "$ac_tool_prefix"; then
++
++if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+-echo "$as_me:3497: checking for $ac_word" >&5
++echo "$as_me:3393: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3511,7 +3407,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:3514: found $ac_dir/$ac_word" >&5
++ echo "$as_me:3410: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -3522,10 +3418,10 @@
+ PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+ if test -n "$PKG_CONFIG"; then
+- echo "$as_me:3525: result: $PKG_CONFIG" >&5
++ echo "$as_me:3421: result: $PKG_CONFIG" >&5
+ echo "${ECHO_T}$PKG_CONFIG" >&6
+ else
+- echo "$as_me:3528: result: no" >&5
++ echo "$as_me:3424: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3534,7 +3430,7 @@
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+ set dummy pkg-config; ac_word=$2
+-echo "$as_me:3537: checking for $ac_word" >&5
++echo "$as_me:3433: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3551,7 +3447,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:3554: found $ac_dir/$ac_word" >&5
++ echo "$as_me:3450: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -3563,10 +3459,10 @@
+ ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+
+ if test -n "$ac_pt_PKG_CONFIG"; then
+- echo "$as_me:3566: result: $ac_pt_PKG_CONFIG" >&5
++ echo "$as_me:3462: result: $ac_pt_PKG_CONFIG" >&5
+ echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+ else
+- echo "$as_me:3569: result: no" >&5
++ echo "$as_me:3465: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3597,7 +3493,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval PKG_CONFIG="$PKG_CONFIG"
+ case ".$PKG_CONFIG" in #(vi
+ .NONE/*)
+@@ -3609,7 +3505,7 @@
+ PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:3612: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
++ { { echo "$as_me:3508: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -3617,16 +3513,51 @@
+
+ fi
+
+-if test "$PKG_CONFIG" != no ; then
+- echo "$as_me:3621: checking if we should install .pc files for $PKG_CONFIG" >&5
+-echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
++if test "$PKG_CONFIG" != none ; then
++ echo "$as_me:3517: checking for $PKG_CONFIG library directory" >&5
++echo $ECHO_N "checking for $PKG_CONFIG library directory... $ECHO_C" >&6
+
+- # Leave this as something that can be overridden in the environment.
+- if test -z "$PKG_CONFIG_LIBDIR" ; then
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
+- fi
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
++# Check whether --with-pkg-config-libdir or --without-pkg-config-libdir was given.
++if test "${with_pkg_config_libdir+set}" = set; then
++ withval="$with_pkg_config_libdir"
++ PKG_CONFIG_LIBDIR=$withval
++else
++ PKG_CONFIG_LIBDIR=yes
++fi;
++
++ case x$PKG_CONFIG_LIBDIR in #(vi
++ x/*) #(vi
++ ;;
++ xyes) #(vi
++ # look for the library directory using the same prefix as the executable
++ cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`
++ case x`(arch) 2>/dev/null` in #(vi
++ *64) #(vi
++ for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
++ do
++ if test -d $cf_config/pkgconfig
++ then
++ PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
++ break
++ fi
++ done
++ ;;
++ *)
++ PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
++ ;;
++ esac
++ ;;
++ *)
++ ;;
++ esac
++
++ echo "$as_me:3554: result: $PKG_CONFIG_LIBDIR" >&5
++echo "${ECHO_T}$PKG_CONFIG_LIBDIR" >&6
++fi
++
++if test "$PKG_CONFIG" != none ; then
++ echo "$as_me:3559: checking if we should install .pc files for $PKG_CONFIG" >&5
++echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
+
+ # Check whether --enable-pc-files or --disable-pc-files was given.
+ if test "${enable_pc_files+set}" = set; then
+@@ -3635,18 +3566,48 @@
+ else
+ enable_pc_files=no
+ fi;
+- echo "$as_me:3638: result: $enable_pc_files" >&5
++ echo "$as_me:3569: result: $enable_pc_files" >&5
+ echo "${ECHO_T}$enable_pc_files" >&6
+- else
+- echo "$as_me:3641: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
+-echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
+- enable_pc_files=no
++ if test "$enable_pc_files" != no
++ then
++
++if test "x$prefix" != xNONE; then
++ cf_path_syntax="$prefix"
++else
++ cf_path_syntax="$ac_default_prefix"
++fi
++
++case ".$PKG_CONFIG_LIBDIR" in #(vi
++.\$\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
++ ;;
++.\${*prefix}*|.\${*dir}*) #(vi
++ eval PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR"
++ case ".$PKG_CONFIG_LIBDIR" in #(vi
++ .NONE/*)
++ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++ esac
++ ;; #(vi
++.no|.NONE/*)
++ PKG_CONFIG_LIBDIR=`echo $PKG_CONFIG_LIBDIR | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++*)
++ { { echo "$as_me:3599: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&5
++echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG_LIBDIR\"" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++esac
++
+ fi
++else
++ enable_pc_files=no
+ fi
+
+-echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5
++echo "$as_me:3610: checking if we should assume mixed-case filenames" >&5
+ echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
+
+ # Check whether --enable-mixed-case or --disable-mixed-case was given.
+@@ -3656,11 +3617,11 @@
+ else
+ enable_mixedcase=auto
+ fi;
+-echo "$as_me:3659: result: $enable_mixedcase" >&5
++echo "$as_me:3620: result: $enable_mixedcase" >&5
+ echo "${ECHO_T}$enable_mixedcase" >&6
+ if test "$enable_mixedcase" = "auto" ; then
+
+-echo "$as_me:3663: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:3624: checking if filesystem supports mixed-case filenames" >&5
+ echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+ if test "${cf_cv_mixedcase+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3668,7 +3629,7 @@
+
+ if test "$cross_compiling" = yes ; then
+ case $target_alias in #(vi
+- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
+ cf_cv_mixedcase=no
+ ;;
+ *)
+@@ -3687,16 +3648,18 @@
+ fi
+
+ fi
+-echo "$as_me:3690: result: $cf_cv_mixedcase" >&5
++echo "$as_me:3651: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_mixedcase" = yes &&
++cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+ EOF
+
+ else
+ cf_cv_mixedcase=$enable_mixedcase
+- if test "$enable_mixedcase" = "yes" ; then
+- cat >>confdefs.h <<\EOF
++ if test "x$enable_mixedcase" = "xyes" ; then
++
++cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+ EOF
+
+@@ -3704,7 +3667,7 @@
+ fi
+
+ # do this after mixed-case option (tags/TAGS is not as important as tic).
+-echo "$as_me:3707: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:3670: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+ if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+@@ -3724,11 +3687,11 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+- echo "$as_me:3727: result: yes" >&5
++ echo "$as_me:3690: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+ else
+- echo "$as_me:3731: result: no" >&5
++ echo "$as_me:3694: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -3737,7 +3700,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3740: checking for $ac_word" >&5
++echo "$as_me:3703: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CTAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3752,7 +3715,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CTAGS="$ac_prog"
+-echo "$as_me:3755: found $ac_dir/$ac_word" >&5
++echo "$as_me:3718: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3760,10 +3723,10 @@
+ fi
+ CTAGS=$ac_cv_prog_CTAGS
+ if test -n "$CTAGS"; then
+- echo "$as_me:3763: result: $CTAGS" >&5
++ echo "$as_me:3726: result: $CTAGS" >&5
+ echo "${ECHO_T}$CTAGS" >&6
+ else
+- echo "$as_me:3766: result: no" >&5
++ echo "$as_me:3729: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3774,7 +3737,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:3777: checking for $ac_word" >&5
++echo "$as_me:3740: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ETAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3789,7 +3752,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ETAGS="$ac_prog"
+-echo "$as_me:3792: found $ac_dir/$ac_word" >&5
++echo "$as_me:3755: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3797,10 +3760,10 @@
+ fi
+ ETAGS=$ac_cv_prog_ETAGS
+ if test -n "$ETAGS"; then
+- echo "$as_me:3800: result: $ETAGS" >&5
++ echo "$as_me:3763: result: $ETAGS" >&5
+ echo "${ECHO_T}$ETAGS" >&6
+ else
+- echo "$as_me:3803: result: no" >&5
++ echo "$as_me:3766: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3809,7 +3772,7 @@
+
+ # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
+ set dummy ${CTAGS:-ctags}; ac_word=$2
+-echo "$as_me:3812: checking for $ac_word" >&5
++echo "$as_me:3775: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3824,7 +3787,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_LOWER_TAGS="yes"
+-echo "$as_me:3827: found $ac_dir/$ac_word" >&5
++echo "$as_me:3790: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3833,17 +3796,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+- echo "$as_me:3836: result: $MAKE_LOWER_TAGS" >&5
++ echo "$as_me:3799: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+- echo "$as_me:3839: result: no" >&5
++ echo "$as_me:3802: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ if test "$cf_cv_mixedcase" = yes ; then
+ # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
+ set dummy ${ETAGS:-etags}; ac_word=$2
+-echo "$as_me:3846: checking for $ac_word" >&5
++echo "$as_me:3809: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3858,7 +3821,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_UPPER_TAGS="yes"
+-echo "$as_me:3861: found $ac_dir/$ac_word" >&5
++echo "$as_me:3824: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3867,10 +3830,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+- echo "$as_me:3870: result: $MAKE_UPPER_TAGS" >&5
++ echo "$as_me:3833: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+- echo "$as_me:3873: result: no" >&5
++ echo "$as_me:3836: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3890,7 +3853,7 @@
+ MAKE_LOWER_TAGS="#"
+ fi
+
+-echo "$as_me:3893: checking for makeflags variable" >&5
++echo "$as_me:3856: 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
+@@ -3906,7 +3869,7 @@
+ CF_EOF
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[ ]*$,,'`
+ case "$cf_result" in
+- .*k)
++ .*k|.*kw)
+ cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
+ case "$cf_result" in
+ .*CC=*) cf_cv_makeflags=
+@@ -3924,13 +3887,13 @@
+ rm -f cf_makeflags.tmp
+
+ fi
+-echo "$as_me:3927: result: $cf_cv_makeflags" >&5
++echo "$as_me:3890: result: $cf_cv_makeflags" >&5
+ echo "${ECHO_T}$cf_cv_makeflags" >&6
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:3933: checking for $ac_word" >&5
++echo "$as_me:3896: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3945,7 +3908,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-echo "$as_me:3948: found $ac_dir/$ac_word" >&5
++echo "$as_me:3911: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3953,10 +3916,10 @@
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+- echo "$as_me:3956: result: $RANLIB" >&5
++ echo "$as_me:3919: result: $RANLIB" >&5
+ echo "${ECHO_T}$RANLIB" >&6
+ else
+- echo "$as_me:3959: result: no" >&5
++ echo "$as_me:3922: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -3965,7 +3928,7 @@
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+-echo "$as_me:3968: checking for $ac_word" >&5
++echo "$as_me:3931: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3980,7 +3943,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+-echo "$as_me:3983: found $ac_dir/$ac_word" >&5
++echo "$as_me:3946: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -3989,10 +3952,10 @@
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+- echo "$as_me:3992: result: $ac_ct_RANLIB" >&5
++ echo "$as_me:3955: result: $ac_ct_RANLIB" >&5
+ echo "${ECHO_T}$ac_ct_RANLIB" >&6
+ else
+- echo "$as_me:3995: result: no" >&5
++ echo "$as_me:3958: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4004,7 +3967,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ld; ac_word=$2
+-echo "$as_me:4007: checking for $ac_word" >&5
++echo "$as_me:3970: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4019,7 +3982,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LD="${ac_tool_prefix}ld"
+-echo "$as_me:4022: found $ac_dir/$ac_word" >&5
++echo "$as_me:3985: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4027,10 +3990,10 @@
+ fi
+ LD=$ac_cv_prog_LD
+ if test -n "$LD"; then
+- echo "$as_me:4030: result: $LD" >&5
++ echo "$as_me:3993: result: $LD" >&5
+ echo "${ECHO_T}$LD" >&6
+ else
+- echo "$as_me:4033: result: no" >&5
++ echo "$as_me:3996: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4039,7 +4002,7 @@
+ ac_ct_LD=$LD
+ # Extract the first word of "ld", so it can be a program name with args.
+ set dummy ld; ac_word=$2
+-echo "$as_me:4042: checking for $ac_word" >&5
++echo "$as_me:4005: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4054,7 +4017,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_LD="ld"
+-echo "$as_me:4057: found $ac_dir/$ac_word" >&5
++echo "$as_me:4020: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4063,10 +4026,10 @@
+ fi
+ ac_ct_LD=$ac_cv_prog_ac_ct_LD
+ if test -n "$ac_ct_LD"; then
+- echo "$as_me:4066: result: $ac_ct_LD" >&5
++ echo "$as_me:4029: result: $ac_ct_LD" >&5
+ echo "${ECHO_T}$ac_ct_LD" >&6
+ else
+- echo "$as_me:4069: result: no" >&5
++ echo "$as_me:4032: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4078,7 +4041,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:4081: checking for $ac_word" >&5
++echo "$as_me:4044: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4093,7 +4056,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:4096: found $ac_dir/$ac_word" >&5
++echo "$as_me:4059: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4101,10 +4064,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+- echo "$as_me:4104: result: $AR" >&5
++ echo "$as_me:4067: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+- echo "$as_me:4107: result: no" >&5
++ echo "$as_me:4070: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4113,7 +4076,7 @@
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:4116: checking for $ac_word" >&5
++echo "$as_me:4079: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4128,7 +4091,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:4131: found $ac_dir/$ac_word" >&5
++echo "$as_me:4094: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4137,10 +4100,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+- echo "$as_me:4140: result: $ac_ct_AR" >&5
++ echo "$as_me:4103: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+- echo "$as_me:4143: result: no" >&5
++ echo "$as_me:4106: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4150,9 +4113,83 @@
+ fi
+
+ if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
++set dummy ${ac_tool_prefix}nm; ac_word=$2
++echo "$as_me:4118: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_NM+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$NM"; then
++ ac_cv_prog_NM="$NM" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_NM="${ac_tool_prefix}nm"
++echo "$as_me:4133: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++NM=$ac_cv_prog_NM
++if test -n "$NM"; then
++ echo "$as_me:4141: result: $NM" >&5
++echo "${ECHO_T}$NM" >&6
++else
++ echo "$as_me:4144: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_NM"; then
++ ac_ct_NM=$NM
++ # Extract the first word of "nm", so it can be a program name with args.
++set dummy nm; ac_word=$2
++echo "$as_me:4153: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_NM+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_NM"; then
++ ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_NM="nm"
++echo "$as_me:4168: found $ac_dir/$ac_word" >&5
++break
++done
++
++ test -z "$ac_cv_prog_ac_ct_NM" && ac_cv_prog_ac_ct_NM="nm"
++fi
++fi
++ac_ct_NM=$ac_cv_prog_ac_ct_NM
++if test -n "$ac_ct_NM"; then
++ echo "$as_me:4177: result: $ac_ct_NM" >&5
++echo "${ECHO_T}$ac_ct_NM" >&6
++else
++ echo "$as_me:4180: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ NM=$ac_ct_NM
++else
++ NM="$ac_cv_prog_NM"
++fi
++
++if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ar; ac_word=$2
+-echo "$as_me:4155: checking for $ac_word" >&5
++echo "$as_me:4192: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4167,7 +4204,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+-echo "$as_me:4170: found $ac_dir/$ac_word" >&5
++echo "$as_me:4207: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4175,10 +4212,10 @@
+ fi
+ AR=$ac_cv_prog_AR
+ if test -n "$AR"; then
+- echo "$as_me:4178: result: $AR" >&5
++ echo "$as_me:4215: result: $AR" >&5
+ echo "${ECHO_T}$AR" >&6
+ else
+- echo "$as_me:4181: result: no" >&5
++ echo "$as_me:4218: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4187,7 +4224,7 @@
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+ set dummy ar; ac_word=$2
+-echo "$as_me:4190: checking for $ac_word" >&5
++echo "$as_me:4227: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4202,7 +4239,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_AR="ar"
+-echo "$as_me:4205: found $ac_dir/$ac_word" >&5
++echo "$as_me:4242: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4211,10 +4248,10 @@
+ fi
+ ac_ct_AR=$ac_cv_prog_ac_ct_AR
+ if test -n "$ac_ct_AR"; then
+- echo "$as_me:4214: result: $ac_ct_AR" >&5
++ echo "$as_me:4251: result: $ac_ct_AR" >&5
+ echo "${ECHO_T}$ac_ct_AR" >&6
+ else
+- echo "$as_me:4217: result: no" >&5
++ echo "$as_me:4254: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4223,7 +4260,7 @@
+ AR="$ac_cv_prog_AR"
+ fi
+
+-echo "$as_me:4226: checking for options to update archives" >&5
++echo "$as_me:4263: checking for options to update archives" >&5
+ echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
+ if test "${cf_cv_ar_flags+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4246,13 +4283,13 @@
+ rm -f conftest.a
+
+ cat >conftest.$ac_ext <<EOF
+-#line 4249 "configure"
++#line 4286 "configure"
+ int testdata[3] = { 123, 456, 789 };
+ EOF
+- if { (eval echo "$as_me:4252: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:4289: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4255: \$? = $ac_status" >&5
++ echo "$as_me:4292: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
+ $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
+@@ -4263,7 +4300,7 @@
+ else
+ test -n "$verbose" && echo " cannot compile test-program" 1>&6
+
+-echo "${as_me:-configure}:4266: testing cannot compile test-program ..." 1>&5
++echo "${as_me:-configure}:4303: testing cannot compile test-program ..." 1>&5
+
+ break
+ fi
+@@ -4271,7 +4308,7 @@
+ rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+
+ fi
+-echo "$as_me:4274: result: $cf_cv_ar_flags" >&5
++echo "$as_me:4311: result: $cf_cv_ar_flags" >&5
+ echo "${ECHO_T}$cf_cv_ar_flags" >&6
+
+ if test -n "$ARFLAGS" ; then
+@@ -4282,20 +4319,20 @@
+ ARFLAGS=$cf_cv_ar_flags
+ fi
+
+-echo "$as_me:4285: checking if you have specified an install-prefix" >&5
++echo "$as_me:4322: checking if you have specified an install-prefix" >&5
+ echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
+
+ # Check whether --with-install-prefix or --without-install-prefix was given.
+ if test "${with_install_prefix+set}" = set; then
+ withval="$with_install_prefix"
+- case "$withval" in #(vi
+- yes|no) #(vi
++ case "x$withval" in #(vi
++ xyes|xno) #(vi
+ ;;
+ *) DESTDIR="$withval"
+ ;;
+ esac
+ fi;
+-echo "$as_me:4298: result: $DESTDIR" >&5
++echo "$as_me:4335: result: $DESTDIR" >&5
+ echo "${ECHO_T}$DESTDIR" >&6
+
+ ###############################################################################
+@@ -4323,7 +4360,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:4326: checking for $ac_word" >&5
++echo "$as_me:4363: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_BUILD_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4338,7 +4375,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_BUILD_CC="$ac_prog"
+-echo "$as_me:4341: found $ac_dir/$ac_word" >&5
++echo "$as_me:4378: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -4346,10 +4383,10 @@
+ fi
+ BUILD_CC=$ac_cv_prog_BUILD_CC
+ if test -n "$BUILD_CC"; then
+- echo "$as_me:4349: result: $BUILD_CC" >&5
++ echo "$as_me:4386: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+ else
+- echo "$as_me:4352: result: no" >&5
++ echo "$as_me:4389: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -4357,12 +4394,12 @@
+ done
+
+ fi;
+- echo "$as_me:4360: checking for native build C compiler" >&5
++ echo "$as_me:4397: checking for native build C compiler" >&5
+ echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
+- echo "$as_me:4362: result: $BUILD_CC" >&5
++ echo "$as_me:4399: result: $BUILD_CC" >&5
+ echo "${ECHO_T}$BUILD_CC" >&6
+
+- echo "$as_me:4365: checking for native build C preprocessor" >&5
++ echo "$as_me:4402: checking for native build C preprocessor" >&5
+ echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
+
+ # Check whether --with-build-cpp or --without-build-cpp was given.
+@@ -4372,10 +4409,10 @@
+ else
+ BUILD_CPP='${BUILD_CC} -E'
+ fi;
+- echo "$as_me:4375: result: $BUILD_CPP" >&5
++ echo "$as_me:4412: result: $BUILD_CPP" >&5
+ echo "${ECHO_T}$BUILD_CPP" >&6
+
+- echo "$as_me:4378: checking for native build C flags" >&5
++ echo "$as_me:4415: checking for native build C flags" >&5
+ echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
+
+ # Check whether --with-build-cflags or --without-build-cflags was given.
+@@ -4383,10 +4420,10 @@
+ withval="$with_build_cflags"
+ BUILD_CFLAGS="$withval"
+ fi;
+- echo "$as_me:4386: result: $BUILD_CFLAGS" >&5
++ echo "$as_me:4423: result: $BUILD_CFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CFLAGS" >&6
+
+- echo "$as_me:4389: checking for native build C preprocessor-flags" >&5
++ echo "$as_me:4426: checking for native build C preprocessor-flags" >&5
+ echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
+
+ # Check whether --with-build-cppflags or --without-build-cppflags was given.
+@@ -4394,10 +4431,10 @@
+ withval="$with_build_cppflags"
+ BUILD_CPPFLAGS="$withval"
+ fi;
+- echo "$as_me:4397: result: $BUILD_CPPFLAGS" >&5
++ echo "$as_me:4434: result: $BUILD_CPPFLAGS" >&5
+ echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
+
+- echo "$as_me:4400: checking for native build linker-flags" >&5
++ echo "$as_me:4437: checking for native build linker-flags" >&5
+ echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
+
+ # Check whether --with-build-ldflags or --without-build-ldflags was given.
+@@ -4405,10 +4442,10 @@
+ withval="$with_build_ldflags"
+ BUILD_LDFLAGS="$withval"
+ fi;
+- echo "$as_me:4408: result: $BUILD_LDFLAGS" >&5
++ echo "$as_me:4445: result: $BUILD_LDFLAGS" >&5
+ echo "${ECHO_T}$BUILD_LDFLAGS" >&6
+
+- echo "$as_me:4411: checking for native build linker-libraries" >&5
++ echo "$as_me:4448: checking for native build linker-libraries" >&5
+ echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
+
+ # Check whether --with-build-libs or --without-build-libs was given.
+@@ -4416,7 +4453,7 @@
+ withval="$with_build_libs"
+ BUILD_LIBS="$withval"
+ fi;
+- echo "$as_me:4419: result: $BUILD_LIBS" >&5
++ echo "$as_me:4456: result: $BUILD_LIBS" >&5
+ echo "${ECHO_T}$BUILD_LIBS" >&6
+
+ # this assumes we're on Unix.
+@@ -4426,7 +4463,7 @@
+ : ${BUILD_CC:='${CC}'}
+
+ if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
+- { { echo "$as_me:4429: error: Cross-build requires two compilers.
++ { { echo "$as_me:4466: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&5
+ echo "$as_me: error: Cross-build requires two compilers.
+ Use --with-build-cc to specify the native compiler." >&2;}
+@@ -4451,7 +4488,7 @@
+ ### shared, for example.
+ cf_list_models=""
+
+-echo "$as_me:4454: checking if libtool -version-number should be used" >&5
++echo "$as_me:4491: checking if libtool -version-number should be used" >&5
+ echo $ECHO_N "checking if libtool -version-number should be used... $ECHO_C" >&6
+
+ # Check whether --enable-libtool-version or --disable-libtool-version was given.
+@@ -4468,13 +4505,37 @@
+ cf_libtool_version=yes
+
+ fi;
+-echo "$as_me:4471: result: $cf_libtool_version" >&5
++echo "$as_me:4508: result: $cf_libtool_version" >&5
+ echo "${ECHO_T}$cf_libtool_version" >&6
+
+ if test "$cf_libtool_version" = yes ; then
+ LIBTOOL_VERSION="-version-number"
+ else
+ LIBTOOL_VERSION="-version-info"
++ case "x$VERSION" in #(vi
++ x) #(vi
++ { echo "$as_me:4517: WARNING: VERSION was not set" >&5
++echo "$as_me: WARNING: VERSION was not set" >&2;}
++ ;;
++ x*.*.*)
++ ABI_VERSION="$VERSION"
++ test -n "$verbose" && echo " ABI_VERSION: $ABI_VERSION" 1>&6
++
++echo "${as_me:-configure}:4524: testing ABI_VERSION: $ABI_VERSION ..." 1>&5
++
++ ;;
++ x*:*:*)
++ ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
++ test -n "$verbose" && echo " ABI_VERSION: $ABI_VERSION" 1>&6
++
++echo "${as_me:-configure}:4531: testing ABI_VERSION: $ABI_VERSION ..." 1>&5
++
++ ;;
++ *)
++ { echo "$as_me:4535: WARNING: unexpected VERSION value: $VERSION" >&5
++echo "$as_me: WARNING: unexpected VERSION value: $VERSION" >&2;}
++ ;;
++ esac
+ fi
+
+ LIBTOOL=
+@@ -4493,7 +4554,7 @@
+ LIB_INSTALL=
+ LIB_UNINSTALL=
+
+-echo "$as_me:4496: checking if you want to build libraries with libtool" >&5
++echo "$as_me:4557: checking if you want to build libraries with libtool" >&5
+ echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
+
+ # Check whether --with-libtool or --without-libtool was given.
+@@ -4503,7 +4564,7 @@
+ else
+ with_libtool=no
+ fi;
+-echo "$as_me:4506: result: $with_libtool" >&5
++echo "$as_me:4567: result: $with_libtool" >&5
+ echo "${ECHO_T}$with_libtool" >&6
+ if test "$with_libtool" != "no"; then
+
+@@ -4522,7 +4583,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval with_libtool="$with_libtool"
+ case ".$with_libtool" in #(vi
+ .NONE/*)
+@@ -4534,7 +4595,7 @@
+ with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:4537: error: expected a pathname, not \"$with_libtool\"" >&5
++ { { echo "$as_me:4598: error: expected a pathname, not \"$with_libtool\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -4542,86 +4603,245 @@
+
+ LIBTOOL=$with_libtool
+ else
+- # Extract the first word of "libtool", so it can be a program name with args.
+-set dummy libtool; ac_word=$2
+-echo "$as_me:4547: checking for $ac_word" >&5
++ if test -n "$ac_tool_prefix"; then
++ for ac_prog in libtool glibtool
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:4611: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_LIBTOOL+set}" = set; then
++if test "${ac_cv_prog_LIBTOOL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- case $LIBTOOL in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_LIBTOOL="$LIBTOOL" # Let the user override the test with a path.
+- ;;
+- *)
++ if test -n "$LIBTOOL"; then
++ ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test.
++else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
+- echo "$as_me:4564: found $ac_dir/$ac_word" >&5
+- break
+-fi
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog"
++echo "$as_me:4626: found $ac_dir/$ac_word" >&5
++break
+ done
+
+- ;;
+-esac
+ fi
+-LIBTOOL=$ac_cv_path_LIBTOOL
+-
++fi
++LIBTOOL=$ac_cv_prog_LIBTOOL
+ if test -n "$LIBTOOL"; then
+- echo "$as_me:4575: result: $LIBTOOL" >&5
++ echo "$as_me:4634: result: $LIBTOOL" >&5
+ echo "${ECHO_T}$LIBTOOL" >&6
+ else
+- echo "$as_me:4578: result: no" >&5
++ echo "$as_me:4637: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+- fi
+- if test -z "$LIBTOOL" ; then
+- { { echo "$as_me:4584: error: Cannot find libtool" >&5
+-echo "$as_me: error: Cannot find libtool" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+- LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
+- LIB_OBJECT='${OBJECTS:.o=.lo}'
+- LIB_SUFFIX=.la
+- LIB_CLEAN='${LIBTOOL} --mode=clean'
+- LIB_COMPILE='${LIBTOOL} --mode=compile'
+- LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
+- LIB_INSTALL='${LIBTOOL} --mode=install'
+- LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
+- LIB_PREP=:
++ test -n "$LIBTOOL" && break
++ done
++fi
++if test -z "$LIBTOOL"; then
++ ac_ct_LIBTOOL=$LIBTOOL
++ for ac_prog in libtool glibtool
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:4650: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_LIBTOOL"; then
++ ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_LIBTOOL="$ac_prog"
++echo "$as_me:4665: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL
++if test -n "$ac_ct_LIBTOOL"; then
++ echo "$as_me:4673: result: $ac_ct_LIBTOOL" >&5
++echo "${ECHO_T}$ac_ct_LIBTOOL" >&6
++else
++ echo "$as_me:4676: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$ac_ct_LIBTOOL" && break
++done
++test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none"
+
+- # Show the version of libtool
+- echo "$as_me:4599: checking version of libtool" >&5
+-echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
+-
+- # Save the version in a cache variable - this is not entirely a good
+- # thing, but the version string from libtool is very ugly, and for
+- # bug reports it might be useful to have the original string. "("
++ LIBTOOL=$ac_ct_LIBTOOL
++fi
++
++if test -n "$LIBTOOL" && test "$LIBTOOL" != none
++then
+ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
+- echo "$as_me:4606: result: $cf_cv_libtool_version" >&5
+-echo "${ECHO_T}$cf_cv_libtool_version" >&6
+- if test -z "$cf_cv_libtool_version" ; then
+- { { echo "$as_me:4609: error: This is not GNU libtool" >&5
+-echo "$as_me: error: This is not GNU libtool" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
++else
++ cf_cv_libtool_version=
++fi
++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
+
+- # special hack to add -no-undefined (which libtool should do for itself)
+- LT_UNDEF=
+- case "$cf_cv_system_name" in #(vi
+- cygwin*|mingw32*|uwin*|aix[456]) #(vi
+- LT_UNDEF=-no-undefined
+- ;;
+- esac
++ if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
++ then
+
+- # special hack to add --tag option for C++ compiler
+- case $cf_cv_libtool_version in #(vi
+- 1.[5-9]*|[2-9].[0-9.a-z]*) #(vi
++unset ac_cv_prog_ac_ct_LIBTOOL
++unset ac_ct_LIBTOOL
++unset LIBTOOL
++
++ if test -n "$ac_tool_prefix"; then
++ for ac_prog in glibtool
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:4707: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_LIBTOOL+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$LIBTOOL"; then
++ ac_cv_prog_LIBTOOL="$LIBTOOL" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_LIBTOOL="$ac_tool_prefix$ac_prog"
++echo "$as_me:4722: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++LIBTOOL=$ac_cv_prog_LIBTOOL
++if test -n "$LIBTOOL"; then
++ echo "$as_me:4730: result: $LIBTOOL" >&5
++echo "${ECHO_T}$LIBTOOL" >&6
++else
++ echo "$as_me:4733: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$LIBTOOL" && break
++ done
++fi
++if test -z "$LIBTOOL"; then
++ ac_ct_LIBTOOL=$LIBTOOL
++ for ac_prog in glibtool
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:4746: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_LIBTOOL+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_LIBTOOL"; then
++ ac_cv_prog_ac_ct_LIBTOOL="$ac_ct_LIBTOOL" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_LIBTOOL="$ac_prog"
++echo "$as_me:4761: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++ac_ct_LIBTOOL=$ac_cv_prog_ac_ct_LIBTOOL
++if test -n "$ac_ct_LIBTOOL"; then
++ echo "$as_me:4769: result: $ac_ct_LIBTOOL" >&5
++echo "${ECHO_T}$ac_ct_LIBTOOL" >&6
++else
++ echo "$as_me:4772: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$ac_ct_LIBTOOL" && break
++done
++test -n "$ac_ct_LIBTOOL" || ac_ct_LIBTOOL="none"
++
++ LIBTOOL=$ac_ct_LIBTOOL
++fi
++
++if test -n "$LIBTOOL" && test "$LIBTOOL" != none
++then
++ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
++else
++ cf_cv_libtool_version=
++fi
++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
++
++ fi
++ fi
++ if test -z "$LIBTOOL" ; then
++ { { echo "$as_me:4794: error: Cannot find libtool" >&5
++echo "$as_me: error: Cannot find libtool" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++ LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
++ LIB_OBJECT='${OBJECTS:.o=.lo}'
++ LIB_SUFFIX=.la
++ LIB_CLEAN='${LIBTOOL} --mode=clean'
++ LIB_COMPILE='${LIBTOOL} --mode=compile'
++ LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
++ LIB_INSTALL='${LIBTOOL} --mode=install'
++ LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
++ LIB_PREP=:
++
++if test -n "$LIBTOOL" && test "$LIBTOOL" != none
++then
++ echo "$as_me:4810: checking version of $LIBTOOL" >&5
++echo $ECHO_N "checking version of $LIBTOOL... $ECHO_C" >&6
++
++if test -n "$LIBTOOL" && test "$LIBTOOL" != none
++then
++ cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
++else
++ cf_cv_libtool_version=
++fi
++test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
++
++ echo "$as_me:4821: 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:4824: error: This is not GNU libtool" >&5
++echo "$as_me: error: This is not GNU libtool" >&2;}
++ { (exit 1); exit 1; }; }
++ fi
++else
++ { { echo "$as_me:4829: error: GNU libtool has not been found" >&5
++echo "$as_me: error: GNU libtool has not been found" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++ # special hack to add -no-undefined (which libtool should do for itself)
++ LT_UNDEF=
++ case "$cf_cv_system_name" in #(vi
++ cygwin*|msys*|mingw32*|uwin*|aix[4-7]) #(vi
++ LT_UNDEF=-no-undefined
++ ;;
++ esac
++
++ # special hack to add --tag option for C++ compiler
++ case $cf_cv_libtool_version in #(vi
++ 1.[5-9]*|[2-9].[0-9.a-z]*) #(vi
+ LIBTOOL_CXX="$LIBTOOL --tag=CXX"
+ LIBTOOL="$LIBTOOL --tag=CC"
+ ;;
+@@ -4642,7 +4862,7 @@
+
+ else
+
+-echo "$as_me:4645: checking if you want to build shared libraries" >&5
++echo "$as_me:4865: checking if you want to build shared libraries" >&5
+ echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
+
+ # Check whether --with-shared or --without-shared was given.
+@@ -4652,11 +4872,11 @@
+ else
+ with_shared=no
+ fi;
+-echo "$as_me:4655: result: $with_shared" >&5
++echo "$as_me:4875: result: $with_shared" >&5
+ echo "${ECHO_T}$with_shared" >&6
+-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
++test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared"
+
+-echo "$as_me:4659: checking if you want to build static libraries" >&5
++echo "$as_me:4879: checking if you want to build static libraries" >&5
+ echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
+
+ # Check whether --with-normal or --without-normal was given.
+@@ -4666,11 +4886,11 @@
+ else
+ with_normal=yes
+ fi;
+-echo "$as_me:4669: result: $with_normal" >&5
++echo "$as_me:4889: result: $with_normal" >&5
+ echo "${ECHO_T}$with_normal" >&6
+-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
++test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal"
+
+-echo "$as_me:4673: checking if you want to build debug libraries" >&5
++echo "$as_me:4893: checking if you want to build debug libraries" >&5
+ echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
+
+ # Check whether --with-debug or --without-debug was given.
+@@ -4680,11 +4900,11 @@
+ else
+ with_debug=yes
+ fi;
+-echo "$as_me:4683: result: $with_debug" >&5
++echo "$as_me:4903: result: $with_debug" >&5
+ echo "${ECHO_T}$with_debug" >&6
+-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
++test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug"
+
+-echo "$as_me:4687: checking if you want to build profiling libraries" >&5
++echo "$as_me:4907: checking if you want to build profiling libraries" >&5
+ echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
+
+ # Check whether --with-profile or --without-profile was given.
+@@ -4694,27 +4914,44 @@
+ else
+ with_profile=no
+ fi;
+-echo "$as_me:4697: result: $with_profile" >&5
++echo "$as_me:4917: result: $with_profile" >&5
+ echo "${ECHO_T}$with_profile" >&6
+-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
++test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile"
++
++fi
++
++if test "X$cf_with_cxx_binding" != Xno; then
++if test "x$with_shared" = "xyes"; then
++echo "$as_me:4925: checking if you want to build C++ shared libraries" >&5
++echo $ECHO_N "checking if you want to build C++ shared libraries... $ECHO_C" >&6
+
++# Check whether --with-cxx-shared or --without-cxx-shared was given.
++if test "${with_cxx_shared+set}" = set; then
++ withval="$with_cxx_shared"
++ with_shared_cxx=$withval
++else
++ with_shared_cxx=no
++fi;
++echo "$as_me:4935: result: $with_shared_cxx" >&5
++echo "${ECHO_T}$with_shared_cxx" >&6
++fi
+ fi
+
+ ###############################################################################
+
+-echo "$as_me:4705: checking for specified models" >&5
++echo "$as_me:4942: checking for specified models" >&5
+ echo $ECHO_N "checking for specified models... $ECHO_C" >&6
+ test -z "$cf_list_models" && cf_list_models=normal
+ test "$with_libtool" != "no" && cf_list_models=libtool
+-echo "$as_me:4709: result: $cf_list_models" >&5
++echo "$as_me:4946: result: $cf_list_models" >&5
+ echo "${ECHO_T}$cf_list_models" >&6
+
+ ### Use the first model as the default, and save its suffix for use in building
+ ### up test-applications.
+-echo "$as_me:4714: checking for default model" >&5
++echo "$as_me:4951: checking for default model" >&5
+ echo $ECHO_N "checking for default model... $ECHO_C" >&6
+ DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
+-echo "$as_me:4717: result: $DFT_LWR_MODEL" >&5
++echo "$as_me:4954: result: $DFT_LWR_MODEL" >&5
+ echo "${ECHO_T}$DFT_LWR_MODEL" >&6
+
+ DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+@@ -4728,6 +4965,22 @@
+ LIB_DIR=../lib
+ LIB_2ND=../../lib
+
++echo "$as_me:4968: checking if you want to have a library-prefix" >&5
++echo $ECHO_N "checking if you want to have a library-prefix... $ECHO_C" >&6
++
++# Check whether --with-lib-prefix or --without-lib-prefix was given.
++if test "${with_lib_prefix+set}" = set; then
++ withval="$with_lib_prefix"
++ with_lib_prefix=$withval
++else
++ with_lib_prefix=auto
++fi;
++echo "$as_me:4978: result: $with_lib_prefix" >&5
++echo "${ECHO_T}$with_lib_prefix" >&6
++
++if test $with_lib_prefix = auto
++then
++
+ case $cf_cv_system_name in #(vi
+ OS/2*|os2*) #(vi
+ LIB_PREFIX=''
+@@ -4737,13 +4990,28 @@
+ esac
+ cf_prefix=$LIB_PREFIX
+
+-LIB_PREFIX=$cf_prefix
++elif test $with_lib_prefix = no
++then
++ LIB_PREFIX=
++else
++ LIB_PREFIX=$with_lib_prefix
++fi
+
+ LIB_SUFFIX=
+
++ echo "$as_me:5002: checking for PATH separator" >&5
++echo $ECHO_N "checking for PATH separator... $ECHO_C" >&6
++ case $cf_cv_system_name in
++ os2*) PATH_SEPARATOR=';' ;;
++ *) ${PATH_SEPARATOR:=':'} ;;
++ esac
++
++ echo "$as_me:5009: result: $PATH_SEPARATOR" >&5
++echo "${ECHO_T}$PATH_SEPARATOR" >&6
++
+ ###############################################################################
+
+-echo "$as_me:4746: checking if you want to build a separate terminfo library" >&5
++echo "$as_me:5014: checking if you want to build a separate terminfo library" >&5
+ echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
+
+ # Check whether --with-termlib or --without-termlib was given.
+@@ -4753,10 +5021,10 @@
+ else
+ with_termlib=no
+ fi;
+-echo "$as_me:4756: result: $with_termlib" >&5
++echo "$as_me:5024: result: $with_termlib" >&5
+ echo "${ECHO_T}$with_termlib" >&6
+
+-echo "$as_me:4759: checking if you want to build a separate tic library" >&5
++echo "$as_me:5027: checking if you want to build a separate tic library" >&5
+ echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
+
+ # Check whether --with-ticlib or --without-ticlib was given.
+@@ -4766,13 +5034,13 @@
+ else
+ with_ticlib=no
+ fi;
+-echo "$as_me:4769: result: $with_ticlib" >&5
++echo "$as_me:5037: result: $with_ticlib" >&5
+ echo "${ECHO_T}$with_ticlib" >&6
+
+ ### Checks for special libraries, must be done up-front.
+ SHLIB_LIST=""
+
+-echo "$as_me:4775: checking if you want to link with the GPM mouse library" >&5
++echo "$as_me:5043: checking if you want to link with the GPM mouse library" >&5
+ echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
+
+ # Check whether --with-gpm or --without-gpm was given.
+@@ -4782,27 +5050,27 @@
+ else
+ with_gpm=maybe
+ fi;
+-echo "$as_me:4785: result: $with_gpm" >&5
++echo "$as_me:5053: result: $with_gpm" >&5
+ echo "${ECHO_T}$with_gpm" >&6
+
+ if test "$with_gpm" != no ; then
+- echo "$as_me:4789: checking for gpm.h" >&5
++ echo "$as_me:5057: checking for gpm.h" >&5
+ echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
+ if test "${ac_cv_header_gpm_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4795 "configure"
++#line 5063 "configure"
+ #include "confdefs.h"
+ #include <gpm.h>
+ _ACEOF
+-if { (eval echo "$as_me:4799: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:5067: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:4805: \$? = $ac_status" >&5
++ echo "$as_me:5073: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4821,25 +5089,25 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4824: result: $ac_cv_header_gpm_h" >&5
++echo "$as_me:5092: result: $ac_cv_header_gpm_h" >&5
+ echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
+ if test $ac_cv_header_gpm_h = yes; then
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_GPM_H 1
+ EOF
+
+ if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
+ test -n "$verbose" && echo " assuming we really have GPM library" 1>&6
+
+-echo "${as_me:-configure}:4835: testing assuming we really have GPM library ..." 1>&5
++echo "${as_me:-configure}:5103: testing assuming we really have GPM library ..." 1>&5
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBGPM 1
+ EOF
+
+ else
+- echo "$as_me:4842: checking for Gpm_Open in -lgpm" >&5
++ echo "$as_me:5110: checking for Gpm_Open in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4847,7 +5115,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4850 "configure"
++#line 5118 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -4866,16 +5134,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4869: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5137: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4872: \$? = $ac_status" >&5
++ echo "$as_me:5140: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4875: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5143: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4878: \$? = $ac_status" >&5
++ echo "$as_me:5146: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_Gpm_Open=yes
+ else
+@@ -4886,13 +5154,13 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4889: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "$as_me:5157: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+ if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+ :
+ else
+
+- { { echo "$as_me:4895: error: Cannot link with GPM library" >&5
++ { { echo "$as_me:5163: error: Cannot link with GPM library" >&5
+ echo "$as_me: error: Cannot link with GPM library" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -4902,7 +5170,7 @@
+
+ else
+
+- test "$with_gpm" != maybe && { echo "$as_me:4905: WARNING: Cannot find GPM header" >&5
++ test "$with_gpm" != maybe && { echo "$as_me:5173: WARNING: Cannot find GPM header" >&5
+ echo "$as_me: WARNING: Cannot find GPM header" >&2;}
+ with_gpm=no
+
+@@ -4911,7 +5179,7 @@
+ fi
+
+ if test "$with_gpm" != no ; then
+- echo "$as_me:4914: checking if you want to load GPM dynamically" >&5
++ echo "$as_me:5182: checking if you want to load GPM dynamically" >&5
+ echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
+
+ # Check whether --with-dlsym or --without-dlsym was given.
+@@ -4921,18 +5189,18 @@
+ else
+ with_dlsym=yes
+ fi;
+- echo "$as_me:4924: result: $with_dlsym" >&5
++ echo "$as_me:5192: result: $with_dlsym" >&5
+ echo "${ECHO_T}$with_dlsym" >&6
+- if test "$with_dlsym" = yes ; then
++ if test "x$with_dlsym" = xyes ; then
+
+ cf_have_dlsym=no
+-echo "$as_me:4929: checking for dlsym" >&5
++echo "$as_me:5197: checking for dlsym" >&5
+ echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
+ if test "${ac_cv_func_dlsym+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4935 "configure"
++#line 5203 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlsym (); below. */
+@@ -4955,7 +5223,7 @@
+ #if defined (__stub_dlsym) || defined (__stub___dlsym)
+ choke me
+ #else
+-f = dlsym;
++f = dlsym; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -4963,16 +5231,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4966: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5234: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4969: \$? = $ac_status" >&5
++ echo "$as_me:5237: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4972: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5240: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4975: \$? = $ac_status" >&5
++ echo "$as_me:5243: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlsym=yes
+ else
+@@ -4982,14 +5250,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:4985: result: $ac_cv_func_dlsym" >&5
++echo "$as_me:5253: result: $ac_cv_func_dlsym" >&5
+ echo "${ECHO_T}$ac_cv_func_dlsym" >&6
+ if test $ac_cv_func_dlsym = yes; then
+ cf_have_dlsym=yes
+ else
+
+ cf_have_libdl=no
+-echo "$as_me:4992: checking for dlsym in -ldl" >&5
++echo "$as_me:5260: checking for dlsym in -ldl" >&5
+ echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
+ if test "${ac_cv_lib_dl_dlsym+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -4997,7 +5265,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldl $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5000 "configure"
++#line 5268 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -5016,16 +5284,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5019: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5287: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5022: \$? = $ac_status" >&5
++ echo "$as_me:5290: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5025: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5293: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5028: \$? = $ac_status" >&5
++ echo "$as_me:5296: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlsym=yes
+ else
+@@ -5036,7 +5304,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5039: result: $ac_cv_lib_dl_dlsym" >&5
++echo "$as_me:5307: result: $ac_cv_lib_dl_dlsym" >&5
+ echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
+ if test $ac_cv_lib_dl_dlsym = yes; then
+
+@@ -5047,12 +5315,27 @@
+ fi
+
+ if test "$cf_have_dlsym" = yes ; then
+- test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
++ test "$cf_have_libdl" = yes &&
++cf_add_libs="-ldl"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- echo "$as_me:5052: checking whether able to link to dl*() functions" >&5
++ echo "$as_me:5335: checking whether able to link to dl*() functions" >&5
+ echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5055 "configure"
++#line 5338 "configure"
+ #include "confdefs.h"
+ #include <dlfcn.h>
+ int
+@@ -5070,19 +5353,19 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5073: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5356: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5076: \$? = $ac_status" >&5
++ echo "$as_me:5359: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5079: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5362: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5082: \$? = $ac_status" >&5
++ echo "$as_me:5365: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBDL 1
+ EOF
+
+@@ -5090,28 +5373,28 @@
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+
+- { { echo "$as_me:5093: error: Cannot link test program for libdl" >&5
++ { { echo "$as_me:5376: error: Cannot link test program for libdl" >&5
+ echo "$as_me: error: Cannot link test program for libdl" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- echo "$as_me:5098: result: ok" >&5
++ echo "$as_me:5381: result: ok" >&5
+ echo "${ECHO_T}ok" >&6
+ else
+- { { echo "$as_me:5101: error: Cannot find dlsym function" >&5
++ { { echo "$as_me:5384: error: Cannot find dlsym function" >&5
+ echo "$as_me: error: Cannot find dlsym function" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+- if test "$with_gpm" != yes ; then
++ if test "x$with_gpm" != xyes ; then
+ test -n "$verbose" && echo " assuming soname for gpm is $with_gpm" 1>&6
+
+-echo "${as_me:-configure}:5109: testing assuming soname for gpm is $with_gpm ..." 1>&5
++echo "${as_me:-configure}:5392: testing assuming soname for gpm is $with_gpm ..." 1>&5
+
+ cf_cv_gpm_soname="$with_gpm"
+ else
+
+-echo "$as_me:5114: checking for soname of gpm library" >&5
++echo "$as_me:5397: checking for soname of gpm library" >&5
+ echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
+ if test "${cf_cv_gpm_soname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5128,16 +5411,32 @@
+ }
+ CF_EOF
+ cf_save_LIBS="$LIBS"
+- LIBS="-lgpm $LIBS"
+- if { (eval echo "$as_me:5132: \"$ac_compile\"") >&5
++
++cf_add_libs="-lgpm"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ if { (eval echo "$as_me:5431: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5135: \$? = $ac_status" >&5
++ echo "$as_me:5434: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+- if { (eval echo "$as_me:5137: \"$ac_link\"") >&5
++ if { (eval echo "$as_me:5436: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5140: \$? = $ac_status" >&5
++ echo "$as_me:5439: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
+ test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
+@@ -5148,24 +5447,42 @@
+ fi
+
+ fi
+-echo "$as_me:5151: result: $cf_cv_gpm_soname" >&5
++echo "$as_me:5450: result: $cf_cv_gpm_soname" >&5
+ echo "${ECHO_T}$cf_cv_gpm_soname" >&6
+
+ fi
+- test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <<EOF
++ test "$cf_cv_gpm_soname" != "unknown" &&
++cat >>confdefs.h <<EOF
+ #define LIBGPM_SONAME "$cf_cv_gpm_soname"
+ EOF
+
+ SHLIB_LIST="-ldl $SHLIB_LIST"
+ else
+ SHLIB_LIST="-lgpm $SHLIB_LIST"
+- TEST_LIBS="-lgpm $TEST_LIBS"
++
++cf_add_libs="-lgpm"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $TEST_LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++TEST_LIBS="$cf_add_libs"
++
+ fi
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBGPM 1
+ EOF
+
+-echo "$as_me:5168: checking for Gpm_Wgetch in -lgpm" >&5
++echo "$as_me:5485: checking for Gpm_Wgetch in -lgpm" >&5
+ echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
+ if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5173,7 +5490,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgpm $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5176 "configure"
++#line 5493 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -5192,16 +5509,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5195: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5512: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5198: \$? = $ac_status" >&5
++ echo "$as_me:5515: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5201: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5518: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5204: \$? = $ac_status" >&5
++ echo "$as_me:5521: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_Gpm_Wgetch=yes
+ else
+@@ -5212,11 +5529,11 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5215: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
++echo "$as_me:5532: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
+ echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
+ if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
+
+-echo "$as_me:5219: checking if GPM is weakly bound to curses library" >&5
++echo "$as_me:5536: checking if GPM is weakly bound to curses library" >&5
+ echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
+ if test "${cf_cv_check_gpm_wgetch+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5240,15 +5557,15 @@
+ # to rely on the static library, noting that some packagers may not
+ # include it.
+ LIBS="-static -lgpm -dynamic $LIBS"
+- if { (eval echo "$as_me:5243: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:5560: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5246: \$? = $ac_status" >&5
++ echo "$as_me:5563: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+- if { (eval echo "$as_me:5248: \"$ac_link\"") >&5
++ if { (eval echo "$as_me:5565: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5251: \$? = $ac_status" >&5
++ echo "$as_me:5568: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[vVwW]\>'`
+ test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
+@@ -5260,11 +5577,11 @@
+ fi
+
+ fi
+-echo "$as_me:5263: result: $cf_cv_check_gpm_wgetch" >&5
++echo "$as_me:5580: result: $cf_cv_check_gpm_wgetch" >&5
+ echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
+
+ if test "$cf_cv_check_gpm_wgetch" != yes ; then
+- { echo "$as_me:5267: WARNING: GPM library is already linked with curses - read the FAQ" >&5
++ { echo "$as_me:5584: WARNING: GPM library is already linked with curses - read the FAQ" >&5
+ echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
+ fi
+
+@@ -5274,7 +5591,7 @@
+
+ # not everyone has "test -c"
+ if test -c /dev/sysmouse 2>/dev/null ; then
+-echo "$as_me:5277: checking if you want to use sysmouse" >&5
++echo "$as_me:5594: checking if you want to use sysmouse" >&5
+ echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
+
+ # Check whether --with-sysmouse or --without-sysmouse was given.
+@@ -5286,7 +5603,7 @@
+ fi;
+ if test "$cf_with_sysmouse" != no ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5289 "configure"
++#line 5606 "configure"
+ #include "confdefs.h"
+
+ #include <osreldate.h>
+@@ -5309,16 +5626,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5312: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5629: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5315: \$? = $ac_status" >&5
++ echo "$as_me:5632: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5318: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5635: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5321: \$? = $ac_status" >&5
++ echo "$as_me:5638: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_with_sysmouse=yes
+ else
+@@ -5328,9 +5645,10 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:5331: result: $cf_with_sysmouse" >&5
++echo "$as_me:5648: result: $cf_with_sysmouse" >&5
+ echo "${ECHO_T}$cf_with_sysmouse" >&6
+-test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
++test "$cf_with_sysmouse" = yes &&
++cat >>confdefs.h <<\EOF
+ #define USE_SYSMOUSE 1
+ EOF
+
+@@ -5338,15 +5656,15 @@
+
+ if test X"$CC_G_OPT" = X"" ; then
+ CC_G_OPT='-g'
+- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
++ test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT=''
+ fi
+
+ if test X"$CXX_G_OPT" = X"" ; then
+ CXX_G_OPT='-g'
+- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
++ test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT=''
+ fi
+
+-echo "$as_me:5349: checking for default loader flags" >&5
++echo "$as_me:5667: checking for default loader flags" >&5
+ echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
+ case $DFT_LWR_MODEL in
+ libtool) LD_MODEL='' ;;
+@@ -5355,13 +5673,13 @@
+ profile) LD_MODEL='-pg';;
+ shared) LD_MODEL='' ;;
+ esac
+-echo "$as_me:5358: result: $LD_MODEL" >&5
++echo "$as_me:5676: result: $LD_MODEL" >&5
+ echo "${ECHO_T}$LD_MODEL" >&6
+
+ case $DFT_LWR_MODEL in
+ shared)
+
+-echo "$as_me:5364: checking if rpath option should be used" >&5
++echo "$as_me:5682: checking if rpath option should be used" >&5
+ echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
+
+ # Check whether --enable-rpath or --disable-rpath was given.
+@@ -5371,10 +5689,10 @@
+ else
+ cf_cv_enable_rpath=no
+ fi;
+-echo "$as_me:5374: result: $cf_cv_enable_rpath" >&5
++echo "$as_me:5692: result: $cf_cv_enable_rpath" >&5
+ echo "${ECHO_T}$cf_cv_enable_rpath" >&6
+
+-echo "$as_me:5377: checking if shared libraries should be relinked during install" >&5
++echo "$as_me:5695: checking if shared libraries should be relinked during install" >&5
+ echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
+
+ # Check whether --enable-relink or --disable-relink was given.
+@@ -5384,13 +5702,16 @@
+ else
+ cf_cv_do_relink=yes
+ fi;
+-echo "$as_me:5387: result: $cf_cv_do_relink" >&5
++echo "$as_me:5705: result: $cf_cv_do_relink" >&5
+ echo "${ECHO_T}$cf_cv_do_relink" >&6
+ ;;
+ esac
+
++# we will build libraries one-level down.
++rel_builddir=..
++
+ LD_RPATH_OPT=
+-echo "$as_me:5393: checking for an rpath option" >&5
++echo "$as_me:5714: checking for an rpath option" >&5
+ echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
+ case $cf_cv_system_name in #(vi
+ irix*) #(vi
+@@ -5403,10 +5724,10 @@
+ linux*|gnu*|k*bsd*-gnu) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-openbsd[2-9].*) #(vi
++openbsd[2-9].*|mirbsd*) #(vi
+ LD_RPATH_OPT="-Wl,-rpath,"
+ ;;
+-freebsd*) #(vi
++dragonfly*|freebsd*) #(vi
+ LD_RPATH_OPT="-rpath "
+ ;;
+ netbsd*) #(vi
+@@ -5421,17 +5742,33 @@
+ *)
+ ;;
+ esac
+-echo "$as_me:5424: result: $LD_RPATH_OPT" >&5
++echo "$as_me:5745: result: $LD_RPATH_OPT" >&5
+ echo "${ECHO_T}$LD_RPATH_OPT" >&6
+
+ case "x$LD_RPATH_OPT" in #(vi
+ x-R*)
+- echo "$as_me:5429: checking if we need a space after rpath option" >&5
++ echo "$as_me:5750: checking if we need a space after rpath option" >&5
+ echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
+ cf_save_LIBS="$LIBS"
+- LIBS="${LD_RPATH_OPT}$libdir $LIBS"
++
++cf_add_libs="${LD_RPATH_OPT}$libdir"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5434 "configure"
++#line 5771 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -5443,16 +5780,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5446: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5783: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5449: \$? = $ac_status" >&5
++ echo "$as_me:5786: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5452: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5789: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5455: \$? = $ac_status" >&5
++ echo "$as_me:5792: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_rpath_space=no
+ else
+@@ -5462,22 +5799,28 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$cf_save_LIBS"
+- echo "$as_me:5465: result: $cf_rpath_space" >&5
++ echo "$as_me:5802: result: $cf_rpath_space" >&5
+ echo "${ECHO_T}$cf_rpath_space" >&6
+ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
+ ;;
+ esac
+
++ RM_SHARED_OPTS=
+ LOCAL_LDFLAGS=
+ LOCAL_LDFLAGS2=
+ LD_SHARED_OPTS=
+ INSTALL_LIB="-m 644"
++ : ${rel_builddir:=.}
++
++ shlibdir=$libdir
++
++ MAKE_DLLS="#"
+
+ cf_cv_do_symlinks=no
+ cf_ld_rpath_opt=
+ test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
+
+- echo "$as_me:5480: checking if release/abi version should be used for shared libs" >&5
++ echo "$as_me:5823: checking if release/abi version should be used for shared libs" >&5
+ echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
+
+ # Check whether --with-shlib-version or --without-shlib-version was given.
+@@ -5492,7 +5835,7 @@
+ cf_cv_shlib_version=$withval
+ ;;
+ *)
+- { { echo "$as_me:5495: error: option value must be one of: rel, abi, auto or no" >&5
++ { { echo "$as_me:5838: error: option value must be one of: rel, abi, auto or no" >&5
+ echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+@@ -5501,23 +5844,24 @@
+ else
+ cf_cv_shlib_version=auto
+ fi;
+- echo "$as_me:5504: result: $cf_cv_shlib_version" >&5
++ echo "$as_me:5847: result: $cf_cv_shlib_version" >&5
+ echo "${ECHO_T}$cf_cv_shlib_version" >&6
+
+ cf_cv_rm_so_locs=no
++ cf_try_cflags=
+
+ # Some less-capable ports of gcc support only -fpic
+ CC_SHARED_OPTS=
+ if test "$GCC" = yes
+ then
+- echo "$as_me:5513: checking which $CC option to use" >&5
++ echo "$as_me:5857: checking which $CC option to use" >&5
+ echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
+ for CC_SHARED_OPTS in -fPIC -fpic ''
+ do
+ CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5520 "configure"
++#line 5864 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -5529,16 +5873,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5532: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:5876: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5535: \$? = $ac_status" >&5
++ echo "$as_me:5879: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5538: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5882: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5541: \$? = $ac_status" >&5
++ echo "$as_me:5885: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -5547,7 +5891,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+- echo "$as_me:5550: result: $CC_SHARED_OPTS" >&5
++ echo "$as_me:5894: result: $CC_SHARED_OPTS" >&5
+ echo "${ECHO_T}$CC_SHARED_OPTS" >&6
+ CFLAGS="$cf_save_CFLAGS"
+ fi
+@@ -5555,10 +5899,14 @@
+ cf_cv_shlib_version_infix=no
+
+ case $cf_cv_system_name in #(vi
+- aix[56]*) #(vi
++ aix4.3-9*|aix[5-7]*) #(vi
+ if test "$GCC" = yes; then
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='$(CC) -shared'
++ MK_SHARED_LIB='${CC} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
++ else
++ # CC_SHARED_OPTS='-qpic=large -G'
++ # perhaps "-bM:SRE -bnoentry -bexpall"
++ MK_SHARED_LIB='${CC} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o $@'
+ fi
+ ;;
+ beos*) #(vi
+@@ -5566,9 +5914,12 @@
+ ;;
+ cygwin*) #(vi
+ CC_SHARED_OPTS=
+- MK_SHARED_LIB='sh ../mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
+ cf_cv_shlib_version=cygdll
+ cf_cv_shlib_version_infix=cygdll
++ shlibdir=$bindir
++ MAKE_DLLS=
+ cat >mk_shared_lib.sh <<-CF_EOF
+ #!/bin/sh
+ SHARED_LIB=\$1
+@@ -5579,17 +5930,39 @@
+ ** SHARED_LIB \$SHARED_LIB
+ ** IMPORT_LIB \$IMPORT_LIB
+ EOF
+- exec \$* -shared -Wl,--out-implib=../lib/\${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\${SHARED_LIB}
++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ msys*) #(vi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cf_cv_shlib_version=msysdll
++ cf_cv_shlib_version_infix=msysdll
++ shlibdir=$bindir
++ MAKE_DLLS=
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\$1
++ IMPORT_LIB=\`echo "\$1" | sed -e 's/msys-/lib/' -e 's/[0-9]*\.dll$/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \$SHARED_LIB
++ ** IMPORT_LIB \$IMPORT_LIB
++EOF
++ exec \$* -shared -Wl,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
+ CF_EOF
+ chmod +x mk_shared_lib.sh
+ ;;
+ darwin*) #(vi
+- EXTRA_CFLAGS="-no-cpp-precomp"
++ cf_try_cflags="no-cpp-precomp"
+ CC_SHARED_OPTS="-dynamic"
+ MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
+ cf_cv_shlib_version_infix=yes
+- echo "$as_me:5592: checking if ld -search_paths_first works" >&5
++ echo "$as_me:5965: checking if ld -search_paths_first works" >&5
+ echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
+ if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -5598,7 +5971,7 @@
+ cf_save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5601 "configure"
++#line 5974 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -5610,16 +5983,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5613: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5986: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5616: \$? = $ac_status" >&5
++ echo "$as_me:5989: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5619: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5992: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5622: \$? = $ac_status" >&5
++ echo "$as_me:5995: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_ldflags_search_paths_first=yes
+ else
+@@ -5630,12 +6003,20 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$cf_save_LDFLAGS
+ fi
+-echo "$as_me:5633: result: $cf_cv_ldflags_search_paths_first" >&5
++echo "$as_me:6006: result: $cf_cv_ldflags_search_paths_first" >&5
+ echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
+ if test $cf_cv_ldflags_search_paths_first = yes; then
+ LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
+ fi
+ ;;
++ hpux[7-8]*) #(vi
++ # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
++ if test "$GCC" != yes; then
++ CC_SHARED_OPTS='+Z'
++ fi
++ MK_SHARED_LIB='${LD} -b -o $@'
++ INSTALL_LIB="-m 555"
++ ;;
+ hpux*) #(vi
+ # (tested with gcc 2.7.2 -- I don't have c89)
+ if test "$GCC" = yes; then
+@@ -5649,9 +6030,19 @@
+ # readonly to exploit a quirk in the memory manager.
+ INSTALL_LIB="-m 555"
+ ;;
++ interix*)
++ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
++ if test "$cf_cv_shlib_version" = rel; then
++ cf_shared_soname='`basename .${REL_VERSION}`.${ABI_VERSION}'
++ else
++ cf_shared_soname='`basename `'
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='${CC} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o '
++ ;;
+ irix*) #(vi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ # tested with IRIX 5.2 and 'cc'.
+ if test "$GCC" != yes; then
+@@ -5668,7 +6059,7 @@
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+@@ -5680,13 +6071,40 @@
+
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
+ ;;
+- openbsd[2-9].*) #(vi
++ mingw*) #(vi
++ cf_cv_shlib_version=mingw
++ cf_cv_shlib_version_infix=mingw
++ shlibdir=$bindir
++ MAKE_DLLS=
++ if test "$DFT_LWR_MODEL" = "shared" ; then
++ LOCAL_LDFLAGS="-Wl,--enable-auto-import"
++ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
++ fi
++ CC_SHARED_OPTS=
++ MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh $@ ${CC} ${CFLAGS}'
++ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
++ cat >mk_shared_lib.sh <<-CF_EOF
++ #!/bin/sh
++ SHARED_LIB=\$1
++ IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$/.dll.a/'\`
++ shift
++ cat <<-EOF
++ Linking shared library
++ ** SHARED_LIB \$SHARED_LIB
++ ** IMPORT_LIB \$IMPORT_LIB
++EOF
++ exec \$* -shared -Wl,--enable-auto-import,--out-implib=\${IMPORT_LIB} -Wl,--export-all-symbols -o \${SHARED_LIB}
++CF_EOF
++ chmod +x mk_shared_lib.sh
++ ;;
++ openbsd[2-9].*|mirbsd*) #(vi
+ if test "$DFT_LWR_MODEL" = "shared" ; then
+ LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+ fi
+ if test "$cf_cv_enable_rpath" = yes ; then
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+
+@@ -5704,12 +6122,12 @@
+ MK_SHARED_LIB='${LD} -Bshareable -o $@'
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+ ;;
+- freebsd*) #(vi
++ dragonfly*|freebsd*) #(vi
+ CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+- LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ fi
+
+ test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
+@@ -5726,7 +6144,7 @@
+ if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
+ LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
+ LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+- EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
++ EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
+ if test "$cf_cv_shlib_version" = auto; then
+ if test -f /usr/libexec/ld.elf_so; then
+ cf_cv_shlib_version=abi
+@@ -5744,7 +6162,7 @@
+
+ MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@'
+ else
+- MK_SHARED_LIB='${LD} -shared -Bshareable -o $@'
++ MK_SHARED_LIB='${CC} -Wl,-shared -Wl,-Bshareable -o $@'
+ fi
+ ;;
+ osf*|mls+*) #(vi
+@@ -5810,7 +6228,7 @@
+ do
+ CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5813 "configure"
++#line 6231 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -5822,16 +6240,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5825: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6243: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5828: \$? = $ac_status" >&5
++ echo "$as_me:6246: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5831: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6249: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5834: \$? = $ac_status" >&5
++ echo "$as_me:6252: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -5868,65 +6286,217 @@
+ test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
+ ;;
+ *)
+- { echo "$as_me:5871: WARNING: ignored --with-shlib-version" >&5
++ { echo "$as_me:6289: WARNING: ignored --with-shlib-version" >&5
+ echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
+ ;;
+ esac
+ ;;
+ esac
+
+- if test -n "$cf_ld_rpath_opt" ; then
+- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
++ if test -n "$cf_try_cflags"
++ then
++cat > conftest.$ac_ext <<EOF
++#line 6299 "${as_me:-configure}"
++#include <stdio.h>
++int main(int argc, char *argv[])
++{
++ printf("hello\n");
++ return (argv[argc-1] == 0) ;
++}
++EOF
++ cf_save_CFLAGS="$CFLAGS"
++ for cf_opt in $cf_try_cflags
++ do
++ CFLAGS="$cf_save_CFLAGS -$cf_opt"
++ echo "$as_me:6311: checking if CFLAGS option -$cf_opt works" >&5
++echo $ECHO_N "checking if CFLAGS option -$cf_opt works... $ECHO_C" >&6
++ if { (eval echo "$as_me:6313: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:6316: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ echo "$as_me:6318: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ cf_save_CFLAGS="$CFLAGS"
++ else
++ echo "$as_me:6322: result: no" >&5
++echo "${ECHO_T}no" >&6
++ fi
++ done
++ CFLAGS="$cf_save_CFLAGS"
+ fi
+
+-if test "$CC_SHARED_OPTS" = "unknown"; then
+- for model in $cf_list_models; do
+- if test "$model" = "shared"; then
+- { { echo "$as_me:5885: error: Shared libraries are not supported in this version" >&5
+-echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
+- { (exit 1); exit 1; }; }
+- fi
+- done
+-fi
++ # RPATH_LIST is a colon-separated list of directories
++ test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
++ test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
+
+-### If we're building with rpath, try to link non-standard libs that way too.
+-if test "$DFT_LWR_MODEL" = "shared"; then
++ test $cf_cv_rm_so_locs = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
+
+-echo "$as_me:5895: checking if rpath-hack should be disabled" >&5
+-echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
++ test -n "$verbose" && echo " CC_SHARED_OPTS: $CC_SHARED_OPTS" 1>&6
+
+-# Check whether --enable-rpath-hack or --disable-rpath-hack was given.
+-if test "${enable_rpath_hack+set}" = set; then
+- enableval="$enable_rpath_hack"
+- test "$enableval" != no && enableval=yes
+- if test "$enableval" != "yes" ; then
+- cf_disable_rpath_hack=yes
+- else
+- cf_disable_rpath_hack=no
+- fi
+-else
+- enableval=yes
+- cf_disable_rpath_hack=no
++echo "${as_me:-configure}:6337: testing CC_SHARED_OPTS: $CC_SHARED_OPTS ..." 1>&5
+
+-fi;
+-echo "$as_me:5912: result: $cf_disable_rpath_hack" >&5
+-echo "${ECHO_T}$cf_disable_rpath_hack" >&6
+-if test "$cf_disable_rpath_hack" = no ; then
++ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
+
+-echo "$as_me:5916: checking for updated LDFLAGS" >&5
+-echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
+-if test -n "$LD_RPATH_OPT" ; then
+- echo "$as_me:5919: result: maybe" >&5
+-echo "${ECHO_T}maybe" >&6
++echo "${as_me:-configure}:6341: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
+
+- for ac_prog in ldd
+-do
+- # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:5926: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++for model in $cf_list_models; do
++ case $model in #(vi
++ libtool)
++
++echo "$as_me:6347: checking for additional libtool options" >&5
++echo $ECHO_N "checking for additional libtool options... $ECHO_C" >&6
++
++# Check whether --with-libtool-opts or --without-libtool-opts was given.
++if test "${with_libtool_opts+set}" = set; then
++ withval="$with_libtool_opts"
++ with_libtool_opts=$withval
++else
++ with_libtool_opts=no
++fi;
++echo "$as_me:6357: result: $with_libtool_opts" >&5
++echo "${ECHO_T}$with_libtool_opts" >&6
++
++case .$with_libtool_opts in
++.yes|.no|.)
++ ;;
++*)
++ LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
++ ;;
++esac
++
++echo "$as_me:6368: checking if exported-symbols file should be used" >&5
++echo $ECHO_N "checking if exported-symbols file should be used... $ECHO_C" >&6
++
++# Check whether --with-export-syms or --without-export-syms was given.
++if test "${with_export_syms+set}" = set; then
++ withval="$with_export_syms"
++ with_export_syms=$withval
++else
++ with_export_syms=no
++fi;
++if test "x$with_export_syms" = xyes
++then
++ with_export_syms='${top_srcdir}/package/${PACKAGE}.sym'
++
++fi
++echo "$as_me:6383: result: $with_export_syms" >&5
++echo "${ECHO_T}$with_export_syms" >&6
++if test "x$with_export_syms" != xno
++then
++ EXPORT_SYMS="$EXPORT_SYMS -export-symbols $with_export_syms"
++
++fi
++
++ ;;
++ shared) #(vi
++ if test "$CC_SHARED_OPTS" = "unknown"; then
++ { { echo "$as_me:6394: 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
++
++echo "$as_me:6399: checking if versioned-symbols file should be used" >&5
++echo $ECHO_N "checking if versioned-symbols file should be used... $ECHO_C" >&6
++
++# Check whether --with-versioned-syms or --without-versioned-syms was given.
++if test "${with_versioned_syms+set}" = set; then
++ withval="$with_versioned_syms"
++ with_versioned_syms=$withval
++else
++ with_versioned_syms=no
++fi;
++if test "x$with_versioned_syms" = xyes
++then
++ with_versioned_syms='${top_srcdir}/package/${PACKAGE}.map'
++
++fi
++echo "$as_me:6414: result: $with_versioned_syms" >&5
++echo "${ECHO_T}$with_versioned_syms" >&6
++
++if test "x$with_versioned_syms" != xno
++then
++
++ case "x$MK_SHARED_LIB" in
++ *-Wl,*) #(vi
++ VERSIONED_SYMS="-Wl,--version-script,$with_versioned_syms"
++ MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\${VERSIONED_SYMS} -Wl,%"`
++ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
++
++echo "${as_me:-configure}:6426: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
++
++ ;;
++ *-dy*) #(vi
++ VERSIONED_SYMS="-Wl,-M,$with_versioned_syms"
++ MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\${VERSIONED_SYMS} -dy%"`
++ test -n "$verbose" && echo " MK_SHARED_LIB: $MK_SHARED_LIB" 1>&6
++
++echo "${as_me:-configure}:6434: testing MK_SHARED_LIB: $MK_SHARED_LIB ..." 1>&5
++
++ ;;
++ *)
++ { echo "$as_me:6438: WARNING: this system does not support versioned-symbols" >&5
++echo "$as_me: WARNING: this system does not support versioned-symbols" >&2;}
++ ;;
++ esac
++fi
++
++ ;;
++ esac
++done
++
++# pretend that ncurses==ncursesw==ncursest
++echo "$as_me:6449: checking if you want to disable library suffixes" >&5
++echo $ECHO_N "checking if you want to disable library suffixes... $ECHO_C" >&6
++
++# Check whether --enable-lib-suffixes or --disable-lib-suffixes was given.
++if test "${enable_lib_suffixes+set}" = set; then
++ enableval="$enable_lib_suffixes"
++ disable_lib_suffixes=$enableval
++else
++ disable_lib_suffixes=no
++fi;
++echo "$as_me:6459: result: $disable_lib_suffixes" >&5
++echo "${ECHO_T}$disable_lib_suffixes" >&6
++
++### If we're building with rpath, try to link non-standard libs that way too.
++if test "$DFT_LWR_MODEL" = "shared"; then
++
++echo "$as_me:6465: checking if rpath-hack should be disabled" >&5
++echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
++
++# Check whether --enable-rpath-hack or --disable-rpath-hack was given.
++if test "${enable_rpath_hack+set}" = set; then
++ enableval="$enable_rpath_hack"
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++ cf_disable_rpath_hack=yes
++ else
++ cf_disable_rpath_hack=no
++ fi
++else
++ enableval=yes
++ cf_disable_rpath_hack=no
++
++fi;
++echo "$as_me:6482: result: $cf_disable_rpath_hack" >&5
++echo "${ECHO_T}$cf_disable_rpath_hack" >&6
++if test "$cf_disable_rpath_hack" = no ; then
++
++echo "$as_me:6486: checking for updated LDFLAGS" >&5
++echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
++if test -n "$LD_RPATH_OPT" ; then
++ echo "$as_me:6489: result: maybe" >&5
++echo "${ECHO_T}maybe" >&6
++
++ for ac_prog in ldd
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:6496: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test -n "$cf_ldd_prog"; then
+ ac_cv_prog_cf_ldd_prog="$cf_ldd_prog" # Let the user override the test.
+@@ -5938,7 +6508,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_cf_ldd_prog="$ac_prog"
+-echo "$as_me:5941: found $ac_dir/$ac_word" >&5
++echo "$as_me:6511: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -5946,10 +6516,10 @@
+ fi
+ cf_ldd_prog=$ac_cv_prog_cf_ldd_prog
+ if test -n "$cf_ldd_prog"; then
+- echo "$as_me:5949: result: $cf_ldd_prog" >&5
++ echo "$as_me:6519: result: $cf_ldd_prog" >&5
+ echo "${ECHO_T}$cf_ldd_prog" >&6
+ else
+- echo "$as_me:5952: result: no" >&5
++ echo "$as_me:6522: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -5963,7 +6533,7 @@
+ cf_rpath_oops=
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5966 "configure"
++#line 6536 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -5975,19 +6545,19 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5978: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6548: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5981: \$? = $ac_status" >&5
++ echo "$as_me:6551: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5984: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6554: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5987: \$? = $ac_status" >&5
++ echo "$as_me:6557: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
+- cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort -u`
++ cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq`
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+@@ -6012,7 +6582,7 @@
+ then
+ test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6
+
+-echo "${as_me:-configure}:6015: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
++echo "${as_me:-configure}:6585: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
+
+ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
+ break
+@@ -6024,11 +6594,11 @@
+
+ test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
+
+-echo "${as_me:-configure}:6027: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
++echo "${as_me:-configure}:6597: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+
+ test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
+
+-echo "${as_me:-configure}:6031: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
++echo "${as_me:-configure}:6601: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
+
+ cf_rpath_dst=
+ for cf_rpath_src in $LDFLAGS
+@@ -6065,7 +6635,7 @@
+ then
+ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
+
+-echo "${as_me:-configure}:6068: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
++echo "${as_me:-configure}:6638: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
+
+ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
+ fi
+@@ -6078,11 +6648,11 @@
+
+ test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
+
+-echo "${as_me:-configure}:6081: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
++echo "${as_me:-configure}:6651: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
+
+ test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6
+
+-echo "${as_me:-configure}:6085: testing ...checking LIBS $LIBS ..." 1>&5
++echo "${as_me:-configure}:6655: testing ...checking LIBS $LIBS ..." 1>&5
+
+ cf_rpath_dst=
+ for cf_rpath_src in $LIBS
+@@ -6119,7 +6689,7 @@
+ then
+ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
+
+-echo "${as_me:-configure}:6122: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
++echo "${as_me:-configure}:6692: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
+
+ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
+ fi
+@@ -6132,12 +6702,15 @@
+
+ test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6
+
+-echo "${as_me:-configure}:6135: testing ...checked LIBS $LIBS ..." 1>&5
++echo "${as_me:-configure}:6705: testing ...checked LIBS $LIBS ..." 1>&5
+
+ test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
+
+-echo "${as_me:-configure}:6139: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
++echo "${as_me:-configure}:6709: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+
++else
++ echo "$as_me:6712: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+
+ fi
+@@ -6147,7 +6720,7 @@
+ ###############################################################################
+
+ ### use option --disable-overwrite to leave out the link to -lcurses
+-echo "$as_me:6150: checking if you wish to install ncurses overwriting curses" >&5
++echo "$as_me:6723: checking if you wish to install ncurses overwriting curses" >&5
+ echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
+
+ # Check whether --enable-overwrite or --disable-overwrite was given.
+@@ -6157,10 +6730,10 @@
+ else
+ if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
+ fi;
+-echo "$as_me:6160: result: $with_overwrite" >&5
++echo "$as_me:6733: result: $with_overwrite" >&5
+ echo "${ECHO_T}$with_overwrite" >&6
+
+-echo "$as_me:6163: checking if external terminfo-database is used" >&5
++echo "$as_me:6736: checking if external terminfo-database is used" >&5
+ echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
+
+ # Check whether --enable-database or --disable-database was given.
+@@ -6170,7 +6743,7 @@
+ else
+ use_database=yes
+ fi;
+-echo "$as_me:6173: result: $use_database" >&5
++echo "$as_me:6746: result: $use_database" >&5
+ echo "${ECHO_T}$use_database" >&6
+
+ case $host_os in #(vi
+@@ -6182,17 +6755,11 @@
+ ;;
+ esac
+
+- case $cf_cv_system_name in
+- os2*) PATH_SEPARATOR=';' ;;
+- *) PATH_SEPARATOR=':' ;;
+- esac
+-
++NCURSES_USE_DATABASE=0
+ if test "$use_database" != no ; then
+- cat >>confdefs.h <<\EOF
+-#define USE_DATABASE 1
+-EOF
++ NCURSES_USE_DATABASE=1
+
+- echo "$as_me:6195: checking which terminfo source-file will be installed" >&5
++ echo "$as_me:6762: checking which terminfo source-file will be installed" >&5
+ echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
+
+ # Check whether --with-database or --without-database was given.
+@@ -6200,10 +6767,10 @@
+ withval="$with_database"
+ TERMINFO_SRC=$withval
+ fi;
+- echo "$as_me:6203: result: $TERMINFO_SRC" >&5
++ echo "$as_me:6770: result: $TERMINFO_SRC" >&5
+ echo "${ECHO_T}$TERMINFO_SRC" >&6
+
+- echo "$as_me:6206: checking whether to use hashed database instead of directory/tree" >&5
++ echo "$as_me:6773: checking whether to use hashed database instead of directory/tree" >&5
+ echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
+
+ # Check whether --with-hashed-db or --without-hashed-db was given.
+@@ -6213,13 +6780,13 @@
+ else
+ with_hashed_db=no
+ fi;
+- echo "$as_me:6216: result: $with_hashed_db" >&5
++ echo "$as_me:6783: result: $with_hashed_db" >&5
+ echo "${ECHO_T}$with_hashed_db" >&6
+ else
+ with_hashed_db=no
+ fi
+
+-echo "$as_me:6222: checking for list of fallback descriptions" >&5
++echo "$as_me:6789: checking for list of fallback descriptions" >&5
+ echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
+
+ # Check whether --with-fallbacks or --without-fallbacks was given.
+@@ -6229,11 +6796,11 @@
+ else
+ with_fallback=
+ fi;
+-echo "$as_me:6232: result: $with_fallback" >&5
++echo "$as_me:6799: result: $with_fallback" >&5
+ echo "${ECHO_T}$with_fallback" >&6
+ FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+
+-echo "$as_me:6236: checking if you want modern xterm or antique" >&5
++echo "$as_me:6803: checking if you want modern xterm or antique" >&5
+ echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
+
+ # Check whether --with-xterm-new or --without-xterm-new was given.
+@@ -6247,17 +6814,42 @@
+ no) with_xterm_new=xterm-old;;
+ *) with_xterm_new=xterm-new;;
+ esac
+-echo "$as_me:6250: result: $with_xterm_new" >&5
++echo "$as_me:6817: result: $with_xterm_new" >&5
+ echo "${ECHO_T}$with_xterm_new" >&6
+ WHICH_XTERM=$with_xterm_new
+
++echo "$as_me:6821: checking if xterm backspace sends BS or DEL" >&5
++echo $ECHO_N "checking if xterm backspace sends BS or DEL... $ECHO_C" >&6
++
++# Check whether --with-xterm-kbs or --without-xterm-kbs was given.
++if test "${with_xterm_kbs+set}" = set; then
++ withval="$with_xterm_kbs"
++ with_xterm_kbs=$withval
++else
++ with_xterm_kbs=BS
++fi;
++case x$with_xterm_kbs in
++xyes|xno|xBS|xbs|x8)
++ with_xterm_kbs=BS
++ ;;
++xDEL|xdel|x127)
++ with_xterm_kbs=DEL
++ ;;
++*)
++ with_xterm_kbs=$withval
++ ;;
++esac
++echo "$as_me:6842: result: $with_xterm_kbs" >&5
++echo "${ECHO_T}$with_xterm_kbs" >&6
++XTERM_KBS=$with_xterm_kbs
++
+ MAKE_TERMINFO=
+ if test "$use_database" = no ; then
+ TERMINFO="${datadir}/terminfo"
+ MAKE_TERMINFO="#"
+ else
+
+-echo "$as_me:6260: checking for list of terminfo directories" >&5
++echo "$as_me:6852: checking for list of terminfo directories" >&5
+ echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
+
+ # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
+@@ -6285,7 +6877,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval cf_src_path="$cf_src_path"
+ case ".$cf_src_path" in #(vi
+ .NONE/*)
+@@ -6297,26 +6889,37 @@
+ cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:6300: error: expected a pathname, not \"$cf_src_path\"" >&5
++ { { echo "$as_me:6892: error: expected a pathname, not \"$cf_src_path\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
+ cf_dst_path="${cf_dst_path}${cf_src_path}"
+ done
+ IFS="$ac_save_ifs"
+
+-eval 'TERMINFO_DIRS="$cf_dst_path"'
++# This may use the prefix/exec_prefix symbols which will only yield "NONE"
++# so we have to check/work around. We do prefer the result of "eval"...
++eval cf_dst_eval="$cf_dst_path"
++case "x$cf_dst_eval" in #(vi
++xNONE*) #(vi
++ TERMINFO_DIRS=$cf_dst_path
++ ;;
++*)
++ TERMINFO_DIRS="$cf_dst_eval"
++ ;;
++esac
+
+-echo "$as_me:6313: result: $TERMINFO_DIRS" >&5
++echo "$as_me:6915: result: $TERMINFO_DIRS" >&5
+ echo "${ECHO_T}$TERMINFO_DIRS" >&6
+-test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
++test -n "$TERMINFO_DIRS" &&
++cat >>confdefs.h <<EOF
+ #define TERMINFO_DIRS "$TERMINFO_DIRS"
+ EOF
+
+-echo "$as_me:6319: checking for default terminfo directory" >&5
++echo "$as_me:6922: checking for default terminfo directory" >&5
+ echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
+
+ # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
+@@ -6340,7 +6943,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval withval="$withval"
+ case ".$withval" in #(vi
+ .NONE/*)
+@@ -6352,17 +6955,18 @@
+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:6355: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:6958: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ fi
+-TERMINFO="$withval"
++eval TERMINFO="$withval"
+
+-echo "$as_me:6364: result: $TERMINFO" >&5
++echo "$as_me:6967: result: $TERMINFO" >&5
+ echo "${ECHO_T}$TERMINFO" >&6
++
+ cat >>confdefs.h <<EOF
+ #define TERMINFO "$TERMINFO"
+ EOF
+@@ -6371,7 +6975,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:6374: checking if big-core option selected" >&5
++echo "$as_me:6978: checking if big-core option selected" >&5
+ echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
+
+ # Check whether --enable-big-core or --disable-big-core was given.
+@@ -6383,7 +6987,7 @@
+ with_big_core=no
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6386 "configure"
++#line 6990 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -6397,15 +7001,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6400: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7004: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6403: \$? = $ac_status" >&5
++ echo "$as_me:7007: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6405: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7009: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6408: \$? = $ac_status" >&5
++ echo "$as_me:7012: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ with_big_core=yes
+ else
+@@ -6417,16 +7021,17 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi;
+-echo "$as_me:6420: result: $with_big_core" >&5
++echo "$as_me:7024: result: $with_big_core" >&5
+ echo "${ECHO_T}$with_big_core" >&6
+-test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
++test "x$with_big_core" = "xyes" &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_BIG_CORE 1
+ EOF
+
+ ### ISO C only guarantees 512-char strings, we have tables which load faster
+ ### when constructed using "big" strings. More than the C compiler, the awk
+ ### program is a limit on most vendor UNIX systems. Check that we can build.
+-echo "$as_me:6429: checking if big-strings option selected" >&5
++echo "$as_me:7034: checking if big-strings option selected" >&5
+ echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
+
+ # Check whether --enable-big-strings or --disable-big-strings was given.
+@@ -6440,8 +7045,8 @@
+ eval with_big_strings=no
+ ;;
+ *) #(vi
+- if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' \
+- | $AWK '{ printf "%d\n", length($0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
++ if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
++ | $AWK '{ printf "%d\n", length($0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
+ eval with_big_strings=yes
+ else
+ eval with_big_strings=no
+@@ -6450,14 +7055,14 @@
+ esac
+
+ fi;
+-echo "$as_me:6453: result: $with_big_strings" >&5
++echo "$as_me:7058: result: $with_big_strings" >&5
+ echo "${ECHO_T}$with_big_strings" >&6
+
+ USE_BIG_STRINGS=0
+-test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
++test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1
+
+ ### use option --enable-termcap to compile in the termcap fallback support
+-echo "$as_me:6460: checking if you want termcap-fallback support" >&5
++echo "$as_me:7065: checking if you want termcap-fallback support" >&5
+ echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
+
+ # Check whether --enable-termcap or --disable-termcap was given.
+@@ -6467,34 +7072,33 @@
+ else
+ with_termcap=no
+ fi;
+-echo "$as_me:6470: result: $with_termcap" >&5
++echo "$as_me:7075: result: $with_termcap" >&5
+ echo "${ECHO_T}$with_termcap" >&6
+
+-if test "$with_termcap" != "yes" ; then
++NCURSES_USE_TERMCAP=0
++if test "x$with_termcap" != "xyes" ; then
+ if test "$use_database" = no ; then
+ if test -z "$with_fallback" ; then
+- { { echo "$as_me:6476: error: You have disabled the database w/o specifying fallbacks" >&5
++ { { echo "$as_me:7082: error: You have disabled the database w/o specifying fallbacks" >&5
+ echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define PURE_TERMINFO 1
+ EOF
+
+ else
+
+-if test "$with_ticlib" != no ; then
+- { { echo "$as_me:6488: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
++ if test "$with_ticlib" != no ; then
++ { { echo "$as_me:7095: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
+ echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
+ { (exit 1); exit 1; }; }
+-fi
+-
+-cat >>confdefs.h <<\EOF
+-#define USE_TERMCAP 1
+-EOF
++ fi
+
+-echo "$as_me:6497: checking for list of termcap files" >&5
++ NCURSES_USE_TERMCAP=1
++ echo "$as_me:7101: checking for list of termcap files" >&5
+ echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
+
+ # Check whether --with-termpath or --without-termpath was given.
+@@ -6522,7 +7126,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval cf_src_path="$cf_src_path"
+ case ".$cf_src_path" in #(vi
+ .NONE/*)
+@@ -6534,27 +7138,38 @@
+ cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:6537: error: expected a pathname, not \"$cf_src_path\"" >&5
++ { { echo "$as_me:7141: error: expected a pathname, not \"$cf_src_path\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
++ test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
+ cf_dst_path="${cf_dst_path}${cf_src_path}"
+ done
+ IFS="$ac_save_ifs"
+
+-eval 'TERMPATH="$cf_dst_path"'
++# This may use the prefix/exec_prefix symbols which will only yield "NONE"
++# so we have to check/work around. We do prefer the result of "eval"...
++eval cf_dst_eval="$cf_dst_path"
++case "x$cf_dst_eval" in #(vi
++xNONE*) #(vi
++ TERMPATH=$cf_dst_path
++ ;;
++*)
++ TERMPATH="$cf_dst_eval"
++ ;;
++esac
+
+-echo "$as_me:6550: result: $TERMPATH" >&5
++ echo "$as_me:7164: result: $TERMPATH" >&5
+ echo "${ECHO_T}$TERMPATH" >&6
+-test -n "$TERMPATH" && cat >>confdefs.h <<EOF
++ 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:6557: checking if fast termcap-loader is needed" >&5
++ ### use option --enable-getcap to use a hacked getcap for reading termcaps
++ echo "$as_me:7172: checking if fast termcap-loader is needed" >&5
+ echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
+
+ # Check whether --enable-getcap or --disable-getcap was given.
+@@ -6564,13 +7179,14 @@
+ else
+ with_getcap=no
+ fi;
+-echo "$as_me:6567: result: $with_getcap" >&5
++ echo "$as_me:7182: result: $with_getcap" >&5
+ echo "${ECHO_T}$with_getcap" >&6
+-test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
++ test "x$with_getcap" = "xyes" &&
++cat >>confdefs.h <<\EOF
+ #define USE_GETCAP 1
+ EOF
+
+-echo "$as_me:6573: checking if translated termcaps will be cached in ~/.terminfo" >&5
++ echo "$as_me:7189: checking if translated termcaps will be cached in ~/.terminfo" >&5
+ echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
+
+ # Check whether --enable-getcap-cache or --disable-getcap-cache was given.
+@@ -6580,16 +7196,17 @@
+ else
+ with_getcap_cache=no
+ fi;
+-echo "$as_me:6583: result: $with_getcap_cache" >&5
++ echo "$as_me:7199: result: $with_getcap_cache" >&5
+ echo "${ECHO_T}$with_getcap_cache" >&6
+-test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
++ test "x$with_getcap_cache" = "xyes" &&
++cat >>confdefs.h <<\EOF
+ #define USE_GETCAP_CACHE 1
+ EOF
+
+ fi
+
+ ### Use option --disable-home-terminfo to completely remove ~/.terminfo
+-echo "$as_me:6592: checking if ~/.terminfo is wanted" >&5
++echo "$as_me:7209: checking if ~/.terminfo is wanted" >&5
+ echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
+
+ # Check whether --enable-home-terminfo or --disable-home-terminfo was given.
+@@ -6599,13 +7216,14 @@
+ else
+ with_home_terminfo=yes
+ fi;
+-echo "$as_me:6602: result: $with_home_terminfo" >&5
++echo "$as_me:7219: result: $with_home_terminfo" >&5
+ echo "${ECHO_T}$with_home_terminfo" >&6
+-test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
++test "x$with_home_terminfo" = "xyes" &&
++cat >>confdefs.h <<\EOF
+ #define USE_HOME_TERMINFO 1
+ EOF
+
+-echo "$as_me:6608: checking if you want to use restricted environment when running as root" >&5
++echo "$as_me:7226: checking if you want to use restricted environment when running as root" >&5
+ echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
+
+ # Check whether --enable-root-environ or --disable-root-environ was given.
+@@ -6615,9 +7233,10 @@
+ else
+ with_root_environ=yes
+ fi;
+-echo "$as_me:6618: result: $with_root_environ" >&5
++echo "$as_me:7236: result: $with_root_environ" >&5
+ echo "${ECHO_T}$with_root_environ" >&6
+-test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
++test "x$with_root_environ" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_ROOT_ENVIRON 1
+ EOF
+
+@@ -6629,13 +7248,13 @@
+ unlink
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:6632: checking for $ac_func" >&5
++echo "$as_me:7251: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6638 "configure"
++#line 7257 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -6658,7 +7277,7 @@
+ #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+ choke me
+ #else
+-f = $ac_func;
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -6666,16 +7285,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6669: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7288: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6672: \$? = $ac_status" >&5
++ echo "$as_me:7291: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6675: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7294: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6678: \$? = $ac_status" >&5
++ echo "$as_me:7297: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -6685,7 +7304,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6688: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:7307: 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
+@@ -6702,13 +7321,13 @@
+ symlink
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:6705: checking for $ac_func" >&5
++echo "$as_me:7324: 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 6711 "configure"
++#line 7330 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -6731,7 +7350,7 @@
+ #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+ choke me
+ #else
+-f = $ac_func;
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -6739,16 +7358,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6742: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7361: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6745: \$? = $ac_status" >&5
++ echo "$as_me:7364: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6748: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7367: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6751: \$? = $ac_status" >&5
++ echo "$as_me:7370: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -6758,7 +7377,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:6761: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:7380: 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
+@@ -6769,7 +7388,7 @@
+ done
+
+ else
+- echo "$as_me:6772: checking if link/symlink functions work" >&5
++ echo "$as_me:7391: 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
+@@ -6782,7 +7401,7 @@
+ eval 'ac_cv_func_'$cf_func'=error'
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6785 "configure"
++#line 7404 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -6812,15 +7431,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6815: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7434: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6818: \$? = $ac_status" >&5
++ echo "$as_me:7437: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6820: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7439: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6823: \$? = $ac_status" >&5
++ echo "$as_me:7442: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
+@@ -6838,13 +7457,15 @@
+ test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
+
+ fi
+-echo "$as_me:6841: result: $cf_cv_link_funcs" >&5
++echo "$as_me:7460: result: $cf_cv_link_funcs" >&5
+ echo "${ECHO_T}$cf_cv_link_funcs" >&6
+- test "$ac_cv_func_link" = yes && cat >>confdefs.h <<\EOF
++ test "$ac_cv_func_link" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_LINK 1
+ EOF
+
+- test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF
++ test "$ac_cv_func_symlink" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_SYMLINK 1
+ EOF
+
+@@ -6855,8 +7476,8 @@
+
+ # soft links (symbolic links) are useful for some systems where hard links do
+ # not work, or to make it simpler to copy terminfo trees around.
+-if test "$ac_cv_func_symlink" = yes ; then
+- echo "$as_me:6859: checking if tic should use symbolic links" >&5
++if test "x$ac_cv_func_symlink" = xyes ; then
++ echo "$as_me:7480: 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.
+@@ -6866,34 +7487,36 @@
+ else
+ with_symlinks=no
+ fi;
+- echo "$as_me:6869: result: $with_symlinks" >&5
++ echo "$as_me:7490: result: $with_symlinks" >&5
+ echo "${ECHO_T}$with_symlinks" >&6
+ fi
+
+ # If we have hard links and did not choose to use soft links instead, there is
+ # no reason to make this choice optional - use the hard links.
+ if test "$with_symlinks" = no ; then
+- echo "$as_me:6876: checking if tic should use hard links" >&5
++ echo "$as_me:7497: 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
++ if test "x$ac_cv_func_link" = xyes ; then
+ with_links=yes
+ else
+ with_links=no
+ fi
+- echo "$as_me:6883: result: $with_links" >&5
++ echo "$as_me:7504: result: $with_links" >&5
+ echo "${ECHO_T}$with_links" >&6
+ fi
+
+-test "$with_links" = yes && cat >>confdefs.h <<\EOF
++test "x$with_links" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_LINKS 1
+ EOF
+
+-test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF
++test "x$with_symlinks" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_SYMLINKS 1
+ EOF
+
+ ### use option --enable-broken-linker to force on use of broken-linker support
+-echo "$as_me:6896: checking if you want broken-linker support code" >&5
++echo "$as_me:7519: 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.
+@@ -6903,12 +7526,13 @@
+ else
+ with_broken_linker=${BROKEN_LINKER:-no}
+ fi;
+-echo "$as_me:6906: result: $with_broken_linker" >&5
++echo "$as_me:7529: result: $with_broken_linker" >&5
+ echo "${ECHO_T}$with_broken_linker" >&6
+
+ BROKEN_LINKER=0
+-if test "$with_broken_linker" = yes ; then
+- cat >>confdefs.h <<\EOF
++if test "x$with_broken_linker" = xyes ; then
++
++cat >>confdefs.h <<\EOF
+ #define BROKEN_LINKER 1
+ EOF
+
+@@ -6916,21 +7540,22 @@
+ elif test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+ cygwin*)
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define BROKEN_LINKER 1
+ EOF
+
+ BROKEN_LINKER=1
+ test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6
+
+-echo "${as_me:-configure}:6926: testing cygwin linker is broken anyway ..." 1>&5
++echo "${as_me:-configure}:7551: testing cygwin linker is broken anyway ..." 1>&5
+
+ ;;
+ esac
+ fi
+
+ ### use option --enable-bsdpad to have tputs process BSD-style prefix padding
+-echo "$as_me:6933: checking if tputs should process BSD-style prefix padding" >&5
++echo "$as_me:7558: 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.
+@@ -6940,9 +7565,10 @@
+ else
+ with_bsdpad=no
+ fi;
+-echo "$as_me:6943: result: $with_bsdpad" >&5
++echo "$as_me:7568: result: $with_bsdpad" >&5
+ echo "${ECHO_T}$with_bsdpad" >&6
+-test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
++test "x$with_bsdpad" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define BSD_TPUTS 1
+ EOF
+
+@@ -6962,10 +7588,10 @@
+ cf_xopen_source=
+
+ case $host_os in #(vi
+-aix[456]*) #(vi
++aix[4-7]*) #(vi
+ cf_xopen_source="-D_ALL_SOURCE"
+ ;;
+-cygwin) #(vi
++cygwin|msys) #(vi
+ cf_XOPEN_SOURCE=600
+ ;;
+ darwin[0-8].*) #(vi
+@@ -6973,6 +7599,7 @@
+ ;;
+ darwin*) #(vi
+ cf_xopen_source="-D_DARWIN_C_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ freebsd*|dragonfly*) #(vi
+ # 5.x headers associate
+@@ -6990,17 +7617,18 @@
+ ;;
+ irix[56].*) #(vi
+ cf_xopen_source="-D_SGI_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+
+-echo "$as_me:6996: checking if we must define _GNU_SOURCE" >&5
++echo "$as_me:7624: 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 7003 "configure"
++#line 7631 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7015,16 +7643,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7018: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7646: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7021: \$? = $ac_status" >&5
++ echo "$as_me:7649: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7024: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7652: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7027: \$? = $ac_status" >&5
++ echo "$as_me:7655: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gnu_source=no
+ else
+@@ -7033,7 +7661,7 @@
+ cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7036 "configure"
++#line 7664 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7048,16 +7676,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7051: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7679: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7054: \$? = $ac_status" >&5
++ echo "$as_me:7682: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7057: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7685: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7060: \$? = $ac_status" >&5
++ echo "$as_me:7688: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gnu_source=no
+ else
+@@ -7072,51 +7700,48 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7075: result: $cf_cv_gnu_source" >&5
++echo "$as_me:7703: result: $cf_cv_gnu_source" >&5
+ echo "${ECHO_T}$cf_cv_gnu_source" >&6
+ test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+
+ ;;
+-mirbsd*) #(vi
+- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+- ;;
+-netbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+- ;;
+-openbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+- ;;
+-osf[45]*) #(vi
+- cf_xopen_source="-D_OSF_SOURCE"
+- ;;
+-nto-qnx*) #(vi
+- cf_xopen_source="-D_QNX_SOURCE"
+- ;;
+-sco*) #(vi
+- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+- ;;
+-solaris2.1[0-9]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-solaris2.[1-9]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__"
++minix*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
+ ;;
+-*)
+- echo "$as_me:7105: checking if we should define _XOPEN_SOURCE" >&5
+-echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+-if test "${cf_cv_xopen_source+set}" = set; then
++mirbsd*) #(vi
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
++ cf_XOPEN_SOURCE=
++
++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
++
++cf_save_CFLAGS="$CFLAGS"
++cf_save_CPPFLAGS="$CPPFLAGS"
++
++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++echo "$as_me:7728: checking if we should define _POSIX_C_SOURCE" >&5
++echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_posix_c_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
++echo "${as_me:-configure}:7734: testing if the symbol is already defined go no further ..." 1>&5
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7112 "configure"
++#line 7737 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+ main ()
+ {
+
+-#ifndef _XOPEN_SOURCE
++#ifndef _POSIX_C_SOURCE
+ make an error
+ #endif
+ ;
+@@ -7124,32 +7749,44 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7127: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7752: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7130: \$? = $ac_status" >&5
++ echo "$as_me:7755: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7133: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7758: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7136: \$? = $ac_status" >&5
++ echo "$as_me:7761: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_xopen_source=no
++ cf_cv_posix_c_source=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_save="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7145 "configure"
++cf_want_posix_source=no
++ case .$cf_POSIX_C_SOURCE in #(vi
++ .[12]??*) #(vi
++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
++ ;;
++ .2) #(vi
++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
++ cf_want_posix_source=yes
++ ;;
++ .*)
++ cf_want_posix_source=yes
++ ;;
++ esac
++ if test "$cf_want_posix_source" = yes ; then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7782 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+ main ()
+ {
+
+-#ifdef _XOPEN_SOURCE
++#ifdef _POSIX_SOURCE
+ make an error
+ #endif
+ ;
+@@ -7157,50 +7794,87 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7160: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7797: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7163: \$? = $ac_status" >&5
++ echo "$as_me:7800: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7166: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7803: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7169: \$? = $ac_status" >&5
++ echo "$as_me:7806: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_xopen_source=no
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_xopen_source=$cf_XOPEN_SOURCE
++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS="$cf_save"
++ fi
++
++echo "${as_me:-configure}:7817: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
++
++echo "${as_me:-configure}:7822: testing if the second compile does not leave our definition intact error ..." 1>&5
+
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7825 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++int
++main ()
++{
++
++#ifndef _POSIX_C_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7840: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:7843: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7846: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:7849: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_posix_c_source=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ CPPFLAGS="$cf_save_CPPFLAGS"
+
+ fi
+-echo "$as_me:7184: result: $cf_cv_xopen_source" >&5
+-echo "${ECHO_T}$cf_cv_xopen_source" >&6
+- if test "$cf_cv_xopen_source" != no ; then
+-
+-CFLAGS=`echo "$CFLAGS" | \
+- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++rm -f conftest.$ac_objext conftest.$ac_ext
+
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++fi
++echo "$as_me:7865: result: $cf_cv_posix_c_source" >&5
++echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+
+- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++if test "$cf_cv_posix_c_source" != no ; then
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS"
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+ cf_new_cppflags=
+ cf_new_extra_cppflags=
+
+-for cf_add_cflags in $cf_temp_xopen_source
++for cf_add_cflags in $cf_cv_posix_c_source
+ do
+ case $cf_fix_cppflags in
+ no)
+@@ -7210,7 +7884,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -7251,7 +7925,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -7273,9 +7947,222 @@
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- fi
++fi
+
+-cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
++ ;;
++netbsd*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd[4-9]*) #(vi
++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
++ cf_xopen_source="-D_BSD_SOURCE"
++ cf_XOPEN_SOURCE=600
++ ;;
++openbsd*) #(vi
++ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
++ ;;
++osf[45]*) #(vi
++ cf_xopen_source="-D_OSF_SOURCE"
++ ;;
++nto-qnx*) #(vi
++ cf_xopen_source="-D_QNX_SOURCE"
++ ;;
++sco*) #(vi
++ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
++ ;;
++solaris2.*) #(vi
++ cf_xopen_source="-D__EXTENSIONS__"
++ cf_cv_xopen_source=broken
++ ;;
++sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
++ cf_XOPEN_SOURCE=
++ cf_POSIX_C_SOURCE=
++ ;;
++*)
++
++echo "$as_me:7983: checking if we should define _XOPEN_SOURCE" >&5
++echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_xopen_source+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7990 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8009: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8012: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8015: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8018: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8027 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifdef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8046: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8049: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8052: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8055: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_xopen_source=$cf_XOPEN_SOURCE
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS="$cf_save"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:8070: result: $cf_cv_xopen_source" >&5
++echo "${ECHO_T}$cf_cv_xopen_source" >&6
++
++if test "$cf_cv_xopen_source" != no ; then
++
++CFLAGS=`echo "$CFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_temp_xopen_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++fi
++
++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
+
+ cf_save_CFLAGS="$CFLAGS"
+ cf_save_CPPFLAGS="$CPPFLAGS"
+@@ -7288,16 +8175,16 @@
+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+-echo "$as_me:7291: checking if we should define _POSIX_C_SOURCE" >&5
++echo "$as_me:8178: checking if we should define _POSIX_C_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_posix_c_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-echo "${as_me:-configure}:7297: testing if the symbol is already defined go no further ..." 1>&5
++echo "${as_me:-configure}:8184: testing if the symbol is already defined go no further ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7300 "configure"
++#line 8187 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7312,16 +8199,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7315: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8202: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7318: \$? = $ac_status" >&5
++ echo "$as_me:8205: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7321: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8208: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7324: \$? = $ac_status" >&5
++ echo "$as_me:8211: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_posix_c_source=no
+ else
+@@ -7342,7 +8229,7 @@
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7345 "configure"
++#line 8232 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -7357,16 +8244,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7360: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8247: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7363: \$? = $ac_status" >&5
++ echo "$as_me:8250: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7366: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8253: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7369: \$? = $ac_status" >&5
++ echo "$as_me:8256: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -7377,22 +8264,373 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+
+-echo "${as_me:-configure}:7380: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "${as_me:-configure}:8267: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+
+-echo "${as_me:-configure}:7385: testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "${as_me:-configure}:8272: testing if the second compile does not leave our definition intact error ..." 1>&5
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8275 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++int
++main ()
++{
++
++#ifndef _POSIX_C_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8290: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8293: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8296: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8299: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_posix_c_source=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ CPPFLAGS="$cf_save_CPPFLAGS"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:8315: result: $cf_cv_posix_c_source" >&5
++echo "${ECHO_T}$cf_cv_posix_c_source" >&6
++
++if test "$cf_cv_posix_c_source" != no ; then
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS"
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_cv_posix_c_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++fi
++
++ ;;
++esac
++
++if test -n "$cf_xopen_source" ; then
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_xopen_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
++
++echo "${as_me:-configure}:8473: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
++
++echo "${as_me:-configure}:8481: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
++
++echo "${as_me:-configure}:8489: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++fi
++
++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
++ echo "$as_me:8497: checking if _XOPEN_SOURCE really is set" >&5
++echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8500 "configure"
++#include "confdefs.h"
++#include <stdlib.h>
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8515: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8518: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8521: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8524: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_XOPEN_SOURCE_set=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_XOPEN_SOURCE_set=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ echo "$as_me:8533: result: $cf_XOPEN_SOURCE_set" >&5
++echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
++ if test $cf_XOPEN_SOURCE_set = yes
++ then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8538 "configure"
++#include "confdefs.h"
++#include <stdlib.h>
++int
++main ()
++{
+
++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8553: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8556: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8559: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8562: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_XOPEN_SOURCE_set_ok=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_XOPEN_SOURCE_set_ok=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ if test $cf_XOPEN_SOURCE_set_ok = no
++ then
++ { echo "$as_me:8573: WARNING: _XOPEN_SOURCE is lower than requested" >&5
++echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
++ fi
++ else
++
++echo "$as_me:8578: checking if we should define _XOPEN_SOURCE" >&5
++echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_xopen_source+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8585 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8604: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:8607: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8610: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8613: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7388 "configure"
++#line 8622 "configure"
+ #include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
+ #include <sys/types.h>
++
+ int
+ main ()
+ {
+
+-#ifndef _POSIX_C_SOURCE
++#ifdef _XOPEN_SOURCE
+ make an error
+ #endif
+ ;
+@@ -7400,129 +8638,51 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7403: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8641: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7406: \$? = $ac_status" >&5
++ echo "$as_me:8644: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7409: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8647: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7412: \$? = $ac_status" >&5
++ echo "$as_me:8650: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ cf_cv_xopen_source=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_posix_c_source=no
++cf_cv_xopen_source=$cf_XOPEN_SOURCE
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- CFLAGS="$cf_save_CFLAGS"
+- CPPFLAGS="$cf_save_CPPFLAGS"
++ CPPFLAGS="$cf_save"
+
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7428: result: $cf_cv_posix_c_source" >&5
+-echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+-
+-if test "$cf_cv_posix_c_source" != no ; then
+- CFLAGS="$cf_trim_CFLAGS"
+- CPPFLAGS="$cf_trim_CPPFLAGS"
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_cv_posix_c_source
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++echo "$as_me:8665: result: $cf_cv_xopen_source" >&5
++echo "${ECHO_T}$cf_cv_xopen_source" >&6
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
++if test "$cf_cv_xopen_source" != no ; then
+
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++CFLAGS=`echo "$CFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+ CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+-fi
+-
+- ;;
+-esac
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+-if test -n "$cf_xopen_source" ; then
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+ cf_new_cppflags=
+ cf_new_extra_cppflags=
+
+-for cf_add_cflags in $cf_xopen_source
++for cf_add_cflags in $cf_temp_xopen_source
+ do
+ case $cf_fix_cppflags in
+ no)
+@@ -7532,7 +8692,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -7573,7 +8733,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -7597,16 +8757,19 @@
+
+ fi
+
++ fi
++fi
++
+ # Work around breakage on OS X
+
+-echo "$as_me:7602: checking if SIGWINCH is defined" >&5
++echo "$as_me:8765: checking if SIGWINCH is defined" >&5
+ echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
+ if test "${cf_cv_define_sigwinch+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7609 "configure"
++#line 8772 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -7621,23 +8784,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7624: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8787: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7627: \$? = $ac_status" >&5
++ echo "$as_me:8790: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7630: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8793: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7633: \$? = $ac_status" >&5
++ echo "$as_me:8796: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_define_sigwinch=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7640 "configure"
++#line 8803 "configure"
+ #include "confdefs.h"
+
+ #undef _XOPEN_SOURCE
+@@ -7655,16 +8818,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7658: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8821: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7661: \$? = $ac_status" >&5
++ echo "$as_me:8824: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7664: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8827: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7667: \$? = $ac_status" >&5
++ echo "$as_me:8830: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_define_sigwinch=maybe
+ else
+@@ -7678,11 +8841,11 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7681: result: $cf_cv_define_sigwinch" >&5
++echo "$as_me:8844: result: $cf_cv_define_sigwinch" >&5
+ echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
+
+ if test "$cf_cv_define_sigwinch" = maybe ; then
+-echo "$as_me:7685: checking for actual SIGWINCH definition" >&5
++echo "$as_me:8848: checking for actual SIGWINCH definition" >&5
+ echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
+ if test "${cf_cv_fixup_sigwinch+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7693,7 +8856,7 @@
+ while test $cf_sigwinch != 1
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7696 "configure"
++#line 8859 "configure"
+ #include "confdefs.h"
+
+ #undef _XOPEN_SOURCE
+@@ -7715,16 +8878,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7718: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8881: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7721: \$? = $ac_status" >&5
++ echo "$as_me:8884: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7724: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8887: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7727: \$? = $ac_status" >&5
++ echo "$as_me:8890: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_fixup_sigwinch=$cf_sigwinch
+ break
+@@ -7738,7 +8901,7 @@
+ done
+
+ fi
+-echo "$as_me:7741: result: $cf_cv_fixup_sigwinch" >&5
++echo "$as_me:8904: result: $cf_cv_fixup_sigwinch" >&5
+ echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
+
+ if test "$cf_cv_fixup_sigwinch" != unknown ; then
+@@ -7748,13 +8911,13 @@
+
+ # Checks for CODESET support.
+
+- echo "$as_me:7751: checking for nl_langinfo and CODESET" >&5
++ echo "$as_me:8914: checking for nl_langinfo and CODESET" >&5
+ echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
+ if test "${am_cv_langinfo_codeset+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7757 "configure"
++#line 8920 "configure"
+ #include "confdefs.h"
+ #include <langinfo.h>
+ int
+@@ -7766,16 +8929,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7769: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8932: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7772: \$? = $ac_status" >&5
++ echo "$as_me:8935: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7775: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8938: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7778: \$? = $ac_status" >&5
++ echo "$as_me:8941: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ am_cv_langinfo_codeset=yes
+ else
+@@ -7786,7 +8949,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:7789: result: $am_cv_langinfo_codeset" >&5
++echo "$as_me:8952: result: $am_cv_langinfo_codeset" >&5
+ echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
+ if test $am_cv_langinfo_codeset = yes; then
+
+@@ -7800,7 +8963,7 @@
+ NCURSES_OK_WCHAR_T=
+ NCURSES_OK_WINT_T=
+
+-echo "$as_me:7803: checking if you want wide-character code" >&5
++echo "$as_me:8966: checking if you want wide-character code" >&5
+ echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
+
+ # Check whether --enable-widec or --disable-widec was given.
+@@ -7810,23 +8973,74 @@
+ else
+ with_widec=no
+ fi;
+-echo "$as_me:7813: result: $with_widec" >&5
++echo "$as_me:8976: result: $with_widec" >&5
+ echo "${ECHO_T}$with_widec" >&6
+-if test "$with_widec" = yes ; then
+- LIB_SUFFIX="w${LIB_SUFFIX}"
+- cat >>confdefs.h <<\EOF
++if test "x$with_widec" = xyes ; then
++ if test "x$disable_lib_suffixes" = xno ; then
++ LIB_SUFFIX="w${LIB_SUFFIX}"
++ fi
++
++cat >>confdefs.h <<\EOF
+ #define USE_WIDEC_SUPPORT 1
+ EOF
+
+- case "$CFLAGS $CPPFLAGS" in #(vi
+- *-D_XOPEN_SOURCE=500) #(vi
+- ;;
+- *)
++cat >>confdefs.h <<\EOF
++#define NCURSES_WIDECHAR 1
++EOF
++
++echo "$as_me:8991: checking if wchar.h can be used as is" >&5
++echo $ECHO_N "checking if wchar.h can be used as is... $ECHO_C" >&6
++if test "${cf_cv_wchar_h_okay+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 8998 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <wchar.h>
++
++int
++main ()
++{
++
++ wint_t foo = 0;
++ int bar = iswpunct(foo)
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:9015: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:9018: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:9021: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9024: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_wchar_h_okay=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_wchar_h_okay=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:9034: result: $cf_cv_wchar_h_okay" >&5
++echo "${ECHO_T}$cf_cv_wchar_h_okay" >&6
++
++if test $cf_cv_wchar_h_okay = no
++then
+
+-echo "$as_me:7826: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
++echo "$as_me:9040: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+ echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7829 "configure"
++#line 9043 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+
+@@ -7842,16 +9056,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7845: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9059: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7848: \$? = $ac_status" >&5
++ echo "$as_me:9062: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7851: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9065: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7854: \$? = $ac_status" >&5
++ echo "$as_me:9068: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_result=no
+ else
+@@ -7860,16 +9074,16 @@
+ cf_result=yes
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:7863: result: $cf_result" >&5
++echo "$as_me:9077: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+
+ if test "$cf_result" = yes ; then
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+ elif test "x" != "x" ; then
+- echo "$as_me:7869: checking checking for compatible value versus " >&5
++ echo "$as_me:9083: checking checking for compatible value versus " >&5
+ echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7872 "configure"
++#line 9086 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+
+@@ -7885,16 +9099,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7888: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9102: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7891: \$? = $ac_status" >&5
++ echo "$as_me:9105: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7894: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9108: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7897: \$? = $ac_status" >&5
++ echo "$as_me:9111: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_result=yes
+ else
+@@ -7903,7 +9117,7 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- echo "$as_me:7906: result: $cf_result" >&5
++ echo "$as_me:9120: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ if test "$cf_result" = no ; then
+ # perhaps we can override it - try...
+@@ -7911,8 +9125,7 @@
+ fi
+ fi
+
+- ;;
+- esac
++fi
+
+ # with_overwrite=no
+ NCURSES_CH_T=cchar_t
+@@ -7920,13 +9133,13 @@
+ for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:7923: checking for $ac_func" >&5
++echo "$as_me:9136: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7929 "configure"
++#line 9142 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -7949,7 +9162,7 @@
+ #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+ choke me
+ #else
+-f = $ac_func;
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -7957,16 +9170,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7960: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9173: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7963: \$? = $ac_status" >&5
++ echo "$as_me:9176: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7966: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9179: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7969: \$? = $ac_status" >&5
++ echo "$as_me:9182: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -7976,7 +9189,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:7979: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:9192: 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
+@@ -7986,9 +9199,9 @@
+ fi
+ done
+
+- if test "$ac_cv_func_putwc" != yes ; then
++ if test "x$ac_cv_func_putwc" != xyes ; then
+
+-echo "$as_me:7991: checking for multibyte character support" >&5
++echo "$as_me:9204: checking for multibyte character support" >&5
+ echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
+ if test "${cf_cv_utf8_lib+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -7996,7 +9209,7 @@
+
+ cf_save_LIBS="$LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7999 "configure"
++#line 9212 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8009,16 +9222,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8012: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9225: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8015: \$? = $ac_status" >&5
++ echo "$as_me:9228: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8018: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9231: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8021: \$? = $ac_status" >&5
++ echo "$as_me:9234: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_utf8_lib=yes
+ else
+@@ -8030,12 +9243,12 @@
+ cf_cv_header_path_utf8=
+ cf_cv_library_path_utf8=
+
+-echo "${as_me:-configure}:8033: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:9246: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+
+ cf_save_LIBS="$LIBS"
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8038 "configure"
++#line 9251 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -8048,16 +9261,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8051: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9264: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8054: \$? = $ac_status" >&5
++ echo "$as_me:9267: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8057: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9270: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8060: \$? = $ac_status" >&5
++ echo "$as_me:9273: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_find_linkage_utf8=yes
+@@ -8071,7 +9284,7 @@
+ LIBS="-lutf8 $cf_save_LIBS"
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8074 "configure"
++#line 9287 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -8084,16 +9297,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8087: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9300: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8090: \$? = $ac_status" >&5
++ echo "$as_me:9303: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8093: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9306: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8096: \$? = $ac_status" >&5
++ echo "$as_me:9309: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_find_linkage_utf8=yes
+@@ -8110,9 +9323,9 @@
+
+ test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
+
+-echo "${as_me:-configure}:8113: testing find linkage for utf8 library ..." 1>&5
++echo "${as_me:-configure}:9326: testing find linkage for utf8 library ..." 1>&5
+
+-echo "${as_me:-configure}:8115: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:9328: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+
+ cf_save_CPPFLAGS="$CPPFLAGS"
+ cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -8128,7 +9341,7 @@
+ -I*)
+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+
+-test "$cf_header_path" != "NONE" && \
++test "x$cf_header_path" != "xNONE" && \
+ test -d "$cf_header_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+@@ -8149,18 +9362,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8"
+- test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include"
+- test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include"
+- test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+@@ -8171,39 +9373,28 @@
+ test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8"
+- test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include"
+- test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include"
+- test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8"
+- test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include"
+- test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include"
+- test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8"
+- test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include"
+- test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include"
+- test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/utf8 && cf_search="$cf_search $cf_subdir_prefix/include/utf8"
++ test -d $cf_subdir_prefix/include/utf8/include && cf_search="$cf_search $cf_subdir_prefix/include/utf8/include"
++ test -d $cf_subdir_prefix/utf8/include && cf_search="$cf_search $cf_subdir_prefix/utf8/include"
++ test -d $cf_subdir_prefix/utf8/include/utf8 && cf_search="$cf_search $cf_subdir_prefix/utf8/include/utf8"
+ }
+
++done
++
+ test "$includedir" != NONE && \
+ test "$includedir" != "/usr/include" && \
+ test -d "$includedir" && {
+@@ -8225,11 +9416,11 @@
+ if test -d $cf_cv_header_path_utf8 ; then
+ test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:8228: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:9419: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+
+ CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8232 "configure"
++#line 9423 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -8242,21 +9433,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8245: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9436: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8248: \$? = $ac_status" >&5
++ echo "$as_me:9439: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8251: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9442: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8254: \$? = $ac_status" >&5
++ echo "$as_me:9445: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:8259: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:9450: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+
+ cf_cv_find_linkage_utf8=maybe
+ cf_test_CPPFLAGS="$CPPFLAGS"
+@@ -8274,7 +9465,7 @@
+
+ if test "$cf_cv_find_linkage_utf8" = maybe ; then
+
+-echo "${as_me:-configure}:8277: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "${as_me:-configure}:9468: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+
+ cf_save_LIBS="$LIBS"
+ cf_save_LDFLAGS="$LDFLAGS"
+@@ -8290,7 +9481,7 @@
+ -L*)
+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+-test "$cf_library_path" != "NONE" && \
++test "x$cf_library_path" != "xNONE" && \
+ test -d "$cf_library_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+@@ -8309,18 +9500,7 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8"
+- test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib"
+- test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib"
+- test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+@@ -8331,39 +9511,28 @@
+ test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/utf8 && cf_search="$cf_search /usr/local/lib/utf8"
+- test -d /usr/local/lib/utf8/lib && cf_search="$cf_search /usr/local/lib/utf8/lib"
+- test -d /usr/local/utf8/lib && cf_search="$cf_search /usr/local/utf8/lib"
+- test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/utf8 && cf_search="$cf_search /opt/lib/utf8"
+- test -d /opt/lib/utf8/lib && cf_search="$cf_search /opt/lib/utf8/lib"
+- test -d /opt/utf8/lib && cf_search="$cf_search /opt/utf8/lib"
+- test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/utf8 && cf_search="$cf_search $HOME/lib/utf8"
+- test -d $HOME/lib/utf8/lib && cf_search="$cf_search $HOME/lib/utf8/lib"
+- test -d $HOME/utf8/lib && cf_search="$cf_search $HOME/utf8/lib"
+- test -d $HOME/utf8/lib/utf8 && cf_search="$cf_search $HOME/utf8/lib/utf8"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/utf8 && cf_search="$cf_search $cf_subdir_prefix/lib/utf8"
++ test -d $cf_subdir_prefix/lib/utf8/lib && cf_search="$cf_search $cf_subdir_prefix/lib/utf8/lib"
++ test -d $cf_subdir_prefix/utf8/lib && cf_search="$cf_search $cf_subdir_prefix/utf8/lib"
++ test -d $cf_subdir_prefix/utf8/lib/utf8 && cf_search="$cf_search $cf_subdir_prefix/utf8/lib/utf8"
+ }
+
++done
++
+ cf_search="$cf_library_path_list $cf_search"
+
+ for cf_cv_library_path_utf8 in $cf_search
+@@ -8371,13 +9540,13 @@
+ if test -d $cf_cv_library_path_utf8 ; then
+ test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:8374: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:9543: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+
+ CPPFLAGS="$cf_test_CPPFLAGS"
+ LIBS="-lutf8 $cf_save_LIBS"
+ LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8380 "configure"
++#line 9549 "configure"
+ #include "confdefs.h"
+
+ #include <libutf8.h>
+@@ -8390,21 +9559,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8393: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9562: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8396: \$? = $ac_status" >&5
++ echo "$as_me:9565: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8399: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9568: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8402: \$? = $ac_status" >&5
++ echo "$as_me:9571: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
+
+-echo "${as_me:-configure}:8407: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
++echo "${as_me:-configure}:9576: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+
+ cf_cv_find_linkage_utf8=yes
+ cf_cv_library_file_utf8="-lutf8"
+@@ -8446,13 +9615,14 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8449: result: $cf_cv_utf8_lib" >&5
++echo "$as_me:9618: result: $cf_cv_utf8_lib" >&5
+ echo "${ECHO_T}$cf_cv_utf8_lib" >&6
+
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+ # ncurses/ncursesw:
+ if test "$cf_cv_utf8_lib" = "add-on" ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBUTF8_H 1
+ EOF
+
+@@ -8480,7 +9650,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8483 "configure"
++#line 9653 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -8492,16 +9662,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8495: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9665: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8498: \$? = $ac_status" >&5
++ echo "$as_me:9668: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8501: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9671: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8504: \$? = $ac_status" >&5
++ echo "$as_me:9674: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -8518,7 +9688,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:8521: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:9691: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -8552,7 +9722,7 @@
+ if test "$cf_have_libdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-echo "${as_me:-configure}:8555: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:9725: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+ fi
+@@ -8560,7 +9730,22 @@
+ done
+ fi
+
+- LIBS="$cf_cv_library_file_utf8 $LIBS"
++cf_add_libs="$cf_cv_library_file_utf8"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ fi
+
+ if test "$cf_cv_utf8_lib" != no ; then
+@@ -8569,14 +9754,14 @@
+ fi
+
+ # This is needed on Tru64 5.0 to declare mbstate_t
+-echo "$as_me:8572: checking if we must include wchar.h to declare mbstate_t" >&5
++echo "$as_me:9757: checking if we must include wchar.h to declare mbstate_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
+ if test "${cf_cv_mbstate_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8579 "configure"
++#line 9764 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8594,23 +9779,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8597: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9782: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8600: \$? = $ac_status" >&5
++ echo "$as_me:9785: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8603: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9788: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8606: \$? = $ac_status" >&5
++ echo "$as_me:9791: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_mbstate_t=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8613 "configure"
++#line 9798 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8629,16 +9814,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8632: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9817: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8635: \$? = $ac_status" >&5
++ echo "$as_me:9820: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8638: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9823: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8641: \$? = $ac_status" >&5
++ echo "$as_me:9826: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_mbstate_t=yes
+ else
+@@ -8650,11 +9835,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:8653: result: $cf_cv_mbstate_t" >&5
++echo "$as_me:9838: result: $cf_cv_mbstate_t" >&5
+ echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+
+ if test "$cf_cv_mbstate_t" = yes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NEED_WCHAR_H 1
+ EOF
+
+@@ -8667,14 +9853,14 @@
+ fi
+
+ # This is needed on Tru64 5.0 to declare wchar_t
+-echo "$as_me:8670: checking if we must include wchar.h to declare wchar_t" >&5
++echo "$as_me:9856: checking if we must include wchar.h to declare wchar_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
+ if test "${cf_cv_wchar_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8677 "configure"
++#line 9863 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8692,23 +9878,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8695: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9881: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8698: \$? = $ac_status" >&5
++ echo "$as_me:9884: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8701: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9887: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8704: \$? = $ac_status" >&5
++ echo "$as_me:9890: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_wchar_t=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8711 "configure"
++#line 9897 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8727,16 +9913,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8730: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9916: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8733: \$? = $ac_status" >&5
++ echo "$as_me:9919: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8736: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9922: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8739: \$? = $ac_status" >&5
++ echo "$as_me:9925: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_wchar_t=yes
+ else
+@@ -8748,11 +9934,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:8751: result: $cf_cv_wchar_t" >&5
++echo "$as_me:9937: result: $cf_cv_wchar_t" >&5
+ echo "${ECHO_T}$cf_cv_wchar_t" >&6
+
+ if test "$cf_cv_wchar_t" = yes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NEED_WCHAR_H 1
+ EOF
+
+@@ -8770,14 +9957,14 @@
+ fi
+
+ # This is needed on Tru64 5.0 to declare wint_t
+-echo "$as_me:8773: checking if we must include wchar.h to declare wint_t" >&5
++echo "$as_me:9960: checking if we must include wchar.h to declare wint_t" >&5
+ echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
+ if test "${cf_cv_wint_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8780 "configure"
++#line 9967 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8795,23 +9982,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8798: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:9985: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8801: \$? = $ac_status" >&5
++ echo "$as_me:9988: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8804: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9991: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8807: \$? = $ac_status" >&5
++ echo "$as_me:9994: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_wint_t=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8814 "configure"
++#line 10001 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -8830,16 +10017,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8833: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10020: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8836: \$? = $ac_status" >&5
++ echo "$as_me:10023: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8839: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10026: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8842: \$? = $ac_status" >&5
++ echo "$as_me:10029: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_wint_t=yes
+ else
+@@ -8851,11 +10038,12 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:8854: result: $cf_cv_wint_t" >&5
++echo "$as_me:10041: result: $cf_cv_wint_t" >&5
+ echo "${ECHO_T}$cf_cv_wint_t" >&6
+
+ if test "$cf_cv_wint_t" = yes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NEED_WCHAR_H 1
+ EOF
+
+@@ -8873,7 +10061,8 @@
+ fi
+
+ if test "$NCURSES_MBSTATE_T" != 0; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NEED_MBSTATE_T_DEF 1
+ EOF
+
+@@ -8890,7 +10079,7 @@
+ ;;
+ esac
+
+-echo "$as_me:8893: checking whether to enable _LP64 definition in curses.h" >&5
++echo "$as_me:10082: checking whether to enable _LP64 definition in curses.h" >&5
+ echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
+
+ # Check whether --enable-lp64 or --disable-lp64 was given.
+@@ -8900,10 +10089,10 @@
+ else
+ with_lp64=$default_with_lp64
+ fi;
+-echo "$as_me:8903: result: $with_lp64" >&5
++echo "$as_me:10092: result: $with_lp64" >&5
+ echo "${ECHO_T}$with_lp64" >&6
+
+-if test "$with_lp64" = yes ; then
++if test "x$with_lp64" = xyes ; then
+ cf_cv_enable_lp64=1
+ else
+ cf_cv_enable_lp64=0
+@@ -8916,7 +10105,7 @@
+ fi;
+ if test "$enable_largefile" != no; then
+
+- echo "$as_me:8919: checking for special C compiler options needed for large files" >&5
++ echo "$as_me:10108: checking for special C compiler options needed for large files" >&5
+ echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -8928,7 +10117,7 @@
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8931 "configure"
++#line 10120 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -8948,16 +10137,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8951: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10140: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8954: \$? = $ac_status" >&5
++ echo "$as_me:10143: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8957: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10146: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8960: \$? = $ac_status" >&5
++ echo "$as_me:10149: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -8967,16 +10156,16 @@
+ rm -f conftest.$ac_objext
+ CC="$CC -n32"
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8970: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10159: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:8973: \$? = $ac_status" >&5
++ echo "$as_me:10162: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8976: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10165: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8979: \$? = $ac_status" >&5
++ echo "$as_me:10168: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_largefile_CC=' -n32'; break
+ else
+@@ -8990,13 +10179,13 @@
+ rm -f conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:8993: result: $ac_cv_sys_largefile_CC" >&5
++echo "$as_me:10182: result: $ac_cv_sys_largefile_CC" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+- echo "$as_me:8999: checking for _FILE_OFFSET_BITS value needed for large files" >&5
++ echo "$as_me:10188: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9004,7 +10193,7 @@
+ while :; do
+ ac_cv_sys_file_offset_bits=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9007 "configure"
++#line 10196 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -9024,16 +10213,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9027: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10216: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9030: \$? = $ac_status" >&5
++ echo "$as_me:10219: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9033: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10222: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9036: \$? = $ac_status" >&5
++ echo "$as_me:10225: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -9042,7 +10231,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9045 "configure"
++#line 10234 "configure"
+ #include "confdefs.h"
+ #define _FILE_OFFSET_BITS 64
+ #include <sys/types.h>
+@@ -9063,16 +10252,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9066: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10255: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9069: \$? = $ac_status" >&5
++ echo "$as_me:10258: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9072: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10261: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9075: \$? = $ac_status" >&5
++ echo "$as_me:10264: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_file_offset_bits=64; break
+ else
+@@ -9083,7 +10272,7 @@
+ break
+ done
+ fi
+-echo "$as_me:9086: result: $ac_cv_sys_file_offset_bits" >&5
++echo "$as_me:10275: result: $ac_cv_sys_file_offset_bits" >&5
+ echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+ if test "$ac_cv_sys_file_offset_bits" != no; then
+
+@@ -9093,7 +10282,7 @@
+
+ fi
+ rm -rf conftest*
+- echo "$as_me:9096: checking for _LARGE_FILES value needed for large files" >&5
++ echo "$as_me:10285: checking for _LARGE_FILES value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_large_files+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9101,7 +10290,7 @@
+ while :; do
+ ac_cv_sys_large_files=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9104 "configure"
++#line 10293 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+@@ -9121,16 +10310,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9124: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10313: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9127: \$? = $ac_status" >&5
++ echo "$as_me:10316: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9130: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10319: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9133: \$? = $ac_status" >&5
++ echo "$as_me:10322: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -9139,7 +10328,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9142 "configure"
++#line 10331 "configure"
+ #include "confdefs.h"
+ #define _LARGE_FILES 1
+ #include <sys/types.h>
+@@ -9160,16 +10349,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9163: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10352: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9166: \$? = $ac_status" >&5
++ echo "$as_me:10355: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9169: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10358: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9172: \$? = $ac_status" >&5
++ echo "$as_me:10361: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_large_files=1; break
+ else
+@@ -9180,7 +10369,7 @@
+ break
+ done
+ fi
+-echo "$as_me:9183: result: $ac_cv_sys_large_files" >&5
++echo "$as_me:10372: result: $ac_cv_sys_large_files" >&5
+ echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+ if test "$ac_cv_sys_large_files" != no; then
+
+@@ -9193,7 +10382,7 @@
+ fi
+
+ if test "$enable_largefile" != no ; then
+- echo "$as_me:9196: checking for _LARGEFILE_SOURCE value needed for large files" >&5
++ echo "$as_me:10385: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+ echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
+ if test "${ac_cv_sys_largefile_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -9201,7 +10390,7 @@
+ while :; do
+ ac_cv_sys_largefile_source=no
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9204 "configure"
++#line 10393 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -9213,16 +10402,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9216: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10405: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9219: \$? = $ac_status" >&5
++ echo "$as_me:10408: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9222: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10411: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9225: \$? = $ac_status" >&5
++ echo "$as_me:10414: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -9231,7 +10420,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9234 "configure"
++#line 10423 "configure"
+ #include "confdefs.h"
+ #define _LARGEFILE_SOURCE 1
+ #include <stdio.h>
+@@ -9244,16 +10433,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9247: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10436: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9250: \$? = $ac_status" >&5
++ echo "$as_me:10439: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9253: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10442: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9256: \$? = $ac_status" >&5
++ echo "$as_me:10445: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_largefile_source=1; break
+ else
+@@ -9264,7 +10453,7 @@
+ break
+ done
+ fi
+-echo "$as_me:9267: result: $ac_cv_sys_largefile_source" >&5
++echo "$as_me:10456: result: $ac_cv_sys_largefile_source" >&5
+ echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
+ if test "$ac_cv_sys_largefile_source" != no; then
+
+@@ -9278,13 +10467,13 @@
+ # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+ # in glibc 2.1.3, but that breaks too many other things.
+ # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+-echo "$as_me:9281: checking for fseeko" >&5
++echo "$as_me:10470: checking for fseeko" >&5
+ echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
+ if test "${ac_cv_func_fseeko+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9287 "configure"
++#line 10476 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -9296,16 +10485,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9299: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10488: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9302: \$? = $ac_status" >&5
++ echo "$as_me:10491: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9305: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10494: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9308: \$? = $ac_status" >&5
++ echo "$as_me:10497: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_fseeko=yes
+ else
+@@ -9315,7 +10504,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9318: result: $ac_cv_func_fseeko" >&5
++echo "$as_me:10507: result: $ac_cv_func_fseeko" >&5
+ echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+ if test $ac_cv_func_fseeko = yes; then
+
+@@ -9336,14 +10525,14 @@
+ test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+ test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
+
+- echo "$as_me:9339: checking whether to use struct dirent64" >&5
++ echo "$as_me:10528: checking whether to use struct dirent64" >&5
+ echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
+ if test "${cf_cv_struct_dirent64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9346 "configure"
++#line 10535 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -9364,16 +10553,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:9367: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:10556: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:9370: \$? = $ac_status" >&5
++ echo "$as_me:10559: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:9373: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10562: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9376: \$? = $ac_status" >&5
++ echo "$as_me:10565: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_struct_dirent64=yes
+ else
+@@ -9384,16 +10573,17 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:9387: result: $cf_cv_struct_dirent64" >&5
++echo "$as_me:10576: result: $cf_cv_struct_dirent64" >&5
+ echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
+- test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
++ test "$cf_cv_struct_dirent64" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_STRUCT_DIRENT64 1
+ EOF
+
+ fi
+
+ ### use option --disable-tparm-varargs to make tparm() conform to X/Open
+-echo "$as_me:9396: checking if you want tparm not to use X/Open fixed-parameter list" >&5
++echo "$as_me:10586: checking if you want tparm not to use X/Open fixed-parameter list" >&5
+ echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
+
+ # Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
+@@ -9403,14 +10593,14 @@
+ else
+ with_tparm_varargs=yes
+ fi;
+-echo "$as_me:9406: result: $with_tparm_varargs" >&5
++echo "$as_me:10596: result: $with_tparm_varargs" >&5
+ echo "${ECHO_T}$with_tparm_varargs" >&6
+ NCURSES_TPARM_VARARGS=0
+-test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
++test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1
+
+ ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
+ if test "$with_ticlib" != no ; then
+-echo "$as_me:9413: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
++echo "$as_me:10603: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
+ echo $ECHO_N "checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library... $ECHO_C" >&6
+
+ # Check whether --enable-tic-depends or --disable-tic-depends was given.
+@@ -9420,14 +10610,14 @@
+ else
+ with_tic_depends=yes
+ fi;
+-echo "$as_me:9423: result: $with_tic_depends" >&5
++echo "$as_me:10613: result: $with_tic_depends" >&5
+ echo "${ECHO_T}$with_tic_depends" >&6
+ else
+ with_tic_depends=no
+ fi
+
+ ### use option --with-bool to override bool's type
+-echo "$as_me:9430: checking for type of bool" >&5
++echo "$as_me:10620: checking for type of bool" >&5
+ echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
+
+ # Check whether --with-bool or --without-bool was given.
+@@ -9437,10 +10627,10 @@
+ else
+ NCURSES_BOOL=auto
+ fi;
+-echo "$as_me:9440: result: $NCURSES_BOOL" >&5
++echo "$as_me:10630: result: $NCURSES_BOOL" >&5
+ echo "${ECHO_T}$NCURSES_BOOL" >&6
+
+-echo "$as_me:9443: checking for alternate terminal capabilities file" >&5
++echo "$as_me:10633: checking for alternate terminal capabilities file" >&5
+ echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
+
+ # Check whether --with-caps or --without-caps was given.
+@@ -9451,11 +10641,11 @@
+ TERMINFO_CAPS=Caps
+ fi;
+ test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
+-echo "$as_me:9454: result: $TERMINFO_CAPS" >&5
++echo "$as_me:10644: result: $TERMINFO_CAPS" >&5
+ echo "${ECHO_T}$TERMINFO_CAPS" >&6
+
+ ### use option --with-chtype to override chtype's type
+-echo "$as_me:9458: checking for type of chtype" >&5
++echo "$as_me:10648: checking for type of chtype" >&5
+ echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+
+ # Check whether --with-chtype or --without-chtype was given.
+@@ -9465,11 +10655,11 @@
+ else
+ NCURSES_CHTYPE=auto
+ fi;
+-echo "$as_me:9468: result: $NCURSES_CHTYPE" >&5
++echo "$as_me:10658: result: $NCURSES_CHTYPE" >&5
+ echo "${ECHO_T}$NCURSES_CHTYPE" >&6
+
+ ### use option --with-ospeed to override ospeed's type
+-echo "$as_me:9472: checking for type of ospeed" >&5
++echo "$as_me:10662: checking for type of ospeed" >&5
+ echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
+
+ # Check whether --with-ospeed or --without-ospeed was given.
+@@ -9479,11 +10669,11 @@
+ else
+ NCURSES_OSPEED=short
+ fi;
+-echo "$as_me:9482: result: $NCURSES_OSPEED" >&5
++echo "$as_me:10672: result: $NCURSES_OSPEED" >&5
+ echo "${ECHO_T}$NCURSES_OSPEED" >&6
+
+ ### use option --with-mmask-t to override mmask_t's type
+-echo "$as_me:9486: checking for type of mmask_t" >&5
++echo "$as_me:10676: checking for type of mmask_t" >&5
+ echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
+
+ # Check whether --with-mmask-t or --without-mmask-t was given.
+@@ -9493,11 +10683,11 @@
+ else
+ NCURSES_MMASK_T=auto
+ fi;
+-echo "$as_me:9496: result: $NCURSES_MMASK_T" >&5
++echo "$as_me:10686: result: $NCURSES_MMASK_T" >&5
+ echo "${ECHO_T}$NCURSES_MMASK_T" >&6
+
+ ### use option --with-ccharw-max to override CCHARW_MAX size
+-echo "$as_me:9500: checking for size CCHARW_MAX" >&5
++echo "$as_me:10690: checking for size CCHARW_MAX" >&5
+ echo $ECHO_N "checking for size CCHARW_MAX... $ECHO_C" >&6
+
+ # Check whether --with-ccharw-max or --without-ccharw-max was given.
+@@ -9507,11 +10697,25 @@
+ else
+ NCURSES_CCHARW_MAX=5
+ fi;
+-echo "$as_me:9510: result: $NCURSES_CCHARW_MAX" >&5
++echo "$as_me:10700: result: $NCURSES_CCHARW_MAX" >&5
+ echo "${ECHO_T}$NCURSES_CCHARW_MAX" >&6
+
++### use option --with-tparm-arg to override tparm's argument type
++echo "$as_me:10704: checking for type of tparm args" >&5
++echo $ECHO_N "checking for type of tparm args... $ECHO_C" >&6
++
++# Check whether --with-tparm-arg or --without-tparm-arg was given.
++if test "${with_tparm_arg+set}" = set; then
++ withval="$with_tparm_arg"
++ NCURSES_TPARM_ARG="$withval"
++else
++ NCURSES_TPARM_ARG=long
++fi;
++echo "$as_me:10714: result: $NCURSES_TPARM_ARG" >&5
++echo "${ECHO_T}$NCURSES_TPARM_ARG" >&6
++
+ ### Enable compiling-in rcs id's
+-echo "$as_me:9514: checking if RCS identifiers should be compiled-in" >&5
++echo "$as_me:10718: checking if RCS identifiers should be compiled-in" >&5
+ echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+
+ # Check whether --with-rcs-ids or --without-rcs-ids was given.
+@@ -9521,15 +10725,16 @@
+ else
+ with_rcs_ids=no
+ fi;
+-echo "$as_me:9524: result: $with_rcs_ids" >&5
++echo "$as_me:10728: result: $with_rcs_ids" >&5
+ echo "${ECHO_T}$with_rcs_ids" >&6
+-test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
++test "x$with_rcs_ids" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_RCS_IDS 1
+ EOF
+
+ ###############################################################################
+
+-echo "$as_me:9532: checking format of man-pages" >&5
++echo "$as_me:10737: checking format of man-pages" >&5
+ echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
+
+ # Check whether --with-manpage-format or --without-manpage-format was given.
+@@ -9618,14 +10823,14 @@
+ ;;
+ esac
+
+-echo "$as_me:9621: result: $MANPAGE_FORMAT" >&5
++echo "$as_me:10826: result: $MANPAGE_FORMAT" >&5
+ echo "${ECHO_T}$MANPAGE_FORMAT" >&6
+ if test -n "$cf_unknown" ; then
+- { echo "$as_me:9624: WARNING: Unexpected manpage-format $cf_unknown" >&5
++ { echo "$as_me:10829: WARNING: Unexpected manpage-format $cf_unknown" >&5
+ echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
+ fi
+
+-echo "$as_me:9628: checking for manpage renaming" >&5
++echo "$as_me:10833: checking for manpage renaming" >&5
+ echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
+
+ # Check whether --with-manpage-renames or --without-manpage-renames was given.
+@@ -9653,7 +10858,7 @@
+ if test -f $srcdir/man/$MANPAGE_RENAMES ; then
+ MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
+ elif test ! -f $MANPAGE_RENAMES ; then
+- { { echo "$as_me:9656: error: not a filename: $MANPAGE_RENAMES" >&5
++ { { echo "$as_me:10861: error: not a filename: $MANPAGE_RENAMES" >&5
+ echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -9667,10 +10872,10 @@
+ fi
+ fi
+
+-echo "$as_me:9670: result: $MANPAGE_RENAMES" >&5
++echo "$as_me:10875: result: $MANPAGE_RENAMES" >&5
+ echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+
+-echo "$as_me:9673: checking if manpage aliases will be installed" >&5
++echo "$as_me:10878: checking if manpage aliases will be installed" >&5
+ echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
+
+ # Check whether --with-manpage-aliases or --without-manpage-aliases was given.
+@@ -9681,7 +10886,7 @@
+ MANPAGE_ALIASES=yes
+ fi;
+
+-echo "$as_me:9684: result: $MANPAGE_ALIASES" >&5
++echo "$as_me:10889: result: $MANPAGE_ALIASES" >&5
+ echo "${ECHO_T}$MANPAGE_ALIASES" >&6
+
+ case "x$LN_S" in #(vi
+@@ -9695,7 +10900,7 @@
+
+ MANPAGE_SYMLINKS=no
+ if test "$MANPAGE_ALIASES" = yes ; then
+-echo "$as_me:9698: checking if manpage symlinks should be used" >&5
++echo "$as_me:10903: checking if manpage symlinks should be used" >&5
+ echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
+
+ # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
+@@ -9708,17 +10913,17 @@
+
+ if test "$$cf_use_symlinks" = no; then
+ if test "$MANPAGE_SYMLINKS" = yes ; then
+- { echo "$as_me:9711: WARNING: cannot make symlinks" >&5
++ { echo "$as_me:10916: WARNING: cannot make symlinks" >&5
+ echo "$as_me: WARNING: cannot make symlinks" >&2;}
+ MANPAGE_SYMLINKS=no
+ fi
+ fi
+
+-echo "$as_me:9717: result: $MANPAGE_SYMLINKS" >&5
++echo "$as_me:10922: result: $MANPAGE_SYMLINKS" >&5
+ echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
+ fi
+
+-echo "$as_me:9721: checking for manpage tbl" >&5
++echo "$as_me:10926: checking for manpage tbl" >&5
+ echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
+
+ # Check whether --with-manpage-tbl or --without-manpage-tbl was given.
+@@ -9729,7 +10934,7 @@
+ MANPAGE_TBL=no
+ fi;
+
+-echo "$as_me:9732: result: $MANPAGE_TBL" >&5
++echo "$as_me:10937: result: $MANPAGE_TBL" >&5
+ echo "${ECHO_T}$MANPAGE_TBL" >&6
+
+ if test "$prefix" = "NONE" ; then
+@@ -9776,6 +10981,7 @@
+ # this script is generated by the configure-script CF_MAN_PAGES macro.
+
+ prefix="$cf_prefix"
++datarootdir="$datarootdir"
+ datadir="$datadir"
+
+ NCURSES_MAJOR="$NCURSES_MAJOR"
+@@ -9836,11 +11042,12 @@
+ if test ! -f $cf_man_alias ; then
+ cat >>$cf_man_alias <<-CF_EOF2
+ s,@DATADIR@,\$datadir,g
+- s,@TERMINFO@,\$TERMINFO,g
+- s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
+- s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
+- s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
+- s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
++ s,@TERMINFO@,\${TERMINFO:="no default value"},g
++ s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
++ s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
++ s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
++ s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
++ s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
+ CF_EOF
+
+ for cf_name in captoinfo clear infocmp infotocap tabs tic toe tput tset
+@@ -9869,7 +11076,9 @@
+
+ if test "$MANPAGE_ALIASES" != no ; then
+ cat >>$cf_edit_man <<CF_EOF
+- aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
++ nCurses=ignore.3x
++ test $with_curses_h = yes && nCurses=ncurses.3x
++ aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u; test \$inalias = \$nCurses && echo curses\`
+ CF_EOF
+ fi
+
+@@ -9915,6 +11124,13 @@
+ fi
+ CF_EOF
+
++if test $with_overwrite != yes ; then
++cat >>$cf_edit_man <<CF_EOF
++ sed -e "/\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
++ mv \$TMP.out \$TMP
++CF_EOF
++fi
++
+ if test $with_curses_h != yes ; then
+ cat >>$cf_edit_man <<CF_EOF
+ sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
+@@ -10051,7 +11267,7 @@
+ ###############################################################################
+
+ ### Note that some functions (such as const) are normally disabled anyway.
+-echo "$as_me:10054: checking if you want to build with function extensions" >&5
++echo "$as_me:11270: checking if you want to build with function extensions" >&5
+ echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
+
+ # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
+@@ -10061,39 +11277,52 @@
+ else
+ with_ext_funcs=yes
+ fi;
+-echo "$as_me:10064: result: $with_ext_funcs" >&5
++echo "$as_me:11280: result: $with_ext_funcs" >&5
+ echo "${ECHO_T}$with_ext_funcs" >&6
+-if test "$with_ext_funcs" = yes ; then
++if test "x$with_ext_funcs" = xyes ; then
+ NCURSES_EXT_FUNCS=1
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
++#define HAVE_ASSUME_DEFAULT_COLORS 1
++EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_CURSES_VERSION 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_HAS_KEY 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_RESIZETERM 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_RESIZE_TERM 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_TERM_ENTRY_H 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_USE_DEFAULT_COLORS 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
++#define HAVE_USE_SCREEN 1
++EOF
++
++cat >>confdefs.h <<\EOF
++#define HAVE_USE_WINDOW 1
++EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_WRESIZE 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define NCURSES_EXT_FUNCS 1
+ EOF
+
+@@ -10103,7 +11332,7 @@
+ GENERATED_EXT_FUNCS=
+ fi
+
+-echo "$as_me:10106: checking if you want to build with experimental SCREEN extensions" >&5
++echo "$as_me:11335: checking if you want to build with experimental SCREEN extensions" >&5
+ echo $ECHO_N "checking if you want to build with experimental SCREEN extensions... $ECHO_C" >&6
+
+ # Check whether --enable-sp-funcs or --disable-sp-funcs was given.
+@@ -10113,11 +11342,12 @@
+ else
+ with_sp_funcs=no
+ fi;
+-echo "$as_me:10116: result: $with_sp_funcs" >&5
++echo "$as_me:11345: result: $with_sp_funcs" >&5
+ echo "${ECHO_T}$with_sp_funcs" >&6
+-if test "$with_sp_funcs" = yes ; then
++if test "x$with_sp_funcs" = xyes ; then
+ NCURSES_SP_FUNCS=1
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NCURSES_SP_FUNCS 1
+ EOF
+
+@@ -10127,7 +11357,7 @@
+ GENERATED_SP_FUNCS=
+ fi
+
+-echo "$as_me:10130: checking if you want to build with experimental terminal-driver" >&5
++echo "$as_me:11360: checking if you want to build with experimental terminal-driver" >&5
+ echo $ECHO_N "checking if you want to build with experimental terminal-driver... $ECHO_C" >&6
+
+ # Check whether --enable-term-driver or --disable-term-driver was given.
+@@ -10137,22 +11367,23 @@
+ else
+ with_term_driver=no
+ fi;
+-echo "$as_me:10140: result: $with_term_driver" >&5
++echo "$as_me:11370: result: $with_term_driver" >&5
+ echo "${ECHO_T}$with_term_driver" >&6
+-if test "$with_term_driver" = yes ; then
+- cat >>confdefs.h <<\EOF
++if test "x$with_term_driver" = xyes ; then
++
++cat >>confdefs.h <<\EOF
+ #define USE_TERM_DRIVER 1
+ EOF
+
+- if test "$with_sp_funcs" != yes ; then
+- { { echo "$as_me:10148: error: The term-driver option relies upon sp-funcs" >&5
++ if test "x$with_sp_funcs" != xyes ; then
++ { { echo "$as_me:11379: error: The term-driver option relies upon sp-funcs" >&5
+ echo "$as_me: error: The term-driver option relies upon sp-funcs" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ ### use option --enable-const to turn on use of const beyond that in XSI.
+-echo "$as_me:10155: checking for extended use of const keyword" >&5
++echo "$as_me:11386: checking for extended use of const keyword" >&5
+ echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+
+ # Check whether --enable-const or --disable-const was given.
+@@ -10162,15 +11393,15 @@
+ else
+ with_ext_const=no
+ fi;
+-echo "$as_me:10165: result: $with_ext_const" >&5
++echo "$as_me:11396: result: $with_ext_const" >&5
+ echo "${ECHO_T}$with_ext_const" >&6
+ NCURSES_CONST='/*nothing*/'
+-if test "$with_ext_const" = yes ; then
++if test "x$with_ext_const" = xyes ; then
+ NCURSES_CONST=const
+ fi
+
+ ### use option --enable-ext-colors to turn on use of colors beyond 16.
+-echo "$as_me:10173: checking if you want to use extended colors" >&5
++echo "$as_me:11404: checking if you want to use extended colors" >&5
+ echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6
+
+ # Check whether --enable-ext-colors or --disable-ext-colors was given.
+@@ -10180,12 +11411,12 @@
+ else
+ with_ext_colors=no
+ fi;
+-echo "$as_me:10183: result: $with_ext_colors" >&5
++echo "$as_me:11414: result: $with_ext_colors" >&5
+ echo "${ECHO_T}$with_ext_colors" >&6
+ NCURSES_EXT_COLORS=0
+-if test "$with_ext_colors" = yes ; then
+- if test "$with_widec" != yes ; then
+- { { echo "$as_me:10188: error: This option applies only to wide-character library" >&5
++if test "x$with_ext_colors" = xyes ; then
++ if test "x$with_widec" != xyes ; then
++ { { echo "$as_me:11419: error: This option applies only to wide-character library" >&5
+ echo "$as_me: error: This option applies only to wide-character library" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+@@ -10196,7 +11427,7 @@
+ 5.*)
+ cf_cv_rel_version=6.0
+ cf_cv_abi_version=6
+- { echo "$as_me:10199: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++ { echo "$as_me:11430: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ ;;
+ esac
+@@ -10204,14 +11435,15 @@
+
+ fi
+ NCURSES_EXT_COLORS=1
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NCURSES_EXT_COLORS 1
+ EOF
+
+ fi
+
+ ### use option --enable-ext-mouse to modify coding to support 5-button mice
+-echo "$as_me:10214: checking if you want to use extended mouse encoding" >&5
++echo "$as_me:11446: checking if you want to use extended mouse encoding" >&5
+ echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6
+
+ # Check whether --enable-ext-mouse or --disable-ext-mouse was given.
+@@ -10221,10 +11453,10 @@
+ else
+ with_ext_mouse=no
+ fi;
+-echo "$as_me:10224: result: $with_ext_mouse" >&5
++echo "$as_me:11456: result: $with_ext_mouse" >&5
+ echo "${ECHO_T}$with_ext_mouse" >&6
+ NCURSES_MOUSE_VERSION=1
+-if test "$with_ext_mouse" = yes ; then
++if test "x$with_ext_mouse" = xyes ; then
+ NCURSES_MOUSE_VERSION=2
+
+ if test "${with_abi_version+set}" != set; then
+@@ -10232,7 +11464,7 @@
+ 5.*)
+ cf_cv_rel_version=6.0
+ cf_cv_abi_version=6
+- { echo "$as_me:10235: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++ { echo "$as_me:11467: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ ;;
+ esac
+@@ -10240,7 +11472,7 @@
+
+ fi
+
+-echo "$as_me:10243: checking if you want \$NCURSES_NO_PADDING code" >&5
++echo "$as_me:11475: checking if you want \$NCURSES_NO_PADDING code" >&5
+ echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
+
+ # Check whether --enable-no-padding or --disable-no-padding was given.
+@@ -10250,19 +11482,20 @@
+ else
+ with_no_padding=$with_ext_funcs
+ fi;
+-echo "$as_me:10253: result: $with_no_padding" >&5
++echo "$as_me:11485: result: $with_no_padding" >&5
+ echo "${ECHO_T}$with_no_padding" >&6
+-test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
++test "x$with_no_padding" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define NCURSES_NO_PADDING 1
+ EOF
+
+-echo "$as_me:10259: checking for ANSI C header files" >&5
++echo "$as_me:11492: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10265 "configure"
++#line 11498 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -10270,13 +11503,13 @@
+ #include <float.h>
+
+ _ACEOF
+-if { (eval echo "$as_me:10273: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:11506: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:10279: \$? = $ac_status" >&5
++ echo "$as_me:11512: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -10298,7 +11531,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10301 "configure"
++#line 11534 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+
+@@ -10316,7 +11549,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10319 "configure"
++#line 11552 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+
+@@ -10337,7 +11570,7 @@
+ :
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10340 "configure"
++#line 11573 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -10363,15 +11596,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10366: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11599: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10369: \$? = $ac_status" >&5
++ echo "$as_me:11602: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:10371: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11604: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10374: \$? = $ac_status" >&5
++ echo "$as_me:11607: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -10384,7 +11617,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:10387: result: $ac_cv_header_stdc" >&5
++echo "$as_me:11620: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+
+@@ -10400,28 +11633,28 @@
+ inttypes.h stdint.h unistd.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:10403: checking for $ac_header" >&5
++echo "$as_me:11636: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10409 "configure"
++#line 11642 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10415: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11648: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10418: \$? = $ac_status" >&5
++ echo "$as_me:11651: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10421: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11654: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10424: \$? = $ac_status" >&5
++ echo "$as_me:11657: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+ else
+@@ -10431,7 +11664,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10434: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:11667: 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
+@@ -10441,13 +11674,13 @@
+ fi
+ done
+
+-echo "$as_me:10444: checking for signed char" >&5
++echo "$as_me:11677: checking for signed char" >&5
+ echo $ECHO_N "checking for signed char... $ECHO_C" >&6
+ if test "${ac_cv_type_signed_char+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10450 "configure"
++#line 11683 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10462,16 +11695,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10465: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11698: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10468: \$? = $ac_status" >&5
++ echo "$as_me:11701: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10471: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11704: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10474: \$? = $ac_status" >&5
++ echo "$as_me:11707: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_signed_char=yes
+ else
+@@ -10481,10 +11714,10 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:10484: result: $ac_cv_type_signed_char" >&5
++echo "$as_me:11717: result: $ac_cv_type_signed_char" >&5
+ echo "${ECHO_T}$ac_cv_type_signed_char" >&6
+
+-echo "$as_me:10487: checking size of signed char" >&5
++echo "$as_me:11720: checking size of signed char" >&5
+ echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
+ if test "${ac_cv_sizeof_signed_char+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -10493,7 +11726,7 @@
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10496 "configure"
++#line 11729 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10505,21 +11738,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10508: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11741: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10511: \$? = $ac_status" >&5
++ echo "$as_me:11744: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10514: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11747: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10517: \$? = $ac_status" >&5
++ echo "$as_me:11750: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10522 "configure"
++#line 11755 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10531,16 +11764,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10534: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11767: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10537: \$? = $ac_status" >&5
++ echo "$as_me:11770: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10540: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11773: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10543: \$? = $ac_status" >&5
++ echo "$as_me:11776: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid; break
+ else
+@@ -10556,7 +11789,7 @@
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10559 "configure"
++#line 11792 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10568,16 +11801,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10571: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11804: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10574: \$? = $ac_status" >&5
++ echo "$as_me:11807: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10577: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11810: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10580: \$? = $ac_status" >&5
++ echo "$as_me:11813: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_lo=$ac_mid; break
+ else
+@@ -10593,7 +11826,7 @@
+ while test "x$ac_lo" != "x$ac_hi"; do
+ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10596 "configure"
++#line 11829 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10605,16 +11838,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:10608: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:11841: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:10611: \$? = $ac_status" >&5
++ echo "$as_me:11844: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:10614: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11847: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10617: \$? = $ac_status" >&5
++ echo "$as_me:11850: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_hi=$ac_mid
+ else
+@@ -10627,12 +11860,12 @@
+ ac_cv_sizeof_signed_char=$ac_lo
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:10630: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:11863: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10635 "configure"
++#line 11868 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -10648,15 +11881,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:10651: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11884: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10654: \$? = $ac_status" >&5
++ echo "$as_me:11887: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:10656: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11889: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10659: \$? = $ac_status" >&5
++ echo "$as_me:11892: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sizeof_signed_char=`cat conftest.val`
+ else
+@@ -10672,7 +11905,7 @@
+ ac_cv_sizeof_signed_char=0
+ fi
+ fi
+-echo "$as_me:10675: result: $ac_cv_sizeof_signed_char" >&5
++echo "$as_me:11908: result: $ac_cv_sizeof_signed_char" >&5
+ echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
+ cat >>confdefs.h <<EOF
+ #define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
+@@ -10683,7 +11916,7 @@
+ else
+ NCURSES_SBOOL="char"
+ fi
+-echo "$as_me:10686: checking if you want to use signed Boolean array in term.h" >&5
++echo "$as_me:11919: checking if you want to use signed Boolean array in term.h" >&5
+ echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
+
+ # Check whether --enable-signed-char or --disable-signed-char was given.
+@@ -10693,12 +11926,12 @@
+ else
+ with_signed_char=no
+ fi;
+-echo "$as_me:10696: result: $with_signed_char" >&5
++echo "$as_me:11929: result: $with_signed_char" >&5
+ echo "${ECHO_T}$with_signed_char" >&6
+-test "$with_signed_char" != yes && NCURSES_SBOOL="char"
++test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
+
+ ### use option --enable-sigwinch to turn on use of SIGWINCH logic
+-echo "$as_me:10701: checking if you want SIGWINCH handler" >&5
++echo "$as_me:11934: checking if you want SIGWINCH handler" >&5
+ echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
+
+ # Check whether --enable-sigwinch or --disable-sigwinch was given.
+@@ -10708,14 +11941,15 @@
+ else
+ with_sigwinch=$with_ext_funcs
+ fi;
+-echo "$as_me:10711: result: $with_sigwinch" >&5
++echo "$as_me:11944: result: $with_sigwinch" >&5
+ echo "${ECHO_T}$with_sigwinch" >&6
+-test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
++test "x$with_sigwinch" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_SIGWINCH 1
+ EOF
+
+ ### use option --enable-tcap-names to allow user to define new capabilities
+-echo "$as_me:10718: checking if you want user-definable terminal capabilities like termcap" >&5
++echo "$as_me:11952: checking if you want user-definable terminal capabilities like termcap" >&5
+ echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
+
+ # Check whether --enable-tcap-names or --disable-tcap-names was given.
+@@ -10725,15 +11959,15 @@
+ else
+ with_tcap_names=$with_ext_funcs
+ fi;
+-echo "$as_me:10728: result: $with_tcap_names" >&5
++echo "$as_me:11962: result: $with_tcap_names" >&5
+ echo "${ECHO_T}$with_tcap_names" >&6
+ NCURSES_XNAMES=0
+-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
++test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
+
+ ###############################################################################
+ # These options are relatively safe to experiment with.
+
+-echo "$as_me:10736: checking if you want all development code" >&5
++echo "$as_me:11970: checking if you want all development code" >&5
+ echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
+
+ # Check whether --with-develop or --without-develop was given.
+@@ -10743,11 +11977,11 @@
+ else
+ with_develop=no
+ fi;
+-echo "$as_me:10746: result: $with_develop" >&5
++echo "$as_me:11980: result: $with_develop" >&5
+ echo "${ECHO_T}$with_develop" >&6
+
+ ### use option --enable-hard-tabs to turn on use of hard-tabs optimize
+-echo "$as_me:10750: checking if you want hard-tabs code" >&5
++echo "$as_me:11984: checking if you want hard-tabs code" >&5
+ echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
+
+ # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
+@@ -10757,14 +11991,15 @@
+ else
+ enable_hard_tabs=$with_develop
+ fi;
+-echo "$as_me:10760: result: $enable_hard_tabs" >&5
++echo "$as_me:11994: result: $enable_hard_tabs" >&5
+ echo "${ECHO_T}$enable_hard_tabs" >&6
+-test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
++test "x$enable_hard_tabs" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_HARD_TABS 1
+ EOF
+
+ ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+-echo "$as_me:10767: checking if you want limited support for xmc" >&5
++echo "$as_me:12002: checking if you want limited support for xmc" >&5
+ echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
+
+ # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
+@@ -10774,16 +12009,17 @@
+ else
+ enable_xmc_glitch=$with_develop
+ fi;
+-echo "$as_me:10777: result: $enable_xmc_glitch" >&5
++echo "$as_me:12012: result: $enable_xmc_glitch" >&5
+ echo "${ECHO_T}$enable_xmc_glitch" >&6
+-test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
++test "x$enable_xmc_glitch" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_XMC_SUPPORT 1
+ EOF
+
+ ###############################################################################
+ # These are just experimental, probably should not be in a package:
+
+-echo "$as_me:10786: checking if you do not want to assume colors are white-on-black" >&5
++echo "$as_me:12022: checking if you do not want to assume colors are white-on-black" >&5
+ echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
+
+ # Check whether --enable-assumed-color or --disable-assumed-color was given.
+@@ -10793,14 +12029,15 @@
+ else
+ with_assumed_color=yes
+ fi;
+-echo "$as_me:10796: result: $with_assumed_color" >&5
++echo "$as_me:12032: result: $with_assumed_color" >&5
+ echo "${ECHO_T}$with_assumed_color" >&6
+-test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
++test "x$with_assumed_color" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_ASSUMED_COLOR 1
+ EOF
+
+ ### use option --enable-hashmap to turn on use of hashmap scrolling logic
+-echo "$as_me:10803: checking if you want hashmap scrolling-optimization code" >&5
++echo "$as_me:12040: checking if you want hashmap scrolling-optimization code" >&5
+ echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
+
+ # Check whether --enable-hashmap or --disable-hashmap was given.
+@@ -10810,14 +12047,15 @@
+ else
+ with_hashmap=yes
+ fi;
+-echo "$as_me:10813: result: $with_hashmap" >&5
++echo "$as_me:12050: result: $with_hashmap" >&5
+ echo "${ECHO_T}$with_hashmap" >&6
+-test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
++test "x$with_hashmap" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_HASHMAP 1
+ EOF
+
+ ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+-echo "$as_me:10820: checking if you want colorfgbg code" >&5
++echo "$as_me:12058: checking if you want colorfgbg code" >&5
+ echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
+
+ # Check whether --enable-colorfgbg or --disable-colorfgbg was given.
+@@ -10827,14 +12065,15 @@
+ else
+ with_colorfgbg=no
+ fi;
+-echo "$as_me:10830: result: $with_colorfgbg" >&5
++echo "$as_me:12068: result: $with_colorfgbg" >&5
+ echo "${ECHO_T}$with_colorfgbg" >&6
+-test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
++test "x$with_colorfgbg" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_COLORFGBG 1
+ EOF
+
+ ### use option --enable-interop to turn on use of bindings used for interop
+-echo "$as_me:10837: checking if you want interop bindings" >&5
++echo "$as_me:12076: checking if you want interop bindings" >&5
+ echo $ECHO_N "checking if you want interop bindings... $ECHO_C" >&6
+
+ # Check whether --enable-interop or --disable-interop was given.
+@@ -10844,16 +12083,16 @@
+ else
+ with_exp_interop=no
+ fi;
+-echo "$as_me:10847: result: $with_exp_interop" >&5
++echo "$as_me:12086: result: $with_exp_interop" >&5
+ echo "${ECHO_T}$with_exp_interop" >&6
+
+ NCURSES_INTEROP_FUNCS=0
+-test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1
++test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1
+
+ # This is still experimental (20080329), but should ultimately be moved to
+ # the script-block --with-normal, etc.
+
+-echo "$as_me:10856: checking if you want to link with the pthread library" >&5
++echo "$as_me:12095: checking if you want to link with the pthread library" >&5
+ echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
+
+ # Check whether --with-pthread or --without-pthread was given.
+@@ -10863,27 +12102,27 @@
+ else
+ with_pthread=no
+ fi;
+-echo "$as_me:10866: result: $with_pthread" >&5
++echo "$as_me:12105: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
+
+ if test "$with_pthread" != no ; then
+- echo "$as_me:10870: checking for pthread.h" >&5
++ echo "$as_me:12109: checking for pthread.h" >&5
+ echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
+ if test "${ac_cv_header_pthread_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10876 "configure"
++#line 12115 "configure"
+ #include "confdefs.h"
+ #include <pthread.h>
+ _ACEOF
+-if { (eval echo "$as_me:10880: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:12119: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:10886: \$? = $ac_status" >&5
++ echo "$as_me:12125: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -10902,20 +12141,38 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:10905: result: $ac_cv_header_pthread_h" >&5
++echo "$as_me:12144: result: $ac_cv_header_pthread_h" >&5
+ echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
+ if test $ac_cv_header_pthread_h = yes; then
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_PTHREADS_H 1
+ EOF
+
+- echo "$as_me:10913: checking if we can link with the pthread library" >&5
+-echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
+- cf_save_LIBS="$LIBS"
+- LIBS="-lpthread $LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 10918 "configure"
++ for cf_lib_pthread in pthread c_r
++ do
++ echo "$as_me:12154: checking if we can link with the $cf_lib_pthread library" >&5
++echo $ECHO_N "checking if we can link with the $cf_lib_pthread library... $ECHO_C" >&6
++ cf_save_LIBS="$LIBS"
++
++cf_add_libs="-l$cf_lib_pthread"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 12175 "configure"
+ #include "confdefs.h"
+
+ #include <pthread.h>
+@@ -10924,23 +12181,24 @@
+ main ()
+ {
+
+- int rc = pthread_create(0,0,0,0);
++ int rc = pthread_create(0,0,0,0);
++ int r2 = pthread_mutexattr_settype(0, 0);
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10934: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12192: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10937: \$? = $ac_status" >&5
++ echo "$as_me:12195: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10940: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12198: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10943: \$? = $ac_status" >&5
++ echo "$as_me:12201: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ with_pthread=yes
+ else
+@@ -10949,34 +12207,52 @@
+ with_pthread=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- LIBS="$cf_save_LIBS"
+- echo "$as_me:10953: result: $with_pthread" >&5
++ LIBS="$cf_save_LIBS"
++ echo "$as_me:12211: result: $with_pthread" >&5
+ echo "${ECHO_T}$with_pthread" >&6
++ test "$with_pthread" = yes && break
++ done
++
++ if test "$with_pthread" = yes ; then
++
++cf_add_libs="-l$cf_lib_pthread"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- if test "$with_pthread" = yes ; then
+- LIBS="-lpthread $LIBS"
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define HAVE_LIBPTHREADS 1
+ EOF
+
+- else
+- { { echo "$as_me:10963: error: Cannot link with pthread library" >&5
++ else
++ { { echo "$as_me:12239: error: Cannot link with pthread library" >&5
+ echo "$as_me: error: Cannot link with pthread library" >&2;}
+ { (exit 1); exit 1; }; }
+- fi
++ fi
+
+ fi
+
+ fi
+
+ if test "x$with_pthread" != xno; then
+- echo "$as_me:10973: checking for pthread_kill" >&5
++ echo "$as_me:12249: checking for pthread_kill" >&5
+ echo $ECHO_N "checking for pthread_kill... $ECHO_C" >&6
+ if test "${ac_cv_func_pthread_kill+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10979 "configure"
++#line 12255 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char pthread_kill (); below. */
+@@ -10999,7 +12275,7 @@
+ #if defined (__stub_pthread_kill) || defined (__stub___pthread_kill)
+ choke me
+ #else
+-f = pthread_kill;
++f = pthread_kill; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -11007,16 +12283,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11010: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12286: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11013: \$? = $ac_status" >&5
++ echo "$as_me:12289: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11016: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12292: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11019: \$? = $ac_status" >&5
++ echo "$as_me:12295: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_pthread_kill=yes
+ else
+@@ -11026,11 +12302,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:11029: result: $ac_cv_func_pthread_kill" >&5
++echo "$as_me:12305: result: $ac_cv_func_pthread_kill" >&5
+ echo "${ECHO_T}$ac_cv_func_pthread_kill" >&6
+ if test $ac_cv_func_pthread_kill = yes; then
+
+- echo "$as_me:11033: checking if you want to allow EINTR in wgetch with pthreads" >&5
++ echo "$as_me:12309: checking if you want to allow EINTR in wgetch with pthreads" >&5
+ echo $ECHO_N "checking if you want to allow EINTR in wgetch with pthreads... $ECHO_C" >&6
+
+ # Check whether --enable-pthreads-eintr or --disable-pthreads-eintr was given.
+@@ -11040,17 +12316,18 @@
+ else
+ use_pthreads_eintr=no
+ fi;
+- echo "$as_me:11043: result: $use_pthreads_eintr" >&5
++ echo "$as_me:12319: result: $use_pthreads_eintr" >&5
+ echo "${ECHO_T}$use_pthreads_eintr" >&6
+- if test $use_pthreads_eintr = yes ; then
+- cat >>confdefs.h <<\EOF
++ if test "x$use_pthreads_eintr" = xyes ; then
++
++cat >>confdefs.h <<\EOF
+ #define USE_PTHREADS_EINTR 1
+ EOF
+
+ fi
+ fi
+
+- echo "$as_me:11053: checking if you want to use weak-symbols for pthreads" >&5
++ echo "$as_me:12330: checking if you want to use weak-symbols for pthreads" >&5
+ echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
+
+ # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
+@@ -11060,18 +12337,18 @@
+ else
+ use_weak_symbols=no
+ fi;
+- echo "$as_me:11063: result: $use_weak_symbols" >&5
++ echo "$as_me:12340: result: $use_weak_symbols" >&5
+ echo "${ECHO_T}$use_weak_symbols" >&6
+- if test "$use_weak_symbols" = yes ; then
++ if test "x$use_weak_symbols" = xyes ; then
+
+-echo "$as_me:11067: checking if $CC supports weak symbols" >&5
++echo "$as_me:12344: checking if $CC supports weak symbols" >&5
+ echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
+ if test "${cf_cv_weak_symbols+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11074 "configure"
++#line 12351 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -11097,16 +12374,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11100: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12377: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11103: \$? = $ac_status" >&5
++ echo "$as_me:12380: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:11106: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12383: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11109: \$? = $ac_status" >&5
++ echo "$as_me:12386: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_weak_symbols=yes
+ else
+@@ -11117,15 +12394,16 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:11120: result: $cf_cv_weak_symbols" >&5
++echo "$as_me:12397: result: $cf_cv_weak_symbols" >&5
+ echo "${ECHO_T}$cf_cv_weak_symbols" >&6
+
+ else
+ cf_cv_weak_symbols=no
+ fi
+
+- if test $cf_cv_weak_symbols = yes ; then
+- cat >>confdefs.h <<\EOF
++ if test "x$cf_cv_weak_symbols" = xyes ; then
++
++cat >>confdefs.h <<\EOF
+ #define USE_WEAK_SYMBOLS 1
+ EOF
+
+@@ -11133,13 +12411,14 @@
+ fi
+
+ PTHREAD=
+-if test "$with_pthread" = "yes" ; then
+- cat >>confdefs.h <<\EOF
++if test "x$with_pthread" = "xyes" ; then
++
++cat >>confdefs.h <<\EOF
+ #define USE_PTHREADS 1
+ EOF
+
+ enable_reentrant=yes
+- if test $cf_cv_weak_symbols = yes ; then
++ if test "x$cf_cv_weak_symbols" = xyes ; then
+ PTHREAD=-lpthread
+ fi
+ fi
+@@ -11148,7 +12427,7 @@
+ # opaque outside of that, so there is no --enable-opaque option. We can use
+ # this option without --with-pthreads, but this will be always set for
+ # pthreads.
+-echo "$as_me:11151: checking if you want experimental reentrant code" >&5
++echo "$as_me:12430: checking if you want experimental reentrant code" >&5
+ echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
+
+ # Check whether --enable-reentrant or --disable-reentrant was given.
+@@ -11158,24 +12437,71 @@
+ else
+ with_reentrant=no
+ fi;
+-echo "$as_me:11161: result: $with_reentrant" >&5
++echo "$as_me:12440: result: $with_reentrant" >&5
+ echo "${ECHO_T}$with_reentrant" >&6
+-if test "$with_reentrant" = yes ; then
++if test "x$with_reentrant" = xyes ; then
+ cf_cv_enable_reentrant=1
+ cf_cv_enable_opaque="NCURSES_INTERNALS"
+ NCURSES_OPAQUE=1
+ NCURSES_SIZE_T=int
+- if test $cf_cv_weak_symbols = yes ; then
++ if test "x$cf_cv_weak_symbols" = xyes ; then
+
+ # remove pthread library from $LIBS
+ LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ ]//g' -e 's/-lpthread$//'`
+
+- TEST_LIBS="-lpthread $TEST_LIBS"
+- TEST_LIBS2="-lpthread $TEST_LIBS2"
++cf_add_libs="-lpthread"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $TEST_LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++TEST_LIBS="$cf_add_libs"
++
++cf_add_libs="-lpthread"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $TEST_LIBS2
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++TEST_LIBS2="$cf_add_libs"
++
+ else
+- LIB_SUFFIX="t${LIB_SUFFIX}"
++ # when not using weak symbols but with_reentrant,
++ # add 't' to the library suffix on all platforms
++ # except cygwin, where we only do that if ALSO
++ # compiling with full thread support.
++ case "$host" in
++ *cygwin* | *msys*) #(vi
++ if test "$with_pthread" = "yes" ; then
++ if test "x$disable_lib_suffixes" = "xno" ; then
++ LIB_SUFFIX="t${LIB_SUFFIX}"
++ fi
++ fi ;;
++ *)
++ if test "x$disable_lib_suffixes" = "xno" ; then
++ LIB_SUFFIX="t${LIB_SUFFIX}"
++ fi
++ ;;
++ esac
+ fi
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define USE_REENTRANT 1
+ EOF
+
+@@ -11184,7 +12510,7 @@
+ 5.*)
+ cf_cv_rel_version=6.0
+ cf_cv_abi_version=6
+- { echo "$as_me:11187: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
++ { echo "$as_me:12513: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+ echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ ;;
+ esac
+@@ -11199,7 +12525,7 @@
+
+ ### Allow using a different wrap-prefix
+ if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+- echo "$as_me:11202: checking for prefix used to wrap public variables" >&5
++ echo "$as_me:12528: checking for prefix used to wrap public variables" >&5
+ echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
+
+ # Check whether --with-wrap-prefix or --without-wrap-prefix was given.
+@@ -11209,7 +12535,7 @@
+ else
+ NCURSES_WRAP_PREFIX=_nc_
+ fi;
+- echo "$as_me:11212: result: $NCURSES_WRAP_PREFIX" >&5
++ echo "$as_me:12538: result: $NCURSES_WRAP_PREFIX" >&5
+ echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+ else
+ NCURSES_WRAP_PREFIX=_nc_
+@@ -11219,7 +12545,7 @@
+ #define NCURSES_WRAP_PREFIX "$NCURSES_WRAP_PREFIX"
+ EOF
+
+-echo "$as_me:11222: checking if you want experimental safe-sprintf code" >&5
++echo "$as_me:12548: checking if you want experimental safe-sprintf code" >&5
+ echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
+
+ # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
+@@ -11229,16 +12555,17 @@
+ else
+ with_safe_sprintf=no
+ fi;
+-echo "$as_me:11232: result: $with_safe_sprintf" >&5
++echo "$as_me:12558: result: $with_safe_sprintf" >&5
+ echo "${ECHO_T}$with_safe_sprintf" >&6
+-test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
++test "x$with_safe_sprintf" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_SAFE_SPRINTF 1
+ EOF
+
+ ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
+ # when hashmap is used scroll hints are useless
+ if test "$with_hashmap" = no ; then
+-echo "$as_me:11241: checking if you want to experiment without scrolling-hints code" >&5
++echo "$as_me:12568: checking if you want to experiment without scrolling-hints code" >&5
+ echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
+
+ # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
+@@ -11248,15 +12575,16 @@
+ else
+ with_scroll_hints=yes
+ fi;
+-echo "$as_me:11251: result: $with_scroll_hints" >&5
++echo "$as_me:12578: result: $with_scroll_hints" >&5
+ echo "${ECHO_T}$with_scroll_hints" >&6
+-test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
++test "x$with_scroll_hints" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define USE_SCROLL_HINTS 1
+ EOF
+
+ fi
+
+-echo "$as_me:11259: checking if you want experimental wgetch-events code" >&5
++echo "$as_me:12587: checking if you want experimental wgetch-events code" >&5
+ echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
+
+ # Check whether --enable-wgetch-events or --disable-wgetch-events was given.
+@@ -11266,37 +12594,64 @@
+ else
+ with_wgetch_events=no
+ fi;
+-echo "$as_me:11269: result: $with_wgetch_events" >&5
++echo "$as_me:12597: result: $with_wgetch_events" >&5
+ echo "${ECHO_T}$with_wgetch_events" >&6
+-test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
++test "x$with_wgetch_events" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define NCURSES_WGETCH_EVENTS 1
+ EOF
+
+ ###############################################################################
+
+ ### use option --disable-echo to suppress full display compiling commands
+-echo "$as_me:11278: checking if you want to display full commands during build" >&5
+-echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
++
++echo "$as_me:12608: checking if you want to see long compiling messages" >&5
++echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
+
+ # Check whether --enable-echo or --disable-echo was given.
+ if test "${enable_echo+set}" = set; then
+ enableval="$enable_echo"
+- with_echo=$enableval
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++
++ ECHO_LT='--silent'
++ ECHO_LD='@echo linking $@;'
++ RULE_CC='@echo compiling $<'
++ SHOW_CC='@echo compiling $@'
++ ECHO_CC='@'
++
++ else
++
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
++
++ fi
+ else
+- with_echo=yes
++ enableval=yes
++
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
++
+ fi;
+-if test "$with_echo" = yes; then
++echo "$as_me:12642: result: $enableval" >&5
++echo "${ECHO_T}$enableval" >&6
++
++if test "x$enable_echo" = xyes; then
+ ECHO_LINK=
+ else
+ ECHO_LINK='@ echo linking $@ ... ;'
+ test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+ test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
+ fi
+-echo "$as_me:11295: result: $with_echo" >&5
+-echo "${ECHO_T}$with_echo" >&6
+
+ ### use option --enable-warnings to turn on all gcc warnings
+-echo "$as_me:11299: checking if you want to see compiler warnings" >&5
++echo "$as_me:12654: checking if you want to see compiler warnings" >&5
+ echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
+
+ # Check whether --enable-warnings or --disable-warnings was given.
+@@ -11304,7 +12659,7 @@
+ enableval="$enable_warnings"
+ with_warnings=$enableval
+ fi;
+-echo "$as_me:11307: result: $with_warnings" >&5
++echo "$as_me:12662: result: $with_warnings" >&5
+ echo "${ECHO_T}$with_warnings" >&6
+
+ if test "x$with_warnings" = "xyes"; then
+@@ -11316,12 +12671,12 @@
+ if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+- echo "$as_me:11319: checking if this is really Intel C compiler" >&5
++ echo "$as_me:12674: checking if this is really Intel C compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -no-gcc"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11324 "configure"
++#line 12679 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -11338,19 +12693,19 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11341: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12696: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11344: \$? = $ac_status" >&5
++ echo "$as_me:12699: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:11347: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12702: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11350: \$? = $ac_status" >&5
++ echo "$as_me:12705: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ INTEL_COMPILER=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
+
+ else
+ echo "$as_me: failed program was:" >&5
+@@ -11358,14 +12713,63 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$cf_save_CFLAGS"
+- echo "$as_me:11361: result: $INTEL_COMPILER" >&5
++ echo "$as_me:12716: result: $INTEL_COMPILER" >&5
+ echo "${ECHO_T}$INTEL_COMPILER" >&6
+ ;;
+ esac
+ fi
+
++CLANG_COMPILER=no
++
++if test "$GCC" = yes ; then
++ echo "$as_me:12725: checking if this is really Clang C compiler" >&5
++echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
++ cf_save_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -Qunused-arguments"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 12730 "configure"
++#include "confdefs.h"
++
++int
++main ()
++{
++
++#ifdef __clang__
++#else
++make an error
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:12747: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:12750: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:12753: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:12756: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ CLANG_COMPILER=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ echo "$as_me:12767: result: $CLANG_COMPILER" >&5
++echo "${ECHO_T}$CLANG_COMPILER" >&6
++fi
++
+ cat > conftest.$ac_ext <<EOF
+-#line 11368 "${as_me:-configure}"
++#line 12772 "${as_me:-configure}"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+
+@@ -11382,7 +12786,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #279: controlling expression is constant
+
+- { echo "$as_me:11385: checking for $CC warning options..." >&5
++ { echo "$as_me:12789: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS="-Wall"
+@@ -11398,12 +12802,12 @@
+ wd981
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:11401: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:12805: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11404: \$? = $ac_status" >&5
++ echo "$as_me:12808: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:11406: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:12810: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+@@ -11412,16 +12816,20 @@
+
+ elif test "$GCC" = yes
+ then
+- { echo "$as_me:11415: checking for $CC warning options..." >&5
++ { echo "$as_me:12819: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS=
+ cf_warn_CONST=""
+ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
+ for cf_opt in W Wall \
+ Wbad-function-cast \
+ Wcast-align \
+ Wcast-qual \
++ Wdeclaration-after-statement \
++ Wextra \
+ Winline \
+ Wmissing-declarations \
+ Wmissing-prototypes \
+@@ -11429,15 +12837,15 @@
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+- Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
++ Wundef $cf_gcc_warnings $cf_warn_CONST Wno-unknown-pragmas Wswitch-enum
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:11435: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:12843: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11438: \$? = $ac_status" >&5
++ echo "$as_me:12846: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:11440: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:12848: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ case $cf_opt in #(vi
+ Wcast-qual) #(vi
+@@ -11448,7 +12856,17 @@
+ [34].*)
+ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
+
+-echo "${as_me:-configure}:11451: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++echo "${as_me:-configure}:12859: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++
++ continue;;
++ esac
++ ;;
++ Wpointer-arith) #(vi
++ case $GCC_VERSION in
++ [12].*)
++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
++
++echo "${as_me:-configure}:12869: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+
+ continue;;
+ esac
+@@ -11461,19 +12879,19 @@
+ fi
+ rm -rf conftest*
+
+- if test "$cf_with_cxx" = yes ; then
++ if test "x$cf_with_cxx" = xyes ; then
+
+ INTEL_CPLUSPLUS=no
+
+ if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+- echo "$as_me:11471: checking if this is really Intel C++ compiler" >&5
++ echo "$as_me:12889: checking if this is really Intel C++ compiler" >&5
+ echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
+ cf_save_CFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -no-gcc"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11476 "configure"
++#line 12894 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -11490,19 +12908,19 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11493: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:12911: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11496: \$? = $ac_status" >&5
++ echo "$as_me:12914: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:11499: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12917: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11502: \$? = $ac_status" >&5
++ echo "$as_me:12920: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ INTEL_CPLUSPLUS=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
+
+ else
+ echo "$as_me: failed program was:" >&5
+@@ -11510,12 +12928,61 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ CXXFLAGS="$cf_save_CFLAGS"
+- echo "$as_me:11513: result: $INTEL_CPLUSPLUS" >&5
++ echo "$as_me:12931: result: $INTEL_CPLUSPLUS" >&5
+ echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
+ ;;
+ esac
+ fi
+
++CLANG_CPLUSPLUS=no
++
++if test "$GCC" = yes ; then
++ echo "$as_me:12940: checking if this is really Clang C++ compiler" >&5
++echo $ECHO_N "checking if this is really Clang C++ compiler... $ECHO_C" >&6
++ cf_save_CFLAGS="$CXXFLAGS"
++ CXXFLAGS="$CXXFLAGS -Qunused-arguments"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 12945 "configure"
++#include "confdefs.h"
++
++int
++main ()
++{
++
++#ifdef __clang__
++#else
++make an error
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:12962: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:12965: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:12968: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:12971: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ CLANG_CPLUSPLUS=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CXXFLAGS="$cf_save_CFLAGS"
++ echo "$as_me:12982: result: $CLANG_CPLUSPLUS" >&5
++echo "${ECHO_T}$CLANG_CPLUSPLUS" >&6
++fi
++
+ ac_ext=cc
+ ac_cpp='$CXXCPP $CPPFLAGS'
+ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -11524,7 +12991,7 @@
+ ac_main_return=return
+
+ cat > conftest.$ac_ext <<EOF
+-#line 11527 "configure"
++#line 12994 "configure"
+ int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+ EOF
+
+@@ -11542,7 +13009,7 @@
+ # remark #981: operands are evaluated in unspecified order
+ # warning #269: invalid format string conversion
+
+- { echo "$as_me:11545: checking for $CC warning options..." >&5
++ { echo "$as_me:13012: checking for $CC warning options..." >&5
+ echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ EXTRA_CXXFLAGS="-Wall"
+@@ -11559,12 +13026,12 @@
+ wd981
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+- if { (eval echo "$as_me:11562: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:13029: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11565: \$? = $ac_status" >&5
++ echo "$as_me:13032: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:11567: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:13034: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ fi
+@@ -11573,7 +13040,7 @@
+
+ elif test "$GXX" = yes
+ then
+- { echo "$as_me:11576: checking for $CXX warning options..." >&5
++ { echo "$as_me:13043: checking for $CXX warning options..." >&5
+ echo "$as_me: checking for $CXX warning options..." >&6;}
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ EXTRA_CXXFLAGS="-W -Wall"
+@@ -11589,29 +13056,30 @@
+ for cf_opt in \
+ Wabi \
+ fabi-version=0 \
++ Wextra \
++ Wignored-qualifiers \
++ Wlogical-op \
+ Woverloaded-virtual \
+ Wsign-promo \
+ Wsynth \
+ Wold-style-cast \
+ Wcast-align \
+ Wcast-qual \
+- Wmissing-prototypes \
+ Wpointer-arith \
+ Wshadow \
+- Wstrict-prototypes \
+ Wundef $cf_gxx_extra_warnings Wno-unused
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
+- if { (eval echo "$as_me:11605: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:13073: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11608: \$? = $ac_status" >&5
++ echo "$as_me:13076: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:11610: result: ... -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:13078: result: ... -$cf_opt" >&5
+ echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ else
+- test -n "$verbose" && echo "$as_me:11614: result: ... no -$cf_opt" >&5
++ test -n "$verbose" && echo "$as_me:13082: result: ... no -$cf_opt" >&5
+ echo "${ECHO_T}... no -$cf_opt" >&6
+ fi
+ done
+@@ -11647,10 +13115,10 @@
+ EOF
+ if test "$GCC" = yes
+ then
+- { echo "$as_me:11650: checking for $CC __attribute__ directives..." >&5
++ { echo "$as_me:13118: checking for $CC __attribute__ directives..." >&5
+ echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+ cat > conftest.$ac_ext <<EOF
+-#line 11653 "${as_me:-configure}"
++#line 13121 "${as_me:-configure}"
+ #include "confdefs.h"
+ #include "conftest.h"
+ #include "conftest.i"
+@@ -11699,36 +13167,60 @@
+ ;;
+ esac
+
+- if { (eval echo "$as_me:11702: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:13170: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11705: \$? = $ac_status" >&5
++ echo "$as_me:13173: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:11707: result: ... $cf_attribute" >&5
++ test -n "$verbose" && echo "$as_me:13175: result: ... $cf_attribute" >&5
+ echo "${ECHO_T}... $cf_attribute" >&6
+ cat conftest.h >>confdefs.h
+ case $cf_attribute in #(vi
+- printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
++ noreturn) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_NORETURN $cf_directive
+ EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
++
++ ;;
++ printf) #(vi
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
++
++cat >>confdefs.h <<\EOF
++#define GCC_PRINTF 1
+ EOF
++
+ fi
++
++cat >>confdefs.h <<EOF
++#define GCC_PRINTFLIKE(fmt,var) $cf_value
++EOF
++
+ ;;
+ scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
++
++cat >>confdefs.h <<\EOF
++#define GCC_SCANF 1
+ EOF
++
+ fi
++
++cat >>confdefs.h <<EOF
++#define GCC_SCANFLIKE(fmt,var) $cf_value
++EOF
++
++ ;;
++ unused) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_UNUSED $cf_directive
++EOF
++
+ ;;
+ esac
+ fi
+@@ -11739,8 +13231,101 @@
+ rm -rf conftest*
+ fi
+
++echo "$as_me:13234: checking if you want to work around bogus compiler/loader warnings" >&5
++echo $ECHO_N "checking if you want to work around bogus compiler/loader warnings... $ECHO_C" >&6
++
++# Check whether --enable-string-hacks or --disable-string-hacks was given.
++if test "${enable_string_hacks+set}" = set; then
++ enableval="$enable_string_hacks"
++ with_string_hacks=$enableval
++else
++ with_string_hacks=no
++fi;
++echo "$as_me:13244: result: $with_string_hacks" >&5
++echo "${ECHO_T}$with_string_hacks" >&6
++
++if test "x$with_string_hacks" = "xyes"; then
++
++cat >>confdefs.h <<\EOF
++#define USE_STRING_HACKS 1
++EOF
++
++ { echo "$as_me:13253: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&5
++echo "$as_me: WARNING: enabling string-hacks to work around bogus compiler/loader warnings" >&2;}
++
++for ac_func in strlcat strlcpy snprintf
++do
++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
++echo "$as_me:13259: 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 13265 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char $ac_func (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char $ac_func ();
++char (*f) ();
++
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
++choke me
++#else
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:13296: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:13299: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:13302: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:13305: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ eval "$as_ac_var=yes"
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++eval "$as_ac_var=no"
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:13315: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
++if test `eval echo '${'$as_ac_var'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
++EOF
++
++fi
++done
++
++fi
++
+ ### use option --enable-assertions to turn on generation of assertion code
+-echo "$as_me:11743: checking if you want to enable runtime assertions" >&5
++echo "$as_me:13328: checking if you want to enable runtime assertions" >&5
+ echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
+
+ # Check whether --enable-assertions or --disable-assertions was given.
+@@ -11750,16 +13335,12 @@
+ else
+ with_assertions=no
+ fi;
+-echo "$as_me:11753: result: $with_assertions" >&5
++echo "$as_me:13338: result: $with_assertions" >&5
+ echo "${ECHO_T}$with_assertions" >&6
+ if test -n "$GCC"
+ then
+ if test "$with_assertions" = no
+ then
+- cat >>confdefs.h <<\EOF
+-#define NDEBUG 1
+-EOF
+-
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
+ else
+
+@@ -11770,13 +13351,14 @@
+
+ ### use option --disable-leaks to suppress "permanent" leaks, for testing
+
+-echo "$as_me:11773: checking if you want to use dmalloc for testing" >&5
++echo "$as_me:13354: checking if you want to use dmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
+
+ # Check whether --with-dmalloc or --without-dmalloc was given.
+ if test "${with_dmalloc+set}" = set; then
+ withval="$with_dmalloc"
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<EOF
+ #define USE_DMALLOC 1
+ EOF
+
+@@ -11786,7 +13368,7 @@
+ else
+ with_dmalloc=
+ fi;
+-echo "$as_me:11789: result: ${with_dmalloc:-no}" >&5
++echo "$as_me:13371: result: ${with_dmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dmalloc:-no}" >&6
+
+ case .$with_cflags in #(vi
+@@ -11811,7 +13393,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -11852,7 +13434,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -11880,23 +13462,23 @@
+ esac
+
+ if test "$with_dmalloc" = yes ; then
+- echo "$as_me:11883: checking for dmalloc.h" >&5
++ echo "$as_me:13465: checking for dmalloc.h" >&5
+ echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dmalloc_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11889 "configure"
++#line 13471 "configure"
+ #include "confdefs.h"
+ #include <dmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:11893: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:13475: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:11899: \$? = $ac_status" >&5
++ echo "$as_me:13481: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -11915,11 +13497,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:11918: result: $ac_cv_header_dmalloc_h" >&5
++echo "$as_me:13500: result: $ac_cv_header_dmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
+ if test $ac_cv_header_dmalloc_h = yes; then
+
+-echo "$as_me:11922: checking for dmalloc_debug in -ldmalloc" >&5
++echo "$as_me:13504: checking for dmalloc_debug in -ldmalloc" >&5
+ echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -11927,7 +13509,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldmalloc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11930 "configure"
++#line 13512 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -11946,16 +13528,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11949: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13531: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11952: \$? = $ac_status" >&5
++ echo "$as_me:13534: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11955: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13537: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11958: \$? = $ac_status" >&5
++ echo "$as_me:13540: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dmalloc_dmalloc_debug=yes
+ else
+@@ -11966,7 +13548,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11969: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
++echo "$as_me:13551: 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
+@@ -11981,13 +13563,14 @@
+
+ fi
+
+-echo "$as_me:11984: checking if you want to use dbmalloc for testing" >&5
++echo "$as_me:13566: checking if you want to use dbmalloc for testing" >&5
+ echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
+
+ # Check whether --with-dbmalloc or --without-dbmalloc was given.
+ if test "${with_dbmalloc+set}" = set; then
+ withval="$with_dbmalloc"
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<EOF
+ #define USE_DBMALLOC 1
+ EOF
+
+@@ -11997,7 +13580,7 @@
+ else
+ with_dbmalloc=
+ fi;
+-echo "$as_me:12000: result: ${with_dbmalloc:-no}" >&5
++echo "$as_me:13583: result: ${with_dbmalloc:-no}" >&5
+ echo "${ECHO_T}${with_dbmalloc:-no}" >&6
+
+ case .$with_cflags in #(vi
+@@ -12022,7 +13605,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -12063,7 +13646,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -12091,23 +13674,23 @@
+ esac
+
+ if test "$with_dbmalloc" = yes ; then
+- echo "$as_me:12094: checking for dbmalloc.h" >&5
++ echo "$as_me:13677: checking for dbmalloc.h" >&5
+ echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
+ if test "${ac_cv_header_dbmalloc_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12100 "configure"
++#line 13683 "configure"
+ #include "confdefs.h"
+ #include <dbmalloc.h>
+ _ACEOF
+-if { (eval echo "$as_me:12104: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:13687: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:12110: \$? = $ac_status" >&5
++ echo "$as_me:13693: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12126,11 +13709,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12129: result: $ac_cv_header_dbmalloc_h" >&5
++echo "$as_me:13712: result: $ac_cv_header_dbmalloc_h" >&5
+ echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
+ if test $ac_cv_header_dbmalloc_h = yes; then
+
+-echo "$as_me:12133: checking for debug_malloc in -ldbmalloc" >&5
++echo "$as_me:13716: checking for debug_malloc in -ldbmalloc" >&5
+ echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
+ if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12138,7 +13721,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldbmalloc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12141 "configure"
++#line 13724 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -12157,16 +13740,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12160: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13743: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12163: \$? = $ac_status" >&5
++ echo "$as_me:13746: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12166: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13749: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12169: \$? = $ac_status" >&5
++ echo "$as_me:13752: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dbmalloc_debug_malloc=yes
+ else
+@@ -12177,7 +13760,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12180: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
++echo "$as_me:13763: 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
+@@ -12192,13 +13775,14 @@
+
+ fi
+
+-echo "$as_me:12195: checking if you want to use valgrind for testing" >&5
++echo "$as_me:13778: checking if you want to use valgrind for testing" >&5
+ echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
+
+ # Check whether --with-valgrind or --without-valgrind was given.
+ if test "${with_valgrind+set}" = set; then
+ withval="$with_valgrind"
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<EOF
+ #define USE_VALGRIND 1
+ EOF
+
+@@ -12208,7 +13792,7 @@
+ else
+ with_valgrind=
+ fi;
+-echo "$as_me:12211: result: ${with_valgrind:-no}" >&5
++echo "$as_me:13795: result: ${with_valgrind:-no}" >&5
+ echo "${ECHO_T}${with_valgrind:-no}" >&6
+
+ case .$with_cflags in #(vi
+@@ -12233,7 +13817,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -12274,7 +13858,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -12301,7 +13885,7 @@
+ ;;
+ esac
+
+-echo "$as_me:12304: checking if you want to perform memory-leak testing" >&5
++echo "$as_me:13888: checking if you want to perform memory-leak testing" >&5
+ echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
+
+ # Check whether --enable-leaks or --disable-leaks was given.
+@@ -12311,15 +13895,16 @@
+ else
+ : ${with_no_leaks:=no}
+ fi;
+-echo "$as_me:12314: result: $with_no_leaks" >&5
++echo "$as_me:13898: result: $with_no_leaks" >&5
+ echo "${ECHO_T}$with_no_leaks" >&6
+
+ if test "$with_no_leaks" = yes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define NO_LEAKS 1
+ EOF
+
+- cat >>confdefs.h <<\EOF
++cat >>confdefs.h <<\EOF
+ #define YY_NO_LEAKS 1
+ EOF
+
+@@ -12334,7 +13919,8 @@
+ # Check whether --enable-expanded or --disable-expanded was given.
+ if test "${enable_expanded+set}" = set; then
+ enableval="$enable_expanded"
+- test "$enableval" = yes && cat >>confdefs.h <<\EOF
++ test "x$enableval" = xyes &&
++cat >>confdefs.h <<\EOF
+ #define NCURSES_EXPANDED 1
+ EOF
+
+@@ -12345,7 +13931,8 @@
+ # Check whether --enable-macros or --disable-macros was given.
+ if test "${enable_macros+set}" = set; then
+ enableval="$enable_macros"
+- test "$enableval" = no && cat >>confdefs.h <<\EOF
++ test "$enableval" = no &&
++cat >>confdefs.h <<\EOF
+ #define NCURSES_NOMACROS 1
+ EOF
+
+@@ -12360,7 +13947,7 @@
+ ;;
+ esac
+
+-echo "$as_me:12363: checking whether to add trace feature to all models" >&5
++echo "$as_me:13950: checking whether to add trace feature to all models" >&5
+ echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
+
+ # Check whether --with-trace or --without-trace was given.
+@@ -12370,10 +13957,10 @@
+ else
+ cf_with_trace=$cf_all_traces
+ fi;
+-echo "$as_me:12373: result: $cf_with_trace" >&5
++echo "$as_me:13960: result: $cf_with_trace" >&5
+ echo "${ECHO_T}$cf_with_trace" >&6
+
+-if test "$cf_with_trace" = yes ; then
++if test "x$cf_with_trace" = xyes ; then
+ LIB_TRACING=all
+ ADA_TRACE=TRUE
+
+@@ -12392,7 +13979,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -12433,7 +14020,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -12460,18 +14047,40 @@
+ ADA_TRACE=FALSE
+ fi
+
++echo "$as_me:14050: checking if we want to use GNAT projects" >&5
++echo $ECHO_N "checking if we want to use GNAT projects... $ECHO_C" >&6
++
++# Check whether --enable-gnat-projects or --disable-gnat-projects was given.
++if test "${enable_gnat_projects+set}" = set; then
++ enableval="$enable_gnat_projects"
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++ enable_gnat_projects=no
++ else
++ enable_gnat_projects=yes
++ fi
++else
++ enableval=yes
++ enable_gnat_projects=yes
++
++fi;
++echo "$as_me:14067: result: $enable_gnat_projects" >&5
++echo "${ECHO_T}$enable_gnat_projects" >&6
++
+ ### Checks for libraries.
+ case $cf_cv_system_name in #(vi
+-*mingw32*) #(vi
++*mingw32*|*mingw64*) #(vi
++ CPPFLAGS="$CPPFLAGS -DWINVER=0x0501"
++ LIBS=" -lpsapi $LIBS"
+ ;;
+ *)
+-echo "$as_me:12468: checking for gettimeofday" >&5
++echo "$as_me:14077: checking for gettimeofday" >&5
+ echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
+ if test "${ac_cv_func_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12474 "configure"
++#line 14083 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gettimeofday (); below. */
+@@ -12494,7 +14103,7 @@
+ #if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
+ choke me
+ #else
+-f = gettimeofday;
++f = gettimeofday; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -12502,16 +14111,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12505: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14114: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12508: \$? = $ac_status" >&5
++ echo "$as_me:14117: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12511: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14120: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12514: \$? = $ac_status" >&5
++ echo "$as_me:14123: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_gettimeofday=yes
+ else
+@@ -12521,16 +14130,17 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12524: result: $ac_cv_func_gettimeofday" >&5
++echo "$as_me:14133: result: $ac_cv_func_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
+ if test $ac_cv_func_gettimeofday = yes; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_GETTIMEOFDAY 1
+ EOF
+
+ else
+
+-echo "$as_me:12533: checking for gettimeofday in -lbsd" >&5
++echo "$as_me:14143: checking for gettimeofday in -lbsd" >&5
+ echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
+ if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12538,7 +14148,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12541 "configure"
++#line 14151 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -12557,16 +14167,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12560: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14170: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12563: \$? = $ac_status" >&5
++ echo "$as_me:14173: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12566: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14176: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12569: \$? = $ac_status" >&5
++ echo "$as_me:14179: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_bsd_gettimeofday=yes
+ else
+@@ -12577,28 +14187,44 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12580: result: $ac_cv_lib_bsd_gettimeofday" >&5
++echo "$as_me:14190: result: $ac_cv_lib_bsd_gettimeofday" >&5
+ echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
+ if test $ac_cv_lib_bsd_gettimeofday = yes; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_GETTIMEOFDAY 1
+ EOF
+
+- LIBS="-lbsd $LIBS"
++cf_add_libs="-lbsd"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ fi
+
+ fi
+ ;;
+ esac
+
+-echo "$as_me:12594: checking if -lm needed for math functions" >&5
++echo "$as_me:14220: checking if -lm needed for math functions" >&5
+ echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
+ if test "${cf_cv_need_libm+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12601 "configure"
++#line 14227 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -12607,22 +14233,22 @@
+ int
+ main ()
+ {
+-double x = rand(); printf("result = %g\n", sin(x))
++double x = rand(); printf("result = %g\n", pow(sin(x),x))
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12616: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14242: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12619: \$? = $ac_status" >&5
++ echo "$as_me:14245: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12622: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14248: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12625: \$? = $ac_status" >&5
++ echo "$as_me:14251: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_need_libm=no
+ else
+@@ -12632,7 +14258,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:12635: result: $cf_cv_need_libm" >&5
++echo "$as_me:14261: result: $cf_cv_need_libm" >&5
+ echo "${ECHO_T}$cf_cv_need_libm" >&6
+ if test "$cf_cv_need_libm" = yes
+ then
+@@ -12640,13 +14266,13 @@
+ fi
+
+ ### Checks for header files.
+-echo "$as_me:12643: checking for ANSI C header files" >&5
++echo "$as_me:14269: checking for ANSI C header files" >&5
+ echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+ if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12649 "configure"
++#line 14275 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -12654,13 +14280,13 @@
+ #include <float.h>
+
+ _ACEOF
+-if { (eval echo "$as_me:12657: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:14283: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:12663: \$? = $ac_status" >&5
++ echo "$as_me:14289: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -12682,7 +14308,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12685 "configure"
++#line 14311 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+
+@@ -12700,7 +14326,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12703 "configure"
++#line 14329 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+
+@@ -12721,7 +14347,7 @@
+ :
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12724 "configure"
++#line 14350 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #if ((' ' & 0x0FF) == 0x020)
+@@ -12747,15 +14373,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12750: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14376: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12753: \$? = $ac_status" >&5
++ echo "$as_me:14379: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:12755: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14381: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12758: \$? = $ac_status" >&5
++ echo "$as_me:14384: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -12768,7 +14394,7 @@
+ fi
+ fi
+ fi
+-echo "$as_me:12771: result: $ac_cv_header_stdc" >&5
++echo "$as_me:14397: result: $ac_cv_header_stdc" >&5
+ echo "${ECHO_T}$ac_cv_header_stdc" >&6
+ if test $ac_cv_header_stdc = yes; then
+
+@@ -12781,13 +14407,13 @@
+ ac_header_dirent=no
+ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+-echo "$as_me:12784: checking for $ac_hdr that defines DIR" >&5
++echo "$as_me:14410: checking for $ac_hdr that defines DIR" >&5
+ echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12790 "configure"
++#line 14416 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$ac_hdr>
+@@ -12802,16 +14428,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12805: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14431: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:12808: \$? = $ac_status" >&5
++ echo "$as_me:14434: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:12811: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14437: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12814: \$? = $ac_status" >&5
++ echo "$as_me:14440: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+ else
+@@ -12821,7 +14447,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12824: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:14450: 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
+@@ -12834,7 +14460,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:12837: checking for opendir in -ldir" >&5
++ echo "$as_me:14463: checking for opendir in -ldir" >&5
+ echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
+ if test "${ac_cv_lib_dir_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12842,7 +14468,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldir $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12845 "configure"
++#line 14471 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -12861,16 +14487,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12864: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14490: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12867: \$? = $ac_status" >&5
++ echo "$as_me:14493: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12870: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14496: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12873: \$? = $ac_status" >&5
++ echo "$as_me:14499: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dir_opendir=yes
+ else
+@@ -12881,14 +14507,14 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12884: result: $ac_cv_lib_dir_opendir" >&5
++echo "$as_me:14510: result: $ac_cv_lib_dir_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
+ if test $ac_cv_lib_dir_opendir = yes; then
+ LIBS="$LIBS -ldir"
+ fi
+
+ else
+- echo "$as_me:12891: checking for opendir in -lx" >&5
++ echo "$as_me:14517: checking for opendir in -lx" >&5
+ echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
+ if test "${ac_cv_lib_x_opendir+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -12896,7 +14522,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lx $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12899 "configure"
++#line 14525 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -12915,16 +14541,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12918: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14544: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12921: \$? = $ac_status" >&5
++ echo "$as_me:14547: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12924: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14550: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12927: \$? = $ac_status" >&5
++ echo "$as_me:14553: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_x_opendir=yes
+ else
+@@ -12935,7 +14561,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12938: result: $ac_cv_lib_x_opendir" >&5
++echo "$as_me:14564: result: $ac_cv_lib_x_opendir" >&5
+ echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
+ if test $ac_cv_lib_x_opendir = yes; then
+ LIBS="$LIBS -lx"
+@@ -12943,13 +14569,13 @@
+
+ fi
+
+-echo "$as_me:12946: checking whether time.h and sys/time.h may both be included" >&5
++echo "$as_me:14572: checking whether time.h and sys/time.h may both be included" >&5
+ echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+ if test "${ac_cv_header_time+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12952 "configure"
++#line 14578 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -12965,16 +14591,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12968: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14594: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:12971: \$? = $ac_status" >&5
++ echo "$as_me:14597: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:12974: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14600: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12977: \$? = $ac_status" >&5
++ echo "$as_me:14603: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_time=yes
+ else
+@@ -12984,7 +14610,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:12987: result: $ac_cv_header_time" >&5
++echo "$as_me:14613: result: $ac_cv_header_time" >&5
+ echo "${ECHO_T}$ac_cv_header_time" >&6
+ if test $ac_cv_header_time = yes; then
+
+@@ -12999,17 +14625,17 @@
+ cf_regex_libs="regex re"
+ case $host_os in #(vi
+ mingw*)
+- cf_regex_libs="regex.dll $cf_regex_libs"
++ cf_regex_libs="gnurx $cf_regex_libs"
+ ;;
+ esac
+
+-echo "$as_me:13006: checking for regcomp" >&5
++echo "$as_me:14632: checking for regcomp" >&5
+ echo $ECHO_N "checking for regcomp... $ECHO_C" >&6
+ if test "${ac_cv_func_regcomp+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13012 "configure"
++#line 14638 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char regcomp (); below. */
+@@ -13032,7 +14658,7 @@
+ #if defined (__stub_regcomp) || defined (__stub___regcomp)
+ choke me
+ #else
+-f = regcomp;
++f = regcomp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -13040,16 +14666,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13043: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14669: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13046: \$? = $ac_status" >&5
++ echo "$as_me:14672: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13049: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14675: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13052: \$? = $ac_status" >&5
++ echo "$as_me:14678: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_regcomp=yes
+ else
+@@ -13059,7 +14685,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:13062: result: $ac_cv_func_regcomp" >&5
++echo "$as_me:14688: result: $ac_cv_func_regcomp" >&5
+ echo "${ECHO_T}$ac_cv_func_regcomp" >&6
+ if test $ac_cv_func_regcomp = yes; then
+ cf_regex_func=regcomp
+@@ -13068,7 +14694,7 @@
+ for cf_regex_lib in $cf_regex_libs
+ do
+ as_ac_Lib=`echo "ac_cv_lib_$cf_regex_lib''_regcomp" | $as_tr_sh`
+-echo "$as_me:13071: checking for regcomp in -l$cf_regex_lib" >&5
++echo "$as_me:14697: checking for regcomp in -l$cf_regex_lib" >&5
+ echo $ECHO_N "checking for regcomp in -l$cf_regex_lib... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13076,7 +14702,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l$cf_regex_lib $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13079 "configure"
++#line 14705 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -13095,16 +14721,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13098: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14724: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13101: \$? = $ac_status" >&5
++ echo "$as_me:14727: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13104: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14730: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13107: \$? = $ac_status" >&5
++ echo "$as_me:14733: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Lib=yes"
+ else
+@@ -13115,11 +14741,26 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13118: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "$as_me:14744: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+ echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+ if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+- LIBS="-l$cf_regex_lib $LIBS"
++cf_add_libs="-l$cf_regex_lib"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ cf_regex_func=regcomp
+ break
+ fi
+@@ -13129,13 +14770,13 @@
+ fi
+
+ if test "$cf_regex_func" = no ; then
+- echo "$as_me:13132: checking for compile" >&5
++ echo "$as_me:14773: checking for compile" >&5
+ echo $ECHO_N "checking for compile... $ECHO_C" >&6
+ if test "${ac_cv_func_compile+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13138 "configure"
++#line 14779 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char compile (); below. */
+@@ -13158,7 +14799,7 @@
+ #if defined (__stub_compile) || defined (__stub___compile)
+ choke me
+ #else
+-f = compile;
++f = compile; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -13166,16 +14807,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13169: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14810: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13172: \$? = $ac_status" >&5
++ echo "$as_me:14813: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13175: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14816: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13178: \$? = $ac_status" >&5
++ echo "$as_me:14819: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_compile=yes
+ else
+@@ -13185,13 +14826,13 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:13188: result: $ac_cv_func_compile" >&5
++echo "$as_me:14829: result: $ac_cv_func_compile" >&5
+ echo "${ECHO_T}$ac_cv_func_compile" >&6
+ if test $ac_cv_func_compile = yes; then
+ cf_regex_func=compile
+ else
+
+- echo "$as_me:13194: checking for compile in -lgen" >&5
++ echo "$as_me:14835: checking for compile in -lgen" >&5
+ echo $ECHO_N "checking for compile in -lgen... $ECHO_C" >&6
+ if test "${ac_cv_lib_gen_compile+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13199,7 +14840,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lgen $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13202 "configure"
++#line 14843 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -13218,16 +14859,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13221: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14862: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13224: \$? = $ac_status" >&5
++ echo "$as_me:14865: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13227: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14868: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13230: \$? = $ac_status" >&5
++ echo "$as_me:14871: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gen_compile=yes
+ else
+@@ -13238,11 +14879,26 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13241: result: $ac_cv_lib_gen_compile" >&5
++echo "$as_me:14882: result: $ac_cv_lib_gen_compile" >&5
+ echo "${ECHO_T}$ac_cv_lib_gen_compile" >&6
+ if test $ac_cv_lib_gen_compile = yes; then
+
+- LIBS="-lgen $LIBS"
++cf_add_libs="-lgen"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ cf_regex_func=compile
+ fi
+
+@@ -13251,11 +14907,11 @@
+ fi
+
+ if test "$cf_regex_func" = no ; then
+- { echo "$as_me:13254: WARNING: cannot find regular expression library" >&5
++ { echo "$as_me:14910: WARNING: cannot find regular expression library" >&5
+ echo "$as_me: WARNING: cannot find regular expression library" >&2;}
+ fi
+
+-echo "$as_me:13258: checking for regular-expression headers" >&5
++echo "$as_me:14914: checking for regular-expression headers" >&5
+ echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
+ if test "${cf_cv_regex_hdrs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13267,7 +14923,7 @@
+ for cf_regex_hdr in regexp.h regexpr.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13270 "configure"
++#line 14926 "configure"
+ #include "confdefs.h"
+ #include <$cf_regex_hdr>
+ int
+@@ -13282,16 +14938,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13285: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14941: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13288: \$? = $ac_status" >&5
++ echo "$as_me:14944: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13291: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14947: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13294: \$? = $ac_status" >&5
++ echo "$as_me:14950: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_regex_hdrs=$cf_regex_hdr
+@@ -13308,7 +14964,7 @@
+ for cf_regex_hdr in regex.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13311 "configure"
++#line 14967 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <$cf_regex_hdr>
+@@ -13326,16 +14982,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13329: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14985: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13332: \$? = $ac_status" >&5
++ echo "$as_me:14988: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13335: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14991: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13338: \$? = $ac_status" >&5
++ echo "$as_me:14994: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_regex_hdrs=$cf_regex_hdr
+@@ -13351,21 +15007,24 @@
+ esac
+
+ fi
+-echo "$as_me:13354: result: $cf_cv_regex_hdrs" >&5
++echo "$as_me:15010: result: $cf_cv_regex_hdrs" >&5
+ echo "${ECHO_T}$cf_cv_regex_hdrs" >&6
+
+ case $cf_cv_regex_hdrs in #(vi
+- no) { echo "$as_me:13358: WARNING: no regular expression header found" >&5
++ no) { echo "$as_me:15014: WARNING: no regular expression header found" >&5
+ echo "$as_me: WARNING: no regular expression header found" >&2;} ;; #(vi
+- regex.h) cat >>confdefs.h <<\EOF
++ regex.h)
++cat >>confdefs.h <<\EOF
+ #define HAVE_REGEX_H_FUNCS 1
+ EOF
+ ;; #(vi
+- regexp.h) cat >>confdefs.h <<\EOF
++ regexp.h)
++cat >>confdefs.h <<\EOF
+ #define HAVE_REGEXP_H_FUNCS 1
+ EOF
+ ;; #(vi
+- regexpr.h) cat >>confdefs.h <<\EOF
++ regexpr.h)
++cat >>confdefs.h <<\EOF
+ #define HAVE_REGEXPR_H_FUNCS 1
+ EOF
+ ;;
+@@ -13391,23 +15050,71 @@
+
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13394: checking for $ac_header" >&5
++echo "$as_me:15053: 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 15059 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:15063: \"$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:15069: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:15088: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
++
++fi
++done
++
++for ac_header in unistd.h getopt.h
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:15101: 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 13400 "configure"
++#line 15107 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:13404: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:15111: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:13410: \$? = $ac_status" >&5
++ echo "$as_me:15117: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -13426,7 +15133,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:13429: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:15136: 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
+@@ -13436,11 +15143,72 @@
+ fi
+ done
+
++echo "$as_me:15146: checking for header declaring getopt variables" >&5
++echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
++if test "${cf_cv_getopt_header+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++cat >conftest.$ac_ext <<_ACEOF
++#line 15156 "configure"
++#include "confdefs.h"
++
++#include <$cf_header>
++int
++main ()
++{
++int x = optind; char *y = optarg
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:15169: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:15172: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:15175: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:15178: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_getopt_header=$cf_header
++ break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
++fi
++echo "$as_me:15190: result: $cf_cv_getopt_header" >&5
++echo "${ECHO_T}$cf_cv_getopt_header" >&6
++if test $cf_cv_getopt_header != none ; then
++
++cat >>confdefs.h <<\EOF
++#define HAVE_GETOPT_HEADER 1
++EOF
++
++fi
++if test $cf_cv_getopt_header = getopt.h ; then
++
++cat >>confdefs.h <<\EOF
++#define NEED_GETOPT_H 1
++EOF
++
++fi
++
+ # check for ISC (this may also define _POSIX_SOURCE)
+ # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
+-if test "$ISC" = yes ; then
++if test "x$ISC" = xyes ; then
+
+-echo "$as_me:13443: checking for main in -lcposix" >&5
++echo "$as_me:15211: checking for main in -lcposix" >&5
+ echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
+ if test "${ac_cv_lib_cposix_main+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13448,7 +15216,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lcposix $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13451 "configure"
++#line 15219 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -13460,16 +15228,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13463: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15231: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13466: \$? = $ac_status" >&5
++ echo "$as_me:15234: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13469: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15237: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13472: \$? = $ac_status" >&5
++ echo "$as_me:15240: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_cposix_main=yes
+ else
+@@ -13480,7 +15248,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13483: result: $ac_cv_lib_cposix_main" >&5
++echo "$as_me:15251: 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
+@@ -13491,7 +15259,7 @@
+
+ fi
+
+- echo "$as_me:13494: checking for bzero in -linet" >&5
++ echo "$as_me:15262: checking for bzero in -linet" >&5
+ echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
+ if test "${ac_cv_lib_inet_bzero+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13499,7 +15267,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-linet $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13502 "configure"
++#line 15270 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -13518,16 +15286,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13521: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15289: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13524: \$? = $ac_status" >&5
++ echo "$as_me:15292: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13527: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15295: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13530: \$? = $ac_status" >&5
++ echo "$as_me:15298: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_inet_bzero=yes
+ else
+@@ -13538,21 +15306,37 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:13541: result: $ac_cv_lib_inet_bzero" >&5
++echo "$as_me:15309: result: $ac_cv_lib_inet_bzero" >&5
+ echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
+ if test $ac_cv_lib_inet_bzero = yes; then
+- LIBS="-linet $LIBS"
++
++cf_add_libs="-linet"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ fi
+ fi
+
+-echo "$as_me:13548: checking if sys/time.h works with sys/select.h" >&5
++echo "$as_me:15332: checking if sys/time.h works with sys/select.h" >&5
+ echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
+ if test "${cf_cv_sys_time_select+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13555 "configure"
++#line 15339 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -13572,16 +15356,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13575: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15359: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13578: \$? = $ac_status" >&5
++ echo "$as_me:15362: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13581: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15365: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13584: \$? = $ac_status" >&5
++ echo "$as_me:15368: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_sys_time_select=yes
+ else
+@@ -13593,9 +15377,10 @@
+
+ fi
+
+-echo "$as_me:13596: result: $cf_cv_sys_time_select" >&5
++echo "$as_me:15380: result: $cf_cv_sys_time_select" >&5
+ echo "${ECHO_T}$cf_cv_sys_time_select" >&6
+-test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_sys_time_select" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_SYS_TIME_SELECT 1
+ EOF
+
+@@ -13607,104 +15392,13 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+
+-echo "$as_me:13610: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 13618 "configure"
+-#include "confdefs.h"
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+- char **p;
+- int i;
+-{
+- return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+- char *s;
+- va_list v;
+- va_start (v,p);
+- s = g (p, va_arg (v,int));
+- va_end (v);
+- return s;
+-}
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
+-int
+-main ()
+-{
+-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+- ;
+- return 0;
+-}
+-_ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX 10.20 and later -Ae
+-# HP-UX older versions -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+- CC="$ac_save_CC $ac_arg"
+- rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13667: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:13670: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13673: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:13676: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_prog_cc_stdc=$ac_arg
+-break
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-fi
+-rm -f conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
+-
+-fi
+-
+-case "x$ac_cv_prog_cc_stdc" in
+- x|xno)
+- echo "$as_me:13693: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+- *)
+- echo "$as_me:13696: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+- CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-
+-echo "$as_me:13701: checking for an ANSI C-conforming const" >&5
++echo "$as_me:15395: checking for an ANSI C-conforming const" >&5
+ echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+ if test "${ac_cv_c_const+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13707 "configure"
++#line 15401 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -13762,16 +15456,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13765: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15459: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13768: \$? = $ac_status" >&5
++ echo "$as_me:15462: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13771: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15465: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13774: \$? = $ac_status" >&5
++ echo "$as_me:15468: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+ else
+@@ -13781,7 +15475,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:13784: result: $ac_cv_c_const" >&5
++echo "$as_me:15478: result: $ac_cv_c_const" >&5
+ echo "${ECHO_T}$ac_cv_c_const" >&6
+ if test $ac_cv_c_const = no; then
+
+@@ -13791,7 +15485,7 @@
+
+ fi
+
+-echo "$as_me:13794: checking for inline" >&5
++echo "$as_me:15488: checking for inline" >&5
+ echo $ECHO_N "checking for inline... $ECHO_C" >&6
+ if test "${ac_cv_c_inline+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13799,7 +15493,7 @@
+ ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13802 "configure"
++#line 15496 "configure"
+ #include "confdefs.h"
+ #ifndef __cplusplus
+ static $ac_kw int static_foo () {return 0; }
+@@ -13808,16 +15502,16 @@
+
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13811: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15505: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13814: \$? = $ac_status" >&5
++ echo "$as_me:15508: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13817: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15511: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13820: \$? = $ac_status" >&5
++ echo "$as_me:15514: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_inline=$ac_kw; break
+ else
+@@ -13828,7 +15522,7 @@
+ done
+
+ fi
+-echo "$as_me:13831: result: $ac_cv_c_inline" >&5
++echo "$as_me:15525: result: $ac_cv_c_inline" >&5
+ echo "${ECHO_T}$ac_cv_c_inline" >&6
+ case $ac_cv_c_inline in
+ inline | yes) ;;
+@@ -13849,9 +15543,12 @@
+ if test "$INTEL_COMPILER" = yes
+ then
+ :
++ elif test "$CLANG_COMPILER" = yes
++ then
++ :
+ elif test "$GCC" = yes
+ then
+- echo "$as_me:13854: checking if $CC supports options to tune inlining" >&5
++ echo "$as_me:15551: checking if $CC supports options to tune inlining" >&5
+ echo $ECHO_N "checking if $CC supports options to tune inlining... $ECHO_C" >&6
+ if test "${cf_cv_gcc_inline+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13860,7 +15557,7 @@
+ cf_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13863 "configure"
++#line 15560 "configure"
+ #include "confdefs.h"
+ inline int foo(void) { return 1; }
+ int
+@@ -13872,16 +15569,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13875: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15572: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13878: \$? = $ac_status" >&5
++ echo "$as_me:15575: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13881: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15578: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13884: \$? = $ac_status" >&5
++ echo "$as_me:15581: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gcc_inline=yes
+ else
+@@ -13893,7 +15590,7 @@
+ CFLAGS=$cf_save_CFLAGS
+
+ fi
+-echo "$as_me:13896: result: $cf_cv_gcc_inline" >&5
++echo "$as_me:15593: result: $cf_cv_gcc_inline" >&5
+ echo "${ECHO_T}$cf_cv_gcc_inline" >&6
+ if test "$cf_cv_gcc_inline" = yes ; then
+
+@@ -13912,7 +15609,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -13953,7 +15650,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -13979,7 +15676,7 @@
+ fi
+ fi
+
+-echo "$as_me:13982: checking for signal global datatype" >&5
++echo "$as_me:15679: checking for signal global datatype" >&5
+ echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
+ if test "${cf_cv_sig_atomic_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -13991,7 +15688,7 @@
+ "int"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13994 "configure"
++#line 15691 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -14014,16 +15711,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14017: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15714: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14020: \$? = $ac_status" >&5
++ echo "$as_me:15717: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14023: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15720: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14026: \$? = $ac_status" >&5
++ echo "$as_me:15723: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_sig_atomic_t=$cf_type
+ else
+@@ -14037,15 +15734,16 @@
+
+ fi
+
+-echo "$as_me:14040: result: $cf_cv_sig_atomic_t" >&5
++echo "$as_me:15737: result: $cf_cv_sig_atomic_t" >&5
+ echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
+-test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
++test "$cf_cv_sig_atomic_t" != no &&
++cat >>confdefs.h <<EOF
+ #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
+ EOF
+
+ if test $NCURSES_CHTYPE = auto ; then
+
+-echo "$as_me:14048: checking for type of chtype" >&5
++echo "$as_me:15746: checking for type of chtype" >&5
+ echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+ if test "${cf_cv_typeof_chtype+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14055,7 +15753,7 @@
+ cf_cv_typeof_chtype=long
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14058 "configure"
++#line 15756 "configure"
+ #include "confdefs.h"
+
+ #define WANT_BITS 31
+@@ -14090,15 +15788,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14093: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15791: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14096: \$? = $ac_status" >&5
++ echo "$as_me:15794: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:14098: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15796: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14101: \$? = $ac_status" >&5
++ echo "$as_me:15799: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_typeof_chtype=`cat cf_test.out`
+ else
+@@ -14113,7 +15811,7 @@
+
+ fi
+
+-echo "$as_me:14116: result: $cf_cv_typeof_chtype" >&5
++echo "$as_me:15814: result: $cf_cv_typeof_chtype" >&5
+ echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
+
+ cat >>confdefs.h <<EOF
+@@ -14125,14 +15823,14 @@
+ fi
+ test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
+
+-echo "$as_me:14128: checking if unsigned literals are legal" >&5
++echo "$as_me:15826: checking if unsigned literals are legal" >&5
+ echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
+ if test "${cf_cv_unsigned_literals+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14135 "configure"
++#line 15833 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -14144,16 +15842,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14147: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15845: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14150: \$? = $ac_status" >&5
++ echo "$as_me:15848: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14153: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15851: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14156: \$? = $ac_status" >&5
++ echo "$as_me:15854: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_unsigned_literals=yes
+ else
+@@ -14165,7 +15863,7 @@
+
+ fi
+
+-echo "$as_me:14168: result: $cf_cv_unsigned_literals" >&5
++echo "$as_me:15866: result: $cf_cv_unsigned_literals" >&5
+ echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
+
+ cf_cv_1UL="1"
+@@ -14181,14 +15879,14 @@
+
+ ### Checks for external-data
+
+-echo "$as_me:14184: checking if external errno is declared" >&5
++echo "$as_me:15882: checking if external errno is declared" >&5
+ echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
+ if test "${cf_cv_dcl_errno+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14191 "configure"
++#line 15889 "configure"
+ #include "confdefs.h"
+
+ #ifdef HAVE_STDLIB_H
+@@ -14206,16 +15904,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14209: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15907: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14212: \$? = $ac_status" >&5
++ echo "$as_me:15910: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14215: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15913: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14218: \$? = $ac_status" >&5
++ echo "$as_me:15916: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_dcl_errno=yes
+ else
+@@ -14226,7 +15924,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:14229: result: $cf_cv_dcl_errno" >&5
++echo "$as_me:15927: result: $cf_cv_dcl_errno" >&5
+ echo "${ECHO_T}$cf_cv_dcl_errno" >&6
+
+ if test "$cf_cv_dcl_errno" = no ; then
+@@ -14241,14 +15939,14 @@
+
+ # It's possible (for near-UNIX clones) that the data doesn't exist
+
+-echo "$as_me:14244: checking if external errno exists" >&5
++echo "$as_me:15942: checking if external errno exists" >&5
+ echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
+ if test "${cf_cv_have_errno+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14251 "configure"
++#line 15949 "configure"
+ #include "confdefs.h"
+
+ #undef errno
+@@ -14263,16 +15961,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14266: \"$ac_link\"") >&5
++if { (eval echo "$as_me:15964: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14269: \$? = $ac_status" >&5
++ echo "$as_me:15967: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14272: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15970: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14275: \$? = $ac_status" >&5
++ echo "$as_me:15973: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_errno=yes
+ else
+@@ -14283,7 +15981,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:14286: result: $cf_cv_have_errno" >&5
++echo "$as_me:15984: result: $cf_cv_have_errno" >&5
+ echo "${ECHO_T}$cf_cv_have_errno" >&6
+
+ if test "$cf_cv_have_errno" = yes ; then
+@@ -14296,7 +15994,7 @@
+
+ fi
+
+-echo "$as_me:14299: checking if data-only library module links" >&5
++echo "$as_me:15997: checking if data-only library module links" >&5
+ echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
+ if test "${cf_cv_link_dataonly+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14304,20 +16002,20 @@
+
+ rm -f conftest.a
+ cat >conftest.$ac_ext <<EOF
+-#line 14307 "configure"
++#line 16005 "configure"
+ int testdata[3] = { 123, 456, 789 };
+ EOF
+- if { (eval echo "$as_me:14310: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:16008: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14313: \$? = $ac_status" >&5
++ echo "$as_me:16011: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ mv conftest.o data.o && \
+ ( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
+ fi
+ rm -f conftest.$ac_ext data.o
+ cat >conftest.$ac_ext <<EOF
+-#line 14320 "configure"
++#line 16018 "configure"
+ int testfunc()
+ {
+ #if defined(NeXT)
+@@ -14330,10 +16028,10 @@
+ #endif
+ }
+ EOF
+- if { (eval echo "$as_me:14333: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:16031: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14336: \$? = $ac_status" >&5
++ echo "$as_me:16034: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ mv conftest.o func.o && \
+ ( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
+@@ -14346,7 +16044,7 @@
+ cf_cv_link_dataonly=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14349 "configure"
++#line 16047 "configure"
+ #include "confdefs.h"
+
+ int main()
+@@ -14357,15 +16055,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14360: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16058: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14363: \$? = $ac_status" >&5
++ echo "$as_me:16061: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:14365: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16063: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14368: \$? = $ac_status" >&5
++ echo "$as_me:16066: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_link_dataonly=yes
+ else
+@@ -14380,11 +16078,12 @@
+
+ fi
+
+-echo "$as_me:14383: result: $cf_cv_link_dataonly" >&5
++echo "$as_me:16081: result: $cf_cv_link_dataonly" >&5
+ echo "${ECHO_T}$cf_cv_link_dataonly" >&6
+
+ if test "$cf_cv_link_dataonly" = no ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define BROKEN_LINKER 1
+ EOF
+
+@@ -14397,13 +16096,16 @@
+ getcwd \
+ getegid \
+ geteuid \
++getopt \
+ getttynam \
+ issetugid \
+ poll \
++putenv \
+ remove \
+ select \
+ setbuf \
+ setbuffer \
++setenv \
+ setvbuf \
+ sigaction \
+ sigvec \
+@@ -14415,13 +16117,13 @@
+
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:14418: checking for $ac_func" >&5
++echo "$as_me:16120: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14424 "configure"
++#line 16126 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -14444,7 +16146,7 @@
+ #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+ choke me
+ #else
+-f = $ac_func;
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -14452,16 +16154,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14455: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16157: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14458: \$? = $ac_status" >&5
++ echo "$as_me:16160: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14461: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16163: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14464: \$? = $ac_status" >&5
++ echo "$as_me:16166: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -14471,7 +16173,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:14474: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:16176: 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
+@@ -14481,16 +16183,23 @@
+ fi
+ done
+
+-if test "$with_getcap" = "yes" ; then
++if test "x$ac_cv_func_getopt" = xno &&
++ test "x$cf_with_progs$cf_with_tests" != xnono; then
++ { { echo "$as_me:16188: error: getopt is required for building programs" >&5
++echo "$as_me: error: getopt is required for building programs" >&2;}
++ { (exit 1); exit 1; }; }
++fi
+
+-echo "$as_me:14486: checking for terminal-capability database functions" >&5
++if test "x$with_getcap" = "xyes" ; then
++
++echo "$as_me:16195: 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 14493 "configure"
++#line 16202 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -14501,7 +16210,7 @@
+ char temp[128];
+ char *buf = temp;
+ char *db_array = temp;
+- cgetent(&buf, /* int *, */ &db_array, "vt100");
++ cgetent(&buf, &db_array, "vt100");
+ cgetcap(buf, "tc", '=');
+ cgetmatch(buf, "tc");
+
+@@ -14510,16 +16219,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14513: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16222: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14516: \$? = $ac_status" >&5
++ echo "$as_me:16225: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14519: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16228: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14522: \$? = $ac_status" >&5
++ echo "$as_me:16231: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cgetent=yes
+ else
+@@ -14530,23 +16239,87 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-
+-echo "$as_me:14534: result: $cf_cv_cgetent" >&5
++echo "$as_me:16242: result: $cf_cv_cgetent" >&5
+ echo "${ECHO_T}$cf_cv_cgetent" >&6
+-test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
++
++if test "$cf_cv_cgetent" = yes
++then
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_BSD_CGETENT 1
+ EOF
+
++echo "$as_me:16252: checking if cgetent uses const parameter" >&5
++echo $ECHO_N "checking if cgetent uses const parameter... $ECHO_C" >&6
++if test "${cf_cv_cgetent_const+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 16259 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++int
++main ()
++{
++
++ char temp[128];
++ char *buf = temp;
++#ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
++ const char *db_array = temp;
++ cgetent(&buf, &db_array, "vt100");
++#endif
++ cgetcap(buf, "tc", '=');
++ cgetmatch(buf, "tc");
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:16281: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:16284: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:16287: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:16290: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_cgetent_const=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_cgetent_const=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++fi
++echo "$as_me:16301: result: $cf_cv_cgetent_const" >&5
++echo "${ECHO_T}$cf_cv_cgetent_const" >&6
++ if test "$cf_cv_cgetent_const" = yes
++ then
++
++cat >>confdefs.h <<EOF
++#define CGETENT_CONST const
++EOF
++
++ fi
++fi
++
+ fi
+
+-echo "$as_me:14542: checking for isascii" >&5
++echo "$as_me:16315: checking for isascii" >&5
+ echo $ECHO_N "checking for isascii... $ECHO_C" >&6
+ if test "${cf_cv_have_isascii+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14549 "configure"
++#line 16322 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ int
+@@ -14558,16 +16331,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14561: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16334: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14564: \$? = $ac_status" >&5
++ echo "$as_me:16337: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14567: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16340: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14570: \$? = $ac_status" >&5
++ echo "$as_me:16343: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_isascii=yes
+ else
+@@ -14578,17 +16351,18 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:14581: result: $cf_cv_have_isascii" >&5
++echo "$as_me:16354: result: $cf_cv_have_isascii" >&5
+ echo "${ECHO_T}$cf_cv_have_isascii" >&6
+-test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_have_isascii" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_ISASCII 1
+ EOF
+
+ if test "$ac_cv_func_sigaction" = yes; then
+-echo "$as_me:14588: checking whether sigaction needs _POSIX_SOURCE" >&5
++echo "$as_me:16362: checking whether sigaction needs _POSIX_SOURCE" >&5
+ echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14591 "configure"
++#line 16365 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -14602,16 +16376,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14605: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16379: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14608: \$? = $ac_status" >&5
++ echo "$as_me:16382: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14611: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16385: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14614: \$? = $ac_status" >&5
++ echo "$as_me:16388: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ sigact_bad=no
+ else
+@@ -14619,7 +16393,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14622 "configure"
++#line 16396 "configure"
+ #include "confdefs.h"
+
+ #define _POSIX_SOURCE
+@@ -14634,20 +16408,21 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14637: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16411: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14640: \$? = $ac_status" >&5
++ echo "$as_me:16414: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14643: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16417: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14646: \$? = $ac_status" >&5
++ echo "$as_me:16420: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ sigact_bad=yes
+- cat >>confdefs.h <<\EOF
+-#define SVR4_ACTION 1
++
++cat >>confdefs.h <<\EOF
++#define _POSIX_SOURCE 1
+ EOF
+
+ else
+@@ -14658,11 +16433,11 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14661: result: $sigact_bad" >&5
++echo "$as_me:16436: result: $sigact_bad" >&5
+ echo "${ECHO_T}$sigact_bad" >&6
+ fi
+
+-echo "$as_me:14665: checking if nanosleep really works" >&5
++echo "$as_me:16440: checking if nanosleep really works" >&5
+ echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
+ if test "${cf_cv_func_nanosleep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -14672,7 +16447,7 @@
+ cf_cv_func_nanosleep=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14675 "configure"
++#line 16450 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -14697,15 +16472,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14700: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16475: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14703: \$? = $ac_status" >&5
++ echo "$as_me:16478: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:14705: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16480: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14708: \$? = $ac_status" >&5
++ echo "$as_me:16483: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_nanosleep=yes
+ else
+@@ -14717,10 +16492,11 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:14720: result: $cf_cv_func_nanosleep" >&5
++echo "$as_me:16495: result: $cf_cv_func_nanosleep" >&5
+ echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
+
+-test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
++test "$cf_cv_func_nanosleep" = "yes" &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_NANOSLEEP 1
+ EOF
+
+@@ -14731,23 +16507,23 @@
+
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:14734: checking for $ac_header" >&5
++echo "$as_me:16510: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14740 "configure"
++#line 16516 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:14744: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:16520: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:14750: \$? = $ac_status" >&5
++ echo "$as_me:16526: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -14766,7 +16542,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:14769: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:16545: 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
+@@ -14781,23 +16557,23 @@
+ for ac_header in sys/termio.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:14784: checking for $ac_header" >&5
++echo "$as_me:16560: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14790 "configure"
++#line 16566 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:14794: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:16570: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:14800: \$? = $ac_status" >&5
++ echo "$as_me:16576: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -14816,7 +16592,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:14819: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:16595: 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
+@@ -14834,10 +16610,10 @@
+ *) termios_bad=maybe ;;
+ esac
+ if test "$termios_bad" = maybe ; then
+- echo "$as_me:14837: checking whether termios.h needs _POSIX_SOURCE" >&5
++ echo "$as_me:16613: checking whether termios.h needs _POSIX_SOURCE" >&5
+ echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14840 "configure"
++#line 16616 "configure"
+ #include "confdefs.h"
+ #include <termios.h>
+ int
+@@ -14849,16 +16625,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14852: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16628: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14855: \$? = $ac_status" >&5
++ echo "$as_me:16631: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14858: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16634: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14861: \$? = $ac_status" >&5
++ echo "$as_me:16637: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ termios_bad=no
+ else
+@@ -14866,7 +16642,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14869 "configure"
++#line 16645 "configure"
+ #include "confdefs.h"
+
+ #define _POSIX_SOURCE
+@@ -14880,23 +16656,24 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14883: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:16659: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14886: \$? = $ac_status" >&5
++ echo "$as_me:16662: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14889: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16665: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14892: \$? = $ac_status" >&5
++ echo "$as_me:16668: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ termios_bad=unknown
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-termios_bad=yes cat >>confdefs.h <<\EOF
+-#define SVR4_TERMIO 1
++termios_bad=yes
++cat >>confdefs.h <<\EOF
++#define _POSIX_SOURCE 1
+ EOF
+
+ fi
+@@ -14904,19 +16681,19 @@
+
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- echo "$as_me:14907: result: $termios_bad" >&5
++ echo "$as_me:16684: result: $termios_bad" >&5
+ echo "${ECHO_T}$termios_bad" >&6
+ fi
+ fi
+
+-echo "$as_me:14912: checking for tcgetattr" >&5
++echo "$as_me:16689: checking for tcgetattr" >&5
+ echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
+ if test "${cf_cv_have_tcgetattr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14919 "configure"
++#line 16696 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -14944,16 +16721,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14947: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16724: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14950: \$? = $ac_status" >&5
++ echo "$as_me:16727: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14953: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16730: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14956: \$? = $ac_status" >&5
++ echo "$as_me:16733: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_tcgetattr=yes
+ else
+@@ -14963,20 +16740,21 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:14966: result: $cf_cv_have_tcgetattr" >&5
++echo "$as_me:16743: result: $cf_cv_have_tcgetattr" >&5
+ echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
+-test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_have_tcgetattr" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_TCGETATTR 1
+ EOF
+
+-echo "$as_me:14972: checking for vsscanf function or workaround" >&5
++echo "$as_me:16750: checking for vsscanf function or workaround" >&5
+ echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
+ if test "${cf_cv_func_vsscanf+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14979 "configure"
++#line 16757 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -14992,16 +16770,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14995: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16773: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14998: \$? = $ac_status" >&5
++ echo "$as_me:16776: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15001: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16779: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15004: \$? = $ac_status" >&5
++ echo "$as_me:16782: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_vsscanf=vsscanf
+ else
+@@ -15009,7 +16787,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15012 "configure"
++#line 16790 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -15031,16 +16809,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15034: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16812: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15037: \$? = $ac_status" >&5
++ echo "$as_me:16815: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15040: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16818: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15043: \$? = $ac_status" >&5
++ echo "$as_me:16821: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_vsscanf=vfscanf
+ else
+@@ -15048,7 +16826,7 @@
+ cat conftest.$ac_ext >&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15051 "configure"
++#line 16829 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -15070,16 +16848,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15073: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16851: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15076: \$? = $ac_status" >&5
++ echo "$as_me:16854: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15079: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16857: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15082: \$? = $ac_status" >&5
++ echo "$as_me:16860: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_vsscanf=_doscan
+ else
+@@ -15094,25 +16872,28 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15097: result: $cf_cv_func_vsscanf" >&5
++echo "$as_me:16875: result: $cf_cv_func_vsscanf" >&5
+ echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
+
+ case $cf_cv_func_vsscanf in #(vi
+-vsscanf) cat >>confdefs.h <<\EOF
++vsscanf)
++cat >>confdefs.h <<\EOF
+ #define HAVE_VSSCANF 1
+ EOF
+ ;; #(vi
+-vfscanf) cat >>confdefs.h <<\EOF
++vfscanf)
++cat >>confdefs.h <<\EOF
+ #define HAVE_VFSCANF 1
+ EOF
+ ;; #(vi
+-_doscan) cat >>confdefs.h <<\EOF
++_doscan)
++cat >>confdefs.h <<\EOF
+ #define HAVE__DOSCAN 1
+ EOF
+ ;;
+ esac
+
+-echo "$as_me:15115: checking for working mkstemp" >&5
++echo "$as_me:16896: checking for working mkstemp" >&5
+ echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
+ if test "${cf_cv_func_mkstemp+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15120,68 +16901,10 @@
+
+ rm -rf conftest*
+ if test "$cross_compiling" = yes; then
+- echo "$as_me:15123: checking for mkstemp" >&5
+-echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
+-if test "${ac_cv_func_mkstemp+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 15129 "configure"
+-#include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char mkstemp (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char mkstemp ();
+-char (*f) ();
+-
+-int
+-main ()
+-{
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
+-choke me
+-#else
+-f = mkstemp;
+-#endif
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15160: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:15163: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15166: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:15169: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_func_mkstemp=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_mkstemp=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:15179: result: $ac_cv_func_mkstemp" >&5
+-echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
+-
++ cf_cv_func_mkstemp=maybe
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15184 "configure"
++#line 16907 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -15219,15 +16942,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15222: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16945: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15225: \$? = $ac_status" >&5
++ echo "$as_me:16948: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:15227: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16950: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15230: \$? = $ac_status" >&5
++ echo "$as_me:16953: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_mkstemp=yes
+
+@@ -15242,10 +16965,72 @@
+ fi
+
+ fi
+-echo "$as_me:15245: result: $cf_cv_func_mkstemp" >&5
++echo "$as_me:16968: result: $cf_cv_func_mkstemp" >&5
+ echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
++if test "x$cf_cv_func_mkstemp" = xmaybe ; then
++ echo "$as_me:16971: 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 16977 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char mkstemp (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char mkstemp ();
++char (*f) ();
++
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
++choke me
++#else
++f = mkstemp; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:17008: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:17011: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:17014: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:17017: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_func_mkstemp=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_func_mkstemp=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:17027: result: $ac_cv_func_mkstemp" >&5
++echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
++
++fi
+ if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_MKSTEMP 1
+ EOF
+
+@@ -15259,22 +17044,22 @@
+ HAVE_VSSCANF=0
+ fi
+
+-if test "$cross_compiling" = yes ; then
+- { echo "$as_me:15263: WARNING: cross compiling: assume setvbuf params not reversed" >&5
++if test "x$cross_compiling" = xyes ; then
++ { echo "$as_me:17048: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+ echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
+ else
+- echo "$as_me:15266: checking whether setvbuf arguments are reversed" >&5
++ echo "$as_me:17051: checking whether setvbuf arguments are reversed" >&5
+ echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
+ if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ if test "$cross_compiling" = yes; then
+- { { echo "$as_me:15272: error: cannot run test program while cross compiling" >&5
++ { { echo "$as_me:17057: error: cannot run test program while cross compiling" >&5
+ echo "$as_me: error: cannot run test program while cross compiling" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15277 "configure"
++#line 17062 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ /* If setvbuf has the reversed format, exit 0. */
+@@ -15291,15 +17076,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15294: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17079: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15297: \$? = $ac_status" >&5
++ echo "$as_me:17082: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:15299: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17084: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15302: \$? = $ac_status" >&5
++ echo "$as_me:17087: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_setvbuf_reversed=yes
+ else
+@@ -15312,7 +17097,7 @@
+ fi
+ rm -f core core.* *.core
+ fi
+-echo "$as_me:15315: result: $ac_cv_func_setvbuf_reversed" >&5
++echo "$as_me:17100: result: $ac_cv_func_setvbuf_reversed" >&5
+ echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
+ if test $ac_cv_func_setvbuf_reversed = yes; then
+
+@@ -15323,68 +17108,66 @@
+ fi
+
+ fi
+-echo "$as_me:15326: checking return type of signal handlers" >&5
+-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+-if test "${ac_cv_type_signal+set}" = set; then
++echo "$as_me:17111: checking for intptr_t" >&5
++echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6
++if test "${ac_cv_type_intptr_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15332 "configure"
++#line 17117 "configure"
+ #include "confdefs.h"
+-#include <sys/types.h>
+-#include <signal.h>
+-#ifdef signal
+-# undef signal
+-#endif
+-#ifdef __cplusplus
+-extern "C" void (*signal (int, void (*)(int)))(int);
+-#else
+-void (*signal ()) ();
+-#endif
+-
++$ac_includes_default
+ int
+ main ()
+ {
+-int i;
++if ((intptr_t *) 0)
++ return 0;
++if (sizeof (intptr_t))
++ return 0;
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15354: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17132: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:15357: \$? = $ac_status" >&5
++ echo "$as_me:17135: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:15360: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17138: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15363: \$? = $ac_status" >&5
++ echo "$as_me:17141: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_type_signal=void
++ ac_cv_type_intptr_t=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_type_signal=int
++ac_cv_type_intptr_t=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:15373: result: $ac_cv_type_signal" >&5
+-echo "${ECHO_T}$ac_cv_type_signal" >&6
++echo "$as_me:17151: result: $ac_cv_type_intptr_t" >&5
++echo "${ECHO_T}$ac_cv_type_intptr_t" >&6
++if test $ac_cv_type_intptr_t = yes; then
++ :
++else
+
+ cat >>confdefs.h <<EOF
+-#define RETSIGTYPE $ac_cv_type_signal
++#define intptr_t long
+ EOF
+
+-echo "$as_me:15380: checking for type sigaction_t" >&5
++fi
++
++echo "$as_me:17163: checking for type sigaction_t" >&5
+ echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
+ if test "${cf_cv_type_sigaction+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15387 "configure"
++#line 17170 "configure"
+ #include "confdefs.h"
+
+ #include <signal.h>
+@@ -15397,16 +17180,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15400: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17183: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:15403: \$? = $ac_status" >&5
++ echo "$as_me:17186: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:15406: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17189: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15409: \$? = $ac_status" >&5
++ echo "$as_me:17192: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_type_sigaction=yes
+ else
+@@ -15417,13 +17200,14 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+
+-echo "$as_me:15420: result: $cf_cv_type_sigaction" >&5
++echo "$as_me:17203: result: $cf_cv_type_sigaction" >&5
+ echo "${ECHO_T}$cf_cv_type_sigaction" >&6
+-test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_type_sigaction" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_TYPE_SIGACTION 1
+ EOF
+
+-echo "$as_me:15426: checking declaration of size-change" >&5
++echo "$as_me:17210: checking declaration of size-change" >&5
+ echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
+ if test "${cf_cv_sizechange+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15438,7 +17222,7 @@
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15441 "configure"
++#line 17225 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #ifdef HAVE_TERMIOS_H
+@@ -15482,16 +17266,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15485: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17269: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:15488: \$? = $ac_status" >&5
++ echo "$as_me:17272: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:15491: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17275: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15494: \$? = $ac_status" >&5
++ echo "$as_me:17278: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_sizechange=yes
+ else
+@@ -15510,10 +17294,11 @@
+ done
+
+ fi
+-echo "$as_me:15513: result: $cf_cv_sizechange" >&5
++echo "$as_me:17297: result: $cf_cv_sizechange" >&5
+ echo "${ECHO_T}$cf_cv_sizechange" >&6
+ if test "$cf_cv_sizechange" != no ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_SIZECHANGE 1
+ EOF
+
+@@ -15527,13 +17312,13 @@
+ esac
+ fi
+
+-echo "$as_me:15530: checking for memmove" >&5
++echo "$as_me:17315: checking for memmove" >&5
+ echo $ECHO_N "checking for memmove... $ECHO_C" >&6
+ if test "${ac_cv_func_memmove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15536 "configure"
++#line 17321 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char memmove (); below. */
+@@ -15556,7 +17341,7 @@
+ #if defined (__stub_memmove) || defined (__stub___memmove)
+ choke me
+ #else
+-f = memmove;
++f = memmove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -15564,16 +17349,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15567: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17352: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15570: \$? = $ac_status" >&5
++ echo "$as_me:17355: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15573: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17358: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15576: \$? = $ac_status" >&5
++ echo "$as_me:17361: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_memmove=yes
+ else
+@@ -15583,19 +17368,19 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15586: result: $ac_cv_func_memmove" >&5
++echo "$as_me:17371: result: $ac_cv_func_memmove" >&5
+ echo "${ECHO_T}$ac_cv_func_memmove" >&6
+ if test $ac_cv_func_memmove = yes; then
+ :
+ else
+
+-echo "$as_me:15592: checking for bcopy" >&5
++echo "$as_me:17377: checking for bcopy" >&5
+ echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
+ if test "${ac_cv_func_bcopy+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15598 "configure"
++#line 17383 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char bcopy (); below. */
+@@ -15618,7 +17403,7 @@
+ #if defined (__stub_bcopy) || defined (__stub___bcopy)
+ choke me
+ #else
+-f = bcopy;
++f = bcopy; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -15626,16 +17411,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15629: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17414: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15632: \$? = $ac_status" >&5
++ echo "$as_me:17417: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15635: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17420: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15638: \$? = $ac_status" >&5
++ echo "$as_me:17423: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_bcopy=yes
+ else
+@@ -15645,11 +17430,11 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15648: result: $ac_cv_func_bcopy" >&5
++echo "$as_me:17433: result: $ac_cv_func_bcopy" >&5
+ echo "${ECHO_T}$ac_cv_func_bcopy" >&6
+ if test $ac_cv_func_bcopy = yes; then
+
+- echo "$as_me:15652: checking if bcopy does overlapping moves" >&5
++ echo "$as_me:17437: checking if bcopy does overlapping moves" >&5
+ echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
+ if test "${cf_cv_good_bcopy+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15659,7 +17444,7 @@
+ cf_cv_good_bcopy=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15662 "configure"
++#line 17447 "configure"
+ #include "confdefs.h"
+
+ int main() {
+@@ -15673,15 +17458,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15676: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17461: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15679: \$? = $ac_status" >&5
++ echo "$as_me:17464: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:15681: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17466: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15684: \$? = $ac_status" >&5
++ echo "$as_me:17469: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_good_bcopy=yes
+ else
+@@ -15694,7 +17479,7 @@
+ fi
+
+ fi
+-echo "$as_me:15697: result: $cf_cv_good_bcopy" >&5
++echo "$as_me:17482: result: $cf_cv_good_bcopy" >&5
+ echo "${ECHO_T}$cf_cv_good_bcopy" >&6
+
+ else
+@@ -15702,12 +17487,14 @@
+ fi
+
+ if test "$cf_cv_good_bcopy" = yes ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define USE_OK_BCOPY 1
+ EOF
+
+ else
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define USE_MY_MEMMOVE 1
+ EOF
+
+@@ -15715,7 +17502,7 @@
+
+ fi
+
+-echo "$as_me:15718: checking if poll really works" >&5
++echo "$as_me:17505: checking if poll really works" >&5
+ echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
+ if test "${cf_cv_working_poll+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -15725,10 +17512,13 @@
+ cf_cv_working_poll=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15728 "configure"
++#line 17515 "configure"
+ #include "confdefs.h"
+
++#include <stdlib.h>
+ #include <stdio.h>
++#include <unistd.h>
++#include <fcntl.h>
+ #ifdef HAVE_POLL_H
+ #include <poll.h>
+ #else
+@@ -15738,23 +17528,46 @@
+ struct pollfd myfds;
+ int ret;
+
+- myfds.fd = 0;
++ /* check for Darwin bug with respect to "devices" */
++ myfds.fd = open("/dev/null", 1); /* O_WRONLY */
++ if (myfds.fd < 0)
++ myfds.fd = 0;
+ myfds.events = POLLIN;
++ myfds.revents = 0;
+
+ ret = poll(&myfds, 1, 100);
+- ${cf_cv_main_return:-return}(ret != 0);
++
++ if (ret < 0 || (myfds.revents & POLLNVAL)) {
++ ret = -1;
++ } else {
++ int fd = 0;
++ if (!isatty(fd)) {
++ fd = open("/dev/tty", 2); /* O_RDWR */
++ }
++
++ if (fd >= 0) {
++ /* also check with standard input */
++ myfds.fd = fd;
++ myfds.events = POLLIN;
++ myfds.revents = 0;
++ ret = poll(&myfds, 1, 100);
++ } else {
++ ret = -1;
++ }
++ }
++ ${cf_cv_main_return:-return}(ret < 0);
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15749: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17562: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15752: \$? = $ac_status" >&5
++ echo "$as_me:17565: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:15754: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17567: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15757: \$? = $ac_status" >&5
++ echo "$as_me:17570: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_working_poll=yes
+ else
+@@ -15766,20 +17579,21 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:15769: result: $cf_cv_working_poll" >&5
++echo "$as_me:17582: result: $cf_cv_working_poll" >&5
+ echo "${ECHO_T}$cf_cv_working_poll" >&6
+-test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
++test "$cf_cv_working_poll" = "yes" &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_WORKING_POLL 1
+ EOF
+
+-echo "$as_me:15775: checking for va_copy" >&5
++echo "$as_me:17589: checking for va_copy" >&5
+ echo $ECHO_N "checking for va_copy... $ECHO_C" >&6
+ if test "${cf_cv_have_va_copy+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15782 "configure"
++#line 17596 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -15796,16 +17610,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15799: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17613: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15802: \$? = $ac_status" >&5
++ echo "$as_me:17616: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15805: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17619: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15808: \$? = $ac_status" >&5
++ echo "$as_me:17622: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have_va_copy=yes
+ else
+@@ -15815,21 +17629,22 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15818: result: $cf_cv_have_va_copy" >&5
++echo "$as_me:17632: result: $cf_cv_have_va_copy" >&5
+ echo "${ECHO_T}$cf_cv_have_va_copy" >&6
+
+-test "$cf_cv_have_va_copy" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_have_va_copy" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE_VA_COPY 1
+ EOF
+
+-echo "$as_me:15825: checking for __va_copy" >&5
++echo "$as_me:17640: checking for __va_copy" >&5
+ echo $ECHO_N "checking for __va_copy... $ECHO_C" >&6
+ if test "${cf_cv_have___va_copy+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15832 "configure"
++#line 17647 "configure"
+ #include "confdefs.h"
+
+ #include <stdarg.h>
+@@ -15846,16 +17661,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15849: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17664: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15852: \$? = $ac_status" >&5
++ echo "$as_me:17667: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15855: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17670: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15858: \$? = $ac_status" >&5
++ echo "$as_me:17673: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_have___va_copy=yes
+ else
+@@ -15865,20 +17680,21 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:15868: result: $cf_cv_have___va_copy" >&5
++echo "$as_me:17683: result: $cf_cv_have___va_copy" >&5
+ echo "${ECHO_T}$cf_cv_have___va_copy" >&6
+
+-test "$cf_cv_have___va_copy" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_have___va_copy" = yes &&
++cat >>confdefs.h <<\EOF
+ #define HAVE___VA_COPY 1
+ EOF
+
+-echo "$as_me:15875: checking for pid_t" >&5
++echo "$as_me:17691: checking for pid_t" >&5
+ echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+ if test "${ac_cv_type_pid_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15881 "configure"
++#line 17697 "configure"
+ #include "confdefs.h"
+ $ac_includes_default
+ int
+@@ -15893,16 +17709,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:15896: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:17712: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:15899: \$? = $ac_status" >&5
++ echo "$as_me:17715: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:15902: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17718: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15905: \$? = $ac_status" >&5
++ echo "$as_me:17721: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_pid_t=yes
+ else
+@@ -15912,7 +17728,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:15915: result: $ac_cv_type_pid_t" >&5
++echo "$as_me:17731: result: $ac_cv_type_pid_t" >&5
+ echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+ if test $ac_cv_type_pid_t = yes; then
+ :
+@@ -15927,23 +17743,23 @@
+ for ac_header in unistd.h vfork.h
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:15930: checking for $ac_header" >&5
++echo "$as_me:17746: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15936 "configure"
++#line 17752 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:15940: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:17756: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:15946: \$? = $ac_status" >&5
++ echo "$as_me:17762: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -15962,7 +17778,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:15965: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:17781: 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
+@@ -15975,13 +17791,13 @@
+ for ac_func in fork vfork
+ do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:15978: checking for $ac_func" >&5
++echo "$as_me:17794: checking for $ac_func" >&5
+ echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 15984 "configure"
++#line 17800 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+@@ -16004,7 +17820,7 @@
+ #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+ choke me
+ #else
+-f = $ac_func;
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -16012,16 +17828,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16015: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17831: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:16018: \$? = $ac_status" >&5
++ echo "$as_me:17834: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:16021: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17837: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16024: \$? = $ac_status" >&5
++ echo "$as_me:17840: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+ else
+@@ -16031,7 +17847,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:16034: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "$as_me:17850: 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
+@@ -16043,7 +17859,7 @@
+
+ ac_cv_func_fork_works=$ac_cv_func_fork
+ if test "x$ac_cv_func_fork" = xyes; then
+- echo "$as_me:16046: checking for working fork" >&5
++ echo "$as_me:17862: checking for working fork" >&5
+ echo $ECHO_N "checking for working fork... $ECHO_C" >&6
+ if test "${ac_cv_func_fork_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16066,15 +17882,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:16069: \"$ac_link\"") >&5
++if { (eval echo "$as_me:17885: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:16072: \$? = $ac_status" >&5
++ echo "$as_me:17888: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:16074: \"$ac_try\"") >&5
++ { (eval echo "$as_me:17890: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16077: \$? = $ac_status" >&5
++ echo "$as_me:17893: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_fork_works=yes
+ else
+@@ -16086,7 +17902,7 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:16089: result: $ac_cv_func_fork_works" >&5
++echo "$as_me:17905: result: $ac_cv_func_fork_works" >&5
+ echo "${ECHO_T}$ac_cv_func_fork_works" >&6
+
+ fi
+@@ -16100,12 +17916,12 @@
+ ac_cv_func_fork_works=yes
+ ;;
+ esac
+- { echo "$as_me:16103: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
++ { echo "$as_me:17919: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
+ echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
+ fi
+ ac_cv_func_vfork_works=$ac_cv_func_vfork
+ if test "x$ac_cv_func_vfork" = xyes; then
+- echo "$as_me:16108: checking for working vfork" >&5
++ echo "$as_me:17924: checking for working vfork" >&5
+ echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
+ if test "${ac_cv_func_vfork_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16114,7 +17930,7 @@
+ ac_cv_func_vfork_works=cross
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16117 "configure"
++#line 17933 "configure"
+ #include "confdefs.h"
+ /* Thanks to Paul Eggert for this test. */
+ #include <stdio.h>
+@@ -16211,15 +18027,15 @@
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:16214: \"$ac_link\"") >&5
++if { (eval echo "$as_me:18030: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:16217: \$? = $ac_status" >&5
++ echo "$as_me:18033: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:16219: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18035: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16222: \$? = $ac_status" >&5
++ echo "$as_me:18038: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_vfork_works=yes
+ else
+@@ -16231,13 +18047,13 @@
+ rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ fi
+-echo "$as_me:16234: result: $ac_cv_func_vfork_works" >&5
++echo "$as_me:18050: result: $ac_cv_func_vfork_works" >&5
+ echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
+
+ fi;
+ if test "x$ac_cv_func_fork_works" = xcross; then
+ ac_cv_func_vfork_works=ac_cv_func_vfork
+- { echo "$as_me:16240: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
++ { echo "$as_me:18056: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
+ echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
+ fi
+
+@@ -16264,7 +18080,7 @@
+
+ # special check for test/ditto.c
+
+-echo "$as_me:16267: checking for openpty in -lutil" >&5
++echo "$as_me:18083: checking for openpty in -lutil" >&5
+ echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
+ if test "${ac_cv_lib_util_openpty+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16272,7 +18088,7 @@
+ ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lutil $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16275 "configure"
++#line 18091 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -16291,16 +18107,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16294: \"$ac_link\"") >&5
++if { (eval echo "$as_me:18110: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:16297: \$? = $ac_status" >&5
++ echo "$as_me:18113: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:16300: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18116: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16303: \$? = $ac_status" >&5
++ echo "$as_me:18119: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_util_openpty=yes
+ else
+@@ -16311,7 +18127,7 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:16314: result: $ac_cv_lib_util_openpty" >&5
++echo "$as_me:18130: result: $ac_cv_lib_util_openpty" >&5
+ echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
+ if test $ac_cv_lib_util_openpty = yes; then
+ cf_cv_lib_util=yes
+@@ -16319,91 +18135,277 @@
+ cf_cv_lib_util=no
+ fi
+
+-echo "$as_me:16322: checking for openpty header" >&5
++echo "$as_me:18138: checking for openpty header" >&5
+ echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
+ if test "${cf_cv_func_openpty+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cf_save_LIBS="$LIBS"
+- test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
++ test $cf_cv_lib_util = yes &&
++cf_add_libs="-lutil"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ for cf_header in pty.h libutil.h util.h
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16333 "configure"
++#line 18165 "configure"
++#include "confdefs.h"
++
++#include <$cf_header>
++
++int
++main ()
++{
++
++ int x = openpty((int *)0, (int *)0, (char *)0,
++ (struct termios *)0, (struct winsize *)0);
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:18182: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:18185: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:18188: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:18191: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++
++ cf_cv_func_openpty=$cf_header
++ break
++
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++
++ cf_cv_func_openpty=no
++
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ done
++ LIBS="$cf_save_LIBS"
++
++fi
++echo "$as_me:18209: result: $cf_cv_func_openpty" >&5
++echo "${ECHO_T}$cf_cv_func_openpty" >&6
++
++if test "$cf_cv_func_openpty" != no ; then
++
++cat >>confdefs.h <<EOF
++#define USE_OPENPTY_HEADER <$cf_cv_func_openpty>
++EOF
++
++cat >>confdefs.h <<\EOF
++#define USE_XTERM_PTY 1
++EOF
++
++ if test "x$cf_cv_lib_util" = xyes ; then
++
++cf_add_libs="-lutil"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $TEST_LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++TEST_LIBS="$cf_add_libs"
++
++ fi
++fi
++
++if test "$with_hashed_db" != no ; then
++
++cat >>confdefs.h <<\EOF
++#define USE_HASHED_DB 1
++EOF
++
++case $with_hashed_db in #(vi
++yes|*able*) #(vi
++ ;;
++*)
++ if test -d "$with_hashed_db" ; then
++
++if test -n "$with_hashed_db/include" ; then
++ for cf_add_incdir in $with_hashed_db/include
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
++ fi
++
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 18279 "configure"
+ #include "confdefs.h"
+-
+-#include <$cf_header>
+-
++#include <stdio.h>
+ int
+ main ()
+ {
+-
+- int x = openpty((int *)0, (int *)0, (char *)0,
+- (struct termios *)0, (struct winsize *)0);
+-
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16350: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:18291: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:16353: \$? = $ac_status" >&5
++ echo "$as_me:18294: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:16356: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:18297: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16359: \$? = $ac_status" >&5
++ echo "$as_me:18300: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- cf_cv_func_openpty=$cf_header
+- break
+-
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_have_incdir=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
+
+- cf_cv_func_openpty=no
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- done
+- LIBS="$cf_save_LIBS"
++echo "${as_me:-configure}:18317: testing adding $cf_add_incdir to include-path ..." 1>&5
++
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
+ fi
+-echo "$as_me:16377: result: $cf_cv_func_openpty" >&5
+-echo "${ECHO_T}$cf_cv_func_openpty" >&6
+
+-if test "$cf_cv_func_openpty" != no ; then
+- cat >>confdefs.h <<EOF
+-#define USE_OPENPTY_HEADER <$cf_cv_func_openpty>
+-EOF
++if test -n "$with_hashed_db/lib" ; then
++ for cf_add_libdir in $with_hashed_db/lib
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_libdir in $LDFLAGS $LIBS ; do
++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++ cf_have_libdir=yes; break
++ fi
++ done
++ fi
++ if test "$cf_have_libdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+- cat >>confdefs.h <<\EOF
+-#define USE_XTERM_PTY 1
+-EOF
++echo "${as_me:-configure}:18351: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+- if test "$cf_cv_lib_util" = yes ; then
+- TEST_LIBS="-lutil $TEST_LIBS"
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
+ fi
++ done
+ fi
+
+-if test "$with_hashed_db" != no ; then
+- cat >>confdefs.h <<\EOF
+-#define USE_HASHED_DB 1
+-EOF
++ else
++ case "$with_hashed_db" in #(vi
++ ./*|../*|/*)
++ { echo "$as_me:18362: WARNING: no such directory $with_hashed_db" >&5
++echo "$as_me: WARNING: no such directory $with_hashed_db" >&2;}
++ ;; #(vi
++ *)
+
+-case $with_hashed_db in #(vi
+-yes|*able*) #(vi
+- ;;
+-*)
+- if test -d "$with_hashed_db" ; then
++cf_search=
+
+-if test -n "$with_hashed_db/include" ; then
+- for cf_add_incdir in $with_hashed_db/include
++test "x$prefix" != "xNONE" && \
++test -d "$prefix" && \
++ {
++ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
++ test -d $prefix/include && cf_search="$cf_search $prefix/include"
++ test -d $prefix/include/$with_hashed_db && cf_search="$cf_search $prefix/include/$with_hashed_db"
++ test -d $prefix/include/$with_hashed_db/include && cf_search="$cf_search $prefix/include/$with_hashed_db/include"
++ test -d $prefix/$with_hashed_db/include && cf_search="$cf_search $prefix/$with_hashed_db/include"
++ test -d $prefix/$with_hashed_db/include/$with_hashed_db && cf_search="$cf_search $prefix/$with_hashed_db/include/$with_hashed_db"
++}
++
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/$with_hashed_db && cf_search="$cf_search $cf_subdir_prefix/include/$with_hashed_db"
++ test -d $cf_subdir_prefix/include/$with_hashed_db/include && cf_search="$cf_search $cf_subdir_prefix/include/$with_hashed_db/include"
++ test -d $cf_subdir_prefix/$with_hashed_db/include && cf_search="$cf_search $cf_subdir_prefix/$with_hashed_db/include"
++ test -d $cf_subdir_prefix/$with_hashed_db/include/$with_hashed_db && cf_search="$cf_search $cf_subdir_prefix/$with_hashed_db/include/$with_hashed_db"
++}
++
++done
++
++ for cf_item in $cf_search
++ do
++ case $cf_item in #(vi
++ */$with_hashed_db)
++
++if test -n "$cf_item" ; then
++ for cf_add_incdir in $cf_item
+ do
+ while test $cf_add_incdir != /usr/include
+ do
+@@ -16426,7 +18428,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16429 "configure"
++#line 18431 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -16438,16 +18440,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16441: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:18443: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:16444: \$? = $ac_status" >&5
++ echo "$as_me:18446: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:16447: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18449: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16450: \$? = $ac_status" >&5
++ echo "$as_me:18452: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -16464,7 +18466,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:16467: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:18469: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -16479,8 +18481,52 @@
+ done
+ fi
+
+-if test -n "$with_hashed_db/lib" ; then
+- for cf_add_libdir in $with_hashed_db/lib
++ ;;
++ esac
++ done
++
++cf_search=
++
++test "x$prefix" != "xNONE" && \
++test -d "$prefix" && \
++ {
++ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
++ test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
++ test -d $prefix/lib/$with_hashed_db && cf_search="$cf_search $prefix/lib/$with_hashed_db"
++ test -d $prefix/lib/$with_hashed_db/lib && cf_search="$cf_search $prefix/lib/$with_hashed_db/lib"
++ test -d $prefix/$with_hashed_db/lib && cf_search="$cf_search $prefix/$with_hashed_db/lib"
++ test -d $prefix/$with_hashed_db/lib/$with_hashed_db && cf_search="$cf_search $prefix/$with_hashed_db/lib/$with_hashed_db"
++}
++
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/$with_hashed_db && cf_search="$cf_search $cf_subdir_prefix/lib/$with_hashed_db"
++ test -d $cf_subdir_prefix/lib/$with_hashed_db/lib && cf_search="$cf_search $cf_subdir_prefix/lib/$with_hashed_db/lib"
++ test -d $cf_subdir_prefix/$with_hashed_db/lib && cf_search="$cf_search $cf_subdir_prefix/$with_hashed_db/lib"
++ test -d $cf_subdir_prefix/$with_hashed_db/lib/$with_hashed_db && cf_search="$cf_search $cf_subdir_prefix/$with_hashed_db/lib/$with_hashed_db"
++}
++
++done
++
++ for cf_item in $cf_search
++ do
++ case $cf_item in #(vi
++ */$with_hashed_db)
++
++if test -n "$cf_item" ; then
++ for cf_add_libdir in $cf_item
+ do
+ if test $cf_add_libdir = /usr/lib ; then
+ :
+@@ -16498,7 +18544,7 @@
+ if test "$cf_have_libdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-echo "${as_me:-configure}:16501: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:18547: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+ fi
+@@ -16506,26 +18552,32 @@
+ done
+ fi
+
++ ;;
++ esac
++ done
++
++ ;;
++ esac
+ fi
+ esac
+
+-echo "$as_me:16512: checking for db.h" >&5
++echo "$as_me:18564: checking for db.h" >&5
+ echo $ECHO_N "checking for db.h... $ECHO_C" >&6
+ if test "${ac_cv_header_db_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16518 "configure"
++#line 18570 "configure"
+ #include "confdefs.h"
+ #include <db.h>
+ _ACEOF
+-if { (eval echo "$as_me:16522: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:18574: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:16528: \$? = $ac_status" >&5
++ echo "$as_me:18580: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -16544,11 +18596,11 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:16547: result: $ac_cv_header_db_h" >&5
++echo "$as_me:18599: result: $ac_cv_header_db_h" >&5
+ echo "${ECHO_T}$ac_cv_header_db_h" >&6
+ if test $ac_cv_header_db_h = yes; then
+
+-echo "$as_me:16551: checking for version of db" >&5
++echo "$as_me:18603: checking for version of db" >&5
+ echo $ECHO_N "checking for version of db... $ECHO_C" >&6
+ if test "${cf_cv_hashed_db_version+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16556,13 +18608,13 @@
+
+ cf_cv_hashed_db_version=unknown
+
+-for cf_db_version in 1 2 3 4 5
++for cf_db_version in 1 2 3 4 5 6
+ do
+
+-echo "${as_me:-configure}:16562: testing checking for db version $cf_db_version ..." 1>&5
++echo "${as_me:-configure}:18614: testing checking for db version $cf_db_version ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16565 "configure"
++#line 18617 "configure"
+ #include "confdefs.h"
+
+ $ac_includes_default
+@@ -16592,16 +18644,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16595: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:18647: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:16598: \$? = $ac_status" >&5
++ echo "$as_me:18650: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:16601: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18653: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16604: \$? = $ac_status" >&5
++ echo "$as_me:18656: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cf_cv_hashed_db_version=$cf_db_version
+@@ -16615,16 +18667,16 @@
+ done
+
+ fi
+-echo "$as_me:16618: result: $cf_cv_hashed_db_version" >&5
++echo "$as_me:18670: result: $cf_cv_hashed_db_version" >&5
+ echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
+
+ if test "$cf_cv_hashed_db_version" = unknown ; then
+- { { echo "$as_me:16622: error: Cannot determine version of db" >&5
++ { { echo "$as_me:18674: error: Cannot determine version of db" >&5
+ echo "$as_me: error: Cannot determine version of db" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+
+-echo "$as_me:16627: checking for db libraries" >&5
++echo "$as_me:18679: checking for db libraries" >&5
+ echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
+ if test "${cf_cv_hashed_db_libs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16635,13 +18687,29 @@
+ do
+ cf_save_libs="$LIBS"
+ if test -n "$cf_db_libs"; then
+- LIBS="-l$cf_db_libs $LIBS"
++
++cf_add_libs="-l$cf_db_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ fi
+
+-echo "${as_me:-configure}:16641: testing checking for library "$cf_db_libs" ..." 1>&5
++echo "${as_me:-configure}:18709: testing checking for library "$cf_db_libs" ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16644 "configure"
++#line 18712 "configure"
+ #include "confdefs.h"
+
+ $ac_includes_default
+@@ -16696,16 +18764,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16699: \"$ac_link\"") >&5
++if { (eval echo "$as_me:18767: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:16702: \$? = $ac_status" >&5
++ echo "$as_me:18770: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:16705: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18773: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16708: \$? = $ac_status" >&5
++ echo "$as_me:18776: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ if test -n "$cf_db_libs" ; then
+@@ -16725,21 +18793,37 @@
+ done
+
+ fi
+-echo "$as_me:16728: result: $cf_cv_hashed_db_libs" >&5
++echo "$as_me:18796: result: $cf_cv_hashed_db_libs" >&5
+ echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
+
+ if test "$cf_cv_hashed_db_libs" = unknown ; then
+- { { echo "$as_me:16732: error: Cannot determine library for db" >&5
++ { { echo "$as_me:18800: error: Cannot determine library for db" >&5
+ echo "$as_me: error: Cannot determine library for db" >&2;}
+ { (exit 1); exit 1; }; }
+ elif test "$cf_cv_hashed_db_libs" != default ; then
+- LIBS="-l$cf_cv_hashed_db_libs $LIBS"
++
++cf_add_libs="-l$cf_cv_hashed_db_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ fi
+ fi
+
+ else
+
+- { { echo "$as_me:16742: error: Cannot find db.h" >&5
++ { { echo "$as_me:18826: error: Cannot find db.h" >&5
+ echo "$as_me: error: Cannot find db.h" >&2;}
+ { (exit 1); exit 1; }; }
+
+@@ -16754,7 +18838,7 @@
+
+ # Just in case, check if the C compiler has a bool type.
+
+-echo "$as_me:16757: checking if we should include stdbool.h" >&5
++echo "$as_me:18841: checking if we should include stdbool.h" >&5
+ echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
+
+ if test "${cf_cv_header_stdbool_h+set}" = set; then
+@@ -16762,7 +18846,7 @@
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16765 "configure"
++#line 18849 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -16774,23 +18858,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16777: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:18861: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:16780: \$? = $ac_status" >&5
++ echo "$as_me:18864: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:16783: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18867: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16786: \$? = $ac_status" >&5
++ echo "$as_me:18870: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_header_stdbool_h=0
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16793 "configure"
++#line 18877 "configure"
+ #include "confdefs.h"
+
+ #ifndef __BEOS__
+@@ -16806,16 +18890,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16809: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:18893: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:16812: \$? = $ac_status" >&5
++ echo "$as_me:18896: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:16815: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18899: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16818: \$? = $ac_status" >&5
++ echo "$as_me:18902: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_header_stdbool_h=1
+ else
+@@ -16829,13 +18913,13 @@
+ fi
+
+ if test "$cf_cv_header_stdbool_h" = 1
+-then echo "$as_me:16832: result: yes" >&5
++then echo "$as_me:18916: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else echo "$as_me:16834: result: no" >&5
++else echo "$as_me:18918: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+-echo "$as_me:16838: checking for builtin bool type" >&5
++echo "$as_me:18922: checking for builtin bool type" >&5
+ echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+
+ if test "${cf_cv_cc_bool_type+set}" = set; then
+@@ -16843,7 +18927,7 @@
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16846 "configure"
++#line 18930 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -16858,16 +18942,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:16861: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:18945: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:16864: \$? = $ac_status" >&5
++ echo "$as_me:18948: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:16867: \"$ac_try\"") >&5
++ { (eval echo "$as_me:18951: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16870: \$? = $ac_status" >&5
++ echo "$as_me:18954: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cc_bool_type=1
+ else
+@@ -16880,9 +18964,9 @@
+ fi
+
+ if test "$cf_cv_cc_bool_type" = 1
+-then echo "$as_me:16883: result: yes" >&5
++then echo "$as_me:18967: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else echo "$as_me:16885: result: no" >&5
++else echo "$as_me:18969: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -16904,16 +18988,32 @@
+ cf_stdcpp_libname=stdc++
+ ;;
+ esac
+-echo "$as_me:16907: checking for library $cf_stdcpp_libname" >&5
++echo "$as_me:18991: 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
+ else
+
+ cf_save="$LIBS"
+- LIBS="-l$cf_stdcpp_libname $LIBS"
++
++cf_add_libs="-l$cf_stdcpp_libname"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 16916 "configure"
++#line 19016 "configure"
+ #include "confdefs.h"
+
+ #include <strstream.h>
+@@ -16929,16 +19029,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:16932: \"$ac_link\"") >&5
++if { (eval echo "$as_me:19032: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:16935: \$? = $ac_status" >&5
++ echo "$as_me:19035: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:16938: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19038: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16941: \$? = $ac_status" >&5
++ echo "$as_me:19041: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_libstdcpp=yes
+ else
+@@ -16950,12 +19050,28 @@
+ LIBS="$cf_save"
+
+ fi
+-echo "$as_me:16953: result: $cf_cv_libstdcpp" >&5
++echo "$as_me:19053: result: $cf_cv_libstdcpp" >&5
+ echo "${ECHO_T}$cf_cv_libstdcpp" >&6
+-test "$cf_cv_libstdcpp" = yes && CXXLIBS="-l$cf_stdcpp_libname $CXXLIBS"
++test "$cf_cv_libstdcpp" = yes &&
++cf_add_libs="-l$cf_stdcpp_libname"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $CXXLIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++CXXLIBS="$cf_add_libs"
++
+ fi
+
+- echo "$as_me:16958: checking whether $CXX understands -c and -o together" >&5
++ echo "$as_me:19074: checking whether $CXX understands -c and -o together" >&5
+ echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
+ if test "${cf_cv_prog_CXX_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -16971,15 +19087,15 @@
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+-if { (eval echo "$as_me:16974: \"$ac_try\"") >&5
++if { (eval echo "$as_me:19090: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16977: \$? = $ac_status" >&5
++ echo "$as_me:19093: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- test -f conftest2.$ac_objext && { (eval echo "$as_me:16979: \"$ac_try\"") >&5
++ test -f conftest2.$ac_objext && { (eval echo "$as_me:19095: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:16982: \$? = $ac_status" >&5
++ echo "$as_me:19098: \$? = $ac_status" >&5
+ (exit $ac_status); };
+ then
+ eval cf_cv_prog_CXX_c_o=yes
+@@ -16990,10 +19106,10 @@
+
+ fi
+ if test $cf_cv_prog_CXX_c_o = yes; then
+- echo "$as_me:16993: result: yes" >&5
++ echo "$as_me:19109: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ else
+- echo "$as_me:16996: result: no" >&5
++ echo "$as_me:19112: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -17013,12 +19129,28 @@
+ ;;
+ esac
+ if test "$GXX" = yes; then
+- echo "$as_me:17016: checking for lib$cf_gpp_libname" >&5
++ echo "$as_me:19132: checking for lib$cf_gpp_libname" >&5
+ echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
+ cf_save="$LIBS"
+- LIBS="-l$cf_gpp_libname $LIBS"
++
++cf_add_libs="-l$cf_gpp_libname"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17021 "configure"
++#line 19153 "configure"
+ #include "confdefs.h"
+
+ #include <$cf_gpp_libname/builtin.h>
+@@ -17032,26 +19164,44 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:17035: \"$ac_link\"") >&5
++if { (eval echo "$as_me:19167: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:17038: \$? = $ac_status" >&5
++ echo "$as_me:19170: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:17041: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19173: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17044: \$? = $ac_status" >&5
++ echo "$as_me:19176: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cxx_library=yes
+- CXXLIBS="-l$cf_gpp_libname $CXXLIBS"
++
++cf_add_libs="-l$cf_gpp_libname"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $CXXLIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++CXXLIBS="$cf_add_libs"
++
+ if test "$cf_gpp_libname" = cpp ; then
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_GPP_BUILTIN_H 1
+ EOF
+
+ else
+- cat >>confdefs.h <<\EOF
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_GXX_BUILTIN_H 1
+ EOF
+
+@@ -17060,7 +19210,7 @@
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17063 "configure"
++#line 19213 "configure"
+ #include "confdefs.h"
+
+ #include <builtin.h>
+@@ -17074,20 +19224,36 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:17077: \"$ac_link\"") >&5
++if { (eval echo "$as_me:19227: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:17080: \$? = $ac_status" >&5
++ echo "$as_me:19230: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:17083: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19233: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17086: \$? = $ac_status" >&5
++ echo "$as_me:19236: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cxx_library=yes
+- CXXLIBS="-l$cf_gpp_libname $CXXLIBS"
+- cat >>confdefs.h <<\EOF
++
++cf_add_libs="-l$cf_gpp_libname"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $CXXLIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++CXXLIBS="$cf_add_libs"
++
++cat >>confdefs.h <<\EOF
+ #define HAVE_BUILTIN_H 1
+ EOF
+
+@@ -17100,7 +19266,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$cf_save"
+- echo "$as_me:17103: result: $cf_cxx_library" >&5
++ echo "$as_me:19269: result: $cf_cxx_library" >&5
+ echo "${ECHO_T}$cf_cxx_library" >&6
+ fi
+
+@@ -17116,7 +19282,7 @@
+ ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ ac_main_return=return
+-echo "$as_me:17119: checking how to run the C++ preprocessor" >&5
++echo "$as_me:19285: checking how to run the C++ preprocessor" >&5
+ echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+ if test -z "$CXXCPP"; then
+ if test "${ac_cv_prog_CXXCPP+set}" = set; then
+@@ -17133,18 +19299,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17136 "configure"
++#line 19302 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:17141: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:19307: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:17147: \$? = $ac_status" >&5
++ echo "$as_me:19313: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17167,17 +19333,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17170 "configure"
++#line 19336 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:17174: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:19340: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:17180: \$? = $ac_status" >&5
++ echo "$as_me:19346: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17214,7 +19380,7 @@
+ else
+ ac_cv_prog_CXXCPP=$CXXCPP
+ fi
+-echo "$as_me:17217: result: $CXXCPP" >&5
++echo "$as_me:19383: result: $CXXCPP" >&5
+ echo "${ECHO_T}$CXXCPP" >&6
+ ac_preproc_ok=false
+ for ac_cxx_preproc_warn_flag in '' yes
+@@ -17224,18 +19390,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17227 "configure"
++#line 19393 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:17232: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:19398: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:17238: \$? = $ac_status" >&5
++ echo "$as_me:19404: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17258,17 +19424,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17261 "configure"
++#line 19427 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:17265: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:19431: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:17271: \$? = $ac_status" >&5
++ echo "$as_me:19437: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17296,7 +19462,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:17299: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
++ { { echo "$as_me:19465: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+ echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -17308,26 +19474,74 @@
+ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ ac_main_return=return
+
+-for ac_header in iostream typeinfo
++for ac_header in typeinfo
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:19480: 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 19486 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:19490: \"$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:19496: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_cxx_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:19515: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
++
++fi
++done
++
++for ac_header in iostream
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:17314: checking for $ac_header" >&5
++echo "$as_me:19528: checking for $ac_header" >&5
+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+ if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17320 "configure"
++#line 19534 "configure"
+ #include "confdefs.h"
+ #include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:17324: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:19538: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:17330: \$? = $ac_status" >&5
++ echo "$as_me:19544: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_cxx_preproc_warn_flag
+@@ -17346,7 +19560,7 @@
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:17349: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "$as_me:19563: 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
+@@ -17356,11 +19570,11 @@
+ fi
+ done
+
+- if test x"$ac_cv_header_iostream" = xyes ; then
+- echo "$as_me:17360: checking if iostream uses std-namespace" >&5
++if test x"$ac_cv_header_iostream" = xyes ; then
++ echo "$as_me:19574: checking if iostream uses std-namespace" >&5
+ echo $ECHO_N "checking if iostream uses std-namespace... $ECHO_C" >&6
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 17363 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 19577 "configure"
+ #include "confdefs.h"
+
+ #include <iostream>
+@@ -17377,16 +19591,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17380: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:19594: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:17383: \$? = $ac_status" >&5
++ echo "$as_me:19597: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:17386: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19600: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17389: \$? = $ac_status" >&5
++ echo "$as_me:19603: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_iostream_namespace=yes
+ else
+@@ -17395,17 +19609,18 @@
+ cf_iostream_namespace=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- echo "$as_me:17398: result: $cf_iostream_namespace" >&5
++ echo "$as_me:19612: result: $cf_iostream_namespace" >&5
+ echo "${ECHO_T}$cf_iostream_namespace" >&6
+- if test "$cf_iostream_namespace" = yes ; then
+- cat >>confdefs.h <<\EOF
++ if test "$cf_iostream_namespace" = yes ; then
++
++cat >>confdefs.h <<\EOF
+ #define IOSTREAM_NAMESPACE 1
+ EOF
+
+- fi
+- fi
++ fi
++fi
+
+-echo "$as_me:17408: checking if we should include stdbool.h" >&5
++echo "$as_me:19623: checking if we should include stdbool.h" >&5
+ echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
+
+ if test "${cf_cv_header_stdbool_h+set}" = set; then
+@@ -17413,7 +19628,7 @@
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17416 "configure"
++#line 19631 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -17425,23 +19640,23 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17428: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:19643: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:17431: \$? = $ac_status" >&5
++ echo "$as_me:19646: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:17434: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19649: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17437: \$? = $ac_status" >&5
++ echo "$as_me:19652: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_header_stdbool_h=0
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17444 "configure"
++#line 19659 "configure"
+ #include "confdefs.h"
+
+ #ifndef __BEOS__
+@@ -17457,16 +19672,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17460: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:19675: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:17463: \$? = $ac_status" >&5
++ echo "$as_me:19678: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:17466: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19681: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17469: \$? = $ac_status" >&5
++ echo "$as_me:19684: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_header_stdbool_h=1
+ else
+@@ -17480,13 +19695,13 @@
+ fi
+
+ if test "$cf_cv_header_stdbool_h" = 1
+-then echo "$as_me:17483: result: yes" >&5
++then echo "$as_me:19698: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else echo "$as_me:17485: result: no" >&5
++else echo "$as_me:19700: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+-echo "$as_me:17489: checking for builtin bool type" >&5
++echo "$as_me:19704: checking for builtin bool type" >&5
+ echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
+
+ if test "${cf_cv_builtin_bool+set}" = set; then
+@@ -17494,7 +19709,7 @@
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17497 "configure"
++#line 19712 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -17509,16 +19724,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17512: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:19727: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:17515: \$? = $ac_status" >&5
++ echo "$as_me:19730: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:17518: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19733: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17521: \$? = $ac_status" >&5
++ echo "$as_me:19736: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_builtin_bool=1
+ else
+@@ -17531,13 +19746,13 @@
+ fi
+
+ if test "$cf_cv_builtin_bool" = 1
+-then echo "$as_me:17534: result: yes" >&5
++then echo "$as_me:19749: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+-else echo "$as_me:17536: result: no" >&5
++else echo "$as_me:19751: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+-echo "$as_me:17540: checking for size of bool" >&5
++echo "$as_me:19755: checking for size of bool" >&5
+ echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
+ if test "${cf_cv_type_of_bool+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17548,7 +19763,7 @@
+ cf_cv_type_of_bool=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17551 "configure"
++#line 19766 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -17572,7 +19787,7 @@
+
+ #endif
+
+-main()
++int main()
+ {
+ FILE *fp = fopen("cf_test.out", "w");
+ if (fp != 0) {
+@@ -17590,15 +19805,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:17593: \"$ac_link\"") >&5
++if { (eval echo "$as_me:19808: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:17596: \$? = $ac_status" >&5
++ echo "$as_me:19811: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:17598: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19813: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17601: \$? = $ac_status" >&5
++ echo "$as_me:19816: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_type_of_bool=`cat cf_test.out`
+ if test -z "$cf_cv_type_of_bool"; then
+@@ -17616,30 +19831,36 @@
+ fi
+
+ rm -f cf_test.out
+-echo "$as_me:17619: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:19834: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ if test "$cf_cv_type_of_bool" = unknown ; then
+ case .$NCURSES_BOOL in #(vi
+ .auto|.) NCURSES_BOOL=unsigned;;
+ esac
+- { echo "$as_me:17625: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++ { echo "$as_me:19840: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+ cf_cv_type_of_bool=$NCURSES_BOOL
+ fi
+
+-echo "$as_me:17630: checking for special defines needed for etip.h" >&5
++echo "$as_me:19845: checking for special defines needed for etip.h" >&5
+ echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ cf_result="none"
++
++# etip.h includes ncurses.h which includes ncurses_dll.h
++# But ncurses_dll.h is generated - fix here.
++test -d include || mkdir include
++test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' ${srcdir}/include/ncurses_dll.h.in >include/ncurses_dll.h
++
+ for cf_math in "" MATH_H
+ do
+ for cf_excp in "" MATH_EXCEPTION
+ do
+- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
++ CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
+ test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
+ test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17642 "configure"
++#line 19863 "configure"
+ #include "confdefs.h"
+
+ #include <etip.h.in>
+@@ -17653,16 +19874,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17656: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:19877: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:17659: \$? = $ac_status" >&5
++ echo "$as_me:19880: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:17662: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19883: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17665: \$? = $ac_status" >&5
++ echo "$as_me:19886: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ test -n "$cf_math" && cat >>confdefs.h <<EOF
+@@ -17674,7 +19895,7 @@
+ EOF
+
+ cf_result="$cf_math $cf_excp"
+- break
++ break 2
+
+ else
+ echo "$as_me: failed program was:" >&5
+@@ -17683,12 +19904,12 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ done
+ done
+-echo "$as_me:17686: result: $cf_result" >&5
++echo "$as_me:19907: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+ CXXFLAGS="$cf_save_CXXFLAGS"
+
+ if test -n "$CXX"; then
+-echo "$as_me:17691: checking if $CXX accepts parameter initialization" >&5
++echo "$as_me:19912: checking if $CXX accepts parameter initialization" >&5
+ echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
+ if test "${cf_cv_cpp_param_init+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17705,7 +19926,7 @@
+ cf_cv_cpp_param_init=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17708 "configure"
++#line 19929 "configure"
+ #include "confdefs.h"
+
+ class TEST {
+@@ -17720,19 +19941,19 @@
+ {
+ value = x;
+ }
+-void main() { }
++int main() { }
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:17727: \"$ac_link\"") >&5
++if { (eval echo "$as_me:19948: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:17730: \$? = $ac_status" >&5
++ echo "$as_me:19951: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:17732: \"$ac_try\"") >&5
++ { (eval echo "$as_me:19953: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17735: \$? = $ac_status" >&5
++ echo "$as_me:19956: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cpp_param_init=yes
+ else
+@@ -17751,16 +19972,17 @@
+ ac_main_return=return
+
+ fi
+-echo "$as_me:17754: result: $cf_cv_cpp_param_init" >&5
++echo "$as_me:19975: result: $cf_cv_cpp_param_init" >&5
+ echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
+ fi
+-test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_cpp_param_init" = yes &&
++cat >>confdefs.h <<\EOF
+ #define CPP_HAS_PARAM_INIT 1
+ EOF
+
+ if test -n "$CXX"; then
+
+-echo "$as_me:17763: checking if $CXX accepts static_cast" >&5
++echo "$as_me:19985: checking if $CXX accepts static_cast" >&5
+ echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
+ if test "${cf_cv_cpp_static_cast+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17774,7 +19996,7 @@
+ ac_main_return=return
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17777 "configure"
++#line 19999 "configure"
+ #include "confdefs.h"
+
+ class NCursesPanel
+@@ -17786,7 +20008,7 @@
+ int begin_x = 0)
+ {
+ }
+-
++ NCursesPanel();
+ ~NCursesPanel();
+ };
+
+@@ -17818,16 +20040,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:17821: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:20043: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:17824: \$? = $ac_status" >&5
++ echo "$as_me:20046: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:17827: \"$ac_try\"") >&5
++ { (eval echo "$as_me:20049: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17830: \$? = $ac_status" >&5
++ echo "$as_me:20052: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cpp_static_cast=yes
+ else
+@@ -17845,12 +20067,13 @@
+ ac_main_return=return
+
+ fi
+-echo "$as_me:17848: result: $cf_cv_cpp_static_cast" >&5
++echo "$as_me:20070: result: $cf_cv_cpp_static_cast" >&5
+ echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
+
+ fi
+
+-test "$cf_cv_cpp_static_cast" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_cpp_static_cast" = yes &&
++cat >>confdefs.h <<\EOF
+ #define CPP_HAS_STATIC_CAST 1
+ EOF
+
+@@ -17893,7 +20116,7 @@
+ else
+ if test "$cf_cv_header_stdbool_h" = 1 ; then
+
+-echo "$as_me:17896: checking for size of bool" >&5
++echo "$as_me:20119: checking for size of bool" >&5
+ echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
+ if test "${cf_cv_type_of_bool+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -17904,7 +20127,7 @@
+ cf_cv_type_of_bool=unknown
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 17907 "configure"
++#line 20130 "configure"
+ #include "confdefs.h"
+
+ #include <stdlib.h>
+@@ -17928,7 +20151,7 @@
+
+ #endif
+
+-main()
++int main()
+ {
+ FILE *fp = fopen("cf_test.out", "w");
+ if (fp != 0) {
+@@ -17946,15 +20169,15 @@
+
+ _ACEOF
+ rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:17949: \"$ac_link\"") >&5
++if { (eval echo "$as_me:20172: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:17952: \$? = $ac_status" >&5
++ echo "$as_me:20175: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:17954: \"$ac_try\"") >&5
++ { (eval echo "$as_me:20177: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:17957: \$? = $ac_status" >&5
++ echo "$as_me:20180: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_type_of_bool=`cat cf_test.out`
+ if test -z "$cf_cv_type_of_bool"; then
+@@ -17972,25 +20195,25 @@
+ fi
+
+ rm -f cf_test.out
+-echo "$as_me:17975: result: $cf_cv_type_of_bool" >&5
++echo "$as_me:20198: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ if test "$cf_cv_type_of_bool" = unknown ; then
+ case .$NCURSES_BOOL in #(vi
+ .auto|.) NCURSES_BOOL=unsigned;;
+ esac
+- { echo "$as_me:17981: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
++ { echo "$as_me:20204: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
+ cf_cv_type_of_bool=$NCURSES_BOOL
+ fi
+
+ else
+- echo "$as_me:17987: checking for fallback type of bool" >&5
++ echo "$as_me:20210: checking for fallback type of bool" >&5
+ echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
+ case "$host_cpu" in #(vi
+ i?86) cf_cv_type_of_bool=char ;; #(vi
+ *) cf_cv_type_of_bool=int ;;
+ esac
+- echo "$as_me:17993: result: $cf_cv_type_of_bool" >&5
++ echo "$as_me:20216: result: $cf_cv_type_of_bool" >&5
+ echo "${ECHO_T}$cf_cv_type_of_bool" >&6
+ fi
+ fi
+@@ -18019,7 +20242,7 @@
+
+ if test "$cf_with_ada" != "no" ; then
+ if test "$with_libtool" != "no"; then
+- { echo "$as_me:18022: WARNING: libtool does not support Ada - disabling feature" >&5
++ { echo "$as_me:20245: WARNING: libtool does not support Ada - disabling feature" >&5
+ echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
+ cf_with_ada=no
+ fi
+@@ -18030,7 +20253,7 @@
+ cf_ada_make=gnatmake
+ # Extract the first word of "$cf_ada_make", so it can be a program name with args.
+ set dummy $cf_ada_make; ac_word=$2
+-echo "$as_me:18033: checking for $ac_word" >&5
++echo "$as_me:20256: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_gnat_exists+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18045,7 +20268,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_gnat_exists="yes"
+-echo "$as_me:18048: found $ac_dir/$ac_word" >&5
++echo "$as_me:20271: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -18054,31 +20277,32 @@
+ fi
+ gnat_exists=$ac_cv_prog_gnat_exists
+ if test -n "$gnat_exists"; then
+- echo "$as_me:18057: result: $gnat_exists" >&5
++ echo "$as_me:20280: result: $gnat_exists" >&5
+ echo "${ECHO_T}$gnat_exists" >&6
+ else
+- echo "$as_me:18060: result: no" >&5
++ echo "$as_me:20283: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ if test "$ac_cv_prog_gnat_exists" = no; then
+ cf_ada_make=
++ cf_cv_prog_gnat_correct=no
+ else
+
+-echo "$as_me:18068: checking for gnat version" >&5
++echo "$as_me:20292: checking for gnat version" >&5
+ echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
+ cf_gnat_version=`${cf_ada_make:-gnatmake} -v 2>&1 | \
+ grep '[0-9].[0-9][0-9]*' |\
+ sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
+-echo "$as_me:18073: result: $cf_gnat_version" >&5
++echo "$as_me:20297: result: $cf_gnat_version" >&5
+ echo "${ECHO_T}$cf_gnat_version" >&6
+
+ case $cf_gnat_version in #(vi
+-3.1[1-9]*|3.[2-9]*|[4-9].*) #(vi
++3.1[1-9]*|3.[2-9]*|[4-9].*|20[0-9][0-9]) #(vi
+ cf_cv_prog_gnat_correct=yes
+ ;;
+ *)
+- { echo "$as_me:18081: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
++ { echo "$as_me:20305: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&5
+ echo "$as_me: WARNING: Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding." >&2;}
+ cf_cv_prog_gnat_correct=no
+ ;;
+@@ -18086,7 +20310,7 @@
+
+ # Extract the first word of "m4", so it can be a program name with args.
+ set dummy m4; ac_word=$2
+-echo "$as_me:18089: checking for $ac_word" >&5
++echo "$as_me:20313: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_M4_exists+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18101,7 +20325,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_M4_exists="yes"
+-echo "$as_me:18104: found $ac_dir/$ac_word" >&5
++echo "$as_me:20328: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -18110,10 +20334,10 @@
+ fi
+ M4_exists=$ac_cv_prog_M4_exists
+ if test -n "$M4_exists"; then
+- echo "$as_me:18113: result: $M4_exists" >&5
++ echo "$as_me:20337: result: $M4_exists" >&5
+ echo "${ECHO_T}$M4_exists" >&6
+ else
+- echo "$as_me:18116: result: no" >&5
++ echo "$as_me:20340: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -18122,7 +20346,7 @@
+ echo Ada95 binding required program m4 not found. Ada95 binding disabled.
+ fi
+ if test "$cf_cv_prog_gnat_correct" = yes; then
+- echo "$as_me:18125: checking if GNAT works" >&5
++ echo "$as_me:20349: checking if GNAT works" >&5
+ echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
+
+ rm -rf conftest* *~conftest*
+@@ -18150,32 +20374,50 @@
+ fi
+ rm -rf conftest* *~conftest*
+
+- echo "$as_me:18153: result: $cf_cv_prog_gnat_correct" >&5
++ echo "$as_me:20377: result: $cf_cv_prog_gnat_correct" >&5
+ echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
+ fi
+ fi
+
+- if test "$cf_cv_prog_gnat_correct" = yes; then
++ if test "x$cf_cv_prog_gnat_correct" = xyes; then
+
+ ADAFLAGS="$ADAFLAGS -gnatpn"
+
+- # make ADAFLAGS consistent with CFLAGS
+- case "$CFLAGS" in
+- *-g*)
++ echo "$as_me:20386: checking optimization options for ADAFLAGS" >&5
++echo $ECHO_N "checking optimization options for ADAFLAGS... $ECHO_C" >&6
++ case "$CFLAGS" in
++ *-g*)
+
+ ADAFLAGS="$ADAFLAGS -g"
+
+- ;;
+- esac
+- case "$CFLAGS" in
+- *-O*)
++ ;;
++ esac
++ case "$CFLAGS" in
++ *-O*)
++ cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[ ].*//'`
+
+- ADAFLAGS="$ADAFLAGS -O3"
++ ADAFLAGS="$ADAFLAGS $cf_O_flag"
+
+- ;;
+- esac
++ ;;
++ esac
++ echo "$as_me:20403: result: $ADAFLAGS" >&5
++echo "${ECHO_T}$ADAFLAGS" >&6
++
++echo "$as_me:20406: checking if GNATPREP supports -T option" >&5
++echo $ECHO_N "checking if GNATPREP supports -T option... $ECHO_C" >&6
++if test "${cf_cv_gnatprep_opt_t+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+
+-echo "$as_me:18178: checking if GNAT supports generics" >&5
++cf_cv_gnatprep_opt_t=no
++gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
++
++fi
++echo "$as_me:20416: result: $cf_cv_gnatprep_opt_t" >&5
++echo "${ECHO_T}$cf_cv_gnatprep_opt_t" >&6
++test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
++
++echo "$as_me:20420: checking if GNAT supports generics" >&5
+ echo $ECHO_N "checking if GNAT supports generics... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[1-9]*|[4-9].*) #(vi
+@@ -18185,7 +20427,7 @@
+ cf_gnat_generics=no
+ ;;
+ esac
+-echo "$as_me:18188: result: $cf_gnat_generics" >&5
++echo "$as_me:20430: result: $cf_gnat_generics" >&5
+ echo "${ECHO_T}$cf_gnat_generics" >&6
+
+ if test "$cf_gnat_generics" = yes
+@@ -18197,7 +20439,7 @@
+ cf_generic_objects=
+ fi
+
+-echo "$as_me:18200: checking if GNAT supports SIGINT" >&5
++echo "$as_me:20442: checking if GNAT supports SIGINT" >&5
+ echo $ECHO_N "checking if GNAT supports SIGINT... $ECHO_C" >&6
+ if test "${cf_cv_gnat_sigint+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -18245,7 +20487,7 @@
+ rm -rf conftest* *~conftest*
+
+ fi
+-echo "$as_me:18248: result: $cf_cv_gnat_sigint" >&5
++echo "$as_me:20490: result: $cf_cv_gnat_sigint" >&5
+ echo "${ECHO_T}$cf_cv_gnat_sigint" >&6
+
+ if test $cf_cv_gnat_sigint = yes ; then
+@@ -18254,58 +20496,18 @@
+ USE_GNAT_SIGINT="#"
+ fi
+
+-echo "$as_me:18257: checking if GNAT pragma Unreferenced works" >&5
+-echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+-if test "${cf_cv_pragma_unreferenced+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-rm -rf conftest* *~conftest*
+-cat >>conftest.ads <<CF_EOF
+-procedure conftest;
+-CF_EOF
+-cat >>conftest.adb <<CF_EOF
+-with Text_IO;
+-with GNAT.OS_Lib;
+-procedure conftest is
+- test : Integer;
+- pragma Unreferenced (test);
+-begin
+- test := 1;
+- Text_IO.Put ("Hello World");
+- Text_IO.New_Line;
+- GNAT.OS_Lib.OS_Exit (0);
+-end conftest;
+-CF_EOF
+-if ( $cf_ada_make $ADAFLAGS conftest 1>&5 2>&1 ) ; then
+- cf_cv_pragma_unreferenced=yes
+-else
+- cf_cv_pragma_unreferenced=no
+-fi
+-rm -rf conftest* *~conftest*
+-
+-fi
+-echo "$as_me:18288: result: $cf_cv_pragma_unreferenced" >&5
+-echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
+-
+-# if the pragma is supported, use it (needed in the Trace code).
+-if test $cf_cv_pragma_unreferenced = yes ; then
+- PRAGMA_UNREF=TRUE
+-else
+- PRAGMA_UNREF=FALSE
+-fi
+-
+ cf_gnat_libraries=no
+ cf_gnat_projects=no
+
+-echo "$as_me:18301: checking if GNAT supports project files" >&5
++if test "$enable_gnat_projects" != no ; then
++echo "$as_me:20503: checking if GNAT supports project files" >&5
+ echo $ECHO_N "checking if GNAT supports project files... $ECHO_C" >&6
+ case $cf_gnat_version in #(vi
+ 3.[0-9]*) #(vi
+ ;;
+ *)
+ case $cf_cv_system_name in #(vi
+- cygwin*) #(vi
++ cygwin*|msys*) #(vi
+ ;;
+ *)
+ mkdir conftest.src conftest.bin conftest.lib
+@@ -18322,14 +20524,6 @@
+ for Library_Dir use External("BUILD_DIR");
+ Source_Dir := External ("SOURCE_DIR");
+ for Source_Dirs use (Source_Dir);
+- package Compiler is
+- for Default_Switches ("Ada") use
+- ("-g",
+- "-O2",
+- "-gnatafno",
+- "-gnatVa", -- All validity checks
+- "-gnatwa"); -- Activate all optional errors
+- end Compiler;
+ end Library;
+ CF_EOF
+ cat >>confpackage.ads <<CF_EOF
+@@ -18366,14 +20560,15 @@
+ esac
+ ;;
+ esac
+-echo "$as_me:18369: result: $cf_gnat_projects" >&5
++echo "$as_me:20563: result: $cf_gnat_projects" >&5
+ echo "${ECHO_T}$cf_gnat_projects" >&6
++fi # enable_gnat_projects
+
+ if test $cf_gnat_projects = yes
+ then
+- echo "$as_me:18374: checking if GNAT supports libraries" >&5
++ echo "$as_me:20569: checking if GNAT supports libraries" >&5
+ echo $ECHO_N "checking if GNAT supports libraries... $ECHO_C" >&6
+- echo "$as_me:18376: result: $cf_gnat_libraries" >&5
++ echo "$as_me:20571: result: $cf_gnat_libraries" >&5
+ echo "${ECHO_T}$cf_gnat_libraries" >&6
+ fi
+
+@@ -18393,7 +20588,7 @@
+ USE_GNAT_LIBRARIES="#"
+ fi
+
+-echo "$as_me:18396: checking for ada-compiler" >&5
++echo "$as_me:20591: checking for ada-compiler" >&5
+ echo $ECHO_N "checking for ada-compiler... $ECHO_C" >&6
+
+ # Check whether --with-ada-compiler or --without-ada-compiler was given.
+@@ -18404,12 +20599,12 @@
+ cf_ada_compiler=gnatmake
+ fi;
+
+-echo "$as_me:18407: result: $cf_ada_compiler" >&5
++echo "$as_me:20602: result: $cf_ada_compiler" >&5
+ echo "${ECHO_T}$cf_ada_compiler" >&6
+
+ cf_ada_package=terminal_interface
+
+-echo "$as_me:18412: checking for ada-include" >&5
++echo "$as_me:20607: checking for ada-include" >&5
+ echo $ECHO_N "checking for ada-include... $ECHO_C" >&6
+
+ # Check whether --with-ada-include or --without-ada-include was given.
+@@ -18433,7 +20628,7 @@
+ ;;
+ .[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+ ;;
+-.\${*prefix}*) #(vi
++.\${*prefix}*|.\${*dir}*) #(vi
+ eval withval="$withval"
+ case ".$withval" in #(vi
+ .NONE/*)
+@@ -18445,19 +20640,19 @@
+ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+ ;;
+ *)
+- { { echo "$as_me:18448: error: expected a pathname, not \"$withval\"" >&5
++ { { echo "$as_me:20643: error: expected a pathname, not \"$withval\"" >&5
+ echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+ { (exit 1); exit 1; }; }
+ ;;
+ esac
+
+ fi
+-ADA_INCLUDE="$withval"
++eval ADA_INCLUDE="$withval"
+
+-echo "$as_me:18457: result: $ADA_INCLUDE" >&5
++echo "$as_me:20652: result: $ADA_INCLUDE" >&5
+ echo "${ECHO_T}$ADA_INCLUDE" >&6
+
+-echo "$as_me:18460: checking for ada-objects" >&5
++echo "$as_me:20655: checking for ada-objects" >&5
+ echo $ECHO_N "checking for ada-objects... $ECHO_C" >&6
+
+ # Check whether --with-ada-objects or --without-ada-objects was given.
+@@ -18471,69 +20666,310 @@
+ if test "x$prefix" != xNONE; then
+ cf_path_syntax="$prefix"
+ else
+- cf_path_syntax="$ac_default_prefix"
++ cf_path_syntax="$ac_default_prefix"
++fi
++
++case ".$withval" in #(vi
++.\$\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
++ ;;
++.\${*prefix}*|.\${*dir}*) #(vi
++ eval withval="$withval"
++ case ".$withval" in #(vi
++ .NONE/*)
++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++ esac
++ ;; #(vi
++.no|.NONE/*)
++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++*)
++ { { echo "$as_me:20691: error: expected a pathname, not \"$withval\"" >&5
++echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++esac
++
++fi
++eval ADA_OBJECTS="$withval"
++
++echo "$as_me:20700: result: $ADA_OBJECTS" >&5
++echo "${ECHO_T}$ADA_OBJECTS" >&6
++
++echo "$as_me:20703: checking if an Ada95 shared-library should be built" >&5
++echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
++
++# Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
++if test "${with_ada_sharedlib+set}" = set; then
++ withval="$with_ada_sharedlib"
++ with_ada_sharedlib=$withval
++else
++ with_ada_sharedlib=no
++fi;
++echo "$as_me:20713: result: $with_ada_sharedlib" >&5
++echo "${ECHO_T}$with_ada_sharedlib" >&6
++
++ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
++MAKE_ADA_SHAREDLIB="#"
++
++if test "x$with_ada_sharedlib" != xno
++then
++ MAKE_ADA_SHAREDLIB=
++ if test "x$with_ada_sharedlib" != xyes
++ then
++ ADA_SHAREDLIB="$with_ada_sharedlib"
++ fi
++fi
++
++ fi
++ fi
++else
++ cf_with_ada=no
++fi
++
++# do this "late" to avoid conflict with header-checks
++if test "x$with_widec" = xyes ; then
++ echo "$as_me:20736: checking for wchar_t" >&5
++echo $ECHO_N "checking for wchar_t... $ECHO_C" >&6
++if test "${ac_cv_type_wchar_t+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 20742 "configure"
++#include "confdefs.h"
++$ac_includes_default
++int
++main ()
++{
++if ((wchar_t *) 0)
++ return 0;
++if (sizeof (wchar_t))
++ return 0;
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:20757: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:20760: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:20763: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:20766: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_type_wchar_t=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_type_wchar_t=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:20776: result: $ac_cv_type_wchar_t" >&5
++echo "${ECHO_T}$ac_cv_type_wchar_t" >&6
++
++echo "$as_me:20779: checking size of wchar_t" >&5
++echo $ECHO_N "checking size of wchar_t... $ECHO_C" >&6
++if test "${ac_cv_sizeof_wchar_t+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test "$ac_cv_type_wchar_t" = yes; then
++ if test "$cross_compiling" = yes; then
++ # Depending upon the size, compute the lo and hi bounds.
++cat >conftest.$ac_ext <<_ACEOF
++#line 20788 "configure"
++#include "confdefs.h"
++$ac_includes_default
++int
++main ()
++{
++int _array_ [1 - 2 * !((sizeof (wchar_t)) >= 0)]
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:20800: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:20803: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:20806: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:20809: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_lo=0 ac_mid=0
++ while :; do
++ cat >conftest.$ac_ext <<_ACEOF
++#line 20814 "configure"
++#include "confdefs.h"
++$ac_includes_default
++int
++main ()
++{
++int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)]
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:20826: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:20829: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:20832: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:20835: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=$ac_mid; break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo=`expr $ac_mid + 1`; ac_mid=`expr 2 '*' $ac_mid + 1`
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ done
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_hi=-1 ac_mid=-1
++ while :; do
++ cat >conftest.$ac_ext <<_ACEOF
++#line 20851 "configure"
++#include "confdefs.h"
++$ac_includes_default
++int
++main ()
++{
++int _array_ [1 - 2 * !((sizeof (wchar_t)) >= $ac_mid)]
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:20863: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:20866: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:20869: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:20872: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_lo=$ac_mid; break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_hi=`expr $ac_mid - 1`; ac_mid=`expr 2 '*' $ac_mid`
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ done
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++# Binary search between lo and hi bounds.
++while test "x$ac_lo" != "x$ac_hi"; do
++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
++ cat >conftest.$ac_ext <<_ACEOF
++#line 20888 "configure"
++#include "confdefs.h"
++$ac_includes_default
++int
++main ()
++{
++int _array_ [1 - 2 * !((sizeof (wchar_t)) <= $ac_mid)]
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:20900: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:20903: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:20906: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:20909: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_hi=$ac_mid
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_lo=`expr $ac_mid + 1`
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++ac_cv_sizeof_wchar_t=$ac_lo
++else
++ if test "$cross_compiling" = yes; then
++ { { echo "$as_me:20922: 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 20927 "configure"
++#include "confdefs.h"
++$ac_includes_default
++int
++main ()
++{
++FILE *f = fopen ("conftest.val", "w");
++if (!f)
++ $ac_main_return (1);
++fprintf (f, "%d", (sizeof (wchar_t)));
++fclose (f);
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:20943: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:20946: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:20948: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:20951: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_sizeof_wchar_t=`cat conftest.val`
++else
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
+ fi
+-
+-case ".$withval" in #(vi
+-.\$\(*\)*|.\'*\'*) #(vi
+- ;;
+-..|./*|.\\*) #(vi
+- ;;
+-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+- ;;
+-.\${*prefix}*) #(vi
+- eval withval="$withval"
+- case ".$withval" in #(vi
+- .NONE/*)
+- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+- ;;
+- esac
+- ;; #(vi
+-.no|.NONE/*)
+- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+- ;;
+-*)
+- { { echo "$as_me:18496: error: expected a pathname, not \"$withval\"" >&5
+-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+- { (exit 1); exit 1; }; }
+- ;;
+-esac
+-
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+-ADA_OBJECTS="$withval"
+-
+-echo "$as_me:18505: result: $ADA_OBJECTS" >&5
+-echo "${ECHO_T}$ADA_OBJECTS" >&6
+-
+-echo "$as_me:18508: checking if an Ada95 shared-library should be built" >&5
+-echo $ECHO_N "checking if an Ada95 shared-library should be built... $ECHO_C" >&6
+-
+-# Check whether --with-ada-sharedlib or --without-ada-sharedlib was given.
+-if test "${with_ada_sharedlib+set}" = set; then
+- withval="$with_ada_sharedlib"
+- with_ada_sharedlib=$withval
++fi
++rm -f conftest.val
+ else
+- with_ada_sharedlib=no
+-fi;
+-echo "$as_me:18518: result: $with_ada_sharedlib" >&5
+-echo "${ECHO_T}$with_ada_sharedlib" >&6
+-
+-ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
+-MAKE_ADA_SHAREDLIB="#"
+-
+-if test "x$with_ada_sharedlib" != xno
+-then
+- MAKE_ADA_SHAREDLIB=
+- if test "x$with_ada_sharedlib" != xyes
+- then
+- ADA_SHAREDLIB="$with_ada_sharedlib"
+- fi
++ ac_cv_sizeof_wchar_t=0
+ fi
++fi
++echo "$as_me:20967: result: $ac_cv_sizeof_wchar_t" >&5
++echo "${ECHO_T}$ac_cv_sizeof_wchar_t" >&6
++cat >>confdefs.h <<EOF
++#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
++EOF
+
+- fi
+- fi
+-else
+- cf_with_ada=no
+ fi
+
+ ### Construct the ncurses library-subsets, if any, from this set of keywords:
+@@ -18546,11 +20982,11 @@
+ ### chooses to split module lists into libraries.
+ ###
+ ### (see CF_LIB_RULES).
+-echo "$as_me:18549: checking for library subsets" >&5
++echo "$as_me:20985: checking for library subsets" >&5
+ echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
+ LIB_SUBSETS=
+
+-if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
++if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then
+ LIB_SUBSETS="${LIB_SUBSETS}ticlib"
+ if test "$with_ticlib" != no ; then
+ LIB_SUBSETS="${LIB_SUBSETS} "
+@@ -18560,7 +20996,7 @@
+ fi
+
+ LIB_SUBSETS="${LIB_SUBSETS}termlib"
+-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+
+ if test "$with_termlib" != no ; then
+ LIB_SUBSETS="${LIB_SUBSETS} "
+@@ -18575,8 +21011,9 @@
+ if test "$with_term_driver" != no ; then
+ LIB_SUBSETS="${LIB_SUBSETS}+port_drivers"
+ case $cf_cv_system_name in #(vi
+- *mingw32*) #(vi
++ *mingw32*|*mingw64*) #(vi
+ LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
++ CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER"
+ ;;
+ *) #(vi
+ LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
+@@ -18584,29 +21021,22 @@
+ esac
+ fi
+
+-test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
++test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+
+-echo "$as_me:18590: result: $LIB_SUBSETS" >&5
++echo "$as_me:21027: result: $LIB_SUBSETS" >&5
+ echo "${ECHO_T}$LIB_SUBSETS" >&6
+
+ ### Construct the list of include-directories to be generated
+
+-CPPFLAGS="$CPPFLAGS -I. -I../include"
+ if test "$srcdir" != "."; then
+- CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
++ 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
++CPPFLAGS="-I../include $CPPFLAGS"
++if test "$srcdir" != "."; then
++ CPPFLAGS="-I\${srcdir} $CPPFLAGS"
+ fi
++CPPFLAGS="-I. $CPPFLAGS"
+
+ ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
+ if test "$srcdir" != "."; then
+@@ -18616,7 +21046,7 @@
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ elif test "$includedir" != "/usr/include"; then
+ if test "$includedir" = '${prefix}/include' ; then
+- if test $prefix != /usr ; then
++ if test x$prefix != x/usr ; then
+ ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
+ fi
+ else
+@@ -18625,7 +21055,7 @@
+ fi
+
+ ### Build up pieces for makefile rules
+-echo "$as_me:18628: checking default library suffix" >&5
++echo "$as_me:21058: checking default library suffix" >&5
+ echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -18636,36 +21066,32 @@
+ shared) DFT_ARG_SUFFIX='' ;;
+ esac
+ test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
+-echo "$as_me:18639: result: $DFT_ARG_SUFFIX" >&5
++echo "$as_me:21069: result: $DFT_ARG_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
+
+-echo "$as_me:18642: checking default library-dependency suffix" >&5
++echo "$as_me:21072: checking default library-dependency suffix" >&5
+ echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
+
+- case $DFT_LWR_MODEL in #(vi
+- libtool) #(vi
++ case X$DFT_LWR_MODEL in #(vi
++ Xlibtool) #(vi
+ DFT_LIB_SUFFIX='.la'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- normal) #(vi
+- DFT_LIB_SUFFIX='.a'
+- DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ DFT_LIB_SUFFIX='_g.a'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ DFT_LIB_SUFFIX='_p.a'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[56]*) #(vi
+- DFT_LIB_SUFFIX='.a'
++ aix[5-7]*) #(vi
++ DFT_LIB_SUFFIX='.so'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ DFT_LIB_SUFFIX='.dll'
+ DFT_DEP_SUFFIX='.dll.a'
+ ;;
+@@ -18685,17 +21111,23 @@
+ ;;
+ esac
+ ;;
+- *) DFT_LIB_SUFFIX='.so'
++ *) #(vi
++ DFT_LIB_SUFFIX='.so'
+ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+ ;;
+ esac
++ ;;
++ *)
++ DFT_LIB_SUFFIX='.a'
++ DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
+ test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
+-echo "$as_me:18695: result: $DFT_DEP_SUFFIX" >&5
++echo "$as_me:21127: result: $DFT_DEP_SUFFIX" >&5
+ echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
+
+-echo "$as_me:18698: checking default object directory" >&5
++echo "$as_me:21130: checking default object directory" >&5
+ echo $ECHO_N "checking default object directory... $ECHO_C" >&6
+
+ case $DFT_LWR_MODEL in
+@@ -18705,47 +21137,47 @@
+ profile) DFT_OBJ_SUBDIR='obj_p' ;;
+ shared)
+ case $cf_cv_system_name in #(vi
+- cygwin) #(vi
++ cygwin|msys) #(vi
+ DFT_OBJ_SUBDIR='objects' ;;
+ *)
+ DFT_OBJ_SUBDIR='obj_s' ;;
+ esac
+ esac
+-echo "$as_me:18714: result: $DFT_OBJ_SUBDIR" >&5
++echo "$as_me:21146: result: $DFT_OBJ_SUBDIR" >&5
+ echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
+
+-# libtool thinks it can make c++ shared libraries (perhaps only g++)
+-if test "$cf_with_cxx" = yes ; then
+-echo "$as_me:18719: checking c++ library-dependency suffix" >&5
++if test "x$cf_with_cxx" = xyes ; then
++echo "$as_me:21150: checking c++ library-dependency suffix" >&5
+ echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
+ if test "$with_libtool" != "no"; then
++ # libtool thinks it can make c++ shared libraries (perhaps only g++)
++ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
++elif test "$with_shared_cxx" != "no"; then
++ # also for g++ users...
+ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+ else
++ # we normally make a static library because C/C++ library rules differ
+
+- case normal in #(vi
+- libtool) #(vi
++ case Xnormal in #(vi
++ Xlibtool) #(vi
+ CXX_LIB_SUFFIX='.la'
+ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+ ;;
+- normal) #(vi
+- CXX_LIB_SUFFIX='.a'
+- CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ CXX_LIB_SUFFIX='_g.a'
+ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ CXX_LIB_SUFFIX='_p.a'
+ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[56]*) #(vi
+- CXX_LIB_SUFFIX='.a'
++ aix[5-7]*) #(vi
++ CXX_LIB_SUFFIX='.so'
+ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ CXX_LIB_SUFFIX='.dll'
+ CXX_DEP_SUFFIX='.dll.a'
+ ;;
+@@ -18765,21 +21197,28 @@
+ ;;
+ esac
+ ;;
+- *) CXX_LIB_SUFFIX='.so'
++ *) #(vi
++ CXX_LIB_SUFFIX='.so'
+ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+ ;;
+ esac
++ ;;
++ *)
++ CXX_LIB_SUFFIX='.a'
++ CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
+ test -n "$LIB_SUFFIX" && CXX_DEP_SUFFIX="${LIB_SUFFIX}${CXX_DEP_SUFFIX}"
++
+ fi
+-echo "$as_me:18776: result: $CXX_LIB_SUFFIX" >&5
++echo "$as_me:21215: result: $CXX_LIB_SUFFIX" >&5
+ echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
+
+ fi
+
+ # do not want -ldl in build except as needed for -lncurses dependency
+-if test "$with_dlsym" = yes ; then
++if test "x$with_dlsym" = xyes ; then
+ if test $DFT_LWR_MODEL = shared || \
+ test $DFT_LWR_MODEL = libtool ; then
+
+@@ -18793,7 +21232,7 @@
+ # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
+ # do not need libdl
+ TICS_LIST=
+-if test "$with_dlsym" = yes ; then
++if test "x$with_dlsym" = xyes ; then
+
+ # remove dl library from $SHLIB_LIST
+ TINFO_LIST=`echo "$SHLIB_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
+@@ -18802,7 +21241,7 @@
+
+ if test "$with_ticlib" != no ; then
+
+- if test "$with_ticlib" != yes ; then
++ if test "x$with_ticlib" != xyes ; then
+ TICS_NAME=$with_ticlib
+ TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+@@ -18812,14 +21251,16 @@
+ TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
+ TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
+ fi
+- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
++ TICS_LDFLAGS="-L${LIB_DIR}"
++ TICS_LIBS="-l${TICS_LIB_SUFFIX}"
+ else
+- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TICS_LDFLAGS="-L${LIB_DIR}"
++ TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ fi
+
+ if test "$with_termlib" != no ; then
+
+- if test "$with_termlib" != yes ; then
++ if test "x$with_termlib" != xyes ; then
+ TINFO_NAME=$with_termlib
+ TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+@@ -18837,14 +21278,22 @@
+ if test "$DFT_LWR_MODEL" = "libtool"; then
+ TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
+- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
++ TINFO_LDFLAGS="-L${LIB_DIR}"
++ TINFO_LIBS="$TEST_ARGS"
+ TICS_LIST="$SHLIB_LIST $TEST_ARGS"
+ SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
+ else
+ TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+ TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
++ if test "x$with_term_driver" != xno ; then
++ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
++ else
++ TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
++ TINFO_LIBS="$TEST_ARGS"
++ fi
++ TINFO_LDFLAGS="-L${LIB_DIR}"
+ SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ fi
+ else
+@@ -18852,25 +21301,26 @@
+ TINFO_NAME=${LIB_NAME}
+ TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+ TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
+- if test "$with_tic_depends" = yes ; then
++ if test "x$with_tic_depends" = xyes ; then
+ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ else
+ TICS_LIST="$SHLIB_LIST"
+ fi
+
+- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TINFO_LDFLAGS="-L${LIB_DIR}"
++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ fi
+
+ if test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+- cygwin*)
+- # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
++ cygwin*|msys*)
++ # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll"
+ TINFO_SUFFIX=.dll
+ ;;
+ esac
+ fi
+
+-if test "$with_dlsym" = yes ; then
++if test "x$with_dlsym" = xyes ; then
+
+ # remove dl library from $TICS_LIST
+ TICS_LIST=`echo "$TICS_LIST" | sed -e 's/-ldl[ ]//g' -e 's/-ldl$//'`
+@@ -18882,7 +21332,7 @@
+ fi
+
+ # needed for Ada95
+-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
++TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'`
+
+ case $DFT_LWR_MODEL in
+ normal|debug|profile)
+@@ -18900,7 +21350,7 @@
+ esac
+ else
+ case $cf_cv_system_name in #(
+- aix[456]*) #( from ld manpage
++ aix[4-7]*) #( from ld manpage
+ LDFLAGS_STATIC=-bstatic
+ LDFLAGS_SHARED=-bdynamic
+ ;;
+@@ -18927,19 +21377,19 @@
+
+ if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
+ then
+- echo "$as_me:18930: checking if linker supports switching between static/dynamic" >&5
++ echo "$as_me:21380: checking if linker supports switching between static/dynamic" >&5
+ echo $ECHO_N "checking if linker supports switching between static/dynamic... $ECHO_C" >&6
+
+ rm -f libconftest.a
+ cat >conftest.$ac_ext <<EOF
+-#line 18935 "configure"
++#line 21385 "configure"
+ #include <stdio.h>
+ int cf_ldflags_static(FILE *fp) { return fflush(fp); }
+ EOF
+- if { (eval echo "$as_me:18939: \"$ac_compile\"") >&5
++ if { (eval echo "$as_me:21389: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:18942: \$? = $ac_status" >&5
++ echo "$as_me:21392: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&5 1>/dev/null
+ ( eval $RANLIB libconftest.a ) 2>&5 >/dev/null
+@@ -18950,10 +21400,10 @@
+
+ LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 18953 "configure"
++#line 21403 "configure"
+ #include "confdefs.h"
+
+-#line 18956 "configure"
++#line 21406 "configure"
+ #include <stdio.h>
+ int cf_ldflags_static(FILE *fp);
+
+@@ -18968,18 +21418,28 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:18971: \"$ac_link\"") >&5
++if { (eval echo "$as_me:21421: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:18974: \$? = $ac_status" >&5
++ echo "$as_me:21424: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:18977: \"$ac_try\"") >&5
++ { (eval echo "$as_me:21427: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:18980: \$? = $ac_status" >&5
++ echo "$as_me:21430: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_ldflags_static=yes
++
++ # some linkers simply ignore the -dynamic
++ case x`file conftest$ac_exeext 2>/dev/null` in #(vi
++ *static*) # (vi
++ cf_ldflags_static=no
++ ;;
++ *)
++ cf_ldflags_static=yes
++ ;;
++ esac
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+@@ -18990,7 +21450,7 @@
+ rm -f libconftest.*
+ LIBS="$cf_save_LIBS"
+
+- echo "$as_me:18993: result: $cf_ldflags_static" >&5
++ echo "$as_me:21453: result: $cf_ldflags_static" >&5
+ echo "${ECHO_T}$cf_ldflags_static" >&6
+
+ if test $cf_ldflags_static != yes
+@@ -19006,20 +21466,25 @@
+ ;;
+ esac
+
+-echo "$as_me:19009: checking where we will install curses.h" >&5
++echo "$as_me:21469: checking where we will install curses.h" >&5
+ echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
+-test "$with_overwrite" = no && \
+-test "x$includedir" = 'x${prefix}/include' && \
+- includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
+-echo "$as_me:19014: result: $includedir" >&5
+-echo "${ECHO_T}$includedir" >&6
++
++includesubdir=
++if test "$with_overwrite" = no && \
++ ( test "x$includedir" = 'x${prefix}/include' || \
++ test "x$includedir" = "x${prefix}/include" )
++then
++ includesubdir="/ncurses${LIB_SUFFIX}"
++fi
++echo "$as_me:21479: result: ${includedir}${includesubdir}" >&5
++echo "${ECHO_T}${includedir}${includesubdir}" >&6
+
+ ### Resolve a conflict between normal and wide-curses by forcing applications
+ ### that will need libutf8 to add it to their configure script.
+ if test "$with_overwrite" != no ; then
+ if test "$NCURSES_LIBUTF8" = 1 ; then
+ NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
+- { echo "$as_me:19022: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
++ { echo "$as_me:21487: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+ echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
+ fi
+ fi
+@@ -19029,6 +21494,7 @@
+ NCURSES_TREE=
+
+ ### predefined stuff for the test programs
++
+ cat >>confdefs.h <<\EOF
+ #define HAVE_SLK_COLOR 1
+ EOF
+@@ -19036,7 +21502,7 @@
+ ### Construct the list of subdirectories for which we'll customize makefiles
+ ### with the appropriate compile-rules.
+
+-echo "$as_me:19039: checking for src modules" >&5
++echo "$as_me:21505: checking for src modules" >&5
+ echo $ECHO_N "checking for src modules... $ECHO_C" >&6
+
+ # dependencies and linker-arguments for test-programs
+@@ -19050,6 +21516,7 @@
+ TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
+ fi
+
++PC_MODULES_TO_MAKE="ncurses${DFT_ARG_SUFFIX}"
+ cf_cv_src_modules=
+ for cf_dir in $modules_to_build
+ do
+@@ -19096,10 +21563,11 @@
+ TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
+ TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
+ fi
++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${DFT_ARG_SUFFIX}"
+ fi
+ fi
+ done
+-echo "$as_me:19102: result: $cf_cv_src_modules" >&5
++echo "$as_me:21570: result: $cf_cv_src_modules" >&5
+ echo "${ECHO_T}$cf_cv_src_modules" >&6
+
+ TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
+@@ -19117,11 +21585,18 @@
+ if test "x$cf_with_tests" != "xno" ; then
+ SRC_SUBDIRS="$SRC_SUBDIRS test"
+ fi
+-test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
+-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
++# always make this, to install the ncurses-config script
++SRC_SUBDIRS="$SRC_SUBDIRS misc"
++if test "$cf_with_cxx_binding" != no; then
++ PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${DFT_ARG_SUFFIX}"
++ SRC_SUBDIRS="$SRC_SUBDIRS c++"
++fi
++
++test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
++test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
+
+ ADA_SUBDIRS=
+-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f $srcdir/Ada95/Makefile.in; then
+ SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
+ ADA_SUBDIRS="gen src"
+ if test "x$cf_with_tests" != "xno" ; then
+@@ -19143,7 +21618,7 @@
+
+ fi
+
+-if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+ SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
+ SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in"
+ fi
+@@ -19159,7 +21634,7 @@
+ profile) cf_subdir='obj_p' ;;
+ shared)
+ case $cf_cv_system_name in #(vi
+- cygwin) #(vi
++ cygwin|msys) #(vi
+ cf_subdir='objects' ;;
+ *)
+ cf_subdir='obj_s' ;;
+@@ -19181,6 +21656,7 @@
+ NCURSES_SHLIB2='sh $(top_srcdir)/misc/shlib'
+
+ # values to use as strings
++
+ cat >>confdefs.h <<EOF
+ #define NCURSES_PATHSEP '$PATH_SEPARATOR'
+ EOF
+@@ -19206,7 +21682,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -19247,7 +21723,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -19271,32 +21747,38 @@
+
+ ### Define substitutions for header files to avoid name-pollution
+
+-if test "$cf_cv_have_tcgetattr" = yes ; then
++if test "x$cf_cv_have_tcgetattr" = xyes ; then
+ HAVE_TCGETATTR=1
+ else
+ HAVE_TCGETATTR=0
+ fi
+
+-if test "$ac_cv_header_termio_h" = yes ; then
++if test "x$ac_cv_header_stdint_h" = xyes ; then
++ HAVE_STDINT_H=1
++else
++ HAVE_STDINT_H=0
++fi
++
++if test "x$ac_cv_header_termio_h" = xyes ; then
+ HAVE_TERMIO_H=1
+ else
+ HAVE_TERMIO_H=0
+ fi
+
+-if test "$ac_cv_header_termios_h" = yes ; then
++if test "x$ac_cv_header_termios_h" = xyes ; then
+ HAVE_TERMIOS_H=1
+ else
+ HAVE_TERMIOS_H=0
+ fi
+
+ ################################################################################
+-test "$use_database" = yes && \
++test "x$use_database" = xyes && \
+ SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+
+ SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
+ SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in"
+
+-if test x"$enable_pc_files" = xyes ; then \
++if test "x$enable_pc_files" = xyes ; then \
+ SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+ MAKE_PC_FILES=
+ else
+@@ -19305,7 +21787,7 @@
+
+ # Extract the first word of "tic", so it can be a program name with args.
+ set dummy tic; ac_word=$2
+-echo "$as_me:19308: checking for $ac_word" >&5
++echo "$as_me:21790: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_path_TIC_PATH+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -19322,7 +21804,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_TIC_PATH="$ac_dir/$ac_word"
+- echo "$as_me:19325: found $ac_dir/$ac_word" >&5
++ echo "$as_me:21807: found $ac_dir/$ac_word" >&5
+ break
+ fi
+ done
+@@ -19334,10 +21816,10 @@
+ TIC_PATH=$ac_cv_path_TIC_PATH
+
+ if test -n "$TIC_PATH"; then
+- echo "$as_me:19337: result: $TIC_PATH" >&5
++ echo "$as_me:21819: result: $TIC_PATH" >&5
+ echo "${ECHO_T}$TIC_PATH" >&6
+ else
+- echo "$as_me:19340: result: no" >&5
++ echo "$as_me:21822: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -19345,7 +21827,7 @@
+ then
+ if test "$TIC_PATH" = unknown
+ then
+- { echo "$as_me:19348: WARNING: no tic program found for fallbacks" >&5
++ { echo "$as_me:21830: WARNING: no tic program found for fallbacks" >&5
+ echo "$as_me: WARNING: no tic program found for fallbacks" >&2;}
+ fi
+ fi
+@@ -19358,13 +21840,74 @@
+
+ ADAHTML_DIR=../../doc/html/ada
+
+-SUB_SCRIPTS=
++# these could be configurable, but are not currently
++PANEL_NAME=panel
++MENU_NAME=menu
++FORM_NAME=form
++CXX_NAME=ncurses++
++
++# workaround for g++ versus Solaris (20131116)
+ case $cf_cv_system_name in #(vi
+-*mingw32*) #(vi
+- SUB_SCRIPTS="mk-dlls.sh"
++solaris2*) #(vi
++ case "x$CPPFLAGS" in #(vi
++ *-D_XOPEN_SOURCE_EXTENDED*)
++ test -n "$verbose" && echo " moving _XOPEN_SOURCE_EXTENDED to work around g++ problem" 1>&6
++
++echo "${as_me:-configure}:21856: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5
++
++ CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
++ CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'`
++ ;;
++ esac
++ ;;
++esac
++
++# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this.
++case "x$NCURSES_OSPEED" in #(vi
++*short*) #(vi
++ cf_compatible=1
++ ;;
++*)
++ cf_compatible=0
++ ;;
++esac
++
++cat >>confdefs.h <<EOF
++#define NCURSES_OSPEED_COMPAT $cf_compatible
++EOF
++
++case "x$cf_cv_typeof_chtype" in
++xshort|xint|xlong)
++ cf_cv_typeof_chtype="unsigned $cf_cv_typeof_chtype"
++ ;;
++esac
++
++case "x$cf_cv_typeof_mmask_t" in
++xshort|xint|xlong)
++ cf_cv_typeof_mmask_t="unsigned $cf_cv_typeof_mmask_t"
+ ;;
+ esac
+
++# substitute into misc/Makefile to suppress
++# (un)install.data from the
++# (un)install rules.
++if test "x$cf_with_db_install" = "xno"; then
++ MISC_INSTALL_DATA=
++ MISC_UNINSTALL_DATA=
++else
++ MISC_INSTALL_DATA=install.data
++ MISC_UNINSTALL_DATA=uninstall.data
++fi
++
++SUB_SCRIPTS=
++
++if test -n "$PACKAGE"
++then
++ PACKAGE="${PACKAGE}${DFT_ARG_SUFFIX}"
++ export PACKAGE
++ echo "package: $PACKAGE"
++fi
++
+ ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/ncurses_dll.h include/termcap.h include/unctrl.h $SUB_SCRIPTS $SUB_MAKEFILES Makefile"
+ ac_config_commands="$ac_config_commands default"
+ cat >confcache <<\_ACEOF
+@@ -19446,7 +21989,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:19449: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:21992: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -19578,7 +22121,7 @@
+ cat >>$CONFIG_STATUS <<EOF
+ ac_cs_version="\\
+ config.status
+-configured by $0, generated by GNU Autoconf 2.52.20101002,
++configured by $0, generated by GNU Autoconf 2.52.20141204,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+@@ -19622,7 +22165,7 @@
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+- { { echo "$as_me:19625: error: ambiguous option: $1
++ { { echo "$as_me:22168: 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;}
+@@ -19641,7 +22184,7 @@
+ ac_need_defaults=false;;
+
+ # This is an error.
+- -*) { { echo "$as_me:19644: error: unrecognized option: $1
++ -*) { { echo "$as_me:22187: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -19660,7 +22203,7 @@
+ ## Running config.status. ##
+ ## ----------------------- ##
+
+-This file was extended by $as_me 2.52.20101002, executed with
++This file was extended by $as_me 2.52.20141204, executed with
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+@@ -19682,10 +22225,11 @@
+ AWK="$AWK"
+ DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
+ DFT_LWR_MODEL="$DFT_LWR_MODEL"
+-ECHO_LINK="$ECHO_LINK"
++ECHO_LD="$ECHO_LD"
+ LDCONFIG="$LDCONFIG"
+ LIBTOOL_VERSION="$LIBTOOL_VERSION"
+ LIB_NAME="$LIB_NAME"
++LIB_PREFIX="$LIB_PREFIX"
+ LIB_SUBSETS="$LIB_SUBSETS"
+ LIB_SUFFIX="$LIB_SUFFIX"
+ LIB_TRACING="$LIB_TRACING"
+@@ -19707,7 +22251,7 @@
+ TINFO_SUFFIX="$TINFO_SUFFIX"
+ USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
+ WITH_CURSES_H="$with_curses_h"
+-WITH_ECHO="$with_echo"
++WITH_ECHO="${enable_echo:=yes}"
+ WITH_OVERWRITE="$with_overwrite"
+ cf_LIST_MODELS="$cf_list_models"
+ cf_cv_abi_version="$cf_cv_abi_version"
+@@ -19717,16 +22261,20 @@
+ cf_cv_enable_opaque="$cf_cv_enable_opaque"
+ cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
+ cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
++cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
+ cf_cv_rel_version="$cf_cv_rel_version"
+ cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
+ cf_cv_shared_soname='$cf_cv_shared_soname'
+ cf_cv_shlib_version="$cf_cv_shlib_version"
+ cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
+ cf_cv_system_name="$cf_cv_system_name"
++cf_cv_term_driver="$with_term_driver"
+ cf_with_ada="$cf_with_ada"
+ cf_with_cxx_binding="$cf_with_cxx_binding"
++cf_with_db_install="$cf_with_db_install"
+ cf_with_manpages="$cf_with_manpages"
+ cf_with_tests="$cf_with_tests"
++with_shared_cxx="$with_shared_cxx"
+ host="$host"
+ target="$target"
+
+@@ -19747,7 +22295,7 @@
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+ "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
+- *) { { echo "$as_me:19750: error: invalid argument: $ac_config_target" >&5
++ *) { { echo "$as_me:22298: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+@@ -19806,6 +22354,7 @@
+ s,@bindir@,$bindir,;t t
+ s,@sbindir@,$sbindir,;t t
+ s,@libexecdir@,$libexecdir,;t t
++s,@datarootdir@,$datarootdir,;t t
+ s,@datadir@,$datadir,;t t
+ s,@sysconfdir@,$sysconfdir,;t t
+ s,@sharedstatedir@,$sharedstatedir,;t t
+@@ -19839,6 +22388,11 @@
+ 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
++s,@VERSION@,$VERSION,;t t
++s,@VERSION_MAJOR@,$VERSION_MAJOR,;t t
++s,@VERSION_MINOR@,$VERSION_MINOR,;t t
++s,@VERSION_PATCH@,$VERSION_PATCH,;t t
++s,@PACKAGE@,$PACKAGE,;t t
+ s,@build@,$build,;t t
+ s,@build_cpu@,$build_cpu,;t t
+ s,@build_vendor@,$build_vendor,;t t
+@@ -19858,9 +22412,8 @@
+ s,@ac_ct_CC@,$ac_ct_CC,;t t
+ s,@EXEEXT@,$EXEEXT,;t t
+ s,@OBJEXT@,$OBJEXT,;t t
+-s,@CPP@,$CPP,;t t
+ s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
+-s,@PROG_EXT@,$PROG_EXT,;t t
++s,@CPP@,$CPP,;t t
+ s,@LDCONFIG@,$LDCONFIG,;t t
+ s,@CXX@,$CXX,;t t
+ s,@CXXFLAGS@,$CXXFLAGS,;t t
+@@ -19887,6 +22440,8 @@
+ s,@ac_ct_LD@,$ac_ct_LD,;t t
+ s,@AR@,$AR,;t t
+ s,@ac_ct_AR@,$ac_ct_AR,;t t
++s,@NM@,$NM,;t t
++s,@ac_ct_NM@,$ac_ct_NM,;t t
+ s,@ARFLAGS@,$ARFLAGS,;t t
+ s,@DESTDIR@,$DESTDIR,;t t
+ s,@BUILD_CC@,$BUILD_CC,;t t
+@@ -19898,8 +22453,10 @@
+ s,@BUILD_EXEEXT@,$BUILD_EXEEXT,;t t
+ s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t
+ s,@cf_list_models@,$cf_list_models,;t t
++s,@ABI_VERSION@,$ABI_VERSION,;t t
+ s,@LIBTOOL_VERSION@,$LIBTOOL_VERSION,;t t
+ s,@LIBTOOL@,$LIBTOOL,;t t
++s,@ac_ct_LIBTOOL@,$ac_ct_LIBTOOL,;t t
+ s,@LT_UNDEF@,$LT_UNDEF,;t t
+ s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
+ s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t
+@@ -19921,25 +22478,34 @@
+ s,@CC_G_OPT@,$CC_G_OPT,;t t
+ s,@CXX_G_OPT@,$CXX_G_OPT,;t t
+ s,@LD_MODEL@,$LD_MODEL,;t t
++s,@shlibdir@,$shlibdir,;t t
++s,@MAKE_DLLS@,$MAKE_DLLS,;t t
+ s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t
+ s,@LD_RPATH_OPT@,$LD_RPATH_OPT,;t t
+ s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t
+ s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t
++s,@RM_SHARED_OPTS@,$RM_SHARED_OPTS,;t t
+ s,@LINK_PROGS@,$LINK_PROGS,;t t
+ s,@LINK_TESTS@,$LINK_TESTS,;t t
+ s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t
+ s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
+ s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t
+ s,@INSTALL_LIB@,$INSTALL_LIB,;t t
++s,@RPATH_LIST@,$RPATH_LIST,;t t
++s,@EXPORT_SYMS@,$EXPORT_SYMS,;t t
++s,@VERSIONED_SYMS@,$VERSIONED_SYMS,;t t
+ s,@cf_ldd_prog@,$cf_ldd_prog,;t t
+ s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t
++s,@NCURSES_USE_DATABASE@,$NCURSES_USE_DATABASE,;t t
+ s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t
+ s,@WHICH_XTERM@,$WHICH_XTERM,;t t
++s,@XTERM_KBS@,$XTERM_KBS,;t t
+ s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
+ s,@TERMINFO@,$TERMINFO,;t t
+ s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
+ s,@USE_BIG_STRINGS@,$USE_BIG_STRINGS,;t t
+ s,@TERMPATH@,$TERMPATH,;t t
++s,@NCURSES_USE_TERMCAP@,$NCURSES_USE_TERMCAP,;t t
+ s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
+ s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
+ s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t
+@@ -19955,6 +22521,7 @@
+ s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
+ s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
+ s,@NCURSES_CCHARW_MAX@,$NCURSES_CCHARW_MAX,;t t
++s,@NCURSES_TPARM_ARG@,$NCURSES_TPARM_ARG,;t t
+ s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
+ s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
+ s,@GENERATED_EXT_FUNCS@,$GENERATED_EXT_FUNCS,;t t
+@@ -19972,6 +22539,11 @@
+ s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
+ s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t
+ s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
++s,@ECHO_LT@,$ECHO_LT,;t t
++s,@ECHO_LD@,$ECHO_LD,;t t
++s,@RULE_CC@,$RULE_CC,;t t
++s,@SHOW_CC@,$SHOW_CC,;t t
++s,@ECHO_CC@,$ECHO_CC,;t t
+ s,@ECHO_LINK@,$ECHO_LINK,;t t
+ s,@ADAFLAGS@,$ADAFLAGS,;t t
+ s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+@@ -19994,10 +22566,10 @@
+ s,@gnat_exists@,$gnat_exists,;t t
+ s,@M4_exists@,$M4_exists,;t t
+ s,@cf_ada_make@,$cf_ada_make,;t t
++s,@GNATPREP_OPTS@,$GNATPREP_OPTS,;t t
+ s,@cf_compile_generics@,$cf_compile_generics,;t t
+ s,@cf_generic_objects@,$cf_generic_objects,;t t
+ s,@USE_GNAT_SIGINT@,$USE_GNAT_SIGINT,;t t
+-s,@PRAGMA_UNREF@,$PRAGMA_UNREF,;t t
+ s,@USE_OLD_MAKERULES@,$USE_OLD_MAKERULES,;t t
+ s,@USE_GNAT_PROJECTS@,$USE_GNAT_PROJECTS,;t t
+ s,@USE_GNAT_LIBRARIES@,$USE_GNAT_LIBRARIES,;t t
+@@ -20015,14 +22587,17 @@
+ s,@TICS_ARG_SUFFIX@,$TICS_ARG_SUFFIX,;t t
+ s,@TICS_DEP_SUFFIX@,$TICS_DEP_SUFFIX,;t t
+ s,@TICS_LIB_SUFFIX@,$TICS_LIB_SUFFIX,;t t
+-s,@TICS_ARGS@,$TICS_ARGS,;t t
++s,@TICS_LDFLAGS@,$TICS_LDFLAGS,;t t
++s,@TICS_LIBS@,$TICS_LIBS,;t t
+ s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t
+ s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t
+ s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t
+-s,@TINFO_ARGS@,$TINFO_ARGS,;t t
+-s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
++s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t
++s,@TINFO_LIBS@,$TINFO_LIBS,;t t
++s,@TINFO_LDFLAGS2@,$TINFO_LDFLAGS2,;t t
+ s,@LDFLAGS_STATIC@,$LDFLAGS_STATIC,;t t
+ s,@LDFLAGS_SHARED@,$LDFLAGS_SHARED,;t t
++s,@includesubdir@,$includesubdir,;t t
+ s,@WITH_OVERWRITE@,$WITH_OVERWRITE,;t t
+ s,@TICS_LIST@,$TICS_LIST,;t t
+ s,@TINFO_LIST@,$TINFO_LIST,;t t
+@@ -20032,10 +22607,12 @@
+ s,@TEST_DEPS@,$TEST_DEPS,;t t
+ s,@TEST_ARG2@,$TEST_ARG2,;t t
+ s,@TEST_DEP2@,$TEST_DEP2,;t t
++s,@PC_MODULES_TO_MAKE@,$PC_MODULES_TO_MAKE,;t t
+ s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t
+ s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t
+ s,@NCURSES_SHLIB2@,$NCURSES_SHLIB2,;t t
+ s,@HAVE_TCGETATTR@,$HAVE_TCGETATTR,;t t
++s,@HAVE_STDINT_H@,$HAVE_STDINT_H,;t t
+ s,@HAVE_TERMIO_H@,$HAVE_TERMIO_H,;t t
+ s,@HAVE_TERMIOS_H@,$HAVE_TERMIOS_H,;t t
+ s,@MAKE_PC_FILES@,$MAKE_PC_FILES,;t t
+@@ -20043,6 +22620,12 @@
+ s,@TIC_PATH@,$TIC_PATH,;t t
+ s,@MAKE_TESTS@,$MAKE_TESTS,;t t
+ s,@ADAHTML_DIR@,$ADAHTML_DIR,;t t
++s,@PANEL_NAME@,$PANEL_NAME,;t t
++s,@MENU_NAME@,$MENU_NAME,;t t
++s,@FORM_NAME@,$FORM_NAME,;t t
++s,@CXX_NAME@,$CXX_NAME,;t t
++s,@MISC_INSTALL_DATA@,$MISC_INSTALL_DATA,;t t
++s,@MISC_UNINSTALL_DATA@,$MISC_UNINSTALL_DATA,;t t
+ CEOF
+
+ EOF
+@@ -20157,7 +22740,7 @@
+ esac
+
+ if test x"$ac_file" != x-; then
+- { echo "$as_me:20160: creating $ac_file" >&5
++ { echo "$as_me:22743: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+@@ -20175,7 +22758,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:20178: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:22761: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -20188,13 +22771,45 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:20191: error: cannot find input file: $f" >&5
++ { { echo "$as_me:22774: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ EOF
++cat >>$CONFIG_STATUS <<\EOF
++ ac_warn_datarootdir=no
++ if test x"$ac_file" != x-; then
++ for ac_item in $ac_file_inputs
++ do
++ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item`
++ if test -n "$ac_seen"; then
++ ac_used=`grep '@datarootdir@' $ac_item`
++ if test -z "$ac_used"; then
++ { echo "$as_me:22790: WARNING: datarootdir was used implicitly but not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: datarootdir was used implicitly but not set:
++$ac_seen" >&2;}
++ ac_warn_datarootdir=yes
++ fi
++ fi
++ ac_seen=`grep '${datarootdir}' $ac_item`
++ if test -n "$ac_seen"; then
++ { echo "$as_me:22799: WARNING: datarootdir was used explicitly but not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: datarootdir was used explicitly but not set:
++$ac_seen" >&2;}
++ ac_warn_datarootdir=yes
++ fi
++ done
++ fi
++
++if test "x$ac_warn_datarootdir" = xyes; then
++ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'"
++fi
++
++EOF
+ cat >>$CONFIG_STATUS <<EOF
+ sed "$ac_vpsub
+ $extrasub
+@@ -20209,11 +22824,35 @@
+ " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+- mv $tmp/out $ac_file
++ cp $tmp/out $ac_file
++
++ for ac_name in prefix exec_prefix datarootdir
++ do
++ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file`
++ if test -n "$ac_seen"; then
++ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
++ if test -z "$ac_init"; then
++ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
++ { echo "$as_me:22836: WARNING: Variable $ac_name is used but was not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: Variable $ac_name is used but was not set:
++$ac_seen" >&2;}
++ fi
++ fi
++ done
++ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out
++ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
++ if test -s $tmp/out; then
++ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
++ { echo "$as_me:22847: WARNING: Some variables may not be substituted:
++$ac_seen" >&5
++echo "$as_me: WARNING: Some variables may not be substituted:
++$ac_seen" >&2;}
++ fi
+ else
+ cat $tmp/out
+- rm -f $tmp/out
+ fi
++ rm -f $tmp/out
+
+ done
+ EOF
+@@ -20254,7 +22893,7 @@
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+- test x"$ac_file" != x- && { echo "$as_me:20257: creating $ac_file" >&5
++ test x"$ac_file" != x- && { echo "$as_me:22896: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+@@ -20265,7 +22904,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:20268: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:22907: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -20278,7 +22917,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:20281: error: cannot find input file: $f" >&5
++ { { echo "$as_me:22920: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -20336,7 +22975,7 @@
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+- { echo "$as_me:20339: $ac_file is unchanged" >&5
++ { echo "$as_me:22978: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+@@ -20394,25 +23033,20 @@
+ if test ! -d $srcdir/$cf_dir; then
+ continue
+ elif test -f $srcdir/$cf_dir/programs; then
+- $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
++ $AWK -f $srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
+ fi
+ done
+
+ fi
+
+- case $cf_cv_system_name in #(vi
+- OS/2*|os2*) #(vi
+- LIB_PREFIX=''
+- ;;
+- *) LIB_PREFIX='lib'
+- ;;
+- esac
+ cf_prefix=$LIB_PREFIX
+
+-if test $cf_cv_shlib_version = cygdll ; then
++case $cf_cv_shlib_version in #(vi
++cygdll|msysdll|mingw)
+ TINFO_NAME=$TINFO_ARG_SUFFIX
+ TINFO_SUFFIX=.dll
+-fi
++ ;;
++esac
+
+ if test -n "$TINFO_SUFFIX" ; then
+ case $TINFO_SUFFIX in
+@@ -20438,34 +23072,30 @@
+ elif test -f $srcdir/$cf_dir/modules; then
+
+ SHARED_LIB=
+- LIBS_TO_MAKE=
++ Libs_To_Make=
+ for cf_item in $cf_LIST_MODELS
+ do
+
+- case $cf_item in #(vi
+- libtool) #(vi
++ case X$cf_item in #(vi
++ Xlibtool) #(vi
+ cf_suffix='.la'
+ cf_depsuf=$cf_suffix
+ ;;
+- normal) #(vi
+- cf_suffix='.a'
+- cf_depsuf=$cf_suffix
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ cf_suffix='_g.a'
+ cf_depsuf=$cf_suffix
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ cf_suffix='_p.a'
+ cf_depsuf=$cf_suffix
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[56]*) #(vi
+- cf_suffix='.a'
++ aix[5-7]*) #(vi
++ cf_suffix='.so'
+ cf_depsuf=$cf_suffix
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ cf_suffix='.dll'
+ cf_depsuf='.dll.a'
+ ;;
+@@ -20485,83 +23115,88 @@
+ ;;
+ esac
+ ;;
+- *) cf_suffix='.so'
++ *) #(vi
++ cf_suffix='.so'
+ cf_depsuf=$cf_suffix
+ ;;
+ esac
++ ;;
++ *)
++ cf_suffix='.a'
++ cf_depsuf=$cf_suffix
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}"
+ test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}"
+
++ cf_libname=$cf_dir
++ test "$cf_dir" = c++ && cf_libname=ncurses++
+ if test $cf_item = shared ; then
+- if test "$cf_cv_do_symlinks" = yes ; then
+- case "$cf_cv_shlib_version" in #(vi
+- rel) #(vi
+- case "$cf_cv_system_name" in #(vi
+- darwin*)
+- case .${LIB_SUFFIX} in
+- .tw*)
+- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
+- cf_suffix=tw'.${REL_VERSION}'"$cf_suffix"
+- ;;
+- .t*)
+- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
+- cf_suffix=t'.${REL_VERSION}'"$cf_suffix"
+- ;;
+- .w*)
+- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+- cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
++ if test -n "${LIB_SUFFIX}"
++ then
++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
++ else
++ cf_shared_suffix="$cf_suffix"
++ fi
++ if test "$cf_cv_do_symlinks" = yes ; then
++ cf_version_name=
++
++ case "$cf_cv_shlib_version" in #(vi
++ rel) #(vi
++ cf_version_name=REL_VERSION
+ ;;
+- *)
+- cf_suffix='.${REL_VERSION}'"$cf_suffix"
++ abi)
++ cf_version_name=ABI_VERSION
+ ;;
+ esac
+- ;; #(vi
+- *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
+- esac
++
++ if test -n "$cf_version_name"
++ then
++ case "$cf_cv_system_name" in #(vi
++ darwin*)
++ # "w", etc?
++ cf_suffix="${LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
++ ;; #(vi
++ *)
++ cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
++ ;;
++ esac
++ fi
++ if test -n "${LIB_SUFFIX}"
++ then
++ cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${LIB_SUFFIX}"'//'`
++ else
++ cf_shared_suffix="$cf_suffix"
++ fi
++ fi
++ # cygwin needs import library, and has unique naming convention
++ # use autodetected ${cf_prefix} for import lib and static lib, but
++ # use 'cyg' prefix for shared lib.
++ case $cf_cv_shlib_version in #(vi
++ cygdll) #(vi
++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
++ Libs_To_Make="$Libs_To_Make ../lib/cyg${cf_libname}${cf_cygsuf}"
++ continue
+ ;;
+- abi)
+- case "$cf_cv_system_name" in #(vi
+- darwin*)
+- case .${LIB_SUFFIX} in
+- .tw*)
+- cf_suffix=`echo $cf_suffix | sed 's/^tw//'`
+- cf_suffix=tw'.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- .t*)
+- cf_suffix=`echo $cf_suffix | sed 's/^t//'`
+- cf_suffix=t'.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- .w*)
+- cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+- cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- *)
+- cf_suffix='.${ABI_VERSION}'"$cf_suffix"
+- ;;
+- esac
+- ;; #(vi
+- *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
+- esac
++ msysdll) #(vi
++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
++ Libs_To_Make="$Libs_To_Make ../lib/msys-${cf_libname}${cf_cygsuf}"
++ continue
++ ;;
++ mingw)
++ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
++ Libs_To_Make="$Libs_To_Make ../lib/lib${cf_libname}${cf_cygsuf}"
++ continue
+ ;;
+ esac
+ fi
+- # cygwin needs import library, and has unique naming convention
+- # use autodetected ${cf_prefix} for import lib and static lib, but
+- # use 'cyg' prefix for shared lib.
+- if test $cf_cv_shlib_version = cygdll ; then
+- cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
+- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
+- continue
+- fi
+- fi
+- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
++ Libs_To_Make="$Libs_To_Make ../lib/${cf_prefix}${cf_libname}${cf_suffix}"
+ done
+
+ if test $cf_dir = ncurses ; then
+ cf_subsets="$LIB_SUBSETS"
+ cf_r_parts="$cf_subsets"
+- cf_liblist="$LIBS_TO_MAKE"
++ cf_liblist="$Libs_To_Make"
+
+ while test -n "$cf_r_parts"
+ do
+@@ -20581,7 +23216,7 @@
+ ;;
+ esac
+ if test -n "$cf_item"; then
+- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
++ Libs_To_Make="$cf_item $Libs_To_Make"
+ fi
+ else
+ break
+@@ -20591,13 +23226,40 @@
+ cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
+ fi
+
+- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
++ if test $cf_dir = c++; then
++ if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
++ cf_list=
++ for cf_item in $Libs_To_Make
++ do
++ case $cf_item in
++ *.a)
++ ;;
++ *)
++ cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
++ ;;
++ esac
++ for cf_test in $cf_list
++ do
++ if test "$cf_test" = "$cf_item"
++ then
++ cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
++ cf_item=
++ break
++ fi
++ done
++ test -n "$cf_item" && cf_list="$cf_list $cf_item"
++ done
++ Libs_To_Make="$cf_list"
++ fi
++ fi
++
++ sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
+ -e "s%@SHARED_LIB@%$SHARED_LIB%" \
+ $cf_dir/Makefile >$cf_dir/Makefile.out
+ mv $cf_dir/Makefile.out $cf_dir/Makefile
+
+ $AWK -f $srcdir/mk-0th.awk \
+- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
++ libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
+ $srcdir/$cf_dir/modules >>$cf_dir/Makefile
+
+ for cf_subset in $cf_subsets
+@@ -20605,34 +23267,47 @@
+ cf_subdirs=
+ for cf_item in $cf_LIST_MODELS
+ do
++
+ echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
+
+ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+- case $cf_item in #(vi
+- libtool) #(vi
++ CXX_MODEL=$cf_ITEM
++ if test "$CXX_MODEL" = SHARED; then
++ case $cf_cv_shlib_version in #(vi
++ cygdll|msysdll|mingw) #(vi
++ test "x$with_shared_cxx" = xno && test -n "$verbose" && echo " overriding CXX_MODEL to SHARED" 1>&6
++
++echo "${as_me:-configure}:23281: testing overriding CXX_MODEL to SHARED ..." 1>&5
++
++ with_shared_cxx=yes
++ ;;
++ *)
++ test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
++ ;;
++ esac
++ fi
++
++ case X$cf_item in #(vi
++ Xlibtool) #(vi
+ cf_suffix='.la'
+ cf_depsuf=$cf_suffix
+ ;;
+- normal) #(vi
+- cf_suffix='.a'
+- cf_depsuf=$cf_suffix
+- ;;
+- debug) #(vi
++ Xdebug) #(vi
+ cf_suffix='_g.a'
+ cf_depsuf=$cf_suffix
+ ;;
+- profile) #(vi
++ Xprofile) #(vi
+ cf_suffix='_p.a'
+ cf_depsuf=$cf_suffix
+ ;;
+- shared) #(vi
++ Xshared) #(vi
+ case $cf_cv_system_name in
+- aix[56]*) #(vi
+- cf_suffix='.a'
++ aix[5-7]*) #(vi
++ cf_suffix='.so'
+ cf_depsuf=$cf_suffix
+ ;;
+- cygwin*) #(vi
++ cygwin*|msys*|mingw*) #(vi
+ cf_suffix='.dll'
+ cf_depsuf='.dll.a'
+ ;;
+@@ -20652,10 +23327,16 @@
+ ;;
+ esac
+ ;;
+- *) cf_suffix='.so'
++ *) #(vi
++ cf_suffix='.so'
+ cf_depsuf=$cf_suffix
+ ;;
+ esac
++ ;;
++ *)
++ cf_suffix='.a'
++ cf_depsuf=$cf_suffix
++ ;;
+ esac
+ test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}"
+ test -n "$LIB_SUFFIX" && cf_depsuf="${LIB_SUFFIX}${cf_depsuf}"
+@@ -20667,7 +23348,7 @@
+ profile) cf_subdir='obj_p' ;;
+ shared)
+ case $cf_cv_system_name in #(vi
+- cygwin) #(vi
++ cygwin|msys) #(vi
+ cf_subdir='objects' ;;
+ *)
+ cf_subdir='obj_s' ;;
+@@ -20688,6 +23369,8 @@
+ cf_libname=$TICS_LIB_SUFFIX
+ ;;
+ esac
++ elif test $cf_dir = c++ ; then
++ cf_libname=ncurses++$LIB_SUFFIX
+ else
+ cf_libname=${cf_libname}$LIB_SUFFIX
+ fi
+@@ -20739,10 +23422,12 @@
+ name=${cf_libname}${cf_dir_suffix} \
+ traces=$LIB_TRACING \
+ MODEL=$cf_ITEM \
++ CXX_MODEL=$CXX_MODEL \
+ model=$cf_subdir \
+ prefix=$cf_prefix \
+ suffix=$cf_suffix \
+ subset=$cf_subset \
++ driver=$cf_cv_term_driver \
+ SymLink="$LN_S" \
+ TermlibRoot=$TINFO_NAME \
+ TermlibSuffix=$TINFO_SUFFIX \
+@@ -20781,7 +23466,7 @@
+ done
+ fi
+
+- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >>Makefile
++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >>Makefile
+ done
+
+ for cf_dir in $SRC_SUBDIRS
+@@ -20796,7 +23481,7 @@
+ echo 'libs \' >> Makefile
+ echo 'install.libs \' >> Makefile
+ echo 'uninstall.libs ::' >> Makefile
+- echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} $@' >> Makefile
++ echo ' cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} $@' >> Makefile
+ ;;
+ esac
+ fi
+@@ -20819,7 +23504,7 @@
+ uninstall.libs \\
+ install.$cf_dir \\
+ uninstall.$cf_dir ::
+- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \$@
++ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \$@
+ CF_EOF
+ elif test -f $srcdir/$cf_dir/headers; then
+ cat >> Makefile <<CF_EOF
+@@ -20829,24 +23514,32 @@
+ uninstall.libs \\
+ install.includes \\
+ uninstall.includes ::
+- cd $cf_dir && \${MAKE} \${CF_MFLAGS} \$@
++ cd $cf_dir && \${MAKE} \${TOP_MFLAGS} \$@
+ CF_EOF
+ fi
+ done
+
++if test "x$cf_with_db_install" = xyes; then
+ cat >> Makefile <<CF_EOF
+
+ install.libs uninstall.libs \\
+ install.data uninstall.data ::
+-$MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \$@
++$MAKE_TERMINFO cd misc && \${MAKE} \${TOP_MFLAGS} \$@
++CF_EOF
++else
++cat >> Makefile <<CF_EOF
++
++install.libs uninstall.libs ::
++ cd misc && \${MAKE} \${TOP_MFLAGS} \$@
+ CF_EOF
++fi
+
+ if test "x$cf_with_manpages" = xyes; then
+ cat >> Makefile <<CF_EOF
+
+ install.man \\
+ uninstall.man ::
+- cd man && \${MAKE} \${CF_MFLAGS} \$@
++ cd man && \${MAKE} \${TOP_MFLAGS} \$@
+ CF_EOF
+ fi
+
+@@ -20867,7 +23560,7 @@
+
+ install.man \\
+ uninstall.man ::
+- cd tack && \${MAKE} \${CF_MFLAGS} \$@
++ cd tack && \${MAKE} \${TOP_MFLAGS} \$@
+ CF_EOF
+ fi
+ fi
+@@ -20979,7 +23672,7 @@
+ fi
+ done
+
+-if test "x$cf_with_ada" != xno ; then
++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+ if test -z "$USE_OLD_MAKERULES" ; then
+ $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
+ fi
+Index: configure.in
+Prereq: 1.520
+--- ncurses-5.9/configure.in 2011-03-28 00:22:26.000000000 +0000
++++ ncurses-5.9-20141206/configure.in 2014-11-15 01:35:36.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++dnl Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ dnl *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a *
+ dnl copy of this software and associated documentation files (the *
+@@ -28,28 +28,25 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1995-on
+ dnl
+-dnl $Id: configure.in,v 1.520 2011/03/28 00:22:26 tom Exp $
++dnl $Id: configure.in,v 1.590 2014/11/15 01:35:36 tom Exp $
+ dnl Process this file with autoconf to produce a configure script.
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
+-AC_REVISION($Revision: 1.520 $)
++AC_PREREQ(2.52.20030208)
++AC_REVISION($Revision: 1.590 $)
+ AC_INIT(ncurses/base/lib_initscr.c)
+ AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+
+ CF_TOP_BUILDDIR
+ CF_SUBST_NCURSES_VERSION
++CF_VERSION_INFO(NCURSES,ncurses)
+
+ CF_WITH_REL_VERSION(NCURSES)
+ CF_WITH_ABI_VERSION
+
+-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
+-AC_ARG_WITH(system-type,
+-[ --with-system-type=XXX test: override derived host system-type],
+-[AC_MSG_WARN(overriding system type to $withval)
+- cf_cv_system_name=$withval])
++CF_WITH_SYSTYPE
+
+ ### Save the given $CFLAGS to allow user-override.
+ cf_user_CFLAGS="$CFLAGS"
+@@ -58,15 +55,22 @@
+ CF_CFG_DEFAULTS
+
+ ### Checks for programs.
+-AC_PROG_CC
+-CF_GCC_VERSION
++AC_ARG_WITH(ada,
++ [ --without-ada suppress check for Ada95, don't build demo],
++ [cf_with_ada=$withval],
++ [cf_with_ada=yes])
++if test "x$cf_with_ada" = xyes
++then
++ cf_PROG_CC="gnatgcc gcc cc"
++else
++ cf_PROG_CC="gcc cc"
++fi
++
++CF_PROG_CC($cf_PROG_CC)
+
+ AC_PROG_CPP
+ AC_PROG_GCC_TRADITIONAL
+ CF_PROG_CC_C_O(CC)
+-AC_ISC_POSIX
+-CF_ANSI_CC_REQD
+-CF_PROG_EXT
+ CF_PROG_LDCONFIG
+
+ dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the
+@@ -89,14 +93,47 @@
+ 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++.
++
++ AC_LANG_PUSH(C++)
++ if test "x$cf_with_cxx" != xno
++ then
++ # Several of the C++ configurations do not work, particularly when
++ # cross-compiling (20140913 -TD)
++ AC_MSG_CHECKING(if $CXX works)
++
++ save_CPPFLAGS="$CPPFLAGS"
++ eval cf_includedir=${includedir}
++ CPPFLAGS="$CPPFLAGS -I${cf_includedir}"
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <stdio.h>
++],
++ [
++ printf("Hello world!\n")
++ ],
++ [cf_cxx_works=yes],
++ [cf_cxx_works=no])
++ CPPFLAGS="$save_CPPFLAGS"
++
++ AC_MSG_RESULT($cf_cxx_works)
++ if test "x$cf_cxx_works" = xno
++ then
++ AC_MSG_WARN([Ignore $CXX, since it cannot compile hello-world.])
++ cf_with_cxx=no; CXX=""; GXX="";
++ fi
++ fi
++ AC_LANG_POP
++
++ # autoconf 2.5x removed the error (hardcoding it to g++, or just blank)
+ if test "$CXX" = "g++" ; then
+ AC_PATH_PROG(CXX,g++)
+ fi
+- if test "$CXX" = "g++" ; then
+- AC_MSG_WARN(ignoring hardcoded g++)
++ case "x$CXX" in #(vi
++ x|xg++)
++ AC_MSG_WARN([You don't have any C++ compiler, too bad])
+ cf_with_cxx=no; CXX=""; GXX="";
+- fi
++ ;;
++ esac
+ fi
+
+ CF_GXX_VERSION
+@@ -116,12 +153,15 @@
+ AC_MSG_RESULT($cf_with_cxx_binding)
+
+ AC_MSG_CHECKING(if you want to build with Ada95)
+-AC_ARG_WITH(ada,
+- [ --without-ada suppress check for Ada95, don't build demo],
+- [cf_with_ada=$withval],
+- [cf_with_ada=yes])
+ AC_MSG_RESULT($cf_with_ada)
+
++AC_MSG_CHECKING(if you want to install terminal database)
++AC_ARG_ENABLE(db-install,
++ [ --disable-db-install suppress install of terminal database],
++ [cf_with_db_install=$enableval],
++ [cf_with_db_install=yes])
++AC_MSG_RESULT($cf_with_db_install)
++
+ AC_MSG_CHECKING(if you want to install manpages)
+ AC_ARG_WITH(manpages,
+ [ --without-manpages suppress install of manpages],
+@@ -131,14 +171,14 @@
+
+ AC_MSG_CHECKING(if you want to build programs such as tic)
+ AC_ARG_WITH(progs,
+- [ --without-progs suppress build with programs (e.g., tic)],
++ [ --without-progs suppress build/install with programs (e.g., tic)],
+ [cf_with_progs=$withval],
+ [cf_with_progs=yes])
+ AC_MSG_RESULT($cf_with_progs)
+
+ AC_MSG_CHECKING(if you want to build test-programs)
+ AC_ARG_WITH(tests,
+- [ --without-tests suppress build with test-programs],
++ [ --without-tests suppress build/install with test-programs],
+ [cf_with_tests=$withval],
+ [cf_with_tests=yes])
+ AC_MSG_RESULT($cf_with_tests)
+@@ -168,28 +208,8 @@
+
+ # if we find pkg-config, check if we should install the ".pc" files.
+ CF_PKG_CONFIG
+-
+-if test "$PKG_CONFIG" != no ; then
+- AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
+-
+- # Leave this as something that can be overridden in the environment.
+- if test -z "$PKG_CONFIG_LIBDIR" ; then
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
+- fi
+- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'`
+- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then
+- AC_ARG_ENABLE(pc-files,
+- [ --enable-pc-files generate and install .pc files for pkg-config],
+- [enable_pc_files=$enableval],
+- [enable_pc_files=no])
+- AC_MSG_RESULT($enable_pc_files)
+- else
+- AC_MSG_RESULT(no)
+- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
+- enable_pc_files=no
+- fi
+-fi
+-AC_SUBST(PKG_CONFIG_LIBDIR)
++CF_WITH_PKG_CONFIG_LIBDIR
++CF_ENABLE_PC_FILES
+
+ AC_MSG_CHECKING(if we should assume mixed-case filenames)
+ AC_ARG_ENABLE(mixed-case,
+@@ -201,8 +221,8 @@
+ CF_MIXEDCASE_FILENAMES
+ else
+ cf_cv_mixedcase=$enable_mixedcase
+- if test "$enable_mixedcase" = "yes" ; then
+- AC_DEFINE(MIXEDCASE_FILENAMES)
++ if test "x$enable_mixedcase" = "xyes" ; then
++ AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if tic should assume mixed-case filenames])
+ fi
+ fi
+
+@@ -215,6 +235,7 @@
+ AC_CHECK_TOOL(RANLIB, ranlib, ':')
+ AC_CHECK_TOOL(LD, ld, ld)
+ AC_CHECK_TOOL(AR, ar, ar)
++AC_CHECK_TOOL(NM, nm, nm)
+ CF_AR_FLAGS
+
+ dnl Special option for use by system-builders: the install-prefix is used to
+@@ -223,8 +244,8 @@
+ AC_MSG_CHECKING(if you have specified an install-prefix)
+ AC_ARG_WITH(install-prefix,
+ [ --with-install-prefix prefixes actual install-location ($DESTDIR)],
+- [case "$withval" in #(vi
+- yes|no) #(vi
++ [case "x$withval" in #(vi
++ xyes|xno) #(vi
+ ;;
+ *) DESTDIR="$withval"
+ ;;
+@@ -261,7 +282,7 @@
+ [with_shared=$withval],
+ [with_shared=no])
+ AC_MSG_RESULT($with_shared)
+-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
++test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared"
+
+ AC_MSG_CHECKING(if you want to build static libraries)
+ AC_ARG_WITH(normal,
+@@ -269,7 +290,7 @@
+ [with_normal=$withval],
+ [with_normal=yes])
+ AC_MSG_RESULT($with_normal)
+-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
++test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal"
+
+ AC_MSG_CHECKING(if you want to build debug libraries)
+ AC_ARG_WITH(debug,
+@@ -277,7 +298,7 @@
+ [with_debug=$withval],
+ [with_debug=yes])
+ AC_MSG_RESULT($with_debug)
+-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
++test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug"
+
+ AC_MSG_CHECKING(if you want to build profiling libraries)
+ AC_ARG_WITH(profile,
+@@ -285,10 +306,21 @@
+ [with_profile=$withval],
+ [with_profile=no])
+ AC_MSG_RESULT($with_profile)
+-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
++test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile"
+
+ fi
+
++if test "X$cf_with_cxx_binding" != Xno; then
++if test "x$with_shared" = "xyes"; then
++AC_MSG_CHECKING(if you want to build C++ shared libraries)
++AC_ARG_WITH(cxx-shared,
++ [ --with-cxx-shared generate C++ shared-libraries],
++ [with_shared_cxx=$withval],
++ [with_shared_cxx=no])
++AC_MSG_RESULT($with_shared_cxx)
++fi
++fi
++
+ ###############################################################################
+
+ AC_MSG_CHECKING(for specified models)
+@@ -321,12 +353,11 @@
+ LIB_DIR=../lib
+ LIB_2ND=../../lib
+
+-CF_LIB_PREFIX(cf_prefix)
+-LIB_PREFIX=$cf_prefix
+-AC_SUBST(LIB_PREFIX)
++CF_WITH_LIB_PREFIX(cf_prefix)
+
+ LIB_SUFFIX=
+ AC_SUBST(LIB_SUFFIX)
++CF_PATHSEP
+
+ ###############################################################################
+
+@@ -354,21 +385,21 @@
+ [with_dlsym=$withval],
+ [with_dlsym=yes])
+ AC_MSG_RESULT($with_dlsym)
+- if test "$with_dlsym" = yes ; then
++ if test "x$with_dlsym" = xyes ; then
+ CF_FUNC_DLSYM
+- if test "$with_gpm" != yes ; then
++ if test "x$with_gpm" != xyes ; then
+ CF_VERBOSE(assuming soname for gpm is $with_gpm)
+ cf_cv_gpm_soname="$with_gpm"
+ else
+ CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
+ fi
+- test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
++ test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[Define as needed to set the gpm share library soname])
+ SHLIB_LIST="-ldl $SHLIB_LIST"
+ else
+ SHLIB_LIST="-lgpm $SHLIB_LIST"
+ CF_ADD_LIB(gpm,TEST_LIBS)
+ fi
+- AC_DEFINE(HAVE_LIBGPM)
++ AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
+ CF_CHECK_GPM_WGETCH
+ fi
+
+@@ -378,13 +409,13 @@
+
+ if test X"$CC_G_OPT" = X"" ; then
+ CC_G_OPT='-g'
+- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
++ test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT=''
+ fi
+ AC_SUBST(CC_G_OPT)
+
+ if test X"$CXX_G_OPT" = X"" ; then
+ CXX_G_OPT='-g'
+- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
++ test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT=''
+ fi
+ AC_SUBST(CXX_G_OPT)
+
+@@ -411,14 +442,31 @@
+ ;;
+ esac
+
++# we will build libraries one-level down.
++rel_builddir=..
+ CF_SHARED_OPTS
+-if test "$CC_SHARED_OPTS" = "unknown"; then
+- for model in $cf_list_models; do
+- if test "$model" = "shared"; then
++for model in $cf_list_models; do
++ case $model in #(vi
++ libtool)
++ CF_WITH_LIBTOOL_OPTS
++ CF_WITH_EXPORT_SYMS
++ ;;
++ shared) #(vi
++ if test "$CC_SHARED_OPTS" = "unknown"; then
+ AC_ERROR(Shared libraries are not supported in this version)
+ fi
+- done
+-fi
++ CF_WITH_VERSIONED_SYMS
++ ;;
++ esac
++done
++
++# pretend that ncurses==ncursesw==ncursest
++AC_MSG_CHECKING(if you want to disable library suffixes)
++AC_ARG_ENABLE(lib-suffixes,
++ [ --disable-lib-suffixes disable library suffixes],
++ [disable_lib_suffixes=$enableval],
++ [disable_lib_suffixes=no])
++AC_MSG_RESULT($disable_lib_suffixes)
+
+ ### If we're building with rpath, try to link non-standard libs that way too.
+ if test "$DFT_LWR_MODEL" = "shared"; then
+@@ -453,9 +501,9 @@
+ esac
+ AC_SUBST(TERMINFO_SRC)
+
+-CF_PATHSEP
++NCURSES_USE_DATABASE=0
+ if test "$use_database" != no ; then
+- AC_DEFINE(USE_DATABASE)
++ NCURSES_USE_DATABASE=1
+
+ AC_MSG_CHECKING(which terminfo source-file will be installed)
+ AC_ARG_WITH(database,
+@@ -471,6 +519,7 @@
+ else
+ with_hashed_db=no
+ fi
++AC_SUBST(NCURSES_USE_DATABASE)
+
+ AC_MSG_CHECKING(for list of fallback descriptions)
+ AC_ARG_WITH(fallbacks,
+@@ -494,6 +543,26 @@
+ WHICH_XTERM=$with_xterm_new
+ AC_SUBST(WHICH_XTERM)
+
++AC_MSG_CHECKING(if xterm backspace sends BS or DEL)
++AC_ARG_WITH(xterm-kbs,
++ [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL],
++ [with_xterm_kbs=$withval],
++ [with_xterm_kbs=BS])
++case x$with_xterm_kbs in
++xyes|xno|xBS|xbs|x8)
++ with_xterm_kbs=BS
++ ;;
++xDEL|xdel|x127)
++ with_xterm_kbs=DEL
++ ;;
++*)
++ with_xterm_kbs=$withval
++ ;;
++esac
++AC_MSG_RESULT($with_xterm_kbs)
++XTERM_KBS=$with_xterm_kbs
++AC_SUBST(XTERM_KBS)
++
+ MAKE_TERMINFO=
+ if test "$use_database" = no ; then
+ TERMINFO="${datadir}/terminfo"
+@@ -507,7 +576,7 @@
+ DATADIR/terminfo,
+ ${datadir}/terminfo)
+ AC_MSG_RESULT($TERMINFO_DIRS)
+-test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS")
++test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist])
+
+ AC_MSG_CHECKING(for default terminfo directory)
+ CF_WITH_PATH(default-terminfo-dir,
+@@ -516,7 +585,7 @@
+ DATADIR/terminfo,
+ ${datadir}/terminfo)
+ AC_MSG_RESULT($TERMINFO)
+-AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO")
++AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[Define to set the default terminal database path])
+
+ fi
+
+@@ -543,7 +612,7 @@
+ [with_big_core=no],
+ [with_big_core=no])])
+ AC_MSG_RESULT($with_big_core)
+-test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
++test "x$with_big_core" = "xyes" && AC_DEFINE(HAVE_BIG_CORE,1,[Define to 1 if machine has ample memory for tic])
+
+ ### ISO C only guarantees 512-char strings, we have tables which load faster
+ ### when constructed using "big" strings. More than the C compiler, the awk
+@@ -556,7 +625,7 @@
+ AC_MSG_RESULT($with_big_strings)
+
+ USE_BIG_STRINGS=0
+-test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
++test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1
+ AC_SUBST(USE_BIG_STRINGS)
+
+ ### use option --enable-termcap to compile in the termcap fallback support
+@@ -567,46 +636,48 @@
+ [with_termcap=no])
+ AC_MSG_RESULT($with_termcap)
+
+-if test "$with_termcap" != "yes" ; then
++NCURSES_USE_TERMCAP=0
++if test "x$with_termcap" != "xyes" ; then
+ if test "$use_database" = no ; then
+ if test -z "$with_fallback" ; then
+ AC_ERROR(You have disabled the database w/o specifying fallbacks)
+ fi
+ fi
+- AC_DEFINE(PURE_TERMINFO)
++ AC_DEFINE(PURE_TERMINFO,1,[Define to 1 if we should support only terminfo])
+ else
+
+-if test "$with_ticlib" != no ; then
+- AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
+-fi
++ if test "$with_ticlib" != no ; then
++ AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
++ fi
+
+-AC_DEFINE(USE_TERMCAP)
+-AC_MSG_CHECKING(for list of termcap files)
+-CF_WITH_PATHLIST(termpath,
+- [ --with-termpath=XXX specify list of termcap files],
+- TERMPATH,
+- /etc/termcap:/usr/share/misc/termcap)
+-AC_MSG_RESULT($TERMPATH)
+-test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
+-
+-### use option --enable-getcap to use a hacked getcap for reading termcaps
+-AC_MSG_CHECKING(if fast termcap-loader is needed)
+-AC_ARG_ENABLE(getcap,
+- [ --enable-getcap fast termcap load, no xrefs to terminfo],
+- [with_getcap=$enableval],
+- [with_getcap=no])
+-AC_MSG_RESULT($with_getcap)
+-test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
+-
+-AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
+-AC_ARG_ENABLE(getcap-cache,
+- [ --enable-getcap-cache cache translated termcaps in ~/.terminfo],
+- [with_getcap_cache=$enableval],
+- [with_getcap_cache=no])
+-AC_MSG_RESULT($with_getcap_cache)
+-test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
++ NCURSES_USE_TERMCAP=1
++ AC_MSG_CHECKING(for list of termcap files)
++ CF_WITH_PATHLIST(termpath,
++ [ --with-termpath=XXX specify list of termcap files],
++ TERMPATH,
++ /etc/termcap:/usr/share/misc/termcap)
++ AC_MSG_RESULT($TERMPATH)
++ test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[Define to set the termcap searchlist])
++
++ ### use option --enable-getcap to use a hacked getcap for reading termcaps
++ AC_MSG_CHECKING(if fast termcap-loader is needed)
++ AC_ARG_ENABLE(getcap,
++ [ --enable-getcap fast termcap load, no xrefs to terminfo],
++ [with_getcap=$enableval],
++ [with_getcap=no])
++ AC_MSG_RESULT($with_getcap)
++ test "x$with_getcap" = "xyes" && AC_DEFINE(USE_GETCAP,1,[Define to 1 to use fast termcap-loader])
++
++ AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
++ AC_ARG_ENABLE(getcap-cache,
++ [ --enable-getcap-cache cache translated termcaps in ~/.terminfo],
++ [with_getcap_cache=$enableval],
++ [with_getcap_cache=no])
++ AC_MSG_RESULT($with_getcap_cache)
++ test "x$with_getcap_cache" = "xyes" && AC_DEFINE(USE_GETCAP_CACHE,1,[Define to 1 if translated termcap should be stored in $HOME/.terminfo])
+
+ fi
++AC_SUBST(NCURSES_USE_TERMCAP)
+
+ ### Use option --disable-home-terminfo to completely remove ~/.terminfo
+ AC_MSG_CHECKING(if ~/.terminfo is wanted)
+@@ -615,7 +686,7 @@
+ [with_home_terminfo=$enableval],
+ [with_home_terminfo=yes])
+ AC_MSG_RESULT($with_home_terminfo)
+-test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
++test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted])
+
+ AC_MSG_CHECKING(if you want to use restricted environment when running as root)
+ AC_ARG_ENABLE(root-environ,
+@@ -623,7 +694,7 @@
+ [with_root_environ=$enableval],
+ [with_root_environ=yes])
+ AC_MSG_RESULT($with_root_environ)
+-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
++test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user])
+
+ ### Use option --enable-symlinks to make tic use symlinks, not hard links
+ ### to reduce storage requirements for the terminfo database.
+@@ -634,7 +705,7 @@
+
+ # soft links (symbolic links) are useful for some systems where hard links do
+ # not work, or to make it simpler to copy terminfo trees around.
+-if test "$ac_cv_func_symlink" = yes ; then
++if test "x$ac_cv_func_symlink" = xyes ; then
+ AC_MSG_CHECKING(if tic should use symbolic links)
+ AC_ARG_ENABLE(symlinks,
+ [ --enable-symlinks make tic use symbolic links not hard links],
+@@ -647,7 +718,7 @@
+ # no reason to make this choice optional - use the hard links.
+ if test "$with_symlinks" = no ; then
+ AC_MSG_CHECKING(if tic should use hard links)
+- if test "$ac_cv_func_link" = yes ; then
++ if test "x$ac_cv_func_link" = xyes ; then
+ with_links=yes
+ else
+ with_links=no
+@@ -655,8 +726,8 @@
+ AC_MSG_RESULT($with_links)
+ fi
+
+-test "$with_links" = yes && AC_DEFINE(USE_LINKS)
+-test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)
++test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks should be used in terminfo database])
++test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database])
+
+ ### use option --enable-broken-linker to force on use of broken-linker support
+ AC_MSG_CHECKING(if you want broken-linker support code)
+@@ -667,13 +738,13 @@
+ AC_MSG_RESULT($with_broken_linker)
+
+ BROKEN_LINKER=0
+-if test "$with_broken_linker" = yes ; then
+- AC_DEFINE(BROKEN_LINKER)
++if test "x$with_broken_linker" = xyes ; then
++ AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
+ BROKEN_LINKER=1
+ elif test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+ cygwin*)
+- AC_DEFINE(BROKEN_LINKER)
++ AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
+ BROKEN_LINKER=1
+ CF_VERBOSE(cygwin linker is broken anyway)
+ ;;
+@@ -688,7 +759,7 @@
+ [with_bsdpad=$enableval],
+ [with_bsdpad=no])
+ AC_MSG_RESULT($with_bsdpad)
+-test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)
++test "x$with_bsdpad" = xyes && AC_DEFINE(BSD_TPUTS,1,[Define to 1 to recognize BSD-style prefix padding])
+
+ ### use option --enable-widec to turn on use of wide-character support
+ NCURSES_CH_T=chtype
+@@ -718,22 +789,19 @@
+ [with_widec=$enableval],
+ [with_widec=no])
+ AC_MSG_RESULT($with_widec)
+-if test "$with_widec" = yes ; then
+- LIB_SUFFIX="w${LIB_SUFFIX}"
+- AC_DEFINE(USE_WIDEC_SUPPORT)
++if test "x$with_widec" = xyes ; then
++ if test "x$disable_lib_suffixes" = xno ; then
++ LIB_SUFFIX="w${LIB_SUFFIX}"
++ fi
++ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code])
++ AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code])
+
+- case "$CFLAGS $CPPFLAGS" in #(vi
+- *-D_XOPEN_SOURCE=500) #(vi
+- ;;
+- *)
+- CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
+- ;;
+- esac
++ CF_CHECK_WCHAR_H
+
+ # with_overwrite=no
+ NCURSES_CH_T=cchar_t
+ AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
+- if test "$ac_cv_func_putwc" != yes ; then
++ if test "x$ac_cv_func_putwc" != xyes ; then
+ CF_UTF8_LIB
+ if test "$cf_cv_utf8_lib" != no ; then
+ NCURSES_LIBUTF8=1
+@@ -744,7 +812,7 @@
+ CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
+
+ if test "$NCURSES_MBSTATE_T" != 0; then
+- AC_DEFINE(NEED_MBSTATE_T_DEF)
++ AC_DEFINE(NEED_MBSTATE_T_DEF,1,[Define to 1 if we must declare mbstate_t])
+ fi
+ fi
+ AC_SUBST(NCURSES_CH_T)
+@@ -775,7 +843,7 @@
+ [with_lp64=$default_with_lp64])
+ AC_MSG_RESULT($with_lp64)
+
+-if test "$with_lp64" = yes ; then
++if test "x$with_lp64" = xyes ; then
+ cf_cv_enable_lp64=1
+ else
+ cf_cv_enable_lp64=0
+@@ -792,7 +860,7 @@
+ [with_tparm_varargs=yes])
+ AC_MSG_RESULT($with_tparm_varargs)
+ NCURSES_TPARM_VARARGS=0
+-test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
++test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1
+ AC_SUBST(NCURSES_TPARM_VARARGS)
+
+ ### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
+@@ -859,6 +927,15 @@
+ AC_MSG_RESULT($NCURSES_CCHARW_MAX)
+ AC_SUBST(NCURSES_CCHARW_MAX)
+
++### use option --with-tparm-arg to override tparm's argument type
++AC_MSG_CHECKING(for type of tparm args)
++AC_ARG_WITH(tparm-arg,
++ [ --with-tparm-arg=TYPE override parameter type of tparm],
++ [NCURSES_TPARM_ARG="$withval"],
++ [NCURSES_TPARM_ARG=long])
++AC_MSG_RESULT($NCURSES_TPARM_ARG)
++AC_SUBST(NCURSES_TPARM_ARG)
++
+ ### Enable compiling-in rcs id's
+ AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
+ AC_ARG_WITH(rcs-ids,
+@@ -866,7 +943,7 @@
+ [with_rcs_ids=$withval],
+ [with_rcs_ids=no])
+ AC_MSG_RESULT($with_rcs_ids)
+-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
++test "x$with_rcs_ids" = xyes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 to compile-in RCS identifiers])
+
+ ###############################################################################
+ CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ])
+@@ -881,16 +958,19 @@
+ [with_ext_funcs=$enableval],
+ [with_ext_funcs=yes])
+ AC_MSG_RESULT($with_ext_funcs)
+-if test "$with_ext_funcs" = yes ; then
++if test "x$with_ext_funcs" = xyes ; then
+ NCURSES_EXT_FUNCS=1
+- AC_DEFINE(HAVE_CURSES_VERSION)
+- AC_DEFINE(HAVE_HAS_KEY)
+- AC_DEFINE(HAVE_RESIZETERM)
+- AC_DEFINE(HAVE_RESIZE_TERM)
+- AC_DEFINE(HAVE_TERM_ENTRY_H)
+- AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
+- AC_DEFINE(HAVE_WRESIZE)
+- AC_DEFINE(NCURSES_EXT_FUNCS)
++ AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS,1,[Define to 1 to enable assume_default_colors() function])
++ AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 to enable curses_version() function])
++ AC_DEFINE(HAVE_HAS_KEY,1,[Define to 1 to enable has_key() function])
++ AC_DEFINE(HAVE_RESIZETERM,1,[Define to 1 to enable resizeterm() function])
++ AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function])
++ AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function])
++ AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function])
++ AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function])
++ AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function])
++ AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function])
++ AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 to enable ncurses extended functions])
+ GENERATED_EXT_FUNCS=generated
+ else
+ NCURSES_EXT_FUNCS=0
+@@ -905,9 +985,9 @@
+ [with_sp_funcs=$enableval],
+ [with_sp_funcs=no])
+ AC_MSG_RESULT($with_sp_funcs)
+-if test "$with_sp_funcs" = yes ; then
++if test "x$with_sp_funcs" = xyes ; then
+ NCURSES_SP_FUNCS=1
+- AC_DEFINE(NCURSES_SP_FUNCS)
++ AC_DEFINE(NCURSES_SP_FUNCS,1,[Define to 1 to enable experimental SCREEN-extensions])
+ GENERATED_SP_FUNCS=generated
+ else
+ NCURSES_SP_FUNCS=0
+@@ -922,9 +1002,9 @@
+ [with_term_driver=$enableval],
+ [with_term_driver=no])
+ AC_MSG_RESULT($with_term_driver)
+-if test "$with_term_driver" = yes ; then
+- AC_DEFINE(USE_TERM_DRIVER)
+- if test "$with_sp_funcs" != yes ; then
++if test "x$with_term_driver" = xyes ; then
++ AC_DEFINE(USE_TERM_DRIVER,1,[Define to 1 to enable experimental terminal-driver])
++ if test "x$with_sp_funcs" != xyes ; then
+ AC_MSG_ERROR(The term-driver option relies upon sp-funcs)
+ fi
+ fi
+@@ -937,7 +1017,7 @@
+ [with_ext_const=no])
+ AC_MSG_RESULT($with_ext_const)
+ NCURSES_CONST='/*nothing*/'
+-if test "$with_ext_const" = yes ; then
++if test "x$with_ext_const" = xyes ; then
+ NCURSES_CONST=const
+ fi
+ AC_SUBST(NCURSES_CONST)
+@@ -950,15 +1030,15 @@
+ [with_ext_colors=no])
+ AC_MSG_RESULT($with_ext_colors)
+ NCURSES_EXT_COLORS=0
+-if test "$with_ext_colors" = yes ; then
+- if test "$with_widec" != yes ; then
++if test "x$with_ext_colors" = xyes ; then
++ if test "x$with_widec" != xyes ; then
+ AC_MSG_ERROR(This option applies only to wide-character library)
+ else
+ # cannot be ABI 5 since it changes sizeof(cchar_t)
+ CF_NCURSES_ABI_6
+ fi
+ NCURSES_EXT_COLORS=1
+- AC_DEFINE(NCURSES_EXT_COLORS)
++ AC_DEFINE(NCURSES_EXT_COLORS,1,[Define to 1 to compile for 256-color support])
+ fi
+ AC_SUBST(NCURSES_EXT_COLORS)
+
+@@ -970,7 +1050,7 @@
+ [with_ext_mouse=no])
+ AC_MSG_RESULT($with_ext_mouse)
+ NCURSES_MOUSE_VERSION=1
+-if test "$with_ext_mouse" = yes ; then
++if test "x$with_ext_mouse" = xyes ; then
+ NCURSES_MOUSE_VERSION=2
+ CF_NCURSES_ABI_6
+ fi
+@@ -982,7 +1062,7 @@
+ [with_no_padding=$enableval],
+ [with_no_padding=$with_ext_funcs])
+ AC_MSG_RESULT($with_no_padding)
+-test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING)
++test "x$with_no_padding" = xyes && AC_DEFINE(NCURSES_NO_PADDING,1,[Define to 1 to compile with $NCURSES_NO_PADDING code])
+
+ AC_CHECK_SIZEOF([signed char], 0)
+ if test "$ac_cv_sizeof_signed_char" = 1 ; then
+@@ -996,7 +1076,7 @@
+ [with_signed_char=$enableval],
+ [with_signed_char=no])
+ AC_MSG_RESULT($with_signed_char)
+-test "$with_signed_char" != yes && NCURSES_SBOOL="char"
++test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
+ AC_SUBST(NCURSES_SBOOL)
+
+ ### use option --enable-sigwinch to turn on use of SIGWINCH logic
+@@ -1006,7 +1086,7 @@
+ [with_sigwinch=$enableval],
+ [with_sigwinch=$with_ext_funcs])
+ AC_MSG_RESULT($with_sigwinch)
+-test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)
++test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
+
+ ### use option --enable-tcap-names to allow user to define new capabilities
+ AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
+@@ -1016,7 +1096,7 @@
+ [with_tcap_names=$with_ext_funcs])
+ AC_MSG_RESULT($with_tcap_names)
+ NCURSES_XNAMES=0
+-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
++test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
+ AC_SUBST(NCURSES_XNAMES)
+
+ ###############################################################################
+@@ -1035,7 +1115,7 @@
+ [ --enable-hard-tabs compile with hard-tabs code],,
+ [enable_hard_tabs=$with_develop])
+ AC_MSG_RESULT($enable_hard_tabs)
+-test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS)
++test "x$enable_hard_tabs" = xyes && AC_DEFINE(USE_HARD_TABS,1,[Define to 1 to compile with hard-tabs code])
+
+ ### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+ AC_MSG_CHECKING(if you want limited support for xmc)
+@@ -1043,7 +1123,7 @@
+ [ --enable-xmc-glitch compile with support for xmc (magic-cookie)],,
+ [enable_xmc_glitch=$with_develop])
+ AC_MSG_RESULT($enable_xmc_glitch)
+-test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
++test "x$enable_xmc_glitch" = xyes && AC_DEFINE(USE_XMC_SUPPORT,1,[Define to 1 to compile with support for xmc (magic-cookie)])
+
+ ###############################################################################
+ # These are just experimental, probably should not be in a package:
+@@ -1055,7 +1135,7 @@
+ [with_assumed_color=$enableval],
+ [with_assumed_color=yes])
+ AC_MSG_RESULT($with_assumed_color)
+-test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR)
++test "x$with_assumed_color" = xyes && AC_DEFINE(USE_ASSUMED_COLOR,1,[Define to 1 to assume things about default-colors])
+
+ ### use option --enable-hashmap to turn on use of hashmap scrolling logic
+ AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
+@@ -1064,7 +1144,7 @@
+ [with_hashmap=$enableval],
+ [with_hashmap=yes])
+ AC_MSG_RESULT($with_hashmap)
+-test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
++test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization])
+
+ ### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+ AC_MSG_CHECKING(if you want colorfgbg code)
+@@ -1073,7 +1153,7 @@
+ [with_colorfgbg=$enableval],
+ [with_colorfgbg=no])
+ AC_MSG_RESULT($with_colorfgbg)
+-test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
++test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code])
+
+ ### use option --enable-interop to turn on use of bindings used for interop
+ AC_MSG_CHECKING(if you want interop bindings)
+@@ -1084,7 +1164,7 @@
+ AC_MSG_RESULT($with_exp_interop)
+
+ NCURSES_INTEROP_FUNCS=0
+-test "$with_exp_interop" = yes && NCURSES_INTEROP_FUNCS=1
++test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1
+ AC_SUBST(NCURSES_INTEROP_FUNCS)
+
+ # This is still experimental (20080329), but should ultimately be moved to
+@@ -1099,8 +1179,8 @@
+ [use_pthreads_eintr=$enableval],
+ [use_pthreads_eintr=no])
+ AC_MSG_RESULT($use_pthreads_eintr)
+- if test $use_pthreads_eintr = yes ; then
+- AC_DEFINE(USE_PTHREADS_EINTR)
++ if test "x$use_pthreads_eintr" = xyes ; then
++ AC_DEFINE(USE_PTHREADS_EINTR,1,[Define to 1 to enable EINTR in wgetch with pthreads])
+ fi])
+
+ AC_MSG_CHECKING(if you want to use weak-symbols for pthreads)
+@@ -1109,22 +1189,22 @@
+ [use_weak_symbols=$enableval],
+ [use_weak_symbols=no])
+ AC_MSG_RESULT($use_weak_symbols)
+- if test "$use_weak_symbols" = yes ; then
++ if test "x$use_weak_symbols" = xyes ; then
+ CF_WEAK_SYMBOLS
+ else
+ cf_cv_weak_symbols=no
+ fi
+
+- if test $cf_cv_weak_symbols = yes ; then
+- AC_DEFINE(USE_WEAK_SYMBOLS)
++ if test "x$cf_cv_weak_symbols" = xyes ; then
++ AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads])
+ fi
+ fi
+
+ PTHREAD=
+-if test "$with_pthread" = "yes" ; then
+- AC_DEFINE(USE_PTHREADS)
++if test "x$with_pthread" = "xyes" ; then
++ AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use pthreads feature])
+ enable_reentrant=yes
+- if test $cf_cv_weak_symbols = yes ; then
++ if test "x$cf_cv_weak_symbols" = xyes ; then
+ PTHREAD=-lpthread
+ fi
+ fi
+@@ -1140,19 +1220,35 @@
+ [with_reentrant=$enableval],
+ [with_reentrant=no])
+ AC_MSG_RESULT($with_reentrant)
+-if test "$with_reentrant" = yes ; then
++if test "x$with_reentrant" = xyes ; then
+ cf_cv_enable_reentrant=1
+ cf_cv_enable_opaque="NCURSES_INTERNALS"
+ NCURSES_OPAQUE=1
+ NCURSES_SIZE_T=int
+- if test $cf_cv_weak_symbols = yes ; then
++ if test "x$cf_cv_weak_symbols" = xyes ; then
+ CF_REMOVE_LIB(LIBS,$LIBS,pthread)
+ CF_ADD_LIB(pthread,TEST_LIBS)
+ CF_ADD_LIB(pthread,TEST_LIBS2)
+ else
+- LIB_SUFFIX="t${LIB_SUFFIX}"
++ # when not using weak symbols but with_reentrant,
++ # add 't' to the library suffix on all platforms
++ # except cygwin, where we only do that if ALSO
++ # compiling with full thread support.
++ case "$host" in
++ *cygwin* | *msys*) #(vi
++ if test "$with_pthread" = "yes" ; then
++ if test "x$disable_lib_suffixes" = "xno" ; then
++ LIB_SUFFIX="t${LIB_SUFFIX}"
++ fi
++ fi ;;
++ *)
++ if test "x$disable_lib_suffixes" = "xno" ; then
++ LIB_SUFFIX="t${LIB_SUFFIX}"
++ fi
++ ;;
++ esac
+ fi
+- AC_DEFINE(USE_REENTRANT)
++ AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use experimental reentrant feature])
+ CF_NCURSES_ABI_6
+ else
+ cf_cv_enable_reentrant=0
+@@ -1177,7 +1273,7 @@
+ NCURSES_WRAP_PREFIX=_nc_
+ fi
+ AC_SUBST(NCURSES_WRAP_PREFIX)
+-AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX")
++AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ prefix])
+
+ AC_MSG_CHECKING(if you want experimental safe-sprintf code)
+ AC_ARG_ENABLE(safe-sprintf,
+@@ -1185,7 +1281,7 @@
+ [with_safe_sprintf=$enableval],
+ [with_safe_sprintf=no])
+ AC_MSG_RESULT($with_safe_sprintf)
+-test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)
++test "x$with_safe_sprintf" = xyes && AC_DEFINE(USE_SAFE_SPRINTF,1,[Define to 1 to compile with experimental safe-sprintf code])
+
+ ### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
+ # when hashmap is used scroll hints are useless
+@@ -1196,7 +1292,7 @@
+ [with_scroll_hints=$enableval],
+ [with_scroll_hints=yes])
+ AC_MSG_RESULT($with_scroll_hints)
+-test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
++test "x$with_scroll_hints" = xyes && AC_DEFINE(USE_SCROLL_HINTS,1,[Define to 1 to compile without scroll-hints code])
+ fi
+
+ AC_MSG_CHECKING(if you want experimental wgetch-events code)
+@@ -1205,25 +1301,20 @@
+ [with_wgetch_events=$enableval],
+ [with_wgetch_events=no])
+ AC_MSG_RESULT($with_wgetch_events)
+-test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS)
++test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with experimental wgetch-events code])
+
+ ###############################################################################
+ CF_HELP_MESSAGE(Testing/development Options:)
+
+ ### use option --disable-echo to suppress full display compiling commands
+-AC_MSG_CHECKING(if you want to display full commands during build)
+-AC_ARG_ENABLE(echo,
+- [ --enable-echo build: display "compiling" commands (default)],
+- [with_echo=$enableval],
+- [with_echo=yes])
+-if test "$with_echo" = yes; then
++CF_DISABLE_ECHO
++if test "x$enable_echo" = xyes; then
+ ECHO_LINK=
+ else
+ ECHO_LINK='@ echo linking $@ ... ;'
+ test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+ test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
+ fi
+-AC_MSG_RESULT($with_echo)
+ AC_SUBST(ECHO_LINK)
+
+ ### use option --enable-warnings to turn on all gcc warnings
+@@ -1235,12 +1326,13 @@
+
+ if test "x$with_warnings" = "xyes"; then
+ CF_ADD_ADAFLAGS(-gnatg)
+- CF_GCC_WARNINGS(Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum)
+- if test "$cf_with_cxx" = yes ; then
++ CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum)
++ if test "x$cf_with_cxx" = xyes ; then
+ CF_GXX_WARNINGS(Wno-unused)
+ fi
+ fi
+ CF_GCC_ATTRIBUTES
++CF_ENABLE_STRING_HACKS
+
+ ### use option --enable-assertions to turn on generation of assertion code
+ AC_MSG_CHECKING(if you want to enable runtime assertions)
+@@ -1253,7 +1345,6 @@
+ then
+ if test "$with_assertions" = no
+ then
+- AC_DEFINE(NDEBUG)
+ CPPFLAGS="$CPPFLAGS -DNDEBUG"
+ else
+ CF_ADD_ADAFLAGS(-gnata)
+@@ -1262,17 +1353,17 @@
+
+ ### use option --disable-leaks to suppress "permanent" leaks, for testing
+ CF_DISABLE_LEAKS
+-AC_DEFINE(HAVE_NC_ALLOC_H)
++AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header])
+
+ ### use option --enable-expanded to generate certain macros as functions
+ AC_ARG_ENABLE(expanded,
+ [ --enable-expanded test: generate functions for certain macros],
+- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
++ [test "x$enableval" = xyes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 to generate functions for certain macros])])
+
+ ### use option --disable-macros to suppress macros in favor of functions
+ AC_ARG_ENABLE(macros,
+ [ --disable-macros test: use functions rather than macros],
+- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
++ [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 to use functions rather than macros])])
+
+ # Normally we only add trace() to the debug-library. Allow this to be
+ # extended to all models of the ncurses library:
+@@ -1290,7 +1381,7 @@
+ [cf_with_trace=$cf_all_traces])
+ AC_MSG_RESULT($cf_with_trace)
+
+-if test "$cf_with_trace" = yes ; then
++if test "x$cf_with_trace" = xyes ; then
+ LIB_TRACING=all
+ ADA_TRACE=TRUE
+ CF_ADD_CFLAGS(-DTRACE)
+@@ -1301,21 +1392,25 @@
+
+ AC_SUBST(ADA_TRACE)
+
++CF_DISABLE_GNAT_PROJECTS
++
+ ### Checks for libraries.
+ case $cf_cv_system_name in #(vi
+-*mingw32*) #(vi
++*mingw32*|*mingw64*) #(vi
++ CPPFLAGS="$CPPFLAGS -DWINVER=0x0501"
++ LIBS=" -lpsapi $LIBS"
+ ;;
+ *)
+ AC_CHECK_FUNC(gettimeofday,
+- AC_DEFINE(HAVE_GETTIMEOFDAY),[
++ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
+
+ AC_CHECK_LIB(bsd, gettimeofday,
+- AC_DEFINE(HAVE_GETTIMEOFDAY)
++ AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
+ CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
+ ;;
+ esac
+
+-CF_MATH_LIB(MATH_LIB,sin(x))
++CF_MATH_LIB(MATH_LIB,pow(sin(x),x))
+ AC_SUBST(MATH_LIB)
+
+ ### Checks for header files.
+@@ -1344,9 +1439,11 @@
+ wctype.h \
+ )
+
++CF_GETOPT_HEADER
++
+ # check for ISC (this may also define _POSIX_SOURCE)
+ # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
+-if test "$ISC" = yes ; then
++if test "x$ISC" = xyes ; then
+ AC_CHECK_LIB(cposix,main)
+ AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()'
+ fi
+@@ -1390,13 +1487,16 @@
+ getcwd \
+ getegid \
+ geteuid \
++getopt \
+ getttynam \
+ issetugid \
+ poll \
++putenv \
+ remove \
+ select \
+ setbuf \
+ setbuffer \
++setenv \
+ setvbuf \
+ sigaction \
+ sigvec \
+@@ -1406,7 +1506,13 @@
+ times \
+ vsnprintf \
+ )
+-if test "$with_getcap" = "yes" ; then
++
++if test "x$ac_cv_func_getopt" = xno &&
++ test "x$cf_with_progs$cf_with_tests" != xnono; then
++ AC_MSG_ERROR(getopt is required for building programs)
++fi
++
++if test "x$with_getcap" = "xyes" ; then
+ CF_CGETENT
+ fi
+
+@@ -1421,12 +1527,12 @@
+ CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
+
+ dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
+-if test "$cross_compiling" = yes ; then
++if test "x$cross_compiling" = xyes ; then
+ AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
+ else
+ AC_FUNC_SETVBUF_REVERSED
+ fi
+-AC_TYPE_SIGNAL
++AC_CHECK_TYPE(intptr_t, long)
+ CF_TYPE_SIGACTION
+ CF_SIZECHANGE
+ CF_FUNC_MEMMOVE
+@@ -1437,9 +1543,9 @@
+ # special check for test/ditto.c
+ CF_FUNC_OPENPTY
+ if test "$cf_cv_func_openpty" != no ; then
+- AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>)
+- AC_DEFINE(USE_XTERM_PTY)
+- if test "$cf_cv_lib_util" = yes ; then
++ AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function])
++ AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface])
++ if test "x$cf_cv_lib_util" = xyes ; then
+ CF_ADD_LIB(util,TEST_LIBS)
+ fi
+ fi
+@@ -1447,7 +1553,7 @@
+ AC_SUBST(TEST_LIBS2)
+
+ if test "$with_hashed_db" != no ; then
+- AC_DEFINE(USE_HASHED_DB)
++ AC_DEFINE(USE_HASHED_DB,1,[Define to 1 if we should build terminfo in hashed database])
+ CF_HASHED_DB($with_hashed_db)
+ fi
+
+@@ -1478,50 +1584,14 @@
+ ;;
+ esac
+
+- AC_CHECK_HEADERS(iostream typeinfo)
+-
+- if test x"$ac_cv_header_iostream" = xyes ; then
+- AC_MSG_CHECKING(if iostream uses std-namespace)
+- AC_TRY_COMPILE([
+-#include <iostream>
+-using std::endl;
+-using std::cerr;],[
+-cerr << "testing" << endl;
+-],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
+- AC_MSG_RESULT($cf_iostream_namespace)
+- if test "$cf_iostream_namespace" = yes ; then
+- AC_DEFINE(IOSTREAM_NAMESPACE)
+- fi
+- fi
+-
++ AC_CHECK_HEADERS(typeinfo)
++ CF_CXX_IOSTREAM_NAMESPACE
+ CF_BOOL_DECL
+ CF_BOOL_SIZE
+ CF_ETIP_DEFINES
+ CF_CPP_PARAM_INIT
+ CF_CPP_STATIC_CAST
+-
+- CXX_AR='$(AR)'
+- CXX_ARFLAGS='$(ARFLAGS)'
+- case $cf_cv_system_name in #(vi
+- irix*) #(vi
+- if test "$GXX" != yes ; then
+- CXX_AR='$(CXX)'
+- CXX_ARFLAGS='-ar -o'
+- fi
+- ;;
+- sco3.2v5*) #(vi
+- CXXLDFLAGS="-u main"
+- ;;
+- solaris2*)
+- if test "$GXX" != yes ; then
+- CXX_AR='$(CXX)'
+- CXX_ARFLAGS='-xar -o'
+- fi
+- ;;
+- esac
+- AC_SUBST(CXXLDFLAGS)
+- AC_SUBST(CXX_AR)
+- AC_SUBST(CXX_ARFLAGS)
++ CF_CXX_AR_FLAGS
+ else
+ cf_cxx_library=no
+ cf_cv_builtin_bool=1
+@@ -1593,24 +1663,14 @@
+ dnl At the moment we support no other Ada95 compiler.
+ if test "$cf_with_ada" != "no" ; then
+ CF_PROG_GNAT
+- if test "$cf_cv_prog_gnat_correct" = yes; then
++ if test "x$cf_cv_prog_gnat_correct" = xyes; then
+ CF_ADD_ADAFLAGS(-gnatpn)
++ CF_FIXUP_ADAFLAGS
+
+- # make ADAFLAGS consistent with CFLAGS
+- case "$CFLAGS" in
+- *-g*)
+- CF_ADD_ADAFLAGS(-g)
+- ;;
+- esac
+- case "$CFLAGS" in
+- *-O*)
+- CF_ADD_ADAFLAGS(-O3)
+- ;;
+- esac
++ CF_GNATPREP_OPT_T
+
+ CF_GNAT_GENERICS
+ CF_GNAT_SIGINT
+- CF_GNAT_PRAGMA_UNREF
+ CF_GNAT_PROJECTS
+
+ CF_WITH_ADA_COMPILER
+@@ -1627,6 +1687,11 @@
+ cf_with_ada=no
+ fi
+
++# do this "late" to avoid conflict with header-checks
++if test "x$with_widec" = xyes ; then
++ AC_CHECK_SIZEOF(wchar_t)
++fi
++
+ ### Construct the ncurses library-subsets, if any, from this set of keywords:
+ ### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar
+ ###
+@@ -1640,7 +1705,7 @@
+ AC_MSG_CHECKING(for library subsets)
+ LIB_SUBSETS=
+
+-if test "$cf_with_progs" = yes || test "$with_ticlib" != no || test "$with_termcap" != no; then
++if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then
+ LIB_SUBSETS="${LIB_SUBSETS}ticlib"
+ if test "$with_ticlib" != no ; then
+ LIB_SUBSETS="${LIB_SUBSETS} "
+@@ -1650,7 +1715,7 @@
+ fi
+
+ LIB_SUBSETS="${LIB_SUBSETS}termlib"
+-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+
+ if test "$with_termlib" != no ; then
+ LIB_SUBSETS="${LIB_SUBSETS} "
+@@ -1665,8 +1730,9 @@
+ if test "$with_term_driver" != no ; then
+ LIB_SUBSETS="${LIB_SUBSETS}+port_drivers"
+ case $cf_cv_system_name in #(vi
+- *mingw32*) #(vi
++ *mingw32*|*mingw64*) #(vi
+ LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
++ CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER"
+ ;;
+ *) #(vi
+ LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
+@@ -1674,8 +1740,8 @@
+ esac
+ fi
+
+-test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
++test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
++test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+
+ AC_MSG_RESULT($LIB_SUBSETS)
+
+@@ -1699,20 +1765,24 @@
+ AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
+ AC_MSG_RESULT($DFT_OBJ_SUBDIR)
+
+-# libtool thinks it can make c++ shared libraries (perhaps only g++)
+-if test "$cf_with_cxx" = yes ; then
++if test "x$cf_with_cxx" = xyes ; then
+ AC_MSG_CHECKING(c++ library-dependency suffix)
+ if test "$with_libtool" != "no"; then
++ # libtool thinks it can make c++ shared libraries (perhaps only g++)
++ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
++elif test "$with_shared_cxx" != "no"; then
++ # also for g++ users...
+ CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+ else
+- CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)dnl we normally make a static library
++ # we normally make a static library because C/C++ library rules differ
++ CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)
+ fi
+ AC_MSG_RESULT($CXX_LIB_SUFFIX)
+ AC_SUBST(CXX_LIB_SUFFIX)
+ fi
+
+ # do not want -ldl in build except as needed for -lncurses dependency
+-if test "$with_dlsym" = yes ; then
++if test "x$with_dlsym" = xyes ; then
+ if test $DFT_LWR_MODEL = shared || \
+ test $DFT_LWR_MODEL = libtool ; then
+ CF_REMOVE_LIB(LIBS,$LIBS,dl)
+@@ -1723,13 +1793,13 @@
+ # TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
+ # do not need libdl
+ TICS_LIST=
+-if test "$with_dlsym" = yes ; then
++if test "x$with_dlsym" = xyes ; then
+ CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
+ fi
+
+ if test "$with_ticlib" != no ; then
+
+- if test "$with_ticlib" != yes ; then
++ if test "x$with_ticlib" != xyes ; then
+ TICS_NAME=$with_ticlib
+ TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+@@ -1739,18 +1809,21 @@
+ TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
+ TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
+ fi
+- TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
++ TICS_LDFLAGS="-L${LIB_DIR}"
++ TICS_LIBS="-l${TICS_LIB_SUFFIX}"
+ else
+- TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TICS_LDFLAGS="-L${LIB_DIR}"
++ TICS_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ fi
+ AC_SUBST(TICS_ARG_SUFFIX)
+ AC_SUBST(TICS_DEP_SUFFIX)
+ AC_SUBST(TICS_LIB_SUFFIX)
+-AC_SUBST(TICS_ARGS)
++AC_SUBST(TICS_LDFLAGS)
++AC_SUBST(TICS_LIBS)
+
+ if test "$with_termlib" != no ; then
+
+- if test "$with_termlib" != yes ; then
++ if test "x$with_termlib" != xyes ; then
+ TINFO_NAME=$with_termlib
+ TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+@@ -1768,14 +1841,22 @@
+ if test "$DFT_LWR_MODEL" = "libtool"; then
+ TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
+- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
++ TINFO_LDFLAGS="-L${LIB_DIR}"
++ TINFO_LIBS="$TEST_ARGS"
+ TICS_LIST="$SHLIB_LIST $TEST_ARGS"
+ SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
+ else
+ TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+ TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+- TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+- TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
++ if test "x$with_term_driver" != xno ; then
++ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
++ else
++ TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
++ TINFO_LIBS="$TEST_ARGS"
++ fi
++ TINFO_LDFLAGS="-L${LIB_DIR}"
+ SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ fi
+ else
+@@ -1783,19 +1864,20 @@
+ TINFO_NAME=${LIB_NAME}
+ TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+ TINFO_ARG_SUFFIX=${LIB_NAME}${DFT_ARG_SUFFIX}
+- if test "$with_tic_depends" = yes ; then
++ if test "x$with_tic_depends" = xyes ; then
+ TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ else
+ TICS_LIST="$SHLIB_LIST"
+ fi
+
+- TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
++ TINFO_LDFLAGS="-L${LIB_DIR}"
++ TINFO_LIBS="-l${LIB_NAME}${DFT_ARG_SUFFIX}"
+ fi
+
+ if test "$DFT_LWR_MODEL" = shared ; then
+ case $cf_cv_system_name in #(vi
+- cygwin*)
+- # "lib" files have ".dll.a" suffix, "cyg" files have ".dll"
++ cygwin*|msys*)
++ # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll"
+ TINFO_SUFFIX=.dll
+ ;;
+ esac
+@@ -1804,9 +1886,10 @@
+ AC_SUBST(TINFO_ARG_SUFFIX)
+ AC_SUBST(TINFO_DEP_SUFFIX)
+ AC_SUBST(TINFO_LIB_SUFFIX)
+-AC_SUBST(TINFO_ARGS)
++AC_SUBST(TINFO_LDFLAGS)
++AC_SUBST(TINFO_LIBS)
+
+-if test "$with_dlsym" = yes ; then
++if test "x$with_dlsym" = xyes ; then
+ CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
+ fi
+
+@@ -1815,8 +1898,8 @@
+ fi
+
+ # needed for Ada95
+-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+-AC_SUBST(TINFO_ARGS2)
++TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'`
++AC_SUBST(TINFO_LDFLAGS2)
+
+ case $DFT_LWR_MODEL in
+ normal|debug|profile)
+@@ -1825,10 +1908,15 @@
+ esac
+
+ AC_MSG_CHECKING(where we will install curses.h)
+-test "$with_overwrite" = no && \
+-test "x$includedir" = 'x${prefix}/include' && \
+- includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
+-AC_MSG_RESULT($includedir)
++AC_SUBST(includesubdir)
++includesubdir=
++if test "$with_overwrite" = no && \
++ ( test "x$includedir" = 'x${prefix}/include' || \
++ test "x$includedir" = "x${prefix}/include" )
++then
++ includesubdir="/ncurses${LIB_SUFFIX}"
++fi
++AC_MSG_RESULT(${includedir}${includesubdir})
+
+ ### Resolve a conflict between normal and wide-curses by forcing applications
+ ### that will need libutf8 to add it to their configure script.
+@@ -1850,14 +1938,14 @@
+ AC_SUBST(NCURSES_TREE)
+
+ ### predefined stuff for the test programs
+-AC_DEFINE(HAVE_SLK_COLOR)
++AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs])
+
+ ### Construct the list of subdirectories for which we'll customize makefiles
+ ### with the appropriate compile-rules.
+
+ CF_SRC_MODULES($modules_to_build)
+
+-if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+ SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
+ SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${DFT_ARG_SUFFIX}-config.1:man/MKada_config.in"
+ fi
+@@ -1869,26 +1957,27 @@
+ AC_SUBST(NCURSES_SHLIB2)
+
+ # values to use as strings
+-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR')
++AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as library path-separator])
+
+-AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}")
++AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic])
+
+ ### Now that we're done running tests, add the compiler-warnings, if any
+ CF_ADD_CFLAGS($EXTRA_CFLAGS)
+
+ ### Define substitutions for header files to avoid name-pollution
+-CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
+-CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
+-CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
++CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0)
++CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0)
++CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0)
++CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0)
+
+ ################################################################################
+-test "$use_database" = yes && \
++test "x$use_database" = xyes && \
+ SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+
+ SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
+ SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config.1:man/MKncu_config.in"
+
+-if test x"$enable_pc_files" = xyes ; then \
++if test "x$enable_pc_files" = xyes ; then \
+ SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+ MAKE_PC_FILES=
+ else
+@@ -1917,13 +2006,76 @@
+ ADAHTML_DIR=../../doc/html/ada
+ AC_SUBST(ADAHTML_DIR)
+
+-SUB_SCRIPTS=
++# these could be configurable, but are not currently
++PANEL_NAME=panel
++MENU_NAME=menu
++FORM_NAME=form
++CXX_NAME=ncurses++
++
++AC_SUBST(PANEL_NAME)
++AC_SUBST(MENU_NAME)
++AC_SUBST(FORM_NAME)
++AC_SUBST(CXX_NAME)
++
++# workaround for g++ versus Solaris (20131116)
+ case $cf_cv_system_name in #(vi
+-*mingw32*) #(vi
+- SUB_SCRIPTS="mk-dlls.sh"
++solaris2*) #(vi
++ case "x$CPPFLAGS" in #(vi
++ *-D_XOPEN_SOURCE_EXTENDED*)
++ CF_VERBOSE(moving _XOPEN_SOURCE_EXTENDED to work around g++ problem)
++ CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
++ CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'`
++ ;;
++ esac
++ ;;
++esac
++
++# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this.
++case "x$NCURSES_OSPEED" in #(vi
++*short*) #(vi
++ cf_compatible=1
++ ;;
++*)
++ cf_compatible=0
++ ;;
++esac
++AC_DEFINE_UNQUOTED(NCURSES_OSPEED_COMPAT,$cf_compatible,[Define to 1 if termcap variable ospeed is short])
++
++case "x$cf_cv_typeof_chtype" in
++xshort|xint|xlong)
++ cf_cv_typeof_chtype="unsigned $cf_cv_typeof_chtype"
++ ;;
++esac
++
++case "x$cf_cv_typeof_mmask_t" in
++xshort|xint|xlong)
++ cf_cv_typeof_mmask_t="unsigned $cf_cv_typeof_mmask_t"
+ ;;
+ esac
+
++# substitute into misc/Makefile to suppress
++# (un)install.data from the
++# (un)install rules.
++if test "x$cf_with_db_install" = "xno"; then
++ MISC_INSTALL_DATA=
++ MISC_UNINSTALL_DATA=
++else
++ MISC_INSTALL_DATA=install.data
++ MISC_UNINSTALL_DATA=uninstall.data
++fi
++AC_SUBST(MISC_INSTALL_DATA)
++AC_SUBST(MISC_UNINSTALL_DATA)
++
++SUB_SCRIPTS=
++
++dnl Override the package used for exported symbols
++if test -n "$PACKAGE"
++then
++ PACKAGE="${PACKAGE}${DFT_ARG_SUFFIX}"
++ export PACKAGE
++ echo "package: $PACKAGE"
++fi
++
+ AC_OUTPUT( \
+ include/MKterm.h.awk \
+ include/curses.head:include/curses.h.in \
+@@ -1934,11 +2086,11 @@
+ $SUB_MAKEFILES \
+ Makefile,[
+ if test "x$cf_with_tests" != xno ; then
+- CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LINK"], test)
++ CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test)
+ fi
+ CF_LIB_RULES($SRC_SUBDIRS)
+
+-if test "x$cf_with_ada" != xno ; then
++if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+ if test -z "$USE_OLD_MAKERULES" ; then
+ $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
+ fi
+@@ -1950,10 +2102,11 @@
+ AWK="$AWK"
+ DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
+ DFT_LWR_MODEL="$DFT_LWR_MODEL"
+-ECHO_LINK="$ECHO_LINK"
++ECHO_LD="$ECHO_LD"
+ LDCONFIG="$LDCONFIG"
+ LIBTOOL_VERSION="$LIBTOOL_VERSION"
+ LIB_NAME="$LIB_NAME"
++LIB_PREFIX="$LIB_PREFIX"
+ LIB_SUBSETS="$LIB_SUBSETS"
+ LIB_SUFFIX="$LIB_SUFFIX"
+ LIB_TRACING="$LIB_TRACING"
+@@ -1975,7 +2128,7 @@
+ TINFO_SUFFIX="$TINFO_SUFFIX"
+ USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
+ WITH_CURSES_H="$with_curses_h"
+-WITH_ECHO="$with_echo"
++WITH_ECHO="${enable_echo:=yes}"
+ WITH_OVERWRITE="$with_overwrite"
+ cf_LIST_MODELS="$cf_list_models"
+ cf_cv_abi_version="$cf_cv_abi_version"
+@@ -1985,16 +2138,20 @@
+ cf_cv_enable_opaque="$cf_cv_enable_opaque"
+ cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
+ cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
++cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
+ cf_cv_rel_version="$cf_cv_rel_version"
+ cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
+ cf_cv_shared_soname='$cf_cv_shared_soname'
+ cf_cv_shlib_version="$cf_cv_shlib_version"
+ cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
+ cf_cv_system_name="$cf_cv_system_name"
++cf_cv_term_driver="$with_term_driver"
+ cf_with_ada="$cf_with_ada"
+ cf_with_cxx_binding="$cf_with_cxx_binding"
++cf_with_db_install="$cf_with_db_install"
+ cf_with_manpages="$cf_with_manpages"
+ cf_with_tests="$cf_with_tests"
++with_shared_cxx="$with_shared_cxx"
+ host="$host"
+ target="$target"
+
+Index: dist.mk
+Prereq: 1.810
+--- ncurses-5.9/dist.mk 2011-04-04 22:42:20.000000000 +0000
++++ ncurses-5.9-20141206/dist.mk 2014-12-06 13:32:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -25,7 +25,7 @@
+ # use or other dealings in this Software without prior written #
+ # authorization. #
+ ##############################################################################
+-# $Id: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $
++# $Id: dist.mk,v 1.1018 2014/12/06 13:32:29 tom Exp $
+ # Makefile for creating ncurses distributions.
+ #
+ # This only needs to be used directly as a makefile by developers, but
+@@ -37,20 +37,21 @@
+ # These define the major/minor/patch versions of ncurses.
+ NCURSES_MAJOR = 5
+ NCURSES_MINOR = 9
+-NCURSES_PATCH = 20110404
++NCURSES_PATCH = 20141206
+
+ # We don't append the patch to the version, since this only applies to releases
+ VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+
+-# The most recent html files were generated with lynx 2.8.6, using ncurses
+-# configured with
++# The most recent html files were generated with lynx 2.8.6 (or later), using
++# ncurses configured with
+ # --without-manpage-renames
+ # on Debian/testing. The -scrollbar and -width options are used to make lynx
+ # use 79 columns as it did in 2.8.5 and before.
+ DUMP = lynx -dump -scrollbar=0 -width=79
+ DUMP2 = $(DUMP) -nolist
+
+-GNATHTML= `type -p gnathtml || type -p gnathtml.pl`
++# gcc's file is "gnathtml.pl"
++GNATHTML= gnathtml
+
+ # man2html 3.0.1 is a Perl script which assumes that pages are fixed size.
+ # Not all man programs agree with this assumption; some use half-spacing, which
+@@ -98,7 +99,13 @@
+ MANPROG = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii
+
+ manhtml:
+- @rm -f doc/html/man/*.html
++ @for f in doc/html/man/*.html; do \
++ test -f $$f || continue; \
++ case $$f in \
++ */index.html) ;; \
++ *) rm -f $$f ;; \
++ esac; \
++ done
+ @mkdir -p doc/html/man
+ @rm -f subst.tmp ;
+ @for f in man/*.[0-9]*; do \
+@@ -126,7 +133,7 @@
+ g=$${m}.html ;\
+ if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\
+ echo "Converting $$m to HTML" ;\
+- echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' > doc/html/man/$$g ;\
++ echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">' > doc/html/man/$$g ;\
+ echo '<!-- ' >> doc/html/man/$$g ;\
+ egrep '^.\\"[^#]' $$f | \
+ sed -e 's/\$$/@/g' \
+@@ -135,9 +142,15 @@
+ -e 's/>/\&gt;/g' \
+ >> doc/html/man/$$g ;\
+ echo '-->' >> doc/html/man/$$g ;\
+- ./edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \
+- sed -f subst.sed |\
+- sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \
++ ./edit_man.sh normal editing /usr/man man $$f | \
++ $(MANPROG) | \
++ tr '\255' '-' | \
++ $(MAN2HTML) \
++ -title "$$T" \
++ -aliases man/manhtml.aliases \
++ -externs man/manhtml.externs | \
++ sed -f subst.sed |\
++ sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \
+ >> doc/html/man/$$g ;\
+ done
+ @rm -f subst.sed
+@@ -149,7 +162,7 @@
+ # .ali files contain cross referencing information required by gnathtml.
+ adahtml:
+ if [ ! -z "$(GNATHTML)" ]; then \
+- (cd ./Ada95/gen ; make html) ;\
++ (cd ./Ada95/gen ; make html GNATHTML=$(GNATHTML) ) ;\
+ fi
+
+ # This only works on a clean source tree, of course.
+Index: doc/html/Ada95.html
+Prereq: 1.8
+--- ncurses-5.9/doc/html/Ada95.html 2010-12-04 16:42:54.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/Ada95.html 2013-05-18 21:34:34.000000000 +0000
+@@ -1,8 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <!--
+- $Id: Ada95.html,v 1.8 2010/12/04 16:42:54 tom Exp $
++ $Id: Ada95.html,v 1.14 2013/05/18 21:34:34 tom Exp $
+ ****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,156 +28,316 @@
+ * authorization. *
+ ****************************************************************************
+ -->
+-<HTML>
+-<HEAD>
+-<TITLE>Ada95 Binding for ncurses</Title>
+-<link rev=made href="mailto:bug-ncurses@gnu.org">
+-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+-</HEAD>
+-<BODY>
+-<H1>Ada95 Binding for ncurses</H1>
+-by J&uuml;rgen Pfeifer.
+-
+-<HR SIZE=3 NOSHADE>
+-<H2>General Remarks</H2>
+-<UL>
+-<LI>This document describes Version 01.00 of the binding.</LI>
+-<LI>The functionality is modeled to be compatible with the ncurses
+-package, a clone of the SVr4 curses model.<BR>
+-I did the development on an Intel box running the latest stable release of
+-<A HREF="http://www.linux.org">Linux</A>, ncurses and the most recent released
+-<A HREF="http://www.gnat.com">GNU Ada Translator</A>
+-gnat versions. For any older versions of ncurses and gnat
+-it is not guaranteed to work.</LI>
+-<LI>You must have the m4 macroprocessor to build this package.
+-If you don't have this program, you can get the FSF version
+-<A HREF="ftp://ftp.gnu.org/pub/gnu/">here</A>.</LI>
+-<LI>Ada programs are supposed to be readable. One of my
+-favorite methods to make code readable is to use expressive
+-names for the identifiers. You can find a list of a mapping
+-of the cryptic curses names to the Ada names in this <A HREF="ada/table.html">table</A>.</LI>
+-<LI>This is not a typical one-to-one interface mapping. It is
+-close to one-to-one on the functional level. Each (n)curses function
+-has it's counterpart with a more or less similar formal parameter list
+-in the binding. It is not one-to-one with respect to the datatypes.
+-I tried to make records out of the flat chtype and similar structures,
+-so you don't have to do bit operations to mark an attributed character
+-as bold. Just make the boolean member <STRONG>bold</STRONG> of the record
+-true. The binding also hides the structures like WINDOW, PANEL, MENU, FORM
+-etc. ! It's a pure functional API.</LI>
+-<LI>I try to do as much error checking as possible and feasible
+-in the binding. I will raise an Ada exception when something
+-went wrong in the low-level curses. This has the effect that - at least
+-first time in my life - (n)curses programs have now a very rigid error
+-checking, but - thanks to Ada - you don't have to code the orgiastic
+-error checking style of C.</LI>
+-<LI>Support for wide characters is currently not in the binding, as it
+-is not really in ncurses at this point in time.</LI>
+-</UL>
+-
+-<H2>Limitations</H2>
+-<UL>
+-<LI>I provide no SCREEN datatype and functions to set a new screen.
+-If you need this (mostly for debugging I guess), write a small
+-C routine doing all this and import it into your Ada program.</LI>
+-<LI>I provide no functions to switch on/off curses tracing options.
+-Same suggestion as above.</LI>
+-<LI>Although Ada95 is an OO Language, this binding doesn't provide
+-an OO abstraction of the (n)curses functionality. As mentioned above
+-it's a thin binding for the (n)curses functions. But without any
+-doubt it would be nice to build on top of this an OO abstraction
+-of (n)curses functionality.<BR>
+-The only exception is the method how fieldtypes are represented in
+-this Binding. We provide an abstract tagged type Field_Type from
+-which the various fieldtypes are derived.</LI>
+-<LI>I currently do not support the link_fieldtype functionality of the
+-forms subsystem.</LI>
+-<LI>The *_IO packages are currently output only.</LI>
+-</UL>
+-
+-<H2>Hierarchy of packages</H2>
+-<UL>
+-<LI><A HREF="ada/terminal_interface__ads.htm">Terminal_Interface</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses__ads.htm">Curses</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-mouse__ads.htm">Mouse</A>
+- <LI><A HREF="ada/terminal_interface-curses-panels__ads.htm">Panels</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-panels-user_data__ads.htm">User_Data</A>
+- </UL>
+- <LI><A HREF="ada/terminal_interface-curses-menus__ads.htm">Menus</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-menus-menu_user_data__ads.htm">Menu_User_Data</A>
+- <LI><A HREF="ada/terminal_interface-curses-menus-item_user_data__ads.htm">Item_User_Data</A>
+- </UL>
+- <LI><A HREF="ada/terminal_interface-curses-forms__ads.htm">Forms</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-forms-form_user_data__ads.htm">Form_User_Data</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_user_data__ads.htm">Field_User_Data</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types__ads.htm">Field_Types</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-alpha__ads.htm">Alpha</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">AlphaNumeric</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-intfield__ads.htm">IntField</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-numeric__ads.htm">Numeric</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-regexp__ads.htm">RegExp</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">IPV4_Address</A>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm">Enumeration</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">Ada</A>
+- </UL>
+- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-user__ads.htm">User</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm">Choice</A>
+- </UL>
+- </UL>
+- </UL>
+- <LI><A HREF="ada/terminal_interface-curses-text_io__ads.htm">Text_IO</A>
+- <UL><LI><A HREF="ada/terminal_interface-curses-text_io-integer_io__ads.htm">Integer_IO</A>
+- <LI><A HREF="ada/terminal_interface-curses-text_io-float_io__ads.htm">Float_IO</A>
+- <LI><A HREF="ada/terminal_interface-curses-text_io-fixed_io__ads.htm">Fixed_IO</A>
+- <LI><A HREF="ada/terminal_interface-curses-text_io-decimal_io__ads.htm">Decimal_IO</A>
+- <LI><A HREF="ada/terminal_interface-curses-text_io-modular_io__ads.htm">Modular_IO</A>
+- <LI><A HREF="ada/terminal_interface-curses-text_io-enumeration_io__ads.htm">Enumeration_IO</A>
+- <LI><A HREF="ada/terminal_interface-curses-text_io-complex_io__ads.htm">Complex_IO</A>
+- </UL>
+- </UL>
+- </UL>
+-</UL>
+-If you want to navigate through the html pages of the package specs, click <A HREF="ada/index.htm">here</A>.
+-<H2>Implementation Details</H2>
+-<H4>Behind the abstraction</H4>
+-All the new types like <STRONG>Window</STRONG>, <STRONG>Panel</STRONG>,
+-<STRONG>Menu</STRONG>, <STRONG>Form</STRONG> etc. are just
+-opaque representations of the pointers to the corresponding
+-low level (n)curses structures like
+-<STRONG>WINDOW *</STRONG>, <STRONG>PANEL *</STRONG>,
+-<STRONG>MENU *</STRONG> or <STRONG>FORM *</STRONG>.
+-So you can safely pass them to C routines that expect a pointer
+-to one of those structures.
+-<H4>Extended ripoffline() usage</H4>
+-The official documentation of (n)curses says, that the line parameter
+-determines only whether or not exactly <STRONG>one</STRONG> line is
+-stolen from the top or bottom of the screen. So essentially only the
+-sign of the parameter is evaluated. ncurses has internally implemented
+-it in a way, that uses the line parameter also to control the amount of
+-lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG>
+-routine of the binding.
+-<H4><A NAME="userpointer">How user defined field types work</A></H4>
+-TBD
+-<H4>Enumeration fields handling</H4>
+-The (n)curses documentation says, that the String arrays to be passed to
+-an TYPE_ENUM fieldtype must not be automatic variables. This is not true
+-in this binding, because it is internally arranged to safely copy these
+-values.
+-<H4><A NAME="compiler">Using other Ada compilers</A></H4>
+-This should basically not be a problem.
+-<H4>Port to other curses implementations</H4>
+-Basically it should not be too hard to make all this run on a regular SVr4
+-implementation of curses. The problems are probably these:<BR>
+-<UL>
+-<LI>ncurses has some additional features which are presented in this binding. You
+-have two choices to deal with this:
+-<UL>
+-<LI>Emulate the feature in this binding</LI>
+-<LI>Raise an exception for non implemented features</LI>
+-</UL>
+-Most likely you will follow a mixed approach. Some features are easy to simulate,
+-others will be hard if not impossible.</LI>
+-</UL>
+-I'm quite sure I forgot something.
+-</BODY>
+-</HTML>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++
++<html>
++<head>
++ <meta name="generator" content=
++ "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
++
++ <title>Ada95 Binding for ncurses</title>
++ <link rev="made" href="mailto:bug-ncurses@gnu.org">
++ <meta http-equiv="Content-Type" content=
++ "text/html; charset=us-ascii">
++</head>
++
++<body>
++ <h1>Ada95 Binding for ncurses</h1>
++
++ <p>by J&uuml;rgen Pfeifer.</p>
++ <hr>
++
++ <h2>General Remarks</h2>
++
++ <ul>
++ <li>This document describes Version 01.00 of the binding.</li>
++
++ <li>The functionality is modeled to be compatible with the
++ ncurses package, a clone of the SVr4 curses model.<br>
++ I did the development on an Intel box running the latest stable
++ release of <a href="http://www.linux.org">Linux</a>, ncurses
++ and the most recent released <a href="http://www.gnat.com">GNU
++ Ada Translator</a> gnat versions. For any older versions of
++ ncurses and gnat it is not guaranteed to work.</li>
++
++ <li>You must have the m4 macroprocessor to build this package.
++ If you don't have this program, you can get the FSF version
++ <a href="ftp://ftp.gnu.org/pub/gnu/">here</a>.</li>
++
++ <li>Ada programs are supposed to be readable. One of my
++ favorite methods to make code readable is to use expressive
++ names for the identifiers. You can find a list of a mapping of
++ the cryptic curses names to the Ada names in this <a href=
++ "ada/table.html">table</a>.</li>
++
++ <li>This is not a typical one-to-one interface mapping. It is
++ close to one-to-one on the functional level. Each (n)curses
++ function has it's counterpart with a more or less similar
++ formal parameter list in the binding. It is not one-to-one with
++ respect to the datatypes. I tried to make records out of the
++ flat chtype and similar structures, so you don't have to do bit
++ operations to mark an attributed character as bold. Just make
++ the boolean member <strong>bold</strong> of the record true.
++ The binding also hides the structures like WINDOW, PANEL, MENU,
++ FORM etc. ! It's a pure functional API.</li>
++
++ <li>I try to do as much error checking as possible and feasible
++ in the binding. I will raise an Ada exception when something
++ went wrong in the low-level curses. This has the effect that -
++ at least first time in my life - (n)curses programs have now a
++ very rigid error checking, but - thanks to Ada - you don't have
++ to code the orgiastic error checking style of C.</li>
++
++ <li>Support for wide characters is currently not in the
++ binding, as it is not really in ncurses at this point in
++ time.</li>
++ </ul>
++
++ <h2>Limitations</h2>
++
++ <ul>
++ <li>I provide no SCREEN datatype and functions to set a new
++ screen. If you need this (mostly for debugging I guess), write
++ a small C routine doing all this and import it into your Ada
++ program.</li>
++
++ <li>I provide no functions to switch on/off curses tracing
++ options. Same suggestion as above.</li>
++
++ <li>Although Ada95 is an OO Language, this binding doesn't
++ provide an OO abstraction of the (n)curses functionality. As
++ mentioned above it's a thin binding for the (n)curses
++ functions. But without any doubt it would be nice to build on
++ top of this an OO abstraction of (n)curses functionality.<br>
++ The only exception is the method how fieldtypes are represented
++ in this Binding. We provide an abstract tagged type Field_Type
++ from which the various fieldtypes are derived.</li>
++
++ <li>I currently do not support the link_fieldtype functionality
++ of the forms subsystem.</li>
++
++ <li>The *_IO packages are currently output only.</li>
++ </ul>
++
++ <h2>Hierarchy of packages</h2>
++
++ <ul>
++ <li>
++ <a href=
++ "ada/terminal_interface__ads.htm">Terminal_Interface</a>
++
++ <ul>
++ <li>
++ <a href=
++ "ada/terminal_interface-curses__ads.htm">Curses</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-mouse__ads.htm">Mouse</a></li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-panels__ads.htm">Panels</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-panels-user_data__ads.htm">
++ User_Data</a></li>
++ </ul>
++ </li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-menus__ads.htm">Menus</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-menus-menu_user_data__ads.htm">
++ Menu_User_Data</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-menus-item_user_data__ads.htm">
++ Item_User_Data</a></li>
++ </ul>
++ </li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-forms__ads.htm">Forms</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-forms-form_user_data__ads.htm">
++ Form_User_Data</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_user_data__ads.htm">
++ Field_User_Data</a></li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-forms-field_types__ads.htm">
++ Field_Types</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-alpha__ads.htm">
++ Alpha</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">
++ AlphaNumeric</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-intfield__ads.htm">
++ IntField</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-numeric__ads.htm">
++ Numeric</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-regexp__ads.htm">
++ RegExp</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">
++ IPV4_Address</a></li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm">
++ Enumeration</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">
++ Ada</a></li>
++ </ul>
++ </li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-forms-field_types-user__ads.htm">
++ User</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm">
++ Choice</a></li>
++ </ul>
++ </li>
++ </ul>
++ </li>
++ </ul>
++ </li>
++
++ <li>
++ <a href=
++ "ada/terminal_interface-curses-text_io__ads.htm">Text_IO</a>
++
++ <ul>
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-integer_io__ads.htm">
++ Integer_IO</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-float_io__ads.htm">
++ Float_IO</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-fixed_io__ads.htm">
++ Fixed_IO</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-decimal_io__ads.htm">
++ Decimal_IO</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-modular_io__ads.htm">
++ Modular_IO</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-enumeration_io__ads.htm">
++ Enumeration_IO</a></li>
++
++ <li><a href=
++ "ada/terminal_interface-curses-text_io-complex_io__ads.htm">
++ Complex_IO</a></li>
++ </ul>
++ </li>
++ </ul>
++ </li>
++ </ul>
++ </li>
++ </ul>
++
++ <p>If you want to navigate through the html pages of the package
++ specs, click <a href="ada/index.htm">here</a>.</p>
++
++ <h2>Implementation Details</h2>
++
++ <h4>Behind the abstraction</h4>
++
++ <p>All the new types like <strong>Window</strong>,
++ <strong>Panel</strong>, <strong>Menu</strong>,
++ <strong>Form</strong> etc. are just opaque representations of the
++ pointers to the corresponding low level (n)curses structures like
++ <strong>WINDOW *</strong>, <strong>PANEL *</strong>, <strong>MENU
++ *</strong> or <strong>FORM *</strong>. So you can safely pass
++ them to C routines that expect a pointer to one of those
++ structures.</p>
++
++ <h4>Extended ripoffline() usage</h4>
++
++ <p>The official documentation of (n)curses says, that the line
++ parameter determines only whether or not exactly
++ <strong>one</strong> line is stolen from the top or bottom of the
++ screen. So essentially only the sign of the parameter is
++ evaluated. ncurses has internally implemented it in a way, that
++ uses the line parameter also to control the amount of lines to
++ steal. This mechanism is used in the
++ <strong>Rip_Off_Lines</strong> routine of the binding.</p>
++
++ <h4><a name="userpointer" id="userpointer">How user defined field
++ types work</a></h4>
++
++ <p>TBD</p>
++
++ <h4>Enumeration fields handling</h4>
++
++ <p>The (n)curses documentation says, that the String arrays to be
++ passed to an TYPE_ENUM fieldtype must not be automatic variables.
++ This is not true in this binding, because it is internally
++ arranged to safely copy these values.</p>
++
++ <h4><a name="compiler" id="compiler">Using other Ada
++ compilers</a></h4>
++
++ <p>This should basically not be a problem.</p>
++
++ <h4>Port to other curses implementations</h4>
++
++ <p>Basically it should not be too hard to make all this run on a
++ regular SVr4 implementation of curses. The problems are probably
++ these:<br></p>
++
++ <ul>
++ <li>ncurses has some additional features which are presented in
++ this binding. You have two choices to deal with this:
++
++ <ul>
++ <li>Emulate the feature in this binding</li>
++
++ <li>Raise an exception for non implemented features</li>
++ </ul>
++
++ <p>Most likely you will follow a mixed approach. Some
++ features are easy to simulate, others will be hard if not
++ impossible.</p>
++ </li>
++ </ul>
++
++ <p>I'm quite sure I forgot something.</p>
++</body>
++</html>
+Index: doc/html/NCURSES-Programming-HOWTO.html
+--- ncurses-5.9/doc/html/NCURSES-Programming-HOWTO.html 2005-06-21 21:50:00.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/NCURSES-Programming-HOWTO.html 2014-01-04 23:56:00.000000000 +0000
+@@ -1,516 +1,1282 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<html>
+-<head>
+-<meta name="generator" content=
+-"HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org">
+-<title>NCURSES Programming HOWTO</title>
+-<meta name="GENERATOR" content=
+-"Modular DocBook HTML Stylesheet Version 1.7">
+-</head>
+-<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
+-"#0000FF" vlink="#840084" alink="#0000FF">
+-<div class="ARTICLE">
+-<div class="TITLEPAGE">
+-<h1 class="TITLE"><a name="AEN2" id="AEN2">NCURSES Programming
+-HOWTO</a></h1>
+-<h3 class="AUTHOR"><a name="AEN4" id="AEN4">Pradeep Padala</a></h3>
+-<div class="AFFILIATION">
+-<div class="ADDRESS">
+-<p class="ADDRESS"><code class="EMAIL">&lt;<a href=
+-"mailto:ppadala@gmail.com">ppadala@gmail.com</a>&gt;</code></p>
+-</div>
+-</div>
+-<p class="PUBDATE">v1.9, 2005-06-20<br></p>
+-<div class="REVHISTORY">
+-<table width="100%" border="0">
+-<tr>
+-<th align="left" valign="top" colspan="3"><b>Revision
+-History</b></th>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.9</td>
+-<td align="left">2005-06-20</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">The license has been changed to the
+-MIT-style license used by NCURSES. Note that the programs are also
+-re-licensed under this.</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.8</td>
+-<td align="left">2005-06-17</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Lots of updates. Added references and
+-perl examples. Changes to examples. Many grammatical and stylistic
+-changes to the content. Changes to NCURSES history.</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.7.1</td>
+-<td align="left">2002-06-25</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Added a README file for building and
+-instructions for building from source.</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.7</td>
+-<td align="left">2002-06-25</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Added "Other formats" section and made
+-a lot of fancy changes to the programs. Inlining of programs is
+-gone.</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.6.1</td>
+-<td align="left">2002-02-24</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Removed the old Changelog section,
+-cleaned the makefiles</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.6</td>
+-<td align="left">2002-02-16</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Corrected a lot of spelling mistakes,
+-added ACS variables section</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.5</td>
+-<td align="left">2002-01-05</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Changed structure to present proper
+-TOC</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.3.1</td>
+-<td align="left">2001-07-26</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Corrected maintainers paragraph,
+-Corrected stable release number</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.3</td>
+-<td align="left">2001-07-24</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Added copyright notices to main
+-document (LDP license) and programs (GPL), Corrected
+-printw_example.</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.2</td>
+-<td align="left">2001-06-05</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Incorporated ravi's changes. Mainly to
+-introduction, menu, form, justforfun sections</td>
+-</tr>
+-<tr>
+-<td align="left">Revision 1.1</td>
+-<td align="left">2001-05-22</td>
+-<td align="left">Revised by: ppadala</td>
+-</tr>
+-<tr>
+-<td align="left" colspan="3">Added "a word about window" section,
+-Added scanw_example.</td>
+-</tr>
+-</table>
+-</div>
+-<div>
+-<div class="ABSTRACT"><a name="AEN67" id="AEN67"></a>
+-<p><em>This document is intended to be an "All in One" guide for
+-programming with ncurses and its sister libraries. We graduate from
+-a simple "Hello World" program to more complex form manipulation.
+-No prior experience in ncurses is assumed. Send comments to
+-<a href="mailto:ppadala@gmail.com" target="_top">this
+-address</a></em></p>
+-</div>
+-</div>
+-<hr></div>
+-<div class="TOC">
+-<dl>
+-<dt><b>Table of Contents</b></dt>
+-<dt>1. <a href="#INTRO">Introduction</a></dt>
+-<dd>
+-<dl>
+-<dt>1.1. <a href="#WHATIS">What is NCURSES?</a></dt>
+-<dt>1.2. <a href="#WHATCANWEDO">What we can do with
+-NCURSES</a></dt>
+-<dt>1.3. <a href="#WHERETOGETIT">Where to get it</a></dt>
+-<dt>1.4. <a href="#PURPOSE">Purpose/Scope of the document</a></dt>
+-<dt>1.5. <a href="#ABOUTPROGRAMS">About the Programs</a></dt>
+-<dt>1.6. <a href="#OTHERFORMATS">Other Formats of the
+-document</a></dt>
+-<dt>1.7. <a href="#CREDITS">Credits</a></dt>
+-<dt>1.8. <a href="#WISHLIST">Wish List</a></dt>
+-<dt>1.9. <a href="#COPYRIGHT">Copyright</a></dt>
+-</dl>
+-</dd>
+-<dt>2. <a href="#HELLOWORLD">Hello World !!!</a></dt>
+-<dd>
+-<dl>
+-<dt>2.1. <a href="#COMPILECURSES">Compiling With the NCURSES
+-Library</a></dt>
+-<dt>2.2. <a href="#DISSECTION">Dissection</a></dt>
+-</dl>
+-</dd>
+-<dt>3. <a href="#GORY">The Gory Details</a></dt>
+-<dt>4. <a href="#INIT">Initialization</a></dt>
+-<dd>
+-<dl>
+-<dt>4.1. <a href="#ABOUTINIT">Initialization functions</a></dt>
+-<dt>4.2. <a href="#RAWCBREAK">raw() and cbreak()</a></dt>
+-<dt>4.3. <a href="#ECHONOECHO">echo() and noecho()</a></dt>
+-<dt>4.4. <a href="#KEYPAD">keypad()</a></dt>
+-<dt>4.5. <a href="#HALFDELAY">halfdelay()</a></dt>
+-<dt>4.6. <a href="#MISCINIT">Miscellaneous Initialization
+-functions</a></dt>
+-<dt>4.7. <a href="#INITEX">An Example</a></dt>
+-</dl>
+-</dd>
+-<dt>5. <a href="#AWORDWINDOWS">A Word about Windows</a></dt>
+-<dt>6. <a href="#PRINTW">Output functions</a></dt>
+-<dd>
+-<dl>
+-<dt>6.1. <a href="#ADDCHCLASS">addch() class of functions</a></dt>
+-<dt>6.2. <a href="#AEN298">mvaddch(), waddch() and
+-mvwaddch()</a></dt>
+-<dt>6.3. <a href="#PRINTWCLASS">printw() class of
+-functions</a></dt>
+-<dt>6.4. <a href="#ADDSTRCLASS">addstr() class of
+-functions</a></dt>
+-<dt>6.5. <a href="#ACAUTION">A word of caution</a></dt>
+-</dl>
+-</dd>
+-<dt>7. <a href="#SCANW">Input functions</a></dt>
+-<dd>
+-<dl>
+-<dt>7.1. <a href="#GETCHCLASS">getch() class of functions</a></dt>
+-<dt>7.2. <a href="#SCANWCLASS">scanw() class of functions</a></dt>
+-<dt>7.3. <a href="#GETSTRCLASS">getstr() class of
+-functions</a></dt>
+-<dt>7.4. <a href="#GETSTREX">Some examples</a></dt>
+-</dl>
+-</dd>
+-<dt>8. <a href="#ATTRIB">Attributes</a></dt>
+-<dd>
+-<dl>
+-<dt>8.1. <a href="#ATTRIBDETAILS">The details</a></dt>
+-<dt>8.2. <a href="#ATTRONVSATTRSET">attron() vs attrset()</a></dt>
+-<dt>8.3. <a href="#ATTR_GET">attr_get()</a></dt>
+-<dt>8.4. <a href="#ATTR_FUNCS">attr_ functions</a></dt>
+-<dt>8.5. <a href="#WATTRFUNCS">wattr functions</a></dt>
+-<dt>8.6. <a href="#CHGAT">chgat() functions</a></dt>
+-</dl>
+-</dd>
+-<dt>9. <a href="#WINDOWS">Windows</a></dt>
+-<dd>
+-<dl>
+-<dt>9.1. <a href="#WINDOWBASICS">The basics</a></dt>
+-<dt>9.2. <a href="#LETBEWINDOW">Let there be a Window !!!</a></dt>
+-<dt>9.3. <a href="#BORDEREXEXPL">Explanation</a></dt>
+-<dt>9.4. <a href="#OTHERSTUFF">The other stuff in the
+-example</a></dt>
+-<dt>9.5. <a href="#OTHERBORDERFUNCS">Other Border
+-functions</a></dt>
+-</dl>
+-</dd>
+-<dt>10. <a href="#COLOR">Colors</a></dt>
+-<dd>
+-<dl>
+-<dt>10.1. <a href="#COLORBASICS">The basics</a></dt>
+-<dt>10.2. <a href="#CHANGECOLORDEFS">Changing Color
+-Definitions</a></dt>
+-<dt>10.3. <a href="#COLORCONTENT">Color Content</a></dt>
+-</dl>
+-</dd>
+-<dt>11. <a href="#KEYS">Interfacing with the key board</a></dt>
+-<dd>
+-<dl>
+-<dt>11.1. <a href="#KEYSBASICS">The Basics</a></dt>
+-<dt>11.2. <a href="#SIMPLEKEYEX">A Simple Key Usage
+-example</a></dt>
+-</dl>
+-</dd>
+-<dt>12. <a href="#MOUSE">Interfacing with the mouse</a></dt>
+-<dd>
+-<dl>
+-<dt>12.1. <a href="#MOUSEBASICS">The Basics</a></dt>
+-<dt>12.2. <a href="#GETTINGEVENTS">Getting the events</a></dt>
+-<dt>12.3. <a href="#MOUSETOGETHER">Putting it all Together</a></dt>
+-<dt>12.4. <a href="#MISCMOUSEFUNCS">Miscellaneous
+-Functions</a></dt>
+-</dl>
+-</dd>
+-<dt>13. <a href="#SCREEN">Screen Manipulation</a></dt>
+-<dd>
+-<dl>
+-<dt>13.1. <a href="#GETYX">getyx() functions</a></dt>
+-<dt>13.2. <a href="#SCREENDUMP">Screen Dumping</a></dt>
+-<dt>13.3. <a href="#WINDOWDUMP">Window Dumping</a></dt>
+-</dl>
+-</dd>
+-<dt>14. <a href="#MISC">Miscellaneous features</a></dt>
+-<dd>
+-<dl>
+-<dt>14.1. <a href="#CURSSET">curs_set()</a></dt>
+-<dt>14.2. <a href="#TEMPLEAVE">Temporarily Leaving Curses
+-mode</a></dt>
+-<dt>14.3. <a href="#ACSVARS">ACS_ variables</a></dt>
+-</dl>
+-</dd>
+-<dt>15. <a href="#OTHERLIB">Other libraries</a></dt>
+-<dt>16. <a href="#PANELS">Panel Library</a></dt>
+-<dd>
+-<dl>
+-<dt>16.1. <a href="#PANELBASICS">The Basics</a></dt>
+-<dt>16.2. <a href="#COMPILEPANELS">Compiling With the Panels
+-Library</a></dt>
+-<dt>16.3. <a href="#PANELBROWSING">Panel Window Browsing</a></dt>
+-<dt>16.4. <a href="#USERPTRUSING">Using User Pointers</a></dt>
+-<dt>16.5. <a href="#PANELMOVERESIZE">Moving and Resizing
+-Panels</a></dt>
+-<dt>16.6. <a href="#PANELSHOWHIDE">Hiding and Showing
+-Panels</a></dt>
+-<dt>16.7. <a href="#PANELABOVE">panel_above() and panel_below()
+-Functions</a></dt>
+-</dl>
+-</dd>
+-<dt>17. <a href="#MENUS">Menus Library</a></dt>
+-<dd>
+-<dl>
+-<dt>17.1. <a href="#MENUBASICS">The Basics</a></dt>
+-<dt>17.2. <a href="#COMPILEMENUS">Compiling With the Menu
+-Library</a></dt>
+-<dt>17.3. <a href="#MENUDRIVER">Menu Driver: The work horse of the
+-menu system</a></dt>
+-<dt>17.4. <a href="#MENUWINDOWS">Menu Windows</a></dt>
+-<dt>17.5. <a href="#SCROLLMENUS">Scrolling Menus</a></dt>
+-<dt>17.6. <a href="#MULTICOLUMN">Multi Columnar Menus</a></dt>
+-<dt>17.7. <a href="#MULTIVALUEMENUS">Multi Valued Menus</a></dt>
+-<dt>17.8. <a href="#MENUOPT">Menu Options</a></dt>
+-<dt>17.9. <a href="#MENUUSERPTR">The useful User Pointer</a></dt>
+-</dl>
+-</dd>
+-<dt>18. <a href="#FORMS">Forms Library</a></dt>
+-<dd>
+-<dl>
+-<dt>18.1. <a href="#FORMBASICS">The Basics</a></dt>
+-<dt>18.2. <a href="#COMPILEFORMS">Compiling With the Forms
+-Library</a></dt>
+-<dt>18.3. <a href="#PLAYFIELDS">Playing with Fields</a></dt>
+-<dt>18.4. <a href="#FORMWINDOWS">Form Windows</a></dt>
+-<dt>18.5. <a href="#FILEDVALIDATE">Field Validation</a></dt>
+-<dt>18.6. <a href="#FORMDRIVER">Form Driver: The work horse of the
+-forms system</a></dt>
+-</dl>
+-</dd>
+-<dt>19. <a href="#TOOLS">Tools and Widget Libraries</a></dt>
+-<dd>
+-<dl>
+-<dt>19.1. <a href="#CDK">CDK (Curses Development Kit)</a></dt>
+-<dt>19.2. <a href="#DIALOG">The dialog</a></dt>
+-<dt>19.3. <a href="#PERLCURSES">Perl Curses Modules CURSES::FORM
+-and CURSES::WIDGETS</a></dt>
+-</dl>
+-</dd>
+-<dt>20. <a href="#JUSTFORFUN">Just For Fun !!!</a></dt>
+-<dd>
+-<dl>
+-<dt>20.1. <a href="#GAMEOFLIFE">The Game of Life</a></dt>
+-<dt>20.2. <a href="#MAGIC">Magic Square</a></dt>
+-<dt>20.3. <a href="#HANOI">Towers of Hanoi</a></dt>
+-<dt>20.4. <a href="#QUEENS">Queens Puzzle</a></dt>
+-<dt>20.5. <a href="#SHUFFLE">Shuffle</a></dt>
+-<dt>20.6. <a href="#TT">Typing Tutor</a></dt>
+-</dl>
+-</dd>
+-<dt>21. <a href="#REF">References</a></dt>
+-</dl>
+-</div>
+-<div class="SECT1">
+-<h2 class="SECT1"><a name="INTRO" id="INTRO">1.
+-Introduction</a></h2>
+-<p>In the olden days of teletype terminals, terminals were away
+-from computers and were connected to them through serial cables.
+-The terminals could be configured by sending a series of bytes. All
+-the capabilities (such as moving the cursor to a new location,
+-erasing part of the screen, scrolling the screen, changing modes
+-etc.) of terminals could be accessed through these series of bytes.
+-These control seeuqnces are usually called escape sequences,
+-because they start with an escape(0x1B) character. Even today, with
+-proper emulation, we can send escape sequences to the emulator and
+-achieve the same effect on a terminal window.</p>
+-<p>Suppose you wanted to print a line in color. Try typing this on
+-your console.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">echo "^[[0;31;40mIn Color"</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The first character is an escape character, which looks like two
+-characters ^ and [. To be able to print it, you have to press
+-CTRL+V and then the ESC key. All the others are normal printable
+-characters. You should be able to see the string "In Color" in red.
+-It stays that way and to revert back to the original mode type
+-this.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">echo "^[[0;37;40m"</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Now, what do these magic characters mean? Difficult to
+-comprehend? They might even be different for different terminals.
+-So the designers of UNIX invented a mechanism named <var class=
+-"LITERAL">termcap</var>. It is a file that lists all the
+-capabilities of a particular terminal, along with the escape
+-sequences needed to achieve a particular effect. In the later
+-years, this was replaced by <var class="LITERAL">terminfo</var>.
+-Without delving too much into details, this mechanism allows
+-application programs to query the terminfo database and obtain the
+-control characters to be sent to a terminal or terminal
+-emulator.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WHATIS" id="WHATIS">1.1. What is
+-NCURSES?</a></h3>
+-<p>You might be wondering, what the import of all this technical
+-gibberish is. In the above scenario, every application program is
+-supposed to query the terminfo and perform the necessary stuff
+-(sending control characters etc.). It soon became difficult to
+-manage this complexity and this gave birth to 'CURSES'. Curses is a
+-pun on the name "cursor optimization". The Curses library forms a
+-wrapper over working with raw terminal codes, and provides highly
+-flexible and efficient API (Application Programming Interface). It
+-provides functions to move the cursor, create windows, produce
+-colors, play with mouse etc. The application programs need not
+-worry about the underlying terminal capabilities.</p>
+-<p>So what is NCURSES? NCURSES is a clone of the original System V
+-Release 4.0 (SVr4) curses. It is a freely distributable library,
+-fully compatible with older version of curses. In short, it is a
+-library of functions that manages an application's display on
+-character-cell terminals. In the remainder of the document, the
+-terms curses and ncurses are used interchangeably.</p>
+-<p>A detailed history of NCURSES can be found in the NEWS file from
+-the source distribution. The current package is maintained by
+-<a href="mailto:dickey@his.com" target="_top">Thomas Dickey</a>.
+-You can contact the maintainers at <a href=
+-"mailto:bug-ncurses@gnu.org" target=
+-"_top">bug-ncurses@gnu.org</a>.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WHATCANWEDO" id="WHATCANWEDO">1.2. What
+-we can do with NCURSES</a></h3>
+-<p>NCURSES not only creates a wrapper over terminal capabilities,
+-but also gives a robust framework to create nice looking UI (User
+-Interface)s in text mode. It provides functions to create windows
+-etc. Its sister libraries panel, menu and form provide an extension
+-to the basic curses library. These libraries usually come along
+-with curses. One can create applications that contain multiple
+-windows, menus, panels and forms. Windows can be managed
+-independently, can provide 'scrollability' and even can be
+-hidden.</p>
+-<p>Menus provide the user with an easy command selection option.
+-Forms allow the creation of easy-to-use data entry and display
+-windows. Panels extend the capabilities of ncurses to deal with
+-overlapping and stacked windows.</p>
+-<p>These are just some of the basic things we can do with ncurses.
+-As we move along, We will see all the capabilities of these
+-libraries.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WHERETOGETIT" id="WHERETOGETIT">1.3.
+-Where to get it</a></h3>
+-<p>All right, now that you know what you can do with ncurses, you
+-must be rearing to get started. NCURSES is usually shipped with
+-your installation. In case you don't have the library or want to
+-compile it on your own, read on.</p>
+-<p><em>Compiling the package</em></p>
+-<p>NCURSES can be obtained from <a href=
+-"ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz" target=
+-"_top">ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</a> or any
+-of the ftp sites mentioned in <a href=
+-"http://www.gnu.org/order/ftp.html" target=
+-"_top">http://www.gnu.org/order/ftp.html</a>.</p>
+-<p>Read the README and INSTALL files for details on to how to
+-install it. It usually involves the following operations.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
++<HTML
++><HEAD
++><TITLE
++> NCURSES Programming HOWTO </TITLE
++><META
++NAME="GENERATOR"
++CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
++><BODY
++CLASS="ARTICLE"
++BGCOLOR="#FFFFFF"
++TEXT="#000000"
++LINK="#0000FF"
++VLINK="#840084"
++ALINK="#0000FF"
++><DIV
++CLASS="ARTICLE"
++><DIV
++CLASS="TITLEPAGE"
++><H1
++CLASS="TITLE"
++><A
++NAME="AEN2"
++>NCURSES Programming HOWTO</A
++></H1
++><H3
++CLASS="AUTHOR"
++><A
++NAME="AEN4"
++> Pradeep Padala </A
++></H3
++><DIV
++CLASS="AFFILIATION"
++><DIV
++CLASS="ADDRESS"
++><P
++CLASS="ADDRESS"
++><CODE
++CLASS="EMAIL"
++>&#60;<A
++HREF="mailto:ppadala@gmail.com"
++>ppadala@gmail.com</A
++>&#62;</CODE
++></P
++></DIV
++></DIV
++><P
++CLASS="PUBDATE"
++>v1.9, 2005-06-20<BR></P
++><DIV
++CLASS="REVHISTORY"
++><TABLE
++WIDTH="100%"
++BORDER="0"
++><TR
++><TH
++ALIGN="LEFT"
++VALIGN="TOP"
++COLSPAN="3"
++><B
++>Revision History</B
++></TH
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.9</TD
++><TD
++ALIGN="LEFT"
++>2005-06-20</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>The license has been changed to the MIT-style license used
++ by NCURSES. Note that the programs are also re-licensed under this.</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.8</TD
++><TD
++ALIGN="LEFT"
++>2005-06-17</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Lots of updates. Added references and perl examples.
++ Changes to examples. Many grammatical and stylistic changes to the
++ content. Changes to NCURSES history.</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.7.1</TD
++><TD
++ALIGN="LEFT"
++>2002-06-25</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Added a README file for building and instructions
++ for building from source.</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.7</TD
++><TD
++ALIGN="LEFT"
++>2002-06-25</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Added "Other formats" section and made a lot of fancy
++ changes to the programs. Inlining of programs is gone.</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.6.1</TD
++><TD
++ALIGN="LEFT"
++>2002-02-24</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Removed the old Changelog section, cleaned the makefiles</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.6</TD
++><TD
++ALIGN="LEFT"
++>2002-02-16</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Corrected a lot of spelling mistakes, added ACS variables
++ section</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.5</TD
++><TD
++ALIGN="LEFT"
++>2002-01-05</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Changed structure to present proper TOC</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.3.1</TD
++><TD
++ALIGN="LEFT"
++>2001-07-26</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Corrected maintainers paragraph, Corrected stable release number</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.3</TD
++><TD
++ALIGN="LEFT"
++>2001-07-24</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Added copyright notices to main document (LDP license)
++ and programs (GPL), Corrected
++ printw_example.</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.2</TD
++><TD
++ALIGN="LEFT"
++>2001-06-05</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Incorporated ravi's changes. Mainly to introduction, menu,
++ form, justforfun sections</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++>Revision 1.1</TD
++><TD
++ALIGN="LEFT"
++>2001-05-22</TD
++><TD
++ALIGN="LEFT"
++>Revised by: ppadala</TD
++></TR
++><TR
++><TD
++ALIGN="LEFT"
++COLSPAN="3"
++>Added "a word about window" section, Added scanw_example.</TD
++></TR
++></TABLE
++></DIV
++><DIV
++><DIV
++CLASS="ABSTRACT"
++><P
++></P
++><A
++NAME="AEN67"
++></A
++><P
++> <SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>This document is intended to be an "All in One" guide for programming with
++ncurses and its sister libraries. We graduate from a simple "Hello World"
++program to more complex form manipulation. No prior experience in ncurses is
++assumed. Send comments to <A
++HREF="mailto:ppadala@gmail.com"
++TARGET="_top"
++>this address</A
++>
++ </I
++></SPAN
++>
++ </P
++><P
++></P
++></DIV
++></DIV
++><HR></DIV
++><DIV
++CLASS="TOC"
++><DL
++><DT
++><B
++>Table of Contents</B
++></DT
++><DT
++>1. <A
++HREF="#INTRO"
++>Introduction</A
++></DT
++><DD
++><DL
++><DT
++>1.1. <A
++HREF="#WHATIS"
++>What is NCURSES?</A
++></DT
++><DT
++>1.2. <A
++HREF="#WHATCANWEDO"
++>What we can do with NCURSES</A
++></DT
++><DT
++>1.3. <A
++HREF="#WHERETOGETIT"
++>Where to get it</A
++></DT
++><DT
++>1.4. <A
++HREF="#PURPOSE"
++>Purpose/Scope of the document</A
++></DT
++><DT
++>1.5. <A
++HREF="#ABOUTPROGRAMS"
++>About the Programs</A
++></DT
++><DT
++>1.6. <A
++HREF="#OTHERFORMATS"
++>Other Formats of the document</A
++></DT
++><DD
++><DL
++><DT
++>1.6.1. <A
++HREF="#LISTFORMATS"
++>Readily available formats from tldp.org</A
++></DT
++><DT
++>1.6.2. <A
++HREF="#BUILDSOURCE"
++>Building from source</A
++></DT
++></DL
++></DD
++><DT
++>1.7. <A
++HREF="#CREDITS"
++>Credits</A
++></DT
++><DT
++>1.8. <A
++HREF="#WISHLIST"
++>Wish List</A
++></DT
++><DT
++>1.9. <A
++HREF="#COPYRIGHT"
++>Copyright</A
++></DT
++></DL
++></DD
++><DT
++>2. <A
++HREF="#HELLOWORLD"
++>Hello World !!!</A
++></DT
++><DD
++><DL
++><DT
++>2.1. <A
++HREF="#COMPILECURSES"
++>Compiling With the NCURSES Library</A
++></DT
++><DT
++>2.2. <A
++HREF="#DISSECTION"
++>Dissection</A
++></DT
++><DD
++><DL
++><DT
++>2.2.1. <A
++HREF="#ABOUT-INITSCR"
++>About initscr()</A
++></DT
++><DT
++>2.2.2. <A
++HREF="#MYST-REFRESH"
++>The mysterious refresh()</A
++></DT
++><DT
++>2.2.3. <A
++HREF="#ABOUT-ENDWIN"
++>About endwin()</A
++></DT
++></DL
++></DD
++></DL
++></DD
++><DT
++>3. <A
++HREF="#GORY"
++>The Gory Details</A
++></DT
++><DT
++>4. <A
++HREF="#INIT"
++>Initialization</A
++></DT
++><DD
++><DL
++><DT
++>4.1. <A
++HREF="#ABOUTINIT"
++>Initialization functions</A
++></DT
++><DT
++>4.2. <A
++HREF="#RAWCBREAK"
++>raw() and cbreak()</A
++></DT
++><DT
++>4.3. <A
++HREF="#ECHONOECHO"
++>echo() and noecho()</A
++></DT
++><DT
++>4.4. <A
++HREF="#KEYPAD"
++>keypad()</A
++></DT
++><DT
++>4.5. <A
++HREF="#HALFDELAY"
++>halfdelay()</A
++></DT
++><DT
++>4.6. <A
++HREF="#MISCINIT"
++>Miscellaneous Initialization functions</A
++></DT
++><DT
++>4.7. <A
++HREF="#INITEX"
++>An Example</A
++></DT
++></DL
++></DD
++><DT
++>5. <A
++HREF="#AWORDWINDOWS"
++>A Word about Windows</A
++></DT
++><DT
++>6. <A
++HREF="#PRINTW"
++>Output functions</A
++></DT
++><DD
++><DL
++><DT
++>6.1. <A
++HREF="#ADDCHCLASS"
++>addch() class of functions</A
++></DT
++><DT
++>6.2. <A
++HREF="#AEN298"
++>mvaddch(), waddch() and mvwaddch()</A
++></DT
++><DT
++>6.3. <A
++HREF="#PRINTWCLASS"
++>printw() class of functions</A
++></DT
++><DD
++><DL
++><DT
++>6.3.1. <A
++HREF="#PRINTWMVPRINTW"
++>printw() and mvprintw</A
++></DT
++><DT
++>6.3.2. <A
++HREF="#WPRINTWMVWPRINTW"
++>wprintw() and mvwprintw</A
++></DT
++><DT
++>6.3.3. <A
++HREF="#VWPRINTW"
++>vwprintw()</A
++></DT
++><DT
++>6.3.4. <A
++HREF="#SIMPLEPRINTWEX"
++>A Simple printw example</A
++></DT
++></DL
++></DD
++><DT
++>6.4. <A
++HREF="#ADDSTRCLASS"
++>addstr() class of functions</A
++></DT
++><DT
++>6.5. <A
++HREF="#ACAUTION"
++>A word of caution</A
++></DT
++></DL
++></DD
++><DT
++>7. <A
++HREF="#SCANW"
++>Input functions</A
++></DT
++><DD
++><DL
++><DT
++>7.1. <A
++HREF="#GETCHCLASS"
++>getch() class of functions</A
++></DT
++><DT
++>7.2. <A
++HREF="#SCANWCLASS"
++>scanw() class of functions</A
++></DT
++><DD
++><DL
++><DT
++>7.2.1. <A
++HREF="#SCANWMVSCANW"
++>scanw() and mvscanw</A
++></DT
++><DT
++>7.2.2. <A
++HREF="#WSCANWMVWSCANW"
++>wscanw() and mvwscanw()</A
++></DT
++><DT
++>7.2.3. <A
++HREF="#VWSCANW"
++>vwscanw()</A
++></DT
++></DL
++></DD
++><DT
++>7.3. <A
++HREF="#GETSTRCLASS"
++>getstr() class of functions</A
++></DT
++><DT
++>7.4. <A
++HREF="#GETSTREX"
++>Some examples</A
++></DT
++></DL
++></DD
++><DT
++>8. <A
++HREF="#ATTRIB"
++>Attributes</A
++></DT
++><DD
++><DL
++><DT
++>8.1. <A
++HREF="#ATTRIBDETAILS"
++>The details</A
++></DT
++><DT
++>8.2. <A
++HREF="#ATTRONVSATTRSET"
++>attron() vs attrset()</A
++></DT
++><DT
++>8.3. <A
++HREF="#ATTR_GET"
++>attr_get()</A
++></DT
++><DT
++>8.4. <A
++HREF="#ATTR_FUNCS"
++>attr_ functions</A
++></DT
++><DT
++>8.5. <A
++HREF="#WATTRFUNCS"
++>wattr functions</A
++></DT
++><DT
++>8.6. <A
++HREF="#CHGAT"
++>chgat() functions</A
++></DT
++></DL
++></DD
++><DT
++>9. <A
++HREF="#WINDOWS"
++>Windows</A
++></DT
++><DD
++><DL
++><DT
++>9.1. <A
++HREF="#WINDOWBASICS"
++>The basics</A
++></DT
++><DT
++>9.2. <A
++HREF="#LETBEWINDOW"
++>Let there be a Window !!!</A
++></DT
++><DT
++>9.3. <A
++HREF="#BORDEREXEXPL"
++>Explanation</A
++></DT
++><DT
++>9.4. <A
++HREF="#OTHERSTUFF"
++>The other stuff in the example</A
++></DT
++><DT
++>9.5. <A
++HREF="#OTHERBORDERFUNCS"
++>Other Border functions</A
++></DT
++></DL
++></DD
++><DT
++>10. <A
++HREF="#COLOR"
++>Colors</A
++></DT
++><DD
++><DL
++><DT
++>10.1. <A
++HREF="#COLORBASICS"
++>The basics</A
++></DT
++><DT
++>10.2. <A
++HREF="#CHANGECOLORDEFS"
++>Changing Color Definitions</A
++></DT
++><DT
++>10.3. <A
++HREF="#COLORCONTENT"
++>Color Content</A
++></DT
++></DL
++></DD
++><DT
++>11. <A
++HREF="#KEYS"
++>Interfacing with the key board</A
++></DT
++><DD
++><DL
++><DT
++>11.1. <A
++HREF="#KEYSBASICS"
++>The Basics</A
++></DT
++><DT
++>11.2. <A
++HREF="#SIMPLEKEYEX"
++>A Simple Key Usage example</A
++></DT
++></DL
++></DD
++><DT
++>12. <A
++HREF="#MOUSE"
++>Interfacing with the mouse</A
++></DT
++><DD
++><DL
++><DT
++>12.1. <A
++HREF="#MOUSEBASICS"
++>The Basics</A
++></DT
++><DT
++>12.2. <A
++HREF="#GETTINGEVENTS"
++>Getting the events</A
++></DT
++><DT
++>12.3. <A
++HREF="#MOUSETOGETHER"
++>Putting it all Together</A
++></DT
++><DT
++>12.4. <A
++HREF="#MISCMOUSEFUNCS"
++>Miscellaneous Functions</A
++></DT
++></DL
++></DD
++><DT
++>13. <A
++HREF="#SCREEN"
++>Screen Manipulation</A
++></DT
++><DD
++><DL
++><DT
++>13.1. <A
++HREF="#GETYX"
++>getyx() functions</A
++></DT
++><DT
++>13.2. <A
++HREF="#SCREENDUMP"
++>Screen Dumping</A
++></DT
++><DT
++>13.3. <A
++HREF="#WINDOWDUMP"
++>Window Dumping</A
++></DT
++></DL
++></DD
++><DT
++>14. <A
++HREF="#MISC"
++>Miscellaneous features</A
++></DT
++><DD
++><DL
++><DT
++>14.1. <A
++HREF="#CURSSET"
++>curs_set()</A
++></DT
++><DT
++>14.2. <A
++HREF="#TEMPLEAVE"
++>Temporarily Leaving Curses mode</A
++></DT
++><DT
++>14.3. <A
++HREF="#ACSVARS"
++>ACS_ variables</A
++></DT
++></DL
++></DD
++><DT
++>15. <A
++HREF="#OTHERLIB"
++>Other libraries</A
++></DT
++><DT
++>16. <A
++HREF="#PANELS"
++>Panel Library</A
++></DT
++><DD
++><DL
++><DT
++>16.1. <A
++HREF="#PANELBASICS"
++>The Basics</A
++></DT
++><DT
++>16.2. <A
++HREF="#COMPILEPANELS"
++>Compiling With the Panels Library</A
++></DT
++><DT
++>16.3. <A
++HREF="#PANELBROWSING"
++>Panel Window Browsing</A
++></DT
++><DT
++>16.4. <A
++HREF="#USERPTRUSING"
++>Using User Pointers</A
++></DT
++><DT
++>16.5. <A
++HREF="#PANELMOVERESIZE"
++>Moving and Resizing Panels</A
++></DT
++><DT
++>16.6. <A
++HREF="#PANELSHOWHIDE"
++>Hiding and Showing Panels</A
++></DT
++><DT
++>16.7. <A
++HREF="#PANELABOVE"
++>panel_above() and panel_below() Functions</A
++></DT
++></DL
++></DD
++><DT
++>17. <A
++HREF="#MENUS"
++>Menus Library</A
++></DT
++><DD
++><DL
++><DT
++>17.1. <A
++HREF="#MENUBASICS"
++>The Basics</A
++></DT
++><DT
++>17.2. <A
++HREF="#COMPILEMENUS"
++>Compiling With the Menu Library</A
++></DT
++><DT
++>17.3. <A
++HREF="#MENUDRIVER"
++>Menu Driver: The work horse of the menu system</A
++></DT
++><DT
++>17.4. <A
++HREF="#MENUWINDOWS"
++>Menu Windows</A
++></DT
++><DT
++>17.5. <A
++HREF="#SCROLLMENUS"
++>Scrolling Menus</A
++></DT
++><DT
++>17.6. <A
++HREF="#MULTICOLUMN"
++>Multi Columnar Menus</A
++></DT
++><DT
++>17.7. <A
++HREF="#MULTIVALUEMENUS"
++>Multi Valued Menus</A
++></DT
++><DT
++>17.8. <A
++HREF="#MENUOPT"
++>Menu Options</A
++></DT
++><DT
++>17.9. <A
++HREF="#MENUUSERPTR"
++>The useful User Pointer</A
++></DT
++></DL
++></DD
++><DT
++>18. <A
++HREF="#FORMS"
++>Forms Library</A
++></DT
++><DD
++><DL
++><DT
++>18.1. <A
++HREF="#FORMBASICS"
++>The Basics</A
++></DT
++><DT
++>18.2. <A
++HREF="#COMPILEFORMS"
++>Compiling With the Forms Library</A
++></DT
++><DT
++>18.3. <A
++HREF="#PLAYFIELDS"
++>Playing with Fields</A
++></DT
++><DD
++><DL
++><DT
++>18.3.1. <A
++HREF="#FETCHINFO"
++>Fetching Size and Location of Field</A
++></DT
++><DT
++>18.3.2. <A
++HREF="#MOVEFIELD"
++>Moving the field</A
++></DT
++><DT
++>18.3.3. <A
++HREF="#JUSTIFYFIELD"
++>Field Justification</A
++></DT
++><DT
++>18.3.4. <A
++HREF="#FIELDDISPATTRIB"
++>Field Display Attributes</A
++></DT
++><DT
++>18.3.5. <A
++HREF="#FIELDOPTIONBITS"
++>Field Option Bits</A
++></DT
++><DT
++>18.3.6. <A
++HREF="#FIELDSTATUS"
++>Field Status</A
++></DT
++><DT
++>18.3.7. <A
++HREF="#FIELDUSERPTR"
++>Field User Pointer</A
++></DT
++><DT
++>18.3.8. <A
++HREF="#VARIABLESIZEFIELDS"
++>Variable-Sized Fields</A
++></DT
++></DL
++></DD
++><DT
++>18.4. <A
++HREF="#FORMWINDOWS"
++>Form Windows</A
++></DT
++><DT
++>18.5. <A
++HREF="#FILEDVALIDATE"
++>Field Validation</A
++></DT
++><DT
++>18.6. <A
++HREF="#FORMDRIVER"
++>Form Driver: The work horse of the forms system</A
++></DT
++><DD
++><DL
++><DT
++>18.6.1. <A
++HREF="#PAGENAVREQ"
++>Page Navigation Requests</A
++></DT
++><DT
++>18.6.2. <A
++HREF="#INTERFIELDNAVREQ"
++>Inter-Field Navigation Requests</A
++></DT
++><DT
++>18.6.3. <A
++HREF="#INTRAFIELDNAVREQ"
++>Intra-Field Navigation Requests</A
++></DT
++><DT
++>18.6.4. <A
++HREF="#SCROLLREQ"
++>Scrolling Requests</A
++></DT
++><DT
++>18.6.5. <A
++HREF="#EDITREQ"
++>Editing Requests</A
++></DT
++><DT
++>18.6.6. <A
++HREF="#ORDERREQ"
++>Order Requests</A
++></DT
++><DT
++>18.6.7. <A
++HREF="#APPLICCOMMANDS"
++>Application Commands</A
++></DT
++></DL
++></DD
++></DL
++></DD
++><DT
++>19. <A
++HREF="#TOOLS"
++>Tools and Widget Libraries</A
++></DT
++><DD
++><DL
++><DT
++>19.1. <A
++HREF="#CDK"
++>CDK (Curses Development Kit)</A
++></DT
++><DD
++><DL
++><DT
++>19.1.1. <A
++HREF="#WIDGETLIST"
++>Widget List</A
++></DT
++><DT
++>19.1.2. <A
++HREF="#CDKATTRACT"
++>Some Attractive Features</A
++></DT
++><DT
++>19.1.3. <A
++HREF="#CDKCONCLUSION"
++>Conclusion</A
++></DT
++></DL
++></DD
++><DT
++>19.2. <A
++HREF="#DIALOG"
++>The dialog</A
++></DT
++><DT
++>19.3. <A
++HREF="#PERLCURSES"
++>Perl Curses Modules CURSES::FORM and CURSES::WIDGETS</A
++></DT
++></DL
++></DD
++><DT
++>20. <A
++HREF="#JUSTFORFUN"
++>Just For Fun !!!</A
++></DT
++><DD
++><DL
++><DT
++>20.1. <A
++HREF="#GAMEOFLIFE"
++>The Game of Life</A
++></DT
++><DT
++>20.2. <A
++HREF="#MAGIC"
++>Magic Square</A
++></DT
++><DT
++>20.3. <A
++HREF="#HANOI"
++>Towers of Hanoi</A
++></DT
++><DT
++>20.4. <A
++HREF="#QUEENS"
++>Queens Puzzle</A
++></DT
++><DT
++>20.5. <A
++HREF="#SHUFFLE"
++>Shuffle</A
++></DT
++><DT
++>20.6. <A
++HREF="#TT"
++>Typing Tutor</A
++></DT
++></DL
++></DD
++><DT
++>21. <A
++HREF="#REF"
++>References</A
++></DT
++></DL
++></DIV
++><DIV
++CLASS="SECT1"
++><H2
++CLASS="SECT1"
++><A
++NAME="INTRO"
++>1. Introduction</A
++></H2
++><P
++>In the olden days of teletype terminals, terminals were away from computers and
++were connected to them through serial cables. The terminals could be configured
++by sending a series of bytes. All the capabilities (such as
++moving the cursor to a new location, erasing part of the screen, scrolling the
++screen, changing modes etc.) of terminals could be accessed through these
++series of bytes. These control seeuqnces are usually called escape sequences,
++because they start
++with an escape(0x1B) character. Even today, with proper emulation, we can send
++escape sequences to the emulator and achieve the same effect on a terminal
++window.</P
++><P
++>Suppose you wanted to print a line in color. Try typing this on your console.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>echo "^[[0;31;40mIn Color"</PRE
++><P
++>The first character is an escape character, which looks like two characters ^
++and [. To be able to print it, you have to press CTRL+V and then the ESC key.
++All the others are normal printable characters. You should be able to see the
++string "In Color" in red. It stays that way and to revert back to the original
++mode type this.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>echo "^[[0;37;40m"</PRE
++><P
++>Now, what do these magic characters mean? Difficult to comprehend? They might
++even be different for different terminals. So the designers of UNIX invented a
++mechanism named <TT
++CLASS="LITERAL"
++>termcap</TT
++>. It is a file that
++lists all the capabilities of a particular terminal, along with the escape
++sequences needed to achieve a particular effect. In the later years, this was
++replaced by <TT
++CLASS="LITERAL"
++>terminfo</TT
++>. Without delving too
++much into details, this mechanism allows application
++programs to query the terminfo database and obtain the control characters to be
++sent to a terminal or terminal emulator.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WHATIS"
++>1.1. What is NCURSES?</A
++></H3
++><P
++>
++You might be wondering, what the import of all this technical gibberish is. In
++the above scenario, every application program is supposed to query the terminfo
++and perform the necessary stuff (sending control characters etc.). It soon became
++difficult to manage this complexity and this gave birth to 'CURSES'. Curses is
++a pun on the name "cursor optimization". The Curses library forms a wrapper
++over working with raw terminal codes, and provides highly flexible and
++efficient API (Application Programming Interface). It provides functions to
++move the cursor, create windows, produce colors, play with mouse etc. The
++application programs need not worry about the underlying terminal capabilities.</P
++><P
++>So what is NCURSES? NCURSES is a clone of the original System V Release 4.0
++(SVr4) curses. It is a freely distributable library, fully compatible with
++older version of curses. In short, it is a library of functions that manages
++an application's display on character-cell terminals. In the remainder of the
++document, the terms curses and ncurses are used interchangeably. </P
++><P
++>A detailed history of NCURSES can be found in the NEWS file from the source
++distribution. The current package is maintained by
++<A
++HREF="mailto:dickey@his.com"
++TARGET="_top"
++>Thomas Dickey</A
++>.
++You can contact the maintainers at <A
++HREF="mailto:bug-ncurses@gnu.org"
++TARGET="_top"
++>bug-ncurses@gnu.org</A
++>.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WHATCANWEDO"
++>1.2. What we can do with NCURSES</A
++></H3
++><P
++>NCURSES not only creates a wrapper over terminal capabilities, but also gives a
++robust framework to create nice looking UI (User Interface)s in text mode. It
++provides functions to create windows etc. Its sister libraries panel, menu and
++form provide an extension to the basic curses library. These libraries usually
++come along with curses. One can create applications that contain multiple
++windows, menus, panels and forms. Windows can be managed independently, can
++provide 'scrollability' and even can be hidden.</P
++><P
++>
++Menus provide the user with an easy command selection option. Forms allow the
++creation of easy-to-use data entry and display windows. Panels extend the
++capabilities of ncurses to deal with overlapping and stacked windows.</P
++><P
++>These are just some of the basic things we can do with ncurses. As we move
++along, We will see all the capabilities of these libraries. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WHERETOGETIT"
++>1.3. Where to get it</A
++></H3
++><P
++>All right, now that you know what you can do with ncurses, you must be rearing
++to get started. NCURSES is usually shipped with your installation. In case
++you don't have the library or want to compile it on your own, read on.</P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>Compiling the package</I
++></SPAN
++> </P
++><P
++>NCURSES can be obtained from <A
++HREF="ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz"
++TARGET="_top"
++>ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</A
++> or any of the ftp
++sites mentioned in <A
++HREF="http://www.gnu.org/order/ftp.html"
++TARGET="_top"
++>http://www.gnu.org/order/ftp.html</A
++>. </P
++><P
++>Read the README and INSTALL files for details on to how to install it. It
++usually involves the following operations.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> tar zxvf ncurses&lt;version&gt;.tar.gz # unzip and untar the archive
+ cd ncurses&lt;version&gt; # cd to the directory
+ ./configure # configure the build according to your
+ # environment
+ make # make it
+ su root # become root
+- make install # install it</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p><em>Using the RPM</em></p>
+-<p>NCURSES RPM can be found and downloaded from <a href=
+-"http://rpmfind.net" target="_top">http://rpmfind.net</a> . The RPM
+-can be installed with the following command after becoming
+-root.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> rpm -i &lt;downloaded rpm&gt;</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PURPOSE" id="PURPOSE">1.4. Purpose/Scope
+-of the document</a></h3>
+-<p>This document is intended to be a "All in One" guide for
+-programming with ncurses and its sister libraries. We graduate from
+-a simple "Hello World" program to more complex form manipulation.
+-No prior experience in ncurses is assumed. The writing is informal,
+-but a lot of detail is provided for each of the examples.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ABOUTPROGRAMS" id="ABOUTPROGRAMS">1.5.
+-About the Programs</a></h3>
+-<p>All the programs in the document are available in zipped form
+-<a href=
+-"http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz"
+-target="_top">here</a>. Unzip and untar it. The directory structure
+-looks like this.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">ncurses
++ make install # install it</PRE
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>Using the RPM </I
++></SPAN
++></P
++><P
++>NCURSES RPM can be found and downloaded from <A
++HREF="http://rpmfind.net"
++TARGET="_top"
++>http://rpmfind.net </A
++>. The RPM can be installed with the following
++command after becoming root.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> rpm -i &lt;downloaded rpm&gt;</PRE
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PURPOSE"
++>1.4. Purpose/Scope of the document</A
++></H3
++><P
++>This document is intended to be a "All in One" guide for programming with
++ncurses and its sister libraries. We graduate from a simple "Hello World"
++program to more complex form manipulation. No prior experience in ncurses is
++assumed. The writing is informal, but a lot of detail is provided for
++each of the examples.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ABOUTPROGRAMS"
++>1.5. About the Programs</A
++></H3
++><P
++>All the programs in the document are available in zipped form
++<A
++HREF="http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz"
++TARGET="_top"
++>here</A
++>. Unzip and untar it. The directory structure looks like this.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>ncurses
+ |
+ |----&gt; JustForFun -- just for fun programs
+ |----&gt; basics -- basic programs
+@@ -524,16 +1290,12 @@
+ | by Anuradha Ratnaweera)
+ |----&gt; Makefile -- the top level Makefile
+ |----&gt; README -- the top level README file. contains instructions
+- |----&gt; COPYING -- copyright notice</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The individual directories contain the following files.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">Description of files in each directory
++ |----&gt; COPYING -- copyright notice</PRE
++><P
++>The individual directories contain the following files.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>Description of files in each directory
+ --------------------------------------
+ JustForFun
+ |
+@@ -592,73 +1354,96 @@
+ |----&gt; panel_simple.c -- A simple panel example
+
+ perl
+- |----&gt; 01-10.pl -- Perl equivalents of first ten example programs</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>There is a top level Makefile included in the main directory. It
+-builds all the files and puts the ready-to-use exes in demo/exe
+-directory. You can also do selective make by going into the
+-corresponding directory. Each directory contains a README file
+-explaining the purpose of each c file in the directory.</p>
+-<p>For every example, I have included path name for the file
+-relative to the examples directory.</p>
+-<p>If you prefer browsing individual programs, point your browser
+-to <a href=
+-"http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/"
+-target=
+-"_top">http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</a></p>
+-<p>All the programs are released under the same license that is
+-used by ncurses (MIT-style). This gives you the ability to do
+-pretty much anything other than claiming them as yours. Feel free
+-to use them in your programs as appropriate.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="OTHERFORMATS" id="OTHERFORMATS">1.6.
+-Other Formats of the document</a></h3>
+-<p>This howto is also availabe in various other formats on the
+-tldp.org site. Here are the links to other formats of this
+-document.</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="LISTFORMATS" id="LISTFORMATS">1.6.1.
+-Readily available formats from tldp.org</a></h4>
+-<ul>
+-<li>
+-<p><a href=
+-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf"
+-target="_top">Acrobat PDF Format</a></p>
+-</li>
+-<li>
+-<p><a href=
+-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz"
+-target="_top">PostScript Format</a></p>
+-</li>
+-<li>
+-<p><a href=
+-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz"
+-target="_top">In Multiple HTML pages</a></p>
+-</li>
+-<li>
+-<p><a href=
+-"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html"
+-target="_top">In One big HTML format</a></p>
+-</li>
+-</ul>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="BUILDSOURCE" id="BUILDSOURCE">1.6.2.
+-Building from source</a></h4>
+-<p>If above links are broken or if you want to experiment with sgml
+-read on.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">&#13; Get both the source and the tar,gzipped programs, available at
++ |----&gt; 01-10.pl -- Perl equivalents of first ten example programs</PRE
++><P
++>There is a top level Makefile included in the main directory. It builds all the
++files and puts the ready-to-use exes in demo/exe directory. You can also
++do selective make by going into the corresponding directory. Each directory
++contains a README file explaining the purpose of each c file in the directory.</P
++><P
++>For every example, I have included path name for the file relative to the
++examples directory. </P
++><P
++> If you prefer browsing individual programs, point your browser to
++<A
++HREF="http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/"
++TARGET="_top"
++>http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</A
++></P
++><P
++>All the programs are released under the same license that is used by ncurses
++(MIT-style). This gives you the ability to do pretty much anything other than
++claiming them as yours. Feel free to use them in your programs as appropriate.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="OTHERFORMATS"
++>1.6. Other Formats of the document</A
++></H3
++><P
++>This howto is also availabe in various other formats on the tldp.org site.
++Here are the links to other formats of this document.</P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="LISTFORMATS"
++>1.6.1. Readily available formats from tldp.org</A
++></H4
++><P
++></P
++><UL
++><LI
++><P
++><A
++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf"
++TARGET="_top"
++>Acrobat PDF Format</A
++></P
++></LI
++><LI
++><P
++><A
++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz"
++TARGET="_top"
++>PostScript Format</A
++></P
++></LI
++><LI
++><P
++><A
++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz"
++TARGET="_top"
++>In Multiple HTML pages</A
++></P
++></LI
++><LI
++><P
++><A
++HREF="http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html"
++TARGET="_top"
++>In One big HTML format</A
++></P
++></LI
++></UL
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="BUILDSOURCE"
++>1.6.2. Building from source</A
++></H4
++><P
++>If above links are broken or if you want to experiment with sgml read on.
++<PRE
++CLASS="PROGRAMLISTING"
++>&#13; Get both the source and the tar,gzipped programs, available at
+ http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
+ NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml
+ http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
+@@ -679,588 +1464,862 @@
+ NCURSES-ONE-BIG-FILE.html
+ for ps, you would use
+ htmldoc --size universal -t ps --firstpage p1 -f &lt;output file name.ps&gt;
+- NCURSES-ONE-BIG-FILE.html</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>See <a href="http://www.tldp.org/LDP/LDP-Author-Guide/" target=
+-"_top">LDP Author guide</a> for more details. If all else failes,
+-mail me at <a href="ppadala@gmail.com" target=
+-"_top">ppadala@gmail.com</a></p>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="CREDITS" id="CREDITS">1.7.
+-Credits</a></h3>
+-<p>I thank <a href="mailto:sharath_1@usa.net" target=
+-"_top">Sharath</a> and Emre Akbas for helping me with few sections.
+-The introduction was initially written by sharath. I rewrote it
+-with few excerpts taken from his initial work. Emre helped in
+-writing printw and scanw sections.</p>
+-<p>Perl equivalents of the example programs are contributed by
+-<a href="mailto:Aratnaweera@virtusa.com" target="_top">Anuradha
+-Ratnaweera</a>.</p>
+-<p>Then comes <a href="mailto:parimi@ece.arizona.edu" target=
+-"_top">Ravi Parimi</a>, my dearest friend, who has been on this
+-project before even one line was written. He constantly bombarded
+-me with suggestions and patiently reviewed the whole text. He also
+-checked each program on Linux and Solaris.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WISHLIST" id="WISHLIST">1.8. Wish
+-List</a></h3>
+-<p>This is the wish list, in the order of priority. If you have a
+-wish or you want to work on completing the wish, mail <a href=
+-"mailto:ppadala@gmail.com" target="_top">me</a>.</p>
+-<ul>
+-<li>
+-<p>Add examples to last parts of forms section.</p>
+-</li>
+-<li>
+-<p>Prepare a Demo showing all the programs and allow the user to
+-browse through description of each program. Let the user compile
+-and see the program in action. A dialog based interface is
+-preferred.</p>
+-</li>
+-<li>
+-<p>Add debug info. _tracef, _tracemouse stuff.</p>
+-</li>
+-<li>
+-<p>Accessing termcap, terminfo using functions provided by ncurses
+-package.</p>
+-</li>
+-<li>
+-<p>Working on two terminals simultaneously.</p>
+-</li>
+-<li>
+-<p>Add more stuff to miscellaneous section.</p>
+-</li>
+-</ul>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="COPYRIGHT" id="COPYRIGHT">1.9.
+-Copyright</a></h3>
+-<p>Copyright &copy; 2001 by Pradeep Padala.</p>
+-<p>Permission is hereby granted, free of charge, to any person
+-obtaining a copy of this software and associated documentation
+-files (the "Software"), to deal in the Software without
+-restriction, including without limitation the rights to use, copy,
+-modify, merge, publish, distribute, distribute with modifications,
+-sublicense, and/or sell copies of the Software, and to permit
+-persons to whom the Software is furnished to do so, subject to the
+-following conditions:</p>
+-<p>The above copyright notice and this permission notice shall be
+-included in all copies or substantial portions of the Software.</p>
+-<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+-NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE
+-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+-SOFTWARE.</p>
+-<p>Except as contained in this notice, the name(s) of the above
+-copyright holders shall not be used in advertising or otherwise to
+-promote the sale, use or other dealings in this Software without
+-prior written authorization.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="HELLOWORLD" id="HELLOWORLD">2. Hello
+-World !!!</a></h2>
+-<p>Welcome to the world of curses. Before we plunge into the
+-library and look into its various features, let's write a simple
+-program and say hello to the world.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="COMPILECURSES" id="COMPILECURSES">2.1.
+-Compiling With the NCURSES Library</a></h3>
+-<p>To use ncurses library functions, you have to include ncurses.h
+-in your programs. To link the program with ncurses the flag
+--lncurses should be added.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> #include &lt;ncurses.h&gt;
++ NCURSES-ONE-BIG-FILE.html</PRE
++></P
++><P
++>See <A
++HREF="http://www.tldp.org/LDP/LDP-Author-Guide/"
++TARGET="_top"
++>LDP Author guide</A
++> for more details. If all else failes, mail me at
++<A
++HREF="ppadala@gmail.com"
++TARGET="_top"
++>ppadala@gmail.com</A
++></P
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="CREDITS"
++>1.7. Credits</A
++></H3
++><P
++>I thank <A
++HREF="mailto:sharath_1@usa.net"
++TARGET="_top"
++>Sharath</A
++> and Emre Akbas for
++helping me with few sections. The introduction was initially written by sharath.
++I rewrote it with few excerpts taken from his initial work. Emre helped in
++writing printw and scanw sections.</P
++><P
++>Perl equivalents of the example programs are contributed by <A
++HREF="mailto:Aratnaweera@virtusa.com"
++TARGET="_top"
++>Anuradha Ratnaweera</A
++>. </P
++><P
++>Then comes <A
++HREF="mailto:parimi@ece.arizona.edu"
++TARGET="_top"
++>Ravi Parimi</A
++>, my
++dearest friend, who has been on this project before even one line was written.
++He constantly bombarded me with suggestions and patiently reviewed the whole
++text. He also checked each program on Linux and Solaris. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WISHLIST"
++>1.8. Wish List</A
++></H3
++><P
++>This is the wish list, in the order of priority. If you have a wish or you want
++to work on completing the wish, mail <A
++HREF="mailto:ppadala@gmail.com"
++TARGET="_top"
++>me</A
++>. </P
++><P
++></P
++><UL
++><LI
++><P
++>Add examples to last parts of forms section.</P
++></LI
++><LI
++><P
++>Prepare a Demo showing all the programs and allow the user to browse through
++description of each program. Let the user compile and see the program in action.
++A dialog based interface is preferred.</P
++></LI
++><LI
++><P
++>Add debug info. _tracef, _tracemouse stuff.</P
++></LI
++><LI
++><P
++>Accessing termcap, terminfo using functions provided by ncurses
++package.</P
++></LI
++><LI
++><P
++>Working on two terminals simultaneously.</P
++></LI
++><LI
++><P
++>Add more stuff to miscellaneous section.</P
++></LI
++></UL
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="COPYRIGHT"
++>1.9. Copyright</A
++></H3
++><P
++>Copyright &copy; 2001 by Pradeep Padala. </P
++><P
++>Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, distribute with
++modifications, sublicense, and/or sell copies of the Software, and to permit
++persons to whom the Software is furnished to do so, subject to the following
++conditions:</P
++><P
++>The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.</P
++><P
++>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
++WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
++IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</P
++><P
++>Except as contained in this notice, the name(s) of the above copyright holders
++shall not be used in advertising or otherwise to promote the sale, use or
++other dealings in this Software without prior written authorization. </P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="HELLOWORLD"
++>2. Hello World !!!</A
++></H2
++><P
++>Welcome to the world of curses. Before we plunge into the library and look into
++its various features, let's write a simple program and say
++hello to the world. </P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="COMPILECURSES"
++>2.1. Compiling With the NCURSES Library</A
++></H3
++><P
++>To use ncurses library functions, you have to include ncurses.h in your
++programs. To link the
++program with ncurses the flag -lncurses should be added.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> #include &lt;ncurses.h&gt;
+ .
+ .
+ .
+
+- compile and link: gcc &lt;program file&gt; -lncurses</font>
+-</pre></td>
+-</tr>
+-</table>
+-<div class="EXAMPLE"><a name="BHW" id="BHW"></a>
+-<p><b>Example 1. The Hello World !!! Program</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++ compile and link: gcc &lt;program file&gt; -lncurses</PRE
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BHW"
++></A
++><P
++><B
++>Example 1. The Hello World !!! Program </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ int main()
+-{
+- initscr(); /* Start curses mode */
+- printw("Hello World !!!"); /* Print Hello World */
+- refresh(); /* Print it on to the real screen */
+- getch(); /* Wait for user input */
+- endwin(); /* End curses mode */
+-
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="DISSECTION" id="DISSECTION">2.2.
+-Dissection</a></h3>
+-<p>The above program prints "Hello World !!!" to the screen and
+-exits. This program shows how to initialize curses and do screen
+-manipulation and end curses mode. Let's dissect it line by
+-line.</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="ABOUT-INITSCR" id="ABOUT-INITSCR">2.2.1.
+-About initscr()</a></h4>
+-<p>The function initscr() initializes the terminal in curses mode.
+-In some implementations, it clears the screen and presents a blank
+-screen. To do any screen manipulation using curses package this has
+-to be called first. This function initializes the curses system and
+-allocates memory for our present window (called <var class=
+-"LITERAL">stdscr</var>) and some other data-structures. Under
+-extreme cases this function might fail due to insufficient memory
+-to allocate memory for curses library's data structures.</p>
+-<p>After this is done, we can do a variety of initializations to
+-customize our curses settings. These details will be explained
+-<a href="#INIT">later</a> .</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="MYST-REFRESH" id="MYST-REFRESH">2.2.2.
+-The mysterious refresh()</a></h4>
+-<p>The next line printw prints the string "Hello World !!!" on to
+-the screen. This function is analogous to normal printf in all
+-respects except that it prints the data on a window called stdscr
+-at the current (y,x) co-ordinates. Since our present co-ordinates
+-are at 0,0 the string is printed at the left hand corner of the
+-window.</p>
+-<p>This brings us to that mysterious refresh(). Well, when we
+-called printw the data is actually written to an imaginary window,
+-which is not updated on the screen yet. The job of printw is to
+-update a few flags and data structures and write the data to a
+-buffer corresponding to stdscr. In order to show it on the screen,
+-we need to call refresh() and tell the curses system to dump the
+-contents on the screen.</p>
+-<p>The philosophy behind all this is to allow the programmer to do
+-multiple updates on the imaginary screen or windows and do a
+-refresh once all his screen update is done. refresh() checks the
+-window and updates only the portion which has been changed. This
+-improves performance and offers greater flexibility too. But, it is
+-sometimes frustrating to beginners. A common mistake committed by
+-beginners is to forget to call refresh() after they did some update
+-through printw() class of functions. I still forget to add it
+-sometimes :-)</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="ABOUT-ENDWIN" id="ABOUT-ENDWIN">2.2.3.
+-About endwin()</a></h4>
+-<p>And finally don't forget to end the curses mode. Otherwise your
+-terminal might behave strangely after the program quits. endwin()
+-frees the memory taken by curses sub-system and its data structures
+-and puts the terminal in normal mode. This function must be called
+-after you are done with the curses mode.</p>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="GORY" id="GORY">3. The Gory
+-Details</a></h2>
+-<p>Now that we have seen how to write a simple curses program let's
+-get into the details. There are many functions that help customize
+-what you see on screen and many features which can be put to full
+-use.</p>
+-<p>Here we go...</p>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="INIT" id="INIT">4.
+-Initialization</a></h2>
+-<p>We now know that to initialize curses system the function
+-initscr() has to be called. There are functions which can be called
+-after this initialization to customize our curses session. We may
+-ask the curses system to set the terminal in raw mode or initialize
+-color or initialize the mouse etc.. Let's discuss some of the
+-functions that are normally called immediately after initscr();</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ABOUTINIT" id="ABOUTINIT">4.1.
+-Initialization functions</a></h3>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="RAWCBREAK" id="RAWCBREAK">4.2. raw() and
+-cbreak()</a></h3>
+-<p>Normally the terminal driver buffers the characters a user types
+-until a new line or carriage return is encountered. But most
+-programs require that the characters be available as soon as the
+-user types them. The above two functions are used to disable line
+-buffering. The difference between these two functions is in the way
+-control characters like suspend (CTRL-Z), interrupt and quit
+-(CTRL-C) are passed to the program. In the raw() mode these
+-characters are directly passed to the program without generating a
+-signal. In the <var class="LITERAL">cbreak()</var> mode these
+-control characters are interpreted as any other character by the
+-terminal driver. I personally prefer to use raw() as I can exercise
+-greater control over what the user does.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ECHONOECHO" id="ECHONOECHO">4.3. echo()
+-and noecho()</a></h3>
+-<p>These functions control the echoing of characters typed by the
+-user to the terminal. <var class="LITERAL">noecho()</var> switches
+-off echoing. The reason you might want to do this is to gain more
+-control over echoing or to suppress unnecessary echoing while
+-taking input from the user through the getch() etc. functions. Most
+-of the interactive programs call <var class=
+-"LITERAL">noecho()</var> at initialization and do the echoing of
+-characters in a controlled manner. It gives the programmer the
+-flexibility of echoing characters at any place in the window
+-without updating current (y,x) co-ordinates.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="KEYPAD" id="KEYPAD">4.4.
+-keypad()</a></h3>
+-<p>This is my favorite initialization function. It enables the
+-reading of function keys like F1, F2, arrow keys etc. Almost every
+-interactive program enables this, as arrow keys are a major part of
+-any User Interface. Do <var class="LITERAL">keypad(stdscr,
+-TRUE)</var> to enable this feature for the regular screen (stdscr).
+-You will learn more about key management in later sections of this
+-document.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="HALFDELAY" id="HALFDELAY">4.5.
+-halfdelay()</a></h3>
+-<p>This function, though not used very often, is a useful one at
+-times. halfdelay()is called to enable the half-delay mode, which is
+-similar to the cbreak() mode in that characters typed are
+-immediately available to program. However, it waits for 'X' tenths
+-of a second for input and then returns ERR, if no input is
+-available. 'X' is the timeout value passed to the function
+-halfdelay(). This function is useful when you want to ask the user
+-for input, and if he doesn't respond with in certain time, we can
+-do some thing else. One possible example is a timeout at the
+-password prompt.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MISCINIT" id="MISCINIT">4.6.
+-Miscellaneous Initialization functions</a></h3>
+-<p>There are few more functions which are called at initialization
+-to customize curses behavior. They are not used as extensively as
+-those mentioned above. Some of them are explained where
+-appropriate.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="INITEX" id="INITEX">4.7. An
+-Example</a></h3>
+-<p>Let's write a program which will clarify the usage of these
+-functions.</p>
+-<div class="EXAMPLE"><a name="BINFU" id="BINFU"></a>
+-<p><b>Example 2. Initialization Function Usage example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++{
++ initscr(); /* Start curses mode */
++ printw("Hello World !!!"); /* Print Hello World */
++ refresh(); /* Print it on to the real screen */
++ getch(); /* Wait for user input */
++ endwin(); /* End curses mode */
++
++ return 0;
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="DISSECTION"
++>2.2. Dissection</A
++></H3
++><P
++>
++The above program prints "Hello World !!!" to the screen and exits. This
++program shows how to initialize curses and do screen manipulation and
++end curses mode. Let's dissect it line by line. </P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="ABOUT-INITSCR"
++>2.2.1. About initscr()</A
++></H4
++><P
++>The function initscr() initializes the terminal in curses mode. In some
++implementations, it clears the screen and presents a blank screen. To do any
++screen manipulation using curses package this has to be called first. This
++function initializes the curses system and allocates memory for our present
++window (called <TT
++CLASS="LITERAL"
++>stdscr</TT
++>) and some other data-structures. Under extreme
++cases this function might fail due to insufficient memory to allocate memory
++for curses library's data structures. </P
++><P
++>
++After this is done, we can do a variety of initializations to customize
++our curses settings. These details will be explained <A
++HREF="#INIT"
++>later </A
++>.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="MYST-REFRESH"
++>2.2.2. The mysterious refresh()</A
++></H4
++><P
++>The next line printw prints the string "Hello World !!!" on to the screen. This
++function is analogous to normal printf in all respects except that it prints
++the data on a window called stdscr at the current (y,x) co-ordinates. Since our
++present co-ordinates are at 0,0 the string is printed at the left hand corner
++of the window.</P
++><P
++>This brings us to that mysterious refresh(). Well, when we called printw
++the data is actually written to an imaginary window, which is not updated
++on the screen yet. The job of printw is to update a few flags
++and data structures and write the data to a buffer corresponding to stdscr.
++In order to show it on the screen, we need to call refresh() and tell the
++curses system to dump the contents on the screen.</P
++><P
++>The philosophy behind all this is to allow the programmer to do multiple updates
++on the imaginary screen or windows and do a refresh once all his screen update
++is done. refresh() checks the window and updates only the portion which has been
++changed. This improves performance and offers greater flexibility too. But, it is
++sometimes frustrating to beginners. A common mistake committed by beginners is
++to forget to call refresh() after they did some update through printw() class of
++functions. I still forget to add it sometimes :-) </P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="ABOUT-ENDWIN"
++>2.2.3. About endwin()</A
++></H4
++><P
++>And finally don't forget to end the curses mode. Otherwise your terminal might
++behave strangely after the program quits. endwin() frees the memory taken by
++curses sub-system and its data structures and puts the terminal in normal
++mode. This function must be called after you are done with the curses mode. </P
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="GORY"
++>3. The Gory Details</A
++></H2
++><P
++>Now that we have seen how to write a simple curses program let's get into the
++details. There are many functions that help customize what you see on screen and
++many features which can be put to full use. </P
++><P
++>Here we go...</P
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="INIT"
++>4. Initialization</A
++></H2
++><P
++>We now know that to initialize curses system the function initscr() has to be
++called. There are functions which can be called after this initialization to
++customize our curses session. We may ask the curses system to set the terminal
++in raw mode or initialize color or initialize the mouse etc.. Let's discuss some
++of the functions that are normally called immediately after initscr();</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ABOUTINIT"
++>4.1. Initialization functions</A
++></H3
++><P
++> </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="RAWCBREAK"
++>4.2. raw() and cbreak()</A
++></H3
++><P
++>Normally the terminal driver buffers the characters a user types until a new
++line or carriage return is encountered. But most programs require that the
++characters be available as soon as the user types them. The above two functions
++are used to disable line buffering. The difference between these two functions
++is in the way control characters like suspend (CTRL-Z), interrupt and quit
++(CTRL-C) are passed to the program. In the raw() mode these characters are
++directly passed to the program without generating a signal. In the
++<TT
++CLASS="LITERAL"
++>cbreak()</TT
++> mode these control characters are
++interpreted as any other character by the terminal driver. I personally prefer
++to use raw() as I can exercise greater control over what the user does.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ECHONOECHO"
++>4.3. echo() and noecho()</A
++></H3
++><P
++>
++These functions control the echoing of characters typed by the user to the
++terminal. <TT
++CLASS="LITERAL"
++>noecho()</TT
++> switches off echoing. The
++reason you might want to do this is to gain more control over echoing or to
++suppress unnecessary echoing while taking input from the user through the
++getch() etc. functions. Most of the interactive programs call
++<TT
++CLASS="LITERAL"
++>noecho()</TT
++> at initialization and do the echoing
++of characters in a controlled manner. It gives the programmer the flexibility
++of echoing characters at any place in the window without updating current (y,x)
++co-ordinates. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="KEYPAD"
++>4.4. keypad()</A
++></H3
++><P
++>This is my favorite initialization function. It enables the reading of function
++keys like F1, F2, arrow keys etc. Almost every interactive program enables this,
++as arrow keys are a major part of any User Interface. Do
++<TT
++CLASS="LITERAL"
++>keypad(stdscr, TRUE) </TT
++> to enable this feature
++for the regular screen (stdscr). You will learn more about key management in
++later sections of this document.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="HALFDELAY"
++>4.5. halfdelay()</A
++></H3
++><P
++>This function, though not used very often, is a useful one at times.
++halfdelay()is called to enable the half-delay mode, which is similar to the
++cbreak() mode in that characters typed are immediately available to program.
++However, it waits for 'X' tenths of a second for input and then returns ERR, if
++no input is available. 'X' is the timeout value passed to the function
++halfdelay(). This function is useful when you want to ask the user for input,
++and if he doesn't respond with in certain time, we can do some thing else. One
++possible example is a timeout at the password prompt. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MISCINIT"
++>4.6. Miscellaneous Initialization functions</A
++></H3
++><P
++>There are few more functions which are called at initialization to
++customize curses behavior. They are not used as extensively as those mentioned
++above. Some of them are explained where appropriate.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="INITEX"
++>4.7. An Example</A
++></H3
++><P
++>Let's write a program which will clarify the usage of these functions.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BINFU"
++></A
++><P
++><B
++>Example 2. Initialization Function Usage example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ int main()
+-{ int ch;
++{ int ch;
+
+- initscr(); /* Start curses mode */
+- raw(); /* Line buffering disabled */
+- keypad(stdscr, TRUE); /* We get F1, F2 etc.. */
+- noecho(); /* Don't echo() while we do getch */
+-
+- printw("Type any character to see it in bold\n");
+- ch = getch(); /* If raw() hadn't been called
+- * we have to press enter before it
+- * gets to the program */
+- if(ch == KEY_F(1)) /* Without keypad enabled this will */
+- printw("F1 Key pressed");/* not get to us either */
+- /* Without noecho() some ugly escape
+- * charachters might have been printed
+- * on screen */
+- else
+- { printw("The pressed key is ");
+- attron(A_BOLD);
+- printw("%c", ch);
+- attroff(A_BOLD);
+- }
+- refresh(); /* Print it on to the real screen */
+- getch(); /* Wait for user input */
+- endwin(); /* End curses mode */
+-
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>This program is self-explanatory. But I used functions which
+-aren't explained yet. The function <var class=
+-"LITERAL">getch()</var> is used to get a character from user. It is
+-equivalent to normal <var class="LITERAL">getchar()</var> except
+-that we can disable the line buffering to avoid &lt;enter&gt; after
+-input. Look for more about <var class="LITERAL">getch()</var>and
+-reading keys in the <a href="#KEYS">key management section</a> .
+-The functions attron and attroff are used to switch some attributes
+-on and off respectively. In the example I used them to print the
+-character in bold. These functions are explained in detail
+-later.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="AWORDWINDOWS" id="AWORDWINDOWS">5. A
+-Word about Windows</a></h2>
+-<p>Before we plunge into the myriad ncurses functions, let me clear
+-few things about windows. Windows are explained in detail in
+-following <a href="#WINDOWS">sections</a></p>
+-<p>A Window is an imaginary screen defined by curses system. A
+-window does not mean a bordered window which you usually see on
+-Win9X platforms. When curses is initialized, it creates a default
+-window named <var class="LITERAL">stdscr</var> which represents
+-your 80x25 (or the size of window in which you are running) screen.
+-If you are doing simple tasks like printing few strings, reading
+-input etc., you can safely use this single window for all of your
+-purposes. You can also create windows and call functions which
+-explicitly work on the specified window.</p>
+-<p>For example, if you call</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> printw("Hi There !!!");
+- refresh();</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>It prints the string on stdscr at the present cursor position.
+-Similarly the call to refresh(), works on stdscr only.</p>
+-<p>Say you have created <a href="#WINDOWS">windows</a> then you
+-have to call a function with a 'w' added to the usual function.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> wprintw(win, "Hi There !!!");
+- wrefresh(win);</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>As you will see in the rest of the document, naming of functions
+-follow the same convention. For each function there usually are
+-three more functions.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> printw(string); /* Print on stdscr at present cursor position */
++ initscr(); /* Start curses mode */
++ raw(); /* Line buffering disabled */
++ keypad(stdscr, TRUE); /* We get F1, F2 etc.. */
++ noecho(); /* Don't echo() while we do getch */
++
++ printw("Type any character to see it in bold\n");
++ ch = getch(); /* If raw() hadn't been called
++ * we have to press enter before it
++ * gets to the program */
++ if(ch == KEY_F(1)) /* Without keypad enabled this will */
++ printw("F1 Key pressed");/* not get to us either */
++ /* Without noecho() some ugly escape
++ * charachters might have been printed
++ * on screen */
++ else
++ { printw("The pressed key is ");
++ attron(A_BOLD);
++ printw("%c", ch);
++ attroff(A_BOLD);
++ }
++ refresh(); /* Print it on to the real screen */
++ getch(); /* Wait for user input */
++ endwin(); /* End curses mode */
++
++ return 0;
++}</SPAN
++></PRE
++></DIV
++><P
++>This program is self-explanatory. But I used functions which aren't explained
++yet. The function <TT
++CLASS="LITERAL"
++>getch()</TT
++> is used to get a
++character from user. It is equivalent to normal
++<TT
++CLASS="LITERAL"
++>getchar()</TT
++> except that we can disable the line
++buffering to avoid &lt;enter&gt; after input. Look for more about
++<TT
++CLASS="LITERAL"
++>getch()</TT
++>and reading keys in the <A
++HREF="#KEYS"
++> key management section </A
++>. The functions attron and attroff
++are used to switch some attributes on and off respectively. In the example I
++used them to print the character in bold. These functions are explained in detail
++later.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="AWORDWINDOWS"
++>5. A Word about Windows</A
++></H2
++><P
++>
++Before we plunge into the myriad ncurses functions, let me clear few things
++about windows. Windows are explained in detail in following <A
++HREF="#WINDOWS"
++> sections </A
++></P
++><P
++>A Window is an imaginary screen defined by curses system. A window does not mean
++a bordered window which you usually see on Win9X platforms. When curses is
++initialized, it creates a default window named
++<TT
++CLASS="LITERAL"
++>stdscr</TT
++> which represents your 80x25 (or the size
++of window in which you are running) screen. If you are doing simple tasks like
++printing few strings, reading input etc., you can safely use this single window
++for all of your purposes. You can also create windows and call functions which
++explicitly work on the specified window.</P
++><P
++>For example, if you call</P
++><PRE
++CLASS="PROGRAMLISTING"
++> printw("Hi There !!!");
++ refresh();</PRE
++><P
++>It prints the string on stdscr at the present cursor position. Similarly the
++call to refresh(), works on stdscr only. </P
++><P
++>Say you have created <A
++HREF="#WINDOWS"
++>windows</A
++> then you have to
++call a function with a 'w' added to the usual function.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> wprintw(win, "Hi There !!!");
++ wrefresh(win);</PRE
++><P
++>As you will see in the rest of the document, naming of functions follow the
++same convention. For each function there usually are three more functions.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> printw(string); /* Print on stdscr at present cursor position */
+ mvprintw(y, x, string);/* Move to (y, x) then print string */
+ wprintw(win, string); /* Print on window win at present cursor position */
+ /* in the window */
+ mvwprintw(win, y, x, string); /* Move to (y, x) relative to window */
+- /* co-ordinates and then print */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Usually the w-less functions are macros which expand to
+-corresponding w-function with stdscr as the window parameter.</p>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="PRINTW" id="PRINTW">6. Output
+-functions</a></h2>
+-<p>I guess you can't wait any more to see some action. Back to our
+-odyssey of curses functions. Now that curses is initialized, let's
+-interact with world.</p>
+-<p>There are three classes of functions which you can use to do
+-output on screen.</p>
+-<ol type="1">
+-<li>
+-<p>addch() class: Print single character with attributes</p>
+-</li>
+-<li>
+-<p>printw() class: Print formatted output similar to printf()</p>
+-</li>
+-<li>
+-<p>addstr() class: Print strings</p>
+-</li>
+-</ol>
+-<p>These functions can be used interchangeably and it's a matter of
+-style as to which class is used. Let's see each one in detail.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ADDCHCLASS" id="ADDCHCLASS">6.1. addch()
+-class of functions</a></h3>
+-<p>These functions put a single character into the current cursor
+-location and advance the position of the cursor. You can give the
+-character to be printed but they usually are used to print a
+-character with some attributes. Attributes are explained in detail
+-in later <a href="#ATTRIB">sections</a> of the document. If a
+-character is associated with an attribute(bold, reverse video
+-etc.), when curses prints the character, it is printed in that
+-attribute.</p>
+-<p>In order to combine a character with some attributes, you have
+-two options:</p>
+-<ul>
+-<li>
+-<p>By OR'ing a single character with the desired attribute macros.
+-These attribute macros could be found in the header file
+-<var class="LITERAL">ncurses.h</var>. For example, you want to
+-print a character ch(of type char) bold and underlined, you would
+-call addch() as below.</p>
+-<table border="0" bgcolor="#E0E0E0" width="90%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> addch(ch | A_BOLD | A_UNDERLINE);</font>
+-</pre></td>
+-</tr>
+-</table>
+-</li>
+-<li>
+-<p>By using functions like <var class=
+-"LITERAL">attrset(),attron(),attroff()</var>. These functions are
+-explained in the <a href="#ATTRIB">Attributes</a> section. Briefly,
+-they manipulate the current attributes of the given window. Once
+-set, the character printed in the window are associated with the
+-attributes until it is turned off.</p>
+-</li>
+-</ul>
+-<p>Additionally, <var class="LITERAL">curses</var> provides some
+-special characters for character-based graphics. You can draw
+-tables, horizontal or vertical lines, etc. You can find all
+-avaliable characters in the header file <var class=
+-"LITERAL">ncurses.h</var>. Try looking for macros beginning with
+-<var class="LITERAL">ACS_</var> in this file.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="AEN298" id="AEN298">6.2. mvaddch(),
+-waddch() and mvwaddch()</a></h3>
+-<p><var class="LITERAL">mvaddch()</var> is used to move the cursor
+-to a given point, and then print. Thus, the calls:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> move(row,col); /* moves the cursor to row<em>th</em> row and col<em>th</em> column */
+- addch(ch);</font>
+-</pre></td>
+-</tr>
+-</table>
++ /* co-ordinates and then print */</PRE
++><P
++>Usually the w-less functions are macros which expand to corresponding w-function
++with stdscr as the window parameter.</P
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="PRINTW"
++>6. Output functions</A
++></H2
++><P
++>I guess you can't wait any more to see some action. Back to our odyssey of
++curses functions. Now that curses is initialized, let's interact with
++world.</P
++><P
++>There are three classes of functions which you can use to do output on screen.
++<P
++></P
++><OL
++TYPE="1"
++><LI
++><P
++>addch() class: Print single character with attributes </P
++></LI
++><LI
++><P
++>printw() class: Print formatted output similar to printf()</P
++></LI
++><LI
++><P
++>addstr() class: Print strings</P
++></LI
++></OL
++></P
++><P
++>These functions can be used interchangeably and it's a matter of style as to
++which class is used. Let's see each one in detail.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ADDCHCLASS"
++>6.1. addch() class of functions</A
++></H3
++><P
++>These functions put a single character into the current cursor location and
++advance the position of the cursor. You can give the character to be printed but
++they usually are used to print a character with some attributes. Attributes are
++explained in detail in later <A
++HREF="#ATTRIB"
++> sections </A
++> of the
++document. If a character is associated with an attribute(bold, reverse video
++etc.), when curses prints the character, it is printed in that attribute.</P
++><P
++>In order to combine a character with some attributes, you have two options:</P
++><P
++></P
++><UL
++><LI
++><P
++>By OR'ing a single character with the desired attribute macros. These attribute
++macros could be found in the header file
++<TT
++CLASS="LITERAL"
++>ncurses.h</TT
++>. For example, you want to print a
++character ch(of type char) bold and underlined, you would call addch() as below.
++<PRE
++CLASS="PROGRAMLISTING"
++> addch(ch | A_BOLD | A_UNDERLINE);</PRE
++></P
++></LI
++><LI
++><P
++>By using functions like <TT
++CLASS="LITERAL"
++>attrset(),attron(),attroff()</TT
++>. These functions are explained in the <A
++HREF="#ATTRIB"
++>Attributes</A
++> section. Briefly, they manipulate the current attributes of
++the given window. Once set, the character printed in the window are associated
++with the attributes until it is turned off.</P
++></LI
++></UL
++><P
++>Additionally, <TT
++CLASS="LITERAL"
++>curses</TT
++> provides some special
++characters for character-based graphics. You can draw tables, horizontal or
++vertical lines, etc. You can find all avaliable characters in the header file
++<TT
++CLASS="LITERAL"
++>ncurses.h</TT
++>. Try looking for macros beginning
++with <TT
++CLASS="LITERAL"
++>ACS_</TT
++> in this file. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="AEN298"
++>6.2. mvaddch(), waddch() and mvwaddch()</A
++></H3
++><P
++><TT
++CLASS="LITERAL"
++>mvaddch()</TT
++> is used to move the cursor to a
++given point, and then print. Thus, the calls:
++<PRE
++CLASS="PROGRAMLISTING"
++> move(row,col); /* moves the cursor to row<SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>th</I
++></SPAN
++> row and col<SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>th</I
++></SPAN
++> column */
++ addch(ch);</PRE
++>
+ can be replaced by
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> mvaddch(row,col,ch);</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p><var class="LITERAL">waddch()</var> is similar to <var class=
+-"LITERAL">addch()</var>, except that it adds a character into the
+-given window. (Note that <var class="LITERAL">addch()</var> adds a
+-character into the window <var class="LITERAL">stdscr</var>.)</p>
+-<p>In a similar fashion <var class="LITERAL">mvwaddch()</var>
+-function is used to add a character into the given window at the
+-given coordinates.</p>
+-<p>Now, we are familiar with the basic output function <var class=
+-"LITERAL">addch()</var>. But, if we want to print a string, it
+-would be very annoying to print it character by character.
+-Fortunately, <var class="LITERAL">ncurses</var> provides
+-<var class="LITERAL">printf</var><em>-like</em> or <var class=
+-"LITERAL">puts</var><em>-like</em> functions.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PRINTWCLASS" id="PRINTWCLASS">6.3.
+-printw() class of functions</a></h3>
+-<p>These functions are similar to <var class=
+-"LITERAL">printf()</var> with the added capability of printing at
+-any position on the screen.</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="PRINTWMVPRINTW" id=
+-"PRINTWMVPRINTW">6.3.1. printw() and mvprintw</a></h4>
+-<p>These two functions work much like <var class=
+-"LITERAL">printf()</var>. <var class="LITERAL">mvprintw()</var> can
+-be used to move the cursor to a position and then print. If you
+-want to move the cursor first and then print using <var class=
+-"LITERAL">printw()</var> function, use <var class=
+-"LITERAL">move()</var> first and then use <var class=
+-"LITERAL">printw()</var> though I see no point why one should avoid
+-using <var class="LITERAL">mvprintw()</var>, you have the
+-flexibility to manipulate.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="WPRINTWMVWPRINTW" id=
+-"WPRINTWMVWPRINTW">6.3.2. wprintw() and mvwprintw</a></h4>
+-<p>These two functions are similar to above two except that they
+-print in the corresponding window given as argument.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="VWPRINTW" id="VWPRINTW">6.3.3.
+-vwprintw()</a></h4>
+-<p>This function is similar to <var class=
+-"LITERAL">vprintf()</var>. This can be used when variable number of
+-arguments are to be printed.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="SIMPLEPRINTWEX" id=
+-"SIMPLEPRINTWEX">6.3.4. A Simple printw example</a></h4>
+-<div class="EXAMPLE"><a name="BPREX" id="BPREX"></a>
+-<p><b>Example 3. A Simple printw example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */
+-#include &lt;string.h&gt;
++<PRE
++CLASS="PROGRAMLISTING"
++> mvaddch(row,col,ch);</PRE
++></P
++><P
++><TT
++CLASS="LITERAL"
++>waddch()</TT
++> is similar to
++<TT
++CLASS="LITERAL"
++>addch()</TT
++>, except that it adds a character into
++the given window. (Note that <TT
++CLASS="LITERAL"
++>addch()</TT
++> adds a
++character into the window <TT
++CLASS="LITERAL"
++>stdscr</TT
++>.)</P
++><P
++>In a similar fashion <TT
++CLASS="LITERAL"
++>mvwaddch()</TT
++> function is
++used to add a character into the given window at the given coordinates.</P
++><P
++>Now, we are familiar with the basic output function
++<TT
++CLASS="LITERAL"
++>addch()</TT
++>. But, if we want to print a string, it
++would be very annoying to print it character by character. Fortunately,
++<TT
++CLASS="LITERAL"
++>ncurses</TT
++> provides <TT
++CLASS="LITERAL"
++>printf</TT
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>-like</I
++></SPAN
++> or
++<TT
++CLASS="LITERAL"
++>puts</TT
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>-like</I
++></SPAN
++> functions.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PRINTWCLASS"
++>6.3. printw() class of functions</A
++></H3
++><P
++>These functions are similar to <TT
++CLASS="LITERAL"
++>printf()</TT
++> with
++the added capability of printing at any position on the screen. </P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="PRINTWMVPRINTW"
++>6.3.1. printw() and mvprintw</A
++></H4
++><P
++>These two functions work much like <TT
++CLASS="LITERAL"
++>printf()</TT
++>.
++<TT
++CLASS="LITERAL"
++>mvprintw()</TT
++> can be used to move the cursor to a
++position and then print. If you want to move the cursor first and then print
++using <TT
++CLASS="LITERAL"
++>printw()</TT
++> function, use
++<TT
++CLASS="LITERAL"
++>move() </TT
++> first and then use
++<TT
++CLASS="LITERAL"
++>printw()</TT
++> though I see no point why one should
++avoid using <TT
++CLASS="LITERAL"
++>mvprintw()</TT
++>, you have the
++flexibility to manipulate. </P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="WPRINTWMVWPRINTW"
++>6.3.2. wprintw() and mvwprintw</A
++></H4
++><P
++>These two functions are similar to above two except that they print in the
++corresponding window given as argument. </P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="VWPRINTW"
++>6.3.3. vwprintw()</A
++></H4
++><P
++>This function is similar to <TT
++CLASS="LITERAL"
++>vprintf()</TT
++>. This can
++be used when variable number of arguments are to be printed.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="SIMPLEPRINTWEX"
++>6.3.4. A Simple printw example</A
++></H4
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BPREX"
++></A
++><P
++><B
++>Example 3. A Simple printw example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62; /* ncurses.h includes stdio.h */
++#include &#60;string.h&#62;
+
+ int main()
+ {
+- char mesg[]="Just a string"; /* message to be appeared on the screen */
+- int row,col; /* to store the number of rows and *
+- * the number of colums of the screen */
+- initscr(); /* start the curses mode */
+- getmaxyx(stdscr,row,col); /* get the number of rows and columns */
++ char mesg[]="Just a string"; /* message to be appeared on the screen */
++ int row,col; /* to store the number of rows and *
++ * the number of colums of the screen */
++ initscr(); /* start the curses mode */
++ getmaxyx(stdscr,row,col); /* get the number of rows and columns */
+ mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
+- /* print the message at the center of the screen */
++ /* print the message at the center of the screen */
+ mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col);
+ printw("Try resizing your window(if possible) and then run this program again");
+ refresh();
+@@ -1268,192 +2327,302 @@
+ endwin();
+
+ return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Above program demonstrates how easy it is to use <var class=
+-"LITERAL">printw</var>. You just feed the coordinates and the
+-message to be appeared on the screen, then it does what you
+-want.</p>
+-<p>The above program introduces us to a new function <var class=
+-"LITERAL">getmaxyx()</var>, a macro defined in <var class=
+-"LITERAL">ncurses.h</var>. It gives the number of columns and the
+-number of rows in a given window. <var class=
+-"LITERAL">getmaxyx()</var> does this by updating the variables
+-given to it. Since <var class="LITERAL">getmaxyx()</var> is not a
+-function we don't pass pointers to it, we just give two integer
+-variables.</p>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ADDSTRCLASS" id="ADDSTRCLASS">6.4.
+-addstr() class of functions</a></h3>
+-<p><var class="LITERAL">addstr()</var> is used to put a character
+-string into a given window. This function is similar to calling
+-<var class="LITERAL">addch()</var> once for each character in a
+-given string. This is true for all output functions. There are
+-other functions from this family such as <var class=
+-"LITERAL">mvaddstr(),mvwaddstr()</var> and <var class=
+-"LITERAL">waddstr()</var>, which obey the naming convention of
+-curses.(e.g. mvaddstr() is similar to the respective calls move()
+-and then addstr().) Another function of this family is addnstr(),
+-which takes an integer parameter(say n) additionally. This function
+-puts at most n characters into the screen. If n is negative, then
+-the entire string will be added.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ACAUTION" id="ACAUTION">6.5. A word of
+-caution</a></h3>
+-<p>All these functions take y co-ordinate first and then x in their
+-arguments. A common mistake by beginners is to pass x,y in that
+-order. If you are doing too many manipulations of (y,x)
+-co-ordinates, think of dividing the screen into windows and
+-manipulate each one separately. Windows are explained in the
+-<a href="#WINDOWS">windows</a> section.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="SCANW" id="SCANW">7. Input
+-functions</a></h2>
+-<p>Well, printing without taking input, is boring. Let's see
+-functions which allow us to get input from user. These functions
+-also can be divided into three categories.</p>
+-<ol type="1">
+-<li>
+-<p>getch() class: Get a character</p>
+-</li>
+-<li>
+-<p>scanw() class: Get formatted input</p>
+-</li>
+-<li>
+-<p>getstr() class: Get strings</p>
+-</li>
+-</ol>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="GETCHCLASS" id="GETCHCLASS">7.1. getch()
+-class of functions</a></h3>
+-<p>These functions read a single character from the terminal. But
+-there are several subtle facts to consider. For example if you
+-don't use the function cbreak(), curses will not read your input
+-characters contiguously but will begin read them only after a new
+-line or an EOF is encountered. In order to avoid this, the cbreak()
+-function must used so that characters are immediately available to
+-your program. Another widely used function is noecho(). As the name
+-suggests, when this function is set (used), the characters that are
+-keyed in by the user will not show up on the screen. The two
+-functions cbreak() and noecho() are typical examples of key
+-management. Functions of this genre are explained in the <a href=
+-"#KEYS">key management section</a> .</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="SCANWCLASS" id="SCANWCLASS">7.2. scanw()
+-class of functions</a></h3>
+-<p>These functions are similar to <var class=
+-"LITERAL">scanf()</var> with the added capability of getting the
+-input from any location on the screen.</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="SCANWMVSCANW" id="SCANWMVSCANW">7.2.1.
+-scanw() and mvscanw</a></h4>
+-<p>The usage of these functions is similar to that of <var class=
+-"LITERAL">sscanf()</var>, where the line to be scanned is provided
+-by <var class="LITERAL">wgetstr()</var> function. That is, these
+-functions call to <var class="LITERAL">wgetstr()</var>
+-function(explained below) and uses the resulting line for a
+-scan.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="WSCANWMVWSCANW" id=
+-"WSCANWMVWSCANW">7.2.2. wscanw() and mvwscanw()</a></h4>
+-<p>These are similar to above two functions except that they read
+-from a window, which is supplied as one of the arguments to these
+-functions.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="VWSCANW" id="VWSCANW">7.2.3.
+-vwscanw()</a></h4>
+-<p>This function is similar to <var class="LITERAL">vscanf()</var>.
+-This can be used when a variable number of arguments are to be
+-scanned.</p>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="GETSTRCLASS" id="GETSTRCLASS">7.3.
+-getstr() class of functions</a></h3>
+-<p>These functions are used to get strings from the terminal. In
+-essence, this function performs the same task as would be achieved
+-by a series of calls to <var class="LITERAL">getch()</var> until a
+-newline, carriage return, or end-of-file is received. The resulting
+-string of characters are pointed to by <var class=
+-"LITERAL">str</var>, which is a character pointer provided by the
+-user.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="GETSTREX" id="GETSTREX">7.4. Some
+-examples</a></h3>
+-<div class="EXAMPLE"><a name="BSCEX" id="BSCEX"></a>
+-<p><b>Example 4. A Simple scanw example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt; /* ncurses.h includes stdio.h */
+-#include &lt;string.h&gt;
++}</SPAN
++></PRE
++></DIV
++><P
++>Above program demonstrates how easy it is to use <TT
++CLASS="LITERAL"
++>printw</TT
++>. You just feed the coordinates and the message to be appeared
++on the screen, then it does what you want.</P
++><P
++>The above program introduces us to a new function
++<TT
++CLASS="LITERAL"
++>getmaxyx()</TT
++>, a macro defined in
++<TT
++CLASS="LITERAL"
++>ncurses.h</TT
++>. It gives the number of columns and
++the number of rows in a given window.
++<TT
++CLASS="LITERAL"
++>getmaxyx()</TT
++> does this by updating the variables
++given to it. Since <TT
++CLASS="LITERAL"
++>getmaxyx()</TT
++> is not a function
++we don't pass pointers to it, we just give two integer variables. </P
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ADDSTRCLASS"
++>6.4. addstr() class of functions</A
++></H3
++><P
++><TT
++CLASS="LITERAL"
++>addstr()</TT
++> is used to put a character string into
++a given window. This function is similar to calling
++<TT
++CLASS="LITERAL"
++>addch()</TT
++> once for each character in a given
++string. This is true for all output functions. There are other functions from
++this family such as <TT
++CLASS="LITERAL"
++>mvaddstr(),mvwaddstr()</TT
++> and
++<TT
++CLASS="LITERAL"
++>waddstr()</TT
++>, which obey the naming convention of
++curses.(e.g. mvaddstr() is similar to the respective calls move() and then
++addstr().) Another function of this family is addnstr(), which takes an integer
++parameter(say n) additionally. This function puts at most n characters into the
++screen. If n is negative, then the entire string will be added. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ACAUTION"
++>6.5. A word of caution</A
++></H3
++><P
++>All these functions take y co-ordinate first and then x in their arguments.
++A common mistake by beginners is to pass x,y in that order. If you are
++doing too many manipulations of (y,x) co-ordinates, think of dividing the
++screen into windows and manipulate each one separately. Windows are explained
++in the <A
++HREF="#WINDOWS"
++> windows </A
++> section.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="SCANW"
++>7. Input functions</A
++></H2
++><P
++>Well, printing without taking input, is boring. Let's see functions which
++allow us to get input from user. These functions also can be divided into
++three categories.</P
++><P
++></P
++><OL
++TYPE="1"
++><LI
++><P
++>getch() class: Get a character</P
++></LI
++><LI
++><P
++>scanw() class: Get formatted input</P
++></LI
++><LI
++><P
++>getstr() class: Get strings</P
++></LI
++></OL
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="GETCHCLASS"
++>7.1. getch() class of functions</A
++></H3
++><P
++>These functions read a single character from the terminal. But there are several
++subtle facts to consider. For example if you don't use the function cbreak(),
++curses will not read your input characters contiguously but will begin read them
++only after a new line or an EOF is encountered. In order to avoid this, the
++cbreak() function must used so that characters are immediately available to your
++program. Another widely used function is noecho(). As the name suggests, when
++this function is set (used), the characters that are keyed in by the user will
++not show up on the screen. The two functions cbreak() and noecho() are typical
++examples of key management. Functions of this genre are explained in the
++<A
++HREF="#KEYS"
++>key management section </A
++>.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="SCANWCLASS"
++>7.2. scanw() class of functions</A
++></H3
++><P
++>These functions are similar to <TT
++CLASS="LITERAL"
++>scanf()</TT
++> with the
++added capability of getting the input from any location on the screen.</P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="SCANWMVSCANW"
++>7.2.1. scanw() and mvscanw</A
++></H4
++><P
++>The usage of these functions is similar to that of
++<TT
++CLASS="LITERAL"
++>sscanf()</TT
++>, where the line to be scanned is
++provided by <TT
++CLASS="LITERAL"
++>wgetstr()</TT
++> function. That is, these
++functions call to <TT
++CLASS="LITERAL"
++>wgetstr()</TT
++> function(explained
++below) and uses the resulting line for a scan. </P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="WSCANWMVWSCANW"
++>7.2.2. wscanw() and mvwscanw()</A
++></H4
++><P
++>These are similar to above two functions except that they read from a window,
++which is supplied as one of the arguments to these functions. </P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="VWSCANW"
++>7.2.3. vwscanw()</A
++></H4
++><P
++>This function is similar to <TT
++CLASS="LITERAL"
++>vscanf()</TT
++>. This can
++be used when a variable number of arguments are to be scanned.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="GETSTRCLASS"
++>7.3. getstr() class of functions</A
++></H3
++><P
++>These functions are used to get strings from the terminal. In essence, this
++function performs the same task as would be achieved by a series of calls to
++<TT
++CLASS="LITERAL"
++>getch()</TT
++> until a newline, carriage return, or
++end-of-file is received. The resulting string of characters are pointed to by
++<TT
++CLASS="LITERAL"
++>str</TT
++>, which is a character pointer provided by
++the user.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="GETSTREX"
++>7.4. Some examples</A
++></H3
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BSCEX"
++></A
++><P
++><B
++>Example 4. A Simple scanw example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62; /* ncurses.h includes stdio.h */
++#include &#60;string.h&#62;
+
+ int main()
+ {
+- char mesg[]="Enter a string: "; /* message to be appeared on the screen */
++ char mesg[]="Enter a string: "; /* message to be appeared on the screen */
+ char str[80];
+- int row,col; /* to store the number of rows and *
+- * the number of colums of the screen */
+- initscr(); /* start the curses mode */
+- getmaxyx(stdscr,row,col); /* get the number of rows and columns */
++ int row,col; /* to store the number of rows and *
++ * the number of colums of the screen */
++ initscr(); /* start the curses mode */
++ getmaxyx(stdscr,row,col); /* get the number of rows and columns */
+ mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
+- /* print the message at the center of the screen */
++ /* print the message at the center of the screen */
+ getstr(str);
+ mvprintw(LINES - 2, 0, "You Entered: %s", str);
+ getch();
+ endwin();
+
+ return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="ATTRIB" id="ATTRIB">8.
+-Attributes</a></h2>
+-<p>We have seen an example of how attributes can be used to print
+-characters with some special effects. Attributes, when set
+-prudently, can present information in an easy, understandable
+-manner. The following program takes a C file as input and prints
+-the file with comments in bold. Scan through the code.</p>
+-<div class="EXAMPLE"><a name="BSIAT" id="BSIAT"></a>
+-<p><b>Example 5. A Simple Attributes example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">/* pager functionality by Joseph Spainhour" &lt;spainhou@bellsouth.net&gt; */
+-#include &lt;ncurses.h&gt;
+-#include &lt;stdlib.h&gt;
++}</SPAN
++></PRE
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="ATTRIB"
++>8. Attributes</A
++></H2
++><P
++>We have seen an example of how attributes can be used to print characters with
++some special effects. Attributes, when set prudently, can present information in
++an easy, understandable manner. The following program takes a C file as input
++and prints the file with comments in bold. Scan through the code. </P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BSIAT"
++></A
++><P
++><B
++>Example 5. A Simple Attributes example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>/* pager functionality by Joseph Spainhour" &#60;spainhou@bellsouth.net&#62; */
++#include &#60;ncurses.h&#62;
++#include &#60;stdlib.h&#62;
+
+ int main(int argc, char *argv[])
+ {
+@@ -1464,7 +2633,7 @@
+
+ if(argc != 2)
+ {
+- printf("Usage: %s &lt;a c file name&gt;\n", argv[0]);
++ printf("Usage: %s &#60;a c file name&#62;\n", argv[0]);
+ exit(1);
+ }
+ fp = fopen(argv[1], "r");
+@@ -1473,77 +2642,101 @@
+ perror("Cannot open input file");
+ exit(1);
+ }
+- initscr(); /* Start curses mode */
+- getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */
+- while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */
++ initscr(); /* Start curses mode */
++ getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */
++ while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */
+ {
+- getyx(stdscr, y, x); /* get the current curser position */
+- if(y == (row - 1)) /* are we are at the end of the screen */
++ getyx(stdscr, y, x); /* get the current curser position */
++ if(y == (row - 1)) /* are we are at the end of the screen */
+ {
+- printw("&lt;-Press Any Key-&gt;"); /* tell the user to press a key */
++ printw("&#60;-Press Any Key-&#62;"); /* tell the user to press a key */
+ getch();
+- clear(); /* clear the screen */
+- move(0, 0); /* start at the beginning of the screen */
++ clear(); /* clear the screen */
++ move(0, 0); /* start at the beginning of the screen */
+ }
+- if(prev == '/' &amp;&amp; ch == '*') /* If it is / and * then only
+- * switch bold on */
++ if(prev == '/' &#38;&#38; ch == '*') /* If it is / and * then only
++ * switch bold on */
+ {
+- attron(A_BOLD); /* cut bold on */
+- getyx(stdscr, y, x); /* get the current curser position */
+- move(y, x - 1); /* back up one space */
+- printw("%c%c", '/', ch); /* The actual printing is done here */
++ attron(A_BOLD); /* cut bold on */
++ getyx(stdscr, y, x); /* get the current curser position */
++ move(y, x - 1); /* back up one space */
++ printw("%c%c", '/', ch); /* The actual printing is done here */
+ }
+ else
+ printw("%c", ch);
+ refresh();
+- if(prev == '*' &amp;&amp; ch == '/')
+- attroff(A_BOLD); /* Switch it off once we got *
+- * and then / */
++ if(prev == '*' &#38;&#38; ch == '/')
++ attroff(A_BOLD); /* Switch it off once we got *
++ * and then / */
+ prev = ch;
+ }
+- endwin(); /* End curses mode */
++ endwin(); /* End curses mode */
+ fclose(fp);
+ return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Don't worry about all those initialization and other crap.
+-Concentrate on the while loop. It reads each character in the file
+-and searches for the pattern /*. Once it spots the pattern, it
+-switches the BOLD attribute on with <var class=
+-"LITERAL">attron()</var> . When we get the pattern */ it is
+-switched off by <var class="LITERAL">attroff()</var> .</p>
+-<p>The above program also introduces us to two useful functions
+-<var class="LITERAL">getyx()</var> and <var class=
+-"LITERAL">move()</var>. The first function gets the co-ordinates of
+-the present cursor into the variables y, x. Since getyx() is a
++}</SPAN
++></PRE
++></DIV
++><P
++>
++Don't worry about all those initialization and other crap. Concentrate on
++the while loop. It reads each character in the file and searches for the
++pattern /*. Once it spots the pattern, it switches the BOLD attribute on with
++<TT
++CLASS="LITERAL"
++> attron()</TT
++> . When we get the pattern */ it is
++switched off by <TT
++CLASS="LITERAL"
++> attroff()</TT
++> .</P
++><P
++>
++The above program also introduces us to two useful functions
++<TT
++CLASS="LITERAL"
++>getyx() </TT
++> and
++<TT
++CLASS="LITERAL"
++>move()</TT
++>. The first function gets the
++co-ordinates of the present cursor into the variables y, x. Since getyx() is a
+ macro we don't have to pass pointers to variables. The function
+-<var class="LITERAL">move()</var> moves the cursor to the
+-co-ordinates given to it.</p>
+-<p>The above program is really a simple one which doesn't do much.
+-On these lines one could write a more useful program which reads a
+-C file, parses it and prints it in different colors. One could even
+-extend it to other languages as well.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ATTRIBDETAILS" id="ATTRIBDETAILS">8.1.
+-The details</a></h3>
+-<p>Let's get into more details of attributes. The functions
+-<var class="LITERAL">attron(), attroff(), attrset()</var> , and
+-their sister functions <var class="LITERAL">attr_get()</var> etc..
+-can be used to switch attributes on/off , get attributes and
+-produce a colorful display.</p>
+-<p>The functions attron and attroff take a bit-mask of attributes
+-and switch them on or off, respectively. The following video
+-attributes, which are defined in &lt;curses.h&gt; can be passed to
+-these functions.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">
++<TT
++CLASS="LITERAL"
++>move()</TT
++> moves the cursor to the co-ordinates
++given to it. </P
++><P
++>
++The above program is really a simple one which doesn't do much. On these lines
++one could write a more useful program which reads a C file, parses it and prints
++it in different colors. One could even extend it to other languages as well.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ATTRIBDETAILS"
++>8.1. The details</A
++></H3
++><P
++>Let's get into more details of attributes. The functions <TT
++CLASS="LITERAL"
++>attron(), attroff(), attrset() </TT
++>, and their sister functions
++<TT
++CLASS="LITERAL"
++> attr_get()</TT
++> etc.. can be used to switch
++attributes on/off , get attributes and produce a colorful display.</P
++><P
++>The functions attron and attroff take a bit-mask of attributes and switch them
++on or off, respectively. The following video attributes, which are defined in
++&lt;curses.h&gt; can be passed to these functions. </P
++><PRE
++CLASS="PROGRAMLISTING"
++>
+ A_NORMAL Normal display (no highlight)
+ A_STANDOUT Best highlighting mode of the terminal.
+ A_UNDERLINE Underlining
+@@ -1556,368 +2749,445 @@
+ A_ALTCHARSET Alternate character set
+ A_CHARTEXT Bit-mask to extract a character
+ COLOR_PAIR(n) Color-pair number n
+- </font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The last one is the most colorful one :-) Colors are explained
+-in the <a href="#color" target="_top">next sections</a>.</p>
+-<p>We can OR(|) any number of above attributes to get a combined
+-effect. If you wanted reverse video with blinking characters you
+-can use</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> attron(A_REVERSE | A_BLINK);</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ATTRONVSATTRSET" id=
+-"ATTRONVSATTRSET">8.2. attron() vs attrset()</a></h3>
+-<p>Then what is the difference between attron() and attrset()?
+-attrset sets the attributes of window whereas attron just switches
+-on the attribute given to it. So attrset() fully overrides whatever
+-attributes the window previously had and sets it to the new
+-attribute(s). Similarly attroff() just switches off the
+-attribute(s) given to it as an argument. This gives us the
+-flexibility of managing attributes easily.But if you use them
+-carelessly you may loose track of what attributes the window has
+-and garble the display. This is especially true while managing
+-menus with colors and highlighting. So decide on a consistent
+-policy and stick to it. You can always use <var class=
+-"LITERAL">standend()</var> which is equivalent to <var class=
+-"LITERAL">attrset(A_NORMAL)</var> which turns off all attributes
+-and brings you to normal mode.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ATTR_GET" id="ATTR_GET">8.3.
+-attr_get()</a></h3>
+-<p>The function attr_get() gets the current attributes and color
+-pair of the window. Though we might not use this as often as the
+-above functions, this is useful in scanning areas of screen. Say we
+-wanted to do some complex update on screen and we are not sure what
+-attribute each character is associated with. Then this function can
+-be used with either attrset or attron to produce the desired
+-effect.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ATTR_FUNCS" id="ATTR_FUNCS">8.4. attr_
+-functions</a></h3>
+-<p>There are series of functions like attr_set(), attr_on etc..
+-These are similar to above functions except that they take
+-parameters of type <var class="LITERAL">attr_t</var>.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WATTRFUNCS" id="WATTRFUNCS">8.5. wattr
+-functions</a></h3>
+-<p>For each of the above functions we have a corresponding function
+-with 'w' which operates on a particular window. The above functions
+-operate on stdscr.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="CHGAT" id="CHGAT">8.6. chgat()
+-functions</a></h3>
+-<p>The function chgat() is listed in the end of the man page
+-curs_attr. It actually is a useful one. This function can be used
+-to set attributes for a group of characters without moving. I mean
+-it !!! without moving the cursor :-) It changes the attributes of a
+-given number of characters starting at the current cursor
+-location.</p>
+-<p>We can give -1 as the character count to update till end of
+-line. If you want to change attributes of characters from current
+-position to end of line, just use this.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> chgat(-1, A_REVERSE, 0, NULL);</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>This function is useful when changing attributes for characters
+-that are already on the screen. Move to the character from which
+-you want to change and change the attribute.</p>
+-<p>Other functions wchgat(), mvchgat(), wchgat() behave similarly
+-except that the w functions operate on the particular window. The
+-mv functions first move the cursor then perform the work given to
+-them. Actually chgat is a macro which is replaced by a wchgat()
+-with stdscr as the window. Most of the "w-less" functions are
+-macros.</p>
+-<div class="EXAMPLE"><a name="BWICH" id="BWICH"></a>
+-<p><b>Example 6. Chgat() Usage example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++ </PRE
++><P
++>
++The last one is the most colorful one :-) Colors are explained in the
++<A
++HREF="#color"
++TARGET="_top"
++>next sections</A
++>.</P
++><P
++>We can OR(|) any number of above attributes to get a combined effect. If you
++wanted reverse video with blinking characters you can use</P
++><PRE
++CLASS="PROGRAMLISTING"
++> attron(A_REVERSE | A_BLINK);</PRE
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ATTRONVSATTRSET"
++>8.2. attron() vs attrset()</A
++></H3
++><P
++>Then what is the difference between attron() and attrset()? attrset sets the
++attributes of window whereas attron just switches on the attribute given to it.
++So attrset() fully overrides whatever attributes the window previously had and
++sets it to the new attribute(s). Similarly attroff() just switches off the
++attribute(s) given to it as an argument. This gives us the flexibility of
++managing attributes easily.But if you use them carelessly you may loose track of
++what attributes the window has and garble the display. This is especially true
++while managing menus with colors and highlighting. So decide on a consistent
++policy and stick to it. You can always use <TT
++CLASS="LITERAL"
++> standend()</TT
++> which is equivalent to <TT
++CLASS="LITERAL"
++> attrset(A_NORMAL)</TT
++> which turns off all attributes and brings you to normal mode.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ATTR_GET"
++>8.3. attr_get()</A
++></H3
++><P
++>&#13;The function attr_get() gets the current attributes and color pair of the
++window. Though we might not use this as often as the above functions, this is
++useful in scanning areas of screen. Say we wanted to do some complex update on
++screen and we are not sure what attribute each character is associated with.
++Then this function can be used with either attrset or attron to produce the
++desired effect.&#13;</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ATTR_FUNCS"
++>8.4. attr_ functions</A
++></H3
++><P
++>There are series of functions like attr_set(), attr_on etc.. These are similar
++to above functions except that they take parameters of type
++<TT
++CLASS="LITERAL"
++>attr_t</TT
++>.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WATTRFUNCS"
++>8.5. wattr functions</A
++></H3
++><P
++>For each of the above functions we have a corresponding function with 'w' which
++operates on a particular window. The above functions operate on stdscr. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="CHGAT"
++>8.6. chgat() functions</A
++></H3
++><P
++>The function chgat() is listed in the end of the man page curs_attr. It actually
++is a useful one. This function can be used to set attributes for a group of
++characters without moving. I mean it !!! without moving the cursor :-) It
++changes the attributes of a given number of characters starting at the current
++cursor location.</P
++><P
++>We can give -1 as the character count to update till end of line. If you want to
++change attributes of characters from current position to end of line, just use
++this.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> chgat(-1, A_REVERSE, 0, NULL);</PRE
++><P
++>
++This function is useful when changing attributes for characters that are
++already on the screen. Move to the character from which you want to change and
++change the attribute. </P
++><P
++>Other functions wchgat(), mvchgat(), wchgat() behave similarly except that the w
++functions operate on the particular window. The mv functions first move the
++cursor then perform the work given to them. Actually chgat is a macro which is
++replaced by a wchgat() with stdscr as the window. Most of the "w-less" functions
++are macros.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BWICH"
++></A
++><P
++><B
++>Example 6. Chgat() Usage example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ int main(int argc, char *argv[])
+-{ initscr(); /* Start curses mode */
+- start_color(); /* Start color functionality */
+-
+- init_pair(1, COLOR_CYAN, COLOR_BLACK);
+- printw("A Big string which i didn't care to type fully ");
+- mvchgat(0, 0, -1, A_BLINK, 1, NULL);
+- /*
+- * First two parameters specify the position at which to start
+- * Third parameter number of characters to update. -1 means till
+- * end of line
+- * Forth parameter is the normal attribute you wanted to give
+- * to the charcter
+- * Fifth is the color index. It is the index given during init_pair()
+- * use 0 if you didn't want color
+- * Sixth one is always NULL
+- */
+- refresh();
+- getch();
+- endwin(); /* End curses mode */
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>This example also introduces us to the color world of curses.
+-Colors will be explained in detail later. Use 0 for no color.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="WINDOWS" id="WINDOWS">9.
+-Windows</a></h2>
+-<p>Windows form the most important concept in curses. You have seen
+-the standard window stdscr above where all the functions implicitly
+-operated on this window. Now to make design even a simplest GUI,
+-you need to resort to windows. The main reason you may want to use
+-windows is to manipulate parts of the screen separately, for better
+-efficiency, by updating only the windows that need to be changed
+-and for a better design. I would say the last reason is the most
+-important in going for windows. You should always strive for a
+-better and easy-to-manage design in your programs. If you are
+-writing big, complex GUIs this is of pivotal importance before you
+-start doing anything.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WINDOWBASICS" id="WINDOWBASICS">9.1. The
+-basics</a></h3>
+-<p>A Window can be created by calling the function <var class=
+-"LITERAL">newwin()</var>. It doesn't create any thing on the screen
+-actually. It allocates memory for a structure to manipulate the
+-window and updates the structure with data regarding the window
+-like it's size, beginy, beginx etc.. Hence in curses, a window is
+-just an abstraction of an imaginary window, which can be
+-manipulated independent of other parts of screen. The function
+-newwin() returns a pointer to structure WINDOW, which can be passed
+-to window related functions like wprintw() etc.. Finally the window
+-can be destroyed with delwin(). It will deallocate the memory
+-associated with the window structure.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="LETBEWINDOW" id="LETBEWINDOW">9.2. Let
+-there be a Window !!!</a></h3>
+-<p>What fun is it, if a window is created and we can't see it. So
+-the fun part begins by displaying the window. The function
+-<var class="LITERAL">box()</var> can be used to draw a border
+-around the window. Let's explore these functions in more detail in
+-this example.</p>
+-<div class="EXAMPLE"><a name="BWIBO" id="BWIBO"></a>
+-<p><b>Example 7. Window Border example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++{ initscr(); /* Start curses mode */
++ start_color(); /* Start color functionality */
++
++ init_pair(1, COLOR_CYAN, COLOR_BLACK);
++ printw("A Big string which i didn't care to type fully ");
++ mvchgat(0, 0, -1, A_BLINK, 1, NULL);
++ /*
++ * First two parameters specify the position at which to start
++ * Third parameter number of characters to update. -1 means till
++ * end of line
++ * Forth parameter is the normal attribute you wanted to give
++ * to the charcter
++ * Fifth is the color index. It is the index given during init_pair()
++ * use 0 if you didn't want color
++ * Sixth one is always NULL
++ */
++ refresh();
++ getch();
++ endwin(); /* End curses mode */
++ return 0;
++}</SPAN
++></PRE
++></DIV
++><P
++>This example also introduces us to the color world of curses. Colors will be
++explained in detail later. Use 0 for no color.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="WINDOWS"
++>9. Windows</A
++></H2
++><P
++>Windows form the most important concept in curses. You have seen the standard
++window stdscr above where all the functions implicitly operated on this window.
++Now to make design even a simplest GUI, you need to resort to windows. The main
++reason you may want to use windows is to manipulate parts of the screen
++separately, for better efficiency, by updating only the windows that need to be
++changed and for a better design. I would say the last reason is the most
++important in going for windows. You should always strive for a better and
++easy-to-manage design in your programs. If you are writing big, complex GUIs
++this is of pivotal importance before you start doing anything.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WINDOWBASICS"
++>9.1. The basics</A
++></H3
++><P
++>A Window can be created by calling the function
++<TT
++CLASS="LITERAL"
++>newwin()</TT
++>. It doesn't create any thing on the
++screen actually. It allocates memory for a structure to manipulate the window
++and updates the structure with data regarding the window like it's size, beginy,
++beginx etc.. Hence in curses, a window is just an abstraction of an imaginary
++window, which can be manipulated independent of other parts of screen. The
++function newwin() returns a pointer to structure WINDOW, which can be passed to
++window related functions like wprintw() etc.. Finally the window can be
++destroyed with delwin(). It will deallocate the memory associated with the
++window structure.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="LETBEWINDOW"
++>9.2. Let there be a Window !!!</A
++></H3
++><P
++>What fun is it, if a window is created and we can't see it. So the fun part
++begins by displaying the window. The function
++<TT
++CLASS="LITERAL"
++>box()</TT
++> can be used to draw a border around the
++window. Let's explore these functions in more detail in this example.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BWIBO"
++></A
++><P
++><B
++>Example 7. Window Border example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+
+ WINDOW *create_newwin(int height, int width, int starty, int startx);
+ void destroy_win(WINDOW *local_win);
+
+ int main(int argc, char *argv[])
+-{ WINDOW *my_win;
+- int startx, starty, width, height;
+- int ch;
+-
+- initscr(); /* Start curses mode */
+- cbreak(); /* Line buffering disabled, Pass on
+- * everty thing to me */
+- keypad(stdscr, TRUE); /* I need that nifty F1 */
+-
+- height = 3;
+- width = 10;
+- starty = (LINES - height) / 2; /* Calculating for a center placement */
+- startx = (COLS - width) / 2; /* of the window */
+- printw("Press F1 to exit");
+- refresh();
+- my_win = create_newwin(height, width, starty, startx);
+-
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case KEY_LEFT:
+- destroy_win(my_win);
+- my_win = create_newwin(height, width, starty,--startx);
+- break;
+- case KEY_RIGHT:
+- destroy_win(my_win);
+- my_win = create_newwin(height, width, starty,++startx);
+- break;
+- case KEY_UP:
+- destroy_win(my_win);
+- my_win = create_newwin(height, width, --starty,startx);
+- break;
+- case KEY_DOWN:
+- destroy_win(my_win);
+- my_win = create_newwin(height, width, ++starty,startx);
+- break;
+- }
+- }
+-
+- endwin(); /* End curses mode */
+- return 0;
++{ WINDOW *my_win;
++ int startx, starty, width, height;
++ int ch;
++
++ initscr(); /* Start curses mode */
++ cbreak(); /* Line buffering disabled, Pass on
++ * everty thing to me */
++ keypad(stdscr, TRUE); /* I need that nifty F1 */
++
++ height = 3;
++ width = 10;
++ starty = (LINES - height) / 2; /* Calculating for a center placement */
++ startx = (COLS - width) / 2; /* of the window */
++ printw("Press F1 to exit");
++ refresh();
++ my_win = create_newwin(height, width, starty, startx);
++
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case KEY_LEFT:
++ destroy_win(my_win);
++ my_win = create_newwin(height, width, starty,--startx);
++ break;
++ case KEY_RIGHT:
++ destroy_win(my_win);
++ my_win = create_newwin(height, width, starty,++startx);
++ break;
++ case KEY_UP:
++ destroy_win(my_win);
++ my_win = create_newwin(height, width, --starty,startx);
++ break;
++ case KEY_DOWN:
++ destroy_win(my_win);
++ my_win = create_newwin(height, width, ++starty,startx);
++ break;
++ }
++ }
++
++ endwin(); /* End curses mode */
++ return 0;
+ }
+
+ WINDOW *create_newwin(int height, int width, int starty, int startx)
+-{ WINDOW *local_win;
++{ WINDOW *local_win;
+
+- local_win = newwin(height, width, starty, startx);
+- box(local_win, 0 , 0); /* 0, 0 gives default characters
+- * for the vertical and horizontal
+- * lines */
+- wrefresh(local_win); /* Show that box */
++ local_win = newwin(height, width, starty, startx);
++ box(local_win, 0 , 0); /* 0, 0 gives default characters
++ * for the vertical and horizontal
++ * lines */
++ wrefresh(local_win); /* Show that box */
+
+- return local_win;
++ return local_win;
+ }
+
+ void destroy_win(WINDOW *local_win)
+-{
+- /* box(local_win, ' ', ' '); : This won't produce the desired
+- * result of erasing the window. It will leave it's four corners
+- * and so an ugly remnant of window.
+- */
+- wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
+- /* The parameters taken are
+- * 1. win: the window on which to operate
+- * 2. ls: character to be used for the left side of the window
+- * 3. rs: character to be used for the right side of the window
+- * 4. ts: character to be used for the top side of the window
+- * 5. bs: character to be used for the bottom side of the window
+- * 6. tl: character to be used for the top left corner of the window
+- * 7. tr: character to be used for the top right corner of the window
+- * 8. bl: character to be used for the bottom left corner of the window
+- * 9. br: character to be used for the bottom right corner of the window
+- */
+- wrefresh(local_win);
+- delwin(local_win);
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="BORDEREXEXPL" id="BORDEREXEXPL">9.3.
+-Explanation</a></h3>
+-<p>Don't scream. I know it's a big example. But I have to explain
+-some important things here :-). This program creates a rectangular
+-window that can be moved with left, right, up, down arrow keys. It
+-repeatedly creates and destroys windows as user press a key. Don't
+-go beyond the screen limits. Checking for those limits is left as
+-an exercise for the reader. Let's dissect it by line by line.</p>
+-<p>The <var class="LITERAL">create_newwin()</var> function creates
+-a window with <var class="LITERAL">newwin()</var> and displays a
+-border around it with box. The function <var class=
+-"LITERAL">destroy_win()</var> first erases the window from screen
+-by painting a border with ' ' character and then calling
+-<var class="LITERAL">delwin()</var> to deallocate memory related to
+-it. Depending on the key the user presses, starty or startx is
+-changed and a new window is created.</p>
+-<p>In the destroy_win, as you can see, I used wborder instead of
+-box. The reason is written in the comments (You missed it. I know.
+-Read the code :-)). wborder draws a border around the window with
+-the characters given to it as the 4 corner points and the 4 lines.
+-To put it clearly, if you have called wborder as below:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>it produces some thing like</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> +------------+
++{
++ /* box(local_win, ' ', ' '); : This won't produce the desired
++ * result of erasing the window. It will leave it's four corners
++ * and so an ugly remnant of window.
++ */
++ wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
++ /* The parameters taken are
++ * 1. win: the window on which to operate
++ * 2. ls: character to be used for the left side of the window
++ * 3. rs: character to be used for the right side of the window
++ * 4. ts: character to be used for the top side of the window
++ * 5. bs: character to be used for the bottom side of the window
++ * 6. tl: character to be used for the top left corner of the window
++ * 7. tr: character to be used for the top right corner of the window
++ * 8. bl: character to be used for the bottom left corner of the window
++ * 9. br: character to be used for the bottom right corner of the window
++ */
++ wrefresh(local_win);
++ delwin(local_win);
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="BORDEREXEXPL"
++>9.3. Explanation</A
++></H3
++><P
++>Don't scream. I know it's a big example. But I have to explain some important
++things here :-). This program creates a rectangular window that can be moved
++with left, right, up, down arrow keys. It repeatedly creates and destroys
++windows as user press a key. Don't go beyond the screen limits. Checking for
++those limits is left as an exercise for the reader. Let's dissect it by line by line.</P
++><P
++>The <TT
++CLASS="LITERAL"
++>create_newwin()</TT
++> function creates a window
++with <TT
++CLASS="LITERAL"
++>newwin() </TT
++> and displays a border around it
++with box. The function <TT
++CLASS="LITERAL"
++> destroy_win()</TT
++> first
++erases the window from screen by painting a border with ' ' character and then
++calling <TT
++CLASS="LITERAL"
++>delwin()</TT
++> to deallocate memory related
++to it. Depending on the key the user presses, starty or startx is changed and a
++new window is created.</P
++><P
++>In the destroy_win, as you can see, I used wborder instead of box. The reason is
++written in the comments (You missed it. I know. Read the code :-)). wborder
++draws a border around the window with the characters given to it as the 4 corner
++points and the 4 lines. To put it clearly, if you have called wborder as below:
++<PRE
++CLASS="PROGRAMLISTING"
++> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</PRE
++></P
++><P
++>it produces some thing like </P
++><PRE
++CLASS="PROGRAMLISTING"
++> +------------+
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+- +------------+</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="OTHERSTUFF" id="OTHERSTUFF">9.4. The
+-other stuff in the example</a></h3>
+-<p>You can also see in the above examples, that I have used the
+-variables COLS, LINES which are initialized to the screen sizes
+-after initscr(). They can be useful in finding screen dimensions
+-and finding the center co-ordinate of the screen as above. The
+-function <var class="LITERAL">getch()</var> as usual gets the key
+-from keyboard and according to the key it does the corresponding
+-work. This type of switch- case is very common in any GUI based
+-programs.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="OTHERBORDERFUNCS" id=
+-"OTHERBORDERFUNCS">9.5. Other Border functions</a></h3>
+-<p>Above program is grossly inefficient in that with each press of
+-a key, a window is destroyed and another is created. So let's write
+-a more efficient program which uses other border related
+-functions.</p>
+-<p>The following program uses <var class="LITERAL">mvhline()</var>
+-and <var class="LITERAL">mvvline()</var> to achieve similar effect.
+-These two functions are simple. They create a horizontal or
+-vertical line of the specified length at the specified
+-position.</p>
+-<div class="EXAMPLE"><a name="BOTBO" id="BOTBO"></a>
+-<p><b>Example 8. More border functions</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++ +------------+</PRE
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="OTHERSTUFF"
++>9.4. The other stuff in the example</A
++></H3
++><P
++>You can also see in the above examples, that I have used the variables COLS,
++LINES which are initialized to the screen sizes after initscr(). They can be
++useful in finding screen dimensions and finding the center co-ordinate of the
++screen as above. The function <TT
++CLASS="LITERAL"
++>getch()</TT
++> as usual
++gets the key from keyboard and according to the key it does the corresponding
++work. This type of switch- case is very common in any GUI based programs.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="OTHERBORDERFUNCS"
++>9.5. Other Border functions</A
++></H3
++><P
++>Above program is grossly inefficient in that with each press of a key, a window
++is destroyed and another is created. So let's write a more efficient program
++which uses other border related functions.</P
++><P
++>The following program uses <TT
++CLASS="LITERAL"
++>mvhline()</TT
++> and
++<TT
++CLASS="LITERAL"
++>mvvline()</TT
++> to achieve similar effect. These two
++functions are simple. They create a horizontal or vertical line of the specified
++length at the specified position.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BOTBO"
++></A
++><P
++><B
++>Example 8. More border functions</B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ typedef struct _win_border_struct {
+- chtype ls, rs, ts, bs,
+- tl, tr, bl, br;
++ chtype ls, rs, ts, bs,
++ tl, tr, bl, br;
+ }WIN_BORDER;
+
+ typedef struct _WIN_struct {
+
+- int startx, starty;
+- int height, width;
+- WIN_BORDER border;
++ int startx, starty;
++ int height, width;
++ WIN_BORDER border;
+ }WIN;
+
+ void init_win_params(WIN *p_win);
+@@ -1925,319 +3195,380 @@
+ void create_box(WIN *win, bool flag);
+
+ int main(int argc, char *argv[])
+-{ WIN win;
+- int ch;
+-
+- initscr(); /* Start curses mode */
+- start_color(); /* Start the color functionality */
+- cbreak(); /* Line buffering disabled, Pass on
+- * everty thing to me */
+- keypad(stdscr, TRUE); /* I need that nifty F1 */
+- noecho();
+- init_pair(1, COLOR_CYAN, COLOR_BLACK);
++{ WIN win;
++ int ch;
+
+- /* Initialize the window parameters */
+- init_win_params(&amp;win);
+- print_win_params(&amp;win);
+-
+- attron(COLOR_PAIR(1));
+- printw("Press F1 to exit");
+- refresh();
+- attroff(COLOR_PAIR(1));
+-
+- create_box(&amp;win, TRUE);
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case KEY_LEFT:
+- create_box(&amp;win, FALSE);
+- --win.startx;
+- create_box(&amp;win, TRUE);
+- break;
+- case KEY_RIGHT:
+- create_box(&amp;win, FALSE);
+- ++win.startx;
+- create_box(&amp;win, TRUE);
+- break;
+- case KEY_UP:
+- create_box(&amp;win, FALSE);
+- --win.starty;
+- create_box(&amp;win, TRUE);
+- break;
+- case KEY_DOWN:
+- create_box(&amp;win, FALSE);
+- ++win.starty;
+- create_box(&amp;win, TRUE);
+- break;
+- }
+- }
+- endwin(); /* End curses mode */
+- return 0;
++ initscr(); /* Start curses mode */
++ start_color(); /* Start the color functionality */
++ cbreak(); /* Line buffering disabled, Pass on
++ * everty thing to me */
++ keypad(stdscr, TRUE); /* I need that nifty F1 */
++ noecho();
++ init_pair(1, COLOR_CYAN, COLOR_BLACK);
++
++ /* Initialize the window parameters */
++ init_win_params(&#38;win);
++ print_win_params(&#38;win);
++
++ attron(COLOR_PAIR(1));
++ printw("Press F1 to exit");
++ refresh();
++ attroff(COLOR_PAIR(1));
++
++ create_box(&#38;win, TRUE);
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case KEY_LEFT:
++ create_box(&#38;win, FALSE);
++ --win.startx;
++ create_box(&#38;win, TRUE);
++ break;
++ case KEY_RIGHT:
++ create_box(&#38;win, FALSE);
++ ++win.startx;
++ create_box(&#38;win, TRUE);
++ break;
++ case KEY_UP:
++ create_box(&#38;win, FALSE);
++ --win.starty;
++ create_box(&#38;win, TRUE);
++ break;
++ case KEY_DOWN:
++ create_box(&#38;win, FALSE);
++ ++win.starty;
++ create_box(&#38;win, TRUE);
++ break;
++ }
++ }
++ endwin(); /* End curses mode */
++ return 0;
+ }
+ void init_win_params(WIN *p_win)
+ {
+- p_win-&gt;height = 3;
+- p_win-&gt;width = 10;
+- p_win-&gt;starty = (LINES - p_win-&gt;height)/2;
+- p_win-&gt;startx = (COLS - p_win-&gt;width)/2;
+-
+- p_win-&gt;border.ls = '|';
+- p_win-&gt;border.rs = '|';
+- p_win-&gt;border.ts = '-';
+- p_win-&gt;border.bs = '-';
+- p_win-&gt;border.tl = '+';
+- p_win-&gt;border.tr = '+';
+- p_win-&gt;border.bl = '+';
+- p_win-&gt;border.br = '+';
++ p_win-&#62;height = 3;
++ p_win-&#62;width = 10;
++ p_win-&#62;starty = (LINES - p_win-&#62;height)/2;
++ p_win-&#62;startx = (COLS - p_win-&#62;width)/2;
++
++ p_win-&#62;border.ls = '|';
++ p_win-&#62;border.rs = '|';
++ p_win-&#62;border.ts = '-';
++ p_win-&#62;border.bs = '-';
++ p_win-&#62;border.tl = '+';
++ p_win-&#62;border.tr = '+';
++ p_win-&#62;border.bl = '+';
++ p_win-&#62;border.br = '+';
+
+ }
+ void print_win_params(WIN *p_win)
+ {
+ #ifdef _DEBUG
+- mvprintw(25, 0, "%d %d %d %d", p_win-&gt;startx, p_win-&gt;starty,
+- p_win-&gt;width, p_win-&gt;height);
+- refresh();
++ mvprintw(25, 0, "%d %d %d %d", p_win-&#62;startx, p_win-&#62;starty,
++ p_win-&#62;width, p_win-&#62;height);
++ refresh();
+ #endif
+ }
+ void create_box(WIN *p_win, bool flag)
+-{ int i, j;
+- int x, y, w, h;
+-
+- x = p_win-&gt;startx;
+- y = p_win-&gt;starty;
+- w = p_win-&gt;width;
+- h = p_win-&gt;height;
+-
+- if(flag == TRUE)
+- { mvaddch(y, x, p_win-&gt;border.tl);
+- mvaddch(y, x + w, p_win-&gt;border.tr);
+- mvaddch(y + h, x, p_win-&gt;border.bl);
+- mvaddch(y + h, x + w, p_win-&gt;border.br);
+- mvhline(y, x + 1, p_win-&gt;border.ts, w - 1);
+- mvhline(y + h, x + 1, p_win-&gt;border.bs, w - 1);
+- mvvline(y + 1, x, p_win-&gt;border.ls, h - 1);
+- mvvline(y + 1, x + w, p_win-&gt;border.rs, h - 1);
+-
+- }
+- else
+- for(j = y; j &lt;= y + h; ++j)
+- for(i = x; i &lt;= x + w; ++i)
+- mvaddch(j, i, ' ');
+-
+- refresh();
++{ int i, j;
++ int x, y, w, h;
+
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="COLOR" id="COLOR">10. Colors</a></h2>
+-<div class="SECT2">
+-<h3 class="SECT2"><a name="COLORBASICS" id="COLORBASICS">10.1. The
+-basics</a></h3>
+-<p>Life seems dull with no colors. Curses has a nice mechanism to
+-handle colors. Let's get into the thick of the things with a small
+-program.</p>
+-<div class="EXAMPLE"><a name="BSICO" id="BSICO"></a>
+-<p><b>Example 9. A Simple Color example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++ x = p_win-&#62;startx;
++ y = p_win-&#62;starty;
++ w = p_win-&#62;width;
++ h = p_win-&#62;height;
++
++ if(flag == TRUE)
++ { mvaddch(y, x, p_win-&#62;border.tl);
++ mvaddch(y, x + w, p_win-&#62;border.tr);
++ mvaddch(y + h, x, p_win-&#62;border.bl);
++ mvaddch(y + h, x + w, p_win-&#62;border.br);
++ mvhline(y, x + 1, p_win-&#62;border.ts, w - 1);
++ mvhline(y + h, x + 1, p_win-&#62;border.bs, w - 1);
++ mvvline(y + 1, x, p_win-&#62;border.ls, h - 1);
++ mvvline(y + 1, x + w, p_win-&#62;border.rs, h - 1);
++
++ }
++ else
++ for(j = y; j &#60;= y + h; ++j)
++ for(i = x; i &#60;= x + w; ++i)
++ mvaddch(j, i, ' ');
++
++ refresh();
++
++}</SPAN
++></PRE
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="COLOR"
++>10. Colors</A
++></H2
++><DIV
++CLASS="SECT2"
++><H3
++CLASS="SECT2"
++><A
++NAME="COLORBASICS"
++>10.1. The basics</A
++></H3
++><P
++>Life seems dull with no colors. Curses has a nice mechanism to handle colors.
++Let's get into the thick of the things with a small program.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BSICO"
++></A
++><P
++><B
++>Example 9. A Simple Color example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);
+ int main(int argc, char *argv[])
+-{ initscr(); /* Start curses mode */
+- if(has_colors() == FALSE)
+- { endwin();
+- printf("Your terminal does not support color\n");
+- exit(1);
+- }
+- start_color(); /* Start color */
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+-
+- attron(COLOR_PAIR(1));
+- print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ...");
+- attroff(COLOR_PAIR(1));
+- getch();
+- endwin();
++{ initscr(); /* Start curses mode */
++ if(has_colors() == FALSE)
++ { endwin();
++ printf("Your terminal does not support color\n");
++ exit(1);
++ }
++ start_color(); /* Start color */
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++
++ attron(COLOR_PAIR(1));
++ print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ...");
++ attroff(COLOR_PAIR(1));
++ getch();
++ endwin();
+ }
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- mvwprintw(win, y, x, "%s", string);
+- refresh();
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ mvwprintw(win, y, x, "%s", string);
++ refresh();
+ }
+-</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>As you can see, to start using color, you should first call the
+-function <var class="LITERAL">start_color()</var>. After that, you
+-can use color capabilities of your terminals using various
+-functions. To find out whether a terminal has color capabilities or
+-not, you can use <var class="LITERAL">has_colors()</var> function,
+-which returns FALSE if the terminal does not support color.</p>
+-<p>Curses initializes all the colors supported by terminal when
+-start_color() is called. These can be accessed by the define
+-constants like <var class="LITERAL">COLOR_BLACK</var> etc. Now to
+-actually start using colors, you have to define pairs. Colors are
+-always used in pairs. That means you have to use the function
+-<var class="LITERAL">init_pair()</var> to define the foreground and
+-background for the pair number you give. After that that pair
+-number can be used as a normal attribute with <var class=
+-"LITERAL">COLOR_PAIR()</var>function. This may seem to be
+-cumbersome at first. But this elegant solution allows us to manage
+-color pairs very easily. To appreciate it, you have to look into
+-the the source code of "dialog", a utility for displaying dialog
+-boxes from shell scripts. The developers have defined foreground
+-and background combinations for all the colors they might need and
+-initialized at the beginning. This makes it very easy to set
+-attributes just by accessing a pair which we already have defined
+-as a constant.</p>
+-<p>The following colors are defined in <var class=
+-"LITERAL">curses.h</var>. You can use these as parameters for
+-various color functions.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> COLOR_BLACK 0
++</SPAN
++></PRE
++></DIV
++><P
++>As you can see, to start using color, you should first call the function
++<TT
++CLASS="LITERAL"
++> start_color()</TT
++>. After that, you can use color
++capabilities of your terminals using various functions. To find out whether a
++terminal has color capabilities or not, you can use
++<TT
++CLASS="LITERAL"
++>has_colors()</TT
++> function, which returns FALSE if
++the terminal does not support color. </P
++><P
++>Curses initializes all the colors supported by terminal when start_color() is
++called. These can be accessed by the define constants like
++<TT
++CLASS="LITERAL"
++>COLOR_BLACK </TT
++> etc. Now to actually start using
++colors, you have to define pairs. Colors are always used in pairs. That means
++you have to use the function <TT
++CLASS="LITERAL"
++>init_pair() </TT
++> to
++define the foreground and background for the pair number you give. After that
++that pair number can be used as a normal attribute with <TT
++CLASS="LITERAL"
++>COLOR_PAIR()</TT
++>function. This may seem to be cumbersome at first.
++But this elegant solution allows us to manage color pairs very easily. To
++appreciate it, you have to look into the the source code of "dialog", a utility
++for displaying dialog boxes from shell scripts. The developers have defined
++foreground and background combinations for all the colors they might need and
++initialized at the beginning. This makes it very easy to set attributes just by
++accessing a pair which we already have defined as a constant.</P
++><P
++>The following colors are defined in <TT
++CLASS="LITERAL"
++>curses.h</TT
++>.
++You can use these as parameters for various color functions.
++<PRE
++CLASS="PROGRAMLISTING"
++> COLOR_BLACK 0
+ COLOR_RED 1
+ COLOR_GREEN 2
+ COLOR_YELLOW 3
+ COLOR_BLUE 4
+ COLOR_MAGENTA 5
+ COLOR_CYAN 6
+- COLOR_WHITE 7</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="CHANGECOLORDEFS" id=
+-"CHANGECOLORDEFS">10.2. Changing Color Definitions</a></h3>
+-<p>The function <var class="LITERAL">init_color()</var>can be used
+-to change the rgb values for the colors defined by curses
+-initially. Say you wanted to lighten the intensity of red color by
+-a minuscule. Then you can use this function as</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> init_color(COLOR_RED, 700, 0, 0);
++ COLOR_WHITE 7</PRE
++></P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="CHANGECOLORDEFS"
++>10.2. Changing Color Definitions</A
++></H3
++><P
++>The function <TT
++CLASS="LITERAL"
++>init_color()</TT
++>can be used to change
++the rgb values for the colors defined by curses initially. Say you wanted to
++lighten the intensity of red color by a minuscule. Then you can use this
++function as</P
++><PRE
++CLASS="PROGRAMLISTING"
++> init_color(COLOR_RED, 700, 0, 0);
+ /* param 1 : color name
+- * param 2, 3, 4 : rgb content min = 0, max = 1000 */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>If your terminal cannot change the color definitions, the
+-function returns ERR. The function <var class=
+-"LITERAL">can_change_color()</var> can be used to find out whether
+-the terminal has the capability of changing color content or not.
+-The rgb content is scaled from 0 to 1000. Initially RED color is
+-defined with content 1000(r), 0(g), 0(b).</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="COLORCONTENT" id="COLORCONTENT">10.3.
+-Color Content</a></h3>
+-<p>The functions <var class="LITERAL">color_content()</var> and
+-<var class="LITERAL">pair_content()</var> can be used to find the
+-color content and foreground, background combination for the
+-pair.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="KEYS" id="KEYS">11. Interfacing with the
+-key board</a></h2>
+-<div class="SECT2">
+-<h3 class="SECT2"><a name="KEYSBASICS" id="KEYSBASICS">11.1. The
+-Basics</a></h3>
+-<p>No GUI is complete without a strong user interface and to
+-interact with the user, a curses program should be sensitive to key
+-presses or the mouse actions done by the user. Let's deal with the
+-keys first.</p>
+-<p>As you have seen in almost all of the above examples, it's very
+-easy to get key input from the user. A simple way of getting key
+-presses is to use <var class="LITERAL">getch()</var> function. The
+-cbreak mode should be enabled to read keys when you are interested
+-in reading individual key hits rather than complete lines of text
+-(which usually end with a carriage return). keypad should be
+-enabled to get the Functions keys, arrow keys etc. See the
+-initialization section for details.</p>
+-<p><var class="LITERAL">getch()</var> returns an integer
+-corresponding to the key pressed. If it is a normal character, the
+-integer value will be equivalent to the character. Otherwise it
+-returns a number which can be matched with the constants defined in
+-<var class="LITERAL">curses.h</var>. For example if the user
+-presses F1, the integer returned is 265. This can be checked using
+-the macro KEY_F() defined in curses.h. This makes reading keys
+-portable and easy to manage.</p>
+-<p>For example, if you call getch() like this</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> int ch;
+-
+- ch = getch();</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>getch() will wait for the user to press a key, (unless you
+-specified a timeout) and when user presses a key, the corresponding
+-integer is returned. Then you can check the value returned with the
+-constants defined in curses.h to match against the keys you
+-want.</p>
+-<p>The following code piece will do that job.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> if(ch == KEY_LEFT)
+- printw("Left arrow is pressed\n");</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Let's write a small program which creates a menu which can be
+-navigated by up and down arrows.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="SIMPLEKEYEX" id="SIMPLEKEYEX">11.2. A
+-Simple Key Usage example</a></h3>
+-<div class="EXAMPLE"><a name="BSIKE" id="BSIKE"></a>
+-<p><b>Example 10. A Simple Key Usage example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;stdio.h&gt;
+-#include &lt;ncurses.h&gt;
++ * param 2, 3, 4 : rgb content min = 0, max = 1000 */</PRE
++><P
++>If your terminal cannot change the color definitions, the function returns ERR.
++The function <TT
++CLASS="LITERAL"
++>can_change_color()</TT
++> can be used to
++find out whether the terminal has the capability of changing color content or
++not. The rgb content is scaled from 0 to 1000. Initially RED color is defined
++with content 1000(r), 0(g), 0(b). </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="COLORCONTENT"
++>10.3. Color Content</A
++></H3
++><P
++>The functions <TT
++CLASS="LITERAL"
++>color_content()</TT
++> and
++<TT
++CLASS="LITERAL"
++>pair_content()</TT
++> can be used to find the color
++content and foreground, background combination for the pair. </P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="KEYS"
++>11. Interfacing with the key board</A
++></H2
++><DIV
++CLASS="SECT2"
++><H3
++CLASS="SECT2"
++><A
++NAME="KEYSBASICS"
++>11.1. The Basics</A
++></H3
++><P
++>No GUI is complete without a strong user interface and to interact with the
++user, a curses program should be sensitive to key presses or the mouse actions
++done by the user. Let's deal with the keys first.</P
++><P
++>As you have seen in almost all of the above examples, it's very easy to get key
++input from the user. A simple way of getting key presses is to use
++<TT
++CLASS="LITERAL"
++>getch()</TT
++> function. The cbreak mode should be
++enabled to read keys when you are interested in reading individual key hits
++rather than complete lines of text (which usually end with a carriage return).
++keypad should be enabled to get the Functions keys, arrow keys etc. See the
++initialization section for details.</P
++><P
++><TT
++CLASS="LITERAL"
++>getch()</TT
++> returns an integer corresponding to the
++key pressed. If it is a normal character, the integer value will be equivalent
++to the character. Otherwise it returns a number which can be matched with the
++constants defined in <TT
++CLASS="LITERAL"
++>curses.h</TT
++>. For example if
++the user presses F1, the integer returned is 265. This can be checked using the
++macro KEY_F() defined in curses.h. This makes reading keys portable and easy to
++manage.</P
++><P
++>For example, if you call getch() like this</P
++><PRE
++CLASS="PROGRAMLISTING"
++> int ch;
++
++ ch = getch();</PRE
++><P
++>getch() will wait for the user to press a key, (unless you specified a timeout)
++and when user presses a key, the corresponding integer is returned. Then you can
++check the value returned with the constants defined in curses.h to match against
++the keys you want.</P
++><P
++>The following code piece will do that job.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> if(ch == KEY_LEFT)
++ printw("Left arrow is pressed\n");</PRE
++><P
++>Let's write a small program which creates a menu which can be navigated by up
++and down arrows.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="SIMPLEKEYEX"
++>11.2. A Simple Key Usage example</A
++></H3
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BSIKE"
++></A
++><P
++><B
++>Example 10. A Simple Key Usage example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;stdio.h&#62;
++#include &#60;ncurses.h&#62;
+
+ #define WIDTH 30
+ #define HEIGHT 10
+@@ -2246,127 +3577,132 @@
+ int starty = 0;
+
+ char *choices[] = {
+- "Choice 1",
+- "Choice 2",
+- "Choice 3",
+- "Choice 4",
+- "Exit",
+- };
++ "Choice 1",
++ "Choice 2",
++ "Choice 3",
++ "Choice 4",
++ "Exit",
++ };
+ int n_choices = sizeof(choices) / sizeof(char *);
+ void print_menu(WINDOW *menu_win, int highlight);
+
+ int main()
+-{ WINDOW *menu_win;
+- int highlight = 1;
+- int choice = 0;
+- int c;
+-
+- initscr();
+- clear();
+- noecho();
+- cbreak(); /* Line buffering disabled. pass on everything */
+- startx = (80 - WIDTH) / 2;
+- starty = (24 - HEIGHT) / 2;
+-
+- menu_win = newwin(HEIGHT, WIDTH, starty, startx);
+- keypad(menu_win, TRUE);
+- mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
+- refresh();
+- print_menu(menu_win, highlight);
+- while(1)
+- { c = wgetch(menu_win);
+- switch(c)
+- { case KEY_UP:
+- if(highlight == 1)
+- highlight = n_choices;
+- else
+- --highlight;
+- break;
+- case KEY_DOWN:
+- if(highlight == n_choices)
+- highlight = 1;
+- else
+- ++highlight;
+- break;
+- case 10:
+- choice = highlight;
+- break;
+- default:
+- mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
+- refresh();
+- break;
+- }
+- print_menu(menu_win, highlight);
+- if(choice != 0) /* User did a choice come out of the infinite loop */
+- break;
+- }
+- mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]);
+- clrtoeol();
+- refresh();
+- endwin();
+- return 0;
++{ WINDOW *menu_win;
++ int highlight = 1;
++ int choice = 0;
++ int c;
++
++ initscr();
++ clear();
++ noecho();
++ cbreak(); /* Line buffering disabled. pass on everything */
++ startx = (80 - WIDTH) / 2;
++ starty = (24 - HEIGHT) / 2;
++
++ menu_win = newwin(HEIGHT, WIDTH, starty, startx);
++ keypad(menu_win, TRUE);
++ mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
++ refresh();
++ print_menu(menu_win, highlight);
++ while(1)
++ { c = wgetch(menu_win);
++ switch(c)
++ { case KEY_UP:
++ if(highlight == 1)
++ highlight = n_choices;
++ else
++ --highlight;
++ break;
++ case KEY_DOWN:
++ if(highlight == n_choices)
++ highlight = 1;
++ else
++ ++highlight;
++ break;
++ case 10:
++ choice = highlight;
++ break;
++ default:
++ mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
++ refresh();
++ break;
++ }
++ print_menu(menu_win, highlight);
++ if(choice != 0) /* User did a choice come out of the infinite loop */
++ break;
++ }
++ mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]);
++ clrtoeol();
++ refresh();
++ endwin();
++ return 0;
+ }
+
+
+ void print_menu(WINDOW *menu_win, int highlight)
+ {
+- int x, y, i;
++ int x, y, i;
+
+- x = 2;
+- y = 2;
+- box(menu_win, 0, 0);
+- for(i = 0; i &lt; n_choices; ++i)
+- { if(highlight == i + 1) /* High light the present choice */
+- { wattron(menu_win, A_REVERSE);
+- mvwprintw(menu_win, y, x, "%s", choices[i]);
+- wattroff(menu_win, A_REVERSE);
+- }
+- else
+- mvwprintw(menu_win, y, x, "%s", choices[i]);
+- ++y;
+- }
+- wrefresh(menu_win);
++ x = 2;
++ y = 2;
++ box(menu_win, 0, 0);
++ for(i = 0; i &#60; n_choices; ++i)
++ { if(highlight == i + 1) /* High light the present choice */
++ { wattron(menu_win, A_REVERSE);
++ mvwprintw(menu_win, y, x, "%s", choices[i]);
++ wattroff(menu_win, A_REVERSE);
++ }
++ else
++ mvwprintw(menu_win, y, x, "%s", choices[i]);
++ ++y;
++ }
++ wrefresh(menu_win);
+ }
+-</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="MOUSE" id="MOUSE">12. Interfacing with
+-the mouse</a></h2>
+-<p>Now that you have seen how to get keys, lets do the same thing
+-from mouse. Usually each UI allows the user to interact with both
+-keyboard and mouse.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MOUSEBASICS" id="MOUSEBASICS">12.1. The
+-Basics</a></h3>
+-<p>Before you do any thing else, the events you want to receive
+-have to be enabled with <var class="LITERAL">mousemask()</var>.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> mousemask( mmask_t newmask, /* The events you want to listen to */
+- mmask_t *oldmask) /* The old events mask */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The first parameter to above function is a bit mask of events
+-you would like to listen. By default, all the events are turned
+-off. The bit mask <var class="LITERAL">ALL_MOUSE_EVENTS</var> can
+-be used to get all the events.</p>
+-<p>The following are all the event masks:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> Name Description
++</SPAN
++></PRE
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="MOUSE"
++>12. Interfacing with the mouse</A
++></H2
++><P
++>Now that you have seen how to get keys, lets do the same thing from mouse.
++Usually each UI allows the user to interact with both keyboard and mouse. </P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MOUSEBASICS"
++>12.1. The Basics</A
++></H3
++><P
++>Before you do any thing else, the events you want to receive have to be enabled
++with <TT
++CLASS="LITERAL"
++>mousemask()</TT
++>.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> mousemask( mmask_t newmask, /* The events you want to listen to */
++ mmask_t *oldmask) /* The old events mask */</PRE
++><P
++>The first parameter to above function is a bit mask of events you would like to
++listen. By default, all the events are turned off. The bit mask <TT
++CLASS="LITERAL"
++> ALL_MOUSE_EVENTS</TT
++> can be used to get all the events.</P
++><P
++>The following are all the event masks:</P
++><PRE
++CLASS="PROGRAMLISTING"
++> Name Description
+ ---------------------------------------------------------------------
+ BUTTON1_PRESSED mouse button 1 down
+ BUTTON1_RELEASED mouse button 1 up
+@@ -2392,79 +3728,85 @@
+ BUTTON_CTRL control was down during button state change
+ BUTTON_ALT alt was down during button state change
+ ALL_MOUSE_EVENTS report all button state changes
+- REPORT_MOUSE_POSITION report mouse movement</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="GETTINGEVENTS" id="GETTINGEVENTS">12.2.
+-Getting the events</a></h3>
+-<p>Once a class of mouse events have been enabled, getch() class of
+-functions return KEY_MOUSE every time some mouse event happens.
+-Then the mouse event can be retrieved with <var class=
+-"LITERAL">getmouse()</var>.</p>
+-<p>The code approximately looks like this:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> MEVENT event;
++ REPORT_MOUSE_POSITION report mouse movement</PRE
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="GETTINGEVENTS"
++>12.2. Getting the events</A
++></H3
++><P
++>Once a class of mouse events have been enabled, getch() class of functions
++return KEY_MOUSE every time some mouse event happens. Then the mouse event can
++be retrieved with <TT
++CLASS="LITERAL"
++>getmouse()</TT
++>.</P
++><P
++>The code approximately looks like this:</P
++><PRE
++CLASS="PROGRAMLISTING"
++> MEVENT event;
+
+ ch = getch();
+ if(ch == KEY_MOUSE)
+ if(getmouse(&amp;event) == OK)
+ . /* Do some thing with the event */
+ .
+- .</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>getmouse() returns the event into the pointer given to it. It's
+-a structure which contains</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> typedef struct
++ .</PRE
++><P
++>
++getmouse() returns the event into the pointer given to it. It's a structure
++which contains</P
++><PRE
++CLASS="PROGRAMLISTING"
++> typedef struct
+ {
+ short id; /* ID to distinguish multiple devices */
+ int x, y, z; /* event coordinates */
+ mmask_t bstate; /* button state bits */
+- } </font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The <var class="LITERAL">bstate</var> is the main variable we
+-are interested in. It tells the button state of the mouse.</p>
+-<p>Then with a code snippet like the following, we can find out
+-what happened.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> if(event.bstate &amp; BUTTON1_PRESSED)
+- printw("Left Button Pressed");</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MOUSETOGETHER" id="MOUSETOGETHER">12.3.
+-Putting it all Together</a></h3>
+-<p>That's pretty much interfacing with mouse. Let's create the same
+-menu and enable mouse interaction. To make things simpler, key
+-handling is removed.</p>
+-<div class="EXAMPLE"><a name="BMOME" id="BMOME"></a>
+-<p><b>Example 11. Access the menu with mouse !!!</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++ } </PRE
++><P
++>The <TT
++CLASS="LITERAL"
++>bstate</TT
++> is the main variable we are
++interested in. It tells the button state of the mouse.</P
++><P
++>Then with a code snippet like the following, we can find out what happened.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> if(event.bstate &amp; BUTTON1_PRESSED)
++ printw("Left Button Pressed");</PRE
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MOUSETOGETHER"
++>12.3. Putting it all Together</A
++></H3
++><P
++>That's pretty much interfacing with mouse. Let's create the same menu and enable
++mouse interaction. To make things simpler, key handling is removed.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BMOME"
++></A
++><P
++><B
++>Example 11. Access the menu with mouse !!! </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ #define WIDTH 30
+ #define HEIGHT 10
+@@ -2472,12 +3814,12 @@
+ int startx = 0;
+ int starty = 0;
+
+-char *choices[] = { "Choice 1",
+- "Choice 2",
+- "Choice 3",
+- "Choice 4",
+- "Exit",
+- };
++char *choices[] = { "Choice 1",
++ "Choice 2",
++ "Choice 3",
++ "Choice 4",
++ "Exit",
++ };
+
+ int n_choices = sizeof(choices) / sizeof(char *);
+
+@@ -2485,270 +3827,338 @@
+ void report_choice(int mouse_x, int mouse_y, int *p_choice);
+
+ int main()
+-{ int c, choice = 0;
+- WINDOW *menu_win;
+- MEVENT event;
+-
+- /* Initialize curses */
+- initscr();
+- clear();
+- noecho();
+- cbreak(); //Line buffering disabled. pass on everything
+-
+- /* Try to put the window in the middle of screen */
+- startx = (80 - WIDTH) / 2;
+- starty = (24 - HEIGHT) / 2;
+-
+- attron(A_REVERSE);
+- mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)");
+- refresh();
+- attroff(A_REVERSE);
+-
+- /* Print the menu for the first time */
+- menu_win = newwin(HEIGHT, WIDTH, starty, startx);
+- print_menu(menu_win, 1);
+- /* Get all the mouse events */
+- mousemask(ALL_MOUSE_EVENTS, NULL);
+-
+- while(1)
+- { c = wgetch(menu_win);
+- switch(c)
+- { case KEY_MOUSE:
+- if(getmouse(&amp;event) == OK)
+- { /* When the user clicks left mouse button */
+- if(event.bstate &amp; BUTTON1_PRESSED)
+- { report_choice(event.x + 1, event.y + 1, &amp;choice);
+- if(choice == -1) //Exit chosen
+- goto end;
+- mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]);
+- refresh();
+- }
+- }
+- print_menu(menu_win, choice);
+- break;
+- }
+- }
++{ int c, choice = 0;
++ WINDOW *menu_win;
++ MEVENT event;
++
++ /* Initialize curses */
++ initscr();
++ clear();
++ noecho();
++ cbreak(); //Line buffering disabled. pass on everything
++
++ /* Try to put the window in the middle of screen */
++ startx = (80 - WIDTH) / 2;
++ starty = (24 - HEIGHT) / 2;
++
++ attron(A_REVERSE);
++ mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)");
++ refresh();
++ attroff(A_REVERSE);
++
++ /* Print the menu for the first time */
++ menu_win = newwin(HEIGHT, WIDTH, starty, startx);
++ print_menu(menu_win, 1);
++ /* Get all the mouse events */
++ mousemask(ALL_MOUSE_EVENTS, NULL);
++
++ while(1)
++ { c = wgetch(menu_win);
++ switch(c)
++ { case KEY_MOUSE:
++ if(getmouse(&#38;event) == OK)
++ { /* When the user clicks left mouse button */
++ if(event.bstate &#38; BUTTON1_PRESSED)
++ { report_choice(event.x + 1, event.y + 1, &#38;choice);
++ if(choice == -1) //Exit chosen
++ goto end;
++ mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]);
++ refresh();
++ }
++ }
++ print_menu(menu_win, choice);
++ break;
++ }
++ }
+ end:
+- endwin();
+- return 0;
++ endwin();
++ return 0;
+ }
+
+
+ void print_menu(WINDOW *menu_win, int highlight)
+ {
+- int x, y, i;
++ int x, y, i;
+
+- x = 2;
+- y = 2;
+- box(menu_win, 0, 0);
+- for(i = 0; i &lt; n_choices; ++i)
+- { if(highlight == i + 1)
+- { wattron(menu_win, A_REVERSE);
+- mvwprintw(menu_win, y, x, "%s", choices[i]);
+- wattroff(menu_win, A_REVERSE);
+- }
+- else
+- mvwprintw(menu_win, y, x, "%s", choices[i]);
+- ++y;
+- }
+- wrefresh(menu_win);
++ x = 2;
++ y = 2;
++ box(menu_win, 0, 0);
++ for(i = 0; i &#60; n_choices; ++i)
++ { if(highlight == i + 1)
++ { wattron(menu_win, A_REVERSE);
++ mvwprintw(menu_win, y, x, "%s", choices[i]);
++ wattroff(menu_win, A_REVERSE);
++ }
++ else
++ mvwprintw(menu_win, y, x, "%s", choices[i]);
++ ++y;
++ }
++ wrefresh(menu_win);
+ }
+
+ /* Report the choice according to mouse position */
+ void report_choice(int mouse_x, int mouse_y, int *p_choice)
+-{ int i,j, choice;
++{ int i,j, choice;
+
+- i = startx + 2;
+- j = starty + 3;
+-
+- for(choice = 0; choice &lt; n_choices; ++choice)
+- if(mouse_y == j + choice &amp;&amp; mouse_x &gt;= i &amp;&amp; mouse_x &lt;= i + strlen(choices[choice]))
+- { if(choice == n_choices - 1)
+- *p_choice = -1;
+- else
+- *p_choice = choice + 1;
+- break;
+- }
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MISCMOUSEFUNCS" id=
+-"MISCMOUSEFUNCS">12.4. Miscellaneous Functions</a></h3>
+-<p>The functions mouse_trafo() and wmouse_trafo() can be used to
+-convert to mouse co-ordinates to screen relative co-ordinates. See
+-curs_mouse(3X) man page for details.</p>
+-<p>The mouseinterval function sets the maximum time (in thousands
+-of a second) that can elapse between press and release events in
+-order for them to be recognized as a click. This function returns
+-the previous interval value. The default is one fifth of a
+-second.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="SCREEN" id="SCREEN">13. Screen
+-Manipulation</a></h2>
+-<p>In this section, we will look into some functions, which allow
+-us to manage the screen efficiently and to write some fancy
+-programs. This is especially important in writing games.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="GETYX" id="GETYX">13.1. getyx()
+-functions</a></h3>
+-<p>The function <var class="LITERAL">getyx()</var> can be used to
+-find out the present cursor co-ordinates. It will fill the values
+-of x and y co-ordinates in the arguments given to it. Since getyx()
+-is a macro you don't have to pass the address of the variables. It
+-can be called as</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> getyx(win, y, x);
++ i = startx + 2;
++ j = starty + 3;
++
++ for(choice = 0; choice &#60; n_choices; ++choice)
++ if(mouse_y == j + choice &#38;&#38; mouse_x &#62;= i &#38;&#38; mouse_x &#60;= i + strlen(choices[choice]))
++ { if(choice == n_choices - 1)
++ *p_choice = -1;
++ else
++ *p_choice = choice + 1;
++ break;
++ }
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MISCMOUSEFUNCS"
++>12.4. Miscellaneous Functions</A
++></H3
++><P
++>The functions mouse_trafo() and wmouse_trafo() can be used to convert to mouse
++co-ordinates to screen relative co-ordinates. See curs_mouse(3X) man page for details.</P
++><P
++>The mouseinterval function sets the maximum time (in thousands of a
++second) that can elapse between press and release events in order for
++them to be recognized as a click. This function returns the previous
++interval value. The default is one fifth of a second.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="SCREEN"
++>13. Screen Manipulation</A
++></H2
++><P
++>In this section, we will look into some functions, which allow us to manage the
++screen efficiently and to write some fancy programs. This is especially
++important in writing games. </P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="GETYX"
++>13.1. getyx() functions</A
++></H3
++><P
++>&#13;The function <TT
++CLASS="LITERAL"
++>getyx()</TT
++> can be used to find out
++the present cursor co-ordinates. It will fill the values of x and y co-ordinates
++in the arguments given to it. Since getyx() is a macro you don't have to pass
++the address of the variables. It can be called as</P
++><PRE
++CLASS="PROGRAMLISTING"
++> getyx(win, y, x);
+ /* win: window pointer
+ * y, x: y, x co-ordinates will be put into this variables
+- */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The function getparyx() gets the beginning co-ordinates of the
+-sub window relative to the main window. This is some times useful
+-to update a sub window. When designing fancy stuff like writing
+-multiple menus, it becomes difficult to store the menu positions,
+-their first option co-ordinates etc. A simple solution to this
+-problem, is to create menus in sub windows and later find the
+-starting co-ordinates of the menus by using getparyx().</p>
+-<p>The functions getbegyx() and getmaxyx() store current window's
+-beginning and maximum co-ordinates. These functions are useful in
+-the same way as above in managing the windows and sub windows
+-effectively.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="SCREENDUMP" id="SCREENDUMP">13.2. Screen
+-Dumping</a></h3>
+-<p>While writing games, some times it becomes necessary to store
+-the state of the screen and restore it back to the same state. The
+-function scr_dump() can be used to dump the screen contents to a
+-file given as an argument. Later it can be restored by scr_restore
+-function. These two simple functions can be used effectively to
+-maintain a fast moving game with changing scenarios.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="WINDOWDUMP" id="WINDOWDUMP">13.3. Window
+-Dumping</a></h3>
+-<p>To store and restore windows, the functions <var class=
+-"LITERAL">putwin()</var> and <var class="LITERAL">getwin()</var>
+-can be used. <var class="LITERAL">putwin()</var> puts the present
+-window state into a file, which can be later restored by
+-<var class="LITERAL">getwin()</var>.</p>
+-<p>The function <var class="LITERAL">copywin()</var> can be used to
+-copy a window completely onto another window. It takes the source
+-and destination windows as parameters and according to the
+-rectangle specified, it copies the rectangular region from source
+-to destination window. It's last parameter specifies whether to
+-overwrite or just overlay the contents on to the destination
+-window. If this argument is true, then the copying is
+-non-destructive.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="MISC" id="MISC">14. Miscellaneous
+-features</a></h2>
+-<p>Now you know enough features to write a good curses program,
+-with all bells and whistles. There are some miscellaneous functions
+-which are useful in various cases. Let's go headlong into some of
+-those.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="CURSSET" id="CURSSET">14.1.
+-curs_set()</a></h3>
+-<p>This function can be used to make the cursor invisible. The
+-parameter to this function should be</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> 0 : invisible or
++ */</PRE
++><P
++>The function getparyx() gets the beginning co-ordinates of the sub window
++relative to the main window. This is some times useful to update a sub window.
++When designing fancy stuff like writing multiple menus, it becomes difficult to
++store the menu positions, their first option co-ordinates etc. A simple solution
++to this problem, is to create menus in sub windows and later find the starting
++co-ordinates of the menus by using getparyx().</P
++><P
++>The functions getbegyx() and getmaxyx() store current window's beginning and
++maximum co-ordinates. These functions are useful in the same way as above in
++managing the windows and sub windows effectively.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="SCREENDUMP"
++>13.2. Screen Dumping</A
++></H3
++><P
++>While writing games, some times it becomes necessary to store the state of the
++screen and restore it back to the same state. The function scr_dump() can be
++used to dump the screen contents to a file given as an argument. Later it can be
++restored by scr_restore function. These two simple functions can be used
++effectively to maintain a fast moving game with changing scenarios. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="WINDOWDUMP"
++>13.3. Window Dumping</A
++></H3
++><P
++>To store and restore windows, the functions
++<TT
++CLASS="LITERAL"
++>putwin()</TT
++> and <TT
++CLASS="LITERAL"
++>getwin()</TT
++> can be used. <TT
++CLASS="LITERAL"
++>putwin()</TT
++> puts
++the present window state into a file, which can be later restored by
++<TT
++CLASS="LITERAL"
++>getwin()</TT
++>.</P
++><P
++>
++The function <TT
++CLASS="LITERAL"
++>copywin()</TT
++> can be used to copy a
++window completely onto another window. It takes the source and destination
++windows as parameters and according to the rectangle specified, it copies the
++rectangular region from source to destination window. It's last parameter
++specifies whether to overwrite or just overlay the contents on to the
++destination window. If this argument is true, then the copying is
++non-destructive.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="MISC"
++>14. Miscellaneous features</A
++></H2
++><P
++>Now you know enough features to write a good curses program, with all bells and
++whistles. There are some miscellaneous functions which are useful in various
++cases. Let's go headlong into some of those.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="CURSSET"
++>14.1. curs_set()</A
++></H3
++><P
++>This function can be used to make the cursor invisible. The parameter to this
++function should be </P
++><PRE
++CLASS="PROGRAMLISTING"
++> 0 : invisible or
+ 1 : normal or
+- 2 : very visible.</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="TEMPLEAVE" id="TEMPLEAVE">14.2.
+-Temporarily Leaving Curses mode</a></h3>
+-<p>Some times you may want to get back to cooked mode (normal line
+-buffering mode) temporarily. In such a case you will first need to
+-save the tty modes with a call to <var class=
+-"LITERAL">def_prog_mode()</var> and then call <var class=
+-"LITERAL">endwin()</var> to end the curses mode. This will leave
+-you in the original tty mode. To get back to curses once you are
+-done, call <var class="LITERAL">reset_prog_mode()</var> . This
+-function returns the tty to the state stored by <var class=
+-"LITERAL">def_prog_mode()</var>. Then do refresh(), and you are
+-back to the curses mode. Here is an example showing the sequence of
+-things to be done.</p>
+-<div class="EXAMPLE"><a name="BTELE" id="BTELE"></a>
+-<p><b>Example 12. Temporarily Leaving Curses Mode</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++ 2 : very visible.</PRE
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="TEMPLEAVE"
++>14.2. Temporarily Leaving Curses mode</A
++></H3
++><P
++>Some times you may want to get back to cooked mode (normal line buffering mode)
++temporarily. In such a case you will first need to save the tty modes with a
++call to <TT
++CLASS="LITERAL"
++>def_prog_mode()</TT
++> and then call
++<TT
++CLASS="LITERAL"
++>endwin()</TT
++> to end the curses mode. This will
++leave you in the original tty mode. To get back to curses once you are done,
++call <TT
++CLASS="LITERAL"
++>reset_prog_mode() </TT
++>. This function returns
++the tty to the state stored by <TT
++CLASS="LITERAL"
++>def_prog_mode()</TT
++>. Then do refresh(), and you are back to the curses mode. Here
++is an example showing the sequence of things to be done.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BTELE"
++></A
++><P
++><B
++>Example 12. Temporarily Leaving Curses Mode </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ int main()
+-{
+- initscr(); /* Start curses mode */
+- printw("Hello World !!!\n"); /* Print Hello World */
+- refresh(); /* Print it on to the real screen */
+- def_prog_mode(); /* Save the tty modes */
+- endwin(); /* End curses mode temporarily */
+- system("/bin/sh"); /* Do whatever you like in cooked mode */
+- reset_prog_mode(); /* Return to the previous tty mode*/
+- /* stored by def_prog_mode() */
+- refresh(); /* Do refresh() to restore the */
+- /* Screen contents */
+- printw("Another String\n"); /* Back to curses use the full */
+- refresh(); /* capabilities of curses */
+- endwin(); /* End curses mode */
+-
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="ACSVARS" id="ACSVARS">14.3. ACS_
+-variables</a></h3>
+-<p>If you have ever programmed in DOS, you know about those nifty
+-characters in extended character set. They are printable only on
+-some terminals. NCURSES functions like <var class=
+-"LITERAL">box()</var> use these characters. All these variables
+-start with ACS meaning alternative character set. You might have
+-noticed me using these characters in some of the programs above.
+-Here's an example showing all the characters.</p>
+-<div class="EXAMPLE"><a name="BACSVARS" id="BACSVARS"></a>
+-<p><b>Example 13. ACS Variables Example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;ncurses.h&gt;
++{
++ initscr(); /* Start curses mode */
++ printw("Hello World !!!\n"); /* Print Hello World */
++ refresh(); /* Print it on to the real screen */
++ def_prog_mode(); /* Save the tty modes */
++ endwin(); /* End curses mode temporarily */
++ system("/bin/sh"); /* Do whatever you like in cooked mode */
++ reset_prog_mode(); /* Return to the previous tty mode*/
++ /* stored by def_prog_mode() */
++ refresh(); /* Do refresh() to restore the */
++ /* Screen contents */
++ printw("Another String\n"); /* Back to curses use the full */
++ refresh(); /* capabilities of curses */
++ endwin(); /* End curses mode */
++
++ return 0;
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="ACSVARS"
++>14.3. ACS_ variables</A
++></H3
++><P
++>If you have ever programmed in DOS, you know about those nifty characters in
++extended character set. They are printable only on some terminals. NCURSES
++functions like <TT
++CLASS="LITERAL"
++>box()</TT
++> use these characters. All
++these variables start with ACS meaning alternative character set. You might have
++noticed me using these characters in some of the programs above. Here's an example
++showing all the characters.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="BACSVARS"
++></A
++><P
++><B
++>Example 13. ACS Variables Example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;ncurses.h&#62;
+
+ int main()
+ {
+@@ -2790,181 +4200,218 @@
+ getch();
+ endwin();
+
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="OTHERLIB" id="OTHERLIB">15. Other
+-libraries</a></h2>
+-<p>Apart from the curses library, there are few text mode
+-libraries, which provide more functionality and a lot of features.
+-The following sections explain three standard libraries which are
+-usually distributed along with curses.</p>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="PANELS" id="PANELS">16. Panel
+-Library</a></h2>
+-<p>Now that you are proficient in curses, you wanted to do some
+-thing big. You created a lot of overlapping windows to give a
+-professional windows-type look. Unfortunately, it soon becomes
+-difficult to manage these. The multiple refreshes, updates plunge
+-you into a nightmare. The overlapping windows create blotches,
+-whenever you forget to refresh the windows in the proper order.</p>
+-<p>Don't despair. There's an elegant solution provided in panels
+-library. In the words of developers of ncurses</p>
+-<p><em>When your interface design is such that windows may dive
+-deeper into the visibility stack or pop to the top at runtime, the
+-resulting book-keeping can be tedious and difficult to get right.
+-Hence the panels library.</em></p>
+-<p>If you have lot of overlapping windows, then panels library is
+-the way to go. It obviates the need of doing series of
+-wnoutrefresh(), doupdate() and relieves the burden of doing it
+-correctly(bottom up). The library maintains information about the
+-order of windows, their overlapping and update the screen properly.
+-So why wait? Let's take a close peek into panels.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PANELBASICS" id="PANELBASICS">16.1. The
+-Basics</a></h3>
+-<p>Panel object is a window that is implicitly treated as part of a
+-deck including all other panel objects. The deck is treated as a
+-stack with the top panel being completely visible and the other
+-panels may or may not be obscured according to their positions. So
+-the basic idea is to create a stack of overlapping panels and use
+-panels library to display them correctly. There is a function
+-similar to refresh() which, when called , displays panels in the
+-correct order. Functions are provided to hide or show panels, move
+-panels, change its size etc.. The overlapping problem is managed by
+-the panels library during all the calls to these functions.</p>
+-<p>The general flow of a panel program goes like this:</p>
+-<ol type="1">
+-<li>
+-<p>Create the windows (with newwin()) to be attached to the
+-panels.</p>
+-</li>
+-<li>
+-<p>Create panels with the chosen visibility order. Stack them up
+-according to the desired visibility. The function new_panel() is
+-used to created panels.</p>
+-</li>
+-<li>
+-<p>Call update_panels() to write the panels to the virtual screen
+-in correct visibility order. Do a doupdate() to show it on the
+-screen.</p>
+-</li>
+-<li>
+-<p>Mainpulate the panels with show_panel(), hide_panel(),
+-move_panel() etc. Make use of helper functions like panel_hidden()
+-and panel_window(). Make use of user pointer to store custom data
+-for a panel. Use the functions set_panel_userptr() and
+-panel_userptr() to set and get the user pointer for a panel.</p>
+-</li>
+-<li>
+-<p>When you are done with the panel use del_panel() to delete the
+-panel.</p>
+-</li>
+-</ol>
+-<p>Let's make the concepts clear, with some programs. The following
+-is a simple program which creates 3 overlapping panels and shows
+-them on the screen.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="COMPILEPANELS" id="COMPILEPANELS">16.2.
+-Compiling With the Panels Library</a></h3>
+-<p>To use panels library functions, you have to include panel.h and
+-to link the program with panels library the flag -lpanel should be
+-added along with -lncurses in that order.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> #include &lt;panel.h&gt;
++ return 0;
++}</SPAN
++></PRE
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="OTHERLIB"
++>15. Other libraries</A
++></H2
++><P
++>Apart from the curses library, there are few text mode libraries, which provide
++more functionality and a lot of features. The following sections explain three
++standard libraries which are usually distributed along with curses. </P
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="PANELS"
++>16. Panel Library</A
++></H2
++><P
++>Now that you are proficient in curses, you wanted to do some thing big. You
++created a lot of overlapping windows to give a professional windows-type look.
++Unfortunately, it soon becomes difficult to manage these. The multiple
++refreshes, updates plunge you into a nightmare. The overlapping windows create
++blotches, whenever you forget to refresh the windows in the proper order. </P
++><P
++>Don't despair. There's an elegant solution provided in panels library. In the
++words of developers of ncurses </P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>When your interface design is such that windows may dive deeper into the
++visibility stack or pop to the top at runtime, the resulting book-keeping can be
++tedious and difficult to get right. Hence the panels library.</I
++></SPAN
++></P
++><P
++>If you have lot of overlapping windows, then panels library is the way to go. It
++obviates the need of doing series of wnoutrefresh(), doupdate() and relieves the
++burden of doing it correctly(bottom up). The library maintains information about
++the order of windows, their overlapping and update the screen properly. So why
++wait? Let's take a close peek into panels.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PANELBASICS"
++>16.1. The Basics</A
++></H3
++><P
++>Panel object is a window that is implicitly treated as part of a deck including
++all other panel objects. The deck is treated as a stack with the top panel being
++completely visible and the other panels may or may not be obscured according to
++their positions. So the basic idea is to create a stack of overlapping panels
++and use panels library to display them correctly. There is a function similar to
++refresh() which, when called , displays panels in the correct order. Functions
++are provided to hide or show panels, move panels, change its size etc.. The
++overlapping problem is managed by the panels library during all the calls to
++these functions. </P
++><P
++>The general flow of a panel program goes like this:
++
++<P
++></P
++><OL
++TYPE="1"
++><LI
++><P
++>Create the windows (with newwin()) to be attached to the panels.</P
++></LI
++><LI
++><P
++>Create panels with the chosen visibility order. Stack them up according to the
++desired visibility. The function new_panel() is used to created panels.</P
++></LI
++><LI
++><P
++>Call update_panels() to write the panels to the virtual screen in correct
++visibility order. Do a doupdate() to show it on the screen. </P
++></LI
++><LI
++><P
++>Mainpulate the panels with show_panel(), hide_panel(), move_panel() etc. Make
++use of helper functions like panel_hidden() and panel_window(). Make use of user
++pointer to store custom data for a panel. Use the functions set_panel_userptr()
++and panel_userptr() to set and get the user pointer for a panel.</P
++></LI
++><LI
++><P
++>When you are done with the panel use del_panel() to delete the panel.</P
++></LI
++></OL
++></P
++><P
++>Let's make the concepts clear, with some programs. The following is a simple
++program which creates 3 overlapping panels and shows them on the screen. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="COMPILEPANELS"
++>16.2. Compiling With the Panels Library</A
++></H3
++><P
++>To use panels library functions, you have to include panel.h and to link the
++program with panels library the flag -lpanel should be added along with
++-lncurses in that order.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> #include &lt;panel.h&gt;
+ .
+ .
+ .
+
+- compile and link: gcc &lt;program file&gt; -lpanel -lncurses</font>
+-</pre></td>
+-</tr>
+-</table>
+-<div class="EXAMPLE"><a name="PPASI" id="PPASI"></a>
+-<p><b>Example 14. Panel basics</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
++ compile and link: gcc &lt;program file&gt; -lpanel -lncurses</PRE
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="PPASI"
++></A
++><P
++><B
++>Example 14. Panel basics</B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;panel.h&#62;
+
+ int main()
+-{ WINDOW *my_wins[3];
+- PANEL *my_panels[3];
+- int lines = 10, cols = 40, y = 2, x = 4, i;
+-
+- initscr();
+- cbreak();
+- noecho();
+-
+- /* Create windows for the panels */
+- my_wins[0] = newwin(lines, cols, y, x);
+- my_wins[1] = newwin(lines, cols, y + 1, x + 5);
+- my_wins[2] = newwin(lines, cols, y + 2, x + 10);
+-
+- /*
+- * Create borders around the windows so that you can see the effect
+- * of panels
+- */
+- for(i = 0; i &lt; 3; ++i)
+- box(my_wins[i], 0, 0);
+-
+- /* Attach a panel to each window */ /* Order is bottom up */
+- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+-
+- /* Update the stacking order. 2nd panel will be on top */
+- update_panels();
+-
+- /* Show it on the screen */
+- doupdate();
+-
+- getch();
+- endwin();
++{ WINDOW *my_wins[3];
++ PANEL *my_panels[3];
++ int lines = 10, cols = 40, y = 2, x = 4, i;
++
++ initscr();
++ cbreak();
++ noecho();
++
++ /* Create windows for the panels */
++ my_wins[0] = newwin(lines, cols, y, x);
++ my_wins[1] = newwin(lines, cols, y + 1, x + 5);
++ my_wins[2] = newwin(lines, cols, y + 2, x + 10);
++
++ /*
++ * Create borders around the windows so that you can see the effect
++ * of panels
++ */
++ for(i = 0; i &#60; 3; ++i)
++ box(my_wins[i], 0, 0);
++
++ /* Attach a panel to each window */ /* Order is bottom up */
++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
++
++ /* Update the stacking order. 2nd panel will be on top */
++ update_panels();
++
++ /* Show it on the screen */
++ doupdate();
++
++ getch();
++ endwin();
+ }
+-</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>As you can see, above program follows a simple flow as
+-explained. The windows are created with newwin() and then they are
+-attached to panels with new_panel(). As we attach one panel after
+-another, the stack of panels gets updated. To put them on screen
+-update_panels() and doupdate() are called.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PANELBROWSING" id="PANELBROWSING">16.3.
+-Panel Window Browsing</a></h3>
+-<p>A slightly complicated example is given below. This program
+-creates 3 windows which can be cycled through using tab. Have a
+-look at the code.</p>
+-<div class="EXAMPLE"><a name="PPABR" id="PPABR"></a>
+-<p><b>Example 15. Panel Window Browsing Example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
++</SPAN
++></PRE
++></DIV
++><P
++>As you can see, above program follows a simple flow as explained. The windows
++are created with newwin() and then they are attached to panels with new_panel().
++As we attach one panel after another, the stack of panels gets updated. To put
++them on screen update_panels() and doupdate() are called.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PANELBROWSING"
++>16.3. Panel Window Browsing</A
++></H3
++><P
++>A slightly complicated example is given below. This program creates 3
++windows which can be cycled through using tab. Have a look at the code.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="PPABR"
++></A
++><P
++><B
++>Example 15. Panel Window Browsing Example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;panel.h&#62;
+
+ #define NLINES 10
+ #define NCOLS 40
+@@ -2974,172 +4421,191 @@
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+ int main()
+-{ WINDOW *my_wins[3];
+- PANEL *my_panels[3];
+- PANEL *top;
+- int ch;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize all the colors */
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_GREEN, COLOR_BLACK);
+- init_pair(3, COLOR_BLUE, COLOR_BLACK);
+- init_pair(4, COLOR_CYAN, COLOR_BLACK);
+-
+- init_wins(my_wins, 3);
+-
+- /* Attach a panel to each window */ /* Order is bottom up */
+- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+-
+- /* Set up the user pointers to the next panel */
+- set_panel_userptr(my_panels[0], my_panels[1]);
+- set_panel_userptr(my_panels[1], my_panels[2]);
+- set_panel_userptr(my_panels[2], my_panels[0]);
+-
+- /* Update the stacking order. 2nd panel will be on top */
+- update_panels();
+-
+- /* Show it on the screen */
+- attron(COLOR_PAIR(4));
+- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+- attroff(COLOR_PAIR(4));
+- doupdate();
+-
+- top = my_panels[2];
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case 9:
+- top = (PANEL *)panel_userptr(top);
+- top_panel(top);
+- break;
+- }
+- update_panels();
+- doupdate();
+- }
+- endwin();
+- return 0;
++{ WINDOW *my_wins[3];
++ PANEL *my_panels[3];
++ PANEL *top;
++ int ch;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize all the colors */
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_GREEN, COLOR_BLACK);
++ init_pair(3, COLOR_BLUE, COLOR_BLACK);
++ init_pair(4, COLOR_CYAN, COLOR_BLACK);
++
++ init_wins(my_wins, 3);
++
++ /* Attach a panel to each window */ /* Order is bottom up */
++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
++
++ /* Set up the user pointers to the next panel */
++ set_panel_userptr(my_panels[0], my_panels[1]);
++ set_panel_userptr(my_panels[1], my_panels[2]);
++ set_panel_userptr(my_panels[2], my_panels[0]);
++
++ /* Update the stacking order. 2nd panel will be on top */
++ update_panels();
++
++ /* Show it on the screen */
++ attron(COLOR_PAIR(4));
++ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
++ attroff(COLOR_PAIR(4));
++ doupdate();
++
++ top = my_panels[2];
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case 9:
++ top = (PANEL *)panel_userptr(top);
++ top_panel(top);
++ break;
++ }
++ update_panels();
++ doupdate();
++ }
++ endwin();
++ return 0;
+ }
+
+ /* Put all the windows */
+ void init_wins(WINDOW **wins, int n)
+-{ int x, y, i;
+- char label[80];
++{ int x, y, i;
++ char label[80];
+
+- y = 2;
+- x = 10;
+- for(i = 0; i &lt; n; ++i)
+- { wins[i] = newwin(NLINES, NCOLS, y, x);
+- sprintf(label, "Window Number %d", i + 1);
+- win_show(wins[i], label, i + 1);
+- y += 3;
+- x += 7;
+- }
++ y = 2;
++ x = 10;
++ for(i = 0; i &#60; n; ++i)
++ { wins[i] = newwin(NLINES, NCOLS, y, x);
++ sprintf(label, "Window Number %d", i + 1);
++ win_show(wins[i], label, i + 1);
++ y += 3;
++ x += 7;
++ }
+ }
+
+ /* Show the window with a border and a label */
+ void win_show(WINDOW *win, char *label, int label_color)
+-{ int startx, starty, height, width;
++{ int startx, starty, height, width;
+
+- getbegyx(win, starty, startx);
+- getmaxyx(win, height, width);
++ getbegyx(win, starty, startx);
++ getmaxyx(win, height, width);
+
+- box(win, 0, 0);
+- mvwaddch(win, 2, 0, ACS_LTEE);
+- mvwhline(win, 2, 1, ACS_HLINE, width - 2);
+- mvwaddch(win, 2, width - 1, ACS_RTEE);
+-
+- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
++ box(win, 0, 0);
++ mvwaddch(win, 2, 0, ACS_LTEE);
++ mvwhline(win, 2, 1, ACS_HLINE, width - 2);
++ mvwaddch(win, 2, width - 1, ACS_RTEE);
++
++ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+ }
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- wattron(win, color);
+- mvwprintw(win, y, x, "%s", string);
+- wattroff(win, color);
+- refresh();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="USERPTRUSING" id="USERPTRUSING">16.4.
+-Using User Pointers</a></h3>
+-<p>In the above example I used user pointers to find out the next
+-window in the cycle. We can attach custom information to the panel
+-by specifying a user pointer, which can point to any information
+-you want to store. In this case I stored the pointer to the next
+-panel in the cycle. User pointer for a panel can be set with the
+-function <var class="LITERAL">set_panel_userptr()</var>. It can be
+-accessed using the function <var class=
+-"LITERAL">panel_userptr()</var> which will return the user pointer
+-for the panel given as argument. After finding the next panel in
+-the cycle It's brought to the top by the function top_panel(). This
+-function brings the panel given as argument to the top of the panel
+-stack.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PANELMOVERESIZE" id=
+-"PANELMOVERESIZE">16.5. Moving and Resizing Panels</a></h3>
+-<p>The function <var class="LITERAL">move_panel()</var> can be used
+-to move a panel to the desired location. It does not change the
+-position of the panel in the stack. Make sure that you use
+-move_panel() instead mvwin() on the window associated with the
+-panel.</p>
+-<p>Resizing a panel is slightly complex. There is no straight
+-forward function just to resize the window associated with a panel.
+-A solution to resize a panel is to create a new window with the
+-desired sizes, change the window associated with the panel using
+-replace_panel(). Don't forget to delete the old window. The window
+-associated with a panel can be found by using the function
+-panel_window().</p>
+-<p>The following program shows these concepts, in supposedly simple
+-program. You can cycle through the window with &lt;TAB&gt; as
+-usual. To resize or move the active panel press 'r' for resize 'm'
+-for moving. Then use arrow keys to resize or move it to the desired
+-way and press enter to end your resizing or moving. This example
+-makes use of user data to get the required data to do the
+-operations.</p>
+-<div class="EXAMPLE"><a name="PPARE" id="PPARE"></a>
+-<p><b>Example 16. Panel Moving and Resizing example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ wattron(win, color);
++ mvwprintw(win, y, x, "%s", string);
++ wattroff(win, color);
++ refresh();
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="USERPTRUSING"
++>16.4. Using User Pointers</A
++></H3
++><P
++>In the above example I used user pointers to find out the next window in the
++cycle. We can attach custom information to the panel by specifying a user
++pointer, which can point to any information you want to store. In this case I
++stored the pointer to the next panel in the cycle. User pointer for a panel can
++be set with the function <TT
++CLASS="LITERAL"
++> set_panel_userptr()</TT
++>.
++It can be accessed using the function <TT
++CLASS="LITERAL"
++>panel_userptr()</TT
++> which will return the user pointer for the panel given as
++argument. After finding the next panel in the cycle It's brought to the top by
++the function top_panel(). This function brings the panel given as argument to
++the top of the panel stack. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PANELMOVERESIZE"
++>16.5. Moving and Resizing Panels</A
++></H3
++><P
++>The function <TT
++CLASS="LITERAL"
++>move_panel()</TT
++> can be used to move a
++panel to the desired location. It does not change the position of the panel in
++the stack. Make sure that you use move_panel() instead mvwin() on the window
++associated with the panel.</P
++><P
++>Resizing a panel is slightly complex. There is no straight forward function
++just to resize the window associated with a panel. A solution to resize a panel
++is to create a new window with the desired sizes, change the window associated
++with the panel using replace_panel(). Don't forget to delete the old window. The
++window associated with a panel can be found by using the function
++panel_window().</P
++><P
++>The following program shows these concepts, in supposedly simple program. You
++can cycle through the window with &lt;TAB&gt; as usual. To resize or move the
++active panel press 'r' for resize 'm' for moving. Then use arrow keys to resize
++or move it to the desired way and press enter to end your resizing or moving.
++This example makes use of user data to get the required data to do the
++operations. </P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="PPARE"
++></A
++><P
++><B
++>Example 16. Panel Moving and Resizing example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;panel.h&#62;
+
+ typedef struct _PANEL_DATA {
+- int x, y, w, h;
+- char label[80];
+- int label_color;
+- PANEL *next;
++ int x, y, w, h;
++ char label[80];
++ int label_color;
++ PANEL *next;
+ }PANEL_DATA;
+
+ #define NLINES 10
+@@ -3151,275 +4617,289 @@
+ void set_user_ptrs(PANEL **panels, int n);
+
+ int main()
+-{ WINDOW *my_wins[3];
+- PANEL *my_panels[3];
+- PANEL_DATA *top;
+- PANEL *stack_top;
+- WINDOW *temp_win, *old_win;
+- int ch;
+- int newx, newy, neww, newh;
+- int size = FALSE, move = FALSE;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize all the colors */
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_GREEN, COLOR_BLACK);
+- init_pair(3, COLOR_BLUE, COLOR_BLACK);
+- init_pair(4, COLOR_CYAN, COLOR_BLACK);
+-
+- init_wins(my_wins, 3);
+-
+- /* Attach a panel to each window */ /* Order is bottom up */
+- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+-
+- set_user_ptrs(my_panels, 3);
+- /* Update the stacking order. 2nd panel will be on top */
+- update_panels();
+-
+- /* Show it on the screen */
+- attron(COLOR_PAIR(4));
+- mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
+- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+- attroff(COLOR_PAIR(4));
+- doupdate();
+-
+- stack_top = my_panels[2];
+- top = (PANEL_DATA *)panel_userptr(stack_top);
+- newx = top-&gt;x;
+- newy = top-&gt;y;
+- neww = top-&gt;w;
+- newh = top-&gt;h;
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case 9: /* Tab */
+- top = (PANEL_DATA *)panel_userptr(stack_top);
+- top_panel(top-&gt;next);
+- stack_top = top-&gt;next;
+- top = (PANEL_DATA *)panel_userptr(stack_top);
+- newx = top-&gt;x;
+- newy = top-&gt;y;
+- neww = top-&gt;w;
+- newh = top-&gt;h;
+- break;
+- case 'r': /* Re-Size*/
+- size = TRUE;
+- attron(COLOR_PAIR(4));
+- mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press &lt;ENTER&gt; to end resizing");
+- refresh();
+- attroff(COLOR_PAIR(4));
+- break;
+- case 'm': /* Move */
+- attron(COLOR_PAIR(4));
+- mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press &lt;ENTER&gt; to end moving");
+- refresh();
+- attroff(COLOR_PAIR(4));
+- move = TRUE;
+- break;
+- case KEY_LEFT:
+- if(size == TRUE)
+- { --newx;
+- ++neww;
+- }
+- if(move == TRUE)
+- --newx;
+- break;
+- case KEY_RIGHT:
+- if(size == TRUE)
+- { ++newx;
+- --neww;
+- }
+- if(move == TRUE)
+- ++newx;
+- break;
+- case KEY_UP:
+- if(size == TRUE)
+- { --newy;
+- ++newh;
+- }
+- if(move == TRUE)
+- --newy;
+- break;
+- case KEY_DOWN:
+- if(size == TRUE)
+- { ++newy;
+- --newh;
+- }
+- if(move == TRUE)
+- ++newy;
+- break;
+- case 10: /* Enter */
+- move(LINES - 4, 0);
+- clrtoeol();
+- refresh();
+- if(size == TRUE)
+- { old_win = panel_window(stack_top);
+- temp_win = newwin(newh, neww, newy, newx);
+- replace_panel(stack_top, temp_win);
+- win_show(temp_win, top-&gt;label, top-&gt;label_color);
+- delwin(old_win);
+- size = FALSE;
+- }
+- if(move == TRUE)
+- { move_panel(stack_top, newy, newx);
+- move = FALSE;
+- }
+- break;
+-
+- }
+- attron(COLOR_PAIR(4));
+- mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
+- mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+- attroff(COLOR_PAIR(4));
+- refresh();
+- update_panels();
+- doupdate();
+- }
+- endwin();
+- return 0;
++{ WINDOW *my_wins[3];
++ PANEL *my_panels[3];
++ PANEL_DATA *top;
++ PANEL *stack_top;
++ WINDOW *temp_win, *old_win;
++ int ch;
++ int newx, newy, neww, newh;
++ int size = FALSE, move = FALSE;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize all the colors */
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_GREEN, COLOR_BLACK);
++ init_pair(3, COLOR_BLUE, COLOR_BLACK);
++ init_pair(4, COLOR_CYAN, COLOR_BLACK);
++
++ init_wins(my_wins, 3);
++
++ /* Attach a panel to each window */ /* Order is bottom up */
++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
++
++ set_user_ptrs(my_panels, 3);
++ /* Update the stacking order. 2nd panel will be on top */
++ update_panels();
++
++ /* Show it on the screen */
++ attron(COLOR_PAIR(4));
++ mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
++ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
++ attroff(COLOR_PAIR(4));
++ doupdate();
++
++ stack_top = my_panels[2];
++ top = (PANEL_DATA *)panel_userptr(stack_top);
++ newx = top-&#62;x;
++ newy = top-&#62;y;
++ neww = top-&#62;w;
++ newh = top-&#62;h;
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case 9: /* Tab */
++ top = (PANEL_DATA *)panel_userptr(stack_top);
++ top_panel(top-&#62;next);
++ stack_top = top-&#62;next;
++ top = (PANEL_DATA *)panel_userptr(stack_top);
++ newx = top-&#62;x;
++ newy = top-&#62;y;
++ neww = top-&#62;w;
++ newh = top-&#62;h;
++ break;
++ case 'r': /* Re-Size*/
++ size = TRUE;
++ attron(COLOR_PAIR(4));
++ mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press &#60;ENTER&#62; to end resizing");
++ refresh();
++ attroff(COLOR_PAIR(4));
++ break;
++ case 'm': /* Move */
++ attron(COLOR_PAIR(4));
++ mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press &#60;ENTER&#62; to end moving");
++ refresh();
++ attroff(COLOR_PAIR(4));
++ move = TRUE;
++ break;
++ case KEY_LEFT:
++ if(size == TRUE)
++ { --newx;
++ ++neww;
++ }
++ if(move == TRUE)
++ --newx;
++ break;
++ case KEY_RIGHT:
++ if(size == TRUE)
++ { ++newx;
++ --neww;
++ }
++ if(move == TRUE)
++ ++newx;
++ break;
++ case KEY_UP:
++ if(size == TRUE)
++ { --newy;
++ ++newh;
++ }
++ if(move == TRUE)
++ --newy;
++ break;
++ case KEY_DOWN:
++ if(size == TRUE)
++ { ++newy;
++ --newh;
++ }
++ if(move == TRUE)
++ ++newy;
++ break;
++ case 10: /* Enter */
++ move(LINES - 4, 0);
++ clrtoeol();
++ refresh();
++ if(size == TRUE)
++ { old_win = panel_window(stack_top);
++ temp_win = newwin(newh, neww, newy, newx);
++ replace_panel(stack_top, temp_win);
++ win_show(temp_win, top-&#62;label, top-&#62;label_color);
++ delwin(old_win);
++ size = FALSE;
++ }
++ if(move == TRUE)
++ { move_panel(stack_top, newy, newx);
++ move = FALSE;
++ }
++ break;
++
++ }
++ attron(COLOR_PAIR(4));
++ mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
++ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
++ attroff(COLOR_PAIR(4));
++ refresh();
++ update_panels();
++ doupdate();
++ }
++ endwin();
++ return 0;
+ }
+
+ /* Put all the windows */
+ void init_wins(WINDOW **wins, int n)
+-{ int x, y, i;
+- char label[80];
++{ int x, y, i;
++ char label[80];
+
+- y = 2;
+- x = 10;
+- for(i = 0; i &lt; n; ++i)
+- { wins[i] = newwin(NLINES, NCOLS, y, x);
+- sprintf(label, "Window Number %d", i + 1);
+- win_show(wins[i], label, i + 1);
+- y += 3;
+- x += 7;
+- }
++ y = 2;
++ x = 10;
++ for(i = 0; i &#60; n; ++i)
++ { wins[i] = newwin(NLINES, NCOLS, y, x);
++ sprintf(label, "Window Number %d", i + 1);
++ win_show(wins[i], label, i + 1);
++ y += 3;
++ x += 7;
++ }
+ }
+
+ /* Set the PANEL_DATA structures for individual panels */
+ void set_user_ptrs(PANEL **panels, int n)
+-{ PANEL_DATA *ptrs;
+- WINDOW *win;
+- int x, y, w, h, i;
+- char temp[80];
+-
+- ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA));
+-
+- for(i = 0;i &lt; n; ++i)
+- { win = panel_window(panels[i]);
+- getbegyx(win, y, x);
+- getmaxyx(win, h, w);
+- ptrs[i].x = x;
+- ptrs[i].y = y;
+- ptrs[i].w = w;
+- ptrs[i].h = h;
+- sprintf(temp, "Window Number %d", i + 1);
+- strcpy(ptrs[i].label, temp);
+- ptrs[i].label_color = i + 1;
+- if(i + 1 == n)
+- ptrs[i].next = panels[0];
+- else
+- ptrs[i].next = panels[i + 1];
+- set_panel_userptr(panels[i], &amp;ptrs[i]);
+- }
++{ PANEL_DATA *ptrs;
++ WINDOW *win;
++ int x, y, w, h, i;
++ char temp[80];
++
++ ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA));
++
++ for(i = 0;i &#60; n; ++i)
++ { win = panel_window(panels[i]);
++ getbegyx(win, y, x);
++ getmaxyx(win, h, w);
++ ptrs[i].x = x;
++ ptrs[i].y = y;
++ ptrs[i].w = w;
++ ptrs[i].h = h;
++ sprintf(temp, "Window Number %d", i + 1);
++ strcpy(ptrs[i].label, temp);
++ ptrs[i].label_color = i + 1;
++ if(i + 1 == n)
++ ptrs[i].next = panels[0];
++ else
++ ptrs[i].next = panels[i + 1];
++ set_panel_userptr(panels[i], &#38;ptrs[i]);
++ }
+ }
+
+ /* Show the window with a border and a label */
+ void win_show(WINDOW *win, char *label, int label_color)
+-{ int startx, starty, height, width;
++{ int startx, starty, height, width;
+
+- getbegyx(win, starty, startx);
+- getmaxyx(win, height, width);
++ getbegyx(win, starty, startx);
++ getmaxyx(win, height, width);
+
+- box(win, 0, 0);
+- mvwaddch(win, 2, 0, ACS_LTEE);
+- mvwhline(win, 2, 1, ACS_HLINE, width - 2);
+- mvwaddch(win, 2, width - 1, ACS_RTEE);
+-
+- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
++ box(win, 0, 0);
++ mvwaddch(win, 2, 0, ACS_LTEE);
++ mvwhline(win, 2, 1, ACS_HLINE, width - 2);
++ mvwaddch(win, 2, width - 1, ACS_RTEE);
++
++ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+ }
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- wattron(win, color);
+- mvwprintw(win, y, x, "%s", string);
+- wattroff(win, color);
+- refresh();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Concentrate on the main while loop. Once it finds out the type
+-of key pressed, it takes appropriate action. If 'r' is pressed
+-resizing mode is started. After this the new sizes are updated as
+-the user presses the arrow keys. When the user presses
+-&lt;ENTER&gt; present selection ends and panel is resized by using
+-the concept explained. While in resizing mode the program doesn't
+-show how the window is getting resized. It's left as an exercise to
+-the reader to print a dotted border while it gets resized to a new
+-position.</p>
+-<p>When the user presses 'm' the move mode starts. This is a bit
+-simpler than resizing. As the arrow keys are pressed the new
+-position is updated and pressing of &lt;ENTER&gt; causes the panel
+-to be moved by calling the function move_panel().</p>
+-<p>In this program the user data which is represented as
+-PANEL_DATA, plays very important role in finding the associated
+-information with a panel. As written in the comments, the
+-PANEL_DATA stores the panel sizes, label, label color and a pointer
+-to the next panel in the cycle.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PANELSHOWHIDE" id="PANELSHOWHIDE">16.6.
+-Hiding and Showing Panels</a></h3>
+-<p>A Panel can be hidden by using the function hide_panel(). This
+-function merely removes it form the stack of panels, thus hiding it
+-on the screen once you do update_panels() and doupdate(). It
+-doesn't destroy the PANEL structure associated with the hidden
+-panel. It can be shown again by using the show_panel()
+-function.</p>
+-<p>The following program shows the hiding of panels. Press 'a' or
+-'b' or 'c' to show or hide first, second and third windows
+-respectively. It uses a user data with a small variable hide, which
+-keeps track of whether the window is hidden or not. For some reason
+-the function <var class="LITERAL">panel_hidden()</var> which tells
+-whether a panel is hidden or not is not working. A bug report was
+-also presented by Michael Andres <a href=
+-"http://www.geocrawler.com/archives/3/344/1999/9/0/2643549/"
+-target="_top">here</a></p>
+-<div class="EXAMPLE"><a name="PPAHI" id="PPAHI"></a>
+-<p><b>Example 17. Panel Hiding and Showing example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;panel.h&gt;
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ wattron(win, color);
++ mvwprintw(win, y, x, "%s", string);
++ wattroff(win, color);
++ refresh();
++}</SPAN
++></PRE
++></DIV
++><P
++>Concentrate on the main while loop. Once it finds out the type of key pressed,
++it takes appropriate action. If 'r' is pressed resizing mode is started. After
++this the new sizes are updated as the user presses the arrow keys. When the user
++presses &lt;ENTER&gt; present selection ends and panel is resized by using the
++concept explained. While in resizing mode the program doesn't show how the
++window is getting resized. It's left as an exercise to the reader to print a
++dotted border while it gets resized to a new position. </P
++><P
++>When the user presses 'm' the move mode starts. This is a bit simpler than
++resizing. As the arrow keys are pressed the new position is updated and
++pressing of &lt;ENTER&gt; causes the panel to be moved by calling the function
++move_panel().</P
++><P
++>In this program the user data which is represented as PANEL_DATA, plays very
++important role in finding the associated information with a panel. As written in
++the comments, the PANEL_DATA stores the panel sizes, label, label color and a
++pointer to the next panel in the cycle.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PANELSHOWHIDE"
++>16.6. Hiding and Showing Panels</A
++></H3
++><P
++>A Panel can be hidden by using the function hide_panel(). This function merely
++removes it form the stack of panels, thus hiding it on the screen once you do
++update_panels() and doupdate(). It doesn't destroy the PANEL structure
++associated with the hidden panel. It can be shown again by using the
++show_panel() function.</P
++><P
++>The following program shows the hiding of panels. Press 'a' or 'b' or 'c' to
++show or hide first, second and third windows respectively. It uses a user data
++with a small variable hide, which keeps track of whether the window is hidden or
++not. For some reason the function
++<TT
++CLASS="LITERAL"
++>panel_hidden()</TT
++> which tells whether a panel is
++hidden or not is not working. A bug report was also presented by Michael Andres
++<A
++HREF="http://www.geocrawler.com/archives/3/344/1999/9/0/2643549/"
++TARGET="_top"
++> here</A
++></P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="PPAHI"
++></A
++><P
++><B
++>Example 17. Panel Hiding and Showing example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;panel.h&#62;
+
+ typedef struct _PANEL_DATA {
+- int hide; /* TRUE if panel is hidden */
++ int hide; /* TRUE if panel is hidden */
+ }PANEL_DATA;
+
+ #define NLINES 10
+@@ -3430,257 +4910,292 @@
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+ int main()
+-{ WINDOW *my_wins[3];
+- PANEL *my_panels[3];
+- PANEL_DATA panel_datas[3];
+- PANEL_DATA *temp;
+- int ch;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize all the colors */
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_GREEN, COLOR_BLACK);
+- init_pair(3, COLOR_BLUE, COLOR_BLACK);
+- init_pair(4, COLOR_CYAN, COLOR_BLACK);
+-
+- init_wins(my_wins, 3);
+-
+- /* Attach a panel to each window */ /* Order is bottom up */
+- my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+- my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+- my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+-
+- /* Initialize panel datas saying that nothing is hidden */
+- panel_datas[0].hide = FALSE;
+- panel_datas[1].hide = FALSE;
+- panel_datas[2].hide = FALSE;
+-
+- set_panel_userptr(my_panels[0], &amp;panel_datas[0]);
+- set_panel_userptr(my_panels[1], &amp;panel_datas[1]);
+- set_panel_userptr(my_panels[2], &amp;panel_datas[2]);
+-
+- /* Update the stacking order. 2nd panel will be on top */
+- update_panels();
+-
+- /* Show it on the screen */
+- attron(COLOR_PAIR(4));
+- mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window) 'b'(Second Window) 'c'(Third Window)");
+- mvprintw(LINES - 2, 0, "F1 to Exit");
+-
+- attroff(COLOR_PAIR(4));
+- doupdate();
+-
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case 'a':
+- temp = (PANEL_DATA *)panel_userptr(my_panels[0]);
+- if(temp-&gt;hide == FALSE)
+- { hide_panel(my_panels[0]);
+- temp-&gt;hide = TRUE;
+- }
+- else
+- { show_panel(my_panels[0]);
+- temp-&gt;hide = FALSE;
+- }
+- break;
+- case 'b':
+- temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
+- if(temp-&gt;hide == FALSE)
+- { hide_panel(my_panels[1]);
+- temp-&gt;hide = TRUE;
+- }
+- else
+- { show_panel(my_panels[1]);
+- temp-&gt;hide = FALSE;
+- }
+- break;
+- case 'c':
+- temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
+- if(temp-&gt;hide == FALSE)
+- { hide_panel(my_panels[2]);
+- temp-&gt;hide = TRUE;
+- }
+- else
+- { show_panel(my_panels[2]);
+- temp-&gt;hide = FALSE;
+- }
+- break;
+- }
+- update_panels();
+- doupdate();
+- }
+- endwin();
+- return 0;
++{ WINDOW *my_wins[3];
++ PANEL *my_panels[3];
++ PANEL_DATA panel_datas[3];
++ PANEL_DATA *temp;
++ int ch;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize all the colors */
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_GREEN, COLOR_BLACK);
++ init_pair(3, COLOR_BLUE, COLOR_BLACK);
++ init_pair(4, COLOR_CYAN, COLOR_BLACK);
++
++ init_wins(my_wins, 3);
++
++ /* Attach a panel to each window */ /* Order is bottom up */
++ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
++ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
++ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
++
++ /* Initialize panel datas saying that nothing is hidden */
++ panel_datas[0].hide = FALSE;
++ panel_datas[1].hide = FALSE;
++ panel_datas[2].hide = FALSE;
++
++ set_panel_userptr(my_panels[0], &#38;panel_datas[0]);
++ set_panel_userptr(my_panels[1], &#38;panel_datas[1]);
++ set_panel_userptr(my_panels[2], &#38;panel_datas[2]);
++
++ /* Update the stacking order. 2nd panel will be on top */
++ update_panels();
++
++ /* Show it on the screen */
++ attron(COLOR_PAIR(4));
++ mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window) 'b'(Second Window) 'c'(Third Window)");
++ mvprintw(LINES - 2, 0, "F1 to Exit");
++
++ attroff(COLOR_PAIR(4));
++ doupdate();
++
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case 'a':
++ temp = (PANEL_DATA *)panel_userptr(my_panels[0]);
++ if(temp-&#62;hide == FALSE)
++ { hide_panel(my_panels[0]);
++ temp-&#62;hide = TRUE;
++ }
++ else
++ { show_panel(my_panels[0]);
++ temp-&#62;hide = FALSE;
++ }
++ break;
++ case 'b':
++ temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
++ if(temp-&#62;hide == FALSE)
++ { hide_panel(my_panels[1]);
++ temp-&#62;hide = TRUE;
++ }
++ else
++ { show_panel(my_panels[1]);
++ temp-&#62;hide = FALSE;
++ }
++ break;
++ case 'c':
++ temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
++ if(temp-&#62;hide == FALSE)
++ { hide_panel(my_panels[2]);
++ temp-&#62;hide = TRUE;
++ }
++ else
++ { show_panel(my_panels[2]);
++ temp-&#62;hide = FALSE;
++ }
++ break;
++ }
++ update_panels();
++ doupdate();
++ }
++ endwin();
++ return 0;
+ }
+
+ /* Put all the windows */
+ void init_wins(WINDOW **wins, int n)
+-{ int x, y, i;
+- char label[80];
++{ int x, y, i;
++ char label[80];
+
+- y = 2;
+- x = 10;
+- for(i = 0; i &lt; n; ++i)
+- { wins[i] = newwin(NLINES, NCOLS, y, x);
+- sprintf(label, "Window Number %d", i + 1);
+- win_show(wins[i], label, i + 1);
+- y += 3;
+- x += 7;
+- }
++ y = 2;
++ x = 10;
++ for(i = 0; i &#60; n; ++i)
++ { wins[i] = newwin(NLINES, NCOLS, y, x);
++ sprintf(label, "Window Number %d", i + 1);
++ win_show(wins[i], label, i + 1);
++ y += 3;
++ x += 7;
++ }
+ }
+
+ /* Show the window with a border and a label */
+ void win_show(WINDOW *win, char *label, int label_color)
+-{ int startx, starty, height, width;
++{ int startx, starty, height, width;
+
+- getbegyx(win, starty, startx);
+- getmaxyx(win, height, width);
++ getbegyx(win, starty, startx);
++ getmaxyx(win, height, width);
+
+- box(win, 0, 0);
+- mvwaddch(win, 2, 0, ACS_LTEE);
+- mvwhline(win, 2, 1, ACS_HLINE, width - 2);
+- mvwaddch(win, 2, width - 1, ACS_RTEE);
+-
+- print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
++ box(win, 0, 0);
++ mvwaddch(win, 2, 0, ACS_LTEE);
++ mvwhline(win, 2, 1, ACS_HLINE, width - 2);
++ mvwaddch(win, 2, width - 1, ACS_RTEE);
++
++ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+ }
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- wattron(win, color);
+- mvwprintw(win, y, x, "%s", string);
+- wattroff(win, color);
+- refresh();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PANELABOVE" id="PANELABOVE">16.7.
+-panel_above() and panel_below() Functions</a></h3>
+-<p>The functions <var class="LITERAL">panel_above()</var> and
+-<var class="LITERAL">panel_below()</var> can be used to find out
+-the panel above and below a panel. If the argument to these
+-functions is NULL, then they return a pointer to bottom panel and
+-top panel respectively.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="MENUS" id="MENUS">17. Menus
+-Library</a></h2>
+-<p>The menus library provides a nice extension to basic curses,
+-through which you can create menus. It provides a set of functions
+-to create menus. But they have to be customized to give a nicer
+-look, with colors etc. Let's get into the details.</p>
+-<p>A menu is a screen display that assists the user to choose some
+-subset of a given set of items. To put it simple, a menu is a
+-collection of items from which one or more items can be chosen.
+-Some readers might not be aware of multiple item selection
+-capability. Menu library provides functionality to write menus from
+-which the user can chose more than one item as the preferred
+-choice. This is dealt with in a later section. Now it is time for
+-some rudiments.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MENUBASICS" id="MENUBASICS">17.1. The
+-Basics</a></h3>
+-<p>To create menus, you first create items, and then post the menu
+-to the display. After that, all the processing of user responses is
+-done in an elegant function menu_driver() which is the work horse
+-of any menu program.</p>
+-<p>The general flow of control of a menu program looks like
+-this.</p>
+-<ol type="1">
+-<li>
+-<p>Initialize curses</p>
+-</li>
+-<li>
+-<p>Create items using new_item(). You can specify a name and
+-description for the items.</p>
+-</li>
+-<li>
+-<p>Create the menu with new_menu() by specifying the items to be
+-attached with.</p>
+-</li>
+-<li>
+-<p>Post the menu with menu_post() and refresh the screen.</p>
+-</li>
+-<li>
+-<p>Process the user requests with a loop and do necessary updates
+-to menu with menu_driver.</p>
+-</li>
+-<li>
+-<p>Unpost the menu with menu_unpost()</p>
+-</li>
+-<li>
+-<p>Free the memory allocated to menu by free_menu()</p>
+-</li>
+-<li>
+-<p>Free the memory allocated to the items with free_item()</p>
+-</li>
+-<li>
+-<p>End curses</p>
+-</li>
+-</ol>
+-<p>Let's see a program which prints a simple menu and updates the
+-current selection with up, down arrows.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="COMPILEMENUS" id="COMPILEMENUS">17.2.
+-Compiling With the Menu Library</a></h3>
+-<p>To use menu library functions, you have to include menu.h and to
+-link the program with menu library the flag -lmenu should be added
+-along with -lncurses in that order.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> #include &lt;menu.h&gt;
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ wattron(win, color);
++ mvwprintw(win, y, x, "%s", string);
++ wattroff(win, color);
++ refresh();
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PANELABOVE"
++>16.7. panel_above() and panel_below() Functions</A
++></H3
++><P
++>The functions <TT
++CLASS="LITERAL"
++>panel_above()</TT
++> and
++<TT
++CLASS="LITERAL"
++>panel_below()</TT
++> can be used to find out the panel
++above and below a panel. If the argument to these functions is NULL, then they
++return a pointer to bottom panel and top panel respectively.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="MENUS"
++>17. Menus Library</A
++></H2
++><P
++>The menus library provides a nice extension to basic curses, through which you
++can create menus. It provides a set of functions to create menus. But they have
++to be customized to give a nicer look, with colors etc. Let's get into the
++details.</P
++><P
++>A menu is a screen display that assists the user to choose some subset of a
++given set of items. To put it simple, a menu is a collection of items from which
++one or more items can be chosen. Some readers might not be aware of multiple
++item selection capability. Menu library provides functionality to write menus
++from which the user can chose more than one item as the preferred choice. This
++is dealt with in a later section. Now it is time for some rudiments.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MENUBASICS"
++>17.1. The Basics</A
++></H3
++><P
++>To create menus, you first create items, and then post the menu to the display.
++After that, all the processing of user responses is done in an elegant function
++menu_driver() which is the work horse of any menu program. </P
++><P
++>The general flow of control of a menu program looks like this.
++<P
++></P
++><OL
++TYPE="1"
++><LI
++><P
++>Initialize curses</P
++></LI
++><LI
++><P
++>Create items using new_item(). You can specify a name and description for the
++items.</P
++></LI
++><LI
++><P
++>Create the menu with new_menu() by specifying the items to be attached with.</P
++></LI
++><LI
++><P
++>Post the menu with menu_post() and refresh the screen.</P
++></LI
++><LI
++><P
++>Process the user requests with a loop and do necessary updates to menu with
++menu_driver.</P
++></LI
++><LI
++><P
++>Unpost the menu with menu_unpost()</P
++></LI
++><LI
++><P
++>Free the memory allocated to menu by free_menu()</P
++></LI
++><LI
++><P
++>Free the memory allocated to the items with free_item() </P
++></LI
++><LI
++><P
++>End curses </P
++></LI
++></OL
++></P
++><P
++>Let's see a program which prints a simple menu and updates the current selection
++with up, down arrows. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="COMPILEMENUS"
++>17.2. Compiling With the Menu Library</A
++></H3
++><P
++>To use menu library functions, you have to include menu.h and to link the
++program with menu library the flag -lmenu should be added along with -lncurses
++in that order.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> #include &lt;menu.h&gt;
+ .
+ .
+ .
+
+- compile and link: gcc &lt;program file&gt; -lmenu -lncurses</font>
+-</pre></td>
+-</tr>
+-</table>
+-<div class="EXAMPLE"><a name="MMESI" id="MMESI"></a>
+-<p><b>Example 18. Menu Basics</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+-#include &lt;menu.h&gt;
++ compile and link: gcc &lt;program file&gt; -lmenu -lncurses</PRE
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMESI"
++></A
++><P
++><B
++>Example 18. Menu Basics </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;curses.h&#62;
++#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1",
+@@ -3691,69 +5206,64 @@
+ };
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
+- int n_choices, i;
+- ITEM *cur_item;
+-
+-
+- initscr();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- n_choices = ARRAY_SIZE(choices);
+- my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+-
+- for(i = 0; i &lt; n_choices; ++i)
+- my_items[i] = new_item(choices[i], choices[i]);
+- my_items[n_choices] = (ITEM *)NULL;
+-
+- my_menu = new_menu((ITEM **)my_items);
+- mvprintw(LINES - 2, 0, "F1 to Exit");
+- post_menu(my_menu);
+- refresh();
+-
+- while((c = getch()) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- }
+- }
+-
+- free_item(my_items[0]);
+- free_item(my_items[1]);
+- free_menu(my_menu);
+- endwin();
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
++ int n_choices, i;
++ ITEM *cur_item;
++
++
++ initscr();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ n_choices = ARRAY_SIZE(choices);
++ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
++
++ for(i = 0; i &#60; n_choices; ++i)
++ my_items[i] = new_item(choices[i], choices[i]);
++ my_items[n_choices] = (ITEM *)NULL;
++
++ my_menu = new_menu((ITEM **)my_items);
++ mvprintw(LINES - 2, 0, "F1 to Exit");
++ post_menu(my_menu);
++ refresh();
++
++ while((c = getch()) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ }
++ }
++
++ free_item(my_items[0]);
++ free_item(my_items[1]);
++ free_menu(my_menu);
++ endwin();
+ }
+- </span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>This program demonstrates the basic concepts involved in
+-creating a menu using menus library. First we create the items
+-using new_item() and then attach them to the menu with new_menu()
+-function. After posting the menu and refreshing the screen, the
+-main processing loop starts. It reads user input and takes
+-corresponding action. The function menu_driver() is the main work
+-horse of the menu system. The second parameter to this function
+-tells what's to be done with the menu. According to the parameter,
+-menu_driver() does the corresponding task. The value can be either
+-a menu navigational request, an ascii character, or a KEY_MOUSE
+-special key associated with a mouse event.</p>
+-<p>The menu_driver accepts following navigational requests.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">&#13; REQ_LEFT_ITEM Move left to an item.
++ </SPAN
++></PRE
++></DIV
++><P
++>This program demonstrates the basic concepts involved in creating a menu using
++menus library. First we create the items using new_item() and then attach them
++to the menu with new_menu() function. After posting the menu and refreshing the
++screen, the main processing loop starts. It reads user input and takes
++corresponding action. The function menu_driver() is the main work horse of the
++menu system. The second parameter to this function tells what's to be done with
++the menu. According to the parameter, menu_driver() does the corresponding task.
++The value can be either a menu navigational request, an ascii character, or a
++KEY_MOUSE special key associated with a mouse event.</P
++><P
++>The menu_driver accepts following navigational requests.
++<PRE
++CLASS="PROGRAMLISTING"
++>&#13; REQ_LEFT_ITEM Move left to an item.
+ REQ_RIGHT_ITEM Move right to an item.
+ REQ_UP_ITEM Move up to an item.
+ REQ_DOWN_ITEM Move down to an item.
+@@ -3769,87 +5279,144 @@
+ REQ_CLEAR_PATTERN Clear the menu pattern buffer.
+ REQ_BACK_PATTERN Delete the previous character from the pattern buffer.
+ REQ_NEXT_MATCH Move to the next item matching the pattern match.
+- REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Don't get overwhelmed by the number of options. We will see them
+-slowly one after another. The options of interest in this example
+-are REQ_UP_ITEM and REQ_DOWN_ITEM. These two options when passed to
+-menu_driver, menu driver updates the current item to one item up or
+-down respectively.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MENUDRIVER" id="MENUDRIVER">17.3. Menu
+-Driver: The work horse of the menu system</a></h3>
+-<p>As you have seen in the above example, menu_driver plays an
+-important role in updating the menu. It is very important to
+-understand various options it takes and what they do. As explained
+-above, the second parameter to menu_driver() can be either a
+-navigational request, a printable character or a KEY_MOUSE key.
+-Let's dissect the different navigational requests.</p>
+-<ul>
+-<li>
+-<p><em>REQ_LEFT_ITEM and REQ_RIGHT_ITEM</em></p>
+-<p>A Menu can be displayed with multiple columns for more than one
+-item. This can be done by using the <var class=
+-"LITERAL">menu_format()</var>function. When a multi columnar menu
+-is displayed these requests cause the menu driver to move the
+-current selection to left or right.</p>
+-</li>
+-<li>
+-<p><em>REQ_UP_ITEM and REQ_DOWN_ITEM</em></p>
+-<p>These two options you have seen in the above example. These
+-options when given, makes the menu_driver to move the current
+-selection to an item up or down.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_* options</em></p>
+-<p>The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE,
+-REQ_SCR_UPAGE are related to scrolling. If all the items in the
+-menu cannot be displayed in the menu sub window, then the menu is
+-scrollable. These requests can be given to the menu_driver to do
+-the scrolling either one line up, down or one page down or up
+-respectively.</p>
+-</li>
+-<li>
+-<p><em>REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and
+-REQ_PREV_ITEM</em></p>
+-<p>These requests are self explanatory.</p>
+-</li>
+-<li>
+-<p><em>REQ_TOGGLE_ITEM</em></p>
+-<p>This request when given, toggles the present selection. This
+-option is to be used only in a multi valued menu. So to use this
+-request the option O_ONEVALUE must be off. This option can be made
+-off or on with set_menu_opts().</p>
+-</li>
+-<li>
+-<p><em>Pattern Requests</em></p>
+-<p>Every menu has an associated pattern buffer, which is used to
+-find the nearest match to the ascii characters entered by the user.
+-Whenever ascii characters are given to menu_driver, it puts in to
+-the pattern buffer. It also tries to find the nearest match to the
+-pattern in the items list and moves current selection to that item.
+-The request REQ_CLEAR_PATTERN clears the pattern buffer. The
+-request REQ_BACK_PATTERN deletes the previous character in the
+-pattern buffer. In case the pattern matches more than one item then
+-the matched items can be cycled through REQ_NEXT_MATCH and
+-REQ_PREV_MATCH which move the current selection to the next and
+-previous matches respectively.</p>
+-</li>
+-<li>
+-<p><em>Mouse Requests</em></p>
+-<p>In case of KEY_MOUSE requests, according to the mouse position
+-an action is taken accordingly. The action to be taken is explained
+-in the man page as,</p>
+-<table border="0" bgcolor="#E0E0E0" width="90%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"><em> If the second argument is the KEY_MOUSE special key, the
++ REQ_PREV_MATCH Move to the previous item matching the pattern match.&#13;</PRE
++></P
++><P
++>Don't get overwhelmed by the number of options. We will see them slowly one
++after another. The options of interest in this example are REQ_UP_ITEM and
++REQ_DOWN_ITEM. These two options when passed to menu_driver, menu driver
++updates the current item to one item up or down respectively.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MENUDRIVER"
++>17.3. Menu Driver: The work horse of the menu system</A
++></H3
++><P
++>As you have seen in the above example, menu_driver plays an important role in
++updating the menu. It is very important to understand various options it takes
++and what they do. As explained above, the second parameter to menu_driver() can
++be either a navigational request, a printable character or a KEY_MOUSE key.
++Let's dissect the different navigational requests.</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_LEFT_ITEM and REQ_RIGHT_ITEM</I
++></SPAN
++></P
++><P
++>A Menu can be displayed with multiple columns for more than one item. This can
++be done by using the <TT
++CLASS="LITERAL"
++>menu_format()</TT
++>function.
++When a multi columnar menu is displayed these requests cause the menu driver to
++move the current selection to left or right.</P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_UP_ITEM and REQ_DOWN_ITEM </I
++></SPAN
++> </P
++><P
++>These two options you have seen in the above example. These options when given,
++makes the menu_driver to move the current selection to an item up or down.</P
++></LI
++><LI
++><P
++> <SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_* options</I
++></SPAN
++> </P
++><P
++>The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE, REQ_SCR_UPAGE are
++related to scrolling. If all the items in the menu cannot be displayed in the
++menu sub window, then the menu is scrollable. These requests can be given to the
++menu_driver to do the scrolling either one line up, down or one page down or up
++respectively. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and
++REQ_PREV_ITEM </I
++></SPAN
++> </P
++><P
++>These requests are self explanatory.</P
++></LI
++><LI
++><P
++> <SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_TOGGLE_ITEM</I
++></SPAN
++> </P
++><P
++>This request when given, toggles the present selection. This option is to be
++used only in a multi valued menu. So to use this request the option O_ONEVALUE
++must be off. This option can be made off or on with set_menu_opts().</P
++></LI
++><LI
++><P
++> <SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>Pattern Requests </I
++></SPAN
++></P
++><P
++>Every menu has an associated pattern buffer, which is used to find the nearest
++match to the ascii characters entered by the user. Whenever ascii characters are
++given to menu_driver, it puts in to the pattern buffer. It also tries to find
++the nearest match to the pattern in the items list and moves current selection
++to that item. The request REQ_CLEAR_PATTERN clears the pattern buffer. The
++request REQ_BACK_PATTERN deletes the previous character in the pattern buffer.
++In case the pattern matches more than one item then the matched items can be
++cycled through REQ_NEXT_MATCH and REQ_PREV_MATCH which move the current
++selection to the next and previous matches respectively.</P
++></LI
++><LI
++><P
++> <SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>Mouse Requests</I
++></SPAN
++></P
++><P
++>In case of KEY_MOUSE requests, according to the mouse position an action is
++taken accordingly. The action to be taken is explained in the man page as, </P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++> If the second argument is the KEY_MOUSE special key, the
+ associated mouse event is translated into one of the above
+ pre-defined requests. Currently only clicks in the user
+ window (e.g. inside the menu display area or the decora&shy;
+@@ -3861,39 +5428,49 @@
+ generated, if you doubleclick a REQ_SCR_DPAGE is generated
+ and if you tripleclick a REQ_LAST_ITEM is generated. If
+ you click at an item inside the display area of the menu,
+- the menu cursor is positioned to that item.</em></font>
+-</pre></td>
+-</tr>
+-</table>
+-</li>
+-</ul>
+-<p>Each of the above requests will be explained in the following
+-lines with several examples whenever appropriate.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MENUWINDOWS" id="MENUWINDOWS">17.4. Menu
+-Windows</a></h3>
+-<p>Every menu created is associated with a window and a sub window.
+-The menu window displays any title or border associated with the
+-menu. The menu sub window displays the menu items currently
+-available for selection. But we didn't specify any window or sub
+-window in the simple example. When a window is not specified,
+-stdscr is taken as the main window, and then menu system calculates
+-the sub window size required for the display of items. Then items
+-are displayed in the calculated sub window. So let's play with
+-these windows and display a menu with a border and a title.</p>
+-<div class="EXAMPLE"><a name="MMEWI" id="MMEWI"></a>
+-<p><b>Example 19. Menu Windows Usage example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;menu.h&gt;
++ the menu cursor is positioned to that item.</I
++></SPAN
++></PRE
++></LI
++></UL
++><P
++>Each of the above requests will be explained in the following lines with several
++examples whenever appropriate.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MENUWINDOWS"
++>17.4. Menu Windows</A
++></H3
++><P
++>Every menu created is associated with a window and a sub window. The menu window
++displays any title or border associated with the menu. The menu sub window
++displays the menu items currently available for selection. But we didn't specify
++any window or sub window in the simple example. When a window is not specified,
++stdscr is taken as the main window, and then menu system calculates the sub
++window size required for the display of items. Then items are displayed in the
++calculated sub window. So let's play with these windows and display a menu with
++a border and a title.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMEWI"
++></A
++><P
++><B
++>Example 19. Menu Windows Usage example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1",
+@@ -3906,392 +5483,403 @@
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
+ WINDOW *my_menu_win;
+ int n_choices, i;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
++
++ /* Initialize curses */
++ initscr();
++ start_color();
+ cbreak();
+ noecho();
+- keypad(stdscr, TRUE);
+- init_pair(1, COLOR_RED, COLOR_BLACK);
++ keypad(stdscr, TRUE);
++ init_pair(1, COLOR_RED, COLOR_BLACK);
+
+- /* Create items */
++ /* Create items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+
+- /* Crate menu */
+- my_menu = new_menu((ITEM **)my_items);
++ /* Crate menu */
++ my_menu = new_menu((ITEM **)my_items);
+
+- /* Create the window to be associated with the menu */
++ /* Create the window to be associated with the menu */
+ my_menu_win = newwin(10, 40, 4, 4);
+ keypad(my_menu_win, TRUE);
+
+- /* Set main window and sub window */
++ /* Set main window and sub window */
+ set_menu_win(my_menu, my_menu_win);
+ set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
+
+- /* Set menu mark to the string " * " */
++ /* Set menu mark to the string " * " */
+ set_menu_mark(my_menu, " * ");
+
+- /* Print a border around the main window and print a title */
++ /* Print a border around the main window and print a title */
+ box(my_menu_win, 0, 0);
+- print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
+- mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
+- mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
+- mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
+- mvprintw(LINES - 2, 0, "F1 to exit");
+- refresh();
++ print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
++ mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
++ mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
++ mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
++ mvprintw(LINES - 2, 0, "F1 to exit");
++ refresh();
+
+- /* Post the menu */
+- post_menu(my_menu);
+- wrefresh(my_menu_win);
+-
+- while((c = wgetch(my_menu_win)) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- }
++ /* Post the menu */
++ post_menu(my_menu);
++ wrefresh(my_menu_win);
++
++ while((c = wgetch(my_menu_win)) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ }
+ wrefresh(my_menu_win);
+- }
++ }
+
+- /* Unpost and free all the memory taken up */
++ /* Unpost and free all the memory taken up */
+ unpost_menu(my_menu);
+ free_menu(my_menu);
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ free_item(my_items[i]);
+- endwin();
++ endwin();
+ }
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- wattron(win, color);
+- mvwprintw(win, y, x, "%s", string);
+- wattroff(win, color);
+- refresh();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>This example creates a menu with a title, border, a fancy line
+-separating title and the items. As you can see, in order to attach
+-a window to a menu the function set_menu_win() has to be used. Then
+-we attach the sub window also. This displays the items in the sub
+-window. You can also set the mark string which gets displayed to
+-the left of the selected item with set_menu_mark().</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="SCROLLMENUS" id="SCROLLMENUS">17.5.
+-Scrolling Menus</a></h3>
+-<p>If the sub window given for a window is not big enough to show
+-all the items, then the menu will be scrollable. When you are on
+-the last item in the present list, if you send REQ_DOWN_ITEM, it
+-gets translated into REQ_SCR_DLINE and the menu scrolls by one
+-item. You can manually give REQ_SCR_ operations to do scrolling.
+-Let's see how it can be done.</p>
+-<div class="EXAMPLE"><a name="MMESC" id="MMESC"></a>
+-<p><b>Example 20. Scrolling Menus example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+-#include &lt;menu.h&gt;
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ wattron(win, color);
++ mvwprintw(win, y, x, "%s", string);
++ wattroff(win, color);
++ refresh();
++}</SPAN
++></PRE
++></DIV
++><P
++>This example creates a menu with a title, border, a fancy line separating title
++and the items. As you can see, in order to attach a window to a menu the
++function set_menu_win() has to be used. Then we attach the sub window also. This
++displays the items in the sub window. You can also set the mark string which
++gets displayed to the left of the selected item with set_menu_mark().</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="SCROLLMENUS"
++>17.5. Scrolling Menus</A
++></H3
++><P
++>If the sub window given for a window is not big enough to show all the items,
++then the menu will be scrollable. When you are on the last item in the present
++list, if you send REQ_DOWN_ITEM, it gets translated into REQ_SCR_DLINE and the
++menu scrolls by one item. You can manually give REQ_SCR_ operations to do
++scrolling. Let's see how it can be done.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMESC"
++></A
++><P
++><B
++>Example 20. Scrolling Menus example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;curses.h&#62;
++#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+- "Choice 5",
+- "Choice 6",
+- "Choice 7",
+- "Choice 8",
+- "Choice 9",
+- "Choice 10",
++ "Choice 5",
++ "Choice 6",
++ "Choice 7",
++ "Choice 8",
++ "Choice 9",
++ "Choice 10",
+ "Exit",
+ (char *)NULL,
+ };
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
+ WINDOW *my_menu_win;
+ int n_choices, i;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
++
++ /* Initialize curses */
++ initscr();
++ start_color();
+ cbreak();
+ noecho();
+- keypad(stdscr, TRUE);
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_CYAN, COLOR_BLACK);
++ keypad(stdscr, TRUE);
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_CYAN, COLOR_BLACK);
+
+- /* Create items */
++ /* Create items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+
+- /* Crate menu */
+- my_menu = new_menu((ITEM **)my_items);
++ /* Crate menu */
++ my_menu = new_menu((ITEM **)my_items);
+
+- /* Create the window to be associated with the menu */
++ /* Create the window to be associated with the menu */
+ my_menu_win = newwin(10, 40, 4, 4);
+ keypad(my_menu_win, TRUE);
+
+- /* Set main window and sub window */
++ /* Set main window and sub window */
+ set_menu_win(my_menu, my_menu_win);
+ set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
+- set_menu_format(my_menu, 5, 1);
+-
+- /* Set menu mark to the string " * " */
++ set_menu_format(my_menu, 5, 1);
++
++ /* Set menu mark to the string " * " */
+ set_menu_mark(my_menu, " * ");
+
+- /* Print a border around the main window and print a title */
++ /* Print a border around the main window and print a title */
+ box(my_menu_win, 0, 0);
+- print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
+- mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
+- mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
+- mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
++ print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
++ mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
++ mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
++ mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
+
+- /* Post the menu */
+- post_menu(my_menu);
+- wrefresh(my_menu_win);
+-
+- attron(COLOR_PAIR(2));
+- mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
+- mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
+- attroff(COLOR_PAIR(2));
+- refresh();
+-
+- while((c = wgetch(my_menu_win)) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- case KEY_NPAGE:
+- menu_driver(my_menu, REQ_SCR_DPAGE);
+- break;
+- case KEY_PPAGE:
+- menu_driver(my_menu, REQ_SCR_UPAGE);
+- break;
+- }
++ /* Post the menu */
++ post_menu(my_menu);
++ wrefresh(my_menu_win);
++
++ attron(COLOR_PAIR(2));
++ mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
++ mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
++ attroff(COLOR_PAIR(2));
++ refresh();
++
++ while((c = wgetch(my_menu_win)) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ case KEY_NPAGE:
++ menu_driver(my_menu, REQ_SCR_DPAGE);
++ break;
++ case KEY_PPAGE:
++ menu_driver(my_menu, REQ_SCR_UPAGE);
++ break;
++ }
+ wrefresh(my_menu_win);
+- }
++ }
+
+- /* Unpost and free all the memory taken up */
++ /* Unpost and free all the memory taken up */
+ unpost_menu(my_menu);
+ free_menu(my_menu);
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ free_item(my_items[i]);
+- endwin();
++ endwin();
+ }
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- wattron(win, color);
+- mvwprintw(win, y, x, "%s", string);
+- wattroff(win, color);
+- refresh();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>This program is self-explanatory. In this example the number of
+-choices has been increased to ten, which is larger than our sub
+-window size which can hold 6 items. This message has to be
+-explicitly conveyed to the menu system with the function
+-set_menu_format(). In here we specify the number of rows and
+-columns we want to be displayed for a single page. We can specify
+-any number of items to be shown, in the rows variables, if it is
+-less than the height of the sub window. If the key pressed by the
+-user is a PAGE UP or PAGE DOWN, the menu is scrolled a page due to
+-the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to
+-menu_driver().</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MULTICOLUMN" id="MULTICOLUMN">17.6.
+-Multi Columnar Menus</a></h3>
+-<p>In the above example you have seen how to use the function
+-set_menu_format(). I didn't mention what the cols variable (third
+-parameter) does. Well, If your sub window is wide enough, you can
+-opt to display more than one item per row. This can be specified in
+-the cols variable. To make things simpler, the following example
+-doesn't show descriptions for the items.</p>
+-<div class="EXAMPLE"><a name="MMEMUCO" id="MMEMUCO"></a>
+-<p><b>Example 21. Milt Columnar Menus Example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+-#include &lt;menu.h&gt;
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ wattron(win, color);
++ mvwprintw(win, y, x, "%s", string);
++ wattroff(win, color);
++ refresh();
++}</SPAN
++></PRE
++></DIV
++><P
++>This program is self-explanatory. In this example the number of choices has been
++increased to ten, which is larger than our sub window size which can hold 6
++items. This message has to be explicitly conveyed to the menu system with the
++function set_menu_format(). In here we specify the number of rows and columns we
++want to be displayed for a single page. We can specify any number of items to be
++shown, in the rows variables, if it is less than the height of the sub window.
++If the key pressed by the user is a PAGE UP or PAGE DOWN, the menu is scrolled a
++page due to the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to
++menu_driver().</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MULTICOLUMN"
++>17.6. Multi Columnar Menus</A
++></H3
++><P
++>In the above example you have seen how to use the function set_menu_format(). I
++didn't mention what the cols variable (third parameter) does. Well, If your sub
++window is wide enough, you can opt to display more than one item per row. This
++can be specified in the cols variable. To make things simpler, the following
++example doesn't show descriptions for the items.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMEMUCO"
++></A
++><P
++><B
++>Example 21. Milt Columnar Menus Example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;curses.h&#62;
++#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1", "Choice 2", "Choice 3", "Choice 4", "Choice 5",
+- "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10",
+- "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15",
+- "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20",
++ "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10",
++ "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15",
++ "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20",
+ "Exit",
+ (char *)NULL,
+ };
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
+ WINDOW *my_menu_win;
+ int n_choices, i;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
++
++ /* Initialize curses */
++ initscr();
++ start_color();
+ cbreak();
+ noecho();
+- keypad(stdscr, TRUE);
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_CYAN, COLOR_BLACK);
++ keypad(stdscr, TRUE);
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_CYAN, COLOR_BLACK);
+
+- /* Create items */
++ /* Create items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+
+- /* Crate menu */
+- my_menu = new_menu((ITEM **)my_items);
++ /* Crate menu */
++ my_menu = new_menu((ITEM **)my_items);
+
+- /* Set menu option not to show the description */
+- menu_opts_off(my_menu, O_SHOWDESC);
++ /* Set menu option not to show the description */
++ menu_opts_off(my_menu, O_SHOWDESC);
+
+- /* Create the window to be associated with the menu */
++ /* Create the window to be associated with the menu */
+ my_menu_win = newwin(10, 70, 4, 4);
+ keypad(my_menu_win, TRUE);
+
+- /* Set main window and sub window */
++ /* Set main window and sub window */
+ set_menu_win(my_menu, my_menu_win);
+ set_menu_sub(my_menu, derwin(my_menu_win, 6, 68, 3, 1));
+- set_menu_format(my_menu, 5, 3);
+- set_menu_mark(my_menu, " * ");
++ set_menu_format(my_menu, 5, 3);
++ set_menu_mark(my_menu, " * ");
+
+- /* Print a border around the main window and print a title */
++ /* Print a border around the main window and print a title */
+ box(my_menu_win, 0, 0);
+-
+- attron(COLOR_PAIR(2));
+- mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll");
+- mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)");
+- attroff(COLOR_PAIR(2));
+- refresh();
+-
+- /* Post the menu */
+- post_menu(my_menu);
+- wrefresh(my_menu_win);
+-
+- while((c = wgetch(my_menu_win)) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- case KEY_LEFT:
+- menu_driver(my_menu, REQ_LEFT_ITEM);
+- break;
+- case KEY_RIGHT:
+- menu_driver(my_menu, REQ_RIGHT_ITEM);
+- break;
+- case KEY_NPAGE:
+- menu_driver(my_menu, REQ_SCR_DPAGE);
+- break;
+- case KEY_PPAGE:
+- menu_driver(my_menu, REQ_SCR_UPAGE);
+- break;
+- }
++
++ attron(COLOR_PAIR(2));
++ mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll");
++ mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)");
++ attroff(COLOR_PAIR(2));
++ refresh();
++
++ /* Post the menu */
++ post_menu(my_menu);
++ wrefresh(my_menu_win);
++
++ while((c = wgetch(my_menu_win)) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ case KEY_LEFT:
++ menu_driver(my_menu, REQ_LEFT_ITEM);
++ break;
++ case KEY_RIGHT:
++ menu_driver(my_menu, REQ_RIGHT_ITEM);
++ break;
++ case KEY_NPAGE:
++ menu_driver(my_menu, REQ_SCR_DPAGE);
++ break;
++ case KEY_PPAGE:
++ menu_driver(my_menu, REQ_SCR_UPAGE);
++ break;
++ }
+ wrefresh(my_menu_win);
+- }
++ }
+
+- /* Unpost and free all the memory taken up */
++ /* Unpost and free all the memory taken up */
+ unpost_menu(my_menu);
+ free_menu(my_menu);
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ free_item(my_items[i]);
+- endwin();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Watch the function call to set_menu_format(). It specifies the
+-number of columns to be 3, thus displaying 3 items per row. We have
+-also switched off the showing descriptions with the function
+-menu_opts_off(). There are couple of functions set_menu_opts(),
+-menu_opts_on() and menu_opts() which can be used to manipulate menu
+-options. The following menu options can be specified.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> O_ONEVALUE
++ endwin();
++}</SPAN
++></PRE
++></DIV
++><P
++>Watch the function call to set_menu_format(). It specifies the number of columns
++to be 3, thus displaying 3 items per row. We have also switched off the showing
++descriptions with the function menu_opts_off(). There are couple of functions
++set_menu_opts(), menu_opts_on() and menu_opts() which can be used to manipulate
++menu options. The following menu options can be specified.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> O_ONEVALUE
+ Only one item can be selected for this menu.
+
+ O_SHOWDESC
+@@ -4310,633 +5898,684 @@
+
+ O_NONCYCLIC
+ Don't wrap around next-item and previous-item,
+- requests to the other end of the menu.</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>All options are on by default. You can switch specific
+-attributes on or off with menu_opts_on() and menu_opts_off()
+-functions. You can also use set_menu_opts() to directly specify the
+-options. The argument to this function should be a OR ed value of
+-some of those above constants. The function menu_opts() can be used
+-to find out a menu's present options.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MULTIVALUEMENUS" id=
+-"MULTIVALUEMENUS">17.7. Multi Valued Menus</a></h3>
+-<p>You might be wondering what if you switch off the option
+-O_ONEVALUE. Then the menu becomes multi-valued. That means you can
+-select more than one item. This brings us to the request
+-REQ_TOGGLE_ITEM. Let's see it in action.</p>
+-<div class="EXAMPLE"><a name="MMETO" id="MMETO"></a>
+-<p><b>Example 22. Multi Valued Menus example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+-#include &lt;menu.h&gt;
++ requests to the other end of the menu.</PRE
++><P
++>All options are on by default. You can switch specific attributes on or off with
++menu_opts_on() and menu_opts_off() functions. You can also use set_menu_opts()
++to directly specify the options. The argument to this function should be a OR ed
++value of some of those above constants. The function menu_opts() can be used to
++find out a menu's present options. </P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MULTIVALUEMENUS"
++>17.7. Multi Valued Menus</A
++></H3
++><P
++>You might be wondering what if you switch off the option O_ONEVALUE. Then the
++menu becomes multi-valued. That means you can select more than one item. This
++brings us to the request REQ_TOGGLE_ITEM. Let's see it in action.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMETO"
++></A
++><P
++><B
++>Example 22. Multi Valued Menus example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;curses.h&#62;
++#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+- "Choice 5",
+- "Choice 6",
+- "Choice 7",
++ "Choice 5",
++ "Choice 6",
++ "Choice 7",
+ "Exit",
+ };
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
+ int n_choices, i;
+- ITEM *cur_item;
+-
+- /* Initialize curses */
+- initscr();
++ ITEM *cur_item;
++
++ /* Initialize curses */
++ initscr();
+ cbreak();
+ noecho();
+- keypad(stdscr, TRUE);
++ keypad(stdscr, TRUE);
+
+- /* Initialize items */
++ /* Initialize items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+- my_items[n_choices] = (ITEM *)NULL;
++ my_items[n_choices] = (ITEM *)NULL;
+
+- my_menu = new_menu((ITEM **)my_items);
++ my_menu = new_menu((ITEM **)my_items);
+
+- /* Make the menu multi valued */
+- menu_opts_off(my_menu, O_ONEVALUE);
++ /* Make the menu multi valued */
++ menu_opts_off(my_menu, O_ONEVALUE);
+
+- mvprintw(LINES - 3, 0, "Use &lt;SPACE&gt; to select or unselect an item.");
+- mvprintw(LINES - 2, 0, "&lt;ENTER&gt; to see presently selected items(F1 to Exit)");
+- post_menu(my_menu);
+- refresh();
+-
+- while((c = getch()) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- case ' ':
+- menu_driver(my_menu, REQ_TOGGLE_ITEM);
+- break;
+- case 10: /* Enter */
+- { char temp[200];
+- ITEM **items;
+-
+- items = menu_items(my_menu);
+- temp[0] = '\0';
+- for(i = 0; i &lt; item_count(my_menu); ++i)
+- if(item_value(items[i]) == TRUE)
+- { strcat(temp, item_name(items[i]));
+- strcat(temp, " ");
+- }
+- move(20, 0);
+- clrtoeol();
+- mvprintw(20, 0, temp);
+- refresh();
+- }
+- break;
+- }
+- }
++ mvprintw(LINES - 3, 0, "Use &#60;SPACE&#62; to select or unselect an item.");
++ mvprintw(LINES - 2, 0, "&#60;ENTER&#62; to see presently selected items(F1 to Exit)");
++ post_menu(my_menu);
++ refresh();
++
++ while((c = getch()) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ case ' ':
++ menu_driver(my_menu, REQ_TOGGLE_ITEM);
++ break;
++ case 10: /* Enter */
++ { char temp[200];
++ ITEM **items;
++
++ items = menu_items(my_menu);
++ temp[0] = '\0';
++ for(i = 0; i &#60; item_count(my_menu); ++i)
++ if(item_value(items[i]) == TRUE)
++ { strcat(temp, item_name(items[i]));
++ strcat(temp, " ");
++ }
++ move(20, 0);
++ clrtoeol();
++ mvprintw(20, 0, temp);
++ refresh();
++ }
++ break;
++ }
++ }
+
+- free_item(my_items[0]);
++ free_item(my_items[0]);
+ free_item(my_items[1]);
+- free_menu(my_menu);
+- endwin();
++ free_menu(my_menu);
++ endwin();
+ }
+- </span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Whew, A lot of new functions. Let's take them one after another.
+-Firstly, the REQ_TOGGLE_ITEM. In a multi-valued menu, the user
+-should be allowed to select or un select more than one item. The
+-request REQ_TOGGLE_ITEM toggles the present selection. In this case
+-when space is pressed REQ_TOGGLE_ITEM request is sent to
+-menu_driver to achieve the result.</p>
+-<p>Now when the user presses &lt;ENTER&gt; we show the items he
+-presently selected. First we find out the items associated with the
+-menu using the function menu_items(). Then we loop through the
+-items to find out if the item is selected or not. The function
+-item_value() returns TRUE if an item is selected. The function
+-item_count() returns the number of items in the menu. The item name
+-can be found with item_name(). You can also find the description
+-associated with an item using item_description().</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MENUOPT" id="MENUOPT">17.8. Menu
+-Options</a></h3>
+-<p>Well, by this time you must be itching for some difference in
+-your menu, with lots of functionality. I know. You want Colors !!!.
+-You want to create nice menus similar to those text mode <a href=
+-"http://www.jersey.net/~debinjoe/games/" target="_top">dos
+-games</a>. The functions set_menu_fore() and set_menu_back() can be
+-used to change the attribute of the selected item and unselected
+-item. The names are misleading. They don't change menu's foreground
+-or background which would have been useless.</p>
+-<p>The function set_menu_grey() can be used to set the display
+-attribute for the non-selectable items in the menu. This brings us
+-to the interesting option for an item the one and only
+-O_SELECTABLE. We can turn it off by the function item_opts_off()
+-and after that that item is not selectable. It's like a grayed item
+-in those fancy windows menus. Let's put these concepts in practice
+-with this example</p>
+-<div class="EXAMPLE"><a name="MMEAT" id="MMEAT"></a>
+-<p><b>Example 23. Menu Options example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;menu.h&gt;
++ </SPAN
++></PRE
++></DIV
++><P
++>Whew, A lot of new functions. Let's take them one after another. Firstly, the
++REQ_TOGGLE_ITEM. In a multi-valued menu, the user should be allowed to select
++or un select more than one item. The request REQ_TOGGLE_ITEM toggles the present
++selection. In this case when space is pressed REQ_TOGGLE_ITEM request is sent to
++menu_driver to achieve the result.</P
++><P
++>Now when the user presses &lt;ENTER&gt; we show the items he presently selected.
++First we find out the items associated with the menu using the function
++menu_items(). Then we loop through the items to find out if the item is selected
++or not. The function item_value() returns TRUE if an item is selected. The
++function item_count() returns the number of items in the menu. The item name can
++be found with item_name(). You can also find the description associated with an
++item using item_description().</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MENUOPT"
++>17.8. Menu Options</A
++></H3
++><P
++>Well, by this time you must be itching for some difference in your menu, with
++lots of functionality. I know. You want Colors !!!. You want to create nice
++menus similar to those text mode <A
++HREF="http://www.jersey.net/~debinjoe/games/"
++TARGET="_top"
++>dos games</A
++>. The functions
++set_menu_fore() and set_menu_back() can be used to change the attribute of the
++selected item and unselected item. The names are misleading. They don't change
++menu's foreground or background which would have been useless. </P
++><P
++>The function set_menu_grey() can be used to set the display attribute for the
++non-selectable items in the menu. This brings us to the interesting option for
++an item the one and only O_SELECTABLE. We can turn it off by the function
++item_opts_off() and after that that item is not selectable. It's like a grayed
++item in those fancy windows menus. Let's put these concepts in practice with
++this example</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMEAT"
++></A
++><P
++><B
++>Example 23. Menu Options example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+- "Choice 5",
+- "Choice 6",
+- "Choice 7",
++ "Choice 5",
++ "Choice 6",
++ "Choice 7",
+ "Exit",
+ };
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
+ int n_choices, i;
+- ITEM *cur_item;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
++ ITEM *cur_item;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
+ cbreak();
+ noecho();
+- keypad(stdscr, TRUE);
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_GREEN, COLOR_BLACK);
+- init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
++ keypad(stdscr, TRUE);
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_GREEN, COLOR_BLACK);
++ init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
+
+- /* Initialize items */
++ /* Initialize items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+- for(i = 0; i &lt; n_choices; ++i)
++ for(i = 0; i &#60; n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+- my_items[n_choices] = (ITEM *)NULL;
+- item_opts_off(my_items[3], O_SELECTABLE);
+- item_opts_off(my_items[6], O_SELECTABLE);
+-
+- /* Create menu */
+- my_menu = new_menu((ITEM **)my_items);
+-
+- /* Set fore ground and back ground of the menu */
+- set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE);
+- set_menu_back(my_menu, COLOR_PAIR(2));
+- set_menu_grey(my_menu, COLOR_PAIR(3));
+-
+- /* Post the menu */
+- mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected");
+- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+- post_menu(my_menu);
+- refresh();
+-
+- while((c = getch()) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- case 10: /* Enter */
+- move(20, 0);
+- clrtoeol();
+- mvprintw(20, 0, "Item selected is : %s",
+- item_name(current_item(my_menu)));
+- pos_menu_cursor(my_menu);
+- break;
+- }
+- }
+- unpost_menu(my_menu);
+- for(i = 0; i &lt; n_choices; ++i)
+- free_item(my_items[i]);
+- free_menu(my_menu);
+- endwin();
++ my_items[n_choices] = (ITEM *)NULL;
++ item_opts_off(my_items[3], O_SELECTABLE);
++ item_opts_off(my_items[6], O_SELECTABLE);
++
++ /* Create menu */
++ my_menu = new_menu((ITEM **)my_items);
++
++ /* Set fore ground and back ground of the menu */
++ set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE);
++ set_menu_back(my_menu, COLOR_PAIR(2));
++ set_menu_grey(my_menu, COLOR_PAIR(3));
++
++ /* Post the menu */
++ mvprintw(LINES - 3, 0, "Press &#60;ENTER&#62; to see the option selected");
++ mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
++ post_menu(my_menu);
++ refresh();
++
++ while((c = getch()) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ case 10: /* Enter */
++ move(20, 0);
++ clrtoeol();
++ mvprintw(20, 0, "Item selected is : %s",
++ item_name(current_item(my_menu)));
++ pos_menu_cursor(my_menu);
++ break;
++ }
++ }
++ unpost_menu(my_menu);
++ for(i = 0; i &#60; n_choices; ++i)
++ free_item(my_items[i]);
++ free_menu(my_menu);
++ endwin();
+ }
+- </span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MENUUSERPTR" id="MENUUSERPTR">17.9. The
+-useful User Pointer</a></h3>
+-<p>We can associate a user pointer with each item in the menu. It
+-works the same way as user pointer in panels. It's not touched by
+-menu system. You can store any thing you like in that. I usually
+-use it to store the function to be executed when the menu option is
+-chosen (It's selected and may be the user pressed
+-&lt;ENTER&gt;);</p>
+-<div class="EXAMPLE"><a name="MMEUS" id="MMEUS"></a>
+-<p><b>Example 24. Menu User Pointer Usage</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;curses.h&gt;
+-#include &lt;menu.h&gt;
++ </SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MENUUSERPTR"
++>17.9. The useful User Pointer</A
++></H3
++><P
++>We can associate a user pointer with each item in the menu. It works the same
++way as user pointer in panels. It's not touched by menu system. You can store
++any thing you like in that. I usually use it to store the function to be
++executed when the menu option is chosen (It's selected and may be the user
++pressed &lt;ENTER&gt;);</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="MMEUS"
++></A
++><P
++><B
++>Example 24. Menu User Pointer Usage </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;curses.h&#62;
++#include &#60;menu.h&#62;
+
+ #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+-#define CTRLD 4
++#define CTRLD 4
+
+ char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+- "Choice 5",
+- "Choice 6",
+- "Choice 7",
++ "Choice 5",
++ "Choice 6",
++ "Choice 7",
+ "Exit",
+ };
+ void func(char *name);
+
+ int main()
+-{ ITEM **my_items;
+- int c;
+- MENU *my_menu;
++{ ITEM **my_items;
++ int c;
++ MENU *my_menu;
+ int n_choices, i;
+- ITEM *cur_item;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
++ ITEM *cur_item;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
+ cbreak();
+ noecho();
+- keypad(stdscr, TRUE);
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- init_pair(2, COLOR_GREEN, COLOR_BLACK);
+- init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
++ keypad(stdscr, TRUE);
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++ init_pair(2, COLOR_GREEN, COLOR_BLACK);
++ init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
+
+- /* Initialize items */
++ /* Initialize items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+- for(i = 0; i &lt; n_choices; ++i)
+- { my_items[i] = new_item(choices[i], choices[i]);
+- /* Set the user pointer */
+- set_item_userptr(my_items[i], func);
+- }
+- my_items[n_choices] = (ITEM *)NULL;
+-
+- /* Create menu */
+- my_menu = new_menu((ITEM **)my_items);
+-
+- /* Post the menu */
+- mvprintw(LINES - 3, 0, "Press &lt;ENTER&gt; to see the option selected");
+- mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+- post_menu(my_menu);
+- refresh();
+-
+- while((c = getch()) != KEY_F(1))
+- { switch(c)
+- { case KEY_DOWN:
+- menu_driver(my_menu, REQ_DOWN_ITEM);
+- break;
+- case KEY_UP:
+- menu_driver(my_menu, REQ_UP_ITEM);
+- break;
+- case 10: /* Enter */
+- { ITEM *cur;
+- void (*p)(char *);
+-
+- cur = current_item(my_menu);
+- p = item_userptr(cur);
+- p((char *)item_name(cur));
+- pos_menu_cursor(my_menu);
+- break;
+- }
+- break;
+- }
+- }
+- unpost_menu(my_menu);
+- for(i = 0; i &lt; n_choices; ++i)
+- free_item(my_items[i]);
+- free_menu(my_menu);
+- endwin();
++ for(i = 0; i &#60; n_choices; ++i)
++ { my_items[i] = new_item(choices[i], choices[i]);
++ /* Set the user pointer */
++ set_item_userptr(my_items[i], func);
++ }
++ my_items[n_choices] = (ITEM *)NULL;
++
++ /* Create menu */
++ my_menu = new_menu((ITEM **)my_items);
++
++ /* Post the menu */
++ mvprintw(LINES - 3, 0, "Press &#60;ENTER&#62; to see the option selected");
++ mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
++ post_menu(my_menu);
++ refresh();
++
++ while((c = getch()) != KEY_F(1))
++ { switch(c)
++ { case KEY_DOWN:
++ menu_driver(my_menu, REQ_DOWN_ITEM);
++ break;
++ case KEY_UP:
++ menu_driver(my_menu, REQ_UP_ITEM);
++ break;
++ case 10: /* Enter */
++ { ITEM *cur;
++ void (*p)(char *);
++
++ cur = current_item(my_menu);
++ p = item_userptr(cur);
++ p((char *)item_name(cur));
++ pos_menu_cursor(my_menu);
++ break;
++ }
++ break;
++ }
++ }
++ unpost_menu(my_menu);
++ for(i = 0; i &#60; n_choices; ++i)
++ free_item(my_items[i]);
++ free_menu(my_menu);
++ endwin();
+ }
+
+ void func(char *name)
+-{ move(20, 0);
+- clrtoeol();
+- mvprintw(20, 0, "Item selected is : %s", name);
+-} </span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="FORMS" id="FORMS">18. Forms
+-Library</a></h2>
+-<p>Well. If you have seen those forms on web pages which take input
+-from users and do various kinds of things, you might be wondering
+-how would any one create such forms in text mode display. It's
+-quite difficult to write those nifty forms in plain ncurses. Forms
+-library tries to provide a basic frame work to build and maintain
+-forms with ease. It has lot of features(functions) which manage
+-validation, dynamic expansion of fields etc.. Let's see it in full
+-flow.</p>
+-<p>A form is a collection of fields; each field can be either a
+-label(static text) or a data-entry location. The forms also library
+-provides functions to divide forms into multiple pages.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="FORMBASICS" id="FORMBASICS">18.1. The
+-Basics</a></h3>
+-<p>Forms are created in much the same way as menus. First the
+-fields related to the form are created with new_field(). You can
+-set options for the fields, so that they can be displayed with some
+-fancy attributes, validated before the field looses focus etc..
+-Then the fields are attached to form. After this, the form can be
+-posted to display and is ready to receive inputs. On the similar
+-lines to menu_driver(), the form is manipulated with form_driver().
+-We can send requests to form_driver to move focus to a certain
+-field, move cursor to end of the field etc.. After the user enters
+-values in the fields and validation done, form can be unposted and
+-memory allocated can be freed.</p>
+-<p>The general flow of control of a forms program looks like
+-this.</p>
+-<ol type="1">
+-<li>
+-<p>Initialize curses</p>
+-</li>
+-<li>
+-<p>Create fields using new_field(). You can specify the height and
+-width of the field, and its position on the form.</p>
+-</li>
+-<li>
+-<p>Create the forms with new_form() by specifying the fields to be
+-attached with.</p>
+-</li>
+-<li>
+-<p>Post the form with form_post() and refresh the screen.</p>
+-</li>
+-<li>
+-<p>Process the user requests with a loop and do necessary updates
+-to form with form_driver.</p>
+-</li>
+-<li>
+-<p>Unpost the menu with form_unpost()</p>
+-</li>
+-<li>
+-<p>Free the memory allocated to menu by free_form()</p>
+-</li>
+-<li>
+-<p>Free the memory allocated to the items with free_field()</p>
+-</li>
+-<li>
+-<p>End curses</p>
+-</li>
+-</ol>
+-<p>As you can see, working with forms library is much similar to
+-handling menu library. The following examples will explore various
+-aspects of form processing. Let's start the journey with a simple
+-example. first.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="COMPILEFORMS" id="COMPILEFORMS">18.2.
+-Compiling With the Forms Library</a></h3>
+-<p>To use forms library functions, you have to include form.h and
+-to link the program with forms library the flag -lform should be
+-added along with -lncurses in that order.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"> #include &lt;form.h&gt;
++{ move(20, 0);
++ clrtoeol();
++ mvprintw(20, 0, "Item selected is : %s", name);
++} </SPAN
++></PRE
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="FORMS"
++>18. Forms Library</A
++></H2
++><P
++>Well. If you have seen those forms on web pages which take input from users and
++do various kinds of things, you might be wondering how would any one create such
++forms in text mode display. It's quite difficult to write those nifty forms in
++plain ncurses. Forms library tries to provide a basic frame work to build and
++maintain forms with ease. It has lot of features(functions) which manage
++validation, dynamic expansion of fields etc.. Let's see it in full flow.</P
++><P
++>A form is a collection of fields; each field can be either a label(static text)
++or a data-entry location. The forms also library provides functions to divide
++forms into multiple pages. </P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="FORMBASICS"
++>18.1. The Basics</A
++></H3
++><P
++>Forms are created in much the same way as menus. First the fields related to the
++form are created with new_field(). You can set options for the fields, so that
++they can be displayed with some fancy attributes, validated before the field
++looses focus etc.. Then the fields are attached to form. After this, the form
++can be posted to display and is ready to receive inputs. On the similar lines to
++menu_driver(), the form is manipulated with form_driver(). We can send requests
++to form_driver to move focus to a certain field, move cursor to end of the field
++etc.. After the user enters values in the fields and validation done, form can
++be unposted and memory allocated can be freed.</P
++><P
++>The general flow of control of a forms program looks like this.
++
++<P
++></P
++><OL
++TYPE="1"
++><LI
++><P
++>Initialize curses</P
++></LI
++><LI
++><P
++>Create fields using new_field(). You can specify the height and
++width of the field, and its position on the form.</P
++></LI
++><LI
++><P
++>Create the forms with new_form() by specifying the fields to be
++attached with.</P
++></LI
++><LI
++><P
++>Post the form with form_post() and refresh the screen.</P
++></LI
++><LI
++><P
++>Process the user requests with a loop and do necessary updates
++to form with form_driver.</P
++></LI
++><LI
++><P
++>Unpost the menu with form_unpost()</P
++></LI
++><LI
++><P
++>Free the memory allocated to menu by free_form()</P
++></LI
++><LI
++><P
++>Free the memory allocated to the items with free_field()</P
++></LI
++><LI
++><P
++>End curses</P
++></LI
++></OL
++></P
++><P
++>As you can see, working with forms library is much similar to handling menu
++library. The following examples will explore various aspects of form
++processing. Let's start the journey with a simple example. first.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="COMPILEFORMS"
++>18.2. Compiling With the Forms Library</A
++></H3
++><P
++>To use forms library functions, you have to include form.h and to link the
++program with forms library the flag -lform should be added along with -lncurses
++in that order.</P
++><PRE
++CLASS="PROGRAMLISTING"
++> #include &lt;form.h&gt;
+ .
+ .
+ .
+
+- compile and link: gcc &lt;program file&gt; -lform -lncurses</font>
+-</pre></td>
+-</tr>
+-</table>
+-<div class="EXAMPLE"><a name="FFOSI" id="FFOSI"></a>
+-<p><b>Example 25. Forms Basics</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
++ compile and link: gcc &lt;program file&gt; -lform -lncurses</PRE
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="FFOSI"
++></A
++><P
++><B
++>Example 25. Forms Basics </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;form.h&#62;
+
+ int main()
+-{ FIELD *field[3];
+- FORM *my_form;
+- int ch;
+-
+- /* Initialize curses */
+- initscr();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize the fields */
+- field[0] = new_field(1, 10, 4, 18, 0, 0);
+- field[1] = new_field(1, 10, 6, 18, 0, 0);
+- field[2] = NULL;
+-
+- /* Set field options */
+- set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */
+- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+- /* Field is filled up */
+- set_field_back(field[1], A_UNDERLINE);
+- field_opts_off(field[1], O_AUTOSKIP);
+-
+- /* Create the form and post it */
+- my_form = new_form(field);
+- post_form(my_form);
+- refresh();
+-
+- mvprintw(4, 10, "Value 1:");
+- mvprintw(6, 10, "Value 2:");
+- refresh();
+-
+- /* Loop through to get user requests */
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case KEY_DOWN:
+- /* Go to next field */
+- form_driver(my_form, REQ_NEXT_FIELD);
+- /* Go to the end of the present buffer */
+- /* Leaves nicely at the last character */
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- case KEY_UP:
+- /* Go to previous field */
+- form_driver(my_form, REQ_PREV_FIELD);
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- default:
+- /* If this is a normal character, it gets */
+- /* Printed */
+- form_driver(my_form, ch);
+- break;
+- }
+- }
+-
+- /* Un post form and free the memory */
+- unpost_form(my_form);
+- free_form(my_form);
+- free_field(field[0]);
+- free_field(field[1]);
+-
+- endwin();
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Above example is pretty straight forward. It creates two fields
+-with <var class="LITERAL">new_field()</var>. new_field() takes
+-height, width, starty, startx, number of offscreen rows and number
+-of additional working buffers. The fifth argument number of
+-offscreen rows specifies how much of the field to be shown. If it
+-is zero, the entire field is always displayed otherwise the form
+-will be scrollable when the user accesses not displayed parts of
+-the field. The forms library allocates one buffer per field to
+-store the data user enters. Using the last parameter to new_field()
+-we can specify it to allocate some additional buffers. These can be
+-used for any purpose you like.</p>
+-<p>After creating the fields, back ground attribute of both of them
+-is set to an underscore with set_field_back(). The AUTOSKIP option
+-is turned off using field_opts_off(). If this option is turned on,
+-focus will move to the next field in the form once the active field
+-is filled up completely.</p>
+-<p>After attaching the fields to the form, it is posted. Here on,
+-user inputs are processed in the while loop, by making
+-corresponding requests to form_driver. The details of all the
+-requests to the form_driver() are explained later.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PLAYFIELDS" id="PLAYFIELDS">18.3.
+-Playing with Fields</a></h3>
+-<p>Each form field is associated with a lot of attributes. They can
+-be manipulated to get the required effect and to have fun !!!. So
+-why wait?</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="FETCHINFO" id="FETCHINFO">18.3.1.
+-Fetching Size and Location of Field</a></h4>
+-<p>The parameters we have given at the time of creation of a field
+-can be retrieved with field_info(). It returns height, width,
+-starty, startx, number of offscreen rows, and number of additional
+-buffers into the parameters given to it. It is a sort of inverse of
+-new_field().</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int field_info( FIELD *field, /* field from which to fetch */
++{ FIELD *field[3];
++ FORM *my_form;
++ int ch;
++
++ /* Initialize curses */
++ initscr();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize the fields */
++ field[0] = new_field(1, 10, 4, 18, 0, 0);
++ field[1] = new_field(1, 10, 6, 18, 0, 0);
++ field[2] = NULL;
++
++ /* Set field options */
++ set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */
++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
++ /* Field is filled up */
++ set_field_back(field[1], A_UNDERLINE);
++ field_opts_off(field[1], O_AUTOSKIP);
++
++ /* Create the form and post it */
++ my_form = new_form(field);
++ post_form(my_form);
++ refresh();
++
++ mvprintw(4, 10, "Value 1:");
++ mvprintw(6, 10, "Value 2:");
++ refresh();
++
++ /* Loop through to get user requests */
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case KEY_DOWN:
++ /* Go to next field */
++ form_driver(my_form, REQ_NEXT_FIELD);
++ /* Go to the end of the present buffer */
++ /* Leaves nicely at the last character */
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ case KEY_UP:
++ /* Go to previous field */
++ form_driver(my_form, REQ_PREV_FIELD);
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ default:
++ /* If this is a normal character, it gets */
++ /* Printed */
++ form_driver(my_form, ch);
++ break;
++ }
++ }
++
++ /* Un post form and free the memory */
++ unpost_form(my_form);
++ free_form(my_form);
++ free_field(field[0]);
++ free_field(field[1]);
++
++ endwin();
++ return 0;
++}</SPAN
++></PRE
++></DIV
++><P
++>Above example is pretty straight forward. It creates two fields with
++<TT
++CLASS="LITERAL"
++>new_field()</TT
++>. new_field() takes height, width,
++starty, startx, number of offscreen rows and number of additional working
++buffers. The fifth argument number of offscreen rows specifies how much of the
++field to be shown. If it is zero, the entire field is always displayed otherwise
++the form will be scrollable when the user accesses not displayed parts of the
++field. The forms library allocates one buffer per field to store the data user
++enters. Using the last parameter to new_field() we can specify it to allocate
++some additional buffers. These can be used for any purpose you like.</P
++><P
++>After creating the fields, back ground attribute of both of them is set to an
++underscore with set_field_back(). The AUTOSKIP option is turned off using
++field_opts_off(). If this option is turned on, focus will move to the next
++field in the form once the active field is filled up completely.</P
++><P
++>After attaching the fields to the form, it is posted. Here on, user inputs are
++processed in the while loop, by making corresponding requests to form_driver.
++The details of all the requests to the form_driver() are explained later.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PLAYFIELDS"
++>18.3. Playing with Fields</A
++></H3
++><P
++>Each form field is associated with a lot of attributes. They can be manipulated
++to get the required effect and to have fun !!!. So why wait? </P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="FETCHINFO"
++>18.3.1. Fetching Size and Location of Field</A
++></H4
++><P
++>The parameters we have given at the time of creation of a field can be retrieved
++with field_info(). It returns height, width, starty, startx, number of offscreen
++rows, and number of additional buffers into the parameters given to it. It is a
++sort of inverse of new_field().</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int field_info( FIELD *field, /* field from which to fetch */
+ int *height, *int width, /* field size */
+ int *top, int *left, /* upper left corner */
+ int *offscreen, /* number of offscreen rows */
+- int *nbuf); /* number of working buffers */</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="MOVEFIELD" id="MOVEFIELD">18.3.2. Moving
+-the field</a></h4>
+-<p>The location of the field can be moved to a different position
+-with move_field().</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int move_field( FIELD *field, /* field to alter */
+- int top, int left); /* new upper-left corner */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>As usual, the changed position can be queried with
+-field_infor().</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="JUSTIFYFIELD" id="JUSTIFYFIELD">18.3.3.
+-Field Justification</a></h4>
+-<p>The justification to be done for the field can be fixed using
+-the function set_field_just().</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> int set_field_just(FIELD *field, /* field to alter */
++ int *nbuf); /* number of working buffers */</PRE
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="MOVEFIELD"
++>18.3.2. Moving the field</A
++></H4
++><P
++>The location of the field can be moved to a different position with
++move_field().</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int move_field( FIELD *field, /* field to alter */
++ int top, int left); /* new upper-left corner */</PRE
++><P
++>As usual, the changed position can be queried with field_infor().</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="JUSTIFYFIELD"
++>18.3.3. Field Justification</A
++></H4
++><P
++>The justification to be done for the field can be fixed using the function
++set_field_just().</P
++><PRE
++CLASS="PROGRAMLISTING"
++> int set_field_just(FIELD *field, /* field to alter */
+ int justmode); /* mode to set */
+- int field_just(FIELD *field); /* fetch justify mode of field */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The justification mode valued accepted and returned by these
+-functions are NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
+-JUSTIFY_CENTER.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="FIELDDISPATTRIB" id=
+-"FIELDDISPATTRIB">18.3.4. Field Display Attributes</a></h4>
+-<p>As you have seen, in the above example, display attribute for
+-the fields can be set with set_field_fore() and setfield_back().
+-These functions set foreground and background attribute of the
+-fields. You can also specify a pad character which will be filled
+-in the unfilled portion of the field. The pad character is set with
+-a call to set_field_pad(). Default pad value is a space. The
+-functions field_fore(), field_back, field_pad() can be used to
+-query the present foreground, background attributes and pad
+-character for the field. The following list gives the usage of
+-functions.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">&#13;int set_field_fore(FIELD *field, /* field to alter */
++ int field_just(FIELD *field); /* fetch justify mode of field */</PRE
++><P
++>The justification mode valued accepted and returned by these functions are
++NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="FIELDDISPATTRIB"
++>18.3.4. Field Display Attributes</A
++></H4
++><P
++>As you have seen, in the above example, display attribute for the fields can be
++set with set_field_fore() and setfield_back(). These functions set foreground
++and background attribute of the fields. You can also specify a pad character
++which will be filled in the unfilled portion of the field. The pad character is
++set with a call to set_field_pad(). Default pad value is a space. The functions
++field_fore(), field_back, field_pad() can be used to query the present
++foreground, background attributes and pad character for the field. The following
++list gives the usage of functions.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>&#13;int set_field_fore(FIELD *field, /* field to alter */
+ chtype attr); /* attribute to set */
+
+ chtype field_fore(FIELD *field); /* field to query */
+@@ -4952,124 +6591,127 @@
+ int pad); /* pad character to set */
+
+ chtype field_pad(FIELD *field); /* field to query */
+- /* returns present pad character */&#13;</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Though above functions seem quite simple, using colors with
+-set_field_fore() may be frustrating in the beginning. Let me first
+-explain about foreground and background attributes of a field. The
+-foreground attribute is associated with the character. That means a
+-character in the field is printed with the attribute you have set
+-with set_field_fore(). Background attribute is the attribute used
+-to fill background of field, whether any character is there or not.
+-So what about colors? Since colors are always defined in pairs,
+-what is the right way to display colored fields? Here's an example
+-clarifying color attributes.</p>
+-<div class="EXAMPLE"><a name="FFOAT" id="FFOAT"></a>
+-<p><b>Example 26. Form Attributes example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
++ /* returns present pad character */&#13;</PRE
++><P
++>Though above functions seem quite simple, using colors with set_field_fore() may
++be frustrating in the beginning. Let me first explain about foreground and
++background attributes of a field. The foreground attribute is associated with
++the character. That means a character in the field is printed with the attribute
++you have set with set_field_fore(). Background attribute is the attribute used
++to fill background of field, whether any character is there or not. So what
++about colors? Since colors are always defined in pairs, what is the right way to
++display colored fields? Here's an example clarifying color attributes.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="FFOAT"
++></A
++><P
++><B
++>Example 26. Form Attributes example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;form.h&#62;
+
+ int main()
+-{ FIELD *field[3];
+- FORM *my_form;
+- int ch;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize few color pairs */
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- init_pair(2, COLOR_WHITE, COLOR_BLUE);
+-
+- /* Initialize the fields */
+- field[0] = new_field(1, 10, 4, 18, 0, 0);
+- field[1] = new_field(1, 10, 6, 18, 0, 0);
+- field[2] = NULL;
+-
+- /* Set field options */
+- set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */
+- set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */
+- /* are printed in white */
+- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+- /* Field is filled up */
+- set_field_back(field[1], A_UNDERLINE);
+- field_opts_off(field[1], O_AUTOSKIP);
+-
+- /* Create the form and post it */
+- my_form = new_form(field);
+- post_form(my_form);
+- refresh();
+-
+- set_current_field(my_form, field[0]); /* Set focus to the colored field */
+- mvprintw(4, 10, "Value 1:");
+- mvprintw(6, 10, "Value 2:");
+- mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
+- refresh();
+-
+- /* Loop through to get user requests */
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case KEY_DOWN:
+- /* Go to next field */
+- form_driver(my_form, REQ_NEXT_FIELD);
+- /* Go to the end of the present buffer */
+- /* Leaves nicely at the last character */
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- case KEY_UP:
+- /* Go to previous field */
+- form_driver(my_form, REQ_PREV_FIELD);
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- default:
+- /* If this is a normal character, it gets */
+- /* Printed */
+- form_driver(my_form, ch);
+- break;
+- }
+- }
+-
+- /* Un post form and free the memory */
+- unpost_form(my_form);
+- free_form(my_form);
+- free_field(field[0]);
+- free_field(field[1]);
+-
+- endwin();
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>Play with the color pairs and try to understand the foreground
+-and background attributes. In my programs using color attributes, I
+-usually set only the background with set_field_back(). Curses
+-simply doesn't allow defining individual color attributes.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="FIELDOPTIONBITS" id=
+-"FIELDOPTIONBITS">18.3.5. Field Option Bits</a></h4>
+-<p>There is also a large collection of field option bits you can
+-set to control various aspects of forms processing. You can
+-manipulate them with these functions:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_opts(FIELD *field, /* field to alter */
++{ FIELD *field[3];
++ FORM *my_form;
++ int ch;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize few color pairs */
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ init_pair(2, COLOR_WHITE, COLOR_BLUE);
++
++ /* Initialize the fields */
++ field[0] = new_field(1, 10, 4, 18, 0, 0);
++ field[1] = new_field(1, 10, 6, 18, 0, 0);
++ field[2] = NULL;
++
++ /* Set field options */
++ set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */
++ set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */
++ /* are printed in white */
++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
++ /* Field is filled up */
++ set_field_back(field[1], A_UNDERLINE);
++ field_opts_off(field[1], O_AUTOSKIP);
++
++ /* Create the form and post it */
++ my_form = new_form(field);
++ post_form(my_form);
++ refresh();
++
++ set_current_field(my_form, field[0]); /* Set focus to the colored field */
++ mvprintw(4, 10, "Value 1:");
++ mvprintw(6, 10, "Value 2:");
++ mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
++ refresh();
++
++ /* Loop through to get user requests */
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case KEY_DOWN:
++ /* Go to next field */
++ form_driver(my_form, REQ_NEXT_FIELD);
++ /* Go to the end of the present buffer */
++ /* Leaves nicely at the last character */
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ case KEY_UP:
++ /* Go to previous field */
++ form_driver(my_form, REQ_PREV_FIELD);
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ default:
++ /* If this is a normal character, it gets */
++ /* Printed */
++ form_driver(my_form, ch);
++ break;
++ }
++ }
++
++ /* Un post form and free the memory */
++ unpost_form(my_form);
++ free_form(my_form);
++ free_field(field[0]);
++ free_field(field[1]);
++
++ endwin();
++ return 0;
++}</SPAN
++></PRE
++></DIV
++><P
++>Play with the color pairs and try to understand the foreground and background
++attributes. In my programs using color attributes, I usually set only the
++background with set_field_back(). Curses simply doesn't allow defining
++individual color attributes. </P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="FIELDOPTIONBITS"
++>18.3.5. Field Option Bits</A
++></H4
++><P
++>There is also a large collection of field option bits you can set to control
++various aspects of forms processing. You can manipulate them with these
++functions:</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_opts(FIELD *field, /* field to alter */
+ int attr); /* attribute to set */
+
+ int field_opts_on(FIELD *field, /* field to alter */
+@@ -5078,108 +6720,134 @@
+ int field_opts_off(FIELD *field, /* field to alter */
+ int attr); /* attributes to turn off */
+
+-int field_opts(FIELD *field); /* field to query */ </font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The function set_field_opts() can be used to directly set
+-attributes of a field or you can choose to switch a few attributes
+-on and off with field_opts_on() and field_opts_off() selectively.
+-Anytime you can query the attributes of a field with field_opts().
+-The following is the list of available options. By default, all
+-options are on.</p>
+-<div class="VARIABLELIST">
+-<dl>
+-<dt>O_VISIBLE</dt>
+-<dd>
+-<p>Controls whether the field is visible on the screen. Can be used
+-during form processing to hide or pop up fields depending on the
+-value of parent fields.</p>
+-</dd>
+-<dt>O_ACTIVE</dt>
+-<dd>
+-<p>Controls whether the field is active during forms processing
+-(i.e. visited by form navigation keys). Can be used to make labels
+-or derived fields with buffer values alterable by the forms
+-application, not the user.</p>
+-</dd>
+-<dt>O_PUBLIC</dt>
+-<dd>
+-<p>Controls whether data is displayed during field entry. If this
+-option is turned off on a field, the library will accept and edit
+-data in that field, but it will not be displayed and the visible
+-field cursor will not move. You can turn off the O_PUBLIC bit to
+-define password fields.</p>
+-</dd>
+-<dt>O_EDIT</dt>
+-<dd>
+-<p>Controls whether the field's data can be modified. When this
+-option is off, all editing requests except <var class=
+-"LITERAL">REQ_PREV_CHOICE</var> and <var class=
+-"LITERAL">REQ_NEXT_CHOICE</var>will fail. Such read-only fields may
+-be useful for help messages.</p>
+-</dd>
+-<dt>O_WRAP</dt>
+-<dd>
+-<p>Controls word-wrapping in multi-line fields. Normally, when any
+-character of a (blank-separated) word reaches the end of the
+-current line, the entire word is wrapped to the next line (assuming
+-there is one). When this option is off, the word will be split
+-across the line break.</p>
+-</dd>
+-<dt>O_BLANK</dt>
+-<dd>
+-<p>Controls field blanking. When this option is on, entering a
+-character at the first field position erases the entire field
+-(except for the just-entered character).</p>
+-</dd>
+-<dt>O_AUTOSKIP</dt>
+-<dd>
+-<p>Controls automatic skip to next field when this one fills.
+-Normally, when the forms user tries to type more data into a field
+-than will fit, the editing location jumps to next field. When this
+-option is off, the user's cursor will hang at the end of the field.
+-This option is ignored in dynamic fields that have not reached
+-their size limit.</p>
+-</dd>
+-<dt>O_NULLOK</dt>
+-<dd>
+-<p>Controls whether validation is applied to blank fields.
+-Normally, it is not; the user can leave a field blank without
+-invoking the usual validation check on exit. If this option is off
+-on a field, exit from it will invoke a validation check.</p>
+-</dd>
+-<dt>O_PASSOK</dt>
+-<dd>
+-<p>Controls whether validation occurs on every exit, or only after
+-the field is modified. Normally the latter is true. Setting
+-O_PASSOK may be useful if your field's validation function may
+-change during forms processing.</p>
+-</dd>
+-<dt>O_STATIC</dt>
+-<dd>
+-<p>Controls whether the field is fixed to its initial dimensions.
+-If you turn this off, the field becomes dynamic and will stretch to
+-fit entered data.</p>
+-</dd>
+-</dl>
+-</div>
+-<p>A field's options cannot be changed while the field is currently
+-selected. However, options may be changed on posted fields that are
+-not current.</p>
+-<p>The option values are bit-masks and can be composed with
+-logical-or in the obvious way. You have seen the usage of switching
+-off O_AUTOSKIP option. The following example clarifies usage of
+-some more options. Other options are explained where
+-appropriate.</p>
+-<div class="EXAMPLE"><a name="FFOOP" id="FFOOP"></a>
+-<p><b>Example 27. Field Options Usage example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
++int field_opts(FIELD *field); /* field to query */ </PRE
++><P
++>The function set_field_opts() can be used to directly set attributes of a field
++or you can choose to switch a few attributes on and off with field_opts_on() and
++field_opts_off() selectively. Anytime you can query the attributes of a field
++with field_opts(). The following is the list of available options. By default,
++all options are on.</P
++><P
++></P
++><DIV
++CLASS="VARIABLELIST"
++><DL
++><DT
++>O_VISIBLE</DT
++><DD
++><P
++>Controls whether the field is visible on the screen. Can be used
++during form processing to hide or pop up fields depending on the value
++of parent fields.</P
++></DD
++><DT
++>O_ACTIVE</DT
++><DD
++><P
++>Controls whether the field is active during forms processing (i.e.
++visited by form navigation keys). Can be used to make labels or derived
++fields with buffer values alterable by the forms application, not the user.</P
++></DD
++><DT
++>O_PUBLIC</DT
++><DD
++><P
++>Controls whether data is displayed during field entry. If this option is
++turned off on a field, the library will accept and edit data in that field,
++but it will not be displayed and the visible field cursor will not move.
++You can turn off the O_PUBLIC bit to define password fields.</P
++></DD
++><DT
++>O_EDIT</DT
++><DD
++><P
++>Controls whether the field's data can be modified. When this option is
++off, all editing requests except <TT
++CLASS="LITERAL"
++>REQ_PREV_CHOICE</TT
++> and <TT
++CLASS="LITERAL"
++>REQ_NEXT_CHOICE</TT
++>will
++fail. Such read-only fields may be useful for help messages.</P
++></DD
++><DT
++>O_WRAP</DT
++><DD
++><P
++>Controls word-wrapping in multi-line fields. Normally, when any
++character of a (blank-separated) word reaches the end of the current line, the
++entire word is wrapped to the next line (assuming there is one). When this
++option is off, the word will be split across the line break.</P
++></DD
++><DT
++>O_BLANK</DT
++><DD
++><P
++>Controls field blanking. When this option is on, entering a character at
++the first field position erases the entire field (except for the just-entered
++character).</P
++></DD
++><DT
++>O_AUTOSKIP</DT
++><DD
++><P
++>Controls automatic skip to next field when this one fills. Normally,
++when the forms user tries to type more data into a field than will fit,
++the editing location jumps to next field. When this option is off, the
++user's cursor will hang at the end of the field. This option is ignored
++in dynamic fields that have not reached their size limit.</P
++></DD
++><DT
++>O_NULLOK</DT
++><DD
++><P
++>Controls whether validation is applied to
++blank fields. Normally, it is not; the user can leave a field blank
++without invoking the usual validation check on exit. If this option is
++off on a field, exit from it will invoke a validation check.</P
++></DD
++><DT
++>O_PASSOK</DT
++><DD
++><P
++>Controls whether validation occurs on every exit, or only after
++the field is modified. Normally the latter is true. Setting O_PASSOK
++may be useful if your field's validation function may change during
++forms processing.</P
++></DD
++><DT
++>O_STATIC</DT
++><DD
++><P
++>Controls whether the field is fixed to its initial dimensions. If you
++turn this off, the field becomes dynamic and will
++stretch to fit entered data.</P
++></DD
++></DL
++></DIV
++><P
++>A field's options cannot be changed while the field is currently selected.
++However, options may be changed on posted fields that are not current. </P
++><P
++>The option values are bit-masks and can be composed with logical-or in
++the obvious way. You have seen the usage of switching off O_AUTOSKIP option.
++The following example clarifies usage of some more options. Other options
++are explained where appropriate.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="FFOOP"
++></A
++><P
++><B
++>Example 27. Field Options Usage example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;form.h&#62;
+
+ #define STARTX 15
+ #define STARTY 4
+@@ -5188,975 +6856,1476 @@
+ #define N_FIELDS 3
+
+ int main()
+-{ FIELD *field[N_FIELDS];
+- FORM *my_form;
+- int ch, i;
+-
+- /* Initialize curses */
+- initscr();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize the fields */
+- for(i = 0; i &lt; N_FIELDS - 1; ++i)
+- field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0);
+- field[N_FIELDS - 1] = NULL;
+-
+- /* Set field options */
+- set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */
+-
+- field_opts_off(field[0], O_ACTIVE); /* This field is a static label */
+- field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/
+- field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */
+- /* after last character is entered */
+-
+- /* Create the form and post it */
+- my_form = new_form(field);
+- post_form(my_form);
+- refresh();
+-
+- set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */
+- set_field_buffer(field[0], 0, "This is a static Field");
+- /* Initialize the field */
+- mvprintw(STARTY, STARTX - 10, "Field 1:");
+- mvprintw(STARTY + 2, STARTX - 10, "Field 2:");
+- refresh();
+-
+- /* Loop through to get user requests */
+- while((ch = getch()) != KEY_F(1))
+- { switch(ch)
+- { case KEY_DOWN:
+- /* Go to next field */
+- form_driver(my_form, REQ_NEXT_FIELD);
+- /* Go to the end of the present buffer */
+- /* Leaves nicely at the last character */
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- case KEY_UP:
+- /* Go to previous field */
+- form_driver(my_form, REQ_PREV_FIELD);
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- default:
+- /* If this is a normal character, it gets */
+- /* Printed */
+- form_driver(my_form, ch);
+- break;
+- }
+- }
+-
+- /* Un post form and free the memory */
+- unpost_form(my_form);
+- free_form(my_form);
+- free_field(field[0]);
+- free_field(field[1]);
+-
+- endwin();
+- return 0;
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<p>This example, though useless, shows the usage of options. If
+-used properly, they can present information very effectively in a
+-form. The second field being not O_PUBLIC, does not show the
+-characters you are typing.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="FIELDSTATUS" id="FIELDSTATUS">18.3.6.
+-Field Status</a></h4>
+-<p>The field status specifies whether the field has got edited or
+-not. It is initially set to FALSE and when user enters something
+-and the data buffer gets modified it becomes TRUE. So a field's
+-status can be queried to find out whether it has been modified or
+-not. The following functions can assist in those operations.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_status(FIELD *field, /* field to alter */
++{ FIELD *field[N_FIELDS];
++ FORM *my_form;
++ int ch, i;
++
++ /* Initialize curses */
++ initscr();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize the fields */
++ for(i = 0; i &#60; N_FIELDS - 1; ++i)
++ field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0);
++ field[N_FIELDS - 1] = NULL;
++
++ /* Set field options */
++ set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */
++
++ field_opts_off(field[0], O_ACTIVE); /* This field is a static label */
++ field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/
++ field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */
++ /* after last character is entered */
++
++ /* Create the form and post it */
++ my_form = new_form(field);
++ post_form(my_form);
++ refresh();
++
++ set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */
++ set_field_buffer(field[0], 0, "This is a static Field");
++ /* Initialize the field */
++ mvprintw(STARTY, STARTX - 10, "Field 1:");
++ mvprintw(STARTY + 2, STARTX - 10, "Field 2:");
++ refresh();
++
++ /* Loop through to get user requests */
++ while((ch = getch()) != KEY_F(1))
++ { switch(ch)
++ { case KEY_DOWN:
++ /* Go to next field */
++ form_driver(my_form, REQ_NEXT_FIELD);
++ /* Go to the end of the present buffer */
++ /* Leaves nicely at the last character */
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ case KEY_UP:
++ /* Go to previous field */
++ form_driver(my_form, REQ_PREV_FIELD);
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ default:
++ /* If this is a normal character, it gets */
++ /* Printed */
++ form_driver(my_form, ch);
++ break;
++ }
++ }
++
++ /* Un post form and free the memory */
++ unpost_form(my_form);
++ free_form(my_form);
++ free_field(field[0]);
++ free_field(field[1]);
++
++ endwin();
++ return 0;
++}</SPAN
++></PRE
++></DIV
++><P
++>This example, though useless, shows the usage of options. If used properly, they
++can present information very effectively in a form. The second field being not
++O_PUBLIC, does not show the characters you are typing.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="FIELDSTATUS"
++>18.3.6. Field Status</A
++></H4
++><P
++>The field status specifies whether the field has got edited or not. It is
++initially set to FALSE and when user enters something and the data buffer gets
++modified it becomes TRUE. So a field's status can be queried to find out whether
++it has been modified or not. The following functions can assist in those
++operations.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_status(FIELD *field, /* field to alter */
+ int status); /* status to set */
+
+-int field_status(FIELD *field); /* fetch status of field */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>It's better to check the field's status only after after leaving
+-the field, as data buffer might not have been updated yet as the
+-validation is still due. To guarantee that right status is
+-returned, call field_status() either (1) in the field's exit
+-validation check routine, (2) from the field's or form's
+-initialization or termination hooks, or (3) just after a
+-REQ_VALIDATION request has been processed by the forms driver</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="FIELDUSERPTR" id="FIELDUSERPTR">18.3.7.
+-Field User Pointer</a></h4>
+-<p>Every field structure contains one pointer that can be used by
+-the user for various purposes. It is not touched by forms library
+-and can be used for any purpose by the user. The following
+-functions set and fetch user pointer.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">int set_field_userptr(FIELD *field,
++int field_status(FIELD *field); /* fetch status of field */</PRE
++><P
++>It's better to check the field's status only after after leaving the field, as
++data buffer might not have been updated yet as the validation is still due. To
++guarantee that right status is returned, call field_status() either (1) in the
++field's exit validation check routine, (2) from the field's or form's
++initialization or termination hooks, or (3) just after a REQ_VALIDATION request
++has been processed by the forms driver</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="FIELDUSERPTR"
++>18.3.7. Field User Pointer</A
++></H4
++><P
++>Every field structure contains one pointer that can be used by the user for
++various purposes. It is not touched by forms library and can be used for any
++purpose by the user. The following functions set and fetch user pointer.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_userptr(FIELD *field,
+ char *userptr); /* the user pointer you wish to associate */
+ /* with the field */
+
+-char *field_userptr(FIELD *field); /* fetch user pointer of the field */</font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="VARIABLESIZEFIELDS" id=
+-"VARIABLESIZEFIELDS">18.3.8. Variable-Sized Fields</a></h4>
+-<p>If you want a dynamically changing field with variable width,
+-this is the feature you want to put to full use. This will allow
+-the user to enter more data than the original size of the field and
+-let the field grow. According to the field orientation it will
+-scroll horizontally or vertically to incorporate the new data.</p>
+-<p>To make a field dynamically growable, the option O_STATIC should
+-be turned off. This can be done with a</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"> field_opts_off(field_pointer, O_STATIC);</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>But it's usually not advisable to allow a field to grow
+-infinitely. You can set a maximum limit to the growth of the field
+-with</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_max_field(FIELD *field, /* Field on which to operate */
+- int max_growth); /* maximum growth allowed for the field */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The field info for a dynamically growable field can be retrieved
+-by</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int dynamic_field_info( FIELD *field, /* Field on which to operate */
++char *field_userptr(FIELD *field); /* fetch user pointer of the field */</PRE
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="VARIABLESIZEFIELDS"
++>18.3.8. Variable-Sized Fields</A
++></H4
++><P
++>If you want a dynamically changing field with variable width, this is the
++feature you want to put to full use. This will allow the user to enter more data
++than the original size of the field and let the field grow. According to the
++field orientation it will scroll horizontally or vertically to incorporate the
++new data.</P
++><P
++>To make a field dynamically growable, the option O_STATIC should be turned off.
++This can be done with a
++<PRE
++CLASS="PROGRAMLISTING"
++> field_opts_off(field_pointer, O_STATIC);</PRE
++></P
++><P
++>But it's usually not advisable to allow a field to grow infinitely. You can set
++a maximum limit to the growth of the field with
++<PRE
++CLASS="PROGRAMLISTING"
++>int set_max_field(FIELD *field, /* Field on which to operate */
++ int max_growth); /* maximum growth allowed for the field */</PRE
++></P
++><P
++>The field info for a dynamically growable field can be retrieved by
++<PRE
++CLASS="PROGRAMLISTING"
++>int dynamic_field_info( FIELD *field, /* Field on which to operate */
+ int *prows, /* number of rows will be filled in this */
+ int *pcols, /* number of columns will be filled in this*/
+ int *pmax) /* maximum allowable growth will be filled */
+- /* in this */</font>
+-</pre></td>
+-</tr>
+-</table>
+-Though field_info work as usual, it is advisable to use this
+-function to get the proper attributes of a dynamically growable
+-field.
+-<p>Recall the library routine new_field; a new field created with
+-height set to one will be defined to be a one line field. A new
+-field created with height greater than one will be defined to be a
+-multi line field.</p>
+-<p>A one line field with O_STATIC turned off (dynamically growable
+-field) will contain a single fixed row, but the number of columns
+-can increase if the user enters more data than the initial field
+-will hold. The number of columns displayed will remain fixed and
+-the additional data will scroll horizontally.</p>
+-<p>A multi line field with O_STATIC turned off (dynamically
+-growable field) will contain a fixed number of columns, but the
+-number of rows can increase if the user enters more data than the
+-initial field will hold. The number of rows displayed will remain
+-fixed and the additional data will scroll vertically.</p>
+-<p>The above two paragraphs pretty much describe a dynamically
+-growable field's behavior. The way other parts of forms library
+-behaves is described below:</p>
+-<ol type="1">
+-<li>
+-<p>The field option O_AUTOSKIP will be ignored if the option
+-O_STATIC is off and there is no maximum growth specified for the
+-field. Currently, O_AUTOSKIP generates an automatic REQ_NEXT_FIELD
+-form driver request when the user types in the last character
+-position of a field. On a growable field with no maximum growth
+-specified, there is no last character position. If a maximum growth
+-is specified, the O_AUTOSKIP option will work as normal if the
+-field has grown to its maximum size.</p>
+-</li>
+-<li>
+-<p>The field justification will be ignored if the option O_STATIC
+-is off. Currently, set_field_just can be used to JUSTIFY_LEFT,
+-JUSTIFY_RIGHT, JUSTIFY_CENTER the contents of a one line field. A
+-growable one line field will, by definition, grow and scroll
+-horizontally and may contain more data than can be justified. The
+-return from field_just will be unchanged.</p>
+-</li>
+-<li>
+-<p>The overloaded form driver request REQ_NEW_LINE will operate the
+-same way regardless of the O_NL_OVERLOAD form option if the field
+-option O_STATIC is off and there is no maximum growth specified for
+-the field. Currently, if the form option O_NL_OVERLOAD is on,
+-REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD if called from
+-the last line of a field. If a field can grow without bound, there
+-is no last line, so REQ_NEW_LINE will never implicitly generate a
+-REQ_NEXT_FIELD. If a maximum growth limit is specified and the
+-O_NL_OVERLOAD form option is on, REQ_NEW_LINE will only implicitly
+-generate REQ_NEXT_FIELD if the field has grown to its maximum size
+-and the user is on the last line.</p>
+-</li>
+-<li>
+-<p>The library call dup_field will work as usual; it will duplicate
+-the field, including the current buffer size and contents of the
+-field being duplicated. Any specified maximum growth will also be
+-duplicated.</p>
+-</li>
+-<li>
+-<p>The library call link_field will work as usual; it will
+-duplicate all field attributes and share buffers with the field
+-being linked. If the O_STATIC field option is subsequently changed
+-by a field sharing buffers, how the system reacts to an attempt to
+-enter more data into the field than the buffer will currently hold
+-will depend on the setting of the option in the current field.</p>
+-</li>
+-<li>
+-<p>The library call field_info will work as usual; the variable
+-nrow will contain the value of the original call to new_field. The
+-user should use dynamic_field_info, described above, to query the
+-current size of the buffer.</p>
+-</li>
+-</ol>
+-<p>Some of the above points make sense only after explaining form
+-driver. We will be looking into that in next few sections.</p>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="FORMWINDOWS" id="FORMWINDOWS">18.4. Form
+-Windows</a></h3>
+-<p>The form windows concept is pretty much similar to menu windows.
+-Every form is associated with a main window and a sub window. The
+-form main window displays any title or border associated or
+-whatever the user wishes. Then the sub window contains all the
+-fields and displays them according to their position. This gives
+-the flexibility of manipulating fancy form displaying very
+-easily.</p>
+-<p>Since this is pretty much similar to menu windows, I am
+-providing an example with out much explanation. The functions are
+-similar and they work the same way.</p>
+-<div class="EXAMPLE"><a name="FFOWI" id="FFOWI"></a>
+-<p><b>Example 28. Form Windows Example</b></p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000"><span class=
+-"INLINEMEDIAOBJECT">#include &lt;form.h&gt;
++ /* in this */</PRE
++>
++Though field_info work as usual, it is advisable to use this function to get the
++proper attributes of a dynamically growable field.</P
++><P
++>Recall the library routine new_field; a new field created with height set to one
++will be defined to be a one line field. A new field created with height greater
++than one will be defined to be a multi line field. </P
++><P
++>A one line field with O_STATIC turned off (dynamically growable field) will
++contain a single fixed row, but the number of columns can increase if the user
++enters more data than the initial field will hold. The number of columns
++displayed will remain fixed and the additional data will scroll horizontally. </P
++><P
++>A multi line field with O_STATIC turned off (dynamically growable field) will
++contain a fixed number of columns, but the number of rows can increase if the
++user enters more data than the initial field will hold. The number of rows
++displayed will remain fixed and the additional data will scroll vertically.</P
++><P
++>The above two paragraphs pretty much describe a dynamically growable field's
++behavior. The way other parts of forms library behaves is described below:</P
++><P
++></P
++><OL
++TYPE="1"
++><LI
++><P
++>The field option O_AUTOSKIP will be ignored if the option O_STATIC is off and
++there is no maximum growth specified for the field. Currently, O_AUTOSKIP
++generates an automatic REQ_NEXT_FIELD form driver request when the user types in
++the last character position of a field. On a growable field with no maximum
++growth specified, there is no last character position. If a maximum growth is
++specified, the O_AUTOSKIP option will work as normal if the field has grown to
++its maximum size. </P
++></LI
++><LI
++><P
++>The field justification will be ignored if the option O_STATIC is off.
++Currently, set_field_just can be used to JUSTIFY_LEFT, JUSTIFY_RIGHT,
++JUSTIFY_CENTER the contents of a one line field. A growable one line field will,
++by definition, grow and scroll horizontally and may contain more data than can
++be justified. The return from field_just will be unchanged. </P
++></LI
++><LI
++><P
++>The overloaded form driver request REQ_NEW_LINE will operate the same way
++regardless of the O_NL_OVERLOAD form option if the field option O_STATIC is off
++and there is no maximum growth specified for the field. Currently, if the form
++option O_NL_OVERLOAD is on, REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD
++if called from the last line of a field. If a field can grow without bound,
++there is no last line, so REQ_NEW_LINE will never implicitly generate a
++REQ_NEXT_FIELD. If a maximum growth limit is specified and the O_NL_OVERLOAD
++form option is on, REQ_NEW_LINE will only implicitly generate REQ_NEXT_FIELD if
++the field has grown to its maximum size and the user is on the last line. </P
++></LI
++><LI
++><P
++>The library call dup_field will work as usual; it will duplicate the field,
++including the current buffer size and contents of the field being duplicated.
++Any specified maximum growth will also be duplicated. </P
++></LI
++><LI
++><P
++>The library call link_field will work as usual; it will duplicate all field
++attributes and share buffers with the field being linked. If the O_STATIC field
++option is subsequently changed by a field sharing buffers, how the system reacts
++to an attempt to enter more data into the field than the buffer will currently
++hold will depend on the setting of the option in the current field. </P
++></LI
++><LI
++><P
++>The library call field_info will work as usual; the variable nrow will contain
++the value of the original call to new_field. The user should use
++dynamic_field_info, described above, to query the current size of the buffer.</P
++></LI
++></OL
++><P
++>Some of the above points make sense only after explaining form driver. We will
++be looking into that in next few sections.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="FORMWINDOWS"
++>18.4. Form Windows</A
++></H3
++><P
++>The form windows concept is pretty much similar to menu windows. Every form is
++associated with a main window and a sub window. The form main window displays
++any title or border associated or whatever the user wishes. Then the sub window
++contains all the fields and displays them according to their position. This
++gives the flexibility of manipulating fancy form displaying very easily. </P
++><P
++>Since this is pretty much similar to menu windows, I am providing an example
++with out much explanation. The functions are similar and they work the same way.</P
++><DIV
++CLASS="EXAMPLE"
++><A
++NAME="FFOWI"
++></A
++><P
++><B
++>Example 28. Form Windows Example </B
++></P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="INLINEMEDIAOBJECT"
++>#include &#60;form.h&#62;
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+ int main()
+ {
+- FIELD *field[3];
+- FORM *my_form;
+- WINDOW *my_form_win;
+- int ch, rows, cols;
+-
+- /* Initialize curses */
+- initscr();
+- start_color();
+- cbreak();
+- noecho();
+- keypad(stdscr, TRUE);
+-
+- /* Initialize few color pairs */
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+-
+- /* Initialize the fields */
+- field[0] = new_field(1, 10, 6, 1, 0, 0);
+- field[1] = new_field(1, 10, 8, 1, 0, 0);
+- field[2] = NULL;
+-
+- /* Set field options */
+- set_field_back(field[0], A_UNDERLINE);
+- field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+- /* Field is filled up */
+- set_field_back(field[1], A_UNDERLINE);
+- field_opts_off(field[1], O_AUTOSKIP);
+-
+- /* Create the form and post it */
+- my_form = new_form(field);
+-
+- /* Calculate the area required for the form */
+- scale_form(my_form, &amp;rows, &amp;cols);
++ FIELD *field[3];
++ FORM *my_form;
++ WINDOW *my_form_win;
++ int ch, rows, cols;
++
++ /* Initialize curses */
++ initscr();
++ start_color();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize few color pairs */
++ init_pair(1, COLOR_RED, COLOR_BLACK);
++
++ /* Initialize the fields */
++ field[0] = new_field(1, 10, 6, 1, 0, 0);
++ field[1] = new_field(1, 10, 8, 1, 0, 0);
++ field[2] = NULL;
++
++ /* Set field options */
++ set_field_back(field[0], A_UNDERLINE);
++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
++ /* Field is filled up */
++ set_field_back(field[1], A_UNDERLINE);
++ field_opts_off(field[1], O_AUTOSKIP);
++
++ /* Create the form and post it */
++ my_form = new_form(field);
++
++ /* Calculate the area required for the form */
++ scale_form(my_form, &#38;rows, &#38;cols);
+
+- /* Create the window to be associated with the form */
++ /* Create the window to be associated with the form */
+ my_form_win = newwin(rows + 4, cols + 4, 4, 4);
+ keypad(my_form_win, TRUE);
+
+- /* Set main window and sub window */
++ /* Set main window and sub window */
+ set_form_win(my_form, my_form_win);
+ set_form_sub(my_form, derwin(my_form_win, rows, cols, 2, 2));
+
+- /* Print a border around the main window and print a title */
++ /* Print a border around the main window and print a title */
+ box(my_form_win, 0, 0);
+- print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1));
+-
+- post_form(my_form);
+- wrefresh(my_form_win);
+-
+- mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
+- refresh();
++ print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1));
++
++ post_form(my_form);
++ wrefresh(my_form_win);
++
++ mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
++ refresh();
++
++ /* Loop through to get user requests */
++ while((ch = wgetch(my_form_win)) != KEY_F(1))
++ { switch(ch)
++ { case KEY_DOWN:
++ /* Go to next field */
++ form_driver(my_form, REQ_NEXT_FIELD);
++ /* Go to the end of the present buffer */
++ /* Leaves nicely at the last character */
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ case KEY_UP:
++ /* Go to previous field */
++ form_driver(my_form, REQ_PREV_FIELD);
++ form_driver(my_form, REQ_END_LINE);
++ break;
++ default:
++ /* If this is a normal character, it gets */
++ /* Printed */
++ form_driver(my_form, ch);
++ break;
++ }
++ }
++
++ /* Un post form and free the memory */
++ unpost_form(my_form);
++ free_form(my_form);
++ free_field(field[0]);
++ free_field(field[1]);
+
+- /* Loop through to get user requests */
+- while((ch = wgetch(my_form_win)) != KEY_F(1))
+- { switch(ch)
+- { case KEY_DOWN:
+- /* Go to next field */
+- form_driver(my_form, REQ_NEXT_FIELD);
+- /* Go to the end of the present buffer */
+- /* Leaves nicely at the last character */
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- case KEY_UP:
+- /* Go to previous field */
+- form_driver(my_form, REQ_PREV_FIELD);
+- form_driver(my_form, REQ_END_LINE);
+- break;
+- default:
+- /* If this is a normal character, it gets */
+- /* Printed */
+- form_driver(my_form, ch);
+- break;
+- }
+- }
+-
+- /* Un post form and free the memory */
+- unpost_form(my_form);
+- free_form(my_form);
+- free_field(field[0]);
+- free_field(field[1]);
+-
+- endwin();
+- return 0;
++ endwin();
++ return 0;
+ }
+
+ void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+-{ int length, x, y;
+- float temp;
++{ int length, x, y;
++ float temp;
+
+- if(win == NULL)
+- win = stdscr;
+- getyx(win, y, x);
+- if(startx != 0)
+- x = startx;
+- if(starty != 0)
+- y = starty;
+- if(width == 0)
+- width = 80;
+-
+- length = strlen(string);
+- temp = (width - length)/ 2;
+- x = startx + (int)temp;
+- wattron(win, color);
+- mvwprintw(win, y, x, "%s", string);
+- wattroff(win, color);
+- refresh();
+-}</span></font>
+-</pre></td>
+-</tr>
+-</table>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="FILEDVALIDATE" id="FILEDVALIDATE">18.5.
+-Field Validation</a></h3>
+-<p>By default, a field will accept any data input by the user. It
+-is possible to attach validation to the field. Then any attempt by
+-the user to leave the field, while it contains data that doesn't
+-match the validation type will fail. Some validation types also
+-have a character-validity check for each time a character is
+-entered in the field.</p>
+-<p>Validation can be attached to a field with the following
+-function.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++ if(win == NULL)
++ win = stdscr;
++ getyx(win, y, x);
++ if(startx != 0)
++ x = startx;
++ if(starty != 0)
++ y = starty;
++ if(width == 0)
++ width = 80;
++
++ length = strlen(string);
++ temp = (width - length)/ 2;
++ x = startx + (int)temp;
++ wattron(win, color);
++ mvwprintw(win, y, x, "%s", string);
++ wattroff(win, color);
++ refresh();
++}</SPAN
++></PRE
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="FILEDVALIDATE"
++>18.5. Field Validation</A
++></H3
++><P
++>By default, a field will accept any data input by the user. It is possible to
++attach validation to the field. Then any attempt by the user to leave the field,
++while it contains data that doesn't match the validation type will fail. Some
++validation types also have a character-validity check for each time a character
++is entered in the field.</P
++><P
++>Validation can be attached to a field with the following function.
++<PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ FIELDTYPE *ftype, /* type to associate */
+- ...); /* additional arguments*/</font>
+-</pre></td>
+-</tr>
+-</table>
++ ...); /* additional arguments*/</PRE
++>
+ Once set, the validation type for a field can be queried with
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">FIELDTYPE *field_type(FIELD *field); /* field to query */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The form driver validates the data in a field only when data is
+-entered by the end-user. Validation does not occur when</p>
+-<ul>
+-<li>
+-<p>the application program changes the field value by calling
+-set_field_buffer.</p>
+-</li>
+-<li>
+-<p>linked field values are changed indirectly -- by changing the
+-field to which they are linked</p>
+-</li>
+-</ul>
+-<p>The following are the pre-defined validation types. You can also
+-specify custom validation, though it's a bit tricky and
+-cumbersome.</p>
+-<h1 class="BRIDGEHEAD"><a name="AEN1069" id=
+-"AEN1069"></a>TYPE_ALPHA</h1>
+-<p>This field type accepts alphabetic data; no blanks, no digits,
+-no special characters (this is checked at character-entry time). It
+-is set up with:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++<PRE
++CLASS="PROGRAMLISTING"
++>FIELDTYPE *field_type(FIELD *field); /* field to query */</PRE
++></P
++><P
++>The form driver validates the data in a field only when data is entered by the
++end-user. Validation does not occur when </P
++><P
++></P
++><UL
++><LI
++><P
++>the application program changes the field value by calling set_field_buffer. </P
++></LI
++><LI
++><P
++>linked field values are changed indirectly -- by changing the field to which
++they are linked</P
++></LI
++></UL
++><P
++>The following are the pre-defined validation types. You can also specify custom
++validation, though it's a bit tricky and cumbersome.</P
++><H1
++CLASS="BRIDGEHEAD"
++><A
++NAME="AEN1069"
++></A
++>TYPE_ALPHA</H1
++><P
++>This field type accepts alphabetic data; no blanks, no digits, no special
++characters (this is checked at character-entry time). It is set up with: </P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ALPHA, /* type to associate */
+- int width); /* maximum width of field */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The width argument sets a minimum width of data. The user has to
+-enter at-least width number of characters before he can leave the
+-field. Typically you'll want to set this to the field width; if
+-it's greater than the field width, the validation check will always
+-fail. A minimum width of zero makes field completion optional.</p>
+-<h1 class="BRIDGEHEAD"><a name="AEN1073" id=
+-"AEN1073"></a>TYPE_ALNUM</h1>
+-<p>This field type accepts alphabetic data and digits; no blanks,
+-no special characters (this is checked at character-entry time). It
+-is set up with:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++ int width); /* maximum width of field */</PRE
++><P
++>The width argument sets a minimum width of data. The user has to enter at-least
++width number of characters before he can leave the field. Typically
++you'll want to set this to the field width; if it's greater than the
++field width, the validation check will always fail. A minimum width
++of zero makes field completion optional. </P
++><H1
++CLASS="BRIDGEHEAD"
++><A
++NAME="AEN1073"
++></A
++>TYPE_ALNUM</H1
++><P
++>This field type accepts alphabetic data and digits; no blanks, no special
++characters (this is checked at character-entry time). It is set up with: </P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ALNUM, /* type to associate */
+- int width); /* maximum width of field */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The width argument sets a minimum width of data. As with
+-TYPE_ALPHA, typically you'll want to set this to the field width;
+-if it's greater than the field width, the validation check will
+-always fail. A minimum width of zero makes field completion
+-optional.</p>
+-<h1 class="BRIDGEHEAD"><a name="AEN1077" id=
+-"AEN1077"></a>TYPE_ENUM</h1>
+-<p>This type allows you to restrict a field's values to be among a
+-specified set of string values (for example, the two-letter postal
+-codes for U.S. states). It is set up with:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++ int width); /* maximum width of field */</PRE
++><P
++>The width argument sets a minimum width of data. As with
++TYPE_ALPHA, typically you'll want to set this to the field width; if it's
++greater than the field width, the validation check will always fail. A
++minimum width of zero makes field completion optional. </P
++><H1
++CLASS="BRIDGEHEAD"
++><A
++NAME="AEN1077"
++></A
++>TYPE_ENUM</H1
++><P
++>This type allows you to restrict a field's values to be among a specified
++set of string values (for example, the two-letter postal codes for U.S.
++states). It is set up with: </P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ENUM, /* type to associate */
+ char **valuelist; /* list of possible values */
+ int checkcase; /* case-sensitive? */
+- int checkunique); /* must specify uniquely? */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The valuelist parameter must point at a NULL-terminated list of
+-valid strings. The checkcase argument, if true, makes comparison
+-with the string case-sensitive.</p>
+-<p>When the user exits a TYPE_ENUM field, the validation procedure
+-tries to complete the data in the buffer to a valid entry. If a
+-complete choice string has been entered, it is of course valid. But
+-it is also possible to enter a prefix of a valid string and have it
+-completed for you.</p>
+-<p>By default, if you enter such a prefix and it matches more than
+-one value in the string list, the prefix will be completed to the
+-first matching value. But the checkunique argument, if true,
+-requires prefix matches to be unique in order to be valid.</p>
+-<p>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
+-particularly useful with these fields.</p>
+-<h1 class="BRIDGEHEAD"><a name="AEN1084" id=
+-"AEN1084"></a>TYPE_INTEGER</h1>
+-<p>This field type accepts an integer. It is set up as follows:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++ int checkunique); /* must specify uniquely? */</PRE
++><P
++>The valuelist parameter must point at a NULL-terminated list of
++valid strings. The checkcase argument, if true, makes comparison
++with the string case-sensitive. </P
++><P
++>When the user exits a TYPE_ENUM field, the validation procedure tries to
++complete the data in the buffer to a valid entry. If a complete choice string
++has been entered, it is of course valid. But it is also possible to enter a
++prefix of a valid string and have it completed for you. </P
++><P
++>By default, if you enter such a prefix and it matches more than one value
++in the string list, the prefix will be completed to the first matching
++value. But the checkunique argument, if true, requires prefix
++matches to be unique in order to be valid. </P
++><P
++>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be particularly
++useful with these fields. </P
++><H1
++CLASS="BRIDGEHEAD"
++><A
++NAME="AEN1084"
++></A
++>TYPE_INTEGER</H1
++><P
++>This field type accepts an integer. It is set up as follows: </P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ TYPE_INTEGER, /* type to associate */
+ int padding, /* # places to zero-pad to */
+- int vmin, int vmax); /* valid range */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Valid characters consist of an optional leading minus and
+-digits. The range check is performed on exit. If the range maximum
+-is less than or equal to the minimum, the range is ignored.</p>
+-<p>If the value passes its range check, it is padded with as many
+-leading zero digits as necessary to meet the padding argument.</p>
+-<p>A TYPE_INTEGER value buffer can conveniently be interpreted with
+-the C library function atoi(3).</p>
+-<h1 class="BRIDGEHEAD"><a name="AEN1090" id=
+-"AEN1090"></a>TYPE_NUMERIC</h1>
+-<p>This field type accepts a decimal number. It is set up as
+-follows:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++ int vmin, int vmax); /* valid range */</PRE
++><P
++>Valid characters consist of an optional leading minus and digits.
++The range check is performed on exit. If the range maximum is less
++than or equal to the minimum, the range is ignored. </P
++><P
++>If the value passes its range check, it is padded with as many leading
++zero digits as necessary to meet the padding argument. </P
++><P
++>A TYPE_INTEGER value buffer can conveniently be interpreted with the C library
++function atoi(3).</P
++><H1
++CLASS="BRIDGEHEAD"
++><A
++NAME="AEN1090"
++></A
++>TYPE_NUMERIC</H1
++><P
++>This field type accepts a decimal number. It is set up as follows: </P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ TYPE_NUMERIC, /* type to associate */
+ int padding, /* # places of precision */
+- int vmin, int vmax); /* valid range */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>Valid characters consist of an optional leading minus and
+-digits. possibly including a decimal point. The range check is
+-performed on exit. If the range maximum is less than or equal to
+-the minimum, the range is ignored.</p>
+-<p>If the value passes its range check, it is padded with as many
+-trailing zero digits as necessary to meet the padding argument.</p>
+-<p>A TYPE_NUMERIC value buffer can conveniently be interpreted with
+-the C library function atof(3).</p>
+-<h1 class="BRIDGEHEAD"><a name="AEN1096" id=
+-"AEN1096"></a>TYPE_REGEXP</h1>
+-<p>This field type accepts data matching a regular expression. It
+-is set up as follows:</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_field_type(FIELD *field, /* field to alter */
++ int vmin, int vmax); /* valid range */</PRE
++><P
++>Valid characters consist of an optional leading minus and digits. possibly
++including a decimal point. The range check is performed on exit. If the
++range maximum is less than or equal to the minimum, the range is
++ignored. </P
++><P
++>If the value passes its range check, it is padded with as many trailing
++zero digits as necessary to meet the padding argument. </P
++><P
++>A TYPE_NUMERIC value buffer can conveniently be interpreted with the C library
++function atof(3).</P
++><H1
++CLASS="BRIDGEHEAD"
++><A
++NAME="AEN1096"
++></A
++>TYPE_REGEXP</H1
++><P
++>This field type accepts data matching a regular expression. It is set up
++as follows: </P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_field_type(FIELD *field, /* field to alter */
+ TYPE_REGEXP, /* type to associate */
+- char *regexp); /* expression to match */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The syntax for regular expressions is that of regcomp(3). The
+-check for regular-expression match is performed on exit.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="FORMDRIVER" id="FORMDRIVER">18.6. Form
+-Driver: The work horse of the forms system</a></h3>
+-<p>As in the menu system, form_driver() plays a very important role
+-in forms system. All types of requests to forms system should be
+-funneled through form_driver().</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int form_driver(FORM *form, /* form on which to operate */
+- int request) /* form request code */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>As you have seen some of the examples above, you have to be in a
+-loop looking for user input and then decide whether it's a field
+-data or a form request. The form requests are then passed to
+-form_driver() to do the work.</p>
+-<p>The requests roughly can be divided into following categories.
+-Different requests and their usage is explained below:</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="PAGENAVREQ" id="PAGENAVREQ">18.6.1. Page
+-Navigation Requests</a></h4>
+-<p>These requests cause page-level moves through the form,
+-triggering display of a new form screen. A form can be made of
+-multiple pages. If you have a big form with lot of fields and
+-logical sections, then you can divide the form into pages. The
+-function set_new_page() to set a new page at the field
+-specified.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
+- bool new_page_flag); /* should be TRUE to put a break */</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>The following requests allow you to move to different pages</p>
+-<ul>
+-<li>
+-<p><em>REQ_NEXT_PAGE</em> Move to the next form page.</p>
+-</li>
+-<li>
+-<p><em>REQ_PREV_PAGE</em> Move to the previous form page.</p>
+-</li>
+-<li>
+-<p><em>REQ_FIRST_PAGE</em> Move to the first form page.</p>
+-</li>
+-<li>
+-<p><em>REQ_LAST_PAGE</em> Move to the last form page.</p>
+-</li>
+-</ul>
+-<p>These requests treat the list as cyclic; that is, REQ_NEXT_PAGE
+-from the last page goes to the first, and REQ_PREV_PAGE from the
+-first page goes to the last.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="INTERFIELDNAVREQ" id=
+-"INTERFIELDNAVREQ">18.6.2. Inter-Field Navigation Requests</a></h4>
+-<p>These requests handle navigation between fields on the same
+-page.</p>
+-<ul>
+-<li>
+-<p><em>REQ_NEXT_FIELD</em> Move to next field.</p>
+-</li>
+-<li>
+-<p><em>REQ_PREV_FIELD</em> Move to previous field.</p>
+-</li>
+-<li>
+-<p><em>REQ_FIRST_FIELD</em> Move to the first field.</p>
+-</li>
+-<li>
+-<p><em>REQ_LAST_FIELD</em> Move to the last field.</p>
+-</li>
+-<li>
+-<p><em>REQ_SNEXT_FIELD</em> Move to sorted next field.</p>
+-</li>
+-<li>
+-<p><em>REQ_SPREV_FIELD</em> Move to sorted previous field.</p>
+-</li>
+-<li>
+-<p><em>REQ_SFIRST_FIELD</em> Move to the sorted first field.</p>
+-</li>
+-<li>
+-<p><em>REQ_SLAST_FIELD</em> Move to the sorted last field.</p>
+-</li>
+-<li>
+-<p><em>REQ_LEFT_FIELD</em> Move left to field.</p>
+-</li>
+-<li>
+-<p><em>REQ_RIGHT_FIELD</em> Move right to field.</p>
+-</li>
+-<li>
+-<p><em>REQ_UP_FIELD</em> Move up to field.</p>
+-</li>
+-<li>
+-<p><em>REQ_DOWN_FIELD</em> Move down to field.</p>
+-</li>
+-</ul>
+-<p>These requests treat the list of fields on a page as cyclic;
+-that is, REQ_NEXT_FIELD from the last field goes to the first, and
+-REQ_PREV_FIELD from the first field goes to the last. The order of
+-the fields for these (and the REQ_FIRST_FIELD and REQ_LAST_FIELD
+-requests) is simply the order of the field pointers in the form
+-array (as set up by new_form() or set_form_fields()</p>
+-<p>It is also possible to traverse the fields as if they had been
+-sorted in screen-position order, so the sequence goes left-to-right
+-and top-to-bottom. To do this, use the second group of four
+-sorted-movement requests.</p>
+-<p>Finally, it is possible to move between fields using visual
+-directions up, down, right, and left. To accomplish this, use the
+-third group of four requests. Note, however, that the position of a
+-form for purposes of these requests is its upper-left corner.</p>
+-<p>For example, suppose you have a multi-line field B, and two
+-single-line fields A and C on the same line with B, with A to the
+-left of B and C to the right of B. A REQ_MOVE_RIGHT from A will go
+-to B only if A, B, and C all share the same first line; otherwise
+-it will skip over B to C.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="INTRAFIELDNAVREQ" id=
+-"INTRAFIELDNAVREQ">18.6.3. Intra-Field Navigation Requests</a></h4>
+-<p>These requests drive movement of the edit cursor within the
+-currently selected field.</p>
+-<ul>
+-<li>
+-<p><em>REQ_NEXT_CHAR</em> Move to next character.</p>
+-</li>
+-<li>
+-<p><em>REQ_PREV_CHAR</em> Move to previous character.</p>
+-</li>
+-<li>
+-<p><em>REQ_NEXT_LINE</em> Move to next line.</p>
+-</li>
+-<li>
+-<p><em>REQ_PREV_LINE</em> Move to previous line.</p>
+-</li>
+-<li>
+-<p><em>REQ_NEXT_WORD</em> Move to next word.</p>
+-</li>
+-<li>
+-<p><em>REQ_PREV_WORD</em> Move to previous word.</p>
+-</li>
+-<li>
+-<p><em>REQ_BEG_FIELD</em> Move to beginning of field.</p>
+-</li>
+-<li>
+-<p><em>REQ_END_FIELD</em> Move to end of field.</p>
+-</li>
+-<li>
+-<p><em>REQ_BEG_LINE</em> Move to beginning of line.</p>
+-</li>
+-<li>
+-<p><em>REQ_END_LINE</em> Move to end of line.</p>
+-</li>
+-<li>
+-<p><em>REQ_LEFT_CHAR</em> Move left in field.</p>
+-</li>
+-<li>
+-<p><em>REQ_RIGHT_CHAR</em> Move right in field.</p>
+-</li>
+-<li>
+-<p><em>REQ_UP_CHAR</em> Move up in field.</p>
+-</li>
+-<li>
+-<p><em>REQ_DOWN_CHAR</em> Move down in field.</p>
+-</li>
+-</ul>
+-<p>Each word is separated from the previous and next characters by
+-whitespace. The commands to move to beginning and end of line or
+-field look for the first or last non-pad character in their
+-ranges.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="SCROLLREQ" id="SCROLLREQ">18.6.4.
+-Scrolling Requests</a></h4>
+-<p>Fields that are dynamic and have grown and fields explicitly
+-created with offscreen rows are scrollable. One-line fields scroll
+-horizontally; multi-line fields scroll vertically. Most scrolling
+-is triggered by editing and intra-field movement (the library
+-scrolls the field to keep the cursor visible). It is possible to
+-explicitly request scrolling with the following requests:</p>
+-<ul>
+-<li>
+-<p><em>REQ_SCR_FLINE</em> Scroll vertically forward a line.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_BLINE</em> Scroll vertically backward a line.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_FPAGE</em> Scroll vertically forward a page.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_BPAGE</em> Scroll vertically backward a page.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_FHPAGE</em> Scroll vertically forward half a
+-page.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_BHPAGE</em> Scroll vertically backward half a
+-page.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_FCHAR</em> Scroll horizontally forward a
+-character.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_BCHAR</em> Scroll horizontally backward a
+-character.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_HFLINE</em> Scroll horizontally one field width
+-forward.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_HBLINE</em> Scroll horizontally one field width
+-backward.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_HFHALF</em> Scroll horizontally one half field width
+-forward.</p>
+-</li>
+-<li>
+-<p><em>REQ_SCR_HBHALF</em> Scroll horizontally one half field width
+-backward.</p>
+-</li>
+-</ul>
+-<p>For scrolling purposes, a page of a field is the height of its
+-visible part.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="EDITREQ" id="EDITREQ">18.6.5. Editing
+-Requests</a></h4>
+-<p>When you pass the forms driver an ASCII character, it is treated
+-as a request to add the character to the field's data buffer.
+-Whether this is an insertion or a replacement depends on the
+-field's edit mode (insertion is the default.</p>
+-<p>The following requests support editing the field and changing
+-the edit mode:</p>
+-<ul>
+-<li>
+-<p><em>REQ_INS_MODE</em> Set insertion mode.</p>
+-</li>
+-<li>
+-<p><em>REQ_OVL_MODE</em> Set overlay mode.</p>
+-</li>
+-<li>
+-<p><em>REQ_NEW_LINE</em> New line request (see below for
+-explanation).</p>
+-</li>
+-<li>
+-<p><em>REQ_INS_CHAR</em> Insert space at character location.</p>
+-</li>
+-<li>
+-<p><em>REQ_INS_LINE</em> Insert blank line at character
+-location.</p>
+-</li>
+-<li>
+-<p><em>REQ_DEL_CHAR</em> Delete character at cursor.</p>
+-</li>
+-<li>
+-<p><em>REQ_DEL_PREV</em> Delete previous word at cursor.</p>
+-</li>
+-<li>
+-<p><em>REQ_DEL_LINE</em> Delete line at cursor.</p>
+-</li>
+-<li>
+-<p><em>REQ_DEL_WORD</em> Delete word at cursor.</p>
+-</li>
+-<li>
+-<p><em>REQ_CLR_EOL</em> Clear to end of line.</p>
+-</li>
+-<li>
+-<p><em>REQ_CLR_EOF</em> Clear to end of field.</p>
+-</li>
+-<li>
+-<p><em>REQ_CLR_FIELD</em> Clear entire field.</p>
+-</li>
+-</ul>
+-<p>The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is
+-complicated and partly controlled by a pair of forms options. The
+-special cases are triggered when the cursor is at the beginning of
+-a field, or on the last line of the field.</p>
+-<p>First, we consider REQ_NEW_LINE:</p>
+-<p>The normal behavior of REQ_NEW_LINE in insert mode is to break
+-the current line at the position of the edit cursor, inserting the
+-portion of the current line after the cursor as a new line
+-following the current and moving the cursor to the beginning of
+-that new line (you may think of this as inserting a newline in the
+-field buffer).</p>
+-<p>The normal behavior of REQ_NEW_LINE in overlay mode is to clear
+-the current line from the position of the edit cursor to end of
+-line. The cursor is then moved to the beginning of the next
+-line.</p>
+-<p>However, REQ_NEW_LINE at the beginning of a field, or on the
+-last line of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD
+-option is off, this special action is disabled.</p>
+-<p>Now, let us consider REQ_DEL_PREV:</p>
+-<p>The normal behavior of REQ_DEL_PREV is to delete the previous
+-character. If insert mode is on, and the cursor is at the start of
+-a line, and the text on that line will fit on the previous one, it
+-instead appends the contents of the current line to the previous
+-one and deletes the current line (you may think of this as deleting
+-a newline from the field buffer).</p>
+-<p>However, REQ_DEL_PREV at the beginning of a field is instead
+-treated as a REQ_PREV_FIELD.</p>
+-<p>If the O_BS_OVERLOAD option is off, this special action is
+-disabled and the forms driver just returns E_REQUEST_DENIED.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="ORDERREQ" id="ORDERREQ">18.6.6. Order
+-Requests</a></h4>
+-<p>If the type of your field is ordered, and has associated
+-functions for getting the next and previous values of the type from
+-a given value, there are requests that can fetch that value into
+-the field buffer:</p>
+-<ul>
+-<li>
+-<p><em>REQ_NEXT_CHOICE</em> Place the successor value of the
+-current value in the buffer.</p>
+-</li>
+-<li>
+-<p><em>REQ_PREV_CHOICE</em> Place the predecessor value of the
+-current value in the buffer.</p>
+-</li>
+-</ul>
+-<p>Of the built-in field types, only TYPE_ENUM has built-in
+-successor and predecessor functions. When you define a field type
+-of your own (see Custom Validation Types), you can associate our
+-own ordering functions.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="APPLICCOMMANDS" id=
+-"APPLICCOMMANDS">18.6.7. Application Commands</a></h4>
+-<p>Form requests are represented as integers above the curses value
+-greater than KEY_MAX and less than or equal to the constant
+-MAX_COMMAND. A value within this range gets ignored by
+-form_driver(). So this can be used for any purpose by the
+-application. It can be treated as an application specific action
+-and take corresponding action.</p>
+-</div>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="TOOLS" id="TOOLS">19. Tools and Widget
+-Libraries</a></h2>
+-<p>Now that you have seen the capabilities of ncurses and its
+-sister libraries, you are rolling your sleeves up and gearing for a
+-project that heavily manipulates screen. But wait.. It can be
+-pretty difficult to write and maintain complex GUI widgets in plain
+-ncurses or even with the additional libraries. There are some
+-ready-to-use tools and widget libraries that can be used instead of
+-writing your own widgets. You can use some of them, get ideas from
+-the code, or even extend them.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="CDK" id="CDK">19.1. CDK (Curses
+-Development Kit)</a></h3>
+-<p>In the author's words</p>
+-<p><em>CDK stands for 'Curses Development Kit' and it currently
+-contains 21 ready to use widgets which facilitate the speedy
+-development of full screen curses programs.</em></p>
+-<p>The kit provides some useful widgets, which can be used in your
+-programs directly. It's pretty well written and the documentation
+-is very good. The examples in the examples directory can be a good
+-place to start for beginners. The CDK can be downloaded from
+-<a href="http://invisible-island.net/cdk/" target=
+-"_top">http://invisible-island.net/cdk/</a> . Follow the
+-instructions in README file to install it.</p>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="WIDGETLIST" id="WIDGETLIST">19.1.1.
+-Widget List</a></h4>
+-<p>The following is the list of widgets provided with cdk and their
+-description.</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color="#000000">Widget Type Quick Description
++ char *regexp); /* expression to match */</PRE
++><P
++>The syntax for regular expressions is that of regcomp(3).
++The check for regular-expression match is performed on exit.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="FORMDRIVER"
++>18.6. Form Driver: The work horse of the forms system</A
++></H3
++><P
++>As in the menu system, form_driver() plays a very important role in forms
++system. All types of requests to forms system should be funneled through
++form_driver().</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int form_driver(FORM *form, /* form on which to operate */
++ int request) /* form request code */</PRE
++><P
++>As you have seen some of the examples above, you have to be in a loop looking
++for user input and then decide whether it's a field data or a form request. The
++form requests are then passed to form_driver() to do the work.</P
++><P
++>The requests roughly can be divided into following categories. Different
++requests and their usage is explained below:</P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="PAGENAVREQ"
++>18.6.1. Page Navigation Requests</A
++></H4
++><P
++>These requests cause page-level moves through the form, triggering display of a
++new form screen. A form can be made of multiple pages. If you have a big form
++with lot of fields and logical sections, then you can divide the form into
++pages. The function set_new_page() to set a new page at the field specified.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
++ bool new_page_flag); /* should be TRUE to put a break */</PRE
++><P
++>The following requests allow you to move to different pages</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEXT_PAGE</I
++></SPAN
++> Move to the next form page.</P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_PREV_PAGE</I
++></SPAN
++> Move to the previous
++form page.</P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_FIRST_PAGE</I
++></SPAN
++> Move to the first form page.</P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_LAST_PAGE</I
++></SPAN
++> Move to the last form page. </P
++></LI
++></UL
++><P
++>These requests treat the list as cyclic; that is, REQ_NEXT_PAGE from the
++last page goes to the first, and REQ_PREV_PAGE from the first page goes to
++the last.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="INTERFIELDNAVREQ"
++>18.6.2. Inter-Field Navigation Requests</A
++></H4
++><P
++>These requests handle navigation between fields on the same page.</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEXT_FIELD</I
++></SPAN
++>
++ Move to next field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_PREV_FIELD</I
++></SPAN
++>
++ Move to previous field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_FIRST_FIELD</I
++></SPAN
++>
++ Move to the first field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_LAST_FIELD</I
++></SPAN
++>
++ Move to the last field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SNEXT_FIELD</I
++></SPAN
++>
++ Move to sorted next field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SPREV_FIELD</I
++></SPAN
++>
++ Move to sorted previous field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SFIRST_FIELD</I
++></SPAN
++>
++ Move to the sorted first field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SLAST_FIELD</I
++></SPAN
++>
++ Move to the sorted last field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_LEFT_FIELD</I
++></SPAN
++>
++ Move left to field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_RIGHT_FIELD</I
++></SPAN
++>
++ Move right to field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_UP_FIELD</I
++></SPAN
++>
++ Move up to field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_DOWN_FIELD</I
++></SPAN
++>
++ Move down to field. </P
++></LI
++></UL
++><P
++>These requests treat the list of fields on a page as cyclic; that is,
++REQ_NEXT_FIELD from the last field goes to the first, and REQ_PREV_FIELD
++from the first field goes to the last. The order of the fields for these
++(and the REQ_FIRST_FIELD and REQ_LAST_FIELD requests) is simply the order of
++the field pointers in the form array (as set up by new_form() or
++set_form_fields()</P
++><P
++>It is also possible to traverse the fields as if they had been sorted in
++screen-position order, so the sequence goes left-to-right and top-to-bottom.
++To do this, use the second group of four sorted-movement requests.</P
++><P
++>Finally, it is possible to move between fields using visual directions up,
++down, right, and left. To accomplish this, use the third group of four
++requests. Note, however, that the position of a form for purposes of these
++requests is its upper-left corner.</P
++><P
++>For example, suppose you have a multi-line field B, and two single-line
++fields A and C on the same line with B, with A to the left of B and C to the
++right of B. A REQ_MOVE_RIGHT from A will go to B only if A, B, and C all
++share the same first line; otherwise it will skip over B to C.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="INTRAFIELDNAVREQ"
++>18.6.3. Intra-Field Navigation Requests</A
++></H4
++><P
++>These requests drive movement of the edit cursor within the currently
++selected field.</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEXT_CHAR</I
++></SPAN
++>
++ Move to next character. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_PREV_CHAR</I
++></SPAN
++>
++ Move to previous character. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEXT_LINE</I
++></SPAN
++>
++ Move to next line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_PREV_LINE</I
++></SPAN
++>
++ Move to previous line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEXT_WORD</I
++></SPAN
++>
++ Move to next word. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_PREV_WORD</I
++></SPAN
++>
++ Move to previous word. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_BEG_FIELD</I
++></SPAN
++>
++ Move to beginning of field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_END_FIELD</I
++></SPAN
++>
++ Move to end of field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_BEG_LINE</I
++></SPAN
++>
++ Move to beginning of line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_END_LINE</I
++></SPAN
++>
++ Move to end of line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_LEFT_CHAR</I
++></SPAN
++>
++ Move left in field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_RIGHT_CHAR</I
++></SPAN
++>
++ Move right in field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_UP_CHAR</I
++></SPAN
++>
++ Move up in field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_DOWN_CHAR</I
++></SPAN
++>
++ Move down in field. </P
++></LI
++></UL
++><P
++>Each word is separated from the previous and next characters by whitespace.
++The commands to move to beginning and end of line or field look for the
++first or last non-pad character in their ranges.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="SCROLLREQ"
++>18.6.4. Scrolling Requests</A
++></H4
++><P
++>Fields that are dynamic and have grown and fields explicitly created with
++offscreen rows are scrollable. One-line fields scroll horizontally;
++multi-line fields scroll vertically. Most scrolling is triggered by editing
++and intra-field movement (the library scrolls the field to keep the cursor
++visible). It is possible to explicitly request scrolling with the following
++requests:</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_FLINE</I
++></SPAN
++>
++ Scroll vertically forward a line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_BLINE</I
++></SPAN
++>
++ Scroll vertically backward a line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_FPAGE</I
++></SPAN
++>
++ Scroll vertically forward a page. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_BPAGE</I
++></SPAN
++>
++ Scroll vertically backward a page. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_FHPAGE</I
++></SPAN
++>
++ Scroll vertically forward half a page. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_BHPAGE</I
++></SPAN
++>
++ Scroll vertically backward half a page. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_FCHAR</I
++></SPAN
++>
++ Scroll horizontally forward a character. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_BCHAR</I
++></SPAN
++>
++ Scroll horizontally backward a character. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_HFLINE</I
++></SPAN
++>
++ Scroll horizontally one field width forward. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_HBLINE</I
++></SPAN
++>
++ Scroll horizontally one field width backward. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_HFHALF</I
++></SPAN
++>
++ Scroll horizontally one half field width forward. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_SCR_HBHALF</I
++></SPAN
++>
++ Scroll horizontally one half field width backward. </P
++></LI
++></UL
++><P
++>For scrolling purposes, a page of a field is the height of its visible part.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="EDITREQ"
++>18.6.5. Editing Requests</A
++></H4
++><P
++>When you pass the forms driver an ASCII character, it is treated as a
++request to add the character to the field's data buffer. Whether this is an
++insertion or a replacement depends on the field's edit mode (insertion is
++the default.</P
++><P
++>The following requests support editing the field and changing the edit mode:</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_INS_MODE</I
++></SPAN
++>
++ Set insertion mode. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_OVL_MODE</I
++></SPAN
++>
++ Set overlay mode. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEW_LINE</I
++></SPAN
++>
++ New line request (see below for explanation). </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_INS_CHAR</I
++></SPAN
++>
++ Insert space at character location. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_INS_LINE</I
++></SPAN
++>
++ Insert blank line at character location. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_DEL_CHAR</I
++></SPAN
++>
++ Delete character at cursor. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_DEL_PREV</I
++></SPAN
++>
++ Delete previous word at cursor. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_DEL_LINE</I
++></SPAN
++>
++ Delete line at cursor. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_DEL_WORD</I
++></SPAN
++>
++ Delete word at cursor. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_CLR_EOL</I
++></SPAN
++>
++ Clear to end of line. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_CLR_EOF</I
++></SPAN
++>
++ Clear to end of field. </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_CLR_FIELD</I
++></SPAN
++>
++ Clear entire field. </P
++></LI
++></UL
++><P
++>The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is complicated
++and partly controlled by a pair of forms options. The special cases are
++triggered when the cursor is at the beginning of a field, or on the last
++line of the field.</P
++><P
++>First, we consider REQ_NEW_LINE:</P
++><P
++>The normal behavior of REQ_NEW_LINE in insert mode is to break the current
++line at the position of the edit cursor, inserting the portion of the
++current line after the cursor as a new line following the current and moving
++the cursor to the beginning of that new line (you may think of this as
++inserting a newline in the field buffer).</P
++><P
++>The normal behavior of REQ_NEW_LINE in overlay mode is to clear the current
++line from the position of the edit cursor to end of line. The cursor is then
++moved to the beginning of the next line.</P
++><P
++>However, REQ_NEW_LINE at the beginning of a field, or on the last line of a
++field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD option is off, this
++special action is disabled.</P
++><P
++>Now, let us consider REQ_DEL_PREV:</P
++><P
++>The normal behavior of REQ_DEL_PREV is to delete the previous character. If
++insert mode is on, and the cursor is at the start of a line, and the text on
++that line will fit on the previous one, it instead appends the contents of
++the current line to the previous one and deletes the current line (you may
++think of this as deleting a newline from the field buffer).</P
++><P
++>However, REQ_DEL_PREV at the beginning of a field is instead treated as a
++REQ_PREV_FIELD.</P
++><P
++>If the O_BS_OVERLOAD option is off, this special action is disabled and the
++forms driver just returns E_REQUEST_DENIED.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="ORDERREQ"
++>18.6.6. Order Requests</A
++></H4
++><P
++>If the type of your field is ordered, and has associated functions for
++getting the next and previous values of the type from a given value, there
++are requests that can fetch that value into the field buffer:</P
++><P
++></P
++><UL
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_NEXT_CHOICE</I
++></SPAN
++>
++ Place the successor value of the current value in the buffer.
++ </P
++></LI
++><LI
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>REQ_PREV_CHOICE</I
++></SPAN
++>
++ Place the predecessor value of the current value in the buffer.
++ </P
++></LI
++></UL
++><P
++>Of the built-in field types, only TYPE_ENUM has built-in successor and
++predecessor functions. When you define a field type of your own (see Custom
++Validation Types), you can associate our own ordering functions.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="APPLICCOMMANDS"
++>18.6.7. Application Commands</A
++></H4
++><P
++>Form requests are represented as integers above the curses value greater than
++KEY_MAX and less than or equal to the constant MAX_COMMAND. A value within this
++range gets ignored by form_driver(). So this can be used for any purpose by the
++application. It can be treated as an application specific action and take
++corresponding action.</P
++></DIV
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="TOOLS"
++>19. Tools and Widget Libraries</A
++></H2
++><P
++>
++Now that you have seen the capabilities of ncurses and its sister libraries, you
++are rolling your sleeves up and gearing for a project that heavily manipulates
++screen. But wait.. It can be pretty difficult to write and maintain complex GUI
++widgets in plain ncurses or even with the additional libraries. There are some
++ready-to-use tools and widget libraries that can be used instead of writing your
++own widgets. You can use some of them, get ideas from the code, or even extend
++them.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="CDK"
++>19.1. CDK (Curses Development Kit)</A
++></H3
++><P
++>In the author's words </P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>
++CDK stands for 'Curses Development Kit' and it currently contains 21 ready
++to use widgets which facilitate the speedy development of full screen
++curses programs. </I
++></SPAN
++></P
++><P
++>The kit provides some useful widgets, which can be used in your programs
++directly. It's pretty well written and the documentation is very good. The
++examples in the examples directory can be a good place to start for beginners.
++The CDK can be downloaded from <A
++HREF="http://invisible-island.net/cdk/"
++TARGET="_top"
++>http://invisible-island.net/cdk/</A
++>
++. Follow the instructions in
++README file to install it.</P
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="WIDGETLIST"
++>19.1.1. Widget List</A
++></H4
++><P
++>The following is the list of widgets provided with cdk and their description.</P
++><PRE
++CLASS="PROGRAMLISTING"
++>Widget Type Quick Description
+ ===========================================================================
+ Alphalist Allows a user to select from a list of words, with
+ the ability to narrow the search list by typing in a
+@@ -6199,215 +8368,346 @@
+ dates and phone numbers.
+ Viewer This is a file/information viewer. Very useful
+ when you need to display loads of information.
+-===========================================================================</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>A few of the widgets are modified by Thomas Dickey in recent
+-versions.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="CDKATTRACT" id="CDKATTRACT">19.1.2. Some
+-Attractive Features</a></h4>
+-<p>Apart from making our life easier with readily usable widgets,
+-cdk solves one frustrating problem with printing multi colored
+-strings, justified strings elegantly. Special formatting tags can
+-be embedded in the strings which are passed to CDK functions. For
+-Example</p>
+-<p>If the string</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000">"&lt;/B/1&gt;This line should have a yellow foreground and a blue
+-background.&lt;!1&gt;"</font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>given as a parameter to newCDKLabel(), it prints the line with
+-yellow foreground and blue background. There are other tags
+-available for justifying string, embedding special drawing
+-characters etc.. Please refer to the man page cdk_display(3X) for
+-details. The man page explains the usage with nice examples.</p>
+-</div>
+-<div class="SECT3">
+-<hr>
+-<h4 class="SECT3"><a name="CDKCONCLUSION" id=
+-"CDKCONCLUSION">19.1.3. Conclusion</a></h4>
+-<p>All in all, CDK is a well-written package of widgets, which if
+-used properly can form a strong frame work for developing complex
+-GUI.</p>
+-</div>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="DIALOG" id="DIALOG">19.2. The
+-dialog</a></h3>
+-<p>Long long ago, in September 1994, when few people knew linux,
+-Jeff Tranter wrote an <a href=
+-"http://www2.linuxjournal.com/lj-issues/issue5/2807.html" target=
+-"_top">article</a> on dialog in Linux Journal. He starts the
+-article with these words..</p>
+-<p><em>Linux is based on the Unix operating system, but also
+-features a number of unique and useful kernel features and
+-application programs that often go beyond what is available under
+-Unix. One little-known gem is "dialog", a utility for creating
+-professional-looking dialog boxes from within shell scripts. This
+-article presents a tutorial introduction to the dialog utility, and
+-shows examples of how and where it can be used</em></p>
+-<p>As he explains, dialog is a real gem in making
+-professional-looking dialog boxes with ease. It creates a variety
+-of dialog boxes, menus, check lists etc.. It is usually installed
+-by default. If not, you can download it from <a href=
+-"http://invisible-island.net/dialog/" target="_top">Thomas
+-Dickey</a>'s site.</p>
+-<p>The above-mentioned article gives a very good overview of its
+-uses and capabilites. The man page has more details. It can be used
+-in variety of situations. One good example is building of linux
+-kernel in text mode. Linux kernel uses a modified version of dialog
+-tailored for its needs.</p>
+-<p>dialog was initially designed to be used with shell scripts. If
+-you want to use its functionality in a c program, then you can use
+-libdialog. The documentation regarding this is sparse. Definitive
+-reference is the dialog.h header file which comes with the library.
+-You may need to hack here and there to get the required output. The
+-source is easily customizable. I have used it on a number of
+-occasions by modifying the code.</p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="PERLCURSES" id="PERLCURSES">19.3. Perl
+-Curses Modules CURSES::FORM and CURSES::WIDGETS</a></h3>
+-<p>The perl module Curses, Curses::Form and Curses::Widgets give
+-access to curses from perl. If you have curses and basic perl is
+-installed, you can get these modules from <a href=
+-"http://www.cpan.org/modules/01modules.index.html" target=
+-"_top">CPAN All Modules page</a>. Get the three zipped modules in
+-the Curses category. Once installed you can use these modules from
+-perl scripts like any other module. For more information on perl
+-modules see perlmod man page. The above modules come with good
+-documentation and they have some demo scripts to test the
+-functionality. Though the widgets provided are very rudimentary,
+-these modules provide good access to curses library from perl.</p>
+-<p>Some of my code examples are converted to perl by Anuradha
+-Ratnaweera and they are available in the <var class=
+-"LITERAL">perl</var> directory.</p>
+-<p>For more information see man pages Curses(3) , Curses::Form(3)
+-and Curses::Widgets(3). These pages are installed only when the
+-above modules are acquired and installed.</p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="JUSTFORFUN" id="JUSTFORFUN">20. Just For
+-Fun !!!</a></h2>
+-<p>This section contains few programs written by me just for fun.
+-They don't signify a better programming practice or the best way of
+-using ncurses. They are provided here so as to allow beginners to
+-get ideas and add more programs to this section. If you have
+-written a couple of nice, simple programs in curses and want them
+-to included here, contact <a href="mailto:ppadala@gmail.com"
+-target="_top">me</a>.</p>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="GAMEOFLIFE" id="GAMEOFLIFE">20.1. The
+-Game of Life</a></h3>
+-<p>Game of life is a wonder of math. In <a href=
+-"http://www.math.com/students/wonders/life/life.html" target=
+-"_top">Paul Callahan</a>'s words</p>
+-<table border="0" bgcolor="#E0E0E0" width="100%">
+-<tr>
+-<td>
+-<pre class="PROGRAMLISTING">
+-<font color=
+-"#000000"><em>The Game of Life (or simply Life) is not a game in the conventional sense. There
++===========================================================================</PRE
++><P
++>A few of the widgets are modified by Thomas Dickey in recent versions.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="CDKATTRACT"
++>19.1.2. Some Attractive Features</A
++></H4
++><P
++>Apart from making our life easier with readily usable widgets, cdk solves one
++frustrating problem with printing multi colored strings, justified strings
++elegantly. Special formatting tags can be embedded in the strings which are
++passed to CDK functions. For Example</P
++><P
++>If the string</P
++><PRE
++CLASS="PROGRAMLISTING"
++>"&lt;/B/1&gt;This line should have a yellow foreground and a blue
++background.&lt;!1&gt;"</PRE
++><P
++>given as a parameter to newCDKLabel(), it prints the line with yellow foreground
++and blue background. There are other tags available for justifying string,
++embedding special drawing characters etc.. Please refer to the man page
++cdk_display(3X) for details. The man page explains the usage with nice examples.</P
++></DIV
++><DIV
++CLASS="SECT3"
++><HR><H4
++CLASS="SECT3"
++><A
++NAME="CDKCONCLUSION"
++>19.1.3. Conclusion</A
++></H4
++><P
++>All in all, CDK is a well-written package of widgets, which if used properly can
++form a strong frame work for developing complex GUI.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="DIALOG"
++>19.2. The dialog</A
++></H3
++><P
++>Long long ago, in September 1994, when few people knew linux, Jeff Tranter wrote
++an <A
++HREF="http://www2.linuxjournal.com/lj-issues/issue5/2807.html"
++TARGET="_top"
++>article</A
++> on dialog in Linux Journal. He starts the article with these words..</P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>Linux is based on the Unix operating system, but also features a number of
++unique and useful kernel features and application programs that often go beyond
++what is available under Unix. One little-known gem is "dialog", a utility for
++creating professional-looking dialog boxes from within shell scripts. This
++article presents a tutorial introduction to the dialog utility, and shows
++examples of how and where it can be used</I
++></SPAN
++></P
++><P
++>
++As he explains, dialog is a real gem in making professional-looking dialog boxes
++with ease. It creates a variety of dialog boxes, menus, check lists etc.. It is
++usually installed by default. If not, you can download it from <A
++HREF="http://invisible-island.net/dialog/"
++TARGET="_top"
++>Thomas Dickey</A
++>'s site. </P
++><P
++>The above-mentioned article gives a very good overview of its uses and
++capabilites. The man page has more details. It can be used in variety of
++situations. One good example is building of linux kernel in text mode. Linux
++kernel uses a modified version of dialog tailored for its needs. </P
++><P
++>dialog was initially designed to be used with shell scripts. If you want to use
++its functionality in a c program, then you can use libdialog. The documentation
++regarding this is sparse. Definitive reference is the dialog.h header file which
++comes with the library. You may need to hack here and there to get the required
++output. The source is easily customizable. I have used it on a number of
++occasions by modifying the code.</P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="PERLCURSES"
++>19.3. Perl Curses Modules CURSES::FORM and CURSES::WIDGETS</A
++></H3
++><P
++>The perl module Curses, Curses::Form and Curses::Widgets give access to curses
++from perl. If you have curses and basic perl is installed, you can get these
++modules from <A
++HREF="http://www.cpan.org/modules/01modules.index.html"
++TARGET="_top"
++> CPAN
++All Modules page</A
++>. Get the three zipped modules in the Curses category.
++Once installed you can use these modules from perl scripts like any other
++module. For more information on perl modules see perlmod man page. The above
++modules come with good documentation and they have some demo scripts to test the
++functionality. Though the widgets provided are very rudimentary, these modules
++provide good access to curses library from perl.</P
++><P
++>Some of my code examples are converted to perl by Anuradha Ratnaweera and they
++are available in the <TT
++CLASS="LITERAL"
++>perl</TT
++> directory.</P
++><P
++>
++For more information see man pages Curses(3) , Curses::Form(3) and
++Curses::Widgets(3). These pages are installed only when the above modules are
++acquired and installed.</P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="JUSTFORFUN"
++>20. Just For Fun !!!</A
++></H2
++><P
++>This section contains few programs written by me just for fun. They don't
++signify a better programming practice or the best way of using ncurses. They are
++provided here so as to allow beginners to get ideas and add more programs to
++this section. If you have written a couple of nice, simple programs in curses
++and want them to included here, contact <A
++HREF="mailto:ppadala@gmail.com"
++TARGET="_top"
++>me</A
++>.</P
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="GAMEOFLIFE"
++>20.1. The Game of Life</A
++></H3
++><P
++>Game of life is a wonder of math. In
++<A
++HREF="http://www.math.com/students/wonders/life/life.html"
++TARGET="_top"
++>Paul Callahan</A
++>'s words</P
++><PRE
++CLASS="PROGRAMLISTING"
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>The Game of Life (or simply Life) is not a game in the conventional sense. There
+ are no players, and no winning or losing. Once the "pieces" are placed in the
+ starting position, the rules determine everything that happens later.
+ Nevertheless, Life is full of surprises! In most cases, it is impossible to look
+ at a starting position (or pattern) and see what will happen in the future. The
+-only way to find out is to follow the rules of the game.</em></font>
+-</pre></td>
+-</tr>
+-</table>
+-<p>This program starts with a simple inverted U pattern and shows
+-how wonderful life works. There is a lot of room for improvement in
+-the program. You can let the user enter pattern of his choice or
+-even take input from a file. You can also change rules and play
+-with a lot of variations. Search on <a href="http://www.google.com"
+-target="_top">google</a> for interesting information on game of
+-life.</p>
+-<p><em>File Path: JustForFun/life.c</em></p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="MAGIC" id="MAGIC">20.2. Magic
+-Square</a></h3>
+-<p>Magic Square, another wonder of math, is very simple to
+-understand but very difficult to make. In a magic square sum of the
+-numbers in each row, each column is equal. Even diagnol sum can be
+-equal. There are many variations which have special properties.</p>
+-<p>This program creates a simple magic square of odd order.</p>
+-<p><em>File Path: JustForFun/magic.c</em></p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="HANOI" id="HANOI">20.3. Towers of
+-Hanoi</a></h3>
+-<p>The famous towers of hanoi solver. The aim of the game is to
+-move the disks on the first peg to last peg, using middle peg as a
+-temporary stay. The catch is not to place a larger disk over a
+-small disk at any time.</p>
+-<p><em>File Path: JustForFun/hanoi.c</em></p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="QUEENS" id="QUEENS">20.4. Queens
+-Puzzle</a></h3>
+-<p>The objective of the famous N-Queen puzzle is to put N queens on
+-a N X N chess board without attacking each other.</p>
+-<p>This program solves it with a simple backtracking technique.</p>
+-<p><em>File Path: JustForFun/queens.c</em></p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="SHUFFLE" id="SHUFFLE">20.5.
+-Shuffle</a></h3>
+-<p>A fun game, if you have time to kill.</p>
+-<p><em>File Path: JustForFun/shuffle.c</em></p>
+-</div>
+-<div class="SECT2">
+-<hr>
+-<h3 class="SECT2"><a name="TT" id="TT">20.6. Typing Tutor</a></h3>
+-<p>A simple typing tutor, I created more out of need than for ease
+-of use. If you know how to put your fingers correctly on the
+-keyboard, but lack practice, this can be helpful.</p>
+-<p><em>File Path: JustForFun/tt.c</em></p>
+-</div>
+-</div>
+-<div class="SECT1">
+-<hr>
+-<h2 class="SECT1"><a name="REF" id="REF">21. References</a></h2>
+-<ul>
+-<li>
+-<p>NCURSES man pages</p>
+-</li>
+-<li>
+-<p>NCURSES FAQ at <a href=
+-"http://invisible-island.net/ncurses/ncurses.faq.html" target=
+-"_top">http://invisible-island.net/ncurses/ncurses.faq.html</a></p>
+-</li>
+-<li>
+-<p>Writing programs with NCURSES by Eric Raymond and Zeyd M.
+-Ben-Halim at <a href=
+-"http://invisible-island.net/ncurses/ncurses-intro.html" target=
+-"_top">http://invisible-island.net/ncurses/ncurses-intro.html</a> -
+-somewhat obsolete. I was inspired by this document and the
+-structure of this HOWTO follows from the original document</p>
+-</li>
+-</ul>
+-</div>
+-</div>
+-</body>
+-</html>
++only way to find out is to follow the rules of the game.</I
++></SPAN
++></PRE
++><P
++>This program starts with a simple inverted U pattern and shows how wonderful
++life works. There is a lot of room for improvement in the program. You can let
++the user enter pattern of his choice or even take input from a file. You can
++also change rules and play with a lot of variations. Search on <A
++HREF="http://www.google.com"
++TARGET="_top"
++>google</A
++> for interesting information on game
++of life.</P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>File Path: JustForFun/life.c</I
++></SPAN
++></P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="MAGIC"
++>20.2. Magic Square</A
++></H3
++><P
++>Magic Square, another wonder of math, is very simple to understand but very
++difficult to make. In a magic square sum of the numbers in each row, each column
++is equal. Even diagnol sum can be equal. There are many variations which have
++special properties.</P
++><P
++>This program creates a simple magic square of odd order.</P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>File Path: JustForFun/magic.c</I
++></SPAN
++></P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="HANOI"
++>20.3. Towers of Hanoi</A
++></H3
++><P
++>The famous towers of hanoi solver. The aim of the game is to move the disks on
++the first peg to last peg, using middle peg as a temporary stay. The catch is
++not to place a larger disk over a small disk at any time.</P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>File Path: JustForFun/hanoi.c</I
++></SPAN
++></P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="QUEENS"
++>20.4. Queens Puzzle</A
++></H3
++><P
++>The objective of the famous N-Queen puzzle is to put N queens on a N X N chess
++board without attacking each other. </P
++><P
++>This program solves it with a simple backtracking technique.</P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>File Path: JustForFun/queens.c</I
++></SPAN
++></P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="SHUFFLE"
++>20.5. Shuffle</A
++></H3
++><P
++>A fun game, if you have time to kill. </P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>File Path: JustForFun/shuffle.c</I
++></SPAN
++></P
++></DIV
++><DIV
++CLASS="SECT2"
++><HR><H3
++CLASS="SECT2"
++><A
++NAME="TT"
++>20.6. Typing Tutor</A
++></H3
++><P
++>A simple typing tutor, I created more out of need than for ease of use. If you
++know how to put your fingers correctly on the keyboard, but lack practice, this
++can be helpful. </P
++><P
++><SPAN
++CLASS="emphasis"
++><I
++CLASS="EMPHASIS"
++>File Path: JustForFun/tt.c</I
++></SPAN
++></P
++></DIV
++></DIV
++><DIV
++CLASS="SECT1"
++><HR><H2
++CLASS="SECT1"
++><A
++NAME="REF"
++>21. References</A
++></H2
++><P
++></P
++><UL
++><LI
++><P
++>NCURSES man pages </P
++></LI
++><LI
++><P
++>NCURSES FAQ at <A
++HREF="http://invisible-island.net/ncurses/ncurses.faq.html"
++TARGET="_top"
++>http://invisible-island.net/ncurses/ncurses.faq.html</A
++>
++ </P
++></LI
++><LI
++><P
++>Writing programs with NCURSES by Eric Raymond and Zeyd M.
++Ben-Halim at
++<A
++HREF="http://invisible-island.net/ncurses/ncurses-intro.html"
++TARGET="_top"
++>http://invisible-island.net/ncurses/ncurses-intro.html</A
++> - somewhat
++obsolete. I was inspired by this document and the structure of this HOWTO
++follows from the original document</P
++></LI
++></UL
++></DIV
++></DIV
++></BODY
++></HTML
++>
+\ No newline at end of file
+Index: doc/html/ada/files.htm
+--- ncurses-5.9/doc/html/ada/files.htm 2005-05-14 16:28:37.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/files.htm 2013-05-18 21:41:06.000000000 +0000
+@@ -1,5 +1,17 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE></TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE></TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+ <H2 ALIGN=CENTER>Files</H2>
+ <A HREF="files/T.htm">[T]</A>
+Index: doc/html/ada/files/T.htm
+--- ncurses-5.9/doc/html/ada/files/T.htm 2005-05-14 16:28:37.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/files/T.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,5 +1,9 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>T</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>T</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Files - T</H2>
+ <A HREF="../files.htm" TARGET="_self">[index]</A>
+@@ -74,5 +78,6 @@
+ <LI><A HREF="../terminal_interface-curses-trace__ads.htm" TARGET="main">terminal_interface-curses-trace.ads</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm" TARGET="main">terminal_interface-curses.adb</A>
+ <LI><A HREF="../terminal_interface-curses__ads.htm" TARGET="main">terminal_interface-curses.ads</A>
++<LI><A HREF="../terminal_interface-curses_constants__ads.htm" TARGET="main">terminal_interface-curses_constants.ads</A>
+ <LI><A HREF="../terminal_interface__ads.htm" TARGET="main">terminal_interface.ads</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs.htm
+--- ncurses-5.9/doc/html/ada/funcs.htm 2005-05-14 16:28:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs.htm 2013-05-18 21:41:07.000000000 +0000
+@@ -1,5 +1,17 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE></TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE></TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+ <H2 ALIGN=CENTER>Functions/Procedures</H2>
+ <A HREF="funcs/A.htm">[A]</A>
+Index: doc/html/ada/funcs/A.htm
+--- ncurses-5.9/doc/html/ada/funcs/A.htm 2011-03-19 23:18:38.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/A.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,24 +1,29 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>A</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>A</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - A</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_129_13" TARGET="main">Above</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_525_14" TARGET="main">Add - terminal_interface-curses.ads:525</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_530_14" TARGET="main">Add - terminal_interface-curses.ads:530</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_536_14" TARGET="main">Add - terminal_interface-curses.ads:536</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_544_14" TARGET="main">Add - terminal_interface-curses.ads:544</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_655_14" TARGET="main">Add - terminal_interface-curses.ads:655</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_664_14" TARGET="main">Add - terminal_interface-curses.ads:664</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_679_14" TARGET="main">Add - terminal_interface-curses.ads:679</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_688_14" TARGET="main">Add - terminal_interface-curses.ads:688</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1309_14" TARGET="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1309</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1314_14" TARGET="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1314</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_553_14" TARGET="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:553</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_559_14" TARGET="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:559</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_959_16" TARGET="main">Ahead</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_128_13" TARGET="main">Above</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_567_13" TARGET="main">ACS_Map</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_693_14" TARGET="main">Add - terminal_interface-curses.ads:693</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_698_14" TARGET="main">Add - terminal_interface-curses.ads:698</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_704_14" TARGET="main">Add - terminal_interface-curses.ads:704</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_712_14" TARGET="main">Add - terminal_interface-curses.ads:712</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_823_14" TARGET="main">Add - terminal_interface-curses.ads:823</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_832_14" TARGET="main">Add - terminal_interface-curses.ads:832</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_847_14" TARGET="main">Add - terminal_interface-curses.ads:847</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_856_14" TARGET="main">Add - terminal_interface-curses.ads:856</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1477_14" TARGET="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1477</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1482_14" TARGET="main">Add_Character_To_Pad_And_Echo_It - terminal_interface-curses.ads:1482</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_721_14" TARGET="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:721</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_727_14" TARGET="main">Add_With_Immediate_Echo - terminal_interface-curses.ads:727</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_841_16" TARGET="main">Ahead</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16" TARGET="main">Allocate_Arg</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1018_14" TARGET="main">Allow_Scrolling</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1838_14" TARGET="main">Assume_Default_Colors</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1186_14" TARGET="main">Allow_Scrolling</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2008_14" TARGET="main">Assume_Default_Colors</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/B.htm
+--- ncurses-5.9/doc/html/ada/funcs/B.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/B.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,21 +1,25 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>B</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>B</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - B</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_458_14" TARGET="main">Background - terminal_interface-curses-forms.ads:458</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_463_14" TARGET="main">Background - terminal_interface-curses-forms.ads:463</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_455_14" TARGET="main">Background - terminal_interface-curses-menus.ads:455</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_460_14" TARGET="main">Background - terminal_interface-curses-menus.ads:460</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2052_16" TARGET="main">Baud</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1649_13" TARGET="main">Baudrate</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_872_14" TARGET="main">Beep</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_751_16" TARGET="main">Beeper</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_975_16" TARGET="main">Behind</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_134_13" TARGET="main">Below</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_706_14" TARGET="main">Border</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_77_14" TARGET="main">Bottom</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_455_14" TARGET="main">Background - terminal_interface-curses-forms.ads:455</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_460_14" TARGET="main">Background - terminal_interface-curses-forms.ads:460</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_449_14" TARGET="main">Background - terminal_interface-curses-menus.ads:449</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_454_14" TARGET="main">Background - terminal_interface-curses-menus.ads:454</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2065_16" TARGET="main">Baud</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1817_13" TARGET="main">Baudrate</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1040_14" TARGET="main">Beep</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_752_16" TARGET="main">Beeper</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_857_16" TARGET="main">Behind</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_133_13" TARGET="main">Below</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_874_14" TARGET="main">Border</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_76_14" TARGET="main">Bottom</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_65_16" TARGET="main">Bottompanel</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_722_14" TARGET="main">Box</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_890_14" TARGET="main">Box</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/C.htm
+--- ncurses-5.9/doc/html/ada/funcs/C.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/C.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,55 +1,62 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>C</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>C</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - C</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2213_16" TARGET="main">Canchangecolor</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1741_13" TARGET="main">Can_Change_Color</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_771_16" TARGET="main">Cbreak</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_386_13" TARGET="main">Changed</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_847_14" TARGET="main">Change_Attributes - terminal_interface-curses.ads:847</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_856_14" TARGET="main">Change_Attributes - terminal_interface-curses.ads:856</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1118_14" TARGET="main">Change_Background</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1154_14" TARGET="main">Change_Lines_Status</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_185_13" TARGET="main">Char_Check_Router</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1082_14" TARGET="main">Clear</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_968_16" TARGET="main">Clear_Ok</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_983_14" TARGET="main">Clear_On_Next_Update</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1535_14" TARGET="main">Clear_Soft_Label_Keys</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1096_14" TARGET="main">Clear_To_End_Of_Line</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1089_14" TARGET="main">Clear_To_End_Of_Screen</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2229_16" TARGET="main">Canchangecolor</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1909_13" TARGET="main">Can_Change_Color</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_772_16" TARGET="main">Cbreak</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_383_13" TARGET="main">Changed</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1015_14" TARGET="main">Change_Attributes - terminal_interface-curses.ads:1015</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1024_14" TARGET="main">Change_Attributes - terminal_interface-curses.ads:1024</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1286_14" TARGET="main">Change_Background</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1322_14" TARGET="main">Change_Lines_Status</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_186_13" TARGET="main">Char_Check_Router</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1250_14" TARGET="main">Clear</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_970_16" TARGET="main">Clear_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1151_14" TARGET="main">Clear_On_Next_Update</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1703_14" TARGET="main">Clear_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1264_14" TARGET="main">Clear_To_End_Of_Line</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1257_14" TARGET="main">Clear_To_End_Of_Screen</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_98_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:98</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_99_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:99</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2230_16" TARGET="main">Colorcontent</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1746_14" TARGET="main">Color_Content</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_417_13" TARGET="main">Columns</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1176_14" TARGET="main">Copy</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1269_16" TARGET="main">Copywin</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_167_13" TARGET="main">Copy_Arg</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_774_16" TARGET="main">Count - terminal_interface-curses-forms.adb:774</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_912_16" TARGET="main">Count - terminal_interface-curses-menus.adb:912</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2246_16" TARGET="main">Colorcontent</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2382_16" TARGET="main">COLORS_As_Function</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1914_14" TARGET="main">Color_Content</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2390_16" TARGET="main">COLOR_PAIRS_As_Function</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2365_16" TARGET="main">COLS_As_Function</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_553_13" TARGET="main">Columns</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1344_14" TARGET="main">Copy</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1275_16" TARGET="main">Copywin</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_168_13" TARGET="main">Copy_Arg</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_680_16" TARGET="main">Count - terminal_interface-curses-forms.adb:680</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_797_16" TARGET="main">Count - terminal_interface-curses-menus.adb:797</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:48</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_297_13" TARGET="main">Create - terminal_interface-curses-forms.ads:297</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_627_13" TARGET="main">Create - terminal_interface-curses-forms.ads:627</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_195_13" TARGET="main">Create - terminal_interface-curses-menus.ads:195</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_642_13" TARGET="main">Create - terminal_interface-curses-menus.ads:642</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_67_13" TARGET="main">Create - terminal_interface-curses-panels.ads:67</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_571_13" TARGET="main">Create - terminal_interface-curses.ads:571</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_733_13" TARGET="main">Current - terminal_interface-curses-forms.ads:733</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_298_13" TARGET="main">Current - terminal_interface-curses-menus.ads:298</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1040_16" TARGET="main">Current_Fld</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_483_13" TARGET="main">Current_Window</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_300_16" TARGET="main">Curr_Item</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_294_13" TARGET="main">Create - terminal_interface-curses-forms.ads:294</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_624_13" TARGET="main">Create - terminal_interface-curses-forms.ads:624</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_189_13" TARGET="main">Create - terminal_interface-curses-menus.ads:189</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_636_13" TARGET="main">Create - terminal_interface-curses-menus.ads:636</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_66_13" TARGET="main">Create - terminal_interface-curses-panels.ads:66</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_739_13" TARGET="main">Create - terminal_interface-curses.ads:739</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_730_13" TARGET="main">Current - terminal_interface-curses-forms.ads:730</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_292_13" TARGET="main">Current - terminal_interface-curses-menus.ads:292</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_916_16" TARGET="main">Current_Fld</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_650_13" TARGET="main">Current_Window</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_261_16" TARGET="main">Curr_Item</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2460_17" TARGET="main">curses_freeall</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1861_14" TARGET="main">Curses_Free_All</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1848_13" TARGET="main">Curses_Version</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2031_14" TARGET="main">Curses_Free_All</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2018_13" TARGET="main">Curses_Version</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2452_16" TARGET="main">curses_versionC</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2317_16" TARGET="main">Curs_Set</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2334_16" TARGET="main">Curs_Set</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2438_16" TARGET="main">C_Assume_Default_Colors</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_148_13" TARGET="main">C_Builtin_Router</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Choice_Router</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Builtin_Router</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_150_13" TARGET="main">C_Choice_Router</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_78_13" TARGET="main">C_Generic_Choice</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13" TARGET="main">C_Generic_Type</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2426_16" TARGET="main">C_Use_Default_Colors</A>
+Index: doc/html/ada/funcs/D.htm
+--- ncurses-5.9/doc/html/ada/funcs/D.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/D.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,47 +1,51 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>D</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>D</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - D</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_696_13" TARGET="main">Data_Ahead</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_701_13" TARGET="main">Data_Behind</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_693_13" TARGET="main">Data_Ahead</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_698_13" TARGET="main">Data_Behind</A>
+ <LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_104_13" TARGET="main">Default_Field_Options</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_129_13" TARGET="main">Default_Form_Options</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_172_13" TARGET="main">Default_Item_Options</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_148_13" TARGET="main">Default_Menu_Options</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1598_14" TARGET="main">Define_Key</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2000_16" TARGET="main">Defkey</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2249_16" TARGET="main">Def_Prog_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2251_16" TARGET="main">Def_Shell_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2032_16" TARGET="main">Delayoutput</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1635_14" TARGET="main">Delay_Output</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_319_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:319</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_638_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:638</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_207_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:207</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_649_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:649</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_139_14" TARGET="main">Delete - terminal_interface-curses-panels.ads:139</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_590_14" TARGET="main">Delete - terminal_interface-curses.ads:590</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1336_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1336</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1341_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1341</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1214_14" TARGET="main">Delete_Line</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_126_13" TARGET="main">Default_Form_Options</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_166_13" TARGET="main">Default_Item_Options</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_145_13" TARGET="main">Default_Menu_Options</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1766_14" TARGET="main">Define_Key</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2013_16" TARGET="main">Defkey</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2266_16" TARGET="main">Def_Prog_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2268_16" TARGET="main">Def_Shell_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2045_16" TARGET="main">Delayoutput</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1803_14" TARGET="main">Delay_Output</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_316_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:316</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_635_14" TARGET="main">Delete - terminal_interface-curses-forms.ads:635</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_201_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:201</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_643_14" TARGET="main">Delete - terminal_interface-curses-menus.ads:643</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_138_14" TARGET="main">Delete - terminal_interface-curses-panels.ads:138</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_758_14" TARGET="main">Delete - terminal_interface-curses.ads:758</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1504_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1504</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1509_14" TARGET="main">Delete_Character - terminal_interface-curses.ads:1509</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1382_14" TARGET="main">Delete_Line</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_156_16" TARGET="main">Del_Panel</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_606_13" TARGET="main">Derived_Window</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_298_16" TARGET="main">Derwin</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_126_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:126</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_270_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:270</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_278_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:278</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_278_14" TARGET="main">Description - terminal_interface-curses-menus.ads:278</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_282_14" TARGET="main">Description - terminal_interface-curses-menus.ads:282</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_774_13" TARGET="main">Derived_Window</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_299_16" TARGET="main">Derwin</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_108_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:108</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_234_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:234</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_242_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:242</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_272_14" TARGET="main">Description - terminal_interface-curses-menus.ads:272</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_276_14" TARGET="main">Description - terminal_interface-curses-menus.ads:276</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_131_14" TARGET="main">Dispatch_Event</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1059_16" TARGET="main">Do_Update</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_715_13" TARGET="main">Driver - terminal_interface-curses-forms.ads:715</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_664_13" TARGET="main">Driver - terminal_interface-curses-menus.ads:664</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver - terminal_interface-curses-menus.adb:973</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_325_13" TARGET="main">Duplicate - terminal_interface-curses-forms.ads:325</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_616_13" TARGET="main">Duplicate - terminal_interface-curses.ads:616</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_321_16" TARGET="main">Dupwin</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_151_16" TARGET="main">Dup_Field</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_497_14" TARGET="main">Dynamic_Info</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_559_16" TARGET="main">Dyn_Info</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1062_16" TARGET="main">Do_Update</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_712_13" TARGET="main">Driver - terminal_interface-curses-forms.ads:712</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_658_13" TARGET="main">Driver - terminal_interface-curses-menus.ads:658</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_855_16" TARGET="main">Driver - terminal_interface-curses-menus.adb:855</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_322_13" TARGET="main">Duplicate - terminal_interface-curses-forms.ads:322</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_784_13" TARGET="main">Duplicate - terminal_interface-curses.ads:784</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_322_16" TARGET="main">Dupwin</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_130_16" TARGET="main">Dup_Field</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_494_14" TARGET="main">Dynamic_Info</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_494_16" TARGET="main">Dyn_Info</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/E.htm
+--- ncurses-5.9/doc/html/ada/funcs/E.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/E.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,18 +1,22 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>E</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>E</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - E</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_809_16" TARGET="main">Echo</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1588_14" TARGET="main">Enable_Key</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_150_13" TARGET="main">Enclosed_In_Window</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_810_16" TARGET="main">Echo</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1756_14" TARGET="main">Enable_Key</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_146_13" TARGET="main">Enclosed_In_Window</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_113_16" TARGET="main">Endwin</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_124_14" TARGET="main">End_Mouse</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_499_14" TARGET="main">End_Screen</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_497_14" TARGET="main">End_Windows</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1076_14" TARGET="main">Erase</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2060_16" TARGET="main">Erasechar</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1654_13" TARGET="main">Erase_Character</A>
+-<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_96_14" TARGET="main">Eti_Exception</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_120_14" TARGET="main">End_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_667_14" TARGET="main">End_Screen</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_665_14" TARGET="main">End_Windows</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1244_14" TARGET="main">Erase</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2073_16" TARGET="main">Erasechar</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1822_13" TARGET="main">Erase_Character</A>
++<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_88_14" TARGET="main">Eti_Exception</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/F.htm
+--- ncurses-5.9/doc/html/ada/funcs/F.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/F.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,55 +1,59 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>F</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>F</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - F</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_605_13" TARGET="main">Fields</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_468_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:468</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_478_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:478</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_255_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:255</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_266_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:266</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_177_13" TARGET="main">Field_Check_Router</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_611_13" TARGET="main">Field_Count</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_424_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:424</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_434_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:434</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_213_16" TARGET="main">Field_Just</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_374_16" TARGET="main">Field_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_352_16" TARGET="main">Field_Opts_Off</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_349_16" TARGET="main">Field_Opts_On</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_507_16" TARGET="main">Field_Pad</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_293_16" TARGET="main">Field_Status</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16" TARGET="main">Field_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_116_14" TARGET="main">Fill_String - terminal_interface-curses-aux.ads:116</A>
+-<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_121_13" TARGET="main">Fill_String - terminal_interface-curses-aux.ads:121</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_761_16" TARGET="main">Flash</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_877_14" TARGET="main">Flash_Screen</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_528_16" TARGET="main">Fld_Info</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_602_13" TARGET="main">Fields</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_410_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:410</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_420_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:420</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_222_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:222</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_233_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:233</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_178_13" TARGET="main">Field_Check_Router</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_608_13" TARGET="main">Field_Count</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_371_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:371</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_381_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:381</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_188_16" TARGET="main">Field_Just</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_327_16" TARGET="main">Field_Opts</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_310_16" TARGET="main">Field_Opts_Off</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_307_16" TARGET="main">Field_Opts_On</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_446_16" TARGET="main">Field_Pad</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_259_16" TARGET="main">Field_Status</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_69_16" TARGET="main">Field_Userptr</A>
++<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_92_14" TARGET="main">Fill_String - terminal_interface-curses-aux.ads:92</A>
++<LI><A HREF="../terminal_interface-curses-aux__ads.htm#ref_97_13" TARGET="main">Fill_String - terminal_interface-curses-aux.ads:97</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_762_16" TARGET="main">Flash</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1045_14" TARGET="main">Flash_Screen</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_467_16" TARGET="main">Fld_Info</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_65_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:65</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_66_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:66</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2042_16" TARGET="main">Flushinp</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1640_14" TARGET="main">Flush_Input</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_438_14" TARGET="main">Foreground - terminal_interface-curses-forms.ads:438</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_443_14" TARGET="main">Foreground - terminal_interface-curses-forms.ads:443</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_435_14" TARGET="main">Foreground - terminal_interface-curses-menus.ads:435</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_440_14" TARGET="main">Foreground - terminal_interface-curses-menus.ads:440</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_555_14" TARGET="main">Format</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_889_16" TARGET="main">Form_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_867_16" TARGET="main">Form_Opts_Off</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_864_16" TARGET="main">Form_Opts_On</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_84_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:84</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_92_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:92</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_628_16" TARGET="main">Form_Sub</A>
+-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16" TARGET="main">Form_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_600_16" TARGET="main">Form_Win</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_140_14" TARGET="main">Free - terminal_interface-curses-forms.ads:140</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_184_14" TARGET="main">Free - terminal_interface-curses-menus.ads:184</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_825_16" TARGET="main">Free - terminal_interface-curses-forms.adb:825</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_958_16" TARGET="main">Free - terminal_interface-curses-menus.adb:958</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_131_16" TARGET="main">Freeitem</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_172_14" TARGET="main">Free_Arg</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_133_16" TARGET="main">Free_Field</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_996_16" TARGET="main">Frm_Driver</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_783_13" TARGET="main">Function_Key</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_788_13" TARGET="main">Function_Key_Code</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2055_16" TARGET="main">Flushinp</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1808_14" TARGET="main">Flush_Input</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_435_14" TARGET="main">Foreground - terminal_interface-curses-forms.ads:435</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_440_14" TARGET="main">Foreground - terminal_interface-curses-forms.ads:440</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_429_14" TARGET="main">Foreground - terminal_interface-curses-menus.ads:429</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_434_14" TARGET="main">Foreground - terminal_interface-curses-menus.ads:434</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_549_14" TARGET="main">Format</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_779_16" TARGET="main">Form_Opts</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_762_16" TARGET="main">Form_Opts_Off</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_759_16" TARGET="main">Form_Opts_On</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_67_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:67</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_75_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:75</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_553_16" TARGET="main">Form_Sub</A>
++<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_70_16" TARGET="main">Form_Userptr</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_528_16" TARGET="main">Form_Win</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_137_14" TARGET="main">Free - terminal_interface-curses-forms.ads:137</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_178_14" TARGET="main">Free - terminal_interface-curses-menus.ads:178</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_728_16" TARGET="main">Free - terminal_interface-curses-forms.adb:728</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_843_16" TARGET="main">Free - terminal_interface-curses-menus.adb:843</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_113_16" TARGET="main">Freeitem</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_173_14" TARGET="main">Free_Arg</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_116_16" TARGET="main">Free_Field</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_878_16" TARGET="main">Frm_Driver</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_951_13" TARGET="main">Function_Key</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_956_13" TARGET="main">Function_Key_Code</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/G.htm
+--- ncurses-5.9/doc/html/ada/funcs/G.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/G.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,5 +1,9 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>G</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>G</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - G</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+@@ -8,73 +12,73 @@
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13" TARGET="main">Generic_Field_Check</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13" TARGET="main">Generic_Next</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13" TARGET="main">Generic_Prev</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1465_14" TARGET="main">Get - terminal_interface-curses.ads:1465</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1476_14" TARGET="main">Get - terminal_interface-curses.ads:1476</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1370_16" TARGET="main">GetBegX</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1367_16" TARGET="main">GetBegY</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1388_16" TARGET="main">GetCurX</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1385_16" TARGET="main">GetCurY</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1352_16" TARGET="main">GetMaxX</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1349_16" TARGET="main">GetMaxY</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1633_14" TARGET="main">Get - terminal_interface-curses.ads:1633</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1644_14" TARGET="main">Get - terminal_interface-curses.ads:1644</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1377_16" TARGET="main">GetBegX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1374_16" TARGET="main">GetBegY</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1395_16" TARGET="main">GetCurX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1392_16" TARGET="main">GetCurY</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1359_16" TARGET="main">GetMaxX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1356_16" TARGET="main">GetMaxY</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_66_16" TARGET="main">Getmouse</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1407_16" TARGET="main">GetParX</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1404_16" TARGET="main">GetParY</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1414_16" TARGET="main">GetParX</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1411_16" TARGET="main">GetParY</A>
+ <LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_65_16" TARGET="main">getwin</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_61_13" TARGET="main">Get_Arg</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1127_13" TARGET="main">Get_Background</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_366_14" TARGET="main">Get_Buffer - terminal_interface-curses-forms.ads:366</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_372_13" TARGET="main">Get_Buffer - terminal_interface-curses-forms.ads:372</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_828_13" TARGET="main">Get_Character_Attribute - terminal_interface-curses.ads:828</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_834_13" TARGET="main">Get_Character_Attribute - terminal_interface-curses.ads:834</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1246_14" TARGET="main">Get_Cursor_Position</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1295_13" TARGET="main">Get_Background</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_363_14" TARGET="main">Get_Buffer - terminal_interface-curses-forms.ads:363</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_369_13" TARGET="main">Get_Buffer - terminal_interface-curses-forms.ads:369</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_996_13" TARGET="main">Get_Character_Attribute - terminal_interface-curses.ads:996</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1002_13" TARGET="main">Get_Character_Attribute - terminal_interface-curses.ads:1002</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1414_14" TARGET="main">Get_Cursor_Position</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_59_13" TARGET="main">Get_Entry</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_133_14" TARGET="main">Get_Event</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1084_16" TARGET="main">Get_Fieldindex</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_129_14" TARGET="main">Get_Event</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_957_16" TARGET="main">Get_Fieldindex</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_58_13" TARGET="main">Get_Fieldtype</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_569_13" TARGET="main">Get_Field_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_574_13" TARGET="main">Get_Field_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_566_13" TARGET="main">Get_Field_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_571_13" TARGET="main">Get_Field_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_63_13" TARGET="main">Get_Flag - terminal_interface-curses-termcap.ads:63</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_64_13" TARGET="main">Get_Flag - terminal_interface-curses-terminfo.ads:64</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_579_13" TARGET="main">Get_Form_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_584_13" TARGET="main">Get_Form_Term_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_749_13" TARGET="main">Get_Index - terminal_interface-curses-forms.ads:749</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_314_13" TARGET="main">Get_Index - terminal_interface-curses-menus.ads:314</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_340_16" TARGET="main">Get_Itemindex</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_593_13" TARGET="main">Get_Item_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_598_13" TARGET="main">Get_Item_Term_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_349_13" TARGET="main">Get_Justification</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_917_13" TARGET="main">Get_KeyPad_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_753_13" TARGET="main">Get_Keystroke</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_603_13" TARGET="main">Get_Menu_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_532_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:532</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_540_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:540</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_608_13" TARGET="main">Get_Menu_Term_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_129_13" TARGET="main">Get_Mouse</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_576_13" TARGET="main">Get_Form_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_581_13" TARGET="main">Get_Form_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_746_13" TARGET="main">Get_Index - terminal_interface-curses-forms.ads:746</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_308_13" TARGET="main">Get_Index - terminal_interface-curses-menus.ads:308</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_298_16" TARGET="main">Get_Itemindex</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_587_13" TARGET="main">Get_Item_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_592_13" TARGET="main">Get_Item_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_346_13" TARGET="main">Get_Justification</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1085_13" TARGET="main">Get_KeyPad_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_921_13" TARGET="main">Get_Keystroke</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_597_13" TARGET="main">Get_Menu_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_459_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:459</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_467_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:467</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_602_13" TARGET="main">Get_Menu_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_125_13" TARGET="main">Get_Mouse</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_67_14" TARGET="main">Get_Number - terminal_interface-curses-termcap.ads:67</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_68_13" TARGET="main">Get_Number - terminal_interface-curses-terminfo.ads:68</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_415_14" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:415</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_420_13" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:420</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_662_14" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:662</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_667_13" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:667</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_255_14" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:255</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_260_13" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:260</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_351_14" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:351</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_356_13" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:356</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1254_14" TARGET="main">Get_Origin_Relative_To_Parent</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1070_16" TARGET="main">Get_Page</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_758_16" TARGET="main">Get_Pattern</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1230_14" TARGET="main">Get_Size</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1524_14" TARGET="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1524</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1529_13" TARGET="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1529</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1565_13" TARGET="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1565</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1569_13" TARGET="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1569</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_713_16" TARGET="main">Get_Spacing</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_412_14" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:412</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_417_13" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:417</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_659_14" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:659</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_664_13" TARGET="main">Get_Options - terminal_interface-curses-forms.ads:664</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_249_14" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:249</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_254_13" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:254</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_345_14" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:345</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_350_13" TARGET="main">Get_Options - terminal_interface-curses-menus.ads:350</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1422_14" TARGET="main">Get_Origin_Relative_To_Parent</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_943_16" TARGET="main">Get_Page</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_665_16" TARGET="main">Get_Pattern</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1398_14" TARGET="main">Get_Size</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1692_14" TARGET="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1692</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1697_13" TARGET="main">Get_Soft_Label_Key - terminal_interface-curses.ads:1697</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1733_13" TARGET="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1733</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1737_13" TARGET="main">Get_Soft_Label_Key_Attributes - terminal_interface-curses.ads:1737</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_624_16" TARGET="main">Get_Spacing</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_73_14" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:73</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_76_13" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:76</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_57_14" TARGET="main">Get_String - terminal_interface-curses-terminfo.ads:57</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_526_13" TARGET="main">Get_Sub_Window - terminal_interface-curses-forms.ads:526</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_382_13" TARGET="main">Get_Sub_Window - terminal_interface-curses-menus.ads:382</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_79_13" TARGET="main">Get_Type</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_523_13" TARGET="main">Get_Sub_Window - terminal_interface-curses-forms.ads:523</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_376_13" TARGET="main">Get_Sub_Window - terminal_interface-curses-menus.ads:376</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_80_13" TARGET="main">Get_Type</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data - terminal_interface-curses-forms-field_user_data.ads:59</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data - terminal_interface-curses-forms-field_user_data.ads:64</A>
+ <LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data - terminal_interface-curses-forms-form_user_data.ads:59</A>
+@@ -85,12 +89,12 @@
+ <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data - terminal_interface-curses-menus-menu_user_data.ads:64</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_59_14" TARGET="main">Get_User_Data - terminal_interface-curses-panels-user_data.ads:59</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_64_13" TARGET="main">Get_User_Data - terminal_interface-curses-panels-user_data.ads:64</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_515_13" TARGET="main">Get_Window - terminal_interface-curses-forms.ads:515</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_371_13" TARGET="main">Get_Window - terminal_interface-curses-menus.ads:371</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_102_13" TARGET="main">Get_Window - terminal_interface-curses-panels.ads:102</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_512_13" TARGET="main">Get_Window - terminal_interface-curses-forms.ads:512</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_365_13" TARGET="main">Get_Window - terminal_interface-curses-menus.ads:365</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_101_13" TARGET="main">Get_Window - terminal_interface-curses-panels.ads:101</A>
+ <LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_48_13" TARGET="main">Get_Window - terminal_interface-curses-putwin.ads:48</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_62_13" TARGET="main">Get_Window - terminal_interface-curses-text_io.ads:62</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1238_14" TARGET="main">Get_Window_Position</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_475_14" TARGET="main">Grey - terminal_interface-curses-menus.ads:475</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_480_14" TARGET="main">Grey - terminal_interface-curses-menus.ads:480</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1406_14" TARGET="main">Get_Window_Position</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_469_14" TARGET="main">Grey - terminal_interface-curses-menus.ads:469</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_474_14" TARGET="main">Grey - terminal_interface-curses-menus.ads:474</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/H.htm
+--- ncurses-5.9/doc/html/ada/funcs/H.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/H.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,22 +1,26 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>H</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>H</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - H</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_859_16" TARGET="main">Halfdelay</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_925_14" TARGET="main">Half_Delay</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2184_16" TARGET="main">Hascolors</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_547_16" TARGET="main">Haskey</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1728_13" TARGET="main">Has_Colors</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2076_16" TARGET="main">Has_Ic</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2088_16" TARGET="main">Has_Il</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1664_13" TARGET="main">Has_Insert_Character</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1669_13" TARGET="main">Has_Insert_Line</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_769_13" TARGET="main">Has_Key</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_94_13" TARGET="main">Has_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_860_16" TARGET="main">Halfdelay</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1093_14" TARGET="main">Half_Delay</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2199_16" TARGET="main">Hascolors</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_550_16" TARGET="main">Haskey</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1896_13" TARGET="main">Has_Colors</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2089_16" TARGET="main">Has_Ic</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2101_16" TARGET="main">Has_Il</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1832_13" TARGET="main">Has_Insert_Character</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1837_13" TARGET="main">Has_Insert_Line</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_937_13" TARGET="main">Has_Key</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_90_13" TARGET="main">Has_Mouse</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_60_13" TARGET="main">Has_String</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_97_14" TARGET="main">Hide</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_96_14" TARGET="main">Hide</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_95_16" TARGET="main">Hidepanel</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_730_14" TARGET="main">Horizontal_Line</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_898_14" TARGET="main">Horizontal_Line</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/I.htm
+--- ncurses-5.9/doc/html/ada/funcs/I.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/I.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,51 +1,55 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>I</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>I</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - I</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_992_17" TARGET="main">IDC_Ok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_980_16" TARGET="main">IDL_Ok</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1011_14" TARGET="main">Immediate_Update_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1014_17" TARGET="main">Immedok</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_486_14" TARGET="main">Info</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2199_16" TARGET="main">Initcolor</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2144_16" TARGET="main">Initpair</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_994_17" TARGET="main">IDC_Ok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_982_16" TARGET="main">IDL_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1179_14" TARGET="main">Immediate_Update_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1016_17" TARGET="main">Immedok</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_483_14" TARGET="main">Info</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2214_16" TARGET="main">Initcolor</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2157_16" TARGET="main">Initpair</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_100_16" TARGET="main">Initscr</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1733_14" TARGET="main">Init_Color</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1714_14" TARGET="main">Init_Pair</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_488_14" TARGET="main">Init_Screen</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1501_14" TARGET="main">Init_Soft_Label_Keys</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_491_14" TARGET="main">Init_Windows</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1373_14" TARGET="main">Insert - terminal_interface-curses.ads:1373</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1379_14" TARGET="main">Insert - terminal_interface-curses.ads:1379</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1391_14" TARGET="main">Insert - terminal_interface-curses.ads:1391</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1400_14" TARGET="main">Insert - terminal_interface-curses.ads:1400</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1206_14" TARGET="main">Insert_Delete_Lines</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1220_14" TARGET="main">Insert_Line</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_871_16" TARGET="main">Intrflush</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1901_14" TARGET="main">Init_Color</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1882_14" TARGET="main">Init_Pair</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_656_14" TARGET="main">Init_Screen</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1669_14" TARGET="main">Init_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_659_14" TARGET="main">Init_Windows</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1541_14" TARGET="main">Insert - terminal_interface-curses.ads:1541</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1547_14" TARGET="main">Insert - terminal_interface-curses.ads:1547</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1559_14" TARGET="main">Insert - terminal_interface-curses.ads:1559</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1568_14" TARGET="main">Insert - terminal_interface-curses.ads:1568</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1374_14" TARGET="main">Insert_Delete_Lines</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1388_14" TARGET="main">Insert_Line</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_872_16" TARGET="main">Intrflush</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_123_16" TARGET="main">Isendwin</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_504_13" TARGET="main">Is_End_Window</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_776_13" TARGET="main">Is_Function_Key</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_124_13" TARGET="main">Is_Hidden</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_851_16" TARGET="main">Is_Keypad</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_672_13" TARGET="main">Is_End_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_944_13" TARGET="main">Is_Function_Key</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_123_13" TARGET="main">Is_Hidden</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_852_16" TARGET="main">Is_Keypad</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_50_13" TARGET="main">Is_MinusOne_Pointer</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1119_16" TARGET="main">Is_New</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_767_13" TARGET="main">Is_New_Page</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1035_16" TARGET="main">Is_Scroll_Ok</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1162_13" TARGET="main">Is_Touched - terminal_interface-curses.ads:1162</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1167_13" TARGET="main">Is_Touched - terminal_interface-curses.ads:1167</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_128_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:128</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_253_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:253</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_261_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:261</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_627_13" TARGET="main">Items</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_633_13" TARGET="main">Item_Count</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_860_16" TARGET="main">Item_Init</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_234_16" TARGET="main">Item_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_214_16" TARGET="main">Item_Opts_Off</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_211_16" TARGET="main">Item_Opts_On</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_868_16" TARGET="main">Item_Term</A>
+-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16" TARGET="main">Item_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_168_16" TARGET="main">Item_Val</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_181_16" TARGET="main">Item_Vis</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_989_16" TARGET="main">Is_New</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_764_13" TARGET="main">Is_New_Page</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1037_16" TARGET="main">Is_Scroll_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1330_13" TARGET="main">Is_Touched - terminal_interface-curses.ads:1330</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1335_13" TARGET="main">Is_Touched - terminal_interface-curses.ads:1335</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_110_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:110</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_217_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:217</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_225_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:225</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_621_13" TARGET="main">Items</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_627_13" TARGET="main">Item_Count</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_749_16" TARGET="main">Item_Init</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_199_16" TARGET="main">Item_Opts</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_184_16" TARGET="main">Item_Opts_Off</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_181_16" TARGET="main">Item_Opts_On</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_757_16" TARGET="main">Item_Term</A>
++<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_61_16" TARGET="main">Item_Userptr</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_143_16" TARGET="main">Item_Val</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_156_16" TARGET="main">Item_Vis</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/K.htm
+--- ncurses-5.9/doc/html/ada/funcs/K.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/K.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,14 +1,18 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>K</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>K</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - K</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_64_16" TARGET="main">Keyname</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1987_16" TARGET="main">Keyok</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_840_16" TARGET="main">Keypad</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1612_14" TARGET="main">Key_Name - terminal_interface-curses.ads:1612</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1618_13" TARGET="main">Key_Name - terminal_interface-curses.ads:1618</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2068_16" TARGET="main">Killchar</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1659_13" TARGET="main">Kill_Character</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1999_16" TARGET="main">Keyok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_841_16" TARGET="main">Keypad</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1780_14" TARGET="main">Key_Name - terminal_interface-curses.ads:1780</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1786_13" TARGET="main">Key_Name - terminal_interface-curses.ads:1786</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2081_16" TARGET="main">Killchar</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1827_13" TARGET="main">Kill_Character</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/L.htm
+--- ncurses-5.9/doc/html/ada/funcs/L.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/L.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,20 +1,25 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>L</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>L</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - L</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1004_14" TARGET="main">Leave_Cursor_After_Update</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">Leave_Ok</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1172_14" TARGET="main">Leave_Cursor_After_Update</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1004_16" TARGET="main">Leave_Ok</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_101_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:101</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_102_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:102</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_414_13" TARGET="main">Lines</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_550_13" TARGET="main">Lines</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2357_16" TARGET="main">LINES_As_Function</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_77_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:77</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_78_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:78</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_332_13" TARGET="main">Link</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_172_16" TARGET="main">Lnk_Field</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2110_16" TARGET="main">Longname - terminal_interface-curses.adb:2110</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2118_16" TARGET="main">Longname - terminal_interface-curses.adb:2118</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1679_14" TARGET="main">Long_Name - terminal_interface-curses.ads:1679</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1683_13" TARGET="main">Long_Name - terminal_interface-curses.ads:1683</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_329_13" TARGET="main">Link</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_151_16" TARGET="main">Lnk_Field</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2123_16" TARGET="main">Longname - terminal_interface-curses.adb:2123</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2131_16" TARGET="main">Longname - terminal_interface-curses.adb:2131</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1847_14" TARGET="main">Long_Name - terminal_interface-curses.ads:1847</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1851_13" TARGET="main">Long_Name - terminal_interface-curses.ads:1851</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/M.htm
+--- ncurses-5.9/doc/html/ada/funcs/M.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/M.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,51 +1,55 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>M</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>M</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - M</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_162_13" TARGET="main">Make_Arg</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_413_14" TARGET="main">Mark - terminal_interface-curses-menus.ads:413</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_417_14" TARGET="main">Mark - terminal_interface-curses-menus.ads:417</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_608_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:608</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_618_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:618</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_787_16" TARGET="main">Menu_Fmt</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_569_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:569</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_579_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:579</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_647_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:647</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_657_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:657</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_876_16" TARGET="main">Menu_Init</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_414_16" TARGET="main">Menu_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_394_16" TARGET="main">Menu_Opts_Off</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_391_16" TARGET="main">Menu_Opts_On</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_682_16" TARGET="main">Menu_Pad</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_470_16" TARGET="main">Menu_Sub</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_884_16" TARGET="main">Menu_Term</A>
+-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16" TARGET="main">Menu_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_446_16" TARGET="main">Menu_Win</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_829_16" TARGET="main">Meta</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_163_13" TARGET="main">Make_Arg</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_407_14" TARGET="main">Mark - terminal_interface-curses-menus.ads:407</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_411_14" TARGET="main">Mark - terminal_interface-curses-menus.ads:411</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_529_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:529</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_539_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:539</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_692_16" TARGET="main">Menu_Fmt</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_493_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:493</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_503_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:503</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_565_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:565</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_575_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:575</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_765_16" TARGET="main">Menu_Init</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_358_16" TARGET="main">Menu_Opts</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_343_16" TARGET="main">Menu_Opts_Off</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_340_16" TARGET="main">Menu_Opts_On</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_596_16" TARGET="main">Menu_Pad</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_407_16" TARGET="main">Menu_Sub</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_773_16" TARGET="main">Menu_Term</A>
++<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_16" TARGET="main">Menu_Userptr</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_386_16" TARGET="main">Menu_Win</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_830_16" TARGET="main">Meta</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_110_16" TARGET="main">MMask</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_211_16" TARGET="main">Mouseinterval</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_52_16" TARGET="main">Mouse_Avail</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_157_13" TARGET="main">Mouse_Interval</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_616_14" TARGET="main">Move - terminal_interface-curses-forms.ads:616</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_117_14" TARGET="main">Move - terminal_interface-curses-panels.ads:117</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_786_16" TARGET="main">Move - terminal_interface-curses-forms.adb:786</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_153_13" TARGET="main">Mouse_Interval</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_613_14" TARGET="main">Move - terminal_interface-curses-forms.ads:613</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_116_14" TARGET="main">Move - terminal_interface-curses-panels.ads:116</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_692_16" TARGET="main">Move - terminal_interface-curses-forms.adb:692</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_132_16" TARGET="main">Move - terminal_interface-curses-panels.adb:132</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_513_14" TARGET="main">Move_Cursor</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_628_14" TARGET="main">Move_Derived_Window</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_621_14" TARGET="main">Move_Window</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_350_16" TARGET="main">Mvderwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_681_14" TARGET="main">Move_Cursor</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_796_14" TARGET="main">Move_Derived_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_789_14" TARGET="main">Move_Window</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_351_16" TARGET="main">Mvderwin</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">mvwaddch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1580_16" TARGET="main">Mvwdelch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_336_16" TARGET="main">Mvwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1604_16" TARGET="main">Mvwinch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1629_16" TARGET="main">Mvwinsch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1668_16" TARGET="main">Mvwinsnstr</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_916_16" TARGET="main">M_Post - terminal_interface-curses-forms.adb:916</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_354_16" TARGET="main">M_Post - terminal_interface-curses-menus.adb:354</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_643_16" TARGET="main">M_Scale - terminal_interface-curses-forms.adb:643</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_483_16" TARGET="main">M_Scale - terminal_interface-curses-menus.adb:483</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_918_16" TARGET="main">M_Unpost - terminal_interface-curses-forms.adb:918</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_356_16" TARGET="main">M_Unpost - terminal_interface-curses-menus.adb:356</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1589_16" TARGET="main">Mvwdelch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_337_16" TARGET="main">Mvwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1613_16" TARGET="main">Mvwinch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1638_16" TARGET="main">Mvwinsch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1678_16" TARGET="main">Mvwinsnstr</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_805_16" TARGET="main">M_Post - terminal_interface-curses-forms.adb:805</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_312_16" TARGET="main">M_Post - terminal_interface-curses-menus.adb:312</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_568_16" TARGET="main">M_Scale - terminal_interface-curses-forms.adb:568</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_420_16" TARGET="main">M_Scale - terminal_interface-curses-menus.adb:420</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_807_16" TARGET="main">M_Unpost - terminal_interface-curses-forms.adb:807</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">M_Unpost - terminal_interface-curses-menus.adb:314</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/N.htm
+--- ncurses-5.9/doc/html/ada/funcs/N.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/N.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,35 +1,39 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>N</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>N</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - N</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_269_14" TARGET="main">Name - terminal_interface-curses-menus.ads:269</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_272_14" TARGET="main">Name - terminal_interface-curses-menus.ads:272</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2330_16" TARGET="main">Napms</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1808_14" TARGET="main">Nap_Milli_Seconds</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_116_16" TARGET="main">Newfield</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_804_16" TARGET="main">NewForm</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_98_16" TARGET="main">Newitem</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_939_16" TARGET="main">Newmenu</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1427_16" TARGET="main">Newpad</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_263_14" TARGET="main">Name - terminal_interface-curses-menus.ads:263</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_266_14" TARGET="main">Name - terminal_interface-curses-menus.ads:266</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2347_16" TARGET="main">Napms</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1976_14" TARGET="main">Nap_Milli_Seconds</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_99_16" TARGET="main">Newfield</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_707_16" TARGET="main">NewForm</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_80_16" TARGET="main">Newitem</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_824_16" TARGET="main">Newmenu</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1434_16" TARGET="main">Newpad</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_51_16" TARGET="main">Newpanel</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_234_16" TARGET="main">Newwin</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_222_13" TARGET="main">New_Fieldtype</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_235_16" TARGET="main">Newwin</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_223_13" TARGET="main">New_Fieldtype</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_86_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:86</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_87_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:87</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1269_13" TARGET="main">New_Pad</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1437_13" TARGET="main">New_Pad</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_89_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:89</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_90_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:90</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_193_13" TARGET="main">Next_Router</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_947_16" TARGET="main">NL</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_773_16" TARGET="main">NoCbreak</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_902_16" TARGET="main">Nodelay</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_811_16" TARGET="main">NoEcho</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_949_16" TARGET="main">NoNL</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_792_16" TARGET="main">NoRaw</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_935_16" TARGET="main">Notimeout</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_885_17" TARGET="main">No_Qiflush</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_423_13" TARGET="main">Number_Of_Colors</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_426_13" TARGET="main">Number_Of_Color_Pairs</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_194_13" TARGET="main">Next_Router</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_949_16" TARGET="main">NL</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_774_16" TARGET="main">NoCbreak</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_903_16" TARGET="main">Nodelay</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_812_16" TARGET="main">NoEcho</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_951_16" TARGET="main">NoNL</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_793_16" TARGET="main">NoRaw</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_936_16" TARGET="main">Notimeout</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_886_17" TARGET="main">No_Qiflush</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_559_13" TARGET="main">Number_Of_Colors</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_562_13" TARGET="main">Number_Of_Color_Pairs</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/O.htm
+--- ncurses-5.9/doc/html/ada/funcs/O.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/O.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,12 +1,16 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>O</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>O</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - O</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+ <LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#ref_59_17" TARGET="main">Output</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1196_14" TARGET="main">Overlay - terminal_interface-curses.ads:1196</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1310_16" TARGET="main">Overlay - terminal_interface-curses.adb:1310</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1190_14" TARGET="main">Overwrite - terminal_interface-curses.ads:1190</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1298_16" TARGET="main">Overwrite - terminal_interface-curses.adb:1298</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1364_14" TARGET="main">Overlay - terminal_interface-curses.ads:1364</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1317_16" TARGET="main">Overlay - terminal_interface-curses.adb:1317</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1358_14" TARGET="main">Overwrite - terminal_interface-curses.ads:1358</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1305_16" TARGET="main">Overwrite - terminal_interface-curses.adb:1305</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/P.htm
+--- ncurses-5.9/doc/html/ada/funcs/P.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/P.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,36 +1,40 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>P</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>P</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - P</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_476_14" TARGET="main">Pad_Character - terminal_interface-curses-forms.ads:476</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_494_14" TARGET="main">Pad_Character - terminal_interface-curses-menus.ads:494</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_744_13" TARGET="main">Page</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_473_14" TARGET="main">Pad_Character - terminal_interface-curses-forms.ads:473</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_488_14" TARGET="main">Pad_Character - terminal_interface-curses-menus.ads:488</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_741_13" TARGET="main">Page</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_80_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:80</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_81_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:81</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2167_16" TARGET="main">Paircontent</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1721_14" TARGET="main">Pair_Content</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2182_16" TARGET="main">Paircontent</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1889_14" TARGET="main">Pair_Content</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_144_16" TARGET="main">Panel_Hidden</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_65_16" TARGET="main">Panel_Userptr</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_105_16" TARGET="main">Panel_Win</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_531_14" TARGET="main">Pattern</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1531_16" TARGET="main">Pechochar</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1354_13" TARGET="main">Peek - terminal_interface-curses.ads:1354</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1360_13" TARGET="main">Peek - terminal_interface-curses.ads:1360</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1416_14" TARGET="main">Peek - terminal_interface-curses.ads:1416</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1425_14" TARGET="main">Peek - terminal_interface-curses.ads:1425</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1440_14" TARGET="main">Peek - terminal_interface-curses.ads:1440</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1449_14" TARGET="main">Peek - terminal_interface-curses.ads:1449</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1506_16" TARGET="main">Pnoutrefresh</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_687_14" TARGET="main">Position_Cursor - terminal_interface-curses-forms.ads:687</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_398_14" TARGET="main">Position_Cursor - terminal_interface-curses-menus.ads:398</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_676_14" TARGET="main">Post - terminal_interface-curses-forms.ads:676</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_326_14" TARGET="main">Post - terminal_interface-curses-menus.ads:326</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_941_16" TARGET="main">Pos_Form_Cursor</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_499_16" TARGET="main">Pos_Menu_Cursor</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1476_16" TARGET="main">Prefresh</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_201_13" TARGET="main">Prev_Router</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_525_14" TARGET="main">Pattern</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1540_16" TARGET="main">Pechochar</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1522_13" TARGET="main">Peek - terminal_interface-curses.ads:1522</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1528_13" TARGET="main">Peek - terminal_interface-curses.ads:1528</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1584_14" TARGET="main">Peek - terminal_interface-curses.ads:1584</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1593_14" TARGET="main">Peek - terminal_interface-curses.ads:1593</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1608_14" TARGET="main">Peek - terminal_interface-curses.ads:1608</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1617_14" TARGET="main">Peek - terminal_interface-curses.ads:1617</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1514_16" TARGET="main">Pnoutrefresh</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_684_14" TARGET="main">Position_Cursor - terminal_interface-curses-forms.ads:684</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_392_14" TARGET="main">Position_Cursor - terminal_interface-curses-menus.ads:392</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_673_14" TARGET="main">Post - terminal_interface-curses-forms.ads:673</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_320_14" TARGET="main">Post - terminal_interface-curses-menus.ads:320</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_826_16" TARGET="main">Pos_Form_Cursor</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_433_16" TARGET="main">Pos_Menu_Cursor</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1483_16" TARGET="main">Prefresh</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_202_13" TARGET="main">Prev_Router</A>
+ <LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:54</A>
+ <LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:61</A>
+ <LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:50</A>
+Index: doc/html/ada/funcs/Q.htm
+--- ncurses-5.9/doc/html/ada/funcs/Q.htm 2007-05-05 20:35:19.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/Q.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,8 +1,12 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>Q</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>Q</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - Q</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_883_17" TARGET="main">Qiflush</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_884_17" TARGET="main">Qiflush</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/R.htm
+--- ncurses-5.9/doc/html/ada/funcs/R.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/R.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,39 +1,43 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>R</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>R</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - R</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_790_16" TARGET="main">Raw</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_593_14" TARGET="main">Redefine - terminal_interface-curses-forms.ads:593</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_617_14" TARGET="main">Redefine - terminal_interface-curses-menus.ads:617</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1061_14" TARGET="main">Redraw - terminal_interface-curses.ads:1061</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1065_14" TARGET="main">Redraw - terminal_interface-curses.ads:1065</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1090_16" TARGET="main">Redrawwin</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1047_14" TARGET="main">Refresh - terminal_interface-curses.ads:1047</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1285_14" TARGET="main">Refresh - terminal_interface-curses.ads:1285</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1514_14" TARGET="main">Refresh_Soft_Label_Keys</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1519_14" TARGET="main">Refresh_Soft_Label_Keys_Without_Update</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1054_14" TARGET="main">Refresh_Without_Update - terminal_interface-curses.ads:1054</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1297_14" TARGET="main">Refresh_Without_Update - terminal_interface-curses.ads:1297</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_97_14" TARGET="main">Register_Reportable_Event</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_106_14" TARGET="main">Register_Reportable_Events</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_791_16" TARGET="main">Raw</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_590_14" TARGET="main">Redefine - terminal_interface-curses-forms.ads:590</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_611_14" TARGET="main">Redefine - terminal_interface-curses-menus.ads:611</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1229_14" TARGET="main">Redraw - terminal_interface-curses.ads:1229</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1233_14" TARGET="main">Redraw - terminal_interface-curses.ads:1233</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1093_16" TARGET="main">Redrawwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1215_14" TARGET="main">Refresh - terminal_interface-curses.ads:1215</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1453_14" TARGET="main">Refresh - terminal_interface-curses.ads:1453</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1682_14" TARGET="main">Refresh_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1687_14" TARGET="main">Refresh_Soft_Label_Keys_Without_Update</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1222_14" TARGET="main">Refresh_Without_Update - terminal_interface-curses.ads:1222</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1465_14" TARGET="main">Refresh_Without_Update - terminal_interface-curses.ads:1465</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_93_14" TARGET="main">Register_Reportable_Event</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_102_14" TARGET="main">Register_Reportable_Events</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14" TARGET="main">Release</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_111_14" TARGET="main">Replace</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_110_14" TARGET="main">Replace</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_119_16" TARGET="main">Replace_Pan</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_277_14" TARGET="main">Request_Name - terminal_interface-curses-forms.ads:277</A>
+ <LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_280_14" TARGET="main">Request_Name - terminal_interface-curses-forms.ads:280</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_283_14" TARGET="main">Request_Name - terminal_interface-curses-forms.ads:283</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_106_14" TARGET="main">Request_Name - terminal_interface-curses-menus.ads:106</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_109_14" TARGET="main">Request_Name - terminal_interface-curses-menus.ads:109</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_80_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:80</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_88_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:88</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2295_16" TARGET="main">Resetty</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1767_14" TARGET="main">Reset_Curses_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2267_16" TARGET="main">Reset_Prog_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2269_16" TARGET="main">Reset_Shell_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1778_14" TARGET="main">Reset_Terminal_State</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1913_14" TARGET="main">Resize</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1540_14" TARGET="main">Restore_Soft_Label_Keys</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2306_16" TARGET="main">Ripoffline</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1791_14" TARGET="main">Rip_Off_Lines</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_101_14" TARGET="main">Request_Name - terminal_interface-curses-menus.ads:101</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_104_14" TARGET="main">Request_Name - terminal_interface-curses-menus.ads:104</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_62_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:62</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_70_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:70</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2312_16" TARGET="main">Resetty</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1935_14" TARGET="main">Reset_Curses_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2284_16" TARGET="main">Reset_Prog_Mode</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2286_16" TARGET="main">Reset_Shell_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1946_14" TARGET="main">Reset_Terminal_State</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2083_14" TARGET="main">Resize</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1708_14" TARGET="main">Restore_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2323_16" TARGET="main">Ripoffline</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1959_14" TARGET="main">Rip_Off_Lines</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/S.htm
+--- ncurses-5.9/doc/html/ada/funcs/S.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/S.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,54 +1,58 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>S</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>S</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - S</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2285_16" TARGET="main">Savetty</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1761_14" TARGET="main">Save_Curses_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1773_14" TARGET="main">Save_Terminal_State</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_531_14" TARGET="main">Scale - terminal_interface-curses-forms.ads:531</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_387_14" TARGET="main">Scale - terminal_interface-curses-menus.ads:387</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1869_14" TARGET="main">Screen_Dump_To_File</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1877_14" TARGET="main">Screen_Init_From_File</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1873_14" TARGET="main">Screen_Restore_From_File</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1881_14" TARGET="main">Screen_Set_File</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1324_14" TARGET="main">Scroll</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1024_13" TARGET="main">Scrolling_Allowed</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1024_16" TARGET="main">Scrollok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2302_16" TARGET="main">Savetty</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1929_14" TARGET="main">Save_Curses_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1941_14" TARGET="main">Save_Terminal_State</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_528_14" TARGET="main">Scale - terminal_interface-curses-forms.ads:528</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_381_14" TARGET="main">Scale - terminal_interface-curses-menus.ads:381</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2039_14" TARGET="main">Screen_Dump_To_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2047_14" TARGET="main">Screen_Init_From_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2043_14" TARGET="main">Screen_Restore_From_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2051_14" TARGET="main">Screen_Set_File</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1492_14" TARGET="main">Scroll</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1192_13" TARGET="main">Scrolling_Allowed</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1026_16" TARGET="main">Scrollok</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2490_16" TARGET="main">scr_dump</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2516_16" TARGET="main">scr_init</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2503_16" TARGET="main">scr_restore</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2529_16" TARGET="main">scr_set</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_450_14" TARGET="main">Set_Background - terminal_interface-curses-forms.ads:450</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_447_14" TARGET="main">Set_Background - terminal_interface-curses-menus.ads:447</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1110_14" TARGET="main">Set_Background - terminal_interface-curses.ads:1110</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_358_14" TARGET="main">Set_Buffer</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_888_14" TARGET="main">Set_Cbreak_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_819_14" TARGET="main">Set_Character_Attributes</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_447_14" TARGET="main">Set_Background - terminal_interface-curses-forms.ads:447</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_441_14" TARGET="main">Set_Background - terminal_interface-curses-menus.ads:441</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1278_14" TARGET="main">Set_Background - terminal_interface-curses.ads:1278</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_355_14" TARGET="main">Set_Buffer</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1056_14" TARGET="main">Set_Cbreak_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_987_14" TARGET="main">Set_Character_Attributes</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_92_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:92</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_93_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:93</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_840_14" TARGET="main">Set_Color</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_727_14" TARGET="main">Set_Current - terminal_interface-curses-forms.ads:727</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_292_14" TARGET="main">Set_Current - terminal_interface-curses-menus.ads:292</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1026_16" TARGET="main">Set_Current_Fld</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_287_16" TARGET="main">Set_Curr_Item</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1803_14" TARGET="main">Set_Cursor_Visibility</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_900_14" TARGET="main">Set_Echo_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_966_14" TARGET="main">Set_Escape_Timer_Mode</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_599_14" TARGET="main">Set_Fields</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_227_13" TARGET="main">Set_Fieldtype_Arg</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_234_13" TARGET="main">Set_Fieldtype_Choice</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_448_16" TARGET="main">Set_Field_Back</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_404_16" TARGET="main">Set_Field_Fore</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_665_16" TARGET="main">Set_Field_Init</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_545_14" TARGET="main">Set_Field_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_196_16" TARGET="main">Set_Field_Just</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_310_16" TARGET="main">Set_Field_Max</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_330_16" TARGET="main">Set_Field_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_490_16" TARGET="main">Set_Field_Pad</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_681_16" TARGET="main">Set_Field_Term</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_551_14" TARGET="main">Set_Field_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1008_14" TARGET="main">Set_Color</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_724_14" TARGET="main">Set_Current - terminal_interface-curses-forms.ads:724</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_286_14" TARGET="main">Set_Current - terminal_interface-curses-menus.ads:286</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_905_16" TARGET="main">Set_Current_Fld</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_251_16" TARGET="main">Set_Curr_Item</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1971_14" TARGET="main">Set_Cursor_Visibility</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1068_14" TARGET="main">Set_Echo_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1134_14" TARGET="main">Set_Escape_Timer_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_596_14" TARGET="main">Set_Fields</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_228_13" TARGET="main">Set_Fieldtype_Arg</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_235_13" TARGET="main">Set_Fieldtype_Choice</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_395_16" TARGET="main">Set_Field_Back</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_356_16" TARGET="main">Set_Field_Fore</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_587_16" TARGET="main">Set_Field_Init</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_542_14" TARGET="main">Set_Field_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_175_16" TARGET="main">Set_Field_Just</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_276_16" TARGET="main">Set_Field_Max</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_293_16" TARGET="main">Set_Field_Opts</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_432_16" TARGET="main">Set_Field_Pad</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_600_16" TARGET="main">Set_Field_Term</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_548_14" TARGET="main">Set_Field_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alpha.ads:49</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alphanumeric.ads:50</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
+@@ -58,8 +62,8 @@
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-regexp.ads:51</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-user.ads:70</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16" TARGET="main">Set_Field_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_231_16" TARGET="main">Set_Fld_Buffer</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_278_16" TARGET="main">Set_Fld_Status</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_205_16" TARGET="main">Set_Fld_Buffer</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_245_16" TARGET="main">Set_Fld_Status</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:49</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:49</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:94</A>
+@@ -67,125 +71,125 @@
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:49</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:52</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:53</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_134_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:134</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_930_14" TARGET="main">Set_Flush_On_Interrupt_Mode</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_430_14" TARGET="main">Set_Foreground - terminal_interface-curses-forms.ads:430</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_427_14" TARGET="main">Set_Foreground - terminal_interface-curses-menus.ads:427</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_541_14" TARGET="main">Set_Format</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_697_16" TARGET="main">Set_Form_Init</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_557_14" TARGET="main">Set_Form_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_845_16" TARGET="main">Set_Form_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_613_16" TARGET="main">Set_Form_Sub</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_713_16" TARGET="main">Set_Form_Term</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_563_14" TARGET="main">Set_Form_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_133_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:133</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1098_14" TARGET="main">Set_Flush_On_Interrupt_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_427_14" TARGET="main">Set_Foreground - terminal_interface-curses-forms.ads:427</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_421_14" TARGET="main">Set_Foreground - terminal_interface-curses-menus.ads:421</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_535_14" TARGET="main">Set_Format</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_613_16" TARGET="main">Set_Form_Init</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_554_14" TARGET="main">Set_Form_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_745_16" TARGET="main">Set_Form_Opts</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_541_16" TARGET="main">Set_Form_Sub</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_626_16" TARGET="main">Set_Form_Term</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_560_14" TARGET="main">Set_Form_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16" TARGET="main">Set_Form_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_585_16" TARGET="main">Set_Form_Win</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_733_16" TARGET="main">Set_Frm_Fields</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1056_16" TARGET="main">Set_Frm_Page</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16" TARGET="main">Set_Ftyp</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_467_14" TARGET="main">Set_Grey</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_622_14" TARGET="main">Set_Items - terminal_interface-curses-menus.ads:622</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items - terminal_interface-curses-menus.adb:893</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_805_16" TARGET="main">Set_Item_Init</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_569_14" TARGET="main">Set_Item_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_194_16" TARGET="main">Set_Item_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_819_16" TARGET="main">Set_Item_Term</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_575_14" TARGET="main">Set_Item_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_516_16" TARGET="main">Set_Form_Win</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_643_16" TARGET="main">Set_Frm_Fields</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_932_16" TARGET="main">Set_Frm_Page</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_16" TARGET="main">Set_Ftyp</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_461_14" TARGET="main">Set_Grey</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_616_14" TARGET="main">Set_Items - terminal_interface-curses-menus.ads:616</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_782_16" TARGET="main">Set_Items - terminal_interface-curses-menus.adb:782</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_706_16" TARGET="main">Set_Item_Init</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_563_14" TARGET="main">Set_Item_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_169_16" TARGET="main">Set_Item_Opts</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_717_16" TARGET="main">Set_Item_Term</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_569_14" TARGET="main">Set_Item_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16" TARGET="main">Set_Item_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_155_16" TARGET="main">Set_Item_Val</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_343_14" TARGET="main">Set_Justification</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_912_14" TARGET="main">Set_KeyPad_Mode</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_133_16" TARGET="main">Set_Item_Val</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_340_14" TARGET="main">Set_Justification</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1080_14" TARGET="main">Set_KeyPad_Mode</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_95_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:95</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_96_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:96</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_407_14" TARGET="main">Set_Mark - terminal_interface-curses-menus.ads:407</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_514_16" TARGET="main">Set_Mark - terminal_interface-curses-menus.adb:514</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_391_14" TARGET="main">Set_Maximum_Size</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_591_16" TARGET="main">Set_Menu_Back</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_768_16" TARGET="main">Set_Menu_Fmt</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_552_16" TARGET="main">Set_Menu_Fore</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_629_16" TARGET="main">Set_Menu_Grey</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_833_16" TARGET="main">Set_Menu_Init</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_581_14" TARGET="main">Set_Menu_Init_Hook</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_374_16" TARGET="main">Set_Menu_Opts</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_667_16" TARGET="main">Set_Menu_Pad</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_457_16" TARGET="main">Set_Menu_Sub</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_847_16" TARGET="main">Set_Menu_Term</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_587_14" TARGET="main">Set_Menu_Term_Hook</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_401_14" TARGET="main">Set_Mark - terminal_interface-curses-menus.ads:401</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_445_16" TARGET="main">Set_Mark - terminal_interface-curses-menus.adb:445</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_388_14" TARGET="main">Set_Maximum_Size</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_515_16" TARGET="main">Set_Menu_Back</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_675_16" TARGET="main">Set_Menu_Fmt</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_479_16" TARGET="main">Set_Menu_Fore</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_550_16" TARGET="main">Set_Menu_Grey</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_728_16" TARGET="main">Set_Menu_Init</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_575_14" TARGET="main">Set_Menu_Init_Hook</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_328_16" TARGET="main">Set_Menu_Opts</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_585_16" TARGET="main">Set_Menu_Pad</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_397_16" TARGET="main">Set_Menu_Sub</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_739_16" TARGET="main">Set_Menu_Term</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_581_14" TARGET="main">Set_Menu_Term_Hook</A>
+ <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16" TARGET="main">Set_Menu_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_433_16" TARGET="main">Set_Menu_Win</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_906_14" TARGET="main">Set_Meta_Mode</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_761_14" TARGET="main">Set_New_Page</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_977_14" TARGET="main">Set_NL_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_945_14" TARGET="main">Set_NoDelay_Mode</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_401_14" TARGET="main">Set_Options - terminal_interface-curses-forms.ads:401</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_648_14" TARGET="main">Set_Options - terminal_interface-curses-forms.ads:648</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_240_14" TARGET="main">Set_Options - terminal_interface-curses-menus.ads:240</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_337_14" TARGET="main">Set_Options - terminal_interface-curses-menus.ads:337</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_470_14" TARGET="main">Set_Pad_Character - terminal_interface-curses-forms.ads:470</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_488_14" TARGET="main">Set_Pad_Character - terminal_interface-curses-menus.ads:488</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_738_14" TARGET="main">Set_Page - terminal_interface-curses-forms.ads:738</A>
+-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page - terminal_interface-curses-forms.adb:1105</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_376_16" TARGET="main">Set_Menu_Win</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1074_14" TARGET="main">Set_Meta_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_758_14" TARGET="main">Set_New_Page</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1145_14" TARGET="main">Set_NL_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1113_14" TARGET="main">Set_NoDelay_Mode</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_398_14" TARGET="main">Set_Options - terminal_interface-curses-forms.ads:398</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_645_14" TARGET="main">Set_Options - terminal_interface-curses-forms.ads:645</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_234_14" TARGET="main">Set_Options - terminal_interface-curses-menus.ads:234</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_331_14" TARGET="main">Set_Options - terminal_interface-curses-menus.ads:331</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_467_14" TARGET="main">Set_Pad_Character - terminal_interface-curses-forms.ads:467</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_482_14" TARGET="main">Set_Pad_Character - terminal_interface-curses-menus.ads:482</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_735_14" TARGET="main">Set_Page - terminal_interface-curses-forms.ads:735</A>
++<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_978_16" TARGET="main">Set_Page - terminal_interface-curses-forms.adb:978</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_54_16" TARGET="main">Set_Panel_Userptr</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_524_13" TARGET="main">Set_Pattern - terminal_interface-curses-menus.ads:524</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_736_16" TARGET="main">Set_Pattern - terminal_interface-curses-menus.adb:736</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_937_14" TARGET="main">Set_Queue_Interrupt_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_894_14" TARGET="main">Set_Raw_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1029_14" TARGET="main">Set_Scroll_Region</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1507_14" TARGET="main">Set_Soft_Label_Key</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1558_14" TARGET="main">Set_Soft_Label_Key_Attributes</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1574_14" TARGET="main">Set_Soft_Label_Key_Color</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_504_14" TARGET="main">Set_Spacing - terminal_interface-curses-menus.ads:504</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing - terminal_interface-curses-menus.adb:693</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_380_14" TARGET="main">Set_Status</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_520_14" TARGET="main">Set_Sub_Window - terminal_interface-curses-forms.ads:520</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_376_14" TARGET="main">Set_Sub_Window - terminal_interface-curses-menus.ads:376</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_645_14" TARGET="main">Set_Synch_Mode</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_954_14" TARGET="main">Set_Timeout_Mode</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">Set_Toprow</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_303_14" TARGET="main">Set_Top_Row</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_518_13" TARGET="main">Set_Pattern - terminal_interface-curses-menus.ads:518</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_643_16" TARGET="main">Set_Pattern - terminal_interface-curses-menus.adb:643</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1105_14" TARGET="main">Set_Queue_Interrupt_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1062_14" TARGET="main">Set_Raw_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1197_14" TARGET="main">Set_Scroll_Region</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1675_14" TARGET="main">Set_Soft_Label_Key</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1726_14" TARGET="main">Set_Soft_Label_Key_Attributes</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1742_14" TARGET="main">Set_Soft_Label_Key_Color</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_498_14" TARGET="main">Set_Spacing - terminal_interface-curses-menus.ads:498</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_607_16" TARGET="main">Set_Spacing - terminal_interface-curses-menus.adb:607</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_377_14" TARGET="main">Set_Status</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_517_14" TARGET="main">Set_Sub_Window - terminal_interface-curses-forms.ads:517</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_370_14" TARGET="main">Set_Sub_Window - terminal_interface-curses-menus.ads:370</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_813_14" TARGET="main">Set_Synch_Mode</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1122_14" TARGET="main">Set_Timeout_Mode</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_275_16" TARGET="main">Set_Toprow</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_297_14" TARGET="main">Set_Top_Row</A>
+ <LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data - terminal_interface-curses-forms-field_user_data.ads:53</A>
+ <LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data - terminal_interface-curses-forms-form_user_data.ads:53</A>
+ <LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14" TARGET="main">Set_User_Data - terminal_interface-curses-menus-item_user_data.ads:58</A>
+ <LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data - terminal_interface-curses-menus-menu_user_data.ads:53</A>
+ <LI><A HREF="../terminal_interface-curses-panels-user_data__ads.htm#ref_53_14" TARGET="main">Set_User_Data - terminal_interface-curses-panels-user_data.ads:53</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_216_14" TARGET="main">Set_Value</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_509_14" TARGET="main">Set_Window - terminal_interface-curses-forms.ads:509</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_365_14" TARGET="main">Set_Window - terminal_interface-curses-menus.ads:365</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_210_14" TARGET="main">Set_Value</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_506_14" TARGET="main">Set_Window - terminal_interface-curses-forms.ads:506</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_359_14" TARGET="main">Set_Window - terminal_interface-curses-menus.ads:359</A>
+ <LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window - terminal_interface-curses-text_io.ads:59</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_87_14" TARGET="main">Show</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_86_14" TARGET="main">Show</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_85_16" TARGET="main">Showpanel</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1955_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1955</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1965_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1965</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1919_16" TARGET="main">Slk_Attroff</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1917_16" TARGET="main">Slk_Attron</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1941_16" TARGET="main">Slk_Attrset</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1885_16" TARGET="main">Slk_Clear</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1975_16" TARGET="main">Slk_Color</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1819_16" TARGET="main">Slk_Init</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1869_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1869</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1877_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1877</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1858_16" TARGET="main">Slk_Noutrefresh</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1848_16" TARGET="main">Slk_Refresh</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1895_16" TARGET="main">Slk_Restore</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1831_16" TARGET="main">Slk_Set</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1905_16" TARGET="main">Slk_Touch</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_512_14" TARGET="main">Spacing</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_478_13" TARGET="main">Standard_Window</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_802_14" TARGET="main">Standout</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1709_14" TARGET="main">Start_Color</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_119_13" TARGET="main">Start_Mouse</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1446_16" TARGET="main">Subpad</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_270_16" TARGET="main">Subwin</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1275_13" TARGET="main">Sub_Pad</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_596_13" TARGET="main">Sub_Window</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1674_13" TARGET="main">Supported_Attributes</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_808_14" TARGET="main">Switch_Character_Attribute</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_407_14" TARGET="main">Switch_Options - terminal_interface-curses-forms.ads:407</A>
+-<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_654_14" TARGET="main">Switch_Options - terminal_interface-curses-forms.ads:654</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_246_14" TARGET="main">Switch_Options - terminal_interface-curses-menus.ads:246</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_343_14" TARGET="main">Switch_Options - terminal_interface-curses-menus.ads:343</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1550_14" TARGET="main">Switch_Soft_Label_Key_Attributes</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_640_14" TARGET="main">Synchronize_Downwards</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_635_14" TARGET="main">Synchronize_Upwards</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_363_16" TARGET="main">Syncok</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1967_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1967</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1977_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1977</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1931_16" TARGET="main">Slk_Attroff</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1929_16" TARGET="main">Slk_Attron</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1953_16" TARGET="main">Slk_Attrset</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1897_16" TARGET="main">Slk_Clear</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1987_16" TARGET="main">Slk_Color</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1830_16" TARGET="main">Slk_Init</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1881_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1881</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1889_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1889</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1870_16" TARGET="main">Slk_Noutrefresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1860_16" TARGET="main">Slk_Refresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1907_16" TARGET="main">Slk_Restore</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1842_16" TARGET="main">Slk_Set</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1917_16" TARGET="main">Slk_Touch</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_506_14" TARGET="main">Spacing</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_644_13" TARGET="main">Standard_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_970_14" TARGET="main">Standout</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1877_14" TARGET="main">Start_Color</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_115_13" TARGET="main">Start_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1453_16" TARGET="main">Subpad</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_271_16" TARGET="main">Subwin</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1443_13" TARGET="main">Sub_Pad</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_764_13" TARGET="main">Sub_Window</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1842_13" TARGET="main">Supported_Attributes</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_976_14" TARGET="main">Switch_Character_Attribute</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_404_14" TARGET="main">Switch_Options - terminal_interface-curses-forms.ads:404</A>
++<LI><A HREF="../terminal_interface-curses-forms__ads.htm#ref_651_14" TARGET="main">Switch_Options - terminal_interface-curses-forms.ads:651</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_240_14" TARGET="main">Switch_Options - terminal_interface-curses-menus.ads:240</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_337_14" TARGET="main">Switch_Options - terminal_interface-curses-menus.ads:337</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1718_14" TARGET="main">Switch_Soft_Label_Key_Attributes</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_808_14" TARGET="main">Synchronize_Downwards</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_803_14" TARGET="main">Synchronize_Upwards</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_364_16" TARGET="main">Syncok</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/T.htm
+--- ncurses-5.9/doc/html/ada/funcs/T.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/T.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,15 +1,20 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>T</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>T</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - T</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_420_13" TARGET="main">Tab_Size</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2100_16" TARGET="main">Termattrs</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1689_14" TARGET="main">Terminal_Name - terminal_interface-curses.ads:1689</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1693_13" TARGET="main">Terminal_Name - terminal_interface-curses.ads:1693</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2126_16" TARGET="main">Termname - terminal_interface-curses.adb:2126</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2134_16" TARGET="main">Termname - terminal_interface-curses.adb:2134</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2373_16" TARGET="main">TABSIZE_As_Function</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_556_13" TARGET="main">Tab_Size</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2113_16" TARGET="main">Termattrs</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1857_14" TARGET="main">Terminal_Name - terminal_interface-curses.ads:1857</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1861_13" TARGET="main">Terminal_Name - terminal_interface-curses.ads:1861</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2139_16" TARGET="main">Termname - terminal_interface-curses.adb:2139</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2147_16" TARGET="main">Termname - terminal_interface-curses.adb:2147</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_51_16" TARGET="main">tgetent</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_71_16" TARGET="main">tgetflag</A>
+ <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_89_16" TARGET="main">tgetnum</A>
+@@ -21,16 +26,16 @@
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_87_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:87</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_108_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:108</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_127_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:127</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_82_14" TARGET="main">Top</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_81_14" TARGET="main">Top</A>
+ <LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_75_16" TARGET="main">Toppanel</A>
+-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_327_16" TARGET="main">Toprow</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_309_13" TARGET="main">Top_Row</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1143_14" TARGET="main">Touch - terminal_interface-curses.ads:1143</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1147_14" TARGET="main">Touch - terminal_interface-curses.ads:1147</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1545_14" TARGET="main">Touch_Soft_Label_Keys</A>
++<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_285_16" TARGET="main">Toprow</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_303_13" TARGET="main">Top_Row</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1311_14" TARGET="main">Touch - terminal_interface-curses.ads:1311</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1315_14" TARGET="main">Touch - terminal_interface-curses.ads:1315</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1713_14" TARGET="main">Touch_Soft_Label_Keys</A>
+ <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_140_16" TARGET="main">tputs</A>
+-<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_106_14" TARGET="main">Trace_On</A>
+-<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_110_14" TARGET="main">Trace_Put</A>
++<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_114_14" TARGET="main">Trace_On</A>
++<LI><A HREF="../terminal_interface-curses-trace__ads.htm#ref_118_14" TARGET="main">Trace_Put</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2403_16" TARGET="main">Transform</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1816_14" TARGET="main">Transform_Coordinates</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1984_14" TARGET="main">Transform_Coordinates</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/U.htm
+--- ncurses-5.9/doc/html/ada/funcs/U.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/U.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,23 +1,27 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>U</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>U</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - U</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2016_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2016</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2024_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2024</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_764_14" TARGET="main">Undo_Keystroke</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_537_16" TARGET="main">Ungetch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2029_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2029</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2037_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2037</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_932_14" TARGET="main">Undo_Keystroke</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_540_16" TARGET="main">Ungetch</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_186_16" TARGET="main">Ungetmouse</A>
+-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_145_14" TARGET="main">Unget_Mouse</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1138_14" TARGET="main">Untouch</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1624_14" TARGET="main">Un_Control - terminal_interface-curses.ads:1624</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1629_13" TARGET="main">Un_Control - terminal_interface-curses.ads:1629</A>
+-<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_92_14" TARGET="main">Update_Panels</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1042_14" TARGET="main">Update_Screen</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1833_14" TARGET="main">Use_Default_Colors</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1853_13" TARGET="main">Use_Extended_Names</A>
++<LI><A HREF="../terminal_interface-curses-mouse__ads.htm#ref_141_14" TARGET="main">Unget_Mouse</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1306_14" TARGET="main">Untouch</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1792_14" TARGET="main">Un_Control - terminal_interface-curses.ads:1792</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1797_13" TARGET="main">Un_Control - terminal_interface-curses.ads:1797</A>
++<LI><A HREF="../terminal_interface-curses-panels__ads.htm#ref_91_14" TARGET="main">Update_Panels</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1210_14" TARGET="main">Update_Screen</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2003_14" TARGET="main">Use_Default_Colors</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_2023_13" TARGET="main">Use_Extended_Names</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2475_16" TARGET="main">use_extended_namesC</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_997_14" TARGET="main">Use_Insert_Delete_Character</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_990_14" TARGET="main">Use_Insert_Delete_Line</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1165_14" TARGET="main">Use_Insert_Delete_Character</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_1158_14" TARGET="main">Use_Insert_Delete_Line</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/V.htm
+--- ncurses-5.9/doc/html/ada/funcs/V.htm 2011-03-19 23:18:38.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/V.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,11 +1,15 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>V</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>V</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - V</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+ <LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value - terminal_interface-curses-forms-field_types-enumeration-ada.ads:53</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_222_13" TARGET="main">Value - terminal_interface-curses-menus.ads:222</A>
+-<LI><A HREF="../terminal_interface-curses__ads.htm#ref_739_14" TARGET="main">Vertical_Line</A>
+-<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_231_13" TARGET="main">Visible</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_216_13" TARGET="main">Value - terminal_interface-curses-menus.ads:216</A>
++<LI><A HREF="../terminal_interface-curses__ads.htm#ref_907_14" TARGET="main">Vertical_Line</A>
++<LI><A HREF="../terminal_interface-curses-menus__ads.htm#ref_225_13" TARGET="main">Visible</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/funcs/W.htm
+--- ncurses-5.9/doc/html/ada/funcs/W.htm 2011-03-26 21:54:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/funcs/W.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,53 +1,57 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>W</TITLE></HEAD>
++<HTML>
++<HEAD>
++<TITLE>W</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <BODY>
+ <H2>Functions - W</H2>
+ <A HREF="../funcs.htm" TARGET="_self">[index]</A>
+ <UL COMPACT TYPE=DISC>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_151_16" TARGET="main">Waddch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_407_16" TARGET="main">Waddchnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_376_16" TARGET="main">Waddnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_655_16" TARGET="main">Wattrget - terminal_interface-curses.adb:655</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_408_16" TARGET="main">Waddchnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_377_16" TARGET="main">Waddnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_657_16" TARGET="main">Wattrget - terminal_interface-curses.adb:657</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_678_16" TARGET="main">Wattrget - terminal_interface-curses.adb:678</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_614_16" TARGET="main">Wattroff</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_611_16" TARGET="main">Wattron</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_639_16" TARGET="main">Wattrset</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1159_17" TARGET="main">WBackground</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_448_16" TARGET="main">Wborder</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1169_16" TARGET="main">WChangeBkgd</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_719_16" TARGET="main">Wchgat</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1127_16" TARGET="main">Wclear</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1137_16" TARGET="main">Wclearbot</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1147_16" TARGET="main">Wcleareol</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1567_16" TARGET="main">Wdelch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_254_16" TARGET="main">Wdelwin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_208_16" TARGET="main">Wechochar</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_617_16" TARGET="main">Wattroff</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_614_16" TARGET="main">Wattron</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_642_16" TARGET="main">Wattrset</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1163_17" TARGET="main">WBackground</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_450_16" TARGET="main">Wborder</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1173_16" TARGET="main">WChangeBkgd</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_718_16" TARGET="main">Wchgat</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1131_16" TARGET="main">Wclear</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1141_16" TARGET="main">Wclearbot</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1151_16" TARGET="main">Wcleareol</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1576_16" TARGET="main">Wdelch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_255_16" TARGET="main">Wdelwin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_209_16" TARGET="main">Wechochar</A>
+ <LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_197_16" TARGET="main">Wenclose</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1117_16" TARGET="main">Werase</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1180_16" TARGET="main">Wgetbkgd</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_523_16" TARGET="main">Wgetch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1779_16" TARGET="main">Wgetnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_490_16" TARGET="main">Whline</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1593_16" TARGET="main">Winch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1731_16" TARGET="main">Winchnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1689_16" TARGET="main">Winnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1615_16" TARGET="main">Winsch</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1323_16" TARGET="main">Winsdelln</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1647_16" TARGET="main">Winsnstr</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1235_16" TARGET="main">WLineTouched</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1121_16" TARGET="main">Werase</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1185_16" TARGET="main">Wgetbkgd</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_526_16" TARGET="main">Wgetch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1790_16" TARGET="main">Wgetnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_491_16" TARGET="main">Whline</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1602_16" TARGET="main">Winch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1742_16" TARGET="main">Winchnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1700_16" TARGET="main">Winnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1624_16" TARGET="main">Winsch</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1330_16" TARGET="main">Winsdelln</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1657_16" TARGET="main">Winsnstr</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1241_16" TARGET="main">WLineTouched</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_137_16" TARGET="main">Wmove</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1080_16" TARGET="main">Wnoutrefresh</A>
+-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_151_14" TARGET="main">Wrap_Builtin</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1103_16" TARGET="main">Wredrawln</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Wrefresh</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1083_16" TARGET="main">Wnoutrefresh</A>
++<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_152_14" TARGET="main">Wrap_Builtin</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1106_16" TARGET="main">Wredrawln</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1072_16" TARGET="main">Wrefresh</A>
+ <LI><A HREF="../terminal_interface-curses__adb.htm#ref_2543_16" TARGET="main">wresize</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1555_16" TARGET="main">Wscrl</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1046_16" TARGET="main">Wsetscrreg</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_701_16" TARGET="main">Wset_Color</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_591_16" TARGET="main">wstandend</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_589_16" TARGET="main">wstandout</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_914_17" TARGET="main">Wtimeout</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1191_16" TARGET="main">Wtouchln</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_507_16" TARGET="main">Wvline</A>
+-<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1248_16" TARGET="main">WWinTouched</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1564_16" TARGET="main">Wscrl</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1048_16" TARGET="main">Wsetscrreg</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_699_16" TARGET="main">Wset_Color</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_594_16" TARGET="main">wstandend</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_592_16" TARGET="main">wstandout</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_915_17" TARGET="main">Wtimeout</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1196_16" TARGET="main">Wtouchln</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_509_16" TARGET="main">Wvline</A>
++<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1254_16" TARGET="main">WWinTouched</A>
+ </UL></BODY></HTML>
+Index: doc/html/ada/index.htm
+--- ncurses-5.9/doc/html/ada/index.htm 2005-05-14 16:28:37.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/index.htm 2013-05-18 21:41:06.000000000 +0000
+@@ -1,6 +1,9 @@
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
+ <HTML>
+-<HEAD><TITLE>Source Browser</TITLE></HEAD>
++<HEAD>
++<TITLE>Source Browser</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++</HEAD>
+ <FRAMESET COLS="250,*">
+ <NOFRAMES>
+ <H2 ALIGN=CENTER>Files</H2>
+Index: doc/html/ada/main.htm
+--- ncurses-5.9/doc/html/ada/main.htm 2011-02-25 23:43:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/main.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,5 +1,17 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE></TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE></TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+ <P ALIGN=right><A HREF="main.htm" TARGET="_top">[No frame version is here]</A><P><H2 ALIGN=CENTER>Files</H2>
+ <A HREF="files/T.htm">[T]</A>
+@@ -64,6 +76,7 @@
+ <LI><A HREF="terminal_interface-curses-text_io__ads.htm">terminal_interface-curses-text_io.ads</A>
+ <LI><A HREF="terminal_interface-curses-trace__ads.htm">terminal_interface-curses-trace.ads</A>
+ <LI><A HREF="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</A>
++<LI><A HREF="terminal_interface-curses_constants__ads.htm">terminal_interface-curses_constants.ads</A>
+ <LI><A HREF="terminal_interface__ads.htm">terminal_interface.ads</A>
+ </UL>
+ </BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-aux__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-aux__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-aux__adb.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,122 +1,134 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-aux.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-aux.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_41_40" HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A></FONT> <b>is</b>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Some helpers</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_44_27" HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A></FONT> : chars_ptr;
+- <FONT COLOR=red><A NAME="ref_45_27" HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A></FONT> : <b>out</b> String)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Aux --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_41_40" HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A></span> <b>is</b>
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- Some helpers</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_44_14" HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A></span> (<span class="symbol"><A NAME="ref_44_27" HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Cp</A></span> : chars_ptr;
++ <span class="symbol"><A NAME="ref_45_27" HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A></span> : <b>out</b> String)
+ <b>is</b>
+- <FONT COLOR=green><EM>-- Fill the string with the characters referenced by the</EM></FONT>
+- <FONT COLOR=green><EM>-- chars_ptr.</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_50_7">Len</A></FONT> : Natural;
++ <span class="comment"><EM>-- Fill the string with the characters referenced by the</EM></span>
++ <span class="comment"><EM>-- chars_ptr.</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <span class="symbol"><A NAME="ref_50_7">Len</A></span> : Natural;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A> /= Null_Ptr <b>then</b>
+- <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A>));
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'Length &lt; <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Cp</A> /= Null_Ptr <b>then</b>
++ <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Cp</A>));
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A>'Length &lt; <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+ <b>declare</b>
+- <FONT COLOR=red><A NAME="ref_58_13">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>);
++ <span class="symbol"><A NAME="ref_58_13">S</A></span> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A>);
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A>'<b>Range</b>);
++ <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#ref_92_27">Cp</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A>'<b>Range</b>);
+ <b>end</b>;
+ <b>else</b>
+ <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> := 0;
+ <b>end</b> <b>if</b>;
+
+- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> &lt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'Length <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'Last) := (<b>others</b> =&gt; ' ');
++ <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> &lt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A>'Length <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_27">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+ <b>end</b> <b>if</b>;
+
+- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_73_13" HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_73_26" HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A></FONT> : chars_ptr) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_73_13" HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A></span> (<span class="symbol"><A NAME="ref_73_26" HREF="terminal_interface-curses-aux__ads.htm#ref_97_26">Cp</A></span> : chars_ptr) <b>return</b> String
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_75_7">Len</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_75_7">Len</A></span> : Natural;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A> /= Null_Ptr <b>then</b>
+- <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>));
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_26">Cp</A> /= Null_Ptr <b>then</b>
++ <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_97_26">Cp</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A> = 0 <b>then</b>
+ <b>return</b> "";
+ <b>else</b>
+ <b>declare</b>
+- <FONT COLOR=red><A NAME="ref_83_16">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A>);
++ <span class="symbol"><A NAME="ref_83_16">S</A></span> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_97_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>;
+ <b>end</b>;
+ <b>end</b> <b>if</b>;
+ <b>else</b>
+ <b>return</b> "";
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_94_14" HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_94_29" HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_94_14" HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A></span> (<span class="symbol"><A NAME="ref_94_29" HREF="terminal_interface-curses-aux__ads.htm#ref_88_29">Code</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>)
+ <b>is</b>
+ <b>begin</b>
+- <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A> <b>is</b>
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> =&gt; <b>null</b>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_4">E_System_Error</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_391_4">Eti_System_Error</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_4">E_Bad_Argument</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_392_4">Eti_Bad_Argument</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_4">E_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_393_4">Eti_Posted</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_4">E_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_394_4">Eti_Connected</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_4">E_Bad_State</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_395_4">Eti_Bad_State</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_4">E_No_Room</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_396_4">Eti_No_Room</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_4">E_Not_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_397_4">Eti_Not_Posted</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_398_4">Eti_Unknown_Command</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_399_4">Eti_No_Match</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_400_4">Eti_Not_Selectable</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_4">E_Not_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_401_4">Eti_Not_Connected</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_402_4">Eti_Request_Denied</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_403_4">Eti_Invalid_Field</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_94_4">E_Current</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_404_4">Eti_Current</A>;
++ <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_29">Code</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_7">E_Ok</A> =&gt; <b>null</b>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_7">E_System_Error</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_527_4">Eti_System_Error</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_7">E_Bad_Argument</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_4">Eti_Bad_Argument</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_7">E_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_529_4">Eti_Posted</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_7">E_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_530_4">Eti_Connected</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_7">E_Bad_State</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_531_4">Eti_Bad_State</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_7">E_No_Room</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_532_4">Eti_No_Room</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_79_7">E_Not_Posted</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_533_4">Eti_Not_Posted</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Unknown_Command</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_534_4">Eti_Unknown_Command</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_No_Match</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_535_4">Eti_No_Match</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_Not_Selectable</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_4">Eti_Not_Selectable</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Connected</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_537_4">Eti_Not_Connected</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Request_Denied</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_538_4">Eti_Request_Denied</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Invalid_Field</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_539_4">Eti_Invalid_Field</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Current</A> =&gt; <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_540_4">Eti_Current</A>;
+ <b>end</b> <b>case</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-aux__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-aux__ads.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-aux__ads.htm 2014-05-24 22:10:15.000000000 +0000
+@@ -1,130 +1,137 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-aux.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-aux.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.18 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- curses binding.</EM></FONT>
+-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
+-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Aux --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.23 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+-<b>with</b> <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A>;
+-
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_50_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>);
+-
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_55_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Short</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Size_T</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.size_t;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_UInt</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_ULong</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_Char_Ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_62_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> System.Address;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_63_12">C_Chtype</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_64_12">C_AttrType</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
+-
+- <FONT COLOR=green><EM>-- This is how those constants are defined in ncurses. I see them also</EM></FONT>
+- <FONT COLOR=green><EM>-- exactly like this in all ETI implementations I ever tested. So it</EM></FONT>
+- <FONT COLOR=green><EM>-- could be that this is quite general, but please check with your curses.</EM></FONT>
+- <FONT COLOR=green><EM>-- This is critical, because curses sometime mixes Boolean returns with</EM></FONT>
+- <FONT COLOR=green><EM>-- returning an error status.</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_71_4">Curses_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
+- <FONT COLOR=red><A NAME="ref_72_4">Curses_Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1;
+-
+- <FONT COLOR=red><A NAME="ref_74_4">Curses_True</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
+- <FONT COLOR=red><A NAME="ref_75_4">Curses_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
+-
+- <FONT COLOR=green><EM>-- Eti_Error: type for error codes returned by the menu and form subsystem</EM></FONT>
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Eti_Error</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> <b>range</b> -14 .. 0;
+-
+- <FONT COLOR=red><A NAME="ref_80_4">E_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0;
+- <FONT COLOR=red><A NAME="ref_81_4">E_System_Error</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1;
+- <FONT COLOR=red><A NAME="ref_82_4">E_Bad_Argument</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2;
+- <FONT COLOR=red><A NAME="ref_83_4">E_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3;
+- <FONT COLOR=red><A NAME="ref_84_4">E_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4;
+- <FONT COLOR=red><A NAME="ref_85_4">E_Bad_State</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5;
+- <FONT COLOR=red><A NAME="ref_86_4">E_No_Room</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6;
+- <FONT COLOR=red><A NAME="ref_87_4">E_Not_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7;
+- <FONT COLOR=red><A NAME="ref_88_4">E_Unknown_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8;
+- <FONT COLOR=red><A NAME="ref_89_4">E_No_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9;
+- <FONT COLOR=red><A NAME="ref_90_4">E_Not_Selectable</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10;
+- <FONT COLOR=red><A NAME="ref_91_4">E_Not_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11;
+- <FONT COLOR=red><A NAME="ref_92_4">E_Request_Denied</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12;
+- <FONT COLOR=red><A NAME="ref_93_4">E_Invalid_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
+- <FONT COLOR=red><A NAME="ref_94_4">E_Current</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -14;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-aux__adb.htm#ref_94_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_96_29" HREF="terminal_interface-curses-aux__adb.htm#ref_94_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>);
+- <FONT COLOR=green><EM>-- Dispatch the error code and raise the appropriate exception</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Some helpers</EM></FONT>
+- <b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b>
+- <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>,
+- <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
+- <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>,
+- <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
+-
+- <b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
+- <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>,
+- <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>);
+-
+- <b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b>
+- <A HREF="unchconv__ads.htm#ref_20_10">Unchecked_Conversion</A> (<A HREF="unchconv__ads.htm#ref_17_9">Source</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>,
+- <A HREF="unchconv__ads.htm#ref_18_9">Target</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-aux__adb.htm#ref_44_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_116_27" HREF="terminal_interface-curses-aux__adb.htm#ref_44_27">Cp</A></FONT> : chars_ptr;
+- <FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Str</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- Fill the Str parameter with the string denoted by the chars_ptr</EM></FONT>
+- <FONT COLOR=green><EM>-- C-Style string.</EM></FONT>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses-aux__adb.htm#ref_73_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_121_26" HREF="terminal_interface-curses-aux__adb.htm#ref_73_26">Cp</A></FONT> : chars_ptr) <b>return</b> String;
+- <FONT COLOR=green><EM>-- Same but as function.</EM></FONT>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-aux__adb.htm#ref_41_40">Aux</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_50_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_51_12">C_Short</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_52_12">C_Long_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.long;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_53_12">C_Size_T</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.size_t;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_54_12">C_UInt</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_55_12">C_ULong</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_long;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_56_12">C_Char_Ptr</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr;
++ <b>type</b> <span class="symbol"><A NAME="ref_57_12">C_Void_Ptr</A></span> <b>is</b> <b>new</b> System.Address;
++
++ <span class="comment"><EM>-- This is how those constants are defined in ncurses. I see them also</EM></span>
++ <span class="comment"><EM>-- exactly like this in all ETI implementations I ever tested. So it</EM></span>
++ <span class="comment"><EM>-- could be that this is quite general, but please check with your curses.</EM></span>
++ <span class="comment"><EM>-- This is critical, because curses sometime mixes Boolean returns with</EM></span>
++ <span class="comment"><EM>-- returning an error status.</EM></span>
++ <span class="symbol"><A NAME="ref_64_4">Curses_Ok</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_12_4">OK</A>;
++ <span class="symbol"><A NAME="ref_65_4">Curses_Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_13_4">ERR</A>;
++
++ <span class="symbol"><A NAME="ref_67_4">Curses_True</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_15_4">TRUE</A>;
++ <span class="symbol"><A NAME="ref_68_4">Curses_False</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_16_4">FALSE</A>;
++
++ <span class="comment"><EM>-- Eti_Error: type for error codes returned by the menu and form subsystem</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_71_9">Eti_Error</A></span> <b>is</b>
++ (<span class="symbol"><A NAME="ref_72_7">E_Current</A></span>,
++ <span class="symbol"><A NAME="ref_73_7">E_Invalid_Field</A></span>,
++ <span class="symbol"><A NAME="ref_74_7">E_Request_Denied</A></span>,
++ <span class="symbol"><A NAME="ref_75_7">E_Not_Connected</A></span>,
++ <span class="symbol"><A NAME="ref_76_7">E_Not_Selectable</A></span>,
++ <span class="symbol"><A NAME="ref_77_7">E_No_Match</A></span>,
++ <span class="symbol"><A NAME="ref_78_7">E_Unknown_Command</A></span>,
++ <span class="symbol"><A NAME="ref_79_7">E_Not_Posted</A></span>,
++ <span class="symbol"><A NAME="ref_80_7">E_No_Room</A></span>,
++ <span class="symbol"><A NAME="ref_81_7">E_Bad_State</A></span>,
++ <span class="symbol"><A NAME="ref_82_7">E_Connected</A></span>,
++ <span class="symbol"><A NAME="ref_83_7">E_Posted</A></span>,
++ <span class="symbol"><A NAME="ref_84_7">E_Bad_Argument</A></span>,
++ <span class="symbol"><A NAME="ref_85_7">E_System_Error</A></span>,
++ <span class="symbol"><A NAME="ref_86_7">E_Ok</A></span>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_88_14" HREF="terminal_interface-curses-aux__adb.htm#ref_94_14">Eti_Exception</A></span> (<span class="symbol"><A NAME="ref_88_29" HREF="terminal_interface-curses-aux__adb.htm#ref_94_29">Code</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>);
++ <span class="comment"><EM>-- Do nothing if Code = E_Ok.</EM></span>
++ <span class="comment"><EM>-- Else dispatch the error code and raise the appropriate exception.</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_92_14" HREF="terminal_interface-curses-aux__adb.htm#ref_44_14">Fill_String</A></span> (<span class="symbol"><A NAME="ref_92_27" HREF="terminal_interface-curses-aux__adb.htm#ref_44_27">Cp</A></span> : chars_ptr;
++ <span class="symbol"><A NAME="ref_93_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Str</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- Fill the Str parameter with the string denoted by the chars_ptr</EM></span>
++ <span class="comment"><EM>-- C-Style string.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_97_13" HREF="terminal_interface-curses-aux__adb.htm#ref_73_13">Fill_String</A></span> (<span class="symbol"><A NAME="ref_97_26" HREF="terminal_interface-curses-aux__adb.htm#ref_73_26">Cp</A></span> : chars_ptr) <b>return</b> String;
++ <span class="comment"><EM>-- Same but as function.</EM></span>
++
++<b>private</b>
++ <b>for</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>'Size <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>'Size;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>);
++ <b>for</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A> <b>use</b>
++ (<A HREF="terminal_interface-curses-aux__ads.htm#ref_72_7">E_Current</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_94_4">E_CURRENT</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Invalid_Field</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_93_4">E_INVALID_FIELD</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Request_Denied</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_92_4">E_REQUEST_DENIED</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_7">E_Not_Connected</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_91_4">E_NOT_CONNECTED</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_Not_Selectable</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_90_4">E_NOT_SELECTABLE</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_No_Match</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_89_4">E_NO_MATCH</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Unknown_Command</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_88_4">E_UNKNOWN_COMMAND</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_79_7">E_Not_Posted</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_87_4">E_NOT_POSTED</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_7">E_No_Room</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_86_4">E_NO_ROOM</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_7">E_Bad_State</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_85_4">E_BAD_STATE</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_7">E_Connected</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_84_4">E_CONNECTED</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_7">E_Posted</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_83_4">E_POSTED</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_7">E_Bad_Argument</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_82_4">E_BAD_ARGUMENT</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_7">E_System_Error</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_81_4">E_SYSTEM_ERROR</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_7">E_Ok</A> =&gt; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_80_4">E_OK</A>);
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,68 +1,76 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_alpha");
+
+- <FONT COLOR=red><A NAME="ref_53_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_53_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_46_9">Minimum_Field_Width</A>));
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_53_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_53_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_46_9">Minimum_Field_Width</A>)));
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,59 +1,71 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_44_58">Alpha</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>);
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_44_58">Alpha</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Alpha_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">Alpha_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>
+ <b>with</b> <b>record</b>
+- <FONT COLOR=red><A NAME="ref_46_9">Minimum_Field_Width</A></FONT> : Natural := 0;
++ <span class="symbol"><A NAME="ref_46_9">Minimum_Field_Width</A></span> : Natural := 0;
+ <b>end</b> <b>record</b>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,68 +1,76 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_alnum");
+
+- <FONT COLOR=red><A NAME="ref_53_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_53_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_47_9">Minimum_Field_Width</A>));
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_53_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_53_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_47_9">Minimum_Field_Width</A>)));
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,60 +1,72 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_44_58">AlphaNumeric</A></FONT> <b>is</b>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_44_58">AlphaNumeric</A></span> <b>is</b>
+ <b>pragma</b> Preelaborate
+- (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>);
++ (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_45_9">AlphaNumeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>
++ <b>type</b> <span class="symbol"><A NAME="ref_45_9">AlphaNumeric_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>
+ <b>with</b> <b>record</b>
+- <FONT COLOR=red><A NAME="ref_47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
++ <span class="symbol"><A NAME="ref_47_9">Minimum_Field_Width</A></span> : Natural := 0;
+ <b>end</b> <b>record</b>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,68 +1,80 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:36:20 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2004,2011 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- @Date: 2011/03/22 23:36:20 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<FONT COLOR=red><A NAME="ref_44_70" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<span class="symbol"><A NAME="ref_44_70" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A></span> <b>is</b>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_46_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_46_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>;
+- <FONT COLOR=red><A NAME="ref_47_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A></FONT> : Boolean := False;
+- <FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A></FONT> : Boolean := False)
++ <b>function</b> <span class="symbol"><A NAME="ref_46_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A></span> (<span class="symbol"><A NAME="ref_46_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>;
++ <span class="symbol"><A NAME="ref_47_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A></span> : Boolean := False;
++ <span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A></span> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_51_7">I</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'First) + 1);
+- <FONT COLOR=red><A NAME="ref_52_7">J</A></FONT> : Positive := 1;
++ <span class="symbol"><A NAME="ref_51_7">I</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'First) + 1);
++ <span class="symbol"><A NAME="ref_52_7">J</A></span> : Positive := 1;
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A>;
+
+- <b>for</b> <FONT COLOR=red><A NAME="ref_57_11">E</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'<b>Range</b> <b>loop</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_57_11">E</A></span> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'<b>Range</b> <b>loop</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_57_11">E</A>));
+- <FONT COLOR=green><EM>-- The Image attribute defaults to upper case, so we have to handle</EM></FONT>
+- <FONT COLOR=green><EM>-- only the other ones...</EM></FONT>
++ <span class="comment"><EM>-- The Image attribute defaults to upper case, so we have to handle</EM></span>
++ <span class="comment"><EM>-- only the other ones...</EM></span>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_34">Upper_Case</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A> <b>then</b>
+@@ -76,12 +88,12 @@
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>, True);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_74_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_74_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_75_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_74_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A></span> (<span class="symbol"><A NAME="ref_74_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_75_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#ref_372_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A>));
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#ref_369_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,65 +1,77 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.10 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">T</A></FONT> <b>is</b> (&lt;&gt;);
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">T</A></span> <b>is</b> (&lt;&gt;);
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<FONT COLOR=red><A NAME="ref_44_65" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_44_70">Ada</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<span class="symbol"><A NAME="ref_44_65" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_44_70">Ada</A></span> <b>is</b>
+ <b>pragma</b> Preelaborate
+- (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>);
++ (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>;
+- <FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Case_Sensitive</A></FONT> : Boolean := False;
+- <FONT COLOR=red><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Must_Be_Unique</A></FONT> : Boolean := False)
++ <b>function</b> <span class="symbol"><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_13">Create</A></span> (<span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_21">Set</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>;
++ <span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Case_Sensitive</A></span> : Boolean := False;
++ <span class="symbol"><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Must_Be_Unique</A></span> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_53_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_54_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>;
+- <FONT COLOR=green><EM>-- Translate the content of the fields buffer - indicated by the</EM></FONT>
+- <FONT COLOR=green><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></FONT>
+- <FONT COLOR=green><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></FONT>
++ <b>function</b> <span class="symbol"><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_13">Value</A></span> (<span class="symbol"><A NAME="ref_53_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_54_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Buf</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>;
++ <span class="comment"><EM>-- Translate the content of the fields buffer - indicated by the</EM></span>
++ <span class="comment"><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></span>
++ <span class="comment"><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,72 +1,84 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Unchecked_Deallocation;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A></span> <b>is</b>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
+- <FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A></FONT> : Boolean := False)
++ <b>function</b> <span class="symbol"><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A></span> (<span class="symbol"><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
++ <span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A></span> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>
+ <b>is</b>
+ <b>procedure</b> Release_String <b>is</b>
+ <b>new</b> Ada.Unchecked_Deallocation (String,
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>);
+- <FONT COLOR=red><A NAME="ref_55_7">E</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
+- <FONT COLOR=red><A NAME="ref_56_7">L</A></FONT> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>);
+- <FONT COLOR=red><A NAME="ref_57_7">S</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>;
++ <span class="symbol"><A NAME="ref_55_7">E</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
++ <span class="symbol"><A NAME="ref_56_7">L</A></span> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>);
++ <span class="symbol"><A NAME="ref_57_7">S</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>;
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A>);
+- <b>for</b> <FONT COLOR=red><A NAME="ref_62_11">I</A></FONT> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A> - 1) <b>loop</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_62_11">I</A></span> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A> - 1) <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>) = <b>null</b> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>).<b>all</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A> <b>then</b>
+@@ -78,10 +90,10 @@
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_76_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A></FONT> (<FONT COLOR=red><A NAME="ref_76_23" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A></span> (<span class="symbol"><A NAME="ref_76_23" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_78_7">I</A></FONT> : size_t := 0;
+- <FONT COLOR=red><A NAME="ref_79_7">P</A></FONT> : chars_ptr;
++ <span class="symbol"><A NAME="ref_78_7">I</A></span> : size_t := 0;
++ <span class="symbol"><A NAME="ref_79_7">P</A></span> : chars_ptr;
+ <b>begin</b>
+ <b>loop</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A>);
+@@ -93,29 +105,26 @@
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> := <b>null</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_91_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_91_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_92_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_91_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_91_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_92_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_94_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_94_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_95_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg1</A></FONT> : chars_ptr_array;
+- <FONT COLOR=red><A NAME="ref_96_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_97_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_94_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_94_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_95_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg1</A></span> : chars_ptr_array;
++ <span class="symbol"><A NAME="ref_96_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg2</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_97_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Arg3</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_enum");
+
+- <FONT COLOR=red><A NAME="ref_100_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> = <b>null</b> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_100_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b>,
+- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_96_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A>)),
+- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos
+- (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Match_Must_Be_Unique</A>)));
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_100_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_100_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A>
++ (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_16">Set_Fld_Type</A>
++ (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_95_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b>,
++ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_96_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A>)),
++ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Match_Must_Be_Unique</A>))));
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm 2011-02-25 23:43:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,104 +1,116 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_46_58">Enumeration</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_46_58">Enumeration</A></span> <b>is</b>
+ <b>pragma</b> Preelaborate
+- (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>);
++ (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_47_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
++ <b>type</b> <span class="symbol"><A NAME="ref_47_9">String_Access</A></span> <b>is</b> <b>access</b> String;
+
+- <FONT COLOR=green><EM>-- Type_Set is used by the child package Ada</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_50_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_50_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_50_46">Mixed_Case</A></FONT>);
++ <span class="comment"><EM>-- Type_Set is used by the child package Ada</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_50_9">Type_Set</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_50_22">Lower_Case</A></span>, <span class="symbol"><A NAME="ref_50_34">Upper_Case</A></span>, <span class="symbol"><A NAME="ref_50_46">Mixed_Case</A></span>);
+
+ <b>type</b> Enum_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;)
+ <b>of</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_55_27" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">C</A></FONT> : Positive) <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_55_9">Enumeration_Info</A></span> (<span class="symbol"><A NAME="ref_55_27" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">C</A></span> : Positive) <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_57_10">Names</A></FONT> : Enum_Array (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>);
+- <FONT COLOR=red><A NAME="ref_58_10">Case_Sensitive</A></FONT> : Boolean := False;
+- <FONT COLOR=red><A NAME="ref_59_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
++ <span class="symbol"><A NAME="ref_57_10">Names</A></span> : Enum_Array (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>);
++ <span class="symbol"><A NAME="ref_58_10">Case_Sensitive</A></span> : Boolean := False;
++ <span class="symbol"><A NAME="ref_59_10">Match_Must_Be_Unique</A></span> : Boolean := False;
+ <b>end</b> <b>record</b>;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Enumeration_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_62_9">Enumeration_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b> <b>private</b>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_64_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
+- <FONT COLOR=red><A NAME="ref_65_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Auto_Release_Names</A></FONT> : Boolean := False)
++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_13">Create</A></span> (<span class="symbol"><A NAME="ref_64_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_21">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
++ <span class="symbol"><A NAME="ref_65_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Auto_Release_Names</A></span> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
+- <FONT COLOR=green><EM>-- Make an fieldtype from the info. Enumerations are special, because</EM></FONT>
+- <FONT COLOR=green><EM>-- they normally don't copy the enum values into a private store, so</EM></FONT>
+- <FONT COLOR=green><EM>-- we have to care for the lifetime of the info we provide.</EM></FONT>
+- <FONT COLOR=green><EM>-- The Auto_Release_Names flag may be used to automatically releases</EM></FONT>
+- <FONT COLOR=green><EM>-- the strings in the Names array of the Enumeration_Info.</EM></FONT>
++ <span class="comment"><EM>-- Make an fieldtype from the info. Enumerations are special, because</EM></span>
++ <span class="comment"><EM>-- they normally don't copy the enum values into a private store, so</EM></span>
++ <span class="comment"><EM>-- we have to care for the lifetime of the info we provide.</EM></span>
++ <span class="comment"><EM>-- The Auto_Release_Names flag may be used to automatically releases</EM></span>
++ <span class="comment"><EM>-- the strings in the Names array of the Enumeration_Info.</EM></span>
+
+- <b>function</b> Make_Enumeration_Type (<FONT COLOR=red><A NAME="ref_73_36">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
+- <FONT COLOR=red><A NAME="ref_74_36">Auto_Release_Names</A></FONT> : Boolean := False)
++ <b>function</b> Make_Enumeration_Type (<span class="symbol"><A NAME="ref_73_36">Info</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
++ <span class="symbol"><A NAME="ref_74_36">Auto_Release_Names</A></span> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_14">Release</A></FONT> (<FONT COLOR=red><A NAME="ref_77_23" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>);
+- <FONT COLOR=green><EM>-- But we may want to release the field to release the memory allocated</EM></FONT>
+- <FONT COLOR=green><EM>-- by it internally. After that the Enumeration field is no longer usable.</EM></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_14">Release</A></span> (<span class="symbol"><A NAME="ref_77_23" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_23">Enum</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>);
++ <span class="comment"><EM>-- But we may want to release the field to release the memory allocated</EM></span>
++ <span class="comment"><EM>-- by it internally. After that the Enumeration field is no longer usable.</EM></span>
+
+- <FONT COLOR=green><EM>-- The next type defintions are all ncurses extensions. They are typically</EM></FONT>
+- <FONT COLOR=green><EM>-- not available in other curses implementations.</EM></FONT>
++ <span class="comment"><EM>-- The next type defintions are all ncurses extensions. They are typically</EM></span>
++ <span class="comment"><EM>-- not available in other curses implementations.</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_84_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_84_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_85_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_84_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_84_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_85_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+ <b>private</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr_array;
++ <b>type</b> <span class="symbol"><A NAME="ref_89_9">CPA_Access</A></span> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr_array;
+
+- <b>type</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
++ <b>type</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_93_10">Case_Sensitive</A></FONT> : Boolean := False;
+- <FONT COLOR=red><A NAME="ref_94_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
+- <FONT COLOR=red><A NAME="ref_95_10">Arr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_89_9">CPA_Access</A> := <b>null</b>;
++ <span class="symbol"><A NAME="ref_93_10">Case_Sensitive</A></span> : Boolean := False;
++ <span class="symbol"><A NAME="ref_94_10">Match_Must_Be_Unique</A></span> : Boolean := False;
++ <span class="symbol"><A NAME="ref_95_10">Arr</A></span> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_89_9">CPA_Access</A> := <b>null</b>;
+ <b>end</b> <b>record</b>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,72 +1,80 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>;
+- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg3</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg2</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_52_12">C_Long_Int</A>;
++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Arg3</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_52_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_integer");
+
+- <FONT COLOR=red><A NAME="ref_55_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_55_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_46_10">Precision</A>),
+- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_47_10">Lower_Limit</A>),
+- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_52_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_48_10">Upper_Limit</A>));
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_55_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_50_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_46_10">Precision</A>),
++ <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_52_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_47_10">Lower_Limit</A>),
++ <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_52_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#ref_52_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_48_10">Upper_Limit</A>)));
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,61 +1,73 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_44_58">IntField</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>);
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_44_58">IntField</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Integer_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">Integer_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_46_10">Precision</A></FONT> : Natural;
+- <FONT COLOR=red><A NAME="ref_47_10">Lower_Limit</A></FONT> : Integer;
+- <FONT COLOR=red><A NAME="ref_48_10">Upper_Limit</A></FONT> : Integer;
++ <span class="symbol"><A NAME="ref_46_10">Precision</A></span> : Natural;
++ <span class="symbol"><A NAME="ref_47_10">Lower_Limit</A></span> : Integer;
++ <span class="symbol"><A NAME="ref_48_10">Upper_Limit</A></span> : Integer;
+ <b>end</b> <b>record</b>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,68 +1,76 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_49_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_ipv4");
+
+- <FONT COLOR=red><A NAME="ref_53_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_53_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">Set_Fld_Type</A>;
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_53_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_53_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_16">Set_Fld_Type</A>);
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,57 +1,69 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_44_58">IPV4_Address</A></FONT> <b>is</b>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_44_58">IPV4_Address</A></span> <b>is</b>
+ <b>pragma</b> Preelaborate
+- (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>);
++ (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_45_9">Internet_V4_Address_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_45_9">Internet_V4_Address_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,75 +1,83 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 00:45:37 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>)
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_50_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.double;
++ <b>type</b> <span class="symbol"><A NAME="ref_50_12">Double</A></span> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.double;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_52_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>;
+- <FONT COLOR=red><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_52_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg2</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>;
++ <span class="symbol"><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Arg3</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_numeric");
+
+- <FONT COLOR=red><A NAME="ref_58_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_58_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_46_10">Precision</A>),
+- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_54_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_47_10">Lower_Limit</A>),
+- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_55_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_48_10">Upper_Limit</A>));
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_58_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_58_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_52_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_46_10">Precision</A>),
++ <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_54_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_47_10">Lower_Limit</A>),
++ <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_55_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_50_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_48_10">Upper_Limit</A>)));
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,61 +1,73 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_45_58">Numeric</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>);
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_45_58">Numeric</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Numeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">Numeric_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_46_10">Precision</A></FONT> : Natural;
+- <FONT COLOR=red><A NAME="ref_47_10">Lower_Limit</A></FONT> : Float;
+- <FONT COLOR=red><A NAME="ref_48_10">Upper_Limit</A></FONT> : Float;
++ <span class="symbol"><A NAME="ref_46_10">Precision</A></span> : Natural;
++ <span class="symbol"><A NAME="ref_47_10">Lower_Limit</A></span> : Float;
++ <span class="symbol"><A NAME="ref_48_10">Upper_Limit</A></span> : Float;
+ <b>end</b> <b>record</b>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm 2011-03-19 23:18:39.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,73 +1,76 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>)
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_52_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_49_16">Set_Ftyp</A></span> (<span class="symbol"><A NAME="ref_49_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_50_26" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_16">Arg1</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Ftyp, "set_field_type_regexp");
+
+- <FONT COLOR=red><A NAME="ref_55_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>'Length);
+- <FONT COLOR=red><A NAME="ref_56_7">Len</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_57_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_55_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_56_7">Len</A>);
+- <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_57_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_52_26">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_55_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_55_7">Txt</A>'First)'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_57_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_57_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_50_26">Arg1</A> =&gt; To_C (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>)));
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,61 +1,73 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_44_58">RegExp</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>);
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_44_58">RegExp</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9">String_Access</A></span> <b>is</b> <b>access</b> String;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Regular_Expression_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_46_9">Regular_Expression_Field</A></span> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_48_10">Regular_Expression</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_44_9">String_Access</A>;
++ <span class="symbol"><A NAME="ref_48_10">Regular_Expression</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_44_9">String_Access</A>;
+ <b>end</b> <b>record</b>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>);
+ <b>pragma</b> Inline (Set_Field_Type);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,114 +1,122 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.17 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 10:53:37 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.20 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System.Address_To_Access_Conversions;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<FONT COLOR=red><A NAME="ref_45_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<span class="symbol"><A NAME="ref_45_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A></span> <b>is</b>
+
+ <b>package</b> Argument_Conversions <b>is</b>
+- <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>);
++ <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_50_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_51_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A></span> (<span class="symbol"><A NAME="ref_50_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_51_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_53_7">Result</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_54_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
++ <span class="symbol"><A NAME="ref_53_7">Result</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_54_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A>
+- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A>)).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
++ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_81_27">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_7">Udf</A>.<b>all</b>);
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_7">Result</A>));
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_62_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_63_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A></span> (<span class="symbol"><A NAME="ref_62_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_63_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_65_7">Result</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_66_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
++ <span class="symbol"><A NAME="ref_65_7">Result</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_66_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A>
+- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A>)).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
++ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_88_27">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_7">Udf</A>.<b>all</b>);
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_7">Result</A>));
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A>;
+
+- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_76_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_78_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_76_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_78_13">C_Generic_Choice</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_78_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_79_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_78_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
++ <span class="symbol"><A NAME="ref_79_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>'<b>Access</b>,
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A>);
+
+- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>,
++ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_78_7">Res</A>);
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>;
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_7">T</A>;
+ <b>end</b> <b>if</b>;
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_78_13">C_Generic_Choice</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,100 +1,112 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 12:27:47 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- @Date: 2011/03/19 12:27:47 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_45_63">Choice</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<span class="symbol"><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_45_63">Choice</A></span> <b>is</b>
+ <b>pragma</b> Preelaborate
+- (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>);
++ (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>);
+
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_48_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">User_Defined_Field_Type_With_Choice</A></FONT> <b>is</b> <b>abstract</b> <b>new</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_50_9">User_Defined_Field_Type_With_Choice</A></span> <b>is</b> <b>abstract</b> <b>new</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+- <FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT>
+- <FONT COLOR=green><EM>-- Ada95 that allow the prev/next mechanism. You should your own type</EM></FONT>
+- <FONT COLOR=green><EM>-- derive from this one and implement the Field_Check, Character_Check</EM></FONT>
+- <FONT COLOR=green><EM>-- Next and Previous functions for your own type.</EM></FONT>
++ <span class="comment"><EM>-- This is the root of the mechanism we use to create field types in</EM></span>
++ <span class="comment"><EM>-- Ada95 that allow the prev/next mechanism. You should your own type</EM></span>
++ <span class="comment"><EM>-- derive from this one and implement the Field_Check, Character_Check</EM></span>
++ <span class="comment"><EM>-- Next and Previous functions for your own type.</EM></span>
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">User_Defined_Field_Type_With_Choice_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_57_9">User_Defined_Field_Type_With_Choice_Access</A></span> <b>is</b> <b>access</b> <b>all</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>'Class;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_60_13">Next</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_60_13">Next</A></span>
++ (<span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
+ <b>is</b> <b>abstract</b>;
+- <FONT COLOR=green><EM>-- If True is returned, the function successfully generated a next</EM></FONT>
+- <FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT>
++ <span class="comment"><EM>-- If True is returned, the function successfully generated a next</EM></span>
++ <span class="comment"><EM>-- value into the fields buffer.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_67_13">Previous</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_67_13">Previous</A></span>
++ (<span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
+ <b>is</b> <b>abstract</b>;
+- <FONT COLOR=green><EM>-- If True is returned, the function successfully generated a previous</EM></FONT>
+- <FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT>
++ <span class="comment"><EM>-- If True is returned, the function successfully generated a previous</EM></span>
++ <span class="comment"><EM>-- value into the fields buffer.</EM></span>
+
+- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- | Private Part.</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
+ <b>private</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_78_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_76_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_78_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_76_13">C_Generic_Choice</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_80_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_81_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13">Generic_Next</A></span> (<span class="symbol"><A NAME="ref_80_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_81_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_51_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">Generic_Next</A>);
+- <FONT COLOR=green><EM>-- This is the generic next Choice_Function for the low-level fieldtype</EM></FONT>
+- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT>
+- <FONT COLOR=green><EM>-- the call to the Next implementation for the type.</EM></FONT>
++ <span class="comment"><EM>-- This is the generic next Choice_Function for the low-level fieldtype</EM></span>
++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
++ <span class="comment"><EM>-- the call to the Next implementation for the type.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_87_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_87_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_88_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_87_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_13">Generic_Prev</A></span> (<span class="symbol"><A NAME="ref_87_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_62_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_88_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_63_27">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_87_13">Generic_Prev</A>);
+- <FONT COLOR=green><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></FONT>
+- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT>
+- <FONT COLOR=green><EM>-- the call to the Previous implementation for the type.</EM></FONT>
++ <span class="comment"><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></span>
++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
++ <span class="comment"><EM>-- the call to the Previous implementation for the type.</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_44_58">Choice</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,139 +1,144 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.21 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/23 00:44:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.23 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System.Address_To_Access_Conversions;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_45_58" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_50_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_61_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_61_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_50_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_59_16">Allocate_Arg</A></span> (<span class="symbol"><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_59_30">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class)
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_53_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A>;
+- <FONT COLOR=red><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_53_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A>;
++ <span class="symbol"><A NAME="ref_54_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A>;
++ <span class="symbol"><A NAME="ref_55_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_user");
+
+- <FONT COLOR=red><A NAME="ref_59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_61_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_61_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_59_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A></span> (<span class="symbol"><A NAME="ref_59_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class)
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_64_10">Ptr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>
++ <span class="symbol"><A NAME="ref_62_10">Ptr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>
+ := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">T</A>);
+ <b>begin</b>
+- <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> =&gt; System.Null_Address,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_64_10">Ptr</A>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
++ <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> =&gt; System.Null_Address,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_62_10">Ptr</A>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A>;
+
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_55_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A>));
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_59_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_55_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A>;
+
+ <b>package</b> Argument_Conversions <b>is</b>
+- <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>);
++ <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_82_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_83_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_77_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A></span> (<span class="symbol"><A NAME="ref_77_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_78_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_85_7">Result</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_86_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> :=
++ <span class="symbol"><A NAME="ref_80_7">Result</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_81_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A>
+- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
++ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_82_34">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_86_7">Udf</A>.<b>all</b>);
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_7">Result</A>));
++ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_80_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_81_7">Udf</A>.<b>all</b>);
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_80_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_94_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_95_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_89_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A></span> (<span class="symbol"><A NAME="ref_89_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_90_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_97_7">Result</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_98_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> :=
++ <span class="symbol"><A NAME="ref_92_7">Result</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_93_7">Udf</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A>
+- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
++ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_89_33">Usr</A>)).<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_98_7">Udf</A>.<b>all</b>);
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_7">Result</A>));
++ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_92_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_93_7">Udf</A>.<b>all</b>);
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_92_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>;
+
+- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_108_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_103_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_110_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_111_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_105_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
++ <span class="symbol"><A NAME="ref_106_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>'<b>Access</b>,
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_110_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_110_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_110_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_105_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">T</A>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_105_7">Res</A>);
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">T</A>;
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_106_7">T</A>;
+ <b>end</b> <b>if</b>;
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_79_13">C_Generic_Type</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,101 +1,113 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 12:27:21 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_45_58">User</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>);
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_48_9">User_Defined_Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+- <FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT>
+- <FONT COLOR=green><EM>-- Ada95. You should your own type derive from this one and implement</EM></FONT>
+- <FONT COLOR=green><EM>-- the Field_Check and Character_Check functions for your own type.</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- @Date: 2011/03/19 12:27:21 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<span class="symbol"><A NAME="ref_44_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_45_58">User</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>);
++ <b>subtype</b> <span class="symbol"><A NAME="ref_46_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_48_9">User_Defined_Field_Type</A></span> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
++ <span class="comment"><EM>-- This is the root of the mechanism we use to create field types in</EM></span>
++ <span class="comment"><EM>-- Ada95. You should your own type derive from this one and implement</EM></span>
++ <span class="comment"><EM>-- the Field_Check and Character_Check functions for your own type.</EM></span>
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">User_Defined_Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_53_9">User_Defined_Field_Type_Access</A></span> <b>is</b> <b>access</b> <b>all</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_56_13">Field_Check</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_56_13">Field_Check</A></span>
++ (<span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
+ <b>is</b> <b>abstract</b>;
+- <FONT COLOR=green><EM>-- If True is returned, the field is considered valid, otherwise it is</EM></FONT>
+- <FONT COLOR=green><EM>-- invalid.</EM></FONT>
++ <span class="comment"><EM>-- If True is returned, the field is considered valid, otherwise it is</EM></span>
++ <span class="comment"><EM>-- invalid.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13">Character_Check</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Ch</A></FONT> : Character;
+- <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_63_13">Character_Check</A></span>
++ (<span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Ch</A></span> : Character;
++ <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
+ <b>is</b> <b>abstract</b>;
+- <FONT COLOR=green><EM>-- If True is returned, the character is considered as valid for the</EM></FONT>
+- <FONT COLOR=green><EM>-- field, otherwise as invalid.</EM></FONT>
++ <span class="comment"><EM>-- If True is returned, the character is considered as valid for the</EM></span>
++ <span class="comment"><EM>-- field, otherwise as invalid.</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_70_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_30">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>);
+- <FONT COLOR=green><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></FONT>
+- <FONT COLOR=green><EM>-- No need to reimplement it for your derived type.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
+- <FONT COLOR=green><EM>-- | Used by the Choice child package.</EM></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_70_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_70_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_47_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_48_30">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>);
++ <span class="comment"><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></span>
++ <span class="comment"><EM>-- No need to reimplement it for your derived type.</EM></span>
++
++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- | Private Part.</EM></span>
++ <span class="comment"><EM>-- | Used by the Choice child package.</EM></span>
+ <b>private</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_108_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_103_13">C_Generic_Type</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_81_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_83_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_77_13">Generic_Field_Check</A></span> (<span class="symbol"><A NAME="ref_81_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_77_34">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_82_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_78_34">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">Generic_Field_Check</A>);
+- <FONT COLOR=green><EM>-- This is the generic Field_Check_Function for the low-level fieldtype</EM></FONT>
+- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT>
+- <FONT COLOR=green><EM>-- the call to the Field_Check implementation for the type.</EM></FONT>
++ <span class="comment"><EM>-- This is the generic Field_Check_Function for the low-level fieldtype</EM></span>
++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
++ <span class="comment"><EM>-- the call to the Field_Check implementation for the type.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_88_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_88_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_94_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_89_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_95_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_88_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_89_13">Generic_Char_Check</A></span> (<span class="symbol"><A NAME="ref_88_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_89_33">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_89_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_90_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_88_13">Generic_Char_Check</A>);
+- <FONT COLOR=green><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></FONT>
+- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></FONT>
+- <FONT COLOR=green><EM>-- the call to the Character_Check implementation for the type.</EM></FONT>
++ <span class="comment"><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></span>
++ <span class="comment"><EM>-- representing all the User_Defined_Field_Type derivatives. It routes</EM></span>
++ <span class="comment"><EM>-- the call to the Character_Check implementation for the type.</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_44_53">User</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,289 +1,286 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.25 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:22:27 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.27 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+ <b>with</b> Ada.Unchecked_Deallocation;
+ <b>with</b> System.Address_To_Access_Conversions;
+
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-<FONT COLOR=green><EM>-- | man page form_fieldtype.3x</EM></FONT>
+-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_51_46" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A></FONT> <b>is</b>
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |=====================================================================</EM></span>
++<span class="comment"><EM>-- | man page form_fieldtype.3x</EM></span>
++<span class="comment"><EM>-- |=====================================================================</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<span class="symbol"><A NAME="ref_51_46" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A></span> <b>is</b>
+
+ <b>use</b> <b>type</b> System.Address;
+
+ <b>package</b> Argument_Conversions <b>is</b>
+- <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>);
++ <b>new</b> System.Address_To_Access_Conversions (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_58_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_58_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_58_13">Get_Fieldtype</A></span> (<span class="symbol"><A NAME="ref_58_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, Get_Fieldtype, "field_type");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_61_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_61_22" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> System.Address;
++ <b>function</b> <span class="symbol"><A NAME="ref_61_13">Get_Arg</A></span> (<span class="symbol"><A NAME="ref_61_22" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> System.Address;
+ <b>pragma</b> Import (C, Get_Arg, "field_arg");
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_validation.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_70_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_validation.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_13">Get_Type</A></span> (<span class="symbol"><A NAME="ref_70_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_72_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>);
+- <FONT COLOR=red><A NAME="ref_73_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
++ <span class="symbol"><A NAME="ref_72_7">Low_Level</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</A>);
++ <span class="symbol"><A NAME="ref_73_7">Arg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
+ <b>return</b> <b>null</b>;
+ <b>else</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> <b>or</b> <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> <b>or</b> <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
+- (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>)));
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Type</A> <b>or</b> <b>else</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> <b>or</b> <b>else</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Generic_Choice</A> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
++ (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_23">Fld</A>)));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A> = <b>null</b> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>;
+ <b>end</b> <b>if</b>;
+ <b>else</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_80_13">Get_Type</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_95_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_95_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address
++ <b>function</b> <span class="symbol"><A NAME="ref_95_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A></span> (<span class="symbol"><A NAME="ref_95_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_23">Usr</A></span> : System.Address) <b>return</b> System.Address
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_23">Usr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_101_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_101_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A></FONT> : System.Address)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_101_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A></span> (<span class="symbol"><A NAME="ref_101_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_24">Usr</A></span> : System.Address)
+ <b>is</b>
+ <b>procedure</b> Free_Type <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>);
++ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>);
+ <b>procedure</b> Freeargs <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
++ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>);
+
+- <FONT COLOR=red><A NAME="ref_108_7">To_Be_Free</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
+- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A>));
+- <FONT COLOR=red><A NAME="ref_110_7">Low_Level</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_108_7">To_Be_Free</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
++ := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_24">Usr</A>));
++ <span class="symbol"><A NAME="ref_110_7">Low_Level</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A> /= <b>null</b> <b>then</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> /= System.Null_Address <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>;
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Freearg</A> /= <b>null</b> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> /= System.Null_Address <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Freearg</A> /= <b>null</b> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_110_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b> <b>then</b>
+- Free_Type (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b> <b>then</b>
++ Free_Type (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A>);
+ <b>end</b> <b>if</b>;
+ Freeargs (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_108_7">To_Be_Free</A>);
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_126_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_126_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_127_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
+- <FONT COLOR=red><A NAME="ref_128_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_126_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A></span> (<span class="symbol"><A NAME="ref_126_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_127_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class;
++ <span class="symbol"><A NAME="ref_128_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_130_7">Usr_Arg</A></FONT> : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>);
+- <FONT COLOR=red><A NAME="ref_131_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>);
+- <FONT COLOR=red><A NAME="ref_132_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
+- <FONT COLOR=red><A NAME="ref_133_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_134_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_134_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>;
+- <FONT COLOR=red><A NAME="ref_135_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Cf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A>;
+- <FONT COLOR=red><A NAME="ref_136_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_130_7">Usr_Arg</A></span> : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>);
++ <span class="symbol"><A NAME="ref_131_7">Low_Level</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>);
++ <span class="symbol"><A NAME="ref_132_7">Arg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_133_16">Set_Fld_Type</A></span> (<span class="symbol"><A NAME="ref_133_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_16">F</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>;
++ <span class="symbol"><A NAME="ref_134_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_16">Cf</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A>;
++ <span class="symbol"><A NAME="ref_135_30" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_16">Arg1</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Type, "set_field_type_user");
+
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_154_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> =&gt; System.Null_Address,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> =&gt; <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A>),
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>));
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> =&gt; System.Null_Address,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> =&gt; <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Typ</A>),
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Fld</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_130_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_125_10">Copyarg</A> /= <b>null</b> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_125_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_130_7">Usr_Arg</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Copyarg</A> /= <b>null</b> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_131_7">Low_Level</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_130_7">Usr_Arg</A>);
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_130_7">Usr_Arg</A>;
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_130_7">Usr_Arg</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_134_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_136_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_133_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_135_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_132_7">Arg</A>));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_14">Wrap_Builtin</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_162_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_162_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_163_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_158_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A></span> (<span class="symbol"><A NAME="ref_158_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_159_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_179_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_165_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
+- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A>));
++ <span class="symbol"><A NAME="ref_161_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
++ := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_179_33">Usr</A>));
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Fcheck</A> /= <b>null</b> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_165_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
++ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Fcheck</A> /= <b>null</b> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_161_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>else</b>
+ <b>return</b> 1;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_177_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_178_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_173_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A></span> (<span class="symbol"><A NAME="ref_173_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_174_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_187_32">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_180_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
+- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A>));
++ <span class="symbol"><A NAME="ref_176_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
++ := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_187_32">Usr</A>));
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Ccheck</A> /= <b>null</b> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_180_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
++ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Ccheck</A> /= <b>null</b> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_176_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>else</b>
+ <b>return</b> 1;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_192_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_192_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_188_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A></span> (<span class="symbol"><A NAME="ref_188_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_189_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_195_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_195_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
+- := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A>));
++ <span class="symbol"><A NAME="ref_191_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A>
++ := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_195_26">Usr</A>));
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Next</A> /= <b>null</b> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
++ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_10">Next</A> /= <b>null</b> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_191_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>else</b>
+ <b>return</b> 1;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_207_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_207_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_208_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_203_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A></span> (<span class="symbol"><A NAME="ref_203_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_204_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_203_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_210_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> :=
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A>));
++ <span class="symbol"><A NAME="ref_206_7">Arg</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> :=
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_217_9">Argument_Access</A> (Argument_Conversions.To_Pointer (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_203_26">Usr</A>));
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_16">Prev</A> /= <b>null</b> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_210_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>
++ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Typ</A> /= <b>null</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_16">Prev</A> /= <b>null</b> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_215_7">Cft</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_130_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_206_7">Arg</A>.<b>all</b>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Usr</A>);
+ <b>else</b>
+ <b>return</b> 1;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A>;
+
+- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_224_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_220_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_226_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_227_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_222_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_222_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>'<b>Access</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_222_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_226_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_226_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_226_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_222_7">T</A>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>));
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_227_7">T</A>;
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_222_7">T</A>;
+ <b>end</b> <b>if</b>;
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>;
+-
+- <FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_251_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Builtin_Router</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A>;
++
++ <span class="comment"><EM>-- -----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_243_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_253_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_254_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_245_7">T</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_245_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>'<b>Access</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_245_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A>);
+- <b>end</b> <b>if</b>;
+-
+- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_253_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_245_7">T</A>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>));
++
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_245_7">T</A>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A>'<b>Access</b>));
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_254_7">T</A>;
++ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_245_7">T</A>;
+ <b>end</b> <b>if</b>;
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_135_4">Null_Field_Type</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_145_4">M_Choice_Router</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_150_13">C_Choice_Router</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,245 +1,258 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_types.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.16 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_43_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_51_46">Field_Types</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>);
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_52_9">Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
+- <FONT COLOR=green><EM>-- Abstract base type for all field types. A concrete field type</EM></FONT>
+- <FONT COLOR=green><EM>-- is an extension that adds some data elements describing formats or</EM></FONT>
+- <FONT COLOR=green><EM>-- boundary values for the type and validation routines.</EM></FONT>
+- <FONT COLOR=green><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></FONT>
+- <FONT COLOR=green><EM>-- already defined by the low-level C library.</EM></FONT>
+- <FONT COLOR=green><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></FONT>
+- <FONT COLOR=green><EM>-- child packages of this package. You may use one of them as example</EM></FONT>
+- <FONT COLOR=green><EM>-- how to create you own child packages for low-level field types that</EM></FONT>
+- <FONT COLOR=green><EM>-- you may have already written in C.</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_63_9">Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_66_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_66_14">Fld_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>) <b>is</b> <b>abstract</b>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></FONT>
+- <FONT COLOR=green><EM>-- have to pass a single Field_Type parameter.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- ---------------------------------------------------------------------</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_79_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_23">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: field_arg()</EM></FONT>
+- <FONT COLOR=green><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></FONT>
+- <FONT COLOR=green><EM>-- that is not defined as extension of the abstract tagged type above,</EM></FONT>
+- <FONT COLOR=green><EM>-- you will raise a Form_Exception.</EM></FONT>
+- <FONT COLOR=green><EM>-- This is not inlined</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
+- <FONT COLOR=green><EM>-- | Most of this is used by the implementations of the child packages.</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.19 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<span class="symbol"><A NAME="ref_44_41" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_51_46">Field_Types</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>);
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_47_12">C_Int</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_53_9">Field_Type</A></span> <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
++ <span class="comment"><EM>-- Abstract base type for all field types. A concrete field type</EM></span>
++ <span class="comment"><EM>-- is an extension that adds some data elements describing formats or</EM></span>
++ <span class="comment"><EM>-- boundary values for the type and validation routines.</EM></span>
++ <span class="comment"><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></span>
++ <span class="comment"><EM>-- already defined by the low-level C library.</EM></span>
++ <span class="comment"><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></span>
++ <span class="comment"><EM>-- child packages of this package. You may use one of them as example</EM></span>
++ <span class="comment"><EM>-- how to create you own child packages for low-level field types that</EM></span>
++ <span class="comment"><EM>-- you may have already written in C.</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_64_9">Field_Type_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class;
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_67_14">Set_Field_Type</A></span> (<span class="symbol"><A NAME="ref_67_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_67_14">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_68_30" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_67_14">Fld_Type</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>) <b>is</b> <b>abstract</b>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></span>
++ <span class="comment"><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></span>
++ <span class="comment"><EM>-- have to pass a single Field_Type parameter.</EM></span>
++
++ <span class="comment"><EM>-- ---------------------------------------------------------------------</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_13">Get_Type</A></span> (<span class="symbol"><A NAME="ref_80_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_70_23">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></span>
++ <span class="comment"><EM>-- AKA: field_arg()</EM></span>
++ <span class="comment"><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></span>
++ <span class="comment"><EM>-- that is not defined as extension of the abstract tagged type above,</EM></span>
++ <span class="comment"><EM>-- you will raise a Form_Exception.</EM></span>
++ <span class="comment"><EM>-- This is not inlined</EM></span>
++
++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- | Private Part.</EM></span>
++ <span class="comment"><EM>-- | Most of this is used by the implementations of the child packages.</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
+ <b>private</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_92_9">Makearg_Function</A></FONT> <b>is</b> <b>access</b>
+- <b>function</b> (<FONT COLOR=red><A NAME="ref_93_16">Args</A></FONT> : System.Address) <b>return</b> System.Address;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_96_9">Copyarg_Function</A></FONT> <b>is</b> <b>access</b>
+- <b>function</b> (<FONT COLOR=red><A NAME="ref_97_16">Usr</A></FONT> : System.Address) <b>return</b> System.Address;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_100_9">Freearg_Function</A></FONT> <b>is</b> <b>access</b>
+- <b>procedure</b> (<FONT COLOR=red><A NAME="ref_101_17">Usr</A></FONT> : System.Address);
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_104_9">Field_Check_Function</A></FONT> <b>is</b> <b>access</b>
+- <b>function</b> (<FONT COLOR=red><A NAME="ref_105_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_105_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_108_9">Char_Check_Function</A></FONT> <b>is</b> <b>access</b>
+- <b>function</b> (<FONT COLOR=red><A NAME="ref_109_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_109_28">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_112_9">Choice_Function</A></FONT> <b>is</b> <b>access</b>
+- <b>function</b> (<FONT COLOR=red><A NAME="ref_113_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_113_29">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>);
+-
+- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_119_9">Low_Level_Field_Type</A></FONT> <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_93_9">Makearg_Function</A></span> <b>is</b> <b>access</b>
++ <b>function</b> (<span class="symbol"><A NAME="ref_94_16">Args</A></span> : System.Address) <b>return</b> System.Address;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_97_9">Copyarg_Function</A></span> <b>is</b> <b>access</b>
++ <b>function</b> (<span class="symbol"><A NAME="ref_98_16">Usr</A></span> : System.Address) <b>return</b> System.Address;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_101_9">Freearg_Function</A></span> <b>is</b> <b>access</b>
++ <b>procedure</b> (<span class="symbol"><A NAME="ref_102_17">Usr</A></span> : System.Address);
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_105_9">Field_Check_Function</A></span> <b>is</b> <b>access</b>
++ <b>function</b> (<span class="symbol"><A NAME="ref_106_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>; <span class="symbol"><A NAME="ref_106_29">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_109_9">Char_Check_Function</A></span> <b>is</b> <b>access</b>
++ <b>function</b> (<span class="symbol"><A NAME="ref_110_16">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>; <span class="symbol"><A NAME="ref_110_28">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_113_9">Choice_Function</A></span> <b>is</b> <b>access</b>
++ <b>function</b> (<span class="symbol"><A NAME="ref_114_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>; <span class="symbol"><A NAME="ref_114_29">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</A>);
++
++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_120_9">Low_Level_Field_Type</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_121_10">Status</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_short;
+- <FONT COLOR=red><A NAME="ref_122_10">Ref_Count</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.long;
+- <FONT COLOR=red><A NAME="ref_123_10">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_123_16">Right</A></FONT> : System.Address;
+- <FONT COLOR=red><A NAME="ref_124_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A>;
+- <FONT COLOR=red><A NAME="ref_125_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A>;
+- <FONT COLOR=red><A NAME="ref_126_10">Freearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A>;
+- <FONT COLOR=red><A NAME="ref_127_10">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>;
+- <FONT COLOR=red><A NAME="ref_128_10">Ccheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>;
+- <FONT COLOR=red><A NAME="ref_129_10">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_129_16">Prev</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>;
++ <span class="symbol"><A NAME="ref_122_10">Status</A></span> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_short;
++ <span class="symbol"><A NAME="ref_123_10">Ref_Count</A></span> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.long;
++ <span class="symbol"><A NAME="ref_124_10">Left</A></span>, <span class="symbol"><A NAME="ref_124_16">Right</A></span> : System.Address;
++ <span class="symbol"><A NAME="ref_125_10">Makearg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</A>;
++ <span class="symbol"><A NAME="ref_126_10">Copyarg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</A>;
++ <span class="symbol"><A NAME="ref_127_10">Freearg</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</A>;
++ <span class="symbol"><A NAME="ref_128_10">Fcheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</A>;
++ <span class="symbol"><A NAME="ref_129_10">Ccheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</A>;
++ <span class="symbol"><A NAME="ref_130_10">Next</A></span>, <span class="symbol"><A NAME="ref_130_16">Prev</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</A>;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_132_9">C_Field_Type</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_119_9">Low_Level_Field_Type</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_120_9">Low_Level_Field_Type</A>);
++ <b>type</b> <span class="symbol"><A NAME="ref_133_9">C_Field_Type</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_120_9">Low_Level_Field_Type</A>;
+
+- <FONT COLOR=red><A NAME="ref_134_4">Null_Field_Type</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
++ <span class="symbol"><A NAME="ref_135_4">Null_Field_Type</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
+
+- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- | This four low-level fieldtypes are the ones associated with</EM></FONT>
+- <FONT COLOR=green><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
+- <FONT COLOR=green><EM>-- | will result in a Form_Exception is function Get_Type.</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_141_4">M_Generic_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+- <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+- <FONT COLOR=red><A NAME="ref_143_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+- <FONT COLOR=red><A NAME="ref_144_4">M_Choice_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+-
+- <FONT COLOR=green><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></FONT>
+- <FONT COLOR=green><EM>-- in this package.</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_224_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_251_13">C_Choice_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_151_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
+- <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_128_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>);
+- <FONT COLOR=green><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></FONT>
+- <FONT COLOR=green><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></FONT>
+- <FONT COLOR=green><EM>-- conformant Field_Type object.</EM></FONT>
+- <FONT COLOR=green><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></FONT>
+- <FONT COLOR=green><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></FONT>
+- <FONT COLOR=green><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT>
+- <FONT COLOR=green><EM>-- Any other value will raise a Form_Exception.</EM></FONT>
++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- | This four low-level fieldtypes are the ones associated with</EM></span>
++ <span class="comment"><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></span>
++ <span class="comment"><EM>-- | will result in a Form_Exception is function Get_Type.</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="symbol"><A NAME="ref_142_4">M_Generic_Type</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
++ <span class="symbol"><A NAME="ref_143_4">M_Generic_Choice</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
++ <span class="symbol"><A NAME="ref_144_4">M_Builtin_Router</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
++ <span class="symbol"><A NAME="ref_145_4">M_Choice_Router</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <b>null</b>;
++
++ <span class="comment"><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></span>
++ <span class="comment"><EM>-- in this package.</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_220_13">C_Builtin_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_150_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_243_13">C_Choice_Router</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_152_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_14">Wrap_Builtin</A></span> (<span class="symbol"><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_28">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_53_9">Field_Type</A>'Class;
++ <span class="symbol"><A NAME="ref_154_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_128_28">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Builtin_Router</A>);
++ <span class="comment"><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></span>
++ <span class="comment"><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></span>
++ <span class="comment"><EM>-- conformant Field_Type object.</EM></span>
++ <span class="comment"><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></span>
++ <span class="comment"><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></span>
++ <span class="comment"><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></span>
++ <span class="comment"><EM>-- Any other value will raise a Form_Exception.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_162_13">Make_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Args</A></FONT> : System.Address) <b>return</b> System.Address;
++ <b>function</b> <span class="symbol"><A NAME="ref_163_13">Make_Arg</A></span> (<span class="symbol"><A NAME="ref_163_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Args</A></span> : System.Address) <b>return</b> System.Address;
+ <b>pragma</b> Import (C, Make_Arg, "void_star_make_arg");
+- <FONT COLOR=green><EM>-- This is the Makearg_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
++ <span class="comment"><EM>-- This is the Makearg_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced by this binding.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_167_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_167_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>);
+- <FONT COLOR=green><EM>-- This is the Copyarg_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_172_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_172_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_24">Usr</A></FONT> : System.Address);
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>);
+- <FONT COLOR=green><EM>-- This is the Freearg_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_177_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_162_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_177_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_162_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_163_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>);
+- <FONT COLOR=green><EM>-- This is the Field_Check_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT>
+- <FONT COLOR=green><EM>-- function.</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_185_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_177_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_185_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_177_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_178_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>);
+- <FONT COLOR=green><EM>-- This is the Char_Check_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT>
+- <FONT COLOR=green><EM>-- function.</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_193_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_192_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_193_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_192_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_193_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>);
+- <FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></FONT>
+- <FONT COLOR=green><EM>-- function.</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_201_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_207_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_201_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_207_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_208_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>);
+- <FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
+- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level prev_choice</EM></FONT>
+- <FONT COLOR=green><EM>-- function.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- This is the Argument structure maintained by all low-level field types</EM></FONT>
+- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_211_9">Argument</A></FONT> <b>is</b> <b>record</b>
+- <FONT COLOR=red><A NAME="ref_212_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>; <FONT COLOR=green><EM>-- the Field_Type creating this record</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_213_7">Usr</A></FONT> : System.Address; <FONT COLOR=green><EM>-- original arg for builtin low-level types</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_214_7">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>; <FONT COLOR=green><EM>-- the original low-level type</EM></FONT>
++ <b>function</b> <span class="symbol"><A NAME="ref_168_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_13">Copy_Arg</A></span> (<span class="symbol"><A NAME="ref_168_23" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_95_23">Usr</A></span> : System.Address) <b>return</b> System.Address;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>);
++ <span class="comment"><EM>-- This is the Copyarg_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced by this binding.</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_173_14" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_14">Free_Arg</A></span> (<span class="symbol"><A NAME="ref_173_24" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_101_24">Usr</A></span> : System.Address);
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>);
++ <span class="comment"><EM>-- This is the Freearg_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced by this binding.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_178_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_158_13">Field_Check_Router</A></span> (<span class="symbol"><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_158_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_179_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_159_33">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_13">Field_Check_Router</A>);
++ <span class="comment"><EM>-- This is the Field_Check_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level validation</EM></span>
++ <span class="comment"><EM>-- function.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_186_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_173_13">Char_Check_Router</A></span> (<span class="symbol"><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_173_32">Ch</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_47_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_187_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_174_32">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_13">Char_Check_Router</A>);
++ <span class="comment"><EM>-- This is the Char_Check_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level validation</EM></span>
++ <span class="comment"><EM>-- function.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_194_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_188_13">Next_Router</A></span> (<span class="symbol"><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_188_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_195_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_189_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_13">Next_Router</A>);
++ <span class="comment"><EM>-- This is the Choice_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></span>
++ <span class="comment"><EM>-- function.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_202_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_203_13">Prev_Router</A></span> (<span class="symbol"><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_203_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_203_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_204_26">Usr</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_13">Prev_Router</A>);
++ <span class="comment"><EM>-- This is the Choice_Function for the internal low-level types</EM></span>
++ <span class="comment"><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></span>
++ <span class="comment"><EM>-- type. It routes the call to the corresponding low-level prev_choice</EM></span>
++ <span class="comment"><EM>-- function.</EM></span>
++
++ <span class="comment"><EM>-- This is the Argument structure maintained by all low-level field types</EM></span>
++ <span class="comment"><EM>-- introduced by this binding.</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_212_9">Argument</A></span> <b>is</b> <b>record</b>
++ <span class="symbol"><A NAME="ref_213_7">Typ</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_64_9">Field_Type_Access</A>; <span class="comment"><EM>-- the Field_Type creating this record</EM></span>
++ <span class="symbol"><A NAME="ref_214_7">Usr</A></span> : System.Address; <span class="comment"><EM>-- original arg for builtin low-level types</EM></span>
++ <span class="symbol"><A NAME="ref_215_7">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>; <span class="comment"><EM>-- the original low-level type</EM></span>
+ <b>end</b> <b>record</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_216_9">Argument_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_217_9">Argument_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_9">Argument</A>;
+
+- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_222_13">New_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_222_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Field_Check_Function</A>;
+- <FONT COLOR=red><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">Ccheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Char_Check_Function</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
++ <span class="comment"><EM>-- +----------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_223_13">New_Fieldtype</A></span> (<span class="symbol"><A NAME="ref_223_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">Fcheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_105_9">Field_Check_Function</A>;
++ <span class="symbol"><A NAME="ref_224_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_223_13">Ccheck</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_109_9">Char_Check_Function</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_227_13">Set_Fieldtype_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_227_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+- <FONT COLOR=red><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>;
+- <FONT COLOR=red><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>;
+- <FONT COLOR=red><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Fre</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_228_13">Set_Fieldtype_Arg</A></span> (<span class="symbol"><A NAME="ref_228_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_229_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Mak</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_93_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_163_13">Make_Arg</A>'<b>Access</b>;
++ <span class="symbol"><A NAME="ref_230_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Cop</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_97_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_168_13">Copy_Arg</A>'<b>Access</b>;
++ <span class="symbol"><A NAME="ref_231_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_228_13">Fre</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_101_9">Freearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_173_14">Free_Arg</A>'<b>Access</b>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_234_13">Set_Fieldtype_Choice</A></FONT> (<FONT COLOR=red><A NAME="ref_234_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+- <FONT COLOR=red><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Next</A></FONT>, <FONT COLOR=red><A NAME="ref_235_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Prev</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Choice_Function</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_235_13">Set_Fieldtype_Choice</A></span> (<span class="symbol"><A NAME="ref_235_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Cft</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_133_9">C_Field_Type</A>;
++ <span class="symbol"><A NAME="ref_236_35" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Next</A></span>, <span class="symbol"><A NAME="ref_236_41" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_235_13">Prev</A></span> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_113_9">Choice_Function</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_44_41">Field_Types</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm 2011-02-25 23:43:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,91 +1,100 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-<FONT COLOR=green><EM>-- | man page form_field_userptr.3x</EM></FONT>
+-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A></FONT> <b>is</b>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |=====================================================================</EM></span>
++<span class="comment"><EM>-- | man page form_field_userptr.3x</EM></span>
++<span class="comment"><EM>-- |=====================================================================</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<span class="symbol"><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A></span> <b>is</b>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_57_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_57_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_58_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_57_16">Set_Field_Userptr</A></span> (<span class="symbol"><A NAME="ref_57_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_58_35" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Usr</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Userptr, "set_field_userptr");
+
+- <FONT COLOR=red><A NAME="ref_61_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_70_28" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_67_13" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_67_28" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_72_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_72_31" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_69_16">Field_Userptr</A></span> (<span class="symbol"><A NAME="ref_69_31" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_69_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, Field_Userptr, "field_userptr");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_69_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_78_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_78_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_75_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_75_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_76_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,75 +1,87 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.16 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.16 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_43_9">User</A>;
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_48_46">Field_User_Data</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></FONT>
++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_48_46">Field_User_Data</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_54_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></span>
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_78_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_70_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Sama as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_75_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_75_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_76_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_67_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_67_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></span>
++ <span class="comment"><EM>-- Sama as function</EM></span>
+ <b>pragma</b> Inline (Get_User_Data);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm 2011-02-25 23:43:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,92 +1,101 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-<FONT COLOR=green><EM>-- | man page form__userptr.3x</EM></FONT>
+-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A></FONT> <b>is</b>
+-
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_56_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |=====================================================================</EM></span>
++<span class="comment"><EM>-- | man page form__userptr.3x</EM></span>
++<span class="comment"><EM>-- |=====================================================================</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<span class="symbol"><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A></span> <b>is</b>
++
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_56_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_58_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_58_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_59_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_58_16">Set_Form_Userptr</A></span> (<span class="symbol"><A NAME="ref_58_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_59_34" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Form_Userptr, "set_form_userptr");
+
+- <FONT COLOR=red><A NAME="ref_62_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_71_28" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_68_13" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_68_28" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_73_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_73_30" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_70_16">Form_Userptr</A></span> (<span class="symbol"><A NAME="ref_70_30" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_70_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, Form_Userptr, "form_userptr");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_70_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_79_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_80_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_76_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_77_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,75 +1,87 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_43_9">User</A>;
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_48_46">Form_User_Data</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></FONT>
++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_48_46">Form_User_Data</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_55_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Data</A></span> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></span>
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_79_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_71_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_76_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_76_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_77_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_68_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_68_28">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Get_User_Data);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,1167 +1,1049 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.28 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:37:32 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Forms --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.32 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Unchecked_Deallocation;
+-<b>with</b> Ada.Unchecked_Conversion;
+
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers;
+
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_51_40" HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_50_40" HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A></span> <b>is</b>
+
+- <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++ <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+- <b>type</b> C_Field_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++ <b>type</b> C_Field_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
+ <b>package</b> F_Array <b>is</b> <b>new</b>
+- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>);
++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>, C_Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>);
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></FONT>
+-
+- <b>function</b> FOS_2_CInt <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+-
+- <b>function</b> CInt_2_FOS <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
+-
+- <b>function</b> FrmOS_2_CInt <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+-
+- <b>function</b> CInt_2_FrmOS <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_81_14" HREF="terminal_interface-curses-forms__ads.htm#ref_280_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_81_28" HREF="terminal_interface-curses-forms__ads.htm#ref_280_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>;
+- <FONT COLOR=red><A NAME="ref_82_33" HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Name</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-forms__ads.htm#ref_277_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-forms__ads.htm#ref_277_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A>;
++ <span class="symbol"><A NAME="ref_65_33" HREF="terminal_interface-curses-forms__ads.htm#ref_278_28">Name</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_84_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_84_35" HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_67_16">Form_Request_Name</A></span> (<span class="symbol"><A NAME="ref_67_35" HREF="terminal_interface-curses-forms__adb.htm#ref_67_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Form_Request_Name, "form_request_name");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_280_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_281_28">Name</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_280_14">Request_Name</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_67_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_277_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_278_28">Name</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_277_14">Request_Name</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_90_13" HREF="terminal_interface-curses-forms__ads.htm#ref_283_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_27" HREF="terminal_interface-curses-forms__ads.htm#ref_283_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_73_13" HREF="terminal_interface-curses-forms__ads.htm#ref_280_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_73_27" HREF="terminal_interface-curses-forms__ads.htm#ref_280_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_92_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_92_35" HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_75_16">Form_Request_Name</A></span> (<span class="symbol"><A NAME="ref_75_35" HREF="terminal_interface-curses-forms__adb.htm#ref_75_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Form_Request_Name, "form_request_name");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_283_28">Key</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_283_14">Request_Name</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_new.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_108_13" HREF="terminal_interface-curses-forms__ads.htm#ref_297_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_108_21" HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_109_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_110_21" HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_111_21" HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_112_21" HREF="terminal_interface-curses-forms__ads.htm#ref_301_21">Off_Screen</A></FONT> : Natural := 0;
+- <FONT COLOR=red><A NAME="ref_113_21" HREF="terminal_interface-curses-forms__ads.htm#ref_302_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First)
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_75_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_280_28">Key</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_280_14">Request_Name</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_new.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_91_13" HREF="terminal_interface-curses-forms__ads.htm#ref_294_13">Create</A></span> (<span class="symbol"><A NAME="ref_91_21" HREF="terminal_interface-curses-forms__ads.htm#ref_294_21">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_92_21" HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_93_21" HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_94_21" HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_95_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Off_Screen</A></span> : Natural := 0;
++ <span class="symbol"><A NAME="ref_96_21" HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_116_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="ref_116_26" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">H</A></FONT>, <FONT COLOR=red><A NAME="ref_116_29" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">W</A></FONT>, <FONT COLOR=red><A NAME="ref_116_32" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">T</A></FONT>, <FONT COLOR=red><A NAME="ref_116_35" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_116_38" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">O</A></FONT>, <FONT COLOR=red><A NAME="ref_116_41" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_99_16">Newfield</A></span> (<span class="symbol"><A NAME="ref_99_26" HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">H</A></span>, <span class="symbol"><A NAME="ref_99_29" HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">W</A></span>, <span class="symbol"><A NAME="ref_99_32" HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">T</A></span>, <span class="symbol"><A NAME="ref_99_35" HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">L</A></span>, <span class="symbol"><A NAME="ref_99_38" HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">O</A></span>, <span class="symbol"><A NAME="ref_99_41" HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">M</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
+ <b>pragma</b> Import (C, Newfield, "new_field");
+- <FONT COLOR=red><A NAME="ref_118_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Width</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_300_21">Left</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_301_21">Off_Screen</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_302_21">More_Buffers</A>));
+- <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_118_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_118_7">Fld</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_297_13">Create</A>;
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_319_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_131_22" HREF="terminal_interface-curses-forms__ads.htm#ref_319_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>)
++ <span class="symbol"><A NAME="ref_101_7">Fld</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_99_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_294_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Width</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Left</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">Off_Screen</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_299_21">More_Buffers</A>));
++ <b>begin</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_101_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_101_7">Fld</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_294_13">Create</A>;
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_114_14" HREF="terminal_interface-curses-forms__ads.htm#ref_316_14">Delete</A></span> (<span class="symbol"><A NAME="ref_114_22" HREF="terminal_interface-curses-forms__ads.htm#ref_316_22">Fld</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_133_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_133_28" HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_116_16">Free_Field</A></span> (<span class="symbol"><A NAME="ref_116_28" HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Free_Field, "free_field");
+
+- <FONT COLOR=red><A NAME="ref_136_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_319_22">Fld</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_319_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_319_14">Delete</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_147_13" HREF="terminal_interface-curses-forms__ads.htm#ref_325_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_147_24" HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_148_24" HREF="terminal_interface-curses-forms__ads.htm#ref_326_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_149_24" HREF="terminal_interface-curses-forms__ads.htm#ref_327_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_151_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_152_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_153_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_316_22">Fld</A>));
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_316_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_316_14">Delete</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_126_13" HREF="terminal_interface-curses-forms__ads.htm#ref_322_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_126_24" HREF="terminal_interface-curses-forms__ads.htm#ref_322_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_127_24" HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_128_24" HREF="terminal_interface-curses-forms__ads.htm#ref_324_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_130_16">Dup_Field</A></span> (<span class="symbol"><A NAME="ref_130_27" HREF="terminal_interface-curses-forms__adb.htm#ref_130_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_131_27" HREF="terminal_interface-curses-forms__adb.htm#ref_130_16">Top</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_132_27" HREF="terminal_interface-curses-forms__adb.htm#ref_130_16">Left</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
+ <b>pragma</b> Import (C, Dup_Field, "dup_field");
+
+- <FONT COLOR=red><A NAME="ref_156_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_325_24">Fld</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_326_24">Top</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_327_24">Left</A>));
+- <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_325_13">Duplicate</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_168_13" HREF="terminal_interface-curses-forms__ads.htm#ref_332_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_168_19" HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_169_19" HREF="terminal_interface-curses-forms__ads.htm#ref_333_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_170_19" HREF="terminal_interface-curses-forms__ads.htm#ref_334_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_172_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_172_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_173_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_174_27" HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++ <span class="symbol"><A NAME="ref_135_7">F</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_130_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_322_24">Fld</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Top</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_324_24">Left</A>));
++ <b>begin</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_135_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_135_7">F</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_322_13">Duplicate</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_147_13" HREF="terminal_interface-curses-forms__ads.htm#ref_329_13">Link</A></span> (<span class="symbol"><A NAME="ref_147_19" HREF="terminal_interface-curses-forms__ads.htm#ref_329_19">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_148_19" HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_149_19" HREF="terminal_interface-curses-forms__ads.htm#ref_331_19">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_151_16">Lnk_Field</A></span> (<span class="symbol"><A NAME="ref_151_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_152_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Top</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_153_27" HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Left</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
+ <b>pragma</b> Import (C, Lnk_Field, "link_field");
+
+- <FONT COLOR=red><A NAME="ref_177_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_332_19">Fld</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_333_19">Top</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_334_19">Left</A>));
++ <span class="symbol"><A NAME="ref_156_7">F</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_329_19">Fld</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Top</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_331_19">Left</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_177_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_177_7">F</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_332_13">Link</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_just.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_193_14" HREF="terminal_interface-curses-forms__ads.htm#ref_343_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_193_33" HREF="terminal_interface-curses-forms__ads.htm#ref_343_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_194_33" HREF="terminal_interface-curses-forms__ads.htm#ref_344_33">Just</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_329_13">Link</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_just.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_172_14" HREF="terminal_interface-curses-forms__ads.htm#ref_340_14">Set_Justification</A></span> (<span class="symbol"><A NAME="ref_172_33" HREF="terminal_interface-curses-forms__ads.htm#ref_340_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_173_33" HREF="terminal_interface-curses-forms__ads.htm#ref_341_33">Just</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_33">None</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_196_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_196_32" HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_197_32" HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Just</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_175_16">Set_Field_Just</A></span> (<span class="symbol"><A NAME="ref_175_32" HREF="terminal_interface-curses-forms__adb.htm#ref_175_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_176_32" HREF="terminal_interface-curses-forms__adb.htm#ref_175_16">Just</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Just, "set_field_just");
+
+- <FONT COLOR=red><A NAME="ref_200_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> :=
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_343_33">Fld</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_344_33">Just</A>)));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_200_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_200_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_343_14">Set_Justification</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_211_13" HREF="terminal_interface-curses-forms__ads.htm#ref_349_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_211_32" HREF="terminal_interface-curses-forms__ads.htm#ref_349_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_175_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_340_33">Fld</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_341_33">Just</A>))));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_340_14">Set_Justification</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_186_13" HREF="terminal_interface-curses-forms__ads.htm#ref_346_13">Get_Justification</A></span> (<span class="symbol"><A NAME="ref_186_32" HREF="terminal_interface-curses-forms__ads.htm#ref_346_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field_Justification</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_213_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_213_28" HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_188_16">Field_Just</A></span> (<span class="symbol"><A NAME="ref_188_28" HREF="terminal_interface-curses-forms__adb.htm#ref_188_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Field_Just, "field_just");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_349_32">Fld</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_349_13">Get_Justification</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_buffer.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_225_14" HREF="terminal_interface-curses-forms__ads.htm#ref_358_14">Set_Buffer</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses-forms__ads.htm#ref_360_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First;
+- <FONT COLOR=red><A NAME="ref_228_7" HREF="terminal_interface-curses-forms__ads.htm#ref_361_7">Str</A></FONT> : String)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_230_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_231_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_231_32" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_232_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_233_34" HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">S</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_230_12">Char_Ptr</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_188_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_346_32">Fld</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_346_13">Get_Justification</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_buffer.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_200_14" HREF="terminal_interface-curses-forms__ads.htm#ref_355_14">Set_Buffer</A></span>
++ (<span class="symbol"><A NAME="ref_201_7" HREF="terminal_interface-curses-forms__ads.htm#ref_356_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_202_7" HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First;
++ <span class="symbol"><A NAME="ref_203_7" HREF="terminal_interface-curses-forms__ads.htm#ref_358_7">Str</A></span> : String)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_205_16">Set_Fld_Buffer</A></span> (<span class="symbol"><A NAME="ref_205_32" HREF="terminal_interface-curses-forms__adb.htm#ref_205_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_206_34" HREF="terminal_interface-curses-forms__adb.htm#ref_205_16">Bufnum</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_207_34" HREF="terminal_interface-curses-forms__adb.htm#ref_205_16">S</A></span> : char_array)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Buffer, "set_field_buffer");
+
+- <FONT COLOR=red><A NAME="ref_237_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#ref_361_7">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_238_7">Len</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_239_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_361_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_238_7">Len</A>);
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_359_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_360_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>'First)'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_358_14">Set_Buffer</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-forms__ads.htm#ref_366_14">Get_Buffer</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_251_7" HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_252_7" HREF="terminal_interface-curses-forms__ads.htm#ref_368_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First;
+- <FONT COLOR=red><A NAME="ref_253_7" HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Str</A></FONT> : <b>out</b> String)
++ <b>begin</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_205_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_356_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Buffer</A>), To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_358_7">Str</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_355_14">Set_Buffer</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_217_14" HREF="terminal_interface-curses-forms__ads.htm#ref_363_14">Get_Buffer</A></span>
++ (<span class="symbol"><A NAME="ref_218_7" HREF="terminal_interface-curses-forms__ads.htm#ref_364_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_219_7" HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First;
++ <span class="symbol"><A NAME="ref_220_7" HREF="terminal_interface-curses-forms__ads.htm#ref_366_7">Str</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_255_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_255_30" HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_256_30" HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_222_16">Field_Buffer</A></span> (<span class="symbol"><A NAME="ref_222_30" HREF="terminal_interface-curses-forms__adb.htm#ref_222_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_223_30" HREF="terminal_interface-curses-forms__adb.htm#ref_222_16">B</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Field_Buffer, "field_buffer");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_367_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_368_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Str</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_366_14">Get_Buffer</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_222_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_364_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_366_7">Str</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_363_14">Get_Buffer</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_262_13" HREF="terminal_interface-curses-forms__ads.htm#ref_372_13">Get_Buffer</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_263_7" HREF="terminal_interface-curses-forms__ads.htm#ref_373_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses-forms__ads.htm#ref_374_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_229_13" HREF="terminal_interface-curses-forms__ads.htm#ref_369_13">Get_Buffer</A></span>
++ (<span class="symbol"><A NAME="ref_230_7" HREF="terminal_interface-curses-forms__ads.htm#ref_370_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_231_7" HREF="terminal_interface-curses-forms__ads.htm#ref_371_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_266_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_266_30" HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_267_30" HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_233_16">Field_Buffer</A></span> (<span class="symbol"><A NAME="ref_233_30" HREF="terminal_interface-curses-forms__adb.htm#ref_233_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_234_30" HREF="terminal_interface-curses-forms__adb.htm#ref_233_16">B</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Field_Buffer, "field_buffer");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_373_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_374_7">Buffer</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_372_13">Get_Buffer</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_275_14" HREF="terminal_interface-curses-forms__ads.htm#ref_380_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_275_26" HREF="terminal_interface-curses-forms__ads.htm#ref_380_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-forms__ads.htm#ref_381_26">Status</A></FONT> : Boolean := True)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_233_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_370_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_371_7">Buffer</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_369_13">Get_Buffer</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_242_14" HREF="terminal_interface-curses-forms__ads.htm#ref_377_14">Set_Status</A></span> (<span class="symbol"><A NAME="ref_242_26" HREF="terminal_interface-curses-forms__ads.htm#ref_377_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_243_26" HREF="terminal_interface-curses-forms__ads.htm#ref_378_26">Status</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_278_32" HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_279_32" HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">St</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_245_16">Set_Fld_Status</A></span> (<span class="symbol"><A NAME="ref_245_32" HREF="terminal_interface-curses-forms__adb.htm#ref_245_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_246_32" HREF="terminal_interface-curses-forms__adb.htm#ref_245_16">St</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Fld_Status, "set_field_status");
+
+- <FONT COLOR=red><A NAME="ref_282_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_380_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_381_26">Status</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_282_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_245_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_377_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_378_26">Status</A>)) /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_7">E_Ok</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_380_14">Set_Status</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses-forms__ads.htm#ref_386_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_291_22" HREF="terminal_interface-curses-forms__ads.htm#ref_386_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_377_14">Set_Status</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_257_13" HREF="terminal_interface-curses-forms__ads.htm#ref_383_13">Changed</A></span> (<span class="symbol"><A NAME="ref_257_22" HREF="terminal_interface-curses-forms__ads.htm#ref_383_22">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_293_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_293_30" HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_259_16">Field_Status</A></span> (<span class="symbol"><A NAME="ref_259_30" HREF="terminal_interface-curses-forms__adb.htm#ref_259_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Field_Status, "field_status");
+
+- <FONT COLOR=red><A NAME="ref_296_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_386_22">Fld</A>);
++ <span class="symbol"><A NAME="ref_262_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_259_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_383_22">Fld</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_296_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_262_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_386_13">Changed</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_307_14" HREF="terminal_interface-curses-forms__ads.htm#ref_391_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_307_32" HREF="terminal_interface-curses-forms__ads.htm#ref_391_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_308_32" HREF="terminal_interface-curses-forms__ads.htm#ref_392_32">Max</A></FONT> : Natural := 0)
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_383_13">Changed</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_273_14" HREF="terminal_interface-curses-forms__ads.htm#ref_388_14">Set_Maximum_Size</A></span> (<span class="symbol"><A NAME="ref_273_32" HREF="terminal_interface-curses-forms__ads.htm#ref_388_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_274_32" HREF="terminal_interface-curses-forms__ads.htm#ref_389_32">Max</A></span> : Natural := 0)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_310_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="ref_310_31" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_311_31" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_276_16">Set_Field_Max</A></span> (<span class="symbol"><A NAME="ref_276_31" HREF="terminal_interface-curses-forms__adb.htm#ref_276_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_277_31" HREF="terminal_interface-curses-forms__adb.htm#ref_276_16">M</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Max, "set_max_field");
+
+- <FONT COLOR=red><A NAME="ref_314_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_391_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_392_32">Max</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_314_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_314_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_391_14">Set_Maximum_Size</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_opts.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_327_14" HREF="terminal_interface-curses-forms__ads.htm#ref_401_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_327_27" HREF="terminal_interface-curses-forms__ads.htm#ref_401_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_328_27" HREF="terminal_interface-curses-forms__ads.htm#ref_402_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_276_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_388_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_389_32">Max</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_388_14">Set_Maximum_Size</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_opts.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_290_14" HREF="terminal_interface-curses-forms__ads.htm#ref_398_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_290_27" HREF="terminal_interface-curses-forms__ads.htm#ref_398_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_291_27" HREF="terminal_interface-curses-forms__ads.htm#ref_399_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_330_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_330_32" HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_331_32" HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_293_16">Set_Field_Opts</A></span> (<span class="symbol"><A NAME="ref_293_32" HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_294_32" HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Opts, "set_field_opts");
+
+- <FONT COLOR=red><A NAME="ref_334_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_402_27">Options</A>);
+- <FONT COLOR=red><A NAME="ref_335_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_401_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_334_7">Opt</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_401_14">Set_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_345_14" HREF="terminal_interface-curses-forms__ads.htm#ref_407_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_345_30" HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_346_30" HREF="terminal_interface-curses-forms__ads.htm#ref_408_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_347_30" HREF="terminal_interface-curses-forms__ads.htm#ref_409_30">On</A></FONT> : Boolean := True)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_398_27">Fld</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_399_27">Options</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_398_14">Set_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_303_14" HREF="terminal_interface-curses-forms__ads.htm#ref_404_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_303_30" HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_304_30" HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_305_30" HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_349_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_349_31" HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_350_31" HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_307_16">Field_Opts_On</A></span> (<span class="symbol"><A NAME="ref_307_31" HREF="terminal_interface-curses-forms__adb.htm#ref_307_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_308_31" HREF="terminal_interface-curses-forms__adb.htm#ref_307_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Field_Opts_On, "field_opts_on");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_352_16">Field_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_352_32" HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_353_32" HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_310_16">Field_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_310_32" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_311_32" HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Field_Opts_Off, "field_opts_off");
+
+- <FONT COLOR=red><A NAME="ref_356_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_357_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_408_30">Options</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_409_30">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_406_30">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_307_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Fld</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Options</A>));
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_407_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Fld</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">Options</A>));
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_407_14">Switch_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-forms__ads.htm#ref_415_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-forms__ads.htm#ref_415_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-forms__ads.htm#ref_416_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>)
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_404_14">Switch_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_324_14" HREF="terminal_interface-curses-forms__ads.htm#ref_412_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_324_27" HREF="terminal_interface-curses-forms__ads.htm#ref_412_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_325_27" HREF="terminal_interface-curses-forms__ads.htm#ref_413_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_28" HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_327_16">Field_Opts</A></span> (<span class="symbol"><A NAME="ref_327_28" HREF="terminal_interface-curses-forms__adb.htm#ref_327_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>;
+ <b>pragma</b> Import (C, Field_Opts, "field_opts");
+
+- <FONT COLOR=red><A NAME="ref_377_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_415_27">Fld</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_416_27">Options</A> := CInt_2_FOS (<A HREF="terminal_interface-curses-forms__adb.htm#ref_377_7">Res</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_415_14">Get_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__ads.htm#ref_420_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_384_26" HREF="terminal_interface-curses-forms__ads.htm#ref_420_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_387_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+- <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_415_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_420_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_420_13">Get_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_attributes.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__ads.htm#ref_430_14">Set_Foreground</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_400_7" HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_401_7" HREF="terminal_interface-curses-forms__ads.htm#ref_432_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_402_7" HREF="terminal_interface-curses-forms__ads.htm#ref_433_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_413_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_327_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_412_27">Fld</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_412_14">Get_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_336_13" HREF="terminal_interface-curses-forms__ads.htm#ref_417_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_336_26" HREF="terminal_interface-curses-forms__ads.htm#ref_417_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>
++ <b>is</b>
++ <span class="symbol"><A NAME="ref_339_7">Fos</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>;
++ <b>begin</b>
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_412_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_417_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_339_7">Fos</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_339_7">Fos</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_417_13">Get_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_attributes.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_351_14" HREF="terminal_interface-curses-forms__ads.htm#ref_427_14">Set_Foreground</A></span>
++ (<span class="symbol"><A NAME="ref_352_7" HREF="terminal_interface-curses-forms__ads.htm#ref_428_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_353_7" HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_354_7" HREF="terminal_interface-curses-forms__ads.htm#ref_430_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_404_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_404_32" HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_405_32" HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_356_16">Set_Field_Fore</A></span> (<span class="symbol"><A NAME="ref_356_32" HREF="terminal_interface-curses-forms__adb.htm#ref_356_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_357_32" HREF="terminal_interface-curses-forms__adb.htm#ref_356_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Fore, "set_field_fore");
+
+- <FONT COLOR=red><A NAME="ref_408_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_433_7">Color</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_432_7">Fore</A>);
+- <FONT COLOR=red><A NAME="ref_411_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> :=
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_431_7">Fld</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-forms__adb.htm#ref_408_7">Ch</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_411_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_411_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_430_14">Set_Foreground</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_421_14" HREF="terminal_interface-curses-forms__ads.htm#ref_438_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_421_26" HREF="terminal_interface-curses-forms__ads.htm#ref_438_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_356_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_428_7">Fld</A>, (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_430_7">Color</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Fore</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_427_14">Set_Foreground</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_368_14" HREF="terminal_interface-curses-forms__ads.htm#ref_435_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_368_26" HREF="terminal_interface-curses-forms__ads.htm#ref_435_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_369_26" HREF="terminal_interface-curses-forms__ads.htm#ref_436_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_424_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_424_28" HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_371_16">Field_Fore</A></span> (<span class="symbol"><A NAME="ref_371_28" HREF="terminal_interface-curses-forms__adb.htm#ref_371_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Field_Fore, "field_fore");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_438_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_438_14">Foreground</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_436_26">Fore</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_371_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_435_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_435_14">Foreground</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__ads.htm#ref_443_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-forms__ads.htm#ref_444_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-forms__ads.htm#ref_445_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_377_14" HREF="terminal_interface-curses-forms__ads.htm#ref_440_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__ads.htm#ref_440_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_379_26" HREF="terminal_interface-curses-forms__ads.htm#ref_442_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_434_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_434_28" HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_381_16">Field_Fore</A></span> (<span class="symbol"><A NAME="ref_381_28" HREF="terminal_interface-curses-forms__adb.htm#ref_381_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Field_Fore, "field_fore");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_444_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_445_26">Color</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_443_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_443_14">Foreground</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__ads.htm#ref_450_14">Set_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-forms__ads.htm#ref_452_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-forms__ads.htm#ref_453_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Fore</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_381_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_440_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_442_26">Color</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_381_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_440_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_440_14">Foreground</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_390_14" HREF="terminal_interface-curses-forms__ads.htm#ref_447_14">Set_Background</A></span>
++ (<span class="symbol"><A NAME="ref_391_7" HREF="terminal_interface-curses-forms__ads.htm#ref_448_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_392_7" HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_393_7" HREF="terminal_interface-curses-forms__ads.htm#ref_450_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_448_32" HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_449_32" HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_395_16">Set_Field_Back</A></span> (<span class="symbol"><A NAME="ref_395_32" HREF="terminal_interface-curses-forms__adb.htm#ref_395_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_396_32" HREF="terminal_interface-curses-forms__adb.htm#ref_395_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Back, "set_field_back");
+
+- <FONT COLOR=red><A NAME="ref_452_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_453_7">Color</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_452_7">Back</A>);
+- <FONT COLOR=red><A NAME="ref_455_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> :=
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_451_7">Fld</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-forms__adb.htm#ref_452_7">Ch</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_455_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_455_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_450_14">Set_Background</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_465_14" HREF="terminal_interface-curses-forms__ads.htm#ref_458_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__ads.htm#ref_458_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_466_26" HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_395_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_448_7">Fld</A>, (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_450_7">Color</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Back</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_447_14">Set_Background</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_407_14" HREF="terminal_interface-curses-forms__ads.htm#ref_455_14">Background</A></span> (<span class="symbol"><A NAME="ref_407_26" HREF="terminal_interface-curses-forms__ads.htm#ref_455_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_408_26" HREF="terminal_interface-curses-forms__ads.htm#ref_456_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_468_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_468_28" HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_410_16">Field_Back</A></span> (<span class="symbol"><A NAME="ref_410_28" HREF="terminal_interface-curses-forms__adb.htm#ref_410_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Field_Back, "field_back");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Back</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_458_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_458_14">Background</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_456_26">Back</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_410_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_455_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_455_14">Background</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__ads.htm#ref_463_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_474_26" HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_475_26" HREF="terminal_interface-curses-forms__ads.htm#ref_464_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_476_26" HREF="terminal_interface-curses-forms__ads.htm#ref_465_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_416_14" HREF="terminal_interface-curses-forms__ads.htm#ref_460_14">Background</A></span> (<span class="symbol"><A NAME="ref_416_26" HREF="terminal_interface-curses-forms__ads.htm#ref_460_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_417_26" HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_418_26" HREF="terminal_interface-curses-forms__ads.htm#ref_462_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_478_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_478_28" HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_420_16">Field_Back</A></span> (<span class="symbol"><A NAME="ref_420_28" HREF="terminal_interface-curses-forms__adb.htm#ref_420_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Field_Back, "field_back");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_464_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_465_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_463_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_463_14">Background</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_487_14" HREF="terminal_interface-curses-forms__ads.htm#ref_470_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_487_33" HREF="terminal_interface-curses-forms__ads.htm#ref_470_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_488_33" HREF="terminal_interface-curses-forms__ads.htm#ref_471_33">Pad</A></FONT> : Character := Space)
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Back</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_420_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_460_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_462_26">Color</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_420_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_460_26">Fld</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_460_14">Background</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_429_14" HREF="terminal_interface-curses-forms__ads.htm#ref_467_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_429_33" HREF="terminal_interface-curses-forms__ads.htm#ref_467_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_430_33" HREF="terminal_interface-curses-forms__ads.htm#ref_468_33">Pad</A></span> : Character := Space)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_490_31" HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_491_31" HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_432_16">Set_Field_Pad</A></span> (<span class="symbol"><A NAME="ref_432_31" HREF="terminal_interface-curses-forms__adb.htm#ref_432_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_433_31" HREF="terminal_interface-curses-forms__adb.htm#ref_432_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Pad, "set_field_pad");
+
+- <FONT COLOR=red><A NAME="ref_494_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_470_33">Fld</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_471_33">Pad</A>)));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_494_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_494_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_470_14">Set_Pad_Character</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_504_14" HREF="terminal_interface-curses-forms__ads.htm#ref_476_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_504_29" HREF="terminal_interface-curses-forms__ads.htm#ref_476_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_505_29" HREF="terminal_interface-curses-forms__ads.htm#ref_477_29">Pad</A></FONT> : <b>out</b> Character)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_432_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_467_33">Fld</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_468_33">Pad</A>))));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_467_14">Set_Pad_Character</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__ads.htm#ref_473_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_443_29" HREF="terminal_interface-curses-forms__ads.htm#ref_473_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_444_29" HREF="terminal_interface-curses-forms__ads.htm#ref_474_29">Pad</A></span> : <b>out</b> Character)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_446_16">Field_Pad</A></span> (<span class="symbol"><A NAME="ref_446_27" HREF="terminal_interface-curses-forms__adb.htm#ref_446_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Field_Pad, "field_pad");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_477_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_476_29">Fld</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_476_14">Pad_Character</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_field_info.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_519_14" HREF="terminal_interface-curses-forms__ads.htm#ref_486_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_519_20" HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_520_20" HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_521_20" HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_522_20" HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_523_20" HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">First_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_524_20" HREF="terminal_interface-curses-forms__ads.htm#ref_491_20">Off_Screen</A></FONT> : <b>out</b> Natural;
+- <FONT COLOR=red><A NAME="ref_525_20" HREF="terminal_interface-curses-forms__ads.htm#ref_492_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_527_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_528_16">Fld_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_528_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_529_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_529_29" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">C</A></FONT>, <FONT COLOR=red><A NAME="ref_529_32" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_529_36" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_529_40" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_529_44" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Ab</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_527_12">C_Int_Access</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_474_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_446_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_473_29">Fld</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_473_14">Pad_Character</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_field_info.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_458_14" HREF="terminal_interface-curses-forms__ads.htm#ref_483_14">Info</A></span> (<span class="symbol"><A NAME="ref_458_20" HREF="terminal_interface-curses-forms__ads.htm#ref_483_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_459_20" HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_460_20" HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_461_20" HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">First_Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_462_20" HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_463_20" HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Off_Screen</A></span> : <b>out</b> Natural;
++ <span class="symbol"><A NAME="ref_464_20" HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">Additional_Buffers</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>)
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_466_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_467_16">Fld_Info</A></span> (<span class="symbol"><A NAME="ref_467_26" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_468_26" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">L</A></span>, <span class="symbol"><A NAME="ref_468_29" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">C</A></span>, <span class="symbol"><A NAME="ref_468_32" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">Fr</A></span>, <span class="symbol"><A NAME="ref_468_36" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">Fc</A></span>, <span class="symbol"><A NAME="ref_468_40" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">Os</A></span>, <span class="symbol"><A NAME="ref_468_44" HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">Ab</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_466_12">C_Int_Access</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Fld_Info, "field_info");
+
+- <FONT COLOR=red><A NAME="ref_533_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_533_10">C</A></FONT>, <FONT COLOR=red><A NAME="ref_533_13">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_533_17">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_533_21">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_533_25">Ab</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_534_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">Fld</A>,
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>'<b>Access</b>);
++ <span class="symbol"><A NAME="ref_472_7">L</A></span>, <span class="symbol"><A NAME="ref_472_10">C</A></span>, <span class="symbol"><A NAME="ref_472_13">Fr</A></span>, <span class="symbol"><A NAME="ref_472_17">Fc</A></span>, <span class="symbol"><A NAME="ref_472_21">Os</A></span>, <span class="symbol"><A NAME="ref_472_25">Ab</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_534_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_534_7">Res</A>);
+- <b>else</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_490_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_491_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_492_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_486_14">Info</A>;
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__ads.htm#ref_497_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_553_28" HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_554_28" HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_555_28" HREF="terminal_interface-curses-forms__ads.htm#ref_499_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_556_28" HREF="terminal_interface-curses-forms__ads.htm#ref_500_28">Max</A></FONT> : <b>out</b> Natural)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_467_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_483_20">Fld</A>,
++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_472_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_472_10">C</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_472_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_472_17">Fc</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_472_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_472_25">Ab</A>'<b>Access</b>));
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_472_7">L</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_472_10">C</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_472_13">Fr</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_472_17">Fc</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_472_21">Os</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_489_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_472_25">Ab</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_483_14">Info</A>;
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++<span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_488_14" HREF="terminal_interface-curses-forms__ads.htm#ref_494_14">Dynamic_Info</A></span> (<span class="symbol"><A NAME="ref_488_28" HREF="terminal_interface-curses-forms__ads.htm#ref_494_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_489_28" HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_490_28" HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_491_28" HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Max</A></span> : <b>out</b> Natural)
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_558_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_559_16">Dyn_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_559_26" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_559_39" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_559_42" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">C</A></FONT>, <FONT COLOR=red><A NAME="ref_559_45" HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">M</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_558_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_493_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_494_16">Dyn_Info</A></span> (<span class="symbol"><A NAME="ref_494_26" HREF="terminal_interface-curses-forms__adb.htm#ref_494_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>; <span class="symbol"><A NAME="ref_494_39" HREF="terminal_interface-curses-forms__adb.htm#ref_494_16">L</A></span>, <span class="symbol"><A NAME="ref_494_42" HREF="terminal_interface-curses-forms__adb.htm#ref_494_16">C</A></span>, <span class="symbol"><A NAME="ref_494_45" HREF="terminal_interface-curses-forms__adb.htm#ref_494_16">M</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_493_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Dyn_Info, "dynamic_field_info");
+
+- <FONT COLOR=red><A NAME="ref_562_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_562_10">C</A></FONT>, <FONT COLOR=red><A NAME="ref_562_13">M</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_563_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Fld</A>,
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>'<b>Access</b>);
++ <span class="symbol"><A NAME="ref_497_7">L</A></span>, <span class="symbol"><A NAME="ref_497_10">C</A></span>, <span class="symbol"><A NAME="ref_497_13">M</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_563_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_563_7">Res</A>);
+- <b>else</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_498_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_499_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_500_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_497_14">Dynamic_Info</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_win.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_582_14" HREF="terminal_interface-curses-forms__ads.htm#ref_509_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_582_26" HREF="terminal_interface-curses-forms__ads.htm#ref_509_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_583_26" HREF="terminal_interface-curses-forms__ads.htm#ref_510_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_494_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_494_28">Fld</A>,
++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_497_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_497_10">C</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_497_13">M</A>'<b>Access</b>));
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_497_7">L</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_497_10">C</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_497_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_497_13">M</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_494_14">Dynamic_Info</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_win.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_513_14" HREF="terminal_interface-curses-forms__ads.htm#ref_506_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_513_26" HREF="terminal_interface-curses-forms__ads.htm#ref_506_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_514_26" HREF="terminal_interface-curses-forms__ads.htm#ref_507_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_585_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_585_30" HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_586_30" HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_516_16">Set_Form_Win</A></span> (<span class="symbol"><A NAME="ref_516_30" HREF="terminal_interface-curses-forms__adb.htm#ref_516_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_516_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Form_Win, "set_form_win");
+
+- <FONT COLOR=red><A NAME="ref_589_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_509_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_510_26">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_589_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_589_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_509_14">Set_Window</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses-forms__ads.htm#ref_515_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_598_25" HREF="terminal_interface-curses-forms__ads.htm#ref_515_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_516_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_506_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_507_26">Win</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_506_14">Set_Window</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_526_13" HREF="terminal_interface-curses-forms__ads.htm#ref_512_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_526_25" HREF="terminal_interface-curses-forms__ads.htm#ref_512_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_600_26" HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_528_16">Form_Win</A></span> (<span class="symbol"><A NAME="ref_528_26" HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Form_Win, "form_win");
+
+- <FONT COLOR=red><A NAME="ref_603_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_515_25">Frm</A>);
++ <span class="symbol"><A NAME="ref_531_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_512_25">Frm</A>);
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_603_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_515_13">Get_Window</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_610_14" HREF="terminal_interface-curses-forms__ads.htm#ref_520_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses-forms__ads.htm#ref_520_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_611_30" HREF="terminal_interface-curses-forms__ads.htm#ref_521_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_531_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_512_13">Get_Window</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_538_14" HREF="terminal_interface-curses-forms__ads.htm#ref_517_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_538_30" HREF="terminal_interface-curses-forms__ads.htm#ref_517_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_539_30" HREF="terminal_interface-curses-forms__ads.htm#ref_518_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_613_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_613_30" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_614_30" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_541_16">Set_Form_Sub</A></span> (<span class="symbol"><A NAME="ref_541_30" HREF="terminal_interface-curses-forms__adb.htm#ref_541_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_542_30" HREF="terminal_interface-curses-forms__adb.htm#ref_541_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Form_Sub, "set_form_sub");
+
+- <FONT COLOR=red><A NAME="ref_617_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_520_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_521_30">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_617_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_617_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_520_14">Set_Sub_Window</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_626_13" HREF="terminal_interface-curses-forms__ads.htm#ref_526_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_626_29" HREF="terminal_interface-curses-forms__ads.htm#ref_526_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_541_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_517_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_518_30">Win</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_517_14">Set_Sub_Window</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_551_13" HREF="terminal_interface-curses-forms__ads.htm#ref_523_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_551_29" HREF="terminal_interface-curses-forms__ads.htm#ref_523_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_628_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_628_26" HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_553_16">Form_Sub</A></span> (<span class="symbol"><A NAME="ref_553_26" HREF="terminal_interface-curses-forms__adb.htm#ref_553_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Form_Sub, "form_sub");
+
+- <FONT COLOR=red><A NAME="ref_631_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_526_29">Frm</A>);
++ <span class="symbol"><A NAME="ref_556_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_553_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_523_29">Frm</A>);
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_631_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_526_13">Get_Sub_Window</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__ads.htm#ref_531_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_638_21" HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_639_21" HREF="terminal_interface-curses-forms__ads.htm#ref_532_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_640_21" HREF="terminal_interface-curses-forms__ads.htm#ref_533_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_556_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_523_13">Get_Sub_Window</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_563_14" HREF="terminal_interface-curses-forms__ads.htm#ref_528_14">Scale</A></span> (<span class="symbol"><A NAME="ref_563_21" HREF="terminal_interface-curses-forms__ads.htm#ref_528_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_564_21" HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_565_21" HREF="terminal_interface-curses-forms__ads.htm#ref_530_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>)
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_642_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_643_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_643_25" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_643_37" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_643_41" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Xp</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_642_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_567_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_568_16">M_Scale</A></span> (<span class="symbol"><A NAME="ref_568_25" HREF="terminal_interface-curses-forms__adb.htm#ref_568_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>; <span class="symbol"><A NAME="ref_568_37" HREF="terminal_interface-curses-forms__adb.htm#ref_568_16">Yp</A></span>, <span class="symbol"><A NAME="ref_568_41" HREF="terminal_interface-curses-forms__adb.htm#ref_568_16">Xp</A></span> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_567_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, M_Scale, "scale_form");
+
+- <FONT COLOR=red><A NAME="ref_646_7">X</A></FONT>, <FONT COLOR=red><A NAME="ref_646_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_647_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_531_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>'<b>Access</b>);
++ <span class="symbol"><A NAME="ref_571_7">X</A></span>, <span class="symbol"><A NAME="ref_571_10">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_647_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_647_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_532_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>);
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_533_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_531_14">Scale</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page menu_hook.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__ads.htm#ref_545_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_662_35" HREF="terminal_interface-curses-forms__ads.htm#ref_545_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_663_35" HREF="terminal_interface-curses-forms__ads.htm#ref_546_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_568_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_528_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_571_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_571_7">X</A>'<b>Access</b>));
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_571_10">Y</A>);
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_530_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_571_7">X</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_528_14">Scale</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page menu_hook.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_584_14" HREF="terminal_interface-curses-forms__ads.htm#ref_542_14">Set_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_584_35" HREF="terminal_interface-curses-forms__ads.htm#ref_542_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_585_35" HREF="terminal_interface-curses-forms__ads.htm#ref_543_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_665_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_665_32" HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_666_32" HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_587_16">Set_Field_Init</A></span> (<span class="symbol"><A NAME="ref_587_32" HREF="terminal_interface-curses-forms__adb.htm#ref_587_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_588_32" HREF="terminal_interface-curses-forms__adb.htm#ref_587_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Init, "set_field_init");
+
+- <FONT COLOR=red><A NAME="ref_669_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_545_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_546_35">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_669_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_669_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_545_14">Set_Field_Init_Hook</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_678_14" HREF="terminal_interface-curses-forms__ads.htm#ref_551_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_678_35" HREF="terminal_interface-curses-forms__ads.htm#ref_551_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_679_35" HREF="terminal_interface-curses-forms__ads.htm#ref_552_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_587_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_542_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_543_35">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_542_14">Set_Field_Init_Hook</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_597_14" HREF="terminal_interface-curses-forms__ads.htm#ref_548_14">Set_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_597_35" HREF="terminal_interface-curses-forms__ads.htm#ref_548_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_598_35" HREF="terminal_interface-curses-forms__ads.htm#ref_549_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_681_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_681_32" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_682_32" HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_600_16">Set_Field_Term</A></span> (<span class="symbol"><A NAME="ref_600_32" HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_601_32" HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Field_Term, "set_field_term");
+
+- <FONT COLOR=red><A NAME="ref_685_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_551_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_552_35">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_685_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_685_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_551_14">Set_Field_Term_Hook</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_694_14" HREF="terminal_interface-curses-forms__ads.htm#ref_557_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_694_34" HREF="terminal_interface-curses-forms__ads.htm#ref_557_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_695_34" HREF="terminal_interface-curses-forms__ads.htm#ref_558_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_548_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_549_35">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_548_14">Set_Field_Term_Hook</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_610_14" HREF="terminal_interface-curses-forms__ads.htm#ref_554_14">Set_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_610_34" HREF="terminal_interface-curses-forms__ads.htm#ref_554_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_611_34" HREF="terminal_interface-curses-forms__ads.htm#ref_555_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_697_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_697_31" HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_698_31" HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_613_16">Set_Form_Init</A></span> (<span class="symbol"><A NAME="ref_613_31" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_614_31" HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Form_Init, "set_form_init");
+
+- <FONT COLOR=red><A NAME="ref_701_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_557_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_558_34">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_701_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_701_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_557_14">Set_Form_Init_Hook</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_710_14" HREF="terminal_interface-curses-forms__ads.htm#ref_563_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_710_34" HREF="terminal_interface-curses-forms__ads.htm#ref_563_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_711_34" HREF="terminal_interface-curses-forms__ads.htm#ref_564_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_554_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_555_34">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_554_14">Set_Form_Init_Hook</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_623_14" HREF="terminal_interface-curses-forms__ads.htm#ref_560_14">Set_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_623_34" HREF="terminal_interface-curses-forms__ads.htm#ref_560_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_624_34" HREF="terminal_interface-curses-forms__ads.htm#ref_561_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_713_31" HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_714_31" HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_626_16">Set_Form_Term</A></span> (<span class="symbol"><A NAME="ref_626_31" HREF="terminal_interface-curses-forms__adb.htm#ref_626_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_627_31" HREF="terminal_interface-curses-forms__adb.htm#ref_626_16">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Form_Term, "set_form_term");
+
+- <FONT COLOR=red><A NAME="ref_717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_563_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_564_34">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_717_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_563_14">Set_Form_Term_Hook</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_fields.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_730_14" HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_730_24" HREF="terminal_interface-curses-forms__ads.htm#ref_593_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_731_24" HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_626_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_560_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_561_34">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_560_14">Set_Form_Term_Hook</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_fields.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_640_14" HREF="terminal_interface-curses-forms__ads.htm#ref_590_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_640_24" HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_641_24" HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_733_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_733_32" HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_734_32" HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_643_16">Set_Frm_Fields</A></span> (<span class="symbol"><A NAME="ref_643_32" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_644_32" HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Frm_Fields, "set_form_fields");
+
+- <FONT COLOR=red><A NAME="ref_737_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_593_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_594_24">Flds</A>'First)'Address);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_591_24">Flds</A>'First)'Address));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_752_13" HREF="terminal_interface-curses-forms__ads.htm#ref_605_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_752_21" HREF="terminal_interface-curses-forms__ads.htm#ref_605_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_753_21" HREF="terminal_interface-curses-forms__ads.htm#ref_606_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_590_14">Redefine</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_658_13" HREF="terminal_interface-curses-forms__ads.htm#ref_602_13">Fields</A></span> (<span class="symbol"><A NAME="ref_658_21" HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_659_21" HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>
+ <b>is</b>
+ <b>use</b> F_Array;
+
+- <b>function</b> C_Fields (<FONT COLOR=red><A NAME="ref_757_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Pointer;
++ <b>function</b> C_Fields (<span class="symbol"><A NAME="ref_663_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Pointer;
+ <b>pragma</b> Import (C, C_Fields, "form_fields");
+
+- P : Pointer := C_Fields (<A HREF="terminal_interface-curses-forms__ads.htm#ref_605_21">Frm</A>);
++ P : Pointer := C_Fields (<A HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Frm</A>);
+ <b>begin</b>
+- <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_606_21">Index</A> &gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_605_21">Frm</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Index</A> &gt; <A HREF="terminal_interface-curses-forms__ads.htm#ref_608_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Frm</A>) <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_606_21">Index</A>) - 1);
++ P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_603_21">Index</A>) - 1);
+ <b>return</b> P.<b>all</b>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_605_13">Fields</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_772_13" HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_772_26" HREF="terminal_interface-curses-forms__ads.htm#ref_611_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_602_13">Fields</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_678_13" HREF="terminal_interface-curses-forms__ads.htm#ref_608_13">Field_Count</A></span> (<span class="symbol"><A NAME="ref_678_26" HREF="terminal_interface-curses-forms__ads.htm#ref_608_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Natural
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_774_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_774_23" HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_680_16">Count</A></span> (<span class="symbol"><A NAME="ref_680_23" HREF="terminal_interface-curses-forms__adb.htm#ref_680_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Count, "field_count");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_611_26">Frm</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-forms__ads.htm#ref_616_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_782_20" HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_783_20" HREF="terminal_interface-curses-forms__ads.htm#ref_617_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_784_20" HREF="terminal_interface-curses-forms__ads.htm#ref_618_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++ <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_680_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_608_26">Frm</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_608_13">Field_Count</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_688_14" HREF="terminal_interface-curses-forms__ads.htm#ref_613_14">Move</A></span> (<span class="symbol"><A NAME="ref_688_20" HREF="terminal_interface-curses-forms__ads.htm#ref_613_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_689_20" HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_690_20" HREF="terminal_interface-curses-forms__ads.htm#ref_615_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_786_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_786_22" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_786_35" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">L</A></FONT>, <FONT COLOR=red><A NAME="ref_786_38" HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_692_16">Move</A></span> (<span class="symbol"><A NAME="ref_692_22" HREF="terminal_interface-curses-forms__adb.htm#ref_692_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>; <span class="symbol"><A NAME="ref_692_35" HREF="terminal_interface-curses-forms__adb.htm#ref_692_16">L</A></span>, <span class="symbol"><A NAME="ref_692_38" HREF="terminal_interface-curses-forms__adb.htm#ref_692_16">C</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Move, "move_field");
+
+- <FONT COLOR=red><A NAME="ref_789_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_616_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_617_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_618_20">Column</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_789_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_789_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_616_14">Move</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_new.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_802_13" HREF="terminal_interface-curses-forms__ads.htm#ref_627_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_802_21" HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_692_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_613_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_615_20">Column</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_613_14">Move</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_new.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_705_13" HREF="terminal_interface-curses-forms__ads.htm#ref_624_13">Create</A></span> (<span class="symbol"><A NAME="ref_705_21" HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="ref_804_25" HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_707_16">NewForm</A></span> (<span class="symbol"><A NAME="ref_707_25" HREF="terminal_interface-curses-forms__adb.htm#ref_707_16">Fields</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
+ <b>pragma</b> Import (C, NewForm, "new_form");
+
+- <FONT COLOR=red><A NAME="ref_807_7">M</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++ <span class="symbol"><A NAME="ref_710_7">M</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_627_21">Fields</A>'First)'Address);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <A HREF="terminal_interface-curses-forms__adb.htm#ref_710_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_707_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_624_21">Fields</A>'First)'Address);
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_710_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Form</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_710_7">M</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_627_13">Create</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_823_14" HREF="terminal_interface-curses-forms__ads.htm#ref_638_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_823_22" HREF="terminal_interface-curses-forms__ads.htm#ref_638_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>)
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_624_13">Create</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_726_14" HREF="terminal_interface-curses-forms__ads.htm#ref_635_14">Delete</A></span> (<span class="symbol"><A NAME="ref_726_22" HREF="terminal_interface-curses-forms__ads.htm#ref_635_22">Frm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_825_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_825_22" HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_728_16">Free</A></span> (<span class="symbol"><A NAME="ref_728_22" HREF="terminal_interface-curses-forms__adb.htm#ref_728_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Free, "free_form");
+
+- <FONT COLOR=red><A NAME="ref_828_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_638_22">Frm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_828_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_828_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_638_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_638_14">Delete</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_opts.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_842_14" HREF="terminal_interface-curses-forms__ads.htm#ref_648_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_842_27" HREF="terminal_interface-curses-forms__ads.htm#ref_648_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_843_27" HREF="terminal_interface-curses-forms__ads.htm#ref_649_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_728_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_635_22">Frm</A>));
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_635_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Form</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_635_14">Delete</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_opts.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_742_14" HREF="terminal_interface-curses-forms__ads.htm#ref_645_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_742_27" HREF="terminal_interface-curses-forms__ads.htm#ref_645_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_743_27" HREF="terminal_interface-curses-forms__ads.htm#ref_646_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_845_31" HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_846_31" HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_745_16">Set_Form_Opts</A></span> (<span class="symbol"><A NAME="ref_745_31" HREF="terminal_interface-curses-forms__adb.htm#ref_745_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_746_31" HREF="terminal_interface-curses-forms__adb.htm#ref_745_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Form_Opts, "set_form_opts");
+
+- <FONT COLOR=red><A NAME="ref_849_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FrmOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_649_27">Options</A>);
+- <FONT COLOR=red><A NAME="ref_850_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_648_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_849_7">Opt</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_648_14">Set_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses-forms__ads.htm#ref_654_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_860_30" HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_861_30" HREF="terminal_interface-curses-forms__ads.htm#ref_655_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_862_30" HREF="terminal_interface-curses-forms__ads.htm#ref_656_30">On</A></FONT> : Boolean := True)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_745_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_645_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_646_27">Options</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_645_14">Set_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_755_14" HREF="terminal_interface-curses-forms__ads.htm#ref_651_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_755_30" HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_756_30" HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_757_30" HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_864_30" HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_865_30" HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_759_16">Form_Opts_On</A></span> (<span class="symbol"><A NAME="ref_759_30" HREF="terminal_interface-curses-forms__adb.htm#ref_759_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_760_30" HREF="terminal_interface-curses-forms__adb.htm#ref_759_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Form_Opts_On, "form_opts_on");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_867_16">Form_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_867_31" HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_868_31" HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_762_16">Form_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_762_31" HREF="terminal_interface-curses-forms__adb.htm#ref_762_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_763_31" HREF="terminal_interface-curses-forms__adb.htm#ref_762_16">Opt</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Form_Opts_Off, "form_opts_off");
+
+- <FONT COLOR=red><A NAME="ref_871_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_872_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := FrmOS_2_CInt (<A HREF="terminal_interface-curses-forms__ads.htm#ref_655_30">Options</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_656_30">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_653_30">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_759_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Options</A>));
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_654_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>);
+- <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_762_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">Options</A>));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_654_14">Switch_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_886_14" HREF="terminal_interface-curses-forms__ads.htm#ref_662_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_886_27" HREF="terminal_interface-curses-forms__ads.htm#ref_662_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_887_27" HREF="terminal_interface-curses-forms__ads.htm#ref_663_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>)
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_651_14">Switch_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_776_14" HREF="terminal_interface-curses-forms__ads.htm#ref_659_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_776_27" HREF="terminal_interface-curses-forms__ads.htm#ref_659_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_777_27" HREF="terminal_interface-curses-forms__ads.htm#ref_660_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_889_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_889_27" HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_779_16">Form_Opts</A></span> (<span class="symbol"><A NAME="ref_779_27" HREF="terminal_interface-curses-forms__adb.htm#ref_779_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>;
+ <b>pragma</b> Import (C, Form_Opts, "form_opts");
+
+- <FONT COLOR=red><A NAME="ref_892_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_662_27">Frm</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_663_27">Options</A> := CInt_2_FrmOS (<A HREF="terminal_interface-curses-forms__adb.htm#ref_892_7">Res</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_662_14">Get_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_899_13" HREF="terminal_interface-curses-forms__ads.htm#ref_667_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_899_26" HREF="terminal_interface-curses-forms__ads.htm#ref_667_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_901_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+- <b>begin</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_662_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_667_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_667_13">Get_Options</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_post.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_913_14" HREF="terminal_interface-curses-forms__ads.htm#ref_676_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_913_20" HREF="terminal_interface-curses-forms__ads.htm#ref_676_20">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_914_20" HREF="terminal_interface-curses-forms__ads.htm#ref_677_20">Post</A></FONT> : Boolean := True)
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_660_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_779_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_659_27">Frm</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_659_14">Get_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_788_13" HREF="terminal_interface-curses-forms__ads.htm#ref_664_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_788_26" HREF="terminal_interface-curses-forms__ads.htm#ref_664_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>
++ <b>is</b>
++ <span class="symbol"><A NAME="ref_790_7">Fos</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>;
++ <b>begin</b>
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_659_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_664_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_790_7">Fos</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_790_7">Fos</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_664_13">Get_Options</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_post.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_802_14" HREF="terminal_interface-curses-forms__ads.htm#ref_673_14">Post</A></span> (<span class="symbol"><A NAME="ref_802_20" HREF="terminal_interface-curses-forms__ads.htm#ref_673_20">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_803_20" HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Post</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_916_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_916_24" HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_805_16">M_Post</A></span> (<span class="symbol"><A NAME="ref_805_24" HREF="terminal_interface-curses-forms__adb.htm#ref_805_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, M_Post, "post_form");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_918_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="ref_918_26" HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_807_16">M_Unpost</A></span> (<span class="symbol"><A NAME="ref_807_26" HREF="terminal_interface-curses-forms__adb.htm#ref_807_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, M_Unpost, "unpost_form");
+
+- <FONT COLOR=red><A NAME="ref_921_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_677_20">Post</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_676_20">Frm</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_674_20">Post</A> <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_805_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_673_20">Frm</A>));
+ <b>else</b>
+- <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_676_20">Frm</A>);
+- <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_807_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_673_20">Frm</A>));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_676_14">Post</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_cursor.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_939_14" HREF="terminal_interface-curses-forms__ads.htm#ref_687_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_939_31" HREF="terminal_interface-curses-forms__ads.htm#ref_687_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>)
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_673_14">Post</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_cursor.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_824_14" HREF="terminal_interface-curses-forms__ads.htm#ref_684_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_824_31" HREF="terminal_interface-curses-forms__ads.htm#ref_684_31">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_941_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_941_33" HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_826_16">Pos_Form_Cursor</A></span> (<span class="symbol"><A NAME="ref_826_33" HREF="terminal_interface-curses-forms__adb.htm#ref_826_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Pos_Form_Cursor, "pos_form_cursor");
+
+- <FONT COLOR=red><A NAME="ref_944_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_687_31">Frm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_944_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_944_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_687_14">Position_Cursor</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_data.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_957_13" HREF="terminal_interface-curses-forms__ads.htm#ref_696_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_957_25" HREF="terminal_interface-curses-forms__ads.htm#ref_696_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_826_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_684_31">Frm</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_684_14">Position_Cursor</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_data.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_839_13" HREF="terminal_interface-curses-forms__ads.htm#ref_693_13">Data_Ahead</A></span> (<span class="symbol"><A NAME="ref_839_25" HREF="terminal_interface-curses-forms__ads.htm#ref_693_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_959_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_959_23" HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_841_16">Ahead</A></span> (<span class="symbol"><A NAME="ref_841_23" HREF="terminal_interface-curses-forms__adb.htm#ref_841_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Ahead, "data_ahead");
+
+- <FONT COLOR=red><A NAME="ref_962_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_696_25">Frm</A>);
++ <span class="symbol"><A NAME="ref_844_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_841_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_693_25">Frm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_962_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_844_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_696_13">Data_Ahead</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_973_13" HREF="terminal_interface-curses-forms__ads.htm#ref_701_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_973_26" HREF="terminal_interface-curses-forms__ads.htm#ref_701_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_693_13">Data_Ahead</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_855_13" HREF="terminal_interface-curses-forms__ads.htm#ref_698_13">Data_Behind</A></span> (<span class="symbol"><A NAME="ref_855_26" HREF="terminal_interface-curses-forms__ads.htm#ref_698_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_975_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_975_24" HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_857_16">Behind</A></span> (<span class="symbol"><A NAME="ref_857_24" HREF="terminal_interface-curses-forms__adb.htm#ref_857_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Behind, "data_behind");
+
+- <FONT COLOR=red><A NAME="ref_978_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_701_26">Frm</A>);
++ <span class="symbol"><A NAME="ref_860_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_857_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_698_26">Frm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_978_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_860_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_701_13">Data_Behind</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_driver.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_993_13" HREF="terminal_interface-curses-forms__ads.htm#ref_715_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_993_21" HREF="terminal_interface-curses-forms__ads.htm#ref_715_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_994_21" HREF="terminal_interface-curses-forms__ads.htm#ref_716_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_9">Driver_Result</A>
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_698_13">Data_Behind</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_driver.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_875_13" HREF="terminal_interface-curses-forms__ads.htm#ref_712_13">Driver</A></span> (<span class="symbol"><A NAME="ref_875_21" HREF="terminal_interface-curses-forms__ads.htm#ref_712_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_876_21" HREF="terminal_interface-curses-forms__ads.htm#ref_713_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_706_9">Driver_Result</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_996_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_996_28" HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_996_40" HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_878_16">Frm_Driver</A></span> (<span class="symbol"><A NAME="ref_878_28" HREF="terminal_interface-curses-forms__adb.htm#ref_878_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>; <span class="symbol"><A NAME="ref_878_40" HREF="terminal_interface-curses-forms__adb.htm#ref_878_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Frm_Driver, "form_driver");
+
+- <FONT COLOR=red><A NAME="ref_999_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_715_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_716_21">Key</A>));
++ <span class="symbol"><A NAME="ref_881_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_878_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_712_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_713_21">Key</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_711_27">Unknown_Request</A>;
+- <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_712_27">Invalid_Field</A>;
+- <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_710_27">Request_Denied</A>;
+- <b>else</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Form_Ok</A>;
+- <b>end</b> <b>if</b>;
+- <b>else</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Form_Ok</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_715_13">Driver</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_page.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1023_14" HREF="terminal_interface-curses-forms__ads.htm#ref_727_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1023_27" HREF="terminal_interface-curses-forms__ads.htm#ref_727_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_1024_27" HREF="terminal_interface-curses-forms__ads.htm#ref_728_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>)
++ <b>case</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_881_7">R</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Unknown_Command</A> =&gt;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_708_27">Unknown_Request</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_73_7">E_Invalid_Field</A> =&gt;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_27">Invalid_Field</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Request_Denied</A> =&gt;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_27">Request_Denied</A>;
++ <b>when</b> <b>others</b> =&gt;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_881_7">R</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_706_27">Form_Ok</A>;
++ <b>end</b> <b>case</b>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_712_13">Driver</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_page.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_902_14" HREF="terminal_interface-curses-forms__ads.htm#ref_724_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_902_27" HREF="terminal_interface-curses-forms__ads.htm#ref_724_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_903_27" HREF="terminal_interface-curses-forms__ads.htm#ref_725_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1026_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1026_33" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_1026_45" HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_905_16">Set_Current_Fld</A></span> (<span class="symbol"><A NAME="ref_905_33" HREF="terminal_interface-curses-forms__adb.htm#ref_905_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>; <span class="symbol"><A NAME="ref_905_45" HREF="terminal_interface-curses-forms__adb.htm#ref_905_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Current_Fld, "set_current_field");
+
+- <FONT COLOR=red><A NAME="ref_1029_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_727_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_728_27">Fld</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1029_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1029_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_727_14">Set_Current</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1038_13" HREF="terminal_interface-curses-forms__ads.htm#ref_733_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1038_22" HREF="terminal_interface-curses-forms__ads.htm#ref_733_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_905_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_724_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_725_27">Fld</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_14">Set_Current</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_914_13" HREF="terminal_interface-curses-forms__ads.htm#ref_730_13">Current</A></span> (<span class="symbol"><A NAME="ref_914_22" HREF="terminal_interface-curses-forms__ads.htm#ref_730_22">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1040_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1040_29" HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_916_16">Current_Fld</A></span> (<span class="symbol"><A NAME="ref_916_29" HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
+ <b>pragma</b> Import (C, Current_Fld, "current_field");
+
+- <FONT COLOR=red><A NAME="ref_1043_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_733_22">Frm</A>);
++ <span class="symbol"><A NAME="ref_919_7">Fld</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_730_22">Frm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1043_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_919_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1043_7">Fld</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_733_13">Current</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses-forms__ads.htm#ref_738_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1053_24" HREF="terminal_interface-curses-forms__ads.htm#ref_738_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_1054_24" HREF="terminal_interface-curses-forms__ads.htm#ref_739_24">Page</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>'First)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_919_7">Fld</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_730_13">Current</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_929_14" HREF="terminal_interface-curses-forms__ads.htm#ref_735_14">Set_Page</A></span> (<span class="symbol"><A NAME="ref_929_24" HREF="terminal_interface-curses-forms__ads.htm#ref_735_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_930_24" HREF="terminal_interface-curses-forms__ads.htm#ref_736_24">Page</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1056_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1056_30" HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>; <FONT COLOR=red><A NAME="ref_1056_42" HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Pg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_932_16">Set_Frm_Page</A></span> (<span class="symbol"><A NAME="ref_932_30" HREF="terminal_interface-curses-forms__adb.htm#ref_932_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>; <span class="symbol"><A NAME="ref_932_42" HREF="terminal_interface-curses-forms__adb.htm#ref_932_16">Pg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Frm_Page, "set_form_page");
+
+- <FONT COLOR=red><A NAME="ref_1059_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_738_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_739_24">Page</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1059_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1059_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_738_14">Set_Page</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1068_13" HREF="terminal_interface-curses-forms__ads.htm#ref_744_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1068_19" HREF="terminal_interface-curses-forms__ads.htm#ref_744_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_932_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_735_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_736_24">Page</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_735_14">Set_Page</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_941_13" HREF="terminal_interface-curses-forms__ads.htm#ref_741_13">Page</A></span> (<span class="symbol"><A NAME="ref_941_19" HREF="terminal_interface-curses-forms__ads.htm#ref_741_19">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1070_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1070_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_943_16">Get_Page</A></span> (<span class="symbol"><A NAME="ref_943_26" HREF="terminal_interface-curses-forms__adb.htm#ref_943_16">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Get_Page, "form_page");
+
+- <FONT COLOR=red><A NAME="ref_1073_7">P</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_744_19">Frm</A>);
++ <span class="symbol"><A NAME="ref_946_7">P</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_943_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_741_19">Frm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A> &lt; 0 <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_946_7">P</A> &lt; 0 <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>else</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_946_7">P</A>);
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_744_13">Page</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_741_13">Page</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1082_13" HREF="terminal_interface-curses-forms__ads.htm#ref_749_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_1082_24" HREF="terminal_interface-curses-forms__ads.htm#ref_749_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive
++ <b>function</b> <span class="symbol"><A NAME="ref_955_13" HREF="terminal_interface-curses-forms__ads.htm#ref_746_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_955_24" HREF="terminal_interface-curses-forms__ads.htm#ref_746_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> Positive
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1084_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="ref_1084_32" HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_957_16">Get_Fieldindex</A></span> (<span class="symbol"><A NAME="ref_957_32" HREF="terminal_interface-curses-forms__adb.htm#ref_957_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Get_Fieldindex, "field_index");
+
+- <FONT COLOR=red><A NAME="ref_1087_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_749_24">Fld</A>);
++ <span class="symbol"><A NAME="ref_960_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_957_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_746_24">Fld</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1087_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_290_4">Form_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_960_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_287_4">Form_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1087_7">Res</A>) + Positive'First);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_749_13">Get_Index</A>;
++ <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_960_7">Res</A>) + Positive'First);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_746_13">Get_Index</A>;
+
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | man page form_new_page.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1102_14" HREF="terminal_interface-curses-forms__ads.htm#ref_761_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1102_28" HREF="terminal_interface-curses-forms__ads.htm#ref_761_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_1103_28" HREF="terminal_interface-curses-forms__ads.htm#ref_762_28">New_Page</A></FONT> : Boolean := True)
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | man page form_new_page.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_975_14" HREF="terminal_interface-curses-forms__ads.htm#ref_758_14">Set_New_Page</A></span> (<span class="symbol"><A NAME="ref_975_28" HREF="terminal_interface-curses-forms__ads.htm#ref_758_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_976_28" HREF="terminal_interface-curses-forms__ads.htm#ref_759_28">New_Page</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1105_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1105_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>; <FONT COLOR=red><A NAME="ref_1105_39" HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Flg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_978_16">Set_Page</A></span> (<span class="symbol"><A NAME="ref_978_26" HREF="terminal_interface-curses-forms__adb.htm#ref_978_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>; <span class="symbol"><A NAME="ref_978_39" HREF="terminal_interface-curses-forms__adb.htm#ref_978_16">Flg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Page, "set_new_page");
+
+- <FONT COLOR=red><A NAME="ref_1108_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_761_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_762_28">New_Page</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1108_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1108_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_761_14">Set_New_Page</A>;
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1117_13" HREF="terminal_interface-curses-forms__ads.htm#ref_767_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_26" HREF="terminal_interface-curses-forms__ads.htm#ref_767_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_978_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_758_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_759_28">New_Page</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_758_14">Set_New_Page</A>;
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_987_13" HREF="terminal_interface-curses-forms__ads.htm#ref_764_13">Is_New_Page</A></span> (<span class="symbol"><A NAME="ref_987_26" HREF="terminal_interface-curses-forms__ads.htm#ref_764_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1119_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="ref_1119_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_989_16">Is_New</A></span> (<span class="symbol"><A NAME="ref_989_24" HREF="terminal_interface-curses-forms__adb.htm#ref_989_16">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Is_New, "new_page");
+
+- <FONT COLOR=red><A NAME="ref_1122_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_767_26">Fld</A>);
++ <span class="symbol"><A NAME="ref_992_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_989_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_764_26">Fld</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1122_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_992_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_767_13">Is_New_Page</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_764_13">Is_New_Page</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_140_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_1131_20" HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>;
+- <FONT COLOR=red><A NAME="ref_1132_20" HREF="terminal_interface-curses-forms__ads.htm#ref_141_20">Free_Fields</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1001_14" HREF="terminal_interface-curses-forms__ads.htm#ref_137_14">Free</A></span> (<span class="symbol"><A NAME="ref_1001_20" HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>;
++ <span class="symbol"><A NAME="ref_1002_20" HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">Free_Fields</A></span> : Boolean := False)
+ <b>is</b>
+ <b>procedure</b> Release <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+- (Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>);
++ (Field_Array, <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_20">Free_Fields</A> <b>then</b>
+- <b>for</b> <FONT COLOR=red><A NAME="ref_1138_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>'Last - 1) <b>loop</b>
+- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> <b>then</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_319_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>));
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_20">Free_Fields</A> <b>then</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_1008_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A>'Last - 1) <b>loop</b>
++ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1008_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> <b>then</b>
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_316_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A>.<b>all</b> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1008_14">I</A>));
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>loop</b>;
+ <b>end</b> <b>if</b>;
+- Release (<A HREF="terminal_interface-curses-forms__ads.htm#ref_140_20">FA</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_140_14">Free</A>;
++ Release (<A HREF="terminal_interface-curses-forms__ads.htm#ref_137_20">FA</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_137_14">Free</A>;
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1149_13" HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_1019_13" HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_420_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_417_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1155_13" HREF="terminal_interface-curses-forms__ads.htm#ref_129_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_1025_13" HREF="terminal_interface-curses-forms__ads.htm#ref_126_13">Default_Form_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_667_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_129_13">Default_Form_Options</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_664_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Form</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_126_13">Default_Form_Options</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-forms__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-forms__ads.htm 2011-03-19 23:18:40.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-forms__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,790 +1,799 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-forms.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-forms.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Form --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.30 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:31:35 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- form binding.</EM></FONT>
+-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
+-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Form --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.33 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:57 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System;
+ <b>with</b> Ada.Characters.Latin_1;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-forms__adb.htm#ref_51_40">Forms</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>);
+- <b>pragma</b> Linker_Options ("-lform");
+- <b>pragma</b> Linker_Options ("-lncurses");
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-forms__adb.htm#ref_50_40">Forms</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>);
++ <b>pragma</b> Linker_Options ("-lform" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
+
+ Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Field</A></FONT> <b>is</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Form</A></FONT> <b>is</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_51_9">Field</A></span> <b>is</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_52_9">Form</A></span> <b>is</b> <b>private</b>;
+
+- <FONT COLOR=red><A NAME="ref_59_4">Null_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_60_4">Null_Form</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
++ <span class="symbol"><A NAME="ref_54_4">Null_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_55_4">Null_Form</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Field_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_62_33">None</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_63_33">Left</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_64_33">Center</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_65_33">Right</A></FONT>);
++ <b>type</b> <span class="symbol"><A NAME="ref_57_9">Field_Justification</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_57_33">None</A></span>,
++ <span class="symbol"><A NAME="ref_58_33">Left</A></span>,
++ <span class="symbol"><A NAME="ref_59_33">Center</A></span>,
++ <span class="symbol"><A NAME="ref_60_33">Right</A></span>);
+
+- <b>pragma</b> Warnings (Off);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Field_Option_Set</A></FONT> <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_62_9">Field_Option_Set</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_70_10">Visible</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_71_10">Active</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_72_10">Public</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_73_10">Edit</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_74_10">Wrap</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_75_10">Blank</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_76_10">Auto_Skip</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_77_10">Null_Ok</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_78_10">Pass_Ok</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_79_10">Static</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_80_10">Unused</A></FONT> : Boolean;
++ <span class="symbol"><A NAME="ref_64_10">Visible</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_65_10">Active</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_66_10">Public</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_67_10">Edit</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_68_10">Wrap</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_69_10">Blank</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_70_10">Auto_Skip</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_71_10">Null_Ok</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_72_10">Pass_Ok</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_73_10">Static</A></span> : Boolean;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
++ <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_70_10">Visible</A> <b>at</b> 0 <b>range</b> 0 .. 0;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_71_10">Active</A> <b>at</b> 0 <b>range</b> 1 .. 1;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_72_10">Public</A> <b>at</b> 0 <b>range</b> 2 .. 2;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_73_10">Edit</A> <b>at</b> 0 <b>range</b> 3 .. 3;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_74_10">Wrap</A> <b>at</b> 0 <b>range</b> 4 .. 4;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_75_10">Blank</A> <b>at</b> 0 <b>range</b> 5 .. 5;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_76_10">Auto_Skip</A> <b>at</b> 0 <b>range</b> 6 .. 6;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_77_10">Null_Ok</A> <b>at</b> 0 <b>range</b> 7 .. 7;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_78_10">Pass_Ok</A> <b>at</b> 0 <b>range</b> 8 .. 8;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_79_10">Static</A> <b>at</b> 0 <b>range</b> 9 .. 9;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_80_10">Unused</A> <b>at</b> 0 <b>range</b> 10 .. 31;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_64_10">Visible</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_279_4">O_VISIBLE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_280_4">O_VISIBLE_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_65_10">Active</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_281_4">O_ACTIVE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_282_4">O_ACTIVE_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_66_10">Public</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_283_4">O_PUBLIC_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_284_4">O_PUBLIC_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_10">Edit</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_285_4">O_EDIT_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_286_4">O_EDIT_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_10">Wrap</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_287_4">O_WRAP_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_288_4">O_WRAP_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_69_10">Blank</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_289_4">O_BLANK_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_290_4">O_BLANK_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_70_10">Auto_Skip</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_291_4">O_AUTOSKIP_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_292_4">O_AUTOSKIP_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_71_10">Null_Ok</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_293_4">O_NULLOK_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_294_4">O_NULLOK_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_72_10">Pass_Ok</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_295_4">O_PASSOK_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_296_4">O_PASSOK_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_73_10">Static</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_297_4">O_STATIC_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_298_4">O_STATIC_Last</A>;
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>'Size <b>use</b> 32;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.Dnl</EM></FONT>
+-
++ <b>pragma</b> Warnings (Off);
++ <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_299_4">Field_Options_Size</A>;
+ <b>pragma</b> Warnings (On);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_104_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1149_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+- <FONT COLOR=green><EM>-- The initial defaults for the field options.</EM></FONT>
++ <b>function</b> <span class="symbol"><A NAME="ref_104_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1019_13">Default_Field_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>;
++ <span class="comment"><EM>-- The initial defaults for the field options.</EM></span>
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_104_13">Default_Field_Options</A>);
+
+- <b>pragma</b> Warnings (Off);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_109_9">Form_Option_Set</A></FONT> <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_108_9">Form_Option_Set</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_111_10">NL_Overload</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_112_10">BS_Overload</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_113_10">Unused</A></FONT> : Boolean;
++ <span class="symbol"><A NAME="ref_110_10">NL_Overload</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_111_10">BS_Overload</A></span> : Boolean;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
++ <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_111_10">NL_Overload</A> <b>at</b> 0 <b>range</b> 0 .. 0;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_112_10">BS_Overload</A> <b>at</b> 0 <b>range</b> 1 .. 1;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_113_10">Unused</A> <b>at</b> 0 <b>range</b> 2 .. 31;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_110_10">NL_Overload</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_303_4">O_NL_OVERLOAD_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_304_4">O_NL_OVERLOAD_Last</A>;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_111_10">BS_Overload</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_305_4">O_BS_OVERLOAD_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_306_4">O_BS_OVERLOAD_Last</A>;
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>'Size <b>use</b> 32;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.Dnl</EM></FONT>
+-
++ <b>pragma</b> Warnings (Off);
++ <b>for</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_299_4">Field_Options_Size</A>;
+ <b>pragma</b> Warnings (On);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_129_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1155_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+- <FONT COLOR=green><EM>-- The initial defaults for the form options.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_129_13">Default_Form_Options</A>);
++ <b>function</b> <span class="symbol"><A NAME="ref_126_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1025_13">Default_Form_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>;
++ <span class="comment"><EM>-- The initial defaults for the form options.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_126_13">Default_Form_Options</A>);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_133_9">Buffer_Number</A></FONT> <b>is</b> <b>new</b> Natural;
++ <b>type</b> <span class="symbol"><A NAME="ref_130_9">Buffer_Number</A></span> <b>is</b> <b>new</b> Natural;
+
+- <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
++ <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
+ <b>pragma</b> Convention (C, Field_Array);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_138_9">Field_Array_Access</A></FONT> <b>is</b> <b>access</b> Field_Array;
++ <b>type</b> <span class="symbol"><A NAME="ref_135_9">Field_Array_Access</A></span> <b>is</b> <b>access</b> Field_Array;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_140_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_140_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1131_20">FA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>;
+- <FONT COLOR=red><A NAME="ref_141_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">Free_Fields</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- Release the memory for an allocated field array</EM></FONT>
+- <FONT COLOR=green><EM>-- If Free_Fields is True, call Delete() for all the fields in</EM></FONT>
+- <FONT COLOR=green><EM>-- the array.</EM></FONT>
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_146_12">Form_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57);
+-
+- <FONT COLOR=green><EM>-- The prefix F_ stands for "Form Request"</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_149_4">F_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+- <FONT COLOR=red><A NAME="ref_150_4">F_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+- <FONT COLOR=red><A NAME="ref_151_4">F_First_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+- <FONT COLOR=red><A NAME="ref_152_4">F_Last_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
+-
+- <FONT COLOR=red><A NAME="ref_154_4">F_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+- <FONT COLOR=red><A NAME="ref_155_4">F_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+- <FONT COLOR=red><A NAME="ref_156_4">F_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+- <FONT COLOR=red><A NAME="ref_157_4">F_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+- <FONT COLOR=red><A NAME="ref_158_4">F_Sorted_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+- <FONT COLOR=red><A NAME="ref_159_4">F_Sorted_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+- <FONT COLOR=red><A NAME="ref_160_4">F_Sorted_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+- <FONT COLOR=red><A NAME="ref_161_4">F_Sorted_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+- <FONT COLOR=red><A NAME="ref_162_4">F_Left_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+- <FONT COLOR=red><A NAME="ref_163_4">F_Right_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+- <FONT COLOR=red><A NAME="ref_164_4">F_Up_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+- <FONT COLOR=red><A NAME="ref_165_4">F_Down_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
+-
+- <FONT COLOR=red><A NAME="ref_167_4">F_Next_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
+- <FONT COLOR=red><A NAME="ref_168_4">F_Previous_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18;
+- <FONT COLOR=red><A NAME="ref_169_4">F_Next_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19;
+- <FONT COLOR=red><A NAME="ref_170_4">F_Previous_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20;
+- <FONT COLOR=red><A NAME="ref_171_4">F_Next_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21;
+- <FONT COLOR=red><A NAME="ref_172_4">F_Previous_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22;
+- <FONT COLOR=red><A NAME="ref_173_4">F_Begin_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23;
+- <FONT COLOR=red><A NAME="ref_174_4">F_End_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24;
+- <FONT COLOR=red><A NAME="ref_175_4">F_Begin_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25;
+- <FONT COLOR=red><A NAME="ref_176_4">F_End_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26;
+- <FONT COLOR=red><A NAME="ref_177_4">F_Left_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27;
+- <FONT COLOR=red><A NAME="ref_178_4">F_Right_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28;
+- <FONT COLOR=red><A NAME="ref_179_4">F_Up_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
+- <FONT COLOR=red><A NAME="ref_180_4">F_Down_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 30;
+-
+- <FONT COLOR=red><A NAME="ref_182_4">F_New_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31;
+- <FONT COLOR=red><A NAME="ref_183_4">F_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32;
+- <FONT COLOR=red><A NAME="ref_184_4">F_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33;
+- <FONT COLOR=red><A NAME="ref_185_4">F_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34;
+- <FONT COLOR=red><A NAME="ref_186_4">F_Delete_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35;
+- <FONT COLOR=red><A NAME="ref_187_4">F_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36;
+- <FONT COLOR=red><A NAME="ref_188_4">F_Delete_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37;
+- <FONT COLOR=red><A NAME="ref_189_4">F_Clear_EOL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38;
+- <FONT COLOR=red><A NAME="ref_190_4">F_Clear_EOF</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39;
+- <FONT COLOR=red><A NAME="ref_191_4">F_Clear_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40;
+- <FONT COLOR=red><A NAME="ref_192_4">F_Overlay_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
+- <FONT COLOR=red><A NAME="ref_193_4">F_Insert_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 42;
+-
+- <FONT COLOR=green><EM>-- Vertical Scrolling</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_196_4">F_ScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43;
+- <FONT COLOR=red><A NAME="ref_197_4">F_ScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44;
+- <FONT COLOR=red><A NAME="ref_198_4">F_ScrollForward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45;
+- <FONT COLOR=red><A NAME="ref_199_4">F_ScrollBackward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46;
+- <FONT COLOR=red><A NAME="ref_200_4">F_ScrollForward_HalfPage</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
+- <FONT COLOR=red><A NAME="ref_201_4">F_ScrollBackward_HalfPage</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 48;
+-
+- <FONT COLOR=green><EM>-- Horizontal Scrolling</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_204_4">F_HScrollForward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49;
+- <FONT COLOR=red><A NAME="ref_205_4">F_HScrollBackward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50;
+- <FONT COLOR=red><A NAME="ref_206_4">F_HScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51;
+- <FONT COLOR=red><A NAME="ref_207_4">F_HScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52;
+- <FONT COLOR=red><A NAME="ref_208_4">F_HScrollForward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
+- <FONT COLOR=red><A NAME="ref_209_4">F_HScrollBackward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 54;
+-
+- <FONT COLOR=red><A NAME="ref_211_4">F_Validate_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55;
+- <FONT COLOR=red><A NAME="ref_212_4">F_Next_Choice</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
+- <FONT COLOR=red><A NAME="ref_213_4">F_Previous_Choice</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 57;
+-
+- <FONT COLOR=green><EM>-- For those who like the old 'C' style request names</EM></FONT>
+- REQ_NEXT_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_149_4">F_Next_Page</A>;
+- REQ_PREV_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Previous_Page</A>;
+- REQ_FIRST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_First_Page</A>;
+- REQ_LAST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Last_Page</A>;
+-
+- REQ_NEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Next_Field</A>;
+- REQ_PREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Previous_Field</A>;
+- REQ_FIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_First_Field</A>;
+- REQ_LAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Last_Field</A>;
+- REQ_SNEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_Next_Field</A>;
+- REQ_SPREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Sorted_Previous_Field</A>;
+- REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Sorted_First_Field</A>;
+- REQ_SLAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Sorted_Last_Field</A>;
+- REQ_LEFT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_162_4">F_Left_Field</A>;
+- REQ_RIGHT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Right_Field</A>;
+- REQ_UP_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Up_Field</A>;
+- REQ_DOWN_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Down_Field</A>;
+-
+- REQ_NEXT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Char</A>;
+- REQ_PREV_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Char</A>;
+- REQ_NEXT_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Next_Line</A>;
+- REQ_PREV_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Previous_Line</A>;
+- REQ_NEXT_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Next_Word</A>;
+- REQ_PREV_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_Previous_Word</A>;
+- REQ_BEG_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Begin_Field</A>;
+- REQ_END_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_End_Field</A>;
+- REQ_BEG_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Begin_Line</A>;
+- REQ_END_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_End_Line</A>;
+- REQ_LEFT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_177_4">F_Left_Char</A>;
+- REQ_RIGHT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_Right_Char</A>;
+- REQ_UP_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_Up_Char</A>;
+- REQ_DOWN_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Down_Char</A>;
+-
+- REQ_NEW_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_New_Line</A>;
+- REQ_INS_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Insert_Char</A>;
+- REQ_INS_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Insert_Line</A>;
+- REQ_DEL_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Char</A>;
+- REQ_DEL_PREV : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Delete_Previous</A>;
+- REQ_DEL_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Delete_Line</A>;
+- REQ_DEL_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Delete_Word</A>;
+- REQ_CLR_EOL : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Clear_EOL</A>;
+- REQ_CLR_EOF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_190_4">F_Clear_EOF</A>;
+- REQ_CLR_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_191_4">F_Clear_Field</A>;
+- REQ_OVL_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_192_4">F_Overlay_Mode</A>;
+- REQ_INS_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_Insert_Mode</A>;
+-
+- REQ_SCR_FLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_Line</A>;
+- REQ_SCR_BLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollBackward_Line</A>;
+- REQ_SCR_FPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_198_4">F_ScrollForward_Page</A>;
+- REQ_SCR_BPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_199_4">F_ScrollBackward_Page</A>;
+- REQ_SCR_FHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_200_4">F_ScrollForward_HalfPage</A>;
+- REQ_SCR_BHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_ScrollBackward_HalfPage</A>;
+-
+- REQ_SCR_FCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_Char</A>;
+- REQ_SCR_BCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollBackward_Char</A>;
+- REQ_SCR_HFLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_206_4">F_HScrollForward_Line</A>;
+- REQ_SCR_HBLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_HScrollBackward_Line</A>;
+- REQ_SCR_HFHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_HScrollForward_HalfLine</A>;
+- REQ_SCR_HBHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_HScrollBackward_HalfLine</A>;
+-
+- REQ_VALIDATION : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_211_4">F_Validate_Field</A>;
+- REQ_NEXT_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_212_4">F_Next_Choice</A>;
+- REQ_PREV_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_213_4">F_Previous_Choice</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_137_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1001_14">Free</A></span> (<span class="symbol"><A NAME="ref_137_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1001_20">FA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>;
++ <span class="symbol"><A NAME="ref_138_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1002_20">Free_Fields</A></span> : Boolean := False);
++ <span class="comment"><EM>-- Release the memory for an allocated field array</EM></span>
++ <span class="comment"><EM>-- If Free_Fields is True, call Delete() for all the fields in</EM></span>
++ <span class="comment"><EM>-- the array.</EM></span>
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_143_12">Form_Request_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A> <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 57);
++
++ <span class="comment"><EM>-- The prefix F_ stands for "Form Request"</EM></span>
++ <span class="symbol"><A NAME="ref_146_4">F_Next_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 1;
++ <span class="symbol"><A NAME="ref_147_4">F_Previous_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 2;
++ <span class="symbol"><A NAME="ref_148_4">F_First_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 3;
++ <span class="symbol"><A NAME="ref_149_4">F_Last_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 4;
++
++ <span class="symbol"><A NAME="ref_151_4">F_Next_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 5;
++ <span class="symbol"><A NAME="ref_152_4">F_Previous_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 6;
++ <span class="symbol"><A NAME="ref_153_4">F_First_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 7;
++ <span class="symbol"><A NAME="ref_154_4">F_Last_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 8;
++ <span class="symbol"><A NAME="ref_155_4">F_Sorted_Next_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 9;
++ <span class="symbol"><A NAME="ref_156_4">F_Sorted_Previous_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 10;
++ <span class="symbol"><A NAME="ref_157_4">F_Sorted_First_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 11;
++ <span class="symbol"><A NAME="ref_158_4">F_Sorted_Last_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 12;
++ <span class="symbol"><A NAME="ref_159_4">F_Left_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 13;
++ <span class="symbol"><A NAME="ref_160_4">F_Right_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 14;
++ <span class="symbol"><A NAME="ref_161_4">F_Up_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 15;
++ <span class="symbol"><A NAME="ref_162_4">F_Down_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 16;
++
++ <span class="symbol"><A NAME="ref_164_4">F_Next_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 17;
++ <span class="symbol"><A NAME="ref_165_4">F_Previous_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 18;
++ <span class="symbol"><A NAME="ref_166_4">F_Next_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 19;
++ <span class="symbol"><A NAME="ref_167_4">F_Previous_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 20;
++ <span class="symbol"><A NAME="ref_168_4">F_Next_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 21;
++ <span class="symbol"><A NAME="ref_169_4">F_Previous_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 22;
++ <span class="symbol"><A NAME="ref_170_4">F_Begin_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 23;
++ <span class="symbol"><A NAME="ref_171_4">F_End_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 24;
++ <span class="symbol"><A NAME="ref_172_4">F_Begin_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 25;
++ <span class="symbol"><A NAME="ref_173_4">F_End_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 26;
++ <span class="symbol"><A NAME="ref_174_4">F_Left_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 27;
++ <span class="symbol"><A NAME="ref_175_4">F_Right_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 28;
++ <span class="symbol"><A NAME="ref_176_4">F_Up_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 29;
++ <span class="symbol"><A NAME="ref_177_4">F_Down_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 30;
++
++ <span class="symbol"><A NAME="ref_179_4">F_New_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 31;
++ <span class="symbol"><A NAME="ref_180_4">F_Insert_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 32;
++ <span class="symbol"><A NAME="ref_181_4">F_Insert_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 33;
++ <span class="symbol"><A NAME="ref_182_4">F_Delete_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 34;
++ <span class="symbol"><A NAME="ref_183_4">F_Delete_Previous</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 35;
++ <span class="symbol"><A NAME="ref_184_4">F_Delete_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 36;
++ <span class="symbol"><A NAME="ref_185_4">F_Delete_Word</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 37;
++ <span class="symbol"><A NAME="ref_186_4">F_Clear_EOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 38;
++ <span class="symbol"><A NAME="ref_187_4">F_Clear_EOF</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 39;
++ <span class="symbol"><A NAME="ref_188_4">F_Clear_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 40;
++ <span class="symbol"><A NAME="ref_189_4">F_Overlay_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 41;
++ <span class="symbol"><A NAME="ref_190_4">F_Insert_Mode</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 42;
++
++ <span class="comment"><EM>-- Vertical Scrolling</EM></span>
++ <span class="symbol"><A NAME="ref_193_4">F_ScrollForward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 43;
++ <span class="symbol"><A NAME="ref_194_4">F_ScrollBackward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 44;
++ <span class="symbol"><A NAME="ref_195_4">F_ScrollForward_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 45;
++ <span class="symbol"><A NAME="ref_196_4">F_ScrollBackward_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 46;
++ <span class="symbol"><A NAME="ref_197_4">F_ScrollForward_HalfPage</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 47;
++ <span class="symbol"><A NAME="ref_198_4">F_ScrollBackward_HalfPage</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 48;
++
++ <span class="comment"><EM>-- Horizontal Scrolling</EM></span>
++ <span class="symbol"><A NAME="ref_201_4">F_HScrollForward_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 49;
++ <span class="symbol"><A NAME="ref_202_4">F_HScrollBackward_Char</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 50;
++ <span class="symbol"><A NAME="ref_203_4">F_HScrollForward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 51;
++ <span class="symbol"><A NAME="ref_204_4">F_HScrollBackward_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 52;
++ <span class="symbol"><A NAME="ref_205_4">F_HScrollForward_HalfLine</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 53;
++ <span class="symbol"><A NAME="ref_206_4">F_HScrollBackward_HalfLine</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 54;
++
++ <span class="symbol"><A NAME="ref_208_4">F_Validate_Field</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 55;
++ <span class="symbol"><A NAME="ref_209_4">F_Next_Choice</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 56;
++ <span class="symbol"><A NAME="ref_210_4">F_Previous_Choice</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 57;
++
++ <span class="comment"><EM>-- For those who like the old 'C' style request names</EM></span>
++ REQ_NEXT_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Next_Page</A>;
++ REQ_PREV_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_Previous_Page</A>;
++ REQ_FIRST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_148_4">F_First_Page</A>;
++ REQ_LAST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_149_4">F_Last_Page</A>;
++
++ REQ_NEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Next_Field</A>;
++ REQ_PREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_Previous_Field</A>;
++ REQ_FIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_First_Field</A>;
++ REQ_LAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Last_Field</A>;
++ REQ_SNEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Next_Field</A>;
++ REQ_SPREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_Previous_Field</A>;
++ REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_First_Field</A>;
++ REQ_SLAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Sorted_Last_Field</A>;
++ REQ_LEFT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Left_Field</A>;
++ REQ_RIGHT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Right_Field</A>;
++ REQ_UP_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_161_4">F_Up_Field</A>;
++ REQ_DOWN_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_162_4">F_Down_Field</A>;
++
++ REQ_NEXT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Next_Char</A>;
++ REQ_PREV_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Previous_Char</A>;
++ REQ_NEXT_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Next_Line</A>;
++ REQ_PREV_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Previous_Line</A>;
++ REQ_NEXT_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Next_Word</A>;
++ REQ_PREV_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Previous_Word</A>;
++ REQ_BEG_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_Begin_Field</A>;
++ REQ_END_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_End_Field</A>;
++ REQ_BEG_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_Begin_Line</A>;
++ REQ_END_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_End_Line</A>;
++ REQ_LEFT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Left_Char</A>;
++ REQ_RIGHT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Right_Char</A>;
++ REQ_UP_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_176_4">F_Up_Char</A>;
++ REQ_DOWN_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_177_4">F_Down_Char</A>;
++
++ REQ_NEW_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_New_Line</A>;
++ REQ_INS_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Char</A>;
++ REQ_INS_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Insert_Line</A>;
++ REQ_DEL_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Char</A>;
++ REQ_DEL_PREV : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Previous</A>;
++ REQ_DEL_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Line</A>;
++ REQ_DEL_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Delete_Word</A>;
++ REQ_CLR_EOL : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOL</A>;
++ REQ_CLR_EOF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_EOF</A>;
++ REQ_CLR_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Clear_Field</A>;
++ REQ_OVL_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_189_4">F_Overlay_Mode</A>;
++ REQ_INS_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_190_4">F_Insert_Mode</A>;
++
++ REQ_SCR_FLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollForward_Line</A>;
++ REQ_SCR_BLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollBackward_Line</A>;
++ REQ_SCR_FPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollForward_Page</A>;
++ REQ_SCR_BPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollBackward_Page</A>;
++ REQ_SCR_FHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_197_4">F_ScrollForward_HalfPage</A>;
++ REQ_SCR_BHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_198_4">F_ScrollBackward_HalfPage</A>;
++
++ REQ_SCR_FCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollForward_Char</A>;
++ REQ_SCR_BCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollBackward_Char</A>;
++ REQ_SCR_HFLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollForward_Line</A>;
++ REQ_SCR_HBLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollBackward_Line</A>;
++ REQ_SCR_HFHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_205_4">F_HScrollForward_HalfLine</A>;
++ REQ_SCR_HBHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_206_4">F_HScrollBackward_HalfLine</A>;
++
++ REQ_VALIDATION : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Validate_Field</A>;
++ REQ_NEXT_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_209_4">F_Next_Choice</A>;
++ REQ_PREV_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_210_4">F_Previous_Choice</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_280_14" HREF="terminal_interface-curses-forms__adb.htm#ref_81_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_280_28" HREF="terminal_interface-curses-forms__adb.htm#ref_81_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>;
+- <FONT COLOR=red><A NAME="ref_281_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Name</A></FONT> : <b>out</b> String);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_277_14" HREF="terminal_interface-curses-forms__adb.htm#ref_64_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_64_28">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A>;
++ <span class="symbol"><A NAME="ref_278_28" HREF="terminal_interface-curses-forms__adb.htm#ref_65_33">Name</A></span> : <b>out</b> String);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_283_14" HREF="terminal_interface-curses-forms__adb.htm#ref_90_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_283_28" HREF="terminal_interface-curses-forms__adb.htm#ref_90_27">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_12">Form_Request_Code</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <b>function</b> <span class="symbol"><A NAME="ref_280_14" HREF="terminal_interface-curses-forms__adb.htm#ref_73_13">Request_Name</A></span> (<span class="symbol"><A NAME="ref_280_28" HREF="terminal_interface-curses-forms__adb.htm#ref_73_27">Key</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_143_12">Form_Request_Code</A>) <b>return</b> String;
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Request_Name);
+
+- <FONT COLOR=green><EM>------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
+- <FONT COLOR=green><EM>------------------</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_290_4">Form_Exception</A></FONT> : <b>exception</b>;
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_297_13" HREF="terminal_interface-curses-forms__adb.htm#ref_108_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_108_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_299_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_300_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_301_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Off_Screen</A></FONT> : Natural := 0;
+- <FONT COLOR=red><A NAME="ref_302_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First)
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded Create is defined later. Pragma Inline appears there.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_308_24">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_309_24">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_310_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_311_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_312_24">Off_Screen</A></FONT> : Natural := 0;
+- <FONT COLOR=red><A NAME="ref_313_24">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First)
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_297_13">Create</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
++ <span class="comment"><EM>------------------</EM></span>
++ <span class="comment"><EM>-- Exceptions --</EM></span>
++ <span class="comment"><EM>------------------</EM></span>
++ <span class="symbol"><A NAME="ref_287_4">Form_Exception</A></span> : <b>exception</b>;
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_294_13" HREF="terminal_interface-curses-forms__adb.htm#ref_91_13">Create</A></span> (<span class="symbol"><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_91_21">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_92_21">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_93_21">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_94_21">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_95_21">Off_Screen</A></span> : Natural := 0;
++ <span class="symbol"><A NAME="ref_299_21" HREF="terminal_interface-curses-forms__adb.htm#ref_96_21">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></span>
++ <span class="comment"><EM>-- An overloaded Create is defined later. Pragma Inline appears there.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>function</b> New_Field (<span class="symbol"><A NAME="ref_305_24">Height</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_306_24">Width</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_307_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_308_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_309_24">Off_Screen</A></span> : Natural := 0;
++ <span class="symbol"><A NAME="ref_310_24">More_Buffers</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_294_13">Create</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></span>
+ <b>pragma</b> Inline (New_Field);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_319_14" HREF="terminal_interface-curses-forms__adb.htm#ref_131_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_319_22" HREF="terminal_interface-curses-forms__adb.htm#ref_131_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Reset Fld to Null_Field</EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_325_13" HREF="terminal_interface-curses-forms__adb.htm#ref_147_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_325_24" HREF="terminal_interface-curses-forms__adb.htm#ref_147_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_326_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_327_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_316_14" HREF="terminal_interface-curses-forms__adb.htm#ref_114_14">Delete</A></span> (<span class="symbol"><A NAME="ref_316_22" HREF="terminal_interface-curses-forms__adb.htm#ref_114_22">Fld</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></span>
++ <span class="comment"><EM>-- Reset Fld to Null_Field</EM></span>
++ <span class="comment"><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_322_13" HREF="terminal_interface-curses-forms__adb.htm#ref_126_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_126_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_127_24">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_324_24" HREF="terminal_interface-curses-forms__adb.htm#ref_128_24">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></span>
+ <b>pragma</b> Inline (Duplicate);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_332_13" HREF="terminal_interface-curses-forms__adb.htm#ref_168_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_332_19" HREF="terminal_interface-curses-forms__adb.htm#ref_168_19">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_333_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_334_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_332_13">Link</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_343_14" HREF="terminal_interface-curses-forms__adb.htm#ref_193_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_343_33" HREF="terminal_interface-curses-forms__adb.htm#ref_193_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_344_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Just</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_33">None</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_343_14">Set_Justification</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_349_13" HREF="terminal_interface-curses-forms__adb.htm#ref_211_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_349_32" HREF="terminal_interface-curses-forms__adb.htm#ref_211_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Justification</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_349_13">Get_Justification</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_358_14" HREF="terminal_interface-curses-forms__adb.htm#ref_225_14">Set_Buffer</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_359_7" HREF="terminal_interface-curses-forms__adb.htm#ref_226_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_360_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First;
+- <FONT COLOR=red><A NAME="ref_361_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Str</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_366_14" HREF="terminal_interface-curses-forms__adb.htm#ref_250_14">Get_Buffer</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_367_7" HREF="terminal_interface-curses-forms__adb.htm#ref_251_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_368_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First;
+- <FONT COLOR=red><A NAME="ref_369_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Str</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_372_13" HREF="terminal_interface-curses-forms__adb.htm#ref_262_13">Get_Buffer</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_373_7" HREF="terminal_interface-curses-forms__adb.htm#ref_263_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_374_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Buffer</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>'First) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same but as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_329_13" HREF="terminal_interface-curses-forms__adb.htm#ref_147_13">Link</A></span> (<span class="symbol"><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_147_19">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_148_19">Top</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_331_19" HREF="terminal_interface-curses-forms__adb.htm#ref_149_19">Left</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_329_13">Link</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_340_14" HREF="terminal_interface-curses-forms__adb.htm#ref_172_14">Set_Justification</A></span> (<span class="symbol"><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_172_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_341_33" HREF="terminal_interface-curses-forms__adb.htm#ref_173_33">Just</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_33">None</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_340_14">Set_Justification</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_346_13" HREF="terminal_interface-curses-forms__adb.htm#ref_186_13">Get_Justification</A></span> (<span class="symbol"><A NAME="ref_346_32" HREF="terminal_interface-curses-forms__adb.htm#ref_186_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Field_Justification</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_346_13">Get_Justification</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_355_14" HREF="terminal_interface-curses-forms__adb.htm#ref_200_14">Set_Buffer</A></span>
++ (<span class="symbol"><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_201_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_202_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First;
++ <span class="symbol"><A NAME="ref_358_7" HREF="terminal_interface-curses-forms__adb.htm#ref_203_7">Str</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></span>
++ <span class="comment"><EM>-- Not inlined</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_363_14" HREF="terminal_interface-curses-forms__adb.htm#ref_217_14">Get_Buffer</A></span>
++ (<span class="symbol"><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_218_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_219_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First;
++ <span class="symbol"><A NAME="ref_366_7" HREF="terminal_interface-curses-forms__adb.htm#ref_220_7">Str</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_369_13" HREF="terminal_interface-curses-forms__adb.htm#ref_229_13">Get_Buffer</A></span>
++ (<span class="symbol"><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_230_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_371_7" HREF="terminal_interface-curses-forms__adb.htm#ref_231_7">Buffer</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>'First) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></span>
++ <span class="comment"><EM>-- Same but as function</EM></span>
+ <b>pragma</b> Inline (Get_Buffer);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_380_14" HREF="terminal_interface-curses-forms__adb.htm#ref_275_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_380_26" HREF="terminal_interface-curses-forms__adb.htm#ref_275_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_381_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Status</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_380_14">Set_Status</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_386_13" HREF="terminal_interface-curses-forms__adb.htm#ref_291_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_386_22" HREF="terminal_interface-curses-forms__adb.htm#ref_291_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_386_13">Changed</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_391_14" HREF="terminal_interface-curses-forms__adb.htm#ref_307_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_391_32" HREF="terminal_interface-curses-forms__adb.htm#ref_307_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_392_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Max</A></FONT> : Natural := 0);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_391_14">Set_Maximum_Size</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_401_14" HREF="terminal_interface-curses-forms__adb.htm#ref_327_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_401_27" HREF="terminal_interface-curses-forms__adb.htm#ref_327_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_402_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_407_14" HREF="terminal_interface-curses-forms__adb.htm#ref_345_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_407_30" HREF="terminal_interface-curses-forms__adb.htm#ref_345_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_408_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_409_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">On</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: field_opts_off()</EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_415_14" HREF="terminal_interface-curses-forms__adb.htm#ref_371_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_415_27" HREF="terminal_interface-curses-forms__adb.htm#ref_371_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_416_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_420_13" HREF="terminal_interface-curses-forms__adb.htm#ref_384_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_420_26" HREF="terminal_interface-curses-forms__adb.htm#ref_384_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_68_9">Field_Option_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__adb.htm#ref_399_14">Set_Foreground</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_431_7" HREF="terminal_interface-curses-forms__adb.htm#ref_400_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_432_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_433_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_430_14">Set_Foreground</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_438_14" HREF="terminal_interface-curses-forms__adb.htm#ref_421_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_438_26" HREF="terminal_interface-curses-forms__adb.htm#ref_421_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_439_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__adb.htm#ref_430_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_443_26" HREF="terminal_interface-curses-forms__adb.htm#ref_430_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_444_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_445_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_377_14" HREF="terminal_interface-curses-forms__adb.htm#ref_242_14">Set_Status</A></span> (<span class="symbol"><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_242_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses-forms__adb.htm#ref_243_26">Status</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_377_14">Set_Status</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_383_13" HREF="terminal_interface-curses-forms__adb.htm#ref_257_13">Changed</A></span> (<span class="symbol"><A NAME="ref_383_22" HREF="terminal_interface-curses-forms__adb.htm#ref_257_22">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_383_13">Changed</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_388_14" HREF="terminal_interface-curses-forms__adb.htm#ref_273_14">Set_Maximum_Size</A></span> (<span class="symbol"><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_273_32">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_389_32" HREF="terminal_interface-curses-forms__adb.htm#ref_274_32">Max</A></span> : Natural := 0);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_388_14">Set_Maximum_Size</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_398_14" HREF="terminal_interface-curses-forms__adb.htm#ref_290_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_290_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_399_27" HREF="terminal_interface-curses-forms__adb.htm#ref_291_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></span>
++ <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_404_14" HREF="terminal_interface-curses-forms__adb.htm#ref_303_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_303_30">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_304_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_406_30" HREF="terminal_interface-curses-forms__adb.htm#ref_305_30">On</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></span>
++ <span class="comment"><EM>-- AKA: field_opts_off()</EM></span>
++ <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_412_14" HREF="terminal_interface-curses-forms__adb.htm#ref_324_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_324_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_413_27" HREF="terminal_interface-curses-forms__adb.htm#ref_325_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_16"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_417_13" HREF="terminal_interface-curses-forms__adb.htm#ref_336_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_417_26" HREF="terminal_interface-curses-forms__adb.htm#ref_336_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_62_9">Field_Option_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></span>
++ <span class="comment"><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_17"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_427_14" HREF="terminal_interface-curses-forms__adb.htm#ref_351_14">Set_Foreground</A></span>
++ (<span class="symbol"><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_352_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_353_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_430_7" HREF="terminal_interface-curses-forms__adb.htm#ref_354_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_427_14">Set_Foreground</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_18"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_435_14" HREF="terminal_interface-curses-forms__adb.htm#ref_368_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_368_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_436_26" HREF="terminal_interface-curses-forms__adb.htm#ref_369_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_19"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_440_14" HREF="terminal_interface-curses-forms__adb.htm#ref_377_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_377_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_378_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_442_26" HREF="terminal_interface-curses-forms__adb.htm#ref_379_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></span>
+ <b>pragma</b> Inline (Foreground);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_450_14" HREF="terminal_interface-curses-forms__adb.htm#ref_443_14">Set_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_451_7" HREF="terminal_interface-curses-forms__adb.htm#ref_444_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_452_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_453_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_20"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_447_14" HREF="terminal_interface-curses-forms__adb.htm#ref_390_14">Set_Background</A></span>
++ (<span class="symbol"><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_391_7">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_392_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_450_7" HREF="terminal_interface-curses-forms__adb.htm#ref_393_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></span>
+ <b>pragma</b> Inline (Set_Background);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_458_14" HREF="terminal_interface-curses-forms__adb.htm#ref_465_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_458_26" HREF="terminal_interface-curses-forms__adb.htm#ref_465_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_459_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_463_14" HREF="terminal_interface-curses-forms__adb.htm#ref_474_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_463_26" HREF="terminal_interface-curses-forms__adb.htm#ref_474_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_464_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_21"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_455_14" HREF="terminal_interface-curses-forms__adb.htm#ref_407_14">Background</A></span> (<span class="symbol"><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_407_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_456_26" HREF="terminal_interface-curses-forms__adb.htm#ref_408_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_22"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_460_14" HREF="terminal_interface-curses-forms__adb.htm#ref_416_14">Background</A></span> (<span class="symbol"><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_416_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_417_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_462_26" HREF="terminal_interface-curses-forms__adb.htm#ref_418_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></span>
+ <b>pragma</b> Inline (Background);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_470_14" HREF="terminal_interface-curses-forms__adb.htm#ref_487_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_470_33" HREF="terminal_interface-curses-forms__adb.htm#ref_487_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_471_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Pad</A></FONT> : Character := Space);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_470_14">Set_Pad_Character</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_476_14" HREF="terminal_interface-curses-forms__adb.htm#ref_504_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_476_29" HREF="terminal_interface-curses-forms__adb.htm#ref_504_29">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_477_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Pad</A></FONT> : <b>out</b> Character);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_476_14">Pad_Character</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_486_14" HREF="terminal_interface-curses-forms__adb.htm#ref_519_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_519_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_489_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_490_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_491_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">Off_Screen</A></FONT> : <b>out</b> Natural;
+- <FONT COLOR=red><A NAME="ref_492_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Buffer_Number</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_486_14">Info</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses-forms__adb.htm#ref_553_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_497_28" HREF="terminal_interface-curses-forms__adb.htm#ref_553_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_498_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_499_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_500_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Max</A></FONT> : <b>out</b> Natural);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_497_14">Dynamic_Info</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_509_14" HREF="terminal_interface-curses-forms__adb.htm#ref_582_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_509_26" HREF="terminal_interface-curses-forms__adb.htm#ref_582_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_510_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_509_14">Set_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_515_13" HREF="terminal_interface-curses-forms__adb.htm#ref_598_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_515_25" HREF="terminal_interface-curses-forms__adb.htm#ref_598_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_515_13">Get_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_520_14" HREF="terminal_interface-curses-forms__adb.htm#ref_610_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_520_30" HREF="terminal_interface-curses-forms__adb.htm#ref_610_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_521_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_520_14">Set_Sub_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_526_13" HREF="terminal_interface-curses-forms__adb.htm#ref_626_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_526_29" HREF="terminal_interface-curses-forms__adb.htm#ref_626_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_526_13">Get_Sub_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_531_14" HREF="terminal_interface-curses-forms__adb.htm#ref_638_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_531_21" HREF="terminal_interface-curses-forms__adb.htm#ref_638_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_532_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_533_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_531_14">Scale</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_541_9">Form_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_541_49">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_545_14" HREF="terminal_interface-curses-forms__adb.htm#ref_662_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_545_35" HREF="terminal_interface-curses-forms__adb.htm#ref_662_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_546_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_545_14">Set_Field_Init_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_551_14" HREF="terminal_interface-curses-forms__adb.htm#ref_678_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_551_35" HREF="terminal_interface-curses-forms__adb.htm#ref_678_35">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_552_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_551_14">Set_Field_Term_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_557_14" HREF="terminal_interface-curses-forms__adb.htm#ref_694_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_557_34" HREF="terminal_interface-curses-forms__adb.htm#ref_694_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_558_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_557_14">Set_Form_Init_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_563_14" HREF="terminal_interface-curses-forms__adb.htm#ref_710_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_563_34" HREF="terminal_interface-curses-forms__adb.htm#ref_710_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_564_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_563_14">Set_Form_Term_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_569_13">Get_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_569_34" HREF="terminal_interface-curses-forms__ads.htm#ref_569_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_23"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_467_14" HREF="terminal_interface-curses-forms__adb.htm#ref_429_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_429_33">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_468_33" HREF="terminal_interface-curses-forms__adb.htm#ref_430_33">Pad</A></span> : Character := Space);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_467_14">Set_Pad_Character</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_24"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_473_14" HREF="terminal_interface-curses-forms__adb.htm#ref_443_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_443_29">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_474_29" HREF="terminal_interface-curses-forms__adb.htm#ref_444_29">Pad</A></span> : <b>out</b> Character);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_473_14">Pad_Character</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_25"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_483_14" HREF="terminal_interface-curses-forms__adb.htm#ref_458_14">Info</A></span> (<span class="symbol"><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_458_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_459_20">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_460_20">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_461_20">First_Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_462_20">First_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_463_20">Off_Screen</A></span> : <b>out</b> Natural;
++ <span class="symbol"><A NAME="ref_489_20" HREF="terminal_interface-curses-forms__adb.htm#ref_464_20">Additional_Buffers</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Buffer_Number</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_483_14">Info</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_26"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_494_14" HREF="terminal_interface-curses-forms__adb.htm#ref_488_14">Dynamic_Info</A></span> (<span class="symbol"><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_488_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_489_28">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_490_28">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_497_28" HREF="terminal_interface-curses-forms__adb.htm#ref_491_28">Max</A></span> : <b>out</b> Natural);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_494_14">Dynamic_Info</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_27"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_506_14" HREF="terminal_interface-curses-forms__adb.htm#ref_513_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_513_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_507_26" HREF="terminal_interface-curses-forms__adb.htm#ref_514_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_506_14">Set_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_28"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_512_13" HREF="terminal_interface-curses-forms__adb.htm#ref_526_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_512_25" HREF="terminal_interface-curses-forms__adb.htm#ref_526_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_512_13">Get_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_29"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_517_14" HREF="terminal_interface-curses-forms__adb.htm#ref_538_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_538_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_518_30" HREF="terminal_interface-curses-forms__adb.htm#ref_539_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_517_14">Set_Sub_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_30"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_523_13" HREF="terminal_interface-curses-forms__adb.htm#ref_551_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_523_29" HREF="terminal_interface-curses-forms__adb.htm#ref_551_29">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_523_13">Get_Sub_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_31"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_528_14" HREF="terminal_interface-curses-forms__adb.htm#ref_563_14">Scale</A></span> (<span class="symbol"><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_563_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_564_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_530_21" HREF="terminal_interface-curses-forms__adb.htm#ref_565_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_528_14">Scale</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_538_9">Form_Hook_Function</A></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><A NAME="ref_538_49">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>);
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_32"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_542_14" HREF="terminal_interface-curses-forms__adb.htm#ref_584_14">Set_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_584_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_543_35" HREF="terminal_interface-curses-forms__adb.htm#ref_585_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_542_14">Set_Field_Init_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_33"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_548_14" HREF="terminal_interface-curses-forms__adb.htm#ref_597_14">Set_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_597_35">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_549_35" HREF="terminal_interface-curses-forms__adb.htm#ref_598_35">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_548_14">Set_Field_Term_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_34"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_554_14" HREF="terminal_interface-curses-forms__adb.htm#ref_610_14">Set_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_610_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_555_34" HREF="terminal_interface-curses-forms__adb.htm#ref_611_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_554_14">Set_Form_Init_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_35"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_560_14" HREF="terminal_interface-curses-forms__adb.htm#ref_623_14">Set_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_623_34">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_561_34" HREF="terminal_interface-curses-forms__adb.htm#ref_624_34">Proc</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_560_14">Set_Form_Term_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_36"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_566_13">Get_Field_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_566_34" HREF="terminal_interface-curses-forms__ads.htm#ref_566_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></span>
+ <b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_574_13">Get_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_574_34" HREF="terminal_interface-curses-forms__ads.htm#ref_574_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_37"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_571_13">Get_Field_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_571_34" HREF="terminal_interface-curses-forms__ads.htm#ref_571_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></span>
+ <b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_579_13">Get_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_579_33" HREF="terminal_interface-curses-forms__ads.htm#ref_579_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_38"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_576_13">Get_Form_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_576_33" HREF="terminal_interface-curses-forms__ads.htm#ref_576_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></span>
+ <b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_584_13">Get_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_584_33" HREF="terminal_interface-curses-forms__ads.htm#ref_584_13">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_9">Form_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_39"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_581_13">Get_Form_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_581_33" HREF="terminal_interface-curses-forms__ads.htm#ref_581_13">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_538_9">Form_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></span>
+ <b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term");
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_593_14" HREF="terminal_interface-curses-forms__adb.htm#ref_730_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_593_24" HREF="terminal_interface-curses-forms__adb.htm#ref_730_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_594_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Flds</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_599_14">Set_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_599_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_600_26">Flds</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_593_14">Redefine</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- pragma Inline (Set_Fields);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_605_13" HREF="terminal_interface-curses-forms__adb.htm#ref_752_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_605_21" HREF="terminal_interface-curses-forms__adb.htm#ref_752_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_606_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_605_13">Fields</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_611_13" HREF="terminal_interface-curses-forms__adb.htm#ref_772_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_611_26" HREF="terminal_interface-curses-forms__adb.htm#ref_772_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Natural;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_611_13">Field_Count</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_616_14" HREF="terminal_interface-curses-forms__adb.htm#ref_782_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_616_20" HREF="terminal_interface-curses-forms__adb.htm#ref_782_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_617_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_618_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_616_14">Move</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_627_13" HREF="terminal_interface-curses-forms__adb.htm#ref_802_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_627_21" HREF="terminal_interface-curses-forms__adb.htm#ref_802_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_40"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_590_14" HREF="terminal_interface-curses-forms__adb.htm#ref_640_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_640_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_591_24" HREF="terminal_interface-curses-forms__adb.htm#ref_641_24">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_14">Redefine</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_41"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_596_14">Set_Fields</A></span> (<span class="symbol"><A NAME="ref_596_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_597_26">Flds</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_590_14">Redefine</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></span>
++ <span class="comment"><EM>-- pragma Inline (Set_Fields);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_42"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_602_13" HREF="terminal_interface-curses-forms__adb.htm#ref_658_13">Fields</A></span> (<span class="symbol"><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_658_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_603_21" HREF="terminal_interface-curses-forms__adb.htm#ref_659_21">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_602_13">Fields</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_43"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_608_13" HREF="terminal_interface-curses-forms__adb.htm#ref_678_13">Field_Count</A></span> (<span class="symbol"><A NAME="ref_608_26" HREF="terminal_interface-curses-forms__adb.htm#ref_678_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Natural;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_608_13">Field_Count</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_44"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_613_14" HREF="terminal_interface-curses-forms__adb.htm#ref_688_14">Move</A></span> (<span class="symbol"><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_688_20">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_689_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_615_20" HREF="terminal_interface-curses-forms__adb.htm#ref_690_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_613_14">Move</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_45"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_624_13" HREF="terminal_interface-curses-forms__adb.htm#ref_705_13">Create</A></span> (<span class="symbol"><A NAME="ref_624_21" HREF="terminal_interface-curses-forms__adb.htm#ref_705_21">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></span>
+ <b>pragma</b> Inline (Create);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
+- <b>function</b> New_Form (<FONT COLOR=red><A NAME="ref_632_23">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_138_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>
+- <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_627_13">Create</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- pragma Inline (New_Form);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__adb.htm#ref_823_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_638_22" HREF="terminal_interface-curses-forms__adb.htm#ref_823_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Reset Frm to Null_Form</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_46"#2|</EM></span>
++ <b>function</b> New_Form (<span class="symbol"><A NAME="ref_629_23">Fields</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>
++ <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_624_13">Create</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></span>
++ <span class="comment"><EM>-- pragma Inline (New_Form);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_47"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_635_14" HREF="terminal_interface-curses-forms__adb.htm#ref_726_14">Delete</A></span> (<span class="symbol"><A NAME="ref_635_22" HREF="terminal_interface-curses-forms__adb.htm#ref_726_22">Frm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></span>
++ <span class="comment"><EM>-- Reset Frm to Null_Form</EM></span>
+ <b>pragma</b> Inline (Delete);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_648_14" HREF="terminal_interface-curses-forms__adb.htm#ref_842_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_648_27" HREF="terminal_interface-curses-forms__adb.htm#ref_842_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_649_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_48"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_645_14" HREF="terminal_interface-curses-forms__adb.htm#ref_742_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_742_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_646_27" HREF="terminal_interface-curses-forms__adb.htm#ref_743_27">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></span>
+ <b>pragma</b> Inline (Set_Options);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_654_14" HREF="terminal_interface-curses-forms__adb.htm#ref_860_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_654_30" HREF="terminal_interface-curses-forms__adb.htm#ref_860_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_655_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Options</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_656_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">On</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: form_opts_off()</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_49"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_651_14" HREF="terminal_interface-curses-forms__adb.htm#ref_755_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_755_30">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_756_30">Options</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_653_30" HREF="terminal_interface-curses-forms__adb.htm#ref_757_30">On</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></span>
++ <span class="comment"><EM>-- AKA: form_opts_off()</EM></span>
+ <b>pragma</b> Inline (Switch_Options);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__adb.htm#ref_886_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_662_27" HREF="terminal_interface-curses-forms__adb.htm#ref_886_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_663_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_667_13" HREF="terminal_interface-curses-forms__adb.htm#ref_899_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_667_26" HREF="terminal_interface-curses-forms__adb.htm#ref_899_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_109_9">Form_Option_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_50"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_659_14" HREF="terminal_interface-curses-forms__adb.htm#ref_776_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_776_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_660_27" HREF="terminal_interface-curses-forms__adb.htm#ref_777_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_51"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_664_13" HREF="terminal_interface-curses-forms__adb.htm#ref_788_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_664_26" HREF="terminal_interface-curses-forms__adb.htm#ref_788_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_108_9">Form_Option_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></span>
+ <b>pragma</b> Inline (Get_Options);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_676_14" HREF="terminal_interface-curses-forms__adb.htm#ref_913_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_676_20" HREF="terminal_interface-curses-forms__adb.htm#ref_913_20">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_677_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Post</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: unpost_form()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_676_14">Post</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_687_14" HREF="terminal_interface-curses-forms__adb.htm#ref_939_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_687_31" HREF="terminal_interface-curses-forms__adb.htm#ref_939_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_687_14">Position_Cursor</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_696_13" HREF="terminal_interface-curses-forms__adb.htm#ref_957_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_696_25" HREF="terminal_interface-curses-forms__adb.htm#ref_957_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_696_13">Data_Ahead</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_701_13" HREF="terminal_interface-curses-forms__adb.htm#ref_973_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_701_26" HREF="terminal_interface-curses-forms__adb.htm#ref_973_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_701_13">Data_Behind</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_709_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_709_27">Form_Ok</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_710_27">Request_Denied</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_711_27">Unknown_Request</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_712_27">Invalid_Field</A></FONT>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_715_13" HREF="terminal_interface-curses-forms__adb.htm#ref_993_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_715_21" HREF="terminal_interface-curses-forms__adb.htm#ref_993_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_716_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_709_9">Driver_Result</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Driver not inlined</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_724_9">Page_Number</A></FONT> <b>is</b> <b>new</b> Natural;
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_727_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_727_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1023_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_728_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_727_14">Set_Current</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_733_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_733_22" HREF="terminal_interface-curses-forms__adb.htm#ref_1038_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_733_13">Current</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_738_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_738_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1053_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>;
+- <FONT COLOR=red><A NAME="ref_739_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Page</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_738_14">Set_Page</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_744_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_744_19" HREF="terminal_interface-curses-forms__adb.htm#ref_1068_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_9">Page_Number</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_744_13">Page</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_749_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_749_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1082_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Positive;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of fields</EM></FONT>
+- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT>
+- <FONT COLOR=green><EM>-- level call.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_749_13">Get_Index</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_761_14" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_761_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1102_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
+- <FONT COLOR=red><A NAME="ref_762_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">New_Page</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_761_14">Set_New_Page</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_63"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_767_13" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_767_26" HREF="terminal_interface-curses-forms__adb.htm#ref_1117_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_767_13">Is_New_Page</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: form_request_name, form_request_by_name</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_52"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_673_14" HREF="terminal_interface-curses-forms__adb.htm#ref_802_14">Post</A></span> (<span class="symbol"><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_802_20">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_674_20" HREF="terminal_interface-curses-forms__adb.htm#ref_803_20">Post</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></span>
++ <span class="comment"><EM>-- AKA: unpost_form()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_673_14">Post</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_53"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_684_14" HREF="terminal_interface-curses-forms__adb.htm#ref_824_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_684_31" HREF="terminal_interface-curses-forms__adb.htm#ref_824_31">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_684_14">Position_Cursor</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_54"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_693_13" HREF="terminal_interface-curses-forms__adb.htm#ref_839_13">Data_Ahead</A></span> (<span class="symbol"><A NAME="ref_693_25" HREF="terminal_interface-curses-forms__adb.htm#ref_839_25">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_693_13">Data_Ahead</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_55"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_698_13" HREF="terminal_interface-curses-forms__adb.htm#ref_855_13">Data_Behind</A></span> (<span class="symbol"><A NAME="ref_698_26" HREF="terminal_interface-curses-forms__adb.htm#ref_855_26">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_698_13">Data_Behind</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_706_9">Driver_Result</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_706_27">Form_Ok</A></span>,
++ <span class="symbol"><A NAME="ref_707_27">Request_Denied</A></span>,
++ <span class="symbol"><A NAME="ref_708_27">Unknown_Request</A></span>,
++ <span class="symbol"><A NAME="ref_709_27">Invalid_Field</A></span>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_56"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_712_13" HREF="terminal_interface-curses-forms__adb.htm#ref_875_13">Driver</A></span> (<span class="symbol"><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_875_21">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_713_21" HREF="terminal_interface-curses-forms__adb.htm#ref_876_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_706_9">Driver_Result</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></span>
++ <span class="comment"><EM>-- Driver not inlined</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_721_9">Page_Number</A></span> <b>is</b> <b>new</b> Natural;
++
++ <span class="comment"><EM>-- #1A NAME="AFU_57"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_724_14" HREF="terminal_interface-curses-forms__adb.htm#ref_902_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_902_27">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_725_27" HREF="terminal_interface-curses-forms__adb.htm#ref_903_27">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_724_14">Set_Current</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_58"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_730_13" HREF="terminal_interface-curses-forms__adb.htm#ref_914_13">Current</A></span> (<span class="symbol"><A NAME="ref_730_22" HREF="terminal_interface-curses-forms__adb.htm#ref_914_22">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_730_13">Current</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_59"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_735_14" HREF="terminal_interface-curses-forms__adb.htm#ref_929_14">Set_Page</A></span> (<span class="symbol"><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_929_24">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>;
++ <span class="symbol"><A NAME="ref_736_24" HREF="terminal_interface-curses-forms__adb.htm#ref_930_24">Page</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_735_14">Set_Page</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_60"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_741_13" HREF="terminal_interface-curses-forms__adb.htm#ref_941_13">Page</A></span> (<span class="symbol"><A NAME="ref_741_19" HREF="terminal_interface-curses-forms__adb.htm#ref_941_19">Frm</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_721_9">Page_Number</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_741_13">Page</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_61"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_746_13" HREF="terminal_interface-curses-forms__adb.htm#ref_955_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_746_24" HREF="terminal_interface-curses-forms__adb.htm#ref_955_24">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> Positive;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></span>
++ <span class="comment"><EM>-- Please note that in this binding we start the numbering of fields</EM></span>
++ <span class="comment"><EM>-- with 1. So this is number is one more than you get from the low</EM></span>
++ <span class="comment"><EM>-- level call.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_746_13">Get_Index</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_62"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_758_14" HREF="terminal_interface-curses-forms__adb.htm#ref_975_14">Set_New_Page</A></span> (<span class="symbol"><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_975_28">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>;
++ <span class="symbol"><A NAME="ref_759_28" HREF="terminal_interface-curses-forms__adb.htm#ref_976_28">New_Page</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_758_14">Set_New_Page</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_63"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_764_13" HREF="terminal_interface-curses-forms__adb.htm#ref_987_13">Is_New_Page</A></span> (<span class="symbol"><A NAME="ref_764_26" HREF="terminal_interface-curses-forms__adb.htm#ref_987_26">Fld</A></span> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms__ads.htm#ref_764_13">Is_New_Page</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/form_requestname.3x.html">form_requestname.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not Implemented: form_request_name, form_request_by_name</EM></span>
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>private</b>
+- <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+- <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := 0;
+- <A HREF="terminal_interface-curses-forms__ads.htm#ref_60_4">Null_Form</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_57_9">Form</A> := 0;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_54_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_51_9">Field</A> := 0;
++ <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_4">Null_Form</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_52_9">Form</A> := 0;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_49_35">Forms</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_45_35">Forms</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm 2011-02-25 23:43:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,83 +1,92 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<span class="symbol"><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A></span> <b>is</b>
+
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_52_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">Set_Item_Userptr</A></span> (<span class="symbol"><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_52_34" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Addr</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Item_Userptr, "set_item_userptr");
+
+- <FONT COLOR=red><A NAME="ref_55_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_59_29">Data</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_62_28" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_59_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_28" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_64_30" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_61_16">Item_Userptr</A></span> (<span class="symbol"><A NAME="ref_61_30" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_61_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>;
+ <b>pragma</b> Import (C, Item_Userptr, "item_userptr");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_61_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_28">Itm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_67_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_68_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_65_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_69_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Itm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_14">Get_User_Data</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,80 +1,92 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.17 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:31:35 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.17 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:31:35 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User</A>;
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>);
+-
+- <FONT COLOR=green><EM>-- The binding uses the same user pointer for menu items</EM></FONT>
+- <FONT COLOR=green><EM>-- as the low level C implementation. So you can safely</EM></FONT>
+- <FONT COLOR=green><EM>-- read or write the user pointer also with the C routines</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_58_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></FONT>
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_45_9" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<span class="symbol"><A NAME="ref_46_41" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_44_46">Item_User_Data</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>);
++
++ <span class="comment"><EM>-- The binding uses the same user pointer for menu items</EM></span>
++ <span class="comment"><EM>-- as the low level C implementation. So you can safely</EM></span>
++ <span class="comment"><EM>-- read or write the user pointer also with the C routines</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_58_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_48_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></span>
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_14">Set_User_Data</A>);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_64_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_70_29">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_62_28">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_64_14" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_67_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_67_29">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_65_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_68_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_69_13" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_69_28" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_59_28">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_9">User_Access</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Get_User_Data);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_46_41">Item_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm 2011-02-25 23:43:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,82 +1,92 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_43_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<span class="symbol"><A NAME="ref_43_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A></span> <b>is</b>
+
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_47_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_50_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_50_16">Set_Menu_Userptr</A></span> (<span class="symbol"><A NAME="ref_50_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_51_34" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Userptr, "set_menu_userptr");
+
+- <FONT COLOR=red><A NAME="ref_54_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A>));
++
+ <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_61_13" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_61_28" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_59_13" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_28" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_63_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_63_30" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_61_16">Menu_Userptr</A></span> (<span class="symbol"><A NAME="ref_61_30" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, Menu_Userptr, "menu_userptr");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_67_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_68_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,75 +1,87 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_43_9">User</A>;
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<FONT COLOR=red><A NAME="ref_45_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_43_46">Menu_User_Data</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></FONT>
++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">User_Access</A></span> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<span class="symbol"><A NAME="ref_45_41" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_43_46">Menu_User_Data</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_47_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Data</A></span> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></span>
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_69_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_61_28">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_67_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_67_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_68_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_59_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_59_28">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Get_User_Data);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus__adb.htm 2011-03-26 21:54:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-menus__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,1028 +1,922 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-menus.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-menus.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.28 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:38:12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Menus --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.32 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Unchecked_Deallocation;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers;
+
+-<b>with</b> Ada.Unchecked_Conversion;
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_49_40" HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A></span> <b>is</b>
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_51_40" HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A></FONT> <b>is</b>
+-
+- <b>type</b> C_Item_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++ <b>type</b> C_Item_Array <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
+ <b>package</b> I_Array <b>is</b> <b>new</b>
+- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>);
++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>, C_Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>);
+
+ <b>use</b> <b>type</b> System.Bit_Order;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.chars_ptr;
+-
+- <b>function</b> MOS_2_CInt <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+-
+- <b>function</b> CInt_2_MOS <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
++ <b>subtype</b> <span class="symbol"><A NAME="ref_56_12">chars_ptr</A></span> <b>is</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.chars_ptr;
+
+- <b>function</b> IOS_2_CInt <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+-
+- <b>function</b> CInt_2_IOS <b>is</b> <b>new</b>
+- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>);
+-
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-menus__ads.htm#ref_106_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_77_28" HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>;
+- <FONT COLOR=red><A NAME="ref_78_28" HREF="terminal_interface-curses-menus__ads.htm#ref_107_28">Name</A></FONT> : <b>out</b> String)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-menus__ads.htm#ref_101_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_59_28" HREF="terminal_interface-curses-menus__ads.htm#ref_101_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A>;
++ <span class="symbol"><A NAME="ref_60_28" HREF="terminal_interface-curses-menus__ads.htm#ref_102_28">Name</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_80_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_80_30" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_62_16">Request_Name</A></span> (<span class="symbol"><A NAME="ref_62_30" HREF="terminal_interface-curses-menus__adb.htm#ref_62_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Request_Name, "menu_request_name");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#ref_107_28">Name</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_106_14">Request_Name</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_62_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_101_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#ref_102_28">Name</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_101_14">Request_Name</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_86_13" HREF="terminal_interface-curses-menus__ads.htm#ref_109_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_86_27" HREF="terminal_interface-curses-menus__ads.htm#ref_109_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_68_13" HREF="terminal_interface-curses-menus__ads.htm#ref_104_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_68_27" HREF="terminal_interface-curses-menus__ads.htm#ref_104_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_88_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_88_30" HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_70_16">Request_Name</A></span> (<span class="symbol"><A NAME="ref_70_30" HREF="terminal_interface-curses-menus__adb.htm#ref_70_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Request_Name, "menu_request_name");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_109_28">Key</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_109_14">Request_Name</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_70_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_104_28">Key</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_104_14">Request_Name</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-menus__ads.htm#ref_195_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_94_21" HREF="terminal_interface-curses-menus__ads.htm#ref_195_21">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_95_21" HREF="terminal_interface-curses-menus__ads.htm#ref_196_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_76_13" HREF="terminal_interface-curses-menus__ads.htm#ref_189_13">Create</A></span> (<span class="symbol"><A NAME="ref_76_21" HREF="terminal_interface-curses-menus__ads.htm#ref_189_21">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_77_21" HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_97_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_98_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="ref_98_25" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Name</A></FONT>, <FONT COLOR=red><A NAME="ref_98_31" HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_97_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_79_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
++ <b>function</b> <span class="symbol"><A NAME="ref_80_16">Newitem</A></span> (<span class="symbol"><A NAME="ref_80_25" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Name</A></span>, <span class="symbol"><A NAME="ref_80_31" HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Desc</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_79_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
+ <b>pragma</b> Import (C, Newitem, "new_item");
+
+- <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_195_21">Name</A>'Length);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_102_12">Name_String_Ptr</A></FONT> <b>is</b> <b>access</b> Name_String;
+- <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A>);
+-
+- <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_196_21">Description</A>'Length);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_106_12">Desc_String_Ptr</A></FONT> <b>is</b> <b>access</b> Desc_String;
+- <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A>);
+-
+- <FONT COLOR=red><A NAME="ref_109_7">Name_Str</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A> := <b>new</b> Name_String;
+- <FONT COLOR=red><A NAME="ref_110_7">Desc_Str</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A> := <b>new</b> Desc_String;
+- <FONT COLOR=red><A NAME="ref_111_7">Name_Len</A></FONT>, <FONT COLOR=red><A NAME="ref_111_17">Desc_Len</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_112_7">Result</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_195_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_7">Name_Len</A>);
+- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_196_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_17">Desc_Len</A>);
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_391_4">Eti_System_Error</A>;
++ <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_189_21">Name</A>'Length);
++ <b>type</b> <span class="symbol"><A NAME="ref_84_12">Name_String_Ptr</A></span> <b>is</b> <b>access</b> Name_String;
++ <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_84_12">Name_String_Ptr</A>);
++
++ <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Description</A>'Length);
++ <b>type</b> <span class="symbol"><A NAME="ref_88_12">Desc_String_Ptr</A></span> <b>is</b> <b>access</b> Desc_String;
++ <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_88_12">Desc_String_Ptr</A>);
++
++ <span class="symbol"><A NAME="ref_91_7">Name_Str</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_84_12">Name_String_Ptr</A> := <b>new</b> Name_String;
++ <span class="symbol"><A NAME="ref_92_7">Desc_Str</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_88_12">Desc_String_Ptr</A> := <b>new</b> Desc_String;
++ <span class="symbol"><A NAME="ref_93_7">Name_Len</A></span>, <span class="symbol"><A NAME="ref_93_17">Desc_Len</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_94_7">Result</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <b>begin</b>
++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_189_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_93_7">Name_Len</A>);
++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_93_17">Desc_Len</A>);
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_91_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_92_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_527_4">Eti_System_Error</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_195_13">Create</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_94_7">Result</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_189_13">Create</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_124_14" HREF="terminal_interface-curses-menus__ads.htm#ref_207_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_124_22" HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__ads.htm#ref_201_14">Delete</A></span> (<span class="symbol"><A NAME="ref_106_22" HREF="terminal_interface-curses-menus__ads.htm#ref_201_22">Itm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_126_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_126_26" HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_108_16">Descname</A></span> (<span class="symbol"><A NAME="ref_108_26" HREF="terminal_interface-curses-menus__adb.htm#ref_108_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Descname, "item_description");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_128_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_128_26" HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_110_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_110_26" HREF="terminal_interface-curses-menus__adb.htm#ref_110_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Itemname, "item_name");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_131_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="ref_131_26" HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_113_16">Freeitem</A></span> (<span class="symbol"><A NAME="ref_113_26" HREF="terminal_interface-curses-menus__adb.htm#ref_113_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Freeitem, "free_item");
+
+- <FONT COLOR=red><A NAME="ref_134_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <FONT COLOR=red><A NAME="ref_135_7">Ptr</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <span class="symbol"><A NAME="ref_116_7">Ptr</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b>
+- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b>
+- <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_207_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_207_14">Delete</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_152_14" HREF="terminal_interface-curses-menus__ads.htm#ref_216_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_152_25" HREF="terminal_interface-curses-menus__ads.htm#ref_216_25">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_153_25" HREF="terminal_interface-curses-menus__ads.htm#ref_217_25">Value</A></FONT> : Boolean := True)
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_108_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_201_22">Itm</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> /= Null_Ptr <b>then</b>
++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A>);
++ <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_201_22">Itm</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A> /= Null_Ptr <b>then</b>
++ <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_116_7">Ptr</A>);
++ <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_113_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_201_22">Itm</A>));
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_201_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_201_14">Delete</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_130_14" HREF="terminal_interface-curses-menus__ads.htm#ref_210_14">Set_Value</A></span> (<span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-menus__ads.htm#ref_210_25">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_131_25" HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Value</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_155_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_155_30" HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_156_30" HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Val</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_133_16">Set_Item_Val</A></span> (<span class="symbol"><A NAME="ref_133_30" HREF="terminal_interface-curses-menus__adb.htm#ref_133_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_134_30" HREF="terminal_interface-curses-menus__adb.htm#ref_133_16">Val</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Item_Val, "set_item_value");
+
+- <FONT COLOR=red><A NAME="ref_159_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_216_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_217_25">Value</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_159_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_159_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_216_14">Set_Value</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_133_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_210_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Value</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_210_14">Set_Value</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_166_13" HREF="terminal_interface-curses-menus__ads.htm#ref_222_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_166_20" HREF="terminal_interface-curses-menus__ads.htm#ref_222_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_141_13" HREF="terminal_interface-curses-menus__ads.htm#ref_216_13">Value</A></span> (<span class="symbol"><A NAME="ref_141_20" HREF="terminal_interface-curses-menus__ads.htm#ref_216_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_168_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_168_26" HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_143_16">Item_Val</A></span> (<span class="symbol"><A NAME="ref_143_26" HREF="terminal_interface-curses-menus__adb.htm#ref_143_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Item_Val, "item_value");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_222_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_143_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_216_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_222_13">Value</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_216_13">Value</A>;
+
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_179_13" HREF="terminal_interface-curses-menus__ads.htm#ref_231_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_179_22" HREF="terminal_interface-curses-menus__ads.htm#ref_231_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_154_13" HREF="terminal_interface-curses-menus__ads.htm#ref_225_13">Visible</A></span> (<span class="symbol"><A NAME="ref_154_22" HREF="terminal_interface-curses-menus__ads.htm#ref_225_22">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_181_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="ref_181_26" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_156_16">Item_Vis</A></span> (<span class="symbol"><A NAME="ref_156_26" HREF="terminal_interface-curses-menus__adb.htm#ref_156_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Item_Vis, "item_visible");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_231_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_156_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_225_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_231_13">Visible</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_191_14" HREF="terminal_interface-curses-menus__ads.htm#ref_240_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_191_27" HREF="terminal_interface-curses-menus__ads.htm#ref_240_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_192_27" HREF="terminal_interface-curses-menus__ads.htm#ref_241_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>)
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_225_13">Visible</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_166_14" HREF="terminal_interface-curses-menus__ads.htm#ref_234_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_166_27" HREF="terminal_interface-curses-menus__ads.htm#ref_234_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_167_27" HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_194_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_194_31" HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_195_31" HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_169_16">Set_Item_Opts</A></span> (<span class="symbol"><A NAME="ref_169_31" HREF="terminal_interface-curses-menus__adb.htm#ref_169_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_170_31" HREF="terminal_interface-curses-menus__adb.htm#ref_169_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Item_Opts, "set_item_opts");
+
+- <FONT COLOR=red><A NAME="ref_198_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := IOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_27">Options</A>);
+- <FONT COLOR=red><A NAME="ref_199_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_240_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_198_7">Opt</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_240_14">Set_Options</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_169_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_234_27">Itm</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Options</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_234_14">Set_Options</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__ads.htm#ref_246_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_207_30" HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_208_30" HREF="terminal_interface-curses-menus__ads.htm#ref_247_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_209_30" HREF="terminal_interface-curses-menus__ads.htm#ref_248_30">On</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_177_14" HREF="terminal_interface-curses-menus__ads.htm#ref_240_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_177_30" HREF="terminal_interface-curses-menus__ads.htm#ref_240_30">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_178_30" HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_179_30" HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_211_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_211_30" HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_212_30" HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_181_16">Item_Opts_On</A></span> (<span class="symbol"><A NAME="ref_181_30" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_182_30" HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Item_Opts_On, "item_opts_on");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_214_16">Item_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_214_31" HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_215_31" HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_184_16">Item_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_184_31" HREF="terminal_interface-curses-menus__adb.htm#ref_184_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_185_31" HREF="terminal_interface-curses-menus__adb.htm#ref_184_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Item_Opts_Off, "item_opts_off");
+
+- <FONT COLOR=red><A NAME="ref_218_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := IOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_247_30">Options</A>);
+- <FONT COLOR=red><A NAME="ref_219_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_248_30">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_240_30">Itm</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Options</A>));
+ <b>else</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_246_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>);
+- <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_184_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_240_30">Itm</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Options</A>));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_246_14">Switch_Options</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_240_14">Switch_Options</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_255_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_255_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_256_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_196_14" HREF="terminal_interface-curses-menus__ads.htm#ref_249_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_196_27" HREF="terminal_interface-curses-menus__ads.htm#ref_249_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_197_27" HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_234_27" HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_199_16">Item_Opts</A></span> (<span class="symbol"><A NAME="ref_199_27" HREF="terminal_interface-curses-menus__adb.htm#ref_199_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>;
+ <b>pragma</b> Import (C, Item_Opts, "item_opts");
+
+- <FONT COLOR=red><A NAME="ref_237_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_255_27">Itm</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_256_27">Options</A> := CInt_2_IOS (<A HREF="terminal_interface-curses-menus__adb.htm#ref_237_7">Res</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_14">Get_Options</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_249_27">Itm</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_249_14">Get_Options</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_242_13" HREF="terminal_interface-curses-menus__ads.htm#ref_260_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__ads.htm#ref_260_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_206_13" HREF="terminal_interface-curses-menus__ads.htm#ref_254_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_206_26" HREF="terminal_interface-curses-menus__ads.htm#ref_254_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_244_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_208_7">Ios</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_260_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_260_13">Get_Options</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-menus__ads.htm#ref_269_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_250_20" HREF="terminal_interface-curses-menus__ads.htm#ref_269_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_251_20" HREF="terminal_interface-curses-menus__ads.htm#ref_270_20">Name</A></FONT> : <b>out</b> String)
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_249_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_254_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_208_7">Ios</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_208_7">Ios</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_254_13">Get_Options</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_214_14" HREF="terminal_interface-curses-menus__ads.htm#ref_263_14">Name</A></span> (<span class="symbol"><A NAME="ref_214_20" HREF="terminal_interface-curses-menus__ads.htm#ref_263_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_215_20" HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Name</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_253_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_253_26" HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_217_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_217_26" HREF="terminal_interface-curses-menus__adb.htm#ref_217_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Itemname, "item_name");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_269_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_270_20">Name</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_269_14">Name</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_217_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_263_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Name</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_263_14">Name</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_272_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_259_19" HREF="terminal_interface-curses-menus__ads.htm#ref_272_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_223_13" HREF="terminal_interface-curses-menus__ads.htm#ref_266_14">Name</A></span> (<span class="symbol"><A NAME="ref_223_19" HREF="terminal_interface-curses-menus__ads.htm#ref_266_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_261_26" HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_225_16">Itemname</A></span> (<span class="symbol"><A NAME="ref_225_26" HREF="terminal_interface-curses-menus__adb.htm#ref_225_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Itemname, "item_name");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_272_20">Itm</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_272_14">Name</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_225_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_266_20">Itm</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_266_14">Name</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__ads.htm#ref_278_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_267_27" HREF="terminal_interface-curses-menus__ads.htm#ref_278_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_268_27" HREF="terminal_interface-curses-menus__ads.htm#ref_279_27">Description</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_272_14">Description</A></span> (<span class="symbol"><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_272_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Description</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_270_26" HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_234_16">Descname</A></span> (<span class="symbol"><A NAME="ref_234_26" HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Descname, "item_description");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_278_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_279_27">Description</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_278_14">Description</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_272_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Description</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_272_14">Description</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_276_13" HREF="terminal_interface-curses-menus__ads.htm#ref_282_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-menus__ads.htm#ref_282_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_240_13" HREF="terminal_interface-curses-menus__ads.htm#ref_276_14">Description</A></span> (<span class="symbol"><A NAME="ref_240_26" HREF="terminal_interface-curses-menus__ads.htm#ref_276_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_278_26" HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_242_16">Descname</A></span> (<span class="symbol"><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Descname, "item_description");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_282_27">Itm</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_282_14">Description</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_284_14" HREF="terminal_interface-curses-menus__ads.htm#ref_292_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_284_27" HREF="terminal_interface-curses-menus__ads.htm#ref_292_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_285_27" HREF="terminal_interface-curses-menus__ads.htm#ref_293_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_242_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_276_27">Itm</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_276_14">Description</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_248_14" HREF="terminal_interface-curses-menus__ads.htm#ref_286_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_248_27" HREF="terminal_interface-curses-menus__ads.htm#ref_286_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_249_27" HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_287_31" HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_288_31" HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_251_16">Set_Curr_Item</A></span> (<span class="symbol"><A NAME="ref_251_31" HREF="terminal_interface-curses-menus__adb.htm#ref_251_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_252_31" HREF="terminal_interface-curses-menus__adb.htm#ref_251_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Curr_Item, "set_current_item");
+
+- <FONT COLOR=red><A NAME="ref_291_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_292_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_293_27">Itm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_291_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_291_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_292_14">Set_Current</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_251_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_286_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Itm</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_286_14">Set_Current</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__ads.htm#ref_298_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__ads.htm#ref_298_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_292_13">Current</A></span> (<span class="symbol"><A NAME="ref_259_22" HREF="terminal_interface-curses-menus__ads.htm#ref_292_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_300_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_300_27" HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_261_16">Curr_Item</A></span> (<span class="symbol"><A NAME="ref_261_27" HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
+ <b>pragma</b> Import (C, Curr_Item, "current_item");
+
+- <FONT COLOR=red><A NAME="ref_303_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_22">Men</A>);
++ <span class="symbol"><A NAME="ref_264_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_292_22">Men</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_303_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_264_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_303_7">Res</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_298_13">Current</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_264_7">Res</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_292_13">Current</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_311_14" HREF="terminal_interface-curses-menus__ads.htm#ref_303_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_311_27" HREF="terminal_interface-curses-menus__ads.htm#ref_303_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_312_27" HREF="terminal_interface-curses-menus__ads.htm#ref_304_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_272_14" HREF="terminal_interface-curses-menus__ads.htm#ref_297_14">Set_Top_Row</A></span> (<span class="symbol"><A NAME="ref_272_27" HREF="terminal_interface-curses-menus__ads.htm#ref_297_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_273_27" HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_314_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_314_28" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_315_28" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_275_16">Set_Toprow</A></span> (<span class="symbol"><A NAME="ref_275_28" HREF="terminal_interface-curses-menus__adb.htm#ref_275_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_276_28" HREF="terminal_interface-curses-menus__adb.htm#ref_275_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Toprow, "set_top_row");
+
+- <FONT COLOR=red><A NAME="ref_318_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_303_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_304_27">Line</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_318_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_318_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_303_14">Set_Top_Row</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_275_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_297_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Line</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_297_14">Set_Top_Row</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_325_13" HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_325_22" HREF="terminal_interface-curses-menus__ads.htm#ref_309_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_283_13" HREF="terminal_interface-curses-menus__ads.htm#ref_303_13">Top_Row</A></span> (<span class="symbol"><A NAME="ref_283_22" HREF="terminal_interface-curses-menus__ads.htm#ref_303_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_327_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_327_24" HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_285_16">Toprow</A></span> (<span class="symbol"><A NAME="ref_285_24" HREF="terminal_interface-curses-menus__adb.htm#ref_285_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Toprow, "top_row");
+
+- <FONT COLOR=red><A NAME="ref_330_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_22">Men</A>);
++ <span class="symbol"><A NAME="ref_288_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_285_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_303_22">Men</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_330_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_288_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_330_7">Res</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Top_Row</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_288_7">Res</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_303_13">Top_Row</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_338_13" HREF="terminal_interface-curses-menus__ads.htm#ref_314_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_338_24" HREF="terminal_interface-curses-menus__ads.htm#ref_314_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive
++ <b>function</b> <span class="symbol"><A NAME="ref_296_13" HREF="terminal_interface-curses-menus__ads.htm#ref_308_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_296_24" HREF="terminal_interface-curses-menus__ads.htm#ref_308_24">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> Positive
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_340_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="ref_340_31" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_298_16">Get_Itemindex</A></span> (<span class="symbol"><A NAME="ref_298_31" HREF="terminal_interface-curses-menus__adb.htm#ref_298_16">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Get_Itemindex, "item_index");
+
+- <FONT COLOR=red><A NAME="ref_343_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_314_24">Itm</A>);
++ <span class="symbol"><A NAME="ref_301_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_298_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_308_24">Itm</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_343_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_301_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_343_7">Res</A>) + Positive'First);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_314_13">Get_Index</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__ads.htm#ref_326_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_351_20" HREF="terminal_interface-curses-menus__ads.htm#ref_326_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_352_20" HREF="terminal_interface-curses-menus__ads.htm#ref_327_20">Post</A></FONT> : Boolean := True)
++ <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_301_7">Res</A>) + Positive'First);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_308_13">Get_Index</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_309_14" HREF="terminal_interface-curses-menus__ads.htm#ref_320_14">Post</A></span> (<span class="symbol"><A NAME="ref_309_20" HREF="terminal_interface-curses-menus__ads.htm#ref_320_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_310_20" HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Post</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_354_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_354_24" HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_312_16">M_Post</A></span> (<span class="symbol"><A NAME="ref_312_24" HREF="terminal_interface-curses-menus__adb.htm#ref_312_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, M_Post, "post_menu");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_356_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="ref_356_26" HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_314_16">M_Unpost</A></span> (<span class="symbol"><A NAME="ref_314_26" HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, M_Unpost, "unpost_menu");
+
+- <FONT COLOR=red><A NAME="ref_359_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_327_20">Post</A> <b>then</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_326_20">Men</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Post</A> <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_312_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_320_20">Men</A>));
+ <b>else</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_326_20">Men</A>);
+- <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_320_20">Men</A>));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_326_14">Post</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-menus__ads.htm#ref_337_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-menus__ads.htm#ref_337_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-menus__ads.htm#ref_338_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>)
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_320_14">Post</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_325_14" HREF="terminal_interface-curses-menus__ads.htm#ref_331_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_325_27" HREF="terminal_interface-curses-menus__ads.htm#ref_331_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_326_27" HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_31" HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_375_31" HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_328_16">Set_Menu_Opts</A></span> (<span class="symbol"><A NAME="ref_328_31" HREF="terminal_interface-curses-menus__adb.htm#ref_328_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_329_31" HREF="terminal_interface-curses-menus__adb.htm#ref_328_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Opts, "set_menu_opts");
+
+- <FONT COLOR=red><A NAME="ref_378_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := MOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_27">Options</A>);
+- <FONT COLOR=red><A NAME="ref_379_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_337_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_378_7">Opt</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_337_14">Set_Options</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_328_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_331_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Options</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_331_14">Set_Options</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__ads.htm#ref_343_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_387_30" HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_388_30" HREF="terminal_interface-curses-menus__ads.htm#ref_344_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_389_30" HREF="terminal_interface-curses-menus__ads.htm#ref_345_30">On</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_336_14" HREF="terminal_interface-curses-menus__ads.htm#ref_337_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_336_30" HREF="terminal_interface-curses-menus__ads.htm#ref_337_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_337_30" HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_338_30" HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_391_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_391_30" HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_392_30" HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_340_16">Menu_Opts_On</A></span> (<span class="symbol"><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_341_30" HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Menu_Opts_On, "menu_opts_on");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_394_16">Menu_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_394_31" HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_395_31" HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_343_16">Menu_Opts_Off</A></span> (<span class="symbol"><A NAME="ref_343_31" HREF="terminal_interface-curses-menus__adb.htm#ref_343_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_344_31" HREF="terminal_interface-curses-menus__adb.htm#ref_343_16">Opt</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Menu_Opts_Off, "menu_opts_off");
+
+- <FONT COLOR=red><A NAME="ref_398_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := MOS_2_CInt (<A HREF="terminal_interface-curses-menus__ads.htm#ref_344_30">Options</A>);
+- <FONT COLOR=red><A NAME="ref_399_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_345_30">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_337_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Options</A>));
+ <b>else</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_343_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_343_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_337_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Options</A>));
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_343_14">Switch_Options</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_337_14">Switch_Options</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__ads.htm#ref_351_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_411_27" HREF="terminal_interface-curses-menus__ads.htm#ref_351_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-menus__ads.htm#ref_352_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_355_14" HREF="terminal_interface-curses-menus__ads.htm#ref_345_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_355_27" HREF="terminal_interface-curses-menus__ads.htm#ref_345_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_356_27" HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_414_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_414_27" HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_358_16">Menu_Opts</A></span> (<span class="symbol"><A NAME="ref_358_27" HREF="terminal_interface-curses-menus__adb.htm#ref_358_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>;
+ <b>pragma</b> Import (C, Menu_Opts, "menu_opts");
+
+- <FONT COLOR=red><A NAME="ref_417_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_351_27">Men</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_352_27">Options</A> := CInt_2_MOS (<A HREF="terminal_interface-curses-menus__adb.htm#ref_417_7">Res</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_14">Get_Options</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_358_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_345_27">Men</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_345_14">Get_Options</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_422_13" HREF="terminal_interface-curses-menus__ads.htm#ref_356_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-menus__ads.htm#ref_356_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_365_13" HREF="terminal_interface-curses-menus__ads.htm#ref_350_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_365_26" HREF="terminal_interface-curses-menus__ads.htm#ref_350_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_424_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_367_7">Mos</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_356_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>);
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_356_13">Get_Options</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-menus__ads.htm#ref_365_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__ads.htm#ref_365_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__ads.htm#ref_366_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_345_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_350_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_367_7">Mos</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_367_7">Mos</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_350_13">Get_Options</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_373_14" HREF="terminal_interface-curses-menus__ads.htm#ref_359_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_373_26" HREF="terminal_interface-curses-menus__ads.htm#ref_359_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_374_26" HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_433_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_433_30" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_434_30" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_376_16">Set_Menu_Win</A></span> (<span class="symbol"><A NAME="ref_376_30" HREF="terminal_interface-curses-menus__adb.htm#ref_376_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_377_30" HREF="terminal_interface-curses-menus__adb.htm#ref_376_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Win, "set_menu_win");
+
+- <FONT COLOR=red><A NAME="ref_437_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_365_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_366_26">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_437_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_437_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_365_14">Set_Window</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_376_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_359_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Win</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_359_14">Set_Window</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_444_13" HREF="terminal_interface-curses-menus__ads.htm#ref_371_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_444_25" HREF="terminal_interface-curses-menus__ads.htm#ref_371_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_384_13" HREF="terminal_interface-curses-menus__ads.htm#ref_365_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_384_25" HREF="terminal_interface-curses-menus__ads.htm#ref_365_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_446_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_446_26" HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_386_16">Menu_Win</A></span> (<span class="symbol"><A NAME="ref_386_26" HREF="terminal_interface-curses-menus__adb.htm#ref_386_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Menu_Win, "menu_win");
+
+- <FONT COLOR=red><A NAME="ref_449_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_25">Men</A>);
++ <span class="symbol"><A NAME="ref_389_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_386_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_365_25">Men</A>);
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_371_13">Get_Window</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_389_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_365_13">Get_Window</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_454_14" HREF="terminal_interface-curses-menus__ads.htm#ref_376_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_454_30" HREF="terminal_interface-curses-menus__ads.htm#ref_376_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_455_30" HREF="terminal_interface-curses-menus__ads.htm#ref_377_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_394_14" HREF="terminal_interface-curses-menus__ads.htm#ref_370_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_394_30" HREF="terminal_interface-curses-menus__ads.htm#ref_370_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_395_30" HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_457_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_457_30" HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_458_30" HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_397_16">Set_Menu_Sub</A></span> (<span class="symbol"><A NAME="ref_397_30" HREF="terminal_interface-curses-menus__adb.htm#ref_397_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_398_30" HREF="terminal_interface-curses-menus__adb.htm#ref_397_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Sub, "set_menu_sub");
+
+- <FONT COLOR=red><A NAME="ref_461_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_376_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_377_30">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_461_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_461_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_376_14">Set_Sub_Window</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_397_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_370_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Win</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_370_14">Set_Sub_Window</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_468_13" HREF="terminal_interface-curses-menus__ads.htm#ref_382_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_468_29" HREF="terminal_interface-curses-menus__ads.htm#ref_382_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_405_13" HREF="terminal_interface-curses-menus__ads.htm#ref_376_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_405_29" HREF="terminal_interface-curses-menus__ads.htm#ref_376_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_470_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_470_26" HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_407_16">Menu_Sub</A></span> (<span class="symbol"><A NAME="ref_407_26" HREF="terminal_interface-curses-menus__adb.htm#ref_407_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Menu_Sub, "menu_sub");
+
+- <FONT COLOR=red><A NAME="ref_473_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_29">Men</A>);
++ <span class="symbol"><A NAME="ref_410_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_407_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_376_29">Men</A>);
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_473_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_382_13">Get_Sub_Window</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_410_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_376_13">Get_Sub_Window</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses-menus__ads.htm#ref_387_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_478_21" HREF="terminal_interface-curses-menus__ads.htm#ref_387_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_479_21" HREF="terminal_interface-curses-menus__ads.htm#ref_388_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_480_21" HREF="terminal_interface-curses-menus__ads.htm#ref_389_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_482_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_483_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_483_25" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_484_25" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_484_29" HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">Xp</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_482_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_415_14" HREF="terminal_interface-curses-menus__ads.htm#ref_381_14">Scale</A></span> (<span class="symbol"><A NAME="ref_415_21" HREF="terminal_interface-curses-menus__ads.htm#ref_381_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_416_21" HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_417_21" HREF="terminal_interface-curses-menus__ads.htm#ref_383_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>)
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_419_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_420_16">M_Scale</A></span> (<span class="symbol"><A NAME="ref_420_25" HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_421_25" HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">Yp</A></span>, <span class="symbol"><A NAME="ref_421_29" HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">Xp</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_419_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, M_Scale, "scale_menu");
+
+- <FONT COLOR=red><A NAME="ref_487_7">X</A></FONT>, <FONT COLOR=red><A NAME="ref_487_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_488_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_387_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>'<b>Access</b>);
++ <span class="symbol"><A NAME="ref_424_7">X</A></span>, <span class="symbol"><A NAME="ref_424_10">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_488_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_488_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_388_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>);
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_389_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_387_14">Scale</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses-menus__ads.htm#ref_398_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_497_31" HREF="terminal_interface-curses-menus__ads.htm#ref_398_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_420_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_381_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">X</A>'<b>Access</b>));
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_424_10">Y</A>);
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_383_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">X</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_381_14">Scale</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_431_14" HREF="terminal_interface-curses-menus__ads.htm#ref_392_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_431_31" HREF="terminal_interface-curses-menus__ads.htm#ref_392_31">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_499_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_499_33" HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_433_16">Pos_Menu_Cursor</A></span> (<span class="symbol"><A NAME="ref_433_33" HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Pos_Menu_Cursor, "pos_menu_cursor");
+
+- <FONT COLOR=red><A NAME="ref_502_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_398_31">Men</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_502_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_502_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_398_14">Position_Cursor</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_392_31">Men</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_392_14">Position_Cursor</A>;
+
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_510_24" HREF="terminal_interface-curses-menus__ads.htm#ref_407_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_511_24" HREF="terminal_interface-curses-menus__ads.htm#ref_408_24">Mark</A></FONT> : String)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_513_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_514_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_514_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_515_26" HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_513_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_441_14" HREF="terminal_interface-curses-menus__ads.htm#ref_401_14">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_441_24" HREF="terminal_interface-curses-menus__ads.htm#ref_401_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_442_24" HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Mark</A></span> : String)
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_444_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
++ <b>function</b> <span class="symbol"><A NAME="ref_445_16">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_445_26" HREF="terminal_interface-curses-menus__adb.htm#ref_445_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_446_26" HREF="terminal_interface-curses-menus__adb.htm#ref_445_16">Mark</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_444_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Mark, "set_menu_mark");
+
+- <FONT COLOR=red><A NAME="ref_518_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_408_24">Mark</A>'Length);
+- <FONT COLOR=red><A NAME="ref_519_7">Len</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_520_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_408_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_519_7">Len</A>);
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_407_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>'First)'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Set_Mark</A>;
++ <span class="symbol"><A NAME="ref_449_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Mark</A>'Length);
++ <span class="symbol"><A NAME="ref_450_7">Len</A></span> : size_t;
++ <b>begin</b>
++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_450_7">Len</A>);
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_445_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_401_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">Txt</A>'First)'<b>Access</b>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_401_14">Set_Mark</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_529_14" HREF="terminal_interface-curses-menus__ads.htm#ref_413_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_529_20" HREF="terminal_interface-curses-menus__ads.htm#ref_413_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_530_20" HREF="terminal_interface-curses-menus__ads.htm#ref_414_20">Mark</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_456_14" HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Mark</A></span> (<span class="symbol"><A NAME="ref_456_20" HREF="terminal_interface-curses-menus__ads.htm#ref_407_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_457_20" HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Mark</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_532_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_532_31" HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_459_16">Get_Menu_Mark</A></span> (<span class="symbol"><A NAME="ref_459_31" HREF="terminal_interface-curses-menus__adb.htm#ref_459_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Get_Menu_Mark, "menu_mark");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_413_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_414_20">Mark</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_413_14">Mark</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_459_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_407_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Mark</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Mark</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_538_13" HREF="terminal_interface-curses-menus__ads.htm#ref_417_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_538_19" HREF="terminal_interface-curses-menus__ads.htm#ref_417_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_465_13" HREF="terminal_interface-curses-menus__ads.htm#ref_411_14">Mark</A></span> (<span class="symbol"><A NAME="ref_465_19" HREF="terminal_interface-curses-menus__ads.htm#ref_411_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_540_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_540_31" HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_467_16">Get_Menu_Mark</A></span> (<span class="symbol"><A NAME="ref_467_31" HREF="terminal_interface-curses-menus__adb.htm#ref_467_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Get_Menu_Mark, "menu_mark");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_417_20">Men</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_417_14">Mark</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_467_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_411_20">Men</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_411_14">Mark</A>;
+
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_547_14" HREF="terminal_interface-curses-menus__ads.htm#ref_427_14">Set_Foreground</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_548_7" HREF="terminal_interface-curses-menus__ads.htm#ref_428_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_549_7" HREF="terminal_interface-curses-menus__ads.htm#ref_429_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_550_7" HREF="terminal_interface-curses-menus__ads.htm#ref_430_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses-menus__ads.htm#ref_421_14">Set_Foreground</A></span>
++ (<span class="symbol"><A NAME="ref_475_7" HREF="terminal_interface-curses-menus__ads.htm#ref_422_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_552_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_552_31" HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_553_31" HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_479_16">Set_Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_479_31" HREF="terminal_interface-curses-menus__adb.htm#ref_479_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_480_31" HREF="terminal_interface-curses-menus__adb.htm#ref_479_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Fore, "set_menu_fore");
+
+- <FONT COLOR=red><A NAME="ref_556_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_430_7">Color</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_429_7">Fore</A>);
+- <FONT COLOR=red><A NAME="ref_559_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_428_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_556_7">Ch</A>));
++ <span class="symbol"><A NAME="ref_483_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Color</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Fore</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_427_14">Set_Foreground</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_479_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_422_7">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_7">Ch</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_421_14">Set_Foreground</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_566_14" HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_566_26" HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_567_26" HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_490_14" HREF="terminal_interface-curses-menus__ads.htm#ref_429_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_490_26" HREF="terminal_interface-curses-menus__ads.htm#ref_429_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_491_26" HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_569_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27" HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_493_16">Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_493_27" HREF="terminal_interface-curses-menus__adb.htm#ref_493_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Menu_Fore, "menu_fore");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Fore</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_493_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_429_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_429_14">Foreground</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__ads.htm#ref_440_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_575_26" HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_576_26" HREF="terminal_interface-curses-menus__ads.htm#ref_441_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_577_26" HREF="terminal_interface-curses-menus__ads.htm#ref_442_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_499_14" HREF="terminal_interface-curses-menus__ads.htm#ref_434_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_499_26" HREF="terminal_interface-curses-menus__ads.htm#ref_434_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_500_26" HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_501_26" HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_579_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_579_27" HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_503_16">Menu_Fore</A></span> (<span class="symbol"><A NAME="ref_503_27" HREF="terminal_interface-curses-menus__adb.htm#ref_503_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Menu_Fore, "menu_fore");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_441_26">Fore</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_442_26">Color</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_440_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_440_14">Foreground</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses-menus__ads.htm#ref_447_14">Set_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_587_7" HREF="terminal_interface-curses-menus__ads.htm#ref_448_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_588_7" HREF="terminal_interface-curses-menus__ads.htm#ref_449_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_589_7" HREF="terminal_interface-curses-menus__ads.htm#ref_450_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Fore</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_503_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_434_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Color</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_503_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_434_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_434_14">Foreground</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_441_14">Set_Background</A></span>
++ (<span class="symbol"><A NAME="ref_511_7" HREF="terminal_interface-curses-menus__ads.htm#ref_442_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_512_7" HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_513_7" HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_591_31" HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_592_31" HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_515_16">Set_Menu_Back</A></span> (<span class="symbol"><A NAME="ref_515_31" HREF="terminal_interface-curses-menus__adb.htm#ref_515_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_516_31" HREF="terminal_interface-curses-menus__adb.htm#ref_515_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Back, "set_menu_back");
+
+- <FONT COLOR=red><A NAME="ref_595_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_450_7">Color</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_449_7">Back</A>);
+- <FONT COLOR=red><A NAME="ref_598_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_448_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_595_7">Ch</A>));
++ <span class="symbol"><A NAME="ref_519_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Color</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Back</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_598_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_598_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_447_14">Set_Background</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_515_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_442_7">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_519_7">Ch</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_441_14">Set_Background</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_605_14" HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_605_26" HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_606_26" HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_526_14" HREF="terminal_interface-curses-menus__ads.htm#ref_449_14">Background</A></span> (<span class="symbol"><A NAME="ref_526_26" HREF="terminal_interface-curses-menus__ads.htm#ref_449_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_527_26" HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_608_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_608_27" HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_529_16">Menu_Back</A></span> (<span class="symbol"><A NAME="ref_529_27" HREF="terminal_interface-curses-menus__adb.htm#ref_529_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Menu_Back, "menu_back");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A> := Chtype_To_AttrChar (<A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Back</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_529_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_449_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_449_14">Background</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_614_14" HREF="terminal_interface-curses-menus__ads.htm#ref_460_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses-menus__ads.htm#ref_461_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_616_26" HREF="terminal_interface-curses-menus__ads.htm#ref_462_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_535_14" HREF="terminal_interface-curses-menus__ads.htm#ref_454_14">Background</A></span> (<span class="symbol"><A NAME="ref_535_26" HREF="terminal_interface-curses-menus__ads.htm#ref_454_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_536_26" HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_618_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_618_27" HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_539_16">Menu_Back</A></span> (<span class="symbol"><A NAME="ref_539_27" HREF="terminal_interface-curses-menus__adb.htm#ref_539_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Menu_Back, "menu_back");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_461_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_462_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_460_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_460_14">Background</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_625_14" HREF="terminal_interface-curses-menus__ads.htm#ref_467_14">Set_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_625_24" HREF="terminal_interface-curses-menus__ads.htm#ref_468_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_626_24" HREF="terminal_interface-curses-menus__ads.htm#ref_469_7">Grey</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_627_24" HREF="terminal_interface-curses-menus__ads.htm#ref_470_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Back</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_539_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_454_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Color</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_539_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_454_26">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_454_14">Background</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_546_14" HREF="terminal_interface-curses-menus__ads.htm#ref_461_14">Set_Grey</A></span> (<span class="symbol"><A NAME="ref_546_24" HREF="terminal_interface-curses-menus__ads.htm#ref_462_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_547_24" HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Grey</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_548_24" HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_629_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_629_31" HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_630_31" HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_550_16">Set_Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_550_31" HREF="terminal_interface-curses-menus__adb.htm#ref_550_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_551_31" HREF="terminal_interface-curses-menus__adb.htm#ref_550_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Grey, "set_menu_grey");
+
+- <FONT COLOR=red><A NAME="ref_633_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_470_7">Color</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_469_7">Grey</A>);
++ <span class="symbol"><A NAME="ref_554_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Color</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Grey</A>);
+
+- <FONT COLOR=red><A NAME="ref_637_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_468_7">Men</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses-menus__adb.htm#ref_633_7">Ch</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_637_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_637_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_467_14">Set_Grey</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_550_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_462_7">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_554_7">Ch</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_461_14">Set_Grey</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_644_14" HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_644_20" HREF="terminal_interface-curses-menus__ads.htm#ref_475_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_645_20" HREF="terminal_interface-curses-menus__ads.htm#ref_476_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_562_14" HREF="terminal_interface-curses-menus__ads.htm#ref_469_14">Grey</A></span> (<span class="symbol"><A NAME="ref_562_20" HREF="terminal_interface-curses-menus__ads.htm#ref_469_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_563_20" HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_647_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_647_27" HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_565_16">Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_565_27" HREF="terminal_interface-curses-menus__adb.htm#ref_565_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Menu_Grey, "menu_grey");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_476_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_475_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Grey</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_565_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_469_20">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_469_14">Grey</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_653_14" HREF="terminal_interface-curses-menus__ads.htm#ref_480_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_653_20" HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_654_20" HREF="terminal_interface-curses-menus__ads.htm#ref_482_7">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_655_20" HREF="terminal_interface-curses-menus__ads.htm#ref_483_7">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_571_14" HREF="terminal_interface-curses-menus__ads.htm#ref_474_14">Grey</A></span> (<span class="symbol"><A NAME="ref_571_20" HREF="terminal_interface-curses-menus__ads.htm#ref_475_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_572_20" HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_573_20" HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_657_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_657_27" HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_575_16">Menu_Grey</A></span> (<span class="symbol"><A NAME="ref_575_27" HREF="terminal_interface-curses-menus__adb.htm#ref_575_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Menu_Grey, "menu_grey");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_482_7">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_483_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_481_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_480_14">Grey</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Grey</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_575_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_475_7">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Color</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_575_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_475_7">Men</A>).<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_474_14">Grey</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_664_14" HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_664_33" HREF="terminal_interface-curses-menus__ads.htm#ref_488_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_665_33" HREF="terminal_interface-curses-menus__ads.htm#ref_489_33">Pad</A></FONT> : Character := Space)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_582_14" HREF="terminal_interface-curses-menus__ads.htm#ref_482_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_582_33" HREF="terminal_interface-curses-menus__ads.htm#ref_482_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_583_33" HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Pad</A></span> : Character := Space)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_667_30" HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_668_30" HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_585_16">Set_Menu_Pad</A></span> (<span class="symbol"><A NAME="ref_585_30" HREF="terminal_interface-curses-menus__adb.htm#ref_585_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_586_30" HREF="terminal_interface-curses-menus__adb.htm#ref_585_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Pad, "set_menu_pad");
+
+- <FONT COLOR=red><A NAME="ref_671_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_488_33">Men</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_489_33">Pad</A>)));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_671_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_671_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Set_Pad_Character</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_585_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_482_33">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Pad</A>))));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_482_14">Set_Pad_Character</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_679_14" HREF="terminal_interface-curses-menus__ads.htm#ref_494_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_679_29" HREF="terminal_interface-curses-menus__ads.htm#ref_494_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_680_29" HREF="terminal_interface-curses-menus__ads.htm#ref_495_29">Pad</A></FONT> : <b>out</b> Character)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_593_14" HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_593_29" HREF="terminal_interface-curses-menus__ads.htm#ref_488_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_594_29" HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Pad</A></span> : <b>out</b> Character)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_682_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_682_26" HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_596_16">Menu_Pad</A></span> (<span class="symbol"><A NAME="ref_596_26" HREF="terminal_interface-curses-menus__adb.htm#ref_596_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Menu_Pad, "menu_pad");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_495_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_494_29">Men</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_494_14">Pad_Character</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_688_14" HREF="terminal_interface-curses-menus__ads.htm#ref_504_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_688_27" HREF="terminal_interface-curses-menus__ads.htm#ref_504_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_689_27" HREF="terminal_interface-curses-menus__ads.htm#ref_505_27">Descr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0;
+- <FONT COLOR=red><A NAME="ref_690_27" HREF="terminal_interface-curses-menus__ads.htm#ref_506_27">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0;
+- <FONT COLOR=red><A NAME="ref_691_27" HREF="terminal_interface-curses-menus__ads.htm#ref_507_27">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0)
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#ref_596_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_488_29">Men</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Pad_Character</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_602_14" HREF="terminal_interface-curses-menus__ads.htm#ref_498_14">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_602_27" HREF="terminal_interface-curses-menus__ads.htm#ref_498_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_603_27" HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Descr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> := 0;
++ <span class="symbol"><A NAME="ref_604_27" HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> := 0;
++ <span class="symbol"><A NAME="ref_605_27" HREF="terminal_interface-curses-menus__ads.htm#ref_501_27">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> := 0)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_693_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_693_29" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_694_29" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">D</A></FONT>, <FONT COLOR=red><A NAME="ref_694_32" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_694_35" HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_607_16">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_607_29" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_608_29" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">D</A></span>, <span class="symbol"><A NAME="ref_608_32" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">R</A></span>, <span class="symbol"><A NAME="ref_608_35" HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">C</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Spacing, "set_menu_spacing");
+
+- <FONT COLOR=red><A NAME="ref_697_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_504_27">Men</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_505_27">Descr</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_506_27">Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_507_27">Col</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_697_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_697_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_504_14">Set_Spacing</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_707_14" HREF="terminal_interface-curses-menus__ads.htm#ref_512_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_707_23" HREF="terminal_interface-curses-menus__ads.htm#ref_512_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_708_23" HREF="terminal_interface-curses-menus__ads.htm#ref_513_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_709_23" HREF="terminal_interface-curses-menus__ads.htm#ref_514_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_710_23" HREF="terminal_interface-curses-menus__ads.htm#ref_515_23">Col</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_712_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Get_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_713_29" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_714_29" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">D</A></FONT>, <FONT COLOR=red><A NAME="ref_714_32" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_714_35" HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_712_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_607_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_498_27">Men</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Descr</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_501_27">Col</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_498_14">Set_Spacing</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_618_14" HREF="terminal_interface-curses-menus__ads.htm#ref_506_14">Spacing</A></span> (<span class="symbol"><A NAME="ref_618_23" HREF="terminal_interface-curses-menus__ads.htm#ref_506_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_619_23" HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Descr</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_620_23" HREF="terminal_interface-curses-menus__ads.htm#ref_508_23">Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_621_23" HREF="terminal_interface-curses-menus__ads.htm#ref_509_23">Col</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_623_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_624_16">Get_Spacing</A></span> (<span class="symbol"><A NAME="ref_624_29" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_625_29" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">D</A></span>, <span class="symbol"><A NAME="ref_625_32" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">R</A></span>, <span class="symbol"><A NAME="ref_625_35" HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">C</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_623_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Get_Spacing, "menu_spacing");
+
+- <FONT COLOR=red><A NAME="ref_717_7">D</A></FONT>, <FONT COLOR=red><A NAME="ref_717_10">R</A></FONT>, <FONT COLOR=red><A NAME="ref_717_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_718_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_512_23">Men</A>,
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>'<b>Access</b>,
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>'<b>Access</b>);
++ <span class="symbol"><A NAME="ref_628_7">D</A></span>, <span class="symbol"><A NAME="ref_628_10">R</A></span>, <span class="symbol"><A NAME="ref_628_13">C</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_718_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_718_7">Res</A>);
+- <b>else</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_513_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>);
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_514_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>);
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_515_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_512_14">Spacing</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_732_13" HREF="terminal_interface-curses-menus__ads.htm#ref_524_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses-menus__ads.htm#ref_524_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses-menus__ads.htm#ref_525_26">Text</A></FONT> : String) <b>return</b> Boolean
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_735_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_736_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_736_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_737_29" HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_735_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_624_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_506_23">Men</A>,
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_628_7">D</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_628_10">R</A>'<b>Access</b>,
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_628_13">C</A>'<b>Access</b>));
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_628_7">D</A>);
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_508_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_628_10">R</A>);
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_509_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_628_13">C</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_506_14">Spacing</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_639_13" HREF="terminal_interface-curses-menus__ads.htm#ref_518_13">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_639_26" HREF="terminal_interface-curses-menus__ads.htm#ref_518_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_640_26" HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Text</A></span> : String) <b>return</b> Boolean
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_642_12">Char_Ptr</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char;
++ <b>function</b> <span class="symbol"><A NAME="ref_643_16">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_643_29" HREF="terminal_interface-curses-menus__adb.htm#ref_643_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_644_29" HREF="terminal_interface-curses-menus__adb.htm#ref_643_16">Pattern</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_642_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Pattern, "set_menu_pattern");
+
+- <FONT COLOR=red><A NAME="ref_740_7">S</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_525_26">Text</A>'Length);
+- <FONT COLOR=red><A NAME="ref_741_7">L</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_742_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+- <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_525_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_741_7">L</A>);
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_524_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>'First)'<b>Access</b>);
+- <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> <b>is</b>
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>return</b> False;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> =&gt; <b>return</b> True;
+- <b>when</b> <b>others</b> =&gt;
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A>);
++ <span class="symbol"><A NAME="ref_647_7">S</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Text</A>'Length);
++ <span class="symbol"><A NAME="ref_648_7">L</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_649_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
++ <b>begin</b>
++ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_647_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_648_7">L</A>);
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_643_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_518_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_647_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_647_7">S</A>'First)'<b>Access</b>);
++ <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_No_Match</A> =&gt;
+ <b>return</b> False;
++ <b>when</b> <b>others</b> =&gt;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_649_7">Res</A>);
++ <b>return</b> True;
+ <b>end</b> <b>case</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_524_13">Set_Pattern</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_518_13">Set_Pattern</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_755_14" HREF="terminal_interface-curses-menus__ads.htm#ref_531_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_755_23" HREF="terminal_interface-curses-menus__ads.htm#ref_531_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_756_23" HREF="terminal_interface-curses-menus__ads.htm#ref_532_23">Text</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_662_14" HREF="terminal_interface-curses-menus__ads.htm#ref_525_14">Pattern</A></span> (<span class="symbol"><A NAME="ref_662_23" HREF="terminal_interface-curses-menus__ads.htm#ref_525_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_663_23" HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Text</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_758_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_758_29" HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_665_16">Get_Pattern</A></span> (<span class="symbol"><A NAME="ref_665_29" HREF="terminal_interface-curses-menus__adb.htm#ref_665_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_56_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, Get_Pattern, "menu_pattern");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_531_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_532_23">Text</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_531_14">Pattern</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_764_14" HREF="terminal_interface-curses-menus__ads.htm#ref_541_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_764_26" HREF="terminal_interface-curses-menus__ads.htm#ref_541_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_765_26" HREF="terminal_interface-curses-menus__ads.htm#ref_542_26">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_766_26" HREF="terminal_interface-curses-menus__ads.htm#ref_543_26">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_768_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_768_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_769_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_770_30" HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_665_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_525_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Text</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_525_14">Pattern</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_671_14" HREF="terminal_interface-curses-menus__ads.htm#ref_535_14">Set_Format</A></span> (<span class="symbol"><A NAME="ref_671_26" HREF="terminal_interface-curses-menus__ads.htm#ref_535_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_672_26" HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_673_26" HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_675_16">Set_Menu_Fmt</A></span> (<span class="symbol"><A NAME="ref_675_30" HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_676_30" HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_677_30" HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Fmt, "set_menu_format");
+
+- <FONT COLOR=red><A NAME="ref_773_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_541_26">Men</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_542_26">Lines</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_543_26">Columns</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_773_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_773_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_541_14">Set_Format</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-menus__ads.htm#ref_555_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_782_22" HREF="terminal_interface-curses-menus__ads.htm#ref_555_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_783_22" HREF="terminal_interface-curses-menus__ads.htm#ref_556_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_784_22" HREF="terminal_interface-curses-menus__ads.htm#ref_557_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_786_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_787_16">Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_787_26" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_788_26" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_788_29" HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_786_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_675_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_535_26">Men</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Lines</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Columns</A>)));
++
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_535_14">Set_Format</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_687_14" HREF="terminal_interface-curses-menus__ads.htm#ref_549_14">Format</A></span> (<span class="symbol"><A NAME="ref_687_22" HREF="terminal_interface-curses-menus__ads.htm#ref_549_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_688_22" HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_689_22" HREF="terminal_interface-curses-menus__ads.htm#ref_551_22">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>)
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_691_12">C_Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_692_16">Menu_Fmt</A></span> (<span class="symbol"><A NAME="ref_692_26" HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_693_26" HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">Y</A></span>, <span class="symbol"><A NAME="ref_693_29" HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">X</A></span> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_691_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Menu_Fmt, "menu_format");
+
+- <FONT COLOR=red><A NAME="ref_791_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_791_10">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_792_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_555_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>'<b>Access</b>);
++ <span class="symbol"><A NAME="ref_696_7">L</A></span>, <span class="symbol"><A NAME="ref_696_10">C</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_792_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_792_7">Res</A>);
+- <b>else</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_556_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>);
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_557_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_555_14">Format</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_802_34" HREF="terminal_interface-curses-menus__ads.htm#ref_569_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_803_34" HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>)
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_692_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_549_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_696_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_696_10">C</A>'<b>Access</b>));
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_696_7">L</A>);
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_551_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_696_10">C</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_549_14">Format</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_703_14" HREF="terminal_interface-curses-menus__ads.htm#ref_563_14">Set_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_703_34" HREF="terminal_interface-curses-menus__ads.htm#ref_563_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_704_34" HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_805_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_805_31" HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_806_31" HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_706_16">Set_Item_Init</A></span> (<span class="symbol"><A NAME="ref_706_31" HREF="terminal_interface-curses-menus__adb.htm#ref_706_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_707_31" HREF="terminal_interface-curses-menus__adb.htm#ref_706_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Item_Init, "set_item_init");
+
+- <FONT COLOR=red><A NAME="ref_809_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_569_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_809_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_809_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Init_Hook</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_706_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_563_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_563_14">Set_Item_Init_Hook</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_816_14" HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_816_34" HREF="terminal_interface-curses-menus__ads.htm#ref_575_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_817_34" HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_714_14" HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_714_34" HREF="terminal_interface-curses-menus__ads.htm#ref_569_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_715_34" HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_819_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_819_31" HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_820_31" HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_717_16">Set_Item_Term</A></span> (<span class="symbol"><A NAME="ref_717_31" HREF="terminal_interface-curses-menus__adb.htm#ref_717_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_718_31" HREF="terminal_interface-curses-menus__adb.htm#ref_717_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Item_Term, "set_item_term");
+
+- <FONT COLOR=red><A NAME="ref_823_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_575_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_823_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_823_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Item_Term_Hook</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_569_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Term_Hook</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_830_14" HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_830_34" HREF="terminal_interface-curses-menus__ads.htm#ref_581_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_831_34" HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_725_14" HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_725_34" HREF="terminal_interface-curses-menus__ads.htm#ref_575_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_726_34" HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_833_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_833_31" HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_834_31" HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_728_16">Set_Menu_Init</A></span> (<span class="symbol"><A NAME="ref_728_31" HREF="terminal_interface-curses-menus__adb.htm#ref_728_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_729_31" HREF="terminal_interface-curses-menus__adb.htm#ref_728_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Init, "set_menu_init");
+
+- <FONT COLOR=red><A NAME="ref_837_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_581_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_837_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_837_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Init_Hook</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_728_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_575_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Menu_Init_Hook</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_844_14" HREF="terminal_interface-curses-menus__ads.htm#ref_587_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_844_34" HREF="terminal_interface-curses-menus__ads.htm#ref_587_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_845_34" HREF="terminal_interface-curses-menus__ads.htm#ref_588_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_736_14" HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_736_34" HREF="terminal_interface-curses-menus__ads.htm#ref_581_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_737_34" HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_847_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_847_31" HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_848_31" HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_739_16">Set_Menu_Term</A></span> (<span class="symbol"><A NAME="ref_739_31" HREF="terminal_interface-curses-menus__adb.htm#ref_739_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_740_31" HREF="terminal_interface-curses-menus__adb.htm#ref_739_16">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Menu_Term, "set_menu_term");
+
+- <FONT COLOR=red><A NAME="ref_851_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_587_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_588_34">Proc</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_851_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_851_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_587_14">Set_Menu_Term_Hook</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_739_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_581_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Proc</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Term_Hook</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_858_13" HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_858_33" HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_747_13" HREF="terminal_interface-curses-menus__ads.htm#ref_587_13">Get_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_747_33" HREF="terminal_interface-curses-menus__ads.htm#ref_587_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_860_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_860_27" HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_749_16">Item_Init</A></span> (<span class="symbol"><A NAME="ref_749_27" HREF="terminal_interface-curses-menus__adb.htm#ref_749_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, Item_Init, "item_init");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Init_Hook</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_749_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_587_33">Men</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_587_13">Get_Item_Init_Hook</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_866_13" HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_866_33" HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_755_13" HREF="terminal_interface-curses-menus__ads.htm#ref_592_13">Get_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_755_33" HREF="terminal_interface-curses-menus__ads.htm#ref_592_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_868_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_868_27" HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_757_16">Item_Term</A></span> (<span class="symbol"><A NAME="ref_757_27" HREF="terminal_interface-curses-menus__adb.htm#ref_757_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, Item_Term, "item_term");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Item_Term_Hook</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_757_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_592_33">Men</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_592_13">Get_Item_Term_Hook</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_874_13" HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_874_33" HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_763_13" HREF="terminal_interface-curses-menus__ads.htm#ref_597_13">Get_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_763_33" HREF="terminal_interface-curses-menus__ads.htm#ref_597_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_876_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_876_27" HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_765_16">Menu_Init</A></span> (<span class="symbol"><A NAME="ref_765_27" HREF="terminal_interface-curses-menus__adb.htm#ref_765_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, Menu_Init, "menu_init");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Init_Hook</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_765_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_597_33">Men</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_597_13">Get_Menu_Init_Hook</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_882_13" HREF="terminal_interface-curses-menus__ads.htm#ref_608_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_882_33" HREF="terminal_interface-curses-menus__ads.htm#ref_608_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_771_13" HREF="terminal_interface-curses-menus__ads.htm#ref_602_13">Get_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_771_33" HREF="terminal_interface-curses-menus__ads.htm#ref_602_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_884_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_884_27" HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_773_16">Menu_Term</A></span> (<span class="symbol"><A NAME="ref_773_27" HREF="terminal_interface-curses-menus__adb.htm#ref_773_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, Menu_Term, "menu_term");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_608_33">Men</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_608_13">Get_Menu_Term_Hook</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_890_24" HREF="terminal_interface-curses-menus__ads.htm#ref_617_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_891_24" HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_773_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_602_33">Men</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_602_13">Get_Menu_Term_Hook</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_779_14" HREF="terminal_interface-curses-menus__ads.htm#ref_611_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_779_24" HREF="terminal_interface-curses-menus__ads.htm#ref_611_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_780_24" HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_893_27" HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_894_27" HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_782_16">Set_Items</A></span> (<span class="symbol"><A NAME="ref_782_27" HREF="terminal_interface-curses-menus__adb.htm#ref_782_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_783_27" HREF="terminal_interface-curses-menus__adb.htm#ref_782_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Set_Items, "set_menu_items");
+
+- <FONT COLOR=red><A NAME="ref_897_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_617_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_618_24">Items</A>.<b>all</b>'Address);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A>);
+- <b>end</b> <b>if</b>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_782_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_611_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Items</A>.<b>all</b>'Address));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_611_14">Redefine</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_910_13" HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_910_25" HREF="terminal_interface-curses-menus__ads.htm#ref_633_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural
++ <b>function</b> <span class="symbol"><A NAME="ref_795_13" HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Item_Count</A></span> (<span class="symbol"><A NAME="ref_795_25" HREF="terminal_interface-curses-menus__ads.htm#ref_627_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> Natural
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_912_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_912_23" HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_797_16">Count</A></span> (<span class="symbol"><A NAME="ref_797_23" HREF="terminal_interface-curses-menus__adb.htm#ref_797_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Count, "item_count");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_633_25">Men</A>));
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A>;
++ <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_797_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_25">Men</A>));
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Item_Count</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_918_13" HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_918_20" HREF="terminal_interface-curses-menus__ads.htm#ref_627_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_919_20" HREF="terminal_interface-curses-menus__ads.htm#ref_628_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_803_13" HREF="terminal_interface-curses-menus__ads.htm#ref_621_13">Items</A></span> (<span class="symbol"><A NAME="ref_803_20" HREF="terminal_interface-curses-menus__ads.htm#ref_621_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_804_20" HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>
+ <b>is</b>
+ <b>use</b> I_Array;
+
+- <b>function</b> C_Mitems (<FONT COLOR=red><A NAME="ref_923_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Pointer;
++ <b>function</b> C_Mitems (<span class="symbol"><A NAME="ref_808_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> Pointer;
+ <b>pragma</b> Import (C, C_Mitems, "menu_items");
+
+- P : Pointer := C_Mitems (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_20">Men</A>);
++ P : Pointer := C_Mitems (<A HREF="terminal_interface-curses-menus__ads.htm#ref_621_20">Men</A>);
+ <b>begin</b>
+- <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_20">Index</A> &gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_20">Men</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <b>if</b> P = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Index</A> &gt; <A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_621_20">Men</A>) <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>else</b>
+- P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_628_20">Index</A>) - 1);
++ P := P + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Index</A>) - 1);
+ <b>return</b> P.<b>all</b>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Items</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_621_13">Items</A>;
+
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_937_13" HREF="terminal_interface-curses-menus__ads.htm#ref_642_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_937_21" HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_822_13" HREF="terminal_interface-curses-menus__ads.htm#ref_636_13">Create</A></span> (<span class="symbol"><A NAME="ref_822_21" HREF="terminal_interface-curses-menus__ads.htm#ref_636_21">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_939_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="ref_939_25" HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_824_16">Newmenu</A></span> (<span class="symbol"><A NAME="ref_824_25" HREF="terminal_interface-curses-menus__adb.htm#ref_824_16">Items</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
+ <b>pragma</b> Import (C, Newmenu, "new_menu");
+
+- <FONT COLOR=red><A NAME="ref_942_7">M</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_827_7">M</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_636_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_636_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_636_21">Items</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_636_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_642_21">Items</A>.<b>all</b>'Address);
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_116_4">Menu_Exception</A>;
++ <A HREF="terminal_interface-curses-menus__adb.htm#ref_827_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_824_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_636_21">Items</A>.<b>all</b>'Address);
++ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_827_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Menu</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_111_4">Menu_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_827_7">M</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_642_13">Create</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_636_13">Create</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_956_14" HREF="terminal_interface-curses-menus__ads.htm#ref_649_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_956_22" HREF="terminal_interface-curses-menus__ads.htm#ref_649_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_841_14" HREF="terminal_interface-curses-menus__ads.htm#ref_643_14">Delete</A></span> (<span class="symbol"><A NAME="ref_841_22" HREF="terminal_interface-curses-menus__ads.htm#ref_643_22">Men</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_958_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_958_22" HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_843_16">Free</A></span> (<span class="symbol"><A NAME="ref_843_22" HREF="terminal_interface-curses-menus__adb.htm#ref_843_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Free, "free_menu");
+
+- <FONT COLOR=red><A NAME="ref_961_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_649_22">Men</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_961_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_961_7">Res</A>);
+- <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_649_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_649_14">Delete</A>;
+-
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_970_13" HREF="terminal_interface-curses-menus__ads.htm#ref_664_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_970_21" HREF="terminal_interface-curses-menus__ads.htm#ref_664_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_971_21" HREF="terminal_interface-curses-menus__ads.htm#ref_665_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_9">Driver_Result</A>
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_843_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_643_22">Men</A>));
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_643_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Menu</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_643_14">Delete</A>;
++
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_852_13" HREF="terminal_interface-curses-menus__ads.htm#ref_658_13">Driver</A></span> (<span class="symbol"><A NAME="ref_852_21" HREF="terminal_interface-curses-menus__ads.htm#ref_658_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_853_21" HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_652_9">Driver_Result</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_973_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_973_24" HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_974_24" HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_855_16">Driver</A></span> (<span class="symbol"><A NAME="ref_855_24" HREF="terminal_interface-curses-menus__adb.htm#ref_855_16">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_856_24" HREF="terminal_interface-curses-menus__adb.htm#ref_855_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A>;
+ <b>pragma</b> Import (C, Driver, "menu_driver");
+
+- <FONT COLOR=red><A NAME="ref_977_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_664_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_665_21">Key</A>));
++ <span class="symbol"><A NAME="ref_859_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_9">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_855_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_658_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Key</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+- <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A> <b>is</b>
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_660_27">Unknown_Request</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_661_27">No_Match</A>;
+- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> |
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> =&gt; <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_659_27">Request_Denied</A>;
+- <b>when</b> <b>others</b> =&gt;
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A>);
+- <b>end</b> <b>case</b>;
+- <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_27">Menu_Ok</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_664_13">Driver</A>;
++ <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_859_7">R</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_7">E_Unknown_Command</A> =&gt;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_654_27">Unknown_Request</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_77_7">E_No_Match</A> =&gt;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_655_27">No_Match</A>;
++ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_74_7">E_Request_Denied</A> | <A HREF="terminal_interface-curses-aux__ads.htm#ref_76_7">E_Not_Selectable</A> =&gt;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_27">Request_Denied</A>;
++ <b>when</b> <b>others</b> =&gt;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_859_7">R</A>);
++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_652_27">Menu_Ok</A>;
++ <b>end</b> <b>case</b>;
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_13">Driver</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_14" HREF="terminal_interface-curses-menus__ads.htm#ref_184_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_992_20" HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>;
+- <FONT COLOR=red><A NAME="ref_993_20" HREF="terminal_interface-curses-menus__ads.htm#ref_185_20">Free_Items</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_874_14" HREF="terminal_interface-curses-menus__ads.htm#ref_178_14">Free</A></span> (<span class="symbol"><A NAME="ref_874_20" HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>;
++ <span class="symbol"><A NAME="ref_875_20" HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">Free_Items</A></span> : Boolean := False)
+ <b>is</b>
+ <b>procedure</b> Release <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+- (Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>);
++ (Item_Array, <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_185_20">Free_Items</A> <b>then</b>
+- <b>for</b> <FONT COLOR=red><A NAME="ref_999_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>'Last - 1) <b>loop</b>
+- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> <b>then</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_207_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>));
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">Free_Items</A> <b>then</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_881_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A>'Last - 1) <b>loop</b>
++ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_881_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A> <b>then</b>
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_201_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_881_14">I</A>));
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>loop</b>;
+ <b>end</b> <b>if</b>;
+- Release (<A HREF="terminal_interface-curses-menus__ads.htm#ref_184_20">IA</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_184_14">Free</A>;
++ Release (<A HREF="terminal_interface-curses-menus__ads.htm#ref_178_20">IA</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_178_14">Free</A>;
+
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1009_13" HREF="terminal_interface-curses-menus__ads.htm#ref_148_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_891_13" HREF="terminal_interface-curses-menus__ads.htm#ref_145_13">Default_Menu_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_356_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_148_13">Default_Menu_Options</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_350_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Menu</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_145_13">Default_Menu_Options</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1015_13" HREF="terminal_interface-curses-menus__ads.htm#ref_172_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_897_13" HREF="terminal_interface-curses-menus__ads.htm#ref_166_13">Default_Item_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_260_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_172_13">Default_Item_Options</A>;
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
++ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_254_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_166_13">Default_Item_Options</A>;
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-menus__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-menus__ads.htm 2011-03-19 23:18:40.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-menus__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,685 +1,691 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-menus.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-menus.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menu --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.28 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 18:35:22 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- menu binding.</EM></FONT>
+-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
+-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Menu --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.31 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:57 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System;
+ <b>with</b> Ada.Characters.Latin_1;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_49_35" HREF="terminal_interface-curses-menus__adb.htm#ref_51_40">Menus</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>);
+- <b>pragma</b> Linker_Options ("-lmenu");
+- <b>pragma</b> Linker_Options ("-lncurses");
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_45_35" HREF="terminal_interface-curses-menus__adb.htm#ref_49_40">Menus</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>);
++ <b>pragma</b> Linker_Options ("-lmenu" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
+
+ Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Item</A></FONT> <b>is</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Menu</A></FONT> <b>is</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_51_9">Item</A></span> <b>is</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_52_9">Menu</A></span> <b>is</b> <b>private</b>;
+
+- <FONT COLOR=green><EM>---------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Interface constants --</EM></FONT>
+- <FONT COLOR=green><EM>---------------------------</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_63_4">Null_Menu</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Menu_Request_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>
+- <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17);
+-
+- <FONT COLOR=green><EM>-- The prefix M_ stands for "Menu Request"</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_69_4">M_Left_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+- <FONT COLOR=red><A NAME="ref_70_4">M_Right_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+- <FONT COLOR=red><A NAME="ref_71_4">M_Up_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+- <FONT COLOR=red><A NAME="ref_72_4">M_Down_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
+- <FONT COLOR=red><A NAME="ref_73_4">M_ScrollUp_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+- <FONT COLOR=red><A NAME="ref_74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+- <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+- <FONT COLOR=red><A NAME="ref_76_4">M_ScrollUp_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+- <FONT COLOR=red><A NAME="ref_77_4">M_First_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+- <FONT COLOR=red><A NAME="ref_78_4">M_Last_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+- <FONT COLOR=red><A NAME="ref_79_4">M_Next_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+- <FONT COLOR=red><A NAME="ref_80_4">M_Previous_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+- <FONT COLOR=red><A NAME="ref_81_4">M_Toggle_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+- <FONT COLOR=red><A NAME="ref_82_4">M_Clear_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+- <FONT COLOR=red><A NAME="ref_83_4">M_Back_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+- <FONT COLOR=red><A NAME="ref_84_4">M_Next_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
+- <FONT COLOR=red><A NAME="ref_85_4">M_Previous_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
+-
+- <FONT COLOR=green><EM>-- For those who like the old 'C' names for the request codes</EM></FONT>
+- REQ_LEFT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_Left_Item</A>;
+- REQ_RIGHT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Right_Item</A>;
+- REQ_UP_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Up_Item</A>;
+- REQ_DOWN_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_Down_Item</A>;
+- REQ_SCR_ULINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_ScrollUp_Line</A>;
+- REQ_SCR_DLINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_ScrollDown_Line</A>;
+- REQ_SCR_DPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_ScrollDown_Page</A>;
+- REQ_SCR_UPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_ScrollUp_Page</A>;
+- REQ_FIRST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_First_Item</A>;
+- REQ_LAST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Last_Item</A>;
+- REQ_NEXT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Next_Item</A>;
+- REQ_PREV_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Previous_Item</A>;
+- REQ_TOGGLE_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Toggle_Item</A>;
+- REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_82_4">M_Clear_Pattern</A>;
+- REQ_BACK_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_83_4">M_Back_Pattern</A>;
+- REQ_NEXT_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Next_Match</A>;
+- REQ_PREV_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_85_4">M_Previous_Match</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-menus__adb.htm#ref_77_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_77_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>;
+- <FONT COLOR=red><A NAME="ref_107_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Name</A></FONT> : <b>out</b> String);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-menus__adb.htm#ref_86_13">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_109_28" HREF="terminal_interface-curses-menus__adb.htm#ref_86_27">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_12">Menu_Request_Code</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
+-
+- <FONT COLOR=green><EM>------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
+- <FONT COLOR=green><EM>------------------</EM></FONT>
+-
+- <FONT COLOR=red><A NAME="ref_116_4">Menu_Exception</A></FONT> : <b>exception</b>;
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Menu options</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>pragma</b> Warnings (Off);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_121_9">Menu_Option_Set</A></FONT> <b>is</b>
++ <span class="comment"><EM>---------------------------</EM></span>
++ <span class="comment"><EM>-- Interface constants --</EM></span>
++ <span class="comment"><EM>---------------------------</EM></span>
++ <span class="symbol"><A NAME="ref_57_4">Null_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_58_4">Null_Menu</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_60_12">Menu_Request_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>
++ <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 1) .. (<A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 17);
++
++ <span class="comment"><EM>-- The prefix M_ stands for "Menu Request"</EM></span>
++ <span class="symbol"><A NAME="ref_64_4">M_Left_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 1;
++ <span class="symbol"><A NAME="ref_65_4">M_Right_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 2;
++ <span class="symbol"><A NAME="ref_66_4">M_Up_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 3;
++ <span class="symbol"><A NAME="ref_67_4">M_Down_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 4;
++ <span class="symbol"><A NAME="ref_68_4">M_ScrollUp_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 5;
++ <span class="symbol"><A NAME="ref_69_4">M_ScrollDown_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 6;
++ <span class="symbol"><A NAME="ref_70_4">M_ScrollDown_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 7;
++ <span class="symbol"><A NAME="ref_71_4">M_ScrollUp_Page</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 8;
++ <span class="symbol"><A NAME="ref_72_4">M_First_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 9;
++ <span class="symbol"><A NAME="ref_73_4">M_Last_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 10;
++ <span class="symbol"><A NAME="ref_74_4">M_Next_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 11;
++ <span class="symbol"><A NAME="ref_75_4">M_Previous_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 12;
++ <span class="symbol"><A NAME="ref_76_4">M_Toggle_Item</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 13;
++ <span class="symbol"><A NAME="ref_77_4">M_Clear_Pattern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 14;
++ <span class="symbol"><A NAME="ref_78_4">M_Back_Pattern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 15;
++ <span class="symbol"><A NAME="ref_79_4">M_Next_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 16;
++ <span class="symbol"><A NAME="ref_80_4">M_Previous_Match</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 17;
++
++ <span class="comment"><EM>-- For those who like the old 'C' names for the request codes</EM></span>
++ REQ_LEFT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_4">M_Left_Item</A>;
++ REQ_RIGHT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_65_4">M_Right_Item</A>;
++ REQ_UP_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_66_4">M_Up_Item</A>;
++ REQ_DOWN_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_67_4">M_Down_Item</A>;
++ REQ_SCR_ULINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_68_4">M_ScrollUp_Line</A>;
++ REQ_SCR_DLINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_ScrollDown_Line</A>;
++ REQ_SCR_DPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_ScrollDown_Page</A>;
++ REQ_SCR_UPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_ScrollUp_Page</A>;
++ REQ_FIRST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_First_Item</A>;
++ REQ_LAST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_Last_Item</A>;
++ REQ_NEXT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_Next_Item</A>;
++ REQ_PREV_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_Previous_Item</A>;
++ REQ_TOGGLE_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_Toggle_Item</A>;
++ REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_Clear_Pattern</A>;
++ REQ_BACK_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Back_Pattern</A>;
++ REQ_NEXT_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Next_Match</A>;
++ REQ_PREV_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Previous_Match</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_101_14" HREF="terminal_interface-curses-menus__adb.htm#ref_59_14">Request_Name</A></span> (<span class="symbol"><A NAME="ref_101_28" HREF="terminal_interface-curses-menus__adb.htm#ref_59_28">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A>;
++ <span class="symbol"><A NAME="ref_102_28" HREF="terminal_interface-curses-menus__adb.htm#ref_60_28">Name</A></span> : <b>out</b> String);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_104_14" HREF="terminal_interface-curses-menus__adb.htm#ref_68_13">Request_Name</A></span> (<span class="symbol"><A NAME="ref_104_28" HREF="terminal_interface-curses-menus__adb.htm#ref_68_27">Key</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_60_12">Menu_Request_Code</A>) <b>return</b> String;
++ <span class="comment"><EM>-- Same as function</EM></span>
++
++ <span class="comment"><EM>------------------</EM></span>
++ <span class="comment"><EM>-- Exceptions --</EM></span>
++ <span class="comment"><EM>------------------</EM></span>
++
++ <span class="symbol"><A NAME="ref_111_4">Menu_Exception</A></span> : <b>exception</b>;
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- Menu options</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_115_9">Menu_Option_Set</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_123_10">One_Valued</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_124_10">Show_Descriptions</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_125_10">Row_Major_Order</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_126_10">Ignore_Case</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_127_10">Show_Matches</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_128_10">Non_Cyclic</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_129_10">Unused</A></FONT> : Boolean;
++ <span class="symbol"><A NAME="ref_117_10">One_Valued</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_118_10">Show_Descriptions</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_119_10">Row_Major_Order</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_120_10">Ignore_Case</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_121_10">Show_Matches</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_122_10">Non_Cyclic</A></span> : Boolean;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
++ <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_123_10">One_Valued</A> <b>at</b> 0 <b>range</b> 0 .. 0;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_124_10">Show_Descriptions</A> <b>at</b> 0 <b>range</b> 1 .. 1;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_125_10">Row_Major_Order</A> <b>at</b> 0 <b>range</b> 2 .. 2;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_126_10">Ignore_Case</A> <b>at</b> 0 <b>range</b> 3 .. 3;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_127_10">Show_Matches</A> <b>at</b> 0 <b>range</b> 4 .. 4;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_128_10">Non_Cyclic</A> <b>at</b> 0 <b>range</b> 5 .. 5;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_129_10">Unused</A> <b>at</b> 0 <b>range</b> 6 .. 31;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_117_10">One_Valued</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_257_4">O_ONEVALUE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_258_4">O_ONEVALUE_Last</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_118_10">Show_Descriptions</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_259_4">O_SHOWDESC_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_260_4">O_SHOWDESC_Last</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_119_10">Row_Major_Order</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_261_4">O_ROWMAJOR_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_262_4">O_ROWMAJOR_Last</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_10">Ignore_Case</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_263_4">O_IGNORECASE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_264_4">O_IGNORECASE_Last</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_10">Show_Matches</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_265_4">O_SHOWMATCH_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_266_4">O_SHOWMATCH_Last</A>;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_122_10">Non_Cyclic</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_267_4">O_NONCYCLIC_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_268_4">O_NONCYCLIC_Last</A>;
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>'Size <b>use</b> 32;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
++ <b>pragma</b> Warnings (Off);
++ <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_269_4">Menu_Options_Size</A>;
+ <b>pragma</b> Warnings (On);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1009_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+- <FONT COLOR=green><EM>-- Initial default options for a menu.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_148_13">Default_Menu_Options</A>);
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Item options</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>pragma</b> Warnings (Off);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_155_9">Item_Option_Set</A></FONT> <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_145_13" HREF="terminal_interface-curses-menus__adb.htm#ref_891_13">Default_Menu_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>;
++ <span class="comment"><EM>-- Initial default options for a menu.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_145_13">Default_Menu_Options</A>);
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- Item options</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_151_9">Item_Option_Set</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_157_10">Selectable</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_158_10">Unused</A></FONT> : Boolean;
++ <span class="symbol"><A NAME="ref_153_10">Selectable</A></span> : Boolean;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>);
++ <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_157_10">Selectable</A> <b>at</b> 0 <b>range</b> 0 .. 0;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_158_10">Unused</A> <b>at</b> 0 <b>range</b> 1 .. 31;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_153_10">Selectable</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_273_4">O_SELECTABLE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_274_4">O_SELECTABLE_Last</A>;
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>'Size <b>use</b> 32;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
++ <b>pragma</b> Warnings (Off);
++ <b>for</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_275_4">Item_Options_Size</A>;
+ <b>pragma</b> Warnings (On);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_172_13" HREF="terminal_interface-curses-menus__adb.htm#ref_1015_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>;
+- <FONT COLOR=green><EM>-- Initial default options for an item.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_172_13">Default_Item_Options</A>);
+-
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Item Array</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_166_13" HREF="terminal_interface-curses-menus__adb.htm#ref_897_13">Default_Item_Options</A></span> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>;
++ <span class="comment"><EM>-- Initial default options for an item.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_166_13">Default_Item_Options</A>);
++
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- Item Array</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
+ <b>pragma</b> Convention (C, Item_Array);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_182_9">Item_Array_Access</A></FONT> <b>is</b> <b>access</b> Item_Array;
++ <b>type</b> <span class="symbol"><A NAME="ref_176_9">Item_Array_Access</A></span> <b>is</b> <b>access</b> Item_Array;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_184_14" HREF="terminal_interface-curses-menus__adb.htm#ref_992_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_184_20" HREF="terminal_interface-curses-menus__adb.htm#ref_992_20">IA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>;
+- <FONT COLOR=red><A NAME="ref_185_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">Free_Items</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- Release the memory for an allocated item array</EM></FONT>
+- <FONT COLOR=green><EM>-- If Free_Items is True, call Delete() for all the items in</EM></FONT>
+- <FONT COLOR=green><EM>-- the array.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_195_13" HREF="terminal_interface-curses-menus__adb.htm#ref_94_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_195_21" HREF="terminal_interface-curses-menus__adb.htm#ref_94_21">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_196_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Not inlined.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_201_23">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_202_23">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>
+- <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_195_13">Create</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__adb.htm#ref_124_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_207_22" HREF="terminal_interface-curses-menus__adb.htm#ref_124_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Resets Itm to Null_Item</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_216_14" HREF="terminal_interface-curses-menus__adb.htm#ref_152_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_216_25" HREF="terminal_interface-curses-menus__adb.htm#ref_152_25">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_217_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Value</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_216_14">Set_Value</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_222_13" HREF="terminal_interface-curses-menus__adb.htm#ref_166_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_222_20" HREF="terminal_interface-curses-menus__adb.htm#ref_166_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_222_13">Value</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_231_13" HREF="terminal_interface-curses-menus__adb.htm#ref_179_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_231_22" HREF="terminal_interface-curses-menus__adb.htm#ref_179_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_231_13">Visible</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_240_14" HREF="terminal_interface-curses-menus__adb.htm#ref_191_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_240_27" HREF="terminal_interface-curses-menus__adb.htm#ref_191_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_241_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded Set_Options is defined later. Pragma Inline appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_246_14" HREF="terminal_interface-curses-menus__adb.htm#ref_207_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_246_30" HREF="terminal_interface-curses-menus__adb.htm#ref_207_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_247_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_248_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">On</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: item_opts_off()</EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded Switch_Options is defined later.</EM></FONT>
+- <FONT COLOR=green><EM>-- Pragma Inline appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_255_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_255_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_256_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_260_13" HREF="terminal_interface-curses-menus__adb.htm#ref_242_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_260_26" HREF="terminal_interface-curses-menus__adb.htm#ref_242_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_155_9">Item_Option_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_269_14" HREF="terminal_interface-curses-menus__adb.htm#ref_250_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_269_20" HREF="terminal_interface-curses-menus__adb.htm#ref_250_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_270_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Name</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_272_14" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_272_20" HREF="terminal_interface-curses-menus__adb.htm#ref_259_19">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_178_14" HREF="terminal_interface-curses-menus__adb.htm#ref_874_14">Free</A></span> (<span class="symbol"><A NAME="ref_178_20" HREF="terminal_interface-curses-menus__adb.htm#ref_874_20">IA</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>;
++ <span class="symbol"><A NAME="ref_179_20" HREF="terminal_interface-curses-menus__adb.htm#ref_875_20">Free_Items</A></span> : Boolean := False);
++ <span class="comment"><EM>-- Release the memory for an allocated item array</EM></span>
++ <span class="comment"><EM>-- If Free_Items is True, call Delete() for all the items in</EM></span>
++ <span class="comment"><EM>-- the array.</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_189_13" HREF="terminal_interface-curses-menus__adb.htm#ref_76_13">Create</A></span> (<span class="symbol"><A NAME="ref_189_21" HREF="terminal_interface-curses-menus__adb.htm#ref_76_21">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_190_21" HREF="terminal_interface-curses-menus__adb.htm#ref_77_21">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></span>
++ <span class="comment"><EM>-- Not inlined.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>function</b> New_Item (<span class="symbol"><A NAME="ref_195_23">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_196_23">Description</A></span> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>
++ <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_189_13">Create</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_201_14" HREF="terminal_interface-curses-menus__adb.htm#ref_106_14">Delete</A></span> (<span class="symbol"><A NAME="ref_201_22" HREF="terminal_interface-curses-menus__adb.htm#ref_106_22">Itm</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></span>
++ <span class="comment"><EM>-- Resets Itm to Null_Item</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_210_14" HREF="terminal_interface-curses-menus__adb.htm#ref_130_14">Set_Value</A></span> (<span class="symbol"><A NAME="ref_210_25" HREF="terminal_interface-curses-menus__adb.htm#ref_130_25">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_211_25" HREF="terminal_interface-curses-menus__adb.htm#ref_131_25">Value</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_210_14">Set_Value</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_216_13" HREF="terminal_interface-curses-menus__adb.htm#ref_141_13">Value</A></span> (<span class="symbol"><A NAME="ref_216_20" HREF="terminal_interface-curses-menus__adb.htm#ref_141_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_216_13">Value</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_225_13" HREF="terminal_interface-curses-menus__adb.htm#ref_154_13">Visible</A></span> (<span class="symbol"><A NAME="ref_225_22" HREF="terminal_interface-curses-menus__adb.htm#ref_154_22">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_225_13">Visible</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_234_14" HREF="terminal_interface-curses-menus__adb.htm#ref_166_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_234_27" HREF="terminal_interface-curses-menus__adb.htm#ref_166_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_235_27" HREF="terminal_interface-curses-menus__adb.htm#ref_167_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></span>
++ <span class="comment"><EM>-- An overloaded Set_Options is defined later. Pragma Inline appears there</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_240_14" HREF="terminal_interface-curses-menus__adb.htm#ref_177_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_240_30" HREF="terminal_interface-curses-menus__adb.htm#ref_177_30">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_241_30" HREF="terminal_interface-curses-menus__adb.htm#ref_178_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_242_30" HREF="terminal_interface-curses-menus__adb.htm#ref_179_30">On</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></span>
++ <span class="comment"><EM>-- AKA: item_opts_off()</EM></span>
++ <span class="comment"><EM>-- An overloaded Switch_Options is defined later.</EM></span>
++ <span class="comment"><EM>-- Pragma Inline appears there</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_249_14" HREF="terminal_interface-curses-menus__adb.htm#ref_196_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_249_27" HREF="terminal_interface-curses-menus__adb.htm#ref_196_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_250_27" HREF="terminal_interface-curses-menus__adb.htm#ref_197_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_254_13" HREF="terminal_interface-curses-menus__adb.htm#ref_206_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_254_26" HREF="terminal_interface-curses-menus__adb.htm#ref_206_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_151_9">Item_Option_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></span>
++ <span class="comment"><EM>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_263_14" HREF="terminal_interface-curses-menus__adb.htm#ref_214_14">Name</A></span> (<span class="symbol"><A NAME="ref_263_20" HREF="terminal_interface-curses-menus__adb.htm#ref_214_20">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_264_20" HREF="terminal_interface-curses-menus__adb.htm#ref_215_20">Name</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_266_14" HREF="terminal_interface-curses-menus__adb.htm#ref_223_13">Name</A></span> (<span class="symbol"><A NAME="ref_266_20" HREF="terminal_interface-curses-menus__adb.htm#ref_223_19">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></span>
++ <span class="comment"><EM>-- Implemented as function</EM></span>
+ <b>pragma</b> Inline (Name);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_278_14" HREF="terminal_interface-curses-menus__adb.htm#ref_267_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_278_27" HREF="terminal_interface-curses-menus__adb.htm#ref_267_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=red><A NAME="ref_279_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Description</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_282_14" HREF="terminal_interface-curses-menus__adb.htm#ref_276_13">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_282_27" HREF="terminal_interface-curses-menus__adb.htm#ref_276_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_272_14" HREF="terminal_interface-curses-menus__adb.htm#ref_231_14">Description</A></span> (<span class="symbol"><A NAME="ref_272_27" HREF="terminal_interface-curses-menus__adb.htm#ref_231_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="symbol"><A NAME="ref_273_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Description</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_276_14" HREF="terminal_interface-curses-menus__adb.htm#ref_240_13">Description</A></span> (<span class="symbol"><A NAME="ref_276_27" HREF="terminal_interface-curses-menus__adb.htm#ref_240_26">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></span>
++ <span class="comment"><EM>-- Implemented as function</EM></span>
+ <b>pragma</b> Inline (Description);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_292_14" HREF="terminal_interface-curses-menus__adb.htm#ref_284_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_292_27" HREF="terminal_interface-curses-menus__adb.htm#ref_284_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_293_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_292_14">Set_Current</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__adb.htm#ref_298_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__adb.htm#ref_298_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_13">Current</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_303_14" HREF="terminal_interface-curses-menus__adb.htm#ref_311_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_303_27" HREF="terminal_interface-curses-menus__adb.htm#ref_311_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_304_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_303_14">Set_Top_Row</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_309_13" HREF="terminal_interface-curses-menus__adb.htm#ref_325_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_309_22" HREF="terminal_interface-curses-menus__adb.htm#ref_325_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Top_Row</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_314_13" HREF="terminal_interface-curses-menus__adb.htm#ref_338_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_314_24" HREF="terminal_interface-curses-menus__adb.htm#ref_338_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>) <b>return</b> Positive;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of items</EM></FONT>
+- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT>
+- <FONT COLOR=green><EM>-- level call.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_314_13">Get_Index</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_326_14" HREF="terminal_interface-curses-menus__adb.htm#ref_351_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_326_20" HREF="terminal_interface-curses-menus__adb.htm#ref_351_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_327_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Post</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: unpost_menu()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_326_14">Post</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_337_14" HREF="terminal_interface-curses-menus__adb.htm#ref_371_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_337_27" HREF="terminal_interface-curses-menus__adb.htm#ref_371_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_338_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_286_14" HREF="terminal_interface-curses-menus__adb.htm#ref_248_14">Set_Current</A></span> (<span class="symbol"><A NAME="ref_286_27" HREF="terminal_interface-curses-menus__adb.htm#ref_248_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_287_27" HREF="terminal_interface-curses-menus__adb.htm#ref_249_27">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_286_14">Set_Current</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_292_13" HREF="terminal_interface-curses-menus__adb.htm#ref_259_13">Current</A></span> (<span class="symbol"><A NAME="ref_292_22" HREF="terminal_interface-curses-menus__adb.htm#ref_259_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_292_13">Current</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_297_14" HREF="terminal_interface-curses-menus__adb.htm#ref_272_14">Set_Top_Row</A></span> (<span class="symbol"><A NAME="ref_297_27" HREF="terminal_interface-curses-menus__adb.htm#ref_272_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_298_27" HREF="terminal_interface-curses-menus__adb.htm#ref_273_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_297_14">Set_Top_Row</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_16"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_303_13" HREF="terminal_interface-curses-menus__adb.htm#ref_283_13">Top_Row</A></span> (<span class="symbol"><A NAME="ref_303_22" HREF="terminal_interface-curses-menus__adb.htm#ref_283_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_303_13">Top_Row</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_17"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_308_13" HREF="terminal_interface-curses-menus__adb.htm#ref_296_13">Get_Index</A></span> (<span class="symbol"><A NAME="ref_308_24" HREF="terminal_interface-curses-menus__adb.htm#ref_296_24">Itm</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>) <b>return</b> Positive;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></span>
++ <span class="comment"><EM>-- Please note that in this binding we start the numbering of items</EM></span>
++ <span class="comment"><EM>-- with 1. So this is number is one more than you get from the low</EM></span>
++ <span class="comment"><EM>-- level call.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_308_13">Get_Index</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_18"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_320_14" HREF="terminal_interface-curses-menus__adb.htm#ref_309_14">Post</A></span> (<span class="symbol"><A NAME="ref_320_20" HREF="terminal_interface-curses-menus__adb.htm#ref_309_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_321_20" HREF="terminal_interface-curses-menus__adb.htm#ref_310_20">Post</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></span>
++ <span class="comment"><EM>-- AKA: unpost_menu()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_320_14">Post</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_19"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_331_14" HREF="terminal_interface-curses-menus__adb.htm#ref_325_14">Set_Options</A></span> (<span class="symbol"><A NAME="ref_331_27" HREF="terminal_interface-curses-menus__adb.htm#ref_325_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_332_27" HREF="terminal_interface-curses-menus__adb.htm#ref_326_27">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></span>
+ <b>pragma</b> Inline (Set_Options);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_343_14" HREF="terminal_interface-curses-menus__adb.htm#ref_387_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_343_30" HREF="terminal_interface-curses-menus__adb.htm#ref_387_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_344_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Options</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+- <FONT COLOR=red><A NAME="ref_345_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">On</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: menu_opts_off()</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_20"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_337_14" HREF="terminal_interface-curses-menus__adb.htm#ref_336_14">Switch_Options</A></span> (<span class="symbol"><A NAME="ref_337_30" HREF="terminal_interface-curses-menus__adb.htm#ref_336_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_338_30" HREF="terminal_interface-curses-menus__adb.htm#ref_337_30">Options</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>;
++ <span class="symbol"><A NAME="ref_339_30" HREF="terminal_interface-curses-menus__adb.htm#ref_338_30">On</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></span>
++ <span class="comment"><EM>-- AKA: menu_opts_off()</EM></span>
+ <b>pragma</b> Inline (Switch_Options);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__adb.htm#ref_411_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_351_27" HREF="terminal_interface-curses-menus__adb.htm#ref_411_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_352_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_356_13" HREF="terminal_interface-curses-menus__adb.htm#ref_422_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_356_26" HREF="terminal_interface-curses-menus__adb.htm#ref_422_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_121_9">Menu_Option_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_21"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_345_14" HREF="terminal_interface-curses-menus__adb.htm#ref_355_14">Get_Options</A></span> (<span class="symbol"><A NAME="ref_345_27" HREF="terminal_interface-curses-menus__adb.htm#ref_355_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_346_27" HREF="terminal_interface-curses-menus__adb.htm#ref_356_27">Options</A></span> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_22"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_350_13" HREF="terminal_interface-curses-menus__adb.htm#ref_365_13">Get_Options</A></span> (<span class="symbol"><A NAME="ref_350_26" HREF="terminal_interface-curses-menus__adb.htm#ref_365_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_9">Menu_Option_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></span>
+ <b>pragma</b> Inline (Get_Options);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_365_14" HREF="terminal_interface-curses-menus__adb.htm#ref_430_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_365_26" HREF="terminal_interface-curses-menus__adb.htm#ref_430_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_366_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_365_14">Set_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_371_13" HREF="terminal_interface-curses-menus__adb.htm#ref_444_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_371_25" HREF="terminal_interface-curses-menus__adb.htm#ref_444_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_13">Get_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_376_14" HREF="terminal_interface-curses-menus__adb.htm#ref_454_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_376_30" HREF="terminal_interface-curses-menus__adb.htm#ref_454_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_377_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_376_14">Set_Sub_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_382_13" HREF="terminal_interface-curses-menus__adb.htm#ref_468_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_382_29" HREF="terminal_interface-curses-menus__adb.htm#ref_468_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_13">Get_Sub_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__adb.htm#ref_478_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_387_21" HREF="terminal_interface-curses-menus__adb.htm#ref_478_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_388_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_389_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_387_14">Scale</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_398_14" HREF="terminal_interface-curses-menus__adb.htm#ref_497_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_398_31" HREF="terminal_interface-curses-menus__adb.htm#ref_497_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_398_14">Position_Cursor</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_407_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_407_24" HREF="terminal_interface-curses-menus__adb.htm#ref_510_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_408_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Mark</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_407_14">Set_Mark</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses-menus__adb.htm#ref_529_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_413_20" HREF="terminal_interface-curses-menus__adb.htm#ref_529_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_414_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Mark</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_417_14" HREF="terminal_interface-curses-menus__adb.htm#ref_538_13">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_417_20" HREF="terminal_interface-curses-menus__adb.htm#ref_538_19">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_23"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_359_14" HREF="terminal_interface-curses-menus__adb.htm#ref_373_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_359_26" HREF="terminal_interface-curses-menus__adb.htm#ref_373_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_360_26" HREF="terminal_interface-curses-menus__adb.htm#ref_374_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_359_14">Set_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_24"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_365_13" HREF="terminal_interface-curses-menus__adb.htm#ref_384_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_365_25" HREF="terminal_interface-curses-menus__adb.htm#ref_384_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_365_13">Get_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_25"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_370_14" HREF="terminal_interface-curses-menus__adb.htm#ref_394_14">Set_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_370_30" HREF="terminal_interface-curses-menus__adb.htm#ref_394_30">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_371_30" HREF="terminal_interface-curses-menus__adb.htm#ref_395_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_370_14">Set_Sub_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_26"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_376_13" HREF="terminal_interface-curses-menus__adb.htm#ref_405_13">Get_Sub_Window</A></span> (<span class="symbol"><A NAME="ref_376_29" HREF="terminal_interface-curses-menus__adb.htm#ref_405_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_376_13">Get_Sub_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_27"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_381_14" HREF="terminal_interface-curses-menus__adb.htm#ref_415_14">Scale</A></span> (<span class="symbol"><A NAME="ref_381_21" HREF="terminal_interface-curses-menus__adb.htm#ref_415_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_382_21" HREF="terminal_interface-curses-menus__adb.htm#ref_416_21">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_383_21" HREF="terminal_interface-curses-menus__adb.htm#ref_417_21">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_381_14">Scale</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_28"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_392_14" HREF="terminal_interface-curses-menus__adb.htm#ref_431_14">Position_Cursor</A></span> (<span class="symbol"><A NAME="ref_392_31" HREF="terminal_interface-curses-menus__adb.htm#ref_431_31">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_392_14">Position_Cursor</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_29"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_401_14" HREF="terminal_interface-curses-menus__adb.htm#ref_441_14">Set_Mark</A></span> (<span class="symbol"><A NAME="ref_401_24" HREF="terminal_interface-curses-menus__adb.htm#ref_441_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_402_24" HREF="terminal_interface-curses-menus__adb.htm#ref_442_24">Mark</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_401_14">Set_Mark</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_30"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_407_14" HREF="terminal_interface-curses-menus__adb.htm#ref_456_14">Mark</A></span> (<span class="symbol"><A NAME="ref_407_20" HREF="terminal_interface-curses-menus__adb.htm#ref_456_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_408_20" HREF="terminal_interface-curses-menus__adb.htm#ref_457_20">Mark</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__adb.htm#ref_465_13">Mark</A></span> (<span class="symbol"><A NAME="ref_411_20" HREF="terminal_interface-curses-menus__adb.htm#ref_465_19">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></span>
++ <span class="comment"><EM>-- Implemented as function</EM></span>
+ <b>pragma</b> Inline (Mark);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_427_14" HREF="terminal_interface-curses-menus__adb.htm#ref_547_14">Set_Foreground</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_430_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_427_14">Set_Foreground</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_435_14" HREF="terminal_interface-curses-menus__adb.htm#ref_566_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-menus__adb.htm#ref_566_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_440_14" HREF="terminal_interface-curses-menus__adb.htm#ref_575_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-menus__adb.htm#ref_575_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_442_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_attributes.3x.html">menu_attributes.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_31"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_421_14" HREF="terminal_interface-curses-menus__adb.htm#ref_474_14">Set_Foreground</A></span>
++ (<span class="symbol"><A NAME="ref_422_7" HREF="terminal_interface-curses-menus__adb.htm#ref_475_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_423_7" HREF="terminal_interface-curses-menus__adb.htm#ref_476_7">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_424_7" HREF="terminal_interface-curses-menus__adb.htm#ref_477_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_fore()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_421_14">Set_Foreground</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_32"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_429_14" HREF="terminal_interface-curses-menus__adb.htm#ref_490_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_429_26" HREF="terminal_interface-curses-menus__adb.htm#ref_490_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__adb.htm#ref_491_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_33"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_434_14" HREF="terminal_interface-curses-menus__adb.htm#ref_499_14">Foreground</A></span> (<span class="symbol"><A NAME="ref_434_26" HREF="terminal_interface-curses-menus__adb.htm#ref_499_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_435_26" HREF="terminal_interface-curses-menus__adb.htm#ref_500_26">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_501_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_fore()</A></EM></span>
+ <b>pragma</b> Inline (Foreground);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_447_14" HREF="terminal_interface-curses-menus__adb.htm#ref_586_14">Set_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-menus__adb.htm#ref_587_7">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_450_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_34"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_441_14" HREF="terminal_interface-curses-menus__adb.htm#ref_510_14">Set_Background</A></span>
++ (<span class="symbol"><A NAME="ref_442_7" HREF="terminal_interface-curses-menus__adb.htm#ref_511_7">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_443_7" HREF="terminal_interface-curses-menus__adb.htm#ref_512_7">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_444_7" HREF="terminal_interface-curses-menus__adb.htm#ref_513_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_back()</A></EM></span>
+ <b>pragma</b> Inline (Set_Background);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_455_14" HREF="terminal_interface-curses-menus__adb.htm#ref_605_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-menus__adb.htm#ref_605_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_460_14" HREF="terminal_interface-curses-menus__adb.htm#ref_614_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-menus__adb.htm#ref_614_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_462_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_35"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_449_14" HREF="terminal_interface-curses-menus__adb.htm#ref_526_14">Background</A></span> (<span class="symbol"><A NAME="ref_449_26" HREF="terminal_interface-curses-menus__adb.htm#ref_526_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_450_26" HREF="terminal_interface-curses-menus__adb.htm#ref_527_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></span>
++ <span class="comment"><EM>-- #1A NAME="AFU_36"#2|</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_454_14" HREF="terminal_interface-curses-menus__adb.htm#ref_535_14">Background</A></span> (<span class="symbol"><A NAME="ref_454_26" HREF="terminal_interface-curses-menus__adb.htm#ref_535_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_455_26" HREF="terminal_interface-curses-menus__adb.htm#ref_536_26">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_537_26">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_back()</A></EM></span>
+ <b>pragma</b> Inline (Background);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_467_14" HREF="terminal_interface-curses-menus__adb.htm#ref_625_14">Set_Grey</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_468_7" HREF="terminal_interface-curses-menus__adb.htm#ref_625_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_469_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Grey</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_470_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_467_14">Set_Grey</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_475_14" HREF="terminal_interface-curses-menus__adb.htm#ref_644_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_475_20" HREF="terminal_interface-curses-menus__adb.htm#ref_644_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_476_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_480_14" HREF="terminal_interface-curses-menus__adb.htm#ref_653_14">Grey</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_481_7" HREF="terminal_interface-curses-menus__adb.htm#ref_653_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_482_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_483_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_37"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_461_14" HREF="terminal_interface-curses-menus__adb.htm#ref_546_14">Set_Grey</A></span>
++ (<span class="symbol"><A NAME="ref_462_7" HREF="terminal_interface-curses-menus__adb.htm#ref_546_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_463_7" HREF="terminal_interface-curses-menus__adb.htm#ref_547_24">Grey</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_464_7" HREF="terminal_interface-curses-menus__adb.htm#ref_548_24">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_grey()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_461_14">Set_Grey</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_38"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_469_14" HREF="terminal_interface-curses-menus__adb.htm#ref_562_14">Grey</A></span> (<span class="symbol"><A NAME="ref_469_20" HREF="terminal_interface-curses-menus__adb.htm#ref_562_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_470_20" HREF="terminal_interface-curses-menus__adb.htm#ref_563_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_39"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_474_14" HREF="terminal_interface-curses-menus__adb.htm#ref_571_14">Grey</A></span>
++ (<span class="symbol"><A NAME="ref_475_7" HREF="terminal_interface-curses-menus__adb.htm#ref_571_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses-menus__adb.htm#ref_572_20">Grey</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__adb.htm#ref_573_20">Color</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_grey()</A></EM></span>
+ <b>pragma</b> Inline (Grey);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_488_14" HREF="terminal_interface-curses-menus__adb.htm#ref_664_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_488_33" HREF="terminal_interface-curses-menus__adb.htm#ref_664_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_489_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Pad</A></FONT> : Character := Space);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Set_Pad_Character</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_494_14" HREF="terminal_interface-curses-menus__adb.htm#ref_679_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_494_29" HREF="terminal_interface-curses-menus__adb.htm#ref_679_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_495_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Pad</A></FONT> : <b>out</b> Character);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_494_14">Pad_Character</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_504_14" HREF="terminal_interface-curses-menus__adb.htm#ref_688_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_504_27" HREF="terminal_interface-curses-menus__adb.htm#ref_688_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_505_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Descr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0;
+- <FONT COLOR=red><A NAME="ref_506_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0;
+- <FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_504_14">Set_Spacing</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_512_14" HREF="terminal_interface-curses-menus__adb.htm#ref_707_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_512_23" HREF="terminal_interface-curses-menus__adb.htm#ref_707_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_513_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_514_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_515_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Col</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_512_14">Spacing</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_524_13" HREF="terminal_interface-curses-menus__adb.htm#ref_732_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_524_26" HREF="terminal_interface-curses-menus__adb.htm#ref_732_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_525_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Text</A></FONT> : String) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_524_13">Set_Pattern</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_531_14" HREF="terminal_interface-curses-menus__adb.htm#ref_755_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_531_23" HREF="terminal_interface-curses-menus__adb.htm#ref_755_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_532_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Text</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_531_14">Pattern</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_541_14" HREF="terminal_interface-curses-menus__adb.htm#ref_764_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_541_26" HREF="terminal_interface-curses-menus__adb.htm#ref_764_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_542_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_543_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+- <FONT COLOR=green><EM>-- Not implemented: 0 argument for Lines or Columns;</EM></FONT>
+- <FONT COLOR=green><EM>-- instead use Format to get the current sizes</EM></FONT>
+- <FONT COLOR=green><EM>-- The default format is 16 rows, 1 column. Calling</EM></FONT>
+- <FONT COLOR=green><EM>-- set_menu_format with a null menu pointer will change this</EM></FONT>
+- <FONT COLOR=green><EM>-- default. A zero row or column argument to set_menu_format</EM></FONT>
+- <FONT COLOR=green><EM>-- is interpreted as a request not to change the current</EM></FONT>
+- <FONT COLOR=green><EM>-- value.</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_541_14">Set_Format</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_555_14" HREF="terminal_interface-curses-menus__adb.htm#ref_782_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_555_22" HREF="terminal_interface-curses-menus__adb.htm#ref_782_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_556_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_557_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_555_14">Format</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_565_9">Menu_Hook_Function</A></FONT> <b>is</b> <b>access</b> <b>procedure</b> (<FONT COLOR=red><A NAME="ref_565_49">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_569_14" HREF="terminal_interface-curses-menus__adb.htm#ref_802_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_569_34" HREF="terminal_interface-curses-menus__adb.htm#ref_802_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_570_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Init_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__adb.htm#ref_816_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_575_34" HREF="terminal_interface-curses-menus__adb.htm#ref_816_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_576_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Item_Term_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_581_14" HREF="terminal_interface-curses-menus__adb.htm#ref_830_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_581_34" HREF="terminal_interface-curses-menus__adb.htm#ref_830_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_582_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Init_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_587_14" HREF="terminal_interface-curses-menus__adb.htm#ref_844_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_587_34" HREF="terminal_interface-curses-menus__adb.htm#ref_844_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_588_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_587_14">Set_Menu_Term_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_593_13" HREF="terminal_interface-curses-menus__adb.htm#ref_858_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_593_33" HREF="terminal_interface-curses-menus__adb.htm#ref_858_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Init_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses-menus__adb.htm#ref_866_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_598_33" HREF="terminal_interface-curses-menus__adb.htm#ref_866_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Item_Term_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_603_13" HREF="terminal_interface-curses-menus__adb.htm#ref_874_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_603_33" HREF="terminal_interface-curses-menus__adb.htm#ref_874_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Init_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_608_13" HREF="terminal_interface-curses-menus__adb.htm#ref_882_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_608_33" HREF="terminal_interface-curses-menus__adb.htm#ref_882_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_9">Menu_Hook_Function</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_608_13">Get_Menu_Term_Hook</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_617_14" HREF="terminal_interface-curses-menus__adb.htm#ref_890_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_617_24" HREF="terminal_interface-curses-menus__adb.htm#ref_890_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_618_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_622_14">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_622_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_623_25">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14">Redefine</A>;
+- <FONT COLOR=green><EM>-- pragma Inline (Set_Items);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_627_13" HREF="terminal_interface-curses-menus__adb.htm#ref_918_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_627_20" HREF="terminal_interface-curses-menus__adb.htm#ref_918_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_628_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Items</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_633_13" HREF="terminal_interface-curses-menus__adb.htm#ref_910_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_633_25" HREF="terminal_interface-curses-menus__adb.htm#ref_910_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>) <b>return</b> Natural;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_633_13">Item_Count</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_642_13" HREF="terminal_interface-curses-menus__adb.htm#ref_937_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_642_21" HREF="terminal_interface-curses-menus__adb.htm#ref_937_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
+-
+- <b>function</b> New_Menu (<FONT COLOR=red><A NAME="ref_646_23">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_182_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_642_13">Create</A>;
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_649_14" HREF="terminal_interface-curses-menus__adb.htm#ref_956_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_649_22" HREF="terminal_interface-curses-menus__adb.htm#ref_956_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Reset Men to Null_Menu</EM></FONT>
+- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_658_9">Driver_Result</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_658_27">Menu_Ok</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_659_27">Request_Denied</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_660_27">Unknown_Request</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_661_27">No_Match</A></FONT>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_664_13" HREF="terminal_interface-curses-menus__adb.htm#ref_970_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_664_21" HREF="terminal_interface-curses-menus__adb.htm#ref_970_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A>;
+- <FONT COLOR=red><A NAME="ref_665_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_658_9">Driver_Result</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Driver is not inlined</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
+-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_40"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_482_14" HREF="terminal_interface-curses-menus__adb.htm#ref_582_14">Set_Pad_Character</A></span> (<span class="symbol"><A NAME="ref_482_33" HREF="terminal_interface-curses-menus__adb.htm#ref_582_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_483_33" HREF="terminal_interface-curses-menus__adb.htm#ref_583_33">Pad</A></span> : Character := Space);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">set_menu_pad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_482_14">Set_Pad_Character</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_41"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_488_14" HREF="terminal_interface-curses-menus__adb.htm#ref_593_14">Pad_Character</A></span> (<span class="symbol"><A NAME="ref_488_29" HREF="terminal_interface-curses-menus__adb.htm#ref_593_29">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_489_29" HREF="terminal_interface-curses-menus__adb.htm#ref_594_29">Pad</A></span> : <b>out</b> Character);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_attributes.3x.html">menu_pad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_488_14">Pad_Character</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_42"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_498_14" HREF="terminal_interface-curses-menus__adb.htm#ref_602_14">Set_Spacing</A></span> (<span class="symbol"><A NAME="ref_498_27" HREF="terminal_interface-curses-menus__adb.htm#ref_602_27">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_499_27" HREF="terminal_interface-curses-menus__adb.htm#ref_603_27">Descr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> := 0;
++ <span class="symbol"><A NAME="ref_500_27" HREF="terminal_interface-curses-menus__adb.htm#ref_604_27">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> := 0;
++ <span class="symbol"><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_605_27">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> := 0);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_498_14">Set_Spacing</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_43"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_506_14" HREF="terminal_interface-curses-menus__adb.htm#ref_618_14">Spacing</A></span> (<span class="symbol"><A NAME="ref_506_23" HREF="terminal_interface-curses-menus__adb.htm#ref_618_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_507_23" HREF="terminal_interface-curses-menus__adb.htm#ref_619_23">Descr</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_508_23" HREF="terminal_interface-curses-menus__adb.htm#ref_620_23">Row</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_621_23">Col</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_506_14">Spacing</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_44"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_518_13" HREF="terminal_interface-curses-menus__adb.htm#ref_639_13">Set_Pattern</A></span> (<span class="symbol"><A NAME="ref_518_26" HREF="terminal_interface-curses-menus__adb.htm#ref_639_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_519_26" HREF="terminal_interface-curses-menus__adb.htm#ref_640_26">Text</A></span> : String) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></span>
++ <span class="comment"><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_518_13">Set_Pattern</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_45"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_525_14" HREF="terminal_interface-curses-menus__adb.htm#ref_662_14">Pattern</A></span> (<span class="symbol"><A NAME="ref_525_23" HREF="terminal_interface-curses-menus__adb.htm#ref_662_23">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_526_23" HREF="terminal_interface-curses-menus__adb.htm#ref_663_23">Text</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_525_14">Pattern</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_46"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_535_14" HREF="terminal_interface-curses-menus__adb.htm#ref_671_14">Set_Format</A></span> (<span class="symbol"><A NAME="ref_535_26" HREF="terminal_interface-curses-menus__adb.htm#ref_671_26">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_536_26" HREF="terminal_interface-curses-menus__adb.htm#ref_672_26">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__adb.htm#ref_673_26">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>);
++ <span class="comment"><EM>-- Not implemented: 0 argument for Lines or Columns;</EM></span>
++ <span class="comment"><EM>-- instead use Format to get the current sizes</EM></span>
++ <span class="comment"><EM>-- The default format is 16 rows, 1 column. Calling</EM></span>
++ <span class="comment"><EM>-- set_menu_format with a null menu pointer will change this</EM></span>
++ <span class="comment"><EM>-- default. A zero row or column argument to set_menu_format</EM></span>
++ <span class="comment"><EM>-- is interpreted as a request not to change the current</EM></span>
++ <span class="comment"><EM>-- value.</EM></span>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_format.3x.html">set_menu_format()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_535_14">Set_Format</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_47"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_549_14" HREF="terminal_interface-curses-menus__adb.htm#ref_687_14">Format</A></span> (<span class="symbol"><A NAME="ref_549_22" HREF="terminal_interface-curses-menus__adb.htm#ref_687_22">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_550_22" HREF="terminal_interface-curses-menus__adb.htm#ref_688_22">Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_551_22" HREF="terminal_interface-curses-menus__adb.htm#ref_689_22">Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_549_14">Format</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_559_9">Menu_Hook_Function</A></span> <b>is</b> <b>access</b> <b>procedure</b> (<span class="symbol"><A NAME="ref_559_49">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>);
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_48"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_563_14" HREF="terminal_interface-curses-menus__adb.htm#ref_703_14">Set_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_563_34" HREF="terminal_interface-curses-menus__adb.htm#ref_703_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_564_34" HREF="terminal_interface-curses-menus__adb.htm#ref_704_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_563_14">Set_Item_Init_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_49"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_569_14" HREF="terminal_interface-curses-menus__adb.htm#ref_714_14">Set_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_569_34" HREF="terminal_interface-curses-menus__adb.htm#ref_714_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_570_34" HREF="terminal_interface-curses-menus__adb.htm#ref_715_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_569_14">Set_Item_Term_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_50"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__adb.htm#ref_725_14">Set_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_575_34" HREF="terminal_interface-curses-menus__adb.htm#ref_725_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_576_34" HREF="terminal_interface-curses-menus__adb.htm#ref_726_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_575_14">Set_Menu_Init_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_51"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_581_14" HREF="terminal_interface-curses-menus__adb.htm#ref_736_14">Set_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_581_34" HREF="terminal_interface-curses-menus__adb.htm#ref_736_34">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_582_34" HREF="terminal_interface-curses-menus__adb.htm#ref_737_34">Proc</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_581_14">Set_Menu_Term_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_52"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_587_13" HREF="terminal_interface-curses-menus__adb.htm#ref_747_13">Get_Item_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_587_33" HREF="terminal_interface-curses-menus__adb.htm#ref_747_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_587_13">Get_Item_Init_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_53"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_592_13" HREF="terminal_interface-curses-menus__adb.htm#ref_755_13">Get_Item_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_592_33" HREF="terminal_interface-curses-menus__adb.htm#ref_755_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_592_13">Get_Item_Term_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_54"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_597_13" HREF="terminal_interface-curses-menus__adb.htm#ref_763_13">Get_Menu_Init_Hook</A></span> (<span class="symbol"><A NAME="ref_597_33" HREF="terminal_interface-curses-menus__adb.htm#ref_763_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_597_13">Get_Menu_Init_Hook</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_55"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_602_13" HREF="terminal_interface-curses-menus__adb.htm#ref_771_13">Get_Menu_Term_Hook</A></span> (<span class="symbol"><A NAME="ref_602_33" HREF="terminal_interface-curses-menus__adb.htm#ref_771_33">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_559_9">Menu_Hook_Function</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_602_13">Get_Menu_Term_Hook</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_56"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_611_14" HREF="terminal_interface-curses-menus__adb.htm#ref_779_14">Redefine</A></span> (<span class="symbol"><A NAME="ref_611_24" HREF="terminal_interface-curses-menus__adb.htm#ref_779_24">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_612_24" HREF="terminal_interface-curses-menus__adb.htm#ref_780_24">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_611_14">Redefine</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_616_14">Set_Items</A></span> (<span class="symbol"><A NAME="ref_616_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_617_25">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>) <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_611_14">Redefine</A>;
++ <span class="comment"><EM>-- pragma Inline (Set_Items);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_57"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_621_13" HREF="terminal_interface-curses-menus__adb.htm#ref_803_13">Items</A></span> (<span class="symbol"><A NAME="ref_621_20" HREF="terminal_interface-curses-menus__adb.htm#ref_803_20">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_622_20" HREF="terminal_interface-curses-menus__adb.htm#ref_804_20">Index</A></span> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_621_13">Items</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_58"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_627_13" HREF="terminal_interface-curses-menus__adb.htm#ref_795_13">Item_Count</A></span> (<span class="symbol"><A NAME="ref_627_25" HREF="terminal_interface-curses-menus__adb.htm#ref_795_25">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>) <b>return</b> Natural;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-menus__ads.htm#ref_627_13">Item_Count</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_59"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_636_13" HREF="terminal_interface-curses-menus__adb.htm#ref_822_13">Create</A></span> (<span class="symbol"><A NAME="ref_636_21" HREF="terminal_interface-curses-menus__adb.htm#ref_822_21">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></span>
++ <span class="comment"><EM>-- Not inlined</EM></span>
++
++ <b>function</b> New_Menu (<span class="symbol"><A NAME="ref_640_23">Items</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_176_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_636_13">Create</A>;
++
++ <span class="comment"><EM>-- #1A NAME="AFU_60"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_643_14" HREF="terminal_interface-curses-menus__adb.htm#ref_841_14">Delete</A></span> (<span class="symbol"><A NAME="ref_643_22" HREF="terminal_interface-curses-menus__adb.htm#ref_841_22">Men</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></span>
++ <span class="comment"><EM>-- Reset Men to Null_Menu</EM></span>
++ <span class="comment"><EM>-- Not inlined</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_652_9">Driver_Result</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_652_27">Menu_Ok</A></span>,
++ <span class="symbol"><A NAME="ref_653_27">Request_Denied</A></span>,
++ <span class="symbol"><A NAME="ref_654_27">Unknown_Request</A></span>,
++ <span class="symbol"><A NAME="ref_655_27">No_Match</A></span>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_61"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_658_13" HREF="terminal_interface-curses-menus__adb.htm#ref_852_13">Driver</A></span> (<span class="symbol"><A NAME="ref_658_21" HREF="terminal_interface-curses-menus__adb.htm#ref_852_21">Men</A></span> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A>;
++ <span class="symbol"><A NAME="ref_659_21" HREF="terminal_interface-curses-menus__adb.htm#ref_853_21">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_652_9">Driver_Result</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></span>
++ <span class="comment"><EM>-- Driver is not inlined</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_62"#2|</EM></span>
++ <span class="comment"><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></span>
++<span class="comment"><EM>-------------------------------------------------------------------------------</EM></span>
+ <b>private</b>
+- <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+- <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := 0;
+- <A HREF="terminal_interface-curses-menus__ads.htm#ref_63_4">Null_Menu</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_9">Menu</A> := 0;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_57_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_51_9">Item</A> := 0;
++ <A HREF="terminal_interface-curses-menus__ads.htm#ref_58_4">Null_Menu</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_52_9">Menu</A> := 0;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_49_35">Menus</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_45_35">Menus</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-mouse__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-mouse__adb.htm 2011-03-19 23:18:40.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-mouse__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,160 +1,172 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-mouse.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.24 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Mouse --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.24 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_46_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_46_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_44_35">Mouse</A></span> <b>is</b>
+
+ <b>use</b> <b>type</b> System.Bit_Order;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_94_13">Has_Mouse</A></FONT> <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_90_13">Has_Mouse</A></span> <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_52_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_52_16">Mouse_Avail</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mouse_Avail, "has_mouse");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_52_16">Mouse_Avail</A> /= 0 <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_375_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_52_16">Mouse_Avail</A> /= 0 <b>then</b>
+ <b>return</b> True;
+ <b>else</b>
+ <b>return</b> False;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_13">Has_Mouse</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_90_13">Has_Mouse</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_125_13">Get_Mouse</A></span> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_64_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_64_12">Event_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_66_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_66_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_64_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_66_16">Getmouse</A></span> (<span class="symbol"><A NAME="ref_66_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Ev</A></span> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_64_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Getmouse, "getmouse");
+
+- <FONT COLOR=red><A NAME="ref_69_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>;
++ <span class="symbol"><A NAME="ref_69_7">Event</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_66_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_7">Event</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_125_13">Get_Mouse</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_77_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_78_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>;
+- <FONT COLOR=red><A NAME="ref_79_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_77_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_93_14">Register_Reportable_Event</A></span> (<span class="symbol"><A NAME="ref_77_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_94_7">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_78_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">State</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>;
++ <span class="symbol"><A NAME="ref_79_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_81_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A>);
+- <FONT COLOR=red><A NAME="ref_82_7">State_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A>);
++ <span class="symbol"><A NAME="ref_81_7">Button_Nr</A></span> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_7">Button</A>);
++ <span class="symbol"><A NAME="ref_82_7">State_Nr</A></span> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">State</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_99_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_26">Pressed</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_69_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_95_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Pressed</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_12">Real_Buttons</A> <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_81_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#ref_82_7">State_Nr</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_94_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_12">Real_Buttons</A> <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_81_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#ref_82_7">State_Nr</A>);
+ <b>else</b>
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_100_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_212_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_81_7">Button_Nr</A> - 4));
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_96_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_186_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_81_7">Button_Nr</A> - 4));
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_93_14">Register_Reportable_Event</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_95_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_106_14">Register_Reportable_Events</A></FONT> (<FONT COLOR=red><A NAME="ref_95_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_107_7">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_96_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_108_7">State</A></FONT> : Button_States;
+- <FONT COLOR=red><A NAME="ref_97_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_109_7">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_95_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_102_14">Register_Reportable_Events</A></span> (<span class="symbol"><A NAME="ref_95_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_96_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">State</A></span> : Button_States;
++ <span class="symbol"><A NAME="ref_97_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_105_7">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>)
+ <b>is</b>
+ <b>begin</b>
+- <b>for</b> <FONT COLOR=red><A NAME="ref_100_11">S</A></FONT> <b>in</b> Button_States'<b>Range</b> <b>loop</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_108_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_100_11">S</A>) <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_107_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_100_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_109_7">Mask</A>);
++ <b>for</b> <span class="symbol"><A NAME="ref_100_11">S</A></span> <b>in</b> Button_States'<b>Range</b> <b>loop</b>
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_100_11">S</A>) <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_93_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_100_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_105_7">Mask</A>);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>loop</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_106_14">Register_Reportable_Events</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_14">Register_Reportable_Events</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_107_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_107_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_119_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_107_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_115_13">Start_Mouse</A></span> (<span class="symbol"><A NAME="ref_107_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_115_26">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">All_Events</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_110_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="ref_110_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_110_16">MMask</A></span> (<span class="symbol"><A NAME="ref_110_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">M</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_111_23" HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">O</A></span> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
+ <b>pragma</b> Import (C, MMask, "mousemask");
+- <FONT COLOR=red><A NAME="ref_113_7">R</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <FONT COLOR=red><A NAME="ref_114_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_113_7">R</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_114_7">Old</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_119_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_114_7">Old</A>'<b>Access</b>);
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A> <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>;
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_110_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_115_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_114_7">Old</A>'<b>Access</b>);
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_4">No_Events</A> <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Beep</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_114_7">Old</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_115_13">Start_Mouse</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_123_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_123_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_124_25">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_123_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_120_14">End_Mouse</A></span> (<span class="symbol"><A NAME="ref_123_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_120_25">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_4">No_Events</A>)
+ <b>is</b>
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_124_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A> <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_120_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_4">No_Events</A> <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Beep</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_131_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_131_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <FONT COLOR=red><A NAME="ref_132_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_133_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_137_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_135_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <FONT COLOR=red><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_137_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) <b>is</b>
+- <FONT COLOR=red><A NAME="ref_138_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <b>begin</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>; <FONT COLOR=green><EM>-- preset to non real button;</EM></FONT>
+- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_217_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Left</A>;
+- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_218_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_26">Middle</A>;
+- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_219_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_26">Right</A>;
+- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Button4</A>;
+- <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_12">Real_Buttons</A> <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A>));
+- <b>for</b> <FONT COLOR=red><A NAME="ref_152_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>'<b>Range</b> <b>loop</b>
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_120_14">End_Mouse</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_131_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_14">Dispatch_Event</A></span> (<span class="symbol"><A NAME="ref_131_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_132_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_133_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_137_30">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_135_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A></span> (<span class="symbol"><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_137_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>) <b>is</b>
++ <span class="symbol"><A NAME="ref_138_7">L</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <b>begin</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_26">Alt</A>; <span class="comment"><EM>-- preset to non real button;</EM></span>
++ <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_189_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_26">Left</A>;
++ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_191_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_26">Middle</A>;
++ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_193_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_26">Right</A>;
++ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_195_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_63_26">Button4</A>;
++ <b>end</b> <b>if</b>;
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_12">Real_Buttons</A> <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A>));
++ <b>for</b> <span class="symbol"><A NAME="ref_152_14">I</A></span> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>'<b>Range</b> <b>loop</b>
+ <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_152_14">I</A>;
+ <b>exit</b>;
+@@ -162,62 +174,62 @@
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_138_7">L</A>;
+ <b>end</b> <b>loop</b>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_26">Pressed</A>;
+- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_212_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Control</A>;
+- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_213_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_69_26">Shift</A>;
+- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_214_4">BUTTON_ALT</A>) /= 0 <b>then</b>
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>;
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_133_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Pressed</A>;
++ <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_186_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Control</A>;
++ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_187_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_26">Shift</A>;
++ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_188_4">BUTTON_ALT</A>) /= 0 <b>then</b>
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_132_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_26">Alt</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_171_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_171_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>;
+- <FONT COLOR=red><A NAME="ref_172_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_173_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_135_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_136_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>)
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_177_7">Mask</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A>;
+- <b>begin</b>
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_135_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A>);
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_134_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A>);
+- <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_177_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_136_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">State</A>);
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_171_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_129_14">Get_Event</A></span> (<span class="symbol"><A NAME="ref_171_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_129_25">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>;
++ <span class="symbol"><A NAME="ref_172_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_130_25">Y</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_173_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_131_25">X</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_132_25">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>)
++ <b>is</b>
++ <span class="symbol"><A NAME="ref_177_7">Mask</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_166_10">Bstate</A>;
++ <b>begin</b>
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_131_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_10">X</A>);
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_130_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_13">Y</A>);
++ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_131_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_177_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_132_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_25">State</A>);
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_14">Get_Event</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_184_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_184_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_145_27">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_184_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_141_14">Unget_Mouse</A></span> (<span class="symbol"><A NAME="ref_184_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_141_27">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_186_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_186_28" HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_186_16">Ungetmouse</A></span> (<span class="symbol"><A NAME="ref_186_28" HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ev</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Ungetmouse, "ungetmouse");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_145_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_186_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_141_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_141_14">Unget_Mouse</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_194_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_194_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_150_33">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_195_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_194_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_146_13">Enclosed_In_Window</A></span> (<span class="symbol"><A NAME="ref_194_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_146_33">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_195_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_147_33">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_197_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="ref_197_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_197_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_197_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_197_16">Wenclose</A></span> (<span class="symbol"><A NAME="ref_197_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_197_40" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Y</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>; <span class="symbol"><A NAME="ref_197_51" HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">X</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Wenclose, "wenclose");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_150_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_151_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A>))
+- = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_197_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_146_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_147_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_147_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_10">X</A>))
++ = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_146_13">Enclosed_In_Window</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_209_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_157_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_209_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_157_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural
++ <b>function</b> <span class="symbol"><A NAME="ref_209_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_153_13">Mouse_Interval</A></span> (<span class="symbol"><A NAME="ref_209_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_153_29">Msec</A></span> : Natural := 200) <b>return</b> Natural
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_211_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="ref_211_31" HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Msec</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_211_16">Mouseinterval</A></span> (<span class="symbol"><A NAME="ref_211_31" HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Msec</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mouseinterval, "mouseinterval");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_157_29">Msec</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_157_13">Mouse_Interval</A>;
++ <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_211_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_153_29">Msec</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_153_13">Mouse_Interval</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_44_35">Mouse</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-mouse__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-mouse__ads.htm 2011-03-19 23:18:40.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-mouse__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,231 +1,219 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-mouse.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.29 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 12:35:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- mouse binding.</EM></FONT>
+-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
+-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Mouse --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.31 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:57 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_46_40">Mouse</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-mouse__adb.htm#ref_46_40">Mouse</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_44_35">Mouse</A>);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</EM></FONT>
+- <FONT COLOR=green><EM>-- in the parent package.</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented:</EM></FONT>
+- <FONT COLOR=green><EM>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></FONT>
+- <FONT COLOR=green><EM>-- or Start_Mouse)</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_60_9">Event_Mask</A></FONT> <b>is</b> <b>private</b>;
+- <FONT COLOR=red><A NAME="ref_61_4">No_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <FONT COLOR=red><A NAME="ref_62_4">All_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_64_9">Mouse_Button</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_64_26">Left</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_65_26">Middle</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_66_26">Right</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_67_26">Button4</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_68_26">Control</A></FONT>, <FONT COLOR=green><EM>-- Control Key</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_69_26">Shift</A></FONT>, <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_70_26">Alt</A></FONT>); <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_72_12">Real_Buttons</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_67_26">Button4</A>;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_73_12">Modifier_Keys</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Alt</A>;
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_75_9">Button_State</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_75_26">Released</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_76_26">Pressed</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_77_26">Clicked</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_78_26">Double_Clicked</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_79_26">Triple_Clicked</A></FONT>);
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates</EM></span>
++ <span class="comment"><EM>-- in the parent package.</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- Not implemented:</EM></span>
++ <span class="comment"><EM>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></span>
++ <span class="comment"><EM>-- or Start_Mouse)</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_56_9">Event_Mask</A></span> <b>is</b> <b>private</b>;
++ <span class="symbol"><A NAME="ref_57_4">No_Events</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_58_4">All_Events</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_60_9">Mouse_Button</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_60_26">Left</A></span>, <span class="comment"><EM>-- aka: Button 1</EM></span>
++ <span class="symbol"><A NAME="ref_61_26">Middle</A></span>, <span class="comment"><EM>-- aka: Button 2</EM></span>
++ <span class="symbol"><A NAME="ref_62_26">Right</A></span>, <span class="comment"><EM>-- aka: Button 3</EM></span>
++ <span class="symbol"><A NAME="ref_63_26">Button4</A></span>, <span class="comment"><EM>-- aka: Button 4</EM></span>
++ <span class="symbol"><A NAME="ref_64_26">Control</A></span>, <span class="comment"><EM>-- Control Key</EM></span>
++ <span class="symbol"><A NAME="ref_65_26">Shift</A></span>, <span class="comment"><EM>-- Shift Key</EM></span>
++ <span class="symbol"><A NAME="ref_66_26">Alt</A></span>); <span class="comment"><EM>-- ALT Key</EM></span>
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_68_12">Real_Buttons</A></span> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_26">Left</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_63_26">Button4</A>;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_69_12">Modifier_Keys</A></span> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_26">Control</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_26">Alt</A>;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_71_9">Button_State</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_71_26">Released</A></span>,
++ <span class="symbol"><A NAME="ref_72_26">Pressed</A></span>,
++ <span class="symbol"><A NAME="ref_73_26">Clicked</A></span>,
++ <span class="symbol"><A NAME="ref_74_26">Double_Clicked</A></span>,
++ <span class="symbol"><A NAME="ref_75_26">Triple_Clicked</A></span>);
+
+- <b>type</b> Button_States <b>is</b> <b>array</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>) <b>of</b> Boolean;
++ <b>type</b> Button_States <b>is</b> <b>array</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>) <b>of</b> Boolean;
+ <b>pragma</b> Pack (Button_States);
+
+- <FONT COLOR=red><A NAME="ref_84_4">All_Clicks</A></FONT> : <b>constant</b> Button_States := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_77_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_26">Triple_Clicked</A> =&gt; True,
++ <span class="symbol"><A NAME="ref_80_4">All_Clicks</A></span> : <b>constant</b> Button_States := (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_26">Clicked</A> .. <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_26">Triple_Clicked</A> =&gt; True,
+ <b>others</b> =&gt; False);
+- <FONT COLOR=red><A NAME="ref_86_4">All_States</A></FONT> : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
++ <span class="symbol"><A NAME="ref_82_4">All_States</A></span> : <b>constant</b> Button_States := (<b>others</b> =&gt; True);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_88_9">Mouse_Event</A></FONT> <b>is</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_84_9">Mouse_Event</A></span> <b>is</b> <b>private</b>;
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_50_13">Has_Mouse</A></FONT> <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- Return true if a mouse device is supported, false otherwise.</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_97_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_14">Register_Reportable_Event</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_98_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_41">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_99_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_78_41">State</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>;
+- <FONT COLOR=red><A NAME="ref_100_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_79_41">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>);
+- <FONT COLOR=green><EM>-- Stores the event described by the button and the state in the mask.</EM></FONT>
+- <FONT COLOR=green><EM>-- Before you call this the first time, you should initialize the mask</EM></FONT>
+- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_97_14">Register_Reportable_Event</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_14">Register_Reportable_Events</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_107_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_42">Button</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_108_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_96_42">State</A></FONT> : Button_States;
+- <FONT COLOR=red><A NAME="ref_109_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_97_42">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>);
+- <FONT COLOR=green><EM>-- Register all events described by the Button and the State bitmap.</EM></FONT>
+- <FONT COLOR=green><EM>-- Before you call this the first time, you should initialize the mask</EM></FONT>
+- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <FONT COLOR=green><EM>-- There is one difference to mousmask(): we return the value of the</EM></FONT>
+- <FONT COLOR=green><EM>-- old mask, that means the event mask value before this call.</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: The library version</EM></FONT>
+- <FONT COLOR=green><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_119_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_119_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_119_13">Start_Mouse</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_124_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_124_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_25">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A>);
+- <FONT COLOR=green><EM>-- Terminates the mouse, restores the specified event mask</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_124_14">End_Mouse</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_129_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_62_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_13">Get_Mouse</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_133_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_133_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_25">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>;
+- <FONT COLOR=red><A NAME="ref_134_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_172_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_135_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_173_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_136_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Mouse_Button</A>;
+- <FONT COLOR=red><A NAME="ref_137_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_75_9">Button_State</A>);
+- <FONT COLOR=green><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT>
+- <FONT COLOR=green><EM>-- may not be identical to window coordinates.</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: Get_Event only reports one event, the C library</EM></FONT>
+- <FONT COLOR=green><EM>-- version supports multiple events, e.g. {click-1, click-3}</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_14">Get_Event</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_145_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_145_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_27">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_145_14">Unget_Mouse</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_150_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_150_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_33">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_151_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_195_33">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- But : use event instead of screen coordinates.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_150_13">Enclosed_In_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_157_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_157_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_157_13">Mouse_Interval</A>);
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_90_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_50_13">Has_Mouse</A></span> <b>return</b> Boolean;
++ <span class="comment"><EM>-- Return true if a mouse device is supported, false otherwise.</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_93_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_14">Register_Reportable_Event</A></span>
++ (<span class="symbol"><A NAME="ref_94_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_77_41">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_95_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_78_41">State</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>;
++ <span class="symbol"><A NAME="ref_96_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_79_41">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>);
++ <span class="comment"><EM>-- Stores the event described by the button and the state in the mask.</EM></span>
++ <span class="comment"><EM>-- Before you call this the first time, you should initialize the mask</EM></span>
++ <span class="comment"><EM>-- with the Empty_Mask constant</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_93_14">Register_Reportable_Event</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_102_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_14">Register_Reportable_Events</A></span>
++ (<span class="symbol"><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_95_42">Button</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_96_42">State</A></span> : Button_States;
++ <span class="symbol"><A NAME="ref_105_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_97_42">Mask</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>);
++ <span class="comment"><EM>-- Register all events described by the Button and the State bitmap.</EM></span>
++ <span class="comment"><EM>-- Before you call this the first time, you should initialize the mask</EM></span>
++ <span class="comment"><EM>-- with the Empty_Mask constant</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <span class="comment"><EM>-- There is one difference to mousmask(): we return the value of the</EM></span>
++ <span class="comment"><EM>-- old mask, that means the event mask value before this call.</EM></span>
++ <span class="comment"><EM>-- Not Implemented: The library version</EM></span>
++ <span class="comment"><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_115_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_13">Start_Mouse</A></span> (<span class="symbol"><A NAME="ref_115_26" HREF="terminal_interface-curses-mouse__adb.htm#ref_107_26">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">All_Events</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_115_13">Start_Mouse</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_120_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_14">End_Mouse</A></span> (<span class="symbol"><A NAME="ref_120_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_123_25">Mask</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_4">No_Events</A>);
++ <span class="comment"><EM>-- Terminates the mouse, restores the specified event mask</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_120_14">End_Mouse</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_125_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_62_13">Get_Mouse</A></span> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_125_13">Get_Mouse</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_129_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_14">Get_Event</A></span> (<span class="symbol"><A NAME="ref_129_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_171_25">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>;
++ <span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_172_25">Y</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_131_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_173_25">X</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_132_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_174_25">Button</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Mouse_Button</A>;
++ <span class="symbol"><A NAME="ref_133_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">State</A></span> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_9">Button_State</A>);
++ <span class="comment"><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></span>
++ <span class="comment"><EM>-- may not be identical to window coordinates.</EM></span>
++ <span class="comment"><EM>-- Not Implemented: Get_Event only reports one event, the C library</EM></span>
++ <span class="comment"><EM>-- version supports multiple events, e.g. {click-1, click-3}</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_129_14">Get_Event</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_141_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_14">Unget_Mouse</A></span> (<span class="symbol"><A NAME="ref_141_27" HREF="terminal_interface-curses-mouse__adb.htm#ref_184_27">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_141_14">Unget_Mouse</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_146_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_13">Enclosed_In_Window</A></span> (<span class="symbol"><A NAME="ref_146_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_194_33">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_147_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_195_33">Event</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></span>
++ <span class="comment"><EM>-- But : use event instead of screen coordinates.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_146_13">Enclosed_In_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_153_13" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_13">Mouse_Interval</A></span> (<span class="symbol"><A NAME="ref_153_29" HREF="terminal_interface-curses-mouse__adb.htm#ref_209_29">Msec</A></span> : Natural := 200) <b>return</b> Natural;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_153_13">Mouse_Interval</A>);
+
+ <b>private</b>
+- <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.unsigned_long;
++ <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.unsigned_long;
+
+- <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A> <b>is</b>
++ <b>type</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_166_10">Id</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'First) ..
+- Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+- <FONT COLOR=red><A NAME="ref_168_10">X</A></FONT>, <FONT COLOR=red><A NAME="ref_168_13">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_168_16">Z</A></FONT> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'First) ..
+- Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int'Last);
+- <FONT COLOR=red><A NAME="ref_170_10">Bstate</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A>;
++ <span class="symbol"><A NAME="ref_162_10">Id</A></span> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'First) ..
++ Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last);
++ <span class="symbol"><A NAME="ref_164_10">X</A></span>, <span class="symbol"><A NAME="ref_164_13">Y</A></span>, <span class="symbol"><A NAME="ref_164_16">Z</A></span> : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int'First) ..
++ Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int'Last);
++ <span class="symbol"><A NAME="ref_166_10">Bstate</A></span> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A>);
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_88_9">Mouse_Event</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_166_10">Id</A> <b>at</b> 0 <b>range</b> 0 .. 15;
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_10">X</A> <b>at</b> 0 <b>range</b> 32 .. 63;
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_13">Y</A> <b>at</b> 0 <b>range</b> 64 .. 95;
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_168_16">Z</A> <b>at</b> 0 <b>range</b> 96 .. 127;
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_170_10">Bstate</A> <b>at</b> 0 <b>range</b> 128 .. 159;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_162_10">Id</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_310_4">MEVENT_id_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_311_4">MEVENT_id_Last</A>;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_10">X</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_312_4">MEVENT_x_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_313_4">MEVENT_x_Last</A>;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_13">Y</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_314_4">MEVENT_y_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_315_4">MEVENT_y_Last</A>;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_164_16">Z</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_316_4">MEVENT_z_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_317_4">MEVENT_z_Last</A>;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_166_10">Bstate</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_318_4">MEVENT_bstate_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_319_4">MEVENT_bstate_Last</A>;
+ <b>end</b> <b>record</b>;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
++ <b>for</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_84_9">Mouse_Event</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_320_4">MEVENT_Size</A>;
++ Generation_Bit_Order : System.Bit_Order <b>renames</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_10_4">Bit_Order</A>;
+
+- <FONT COLOR=red><A NAME="ref_185_4">Generation_Bit_Order</A></FONT> : <b>constant</b> System.Bit_Order := System.Low_Order_First;
+- <FONT COLOR=green><EM>-- This constant may be different on your system.</EM></FONT>
++ <span class="symbol"><A NAME="ref_186_4">BUTTON_CTRL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_352_4">BUTTON_CTRL</A>;
++ <span class="symbol"><A NAME="ref_187_4">BUTTON_SHIFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_353_4">BUTTON_SHIFT</A>;
++ <span class="symbol"><A NAME="ref_188_4">BUTTON_ALT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_354_4">BUTTON_ALT</A>;
++ <span class="symbol"><A NAME="ref_189_4">BUTTON1_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_330_4">all_events_button_1</A>;
++ <span class="symbol"><A NAME="ref_191_4">BUTTON2_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_337_4">all_events_button_2</A>;
++ <span class="symbol"><A NAME="ref_193_4">BUTTON3_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_344_4">all_events_button_3</A>;
++ <span class="symbol"><A NAME="ref_195_4">BUTTON4_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_351_4">all_events_button_4</A>;
++ <span class="symbol"><A NAME="ref_197_4">ALL_MOUSE_EVENTS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_356_4">ALL_MOUSE_EVENTS</A>;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_57_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := 0;
++ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_58_4">All_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_56_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_197_4">ALL_MOUSE_EVENTS</A>;
+
+- <FONT COLOR=red><A NAME="ref_188_4">BUTTON1_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000001#;
+- <FONT COLOR=red><A NAME="ref_189_4">BUTTON1_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000002#;
+- <FONT COLOR=red><A NAME="ref_190_4">BUTTON1_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000004#;
+- <FONT COLOR=red><A NAME="ref_191_4">BUTTON1_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000010#;
+- <FONT COLOR=red><A NAME="ref_192_4">BUTTON1_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000020#;
+- <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000040#;
+- <FONT COLOR=red><A NAME="ref_194_4">BUTTON2_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000100#;
+- <FONT COLOR=red><A NAME="ref_195_4">BUTTON2_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000200#;
+- <FONT COLOR=red><A NAME="ref_196_4">BUTTON2_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000400#;
+- <FONT COLOR=red><A NAME="ref_197_4">BUTTON2_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000001000#;
+- <FONT COLOR=red><A NAME="ref_198_4">BUTTON2_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000002000#;
+- <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000004000#;
+- <FONT COLOR=red><A NAME="ref_200_4">BUTTON3_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000010000#;
+- <FONT COLOR=red><A NAME="ref_201_4">BUTTON3_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000020000#;
+- <FONT COLOR=red><A NAME="ref_202_4">BUTTON3_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000040000#;
+- <FONT COLOR=red><A NAME="ref_203_4">BUTTON3_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000100000#;
+- <FONT COLOR=red><A NAME="ref_204_4">BUTTON3_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000200000#;
+- <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000400000#;
+- <FONT COLOR=red><A NAME="ref_206_4">BUTTON4_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00001000000#;
+- <FONT COLOR=red><A NAME="ref_207_4">BUTTON4_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00002000000#;
+- <FONT COLOR=red><A NAME="ref_208_4">BUTTON4_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00004000000#;
+- <FONT COLOR=red><A NAME="ref_209_4">BUTTON4_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00010000000#;
+- <FONT COLOR=red><A NAME="ref_210_4">BUTTON4_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00020000000#;
+- <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00040000000#;
+- <FONT COLOR=red><A NAME="ref_212_4">BUTTON_CTRL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00100000000#;
+- <FONT COLOR=red><A NAME="ref_213_4">BUTTON_SHIFT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00200000000#;
+- <FONT COLOR=red><A NAME="ref_214_4">BUTTON_ALT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00400000000#;
+- <FONT COLOR=red><A NAME="ref_215_4">REPORT_MOUSE_POSITION</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#01000000000#;
+- <FONT COLOR=red><A NAME="ref_216_4">ALL_MOUSE_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00777777777#;
+- <FONT COLOR=red><A NAME="ref_217_4">BUTTON1_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000000077#;
+- <FONT COLOR=red><A NAME="ref_218_4">BUTTON2_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000007700#;
+- <FONT COLOR=red><A NAME="ref_219_4">BUTTON3_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00000770000#;
+- <FONT COLOR=red><A NAME="ref_220_4">BUTTON4_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 8#00077000000#;
+-
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_61_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := 0;
+- <A HREF="terminal_interface-curses-mouse__ads.htm#ref_62_4">All_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_60_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_216_4">ALL_MOUSE_EVENTS</A>;
+-
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_44_35">Mouse</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm 2011-02-25 23:43:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,84 +1,96 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-panels-user_data.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
+-<b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
++<b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_47_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<span class="symbol"><A NAME="ref_47_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A></span> <b>is</b>
+
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_51_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_51_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_54_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_55_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Addr</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_54_16">Set_Panel_Userptr</A></span> (<span class="symbol"><A NAME="ref_54_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_55_35" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Addr</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Set_Panel_Userptr, "set_panel_userptr");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_63_28" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_63_28" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_65_31" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_65_16">Panel_Userptr</A></span> (<span class="symbol"><A NAME="ref_65_31" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, Panel_Userptr, "panel_userptr");
+ <b>begin</b>
+ <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_71_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_72_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_71_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_71_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_72_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm 2010-01-09 20:31:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,75 +1,87 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-panels-user_data.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.15 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_43_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_43_9">User</A>;
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<FONT COLOR=red><A NAME="ref_45_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_47_47">User_Data</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_53_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Data</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></FONT>
++ <b>type</b> <span class="symbol"><A NAME="ref_43_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User</A></span> <b>is</b> <b>limited</b> <b>private</b>;
++ <b>type</b> <span class="symbol"><A NAME="ref_44_9" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_43_9">User</A>;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<span class="symbol"><A NAME="ref_45_42" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_47_47">User_Data</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_53_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_14">Set_User_Data</A></span> (<span class="symbol"><A NAME="ref_53_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_51_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Data</A></span> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></span>
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_59_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_28">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_14">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_59_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_71_29">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Data</A></span> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_13">Get_User_Data</A></span> (<span class="symbol"><A NAME="ref_64_28" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_63_28">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Get_User_Data);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-panels__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels__adb.htm 2011-02-25 23:43:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-panels__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,171 +1,183 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-panels.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-panels.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_45_40" HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A></span> <b>is</b>
+
+- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_66_13">Create</A></span> (<span class="symbol"><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_66_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">Newpanel</A></span> (<span class="symbol"><A NAME="ref_51_26" HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <b>pragma</b> Import (C, Newpanel, "new_panel");
+
+- <FONT COLOR=red><A NAME="ref_54_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_54_7">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_67_21">Win</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_66_21">Win</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#ref_53_4">Null_Panel</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_66_13">Create</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_63_22" HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_63_14" HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_63_22" HREF="terminal_interface-curses-panels__ads.htm#ref_76_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="ref_65_29" HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_65_16">Bottompanel</A></span> (<span class="symbol"><A NAME="ref_65_29" HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Bottompanel, "bottom_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_76_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_73_19" HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_73_14" HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A></span> (<span class="symbol"><A NAME="ref_73_19" HREF="terminal_interface-curses-panels__ads.htm#ref_81_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_75_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="ref_75_26" HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_75_16">Toppanel</A></span> (<span class="symbol"><A NAME="ref_75_26" HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Toppanel, "top_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_81_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_83_20" HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_83_14" HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A></span> (<span class="symbol"><A NAME="ref_83_20" HREF="terminal_interface-curses-panels__ads.htm#ref_86_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_85_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_85_27" HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_85_16">Showpanel</A></span> (<span class="symbol"><A NAME="ref_85_27" HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Showpanel, "show_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_86_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_93_20" HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_93_14" HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A></span> (<span class="symbol"><A NAME="ref_93_20" HREF="terminal_interface-curses-panels__ads.htm#ref_96_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_95_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="ref_95_27" HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_95_16">Hidepanel</A></span> (<span class="symbol"><A NAME="ref_95_27" HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Hidepanel, "hide_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_96_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_103_13" HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_103_25" HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_103_13" HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_103_25" HREF="terminal_interface-curses-panels__ads.htm#ref_101_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_105_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_105_27" HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_105_16">Panel_Win</A></span> (<span class="symbol"><A NAME="ref_105_27" HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Panel_Win, "panel_window");
+
+- <FONT COLOR=red><A NAME="ref_108_7">Win</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_25">Pan</A>);
++ <span class="symbol"><A NAME="ref_108_7">Win</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_101_25">Pan</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_116_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A></span> (<span class="symbol"><A NAME="ref_116_23" HREF="terminal_interface-curses-panels__ads.htm#ref_110_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_119_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="ref_119_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_120_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_119_16">Replace_Pan</A></span> (<span class="symbol"><A NAME="ref_119_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_120_29" HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Replace_Pan, "replace_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#ref_112_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_110_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_128_14" HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_132_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_132_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_133_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_134_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_128_14" HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A></span> (<span class="symbol"><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_116_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_132_16">Move</A></span> (<span class="symbol"><A NAME="ref_132_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_133_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_134_22" HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Move, "move_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_119_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_116_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_142_13" HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_142_24" HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_142_13" HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_142_24" HREF="terminal_interface-curses-panels__ads.htm#ref_123_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_144_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_144_30" HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_144_16">Panel_Hidden</A></span> (<span class="symbol"><A NAME="ref_144_30" HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Panel_Hidden, "panel_hidden");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_123_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_154_14" HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_154_22" HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_154_14" HREF="terminal_interface-curses-panels__ads.htm#ref_138_14">Delete</A></span> (<span class="symbol"><A NAME="ref_154_22" HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_156_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="ref_156_27" HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_156_16">Del_Panel</A></span> (<span class="symbol"><A NAME="ref_156_27" HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Del_Panel, "del_panel");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_60_4">Panel_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses-panels__ads.htm#ref_139_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A>;
+- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_139_14">Delete</A>;
++ <A HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#ref_53_4">Null_Panel</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_138_14">Delete</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-panels__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-panels__ads.htm 2010-05-29 21:56:06.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-panels__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,153 +1,164 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-panels.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-panels.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.20 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Panels --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.22 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:57 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-panels__adb.htm#ref_45_40">Panels</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>);
+- <b>pragma</b> Linker_Options ("-lpanel");
+- <b>pragma</b> Linker_Options ("-lncurses");
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_49_9">Panel</A></FONT> <b>is</b> <b>private</b>;
+-
+- <FONT COLOR=green><EM>---------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Interface constants --</EM></FONT>
+- <FONT COLOR=green><EM>---------------------------</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_54_4">Null_Panel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+-
+- <FONT COLOR=green><EM>-------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
+- <FONT COLOR=green><EM>-------------------</EM></FONT>
+-
+- <FONT COLOR=red><A NAME="ref_60_4">Panel_Exception</A></FONT> : <b>exception</b>;
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-panels__adb.htm#ref_49_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_67_21" HREF="terminal_interface-curses-panels__adb.htm#ref_49_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-panels__adb.htm#ref_45_40">Panels</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>);
++ <b>pragma</b> Linker_Options ("-lpanel" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_48_9">Panel</A></span> <b>is</b> <b>private</b>;
++
++ <span class="comment"><EM>---------------------------</EM></span>
++ <span class="comment"><EM>-- Interface constants --</EM></span>
++ <span class="comment"><EM>---------------------------</EM></span>
++ <span class="symbol"><A NAME="ref_53_4">Null_Panel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++
++ <span class="comment"><EM>-------------------</EM></span>
++ <span class="comment"><EM>-- Exceptions --</EM></span>
++ <span class="comment"><EM>-------------------</EM></span>
++
++ <span class="symbol"><A NAME="ref_59_4">Panel_Exception</A></span> : <b>exception</b>;
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_66_13" HREF="terminal_interface-curses-panels__adb.htm#ref_49_13">Create</A></span> (<span class="symbol"><A NAME="ref_66_21" HREF="terminal_interface-curses-panels__adb.htm#ref_49_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></span>
+ <b>pragma</b> Inline (Create);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>function</b> New_Panel (<FONT COLOR=red><A NAME="ref_72_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_67_13">Create</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- pragma Inline (New_Panel);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-panels__adb.htm#ref_63_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_77_22" HREF="terminal_interface-curses-panels__adb.htm#ref_63_22">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_77_14">Bottom</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_82_14" HREF="terminal_interface-curses-panels__adb.htm#ref_73_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_82_19" HREF="terminal_interface-curses-panels__adb.htm#ref_73_19">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_82_14">Top</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-panels__adb.htm#ref_83_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_87_20" HREF="terminal_interface-curses-panels__adb.htm#ref_83_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_87_14">Show</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14">Update_Panels</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>function</b> New_Panel (<span class="symbol"><A NAME="ref_71_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_66_13">Create</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></span>
++ <span class="comment"><EM>-- pragma Inline (New_Panel);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-panels__adb.htm#ref_63_14">Bottom</A></span> (<span class="symbol"><A NAME="ref_76_22" HREF="terminal_interface-curses-panels__adb.htm#ref_63_22">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_81_14" HREF="terminal_interface-curses-panels__adb.htm#ref_73_14">Top</A></span> (<span class="symbol"><A NAME="ref_81_19" HREF="terminal_interface-curses-panels__adb.htm#ref_73_19">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_86_14" HREF="terminal_interface-curses-panels__adb.htm#ref_83_14">Show</A></span> (<span class="symbol"><A NAME="ref_86_20" HREF="terminal_interface-curses-panels__adb.htm#ref_83_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_91_14">Update_Panels</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></span>
+ <b>pragma</b> Import (C, Update_Panels, "update_panels");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_97_14" HREF="terminal_interface-curses-panels__adb.htm#ref_93_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_97_20" HREF="terminal_interface-curses-panels__adb.htm#ref_93_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_97_14">Hide</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-panels__adb.htm#ref_103_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_102_25" HREF="terminal_interface-curses-panels__adb.htm#ref_103_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
+- <b>function</b> Panel_Window (<FONT COLOR=red><A NAME="ref_107_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_102_13">Get_Window</A>;
+- <FONT COLOR=green><EM>-- pragma Inline (Panel_Window);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses-panels__adb.htm#ref_116_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_116_23">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_112_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_111_14">Replace</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_117_14" HREF="terminal_interface-curses-panels__adb.htm#ref_128_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_128_20">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_119_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_14">Move</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_124_13" HREF="terminal_interface-curses-panels__adb.htm#ref_142_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_124_24" HREF="terminal_interface-curses-panels__adb.htm#ref_142_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_124_13">Is_Hidden</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_129_13">Above</A></FONT> (<FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_129_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_96_14" HREF="terminal_interface-curses-panels__adb.htm#ref_93_14">Hide</A></span> (<span class="symbol"><A NAME="ref_96_20" HREF="terminal_interface-curses-panels__adb.htm#ref_93_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_101_13" HREF="terminal_interface-curses-panels__adb.htm#ref_103_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_101_25" HREF="terminal_interface-curses-panels__adb.htm#ref_103_25">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span>
++ <b>function</b> Panel_Window (<span class="symbol"><A NAME="ref_106_27">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> <b>renames</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A>;
++ <span class="comment"><EM>-- pragma Inline (Panel_Window);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_110_14" HREF="terminal_interface-curses-panels__adb.htm#ref_116_14">Replace</A></span> (<span class="symbol"><A NAME="ref_110_23" HREF="terminal_interface-curses-panels__adb.htm#ref_116_23">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__adb.htm#ref_128_14">Move</A></span> (<span class="symbol"><A NAME="ref_116_20" HREF="terminal_interface-curses-panels__adb.htm#ref_128_20">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="symbol"><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_123_13" HREF="terminal_interface-curses-panels__adb.htm#ref_142_13">Is_Hidden</A></span> (<span class="symbol"><A NAME="ref_123_24" HREF="terminal_interface-curses-panels__adb.htm#ref_142_24">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_128_13">Above</A></span> (<span class="symbol"><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_128_13">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></span>
+ <b>pragma</b> Import (C, Above, "panel_above");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_134_13">Below</A></FONT> (<FONT COLOR=red><A NAME="ref_134_20" HREF="terminal_interface-curses-panels__ads.htm#ref_134_13">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_133_13">Below</A></span> (<span class="symbol"><A NAME="ref_133_20" HREF="terminal_interface-curses-panels__ads.htm#ref_133_13">Pan</A></span> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></span>
+ <b>pragma</b> Import (C, Below, "panel_below");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_139_14" HREF="terminal_interface-curses-panels__adb.htm#ref_154_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_139_22" HREF="terminal_interface-curses-panels__adb.htm#ref_154_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_138_14" HREF="terminal_interface-curses-panels__adb.htm#ref_154_14">Delete</A></span> (<span class="symbol"><A NAME="ref_138_22" HREF="terminal_interface-curses-panels__adb.htm#ref_154_22">Pan</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></span>
+ <b>pragma</b> Inline (Delete);
+
+ <b>private</b>
+- <b>type</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+- <A HREF="terminal_interface-curses-panels__ads.htm#ref_54_4">Null_Panel</A> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_49_9">Panel</A> := 0;
++ <b>type</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <A HREF="terminal_interface-curses-panels__ads.htm#ref_53_4">Null_Panel</A> : <b>constant</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A> := 0;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_44_35">Panels</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-putwin__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-putwin__adb.htm 2011-03-19 23:18:41.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-putwin__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,83 +1,95 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-putwin.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-putwin.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.PutWin --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.PutWin --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
+
+ <b>with</b> Ada.Streams.Stream_IO.C_Streams;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C_Streams;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_45_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C_Streams;
+- <b>package</b> <FONT COLOR=red><A NAME="ref_48_12">ACS</A></FONT> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
+- <b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_52_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_53_16">putwin</A></FONT> (<FONT COLOR=red><A NAME="ref_53_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_53_38" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_47_12">ICS</A></span> <b>renames</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C_Streams;
++ <b>package</b> <span class="symbol"><A NAME="ref_48_12">ACS</A></span> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
++ <b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_51_14" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A></span> (<span class="symbol"><A NAME="ref_51_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_52_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A></span> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_53_16">putwin</A></span> (<span class="symbol"><A NAME="ref_53_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_53_38" HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">f</A></span> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, putwin, "putwin");
+
+- <FONT COLOR=red><A NAME="ref_56_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A>));
++ <span class="symbol"><A NAME="ref_56_7">R</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_56_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_56_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Ok</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_63_25" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">getwin</A></FONT> (<FONT COLOR=red><A NAME="ref_65_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_63_25" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A></span> : Ada.Streams.Stream_IO.File_Type)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_65_16">getwin</A></span> (<span class="symbol"><A NAME="ref_65_24" HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">f</A></span> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, getwin, "getwin");
+
+- <FONT COLOR=red><A NAME="ref_68_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A>));
++ <span class="symbol"><A NAME="ref_68_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+ <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-putwin__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-putwin__ads.htm 2006-09-23 20:31:32.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-putwin__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,56 +1,68 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-putwin.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-putwin.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.PutWin --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.PutWin --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
+
+ <b>with</b> Ada.Streams.Stream_IO;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_43_35" HREF="terminal_interface-curses-putwin__adb.htm#ref_45_40">PutWin</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_43_35" HREF="terminal_interface-curses-putwin__adb.htm#ref_45_40">PutWin</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_45_14" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_14">Put_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_45_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_46_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_45_14" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_14">Put_Window</A></span> (<span class="symbol"><A NAME="ref_45_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_46_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_26">File</A></span> : Ada.Streams.Stream_IO.File_Type);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_48_25" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_48_13" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_13">Get_Window</A></span> (<span class="symbol"><A NAME="ref_48_25" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_25">File</A></span> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-termcap__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-termcap__adb.htm 2011-03-19 23:18:41.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-termcap__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,82 +1,94 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-termcap.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-termcap.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Termcap --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Termcap --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000-2006,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_47_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_47_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A></span> <b>is</b>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="ref_49_24" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A></FONT> : String) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_49_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A></span> (<span class="symbol"><A NAME="ref_49_24" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A></span> : String) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="ref_51_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="ref_51_44" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">val</A></FONT> : char_array)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_51_16">tgetent</A></span> (<span class="symbol"><A NAME="ref_51_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">name</A></span> : char_array; <span class="symbol"><A NAME="ref_51_44" HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">val</A></span> : char_array)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, tgetent, "tgetent");
+- <FONT COLOR=red><A NAME="ref_54_7">NameTxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_55_7">Length</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_56_7">ignored</A></FONT> : <b>constant</b> char_array (0 .. 0) := (0 =&gt; nul);
+- <FONT COLOR=red><A NAME="ref_57_7">result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_54_7">NameTxt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_55_7">Length</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_56_7">ignored</A></span> : <b>constant</b> char_array (0 .. 0) := (0 =&gt; nul);
++ <span class="symbol"><A NAME="ref_57_7">result</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_54_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_55_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_56_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#ref_54_7">NameTxt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A> = -1 <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+ <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A>);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_23" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A></FONT> : String) <b>return</b> Boolean
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_69_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_69_23" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A></span> : String) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_71_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_71_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_71_16">tgetflag</A></span> (<span class="symbol"><A NAME="ref_71_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, tgetflag, "tgetflag");
+- <FONT COLOR=red><A NAME="ref_73_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_74_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_73_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_74_7">Length</A></span> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_73_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_74_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_73_7">Txt</A>) = 0 <b>then</b>
+@@ -86,15 +98,15 @@
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_85_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_85_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_86_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A></FONT> : <b>out</b> Integer;
+- <FONT COLOR=red><A NAME="ref_87_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A></FONT> : <b>out</b> Boolean)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_85_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A></span> (<span class="symbol"><A NAME="ref_85_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_86_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A></span> : <b>out</b> Integer;
++ <span class="symbol"><A NAME="ref_87_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A></span> : <b>out</b> Boolean)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_89_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="ref_89_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_89_16">tgetnum</A></span> (<span class="symbol"><A NAME="ref_89_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, tgetnum, "tgetnum");
+- <FONT COLOR=red><A NAME="ref_91_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_92_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_91_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_92_7">Length</A></span> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_91_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_92_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_91_7">Txt</A>));
+@@ -105,40 +117,40 @@
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_104_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_104_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_105_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_106_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A></FONT> : <b>out</b> Boolean)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_104_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_104_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_105_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_106_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A></span> : <b>out</b> Boolean)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">id</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_109_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_108_16">tgetstr</A></span> (<span class="symbol"><A NAME="ref_108_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">id</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_109_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">buf</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, tgetstr, "tgetstr");
+- <FONT COLOR=red><A NAME="ref_111_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_112_7">Length</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_113_7">Txt2</A></FONT> : chars_ptr;
+- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_115_7">Return_Buffer</A></FONT> : <b>constant</b> t := (<b>others</b> =&gt; nul);
++ <span class="symbol"><A NAME="ref_111_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_112_7">Length</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_113_7">Txt2</A></span> : chars_ptr;
++ <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><EM>-- does it need to be 1024?</EM></span>
++ <span class="symbol"><A NAME="ref_115_7">Return_Buffer</A></span> : <b>constant</b> t := (<b>others</b> =&gt; nul);
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_111_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_112_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_111_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_115_7">Return_Buffer</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A> = Null_Ptr <b>then</b>
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A> := False;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A>);
++ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A>);
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A> := True;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_127_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_127_25" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A></FONT> : String) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_127_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A></span> (<span class="symbol"><A NAME="ref_127_25" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A></span> : String) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_129_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_129_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">Id</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_130_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_129_16">tgetstr</A></span> (<span class="symbol"><A NAME="ref_129_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">Id</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_130_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">buf</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, tgetstr, "tgetstr");
+- <FONT COLOR=red><A NAME="ref_132_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_133_7">Length</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_134_7">Txt2</A></FONT> : chars_ptr;
+- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_136_7">Phony_Txt</A></FONT> : <b>constant</b> t := (<b>others</b> =&gt; nul);
++ <span class="symbol"><A NAME="ref_132_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_133_7">Length</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_134_7">Txt2</A></span> : chars_ptr;
++ <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <span class="comment"><EM>-- does it need to be 1024?</EM></span>
++ <span class="symbol"><A NAME="ref_136_7">Phony_Txt</A></span> : <b>constant</b> t := (<b>others</b> =&gt; nul);
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_132_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_133_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__adb.htm#ref_134_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_132_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_136_7">Phony_Txt</A>));
+@@ -149,21 +161,21 @@
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="ref_148_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_149_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_150_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Termcap_String <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">tgoto</A></FONT> (<FONT COLOR=red><A NAME="ref_151_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">cap</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_152_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_153_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_148_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A></span> (<span class="symbol"><A NAME="ref_148_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A></span> : String;
++ <span class="symbol"><A NAME="ref_149_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_150_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>) <b>return</b> Termcap_String <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_151_16">tgoto</A></span> (<span class="symbol"><A NAME="ref_151_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">cap</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_152_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_153_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, tgoto);
+- <FONT COLOR=red><A NAME="ref_155_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>'Length);
+- <FONT COLOR=red><A NAME="ref_156_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_155_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>'Length);
++ <span class="symbol"><A NAME="ref_156_7">Length</A></span> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_155_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_156_7">Length</A>);
+- <b>return</b> Termcap_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A>
+- (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_155_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A>))));
++ <b>return</b> Termcap_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A>
++ (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_155_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A>))));
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-termcap__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-termcap__ads.htm 2008-10-11 21:36:31.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-termcap__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,86 +1,98 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-termcap.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-termcap.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Termcap --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-termcap__adb.htm#ref_47_40">Termcap</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page curs_termcap.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented: tputs (see curs_terminfo)</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Termcap --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_42_35" HREF="terminal_interface-curses-termcap__adb.htm#ref_47_40">Termcap</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page curs_termcap.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not implemented: tputs (see curs_terminfo)</EM></span>
+
+ <b>type</b> Termcap_String <b>is</b> <b>new</b> String;
+
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="ref_53_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_20">Cap</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_54_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_55_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_150_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Termcap_String;
+- <FONT COLOR=green><EM>-- AKA: tgoto()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_59_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="ref_59_24" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_24">Name</A></FONT> : String) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: tgetent()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_63_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_23">Name</A></FONT> : String) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: tgetflag()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_67_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_14">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_67_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_26">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_68_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_26">Value</A></FONT> : <b>out</b> Integer;
+- <FONT COLOR=red><A NAME="ref_69_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_87_26">Result</A></FONT> : <b>out</b> Boolean);
+- <FONT COLOR=green><EM>-- AKA: tgetnum()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_73_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_26">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_74_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_26">Value</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_75_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_106_26">Result</A></FONT> : <b>out</b> Boolean);
+- <b>function</b> <FONT COLOR=red><A NAME="ref_76_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_76_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_25">Name</A></FONT> : String) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- Returns True if the string is found.</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: tgetstr()</EM></FONT>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_53_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_13">TGoto</A></span> (<span class="symbol"><A NAME="ref_53_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_20">Cap</A></span> : String;
++ <span class="symbol"><A NAME="ref_54_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_20">Col</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_55_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_150_20">Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>) <b>return</b> Termcap_String;
++ <span class="comment"><EM>-- AKA: tgoto()</EM></span>
++
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_59_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_13">Get_Entry</A></span> (<span class="symbol"><A NAME="ref_59_24" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_24">Name</A></span> : String) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: tgetent()</EM></span>
++
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_63_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_63_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_23">Name</A></span> : String) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: tgetflag()</EM></span>
++
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_67_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_14">Get_Number</A></span> (<span class="symbol"><A NAME="ref_67_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_26">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_68_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_26">Value</A></span> : <b>out</b> Integer;
++ <span class="symbol"><A NAME="ref_69_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_87_26">Result</A></span> : <b>out</b> Boolean);
++ <span class="comment"><EM>-- AKA: tgetnum()</EM></span>
++
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_73_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_73_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_26">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_74_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_26">Value</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_75_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_106_26">Result</A></span> : <b>out</b> Boolean);
++ <b>function</b> <span class="symbol"><A NAME="ref_76_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_13">Get_String</A></span> (<span class="symbol"><A NAME="ref_76_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_25">Name</A></span> : String) <b>return</b> Boolean;
++ <span class="comment"><EM>-- Returns True if the string is found.</EM></span>
++ <span class="comment"><EM>-- AKA: tgetstr()</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-terminfo__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-terminfo__adb.htm 2011-03-19 23:18:41.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-terminfo__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,62 +1,74 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-terminfo.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-terminfo.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Terminfo --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.6 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Terminfo --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.6 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+ <b>with</b> Ada.Unchecked_Conversion;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_48_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A></span> <b>is</b>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_34">P</A></FONT> : chars_ptr) <b>return</b> Boolean;
++ <b>function</b> <span class="symbol"><A NAME="ref_50_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_13">Is_MinusOne_Pointer</A></span> (<span class="symbol"><A NAME="ref_50_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_34">P</A></span> : chars_ptr) <b>return</b> Boolean;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_52_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="ref_52_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A></FONT> : chars_ptr) <b>return</b> Boolean <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_53_12">Weird_Address</A></FONT> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+- <FONT COLOR=red><A NAME="ref_54_7">Invalid_Pointer</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A> := -1;
++ <b>function</b> <span class="symbol"><A NAME="ref_52_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A></span> (<span class="symbol"><A NAME="ref_52_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A></span> : chars_ptr) <b>return</b> Boolean <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_53_12">Weird_Address</A></span> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <span class="symbol"><A NAME="ref_54_7">Invalid_Pointer</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A> := -1;
+ <b>function</b> To_Weird <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+ (Source =&gt; chars_ptr, Target =&gt; <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A>);
+ <b>begin</b>
+@@ -68,100 +80,100 @@
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A>;
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A>);
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></FONT> : String) <b>return</b> Boolean
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></span> : String) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_69_16">tigetflag</A></span> (<span class="symbol"><A NAME="ref_69_27" HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">id</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, tigetflag);
+- <FONT COLOR=red><A NAME="ref_71_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_72_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_71_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_72_7">Length</A></span> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_67_4">Curses_True</A>) <b>then</b>
+ <b>return</b> True;
+ <b>else</b>
+ <b>return</b> False;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_83_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_84_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A></FONT> : <b>out</b> Terminfo_String;
+- <FONT COLOR=red><A NAME="ref_85_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A></FONT> : <b>out</b> Boolean)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_83_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_83_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_84_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A></span> : <b>out</b> Terminfo_String;
++ <span class="symbol"><A NAME="ref_85_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A></span> : <b>out</b> Boolean)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_87_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_87_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">id</A></FONT> : char_array) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_87_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_87_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">id</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, tigetstr, "tigetstr");
+- <FONT COLOR=red><A NAME="ref_89_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_90_7">Length</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_91_7">Txt2</A></FONT> : chars_ptr;
++ <span class="symbol"><A NAME="ref_89_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_90_7">Length</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_91_7">Txt2</A></span> : chars_ptr;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_89_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Length</A>);
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_89_7">Txt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A> = Null_Ptr <b>then</b>
+ <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := False;
+ <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A> := Terminfo_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>));
++ <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A> := Terminfo_String (<A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>));
+ <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := True;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_106_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A></FONT> : String) <b>return</b> Boolean
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_106_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A></span> (<span class="symbol"><A NAME="ref_106_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A></span> : String) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">id</A></FONT> : char_array) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_108_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_108_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">id</A></span> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, tigetstr, "tigetstr");
+- <FONT COLOR=red><A NAME="ref_110_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_111_7">Length</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_112_7">Txt2</A></FONT> : chars_ptr;
++ <span class="symbol"><A NAME="ref_110_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_111_7">Length</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_112_7">Txt2</A></span> : chars_ptr;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_110_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Length</A>);
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_110_7">Txt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A> = Null_Ptr <b>then</b>
+ <b>return</b> False;
+ <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_126_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_126_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A></FONT> : String) <b>return</b> Integer <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_127_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_127_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_126_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A></span> (<span class="symbol"><A NAME="ref_126_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A></span> : String) <b>return</b> Integer <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_127_16">tigetstr</A></span> (<span class="symbol"><A NAME="ref_127_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">s</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, tigetstr);
+- <FONT COLOR=red><A NAME="ref_129_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>'Length);
+- <FONT COLOR=red><A NAME="ref_130_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_129_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>'Length);
++ <span class="symbol"><A NAME="ref_130_7">Length</A></span> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_129_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Length</A>);
+ <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_129_7">Txt</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_137_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A></FONT> (<FONT COLOR=red><A NAME="ref_137_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A></FONT> : Terminfo_String;
+- <FONT COLOR=red><A NAME="ref_138_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A></FONT> : Natural := 1;
+- <FONT COLOR=red><A NAME="ref_139_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>) <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_140_16">tputs</A></FONT> (<FONT COLOR=red><A NAME="ref_140_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">str</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_141_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">affcnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_142_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_143_16">putp</A></FONT> (<FONT COLOR=red><A NAME="ref_143_22" HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_137_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A></span> (<span class="symbol"><A NAME="ref_137_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A></span> : Terminfo_String;
++ <span class="symbol"><A NAME="ref_138_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A></span> : Natural := 1;
++ <span class="symbol"><A NAME="ref_139_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>) <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_140_16">tputs</A></span> (<span class="symbol"><A NAME="ref_140_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">str</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_141_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">affcnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_142_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_143_16">putp</A></span> (<span class="symbol"><A NAME="ref_143_22" HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">str</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, tputs);
+ <b>pragma</b> Import (C, putp);
+- <FONT COLOR=red><A NAME="ref_146_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_147_7">Length</A></FONT> : size_t;
+- <FONT COLOR=red><A NAME="ref_148_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_146_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_147_7">Length</A></span> : size_t;
++ <span class="symbol"><A NAME="ref_148_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+ To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A> = <b>null</b> <b>then</b>
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">putp</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>);
+ <b>else</b>
+- <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A>);
++ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A>);
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-terminfo__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-terminfo__ads.htm 2011-02-25 23:43:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-terminfo__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,87 +1,99 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-terminfo.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-terminfo.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Terminfo --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.3 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_48_40">Terminfo</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page curs_terminfo.3x</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented: setupterm, setterm, set_curterm, del_curterm,</EM></FONT>
+- <FONT COLOR=green><EM>-- restartterm, tparm, putp, vidputs, vidattr,</EM></FONT>
+- <FONT COLOR=green><EM>-- mvcur</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Terminfo --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.3 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_48_40">Terminfo</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page curs_terminfo.3x</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not implemented: setupterm, setterm, set_curterm, del_curterm,</EM></span>
++ <span class="comment"><EM>-- restartterm, tparm, putp, vidputs, vidattr,</EM></span>
++ <span class="comment"><EM>-- mvcur</EM></span>
+
+ <b>type</b> Terminfo_String <b>is</b> <b>new</b> String;
+
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_57_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_26">Name</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_58_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Value</A></FONT> : <b>out</b> Terminfo_String;
+- <FONT COLOR=red><A NAME="ref_59_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Result</A></FONT> : <b>out</b> Boolean);
+- <b>function</b> <FONT COLOR=red><A NAME="ref_60_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="ref_60_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_25">Name</A></FONT> : String) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: tigetstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_64_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_23">Name</A></FONT> : String) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: tigetflag()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_68_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_25">Name</A></FONT> : String) <b>return</b> Integer;
+- <FONT COLOR=green><EM>-- AKA: tigetnum()</EM></FONT>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_14">Get_String</A></span> (<span class="symbol"><A NAME="ref_57_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_26">Name</A></span> : String;
++ <span class="symbol"><A NAME="ref_58_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Value</A></span> : <b>out</b> Terminfo_String;
++ <span class="symbol"><A NAME="ref_59_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Result</A></span> : <b>out</b> Boolean);
++ <b>function</b> <span class="symbol"><A NAME="ref_60_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_13">Has_String</A></span> (<span class="symbol"><A NAME="ref_60_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_25">Name</A></span> : String) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: tigetstr()</EM></span>
++
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_64_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_13">Get_Flag</A></span> (<span class="symbol"><A NAME="ref_64_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_23">Name</A></span> : String) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: tigetflag()</EM></span>
++
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_13">Get_Number</A></span> (<span class="symbol"><A NAME="ref_68_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_25">Name</A></span> : String) <b>return</b> Integer;
++ <span class="comment"><EM>-- AKA: tigetnum()</EM></span>
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="ref_71_38">c</A></FONT> : <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int)
+- <b>return</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.int;
++ <b>type</b> <span class="symbol"><A NAME="ref_71_9">putctype</A></span> <b>is</b> <b>access</b> <b>function</b> (<span class="symbol"><A NAME="ref_71_38">c</A></span> : <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int)
++ <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>);
+
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_76_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_14">Put_String</A></FONT> (<FONT COLOR=red><A NAME="ref_76_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_26">Str</A></FONT> : Terminfo_String;
+- <FONT COLOR=red><A NAME="ref_77_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_26">affcnt</A></FONT> : Natural := 1;
+- <FONT COLOR=red><A NAME="ref_78_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_139_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>);
+- <FONT COLOR=green><EM>-- AKA: tputs()</EM></FONT>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_76_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_14">Put_String</A></span> (<span class="symbol"><A NAME="ref_76_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_26">Str</A></span> : Terminfo_String;
++ <span class="symbol"><A NAME="ref_77_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_26">affcnt</A></span> : Natural := 1;
++ <span class="symbol"><A NAME="ref_78_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_139_26">putc</A></span> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>);
++ <span class="comment"><EM>-- AKA: tputs()</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm 2011-03-19 23:18:41.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,69 +1,81 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-aux.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_42_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A></FONT> <b>is</b>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_45_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+- <FONT COLOR=red><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A></FONT> : Boolean := True;
+- <FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A></FONT> : Boolean := False)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.13 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_42_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A></span> <b>is</b>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_44_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A></span>
++ (<span class="symbol"><A NAME="ref_45_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A></span> : String;
++ <span class="symbol"><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
++ <span class="symbol"><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A></span> : Boolean := True;
++ <span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A></span> : Boolean := False)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_51_7">L</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+- <FONT COLOR=red><A NAME="ref_52_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+- <FONT COLOR=red><A NAME="ref_53_7">W</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A>;
+- <FONT COLOR=red><A NAME="ref_54_7">LC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_55_7">CC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_56_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_57_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_51_7">L</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
++ <span class="symbol"><A NAME="ref_52_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
++ <span class="symbol"><A NAME="ref_53_7">W</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Width</A>;
++ <span class="symbol"><A NAME="ref_54_7">LC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_55_7">CC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_56_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_57_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_59_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_59_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_17">Output</A></span> (<span class="symbol"><A NAME="ref_59_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_25">From</A></span>, <span class="symbol"><A NAME="ref_59_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_61_31">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_61_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_61_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A></span> (<span class="symbol"><A NAME="ref_61_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_25">From</A></span>, <span class="symbol"><A NAME="ref_61_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_31">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>)
+ <b>is</b>
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &gt; 0 <b>then</b>
+@@ -71,13 +83,13 @@
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>;
+ <b>end</b> <b>if</b>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> <b>then</b>
+- <FONT COLOR=green><EM>-- LRM A10.6 (7) says this</EM></FONT>
++ <span class="comment"><EM>-- LRM A10.6 (7) says this</EM></span>
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>;
+ <b>end</b> <b>if</b>;
+
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt;= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Signal</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_134_4">Layout_Error</A>;
+ <b>else</b>
+@@ -86,20 +98,20 @@
+ <b>else</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A> <b>then</b>
+ <b>declare</b>
+- <FONT COLOR=red><A NAME="ref_84_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>))
++ <span class="symbol"><A NAME="ref_84_22">Filler</A></span> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>))
+ := (<b>others</b> =&gt; ' ');
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_84_22">Filler</A>);
+ <b>end</b>;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>);
+- <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A>);
++ <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_57_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>)) &gt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">CC</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>);
+ <b>end</b> <b>if</b>;
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_31">To</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> &lt; <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A> <b>then</b>
+ <b>declare</b>
+- <FONT COLOR=red><A NAME="ref_97_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>))
++ <span class="symbol"><A NAME="ref_97_22">Filler</A></span> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>))
+ := (<b>others</b> =&gt; ' ');
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_97_22">Filler</A>);
+@@ -110,18 +122,18 @@
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A>;
+
+ <b>begin</b>
+- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>);
++ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_53_7">Ljust</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := 1;
+- <b>for</b> <FONT COLOR=red><A NAME="ref_111_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_111_14">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b>
+ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A>) = ' ';
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> + 1;
+ <b>end</b> <b>loop</b>;
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> - 1;
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_59_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">Len</A>);
+- <b>else</b> <FONT COLOR=green><EM>-- input buffer is not left justified</EM></FONT>
++ <b>else</b> <span class="comment"><EM>-- input buffer is not left justified</EM></span>
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length;
+- <b>for</b> <FONT COLOR=red><A NAME="ref_119_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_119_14">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A>'Length <b>loop</b>
+ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A>) = ' ';
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">L</A> - 1;
+ <b>end</b> <b>loop</b>;
+@@ -130,5 +142,5 @@
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,61 +1,73 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-aux.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2009/12/26 17:38:58 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_42_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_42_48">Aux</A></FONT> <b>is</b>
+- <FONT COLOR=green><EM>-- pragma Preelaborate (Aux);</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- @Date: 2009/12/26 17:38:58 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_42_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_42_48">Aux</A></span> <b>is</b>
++ <span class="comment"><EM>-- pragma Preelaborate (Aux);</EM></span>
+
+- <FONT COLOR=green><EM>-- This routine is called from the Text_IO output routines for numeric</EM></FONT>
+- <FONT COLOR=green><EM>-- and enumeration types.</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_44_14">Put_Buf</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=green><EM>-- The output window</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Buf</A></FONT> : String; <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; <FONT COLOR=green><EM>-- The width of the output field</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Signal</A></FONT> : Boolean := True; <FONT COLOR=green><EM>-- If true, we raise Layout_Error</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_49_7">Ljust</A></FONT> : Boolean := False); <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT>
++ <span class="comment"><EM>-- This routine is called from the Text_IO output routines for numeric</EM></span>
++ <span class="comment"><EM>-- and enumeration types.</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_44_14">Put_Buf</A></span>
++ (<span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="comment"><EM>-- The output window</EM></span>
++ <span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Buf</A></span> : String; <span class="comment"><EM>-- The buffer containing the text</EM></span>
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; <span class="comment"><EM>-- The width of the output field</EM></span>
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Signal</A></span> : Boolean := True; <span class="comment"><EM>-- If true, we raise Layout_Error</EM></span>
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_49_7">Ljust</A></span> : Boolean := False); <span class="comment"><EM>-- The Buf is left justified</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,61 +1,73 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_43_48" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_43_48" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A></span> <b>is</b>
+
+ <b>package</b> FIO <b>is</b> <b>new</b>
+- <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A> (Complex_Types.Real'Base);
++ <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A> (Complex_Types.Real'Base);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ Item : Complex;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>)
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, '(');
+@@ -65,15 +77,15 @@
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, ')');
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A></span>
+ (Item : Complex;
+- <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>)
++ <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, Item, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,76 +1,88 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Numerics.Generic_Complex_Types;
+
+ <b>generic</b>
+ <b>with</b> <b>package</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_Types</A> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (&lt;&gt;);
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_46_43" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_43_48">Complex_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_46_43" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_43_48">Complex_IO</A></span> <b>is</b>
+
+ <b>use</b> Complex_Types;
+
+- <FONT COLOR=red><A NAME="ref_50_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2;
+- <FONT COLOR=red><A NAME="ref_51_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := Real'<b>Digits</b> - 1;
+- <FONT COLOR=red><A NAME="ref_52_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3;
++ <span class="symbol"><A NAME="ref_50_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2;
++ <span class="symbol"><A NAME="ref_51_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := Real'<b>Digits</b> - 1;
++ <span class="symbol"><A NAME="ref_52_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_48_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_54_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_48_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Item</A> : Complex;
+- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_51_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>);
++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_51_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_63_14">Put</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_63_14">Put</A></span>
+ (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Item</A> : Complex;
+- <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_65_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>);
++ <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_65_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,65 +1,77 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ <b>package</b> DIO <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+- <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>;
++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
++ <span class="symbol"><A NAME="ref_57_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A> &gt; 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A>;
+@@ -68,14 +80,14 @@
+ <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A>, False);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,72 +1,84 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;;
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>delta</b> &lt;&gt; <b>digits</b> &lt;&gt;;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_44_48">Decimal_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_44_48">Decimal_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Fore;
+- <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Aft;
+- <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_66_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>);
++ <span class="symbol"><A NAME="ref_46_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Fore;
++ <span class="symbol"><A NAME="ref_47_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Aft;
++ <span class="symbol"><A NAME="ref_48_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_66_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,65 +1,77 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+ <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_47_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ <b>package</b> EIO <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+- <FONT COLOR=red><A NAME="ref_57_7">Tset</A></FONT> : Ada.Text_IO.Type_Set;
++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
++ <span class="symbol"><A NAME="ref_57_7">Tset</A></span> : Ada.Text_IO.Type_Set;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A>));
+@@ -73,14 +85,14 @@
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A>, True, True);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_71_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_72_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+- <FONT COLOR=red><A NAME="ref_73_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_74_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_71_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_72_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
++ <span class="symbol"><A NAME="ref_73_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_74_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,69 +1,81 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enum</A></FONT> <b>is</b> (&lt;&gt;);
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enum</A></span> <b>is</b> (&lt;&gt;);
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_45_48">Enumeration_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_45_48">Enumeration_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
+- <FONT COLOR=red><A NAME="ref_47_4">Default_Setting</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A>;
++ <span class="symbol"><A NAME="ref_46_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
++ <span class="symbol"><A NAME="ref_47_4">Default_Setting</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_50_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_71_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Set</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_50_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_71_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Set</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,65 +1,77 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ <b>package</b> FIXIO <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+- <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>;
++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
++ <span class="symbol"><A NAME="ref_57_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A> &gt; 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A>;
+@@ -68,14 +80,14 @@
+ <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A>, False);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,72 +1,84 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt;;
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>delta</b> &lt;&gt;;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_44_48">Fixed_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_44_48">Fixed_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Fore;
+- <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Aft;
+- <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_66_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>);
++ <span class="symbol"><A NAME="ref_46_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Fore;
++ <span class="symbol"><A NAME="ref_47_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Aft;
++ <span class="symbol"><A NAME="ref_48_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_66_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,65 +1,77 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ <b>package</b> FIO <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+- <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>;
++ <span class="symbol"><A NAME="ref_56_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
++ <span class="symbol"><A NAME="ref_57_7">Len</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A> &gt; 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A>;
+@@ -68,15 +80,15 @@
+ <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A>, False);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,72 +1,84 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>digits</b> &lt;&gt;;
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>digits</b> &lt;&gt;;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_44_48">Float_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_44_48">Float_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2;
+- <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>'<b>Digits</b> - 1;
+- <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_66_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+- <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+- <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>);
++ <span class="symbol"><A NAME="ref_46_4">Default_Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2;
++ <span class="symbol"><A NAME="ref_47_4">Default_Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>'<b>Digits</b> - 1;
++ <span class="symbol"><A NAME="ref_48_4">Default_Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_66_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Fore</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
++ <span class="symbol"><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Aft</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
++ <span class="symbol"><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Exp</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,76 +1,88 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ <b>package</b> IIO <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
++ <span class="symbol"><A NAME="ref_55_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+ <b>begin</b>
+ IIO.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A>);
+ <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,69 +1,81 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>range</b> &lt;&gt;;
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>range</b> &lt;&gt;;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_44_48">Integer_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_44_48">Integer_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>'Width;
+- <FONT COLOR=red><A NAME="ref_47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10;
++ <span class="symbol"><A NAME="ref_46_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>'Width;
++ <span class="symbol"><A NAME="ref_47_4">Default_Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_61_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_61_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,76 +1,88 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A></span> <b>is</b>
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
++ <b>package</b> <span class="symbol"><A NAME="ref_46_12">Aux</A></span> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_42_51">Aux</A>;
+ <b>package</b> MIO <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
++ <span class="symbol"><A NAME="ref_55_7">Buf</A></span> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+ <b>begin</b>
+ MIO.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A>);
+ <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm 2010-01-09 20:31:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,69 +1,81 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.12 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>generic</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Num</A></FONT> <b>is</b> <b>mod</b> &lt;&gt;;
++ <b>type</b> <span class="symbol"><A NAME="ref_42_9" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Num</A></span> <b>is</b> <b>mod</b> &lt;&gt;;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_44_48">Modular_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<span class="symbol"><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_44_48">Modular_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>'Width;
+- <FONT COLOR=red><A NAME="ref_47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10;
++ <span class="symbol"><A NAME="ref_46_4">Default_Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>'Width;
++ <span class="symbol"><A NAME="ref_47_4">Default_Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_49_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>);
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_61_14">Put</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_7">Item</A></FONT> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+- <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+- <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_49_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>);
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_61_14">Put</A></span>
++ (<span class="symbol"><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_7">Item</A></span> : <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
++ <span class="symbol"><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Width</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
++ <span class="symbol"><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Base</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>);
+
+ <b>private</b>
+ <b>pragma</b> Inline (Put);
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io__adb.htm 2011-03-26 21:54:30.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,190 +1,202 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.20 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:38:49 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A></FONT> <b>is</b>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.22 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:32:18 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_42_40" HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A></span> <b>is</b>
+
+- <FONT COLOR=red><A NAME="ref_44_4">Default_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
++ <span class="symbol"><A NAME="ref_44_4">Default_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_46_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_46_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_46_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_52_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_52_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
++ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
+ <b>else</b>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>;
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></span> (<span class="symbol"><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1047_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1215_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></span>
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A>;
+
+- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
+- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT>
+- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT>
+- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
+- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_84_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_84_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_86_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_87_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
+- <FONT COLOR=green><EM>-- if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></FONT>
+- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+- <FONT COLOR=green><EM>-- end if;</EM></FONT>
++ <span class="comment"><EM>--------------------------------------------</EM></span>
++ <span class="comment"><EM>-- Specification of line and page lengths --</EM></span>
++ <span class="comment"><EM>--------------------------------------------</EM></span>
++
++ <span class="comment"><EM>-- There are no set routines in this package. I assume, that you allocate</EM></span>
++ <span class="comment"><EM>-- the window with an appropriate size.</EM></span>
++ <span class="comment"><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></span>
++ <span class="comment"><EM>-- i.e. it returns the conventional 0 as page length.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_84_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A></span> (<span class="symbol"><A NAME="ref_84_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
++ <b>is</b>
++ <span class="symbol"><A NAME="ref_86_7">N_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_87_7">N_Cols</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
++ <span class="comment"><EM>-- if Natural (N_Cols) &gt; Natural (Count'Last) then</EM></span>
++ <span class="comment"><EM>-- raise Layout_Error;</EM></span>
++ <span class="comment"><EM>-- end if;</EM></span>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_96_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
+ <b>is</b>
+ <b>begin</b>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_102_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A></span> (<span class="symbol"><A NAME="ref_102_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_104_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_105_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_104_7">N_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_105_7">N_Cols</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1192_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
+ <b>return</b> 0;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
+- <FONT COLOR=green><EM>-- if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></FONT>
+- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+- <FONT COLOR=green><EM>-- end if;</EM></FONT>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
++ <span class="comment"><EM>-- if Natural (N_Lines) &gt; Natural (Count'Last) then</EM></span>
++ <span class="comment"><EM>-- raise Layout_Error;</EM></span>
++ <span class="comment"><EM>-- end if;</EM></span>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_118_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_118_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
+ <b>is</b>
+ <b>begin</b>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A>;
+
+- <FONT COLOR=green><EM>------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT>
+- <FONT COLOR=green><EM>------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_127_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_127_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_127_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
++ <span class="comment"><EM>------------------------------------</EM></span>
++ <span class="comment"><EM>-- Column, Line, and Page Control --</EM></span>
++ <span class="comment"><EM>------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_127_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_127_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_127_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_129_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
++ <span class="symbol"><A NAME="ref_129_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
+ <b>begin</b>
+ <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A>'Valid <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+
+- <b>for</b> <FONT COLOR=red><A NAME="ref_135_11">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A> <b>loop</b>
++ <b>for</b> <span class="symbol"><A NAME="ref_135_11">I</A></span> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_38">Spacing</A> <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> &gt; 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
+ <b>else</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
++ <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>loop</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_144_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_144_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_144_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></span> (<span class="symbol"><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1250_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></span>
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_162_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_162_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_162_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_162_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_162_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_164_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_165_7">X1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_166_7">X2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_167_7">N</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_164_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_165_7">X1</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_166_7">X2</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_167_7">N</A></span> : Natural;
+ <b>begin</b>
+ <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A>'Valid <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_38">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> - 1;
+- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>);
++ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &gt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, 1);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> := 0;
+ <b>end</b> <b>if</b>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
+ <b>declare</b>
+- <FONT COLOR=red><A NAME="ref_182_13">Filler</A></FONT> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A>) - 1))
++ <span class="symbol"><A NAME="ref_182_13">Filler</A></span> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A>) - 1))
+ := (<b>others</b> =&gt; ' ');
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_182_13">Filler</A>);
+@@ -192,27 +204,27 @@
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_190_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_190_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_190_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_196_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_196_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_196_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_196_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_196_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_196_38" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_198_7">Y1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_199_7">Y2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_200_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_201_7">N</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_198_7">Y1</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_199_7">Y2</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_200_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_201_7">N</A></span> : Natural;
+ <b>begin</b>
+ <b>if</b> <b>not</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A>'Valid <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
+- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
++ <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>); <span class="comment"><EM>-- unreferenced</EM></span>
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_38">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> - 1;
+- <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>);
++ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> &lt; <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> := 0;
+@@ -222,123 +234,123 @@
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_220_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_220_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_220_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_220_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_226_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_226_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_226_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A></span> (<span class="symbol"><A NAME="ref_226_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_228_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_229_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_230_7">N</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_228_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_229_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_230_7">N</A></span> : Natural;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">X</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">X</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A> + 1;
+- <FONT COLOR=green><EM>-- if N &gt; Natural (Count'Last) then</EM></FONT>
+- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+- <FONT COLOR=green><EM>-- end if;</EM></FONT>
++ <span class="comment"><EM>-- if N &gt; Natural (Count'Last) then</EM></span>
++ <span class="comment"><EM>-- raise Layout_Error;</EM></span>
++ <span class="comment"><EM>-- end if;</EM></span>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_230_7">N</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_240_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_240_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
+ <b>is</b>
+ <b>begin</b>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_246_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_246_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_246_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A></span> (<span class="symbol"><A NAME="ref_246_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_248_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_249_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_250_7">N</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_248_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_249_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_250_7">N</A></span> : Natural;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">X</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">X</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A> + 1;
+- <FONT COLOR=green><EM>-- if N &gt; Natural (Count'Last) then</EM></FONT>
+- <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+- <FONT COLOR=green><EM>-- end if;</EM></FONT>
++ <span class="comment"><EM>-- if N &gt; Natural (Count'Last) then</EM></span>
++ <span class="comment"><EM>-- raise Layout_Error;</EM></span>
++ <span class="comment"><EM>-- end if;</EM></span>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_250_7">N</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_260_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_260_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
+ <b>is</b>
+ <b>begin</b>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A>;
+
+- <FONT COLOR=green><EM>-----------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Characters Output --</EM></FONT>
+- <FONT COLOR=green><EM>-----------------------</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_270_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_270_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_270_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A></FONT> : Character)
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_272_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
+- <FONT COLOR=red><A NAME="ref_273_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_274_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_275_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_276_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++ <span class="comment"><EM>-----------------------</EM></span>
++ <span class="comment"><EM>-- Characters Output --</EM></span>
++ <span class="comment"><EM>-----------------------</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_270_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A></span> (<span class="symbol"><A NAME="ref_270_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_270_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A></span> : Character)
++ <b>is</b>
++ <span class="symbol"><A NAME="ref_272_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
++ <span class="symbol"><A NAME="ref_273_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_274_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_275_7">L</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_276_7">C</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">P_Size</A> &gt; 0 <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">X</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">C</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">X</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">C</A>);
+ <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_276_7">C</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_34">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_288_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_288_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></FONT> : Character)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_288_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></span> (<span class="symbol"><A NAME="ref_288_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></span> : Character)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A>;
+
+- <FONT COLOR=green><EM>--------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Strings-Output --</EM></FONT>
+- <FONT COLOR=green><EM>--------------------</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_298_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_298_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_298_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A></FONT> : String)
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_300_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
+- <FONT COLOR=red><A NAME="ref_301_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_302_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_303_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_304_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
++ <span class="comment"><EM>--------------------</EM></span>
++ <span class="comment"><EM>-- Strings-Output --</EM></span>
++ <span class="comment"><EM>--------------------</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_298_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A></span> (<span class="symbol"><A NAME="ref_298_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_298_34" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A></span> : String)
++ <b>is</b>
++ <span class="symbol"><A NAME="ref_300_7">P_Size</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
++ <span class="symbol"><A NAME="ref_301_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_302_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_303_7">L</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_304_7">C</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">P_Size</A> &gt; 0 <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">X</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">C</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">X</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">C</A>);
+ <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A>'Length) &gt;= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_304_7">C</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
+ <b>end</b> <b>if</b>;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_823_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_34">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_316_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_316_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></FONT> : String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_316_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></span> (<span class="symbol"><A NAME="ref_316_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></span> : String)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_322_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_323_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_324_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A></FONT> : String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_322_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A></span>
++ (<span class="symbol"><A NAME="ref_323_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_324_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A></span> : String)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A>, 1);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_331_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_332_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A></FONT> : String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_331_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A></span>
++ (<span class="symbol"><A NAME="ref_332_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A></span> : String)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-text_io__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-text_io__ads.htm 2011-03-26 21:54:30.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-text_io__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,142 +1,154 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-text_io.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Text_IO --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> Ada.Text_IO;
+ <b>with</b> Ada.IO_Exceptions;
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-text_io__adb.htm#ref_42_40">Text_IO</A></FONT> <b>is</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_44_35" HREF="terminal_interface-curses-text_io__adb.htm#ref_42_40">Text_IO</A></span> <b>is</b>
+
+ <b>use</b> <b>type</b> Ada.Text_IO.Count;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_47_12">Count</A></FONT> <b>is</b> Ada.Text_IO.Count;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">Positive_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>'Last;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_47_12">Count</A></span> <b>is</b> Ada.Text_IO.Count;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_48_12">Positive_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>'Last;
+
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_50_12">Field</A></FONT> <b>is</b> Ada.Text_IO.Field;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_51_12">Number_Base</A></FONT> <b>is</b> Integer <b>range</b> 2 .. 16;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_50_12">Field</A></span> <b>is</b> Ada.Text_IO.Field;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_51_12">Number_Base</A></span> <b>is</b> Integer <b>range</b> 2 .. 16;
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_53_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_53_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_53_46">Mixed_Case</A></FONT>);
++ <b>type</b> <span class="symbol"><A NAME="ref_53_9">Type_Set</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_53_22">Lower_Case</A></span>, <span class="symbol"><A NAME="ref_53_34">Upper_Case</A></span>, <span class="symbol"><A NAME="ref_53_46">Mixed_Case</A></span>);
+
+- <FONT COLOR=green><EM>-- For most of the routines you will see a version without a Window</EM></FONT>
+- <FONT COLOR=green><EM>-- type parameter. They will operate on a default window, which can</EM></FONT>
+- <FONT COLOR=green><EM>-- be set by the user. It is initially equal to Standard_Window.</EM></FONT>
++ <span class="comment"><EM>-- For most of the routines you will see a version without a Window</EM></span>
++ <span class="comment"><EM>-- type parameter. They will operate on a default window, which can</EM></span>
++ <span class="comment"><EM>-- be set by the user. It is initially equal to Standard_Window.</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_59_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- Set Win as the default window</EM></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_59_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_14">Set_Window</A></span> (<span class="symbol"><A NAME="ref_59_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- Set Win as the default window</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_52_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- Get the current default window</EM></FONT>
++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_52_13">Get_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- Get the current default window</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_65_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_65_21" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_69_14">Flush</A></FONT>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_65_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_14">Flush</A></span> (<span class="symbol"><A NAME="ref_65_21" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_69_14">Flush</A></span>;
+
+- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
+- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
++ <span class="comment"><EM>--------------------------------------------</EM></span>
++ <span class="comment"><EM>-- Specification of line and page lengths --</EM></span>
++ <span class="comment"><EM>--------------------------------------------</EM></span>
+
+- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT>
+- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT>
+- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
+- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
++ <span class="comment"><EM>-- There are no set routines in this package. I assume, that you allocate</EM></span>
++ <span class="comment"><EM>-- the window with an appropriate size.</EM></span>
++ <span class="comment"><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></span>
++ <span class="comment"><EM>-- i.e. it returns the conventional 0 as page length.</EM></span>
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_77_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_77_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_78_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_96_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_77_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_13">Line_Length</A></span> (<span class="symbol"><A NAME="ref_77_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_78_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_96_13">Line_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_80_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_118_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_80_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_13">Page_Length</A></span> (<span class="symbol"><A NAME="ref_80_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_26">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_81_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_118_13">Page_Length</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
+
+- <FONT COLOR=green><EM>------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT>
+- <FONT COLOR=green><EM>------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_86_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_86_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_86_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_38">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_87_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_24">Spacing</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
++ <span class="comment"><EM>------------------------------------</EM></span>
++ <span class="comment"><EM>-- Column, Line, and Page Control --</EM></span>
++ <span class="comment"><EM>------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_86_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_86_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_86_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_38">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_87_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_14">New_Line</A></span> (<span class="symbol"><A NAME="ref_87_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_24">Spacing</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_89_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_89_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_156_14">New_Page</A></FONT>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_89_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_14">New_Page</A></span> (<span class="symbol"><A NAME="ref_89_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_90_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_156_14">New_Page</A></span>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_92_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_92_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_23">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_92_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_92_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_92_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_93_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_14">Set_Col</A></span> (<span class="symbol"><A NAME="ref_93_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_23">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_95_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_95_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_95_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_38">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_24">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_95_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_95_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_95_38" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_38">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_96_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_14">Set_Line</A></span> (<span class="symbol"><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_220_24">To</A></span> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_98_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_98_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_18">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_99_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_240_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_98_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_13">Col</A></span> (<span class="symbol"><A NAME="ref_98_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_226_18">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_99_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_240_13">Col</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_101_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_101_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_260_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_101_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_13">Line</A></span> (<span class="symbol"><A NAME="ref_101_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_246_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_260_13">Line</A></span> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
+
+- <FONT COLOR=green><EM>-----------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Characters-Output --</EM></FONT>
+- <FONT COLOR=green><EM>-----------------------</EM></FONT>
++ <span class="comment"><EM>-----------------------</EM></span>
++ <span class="comment"><EM>-- Characters-Output --</EM></span>
++ <span class="comment"><EM>-----------------------</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_108_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_108_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_108_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_34">Item</A></FONT> : Character);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_19">Item</A></FONT> : Character);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_108_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_14">Put</A></span> (<span class="symbol"><A NAME="ref_108_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_108_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_270_34">Item</A></span> : Character);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_14">Put</A></span> (<span class="symbol"><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_288_19">Item</A></span> : Character);
+
+- <FONT COLOR=green><EM>--------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Strings-Output --</EM></FONT>
+- <FONT COLOR=green><EM>--------------------</EM></FONT>
++ <span class="comment"><EM>--------------------</EM></span>
++ <span class="comment"><EM>-- Strings-Output --</EM></span>
++ <span class="comment"><EM>--------------------</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_115_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_115_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_115_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_34">Item</A></FONT> : String);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_19">Item</A></FONT> : String);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_115_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_14">Put</A></span> (<span class="symbol"><A NAME="ref_115_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_115_34" HREF="terminal_interface-curses-text_io__adb.htm#ref_298_34">Item</A></span> : String);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_14">Put</A></span> (<span class="symbol"><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_316_19">Item</A></span> : String);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_118_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_322_14">Put_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_119_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_323_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_120_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_324_7">Item</A></FONT> : String);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_118_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_322_14">Put_Line</A></span>
++ (<span class="symbol"><A NAME="ref_119_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_323_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_120_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_324_7">Item</A></span> : String);
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_122_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_331_14">Put_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_123_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_332_7">Item</A></FONT> : String);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_122_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_331_14">Put_Line</A></span>
++ (<span class="symbol"><A NAME="ref_123_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_332_7">Item</A></span> : String);
+
+- <FONT COLOR=green><EM>-- Exceptions</EM></FONT>
++ <span class="comment"><EM>-- Exceptions</EM></span>
+
+- <FONT COLOR=red><A NAME="ref_127_4">Status_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
+- <FONT COLOR=red><A NAME="ref_128_4">Mode_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
+- <FONT COLOR=red><A NAME="ref_129_4">Name_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
+- <FONT COLOR=red><A NAME="ref_130_4">Use_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
+- <FONT COLOR=red><A NAME="ref_131_4">Device_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
+- <FONT COLOR=red><A NAME="ref_132_4">End_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
+- <FONT COLOR=red><A NAME="ref_133_4">Data_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
+- <FONT COLOR=red><A NAME="ref_134_4">Layout_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
++ <span class="symbol"><A NAME="ref_127_4">Status_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
++ <span class="symbol"><A NAME="ref_128_4">Mode_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
++ <span class="symbol"><A NAME="ref_129_4">Name_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
++ <span class="symbol"><A NAME="ref_130_4">Use_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
++ <span class="symbol"><A NAME="ref_131_4">Device_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
++ <span class="symbol"><A NAME="ref_132_4">End_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
++ <span class="symbol"><A NAME="ref_133_4">Data_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
++ <span class="symbol"><A NAME="ref_134_4">Layout_Error</A></span> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-trace__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-trace__adb.htm 2011-03-19 23:18:42.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-trace__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,62 +1,74 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-trace.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-trace.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Trace --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000-2004,2009 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.7 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Trace --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000-2009,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.11 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_42_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></span> <b>is</b>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_44_24" HREF="terminal_interface-curses-trace__ads.htm#ref_106_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b>
+- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-trace__ads.htm#ref_106_24">x</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_44_14" HREF="terminal_interface-curses-trace__ads.htm#ref_114_14">Trace_On</A></span> (<span class="symbol"><A NAME="ref_44_24" HREF="terminal_interface-curses-trace__ads.htm#ref_114_24">x</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A>) <b>is</b>
++ <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses-trace__ads.htm#ref_114_24">x</A>); <span class="comment"><EM>-- unreferenced</EM></span>
+ <b>begin</b>
+ <b>null</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_On</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_114_14">Trace_On</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-trace__ads.htm#ref_110_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_50_25" HREF="terminal_interface-curses-trace__ads.htm#ref_110_25">str</A></FONT> : String) <b>is</b>
+- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses-trace__ads.htm#ref_110_25">str</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_50_14" HREF="terminal_interface-curses-trace__ads.htm#ref_118_14">Trace_Put</A></span> (<span class="symbol"><A NAME="ref_50_25" HREF="terminal_interface-curses-trace__ads.htm#ref_118_25">str</A></span> : String) <b>is</b>
++ <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses-trace__ads.htm#ref_118_25">str</A>); <span class="comment"><EM>-- unreferenced</EM></span>
+ <b>begin</b>
+ <b>null</b>;
+- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_110_14">Trace_Put</A>;
++ <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_118_14">Trace_Put</A>;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses-trace__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses-trace__ads.htm 2011-03-19 23:18:42.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses-trace__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,122 +1,142 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses-trace.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses-trace.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Trace --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.1 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses.Trace --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 2000,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Eugene V. Melaragno &lt;aldomel@ix.netcom.com&gt; 2000</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.4 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_42_40">Trace</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>);
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<span class="symbol"><A NAME="ref_42_35" HREF="terminal_interface-curses-trace__adb.htm#ref_42_40">Trace</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>);
+
+- <b>pragma</b> Warnings (Off);
+- <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Trace_Attribute_Set</A></FONT> <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_45_9">Trace_Attribute_Set</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_48_10">Times</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_49_10">Tputs</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_50_10">Update</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_51_10">Cursor_Move</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_52_10">Character_Output</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_53_10">Calls</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_54_10">Virtual_Puts</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_55_10">Input_Events</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_56_10">TTY_State</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_57_10">Internal_Calls</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_58_10">Character_Calls</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_59_10">Termcap_TermInfo</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_60_10">Attributes_And_Colors</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_61_10">Unused</A></FONT> : Boolean;
++ <span class="symbol"><A NAME="ref_47_10">Times</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_48_10">Tputs</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_49_10">Update</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_50_10">Cursor_Move</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_51_10">Character_Output</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_52_10">Calls</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_53_10">Virtual_Puts</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_54_10">Input_Events</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_55_10">TTY_State</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_56_10">Internal_Calls</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_57_10">Character_Calls</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_58_10">Termcap_TermInfo</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_59_10">Attribute_Color</A></span> : Boolean;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
++ <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A> <b>at</b> 0 <b>range</b> 0 .. 0;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A> <b>at</b> 0 <b>range</b> 1 .. 1;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A> <b>at</b> 0 <b>range</b> 2 .. 2;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A> <b>at</b> 0 <b>range</b> 3 .. 3;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> <b>at</b> 0 <b>range</b> 4 .. 4;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_53_10">Calls</A> <b>at</b> 0 <b>range</b> 5 .. 5;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_54_10">Virtual_Puts</A> <b>at</b> 0 <b>range</b> 6 .. 6;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_55_10">Input_Events</A> <b>at</b> 0 <b>range</b> 7 .. 7;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_56_10">TTY_State</A> <b>at</b> 0 <b>range</b> 8 .. 8;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_57_10">Internal_Calls</A> <b>at</b> 0 <b>range</b> 9 .. 9;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_58_10">Character_Calls</A> <b>at</b> 0 <b>range</b> 10 .. 10;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_59_10">Termcap_TermInfo</A> <b>at</b> 0 <b>range</b> 11 .. 11;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_60_10">Attributes_And_Colors</A> <b>at</b> 0 <b>range</b> 12 .. 12;
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_61_10">Unused</A> <b>at</b> 0 <b>range</b> 13 .. 31;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_47_10">Times</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_360_4">TRACE_TIMES_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_361_4">TRACE_TIMES_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Tputs</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_362_4">TRACE_TPUTS_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_363_4">TRACE_TPUTS_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Update</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_364_4">TRACE_UPDATE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_365_4">TRACE_UPDATE_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Cursor_Move</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_366_4">TRACE_MOVE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_367_4">TRACE_MOVE_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Character_Output</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_368_4">TRACE_CHARPUT_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_369_4">TRACE_CHARPUT_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Calls</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_370_4">TRACE_CALLS_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_371_4">TRACE_CALLS_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_53_10">Virtual_Puts</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_372_4">TRACE_VIRTPUT_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_373_4">TRACE_VIRTPUT_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_54_10">Input_Events</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_374_4">TRACE_IEVENT_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_375_4">TRACE_IEVENT_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_55_10">TTY_State</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_376_4">TRACE_BITS_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_377_4">TRACE_BITS_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_56_10">Internal_Calls</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_378_4">TRACE_ICALLS_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_379_4">TRACE_ICALLS_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_57_10">Character_Calls</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_380_4">TRACE_CCALLS_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_381_4">TRACE_CCALLS_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_58_10">Termcap_TermInfo</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_382_4">TRACE_DATABASE_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_383_4">TRACE_DATABASE_Last</A>;
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_59_10">Attribute_Color</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_384_4">TRACE_ATTRS_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_385_4">TRACE_ATTRS_Last</A>;
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>'Size <b>use</b> 32;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
+-
++ <b>pragma</b> Warnings (Off);
++ <b>for</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_386_4">Trace_Size</A>;
+ <b>pragma</b> Warnings (On);
+
+- <FONT COLOR=red><A NAME="ref_88_4">Trace_Disable</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False);
++ <span class="symbol"><A NAME="ref_96_4">Trace_Disable</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; False);
+
+- <FONT COLOR=red><A NAME="ref_90_4">Trace_Ordinary</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> :=
+- (<A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Times</A> =&gt; True,
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Tputs</A> =&gt; True,
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Update</A> =&gt; True,
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Cursor_Move</A> =&gt; True,
+- <A HREF="terminal_interface-curses-trace__ads.htm#ref_52_10">Character_Output</A> =&gt; True,
++ <span class="symbol"><A NAME="ref_98_4">Trace_Ordinary</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A> :=
++ (<A HREF="terminal_interface-curses-trace__ads.htm#ref_47_10">Times</A> =&gt; True,
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_48_10">Tputs</A> =&gt; True,
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_49_10">Update</A> =&gt; True,
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_50_10">Cursor_Move</A> =&gt; True,
++ <A HREF="terminal_interface-curses-trace__ads.htm#ref_51_10">Character_Output</A> =&gt; True,
+ <b>others</b> =&gt; False);
+- <FONT COLOR=red><A NAME="ref_97_4">Trace_Maximum</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True);
++ <span class="symbol"><A NAME="ref_105_4">Trace_Maximum</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A> := (<b>others</b> =&gt; True);
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_106_14" HREF="terminal_interface-curses-trace__adb.htm#ref_44_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_106_24" HREF="terminal_interface-curses-trace__adb.htm#ref_44_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>);
+- <FONT COLOR=green><EM>-- The debugging library has trace.</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_114_14" HREF="terminal_interface-curses-trace__adb.htm#ref_44_14">Trace_On</A></span> (<span class="symbol"><A NAME="ref_114_24" HREF="terminal_interface-curses-trace__adb.htm#ref_44_24">x</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A>);
++ <span class="comment"><EM>-- The debugging library has trace.</EM></span>
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_110_14" HREF="terminal_interface-curses-trace__adb.htm#ref_50_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_110_25" HREF="terminal_interface-curses-trace__adb.htm#ref_50_25">str</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_118_14" HREF="terminal_interface-curses-trace__adb.htm#ref_50_14">Trace_Put</A></span> (<span class="symbol"><A NAME="ref_118_25" HREF="terminal_interface-curses-trace__adb.htm#ref_50_25">str</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_tracef()</A></EM></span>
+
+- <FONT COLOR=red><A NAME="ref_113_4">Current_Trace_Setting</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_113_4">Current_Trace_Setting</A>, "_nc_tracing");
++ <span class="symbol"><A NAME="ref_121_4">Current_Trace_Setting</A></span> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_45_9">Trace_Attribute_Set</A>;
++ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-trace__ads.htm#ref_121_4">Current_Trace_Setting</A>, "_nc_tracing");
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses__adb.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses__adb.htm 2011-03-26 21:54:31.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses__adb.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,85 +1,97 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses.adb</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses.adb</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/22 23:02:14 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- B O D Y --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:05 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System;
+
+-<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.Strings;
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C;
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.Strings;
+ <b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
+ <b>with</b> Ada.Strings.Fixed;
+
+-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_50_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
++<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_50_33" HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A></span> <b>is</b>
+
+- <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
++ <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_45_35">Aux</A>;
+ <b>use</b> <b>type</b> System.Bit_Order;
+
+- <b>package</b> <FONT COLOR=red><A NAME="ref_55_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
++ <b>package</b> <span class="symbol"><A NAME="ref_55_12">ASF</A></span> <b>renames</b> Ada.Strings.Fixed;
+
+ <b>type</b> chtype_array <b>is</b> <b>array</b> (size_t <b>range</b> &lt;&gt;)
+- <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
++ <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Convention (C, chtype_array);
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1618_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_62_13" HREF="terminal_interface-curses__ads.htm#ref_1786_13">Key_Name</A></span> (<span class="symbol"><A NAME="ref_62_23" HREF="terminal_interface-curses__ads.htm#ref_1786_23">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_64_16">Keyname</A></span> (<span class="symbol"><A NAME="ref_64_25" HREF="terminal_interface-curses__adb.htm#ref_64_16">K</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Keyname, "keyname");
+
+- <FONT COLOR=red><A NAME="ref_67_7">Ch</A></FONT> : Character;
++ <span class="symbol"><A NAME="ref_67_7">Ch</A></span> : Character;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1786_23">Key</A> &lt;= Character'Pos (Character'Last) <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1786_23">Key</A>);
+ <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1629_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>));
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1797_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>));
+ <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>) <b>then</b>
+ <b>declare</b>
+- <FONT COLOR=red><A NAME="ref_77_16">S</A></FONT> : String (1 .. 1);
++ <span class="symbol"><A NAME="ref_77_16">S</A></span> : String (1 .. 1);
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_67_7">Ch</A>;
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_77_16">S</A>;
+@@ -88,2475 +100,2476 @@
+ <b>return</b> "";
+ <b>end</b> <b>if</b>;
+ <b>else</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1618_23">Key</A>)));
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_64_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1786_23">Key</A>)));
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1618_13">Key_Name</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1786_13">Key_Name</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1612_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1612_24">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+- <FONT COLOR=red><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1613_24">Name</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_90_14" HREF="terminal_interface-curses__ads.htm#ref_1780_14">Key_Name</A></span> (<span class="symbol"><A NAME="ref_90_24" HREF="terminal_interface-curses__ads.htm#ref_1780_24">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>;
++ <span class="symbol"><A NAME="ref_91_24" HREF="terminal_interface-curses__ads.htm#ref_1781_24">Name</A></span> : <b>out</b> String)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1618_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1612_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1613_24">Name</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1612_14">Key_Name</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_55_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1786_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1780_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1781_24">Name</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1780_14">Key_Name</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_98_14" HREF="terminal_interface-curses__ads.htm#ref_656_14">Init_Screen</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_100_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_100_16">Initscr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Initscr, "initscr");
+
+- <FONT COLOR=red><A NAME="ref_103_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <span class="symbol"><A NAME="ref_103_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_100_16">Initscr</A>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_103_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_656_14">Init_Screen</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_111_14" HREF="terminal_interface-curses__ads.htm#ref_665_14">End_Windows</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_113_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_113_16">Endwin</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Endwin, "endwin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_113_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_113_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_665_14">End_Windows</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_504_13">Is_End_Window</A></FONT> <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_121_13" HREF="terminal_interface-curses__ads.htm#ref_672_13">Is_End_Window</A></span> <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_123_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_123_16">Isendwin</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Isendwin, "isendwin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_123_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_504_13">Is_End_Window</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_513_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_514_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_515_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_137_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>
+- ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_672_13">Is_End_Window</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_133_14" HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A></span> (<span class="symbol"><A NAME="ref_133_27" HREF="terminal_interface-curses__ads.htm#ref_681_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_134_27" HREF="terminal_interface-curses__ads.htm#ref_682_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_135_27" HREF="terminal_interface-curses__ads.htm#ref_683_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_137_16">Wmove</A></span> (<span class="symbol"><A NAME="ref_137_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_138_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_139_23" HREF="terminal_interface-curses__adb.htm#ref_137_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>
++ ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wmove, "wmove");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_513_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_514_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_515_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_137_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_681_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_682_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_683_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_525_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_525_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_526_19">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_148_14" HREF="terminal_interface-curses__ads.htm#ref_693_14">Add</A></span> (<span class="symbol"><A NAME="ref_148_19" HREF="terminal_interface-curses__ads.htm#ref_693_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_149_19" HREF="terminal_interface-curses__ads.htm#ref_694_19">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_151_16">Waddch</A></span> (<span class="symbol"><A NAME="ref_151_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_152_24" HREF="terminal_interface-curses__adb.htm#ref_151_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Waddch, "waddch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_525_19">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_526_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_151_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_693_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_694_19">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_525_14">Add</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_693_14">Add</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_530_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_531_19">Ch</A></FONT> : Character)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_160_14" HREF="terminal_interface-curses__ads.htm#ref_698_14">Add</A></span> (<span class="symbol"><A NAME="ref_160_19" HREF="terminal_interface-curses__ads.htm#ref_698_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_161_19" HREF="terminal_interface-curses__ads.htm#ref_699_19">Ch</A></span> : Character)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_525_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_530_19">Win</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_531_19">Ch</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_530_14">Add</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_693_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_698_19">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_699_19">Ch</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Add</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_170_14" HREF="terminal_interface-curses__ads.htm#ref_704_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_171_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_172_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_173_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_174_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_176_16">mvwaddch</A></span> (<span class="symbol"><A NAME="ref_176_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_177_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Y</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_178_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">X</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_179_26" HREF="terminal_interface-curses__adb.htm#ref_176_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, mvwaddch, "mvwaddch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A>),
+- AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_189_14" HREF="terminal_interface-curses__ads.htm#ref_544_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_190_7" HREF="terminal_interface-curses__ads.htm#ref_545_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_548_7">Ch</A></FONT> : Character)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_545_7">Win</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_546_7">Line</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_547_7">Column</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_548_7">Ch</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_544_14">Add</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_204_14" HREF="terminal_interface-curses__ads.htm#ref_553_14">Add_With_Immediate_Echo</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_205_7" HREF="terminal_interface-curses__ads.htm#ref_554_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_555_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Line</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Column</A>),
++ <A HREF="terminal_interface-curses__ads.htm#ref_708_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_704_14">Add</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_190_14" HREF="terminal_interface-curses__ads.htm#ref_712_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_191_7" HREF="terminal_interface-curses__ads.htm#ref_713_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_192_7" HREF="terminal_interface-curses__ads.htm#ref_714_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_193_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_194_7" HREF="terminal_interface-curses__ads.htm#ref_716_7">Ch</A></span> : Character)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_704_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_713_7">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_714_7">Line</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_715_7">Column</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Ch</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_712_14">Add</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_205_14" HREF="terminal_interface-curses__ads.htm#ref_721_14">Add_With_Immediate_Echo</A></span>
++ (<span class="symbol"><A NAME="ref_206_7" HREF="terminal_interface-curses__ads.htm#ref_722_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_207_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_208_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_208_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_208_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_209_16">Wechochar</A></span> (<span class="symbol"><A NAME="ref_209_27" HREF="terminal_interface-curses__adb.htm#ref_209_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_210_27" HREF="terminal_interface-curses__adb.htm#ref_209_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wechochar, "wechochar");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_208_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_554_7">Win</A>, AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_555_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_209_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_722_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_723_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_553_14">Add_With_Immediate_Echo</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_721_14">Add_With_Immediate_Echo</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_217_14" HREF="terminal_interface-curses__ads.htm#ref_559_14">Add_With_Immediate_Echo</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_218_7" HREF="terminal_interface-curses__ads.htm#ref_560_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_561_7">Ch</A></FONT> : Character)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_553_14">Add_With_Immediate_Echo</A>
+- (<A HREF="terminal_interface-curses__ads.htm#ref_560_7">Win</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_561_7">Ch</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_559_14">Add_With_Immediate_Echo</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_229_13" HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_229_21" HREF="terminal_interface-curses__ads.htm#ref_572_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_573_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_574_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_575_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_234_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_234_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_218_14" HREF="terminal_interface-curses__ads.htm#ref_727_14">Add_With_Immediate_Echo</A></span>
++ (<span class="symbol"><A NAME="ref_219_7" HREF="terminal_interface-curses__ads.htm#ref_728_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_220_7" HREF="terminal_interface-curses__ads.htm#ref_729_7">Ch</A></span> : Character)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_721_14">Add_With_Immediate_Echo</A>
++ (<A HREF="terminal_interface-curses__ads.htm#ref_728_7">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_729_7">Ch</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_727_14">Add_With_Immediate_Echo</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_230_13" HREF="terminal_interface-curses__ads.htm#ref_739_13">Create</A></span> (<span class="symbol"><A NAME="ref_230_21" HREF="terminal_interface-curses__ads.htm#ref_740_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_231_21" HREF="terminal_interface-curses__ads.htm#ref_741_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_232_21" HREF="terminal_interface-curses__ads.htm#ref_742_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_233_21" HREF="terminal_interface-curses__ads.htm#ref_743_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_235_16">Newwin</A></span> (<span class="symbol"><A NAME="ref_235_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_236_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_237_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_238_24" HREF="terminal_interface-curses__adb.htm#ref_235_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Newwin, "newwin");
+
+- <FONT COLOR=red><A NAME="ref_240_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <span class="symbol"><A NAME="ref_241_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_234_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_572_7">Number_Of_Lines</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_573_7">Number_Of_Columns</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_574_7">First_Line_Position</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_575_7">First_Column_Position</A>));
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_241_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_235_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_740_7">Number_Of_Lines</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_741_7">Number_Of_Columns</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_742_7">First_Line_Position</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_743_7">First_Column_Position</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_241_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_240_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_241_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_739_13">Create</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_252_14" HREF="terminal_interface-curses__ads.htm#ref_590_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_252_22" HREF="terminal_interface-curses__ads.htm#ref_590_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_253_14" HREF="terminal_interface-curses__ads.htm#ref_758_14">Delete</A></span> (<span class="symbol"><A NAME="ref_253_22" HREF="terminal_interface-curses__ads.htm#ref_758_22">Win</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_254_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_254_25" HREF="terminal_interface-curses__adb.htm#ref_254_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_255_16">Wdelwin</A></span> (<span class="symbol"><A NAME="ref_255_25" HREF="terminal_interface-curses__adb.htm#ref_255_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wdelwin, "delwin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_254_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_590_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_255_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_758_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__ads.htm#ref_590_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_590_14">Delete</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_758_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_758_14">Delete</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_263_13" HREF="terminal_interface-curses__ads.htm#ref_596_13">Sub_Window</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses__ads.htm#ref_597_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_598_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_600_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_601_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Subwin</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_271_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_270_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_264_13" HREF="terminal_interface-curses__ads.htm#ref_764_13">Sub_Window</A></span>
++ (<span class="symbol"><A NAME="ref_265_7" HREF="terminal_interface-curses__ads.htm#ref_765_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_266_7" HREF="terminal_interface-curses__ads.htm#ref_766_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_267_7" HREF="terminal_interface-curses__ads.htm#ref_767_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_268_7" HREF="terminal_interface-curses__ads.htm#ref_768_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_269_7" HREF="terminal_interface-curses__ads.htm#ref_769_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_271_16">Subwin</A></span>
++ (<span class="symbol"><A NAME="ref_272_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_273_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_274_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_275_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_276_10" HREF="terminal_interface-curses__adb.htm#ref_271_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Subwin, "subwin");
+
+- <FONT COLOR=red><A NAME="ref_278_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <span class="symbol"><A NAME="ref_279_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_270_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_597_7">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_598_7">Number_Of_Lines</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">Number_Of_Columns</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_600_7">First_Line_Position</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_601_7">First_Column_Position</A>));
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_278_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_596_13">Sub_Window</A>;
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses__ads.htm#ref_606_13">Derived_Window</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_292_7" HREF="terminal_interface-curses__ads.htm#ref_607_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_608_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_609_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_610_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_611_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_298_16">Derwin</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_299_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_298_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_279_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_271_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_765_7">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_766_7">Number_Of_Lines</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_767_7">Number_Of_Columns</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_768_7">First_Line_Position</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_769_7">First_Column_Position</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_279_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_279_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_764_13">Sub_Window</A>;
++
++ <b>function</b> <span class="symbol"><A NAME="ref_292_13" HREF="terminal_interface-curses__ads.htm#ref_774_13">Derived_Window</A></span>
++ (<span class="symbol"><A NAME="ref_293_7" HREF="terminal_interface-curses__ads.htm#ref_775_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_294_7" HREF="terminal_interface-curses__ads.htm#ref_776_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_295_7" HREF="terminal_interface-curses__ads.htm#ref_777_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_296_7" HREF="terminal_interface-curses__ads.htm#ref_778_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_297_7" HREF="terminal_interface-curses__ads.htm#ref_779_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_299_16">Derwin</A></span>
++ (<span class="symbol"><A NAME="ref_300_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_301_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_302_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_303_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_304_10" HREF="terminal_interface-curses__adb.htm#ref_299_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Derwin, "derwin");
+
+- <FONT COLOR=red><A NAME="ref_306_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <span class="symbol"><A NAME="ref_307_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_298_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_607_7">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_7">Number_Of_Lines</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_609_7">Number_Of_Columns</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_610_7">First_Line_Position</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_611_7">First_Column_Position</A>));
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_307_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_299_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_7">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_776_7">Number_Of_Lines</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_777_7">Number_Of_Columns</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_778_7">First_Line_Position</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_779_7">First_Column_Position</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_306_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_606_13">Derived_Window</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_774_13">Derived_Window</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_319_13" HREF="terminal_interface-curses__ads.htm#ref_616_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_319_24" HREF="terminal_interface-curses__ads.htm#ref_616_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_320_13" HREF="terminal_interface-curses__ads.htm#ref_784_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_320_24" HREF="terminal_interface-curses__ads.htm#ref_784_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_321_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_321_24" HREF="terminal_interface-curses__adb.htm#ref_321_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_322_16">Dupwin</A></span> (<span class="symbol"><A NAME="ref_322_24" HREF="terminal_interface-curses__adb.htm#ref_322_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Dupwin, "dupwin");
+
+- <FONT COLOR=red><A NAME="ref_324_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_321_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_616_24">Win</A>);
++ <span class="symbol"><A NAME="ref_325_7">W</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_322_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_784_24">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_325_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_324_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_616_13">Duplicate</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_325_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_784_13">Duplicate</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_332_14" HREF="terminal_interface-curses__ads.htm#ref_621_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_332_27" HREF="terminal_interface-curses__ads.htm#ref_621_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_622_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_623_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_333_14" HREF="terminal_interface-curses__ads.htm#ref_789_14">Move_Window</A></span> (<span class="symbol"><A NAME="ref_333_27" HREF="terminal_interface-curses__ads.htm#ref_789_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_334_27" HREF="terminal_interface-curses__ads.htm#ref_790_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_335_27" HREF="terminal_interface-curses__ads.htm#ref_791_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_336_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_336_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_336_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_337_16">Mvwin</A></span> (<span class="symbol"><A NAME="ref_337_23" HREF="terminal_interface-curses__adb.htm#ref_337_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_338_23" HREF="terminal_interface-curses__adb.htm#ref_337_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_339_23" HREF="terminal_interface-curses__adb.htm#ref_337_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mvwin, "mvwin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_336_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_622_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_623_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_337_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_789_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_790_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_791_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_621_14">Move_Window</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_789_14">Move_Window</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_346_14" HREF="terminal_interface-curses__ads.htm#ref_628_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_346_35" HREF="terminal_interface-curses__ads.htm#ref_628_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_629_35">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_630_35">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_350_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_350_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_350_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_347_14" HREF="terminal_interface-curses__ads.htm#ref_796_14">Move_Derived_Window</A></span> (<span class="symbol"><A NAME="ref_347_35" HREF="terminal_interface-curses__ads.htm#ref_796_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_348_35" HREF="terminal_interface-curses__ads.htm#ref_797_35">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_349_35" HREF="terminal_interface-curses__ads.htm#ref_798_35">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_351_16">Mvderwin</A></span> (<span class="symbol"><A NAME="ref_351_26" HREF="terminal_interface-curses__adb.htm#ref_351_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_352_26" HREF="terminal_interface-curses__adb.htm#ref_351_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_353_26" HREF="terminal_interface-curses__adb.htm#ref_351_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mvderwin, "mvderwin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_350_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_628_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_629_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_630_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_796_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_797_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_798_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_628_14">Move_Derived_Window</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_796_14">Move_Derived_Window</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_360_14" HREF="terminal_interface-curses__ads.htm#ref_645_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_360_30" HREF="terminal_interface-curses__ads.htm#ref_645_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_646_30">Mode</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_361_14" HREF="terminal_interface-curses__ads.htm#ref_813_14">Set_Synch_Mode</A></span> (<span class="symbol"><A NAME="ref_361_30" HREF="terminal_interface-curses__ads.htm#ref_813_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_362_30" HREF="terminal_interface-curses__ads.htm#ref_814_30">Mode</A></span> : Boolean := False)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_363_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_363_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_363_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_364_16">Syncok</A></span> (<span class="symbol"><A NAME="ref_364_24" HREF="terminal_interface-curses__adb.htm#ref_364_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_365_24" HREF="terminal_interface-curses__adb.htm#ref_364_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Syncok, "syncok");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_363_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_645_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_646_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_364_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_813_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_814_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_645_14">Set_Synch_Mode</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_372_14" HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_372_19" HREF="terminal_interface-curses__ads.htm#ref_655_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_656_19">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_657_19">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_376_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_376_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Str</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_376_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_813_14">Set_Synch_Mode</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_373_14" HREF="terminal_interface-curses__ads.htm#ref_823_14">Add</A></span> (<span class="symbol"><A NAME="ref_373_19" HREF="terminal_interface-curses__ads.htm#ref_823_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_374_19" HREF="terminal_interface-curses__ads.htm#ref_824_19">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_375_19" HREF="terminal_interface-curses__ads.htm#ref_825_19">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_377_16">Waddnstr</A></span> (<span class="symbol"><A NAME="ref_377_26" HREF="terminal_interface-curses__adb.htm#ref_377_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_378_26" HREF="terminal_interface-curses__adb.htm#ref_377_16">Str</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_379_26" HREF="terminal_interface-curses__adb.htm#ref_377_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Waddnstr, "waddnstr");
+
+- <FONT COLOR=red><A NAME="ref_381_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_656_19">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_382_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_382_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_824_19">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_383_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_376_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_655_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_381_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_657_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_390_14" HREF="terminal_interface-curses__ads.htm#ref_664_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_391_7" HREF="terminal_interface-curses__ads.htm#ref_664_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_665_19">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_666_19">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_667_19">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_668_19">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_664_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_665_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_666_19">Column</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_655_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_664_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_667_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_668_19">Len</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_664_14">Add</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_402_14" HREF="terminal_interface-curses__ads.htm#ref_679_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_403_7" HREF="terminal_interface-curses__ads.htm#ref_679_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>;
+- <FONT COLOR=red><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_681_19">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_407_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_407_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Str</A></FONT> : chtype_array;
+- <FONT COLOR=red><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_407_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_824_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_383_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_823_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_382_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_825_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_823_14">Add</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_391_14" HREF="terminal_interface-curses__ads.htm#ref_832_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_392_7" HREF="terminal_interface-curses__ads.htm#ref_832_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_393_7" HREF="terminal_interface-curses__ads.htm#ref_833_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_394_7" HREF="terminal_interface-curses__ads.htm#ref_834_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_395_7" HREF="terminal_interface-curses__ads.htm#ref_835_19">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_396_7" HREF="terminal_interface-curses__ads.htm#ref_836_19">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_832_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_833_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_834_19">Column</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_823_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_832_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_835_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_836_19">Len</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_14">Add</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_403_14" HREF="terminal_interface-curses__ads.htm#ref_847_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_404_7" HREF="terminal_interface-curses__ads.htm#ref_847_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_405_7" HREF="terminal_interface-curses__ads.htm#ref_848_19">Str</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Attributed_String</A>;
++ <span class="symbol"><A NAME="ref_406_7" HREF="terminal_interface-curses__ads.htm#ref_849_19">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_408_16">Waddchnstr</A></span> (<span class="symbol"><A NAME="ref_408_28" HREF="terminal_interface-curses__adb.htm#ref_408_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_409_28" HREF="terminal_interface-curses__adb.htm#ref_408_16">Str</A></span> : chtype_array;
++ <span class="symbol"><A NAME="ref_410_28" HREF="terminal_interface-curses__adb.htm#ref_408_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Waddchnstr, "waddchnstr");
+
+- <FONT COLOR=red><A NAME="ref_412_7">Txt</A></FONT> : chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_413_7">Txt</A></span> : chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_848_19">Str</A>'Length);
+ <b>begin</b>
+- <b>for</b> <FONT COLOR=red><A NAME="ref_414_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A>'Length) <b>loop</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_414_11">Length</A>));
++ <b>for</b> <span class="symbol"><A NAME="ref_415_11">Length</A></span> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_848_19">Str</A>'Length) <b>loop</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_413_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_415_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_848_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_415_11">Length</A>));
+ <b>end</b> <b>loop</b>;
+- <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_407_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_679_19">Win</A>,
+- <A HREF="terminal_interface-curses__adb.htm#ref_412_7">Txt</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_681_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_679_14">Add</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_688_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_426_7" HREF="terminal_interface-curses__ads.htm#ref_688_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_427_7" HREF="terminal_interface-curses__ads.htm#ref_689_19">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_690_19">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_691_19">Str</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>;
+- <FONT COLOR=red><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_692_19">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_688_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_689_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_690_19">Column</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_679_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_688_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_691_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_692_19">Len</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_688_14">Add</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_437_14" HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_438_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_439_7" HREF="terminal_interface-curses__ads.htm#ref_708_7">Left_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_709_7">Right_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_710_7">Top_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_711_7">Bottom_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_712_7">Upper_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_713_7">Upper_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_714_7">Lower_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Lower_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_448_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_449_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">RS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">TS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">BS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_448_16">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_413_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_848_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_408_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_847_19">Win</A>,
++ <A HREF="terminal_interface-curses__adb.htm#ref_413_7">Txt</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_847_14">Add</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_427_14" HREF="terminal_interface-curses__ads.htm#ref_856_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_428_7" HREF="terminal_interface-curses__ads.htm#ref_856_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_429_7" HREF="terminal_interface-curses__ads.htm#ref_857_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_430_7" HREF="terminal_interface-curses__ads.htm#ref_858_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_431_7" HREF="terminal_interface-curses__ads.htm#ref_859_19">Str</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Attributed_String</A>;
++ <span class="symbol"><A NAME="ref_432_7" HREF="terminal_interface-curses__ads.htm#ref_860_19">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_856_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_857_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_19">Column</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_847_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_856_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_19">Len</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_856_14">Add</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_439_14" HREF="terminal_interface-curses__ads.htm#ref_874_14">Border</A></span>
++ (<span class="symbol"><A NAME="ref_440_7" HREF="terminal_interface-curses__ads.htm#ref_875_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_441_7" HREF="terminal_interface-curses__ads.htm#ref_876_7">Left_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_442_7" HREF="terminal_interface-curses__ads.htm#ref_877_7">Right_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_443_7" HREF="terminal_interface-curses__ads.htm#ref_878_7">Top_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_879_7">Bottom_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_880_7">Upper_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_881_7">Upper_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_447_7" HREF="terminal_interface-curses__ads.htm#ref_882_7">Lower_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_448_7" HREF="terminal_interface-curses__ads.htm#ref_883_7">Lower_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_450_16">Wborder</A></span> (<span class="symbol"><A NAME="ref_450_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_451_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">LS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_452_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">RS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_453_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">TS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_454_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">BS</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_455_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">ULC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_456_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">URC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_457_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">LLC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_458_25" HREF="terminal_interface-curses__adb.htm#ref_450_16">LRC</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wborder, "wborder");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_448_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Win</A>,
+- AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_708_7">Left_Side_Symbol</A>),
+- AttrChar_To_Chtype (<A HREF="terminal_interface-curses__ads.htm#ref_709_7">Right_Side_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_710_7">Top_Side_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_711_7">Bottom_Side_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_712_7">Upper_Left_Corner_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_713_7">Upper_Right_Corner_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_714_7">Lower_Left_Corner_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_715_7">Lower_Right_Corner_Symbol</A>)
+- ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A>
+- <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Box</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_475_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Vertical_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_725_7">Horizontal_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_724_7">Vertical_Symbol</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_725_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_725_7">Horizontal_Symbol</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Box</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_485_14" HREF="terminal_interface-curses__ads.htm#ref_730_14">Horizontal_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_486_7" HREF="terminal_interface-curses__ads.htm#ref_731_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Line_Size</A></FONT> : Natural;
+- <FONT COLOR=red><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_490_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_490_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_450_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_875_7">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_876_7">Left_Side_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_877_7">Right_Side_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_878_7">Top_Side_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_879_7">Bottom_Side_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_880_7">Upper_Left_Corner_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_881_7">Upper_Right_Corner_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_882_7">Lower_Left_Corner_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_883_7">Lower_Right_Corner_Symbol</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_874_14">Border</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_475_14" HREF="terminal_interface-curses__ads.htm#ref_890_14">Box</A></span>
++ (<span class="symbol"><A NAME="ref_476_7" HREF="terminal_interface-curses__ads.htm#ref_891_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_477_7" HREF="terminal_interface-curses__ads.htm#ref_892_7">Vertical_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_478_7" HREF="terminal_interface-curses__ads.htm#ref_893_7">Horizontal_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_874_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_891_7">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_892_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_892_7">Vertical_Symbol</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_893_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_893_7">Horizontal_Symbol</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_890_14">Box</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_486_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Horizontal_Line</A></span>
++ (<span class="symbol"><A NAME="ref_487_7" HREF="terminal_interface-curses__ads.htm#ref_899_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_488_7" HREF="terminal_interface-curses__ads.htm#ref_900_7">Line_Size</A></span> : Natural;
++ <span class="symbol"><A NAME="ref_489_7" HREF="terminal_interface-curses__ads.htm#ref_901_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_491_16">Whline</A></span> (<span class="symbol"><A NAME="ref_491_24" HREF="terminal_interface-curses__adb.htm#ref_491_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_492_24" HREF="terminal_interface-curses__adb.htm#ref_491_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_493_24" HREF="terminal_interface-curses__adb.htm#ref_491_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Whline, "whline");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_490_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_731_7">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_730_14">Horizontal_Line</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_502_14" HREF="terminal_interface-curses__ads.htm#ref_739_14">Vertical_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_503_7" HREF="terminal_interface-curses__ads.htm#ref_740_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_504_7" HREF="terminal_interface-curses__ads.htm#ref_741_7">Line_Size</A></FONT> : Natural;
+- <FONT COLOR=red><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_742_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_507_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_508_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+- <FONT COLOR=red><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_507_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_491_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_899_7">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_901_7">Line_Symbol</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_900_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Horizontal_Line</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_504_14" HREF="terminal_interface-curses__ads.htm#ref_907_14">Vertical_Line</A></span>
++ (<span class="symbol"><A NAME="ref_505_7" HREF="terminal_interface-curses__ads.htm#ref_908_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_506_7" HREF="terminal_interface-curses__ads.htm#ref_909_7">Line_Size</A></span> : Natural;
++ <span class="symbol"><A NAME="ref_507_7" HREF="terminal_interface-curses__ads.htm#ref_910_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_509_16">Wvline</A></span> (<span class="symbol"><A NAME="ref_509_24" HREF="terminal_interface-curses__adb.htm#ref_509_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_510_24" HREF="terminal_interface-curses__adb.htm#ref_509_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_511_24" HREF="terminal_interface-curses__adb.htm#ref_509_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wvline, "wvline");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_507_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_740_7">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_742_7">Line_Symbol</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_741_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_739_14">Vertical_Line</A>;
+-
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_520_13" HREF="terminal_interface-curses__ads.htm#ref_753_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_520_28" HREF="terminal_interface-curses__ads.htm#ref_753_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_509_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_908_7">Win</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_910_7">Line_Symbol</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_909_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_907_14">Vertical_Line</A>;
++
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_523_13" HREF="terminal_interface-curses__ads.htm#ref_921_13">Get_Keystroke</A></span> (<span class="symbol"><A NAME="ref_523_28" HREF="terminal_interface-curses__ads.htm#ref_921_28">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_523_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_523_24" HREF="terminal_interface-curses__adb.htm#ref_523_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_526_16">Wgetch</A></span> (<span class="symbol"><A NAME="ref_526_24" HREF="terminal_interface-curses__adb.htm#ref_526_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wgetch, "wgetch");
+
+- <FONT COLOR=red><A NAME="ref_526_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_523_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_753_28">Win</A>);
++ <span class="symbol"><A NAME="ref_529_7">C</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_526_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_921_28">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_529_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_88_4">Key_None</A>;
+ <b>else</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_526_7">C</A>);
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_529_7">C</A>);
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_753_13">Get_Keystroke</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_921_13">Get_Keystroke</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_535_14" HREF="terminal_interface-curses__ads.htm#ref_764_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_535_30" HREF="terminal_interface-curses__ads.htm#ref_764_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_538_14" HREF="terminal_interface-curses__ads.htm#ref_932_14">Undo_Keystroke</A></span> (<span class="symbol"><A NAME="ref_538_30" HREF="terminal_interface-curses__ads.htm#ref_932_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_537_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_537_25" HREF="terminal_interface-curses__adb.htm#ref_537_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_540_16">Ungetch</A></span> (<span class="symbol"><A NAME="ref_540_25" HREF="terminal_interface-curses__adb.htm#ref_540_16">Ch</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Ungetch, "ungetch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_537_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_764_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_540_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_932_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_764_14">Undo_Keystroke</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_932_14">Undo_Keystroke</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_545_13" HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_545_22" HREF="terminal_interface-curses__ads.htm#ref_769_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_548_13" HREF="terminal_interface-curses__ads.htm#ref_937_13">Has_Key</A></span> (<span class="symbol"><A NAME="ref_548_22" HREF="terminal_interface-curses__ads.htm#ref_937_22">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_547_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_547_24" HREF="terminal_interface-curses__adb.htm#ref_547_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_550_16">Haskey</A></span> (<span class="symbol"><A NAME="ref_550_24" HREF="terminal_interface-curses__adb.htm#ref_550_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Haskey, "has_key");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_547_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_769_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_550_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_937_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_13">Has_Key</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_557_13" HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_557_30" HREF="terminal_interface-curses__ads.htm#ref_776_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_560_13" HREF="terminal_interface-curses__ads.htm#ref_944_13">Is_Function_Key</A></span> (<span class="symbol"><A NAME="ref_560_30" HREF="terminal_interface-curses__ads.htm#ref_944_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>) <b>return</b> Boolean
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_559_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) +
+- Natural (<A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>'Last));
++ <span class="symbol"><A NAME="ref_562_7">L</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_110_4">Key_F0</A>) +
++ Natural (<A HREF="terminal_interface-curses__ads.htm#ref_948_12">Function_Key_Number</A>'Last));
+ <b>begin</b>
+- <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_776_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_776_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_559_7">L</A>) <b>then</b>
++ <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_944_30">Key</A> &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_110_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_944_30">Key</A> &lt;= <A HREF="terminal_interface-curses__adb.htm#ref_562_7">L</A>) <b>then</b>
+ <b>return</b> True;
+ <b>else</b>
+ <b>return</b> False;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_944_13">Is_Function_Key</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_569_13" HREF="terminal_interface-curses__ads.htm#ref_783_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27" HREF="terminal_interface-curses__ads.htm#ref_783_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_572_13" HREF="terminal_interface-curses__ads.htm#ref_951_13">Function_Key</A></span> (<span class="symbol"><A NAME="ref_572_27" HREF="terminal_interface-curses__ads.htm#ref_951_27">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_12">Function_Key_Number</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_783_27">Key</A>) <b>then</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_783_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_944_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_951_27">Key</A>) <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_951_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_110_4">Key_F0</A>);
+ <b>else</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_783_13">Function_Key</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_13">Function_Key</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_580_13" HREF="terminal_interface-curses__ads.htm#ref_788_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_580_32" HREF="terminal_interface-curses__ads.htm#ref_788_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_583_13" HREF="terminal_interface-curses__ads.htm#ref_956_13">Function_Key_Code</A></span> (<span class="symbol"><A NAME="ref_583_32" HREF="terminal_interface-curses__ads.htm#ref_956_32">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_948_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>
+ <b>is</b>
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_788_32">Key</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_788_13">Function_Key_Code</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses__ads.htm#ref_802_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_586_24" HREF="terminal_interface-curses__ads.htm#ref_802_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_587_24" HREF="terminal_interface-curses__ads.htm#ref_803_24">On</A></FONT> : Boolean := True)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_110_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_956_32">Key</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_956_13">Function_Key_Code</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_589_14" HREF="terminal_interface-curses__ads.htm#ref_970_14">Standout</A></span> (<span class="symbol"><A NAME="ref_589_24" HREF="terminal_interface-curses__ads.htm#ref_970_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_590_24" HREF="terminal_interface-curses__ads.htm#ref_971_24">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_589_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_589_27" HREF="terminal_interface-curses__adb.htm#ref_589_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_592_16">wstandout</A></span> (<span class="symbol"><A NAME="ref_592_27" HREF="terminal_interface-curses__adb.htm#ref_592_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, wstandout, "wstandout");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_591_27" HREF="terminal_interface-curses__adb.htm#ref_591_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_594_16">wstandend</A></span> (<span class="symbol"><A NAME="ref_594_27" HREF="terminal_interface-curses__adb.htm#ref_594_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, wstandend, "wstandend");
+
+- <FONT COLOR=red><A NAME="ref_594_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_597_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_803_24">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_589_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_802_24">Win</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_971_24">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_597_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_592_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_970_24">Win</A>);
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_591_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_802_24">Win</A>);
++ <A HREF="terminal_interface-curses__adb.htm#ref_597_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_594_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_970_24">Win</A>);
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_594_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_597_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_802_14">Standout</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_970_14">Standout</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_606_14" HREF="terminal_interface-curses__ads.htm#ref_808_14">Switch_Character_Attribute</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__ads.htm#ref_809_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__ads.htm#ref_810_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__ads.htm#ref_811_7">On</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_609_14" HREF="terminal_interface-curses__ads.htm#ref_976_14">Switch_Character_Attribute</A></span>
++ (<span class="symbol"><A NAME="ref_610_7" HREF="terminal_interface-curses__ads.htm#ref_977_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_611_7" HREF="terminal_interface-curses__ads.htm#ref_978_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_612_7" HREF="terminal_interface-curses__ads.htm#ref_979_7">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_611_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_611_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_612_25" HREF="terminal_interface-curses__adb.htm#ref_611_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_614_16">Wattron</A></span> (<span class="symbol"><A NAME="ref_614_25" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_615_25" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wattron, "wattr_on");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_614_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses__adb.htm#ref_614_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_617_16">Wattroff</A></span> (<span class="symbol"><A NAME="ref_617_26" HREF="terminal_interface-curses__adb.htm#ref_617_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_618_26" HREF="terminal_interface-curses__adb.htm#ref_617_16">C_Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wattroff, "wattr_off");
+- <FONT COLOR=green><EM>-- In Ada we use the On Boolean to control whether or not we want to</EM></FONT>
+- <FONT COLOR=green><EM>-- switch on or off the attributes in the set.</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_619_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_620_7">AC</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_810_7">Attr</A>);
+- <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_811_7">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_611_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#ref_809_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>));
+- <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_809_7">Win</A>, AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_620_7">AC</A>));
+- <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_619_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_808_14">Switch_Character_Attribute</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_634_14" HREF="terminal_interface-curses__ads.htm#ref_819_14">Set_Character_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_635_7" HREF="terminal_interface-curses__ads.htm#ref_820_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_636_7" HREF="terminal_interface-curses__ads.htm#ref_821_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_637_7" HREF="terminal_interface-curses__ads.htm#ref_822_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_639_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_639_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_640_26" HREF="terminal_interface-curses__adb.htm#ref_639_16">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, Wattrset, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
+- <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_639_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_820_7">Win</A>,
+- AttrChar_To_AttrType (<A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'
+- (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_822_7">Color</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_821_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_819_14">Set_Character_Attributes</A>;
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_652_13" HREF="terminal_interface-curses__ads.htm#ref_828_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_652_38" HREF="terminal_interface-curses__ads.htm#ref_829_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_655_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_655_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_656_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+- <FONT COLOR=red><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_655_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="comment"><EM>-- In Ada we use the On Boolean to control whether or not we want to</EM></span>
++ <span class="comment"><EM>-- switch on or off the attributes in the set.</EM></span>
++ <span class="symbol"><A NAME="ref_622_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_623_7">AC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_978_7">Attr</A>);
++ <b>begin</b>
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_979_7">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_622_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_614_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#ref_977_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_623_7">AC</A>);
++ <b>else</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_622_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_617_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_977_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_623_7">AC</A>);
++ <b>end</b> <b>if</b>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_622_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_976_14">Switch_Character_Attribute</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_637_14" HREF="terminal_interface-curses__ads.htm#ref_987_14">Set_Character_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_638_7" HREF="terminal_interface-curses__ads.htm#ref_988_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_639_7" HREF="terminal_interface-curses__ads.htm#ref_989_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_640_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_642_16">Wattrset</A></span> (<span class="symbol"><A NAME="ref_642_26" HREF="terminal_interface-curses__adb.htm#ref_642_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_643_26" HREF="terminal_interface-curses__adb.htm#ref_642_16">C_Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>pragma</b> Import (C, Wattrset, "wattrset"); <span class="comment"><EM>-- ??? wattr_set</EM></span>
++ <b>begin</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_642_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_988_7">Win</A>, (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_990_7">Color</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_989_7">Attr</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_987_14">Set_Character_Attributes</A>;
++
++ <b>function</b> <span class="symbol"><A NAME="ref_654_13" HREF="terminal_interface-curses__ads.htm#ref_996_13">Get_Character_Attribute</A></span> (<span class="symbol"><A NAME="ref_654_38" HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_657_16">Wattrget</A></span> (<span class="symbol"><A NAME="ref_657_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_658_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Atr</A></span> : <b>access</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_659_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Col</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_660_26" HREF="terminal_interface-curses__adb.htm#ref_657_16">Opt</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wattrget, "wattr_get");
+
+- <FONT COLOR=red><A NAME="ref_661_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+- <FONT COLOR=red><A NAME="ref_662_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_663_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_655_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_829_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_662_7">Col</A>'<b>Access</b>,
++ <span class="symbol"><A NAME="ref_663_7">Attr</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_664_7">Col</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_665_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_657_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_664_7">Col</A>'<b>Access</b>,
+ System.Null_Address);
+- <FONT COLOR=red><A NAME="ref_665_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_661_7">Attr</A>);
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_665_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Ok</A> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_663_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
+ <b>else</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_828_13">Get_Character_Attribute</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_996_13">Get_Character_Attribute</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_834_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_835_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_675_13" HREF="terminal_interface-curses__ads.htm#ref_1002_13">Get_Character_Attribute</A></span> (<span class="symbol"><A NAME="ref_675_38" HREF="terminal_interface-curses__ads.htm#ref_1003_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_678_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+- <FONT COLOR=red><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_678_16">Wattrget</A></span> (<span class="symbol"><A NAME="ref_678_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_679_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Atr</A></span> : <b>access</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_680_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Col</A></span> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_681_26" HREF="terminal_interface-curses__adb.htm#ref_678_16">Opt</A></span> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wattrget, "wattr_get");
+
+- <FONT COLOR=red><A NAME="ref_684_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+- <FONT COLOR=red><A NAME="ref_685_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_686_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_835_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>,
++ <span class="symbol"><A NAME="ref_684_7">Attr</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_685_7">Col</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_686_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_678_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1003_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_685_7">Col</A>'<b>Access</b>,
+ System.Null_Address);
+- <FONT COLOR=red><A NAME="ref_688_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_686_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A> := AttrType_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>);
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_688_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_686_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_4">Curses_Ok</A> <b>then</b>
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_684_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
+ <b>else</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_834_13">Get_Character_Attribute</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1002_13">Get_Character_Attribute</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_698_14" HREF="terminal_interface-curses__ads.htm#ref_840_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_698_25" HREF="terminal_interface-curses__ads.htm#ref_840_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_699_25" HREF="terminal_interface-curses__ads.htm#ref_841_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_696_14" HREF="terminal_interface-curses__ads.htm#ref_1008_14">Set_Color</A></span> (<span class="symbol"><A NAME="ref_696_25" HREF="terminal_interface-curses__ads.htm#ref_1008_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_697_25" HREF="terminal_interface-curses__ads.htm#ref_1009_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_701_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_702_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_703_28" HREF="terminal_interface-curses__adb.htm#ref_701_16">Opts</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_699_16">Wset_Color</A></span> (<span class="symbol"><A NAME="ref_699_28" HREF="terminal_interface-curses__adb.htm#ref_699_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_700_28" HREF="terminal_interface-curses__adb.htm#ref_699_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_701_28" HREF="terminal_interface-curses__adb.htm#ref_699_16">Opts</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wset_Color, "wcolor_set");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_701_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_25">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_841_25">Pair</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_840_14">Set_Color</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_713_14" HREF="terminal_interface-curses__ads.htm#ref_847_14">Change_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_848_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Count</A></FONT> : Integer := -1;
+- <FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__ads.htm#ref_851_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_719_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+- <FONT COLOR=red><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_723_24" HREF="terminal_interface-curses__adb.htm#ref_719_16">Opts</A></FONT> : System.Address := System.Null_Address)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, Wchgat, "wchgat");
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_699_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1008_25">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1009_25">Pair</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1008_14">Set_Color</A>;
+
+- <FONT COLOR=red><A NAME="ref_727_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> :=
+- (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First, <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_850_7">Attr</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_712_14" HREF="terminal_interface-curses__ads.htm#ref_1015_14">Change_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_713_7" HREF="terminal_interface-curses__ads.htm#ref_1016_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_714_7" HREF="terminal_interface-curses__ads.htm#ref_1017_7">Count</A></span> : Integer := -1;
++ <span class="symbol"><A NAME="ref_715_7" HREF="terminal_interface-curses__ads.htm#ref_1018_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_716_7" HREF="terminal_interface-curses__ads.htm#ref_1019_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_718_16">Wchgat</A></span> (<span class="symbol"><A NAME="ref_718_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_719_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_720_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_721_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_722_24" HREF="terminal_interface-curses__adb.htm#ref_718_16">Opts</A></span> : System.Address := System.Null_Address)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>pragma</b> Import (C, Wchgat, "wchgat");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_719_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_848_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Count</A>), AttrChar_To_AttrType (<A HREF="terminal_interface-curses__adb.htm#ref_727_7">Ch</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_851_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_847_14">Change_Attributes</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_736_14" HREF="terminal_interface-curses__ads.htm#ref_856_14">Change_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_737_7" HREF="terminal_interface-curses__ads.htm#ref_857_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_858_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
+- <FONT COLOR=red><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_859_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
+- <FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_860_7">Count</A></FONT> : Integer := -1;
+- <FONT COLOR=red><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_861_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_862_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_857_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_858_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_859_7">Column</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_847_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_857_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_860_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_861_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_862_7">Color</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_856_14">Change_Attributes</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_749_14" HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A></FONT>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_718_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1016_7">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1017_7">Count</A>),
++ (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1018_7">Attr</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1019_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1015_14">Change_Attributes</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_737_14" HREF="terminal_interface-curses__ads.htm#ref_1024_14">Change_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_738_7" HREF="terminal_interface-curses__ads.htm#ref_1025_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_739_7" HREF="terminal_interface-curses__ads.htm#ref_1026_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>'First;
++ <span class="symbol"><A NAME="ref_740_7" HREF="terminal_interface-curses__ads.htm#ref_1027_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>'First;
++ <span class="symbol"><A NAME="ref_741_7" HREF="terminal_interface-curses__ads.htm#ref_1028_7">Count</A></span> : Integer := -1;
++ <span class="symbol"><A NAME="ref_742_7" HREF="terminal_interface-curses__ads.htm#ref_1029_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_743_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1025_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1026_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1027_7">Column</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1015_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1025_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1028_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1029_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Color</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1024_14">Change_Attributes</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_750_14" HREF="terminal_interface-curses__ads.htm#ref_1040_14">Beep</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_751_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_752_16">Beeper</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Beeper, "beep");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_751_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_752_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Beep</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_759_14" HREF="terminal_interface-curses__ads.htm#ref_877_14">Flash_Screen</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_760_14" HREF="terminal_interface-curses__ads.htm#ref_1045_14">Flash_Screen</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_761_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_762_16">Flash</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Flash, "flash");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_761_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_762_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_877_14">Flash_Screen</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_769_14" HREF="terminal_interface-curses__ads.htm#ref_888_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_769_31" HREF="terminal_interface-curses__ads.htm#ref_888_31">SwitchOn</A></FONT> : Boolean := True)
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1045_14">Flash_Screen</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_770_14" HREF="terminal_interface-curses__ads.htm#ref_1056_14">Set_Cbreak_Mode</A></span> (<span class="symbol"><A NAME="ref_770_31" HREF="terminal_interface-curses__ads.htm#ref_1056_31">SwitchOn</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_771_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_772_16">Cbreak</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Cbreak, "cbreak");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_773_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_774_16">NoCbreak</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, NoCbreak, "nocbreak");
+
+- <FONT COLOR=red><A NAME="ref_776_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_777_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_888_31">SwitchOn</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_771_16">Cbreak</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1056_31">SwitchOn</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_777_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Cbreak</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_773_16">NoCbreak</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_777_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_774_16">NoCbreak</A>;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_776_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_777_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_888_14">Set_Cbreak_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1056_14">Set_Cbreak_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_788_14" HREF="terminal_interface-curses__ads.htm#ref_894_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_788_28" HREF="terminal_interface-curses__ads.htm#ref_894_28">SwitchOn</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_789_14" HREF="terminal_interface-curses__ads.htm#ref_1062_14">Set_Raw_Mode</A></span> (<span class="symbol"><A NAME="ref_789_28" HREF="terminal_interface-curses__ads.htm#ref_1062_28">SwitchOn</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_790_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_791_16">Raw</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Raw, "raw");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_792_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_793_16">NoRaw</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, NoRaw, "noraw");
+
+- <FONT COLOR=red><A NAME="ref_795_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_796_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_894_28">SwitchOn</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_790_16">Raw</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1062_28">SwitchOn</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_796_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_791_16">Raw</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_792_16">NoRaw</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_796_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_793_16">NoRaw</A>;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_795_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_796_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_894_14">Set_Raw_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1062_14">Set_Raw_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_807_14" HREF="terminal_interface-curses__ads.htm#ref_900_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_807_29" HREF="terminal_interface-curses__ads.htm#ref_900_29">SwitchOn</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_808_14" HREF="terminal_interface-curses__ads.htm#ref_1068_14">Set_Echo_Mode</A></span> (<span class="symbol"><A NAME="ref_808_29" HREF="terminal_interface-curses__ads.htm#ref_1068_29">SwitchOn</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_809_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_810_16">Echo</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Echo, "echo");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_811_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_812_16">NoEcho</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, NoEcho, "noecho");
+
+- <FONT COLOR=red><A NAME="ref_814_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_815_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_900_29">SwitchOn</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_809_16">Echo</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1068_29">SwitchOn</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_815_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_810_16">Echo</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_811_16">NoEcho</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_815_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_812_16">NoEcho</A>;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_815_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_900_14">Set_Echo_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1068_14">Set_Echo_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_826_14" HREF="terminal_interface-curses__ads.htm#ref_906_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_826_29" HREF="terminal_interface-curses__ads.htm#ref_906_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_907_29">SwitchOn</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_827_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Set_Meta_Mode</A></span> (<span class="symbol"><A NAME="ref_827_29" HREF="terminal_interface-curses__ads.htm#ref_1074_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_828_29" HREF="terminal_interface-curses__ads.htm#ref_1075_29">SwitchOn</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_829_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_829_22" HREF="terminal_interface-curses__adb.htm#ref_829_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_829_34" HREF="terminal_interface-curses__adb.htm#ref_829_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_830_16">Meta</A></span> (<span class="symbol"><A NAME="ref_830_22" HREF="terminal_interface-curses__adb.htm#ref_830_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_830_34" HREF="terminal_interface-curses__adb.htm#ref_830_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Meta, "meta");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_906_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_907_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_830_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1074_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1075_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_906_14">Set_Meta_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Set_Meta_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_837_14" HREF="terminal_interface-curses__ads.htm#ref_912_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_837_31" HREF="terminal_interface-curses__ads.htm#ref_912_31">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_913_31">SwitchOn</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_838_14" HREF="terminal_interface-curses__ads.htm#ref_1080_14">Set_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_838_31" HREF="terminal_interface-curses__ads.htm#ref_1080_31">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_839_31" HREF="terminal_interface-curses__ads.htm#ref_1081_31">SwitchOn</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_840_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_840_24" HREF="terminal_interface-curses__adb.htm#ref_840_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_840_36" HREF="terminal_interface-curses__adb.htm#ref_840_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_841_16">Keypad</A></span> (<span class="symbol"><A NAME="ref_841_24" HREF="terminal_interface-curses__adb.htm#ref_841_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_841_36" HREF="terminal_interface-curses__adb.htm#ref_841_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Keypad, "keypad");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_840_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_912_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_913_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_841_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1080_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1081_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_912_14">Set_KeyPad_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Set_KeyPad_Mode</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_848_13" HREF="terminal_interface-curses__ads.htm#ref_917_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_848_30" HREF="terminal_interface-curses__ads.htm#ref_917_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>function</b> <span class="symbol"><A NAME="ref_849_13" HREF="terminal_interface-curses__ads.htm#ref_1085_13">Get_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_849_30" HREF="terminal_interface-curses__ads.htm#ref_1085_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_851_16">Is_Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_851_27" HREF="terminal_interface-curses__adb.htm#ref_851_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_852_16">Is_Keypad</A></span> (<span class="symbol"><A NAME="ref_852_27" HREF="terminal_interface-curses__adb.htm#ref_852_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Is_Keypad, "is_keypad");
+ <b>begin</b>
+- <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_851_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_917_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_917_13">Get_KeyPad_Mode</A>;
++ <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_852_16">Is_Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1085_30">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1085_13">Get_KeyPad_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_857_14" HREF="terminal_interface-curses__ads.htm#ref_925_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_857_26" HREF="terminal_interface-curses__ads.htm#ref_925_26">Amount</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_922_9">Half_Delay_Amount</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_858_14" HREF="terminal_interface-curses__ads.htm#ref_1093_14">Half_Delay</A></span> (<span class="symbol"><A NAME="ref_858_26" HREF="terminal_interface-curses__ads.htm#ref_1093_26">Amount</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1090_9">Half_Delay_Amount</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_859_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_859_27" HREF="terminal_interface-curses__adb.htm#ref_859_16">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_860_16">Halfdelay</A></span> (<span class="symbol"><A NAME="ref_860_27" HREF="terminal_interface-curses__adb.htm#ref_860_16">Amount</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Halfdelay, "halfdelay");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_859_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_925_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_860_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1093_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_925_14">Half_Delay</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1093_14">Half_Delay</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_867_14" HREF="terminal_interface-curses__ads.htm#ref_930_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_868_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_932_7">Mode</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_868_14" HREF="terminal_interface-curses__ads.htm#ref_1098_14">Set_Flush_On_Interrupt_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_869_7" HREF="terminal_interface-curses__ads.htm#ref_1099_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_870_7" HREF="terminal_interface-curses__ads.htm#ref_1100_7">Mode</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_871_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_871_27" HREF="terminal_interface-curses__adb.htm#ref_871_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_871_41" HREF="terminal_interface-curses__adb.htm#ref_871_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_872_16">Intrflush</A></span> (<span class="symbol"><A NAME="ref_872_27" HREF="terminal_interface-curses__adb.htm#ref_872_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_872_41" HREF="terminal_interface-curses__adb.htm#ref_872_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Intrflush, "intrflush");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_871_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_931_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_932_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_872_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1099_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1100_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_930_14">Set_Flush_On_Interrupt_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1098_14">Set_Flush_On_Interrupt_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_Queue_Interrupt_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_880_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_939_7">Flush</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_880_14" HREF="terminal_interface-curses__ads.htm#ref_1105_14">Set_Queue_Interrupt_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_881_7" HREF="terminal_interface-curses__ads.htm#ref_1106_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_882_7" HREF="terminal_interface-curses__ads.htm#ref_1107_7">Flush</A></span> : Boolean := True)
+ <b>is</b>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_883_17">Qiflush</A></FONT>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_884_17">Qiflush</A></span>;
+ <b>pragma</b> Import (C, Qiflush, "qiflush");
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_885_17">No_Qiflush</A></FONT>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_886_17">No_Qiflush</A></span>;
+ <b>pragma</b> Import (C, No_Qiflush, "noqiflush");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1106_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_939_7">Flush</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_883_17">Qiflush</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1107_7">Flush</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_884_17">Qiflush</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_885_17">No_Qiflush</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_886_17">No_Qiflush</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_Queue_Interrupt_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1105_14">Set_Queue_Interrupt_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_898_14" HREF="terminal_interface-curses__ads.htm#ref_945_14">Set_NoDelay_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_899_7" HREF="terminal_interface-curses__ads.htm#ref_946_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_947_7">Mode</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_899_14" HREF="terminal_interface-curses__ads.htm#ref_1113_14">Set_NoDelay_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_900_7" HREF="terminal_interface-curses__ads.htm#ref_1114_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_901_7" HREF="terminal_interface-curses__ads.htm#ref_1115_7">Mode</A></span> : Boolean := False)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_902_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_902_25" HREF="terminal_interface-curses__adb.htm#ref_902_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_902_39" HREF="terminal_interface-curses__adb.htm#ref_902_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_903_16">Nodelay</A></span> (<span class="symbol"><A NAME="ref_903_25" HREF="terminal_interface-curses__adb.htm#ref_903_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_903_39" HREF="terminal_interface-curses__adb.htm#ref_903_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Nodelay, "nodelay");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_902_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_946_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_947_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_903_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1114_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1115_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_945_14">Set_NoDelay_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1113_14">Set_NoDelay_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_910_14" HREF="terminal_interface-curses__ads.htm#ref_954_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_910_32" HREF="terminal_interface-curses__ads.htm#ref_954_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_955_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_951_9">Timeout_Mode</A>;
+- <FONT COLOR=red><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_956_32">Amount</A></FONT> : Natural)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_911_14" HREF="terminal_interface-curses__ads.htm#ref_1122_14">Set_Timeout_Mode</A></span> (<span class="symbol"><A NAME="ref_911_32" HREF="terminal_interface-curses__ads.htm#ref_1122_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_912_32" HREF="terminal_interface-curses__ads.htm#ref_1123_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1119_9">Timeout_Mode</A>;
++ <span class="symbol"><A NAME="ref_913_32" HREF="terminal_interface-curses__ads.htm#ref_1124_32">Amount</A></span> : Natural)
+ <b>is</b>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_914_17">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_914_27" HREF="terminal_interface-curses__adb.htm#ref_914_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_914_41" HREF="terminal_interface-curses__adb.htm#ref_914_17">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_915_17">Wtimeout</A></span> (<span class="symbol"><A NAME="ref_915_27" HREF="terminal_interface-curses__adb.htm#ref_915_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_915_41" HREF="terminal_interface-curses__adb.htm#ref_915_17">Amount</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>);
+ <b>pragma</b> Import (C, Wtimeout, "wtimeout");
+
+- <FONT COLOR=red><A NAME="ref_917_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_918_7">Time</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_955_32">Mode</A> <b>is</b>
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_26">Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := -1;
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := 0;
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_951_50">Delayed</A> =&gt;
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_956_32">Amount</A> = 0 <b>then</b>
++ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1123_32">Mode</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_26">Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A> := -1;
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_36">Non_Blocking</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A> := 0;
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_50">Delayed</A> =&gt;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1124_32">Amount</A> = 0 <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_956_32">Amount</A>);
++ <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1124_32">Amount</A>);
+ <b>end</b> <b>case</b>;
+- <A HREF="terminal_interface-curses__adb.htm#ref_914_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_954_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_917_7">Time</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_954_14">Set_Timeout_Mode</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_915_17">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1122_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_918_7">Time</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1122_14">Set_Timeout_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_931_14" HREF="terminal_interface-curses__ads.htm#ref_966_14">Set_Escape_Timer_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_967_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_968_7">Timer_Off</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_932_14" HREF="terminal_interface-curses__ads.htm#ref_1134_14">Set_Escape_Timer_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_933_7" HREF="terminal_interface-curses__ads.htm#ref_1135_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_934_7" HREF="terminal_interface-curses__ads.htm#ref_1136_7">Timer_Off</A></span> : Boolean := False)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_935_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_935_27" HREF="terminal_interface-curses__adb.htm#ref_935_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_935_41" HREF="terminal_interface-curses__adb.htm#ref_935_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_936_16">Notimeout</A></span> (<span class="symbol"><A NAME="ref_936_27" HREF="terminal_interface-curses__adb.htm#ref_936_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_936_41" HREF="terminal_interface-curses__adb.htm#ref_936_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Notimeout, "notimeout");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_935_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_967_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_968_7">Timer_Off</A>)))
+- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_936_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1136_7">Timer_Off</A>)))
++ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_966_14">Set_Escape_Timer_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1134_14">Set_Escape_Timer_Mode</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_945_14" HREF="terminal_interface-curses__ads.htm#ref_977_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_945_27" HREF="terminal_interface-curses__ads.htm#ref_977_27">SwitchOn</A></FONT> : Boolean := True)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_947_14" HREF="terminal_interface-curses__ads.htm#ref_1145_14">Set_NL_Mode</A></span> (<span class="symbol"><A NAME="ref_947_27" HREF="terminal_interface-curses__ads.htm#ref_1145_27">SwitchOn</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_947_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_949_16">NL</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, NL, "nl");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_949_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_951_16">NoNL</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, NoNL, "nonl");
+
+- <FONT COLOR=red><A NAME="ref_952_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_954_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_977_27">SwitchOn</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_947_16">NL</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1145_27">SwitchOn</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_954_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_949_16">NL</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_949_16">NoNL</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_954_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_951_16">NoNL</A>;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_952_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_954_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_977_14">Set_NL_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1145_14">Set_NL_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_964_14" HREF="terminal_interface-curses__ads.htm#ref_983_14">Clear_On_Next_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_965_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_966_7" HREF="terminal_interface-curses__ads.htm#ref_985_7">Do_Clear</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_966_14" HREF="terminal_interface-curses__ads.htm#ref_1151_14">Clear_On_Next_Update</A></span>
++ (<span class="symbol"><A NAME="ref_967_7" HREF="terminal_interface-curses__ads.htm#ref_1152_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_968_7" HREF="terminal_interface-curses__ads.htm#ref_1153_7">Do_Clear</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_968_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_968_26" HREF="terminal_interface-curses__adb.htm#ref_968_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_968_38" HREF="terminal_interface-curses__adb.htm#ref_968_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_970_16">Clear_Ok</A></span> (<span class="symbol"><A NAME="ref_970_26" HREF="terminal_interface-curses__adb.htm#ref_970_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_970_38" HREF="terminal_interface-curses__adb.htm#ref_970_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Clear_Ok, "clearok");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_968_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_984_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_985_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_970_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1152_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1153_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_983_14">Clear_On_Next_Update</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1151_14">Clear_On_Next_Update</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_976_14" HREF="terminal_interface-curses__ads.htm#ref_990_14">Use_Insert_Delete_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_978_7" HREF="terminal_interface-curses__ads.htm#ref_992_7">Do_Idl</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_978_14" HREF="terminal_interface-curses__ads.htm#ref_1158_14">Use_Insert_Delete_Line</A></span>
++ (<span class="symbol"><A NAME="ref_979_7" HREF="terminal_interface-curses__ads.htm#ref_1159_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_980_7" HREF="terminal_interface-curses__ads.htm#ref_1160_7">Do_Idl</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_980_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_980_24" HREF="terminal_interface-curses__adb.htm#ref_980_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_980_36" HREF="terminal_interface-curses__adb.htm#ref_980_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_982_16">IDL_Ok</A></span> (<span class="symbol"><A NAME="ref_982_24" HREF="terminal_interface-curses__adb.htm#ref_982_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_982_36" HREF="terminal_interface-curses__adb.htm#ref_982_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, IDL_Ok, "idlok");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_980_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_992_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_982_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1159_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1160_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_990_14">Use_Insert_Delete_Line</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1158_14">Use_Insert_Delete_Line</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_988_14" HREF="terminal_interface-curses__ads.htm#ref_997_14">Use_Insert_Delete_Character</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_989_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_990_7" HREF="terminal_interface-curses__ads.htm#ref_999_7">Do_Idc</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_990_14" HREF="terminal_interface-curses__ads.htm#ref_1165_14">Use_Insert_Delete_Character</A></span>
++ (<span class="symbol"><A NAME="ref_991_7" HREF="terminal_interface-curses__ads.htm#ref_1166_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_992_7" HREF="terminal_interface-curses__ads.htm#ref_1167_7">Do_Idc</A></span> : Boolean := True)
+ <b>is</b>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_17">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_992_25" HREF="terminal_interface-curses__adb.htm#ref_992_17">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_992_37" HREF="terminal_interface-curses__adb.htm#ref_992_17">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_994_17">IDC_Ok</A></span> (<span class="symbol"><A NAME="ref_994_25" HREF="terminal_interface-curses__adb.htm#ref_994_17">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_994_37" HREF="terminal_interface-curses__adb.htm#ref_994_17">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>);
+ <b>pragma</b> Import (C, IDC_Ok, "idcok");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_992_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_999_7">Do_Idc</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_997_14">Use_Insert_Delete_Character</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_994_17">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1166_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1167_7">Do_Idc</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1165_14">Use_Insert_Delete_Character</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_1004_14">Leave_Cursor_After_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_999_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1000_7" HREF="terminal_interface-curses__ads.htm#ref_1006_7">Do_Leave</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1000_14" HREF="terminal_interface-curses__ads.htm#ref_1172_14">Leave_Cursor_After_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1001_7" HREF="terminal_interface-curses__ads.htm#ref_1173_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1002_7" HREF="terminal_interface-curses__ads.htm#ref_1174_7">Do_Leave</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1002_26" HREF="terminal_interface-curses__adb.htm#ref_1002_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1002_38" HREF="terminal_interface-curses__adb.htm#ref_1002_16">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1004_16">Leave_Ok</A></span> (<span class="symbol"><A NAME="ref_1004_26" HREF="terminal_interface-curses__adb.htm#ref_1004_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1004_38" HREF="terminal_interface-curses__adb.htm#ref_1004_16">Flag</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Leave_Ok, "leaveok");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1005_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1006_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1004_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1173_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1174_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1004_14">Leave_Cursor_After_Update</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1172_14">Leave_Cursor_After_Update</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1010_14" HREF="terminal_interface-curses__ads.htm#ref_1011_14">Immediate_Update_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1011_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__ads.htm#ref_1013_7">Mode</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1012_14" HREF="terminal_interface-curses__ads.htm#ref_1179_14">Immediate_Update_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_1013_7" HREF="terminal_interface-curses__ads.htm#ref_1180_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1014_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Mode</A></span> : Boolean := False)
+ <b>is</b>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1014_17">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1014_26" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1014_40" HREF="terminal_interface-curses__adb.htm#ref_1014_17">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1016_17">Immedok</A></span> (<span class="symbol"><A NAME="ref_1016_26" HREF="terminal_interface-curses__adb.htm#ref_1016_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1016_40" HREF="terminal_interface-curses__adb.htm#ref_1016_17">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>);
+ <b>pragma</b> Import (C, Immedok, "immedok");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1014_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1012_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1013_7">Mode</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1011_14">Immediate_Update_Mode</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_1016_17">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1180_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Mode</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1179_14">Immediate_Update_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1020_14" HREF="terminal_interface-curses__ads.htm#ref_1018_14">Allow_Scrolling</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1021_7" HREF="terminal_interface-curses__ads.htm#ref_1019_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1022_7" HREF="terminal_interface-curses__ads.htm#ref_1020_7">Mode</A></FONT> : Boolean := False)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1022_14" HREF="terminal_interface-curses__ads.htm#ref_1186_14">Allow_Scrolling</A></span>
++ (<span class="symbol"><A NAME="ref_1023_7" HREF="terminal_interface-curses__ads.htm#ref_1187_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1024_7" HREF="terminal_interface-curses__ads.htm#ref_1188_7">Mode</A></span> : Boolean := False)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1024_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1024_26" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1024_40" HREF="terminal_interface-curses__adb.htm#ref_1024_16">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1026_16">Scrollok</A></span> (<span class="symbol"><A NAME="ref_1026_26" HREF="terminal_interface-curses__adb.htm#ref_1026_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1026_40" HREF="terminal_interface-curses__adb.htm#ref_1026_16">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Scrollok, "scrollok");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1024_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1019_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1020_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1026_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1187_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1188_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1018_14">Allow_Scrolling</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1186_14">Allow_Scrolling</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1032_13" HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1032_32" HREF="terminal_interface-curses__ads.htm#ref_1024_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>function</b> <span class="symbol"><A NAME="ref_1034_13" HREF="terminal_interface-curses__ads.htm#ref_1192_13">Scrolling_Allowed</A></span> (<span class="symbol"><A NAME="ref_1034_32" HREF="terminal_interface-curses__ads.htm#ref_1192_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1035_16">Is_Scroll_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1035_30" HREF="terminal_interface-curses__adb.htm#ref_1035_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1037_16">Is_Scroll_Ok</A></span> (<span class="symbol"><A NAME="ref_1037_30" HREF="terminal_interface-curses__adb.htm#ref_1037_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Is_Scroll_Ok, "is_scrollok");
+ <b>begin</b>
+- <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1035_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1024_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A>;
++ <b>return</b> (<A HREF="terminal_interface-curses__adb.htm#ref_1037_16">Is_Scroll_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1192_32">Win</A>) /= <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1192_13">Scrolling_Allowed</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_1029_14">Set_Scroll_Region</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_1030_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_1031_7">Top_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1032_7">Bottom_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1046_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1046_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1047_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1046_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1043_14" HREF="terminal_interface-curses__ads.htm#ref_1197_14">Set_Scroll_Region</A></span>
++ (<span class="symbol"><A NAME="ref_1044_7" HREF="terminal_interface-curses__ads.htm#ref_1198_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1045_7" HREF="terminal_interface-curses__ads.htm#ref_1199_7">Top_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1046_7" HREF="terminal_interface-curses__ads.htm#ref_1200_7">Bottom_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1048_16">Wsetscrreg</A></span> (<span class="symbol"><A NAME="ref_1048_28" HREF="terminal_interface-curses__adb.htm#ref_1048_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1049_28" HREF="terminal_interface-curses__adb.htm#ref_1048_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1050_28" HREF="terminal_interface-curses__adb.htm#ref_1048_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wsetscrreg, "wsetscrreg");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1046_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1030_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1031_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1032_7">Bottom_Line</A>))
+- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1029_14">Set_Scroll_Region</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1057_14" HREF="terminal_interface-curses__ads.htm#ref_1042_14">Update_Screen</A></FONT>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1048_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1198_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1199_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1200_7">Bottom_Line</A>))
++ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1197_14">Set_Scroll_Region</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1060_14" HREF="terminal_interface-curses__ads.htm#ref_1210_14">Update_Screen</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1059_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1062_16">Do_Update</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Do_Update, "doupdate");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1059_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1062_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1042_14">Update_Screen</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1210_14">Update_Screen</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1067_14" HREF="terminal_interface-curses__ads.htm#ref_1047_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1067_23" HREF="terminal_interface-curses__ads.htm#ref_1047_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1070_14" HREF="terminal_interface-curses__ads.htm#ref_1215_14">Refresh</A></span> (<span class="symbol"><A NAME="ref_1070_23" HREF="terminal_interface-curses__ads.htm#ref_1215_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_26" HREF="terminal_interface-curses__adb.htm#ref_1069_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1072_16">Wrefresh</A></span> (<span class="symbol"><A NAME="ref_1072_26" HREF="terminal_interface-curses__adb.htm#ref_1072_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wrefresh, "wrefresh");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1047_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1072_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1215_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1047_14">Refresh</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1215_14">Refresh</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1054_14">Refresh_Without_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1055_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1080_14" HREF="terminal_interface-curses__ads.htm#ref_1222_14">Refresh_Without_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1081_7" HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1080_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1080_30" HREF="terminal_interface-curses__adb.htm#ref_1080_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1083_16">Wnoutrefresh</A></span> (<span class="symbol"><A NAME="ref_1083_30" HREF="terminal_interface-curses__adb.htm#ref_1083_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wnoutrefresh, "wnoutrefresh");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1080_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1055_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1083_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1054_14">Refresh_Without_Update</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Refresh_Without_Update</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1088_14" HREF="terminal_interface-curses__ads.htm#ref_1061_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1088_22" HREF="terminal_interface-curses__ads.htm#ref_1061_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1091_14" HREF="terminal_interface-curses__ads.htm#ref_1229_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1091_22" HREF="terminal_interface-curses__ads.htm#ref_1229_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1090_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1090_27" HREF="terminal_interface-curses__adb.htm#ref_1090_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1093_16">Redrawwin</A></span> (<span class="symbol"><A NAME="ref_1093_27" HREF="terminal_interface-curses__adb.htm#ref_1093_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Redrawwin, "redrawwin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1090_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1061_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1093_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1229_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1061_14">Redraw</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1229_14">Redraw</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1098_14" HREF="terminal_interface-curses__ads.htm#ref_1065_14">Redraw</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1065_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1100_7" HREF="terminal_interface-curses__ads.htm#ref_1066_22">Begin_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1101_7" HREF="terminal_interface-curses__ads.htm#ref_1067_22">Line_Count</A></FONT> : Positive)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1101_14" HREF="terminal_interface-curses__ads.htm#ref_1233_14">Redraw</A></span>
++ (<span class="symbol"><A NAME="ref_1102_7" HREF="terminal_interface-curses__ads.htm#ref_1233_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1103_7" HREF="terminal_interface-curses__ads.htm#ref_1234_22">Begin_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1104_7" HREF="terminal_interface-curses__ads.htm#ref_1235_22">Line_Count</A></span> : Positive)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1103_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1103_27" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1103_41" HREF="terminal_interface-curses__adb.htm#ref_1103_16">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1103_56" HREF="terminal_interface-curses__adb.htm#ref_1103_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1106_16">Wredrawln</A></span> (<span class="symbol"><A NAME="ref_1106_27" HREF="terminal_interface-curses__adb.htm#ref_1106_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1106_41" HREF="terminal_interface-curses__adb.htm#ref_1106_16">First</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>; <span class="symbol"><A NAME="ref_1106_56" HREF="terminal_interface-curses__adb.htm#ref_1106_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wredrawln, "wredrawln");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1103_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1065_22">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1066_22">Begin_Line</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1067_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1106_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1233_22">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1234_22">Begin_Line</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1235_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1065_14">Redraw</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1233_14">Redraw</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1115_14" HREF="terminal_interface-curses__ads.htm#ref_1076_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1115_21" HREF="terminal_interface-curses__ads.htm#ref_1076_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1119_14" HREF="terminal_interface-curses__ads.htm#ref_1244_14">Erase</A></span> (<span class="symbol"><A NAME="ref_1119_21" HREF="terminal_interface-curses__ads.htm#ref_1244_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1117_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_24" HREF="terminal_interface-curses__adb.htm#ref_1117_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1121_16">Werase</A></span> (<span class="symbol"><A NAME="ref_1121_24" HREF="terminal_interface-curses__adb.htm#ref_1121_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Werase, "werase");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1117_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1076_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1121_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1244_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1076_14">Erase</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Erase</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1125_14" HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1125_21" HREF="terminal_interface-curses__ads.htm#ref_1083_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1129_14" HREF="terminal_interface-curses__ads.htm#ref_1250_14">Clear</A></span> (<span class="symbol"><A NAME="ref_1129_21" HREF="terminal_interface-curses__ads.htm#ref_1251_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1127_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1127_24" HREF="terminal_interface-curses__adb.htm#ref_1127_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1131_16">Wclear</A></span> (<span class="symbol"><A NAME="ref_1131_24" HREF="terminal_interface-curses__adb.htm#ref_1131_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wclear, "wclear");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1127_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1083_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1131_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1251_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1250_14">Clear</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1135_14" HREF="terminal_interface-curses__ads.htm#ref_1089_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_38" HREF="terminal_interface-curses__ads.htm#ref_1090_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1139_14" HREF="terminal_interface-curses__ads.htm#ref_1257_14">Clear_To_End_Of_Screen</A></span> (<span class="symbol"><A NAME="ref_1139_38" HREF="terminal_interface-curses__ads.htm#ref_1258_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1137_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1137_27" HREF="terminal_interface-curses__adb.htm#ref_1137_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1141_16">Wclearbot</A></span> (<span class="symbol"><A NAME="ref_1141_27" HREF="terminal_interface-curses__adb.htm#ref_1141_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wclearbot, "wclrtobot");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1137_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1090_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1141_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1258_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1089_14">Clear_To_End_Of_Screen</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1257_14">Clear_To_End_Of_Screen</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1145_14" HREF="terminal_interface-curses__ads.htm#ref_1096_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_36" HREF="terminal_interface-curses__ads.htm#ref_1097_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1149_14" HREF="terminal_interface-curses__ads.htm#ref_1264_14">Clear_To_End_Of_Line</A></span> (<span class="symbol"><A NAME="ref_1149_36" HREF="terminal_interface-curses__ads.htm#ref_1265_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1147_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1147_27" HREF="terminal_interface-curses__adb.htm#ref_1147_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1151_16">Wcleareol</A></span> (<span class="symbol"><A NAME="ref_1151_27" HREF="terminal_interface-curses__adb.htm#ref_1151_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wcleareol, "wclrtoeol");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1147_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1097_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1151_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1265_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1096_14">Clear_To_End_Of_Line</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1155_14" HREF="terminal_interface-curses__ads.htm#ref_1110_14">Set_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1157_7" HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1264_14">Clear_To_End_Of_Line</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1159_14" HREF="terminal_interface-curses__ads.htm#ref_1278_14">Set_Background</A></span>
++ (<span class="symbol"><A NAME="ref_1160_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1161_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
+ <b>is</b>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1159_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1159_30" HREF="terminal_interface-curses__adb.htm#ref_1159_17">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1159_42" HREF="terminal_interface-curses__adb.htm#ref_1159_17">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1163_17">WBackground</A></span> (<span class="symbol"><A NAME="ref_1163_30" HREF="terminal_interface-curses__adb.htm#ref_1163_17">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1163_42" HREF="terminal_interface-curses__adb.htm#ref_1163_17">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
+ <b>pragma</b> Import (C, WBackground, "wbkgdset");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1159_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Set_Background</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_1163_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1280_7">Ch</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1278_14">Set_Background</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1165_14" HREF="terminal_interface-curses__ads.htm#ref_1118_14">Change_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1166_7" HREF="terminal_interface-curses__ads.htm#ref_1119_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1167_7" HREF="terminal_interface-curses__ads.htm#ref_1120_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1169_14" HREF="terminal_interface-curses__ads.htm#ref_1286_14">Change_Background</A></span>
++ (<span class="symbol"><A NAME="ref_1170_7" HREF="terminal_interface-curses__ads.htm#ref_1287_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1171_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1169_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1169_29" HREF="terminal_interface-curses__adb.htm#ref_1169_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1169_41" HREF="terminal_interface-curses__adb.htm#ref_1169_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1173_16">WChangeBkgd</A></span> (<span class="symbol"><A NAME="ref_1173_29" HREF="terminal_interface-curses__adb.htm#ref_1173_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1173_41" HREF="terminal_interface-curses__adb.htm#ref_1173_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, WChangeBkgd, "wbkgd");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1169_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1120_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1173_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1287_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1118_14">Change_Background</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1286_14">Change_Background</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1177_13" HREF="terminal_interface-curses__ads.htm#ref_1127_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1177_29" HREF="terminal_interface-curses__ads.htm#ref_1127_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_1182_13" HREF="terminal_interface-curses__ads.htm#ref_1295_13">Get_Background</A></span> (<span class="symbol"><A NAME="ref_1182_29" HREF="terminal_interface-curses__ads.htm#ref_1295_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1180_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_26" HREF="terminal_interface-curses__adb.htm#ref_1180_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1185_16">Wgetbkgd</A></span> (<span class="symbol"><A NAME="ref_1185_26" HREF="terminal_interface-curses__adb.htm#ref_1185_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Wgetbkgd, "getbkgd");
+ <b>begin</b>
+- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1180_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1127_29">Win</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1127_13">Get_Background</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1186_14" HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1186_35" HREF="terminal_interface-curses__ads.htm#ref_1154_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1187_35" HREF="terminal_interface-curses__ads.htm#ref_1155_35">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1188_35" HREF="terminal_interface-curses__ads.htm#ref_1156_35">Count</A></FONT> : Positive;
+- <FONT COLOR=red><A NAME="ref_1189_35" HREF="terminal_interface-curses__ads.htm#ref_1157_35">State</A></FONT> : Boolean)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1191_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1191_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1192_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1193_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1194_26" HREF="terminal_interface-curses__adb.htm#ref_1191_16">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1185_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1295_29">Win</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1295_13">Get_Background</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1191_14" HREF="terminal_interface-curses__ads.htm#ref_1322_14">Change_Lines_Status</A></span> (<span class="symbol"><A NAME="ref_1191_35" HREF="terminal_interface-curses__ads.htm#ref_1322_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1192_35" HREF="terminal_interface-curses__ads.htm#ref_1323_35">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1193_35" HREF="terminal_interface-curses__ads.htm#ref_1324_35">Count</A></span> : Positive;
++ <span class="symbol"><A NAME="ref_1194_35" HREF="terminal_interface-curses__ads.htm#ref_1325_35">State</A></span> : Boolean)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1196_16">Wtouchln</A></span> (<span class="symbol"><A NAME="ref_1196_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1197_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Sta</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1198_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Cnt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1199_26" HREF="terminal_interface-curses__adb.htm#ref_1196_16">Chg</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wtouchln, "wtouchln");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1191_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1155_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1156_35">Count</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1157_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1196_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1322_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1323_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1324_35">Count</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1325_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Change_Lines_Status</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1203_14" HREF="terminal_interface-curses__ads.htm#ref_1143_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1203_21" HREF="terminal_interface-curses__ads.htm#ref_1143_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1209_14" HREF="terminal_interface-curses__ads.htm#ref_1311_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1209_21" HREF="terminal_interface-curses__ads.htm#ref_1311_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_1205_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1206_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1211_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1212_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1143_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>);
+- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses__adb.htm#ref_1206_7">X</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1143_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1205_7">Y</A>), True);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1143_14">Touch</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1311_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1211_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1212_7">X</A>);
++ <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses__adb.htm#ref_1212_7">X</A>); <span class="comment"><EM>-- unreferenced</EM></span>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1311_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1211_7">Y</A>), True);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1311_14">Touch</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1213_14" HREF="terminal_interface-curses__ads.htm#ref_1138_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1213_23" HREF="terminal_interface-curses__ads.htm#ref_1138_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1219_14" HREF="terminal_interface-curses__ads.htm#ref_1306_14">Untouch</A></span> (<span class="symbol"><A NAME="ref_1219_23" HREF="terminal_interface-curses__ads.htm#ref_1306_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_1215_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1216_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1221_7">Y</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1222_7">X</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1138_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1215_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1216_7">X</A>);
+- <b>pragma</b> Unreferenced (<A HREF="terminal_interface-curses__adb.htm#ref_1216_7">X</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1138_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1215_7">Y</A>), False);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1138_14">Untouch</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1306_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1221_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1222_7">X</A>);
++ <b>pragma</b> Warnings (Off, <A HREF="terminal_interface-curses__adb.htm#ref_1222_7">X</A>); <span class="comment"><EM>-- unreferenced</EM></span>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1306_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1221_7">Y</A>), False);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1306_14">Untouch</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1223_14" HREF="terminal_interface-curses__ads.htm#ref_1147_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1223_21" HREF="terminal_interface-curses__ads.htm#ref_1147_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1224_21" HREF="terminal_interface-curses__ads.htm#ref_1148_21">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1225_21" HREF="terminal_interface-curses__ads.htm#ref_1149_21">Count</A></FONT> : Positive)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1229_14" HREF="terminal_interface-curses__ads.htm#ref_1315_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1229_21" HREF="terminal_interface-curses__ads.htm#ref_1315_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1230_21" HREF="terminal_interface-curses__ads.htm#ref_1316_21">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1231_21" HREF="terminal_interface-curses__ads.htm#ref_1317_21">Count</A></span> : Positive)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1147_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1148_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1149_21">Count</A>, True);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1147_14">Touch</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1315_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1316_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1317_21">Count</A>, True);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1315_14">Touch</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1231_13" HREF="terminal_interface-curses__ads.htm#ref_1162_13">Is_Touched</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__ads.htm#ref_1162_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__ads.htm#ref_1163_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_1237_13" HREF="terminal_interface-curses__ads.htm#ref_1330_13">Is_Touched</A></span>
++ (<span class="symbol"><A NAME="ref_1238_7" HREF="terminal_interface-curses__ads.htm#ref_1330_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1239_7" HREF="terminal_interface-curses__ads.htm#ref_1331_25">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1235_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1235_30" HREF="terminal_interface-curses__adb.htm#ref_1235_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1235_42" HREF="terminal_interface-curses__adb.htm#ref_1235_16">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1241_16">WLineTouched</A></span> (<span class="symbol"><A NAME="ref_1241_30" HREF="terminal_interface-curses__adb.htm#ref_1241_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1241_42" HREF="terminal_interface-curses__adb.htm#ref_1241_16">L</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, WLineTouched, "is_linetouched");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1235_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1162_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1163_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1241_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1330_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1331_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1162_13">Is_Touched</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1330_13">Is_Touched</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1245_13" HREF="terminal_interface-curses__ads.htm#ref_1167_13">Is_Touched</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1246_7" HREF="terminal_interface-curses__ads.htm#ref_1167_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_1251_13" HREF="terminal_interface-curses__ads.htm#ref_1335_13">Is_Touched</A></span>
++ (<span class="symbol"><A NAME="ref_1252_7" HREF="terminal_interface-curses__ads.htm#ref_1335_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1248_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1248_29" HREF="terminal_interface-curses__adb.htm#ref_1248_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1254_16">WWinTouched</A></span> (<span class="symbol"><A NAME="ref_1254_29" HREF="terminal_interface-curses__adb.htm#ref_1254_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, WWinTouched, "is_wintouched");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1248_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1167_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1254_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1335_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1167_13">Is_Touched</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1176_14">Copy</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1259_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1260_7" HREF="terminal_interface-curses__ads.htm#ref_1178_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1261_7" HREF="terminal_interface-curses__ads.htm#ref_1179_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1262_7" HREF="terminal_interface-curses__ads.htm#ref_1180_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1263_7" HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1264_7" HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1183_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1266_7" HREF="terminal_interface-curses__ads.htm#ref_1184_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1267_7" HREF="terminal_interface-curses__ads.htm#ref_1185_7">Non_Destructive_Mode</A></FONT> : Boolean := True)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1269_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1269_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1270_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1271_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1272_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1273_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1274_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1276_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1277_25" HREF="terminal_interface-curses__adb.htm#ref_1269_16">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1335_13">Is_Touched</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1264_14" HREF="terminal_interface-curses__ads.htm#ref_1344_14">Copy</A></span>
++ (<span class="symbol"><A NAME="ref_1265_7" HREF="terminal_interface-curses__ads.htm#ref_1345_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1266_7" HREF="terminal_interface-curses__ads.htm#ref_1346_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1267_7" HREF="terminal_interface-curses__ads.htm#ref_1347_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1268_7" HREF="terminal_interface-curses__ads.htm#ref_1348_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1269_7" HREF="terminal_interface-curses__ads.htm#ref_1349_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1270_7" HREF="terminal_interface-curses__ads.htm#ref_1350_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1271_7" HREF="terminal_interface-curses__ads.htm#ref_1351_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1272_7" HREF="terminal_interface-curses__ads.htm#ref_1352_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1273_7" HREF="terminal_interface-curses__ads.htm#ref_1353_7">Non_Destructive_Mode</A></span> : Boolean := True)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1275_16">Copywin</A></span> (<span class="symbol"><A NAME="ref_1275_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1276_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1277_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Str</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1278_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Slc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1279_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dtr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1280_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dlc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1281_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Dbr</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1282_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Drc</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1283_25" HREF="terminal_interface-curses__adb.htm#ref_1275_16">Ndm</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Copywin, "copywin");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1269_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Source_Window</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_1178_7">Destination_Window</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1179_7">Source_Top_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1180_7">Source_Left_Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1181_7">Destination_Top_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_7">Destination_Left_Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1183_7">Destination_Bottom_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1184_7">Destination_Right_Column</A>),
+- Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1185_7">Non_Destructive_Mode</A>)
+- ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1176_14">Copy</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1294_14" HREF="terminal_interface-curses__ads.htm#ref_1190_14">Overwrite</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1295_7" HREF="terminal_interface-curses__ads.htm#ref_1190_25">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__ads.htm#ref_1191_25">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1275_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1345_7">Source_Window</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_1346_7">Destination_Window</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1347_7">Source_Top_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1348_7">Source_Left_Column</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1349_7">Destination_Top_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1350_7">Destination_Left_Column</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1351_7">Destination_Bottom_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1352_7">Destination_Right_Column</A>),
++ Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1353_7">Non_Destructive_Mode</A>)
++ ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1344_14">Copy</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1301_14" HREF="terminal_interface-curses__ads.htm#ref_1358_14">Overwrite</A></span>
++ (<span class="symbol"><A NAME="ref_1302_7" HREF="terminal_interface-curses__ads.htm#ref_1358_25">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1303_7" HREF="terminal_interface-curses__ads.htm#ref_1359_25">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1298_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1298_27" HREF="terminal_interface-curses__adb.htm#ref_1298_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1298_41" HREF="terminal_interface-curses__adb.htm#ref_1298_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1305_16">Overwrite</A></span> (<span class="symbol"><A NAME="ref_1305_27" HREF="terminal_interface-curses__adb.htm#ref_1305_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1305_41" HREF="terminal_interface-curses__adb.htm#ref_1305_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Overwrite, "overwrite");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1298_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1190_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1191_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1305_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1358_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1359_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1190_14">Overwrite</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1358_14">Overwrite</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1306_14" HREF="terminal_interface-curses__ads.htm#ref_1196_14">Overlay</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1307_7" HREF="terminal_interface-curses__ads.htm#ref_1196_23">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__ads.htm#ref_1197_23">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1313_14" HREF="terminal_interface-curses__ads.htm#ref_1364_14">Overlay</A></span>
++ (<span class="symbol"><A NAME="ref_1314_7" HREF="terminal_interface-curses__ads.htm#ref_1364_23">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1315_7" HREF="terminal_interface-curses__ads.htm#ref_1365_23">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1310_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1310_25" HREF="terminal_interface-curses__adb.htm#ref_1310_16">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1310_39" HREF="terminal_interface-curses__adb.htm#ref_1310_16">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1317_16">Overlay</A></span> (<span class="symbol"><A NAME="ref_1317_25" HREF="terminal_interface-curses__adb.htm#ref_1317_16">Src</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1317_39" HREF="terminal_interface-curses__adb.htm#ref_1317_16">Dst</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Overlay, "overlay");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1310_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1196_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1197_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1317_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1364_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1365_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1196_14">Overlay</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1364_14">Overlay</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1319_14" HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1207_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1321_7" HREF="terminal_interface-curses__ads.htm#ref_1208_7">Lines</A></FONT> : Integer := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1326_14" HREF="terminal_interface-curses__ads.htm#ref_1374_14">Insert_Delete_Lines</A></span>
++ (<span class="symbol"><A NAME="ref_1327_7" HREF="terminal_interface-curses__ads.htm#ref_1375_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1328_7" HREF="terminal_interface-curses__ads.htm#ref_1376_7">Lines</A></span> : Integer := 1) <span class="comment"><EM>-- default is to insert one line above</EM></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1323_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1323_27" HREF="terminal_interface-curses__adb.htm#ref_1323_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1323_39" HREF="terminal_interface-curses__adb.htm#ref_1323_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1330_16">Winsdelln</A></span> (<span class="symbol"><A NAME="ref_1330_27" HREF="terminal_interface-curses__adb.htm#ref_1330_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1330_39" HREF="terminal_interface-curses__adb.htm#ref_1330_16">N</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Winsdelln, "winsdelln");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1323_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1207_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1208_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1330_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1375_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1376_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1374_14">Insert_Delete_Lines</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1331_14" HREF="terminal_interface-curses__ads.htm#ref_1214_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1331_27" HREF="terminal_interface-curses__ads.htm#ref_1214_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1338_14" HREF="terminal_interface-curses__ads.htm#ref_1382_14">Delete_Line</A></span> (<span class="symbol"><A NAME="ref_1338_27" HREF="terminal_interface-curses__ads.htm#ref_1382_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1214_27">Win</A>, -1);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1214_14">Delete_Line</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1374_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1382_27">Win</A>, -1);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1382_14">Delete_Line</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1337_14" HREF="terminal_interface-curses__ads.htm#ref_1220_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1337_27" HREF="terminal_interface-curses__ads.htm#ref_1220_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1344_14" HREF="terminal_interface-curses__ads.htm#ref_1388_14">Insert_Line</A></span> (<span class="symbol"><A NAME="ref_1344_27" HREF="terminal_interface-curses__ads.htm#ref_1388_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1220_27">Win</A>, 1);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1220_14">Insert_Line</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1374_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1388_27">Win</A>, 1);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1388_14">Insert_Line</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1344_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1345_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1346_7" HREF="terminal_interface-curses__ads.htm#ref_1232_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1347_7" HREF="terminal_interface-curses__ads.htm#ref_1233_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1351_14" HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A></span>
++ (<span class="symbol"><A NAME="ref_1352_7" HREF="terminal_interface-curses__ads.htm#ref_1399_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1353_7" HREF="terminal_interface-curses__ads.htm#ref_1400_7">Number_Of_Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_1354_7" HREF="terminal_interface-curses__ads.htm#ref_1401_7">Number_Of_Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1349_16">GetMaxY</A></FONT> (<FONT COLOR=red><A NAME="ref_1349_25" HREF="terminal_interface-curses__adb.htm#ref_1349_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1356_16">GetMaxY</A></span> (<span class="symbol"><A NAME="ref_1356_25" HREF="terminal_interface-curses__adb.htm#ref_1356_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetMaxY, "getmaxy");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1352_16">GetMaxX</A></FONT> (<FONT COLOR=red><A NAME="ref_1352_25" HREF="terminal_interface-curses__adb.htm#ref_1352_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1359_16">GetMaxX</A></span> (<span class="symbol"><A NAME="ref_1359_25" HREF="terminal_interface-curses__adb.htm#ref_1359_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetMaxX, "getmaxx");
+
+- <FONT COLOR=red><A NAME="ref_1355_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1349_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>);
+- <FONT COLOR=red><A NAME="ref_1356_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1352_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>);
++ <span class="symbol"><A NAME="ref_1362_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1356_16">GetMaxY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1399_7">Win</A>);
++ <span class="symbol"><A NAME="ref_1363_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1359_16">GetMaxX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1399_7">Win</A>);
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1232_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1355_7">Y</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1233_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1356_7">X</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1362_14" HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Window_Position</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1363_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1364_7" HREF="terminal_interface-curses__ads.htm#ref_1240_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1365_7" HREF="terminal_interface-curses__ads.htm#ref_1241_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++ <A HREF="terminal_interface-curses__ads.htm#ref_1400_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1362_7">Y</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1401_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1363_7">X</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1369_14" HREF="terminal_interface-curses__ads.htm#ref_1406_14">Get_Window_Position</A></span>
++ (<span class="symbol"><A NAME="ref_1370_7" HREF="terminal_interface-curses__ads.htm#ref_1407_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1371_7" HREF="terminal_interface-curses__ads.htm#ref_1408_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1372_7" HREF="terminal_interface-curses__ads.htm#ref_1409_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1367_16">GetBegY</A></FONT> (<FONT COLOR=red><A NAME="ref_1367_25" HREF="terminal_interface-curses__adb.htm#ref_1367_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1374_16">GetBegY</A></span> (<span class="symbol"><A NAME="ref_1374_25" HREF="terminal_interface-curses__adb.htm#ref_1374_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetBegY, "getbegy");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1370_16">GetBegX</A></FONT> (<FONT COLOR=red><A NAME="ref_1370_25" HREF="terminal_interface-curses__adb.htm#ref_1370_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1377_16">GetBegX</A></span> (<span class="symbol"><A NAME="ref_1377_25" HREF="terminal_interface-curses__adb.htm#ref_1377_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetBegX, "getbegx");
+
+- <FONT COLOR=red><A NAME="ref_1373_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1367_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>));
+- <FONT COLOR=red><A NAME="ref_1374_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1370_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>));
++ <span class="symbol"><A NAME="ref_1380_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_16">GetBegY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1407_7">Win</A>));
++ <span class="symbol"><A NAME="ref_1381_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1377_16">GetBegX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1407_7">Win</A>));
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1373_7">Y</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1241_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1374_7">X</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Window_Position</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1380_14" HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1381_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1382_7" HREF="terminal_interface-curses__ads.htm#ref_1248_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1383_7" HREF="terminal_interface-curses__ads.htm#ref_1249_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
++ <A HREF="terminal_interface-curses__ads.htm#ref_1408_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1380_7">Y</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1409_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1381_7">X</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1406_14">Get_Window_Position</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1387_14" HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A></span>
++ (<span class="symbol"><A NAME="ref_1388_7" HREF="terminal_interface-curses__ads.htm#ref_1415_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1389_7" HREF="terminal_interface-curses__ads.htm#ref_1416_7">Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1390_7" HREF="terminal_interface-curses__ads.htm#ref_1417_7">Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1385_16">GetCurY</A></FONT> (<FONT COLOR=red><A NAME="ref_1385_25" HREF="terminal_interface-curses__adb.htm#ref_1385_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1392_16">GetCurY</A></span> (<span class="symbol"><A NAME="ref_1392_25" HREF="terminal_interface-curses__adb.htm#ref_1392_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetCurY, "getcury");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1388_16">GetCurX</A></FONT> (<FONT COLOR=red><A NAME="ref_1388_25" HREF="terminal_interface-curses__adb.htm#ref_1388_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1395_16">GetCurX</A></span> (<span class="symbol"><A NAME="ref_1395_25" HREF="terminal_interface-curses__adb.htm#ref_1395_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetCurX, "getcurx");
+
+- <FONT COLOR=red><A NAME="ref_1391_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1385_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>));
+- <FONT COLOR=red><A NAME="ref_1392_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1388_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>));
++ <span class="symbol"><A NAME="ref_1398_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_16">GetCurY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1415_7">Win</A>));
++ <span class="symbol"><A NAME="ref_1399_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1395_16">GetCurX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1415_7">Win</A>));
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1391_7">Y</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1392_7">X</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1254_14">Get_Origin_Relative_To_Parent</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1255_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1257_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1402_7" HREF="terminal_interface-curses__ads.htm#ref_1258_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
++ <A HREF="terminal_interface-curses__ads.htm#ref_1416_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1398_7">Y</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1417_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1399_7">X</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1405_14" HREF="terminal_interface-curses__ads.htm#ref_1422_14">Get_Origin_Relative_To_Parent</A></span>
++ (<span class="symbol"><A NAME="ref_1406_7" HREF="terminal_interface-curses__ads.htm#ref_1423_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1407_7" HREF="terminal_interface-curses__ads.htm#ref_1424_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1408_7" HREF="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1409_7" HREF="terminal_interface-curses__ads.htm#ref_1426_7">Is_Not_A_Subwindow</A></span> : <b>out</b> Boolean)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1404_16">GetParY</A></FONT> (<FONT COLOR=red><A NAME="ref_1404_25" HREF="terminal_interface-curses__adb.htm#ref_1404_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1411_16">GetParY</A></span> (<span class="symbol"><A NAME="ref_1411_25" HREF="terminal_interface-curses__adb.htm#ref_1411_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetParY, "getpary");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1407_16">GetParX</A></FONT> (<FONT COLOR=red><A NAME="ref_1407_25" HREF="terminal_interface-curses__adb.htm#ref_1407_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1414_16">GetParX</A></span> (<span class="symbol"><A NAME="ref_1414_25" HREF="terminal_interface-curses__adb.htm#ref_1414_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, GetParX, "getparx");
+
+- <FONT COLOR=red><A NAME="ref_1410_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1404_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Win</A>);
+- <FONT COLOR=red><A NAME="ref_1411_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1407_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1255_7">Win</A>);
++ <span class="symbol"><A NAME="ref_1417_7">Y</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1411_16">GetParY</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1423_7">Win</A>);
++ <span class="symbol"><A NAME="ref_1418_7">X</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1414_16">GetParX</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1423_7">Win</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A> = -1 <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
+- <A HREF="terminal_interface-curses__ads.htm#ref_1257_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
+- <A HREF="terminal_interface-curses__ads.htm#ref_1258_7">Is_Not_A_Subwindow</A> := True;
+- <b>else</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1256_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1410_7">Y</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1257_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1411_7">X</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1258_7">Is_Not_A_Subwindow</A> := False;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1254_14">Get_Origin_Relative_To_Parent</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1424_13" HREF="terminal_interface-curses__ads.htm#ref_1269_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1424_22" HREF="terminal_interface-curses__ads.htm#ref_1269_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1425_22" HREF="terminal_interface-curses__ads.htm#ref_1270_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1417_7">Y</A> = -1 <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1424_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>'Last;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>'Last;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1426_7">Is_Not_A_Subwindow</A> := True;
++ <b>else</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1424_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1417_7">Y</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1425_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1418_7">X</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1426_7">Is_Not_A_Subwindow</A> := False;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1422_14">Get_Origin_Relative_To_Parent</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1431_13" HREF="terminal_interface-curses__ads.htm#ref_1437_13">New_Pad</A></span> (<span class="symbol"><A NAME="ref_1431_22" HREF="terminal_interface-curses__ads.htm#ref_1437_22">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_1432_22" HREF="terminal_interface-curses__ads.htm#ref_1438_22">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1427_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1427_24" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1427_39" HREF="terminal_interface-curses__adb.htm#ref_1427_16">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1434_16">Newpad</A></span> (<span class="symbol"><A NAME="ref_1434_24" HREF="terminal_interface-curses__adb.htm#ref_1434_16">Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>; <span class="symbol"><A NAME="ref_1434_39" HREF="terminal_interface-curses__adb.htm#ref_1434_16">Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Newpad, "newpad");
+
+- <FONT COLOR=red><A NAME="ref_1430_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1437_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1427_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1269_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1270_22">Columns</A>));
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1430_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1269_13">New_Pad</A>;
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1439_13" HREF="terminal_interface-curses__ads.htm#ref_1275_13">Sub_Pad</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1276_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1277_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1443_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1444_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1446_16">Subpad</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1447_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1448_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1449_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1450_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1451_10" HREF="terminal_interface-curses__adb.htm#ref_1446_16">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_1437_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1434_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1437_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1438_22">Columns</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1437_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1437_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1437_13">New_Pad</A>;
++
++ <b>function</b> <span class="symbol"><A NAME="ref_1446_13" HREF="terminal_interface-curses__ads.htm#ref_1443_13">Sub_Pad</A></span>
++ (<span class="symbol"><A NAME="ref_1447_7" HREF="terminal_interface-curses__ads.htm#ref_1444_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1448_7" HREF="terminal_interface-curses__ads.htm#ref_1445_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_1449_7" HREF="terminal_interface-curses__ads.htm#ref_1446_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_1450_7" HREF="terminal_interface-curses__ads.htm#ref_1447_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1451_7" HREF="terminal_interface-curses__ads.htm#ref_1448_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1453_16">Subpad</A></span>
++ (<span class="symbol"><A NAME="ref_1454_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1455_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1456_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1457_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">First_Line_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1458_10" HREF="terminal_interface-curses__adb.htm#ref_1453_16">First_Column_Position</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>pragma</b> Import (C, Subpad, "subpad");
+
+- <FONT COLOR=red><A NAME="ref_1454_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1461_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1446_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1276_7">Pad</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1277_7">Number_Of_Lines</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">Number_Of_Columns</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">First_Line_Position</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1280_7">First_Column_Position</A>));
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1454_7">W</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1275_13">Sub_Pad</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1467_14" HREF="terminal_interface-curses__ads.htm#ref_1285_14">Refresh</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1468_7" HREF="terminal_interface-curses__ads.htm#ref_1286_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1469_7" HREF="terminal_interface-curses__ads.htm#ref_1287_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1470_7" HREF="terminal_interface-curses__ads.htm#ref_1288_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1471_7" HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1472_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1473_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1292_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1476_16">Prefresh</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1477_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1478_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1479_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1480_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1481_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1482_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1483_10" HREF="terminal_interface-curses__adb.htm#ref_1476_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_1461_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1453_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1444_7">Pad</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1445_7">Number_Of_Lines</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1446_7">Number_Of_Columns</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1447_7">First_Line_Position</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1448_7">First_Column_Position</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1461_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1461_7">W</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1443_13">Sub_Pad</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1474_14" HREF="terminal_interface-curses__ads.htm#ref_1453_14">Refresh</A></span>
++ (<span class="symbol"><A NAME="ref_1475_7" HREF="terminal_interface-curses__ads.htm#ref_1454_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1476_7" HREF="terminal_interface-curses__ads.htm#ref_1455_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1477_7" HREF="terminal_interface-curses__ads.htm#ref_1456_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1478_7" HREF="terminal_interface-curses__ads.htm#ref_1457_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1479_7" HREF="terminal_interface-curses__ads.htm#ref_1458_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1480_7" HREF="terminal_interface-curses__ads.htm#ref_1459_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1481_7" HREF="terminal_interface-curses__ads.htm#ref_1460_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1483_16">Prefresh</A></span>
++ (<span class="symbol"><A NAME="ref_1484_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1485_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1486_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1487_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1488_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1489_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1490_10" HREF="terminal_interface-curses__adb.htm#ref_1483_16">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Prefresh, "prefresh");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1476_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1286_7">Pad</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1287_7">Source_Top_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1288_7">Source_Left_Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1289_7">Destination_Top_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Destination_Left_Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1291_7">Destination_Bottom_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1292_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1285_14">Refresh</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1497_14" HREF="terminal_interface-curses__ads.htm#ref_1297_14">Refresh_Without_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1498_7" HREF="terminal_interface-curses__ads.htm#ref_1298_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1499_7" HREF="terminal_interface-curses__ads.htm#ref_1299_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1500_7" HREF="terminal_interface-curses__ads.htm#ref_1300_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1501_7" HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1304_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1506_16">Pnoutrefresh</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1507_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1508_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1509_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1510_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1511_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1512_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1513_10" HREF="terminal_interface-curses__adb.htm#ref_1506_16">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1483_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1454_7">Pad</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1455_7">Source_Top_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1456_7">Source_Left_Column</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1457_7">Destination_Top_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1458_7">Destination_Left_Column</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1459_7">Destination_Bottom_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1460_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1453_14">Refresh</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1505_14" HREF="terminal_interface-curses__ads.htm#ref_1465_14">Refresh_Without_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1506_7" HREF="terminal_interface-curses__ads.htm#ref_1466_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1507_7" HREF="terminal_interface-curses__ads.htm#ref_1467_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1508_7" HREF="terminal_interface-curses__ads.htm#ref_1468_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1509_7" HREF="terminal_interface-curses__ads.htm#ref_1469_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1510_7" HREF="terminal_interface-curses__ads.htm#ref_1470_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1511_7" HREF="terminal_interface-curses__ads.htm#ref_1471_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1512_7" HREF="terminal_interface-curses__ads.htm#ref_1472_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1514_16">Pnoutrefresh</A></span>
++ (<span class="symbol"><A NAME="ref_1515_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1516_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1517_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1518_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1519_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1520_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1521_10" HREF="terminal_interface-curses__adb.htm#ref_1514_16">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Pnoutrefresh, "pnoutrefresh");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1506_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1298_7">Pad</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1299_7">Source_Top_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1300_7">Source_Left_Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1301_7">Destination_Top_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Destination_Left_Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_7">Destination_Bottom_Row</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1304_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1297_14">Refresh_Without_Update</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1527_14" HREF="terminal_interface-curses__ads.htm#ref_1309_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1528_7" HREF="terminal_interface-curses__ads.htm#ref_1310_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1529_7" HREF="terminal_interface-curses__ads.htm#ref_1311_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1514_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1466_7">Pad</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1467_7">Source_Top_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_7">Source_Left_Column</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1469_7">Destination_Top_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1470_7">Destination_Left_Column</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1471_7">Destination_Bottom_Row</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1472_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1465_14">Refresh_Without_Update</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1536_14" HREF="terminal_interface-curses__ads.htm#ref_1477_14">Add_Character_To_Pad_And_Echo_It</A></span>
++ (<span class="symbol"><A NAME="ref_1537_7" HREF="terminal_interface-curses__ads.htm#ref_1478_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1538_7" HREF="terminal_interface-curses__ads.htm#ref_1479_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1531_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1531_27" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1531_41" HREF="terminal_interface-curses__adb.htm#ref_1531_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1540_16">Pechochar</A></span> (<span class="symbol"><A NAME="ref_1540_27" HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1540_41" HREF="terminal_interface-curses__adb.htm#ref_1540_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Pechochar, "pechochar");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1531_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1310_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1311_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1478_7">Pad</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1479_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1309_14">Add_Character_To_Pad_And_Echo_It</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1477_14">Add_Character_To_Pad_And_Echo_It</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1540_14" HREF="terminal_interface-curses__ads.htm#ref_1314_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1541_7" HREF="terminal_interface-curses__ads.htm#ref_1315_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1542_7" HREF="terminal_interface-curses__ads.htm#ref_1316_7">Ch</A></FONT> : Character)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1309_14">Add_Character_To_Pad_And_Echo_It</A>
+- (<A HREF="terminal_interface-curses__ads.htm#ref_1315_7">Pad</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1316_7">Ch</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1314_14">Add_Character_To_Pad_And_Echo_It</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1552_14" HREF="terminal_interface-curses__ads.htm#ref_1324_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1552_22" HREF="terminal_interface-curses__ads.htm#ref_1324_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1553_22" HREF="terminal_interface-curses__ads.htm#ref_1325_22">Amount</A></FONT> : Integer := 1)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1549_14" HREF="terminal_interface-curses__ads.htm#ref_1482_14">Add_Character_To_Pad_And_Echo_It</A></span>
++ (<span class="symbol"><A NAME="ref_1550_7" HREF="terminal_interface-curses__ads.htm#ref_1483_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1551_7" HREF="terminal_interface-curses__ads.htm#ref_1484_7">Ch</A></span> : Character)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1477_14">Add_Character_To_Pad_And_Echo_It</A>
++ (<A HREF="terminal_interface-curses__ads.htm#ref_1483_7">Pad</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>'(<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1484_7">Ch</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1482_14">Add_Character_To_Pad_And_Echo_It</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1561_14" HREF="terminal_interface-curses__ads.htm#ref_1492_14">Scroll</A></span> (<span class="symbol"><A NAME="ref_1561_22" HREF="terminal_interface-curses__ads.htm#ref_1492_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1562_22" HREF="terminal_interface-curses__ads.htm#ref_1493_22">Amount</A></span> : Integer := 1)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1555_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1555_23" HREF="terminal_interface-curses__adb.htm#ref_1555_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1555_37" HREF="terminal_interface-curses__adb.htm#ref_1555_16">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1564_16">Wscrl</A></span> (<span class="symbol"><A NAME="ref_1564_23" HREF="terminal_interface-curses__adb.htm#ref_1564_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1564_37" HREF="terminal_interface-curses__adb.htm#ref_1564_16">N</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wscrl, "wscrl");
+
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1555_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1324_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1325_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1564_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1492_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1493_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1324_14">Scroll</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1492_14">Scroll</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1565_14" HREF="terminal_interface-curses__ads.htm#ref_1336_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1565_32" HREF="terminal_interface-curses__ads.htm#ref_1336_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1574_14" HREF="terminal_interface-curses__ads.htm#ref_1504_14">Delete_Character</A></span> (<span class="symbol"><A NAME="ref_1574_32" HREF="terminal_interface-curses__ads.htm#ref_1504_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1567_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1567_24" HREF="terminal_interface-curses__adb.htm#ref_1567_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1576_16">Wdelch</A></span> (<span class="symbol"><A NAME="ref_1576_24" HREF="terminal_interface-curses__adb.htm#ref_1576_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wdelch, "wdelch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1567_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1336_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1576_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1504_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1336_14">Delete_Character</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1504_14">Delete_Character</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1575_14" HREF="terminal_interface-curses__ads.htm#ref_1341_14">Delete_Character</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1342_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1577_7" HREF="terminal_interface-curses__ads.htm#ref_1343_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1578_7" HREF="terminal_interface-curses__ads.htm#ref_1344_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1580_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1580_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1582_26" HREF="terminal_interface-curses__adb.htm#ref_1580_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1584_14" HREF="terminal_interface-curses__ads.htm#ref_1509_14">Delete_Character</A></span>
++ (<span class="symbol"><A NAME="ref_1585_7" HREF="terminal_interface-curses__ads.htm#ref_1510_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1586_7" HREF="terminal_interface-curses__ads.htm#ref_1511_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1587_7" HREF="terminal_interface-curses__ads.htm#ref_1512_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1589_16">Mvwdelch</A></span> (<span class="symbol"><A NAME="ref_1589_26" HREF="terminal_interface-curses__adb.htm#ref_1589_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1590_26" HREF="terminal_interface-curses__adb.htm#ref_1589_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1591_26" HREF="terminal_interface-curses__adb.htm#ref_1589_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mvwdelch, "mvwdelch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1580_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1342_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1343_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1344_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1589_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1510_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1511_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1512_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1341_14">Delete_Character</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1590_13" HREF="terminal_interface-curses__ads.htm#ref_1354_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1590_19" HREF="terminal_interface-curses__ads.htm#ref_1354_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1509_14">Delete_Character</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1522_13">Peek</A></span> (<span class="symbol"><A NAME="ref_1599_19" HREF="terminal_interface-curses__ads.htm#ref_1522_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1593_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1593_23" HREF="terminal_interface-curses__adb.htm#ref_1593_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1602_16">Winch</A></span> (<span class="symbol"><A NAME="ref_1602_23" HREF="terminal_interface-curses__adb.htm#ref_1602_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Winch, "winch");
+ <b>begin</b>
+- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1593_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1354_19">Win</A>));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1354_13">Peek</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1602_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1522_19">Win</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1522_13">Peek</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1599_13" HREF="terminal_interface-curses__ads.htm#ref_1360_13">Peek</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1600_7" HREF="terminal_interface-curses__ads.htm#ref_1361_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1601_7" HREF="terminal_interface-curses__ads.htm#ref_1362_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1602_7" HREF="terminal_interface-curses__ads.htm#ref_1363_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1604_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1604_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1605_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1606_25" HREF="terminal_interface-curses__adb.htm#ref_1604_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1608_13" HREF="terminal_interface-curses__ads.htm#ref_1528_13">Peek</A></span>
++ (<span class="symbol"><A NAME="ref_1609_7" HREF="terminal_interface-curses__ads.htm#ref_1529_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1610_7" HREF="terminal_interface-curses__ads.htm#ref_1530_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1611_7" HREF="terminal_interface-curses__ads.htm#ref_1531_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1613_16">Mvwinch</A></span> (<span class="symbol"><A NAME="ref_1613_25" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1614_25" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1615_25" HREF="terminal_interface-curses__adb.htm#ref_1613_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Mvwinch, "mvwinch");
+ <b>begin</b>
+- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1604_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1361_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1362_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1363_7">Column</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1360_13">Peek</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1612_14" HREF="terminal_interface-curses__ads.htm#ref_1373_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1612_22" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1613_22" HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1613_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1529_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1530_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1531_7">Column</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1528_13">Peek</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1621_14" HREF="terminal_interface-curses__ads.htm#ref_1541_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1621_22" HREF="terminal_interface-curses__ads.htm#ref_1541_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1622_22" HREF="terminal_interface-curses__ads.htm#ref_1542_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1615_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1615_24" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1615_38" HREF="terminal_interface-curses__adb.htm#ref_1615_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1624_16">Winsch</A></span> (<span class="symbol"><A NAME="ref_1624_24" HREF="terminal_interface-curses__adb.htm#ref_1624_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>; <span class="symbol"><A NAME="ref_1624_38" HREF="terminal_interface-curses__adb.htm#ref_1624_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Winsch, "winsch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1615_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1373_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1624_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1541_22">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1542_22">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1373_14">Insert</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1541_14">Insert</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1623_14" HREF="terminal_interface-curses__ads.htm#ref_1379_14">Insert</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1624_7" HREF="terminal_interface-curses__ads.htm#ref_1379_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1625_7" HREF="terminal_interface-curses__ads.htm#ref_1380_22">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1626_7" HREF="terminal_interface-curses__ads.htm#ref_1381_22">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1627_7" HREF="terminal_interface-curses__ads.htm#ref_1382_22">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1629_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1629_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1630_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1631_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1632_26" HREF="terminal_interface-curses__adb.htm#ref_1629_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1632_14" HREF="terminal_interface-curses__ads.htm#ref_1547_14">Insert</A></span>
++ (<span class="symbol"><A NAME="ref_1633_7" HREF="terminal_interface-curses__ads.htm#ref_1547_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1634_7" HREF="terminal_interface-curses__ads.htm#ref_1548_22">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1635_7" HREF="terminal_interface-curses__ads.htm#ref_1549_22">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1636_7" HREF="terminal_interface-curses__ads.htm#ref_1550_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1638_16">Mvwinsch</A></span> (<span class="symbol"><A NAME="ref_1638_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1639_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Lin</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1640_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1641_26" HREF="terminal_interface-curses__adb.htm#ref_1638_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mvwinsch, "mvwinsch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1629_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1379_22">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1380_22">Line</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1381_22">Column</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1382_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1379_14">Insert</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1643_14" HREF="terminal_interface-curses__ads.htm#ref_1391_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1643_22" HREF="terminal_interface-curses__ads.htm#ref_1391_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1644_22" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1645_22" HREF="terminal_interface-curses__ads.htm#ref_1393_22">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1647_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1647_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1648_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Str</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_1649_26" HREF="terminal_interface-curses__adb.htm#ref_1647_16">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1547_22">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1548_22">Line</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1549_22">Column</A>),
++ <A HREF="terminal_interface-curses__ads.htm#ref_1550_22">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1547_14">Insert</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1653_14" HREF="terminal_interface-curses__ads.htm#ref_1559_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1653_22" HREF="terminal_interface-curses__ads.htm#ref_1559_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1654_22" HREF="terminal_interface-curses__ads.htm#ref_1560_22">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_1655_22" HREF="terminal_interface-curses__ads.htm#ref_1561_22">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1657_16">Winsnstr</A></span> (<span class="symbol"><A NAME="ref_1657_26" HREF="terminal_interface-curses__adb.htm#ref_1657_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1658_26" HREF="terminal_interface-curses__adb.htm#ref_1657_16">Str</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_1659_26" HREF="terminal_interface-curses__adb.htm#ref_1657_16">Len</A></span> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Winsnstr, "winsnstr");
+
+- <FONT COLOR=red><A NAME="ref_1652_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_1653_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_1662_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1560_22">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_1663_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1653_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1647_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1391_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1652_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1393_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1391_14">Insert</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1661_14" HREF="terminal_interface-curses__ads.htm#ref_1400_14">Insert</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1662_7" HREF="terminal_interface-curses__ads.htm#ref_1400_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1663_7" HREF="terminal_interface-curses__ads.htm#ref_1401_22">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1664_7" HREF="terminal_interface-curses__ads.htm#ref_1402_22">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1665_7" HREF="terminal_interface-curses__ads.htm#ref_1403_22">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1666_7" HREF="terminal_interface-curses__ads.htm#ref_1404_22">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1668_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1668_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1669_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1670_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1671_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Str</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_1672_28" HREF="terminal_interface-curses__adb.htm#ref_1668_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1560_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1662_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1663_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1657_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1559_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1662_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1561_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1559_14">Insert</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1671_14" HREF="terminal_interface-curses__ads.htm#ref_1568_14">Insert</A></span>
++ (<span class="symbol"><A NAME="ref_1672_7" HREF="terminal_interface-curses__ads.htm#ref_1568_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1673_7" HREF="terminal_interface-curses__ads.htm#ref_1569_22">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1674_7" HREF="terminal_interface-curses__ads.htm#ref_1570_22">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1675_7" HREF="terminal_interface-curses__ads.htm#ref_1571_22">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_1676_7" HREF="terminal_interface-curses__ads.htm#ref_1572_22">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1678_16">Mvwinsnstr</A></span> (<span class="symbol"><A NAME="ref_1678_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1679_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Line</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1680_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Column</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1681_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Str</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_1682_28" HREF="terminal_interface-curses__adb.htm#ref_1678_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Mvwinsnstr, "mvwinsnstr");
+
+- <FONT COLOR=red><A NAME="ref_1675_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1403_22">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_1676_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_1685_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1571_22">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_1686_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1403_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1676_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1668_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1400_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1401_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1402_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1675_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1404_22">Len</A>))
+- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1400_14">Insert</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1685_14" HREF="terminal_interface-curses__ads.htm#ref_1416_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1685_20" HREF="terminal_interface-curses__ads.htm#ref_1416_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1686_20" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1687_20" HREF="terminal_interface-curses__ads.htm#ref_1418_20">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1689_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1689_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1690_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Str</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_1691_25" HREF="terminal_interface-curses__adb.htm#ref_1689_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1571_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1678_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1568_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1569_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1570_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1685_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1572_22">Len</A>))
++ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1568_14">Insert</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1696_14" HREF="terminal_interface-curses__ads.htm#ref_1584_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1696_20" HREF="terminal_interface-curses__ads.htm#ref_1584_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1697_20" HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1698_20" HREF="terminal_interface-curses__ads.htm#ref_1586_20">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1700_16">Winnstr</A></span> (<span class="symbol"><A NAME="ref_1700_25" HREF="terminal_interface-curses__adb.htm#ref_1700_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1701_25" HREF="terminal_interface-curses__adb.htm#ref_1700_16">Str</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_1702_25" HREF="terminal_interface-curses__adb.htm#ref_1700_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Winnstr, "winnstr");
+
+- <FONT COLOR=red><A NAME="ref_1694_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1418_20">Len</A>;
+- <FONT COLOR=red><A NAME="ref_1695_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_1696_7">Cnt</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_1705_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1586_20">Len</A>;
++ <span class="symbol"><A NAME="ref_1706_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_1707_7">Cnt</A></span> : Natural;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &lt; 0 <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A> &lt; 0 <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>'Length;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>'Length <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1689_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1416_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1694_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1695_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>, True);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Length <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1696_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1416_14">Peek</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1714_14" HREF="terminal_interface-curses__ads.htm#ref_1425_14">Peek</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1715_7" HREF="terminal_interface-curses__ads.htm#ref_1425_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1716_7" HREF="terminal_interface-curses__ads.htm#ref_1426_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1717_7" HREF="terminal_interface-curses__ads.htm#ref_1427_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1718_7" HREF="terminal_interface-curses__ads.htm#ref_1428_20">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1719_7" HREF="terminal_interface-curses__ads.htm#ref_1429_20">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1426_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1427_20">Column</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1416_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1425_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1428_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1429_20">Len</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1425_14">Peek</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1726_14" HREF="terminal_interface-curses__ads.htm#ref_1440_14">Peek</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1440_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>;
+- <FONT COLOR=red><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1442_20">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1731_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1731_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1732_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Str</A></FONT> : chtype_array; <FONT COLOR=green><EM>-- out</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_1733_27" HREF="terminal_interface-curses__adb.htm#ref_1731_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_1706_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'First;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1700_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1584_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1706_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1705_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1706_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</A>, True);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>'Length <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1707_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1585_20">Str</A>'Last) := (<b>others</b> =&gt; ' ');
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1584_14">Peek</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1725_14" HREF="terminal_interface-curses__ads.htm#ref_1593_14">Peek</A></span>
++ (<span class="symbol"><A NAME="ref_1726_7" HREF="terminal_interface-curses__ads.htm#ref_1593_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1727_7" HREF="terminal_interface-curses__ads.htm#ref_1594_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1728_7" HREF="terminal_interface-curses__ads.htm#ref_1595_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1729_7" HREF="terminal_interface-curses__ads.htm#ref_1596_20">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1730_7" HREF="terminal_interface-curses__ads.htm#ref_1597_20">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1593_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1594_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1595_20">Column</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1584_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1593_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1596_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1597_20">Len</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1593_14">Peek</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1737_14" HREF="terminal_interface-curses__ads.htm#ref_1608_14">Peek</A></span>
++ (<span class="symbol"><A NAME="ref_1738_7" HREF="terminal_interface-curses__ads.htm#ref_1608_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1739_7" HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Attributed_String</A>;
++ <span class="symbol"><A NAME="ref_1740_7" HREF="terminal_interface-curses__ads.htm#ref_1610_20">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1742_16">Winchnstr</A></span> (<span class="symbol"><A NAME="ref_1742_27" HREF="terminal_interface-curses__adb.htm#ref_1742_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1743_27" HREF="terminal_interface-curses__adb.htm#ref_1742_16">Str</A></span> : chtype_array; <span class="comment"><EM>-- out</EM></span>
++ <span class="symbol"><A NAME="ref_1744_27" HREF="terminal_interface-curses__adb.htm#ref_1742_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Winchnstr, "winchnstr");
+
+- <FONT COLOR=red><A NAME="ref_1736_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1442_20">Len</A>;
+- <FONT COLOR=red><A NAME="ref_1737_7">Txt</A></FONT> : <b>constant</b> chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length)
+- := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>);
+- <FONT COLOR=red><A NAME="ref_1739_7">Cnt</A></FONT> : Natural := 0;
++ <span class="symbol"><A NAME="ref_1747_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1610_20">Len</A>;
++ <span class="symbol"><A NAME="ref_1748_7">Txt</A></span> : <b>constant</b> chtype_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'Length)
++ := (0 =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>);
++ <span class="symbol"><A NAME="ref_1750_7">Cnt</A></span> : Natural := 0;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &lt; 0 <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A> &lt; 0 <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'Length;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'Length <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1731_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1440_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1736_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1742_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1608_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1748_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1747_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>for</b> <FONT COLOR=red><A NAME="ref_1750_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'<b>Range</b> <b>loop</b>
+- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1750_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1737_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>));
+- <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> + 1;
++ <b>for</b> <span class="symbol"><A NAME="ref_1761_11">To</A></span> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'<b>Range</b> <b>loop</b>
++ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1748_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1761_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1748_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A>));
++ <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A> + 1;
+ <b>end</b> <b>loop</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Length <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1739_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Str</A>'Last) :=
+- (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; ' ',
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>));
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1440_14">Peek</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1763_14" HREF="terminal_interface-curses__ads.htm#ref_1449_14">Peek</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1764_7" HREF="terminal_interface-curses__ads.htm#ref_1449_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1765_7" HREF="terminal_interface-curses__ads.htm#ref_1450_20">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1766_7" HREF="terminal_interface-curses__ads.htm#ref_1451_20">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1767_7" HREF="terminal_interface-curses__ads.htm#ref_1452_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Attributed_String</A>;
+- <FONT COLOR=red><A NAME="ref_1768_7" HREF="terminal_interface-curses__ads.htm#ref_1453_20">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1450_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1451_20">Column</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1440_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1449_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1452_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1453_20">Len</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1449_14">Peek</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1775_14" HREF="terminal_interface-curses__ads.htm#ref_1465_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1775_19" HREF="terminal_interface-curses__ads.htm#ref_1465_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1776_19" HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1777_19" HREF="terminal_interface-curses__ads.htm#ref_1467_19">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1779_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1779_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1780_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Str</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_1781_26" HREF="terminal_interface-curses__adb.htm#ref_1779_16">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'Length <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1750_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1609_20">Str</A>'Last) :=
++ (<b>others</b> =&gt; (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; ' ',
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>));
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1608_14">Peek</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1774_14" HREF="terminal_interface-curses__ads.htm#ref_1617_14">Peek</A></span>
++ (<span class="symbol"><A NAME="ref_1775_7" HREF="terminal_interface-curses__ads.htm#ref_1617_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1776_7" HREF="terminal_interface-curses__ads.htm#ref_1618_20">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1777_7" HREF="terminal_interface-curses__ads.htm#ref_1619_20">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1778_7" HREF="terminal_interface-curses__ads.htm#ref_1620_20">Str</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Attributed_String</A>;
++ <span class="symbol"><A NAME="ref_1779_7" HREF="terminal_interface-curses__ads.htm#ref_1621_20">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1617_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1618_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1619_20">Column</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1608_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1617_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1620_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1621_20">Len</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1617_14">Peek</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1786_14" HREF="terminal_interface-curses__ads.htm#ref_1633_14">Get</A></span> (<span class="symbol"><A NAME="ref_1786_19" HREF="terminal_interface-curses__ads.htm#ref_1633_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1787_19" HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1788_19" HREF="terminal_interface-curses__ads.htm#ref_1635_19">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1790_16">Wgetnstr</A></span> (<span class="symbol"><A NAME="ref_1790_26" HREF="terminal_interface-curses__adb.htm#ref_1790_16">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1791_26" HREF="terminal_interface-curses__adb.htm#ref_1790_16">Str</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_1792_26" HREF="terminal_interface-curses__adb.htm#ref_1790_16">Len</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Wgetnstr, "wgetnstr");
+
+- <FONT COLOR=red><A NAME="ref_1784_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1467_19">Len</A>;
+- <FONT COLOR=red><A NAME="ref_1785_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length);
+- <FONT COLOR=red><A NAME="ref_1786_7">Cnt</A></FONT> : Natural;
++ <span class="symbol"><A NAME="ref_1795_7">N</A></span> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1635_19">Len</A>;
++ <span class="symbol"><A NAME="ref_1796_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>'Length);
++ <span class="symbol"><A NAME="ref_1797_7">Cnt</A></span> : Natural;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &lt; 0 <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A> &lt; 0 <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>'Length;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A> &gt; <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>'Length <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'First;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1779_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1465_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1785_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>, True);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Length <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1786_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1466_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1465_14">Get</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1804_14" HREF="terminal_interface-curses__ads.htm#ref_1476_14">Get</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1805_7" HREF="terminal_interface-curses__ads.htm#ref_1476_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1806_7" HREF="terminal_interface-curses__ads.htm#ref_1477_19">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1807_7" HREF="terminal_interface-curses__ads.htm#ref_1478_19">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1808_7" HREF="terminal_interface-curses__ads.htm#ref_1479_19">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1809_7" HREF="terminal_interface-curses__ads.htm#ref_1480_19">Len</A></FONT> : Integer := -1)
+- <b>is</b>
+- <b>begin</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1477_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1478_19">Column</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1465_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1476_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1479_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1480_19">Len</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1476_14">Get</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1816_14" HREF="terminal_interface-curses__ads.htm#ref_1501_14">Init_Soft_Label_Keys</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1502_7">Format</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1493_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1493_35">Three_Two_Three</A>)
++ <A HREF="terminal_interface-curses__adb.htm#ref_1796_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.char'First;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1790_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1633_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1796_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1795_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1796_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</A>, True);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</A> &lt; <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>'Length <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1797_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1634_19">Str</A>'Last) := (<b>others</b> =&gt; ' ');
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1633_14">Get</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1815_14" HREF="terminal_interface-curses__ads.htm#ref_1644_14">Get</A></span>
++ (<span class="symbol"><A NAME="ref_1816_7" HREF="terminal_interface-curses__ads.htm#ref_1644_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1817_7" HREF="terminal_interface-curses__ads.htm#ref_1645_19">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1818_7" HREF="terminal_interface-curses__ads.htm#ref_1646_19">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1819_7" HREF="terminal_interface-curses__ads.htm#ref_1647_19">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1820_7" HREF="terminal_interface-curses__ads.htm#ref_1648_19">Len</A></span> : Integer := -1)
++ <b>is</b>
++ <b>begin</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1644_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1645_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1646_19">Column</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1633_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1644_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1647_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1648_19">Len</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1644_14">Get</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1669_14">Init_Soft_Label_Keys</A></span>
++ (<span class="symbol"><A NAME="ref_1828_7" HREF="terminal_interface-curses__ads.htm#ref_1670_7">Format</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1661_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1661_35">Three_Two_Three</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1819_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1819_26" HREF="terminal_interface-curses__adb.htm#ref_1819_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1830_16">Slk_Init</A></span> (<span class="symbol"><A NAME="ref_1830_26" HREF="terminal_interface-curses__adb.htm#ref_1830_16">Fmt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Init, "slk_init");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1819_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1493_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1502_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1830_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1661_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1670_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1501_14">Init_Soft_Label_Keys</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1669_14">Init_Soft_Label_Keys</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1827_14" HREF="terminal_interface-curses__ads.htm#ref_1507_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1827_34" HREF="terminal_interface-curses__ads.htm#ref_1507_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1828_34" HREF="terminal_interface-curses__ads.htm#ref_1508_34">Text</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1829_34" HREF="terminal_interface-curses__ads.htm#ref_1509_34">Fmt</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1498_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1498_33">Left</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1831_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1831_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1832_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Txt</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_1833_25" HREF="terminal_interface-curses__adb.htm#ref_1831_16">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1838_14" HREF="terminal_interface-curses__ads.htm#ref_1675_14">Set_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1838_34" HREF="terminal_interface-curses__ads.htm#ref_1675_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1665_9">Label_Number</A>;
++ <span class="symbol"><A NAME="ref_1839_34" HREF="terminal_interface-curses__ads.htm#ref_1676_34">Text</A></span> : String;
++ <span class="symbol"><A NAME="ref_1840_34" HREF="terminal_interface-curses__ads.htm#ref_1677_34">Fmt</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1666_33">Left</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_1842_16">Slk_Set</A></span> (<span class="symbol"><A NAME="ref_1842_25" HREF="terminal_interface-curses__adb.htm#ref_1842_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1843_25" HREF="terminal_interface-curses__adb.htm#ref_1842_16">Txt</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_1844_25" HREF="terminal_interface-curses__adb.htm#ref_1842_16">Fmt</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Set, "slk_set");
+
+- <FONT COLOR=red><A NAME="ref_1836_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1508_34">Text</A>'Length);
+- <FONT COLOR=red><A NAME="ref_1837_7">Len</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_1847_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1676_34">Text</A>'Length);
++ <span class="symbol"><A NAME="ref_1848_7">Len</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1508_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1837_7">Len</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1831_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1507_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1836_7">Txt</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1498_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1509_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1676_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1847_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1848_7">Len</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1842_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1675_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1847_7">Txt</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1677_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1507_14">Set_Soft_Label_Key</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1675_14">Set_Soft_Label_Key</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1846_14" HREF="terminal_interface-curses__ads.htm#ref_1514_14">Refresh_Soft_Label_Keys</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1858_14" HREF="terminal_interface-curses__ads.htm#ref_1682_14">Refresh_Soft_Label_Keys</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1848_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1860_16">Slk_Refresh</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Refresh, "slk_refresh");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1848_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1860_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1514_14">Refresh_Soft_Label_Keys</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1682_14">Refresh_Soft_Label_Keys</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1856_14" HREF="terminal_interface-curses__ads.htm#ref_1519_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1868_14" HREF="terminal_interface-curses__ads.htm#ref_1687_14">Refresh_Soft_Label_Keys_Without_Update</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1858_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1870_16">Slk_Noutrefresh</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Noutrefresh, "slk_noutrefresh");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1858_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1870_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1519_14">Refresh_Soft_Label_Keys_Without_Update</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1687_14">Refresh_Soft_Label_Keys_Without_Update</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1866_14" HREF="terminal_interface-curses__ads.htm#ref_1524_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1866_34" HREF="terminal_interface-curses__ads.htm#ref_1524_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1867_34" HREF="terminal_interface-curses__ads.htm#ref_1525_34">Text</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1878_14" HREF="terminal_interface-curses__ads.htm#ref_1692_14">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1878_34" HREF="terminal_interface-curses__ads.htm#ref_1692_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1665_9">Label_Number</A>;
++ <span class="symbol"><A NAME="ref_1879_34" HREF="terminal_interface-curses__ads.htm#ref_1693_34">Text</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1869_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1869_27" HREF="terminal_interface-curses__adb.htm#ref_1869_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_1881_16">Slk_Label</A></span> (<span class="symbol"><A NAME="ref_1881_27" HREF="terminal_interface-curses__adb.htm#ref_1881_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Slk_Label, "slk_label");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1869_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1524_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1525_34">Text</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1524_14">Get_Soft_Label_Key</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1881_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1692_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1693_34">Text</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1692_14">Get_Soft_Label_Key</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1875_13" HREF="terminal_interface-curses__ads.htm#ref_1529_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1875_33" HREF="terminal_interface-curses__ads.htm#ref_1529_33">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_1887_13" HREF="terminal_interface-curses__ads.htm#ref_1697_13">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1887_33" HREF="terminal_interface-curses__ads.htm#ref_1697_33">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1665_9">Label_Number</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1877_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1877_27" HREF="terminal_interface-curses__adb.htm#ref_1877_16">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_1889_16">Slk_Label</A></span> (<span class="symbol"><A NAME="ref_1889_27" HREF="terminal_interface-curses__adb.htm#ref_1889_16">Label</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Slk_Label, "slk_label");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1877_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1529_33">Label</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1529_13">Get_Soft_Label_Key</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1889_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1697_33">Label</A>)));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1697_13">Get_Soft_Label_Key</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1883_14" HREF="terminal_interface-curses__ads.htm#ref_1535_14">Clear_Soft_Label_Keys</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1895_14" HREF="terminal_interface-curses__ads.htm#ref_1703_14">Clear_Soft_Label_Keys</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1885_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1897_16">Slk_Clear</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Clear, "slk_clear");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1885_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1897_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1535_14">Clear_Soft_Label_Keys</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1703_14">Clear_Soft_Label_Keys</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1893_14" HREF="terminal_interface-curses__ads.htm#ref_1540_14">Restore_Soft_Label_Keys</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1905_14" HREF="terminal_interface-curses__ads.htm#ref_1708_14">Restore_Soft_Label_Keys</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1895_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1907_16">Slk_Restore</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Restore, "slk_restore");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1895_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1907_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1540_14">Restore_Soft_Label_Keys</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1708_14">Restore_Soft_Label_Keys</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1903_14" HREF="terminal_interface-curses__ads.htm#ref_1545_14">Touch_Soft_Label_Keys</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1915_14" HREF="terminal_interface-curses__ads.htm#ref_1713_14">Touch_Soft_Label_Keys</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1905_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1917_16">Slk_Touch</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Touch, "slk_touch");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1905_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1545_14">Touch_Soft_Label_Keys</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Touch_Soft_Label_Keys</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1913_14" HREF="terminal_interface-curses__ads.htm#ref_1550_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1914_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_1915_7" HREF="terminal_interface-curses__ads.htm#ref_1552_7">On</A></FONT> : Boolean := True)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1925_14" HREF="terminal_interface-curses__ads.htm#ref_1718_14">Switch_Soft_Label_Key_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_1926_7" HREF="terminal_interface-curses__ads.htm#ref_1719_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_1927_7" HREF="terminal_interface-curses__ads.htm#ref_1720_7">On</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1917_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1917_28" HREF="terminal_interface-curses__adb.htm#ref_1917_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1929_16">Slk_Attron</A></span> (<span class="symbol"><A NAME="ref_1929_28" HREF="terminal_interface-curses__adb.htm#ref_1929_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Attron, "slk_attron");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1919_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1919_29" HREF="terminal_interface-curses__adb.htm#ref_1919_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1931_16">Slk_Attroff</A></span> (<span class="symbol"><A NAME="ref_1931_29" HREF="terminal_interface-curses__adb.htm#ref_1931_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Attroff, "slk_attroff");
+
+- <FONT COLOR=red><A NAME="ref_1922_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1923_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
++ <span class="symbol"><A NAME="ref_1934_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_1935_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1719_7">Attr</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1552_7">On</A> <b>then</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1917_16">Slk_Attron</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1720_7">On</A> <b>then</b>
++ <A HREF="terminal_interface-curses__adb.htm#ref_1934_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1929_16">Slk_Attron</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1935_7">Ch</A>);
+ <b>else</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1919_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1923_7">Ch</A>));
++ <A HREF="terminal_interface-curses__adb.htm#ref_1934_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1931_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1935_7">Ch</A>);
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1922_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1934_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Switch_Soft_Label_Key_Attributes</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1718_14">Switch_Soft_Label_Key_Attributes</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1558_14">Set_Soft_Label_Key_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1938_7" HREF="terminal_interface-curses__ads.htm#ref_1559_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_1939_7" HREF="terminal_interface-curses__ads.htm#ref_1560_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1949_14" HREF="terminal_interface-curses__ads.htm#ref_1726_14">Set_Soft_Label_Key_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_1950_7" HREF="terminal_interface-curses__ads.htm#ref_1727_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_1951_7" HREF="terminal_interface-curses__ads.htm#ref_1728_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1941_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1941_29" HREF="terminal_interface-curses__adb.htm#ref_1941_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1953_16">Slk_Attrset</A></span> (<span class="symbol"><A NAME="ref_1953_29" HREF="terminal_interface-curses__adb.htm#ref_1953_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Attrset, "slk_attrset");
+
+- <FONT COLOR=red><A NAME="ref_1944_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1559_7">Attr</A>,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1560_7">Color</A>);
++ <span class="symbol"><A NAME="ref_1956_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1727_7">Attr</A>,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_1728_7">Color</A>);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1941_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1944_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Ch</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1558_14">Set_Soft_Label_Key_Attributes</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1726_14">Set_Soft_Label_Key_Attributes</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1953_13" HREF="terminal_interface-curses__ads.htm#ref_1565_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_1965_13" HREF="terminal_interface-curses__ads.htm#ref_1733_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1955_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1967_16">Slk_Attr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Slk_Attr, "slk_attr");
+
+- <FONT COLOR=red><A NAME="ref_1958_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1955_16">Slk_Attr</A>;
++ <span class="symbol"><A NAME="ref_1970_7">Attr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1967_16">Slk_Attr</A>;
+ <b>begin</b>
+- <b>return</b> Chtype_To_AttrChar (<A HREF="terminal_interface-curses__adb.htm#ref_1958_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1565_13">Get_Soft_Label_Key_Attributes</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1970_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_13">Get_Soft_Label_Key_Attributes</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1963_13" HREF="terminal_interface-curses__ads.htm#ref_1569_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_1975_13" HREF="terminal_interface-curses__ads.htm#ref_1737_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1965_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1977_16">Slk_Attr</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Slk_Attr, "slk_attr");
+
+- <FONT COLOR=red><A NAME="ref_1968_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1965_16">Slk_Attr</A>;
++ <span class="symbol"><A NAME="ref_1980_7">Attr</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1977_16">Slk_Attr</A>;
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1968_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1569_13">Get_Soft_Label_Key_Attributes</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1980_7">Attr</A>.<A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1737_13">Get_Soft_Label_Key_Attributes</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1973_14" HREF="terminal_interface-curses__ads.htm#ref_1574_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1973_40" HREF="terminal_interface-curses__ads.htm#ref_1574_40">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1985_14" HREF="terminal_interface-curses__ads.htm#ref_1742_14">Set_Soft_Label_Key_Color</A></span> (<span class="symbol"><A NAME="ref_1985_40" HREF="terminal_interface-curses__ads.htm#ref_1742_40">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1975_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1975_27" HREF="terminal_interface-curses__adb.htm#ref_1975_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1987_16">Slk_Color</A></span> (<span class="symbol"><A NAME="ref_1987_27" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Slk_Color, "slk_color");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1574_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1742_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1574_14">Set_Soft_Label_Key_Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1742_14">Set_Soft_Label_Key_Color</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1984_14" HREF="terminal_interface-curses__ads.htm#ref_1588_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1984_26" HREF="terminal_interface-curses__ads.htm#ref_1588_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+- <FONT COLOR=red><A NAME="ref_1985_26" HREF="terminal_interface-curses__ads.htm#ref_1589_26">Enable</A></FONT> : Boolean := True)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1996_14" HREF="terminal_interface-curses__ads.htm#ref_1756_14">Enable_Key</A></span> (<span class="symbol"><A NAME="ref_1996_26" HREF="terminal_interface-curses__ads.htm#ref_1756_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>;
++ <span class="symbol"><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1757_26">Enable</A></span> : Boolean := True)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1987_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_1987_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_1988_23" HREF="terminal_interface-curses__adb.htm#ref_1987_16">On_Off</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_1999_16">Keyok</A></span> (<span class="symbol"><A NAME="ref_1999_23" HREF="terminal_interface-curses__adb.htm#ref_1999_16">Keycode</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2000_23" HREF="terminal_interface-curses__adb.htm#ref_1999_16">On_Off</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Keyok, "keyok");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1987_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1588_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1589_26">Enable</A>)))
+- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1588_14">Enable_Key</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1997_14" HREF="terminal_interface-curses__ads.htm#ref_1598_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1997_26" HREF="terminal_interface-curses__ads.htm#ref_1598_26">Definition</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1998_26" HREF="terminal_interface-curses__ads.htm#ref_1599_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1999_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1756_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1757_26">Enable</A>)))
++ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1756_14">Enable_Key</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2010_14" HREF="terminal_interface-curses__ads.htm#ref_1766_14">Define_Key</A></span> (<span class="symbol"><A NAME="ref_2010_26" HREF="terminal_interface-curses__ads.htm#ref_1766_26">Definition</A></span> : String;
++ <span class="symbol"><A NAME="ref_2011_26" HREF="terminal_interface-curses__ads.htm#ref_1767_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2000_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2000_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Def</A></FONT> : char_array;
+- <FONT COLOR=red><A NAME="ref_2001_24" HREF="terminal_interface-curses__adb.htm#ref_2000_16">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2013_16">Defkey</A></span> (<span class="symbol"><A NAME="ref_2013_24" HREF="terminal_interface-curses__adb.htm#ref_2013_16">Def</A></span> : char_array;
++ <span class="symbol"><A NAME="ref_2014_24" HREF="terminal_interface-curses__adb.htm#ref_2013_16">Key</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Defkey, "define_key");
+
+- <FONT COLOR=red><A NAME="ref_2004_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1598_26">Definition</A>'Length);
+- <FONT COLOR=red><A NAME="ref_2005_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_2017_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1766_26">Definition</A>'Length);
++ <span class="symbol"><A NAME="ref_2018_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1598_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2005_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2000_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2004_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1599_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1598_14">Define_Key</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2013_14" HREF="terminal_interface-curses__ads.htm#ref_1624_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2013_26" HREF="terminal_interface-curses__ads.htm#ref_1624_26">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <FONT COLOR=red><A NAME="ref_2014_26" HREF="terminal_interface-curses__ads.htm#ref_1625_26">Str</A></FONT> : <b>out</b> String)
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1766_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2017_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2018_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2013_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2017_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1767_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1766_14">Define_Key</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2026_14" HREF="terminal_interface-curses__ads.htm#ref_1792_14">Un_Control</A></span> (<span class="symbol"><A NAME="ref_2026_26" HREF="terminal_interface-curses__ads.htm#ref_1792_26">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_2027_26" HREF="terminal_interface-curses__ads.htm#ref_1793_26">Str</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2016_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2016_24" HREF="terminal_interface-curses__adb.htm#ref_2016_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2029_16">Unctrl</A></span> (<span class="symbol"><A NAME="ref_2029_24" HREF="terminal_interface-curses__adb.htm#ref_2029_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Unctrl, "unctrl");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2016_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1624_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1625_26">Str</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1624_14">Un_Control</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2029_16">Unctrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1792_26">Ch</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1793_26">Str</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1792_14">Un_Control</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2022_13" HREF="terminal_interface-curses__ads.htm#ref_1629_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2022_25" HREF="terminal_interface-curses__ads.htm#ref_1629_25">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_2035_13" HREF="terminal_interface-curses__ads.htm#ref_1797_13">Un_Control</A></span> (<span class="symbol"><A NAME="ref_2035_25" HREF="terminal_interface-curses__ads.htm#ref_1797_25">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2024_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2024_24" HREF="terminal_interface-curses__adb.htm#ref_2024_16">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2037_16">Unctrl</A></span> (<span class="symbol"><A NAME="ref_2037_24" HREF="terminal_interface-curses__adb.htm#ref_2037_16">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Unctrl, "unctrl");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2024_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1629_25">Ch</A>)));
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1629_13">Un_Control</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2037_16">Unctrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1797_25">Ch</A>));
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1797_13">Un_Control</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2030_14" HREF="terminal_interface-curses__ads.htm#ref_1635_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2030_28" HREF="terminal_interface-curses__ads.htm#ref_1635_28">Msecs</A></FONT> : Natural)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2043_14" HREF="terminal_interface-curses__ads.htm#ref_1803_14">Delay_Output</A></span> (<span class="symbol"><A NAME="ref_2043_28" HREF="terminal_interface-curses__ads.htm#ref_1803_28">Msecs</A></span> : Natural)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2032_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2032_29" HREF="terminal_interface-curses__adb.htm#ref_2032_16">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2045_16">Delayoutput</A></span> (<span class="symbol"><A NAME="ref_2045_29" HREF="terminal_interface-curses__adb.htm#ref_2045_16">Msecs</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Delayoutput, "delay_output");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2032_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1635_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2045_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1803_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1635_14">Delay_Output</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1803_14">Delay_Output</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2040_14" HREF="terminal_interface-curses__ads.htm#ref_1640_14">Flush_Input</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2053_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Flush_Input</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2042_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2055_16">Flushinp</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Flushinp, "flushinp");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2042_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2055_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b> <span class="comment"><EM>-- docu says that never happens, but...</EM></span>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1640_14">Flush_Input</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2050_13" HREF="terminal_interface-curses__ads.htm#ref_1649_13">Baudrate</A></FONT> <b>return</b> Natural
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Flush_Input</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_2063_13" HREF="terminal_interface-curses__ads.htm#ref_1817_13">Baudrate</A></span> <b>return</b> Natural
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2052_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2065_16">Baud</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Baud, "baudrate");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2052_16">Baud</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1649_13">Baudrate</A>;
++ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2065_16">Baud</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1817_13">Baudrate</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2058_13" HREF="terminal_interface-curses__ads.htm#ref_1654_13">Erase_Character</A></FONT> <b>return</b> Character
++ <b>function</b> <span class="symbol"><A NAME="ref_2071_13" HREF="terminal_interface-curses__ads.htm#ref_1822_13">Erase_Character</A></span> <b>return</b> Character
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2060_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2073_16">Erasechar</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Erasechar, "erasechar");
+ <b>begin</b>
+- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2060_16">Erasechar</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1654_13">Erase_Character</A>;
++ <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2073_16">Erasechar</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1822_13">Erase_Character</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2066_13" HREF="terminal_interface-curses__ads.htm#ref_1659_13">Kill_Character</A></FONT> <b>return</b> Character
++ <b>function</b> <span class="symbol"><A NAME="ref_2079_13" HREF="terminal_interface-curses__ads.htm#ref_1827_13">Kill_Character</A></span> <b>return</b> Character
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2068_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2081_16">Killchar</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Killchar, "killchar");
+ <b>begin</b>
+- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2068_16">Killchar</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1659_13">Kill_Character</A>;
++ <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2081_16">Killchar</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1827_13">Kill_Character</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2074_13" HREF="terminal_interface-curses__ads.htm#ref_1664_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_2087_13" HREF="terminal_interface-curses__ads.htm#ref_1832_13">Has_Insert_Character</A></span> <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2076_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2089_16">Has_Ic</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Has_Ic, "has_ic");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2089_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1664_13">Has_Insert_Character</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1832_13">Has_Insert_Character</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2086_13" HREF="terminal_interface-curses__ads.htm#ref_1669_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_2099_13" HREF="terminal_interface-curses__ads.htm#ref_1837_13">Has_Insert_Line</A></span> <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2088_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2101_16">Has_Il</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Has_Il, "has_il");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2088_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2101_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1669_13">Has_Insert_Line</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1837_13">Has_Insert_Line</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2098_13" HREF="terminal_interface-curses__ads.htm#ref_1674_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_2111_13" HREF="terminal_interface-curses__ads.htm#ref_1842_13">Supported_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2100_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2113_16">Termattrs</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
+ <b>pragma</b> Import (C, Termattrs, "termattrs");
+
+- <FONT COLOR=red><A NAME="ref_2103_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2100_16">Termattrs</A>);
++ <span class="symbol"><A NAME="ref_2116_7">Ch</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2113_16">Termattrs</A>;
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2103_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1674_13">Supported_Attributes</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2116_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1842_13">Supported_Attributes</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2108_14" HREF="terminal_interface-curses__ads.htm#ref_1679_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2108_25" HREF="terminal_interface-curses__ads.htm#ref_1679_25">Name</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2121_14" HREF="terminal_interface-curses__ads.htm#ref_1847_14">Long_Name</A></span> (<span class="symbol"><A NAME="ref_2121_25" HREF="terminal_interface-curses__ads.htm#ref_1847_25">Name</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2110_16">Longname</A></FONT> <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2123_16">Longname</A></span> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Longname, "longname");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1679_25">Name</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1679_14">Long_Name</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2123_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1847_25">Name</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1847_14">Long_Name</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2116_13" HREF="terminal_interface-curses__ads.htm#ref_1683_13">Long_Name</A></FONT> <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_2129_13" HREF="terminal_interface-curses__ads.htm#ref_1851_13">Long_Name</A></span> <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2118_16">Longname</A></FONT> <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2131_16">Longname</A></span> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Longname, "longname");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2118_16">Longname</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1683_13">Long_Name</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2131_16">Longname</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1851_13">Long_Name</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2124_14" HREF="terminal_interface-curses__ads.htm#ref_1689_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2124_29" HREF="terminal_interface-curses__ads.htm#ref_1689_29">Name</A></FONT> : <b>out</b> String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2137_14" HREF="terminal_interface-curses__ads.htm#ref_1857_14">Terminal_Name</A></span> (<span class="symbol"><A NAME="ref_2137_29" HREF="terminal_interface-curses__ads.htm#ref_1857_29">Name</A></span> : <b>out</b> String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2126_16">Termname</A></FONT> <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2139_16">Termname</A></span> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Termname, "termname");
+ <b>begin</b>
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2126_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1689_29">Name</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1689_14">Terminal_Name</A>;
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2139_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1857_29">Name</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1857_14">Terminal_Name</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1693_13">Terminal_Name</A></FONT> <b>return</b> String
++ <b>function</b> <span class="symbol"><A NAME="ref_2145_13" HREF="terminal_interface-curses__ads.htm#ref_1861_13">Terminal_Name</A></span> <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2134_16">Termname</A></FONT> <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2147_16">Termname</A></span> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, Termname, "termname");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termname</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1693_13">Terminal_Name</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2140_14" HREF="terminal_interface-curses__ads.htm#ref_1714_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2140_25" HREF="terminal_interface-curses__ads.htm#ref_1714_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+- <FONT COLOR=red><A NAME="ref_2141_25" HREF="terminal_interface-curses__ads.htm#ref_1715_25">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1716_25">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2144_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2144_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_2145_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_2146_26" HREF="terminal_interface-curses__adb.htm#ref_2144_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2147_16">Termname</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_13">Terminal_Name</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2153_14" HREF="terminal_interface-curses__ads.htm#ref_1882_14">Init_Pair</A></span> (<span class="symbol"><A NAME="ref_2153_25" HREF="terminal_interface-curses__ads.htm#ref_1882_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_411_12">Redefinable_Color_Pair</A>;
++ <span class="symbol"><A NAME="ref_2154_25" HREF="terminal_interface-curses__ads.htm#ref_1883_25">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_2155_25" HREF="terminal_interface-curses__ads.htm#ref_1884_25">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_2157_16">Initpair</A></span> (<span class="symbol"><A NAME="ref_2157_26" HREF="terminal_interface-curses__adb.htm#ref_2157_16">Pair</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2158_26" HREF="terminal_interface-curses__adb.htm#ref_2157_16">Fore</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2159_26" HREF="terminal_interface-curses__adb.htm#ref_2157_16">Back</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Initpair, "init_pair");
+ <b>begin</b>
+- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A> <b>then</b>
++ <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1882_25">Pair</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_562_13">Number_Of_Color_Pairs</A> <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1715_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
+- Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1716_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A> <b>then</b>
++ <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1883_25">Fore</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_559_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
++ Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1884_25">Back</A>) &gt;= <A HREF="terminal_interface-curses__ads.htm#ref_559_13">Number_Of_Colors</A>
++ <b>then</b>
+ <b>raise</b> Constraint_Error;
+ <b>end</b> <b>if</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1714_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1715_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1716_25">Back</A>))
+- = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1714_14">Init_Pair</A>;
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2162_14" HREF="terminal_interface-curses__ads.htm#ref_1721_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2162_28" HREF="terminal_interface-curses__ads.htm#ref_1721_28">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+- <FONT COLOR=red><A NAME="ref_2163_28" HREF="terminal_interface-curses__ads.htm#ref_1722_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_2164_28" HREF="terminal_interface-curses__ads.htm#ref_1723_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
+- <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_2166_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2167_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2167_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_2168_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Fp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2166_12">C_Short_Access</A>;
+- <FONT COLOR=red><A NAME="ref_2169_29" HREF="terminal_interface-curses__adb.htm#ref_2167_16">Bp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2166_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2157_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1882_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1883_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1884_25">Back</A>))
++ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1882_14">Init_Pair</A>;
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2177_14" HREF="terminal_interface-curses__ads.htm#ref_1889_14">Pair_Content</A></span> (<span class="symbol"><A NAME="ref_2177_28" HREF="terminal_interface-curses__ads.htm#ref_1889_28">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>;
++ <span class="symbol"><A NAME="ref_2178_28" HREF="terminal_interface-curses__ads.htm#ref_1890_28">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_2179_28" HREF="terminal_interface-curses__ads.htm#ref_1891_28">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>)
++ <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_2181_12">C_Short_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2182_16">Paircontent</A></span> (<span class="symbol"><A NAME="ref_2182_29" HREF="terminal_interface-curses__adb.htm#ref_2182_16">Pair</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2183_29" HREF="terminal_interface-curses__adb.htm#ref_2182_16">Fp</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2181_12">C_Short_Access</A>;
++ <span class="symbol"><A NAME="ref_2184_29" HREF="terminal_interface-curses__adb.htm#ref_2182_16">Bp</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2181_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Paircontent, "pair_content");
+
+- <FONT COLOR=red><A NAME="ref_2172_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2172_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2187_7">F</A></span>, <span class="symbol"><A NAME="ref_2187_10">B</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2167_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1721_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2172_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2172_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2182_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1889_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2187_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2187_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1722_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2172_7">F</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1723_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2172_10">B</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1890_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2187_7">F</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1891_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2187_10">B</A>);
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1721_14">Pair_Content</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1889_14">Pair_Content</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2182_13" HREF="terminal_interface-curses__ads.htm#ref_1728_13">Has_Colors</A></FONT> <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_2197_13" HREF="terminal_interface-curses__ads.htm#ref_1896_13">Has_Colors</A></span> <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2184_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2199_16">Hascolors</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Hascolors, "has_colors");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2184_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1728_13">Has_Colors</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1896_13">Has_Colors</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2194_14" HREF="terminal_interface-curses__ads.htm#ref_1733_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2194_26" HREF="terminal_interface-curses__ads.htm#ref_1733_26">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_2195_26" HREF="terminal_interface-curses__ads.htm#ref_1734_26">Red</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_2196_26" HREF="terminal_interface-curses__ads.htm#ref_1735_26">Green</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_2197_26" HREF="terminal_interface-curses__ads.htm#ref_1736_26">Blue</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
+- <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2199_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2199_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_2200_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Red</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_2201_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+- <FONT COLOR=red><A NAME="ref_2202_27" HREF="terminal_interface-curses__adb.htm#ref_2199_16">Blue</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2209_14" HREF="terminal_interface-curses__ads.htm#ref_1901_14">Init_Color</A></span> (<span class="symbol"><A NAME="ref_2209_26" HREF="terminal_interface-curses__ads.htm#ref_1901_26">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_2210_26" HREF="terminal_interface-curses__ads.htm#ref_1902_26">Red</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_2211_26" HREF="terminal_interface-curses__ads.htm#ref_1903_26">Green</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_2212_26" HREF="terminal_interface-curses__ads.htm#ref_1904_26">Blue</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>)
++ <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_2214_16">Initcolor</A></span> (<span class="symbol"><A NAME="ref_2214_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Col</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2215_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Red</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2216_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Green</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2217_27" HREF="terminal_interface-curses__adb.htm#ref_2214_16">Blue</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Initcolor, "init_color");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2199_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1733_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1734_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1735_26">Green</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1736_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2214_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1901_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1902_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1903_26">Green</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1904_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_14">Init_Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1901_14">Init_Color</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2211_13" HREF="terminal_interface-curses__ads.htm#ref_1741_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
++ <b>function</b> <span class="symbol"><A NAME="ref_2227_13" HREF="terminal_interface-curses__ads.htm#ref_1909_13">Can_Change_Color</A></span> <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2213_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2229_16">Canchangecolor</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, Canchangecolor, "can_change_color");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2213_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2229_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A> <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1741_13">Can_Change_Color</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1909_13">Can_Change_Color</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2223_14" HREF="terminal_interface-curses__ads.htm#ref_1746_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2223_29" HREF="terminal_interface-curses__ads.htm#ref_1746_29">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_2224_29" HREF="terminal_interface-curses__ads.htm#ref_1747_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_2225_29" HREF="terminal_interface-curses__ads.htm#ref_1748_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_2226_29" HREF="terminal_interface-curses__ads.htm#ref_1749_29">Blue</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2239_14" HREF="terminal_interface-curses__ads.htm#ref_1914_14">Color_Content</A></span> (<span class="symbol"><A NAME="ref_2239_29" HREF="terminal_interface-curses__ads.htm#ref_1914_29">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_2240_29" HREF="terminal_interface-curses__ads.htm#ref_1915_29">Red</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_2241_29" HREF="terminal_interface-curses__ads.htm#ref_1916_29">Green</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_2242_29" HREF="terminal_interface-curses__ads.htm#ref_1917_29">Blue</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>)
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_2228_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_2244_12">C_Short_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2230_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2230_30" HREF="terminal_interface-curses__adb.htm#ref_2230_16">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2230_47" HREF="terminal_interface-curses__adb.htm#ref_2230_16">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2230_50" HREF="terminal_interface-curses__adb.htm#ref_2230_16">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2230_53" HREF="terminal_interface-curses__adb.htm#ref_2230_16">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2228_12">C_Short_Access</A>)
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2246_16">Colorcontent</A></span> (<span class="symbol"><A NAME="ref_2246_30" HREF="terminal_interface-curses__adb.htm#ref_2246_16">Color</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>; <span class="symbol"><A NAME="ref_2246_47" HREF="terminal_interface-curses__adb.htm#ref_2246_16">R</A></span>, <span class="symbol"><A NAME="ref_2246_50" HREF="terminal_interface-curses__adb.htm#ref_2246_16">G</A></span>, <span class="symbol"><A NAME="ref_2246_53" HREF="terminal_interface-curses__adb.htm#ref_2246_16">B</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2244_12">C_Short_Access</A>)
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Colorcontent, "color_content");
+
+- <FONT COLOR=red><A NAME="ref_2234_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2234_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2234_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
++ <span class="symbol"><A NAME="ref_2250_7">R</A></span>, <span class="symbol"><A NAME="ref_2250_10">G</A></span>, <span class="symbol"><A NAME="ref_2250_13">B</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2230_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1746_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2234_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2234_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2234_13">B</A>'<b>Access</b>) =
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2246_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_51_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1914_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2250_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2250_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2250_13">B</A>'<b>Access</b>) =
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>else</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1747_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_7">R</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1748_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_10">G</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1749_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2234_13">B</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1915_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2250_7">R</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1916_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2250_10">G</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1917_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2250_13">B</A>);
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1746_14">Color_Content</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1914_14">Color_Content</A>;
+
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2247_14" HREF="terminal_interface-curses__ads.htm#ref_1761_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2247_32" HREF="terminal_interface-curses__ads.htm#ref_1761_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>)
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2264_14" HREF="terminal_interface-curses__ads.htm#ref_1929_14">Save_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_2264_32" HREF="terminal_interface-curses__ads.htm#ref_1929_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Mode</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2249_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2266_16">Def_Prog_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Def_Prog_Mode, "def_prog_mode");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2251_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2268_16">Def_Shell_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Def_Shell_Mode, "def_shell_mode");
+
+- <FONT COLOR=red><A NAME="ref_2254_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2271_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1761_32">Mode</A> <b>is</b>
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2249_16">Def_Prog_Mode</A>;
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2251_16">Def_Shell_Mode</A>;
++ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1929_32">Mode</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2266_16">Def_Prog_Mode</A>;
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2268_16">Def_Shell_Mode</A>;
+ <b>end</b> <b>case</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2254_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2271_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1761_14">Save_Curses_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1929_14">Save_Curses_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2265_14" HREF="terminal_interface-curses__ads.htm#ref_1767_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2265_33" HREF="terminal_interface-curses__ads.htm#ref_1767_33">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2282_14" HREF="terminal_interface-curses__ads.htm#ref_1935_14">Reset_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_2282_33" HREF="terminal_interface-curses__ads.htm#ref_1935_33">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Mode</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2267_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2284_16">Reset_Prog_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Reset_Prog_Mode, "reset_prog_mode");
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2269_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2286_16">Reset_Shell_Mode</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Reset_Shell_Mode, "reset_shell_mode");
+
+- <FONT COLOR=red><A NAME="ref_2272_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2289_7">Err</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1767_33">Mode</A> <b>is</b>
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2267_16">Reset_Prog_Mode</A>;
+- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1758_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2269_16">Reset_Shell_Mode</A>;
++ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1935_33">Mode</A> <b>is</b>
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_25">Curses</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2289_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Reset_Prog_Mode</A>;
++ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_33">Shell</A> =&gt; <A HREF="terminal_interface-curses__adb.htm#ref_2289_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2286_16">Reset_Shell_Mode</A>;
+ <b>end</b> <b>case</b>;
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2272_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2289_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1767_14">Reset_Curses_Mode</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1935_14">Reset_Curses_Mode</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2283_14" HREF="terminal_interface-curses__ads.htm#ref_1773_14">Save_Terminal_State</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2300_14" HREF="terminal_interface-curses__ads.htm#ref_1941_14">Save_Terminal_State</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2285_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2302_16">Savetty</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Savetty, "savetty");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2285_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2302_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1773_14">Save_Terminal_State</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1941_14">Save_Terminal_State</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2293_14" HREF="terminal_interface-curses__ads.htm#ref_1778_14">Reset_Terminal_State</A></FONT>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2310_14" HREF="terminal_interface-curses__ads.htm#ref_1946_14">Reset_Terminal_State</A></span>
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2295_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2312_16">Resetty</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Resetty, "resetty");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2295_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2312_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1778_14">Reset_Terminal_State</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1946_14">Reset_Terminal_State</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2303_14" HREF="terminal_interface-curses__ads.htm#ref_1791_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2303_29" HREF="terminal_interface-curses__ads.htm#ref_1791_29">Lines</A></FONT> : Integer;
+- <FONT COLOR=red><A NAME="ref_2304_29" HREF="terminal_interface-curses__ads.htm#ref_1792_29">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2320_14" HREF="terminal_interface-curses__ads.htm#ref_1959_14">Rip_Off_Lines</A></span> (<span class="symbol"><A NAME="ref_2320_29" HREF="terminal_interface-curses__ads.htm#ref_1959_29">Lines</A></span> : Integer;
++ <span class="symbol"><A NAME="ref_2321_29" HREF="terminal_interface-curses__ads.htm#ref_1960_29">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1950_9">Stdscr_Init_Proc</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2306_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2306_28" HREF="terminal_interface-curses__adb.htm#ref_2306_16">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_2307_28" HREF="terminal_interface-curses__adb.htm#ref_2306_16">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2323_16">Ripoffline</A></span> (<span class="symbol"><A NAME="ref_2323_28" HREF="terminal_interface-curses__adb.htm#ref_2323_16">Lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2324_28" HREF="terminal_interface-curses__adb.htm#ref_2323_16">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1950_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Ripoffline, "_nc_ripoffline");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2306_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1791_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1792_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2323_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1959_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1960_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1791_14">Rip_Off_Lines</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1959_14">Rip_Off_Lines</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2315_14" HREF="terminal_interface-curses__ads.htm#ref_1803_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2315_37" HREF="terminal_interface-curses__ads.htm#ref_1803_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2332_14" HREF="terminal_interface-curses__ads.htm#ref_1971_14">Set_Cursor_Visibility</A></span> (<span class="symbol"><A NAME="ref_2332_37" HREF="terminal_interface-curses__ads.htm#ref_1971_37">Visibility</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1968_9">Cursor_Visibility</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2317_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2317_26" HREF="terminal_interface-curses__adb.htm#ref_2317_16">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2334_16">Curs_Set</A></span> (<span class="symbol"><A NAME="ref_2334_26" HREF="terminal_interface-curses__adb.htm#ref_2334_16">Curs</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Curs_Set, "curs_set");
+
+- <FONT COLOR=red><A NAME="ref_2320_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2337_7">Res</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2317_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1803_37">Visibility</A>));
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1803_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2320_7">Res</A>);
++ <A HREF="terminal_interface-curses__adb.htm#ref_2337_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2334_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1968_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1971_37">Visibility</A>));
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2337_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1971_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1968_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2337_7">Res</A>);
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1803_14">Set_Cursor_Visibility</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1971_14">Set_Cursor_Visibility</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2328_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2328_33" HREF="terminal_interface-curses__ads.htm#ref_1808_33">Ms</A></FONT> : Natural)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2345_14" HREF="terminal_interface-curses__ads.htm#ref_1976_14">Nap_Milli_Seconds</A></span> (<span class="symbol"><A NAME="ref_2345_33" HREF="terminal_interface-curses__ads.htm#ref_1976_33">Ms</A></span> : Natural)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2330_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2330_23" HREF="terminal_interface-curses__adb.htm#ref_2330_16">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2347_16">Napms</A></span> (<span class="symbol"><A NAME="ref_2347_23" HREF="terminal_interface-curses__adb.htm#ref_2347_16">Ms</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Napms, "napms");
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2330_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1808_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2347_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1976_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Nap_Milli_Seconds</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2339_13" HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2341_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2341_7">Result</A>, "stdscr");
+- <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2341_7">Result</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2347_13" HREF="terminal_interface-curses__ads.htm#ref_483_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1976_14">Nap_Milli_Seconds</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_2355_13" HREF="terminal_interface-curses__ads.htm#ref_550_13">Lines</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2349_7">Result</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2349_7">Result</A>, "curscr");
++ <b>function</b> <span class="symbol"><A NAME="ref_2357_16">LINES_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>pragma</b> Import (C, LINES_As_Function, "LINES_as_function");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2349_7">Result</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_483_13">Current_Window</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2357_16">LINES_As_Function</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_550_13">Lines</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2355_13" HREF="terminal_interface-curses__ads.htm#ref_414_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_2363_13" HREF="terminal_interface-curses__ads.htm#ref_553_13">Columns</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2357_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2357_7">Result</A>, "LINES");
++ <b>function</b> <span class="symbol"><A NAME="ref_2365_16">COLS_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>pragma</b> Import (C, COLS_As_Function, "COLS_as_function");
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2357_7">Result</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_414_13">Lines</A>;
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2365_16">COLS_As_Function</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_553_13">Columns</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2363_13" HREF="terminal_interface-curses__ads.htm#ref_417_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
++ <b>function</b> <span class="symbol"><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_556_13">Tab_Size</A></span> <b>return</b> Natural
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2365_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2365_7">Result</A>, "COLS");
+- <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2365_7">Result</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_13">Columns</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2373_16">TABSIZE_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>pragma</b> Import (C, TABSIZE_As_Function, "TABSIZE_as_function");
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2371_13" HREF="terminal_interface-curses__ads.htm#ref_420_13">Tab_Size</A></FONT> <b>return</b> Natural
+- <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2373_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Result</A>, "TABSIZE");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2373_7">Result</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_420_13">Tab_Size</A>;
++ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2373_16">TABSIZE_As_Function</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_556_13">Tab_Size</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2379_13" HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
++ <b>function</b> <span class="symbol"><A NAME="ref_2380_13" HREF="terminal_interface-curses__ads.htm#ref_559_13">Number_Of_Colors</A></span> <b>return</b> Natural
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2381_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2381_7">Result</A>, "COLORS");
++ <b>function</b> <span class="symbol"><A NAME="ref_2382_16">COLORS_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>pragma</b> Import (C, COLORS_As_Function, "COLORS_as_function");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2381_7">Result</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A>;
++ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2382_16">COLORS_As_Function</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_559_13">Number_Of_Colors</A>;
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2387_13" HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
++ <b>function</b> <span class="symbol"><A NAME="ref_2388_13" HREF="terminal_interface-curses__ads.htm#ref_562_13">Number_Of_Color_Pairs</A></span> <b>return</b> Natural
+ <b>is</b>
+- <FONT COLOR=red><A NAME="ref_2389_7">Result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2389_7">Result</A>, "COLOR_PAIRS");
++ <b>function</b> <span class="symbol"><A NAME="ref_2390_16">COLOR_PAIRS_As_Function</A></span> <b>return</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.int;
++ <b>pragma</b> Import (C, COLOR_PAIRS_As_Function, "COLOR_PAIRS_as_function");
+ <b>begin</b>
+- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2389_7">Result</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A>;
+-
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2396_14" HREF="terminal_interface-curses__ads.htm#ref_1816_14">Transform_Coordinates</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1817_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1818_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1819_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_2400_7" HREF="terminal_interface-curses__ads.htm#ref_1820_7">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1815_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1815_33">From_Screen</A>)
++ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2390_16">COLOR_PAIRS_As_Function</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_562_13">Number_Of_Color_Pairs</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2396_14" HREF="terminal_interface-curses__ads.htm#ref_1984_14">Transform_Coordinates</A></span>
++ (<span class="symbol"><A NAME="ref_2397_7" HREF="terminal_interface-curses__ads.htm#ref_1985_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_2398_7" HREF="terminal_interface-curses__ads.htm#ref_1986_7">Line</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_2399_7" HREF="terminal_interface-curses__ads.htm#ref_1987_7">Column</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_2400_7" HREF="terminal_interface-curses__ads.htm#ref_1988_7">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1983_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1983_33">From_Screen</A>)
+ <b>is</b>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_2402_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2403_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2404_30" HREF="terminal_interface-curses__adb.htm#ref_2403_16">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2402_12">Int_Access</A>;
+- <FONT COLOR=red><A NAME="ref_2405_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>type</b> <span class="symbol"><A NAME="ref_2402_12">Int_Access</A></span> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2403_16">Transform</A></span> (<span class="symbol"><A NAME="ref_2403_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_2404_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Y</A></span>, <span class="symbol"><A NAME="ref_2404_30" HREF="terminal_interface-curses__adb.htm#ref_2403_16">X</A></span> : <A HREF="terminal_interface-curses__adb.htm#ref_2402_12">Int_Access</A>;
++ <span class="symbol"><A NAME="ref_2405_27" HREF="terminal_interface-curses__adb.htm#ref_2403_16">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, Transform, "wmouse_trafo");
+
+- <FONT COLOR=red><A NAME="ref_2408_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1819_7">Column</A>);
+- <FONT COLOR=red><A NAME="ref_2409_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Line</A>);
+- <FONT COLOR=red><A NAME="ref_2410_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>;
+- <FONT COLOR=red><A NAME="ref_2411_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2408_7">X</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1987_7">Column</A>);
++ <span class="symbol"><A NAME="ref_2409_7">Y</A></span> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1986_7">Line</A>);
++ <span class="symbol"><A NAME="ref_2410_7">D</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A>;
++ <span class="symbol"><A NAME="ref_2411_7">R</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1820_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1815_46">To_Screen</A> <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1988_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1983_46">To_Screen</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A> := 1;
+ <b>end</b> <b>if</b>;
+- <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2403_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1817_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A>);
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>else</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_1818_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>);
+- <A HREF="terminal_interface-curses__ads.htm#ref_1819_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>);
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1816_14">Transform_Coordinates</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2425_14" HREF="terminal_interface-curses__ads.htm#ref_1833_14">Use_Default_Colors</A></FONT> <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2426_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2403_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1985_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2410_7">D</A>);
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2411_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_68_4">Curses_False</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>else</b>
++ <A HREF="terminal_interface-curses__ads.htm#ref_1986_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2409_7">Y</A>);
++ <A HREF="terminal_interface-curses__ads.htm#ref_1987_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2408_7">X</A>);
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1984_14">Transform_Coordinates</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2425_14" HREF="terminal_interface-curses__ads.htm#ref_2003_14">Use_Default_Colors</A></span> <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_2426_16">C_Use_Default_Colors</A></span> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, C_Use_Default_Colors, "use_default_colors");
+- <FONT COLOR=red><A NAME="ref_2428_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">C_Use_Default_Colors</A>;
++ <span class="symbol"><A NAME="ref_2428_7">Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2426_16">C_Use_Default_Colors</A>;
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2428_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2428_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1833_14">Use_Default_Colors</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2003_14">Use_Default_Colors</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2435_14" HREF="terminal_interface-curses__ads.htm#ref_1838_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_1838_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+- <FONT COLOR=red><A NAME="ref_2436_37" HREF="terminal_interface-curses__ads.htm#ref_1839_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2435_14" HREF="terminal_interface-curses__ads.htm#ref_2008_14">Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2435_37" HREF="terminal_interface-curses__ads.htm#ref_2008_37">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2000_4">Default_Color</A>;
++ <span class="symbol"><A NAME="ref_2436_37" HREF="terminal_interface-curses__ads.htm#ref_2009_37">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2000_4">Default_Color</A>)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2438_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_2439_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2438_16">C_Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2438_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Fore</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2439_41" HREF="terminal_interface-curses__adb.htm#ref_2438_16">Back</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, C_Assume_Default_Colors, "assume_default_colors");
+
+- <FONT COLOR=red><A NAME="ref_2442_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2438_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1838_37">Fore</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1839_37">Back</A>));
++ <span class="symbol"><A NAME="ref_2442_7">Err</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2438_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2008_37">Fore</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2009_37">Back</A>));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2442_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2442_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1838_14">Assume_Default_Colors</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2450_13" HREF="terminal_interface-curses__ads.htm#ref_1848_13">Curses_Version</A></FONT> <b>return</b> String
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2008_14">Assume_Default_Colors</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_2450_13" HREF="terminal_interface-curses__ads.htm#ref_2018_13">Curses_Version</A></span> <b>return</b> String
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2452_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
++ <b>function</b> <span class="symbol"><A NAME="ref_2452_16">curses_versionC</A></span> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, curses_versionC, "curses_version");
+- <FONT COLOR=red><A NAME="ref_2454_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2452_16">curses_versionC</A>;
++ <span class="symbol"><A NAME="ref_2454_7">Result</A></span> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2452_16">curses_versionC</A>;
+ <b>begin</b>
+- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2454_7">Result</A>);
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1848_13">Curses_Version</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_1861_14">Curses_Free_All</A></FONT> <b>is</b>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2460_17">curses_freeall</A></FONT>;
++ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_97_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2454_7">Result</A>);
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2018_13">Curses_Version</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_2031_14">Curses_Free_All</A></span> <b>is</b>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2460_17">curses_freeall</A></span>;
+ <b>pragma</b> Import (C, curses_freeall, "_nc_freeall");
+ <b>begin</b>
+- <FONT COLOR=green><EM>-- Use this only for testing: you cannot use curses after calling it,</EM></FONT>
+- <FONT COLOR=green><EM>-- so it has to be the "last" thing done before exiting the program.</EM></FONT>
+- <FONT COLOR=green><EM>-- This will not really free ALL of memory used by curses. That is</EM></FONT>
+- <FONT COLOR=green><EM>-- because it cannot free the memory used for stdout's setbuf. The</EM></FONT>
+- <FONT COLOR=green><EM>-- _nc_free_and_exit() procedure can do that, but it can be invoked</EM></FONT>
+- <FONT COLOR=green><EM>-- safely only from C - and again, that only as the "last" thing done</EM></FONT>
+- <FONT COLOR=green><EM>-- before exiting the program.</EM></FONT>
++ <span class="comment"><EM>-- Use this only for testing: you cannot use curses after calling it,</EM></span>
++ <span class="comment"><EM>-- so it has to be the "last" thing done before exiting the program.</EM></span>
++ <span class="comment"><EM>-- This will not really free ALL of memory used by curses. That is</EM></span>
++ <span class="comment"><EM>-- because it cannot free the memory used for stdout's setbuf. The</EM></span>
++ <span class="comment"><EM>-- _nc_free_and_exit() procedure can do that, but it can be invoked</EM></span>
++ <span class="comment"><EM>-- safely only from C - and again, that only as the "last" thing done</EM></span>
++ <span class="comment"><EM>-- before exiting the program.</EM></span>
+ <A HREF="terminal_interface-curses__adb.htm#ref_2460_17">curses_freeall</A>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_14">Curses_Free_All</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_1853_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2473_33" HREF="terminal_interface-curses__ads.htm#ref_1853_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2031_14">Curses_Free_All</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_2473_13" HREF="terminal_interface-curses__ads.htm#ref_2023_13">Use_Extended_Names</A></span> (<span class="symbol"><A NAME="ref_2473_33" HREF="terminal_interface-curses__ads.htm#ref_2023_33">Enable</A></span> : Boolean) <b>return</b> Boolean
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2475_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2475_37" HREF="terminal_interface-curses__adb.htm#ref_2475_16">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2475_16">use_extended_namesC</A></span> (<span class="symbol"><A NAME="ref_2475_37" HREF="terminal_interface-curses__adb.htm#ref_2475_16">e</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, use_extended_namesC, "use_extended_names");
+
+- <FONT COLOR=red><A NAME="ref_2478_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> :=
+- <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1853_33">Enable</A>)));
++ <span class="symbol"><A NAME="ref_2478_7">Res</A></span> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> :=
++ <A HREF="terminal_interface-curses__adb.htm#ref_2475_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_2023_33">Enable</A>)));
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Curses_Bool_False</A>) <b>then</b>
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2100_4">Curses_Bool_False</A>) <b>then</b>
+ <b>return</b> False;
+ <b>else</b>
+ <b>return</b> True;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1853_13">Use_Extended_Names</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2488_14" HREF="terminal_interface-curses__ads.htm#ref_1869_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2488_35" HREF="terminal_interface-curses__ads.htm#ref_1869_35">Filename</A></FONT> : String)
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2023_13">Use_Extended_Names</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2488_14" HREF="terminal_interface-curses__ads.htm#ref_2039_14">Screen_Dump_To_File</A></span> (<span class="symbol"><A NAME="ref_2488_35" HREF="terminal_interface-curses__ads.htm#ref_2039_35">Filename</A></span> : String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2490_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2490_26" HREF="terminal_interface-curses__adb.htm#ref_2490_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2490_16">scr_dump</A></span> (<span class="symbol"><A NAME="ref_2490_26" HREF="terminal_interface-curses__adb.htm#ref_2490_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, scr_dump, "scr_dump");
+- <FONT COLOR=red><A NAME="ref_2492_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1869_35">Filename</A>'Length);
+- <FONT COLOR=red><A NAME="ref_2493_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_2492_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2039_35">Filename</A>'Length);
++ <span class="symbol"><A NAME="ref_2493_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1869_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2493_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2490_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2039_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2493_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2490_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2492_7">Txt</A>) <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1869_14">Screen_Dump_To_File</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2039_14">Screen_Dump_To_File</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2501_14" HREF="terminal_interface-curses__ads.htm#ref_1873_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2501_40" HREF="terminal_interface-curses__ads.htm#ref_1873_40">Filename</A></FONT> : String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2501_14" HREF="terminal_interface-curses__ads.htm#ref_2043_14">Screen_Restore_From_File</A></span> (<span class="symbol"><A NAME="ref_2501_40" HREF="terminal_interface-curses__ads.htm#ref_2043_40">Filename</A></span> : String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2503_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2503_29" HREF="terminal_interface-curses__adb.htm#ref_2503_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2503_16">scr_restore</A></span> (<span class="symbol"><A NAME="ref_2503_29" HREF="terminal_interface-curses__adb.htm#ref_2503_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, scr_restore, "scr_restore");
+- <FONT COLOR=red><A NAME="ref_2505_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1873_40">Filename</A>'Length);
+- <FONT COLOR=red><A NAME="ref_2506_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_2505_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2043_40">Filename</A>'Length);
++ <span class="symbol"><A NAME="ref_2506_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1873_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2506_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2503_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2043_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2506_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2503_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2505_7">Txt</A>) <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1873_14">Screen_Restore_From_File</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2043_14">Screen_Restore_From_File</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2514_14" HREF="terminal_interface-curses__ads.htm#ref_1877_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2514_37" HREF="terminal_interface-curses__ads.htm#ref_1877_37">Filename</A></FONT> : String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2514_14" HREF="terminal_interface-curses__ads.htm#ref_2047_14">Screen_Init_From_File</A></span> (<span class="symbol"><A NAME="ref_2514_37" HREF="terminal_interface-curses__ads.htm#ref_2047_37">Filename</A></span> : String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2516_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2516_26" HREF="terminal_interface-curses__adb.htm#ref_2516_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2516_16">scr_init</A></span> (<span class="symbol"><A NAME="ref_2516_26" HREF="terminal_interface-curses__adb.htm#ref_2516_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, scr_init, "scr_init");
+- <FONT COLOR=red><A NAME="ref_2518_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1877_37">Filename</A>'Length);
+- <FONT COLOR=red><A NAME="ref_2519_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_2518_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2047_37">Filename</A>'Length);
++ <span class="symbol"><A NAME="ref_2519_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1877_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2519_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2516_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2047_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2519_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2516_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2518_7">Txt</A>) <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1877_14">Screen_Init_From_File</A>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2047_14">Screen_Init_From_File</A>;
+
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2527_14" HREF="terminal_interface-curses__ads.htm#ref_1881_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2527_31" HREF="terminal_interface-curses__ads.htm#ref_1881_31">Filename</A></FONT> : String)
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2527_14" HREF="terminal_interface-curses__ads.htm#ref_2051_14">Screen_Set_File</A></span> (<span class="symbol"><A NAME="ref_2527_31" HREF="terminal_interface-curses__ads.htm#ref_2051_31">Filename</A></span> : String)
+ <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2529_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2529_25" HREF="terminal_interface-curses__adb.htm#ref_2529_16">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ <b>function</b> <span class="symbol"><A NAME="ref_2529_16">scr_set</A></span> (<span class="symbol"><A NAME="ref_2529_25" HREF="terminal_interface-curses__adb.htm#ref_2529_16">f</A></span> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, scr_set, "scr_set");
+- <FONT COLOR=red><A NAME="ref_2531_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1881_31">Filename</A>'Length);
+- <FONT COLOR=red><A NAME="ref_2532_7">Length</A></FONT> : size_t;
++ <span class="symbol"><A NAME="ref_2531_7">Txt</A></span> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_2051_31">Filename</A>'Length);
++ <span class="symbol"><A NAME="ref_2532_7">Length</A></span> : size_t;
+ <b>begin</b>
+- To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1881_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2532_7">Length</A>);
+- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2529_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>) <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
+- <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1881_14">Screen_Set_File</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_2540_14" HREF="terminal_interface-curses__ads.htm#ref_1913_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_1913_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_1914_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_2542_22" HREF="terminal_interface-curses__ads.htm#ref_1915_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_2543_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+- <FONT COLOR=red><A NAME="ref_2545_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
++ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_2051_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2532_7">Length</A>);
++ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2529_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2531_7">Txt</A>) <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
++ <b>end</b> <b>if</b>;
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2051_14">Screen_Set_File</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2540_14" HREF="terminal_interface-curses__ads.htm#ref_2083_14">Resize</A></span> (<span class="symbol"><A NAME="ref_2540_22" HREF="terminal_interface-curses__ads.htm#ref_2083_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_2541_22" HREF="terminal_interface-curses__ads.htm#ref_2084_22">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_2542_22" HREF="terminal_interface-curses__ads.htm#ref_2085_22">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>) <b>is</b>
++ <b>function</b> <span class="symbol"><A NAME="ref_2543_16">wresize</A></span> (<span class="symbol"><A NAME="ref_2543_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_2544_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">lines</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
++ <span class="symbol"><A NAME="ref_2545_25" HREF="terminal_interface-curses__adb.htm#ref_2543_16">columns</A></span> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A>;
+ <b>pragma</b> Import (C, wresize);
+ <b>begin</b>
+- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2543_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1913_22">Win</A>,
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1914_22">Number_Of_Lines</A>),
+- <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1915_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_385_4">Curses_Exception</A>;
++ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2543_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2083_22">Win</A>,
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2084_22">Number_Of_Lines</A>),
++ <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_2085_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_65_4">Curses_Err</A>
++ <b>then</b>
++ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_521_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1913_14">Resize</A>;
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
++ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_2083_14">Resize</A>;
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface-curses__ads.htm 2011-04-02 19:53:41.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -1,1935 +1,2120 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface-curses.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.44 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2011/03/19 23:05:56 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- curses binding.</EM></FONT>
+-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
+-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
+-<FONT COLOR=green><EM>-- |</EM></FONT>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface.Curses --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.47 @</EM></span>
++<span class="comment"><EM>-- @Date: 2014/05/24 21:31:57 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
+ <b>with</b> System.Storage_Elements;
+-<b>with</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT>
++<b>with</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C; <span class="comment"><EM>-- We need this for some assertions.</EM></span>
+
+-<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_49_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></FONT> <b>is</b>
+- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>);
+- <b>pragma</b> Linker_Options ("-lncurses");
+-
+- <FONT COLOR=red><A NAME="ref_53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Major version of the library</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 9; <FONT COLOR=green><EM>-- Minor version of the library</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_55_4">NC_Version</A></FONT> : <b>constant</b> String := "5.9"; <FONT COLOR=green><EM>-- Version of library</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">Window</A></FONT> <b>is</b> <b>private</b>;
+- <FONT COLOR=red><A NAME="ref_58_4">Null_Window</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_60_9">Line_Position</A></FONT> <b>is</b> <b>new</b> Integer; <FONT COLOR=green><EM>-- line coordinate</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Column_Position</A></FONT> <b>is</b> <b>new</b> Integer; <FONT COLOR=green><EM>-- column coordinate</EM></FONT>
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_63_12">Line_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
+- <FONT COLOR=green><EM>-- Type to count lines. We do not allow null windows, so must be positive</EM></FONT>
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_65_12">Column_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
+- <FONT COLOR=green><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_68_9">Key_Code</A></FONT> <b>is</b> <b>new</b> Integer;
+- <FONT COLOR=green><EM>-- That is anything including real characters, special keys and logical</EM></FONT>
+- <FONT COLOR=green><EM>-- request codes.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- FIXME: The "-1" should be Curses_Err</EM></FONT>
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_73_12">Real_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A> <b>range</b> -1 .. 8#777#;
+- <FONT COLOR=green><EM>-- This are the codes that potentially represent a real keystroke.</EM></FONT>
+- <FONT COLOR=green><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></FONT>
+- <FONT COLOR=green><EM>-- availability of a special key, the Has_Key function is provided.</EM></FONT>
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_78_12">Special_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
+- <b>range</b> 8#400# .. <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>'Last;
+- <FONT COLOR=green><EM>-- Type for a function- or special key number</EM></FONT>
++<b>with</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>;
+
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_82_12">Normal_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> <b>range</b>
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_47_28" HREF="terminal_interface-curses__adb.htm#ref_50_33">Curses</A></span> <b>is</b>
++ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>);
++ <b>pragma</b> Linker_Options ("-lncurses" &amp; <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_9_4">DFT_ARG_SUFFIX</A>);
++
++ <span class="symbol"><A NAME="ref_51_4">Major_Version</A></span> : <b>constant</b> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_21_4">NCURSES_VERSION_MAJOR</A>;
++ <span class="symbol"><A NAME="ref_52_4">Minor_Version</A></span> : <b>constant</b> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_22_4">NCURSES_VERSION_MINOR</A>;
++ NC_Version : String <b>renames</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_23_4">Version</A>;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_55_9">Window</A></span> <b>is</b> <b>private</b>;
++ <span class="symbol"><A NAME="ref_56_4">Null_Window</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_58_9">Line_Position</A></span> <b>is</b> <b>new</b> Integer; <span class="comment"><EM>-- line coordinate</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_59_9">Column_Position</A></span> <b>is</b> <b>new</b> Integer; <span class="comment"><EM>-- column coordinate</EM></span>
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_61_12">Line_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>'Last;
++ <span class="comment"><EM>-- Type to count lines. We do not allow null windows, so must be positive</EM></span>
++ <b>subtype</b> <span class="symbol"><A NAME="ref_63_12">Column_Count</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>'Last;
++ <span class="comment"><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_66_9">Key_Code</A></span> <b>is</b> <b>new</b> Integer;
++ <span class="comment"><EM>-- That is anything including real characters, special keys and logical</EM></span>
++ <span class="comment"><EM>-- request codes.</EM></span>
++
++ <span class="comment"><EM>-- FIXME: The "-1" should be Curses_Err</EM></span>
++ <b>subtype</b> <span class="symbol"><A NAME="ref_71_12">Real_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A> <b>range</b> -1 .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_99_4">KEY_MAX</A>;
++ <span class="comment"><EM>-- This are the codes that potentially represent a real keystroke.</EM></span>
++ <span class="comment"><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></span>
++ <span class="comment"><EM>-- availability of a special key, the Has_Key function is provided.</EM></span>
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_76_12">Special_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>
++ <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>. <A HREF="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</A> - 1 .. <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>'Last;
++ <span class="comment"><EM>-- Type for a function- or special key number</EM></span>
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_80_12">Normal_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A> <b>range</b>
+ Character'Pos (Character'First) .. Character'Pos (Character'Last);
+- <FONT COLOR=green><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></FONT>
++ <span class="comment"><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></span>
++
++ <span class="comment"><EM>-- For those who like to use the original key names we produce them were</EM></span>
++ <span class="comment"><EM>-- they differ from the original.</EM></span>
+
+- <FONT COLOR=green><EM>-- Constants for function- and special keys</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_88_4">Key_None</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+- <FONT COLOR=red><A NAME="ref_89_4">Key_Code_Yes</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+- <FONT COLOR=red><A NAME="ref_90_4">Key_Min</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+- <FONT COLOR=red><A NAME="ref_91_4">Key_Break</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+- <FONT COLOR=red><A NAME="ref_92_4">Key_Cursor_Down</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#;
+- <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Up</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#;
+- <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#;
+- <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#;
+- <FONT COLOR=red><A NAME="ref_96_4">Key_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#;
+- <FONT COLOR=red><A NAME="ref_97_4">Key_Backspace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#;
+- <FONT COLOR=red><A NAME="ref_98_4">Key_F0</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#;
+- <FONT COLOR=red><A NAME="ref_99_4">Key_F1</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#;
+- <FONT COLOR=red><A NAME="ref_100_4">Key_F2</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#;
+- <FONT COLOR=red><A NAME="ref_101_4">Key_F3</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#;
+- <FONT COLOR=red><A NAME="ref_102_4">Key_F4</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#;
+- <FONT COLOR=red><A NAME="ref_103_4">Key_F5</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#;
+- <FONT COLOR=red><A NAME="ref_104_4">Key_F6</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#;
+- <FONT COLOR=red><A NAME="ref_105_4">Key_F7</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#;
+- <FONT COLOR=red><A NAME="ref_106_4">Key_F8</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#;
+- <FONT COLOR=red><A NAME="ref_107_4">Key_F9</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#;
+- <FONT COLOR=red><A NAME="ref_108_4">Key_F10</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#;
+- <FONT COLOR=red><A NAME="ref_109_4">Key_F11</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#;
+- <FONT COLOR=red><A NAME="ref_110_4">Key_F12</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#;
+- <FONT COLOR=red><A NAME="ref_111_4">Key_F13</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#;
+- <FONT COLOR=red><A NAME="ref_112_4">Key_F14</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#;
+- <FONT COLOR=red><A NAME="ref_113_4">Key_F15</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#;
+- <FONT COLOR=red><A NAME="ref_114_4">Key_F16</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#;
+- <FONT COLOR=red><A NAME="ref_115_4">Key_F17</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#;
+- <FONT COLOR=red><A NAME="ref_116_4">Key_F18</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#;
+- <FONT COLOR=red><A NAME="ref_117_4">Key_F19</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#;
+- <FONT COLOR=red><A NAME="ref_118_4">Key_F20</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#;
+- <FONT COLOR=red><A NAME="ref_119_4">Key_F21</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#;
+- <FONT COLOR=red><A NAME="ref_120_4">Key_F22</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#;
+- <FONT COLOR=red><A NAME="ref_121_4">Key_F23</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#;
+- <FONT COLOR=red><A NAME="ref_122_4">Key_F24</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#;
+- <FONT COLOR=red><A NAME="ref_123_4">Key_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#;
+- <FONT COLOR=red><A NAME="ref_124_4">Key_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#;
+- <FONT COLOR=red><A NAME="ref_125_4">Key_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#;
+- <FONT COLOR=red><A NAME="ref_126_4">Key_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#;
+- <FONT COLOR=red><A NAME="ref_127_4">Key_Exit_Insert_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#;
+- <FONT COLOR=red><A NAME="ref_128_4">Key_Clear_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#;
+- <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_End_Of_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#;
+- <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#;
+- <FONT COLOR=red><A NAME="ref_131_4">Key_Scroll_1_Forward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#;
+- <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Backward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#;
+- <FONT COLOR=red><A NAME="ref_133_4">Key_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#;
+- <FONT COLOR=red><A NAME="ref_134_4">Key_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#;
+- <FONT COLOR=red><A NAME="ref_135_4">Key_Set_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#;
+- <FONT COLOR=red><A NAME="ref_136_4">Key_Clear_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#;
+- <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_All_Tabs</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#;
+- <FONT COLOR=red><A NAME="ref_138_4">Key_Enter_Or_Send</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#;
+- <FONT COLOR=red><A NAME="ref_139_4">Key_Soft_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#;
+- <FONT COLOR=red><A NAME="ref_140_4">Key_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#;
+- <FONT COLOR=red><A NAME="ref_141_4">Key_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#;
+- <FONT COLOR=red><A NAME="ref_142_4">Key_Bottom</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#;
+- <FONT COLOR=red><A NAME="ref_143_4">Key_Upper_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#;
+- <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#;
+- <FONT COLOR=red><A NAME="ref_145_4">Key_Center_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#;
+- <FONT COLOR=red><A NAME="ref_146_4">Key_Lower_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#;
+- <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#;
+- <FONT COLOR=red><A NAME="ref_148_4">Key_Back_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#;
+- <FONT COLOR=red><A NAME="ref_149_4">Key_Beginning</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#;
+- <FONT COLOR=red><A NAME="ref_150_4">Key_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#;
+- <FONT COLOR=red><A NAME="ref_151_4">Key_Close</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#;
+- <FONT COLOR=red><A NAME="ref_152_4">Key_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#;
+- <FONT COLOR=red><A NAME="ref_153_4">Key_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#;
+- <FONT COLOR=red><A NAME="ref_154_4">Key_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#;
+- <FONT COLOR=red><A NAME="ref_155_4">Key_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#;
+- <FONT COLOR=red><A NAME="ref_156_4">Key_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#;
+- <FONT COLOR=red><A NAME="ref_157_4">Key_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#;
+- <FONT COLOR=red><A NAME="ref_158_4">Key_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#;
+- <FONT COLOR=red><A NAME="ref_159_4">Key_Mark</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#;
+- <FONT COLOR=red><A NAME="ref_160_4">Key_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#;
+- <FONT COLOR=red><A NAME="ref_161_4">Key_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#;
+- <FONT COLOR=red><A NAME="ref_162_4">Key_Next</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#;
+- <FONT COLOR=red><A NAME="ref_163_4">Key_Open</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#;
+- <FONT COLOR=red><A NAME="ref_164_4">Key_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#;
+- <FONT COLOR=red><A NAME="ref_165_4">Key_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#;
+- <FONT COLOR=red><A NAME="ref_166_4">Key_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#;
+- <FONT COLOR=red><A NAME="ref_167_4">Key_Reference</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#;
+- <FONT COLOR=red><A NAME="ref_168_4">Key_Refresh</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#;
+- <FONT COLOR=red><A NAME="ref_169_4">Key_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#;
+- <FONT COLOR=red><A NAME="ref_170_4">Key_Restart</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#;
+- <FONT COLOR=red><A NAME="ref_171_4">Key_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#;
+- <FONT COLOR=red><A NAME="ref_172_4">Key_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#;
+- <FONT COLOR=red><A NAME="ref_173_4">Key_Shift_Begin</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#;
+- <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#;
+- <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#;
+- <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#;
+- <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#;
+- <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#;
+- <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#;
+- <FONT COLOR=red><A NAME="ref_180_4">Key_Select</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#;
+- <FONT COLOR=red><A NAME="ref_181_4">Key_Shift_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#;
+- <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#;
+- <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#;
+- <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#;
+- <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#;
+- <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#;
+- <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#;
+- <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#;
+- <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#;
+- <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#;
+- <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#;
+- <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#;
+- <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#;
+- <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#;
+- <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#;
+- <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#;
+- <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#;
+- <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#;
+- <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#;
+- <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#;
+- <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#;
+- <FONT COLOR=red><A NAME="ref_202_4">Key_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#;
+- <FONT COLOR=red><A NAME="ref_203_4">Key_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#;
+- <FONT COLOR=red><A NAME="ref_204_4">Key_Mouse</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
+- <FONT COLOR=red><A NAME="ref_205_4">Key_Resize</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#632#;
+-
+- <FONT COLOR=red><A NAME="ref_207_4">Key_Max</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>
+- := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>'Last;
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_210_12">User_Key_Code</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>
+- <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 129) .. <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>'Last;
+- <FONT COLOR=green><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></FONT>
+- <FONT COLOR=green><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- For those who like to use the original key names we produce them were</EM></FONT>
+- <FONT COLOR=green><EM>-- they differ from the original. Please note that they may differ in</EM></FONT>
+- <FONT COLOR=green><EM>-- lower/upper case.</EM></FONT>
+- KEY_DOWN : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_92_4">Key_Cursor_Down</A>;
+- KEY_UP : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Up</A>;
+- KEY_LEFT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Left</A>;
+- KEY_RIGHT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">Key_Cursor_Right</A>;
+- KEY_DL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_123_4">Key_Delete_Line</A>;
+- KEY_IL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_124_4">Key_Insert_Line</A>;
+- KEY_DC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_125_4">Key_Delete_Char</A>;
+- KEY_IC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_126_4">Key_Insert_Char</A>;
+- KEY_EIC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_127_4">Key_Exit_Insert_Mode</A>;
+- KEY_CLEAR : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_128_4">Key_Clear_Screen</A>;
+- KEY_EOS : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_129_4">Key_Clear_End_Of_Screen</A>;
+- KEY_EOL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_130_4">Key_Clear_End_Of_Line</A>;
+- KEY_SF : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_131_4">Key_Scroll_1_Forward</A>;
+- KEY_SR : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_132_4">Key_Scroll_1_Backward</A>;
+- KEY_NPAGE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_133_4">Key_Next_Page</A>;
+- KEY_PPAGE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_134_4">Key_Previous_Page</A>;
+- KEY_STAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_135_4">Key_Set_Tab</A>;
+- KEY_CTAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_136_4">Key_Clear_Tab</A>;
+- KEY_CATAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_137_4">Key_Clear_All_Tabs</A>;
+- KEY_ENTER : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_138_4">Key_Enter_Or_Send</A>;
+- KEY_SRESET : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_139_4">Key_Soft_Reset</A>;
+- KEY_LL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_142_4">Key_Bottom</A>;
+- KEY_A1 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_143_4">Key_Upper_Left_Of_Keypad</A>;
+- KEY_A3 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_144_4">Key_Upper_Right_Of_Keypad</A>;
+- KEY_B2 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_145_4">Key_Center_Of_Keypad</A>;
+- KEY_C1 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_146_4">Key_Lower_Left_Of_Keypad</A>;
+- KEY_C3 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_147_4">Key_Lower_Right_Of_Keypad</A>;
+- KEY_BTAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_148_4">Key_Back_Tab</A>;
+- KEY_BEG : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_149_4">Key_Beginning</A>;
+- KEY_SBEG : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">Key_Shift_Begin</A>;
+- KEY_SCANCEL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_174_4">Key_Shift_Cancel</A>;
+- KEY_SCOMMAND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">Key_Shift_Command</A>;
+- KEY_SCOPY : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">Key_Shift_Copy</A>;
+- KEY_SCREATE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_177_4">Key_Shift_Create</A>;
+- KEY_SDC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">Key_Shift_Delete_Char</A>;
+- KEY_SDL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">Key_Shift_Delete_Line</A>;
+- KEY_SEND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">Key_Shift_End</A>;
+- KEY_SEOL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">Key_Shift_Clear_End_Of_Line</A>;
+- KEY_SEXIT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_183_4">Key_Shift_Exit</A>;
+- KEY_SFIND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">Key_Shift_Find</A>;
+- KEY_SHELP : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">Key_Shift_Help</A>;
+- KEY_SHOME : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_186_4">Key_Shift_Home</A>;
+- KEY_SIC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">Key_Shift_Insert_Char</A>;
+- KEY_SLEFT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">Key_Shift_Cursor_Left</A>;
+- KEY_SMESSAGE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_189_4">Key_Shift_Message</A>;
+- KEY_SMOVE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">Key_Shift_Move</A>;
+- KEY_SNEXT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">Key_Shift_Next_Page</A>;
+- KEY_SOPTIONS : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_192_4">Key_Shift_Options</A>;
+- KEY_SPREVIOUS : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">Key_Shift_Previous_Page</A>;
+- KEY_SPRINT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">Key_Shift_Print</A>;
+- KEY_SREDO : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_195_4">Key_Shift_Redo</A>;
+- KEY_SREPLACE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">Key_Shift_Replace</A>;
+- KEY_SRIGHT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">Key_Shift_Cursor_Right</A>;
+- KEY_SRSUME : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_198_4">Key_Shift_Resume</A>;
+- KEY_SSAVE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">Key_Shift_Save</A>;
+- KEY_SSUSPEND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Suspend</A>;
+- KEY_SUNDO : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Undo</A>;
+-
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_278_9">Color_Number</A></FONT> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
+- <FONT COLOR=green><EM>-- (n)curses uses a short for the color index</EM></FONT>
+- <FONT COLOR=green><EM>-- The model is, that a Color_Number is an index into an array of</EM></FONT>
+- <FONT COLOR=green><EM>-- (potentially) definable colors. Some of those indices are</EM></FONT>
+- <FONT COLOR=green><EM>-- predefined (see below), although they may not really exist.</EM></FONT>
+-
+- <FONT COLOR=red><A NAME="ref_285_4">Default_Color</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1;
+- <FONT COLOR=red><A NAME="ref_286_4">Black</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0;
+- <FONT COLOR=red><A NAME="ref_287_4">Red</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1;
+- <FONT COLOR=red><A NAME="ref_288_4">Green</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2;
+- <FONT COLOR=red><A NAME="ref_289_4">Yellow</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3;
+- <FONT COLOR=red><A NAME="ref_290_4">Blue</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4;
+- <FONT COLOR=red><A NAME="ref_291_4">Magenta</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5;
+- <FONT COLOR=red><A NAME="ref_292_4">Cyan</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
+- <FONT COLOR=red><A NAME="ref_293_4">White</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 7;
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_295_9">RGB_Value</A></FONT> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Last);
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.short'Size;
+- <FONT COLOR=green><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_299_9">Color_Pair</A></FONT> <b>is</b> <b>range</b> 0 .. 255;
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'Size <b>use</b> 8;
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_301_12">Redefinable_Color_Pair</A></FONT> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> <b>range</b> 1 .. 255;
+- <FONT COLOR=green><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></FONT>
+- <FONT COLOR=green><EM>-- is fixed (Black &amp; White). A color pair is simply a combination of</EM></FONT>
+- <FONT COLOR=green><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></FONT>
+- <FONT COLOR=green><EM>-- the other for the background</EM></FONT>
++ <span class="comment"><EM>-- Constants for function- and special keys</EM></span>
++ <span class="symbol"><A NAME="ref_88_4">Key_None</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</A> - 1;
++ <span class="symbol"><A NAME="ref_90_4">Key_Min</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_98_4">KEY_MIN</A>;
++ <span class="symbol"><A NAME="ref_92_4">Key_Break</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_104_4">KEY_BREAK</A>;
++ <span class="symbol"><A NAME="ref_94_4">KEY_DOWN</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_105_4">KEY_DOWN</A>;
++ Key_Cursor_Down : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">KEY_DOWN</A>;
++ <span class="symbol"><A NAME="ref_97_4">KEY_UP</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_106_4">KEY_UP</A>;
++ Key_Cursor_Up : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_97_4">KEY_UP</A>;
++ <span class="symbol"><A NAME="ref_100_4">KEY_LEFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_107_4">KEY_LEFT</A>;
++ Key_Cursor_Left : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_100_4">KEY_LEFT</A>;
++ <span class="symbol"><A NAME="ref_103_4">KEY_RIGHT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_108_4">KEY_RIGHT</A>;
++ Key_Cursor_Right : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_103_4">KEY_RIGHT</A>;
++ <span class="symbol"><A NAME="ref_106_4">Key_Home</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_109_4">KEY_HOME</A>;
++ <span class="symbol"><A NAME="ref_108_4">Key_Backspace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_110_4">KEY_BACKSPACE</A>;
++ <span class="symbol"><A NAME="ref_110_4">Key_F0</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_111_4">KEY_F0</A>;
++ <span class="symbol"><A NAME="ref_112_4">Key_F1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_112_4">KEY_F1</A>;
++ <span class="symbol"><A NAME="ref_114_4">Key_F2</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_113_4">KEY_F2</A>;
++ <span class="symbol"><A NAME="ref_116_4">Key_F3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_114_4">KEY_F3</A>;
++ <span class="symbol"><A NAME="ref_118_4">Key_F4</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_115_4">KEY_F4</A>;
++ <span class="symbol"><A NAME="ref_120_4">Key_F5</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_116_4">KEY_F5</A>;
++ <span class="symbol"><A NAME="ref_122_4">Key_F6</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_117_4">KEY_F6</A>;
++ <span class="symbol"><A NAME="ref_124_4">Key_F7</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_118_4">KEY_F7</A>;
++ <span class="symbol"><A NAME="ref_126_4">Key_F8</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_119_4">KEY_F8</A>;
++ <span class="symbol"><A NAME="ref_128_4">Key_F9</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_120_4">KEY_F9</A>;
++ <span class="symbol"><A NAME="ref_130_4">Key_F10</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_121_4">KEY_F10</A>;
++ <span class="symbol"><A NAME="ref_132_4">Key_F11</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_122_4">KEY_F11</A>;
++ <span class="symbol"><A NAME="ref_134_4">Key_F12</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_123_4">KEY_F12</A>;
++ <span class="symbol"><A NAME="ref_136_4">Key_F13</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_124_4">KEY_F13</A>;
++ <span class="symbol"><A NAME="ref_138_4">Key_F14</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_125_4">KEY_F14</A>;
++ <span class="symbol"><A NAME="ref_140_4">Key_F15</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_126_4">KEY_F15</A>;
++ <span class="symbol"><A NAME="ref_142_4">Key_F16</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_127_4">KEY_F16</A>;
++ <span class="symbol"><A NAME="ref_144_4">Key_F17</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_128_4">KEY_F17</A>;
++ <span class="symbol"><A NAME="ref_146_4">Key_F18</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_129_4">KEY_F18</A>;
++ <span class="symbol"><A NAME="ref_148_4">Key_F19</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_130_4">KEY_F19</A>;
++ <span class="symbol"><A NAME="ref_150_4">Key_F20</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_131_4">KEY_F20</A>;
++ <span class="symbol"><A NAME="ref_152_4">Key_F21</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_132_4">KEY_F21</A>;
++ <span class="symbol"><A NAME="ref_154_4">Key_F22</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_133_4">KEY_F22</A>;
++ <span class="symbol"><A NAME="ref_156_4">Key_F23</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_134_4">KEY_F23</A>;
++ <span class="symbol"><A NAME="ref_158_4">Key_F24</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_135_4">KEY_F24</A>;
++ <span class="symbol"><A NAME="ref_160_4">KEY_DL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_136_4">KEY_DL</A>;
++ Key_Delete_Line : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_160_4">KEY_DL</A>;
++ <span class="symbol"><A NAME="ref_163_4">KEY_IL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_137_4">KEY_IL</A>;
++ Key_Insert_Line : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_163_4">KEY_IL</A>;
++ <span class="symbol"><A NAME="ref_166_4">KEY_DC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_138_4">KEY_DC</A>;
++ Key_Delete_Char : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_166_4">KEY_DC</A>;
++ <span class="symbol"><A NAME="ref_169_4">KEY_IC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_139_4">KEY_IC</A>;
++ Key_Insert_Char : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_169_4">KEY_IC</A>;
++ <span class="symbol"><A NAME="ref_172_4">KEY_EIC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_140_4">KEY_EIC</A>;
++ Key_Exit_Insert_Mode : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_172_4">KEY_EIC</A>;
++ <span class="symbol"><A NAME="ref_175_4">KEY_CLEAR</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_141_4">KEY_CLEAR</A>;
++ Key_Clear_Screen : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">KEY_CLEAR</A>;
++ <span class="symbol"><A NAME="ref_178_4">KEY_EOS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_142_4">KEY_EOS</A>;
++ Key_Clear_End_Of_Screen : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">KEY_EOS</A>;
++ <span class="symbol"><A NAME="ref_181_4">KEY_EOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_143_4">KEY_EOL</A>;
++ Key_Clear_End_Of_Line : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">KEY_EOL</A>;
++ <span class="symbol"><A NAME="ref_184_4">KEY_SF</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_144_4">KEY_SF</A>;
++ Key_Scroll_1_Forward : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">KEY_SF</A>;
++ <span class="symbol"><A NAME="ref_187_4">KEY_SR</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_145_4">KEY_SR</A>;
++ Key_Scroll_1_Backward : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">KEY_SR</A>;
++ <span class="symbol"><A NAME="ref_190_4">KEY_NPAGE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_146_4">KEY_NPAGE</A>;
++ Key_Next_Page : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">KEY_NPAGE</A>;
++ <span class="symbol"><A NAME="ref_193_4">KEY_PPAGE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_147_4">KEY_PPAGE</A>;
++ Key_Previous_Page : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">KEY_PPAGE</A>;
++ <span class="symbol"><A NAME="ref_196_4">KEY_STAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_148_4">KEY_STAB</A>;
++ Key_Set_Tab : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">KEY_STAB</A>;
++ <span class="symbol"><A NAME="ref_199_4">KEY_CTAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_149_4">KEY_CTAB</A>;
++ Key_Clear_Tab : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">KEY_CTAB</A>;
++ <span class="symbol"><A NAME="ref_202_4">KEY_CATAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_150_4">KEY_CATAB</A>;
++ Key_Clear_All_Tabs : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_202_4">KEY_CATAB</A>;
++ <span class="symbol"><A NAME="ref_205_4">KEY_ENTER</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_151_4">KEY_ENTER</A>;
++ Key_Enter_Or_Send : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_205_4">KEY_ENTER</A>;
++ <span class="symbol"><A NAME="ref_208_4">KEY_SRESET</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_152_4">KEY_SRESET</A>;
++ Key_Soft_Reset : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_208_4">KEY_SRESET</A>;
++ <span class="symbol"><A NAME="ref_211_4">Key_Reset</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_153_4">KEY_RESET</A>;
++ <span class="symbol"><A NAME="ref_213_4">Key_Print</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_154_4">KEY_PRINT</A>;
++ <span class="symbol"><A NAME="ref_215_4">KEY_LL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_155_4">KEY_LL</A>;
++ Key_Bottom : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_215_4">KEY_LL</A>;
++ <span class="symbol"><A NAME="ref_218_4">KEY_A1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_156_4">KEY_A1</A>;
++ Key_Upper_Left_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_218_4">KEY_A1</A>;
++ <span class="symbol"><A NAME="ref_221_4">KEY_A3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_157_4">KEY_A3</A>;
++ Key_Upper_Right_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_221_4">KEY_A3</A>;
++ <span class="symbol"><A NAME="ref_224_4">KEY_B2</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_158_4">KEY_B2</A>;
++ Key_Center_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_224_4">KEY_B2</A>;
++ <span class="symbol"><A NAME="ref_227_4">KEY_C1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_159_4">KEY_C1</A>;
++ Key_Lower_Left_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_227_4">KEY_C1</A>;
++ <span class="symbol"><A NAME="ref_230_4">KEY_C3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_160_4">KEY_C3</A>;
++ Key_Lower_Right_Of_Keypad : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_230_4">KEY_C3</A>;
++ <span class="symbol"><A NAME="ref_233_4">KEY_BTAB</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_161_4">KEY_BTAB</A>;
++ Key_Back_Tab : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_233_4">KEY_BTAB</A>;
++ <span class="symbol"><A NAME="ref_236_4">KEY_BEG</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_162_4">KEY_BEG</A>;
++ Key_Beginning : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_236_4">KEY_BEG</A>;
++ <span class="symbol"><A NAME="ref_239_4">Key_Cancel</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_163_4">KEY_CANCEL</A>;
++ <span class="symbol"><A NAME="ref_241_4">Key_Close</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_164_4">KEY_CLOSE</A>;
++ <span class="symbol"><A NAME="ref_243_4">Key_Command</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_165_4">KEY_COMMAND</A>;
++ <span class="symbol"><A NAME="ref_245_4">Key_Copy</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_166_4">KEY_COPY</A>;
++ <span class="symbol"><A NAME="ref_247_4">Key_Create</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_167_4">KEY_CREATE</A>;
++ <span class="symbol"><A NAME="ref_249_4">Key_End</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_168_4">KEY_END</A>;
++ <span class="symbol"><A NAME="ref_251_4">Key_Exit</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_169_4">KEY_EXIT</A>;
++ <span class="symbol"><A NAME="ref_253_4">Key_Find</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_170_4">KEY_FIND</A>;
++ <span class="symbol"><A NAME="ref_255_4">Key_Help</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_171_4">KEY_HELP</A>;
++ <span class="symbol"><A NAME="ref_257_4">Key_Mark</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_172_4">KEY_MARK</A>;
++ <span class="symbol"><A NAME="ref_259_4">Key_Message</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_173_4">KEY_MESSAGE</A>;
++ <span class="symbol"><A NAME="ref_261_4">Key_Move</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_174_4">KEY_MOVE</A>;
++ <span class="symbol"><A NAME="ref_263_4">Key_Next</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_175_4">KEY_NEXT</A>;
++ <span class="symbol"><A NAME="ref_265_4">Key_Open</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_176_4">KEY_OPEN</A>;
++ <span class="symbol"><A NAME="ref_267_4">Key_Options</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_177_4">KEY_OPTIONS</A>;
++ <span class="symbol"><A NAME="ref_269_4">Key_Previous</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_178_4">KEY_PREVIOUS</A>;
++ <span class="symbol"><A NAME="ref_271_4">Key_Redo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_179_4">KEY_REDO</A>;
++ <span class="symbol"><A NAME="ref_273_4">Key_Reference</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_180_4">KEY_REFERENCE</A>;
++ <span class="symbol"><A NAME="ref_275_4">Key_Refresh</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_181_4">KEY_REFRESH</A>;
++ <span class="symbol"><A NAME="ref_277_4">Key_Replace</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_182_4">KEY_REPLACE</A>;
++ <span class="symbol"><A NAME="ref_279_4">Key_Restart</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_183_4">KEY_RESTART</A>;
++ <span class="symbol"><A NAME="ref_281_4">Key_Resume</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_184_4">KEY_RESUME</A>;
++ <span class="symbol"><A NAME="ref_283_4">Key_Save</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_185_4">KEY_SAVE</A>;
++ <span class="symbol"><A NAME="ref_285_4">KEY_SBEG</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_186_4">KEY_SBEG</A>;
++ Key_Shift_Begin : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_285_4">KEY_SBEG</A>;
++ <span class="symbol"><A NAME="ref_288_4">KEY_SCANCEL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_187_4">KEY_SCANCEL</A>;
++ Key_Shift_Cancel : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_288_4">KEY_SCANCEL</A>;
++ <span class="symbol"><A NAME="ref_291_4">KEY_SCOMMAND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_188_4">KEY_SCOMMAND</A>;
++ Key_Shift_Command : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_291_4">KEY_SCOMMAND</A>;
++ <span class="symbol"><A NAME="ref_294_4">KEY_SCOPY</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_189_4">KEY_SCOPY</A>;
++ Key_Shift_Copy : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_294_4">KEY_SCOPY</A>;
++ <span class="symbol"><A NAME="ref_297_4">KEY_SCREATE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_190_4">KEY_SCREATE</A>;
++ Key_Shift_Create : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_297_4">KEY_SCREATE</A>;
++ <span class="symbol"><A NAME="ref_300_4">KEY_SDC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_191_4">KEY_SDC</A>;
++ Key_Shift_Delete_Char : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_300_4">KEY_SDC</A>;
++ <span class="symbol"><A NAME="ref_303_4">KEY_SDL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_192_4">KEY_SDL</A>;
++ Key_Shift_Delete_Line : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_303_4">KEY_SDL</A>;
++ <span class="symbol"><A NAME="ref_306_4">Key_Select</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_193_4">KEY_SELECT</A>;
++ <span class="symbol"><A NAME="ref_308_4">KEY_SEND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_194_4">KEY_SEND</A>;
++ Key_Shift_End : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_308_4">KEY_SEND</A>;
++ <span class="symbol"><A NAME="ref_311_4">KEY_SEOL</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_195_4">KEY_SEOL</A>;
++ Key_Shift_Clear_End_Of_Line : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_311_4">KEY_SEOL</A>;
++ <span class="symbol"><A NAME="ref_314_4">KEY_SEXIT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_196_4">KEY_SEXIT</A>;
++ Key_Shift_Exit : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_314_4">KEY_SEXIT</A>;
++ <span class="symbol"><A NAME="ref_317_4">KEY_SFIND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_197_4">KEY_SFIND</A>;
++ Key_Shift_Find : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_317_4">KEY_SFIND</A>;
++ <span class="symbol"><A NAME="ref_320_4">KEY_SHELP</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_198_4">KEY_SHELP</A>;
++ Key_Shift_Help : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_320_4">KEY_SHELP</A>;
++ <span class="symbol"><A NAME="ref_323_4">KEY_SHOME</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_199_4">KEY_SHOME</A>;
++ Key_Shift_Home : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_323_4">KEY_SHOME</A>;
++ <span class="symbol"><A NAME="ref_326_4">KEY_SIC</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_200_4">KEY_SIC</A>;
++ Key_Shift_Insert_Char : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_326_4">KEY_SIC</A>;
++ <span class="symbol"><A NAME="ref_329_4">KEY_SLEFT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_201_4">KEY_SLEFT</A>;
++ Key_Shift_Cursor_Left : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_329_4">KEY_SLEFT</A>;
++ <span class="symbol"><A NAME="ref_332_4">KEY_SMESSAGE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_202_4">KEY_SMESSAGE</A>;
++ Key_Shift_Message : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_332_4">KEY_SMESSAGE</A>;
++ <span class="symbol"><A NAME="ref_335_4">KEY_SMOVE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_203_4">KEY_SMOVE</A>;
++ Key_Shift_Move : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_335_4">KEY_SMOVE</A>;
++ <span class="symbol"><A NAME="ref_338_4">KEY_SNEXT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_204_4">KEY_SNEXT</A>;
++ Key_Shift_Next_Page : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_338_4">KEY_SNEXT</A>;
++ <span class="symbol"><A NAME="ref_341_4">KEY_SOPTIONS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_205_4">KEY_SOPTIONS</A>;
++ Key_Shift_Options : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_341_4">KEY_SOPTIONS</A>;
++ <span class="symbol"><A NAME="ref_344_4">KEY_SPREVIOUS</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_206_4">KEY_SPREVIOUS</A>;
++ Key_Shift_Previous_Page : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_344_4">KEY_SPREVIOUS</A>;
++ <span class="symbol"><A NAME="ref_347_4">KEY_SPRINT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_207_4">KEY_SPRINT</A>;
++ Key_Shift_Print : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_347_4">KEY_SPRINT</A>;
++ <span class="symbol"><A NAME="ref_350_4">KEY_SREDO</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_208_4">KEY_SREDO</A>;
++ Key_Shift_Redo : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_350_4">KEY_SREDO</A>;
++ <span class="symbol"><A NAME="ref_353_4">KEY_SREPLACE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_209_4">KEY_SREPLACE</A>;
++ Key_Shift_Replace : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_353_4">KEY_SREPLACE</A>;
++ <span class="symbol"><A NAME="ref_356_4">KEY_SRIGHT</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_210_4">KEY_SRIGHT</A>;
++ Key_Shift_Cursor_Right : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_356_4">KEY_SRIGHT</A>;
++ <span class="symbol"><A NAME="ref_359_4">KEY_SRSUME</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_211_4">KEY_SRSUME</A>;
++ Key_Shift_Resume : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_359_4">KEY_SRSUME</A>;
++ <span class="symbol"><A NAME="ref_362_4">KEY_SSAVE</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_212_4">KEY_SSAVE</A>;
++ Key_Shift_Save : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_362_4">KEY_SSAVE</A>;
++ <span class="symbol"><A NAME="ref_365_4">KEY_SSUSPEND</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_213_4">KEY_SSUSPEND</A>;
++ Key_Shift_Suspend : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_365_4">KEY_SSUSPEND</A>;
++ <span class="symbol"><A NAME="ref_368_4">KEY_SUNDO</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_214_4">KEY_SUNDO</A>;
++ Key_Shift_Undo : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_368_4">KEY_SUNDO</A>;
++ <span class="symbol"><A NAME="ref_371_4">Key_Suspend</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_215_4">KEY_SUSPEND</A>;
++ <span class="symbol"><A NAME="ref_373_4">Key_Undo</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_216_4">KEY_UNDO</A>;
++ <span class="symbol"><A NAME="ref_375_4">Key_Mouse</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_217_4">KEY_MOUSE</A>;
++ <span class="symbol"><A NAME="ref_377_4">Key_Resize</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_218_4">KEY_RESIZE</A>;
++ <span class="symbol"><A NAME="ref_379_4">Key_Max</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>
++ := <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>'Last;
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_382_12">User_Key_Code</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>
++ <b>range</b> (<A HREF="terminal_interface-curses__ads.htm#ref_379_4">Key_Max</A> + 129) .. <A HREF="terminal_interface-curses__ads.htm#ref_66_9">Key_Code</A>'Last;
++ <span class="comment"><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></span>
++ <span class="comment"><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></span>
++
++ <span class="comment"><EM>--------------------------------------------------------------------------</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_389_9">Color_Number</A></span> <b>is</b> <b>range</b> -1 .. Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last);
++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Size;
++ <span class="comment"><EM>-- (n)curses uses a short for the color index</EM></span>
++ <span class="comment"><EM>-- The model is, that a Color_Number is an index into an array of</EM></span>
++ <span class="comment"><EM>-- (potentially) definable colors. Some of those indices are</EM></span>
++ <span class="comment"><EM>-- predefined (see below), although they may not really exist.</EM></span>
++
++ <span class="symbol"><A NAME="ref_396_4">Black</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_69_4">COLOR_BLACK</A>;
++ <span class="symbol"><A NAME="ref_397_4">Red</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_70_4">COLOR_RED</A>;
++ <span class="symbol"><A NAME="ref_398_4">Green</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_71_4">COLOR_GREEN</A>;
++ <span class="symbol"><A NAME="ref_399_4">Yellow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_72_4">COLOR_YELLOW</A>;
++ <span class="symbol"><A NAME="ref_400_4">Blue</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_73_4">COLOR_BLUE</A>;
++ <span class="symbol"><A NAME="ref_401_4">Magenta</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_74_4">COLOR_MAGENTA</A>;
++ <span class="symbol"><A NAME="ref_402_4">Cyan</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_75_4">COLOR_CYAN</A>;
++ <span class="symbol"><A NAME="ref_403_4">White</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_76_4">COLOR_WHITE</A>;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_405_9">RGB_Value</A></span> <b>is</b> <b>range</b> 0 .. Integer (<A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Last);
++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>'Size <b>use</b> <A HREF="interfac__ads.htm#ref_36_9">Interfaces</A>.C.short'Size;
++ <span class="comment"><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_409_9">Color_Pair</A></span> <b>is</b> <b>range</b> 0 .. 255;
++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'Size <b>use</b> 8;
++ <b>subtype</b> <span class="symbol"><A NAME="ref_411_12">Redefinable_Color_Pair</A></span> <b>is</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> <b>range</b> 1 .. 255;
++ <span class="comment"><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></span>
++ <span class="comment"><EM>-- is fixed (Black &amp; White). A color pair is simply a combination of</EM></span>
++ <span class="comment"><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></span>
++ <span class="comment"><EM>-- the other for the background</EM></span>
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_307_9">Character_Attribute_Set</A></FONT> <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_417_9">Character_Attribute_Set</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_309_10">Stand_Out</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_310_10">Under_Line</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_311_10">Reverse_Video</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_312_10">Blink</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_313_10">Dim_Character</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_314_10">Bold_Character</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_315_10">Alternate_Character_Set</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_316_10">Invisible_Character</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_317_10">Protected_Character</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_318_10">Horizontal</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_319_10">Left</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_320_10">Low</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_321_10">Right</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_322_10">Top</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_323_10">Vertical</A></FONT> : Boolean;
+- <FONT COLOR=red><A NAME="ref_324_10">Unused</A></FONT> : Boolean;
++ <span class="symbol"><A NAME="ref_419_10">Stand_Out</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_420_10">Under_Line</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_421_10">Reverse_Video</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_422_10">Blink</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_423_10">Dim_Character</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_424_10">Bold_Character</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_425_10">Protected_Character</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_426_10">Invisible_Character</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_427_10">Alternate_Character_Set</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_428_10">Horizontal</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_429_10">Left</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_430_10">Low</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_431_10">Right</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_432_10">Top</A></span> : Boolean;
++ <span class="symbol"><A NAME="ref_433_10">Vertical</A></span> : Boolean;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>);
+
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_309_10">Stand_Out</A> <b>at</b> 0 <b>range</b> 0 .. 0;
+- <A HREF="terminal_interface-curses__ads.htm#ref_310_10">Under_Line</A> <b>at</b> 0 <b>range</b> 1 .. 1;
+- <A HREF="terminal_interface-curses__ads.htm#ref_311_10">Reverse_Video</A> <b>at</b> 0 <b>range</b> 2 .. 2;
+- <A HREF="terminal_interface-curses__ads.htm#ref_312_10">Blink</A> <b>at</b> 0 <b>range</b> 3 .. 3;
+- <A HREF="terminal_interface-curses__ads.htm#ref_313_10">Dim_Character</A> <b>at</b> 0 <b>range</b> 4 .. 4;
+- <A HREF="terminal_interface-curses__ads.htm#ref_314_10">Bold_Character</A> <b>at</b> 0 <b>range</b> 5 .. 5;
+- <A HREF="terminal_interface-curses__ads.htm#ref_315_10">Alternate_Character_Set</A> <b>at</b> 0 <b>range</b> 6 .. 6;
+- <A HREF="terminal_interface-curses__ads.htm#ref_316_10">Invisible_Character</A> <b>at</b> 0 <b>range</b> 7 .. 7;
+- <A HREF="terminal_interface-curses__ads.htm#ref_317_10">Protected_Character</A> <b>at</b> 0 <b>range</b> 8 .. 8;
+- <A HREF="terminal_interface-curses__ads.htm#ref_318_10">Horizontal</A> <b>at</b> 0 <b>range</b> 9 .. 9;
+- <A HREF="terminal_interface-curses__ads.htm#ref_319_10">Left</A> <b>at</b> 0 <b>range</b> 10 .. 10;
+- <A HREF="terminal_interface-curses__ads.htm#ref_320_10">Low</A> <b>at</b> 0 <b>range</b> 11 .. 11;
+- <A HREF="terminal_interface-curses__ads.htm#ref_321_10">Right</A> <b>at</b> 0 <b>range</b> 12 .. 12;
+- <A HREF="terminal_interface-curses__ads.htm#ref_322_10">Top</A> <b>at</b> 0 <b>range</b> 13 .. 13;
+- <A HREF="terminal_interface-curses__ads.htm#ref_323_10">Vertical</A> <b>at</b> 0 <b>range</b> 14 .. 14;
+- <A HREF="terminal_interface-curses__ads.htm#ref_324_10">Unused</A> <b>at</b> 0 <b>range</b> 15 .. 15;
++ <A HREF="terminal_interface-curses__ads.htm#ref_419_10">Stand_Out</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_35_4">A_STANDOUT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_36_4">A_STANDOUT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_420_10">Under_Line</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_37_4">A_UNDERLINE_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_38_4">A_UNDERLINE_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_421_10">Reverse_Video</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_39_4">A_REVERSE_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_40_4">A_REVERSE_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_422_10">Blink</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_41_4">A_BLINK_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_42_4">A_BLINK_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_423_10">Dim_Character</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_43_4">A_DIM_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_44_4">A_DIM_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_424_10">Bold_Character</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_45_4">A_BOLD_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_46_4">A_BOLD_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_425_10">Protected_Character</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_47_4">A_PROTECT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_48_4">A_PROTECT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_426_10">Invisible_Character</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_49_4">A_INVIS_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_50_4">A_INVIS_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_427_10">Alternate_Character_Set</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_51_4">A_ALTCHARSET_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_52_4">A_ALTCHARSET_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_428_10">Horizontal</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_53_4">A_HORIZONTAL_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_54_4">A_HORIZONTAL_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_429_10">Left</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_55_4">A_LEFT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_56_4">A_LEFT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_430_10">Low</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_57_4">A_LOW_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_58_4">A_LOW_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_431_10">Right</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_59_4">A_RIGHT_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_60_4">A_RIGHT_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_432_10">Top</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_61_4">A_TOP_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_62_4">A_TOP_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_433_10">Vertical</A> <b>at</b> 0 <b>range</b>
++ <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_63_4">A_VERTICAL_First</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_64_4">A_VERTICAL_Last</A> - <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>;
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>'Size <b>use</b> 16;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
+- <FONT COLOR=green><EM>-- (n)curses uses all but the lowest 16 Bits for Attributes.</EM></FONT>
+
+- <FONT COLOR=red><A NAME="ref_352_4">Normal_Video</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False);
++ <span class="symbol"><A NAME="ref_485_4">Normal_Video</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := (<b>others</b> =&gt; False);
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_354_9">Attributed_Character</A></FONT> <b>is</b>
++ <b>type</b> <span class="symbol"><A NAME="ref_487_9">Attributed_Character</A></span> <b>is</b>
+ <b>record</b>
+- <FONT COLOR=red><A NAME="ref_356_10">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_357_10">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+- <FONT COLOR=red><A NAME="ref_358_10">Ch</A></FONT> : Character;
++ <span class="symbol"><A NAME="ref_489_10">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_490_10">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>;
++ <span class="symbol"><A NAME="ref_491_10">Ch</A></span> : Character;
+ <b>end</b> <b>record</b>;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- This is the counterpart for the chtype in C.</EM></FONT>
++ <b>pragma</b> Convention (C_Pass_By_Copy, <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- This is the counterpart for the chtype in C.</EM></span>
+
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> <b>use</b>
++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> <b>use</b>
+ <b>record</b>
+- <A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> <b>at</b> 0 <b>range</b> 0 .. 7;
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> <b>at</b> 0 <b>range</b> 8 .. 15;
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> <b>at</b> 0 <b>range</b> 16 .. 31;
++ <A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_29_4">A_CHARTEXT_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_30_4">A_CHARTEXT_Last</A>;
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_31_4">A_COLOR_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_32_4">A_COLOR_Last</A>;
++ <b>pragma</b> Warnings (Off);
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> <b>at</b> 0 <b>range</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_33_4">Attr_First</A>
++ .. <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_34_4">Attr_Last</A>;
++ <b>pragma</b> Warnings (On);
+ <b>end</b> <b>record</b>;
+- <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>'Size <b>use</b> 32;
+- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
+- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
+-
+- <FONT COLOR=red><A NAME="ref_373_4">Default_Character</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>
+- := (<A HREF="terminal_interface-curses__ads.htm#ref_358_10">Ch</A> =&gt; Character'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_357_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+- <A HREF="terminal_interface-curses__ads.htm#ref_356_10">Attr</A> =&gt; (<b>others</b> =&gt; False)); <FONT COLOR=green><EM>-- preelaboratable Normal_Video</EM></FONT>
+-
+- <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <b>pragma</b> Pack (Attributed_String);
+- <FONT COLOR=green><EM>-- In this binding we allow strings of attributed characters.</EM></FONT>
+-
+- <FONT COLOR=green><EM>------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
+- <FONT COLOR=green><EM>------------------</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_385_4">Curses_Exception</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_386_4">Wrong_Curses_Version</A></FONT> : <b>exception</b>;
+-
+- <FONT COLOR=green><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT>
+- <FONT COLOR=green><EM>-- subpackets for Menu and Forms handling.</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_391_4">Eti_System_Error</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_392_4">Eti_Bad_Argument</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_393_4">Eti_Posted</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_394_4">Eti_Connected</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_395_4">Eti_Bad_State</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_396_4">Eti_No_Room</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_397_4">Eti_Not_Posted</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_398_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_399_4">Eti_No_Match</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_400_4">Eti_Not_Selectable</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_401_4">Eti_Not_Connected</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_402_4">Eti_Request_Denied</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_403_4">Eti_Invalid_Field</A></FONT> : <b>exception</b>;
+- <FONT COLOR=red><A NAME="ref_404_4">Eti_Current</A></FONT> : <b>exception</b>;
+-
+- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
+- <FONT COLOR=green><EM>-- External C variables</EM></FONT>
+- <FONT COLOR=green><EM>-- Conceptually even in C this are kind of constants, but they are</EM></FONT>
+- <FONT COLOR=green><EM>-- initialized and sometimes changed by the library routines at runtime</EM></FONT>
+- <FONT COLOR=green><EM>-- depending on the type of terminal. I believe the best way to model</EM></FONT>
+- <FONT COLOR=green><EM>-- this is to use functions.</EM></FONT>
+- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_414_13" HREF="terminal_interface-curses__adb.htm#ref_2355_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_414_13">Lines</A>);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_417_13" HREF="terminal_interface-curses__adb.htm#ref_2363_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_417_13">Columns</A>);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_420_13" HREF="terminal_interface-curses__adb.htm#ref_2371_13">Tab_Size</A></FONT> <b>return</b> Natural;
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_420_13">Tab_Size</A>);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_423_13" HREF="terminal_interface-curses__adb.htm#ref_2379_13">Number_Of_Colors</A></FONT> <b>return</b> Natural;
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_423_13">Number_Of_Colors</A>);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_426_13" HREF="terminal_interface-curses__adb.htm#ref_2387_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural;
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_426_13">Number_Of_Color_Pairs</A>);
+-
+- <b>type</b> C_ACS_Map <b>is</b> <b>array</b> (Character'Val (0) .. Character'Val (127))
+- <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <FONT COLOR=red><A NAME="ref_431_4">ACS_Map</A></FONT> : C_ACS_Map;
+- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__ads.htm#ref_431_4">ACS_Map</A>, "acs_map");
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- Constants for several characters from the Alternate Character Set</EM></FONT>
+- <FONT COLOR=green><EM>-- You must use these constants as indices into the ACS_Map array</EM></FONT>
+- <FONT COLOR=green><EM>-- to get the corresponding attributed character at runtime.</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_439_4">ACS_Upper_Left_Corner</A></FONT> : <b>constant</b> Character := 'l';
+- <FONT COLOR=red><A NAME="ref_440_4">ACS_Lower_Left_Corner</A></FONT> : <b>constant</b> Character := 'm';
+- <FONT COLOR=red><A NAME="ref_441_4">ACS_Upper_Right_Corner</A></FONT> : <b>constant</b> Character := 'k';
+- <FONT COLOR=red><A NAME="ref_442_4">ACS_Lower_Right_Corner</A></FONT> : <b>constant</b> Character := 'j';
+- <FONT COLOR=red><A NAME="ref_443_4">ACS_Left_Tee</A></FONT> : <b>constant</b> Character := 't';
+- <FONT COLOR=red><A NAME="ref_444_4">ACS_Right_Tee</A></FONT> : <b>constant</b> Character := 'u';
+- <FONT COLOR=red><A NAME="ref_445_4">ACS_Bottom_Tee</A></FONT> : <b>constant</b> Character := 'v';
+- <FONT COLOR=red><A NAME="ref_446_4">ACS_Top_Tee</A></FONT> : <b>constant</b> Character := 'w';
+- <FONT COLOR=red><A NAME="ref_447_4">ACS_Horizontal_Line</A></FONT> : <b>constant</b> Character := 'q';
+- <FONT COLOR=red><A NAME="ref_448_4">ACS_Vertical_Line</A></FONT> : <b>constant</b> Character := 'x';
+- <FONT COLOR=red><A NAME="ref_449_4">ACS_Plus_Symbol</A></FONT> : <b>constant</b> Character := 'n';
+- <FONT COLOR=red><A NAME="ref_450_4">ACS_Scan_Line_1</A></FONT> : <b>constant</b> Character := 'o';
+- <FONT COLOR=red><A NAME="ref_451_4">ACS_Scan_Line_9</A></FONT> : <b>constant</b> Character := 's';
+- <FONT COLOR=red><A NAME="ref_452_4">ACS_Diamond</A></FONT> : <b>constant</b> Character := Character'Val (96);
+- <FONT COLOR=red><A NAME="ref_453_4">ACS_Checker_Board</A></FONT> : <b>constant</b> Character := 'a';
+- <FONT COLOR=red><A NAME="ref_454_4">ACS_Degree</A></FONT> : <b>constant</b> Character := 'f';
+- <FONT COLOR=red><A NAME="ref_455_4">ACS_Plus_Minus</A></FONT> : <b>constant</b> Character := 'g';
+- <FONT COLOR=red><A NAME="ref_456_4">ACS_Bullet</A></FONT> : <b>constant</b> Character := '~';
+- <FONT COLOR=red><A NAME="ref_457_4">ACS_Left_Arrow</A></FONT> : <b>constant</b> Character := ',';
+- <FONT COLOR=red><A NAME="ref_458_4">ACS_Right_Arrow</A></FONT> : <b>constant</b> Character := '+';
+- <FONT COLOR=red><A NAME="ref_459_4">ACS_Down_Arrow</A></FONT> : <b>constant</b> Character := '.';
+- <FONT COLOR=red><A NAME="ref_460_4">ACS_Up_Arrow</A></FONT> : <b>constant</b> Character := '-';
+- <FONT COLOR=red><A NAME="ref_461_4">ACS_Board_Of_Squares</A></FONT> : <b>constant</b> Character := 'h';
+- <FONT COLOR=red><A NAME="ref_462_4">ACS_Lantern</A></FONT> : <b>constant</b> Character := 'i';
+- <FONT COLOR=red><A NAME="ref_463_4">ACS_Solid_Block</A></FONT> : <b>constant</b> Character := '0';
+- <FONT COLOR=red><A NAME="ref_464_4">ACS_Scan_Line_3</A></FONT> : <b>constant</b> Character := 'p';
+- <FONT COLOR=red><A NAME="ref_465_4">ACS_Scan_Line_7</A></FONT> : <b>constant</b> Character := 'r';
+- <FONT COLOR=red><A NAME="ref_466_4">ACS_Less_Or_Equal</A></FONT> : <b>constant</b> Character := 'y';
+- <FONT COLOR=red><A NAME="ref_467_4">ACS_Greater_Or_Equal</A></FONT> : <b>constant</b> Character := 'z';
+- <FONT COLOR=red><A NAME="ref_468_4">ACS_PI</A></FONT> : <b>constant</b> Character := '{';
+- <FONT COLOR=red><A NAME="ref_469_4">ACS_Not_Equal</A></FONT> : <b>constant</b> Character := '|';
+- <FONT COLOR=red><A NAME="ref_470_4">ACS_Sterling</A></FONT> : <b>constant</b> Character := '}';
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Not implemented: newterm, set_term, delscreen</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_478_13" HREF="terminal_interface-curses__adb.htm#ref_2339_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_483_13" HREF="terminal_interface-curses__adb.htm#ref_2347_13">Current_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_483_13">Current_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_488_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></FONT>;
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_491_14">Init_Windows</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_488_14">Init_Screen</A>);
+- <FONT COLOR=green><EM>-- pragma Inline (Init_Windows);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_499_14">End_Screen</A></FONT> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A>;
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_497_14">End_Windows</A>);
+- <FONT COLOR=green><EM>-- pragma Inline (End_Screen);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_504_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></FONT> <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_504_13">Is_End_Window</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_513_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_513_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_514_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_515_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: move()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_513_14">Move_Cursor</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_525_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_525_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_526_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: addch()</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_530_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_530_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_531_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></FONT> : Character);
+- <FONT COLOR=green><EM>-- Add a single character at the current logical cursor position to</EM></FONT>
+- <FONT COLOR=green><EM>-- the window. Use the current windows attributes.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_536_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_537_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvaddch()</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_544_14" HREF="terminal_interface-curses__adb.htm#ref_189_14">Add</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_545_7" HREF="terminal_interface-curses__adb.htm#ref_190_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_546_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_548_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Ch</A></FONT> : Character);
+- <FONT COLOR=green><EM>-- Move to the position and add a single character into the window</EM></FONT>
+- <FONT COLOR=green><EM>-- There are more Add routines, so the Inline pragma follows later</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses__adb.htm#ref_204_14">Add_With_Immediate_Echo</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_554_7" HREF="terminal_interface-curses__adb.htm#ref_205_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_555_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: echochar()</EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_559_14" HREF="terminal_interface-curses__adb.htm#ref_217_14">Add_With_Immediate_Echo</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_560_7" HREF="terminal_interface-curses__adb.htm#ref_218_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_561_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Ch</A></FONT> : Character);
+- <FONT COLOR=green><EM>-- Add a character and do an immediate refresh of the screen.</EM></FONT>
++ <b>for</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>'Size <b>use</b> <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_65_4">chtype_Size</A>;
++
++ <span class="symbol"><A NAME="ref_509_4">Default_Character</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>
++ := (<A HREF="terminal_interface-curses__ads.htm#ref_491_10">Ch</A> =&gt; Character'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_490_10">Color</A> =&gt; <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First,
++ <A HREF="terminal_interface-curses__ads.htm#ref_489_10">Attr</A> =&gt; (<b>others</b> =&gt; False)); <span class="comment"><EM>-- preelaboratable Normal_Video</EM></span>
++
++ <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <b>pragma</b> Convention (C, Attributed_String);
++ <span class="comment"><EM>-- In this binding we allow strings of attributed characters.</EM></span>
++
++ <span class="comment"><EM>------------------</EM></span>
++ <span class="comment"><EM>-- Exceptions --</EM></span>
++ <span class="comment"><EM>------------------</EM></span>
++ <span class="symbol"><A NAME="ref_521_4">Curses_Exception</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_522_4">Wrong_Curses_Version</A></span> : <b>exception</b>;
++
++ <span class="comment"><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></span>
++ <span class="comment"><EM>-- subpackets for Menu and Forms handling.</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <span class="symbol"><A NAME="ref_527_4">Eti_System_Error</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_528_4">Eti_Bad_Argument</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_529_4">Eti_Posted</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_530_4">Eti_Connected</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_531_4">Eti_Bad_State</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_532_4">Eti_No_Room</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_533_4">Eti_Not_Posted</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_534_4">Eti_Unknown_Command</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_535_4">Eti_No_Match</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_536_4">Eti_Not_Selectable</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_537_4">Eti_Not_Connected</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_538_4">Eti_Request_Denied</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_539_4">Eti_Invalid_Field</A></span> : <b>exception</b>;
++ <span class="symbol"><A NAME="ref_540_4">Eti_Current</A></span> : <b>exception</b>;
++
++ <span class="comment"><EM>--------------------------------------------------------------------------</EM></span>
++ <span class="comment"><EM>-- External C variables</EM></span>
++ <span class="comment"><EM>-- Conceptually even in C this are kind of constants, but they are</EM></span>
++ <span class="comment"><EM>-- initialized and sometimes changed by the library routines at runtime</EM></span>
++ <span class="comment"><EM>-- depending on the type of terminal. I believe the best way to model</EM></span>
++ <span class="comment"><EM>-- this is to use functions.</EM></span>
++ <span class="comment"><EM>--------------------------------------------------------------------------</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_550_13" HREF="terminal_interface-curses__adb.htm#ref_2355_13">Lines</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_550_13">Lines</A>);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_553_13" HREF="terminal_interface-curses__adb.htm#ref_2363_13">Columns</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_553_13">Columns</A>);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_556_13" HREF="terminal_interface-curses__adb.htm#ref_2371_13">Tab_Size</A></span> <b>return</b> Natural;
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_556_13">Tab_Size</A>);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_559_13" HREF="terminal_interface-curses__adb.htm#ref_2380_13">Number_Of_Colors</A></span> <b>return</b> Natural;
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_559_13">Number_Of_Colors</A>);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_562_13" HREF="terminal_interface-curses__adb.htm#ref_2388_13">Number_Of_Color_Pairs</A></span> <b>return</b> Natural;
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_562_13">Number_Of_Color_Pairs</A>);
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_565_12">ACS_Index</A></span> <b>is</b> Character <b>range</b>
++ Character'Val (0) .. Character'Val (127);
++ <b>function</b> <span class="symbol"><A NAME="ref_567_13">ACS_Map</A></span> (<span class="symbol"><A NAME="ref_567_22" HREF="terminal_interface-curses__ads.htm#ref_567_13">Index</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <b>pragma</b> Import (C, ACS_Map, "acs_map_as_function");
++
++ <span class="comment"><EM>-- Constants for several characters from the Alternate Character Set</EM></span>
++ <span class="comment"><EM>-- You must use these constants as indices into the ACS_Map function</EM></span>
++ <span class="comment"><EM>-- to get the corresponding attributed character at runtime</EM></span>
++ <span class="symbol"><A NAME="ref_573_4">ACS_Upper_Left_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_222_4">ACS_ULCORNER</A>);
++ <span class="symbol"><A NAME="ref_575_4">ACS_Lower_Left_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_223_4">ACS_LLCORNER</A>);
++ <span class="symbol"><A NAME="ref_577_4">ACS_Upper_Right_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_224_4">ACS_URCORNER</A>);
++ <span class="symbol"><A NAME="ref_579_4">ACS_Lower_Right_Corner</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_225_4">ACS_LRCORNER</A>);
++ <span class="symbol"><A NAME="ref_581_4">ACS_Left_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_226_4">ACS_LTEE</A>);
++ <span class="symbol"><A NAME="ref_583_4">ACS_Right_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_227_4">ACS_RTEE</A>);
++ <span class="symbol"><A NAME="ref_585_4">ACS_Bottom_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_228_4">ACS_BTEE</A>);
++ <span class="symbol"><A NAME="ref_587_4">ACS_Top_Tee</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_229_4">ACS_TTEE</A>);
++ <span class="symbol"><A NAME="ref_589_4">ACS_Horizontal_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_230_4">ACS_HLINE</A>);
++ <span class="symbol"><A NAME="ref_591_4">ACS_Vertical_Line</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_231_4">ACS_VLINE</A>);
++ <span class="symbol"><A NAME="ref_593_4">ACS_Plus_Symbol</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_232_4">ACS_PLUS</A>);
++ <span class="symbol"><A NAME="ref_595_4">ACS_Scan_Line_1</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_233_4">ACS_S1</A>);
++ <span class="symbol"><A NAME="ref_597_4">ACS_Scan_Line_9</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_234_4">ACS_S9</A>);
++ <span class="symbol"><A NAME="ref_599_4">ACS_Diamond</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_235_4">ACS_DIAMOND</A>);
++ <span class="symbol"><A NAME="ref_601_4">ACS_Checker_Board</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_236_4">ACS_CKBOARD</A>);
++ <span class="symbol"><A NAME="ref_603_4">ACS_Degree</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_237_4">ACS_DEGREE</A>);
++ <span class="symbol"><A NAME="ref_605_4">ACS_Plus_Minus</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_238_4">ACS_PLMINUS</A>);
++ <span class="symbol"><A NAME="ref_607_4">ACS_Bullet</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_239_4">ACS_BULLET</A>);
++ <span class="symbol"><A NAME="ref_609_4">ACS_Left_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_240_4">ACS_LARROW</A>);
++ <span class="symbol"><A NAME="ref_611_4">ACS_Right_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_241_4">ACS_RARROW</A>);
++ <span class="symbol"><A NAME="ref_613_4">ACS_Down_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_242_4">ACS_DARROW</A>);
++ <span class="symbol"><A NAME="ref_615_4">ACS_Up_Arrow</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_243_4">ACS_UARROW</A>);
++ <span class="symbol"><A NAME="ref_617_4">ACS_Board_Of_Squares</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_244_4">ACS_BOARD</A>);
++ <span class="symbol"><A NAME="ref_619_4">ACS_Lantern</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_245_4">ACS_LANTERN</A>);
++ <span class="symbol"><A NAME="ref_621_4">ACS_Solid_Block</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_246_4">ACS_BLOCK</A>);
++ <span class="symbol"><A NAME="ref_623_4">ACS_Scan_Line_3</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_247_4">ACS_S3</A>);
++ <span class="symbol"><A NAME="ref_625_4">ACS_Scan_Line_7</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_248_4">ACS_S7</A>);
++ <span class="symbol"><A NAME="ref_627_4">ACS_Less_Or_Equal</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_249_4">ACS_LEQUAL</A>);
++ <span class="symbol"><A NAME="ref_629_4">ACS_Greater_Or_Equal</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_250_4">ACS_GEQUAL</A>);
++ <span class="symbol"><A NAME="ref_631_4">ACS_PI</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_251_4">ACS_PI</A>);
++ <span class="symbol"><A NAME="ref_633_4">ACS_Not_Equal</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_252_4">ACS_NEQUAL</A>);
++ <span class="symbol"><A NAME="ref_635_4">ACS_Sterling</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_565_12">ACS_Index</A>
++ := Character'Val (<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_253_4">ACS_STERLING</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_initscr.3x.html">curs_initscr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Not implemented: newterm, set_term, delscreen</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_1"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_644_13">Standard_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></span>
++ <b>pragma</b> Import (C, Standard_Window, "stdscr_as_function");
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_2"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_650_13">Current_Window</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">curscr</A></EM></span>
++ <b>pragma</b> Import (C, Current_Window, "curscr_as_function");
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_650_13">Current_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_3"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_656_14" HREF="terminal_interface-curses__adb.htm#ref_98_14">Init_Screen</A></span>;
++
++ <span class="comment"><EM>-- #1A NAME="AFU_4"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_659_14">Init_Windows</A></span> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_656_14">Init_Screen</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_656_14">Init_Screen</A>);
++ <span class="comment"><EM>-- pragma Inline (Init_Windows);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_5"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_665_14" HREF="terminal_interface-curses__adb.htm#ref_111_14">End_Windows</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_667_14">End_Screen</A></span> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_665_14">End_Windows</A>;
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_665_14">End_Windows</A>);
++ <span class="comment"><EM>-- pragma Inline (End_Screen);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_6"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_672_13" HREF="terminal_interface-curses__adb.htm#ref_121_13">Is_End_Window</A></span> <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_672_13">Is_End_Window</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_7"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_681_14" HREF="terminal_interface-curses__adb.htm#ref_133_14">Move_Cursor</A></span> (<span class="symbol"><A NAME="ref_681_27" HREF="terminal_interface-curses__adb.htm#ref_133_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_682_27" HREF="terminal_interface-curses__adb.htm#ref_134_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_683_27" HREF="terminal_interface-curses__adb.htm#ref_135_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></span>
++ <span class="comment"><EM>-- AKA: move()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_681_14">Move_Cursor</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_8"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_693_14" HREF="terminal_interface-curses__adb.htm#ref_148_14">Add</A></span> (<span class="symbol"><A NAME="ref_693_19" HREF="terminal_interface-curses__adb.htm#ref_148_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_694_19" HREF="terminal_interface-curses__adb.htm#ref_149_19">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: addch()</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_698_14" HREF="terminal_interface-curses__adb.htm#ref_160_14">Add</A></span> (<span class="symbol"><A NAME="ref_698_19" HREF="terminal_interface-curses__adb.htm#ref_160_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_699_19" HREF="terminal_interface-curses__adb.htm#ref_161_19">Ch</A></span> : Character);
++ <span class="comment"><EM>-- Add a single character at the current logical cursor position to</EM></span>
++ <span class="comment"><EM>-- the window. Use the current windows attributes.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_9"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_704_14" HREF="terminal_interface-curses__adb.htm#ref_170_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_171_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_172_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_173_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_174_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvaddch()</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_712_14" HREF="terminal_interface-curses__adb.htm#ref_190_14">Add</A></span>
++ (<span class="symbol"><A NAME="ref_713_7" HREF="terminal_interface-curses__adb.htm#ref_191_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_714_7" HREF="terminal_interface-curses__adb.htm#ref_192_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_715_7" HREF="terminal_interface-curses__adb.htm#ref_193_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_716_7" HREF="terminal_interface-curses__adb.htm#ref_194_7">Ch</A></span> : Character);
++ <span class="comment"><EM>-- Move to the position and add a single character into the window</EM></span>
++ <span class="comment"><EM>-- There are more Add routines, so the Inline pragma follows later</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_10"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_721_14" HREF="terminal_interface-curses__adb.htm#ref_205_14">Add_With_Immediate_Echo</A></span>
++ (<span class="symbol"><A NAME="ref_722_7" HREF="terminal_interface-curses__adb.htm#ref_206_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_207_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></span>
++ <span class="comment"><EM>-- AKA: echochar()</EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_727_14" HREF="terminal_interface-curses__adb.htm#ref_218_14">Add_With_Immediate_Echo</A></span>
++ (<span class="symbol"><A NAME="ref_728_7" HREF="terminal_interface-curses__adb.htm#ref_219_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_729_7" HREF="terminal_interface-curses__adb.htm#ref_220_7">Ch</A></span> : Character);
++ <span class="comment"><EM>-- Add a character and do an immediate refresh of the screen.</EM></span>
+ <b>pragma</b> Inline (Add_With_Immediate_Echo);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: wcursyncup</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_571_13" HREF="terminal_interface-curses__adb.htm#ref_229_13">Create</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_572_7" HREF="terminal_interface-curses__adb.htm#ref_229_21">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_573_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_574_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_575_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></FONT>
+- <FONT COLOR=green><EM>-- the C version lets them be 0, see the man page.</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A>);
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_window.3x.html">curs_window.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not Implemented: wcursyncup</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_11"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_739_13" HREF="terminal_interface-curses__adb.htm#ref_230_13">Create</A></span>
++ (<span class="symbol"><A NAME="ref_740_7" HREF="terminal_interface-curses__adb.htm#ref_230_21">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_741_7" HREF="terminal_interface-curses__adb.htm#ref_231_21">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_742_7" HREF="terminal_interface-curses__adb.htm#ref_232_21">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_743_7" HREF="terminal_interface-curses__adb.htm#ref_233_21">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></span>
++ <span class="comment"><EM>-- the C version lets them be 0, see the man page.</EM></span>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">newwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_739_13">Create</A>);
+
+ <b>function</b> New_Window
+- (<FONT COLOR=red><A NAME="ref_582_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_583_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_584_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_585_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+- <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_571_13">Create</A>;
+- <FONT COLOR=green><EM>-- pragma Inline (New_Window);</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_590_14" HREF="terminal_interface-curses__adb.htm#ref_252_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_590_22" HREF="terminal_interface-curses__adb.htm#ref_252_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Reset Win to Null_Window</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_590_14">Delete</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_596_13" HREF="terminal_interface-curses__adb.htm#ref_263_13">Sub_Window</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_597_7" HREF="terminal_interface-curses__adb.htm#ref_264_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_598_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_599_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_601_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_596_13">Sub_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_606_13" HREF="terminal_interface-curses__adb.htm#ref_291_13">Derived_Window</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_607_7" HREF="terminal_interface-curses__adb.htm#ref_292_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_608_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_609_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_610_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_611_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_606_13">Derived_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_616_13" HREF="terminal_interface-curses__adb.htm#ref_319_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_616_24" HREF="terminal_interface-curses__adb.htm#ref_319_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_616_13">Duplicate</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_621_14" HREF="terminal_interface-curses__adb.htm#ref_332_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_621_27" HREF="terminal_interface-curses__adb.htm#ref_332_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_622_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_623_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_621_14">Move_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_628_14" HREF="terminal_interface-curses__adb.htm#ref_346_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_628_35" HREF="terminal_interface-curses__adb.htm#ref_346_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_629_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_630_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_628_14">Move_Derived_Window</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_635_14">Synchronize_Upwards</A></FONT> (<FONT COLOR=red><A NAME="ref_635_35" HREF="terminal_interface-curses__ads.htm#ref_635_14">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></FONT>
++ (<span class="symbol"><A NAME="ref_750_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_751_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_752_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_753_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>
++ <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_739_13">Create</A>;
++ <span class="comment"><EM>-- pragma Inline (New_Window);</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_12"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_758_14" HREF="terminal_interface-curses__adb.htm#ref_253_14">Delete</A></span> (<span class="symbol"><A NAME="ref_758_22" HREF="terminal_interface-curses__adb.htm#ref_253_22">Win</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></span>
++ <span class="comment"><EM>-- Reset Win to Null_Window</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_758_14">Delete</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_13"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_764_13" HREF="terminal_interface-curses__adb.htm#ref_264_13">Sub_Window</A></span>
++ (<span class="symbol"><A NAME="ref_765_7" HREF="terminal_interface-curses__adb.htm#ref_265_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_766_7" HREF="terminal_interface-curses__adb.htm#ref_266_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_767_7" HREF="terminal_interface-curses__adb.htm#ref_267_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_768_7" HREF="terminal_interface-curses__adb.htm#ref_268_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_769_7" HREF="terminal_interface-curses__adb.htm#ref_269_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_764_13">Sub_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_14"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_774_13" HREF="terminal_interface-curses__adb.htm#ref_292_13">Derived_Window</A></span>
++ (<span class="symbol"><A NAME="ref_775_7" HREF="terminal_interface-curses__adb.htm#ref_293_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_776_7" HREF="terminal_interface-curses__adb.htm#ref_294_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_777_7" HREF="terminal_interface-curses__adb.htm#ref_295_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_778_7" HREF="terminal_interface-curses__adb.htm#ref_296_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_779_7" HREF="terminal_interface-curses__adb.htm#ref_297_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_774_13">Derived_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_15"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_784_13" HREF="terminal_interface-curses__adb.htm#ref_320_13">Duplicate</A></span> (<span class="symbol"><A NAME="ref_784_24" HREF="terminal_interface-curses__adb.htm#ref_320_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_784_13">Duplicate</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_16"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_789_14" HREF="terminal_interface-curses__adb.htm#ref_333_14">Move_Window</A></span> (<span class="symbol"><A NAME="ref_789_27" HREF="terminal_interface-curses__adb.htm#ref_333_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_790_27" HREF="terminal_interface-curses__adb.htm#ref_334_27">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_791_27" HREF="terminal_interface-curses__adb.htm#ref_335_27">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_789_14">Move_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_17"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_796_14" HREF="terminal_interface-curses__adb.htm#ref_347_14">Move_Derived_Window</A></span> (<span class="symbol"><A NAME="ref_796_35" HREF="terminal_interface-curses__adb.htm#ref_347_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_797_35" HREF="terminal_interface-curses__adb.htm#ref_348_35">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_798_35" HREF="terminal_interface-curses__adb.htm#ref_349_35">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_796_14">Move_Derived_Window</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_18"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_803_14">Synchronize_Upwards</A></span> (<span class="symbol"><A NAME="ref_803_35" HREF="terminal_interface-curses__ads.htm#ref_803_14">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></span>
+ <b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_640_14">Synchronize_Downwards</A></FONT> (<FONT COLOR=red><A NAME="ref_640_37" HREF="terminal_interface-curses__ads.htm#ref_640_14">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_19"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_808_14">Synchronize_Downwards</A></span> (<span class="symbol"><A NAME="ref_808_37" HREF="terminal_interface-curses__ads.htm#ref_808_14">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></EM></span>
+ <b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_645_14" HREF="terminal_interface-curses__adb.htm#ref_360_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_645_30" HREF="terminal_interface-curses__adb.htm#ref_360_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_646_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Mode</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_645_14">Set_Synch_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_655_14" HREF="terminal_interface-curses__adb.htm#ref_372_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_655_19" HREF="terminal_interface-curses__adb.htm#ref_372_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_656_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_657_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: waddstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: addnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: addstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_664_14" HREF="terminal_interface-curses__adb.htm#ref_390_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_664_19" HREF="terminal_interface-curses__adb.htm#ref_391_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_665_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_666_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_667_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_668_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvwaddstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvaddnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvaddstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_679_14" HREF="terminal_interface-curses__adb.htm#ref_402_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_679_19" HREF="terminal_interface-curses__adb.htm#ref_403_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_680_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Str</A></FONT> : Attributed_String;
+- <FONT COLOR=red><A NAME="ref_681_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: waddchstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: addchnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: addchstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_688_14" HREF="terminal_interface-curses__adb.htm#ref_425_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_688_19" HREF="terminal_interface-curses__adb.htm#ref_426_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_689_19" HREF="terminal_interface-curses__adb.htm#ref_427_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_690_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_691_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Str</A></FONT> : Attributed_String;
+- <FONT COLOR=red><A NAME="ref_692_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvwaddchstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvaddchnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvaddchstr()</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_20"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_813_14" HREF="terminal_interface-curses__adb.htm#ref_361_14">Set_Synch_Mode</A></span> (<span class="symbol"><A NAME="ref_813_30" HREF="terminal_interface-curses__adb.htm#ref_361_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_814_30" HREF="terminal_interface-curses__adb.htm#ref_362_30">Mode</A></span> : Boolean := False);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_813_14">Set_Synch_Mode</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_21"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_823_14" HREF="terminal_interface-curses__adb.htm#ref_373_14">Add</A></span> (<span class="symbol"><A NAME="ref_823_19" HREF="terminal_interface-curses__adb.htm#ref_373_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_824_19" HREF="terminal_interface-curses__adb.htm#ref_374_19">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_825_19" HREF="terminal_interface-curses__adb.htm#ref_375_19">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: waddstr()</EM></span>
++ <span class="comment"><EM>-- AKA: addnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: addstr()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_22"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_832_14" HREF="terminal_interface-curses__adb.htm#ref_391_14">Add</A></span> (<span class="symbol"><A NAME="ref_832_19" HREF="terminal_interface-curses__adb.htm#ref_392_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_833_19" HREF="terminal_interface-curses__adb.htm#ref_393_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_834_19" HREF="terminal_interface-curses__adb.htm#ref_394_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_835_19" HREF="terminal_interface-curses__adb.htm#ref_395_7">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_836_19" HREF="terminal_interface-curses__adb.htm#ref_396_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvwaddstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvaddnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvaddstr()</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_addchstr.3x.html">curs_addchstr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_23"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_847_14" HREF="terminal_interface-curses__adb.htm#ref_403_14">Add</A></span> (<span class="symbol"><A NAME="ref_847_19" HREF="terminal_interface-curses__adb.htm#ref_404_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_848_19" HREF="terminal_interface-curses__adb.htm#ref_405_7">Str</A></span> : Attributed_String;
++ <span class="symbol"><A NAME="ref_849_19" HREF="terminal_interface-curses__adb.htm#ref_406_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: waddchstr()</EM></span>
++ <span class="comment"><EM>-- AKA: addchnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: addchstr()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_24"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_856_14" HREF="terminal_interface-curses__adb.htm#ref_427_14">Add</A></span> (<span class="symbol"><A NAME="ref_856_19" HREF="terminal_interface-curses__adb.htm#ref_428_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_857_19" HREF="terminal_interface-curses__adb.htm#ref_429_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_858_19" HREF="terminal_interface-curses__adb.htm#ref_430_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_859_19" HREF="terminal_interface-curses__adb.htm#ref_431_7">Str</A></span> : Attributed_String;
++ <span class="symbol"><A NAME="ref_860_19" HREF="terminal_interface-curses__adb.htm#ref_432_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvwaddchstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvaddchnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvaddchstr()</EM></span>
+ <b>pragma</b> Inline (Add);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Not implemented: mvhline, mvwhline, mvvline, mvwvline</EM></FONT>
+- <FONT COLOR=green><EM>-- | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_706_14" HREF="terminal_interface-curses__adb.htm#ref_437_14">Border</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_438_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_708_7" HREF="terminal_interface-curses__adb.htm#ref_439_7">Left_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_709_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Right_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_710_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Top_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_711_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Bottom_Side_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_712_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Upper_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_713_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Upper_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_714_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Lower_Left_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_715_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Lower_Right_Corner_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_border.3x.html">curs_border.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Not implemented: mvhline, mvwhline, mvvline, mvwvline</EM></span>
++ <span class="comment"><EM>-- | use Move_Cursor then Horizontal_Line or Vertical_Line</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_25"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_874_14" HREF="terminal_interface-curses__adb.htm#ref_439_14">Border</A></span>
++ (<span class="symbol"><A NAME="ref_875_7" HREF="terminal_interface-curses__adb.htm#ref_440_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_876_7" HREF="terminal_interface-curses__adb.htm#ref_441_7">Left_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_877_7" HREF="terminal_interface-curses__adb.htm#ref_442_7">Right_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_878_7" HREF="terminal_interface-curses__adb.htm#ref_443_7">Top_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_879_7" HREF="terminal_interface-curses__adb.htm#ref_444_7">Bottom_Side_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_880_7" HREF="terminal_interface-curses__adb.htm#ref_445_7">Upper_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_881_7" HREF="terminal_interface-curses__adb.htm#ref_446_7">Upper_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_882_7" HREF="terminal_interface-curses__adb.htm#ref_447_7">Lower_Left_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_883_7" HREF="terminal_interface-curses__adb.htm#ref_448_7">Lower_Right_Corner_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>
+ );
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: border()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_706_14">Border</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_722_14" HREF="terminal_interface-curses__adb.htm#ref_474_14">Box</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_723_7" HREF="terminal_interface-curses__adb.htm#ref_475_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Vertical_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>;
+- <FONT COLOR=red><A NAME="ref_725_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Horizontal_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_722_14">Box</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_730_14" HREF="terminal_interface-curses__adb.htm#ref_485_14">Horizontal_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_731_7" HREF="terminal_interface-curses__adb.htm#ref_486_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_732_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Line_Size</A></FONT> : Natural;
+- <FONT COLOR=red><A NAME="ref_733_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: hline()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_730_14">Horizontal_Line</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_739_14" HREF="terminal_interface-curses__adb.htm#ref_502_14">Vertical_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_740_7" HREF="terminal_interface-curses__adb.htm#ref_503_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_741_7" HREF="terminal_interface-curses__adb.htm#ref_504_7">Line_Size</A></FONT> : Natural;
+- <FONT COLOR=red><A NAME="ref_742_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Line_Symbol</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_373_4">Default_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: vline()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_739_14">Vertical_Line</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented: mvgetch, mvwgetch</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_753_13" HREF="terminal_interface-curses__adb.htm#ref_520_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_753_28" HREF="terminal_interface-curses__adb.htm#ref_520_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: getch()</EM></FONT>
+- <FONT COLOR=green><EM>-- Get a character from the keyboard and echo it - if enabled - to the</EM></FONT>
+- <FONT COLOR=green><EM>-- window.</EM></FONT>
+- <FONT COLOR=green><EM>-- If for any reason (i.e. a timeout) we could not get a character the</EM></FONT>
+- <FONT COLOR=green><EM>-- returned keycode is Key_None.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_753_13">Get_Keystroke</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_764_14" HREF="terminal_interface-curses__adb.htm#ref_535_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_764_30" HREF="terminal_interface-curses__adb.htm#ref_535_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_764_14">Undo_Keystroke</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_769_13" HREF="terminal_interface-curses__adb.htm#ref_545_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_769_22" HREF="terminal_interface-curses__adb.htm#ref_545_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_769_13">Has_Key</A>);
+-
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <FONT COLOR=green><EM>-- | Some helper functions</EM></FONT>
+- <FONT COLOR=green><EM>-- |</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_776_13" HREF="terminal_interface-curses__adb.htm#ref_557_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_776_30" HREF="terminal_interface-curses__adb.htm#ref_557_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_776_13">Is_Function_Key</A>);
+-
+- <b>subtype</b> <FONT COLOR=red><A NAME="ref_780_12">Function_Key_Number</A></FONT> <b>is</b> Integer <b>range</b> 0 .. 63;
+- <FONT COLOR=green><EM>-- (n)curses allows for 64 function keys.</EM></FONT>
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_783_13" HREF="terminal_interface-curses__adb.htm#ref_569_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_783_27" HREF="terminal_interface-curses__adb.htm#ref_569_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>;
+- <FONT COLOR=green><EM>-- Return the number of the function key. If the code is not a</EM></FONT>
+- <FONT COLOR=green><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_783_13">Function_Key</A>);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_788_13" HREF="terminal_interface-curses__adb.htm#ref_580_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_788_32" HREF="terminal_interface-curses__adb.htm#ref_580_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_780_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+- <FONT COLOR=green><EM>-- Return the key code for a given function-key number.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_788_13">Function_Key_Code</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Not implemented attr_off, wattr_off,</EM></FONT>
+- <FONT COLOR=green><EM>-- | attr_on, wattr_on, attr_set, wattr_set</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- PAIR_NUMBER</EM></FONT>
+- <FONT COLOR=green><EM>-- PAIR_NUMBER(c) is the same as c.Color</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses__adb.htm#ref_586_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_802_24" HREF="terminal_interface-curses__adb.htm#ref_586_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_803_24" HREF="terminal_interface-curses__adb.htm#ref_587_24">On</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: wstandout()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: wstandend()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_808_14" HREF="terminal_interface-curses__adb.htm#ref_606_14">Switch_Character_Attribute</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_809_7" HREF="terminal_interface-curses__adb.htm#ref_607_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_810_7" HREF="terminal_interface-curses__adb.htm#ref_608_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_811_7" HREF="terminal_interface-curses__adb.htm#ref_609_7">On</A></FONT> : Boolean := True); <FONT COLOR=green><EM>-- if False we switch Off.</EM></FONT>
+- <FONT COLOR=green><EM>-- Switches those Attributes set to true in the list.</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: wattroff()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: attron()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: attroff()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_819_14" HREF="terminal_interface-curses__adb.htm#ref_634_14">Set_Character_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_820_7" HREF="terminal_interface-curses__adb.htm#ref_635_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_821_7" HREF="terminal_interface-curses__adb.htm#ref_636_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_822_7" HREF="terminal_interface-curses__adb.htm#ref_637_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: attrset()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_819_14">Set_Character_Attributes</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_828_13" HREF="terminal_interface-curses__adb.htm#ref_652_13">Get_Character_Attribute</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_829_7" HREF="terminal_interface-curses__adb.htm#ref_652_38">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: attr_get()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_834_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_835_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></FONT>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></span>
++ <span class="comment"><EM>-- AKA: border()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_874_14">Border</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_26"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_890_14" HREF="terminal_interface-curses__adb.htm#ref_475_14">Box</A></span>
++ (<span class="symbol"><A NAME="ref_891_7" HREF="terminal_interface-curses__adb.htm#ref_476_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_892_7" HREF="terminal_interface-curses__adb.htm#ref_477_7">Vertical_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>;
++ <span class="symbol"><A NAME="ref_893_7" HREF="terminal_interface-curses__adb.htm#ref_478_7">Horizontal_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_890_14">Box</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_27"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_898_14" HREF="terminal_interface-curses__adb.htm#ref_486_14">Horizontal_Line</A></span>
++ (<span class="symbol"><A NAME="ref_899_7" HREF="terminal_interface-curses__adb.htm#ref_487_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_900_7" HREF="terminal_interface-curses__adb.htm#ref_488_7">Line_Size</A></span> : Natural;
++ <span class="symbol"><A NAME="ref_901_7" HREF="terminal_interface-curses__adb.htm#ref_489_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></span>
++ <span class="comment"><EM>-- AKA: hline()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_898_14">Horizontal_Line</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_28"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_907_14" HREF="terminal_interface-curses__adb.htm#ref_504_14">Vertical_Line</A></span>
++ (<span class="symbol"><A NAME="ref_908_7" HREF="terminal_interface-curses__adb.htm#ref_505_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_909_7" HREF="terminal_interface-curses__adb.htm#ref_506_7">Line_Size</A></span> : Natural;
++ <span class="symbol"><A NAME="ref_910_7" HREF="terminal_interface-curses__adb.htm#ref_507_7">Line_Symbol</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_509_4">Default_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></span>
++ <span class="comment"><EM>-- AKA: vline()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_907_14">Vertical_Line</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getch.3x.html">curs_getch.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not implemented: mvgetch, mvwgetch</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_29"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_921_13" HREF="terminal_interface-curses__adb.htm#ref_523_13">Get_Keystroke</A></span> (<span class="symbol"><A NAME="ref_921_28" HREF="terminal_interface-curses__adb.htm#ref_523_28">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">wgetch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: getch()</EM></span>
++ <span class="comment"><EM>-- Get a character from the keyboard and echo it - if enabled - to the</EM></span>
++ <span class="comment"><EM>-- window.</EM></span>
++ <span class="comment"><EM>-- If for any reason (i.e. a timeout) we could not get a character the</EM></span>
++ <span class="comment"><EM>-- returned keycode is Key_None.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_921_13">Get_Keystroke</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_30"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_932_14" HREF="terminal_interface-curses__adb.htm#ref_538_14">Undo_Keystroke</A></span> (<span class="symbol"><A NAME="ref_932_30" HREF="terminal_interface-curses__adb.htm#ref_538_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_932_14">Undo_Keystroke</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_31"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_937_13" HREF="terminal_interface-curses__adb.htm#ref_548_13">Has_Key</A></span> (<span class="symbol"><A NAME="ref_937_22" HREF="terminal_interface-curses__adb.htm#ref_548_22">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_937_13">Has_Key</A>);
++
++ <span class="comment"><EM>-- |</EM></span>
++ <span class="comment"><EM>-- | Some helper functions</EM></span>
++ <span class="comment"><EM>-- |</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_944_13" HREF="terminal_interface-curses__adb.htm#ref_560_13">Is_Function_Key</A></span> (<span class="symbol"><A NAME="ref_944_30" HREF="terminal_interface-curses__adb.htm#ref_560_30">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_944_13">Is_Function_Key</A>);
++
++ <b>subtype</b> <span class="symbol"><A NAME="ref_948_12">Function_Key_Number</A></span> <b>is</b> Integer <b>range</b> 0 .. 63;
++ <span class="comment"><EM>-- (n)curses allows for 64 function keys.</EM></span>
++
++ <b>function</b> <span class="symbol"><A NAME="ref_951_13" HREF="terminal_interface-curses__adb.htm#ref_572_13">Function_Key</A></span> (<span class="symbol"><A NAME="ref_951_27" HREF="terminal_interface-curses__adb.htm#ref_572_27">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_12">Function_Key_Number</A>;
++ <span class="comment"><EM>-- Return the number of the function key. If the code is not a</EM></span>
++ <span class="comment"><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_951_13">Function_Key</A>);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_956_13" HREF="terminal_interface-curses__adb.htm#ref_583_13">Function_Key_Code</A></span> (<span class="symbol"><A NAME="ref_956_32" HREF="terminal_interface-curses__adb.htm#ref_583_32">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_948_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>;
++ <span class="comment"><EM>-- Return the key code for a given function-key number.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_956_13">Function_Key_Code</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_attr.3x.html">curs_attr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Not implemented attr_off, wattr_off,</EM></span>
++ <span class="comment"><EM>-- | attr_on, wattr_on, attr_set, wattr_set</EM></span>
++
++ <span class="comment"><EM>-- PAIR_NUMBER</EM></span>
++ <span class="comment"><EM>-- PAIR_NUMBER(c) is the same as c.Color</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_32"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_970_14" HREF="terminal_interface-curses__adb.htm#ref_589_14">Standout</A></span> (<span class="symbol"><A NAME="ref_970_24" HREF="terminal_interface-curses__adb.htm#ref_589_24">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_971_24" HREF="terminal_interface-curses__adb.htm#ref_590_24">On</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: wstandout()</EM></span>
++ <span class="comment"><EM>-- AKA: wstandend()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_33"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_976_14" HREF="terminal_interface-curses__adb.htm#ref_609_14">Switch_Character_Attribute</A></span>
++ (<span class="symbol"><A NAME="ref_977_7" HREF="terminal_interface-curses__adb.htm#ref_610_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_978_7" HREF="terminal_interface-curses__adb.htm#ref_611_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_979_7" HREF="terminal_interface-curses__adb.htm#ref_612_7">On</A></span> : Boolean := True); <span class="comment"><EM>-- if False we switch Off.</EM></span>
++ <span class="comment"><EM>-- Switches those Attributes set to true in the list.</EM></span>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></span>
++ <span class="comment"><EM>-- AKA: wattroff()</EM></span>
++ <span class="comment"><EM>-- AKA: attron()</EM></span>
++ <span class="comment"><EM>-- AKA: attroff()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_34"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_987_14" HREF="terminal_interface-curses__adb.htm#ref_637_14">Set_Character_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_988_7" HREF="terminal_interface-curses__adb.htm#ref_638_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_989_7" HREF="terminal_interface-curses__adb.htm#ref_639_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_990_7" HREF="terminal_interface-curses__adb.htm#ref_640_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></span>
++ <span class="comment"><EM>-- AKA: attrset()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_987_14">Set_Character_Attributes</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_35"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_996_13" HREF="terminal_interface-curses__adb.htm#ref_654_13">Get_Character_Attribute</A></span>
++ (<span class="symbol"><A NAME="ref_997_7" HREF="terminal_interface-curses__adb.htm#ref_654_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></span>
++ <span class="comment"><EM>-- AKA: attr_get()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_36"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1002_13" HREF="terminal_interface-curses__adb.htm#ref_675_13">Get_Character_Attribute</A></span>
++ (<span class="symbol"><A NAME="ref_1003_7" HREF="terminal_interface-curses__adb.htm#ref_675_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattr_get()</A></EM></span>
+ <b>pragma</b> Inline (Get_Character_Attribute);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_840_14" HREF="terminal_interface-curses__adb.htm#ref_698_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_840_25" HREF="terminal_interface-curses__adb.htm#ref_698_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_841_25" HREF="terminal_interface-curses__adb.htm#ref_699_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: color_set()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_840_14">Set_Color</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_847_14" HREF="terminal_interface-curses__adb.htm#ref_713_14">Change_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_848_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_849_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Count</A></FONT> : Integer := -1;
+- <FONT COLOR=red><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_851_7" HREF="terminal_interface-curses__adb.htm#ref_717_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: chgat()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_856_14" HREF="terminal_interface-curses__adb.htm#ref_736_14">Change_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_857_7" HREF="terminal_interface-curses__adb.htm#ref_737_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_858_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
+- <FONT COLOR=red><A NAME="ref_859_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
+- <FONT COLOR=red><A NAME="ref_860_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Count</A></FONT> : Integer := -1;
+- <FONT COLOR=red><A NAME="ref_861_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_862_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvchgat()</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_37"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1008_14" HREF="terminal_interface-curses__adb.htm#ref_696_14">Set_Color</A></span> (<span class="symbol"><A NAME="ref_1008_25" HREF="terminal_interface-curses__adb.htm#ref_696_25">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1009_25" HREF="terminal_interface-curses__adb.htm#ref_697_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></span>
++ <span class="comment"><EM>-- AKA: color_set()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1008_14">Set_Color</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_38"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1015_14" HREF="terminal_interface-curses__adb.htm#ref_712_14">Change_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_1016_7" HREF="terminal_interface-curses__adb.htm#ref_713_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1017_7" HREF="terminal_interface-curses__adb.htm#ref_714_7">Count</A></span> : Integer := -1;
++ <span class="symbol"><A NAME="ref_1018_7" HREF="terminal_interface-curses__adb.htm#ref_715_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_1019_7" HREF="terminal_interface-curses__adb.htm#ref_716_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></span>
++ <span class="comment"><EM>-- AKA: chgat()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_39"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1024_14" HREF="terminal_interface-curses__adb.htm#ref_737_14">Change_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_1025_7" HREF="terminal_interface-curses__adb.htm#ref_738_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1026_7" HREF="terminal_interface-curses__adb.htm#ref_739_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>'First;
++ <span class="symbol"><A NAME="ref_1027_7" HREF="terminal_interface-curses__adb.htm#ref_740_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>'First;
++ <span class="symbol"><A NAME="ref_1028_7" HREF="terminal_interface-curses__adb.htm#ref_741_7">Count</A></span> : Integer := -1;
++ <span class="symbol"><A NAME="ref_1029_7" HREF="terminal_interface-curses__adb.htm#ref_742_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_743_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvchgat()</EM></span>
+ <b>pragma</b> Inline (Change_Attributes);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_872_14" HREF="terminal_interface-curses__adb.htm#ref_749_14">Beep</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_872_14">Beep</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_877_14" HREF="terminal_interface-curses__adb.htm#ref_759_14">Flash_Screen</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_877_14">Flash_Screen</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- | Not implemented : typeahead</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_888_14" HREF="terminal_interface-curses__adb.htm#ref_769_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_888_31" HREF="terminal_interface-curses__adb.htm#ref_769_31">SwitchOn</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: nocbreak()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_888_14">Set_Cbreak_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_894_14" HREF="terminal_interface-curses__adb.htm#ref_788_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_894_28" HREF="terminal_interface-curses__adb.htm#ref_788_28">SwitchOn</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: noraw()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_894_14">Set_Raw_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_900_14" HREF="terminal_interface-curses__adb.htm#ref_807_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_900_29" HREF="terminal_interface-curses__adb.htm#ref_807_29">SwitchOn</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: noecho()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_900_14">Set_Echo_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_906_14" HREF="terminal_interface-curses__adb.htm#ref_826_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_906_29" HREF="terminal_interface-curses__adb.htm#ref_826_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_907_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">SwitchOn</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_906_14">Set_Meta_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_912_14" HREF="terminal_interface-curses__adb.htm#ref_837_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_912_31" HREF="terminal_interface-curses__adb.htm#ref_837_31">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_913_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">SwitchOn</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_912_14">Set_KeyPad_Mode</A>);
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_beep.3x.html">curs_beep.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_40"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1040_14" HREF="terminal_interface-curses__adb.htm#ref_750_14">Beep</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">beep()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1040_14">Beep</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_41"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1045_14" HREF="terminal_interface-curses__adb.htm#ref_760_14">Flash_Screen</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_beep.3x.html">flash()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1045_14">Flash_Screen</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- | Not implemented : typeahead</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <span class="comment"><EM>-- #1A NAME="AFU_42"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1056_14" HREF="terminal_interface-curses__adb.htm#ref_770_14">Set_Cbreak_Mode</A></span> (<span class="symbol"><A NAME="ref_1056_31" HREF="terminal_interface-curses__adb.htm#ref_770_31">SwitchOn</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">cbreak()</A></EM></span>
++ <span class="comment"><EM>-- AKA: nocbreak()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1056_14">Set_Cbreak_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_43"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1062_14" HREF="terminal_interface-curses__adb.htm#ref_789_14">Set_Raw_Mode</A></span> (<span class="symbol"><A NAME="ref_1062_28" HREF="terminal_interface-curses__adb.htm#ref_789_28">SwitchOn</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">raw()</A></EM></span>
++ <span class="comment"><EM>-- AKA: noraw()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1062_14">Set_Raw_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_44"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1068_14" HREF="terminal_interface-curses__adb.htm#ref_808_14">Set_Echo_Mode</A></span> (<span class="symbol"><A NAME="ref_1068_29" HREF="terminal_interface-curses__adb.htm#ref_808_29">SwitchOn</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">echo()</A></EM></span>
++ <span class="comment"><EM>-- AKA: noecho()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1068_14">Set_Echo_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_45"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1074_14" HREF="terminal_interface-curses__adb.htm#ref_827_14">Set_Meta_Mode</A></span> (<span class="symbol"><A NAME="ref_1074_29" HREF="terminal_interface-curses__adb.htm#ref_827_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1075_29" HREF="terminal_interface-curses__adb.htm#ref_828_29">SwitchOn</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Set_Meta_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_46"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1080_14" HREF="terminal_interface-curses__adb.htm#ref_838_14">Set_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_1080_31" HREF="terminal_interface-curses__adb.htm#ref_838_31">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1081_31" HREF="terminal_interface-curses__adb.htm#ref_839_31">SwitchOn</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1080_14">Set_KeyPad_Mode</A>);
+
+- <b>function</b> <FONT COLOR=red><A NAME="ref_917_13" HREF="terminal_interface-curses__adb.htm#ref_848_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_917_30" HREF="terminal_interface-curses__adb.htm#ref_848_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
++ <b>function</b> <span class="symbol"><A NAME="ref_1085_13" HREF="terminal_interface-curses__adb.htm#ref_849_13">Get_KeyPad_Mode</A></span> (<span class="symbol"><A NAME="ref_1085_30" HREF="terminal_interface-curses__adb.htm#ref_849_30">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
+ <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- This has no pendant in C. There you've to look into the WINDOWS</EM></FONT>
+- <FONT COLOR=green><EM>-- structure to get the value. Bad practice, not repeated in Ada.</EM></FONT>
++ <span class="comment"><EM>-- This has no pendant in C. There you've to look into the WINDOWS</EM></span>
++ <span class="comment"><EM>-- structure to get the value. Bad practice, not repeated in Ada.</EM></span>
+
+- <b>type</b> <FONT COLOR=red><A NAME="ref_922_9">Half_Delay_Amount</A></FONT> <b>is</b> <b>range</b> 1 .. 255;
++ <b>type</b> <span class="symbol"><A NAME="ref_1090_9">Half_Delay_Amount</A></span> <b>is</b> <b>range</b> 1 .. 255;
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_925_14" HREF="terminal_interface-curses__adb.htm#ref_857_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_925_26" HREF="terminal_interface-curses__adb.htm#ref_857_26">Amount</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_922_9">Half_Delay_Amount</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_925_14">Half_Delay</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_930_14" HREF="terminal_interface-curses__adb.htm#ref_867_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_868_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Mode</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_930_14">Set_Flush_On_Interrupt_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_937_14" HREF="terminal_interface-curses__adb.htm#ref_879_14">Set_Queue_Interrupt_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_938_7" HREF="terminal_interface-curses__adb.htm#ref_880_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_939_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Flush</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: noqiflush()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_Queue_Interrupt_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_945_14" HREF="terminal_interface-curses__adb.htm#ref_898_14">Set_NoDelay_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_946_7" HREF="terminal_interface-curses__adb.htm#ref_899_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_947_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Mode</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_945_14">Set_NoDelay_Mode</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_951_9">Timeout_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_951_26">Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_951_36">Non_Blocking</A></FONT>, <FONT COLOR=red><A NAME="ref_951_50">Delayed</A></FONT>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_954_14" HREF="terminal_interface-curses__adb.htm#ref_910_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_954_32" HREF="terminal_interface-curses__adb.htm#ref_910_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_955_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_951_9">Timeout_Mode</A>;
+- <FONT COLOR=red><A NAME="ref_956_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Amount</A></FONT> : Natural); <FONT COLOR=green><EM>-- in Milliseconds</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: timeout()</EM></FONT>
+- <FONT COLOR=green><EM>-- Instead of overloading the semantic of the sign of amount, we</EM></FONT>
+- <FONT COLOR=green><EM>-- introduce the Timeout_Mode parameter. This should improve</EM></FONT>
+- <FONT COLOR=green><EM>-- readability. For Blocking and Non_Blocking, the Amount is not</EM></FONT>
+- <FONT COLOR=green><EM>-- evaluated.</EM></FONT>
+- <FONT COLOR=green><EM>-- We do not inline this procedure.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_966_14" HREF="terminal_interface-curses__adb.htm#ref_931_14">Set_Escape_Timer_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_967_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_968_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Timer_Off</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_966_14">Set_Escape_Timer_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_977_14" HREF="terminal_interface-curses__adb.htm#ref_945_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_977_27" HREF="terminal_interface-curses__adb.htm#ref_945_27">SwitchOn</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: nonl()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_977_14">Set_NL_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_983_14" HREF="terminal_interface-curses__adb.htm#ref_964_14">Clear_On_Next_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_965_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_985_7" HREF="terminal_interface-curses__adb.htm#ref_966_7">Do_Clear</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_983_14">Clear_On_Next_Update</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_990_14" HREF="terminal_interface-curses__adb.htm#ref_976_14">Use_Insert_Delete_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_977_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_992_7" HREF="terminal_interface-curses__adb.htm#ref_978_7">Do_Idl</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_990_14">Use_Insert_Delete_Line</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_997_14" HREF="terminal_interface-curses__adb.htm#ref_988_14">Use_Insert_Delete_Character</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_989_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_999_7" HREF="terminal_interface-curses__adb.htm#ref_990_7">Do_Idc</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_997_14">Use_Insert_Delete_Character</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1004_14" HREF="terminal_interface-curses__adb.htm#ref_998_14">Leave_Cursor_After_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_999_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1006_7" HREF="terminal_interface-curses__adb.htm#ref_1000_7">Do_Leave</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1004_14">Leave_Cursor_After_Update</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1011_14" HREF="terminal_interface-curses__adb.htm#ref_1010_14">Immediate_Update_Mode</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1011_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1013_7" HREF="terminal_interface-curses__adb.htm#ref_1012_7">Mode</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1011_14">Immediate_Update_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1018_14" HREF="terminal_interface-curses__adb.htm#ref_1020_14">Allow_Scrolling</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1019_7" HREF="terminal_interface-curses__adb.htm#ref_1021_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1020_7" HREF="terminal_interface-curses__adb.htm#ref_1022_7">Mode</A></FONT> : Boolean := False);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1018_14">Allow_Scrolling</A>);
+-
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1024_13" HREF="terminal_interface-curses__adb.htm#ref_1032_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1024_32" HREF="terminal_interface-curses__adb.htm#ref_1032_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- There is no such function in the C interface.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1024_13">Scrolling_Allowed</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1029_14" HREF="terminal_interface-curses__adb.htm#ref_1041_14">Set_Scroll_Region</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__adb.htm#ref_1042_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1031_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Top_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1032_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Bottom_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: setscrreg()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1029_14">Set_Scroll_Region</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1042_14" HREF="terminal_interface-curses__adb.htm#ref_1057_14">Update_Screen</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1042_14">Update_Screen</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1047_14" HREF="terminal_interface-curses__adb.htm#ref_1067_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1047_23" HREF="terminal_interface-curses__adb.htm#ref_1067_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- There is an overloaded Refresh for Pads.</EM></FONT>
+- <FONT COLOR=green><EM>-- The Inline pragma appears there</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: refresh()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_63"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1054_14" HREF="terminal_interface-curses__adb.htm#ref_1077_14">Refresh_Without_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1055_7" HREF="terminal_interface-curses__adb.htm#ref_1078_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- There is an overloaded Refresh_Without_Update for Pads.</EM></FONT>
+- <FONT COLOR=green><EM>-- The Inline pragma appears there</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_64"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1061_14" HREF="terminal_interface-curses__adb.htm#ref_1088_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1061_22" HREF="terminal_interface-curses__adb.htm#ref_1088_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_65"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1065_14" HREF="terminal_interface-curses__adb.htm#ref_1098_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1065_22" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1066_22" HREF="terminal_interface-curses__adb.htm#ref_1100_7">Begin_Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1067_22" HREF="terminal_interface-curses__adb.htm#ref_1101_7">Line_Count</A></FONT> : Positive);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_47"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1093_14" HREF="terminal_interface-curses__adb.htm#ref_858_14">Half_Delay</A></span> (<span class="symbol"><A NAME="ref_1093_26" HREF="terminal_interface-curses__adb.htm#ref_858_26">Amount</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1090_9">Half_Delay_Amount</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">halfdelay()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1093_14">Half_Delay</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_48"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1098_14" HREF="terminal_interface-curses__adb.htm#ref_868_14">Set_Flush_On_Interrupt_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_1099_7" HREF="terminal_interface-curses__adb.htm#ref_869_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1100_7" HREF="terminal_interface-curses__adb.htm#ref_870_7">Mode</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1098_14">Set_Flush_On_Interrupt_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_49"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1105_14" HREF="terminal_interface-curses__adb.htm#ref_880_14">Set_Queue_Interrupt_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_1106_7" HREF="terminal_interface-curses__adb.htm#ref_881_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1107_7" HREF="terminal_interface-curses__adb.htm#ref_882_7">Flush</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></span>
++ <span class="comment"><EM>-- AKA: noqiflush()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1105_14">Set_Queue_Interrupt_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_50"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1113_14" HREF="terminal_interface-curses__adb.htm#ref_899_14">Set_NoDelay_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_1114_7" HREF="terminal_interface-curses__adb.htm#ref_900_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1115_7" HREF="terminal_interface-curses__adb.htm#ref_901_7">Mode</A></span> : Boolean := False);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1113_14">Set_NoDelay_Mode</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_1119_9">Timeout_Mode</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1119_26">Blocking</A></span>, <span class="symbol"><A NAME="ref_1119_36">Non_Blocking</A></span>, <span class="symbol"><A NAME="ref_1119_50">Delayed</A></span>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_51"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1122_14" HREF="terminal_interface-curses__adb.htm#ref_911_14">Set_Timeout_Mode</A></span> (<span class="symbol"><A NAME="ref_1122_32" HREF="terminal_interface-curses__adb.htm#ref_911_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1123_32" HREF="terminal_interface-curses__adb.htm#ref_912_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1119_9">Timeout_Mode</A>;
++ <span class="symbol"><A NAME="ref_1124_32" HREF="terminal_interface-curses__adb.htm#ref_913_32">Amount</A></span> : Natural); <span class="comment"><EM>-- in Milliseconds</EM></span>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></span>
++ <span class="comment"><EM>-- AKA: timeout()</EM></span>
++ <span class="comment"><EM>-- Instead of overloading the semantic of the sign of amount, we</EM></span>
++ <span class="comment"><EM>-- introduce the Timeout_Mode parameter. This should improve</EM></span>
++ <span class="comment"><EM>-- readability. For Blocking and Non_Blocking, the Amount is not</EM></span>
++ <span class="comment"><EM>-- evaluated.</EM></span>
++ <span class="comment"><EM>-- We do not inline this procedure.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_52"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1134_14" HREF="terminal_interface-curses__adb.htm#ref_932_14">Set_Escape_Timer_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_1135_7" HREF="terminal_interface-curses__adb.htm#ref_933_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1136_7" HREF="terminal_interface-curses__adb.htm#ref_934_7">Timer_Off</A></span> : Boolean := False);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1134_14">Set_Escape_Timer_Mode</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_outopts.3x.html">curs_outopts.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_53"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1145_14" HREF="terminal_interface-curses__adb.htm#ref_947_14">Set_NL_Mode</A></span> (<span class="symbol"><A NAME="ref_1145_27" HREF="terminal_interface-curses__adb.htm#ref_947_27">SwitchOn</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">nl()</A></EM></span>
++ <span class="comment"><EM>-- AKA: nonl()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1145_14">Set_NL_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_54"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1151_14" HREF="terminal_interface-curses__adb.htm#ref_966_14">Clear_On_Next_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1152_7" HREF="terminal_interface-curses__adb.htm#ref_967_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1153_7" HREF="terminal_interface-curses__adb.htm#ref_968_7">Do_Clear</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1151_14">Clear_On_Next_Update</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_55"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1158_14" HREF="terminal_interface-curses__adb.htm#ref_978_14">Use_Insert_Delete_Line</A></span>
++ (<span class="symbol"><A NAME="ref_1159_7" HREF="terminal_interface-curses__adb.htm#ref_979_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1160_7" HREF="terminal_interface-curses__adb.htm#ref_980_7">Do_Idl</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1158_14">Use_Insert_Delete_Line</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_56"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1165_14" HREF="terminal_interface-curses__adb.htm#ref_990_14">Use_Insert_Delete_Character</A></span>
++ (<span class="symbol"><A NAME="ref_1166_7" HREF="terminal_interface-curses__adb.htm#ref_991_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1167_7" HREF="terminal_interface-curses__adb.htm#ref_992_7">Do_Idc</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1165_14">Use_Insert_Delete_Character</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_57"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1172_14" HREF="terminal_interface-curses__adb.htm#ref_1000_14">Leave_Cursor_After_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1173_7" HREF="terminal_interface-curses__adb.htm#ref_1001_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1174_7" HREF="terminal_interface-curses__adb.htm#ref_1002_7">Do_Leave</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1172_14">Leave_Cursor_After_Update</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_58"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1179_14" HREF="terminal_interface-curses__adb.htm#ref_1012_14">Immediate_Update_Mode</A></span>
++ (<span class="symbol"><A NAME="ref_1180_7" HREF="terminal_interface-curses__adb.htm#ref_1013_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1014_7">Mode</A></span> : Boolean := False);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1179_14">Immediate_Update_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_59"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1186_14" HREF="terminal_interface-curses__adb.htm#ref_1022_14">Allow_Scrolling</A></span>
++ (<span class="symbol"><A NAME="ref_1187_7" HREF="terminal_interface-curses__adb.htm#ref_1023_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1188_7" HREF="terminal_interface-curses__adb.htm#ref_1024_7">Mode</A></span> : Boolean := False);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1186_14">Allow_Scrolling</A>);
++
++ <b>function</b> <span class="symbol"><A NAME="ref_1192_13" HREF="terminal_interface-curses__adb.htm#ref_1034_13">Scrolling_Allowed</A></span> (<span class="symbol"><A NAME="ref_1192_32" HREF="terminal_interface-curses__adb.htm#ref_1034_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- There is no such function in the C interface.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1192_13">Scrolling_Allowed</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_60"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1197_14" HREF="terminal_interface-curses__adb.htm#ref_1043_14">Set_Scroll_Region</A></span>
++ (<span class="symbol"><A NAME="ref_1198_7" HREF="terminal_interface-curses__adb.htm#ref_1044_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1199_7" HREF="terminal_interface-curses__adb.htm#ref_1045_7">Top_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1200_7" HREF="terminal_interface-curses__adb.htm#ref_1046_7">Bottom_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></span>
++ <span class="comment"><EM>-- AKA: setscrreg()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1197_14">Set_Scroll_Region</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_refresh.3x.html">curs_refresh.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_61"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1210_14" HREF="terminal_interface-curses__adb.htm#ref_1060_14">Update_Screen</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">doupdate()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1210_14">Update_Screen</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_62"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1215_14" HREF="terminal_interface-curses__adb.htm#ref_1070_14">Refresh</A></span> (<span class="symbol"><A NAME="ref_1215_23" HREF="terminal_interface-curses__adb.htm#ref_1070_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wrefresh()</A></EM></span>
++ <span class="comment"><EM>-- There is an overloaded Refresh for Pads.</EM></span>
++ <span class="comment"><EM>-- The Inline pragma appears there</EM></span>
++ <span class="comment"><EM>-- AKA: refresh()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_63"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1222_14" HREF="terminal_interface-curses__adb.htm#ref_1080_14">Refresh_Without_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1223_7" HREF="terminal_interface-curses__adb.htm#ref_1081_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wnoutrefresh()</A></EM></span>
++ <span class="comment"><EM>-- There is an overloaded Refresh_Without_Update for Pads.</EM></span>
++ <span class="comment"><EM>-- The Inline pragma appears there</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_64"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1229_14" HREF="terminal_interface-curses__adb.htm#ref_1091_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1229_22" HREF="terminal_interface-curses__adb.htm#ref_1091_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_65"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1233_14" HREF="terminal_interface-curses__adb.htm#ref_1101_14">Redraw</A></span> (<span class="symbol"><A NAME="ref_1233_22" HREF="terminal_interface-curses__adb.htm#ref_1102_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1234_22" HREF="terminal_interface-curses__adb.htm#ref_1103_7">Begin_Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1235_22" HREF="terminal_interface-curses__adb.htm#ref_1104_7">Line_Count</A></span> : Positive);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></span>
+ <b>pragma</b> Inline (Redraw);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_66"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1076_14" HREF="terminal_interface-curses__adb.htm#ref_1115_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1076_21" HREF="terminal_interface-curses__adb.htm#ref_1115_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: erase()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1076_14">Erase</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_67"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1082_14" HREF="terminal_interface-curses__adb.htm#ref_1125_14">Clear</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1083_7" HREF="terminal_interface-curses__adb.htm#ref_1125_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: clear()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1082_14">Clear</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_68"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1089_14" HREF="terminal_interface-curses__adb.htm#ref_1135_14">Clear_To_End_Of_Screen</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1090_7" HREF="terminal_interface-curses__adb.htm#ref_1135_38">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: clrtobot()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1089_14">Clear_To_End_Of_Screen</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_69"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1096_14" HREF="terminal_interface-curses__adb.htm#ref_1145_14">Clear_To_End_Of_Line</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1097_7" HREF="terminal_interface-curses__adb.htm#ref_1145_36">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: clrtoeol()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1096_14">Clear_To_End_Of_Line</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_70"#2|</EM></FONT>
+- <FONT COLOR=green><EM>-- TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></FONT>
+- <FONT COLOR=green><EM>-- because in C it is common to see bkgdset(A_BOLD) or</EM></FONT>
+- <FONT COLOR=green><EM>-- bkgdset(COLOR_PAIR(n))</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1110_14" HREF="terminal_interface-curses__adb.htm#ref_1155_14">Set_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1111_7" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1112_7" HREF="terminal_interface-curses__adb.htm#ref_1157_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: bkgdset()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Set_Background</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_71"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1118_14" HREF="terminal_interface-curses__adb.htm#ref_1165_14">Change_Background</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1119_7" HREF="terminal_interface-curses__adb.htm#ref_1166_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1120_7" HREF="terminal_interface-curses__adb.htm#ref_1167_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: bkgd()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1118_14">Change_Background</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_72"#2|</EM></FONT>
+- <FONT COLOR=green><EM>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1127_13" HREF="terminal_interface-curses__adb.htm#ref_1177_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1127_29" HREF="terminal_interface-curses__adb.htm#ref_1177_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: bkgdget()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1127_13">Get_Background</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_73"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1138_14" HREF="terminal_interface-curses__adb.htm#ref_1213_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1138_23" HREF="terminal_interface-curses__adb.htm#ref_1213_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1138_14">Untouch</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_74"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1143_14" HREF="terminal_interface-curses__adb.htm#ref_1203_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1143_21" HREF="terminal_interface-curses__adb.htm#ref_1203_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_75"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1147_14" HREF="terminal_interface-curses__adb.htm#ref_1223_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1147_21" HREF="terminal_interface-curses__adb.htm#ref_1223_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1148_21" HREF="terminal_interface-curses__adb.htm#ref_1224_21">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1149_21" HREF="terminal_interface-curses__adb.htm#ref_1225_21">Count</A></FONT> : Positive);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_clear.3x.html">curs_clear.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_66"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1244_14" HREF="terminal_interface-curses__adb.htm#ref_1119_14">Erase</A></span> (<span class="symbol"><A NAME="ref_1244_21" HREF="terminal_interface-curses__adb.htm#ref_1119_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">werase()</A></EM></span>
++ <span class="comment"><EM>-- AKA: erase()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1244_14">Erase</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_67"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1250_14" HREF="terminal_interface-curses__adb.htm#ref_1129_14">Clear</A></span>
++ (<span class="symbol"><A NAME="ref_1251_7" HREF="terminal_interface-curses__adb.htm#ref_1129_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclear()</A></EM></span>
++ <span class="comment"><EM>-- AKA: clear()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1250_14">Clear</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_68"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1257_14" HREF="terminal_interface-curses__adb.htm#ref_1139_14">Clear_To_End_Of_Screen</A></span>
++ (<span class="symbol"><A NAME="ref_1258_7" HREF="terminal_interface-curses__adb.htm#ref_1139_38">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtobot()</A></EM></span>
++ <span class="comment"><EM>-- AKA: clrtobot()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1257_14">Clear_To_End_Of_Screen</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_69"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1264_14" HREF="terminal_interface-curses__adb.htm#ref_1149_14">Clear_To_End_Of_Line</A></span>
++ (<span class="symbol"><A NAME="ref_1265_7" HREF="terminal_interface-curses__adb.htm#ref_1149_36">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_clear.3x.html">wclrtoeol()</A></EM></span>
++ <span class="comment"><EM>-- AKA: clrtoeol()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1264_14">Clear_To_End_Of_Line</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_bkgd.3x.html">curs_bkgd.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_70"#2|</EM></span>
++ <span class="comment"><EM>-- TODO: we could have Set_Background(Window; Character_Attribute_Set)</EM></span>
++ <span class="comment"><EM>-- because in C it is common to see bkgdset(A_BOLD) or</EM></span>
++ <span class="comment"><EM>-- bkgdset(COLOR_PAIR(n))</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1278_14" HREF="terminal_interface-curses__adb.htm#ref_1159_14">Set_Background</A></span>
++ (<span class="symbol"><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1160_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1161_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></span>
++ <span class="comment"><EM>-- AKA: bkgdset()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1278_14">Set_Background</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_71"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1286_14" HREF="terminal_interface-curses__adb.htm#ref_1169_14">Change_Background</A></span>
++ (<span class="symbol"><A NAME="ref_1287_7" HREF="terminal_interface-curses__adb.htm#ref_1170_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1171_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></span>
++ <span class="comment"><EM>-- AKA: bkgd()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1286_14">Change_Background</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_72"#2|</EM></span>
++ <span class="comment"><EM>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1295_13" HREF="terminal_interface-curses__adb.htm#ref_1182_13">Get_Background</A></span> (<span class="symbol"><A NAME="ref_1295_29" HREF="terminal_interface-curses__adb.htm#ref_1182_29">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></span>
++ <span class="comment"><EM>-- AKA: bkgdget()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1295_13">Get_Background</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_touch.3x.html">curs_touch.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_73"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1306_14" HREF="terminal_interface-curses__adb.htm#ref_1219_14">Untouch</A></span> (<span class="symbol"><A NAME="ref_1306_23" HREF="terminal_interface-curses__adb.htm#ref_1219_23">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">untouchwin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1306_14">Untouch</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_74"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1311_14" HREF="terminal_interface-curses__adb.htm#ref_1209_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1311_21" HREF="terminal_interface-curses__adb.htm#ref_1209_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_75"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1315_14" HREF="terminal_interface-curses__adb.htm#ref_1229_14">Touch</A></span> (<span class="symbol"><A NAME="ref_1315_21" HREF="terminal_interface-curses__adb.htm#ref_1229_21">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1316_21" HREF="terminal_interface-curses__adb.htm#ref_1230_21">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1317_21" HREF="terminal_interface-curses__adb.htm#ref_1231_21">Count</A></span> : Positive);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></span>
+ <b>pragma</b> Inline (Touch);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_76"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1154_14" HREF="terminal_interface-curses__adb.htm#ref_1186_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1154_35" HREF="terminal_interface-curses__adb.htm#ref_1186_35">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1155_35" HREF="terminal_interface-curses__adb.htm#ref_1187_35">Start</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1156_35" HREF="terminal_interface-curses__adb.htm#ref_1188_35">Count</A></FONT> : Positive;
+- <FONT COLOR=red><A NAME="ref_1157_35" HREF="terminal_interface-curses__adb.htm#ref_1189_35">State</A></FONT> : Boolean);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1154_14">Change_Lines_Status</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_77"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1162_13" HREF="terminal_interface-curses__adb.htm#ref_1231_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1162_25" HREF="terminal_interface-curses__adb.htm#ref_1232_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1163_25" HREF="terminal_interface-curses__adb.htm#ref_1233_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_78"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1167_13" HREF="terminal_interface-curses__adb.htm#ref_1245_13">Is_Touched</A></FONT> (<FONT COLOR=red><A NAME="ref_1167_25" HREF="terminal_interface-curses__adb.htm#ref_1246_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_76"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1322_14" HREF="terminal_interface-curses__adb.htm#ref_1191_14">Change_Lines_Status</A></span> (<span class="symbol"><A NAME="ref_1322_35" HREF="terminal_interface-curses__adb.htm#ref_1191_35">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1323_35" HREF="terminal_interface-curses__adb.htm#ref_1192_35">Start</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1324_35" HREF="terminal_interface-curses__adb.htm#ref_1193_35">Count</A></span> : Positive;
++ <span class="symbol"><A NAME="ref_1325_35" HREF="terminal_interface-curses__adb.htm#ref_1194_35">State</A></span> : Boolean);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1322_14">Change_Lines_Status</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_77"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1330_13" HREF="terminal_interface-curses__adb.htm#ref_1237_13">Is_Touched</A></span> (<span class="symbol"><A NAME="ref_1330_25" HREF="terminal_interface-curses__adb.htm#ref_1238_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1331_25" HREF="terminal_interface-curses__adb.htm#ref_1239_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_78"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1335_13" HREF="terminal_interface-curses__adb.htm#ref_1251_13">Is_Touched</A></span> (<span class="symbol"><A NAME="ref_1335_25" HREF="terminal_interface-curses__adb.htm#ref_1252_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_wintouched()</A></EM></span>
+ <b>pragma</b> Inline (Is_Touched);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_79"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1176_14" HREF="terminal_interface-curses__adb.htm#ref_1258_14">Copy</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1259_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1178_7" HREF="terminal_interface-curses__adb.htm#ref_1260_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1179_7" HREF="terminal_interface-curses__adb.htm#ref_1261_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1180_7" HREF="terminal_interface-curses__adb.htm#ref_1262_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1181_7" HREF="terminal_interface-curses__adb.htm#ref_1263_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1182_7" HREF="terminal_interface-curses__adb.htm#ref_1264_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1183_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1184_7" HREF="terminal_interface-curses__adb.htm#ref_1266_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1185_7" HREF="terminal_interface-curses__adb.htm#ref_1267_7">Non_Destructive_Mode</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1176_14">Copy</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_80"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1190_14" HREF="terminal_interface-curses__adb.htm#ref_1294_14">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1190_25" HREF="terminal_interface-curses__adb.htm#ref_1295_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1191_25" HREF="terminal_interface-curses__adb.htm#ref_1296_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1190_14">Overwrite</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_81"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1196_14" HREF="terminal_interface-curses__adb.htm#ref_1306_14">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1196_23" HREF="terminal_interface-curses__adb.htm#ref_1307_7">Source_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1197_23" HREF="terminal_interface-curses__adb.htm#ref_1308_7">Destination_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1196_14">Overlay</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_82"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1206_14" HREF="terminal_interface-curses__adb.htm#ref_1319_14">Insert_Delete_Lines</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1207_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1208_7" HREF="terminal_interface-curses__adb.htm#ref_1321_7">Lines</A></FONT> : Integer := 1); <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: insdelln()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Insert_Delete_Lines</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_83"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1214_14" HREF="terminal_interface-curses__adb.htm#ref_1331_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1214_27" HREF="terminal_interface-curses__adb.htm#ref_1331_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: deleteln()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1214_14">Delete_Line</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_84"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1220_14" HREF="terminal_interface-curses__adb.htm#ref_1337_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1220_27" HREF="terminal_interface-curses__adb.htm#ref_1337_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: insertln()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1220_14">Insert_Line</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_85"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1230_14" HREF="terminal_interface-curses__adb.htm#ref_1344_14">Get_Size</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1231_7" HREF="terminal_interface-curses__adb.htm#ref_1345_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1346_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__adb.htm#ref_1347_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Size</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_86"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1238_14" HREF="terminal_interface-curses__adb.htm#ref_1362_14">Get_Window_Position</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1239_7" HREF="terminal_interface-curses__adb.htm#ref_1363_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1364_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1241_7" HREF="terminal_interface-curses__adb.htm#ref_1365_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Window_Position</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_87"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1246_14" HREF="terminal_interface-curses__adb.htm#ref_1380_14">Get_Cursor_Position</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1247_7" HREF="terminal_interface-curses__adb.htm#ref_1381_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1382_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1249_7" HREF="terminal_interface-curses__adb.htm#ref_1383_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Cursor_Position</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_88"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1254_14" HREF="terminal_interface-curses__adb.htm#ref_1398_14">Get_Origin_Relative_To_Parent</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1255_7" HREF="terminal_interface-curses__adb.htm#ref_1399_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1256_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1257_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1258_7" HREF="terminal_interface-curses__adb.htm#ref_1402_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Instead of placing -1 in the coordinates as return, we use a Boolean</EM></FONT>
+- <FONT COLOR=green><EM>-- to return the info that the window has no parent.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1254_14">Get_Origin_Relative_To_Parent</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_89"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1269_13" HREF="terminal_interface-curses__adb.htm#ref_1424_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1269_22" HREF="terminal_interface-curses__adb.htm#ref_1424_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1270_22" HREF="terminal_interface-curses__adb.htm#ref_1425_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1269_13">New_Pad</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_90"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1275_13" HREF="terminal_interface-curses__adb.htm#ref_1439_13">Sub_Pad</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1276_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1277_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1278_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1443_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1444_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1275_13">Sub_Pad</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_91"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1285_14" HREF="terminal_interface-curses__adb.htm#ref_1467_14">Refresh</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__adb.htm#ref_1468_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1287_7" HREF="terminal_interface-curses__adb.htm#ref_1469_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1288_7" HREF="terminal_interface-curses__adb.htm#ref_1470_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1289_7" HREF="terminal_interface-curses__adb.htm#ref_1471_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1290_7" HREF="terminal_interface-curses__adb.htm#ref_1472_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1473_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1292_7" HREF="terminal_interface-curses__adb.htm#ref_1474_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_overlay.3x.html">curs_overlay.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_79"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1344_14" HREF="terminal_interface-curses__adb.htm#ref_1264_14">Copy</A></span>
++ (<span class="symbol"><A NAME="ref_1345_7" HREF="terminal_interface-curses__adb.htm#ref_1265_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1346_7" HREF="terminal_interface-curses__adb.htm#ref_1266_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1347_7" HREF="terminal_interface-curses__adb.htm#ref_1267_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1348_7" HREF="terminal_interface-curses__adb.htm#ref_1268_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1349_7" HREF="terminal_interface-curses__adb.htm#ref_1269_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1350_7" HREF="terminal_interface-curses__adb.htm#ref_1270_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1351_7" HREF="terminal_interface-curses__adb.htm#ref_1271_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1352_7" HREF="terminal_interface-curses__adb.htm#ref_1272_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1353_7" HREF="terminal_interface-curses__adb.htm#ref_1273_7">Non_Destructive_Mode</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1344_14">Copy</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_80"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1358_14" HREF="terminal_interface-curses__adb.htm#ref_1301_14">Overwrite</A></span> (<span class="symbol"><A NAME="ref_1358_25" HREF="terminal_interface-curses__adb.htm#ref_1302_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1359_25" HREF="terminal_interface-curses__adb.htm#ref_1303_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1358_14">Overwrite</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_81"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1364_14" HREF="terminal_interface-curses__adb.htm#ref_1313_14">Overlay</A></span> (<span class="symbol"><A NAME="ref_1364_23" HREF="terminal_interface-curses__adb.htm#ref_1314_7">Source_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1365_23" HREF="terminal_interface-curses__adb.htm#ref_1315_7">Destination_Window</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1364_14">Overlay</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_deleteln.3x.html">curs_deleteln.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_82"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1374_14" HREF="terminal_interface-curses__adb.htm#ref_1326_14">Insert_Delete_Lines</A></span>
++ (<span class="symbol"><A NAME="ref_1375_7" HREF="terminal_interface-curses__adb.htm#ref_1327_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1376_7" HREF="terminal_interface-curses__adb.htm#ref_1328_7">Lines</A></span> : Integer := 1); <span class="comment"><EM>-- default is to insert one line above</EM></span>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></span>
++ <span class="comment"><EM>-- AKA: insdelln()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1374_14">Insert_Delete_Lines</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_83"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1382_14" HREF="terminal_interface-curses__adb.htm#ref_1338_14">Delete_Line</A></span> (<span class="symbol"><A NAME="ref_1382_27" HREF="terminal_interface-curses__adb.htm#ref_1338_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">wdeleteln()</A></EM></span>
++ <span class="comment"><EM>-- AKA: deleteln()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1382_14">Delete_Line</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_84"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1388_14" HREF="terminal_interface-curses__adb.htm#ref_1344_14">Insert_Line</A></span> (<span class="symbol"><A NAME="ref_1388_27" HREF="terminal_interface-curses__adb.htm#ref_1344_27">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsertln()</A></EM></span>
++ <span class="comment"><EM>-- AKA: insertln()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1388_14">Insert_Line</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getyx.3x.html">curs_getyx.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_85"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1398_14" HREF="terminal_interface-curses__adb.htm#ref_1351_14">Get_Size</A></span>
++ (<span class="symbol"><A NAME="ref_1399_7" HREF="terminal_interface-curses__adb.htm#ref_1352_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1400_7" HREF="terminal_interface-curses__adb.htm#ref_1353_7">Number_Of_Lines</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_1401_7" HREF="terminal_interface-curses__adb.htm#ref_1354_7">Number_Of_Columns</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1398_14">Get_Size</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_86"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1406_14" HREF="terminal_interface-curses__adb.htm#ref_1369_14">Get_Window_Position</A></span>
++ (<span class="symbol"><A NAME="ref_1407_7" HREF="terminal_interface-curses__adb.htm#ref_1370_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1408_7" HREF="terminal_interface-curses__adb.htm#ref_1371_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1409_7" HREF="terminal_interface-curses__adb.htm#ref_1372_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1406_14">Get_Window_Position</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_87"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1414_14" HREF="terminal_interface-curses__adb.htm#ref_1387_14">Get_Cursor_Position</A></span>
++ (<span class="symbol"><A NAME="ref_1415_7" HREF="terminal_interface-curses__adb.htm#ref_1388_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1416_7" HREF="terminal_interface-curses__adb.htm#ref_1389_7">Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1417_7" HREF="terminal_interface-curses__adb.htm#ref_1390_7">Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1414_14">Get_Cursor_Position</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_88"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1422_14" HREF="terminal_interface-curses__adb.htm#ref_1405_14">Get_Origin_Relative_To_Parent</A></span>
++ (<span class="symbol"><A NAME="ref_1423_7" HREF="terminal_interface-curses__adb.htm#ref_1406_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1424_7" HREF="terminal_interface-curses__adb.htm#ref_1407_7">Top_Left_Line</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1425_7" HREF="terminal_interface-curses__adb.htm#ref_1408_7">Top_Left_Column</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1426_7" HREF="terminal_interface-curses__adb.htm#ref_1409_7">Is_Not_A_Subwindow</A></span> : <b>out</b> Boolean);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></span>
++ <span class="comment"><EM>-- Instead of placing -1 in the coordinates as return, we use a Boolean</EM></span>
++ <span class="comment"><EM>-- to return the info that the window has no parent.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1422_14">Get_Origin_Relative_To_Parent</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_pad.3x.html">curs_pad.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_89"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1437_13" HREF="terminal_interface-curses__adb.htm#ref_1431_13">New_Pad</A></span> (<span class="symbol"><A NAME="ref_1437_22" HREF="terminal_interface-curses__adb.htm#ref_1431_22">Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_1438_22" HREF="terminal_interface-curses__adb.htm#ref_1432_22">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1437_13">New_Pad</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_90"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1443_13" HREF="terminal_interface-curses__adb.htm#ref_1446_13">Sub_Pad</A></span>
++ (<span class="symbol"><A NAME="ref_1444_7" HREF="terminal_interface-curses__adb.htm#ref_1447_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1445_7" HREF="terminal_interface-curses__adb.htm#ref_1448_7">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_1446_7" HREF="terminal_interface-curses__adb.htm#ref_1449_7">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>;
++ <span class="symbol"><A NAME="ref_1447_7" HREF="terminal_interface-curses__adb.htm#ref_1450_7">First_Line_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1448_7" HREF="terminal_interface-curses__adb.htm#ref_1451_7">First_Column_Position</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1443_13">Sub_Pad</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_91"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1453_14" HREF="terminal_interface-curses__adb.htm#ref_1474_14">Refresh</A></span>
++ (<span class="symbol"><A NAME="ref_1454_7" HREF="terminal_interface-curses__adb.htm#ref_1475_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1455_7" HREF="terminal_interface-curses__adb.htm#ref_1476_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1456_7" HREF="terminal_interface-curses__adb.htm#ref_1477_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1457_7" HREF="terminal_interface-curses__adb.htm#ref_1478_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1458_7" HREF="terminal_interface-curses__adb.htm#ref_1479_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1459_7" HREF="terminal_interface-curses__adb.htm#ref_1480_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1460_7" HREF="terminal_interface-curses__adb.htm#ref_1481_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></span>
+ <b>pragma</b> Inline (Refresh);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_92"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1297_14" HREF="terminal_interface-curses__adb.htm#ref_1497_14">Refresh_Without_Update</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1298_7" HREF="terminal_interface-curses__adb.htm#ref_1498_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__adb.htm#ref_1499_7">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1300_7" HREF="terminal_interface-curses__adb.htm#ref_1500_7">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1301_7" HREF="terminal_interface-curses__adb.htm#ref_1501_7">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1302_7" HREF="terminal_interface-curses__adb.htm#ref_1502_7">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1304_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_92"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1465_14" HREF="terminal_interface-curses__adb.htm#ref_1505_14">Refresh_Without_Update</A></span>
++ (<span class="symbol"><A NAME="ref_1466_7" HREF="terminal_interface-curses__adb.htm#ref_1506_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1467_7" HREF="terminal_interface-curses__adb.htm#ref_1507_7">Source_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1468_7" HREF="terminal_interface-curses__adb.htm#ref_1508_7">Source_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1469_7" HREF="terminal_interface-curses__adb.htm#ref_1509_7">Destination_Top_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1470_7" HREF="terminal_interface-curses__adb.htm#ref_1510_7">Destination_Left_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1471_7" HREF="terminal_interface-curses__adb.htm#ref_1511_7">Destination_Bottom_Row</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1472_7" HREF="terminal_interface-curses__adb.htm#ref_1512_7">Destination_Right_Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></span>
+ <b>pragma</b> Inline (Refresh_Without_Update);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_93"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1309_14" HREF="terminal_interface-curses__adb.htm#ref_1527_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1310_7" HREF="terminal_interface-curses__adb.htm#ref_1528_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1311_7" HREF="terminal_interface-curses__adb.htm#ref_1529_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></FONT>
+-
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1314_14" HREF="terminal_interface-curses__adb.htm#ref_1540_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1315_7" HREF="terminal_interface-curses__adb.htm#ref_1541_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1316_7" HREF="terminal_interface-curses__adb.htm#ref_1542_7">Ch</A></FONT> : Character);
++ <span class="comment"><EM>-- #1A NAME="AFU_93"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1477_14" HREF="terminal_interface-curses__adb.htm#ref_1536_14">Add_Character_To_Pad_And_Echo_It</A></span>
++ (<span class="symbol"><A NAME="ref_1478_7" HREF="terminal_interface-curses__adb.htm#ref_1537_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1479_7" HREF="terminal_interface-curses__adb.htm#ref_1538_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></span>
++
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1482_14" HREF="terminal_interface-curses__adb.htm#ref_1549_14">Add_Character_To_Pad_And_Echo_It</A></span>
++ (<span class="symbol"><A NAME="ref_1483_7" HREF="terminal_interface-curses__adb.htm#ref_1550_7">Pad</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1484_7" HREF="terminal_interface-curses__adb.htm#ref_1551_7">Ch</A></span> : Character);
+ <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_94"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1324_14" HREF="terminal_interface-curses__adb.htm#ref_1552_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1324_22" HREF="terminal_interface-curses__adb.htm#ref_1552_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1325_22" HREF="terminal_interface-curses__adb.htm#ref_1553_22">Amount</A></FONT> : Integer := 1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: scroll()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: scrl()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1324_14">Scroll</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_95"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1336_14" HREF="terminal_interface-curses__adb.htm#ref_1565_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1336_32" HREF="terminal_interface-curses__adb.htm#ref_1565_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: delch()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_96"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1341_14" HREF="terminal_interface-curses__adb.htm#ref_1575_14">Delete_Character</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1342_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1343_7" HREF="terminal_interface-curses__adb.htm#ref_1577_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1344_7" HREF="terminal_interface-curses__adb.htm#ref_1578_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvdelch()</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scroll.3x.html">curs_scroll.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_94"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1492_14" HREF="terminal_interface-curses__adb.htm#ref_1561_14">Scroll</A></span> (<span class="symbol"><A NAME="ref_1492_22" HREF="terminal_interface-curses__adb.htm#ref_1561_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1493_22" HREF="terminal_interface-curses__adb.htm#ref_1562_22">Amount</A></span> : Integer := 1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></span>
++ <span class="comment"><EM>-- AKA: scroll()</EM></span>
++ <span class="comment"><EM>-- AKA: scrl()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1492_14">Scroll</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_delch.3x.html">curs_delch.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_95"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1504_14" HREF="terminal_interface-curses__adb.htm#ref_1574_14">Delete_Character</A></span> (<span class="symbol"><A NAME="ref_1504_32" HREF="terminal_interface-curses__adb.htm#ref_1574_32">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">wdelch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: delch()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_96"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1509_14" HREF="terminal_interface-curses__adb.htm#ref_1584_14">Delete_Character</A></span>
++ (<span class="symbol"><A NAME="ref_1510_7" HREF="terminal_interface-curses__adb.htm#ref_1585_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1511_7" HREF="terminal_interface-curses__adb.htm#ref_1586_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1512_7" HREF="terminal_interface-curses__adb.htm#ref_1587_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvdelch()</EM></span>
+ <b>pragma</b> Inline (Delete_Character);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_97"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1354_13" HREF="terminal_interface-curses__adb.htm#ref_1590_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1354_19" HREF="terminal_interface-curses__adb.htm#ref_1590_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>)
+- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <FONT COLOR=green><EM>-- AKA: inch()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_98"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1360_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__adb.htm#ref_1600_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1362_7" HREF="terminal_interface-curses__adb.htm#ref_1601_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1363_7" HREF="terminal_interface-curses__adb.htm#ref_1602_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinch()</EM></FONT>
+- <FONT COLOR=green><EM>-- More Peek's follow, pragma Inline appears later.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_99"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1373_14" HREF="terminal_interface-curses__adb.htm#ref_1612_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1612_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1374_22" HREF="terminal_interface-curses__adb.htm#ref_1613_22">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: insch()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_100"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1379_14" HREF="terminal_interface-curses__adb.htm#ref_1623_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1379_22" HREF="terminal_interface-curses__adb.htm#ref_1624_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1380_22" HREF="terminal_interface-curses__adb.htm#ref_1625_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1381_22" HREF="terminal_interface-curses__adb.htm#ref_1626_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1382_22" HREF="terminal_interface-curses__adb.htm#ref_1627_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinsch()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_101"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1391_14" HREF="terminal_interface-curses__adb.htm#ref_1643_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1391_22" HREF="terminal_interface-curses__adb.htm#ref_1643_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1392_22" HREF="terminal_interface-curses__adb.htm#ref_1644_22">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1393_22" HREF="terminal_interface-curses__adb.htm#ref_1645_22">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: winsstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: insnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: insstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_102"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1400_14" HREF="terminal_interface-curses__adb.htm#ref_1661_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1400_22" HREF="terminal_interface-curses__adb.htm#ref_1662_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1401_22" HREF="terminal_interface-curses__adb.htm#ref_1663_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1402_22" HREF="terminal_interface-curses__adb.htm#ref_1664_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1403_22" HREF="terminal_interface-curses__adb.htm#ref_1665_7">Str</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1404_22" HREF="terminal_interface-curses__adb.htm#ref_1666_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvwinsstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinsnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinsstr()</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inch.3x.html">curs_inch.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_97"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1522_13" HREF="terminal_interface-curses__adb.htm#ref_1599_13">Peek</A></span> (<span class="symbol"><A NAME="ref_1522_19" HREF="terminal_interface-curses__adb.htm#ref_1599_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>)
++ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="comment"><EM>-- AKA: inch()</EM></span>
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_98"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1528_13" HREF="terminal_interface-curses__adb.htm#ref_1608_13">Peek</A></span>
++ (<span class="symbol"><A NAME="ref_1529_7" HREF="terminal_interface-curses__adb.htm#ref_1609_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1530_7" HREF="terminal_interface-curses__adb.htm#ref_1610_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1531_7" HREF="terminal_interface-curses__adb.htm#ref_1611_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvinch()</EM></span>
++ <span class="comment"><EM>-- More Peek's follow, pragma Inline appears later.</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_99"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1541_14" HREF="terminal_interface-curses__adb.htm#ref_1621_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1541_22" HREF="terminal_interface-curses__adb.htm#ref_1621_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1542_22" HREF="terminal_interface-curses__adb.htm#ref_1622_22">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: insch()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_100"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1547_14" HREF="terminal_interface-curses__adb.htm#ref_1632_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1547_22" HREF="terminal_interface-curses__adb.htm#ref_1633_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1548_22" HREF="terminal_interface-curses__adb.htm#ref_1634_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1549_22" HREF="terminal_interface-curses__adb.htm#ref_1635_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1550_22" HREF="terminal_interface-curses__adb.htm#ref_1636_7">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvinsch()</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_101"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1559_14" HREF="terminal_interface-curses__adb.htm#ref_1653_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1559_22" HREF="terminal_interface-curses__adb.htm#ref_1653_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1560_22" HREF="terminal_interface-curses__adb.htm#ref_1654_22">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_1561_22" HREF="terminal_interface-curses__adb.htm#ref_1655_22">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: winsstr()</EM></span>
++ <span class="comment"><EM>-- AKA: insnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: insstr()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_102"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1568_14" HREF="terminal_interface-curses__adb.htm#ref_1671_14">Insert</A></span> (<span class="symbol"><A NAME="ref_1568_22" HREF="terminal_interface-curses__adb.htm#ref_1672_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1569_22" HREF="terminal_interface-curses__adb.htm#ref_1673_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1570_22" HREF="terminal_interface-curses__adb.htm#ref_1674_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1571_22" HREF="terminal_interface-curses__adb.htm#ref_1675_7">Str</A></span> : String;
++ <span class="symbol"><A NAME="ref_1572_22" HREF="terminal_interface-curses__adb.htm#ref_1676_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvwinsstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvinsnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvinsstr()</EM></span>
+ <b>pragma</b> Inline (Insert);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_103"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1416_14" HREF="terminal_interface-curses__adb.htm#ref_1685_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1416_20" HREF="terminal_interface-curses__adb.htm#ref_1685_20">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1417_20" HREF="terminal_interface-curses__adb.htm#ref_1686_20">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1418_20" HREF="terminal_interface-curses__adb.htm#ref_1687_20">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: winstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: innstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: instr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_104"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1425_14" HREF="terminal_interface-curses__adb.htm#ref_1714_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1425_20" HREF="terminal_interface-curses__adb.htm#ref_1715_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1426_20" HREF="terminal_interface-curses__adb.htm#ref_1716_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1427_20" HREF="terminal_interface-curses__adb.htm#ref_1717_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1428_20" HREF="terminal_interface-curses__adb.htm#ref_1718_7">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1429_20" HREF="terminal_interface-curses__adb.htm#ref_1719_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvwinstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_105"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1440_14" HREF="terminal_interface-curses__adb.htm#ref_1726_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1440_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1441_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Str</A></FONT> : <b>out</b> Attributed_String;
+- <FONT COLOR=red><A NAME="ref_1442_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: winchstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: inchnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: inchstr()</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_106"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1449_14" HREF="terminal_interface-curses__adb.htm#ref_1763_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1449_20" HREF="terminal_interface-curses__adb.htm#ref_1764_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1450_20" HREF="terminal_interface-curses__adb.htm#ref_1765_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1451_20" HREF="terminal_interface-curses__adb.htm#ref_1766_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1452_20" HREF="terminal_interface-curses__adb.htm#ref_1767_7">Str</A></FONT> : <b>out</b> Attributed_String;
+- <FONT COLOR=red><A NAME="ref_1453_20" HREF="terminal_interface-curses__adb.htm#ref_1768_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvwinchstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinchnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvinchstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- We do not inline the Peek procedures</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_107"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1465_14" HREF="terminal_interface-curses__adb.htm#ref_1775_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1465_19" HREF="terminal_interface-curses__adb.htm#ref_1775_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1466_19" HREF="terminal_interface-curses__adb.htm#ref_1776_19">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1467_19" HREF="terminal_interface-curses__adb.htm#ref_1777_19">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: wgetstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: getnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: getstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- actually getstr is not supported because that results in buffer</EM></FONT>
+- <FONT COLOR=green><EM>-- overflows.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_108"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1476_14" HREF="terminal_interface-curses__adb.htm#ref_1804_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1476_19" HREF="terminal_interface-curses__adb.htm#ref_1805_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1477_19" HREF="terminal_interface-curses__adb.htm#ref_1806_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1478_19" HREF="terminal_interface-curses__adb.htm#ref_1807_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1479_19" HREF="terminal_interface-curses__adb.htm#ref_1808_7">Str</A></FONT> : <b>out</b> String;
+- <FONT COLOR=red><A NAME="ref_1480_19" HREF="terminal_interface-curses__adb.htm#ref_1809_7">Len</A></FONT> : Integer := -1);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvwgetstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvgetnstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: mvgetstr()</EM></FONT>
+- <FONT COLOR=green><EM>-- Get is not inlined</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT>
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1493_9">Soft_Label_Key_Format</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1493_35">Three_Two_Three</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_1494_35">Four_Four</A></FONT>,
+- <FONT COLOR=red><A NAME="ref_1495_35">PC_Style</A></FONT>, <FONT COLOR=green><EM>-- ncurses specific</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_1496_35">PC_Style_With_Index</A></FONT>); <FONT COLOR=green><EM>-- "</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1497_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1498_9">Label_Justification</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1498_33">Left</A></FONT>, <FONT COLOR=red><A NAME="ref_1498_39">Centered</A></FONT>, <FONT COLOR=red><A NAME="ref_1498_49">Right</A></FONT>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_109"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1501_14" HREF="terminal_interface-curses__adb.htm#ref_1816_14">Init_Soft_Label_Keys</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Format</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1493_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1493_35">Three_Two_Three</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1501_14">Init_Soft_Label_Keys</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_110"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1507_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1507_34" HREF="terminal_interface-curses__adb.htm#ref_1827_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1508_34" HREF="terminal_interface-curses__adb.htm#ref_1828_34">Text</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1509_34" HREF="terminal_interface-curses__adb.htm#ref_1829_34">Fmt</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1498_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1498_33">Left</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- We do not inline this procedure</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_111"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1514_14" HREF="terminal_interface-curses__adb.htm#ref_1846_14">Refresh_Soft_Label_Keys</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1514_14">Refresh_Soft_Label_Keys</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_112"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1519_14" HREF="terminal_interface-curses__adb.htm#ref_1856_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1519_14">Refresh_Soft_Label_Keys_Without_Update</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_113"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1524_14" HREF="terminal_interface-curses__adb.htm#ref_1866_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1524_34" HREF="terminal_interface-curses__adb.htm#ref_1866_34">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1525_34" HREF="terminal_interface-curses__adb.htm#ref_1867_34">Text</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_114"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1529_13" HREF="terminal_interface-curses__adb.htm#ref_1875_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1529_33" HREF="terminal_interface-curses__adb.htm#ref_1875_33">Label</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1497_9">Label_Number</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_instr.3x.html">curs_instr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_103"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1584_14" HREF="terminal_interface-curses__adb.htm#ref_1696_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1584_20" HREF="terminal_interface-curses__adb.htm#ref_1696_20">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1585_20" HREF="terminal_interface-curses__adb.htm#ref_1697_20">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1586_20" HREF="terminal_interface-curses__adb.htm#ref_1698_20">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: winstr()</EM></span>
++ <span class="comment"><EM>-- AKA: innstr()</EM></span>
++ <span class="comment"><EM>-- AKA: instr()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_104"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1593_14" HREF="terminal_interface-curses__adb.htm#ref_1725_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1593_20" HREF="terminal_interface-curses__adb.htm#ref_1726_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1594_20" HREF="terminal_interface-curses__adb.htm#ref_1727_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1595_20" HREF="terminal_interface-curses__adb.htm#ref_1728_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1596_20" HREF="terminal_interface-curses__adb.htm#ref_1729_7">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1597_20" HREF="terminal_interface-curses__adb.htm#ref_1730_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvwinstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvinnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvinstr()</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_105"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1608_14" HREF="terminal_interface-curses__adb.htm#ref_1737_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1608_20" HREF="terminal_interface-curses__adb.htm#ref_1738_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1609_20" HREF="terminal_interface-curses__adb.htm#ref_1739_7">Str</A></span> : <b>out</b> Attributed_String;
++ <span class="symbol"><A NAME="ref_1610_20" HREF="terminal_interface-curses__adb.htm#ref_1740_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: winchstr()</EM></span>
++ <span class="comment"><EM>-- AKA: inchnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: inchstr()</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_106"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1617_14" HREF="terminal_interface-curses__adb.htm#ref_1774_14">Peek</A></span> (<span class="symbol"><A NAME="ref_1617_20" HREF="terminal_interface-curses__adb.htm#ref_1775_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1618_20" HREF="terminal_interface-curses__adb.htm#ref_1776_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1619_20" HREF="terminal_interface-curses__adb.htm#ref_1777_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1620_20" HREF="terminal_interface-curses__adb.htm#ref_1778_7">Str</A></span> : <b>out</b> Attributed_String;
++ <span class="symbol"><A NAME="ref_1621_20" HREF="terminal_interface-curses__adb.htm#ref_1779_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvwinchstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvinchnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvinchstr()</EM></span>
++ <span class="comment"><EM>-- We do not inline the Peek procedures</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_getstr.3x.html">curs_getstr.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_107"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1633_14" HREF="terminal_interface-curses__adb.htm#ref_1786_14">Get</A></span> (<span class="symbol"><A NAME="ref_1633_19" HREF="terminal_interface-curses__adb.htm#ref_1786_19">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1634_19" HREF="terminal_interface-curses__adb.htm#ref_1787_19">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1635_19" HREF="terminal_interface-curses__adb.htm#ref_1788_19">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: wgetstr()</EM></span>
++ <span class="comment"><EM>-- AKA: getnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: getstr()</EM></span>
++ <span class="comment"><EM>-- actually getstr is not supported because that results in buffer</EM></span>
++ <span class="comment"><EM>-- overflows.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_108"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1644_14" HREF="terminal_interface-curses__adb.htm#ref_1815_14">Get</A></span> (<span class="symbol"><A NAME="ref_1644_19" HREF="terminal_interface-curses__adb.htm#ref_1816_7">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1645_19" HREF="terminal_interface-curses__adb.htm#ref_1817_7">Line</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1646_19" HREF="terminal_interface-curses__adb.htm#ref_1818_7">Column</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1647_19" HREF="terminal_interface-curses__adb.htm#ref_1819_7">Str</A></span> : <b>out</b> String;
++ <span class="symbol"><A NAME="ref_1648_19" HREF="terminal_interface-curses__adb.htm#ref_1820_7">Len</A></span> : Integer := -1);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></span>
++ <span class="comment"><EM>-- AKA: mvwgetstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvgetnstr()</EM></span>
++ <span class="comment"><EM>-- AKA: mvgetstr()</EM></span>
++ <span class="comment"><EM>-- Get is not inlined</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></span>
++
++ <b>type</b> <span class="symbol"><A NAME="ref_1661_9">Soft_Label_Key_Format</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1661_35">Three_Two_Three</A></span>,
++ <span class="symbol"><A NAME="ref_1662_35">Four_Four</A></span>,
++ <span class="symbol"><A NAME="ref_1663_35">PC_Style</A></span>, <span class="comment"><EM>-- ncurses specific</EM></span>
++ <span class="symbol"><A NAME="ref_1664_35">PC_Style_With_Index</A></span>); <span class="comment"><EM>-- "</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_1665_9">Label_Number</A></span> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. 12;
++ <b>type</b> <span class="symbol"><A NAME="ref_1666_9">Label_Justification</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1666_33">Left</A></span>, <span class="symbol"><A NAME="ref_1666_39">Centered</A></span>, <span class="symbol"><A NAME="ref_1666_49">Right</A></span>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_109"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1669_14" HREF="terminal_interface-curses__adb.htm#ref_1827_14">Init_Soft_Label_Keys</A></span>
++ (<span class="symbol"><A NAME="ref_1670_7" HREF="terminal_interface-curses__adb.htm#ref_1828_7">Format</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1661_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1661_35">Three_Two_Three</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_init()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1669_14">Init_Soft_Label_Keys</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_110"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1675_14" HREF="terminal_interface-curses__adb.htm#ref_1838_14">Set_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1675_34" HREF="terminal_interface-curses__adb.htm#ref_1838_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1665_9">Label_Number</A>;
++ <span class="symbol"><A NAME="ref_1676_34" HREF="terminal_interface-curses__adb.htm#ref_1839_34">Text</A></span> : String;
++ <span class="symbol"><A NAME="ref_1677_34" HREF="terminal_interface-curses__adb.htm#ref_1840_34">Fmt</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1666_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1666_33">Left</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></span>
++ <span class="comment"><EM>-- We do not inline this procedure</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_111"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1682_14" HREF="terminal_interface-curses__adb.htm#ref_1858_14">Refresh_Soft_Label_Keys</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_refresh()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1682_14">Refresh_Soft_Label_Keys</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_112"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1687_14" HREF="terminal_interface-curses__adb.htm#ref_1868_14">Refresh_Soft_Label_Keys_Without_Update</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_noutrefresh()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1687_14">Refresh_Soft_Label_Keys_Without_Update</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_113"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1692_14" HREF="terminal_interface-curses__adb.htm#ref_1878_14">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1692_34" HREF="terminal_interface-curses__adb.htm#ref_1878_34">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1665_9">Label_Number</A>;
++ <span class="symbol"><A NAME="ref_1693_34" HREF="terminal_interface-curses__adb.htm#ref_1879_34">Text</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_114"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1697_13" HREF="terminal_interface-curses__adb.htm#ref_1887_13">Get_Soft_Label_Key</A></span> (<span class="symbol"><A NAME="ref_1697_33" HREF="terminal_interface-curses__adb.htm#ref_1887_33">Label</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1665_9">Label_Number</A>) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Get_Soft_Label_Key);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_115"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1535_14" HREF="terminal_interface-curses__adb.htm#ref_1883_14">Clear_Soft_Label_Keys</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1535_14">Clear_Soft_Label_Keys</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_116"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1540_14" HREF="terminal_interface-curses__adb.htm#ref_1893_14">Restore_Soft_Label_Keys</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1540_14">Restore_Soft_Label_Keys</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_117"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1545_14" HREF="terminal_interface-curses__adb.htm#ref_1903_14">Touch_Soft_Label_Keys</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1545_14">Touch_Soft_Label_Keys</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_118"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1550_14" HREF="terminal_interface-curses__adb.htm#ref_1913_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1551_7" HREF="terminal_interface-curses__adb.htm#ref_1914_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=red><A NAME="ref_1552_7" HREF="terminal_interface-curses__adb.htm#ref_1915_7">On</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: slk_attroff()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Switch_Soft_Label_Key_Attributes</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_119"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1558_14" HREF="terminal_interface-curses__adb.htm#ref_1937_14">Set_Soft_Label_Key_Attributes</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1559_7" HREF="terminal_interface-curses__adb.htm#ref_1938_7">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_352_4">Normal_Video</A>;
+- <FONT COLOR=red><A NAME="ref_1560_7" HREF="terminal_interface-curses__adb.htm#ref_1939_7">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1558_14">Set_Soft_Label_Key_Attributes</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_120"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1565_13" HREF="terminal_interface-curses__adb.htm#ref_1953_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_121"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1569_13" HREF="terminal_interface-curses__adb.htm#ref_1963_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_115"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1703_14" HREF="terminal_interface-curses__adb.htm#ref_1895_14">Clear_Soft_Label_Keys</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_clear()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1703_14">Clear_Soft_Label_Keys</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_116"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1708_14" HREF="terminal_interface-curses__adb.htm#ref_1905_14">Restore_Soft_Label_Keys</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_restore()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1708_14">Restore_Soft_Label_Keys</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_117"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1713_14" HREF="terminal_interface-curses__adb.htm#ref_1915_14">Touch_Soft_Label_Keys</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_touch()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Touch_Soft_Label_Keys</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_118"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1718_14" HREF="terminal_interface-curses__adb.htm#ref_1925_14">Switch_Soft_Label_Key_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_1719_7" HREF="terminal_interface-curses__adb.htm#ref_1926_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="symbol"><A NAME="ref_1720_7" HREF="terminal_interface-curses__adb.htm#ref_1927_7">On</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></span>
++ <span class="comment"><EM>-- AKA: slk_attroff()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1718_14">Switch_Soft_Label_Key_Attributes</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_119"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1726_14" HREF="terminal_interface-curses__adb.htm#ref_1949_14">Set_Soft_Label_Key_Attributes</A></span>
++ (<span class="symbol"><A NAME="ref_1727_7" HREF="terminal_interface-curses__adb.htm#ref_1950_7">Attr</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_485_4">Normal_Video</A>;
++ <span class="symbol"><A NAME="ref_1728_7" HREF="terminal_interface-curses__adb.htm#ref_1951_7">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>'First);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1726_14">Set_Soft_Label_Key_Attributes</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_120"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1733_13" HREF="terminal_interface-curses__adb.htm#ref_1965_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_121"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1737_13" HREF="terminal_interface-curses__adb.htm#ref_1975_13">Get_Soft_Label_Key_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attr()</A></EM></span>
+ <b>pragma</b> Inline (Get_Soft_Label_Key_Attributes);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_122"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1574_14" HREF="terminal_interface-curses__adb.htm#ref_1973_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1574_40" HREF="terminal_interface-curses__adb.htm#ref_1973_40">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1574_14">Set_Soft_Label_Key_Color</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: keybound</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_123"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1588_14" HREF="terminal_interface-curses__adb.htm#ref_1984_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1588_26" HREF="terminal_interface-curses__adb.htm#ref_1984_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+- <FONT COLOR=red><A NAME="ref_1589_26" HREF="terminal_interface-curses__adb.htm#ref_1985_26">Enable</A></FONT> : Boolean := True);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1588_14">Enable_Key</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_124"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1598_14" HREF="terminal_interface-curses__adb.htm#ref_1997_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1598_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Definition</A></FONT> : String;
+- <FONT COLOR=red><A NAME="ref_1599_26" HREF="terminal_interface-curses__adb.htm#ref_1998_26">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1598_14">Define_Key</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- | Not implemented : filter, use_env</EM></FONT>
+- <FONT COLOR=green><EM>-- | putwin, getwin are in the child package PutWin</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_125"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1612_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1612_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+- <FONT COLOR=red><A NAME="ref_1613_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- The external name for a real keystroke.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_126"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1618_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1618_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
+- <FONT COLOR=green><EM>-- We do not inline this routine</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_127"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1624_14" HREF="terminal_interface-curses__adb.htm#ref_2013_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1624_26" HREF="terminal_interface-curses__adb.htm#ref_2013_26">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>;
+- <FONT COLOR=red><A NAME="ref_1625_26" HREF="terminal_interface-curses__adb.htm#ref_2014_26">Str</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_128"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1629_13" HREF="terminal_interface-curses__adb.htm#ref_2022_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_1629_25" HREF="terminal_interface-curses__adb.htm#ref_2022_25">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_354_9">Attributed_Character</A>) <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_122"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1742_14" HREF="terminal_interface-curses__adb.htm#ref_1985_14">Set_Soft_Label_Key_Color</A></span> (<span class="symbol"><A NAME="ref_1742_40" HREF="terminal_interface-curses__adb.htm#ref_1985_40">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_color()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1742_14">Set_Soft_Label_Key_Color</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not Implemented: keybound</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_123"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1756_14" HREF="terminal_interface-curses__adb.htm#ref_1996_14">Enable_Key</A></span> (<span class="symbol"><A NAME="ref_1756_26" HREF="terminal_interface-curses__adb.htm#ref_1996_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>;
++ <span class="symbol"><A NAME="ref_1757_26" HREF="terminal_interface-curses__adb.htm#ref_1997_26">Enable</A></span> : Boolean := True);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1756_14">Enable_Key</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/define_key.3x.html">define_key.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_124"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1766_14" HREF="terminal_interface-curses__adb.htm#ref_2010_14">Define_Key</A></span> (<span class="symbol"><A NAME="ref_1766_26" HREF="terminal_interface-curses__adb.htm#ref_2010_26">Definition</A></span> : String;
++ <span class="symbol"><A NAME="ref_1767_26" HREF="terminal_interface-curses__adb.htm#ref_2011_26">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_76_12">Special_Key_Code</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1766_14">Define_Key</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- | Not implemented : filter, use_env</EM></span>
++ <span class="comment"><EM>-- | putwin, getwin are in the child package PutWin</EM></span>
++ <span class="comment"><EM>--</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_125"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1780_14" HREF="terminal_interface-curses__adb.htm#ref_90_14">Key_Name</A></span> (<span class="symbol"><A NAME="ref_1780_24" HREF="terminal_interface-curses__adb.htm#ref_90_24">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>;
++ <span class="symbol"><A NAME="ref_1781_24" HREF="terminal_interface-curses__adb.htm#ref_91_24">Name</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></span>
++ <span class="comment"><EM>-- The external name for a real keystroke.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_126"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1786_13" HREF="terminal_interface-curses__adb.htm#ref_62_13">Key_Name</A></span> (<span class="symbol"><A NAME="ref_1786_23" HREF="terminal_interface-curses__adb.htm#ref_62_23">Key</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_71_12">Real_Key_Code</A>) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
++ <span class="comment"><EM>-- We do not inline this routine</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_127"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1792_14" HREF="terminal_interface-curses__adb.htm#ref_2026_14">Un_Control</A></span> (<span class="symbol"><A NAME="ref_1792_26" HREF="terminal_interface-curses__adb.htm#ref_2026_26">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>;
++ <span class="symbol"><A NAME="ref_1793_26" HREF="terminal_interface-curses__adb.htm#ref_2027_26">Str</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_128"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1797_13" HREF="terminal_interface-curses__adb.htm#ref_2035_13">Un_Control</A></span> (<span class="symbol"><A NAME="ref_1797_25" HREF="terminal_interface-curses__adb.htm#ref_2035_25">Ch</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_487_9">Attributed_Character</A>) <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Un_Control);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_129"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1635_14" HREF="terminal_interface-curses__adb.htm#ref_2030_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_1635_28" HREF="terminal_interface-curses__adb.htm#ref_2030_28">Msecs</A></FONT> : Natural);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1635_14">Delay_Output</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_130"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1640_14" HREF="terminal_interface-curses__adb.htm#ref_2040_14">Flush_Input</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1640_14">Flush_Input</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_131"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1649_13" HREF="terminal_interface-curses__adb.htm#ref_2050_13">Baudrate</A></FONT> <b>return</b> Natural;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1649_13">Baudrate</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_132"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1654_13" HREF="terminal_interface-curses__adb.htm#ref_2058_13">Erase_Character</A></FONT> <b>return</b> Character;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1654_13">Erase_Character</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_133"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1659_13" HREF="terminal_interface-curses__adb.htm#ref_2066_13">Kill_Character</A></FONT> <b>return</b> Character;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1659_13">Kill_Character</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_134"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1664_13" HREF="terminal_interface-curses__adb.htm#ref_2074_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1664_13">Has_Insert_Character</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_135"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1669_13" HREF="terminal_interface-curses__adb.htm#ref_2086_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1669_13">Has_Insert_Line</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_136"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1674_13" HREF="terminal_interface-curses__adb.htm#ref_2098_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1674_13">Supported_Attributes</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_137"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1679_14" HREF="terminal_interface-curses__adb.htm#ref_2108_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1679_25" HREF="terminal_interface-curses__adb.htm#ref_2108_25">Name</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_138"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1683_13" HREF="terminal_interface-curses__adb.htm#ref_2116_13">Long_Name</A></FONT> <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_129"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1803_14" HREF="terminal_interface-curses__adb.htm#ref_2043_14">Delay_Output</A></span> (<span class="symbol"><A NAME="ref_1803_28" HREF="terminal_interface-curses__adb.htm#ref_2043_28">Msecs</A></span> : Natural);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">delay_output()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1803_14">Delay_Output</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_130"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1808_14" HREF="terminal_interface-curses__adb.htm#ref_2053_14">Flush_Input</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_util.3x.html">flushinp()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Flush_Input</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_termattrs.3x.html">curs_termattrs.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_131"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1817_13" HREF="terminal_interface-curses__adb.htm#ref_2063_13">Baudrate</A></span> <b>return</b> Natural;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">baudrate()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1817_13">Baudrate</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_132"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1822_13" HREF="terminal_interface-curses__adb.htm#ref_2071_13">Erase_Character</A></span> <b>return</b> Character;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">erasechar()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1822_13">Erase_Character</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_133"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1827_13" HREF="terminal_interface-curses__adb.htm#ref_2079_13">Kill_Character</A></span> <b>return</b> Character;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">killchar()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1827_13">Kill_Character</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_134"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1832_13" HREF="terminal_interface-curses__adb.htm#ref_2087_13">Has_Insert_Character</A></span> <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_ic()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1832_13">Has_Insert_Character</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_135"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1837_13" HREF="terminal_interface-curses__adb.htm#ref_2099_13">Has_Insert_Line</A></span> <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">has_il()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1837_13">Has_Insert_Line</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_136"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1842_13" HREF="terminal_interface-curses__adb.htm#ref_2111_13">Supported_Attributes</A></span> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_417_9">Character_Attribute_Set</A>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termattrs()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1842_13">Supported_Attributes</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_137"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1847_14" HREF="terminal_interface-curses__adb.htm#ref_2121_14">Long_Name</A></span> (<span class="symbol"><A NAME="ref_1847_25" HREF="terminal_interface-curses__adb.htm#ref_2121_25">Name</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_138"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1851_13" HREF="terminal_interface-curses__adb.htm#ref_2129_13">Long_Name</A></span> <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">longname()</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Long_Name);
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_139"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1689_14" HREF="terminal_interface-curses__adb.htm#ref_2124_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_1689_29" HREF="terminal_interface-curses__adb.htm#ref_2124_29">Name</A></FONT> : <b>out</b> String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_140"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1693_13" HREF="terminal_interface-curses__adb.htm#ref_2132_13">Terminal_Name</A></FONT> <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_139"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1857_14" HREF="terminal_interface-curses__adb.htm#ref_2137_14">Terminal_Name</A></span> (<span class="symbol"><A NAME="ref_1857_29" HREF="terminal_interface-curses__adb.htm#ref_2137_29">Name</A></span> : <b>out</b> String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_140"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1861_13" HREF="terminal_interface-curses__adb.htm#ref_2145_13">Terminal_Name</A></span> <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_termattrs.3x.html">termname()</A></EM></span>
++ <span class="comment"><EM>-- Same as function</EM></span>
+ <b>pragma</b> Inline (Terminal_Name);
+
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- COLOR_PAIR</EM></FONT>
+- <FONT COLOR=green><EM>-- COLOR_PAIR(n) in C is the same as</EM></FONT>
+- <FONT COLOR=green><EM>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></FONT>
+- <FONT COLOR=green><EM>-- In C you often see something like c = c | COLOR_PAIR(n);</EM></FONT>
+- <FONT COLOR=green><EM>-- This is equivalent to c.Color := n;</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_141"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1709_14">Start_Color</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></FONT>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- COLOR_PAIR</EM></span>
++ <span class="comment"><EM>-- COLOR_PAIR(n) in C is the same as</EM></span>
++ <span class="comment"><EM>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></span>
++ <span class="comment"><EM>-- In C you often see something like c = c | COLOR_PAIR(n);</EM></span>
++ <span class="comment"><EM>-- This is equivalent to c.Color := n;</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_141"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1877_14">Start_Color</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">start_color()</A></EM></span>
+ <b>pragma</b> Import (C, Start_Color, "start_color");
+
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_142"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1714_14" HREF="terminal_interface-curses__adb.htm#ref_2140_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_1714_25" HREF="terminal_interface-curses__adb.htm#ref_2140_25">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+- <FONT COLOR=red><A NAME="ref_1715_25" HREF="terminal_interface-curses__adb.htm#ref_2141_25">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1716_25" HREF="terminal_interface-curses__adb.htm#ref_2142_25">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1714_14">Init_Pair</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_143"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1721_14" HREF="terminal_interface-curses__adb.htm#ref_2162_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1721_28" HREF="terminal_interface-curses__adb.htm#ref_2162_28">Pair</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+- <FONT COLOR=red><A NAME="ref_1722_28" HREF="terminal_interface-curses__adb.htm#ref_2163_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1723_28" HREF="terminal_interface-curses__adb.htm#ref_2164_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1721_14">Pair_Content</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_144"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1728_13" HREF="terminal_interface-curses__adb.htm#ref_2182_13">Has_Colors</A></FONT> <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1728_13">Has_Colors</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_145"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1733_14" HREF="terminal_interface-curses__adb.htm#ref_2194_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_1733_26" HREF="terminal_interface-curses__adb.htm#ref_2194_26">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1734_26" HREF="terminal_interface-curses__adb.htm#ref_2195_26">Red</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_1735_26" HREF="terminal_interface-curses__adb.htm#ref_2196_26">Green</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_1736_26" HREF="terminal_interface-curses__adb.htm#ref_2197_26">Blue</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1733_14">Init_Color</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_146"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1741_13" HREF="terminal_interface-curses__adb.htm#ref_2211_13">Can_Change_Color</A></FONT> <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1741_13">Can_Change_Color</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_147"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1746_14" HREF="terminal_interface-curses__adb.htm#ref_2223_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_1746_29" HREF="terminal_interface-curses__adb.htm#ref_2223_29">Color</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+- <FONT COLOR=red><A NAME="ref_1747_29" HREF="terminal_interface-curses__adb.htm#ref_2224_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_1748_29" HREF="terminal_interface-curses__adb.htm#ref_2225_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+- <FONT COLOR=red><A NAME="ref_1749_29" HREF="terminal_interface-curses__adb.htm#ref_2226_29">Blue</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1746_14">Color_Content</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Not implemented: getsyx, setsyx</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1758_9">Curses_Mode</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1758_25">Curses</A></FONT>, <FONT COLOR=red><A NAME="ref_1758_33">Shell</A></FONT>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_148"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1761_14" HREF="terminal_interface-curses__adb.htm#ref_2247_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1761_32" HREF="terminal_interface-curses__adb.htm#ref_2247_32">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: def_shell_mode()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1761_14">Save_Curses_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_149"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1767_14" HREF="terminal_interface-curses__adb.htm#ref_2265_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_1767_33" HREF="terminal_interface-curses__adb.htm#ref_2265_33">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1758_9">Curses_Mode</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- AKA: reset_shell_mode()</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1767_14">Reset_Curses_Mode</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_150"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1773_14" HREF="terminal_interface-curses__adb.htm#ref_2283_14">Save_Terminal_State</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1773_14">Save_Terminal_State</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_151"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1778_14" HREF="terminal_interface-curses__adb.htm#ref_2293_14">Reset_Terminal_State</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1778_14">Reset_Terminal_State</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1782_9">Stdscr_Init_Proc</A></FONT> <b>is</b> <b>access</b>
+- <b>function</b> (<FONT COLOR=red><A NAME="ref_1783_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+- <FONT COLOR=red><A NAME="ref_1784_17">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> Integer;
+- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>);
+- <FONT COLOR=green><EM>-- N.B.: the return value is actually ignored, but it seems to be</EM></FONT>
+- <FONT COLOR=green><EM>-- a good practice to return 0 if you think all went fine</EM></FONT>
+- <FONT COLOR=green><EM>-- and -1 otherwise.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_152"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1791_14" HREF="terminal_interface-curses__adb.htm#ref_2303_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_1791_29" HREF="terminal_interface-curses__adb.htm#ref_2303_29">Lines</A></FONT> : Integer;
+- <FONT COLOR=red><A NAME="ref_1792_29" HREF="terminal_interface-curses__adb.htm#ref_2304_29">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1782_9">Stdscr_Init_Proc</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></FONT>
+- <FONT COLOR=green><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></FONT>
+- <FONT COLOR=green><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></FONT>
+- <FONT COLOR=green><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></FONT>
+- <FONT COLOR=green><EM>-- uses the sign of Lines to remove a single line from bottom or top.</EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1791_14">Rip_Off_Lines</A>);
+-
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1800_9">Cursor_Visibility</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1800_31">Invisible</A></FONT>, <FONT COLOR=red><A NAME="ref_1800_42">Normal</A></FONT>, <FONT COLOR=red><A NAME="ref_1800_50">Very_Visible</A></FONT>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_153"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1803_14" HREF="terminal_interface-curses__adb.htm#ref_2315_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_1803_37" HREF="terminal_interface-curses__adb.htm#ref_2315_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_9">Cursor_Visibility</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1803_14">Set_Cursor_Visibility</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_154"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1808_14" HREF="terminal_interface-curses__adb.htm#ref_2328_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_1808_33" HREF="terminal_interface-curses__adb.htm#ref_2328_33">Ms</A></FONT> : Natural);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Nap_Milli_Seconds</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Some useful helpers.</EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1815_9">Transform_Direction</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_1815_33">From_Screen</A></FONT>, <FONT COLOR=red><A NAME="ref_1815_46">To_Screen</A></FONT>);
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1816_14" HREF="terminal_interface-curses__adb.htm#ref_2396_14">Transform_Coordinates</A></FONT>
+- (<FONT COLOR=red><A NAME="ref_1817_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1818_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1819_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+- <FONT COLOR=red><A NAME="ref_1820_7" HREF="terminal_interface-curses__adb.htm#ref_2400_7">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1815_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1815_33">From_Screen</A>);
+- <FONT COLOR=green><EM>-- This procedure transforms screen coordinates into coordinates relative</EM></FONT>
+- <FONT COLOR=green><EM>-- to the window and vice versa, depending on the Dir parameter.</EM></FONT>
+- <FONT COLOR=green><EM>-- Screen coordinates are the position information for the physical device.</EM></FONT>
+- <FONT COLOR=green><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></FONT>
+- <FONT COLOR=green><EM>-- Window or if you pass the Null_Window as argument.</EM></FONT>
+- <FONT COLOR=green><EM>-- We do not inline this procedure</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_155"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1833_14" HREF="terminal_interface-curses__adb.htm#ref_2425_14">Use_Default_Colors</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1833_14">Use_Default_Colors</A>);
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_156"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1838_14" HREF="terminal_interface-curses__adb.htm#ref_2435_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_1838_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+- <FONT COLOR=red><A NAME="ref_1839_37" HREF="terminal_interface-curses__adb.htm#ref_2436_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></FONT>
+- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1838_14">Assume_Default_Colors</A>);
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_157"#2|</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1848_13" HREF="terminal_interface-curses__adb.htm#ref_2450_13">Curses_Version</A></FONT> <b>return</b> String;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_158"#2|</EM></FONT>
+- <FONT COLOR=green><EM>-- The returnvalue is the previous setting of the flag</EM></FONT>
+- <b>function</b> <FONT COLOR=red><A NAME="ref_1853_13" HREF="terminal_interface-curses__adb.htm#ref_2473_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_1853_33" HREF="terminal_interface-curses__adb.htm#ref_2473_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_159"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1861_14" HREF="terminal_interface-curses__adb.htm#ref_2459_14">Curses_Free_All</A></FONT>;
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_160"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1869_14" HREF="terminal_interface-curses__adb.htm#ref_2488_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1869_35" HREF="terminal_interface-curses__adb.htm#ref_2488_35">Filename</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_161"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1873_14" HREF="terminal_interface-curses__adb.htm#ref_2501_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1873_40" HREF="terminal_interface-curses__adb.htm#ref_2501_40">Filename</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_162"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1877_14" HREF="terminal_interface-curses__adb.htm#ref_2514_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1877_37" HREF="terminal_interface-curses__adb.htm#ref_2514_37">Filename</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_163"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1881_14" HREF="terminal_interface-curses__adb.htm#ref_2527_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_1881_31" HREF="terminal_interface-curses__adb.htm#ref_2527_31">Filename</A></FONT> : String);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented: mcprint</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented: printw, wprintw, mvprintw, mvwprintw, vwprintw,</EM></FONT>
+- <FONT COLOR=green><EM>-- vw_printw</EM></FONT>
+- <FONT COLOR=green><EM>-- Please use the Ada style Text_IO child packages for formatted</EM></FONT>
+- <FONT COLOR=green><EM>-- printing. It does not make a lot of sense to map the printf style</EM></FONT>
+- <FONT COLOR=green><EM>-- C functions to Ada.</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- Not Implemented: resizeterm</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></FONT>
+- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
+-
+- <FONT COLOR=green><EM>-- #1A NAME="AFU_164"#2|</EM></FONT>
+- <b>procedure</b> <FONT COLOR=red><A NAME="ref_1913_14" HREF="terminal_interface-curses__adb.htm#ref_2540_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_1913_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_478_13">Standard_Window</A>;
+- <FONT COLOR=red><A NAME="ref_1914_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+- <FONT COLOR=red><A NAME="ref_1915_22" HREF="terminal_interface-curses__adb.htm#ref_2542_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>);
+- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></FONT>
++ <span class="comment"><EM>-- #1A NAME="AFU_142"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1882_14" HREF="terminal_interface-curses__adb.htm#ref_2153_14">Init_Pair</A></span> (<span class="symbol"><A NAME="ref_1882_25" HREF="terminal_interface-curses__adb.htm#ref_2153_25">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_411_12">Redefinable_Color_Pair</A>;
++ <span class="symbol"><A NAME="ref_1883_25" HREF="terminal_interface-curses__adb.htm#ref_2154_25">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_1884_25" HREF="terminal_interface-curses__adb.htm#ref_2155_25">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1882_14">Init_Pair</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_143"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1889_14" HREF="terminal_interface-curses__adb.htm#ref_2177_14">Pair_Content</A></span> (<span class="symbol"><A NAME="ref_1889_28" HREF="terminal_interface-curses__adb.htm#ref_2177_28">Pair</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_409_9">Color_Pair</A>;
++ <span class="symbol"><A NAME="ref_1890_28" HREF="terminal_interface-curses__adb.htm#ref_2178_28">Fore</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_1891_28" HREF="terminal_interface-curses__adb.htm#ref_2179_28">Back</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1889_14">Pair_Content</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_144"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1896_13" HREF="terminal_interface-curses__adb.htm#ref_2197_13">Has_Colors</A></span> <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">has_colors()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1896_13">Has_Colors</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_145"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1901_14" HREF="terminal_interface-curses__adb.htm#ref_2209_14">Init_Color</A></span> (<span class="symbol"><A NAME="ref_1901_26" HREF="terminal_interface-curses__adb.htm#ref_2209_26">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_1902_26" HREF="terminal_interface-curses__adb.htm#ref_2210_26">Red</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_1903_26" HREF="terminal_interface-curses__adb.htm#ref_2211_26">Green</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_1904_26" HREF="terminal_interface-curses__adb.htm#ref_2212_26">Blue</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1901_14">Init_Color</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_146"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_1909_13" HREF="terminal_interface-curses__adb.htm#ref_2227_13">Can_Change_Color</A></span> <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">can_change_color()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1909_13">Can_Change_Color</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_147"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1914_14" HREF="terminal_interface-curses__adb.htm#ref_2239_14">Color_Content</A></span> (<span class="symbol"><A NAME="ref_1914_29" HREF="terminal_interface-curses__adb.htm#ref_2239_29">Color</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A>;
++ <span class="symbol"><A NAME="ref_1915_29" HREF="terminal_interface-curses__adb.htm#ref_2240_29">Red</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_1916_29" HREF="terminal_interface-curses__adb.htm#ref_2241_29">Green</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>;
++ <span class="symbol"><A NAME="ref_1917_29" HREF="terminal_interface-curses__adb.htm#ref_2242_29">Blue</A></span> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_405_9">RGB_Value</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1914_14">Color_Content</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_kernel.3x.html">curs_kernel.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Not implemented: getsyx, setsyx</EM></span>
++ <span class="comment"><EM>--</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_1926_9">Curses_Mode</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1926_25">Curses</A></span>, <span class="symbol"><A NAME="ref_1926_33">Shell</A></span>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_148"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1929_14" HREF="terminal_interface-curses__adb.htm#ref_2264_14">Save_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_1929_32" HREF="terminal_interface-curses__adb.htm#ref_2264_32">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Mode</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">def_prog_mode()</A></EM></span>
++ <span class="comment"><EM>-- AKA: def_shell_mode()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1929_14">Save_Curses_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_149"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1935_14" HREF="terminal_interface-curses__adb.htm#ref_2282_14">Reset_Curses_Mode</A></span> (<span class="symbol"><A NAME="ref_1935_33" HREF="terminal_interface-curses__adb.htm#ref_2282_33">Mode</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Mode</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">reset_prog_mode()</A></EM></span>
++ <span class="comment"><EM>-- AKA: reset_shell_mode()</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1935_14">Reset_Curses_Mode</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_150"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1941_14" HREF="terminal_interface-curses__adb.htm#ref_2300_14">Save_Terminal_State</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">savetty()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1941_14">Save_Terminal_State</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_151"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1946_14" HREF="terminal_interface-curses__adb.htm#ref_2310_14">Reset_Terminal_State</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">resetty();</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1946_14">Reset_Terminal_State</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_1950_9">Stdscr_Init_Proc</A></span> <b>is</b> <b>access</b>
++ <b>function</b> (<span class="symbol"><A NAME="ref_1951_17">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A>;
++ <span class="symbol"><A NAME="ref_1952_17">Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>) <b>return</b> Integer;
++ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__ads.htm#ref_1950_9">Stdscr_Init_Proc</A>);
++ <span class="comment"><EM>-- N.B.: the return value is actually ignored, but it seems to be</EM></span>
++ <span class="comment"><EM>-- a good practice to return 0 if you think all went fine</EM></span>
++ <span class="comment"><EM>-- and -1 otherwise.</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_152"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1959_14" HREF="terminal_interface-curses__adb.htm#ref_2320_14">Rip_Off_Lines</A></span> (<span class="symbol"><A NAME="ref_1959_29" HREF="terminal_interface-curses__adb.htm#ref_2320_29">Lines</A></span> : Integer;
++ <span class="symbol"><A NAME="ref_1960_29" HREF="terminal_interface-curses__adb.htm#ref_2321_29">Proc</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1950_9">Stdscr_Init_Proc</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></span>
++ <span class="comment"><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></span>
++ <span class="comment"><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></span>
++ <span class="comment"><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></span>
++ <span class="comment"><EM>-- uses the sign of Lines to remove a single line from bottom or top.</EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1959_14">Rip_Off_Lines</A>);
++
++ <b>type</b> <span class="symbol"><A NAME="ref_1968_9">Cursor_Visibility</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1968_31">Invisible</A></span>, <span class="symbol"><A NAME="ref_1968_42">Normal</A></span>, <span class="symbol"><A NAME="ref_1968_50">Very_Visible</A></span>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_153"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1971_14" HREF="terminal_interface-curses__adb.htm#ref_2332_14">Set_Cursor_Visibility</A></span> (<span class="symbol"><A NAME="ref_1971_37" HREF="terminal_interface-curses__adb.htm#ref_2332_37">Visibility</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1968_9">Cursor_Visibility</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">curs_set()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1971_14">Set_Cursor_Visibility</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_154"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1976_14" HREF="terminal_interface-curses__adb.htm#ref_2345_14">Nap_Milli_Seconds</A></span> (<span class="symbol"><A NAME="ref_1976_33" HREF="terminal_interface-curses__adb.htm#ref_2345_33">Ms</A></span> : Natural);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">napms()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_1976_14">Nap_Milli_Seconds</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Some useful helpers.</EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_1983_9">Transform_Direction</A></span> <b>is</b> (<span class="symbol"><A NAME="ref_1983_33">From_Screen</A></span>, <span class="symbol"><A NAME="ref_1983_46">To_Screen</A></span>);
++ <b>procedure</b> <span class="symbol"><A NAME="ref_1984_14" HREF="terminal_interface-curses__adb.htm#ref_2396_14">Transform_Coordinates</A></span>
++ (<span class="symbol"><A NAME="ref_1985_7" HREF="terminal_interface-curses__adb.htm#ref_2397_7">W</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_1986_7" HREF="terminal_interface-curses__adb.htm#ref_2398_7">Line</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_58_9">Line_Position</A>;
++ <span class="symbol"><A NAME="ref_1987_7" HREF="terminal_interface-curses__adb.htm#ref_2399_7">Column</A></span> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_59_9">Column_Position</A>;
++ <span class="symbol"><A NAME="ref_1988_7" HREF="terminal_interface-curses__adb.htm#ref_2400_7">Dir</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_1983_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1983_33">From_Screen</A>);
++ <span class="comment"><EM>-- This procedure transforms screen coordinates into coordinates relative</EM></span>
++ <span class="comment"><EM>-- to the window and vice versa, depending on the Dir parameter.</EM></span>
++ <span class="comment"><EM>-- Screen coordinates are the position information for the physical device.</EM></span>
++ <span class="comment"><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></span>
++ <span class="comment"><EM>-- Window or if you pass the Null_Window as argument.</EM></span>
++ <span class="comment"><EM>-- We do not inline this procedure</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/default_colors.3x.html">default_colors.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="symbol"><A NAME="ref_2000_4">Default_Color</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := -1;
++
++ <span class="comment"><EM>-- #1A NAME="AFU_155"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2003_14" HREF="terminal_interface-curses__adb.htm#ref_2425_14">Use_Default_Colors</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/default_colors.3x.html">use_default_colors()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_2003_14">Use_Default_Colors</A>);
++
++ <span class="comment"><EM>-- #1A NAME="AFU_156"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2008_14" HREF="terminal_interface-curses__adb.htm#ref_2435_14">Assume_Default_Colors</A></span> (<span class="symbol"><A NAME="ref_2008_37" HREF="terminal_interface-curses__adb.htm#ref_2435_37">Fore</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2000_4">Default_Color</A>;
++ <span class="symbol"><A NAME="ref_2009_37" HREF="terminal_interface-curses__adb.htm#ref_2436_37">Back</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_389_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_2000_4">Default_Color</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/default_colors.3x.html">assume_default_colors()</A></EM></span>
++ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_2008_14">Assume_Default_Colors</A>);
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_extend.3x.html">curs_extend.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_157"#2|</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_2018_13" HREF="terminal_interface-curses__adb.htm#ref_2450_13">Curses_Version</A></span> <b>return</b> String;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">curses_version()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_158"#2|</EM></span>
++ <span class="comment"><EM>-- The returnvalue is the previous setting of the flag</EM></span>
++ <b>function</b> <span class="symbol"><A NAME="ref_2023_13" HREF="terminal_interface-curses__adb.htm#ref_2473_13">Use_Extended_Names</A></span> (<span class="symbol"><A NAME="ref_2023_33" HREF="terminal_interface-curses__adb.htm#ref_2473_33">Enable</A></span> : Boolean) <b>return</b> Boolean;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_extend.3x.html">use_extended_names()</A></EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_trace.3x.html">curs_trace.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_159"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2031_14" HREF="terminal_interface-curses__adb.htm#ref_2459_14">Curses_Free_All</A></span>;
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_trace.3x.html">_nc_freeall()</A></EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scr_dump.3x.html">curs_scr_dump.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_160"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2039_14" HREF="terminal_interface-curses__adb.htm#ref_2488_14">Screen_Dump_To_File</A></span> (<span class="symbol"><A NAME="ref_2039_35" HREF="terminal_interface-curses__adb.htm#ref_2488_35">Filename</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_dump()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_161"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2043_14" HREF="terminal_interface-curses__adb.htm#ref_2501_14">Screen_Restore_From_File</A></span> (<span class="symbol"><A NAME="ref_2043_40" HREF="terminal_interface-curses__adb.htm#ref_2501_40">Filename</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_restore()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_162"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2047_14" HREF="terminal_interface-curses__adb.htm#ref_2514_14">Screen_Init_From_File</A></span> (<span class="symbol"><A NAME="ref_2047_37" HREF="terminal_interface-curses__adb.htm#ref_2514_37">Filename</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_init()</A></EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_163"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2051_14" HREF="terminal_interface-curses__adb.htm#ref_2527_14">Screen_Set_File</A></span> (<span class="symbol"><A NAME="ref_2051_31" HREF="terminal_interface-curses__adb.htm#ref_2527_31">Filename</A></span> : String);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/curs_scr_dump.3x.html">scr_set()</A></EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_print.3x.html">curs_print.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not implemented: mcprint</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_printw.3x.html">curs_printw.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not implemented: printw, wprintw, mvprintw, mvwprintw, vwprintw,</EM></span>
++ <span class="comment"><EM>-- vw_printw</EM></span>
++ <span class="comment"><EM>-- Please use the Ada style Text_IO child packages for formatted</EM></span>
++ <span class="comment"><EM>-- printing. It does not make a lot of sense to map the printf style</EM></span>
++ <span class="comment"><EM>-- C functions to Ada.</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/curs_scanw.3x.html">curs_scanw.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/resizeterm.3x.html">resizeterm.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- Not Implemented: resizeterm</EM></span>
++
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++ <span class="comment"><EM>-- | Man page <A HREF="../man/wresize.3x.html">wresize.3x</A></EM></span>
++ <span class="comment"><EM>-- |=====================================================================</EM></span>
++
++ <span class="comment"><EM>-- #1A NAME="AFU_164"#2|</EM></span>
++ <b>procedure</b> <span class="symbol"><A NAME="ref_2083_14" HREF="terminal_interface-curses__adb.htm#ref_2540_14">Resize</A></span> (<span class="symbol"><A NAME="ref_2083_22" HREF="terminal_interface-curses__adb.htm#ref_2540_22">Win</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_644_13">Standard_Window</A>;
++ <span class="symbol"><A NAME="ref_2084_22" HREF="terminal_interface-curses__adb.htm#ref_2541_22">Number_Of_Lines</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_61_12">Line_Count</A>;
++ <span class="symbol"><A NAME="ref_2085_22" HREF="terminal_interface-curses__adb.htm#ref_2542_22">Number_Of_Columns</A></span> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Column_Count</A>);
++ <span class="comment"><EM>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></span>
+
+ <b>private</b>
+- <b>type</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+- <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := 0;
++ <b>type</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
++ <A HREF="terminal_interface-curses__ads.htm#ref_56_4">Null_Window</A> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_55_9">Window</A> := 0;
++
++ <span class="comment"><EM>-- The next constants are generated and may be different on your</EM></span>
++ <span class="comment"><EM>-- architecture.</EM></span>
++ <span class="comment"><EM>--</EM></span>
++
++ <span class="symbol"><A NAME="ref_2096_4">Sizeof_Bool</A></span> : <b>constant</b> := <A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_11_4">Sizeof_Bool</A>;
++
++ <b>type</b> <span class="symbol"><A NAME="ref_2098_9">Curses_Bool</A></span> <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#ref_2096_4">Sizeof_Bool</A>;
+
+- <FONT COLOR=green><EM>-- The next constants are generated and may be different on your</EM></FONT>
+- <FONT COLOR=green><EM>-- architecture.</EM></FONT>
+- <FONT COLOR=green><EM>--</EM></FONT>
+- <FONT COLOR=red><A NAME="ref_1925_4">Sizeof_bool</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- bool</EM></FONT>
+- <b>type</b> <FONT COLOR=red><A NAME="ref_1926_9">Curses_Bool</A></FONT> <b>is</b> <b>mod</b> 2 ** <A HREF="interfac__ads.htm#ref_38_9">Interfaces</A>.C.char'Size;
+- <FONT COLOR=red><A NAME="ref_1927_4">Curses_Bool_False</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_1926_9">Curses_Bool</A> := 0;
++ <span class="symbol"><A NAME="ref_2100_4">Curses_Bool_False</A></span> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_2098_9">Curses_Bool</A> := 0;
+
+-<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_47_28">Curses</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface-curses_constants__ads.htm
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface-curses_constants__ads.htm 2014-05-24 22:10:16.000000000 +0000
+@@ -0,0 +1,405 @@
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface-curses_constants.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
++<BODY>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface-curses_constants.ads </H1></DIV><HR>
++<PRE>
++<span class="comment"><EM>-- Generated by the C program ./generate (source ./gen.c).</EM></span>
++<span class="comment"><EM>-- Do not edit this file directly.</EM></span>
++<span class="comment"><EM>-- The values provided here may vary on your system.</EM></span>
++
++<b>with</b> System;
++<b>package</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<span class="symbol"><A NAME="ref_6_28">Curses_Constants</A></span> <b>is</b>
++ <b>pragma</b> Pure;
++
++ <span class="symbol"><A NAME="ref_9_4">DFT_ARG_SUFFIX</A></span> : <b>constant</b> String := "";
++ <span class="symbol"><A NAME="ref_10_4">Bit_Order</A></span> : <b>constant</b> System.Bit_Order := System.Low_Order_First;
++ <span class="symbol"><A NAME="ref_11_4">Sizeof_Bool</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_12_4">OK</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_13_4">ERR</A></span> : <b>constant</b> := -1;
++ <b>pragma</b> Warnings (Off); <span class="comment"><EM>-- redefinition of Standard.True and False</EM></span>
++ <span class="symbol"><A NAME="ref_15_4">TRUE</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_16_4">FALSE</A></span> : <b>constant</b> := 0;
++ <b>pragma</b> Warnings (On);
++
++ <span class="comment"><EM>-- Version of the ncurses library from extensions(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_21_4">NCURSES_VERSION_MAJOR</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_22_4">NCURSES_VERSION_MINOR</A></span> : <b>constant</b> := 9;
++ <span class="symbol"><A NAME="ref_23_4">Version</A></span> : <b>constant</b> String := "5.9";
++
++ <span class="comment"><EM>-- Character non-color attributes from attr(3NCURSES)</EM></span>
++
++ <span class="comment"><EM>-- attr_t and chtype may be signed in C.</EM></span>
++ <b>type</b> <span class="symbol"><A NAME="ref_28_9">attr_t</A></span> <b>is</b> <b>mod</b> 2 ** 32;
++ <span class="symbol"><A NAME="ref_29_4">A_CHARTEXT_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_30_4">A_CHARTEXT_Last</A></span> : <b>constant</b> := 7;
++ <span class="symbol"><A NAME="ref_31_4">A_COLOR_First</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_32_4">A_COLOR_Last</A></span> : <b>constant</b> := 15;
++ <span class="symbol"><A NAME="ref_33_4">Attr_First</A></span> : <b>constant</b> := 16;
++ <span class="symbol"><A NAME="ref_34_4">Attr_Last</A></span> : <b>constant</b> := 31;
++ <span class="symbol"><A NAME="ref_35_4">A_STANDOUT_First</A></span> : <b>constant</b> := 16;
++ <span class="symbol"><A NAME="ref_36_4">A_STANDOUT_Last</A></span> : <b>constant</b> := 16;
++ <span class="symbol"><A NAME="ref_37_4">A_UNDERLINE_First</A></span> : <b>constant</b> := 17;
++ <span class="symbol"><A NAME="ref_38_4">A_UNDERLINE_Last</A></span> : <b>constant</b> := 17;
++ <span class="symbol"><A NAME="ref_39_4">A_REVERSE_First</A></span> : <b>constant</b> := 18;
++ <span class="symbol"><A NAME="ref_40_4">A_REVERSE_Last</A></span> : <b>constant</b> := 18;
++ <span class="symbol"><A NAME="ref_41_4">A_BLINK_First</A></span> : <b>constant</b> := 19;
++ <span class="symbol"><A NAME="ref_42_4">A_BLINK_Last</A></span> : <b>constant</b> := 19;
++ <span class="symbol"><A NAME="ref_43_4">A_DIM_First</A></span> : <b>constant</b> := 20;
++ <span class="symbol"><A NAME="ref_44_4">A_DIM_Last</A></span> : <b>constant</b> := 20;
++ <span class="symbol"><A NAME="ref_45_4">A_BOLD_First</A></span> : <b>constant</b> := 21;
++ <span class="symbol"><A NAME="ref_46_4">A_BOLD_Last</A></span> : <b>constant</b> := 21;
++ <span class="symbol"><A NAME="ref_47_4">A_PROTECT_First</A></span> : <b>constant</b> := 24;
++ <span class="symbol"><A NAME="ref_48_4">A_PROTECT_Last</A></span> : <b>constant</b> := 24;
++ <span class="symbol"><A NAME="ref_49_4">A_INVIS_First</A></span> : <b>constant</b> := 23;
++ <span class="symbol"><A NAME="ref_50_4">A_INVIS_Last</A></span> : <b>constant</b> := 23;
++ <span class="symbol"><A NAME="ref_51_4">A_ALTCHARSET_First</A></span> : <b>constant</b> := 22;
++ <span class="symbol"><A NAME="ref_52_4">A_ALTCHARSET_Last</A></span> : <b>constant</b> := 22;
++ <span class="symbol"><A NAME="ref_53_4">A_HORIZONTAL_First</A></span> : <b>constant</b> := 25;
++ <span class="symbol"><A NAME="ref_54_4">A_HORIZONTAL_Last</A></span> : <b>constant</b> := 25;
++ <span class="symbol"><A NAME="ref_55_4">A_LEFT_First</A></span> : <b>constant</b> := 26;
++ <span class="symbol"><A NAME="ref_56_4">A_LEFT_Last</A></span> : <b>constant</b> := 26;
++ <span class="symbol"><A NAME="ref_57_4">A_LOW_First</A></span> : <b>constant</b> := 27;
++ <span class="symbol"><A NAME="ref_58_4">A_LOW_Last</A></span> : <b>constant</b> := 27;
++ <span class="symbol"><A NAME="ref_59_4">A_RIGHT_First</A></span> : <b>constant</b> := 28;
++ <span class="symbol"><A NAME="ref_60_4">A_RIGHT_Last</A></span> : <b>constant</b> := 28;
++ <span class="symbol"><A NAME="ref_61_4">A_TOP_First</A></span> : <b>constant</b> := 29;
++ <span class="symbol"><A NAME="ref_62_4">A_TOP_Last</A></span> : <b>constant</b> := 29;
++ <span class="symbol"><A NAME="ref_63_4">A_VERTICAL_First</A></span> : <b>constant</b> := 30;
++ <span class="symbol"><A NAME="ref_64_4">A_VERTICAL_Last</A></span> : <b>constant</b> := 30;
++ <span class="symbol"><A NAME="ref_65_4">chtype_Size</A></span> : <b>constant</b> := 32;
++
++ <span class="comment"><EM>-- predefined color numbers from color(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_69_4">COLOR_BLACK</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_70_4">COLOR_RED</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_71_4">COLOR_GREEN</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_72_4">COLOR_YELLOW</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_73_4">COLOR_BLUE</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_74_4">COLOR_MAGENTA</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_75_4">COLOR_CYAN</A></span> : <b>constant</b> := 6;
++ <span class="symbol"><A NAME="ref_76_4">COLOR_WHITE</A></span> : <b>constant</b> := 7;
++
++ <span class="comment"><EM>-- ETI return codes from ncurses.h</EM></span>
++
++ <span class="symbol"><A NAME="ref_80_4">E_OK</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_81_4">E_SYSTEM_ERROR</A></span> : <b>constant</b> := -1;
++ <span class="symbol"><A NAME="ref_82_4">E_BAD_ARGUMENT</A></span> : <b>constant</b> := -2;
++ <span class="symbol"><A NAME="ref_83_4">E_POSTED</A></span> : <b>constant</b> := -3;
++ <span class="symbol"><A NAME="ref_84_4">E_CONNECTED</A></span> : <b>constant</b> := -4;
++ <span class="symbol"><A NAME="ref_85_4">E_BAD_STATE</A></span> : <b>constant</b> := -5;
++ <span class="symbol"><A NAME="ref_86_4">E_NO_ROOM</A></span> : <b>constant</b> := -6;
++ <span class="symbol"><A NAME="ref_87_4">E_NOT_POSTED</A></span> : <b>constant</b> := -7;
++ <span class="symbol"><A NAME="ref_88_4">E_UNKNOWN_COMMAND</A></span> : <b>constant</b> := -8;
++ <span class="symbol"><A NAME="ref_89_4">E_NO_MATCH</A></span> : <b>constant</b> := -9;
++ <span class="symbol"><A NAME="ref_90_4">E_NOT_SELECTABLE</A></span> : <b>constant</b> := -10;
++ <span class="symbol"><A NAME="ref_91_4">E_NOT_CONNECTED</A></span> : <b>constant</b> := -11;
++ <span class="symbol"><A NAME="ref_92_4">E_REQUEST_DENIED</A></span> : <b>constant</b> := -12;
++ <span class="symbol"><A NAME="ref_93_4">E_INVALID_FIELD</A></span> : <b>constant</b> := -13;
++ <span class="symbol"><A NAME="ref_94_4">E_CURRENT</A></span> : <b>constant</b> := -14;
++
++ <span class="comment"><EM>-- Input key codes not defined in any ncurses manpage</EM></span>
++
++ <span class="symbol"><A NAME="ref_98_4">KEY_MIN</A></span> : <b>constant</b> := 257;
++ <span class="symbol"><A NAME="ref_99_4">KEY_MAX</A></span> : <b>constant</b> := 511;
++ <span class="symbol"><A NAME="ref_100_4">KEY_CODE_YES</A></span> : <b>constant</b> := 256;
++
++ <span class="comment"><EM>-- Input key codes from getch(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_104_4">KEY_BREAK</A></span> : <b>constant</b> := 257;
++ <span class="symbol"><A NAME="ref_105_4">KEY_DOWN</A></span> : <b>constant</b> := 258;
++ <span class="symbol"><A NAME="ref_106_4">KEY_UP</A></span> : <b>constant</b> := 259;
++ <span class="symbol"><A NAME="ref_107_4">KEY_LEFT</A></span> : <b>constant</b> := 260;
++ <span class="symbol"><A NAME="ref_108_4">KEY_RIGHT</A></span> : <b>constant</b> := 261;
++ <span class="symbol"><A NAME="ref_109_4">KEY_HOME</A></span> : <b>constant</b> := 262;
++ <span class="symbol"><A NAME="ref_110_4">KEY_BACKSPACE</A></span> : <b>constant</b> := 263;
++ <span class="symbol"><A NAME="ref_111_4">KEY_F0</A></span> : <b>constant</b> := 264;
++ <span class="symbol"><A NAME="ref_112_4">KEY_F1</A></span> : <b>constant</b> := 265;
++ <span class="symbol"><A NAME="ref_113_4">KEY_F2</A></span> : <b>constant</b> := 266;
++ <span class="symbol"><A NAME="ref_114_4">KEY_F3</A></span> : <b>constant</b> := 267;
++ <span class="symbol"><A NAME="ref_115_4">KEY_F4</A></span> : <b>constant</b> := 268;
++ <span class="symbol"><A NAME="ref_116_4">KEY_F5</A></span> : <b>constant</b> := 269;
++ <span class="symbol"><A NAME="ref_117_4">KEY_F6</A></span> : <b>constant</b> := 270;
++ <span class="symbol"><A NAME="ref_118_4">KEY_F7</A></span> : <b>constant</b> := 271;
++ <span class="symbol"><A NAME="ref_119_4">KEY_F8</A></span> : <b>constant</b> := 272;
++ <span class="symbol"><A NAME="ref_120_4">KEY_F9</A></span> : <b>constant</b> := 273;
++ <span class="symbol"><A NAME="ref_121_4">KEY_F10</A></span> : <b>constant</b> := 274;
++ <span class="symbol"><A NAME="ref_122_4">KEY_F11</A></span> : <b>constant</b> := 275;
++ <span class="symbol"><A NAME="ref_123_4">KEY_F12</A></span> : <b>constant</b> := 276;
++ <span class="symbol"><A NAME="ref_124_4">KEY_F13</A></span> : <b>constant</b> := 277;
++ <span class="symbol"><A NAME="ref_125_4">KEY_F14</A></span> : <b>constant</b> := 278;
++ <span class="symbol"><A NAME="ref_126_4">KEY_F15</A></span> : <b>constant</b> := 279;
++ <span class="symbol"><A NAME="ref_127_4">KEY_F16</A></span> : <b>constant</b> := 280;
++ <span class="symbol"><A NAME="ref_128_4">KEY_F17</A></span> : <b>constant</b> := 281;
++ <span class="symbol"><A NAME="ref_129_4">KEY_F18</A></span> : <b>constant</b> := 282;
++ <span class="symbol"><A NAME="ref_130_4">KEY_F19</A></span> : <b>constant</b> := 283;
++ <span class="symbol"><A NAME="ref_131_4">KEY_F20</A></span> : <b>constant</b> := 284;
++ <span class="symbol"><A NAME="ref_132_4">KEY_F21</A></span> : <b>constant</b> := 285;
++ <span class="symbol"><A NAME="ref_133_4">KEY_F22</A></span> : <b>constant</b> := 286;
++ <span class="symbol"><A NAME="ref_134_4">KEY_F23</A></span> : <b>constant</b> := 287;
++ <span class="symbol"><A NAME="ref_135_4">KEY_F24</A></span> : <b>constant</b> := 288;
++ <span class="symbol"><A NAME="ref_136_4">KEY_DL</A></span> : <b>constant</b> := 328;
++ <span class="symbol"><A NAME="ref_137_4">KEY_IL</A></span> : <b>constant</b> := 329;
++ <span class="symbol"><A NAME="ref_138_4">KEY_DC</A></span> : <b>constant</b> := 330;
++ <span class="symbol"><A NAME="ref_139_4">KEY_IC</A></span> : <b>constant</b> := 331;
++ <span class="symbol"><A NAME="ref_140_4">KEY_EIC</A></span> : <b>constant</b> := 332;
++ <span class="symbol"><A NAME="ref_141_4">KEY_CLEAR</A></span> : <b>constant</b> := 333;
++ <span class="symbol"><A NAME="ref_142_4">KEY_EOS</A></span> : <b>constant</b> := 334;
++ <span class="symbol"><A NAME="ref_143_4">KEY_EOL</A></span> : <b>constant</b> := 335;
++ <span class="symbol"><A NAME="ref_144_4">KEY_SF</A></span> : <b>constant</b> := 336;
++ <span class="symbol"><A NAME="ref_145_4">KEY_SR</A></span> : <b>constant</b> := 337;
++ <span class="symbol"><A NAME="ref_146_4">KEY_NPAGE</A></span> : <b>constant</b> := 338;
++ <span class="symbol"><A NAME="ref_147_4">KEY_PPAGE</A></span> : <b>constant</b> := 339;
++ <span class="symbol"><A NAME="ref_148_4">KEY_STAB</A></span> : <b>constant</b> := 340;
++ <span class="symbol"><A NAME="ref_149_4">KEY_CTAB</A></span> : <b>constant</b> := 341;
++ <span class="symbol"><A NAME="ref_150_4">KEY_CATAB</A></span> : <b>constant</b> := 342;
++ <span class="symbol"><A NAME="ref_151_4">KEY_ENTER</A></span> : <b>constant</b> := 343;
++ <span class="symbol"><A NAME="ref_152_4">KEY_SRESET</A></span> : <b>constant</b> := 344;
++ <span class="symbol"><A NAME="ref_153_4">KEY_RESET</A></span> : <b>constant</b> := 345;
++ <span class="symbol"><A NAME="ref_154_4">KEY_PRINT</A></span> : <b>constant</b> := 346;
++ <span class="symbol"><A NAME="ref_155_4">KEY_LL</A></span> : <b>constant</b> := 347;
++ <span class="symbol"><A NAME="ref_156_4">KEY_A1</A></span> : <b>constant</b> := 348;
++ <span class="symbol"><A NAME="ref_157_4">KEY_A3</A></span> : <b>constant</b> := 349;
++ <span class="symbol"><A NAME="ref_158_4">KEY_B2</A></span> : <b>constant</b> := 350;
++ <span class="symbol"><A NAME="ref_159_4">KEY_C1</A></span> : <b>constant</b> := 351;
++ <span class="symbol"><A NAME="ref_160_4">KEY_C3</A></span> : <b>constant</b> := 352;
++ <span class="symbol"><A NAME="ref_161_4">KEY_BTAB</A></span> : <b>constant</b> := 353;
++ <span class="symbol"><A NAME="ref_162_4">KEY_BEG</A></span> : <b>constant</b> := 354;
++ <span class="symbol"><A NAME="ref_163_4">KEY_CANCEL</A></span> : <b>constant</b> := 355;
++ <span class="symbol"><A NAME="ref_164_4">KEY_CLOSE</A></span> : <b>constant</b> := 356;
++ <span class="symbol"><A NAME="ref_165_4">KEY_COMMAND</A></span> : <b>constant</b> := 357;
++ <span class="symbol"><A NAME="ref_166_4">KEY_COPY</A></span> : <b>constant</b> := 358;
++ <span class="symbol"><A NAME="ref_167_4">KEY_CREATE</A></span> : <b>constant</b> := 359;
++ <span class="symbol"><A NAME="ref_168_4">KEY_END</A></span> : <b>constant</b> := 360;
++ <span class="symbol"><A NAME="ref_169_4">KEY_EXIT</A></span> : <b>constant</b> := 361;
++ <span class="symbol"><A NAME="ref_170_4">KEY_FIND</A></span> : <b>constant</b> := 362;
++ <span class="symbol"><A NAME="ref_171_4">KEY_HELP</A></span> : <b>constant</b> := 363;
++ <span class="symbol"><A NAME="ref_172_4">KEY_MARK</A></span> : <b>constant</b> := 364;
++ <span class="symbol"><A NAME="ref_173_4">KEY_MESSAGE</A></span> : <b>constant</b> := 365;
++ <span class="symbol"><A NAME="ref_174_4">KEY_MOVE</A></span> : <b>constant</b> := 366;
++ <span class="symbol"><A NAME="ref_175_4">KEY_NEXT</A></span> : <b>constant</b> := 367;
++ <span class="symbol"><A NAME="ref_176_4">KEY_OPEN</A></span> : <b>constant</b> := 368;
++ <span class="symbol"><A NAME="ref_177_4">KEY_OPTIONS</A></span> : <b>constant</b> := 369;
++ <span class="symbol"><A NAME="ref_178_4">KEY_PREVIOUS</A></span> : <b>constant</b> := 370;
++ <span class="symbol"><A NAME="ref_179_4">KEY_REDO</A></span> : <b>constant</b> := 371;
++ <span class="symbol"><A NAME="ref_180_4">KEY_REFERENCE</A></span> : <b>constant</b> := 372;
++ <span class="symbol"><A NAME="ref_181_4">KEY_REFRESH</A></span> : <b>constant</b> := 373;
++ <span class="symbol"><A NAME="ref_182_4">KEY_REPLACE</A></span> : <b>constant</b> := 374;
++ <span class="symbol"><A NAME="ref_183_4">KEY_RESTART</A></span> : <b>constant</b> := 375;
++ <span class="symbol"><A NAME="ref_184_4">KEY_RESUME</A></span> : <b>constant</b> := 376;
++ <span class="symbol"><A NAME="ref_185_4">KEY_SAVE</A></span> : <b>constant</b> := 377;
++ <span class="symbol"><A NAME="ref_186_4">KEY_SBEG</A></span> : <b>constant</b> := 378;
++ <span class="symbol"><A NAME="ref_187_4">KEY_SCANCEL</A></span> : <b>constant</b> := 379;
++ <span class="symbol"><A NAME="ref_188_4">KEY_SCOMMAND</A></span> : <b>constant</b> := 380;
++ <span class="symbol"><A NAME="ref_189_4">KEY_SCOPY</A></span> : <b>constant</b> := 381;
++ <span class="symbol"><A NAME="ref_190_4">KEY_SCREATE</A></span> : <b>constant</b> := 382;
++ <span class="symbol"><A NAME="ref_191_4">KEY_SDC</A></span> : <b>constant</b> := 383;
++ <span class="symbol"><A NAME="ref_192_4">KEY_SDL</A></span> : <b>constant</b> := 384;
++ <span class="symbol"><A NAME="ref_193_4">KEY_SELECT</A></span> : <b>constant</b> := 385;
++ <span class="symbol"><A NAME="ref_194_4">KEY_SEND</A></span> : <b>constant</b> := 386;
++ <span class="symbol"><A NAME="ref_195_4">KEY_SEOL</A></span> : <b>constant</b> := 387;
++ <span class="symbol"><A NAME="ref_196_4">KEY_SEXIT</A></span> : <b>constant</b> := 388;
++ <span class="symbol"><A NAME="ref_197_4">KEY_SFIND</A></span> : <b>constant</b> := 389;
++ <span class="symbol"><A NAME="ref_198_4">KEY_SHELP</A></span> : <b>constant</b> := 390;
++ <span class="symbol"><A NAME="ref_199_4">KEY_SHOME</A></span> : <b>constant</b> := 391;
++ <span class="symbol"><A NAME="ref_200_4">KEY_SIC</A></span> : <b>constant</b> := 392;
++ <span class="symbol"><A NAME="ref_201_4">KEY_SLEFT</A></span> : <b>constant</b> := 393;
++ <span class="symbol"><A NAME="ref_202_4">KEY_SMESSAGE</A></span> : <b>constant</b> := 394;
++ <span class="symbol"><A NAME="ref_203_4">KEY_SMOVE</A></span> : <b>constant</b> := 395;
++ <span class="symbol"><A NAME="ref_204_4">KEY_SNEXT</A></span> : <b>constant</b> := 396;
++ <span class="symbol"><A NAME="ref_205_4">KEY_SOPTIONS</A></span> : <b>constant</b> := 397;
++ <span class="symbol"><A NAME="ref_206_4">KEY_SPREVIOUS</A></span> : <b>constant</b> := 398;
++ <span class="symbol"><A NAME="ref_207_4">KEY_SPRINT</A></span> : <b>constant</b> := 399;
++ <span class="symbol"><A NAME="ref_208_4">KEY_SREDO</A></span> : <b>constant</b> := 400;
++ <span class="symbol"><A NAME="ref_209_4">KEY_SREPLACE</A></span> : <b>constant</b> := 401;
++ <span class="symbol"><A NAME="ref_210_4">KEY_SRIGHT</A></span> : <b>constant</b> := 402;
++ <span class="symbol"><A NAME="ref_211_4">KEY_SRSUME</A></span> : <b>constant</b> := 403;
++ <span class="symbol"><A NAME="ref_212_4">KEY_SSAVE</A></span> : <b>constant</b> := 404;
++ <span class="symbol"><A NAME="ref_213_4">KEY_SSUSPEND</A></span> : <b>constant</b> := 405;
++ <span class="symbol"><A NAME="ref_214_4">KEY_SUNDO</A></span> : <b>constant</b> := 406;
++ <span class="symbol"><A NAME="ref_215_4">KEY_SUSPEND</A></span> : <b>constant</b> := 407;
++ <span class="symbol"><A NAME="ref_216_4">KEY_UNDO</A></span> : <b>constant</b> := 408;
++ <span class="symbol"><A NAME="ref_217_4">KEY_MOUSE</A></span> : <b>constant</b> := 409;
++ <span class="symbol"><A NAME="ref_218_4">KEY_RESIZE</A></span> : <b>constant</b> := 410;
++
++ <span class="comment"><EM>-- alternate character codes (ACS) from addch(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_222_4">ACS_ULCORNER</A></span> : <b>constant</b> := 108;
++ <span class="symbol"><A NAME="ref_223_4">ACS_LLCORNER</A></span> : <b>constant</b> := 109;
++ <span class="symbol"><A NAME="ref_224_4">ACS_URCORNER</A></span> : <b>constant</b> := 107;
++ <span class="symbol"><A NAME="ref_225_4">ACS_LRCORNER</A></span> : <b>constant</b> := 106;
++ <span class="symbol"><A NAME="ref_226_4">ACS_LTEE</A></span> : <b>constant</b> := 116;
++ <span class="symbol"><A NAME="ref_227_4">ACS_RTEE</A></span> : <b>constant</b> := 117;
++ <span class="symbol"><A NAME="ref_228_4">ACS_BTEE</A></span> : <b>constant</b> := 118;
++ <span class="symbol"><A NAME="ref_229_4">ACS_TTEE</A></span> : <b>constant</b> := 119;
++ <span class="symbol"><A NAME="ref_230_4">ACS_HLINE</A></span> : <b>constant</b> := 113;
++ <span class="symbol"><A NAME="ref_231_4">ACS_VLINE</A></span> : <b>constant</b> := 120;
++ <span class="symbol"><A NAME="ref_232_4">ACS_PLUS</A></span> : <b>constant</b> := 110;
++ <span class="symbol"><A NAME="ref_233_4">ACS_S1</A></span> : <b>constant</b> := 111;
++ <span class="symbol"><A NAME="ref_234_4">ACS_S9</A></span> : <b>constant</b> := 115;
++ <span class="symbol"><A NAME="ref_235_4">ACS_DIAMOND</A></span> : <b>constant</b> := 96;
++ <span class="symbol"><A NAME="ref_236_4">ACS_CKBOARD</A></span> : <b>constant</b> := 97;
++ <span class="symbol"><A NAME="ref_237_4">ACS_DEGREE</A></span> : <b>constant</b> := 102;
++ <span class="symbol"><A NAME="ref_238_4">ACS_PLMINUS</A></span> : <b>constant</b> := 103;
++ <span class="symbol"><A NAME="ref_239_4">ACS_BULLET</A></span> : <b>constant</b> := 126;
++ <span class="symbol"><A NAME="ref_240_4">ACS_LARROW</A></span> : <b>constant</b> := 44;
++ <span class="symbol"><A NAME="ref_241_4">ACS_RARROW</A></span> : <b>constant</b> := 43;
++ <span class="symbol"><A NAME="ref_242_4">ACS_DARROW</A></span> : <b>constant</b> := 46;
++ <span class="symbol"><A NAME="ref_243_4">ACS_UARROW</A></span> : <b>constant</b> := 45;
++ <span class="symbol"><A NAME="ref_244_4">ACS_BOARD</A></span> : <b>constant</b> := 104;
++ <span class="symbol"><A NAME="ref_245_4">ACS_LANTERN</A></span> : <b>constant</b> := 105;
++ <span class="symbol"><A NAME="ref_246_4">ACS_BLOCK</A></span> : <b>constant</b> := 48;
++ <span class="symbol"><A NAME="ref_247_4">ACS_S3</A></span> : <b>constant</b> := 112;
++ <span class="symbol"><A NAME="ref_248_4">ACS_S7</A></span> : <b>constant</b> := 114;
++ <span class="symbol"><A NAME="ref_249_4">ACS_LEQUAL</A></span> : <b>constant</b> := 121;
++ <span class="symbol"><A NAME="ref_250_4">ACS_GEQUAL</A></span> : <b>constant</b> := 122;
++ <span class="symbol"><A NAME="ref_251_4">ACS_PI</A></span> : <b>constant</b> := 123;
++ <span class="symbol"><A NAME="ref_252_4">ACS_NEQUAL</A></span> : <b>constant</b> := 124;
++ <span class="symbol"><A NAME="ref_253_4">ACS_STERLING</A></span> : <b>constant</b> := 125;
++
++ <span class="comment"><EM>-- Menu_Options from opts(3MENU)</EM></span>
++
++ <span class="symbol"><A NAME="ref_257_4">O_ONEVALUE_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_258_4">O_ONEVALUE_Last</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_259_4">O_SHOWDESC_First</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_260_4">O_SHOWDESC_Last</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_261_4">O_ROWMAJOR_First</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_262_4">O_ROWMAJOR_Last</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_263_4">O_IGNORECASE_First</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_264_4">O_IGNORECASE_Last</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_265_4">O_SHOWMATCH_First</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_266_4">O_SHOWMATCH_Last</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_267_4">O_NONCYCLIC_First</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_268_4">O_NONCYCLIC_Last</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_269_4">Menu_Options_Size</A></span> : <b>constant</b> := 32;
++
++ <span class="comment"><EM>-- Item_Options from menu_opts(3MENU)</EM></span>
++
++ <span class="symbol"><A NAME="ref_273_4">O_SELECTABLE_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_274_4">O_SELECTABLE_Last</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_275_4">Item_Options_Size</A></span> : <b>constant</b> := 32;
++
++ <span class="comment"><EM>-- Field_Options from field_opts(3FORM)</EM></span>
++
++ <span class="symbol"><A NAME="ref_279_4">O_VISIBLE_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_280_4">O_VISIBLE_Last</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_281_4">O_ACTIVE_First</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_282_4">O_ACTIVE_Last</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_283_4">O_PUBLIC_First</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_284_4">O_PUBLIC_Last</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_285_4">O_EDIT_First</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_286_4">O_EDIT_Last</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_287_4">O_WRAP_First</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_288_4">O_WRAP_Last</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_289_4">O_BLANK_First</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_290_4">O_BLANK_Last</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_291_4">O_AUTOSKIP_First</A></span> : <b>constant</b> := 6;
++ <span class="symbol"><A NAME="ref_292_4">O_AUTOSKIP_Last</A></span> : <b>constant</b> := 6;
++ <span class="symbol"><A NAME="ref_293_4">O_NULLOK_First</A></span> : <b>constant</b> := 7;
++ <span class="symbol"><A NAME="ref_294_4">O_NULLOK_Last</A></span> : <b>constant</b> := 7;
++ <span class="symbol"><A NAME="ref_295_4">O_PASSOK_First</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_296_4">O_PASSOK_Last</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_297_4">O_STATIC_First</A></span> : <b>constant</b> := 9;
++ <span class="symbol"><A NAME="ref_298_4">O_STATIC_Last</A></span> : <b>constant</b> := 9;
++ <span class="symbol"><A NAME="ref_299_4">Field_Options_Size</A></span> : <b>constant</b> := 32;
++
++ <span class="comment"><EM>-- Field_Options from opts(3FORM)</EM></span>
++
++ <span class="symbol"><A NAME="ref_303_4">O_NL_OVERLOAD_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_304_4">O_NL_OVERLOAD_Last</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_305_4">O_BS_OVERLOAD_First</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_306_4">O_BS_OVERLOAD_Last</A></span> : <b>constant</b> := 1;
++
++ <span class="comment"><EM>-- MEVENT structure from mouse(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_310_4">MEVENT_id_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_311_4">MEVENT_id_Last</A></span> : <b>constant</b> := 15;
++ <span class="symbol"><A NAME="ref_312_4">MEVENT_x_First</A></span> : <b>constant</b> := 32;
++ <span class="symbol"><A NAME="ref_313_4">MEVENT_x_Last</A></span> : <b>constant</b> := 63;
++ <span class="symbol"><A NAME="ref_314_4">MEVENT_y_First</A></span> : <b>constant</b> := 64;
++ <span class="symbol"><A NAME="ref_315_4">MEVENT_y_Last</A></span> : <b>constant</b> := 95;
++ <span class="symbol"><A NAME="ref_316_4">MEVENT_z_First</A></span> : <b>constant</b> := 96;
++ <span class="symbol"><A NAME="ref_317_4">MEVENT_z_Last</A></span> : <b>constant</b> := 127;
++ <span class="symbol"><A NAME="ref_318_4">MEVENT_bstate_First</A></span> : <b>constant</b> := 128;
++ <span class="symbol"><A NAME="ref_319_4">MEVENT_bstate_Last</A></span> : <b>constant</b> := 191;
++ <span class="symbol"><A NAME="ref_320_4">MEVENT_Size</A></span> : <b>constant</b> := 192;
++
++ <span class="comment"><EM>-- mouse events from mouse(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_324_4">BUTTON1_RELEASED</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_325_4">BUTTON1_PRESSED</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_326_4">BUTTON1_CLICKED</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_327_4">BUTTON1_DOUBLE_CLICKED</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_328_4">BUTTON1_TRIPLE_CLICKED</A></span> : <b>constant</b> := 16;
++ <span class="symbol"><A NAME="ref_329_4">BUTTON1_RESERVED_EVENT</A></span> : <b>constant</b> := 32;
++ <span class="symbol"><A NAME="ref_330_4">all_events_button_1</A></span> : <b>constant</b> := 63;
++ <span class="symbol"><A NAME="ref_331_4">BUTTON2_RELEASED</A></span> : <b>constant</b> := 64;
++ <span class="symbol"><A NAME="ref_332_4">BUTTON2_PRESSED</A></span> : <b>constant</b> := 128;
++ <span class="symbol"><A NAME="ref_333_4">BUTTON2_CLICKED</A></span> : <b>constant</b> := 256;
++ <span class="symbol"><A NAME="ref_334_4">BUTTON2_DOUBLE_CLICKED</A></span> : <b>constant</b> := 512;
++ <span class="symbol"><A NAME="ref_335_4">BUTTON2_TRIPLE_CLICKED</A></span> : <b>constant</b> := 1024;
++ <span class="symbol"><A NAME="ref_336_4">BUTTON2_RESERVED_EVENT</A></span> : <b>constant</b> := 2048;
++ <span class="symbol"><A NAME="ref_337_4">all_events_button_2</A></span> : <b>constant</b> := 4032;
++ <span class="symbol"><A NAME="ref_338_4">BUTTON3_RELEASED</A></span> : <b>constant</b> := 4096;
++ <span class="symbol"><A NAME="ref_339_4">BUTTON3_PRESSED</A></span> : <b>constant</b> := 8192;
++ <span class="symbol"><A NAME="ref_340_4">BUTTON3_CLICKED</A></span> : <b>constant</b> := 16384;
++ <span class="symbol"><A NAME="ref_341_4">BUTTON3_DOUBLE_CLICKED</A></span> : <b>constant</b> := 32768;
++ <span class="symbol"><A NAME="ref_342_4">BUTTON3_TRIPLE_CLICKED</A></span> : <b>constant</b> := 65536;
++ <span class="symbol"><A NAME="ref_343_4">BUTTON3_RESERVED_EVENT</A></span> : <b>constant</b> := 131072;
++ <span class="symbol"><A NAME="ref_344_4">all_events_button_3</A></span> : <b>constant</b> := 258048;
++ <span class="symbol"><A NAME="ref_345_4">BUTTON4_RELEASED</A></span> : <b>constant</b> := 262144;
++ <span class="symbol"><A NAME="ref_346_4">BUTTON4_PRESSED</A></span> : <b>constant</b> := 524288;
++ <span class="symbol"><A NAME="ref_347_4">BUTTON4_CLICKED</A></span> : <b>constant</b> := 1048576;
++ <span class="symbol"><A NAME="ref_348_4">BUTTON4_DOUBLE_CLICKED</A></span> : <b>constant</b> := 2097152;
++ <span class="symbol"><A NAME="ref_349_4">BUTTON4_TRIPLE_CLICKED</A></span> : <b>constant</b> := 4194304;
++ <span class="symbol"><A NAME="ref_350_4">BUTTON4_RESERVED_EVENT</A></span> : <b>constant</b> := 8388608;
++ <span class="symbol"><A NAME="ref_351_4">all_events_button_4</A></span> : <b>constant</b> := 16515072;
++ <span class="symbol"><A NAME="ref_352_4">BUTTON_CTRL</A></span> : <b>constant</b> := 16777216;
++ <span class="symbol"><A NAME="ref_353_4">BUTTON_SHIFT</A></span> : <b>constant</b> := 33554432;
++ <span class="symbol"><A NAME="ref_354_4">BUTTON_ALT</A></span> : <b>constant</b> := 67108864;
++ <span class="symbol"><A NAME="ref_355_4">REPORT_MOUSE_POSITION</A></span> : <b>constant</b> := 134217728;
++ <span class="symbol"><A NAME="ref_356_4">ALL_MOUSE_EVENTS</A></span> : <b>constant</b> := 134217727;
++
++ <span class="comment"><EM>-- trace selection from trace(3NCURSES)</EM></span>
++
++ <span class="symbol"><A NAME="ref_360_4">TRACE_TIMES_First</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_361_4">TRACE_TIMES_Last</A></span> : <b>constant</b> := 0;
++ <span class="symbol"><A NAME="ref_362_4">TRACE_TPUTS_First</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_363_4">TRACE_TPUTS_Last</A></span> : <b>constant</b> := 1;
++ <span class="symbol"><A NAME="ref_364_4">TRACE_UPDATE_First</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_365_4">TRACE_UPDATE_Last</A></span> : <b>constant</b> := 2;
++ <span class="symbol"><A NAME="ref_366_4">TRACE_MOVE_First</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_367_4">TRACE_MOVE_Last</A></span> : <b>constant</b> := 3;
++ <span class="symbol"><A NAME="ref_368_4">TRACE_CHARPUT_First</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_369_4">TRACE_CHARPUT_Last</A></span> : <b>constant</b> := 4;
++ <span class="symbol"><A NAME="ref_370_4">TRACE_CALLS_First</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_371_4">TRACE_CALLS_Last</A></span> : <b>constant</b> := 5;
++ <span class="symbol"><A NAME="ref_372_4">TRACE_VIRTPUT_First</A></span> : <b>constant</b> := 6;
++ <span class="symbol"><A NAME="ref_373_4">TRACE_VIRTPUT_Last</A></span> : <b>constant</b> := 6;
++ <span class="symbol"><A NAME="ref_374_4">TRACE_IEVENT_First</A></span> : <b>constant</b> := 7;
++ <span class="symbol"><A NAME="ref_375_4">TRACE_IEVENT_Last</A></span> : <b>constant</b> := 7;
++ <span class="symbol"><A NAME="ref_376_4">TRACE_BITS_First</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_377_4">TRACE_BITS_Last</A></span> : <b>constant</b> := 8;
++ <span class="symbol"><A NAME="ref_378_4">TRACE_ICALLS_First</A></span> : <b>constant</b> := 9;
++ <span class="symbol"><A NAME="ref_379_4">TRACE_ICALLS_Last</A></span> : <b>constant</b> := 9;
++ <span class="symbol"><A NAME="ref_380_4">TRACE_CCALLS_First</A></span> : <b>constant</b> := 10;
++ <span class="symbol"><A NAME="ref_381_4">TRACE_CCALLS_Last</A></span> : <b>constant</b> := 10;
++ <span class="symbol"><A NAME="ref_382_4">TRACE_DATABASE_First</A></span> : <b>constant</b> := 11;
++ <span class="symbol"><A NAME="ref_383_4">TRACE_DATABASE_Last</A></span> : <b>constant</b> := 11;
++ <span class="symbol"><A NAME="ref_384_4">TRACE_ATTRS_First</A></span> : <b>constant</b> := 12;
++ <span class="symbol"><A NAME="ref_385_4">TRACE_ATTRS_Last</A></span> : <b>constant</b> := 12;
++ <span class="symbol"><A NAME="ref_386_4">Trace_Size</A></span> : <b>constant</b> := 32;
++<b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses_constants__ads.htm#ref_6_28">Curses_Constants</A>;
++</PRE></BODY></HTML>
+Index: doc/html/ada/terminal_interface__ads.htm
+--- ncurses-5.9/doc/html/ada/terminal_interface__ads.htm 2006-09-23 20:31:33.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ada/terminal_interface__ads.htm 2013-05-18 21:41:07.000000000 +0000
+@@ -1,53 +1,65 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+-<HTML><HEAD><TITLE>terminal_interface.ads</TITLE></HEAD>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++<HTML>
++<HEAD>
++<TITLE>terminal_interface.ads</TITLE>
++<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
++<style type="text/css">
++*.comment {
++ color: green;
++}
++*.symbol {
++ color: red;
++}
++</style>
++</HEAD>
+ <BODY>
+-<HR><DIV ALIGN="center"><H1> File : terminal_interface.ads </H1></DIV><HR>
++<HR><DIV style="text-align:center"><H1> File : terminal_interface.ads </H1></DIV><HR>
+ <PRE>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Terminal_Interface --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Copyright (c) 1998,2006 Free Software Foundation, Inc. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
+-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
+-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+-<FONT COLOR=green><EM>-- --</EM></FONT>
+-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
+-<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+-<FONT COLOR=green><EM>-- @Date: 2006/06/25 14:30:22 @</EM></FONT>
+-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
+-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+-<b>package</b> <FONT COLOR=red><A NAME="ref_42_9">Terminal_Interface</A></FONT> <b>is</b>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Terminal_Interface --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- S P E C --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Copyright (c) 1998,2006 Free Software Foundation, Inc. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></span>
++<span class="comment"><EM>-- copy of this software and associated documentation files (the --</EM></span>
++<span class="comment"><EM>-- "Software"), to deal in the Software without restriction, including --</EM></span>
++<span class="comment"><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></span>
++<span class="comment"><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></span>
++<span class="comment"><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></span>
++<span class="comment"><EM>-- furnished to do so, subject to the following conditions: --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- The above copyright notice and this permission notice shall be included --</EM></span>
++<span class="comment"><EM>-- in all copies or substantial portions of the Software. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></span>
++<span class="comment"><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></span>
++<span class="comment"><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></span>
++<span class="comment"><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></span>
++<span class="comment"><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></span>
++<span class="comment"><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></span>
++<span class="comment"><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></span>
++<span class="comment"><EM>-- --</EM></span>
++<span class="comment"><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></span>
++<span class="comment"><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></span>
++<span class="comment"><EM>-- sale, use or other dealings in this Software without prior written --</EM></span>
++<span class="comment"><EM>-- authorization. --</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<span class="comment"><EM>-- Author: Juergen Pfeifer, 1996</EM></span>
++<span class="comment"><EM>-- Version Control:</EM></span>
++<span class="comment"><EM>-- @Revision: 1.14 @</EM></span>
++<span class="comment"><EM>-- @Date: 2006/06/25 14:30:22 @</EM></span>
++<span class="comment"><EM>-- Binding Version 01.00</EM></span>
++<span class="comment"><EM>------------------------------------------------------------------------------</EM></span>
++<b>package</b> <span class="symbol"><A NAME="ref_42_9">Terminal_Interface</A></span> <b>is</b>
+ <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>);
+-<FONT COLOR=green><EM>--</EM></FONT>
+-<FONT COLOR=green><EM>-- Everything is in the child units</EM></FONT>
+-<FONT COLOR=green><EM>--</EM></FONT>
++<span class="comment"><EM>--</EM></span>
++<span class="comment"><EM>-- Everything is in the child units</EM></span>
++<span class="comment"><EM>--</EM></span>
+ <b>end</b> <A HREF="terminal_interface__ads.htm#ref_42_9">Terminal_Interface</A>;
+ </PRE></BODY></HTML>
+Index: doc/html/announce.html
+Prereq: 1.55
+--- ncurses-5.9/doc/html/announce.html 2011-04-04 09:46:33.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/announce.html 2013-05-17 23:34:26.000000000 +0000
+@@ -1,6 +1,6 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+- $Id: announce.html,v 1.55 2011/04/04 09:46:33 tom Exp $
++ $Id: announce.html,v 1.56 2013/05/17 23:34:26 tom Exp $
+ ****************************************************************************
+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+Index: doc/html/hackguide.html
+Prereq: 1.28
+--- ncurses-5.9/doc/html/hackguide.html 2010-12-04 16:44:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/hackguide.html 2013-05-17 23:29:18.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+- $Id: hackguide.html,v 1.28 2010/12/04 16:44:21 tom Exp $
++ $Id: hackguide.html,v 1.29 2013/05/17 23:29:18 tom Exp $
+ ****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+Index: doc/html/index.html
+Prereq: 1.5
+--- ncurses-5.9/doc/html/index.html 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/index.html 2013-05-17 23:30:29.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+- $Id: index.html,v 1.5 2010/12/04 18:36:44 tom Exp $
++ $Id: index.html,v 1.6 2013/05/17 23:30:29 tom Exp $
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+Index: doc/html/man/adacurses-config.1.html
+--- ncurses-5.9/doc/html/man/adacurses-config.1.html 2011-04-04 22:46:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/adacurses-config.1.html 2014-08-16 20:43:07.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2010-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: MKada_config.in,v 1.5 2011/03/26 14:44:51 tom Exp @
++ * @Id: MKada_config.in,v 1.8 2014/06/07 19:32:52 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -78,12 +78,66 @@
+ <STRONG>--help</STRONG> prints a list of the <STRONG>adacurses-config</STRONG> script's
+ options.
+
++ If no options are given, <STRONG>adacurses-config</STRONG> prints the com-
++ bination of <STRONG>--cflags</STRONG> and <STRONG>--libs</STRONG> that <STRONG>gnatmake</STRONG> expects (see
++ example).
++
++
++</PRE>
++<H2>EXAMPLE</H2><PRE>
++ For example, supposing that you want to compile the "Hello
++ World!" program for AdaCurses. Make a file named
++ "hello.adb":
++ with Terminal_Interface.Curses; use Terminal_Interface.Curses;
++
++ procedure Hello is
++
++ Visibility : Cursor_Visibility := Invisible;
++ done : Boolean := False;
++ c : Key_Code;
++
++ begin
++
++ Init_Screen;
++ Set_Echo_Mode (False);
++
++ Set_Cursor_Visibility (Visibility);
++ Set_Timeout_Mode (Standard_Window, Non_Blocking, 0);
++
++ Move_Cursor (Line =&gt; Lines / 2, Column =&gt; (Columns - 12) / 2);
++ Add (Str =&gt; "Hello World!");
++
++ while not done loop
++
++ c := Get_Keystroke (Standard_Window);
++ case c is
++ when Character'Pos ('q') =&gt; done := True;
++ when others =&gt; null;
++ end case;
++
++ Nap_Milli_Seconds (50);
++
++ end loop;
++
++ End_Windows;
++
++ end Hello;
++
++ Then, using
++ gnatmake `adacurses-config --cflags` hello -largs
++ `adacurses-config --libs`
++
++ or (simpler):
++ gnatmake hello `adacurses-config`
++
++ you will compile and link the program.
++
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/captoinfo.1m.html
+--- ncurses-5.9/doc/html/man/captoinfo.1m.html 2011-04-04 22:46:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/captoinfo.1m.html 2014-08-16 20:43:07.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+@@ -87,8 +87,8 @@
+
+ </PRE>
+ <H2>FILES</H2><PRE>
+- /usr/share/terminfo Compiled terminal description
+- database.
++ /usr/share/terminfo Compiled terminal description data-
++ base.
+
+
+ </PRE>
+@@ -101,7 +101,6 @@
+ has not mistakenly translated a completely unknown and
+ random capability and/or syntax error.
+
+-
+ Nonstd Std From Terminfo
+ name name capability
+ -----------------------------------------------
+@@ -116,8 +115,8 @@
+ EN @7 XENIX key_end
+ GE ae XENIX exit_alt_charset_mode
+ GS as XENIX enter_alt_charset_mode
+-
+ HM kh XENIX key_home
++
+ LD kL XENIX key_dl
+ PD kN XENIX key_npage
+ PN po XENIX prtr_off
+@@ -139,7 +138,6 @@
+ bilities for forms drawing, designed to take advantage of
+ the IBM PC high-half graphics. They were as follows:
+
+-
+ Cap Graphic
+ -----------------------------
+ G2 upper left
+@@ -182,7 +180,6 @@
+ font0 s0ds
+ font1 s1ds
+ font2 s2ds
+-
+ font3 s3ds
+
+ Additionally, the AIX <EM>box1</EM> capability will be automati-
+@@ -208,7 +205,7 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+ </PRE>
+Index: doc/html/man/clear.1.html
+--- ncurses-5.9/doc/html/man/clear.1.html 2011-04-04 22:46:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/clear.1.html 2014-08-16 20:43:07.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: clear.1,v 1.8 2010/12/04 18:36:44 tom Exp @
++ * @Id: clear.1,v 1.10 2013/06/22 22:22:11 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -57,9 +57,11 @@
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- <STRONG>clear</STRONG> clears your screen if this is possible. It looks in
+- the environment for the terminal type and then in the <STRONG>ter-</STRONG>
+- <STRONG>minfo</STRONG> database to figure out how to clear the screen.
++ <STRONG>clear</STRONG> clears your screen if this is possible, including
++ its scrollback buffer (if the extended "E3" capability is
++ defined). <STRONG>clear</STRONG> looks in the environment for the terminal
++ type and then in the <STRONG>terminfo</STRONG> database to determine how to
++ clear the screen.
+
+ <STRONG>clear</STRONG> ignores any command-line parameters that may be
+ present.
+@@ -69,7 +71,7 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/curs_add_wch.3x.html
+--- ncurses-5.9/doc/html/man/curs_add_wch.3x.html 2011-02-25 23:24:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_add_wch.3x.html 2013-12-21 21:59:35.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_add_wch.3x,v 1.14 2011/01/15 15:27:43 tom Exp @
++ * @Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -77,17 +77,17 @@
+ ous character at that location is removed. A new
+ character specified by <EM>wch</EM> is placed at that location
+ with rendition specified by <EM>wch</EM>. The cursor then
+- advances to the next spacing character on the screen.
++ advances to the next spacing character on the screen.
+
+ <STRONG>o</STRONG> If <EM>wch</EM> refers to a non-spacing character, all previous
+- characters at that location are preserved. The non-
+- spacing characters of <EM>wch</EM> are added to the spacing
+- complex character, and the rendition specified by <EM>wch</EM>
++ characters at that location are preserved. The non-
++ spacing characters of <EM>wch</EM> are added to the spacing
++ complex character, and the rendition specified by <EM>wch</EM>
+ is ignored.
+
+- <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline,
+- backspace or other control character, the window is
+- updated and the cursor moves as if <STRONG>addch</STRONG> were called.
++ <STRONG>o</STRONG> If the character part of <EM>wch</EM> is a tab, newline,
++ backspace or other control character, the window is
++ updated and the cursor moves as if <STRONG>addch</STRONG> were called.
+
+ The <STRONG>echo_wchar</STRONG> function is functionally equivalent to a
+ call to <STRONG>add_wch</STRONG> followed by a call to <STRONG>refresh</STRONG>. Similarly,
+@@ -99,11 +99,10 @@
+ functions instead of their equivalents.
+
+ <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
+- Like <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG>, <STRONG>addch_wch</STRONG> accepts symbols which make it
++ Like <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG>addch_wch</STRONG> accepts symbols which make it
+ simple to draw lines and other frequently used special
+ characters. These symbols correspond to the same VT100
+- line-drawing set as <STRONG><A HREF="addch.3x.html">addch(3x)</A></STRONG>.
+-
++ line-drawing set as <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+
+ <EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM>
+ ----------------------------------------------------------------
+@@ -111,8 +110,8 @@
+ WACS_BOARD 0x2592 # board of squares
+ WACS_BTEE 0x2534 + bottom tee
+ WACS_BULLET 0x00b7 o bullet
+-
+ WACS_CKBOARD 0x2592 : checker board (stipple)
++
+ WACS_DARROW 0x2193 v arrow pointing down
+ WACS_DEGREE 0x00b0 ' degree symbol
+ WACS_DIAMOND 0x25c6 + diamond
+@@ -144,7 +143,6 @@
+ The wide-character configuration of ncurses also defines
+ symbols for thick- and double-lines:
+
+-
+ <EM>Name</EM> <EM>Unicode</EM> <EM>Default</EM> <EM>Description</EM>
+ ---------------------------------------------------------------------
+ WACS_T_ULCORNER 0x250f + thick upper left corner
+@@ -172,7 +170,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+ success.
+
+@@ -217,7 +215,7 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,
+- <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="putwc.3.html">putwc(3)</A></STRONG>
++ <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG>putwc(3)</STRONG>
+
+
+
+Index: doc/html/man/curs_add_wchstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_add_wchstr.3x.html 2011-01-09 01:03:05.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_add_wchstr.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_add_wchstr.3x,v 1.9 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -47,7 +47,7 @@
+
+ </PRE>
+ <H2>NAME</H2><PRE>
+- <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>,
++ <STRONG>add_wchstr</STRONG>, <STRONG>add_wchnstr</STRONG>, <STRONG>wadd_wchstr</STRONG>, <STRONG>wadd_wchnstr</STRONG>,
+ <STRONG>mvadd_wchstr</STRONG>, <STRONG>mvadd_wchnstr</STRONG>, <STRONG>mvwadd_wchstr</STRONG>, <STRONG>mvwadd_wchnstr</STRONG>
+ - add an array of complex characters (and attributes) to a
+ curses window
+@@ -69,39 +69,42 @@
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- These routines copy the array of complex characters <EM>wchstr</EM>
+- into the window image structure at and after the current
+- cursor position. The four routines with <EM>n</EM> as the last
+- argument copy at most <EM>n</EM> elements, but no more than will
+- fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is copied,
+- to the maximum number of characters that will fit on the
+- line.
+-
+- The window cursor is <EM>not</EM> advanced. These routines work
+- faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per-
+- form checking (such as for the newline, backspace, or car-
+- riage return characters), they do not advance the current
+- cursor position, they do not expand other control charac-
+- ters to ^-escapes, and they truncate the string if it
+- crosses the right margin, rather than wrapping it around
+- to the new line.
+-
+- These routines end successfully on encountering a null
+- <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line. If a
+- complex character cannot completely fit at the end of the
+- current line, the remaining columns are filled with the
++ These functions copy the (null-terminated) array of com-
++ plex characters <EM>wchstr</EM> into the window image structure
++ starting at the current cursor position. The four func-
++ tions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
++ but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
++ whole array is copied, to the maximum number of characters
++ that will fit on the line.
++
++ The window cursor is <EM>not</EM> advanced. These functions work
++ faster than <STRONG>waddnstr</STRONG>. On the other hand:
++
++ <STRONG>o</STRONG> they do not perform checking (such as for the newline,
++ backspace, or carriage return characters),
++
++ <STRONG>o</STRONG> they do not advance the current cursor position,
++
++ <STRONG>o</STRONG> they do not expand other control characters to ^-es-
++ capes, and
++
++ <STRONG>o</STRONG> they truncate the string if it crosses the right mar-
++ gin, rather than wrapping it around to the new line.
++
++ These functions end successfully on encountering a null
++ <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, or when they have filled the current line. If a
++ complex character cannot completely fit at the end of the
++ current line, the remaining columns are filled with the
+ background character and rendition.
+
+
+ </PRE>
+-<H2>NOTES</H2><PRE>
+- All functions except <STRONG>wadd_wchnstr</STRONG> may be macros.
++<H2>RETURN VALUE</H2><PRE>
++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
++ on success.
+
+-
+-</PRE>
+-<H2>RETURN VALUES</H2><PRE>
+- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+- success.
++ X/Open does not define any error conditions. This imple-
++ mentation returns an error if the window pointer is null.
+
+ Functions with a "mv" prefix first perform a cursor move-
+ ment using <STRONG>wmove</STRONG>, and return an error if the position is
+@@ -109,14 +112,22 @@
+
+
+ </PRE>
++<H2>NOTES</H2><PRE>
++ All functions except <STRONG>wadd_wchnstr</STRONG> may be macros.
++
++
++</PRE>
+ <H2>PORTABILITY</H2><PRE>
+- All these entry points are described in the XSI Curses
+- standard, Issue 4.
++ These entry points are described in the XSI Curses stan-
++ dard, Issue 4.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
++ <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
++
++ Comparable functions in the narrow-character (ncurses) li-
++ brary are described in <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>.
+
+
+
+Index: doc/html/man/curs_addch.3x.html
+--- ncurses-5.9/doc/html/man/curs_addch.3x.html 2011-02-25 23:24:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_addch.3x.html 2014-05-24 22:05:34.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_addch.3x,v 1.32 2011/01/15 14:15:10 tom Exp @
++ * @Id: curs_addch.3x,v 1.33 2014/05/24 19:47:41 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -70,20 +70,34 @@
+ The <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG> and <STRONG>mvwaddch</STRONG> routines put the
+ character <EM>ch</EM> into the given window at its current window
+ position, which is then advanced. They are analogous to
+- <STRONG>putchar</STRONG> in <STRONG><A HREF="stdio.3.html">stdio(3)</A></STRONG>. If the advance is at the right mar-
+- gin, the cursor automatically wraps to the beginning of
+- the next line. At the bottom of the current scrolling
+- region, if <STRONG>scrollok</STRONG> is enabled, the scrolling region is
+- scrolled up one line.
++ <STRONG>putchar</STRONG> in <STRONG>stdio(3)</STRONG>. If the advance is at the right mar-
++ gin:
++
++ <STRONG>o</STRONG> The cursor automatically wraps to the beginning of the
++ next line.
++
++ <STRONG>o</STRONG> At the bottom of the current scrolling region, and if
++ <STRONG>scrollok</STRONG> is enabled, the scrolling region is scrolled
++ up one line.
++
++ <STRONG>o</STRONG> If <STRONG>scrollok</STRONG> is not enabled, writing a character at the
++ lower right margin succeeds. However, an error is
++ returned because it is not possible to wrap to a new
++ line
+
+ If <EM>ch</EM> is a tab, newline, or backspace, the cursor is moved
+- appropriately within the window. Backspace moves the cur-
+- 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-
+- sidered to be at every eighth column. The tab interval
+- may be altered by setting the <STRONG>TABSIZE</STRONG> variable.
++ appropriately within the window:
++
++ <STRONG>o</STRONG> Backspace moves the cursor one character left; at the
++ left edge of a window it does nothing.
++
++ <STRONG>o</STRONG> 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.
++
++ <STRONG>o</STRONG> Tabs are considered to be at every eighth column. The
++ tab interval may be altered by setting the <STRONG>TABSIZE</STRONG>
++ variable.
+
+ If <EM>ch</EM> is any control character other than tab, newline, or
+ backspace, it is drawn in <STRONG>^</STRONG><EM>X</EM> notation. Calling <STRONG>winch</STRONG>
+@@ -112,9 +126,8 @@
+ characters to the screen with routines of the <STRONG>addch</STRONG> fam-
+ ily. The default character listed below is used if the
+ <STRONG>acsc</STRONG> capability does not define a terminal-specific
+- replacement for it. The names are taken from VT100
+- nomenclature.
+-
++ replacement for it. The names are taken from VT100 nomen-
++ clature.
+
+ <EM>Name</EM> <EM>Default</EM> <EM>Description</EM>
+ --------------------------------------------------
+@@ -202,7 +215,7 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
+- <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
++ <STRONG>putc(3)</STRONG>.
+
+ Comparable functions in the wide-character (ncursesw)
+ library are described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>.
+Index: doc/html/man/curs_addchstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_addchstr.3x.html 2011-01-09 01:03:04.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_addchstr.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_addchstr.3x,v 1.15 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -62,62 +62,63 @@
+ <STRONG>int</STRONG> <STRONG>waddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvaddchstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvaddchnstr(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+- <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG>
+- <STRONG>*chstr);</STRONG>
+- <STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG>
+- <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
++ <STRONG>int</STRONG> <STRONG>mvwaddchstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr);</STRONG>
++ <STRONG>int</STRONG> <STRONG>mvwaddchnstr(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>const</STRONG> <STRONG>chtype</STRONG> <STRONG>*chstr,</STRONG> <STRONG>int</STRONG> <STRONG>n);</STRONG>
+
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- These routines copy <EM>chstr</EM> into the window image structure
+- at and after the current cursor position. The four rou-
+- tines with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
+- but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
+- whole string is copied, to the maximum number of charac-
+- ters that will fit on the line.
+-
+- The window cursor is <EM>not</EM> advanced, and these routines work
+- faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per-
+- form any kind of checking (such as for the newline,
+- backspace, or carriage return characters), they do not ad-
+- vance the current cursor position, they do not expand oth-
+- er control characters to ^-escapes, and they truncate the
+- string if it crosses the right margin, rather than wrap-
+- ping it around to the new line.
++ These functions copy the (null-terminated) <EM>chstr</EM> array in-
++ to the window image structure starting at the current cur-
++ sor position. The four functions with <EM>n</EM> as the last argu-
++ ment copy at most <EM>n</EM> elements, but no more than will fit on
++ the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is copied, to the
++ maximum number of characters that will fit on the line.
++
++ The window cursor is <EM>not</EM> advanced. These functions work
++ faster than <STRONG>waddnstr</STRONG>. On the other hand:
++
++ <STRONG>o</STRONG> they do not perform checking (such as for the newline,
++ backspace, or carriage return characters),
++
++ <STRONG>o</STRONG> they do not advance the current cursor position,
++
++ <STRONG>o</STRONG> they do not expand other control characters to ^-es-
++ capes, and
++
++ <STRONG>o</STRONG> they truncate the string if it crosses the right mar-
++ gin, rather than wrapping it around to the new line.
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
+- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+- success (the SVr4 manuals specify only "an integer value
+- other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
+- wise noted in the preceding routine descriptions.
++<H2>RETURN VALUE</H2><PRE>
++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
++ on success.
+
+- X/Open does not define any error conditions. This imple-
++ X/Open does not define any error conditions. This imple-
+ mentation returns an error if the window pointer is null.
+
+- Functions with a "mv" prefix first perform a cursor move-
+- ment using <STRONG>wmove</STRONG>, and return an error if the position is
++ Functions with a "mv" prefix first perform a cursor move-
++ ment using <STRONG>wmove</STRONG>, and return an error if the position is
+ outside the window, or if the window pointer is null.
+
+
+ </PRE>
+ <H2>NOTES</H2><PRE>
+- Note that all routines except <STRONG>waddchnstr</STRONG> may be macros.
++ All functions except <STRONG>waddchnstr</STRONG> may be macros.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- These entry points are described in the XSI Curses stan-
++ These entry points are described in the XSI Curses stan-
+ dard, Issue 4.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
++ <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
+
+- Comparable functions in the wide-character (ncursesw) li-
++ Comparable functions in the wide-character (ncursesw) li-
+ brary are described in <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>.
+
+
+Index: doc/html/man/curs_addstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_addstr.3x.html 2011-01-09 01:03:05.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_addstr.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_addstr.3x,v 1.16 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -68,26 +68,32 @@
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- These routines write the characters of the (null-terminat-
+- ed) character string <EM>str</EM> on the given window. It is simi-
+- lar to calling <STRONG>waddch</STRONG> once for each character in the
+- string. The four routines with <EM>n</EM> as the last argument
+- write at most <EM>n</EM> characters. If <EM>n</EM> is -1, then the entire
+- string will be added, up to the maximum number of charac-
+- ters that will fit on the line, or until a terminating
+- null is reached.
++ These functions write the (null-terminated) character
++ string <EM>str</EM> on the given window. It is similar to calling
++ <STRONG>waddch</STRONG> once for each character in the string.
++
++ The <EM>mv</EM> functions perform cursor movement once, before
++ writing any characters. Thereafter, the cursor is ad-
++ vanced as a side-effect of writing to the window.
++
++ The four functions with <EM>n</EM> as the last argument write at
++ most <EM>n</EM> characters, or until a terminating null is reached.
++ If <EM>n</EM> is -1, then the entire string will be added.
+
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+- success (the SVr4 manuals specify only "an integer value
+- other than <STRONG>ERR</STRONG>") upon successful completion.
++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
++ on success.
+
+ X/Open does not define any error conditions. This imple-
+- mentation returns an error if the window pointer is null
+- or if the string pointer is null or if the corresponding
+- calls to <STRONG>waddch</STRONG> return an error.
++ mentation returns an error
++
++ <STRONG>o</STRONG> if the window pointer is null or
++
++ <STRONG>o</STRONG> if the string pointer is null or
++
++ <STRONG>o</STRONG> if the corresponding calls to <STRONG>waddch</STRONG> return an error.
+
+ Functions with a "mv" prefix first perform a cursor move-
+ ment using <STRONG>wmove</STRONG>, and return an error if the position is
+@@ -96,16 +102,13 @@
+
+ </PRE>
+ <H2>NOTES</H2><PRE>
+- Note that all of these routines except <STRONG>waddstr</STRONG> and
+- <STRONG>waddnstr</STRONG> may be macros.
++ All of these functions except <STRONG>waddnstr</STRONG> may be macros.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- All these entry points are described in the XSI Curses
+- standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW,
+- associated with extended-level conformance, are not yet
+- detected.
++ These functions are described in the XSI Curses standard,
++ Issue 4.
+
+
+ </PRE>
+Index: doc/html/man/curs_addwstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_addwstr.3x.html 2011-01-09 01:03:05.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_addwstr.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_addwstr.3x,v 1.10 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -68,43 +68,51 @@
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- These routines write the characters of the (null-terminat-
+- ed) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window. It
+- is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t in
+- the string, then calling <STRONG>wadd_wch</STRONG> for the resulting
++ These functions write the characters of the (null-termi-
++ nated) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window.
++ It is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t
++ in the string, then calling <STRONG>wadd_wch</STRONG> for the resulting
+ <STRONG>cchar_t</STRONG>.
+
+- The <EM>mv</EM> routines perform cursor movement once, before writ-
+- ing any characters. Thereafter, the cursor is advanced as
+- a side-effect of writing to the window.
++ The <EM>mv</EM> functions perform cursor movement once, before
++ writing any characters. Thereafter, the cursor is ad-
++ vanced as a side-effect of writing to the window.
+
+- The four routines with <EM>n</EM> as the last argument write at
+- most <EM>n</EM> <STRONG>wchar_t</STRONG> characters. If <EM>n</EM> is -1, then the entire
+- string will be added, up to the maximum number of charac-
+- ters that will fit on the line, or until a terminating
+- null is reached.
++ The four functions with <EM>n</EM> as the last argument write at
++ most <EM>n</EM> <STRONG>wchar_t</STRONG> characters, or until a terminating null is
++ reached. If <EM>n</EM> is -1, then the entire string will be
++ added.
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
+- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
+- success.
++<H2>RETURN VALUE</H2><PRE>
++ All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
++ on success.
+
+- Functions with a "mv" prefix first perform a cursor move-
+- ment using <STRONG>wmove</STRONG>, and return an error if the position is
++ X/Open does not define any error conditions. This imple-
++ mentation returns an error
++
++ <STRONG>o</STRONG> if the window pointer is null or
++
++ <STRONG>o</STRONG> if the string pointer is null or
++
++ <STRONG>o</STRONG> if the corresponding calls to <STRONG>wadd_wch</STRONG> return an er-
++ ror.
++
++ Functions with a "mv" prefix first perform a cursor move-
++ ment using <STRONG>wmove</STRONG>, and return an error if the position is
+ outside the window, or if the window pointer is null.
+
+
+ </PRE>
+ <H2>NOTES</H2><PRE>
+- Note that all of these routines except <STRONG>waddnwstr</STRONG> may be
+- macros.
++ All of these functions except <STRONG>waddnwstr</STRONG> may be macros.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- All these entry points are described in the XSI Curses
+- standard, Issue 4.
++ These functions are described in the XSI Curses standard,
++ Issue 4.
+
+
+ </PRE>
+Index: doc/html/man/curs_attr.3x.html
+--- ncurses-5.9/doc/html/man/curs_attr.3x.html 2011-02-25 23:24:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_attr.3x.html 2013-12-21 19:55:41.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_attr.3x,v 1.36 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_attr.3x,v 1.39 2013/09/21 20:39:49 Sven.Joachim Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -148,19 +148,36 @@
+ be passed to the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or
+ OR'd with the characters passed to <STRONG>addch</STRONG>.
+
++ <EM>Name</EM> <EM>Description</EM>
++ ------------------------------------------------------------
++ <STRONG>A_NORMAL</STRONG> Normal display (no highlight)
++ <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
++ <STRONG>A_UNDERLINE</STRONG> Underlining
++ <STRONG>A_REVERSE</STRONG> Reverse video
++ <STRONG>A_BLINK</STRONG> Blinking
++ <STRONG>A_DIM</STRONG> Half bright
++ <STRONG>A_BOLD</STRONG> Extra bright or bold
++ <STRONG>A_PROTECT</STRONG> Protected mode
++ <STRONG>A_INVIS</STRONG> Invisible or blank mode
++ <STRONG>A_ALTCHARSET</STRONG> Alternate character set
++ <STRONG>A_ITALIC</STRONG> Italics (non-X/Open extension)
++ <STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character
++ <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> Color-pair number <EM>n</EM>
++
++ These video attributes are supported by <STRONG>attr_on</STRONG> and relat-
++ ed functions (which also support the attributes recognized
++ by <STRONG>attron</STRONG>, etc.):
++
++ <EM>Name</EM> <EM>Description</EM>
++ -----------------------------------------
++ <STRONG>WA_HORIZONTAL</STRONG> Horizontal highlight
++ <STRONG>WA_LEFT</STRONG> Left highlight
++ <STRONG>WA_LOW</STRONG> Low highlight
++ <STRONG>WA_RIGHT</STRONG> Right highlight
++ <STRONG>WA_TOP</STRONG> Top highlight
++ <STRONG>WA_VERTICAL</STRONG> Vertical highlight
+
+- <STRONG>A_NORMAL</STRONG> Normal display (no highlight)
+- <STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
+- <STRONG>A_UNDERLINE</STRONG> Underlining
+- <STRONG>A_REVERSE</STRONG> Reverse video
+- <STRONG>A_BLINK</STRONG> Blinking
+- <STRONG>A_DIM</STRONG> Half bright
+- <STRONG>A_BOLD</STRONG> Extra bright or bold
+- <STRONG>A_PROTECT</STRONG> Protected mode
+- <STRONG>A_INVIS</STRONG> Invisible or blank mode
+- <STRONG>A_ALTCHARSET</STRONG> Alternate character set
+- <STRONG>A_CHARTEXT</STRONG> Bit-mask to extract a character
+- <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> Color-pair number <EM>n</EM>
++ For consistency
+
+ The following macro is the reverse of <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG>:
+
+@@ -202,33 +219,44 @@
+ correctly manipulate all other highlights (specifically,
+ <STRONG>A_ALTCHARSET</STRONG>, <STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
+
++ This implementation provides the <STRONG>A_ITALIC</STRONG> attribute for
++ terminals which have the <EM>enter</EM><STRONG>_</STRONG><EM>italics</EM><STRONG>_</STRONG><EM>mode</EM> (sitm) and <EM>ex-</EM>
++ <EM>it</EM><STRONG>_</STRONG><EM>italics</EM><STRONG>_</STRONG><EM>mode</EM> (ritm) capabilities. Italics are not men-
++ tioned in X/Open Curses. Unlike the other video at-
++ tributes, <STRONG>I_ITALIC</STRONG> is unrelated to the <EM>set</EM><STRONG>_</STRONG><EM>attributes</EM> ca-
++ pabilities. This implementation makes the assumption that
++ <EM>exit</EM><STRONG>_</STRONG><EM>attribute</EM><STRONG>_</STRONG><EM>mode</EM> may also reset italics.
++
+ XSI Curses added the new entry points, <STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>,
+ <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>wat-</STRONG>
+ <STRONG>tr_set</STRONG>. These are intended to work with a new series of
+- highlight macros prefixed with <STRONG>WA_</STRONG>.
+-
+- Older versions of this library did not force an update of
+- the screen when changing the attributes. Use <STRONG>touchwin</STRONG> to
+- force the screen to match the updated attributes.
++ highlight macros prefixed with <STRONG>WA_</STRONG>. The older macros have
++ direct counterparts in the newer set of names:
+
++ <EM>Name</EM> <EM>Description</EM>
++ ------------------------------------------------------------
++ <STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
++ <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
++ <STRONG>WA_UNDERLINE</STRONG> Underlining
++ <STRONG>WA_REVERSE</STRONG> Reverse video
++ <STRONG>WA_BLINK</STRONG> Blinking
++ <STRONG>WA_DIM</STRONG> Half bright
++ <STRONG>WA_BOLD</STRONG> Extra bright or bold
++ <STRONG>WA_ALTCHARSET</STRONG> Alternate character set
+
+- <STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
+- <STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
+- <STRONG>WA_UNDERLINE</STRONG> Underlining
+- <STRONG>WA_REVERSE</STRONG> Reverse video
+- <STRONG>WA_BLINK</STRONG> Blinking
+- <STRONG>WA_DIM</STRONG> Half bright
+- <STRONG>WA_BOLD</STRONG> Extra bright or bold
+- <STRONG>WA_ALTCHARSET</STRONG> Alternate character set
++ Older versions of this library did not force an update of
++ the screen when changing the attributes. Use <STRONG>touchwin</STRONG> to
++ force the screen to match the updated attributes.
+
+ The XSI curses standard specifies that each pair of corre-
+- sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same
++ sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same
+ current-highlight information.
+
+ The XSI standard extended conformance level adds new high-
+ lights <STRONG>A_HORIZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VER-</STRONG>
+- <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each) which this
+- implementation does not yet support.
++ <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each). As of Au-
++ gust 2013, no known terminal provides these highlights
++ (i.e., via the <STRONG>sgr1</STRONG> capability).
+
+
+ </PRE>
+Index: doc/html/man/curs_beep.3x.html
+--- ncurses-5.9/doc/html/man/curs_beep.3x.html 2011-01-09 01:03:05.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_beep.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_bkgd.3x.html
+--- ncurses-5.9/doc/html/man/curs_bkgd.3x.html 2011-01-09 01:03:06.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_bkgd.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2003,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_bkgrnd.3x.html
+--- ncurses-5.9/doc/html/man/curs_bkgrnd.3x.html 2011-01-09 01:03:06.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_bkgrnd.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_bkgrnd.3x,v 1.4 2010/12/04 18:49:20 tom Exp @
++ * @Id: curs_bkgrnd.3x,v 1.5 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -102,7 +102,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ The <STRONG>bkgrndset</STRONG> and <STRONG>wbkgrndset</STRONG> routines do not return a
+ value.
+
+Index: doc/html/man/curs_border.3x.html
+--- ncurses-5.9/doc/html/man/curs_border.3x.html 2011-01-09 01:03:06.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_border.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_border_set.3x.html
+--- ncurses-5.9/doc/html/man/curs_border_set.3x.html 2011-01-22 21:01:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_border_set.3x.html 2013-05-17 22:24:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_border_set.3x,v 1.10 2011/01/15 12:56:18 tom Exp @
++ * @Id: curs_border_set.3x,v 1.11 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -154,7 +154,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ Upon successful completion, these functions return <STRONG>OK</STRONG>.
+ Otherwise, they return <STRONG>ERR</STRONG>.
+
+Index: doc/html/man/curs_clear.3x.html
+--- ncurses-5.9/doc/html/man/curs_clear.3x.html 2011-01-09 01:03:06.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_clear.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_color.3x.html
+--- ncurses-5.9/doc/html/man/curs_color.3x.html 2011-01-09 01:03:06.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_color.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_delch.3x.html
+--- ncurses-5.9/doc/html/man/curs_delch.3x.html 2011-01-09 01:03:07.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_delch.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_deleteln.3x.html
+--- ncurses-5.9/doc/html/man/curs_deleteln.3x.html 2011-01-09 01:03:07.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_deleteln.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_extend.3x.html
+--- ncurses-5.9/doc/html/man/curs_extend.3x.html 2011-01-09 01:03:07.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_extend.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1999-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_get_wch.3x.html
+--- ncurses-5.9/doc/html/man/curs_get_wch.3x.html 2010-09-18 21:35:17.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_get_wch.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_get_wch.3x,v 1.7 2010/08/14 23:31:42 tom Exp @
++ * @Id: curs_get_wch.3x,v 1.8 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -122,7 +122,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ When <STRONG>get_wch</STRONG>, <STRONG>wget_wch</STRONG>, <STRONG>mvget_wch</STRONG>, and <STRONG>mvwget_wch</STRONG> func-
+ tions successfully report the pressing of a function key,
+ they return <STRONG>KEY_CODE_YES</STRONG>. When they successfully report a
+Index: doc/html/man/curs_get_wstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_get_wstr.3x.html 2011-01-09 01:03:08.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_get_wstr.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_get_wstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_get_wstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -118,7 +118,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ All of these functions return <STRONG>OK</STRONG> upon successful comple-
+ tion. Otherwise, they return <STRONG>ERR</STRONG>.
+
+Index: doc/html/man/curs_getcchar.3x.html
+--- ncurses-5.9/doc/html/man/curs_getcchar.3x.html 2011-01-09 01:03:07.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_getcchar.3x.html 2013-12-21 21:39:16.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_getcchar.3x,v 1.15 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_getcchar.3x,v 1.16 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -128,7 +128,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ When <EM>wch</EM> is a null pointer, <STRONG>getcchar</STRONG> returns the number of
+ wide characters referenced by <EM>wcval</EM>, including one for a
+ trailing null.
+@@ -143,7 +143,7 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+ Functions: <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
+- <STRONG><A HREF="wcwidth.3.html">wcwidth(3)</A></STRONG>.
++ <STRONG>wcwidth(3)</STRONG>.
+
+
+
+Index: doc/html/man/curs_getch.3x.html
+--- ncurses-5.9/doc/html/man/curs_getch.3x.html 2011-02-25 23:24:52.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_getch.3x.html 2014-05-24 22:05:35.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_getch.3x,v 1.36 2011/01/22 19:38:51 tom Exp @
++ * @Id: curs_getch.3x,v 1.39 2014/05/24 20:16:31 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -76,14 +76,24 @@
+ waits until a character is typed or the specified timeout
+ has been reached.
+
+- Unless <STRONG>noecho</STRONG> has been set, then the character will also
+- be echoed into the designated window according to the fol-
+- lowing rules: if the character is the current erase char-
+- acter, left arrow, or backspace, the cursor is moved one
+- space to the left and that screen position is erased as if
+- <STRONG>delch</STRONG> had been called. If the character value is any oth-
+- er <STRONG>KEY_</STRONG> define, the user is alerted with a <STRONG>beep</STRONG> call.
+- Otherwise the character is simply output to the screen.
++ If <STRONG>echo</STRONG> is enabled, and the window is not a pad, then the
++ character will also be echoed into the designated window
++ according to the following rules:
++
++ <STRONG>o</STRONG> If the character is the current erase character, left
++ arrow, or backspace, the cursor is moved one space to
++ the left and that screen position is erased as if
++ <STRONG>delch</STRONG> had been called.
++
++ <STRONG>o</STRONG> If the character value is any other <STRONG>KEY_</STRONG> define, the
++ user is alerted with a <STRONG>beep</STRONG> call.
++
++ <STRONG>o</STRONG> If the character is a carriage-return, and if <STRONG>nl</STRONG> is
++ enabled, it is translated to a line-feed after echo-
++ ing.
++
++ <STRONG>o</STRONG> Otherwise the character is simply output to the
++ screen.
+
+ If the window is not a pad, and it has been moved or modi-
+ fied since the last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will be
+@@ -93,7 +103,7 @@
+ ken for that function key is returned instead of the raw
+ characters. Possible function keys are defined in <STRONG>&lt;curs-</STRONG>
+ <STRONG>es.h&gt;</STRONG> as macros with values outside the range of 8-bit
+- characters whose names begin with <STRONG>KEY_</STRONG>. Thus, a variable
++ 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.
+
+@@ -110,15 +120,14 @@
+ be returned by the next call to <STRONG>wgetch</STRONG>. There is just one
+ input queue for all windows.
+
+-
+ <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
+ The following function keys, defined in <STRONG>&lt;curses.h&gt;</STRONG>, might
+ be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note
+ that not all of these are necessarily supported on any
+ particular terminal.
+
+-
+ <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
++ -------------------------------------------------
+ KEY_BREAK Break key
+ KEY_DOWN The four arrow keys ...
+ KEY_UP
+@@ -169,6 +178,7 @@
+ 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
+@@ -180,7 +190,6 @@
+ 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
+@@ -233,21 +242,18 @@
+ sion of <STRONG>KEY_MOUSE</STRONG>.
+
+
+-
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+ All routines return the integer <STRONG>ERR</STRONG> upon failure and an
+ integer value other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of ungetch())
+ upon successful completion.
+
+- <STRONG>ungetch</STRONG>
+- returns an error if there is no more room in
+- the FIFO.
+-
+- <STRONG>wgetch</STRONG>
+- returns an error if the window pointer is
+- null, or if its timeout expires without having
+- any data.
++ <STRONG>ungetch</STRONG>
++ returns ERR if there is no more room in the FIFO.
++
++ <STRONG>wgetch</STRONG>
++ returns ERR if the window pointer is null, or if
++ its timeout expires without having any data.
+
+ Functions with a "mv" prefix first perform a cursor move-
+ ment using <STRONG>wmove</STRONG>, and return an error if the position is
+@@ -321,7 +327,7 @@
+ documentation. Under historical curses implementations,
+ it varied depending on whether the operating system's im-
+ plementation of handled signal receipt interrupts a
+- <STRONG><A HREF="read.2.html">read(2)</A></STRONG> call in progress or not, and also (in some imple-
++ <STRONG>read(2)</STRONG> call in progress or not, and also (in some imple-
+ mentations) depending on whether an input timeout or non-
+ blocking mode has been set.
+
+Index: doc/html/man/curs_getstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_getstr.3x.html 2011-01-09 01:03:08.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_getstr.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_getyx.3x.html
+--- ncurses-5.9/doc/html/man/curs_getyx.3x.html 2011-01-09 01:03:08.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_getyx.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_in_wch.3x.html
+--- ncurses-5.9/doc/html/man/curs_in_wch.3x.html 2011-01-09 01:03:10.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_in_wch.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_in_wchstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_in_wchstr.3x.html 2011-01-09 01:03:10.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_in_wchstr.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_in_wchstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp @
++ * @Id: curs_in_wchstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -90,7 +90,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ Upon successful completion, these functions return <STRONG>OK</STRONG>.
+ Otherwise, they return <STRONG>ERR</STRONG>.
+
+Index: doc/html/man/curs_inch.3x.html
+--- ncurses-5.9/doc/html/man/curs_inch.3x.html 2011-01-09 01:03:08.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_inch.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/curs_inchstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_inchstr.3x.html 2011-01-09 01:03:09.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_inchstr.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_initscr.3x.html
+--- ncurses-5.9/doc/html/man/curs_initscr.3x.html 2011-01-09 01:03:09.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_initscr.3x.html 2014-05-24 22:05:35.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_initscr.3x,v 1.17 2010/12/04 18:36:58 tom Exp @
++ * @Id: curs_initscr.3x,v 1.20 2014/03/01 22:31:22 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -86,22 +86,34 @@
+ use <STRONG>newterm</STRONG>. The routine <STRONG>newterm</STRONG> should be called once
+ for each terminal. It returns a variable of type <STRONG>SCREEN</STRONG> <STRONG>*</STRONG>
+ which should be saved as a reference to that terminal.
+- The arguments are the <EM>type</EM> of the terminal to be used in
+- place of <STRONG>$TERM</STRONG>, a file pointer for output to the terminal,
+- and another file pointer for input from the terminal (if
+- <EM>type</EM> is <STRONG>NULL</STRONG>, <STRONG>$TERM</STRONG> will be used). The program must also
+- call <STRONG>endwin</STRONG> for each terminal being used before exiting
+- from <STRONG>curses</STRONG>. If <STRONG>newterm</STRONG> is called more than once for the
+- same terminal, the first terminal referred to must be the
+- last one for which <STRONG>endwin</STRONG> is called.
+-
+- A program should always call <STRONG>endwin</STRONG> before exiting or es-
+- caping from <STRONG>curses</STRONG> mode temporarily. This routine re-
+- stores tty modes, moves the cursor to the lower left-hand
+- corner of the screen and resets the terminal into the
+- proper non-visual mode. Calling <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG> after
+- a temporary escape causes the program to resume visual
+- mode.
++ <STRONG>newterm</STRONG>'s arguments are
++
++ <STRONG>o</STRONG> the <EM>type</EM> of the terminal to be used in place of <STRONG>$TERM</STRONG>,
++
++ <STRONG>o</STRONG> a file pointer for output to the terminal, and
++
++ <STRONG>o</STRONG> another file pointer for input from the terminal
++
++ If the <EM>type</EM> parameter is <STRONG>NULL</STRONG>, <STRONG>$TERM</STRONG> will be used.
++
++ The program must also call <STRONG>endwin</STRONG> for each terminal being
++ used before exiting from <STRONG>curses</STRONG>. If <STRONG>newterm</STRONG> is called
++ more than once for the same terminal, the first terminal
++ referred to must be the last one for which <STRONG>endwin</STRONG> is
++ called.
++
++ A program should always call <STRONG>endwin</STRONG> before exiting or es-
++ caping from <STRONG>curses</STRONG> mode temporarily. This routine
++
++ <STRONG>o</STRONG> restores tty modes,
++
++ <STRONG>o</STRONG> moves the cursor to the lower left-hand corner of the
++ screen and
++
++ <STRONG>o</STRONG> resets the terminal into the proper non-visual mode.
++
++ Calling <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG> after a temporary escape caus-
++ es the program to resume visual mode.
+
+ The <STRONG>isendwin</STRONG> routine returns <STRONG>TRUE</STRONG> if <STRONG>endwin</STRONG> has been
+ called without any subsequent calls to <STRONG>wrefresh</STRONG>, and <STRONG>FALSE</STRONG>
+@@ -128,8 +140,17 @@
+ Routines that return pointers always return <STRONG>NULL</STRONG> on error.
+
+ X/Open defines no error conditions. In this implementa-
+- tion <STRONG>endwin</STRONG> returns an error if the terminal was not ini-
+- tialized.
++ tion
++
++ <STRONG>o</STRONG> <STRONG>endwin</STRONG> returns an error if the terminal was not ini-
++ tialized.
++
++ <STRONG>o</STRONG> <STRONG>newterm</STRONG> returns an error if it cannot allocate the da-
++ ta structures for the screen, or for the top-level
++ windows within the screen, i.e., <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, or
++ <STRONG>stdscr</STRONG>.
++
++ <STRONG>o</STRONG> <STRONG>set_term</STRONG> returns no error.
+
+
+ </PRE>
+@@ -139,20 +160,28 @@
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- These functions are described in the XSI Curses standard,
++ These functions are described in the XSI Curses standard,
+ Issue 4. It specifies that portable applications must not
+ call <STRONG>initscr</STRONG> more than once.
+
+ Old versions of curses, e.g., BSD 4.4, may have returned a
+- null pointer from <STRONG>initscr</STRONG> when an error is detected,
+- rather than exiting. It is safe but redundant to check
++ null pointer from <STRONG>initscr</STRONG> when an error is detected,
++ rather than exiting. It is safe but redundant to check
+ the return value of <STRONG>initscr</STRONG> in XSI Curses.
+
++ If the TERM variable is missing or empty, <STRONG>initscr</STRONG> uses the
++ value "unknown", which normally corresponds to a terminal
++ entry with the <EM>generic</EM> (<EM>gn</EM>) capability. Generic entries
++ are detected by <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> and cannot be used for full-
++ screen operation. Other implementations may handle a
++ missing/empty TERM variable differently.
++
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+- <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
++ <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG>curs_vari-</STRONG>
++ <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>.
+
+
+
+Index: doc/html/man/curs_inopts.3x.html
+--- ncurses-5.9/doc/html/man/curs_inopts.3x.html 2011-01-09 01:03:09.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_inopts.3x.html 2013-12-21 21:39:16.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp @
++ * @Id: curs_inopts.3x,v 1.18 2013/07/20 19:42:02 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -135,7 +135,7 @@
+
+ Initially, whether the terminal returns 7 or 8 significant
+ bits on input depends on the control mode of the tty driv-
+- er [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. To force 8 bits to be returned, in-
++ er [see <STRONG>termio(7)</STRONG>]. To force 8 bits to be returned, in-
+ voke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is equivalent, under POSIX, to
+ setting the CS8 flag on the terminal. To force 7 bits to
+ be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is equivalent,
+@@ -168,7 +168,7 @@
+
+ When the <STRONG>noqiflush</STRONG> routine is used, normal flush of input
+ and output queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG>
+- characters will not be done [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. When <STRONG>qiflush</STRONG>
++ characters will not be done [see <STRONG>termio(7)</STRONG>]. When <STRONG>qiflush</STRONG>
+ is called, the queues will be flushed when these control
+ characters are read. You may want to call <STRONG>noqiflush()</STRONG> in
+ a signal handler if you want output to continue as though
+@@ -185,7 +185,7 @@
+ additional capability of being able to block for only <EM>de-</EM>
+ <EM>lay</EM> milliseconds (where <EM>delay</EM> is positive).
+
+- The <STRONG>curses</STRONG> library does ``line-breakout optimization'' by
++ The <STRONG>curses</STRONG> library does "line-breakout optimization" by
+ looking for typeahead periodically while updating the
+ screen. If input is found, and it is coming from a tty,
+ the current update is postponed until <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG>
+@@ -229,24 +229,58 @@
+ ty, set echo or noecho explicitly just after initializa-
+ tion, even if your program remains in cooked mode.
+
++ When <STRONG>keypad</STRONG> is first enabled, ncurses loads the key-defi-
++ nitions for the current terminal description. If the ter-
++ minal description includes extended string capabilities,
++ e.g., from using the <STRONG>-x</STRONG> option of tic, then ncurses also
++ defines keys for the capabilities whose names begin with
++ "k". The corresponding keycodes are generated and (de-
++ pending on previous loads of terminal descriptions) may
++ differ from one execution of a program to the next. The
++ generated keycodes are recognized by the <STRONG>keyname</STRONG> function
++ (which will then return a name beginning with "k" denoting
++ the terminfo capability name rather than "K", used for
++ curses key-names). On the other hand, an application can
++ use <STRONG>define_key</STRONG> to establish a specific keycode for a given
++ string. This makes it possible for an application to
++ check for an extended capability's presence with <EM>tigetstr</EM>,
++ and reassign the keycode to match its own needs.
++
++ Low-level applications can use <STRONG>tigetstr</STRONG> to obtain the def-
++ inition of any particular string capability. Higher-level
++ applications which use the curses <STRONG>wgetch</STRONG> and similar func-
++ tions to return keycodes rely upon the order in which the
++ strings are loaded. If more than one key definition has
++ the same string value, then <STRONG>wgetch</STRONG> can return only one
++ keycode. Most curses implementations (including ncurses)
++ load key definitions in the order defined by the array of
++ string capability names. The last key to be loaded deter-
++ mines the keycode which will be returned. In ncurses, you
++ may also have extended capabilities interpreted as key
++ definitions. These are loaded after the predefined keys,
++ and if a capability's value is the same as a previously-
++ loaded key definition, the later definition is the one
++ used.
++
+
+ </PRE>
+ <H2>NOTES</H2><PRE>
+- Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG>
+- <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG>
++ Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG>
++ <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG>
+ may be macros.
+
+ The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in
+- that they attempt to restore to normal (`cooked') mode
+- from raw and cbreak modes respectively. Mixing raw/noraw
+- and cbreak/nocbreak calls leads to tty driver control
+- states that are hard to predict or understand; it is not
++ that they attempt to restore to normal (`cooked') mode
++ from raw and cbreak modes respectively. Mixing raw/noraw
++ and cbreak/nocbreak calls leads to tty driver control
++ states that are hard to predict or understand; it is not
+ recommended.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
++ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG>termio(7)</STRONG>
+
+
+
+Index: doc/html/man/curs_ins_wch.3x.html
+--- ncurses-5.9/doc/html/man/curs_ins_wch.3x.html 2011-01-09 01:03:10.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_ins_wch.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_ins_wstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_ins_wstr.3x.html 2011-01-09 01:03:10.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_ins_wstr.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_ins_wstr.3x,v 1.6 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_ins_wstr.3x,v 1.7 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -102,7 +102,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ Upon successful completion, these functions return OK.
+ Otherwise, they return ERR.
+
+Index: doc/html/man/curs_insch.3x.html
+--- ncurses-5.9/doc/html/man/curs_insch.3x.html 2011-01-09 01:03:09.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_insch.3x.html 2013-05-17 22:24:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_insstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_insstr.3x.html 2011-01-09 01:03:09.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_insstr.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_instr.3x.html
+--- ncurses-5.9/doc/html/man/curs_instr.3x.html 2011-01-09 01:03:10.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_instr.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_inwstr.3x.html
+--- ncurses-5.9/doc/html/man/curs_inwstr.3x.html 2011-01-09 01:03:11.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_inwstr.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_inwstr.3x,v 1.7 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_inwstr.3x,v 1.8 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -87,7 +87,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ All routines return <STRONG>ERR</STRONG> upon failure. Upon successful com-
+ pletion, the *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the *<STRONG>innwstr</STRONG>
+ routines return the number of characters read into the
+Index: doc/html/man/curs_kernel.3x.html
+--- ncurses-5.9/doc/html/man/curs_kernel.3x.html 2011-01-09 01:03:11.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_kernel.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_legacy.3x.html
+--- ncurses-5.9/doc/html/man/curs_legacy.3x.html 2011-01-09 01:03:11.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_legacy.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_memleaks.3x.html
+--- ncurses-5.9/doc/html/man/curs_memleaks.3x.html 2011-01-09 01:03:11.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_memleaks.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2008,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_mouse.3x.html
+--- ncurses-5.9/doc/html/man/curs_mouse.3x.html 2011-02-25 23:24:55.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_mouse.3x.html 2013-12-21 19:55:43.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_mouse.3x,v 1.38 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_mouse.3x,v 1.39 2013/06/22 18:09:42 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -59,13 +59,12 @@
+
+ <STRONG>typedef</STRONG> <STRONG>unsigned</STRONG> <STRONG>long</STRONG> <STRONG>mmask_t;</STRONG>
+
+- typedef struct
+- {
+- short id; <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM>
++ <STRONG>typedef</STRONG> <STRONG>struct</STRONG> <STRONG>{</STRONG>
++ <STRONG>short</STRONG> <STRONG>id;</STRONG> <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>y,</STRONG> <STRONG>z;</STRONG> <EM>/*</EM> <EM>event</EM> <EM>coordinates</EM> <EM>*/</EM>
+ <STRONG>mmask_t</STRONG> <STRONG>bstate;</STRONG> <EM>/*</EM> <EM>button</EM> <EM>state</EM> <EM>bits</EM> <EM>*/</EM>
+- <STRONG>}</STRONG>
+- <STRONG>MEVENT;</STRONG>
++ <STRONG>}</STRONG> <STRONG>MEVENT;</STRONG>
++
+ <STRONG>bool</STRONG> <STRONG>has_mouse(void);</STRONG>
+ <STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*event);</STRONG>
+ <STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*event);</STRONG>
+@@ -98,7 +97,6 @@
+
+ Here are the mouse event type masks which may be defined:
+
+-
+ <EM>Name</EM> <EM>Description</EM>
+ ---------------------------------------------------------------------
+ BUTTON1_PRESSED mouse button 1 down
+@@ -111,11 +109,10 @@
+ BUTTON2_RELEASED mouse button 2 up
+ BUTTON2_CLICKED mouse button 2 clicked
+ BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
+-
+-
+ BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
+ ---------------------------------------------------------------------
+ BUTTON3_PRESSED mouse button 3 down
++
+ BUTTON3_RELEASED mouse button 3 up
+ BUTTON3_CLICKED mouse button 3 clicked
+ BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
+Index: doc/html/man/curs_move.3x.html
+--- ncurses-5.9/doc/html/man/curs_move.3x.html 2011-01-09 01:03:12.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_move.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_opaque.3x.html
+--- ncurses-5.9/doc/html/man/curs_opaque.3x.html 2011-01-09 01:03:12.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_opaque.3x.html 2014-05-24 22:05:36.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_opaque.3x,v 1.9 2010/12/04 18:40:45 tom Exp @
++ * @Id: curs_opaque.3x,v 1.11 2014/03/15 19:24:23 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -69,6 +69,7 @@
+ <STRONG>bool</STRONG> <STRONG>is_subwin(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
+ <STRONG>bool</STRONG> <STRONG>is_syncok(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>wgetparent(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
++ <STRONG>int</STRONG> <STRONG>wgetdelay(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
+ <STRONG>int</STRONG> <STRONG>wgetscrreg(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>*top,</STRONG> <STRONG>int</STRONG> <STRONG>*bottom);</STRONG>
+
+
+@@ -76,7 +77,7 @@
+ <H2>DESCRIPTION</H2><PRE>
+ This implementation provides functions which return prop-
+ erties set in the WINDOW structure, allowing it to be
+- ``opaque'' if the symbol <STRONG>NCURSES_OPAQUE</STRONG> is defined:
++ "opaque" if the symbol <STRONG>NCURSES_OPAQUE</STRONG> is defined:
+
+ <STRONG>is_cleared</STRONG>
+ returns the value set in <STRONG>clearok</STRONG>
+@@ -116,6 +117,9 @@
+ <STRONG>is_syncok</STRONG>
+ returns the value set in <STRONG>syncok</STRONG>
+
++ <STRONG>wgetdelay</STRONG>
++ returns the delay timeout as set in <STRONG>wtimeout</STRONG>.
++
+ <STRONG>wgetparent</STRONG>
+ returns the parent WINDOW pointer for subwindows, or
+ NULL for windows having no parent.
+Index: doc/html/man/curs_outopts.3x.html
+--- ncurses-5.9/doc/html/man/curs_outopts.3x.html 2011-01-09 01:03:12.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_outopts.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_overlay.3x.html
+--- ncurses-5.9/doc/html/man/curs_overlay.3x.html 2011-01-09 01:03:12.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_overlay.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_overlay.3x,v 1.16 2010/12/04 18:40:45 tom Exp @
++ * @Id: curs_overlay.3x,v 1.17 2013/04/06 23:48:51 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -72,7 +72,7 @@
+ (blanks are not copied) whereas <STRONG>overwrite</STRONG> is destructive.
+
+ The <STRONG>copywin</STRONG> routine provides a finer granularity of con-
+- trol over the <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines. Like in the
++ trol over the <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> routines. As in the
+ <STRONG>prefresh</STRONG> routine, a rectangle is specified in the destina-
+ tion window, (<EM>dminrow</EM>, <EM>dmincol</EM>) and (<EM>dmaxrow</EM>, <EM>dmaxcol</EM>),
+ and the upper-left-corner coordinates of the source win-
+Index: doc/html/man/curs_pad.3x.html
+--- ncurses-5.9/doc/html/man/curs_pad.3x.html 2011-01-09 01:03:12.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_pad.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_print.3x.html
+--- ncurses-5.9/doc/html/man/curs_print.3x.html 2011-01-09 01:03:12.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_print.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_printw.3x.html
+--- ncurses-5.9/doc/html/man/curs_printw.3x.html 2011-01-09 01:03:13.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_printw.3x.html 2013-12-21 21:39:17.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+@@ -69,12 +69,12 @@
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+ The <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG> routines are
+- analogous to <STRONG>printf</STRONG> [see <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>]. In effect, the
++ analogous to <STRONG>printf</STRONG> [see <STRONG>printf(3)</STRONG>]. In effect, the
+ string that would be output by <STRONG>printf</STRONG> is output instead as
+ though <STRONG>waddstr</STRONG> were used on the given window.
+
+ The <STRONG>vwprintw</STRONG> and <STRONG>wv_printw</STRONG> routines are analogous to
+- <STRONG>vprintf</STRONG> [see <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>] and perform a <STRONG>wprintw</STRONG> using a
++ <STRONG>vprintf</STRONG> [see <STRONG>printf(3)</STRONG>] and perform a <STRONG>wprintw</STRONG> using a
+ variable argument list. The third argument is a <STRONG>va_list</STRONG>,
+ a pointer to a list of arguments, as defined in
+ <STRONG>&lt;stdarg.h&gt;</STRONG>.
+@@ -111,7 +111,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG>vprintf(3)</STRONG>
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG>vprintf(3)</STRONG>
+
+
+
+Index: doc/html/man/curs_refresh.3x.html
+--- ncurses-5.9/doc/html/man/curs_refresh.3x.html 2011-01-09 01:03:13.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_refresh.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_scanw.3x.html
+--- ncurses-5.9/doc/html/man/curs_scanw.3x.html 2011-01-09 01:03:13.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_scanw.3x.html 2013-12-21 22:17:44.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+@@ -66,9 +66,9 @@
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+ The <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> and <STRONG>mvscanw</STRONG> routines are analogous to
+- <STRONG>scanf</STRONG> [see <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>]. The effect of these routines is as
++ <STRONG>scanf</STRONG> [see <STRONG>scanf(3)</STRONG>]. The effect of these routines is as
+ though <STRONG>wgetstr</STRONG> were called on the window, and the result-
+- ing line used as input for <STRONG><A HREF="sscanf.3.html">sscanf(3)</A></STRONG>. Fields which do not
++ ing line used as input for <STRONG>sscanf(3)</STRONG>. Fields which do not
+ map to a variable in the <EM>fmt</EM> field are lost.
+
+ The <STRONG>vwscanw</STRONG> and <STRONG>vw_scanw</STRONG> routines are analogous to <STRONG>vscanf</STRONG>.
+@@ -118,7 +118,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="scanf.3.html">scanf(3)</A></STRONG>
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG>scanf(3)</STRONG>
+
+
+
+Index: doc/html/man/curs_scr_dump.3x.html
+--- ncurses-5.9/doc/html/man/curs_scr_dump.3x.html 2011-01-09 01:03:13.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_scr_dump.3x.html 2013-12-21 21:39:17.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+@@ -122,7 +122,7 @@
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+- <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="system.3.html">system(3)</A></STRONG>
++ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG>system(3)</STRONG>
+
+
+
+Index: doc/html/man/curs_scroll.3x.html
+--- ncurses-5.9/doc/html/man/curs_scroll.3x.html 2011-01-09 01:03:13.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_scroll.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_slk.3x.html
+--- ncurses-5.9/doc/html/man/curs_slk.3x.html 2011-01-09 01:03:14.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_slk.3x.html 2013-05-17 22:24:19.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_sp_funcs.3x.html
+--- ncurses-5.9/doc/html/man/curs_sp_funcs.3x.html 2011-02-25 23:24:57.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_sp_funcs.3x.html 2013-12-21 21:59:38.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_sp_funcs.3x,v 1.5 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_sp_funcs.3x,v 1.6 2013/06/22 17:53:59 tom Exp @
+ * ***************************************************************************
+ * ***************************************************************************
+ * ***************************************************************************
+@@ -131,7 +131,7 @@
+ <STRONG>int</STRONG> <STRONG>slk_attron_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_attr_set_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>attr_t,</STRONG> <STRONG>short,</STRONG> <STRONG>void*);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_attrset_sp(SCREEN*,</STRONG> <STRONG>const</STRONG> <STRONG>chtype);</STRONG>
+- <STRONG>int</STRONG> <STRONG>slk_attr_sp((SCREEN*);</STRONG>
++ <STRONG>int</STRONG> <STRONG>slk_attr_sp(SCREEN*);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_clear_sp(SCREEN*);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_color_sp(SCREEN*,</STRONG> <STRONG>short);</STRONG>
+ <STRONG>int</STRONG> <STRONG>slk_init_sp(SCREEN*,</STRONG> <STRONG>int);</STRONG>
+@@ -193,16 +193,15 @@
+ functions which improve the ability to manage multiple
+ screens. This feature can be added to any of the configu-
+ rations supported by ncurses; it adds new entrypoints
+- without changing the meaning of any of the existing ones.
+-
++ without changing the meaning of any of the existing ones.
+
+ <STRONG>IMPROVED</STRONG> <STRONG>FUNCTIONS</STRONG>
+- Most of the functions are new versions of existing func-
++ Most of the functions are new versions of existing func-
+ tions. A parameter is added at the front of the parameter
+ list. It is a SCREEN pointer.
+
+- The existing functions all use the current screen, which
+- is a static variable. The extended functions use the
++ The existing functions all use the current screen, which
++ is a static variable. The extended functions use the
+ specified screen, thereby reducing the number of variables
+ which must be modified to update multiple screens.
+
+@@ -210,22 +209,22 @@
+ Here are the new functions:
+
+ ceiling_panel
+- this returns a pointer to the topmost panel in the
++ this returns a pointer to the topmost panel in the
+ given screen.
+
+ ground_panel
+- this returns a pointer to the lowest panel in the
++ this returns a pointer to the lowest panel in the
+ given screen.
+
+ new_prescr
+- when creating a new screen, the library uses static
+- variables which have been preset, e.g., by
+- <STRONG><A HREF="use_env.3x.html">use_env(3x)</A></STRONG>, <STRONG><A HREF="filter.3x.html">filter(3x)</A></STRONG>, etc. With the screen-point-
++ when creating a new screen, the library uses static
++ variables which have been preset, e.g., by
++ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, etc. With the screen-point-
+ er extension, there are situations where it must cre-
+- ate a current screen before the unextended library
+- does. The <STRONG>new_prescr</STRONG> function is used internally to
++ ate a current screen before the unextended library
++ does. The <STRONG>new_prescr</STRONG> function is used internally to
+ handle these cases. It is also provided as an entry-
+- point to allow applications to customize the library
++ point to allow applications to customize the library
+ initialization.
+
+
+@@ -234,37 +233,36 @@
+ This extension introduces some new names:
+
+ NCURSES_SP_FUNCS
+- This is set to the library patch-level number. In
+- the unextended library, this is zero (0), to make it
++ This is set to the library patch-level number. In
++ the unextended library, this is zero (0), to make it
+ useful for checking if the extension is provided.
+
+ NCURSES_SP_NAME
+- The new functions are named using the macro <EM>NCURS-</EM>
+- <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
++ The new functions are named using the macro <EM>NCURS-</EM>
++ <EM>ES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>NAME</EM>, which hides the actual implementation.
+ Currently this adds a "_sp" suffix to the name of the
+- unextended function. This manual page indexes the
++ unextended function. This manual page indexes the
+ extensions showing the full name. However the proper
+- usage of these functions uses the macro, to provide
++ usage of these functions uses the macro, to provide
+ for the possibility of changing the naming convention
+ for specific library configurations.
+
+ NCURSES_SP_OUTC
+- This is a new function-pointer type to use in the
+- screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
++ This is a new function-pointer type to use in the
++ screen-pointer functions where an <EM>NCURSES</EM><STRONG>_</STRONG><EM>OUTC</EM> is
+ used in the unextended library.
+
+ NCURSES_OUTC
+- This is a function-pointer type used for the cases
+- where a function passes characters to the output
+- stream, e.g., <STRONG><A HREF="vidputs.3x.html">vidputs(3x)</A></STRONG>.
+-
++ This is a function-pointer type used for the cases
++ where a function passes characters to the output
++ stream, e.g., <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- These routines are specific to ncurses. They were not
+- supported on Version 7, BSD or System V implementations.
+- It is recommended that any code depending on ncurses ex-
++ These routines are specific to ncurses. They were not
++ supported on Version 7, BSD or System V implementations.
++ It is recommended that any code depending on ncurses ex-
+ tensions be conditioned using <EM>NCURSES</EM><STRONG>_</STRONG><EM>SP</EM><STRONG>_</STRONG><EM>FUNCS</EM>.
+
+
+Index: doc/html/man/curs_termattrs.3x.html
+--- ncurses-5.9/doc/html/man/curs_termattrs.3x.html 2011-02-25 23:24:58.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_termattrs.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+@@ -111,11 +111,11 @@
+
+ If a given terminal does not support a video attribute
+ that an application program is trying to use, <STRONG>curses</STRONG> may
+- substitute a different video attribute for it. The
+- <STRONG>termattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of
+- all video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG>
+- and <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is use-
+- ful when a <STRONG>curses</STRONG> program needs complete control over the
++ substitute a different video attribute for it. The <STRONG>ter-</STRONG>
++ <STRONG>mattrs</STRONG> and <STRONG>term_attrs</STRONG> functions return a logical <STRONG>OR</STRONG> of all
++ video attributes supported by the terminal using <EM>A</EM><STRONG>_</STRONG> and
++ <EM>WA</EM><STRONG>_</STRONG> constants respectively. This information is useful
++ when a <STRONG>curses</STRONG> program needs complete control over the
+ appearance of the screen.
+
+ The <STRONG>termname</STRONG> routine returns the terminal name used by
+Index: doc/html/man/curs_termcap.3x.html
+--- ncurses-5.9/doc/html/man/curs_termcap.3x.html 2011-01-09 01:03:14.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_termcap.3x.html 2013-12-21 21:39:17.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_termcap.3x,v 1.26 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -79,39 +79,62 @@
+ bilities of entries for which a terminfo entry has been
+ compiled.
+
+- The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns
+- 1 on success, 0 if there is no such entry, and -1 if the
+- terminfo database could not be found. The emulation ig-
+- nores the buffer pointer <EM>bp</EM>.
++ <STRONG>INITIALIZATION</STRONG>
++ The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns:
+
++ 1 on success,
++
++ 0 if there is no such entry (or that it is a generic
++ type, having too little information for curses ap-
++ plications to run), and
++
++ -1 if the terminfo database could not be found.
++
++ This differs from the <EM>termcap</EM> library in two ways:
++
++ <STRONG>o</STRONG> The emulation ignores the buffer pointer <EM>bp</EM>. The
++ <EM>termcap</EM> library would store a copy of the terminal
++ description in the area referenced by this pointer.
++ However, ncurses stores its terminal descriptions
++ in compiled binary form, which is not the same
++ thing.
++
++ <STRONG>o</STRONG> There is a difference in return codes. The <EM>termcap</EM>
++ library does not check if the terminal description
++ is marked with the <EM>generic</EM> capability, or if the
++ terminal description has cursor-addressing.
++
++ <STRONG>CAPABILITY</STRONG> <STRONG>VALUES</STRONG>
+ The <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or ze-
+ ro if it is not available.
+
+- The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1
++ The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1
+ if it is not available.
+
+- The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or
+- zero if it is not available. Use <STRONG>tputs</STRONG> to output the re-
+- turned string. The return value will also be copied to
+- the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be
++ The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or
++ zero if it is not available. Use <STRONG>tputs</STRONG> to output the re-
++ turned string. The return value will also be copied to
++ the buffer pointed to by <EM>area</EM>, and the <EM>area</EM> value will be
+ updated to point past the null ending this value.
+
+ Only the first two characters of the <STRONG>id</STRONG> parameter of <STRONG>tget-</STRONG>
+ <STRONG>flag</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetstr</STRONG> are compared in lookups.
+
+- The <STRONG>tgoto</STRONG> routine instantiates the parameters into the
+- given capability. The output from this routine is to be
++ <STRONG>FORMATTING</STRONG> <STRONG>CAPABILITIES</STRONG>
++ The <STRONG>tgoto</STRONG> routine instantiates the parameters into the
++ given capability. The output from this routine is to be
+ passed to <STRONG>tputs</STRONG>.
+
+- The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
++ The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ manual page. It can retrieve capabilities by either term-
+ cap or terminfo name.
+
++ <STRONG>GLOBAL</STRONG> <STRONG>VARIABLES</STRONG>
+ The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the ter-
+ minfo entry's data for <STRONG>pad_char</STRONG>, <STRONG>cursor_up</STRONG> and
+- <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> is not used by
++ <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> is not used by
+ ncurses. <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function. <STRONG>BC</STRONG> is
+- used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set
++ used in the <STRONG>tgoto</STRONG> emulation. The variable <STRONG>ospeed</STRONG> is set
+ by ncurses in a system-specific coding to reflect the ter-
+ minal speed.
+
+@@ -119,7 +142,7 @@
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+ Except where explicitly noted, routines that return an in-
+- teger return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies
++ teger return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies
+ "an integer value other than <STRONG>ERR</STRONG>") upon successful comple-
+ tion.
+
+@@ -129,54 +152,76 @@
+ </PRE>
+ <H2>BUGS</H2><PRE>
+ If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized
+- string, be aware that it will be returned in terminfo no-
++ string, be aware that it will be returned in terminfo no-
+ tation, not the older and not-quite-compatible termcap no-
+- tation. This will not cause problems if all you do with
+- it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-
+- style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if con-
+- figured to support termcap, will check if the string is
+- indeed terminfo-style by looking for "%p" parameters or
+- "$&lt;..&gt;" delays, and invoke a termcap-style parser if the
++ tation. This will not cause problems if all you do with
++ it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-
++ style strings as terminfo. (The <STRONG>tgoto</STRONG> function, if con-
++ figured to support termcap, will check if the string is
++ indeed terminfo-style by looking for "%p" parameters or
++ "$&lt;..&gt;" delays, and invoke a termcap-style parser if the
+ string does not appear to be terminfo).
+
+- Because terminfo conventions for representing padding in
+- string capabilities differ from termcap's, <STRONG>tputs("50");</STRONG>
+- will put out a literal "50" rather than busy-waiting for
++ Because terminfo conventions for representing padding in
++ string capabilities differ from termcap's, <STRONG>tputs("50");</STRONG>
++ will put out a literal "50" rather than busy-waiting for
+ 50 milliseconds. Cope with it.
+
+- Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG>
+- string. One consequence of this is that termcap applica-
+- tions assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter-
+- nate character set. This implementation checks for, and
++ Note that termcap has nothing analogous to terminfo's <STRONG>sgr</STRONG>
++ string. One consequence of this is that termcap applica-
++ tions assume me (terminfo <STRONG>sgr0</STRONG>) does not reset the alter-
++ nate character set. This implementation checks for, and
+ modifies the data shown to the termcap interface to accom-
+ modate termcap's limitation in this respect.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- The XSI Curses standard, Issue 4 describes these func-
+- tions. However, they are marked TO BE WITHDRAWN and may
++ The XSI Curses standard, Issue 4 describes these func-
++ tions. However, they are marked TO BE WITHDRAWN and may
+ be removed in future versions.
+
+- Neither the XSI Curses standard nor the SVr4 man pages
+- documented the return values of <STRONG>tgetent</STRONG> correctly, though
+- all three were in fact returned ever since SVr1. In par-
+- ticular, an omission in the XSI Curses documentation has
+- been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or
++ Neither the XSI Curses standard nor the SVr4 man pages
++ documented the return values of <STRONG>tgetent</STRONG> correctly, though
++ all three were in fact returned ever since SVr1. In par-
++ ticular, an omission in the XSI Curses documentation has
++ been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or
+ <STRONG>ERR</STRONG>. Because the purpose of these functions is to provide
+- compatibility with the <EM>termcap</EM> library, that is a defect
++ compatibility with the <EM>termcap</EM> library, that is a defect
+ in XCurses, Issue 4, Version 2 rather than in ncurses.
+
+- External variables are provided for support of certain
+- termcap applications. However, termcap applications' use
++ External variables are provided for support of certain
++ termcap applications. However, termcap applications' use
+ of those variables is poorly documented, e.g., not distin-
+- guishing between input and output. In particular, some
++ guishing between input and output. In particular, some
+ applications are reported to declare and/or modify <STRONG>ospeed</STRONG>.
+
++ The comment that only the first two characters of the <STRONG>id</STRONG>
++ parameter are used escapes many application developers.
++ The original BSD 4.2 termcap library (and historical
++ relics thereof) did not require a trailing null NUL on the
++ parameter name passed to <STRONG>tgetstr</STRONG>, <STRONG>tgetnum</STRONG> and <STRONG>tgetflag</STRONG>.
++ Some applications assume that the termcap interface does
++ not require the trailing NUL for the parameter name. Tak-
++ ing into account these issues:
++
++ <STRONG>o</STRONG> As a special case, <STRONG>tgetflag</STRONG> matched against a single-
++ character identifier provided that was at the end of
++ the terminal description. You should not rely upon
++ this behavior in portable programs. This implementa-
++ tion disallows matches against single-character capa-
++ bility names.
++
++ <STRONG>o</STRONG> This implementation disallows matches by the termcap
++ interface against extended capability names which are
++ longer than two characters.
++
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>.
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>.
++
++ http://invisible-island.net/ncurses/tctest.html
+
+
+
+Index: doc/html/man/curs_terminfo.3x.html
+--- ncurses-5.9/doc/html/man/curs_terminfo.3x.html 2011-01-09 01:03:15.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_terminfo.3x.html 2013-12-21 21:39:18.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,12 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_terminfo.3x,v 1.35 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_terminfo.3x,v 1.43 2013/07/20 19:29:59 tom Exp @
++ * ***************************************************************************
++ * ***************************************************************************
++ * ***************************************************************************
++ * ***************************************************************************
++ * ***************************************************************************
+ -->
+ <HTML>
+ <HEAD>
+@@ -68,7 +73,7 @@
+ <STRONG>int</STRONG> <STRONG>putp(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>vidputs(chtype</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
+ <STRONG>int</STRONG> <STRONG>vidattr(chtype</STRONG> <EM>attrs</EM><STRONG>);</STRONG>
+- <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(char));</STRONG>
++ <STRONG>int</STRONG> <STRONG>vid_puts(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>(*</STRONG><EM>putc</EM><STRONG>)(int));</STRONG>
+ <STRONG>int</STRONG> <STRONG>vid_attr(attr_t</STRONG> <EM>attrs</EM><STRONG>,</STRONG> <STRONG>short</STRONG> <EM>pair</EM><STRONG>,</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>opts</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvcur(int</STRONG> <EM>oldrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>oldcol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>newrow</EM>, int <EM>newcol</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>tigetflag(char</STRONG> <STRONG>*</STRONG><EM>capname</EM><STRONG>);</STRONG>
+@@ -85,38 +90,51 @@
+ tion keys. For all other functionality, <STRONG>curses</STRONG> routines
+ are more suitable and their use is recommended.
+
++ <STRONG>Initialization</STRONG>
+ Initially, <STRONG>setupterm</STRONG> should be called. Note that <STRONG>se-</STRONG>
+ <STRONG>tupterm</STRONG> is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG>.
+ This defines the set of terminal-dependent variables
+- [listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and
+- <STRONG>columns</STRONG> are initialized by <STRONG>setupterm</STRONG> as follows:
++ [listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>].
+
+- If <STRONG>use_env(FALSE)</STRONG> has been called, values for <STRONG>lines</STRONG>
+- and <STRONG>columns</STRONG> specified in <STRONG>terminfo</STRONG> are used.
++ Each initialization routine provides applications with the
++ terminal capabilities either directly (via header defini-
++ tions), or by special functions. The header files <STRONG>curs-</STRONG>
++ <STRONG>es.h</STRONG> and <STRONG>term.h</STRONG> should be included (in this order) to get
++ the definitions for these strings, numbers, and flags.
+
+- Otherwise, if the environment variables <STRONG>LINES</STRONG> and
+- <STRONG>COLUMNS</STRONG> exist, their values are used. If these en-
+- vironment variables do not exist and the program is
+- running in a window, the current window size is
+- used. Otherwise, if the environment variables do
+- not exist, the values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> speci-
+- fied in the <STRONG>terminfo</STRONG> database are used.
+-
+- The header files <STRONG>curses.h</STRONG> and <STRONG>term.h</STRONG> should be included
+- (in this order) to get the definitions for these strings,
+- numbers, and flags. Parameterized strings should be
+- passed through <STRONG>tparm</STRONG> to instantiate them. All <STRONG>terminfo</STRONG>
+- strings [including the output of <STRONG>tparm</STRONG>] should be printed
+- with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. Call the <STRONG>reset_shell_mode</STRONG> to restore
+- the tty modes before exiting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>]. Pro-
+- grams which use cursor addressing should output <STRONG>en-</STRONG>
+- <STRONG>ter_ca_mode</STRONG> upon startup and should output <STRONG>exit_ca_mode</STRONG>
+- before exiting. Programs desiring shell escapes should
+- call
+-
+- <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before the shell
+- is called and should output <STRONG>enter_ca_mode</STRONG> and call <STRONG>re-</STRONG>
+- <STRONG>set_prog_mode</STRONG> after returning from the shell.
++ The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and <STRONG>columns</STRONG> are initialized
++ by <STRONG>setupterm</STRONG> as follows:
++
++ <STRONG>o</STRONG> If <STRONG>use_env(FALSE)</STRONG> has been called, values for <STRONG>lines</STRONG>
++ and <STRONG>columns</STRONG> specified in <STRONG>terminfo</STRONG> are used.
++
++ <STRONG>o</STRONG> Otherwise, if the environment variables <STRONG>LINES</STRONG> and <STRONG>COL-</STRONG>
++ <STRONG>UMNS</STRONG> exist, their values are used. If these environ-
++ ment variables do not exist and the program is running
++ in a window, the current window size is used. Other-
++ wise, if the environment variables do not exist, the
++ values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the <STRONG>terminfo</STRONG>
++ database are used.
++
++ Parameterized strings should be passed through <STRONG>tparm</STRONG> to
++ instantiate them. All <STRONG>terminfo</STRONG> strings [including the
++ output of <STRONG>tparm</STRONG>] should be printed with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>.
++ Call <STRONG>reset_shell_mode</STRONG> to restore the tty modes before ex-
++ iting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>].
++
++ Programs which use cursor addressing should
++
++ <STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> upon startup and
++
++ <STRONG>o</STRONG> output <STRONG>exit_ca_mode</STRONG> before exiting.
++
++ Programs which execute shell subprocesses should
++
++ <STRONG>o</STRONG> call <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before
++ the shell is called and
++
++ <STRONG>o</STRONG> output <STRONG>enter_ca_mode</STRONG> and call <STRONG>reset_prog_mode</STRONG> after
++ returning from the shell.
+
+ The <STRONG>setupterm</STRONG> routine reads in the <STRONG>terminfo</STRONG> database, ini-
+ tializing the <STRONG>terminfo</STRONG> structures, but does not set up the
+@@ -129,54 +147,74 @@
+ <EM>rret</EM>. A return value of <STRONG>OK</STRONG> combined with status of <STRONG>1</STRONG> in
+ <EM>errret</EM> is normal. If <STRONG>ERR</STRONG> is returned, examine <EM>errret</EM>:
+
+- <STRONG>1</STRONG> means that the terminal is hardcopy, cannot be
+- used for curses applications.
++ <STRONG>1</STRONG> means that the terminal is hardcopy, cannot be used
++ for curses applications.
++
++ <STRONG>setupterm</STRONG> determines if the entry is a hardcopy type
++ by checking the <EM>hc</EM> (<EM>hardcopy</EM>) capability.
+
+- <STRONG>0</STRONG> means that the terminal could not be found, or
+- that it is a generic type, having too little
+- information for curses applications to run.
++ <STRONG>0</STRONG> means that the terminal could not be found, or that
++ it is a generic type, having too little information
++ for curses applications to run.
+
+- <STRONG>-1</STRONG> means that the <STRONG>terminfo</STRONG> database could not be
+- found.
++ <STRONG>setupterm</STRONG> determines if the entry is a generic type
++ by checking the <EM>gn</EM> (<EM>generic</EM>) capability.
+
+- If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon
++ <STRONG>-1</STRONG> means that the <STRONG>terminfo</STRONG> database could not be found.
++
++ If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon
+ finding an error and exits. Thus, the simplest call is:
+
+ <STRONG>setupterm((char</STRONG> <STRONG>*)0,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0);</STRONG>,
+
+- which uses all the defaults and sends the output to <STRONG>std-</STRONG>
++ which uses all the defaults and sends the output to <STRONG>std-</STRONG>
+ <STRONG>out</STRONG>.
+
+- The <STRONG>setterm</STRONG> routine is being replaced by <STRONG>setupterm</STRONG>. The
+- call:
++ The <STRONG>setterm</STRONG> routine was replaced by <STRONG>setupterm</STRONG>. The call:
+
+ <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG>
+
+ provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>. The
+- <STRONG>setterm</STRONG> routine is included here for BSD compatibility,
+- and is not recommended for new programs.
++ <STRONG>setterm</STRONG> routine is provided for BSD compatibility, and is
++ not recommended for new programs.
+
+- The <STRONG>set_curterm</STRONG> routine sets the variable <STRONG>cur_term</STRONG> to
+- <EM>nterm</EM>, and makes all of the <STRONG>terminfo</STRONG> boolean, numeric, and
+- string variables use the values from <EM>nterm</EM>. It returns
+- the old value of <STRONG>cur_term</STRONG>.
++ <STRONG>The</STRONG> <STRONG>Terminal</STRONG> <STRONG>State</STRONG>
++ The <STRONG>setupterm</STRONG> routine stores its information about the
++ terminal in a <STRONG>TERMINAL</STRONG> structure pointed to by the global
++ variable <STRONG>cur_term</STRONG>. If it detects an error, or decides
++ that the terminal is unsuitable (hardcopy or generic), it
++ discards this information, making it not available to ap-
++ plications.
++
++ If <STRONG>setupterm</STRONG> is called repeatedly for the same terminal
++ type, it will reuse the information. It maintains only
++ one copy of a given terminal's capabilities in memory. If
++ it is called for different terminal types, <STRONG>setupterm</STRONG> allo-
++ cates new storage for each set of terminal capabilities.
++
++ The <STRONG>set_curterm</STRONG> routine sets <STRONG>cur_term</STRONG> to <EM>nterm</EM>, and makes
++ all of the <STRONG>terminfo</STRONG> boolean, numeric, and string variables
++ use the values from <EM>nterm</EM>. It returns the old value of
++ <STRONG>cur_term</STRONG>.
+
+- The <STRONG>del_curterm</STRONG> routine frees the space pointed to by
++ The <STRONG>del_curterm</STRONG> routine frees the space pointed to by
+ <EM>oterm</EM> and makes it available for further use. If <EM>oterm</EM> is
+- the same as <STRONG>cur_term</STRONG>, references to any of the <STRONG>terminfo</STRONG>
+- boolean, numeric, and string variables thereafter may re-
+- fer to invalid memory locations until another <STRONG>setupterm</STRONG>
++ the same as <STRONG>cur_term</STRONG>, references to any of the <STRONG>terminfo</STRONG>
++ boolean, numeric, and string variables thereafter may re-
++ fer to invalid memory locations until another <STRONG>setupterm</STRONG>
+ has been called.
+
+ The <STRONG>restartterm</STRONG> routine is similar to <STRONG>setupterm</STRONG> and
+- <STRONG>initscr</STRONG>, except that it is called after restoring memory
+- to a previous state (for example, when reloading a game
+- saved as a core image dump). It assumes that the windows
+- and the input and output options are the same as when mem-
+- ory was saved, but the terminal type and baud rate may be
+- different. Accordingly, it saves various tty state bits,
+- calls <STRONG>setupterm</STRONG>, and then restores the bits.
++ <STRONG>initscr</STRONG>, except that it is called after restoring memory
++ to a previous state (for example, when reloading a game
++ saved as a core image dump). <STRONG>restartterm</STRONG> assumes that the
++ windows and the input and output options are the same as
++ when memory was saved, but the terminal type and baud rate
++ may be different. Accordingly, <STRONG>restartterm</STRONG> saves various
++ tty state bits, calls <STRONG>setupterm</STRONG>, and then restores the
++ bits.
+
++ <STRONG>Formatting</STRONG> <STRONG>Output</STRONG>
+ The <STRONG>tparm</STRONG> routine instantiates the string <EM>str</EM> with parame-
+ ters <EM>pi</EM>. A pointer is returned to the result of <EM>str</EM> with
+ the parameters applied.
+@@ -185,6 +223,7 @@
+ rather than a fixed-parameter list. Its numeric parame-
+ ters are integers (int) rather than longs.
+
++ <STRONG>Output</STRONG> <STRONG>Functions</STRONG>
+ The <STRONG>tputs</STRONG> routine applies padding information to the
+ string <EM>str</EM> and outputs it. The <EM>str</EM> must be a terminfo
+ string variable or the return value from <STRONG>tparm</STRONG>, <STRONG>tgetstr</STRONG>,
+@@ -218,36 +257,48 @@
+ takes effect immediately (rather than at the next re-
+ fresh).
+
++ <STRONG>Terminal</STRONG> <STRONG>Capability</STRONG> <STRONG>Functions</STRONG>
+ The <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG> and <STRONG>tigetstr</STRONG> routines return the
+ value of the capability corresponding to the <STRONG>terminfo</STRONG> <EM>cap-</EM>
+- <EM>name</EM> passed to them, such as <STRONG>xenl</STRONG>.
++ <EM>name</EM> passed to them, such as <STRONG>xenl</STRONG>. The <EM>capname</EM> for each
++ capability is given in the table column entitled <EM>capname</EM>
++ code in the capabilities section of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
++
++ These routines return special values to denote errors.
++
++ The <STRONG>tigetflag</STRONG> routine returns
++
++ <STRONG>-1</STRONG> if <EM>capname</EM> is not a boolean capability, or
++
++ <STRONG>0</STRONG> if it is canceled or absent from the terminal de-
++ scription.
+
+- The <STRONG>tigetflag</STRONG> routine returns the value <STRONG>-1</STRONG> if <EM>capname</EM> is
+- not a boolean capability, or <STRONG>0</STRONG> if it is canceled or absent
+- from the terminal description.
+-
+- The <STRONG>tigetnum</STRONG> routine returns the value <STRONG>-2</STRONG> if <EM>capname</EM> is
+- not a numeric capability, or <STRONG>-1</STRONG> if it is canceled or ab-
+- sent from the terminal description.
+-
+- The <STRONG>tigetstr</STRONG> routine returns the value <STRONG>(char</STRONG> <STRONG>*)-1</STRONG> if <EM>cap-</EM>
+- <EM>name</EM> is not a string capability, or <STRONG>0</STRONG> if it is canceled or
+- absent from the terminal description.
+-
+- The <EM>capname</EM> for each capability is given in the table col-
+- umn entitled <EM>capname</EM> code in the capabilities section of
+- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
++ The <STRONG>tigetnum</STRONG> routine returns
+
++ <STRONG>-2</STRONG> if <EM>capname</EM> is not a numeric capability, or
++
++ <STRONG>-1</STRONG> if it is canceled or absent from the terminal de-
++ scription.
++
++ The <STRONG>tigetstr</STRONG> routine returns
++
++ <STRONG>(char</STRONG> <STRONG>*)-1</STRONG>
++ if <EM>capname</EM> is not a string capability, or
++
++ <STRONG>0</STRONG> if it is canceled or absent from the terminal de-
++ scription.
++
++ <STRONG>Terminal</STRONG> <STRONG>Capability</STRONG> <STRONG>Names</STRONG>
++ These null-terminated arrays contain the short terminfo
++ names ("codes"), the <STRONG>termcap</STRONG> names, and the long terminfo
++ names ("fnames") for each of the predefined <STRONG>terminfo</STRONG> vari-
++ ables:
+ <STRONG>char</STRONG> <STRONG>*boolnames[]</STRONG>, <STRONG>*boolcodes[]</STRONG>, <STRONG>*boolfnames[]</STRONG>
+
+ <STRONG>char</STRONG> <STRONG>*numnames[]</STRONG>, <STRONG>*numcodes[]</STRONG>, <STRONG>*numfnames[]</STRONG>
+
+ <STRONG>char</STRONG> <STRONG>*strnames[]</STRONG>, <STRONG>*strcodes[]</STRONG>, <STRONG>*strfnames[]</STRONG>
+
+- These null-terminated arrays contain the <EM>capnames</EM>, the
+- <STRONG>termcap</STRONG> codes, and the full C names, for each of the <STRONG>ter-</STRONG>
+- <STRONG>minfo</STRONG> variables.
+-
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+@@ -261,49 +312,64 @@
+ X/Open defines no error conditions. In this implementa-
+ tion
+
+- <STRONG>del_curterm</STRONG>
+- returns an error if its terminal parameter is
+- null.
+-
+- <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error-codes.
+-
+- <STRONG>restartterm</STRONG>
+- returns an error if the associated call to <STRONG>se-</STRONG>
+- <STRONG>tupterm</STRONG> returns an error.
+-
+- <STRONG>setupterm</STRONG>
+- returns an error if it cannot allocate enough
+- memory, or create the initial windows (stdscr,
+- curscr, newscr). Other error conditions are
+- documented above.
+-
+- <STRONG>tputs</STRONG>
+- returns an error if the string parameter is
+- null. It does not detect I/O errors: X/Open
+- states that <STRONG>tputs</STRONG> ignores the return value of
+- the output function <EM>putc</EM>.
+-
+-
+-</PRE>
+-<H2>NOTES</H2><PRE>
+- The <STRONG>setupterm</STRONG> routine should be used in place of <STRONG>setterm</STRONG>.
+- It may be useful when you want to test for terminal capa-
+- bilities without committing to the allocation of storage
+- involved in <STRONG>initscr</STRONG>.
+-
+- Note that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
++ <STRONG>del_curterm</STRONG>
++ returns an error if its terminal parameter is
++ null.
++
++ <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error-codes.
++
++ <STRONG>restartterm</STRONG>
++ returns an error if the associated call to <STRONG>se-</STRONG>
++ <STRONG>tupterm</STRONG> returns an error.
++
++ <STRONG>setupterm</STRONG>
++ returns an error if it cannot allocate enough
++ memory, or create the initial windows (stdscr,
++ curscr, newscr). Other error conditions are
++ documented above.
++
++ <STRONG>tputs</STRONG>
++ returns an error if the string parameter is
++ null. It does not detect I/O errors: X/Open
++ states that <STRONG>tputs</STRONG> ignores the return value of
++ the output function <EM>putc</EM>.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- The function <STRONG>setterm</STRONG> is not described by X/Open and must
+- be considered non-portable. All other functions are as
++ X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
++
++ The function <STRONG>setterm</STRONG> is not described by X/Open and must
++ be considered non-portable. All other functions are as
+ described by X/Open.
+
+- <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>.
+- This is not part of X/Open Curses, but is assumed by some
++ <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>.
++ This is not part of X/Open Curses, but is assumed by some
+ applications.
+
++ If configured to use the terminal-driver, e.g., for the
++ MinGW port,
++
++ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as
++ the special value "unknown".
++
++ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows con-
++ sole driver by checking if $TERM is set to "#win32con"
++ or an abbreviation of that string.
++
++ Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor
++ passed to <STRONG>setupterm</STRONG> from <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> uses buffered
++ I/O, and would write to the corresponding stream. In ad-
++ dition to the limitation that the terminal was left in
++ block-buffered mode on exit (like SystemV curses), it was
++ problematic because <STRONG>ncurses</STRONG> did not allow a reliable way
++ to cleanup on receiving SIGTSTP. The current version uses
++ output buffers managed directly by <STRONG>ncurses</STRONG>. Some of the
++ low-level functions described in this manual page write to
++ the standard output. They are not signal-safe. The high-
++ level functions in <STRONG>ncurses</STRONG> use alternate versions of these
++ functions using the more reliable buffering scheme.
++
+ In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type
+ and returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. We have chosen to implement the
+ X/Open Curses semantics.
+@@ -323,12 +389,12 @@
+ zeroes are fine for this purpose.
+
+ In response to comments by Thomas E. Dickey, X/Open Curses
+- Issue 7 proposed the <STRONG>tiparam</STRONG> function in mid-2009.
++ Issue 7 proposed the <STRONG>tiparm</STRONG> function in mid-2009.
+
+ X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state
+ may not match the actual terminal state, and that an ap-
+ plication should touch and refresh the window before re-
+- suming normal curses calls. Both ncurses and System V Re-
++ suming normal curses calls. Both <STRONG>ncurses</STRONG> and System V Re-
+ lease 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo-
+ cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is docu-
+ mented as a terminfo function, <STRONG>mvcur</STRONG> is really a curses
+@@ -339,15 +405,18 @@
+ for the old ordinates. In that case, the old location is
+ unknown.
+
++ Other implementions may not declare the capability name
++ arrays. Some provide them without declaring them. X/Open
++ does not specify them.
++
+ Extended terminal capability names, e.g., as defined by
+- <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not stored in the arrays described in this
+- section.
++ <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not stored in the arrays described here.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG>
+- <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="putc.3.html">putc(3)</A></STRONG>,
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG>curs_term-</STRONG>
++ <STRONG><A HREF="curs_termcap.3x.html">cap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>,
+ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+
+Index: doc/html/man/curs_threads.3x.html
+--- ncurses-5.9/doc/html/man/curs_threads.3x.html 2011-01-09 01:03:15.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_threads.3x.html 2014-05-24 22:05:37.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_threads.3x,v 1.20 2014/03/15 19:25:28 tom Exp @
+ * ***************************************************************************
+ * ***************************************************************************
+ -->
+@@ -61,9 +61,9 @@
+ <STRONG>int</STRONG> <STRONG>get_escdelay(void);</STRONG>
+ <STRONG>int</STRONG> <STRONG>set_escdelay(int</STRONG> <STRONG>size);</STRONG>
+ <STRONG>int</STRONG> <STRONG>set_tabsize(int</STRONG> <STRONG>size);</STRONG>
+- <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
++ <STRONG>int</STRONG> <STRONG>use_screen(SCREEN</STRONG> <STRONG>*scr,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
+ <STRONG>*data);</STRONG>
+- <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_SCREEN_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
++ <STRONG>int</STRONG> <STRONG>use_window(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>NCURSES_WINDOW_CB</STRONG> <STRONG>func,</STRONG> <STRONG>void</STRONG>
+ <STRONG>*data);</STRONG>
+
+
+@@ -552,6 +552,7 @@
+ wget_wstr screen (input-operation)
+ wgetbkgrnd window
+ wgetch screen (input-operation)
++ wgetdelay window
+ wgetn_wstr screen (input-operation)
+ wgetnstr screen (input-operation)
+ wgetparent window
+@@ -582,8 +583,8 @@
+ wnoutrefresh screen
+ wprintw window
+ wredrawln window
+- wrefresh screen
+
++ wrefresh screen
+ wresize window locks(windowlist)
+ wscanw screen
+ wscrl window
+Index: doc/html/man/curs_touch.3x.html
+--- ncurses-5.9/doc/html/man/curs_touch.3x.html 2011-01-09 01:03:15.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_touch.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_trace.3x.html
+--- ncurses-5.9/doc/html/man/curs_trace.3x.html 2011-01-09 01:03:16.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_trace.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2000-2009,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/curs_util.3x.html
+--- ncurses-5.9/doc/html/man/curs_util.3x.html 2011-02-25 23:24:59.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_util.3x.html 2013-12-21 19:55:44.000000000 +0000
+@@ -1,7 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
++ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_util.3x,v 1.32 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_util.3x,v 1.37 2013/07/20 19:43:45 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -48,8 +49,8 @@
+ </PRE>
+ <H2>NAME</H2><PRE>
+ <STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>,
+- <STRONG>nofilter</STRONG>, <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous
+- <STRONG>curses</STRONG> utility routines
++ <STRONG>nofilter</STRONG>, <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>use_tioctl</STRONG>, <STRONG>wunctrl</STRONG> -
++ miscellaneous <STRONG>curses</STRONG> utility routines
+
+
+ </PRE>
+@@ -63,6 +64,7 @@
+ <STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
+ <STRONG>void</STRONG> <STRONG>nofilter(void);</STRONG>
+ <STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <STRONG>f);</STRONG>
++ <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <STRONG>f);</STRONG>
+ <STRONG>int</STRONG> <STRONG>putwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>FILE</STRONG> <STRONG>*filep);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*getwin(FILE</STRONG> <STRONG>*filep);</STRONG>
+ <STRONG>int</STRONG> <STRONG>delay_output(int</STRONG> <STRONG>ms);</STRONG>
+@@ -122,16 +124,66 @@
+ <STRONG>$TERM</STRONG>. The limitation arises because the <STRONG>filter</STRONG> routine
+ modifies the in-memory copy of the terminal information.
+
+- The <STRONG>use_env</STRONG> routine, if used, is called before <STRONG>initscr</STRONG> or
+- <STRONG>newterm</STRONG> are called. When called with <STRONG>FALSE</STRONG> as an argu-
+- ment, the values of <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the
+- <EM>terminfo</EM> database will be used, even if environment vari-
+- ables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> (used by default) are set, or if
+- <STRONG>curses</STRONG> is running in a window (in which case default be-
+- havior would be to use the window size if <STRONG>LINES</STRONG> and
+- <STRONG>COLUMNS</STRONG> are not set). Note that setting <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
+- overrides the corresponding size which may be obtained
+- from the operating system.
++ The <STRONG>use_env</STRONG> routine, if used, should be called before
++ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
++ screen size). It modifies the way <STRONG>ncurses</STRONG> treats environ-
++ ment variables when determining the screen size.
++
++ <STRONG>o</STRONG> Normally ncurses looks first at the terminal database
++ for the screen size.
++
++ If <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> for parameter, it
++ stops here unless If <STRONG>use_tioctl</STRONG> was also called with
++ <STRONG>TRUE</STRONG> for parameter.
++
++ <STRONG>o</STRONG> Then it asks for the screen size via operating system
++ calls. If successful, it overrides the values from
++ the terminal database.
++
++ <STRONG>o</STRONG> Finally (unless <STRONG>use_env</STRONG> was called with <STRONG>FALSE</STRONG> parame-
++ ter), ncurses examines the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> environ-
++ ment variables, using a value in those to override the
++ results from the operating system or terminal data-
++ base.
++
++ Ncurses also updates the screen size in response to
++ SIGWINCH, unless overridden by the <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
++ environment variables,
++
++ The <STRONG>use_tioctl</STRONG> routine, if used, should be called before
++ <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> are called (because those compute the
++ screen size). After <STRONG>use_tioctl</STRONG> is called with <STRONG>TRUE</STRONG> as an
++ argument, ncurses modifies the last step in its computa-
++ tion of screen size as follows:
++
++ <STRONG>o</STRONG> checks if the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables
++ are set to a number greater than zero.
++
++ <STRONG>o</STRONG> for each, ncurses updates the corresponding environ-
++ ment variable with the value that it has obtained via
++ operating system call or from the terminal database.
++
++ <STRONG>o</STRONG> ncurses re-fetches the value of the environment vari-
++ ables so that it is still the environment variables
++ which set the screen size.
++
++ The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as summarized
++ here:
++
++ <EM>use</EM><STRONG>_</STRONG><EM>env</EM> <EM>use</EM><STRONG>_</STRONG><EM>tioctl</EM> <EM>Summary</EM>
++ ----------------------------------------------------------------
++ TRUE FALSE This is the default behavior. ncurses
++ uses operating system calls unless over-
++ ridden by $LINES or $COLUMNS environment
++ variables.
++ TRUE TRUE ncurses updates $LINES and $COLUMNS
++ based on operating system calls.
++
++ FALSE TRUE ncurses ignores $LINES and $COLUMNS, us-
++ es operating system calls to obtain
++ size.
++ FALSE FALSE ncurses relies on the terminal database
++ to determine size.
+
+ The <STRONG>putwin</STRONG> routine writes all data associated with window
+ <EM>win</EM> into the file to which <EM>filep</EM> points. This information
+@@ -191,60 +243,60 @@
+ control code. If <STRONG>use_legacy_coding</STRONG> has been called
+ with a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG> returns the parameter,
+ i.e., a one-character string with the parameter as
+- the first character. Otherwise, it returns ``~@'',
+- ``~A'', etc., analogous to ``^@'', ``^A'', C0 con-
+- trols.
+-
+- X/Open Curses does not document whether <STRONG>unctrl</STRONG> can
+- be called before initializing curses. This imple-
+- mentation permits that, and returns the ``~@'',
+- etc., values in that case.
++ the first character. Otherwise, it returns "~@",
++ "~A", etc., analogous to "^@", "^A", C0 controls.
+
+- <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unc-</STRONG>
++ X/Open Curses does not document whether <STRONG>unctrl</STRONG> can
++ be called before initializing curses. This imple-
++ mentation permits that, and returns the "~@", etc.,
++ values in that case.
++
++ <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unc-</STRONG>
+ <STRONG>trl</STRONG> returns a null pointer.
+
+ The SVr4 documentation describes the action of <STRONG>filter</STRONG> only
+- in the vaguest terms. The description here is adapted
+- from the XSI Curses standard (which erroneously fails to
++ in the vaguest terms. The description here is adapted
++ from the XSI Curses standard (which erroneously fails to
+ describe the disabling of <STRONG>cuu</STRONG>).
+
+- The strings returned by <STRONG>unctrl</STRONG> in this implementation are
+- determined at compile time, showing C1 controls from the
+- upper-128 codes with a `~' prefix rather than `^'. Other
+- implementations have different conventions. For example,
+- they may show both sets of control characters with `^',
+- and strip the parameter to 7 bits. Or they may ignore C1
+- controls and treat all of the upper-128 codes as print-
++ The strings returned by <STRONG>unctrl</STRONG> in this implementation are
++ determined at compile time, showing C1 controls from the
++ upper-128 codes with a `~' prefix rather than `^'. Other
++ implementations have different conventions. For example,
++ they may show both sets of control characters with `^',
++ and strip the parameter to 7 bits. Or they may ignore C1
++ controls and treat all of the upper-128 codes as print-
+ able. This implementation uses 8 bits but does not modify
+ the string to reflect locale. The <STRONG>use_legacy_coding</STRONG> func-
+ tion allows the caller to change the output of <STRONG>unctrl</STRONG>.
+
+- Likewise, the <STRONG>meta</STRONG> function allows the caller to change
+- the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use
+- the `M-' prefix for ``meta'' keys (codes in the range 128
+- to 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only af-
+- ter curses is initialized. X/Open Curses does not docu-
+- ment the treatment of codes 128 to 159. When treating
+- them as ``meta'' keys (or if <STRONG>keyname</STRONG> is called before ini-
+- tializing curses), this implementation returns strings
+- ``M-^@'', ``M-^A'', etc.
+-
+- The <STRONG>keyname</STRONG> function may return the names of user-defined
+- string capabilities which are defined in the terminfo en-
+- try via the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>. This implementation auto-
+- matically assigns at run-time keycodes to user-defined
+- strings which begin with "k". The keycodes start at
+- KEY_MAX, but are not guaranteed to be the same value for
+- different runs because user-defined codes are merged from
+- all terminal descriptions which have been loaded. The
+- <STRONG>use_extended_names</STRONG> function controls whether this data is
+- loaded when the terminal description is read by the li-
++ Likewise, the <STRONG>meta</STRONG> function allows the caller to change
++ the output of <STRONG>keyname</STRONG>, i.e., it determines whether to use
++ the `M-' prefix for "meta" keys (codes in the range 128 to
++ 255). Both <STRONG>use_legacy_coding</STRONG> and <STRONG>meta</STRONG> succeed only after
++ curses is initialized. X/Open Curses does not document
++ the treatment of codes 128 to 159. When treating them as
++ "meta" keys (or if <STRONG>keyname</STRONG> is called before initializing
++ curses), this implementation returns strings "M-^@",
++ "M-^A", etc.
++
++ The <STRONG>keyname</STRONG> function may return the names of user-defined
++ string capabilities which are defined in the terminfo en-
++ try via the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>. This implementation auto-
++ matically assigns at run-time keycodes to user-defined
++ strings which begin with "k". The keycodes start at
++ KEY_MAX, but are not guaranteed to be the same value for
++ different runs because user-defined codes are merged from
++ all terminal descriptions which have been loaded. The
++ <STRONG>use_extended_names</STRONG> function controls whether this data is
++ loaded when the terminal description is read by the li-
+ brary.
+
+- The <STRONG>nofilter</STRONG> routine is specific to ncurses. It was not
+- supported on Version 7, BSD or System V implementations.
+- It is recommended that any code depending on ncurses ex-
+- tensions be conditioned using NCURSES_VERSION.
++ The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are specific to
++ ncurses. They were not supported on Version 7, BSD or
++ System V implementations. It is recommended that any code
++ depending on ncurses extensions be conditioned using
++ NCURSES_VERSION.
+
+
+ </PRE>
+Index: doc/html/man/curs_variables.3x.html
+--- ncurses-5.9/doc/html/man/curs_variables.3x.html 2011-01-09 01:03:16.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_variables.3x.html 2013-12-21 21:59:38.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_variables.3x,v 1.4 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_variables.3x,v 1.6 2013/12/21 18:41:32 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -73,10 +73,10 @@
+ <STRONG><A HREF="ncurses.3x.html">es(3x)</A></STRONG> manual page.
+
+ Depending on the configuration, these may be actual vari-
+- ables, or macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>) which provide
+- read-only access to <EM>curses</EM>'s state. In either case, ap-
+- plications should treat them as read-only to avoid confus-
+- ing the library.
++ ables, or macros (see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> and
++ <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>) which provide read-only access to <EM>curs-</EM>
++ <EM>es</EM>'s state. In either case, applications should treat
++ them as read-only to avoid confusing the library.
+
+ <STRONG>COLOR_PAIRS</STRONG>
+ After initializing curses, this variable contains the num-
+@@ -133,7 +133,7 @@
+ </PRE>
+ <H2>NOTES</H2><PRE>
+ The curses library is initialized using either
+- <STRONG><A HREF="initscr.3x.html">initscr(3x)</A></STRONG>, or <STRONG><A HREF="newterm.3x.html">newterm(3x)</A></STRONG>.
++ <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, or <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>.
+
+ If <STRONG>curses</STRONG> is configured to use separate curses/terminfo
+ libraries, most of these variables reside in the curses
+@@ -148,8 +148,8 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>termin-</STRONG>
+- <STRONG><A HREF="terminfo.3x.html">fo(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,
++ <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+
+
+Index: doc/html/man/curs_window.3x.html
+--- ncurses-5.9/doc/html/man/curs_window.3x.html 2011-01-09 01:03:17.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/curs_window.3x.html 2014-05-24 22:05:37.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: curs_window.3x,v 1.17 2010/12/04 18:38:55 tom Exp @
++ * @Id: curs_window.3x,v 1.18 2014/03/01 23:36:38 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -56,13 +56,16 @@
+ <H2>SYNOPSIS</H2><PRE>
+ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+- <STRONG>WINDOW</STRONG> <STRONG>*newwin(int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG> <STRONG>int</STRONG> <STRONG>begin_y,</STRONG>
+- <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
++ <STRONG>WINDOW</STRONG> <STRONG>*newwin(</STRONG>
++ <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
++ <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+ <STRONG>int</STRONG> <STRONG>delwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+- <STRONG>WINDOW</STRONG> <STRONG>*subwin(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
++ <STRONG>WINDOW</STRONG> <STRONG>*subwin(WINDOW</STRONG> <STRONG>*orig,</STRONG>
++ <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
+ <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+- <STRONG>WINDOW</STRONG> <STRONG>*derwin(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
++ <STRONG>WINDOW</STRONG> <STRONG>*derwin(WINDOW</STRONG> <STRONG>*orig,</STRONG>
++ <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
+ <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvderwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>par_y,</STRONG> <STRONG>int</STRONG> <STRONG>par_x);</STRONG>
+ <STRONG>WINDOW</STRONG> <STRONG>*dupwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
+@@ -76,10 +79,16 @@
+ <H2>DESCRIPTION</H2><PRE>
+ Calling <STRONG>newwin</STRONG> creates and returns a pointer to a new win-
+ dow with the given number of lines and columns. The upper
+- left-hand corner of the window is at line <EM>begin</EM>_<EM>y</EM>, column
+- <EM>begin</EM>_<EM>x</EM>. If either <EM>nlines</EM> or <EM>ncols</EM> is zero, they default
+- to <STRONG>LINES</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>y</EM> and <STRONG>COLS</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>x</EM>. A new full-screen
+- window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>.
++ left-hand corner of the window is at
++ line <EM>begin</EM>_<EM>y</EM>,
++ column <EM>begin</EM>_<EM>x</EM>
++
++ If either <EM>nlines</EM> or <EM>ncols</EM> is zero, they default to
++ <STRONG>LINES</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>y</EM> and
++ <STRONG>COLS</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>x</EM>.
++
++ A new full-screen window is created by calling
++ <STRONG>newwin(0,0,0,0)</STRONG>.
+
+ Calling <STRONG>delwin</STRONG> deletes the named window, freeing all memo-
+ ry associated with it (it does not actually erase the win-
+@@ -95,13 +104,11 @@
+ Calling <STRONG>subwin</STRONG> creates and returns a pointer to a new win-
+ dow with the given number of lines, <EM>nlines</EM>, and columns,
+ <EM>ncols</EM>. The window is at position (<EM>begin</EM>_<EM>y</EM>, <EM>begin</EM>_<EM>x</EM>) on
+- the screen. (This position is relative to the screen, and
+- not to the window <EM>orig</EM>.) The window is made in the middle
+- of the window <EM>orig</EM>, so that changes made to one window
+- will affect both windows. The subwindow shares memory
+- with the window <EM>orig</EM>. When using this routine, it is nec-
+- essary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before call-
+- ing <STRONG>wrefresh</STRONG> on the subwindow.
++ the screen. The subwindow shares memory with the window
++ <EM>orig</EM>, so that changes made to one window will affect both
++ windows. When using this routine, it is necessary to call
++ <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before calling <STRONG>wrefresh</STRONG> on
++ the subwindow.
+
+ Calling <STRONG>derwin</STRONG> is the same as calling <STRONG>subwin,</STRONG> except that
+ <EM>begin</EM>_<EM>y</EM> and <EM>begin</EM>_<EM>x</EM> are relative to the origin of the win-
+@@ -143,30 +150,50 @@
+ X/Open defines no error conditions. In this implementa-
+ tion
+
+- <STRONG>delwin</STRONG>
+- returns an error if the window pointer is
+- null, or if the window is the parent of anoth-
+- er window.
+-
+- This implementation also maintains a list of
+- windows, and checks that the pointer passed to
+- <STRONG>delwin</STRONG> is one that it created, returning an
+- error if it was not..
+-
+- <STRONG>mvderwin</STRONG>
+- returns an error if the window pointer is
+- null, or if some part of the window would be
+- placed off-screen.
+-
+- <STRONG>mvwin</STRONG>
+- returns an error if the window pointer is
+- null, or if the window is really a pad, or if
+- some part of the window would be placed off-
+- screen.
+-
+- <STRONG>syncok</STRONG>
+- returns an error if the window pointer is
+- null.
++ <STRONG>delwin</STRONG>
++ returns an error if the window pointer is null, or if
++ the window is the parent of another window.
++
++ <STRONG>derwin</STRONG>
++ returns an error if the parent window pointer is
++ null, or if any of its ordinates or dimensions is
++ negative, or if the resulting window does not fit in-
++ side the parent window.
++
++ <STRONG>dupwin</STRONG>
++ returns an error if the window pointer is null.
++
++ This implementation also maintains a list of windows,
++ and checks that the pointer passed to <STRONG>delwin</STRONG> is one
++ that it created, returning an error if it was not..
++
++ <STRONG>mvderwin</STRONG>
++ returns an error if the window pointer is null, or if
++ some part of the window would be placed off-screen.
++
++ <STRONG>mvwin</STRONG>
++ returns an error if the window pointer is null, or if
++ the window is really a pad, or if some part of the
++ window would be placed off-screen.
++
++ <STRONG>newwin</STRONG>
++ will fail if either of its beginning ordinates is
++ negative, or if either the number of lines or columns
++ is negative.
++
++ <STRONG>syncok</STRONG>
++ returns an error if the window pointer is null.
++
++ <STRONG>subwin</STRONG>
++ returns an error if the parent window pointer is
++ null, or if any of its ordinates or dimensions is
++ negative, or if the resulting window does not fit in-
++ side the parent window.
++
++ The functions which return a window pointer may also fail
++ if there is insufficient memory for its data structures.
++ Any of these functions will fail if the screen has not
++ been initialized, i.e., with <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>.
+
+
+ </PRE>
+Index: doc/html/man/default_colors.3x.html
+--- ncurses-5.9/doc/html/man/default_colors.3x.html 2011-01-09 01:03:17.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/default_colors.3x.html 2013-12-21 21:39:18.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+@@ -159,7 +159,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ded.1.html">ded(1)</A></STRONG>.
++ <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG>ded(1)</STRONG>.
+
+
+ </PRE>
+Index: doc/html/man/define_key.3x.html
+--- ncurses-5.9/doc/html/man/define_key.3x.html 2011-01-09 01:03:17.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/define_key.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/form.3x.html
+--- ncurses-5.9/doc/html/man/form.3x.html 2011-04-04 22:46:40.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form.3x.html 2014-08-16 20:43:11.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: form.3x,v 1.24 2010/12/04 18:40:45 tom Exp @
++ * @Id: form.3x,v 1.25 2014/08/16 20:31:45 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -213,37 +213,34 @@
+
+
+ </PRE>
+-<H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
+- detailed descriptions of the entry points.
+-
+-
+-</PRE>
+ <H2>NOTES</H2><PRE>
+ The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
+ files <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
+
+- In your library list, libform.a should be before libn-
++ In your library list, libform.a should be before libn-
+ curses.a; that is, you want to say `-lform -lncurses', not
+- the other way around (which would give you a link error
++ the other way around (which would give you a link error
+ using most linkers).
+
+
+ </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 ncurses
++ Juergen Pfeifer. Manual pages and adaptation for ncurses
+ by Eric S. Raymond.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
++ detailed descriptions of the entry points.
++
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/form_cursor.3x.html
+--- ncurses-5.9/doc/html/man/form_cursor.3x.html 2011-01-09 01:03:17.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_cursor.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_data.3x.html
+--- ncurses-5.9/doc/html/man/form_data.3x.html 2011-01-09 01:03:18.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_data.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_driver.3x.html
+--- ncurses-5.9/doc/html/man/form_driver.3x.html 2011-01-09 01:03:18.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_driver.3x.html 2013-12-21 21:59:38.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+@@ -342,7 +342,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>, <STRONG><A HREF="getch.3x.html">getch(3x)</A></STRONG>.
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, <STRONG><A HREF="form_variables.3x.html">form_variables(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>.
+
+
+ </PRE>
+Index: doc/html/man/form_field.3x.html
+--- ncurses-5.9/doc/html/man/form_field.3x.html 2011-01-09 01:03:18.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: form_field.3x,v 1.10 2010/12/04 18:40:45 tom Exp @
++ * @Id: form_field.3x,v 1.11 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -78,7 +78,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ The function <STRONG>form_fields</STRONG> returns a pointer (which may be
+ <STRONG>NULL</STRONG>). It does not set errno.
+
+Index: doc/html/man/form_field_attributes.3x.html
+--- ncurses-5.9/doc/html/man/form_field_attributes.3x.html 2011-01-09 01:03:18.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_attributes.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_field_buffer.3x.html
+--- ncurses-5.9/doc/html/man/form_field_buffer.3x.html 2011-02-25 23:25:01.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_buffer.3x.html 2013-05-17 22:24:20.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+@@ -151,8 +151,8 @@
+ When configured for wide characters, <STRONG>field_buffer</STRONG> returns
+ a pointer to temporary storage (allocated and freed by the
+ library). The application should not attempt to modify
+- the data. It will be freed on the next call to
+- <STRONG>field_buffer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>.
++ the data. It will be freed on the next call to <STRONG>field_buf-</STRONG>
++ <STRONG>fer</STRONG> to return the same buffer. <STRONG>&lt;curses.h&gt;</STRONG>.
+
+
+ </PRE>
+Index: doc/html/man/form_field_info.3x.html
+--- ncurses-5.9/doc/html/man/form_field_info.3x.html 2011-01-09 01:03:19.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_info.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_field_just.3x.html
+--- ncurses-5.9/doc/html/man/form_field_just.3x.html 2011-01-09 01:03:19.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_just.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_field_new.3x.html
+--- ncurses-5.9/doc/html/man/form_field_new.3x.html 2011-01-09 01:03:19.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_new.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_field_opts.3x.html
+--- ncurses-5.9/doc/html/man/form_field_opts.3x.html 2011-01-09 01:03:19.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_opts.3x.html 2014-08-09 21:01:53.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: form_field_opts.3x,v 1.16 2010/12/04 18:41:07 tom Exp @
++ * @Id: form_field_opts.3x,v 1.17 2014/07/26 21:21:57 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -75,11 +75,8 @@
+ The function <STRONG>field_opts</STRONG> returns the field's current option
+ bits.
+
+- The following options are defined (all are on by default):
+-
+- O_VISIBLE
+- The field is displayed. If this option is off, dis-
+- play of the field is suppressed.
++ The following standard options are defined (all are on by
++ default):
+
+ O_ACTIVE
+ The field is visited during processing. If this
+@@ -87,43 +84,54 @@
+ navigation keys. Please notice that an invisible
+ field appears to be inactive also.
+
+- O_PUBLIC
+- The field contents are displayed as data is entered.
+-
+- O_EDIT
+- The field can be edited.
+-
+- O_WRAP
+- Words that do not fit on a line are wrapped to the
+- next line. Words are blank-separated.
++ O_AUTOSKIP
++ Skip to the next field when this one fills.
+
+ O_BLANK
+- The field is cleared whenever a character is entered
++ The field is cleared whenever a character is entered
+ at the first position.
+
+- O_AUTOSKIP
+- Skip to the next field when this one fills.
++ O_EDIT
++ The field can be edited.
+
+ O_NULLOK
+ Allow a blank field.
+
++ O_PASSOK
++ Validate field only if modified by user.
++
++ O_PUBLIC
++ The field contents are displayed as data is entered.
++
+ O_STATIC
+- Field buffers are fixed to field's original size.
++ Field buffers are fixed to field's original size.
+ Turn this option off to create a dynamic field.
+
+- O_PASSOK
+- Validate field only if modified by user.
++ O_VISIBLE
++ The field is displayed. If this option is off, dis-
++ play of the field is suppressed.
++
++ O_WRAP
++ Words that do not fit on a line are wrapped to the
++ next line. Words are blank-separated.
++
++ One extension option is defined (extensions are off by
++ default):
++
++ O_DYNAMIC_JUSTIFY
++ Permit dynamic fields to be justified, like static
++ fields.
+
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- Except for <STRONG>field_opts</STRONG>, each routine returns one of the
++ Except for <STRONG>field_opts</STRONG>, each routine returns one of the
+ following:
+
+ <STRONG>E_OK</STRONG> The routine succeeded.
+
+ <STRONG>E_BAD_ARGUMENT</STRONG>
+- Routine detected an incorrect or out-of-range argu-
++ Routine detected an incorrect or out-of-range argu-
+ ment.
+
+ <STRONG>E_CURRENT</STRONG>
+@@ -135,7 +143,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>. <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>.
+
+
+ </PRE>
+@@ -146,13 +154,13 @@
+
+ </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.
+
+
+Index: doc/html/man/form_field_userptr.3x.html
+--- ncurses-5.9/doc/html/man/form_field_userptr.3x.html 2011-01-09 01:03:20.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_userptr.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_field_validation.3x.html
+--- ncurses-5.9/doc/html/man/form_field_validation.3x.html 2011-01-09 01:03:20.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_field_validation.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/form_fieldtype.3x.html
+--- ncurses-5.9/doc/html/man/form_fieldtype.3x.html 2011-02-25 23:25:02.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_fieldtype.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+@@ -112,8 +112,8 @@
+ <STRONG>REQ_PREV_CHOICE</STRONG> assume that the possible values of a field
+ form an ordered set, and provide the forms user with a way
+ to move through the set. The <STRONG>set_fieldtype_choice</STRONG> func-
+- tion allows forms programmers to define successor and
+- predecessor functions for the field type. These functions
++ tion allows forms programmers to define successor and pre-
++ decessor functions for the field type. These functions
+ take the field pointer and an argument-block structure as
+ arguments.
+
+Index: doc/html/man/form_hook.3x.html
+--- ncurses-5.9/doc/html/man/form_hook.3x.html 2011-01-09 01:03:20.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_hook.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_new.3x.html
+--- ncurses-5.9/doc/html/man/form_new.3x.html 2011-01-09 01:03:20.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_new.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_new_page.3x.html
+--- ncurses-5.9/doc/html/man/form_new_page.3x.html 2011-01-09 01:03:20.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_new_page.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_opts.3x.html
+--- ncurses-5.9/doc/html/man/form_opts.3x.html 2011-01-09 01:03:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_opts.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_page.3x.html
+--- ncurses-5.9/doc/html/man/form_page.3x.html 2011-01-09 01:03:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_page.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_post.3x.html
+--- ncurses-5.9/doc/html/man/form_post.3x.html 2011-01-09 01:03:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_post.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_requestname.3x.html
+--- ncurses-5.9/doc/html/man/form_requestname.3x.html 2011-01-09 01:03:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_requestname.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_userptr.3x.html
+--- ncurses-5.9/doc/html/man/form_userptr.3x.html 2011-01-09 01:03:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_userptr.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/form_variables.3x.html
+--- ncurses-5.9/doc/html/man/form_variables.3x.html 2011-01-09 01:03:21.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_variables.3x.html 2013-12-21 21:59:39.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: form_variables.3x,v 1.3 2010/12/04 18:38:55 tom Exp @
++ * @Id: form_variables.3x,v 1.4 2013/06/22 17:58:32 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -68,7 +68,7 @@
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+ These are building blocks for the form library, defining
+- fields that can be created using <STRONG><A HREF="set_fieldtype.3x.html">set_fieldtype(3x)</A></STRONG>. Each
++ fields that can be created using <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>. Each
+ provides functions for field- and character-validation,
+ according to the given datatype.
+
+Index: doc/html/man/form_win.3x.html
+--- ncurses-5.9/doc/html/man/form_win.3x.html 2011-01-09 01:03:22.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/form_win.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/index.html
+Prereq: 1.4
+--- ncurses-5.9/doc/html/man/index.html 2010-01-09 20:36:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/index.html 2013-06-07 20:12:36.000000000 +0000
+@@ -1,8 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+ <!--
+- $Id: index.html,v 1.4 2010/01/09 20:36:50 tom Exp $
++ $Id: index.html,v 1.7 2013/06/07 20:12:36 tom Exp $
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,39 +28,83 @@
+ * authorization. *
+ ****************************************************************************
+ -->
+-<HTML>
+-<HEAD>
+-<TITLE>NCURSES &ndash; Manual Pages</TITLE>
+-<LINK REV=MADE HREF="mailto:dickey@invisible-island.net">
+-</HEAD>
+-<BODY>
+-<HR>
+-<ul>
+-<li>Programs:
+-<ul>
+-<li><a href = "captoinfo.1m.html">captoinfo &ndash; convert a termcap description into a terminfo description</a>
+-<li><a href = "clear.1.html">clear &ndash; clear the terminal screen</a>
+-<li><a href = "infocmp.1m.html">infocmp &ndash; compare or print out terminfo descriptions</a>
+-<li><a href = "infotocap.1m.html">infotocap &ndash; convert a terminfo description into a termcap description</a>
+-<li><a href = "tabs.1.html">tabs &ndash; set tabs on a terminal</a>
+-<li><a href = "tic.1m.html">tic &ndash; the terminfo entry-description compiler</a>
+-<li><a href = "toe.1m.html">toe &ndash; table of (terminfo) entries</a>
+-<li><a href = "tput.1.html">tput &ndash; initialize a terminal or query terminfo database</a>
+-<li><a href = "tset.1.html">tset &ndash; terminal initialization</a>
+-</ul>
+-<li>Libraries:
+-<ul>
+-<li><a href = "ncurses.3x.html">ncurses &ndash; CRT screen handling and optimization package</a>
+-<li><a href = "panel.3x.html">panel- panel stack extension for curses</a>
+-<li><a href = "form.3x.html">form &ndash; curses extension for programming forms</a>
+-<li><a href = "menu.3x.html">menu &ndash; curses extension for programming menus</a>
+-</ul>
+-<li>File formats:
+-<ul>
+-<li><a href = "terminfo.5.html">terminfo &ndash; terminal capability data base</a>
+-<li><a href = "term.5.html">term &ndash; format of compiled term file.</a>
+-<li><a href = "term.7.html">term &ndash; conventions for naming terminal types</a>
+-</ul>
+-</ul>
+-</BODY>
+-</HTML>
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
++
++<html>
++<head>
++ <meta name="generator" content=
++ "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
++
++ <title>NCURSES &ndash; Manual Pages</title>
++ <link rev="MADE" href="mailto:dickey@invisible-island.net">
++ <meta http-equiv="Content-Type" content=
++ "text/html; charset=us-ascii">
++</head>
++
++<body>
++ <ul>
++ <li>Programs:
++
++ <ul>
++ <li><a href="captoinfo.1m.html">captoinfo &ndash; convert a
++ termcap description into a terminfo description</a></li>
++
++ <li><a href="clear.1.html">clear &ndash; clear the terminal
++ screen</a></li>
++
++ <li><a href="infocmp.1m.html">infocmp &ndash; compare or
++ print out terminfo descriptions</a></li>
++
++ <li><a href="infotocap.1m.html">infotocap &ndash; convert a
++ terminfo description into a termcap description</a></li>
++
++ <li><a href="tabs.1.html">tabs &ndash; set tabs on a
++ terminal</a></li>
++
++ <li><a href="tic.1m.html">tic &ndash; the terminfo
++ entry-description compiler</a></li>
++
++ <li><a href="toe.1m.html">toe &ndash; table of (terminfo)
++ entries</a></li>
++
++ <li><a href="tput.1.html">tput &ndash; initialize a
++ terminal or query terminfo database</a></li>
++
++ <li><a href="tset.1.html">tset &ndash; terminal
++ initialization</a></li>
++ </ul>
++ </li>
++
++ <li>Libraries:
++
++ <ul>
++ <li><a href="ncurses.3x.html">ncurses &ndash; CRT screen
++ handling and optimization package</a></li>
++
++ <li><a href="panel.3x.html">panel- panel stack extension
++ for curses</a></li>
++
++ <li><a href="form.3x.html">form &ndash; curses extension
++ for programming forms</a></li>
++
++ <li><a href="menu.3x.html">menu &ndash; curses extension
++ for programming menus</a></li>
++ </ul>
++ </li>
++
++ <li>File formats:
++
++ <ul>
++ <li><a href="terminfo.5.html">terminfo &ndash; terminal
++ capability data base</a></li>
++
++ <li><a href="term.5.html">term &ndash; format of compiled
++ term file.</a></li>
++
++ <li><a href="term.7.html">term &ndash; conventions for
++ naming terminal types</a></li>
++ </ul>
++ </li>
++ </ul>
++</body>
++</html>
+Index: doc/html/man/infocmp.1m.html
+--- ncurses-5.9/doc/html/man/infocmp.1m.html 2011-04-04 22:46:44.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/infocmp.1m.html 2014-08-16 20:43:12.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: infocmp.1m,v 1.46 2010/12/04 18:40:45 tom Exp @
++ * @Id: infocmp.1m,v 1.54 2014/03/29 23:18:29 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -53,7 +53,7 @@
+
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+- <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTUVcdegilnpqrtux</STRONG>]
++ <STRONG>infocmp</STRONG> [<STRONG>-1CDEFGIKLTUVcdegilnpqrtux</STRONG>]
+ [<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>]
+ [<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>]
+ [<EM>termname</EM>...]
+@@ -72,76 +72,91 @@
+ <STRONG>Default</STRONG> <STRONG>Options</STRONG>
+ If no options are specified and zero or one <EM>termnames</EM> are
+ specified, the <STRONG>-I</STRONG> option will be assumed. If more than
+- one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
++ one <EM>termname</EM> is specified, the <STRONG>-d</STRONG> option will be assumed.
+
+ <STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG>
+- <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
+- terminal <EM>termname</EM> with each of the descriptions given by
+- the entries for the other terminal's <EM>termnames</EM>. If a
+- capability is defined for only one of the terminals, the
+- value returned will depend on the type of the capability:
+- <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
++ <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
++ terminal <EM>termname</EM> with each of the descriptions given by
++ the entries for the other terminal's <EM>termnames</EM>. If a
++ capability is defined for only one of the terminals, the
++ value returned will depend on the type of the capability:
++ <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
+ <STRONG>NULL</STRONG> for string variables.
+
+- The <STRONG>-d</STRONG> option produces a list of each capability that is
+- different between two entries. This option is useful to
+- show the difference between two entries, created by dif-
++ The <STRONG>-d</STRONG> option produces a list of each capability that is
++ different between two entries. This option is useful to
++ show the difference between two entries, created by dif-
+ ferent people, for the same or similar terminals.
+
+- The <STRONG>-c</STRONG> option produces a list of each capability that is
+- common between two entries. Capabilities that are not set
+- are ignored. This option can be used as a quick check to
+- see if the <STRONG>-u</STRONG> option is worth using.
+-
+- The <STRONG>-n</STRONG> option produces a list of each capability that is
+- in neither entry. If no <EM>termnames</EM> are given, the environ-
+- ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>.
+- This can be used as a quick check to see if anything was
+- left out of a description.
++ The <STRONG>-c</STRONG> option produces a list of each capability that is
++ common between two or more entries. Capabilities that are
++ not set are ignored. This option can be used as a quick
++ check to see if the <STRONG>-u</STRONG> option is worth using.
++
++ The <STRONG>-n</STRONG> option produces a list of each capability that is
++ in none of the given entries. If no <EM>termnames</EM> are given,
++ the environment variable <STRONG>TERM</STRONG> will be used for both of the
++ <EM>termnames</EM>. This can be used as a quick check to see if
++ anything was left out of a description.
+
+ <STRONG>Source</STRONG> <STRONG>Listing</STRONG> <STRONG>Options</STRONG> <STRONG>[-I]</STRONG> <STRONG>[-L]</STRONG> <STRONG>[-C]</STRONG> <STRONG>[-r]</STRONG>
+- The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
++ The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
+ for each terminal named.
+
+ <STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
+ <STRONG>-L</STRONG> use the long C variable name listed in &lt;<STRONG>term.h</STRONG>&gt;
+ <STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
+ <STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
++ <STRONG>-K</STRONG> modifies the <STRONG>-C</STRONG> option, improving BSD-compatibility.
+
+- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
++ If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
+ will be used for the terminal name.
+
+- The source produced by the <STRONG>-C</STRONG> option may be used directly
+- as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
++ The source produced by the <STRONG>-C</STRONG> option may be used directly
++ as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
+ be changed to the <STRONG>termcap</STRONG> format. <STRONG>infocmp</STRONG> will attempt to
+- convert most of the parameterized information, and any-
+- thing not converted will be plainly marked in the output
++ convert most of the parameterized information, and any-
++ thing not converted will be plainly marked in the output
+ and commented out. These should be edited by hand.
+
+- All padding information for strings will be collected
+- together and placed at the beginning of the string where
+- <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
++ For best results when converting to <STRONG>termcap</STRONG> format, you
++ should use both <STRONG>-C</STRONG> and <STRONG>-r</STRONG>. Normally a termcap description
++ is limited to 1023 bytes. infocmp trims away less essen-
++ tial parts to make it fit. If you are converting to one
++ of the (rare) termcap implementations which accept an
++ unlimited size of termcap, you may want to add the <STRONG>-T</STRONG>
++ option. More often however, you must help the termcap
++ implementation, and trim excess whitespace (use the <STRONG>-0</STRONG>
++ option for that).
++
++ All padding information for strings will be collected
++ together and placed at the beginning of the string where
++ <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
+ tion with a trailing '/') will become optional.
+
+ All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but
+ which are derivable from other <STRONG>terminfo</STRONG> variables, will be
+ output. Not all <STRONG>terminfo</STRONG> capabilities will be translated;
+- only those variables which were part of <STRONG>termcap</STRONG> will nor-
+- mally be output. Specifying the <STRONG>-r</STRONG> option will take off
+- this restriction, allowing all capabilities to be output
+- in <EM>termcap</EM> form.
++ only those variables which were part of <STRONG>termcap</STRONG> will nor-
++ mally be output. Specifying the <STRONG>-r</STRONG> option will take off
++ this restriction, allowing all capabilities to be output
++ in <EM>termcap</EM> form. Normally you would use both the <STRONG>-C</STRONG> and
++ <STRONG>-r</STRONG> options. The actual format used incorporates some
++ improvements for escaped characters from terminfo format.
++ For a stricter BSD-compatible translation, use the <STRONG>-K</STRONG>
++ option rather than <STRONG>-C</STRONG>.
+
+ Note that because padding is collected to the beginning of
+- the capability, not all capabilities are output. Manda-
+- tory padding is not supported. Because <STRONG>termcap</STRONG> strings
+- are not as flexible, it is not always possible to convert
+- a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
+- format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
+- into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
++ the capability, not all capabilities are output. Manda-
++ tory padding is not supported. Because <STRONG>termcap</STRONG> strings
++ are not as flexible, it is not always possible to convert
++ a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
++ format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
++ into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
+ original <STRONG>terminfo</STRONG> source.
+
+- Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
+- equivalents, and some terminal types which commonly have
++ Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
++ equivalents, and some terminal types which commonly have
+ such sequences, are:
+
+ <STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
+@@ -154,66 +169,77 @@
+ <STRONG>%p2</STRONG> is printed before <STRONG>%p1</STRONG> <STRONG>%r</STRONG> hp
+
+ <STRONG>Use=</STRONG> <STRONG>Option</STRONG> <STRONG>[-u]</STRONG>
+- The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
+- the first terminal <EM>termname</EM> which is relative to the sum
+- of the descriptions given by the entries for the other
+- terminals <EM>termnames</EM>. It does this by analyzing the dif-
+- ferences between the first <EM>termname</EM> and the other
++ The <STRONG>-u</STRONG> option produces a <STRONG>terminfo</STRONG> source description of
++ the first terminal <EM>termname</EM> which is relative to the sum
++ of the descriptions given by the entries for the other
++ terminals <EM>termnames</EM>. It does this by analyzing the dif-
++ ferences between the first <EM>termname</EM> and the other
+ <EM>termnames</EM> and producing a description with <STRONG>use=</STRONG> fields for
+- the other terminals. In this manner, it is possible to
+- retrofit generic terminfo entries into a terminal's
++ the other terminals. In this manner, it is possible to
++ retrofit generic terminfo entries into a terminal's
+ description. Or, if two similar terminals exist, but were
+- coded at different times or by different people so that
++ coded at different times or by different people so that
+ each description is a full description, using <STRONG>infocmp</STRONG> will
+ show what can be done to change one description to be rel-
+ ative to the other.
+
+ A capability will get printed with an at-sign (@) if it no
+- longer exists in the first <EM>termname</EM>, but one of the other
+- <EM>termname</EM> entries contains a value for it. A capability's
+- value gets printed if the value in the first <EM>termname</EM> is
+- not found in any of the other <EM>termname</EM> entries, or if the
++ longer exists in the first <EM>termname</EM>, but one of the other
++ <EM>termname</EM> entries contains a value for it. A capability's
++ value gets printed if the value in the first <EM>termname</EM> is
++ not found in any of the other <EM>termname</EM> entries, or if the
+ first of the other <EM>termname</EM> entries that has this capabil-
+- ity gives a different value for the capability than that
++ ity gives a different value for the capability than that
+ in the first <EM>termname</EM>.
+
+- The order of the other <EM>termname</EM> entries is significant.
+- Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
++ The order of the other <EM>termname</EM> entries is significant.
++ Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
+ of the capabilities, specifying two <STRONG>use=</STRONG> entries that con-
+ tain differing entries for the same capabilities will pro-
+- duce different results depending on the order that the
+- entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
+- sistencies between the other <EM>termname</EM> entries as they are
++ duce different results depending on the order that the
++ entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
++ sistencies between the other <EM>termname</EM> entries as they are
+ found.
+
+- Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
++ Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
+ that contains that capability will cause the second speci-
+- fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
++ fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
+ description can be a useful check to make sure that every-
+- thing was specified correctly in the original source
++ thing was specified correctly in the original source
+ description.
+
+- Another error that does not cause incorrect compiled
+- files, but will slow down the compilation time, is speci-
+- fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
+- will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
++ Another error that does not cause incorrect compiled
++ files, but will slow down the compilation time, is speci-
++ fying extra <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
++ will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
+ needed.
+
+ <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
+- The location of the compiled <STRONG>terminfo</STRONG> database is taken
+- from the environment variable <STRONG>TERMINFO</STRONG> . If the variable
+- is not defined, or the terminal is not found in that loca-
+- tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG>
+- <STRONG>minfo</STRONG>, will be used. The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to
+- override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
+- for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG>
+- for the other <EM>termnames</EM>. With this, it is possible to
+- compare descriptions for a terminal with the same name
+- located in two different databases. This is useful for
+- comparing descriptions for the same terminal created by
+- different people.
++ Like other <STRONG>ncurses</STRONG> utilities, infocmp looks for the termi-
++ nal descriptions in several places. You can use the <STRONG>TER-</STRONG>
++ <STRONG>MINFO</STRONG> and <STRONG>TERMINFO_DIRS</STRONG> environment variables to override
++ the compiled-in default list of places to search (see
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> for details).
++
++ You can also use the options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> to override the
++ list of places to search when comparing terminal descrip-
++ tions:
++
++ <STRONG>o</STRONG> The <STRONG>-A</STRONG> option sets the location for the first <EM>termname</EM>
++
++ <STRONG>o</STRONG> The <STRONG>-B</STRONG> option sets the location for the other
++ <EM>termnames</EM>.
++
++ Using these options, it is possible to compare descrip-
++ tions for a terminal with the same name located in two
++ different databases. For instance, you can use this fea-
++ ture for comparing descriptions for the same terminal cre-
++ ated by different people.
+
+ <STRONG>Other</STRONG> <STRONG>Options</STRONG>
++ <STRONG>-0</STRONG> causes the fields to be printed on one line, without
++ wrapping.
++
+ <STRONG>-1</STRONG> causes the fields to be printed out one to a line.
+ Otherwise, the fields will be printed several to a
+ line to a maximum width of 60 characters.
+@@ -222,67 +248,71 @@
+ rather than discarding them. Capabilities are com-
+ mented by prefixing them with a period.
+
++ <STRONG>-D</STRONG> tells <STRONG>infocmp</STRONG> to print the database locations that it
++ knows about, and exit.
++
+ <STRONG>-E</STRONG> Dump the capabilities of the given terminal as
+- tables, needed in the C initializer for a TERMTYPE
+- structure (the terminal capability structure in the
+- <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing ver-
+- sions of the curses library hardwired for a given
+- terminal type. The tables are all declared static,
+- and are named according to the type and the name of
++ tables, needed in the C initializer for a TERMTYPE
++ structure (the terminal capability structure in the
++ <STRONG>&lt;term.h&gt;</STRONG>). This option is useful for preparing ver-
++ sions of the curses library hardwired for a given
++ terminal type. The tables are all declared static,
++ and are named according to the type and the name of
+ the corresponding terminal entry.
+
+- Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
+- options was not needed; but support for extended
++ Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
++ options was not needed; but support for extended
+ names required making the arrays of terminal capabil-
+ ities separate from the TERMTYPE structure.
+
+- <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
+- initializer for a TERMTYPE structure (the terminal
+- capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option
++ <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
++ initializer for a TERMTYPE structure (the terminal
++ capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option
+ is useful for preparing versions of the curses
+ library hardwired for a given terminal type.
+
+- <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
+- lowing arguments are filenames. The files are
+- searched for pairwise matches between entries, with
++ <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
++ lowing arguments are filenames. The files are
++ searched for pairwise matches between entries, with
+ two entries considered to match if any of their names
+- do. The report printed to standard output lists
+- entries with no matches in the other file, and
+- entries with more than one match. For entries with
+- exactly one match it includes a difference report.
+- Normally, to reduce the volume of the report, use
+- references are not resolved before looking for dif-
++ do. The report printed to standard output lists
++ entries with no matches in the other file, and
++ entries with more than one match. For entries with
++ exactly one match it includes a difference report.
++ Normally, to reduce the volume of the report, use
++ references are not resolved before looking for dif-
+ ferences, but resolution can be forced by also speci-
+ fying <STRONG>-r</STRONG>.
+
+- <STRONG>-f</STRONG> Display complex terminfo strings which contain
++ <STRONG>-f</STRONG> Display complex terminfo strings which contain
+ if/then/else/endif expressions indented for readabil-
+ ity.
+
+ <STRONG>-G</STRONG> Display constant literals in decimal form rather than
+ their character equivalents.
+
+- <STRONG>-g</STRONG> Display constant character literals in quoted form
++ <STRONG>-g</STRONG> Display constant character literals in quoted form
+ rather than their decimal equivalents.
+
+ <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset
+- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
+- string, the code tries to analyze it into actions in
++ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
++ string, the code tries to analyze it into actions in
+ terms of the other capabilities in the entry, certain
+- X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
+- VT-series private modes (the set of recognized spe-
+- cial sequences has been selected for completeness
+- over the existing terminfo database). Each report
+- line consists of the capability name, followed by a
++ X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC
++ VT-series private modes (the set of recognized spe-
++ cial sequences has been selected for completeness
++ over the existing terminfo database). Each report
++ line consists of the capability name, followed by a
+ colon and space, followed by a printable expansion of
+- the capability string with sections matching recog-
+- nized actions translated into {}-bracketed descrip-
+- tions. Here is a list of the DEC/ANSI special
++ the capability string with sections matching recog-
++ nized actions translated into {}-bracketed descrip-
++ tions. Here is a list of the DEC/ANSI special
+ sequences recognized: i.
+
+ Action Meaning
+ -----------------------------------------
+ RIS full reset
++
+ SC save cursor
+ RC restore cursor
+ LL home-down
+@@ -310,21 +340,20 @@
+ DEC[+-]CKM application cursor keys
+ DEC[+-]ANM set VT52 mode
+ DEC[+-]COLM 132-column mode
+-
+ DEC[+-]SCLM smooth scroll
+ DEC[+-]SCNM reverse video mode
+ DEC[+-]OM origin mode
+ DEC[+-]AWM wraparound mode
+ DEC[+-]ARM auto-repeat mode
+
+- It also recognizes a SGR action corresponding to
+- ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
+- values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
+- All but NORMAL may be prefixed with `+' (turn on) or
++ It also recognizes a SGR action corresponding to
++ ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
++ values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
++ All but NORMAL may be prefixed with `+' (turn on) or
+ `-' (turn off).
+
+- An SGR0 designates an empty highlight sequence (equivalent
+- to {SGR:NORMAL}).
++ An SGR0 designates an empty highlight sequence
++ (equivalent to {SGR:NORMAL}).
+
+ <STRONG>-l</STRONG> Set output format to terminfo.
+
+@@ -398,18 +427,19 @@
+
+ </PRE>
+ <H2>FILES</H2><PRE>
+- /usr/share/terminfo Compiled terminal description
+- database.
++ /usr/share/terminfo Compiled terminal description data-
++ base.
+
+
+ </PRE>
+ <H2>EXTENSIONS</H2><PRE>
+- The <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
+- and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
++ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>,
++ <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG> and <STRONG>-t</STRONG> options are not supported in SVr4
++ curses.
+
+ The <STRONG>-r</STRONG> option's notion of `termcap' capabilities is System
+- V Release 4's. Actual BSD curses versions will have a
+- more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG>
++ V Release 4's. Actual BSD curses versions will have a
++ more restricted set. To see only the 4.4BSD set, use <STRONG>-r</STRONG>
+ <STRONG>-RBSD</STRONG>.
+
+
+@@ -420,10 +450,12 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
++ <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ http://invisible-island.net/ncurses/tctest.html
++
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+ </PRE>
+Index: doc/html/man/infotocap.1m.html
+--- ncurses-5.9/doc/html/man/infotocap.1m.html 2011-04-04 22:46:44.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/infotocap.1m.html 2014-08-16 20:43:12.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+@@ -80,8 +80,8 @@
+
+ </PRE>
+ <H2>FILES</H2><PRE>
+- /usr/share/terminfo Compiled terminal description
+- database.
++ /usr/share/terminfo Compiled terminal description data-
++ base.
+
+
+ </PRE>
+@@ -94,7 +94,7 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+ </PRE>
+Index: doc/html/man/key_defined.3x.html
+--- ncurses-5.9/doc/html/man/key_defined.3x.html 2011-01-09 01:03:23.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/key_defined.3x.html 2013-05-17 22:24:21.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2003-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/keybound.3x.html
+--- ncurses-5.9/doc/html/man/keybound.3x.html 2011-01-09 01:03:23.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/keybound.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/keyok.3x.html
+--- ncurses-5.9/doc/html/man/keyok.3x.html 2011-01-09 01:03:23.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/keyok.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/legacy_coding.3x.html
+--- ncurses-5.9/doc/html/man/legacy_coding.3x.html 2011-01-09 01:03:23.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/legacy_coding.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2005-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/menu.3x.html
+--- ncurses-5.9/doc/html/man/menu.3x.html 2011-04-04 22:46:45.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu.3x.html 2014-08-16 20:43:12.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: menu.3x,v 1.21 2010/12/04 18:40:45 tom Exp @
++ * @Id: menu.3x,v 1.22 2014/08/16 20:32:08 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -196,37 +196,34 @@
+
+
+ </PRE>
+-<H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
+- detailed descriptions of the entry points.
+-
+-
+-</PRE>
+ <H2>NOTES</H2><PRE>
+ The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
+ files <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
+
+- In your library list, libmenu.a should be before libn-
++ In your library list, libmenu.a should be before libn-
+ curses.a; that is, you want to say `-lmenu -lncurses', not
+- the other way around (which would usually give a link-
++ the other way around (which would usually give a link-
+ error).
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- These routines emulate the System V menu library. They
++ These routines emulate the System V menu library. They
+ were not supported on Version 7 or BSD versions.
+
+
+ </PRE>
+ <H2>AUTHORS</H2><PRE>
+- Juergen Pfeifer. Manual pages and adaptation for ncurses
++ Juergen Pfeifer. Manual pages and adaptation for ncurses
+ by Eric S. Raymond.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
++ detailed descriptions of the entry points.
++
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/menu_attributes.3x.html
+--- ncurses-5.9/doc/html/man/menu_attributes.3x.html 2011-01-09 01:03:24.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_attributes.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_cursor.3x.html
+--- ncurses-5.9/doc/html/man/menu_cursor.3x.html 2011-01-09 01:03:24.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_cursor.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_driver.3x.html
+--- ncurses-5.9/doc/html/man/menu_driver.3x.html 2011-02-25 23:25:05.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_driver.3x.html 2013-12-21 21:59:40.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+@@ -119,8 +119,8 @@
+ Clear the menu pattern buffer.
+
+ REQ_BACK_PATTERN
+- Delete the previous character from the pattern
+- buffer.
++ Delete the previous character from the pattern buf-
++ fer.
+
+ REQ_NEXT_MATCH
+ Move to the next item matching the pattern match.
+@@ -128,20 +128,20 @@
+ REQ_PREV_MATCH
+ Move to the previous item matching the pattern match.
+
+- If the second argument is a printable character, the code
+- appends it to the pattern buffer and attempts to move to
+- the next item matching the new pattern. If there is no
++ If the second argument is a printable character, the code
++ appends it to the pattern buffer and attempts to move to
++ the next item matching the new pattern. If there is no
+ such match, <STRONG>menu_driver</STRONG> returns <STRONG>E_NO_MATCH</STRONG> and deletes the
+ appended character from the buffer.
+
+- If the second argument is one of the above pre-defined
++ If the second argument is one of the above pre-defined
+ requests, the corresponding action is performed.
+
+ <STRONG>MOUSE</STRONG> <STRONG>HANDLING</STRONG>
+- If the second argument is the KEY_MOUSE special key, the
++ If the second argument is the KEY_MOUSE special key, the
+ associated mouse event is translated into one of the above
+- pre-defined requests. Currently only clicks in the user
+- window (e.g., inside the menu display area or the decora-
++ pre-defined requests. Currently only clicks in the user
++ window (e.g., inside the menu display area or the decora-
+ tion window) are handled.
+
+ If you click above the display region of the menu:
+@@ -160,32 +160,32 @@
+
+ <STRONG>o</STRONG> a REQ_LAST_ITEM is generated for a triple-click.
+
+- If you click at an item inside the display area of the
++ If you click at an item inside the display area of the
+ menu:
+
+ <STRONG>o</STRONG> the menu cursor is positioned to that item.
+
+- <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen-
++ <STRONG>o</STRONG> If you double-click an item a REQ_TOGGLE_ITEM is gen-
+ erated and <STRONG>E_UNKNOWN_COMMAND</STRONG> is returned. This return
+- value makes sense, because a double click usually
++ value makes sense, because a double click usually
+ means that an item-specific action should be returned.
+ It is exactly the purpose of this return value to sig-
+- nal that an application specific command should be
++ nal that an application specific command should be
+ executed.
+
+- <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG>
++ <STRONG>o</STRONG> If a translation into a request was done, <STRONG>menu_driver</STRONG>
+ returns the result of this request.
+
+- If you clicked outside the user window or the mouse event
+- could not be translated into a menu request an
++ If you clicked outside the user window or the mouse event
++ could not be translated into a menu request an
+ <STRONG>E_REQUEST_DENIED</STRONG> is returned.
+
+ <STRONG>APPLICATION-DEFINED</STRONG> <STRONG>COMMANDS</STRONG>
+ If the second argument is neither printable nor one of the
+- above pre-defined menu requests or KEY_MOUSE, the drive
+- assumes it is an application-specific command and returns
++ above pre-defined menu requests or KEY_MOUSE, the drive
++ assumes it is an application-specific command and returns
+ <STRONG>E_UNKNOWN_COMMAND</STRONG>. Application-defined commands should be
+- defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of
++ defined relative to <STRONG>MAX_COMMAND</STRONG>, the maximum value of
+ these pre-defined requests.
+
+
+@@ -199,7 +199,7 @@
+ System error occurred (see <STRONG>errno</STRONG>).
+
+ <STRONG>E_BAD_ARGUMENT</STRONG>
+- Routine detected an incorrect or out-of-range argu-
++ Routine detected an incorrect or out-of-range argu-
+ ment.
+
+ <STRONG>E_BAD_STATE</STRONG>
+@@ -221,7 +221,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>, <STRONG><A HREF="getch.3x.html">getch(3x)</A></STRONG>.
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>.
+
+
+ </PRE>
+@@ -232,14 +232,14 @@
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- These routines emulate the System V menu library. They
+- were not supported on Version 7 or BSD versions. The sup-
++ These routines emulate the System V menu library. They
++ were not supported on Version 7 or BSD versions. The sup-
+ port for mouse events is ncurses specific.
+
+
+ </PRE>
+ <H2>AUTHORS</H2><PRE>
+- Juergen Pfeifer. Manual pages and adaptation for new
++ Juergen Pfeifer. Manual pages and adaptation for new
+ curses by Eric S. Raymond.
+
+
+Index: doc/html/man/menu_format.3x.html
+--- ncurses-5.9/doc/html/man/menu_format.3x.html 2011-01-09 01:03:24.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_format.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_hook.3x.html
+--- ncurses-5.9/doc/html/man/menu_hook.3x.html 2011-01-09 01:03:24.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_hook.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_items.3x.html
+--- ncurses-5.9/doc/html/man/menu_items.3x.html 2011-01-09 01:03:24.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_items.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: menu_items.3x,v 1.9 2010/12/04 18:40:45 tom Exp @
++ * @Id: menu_items.3x,v 1.10 2012/11/03 23:03:59 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -74,7 +74,7 @@
+
+
+ </PRE>
+-<H2>RETURN VALUES</H2><PRE>
++<H2>RETURN VALUE</H2><PRE>
+ The function <STRONG>menu_items</STRONG> returns a pointer (which may be
+ <STRONG>NULL</STRONG>). It does not set errno.
+
+Index: doc/html/man/menu_mark.3x.html
+--- ncurses-5.9/doc/html/man/menu_mark.3x.html 2011-01-09 01:03:24.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_mark.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_new.3x.html
+--- ncurses-5.9/doc/html/man/menu_new.3x.html 2011-01-09 01:03:25.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_new.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_opts.3x.html
+--- ncurses-5.9/doc/html/man/menu_opts.3x.html 2011-01-09 01:03:25.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_opts.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_pattern.3x.html
+--- ncurses-5.9/doc/html/man/menu_pattern.3x.html 2011-01-09 01:03:25.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_pattern.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/menu_post.3x.html
+--- ncurses-5.9/doc/html/man/menu_post.3x.html 2011-01-09 01:03:25.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_post.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_requestname.3x.html
+--- ncurses-5.9/doc/html/man/menu_requestname.3x.html 2011-01-09 01:03:25.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_requestname.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_spacing.3x.html
+--- ncurses-5.9/doc/html/man/menu_spacing.3x.html 2011-01-09 01:03:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_spacing.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_userptr.3x.html
+--- ncurses-5.9/doc/html/man/menu_userptr.3x.html 2011-01-09 01:03:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_userptr.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/menu_win.3x.html
+--- ncurses-5.9/doc/html/man/menu_win.3x.html 2011-01-09 01:03:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/menu_win.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/mitem_current.3x.html
+--- ncurses-5.9/doc/html/man/mitem_current.3x.html 2011-01-09 01:03:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_current.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/mitem_name.3x.html
+--- ncurses-5.9/doc/html/man/mitem_name.3x.html 2011-01-09 01:03:26.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_name.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/mitem_new.3x.html
+--- ncurses-5.9/doc/html/man/mitem_new.3x.html 2011-01-09 01:03:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_new.3x.html 2013-05-17 22:24:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/mitem_opts.3x.html
+--- ncurses-5.9/doc/html/man/mitem_opts.3x.html 2011-01-09 01:03:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_opts.3x.html 2013-05-17 22:24:23.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/mitem_userptr.3x.html
+--- ncurses-5.9/doc/html/man/mitem_userptr.3x.html 2011-01-09 01:03:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_userptr.3x.html 2013-05-17 22:24:23.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/mitem_value.3x.html
+--- ncurses-5.9/doc/html/man/mitem_value.3x.html 2011-01-09 01:03:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_value.3x.html 2013-05-17 22:24:23.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/mitem_visible.3x.html
+--- ncurses-5.9/doc/html/man/mitem_visible.3x.html 2011-01-09 01:03:27.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/mitem_visible.3x.html 2013-05-17 22:24:23.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+Index: doc/html/man/ncurses.3x.html
+--- ncurses-5.9/doc/html/man/ncurses.3x.html 2011-04-04 22:46:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/ncurses.3x.html 2014-08-16 20:43:14.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp @
++ * @Id: ncurses.3x,v 1.119 2014/08/09 20:54:30 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -60,10 +60,10 @@
+ <H2>DESCRIPTION</H2><PRE>
+ The <STRONG>ncurses</STRONG> library routines give the user a terminal-
+ independent method of updating character screens with rea-
+- sonable optimization. This implementation is ``new
+- curses'' (ncurses) and is the approved replacement for
+- 4.4BSD classic curses, which has been discontinued. This
+- describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ sonable optimization. This implementation is "new curses"
++ (ncurses) and is the approved replacement for 4.4BSD clas-
++ sic curses, which has been discontinued. This describes
++ <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+ The <STRONG>ncurses</STRONG> library emulates the curses library of System
+ V Release 4 UNIX, and XPG4 (X/Open Portability Guide)
+@@ -150,48 +150,48 @@
+ Among those, the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
+ More general versions of these routines are included with
+ names beginning with <STRONG>w</STRONG>, allowing the user to specify a
+- window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
++ window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.
+
+- After using routines to manipulate a window, <STRONG>refresh</STRONG> is
+- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
+- like <STRONG>stdscr</STRONG>. The characters in a window are actually of
+- type <STRONG>chtype</STRONG>, (character and attribute data) so that other
+- information about the character may also be stored with
++ After using routines to manipulate a window, <STRONG>refresh</STRONG> is
++ called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
++ like <STRONG>stdscr</STRONG>. The characters in a window are actually of
++ type <STRONG>chtype</STRONG>, (character and attribute data) so that other
++ information about the character may also be stored with
+ each character.
+
+- Special windows called <EM>pads</EM> may also be manipulated.
++ Special windows called <EM>pads</EM> may also be manipulated.
+ These are windows which are not constrained to the size of
+- the screen and whose contents need not be completely dis-
++ the screen and whose contents need not be completely dis-
+ played. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more information.
+
+- In addition to drawing characters on the screen, video
+- attributes and colors may be supported, causing the char-
+- acters to show up in such modes as underlined, in reverse
+- video, or in color on terminals that support such display
++ In addition to drawing characters on the screen, video
++ attributes and colors may be supported, causing the char-
++ acters to show up in such modes as underlined, in reverse
++ video, or in color on terminals that support such display
+ enhancements. Line drawing characters may be specified to
+- be output. On input, <STRONG>curses</STRONG> is also able to translate
+- arrow and function keys that transmit escape sequences
+- into single values. The video attributes, line drawing
+- characters, and input values use names, defined in
++ be output. On input, <STRONG>curses</STRONG> is also able to translate
++ arrow and function keys that transmit escape sequences
++ into single values. The video attributes, line drawing
++ characters, and input values use names, defined in
+ <STRONG>&lt;curses.h&gt;</STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
+
+ If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
+- if the program is executing in a window environment, line
+- and column information in the environment will override
++ if the program is executing in a window environment, line
++ and column information in the environment will override
+ information read by <EM>terminfo</EM>. This would affect a program
+- running in an AT&amp;T 630 layer, for example, where the size
++ running in an AT&amp;T 630 layer, for example, where the size
+ of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
+
+- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
+- gram using <STRONG>curses</STRONG> checks for a local terminal definition
+- before checking in the standard place. For example, if
++ If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
++ gram using <STRONG>curses</STRONG> checks for a local terminal definition
++ before checking in the standard place. For example, if
+ <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini-
+ tion is found in
+
+ <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
+
+ (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
+- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
++ creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
+ set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
+
+ <STRONG>$HOME/myterms/a/att4424</STRONG>,
+@@ -200,119 +200,117 @@
+
+ <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
+
+- This is useful for developing experimental definitions or
++ This is useful for developing experimental definitions or
+ when write permission in <STRONG>/usr/share/terminfo</STRONG> is not avail-
+ able.
+
+- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
+- <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
++ The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
++ <STRONG>&lt;curses.h&gt;</STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
+ of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val-
+ ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
+
+- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
++ The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
+ <STRONG>curscr</STRONG> which is used for certain low-level operations like
+- clearing and redrawing a screen containing garbage. The
++ clearing and redrawing a screen containing garbage. The
+ <STRONG>curscr</STRONG> can be used in only a few routines.
+
+ <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
+- Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
++ Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
+ tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
+ tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
+ out a prefix generally use <STRONG>stdscr</STRONG>.
+
+ The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
+- to move to before performing the appropriate action. The
+- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
+- other routine. The coordinate <EM>y</EM> always refers to the row
+- (of the window), and <EM>x</EM> always refers to the column. The
++ to move to before performing the appropriate action. The
++ <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
++ other routine. The coordinate <EM>y</EM> always refers to the row
++ (of the window), and <EM>x</EM> always refers to the column. The
+ upper left-hand corner is always (0,0), not (1,1).
+
+ The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
+- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
++ and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
+ specified before the coordinates.
+
+- In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
++ In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
+ pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG>
+ <STRONG>DOW</STRONG>.
+
+ Option setting routines require a Boolean flag <EM>bf</EM> with the
+- value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
+- the data types used in the library routines, such as <STRONG>WIN-</STRONG>
+- <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
+- Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
++ value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. Most of
++ the data types used in the library routines, such as <STRONG>WIN-</STRONG>
++ <STRONG>DOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
++ Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG> are
+ defined in <STRONG>&lt;term.h&gt;</STRONG>.
+
+- This manual page describes functions which may appear in
+- any configuration of the library. There are two common
++ This manual page describes functions which may appear in
++ any configuration of the library. There are two common
+ configurations of the library:
+
+ ncurses
+ the "normal" library, which handles 8-bit
+ characters. The normal (8-bit) library stores
+- characters combined with attributes in <STRONG>chtype</STRONG>
++ characters combined with attributes in <STRONG>chtype</STRONG>
+ data.
+
+- Attributes alone (no corresponding character)
+- may be stored in <STRONG>chtype</STRONG> or the equivalent
+- <STRONG>attr_t</STRONG> data. In either case, the data is
++ Attributes alone (no corresponding character)
++ may be stored in <STRONG>chtype</STRONG> or the equivalent
++ <STRONG>attr_t</STRONG> data. In either case, the data is
+ stored in something like an integer.
+
+- Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
++ Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
+ stored as a <STRONG>chtype</STRONG>.
+
+ ncursesw
+- the so-called "wide" library, which handles
+- multibyte characters (see the section on
++ the so-called "wide" library, which handles
++ multibyte characters (see the section on
+ <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>). The "wide" library
+- includes all of the calls from the "normal"
+- library. It adds about one third more calls
++ includes all of the calls from the "normal"
++ library. It adds about one third more calls
+ using data types which store multibyte charac-
+ ters:
+
+ <STRONG>cchar_t</STRONG>
+- corresponds to <STRONG>chtype</STRONG>. However it is a
+- structure, because more data is stored
+- than can fit into an integer. The char-
++ corresponds to <STRONG>chtype</STRONG>. However it is a
++ structure, because more data is stored
++ than can fit into an integer. The char-
+ acters are large enough to require a full
+- integer value - and there may be more
+- than one character per cell. The video
+- attributes and color are stored in sepa-
++ integer value - and there may be more
++ than one character per cell. The video
++ attributes and color are stored in sepa-
+ rate fields of the structure.
+
+ Each cell (row and column) in a <STRONG>WINDOW</STRONG> is
+ stored as a <STRONG>cchar_t</STRONG>.
+
+ <STRONG>wchar_t</STRONG>
+- stores a "wide" character. Like <STRONG>chtype</STRONG>,
++ stores a "wide" character. Like <STRONG>chtype</STRONG>,
+ this may be an integer.
+
+ <STRONG>wint_t</STRONG>
+- stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
++ stores a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - not the same,
+ though both may have the same size.
+
+ The "wide" library provides new functions
+- which are analogous to functions in the "nor-
+- mal" library. There is a naming convention
+- which relates many of the normal/wide vari-
+- ants: a "_w" is inserted into the name. For
++ which are analogous to functions in the "nor-
++ mal" library. There is a naming convention
++ which relates many of the normal/wide vari-
++ ants: a "_w" is inserted into the name. For
+ example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
+
+-
+ <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
+ The following table lists each <STRONG>curses</STRONG> routine and the name
+- of the manual page on which it is described. Routines
+- flagged with `*' are ncurses-specific, not described by
++ of the manual page on which it is described. Routines
++ flagged with `*' are ncurses-specific, not described by
+ XPG4 or present in SVr4.
+
+-
+ <STRONG>curses</STRONG> Routine Name Manual Page Name
+ --------------------------------------------
+ COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+ PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ _nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
+-
+ _nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
+ _nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
++
+ _traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+ _traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+ _tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+@@ -376,9 +374,9 @@
+ echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+-
+ endwin <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
++
+ erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+ erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+ filter <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+@@ -442,9 +440,9 @@
+ intrflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ inwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+ is_cleared <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+-
+ is_idcok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+ is_idlok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
++
+ is_immedok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+ is_keypad <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+ is_leaveok <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+@@ -508,9 +506,9 @@
+ mvinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+ mvinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+ mvinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+-
+ mvinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+ mvinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
++
+ mvprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+ mvscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+ mvvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+@@ -574,9 +572,9 @@
+ pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+ pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+ pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+-
+ prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+ printw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
++
+ putp <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ putwin <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ qiflush <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+@@ -640,9 +638,9 @@
+ tigetstr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ timeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ touchline <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+-
+ touchwin <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ tparm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
++
+ tputs <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ tputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
+@@ -656,6 +654,7 @@
+ use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
+ use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
++ use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+@@ -706,8 +705,8 @@
+ wgetbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+ wgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+ wgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+-
+ wgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
++
+ wgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+ whline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+ whline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+@@ -752,11 +751,14 @@
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
+- and an integer value other than <STRONG>ERR</STRONG> upon successful com-
+- pletion, unless otherwise noted in the routine descrip-
++ Routines that return an integer return <STRONG>ERR</STRONG> upon failure
++ and an integer value other than <STRONG>ERR</STRONG> upon successful com-
++ pletion, unless otherwise noted in the routine descrip-
+ tions.
+
++ As a general rule, routines check for null pointers passed
++ as parameters, and handle this as an error.
++
+ All macros return the value of the <STRONG>w</STRONG> version, except
+ <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
+ return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+@@ -772,53 +774,57 @@
+ ing the runtime behavior of the <STRONG>ncurses</STRONG> library. The most
+ important ones have been already discussed in detail.
+
+- BAUDRATE
+- The debugging library checks this environment symbol
+- when the application has redirected output to a file.
+- The symbol's numeric value is used for the baudrate.
+- If no value is found, <STRONG>ncurses</STRONG> uses 9600. This allows
+- testers to construct repeatable test-cases that take
+- into account costs that depend on baudrate.
+-
+ CC When set, change occurrences of the command_character
+- (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
+- entries to the value of this symbol. Very few ter-
++ (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
++ entries to the value of this variable. Very few ter-
+ minfo entries provide this feature.
+
+- Because this name is also used in development envi-
+- ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
++ Because this name is also used in development envi-
++ ronments to represent the C compiler's name, <STRONG>ncurses</STRONG>
+ ignores it if it does not happen to be a single char-
+ acter.
+
++ BAUDRATE
++ The debugging library checks this environment vari-
++ able when the application has redirected output to a
++ file. The variable's numeric value is used for the
++ baudrate. If no value is found, <STRONG>ncurses</STRONG> uses 9600.
++ This allows testers to construct repeatable test-
++ cases that take into account costs that depend on
++ baudrate.
++
+ COLUMNS
+ Specify the width of the screen in characters.
+- Applications running in a windowing environment usu-
+- ally are able to obtain the width of the window in
+- which they are executing. If neither the <STRONG>COLUMNS</STRONG>
+- value nor the terminal's screen size is available,
+- <STRONG>ncurses</STRONG> uses the size which may be specified in the
++ Applications running in a windowing environment usu-
++ ally are able to obtain the width of the window in
++ which they are executing. If neither the <STRONG>COLUMNS</STRONG>
++ value nor the terminal's screen size is available,
++ <STRONG>ncurses</STRONG> uses the size which may be specified in the
+ terminfo database (i.e., the <STRONG>cols</STRONG> capability).
+
+- It is important that your application use a correct
+- size for the screen. This is not always possible
+- because your application may be running on a host
+- which does not honor NAWS (Negotiations About Window
+- Size), or because you are temporarily running as
+- another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
++ It is important that your application use a correct
++ size for the screen. This is not always possible
++ because your application may be running on a host
++ which does not honor NAWS (Negotiations About Window
++ Size), or because you are temporarily running as
++ another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
+ overrides the library's use of the screen size
+ obtained from the operating system.
+
+- Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
+- independently. This is mainly useful to circumvent
+- legacy misfeatures of terminal descriptions, e.g.,
++ Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
++ independently. This is mainly useful to circumvent
++ legacy misfeatures of terminal descriptions, e.g.,
+ xterm which commonly specifies a 65 line screen. For
+- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
++ best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
+ in a terminal description for terminals which are run
+ as emulations.
+
+ Use the <STRONG>use_env</STRONG> function to disable all use of exter-
+- nal environment (including system calls) to determine
+- the screen size.
++ nal environment (but not including system calls) to
++ determine the screen size. Use the <STRONG>use_tioctl</STRONG> func-
++ tion to update <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> to match the screen
++ size obtained from system calls or the terminal data-
++ base.
+
+ ESCDELAY
+ Specifies the total time, in milliseconds, for which
+@@ -858,234 +864,305 @@
+
+ LINES
+ Like COLUMNS, specify the height of the screen in
+- characters. See COLUMNS for a detailed description.
++ characters. See COLUMNS for a detailed description.
+
+ MOUSE_BUTTONS_123
+ This applies only to the OS/2 EMX port. It specifies
+- the order of buttons on the mouse. OS/2 numbers a
++ the order of buttons on the mouse. OS/2 numbers a
+ 3-button mouse inconsistently from other platforms:
+
+ 1 = left
+ 2 = right
+ 3 = middle.
+
+- This symbol lets you customize the mouse. The symbol
+- must be three numeric digits 1-3 in any order, e.g.,
+- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
+- 132.
++ This variable lets you customize the mouse. The
++ variable must be three numeric digits 1-3 in any
++ order, e.g., 123 or 321. If it is not specified,
++ <STRONG>ncurses</STRONG> uses 132.
+
+ NCURSES_ASSUMED_COLORS
+- Override the compiled-in assumption that the termi-
+- nal's default colors are white-on-black (see
+- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
+- background color values with this environment vari-
+- able by proving a 2-element list: foreground,back-
+- ground. For example, to tell ncurses to not assume
+- anything about the colors, set this to "-1,-1". To
+- make it green-on-black, set it to "2,0". Any posi-
++ Override the compiled-in assumption that the termi-
++ nal's default colors are white-on-black (see
++ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>). You may set the foreground and
++ background color values with this environment vari-
++ able by proving a 2-element list: foreground,back-
++ ground. For example, to tell ncurses to not assume
++ anything about the colors, set this to "-1,-1". To
++ make it green-on-black, set it to "2,0". Any posi-
+ tive value from zero to the terminfo <STRONG>max_colors</STRONG> value
+ is allowed.
+
++ NCURSES_CONSOLE2
++ This applies only to the MinGW port of ncurses.
++
++ The <STRONG>Console2</STRONG> program's handling of the Microsoft Con-
++ sole API call <STRONG>CreateConsoleScreenBuffer</STRONG> is defective.
++ Applications which use this will hang. However, it
++ is possible to simulate the action of this call by
++ mapping coordinates, explicitly saving and restoring
++ the original screen contents. Setting the environ-
++ ment variable <STRONG>NCGDB</STRONG> has the same effect.
++
+ NCURSES_GPM_TERMS
+- This applies only to ncurses configured to use the
++ This applies only to ncurses configured to use the
+ GPM interface.
+
+ If present, the environment variable is a list of one
+- or more terminal names against which the TERM envi-
+- ronment variable is matched. Setting it to an empty
+- value disables the GPM interface; using the built-in
++ or more terminal names against which the TERM envi-
++ ronment variable is matched. Setting it to an empty
++ value disables the GPM interface; using the built-in
+ support for xterm, etc.
+
+- If the environment variable is absent, ncurses will
++ If the environment variable is absent, ncurses will
+ attempt to open GPM if TERM contains "linux".
+
+ NCURSES_NO_HARD_TABS
+- <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
+- optimization. In some cases, your terminal driver
+- may not handle these properly. Set this environment
++ <STRONG>Ncurses</STRONG> may use tabs as part of the cursor movement
++ optimization. In some cases, your terminal driver
++ may not handle these properly. Set this environment
+ variable to disable the feature. You can also adjust
+ your <STRONG>stty</STRONG> settings to avoid the problem.
+
+- NCURSES_NO_MAGIC_COOKIES
++ NCURSES_NO_MAGIC_COOKIE
+ Some terminals use a magic-cookie feature which
+- requires special handling to make highlighting and
+- other video attributes display properly. You can
+- suppress the highlighting entirely for these termi-
++ requires special handling to make highlighting and
++ other video attributes display properly. You can
++ suppress the highlighting entirely for these termi-
+ nals by setting this environment variable.
+
+ NCURSES_NO_PADDING
+- Most of the terminal descriptions in the terminfo
+- database are written for real "hardware" terminals.
+- Many people use terminal emulators which run in a
+- windowing environment and use curses-based applica-
+- tions. Terminal emulators can duplicate all of the
++ Most of the terminal descriptions in the terminfo
++ database are written for real "hardware" terminals.
++ Many people use terminal emulators which run in a
++ windowing environment and use curses-based applica-
++ tions. Terminal emulators can duplicate all of the
+ important aspects of a hardware terminal, but they do
+- not have the same limitations. The chief limitation
+- of a hardware terminal from the standpoint of your
++ not have the same limitations. The chief limitation
++ of a hardware terminal from the standpoint of your
+ application is the management of dataflow, i.e., tim-
+ ing. Unless a hardware terminal is interfaced into a
+- terminal concentrator (which does flow control), it
+- (or your application) must manage dataflow, prevent-
+- ing overruns. The cheapest solution (no hardware
++ terminal concentrator (which does flow control), it
++ (or your application) must manage dataflow, prevent-
++ ing overruns. The cheapest solution (no hardware
+ cost) is for your program to do this by pausing after
+- operations that the terminal does slowly, such as
++ operations that the terminal does slowly, such as
+ clearing the display.
+
+- As a result, many terminal descriptions (including
+- the vt100) have delay times embedded. You may wish
+- to use these descriptions, but not want to pay the
++ As a result, many terminal descriptions (including
++ the vt100) have delay times embedded. You may wish
++ to use these descriptions, but not want to pay the
+ performance penalty.
+
+- Set the NCURSES_NO_PADDING symbol to disable all but
+- mandatory padding. Mandatory padding is used as a
+- part of special control sequences such as <EM>flash</EM>.
++ Set the NCURSES_NO_PADDING environment variable to
++ disable all but mandatory padding. Mandatory padding
++ is used as a part of special control sequences such
++ as <EM>flash</EM>.
+
+ NCURSES_NO_SETBUF
+- Normally <STRONG>ncurses</STRONG> enables buffered output during ter-
+- minal initialization. This is done (as in SVr4
+- curses) for performance reasons. For testing pur-
+- poses, both of <STRONG>ncurses</STRONG> and certain applications, this
+- feature is made optional. Setting the
+- NCURSES_NO_SETBUF variable disables output buffering,
+- leaving the output in the original (usually line
+- buffered) mode.
++ This setting is obsolete. Before changes
++
++ <STRONG>o</STRONG> started with 5.9 patch 20120825 and
++
++ <STRONG>o</STRONG> continued though 5.9 patch 20130126
++
++ <STRONG>ncurses</STRONG> enabled buffered output during terminal ini-
++ tialization. This was done (as in SVr4 curses) for
++ performance reasons. For testing purposes, both of
++ <STRONG>ncurses</STRONG> and certain applications, this feature was
++ made optional. Setting the NCURSES_NO_SETBUF vari-
++ able disabled output buffering, leaving the output in
++ the original (usually line buffered) mode.
++
++ In the current implementation, ncurses performs its
++ own buffering and does not require this workaround.
++ It does not modify the buffering of the standard out-
++ put.
++
++ The reason for the change was to make the behavior
++ for interrupts and other signals more robust. One
++ drawback is that certain nonconventional programs
++ would mix ordinary stdio calls with ncurses calls and
++ (usually) work. This is no longer possible since
++ ncurses is not using the buffered standard output but
++ its own output (to the same file descriptor). As a
++ special case, the low-level calls such as <STRONG>putp</STRONG> still
++ use the standard output. But high-level curses calls
++ do not.
+
+ NCURSES_NO_UTF8_ACS
+ During initialization, the <STRONG>ncurses</STRONG> library checks for
+- special cases where VT100 line-drawing (and the cor-
+- responding alternate character set capabilities)
+- described in the terminfo are known to be missing.
+- Specifically, when running in a UTF-8 locale, the
+- Linux console emulator and the GNU screen program
+- ignore these. Ncurses checks the TERM environment
+- variable for these. For other special cases, you
+- should set this environment variable. Doing this
+- tells ncurses to use Unicode values which correspond
++ special cases where VT100 line-drawing (and the cor-
++ responding alternate character set capabilities)
++ described in the terminfo are known to be missing.
++ Specifically, when running in a UTF-8 locale, the
++ Linux console emulator and the GNU screen program
++ ignore these. Ncurses checks the TERM environment
++ variable for these. For other special cases, you
++ should set this environment variable. Doing this
++ tells ncurses to use Unicode values which correspond
+ to the VT100 line-drawing glyphs. That works for the
+ special cases cited, and is likely to work for termi-
+ nal emulators.
+
+- When setting this variable, you should set it to a
+- nonzero value. Setting it to zero (or to a nonnum-
+- ber) disables the special check for "linux" and
++ When setting this variable, you should set it to a
++ nonzero value. Setting it to zero (or to a nonnum-
++ ber) disables the special check for "linux" and
+ "screen".
+
+- As an alternative to the environment variable,
+- ncurses checks for an extended terminfo capability
+- <STRONG>U8</STRONG>. This is a numeric capability which can be com-
++ As an alternative to the environment variable,
++ ncurses checks for an extended terminfo capability
++ <STRONG>U8</STRONG>. This is a numeric capability which can be com-
+ piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>. For example
+
+ # linux console, if patched to provide working
+ # VT100 shift-in/shift-out, with corresponding font.
+ linux-vt100|linux console with VT100 line-graphics,
+- U8#0, use=linux,
++ U8#0, use=linux,
+
+ # uxterm with vt100Graphics resource set to false
+ xterm-utf8|xterm relying on UTF-8 line-graphics,
+- U8#1, use=xterm,
++ U8#1, use=xterm,
+
+ The name "U8" is chosen to be two characters, to per-
+- mit it to be used by applications that use ncurses'
++ mit it to be used by applications that use ncurses'
+ termcap interface.
+
+ NCURSES_TRACE
+- During initialization, the <STRONG>ncurses</STRONG> debugging library
+- checks the NCURSES_TRACE symbol. If it is defined,
+- to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
+- using that value as the argument.
+-
+- The argument values, which are defined in <STRONG>curses.h</STRONG>,
+- provide several types of information. When running
+- with traces enabled, your application will write the
++ During initialization, the <STRONG>ncurses</STRONG> debugging library
++ checks the NCURSES_TRACE environment variable. If it
++ is defined, to a numeric value, <STRONG>ncurses</STRONG> calls the
++ <STRONG>trace</STRONG> function, using that value as the argument.
++
++ The argument values, which are defined in <STRONG>curses.h</STRONG>,
++ provide several types of information. When running
++ with traces enabled, your application will write the
+ file <STRONG>trace</STRONG> to the current directory.
+
+- TERM Denotes your terminal type. Each terminal type is
++ TERM Denotes your terminal type. Each terminal type is
+ distinct, though many are similar.
+
++ <STRONG>TERM</STRONG> is commonly set by terminal emulators to help
++ applications find a workable terminal description.
++ Some of those choose a popular approximation, e.g.,
++ "ansi", "vt100", "xterm" rather than an exact fit.
++ Not infrequently, your application will have problems
++ with that approach, e.g., incorrect function-key def-
++ initions.
++
++ If you set <STRONG>TERM</STRONG> in your environment, it has no effect
++ on the operation of the terminal emulator. It only
++ affects the way applications work within the termi-
++ nal. Likewise, as a general rule (<STRONG>xterm</STRONG> being a rare
++ exception), terminal emulators which allow you to
++ specify <STRONG>TERM</STRONG> as a parameter or configuration value do
++ not change their behavior to match that setting.
++
+ TERMCAP
+ If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM>
+- <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
++ <EM>cap</EM> support, <STRONG>ncurses</STRONG> will check for a terminal's
+ description in termcap form if it is not available in
+ the terminfo database.
+
+- The TERMCAP symbol contains either a terminal
+- description (with newlines stripped out), or a file
+- name telling where the information denoted by the
+- TERM symbol exists. In either case, setting it
+- directs <STRONG>ncurses</STRONG> to ignore the usual place for this
+- information, e.g., /etc/termcap.
++ The TERMCAP environment variable contains either a
++ terminal description (with newlines stripped out), or
++ a file name telling where the information denoted by
++ the TERM environment variable exists. In either
++ case, setting it directs <STRONG>ncurses</STRONG> to ignore the usual
++ place for this information, e.g., /etc/termcap.
+
+ TERMINFO
+ Overrides the directory in which <STRONG>ncurses</STRONG> searches for
+ your terminal description. This is the simplest, but
+- not the only way to change the list of directories.
++ not the only way to change the list of directories.
+ The complete list of directories in order follows:
+
+- <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
++ <STRONG>o</STRONG> the last directory to which <STRONG>ncurses</STRONG> wrote, if
+ any, is searched first
+
+- <STRONG>o</STRONG> the directory specified by the TERMINFO symbol
++ <STRONG>o</STRONG> the directory specified by the TERMINFO environ-
++ ment variable
+
+ <STRONG>o</STRONG> $HOME/.terminfo
+
+- <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS symbol
++ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environ-
++ ment variable
++
++ <STRONG>o</STRONG> one or more directories whose names are config-
++ ured and compiled into the ncurses library, i.e.,
+
+- <STRONG>o</STRONG> one or more directories whose names are config-
+- ured and compiled into the ncurses library, e.g.,
+- /usr/share/terminfo
++ <STRONG>o</STRONG> /usr/local/ncurses/share/ter-
++ minfo:/usr/share/terminfo (corresponding to
++ the TERMINFO_DIRS variable)
++
++ <STRONG>o</STRONG> /usr/share/terminfo (corresponding to the
++ TERMINFO variable)
+
+ TERMINFO_DIRS
+- Specifies a list of directories to search for termi-
+- nal descriptions. The list is separated by colons
+- (i.e., ":") on Unix, semicolons on OS/2 EMX. All of
+- the terminal descriptions are in terminfo form, which
+- makes a subdirectory named for the first letter of
+- the terminal names therein.
++ Specifies a list of directories to search for termi-
++ nal descriptions. The list is separated by colons
++ (i.e., ":") on Unix, semicolons on OS/2 EMX.
++
++ All of the terminal descriptions are in terminfo
++ form. Normally these are stored in a directory tree,
++ using subdirectories named by the first letter of the
++ terminal names therein.
++
++ If <STRONG>ncurses</STRONG> is built with a hashed database, then each
++ entry in this list can also be the path of the corre-
++ sponding database file.
++
++ If <STRONG>ncurses</STRONG> is built with a support for reading term-
++ cap files directly, then an entry in this list may be
++ the path of a termcap file.
+
+ TERMPATH
+- If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
+- checks the TERMPATH symbol. This is a list of file-
+- names separated by spaces or colons (i.e., ":") on
+- Unix, semicolons on OS/2 EMX. If the TERMPATH symbol
+- is not set, <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
+- /usr/share/misc/termcap and $HOME/.termcap, in that
++ If TERMCAP does not hold a file name then <STRONG>ncurses</STRONG>
++ checks the TERMPATH environment variable. This is a
++ list of filenames separated by spaces or colons
++ (i.e., ":") on Unix, semicolons on OS/2 EMX.
++
++ If the TERMPATH environment variable is not set,
++ <STRONG>ncurses</STRONG> looks in the files /etc/termcap,
++ /usr/share/misc/termcap and $HOME/.termcap, in that
+ order.
+
+- The library may be configured to disregard the following
+- variables when the current user is the superuser (root),
+- or if the application uses setuid or setgid permissions:
+- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
++ The library may be configured to disregard the following
++ variables when the current user is the superuser (root),
++ or if the application uses setuid or setgid permissions:
++
++ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as
++ $HOME.
+
+
+ </PRE>
+ <H2>ALTERNATE CONFIGURATIONS</H2><PRE>
+- Several different configurations are possible, depending
+- on the configure script options used when building
+- <STRONG>ncurses</STRONG>. There are a few main options whose effects are
++ Several different configurations are possible, depending
++ on the configure script options used when building
++ <STRONG>ncurses</STRONG>. There are a few main options whose effects are
+ visible to the applications developer using <STRONG>ncurses</STRONG>:
+
+ --disable-overwrite
+- The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
++ The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
+ <STRONG>OPSIS</STRONG>:
+
+ <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
+
+- This option is used to avoid filename conflicts when
+- <STRONG>ncurses</STRONG> is not the main implementation of curses of
+- the computer. If <STRONG>ncurses</STRONG> is installed disabling
+- overwrite, it puts its headers in a subdirectory,
++ This option is used to avoid filename conflicts when
++ <STRONG>ncurses</STRONG> is not the main implementation of curses of
++ the computer. If <STRONG>ncurses</STRONG> is installed disabling
++ overwrite, it puts its headers in a subdirectory,
+ e.g.,
+
+ <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>
+
+- It also omits a symbolic link which would allow you
++ It also omits a symbolic link which would allow you
+ to use <STRONG>-lcurses</STRONG> to build executables.
+
+ --enable-widec
+- The configure script renames the library and (if the
+- <STRONG>--disable-overwrite</STRONG> option is used) puts the header
++ The configure script renames the library and (if the
++ <STRONG>--disable-overwrite</STRONG> option is used) puts the header
+ files in a different subdirectory. All of the
+- library names have a "w" appended to them, i.e.,
++ library names have a "w" appended to them, i.e.,
+ instead of
+
+ <STRONG>-lncurses</STRONG>
+@@ -1095,18 +1172,29 @@
+ <STRONG>-lncursesw</STRONG>
+
+ You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com-
+- piling for the wide-character library to use the
+- extended (wide-character) functions. The <STRONG>curses.h</STRONG>
+- file which is installed for the wide-character
+- library is designed to be compatible with the normal
++ piling for the wide-character library to use the
++ extended (wide-character) functions. The <STRONG>curses.h</STRONG>
++ file which is installed for the wide-character
++ library is designed to be compatible with the normal
+ library's header. Only the size of the <STRONG>WINDOW</STRONG> struc-
+- ture differs, and very few applications require more
+- than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are
+- installed allowing overwrite, the wide-character
+- library's headers should be installed last, to allow
+- applications to be built using either library from
++ ture differs, and very few applications require more
++ than a pointer to <STRONG>WINDOW</STRONG>s. If the headers are
++ installed allowing overwrite, the wide-character
++ library's headers should be installed last, to allow
++ applications to be built using either library from
+ the same set of headers.
+
++ --with-pthread
++ The configure script renames the library. All of the
++ library names have a "t" appended to them (before any
++ "w" added by <STRONG>--enable-widec</STRONG>).
++
++ The global variables such as <STRONG>LINES</STRONG> are replaced by
++ macros to allow read-only access. At the same time,
++ setter-functions are provided to set these values.
++ Some applications (very few) may require changes to
++ work with this convention.
++
+ --with-shared
+
+ --with-normal
+@@ -1114,16 +1202,16 @@
+ --with-debug
+
+ --with-profile
+- The shared and normal (static) library names differ
+- by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and
+- <STRONG>libncurses.a</STRONG>. The debug and profiling libraries add
+- a "_g" and a "_p" to the root names respectively,
+- e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
++ The shared and normal (static) library names differ
++ by their suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libn-</STRONG>
++ <STRONG>curses.a</STRONG>. The debug and profiling libraries add a
++ "_g" and a "_p" to the root names respectively, e.g.,
++ <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
+
+ --with-trace
+- The <STRONG>trace</STRONG> function normally resides in the debug
++ The <STRONG>trace</STRONG> function normally resides in the debug
+ library, but it is sometimes useful to configure this
+- in the shared library. Configure scripts should
++ in the shared library. Configure scripts should
+ check for the function's existence rather than assum-
+ ing it is always in the debug library.
+
+@@ -1131,14 +1219,14 @@
+ </PRE>
+ <H2>FILES</H2><PRE>
+ /usr/share/tabset
+- directory containing initialization files for the
++ directory containing initialization files for the
+ terminal capability database /usr/share/terminfo ter-
+ minal capability database
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
+ for detailed routine descriptions.
+ <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
+
+@@ -1148,52 +1236,61 @@
+ The <STRONG>ncurses</STRONG> library can be compiled with an option
+ (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term-
+ cap file if the terminal setup code cannot find a terminfo
+- entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not
+- recommended, as it essentially includes an entire termcap
+- compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost
++ entry corresponding to <STRONG>TERM</STRONG>. Use of this feature is not
++ recommended, as it essentially includes an entire termcap
++ compiler in the <STRONG>ncurses</STRONG> startup code, at significant cost
+ in core and startup cycles.
+
+- The <STRONG>ncurses</STRONG> library includes facilities for capturing
+- mouse events on certain terminals (including xterm). See
++ The <STRONG>ncurses</STRONG> library includes facilities for capturing
++ mouse events on certain terminals (including xterm). See
+ the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
+
+- The <STRONG>ncurses</STRONG> library includes facilities for responding to
+- window resizing events, e.g., when running in an xterm.
+- See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
+- details. In addition, the library may be configured with
++ The <STRONG>ncurses</STRONG> library includes facilities for responding to
++ window resizing events, e.g., when running in an xterm.
++ See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
++ details. In addition, the library may be configured with
+ a SIGWINCH handler.
+
+- The <STRONG>ncurses</STRONG> library extends the fixed set of function key
+- capabilities of terminals by allowing the application
+- designer to define additional key sequences at runtime.
++ The <STRONG>ncurses</STRONG> library extends the fixed set of function key
++ capabilities of terminals by allowing the application
++ designer to define additional key sequences at runtime.
+ See the <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> man-
+ ual pages for details.
+
+ The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi-
+- nals which implement the ISO-6429 SGR 39 and SGR 49 con-
++ nals which implement the ISO-6429 SGR 39 and SGR 49 con-
+ trols, which allow an application to reset the terminal to
+- its original foreground and background colors. From the
+- users' perspective, the application is able to draw col-
+- ored text on a background whose color is set indepen-
+- dently, providing better control over color contrasts.
++ its original foreground and background colors. From the
++ users' perspective, the application is able to draw col-
++ ored text on a background whose color is set indepen-
++ dently, providing better control over color contrasts.
+ See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
+
+- The <STRONG>ncurses</STRONG> library includes a function for directing
+- application output to a printer attached to the terminal
++ The <STRONG>ncurses</STRONG> library includes a function for directing
++ application output to a printer attached to the terminal
+ device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
+
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
++ The <STRONG>ncurses</STRONG> library is intended to be BASE-level confor-
+ mant with XSI Curses. The EXTENDED XSI Curses functional-
+ ity (including color support) is supported.
+
+- A small number of local differences (that is, individual
+- differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
+- described in <STRONG>PORTABILITY</STRONG> sections of the library man
++ A small number of local differences (that is, individual
++ differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
++ described in <STRONG>PORTABILITY</STRONG> sections of the library man
+ pages.
+
++ Unlike other implementations, this one checks parameters
++ such as pointers to WINDOW structures to ensure they are
++ not null. The main reason for providing this behavior is
++ to guard against programmer error. The standard interface
++ does not provide a way for the library to tell an applica-
++ tion which of several possible errors were detected.
++ Relying on this (or some other) extension will adversely
++ affect the portability of curses applications.
++
+ This implementation also contains several extensions:
+
+ <STRONG>o</STRONG> The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it
+@@ -1227,31 +1324,31 @@
+
+ <STRONG>o</STRONG> This implementation can also be configured to provide
+ a set of functions which improve the ability to manage
+- multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
++ multiple screens. See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
+
+- In historic curses versions, delays embedded in the capa-
++ In historic curses versions, delays embedded in the capa-
+ bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
+- delay bits in the UNIX tty driver. In this implementa-
+- tion, all padding is done by sending NUL bytes. This
+- method is slightly more expensive, but narrows the inter-
+- face to the UNIX kernel significantly and increases the
++ delay bits in the UNIX tty driver. In this implementa-
++ tion, all padding is done by sending NUL bytes. This
++ method is slightly more expensive, but narrows the inter-
++ face to the UNIX kernel significantly and increases the
+ package's portability correspondingly.
+
+
+ </PRE>
+ <H2>NOTES</H2><PRE>
+- The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the
++ The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the
+ header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
+
+- If standard output from a <STRONG>ncurses</STRONG> program is re-directed
+- to something which is not a tty, screen updates will be
++ If standard output from a <STRONG>ncurses</STRONG> program is re-directed
++ to something which is not a tty, screen updates will be
+ directed to standard error. This was an undocumented fea-
+ ture of AT&amp;T System V Release 3 curses.
+
+
+ </PRE>
+ <H2>AUTHORS</H2><PRE>
+- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
++ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+ Based on pcurses by Pavel Curtis.
+
+
+Index: doc/html/man/ncurses5-config.1.html
+--- ncurses-5.9/doc/html/man/ncurses5-config.1.html 2011-04-04 22:46:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/ncurses5-config.1.html 2014-08-16 20:43:14.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 2010 Free Software Foundation, Inc. *
+@@ -105,10 +105,11 @@
+
+ <STRONG>--terminfo-dirs</STRONG>
+ echos the $TERMINFO_DIRS directory list, e.g.,
+- /usr/local/ncurses/lib/terminfo:/usr/share/terminfo
++ /usr/local/ncurses/share/terminfo:/usr/share/ter-
++ minfo
+
+ <STRONG>--termpath</STRONG>
+- echos the $TERMPATH termcap list, if support for
++ echos the $TERMPATH termcap list, if support for
+ termcap is configured.
+
+ <STRONG>--help</STRONG> prints this message
+@@ -118,7 +119,7 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/panel.3x.html
+--- ncurses-5.9/doc/html/man/panel.3x.html 2011-04-04 22:46:49.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/panel.3x.html 2014-08-16 20:43:14.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
+@@ -174,35 +174,35 @@
+
+ </PRE>
+ <H2>DIAGNOSTICS</H2><PRE>
+- Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
+- error occurs. Each routine that returns an int value
++ Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
++ error occurs. Each routine that returns an int value
+ returns <STRONG>OK</STRONG> if it executes successfully and <STRONG>ERR</STRONG> if not.
+
+
+ </PRE>
+ <H2>COMPATIBILITY</H2><PRE>
+- Reasonable care has been taken to ensure compatibility
+- with the native panel facility introduced in SVr3.2
+- (inspection of the SVr4 manual pages suggests the
+- programming interface is unchanged). The <STRONG>PANEL</STRONG> data
+- structures are merely similar. The programmer is cau-
+- tioned not to directly use <STRONG>PANEL</STRONG> fields.
++ Reasonable care has been taken to ensure compatibility
++ with the native panel facility introduced in SVr3.2
++ (inspection of the SVr4 manual pages suggests the program-
++ ming interface is unchanged). The <STRONG>PANEL</STRONG> data structures
++ are merely similar. The programmer is cautioned not to
++ directly use <STRONG>PANEL</STRONG> fields.
+
+- The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
+- in this implementation, and work equally well with dis-
++ The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
++ in this implementation, and work equally well with dis-
+ played or hidden panels. In the native System V implemen-
+ tation, <STRONG>show_panel()</STRONG> is intended for making a hidden panel
+- visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
+- intended for making an already-visible panel move to the
+- top of the stack. You are cautioned to use the correct
+- function to ensure compatibility with native panel
++ visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
++ intended for making an already-visible panel move to the
++ top of the stack. You are cautioned to use the correct
++ function to ensure compatibility with native panel
+ libraries.
+
+
+ </PRE>
+ <H2>NOTE</H2><PRE>
+- In your library list, libpanel.a should be before libn-
+- curses.a; that is, you want to say `-lpanel -lncurses',
++ In your library list, libpanel.a should be before libn-
++ curses.a; that is, you want to say `-lpanel -lncurses',
+ not the other way around (which would usually give a link-
+ error).
+
+@@ -218,14 +218,14 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+ </PRE>
+ <H2>AUTHOR</H2><PRE>
+- Originally written by Warren Tucker &lt;wht@n4hgf.mt-
+- park.ga.us&gt;, primarily to assist in porting u386mon to
+- systems without a native panels library. Repackaged for
++ Originally written by Warren Tucker &lt;wht@n4hgf.mt-
++ park.ga.us&gt;, primarily to assist in porting u386mon to
++ systems without a native panels library. Repackaged for
+ ncurses by Zeyd ben-Halim.
+
+
+Index: doc/html/man/resizeterm.3x.html
+--- ncurses-5.9/doc/html/man/resizeterm.3x.html 2011-01-09 01:03:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/resizeterm.3x.html 2013-12-21 19:55:47.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,8 +27,8 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * Author: Thomas E. Dickey 1996-2005
+- * @Id: resizeterm.3x,v 1.14 2010/12/04 18:38:55 tom Exp @
++ * Author: Thomas E. Dickey 1996-on
++ * @Id: resizeterm.3x,v 1.17 2013/06/22 20:41:54 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -69,28 +69,29 @@
+ terminal (e.g., xterm). The function <STRONG>resizeterm</STRONG> resizes
+ the standard and current windows to the specified dimen-
+ sions, and adjusts other bookkeeping data used by the
+- <STRONG>ncurses</STRONG> library that record the window dimensions.
++ <STRONG>ncurses</STRONG> library that record the window dimensions such as
++ the <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> variables.
+
+- Most of the work is done by the inner function
++ Most of the work is done by the inner function
+ <STRONG>resize_term</STRONG>. The outer function <STRONG>resizeterm</STRONG> adds bookkeep-
+- ing for the SIGWINCH handler. When resizing the windows,
+- <STRONG>resize_term</STRONG> blank-fills the areas that are extended. The
++ ing for the SIGWINCH handler. When resizing the windows,
++ <STRONG>resize_term</STRONG> blank-fills the areas that are extended. The
+ calling application should fill in these areas with appro-
+- priate data. The <STRONG>resize_term</STRONG> function attempts to resize
+- all windows. However, due to the calling convention of
+- pads, it is not possible to resize these without addi-
++ priate data. The <STRONG>resize_term</STRONG> function attempts to resize
++ all windows. However, due to the calling convention of
++ pads, it is not possible to resize these without addi-
+ tional interaction with the application.
+
+- A support function <STRONG>is_term_resized</STRONG> is provided so that
+- applications can check if the <STRONG>resize_term</STRONG> function would
++ A support function <STRONG>is_term_resized</STRONG> is provided so that
++ applications can check if the <STRONG>resize_term</STRONG> function would
+ modify the window structures. It returns TRUE if the win-
+ dows would be modified, and FALSE otherwise.
+
+
+ </PRE>
+ <H2>RETURN VALUE</H2><PRE>
+- Except as notes, these function return the integer <STRONG>ERR</STRONG>
+- upon failure and <STRONG>OK</STRONG> on success. They will fail if either
++ Except as noted, these functions return the integer <STRONG>ERR</STRONG>
++ upon failure and <STRONG>OK</STRONG> on success. They will fail if either
+ of the dimensions are less than or equal to zero, or if an
+ error occurs while (re)allocating memory for the windows.
+
+@@ -98,29 +99,27 @@
+ </PRE>
+ <H2>NOTES</H2><PRE>
+ While these functions are intended to be used to support a
+- signal handler (i.e., for SIGWINCH), care should be taken
+- to avoid invoking them in a context where <STRONG>malloc</STRONG> or <STRONG>real-</STRONG>
+- <STRONG>loc</STRONG> may have been interrupted, since it uses those func-
++ signal handler (i.e., for SIGWINCH), care should be taken
++ to avoid invoking them in a context where <STRONG>malloc</STRONG> or <STRONG>real-</STRONG>
++ <STRONG>loc</STRONG> may have been interrupted, since it uses those func-
+ tions.
+
+- If ncurses is configured to supply its own SIGWINCH han-
+- dler, the <STRONG>resizeterm</STRONG> function ungetch's a <STRONG>KEY_RESIZE</STRONG> which
+- will be read on the next call to <STRONG>getch</STRONG>. This is used to
++ If ncurses is configured to supply its own SIGWINCH han-
++ dler, the <STRONG>resizeterm</STRONG> function <STRONG>ungetch</STRONG>'s a <STRONG>KEY_RESIZE</STRONG> which
++ will be read on the next call to <STRONG>getch</STRONG>. This is used to
+ alert an application that the screen size has changed, and
+- that it should repaint special features such as pads that
++ that it should repaint special features such as pads that
+ cannot be done automatically.
+
+- If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set,
+- this overrides the library's use of the window size
+- obtained from the operating system. Thus, even if a SIG-
+- WINCH is received, no screen size change may be recorded.
+- In that case, no <STRONG>KEY_RESIZE</STRONG> is queued for the next call to
+- <STRONG>getch</STRONG>; an <STRONG>ERR</STRONG> will be returned instead.
++ If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set,
++ this overrides the library's use of the window size
++ obtained from the operating system. Thus, even if a SIG-
++ WINCH is received, no screen size change may be recorded.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
++ <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
+
+
+ </PRE>
+Index: doc/html/man/tabs.1.html
+--- ncurses-5.9/doc/html/man/tabs.1.html 2011-04-04 22:46:50.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/tabs.1.html 2014-08-16 20:43:14.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: tabs.1,v 1.8 2010/12/04 18:40:45 tom Exp @
++ * @Id: tabs.1,v 1.11 2013/06/22 18:11:57 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -52,7 +52,7 @@
+
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+- <STRONG>tabs</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahuUV</STRONG>] <EM>file...</EM>
++ <STRONG>tabs</STRONG> [<EM>options</EM>]] <EM>[tabstop-list]</EM>
+
+
+ </PRE>
+@@ -85,14 +85,17 @@
+ any debugging option, but not to modify the terminal
+ settings.
+
+- The <STRONG>tabs</STRONG> program processes a single list of tab stops.
+- The last option to be processed which defines a list is
++ <STRONG>-V</STRONG> reports the version of ncurses which was used in this
++ program, and exits.
++
++ The <STRONG>tabs</STRONG> program processes a single list of tab stops.
++ The last option to be processed which defines a list is
+ the one that determines the list to be processed.
+
+ <STRONG>Implicit</STRONG> <STRONG>Lists</STRONG>
+- Use a single number as an option, e.g., "<STRONG>-5</STRONG>" to set tabs
+- at the given interval (in this case 1, 6, 11, 16, 21,
+- etc.). Tabs are repeated up to the right margin of the
++ Use a single number as an option, e.g., "<STRONG>-5</STRONG>" to set tabs
++ at the given interval (in this case 1, 6, 11, 16, 21,
++ etc.). Tabs are repeated up to the right margin of the
+ screen.
+
+ Use "<STRONG>-0</STRONG>" to clear all tabs.
+@@ -100,17 +103,18 @@
+ Use "<STRONG>-8</STRONG>" to set tabs to the standard interval.
+
+ <STRONG>Explicit</STRONG> <STRONG>Lists</STRONG>
+- An explicit list can be defined after the options (this
+- does not use a "-"). The values in the list must be in
++ An explicit list can be defined after the options (this
++ does not use a "-"). The values in the list must be in
+ increasing numeric order, and greater than zero. They are
+ separated by a comma or a blank, for example,
+
+ tabs 1,6,11,16,21
+ tabs 1 6 11 16 21
+- Use a '+' to treat a number as an increment relative to
++ Use a '+' to treat a number as an increment relative to
+ the previous value, e.g.,
+
+ tabs 1,+5,+5,+5,+5
++
+ which is equivalent to the 1,6,11,16,21 example.
+
+ <STRONG>Predefined</STRONG> <STRONG>Tab-Stops</STRONG>
+@@ -137,18 +141,18 @@
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- X/Open describes a <STRONG>+m</STRONG> option, to set a terminal's left-
+- margin. Very few of the entries in the terminal database
++ X/Open describes a <STRONG>+m</STRONG> option, to set a terminal's left-
++ margin. Very few of the entries in the terminal database
+ provide this capability.
+
+- The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not
++ The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not
+ provided by other implementations.
+
+- Documentation for other implementations states that there
+- is a limit on the number of tab stops. While some termi-
++ Documentation for other implementations states that there
++ is a limit on the number of tab stops. While some termi-
+ nals may not accept an arbitrary number of tab stops, this
+- implementation will attempt to set tab stops up to the
+- right margin of the screen, if the given list happens to
++ implementation will attempt to set tab stops up to the
++ right margin of the screen, if the given list happens to
+ be that long.
+
+
+@@ -156,7 +160,7 @@
+ <H2>SEE ALSO</H2><PRE>
+ <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/term.5.html
+--- ncurses-5.9/doc/html/man/term.5.html 2011-01-09 01:03:28.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/term.5.html 2013-05-17 22:24:23.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/man/term.7.html
+--- ncurses-5.9/doc/html/man/term.7.html 2011-02-25 23:25:09.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/term.7.html 2013-05-17 22:24:23.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: term.7,v 1.22 2010/12/04 18:41:07 tom Exp @
++ * @Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -85,9 +85,9 @@
+ the tty device and baud rate.
+
+ Setting your own <STRONG>TERM</STRONG> value may also be useful if you have
+- created a custom entry incorporating options (such as
+- visual bell or reverse-video) which you wish to override
+- the system default type for your line.
++ created a custom entry incorporating options (such as vis-
++ ual bell or reverse-video) which you wish to override the
++ system default type for your line.
+
+ Terminal type descriptions are stored as files of capabil-
+ ity data underneath /usr/share/terminfo. To browse a list
+Index: doc/html/man/term_variables.3x.html
+--- ncurses-5.9/doc/html/man/term_variables.3x.html 2011-01-09 01:03:29.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/term_variables.3x.html 2014-05-24 22:05:40.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: term_variables.3x,v 1.2 2010/12/04 18:38:55 tom Exp @
++ * @Id: term_variables.3x,v 1.4 2013/12/21 22:17:39 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -99,8 +99,8 @@
+ <STRONG>Current</STRONG> <STRONG>Terminal</STRONG> <STRONG>Data</STRONG>
+ After initializing the curses or terminfo interfaces, the
+ <STRONG>cur_term</STRONG> contains data describing the current terminal.
+- This variable is also set as a side-effect of <STRONG><A HREF="set_term.3x.html">set_term(3x)</A></STRONG>
+- and <STRONG><A HREF="delscreen.3x.html">delscreen(3x)</A></STRONG>.
++ This variable is also set as a side-effect of <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
++ and <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>.
+
+ It is possible to save a value of <STRONG>cur_term</STRONG> for subsequent
+ use as a parameter to <STRONG>set_term</STRONG>, for switching between
+@@ -108,7 +108,7 @@
+ from <STRONG>newterm</STRONG> or <STRONG>setupterm</STRONG> to reuse in <STRONG>set_term</STRONG>.
+
+ <STRONG>Terminfo</STRONG> <STRONG>Names</STRONG>
+- The <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> and <STRONG><A HREF="infocmp.1.html">infocmp(1)</A></STRONG> programs use lookup tables for
++ The <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> and <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> programs use lookup tables for
+ the long and short names of terminfo capabilities, as well
+ as the corresponding names for termcap capabilities.
+ These are available to other applications, though the
+@@ -130,8 +130,8 @@
+
+ </PRE>
+ <H2>NOTES</H2><PRE>
+- The low-level terminfo interface is initialized using <STRONG>se-</STRONG>
+- <STRONG><A HREF="setupterm.3x.html">tupterm(3x)</A></STRONG>. The upper-level curses interface uses the
++ The low-level terminfo interface is initialized using
++ <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>. The upper-level curses interface uses the
+ low-level terminfo interface, internally.
+
+
+@@ -149,8 +149,8 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG>termin-</STRONG>
+- <STRONG><A HREF="terminfo.3x.html">fo(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>,
++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+
+
+Index: doc/html/man/terminfo.5.html
+--- ncurses-5.9/doc/html/man/terminfo.5.html 2011-04-04 22:46:51.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/terminfo.5.html 2014-08-16 20:43:14.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ * DO NOT EDIT THIS FILE BY HAND!
+@@ -6,7 +6,7 @@
+ * Note: this must be run through tbl before nroff.
+ * The magic cookie on the first line triggers this under some man programs.
+ ****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,9 +32,9 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: terminfo.head,v 1.18 2010/07/31 16:08:48 tom Exp @
++ * @Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp @
+ * Head of terminfo man page ends here
+- * @Id: terminfo.tail,v 1.53 2010/12/04 18:38:55 tom Exp @
++ * @Id: terminfo.tail,v 1.68 2013/11/09 15:20:48 tom Exp @
+ * Beginning of terminfo.tail file
+ * This file is part of ncurses.
+ * See "terminfo.head" for copyright.
+@@ -73,12 +73,12 @@
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+ <EM>Terminfo</EM> is a data base describing terminals, used by
+- screen-oriented programs such as <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>, <STRONG><A HREF="rogue.1.html">rogue(1)</A></STRONG> and
++ screen-oriented programs such as <STRONG>nvi(1)</STRONG>, <STRONG>rogue(1)</STRONG> and
+ libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. <EM>Terminfo</EM> describes termi-
+ nals by giving a set of capabilities which they have, by
+ specifying how to perform screen operations, and by speci-
+ fying padding requirements and initialization sequences.
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+ Entries in <EM>terminfo</EM> consist of a sequence of `,' separated
+ fields (embedded commas may be escaped with a backslash or
+@@ -106,14 +106,13 @@
+ Terminal names (except for the last, verbose entry) should
+ be chosen using the following conventions. The particular
+ piece of hardware making up the terminal should have a
+- root name, thus ``hp2621''. This name should not contain
++ root name, thus "hp2621". This name should not contain
+ hyphens. Modes that the hardware can be in, or user pref-
+ erences, should be indicated by appending a hyphen and a
+ mode suffix. Thus, a vt100 in 132 column mode would be
+ vt100-w. The following suffixes should be used where pos-
+ sible:
+
+-
+ <STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
+ -<EM>nn</EM> Number of lines on the screen aaa-60
+ -<EM>n</EM>p Number of pages of memory c100-4p
+@@ -126,14 +125,14 @@
+ -ns No status line hp2626-ns
+ -rv Reverse video c100-rv
+ -s Enable status line vt100-s
+-
+ -vb Use visible bell instead of beep wy370-vb
++
+ -w Wide mode (&gt; 80 columns, usually 132) vt100-w
+
+ For more on terminal naming conventions, see the <STRONG>term(7)</STRONG>
+ manual page.
+
+- <STRONG>Capabilities</STRONG>
++ <STRONG>Predefined</STRONG> <STRONG>Capabilities</STRONG>
+ The following is a complete table of the capabilities
+ included in a terminfo description block and available to
+ terminfo-using code. In each line of the table,
+@@ -176,133 +175,134 @@
+ These are the boolean capabilities:
+
+
+- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+- <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
+- auto_left_margin bw bw cub1 wraps from col-
++ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
++ <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
++ auto_left_margin bw bw cub1 wraps from col-
+ umn 0 to last column
+- auto_right_margin am am terminal has auto-
++ auto_right_margin am am terminal has auto-
+ matic margins
+- back_color_erase bce ut screen erased with
++ back_color_erase bce ut screen erased with
+ background color
+- can_change ccc cc terminal can re-
++ can_change ccc cc terminal can re-
+ define existing col-
+ ors
+- ceol_standout_glitch xhp xs standout not erased
++ ceol_standout_glitch xhp xs standout not erased
+ by overwriting (hp)
+- col_addr_glitch xhpa YA only positive motion
++ col_addr_glitch xhpa YA only positive motion
+ for hpa/mhpa caps
+
+
+- cpi_changes_res cpix YF changing character
++
++ cpi_changes_res cpix YF changing character
+ pitch changes reso-
+ lution
+- cr_cancels_micro_mode crxm YB using cr turns off
++ cr_cancels_micro_mode crxm YB using cr turns off
+ micro mode
+- dest_tabs_magic_smso xt xt tabs destructive,
++ dest_tabs_magic_smso xt xt tabs destructive,
+ magic so char
+ (t1061)
+- eat_newline_glitch xenl xn newline ignored
++ eat_newline_glitch xenl xn newline ignored
+ after 80 cols (con-
+ cept)
+- erase_overstrike eo eo can erase over-
++ erase_overstrike eo eo can erase over-
+ strikes with a blank
+- generic_type gn gn generic line type
+- hard_copy hc hc hardcopy terminal
+- hard_cursor chts HC cursor is hard to
++ generic_type gn gn generic line type
++ hard_copy hc hc hardcopy terminal
++ hard_cursor chts HC cursor is hard to
+ see
+- has_meta_key km km Has a meta key
++ has_meta_key km km Has a meta key
+ (i.e., sets 8th-bit)
+- has_print_wheel daisy YC printer needs opera-
++ has_print_wheel daisy YC printer needs opera-
+ tor to change char-
+ acter set
+- has_status_line hs hs has extra status
++ has_status_line hs hs has extra status
+ line
+- hue_lightness_saturation hls hl terminal uses only
++ hue_lightness_saturation hls hl terminal uses only
+ HLS color notation
+ (Tektronix)
+- insert_null_glitch in in insert mode distin-
++ insert_null_glitch in in insert mode distin-
+ guishes nulls
+- lpi_changes_res lpix YG changing line pitch
++ lpi_changes_res lpix YG changing line pitch
+ changes resolution
+- memory_above da da display may be
++ memory_above da da display may be
+ retained above the
+ screen
+- memory_below db db display may be
++ memory_below db db display may be
+ retained below the
+ screen
+- move_insert_mode mir mi safe to move while
++ move_insert_mode mir mi safe to move while
+ in insert mode
+- move_standout_mode msgr ms safe to move while
++ move_standout_mode msgr ms safe to move while
+ in standout mode
+- needs_xon_xoff nxon nx padding will not
++ needs_xon_xoff nxon nx padding will not
+ work, xon/xoff
+ required
+- no_esc_ctlc xsb xb beehive (f1=escape,
++ no_esc_ctlc xsb xb beehive (f1=escape,
+ f2=ctrl C)
+- no_pad_char npc NP pad character does
++ no_pad_char npc NP pad character does
+ not exist
+- non_dest_scroll_region ndscr ND scrolling region is
++ non_dest_scroll_region ndscr ND scrolling region is
+ non-destructive
+- non_rev_rmcup nrrmc NR smcup does not
++ non_rev_rmcup nrrmc NR smcup does not
+ reverse rmcup
+- over_strike os os terminal can over-
++ over_strike os os terminal can over-
+ strike
+- prtr_silent mc5i 5i printer will not
++ prtr_silent mc5i 5i printer will not
+ echo on screen
+- row_addr_glitch xvpa YD only positive motion
++ row_addr_glitch xvpa YD only positive motion
+ for vpa/mvpa caps
+- semi_auto_right_margin sam YE printing in last
++ semi_auto_right_margin sam YE printing in last
+ column causes cr
+- status_line_esc_ok eslok es escape can be used
++ status_line_esc_ok eslok es escape can be used
+ on the status line
+- tilde_glitch hz hz cannot print ~'s
++ tilde_glitch hz hz cannot print ~'s
+ (hazeltine)
+
+
+- transparent_underline ul ul underline character
++ transparent_underline ul ul underline character
+ overstrikes
+- xon_xoff xon xo terminal uses
++ xon_xoff xon xo terminal uses
+ xon/xoff handshaking
+
+ These are the numeric capabilities:
+
+
+- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
+- columns cols co number of columns in
++ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
++ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
++ columns cols co number of columns in
+ a line
+- init_tabs it it tabs initially every
++ init_tabs it it tabs initially every
+ # spaces
+- label_height lh lh rows in each label
+- label_width lw lw columns in each
++ label_height lh lh rows in each label
++ label_width lw lw columns in each
+ label
+- lines lines li number of lines on
++ lines lines li number of lines on
+ screen or page
+- lines_of_memory lm lm lines of memory if &gt;
++ lines_of_memory lm lm lines of memory if &gt;
+ line. 0 means varies
+- magic_cookie_glitch xmc sg number of blank
++ magic_cookie_glitch xmc sg number of blank
+ characters left by
+ smso or rmso
+- max_attributes ma ma maximum combined
++ max_attributes ma ma maximum combined
+ attributes terminal
+ can handle
+- max_colors colors Co maximum number of
++ max_colors colors Co maximum number of
+ colors on screen
+- max_pairs pairs pa maximum number of
++ max_pairs pairs pa maximum number of
+ color-pairs on the
+ screen
+- maximum_windows wnum MW maximum number of
++ maximum_windows wnum MW maximum number of
+ defineable windows
+- no_color_video ncv NC video attributes
++ no_color_video ncv NC video attributes
+ that cannot be used
+ with colors
+- num_labels nlab Nl number of labels on
++ num_labels nlab Nl number of labels on
+ screen
+- padding_baud_rate pb pb lowest baud rate
++ padding_baud_rate pb pb lowest baud rate
+ where padding needed
+- virtual_terminal vt vt virtual terminal
++ virtual_terminal vt vt virtual terminal
+ number (CB/unix)
+- width_status_line wsl ws number of columns in
++ width_status_line wsl ws number of columns in
+ status line
+
+ The following numeric capabilities are present in the
+@@ -310,47 +310,47 @@
+ man page. They came in with SVr4's printer support.
+
+
+- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
+- bit_image_entwining bitwin Yo number of passes for
++ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
++ <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
++ bit_image_entwining bitwin Yo number of passes for
+ each bit-image row
+- bit_image_type bitype Yp type of bit-image
++ bit_image_type bitype Yp type of bit-image
+ device
+- buffer_capacity bufsz Ya numbers of bytes
++ buffer_capacity bufsz Ya numbers of bytes
+ buffered before
+ printing
+- buttons btns BT number of buttons on
++ buttons btns BT number of buttons on
+ mouse
+- dot_horz_spacing spinh Yc spacing of dots hor-
++ dot_horz_spacing spinh Yc spacing of dots hor-
+ izontally in dots
+ per inch
+
+- dot_vert_spacing spinv Yb spacing of pins ver-
++ dot_vert_spacing spinv Yb spacing of pins ver-
+ tically in pins per
+ inch
+- max_micro_address maddr Yd maximum value in
++ max_micro_address maddr Yd maximum value in
+ micro_..._address
+- max_micro_jump mjump Ye maximum value in
++ max_micro_jump mjump Ye maximum value in
+ parm_..._micro
+- micro_col_size mcs Yf character step size
++ micro_col_size mcs Yf character step size
+ when in micro mode
+- micro_line_size mls Yg line step size when
++ micro_line_size mls Yg line step size when
+ in micro mode
+- number_of_pins npins Yh numbers of pins in
++ number_of_pins npins Yh numbers of pins in
+ print-head
+- output_res_char orc Yi horizontal resolu-
++ output_res_char orc Yi horizontal resolu-
+ tion in units per
+ line
+- output_res_horz_inch orhi Yk horizontal resolu-
++ output_res_horz_inch orhi Yk horizontal resolu-
+ tion in units per
+ inch
+- output_res_line orl Yj vertical resolution
++ output_res_line orl Yj vertical resolution
+ in units per line
+- output_res_vert_inch orvi Yl vertical resolution
++ output_res_vert_inch orvi Yl vertical resolution
+ in units per inch
+- print_rate cps Ym print rate in char-
++ print_rate cps Ym print rate in char-
+ acters per second
+- wide_char_size widcs Yn character step size
++ wide_char_size widcs Yn character step size
+ when in double wide
+ mode
+
+@@ -402,8 +402,8 @@
+ prototype !?
+ create_window cwin CW define a window #1
+ from #2,#3 to #4,#5
+- cursor_address cup cm move to row #1
+- columns #2
++ cursor_address cup cm move to row #1 col-
++ umns #2
+ cursor_down cud1 do down one line
+ cursor_home home ho home cursor (if no
+ cup)
+@@ -904,8 +904,8 @@
+ zero_motion zerom Zx No motion for subse-
+ quent character
+
+- The following string capabilities are present in the
+- SVr4.0 term structure, but were originally not documented
++ The following string capabilities are present in the
++ SVr4.0 term structure, but were originally not documented
+ in the man page.
+
+
+@@ -989,13 +989,14 @@
+ bottom margins to
+ #1, #2
+
+- The XSI Curses standard added these. They are some
+- post-4.1 versions of System V curses, e.g., Solaris 2.5
+- and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are
+- invented; according to the XSI Curses standard, they have
+- no termcap names. If your compiled terminfo entries use
+- these, they may not be binary-compatible with System V
+- terminfo entries after SVr4.1; beware!
++ The XSI Curses standard added these hardcopy capabili-
++ ties. They were used in some post-4.1 versions of System
++ V curses, e.g., Solaris 2.5 and IRIX 6.x. Except for <STRONG>YI</STRONG>,
++ the <STRONG>ncurses</STRONG> termcap names for them are invented. Accord-
++ ing to the XSI Curses standard, they have no termcap
++ names. If your compiled terminfo entries use these, they
++ may not be binary-compatible with System V terminfo
++ entries after SVr4.1; beware!
+
+
+ <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
+@@ -1015,123 +1016,210 @@
+ set_a_attributes sgr1 sA Define second set of
+ video attributes
+ #1-#6
+- set_pglen_inch slengthsL YI Set page length
+- to #1 hundredth of
+- an inch
++ set_pglen_inch slengthYI Set page length to
++ #1 hundredth of an
++ inch (some implemen-
++ tations use sL for
++ termcap).
++
++ <STRONG>User-Defined</STRONG> <STRONG>Capabilities</STRONG>
++ The preceding section listed the <EM>predefined</EM> capabilities.
++ They deal with some special features for terminals no
++ longer (or possibly never) produced. Occasionally there
++ are special features of newer terminals which are awkward
++ or impossible to represent by reusing the predefined capa-
++ bilities.
++
++ <STRONG>ncurses</STRONG> addresses this limitation by allowing user-defined
++ capabilities. The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG>
++ option for this purpose. When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats
++ unknown capabilities as user-defined. That is, if <STRONG>tic</STRONG>
++ encounters a capability name which it does not recognize,
++ it infers its type (boolean, number or string) from the
++ syntax and makes an extended table entry for that capabil-
++ ity. The <STRONG>use_extended_names</STRONG> function makes this informa-
++ tion conditionally available to applications. The ncurses
++ library provides the data leaving most of the behavior to
++ applications:
++
++ <STRONG>o</STRONG> User-defined capability strings whose name begins with
++ "k" are treated as function keys.
++
++ <STRONG>o</STRONG> The types (boolean, number, string) determined by <STRONG>tic</STRONG>
++ can be inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
++
++ <STRONG>o</STRONG> If the capability name happens to be two characters,
++ the capability is also available through the termcap
++ interface.
++
++ While termcap is said to be extensible because it does not
++ use a predefined set of capabilities, in practice it has
++ been limited to the capabilities defined by terminfo
++ implementations. As a rule, user-defined capabilities
++ intended for use by termcap applications should be limited
++ to booleans and numbers to avoid running past the 1023
++ byte limit assumed by termcap implementations and their
++ applications. In particular, providing extended sets of
++ function keys (past the 60 numbered keys and the handful
++ of special named keys) is best done using the longer names
++ available using terminfo.
+
+ <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
+ The following entry, describing an ANSI-standard terminal,
+- is representative of what a <STRONG>terminfo</STRONG> entry for a modern
++ is representative of what a <STRONG>terminfo</STRONG> entry for a modern
+ terminal typically looks like.
+
+- ansi|ansi/pc-term compatible with color,
+- mc5i,
+- colors#8, ncv#3, pairs#64,
+- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
+- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
+- ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
+- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
+- kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
+- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
+- kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
+- op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
+- rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
+- s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
+- sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
+- u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
+-
+- Entries may continue onto multiple lines by placing white
+- space at the beginning of each line except the first.
+- Comments may be included on lines beginning with ``#''.
+- Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
+- bilities which indicate that the terminal has some partic-
+- ular feature, numeric capabilities giving the size of the
+- terminal or the size of particular delays, and string
+- capabilities, which give a sequence which can be used to
+- perform particular terminal operations.
++ ansi|ansi/pc-term compatible with color,
++ am, mc5i, mir, msgr,
++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260
++ j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303
++ u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ el1=\E[1K, home=\E[H, hpa=\E[%i%p1%dG, ht=\E[I, hts=\EH,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
++ mc4=\E[4i, mc5=\E[5i, nel=\r\E[S, op=\E[39;49m,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rin=\E[%p1%dT,
++ rmacs=\E[10m, rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
++ s0ds=\E(B, s1ds=\E)B, s2ds=\E*B, s3ds=\E+B,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0;10%?%p1%t;7%;
++ %?%p2%t;4%;
++ %?%p3%t;7%;
++ %?%p4%t;5%;
++ %?%p6%t;1%;
++ %?%p7%t;8%;
++ %?%p9%t;11%;m,
++ sgr0=\E[0;10m, smacs=\E[11m, smpch=\E[11m, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
++ u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
++
++ Entries may continue onto multiple lines by placing white
++ space at the beginning of each line except the first.
++ Comments may be included on lines beginning with "#".
++ Capabilities in <EM>terminfo</EM> are of three types:
++
++ <STRONG>o</STRONG> Boolean capabilities which indicate that the terminal
++ has some particular feature,
++
++ <STRONG>o</STRONG> numeric capabilities giving the size of the terminal
++ or the size of particular delays, and
+
++ <STRONG>o</STRONG> string capabilities, which give a sequence which can
++ be used to perform particular terminal operations.
+
+ <STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
+- All capabilities have names. For instance, the fact that
+- ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
+- automatic return and line-feed when the end of a line is
+- reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
++ All capabilities have names. For instance, the fact that
++ ANSI-standard terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an
++ automatic return and line-feed when the end of a line is
++ reached) is indicated by the capability <STRONG>am</STRONG>. Hence the
+ description of ansi includes <STRONG>am</STRONG>. Numeric capabilities are
+- followed by the character `#' and then a positive value.
+- Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
+- minal has, gives the value `80' for ansi. Values for
++ followed by the character "#" and then a positive value.
++ Thus <STRONG>cols</STRONG>, which indicates the number of columns the ter-
++ minal has, gives the value "80" for ansi. Values for
+ numeric capabilities may be specified in decimal, octal or
+- hexadecimal, using the C programming language conventions
++ hexadecimal, using the C programming language conventions
+ (e.g., 255, 0377 and 0xff or 0xFF).
+
+- Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
++ Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
+ end of line sequence) are given by the two-character code,
+- an `=', and then a string ending at the next following
+- `,'.
++ an "=", and then a string ending at the next following
++ ",".
+
+- A number of escape sequences are provided in the string
++ A number of escape sequences are provided in the string
+ valued capabilities for easy encoding of characters there.
+- Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
+- control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
+- <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
+- backspace, form-feed, and space. Other escapes include <STRONG>\^</STRONG>
+- for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
+- (<STRONG>\0</STRONG> will produce \200, which does not terminate a string
+- but behaves as a null character on most terminals, provid-
+- ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters
+- may be given as three octal digits after a <STRONG>\</STRONG>.
+-
+- A delay in milliseconds may appear anywhere in a string
+- capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
+- and padding characters are supplied by <EM>tputs</EM> to provide
+- this delay. The delay must be a number with at most one
++ Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
++ control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
++ <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
++ backspace, form-feed, and space. Other escapes include
++
++ <STRONG>o</STRONG> <STRONG>\^</STRONG> for <STRONG>^</STRONG>,
++
++ <STRONG>o</STRONG> <STRONG>\\</STRONG> for <STRONG>\</STRONG>,
++
++ <STRONG>o</STRONG> <STRONG>\</STRONG>, for comma,
++
++ <STRONG>o</STRONG> <STRONG>\:</STRONG> for <STRONG>:</STRONG>,
++
++ <STRONG>o</STRONG> and <STRONG>\0</STRONG> for null.
++
++ <STRONG>\0</STRONG> will produce \200, which does not terminate a
++ string but behaves as a null character on most termi-
++ nals, providing CS7 is specified. See <STRONG>stty(1)</STRONG>.
++
++ The reason for this quirk is to maintain binary com-
++ patibility of the compiled terminfo files with other
++ implementations, e.g., the SVr4 systems, which docu-
++ ment this. Compiled terminfo files use null-termi-
++ nated strings, with no lengths. Modifying this would
++ require a new binary format, which would not work with
++ other implementations.
++
++ Finally, characters may be given as three octal digits
++ after a <STRONG>\</STRONG>.
++
++ A delay in milliseconds may appear anywhere in a string
++ capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
++ and padding characters are supplied by <EM>tputs</EM> to provide
++ this delay. The delay must be a number with at most one
+ decimal place of precision; it may be followed by suffixes
+- `*' or '/' or both. A `*' indicates that the padding
+- required is proportional to the number of lines affected
+- by the operation, and the amount given is the per-
+- affected-unit padding required. (In the case of insert
++ "*" or "/" or both. A "*" indicates that the padding
++ required is proportional to the number of lines affected
++ by the operation, and the amount given is the per-
++ affected-unit padding required. (In the case of insert
+ character, the factor is still the number of <EM>lines</EM>
+- affected.) Normally, padding is advisory if the device
+- has the <STRONG>xon</STRONG> capability; it is used for cost computation
+- but does not trigger delays. A `/' suffix indicates that
+- the padding is mandatory and forces a delay of the given
+- number of milliseconds even on devices for which <STRONG>xon</STRONG> is
++ affected.) Normally, padding is advisory if the device
++ has the <STRONG>xon</STRONG> capability; it is used for cost computation
++ but does not trigger delays. A "/" suffix indicates that
++ the padding is mandatory and forces a delay of the given
++ number of milliseconds even on devices for which <STRONG>xon</STRONG> is
+ present to indicate flow control.
+
+- Sometimes individual capabilities must be commented out.
+- To do this, put a period before the capability name. For
++ Sometimes individual capabilities must be commented out.
++ To do this, put a period before the capability name. For
+ example, see the second <STRONG>ind</STRONG> in the example above.
+
+-
+ <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
+- If the environment variable TERMINFO is set, it is inter-
+- preted as the pathname of a directory containing the com-
+- piled description you are working on. Only that directory
+- is searched.
+-
+- If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter-
+- minfo reader code will instead look in the directory
+- <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails
+- to find one there, and the environment variable TER-
+- MINFO_DIRS is set, it will interpret the contents of that
+- variable as a list of colon- separated directories to be
+- searched (an empty entry is interpreted as a command to
+- search <EM>/usr/share/terminfo</EM>). If no description is found
+- in any of the TERMINFO_DIRS directories, the fetch fails.
+-
+- If neither TERMINFO nor TERMINFO_DIRS is set, the last
+- place tried will be the system terminfo directory,
+- <EM>/usr/share/terminfo</EM>.
+-
+- (Neither the <STRONG>$HOME/.terminfo</STRONG> lookups nor TERMINFO_DIRS
+- extensions are supported under stock System V ter-
+- minfo/curses.)
++ The <STRONG>ncurses</STRONG> library searches for terminal descriptions in
++ several places. It uses only the first description found.
++ The library has a compiled-in list of places to search
++ which can be overridden by environment variables. Before
++ starting to search, <STRONG>ncurses</STRONG> eliminates duplicates in its
++ search list.
++
++ <STRONG>o</STRONG> If the environment variable TERMINFO is set, it is
++ interpreted as the pathname of a directory containing
++ the compiled description you are working on. Only
++ that directory is searched.
++
++ <STRONG>o</STRONG> If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in
++ the directory <STRONG>$HOME/.terminfo</STRONG> for a compiled descrip-
++ tion.
++
++ <STRONG>o</STRONG> Next, if the environment variable TERMINFO_DIRS is
++ set, <STRONG>ncurses</STRONG> will interpret the contents of that vari-
++ able as a list of colon-separated directories (or
++ database files) to be searched.
++
++ An empty directory name (i.e., if the variable begins
++ or ends with a colon, or contains adacent colons) is
++ interpreted as the system location <EM>/usr/share/ter-</EM>
++ <EM>minfo</EM>.
++
++ <STRONG>o</STRONG> Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
++
++ <STRONG>o</STRONG> a list of directories
++ (/usr/local/ncurses/share/terminfo:/usr/share/ter-
++ minfo), and
+
++ <STRONG>o</STRONG> the system terminfo directory, <EM>/usr/share/terminfo</EM>
++ (the compiled-in default).
+
+ <STRONG>Preparing</STRONG> <STRONG>Descriptions</STRONG>
+ We now outline how to prepare descriptions of terminals.
+@@ -1147,12 +1235,11 @@
+ To get the padding for insert line right (if the terminal
+ manufacturer did not document it) a severe test is to edit
+ a large file at 9600 baud, delete 16 or so lines from the
+- middle of the screen, then hit the `u' key several times
++ middle of the screen, then hit the "u" key several times
+ quickly. If the terminal messes up, more padding is usu-
+ ally needed. A similar test can be used for insert char-
+ acter.
+
+-
+ <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
+ The number of columns on each line for the terminal is
+ given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
+@@ -1178,7 +1265,7 @@
+ as <STRONG>cub1</STRONG>. Similarly, codes to move to the right, up, and
+ down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and <STRONG>cud1</STRONG>. These local
+ cursor motions should not alter the text they pass over,
+- for example, you would not normally use `<STRONG>cuf1</STRONG>= ' because
++ for example, you would not normally use "<STRONG>cuf1</STRONG>= " because
+ the space would erase the character moved over.
+
+ A very important point here is that the local cursor
+@@ -1190,137 +1277,135 @@
+ left corner of the screen and send the <STRONG>ind</STRONG> (index) string.
+
+ To scroll text down, a program goes to the top left corner
+- of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
+- The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
++ of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
++ The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
+ respective corners of the screen.
+
+ Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
+ and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
+- that they take one parameter, and scroll that many lines.
+- They are also undefined except at the appropriate edge of
++ that they take one parameter, and scroll that many lines.
++ They are also undefined except at the appropriate edge of
+ the screen.
+
+- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
+- right edge of the screen when text is output, but this
++ The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
++ right edge of the screen when text is output, but this
+ does not necessarily apply to a <STRONG>cuf1</STRONG> from the last column.
+- The only local motion which is defined from the left edge
+- is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
+- move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
+- given, the effect is undefined. This is useful for draw-
+- ing a box around the edge of the screen, for example. If
+- the terminal has switch selectable automatic margins, the
+- <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
+- If the terminal has a command which moves to the first
+- column of the next line, that command can be given as <STRONG>nel</STRONG>
+- (newline). It does not matter if the command clears the
+- remainder of the current line, so if the terminal has no
+- <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
++ The only local motion which is defined from the left edge
++ is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge will
++ move to the right edge of the previous row. If <STRONG>bw</STRONG> is not
++ given, the effect is undefined. This is useful for draw-
++ ing a box around the edge of the screen, for example. If
++ the terminal has switch selectable automatic margins, the
++ <EM>terminfo</EM> file usually assumes that this is on; i.e., <STRONG>am</STRONG>.
++ If the terminal has a command which moves to the first
++ column of the next line, that command can be given as <STRONG>nel</STRONG>
++ (newline). It does not matter if the command clears the
++ remainder of the current line, so if the terminal has no
++ <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to craft a working <STRONG>nel</STRONG>
+ out of one or both of them.
+
+ These capabilities suffice to describe hard-copy and
+- "glass-tty" terminals. Thus the model 33 teletype is
++ "glass-tty" terminals. Thus the model 33 teletype is
+ described as
+
+ 33|tty33|tty|model 33 teletype,
+- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
++ bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
+
+ while the Lear Siegler ADM-3 is described as
+
+ adm3|3|lsi adm3,
+- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+- ind=^J, lines#24,
+-
++ am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
++ ind=^J, lines#24,
+
+ <STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
+- Cursor addressing and other strings requiring parameters
+- in the terminal are described by a parameterized string
+- capability, with <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG> like escapes <STRONG>%x</STRONG> in it. For
+- example, to address the cursor, the <STRONG>cup</STRONG> capability is
++ Cursor addressing and other strings requiring parameters
++ in the terminal are described by a parameterized string
++ capability, with <EM>printf</EM>-like escapes such as <EM>%x</EM> in it.
++ For example, to address the cursor, the <STRONG>cup</STRONG> capability is
+ given, using two parameters: the row and column to address
+ to. (Rows and columns are numbered from zero and refer to
+ the physical screen visible to the user, not to any unseen
+- memory.) If the terminal has memory relative cursor
++ memory.) If the terminal has memory relative cursor
+ addressing, that can be indicated by <STRONG>mrcup</STRONG>.
+
+- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
+- to manipulate it. Typically a sequence will push one of
+- the parameters onto the stack and then print it in some
+- format. Print (e.g., "%d") is a special case. Other
+- operations, including "%t" pop their operand from the
++ The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
++ to manipulate it. Typically a sequence will push one of
++ the parameters onto the stack and then print it in some
++ format. Print (e.g., "%d") is a special case. Other
++ operations, including "%t" pop their operand from the
+ stack. It is noted that more complex operations are often
+ necessary, e.g., in the <STRONG>sgr</STRONG> string.
+
+ The <STRONG>%</STRONG> encodings have the following meanings:
+
++ <STRONG>%%</STRONG> outputs "%"
+
+- %% outputs `%'
+-
+- %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
+- as in <STRONG>printf</STRONG>, flags are [-+#] and space. Use a `:'
+- to allow the next character to be a `-' flag, avoid-
++ <STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM>
++ as in <STRONG>printf</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>. Use a ":"
++ to allow the next character to be a "-" flag, avoid-
+ ing interpreting "%-" as an operator.
+
+ %c print pop() like %c in <STRONG>printf</STRONG>
+
+- %s print pop() like %s in <STRONG>printf</STRONG>
++ <STRONG>%s</STRONG> print pop() like %s in <STRONG>printf</STRONG>
+
+- %p[1-9]
++ <STRONG>%p</STRONG><EM>[1-9]</EM>
+ push <EM>i</EM>'th parameter
+
+- %P[a-z]
+- set dynamic variable [a-z] to pop()
++ <STRONG>%P</STRONG><EM>[a-z]</EM>
++ set dynamic variable <EM>[a-z]</EM> to pop()
+
+- %g[a-z]
+- get dynamic variable [a-z] and push it
++ <STRONG>%g</STRONG><EM>[a-z]/</EM>
++ get dynamic variable <EM>[a-z]</EM> and push it
+
+- %P[A-Z]
+- set static variable [a-z] to pop()
++ <STRONG>%P</STRONG><EM>[A-Z]</EM>
++ set static variable <EM>[a-z]</EM> to <EM>pop()</EM>
+
+- %g[A-Z]
+- get static variable [a-z] and push it
+-
+- The terms "static" and "dynamic" are misleading.
+- Historically, these are simply two different sets of
+- variables, whose values are not reset between calls
+- to <STRONG>tparm</STRONG>. However, that fact is not documented in
+- other implementations. Relying on it will adversely
++ <STRONG>%g</STRONG><EM>[A-Z]</EM>
++ get static variable <EM>[a-z]</EM> and push it
++
++ The terms "static" and "dynamic" are misleading.
++ Historically, these are simply two different sets of
++ variables, whose values are not reset between calls
++ to <STRONG>tparm</STRONG>. However, that fact is not documented in
++ other implementations. Relying on it will adversely
+ impact portability to other implementations.
+
+- %'<EM>c</EM>' char constant <EM>c</EM>
++ <STRONG>%'</STRONG><EM>c</EM><STRONG>'</STRONG> char constant <EM>c</EM>
+
+- %{<EM>nn</EM>}
++ <STRONG>%{</STRONG><EM>nn</EM><STRONG>}</STRONG>
+ integer constant <EM>nn</EM>
+
+- %l push strlen(pop)
++ <STRONG>%l</STRONG> push strlen(pop)
+
+- %+ %- %* %/ %m
+- arithmetic (%m is mod): push(pop() op pop())
++ <STRONG>%+</STRONG>, <STRONG>%-</STRONG>, <STRONG>%*</STRONG>, <STRONG>%/</STRONG>, <STRONG>%m</STRONG>
++ arithmetic (%m is mod): <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
+
+- %&amp; %| %^
+- bit operations (AND, OR and exclusive-OR): push(pop()
+- op pop())
++ <STRONG>%&amp;</STRONG>, <STRONG>%|</STRONG>, <STRONG>%^</STRONG>
++ bit operations (AND, OR and exclusive-OR): <EM>push(pop()</EM>
++ <EM>op</EM> <EM>pop())</EM>
+
+- %= %&gt; %&lt;
+- logical operations: push(pop() op pop())
++ <STRONG>%=</STRONG>, <STRONG>%&gt;</STRONG>, <STRONG>%&lt;</STRONG>
++ logical operations: <EM>push(pop()</EM> <EM>op</EM> <EM>pop())</EM>
+
+- %A, %O
++ <STRONG>%A</STRONG>, <STRONG>%O</STRONG>
+ logical AND and OR operations (for conditionals)
+
+- %! %~
+- unary operations (logical and bit complement):
++ <STRONG>%!</STRONG>, <STRONG>%~</STRONG>
++ unary operations (logical and bit complement):
+ push(op pop())
+
+- %i add 1 to first two parameters (for ANSI terminals)
++ <STRONG>%i</STRONG> add 1 to first two parameters (for ANSI terminals)
+
+- %? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
+- This forms an if-then-else. The %e <EM>elsepart</EM> is
+- optional. Usually the %? <EM>expr</EM> part pushes a value
+- onto the stack, and %t pops it from the stack, test-
+- ing if it is nonzero (true). If it is zero (false),
+- control passes to the %e (else) part.
++ <STRONG>%?</STRONG> <EM>expr</EM> <STRONG>%t</STRONG> <EM>thenpart</EM> <STRONG>%e</STRONG> <EM>elsepart</EM> <STRONG>%;</STRONG>
++ This forms an if-then-else. The <STRONG>%e</STRONG> <EM>elsepart</EM> is
++ optional. Usually the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value
++ onto the stack, and <STRONG>%t</STRONG> pops it from the stack, test-
++ ing if it is nonzero (true). If it is zero (false),
++ control passes to the <STRONG>%e</STRONG> (else) part.
+
+ It is possible to form else-if's a la Algol 68:
+- %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
++ <STRONG>%?</STRONG> c1 <STRONG>%t</STRONG> b1 <STRONG>%e</STRONG> c2 <STRONG>%t</STRONG> b2 <STRONG>%e</STRONG> c3 <STRONG>%t</STRONG> b3 <STRONG>%e</STRONG> c4 <STRONG>%t</STRONG> b4 <STRONG>%e</STRONG> <STRONG>%;</STRONG>
+
+ where ci are conditions, bi are bodies.
+
+@@ -1332,7 +1417,7 @@
+
+ Binary operations are in postfix form with the operands in
+ the usual order. That is, to get x-5 one would use
+- "%gx%{5}%-". %P and %g variables are persistent across
++ "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG> variables are persistent across
+ escape-string evaluations.
+
+ Consider the HP2645, which, to get to row 3 and column 12,
+@@ -1342,241 +1427,238 @@
+ its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
+
+ The Microterm ACT-IV needs the current row and column sent
+- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
+- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
+- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
++ preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
++ in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
++ need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
+ move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is
+- necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
+- and <STRONG>\r</STRONG>, as the system may change or discard them. (The
+- library routines dealing with terminfo set tty modes so
++ necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
++ and <STRONG>\r</STRONG>, as the system may change or discard them. (The
++ library routines dealing with terminfo set tty modes so
+ that tabs are never expanded, so \t is safe to send. This
+ turns out to be essential for the Ann Arbor 4080.)
+
+ A final example is the LSI ADM-3a, which uses row and col-
+ umn offset by a blank character, thus "cup=\E=%p1%'
+- '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
+- first parameter, pushes the ASCII value for a space (32),
+- adds them (pushing the sum on the stack in place of the
+- two previous values) and outputs that value as a charac-
+- ter. Then the same is done for the second parameter.
++ '%+%c%p2%' '%+%c". After sending "\E=", this pushes the
++ first parameter, pushes the ASCII value for a space (32),
++ adds them (pushing the sum on the stack in place of the
++ two previous values) and outputs that value as a charac-
++ ter. Then the same is done for the second parameter.
+ More complex arithmetic is possible using the stack.
+
+-
+ <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
+ If the terminal has a fast way to home the cursor (to very
+- upper left corner of screen) then this can be given as
+- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
+- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
+- with <STRONG>cuu1</STRONG> from the home position, but a program should
+- never do this itself (unless <STRONG>ll</STRONG> does) because it can make
+- no assumption about the effect of moving up from the home
+- position. Note that the home position is the same as
++ upper left corner of screen) then this can be given as
++ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
++ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
++ with <STRONG>cuu1</STRONG> from the home position, but a program should
++ never do this itself (unless <STRONG>ll</STRONG> does) because it can make
++ no assumption about the effect of moving up from the home
++ position. Note that the home position is the same as
+ addressing to (0,0): to the top left corner of the screen,
+- not of memory. (Thus, the \EH sequence on HP terminals
++ not of memory. (Thus, the \EH sequence on HP terminals
+ cannot be used for <STRONG>home</STRONG>.)
+
+ If the terminal has row or column absolute cursor address-
+- ing, these can be given as single parameter capabilities
++ ing, these can be given as single parameter capabilities
+ <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
+ tion absolute). Sometimes these are shorter than the more
+- general two parameter sequence (as with the hp2645) and
+- can be used in preference to <STRONG>cup</STRONG>. If there are
+- parameterized local motions (e.g., move <EM>n</EM> spaces to the
+- right) these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a
+- single parameter indicating how many spaces to move.
+- These are primarily useful if the terminal does not have
+- <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
++ general two parameter sequence (as with the hp2645) and
++ can be used in preference to <STRONG>cup</STRONG>. If there are parameter-
++ ized local motions (e.g., move <EM>n</EM> spaces to the right)
++ these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
++ parameter indicating how many spaces to move. These are
++ primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
++ as the TEKTRONIX 4025.
+
+ If the terminal needs to be in a special mode when running
+ a program that uses these capabilities, the codes to enter
+- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
+- arises, for example, from terminals like the Concept with
+- more than one page of memory. If the terminal has only
+- memory relative cursor addressing and not screen relative
++ and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
++ arises, for example, from terminals like the Concept with
++ more than one page of memory. If the terminal has only
++ memory relative cursor addressing and not screen relative
+ cursor addressing, a one screen-sized window must be fixed
+- into the terminal for cursor addressing to work properly.
++ into the terminal for cursor addressing to work properly.
+ This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
+- the command character to be the one used by terminfo. If
+- the <STRONG>smcup</STRONG> sequence will not restore the screen after an
++ the command character to be the one used by terminfo. If
++ the <STRONG>smcup</STRONG> sequence will not restore the screen after an
+ <STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
+ <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
+
+-
+ <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
+ If the terminal can clear from the current position to the
+- end of the line, leaving the cursor where it is, this
++ end of the line, leaving the cursor where it is, this
+ should be given as <STRONG>el</STRONG>. If the terminal can clear from the
+- beginning of the line to the current position inclusive,
+- leaving the cursor where it is, this should be given as
+- <STRONG>el1</STRONG>. If the terminal can clear from the current position
+- to the end of the display, then this should be given as
+- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
+- (Thus, it can be simulated by a request to delete a large
++ beginning of the line to the current position inclusive,
++ leaving the cursor where it is, this should be given as
++ <STRONG>el1</STRONG>. If the terminal can clear from the current position
++ to the end of the display, then this should be given as
++ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
++ (Thus, it can be simulated by a request to delete a large
+ number of lines, if a true <STRONG>ed</STRONG> is not available.)
+
+-
+ <STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
+- If the terminal can open a new blank line before the line
+- where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
+- done only from the first position of a line. The cursor
++ If the terminal can open a new blank line before the line
++ where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
++ done only from the first position of a line. The cursor
+ must then appear on the newly blank line. If the terminal
+- can delete the line which the cursor is on, then this
+- should be given as <STRONG>dl1</STRONG>; this is done only from the first
+- position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
+- <STRONG>dl1</STRONG> which take a single parameter and insert or delete
++ can delete the line which the cursor is on, then this
++ should be given as <STRONG>dl1</STRONG>; this is done only from the first
++ position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
++ <STRONG>dl1</STRONG> which take a single parameter and insert or delete
+ that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
+
+- If the terminal has a settable scrolling region (like the
+- vt100) the command to set this can be described with the
+- <STRONG>csr</STRONG> capability, which takes two parameters: the top and
++ If the terminal has a settable scrolling region (like the
++ vt100) the command to set this can be described with the
++ <STRONG>csr</STRONG> capability, which takes two parameters: the top and
+ bottom lines of the scrolling region. The cursor position
+ is, alas, undefined after using this command.
+
+- It is possible to get the effect of insert or delete line
++ It is possible to get the effect of insert or delete line
+ using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
+- and restore cursor) commands may be useful for ensuring
+- that your synthesized insert/delete string does not move
+- the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
+- synthesis automatically, so you need not compose
++ and restore cursor) commands may be useful for ensuring
++ that your synthesized insert/delete string does not move
++ the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
++ synthesis automatically, so you need not compose
+ insert/delete strings for an entry with <STRONG>csr</STRONG>).
+
+ Yet another way to construct insert and delete might be to
+- use a combination of index with the memory-lock feature
+- found on some terminals (like the HP-700/90 series, which
++ use a combination of index with the memory-lock feature
++ found on some terminals (like the HP-700/90 series, which
+ however also has insert/delete).
+
+- Inserting lines at the top or bottom of the screen can
+- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
+- true insert/delete line, and is often faster even on ter-
++ Inserting lines at the top or bottom of the screen can
++ also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
++ true insert/delete line, and is often faster even on ter-
+ minals with those features.
+
+- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
+- scrolling window is effectively a view port on a screen-
+- sized canvas. To test for this capability, create a
+- scrolling region in the middle of the screen, write some-
+- thing to the bottom line, move the cursor to the top of
++ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
++ scrolling window is effectively a view port on a screen-
++ sized canvas. To test for this capability, create a
++ scrolling region in the middle of the screen, write some-
++ thing to the bottom line, move the cursor to the top of
+ the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data
+- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
+- appears, then scrolling is non-destructive. System V and
+- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
+- late destructive scrolling; their documentation cautions
+- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
++ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
++ appears, then scrolling is non-destructive. System V and
++ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
++ late destructive scrolling; their documentation cautions
++ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
+ implementation is more liberal and will do explicit erases
+ after scrolling if <STRONG>ndstr</STRONG> is defined.
+
+ If the terminal has the ability to define a window as part
+- of memory, which all commands affect, it should be given
++ of memory, which all commands affect, it should be given
+ as the parameterized string <STRONG>wind</STRONG>. The four parameters are
+- the starting and ending lines in memory and the starting
++ the starting and ending lines in memory and the starting
+ and ending columns in memory, in that order.
+
+- If the terminal can retain display memory above, then the
+- <STRONG>da</STRONG> capability should be given; if display memory can be
+- retained below, then <STRONG>db</STRONG> should be given. These indicate
+- that deleting a line or scrolling may bring non-blank
+- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
++ If the terminal can retain display memory above, then the
++ <STRONG>da</STRONG> capability should be given; if display memory can be
++ retained below, then <STRONG>db</STRONG> should be given. These indicate
++ that deleting a line or scrolling may bring non-blank
++ lines up from below or that scrolling back with <STRONG>ri</STRONG> may
+ bring down non-blank lines.
+
+-
+ <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+- There are two basic kinds of intelligent terminals with
+- respect to insert/delete character which can be described
+- using <EM>terminfo.</EM> The most common insert/delete character
+- operations affect only the characters on the current line
+- and shift characters off the end of the line rigidly.
+- Other terminals, such as the Concept 100 and the Perkin
+- Elmer Owl, make a distinction between typed and untyped
+- blanks on the screen, shifting upon an insert or delete
+- only to an untyped blank on the screen which is either
+- eliminated, or expanded to two untyped blanks. You can
+- determine the kind of terminal you have by clearing the
+- screen and then typing text separated by cursor motions.
+- Type "abc def" using local cursor motions (not spaces)
+- between the "abc" and the "def". Then position the cursor
+- before the "abc" and put the terminal in insert mode. If
+- typing characters causes the rest of the line to shift
+- rigidly and characters to fall off the end, then your ter-
+- minal does not distinguish between blanks and untyped
+- positions. If the "abc" shifts over to the "def" which
+- then move together around the end of the current line and
+- onto the next as you insert, you have the second type of
+- terminal, and should give the capability <STRONG>in</STRONG>, which stands
+- for "insert null". While these are two logically separate
+- attributes (one line versus multi-line insert mode, and
+- special treatment of untyped spaces) we have seen no ter-
+- minals whose insert mode cannot be described with the sin-
+- gle attribute.
++ There are two basic kinds of intelligent terminals with
++ respect to insert/delete character which can be described
++ using <EM>terminfo.</EM> The most common insert/delete character
++ operations affect only the characters on the current line
++ and shift characters off the end of the line rigidly.
++ Other terminals, such as the Concept 100 and the Perkin
++ Elmer Owl, make a distinction between typed and untyped
++ blanks on the screen, shifting upon an insert or delete
++ only to an untyped blank on the screen which is either
++ eliminated, or expanded to two untyped blanks.
++
++ You can determine the kind of terminal you have by clear-
++ ing the screen and then typing text separated by cursor
++ motions. Type "abc def" using local cursor motions
++ (not spaces) between the "abc" and the "def". Then posi-
++ tion the cursor before the "abc" and put the terminal in
++ insert mode. If typing characters causes the rest of the
++ line to shift rigidly and characters to fall off the end,
++ then your terminal does not distinguish between blanks and
++ untyped positions. If the "abc" shifts over to the "def"
++ which then move together around the end of the current
++ line and onto the next as you insert, you have the second
++ type of terminal, and should give the capability <STRONG>in</STRONG>, which
++ stands for "insert null".
++
++ While these are two logically separate attributes (one
++ line versus multi-line insert mode, and special treatment
++ of untyped spaces) we have seen no terminals whose insert
++ mode cannot be described with the single attribute.
+
+- Terminfo can describe both terminals which have an insert
++ Terminfo can describe both terminals which have an insert
+ mode, and terminals which send a simple sequence to open a
+- blank position on the current line. Give as <STRONG>smir</STRONG> the
+- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
+- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
+- sequence needed to be sent just before sending the
+- character to be inserted. Most terminals with a true
+- insert mode will not give <STRONG>ich1</STRONG>; terminals which send a
+- sequence to open a screen position should give it here.
+-
+- If your terminal has both, insert mode is usually prefer-
+- able to <STRONG>ich1</STRONG>. Technically, you should not give both
+- unless the terminal actually requires both to be used in
+- combination. Accordingly, some non-curses applications
+- get confused if both are present; the symptom is doubled
++ blank position on the current line. Give as <STRONG>smir</STRONG> the
++ sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
++ sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
++ sequence needed to be sent just before sending the charac-
++ ter to be inserted. Most terminals with a true insert
++ mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
++ to open a screen position should give it here.
++
++ If your terminal has both, insert mode is usually prefer-
++ able to <STRONG>ich1</STRONG>. Technically, you should not give both
++ unless the terminal actually requires both to be used in
++ combination. Accordingly, some non-curses applications
++ get confused if both are present; the symptom is doubled
+ characters in an update using insert. This requirement is
+ now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
+ and most smir insert modes do not require <STRONG>ich1</STRONG> before each
+- character. Therefore, the new <STRONG>curses</STRONG> actually assumes
+- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
++ character. Therefore, the new <STRONG>curses</STRONG> actually assumes
++ this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
+ appropriate (but not both). If you have to write an entry
+- to be used under new curses for a terminal old enough to
++ to be used under new curses for a terminal old enough to
+ need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
+
+ If post insert padding is needed, give this as a number of
+- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
+- which may need to be sent after an insert of a single
++ milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
++ which may need to be sent after an insert of a single
+ character may also be given in <STRONG>ip</STRONG>. If your terminal needs
+- both to be placed into an `insert mode' and a special code
+- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
+- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
++ both to be placed into an "insert mode" and a special code
++ to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
++ and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
+ capability, with one parameter, <EM>n</EM>, will repeat the effects
+ of <STRONG>ich1</STRONG> <EM>n</EM> times.
+
+ If padding is necessary between characters typed while not
+- in insert mode, give this as a number of milliseconds
+- padding in <STRONG>rmp</STRONG>.
++ in insert mode, give this as a number of milliseconds pad-
++ ding in <STRONG>rmp</STRONG>.
+
+- It is occasionally necessary to move around while in
+- insert mode to delete characters on the same line (e.g.,
+- if there is a tab after the insertion position). If your
+- terminal allows motion while in insert mode you can give
+- the capability <STRONG>mir</STRONG> to speed up inserting in this case.
+- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
++ It is occasionally necessary to move around while in
++ insert mode to delete characters on the same line (e.g.,
++ if there is a tab after the insertion position). If your
++ terminal allows motion while in insert mode you can give
++ the capability <STRONG>mir</STRONG> to speed up inserting in this case.
++ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
+ (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
+ their insert mode works.
+
+- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
+- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
+- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
+- delete mode (any mode the terminal needs to be placed in
++ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
++ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
++ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
++ delete mode (any mode the terminal needs to be placed in
+ for <STRONG>dch1</STRONG> to work).
+
+- A command to erase <EM>n</EM> characters (equivalent to outputting
+- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
++ A command to erase <EM>n</EM> characters (equivalent to outputting
++ <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
+ with one parameter.
+
+-
+ <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
+ If your terminal has one or more kinds of display
+- attributes, these can be represented in a number of dif-
++ attributes, these can be represented in a number of dif-
+ ferent ways. You should choose one display form as <EM>stand-</EM>
+ <EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
+- eyes, format for highlighting error messages and other
+- attention getters. (If you have a choice, reverse video
+- plus half-bright is good, or reverse video alone.) The
+- sequences to enter and exit standout mode are given as
+- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
+- or out of standout mode leaves one or even two blank
+- spaces on the screen, as the TVI 912 and Teleray 1061 do,
++ eyes, format for highlighting error messages and other
++ attention getters. (If you have a choice, reverse video
++ plus half-bright is good, or reverse video alone.) The
++ sequences to enter and exit standout mode are given as
++ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
++ or out of standout mode leaves one or even two blank spa-
++ ces on the screen, as the TVI 912 and Teleray 1061 do,
+ then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
+
+ Codes to begin underlining and end underlining can be
+@@ -1605,19 +1687,18 @@
+
+ For example, the DEC vt220 supports most of the modes:
+
++ <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
+
+- <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
+-
+- none none \E[0m
+- p1 standout \E[0;1;7m
+- p2 underline \E[0;4m
+- p3 reverse \E[0;7m
+- p4 blink \E[0;5m
+- p5 dim not available
+- p6 bold \E[0;1m
+- p7 invis \E[0;8m
+- p8 protect not used
+- p9 altcharset ^O (off) ^N (on)
++ none none \E[0m
++ p1 standout \E[0;1;7m
++ p2 underline \E[0;4m
++ p3 reverse \E[0;7m
++ p4 blink \E[0;5m
++ p5 dim not available
++ p6 bold \E[0;1m
++ p7 invis \E[0;8m
++ p8 protect not used
++ p9 altcharset ^O (off) ^N (on)
+
+ We begin each escape sequence by turning off any existing
+ modes, since there is no quick way to determine whether
+@@ -1637,23 +1718,21 @@
+ Writing out the above sequences, along with their depen-
+ dencies yields
+
++ <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
+
+- <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
+-
+- \E[0 always \E[0
+- ;1 if p1 or p6 %?%p1%p6%|%t;1%;
+- ;4 if p2 %?%p2%|%t;4%;
+- ;5 if p4 %?%p4%|%t;5%;
+-
+- ;7 if p1 or p3 %?%p1%p3%|%t;7%;
+- ;8 if p7 %?%p7%|%t;8%;
+- m always m
+- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
++ \E[0 always \E[0
++ ;1 if p1 or p6 %?%p1%p6%|%t;1%;
++ ;4 if p2 %?%p2%|%t;4%;
++ ;5 if p4 %?%p4%|%t;5%;
++ ;7 if p1 or p3 %?%p1%p3%|%t;7%;
++ ;8 if p7 %?%p7%|%t;8%;
++ m always m
++ ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
+
+ Putting this all together into the sgr sequence gives:
+
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
+- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
++ %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+
+ Remember that if you specify sgr, you must also specify
+ sgr0. Also, some implementations rely on sgr being given
+@@ -1664,8 +1743,8 @@
+ assumes that sgr0 does not exit alternate character set
+ mode.
+
+- Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
+- special ``cookies'' when they receive mode-setting
++ Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit
++ special "cookies" when they receive mode-setting
+ sequences, which affect the display algorithm rather than
+ having extra bits for each character. Some terminals,
+ such as the HP 2621, automatically leave standout mode
+@@ -1695,7 +1774,6 @@
+ erasable with a blank, then this should be indicated by
+ giving <STRONG>eo</STRONG>.
+
+-
+ <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
+ If the terminal has a keypad that transmits codes when the
+ keys are pressed, this information can be given. Note
+@@ -1704,27 +1782,57 @@
+ unshifted HP 2621 keys). If the keypad can be set to
+ transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
+ <STRONG>rmkx</STRONG>. Otherwise the keypad is assumed to always transmit.
+- The codes sent by the left arrow, right arrow, up arrow,
+- down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
+- <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
+- tion keys such as f0, f1, ..., f10, the codes they send
+- can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
+- labels other than the default f0 through f10, the labels
+- can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes
+- transmitted by certain other special keys can be given:
+- <STRONG>kll</STRONG> (home down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs),
+- <STRONG>kctab</STRONG> (clear the tab stop in this column), <STRONG>kclr</STRONG> (clear
+- screen or erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG>
+- (delete line), <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end
+- of line), <STRONG>ked</STRONG> (clear to end of screen), <STRONG>kich1</STRONG> (insert
+- character or enter insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG>
+- (next page), <STRONG>kpp</STRONG> (previous page), <STRONG>kind</STRONG> (scroll for-
+- ward/down), <STRONG>kri</STRONG> (scroll backward/up), <STRONG>khts</STRONG> (set a tab stop
+- in this column). In addition, if the keypad has a 3 by 3
+- array of keys including the four arrow keys, the other
+- five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.
+- These keys are useful when the effects of a 3 by 3 direc-
+- tional pad are needed.
++
++ The codes sent by the left arrow, right arrow, up arrow,
++ down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
++ <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
++ tion keys such as f0, f1, ..., f10, the codes they send
++ can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
++ labels other than the default f0 through f10, the labels
++ can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.
++
++ The codes transmitted by certain other special keys can be
++ given:
++
++ <STRONG>o</STRONG> <STRONG>kll</STRONG> (home down),
++
++ <STRONG>o</STRONG> <STRONG>kbs</STRONG> (backspace),
++
++ <STRONG>o</STRONG> <STRONG>ktbc</STRONG> (clear all tabs),
++
++ <STRONG>o</STRONG> <STRONG>kctab</STRONG> (clear the tab stop in this column),
++
++ <STRONG>o</STRONG> <STRONG>kclr</STRONG> (clear screen or erase key),
++
++ <STRONG>o</STRONG> <STRONG>kdch1</STRONG> (delete character),
++
++ <STRONG>o</STRONG> <STRONG>kdl1</STRONG> (delete line),
++
++ <STRONG>o</STRONG> <STRONG>krmir</STRONG> (exit insert mode),
++
++ <STRONG>o</STRONG> <STRONG>kel</STRONG> (clear to end of line),
++
++ <STRONG>o</STRONG> <STRONG>ked</STRONG> (clear to end of screen),
++
++ <STRONG>o</STRONG> <STRONG>kich1</STRONG> (insert character or enter insert mode),
++
++ <STRONG>o</STRONG> <STRONG>kil1</STRONG> (insert line),
++
++ <STRONG>o</STRONG> <STRONG>knp</STRONG> (next page),
++
++ <STRONG>o</STRONG> <STRONG>kpp</STRONG> (previous page),
++
++ <STRONG>o</STRONG> <STRONG>kind</STRONG> (scroll forward/down),
++
++ <STRONG>o</STRONG> <STRONG>kri</STRONG> (scroll backward/up),
++
++ <STRONG>o</STRONG> <STRONG>khts</STRONG> (set a tab stop in this column).
++
++ In addition, if the keypad has a 3 by 3 array of keys
++ including the four arrow keys, the other five keys can be
++ given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are use-
++ ful when the effects of a 3 by 3 directional pad are
++ needed.
+
+ Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
+ <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
+@@ -1746,12 +1854,11 @@
+ or more pln sequences to make sure that the change becomes
+ visible.
+
+-
+ <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
+ If the terminal has hardware tabs, the command to advance
+ to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
+- I). A ``back-tab'' command which moves leftward to the
+- preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
++ I). A "back-tab" command which moves leftward to the pre-
++ ceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
+ the teletype modes indicate that tabs are being expanded
+ by the computer rather than being sent to the terminal,
+ programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
+@@ -1851,9 +1958,8 @@
+ ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
+ first character of the <STRONG>pad</STRONG> string is used.
+
+-
+ <STRONG>Status</STRONG> <STRONG>Lines</STRONG>
+- Some terminals have an extra `status line' which is not
++ Some terminals have an extra "status line" which is not
+ normally used by software (and thus not counted in the
+ terminal's <STRONG>lines</STRONG> capability).
+
+@@ -1883,110 +1989,105 @@
+ The boolean capability <STRONG>eslok</STRONG> specifies that escape
+ sequences, tabs, etc., work ordinarily in the status line.
+
+- The <STRONG>ncurses</STRONG> implementation does not yet use any of these
+- capabilities. They are documented here in case they ever
++ The <STRONG>ncurses</STRONG> implementation does not yet use any of these
++ capabilities. They are documented here in case they ever
+ become important.
+
+-
+ <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
+- Many terminals have alternate character sets useful for
+- forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
+- the drawing characters supported by the VT100, with some
+- characters from the AT&amp;T 4410v1 added. This alternate
++ Many terminals have alternate character sets useful for
++ forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
++ the drawing characters supported by the VT100, with some
++ characters from the AT&amp;T 4410v1 added. This alternate
+ character set may be specified by the <STRONG>acsc</STRONG> capability.
+
+-
+- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
+- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
+- UK pound sign ACS_STERLING f }
+- arrow pointing down ACS_DARROW v .
+- arrow pointing left ACS_LARROW &lt; ,
+- arrow pointing right ACS_RARROW &gt; +
+- arrow pointing up ACS_UARROW ^ -
+- board of squares ACS_BOARD # h
+- bullet ACS_BULLET o ~
+- checker board (stipple) ACS_CKBOARD : a
+- degree symbol ACS_DEGREE \ f
+- diamond ACS_DIAMOND + `
+- greater-than-or-equal-to ACS_GEQUAL &gt; z
+- greek pi ACS_PI * {
+- horizontal line ACS_HLINE - q
+- lantern symbol ACS_LANTERN # i
+- large plus or crossover ACS_PLUS + n
+- less-than-or-equal-to ACS_LEQUAL &lt; y
+-
+- lower left corner ACS_LLCORNER + m
+- lower right corner ACS_LRCORNER + j
+- not-equal ACS_NEQUAL ! |
+- plus/minus ACS_PLMINUS # g
+- scan line 1 ACS_S1 ~ o
+- scan line 3 ACS_S3 - p
+- scan line 7 ACS_S7 - r
+- scan line 9 ACS_S9 _ s
+- solid square block ACS_BLOCK # 0
+- tee pointing down ACS_TTEE + w
+- tee pointing left ACS_RTEE + u
+- tee pointing right ACS_LTEE + t
+- tee pointing up ACS_BTEE + v
+- upper left corner ACS_ULCORNER + l
+- upper right corner ACS_URCORNER + k
+- vertical line ACS_VLINE | x
+-
+- The best way to define a new device's graphics set is to
+- add a column to a copy of this table for your terminal,
+- giving the character which (when emitted between
+- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
+- ing graphic. Then read off the VT100/your terminal char-
+- acter pairs right to left in sequence; these become the
++ <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
++ <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
++ UK pound sign ACS_STERLING f }
++ arrow pointing down ACS_DARROW v .
++ arrow pointing left ACS_LARROW &lt; ,
++ arrow pointing right ACS_RARROW &gt; +
++ arrow pointing up ACS_UARROW ^ -
++ board of squares ACS_BOARD # h
++ bullet ACS_BULLET o ~
++ checker board (stipple) ACS_CKBOARD : a
++ degree symbol ACS_DEGREE \ f
++ diamond ACS_DIAMOND + `
++ greater-than-or-equal-to ACS_GEQUAL &gt; z
++ greek pi ACS_PI * {
++ horizontal line ACS_HLINE - q
++ lantern symbol ACS_LANTERN # i
++ large plus or crossover ACS_PLUS + n
++ less-than-or-equal-to ACS_LEQUAL &lt; y
++ lower left corner ACS_LLCORNER + m
++ lower right corner ACS_LRCORNER + j
++ not-equal ACS_NEQUAL ! |
++ plus/minus ACS_PLMINUS # g
++ scan line 1 ACS_S1 ~ o
++ scan line 3 ACS_S3 - p
++ scan line 7 ACS_S7 - r
++ scan line 9 ACS_S9 _ s
++ solid square block ACS_BLOCK # 0
++ tee pointing down ACS_TTEE + w
++ tee pointing left ACS_RTEE + u
++ tee pointing right ACS_LTEE + t
++ tee pointing up ACS_BTEE + v
++ upper left corner ACS_ULCORNER + l
++ upper right corner ACS_URCORNER + k
++ vertical line ACS_VLINE | x
++
++ The best way to define a new device's graphics set is to
++ add a column to a copy of this table for your terminal,
++ giving the character which (when emitted between
++ <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
++ ing graphic. Then read off the VT100/your terminal char-
++ acter pairs right to left in sequence; these become the
+ ACSC string.
+
+-
+ <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
+- Most color terminals are either `Tektronix-like' or `HP-
+- like'. Tektronix-like terminals have a predefined set of
+- N colors (where N usually 8), and can set character-cell
++ Most color terminals are either "Tektronix-like" or "HP-
++ like". Tektronix-like terminals have a predefined set of
++ N colors (where N usually 8), and can set character-cell
+ foreground and background characters independently, mixing
+- them into N * N color-pairs. On HP-like terminals, the
++ them into N * N color-pairs. On HP-like terminals, the
+ use must set each color pair up separately (foreground and
+- background are not independently settable). Up to M
+- color-pairs may be set up from 2*M different colors.
++ background are not independently settable). Up to M
++ color-pairs may be set up from 2*M different colors.
+ ANSI-compatible terminals are Tektronix-like.
+
+ Some basic color capabilities are independent of the color
+ method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
+- the maximum numbers of colors and color-pairs that can be
+- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
+- resets foreground and background colors to their default
+- values for the terminal. The <STRONG>oc</STRONG> string resets all colors
+- or color-pairs to their default values for the terminal.
+- Some terminals (including many PC terminal emulators)
+- erase screen areas with the current background color
+- rather than the power-up default background; these should
++ the maximum numbers of colors and color-pairs that can be
++ displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
++ resets foreground and background colors to their default
++ values for the terminal. The <STRONG>oc</STRONG> string resets all colors
++ or color-pairs to their default values for the terminal.
++ Some terminals (including many PC terminal emulators)
++ erase screen areas with the current background color
++ rather than the power-up default background; these should
+ have the boolean capability <STRONG>bce</STRONG>.
+
+- To change the current foreground or background color on a
+- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
+- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
+- and <STRONG>setb</STRONG> (set background). These take one parameter, the
++ To change the current foreground or background color on a
++ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
++ and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
++ and <STRONG>setb</STRONG> (set background). These take one parameter, the
+ color number. The SVr4 documentation describes only
+- <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
++ <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
+ supports ANSI escape sequences to set background and fore-
+- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
+- tively. If the terminal supports other escape sequences
+- to set background and foreground, they should be coded as
+- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
+- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
++ ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
++ tively. If the terminal supports other escape sequences
++ to set background and foreground, they should be coded as
++ <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
++ the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
+ defined."
+
+- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
++ The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
+ numeric argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>
+- are portably defined as follows (the middle column is the
++ are portably defined as follows (the middle column is the
+ symbolic #define available in the header for the <STRONG>curses</STRONG> or
+- <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
+- these as it likes, but the RGB values indicate normal
++ <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
++ these as it likes, but the RGB values indicate normal
+ locations in color space.
+
+-
+ <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
+ black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
+ red <STRONG>COLOR_RED</STRONG> 1 max,0,0
+@@ -1997,7 +2098,7 @@
+ cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max
+ white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
+
+- The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
++ The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
+ to a different mapping, i.e.,
+
+ <STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
+@@ -2009,132 +2110,137 @@
+ magenta <STRONG>COLOR_MAGENTA</STRONG> 5 max,0,max
+ yellow <STRONG>COLOR_YELLOW</STRONG> 6 max,max,0
+ white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
++
+ It is important to not confuse the two sets of color capa-
+- bilities; otherwise red/blue will be interchanged on the
++ bilities; otherwise red/blue will be interchanged on the
+ display.
+
+- On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
++ On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
+ parameter to set which color pair is current.
+
+- On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
+- present to indicate that colors can be modified. If so,
++ On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
++ present to indicate that colors can be modified. If so,
+ the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
+- - 1)and three more parameters which describe the color.
++ - 1)and three more parameters which describe the color.
+ These three parameters default to being interpreted as RGB
+- (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
++ (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
+ is present, they are instead as HLS (Hue, Lightness, Satu-
+ ration) indices. The ranges are terminal-dependent.
+
+- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
+- changing a color-pair value. It will take seven parame-
+- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
+- triples describing first background and then foreground
+- colors. These parameters must be (Red, Green, Blue) or
++ On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
++ changing a color-pair value. It will take seven parame-
++ ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
++ triples describing first background and then foreground
++ colors. These parameters must be (Red, Green, Blue) or
+ (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
+
+- On some color terminals, colors collide with highlights.
++ On some color terminals, colors collide with highlights.
+ You can register these collisions with the <STRONG>ncv</STRONG> capability.
+- This is a bit-mask of attributes not to be used when col-
+- ors are enabled. The correspondence with the attributes
++ This is a bit-mask of attributes not to be used when col-
++ ors are enabled. The correspondence with the attributes
+ understood by <STRONG>curses</STRONG> is as follows:
+
+-
+- <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
+- A_STANDOUT 0 1
+- A_UNDERLINE 1 2
+- A_REVERSE 2 4
+- A_BLINK 3 8
+- A_DIM 4 16
+- A_BOLD 5 32
+- A_INVIS 6 64
+- A_PROTECT 7 128
+- A_ALTCHARSET 8 256
+-
+- For example, on many IBM PC consoles, the underline
+- attribute collides with the foreground color blue and is
+- not available in color mode. These should have an <STRONG>ncv</STRONG>
++ <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG> <STRONG>Set</STRONG> <STRONG>by</STRONG>
++ A_STANDOUT 0 1 sgr
++ A_UNDERLINE 1 2 sgr
++ A_REVERSE 2 4 sgr
++ A_BLINK 3 8 sgr
++ A_DIM 4 16 sgr
++ A_BOLD 5 32 sgr
++ A_INVIS 6 64 sgr
++ A_PROTECT 7 128 sgr
++ A_ALTCHARSET 8 256 sgr
++ A_HORIZONTAL 9 512 sgr1
++ A_LEFT 10 1024 sgr1
++ A_LOW 11 2048 sgr1
++ A_RIGHT 12 4096 sgr1
++ A_TOP 13 8192 sgr1
++ A_VERTICAL 14 16384 sgr1
++ A_ITALIC 15 32768 sitm
++
++ For example, on many IBM PC consoles, the underline
++ attribute collides with the foreground color blue and is
++ not available in color mode. These should have an <STRONG>ncv</STRONG>
+ capability of 2.
+
+- SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
++ SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
+ and optimizes the output in favor of colors.
+
+-
+ <STRONG>Miscellaneous</STRONG>
+- If the terminal requires other than a null (zero) charac-
+- ter as a pad, then this can be given as pad. Only the
+- first character of the pad string is used. If the termi-
++ If the terminal requires other than a null (zero) charac-
++ ter as a pad, then this can be given as pad. Only the
++ first character of the pad string is used. If the termi-
+ nal does not have a pad character, specify npc. Note that
+- ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
+- though the application may set this value to something
+- other than a null, ncurses will test <STRONG>npc</STRONG> first and use
++ ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
++ though the application may set this value to something
++ other than a null, ncurses will test <STRONG>npc</STRONG> first and use
+ napms if the terminal has no pad character.
+
+- If the terminal can move up or down half a line, this can
+- be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
++ If the terminal can move up or down half a line, this can
++ be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
+ down). This is primarily useful for superscripts and sub-
+- scripts on hard-copy terminals. If a hard-copy terminal
+- can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
++ scripts on hard-copy terminals. If a hard-copy terminal
++ can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
+ (usually control L).
+
+- If there is a command to repeat a given character a given
+- number of times (to save time transmitting a large number
+- of identical characters) this can be indicated with the
+- parameterized string <STRONG>rep</STRONG>. The first parameter is the
+- character to be repeated and the second is the number of
+- times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
+- the same as `xxxxxxxxxx'.
++ If there is a command to repeat a given character a given
++ number of times (to save time transmitting a large number
++ of identical characters) this can be indicated with the
++ parameterized string <STRONG>rep</STRONG>. The first parameter is the
++ character to be repeated and the second is the number of
++ times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
++ the same as "xxxxxxxxxx".
+
+- If the terminal has a settable command character, such as
+- the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
++ If the terminal has a settable command character, such as
++ the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
+ prototype command character is chosen which is used in all
+- capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
+- bility to identify it. The following convention is sup-
+- ported on some UNIX systems: The environment is to be
+- searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
++ capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
++ bility to identify it. The following convention is sup-
++ ported on some UNIX systems: The environment is to be
++ searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
+ of the prototype character are replaced with the character
+ in the environment variable.
+
+- Terminal descriptions that do not represent a specific
++ Terminal descriptions that do not represent a specific
+ kind of known terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and
+- <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
+- that programs can complain that they do not know how to
+- talk to the terminal. (This capability does not apply to
+- <EM>virtual</EM> terminal descriptions for which the escape
++ <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
++ that programs can complain that they do not know how to
++ talk to the terminal. (This capability does not apply to
++ <EM>virtual</EM> terminal descriptions for which the escape
+ sequences are known.)
+
+- If the terminal has a ``meta key'' which acts as a shift
+- key, setting the 8th bit of any character transmitted,
+- this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
++ If the terminal has a "meta key" which acts as a shift
++ key, setting the 8th bit of any character transmitted,
++ this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
+ will assume that the 8th bit is parity and it will usually
+- be cleared. If strings exist to turn this ``meta mode''
+- on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
++ be cleared. If strings exist to turn this "meta mode" on
++ and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
+
+- If the terminal has more lines of memory than will fit on
+- the screen at once, the number of lines of memory can be
+- indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
++ If the terminal has more lines of memory than will fit on
++ the screen at once, the number of lines of memory can be
++ indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
+ number of lines is not fixed, but that there is still more
+ memory than fits on the screen.
+
+ If the terminal is one of those supported by the UNIX vir-
+- tual terminal protocol, the terminal number can be given
++ tual terminal protocol, the terminal number can be given
+ as <STRONG>vt</STRONG>.
+
+ Media copy strings which control an auxiliary printer con-
+ nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con-
+- tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
+- turn on the printer. When the printer is on, all text
+- sent to the terminal will be sent to the printer. It is
++ tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
++ turn on the printer. When the printer is on, all text
++ sent to the terminal will be sent to the printer. It is
+ undefined whether the text is also displayed on the termi-
+ nal screen when the printer is on. A variation <STRONG>mc5p</STRONG> takes
+ one parameter, and leaves the printer on for as many char-
+- acters as the value of the parameter, then turns the
+- printer off. The parameter should not exceed 255. All
++ acters as the value of the parameter, then turns the
++ printer off. The parameter should not exceed 255. All
+ text, including <STRONG>mc4</STRONG>, is transparently passed to the
+ printer while an <STRONG>mc5p</STRONG> is in effect.
+
+-
+ <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
+- Hazeltine terminals, which do not allow `~' characters to
++ Hazeltine terminals, which do not allow "~" characters to
+ be displayed should indicate <STRONG>hz</STRONG>.
+
+ Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
+@@ -2147,10 +2253,10 @@
+ Teleray terminals, where tabs turn all characters moved
+ over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
+ Note: the variable indicating this is now
+- `dest_tabs_magic_smso'; in older versions, it was tel-
++ "dest_tabs_magic_smso"; in older versions, it was tel-
+ eray_glitch. This glitch is also taken to mean that it is
+- not possible to position the cursor on top of a ``magic
+- cookie'', that to erase standout mode it is instead neces-
++ not possible to position the cursor on top of a "magic
++ cookie", that to erase standout mode it is instead neces-
+ sary to use delete and insert line. The ncurses implemen-
+ tation ignores this glitch.
+
+@@ -2159,13 +2265,12 @@
+ ing that the f1 key is used for escape and f2 for control
+ C. (Only certain Superbees have this problem, depending
+ on the ROM.) Note that in older terminfo versions, this
+- capability was called `beehive_glitch'; it is now
+- `no_esc_ctl_c'.
++ capability was called "beehive_glitch"; it is now
++ "no_esc_ctl_c".
+
+ Other specific terminal problems may be corrected by
+ adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
+
+-
+ <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
+ If there are two very similar terminals, one (the variant)
+ can be defined as being just like the other (the base)
+@@ -2183,14 +2288,13 @@
+ the use reference that imports it, where <EM>xx</EM> is the capa-
+ bility. For example, the entry
+
+- 2621-nl, smkx@, rmkx@, use=2621,
++ 2621-nl, smkx@, rmkx@, use=2621,
+
+ defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
+ capabilities, and hence does not turn on the function key
+ labels when in visual mode. This is useful for different
+ modes for a terminal, or for different user preferences.
+
+-
+ <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
+ Long terminfo entries are unlikely to be a problem; to
+ date, no entry has even approached terminfo's 4096-byte
+@@ -2229,21 +2333,21 @@
+ libraries strip off the final newline, too (GNU termcap
+ does not). Now suppose:
+
+- * a termcap entry before expansion is more than 1023
+- bytes long,
++ <STRONG>o</STRONG> a termcap entry before expansion is more than 1023
++ bytes long,
+
+- * and the application has only allocated a 1k buffer,
++ <STRONG>o</STRONG> and the application has only allocated a 1k buffer,
+
+- * and the termcap library (like the one in BSD/OS 1.1
+- and GNU) reads the whole entry into the buffer, no
+- matter what its length, to see if it is the entry it
+- wants,
+-
+- * and <STRONG>tgetent()</STRONG> is searching for a terminal type that
+- either is the long entry, appears in the termcap file
+- after the long entry, or does not appear in the file
+- at all (so that <STRONG>tgetent()</STRONG> has to search the whole
+- termcap file).
++ <STRONG>o</STRONG> and the termcap library (like the one in BSD/OS 1.1
++ and GNU) reads the whole entry into the buffer, no
++ matter what its length, to see if it is the entry it
++ wants,
++
++ <STRONG>o</STRONG> and <STRONG>tgetent()</STRONG> is searching for a terminal type that
++ either is the long entry, appears in the termcap file
++ after the long entry, or does not appear in the file
++ at all (so that <STRONG>tgetent()</STRONG> has to search the whole
++ termcap file).
+
+ Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack,
+ and probably core dump the program. Programs like telnet
+@@ -2288,61 +2392,72 @@
+
+ </PRE>
+ <H2>EXTENSIONS</H2><PRE>
+- Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
+- SVr4, do not interpret the %A and %O operators in parame-
++ Searching for terminal descriptions in <STRONG>$HOME/.terminfo</STRONG> and
++ TERMINFO_DIRS is not supported by older implementations.
++
++ Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
++ SVr4, do not interpret the %A and %O operators in parame-
+ ter strings.
+
+- SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
+- while in an alternate-character-set mode (such modes may,
+- among other things, map CR and NL to characters that do
+- not trigger local motions). The <STRONG>ncurses</STRONG> implementation
+- ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
+- bility that an XPG4 implementation making the opposite
+- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
++ SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
++ while in an alternate-character-set mode (such modes may,
++ among other things, map CR and NL to characters that do
++ not trigger local motions). The <STRONG>ncurses</STRONG> implementation
++ ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
++ bility that an XPG4 implementation making the opposite
++ interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
+ to have <STRONG>msgr</STRONG> turned off.
+
+- The <STRONG>ncurses</STRONG> library handles insert-character and insert-
++ The <STRONG>ncurses</STRONG> library handles insert-character and insert-
+ character modes in a slightly non-standard way to get bet-
+- ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
++ ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+ subsection above.
+
+- The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
+- <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
++ The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
++ <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
+ standard. They are deduced from the documentation for the
+ AT&amp;T 505 terminal.
+
+- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
+- wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
+- and emulators like xterm that can return mouse-tracking
++ Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
++ wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
++ and emulators like xterm that can return mouse-tracking
+ information in the keyboard-input stream.
+
+- Different commercial ports of terminfo and curses support
+- different subsets of the XSI Curses standard and (in some
++ X/Open Curses does not mention italics. Portable applica-
++ tions must assume that numeric capabilities are signed
++ 16-bit values. This includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (ncv)
++ capability. The 32768 mask value used for italics with
++ ncv can be confused with an absent or cancelled ncv. If
++ italics should work with colors, then the ncv value must
++ be specified, even if it is zero.
++
++ Different commercial ports of terminfo and curses support
++ different subsets of the XSI Curses standard and (in some
+ cases) different extension sets. Here is a summary, accu-
+ rate as of October 1995:
+
+ <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
+ ties.
+
+- <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
++ <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
+ extended string capability (<STRONG>set_pglen</STRONG>).
+
+- <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
+- minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
+- numerics with <STRONG>width_status_line</STRONG>; and the strings with
++ <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
++ minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
++ numerics with <STRONG>width_status_line</STRONG>; and the strings with
+ <STRONG>prtr_non</STRONG>.
+
+- <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
++ <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
+ numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func-
+- tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
++ tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
+ <STRONG>label_off</STRONG>, plus some incompatible extensions in the string
+ table.
+
+- <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
+- through 63, plus a number of incompatible string table
++ <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
++ through 63, plus a number of incompatible string table
+ extensions.
+
+- <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
++ <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
+
+
+ </PRE>
+@@ -2353,7 +2468,7 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3.html">printf(3)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
++ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+ <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.
+
+
+Index: doc/html/man/tic.1m.html
+--- ncurses-5.9/doc/html/man/tic.1m.html 2011-04-04 22:46:51.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/tic.1m.html 2014-08-16 20:43:15.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: tic.1m,v 1.47 2010/12/04 18:38:55 tom Exp @
++ * @Id: tic.1m,v 1.60 2014/05/24 22:00:11 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -52,60 +52,135 @@
+
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+- <STRONG>tic</STRONG> [<STRONG>-1CGILNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>subset</EM>]
+- [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
++ <STRONG>tic</STRONG> [<STRONG>-01CDGIKLNTUVacfgrstx</STRONG>] [<STRONG>-e</STRONG> <EM>names</EM>] [<STRONG>-o</STRONG> <EM>dir</EM>] [<STRONG>-R</STRONG> <EM>sub-</EM>
++ <EM>set</EM>] [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-w</STRONG>[<EM>n</EM>]] <EM>file</EM>
+
+
+ </PRE>
+ <H2>DESCRIPTION</H2><PRE>
+- The command <STRONG>tic</STRONG> translates a <STRONG>terminfo</STRONG> file from source
++ The <STRONG>tic</STRONG> command translates a <STRONG>terminfo</STRONG> file from source
+ format into compiled format. The compiled format is nec-
+ essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+
+- The results are normally placed in the system terminfo
+- directory <STRONG>/usr/share/terminfo</STRONG>. There are two ways to
+- change this behavior.
++ As described in <STRONG><A HREF="term.5.html">term(5)</A></STRONG>, the database may be either a
++ directory tree (one file per terminal entry) or a hashed
++ database (one record per entry). The <STRONG>tic</STRONG> command writes
++ only one type of entry, depending on how it was built:
++
++ <STRONG>o</STRONG> For directory trees, the top-level directory, e.g.,
++ /usr/share/terminfo, specifies the location of the
++ database.
++
++ <STRONG>o</STRONG> For hashed databases, a filename is needed. If the
++ given file is not found by that name, but can be found
++ by adding the suffix ".db", then that is used.
++
++ The default name for the hashed database is the same
++ as the default directory name (only adding a ".db"
++ suffix).
++
++ In either case (directory or hashed database), <STRONG>tic</STRONG> will
++ create the container if it does not exist. For a direc-
++ tory, this would be the "terminfo" leaf, versus a "ter-
++ minfo.db" file.
+
+- First, you may override the system default by setting the
+- variable <STRONG>TERMINFO</STRONG> in your shell environment to a valid
+- (existing) directory name.
+-
+- Secondly, if <STRONG>tic</STRONG> cannot get access to <EM>/usr/share/terminfo</EM>
+- or your TERMINFO directory, it looks for the directory
+- <EM>$HOME/.terminfo</EM>; if that directory exists, the entry is
+- placed there.
++ The results are normally placed in the system terminfo
++ database <STRONG>/usr/share/terminfo</STRONG>. The compiled terminal
++ description can be placed in a different terminfo data-
++ base. There are two ways to achieve this:
++
++ <STRONG>o</STRONG> First, you may override the system default either by
++ using the <STRONG>-o</STRONG> option, or by setting the variable <STRONG>TER-</STRONG>
++ <STRONG>MINFO</STRONG> in your shell environment to a valid database
++ location.
++
++ <STRONG>o</STRONG> Secondly, if <STRONG>tic</STRONG> cannot write in <EM>/usr/share/terminfo</EM>
++ or the location specified using your TERMINFO vari-
++ able, it looks for the directory <EM>$HOME/.terminfo</EM> (or
++ hashed database <EM>$HOME/.terminfo.db)</EM>; if that location
++ exists, the entry is placed there.
+
+ Libraries that read terminfo entries are expected to check
+- for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if
+- TERMINFO is not set, and finally look in <EM>/usr/share/ter-</EM>
+- <EM>minfo</EM>.
++ in succession
++
++ <STRONG>o</STRONG> a location specified with the TERMINFO environment
++ variable,
++
++ <STRONG>o</STRONG> <EM>$HOME/.terminfo</EM>,
++
++ <STRONG>o</STRONG> directories listed in the TERMINFO_DIRS environment
++ variable,
++
++ <STRONG>o</STRONG> a compiled-in list of directories
++ (/usr/local/ncurses/share/terminfo:/usr/share/ter-
++ minfo), and
++
++ <STRONG>o</STRONG> the system terminfo database (<EM>/usr/share/terminfo</EM>).
++
++ <STRONG>OPTIONS</STRONG>
++ <STRONG>-0</STRONG> restricts the output to a single line
+
+ <STRONG>-1</STRONG> restricts the output to a single column
+
+ <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities
+ rather than discarding them. Capabilities are com-
+- mented by prefixing them with a period. This sets
+- the <STRONG>-x</STRONG> option, because it treats the commented-out
+- entries as user-defined names. If the source is
+- termcap, accept the 2-character names required by
++ mented by prefixing them with a period. This sets
++ the <STRONG>-x</STRONG> option, because it treats the commented-out
++ entries as user-defined names. If the source is
++ termcap, accept the 2-character names required by
+ version 6. Otherwise these are ignored.
+
+- <STRONG>-C</STRONG> Force source translation to termcap format. Note:
+- this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
++ <STRONG>-C</STRONG> Force source translation to termcap format. Note:
++ this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
+ that it does not merely translate capability names,
+- but also translates terminfo strings to termcap
++ but also translates terminfo strings to termcap
+ format. Capabilities that are not translatable are
+- left in the entry under their terminfo names but
+- commented out with two preceding dots.
++ left in the entry under their terminfo names but
++ commented out with two preceding dots. The actual
++ format used incorporates some improvements for
++ escaped characters from terminfo format. For a
++ stricter BSD-compatible translation, add the <STRONG>-K</STRONG>
++ option.
++
++ If this is combined with <STRONG>-c</STRONG>, <STRONG>tic</STRONG> makes additional
++ checks to report cases where the terminfo values do
++ not have an exact equivalent in termcap form. For
++ example:
++
++ <STRONG>o</STRONG> <STRONG>sgr</STRONG> usually will not convert, because termcap
++ lacks the ability to work with more than two
++ parameters, and because termcap lacks many of
++ the arithmetic/logical operators used in ter-
++ minfo.
++
++ <STRONG>o</STRONG> capabilities with more than one delay or with
++ delays before the end of the string will not
++ convert completely.
+
+ <STRONG>-c</STRONG> tells <STRONG>tic</STRONG> to only check <EM>file</EM> for errors, including
+ syntax problems and bad use links. If you specify
+ <STRONG>-C</STRONG> (<STRONG>-I</STRONG>) with this option, the code will print warn-
+ ings about entries which, after use resolution, are
+ more than 1023 (4096) bytes long. Due to a fixed
+- buffer length in older termcap libraries (and a
+- documented limit in terminfo), these entries may
+- cause core dumps.
++ buffer length in older termcap libraries, as well
++ as buggy checking for the buffer length (and a doc-
++ umented limit in terminfo), these entries may cause
++ core dumps with other implementations.
++
++ <STRONG>tic</STRONG> checks string capabilities to ensure that those
++ with parameters will be valid expressions. It does
++ this check only for the predefined string capabili-
++ ties; those which are defined with the <STRONG>-x</STRONG> option
++ are ignored.
++
++ <STRONG>-D</STRONG> tells <STRONG>tic</STRONG> to print the database locations that it
++ knows about, and exit. The first location shown is
++ the one to which it would write compiled terminal
++ descriptions. If <STRONG>tic</STRONG> is not able to find a
++ writable database location according to the rules
++ summarized above, it will print a diagnostic and
++ exit with an error rather than printing a list of
++ database locations.
+
+ <STRONG>-e</STRONG> <EM>names</EM>
+ Limit writes and translations to the following
+@@ -130,128 +205,133 @@
+
+ <STRONG>-I</STRONG> Force source translation to terminfo format.
+
+- <STRONG>-L</STRONG> Force source translation to terminfo format using
++ <STRONG>-K</STRONG> Suppress some longstanding ncurses extensions to
++ termcap format, e.g., "\s" for space.
++
++ <STRONG>-L</STRONG> Force source translation to terminfo format using
+ the long C variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
+
+ <STRONG>-N</STRONG> Disable smart defaults. Normally, when translating
+ from termcap to terminfo, the compiler makes a num-
+- ber of assumptions about the defaults of string
+- capabilities <STRONG>reset1_string</STRONG>, <STRONG>carriage_return</STRONG>, <STRONG>cur-</STRONG>
+- <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>, <STRONG>new-</STRONG>
+- <STRONG>line</STRONG>, <STRONG>key_backspace</STRONG>, <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then
+- attempts to use obsolete termcap capabilities to
++ ber of assumptions about the defaults of string
++ capabilities <STRONG>reset1_string</STRONG>, <STRONG>carriage_return</STRONG>, <STRONG>cur-</STRONG>
++ <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>, <STRONG>new-</STRONG>
++ <STRONG>line</STRONG>, <STRONG>key_backspace</STRONG>, <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then
++ attempts to use obsolete termcap capabilities to
+ deduce correct values. It also normally suppresses
+ output of obsolete termcap capabilities such as <STRONG>bs</STRONG>.
+- This option forces a more literal translation that
++ This option forces a more literal translation that
+ also preserves the obsolete capabilities.
+
+- <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given directory. Over-
+- rides the TERMINFO environment variable.
++ <STRONG>-o</STRONG><EM>dir</EM> Write compiled entries to given database location.
++ Overrides the TERMINFO environment variable.
+
+ <STRONG>-R</STRONG><EM>subset</EM>
+- Restrict output to a given subset. This option is
+- for use with archaic versions of terminfo like
++ 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 out-
++ the full set of SVR4/XSI Curses terminfo; and out-
+ right broken ports like AIX 3.x that have their own
+- extensions incompatible with SVr4/XSI. Available
++ extensions incompatible with SVr4/XSI. Available
+ subsets are "SVr1", "Ultrix", "HP", "BSD" and
+ "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
+
+- <STRONG>-r</STRONG> Force entry resolution (so there are no remaining
+- tc capabilities) even when doing translation to
+- termcap format. This may be needed if you are
+- preparing a termcap file for a termcap library
+- (such as GNU termcap through version 1.3 or BSD
+- termcap through 4.3BSD) that does not handle multi-
+- ple tc capabilities per entry.
+-
+- <STRONG>-s</STRONG> Summarize the compile by showing the directory into
+- which entries are written, and the number of
+- entries which are compiled.
++ <STRONG>-r</STRONG> Force entry resolution (so there are no remaining
++ tc capabilities) even when doing translation to
++ termcap format. This may be needed if you are pre-
++ paring a termcap file for a termcap library (such
++ as GNU termcap through version 1.3 or BSD termcap
++ through 4.3BSD) that does not handle multiple tc
++ capabilities per entry.
++
++ <STRONG>-s</STRONG> Summarize the compile by showing the database loca-
++ tion into which entries are written, and the number
++ of entries which are compiled.
+
+ <STRONG>-T</STRONG> eliminates size-restrictions on the generated text.
+- This is mainly useful for testing and analysis,
+- since the compiled descriptions are limited (e.g.,
++ This is mainly useful for testing and analysis,
++ since the compiled descriptions are limited (e.g.,
+ 1023 for termcap, 4096 for terminfo).
+
+- <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities.
++ <STRONG>-t</STRONG> tells <STRONG>tic</STRONG> to discard commented-out capabilities.
+ Normally when translating from terminfo to termcap,
+ untranslatable capabilities are commented-out.
+
+- <STRONG>-U</STRONG> tells <STRONG>tic</STRONG> to not post-process the data after parsing
+- the source file. Normally, it infers data which is
+- commonly missing in older terminfo data, or in term-
++ <STRONG>-U</STRONG> tells <STRONG>tic</STRONG> to not post-process the data after parsing
++ the source file. Normally, it infers data which is
++ commonly missing in older terminfo data, or in term-
+ caps.
+
+ <STRONG>-V</STRONG> reports the version of ncurses which was used in this
+ program, and exits.
+
+- <STRONG>-v</STRONG><EM>n</EM> specifies that (verbose) output be written to stan-
+- dard error trace information showing <STRONG>tic</STRONG>'s progress.
+- The optional parameter <EM>n</EM> is a number from 1 to 10,
+- inclusive, indicating the desired level of detail of
+- information. If <EM>n</EM> is omitted, the default level is
+- 1. If <EM>n</EM> is specified and greater than 1, the level
++ <STRONG>-v</STRONG><EM>n</EM> specifies that (verbose) output be written to stan-
++ dard error trace information showing <STRONG>tic</STRONG>'s progress.
++ The optional parameter <EM>n</EM> is a number from 1 to 10,
++ inclusive, indicating the desired level of detail of
++ information. If <EM>n</EM> is omitted, the default level is
++ 1. If <EM>n</EM> is specified and greater than 1, the level
+ of detail is increased.
+
+- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
+- optional. If it is omitted, it defaults to 60.
++ The debug flag levels are as follows:
+
+- <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is,
+- if you supply a capability name which <STRONG>tic</STRONG> does not
+- recognize, it will infer its type (boolean, number or
+- string) from the syntax and make an extended table
+- entry for that. User-defined capability strings
+- whose name begins with ``k'' are treated as function
+- keys.
++ 1 Names of files created and linked
+
+- <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
+- in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each description
+- in the file describes the capabilities of a particu-
+- lar terminal.
++ 2 Information related to the "use" facility
+
+- The debug flag levels are as follows:
++ 3 Statistics from the hashing algorithm
+
+- 1 Names of files created and linked
++ 5 String-table memory allocations
+
+- 2 Information related to the ``use'' facility
++ 7 Entries into the string-table
+
+- 3 Statistics from the hashing algorithm
++ 8 List of tokens encountered by scanner
+
+- 5 String-table memory allocations
++ 9 All values computed in construction of the
++ hash table
+
+- 7 Entries into the string-table
++ If the debug level <EM>n</EM> is not given, it is taken to be
++ one.
+
+- 8 List of tokens encountered by scanner
++ <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output. The parameter is
++ optional. If it is omitted, it defaults to 60.
+
+- 9 All values computed in construction of the hash ta-
+- ble
++ <STRONG>-x</STRONG> Treat unknown capabilities as user-defined. That is,
++ if you supply a capability name which <STRONG>tic</STRONG> does not
++ recognize, it will infer its type (boolean, number or
++ string) from the syntax and make an extended table
++ entry for that. User-defined capability strings
++ whose name begins with "k" are treated as function
++ keys.
+
+- If the debug level <EM>n</EM> is not given, it is taken to be one.
++ <STRONG>PARAMETERS</STRONG>
++ <EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
++ in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each descrip-
++ tion in the file describes the capabilities of a
++ particular terminal.
++
++ If <EM>file</EM> is "-", then the data is read from the
++ standard input. The <EM>file</EM> parameter may also be the
++ path of a character-device.
+
++ <STRONG>PROCESSING</STRONG>
+ All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
+ umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capabil-
+ ity.
+
+- When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
+- entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
+- from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
+- created from <EM>file</EM> will be used first. If the environment
+- variable <STRONG>TERMINFO</STRONG> is set, that directory is searched
+- instead of <STRONG>/usr/share/terminfo</STRONG>.) <STRONG>tic</STRONG> duplicates the capa-
+- bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
+- exception of those capabilities that explicitly are
++ When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
++ entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
++ from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
++ created from <EM>file</EM> will be used first. <STRONG>tic</STRONG> duplicates the
++ capabilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
++ exception of those capabilities that explicitly are
+ defined in the current entry.
+
+- When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a
+- <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field, any canceled capabilities in
+- <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
++ When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a
++ <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field, any canceled capabilities in
++ <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
+ for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
+
+- If the environment variable <STRONG>TERMINFO</STRONG> is set, the compiled
+- results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>.
+-
+ Total compiled entries cannot exceed 4096 bytes. The name
+ field cannot exceed 512 bytes. Terminal names exceeding
+ the maximum alias length (32 characters on systems with
+@@ -266,35 +346,35 @@
+ treated description fields with no whitespace in them as
+ additional aliases or short names. This <STRONG>tic</STRONG> does not do
+ that, but it does warn when description fields may be
+- treated that way and check them for dangerous characters.
++ treated that way and check them for dangerous characters.
+
+
+ </PRE>
+ <H2>EXTENSIONS</H2><PRE>
+- Unlike the stock SVr4 <STRONG>tic</STRONG> command, this implementation can
+- actually compile termcap sources. In fact, entries in
+- terminfo and termcap syntax can be mixed in a single
+- source file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap
+- names taken to be equivalent to terminfo names.
++ Unlike the SVr4 <STRONG>tic</STRONG> command, this implementation can actu-
++ ally compile termcap sources. In fact, entries in ter-
++ minfo and termcap syntax can be mixed in a single source
++ file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap names taken
++ to be equivalent to terminfo names.
+
+- The SVr4 manual pages are not clear on the resolution
+- rules for <STRONG>use</STRONG> capabilities. This implementation of <STRONG>tic</STRONG>
++ The SVr4 manual pages are not clear on the resolution
++ rules for <STRONG>use</STRONG> capabilities. This implementation of <STRONG>tic</STRONG>
+ will find <STRONG>use</STRONG> targets anywhere in the source file, or any-
+- where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> is
+- defined), or in the user's <EM>$HOME/.terminfo</EM> directory (if
+- it exists), or (finally) anywhere in the system's file
+- tree of compiled entries.
++ where in the file tree rooted at <STRONG>TERMINFO</STRONG> (if <STRONG>TERMINFO</STRONG> is
++ defined), or in the user's <EM>$HOME/.terminfo</EM> database (if it
++ exists), or (finally) anywhere in the system's file tree
++ of compiled entries.
+
+- The error messages from this <STRONG>tic</STRONG> have the same format as
+- GNU C error messages, and can be parsed by GNU Emacs's
++ The error messages from this <STRONG>tic</STRONG> have the same format as
++ GNU C error messages, and can be parsed by GNU Emacs's
+ compile facility.
+
+- The <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-o</STRONG>, <STRONG>-r</STRONG>,
+- <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under SVr4. The
+- SVr4 <STRONG>-c</STRONG> mode does not report bad use links.
++ The <STRONG>-0</STRONG>, <STRONG>-1</STRONG>, <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>,
++ <STRONG>-o</STRONG>, <STRONG>-r</STRONG>, <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under
++ SVr4. The SVr4 <STRONG>-c</STRONG> mode does not report bad use links.
+
+- System V does not compile entries to or read entries from
+- your <EM>$HOME/.terminfo</EM> directory unless TERMINFO is explic-
++ System V does not compile entries to or read entries from
++ your <EM>$HOME/.terminfo</EM> database unless TERMINFO is explic-
+ itly set to it.
+
+
+@@ -306,10 +386,10 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
+- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
++ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+ </PRE>
+Index: doc/html/man/toe.1m.html
+--- ncurses-5.9/doc/html/man/toe.1m.html 2011-04-04 22:46:51.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/toe.1m.html 2014-08-16 20:43:15.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: toe.1m,v 1.23 2010/12/04 18:40:45 tom Exp @
++ * @Id: toe.1m,v 1.26 2012/01/01 00:40:51 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -52,7 +52,7 @@
+
+ </PRE>
+ <H2>SYNOPSIS</H2><PRE>
+- <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahuUV</STRONG>] <EM>file...</EM>
++ <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-ahsuUV</STRONG>] <EM>file...</EM>
+
+
+ </PRE>
+@@ -71,6 +71,14 @@
+ ncurses would search, rather than only the first
+ one that it finds.
+
++ If the <STRONG>-s</STRONG> is also given, <STRONG>toe</STRONG> adds a column to the
++ report, showing (like <STRONG>conflict(1)</STRONG>) which entries
++ which belong to a given terminal database. An "*"
++ marks entries which differ, and "+" marks equiva-
++ lent entries.
++
++ <STRONG>-s</STRONG> sort the output by the entry names.
++
+ <STRONG>-u</STRONG> <EM>file</EM>
+ says to write a report to the standard output,
+ listing dependencies in the given terminfo/termcap
+@@ -111,7 +119,7 @@
+ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/tput.1.html
+--- ncurses-5.9/doc/html/man/tput.1.html 2011-04-04 22:46:51.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/tput.1.html 2014-08-16 20:43:15.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ * t
+ ****************************************************************************
+- * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: tput.1,v 1.29 2010/12/04 18:41:07 tom Exp @
++ * @Id: tput.1,v 1.32 2012/07/14 21:06:45 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -66,7 +66,7 @@
+ <H2>DESCRIPTION</H2><PRE>
+ The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the
+ values of terminal-dependent capabilities and information
+- available to the shell (see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>), to initialize or reset
++ available to the shell (see <STRONG>sh(1)</STRONG>), to initialize or reset
+ the terminal, or return the long name of the requested
+ terminal type. The result depends upon the capability's
+ type:
+@@ -87,7 +87,7 @@
+
+ Before using a value returned on the standard output, the
+ application should test the exit code (e.g., <STRONG>$?</STRONG>, see
+- <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG>
++ <STRONG>sh(1)</STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG>
+ <STRONG>NOSTICS</STRONG> sections.) For a complete list of capabilities
+ and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+
+@@ -95,54 +95,53 @@
+ option is unnecessary, because the default is taken
+ from the environment variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is spec-
+ ified, then the shell variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG>
+- will be ignored,and the operating system will not
+- be queried for the actual screen size.
++ will also be ignored.
+
+ <EM>capname</EM>
+- indicates the capability from the <STRONG>terminfo</STRONG>
+- database. When <STRONG>termcap</STRONG> support is compiled in, the
++ indicates the capability from the <STRONG>terminfo</STRONG> data-
++ base. When <STRONG>termcap</STRONG> support is compiled in, the
+ <STRONG>termcap</STRONG> name for the capability is also accepted.
+
+- <EM>parms</EM> If the capability is a string that takes parame-
++ <EM>parms</EM> If the capability is a string that takes parame-
+ ters, the arguments <EM>parms</EM> will be instantiated into
+ the string.
+
+- Most parameters are numbers. Only a few terminfo
++ Most parameters are numbers. Only a few terminfo
+ capabilities require string parameters; <STRONG>tput</STRONG> uses a
+ table to decide which to pass as strings. Normally
+- <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution.
++ <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution.
+ If no parameters are given for the capability, <STRONG>tput</STRONG>
+- writes the string without performing the
+- substitution.
++ writes the string without performing the substitu-
++ tion.
+
+- <STRONG>-S</STRONG> allows more than one capability per invocation of
++ <STRONG>-S</STRONG> allows more than one capability per invocation of
+ <STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from
+ the standard input instead of from the command line
+- (see example). Only one <EM>capname</EM> is allowed per
+- line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
+- and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
++ (see example). Only one <EM>capname</EM> is allowed per
++ line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
++ and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
+ CODES section).
+
+ Again, <STRONG>tput</STRONG> uses a table and the presence of param-
+- eters in its input to decide whether to use <STRONG>tparm</STRONG>
++ eters in its input to decide whether to use <STRONG>tparm</STRONG>
+ (3x), and how to interpret the parameters.
+
+- <STRONG>-V</STRONG> reports the version of ncurses which was used in
++ <STRONG>-V</STRONG> reports the version of ncurses which was used in
+ this program, and exits.
+
+- <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry
++ <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry
+ for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above),
+ the following will occur:
+
+- (1) if present, the terminal's initialization
+- strings will be output as detailed in the
+- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM>
++ (1) if present, the terminal's initialization
++ strings will be output as detailed in the
++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initializa-</EM>
+ <EM>tion</EM>,
+
+- (2) any delays (e.g., newline) specified in the
++ (2) any delays (e.g., newline) specified in the
+ entry will be set in the tty driver,
+
+- (3) tabs expansion will be turned on or off
++ (3) tabs expansion will be turned on or off
+ according to the specification in the entry,
+ and
+
+@@ -153,22 +152,22 @@
+ for any of the four above activities, that activity
+ will silently be skipped.
+
+- <STRONG>reset</STRONG> Instead of putting out initialization strings, the
+- terminal's reset strings will be output if present
+- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not
+- present, but initialization strings are, the ini-
+- tialization strings will be output. Otherwise,
++ <STRONG>reset</STRONG> Instead of putting out initialization strings, the
++ terminal's reset strings will be output if present
++ (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not
++ present, but initialization strings are, the ini-
++ tialization strings will be output. Otherwise,
+ <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
+
+ <STRONG>longname</STRONG>
+- If the <STRONG>terminfo</STRONG> database is present and an entry
+- for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
++ If the <STRONG>terminfo</STRONG> database is present and an entry
++ for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
+ then the long name of the terminal will be put out.
+ The long name is the last name in the first line of
+ the terminal's description in the <STRONG>terminfo</STRONG> database
+ [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
+
+- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
++ If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
+ same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. See <STRONG>tset</STRONG> for comparison, which
+ has similar behavior.
+
+@@ -177,13 +176,13 @@
+ <H2>EXAMPLES</H2><PRE>
+ <STRONG>tput</STRONG> <STRONG>init</STRONG>
+ Initialize the terminal according to the type of ter-
+- minal in the environmental variable <STRONG>TERM</STRONG>. This com-
+- mand should be included in everyone's .profile after
++ minal in the environmental variable <STRONG>TERM</STRONG>. This com-
++ mand should be included in everyone's .profile after
+ the environmental variable <STRONG>TERM</STRONG> has been exported, as
+- illustrated on the <STRONG><A HREF="profile.5.html">profile(5)</A></STRONG> manual page.
++ illustrated on the <STRONG>profile(5)</STRONG> manual page.
+
+ <STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
+- Reset an AT&amp;T 5620 terminal, overriding the type of
++ Reset an AT&amp;T 5620 terminal, overriding the type of
+ terminal in the environmental variable <STRONG>TERM</STRONG>.
+
+ <STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
+@@ -263,29 +262,29 @@
+ type of <EM>capname</EM>:
+
+ <EM>boolean</EM>
+- a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
++ a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
+
+- <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
+- for this terminal <EM>type</EM> (the value of <EM>capname</EM>
+- is returned on standard output); a value of <STRONG>1</STRONG>
++ <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
++ for this terminal <EM>type</EM> (the value of <EM>capname</EM>
++ is returned on standard output); a value of <STRONG>1</STRONG>
+ is set if <EM>capname</EM> is not defined for this ter-
+- minal <EM>type</EM> (nothing is written to standard
++ minal <EM>type</EM> (nothing is written to standard
+ output).
+
+ <EM>integer</EM>
+- a value of <STRONG>0</STRONG> is always set, whether or not
++ a value of <STRONG>0</STRONG> is always set, whether or not
+ <EM>capname</EM> is defined for this terminal <EM>type</EM>. To
+- determine if <EM>capname</EM> is defined for this ter-
++ determine if <EM>capname</EM> is defined for this ter-
+ minal <EM>type</EM>, the user must test the value writ-
+- ten to standard output. A value of <STRONG>-1</STRONG> means
+- that <EM>capname</EM> is not defined for this terminal
++ ten to standard output. A value of <STRONG>-1</STRONG> means
++ that <EM>capname</EM> is not defined for this terminal
+ <EM>type</EM>.
+
+- <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec-
+- tive files. In that case, the exit code is
++ <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respec-
++ tive files. In that case, the exit code is
+ set to 4 + <STRONG>errno</STRONG>.
+
+- Any other exit code indicates an error; see the DIAGNOS-
++ Any other exit code indicates an error; see the DIAGNOS-
+ TICS section.
+
+
+@@ -294,11 +293,10 @@
+ <STRONG>tput</STRONG> prints the following error messages and sets the cor-
+ responding exit codes.
+
+-
+ exit code error message
+ ---------------------------------------------------------------------
+- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
+- the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
++ <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
++ the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
+ <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
+ <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
+ <STRONG>2</STRONG> usage error
+@@ -310,25 +308,37 @@
+
+ </PRE>
+ <H2>PORTABILITY</H2><PRE>
+- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
+- tion features used in the <STRONG>cup</STRONG> example, are not supported
++ The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
++ tion features used in the <STRONG>cup</STRONG> example, are not supported
+ in BSD curses or in AT&amp;T/USL curses before SVr4.
+
+- X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and
+- <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM>
++ X/Open documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and
++ <STRONG>reset</STRONG>. In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-</EM>
+ <EM>name</EM> support. Other implementations of <STRONG>tput</STRONG> on SVr4-based
+ systems such as Solaris, IRIX64 and HPUX as well as others
+- such as AIX and Tru64 provide support for <EM>capname</EM>
+- operands. A few platforms such as FreeBSD and NetBSD rec-
+- ognize termcap names rather than terminfo capability names
+- in their respective <STRONG>tput</STRONG> commands.
++ such as AIX and Tru64 provide support for <EM>capname</EM> oper-
++ ands.
++
++ A few platforms such as FreeBSD and NetBSD recognize term-
++ cap names rather than terminfo capability names in their
++ respective <STRONG>tput</STRONG> commands.
++
++ Most implementations which provide support for <EM>capname</EM> op-
++ erands use the <EM>tparm</EM> function to expand parameters in it.
++ That function expects a mixture of numeric and string
++ parameters, requiring <STRONG>tput</STRONG> to know which type to use.
++ This implementation uses a table to determine that for the
++ standard <EM>capname</EM> operands, and an internal library func-
++ tion to analyze nonstandard <EM>capname</EM> operands. Other
++ implementations may simply guess that an operand contain-
++ ing only digits is intended to be a number.
+
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
++ <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/tset.1.html
+--- ncurses-5.9/doc/html/man/tset.1.html 2011-04-04 22:46:52.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/tset.1.html 2014-08-16 20:43:15.000000000 +0000
+@@ -1,7 +1,7 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************
+- * @Id: tset.1,v 1.25 2010/12/04 18:38:55 tom Exp @
++ * @Id: tset.1,v 1.29 2013/12/21 22:15:53 tom Exp @
+ -->
+ <HTML>
+ <HEAD>
+@@ -74,14 +74,14 @@
+ tion, <EM>getty</EM> does this job by setting <STRONG>TERM</STRONG> according to the
+ type passed to it by <EM>/etc/inittab</EM>.)
+
+- 4. The default terminal type, ``unknown''.
++ 4. The default terminal type, "unknown".
+
+ If the terminal type was not specified on the command-
+ line, the <STRONG>-m</STRONG> option mappings are then applied (see the
+ section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information).
+ Then, if the terminal type begins with a question mark
+- (``?''), the user is prompted for confirmation of the ter-
+- minal type. An empty response confirms the type, or,
++ ("?"), the user is prompted for confirmation of the termi-
++ nal type. An empty response confirms the type, or,
+ another type can be entered to specify a new type. Once
+ the terminal type has been determined, the terminfo entry
+ for the terminal is retrieved. If no terminfo entry is
+@@ -116,8 +116,9 @@
+
+ The options are as follows:
+
+- <STRONG>-c</STRONG> Set control characters and modes. <STRONG>-e</STRONG> Set the erase
+- character to <EM>ch</EM>.
++ <STRONG>-c</STRONG> Set control characters and modes.
++
++ <STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
+
+ <STRONG>-I</STRONG> Do not send the terminal or tab initialization
+ strings to the terminal.
+@@ -126,36 +127,35 @@
+
+ <STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
+
+- <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
++ <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
+ See the section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more infor-
+ mation.
+
+- <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
++ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
+ and line kill characters. Normally <STRONG>tset</STRONG> displays the
+- values for control characters which differ from the
++ values for control characters which differ from the
+ system's default values.
+
+- <STRONG>-q</STRONG> The terminal type is displayed to the standard out-
+- put, and the terminal is not initialized in any way.
++ <STRONG>-q</STRONG> The terminal type is displayed to the standard out-
++ put, and the terminal is not initialized in any way.
+ The option `-' by itself is equivalent but archaic.
+
+ <STRONG>-r</STRONG> Print the terminal type to the standard error output.
+
+ <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
+ the environment variable <STRONG>TERM</STRONG> to the standard output.
+- See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
++ See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
+
+ <STRONG>-V</STRONG> reports the version of ncurses which was used in this
+ program, and exits.
+
+- <STRONG>-w</STRONG> Resize the window to match the size deduced via
++ <STRONG>-w</STRONG> Resize the window to match the size deduced via
+ <STRONG>setupterm</STRONG>. Normally this has no effect, unless
+ <STRONG>setupterm</STRONG> is not able to detect the window size.
+
+ The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be
+- entered as actual characters or by using the `hat' nota-
+- tion, i.e., control-h may be specified as ``^H'' or
+- ``^h''.
++ entered as actual characters or by using the `hat' nota-
++ tion, i.e., control-h may be specified as "^H" or "^h".
+
+
+ </PRE>
+@@ -167,7 +167,7 @@
+ When the <STRONG>-s</STRONG> option is specified, the commands to enter the
+ information into the shell's environment are written to
+ the standard output. If the <STRONG>SHELL</STRONG> environmental variable
+- ends in ``csh'', the commands are for <STRONG>csh</STRONG>, otherwise, they
++ ends in "csh", the commands are for <STRONG>csh</STRONG>, otherwise, they
+ are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset the
+ shell variable <STRONG>noglob</STRONG>, leaving it unset. The following
+ line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the
+@@ -187,21 +187,21 @@
+ terminal used on such ports.
+
+ The purpose of the <STRONG>-m</STRONG> option is to map from some set of
+- conditions to a terminal type, that is, to tell <STRONG>tset</STRONG> ``If
++ conditions to a terminal type, that is, to tell <STRONG>tset</STRONG> "If
+ I'm on this port at a particular speed, guess that I'm on
+- that kind of terminal''.
++ that kind of terminal".
+
+ The argument to the <STRONG>-m</STRONG> option consists of an optional port
+ type, an optional operator, an optional baud rate specifi-
+- cation, an optional colon (``:'') character and a terminal
++ cation, an optional colon (":") character and a terminal
+ type. The port type is a string (delimited by either the
+ operator or the colon character). The operator may be any
+- combination of ``&gt;'', ``&lt;'', ``@'', and ``!''; ``&gt;'' means
+- greater than, ``&lt;'' means less than, ``@'' means equal to
+- and ``!'' inverts the sense of the test. The baud rate is
+- specified as a number and is compared with the speed of
+- the standard error output (which should be the control
+- terminal). The terminal type is a string.
++ combination of "&gt;", "&lt;", "@", and "!"; "&gt;" means greater
++ than, "&lt;" means less than, "@" means equal to and "!"
++ inverts the sense of the test. The baud rate is specified
++ as a number and is compared with the speed of the standard
++ error output (which should be the control terminal). The
++ terminal type is a string.
+
+ If the terminal type is not specified on the command line,
+ the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
+@@ -232,8 +232,8 @@
+ argument. Also, to avoid problems with meta-characters,
+ it is suggested that the entire <STRONG>-m</STRONG> option argument be
+ placed within single quote characters, and that <STRONG>csh</STRONG> users
+- insert a backslash character (``\'') before any exclama-
+- tion marks (``!'').
++ insert a backslash character ("\") before any exclamation
++ marks ("!").
+
+
+ </PRE>
+@@ -248,14 +248,14 @@
+ <H2>COMPATIBILITY</H2><PRE>
+ The <STRONG>tset</STRONG> utility has been provided for backward-compati-
+ bility with BSD environments (under most modern UNIXes,
+- <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for
++ <STRONG>/etc/inittab</STRONG> and <STRONG>getty(1)</STRONG> can set <STRONG>TERM</STRONG> appropriately for
+ each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most
+ important use). This implementation behaves like 4.4BSD
+ tset, with a few exceptions specified here.
+
+ The <STRONG>-S</STRONG> option of BSD tset no longer works; it prints an
+ error message to stderr and dies. The <STRONG>-s</STRONG> option only sets
+- <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>. Both these changes are because the
++ <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>. Both of these changes are because the
+ <STRONG>TERMCAP</STRONG> variable is no longer supported under terminfo-
+ based <STRONG>ncurses</STRONG>, which makes <STRONG>tset</STRONG> <STRONG>-S</STRONG> useless (we made it die
+ noisily rather than silently induce lossage).
+@@ -316,10 +316,10 @@
+
+ </PRE>
+ <H2>SEE ALSO</H2><PRE>
+- <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, ter-
+- <STRONG><A HREF="minfo.5.html">minfo(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
++ <STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>,
++ <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
+
+- This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
++ This describes <STRONG>ncurses</STRONG> version 5.9 (patch 20140816).
+
+
+
+Index: doc/html/man/wresize.3x.html
+--- ncurses-5.9/doc/html/man/wresize.3x.html 2011-01-09 01:03:30.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/man/wresize.3x.html 2013-05-17 22:24:24.000000000 +0000
+@@ -1,4 +1,4 @@
+-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+ ****************************************************************************
+ * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
+Index: doc/html/ncurses-intro.html
+Prereq: 1.44
+--- ncurses-5.9/doc/html/ncurses-intro.html 2010-12-04 16:46:22.000000000 +0000
++++ ncurses-5.9-20141206/doc/html/ncurses-intro.html 2013-05-17 23:29:27.000000000 +0000
+@@ -1,8 +1,8 @@
+-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
+ <!--
+- $Id: ncurses-intro.html,v 1.44 2010/12/04 16:46:22 tom Exp $
++ $Id: ncurses-intro.html,v 1.46 2013/05/17 23:29:27 tom Exp $
+ ****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -431,6 +431,7 @@
+ Here is a sample program to motivate the discussion:
+
+ <PRE>
++#include &lt;stdlib.h&gt;
+ #include &lt;curses.h&gt;
+ #include &lt;signal.h&gt;
+
+Index: doc/ncurses-intro.doc
+--- ncurses-5.9/doc/ncurses-intro.doc 2007-03-03 23:45:04.000000000 +0000
++++ ncurses-5.9-20141206/doc/ncurses-intro.doc 2012-04-28 22:48:33.000000000 +0000
+@@ -333,6 +333,7 @@
+
+ Here is a sample program to motivate the discussion:
+ #include <curses.h>
++#include <curses.h>
+ #include <signal.h>
+
+ static void finish(int sig);
+Index: form/Makefile.in
+Prereq: 1.53
+--- ncurses-5.9/form/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/form/Makefile.in 2014-11-15 13:54:00.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.53 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.59 2014/11/15 13:54:00 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -51,14 +51,21 @@
+
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
++top_srcdir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@ @EXPORT_SYMS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -84,7 +91,7 @@
+ CPP = @CPP@
+ CFLAGS = @CFLAGS@
+
+-CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
++CPPFLAGS = -I${top_srcdir}/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -102,6 +109,8 @@
+ SHLIB_DIRS = -L../lib
+ SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
+
++RPATH_LIST = @RPATH_LIST@
++VERSIONED_SYMS = @VERSIONED_SYMS@
+ MK_SHARED_LIB = @MK_SHARED_LIB@
+
+ NCURSES_MAJOR = @NCURSES_MAJOR@
+@@ -111,7 +120,7 @@
+
+ RANLIB = @LIB_PREP@
+
+-LIBRARIES = @LIBS_TO_MAKE@
++LIBRARIES = @Libs_To_Make@
+
+ LINT = @LINT@
+ LINT_OPTS = @LINT_OPTS@
+Index: form/fld_arg.c
+Prereq: 1.12
+--- ncurses-5.9/form/fld_arg.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_arg.c 2012-06-10 00:27:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_arg.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_arg.c,v 1.13 2012/06/10 00:27:49 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -71,7 +71,7 @@
+
+ if (typ != 0 && make_arg != (void *)0)
+ {
+- typ->status |= _HAS_ARGS;
++ SetStatus(typ, _HAS_ARGS);
+ typ->makearg = make_arg;
+ typ->copyarg = copy_arg;
+ typ->freearg = free_arg;
+Index: form/fld_def.c
+Prereq: 1.38
+--- ncurses-5.9/form/fld_def.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_def.c 2014-07-26 21:08:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_def.c,v 1.38 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_def.c,v 1.41 2014/07/26 21:08:55 tom Exp $")
+
+ /* this can't be readonly */
+ static FIELD default_field =
+@@ -53,7 +53,7 @@
+ (int)' ', /* pad */
+ A_NORMAL, /* fore */
+ A_NORMAL, /* back */
+- ALL_FIELD_OPTS, /* opts */
++ STD_FIELD_OPTS, /* opts */
+ (FIELD *)0, /* snext */
+ (FIELD *)0, /* sprev */
+ (FIELD *)0, /* link */
+@@ -65,8 +65,7 @@
+ NCURSES_FIELD_EXTENSION
+ };
+
+-NCURSES_EXPORT_VAR(FIELD *)
+-_nc_Default_Field = &default_field;
++NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -186,10 +185,12 @@
+ {
+ if ((typ->status & _LINKED_TYPE) != 0)
+ {
+- assert(argp != 0);
+- _nc_Free_Argument(typ->left, argp->left);
+- _nc_Free_Argument(typ->right, argp->right);
+- free(argp);
++ if (argp != 0)
++ {
++ _nc_Free_Argument(typ->left, argp->left);
++ _nc_Free_Argument(typ->right, argp->right);
++ free(argp);
++ }
+ }
+ else
+ {
+@@ -293,14 +294,14 @@
+ {
+ T((T_CREATE("field %p"), (void *)New_Field));
+ *New_Field = default_field;
+- New_Field->rows = rows;
+- New_Field->cols = cols;
++ New_Field->rows = (short)rows;
++ New_Field->cols = (short)cols;
+ New_Field->drows = rows + nrow;
+ New_Field->dcols = cols;
+- New_Field->frow = frow;
+- New_Field->fcol = fcol;
++ New_Field->frow = (short)frow;
++ New_Field->fcol = (short)fcol;
+ New_Field->nrow = nrow;
+- New_Field->nbuf = nbuf;
++ New_Field->nbuf = (short)nbuf;
+ New_Field->link = New_Field;
+
+ #if USE_WIDEC_SUPPORT
+Index: form/fld_dup.c
+Prereq: 1.13
+--- ncurses-5.9/form/fld_dup.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_dup.c 2012-03-11 00:37:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_dup.c,v 1.13 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_dup.c,v 1.14 2012/03/11 00:37:16 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -60,8 +60,8 @@
+ {
+ T((T_CREATE("field %p"), (void *)New_Field));
+ *New_Field = *_nc_Default_Field;
+- New_Field->frow = frow;
+- New_Field->fcol = fcol;
++ New_Field->frow = (short) frow;
++ New_Field->fcol = (short) fcol;
+ New_Field->link = New_Field;
+ New_Field->rows = field->rows;
+ New_Field->cols = field->cols;
+Index: form/fld_ftchoice.c
+Prereq: 1.12
+--- ncurses-5.9/form/fld_ftchoice.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_ftchoice.c 2012-06-10 00:27:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_ftchoice.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_ftchoice.c,v 1.13 2012/06/10 00:27:49 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -56,7 +56,7 @@
+ if (!typ || !next_choice || !prev_choice)
+ RETURN(E_BAD_ARGUMENT);
+
+- typ->status |= _HAS_CHOICE;
++ SetStatus(typ, _HAS_CHOICE);
+ #if NCURSES_INTEROP_FUNCS
+ typ->enum_next.onext = next_choice;
+ typ->enum_prev.oprev = prev_choice;
+Index: form/fld_ftlink.c
+Prereq: 1.14
+--- ncurses-5.9/form/fld_ftlink.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_ftlink.c 2012-06-10 00:27:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_ftlink.c,v 1.14 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_ftlink.c,v 1.15 2012/06/10 00:27:49 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -62,11 +62,11 @@
+ {
+ T((T_CREATE("fieldtype %p"), (void *)nftyp));
+ *nftyp = *_nc_Default_FieldType;
+- nftyp->status |= _LINKED_TYPE;
++ SetStatus(nftyp, _LINKED_TYPE);
+ if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
+- nftyp->status |= _HAS_ARGS;
++ SetStatus(nftyp, _HAS_ARGS);
+ if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE))
+- nftyp->status |= _HAS_CHOICE;
++ SetStatus(nftyp, _HAS_CHOICE);
+ nftyp->left = type1;
+ nftyp->right = type2;
+ type1->ref++;
+Index: form/fld_just.c
+Prereq: 1.12
+--- ncurses-5.9/form/fld_just.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_just.c 2012-03-11 00:37:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_just.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_just.c,v 1.13 2012/03/11 00:37:16 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -59,7 +59,7 @@
+ Normalize_Field(field);
+ if (field->just != just)
+ {
+- field->just = just;
++ field->just = (short) just;
+ res = _nc_Synchronize_Attributes(field);
+ }
+ else
+Index: form/fld_link.c
+Prereq: 1.12
+--- ncurses-5.9/form/fld_link.c 2010-01-23 21:14:35.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_link.c 2012-03-11 00:37:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_link.c,v 1.12 2010/01/23 21:14:35 tom Exp $")
++MODULE_ID("$Id: fld_link.c,v 1.13 2012/03/11 00:37:16 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -61,8 +61,8 @@
+ {
+ T((T_CREATE("field %p"), (void *)New_Field));
+ *New_Field = *_nc_Default_Field;
+- New_Field->frow = frow;
+- New_Field->fcol = fcol;
++ New_Field->frow = (short) frow;
++ New_Field->fcol = (short) fcol;
+
+ New_Field->link = field->link;
+ field->link = New_Field;
+Index: form/fld_max.c
+Prereq: 1.10
+--- ncurses-5.9/form/fld_max.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_max.c 2013-08-24 22:59:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_max.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fld_max.c,v 1.13 2013/08/24 22:59:28 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -62,13 +62,13 @@
+ RETURN(E_BAD_ARGUMENT);
+ }
+ field->maxgrow = maxgrow;
+- field->status &= ~_MAY_GROW;
+- if (!(field->opts & O_STATIC))
++ ClrStatus(field, _MAY_GROW);
++ if (!((unsigned)field->opts & O_STATIC))
+ {
+ if ((maxgrow == 0) ||
+ (single_line_field && (field->dcols < maxgrow)) ||
+ (!single_line_field && (field->drows < maxgrow)))
+- field->status |= _MAY_GROW;
++ SetStatus(field, _MAY_GROW);
+ }
+ }
+ RETURN(E_OK);
+Index: form/fld_move.c
+Prereq: 1.10
+--- ncurses-5.9/form/fld_move.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_move.c 2012-03-11 00:37:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_move.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fld_move.c,v 1.11 2012/03/11 00:37:16 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -56,8 +56,8 @@
+ if (field->form)
+ RETURN(E_CONNECTED);
+
+- field->frow = frow;
+- field->fcol = fcol;
++ field->frow = (short) frow;
++ field->fcol = (short) fcol;
+ RETURN(E_OK);
+ }
+
+Index: form/fld_page.c
+Prereq: 1.10
+--- ncurses-5.9/form/fld_page.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_page.c 2012-06-10 00:12:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_page.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fld_page.c,v 1.12 2012/06/10 00:12:47 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -54,9 +54,9 @@
+ RETURN(E_CONNECTED);
+
+ if (new_page_flag)
+- field->status |= _NEWPAGE;
++ SetStatus(field, _NEWPAGE);
+ else
+- field->status &= ~_NEWPAGE;
++ ClrStatus(field, _NEWPAGE);
+
+ RETURN(E_OK);
+ }
+Index: form/fld_stat.c
+Prereq: 1.12
+--- ncurses-5.9/form/fld_stat.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fld_stat.c 2012-06-10 00:13:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fld_stat.c,v 1.12 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fld_stat.c,v 1.14 2012/06/10 00:13:09 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -51,9 +51,9 @@
+ Normalize_Field(field);
+
+ if (status)
+- field->status |= _CHANGED;
++ SetStatus(field, _CHANGED);
+ else
+- field->status &= ~_CHANGED;
++ ClrStatus(field, _CHANGED);
+
+ RETURN(E_OK);
+ }
+Index: form/form.h
+Prereq: 0.21
+--- ncurses-5.9/form/form.h 2009-11-07 19:31:11.000000000 +0000
++++ ncurses-5.9-20141206/form/form.h 2014-07-26 20:52:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,10 +30,11 @@
+ * Author: Juergen Pfeifer, 1995,1997 *
+ ****************************************************************************/
+
+-/* $Id: form.h,v 0.21 2009/11/07 19:31:11 tom Exp $ */
++/* $Id: form.h,v 0.24 2014/07/26 20:52:28 tom Exp $ */
+
+ #ifndef FORM_H
+ #define FORM_H
++/* *INDENT-OFF*/
+
+ #include <curses.h>
+ #include <eti.h>
+@@ -203,6 +204,7 @@
+ #define O_NULLOK (0x0080U)
+ #define O_PASSOK (0x0100U)
+ #define O_STATIC (0x0200U)
++#define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */
+
+ /* form options */
+ #define O_NL_OVERLOAD (0x0001U)
+@@ -396,6 +398,9 @@
+ extern NCURSES_EXPORT(int) unpost_form (FORM *);
+ extern NCURSES_EXPORT(int) pos_form_cursor (FORM *);
+ extern NCURSES_EXPORT(int) form_driver (FORM *,int);
++# if NCURSES_WIDECHAR
++extern NCURSES_EXPORT(int) form_driver_w (FORM *,int,wchar_t);
++# endif
+ extern NCURSES_EXPORT(int) set_form_userptr (FORM *,void *);
+ extern NCURSES_EXPORT(int) set_form_opts (FORM *,Form_Options);
+ extern NCURSES_EXPORT(int) form_opts_on (FORM *,Form_Options);
+@@ -418,5 +423,6 @@
+ #ifdef __cplusplus
+ }
+ #endif
++/* *INDENT-ON*/
+
+-#endif /* FORM_H */
++#endif /* FORM_H */
+Index: form/form.priv.h
+Prereq: 0.32
+--- ncurses-5.9/form/form.priv.h 2009-11-07 21:26:43.000000000 +0000
++++ ncurses-5.9-20141206/form/form.priv.h 2014-11-01 13:56:14.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,11 +30,11 @@
+ * Author: Juergen Pfeifer, 1995,1997 *
+ ****************************************************************************/
+
+-/* $Id: form.priv.h,v 0.32 2009/11/07 21:26:43 tom Exp $ */
++/* $Id: form.priv.h,v 0.38 2014/11/01 13:56:14 tom Exp $ */
+
+ #ifndef FORM_PRIV_H
+ #define FORM_PRIV_H 1
+-
++/* *INDENT-OFF*/
+ #include "curses.priv.h"
+ #include "mf_common.h"
+
+@@ -119,12 +119,14 @@
+
+ /* Calculate the total size of all buffers for this field */
+ #define Total_Buffer_Size(field) \
+- ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) * sizeof(FIELD_CELL) )
++ ( (size_t)(Buffer_Length(field) + 1) * (size_t)(1+(field)->nbuf) * sizeof(FIELD_CELL) )
+
+ /* Logic to determine whether or not a field is single lined */
+ #define Single_Line_Field(field) \
+ (((field)->rows + (field)->nrow) == 1)
+
++#define Field_Has_Option(f,o) ((((unsigned)(f)->opts) & o) != 0)
++
+ /* Logic to determine whether or not a field is selectable */
+ #define Field_Is_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)==O_SELECTABLE)
+ #define Field_Is_Not_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)!=O_SELECTABLE)
+@@ -146,7 +148,7 @@
+ O_NL_OVERLOAD |\
+ O_BS_OVERLOAD )
+
+-#define ALL_FIELD_OPTS (Field_Options)( \
++#define STD_FIELD_OPTS (Field_Options)( \
+ O_VISIBLE |\
+ O_ACTIVE |\
+ O_PUBLIC |\
+@@ -156,7 +158,11 @@
+ O_AUTOSKIP|\
+ O_NULLOK |\
+ O_PASSOK |\
+- O_STATIC )
++ O_STATIC)
++
++#define ALL_FIELD_OPTS (Field_Options)( \
++ STD_FIELD_OPTS |\
++ O_DYNAMIC_JUSTIFY)
+
+ #define C_BLANK ' '
+ #define is_blank(c) ((c)==C_BLANK)
+@@ -214,11 +220,11 @@
+
+ #ifdef TRACE
+
+-#define returnField(code) TRACE_RETURN(code,field)
+-#define returnFieldPtr(code) TRACE_RETURN(code,field_ptr)
+-#define returnForm(code) TRACE_RETURN(code,form)
+-#define returnFieldType(code) TRACE_RETURN(code,field_type)
+-#define returnFormHook(code) TRACE_RETURN(code,form_hook)
++#define returnField(code) TRACE_RETURN1(code,field)
++#define returnFieldPtr(code) TRACE_RETURN1(code,field_ptr)
++#define returnForm(code) TRACE_RETURN1(code,form)
++#define returnFieldType(code) TRACE_RETURN1(code,field_type)
++#define returnFormHook(code) TRACE_RETURN1(code,form_hook)
+
+ extern NCURSES_EXPORT(FIELD **) _nc_retrace_field_ptr (FIELD **);
+ extern NCURSES_EXPORT(FIELD *) _nc_retrace_field (FIELD *);
+@@ -293,5 +299,6 @@
+ result = ((*buffer || (l < width)) ? FALSE : TRUE); \
+ }
+ #endif
++/* *INDENT-ON*/
+
+ #endif /* FORM_PRIV_H */
+Index: form/frm_data.c
+Prereq: 1.15
+--- ncurses-5.9/form/frm_data.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_data.c 2013-08-24 22:44:05.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_data.c,v 1.15 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: frm_data.c,v 1.16 2013/08/24 22:44:05 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -103,7 +103,7 @@
+ }
+ }
+ #else
+- cell = winch(w);
++ cell = (FIELD_CELL) winch(w);
+ if (ChCharOf(cell) != ChCharOf(pad))
+ {
+ result = FALSE;
+Index: form/frm_def.c
+Prereq: 1.25
+--- ncurses-5.9/form/frm_def.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_def.c 2012-03-11 00:37:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_def.c,v 1.25 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: frm_def.c,v 1.26 2012/03/11 00:37:16 tom Exp $")
+
+ /* this can't be readonly */
+ static FORM default_form =
+@@ -199,14 +199,14 @@
+ for (j = 0; j < field_cnt; j++)
+ {
+ if (j == 0)
+- pg->pmin = j;
++ pg->pmin = (short) j;
+ else
+ {
+ if (fields[j]->status & _NEWPAGE)
+ {
+- pg->pmax = j - 1;
++ pg->pmax = (short) (j - 1);
+ pg++;
+- pg->pmin = j;
++ pg->pmin = (short) j;
+ }
+ }
+
+@@ -214,14 +214,14 @@
+ maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
+
+ if (form->rows < maximum_row_in_field)
+- form->rows = maximum_row_in_field;
++ form->rows = (short) maximum_row_in_field;
+ if (form->cols < maximum_col_in_field)
+- form->cols = maximum_col_in_field;
++ form->cols = (short) maximum_col_in_field;
+ }
+
+- pg->pmax = field_cnt - 1;
+- form->maxfield = field_cnt;
+- form->maxpage = page_nr;
++ pg->pmax = (short) (field_cnt - 1);
++ form->maxfield = (short) field_cnt;
++ form->maxpage = (short) page_nr;
+
+ /* Sort fields on form pages */
+ for (page_nr = 0; page_nr < form->maxpage; page_nr++)
+@@ -230,8 +230,8 @@
+
+ for (j = form->page[page_nr].pmin; j <= form->page[page_nr].pmax; j++)
+ {
+- fields[j]->index = j;
+- fields[j]->page = page_nr;
++ fields[j]->index = (short) j;
++ fields[j]->page = (short) page_nr;
+ fld = Insert_Field_By_Position(fields[j], fld);
+ }
+ if (fld)
+Index: form/frm_driver.c
+Prereq: 1.98
+--- ncurses-5.9/form/frm_driver.c 2010-05-01 21:11:43.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_driver.c 2014-09-25 21:55:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_driver.c,v 1.98 2010/05/01 21:11:43 tom Exp $")
++MODULE_ID("$Id: frm_driver.c,v 1.115 2014/09/25 21:55:24 tom Exp $")
+
+ /*----------------------------------------------------------------------------
+ This is the core module of the form library. It contains the majority
+@@ -172,29 +172,30 @@
+ instead of a derived window because it contains invisible parts.
+ This is true for non-public fields and for scrollable fields. */
+ #define Has_Invisible_Parts(field) \
+- (!((field)->opts & O_PUBLIC) || \
++ (!(Field_Has_Option(field, O_PUBLIC)) || \
+ Is_Scroll_Field(field))
+
+ /* Logic to decide whether or not a field needs justification */
+ #define Justification_Allowed(field) \
+ (((field)->just != NO_JUSTIFICATION) && \
+ (Single_Line_Field(field)) && \
+- (((field)->dcols == (field)->cols) && \
+- ((field)->opts & O_STATIC)) )
++ ((Field_Has_Option(field, O_STATIC) && \
++ ((field)->dcols == (field)->cols)) || \
++ Field_Has_Option(field, O_DYNAMIC_JUSTIFY)))
+
+ /* Logic to determine whether or not a dynamic field may still grow */
+ #define Growable(field) ((field)->status & _MAY_GROW)
+
+ /* Macro to set the attributes for a fields window */
+ #define Set_Field_Window_Attributes(field,win) \
+-( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \
+- (void) wattrset((win),(field)->fore) )
++( wbkgdset((win),(chtype)((chtype)((field)->pad) | (field)->back)), \
++ (void) wattrset((win), (int)(field)->fore) )
+
+ /* Logic to decide whether or not a field really appears on the form */
+ #define Field_Really_Appears(field) \
+ ((field->form) &&\
+ (field->form->status & _POSTED) &&\
+- (field->opts & O_VISIBLE) &&\
++ (Field_Has_Option(field, O_VISIBLE)) &&\
+ (field->page == field->form->curpage))
+
+ /* Logic to determine whether or not we are on the first position in the
+@@ -601,8 +602,8 @@
+ {
+ if (form->status & _WINDOW_MODIFIED)
+ {
+- form->status &= ~_WINDOW_MODIFIED;
+- form->status |= _FCHECK_REQUIRED;
++ ClrStatus(form, _WINDOW_MODIFIED);
++ SetStatus(form, _FCHECK_REQUIRED);
+ Window_To_Buffer(form, form->current);
+ wmove(form->w, form->currow, form->curcol);
+ }
+@@ -653,7 +654,7 @@
+ growth = Minimum(field->maxgrow - field->dcols, growth);
+ field->dcols += growth;
+ if (field->dcols == field->maxgrow)
+- field->status &= ~_MAY_GROW;
++ ClrStatus(field, _MAY_GROW);
+ }
+ else
+ {
+@@ -662,7 +663,7 @@
+ growth = Minimum(field->maxgrow - field->drows, growth);
+ field->drows += growth;
+ if (field->drows == field->maxgrow)
+- field->status &= ~_MAY_GROW;
++ ClrStatus(field, _MAY_GROW);
+ }
+ /* drows, dcols changed, so we get really the new buffer length */
+ new_buflen = Buffer_Length(field);
+@@ -674,7 +675,7 @@
+ field->drows = old_drows;
+ if ((single_line_field && (field->dcols != field->maxgrow)) ||
+ (!single_line_field && (field->drows != field->maxgrow)))
+- field->status |= _MAY_GROW;
++ SetStatus(field, _MAY_GROW);
+ }
+ else
+ {
+@@ -753,7 +754,7 @@
+ (field->dcols != field->maxgrow)) ||
+ (!single_line_field &&
+ (field->drows != field->maxgrow)))
+- field->status |= _MAY_GROW;
++ SetStatus(field, _MAY_GROW);
+ free(newbuf);
+ }
+ }
+@@ -860,7 +861,7 @@
+ field = form->current;
+ formwin = Get_Form_Window(form);
+
+- if (field->opts & O_PUBLIC)
++ if (Field_Has_Option(field, O_PUBLIC))
+ {
+ if (Is_Scroll_Field(field))
+ {
+@@ -897,19 +898,19 @@
+ if (form->currow < form->toprow)
+ {
+ form->toprow = form->currow;
+- field->status |= _NEWTOP;
++ SetStatus(field, _NEWTOP);
+ }
+ if (form->currow >= row_after_bottom)
+ {
+ form->toprow = form->currow - field->rows + 1;
+- field->status |= _NEWTOP;
++ SetStatus(field, _NEWTOP);
+ }
+ if (field->status & _NEWTOP)
+ {
+ /* means we have to copy whole range */
+ first_modified_row = form->toprow;
+ first_unmodified_row = first_modified_row + field->rows;
+- field->status &= ~_NEWTOP;
++ ClrStatus(field, _NEWTOP);
+ }
+ else
+ {
+@@ -983,21 +984,22 @@
+
+ if (len > 0)
+ {
+- assert(win && (field->drows == 1) && (field->dcols == field->cols));
++ assert(win && (field->drows == 1));
+
+- switch (field->just)
+- {
+- case JUSTIFY_LEFT:
+- break;
+- case JUSTIFY_CENTER:
+- col = (field->cols - len) / 2;
+- break;
+- case JUSTIFY_RIGHT:
+- col = field->cols - len;
+- break;
+- default:
+- break;
+- }
++ if (field->cols - len >= 0)
++ switch (field->just)
++ {
++ case JUSTIFY_LEFT:
++ break;
++ case JUSTIFY_CENTER:
++ col = (field->cols - len) / 2;
++ break;
++ case JUSTIFY_RIGHT:
++ col = field->cols - len;
++ break;
++ default:
++ break;
++ }
+
+ wmove(win, 0, col);
+ myADDNSTR(win, bp, len);
+@@ -1111,27 +1113,27 @@
+ return E_SYSTEM_ERROR;
+ else
+ {
+- if (field->opts & O_VISIBLE)
++ if (Field_Has_Option(field, O_VISIBLE))
+ {
+ Set_Field_Window_Attributes(field, win);
+ }
+ else
+ {
+- (void)wattrset(win, WINDOW_ATTRS(fwin));
++ (void)wattrset(win, (int)WINDOW_ATTRS(fwin));
+ }
+ werase(win);
+ }
+
+ if (!bEraseFlag)
+ {
+- if (field->opts & O_PUBLIC)
++ if (Field_Has_Option(field, O_PUBLIC))
+ {
+ if (Justification_Allowed(field))
+ Perform_Justification(field, win);
+ else
+ Buffer_To_Window(field, win);
+ }
+- field->status &= ~_NEWTOP;
++ ClrStatus(field, _NEWTOP);
+ }
+ wsyncup(win);
+ delwin(win);
+@@ -1170,18 +1172,18 @@
+ form->currow = form->curcol = form->toprow = form->begincol = 0;
+ werase(form->w);
+
+- if ((field->opts & O_PUBLIC) && Justification_Allowed(field))
++ if ((Field_Has_Option(field, O_PUBLIC)) && Justification_Allowed(field))
+ Undo_Justification(field, form->w);
+ else
+ Buffer_To_Window(field, form->w);
+
+- field->status |= _NEWTOP;
++ SetStatus(field, _NEWTOP);
+ res = _nc_Refresh_Current_Field(form);
+ }
+ else
+ res = Display_Field(field);
+ }
+- field->status |= _CHANGED;
++ SetStatus(field, _CHANGED);
+ return (res);
+ }
+
+@@ -1211,7 +1213,7 @@
+ return (E_SYSTEM_ERROR);
+
+ for (linked_field = field->link;
+- linked_field != field;
++ (linked_field != field) && (linked_field != 0);
+ linked_field = linked_field->link)
+ {
+ if (((syncres = Synchronize_Field(linked_field)) != E_OK) &&
+@@ -1256,7 +1258,7 @@
+ werase(form->w);
+ wmove(form->w, form->currow, form->curcol);
+
+- if (field->opts & O_PUBLIC)
++ if (Field_Has_Option(field, O_PUBLIC))
+ {
+ if (Justification_Allowed(field))
+ Undo_Justification(field, form->w);
+@@ -1272,7 +1274,7 @@
+ field->rows - 1, field->cols - 1, 0);
+ wsyncup(formwin);
+ Buffer_To_Window(field, form->w);
+- field->status |= _NEWTOP; /* fake refresh to paint all */
++ SetStatus(field, _NEWTOP); /* fake refresh to paint all */
+ _nc_Refresh_Current_Field(form);
+ }
+ }
+@@ -1326,34 +1328,34 @@
+ field->opts = oldopts;
+ returnCode(E_CURRENT);
+ }
+- if ((form->curpage == field->page))
++ if (form->curpage == field->page)
+ {
+- if (changed_opts & O_VISIBLE)
++ if ((unsigned)changed_opts & O_VISIBLE)
+ {
+- if (newopts & O_VISIBLE)
++ if ((unsigned)newopts & O_VISIBLE)
+ res = Display_Field(field);
+ else
+ res = Erase_Field(field);
+ }
+ else
+ {
+- if ((changed_opts & O_PUBLIC) &&
+- (newopts & O_VISIBLE))
++ if (((unsigned)changed_opts & O_PUBLIC) &&
++ ((unsigned)newopts & O_VISIBLE))
+ res = Display_Field(field);
+ }
+ }
+ }
+ }
+
+- if (changed_opts & O_STATIC)
++ if ((unsigned)changed_opts & O_STATIC)
+ {
+ bool single_line_field = Single_Line_Field(field);
+ int res2 = E_OK;
+
+- if (newopts & O_STATIC)
++ if ((unsigned)newopts & O_STATIC)
+ {
+ /* the field becomes now static */
+- field->status &= ~_MAY_GROW;
++ ClrStatus(field, _MAY_GROW);
+ /* if actually we have no hidden columns, justification may
+ occur again */
+ if (single_line_field &&
+@@ -1371,7 +1373,7 @@
+ (single_line_field && (field->dcols < field->maxgrow)) ||
+ (!single_line_field && (field->drows < field->maxgrow)))
+ {
+- field->status |= _MAY_GROW;
++ SetStatus(field, _MAY_GROW);
+ /* a field with justification now changes its behavior,
+ so we must redisplay it */
+ if (single_line_field &&
+@@ -1424,18 +1426,18 @@
+ !(form->status & _POSTED))
+ {
+ if ((form->w) &&
+- (field->opts & O_VISIBLE) &&
++ (Field_Has_Option(field, O_VISIBLE)) &&
+ (field->form->curpage == field->page))
+ {
+ _nc_Refresh_Current_Field(form);
+- if (field->opts & O_PUBLIC)
++ if (Field_Has_Option(field, O_PUBLIC))
+ {
+ if (field->drows > field->rows)
+ {
+ if (form->toprow == 0)
+- field->status &= ~_NEWTOP;
++ ClrStatus(field, _NEWTOP);
+ else
+- field->status |= _NEWTOP;
++ SetStatus(field, _NEWTOP);
+ }
+ else
+ {
+@@ -1444,7 +1446,24 @@
+ Window_To_Buffer(form, field);
+ werase(form->w);
+ Perform_Justification(field, form->w);
+- wsyncup(form->w);
++ if (Field_Has_Option(field, O_DYNAMIC_JUSTIFY) &&
++ (form->w->_parent == 0))
++ {
++ copywin(form->w,
++ Get_Form_Window(form),
++ 0,
++ 0,
++ field->frow,
++ field->fcol,
++ field->frow,
++ field->cols + field->fcol - 1,
++ 0);
++ wsyncup(Get_Form_Window(form));
++ }
++ else
++ {
++ wsyncup(form->w);
++ }
+ }
+ }
+ }
+@@ -1469,7 +1488,7 @@
+ delwin(form->w);
+ form->w = new_window;
+
+- form->status &= ~_WINDOW_MODIFIED;
++ ClrStatus(form, _WINDOW_MODIFIED);
+ Set_Field_Window_Attributes(field, form->w);
+
+ if (Has_Invisible_Parts(field))
+@@ -1998,7 +2017,7 @@
+ {
+ res = fct(form);
+ if (res == E_OK)
+- form->current->status |= _NEWTOP;
++ SetStatus(form->current, _NEWTOP);
+ }
+ return (res);
+ }
+@@ -2430,7 +2449,7 @@
+ int result = E_REQUEST_DENIED;
+ bool Last_Row = ((field->drows - 1) == form->currow);
+
+- if ((field->opts & O_WRAP) && /* wrapping wanted */
++ if ((Field_Has_Option(field, O_WRAP)) && /* wrapping wanted */
+ (!Single_Line_Field(field)) && /* must be multi-line */
+ (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */
+ (!Last_Row || Growable(field))) /* there are more lines */
+@@ -2513,7 +2532,7 @@
+ editable fields.
+ */
+ if ((fct == FE_Delete_Previous) &&
+- (form->opts & O_BS_OVERLOAD) &&
++ ((unsigned)form->opts & O_BS_OVERLOAD) &&
+ First_Position_In_Current_Field(form))
+ {
+ res = Inter_Field_Navigation(FN_Previous_Field, form);
+@@ -2522,7 +2541,7 @@
+ {
+ if (fct == FE_New_Line)
+ {
+- if ((form->opts & O_NL_OVERLOAD) &&
++ if (((unsigned)form->opts & O_NL_OVERLOAD) &&
+ First_Position_In_Current_Field(form))
+ {
+ res = Inter_Field_Navigation(FN_Next_Field, form);
+@@ -2534,11 +2553,11 @@
+ else
+ {
+ /* From now on, everything must be editable */
+- if (form->current->opts & O_EDIT)
++ if ((unsigned)form->current->opts & O_EDIT)
+ {
+ res = fct(form);
+ if (res == E_OK)
+- form->status |= _WINDOW_MODIFIED;
++ SetStatus(form, _WINDOW_MODIFIED);
+ }
+ }
+ }
+@@ -2571,7 +2590,7 @@
+ if (Last_Row &&
+ (!(Growable(field) && !Single_Line_Field(field))))
+ {
+- if (!(form->opts & O_NL_OVERLOAD))
++ if (!((unsigned)form->opts & O_NL_OVERLOAD))
+ returnCode(E_REQUEST_DENIED);
+ wmove(form->w, form->currow, form->curcol);
+ wclrtoeol(form->w);
+@@ -2579,7 +2598,7 @@
+ handled in the generic routine. The reason is,
+ that FN_Next_Field may fail, but the form is
+ definitively changed */
+- form->status |= _WINDOW_MODIFIED;
++ SetStatus(form, _WINDOW_MODIFIED);
+ returnCode(Inter_Field_Navigation(FN_Next_Field, form));
+ }
+ else
+@@ -2595,7 +2614,7 @@
+ wclrtoeol(form->w);
+ form->currow++;
+ form->curcol = 0;
+- form->status |= _WINDOW_MODIFIED;
++ SetStatus(form, _WINDOW_MODIFIED);
+ returnCode(E_OK);
+ }
+ }
+@@ -2605,7 +2624,7 @@
+ if (Last_Row &&
+ !(Growable(field) && !Single_Line_Field(field)))
+ {
+- if (!(form->opts & O_NL_OVERLOAD))
++ if (!((unsigned)form->opts & O_NL_OVERLOAD))
+ returnCode(E_REQUEST_DENIED);
+ returnCode(Inter_Field_Navigation(FN_Next_Field, form));
+ }
+@@ -2627,7 +2646,7 @@
+ wmove(form->w, form->currow, form->curcol);
+ winsertln(form->w);
+ myADDNSTR(form->w, bp, (int)(t - bp));
+- form->status |= _WINDOW_MODIFIED;
++ SetStatus(form, _WINDOW_MODIFIED);
+ returnCode(E_OK);
+ }
+ }
+@@ -2926,7 +2945,7 @@
+ EM_Overlay_Mode(FORM *form)
+ {
+ T((T_CALLED("EM_Overlay_Mode(%p)"), (void *)form));
+- form->status |= _OVLMODE;
++ SetStatus(form, _OVLMODE);
+ returnCode(E_OK);
+ }
+
+@@ -2942,7 +2961,7 @@
+ EM_Insert_Mode(FORM *form)
+ {
+ T((T_CALLED("EM_Insert_Mode(%p)"), (void *)form));
+- form->status &= ~_OVLMODE;
++ ClrStatus(form, _OVLMODE);
+ returnCode(E_OK);
+ }
+
+@@ -3111,7 +3130,7 @@
+ {
+ if (typ)
+ {
+- if (field->opts & O_NULLOK)
++ if (Field_Has_Option(field, O_NULLOK))
+ {
+ FIELD_CELL *bp = field->buf;
+
+@@ -3168,12 +3187,12 @@
+
+ Synchronize_Buffer(form);
+ if ((form->status & _FCHECK_REQUIRED) ||
+- (!(field->opts & O_PASSOK)))
++ (!(Field_Has_Option(field, O_PASSOK))))
+ {
+ if (!Check_Field(form, field->type, field, (TypeArgument *)(field->arg)))
+ return FALSE;
+- form->status &= ~_FCHECK_REQUIRED;
+- field->status |= _CHANGED;
++ ClrStatus(form, _FCHECK_REQUIRED);
++ SetStatus(field, _CHANGED);
+ Synchronize_Linked_Fields(field);
+ }
+ return TRUE;
+@@ -3273,14 +3292,15 @@
+ do
+ {
+ field = (field == last_on_page) ? first : field + 1;
+- if (((*field)->opts & O_VISIBLE))
++ if (Field_Has_Option(*field, O_VISIBLE))
+ break;
+ }
+ while (proposed != (*field));
+
+ proposed = *field;
+
+- if ((proposed == *last_on_page) && !(proposed->opts & O_VISIBLE))
++ if ((proposed == *last_on_page) &&
++ !((unsigned)proposed->opts & O_VISIBLE))
+ {
+ /* This means, there is also no visible field on the page.
+ So we propose the first one and hope the very best...
+@@ -3816,11 +3836,11 @@
+ FIELD *last_field, *field_on_page;
+
+ werase(Get_Form_Window(form));
+- form->curpage = page;
++ form->curpage = (short)page;
+ last_field = field_on_page = form->field[form->page[page].smin];
+ do
+ {
+- if (field_on_page->opts & O_VISIBLE)
++ if ((unsigned)field_on_page->opts & O_VISIBLE)
+ if ((res = Display_Field(field_on_page)) != E_OK)
+ return (res);
+ field_on_page = field_on_page->snext;
+@@ -3981,6 +4001,94 @@
+ Helper routines for the core form driver.
+ --------------------------------------------------------------------------*/
+
++# if USE_WIDEC_SUPPORT
++/*---------------------------------------------------------------------------
++| Facility : libnform
++| Function : static int Data_Entry_w(FORM * form, wchar_t c)
++|
++| Description : Enter the wide character c into at the current
++| position of the current field of the form.
++|
++| Return Values : E_OK - success
++| E_REQUEST_DENIED - driver could not process the request
++| E_SYSTEM_ERROR -
+++--------------------------------------------------------------------------*/
++static int
++Data_Entry_w(FORM *form, wchar_t c)
++{
++ FIELD *field = form->current;
++ int result = E_REQUEST_DENIED;
++
++ T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c)));
++ if ((Field_Has_Option(field, O_EDIT))
++#if FIX_FORM_INACTIVE_BUG
++ && (Field_Has_Option(field, O_ACTIVE))
++#endif
++ )
++ {
++ wchar_t given[2];
++ cchar_t temp_ch;
++
++ given[0] = c;
++ given[1] = 1;
++ setcchar(&temp_ch, given, 0, 0, (void *)0);
++ if ((Field_Has_Option(field, O_BLANK)) &&
++ First_Position_In_Current_Field(form) &&
++ !(form->status & _FCHECK_REQUIRED) &&
++ !(form->status & _WINDOW_MODIFIED))
++ werase(form->w);
++
++ if (form->status & _OVLMODE)
++ {
++ wadd_wch(form->w, &temp_ch);
++ }
++ else
++ /* no _OVLMODE */
++ {
++ bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
++
++ if (!(There_Is_Room ||
++ ((Single_Line_Field(field) && Growable(field)))))
++ RETURN(E_REQUEST_DENIED);
++
++ if (!There_Is_Room && !Field_Grown(field, 1))
++ RETURN(E_SYSTEM_ERROR);
++
++ wins_wch(form->w, &temp_ch);
++ }
++
++ if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK)
++ {
++ bool End_Of_Field = (((field->drows - 1) == form->currow) &&
++ ((field->dcols - 1) == form->curcol));
++
++ form->status |= _WINDOW_MODIFIED;
++ if (End_Of_Field && !Growable(field) && (Field_Has_Option(field, O_AUTOSKIP)))
++ result = Inter_Field_Navigation(FN_Next_Field, form);
++ else
++ {
++ if (End_Of_Field && Growable(field) && !Field_Grown(field, 1))
++ result = E_SYSTEM_ERROR;
++ else
++ {
++ /*
++ * We have just added a byte to the form field. It may have
++ * been part of a multibyte character. If it was, the
++ * addch_used field is nonzero and we should not try to move
++ * to a new column.
++ */
++ if (WINDOW_EXT(form->w, addch_used) == 0)
++ IFN_Next_Character(form);
++
++ result = E_OK;
++ }
++ }
++ }
++ }
++ RETURN(result);
++}
++# endif
++
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+ | Function : static int Data_Entry(FORM * form,int c)
+@@ -3999,13 +4107,13 @@
+ int result = E_REQUEST_DENIED;
+
+ T((T_CALLED("Data_Entry(%p,%s)"), (void *)form, _tracechtype((chtype)c)));
+- if ((field->opts & O_EDIT)
++ if ((Field_Has_Option(field, O_EDIT))
+ #if FIX_FORM_INACTIVE_BUG
+- && (field->opts & O_ACTIVE)
++ && (Field_Has_Option(field, O_ACTIVE))
+ #endif
+ )
+ {
+- if ((field->opts & O_BLANK) &&
++ if ((Field_Has_Option(field, O_BLANK)) &&
+ First_Position_In_Current_Field(form) &&
+ !(form->status & _FCHECK_REQUIRED) &&
+ !(form->status & _WINDOW_MODIFIED))
+@@ -4035,8 +4143,8 @@
+ bool End_Of_Field = (((field->drows - 1) == form->currow) &&
+ ((field->dcols - 1) == form->curcol));
+
+- form->status |= _WINDOW_MODIFIED;
+- if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP))
++ SetStatus(form, _WINDOW_MODIFIED);
++ if (End_Of_Field && !Growable(field) && (Field_Has_Option(field, O_AUTOSKIP)))
+ result = Inter_Field_Navigation(FN_Next_Field, form);
+ else
+ {
+@@ -4228,7 +4336,10 @@
+
+ if ((c >= MIN_FORM_COMMAND && c <= MAX_FORM_COMMAND) &&
+ ((bindings[c - MIN_FORM_COMMAND].keycode & Key_Mask) == c))
+- BI = &(bindings[c - MIN_FORM_COMMAND]);
++ {
++ TR(TRACE_CALLS, ("form_request %s", form_request_name(c)));
++ BI = &(bindings[c - MIN_FORM_COMMAND]);
++ }
+
+ if (BI)
+ {
+@@ -4246,7 +4357,7 @@
+ NULL /* Choice Request is generic */
+ };
+ size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0]));
+- size_t method = (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */
++ size_t method = (size_t) ((BI->keycode >> ID_Shft) & 0xffff); /* see ID_Mask */
+
+ if ((method >= nMethods) || !(BI->cmd))
+ res = E_SYSTEM_ERROR;
+@@ -4255,9 +4366,13 @@
+ Generic_Method fct = Generic_Methods[method];
+
+ if (fct)
+- res = fct(BI->cmd, form);
++ {
++ res = fct(BI->cmd, form);
++ }
+ else
+- res = (BI->cmd) (form);
++ {
++ res = (BI->cmd) (form);
++ }
+ }
+ }
+ #ifdef NCURSES_MOUSE_VERSION
+@@ -4360,6 +4475,195 @@
+ RETURN(res);
+ }
+
++# if USE_WIDEC_SUPPORT
++/*---------------------------------------------------------------------------
++| Facility : libnform
++| Function : int form_driver_w(FORM * form,int type,wchar_t c)
++|
++| Description : This is the workhorse of the forms system.
++|
++| Input is either a key code (request) or a wide char
++| returned by e.g. get_wch (). The type must be passed
++| as well,so that we are able to determine whether the char
++| is a multibyte char or a request.
++
++| If it is a request, the form driver executes
++| the request and returns the result. If it is data
++| (printable character), it enters the data into the
++| current position in the current field. If it is not
++| recognized, the form driver assumes it is an application
++| defined command and returns E_UNKNOWN_COMMAND.
++| Application defined command should be defined relative
++| to MAX_FORM_COMMAND, the maximum value of a request.
++|
++| Return Values : E_OK - success
++| E_SYSTEM_ERROR - system error
++| E_BAD_ARGUMENT - an argument is incorrect
++| E_NOT_POSTED - form is not posted
++| E_INVALID_FIELD - field contents are invalid
++| E_BAD_STATE - called from inside a hook routine
++| E_REQUEST_DENIED - request failed
++| E_NOT_CONNECTED - no fields are connected to the form
++| E_UNKNOWN_COMMAND - command not known
+++--------------------------------------------------------------------------*/
++NCURSES_EXPORT(int)
++form_driver_w(FORM *form, int type, wchar_t c)
++{
++ const Binding_Info *BI = (Binding_Info *) 0;
++ int res = E_UNKNOWN_COMMAND;
++
++ T((T_CALLED("form_driver(%p,%d)"), (void *)form, (int)c));
++
++ if (!form)
++ RETURN(E_BAD_ARGUMENT);
++
++ if (!(form->field))
++ RETURN(E_NOT_CONNECTED);
++
++ assert(form->page);
++
++ if (c == (wchar_t)FIRST_ACTIVE_MAGIC)
++ {
++ form->current = _nc_First_Active_Field(form);
++ RETURN(E_OK);
++ }
++
++ assert(form->current &&
++ form->current->buf &&
++ (form->current->form == form)
++ );
++
++ if (form->status & _IN_DRIVER)
++ RETURN(E_BAD_STATE);
++
++ if (!(form->status & _POSTED))
++ RETURN(E_NOT_POSTED);
++
++ /* check if this is a keycode or a (wide) char */
++ if (type == KEY_CODE_YES)
++ {
++ if ((c >= MIN_FORM_COMMAND && c <= MAX_FORM_COMMAND) &&
++ ((bindings[c - MIN_FORM_COMMAND].keycode & Key_Mask) == c))
++ BI = &(bindings[c - MIN_FORM_COMMAND]);
++ }
++
++ if (BI)
++ {
++ typedef int (*Generic_Method) (int (*const) (FORM *), FORM *);
++ static const Generic_Method Generic_Methods[] =
++ {
++ Page_Navigation, /* overloaded to call field&form hooks */
++ Inter_Field_Navigation, /* overloaded to call field hooks */
++ NULL, /* Intra-Field is generic */
++ Vertical_Scrolling, /* Overloaded to check multi-line */
++ Horizontal_Scrolling, /* Overloaded to check single-line */
++ Field_Editing, /* Overloaded to mark modification */
++ NULL, /* Edit Mode is generic */
++ NULL, /* Field Validation is generic */
++ NULL /* Choice Request is generic */
++ };
++ size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0]));
++ size_t method = (size_t) (BI->keycode >> ID_Shft) & 0xffff; /* see ID_Mask */
++
++ if ((method >= nMethods) || !(BI->cmd))
++ res = E_SYSTEM_ERROR;
++ else
++ {
++ Generic_Method fct = Generic_Methods[method];
++
++ if (fct)
++ res = fct(BI->cmd, form);
++ else
++ res = (BI->cmd) (form);
++ }
++ }
++#ifdef NCURSES_MOUSE_VERSION
++ else if (KEY_MOUSE == c)
++ {
++ MEVENT event;
++ WINDOW *win = form->win ? form->win : StdScreen(Get_Form_Screen(form));
++ WINDOW *sub = form->sub ? form->sub : win;
++
++ getmouse(&event);
++ if ((event.bstate & (BUTTON1_CLICKED |
++ BUTTON1_DOUBLE_CLICKED |
++ BUTTON1_TRIPLE_CLICKED))
++ && wenclose(win, event.y, event.x))
++ { /* we react only if the click was in the userwin, that means
++ * inside the form display area or at the decoration window.
++ */
++ int ry = event.y, rx = event.x; /* screen coordinates */
++
++ res = E_REQUEST_DENIED;
++ if (mouse_trafo(&ry, &rx, FALSE))
++ { /* rx, ry are now "curses" coordinates */
++ if (ry < sub->_begy)
++ { /* we clicked above the display region; this is
++ * interpreted as "scroll up" request
++ */
++ if (event.bstate & BUTTON1_CLICKED)
++ res = form_driver(form, REQ_PREV_FIELD);
++ else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
++ res = form_driver(form, REQ_PREV_PAGE);
++ else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
++ res = form_driver(form, REQ_FIRST_FIELD);
++ }
++ else if (ry > sub->_begy + sub->_maxy)
++ { /* we clicked below the display region; this is
++ * interpreted as "scroll down" request
++ */
++ if (event.bstate & BUTTON1_CLICKED)
++ res = form_driver(form, REQ_NEXT_FIELD);
++ else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
++ res = form_driver(form, REQ_NEXT_PAGE);
++ else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
++ res = form_driver(form, REQ_LAST_FIELD);
++ }
++ else if (wenclose(sub, event.y, event.x))
++ { /* Inside the area we try to find the hit item */
++ int i;
++
++ ry = event.y;
++ rx = event.x;
++ if (wmouse_trafo(sub, &ry, &rx, FALSE))
++ {
++ int min_field = form->page[form->curpage].pmin;
++ int max_field = form->page[form->curpage].pmax;
++
++ for (i = min_field; i <= max_field; ++i)
++ {
++ FIELD *field = form->field[i];
++
++ if (Field_Is_Selectable(field)
++ && Field_encloses(field, ry, rx) == E_OK)
++ {
++ res = _nc_Set_Current_Field(form, field);
++ if (res == E_OK)
++ res = _nc_Position_Form_Cursor(form);
++ if (res == E_OK
++ && (event.bstate & BUTTON1_DOUBLE_CLICKED))
++ res = E_UNKNOWN_COMMAND;
++ break;
++ }
++ }
++ }
++ }
++ }
++ }
++ else
++ res = E_REQUEST_DENIED;
++ }
++#endif /* NCURSES_MOUSE_VERSION */
++ else if (type == OK)
++ {
++ res = Data_Entry_w(form, c);
++ }
++
++ _nc_Refresh_Current_Field(form);
++ RETURN(res);
++}
++# endif /* USE_WIDEC_SUPPORT */
++
+ /*----------------------------------------------------------------------------
+ Field-Buffer manipulation routines.
+ The effects of setting a buffer are tightly coupled to the core of the form
+@@ -4389,8 +4693,8 @@
+ {
+ FIELD_CELL *p;
+ int res = E_OK;
+- unsigned int i;
+- unsigned int len;
++ int i;
++ int len;
+
+ #if USE_WIDEC_SUPPORT
+ FIELD_CELL *widevalue = 0;
+@@ -4408,7 +4712,7 @@
+ /* for a growable field we must assume zero terminated strings, because
+ somehow we have to detect the length of what should be copied.
+ */
+- unsigned int vlen = strlen(value);
++ int vlen = (int)strlen(value);
+
+ if (vlen > len)
+ {
+@@ -4448,10 +4752,10 @@
+ }
+ else
+ {
+- for (i = 0; i < (unsigned)field->drows; ++i)
++ for (i = 0; i < field->drows; ++i)
+ {
+- (void)mvwin_wchnstr(field->working, 0, i * field->dcols,
+- widevalue + (i * field->dcols),
++ (void)mvwin_wchnstr(field->working, 0, (int)i * field->dcols,
++ widevalue + ((int)i * field->dcols),
+ field->dcols);
+ }
+ for (i = 0; i < len; ++i)
+@@ -4512,7 +4816,7 @@
+ {
+ #if USE_WIDEC_SUPPORT
+ FIELD_CELL *data = Address_Of_Nth_Buffer(field, buffer);
+- unsigned need = 0;
++ size_t need = 0;
+ int size = Buffer_Length(field);
+ int n;
+
+@@ -4526,7 +4830,7 @@
+
+ init_mb(state);
+ next = _nc_wcrtomb(0, data[n].chars[0], &state);
+- if (!isEILSEQ(next))
++ if (next > 0)
+ need += next;
+ }
+ }
+@@ -4613,14 +4917,14 @@
+ {
+ result[need] = wch;
+ }
+- passed += status;
++ passed += (size_t) status;
+ ++need;
+ }
+ else
+ {
+ if (pass)
+ {
+- result[need] = source[passed];
++ result[need] = (wchar_t)source[passed];
+ }
+ ++need;
+ ++passed;
+@@ -4633,7 +4937,7 @@
+ break;
+ result = typeCalloc(wchar_t, need);
+
+- *lengthp = need;
++ *lengthp = (int)need;
+ if (result == 0)
+ break;
+ }
+Index: form/frm_hook.c
+Prereq: 1.15
+--- ncurses-5.9/form/frm_hook.c 2010-01-23 21:12:08.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_hook.c 2012-03-11 00:37:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,13 +32,13 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_hook.c,v 1.15 2010/01/23 21:12:08 tom Exp $")
++MODULE_ID("$Id: frm_hook.c,v 1.16 2012/03/11 00:37:16 tom Exp $")
+
+ /* "Template" macro to generate function to set application specific hook */
+ #define GEN_HOOK_SET_FUNCTION( typ, name ) \
+ NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
+ {\
+- T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), form, func));\
++ T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), (void *) form, func));\
+ (Normalize_Form( form ) -> typ ## name) = func ;\
+ RETURN(E_OK);\
+ }
+Index: form/frm_opts.c
+Prereq: 1.15
+--- ncurses-5.9/form/frm_opts.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_opts.c 2013-08-24 22:58:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_opts.c,v 1.15 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: frm_opts.c,v 1.17 2013/08/24 22:58:47 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -49,8 +49,8 @@
+ {
+ T((T_CALLED("set_form_opts(%p,%d)"), (void *)form, opts));
+
+- opts &= ALL_FORM_OPTS;
+- if (opts & ~ALL_FORM_OPTS)
++ opts &= (Form_Options) ALL_FORM_OPTS;
++ if ((unsigned)opts & ~ALL_FORM_OPTS)
+ RETURN(E_BAD_ARGUMENT);
+ else
+ {
+@@ -71,7 +71,7 @@
+ form_opts(const FORM *form)
+ {
+ T((T_CALLED("form_opts(%p)"), (const void *)form));
+- returnCode((int)(Normalize_Form(form)->opts & ALL_FORM_OPTS));
++ returnCode((Form_Options) ((unsigned)Normalize_Form(form)->opts & ALL_FORM_OPTS));
+ }
+
+ /*---------------------------------------------------------------------------
+@@ -89,8 +89,8 @@
+ {
+ T((T_CALLED("form_opts_on(%p,%d)"), (void *)form, opts));
+
+- opts &= ALL_FORM_OPTS;
+- if (opts & ~ALL_FORM_OPTS)
++ opts &= (Form_Options) ALL_FORM_OPTS;
++ if ((unsigned)opts & ~ALL_FORM_OPTS)
+ RETURN(E_BAD_ARGUMENT);
+ else
+ {
+@@ -114,8 +114,8 @@
+ {
+ T((T_CALLED("form_opts_off(%p,%d)"), (void *)form, opts));
+
+- opts &= ALL_FORM_OPTS;
+- if (opts & ~ALL_FORM_OPTS)
++ opts &= (Form_Options) ALL_FORM_OPTS;
++ if ((unsigned)opts & ~ALL_FORM_OPTS)
+ RETURN(E_BAD_ARGUMENT);
+ else
+ {
+Index: form/frm_page.c
+Prereq: 1.11
+--- ncurses-5.9/form/frm_page.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_page.c 2012-06-10 00:28:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_page.c,v 1.11 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: frm_page.c,v 1.12 2012/06/10 00:28:04 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -58,7 +58,7 @@
+
+ if (!(form->status & _POSTED))
+ {
+- form->curpage = page;
++ form->curpage = (short)page;
+ form->current = _nc_First_Active_Field(form);
+ }
+ else
+Index: form/frm_post.c
+Prereq: 1.10
+--- ncurses-5.9/form/frm_post.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_post.c 2012-06-10 00:27:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_post.c,v 1.10 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: frm_post.c,v 1.11 2012/06/10 00:27:49 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnform
+@@ -77,7 +77,7 @@
+ if ((err = _nc_Set_Form_Page(form, page, form->current)) != E_OK)
+ RETURN(err);
+
+- form->status |= _POSTED;
++ SetStatus(form, _POSTED);
+
+ Call_Hook(form, forminit);
+ Call_Hook(form, fieldinit);
+@@ -117,7 +117,7 @@
+ werase(Get_Form_Window(form));
+ delwin(form->w);
+ form->w = (WINDOW *)0;
+- form->status &= ~_POSTED;
++ ClrStatus(form, _POSTED);
+ RETURN(E_OK);
+ }
+
+Index: form/frm_req_name.c
+Prereq: 1.17
+--- ncurses-5.9/form/frm_req_name.c 2009-10-10 16:17:01.000000000 +0000
++++ ncurses-5.9-20141206/form/frm_req_name.c 2012-07-21 23:17:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: frm_req_name.c,v 1.17 2009/10/10 16:17:01 tom Exp $")
++MODULE_ID("$Id: frm_req_name.c,v 1.18 2012/07/21 23:17:23 tom Exp $")
+
+ static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
+ {
+@@ -144,23 +144,26 @@
+ /* because the table is so small, it doesn't really hurt
+ to run sequentially through it.
+ */
+- unsigned int i = 0;
+- char buf[16];
++ size_t i = 0;
++ char buf[16]; /* longest name is 10 chars */
+
+ T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str)));
+
+- if (str)
++ if (str != 0 && (i = strlen(str)) != 0)
+ {
+- strncpy(buf, str, sizeof(buf));
+- while ((i < sizeof(buf)) && (buf[i] != '\0'))
++ if (i > sizeof(buf) - 2)
++ i = sizeof(buf) - 2;
++ memcpy(buf, str, i);
++ buf[i] = '\0';
++
++ for (i = 0; buf[i] != '\0'; ++i)
+ {
+ buf[i] = (char)toupper(UChar(buf[i]));
+- i++;
+ }
+
+ for (i = 0; i < A_SIZE; i++)
+ {
+- if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
++ if (strcmp(request_names[i], buf) == 0)
+ returnCode(MIN_FORM_COMMAND + (int)i);
+ }
+ }
+Index: form/fty_generic.c
+Prereq: 1.5
+--- ncurses-5.9/form/fty_generic.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fty_generic.c 2012-06-10 00:27:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fty_generic.c,v 1.5 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fty_generic.c,v 1.6 2012/06/10 00:27:49 tom Exp $")
+
+ /*
+ * This is not a full implementation of a field type, but adds some
+@@ -119,7 +119,7 @@
+ if (res)
+ {
+ *res = *_nc_Default_FieldType;
+- res->status |= (_HAS_ARGS | _GENERIC);
++ SetStatus(res, (_HAS_ARGS | _GENERIC));
+ res->fieldcheck.gfcheck = field_check;
+ res->charcheck.gccheck = char_check;
+ res->genericarg = Generic_This_Type;
+Index: form/fty_int.c
+Prereq: 1.25
+--- ncurses-5.9/form/fty_int.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fty_int.c 2012-02-23 10:02:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fty_int.c,v 1.25 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fty_int.c,v 1.26 2012/02/23 10:02:15 tom Exp $")
+
+ #if USE_WIDEC_SUPPORT
+ #define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
+@@ -233,7 +233,8 @@
+ }
+ if (result)
+ {
+- sprintf(buf, "%.*ld", (prec > 0 ? prec : 0), val);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%.*ld", (prec > 0 ? prec : 0), val);
+ set_field_buffer(field, 0, buf);
+ }
+ }
+Index: form/fty_num.c
+Prereq: 1.28
+--- ncurses-5.9/form/fty_num.c 2010-01-23 21:14:36.000000000 +0000
++++ ncurses-5.9-20141206/form/fty_num.c 2012-02-23 10:02:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fty_num.c,v 1.28 2010/01/23 21:14:36 tom Exp $")
++MODULE_ID("$Id: fty_num.c,v 1.29 2012/02/23 10:02:15 tom Exp $")
+
+ #if HAVE_LOCALE_H
+ #include <locale.h>
+@@ -271,7 +271,8 @@
+ }
+ if (result)
+ {
+- sprintf(buf, "%.*f", (prec > 0 ? prec : 0), val);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%.*f", (prec > 0 ? prec : 0), val);
+ set_field_buffer(field, 0, buf);
+ }
+ }
+Index: form/fty_regex.c
+Prereq: 1.24
+--- ncurses-5.9/form/fty_regex.c 2010-01-23 21:14:37.000000000 +0000
++++ ncurses-5.9-20141206/form/fty_regex.c 2012-10-27 20:12:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+
+ #include "form.priv.h"
+
+-MODULE_ID("$Id: fty_regex.c,v 1.24 2010/01/23 21:14:37 tom Exp $")
++MODULE_ID("$Id: fty_regex.c,v 1.25 2012/10/27 20:12:53 tom Exp $")
+
+ #if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
+ #include <regex.h>
+@@ -123,9 +123,8 @@
+ (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
+ {
+ T((T_CREATE("regex_t %p"), (void *)preg->pRegExp));
+- preg->refCount = typeMalloc(unsigned long, 1);
+-
+- *(preg->refCount) = 1;
++ if ((preg->refCount = typeMalloc(unsigned long, 1)) != 0)
++ *(preg->refCount) = 1;
+ }
+ else
+ {
+@@ -151,9 +150,8 @@
+
+ T((T_CREATE("RegExp_Arg %p"), pArg));
+ pArg->compiled_expression = NULL;
+- pArg->refCount = typeMalloc(unsigned long, 1);
+-
+- *(pArg->refCount) = 1;
++ if ((pArg->refCount = typeMalloc(unsigned long, 1)) != 0)
++ *(pArg->refCount) = 1;
+
+ do
+ {
+Index: form/llib-lformtw
+--- ncurses-5.9/form/llib-lformtw 2010-01-09 22:01:40.000000000 +0000
++++ ncurses-5.9-20141206/form/llib-lformtw 2013-12-14 22:18:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey 2010 *
++ * Author: Thomas E. Dickey 2010-on *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -494,6 +494,13 @@
+ int c)
+ { return(*(int *)0); }
+
++#undef form_driver_w
++int form_driver_w(
++ FORM *form,
++ int type,
++ wchar_t c)
++ { return(*(int *)0); }
++
+ #undef set_field_buffer
+ int set_field_buffer(
+ FIELD *field,
+Index: form/llib-lformw
+--- ncurses-5.9/form/llib-lformw 2010-01-09 21:54:33.000000000 +0000
++++ ncurses-5.9-20141206/form/llib-lformw 2013-12-14 22:19:40.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey 2002-2005,2010 *
++ * Author: Thomas E. Dickey 2002-on *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -494,6 +494,13 @@
+ int c)
+ { return(*(int *)0); }
+
++#undef form_driver_w
++int form_driver_w(
++ FORM *form,
++ int type,
++ wchar_t c)
++ { return(*(int *)0); }
++
+ #undef set_field_buffer
+ int set_field_buffer(
+ FIELD *field,
+Index: include/Caps
+Prereq: 1.37
+--- ncurses-5.9/include/Caps 2010-12-04 18:47:13.000000000 +0000
++++ ncurses-5.9-20141206/include/Caps 2011-10-15 23:10:18.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -29,7 +29,7 @@
+ # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
+ # and: Eric S. Raymond <esr@snark.thyrsus.com>
+ #
+-# $Id: Caps,v 1.37 2010/12/04 18:47:13 tom Exp $
++# $Id: Caps,v 1.38 2011/10/15 23:10:18 tom Exp $
+ #
+ # This is the master termcap/terminfo capability table.
+ #
+@@ -738,11 +738,13 @@
+ #%.ad
+ #%
+ #%.in .8i
+-#%The XSI Curses standard added these. They are some post-4.1
+-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+-#%The \fBncurses\fR termcap names for them are invented; according to the
+-#%XSI Curses standard, they have no termcap names. If your compiled terminfo
+-#%entries use these, they may not be binary-compatible with System V terminfo
++#%The XSI Curses standard added these hardcopy capabilities.
++#%They were used in some post-4.1 versions of System V curses,
++#%e.g., Solaris 2.5 and IRIX 6.x.
++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
++#%According to the XSI Curses standard, they have no termcap names.
++#%If your compiled terminfo entries use these,
++#%they may not be binary-compatible with System V terminfo
+ #%entries after SVr4.1; beware!
+ #%
+ #%.na
+@@ -760,7 +762,7 @@
+ enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+ enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+ set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
+ #%.TE
+ #%.ad
+ #
+Index: include/Caps.aix4
+Prereq: 1.8
+--- ncurses-5.9/include/Caps.aix4 2010-12-04 18:47:13.000000000 +0000
++++ ncurses-5.9-20141206/include/Caps.aix4 2011-10-15 23:19:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 2001-2006,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ #
+ # Author: Thomas Dickey
+ #
+-# $Id: Caps.aix4,v 1.8 2010/12/04 18:47:13 tom Exp $
++# $Id: Caps.aix4,v 1.9 2011/10/15 23:19:16 tom Exp $
+ #
+ # This is an adaptation of ncurses' termcap/terminfo capability table, which
+ # is designed to align with AIX 4.x's terminfo.
+@@ -840,11 +840,13 @@
+ #%.ad
+ #%
+ #%.in .8i
+-#%The XSI Curses standard added these. They are some post-4.1
+-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+-#%The \fBncurses\fR termcap names for them are invented; according to the
+-#%XSI Curses standard, they have no termcap names. If your compiled terminfo
+-#%entries use these, they may not be binary-compatible with System V terminfo
++#%The XSI Curses standard added these hardcopy capabilities.
++#%They were used in some post-4.1 versions of System V curses,
++#%e.g., Solaris 2.5 and IRIX 6.x.
++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
++#%According to the XSI Curses standard, they have no termcap names.
++#%If your compiled terminfo entries use these,
++#%they may not be binary-compatible with System V terminfo
+ #%entries after SVr4.1; beware!
+ #%
+ #%.na
+@@ -862,7 +864,7 @@
+ enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+ enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+ set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
+ #%.TE
+ #%.ad
+ #
+Index: include/Caps.hpux11
+Prereq: 1.5
+--- ncurses-5.9/include/Caps.hpux11 2010-12-04 18:47:13.000000000 +0000
++++ ncurses-5.9-20141206/include/Caps.hpux11 2011-10-15 23:20:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ #
+ # Author: Thomas Dickey
+ #
+-# $Id: Caps.hpux11,v 1.5 2010/12/04 18:47:13 tom Exp $
++# $Id: Caps.hpux11,v 1.6 2011/10/15 23:20:04 tom Exp $
+ #
+ # This is an adaptation of ncurses' termcap/terminfo capability table, which
+ # is designed to align with HPUX 11.x's terminfo.
+@@ -746,11 +746,13 @@
+ #%.ad
+ #%
+ #%.in .8i
+-#%The XSI Curses standard added these. They are some post-4.1
+-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+-#%The \fBncurses\fR termcap names for them are invented; according to the
+-#%XSI Curses standard, they have no termcap names. If your compiled terminfo
+-#%entries use these, they may not be binary-compatible with System V terminfo
++#%The XSI Curses standard added these hardcopy capabilities.
++#%They were used in some post-4.1 versions of System V curses,
++#%e.g., Solaris 2.5 and IRIX 6.x.
++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
++#%According to the XSI Curses standard, they have no termcap names.
++#%If your compiled terminfo entries use these,
++#%they may not be binary-compatible with System V terminfo
+ #%entries after SVr4.1; beware!
+ #%
+ #%.na
+@@ -761,7 +763,7 @@
+ #%lw25 lw6 lw2 lw20.
+ #%\fBVariable Cap- TCap Description\fR
+ #%\fBString name Code\fR
+-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
+ enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
+ enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
+ enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
+Index: include/Caps.keys
+Prereq: 1.4
+--- ncurses-5.9/include/Caps.keys 2010-12-04 18:47:13.000000000 +0000
++++ ncurses-5.9-20141206/include/Caps.keys 2013-07-20 17:59:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 2001-2006,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2001-2011,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -29,7 +29,7 @@
+ # Author: Thomas Dickey
+ # and: Ilya Zakharevich
+ #
+-# $Id: Caps.keys,v 1.4 2010/12/04 18:47:13 tom Exp $
++# $Id: Caps.keys,v 1.7 2013/07/20 17:59:24 tom Exp $
+ #
+ # This is an adaptation of ncurses' termcap/terminfo capability table, which
+ # is illustrates an experimental extension to describe alt-, shift- and
+@@ -229,11 +229,11 @@
+ over_strike os bool os - - YBCG- terminal can overstrike
+ status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
+ dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
+-tilde_glitch hz bool hz - - YB-GE can't print ~'s (hazeltine)
++tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine)
+ transparent_underline ul bool ul - - YBCGE underline character overstrikes
+ xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
+-needs_xon_xoff nxon bool nx - - ----- padding won't work, xon/xoff required
+-prtr_silent mc5i bool 5i - - ----- printer won't echo on screen
++needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
++prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
+ hard_cursor chts bool HC - - ----- cursor is hard to see
+ non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
+ no_pad_char npc bool NP - - ----- pad character does not exist
+@@ -277,7 +277,7 @@
+ # These came in with SVr4's color support
+ max_colors colors num Co - - ----- maximum number of colors on screen
+ max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
+-no_color_video ncv num NC - - ----- video attributes that can't be used with colors
++no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
+ #%.TE
+ #%.ad
+ #%
+@@ -828,11 +828,13 @@
+ #%.ad
+ #%
+ #%.in .8i
+-#%The XSI Curses standard added these. They are some post-4.1
+-#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
+-#%The \fBncurses\fR termcap names for them are invented; according to the
+-#%XSI Curses standard, they have no termcap names. If your compiled terminfo
+-#%entries use these, they may not be binary-compatible with System V terminfo
++#%The XSI Curses standard added these hardcopy capabilities.
++#%They were used in some post-4.1 versions of System V curses,
++#%e.g., Solaris 2.5 and IRIX 6.x.
++#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented.
++#%According to the XSI Curses standard, they have no termcap names.
++#%If your compiled terminfo entries use these,
++#%they may not be binary-compatible with System V terminfo
+ #%entries after SVr4.1; beware!
+ #%
+ #%.na
+@@ -850,7 +852,7 @@
+ enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode
+ enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode
+ set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6
+-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
+ #%.TE
+ #%.ad
+ #
+Index: include/Caps.osf1r5
+Prereq: 1.5
+--- ncurses-5.9/include/Caps.osf1r5 2010-12-04 18:47:13.000000000 +0000
++++ ncurses-5.9-20141206/include/Caps.osf1r5 2011-10-15 22:52:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ ##############################################################################
+-# Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ #
+ # Author: Thomas Dickey
+ #
+-# $Id: Caps.osf1r5,v 1.5 2010/12/04 18:47:13 tom Exp $
++# $Id: Caps.osf1r5,v 1.6 2011/10/15 22:52:09 tom Exp $
+ #
+ # This is an adaptation of ncurses' termcap/terminfo capability table, which
+ # is designed to align with OSF/1 version 5 (Tru64) terminfo.
+@@ -769,7 +769,7 @@
+ xoff_character xoffc str XF - - ----- XOFF character
+ xon_character xonc str XN - - ----- XON character
+ zero_motion zerom str Zx - - ----- No motion for subsequent character
+-set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch
++set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap).
+ enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode
+ enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode
+ enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode
+Index: include/MKkey_defs.sh
+Prereq: 1.14
+--- ncurses-5.9/include/MKkey_defs.sh 2003-12-06 17:10:09.000000000 +0000
++++ ncurses-5.9-20141206/include/MKkey_defs.sh 2013-03-09 16:32:01.000000000 +0000
+@@ -1,7 +1,7 @@
+ #! /bin/sh
+-# $Id: MKkey_defs.sh,v 1.14 2003/12/06 17:10:09 tom Exp $
++# $Id: MKkey_defs.sh,v 1.15 2013/03/09 16:32:01 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. #
++# Copyright (c) 2001-2003,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -65,9 +65,12 @@
+ key_event kv1 str V1 KEY_EVENT + ----- We were interrupted by an event
+ EOF
+
++THIS=./`basename $0`
++PARM=./`basename $DATA`
++
+ cat <<EOF
+ /*
+- * These definitions were generated by $0 $DATA
++ * These definitions were generated by $THIS $PARM
+ */
+ EOF
+
+Index: include/MKparametrized.sh
+Prereq: 1.6
+--- ncurses-5.9/include/MKparametrized.sh 2006-04-22 21:36:16.000000000 +0000
++++ ncurses-5.9-20141206/include/MKparametrized.sh 2014-05-24 15:07:19.000000000 +0000
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ ##############################################################################
+-# Copyright (c) 1998-2000,2006 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2006,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -26,7 +26,7 @@
+ # use or other dealings in this Software without prior written #
+ # authorization. #
+ ##############################################################################
+-# $Id: MKparametrized.sh,v 1.6 2006/04/22 21:36:16 tom Exp $
++# $Id: MKparametrized.sh,v 1.7 2014/05/24 15:07:19 tom Exp $
+ #
+ # MKparametrized.sh -- generate indirection vectors for various sort methods
+ #
+@@ -53,10 +53,11 @@
+ # this, that would be cleaner....
+
+ ${AWK-awk} <$CAPS '
+-$3 != "str" {next;}
+-$1 ~ /^acs_/ {print "-1,\t/* ", $2, " */"; count++; next;}
+-$0 ~ /#[0-9]/ {print "1,\t/* ", $2, " */"; count++; next;}
+- {print "0,\t/* ", $2, " */"; count++;}
+-END {printf("} /* %d entries */;\n\n", count);}
++$3 != "str" {next;}
++$1 ~ /^acs_/ {print "-1,\t/* ", $2, " */"; count++; next;}
++$1 ~ /^label_format/ {print "-1,\t/* ", $2, " */"; count++; next;}
++$0 ~ /#[0-9]/ {print "1,\t/* ", $2, " */"; count++; next;}
++ {print "0,\t/* ", $2, " */"; count++;}
++END {printf("} /* %d entries */;\n\n", count);}
+ '
+
+Index: include/MKterm.h.awk.in
+Prereq: 1.58
+--- ncurses-5.9/include/MKterm.h.awk.in 2010-01-09 19:53:26.000000000 +0000
++++ ncurses-5.9-20141206/include/MKterm.h.awk.in 2013-08-17 19:21:56.000000000 +0000
+@@ -1,7 +1,7 @@
+ # vile:awkmode
+ BEGIN {
+ print "/****************************************************************************"
+- print " * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *"
++ print " * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *"
+ print " * *"
+ print " * Permission is hereby granted, free of charge, to any person obtaining a *"
+ print " * copy of this software and associated documentation files (the *"
+@@ -34,7 +34,7 @@
+ print "/* and: Thomas E. Dickey 1995-on */"
+ print "/****************************************************************************/"
+ print ""
+- print "/* $Id: MKterm.h.awk.in,v 1.58 2010/01/09 19:53:26 tom Exp $ */"
++ print "/* $Id: MKterm.h.awk.in,v 1.62 2013/08/17 19:21:56 tom Exp $ */"
+ print ""
+ print "/*"
+ print "** term.h -- Definition of struct term"
+@@ -62,6 +62,12 @@
+ print "#undef NCURSES_SBOOL"
+ print "#define NCURSES_SBOOL @NCURSES_SBOOL@"
+ print ""
++ print "#undef NCURSES_USE_DATABASE"
++ print "#define NCURSES_USE_DATABASE @NCURSES_USE_DATABASE@"
++ print ""
++ print "#undef NCURSES_USE_TERMCAP"
++ print "#define NCURSES_USE_TERMCAP @NCURSES_USE_TERMCAP@"
++ print ""
+ print "#undef NCURSES_XNAMES"
+ print "#define NCURSES_XNAMES @NCURSES_XNAMES@"
+ print ""
+@@ -93,41 +99,6 @@
+ print "#include <termio.h>"
+ print "#define TTY struct termio"
+ print ""
+- print "/* Add definitions to make termio look like termios."
+- print " * But ifdef it, since there are some implementations"
+- print " * that try to do this for us in a fake <termio.h>."
+- print " */"
+- print "#ifndef TCSANOW"
+- print "#define TCSANOW TCSETA"
+- print "#endif"
+- print "#ifndef TCSADRAIN"
+- print "#define TCSADRAIN TCSETAW"
+- print "#endif"
+- print "#ifndef TCSAFLUSH"
+- print "#define TCSAFLUSH TCSETAF"
+- print "#endif"
+- print "#ifndef tcsetattr"
+- print "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)"
+- print "#endif"
+- print "#ifndef tcgetattr"
+- print "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)"
+- print "#endif"
+- print "#ifndef cfgetospeed"
+- print "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)"
+- print "#endif"
+- print "#ifndef TCIFLUSH "
+- print "#define TCIFLUSH 0"
+- print "#endif"
+- print "#ifndef TCOFLUSH "
+- print "#define TCOFLUSH 1"
+- print "#endif"
+- print "#ifndef TCIOFLUSH "
+- print "#define TCIOFLUSH 2"
+- print "#endif"
+- print "#ifndef tcflush"
+- print "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)"
+- print "#endif"
+- print ""
+ print "#else /* !HAVE_TERMIO_H */"
+ print ""
+ print "#if __MINGW32__"
+@@ -281,6 +252,7 @@
+ print "extern NCURSES_EXPORT(int) _nc_get_tty_mode (TTY *buf);"
+ print "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
+ print "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);"
++ print "extern NCURSES_EXPORT(void) _nc_init_termtype (TERMTYPE *const);"
+ print "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE *, char *, int);"
+ print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
+ print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
+Index: include/Makefile.in
+Prereq: 1.40
+--- ncurses-5.9/include/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/include/Makefile.in 2013-08-03 23:10:51.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.40 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.41 2013/08/03 23:10:51 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998,2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -48,6 +48,9 @@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ includedir = @includedir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
+
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+Index: include/curses.h.in
+Prereq: 1.220
+--- ncurses-5.9/include/curses.h.in 2011-01-22 19:47:20.000000000 +0000
++++ ncurses-5.9-20141206/include/curses.h.in 2014-08-09 20:39:44.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+ * and: Thomas E. Dickey 1996-on *
+ ****************************************************************************/
+
+-/* $Id: curses.h.in,v 1.220 2011/01/22 19:47:20 tom Exp $ */
++/* $Id: curses.h.in,v 1.241 2014/08/09 20:39:44 tom Exp $ */
+
+ #ifndef __NCURSES_H
+ #define __NCURSES_H
+@@ -59,6 +59,10 @@
+ */
+ #include <ncurses_dll.h>
+
++#if @HAVE_STDINT_H@
++#include <stdint.h>
++#endif
++
+ /*
+ * User-definable tweak to disable the include of <stdbool.h>.
+ */
+@@ -70,12 +74,6 @@
+ * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses
+ * configured using --disable-macros.
+ */
+-#ifdef NCURSES_NOMACROS
+-#ifndef NCURSES_ATTR_T
+-#define NCURSES_ATTR_T attr_t
+-#endif
+-#endif /* NCURSES_NOMACROS */
+-
+ #ifndef NCURSES_ATTR_T
+ #define NCURSES_ATTR_T int
+ #endif
+@@ -91,11 +89,20 @@
+ #define NCURSES_INLINE @NCURSES_INLINE@
+
+ /*
+- * The internal type used for color values
++ * The internal type used for color values, and for color-pairs. The latter
++ * allows the curses library to enumerate the combinations of foreground and
++ * background colors used by an application, and is normally the product of the
++ * total foreground and background colors.
++ *
++ * X/Open uses "short" for both of these types, ultimately because they are
++ * numbers from the terminal database, which uses 16-bit signed values.
+ */
+ #undef NCURSES_COLOR_T
+ #define NCURSES_COLOR_T short
+
++#undef NCURSES_PAIRS_T
++#define NCURSES_PAIRS_T short
++
+ /*
+ * Definition used to make WINDOW and similar structs opaque.
+ */
+@@ -129,6 +136,13 @@
+ #define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@
+
+ /*
++ * Control type used for tparm's arguments. While X/Open equates long and
++ * char* values, this is not always workable for 64-bit platforms.
++ */
++#undef NCURSES_TPARM_ARG
++#define NCURSES_TPARM_ARG @NCURSES_TPARM_ARG@
++
++/*
+ * NCURSES_CH_T is used in building the library, but not used otherwise in
+ * this header file, since that would make the normal/wide-character versions
+ * of the header incompatible.
+@@ -140,8 +154,8 @@
+ typedef unsigned chtype;
+ typedef unsigned mmask_t;
+ #else
+-typedef unsigned @cf_cv_typeof_chtype@ chtype;
+-typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
++typedef @cf_cv_typeof_chtype@ chtype;
++typedef @cf_cv_typeof_mmask_t@ mmask_t;
+ #endif
+
+ /*
+@@ -151,15 +165,21 @@
+
+ /*
+ * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or
+- * conflicting) when _XOPEN_SOURCE is 500 or greater.
++ * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is
++ * not already defined, e.g., if the platform relies upon nonstandard feature
++ * test macros, define it at this point if the standard feature test macros
++ * indicate that it should be defined.
+ */
+-#undef NCURSES_WIDECHAR
+-#if defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5)
+-#define NCURSES_WIDECHAR
++#ifndef NCURSES_WIDECHAR
++#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500))
++#define NCURSES_WIDECHAR 1
++#else
++#define NCURSES_WIDECHAR 0
+ #endif
++#endif /* NCURSES_WIDECHAR */
+
+ #include <stdarg.h> /* we need va_list */
+-#ifdef NCURSES_WIDECHAR
++#if NCURSES_WIDECHAR
+ #include <stddef.h> /* we want wchar_t */
+ #endif
+
+@@ -231,6 +251,10 @@
+ #define WA_TOP A_TOP
+ #define WA_VERTICAL A_VERTICAL
+
++#if @NCURSES_EXT_FUNCS@
++#define WA_ITALIC A_ITALIC /* ncurses extension */
++#endif
++
+ /* colors */
+ #define COLOR_BLACK 0
+ #define COLOR_RED 1
+@@ -250,7 +274,7 @@
+ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
+ #endif
+
+-#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)])
++#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))])
+
+ /* VT100 symbols begin here */
+ #define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */
+@@ -342,7 +366,7 @@
+
+ typedef chtype attr_t; /* ...must be at least as wide as chtype */
+
+-#ifdef NCURSES_WIDECHAR
++#if NCURSES_WIDECHAR
+
+ #if @NCURSES_LIBUTF8@
+ #ifdef mblen /* libutf8.h defines it w/o undefining first */
+@@ -366,7 +390,7 @@
+ /*
+ * cchar_t stores an array of CCHARW_MAX wide characters. The first is
+ * normally a spacing character. The others are non-spacing. If those
+- * (spacing and nonspacing) do not fill the array, a null L'\0' follows.
++ * (spacing and nonspacing) do not fill the array, a null L'\0' follows.
+ * Otherwise, a null is assumed to follow when extracting via getcchar().
+ */
+ #define CCHARW_MAX @NCURSES_CCHARW_MAX@
+@@ -434,7 +458,7 @@
+
+ NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
+
+-#ifdef NCURSES_WIDECHAR
++#if NCURSES_WIDECHAR
+ cchar_t _bkgrnd; /* current background char/attribute pair */
+ #if @NCURSES_EXT_COLORS@
+ int _color; /* current color-pair for non-space character */
+@@ -556,10 +580,10 @@
+ extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */
+ extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */
+ extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */
+-extern NCURSES_EXPORT(int) attr_get (attr_t *, short *, void *); /* generated */
++extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */
+ extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */
+ extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */
+-extern NCURSES_EXPORT(int) attr_set (attr_t, short, void *); /* generated */
++extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */
+ extern NCURSES_EXPORT(int) baudrate (void); /* implemented */
+ extern NCURSES_EXPORT(int) beep (void); /* implemented */
+ extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */
+@@ -568,13 +592,13 @@
+ extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */
+ extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */
+ extern NCURSES_EXPORT(int) cbreak (void); /* implemented */
+-extern NCURSES_EXPORT(int) chgat (int, attr_t, short, const void *); /* generated */
++extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */
+ extern NCURSES_EXPORT(int) clear (void); /* generated */
+ extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */
+ extern NCURSES_EXPORT(int) clrtobot (void); /* generated */
+ extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */
+-extern NCURSES_EXPORT(int) color_content (short,short*,short*,short*); /* implemented */
+-extern NCURSES_EXPORT(int) color_set (short,void*); /* generated */
++extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */
++extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */
+ extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */
+ extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */
+ extern NCURSES_EXPORT(int) curs_set (int); /* implemented */
+@@ -613,8 +637,8 @@
+ extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */
+ extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */
+ extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */
+-extern NCURSES_EXPORT(int) init_color (short,short,short,short); /* implemented */
+-extern NCURSES_EXPORT(int) init_pair (short,short,short); /* implemented */
++extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */
++extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */
+ extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */
+ extern NCURSES_EXPORT(int) insch (chtype); /* generated */
+ extern NCURSES_EXPORT(int) insdelln (int); /* generated */
+@@ -638,7 +662,7 @@
+ extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */
+ extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */
+ extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */
+-extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, short, const void *); /* generated */
++extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */
+ extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */
+ extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */
+ extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */
+@@ -664,7 +688,7 @@
+ extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */
+ extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */
+ extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */
+-extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, short, const void *);/* generated */
++extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */
+ extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */
+ extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */
+ extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */
+@@ -698,7 +722,7 @@
+ extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */
+ extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */
+ extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */
+-extern NCURSES_EXPORT(int) pair_content (short,short*,short*); /* implemented */
++extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */
+ extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */
+ extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */
+ extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */
+@@ -732,9 +756,9 @@
+ extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */
+ extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */
+-extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,short,void*); /* implemented */
++extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */
+ extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */
+-extern NCURSES_EXPORT(int) slk_color (short); /* implemented */
++extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */
+ extern NCURSES_EXPORT(int) slk_init (int); /* implemented */
+ extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */
+ extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */
+@@ -757,6 +781,7 @@
+ extern NCURSES_EXPORT(int) ungetch (int); /* implemented */
+ extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */
+ extern NCURSES_EXPORT(void) use_env (bool); /* implemented */
++extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */
+ extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */
+ extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */
+ extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */
+@@ -772,18 +797,18 @@
+ extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */
+ extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */
+ extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */
+-extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, short *, void *); /* generated */
++extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */
+ extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */
+ extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */
+-extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, short, void *); /* generated */
++extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */
+ extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */
+ extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */
+ extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */
+-extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, short, const void *);/* implemented */
++extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */
+ extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */
+ extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */
+ extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */
+-extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,short,void*); /* implemented */
++extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */
+ extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */
+ extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */
+ extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */
+@@ -832,7 +857,7 @@
+ #if NCURSES_TPARM_VARARGS
+ extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* special */
+ #else
+-extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long); /* special */
++extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */
+ extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...); /* special */
+ #endif
+
+@@ -854,7 +879,7 @@
+ /*
+ * vid_attr() was implemented originally based on a draft of X/Open curses.
+ */
+-#ifndef NCURSES_WIDECHAR
++#if !NCURSES_WIDECHAR
+ #define vid_attr(a,pair,opts) vidattr(a)
+ #endif
+
+@@ -903,6 +928,7 @@
+ extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */
+ extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */
+ extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */
++extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */
+ extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* @GENERATED_EXT_FUNCS@ */
+
+ #else
+@@ -929,7 +955,7 @@
+ extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, short, short*, short*, short*); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */
+@@ -945,8 +971,8 @@
+ extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, short, short, short, short); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, short, short, short); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */
+@@ -963,7 +989,7 @@
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, short, short*, short*); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */
+@@ -978,9 +1004,9 @@
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, short, void*); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, short); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */
+@@ -994,6 +1020,7 @@
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
+ #if @NCURSES_EXT_FUNCS@
+@@ -1022,7 +1049,7 @@
+ /* attributes */
+
+ #define NCURSES_ATTR_SHIFT 8
+-#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
++#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT))
+
+ #define A_NORMAL (@cf_cv_1UL@ - @cf_cv_1UL@)
+ #define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
+@@ -1044,6 +1071,10 @@
+ #define A_TOP NCURSES_BITS(@cf_cv_1UL@,21)
+ #define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22)
+
++#if @NCURSES_EXT_FUNCS@
++#define A_ITALIC NCURSES_BITS(@cf_cv_1UL@,23) /* ncurses extension */
++#endif
++
+ /*
+ * Most of the pseudo functions are macros that either provide compatibility
+ * with older versions of curses, or provide inline functionality to improve
+@@ -1084,7 +1115,7 @@
+ */
+
+ #define wgetstr(w, s) wgetnstr(w, s, -1)
+-#define getnstr(s, n) wgetnstr(stdscr, s, n)
++#define getnstr(s, n) wgetnstr(stdscr, s, (n))
+
+ #define setterm(term) setupterm(term, 1, (int *)0)
+
+@@ -1115,9 +1146,9 @@
+ #define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
+
+ #if !NCURSES_OPAQUE
+-#if defined(NCURSES_WIDECHAR) && @NCURSES_EXT_COLORS@
++#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@
+ #define wattrset(win,at) ((win) \
+- ? ((win)->_color = PAIR_NUMBER(at), \
++ ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \
+ (win)->_attrs = NCURSES_CAST(attr_t, at), \
+ OK) \
+ : ERR)
+@@ -1137,15 +1168,15 @@
+
+ #define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0)
+ #define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
+-#define hline(ch, n) whline(stdscr, ch, n)
+-#define vline(ch, n) wvline(stdscr, ch, n)
++#define hline(ch, n) whline(stdscr, ch, (n))
++#define vline(ch, n) wvline(stdscr, ch, (n))
+
+ #define winstr(w, s) winnstr(w, s, -1)
+ #define winchstr(w, s) winchnstr(w, s, -1)
+ #define winsstr(w, s) winsnstr(w, s, -1)
+
+ #if !NCURSES_OPAQUE
+-#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1)
++#define redrawwin(win) wredrawln(win, 0, ((win) ? (win)->_maxy+1 : -1))
+ #endif /* NCURSES_OPAQUE */
+
+ #define waddstr(win,str) waddnstr(win,str,-1)
+@@ -1154,55 +1185,55 @@
+ /*
+ * These apply to the first 256 color pairs.
+ */
+-#define COLOR_PAIR(n) NCURSES_BITS(n, 0)
+-#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
++#define COLOR_PAIR(n) NCURSES_BITS((n), 0)
++#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
+
+ /*
+ * pseudo functions for standard screen
+ */
+
+-#define addch(ch) waddch(stdscr,ch)
+-#define addchnstr(str,n) waddchnstr(stdscr,str,n)
+-#define addchstr(str) waddchstr(stdscr,str)
+-#define addnstr(str,n) waddnstr(stdscr,str,n)
+-#define addstr(str) waddnstr(stdscr,str,-1)
+-#define attroff(at) wattroff(stdscr,at)
+-#define attron(at) wattron(stdscr,at)
+-#define attrset(at) wattrset(stdscr,at)
+-#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o)
+-#define attr_off(a,o) wattr_off(stdscr,a,o)
+-#define attr_on(a,o) wattr_on(stdscr,a,o)
+-#define attr_set(a,c,o) wattr_set(stdscr,a,c,o)
+-#define bkgd(ch) wbkgd(stdscr,ch)
+-#define bkgdset(ch) wbkgdset(stdscr,ch)
+-#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o)
++#define addch(ch) waddch(stdscr,(ch))
++#define addchnstr(str,n) waddchnstr(stdscr,(str),(n))
++#define addchstr(str) waddchstr(stdscr,(str))
++#define addnstr(str,n) waddnstr(stdscr,(str),(n))
++#define addstr(str) waddnstr(stdscr,(str),-1)
++#define attroff(at) wattroff(stdscr,(at))
++#define attron(at) wattron(stdscr,(at))
++#define attrset(at) wattrset(stdscr,(at))
++#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o))
++#define attr_off(a,o) wattr_off(stdscr,(a),(o))
++#define attr_on(a,o) wattr_on(stdscr,(a),(o))
++#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o))
++#define bkgd(ch) wbkgd(stdscr,(ch))
++#define bkgdset(ch) wbkgdset(stdscr,(ch))
++#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o))
+ #define clear() wclear(stdscr)
+ #define clrtobot() wclrtobot(stdscr)
+ #define clrtoeol() wclrtoeol(stdscr)
+-#define color_set(c,o) wcolor_set(stdscr,c,o)
++#define color_set(c,o) wcolor_set(stdscr,(c),(o))
+ #define delch() wdelch(stdscr)
+ #define deleteln() winsdelln(stdscr,-1)
+-#define echochar(c) wechochar(stdscr,c)
++#define echochar(c) wechochar(stdscr,(c))
+ #define erase() werase(stdscr)
+ #define getch() wgetch(stdscr)
+-#define getstr(str) wgetstr(stdscr,str)
++#define getstr(str) wgetstr(stdscr,(str))
+ #define inch() winch(stdscr)
+-#define inchnstr(s,n) winchnstr(stdscr,s,n)
+-#define inchstr(s) winchstr(stdscr,s)
+-#define innstr(s,n) winnstr(stdscr,s,n)
+-#define insch(c) winsch(stdscr,c)
+-#define insdelln(n) winsdelln(stdscr,n)
++#define inchnstr(s,n) winchnstr(stdscr,(s),(n))
++#define inchstr(s) winchstr(stdscr,(s))
++#define innstr(s,n) winnstr(stdscr,(s),(n))
++#define insch(c) winsch(stdscr,(c))
++#define insdelln(n) winsdelln(stdscr,(n))
+ #define insertln() winsdelln(stdscr,1)
+-#define insnstr(s,n) winsnstr(stdscr,s,n)
+-#define insstr(s) winsstr(stdscr,s)
+-#define instr(s) winstr(stdscr,s)
+-#define move(y,x) wmove(stdscr,y,x)
++#define insnstr(s,n) winsnstr(stdscr,(s),(n))
++#define insstr(s) winsstr(stdscr,(s))
++#define instr(s) winstr(stdscr,(s))
++#define move(y,x) wmove(stdscr,(y),(x))
+ #define refresh() wrefresh(stdscr)
+-#define scrl(n) wscrl(stdscr,n)
+-#define setscrreg(t,b) wsetscrreg(stdscr,t,b)
++#define scrl(n) wscrl(stdscr,(n))
++#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b))
+ #define standend() wstandend(stdscr)
+ #define standout() wstandout(stdscr)
+-#define timeout(delay) wtimeout(stdscr,delay)
++#define timeout(delay) wtimeout(stdscr,(delay))
+ #define wdeleteln(win) winsdelln(win,-1)
+ #define winsertln(win) winsdelln(win,1)
+
+@@ -1210,70 +1241,75 @@
+ * mv functions
+ */
+
+-#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
+-#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
+-#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
+-#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
+-#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
+-#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
+-#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
+-#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
+-#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
+-#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
+-#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
+-#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
+-#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
+-#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
+-#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
+-#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
+-#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
+-#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
+-#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
+-#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
+-
+-#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
+-#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)
+-#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)
+-#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)
+-#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
+-#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)
+-#define mvdelch(y,x) mvwdelch(stdscr,y,x)
+-#define mvgetch(y,x) mvwgetch(stdscr,y,x)
+-#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
+-#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
+-#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)
+-#define mvinch(y,x) mvwinch(stdscr,y,x)
+-#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)
+-#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)
+-#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)
+-#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
+-#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)
+-#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)
+-#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)
+-#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
++#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch)))
++#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n)))
++#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1))
++#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n)))
++#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1))
++#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win))
++#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o)))
++#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win))
++#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n)))
++#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str)))
++#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n)))
++#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
++#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n)))
++#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s)))
++#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n)))
++#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c)))
++#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n)))
++#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s)))
++#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s)))
++#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n)))
++
++#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch))
++#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n))
++#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str))
++#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n))
++#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str))
++#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o))
++#define mvdelch(y,x) mvwdelch(stdscr,(y),(x))
++#define mvgetch(y,x) mvwgetch(stdscr,(y),(x))
++#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n))
++#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str))
++#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n))
++#define mvinch(y,x) mvwinch(stdscr,(y),(x))
++#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n))
++#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s))
++#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n))
++#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c))
++#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n))
++#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s))
++#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s))
++#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n))
+
+ /*
+ * Some wide-character functions can be implemented without the extensions.
+ */
+ #if !NCURSES_OPAQUE
+-#define getbkgd(win) ((win)->_bkgd)
++#define getbkgd(win) ((win) ? ((win)->_bkgd) : 0)
+ #endif /* NCURSES_OPAQUE */
+
+ #define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
+ #define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
+
+ #if !NCURSES_OPAQUE
+-#if defined(NCURSES_WIDECHAR) && @NCURSES_EXT_COLORS@
+-#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \
+- (win)->_color = (p), \
++#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@
++#define wattr_set(win,a,p,opts) (((win) \
++ ? ((win)->_attrs = ((a) & ~A_COLOR), \
++ (win)->_color = (p)) \
++ : OK), \
+ OK)
+-#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+- (void)((p) != (void *)0 && (*(p) = (short)(win)->_color)), \
++#define wattr_get(win,a,p,opts) ((void)(((a) != (void *)0) ? (*(a) = (win) ? (win)->_attrs : 0) : OK), \
++ (void)(((p) != (void *)0) ? (*(p) = (NCURSES_PAIRS_T) ((win) ? (win)->_color : 0)) : OK), \
+ OK)
+ #else
+-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p)), OK)
+-#define wattr_get(win,a,p,opts) ((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+- (void)((p) != (void *)0 && (*(p) = (short)PAIR_NUMBER((win)->_attrs))), \
++#define wattr_set(win,a,p,opts) (((win) \
++ ? ((win)->_attrs = (((a) & ~A_COLOR) | (attr_t)COLOR_PAIR(p))) \
++ : OK), \
++ OK)
++#define wattr_get(win,a,p,opts) ((void)(((a) != (void *)0) ? (*(a) = (win) ? (win)->_attrs : 0) : OK), \
++ (void)(((p) != (void *)0) ? (*(p) = (NCURSES_PAIRS_T) ((win) ? PAIR_NUMBER((win)->_attrs) : 0)) : OK), \
+ OK)
+ #endif
+ #endif /* NCURSES_OPAQUE */
+@@ -1312,6 +1348,7 @@
+ #define is_scrollok(win) ((win) ? (win)->_scroll : FALSE)
+ #define is_subwin(win) ((win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE)
+ #define is_syncok(win) ((win) ? (win)->_sync : FALSE)
++#define wgetdelay(win) ((win) ? (win)->_delay : 0)
+ #define wgetparent(win) ((win) ? (win)->_parent : 0)
+ #define wgetscrreg(win,t,b) ((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
+ #endif
+Index: include/curses.tail
+Prereq: 1.20
+--- ncurses-5.9/include/curses.tail 2010-03-28 19:10:55.000000000 +0000
++++ ncurses-5.9-20141206/include/curses.tail 2011-10-29 20:03:22.000000000 +0000
+@@ -1,4 +1,4 @@
+-/* $Id: curses.tail,v 1.20 2010/03/28 19:10:55 tom Exp $ */
++/* $Id: curses.tail,v 1.21 2011/10/29 20:03:22 tom Exp $ */
+ /*
+ * vile:cmode:
+ * This file is part of ncurses, designed to be appended after curses.h.in
+@@ -133,7 +133,7 @@
+ extern NCURSES_EXPORT(char *) _tracechar (int);
+ extern NCURSES_EXPORT(char *) _tracechtype (chtype);
+ extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
+-#ifdef NCURSES_WIDECHAR
++#if NCURSES_WIDECHAR
+ #define _tracech_t _tracecchar_t
+ extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
+ #define _tracech_t2 _tracecchar_t2
+Index: include/curses.wide
+Prereq: 1.42
+--- ncurses-5.9/include/curses.wide 2010-03-30 00:39:41.000000000 +0000
++++ ncurses-5.9-20141206/include/curses.wide 2014-02-01 22:00:32.000000000 +0000
+@@ -1,4 +1,4 @@
+-/* $Id: curses.wide,v 1.42 2010/03/30 00:39:41 tom Exp $ */
++/* $Id: curses.wide,v 1.46 2014/02/01 22:00:32 tom Exp $ */
+ /*
+ * vile:cmode:
+ * This file is part of ncurses, designed to be appended after curses.h.in
+@@ -6,11 +6,11 @@
+ */
+ #define _XOPEN_CURSES 1
+
+-#ifdef NCURSES_WIDECHAR
++#if NCURSES_WIDECHAR
+
+ extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+
+-#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
++#define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))])
+
+ #define WACS_BSSB NCURSES_WACS('l')
+ #define WACS_SSBB NCURSES_WACS('m')
+@@ -135,7 +135,7 @@
+ extern NCURSES_EXPORT(int) get_wch (wint_t *); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* generated:WIDEC */
+-extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*); /* implemented */
++extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*); /* implemented */
+ extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) in_wch (cchar_t *); /* generated:WIDEC */
+@@ -185,12 +185,12 @@
+ extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* implemented */
+-extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* implemented */
++extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *); /* implemented */
+ extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* implemented */
+ extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented */
+ extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented */
+-extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *); /* implemented */
+-extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, NCURSES_OUTC); /* implemented */
++extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *); /* implemented */
++extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, void *, NCURSES_OUTC); /* implemented */
+ extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* generated:WIDEC */
+ extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* implemented */
+ extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */
+@@ -221,8 +221,8 @@
+ extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t); /* implemented:SP_FUNC */
+ extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, short, void *); /* implemented:SP_FUNC */
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, short, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *); /* implemented:SP_FUNC */
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
+ #endif
+
+ #ifndef NCURSES_NOMACROS
+@@ -230,77 +230,77 @@
+ /*
+ * XSI curses macros for XPG4 conformance.
+ */
+-#define add_wch(c) wadd_wch(stdscr,c)
+-#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n)
+-#define add_wchstr(str) wadd_wchstr(stdscr,str)
+-#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n)
+-#define addwstr(wstr) waddwstr(stdscr,wstr)
+-#define bkgrnd(c) wbkgrnd(stdscr,c)
+-#define bkgrndset(c) wbkgrndset(stdscr,c)
+-#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
+-#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0)
+-#define echo_wchar(c) wecho_wchar(stdscr,c)
+-#define get_wch(c) wget_wch(stdscr,c)
+-#define get_wstr(t) wget_wstr(stdscr,t)
+-#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch)
+-#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n)
+-#define hline_set(c,n) whline_set(stdscr,c,n)
+-#define in_wch(c) win_wch(stdscr,c)
+-#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n)
+-#define in_wchstr(c) win_wchstr(stdscr,c)
+-#define innwstr(c,n) winnwstr(stdscr,c,n)
+-#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n)
+-#define ins_wch(c) wins_wch(stdscr,c)
+-#define ins_wstr(t) wins_wstr(stdscr,t)
+-#define inwstr(c) winwstr(stdscr,c)
+-#define vline_set(c,n) wvline_set(stdscr,c,n)
+-#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
+-#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
+-#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
+-#define win_wchstr(w,c) win_wchnstr(w,c,-1)
+-#define wins_wstr(w,t) wins_nwstr(w,t,-1)
++#define add_wch(c) wadd_wch(stdscr,(c))
++#define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n))
++#define add_wchstr(str) wadd_wchstr(stdscr,(str))
++#define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n))
++#define addwstr(wstr) waddwstr(stdscr,(wstr))
++#define bkgrnd(c) wbkgrnd(stdscr,(c))
++#define bkgrndset(c) wbkgrndset(stdscr,(c))
++#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br)
++#define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),0,0,0,0)
++#define echo_wchar(c) wecho_wchar(stdscr,(c))
++#define get_wch(c) wget_wch(stdscr,(c))
++#define get_wstr(t) wget_wstr(stdscr,(t))
++#define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch))
++#define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n))
++#define hline_set(c,n) whline_set(stdscr,(c),(n))
++#define in_wch(c) win_wch(stdscr,(c))
++#define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n))
++#define in_wchstr(c) win_wchstr(stdscr,(c))
++#define innwstr(c,n) winnwstr(stdscr,(c),(n))
++#define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n))
++#define ins_wch(c) wins_wch(stdscr,(c))
++#define ins_wstr(t) wins_wstr(stdscr,(t))
++#define inwstr(c) winwstr(stdscr,(c))
++#define vline_set(c,n) wvline_set(stdscr,(c),(n))
++#define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1)
++#define waddwstr(win,wstr) waddnwstr((win),(wstr),-1)
++#define wget_wstr(w,t) wgetn_wstr((w),(t),-1)
++#define win_wchstr(w,c) win_wchnstr((w),(c),-1)
++#define wins_wstr(w,t) wins_nwstr((w),(t),-1)
+
+ #if !NCURSES_OPAQUE
+-#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
++#define wgetbkgrnd(win,wch) ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK)
+ #endif
+
+-#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
+-#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n)
+-#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s)
+-#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n)
+-#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr)
+-#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c)
+-#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t)
+-#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n)
+-#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n)
+-#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c)
+-#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n)
+-#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c)
+-#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n)
+-#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n)
+-#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c)
+-#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t)
+-#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c)
+-#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n)
+-
+-#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
+-#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
+-#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
+-#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
+-#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
+-#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
+-#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
+-#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
+-#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
+-#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
+-#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
+-#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
+-#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
+-#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
+-#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
+-#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
+-#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
+-#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
++#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c))
++#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n))
++#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s))
++#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n))
++#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr))
++#define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c))
++#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t))
++#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n))
++#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n))
++#define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c))
++#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n))
++#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c))
++#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n))
++#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n))
++#define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c))
++#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t))
++#define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c))
++#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n))
++
++#define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c)))
++#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n)))
++#define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s)))
++#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n)))
++#define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr)))
++#define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c)))
++#define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t)))
++#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n)))
++#define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n)))
++#define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c)))
++#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n)))
++#define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c)))
++#define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n)))
++#define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n)))
++#define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c)))
++#define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t)))
++#define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c)))
++#define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n)))
+
+ #endif /* NCURSES_NOMACROS */
+
+Index: include/hashed_db.h
+Prereq: 1.5
+--- ncurses-5.9/include/hashed_db.h 2006-08-19 15:58:34.000000000 +0000
++++ ncurses-5.9-20141206/include/hashed_db.h 2014-04-12 22:41:10.000000000 +0000
+@@ -31,7 +31,7 @@
+ ****************************************************************************/
+
+ /*
+- * $Id: hashed_db.h,v 1.5 2006/08/19 15:58:34 tom Exp $
++ * $Id: hashed_db.h,v 1.6 2014/04/12 22:41:10 tom Exp $
+ */
+
+ #ifndef HASHED_DB_H
+@@ -41,6 +41,8 @@
+
+ #if USE_HASHED_DB
+
++#define DB_DBM_HSEARCH 0 /* quiet gcc -Wundef with db6 */
++
+ #include <db.h>
+
+ #ifndef DBN_SUFFIX
+Index: include/headers
+Prereq: 1.10
+--- ncurses-5.9/include/headers 2009-09-05 17:46:30.000000000 +0000
++++ ncurses-5.9-20141206/include/headers 2013-10-20 00:32:21.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: headers,v 1.10 2009/09/05 17:46:30 tom Exp $
++# $Id: headers,v 1.13 2013/10/20 00:32:21 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -29,14 +29,24 @@
+ #
+ # Author: Thomas E. Dickey 1996-on
+ #
+-term.h
+ curses.h
+ unctrl.h
+-termcap.h
+ ncurses_dll.h
++
++# Support for termcap (and tic, etc.), which can be a separate library
++@ termlib
++term.h
++termcap.h
++
++# Headers used only for tic, other programs using internal interfaces
+ @ ticlib
+ $(srcdir)/tic.h
+ $(srcdir)/term_entry.h
+ $(srcdir)/nc_tparm.h
+
++# Porting
++@ port_win32con
++$(srcdir)/ncurses_mingw.h
++$(srcdir)/nc_mingw.h
++
+ # vile:makemode
+Index: include/nc_alloc.h
+Prereq: 1.18
+--- ncurses-5.9/include/nc_alloc.h 2010-11-20 22:59:49.000000000 +0000
++++ ncurses-5.9-20141206/include/nc_alloc.h 2013-01-26 21:56:51.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,10 +29,11 @@
+ /****************************************************************************
+ * Author: Thomas E. Dickey 1996-on *
+ ****************************************************************************/
+-/* $Id: nc_alloc.h,v 1.18 2010/11/20 22:59:49 tom Exp $ */
++/* $Id: nc_alloc.h,v 1.22 2013/01/26 21:56:51 tom Exp $ */
+
+ #ifndef NC_ALLOC_included
+ #define NC_ALLOC_included 1
++/* *INDENT-OFF* */
+
+ #ifdef __cplusplus
+ extern "C" {
+@@ -94,6 +95,7 @@
+ /* doalloc.c */
+ extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
+ #if !HAVE_STRDUP
++#undef strdup
+ #define strdup _nc_strdup
+ extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
+ #endif
+@@ -101,12 +103,14 @@
+ /* entries.c */
+ extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
+
+-#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
+-#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
+-#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
++#define typeMalloc(type,elts) (type *)malloc((size_t)(elts)*sizeof(type))
++#define typeCalloc(type,elts) (type *)calloc((size_t)(elts),sizeof(type))
++#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (size_t)(elts)*sizeof(type))
+
+ #ifdef __cplusplus
+ }
+ #endif
+
++/* *INDENT-ON* */
++
+ #endif /* NC_ALLOC_included */
+Index: include/nc_string.h
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/include/nc_string.h 2013-12-15 01:09:19.000000000 +0000
+@@ -0,0 +1,77 @@
++/****************************************************************************
++ * Copyright (c) 2012,2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++
++#ifndef STRING_HACKS_H
++#define STRING_HACKS_H 1
++
++#include <ncurses_cfg.h>
++
++/*
++ * $Id: nc_string.h,v 1.4 2013/12/15 01:09:19 tom Exp $
++ *
++ * String-hacks. Use these macros to stifle warnings on (presumably) correct
++ * uses of strcat, strcpy and sprintf.
++ *
++ * By the way -
++ * A fundamental limitation of the interfaces (and frequent issue in bug
++ * reports using these functions) is that sizes are passed as unsigned values
++ * (with associated sign-extension problems), limiting their effectiveness
++ * when checking for buffer overflow.
++ */
++
++#ifdef __cplusplus
++#define NCURSES_VOID /* nothing */
++#else
++#define NCURSES_VOID (void)
++#endif
++
++#if USE_STRING_HACKS && HAVE_STRLCAT
++#define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,n))
++#else
++#define _nc_STRCAT(d,s,n) NCURSES_VOID strcat((d),(s))
++#endif
++
++#if USE_STRING_HACKS && HAVE_STRLCPY
++#define _nc_STRCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n))
++#else
++#define _nc_STRCPY(d,s,n) NCURSES_VOID strcpy((d),(s))
++#endif
++
++#if USE_STRING_HACKS && HAVE_SNPRINTF
++#define _nc_SPRINTF NCURSES_VOID snprintf
++#define _nc_SLIMIT(n) NCURSES_CAST(size_t,n),
++#else
++#define _nc_SPRINTF NCURSES_VOID sprintf
++#define _nc_SLIMIT(n) /* nothing */
++#endif
++
++#endif /* STRING_HACKS_H */
+Index: include/nc_termios.h
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/include/nc_termios.h 2014-05-03 19:40:10.000000000 +0000
+@@ -0,0 +1,161 @@
++/****************************************************************************
++ * Copyright (c) 2011,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2011 *
++ ****************************************************************************/
++
++/* $Id: nc_termios.h,v 1.3 2014/05/03 19:40:10 juergen Exp $ */
++
++#ifndef NC_TERMIOS_included
++#define NC_TERMIOS_included 1
++
++#if HAVE_TERMIOS_H && HAVE_TCGETATTR
++
++#else /* !HAVE_TERMIOS_H */
++
++#if HAVE_TERMIO_H
++
++/* Add definitions to make termio look like termios.
++ * But ifdef it, since there are some implementations
++ * that try to do this for us in a fake <termio.h>.
++ */
++#ifndef TCSADRAIN
++#define TCSADRAIN TCSETAW
++#endif
++#ifndef TCSAFLUSH
++#define TCSAFLUSH TCSETAF
++#endif
++#ifndef tcsetattr
++#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)
++#endif
++#ifndef tcgetattr
++#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)
++#endif
++#ifndef cfgetospeed
++#define cfgetospeed(t) ((t)->c_cflag & CBAUD)
++#endif
++#ifndef TCIFLUSH
++#define TCIFLUSH 0
++#endif
++#ifndef tcflush
++#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)
++#endif
++
++#else /* !HAVE_TERMIO_H */
++
++#if __MINGW32__
++
++/* lflag bits */
++#define ISIG 0x0001
++#define ICANON 0x0002
++#define ECHO 0x0004
++#define ECHOE 0x0008
++#define ECHOK 0x0010
++#define ECHONL 0x0020
++#define NOFLSH 0x0040
++#define IEXTEN 0x0100
++
++#define VEOF 4
++#define VERASE 5
++#define VINTR 6
++#define VKILL 7
++#define VMIN 9
++#define VQUIT 10
++#define VTIME 16
++
++/* iflag bits */
++#define IGNBRK 0x00001
++#define BRKINT 0x00002
++#define IGNPAR 0x00004
++#define INPCK 0x00010
++#define ISTRIP 0x00020
++#define INLCR 0x00040
++#define IGNCR 0x00080
++#define ICRNL 0x00100
++#define IXON 0x00400
++#define IXOFF 0x01000
++#define PARMRK 0x10000
++
++/* oflag bits */
++#define OPOST 0x00001
++
++/* cflag bits */
++#define CBAUD 0x0100f
++#define B0 0x00000
++#define B50 0x00001
++#define B75 0x00002
++#define B110 0x00003
++#define B134 0x00004
++#define B150 0x00005
++#define B200 0x00006
++#define B300 0x00007
++#define B600 0x00008
++#define B1200 0x00009
++#define B1800 0x0000a
++#define B2400 0x0000b
++#define B4800 0x0000c
++#define B9600 0x0000d
++
++#define CSIZE 0x00030
++#define CS8 0x00030
++#define CSTOPB 0x00040
++#define CREAD 0x00080
++#define PARENB 0x00100
++#define PARODD 0x00200
++#define HUPCL 0x00400
++#define CLOCAL 0x00800
++
++#define TCIFLUSH 0
++#define TCSADRAIN 3
++
++#ifndef cfgetospeed
++#define cfgetospeed(t) ((t)->c_cflag & CBAUD)
++#endif
++
++#ifndef tcsetattr
++#define tcsetattr(fd, opt, arg) _nc_mingw_tcsetattr(fd, opt, arg)
++#endif
++
++#ifndef tcgetattr
++#define tcgetattr(fd, arg) _nc_mingw_tcgetattr(fd, arg)
++#endif
++
++#ifndef tcflush
++#define tcflush(fd, queue) _nc_mingw_tcflush(fd, queue)
++#endif
++
++#undef ttyname
++#define ttyname(fd) NULL
++
++#endif /* __MINGW32__ */
++#endif /* HAVE_TERMIO_H */
++
++#endif /* HAVE_TERMIOS_H */
++
++#endif /* NC_TERMIOS_included */
+Index: include/nc_tparm.h
+Prereq: 1.5
+--- ncurses-5.9/include/nc_tparm.h 2010-12-25 20:27:22.000000000 +0000
++++ ncurses-5.9-20141206/include/nc_tparm.h 2012-02-18 21:34:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,7 +30,7 @@
+ * Author: Thomas E. Dickey 2006 *
+ ****************************************************************************/
+
+-/* $Id: nc_tparm.h,v 1.5 2010/12/25 20:27:22 tom Exp $ */
++/* $Id: nc_tparm.h,v 1.6 2012/02/18 21:34:42 tom Exp $ */
+
+ #ifndef NC_TPARM_included
+ #define NC_TPARM_included 1
+@@ -40,8 +40,12 @@
+ * assumption of the varargs code.
+ */
+ #ifndef TPARM_ARG
++#ifdef NCURSES_TPARM_ARG
++#define TPARM_ARG NCURSES_TPARM_ARG
++#else
+ #define TPARM_ARG long
+ #endif
++#endif /* TPARAM_ARG */
+
+ #define TPARM_N(n) (TPARM_ARG)(n)
+
+Index: include/ncurses_defs
+Prereq: 1.46
+--- ncurses-5.9/include/ncurses_defs 2011-03-22 09:17:59.000000000 +0000
++++ ncurses-5.9-20141206/include/ncurses_defs 2014-09-05 08:46:16.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: ncurses_defs,v 1.46 2011/03/22 09:17:59 tom Exp $
++# $Id: ncurses_defs,v 1.66 2014/09/05 08:46:16 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2000-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 2000-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -33,7 +33,7 @@
+
+ BROKEN_LINKER
+ BSD_TPUTS
+-CC_HAS_PROTOS
++CGETENT_CONST /* nothing */
+ CPP_HAS_PARAM_INIT
+ CURSES_ACS_ARRAY acs_map
+ CURSES_WACS_ARRAY _nc_wacs
+@@ -41,6 +41,7 @@
+ ETIP_NEEDS_MATH_H
+ GCC_NORETURN /* nothing */
+ GCC_UNUSED /* nothing */
++HAVE_ASSUME_DEFAULT_COLORS
+ HAVE_BIG_CORE
+ HAVE_BSD_CGETENT
+ HAVE_BSD_SIGNAL_H
+@@ -69,6 +70,7 @@
+ HAVE_GPP_BUILTIN_H
+ HAVE_GXX_BUILTIN_H
+ HAVE_HAS_KEY
++HAVE_INTTYPES_H
+ HAVE_IOSTREAM
+ HAVE_ISASCII
+ HAVE_ISSETUGID
+@@ -102,6 +104,7 @@
+ HAVE_POLL
+ HAVE_POLL_H
+ HAVE_PURIFY
++HAVE_PUTENV
+ HAVE_PUTWC
+ HAVE_PUTWIN 1
+ HAVE_REGEXPR_H_FUNCS
+@@ -115,6 +118,7 @@
+ HAVE_SELECT
+ HAVE_SETBUF
+ HAVE_SETBUFFER
++HAVE_SETENV
+ HAVE_SETUPTERM 1
+ HAVE_SETVBUF
+ HAVE_SGTTY_H
+@@ -123,7 +127,11 @@
+ HAVE_SIZECHANGE
+ HAVE_SLK_COLOR
+ HAVE_SLK_INIT 1
++HAVE_SNPRINTF
++HAVE_STDINT_H
+ HAVE_STRDUP
++HAVE_STRLCAT
++HAVE_STRLCPY
+ HAVE_STRSTR
+ HAVE_SYMLINK
+ HAVE_SYS_BSDTYPES_H
+@@ -153,10 +161,17 @@
+ HAVE_TYPEINFO
+ HAVE_TYPE_ATTR_T
+ HAVE_TYPE_SIGACTION
++HAVE_UNCTRL_H 1
+ HAVE_UNISTD_H
+ HAVE_UNLINK
+ HAVE_USE_DEFAULT_COLORS
++HAVE_USE_ENV 1
++HAVE_USE_EXTENDED_NAMES
++HAVE_USE_SCREEN
++HAVE_USE_WINDOW
+ HAVE_VFSCANF
++HAVE_VIDPUTS 1
++HAVE_VID_PUTS 1
+ HAVE_VSNPRINTF
+ HAVE_VSSCANF
+ HAVE_WCSRTOMBS
+@@ -175,11 +190,12 @@
+ NCURSES_EXT_COLORS
+ NCURSES_EXT_FUNCS
+ NCURSES_NO_PADDING
++NCURSES_OSPEED_COMPAT
+ NCURSES_PATHSEP ':'
++NCURSES_WIDECHAR
+ NEED_PTEM_H
+ NO_LEAKS
+ PURE_TERMINFO
+-RETSIGTYPE
+ STDC_HEADERS
+ SVR4_ACTION
+ SVR4_TERMIO
+@@ -189,7 +205,6 @@
+ TIME_WITH_SYS_TIME
+ TYPEOF_CHTYPE
+ USE_COLORFGBG
+-USE_DATABASE
+ USE_GETCAP
+ USE_GETCAP_CACHE
+ USE_HARD_TABS
+@@ -205,9 +220,9 @@
+ USE_SAFE_SPRINTF
+ USE_SCROLL_HINTS
+ USE_SIGWINCH
++USE_STRING_HACKS
+ USE_SYMLINKS
+ USE_SYSMOUSE
+-USE_TERMCAP
+ USE_WEAK_SYMBOLS
+ USE_WIDEC_SUPPORT
+ USE_XMC_SUPPORT
+Index: include/ncurses_dll.h.in
+Prereq: 1.8
+--- ncurses-5.9/include/ncurses_dll.h.in 2009-04-04 22:26:27.000000000 +0000
++++ ncurses-5.9-20141206/include/ncurses_dll.h.in 2014-08-02 21:30:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -25,11 +25,27 @@
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
+-/* $Id: ncurses_dll.h.in,v 1.8 2009/04/04 22:26:27 tom Exp $ */
++/* $Id: ncurses_dll.h.in,v 1.9 2014/08/02 21:30:20 tom Exp $ */
+
+ #ifndef NCURSES_DLL_H_incl
+ #define NCURSES_DLL_H_incl 1
+
++/* 2014-08-02 workaround for broken MinGW compiler.
++ * Oddly, only TRACE is mapped to trace - the other -D's are okay.
++ * suggest TDM as an alternative.
++ */
++#if defined(__MINGW64__)
++#elif defined(__MINGW32__)
++#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8)
++
++#ifdef trace
++#undef trace
++#define TRACE
++#endif
++
++#endif /* broken compiler */
++#endif /* MingW */
++
+ /*
+ * For reentrant code, we map the various global variables into SCREEN by
+ * using functions to access them.
+Index: include/ncurses_mingw.h
+Prereq: 1.1
+--- ncurses-5.9/include/ncurses_mingw.h 2008-12-14 19:22:16.000000000 +0000
++++ ncurses-5.9-20141206/include/ncurses_mingw.h 2014-05-03 19:40:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -31,10 +31,10 @@
+ * *
+ ****************************************************************************/
+
+-/* $Id: ncurses_mingw.h,v 1.1 2008/12/14 19:22:16 juergen Exp $ */
++/* $Id: ncurses_mingw.h,v 1.3 2014/05/03 19:40:19 juergen Exp $ */
+
+ /*
+- * This is a placholder up to now and describes what needs to be implemented
++ * This is a placeholder up to now and describes what needs to be implemented
+ * to support I/O to external terminals with ncurses on the Windows OS.
+ */
+
+@@ -47,118 +47,36 @@
+ #undef TERMIOS
+ #define TERMIOS 1
+
+-#define InvalidHandle ((TERM_HANDLE)-1)
+-#define InvalidConsoleHandle(s) ((s)==InvalidHandle)
+-
+ typedef unsigned char cc_t;
+-typedef unsigned int speed_t;
+ typedef unsigned int tcflag_t;
++typedef unsigned int speed_t;
++typedef unsigned short otcflag_t;
++typedef unsigned char ospeed_t;
+
+-#define NCCS 32
++#define NCCS 18
+ struct termios
+ {
+- tcflag_t c_iflag; /* input mode */
+- tcflag_t c_oflag; /* output mode */
+- tcflag_t c_cflag; /* control mode */
+- tcflag_t c_lflag; /* local mode */
+- cc_t c_line; /* line discipline */
+- cc_t c_cc[NCCS]; /* control characters */
+- speed_t c_ispeed; /* input speed */
+- speed_t c_ospeed; /* c_ospeed */
++ tcflag_t c_iflag;
++ tcflag_t c_oflag;
++ tcflag_t c_cflag;
++ tcflag_t c_lflag;
++ char c_line;
++ cc_t c_cc[NCCS];
++ speed_t c_ispeed;
++ speed_t c_ospeed;
+ };
+
+-/* c_cc chars */
+-#define VINTR 0
+-#define VQUIT 1
+-#define VERASE 2
+-#define VKILL 3
+-#define VEOF 4
+-#define VTIME 5
+-#define VMIN 6
+-
+-/* c_iflag bits */
+-#define ISTRIP 0000040
+-#define INLCR 0000100
+-#define IGNCR 0000200
+-#define ICRNL 0000400
+-#define BRKINT 0000002
+-#define PARMRK 0000010
+-#define IXON 0002000
+-#define IGNBRK 0000001
+-#define IGNPAR 0000004
+-#define INPCK 0000020
+-#define IXOFF 0010000
+-
+-/* c_oflag bits */
+-#define OPOST 0000001
+-
+-/* c_cflag bit meaning */
+-#define CBAUD 0010017
+-#define CSIZE 0000060
+-#define CS8 0000060
+-#define B0 0000000
+-#define B50 0000001
+-#define B75 0000002
+-#define B110 0000003
+-#define B134 0000004
+-#define B150 0000005
+-#define B200 0000006
+-#define B300 0000007
+-#define B600 0000010
+-#define B1200 0000011
+-#define B1800 0000012
+-#define B2400 0000013
+-#define B4800 0000014
+-#define B9600 0000015
+-#define CLOCAL 0004000
+-#define CREAD 0000200
+-#define CSTOPB 0000100
+-#define HUPCL 0002000
+-#define PARENB 0000400
+-#define PARODD 0001000
+-
+-/* c_lflag bits */
+-#define ECHO 0000010
+-#define ECHONL 0000100
+-#define ISIG 0000001
+-#define IEXTEN 0100000
+-#define ICANON 0000002
+-#define NOFLSH 0000200
+-#define ECHOE 0000020
+-#define ECHOK 0000040
+-
+-/* tcflush() */
+-#define TCIFLUSH 0
+-
+-/* tcsetattr uses these */
+-#define TCSADRAIN 1
+-
+-/* ioctls */
+-#define TCGETA 0x5405
+-#define TCFLSH 0x540B
+-#define TIOCGWINSZ 0x5413
+-
+-extern int _nc_mingw_ioctl(int fd, long int request, struct termios* arg);
+-extern void _nc_set_term_driver(void* term);
+-
+-#ifndef cfgetospeed
+-#define cfgetospeed(t) ((t)->c_cflag & CBAUD)
+-#endif
+-
+-#ifndef tcsetattr
+-#define tcsetattr(fd, cmd, arg) _nc_mingw_ioctl(fd, cmd, arg)
+-#endif
+-
+-#ifndef tcgetattr
+-#define tcgetattr(fd, arg) _nc_mingw_ioctl(fd, TCGETA, arg)
+-#endif
+-
+-#ifndef tcflush
+-#define tcflush(fd, arg) _nc_mingw_ioctl(fd, TCFLSH, arg)
+-#endif
+-
+-#undef ttyname
+-#define ttyname(fd) NULL
++extern NCURSES_EXPORT(int) _nc_mingw_tcsetattr(
++ int fd,
++ int optional_actions,
++ const struct termios* arg);
++extern NCURSES_EXPORT(int) _nc_mingw_tcgetattr(
++ int fd,
++ struct termios* arg);
++extern NCURSES_EXPORT(int) _nc_mingw_tcflush(
++ int fd,
++ int queue);
++extern NCURSES_EXPORT(void) _nc_set_term_driver(void* term);
+
+-#endif
+-#endif
++#endif /* _NC_MINGWH */
++#endif /* __MINGW32__ */
+Index: include/term_entry.h
+Prereq: 1.37
+--- ncurses-5.9/include/term_entry.h 2009-07-11 16:52:29.000000000 +0000
++++ ncurses-5.9-20141206/include/term_entry.h 2014-11-01 14:47:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+ * and: Thomas E. Dickey 1998-on *
+ ****************************************************************************/
+
+-/* $Id: term_entry.h,v 1.37 2009/07/11 16:52:29 tom Exp $ */
++/* $Id: term_entry.h,v 1.45 2014/11/01 14:47:00 tom Exp $ */
+
+ /*
+ * term_entry.h -- interface to entry-manipulation code
+@@ -47,28 +47,46 @@
+
+ #include <term.h>
+
++ /*
++ * see db_iterator.c - this enumeration lists the places searched for a
++ * terminal description and defines the order in which they are searched.
++ */
++ typedef enum {
++ dbdTIC = 0, /* special, used by tic when writing entry */
++#if NCURSES_USE_DATABASE
++ dbdEnvOnce, /* the $TERMINFO environment variable */
++ dbdHome, /* $HOME/.terminfo */
++ dbdEnvList, /* the $TERMINFO_DIRS environment variable */
++ dbdCfgList, /* the compiled-in TERMINFO_DIRS value */
++ dbdCfgOnce, /* the compiled-in TERMINFO value */
++#endif
++#if NCURSES_USE_TERMCAP
++ dbdEnvOnce2, /* the $TERMCAP environment variable */
++ dbdEnvList2, /* the $TERMPATH environment variable */
++ dbdCfgList2, /* the compiled-in TERMPATH */
++#endif
++ dbdLAST
++ } DBDIRS;
++
+ #define MAX_USES 32
+ #define MAX_CROSSLINKS 16
+
+-typedef struct entry {
+- TERMTYPE tterm;
+- unsigned nuses;
+- struct
+- {
+- char *name;
+- struct entry *link;
+- long line;
+- }
+- uses[MAX_USES];
+- int ncrosslinks;
+- struct entry *crosslinks[MAX_CROSSLINKS];
+- long cstart, cend;
+- long startline;
+- struct entry *next;
+- struct entry *last;
+-}
+-ENTRY;
+-
++ typedef struct entry {
++ TERMTYPE tterm;
++ unsigned nuses;
++ struct {
++ char *name;
++ struct entry *link;
++ long line;
++ } uses[MAX_USES];
++ int ncrosslinks;
++ struct entry *crosslinks[MAX_CROSSLINKS];
++ long cstart, cend;
++ long startline;
++ struct entry *next;
++ struct entry *last;
++ } ENTRY;
++/* *INDENT-OFF* */
+ #if NCURSES_XNAMES
+ #define NUM_BOOLEANS(tp) (tp)->num_Booleans
+ #define NUM_NUMBERS(tp) (tp)->num_Numbers
+@@ -132,7 +150,7 @@
+
+ /* alloc_ttype.c: elementary allocation code */
+ extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *);
+-extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *);
++extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *);
+
+ /* free_ttype.c: elementary allocation code */
+ extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
+@@ -152,7 +170,7 @@
+ extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *);
+
+ /* write_entry.c: writing an entry to the file system */
+-extern NCURSES_EXPORT(void) _nc_set_writedir (char *);
++extern NCURSES_EXPORT(void) _nc_set_writedir (const char *);
+ extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE *const);
+
+ /* comp_parse.c: entry list handling */
+@@ -166,9 +184,9 @@
+
+ /* trace_xnames.c */
+ extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
++/* *INDENT-ON* */
+
+ #ifdef __cplusplus
+ }
+ #endif
+-
+-#endif /* NCURSES_TERM_ENTRY_H_incl */
++#endif /* NCURSES_TERM_ENTRY_H_incl */
+Index: include/tic.h
+Prereq: 1.65
+--- ncurses-5.9/include/tic.h 2009-08-08 17:52:46.000000000 +0000
++++ ncurses-5.9-20141206/include/tic.h 2012-03-17 18:22:10.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,14 +33,14 @@
+ ****************************************************************************/
+
+ /*
+- * $Id: tic.h,v 1.65 2009/08/08 17:52:46 tom Exp $
++ * $Id: tic.h,v 1.69 2012/03/17 18:22:10 tom Exp $
+ * tic.h - Global variables and structures for the terminfo
+ * compiler.
+ */
+
+ #ifndef __TIC_H
+ #define __TIC_H
+-
++/* *INDENT-OFF* */
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -224,6 +224,12 @@
+
+ #define NOTFOUND ((struct name_table_entry *) 0)
+
++/*
++ * The casts are required for correct sign-propagation with systems such as
++ * AIX, IRIX64, Solaris which default to unsigned characters. The C standard
++ * leaves this detail unspecified.
++ */
++
+ /* out-of-band values for representing absent capabilities */
+ #define ABSENT_BOOLEAN ((signed char)-1) /* 255 */
+ #define ABSENT_NUMERIC (-1)
+@@ -248,6 +254,8 @@
+ #define TERMINFO "/usr/share/terminfo"
+ #endif
+
++#ifdef NCURSES_TERM_ENTRY_H_incl
++
+ /* access.c */
+ extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *);
+ extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *);
+@@ -270,6 +278,7 @@
+ extern NCURSES_EXPORT_VAR(int) _nc_curr_col;
+ extern NCURSES_EXPORT_VAR(int) _nc_curr_line;
+ extern NCURSES_EXPORT_VAR(int) _nc_syntax;
++extern NCURSES_EXPORT_VAR(int) _nc_strict_bsd;
+ extern NCURSES_EXPORT_VAR(long) _nc_comment_end;
+ extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
+ extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
+@@ -314,23 +323,6 @@
+ extern const char * _nc_progname;
+
+ /* db_iterator.c */
+-typedef enum {
+- dbdTIC = 0,
+-#if USE_DATABASE
+- dbdEnvOnce,
+- dbdHome,
+- dbdEnvList,
+- dbdCfgList,
+- dbdCfgOnce,
+-#endif
+-#if USE_TERMCAP
+- dbdEnvOnce2,
+- dbdEnvList2,
+- dbdCfgList2,
+-#endif
+- dbdLAST
+-} DBDIRS;
+-
+ extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *);
+ extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
+ extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *);
+@@ -339,8 +331,11 @@
+ /* write_entry.c */
+ extern NCURSES_EXPORT(int) _nc_tic_written (void);
+
++#endif /* NCURSES_TERM_ENTRY_H_incl */
++
+ #ifdef __cplusplus
+ }
+ #endif
+
++/* *INDENT-ON* */
+ #endif /* __TIC_H */
+Index: man/MKada_config.in
+Prereq: 1.5
+--- ncurses-5.9/man/MKada_config.in 2011-03-26 14:44:51.000000000 +0000
++++ ncurses-5.9-20141206/man/MKada_config.in 2014-06-07 19:32:52.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2010,2011 Free Software Foundation, Inc. *
++.\" Copyright (c) 2010-2011,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: MKada_config.in,v 1.5 2011/03/26 14:44:51 tom Exp $
++.\" $Id: MKada_config.in,v 1.8 2014/06/07 19:32:52 tom Exp $
+ .TH ADACURSES "1" "" "" "User Commands"
+ .SH NAME
+ adacurses\-config \- helper script for AdaCurses libraries
+@@ -50,6 +50,71 @@
+ .TP
+ \fB\-\-help\fR
+ prints a list of the \fBadacurses\-config\fP script's options.
++.PP
++If no options are given, \fBadacurses\-config\fP prints the combination
++of
++\fB\-\-cflags\fR and
++\fB\-\-libs\fR
++that \fBgnatmake\fP expects (see example).
++.SH EXAMPLE
++.PP
++For example, supposing that you want to compile the "Hello World!"
++program for AdaCurses.
++Make a file named "hello.adb":
++.RS
++.nf
++.ft CW
++with Terminal_Interface.Curses; use Terminal_Interface.Curses;
++
++procedure Hello is
++
++ Visibility : Cursor_Visibility := Invisible;
++ done : Boolean := False;
++ c : Key_Code;
++
++begin
++
++ Init_Screen;
++ Set_Echo_Mode (False);
++
++ Set_Cursor_Visibility (Visibility);
++ Set_Timeout_Mode (Standard_Window, Non_Blocking, 0);
++
++ Move_Cursor (Line => Lines / 2, Column => (Columns - 12) / 2);
++ Add (Str => "Hello World!");
++
++ while not done loop
++
++ c := Get_Keystroke (Standard_Window);
++ case c is
++ when Character'Pos ('q') => done := True;
++ when others => null;
++ end case;
++
++ Nap_Milli_Seconds (50);
++ end loop;
++
++ End_Windows;
++
++end Hello;
++.fi
++.RE
++.PP
++Then, using
++.RS
++.ft CW
++gnatmake `adacurses-config --cflags` hello -largs `adacurses-config --libs`
++.ft
++.RE
++.PP
++or (simpler):
++.RS
++.ft CW
++gnatmake hello `adacurses-config`
++.ft
++.RE
++.PP
++you will compile and link the program.
+ .SH "SEE ALSO"
+ \fBcurses\fR(3X)
+ .PP
+Index: man/Makefile.in
+Prereq: 1.45
+--- ncurses-5.9/man/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/man/Makefile.in 2013-08-04 20:23:20.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.45 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.47 2013/08/04 20:23:20 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -41,8 +41,12 @@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
++datarootdir = @datarootdir@
+ datadir = @datadir@
+ mandir = @mandir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
+
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+Index: man/clear.1
+Prereq: 1.8
+--- ncurses-5.9/man/clear.1 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/clear.1 2013-06-22 22:22:11.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: clear.1,v 1.8 2010/12/04 18:36:44 tom Exp $
++.\" $Id: clear.1,v 1.10 2013/06/22 22:22:11 tom Exp $
+ .TH @CLEAR@ 1 ""
+ .ds n 5
+ .SH NAME
+@@ -35,9 +35,10 @@
+ \fB@CLEAR@\fR
+ .br
+ .SH DESCRIPTION
+-\fB@CLEAR@\fR clears your screen if this is possible. It looks in the
+-environment for the terminal type and then in the \fBterminfo\fR database to
+-figure out how to clear the screen.
++\fB@CLEAR@\fR clears your screen if this is possible,
++including its scrollback buffer (if the extended "E3" capability is defined).
++\fB@CLEAR@\fR looks in the environment for the terminal type and then in the
++\fBterminfo\fR database to determine how to clear the screen.
+ .PP
+ \fB@CLEAR@\fR ignores any command-line parameters that may be present.
+ .SH SEE ALSO
+Index: man/curs_add_wch.3x
+Prereq: 1.14
+--- ncurses-5.9/man/curs_add_wch.3x 2011-01-15 15:27:43.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_add_wch.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. *
++.\" Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_add_wch.3x,v 1.14 2011/01/15 15:27:43 tom Exp $
++.\" $Id: curs_add_wch.3x,v 1.15 2012/11/03 23:03:59 tom Exp $
+ .TH curs_add_wch 3X ""
+ .de bP
+ .IP \(bu 4
+@@ -176,7 +176,7 @@
+ WACS_D_VLINE 0x2551 | double vertical line
+ WACS_D_PLUS 0x256c + double large plus or crossover
+ .TE
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ .PP
+ All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+ .PP
+Index: man/curs_add_wchstr.3x
+Prereq: 1.9
+--- ncurses-5.9/man/curs_add_wchstr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_add_wchstr.3x 2012-11-03 22:54:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,13 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_add_wchstr.3x,v 1.9 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp $
+ .TH curs_add_wchstr 3X ""
++.de bP
++.IP \(bu 4
++..
++.na
++.hy 0
+ .SH NAME
+ \fBadd_wchstr\fR,
+ \fBadd_wchnstr\fR,
+@@ -37,10 +42,12 @@
+ \fBmvadd_wchnstr\fR,
+ \fBmvwadd_wchstr\fR,
+ \fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window
++.ad
++.hy
+ .SH SYNOPSIS
+-.B #include <curses.h>
+-.PP
+ .nf
++\fB#include <curses.h>\fR
++.PP
+ \fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR
+ .br
+ \fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+@@ -58,38 +65,53 @@
+ \fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
+ .fi
+ .SH DESCRIPTION
+-These routines copy the array of complex characters \fIwchstr\fR
+-into the window image structure at and after the current cursor position.
+-The four routines with \fIn\fR as the last
+-argument copy at most \fIn\fR elements, but no more than will fit on the line.
++These functions copy the (null-terminated)
++array of complex characters \fIwchstr\fR
++into the window image structure
++starting at the current cursor position.
++The four functions with \fIn\fR as the last
++argument copy at most \fIn\fR elements,
++but no more than will fit on the line.
+ If \fBn\fR=\fB\-1\fR then the whole array is copied,
+ to the maximum number of characters that will fit on the line.
+ .PP
+ The window cursor is \fInot\fR advanced.
+-These routines work faster than \fBwaddnstr\fR.
+-On the other hand, they do not perform checking
++These functions work faster than \fBwaddnstr\fR.
++On the other hand:
++.bP
++they do not perform checking
+ (such as for the newline, backspace, or carriage return characters),
++.bP
+ they do not advance the current cursor position,
+-they do not expand other control characters to ^-escapes,
+-and they truncate the string if it crosses the right margin,
++.bP
++they do not expand other control characters to ^-escapes, and
++.bP
++they truncate the string if it crosses the right margin,
+ rather than wrapping it around to the new line.
+ .PP
+-These routines end successfully
++These functions end successfully
+ on encountering a null \fIcchar_t\fR, or
+ when they have filled the current line.
+ If a complex character cannot completely fit at the end of the current line,
+ the remaining columns are filled with the background character and rendition.
+-.SH NOTES
+-All functions except \fBwadd_wchnstr\fR may be macros.
+-.SH RETURN VALUES
+-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
++.SH RETURN VALUE
++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
++.PP
++X/Open does not define any error conditions.
++This implementation returns an error
++if the window pointer is null.
+ .PP
+ Functions with a "mv" prefix first perform a cursor movement using
+ \fBwmove\fP, and return an error if the position is outside the window,
+ or if the window pointer is null.
++.SH NOTES
++All functions except \fBwadd_wchnstr\fR may be macros.
+ .SH PORTABILITY
+-All these entry points are described in the XSI Curses standard, Issue 4.
++These entry points are described in the XSI Curses standard, Issue 4.
+ .SH SEE ALSO
+-\fBcurses\fR(3X),
+-\fBcurs_addchstr\fR(3X),
+-\fBcurs_addwstr\fR(3X)
++\fBcurs_addwstr\fR(3X),
++\fBcurses\fR(3X).
++.PP
++Comparable functions in the narrow-character (ncurses) library are
++described in
++\fBcurs_addchstr\fR(3X).
+Index: man/curs_addch.3x
+Prereq: 1.32
+--- ncurses-5.9/man/curs_addch.3x 2011-01-15 14:15:10.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_addch.3x 2014-05-24 19:47:41.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,8 +27,11 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_addch.3x,v 1.32 2011/01/15 14:15:10 tom Exp $
++.\" $Id: curs_addch.3x,v 1.33 2014/05/24 19:47:41 tom Exp $
+ .TH curs_addch 3X ""
++.de bP
++.IP \(bu 4
++..
+ .SH NAME
+ \fBaddch\fR,
+ \fBwaddch\fR,
+@@ -55,17 +58,29 @@
+ The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put
+ the character \fIch\fR into the given window at its current window position,
+ which is then advanced. They are analogous to \fBputchar\fR in \fBstdio\fR(3).
+-If the advance is at the right margin, the cursor automatically wraps to the
+-beginning of the next line. At the bottom of the current scrolling region, if
+-\fBscrollok\fR is enabled, the scrolling region is scrolled up one line.
++If the advance is at the right margin:
++.bP
++The cursor automatically wraps to the beginning of the next line.
++.bP
++At the bottom of the current scrolling region,
++and if \fBscrollok\fR is enabled,
++the scrolling region is scrolled up one line.
++.bP
++If \fBscrollok\fR is not enabled,
++writing a character at the lower right margin succeeds.
++However, an error is returned because
++it is not possible to wrap to a new line
+ .PP
+ If \fIch\fR is a tab, newline, or backspace,
+-the cursor is moved appropriately within the window.
++the cursor is moved appropriately within the window:
++.bP
+ Backspace moves the cursor one character left; at the left
+ edge of a window it does nothing.
++.bP
+ 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.
++.bP
+ Tabs are considered to be at every eighth column.
+ The tab interval may be altered by setting the \fBTABSIZE\fR variable.
+ .PP
+Index: man/curs_addchstr.3x
+Prereq: 1.15
+--- ncurses-5.9/man/curs_addchstr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_addchstr.3x 2012-11-03 22:54:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,11 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_addchstr.3x,v 1.15 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp $
+ .TH curs_addchstr 3X ""
++.de bP
++.IP \(bu 4
++..
+ .na
+ .hy 0
+ .SH NAME
+@@ -42,6 +45,7 @@
+ .ad
+ .hy
+ .SH SYNOPSIS
++.nf
+ \fB#include <curses.h>\fR
+ .PP
+ \fBint addchstr(const chtype *chstr);\fR
+@@ -59,24 +63,33 @@
+ \fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR
+ .br
+ \fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR
++.fi
+ .SH DESCRIPTION
+-These routines copy \fIchstr\fR into the window image structure at and after
+-the current cursor position. The four routines with \fIn\fR as the last
+-argument copy at most \fIn\fR elements, but no more than will fit on the line.
+-If \fBn\fR=\fB\-1\fR then the whole string is copied, to the maximum number of
+-characters that will fit on the line.
++These functions copy the (null-terminated)
++\fIchstr\fR array
++into the window image structure
++starting at the current cursor position.
++The four functions with \fIn\fR as the last
++argument copy at most \fIn\fR elements,
++but no more than will fit on the line.
++If \fBn\fR=\fB\-1\fR then the whole array is copied,
++to the maximum number of characters that will fit on the line.
+ .PP
+-The window cursor is \fInot\fR advanced, and these routines work faster than
+-\fBwaddnstr\fR. On the other hand, they do not perform any kind of checking
+-(such as for the newline, backspace, or carriage return characters), they do not
+-advance the current cursor position, they do not expand other control characters
+-to ^-escapes, and they truncate the string if it crosses the right margin,
++The window cursor is \fInot\fR advanced.
++These functions work faster than \fBwaddnstr\fR.
++On the other hand:
++.bP
++they do not perform checking
++(such as for the newline, backspace, or carriage return characters),
++.bP
++they do not advance the current cursor position,
++.bP
++they do not expand other control characters to ^-escapes, and
++.bP
++they truncate the string if it crosses the right margin,
+ rather than wrapping it around to the new line.
+-.SH RETURN VALUES
+-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
+-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
+-successful completion, unless otherwise noted in the preceding routine
+-descriptions.
++.SH RETURN VALUE
++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+ .PP
+ X/Open does not define any error conditions.
+ This implementation returns an error
+@@ -86,10 +99,11 @@
+ \fBwmove\fP, and return an error if the position is outside the window,
+ or if the window pointer is null.
+ .SH NOTES
+-Note that all routines except \fBwaddchnstr\fR may be macros.
++All functions except \fBwaddchnstr\fR may be macros.
+ .SH PORTABILITY
+ These entry points are described in the XSI Curses standard, Issue 4.
+ .SH SEE ALSO
++\fBcurs_addstr\fR(3X),
+ \fBcurses\fR(3X).
+ .PP
+ Comparable functions in the wide-character (ncursesw) library are
+Index: man/curs_addstr.3x
+Prereq: 1.16
+--- ncurses-5.9/man/curs_addstr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_addstr.3x 2012-11-03 22:57:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,11 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_addstr.3x,v 1.16 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp $
+ .TH curs_addstr 3X ""
++.de bP
++.IP \(bu 4
++..
+ .na
+ .hy 0
+ .SH NAME
+@@ -62,34 +65,37 @@
+ \fBint mvwaddnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr, int \fR\fIn\fR\fB);\fR
+ .fi
+ .SH DESCRIPTION
+-These routines write the characters of the (null-terminated) character string
++These functions write the (null-terminated) character string
+ \fIstr\fR on the given window.
+ It is similar to calling \fBwaddch\fR once for each character in the string.
+-The four routines with \fIn\fR as the last argument
+-write at most \fIn\fR characters.
+-If \fIn\fR is \-1, then the entire string will be added,
+-up to the maximum number of characters that will fit on the line,
++.PP
++The \fImv\fR functions perform cursor movement once, before writing any
++characters.
++Thereafter, the cursor is advanced as a side-effect of writing to the window.
++.PP
++The four functions with \fIn\fR as the last argument
++write at most \fIn\fR characters,
+ or until a terminating null is reached.
++If \fIn\fR is \-1, then the entire string will be added.
+ .SH RETURN VALUE
+-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
+-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
+-successful completion.
++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
+ .PP
+ X/Open does not define any error conditions.
+ This implementation returns an error
++.bP
+ if the window pointer is null or
++.bP
+ if the string pointer is null or
++.bP
+ if the corresponding calls to \fBwaddch\fP return an error.
+ .PP
+ Functions with a "mv" prefix first perform a cursor movement using
+ \fBwmove\fP, and return an error if the position is outside the window,
+ or if the window pointer is null.
+ .SH NOTES
+-Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
+-macros.
++All of these functions except \fBwaddnstr\fR may be macros.
+ .SH PORTABILITY
+-All these entry points are described in the XSI Curses standard, Issue 4. The
+-XSI errors EILSEQ and EOVERFLOW, associated with extended-level conformance,
+-are not yet detected.
++These functions are described in the XSI Curses standard, Issue 4.
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBcurs_addch\fR(3X).
++\fBcurses\fR(3X),
++\fBcurs_addch\fR(3X).
+Index: man/curs_addwstr.3x
+Prereq: 1.10
+--- ncurses-5.9/man/curs_addwstr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_addwstr.3x 2012-11-03 22:57:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,11 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_addwstr.3x,v 1.10 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp $
+ .TH curs_addwstr 3X ""
++.de bP
++.IP \(bu 4
++..
+ .na
+ .hy 0
+ .SH NAME
+@@ -62,31 +65,39 @@
+ \fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
+ .fi
+ .SH DESCRIPTION
+-These routines write the characters of the
++These functions write the characters of the
+ (null-terminated) \fBwchar_t\fR character string
+ \fIwstr\fR on the given window.
+ It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
+ then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
+ .PP
+-The \fImv\fR routines perform cursor movement once, before writing any
++The \fImv\fR functions perform cursor movement once, before writing any
+ characters.
+ Thereafter, the cursor is advanced as a side-effect of writing to the window.
+ .PP
+-The four routines with \fIn\fR as the last argument
+-write at most \fIn\fR \fBwchar_t\fR characters.
+-If \fIn\fR is \-1, then the entire string will be added,
+-up to the maximum number of characters that will fit on the line,
++The four functions with \fIn\fR as the last argument
++write at most \fIn\fR \fBwchar_t\fR characters,
+ or until a terminating null is reached.
+-.SH RETURN VALUES
+-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
++If \fIn\fR is \-1, then the entire string will be added.
++.SH RETURN VALUE
++All functions return the integer \fBERR\fR upon failure and \fBOK\fR on success.
++.PP
++X/Open does not define any error conditions.
++This implementation returns an error
++.bP
++if the window pointer is null or
++.bP
++if the string pointer is null or
++.bP
++if the corresponding calls to \fBwadd_wch\fP return an error.
+ .PP
+ Functions with a "mv" prefix first perform a cursor movement using
+ \fBwmove\fP, and return an error if the position is outside the window,
+ or if the window pointer is null.
+ .SH NOTES
+-Note that all of these routines except \fBwaddnwstr\fR may be macros.
++All of these functions except \fBwaddnwstr\fR may be macros.
+ .SH PORTABILITY
+-All these entry points are described in the XSI Curses standard, Issue 4.
++These functions are described in the XSI Curses standard, Issue 4.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+ \fBcurs_add_wch\fR(3X)
+Index: man/curs_attr.3x
+Prereq: 1.36
+--- ncurses-5.9/man/curs_attr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_attr.3x 2013-09-21 20:39:49.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_attr.3x,v 1.36 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_attr.3x,v 1.39 2013/09/21 20:39:49 Sven.Joachim Exp $
+ .TH curs_attr 3X ""
+ .na
+ .hy 0
+@@ -164,9 +164,12 @@
+ the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'd with the
+ characters passed to \fBaddch\fR.
+ .PP
++.RS
+ .TS
+-center ;
++l l
++_ _ _
+ l l .
++\fIName\fR \fIDescription\fR
+ \fBA_NORMAL\fR Normal display (no highlight)
+ \fBA_STANDOUT\fR Best highlighting mode of the terminal.
+ \fBA_UNDERLINE\fR Underlining
+@@ -177,9 +180,30 @@
+ \fBA_PROTECT\fR Protected mode
+ \fBA_INVIS\fR Invisible or blank mode
+ \fBA_ALTCHARSET\fR Alternate character set
++\fBA_ITALIC\fR Italics (non-X/Open extension)
+ \fBA_CHARTEXT\fR Bit-mask to extract a character
+ \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR Color-pair number \fIn\fR
+ .TE
++.RE
++.PP
++These video attributes are supported by \fBattr_on\fP and related functions
++(which also support the attributes recognized by \fBattron\fP, etc.):
++.RS
++.TS
++l l
++_ _ _
++l l .
++\fIName\fR \fIDescription\fR
++\fBWA_HORIZONTAL\fR Horizontal highlight
++\fBWA_LEFT\fR Left highlight
++\fBWA_LOW\fR Low highlight
++\fBWA_RIGHT\fR Right highlight
++\fBWA_TOP\fR Top highlight
++\fBWA_VERTICAL\fR Vertical highlight
++.TE
++.RE
++.PP
++For consistency
+ .PP
+ The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR:
+ .PP
+@@ -214,19 +238,27 @@
+ SVr4 curses, these functions correctly manipulate all other highlights
+ (specifically, \fBA_ALTCHARSET\fR, \fBA_PROTECT\fR, and \fBA_INVIS\fR).
+ .PP
++This implementation provides the \fBA_ITALIC\fP attribute for terminals
++which have the \fIenter_italics_mode\fP (sitm) and \fIexit_italics_mode\fP (ritm) capabilities.
++Italics are not mentioned in X/Open Curses.
++Unlike the other video attributes, \fBI_ITALIC\fP is unrelated
++to the \fIset_attributes\fP capabilities.
++This implementation makes the assumption that
++\fIexit_attribute_mode\fP may also reset italics.
++.PP
+ XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR,
+ \fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR,
+ \fBwattr_get\fR, \fBwattr_set\fR. These are intended to work with
+ a new series of highlight macros prefixed with \fBWA_\fR.
++The older macros have direct counterparts in the newer set of names:
+ .PP
+-Older versions of this library did not force an update of the screen
+-when changing the attributes.
+-Use \fBtouchwin\fR to force the screen to match the updated attributes.
+-.PP
++.RS
+ .ne 9
+ .TS
+-center ;
++l l
++_ _ _
+ l l .
++\fIName\fR \fIDescription\fR
+ \fBWA_NORMAL\fR Normal display (no highlight)
+ \fBWA_STANDOUT\fR Best highlighting mode of the terminal.
+ \fBWA_UNDERLINE\fR Underlining
+@@ -236,6 +268,11 @@
+ \fBWA_BOLD\fR Extra bright or bold
+ \fBWA_ALTCHARSET\fR Alternate character set
+ .TE
++.RE
++.PP
++Older versions of this library did not force an update of the screen
++when changing the attributes.
++Use \fBtouchwin\fR to force the screen to match the updated attributes.
+ .PP
+ The XSI curses standard specifies that each pair of corresponding \fBA_\fR
+ and \fBWA_\fR-using functions operates on the same current-highlight
+@@ -243,8 +280,10 @@
+ .PP
+ The XSI standard extended conformance level adds new highlights
+ \fBA_HORIZONTAL\fR, \fBA_LEFT\fR, \fBA_LOW\fR, \fBA_RIGHT\fR, \fBA_TOP\fR,
+-\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each) which this
+-implementation does not yet support.
++\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each).
++As of August 2013,
++no known terminal provides these highlights
++(i.e., via the \fBsgr1\fP capability).
+ .SH RETURN VALUE
+ All routines return the integer \fBOK\fR on success, or \fBERR\fP on failure.
+ .PP
+Index: man/curs_bkgrnd.3x
+Prereq: 1.4
+--- ncurses-5.9/man/curs_bkgrnd.3x 2010-12-04 18:49:20.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_bkgrnd.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_bkgrnd.3x,v 1.4 2010/12/04 18:49:20 tom Exp $
++.\" $Id: curs_bkgrnd.3x,v 1.5 2012/11/03 23:03:59 tom Exp $
+ .TH curs_bkgrnd 3X ""
+ .SH NAME
+ \fBbkgrnd\fR,
+@@ -89,7 +89,7 @@
+ \fBbkgrndset\fR, and
+ \fBgetbkgrnd\fR
+ may be macros.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ The \fBbkgrndset\fR and \fBwbkgrndset\fR routines do not return a value.
+ .PP
+ Upon successful completion, the other functions return \fBOK\fR.
+Index: man/curs_border_set.3x
+Prereq: 1.10
+--- ncurses-5.9/man/curs_border_set.3x 2011-01-15 12:56:18.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_border_set.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2011,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_border_set.3x,v 1.10 2011/01/15 12:56:18 tom Exp $
++.\" $Id: curs_border_set.3x,v 1.11 2012/11/03 23:03:59 tom Exp $
+ .TH curs_border_set 3X ""
+ .na
+ .hy 0
+@@ -187,7 +187,7 @@
+ \fBvline_set\fR
+ may be macros.
+ .br
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ .PP
+ Upon successful completion, these functions return
+ \fBOK\fR.
+Index: man/curs_color.3x
+Prereq: 1.35
+--- ncurses-5.9/man/curs_color.3x 2010-12-20 00:50:58.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_color.3x 2014-11-16 00:44:29.000000000 +0000
+@@ -26,11 +26,16 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_color.3x,v 1.35 2010/12/20 00:50:58 tom Exp $
++.\" $Id: curs_color.3x,v 1.36 2014/11/16 00:44:29 tom Exp $
+ .TH curs_color 3X ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .de bP
+ .IP \(bu 4
+ ..
++.ds n 5
+ .na
+ .hy 0
+ .SH NAME
+@@ -63,99 +68,135 @@
+ .br
+ .SH DESCRIPTION
+ .SS Overview
+-\fBcurses\fR support color attributes on terminals with that capability. To
+-use these routines \fBstart_color\fR must be called, usually right after
+-\fBinitscr\fR. Colors are always used in pairs (referred to as color-pairs).
++\fBcurses\fR support color attributes on terminals with that capability.
++To use these routines \fBstart_color\fR must be called, usually right after
++\fBinitscr\fR.
++Colors are always used in pairs (referred to as color-pairs).
+ A color-pair consists of a foreground color (for characters) and a background
+-color (for the blank field on which the characters are displayed). A
+-programmer initializes a color-pair with the routine \fBinit_pair\fR. After it
+-has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR), a macro defined in
++color (for the blank field on which the characters are displayed).
++A programmer initializes a color-pair with the routine \fBinit_pair\fR.
++After it has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR), a macro defined in
+ \fB<curses.h>\fR, can be used as a new video attribute.
+ .PP
+ If a terminal is capable of redefining colors, the programmer can use the
+-routine \fBinit_color\fR to change the definition of a color. The routines
+-\fBhas_colors\fR and \fBcan_change_color\fR return \fBTRUE\fR or \fBFALSE\fR,
++routine \fBinit_color\fR to change the definition of a color.
++The routines \fBhas_colors\fR and \fBcan_change_color\fR
++return \fBTRUE\fR or \fBFALSE\fR,
+ depending on whether the terminal has color capabilities and whether the
+-programmer can change the colors. The routine \fBcolor_content\fR allows a
++programmer can change the colors.
++The routine \fBcolor_content\fR allows a
+ programmer to extract the amounts of red, green, and blue components in an
+-initialized color. The routine \fBpair_content\fR allows a programmer to find
++initialized color.
++The routine \fBpair_content\fR allows a programmer to find
+ out how a given color-pair is currently defined.
+ .SS Routine Descriptions
+-The \fBstart_color\fR routine requires no arguments. It must be
+-called if the programmer wants to use colors, and before any other
+-color manipulation routine is called. It is good practice to call
+-this routine right after \fBinitscr\fR. \fBstart_color\fR initializes
+-eight basic colors (black, red, green, yellow, blue, magenta, cyan,
++The \fBstart_color\fR routine requires no arguments.
++It must be called if the programmer wants to use colors, and before any other
++color manipulation routine is called.
++It is good practice to call this routine right after \fBinitscr\fR.
++\fBstart_color\fR initializes eight basic colors (black, red, green, yellow, blue, magenta, cyan,
+ and white), and two global variables, \fBCOLORS\fR and
+ \fBCOLOR_PAIRS\fR (respectively defining the maximum number of colors
+-and color-pairs the terminal can support). It also restores the
+-colors on the terminal to the values they had when the terminal was
++and color-pairs the terminal can support).
++It also restores the colors on the terminal to the values they had when the terminal was
+ just turned on.
+ .PP
+-The \fBinit_pair\fR routine changes the definition of a color-pair. It takes
+-three arguments: the number of the color-pair to be changed, the foreground
++These limits apply to color values and color pairs.
++Values outside these limits are not legal, and may result in a runtime error:
++.bP
++\fBCOLORS\fP corresponds to the terminal database's \fBmax_colors\fP capability,
++which is typically a signed 16-bit integer (see \fBterminfo\fR(\*n)).
++.bP
++color values are expected to be in the range \fB0\fP to \fBCOLORS\-1\fP,
++inclusive (including \fB0\fP and \fBCOLORS\-1\fP).
++.bP
++a special color value \fB\-1\fP is used in certain extended functions
++to denote the \fIdefault color\fP (see \fBuse_default_colors\fP).
++.bP
++\fBCOLOR_PAIRS\fP corresponds to the terminal database's \fBmax_pairs\fP capability,
++which is typically a signed 16-bit integer (see \fBterminfo\fR(\*n)).
++.bP
++legal color pair values are in the range \fB1\fP to \fBCOLOR_PAIRS\-1\fP,
++inclusive.
++.bP
++color pair \fB0\fP is special; it denotes \*(``no color\*(''.
++.IP
++Color pair \fB0\fP is assumed to be white on black,
++but is actually whatever the terminal implements before color is initialized.
++It cannot be modified by the application.
++.PP
++The \fBinit_pair\fR routine changes the definition of a color-pair.
++It takes three arguments: the number of the color-pair to be changed, the foreground
+ color number, and the background color number.
+ For portable applications:
+ .bP
+-The value of the first argument
+-must be between \fB1\fR and \fBCOLOR_PAIRS\-1\fR,
+-except that if default colors are used (see \fBuse_default_colors\fP)
++The first argument must be a legal color pair value.
++If default colors are used (see \fBuse_default_colors\fP)
+ the upper limit is adjusted to allow for extra pairs which use
+ a default color in foreground and/or background.
+ .bP
+-The value of the second and
+-third arguments must be between 0 and \fBCOLORS\fR.
+-Color pair 0 is assumed to be white on black,
+-but is actually whatever the terminal implements before color is initialized.
+-It cannot be modified by the application.
++The second and third arguments must be legal color values.
+ .PP
+-If the color-pair was previously
+-initialized, the screen is refreshed and all occurrences of that color-pair
++If the color-pair was previously initialized,
++the screen is refreshed and all occurrences of that color-pair
+ are changed to the new definition.
+ .PP
+-As an extension, ncurses allows you to set color pair 0 via
++As an extension, ncurses allows you to set color pair \fB0\fP via
+ the \fBassume_default_colors\fR routine, or to specify the use of
+ default colors (color number \fB\-1\fR) if you first invoke the
+ \fBuse_default_colors\fR routine.
+ .PP
+-The \fBinit_color\fR routine changes the definition of a color. It takes four
+-arguments: the number of the color to be changed followed by three RGB values
+-(for the amounts of red, green, and blue components). The value of the first
+-argument must be between \fB0\fR and \fBCOLORS\fR. (See the section
+-\fBColors\fR for the default color index.) Each of the last three arguments
+-must be a value between 0 and 1000. When \fBinit_color\fR is used, all
++The \fBinit_color\fR routine changes the definition of a color.
++It takes four arguments: the number of the color to be changed followed by three RGB values
++(for the amounts of red, green, and blue components).
++The first argument must be a legal color value;
++default colors are not allowed here.
++(See the section \fBColors\fR for the default color index.)
++Each of the last three arguments
++must be a value in the range \fB0\fP through \fB1000\fP.
++When \fBinit_color\fR is used, all
+ occurrences of that color on the screen immediately change to the new
+ definition.
+ .PP
+-The \fBhas_colors\fR routine requires no arguments. It returns \fBTRUE\fR if
+-the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR. This
+-routine facilitates writing terminal-independent programs. For example, a
+-programmer can use it to decide whether to use color or some other video
+-attribute.
+-.PP
+-The \fBcan_change_color\fR routine requires no arguments. It returns
+-\fBTRUE\fR if the terminal supports colors and can change their definitions;
+-other, it returns \fBFALSE\fR. This routine facilitates writing
+-terminal-independent programs.
++The \fBhas_colors\fR routine requires no arguments.
++It returns \fBTRUE\fR if
++the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR.
++This routine facilitates writing terminal-independent programs.
++For example, a programmer can use it to decide
++whether to use color or some other video attribute.
++.PP
++The \fBcan_change_color\fR routine requires no arguments.
++It returns \fBTRUE\fR if the terminal supports colors
++and can change their definitions;
++other, it returns \fBFALSE\fR.
++This routine facilitates writing terminal-independent programs.
+ .PP
+ The \fBcolor_content\fR routine gives programmers a way to find the intensity
+-of the red, green, and blue (RGB) components in a color. It requires four
+-arguments: the color number, and three addresses of \fBshort\fRs for storing
++of the red, green, and blue (RGB) components in a color.
++It requires four arguments: the color number, and three addresses
++of \fBshort\fRs for storing
+ the information about the amounts of red, green, and blue components in the
+-given color. The value of the first argument must be between 0 and
+-\fBCOLORS\fR. The values that are stored at the addresses pointed to by the
+-last three arguments are between 0 (no component) and 1000 (maximum amount of
+-component).
++given color.
++The first argument must be a legal color value, i.e.,
++\fB0\fP through \fBCOLORS\-1\fP, inclusive.
++The values that are stored at the addresses pointed to by the
++last three arguments are in the range
++\fB0\fP (no component) through \fB1000\fP (maximum amount of component), inclusive.
+ .PP
+ The \fBpair_content\fR routine allows programmers to find out what colors a
+-given color-pair consists of. It requires three arguments: the color-pair
++given color-pair consists of.
++It requires three arguments: the color-pair
+ number, and two addresses of \fBshort\fRs for storing the foreground and the
+-background color numbers. The value of the first argument must be between 1
+-and \fBCOLOR_PAIRS\-1\fR. The values that are stored at the addresses pointed
+-to by the second and third arguments are between 0 and \fBCOLORS\fR.
++background color numbers.
++The first argument must be a legal color value,
++i.e., in the range \fB1\fP through \fBCOLOR_PAIRS\-1\fR, inclusive.
++The values that are stored at the addresses pointed
++to by the second and third arguments are in the
++range \fB0\fP through \fBCOLORS\fR, inclusive.
+ .SS Colors
+-In \fB<curses.h>\fR the following macros are defined. These are the default
+-colors. \fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default
++In \fB<curses.h>\fR the following macros are defined.
++These are the default colors.
++\fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default
+ background color for all terminals.
+ .PP
+ .nf
+@@ -178,10 +219,10 @@
+ .PP
+ X/Open defines no error conditions.
+ This implementation will return \fBERR\fR on attempts to
+-use color values outside the range 0 to COLORS\-1
++use color values outside the range \fB0\fP to COLORS\-1
+ (except for the default colors extension),
+-or use color pairs outside the range 0 to COLOR_PAIRS\-1.
+-Color values used in \fBinit_color\fP must be in the range 0 to 1000.
++or use color pairs outside the range \fB0\fP to \fBCOLOR_PAIRS\-1\fP.
++Color values used in \fBinit_color\fP must be in the range \fB0\fP to \fB1000\fP.
+ An error is returned from all functions
+ if the terminal has not been initialized.
+ An error is returned from secondary functions such as \fBinit_pair\fP
+@@ -200,21 +241,24 @@
+ In the \fIncurses\fR implementation, there is a separate color activation flag,
+ color palette, color pairs table, and associated COLORS and COLOR_PAIRS counts
+ for each screen; the \fBstart_color\fR function only affects the current
+-screen. The SVr4/XSI interface is not really designed with this in mind, and
++screen.
++The SVr4/XSI interface is not really designed with this in mind, and
+ historical implementations may use a single shared color palette.
+ .PP
+ Note that setting an implicit background color via a color pair affects only
+-character cells that a character write operation explicitly touches. To change
++character cells that a character write operation explicitly touches.
++To change
+ the background color used when parts of a window are blanked by erasing or
+ scrolling operations, see \fBcurs_bkgd\fR(3X).
+ .PP
+ Several caveats apply on 386 and 486 machines with VGA-compatible graphics:
+ .bP
+-COLOR_YELLOW is actually brown. To get yellow, use COLOR_YELLOW combined with
+-the \fBA_BOLD\fR attribute.
++COLOR_YELLOW is actually brown.
++To get yellow, use COLOR_YELLOW combined with the \fBA_BOLD\fR attribute.
+ .bP
+-The A_BLINK attribute should in theory cause the background to go bright. This
+-often fails to work, and even some cards for which it mostly works (such as the
++The A_BLINK attribute should in theory cause the background to go bright.
++This often fails to work, and even some cards for which it mostly works
++(such as the
+ Paradise and compatibles) do the wrong thing when you try to set a bright
+ "yellow" background (you get a blinking yellow foreground instead).
+ .bP
+Index: man/curs_get_wch.3x
+Prereq: 1.7
+--- ncurses-5.9/man/curs_get_wch.3x 2010-08-14 23:31:42.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_get_wch.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_get_wch.3x,v 1.7 2010/08/14 23:31:42 tom Exp $
++.\" $Id: curs_get_wch.3x,v 1.8 2012/11/03 23:03:59 tom Exp $
+ .TH curs_get_wch 3X ""
+ .SH NAME
+ \fBget_wch\fR,
+@@ -132,7 +132,7 @@
+ .PP
+ All functions except \fBwget_wch\fR and \fBunget_wch\fR
+ may be macros.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ When
+ \fBget_wch\fR,
+ \fBwget_wch\fR,
+Index: man/curs_get_wstr.3x
+Prereq: 1.8
+--- ncurses-5.9/man/curs_get_wstr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_get_wstr.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_get_wstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_get_wstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp $
+ .TH curs_get_wstr 3X ""
+ .na
+ .hy 0
+@@ -144,7 +144,7 @@
+ is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value.
+ .PP
+ All of these routines except \fBwgetn_wstr\fR may be macros.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ All of these functions return \fBOK\fR upon successful completion.
+ Otherwise, they return \fBERR\fR.
+ .PP
+Index: man/curs_getcchar.3x
+Prereq: 1.15
+--- ncurses-5.9/man/curs_getcchar.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_getcchar.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2001-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_getcchar.3x,v 1.15 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_getcchar.3x,v 1.16 2012/11/03 23:03:59 tom Exp $
+ .TH curs_getcchar 3X ""
+ .de bP
+ .IP \(bu 4
+@@ -116,7 +116,7 @@
+ The \fIwcval\fP argument may be a value generated by a call to
+ \fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument.
+ If \fIwcval\fP is constructed by any other means, the effect is unspecified.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ .PP
+ When \fIwch\fP is a null pointer,
+ \fBgetcchar\fP returns the number of wide characters referenced by
+Index: man/curs_getch.3x
+Prereq: 1.36
+--- ncurses-5.9/man/curs_getch.3x 2011-01-22 19:38:51.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_getch.3x 2014-05-24 20:16:31.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_getch.3x,v 1.36 2011/01/22 19:38:51 tom Exp $
++.\" $Id: curs_getch.3x,v 1.39 2014/05/24 20:16:31 tom Exp $
+ .TH curs_getch 3X ""
+ .na
+ .hy 0
+@@ -71,14 +71,21 @@
+ the program waits until a character is typed or the
+ specified timeout has been reached.
+ .PP
+-Unless \fBnoecho\fR has been set,
++If \fBecho\fR is enabled, and the window is not a pad,
+ then the character will also be echoed into the
+ designated window according to the following rules:
+-if the character is the current erase character, left arrow, or backspace,
++.bP
++If the character is the current erase character, left arrow, or backspace,
+ the cursor is moved one space to the left and that screen position is erased
+ as if \fBdelch\fR had been called.
++.bP
+ If the character value is any other \fBKEY_\fR define, the user is alerted
+ with a \fBbeep\fR call.
++.bP
++If the character is a carriage-return,
++and if \fBnl\fP is enabled,
++it is translated to a line-feed after echoing.
++.bP
+ Otherwise the character is simply output to the screen.
+ .PP
+ If the window is not a pad, and it has been moved or modified since the last
+@@ -89,7 +96,8 @@
+ 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.
+ .PP
+@@ -111,12 +119,12 @@
+ \fBgetch\fR if \fBkeypad\fR has been enabled.
+ Note that not all of these are
+ necessarily supported on any particular terminal.
+-.sp
++.PP
+ .TS
+ center tab(/) ;
+-l l
+ l l .
+ \fIName\fR/\fIKey\fR \fIname\fR
++_
+ KEY_BREAK/Break key
+ KEY_DOWN/The four arrow keys ...
+ KEY_UP
+@@ -237,14 +245,14 @@
+ All routines return the integer \fBERR\fR upon failure and an integer value
+ other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
+ completion.
+-.RS
++.RS 3
+ .TP 5
+ \fBungetch\fP
+-returns an error
++returns ERR
+ if there is no more room in the FIFO.
+-.TP 5
++.TP
+ \fBwgetch\fP
+-returns an error
++returns ERR
+ if the window pointer is null, or
+ if its timeout expires without having any data.
+ .RE
+Index: man/curs_in_wchstr.3x
+Prereq: 1.8
+--- ncurses-5.9/man/curs_in_wchstr.3x 2010-12-04 18:36:44.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_in_wchstr.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_in_wchstr.3x,v 1.8 2010/12/04 18:36:44 tom Exp $
++.\" $Id: curs_in_wchstr.3x,v 1.9 2012/11/03 23:03:59 tom Exp $
+ .TH curs_in_wchstr 3X ""
+ .na
+ .hy 0
+@@ -98,7 +98,7 @@
+ \fBmvwin_wchnstr\fR, or
+ \fBwin_wchnstr\fR
+ is recommended.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ Upon successful completion, these functions return
+ \fBOK\fR.
+ Otherwise, they return
+Index: man/curs_initscr.3x
+Prereq: 1.17
+--- ncurses-5.9/man/curs_initscr.3x 2010-12-04 18:36:58.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_initscr.3x 2014-03-01 22:31:22.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,15 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_initscr.3x,v 1.17 2010/12/04 18:36:58 tom Exp $
++.\" $Id: curs_initscr.3x,v 1.20 2014/03/01 22:31:22 tom Exp $
+ .TH curs_initscr 3X ""
++.de bP
++.IP \(bu 4
++..
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .na
+ .hy 0
+ .SH NAME
+@@ -56,49 +63,71 @@
+ .br
+ .SH DESCRIPTION
+ \fBinitscr\fR is normally the first \fBcurses\fR routine to call when
+-initializing a program. A few special routines sometimes need to be
+-called before it; these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR,
+-\fBuse_env\fR. For multiple-terminal applications, \fBnewterm\fR may be
+-called before \fBinitscr\fR.
++initializing a program.
++A few special routines sometimes need to be called before it;
++these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR,
++\fBuse_env\fR.
++For multiple-terminal applications,
++\fBnewterm\fR may be called before \fBinitscr\fR.
+ .PP
+ The initscr code determines the terminal type and initializes all \fBcurses\fR
+-data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to
+-clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error
+-message to standard error and exits; otherwise, a pointer is returned to
+-\fBstdscr\fR.
++data structures.
++\fBinitscr\fR also causes the first call to \fBrefresh\fR to clear the screen.
++If errors occur, \fBinitscr\fR writes an appropriate error
++message to standard error and exits;
++otherwise, a pointer is returned to \fBstdscr\fR.
+ .PP
+ A program that outputs to more than one terminal should use the \fBnewterm\fR
+-routine for each terminal instead of \fBinitscr\fR. A program that needs to
+-inspect capabilities, so it can continue to run in a line-oriented mode if the
++routine for each terminal instead of \fBinitscr\fR.
++A program that needs to inspect capabilities,
++so it can continue to run in a line-oriented mode if the
+ terminal cannot support a screen-oriented program, would also use
+-\fBnewterm\fR. The routine \fBnewterm\fR should be called once for each
+-terminal. It returns a variable of type \fBSCREEN *\fR which should be saved
+-as a reference to that terminal. The arguments are the \fItype\fR of the
+-terminal to be used in place of \fB$TERM\fR, a file pointer for output to the
+-terminal, and another file pointer for input from the terminal (if \fItype\fR
+-is \fBNULL\fR, \fB$TERM\fR will be used). The program must also call
++\fBnewterm\fR.
++The routine \fBnewterm\fR should be called once for each terminal.
++It returns a variable of type \fBSCREEN *\fR which should be saved
++as a reference to that terminal.
++\fBnewterm\fP's arguments are
++.bP
++the \fItype\fR of the terminal to be used in place of \fB$TERM\fR,
++.bP
++a file pointer for output to the terminal, and
++.bP
++another file pointer for input from the terminal
++.PP
++If the \fItype\fR parameter is \fBNULL\fR, \fB$TERM\fR will be used.
++.PP
++The program must also call
+ \fBendwin\fR for each terminal being used before exiting from \fBcurses\fR.
+ If \fBnewterm\fR is called more than once for the same terminal, the first
+ terminal referred to must be the last one for which \fBendwin\fR is called.
+ .PP
+ A program should always call \fBendwin\fR before exiting or escaping from
+-\fBcurses\fR mode temporarily. This routine restores tty modes, moves the
+-cursor to the lower left-hand corner of the screen and resets the terminal into
+-the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a
++\fBcurses\fR mode temporarily.
++This routine
++.bP
++restores tty modes,
++.bP
++moves the cursor to the lower left-hand corner of the screen and
++.bP
++resets the terminal into
++the proper non-visual mode.
++.PP
++Calling \fBrefresh\fR or \fBdoupdate\fR after a
+ temporary escape causes the program to resume visual mode.
+ .PP
+ The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been
+-called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR
+-otherwise.
++called without any subsequent calls to \fBwrefresh\fR,
++and \fBFALSE\fR otherwise.
+ .PP
+-The \fBset_term\fR routine is used to switch between different
+-terminals. The screen reference \fBnew\fR becomes the new current
+-terminal. The previous terminal is returned by the routine. This is
+-the only routine which manipulates \fBSCREEN\fR pointers; all other
+-routines affect only the current terminal.
++The \fBset_term\fR routine is used to switch between different terminals.
++The screen reference \fBnew\fR becomes the new current terminal.
++The previous terminal is returned by the routine.
++This is the only routine which manipulates \fBSCREEN\fR pointers;
++all other routines affect only the current terminal.
+ .PP
+ The \fBdelscreen\fR routine frees storage associated with the
+-\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do
++\fBSCREEN\fR data structure.
++The \fBendwin\fR routine does not do
+ this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
+ particular \fBSCREEN\fR is no longer needed.
+ .SH RETURN VALUE
+@@ -109,22 +138,41 @@
+ .PP
+ X/Open defines no error conditions.
+ In this implementation
++.bP
+ \fBendwin\fP returns an error if the terminal was not initialized.
++.bP
++\fBnewterm\fP
++returns an error if it cannot allocate the data structures for the screen,
++or for the top-level windows within the screen,
++i.e.,
++\fBcurscr\fP, \fBnewscr\fP, or \fBstdscr\fP.
++.bP
++\fBset_term\fP
++returns no error.
+ .SH NOTES
+ Note that \fBinitscr\fR and \fBnewterm\fR may be macros.
+ .SH PORTABILITY
+-These functions are described in the XSI Curses standard, Issue 4. It
+-specifies that portable applications must not call \fBinitscr\fR more than
+-once.
++These functions are described in the XSI Curses standard, Issue 4.
++It specifies that portable applications must not
++call \fBinitscr\fR more than once.
+ .PP
+ Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
+ from \fBinitscr\fR when an error is detected, rather than exiting.
+ It is safe but redundant to check the return value of \fBinitscr\fR
+ in XSI Curses.
++.PP
++If the TERM variable is missing or empty, \fBinitscr\fP uses the
++value \*(``unknown\*('',
++which normally corresponds to a terminal entry with the \fIgeneric\fP
++(\fIgn\fP) capability.
++Generic entries are detected by \fBsetupterm\fP(3X) and cannot be
++used for full-screen operation.
++Other implementations may handle a missing/empty TERM variable differently.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+ \fBcurs_kernel\fR(3X),
+ \fBcurs_refresh\fR(3X),
+ \fBcurs_slk\fR(3X),
++\fBcurs_terminfo\fR(3X),
+ \fBcurs_util\fR(3X),
+ \fBcurs_variables\fR(3X).
+Index: man/curs_inopts.3x
+Prereq: 1.15
+--- ncurses-5.9/man/curs_inopts.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_inopts.3x 2013-07-20 19:42:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,12 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_inopts.3x,v 1.15 2010/12/04 18:40:45 tom Exp $
++.\" $Id: curs_inopts.3x,v 1.18 2013/07/20 19:42:02 tom Exp $
+ .TH curs_inopts 3X ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .na
+ .hy 0
+ .SH NAME
+@@ -188,11 +192,13 @@
+ plus the additional capability of being able to block for only
+ \fIdelay\fR milliseconds (where \fIdelay\fR is positive).
+ .PP
+-The \fBcurses\fR library does ``line-breakout optimization'' by looking for
+-typeahead periodically while updating the screen. If input is found,
+-and it is coming from a tty, the current update is postponed until
+-\fBrefresh\fR or \fBdoupdate\fR is called again. This allows faster
+-response to commands typed in advance. Normally, the input FILE
++The \fBcurses\fR library does \*(``line-breakout optimization\*(''
++by looking for typeahead periodically while updating the screen.
++If input is found, and it is coming from a tty,
++the current update is postponed until
++\fBrefresh\fR or \fBdoupdate\fR is called again.
++This allows faster response to commands typed in advance.
++Normally, the input FILE
+ pointer passed to \fBnewterm\fR, or \fBstdin\fR in the case that
+ \fBinitscr\fR was used, will be used to do this typeahead checking.
+ The \fBtypeahead\fR routine specifies that the file descriptor
+@@ -223,6 +229,42 @@
+ left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
+ off as a side-effect. For best portability, set echo or noecho explicitly
+ just after initialization, even if your program remains in cooked mode.
++.PP
++When \fBkeypad\fP is first enabled,
++ncurses loads the key-definitions for the current terminal description.
++If the terminal description includes extended string capabilities,
++e.g., from using the \fB\-x\fP option of @TIC@,
++then ncurses also defines keys for the capabilities whose names
++begin with "k".
++The corresponding keycodes are generated and (depending on previous
++loads of terminal descriptions) may differ from one execution of a
++program to the next.
++The generated keycodes are recognized by the \fBkeyname\fP function
++(which will then return a name beginning with "k" denoting the
++terminfo capability name rather than "K", used for curses key-names).
++On the other hand, an application can use \fBdefine_key\fP to establish
++a specific keycode for a given string.
++This makes it possible for an application to check for an extended
++capability's presence with \fItigetstr\fP,
++and reassign the keycode to match its own needs.
++.PP
++Low-level applications can use \fBtigetstr\fP to obtain the definition
++of any particular string capability.
++Higher-level applications which use the curses \fBwgetch\fP
++and similar functions to return keycodes rely upon the order in which
++the strings are loaded.
++If more than one key definition has the same string value,
++then \fBwgetch\fP can return only one keycode.
++Most curses implementations (including ncurses)
++load key definitions in the order
++defined by the array of string capability names.
++The last key to be loaded determines the keycode which will be returned.
++In ncurses, you may also have extended capabilities interpreted as
++key definitions.
++These are loaded after the predefined keys,
++and if a capability's value is the same as a previously-loaded
++key definition,
++the later definition is the one used.
+ .SH NOTES
+ Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
+ \fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR,
+@@ -233,4 +275,9 @@
+ respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
+ control states that are hard to predict or understand; it is not recommended.
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7)
++\fBcurses\fR(3X),
++\fBcurs_getch\fR(3X),
++\fBcurs_initscr\fR(3X),
++\fBcurs_util\fR(3X),
++\fBdefine_key\fR(3X),
++\fBtermio\fR(7)
+Index: man/curs_ins_wstr.3x
+Prereq: 1.6
+--- ncurses-5.9/man/curs_ins_wstr.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_ins_wstr.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2005,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_ins_wstr.3x,v 1.6 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_ins_wstr.3x,v 1.7 2012/11/03 23:03:59 tom Exp $
+ .TH curs_ins_wstr 3X ""
+ .na
+ .hy 0
+@@ -92,7 +92,7 @@
+ functions will fail.
+ XSI does not define what will happen if a nonspacing character follows
+ a control character.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ Upon successful completion, these functions return OK.
+ Otherwise, they return ERR.
+ .PP
+Index: man/curs_inwstr.3x
+Prereq: 1.7
+--- ncurses-5.9/man/curs_inwstr.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_inwstr.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2002-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_inwstr.3x,v 1.7 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_inwstr.3x,v 1.8 2012/11/03 23:03:59 tom Exp $
+ .TH curs_inwstr 3X ""
+ .SH NAME
+ \fBinwstr\fR,
+@@ -72,7 +72,7 @@
+ Note that all routines except
+ \fBwinnwstr\fR
+ may be macros.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ All routines return
+ \fBERR\fR
+ upon failure. Upon
+Index: man/curs_mouse.3x
+Prereq: 1.38
+--- ncurses-5.9/man/curs_mouse.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_mouse.3x 2014-10-10 09:31:18.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_mouse.3x,v 1.38 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_mouse.3x,v 1.40 2014/10/10 09:31:18 tom Exp $
+ .TH curs_mouse 3X ""
+ .na
+ .hy 0
+@@ -40,20 +40,18 @@
+ .ad
+ .hy
+ .SH SYNOPSIS
+-.nf
+-\fB#include <curses.h>
++\fB#include <curses.h>\fR
+ .PP
+-\fBtypedef unsigned long mmask_t;
++\fBtypedef unsigned long mmask_t;\fR
+ .PP
+-typedef struct
+-{
+- short id; \fI/* ID to distinguish multiple devices */\fB
+- int x, y, z; \fI/* event coordinates */\fB
+- mmask_t bstate; \fI/* button state bits */\fB
+-}
+-MEVENT;\fR
++.nf
++\fBtypedef struct {\fR
++\fB short id; \fR\fI/* ID to distinguish multiple devices */\fR
++\fB int x, y, z; \fR\fI/* event coordinates */\fR
++\fB mmask_t bstate; \fR\fI/* button state bits */\fR
++\fB} MEVENT;\fR
+ .fi
+-.br
++.PP
+ \fBbool has_mouse(void);\fR
+ .br
+ \fBint getmouse(MEVENT *event);\fR
+@@ -137,7 +135,7 @@
+ _
+ .TE
+ .PP
+-Once a class of mouse events have been made visible in a window,
++Once a class of mouse events has been made visible in a window,
+ calling the \fBwgetch\fR function on that window may return
+ \fBKEY_MOUSE\fR as an indicator that a mouse event has been queued.
+ To read the event data and pop the event off the queue, call
+@@ -285,10 +283,17 @@
+ .RS
+ \\E[?1000%?%p1%{1}%=%th%el%;
+ .RE
++.PP
+ 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
+ 3D-mice/trackballs/power gloves.
++.PP
++The \fBALL_MOUSE_EVENTS\fP class does not include \fBREPORT_MOUSE_POSITION\fP.
++They are distinct.
++For example, in xterm,
++wheel/scrolling mice send position reports as a sequence of
++presses of buttons 4 or 5 without matching button-releases.
+ .SH BUGS
+ Mouse events under xterm will not in fact be ignored during cooked mode,
+ if they have been enabled by \fBmousemask\fR.
+Index: man/curs_opaque.3x
+Prereq: 1.9
+--- ncurses-5.9/man/curs_opaque.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_opaque.3x 2014-03-15 19:24:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2007-2013,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,12 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_opaque.3x,v 1.9 2010/12/04 18:40:45 tom Exp $
++.\" $Id: curs_opaque.3x,v 1.11 2014/03/15 19:24:23 tom Exp $
+ .TH curs_opaque 3X ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .na
+ .hy 0
+ .SH NAME
+@@ -74,11 +78,13 @@
+ .br
+ \fBWINDOW * wgetparent(const WINDOW *win);\fR
+ .br
++\fBint wgetdelay(const WINDOW *win);\fR
++.br
+ \fBint wgetscrreg(const WINDOW *win, int *top, int *bottom);\fR
+ .br
+ .SH DESCRIPTION
+ This implementation provides functions which return properties
+-set in the WINDOW structure, allowing it to be ``opaque'' if
++set in the WINDOW structure, allowing it to be \*(``opaque\*('' if
+ the symbol \fBNCURSES_OPAQUE\fR is defined:
+ .TP 5
+ \fBis_cleared\fR
+@@ -119,12 +125,16 @@
+ \fBis_syncok\fR
+ returns the value set in \fBsyncok\fR
+ .TP 5
++\fBwgetdelay\fR
++returns the delay timeout as set in \fBwtimeout\fP.
++.TP 5
+ \fBwgetparent\fR
+ returns the parent WINDOW pointer for subwindows,
+ or NULL for windows having no parent.
+ .TP 5
+ \fBwgetscrreg\fR
+-returns the top and bottom rows for the scrolling margin as set in \fBwsetscrreg\fP.
++returns the top and bottom rows for the scrolling margin
++as set in \fBwsetscrreg\fP.
+ .SH RETURN VALUE
+ These functions all return TRUE or FALSE, except as noted.
+ .SH NOTES
+Index: man/curs_overlay.3x
+Prereq: 1.16
+--- ncurses-5.9/man/curs_overlay.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_overlay.3x 2013-04-06 23:48:51.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_overlay.3x,v 1.16 2010/12/04 18:40:45 tom Exp $
++.\" $Id: curs_overlay.3x,v 1.17 2013/04/06 23:48:51 tom Exp $
+ .TH curs_overlay 3X ""
+ .na
+ .hy 0
+@@ -48,18 +48,21 @@
+ \fBint dmaxcol, int overlay);\fR
+ .SH DESCRIPTION
+ The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on
+-top of \fIdstwin\fR. \fIscrwin\fR and \fIdstwin\fR are not required
+-to be the same size; only text where the two windows overlap is
+-copied. The difference is that \fBoverlay\fR is non-destructive
++top of \fIdstwin\fR.
++\fIscrwin\fR and \fIdstwin\fR are not required
++to be the same size; only text where the two windows overlap is copied.
++The difference is that \fBoverlay\fR is non-destructive
+ (blanks are not copied) whereas \fBoverwrite\fR is destructive.
+ .PP
+ The \fBcopywin\fR routine provides a finer granularity of control over the
+-\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR
+-routine, a rectangle is specified in the destination window, (\fIdminrow\fR,
++\fBoverlay\fR and \fBoverwrite\fR routines.
++As in the \fBprefresh\fR routine,
++a rectangle is specified in the destination window, (\fIdminrow\fR,
+ \fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner
+-coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). If the
+-argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in
+-\fBoverlay\fR.
++coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR).
++If the argument \fIoverlay\fR is \fBtrue\fR,
++then copying is non-destructive,
++as in \fBoverlay\fR.
+ .SH RETURN VALUE
+ Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR
+ (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
+@@ -75,7 +78,8 @@
+ Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
+ .SH PORTABILITY
+ The XSI Curses standard, Issue 4 describes these functions (adding the const
+-qualifiers). It further specifies their behavior in the presence of characters
++qualifiers).
++It further specifies their behavior in the presence of characters
+ with multibyte renditions (not yet supported in this implementation).
+ .SH SEE ALSO
+ \fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
+Index: man/curs_sp_funcs.3x
+Prereq: 1.5
+--- ncurses-5.9/man/curs_sp_funcs.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_sp_funcs.3x 2013-06-22 17:53:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_sp_funcs.3x,v 1.5 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_sp_funcs.3x,v 1.6 2013/06/22 17:53:59 tom Exp $
+ .TH curs_sp_funcs 3X ""
+ .na
+ .hy 0
+@@ -186,7 +186,7 @@
+ .br
+ \fBint slk_attrset_sp(SCREEN*, const chtype);\fR
+ .br
+-\fBint slk_attr_sp((SCREEN*);\fR
++\fBint slk_attr_sp(SCREEN*);\fR
+ .br
+ \fBint slk_clear_sp(SCREEN*);\fR
+ .br
+Index: man/curs_termcap.3x
+Prereq: 1.26
+--- ncurses-5.9/man/curs_termcap.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_termcap.3x 2013-01-19 15:58:48.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,11 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_termcap.3x,v 1.26 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_termcap.3x,v 1.30 2013/01/19 15:58:48 tom Exp $
+ .TH curs_termcap 3X ""
++.de bP
++.IP \(bu 4
++..
+ .na
+ .hy 0
+ .ds n 5
+@@ -75,11 +78,39 @@
+ routines are emulated using the \fIterminfo\fR database. Thus, they
+ can only be used to query the capabilities of entries for which a
+ terminfo entry has been compiled.
++.SS INITIALIZATION
+ .PP
+ The \fBtgetent\fR routine loads the entry for \fIname\fR.
+-It returns 1 on success, 0 if there is no such entry, and \-1 if the
+-terminfo database could not be found.
++It returns:
++.RS 3
++.TP 3
++1
++on success,
++.TP 3
++0
++if there is no such entry
++(or that it is a generic type, having too little information for curses
++applications to run), and
++.TP 3
++\-1
++if the terminfo database could not be found.
++.RE
++.PP
++This differs from the \fItermcap\fP library in two ways:
++.RS 3
++.bP
+ The emulation ignores the buffer pointer \fIbp\fR.
++The \fItermcap\fP library would store a copy of the terminal
++description in the area referenced by this pointer.
++However, ncurses stores its terminal descriptions in compiled
++binary form, which is not the same thing.
++.bP
++There is a difference in return codes.
++The \fItermcap\fP library does not check if the terminal
++description is marked with the \fIgeneric\fP capability,
++or if the terminal description has cursor-addressing.
++.RE
++.SS CAPABILITY VALUES
+ .PP
+ The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
+ or zero if it is not available.
+@@ -98,12 +129,14 @@
+ \fBtgetflag\fR,
+ \fBtgetnum\fR and
+ \fBtgetstr\fR are compared in lookups.
++.SS FORMATTING CAPABILITIES
+ .PP
+ The \fBtgoto\fR routine instantiates the parameters into the given capability.
+ The output from this routine is to be passed to \fBtputs\fR.
+ .PP
+ The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual
+ page. It can retrieve capabilities by either termcap or terminfo name.
++.SS GLOBAL VARIABLES
+ .PP
+ The variables
+ \fBPC\fR,
+@@ -165,8 +198,28 @@
+ e.g., not distinguishing between input and output.
+ In particular, some applications are reported to declare and/or
+ modify \fBospeed\fR.
++.PP
++The comment that only the first two characters of the \fBid\fR parameter
++are used escapes many application developers.
++The original BSD 4.2 termcap library (and historical relics thereof)
++did not require a trailing null NUL on the parameter name passed
++to \fBtgetstr\fP, \fBtgetnum\fP and \fBtgetflag\fP.
++Some applications assume that the termcap interface does not require
++the trailing NUL for the parameter name.
++Taking into account these issues:
++.bP
++As a special case,
++\fBtgetflag\fP matched against a single-character identifier
++provided that was at the end of the terminal description.
++You should not rely upon this behavior in portable programs.
++This implementation disallows matches against single-character capability names.
++.bP
++This implementation disallows matches by the termcap interface against
++extended capability names which are longer than two characters.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+ \fBterminfo\fR(\*n),
+ \fBterm_variables\fR(3X),
+ \fBputc\fR(3).
++.sp
++http://invisible-island.net/ncurses/tctest.html
+Index: man/curs_terminfo.3x
+Prereq: 1.35
+--- ncurses-5.9/man/curs_terminfo.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_terminfo.3x 2013-07-20 19:29:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1999-2011,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +26,15 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_terminfo.3x,v 1.35 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_terminfo.3x,v 1.43 2013/07/20 19:29:59 tom Exp $
+ .TH curs_terminfo 3X ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
++.de bP
++.IP \(bu 4
++..
+ .ds n 5
+ .na
+ .hy 0
+@@ -77,7 +84,7 @@
+ .br
+ \fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR
+ .br
+-\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(char));\fR
++\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
+ .br
+ \fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR
+ .br
+@@ -98,40 +105,54 @@
+ capabilities, such as programming function keys. For all other
+ functionality, \fBcurses\fR routines are more suitable and their use is
+ recommended.
++.SS Initialization
+ .PP
+ Initially, \fBsetupterm\fR should be called. Note that
+ \fBsetupterm\fR is automatically called by \fBinitscr\fR and
+ \fBnewterm\fR. This defines the set of terminal-dependent variables
+ [listed in \fBterminfo\fR(\*n)].
++.PP
++Each initialization routine provides applications with the
++terminal capabilities either directly (via header definitions),
++or by special functions.
++The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
++order) to get the definitions for these strings, numbers, and flags.
++.PP
+ The \fBterminfo\fR variables
+ \fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
+ follows:
+-.RS
+-.PP
++.bP
+ If \fBuse_env(FALSE)\fR has been called, values for
+ \fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
+-.PP
++.bP
+ Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
+ exist, their values are used. If these environment variables do not
+ exist and the program is running in a window, the current window size
+ is used. Otherwise, if the environment variables do not exist, the
+ values for \fBlines\fR and \fBcolumns\fR specified in the
+ \fBterminfo\fR database are used.
+-.RE
+ .PP
+-The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
+-order) to get the definitions for these strings, numbers, and flags.
+ Parameterized strings should be passed through \fBtparm\fR to instantiate them.
+ All \fBterminfo\fR strings [including the output of \fBtparm\fR] should be printed
+-with \fBtputs\fR or \fBputp\fR. Call the \fBreset_shell_mode\fR to restore the
+-tty modes before exiting [see \fBcurs_kernel\fR(3X)]. Programs which use
+-cursor addressing should output \fBenter_ca_mode\fR upon startup and should
+-output \fBexit_ca_mode\fR before exiting. Programs desiring shell escapes
+-should call
+-.PP
+-\fBreset_shell_mode\fR and output \fBexit_ca_mode\fR before the shell
+-is called and should output \fBenter_ca_mode\fR and call
+-\fBreset_prog_mode\fR after returning from the shell.
++with \fBtputs\fR or \fBputp\fR.
++Call \fBreset_shell_mode\fR to restore the
++tty modes before exiting [see \fBcurs_kernel\fR(3X)].
++.PP
++Programs which use
++cursor addressing should
++.bP
++output \fBenter_ca_mode\fR upon startup and
++.bP
++output \fBexit_ca_mode\fR before exiting.
++.PP
++Programs which execute shell subprocesses should
++.bP
++call \fBreset_shell_mode\fR and
++output \fBexit_ca_mode\fR before the shell
++is called and
++.bP
++output \fBenter_ca_mode\fR and
++call \fBreset_prog_mode\fR after returning from the shell.
+ .PP
+ The \fBsetupterm\fR routine reads in the \fBterminfo\fR database,
+ initializing the \fBterminfo\fR structures, but does not set up the
+@@ -146,19 +167,23 @@
+ A return value of \fBOK\fR combined with status of \fB1\fR in \fIerrret\fR
+ is normal.
+ If \fBERR\fR is returned, examine \fIerrret\fR:
+-.RS
+ .TP 5
+ .B 1
+ means that the terminal is hardcopy, cannot be used for curses applications.
++.IP
++\fBsetupterm\fP determines if the entry is a hardcopy type by
++checking the \fIhc\fP (\fIhardcopy\fP) capability.
+ .TP 5
+ .B 0
+ means that the terminal could not be found,
+ or that it is a generic type,
+ having too little information for curses applications to run.
++.IP
++\fBsetupterm\fP determines if the entry is a generic type by
++checking the \fIgn\fP (\fIgeneric\fP) capability.
+ .TP 5
+ .B \-1
+ means that the \fBterminfo\fR database could not be found.
+-.RE
+ .PP
+ If \fIerrret\fR is
+ null, \fBsetupterm\fR prints an error message upon finding an error
+@@ -168,18 +193,33 @@
+ .sp
+ which uses all the defaults and sends the output to \fBstdout\fR.
+ .PP
+-The \fBsetterm\fR routine is being replaced by \fBsetupterm\fR. The call:
++The \fBsetterm\fR routine was replaced by \fBsetupterm\fR. The call:
+ .sp
+ \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR
+ .sp
+ provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR.
+-The \fBsetterm\fR routine is included here for BSD compatibility, and
++The \fBsetterm\fR routine is provided for BSD compatibility, and
+ is not recommended for new programs.
++.\" ***************************************************************************
++.SS The Terminal State
++.PP
++The \fBsetupterm\fR routine stores its information about the terminal
++in a \fBTERMINAL\fP structure pointed to by the global variable \fBcur_term\fP.
++If it detects an error,
++or decides that the terminal is unsuitable (hardcopy or generic),
++it discards this information,
++making it not available to applications.
++.PP
++If \fBsetupterm\fP is called repeatedly for the same terminal type,
++it will reuse the information.
++It maintains only one copy of a given terminal's capabilities in memory.
++If it is called for different terminal types,
++\fBsetupterm\fP allocates new storage for each set of terminal capabilities.
+ .PP
+-The \fBset_curterm\fR routine sets the variable \fBcur_term\fR to
++The \fBset_curterm\fR routine sets \fBcur_term\fR to
+ \fInterm\fR, and makes all of the \fBterminfo\fR boolean, numeric, and
+-string variables use the values from \fInterm\fR. It returns the old value
+-of \fBcur_term\fR.
++string variables use the values from \fInterm\fR.
++It returns the old value of \fBcur_term\fR.
+ .PP
+ The \fBdel_curterm\fR routine frees the space pointed to by
+ \fIoterm\fR and makes it available for further use. If \fIoterm\fR is
+@@ -189,11 +229,14 @@
+ .PP
+ The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR,
+ except that it is called after restoring memory to a previous state (for
+-example, when reloading a game saved as a core image dump). It assumes that
+-the windows and the input and output options are the same as when memory was
+-saved, but the terminal type and baud rate may be different. Accordingly,
+-it saves various tty state bits, calls \fBsetupterm\fP,
+-and then restores the bits.
++example, when reloading a game saved as a core image dump).
++\fBrestartterm\fP assumes that the windows and the input and output options
++are the same as when memory was saved,
++but the terminal type and baud rate may be different.
++Accordingly, \fBrestartterm\fP saves various tty state bits,
++calls \fBsetupterm\fP, and then restores the bits.
++.\" ***************************************************************************
++.SS Formatting Output
+ .PP
+ The \fBtparm\fR routine instantiates the string \fIstr\fR with
+ parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR
+@@ -202,6 +245,8 @@
+ \fBtiparm\fP is a newer form of \fBtparm\fP which uses \fI<stdarg.h>\fP
+ rather than a fixed-parameter list.
+ Its numeric parameters are integers (int) rather than longs.
++.\" ***************************************************************************
++.SS Output Functions
+ .PP
+ The \fBtputs\fR routine applies padding information to the string
+ \fIstr\fR and outputs it. The \fIstr\fR must be a terminfo string
+@@ -235,26 +280,48 @@
+ .PP
+ The \fBmvcur\fR routine provides low-level cursor motion. It takes
+ effect immediately (rather than at the next refresh).
++.\" ***************************************************************************
++.SS Terminal Capability Functions
+ .PP
+ The \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return
+ the value of the capability corresponding to the \fBterminfo\fR
+ \fIcapname\fR passed to them, such as \fBxenl\fR.
++The \fIcapname\fR for each capability is given in the table column entitled
++\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n).
+ .PP
+-The \fBtigetflag\fR routine returns the value \fB\-1\fR if
+-\fIcapname\fR is not a boolean capability,
+-or \fB0\fR if it is canceled or absent from the terminal description.
+-.PP
+-The \fBtigetnum\fR routine returns the value \fB\-2\fR if
+-\fIcapname\fR is not a numeric capability,
+-or \fB\-1\fR if it is canceled or absent from the terminal description.
++These routines return special values to denote errors.
+ .PP
+-The \fBtigetstr\fR routine returns the value \fB(char *)\-1\fR
++The \fBtigetflag\fR routine returns
++.TP
++\fB\-1\fR
++if \fIcapname\fR is not a boolean capability,
++or
++.TP
++\fB0\fR
++if it is canceled or absent from the terminal description.
++.PP
++The \fBtigetnum\fR routine returns
++.TP
++\fB\-2\fR
++if \fIcapname\fR is not a numeric capability, or
++.TP
++\fB\-1\fR
++if it is canceled or absent from the terminal description.
++.PP
++The \fBtigetstr\fR routine returns
++.TP
++\fB(char *)\-1\fR
+ if \fIcapname\fR is not a string capability,
+-or \fB0\fR if it is canceled or absent from the terminal description.
+-.PP
+-The \fIcapname\fR for each capability is given in the table column entitled
+-\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n).
+-.sp
++or
++.TP
++\fB0\fR
++if it is canceled or absent from the terminal description.
++.\" ***************************************************************************
++.SS Terminal Capability Names
++These null-terminated arrays contain
++the short terminfo names ("codes"),
++the \fBtermcap\fR names, and the long terminfo names ("fnames")
++for each of the predefined \fBterminfo\fR variables:
+ .RS
+ \fBchar *boolnames[]\fR, \fB*boolcodes[]\fR, \fB*boolfnames[]\fR
+ .sp
+@@ -262,10 +329,6 @@
+ .sp
+ \fBchar *strnames[]\fR, \fB*strcodes[]\fR, \fB*strfnames[]\fR
+ .RE
+-.PP
+-These null-terminated arrays contain the \fIcapnames\fR, the
+-\fBtermcap\fR codes, and the full C names, for each of the
+-\fBterminfo\fR variables.
+ .SH RETURN VALUE
+ Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
+ (SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
+@@ -275,7 +338,7 @@
+ .PP
+ X/Open defines no error conditions.
+ In this implementation
+-.RS
++.RS 5
+ .TP 5
+ \fBdel_curterm\fP
+ returns an error
+@@ -300,19 +363,41 @@
+ X/Open states that \fBtputs\fP ignores the return value
+ of the output function \fIputc\fP.
+ .RE
+-.SH NOTES
+-The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR.
+-It may be useful when you want to test for terminal capabilities without
+-committing to the allocation of storage involved in \fBinitscr\fR.
+-.PP
+-Note that \fBvidattr\fR and \fBvidputs\fR may be macros.
+ .SH PORTABILITY
++X/Open notes that \fBvidattr\fR and \fBvidputs\fR may be macros.
++.PP
+ The function \fBsetterm\fR is not described by X/Open and must
+-be considered non-portable. All other functions are as described by X/Open.
++be considered non-portable.
++All other functions are as described by X/Open.
+ .PP
+ \fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
+ This is not part of X/Open Curses, but is assumed by some applications.
+ .PP
++If configured to use the terminal-driver,
++e.g., for the MinGW port,
++.bP
++\fBsetupterm\fP interprets a missing/empty TERM variable as the
++special value \*(``unknown\*(''.
++.bP
++\fBsetupterm\fP allows explicit use of the
++the windows console driver by checking if $TERM is set to
++\*(``#win32con\*('' or an abbreviation of that string.
++.PP
++Older versions of \fBncurses\fP assumed that the file descriptor passed to
++\fBsetupterm\fP from \fBinitscr\fP or \fBnewterm\fP uses buffered I/O,
++and would write to the corresponding stream.
++In addition to the limitation that the terminal was left in block-buffered
++mode on exit (like SystemV curses),
++it was problematic because \fBncurses\fP
++did not allow a reliable way to cleanup on receiving SIGTSTP.
++The current version uses output buffers managed directly by \fBncurses\fP.
++Some of the low-level functions described in this manual page write
++to the standard output.
++They are not signal-safe.
++The high-level functions in \fBncurses\fP use
++alternate versions of these functions
++using the more reliable buffering scheme.
++.PP
+ In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
+ returns \fBOK\fR or \fBERR\fR. We have chosen to implement the X/Open Curses
+ semantics.
+@@ -332,12 +417,12 @@
+ zeroes are fine for this purpose.
+ .PP
+ In response to comments by Thomas E. Dickey,
+-X/Open Curses Issue 7 proposed the \fBtiparam\fP function in mid-2009.
++X/Open Curses Issue 7 proposed the \fBtiparm\fP function in mid-2009.
+ .PP
+ X/Open notes that after calling \fBmvcur\fR, the curses state may not match the
+ actual terminal state, and that an application should touch and refresh
+ the window before resuming normal curses calls.
+-Both ncurses and System V Release 4 curses implement \fBmvcur\fR using
++Both \fBncurses\fP and System V Release 4 curses implement \fBmvcur\fR using
+ the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR.
+ So though it is documented as a terminfo function,
+ \fBmvcur\fR is really a curses function which is not well specified.
+@@ -346,8 +431,12 @@
+ This implementation allows the caller to use \-1's for the old ordinates.
+ In that case, the old location is unknown.
+ .PP
+-Extended terminal capability names, e.g., as defined by \fBtic\ \-x\fP,
+-are not stored in the arrays described in this section.
++Other implementions may not declare the capability name arrays.
++Some provide them without declaring them.
++X/Open does not specify them.
++.PP
++Extended terminal capability names, e.g., as defined by \fB@TIC@\ \-x\fP,
++are not stored in the arrays described here.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
+ \fBcurs_initscr\fR(3X),
+Index: man/curs_threads.3x
+Prereq: 1.18
+--- ncurses-5.9/man/curs_threads.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_threads.3x 2014-03-15 19:25:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2008,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_threads.3x,v 1.18 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_threads.3x,v 1.20 2014/03/15 19:25:28 tom Exp $
+ .TH curs_threads 3X ""
+ .de bP
+ .IP \(bu 4
+@@ -51,9 +51,9 @@
+ .br
+ \fBint set_tabsize(int size);\fR
+ .br
+-\fBint use_screen(SCREEN *scr, NCURSES_WINDOW_CB func, void *data);\fR
++\fBint use_screen(SCREEN *scr, NCURSES_SCREEN_CB func, void *data);\fR
+ .br
+-\fBint use_window(WINDOW *win, NCURSES_SCREEN_CB func, void *data);\fR
++\fBint use_window(WINDOW *win, NCURSES_WINDOW_CB func, void *data);\fR
+ .br
+ .SH DESCRIPTION
+ This implementation can be configured to provide rudimentary support
+@@ -540,6 +540,7 @@
+ wget_wstr/screen (input-operation)
+ wgetbkgrnd/window
+ wgetch/screen (input-operation)
++wgetdelay/window
+ wgetn_wstr/screen (input-operation)
+ wgetnstr/screen (input-operation)
+ wgetparent/window
+Index: man/curs_util.3x
+Prereq: 1.32
+--- ncurses-5.9/man/curs_util.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_util.3x 2013-07-20 19:43:45.000000000 +0000
+@@ -1,5 +1,6 @@
++'\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,8 +27,12 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_util.3x,v 1.32 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_util.3x,v 1.37 2013/07/20 19:43:45 tom Exp $
+ .TH curs_util 3X ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .de bP
+ .IP \(bu 4
+ ..
+@@ -44,6 +49,7 @@
+ \fBputwin\fR,
+ \fBunctrl\fR,
+ \fBuse_env\fR,
++\fBuse_tioctl\fR,
+ \fBwunctrl\fR \- miscellaneous \fBcurses\fR utility routines
+ .ad
+ .hy
+@@ -64,6 +70,8 @@
+ .br
+ \fBvoid use_env(bool f);\fR
+ .br
++\fBvoid use_tioctl(bool f);\fR
++.br
+ \fBint putwin(WINDOW *win, FILE *filep);\fR
+ .br
+ \fBWINDOW *getwin(FILE *filep);\fR
+@@ -80,10 +88,12 @@
+ The corresponding \fBwunctrl\fR returns a printable representation of
+ a wide character.
+ .PP
+-The \fBkeyname\fR routine returns a character string corresponding to the key \fIc\fR:
++The \fBkeyname\fR routine returns a character string
++corresponding to the key \fIc\fR:
+ .RS 3
+ .bP
+-Printable characters are displayed as themselves, e.g., a one-character string containing the key.
++Printable characters are displayed as themselves,
++e.g., a one-character string containing the key.
+ .bP
+ Control characters are displayed in the \fB^\fR\fIX\fR notation.
+ .bP
+@@ -123,16 +133,70 @@
+ The limitation arises because the \fBfilter\fP routine modifies the
+ in-memory copy of the terminal information.
+ .PP
+-The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or
+-\fBnewterm\fR are called. When called with \fBFALSE\fR as an
+-argument, the values of \fBlines\fR and \fBcolumns\fR specified in the
+-\fIterminfo\fR database will be used, even if environment variables
+-\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if
+-\fBcurses\fR is running in a window (in which case default behavior
+-would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are
+-not set).
+-Note that setting \fBLINES\fR or \fBCOLUMNS\fR overrides the
+-corresponding size which may be obtained from the operating system.
++The \fBuse_env\fR routine, if used,
++should be called before \fBinitscr\fR or
++\fBnewterm\fR are called
++(because those compute the screen size).
++It modifies the way \fBncurses\fP treats environment variables
++when determining the screen size.
++.bP
++Normally ncurses looks first at the terminal database for the screen size.
++.IP
++If \fBuse_env\fP was called with \fBFALSE\fP for parameter,
++it stops here unless
++If \fBuse_tioctl\fP was also called with \fBTRUE\fP for parameter.
++.bP
++Then it asks for the screen size via operating system calls.
++If successful,
++it overrides the values from the terminal database.
++.bP
++Finally (unless \fBuse_env\fP was called with \fBFALSE\fP parameter),
++ncurses examines the \fBLINES\fR or \fBCOLUMNS\fR environment variables,
++using a value in those to override the results
++from the operating system or terminal database.
++.IP
++Ncurses also updates the screen size in response to SIGWINCH,
++unless overridden by the \fBLINES\fR or \fBCOLUMNS\fR environment variables,
++.PP
++The \fBuse_tioctl\fR routine, if used,
++should be called before \fBinitscr\fR or \fBnewterm\fR are called
++(because those compute the screen size).
++After \fBuse_tioctl\fR is called with \fBTRUE\fR as an argument,
++ncurses modifies the last step in its computation of screen size as follows:
++.bP
++checks if the \fBLINES\fR and \fBCOLUMNS\fR environment variables
++are set to a number greater than zero.
++.bP
++for each, ncurses updates the corresponding environment variable
++with the value that it has obtained via operating system call
++or from the terminal database.
++.bP
++ncurses re-fetches the value of the environment variables so that
++it is still the environment variables which set the screen size.
++.PP
++The \fBuse_env\fP and \fBuse_tioctl\fP routines combine as
++summarized here:
++.TS
++center tab(/);
++l l l
++_ _ _
++lw7 lw7 lw40.
++\fIuse_env\fR/\fIuse_tioctl\fR/\fISummary\fR
++TRUE/FALSE/T{
++This is the default behavior.
++ncurses uses operating system calls
++unless overridden by $LINES or $COLUMNS environment variables.
++T}
++TRUE/TRUE/T{
++ncurses updates $LINES and $COLUMNS based on operating system calls.
++T}
++FALSE/TRUE/T{
++ncurses ignores $LINES and $COLUMNS, uses operating system calls to obtain size.
++T}
++FALSE/FALSE/T{
++ncurses relies on the terminal database to determine size.
++T}
++.TE
+ .PP
+ The \fBputwin\fR routine writes all data associated with window \fIwin\fR into
+ the file to which \fIfilep\fR points. This information can be later retrieved
+@@ -145,7 +209,8 @@
+ The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause
+ in output. This routine should not be used extensively because
+ padding characters are used rather than a CPU pause.
+-If no padding character is specified, this uses \fBnapms\fR to perform the delay.
++If no padding character is specified,
++this uses \fBnapms\fR to perform the delay.
+ .PP
+ The \fBflushinp\fR routine throws away any typeahead that has been typed by the
+ user and has not yet been read by the program.
+@@ -183,12 +248,13 @@
+ If \fBuse_legacy_coding\fP has been called with a \fB2\fP parameter,
+ \fBunctrl\fP returns the parameter, i.e., a one-character string with
+ the parameter as the first character.
+-Otherwise, it returns ``~@'', ``~A'', etc., analogous to ``^@'', ``^A'', C0 controls.
++Otherwise, it returns \*(``~@\*('', \*(``~A\*('', etc.,
++analogous to \*(``^@\*('', \*(``^A\*('', C0 controls.
+ .IP
+ X/Open Curses does not document whether \fBunctrl\fP can be called before
+ initializing curses.
+ This implementation permits that,
+-and returns the ``~@'', etc., values in that case.
++and returns the \*(``~@\*('', etc., values in that case.
+ .bP
+ parameter values outside the 0 to 255 range.
+ \fBunctrl\fP returns a null pointer.
+@@ -214,17 +280,17 @@
+ Likewise, the \fBmeta\fP function allows the caller to change the
+ output of \fBkeyname\fP, i.e.,
+ it determines whether to use the `M\-' prefix
+-for ``meta'' keys (codes in the range 128 to 255).
++for \*(``meta\*('' keys (codes in the range 128 to 255).
+ Both \fBuse_legacy_coding\fP and \fBmeta\fP succeed only after
+ curses is initialized.
+ X/Open Curses does not document the treatment of codes 128 to 159.
+-When treating them as ``meta'' keys
++When treating them as \*(``meta\*('' keys
+ (or if \fBkeyname\fP is called before initializing curses),
+-this implementation returns strings ``M\-^@'', ``M\-^A'', etc.
++this implementation returns strings \*(``M\-^@\*('', \*(``M\-^A\*('', etc.
+ .PP
+ The \fBkeyname\fP function may return the names of user-defined
+ string capabilities which are defined in the terminfo entry via the \fB\-x\fP
+-option of \fBtic\fP.
++option of \fB@TIC@\fP.
+ This implementation automatically assigns at run-time keycodes to
+ user-defined strings which begin with "k".
+ The keycodes start at KEY_MAX, but are not guaranteed to be
+@@ -233,8 +299,8 @@
+ The \fBuse_extended_names\fP function controls whether this data is
+ loaded when the terminal description is read by the library.
+ .PP
+-The \fBnofilter\fP routine is specific to ncurses.
+-It was not supported on Version 7, BSD or System V implementations.
++The \fBnofilter\fP and \fBuse_tioctl\fP routines are specific to ncurses.
++They were not supported on Version 7, BSD or System V implementations.
+ It is recommended that any code depending on ncurses extensions
+ be conditioned using NCURSES_VERSION.
+ .SH SEE ALSO
+Index: man/curs_variables.3x
+Prereq: 1.4
+--- ncurses-5.9/man/curs_variables.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_variables.3x 2013-12-21 18:41:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_variables.3x,v 1.4 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_variables.3x,v 1.6 2013/12/21 18:41:32 tom Exp $
+ .TH curs_variables 3X ""
+ .de bP
+ .IP \(bu 4
+@@ -74,7 +74,7 @@
+ A more complete description is given in the \fBcurses\fP(3X) manual page.
+ .PP
+ Depending on the configuration, these may be actual variables,
+-or macros (see \fBcurs_threads\fR(3X))
++or macros (see \fBcurs_threads\fR(3X) and \fBcurs_opaque\fR(3X))
+ which provide read-only access to \fIcurses\fP's state.
+ In either case, applications should treat them as read-only to avoid
+ confusing the library.
+@@ -129,7 +129,8 @@
+ not provided in most other implementations of curses.
+ .SH SEE ALSO
+ \fBcurses\fR(3X),
++\fBcurs_opaque\fR(3X),
++\fBcurs_terminfo\fR(3X),
+ \fBcurs_threads\fR(3X),
+ \fBterm_variables\fR(3X),
+-\fBterminfo\fR(3X),
+ \fBterminfo\fR(\*n).
+Index: man/curs_window.3x
+Prereq: 1.17
+--- ncurses-5.9/man/curs_window.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/curs_window.3x 2014-03-01 23:36:38.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: curs_window.3x,v 1.17 2010/12/04 18:38:55 tom Exp $
++.\" $Id: curs_window.3x,v 1.18 2014/03/01 23:36:38 tom Exp $
+ .TH curs_window 3X ""
+ .na
+ .hy 0
+@@ -47,17 +47,20 @@
+ .SH SYNOPSIS
+ \fB#include <curses.h>\fR
+ .sp
+-\fBWINDOW *newwin(int nlines, int ncols, int begin_y,\fR
+- \fBint begin_x);\fR
++\fBWINDOW *newwin(\fR
++ \fBint nlines, int ncols,\fR
++ \fBint begin_y, int begin_x);\fR
+ .br
+ \fBint delwin(WINDOW *win);\fR
+ .br
+ \fBint mvwin(WINDOW *win, int y, int x);\fR
+ .br
+-\fBWINDOW *subwin(WINDOW *orig, int nlines, int ncols,\fR
++\fBWINDOW *subwin(WINDOW *orig,\fR
++ \fBint nlines, int ncols,\fR
+ \fBint begin_y, int begin_x);\fR
+ .br
+-\fBWINDOW *derwin(WINDOW *orig, int nlines, int ncols,\fR
++\fBWINDOW *derwin(WINDOW *orig,\fR
++ \fBint nlines, int ncols,\fR
+ \fBint begin_y, int begin_x);\fR
+ .br
+ \fBint mvderwin(WINDOW *win, int par_y, int par_x);\fR
+@@ -74,53 +77,70 @@
+ .br
+ .SH DESCRIPTION
+ Calling \fBnewwin\fR creates and returns a pointer to a new window with the
+-given number of lines and columns. The upper left-hand corner of the window is
+-at line \fIbegin\fR_\fIy\fR, column \fIbegin\fR_\fIx\fR. If either
+-\fInlines\fR or \fIncols\fR is zero, they default to \fBLINES \-\fR
+-\fIbegin\fR_\fIy\fR and \fBCOLS \-\fR \fIbegin\fR_\fIx\fR. A new full-screen
+-window is created by calling \fBnewwin(0,0,0,0)\fR.
++given number of lines and columns.
++The upper left-hand corner of the window is
++at
++.RS
++line \fIbegin\fR_\fIy\fR,
++.br
++column \fIbegin\fR_\fIx\fR
++.RE
++.PP
++If either
++\fInlines\fR or \fIncols\fR is zero, they default to
++.RS
++\fBLINES \-\fR \fIbegin\fR_\fIy\fR and
++.br
++\fBCOLS \-\fR \fIbegin\fR_\fIx\fR.
++.RE
++.PP
++A new full-screen window is created by calling \fBnewwin(0,0,0,0)\fR.
+ .PP
+ Calling \fBdelwin\fR deletes the named window, freeing all memory
+ associated with it (it does not actually erase the window's screen
+-image). Subwindows must be deleted before the main window can be
+-deleted.
++image).
++Subwindows must be deleted before the main window can be deleted.
+ .PP
+ Calling \fBmvwin\fR moves the window so that the upper left-hand
+-corner is at position (\fIx\fR, \fIy\fR). If the move would cause the
+-window to be off the screen, it is an error and the window is not
+-moved. Moving subwindows is allowed, but should be avoided.
++corner is at position (\fIx\fR, \fIy\fR).
++If the move would cause the window to be off the screen,
++it is an error and the window is not moved.
++Moving subwindows is allowed, but should be avoided.
+ .PP
+ Calling \fBsubwin\fR creates and returns a pointer to a new window
+-with the given number of lines, \fInlines\fR, and columns,
+-\fIncols\fR. The window is at position (\fIbegin\fR_\fIy\fR,
+-\fIbegin\fR_\fIx\fR) on the screen. (This position is relative to the
+-screen, and not to the window \fIorig\fR.) The window is made in the
+-middle of the window \fIorig\fR, so that changes made to one window
+-will affect both windows. The subwindow shares memory with the window
+-\fIorig\fR. When using this routine, it is necessary to call
++with the given number of lines, \fInlines\fR, and columns, \fIncols\fR.
++The window is at position (\fIbegin\fR_\fIy\fR,
++\fIbegin\fR_\fIx\fR) on the screen.
++The subwindow shares memory with the window \fIorig\fR,
++so that changes made to one window
++will affect both windows.
++When using this routine, it is necessary to call
+ \fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling
+ \fBwrefresh\fR on the subwindow.
+ .PP
+ Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that
+ \fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin
+-of the window \fIorig\fR rather than the screen. There is no
+-difference between the subwindows and the derived windows.
++of the window \fIorig\fR rather than the screen.
++There is no difference between the subwindows and the derived windows.
+ .PP
+ Calling \fBmvderwin\fR moves a derived window (or subwindow)
+-inside its parent window. The screen-relative parameters of the
+-window are not changed. This routine is used to display different
++inside its parent window.
++The screen-relative parameters of the window are not changed.
++This routine is used to display different
+ parts of the parent window at the same physical position on the
+ screen.
+ .PP
+ Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR.
+ .PP
+ Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are
+-changed in \fIwin\fR. If \fBsyncok\fR is called with second argument
++changed in \fIwin\fR.
++If \fBsyncok\fR is called with second argument
+ \fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a
+ change in the window.
+ .PP
+ The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been
+-touched in any of its ancestor windows. This routine is called by
++touched in any of its ancestor windows.
++This routine is called by
+ \fBwrefresh\fR, so it should almost never be necessary to call it manually.
+ .PP
+ The routine \fBwcursyncup\fR updates the current cursor position of all the
+@@ -135,11 +155,18 @@
+ .PP
+ X/Open defines no error conditions.
+ In this implementation
+-.RS
+ .TP 5
+ \fBdelwin\fR
+ returns an error if the window pointer is null, or
+ if the window is the parent of another window.
++.TP 5
++\fBderwin\fP
++returns an error if the parent window pointer is null, or
++if any of its ordinates or dimensions is negative, or
++if the resulting window does not fit inside the parent window.
++.TP 5
++\fBdupwin\fP
++returns an error if the window pointer is null.
+ .IP
+ This implementation also maintains a list of windows,
+ and checks that the pointer passed to \fBdelwin\fP is one that
+@@ -156,10 +183,23 @@
+ if the window is really a pad, or
+ if some part of the window would be placed off-screen.
+ .TP 5
++\fBnewwin\fP
++will fail if either of its beginning ordinates is negative, or
++if either the number of lines or columns is negative.
++.TP 5
+ \fBsyncok\fP
+ returns an error
+ if the window pointer is null.
+-.RE
++.TP 5
++\fBsubwin\fP
++returns an error if the parent window pointer is null, or
++if any of its ordinates or dimensions is negative, or
++if the resulting window does not fit inside the parent window.
++.PP
++The functions which return a window pointer
++may also fail if there is insufficient memory for its data structures.
++Any of these functions will fail if the screen has not been initialized,
++i.e., with \fBinitscr\fP or \fBnewterm\fP.
+ .SH NOTES
+ If many small changes are made to the window, the \fBwsyncup\fR option could
+ degrade performance.
+@@ -171,11 +211,12 @@
+ incompletely implemented, and not well tested.
+ .PP
+ The System V curses documentation is very unclear about what \fBwsyncup\fR
+-and \fBwsyncdown\fR actually do. It seems to imply that they are only
++and \fBwsyncdown\fR actually do.
++It seems to imply that they are only
+ supposed to touch exactly those lines that are affected by ancestor changes.
+ The language here, and the behavior of the \fBcurses\fR implementation,
+-is patterned on the XPG4 curses standard. The weaker XPG4 spec may result
+-in slower updates.
++is patterned on the XPG4 curses standard.
++The weaker XPG4 spec may result in slower updates.
+ .SH PORTABILITY
+ The XSI Curses standard, Issue 4 describes these functions.
+ .SH SEE ALSO
+Index: man/form.3x
+Prereq: 1.24
+--- ncurses-5.9/man/form.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/form.3x 2014-08-16 20:31:45.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form.3x,v 1.24 2010/12/04 18:40:45 tom Exp $
++.\" $Id: form.3x,v 1.25 2014/08/16 20:31:45 tom Exp $
+ .TH form 3X ""
+ .SH NAME
+ \fBform\fR \- curses extension for programming forms
+@@ -189,9 +189,6 @@
+ .TP 5
+ .B E_UNKNOWN_COMMAND
+ The form driver code saw an unknown request code.
+-.SH SEE ALSO
+-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
+-descriptions of the entry points.
+ .SH NOTES
+ The header file \fB<form.h>\fR automatically includes the header files
+ \fB<curses.h>\fR and \fB<eti.h>\fR.
+@@ -206,5 +203,8 @@
+ Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric
+ S. Raymond.
+ .SH SEE ALSO
++\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
++descriptions of the entry points.
++.PP
+ This describes \fBncurses\fR
+ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+Index: man/form_field.3x
+Prereq: 1.10
+--- ncurses-5.9/man/form_field.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/form_field.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_field.3x,v 1.10 2010/12/04 18:40:45 tom Exp $
++.\" $Id: form_field.3x,v 1.11 2012/11/03 23:03:59 tom Exp $
+ .TH form_field 3X ""
+ .SH NAME
+ \fBform_field\fR \- make and break connections between fields and forms
+@@ -52,7 +52,7 @@
+ .PP
+ The function \fBmove_field\fR moves the given field (which must be disconnected)
+ to a specified location on the screen.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ The function \fBform_fields\fR returns a pointer (which may be \fBNULL\fR).
+ It does not set errno.
+ .PP
+Index: man/form_field_opts.3x
+Prereq: 1.16
+--- ncurses-5.9/man/form_field_opts.3x 2010-12-04 18:41:07.000000000 +0000
++++ ncurses-5.9-20141206/man/form_field_opts.3x 2014-07-26 21:21:57.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_field_opts.3x,v 1.16 2010/12/04 18:41:07 tom Exp $
++.\" $Id: form_field_opts.3x,v 1.17 2014/07/26 21:21:57 tom Exp $
+ .TH form_field_opts 3X ""
+ .SH NAME
+ \fBform_field_opts\fR \- set and get field options
+@@ -54,42 +54,47 @@
+ .PP
+ The function \fBfield_opts\fR returns the field's current option bits.
+ .PP
+-The following options are defined (all are on by default):
+-.TP 5
+-O_VISIBLE
+-The field is displayed. If this option is off, display of the field is
+-suppressed.
++The following standard options are defined (all are on by default):
+ .TP 5
+ O_ACTIVE
+ The field is visited during processing. If this option is off, the field will
+ not be reachable by navigation keys. Please notice that an invisible field
+ appears to be inactive also.
+ .TP 5
+-O_PUBLIC
+-The field contents are displayed as data is entered.
+-.TP 5
+-O_EDIT
+-The field can be edited.
+-.TP 5
+-O_WRAP
+-Words that do not fit on a line are wrapped to the next line. Words are
+-blank-separated.
++O_AUTOSKIP
++Skip to the next field when this one fills.
+ .TP 5
+ O_BLANK
+ 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.
++O_EDIT
++The field can be edited.
+ .TP 5
+ O_NULLOK
+ Allow a blank field.
+ .TP 5
++O_PASSOK
++Validate field only if modified by user.
++.TP 5
++O_PUBLIC
++The field contents are displayed as data is entered.
++.TP 5
+ O_STATIC
+ Field buffers are fixed to field's original size.
+ Turn this option off to create a dynamic field.
+ .TP 5
+-O_PASSOK
+-Validate field only if modified by user.
++O_VISIBLE
++The field is displayed. If this option is off, display of the field is
++suppressed.
++.TP 5
++O_WRAP
++Words that do not fit on a line are wrapped to the next line. Words are
++blank-separated.
++.PP
++One extension option is defined (extensions are off by default):
++.TP 5
++O_DYNAMIC_JUSTIFY
++Permit dynamic fields to be justified, like static fields.
+ .SH RETURN VALUE
+ Except for \fBfield_opts\fR, each routine returns one of the following:
+ .TP 5
+@@ -105,7 +110,9 @@
+ .B E_SYSTEM_ERROR
+ System error occurred (see \fBerrno\fR).
+ .SH SEE ALSO
+-\fBcurses\fR(3X), \fBform\fR(3X).
++\fBcurses\fR(3X),
++\fBform\fR(3X).
++\fBform_field_just\fR(3X).
+ .SH NOTES
+ The header file \fB<form.h>\fR automatically includes the header file
+ \fB<curses.h>\fR.
+Index: man/form_variables.3x
+Prereq: 1.3
+--- ncurses-5.9/man/form_variables.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/form_variables.3x 2013-06-22 17:58:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2010,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: form_variables.3x,v 1.3 2010/12/04 18:38:55 tom Exp $
++.\" $Id: form_variables.3x,v 1.4 2013/06/22 17:58:32 tom Exp $
+ .TH form_variables 3X ""
+ .ds n 5
+ .na
+@@ -45,7 +45,6 @@
+ .SH SYNOPSIS
+ .nf
+ \fB#include <form.h>\fR
+-.br
+ .PP
+ \fBFIELDTYPE * TYPE_ALNUM;\fR
+ \fBFIELDTYPE * TYPE_ALPHA;\fR
+@@ -54,7 +53,6 @@
+ \fBFIELDTYPE * TYPE_IPV4;\fR
+ \fBFIELDTYPE * TYPE_NUMERIC;\fR
+ \fBFIELDTYPE * TYPE_REGEXP;\fR
+-.br
+ .fi
+ .SH DESCRIPTION
+ These are building blocks for the form library,
+Index: man/infocmp.1m
+Prereq: 1.46
+--- ncurses-5.9/man/infocmp.1m 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/infocmp.1m 2014-03-29 23:18:29.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,9 +27,12 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: infocmp.1m,v 1.46 2010/12/04 18:40:45 tom Exp $
++.\" $Id: infocmp.1m,v 1.54 2014/03/29 23:18:29 tom Exp $
+ .TH @INFOCMP@ 1M ""
+ .ds n 5
++.de bP
++.IP \(bu 4
++..
+ .ds d @TERMINFO@
+ .SH NAME
+ \fB@INFOCMP@\fR \- compare or print out \fIterminfo\fR descriptions
+@@ -37,10 +40,12 @@
+ \fB@INFOCMP@\fR [\fB\-\
+ 1\
+ C\
++D\
+ E\
+ F\
+ G\
+ I\
++K\
+ L\
+ T\
+ U\
+@@ -69,32 +74,40 @@
+ \fB@INFOCMP@\fR can be used to compare a binary \fBterminfo\fR entry with other
+ terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
+ \fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
+-binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean
++binary file (\fBterm\fR) in a variety of formats.
++In all cases, the boolean
+ fields will be printed first, followed by the numeric fields, followed by the
+ string fields.
+ .SS Default Options
+ If no options are specified and zero or one \fItermnames\fR are specified, the
+-\fB\-I\fR option will be assumed. If more than one \fItermname\fR is specified,
++\fB\-I\fR option will be assumed.
++If more than one \fItermname\fR is specified,
+ the \fB\-d\fR option will be assumed.
+ .SS Comparison Options [\-d] [\-c] [\-n]
+ \fB@INFOCMP@\fR compares the \fBterminfo\fR description of the first terminal
+ \fItermname\fR with each of the descriptions given by the entries for the other
+-terminal's \fItermnames\fR. If a capability is defined for only one of the
++terminal's \fItermnames\fR.
++If a capability is defined for only one of the
+ terminals, the value returned will depend on the type of the capability:
+ \fBF\fR for boolean variables, \fB\-1\fR for integer variables, and \fBNULL\fR
+ for string variables.
+ .PP
+ The \fB\-d\fR option produces a list of each capability that is different
+-between two entries. This option is useful to show the difference between two
++between two entries.
++This option is useful to show the difference between two
+ entries, created by different people, for the same or similar terminals.
+ .PP
+ The \fB\-c\fR option produces a list of each capability that is common between
+-two entries. Capabilities that are not set are ignored. This option can be
++two or more entries.
++Capabilities that are not set are ignored.
++This option can be
+ used as a quick check to see if the \fB\-u\fR option is worth using.
+ .PP
+-The \fB\-n\fR option produces a list of each capability that is in neither
+-entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR
+-will be used for both of the \fItermnames\fR. This can be used as a quick
++The \fB\-n\fR option produces a list of each capability that is in none of
++the given entries.
++If no \fItermnames\fR are given, the environment variable \fBTERM\fR
++will be used for both of the \fItermnames\fR.
++This can be used as a quick
+ check to see if anything was left out of a description.
+ .SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
+ The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce a source listing for
+@@ -107,6 +120,7 @@
+ \fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR>
+ \fB\-C\fR/use the \fBtermcap\fR names
+ \fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form
++\fB\-K\fR/modifies the \fB\-C\fP option, improving BSD-compatibility.
+ .TE
+ .PP
+ If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
+@@ -114,26 +128,48 @@
+ .PP
+ The source produced by the \fB\-C\fR option may be used directly as a
+ \fBtermcap\fR entry, but not all parameterized strings can be changed to
+-the \fBtermcap\fR format. \fB@INFOCMP@\fR will attempt to convert most of the
++the \fBtermcap\fR format.
++\fB@INFOCMP@\fR will attempt to convert most of the
+ parameterized information, and anything not converted will be plainly marked in
+-the output and commented out. These should be edited by hand.
++the output and commented out.
++These should be edited by hand.
++.PP
++For best results when converting to \fBtermcap\fP format,
++you should use both \fB\-C\fP and \fB\-r\fP.
++Normally a termcap description is limited to 1023 bytes.
++@INFOCMP@ trims away less essential parts to make it fit.
++If you are converting to one of the (rare) termcap implementations
++which accept an unlimited size of termcap,
++you may want to add the \fB\-T\fP option.
++More often however, you must help the termcap implementation,
++and trim excess whitespace (use the \fB\-0\fP option for that).
+ .PP
+ All padding information for strings will be collected together and placed
+-at the beginning of the string where \fBtermcap\fR expects it. Mandatory
++at the beginning of the string where \fBtermcap\fR expects it.
++Mandatory
+ padding (padding information with a trailing '/') will become optional.
+ .PP
+ All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
+-are derivable from other \fBterminfo\fR variables, will be output. Not all
++are derivable from other \fBterminfo\fR variables, will be output.
++Not all
+ \fBterminfo\fR capabilities will be translated; only those variables which were
+-part of \fBtermcap\fR will normally be output. Specifying the \fB\-r\fR option
++part of \fBtermcap\fR will normally be output.
++Specifying the \fB\-r\fR option
+ will take off this restriction, allowing all capabilities to be output in
+ \fItermcap\fR form.
++Normally you would use both the \fB\-C\fP and \fB\-r\fP options.
++The actual format used incorporates some improvements for escaped characters
++from terminfo format.
++For a stricter BSD-compatible translation, use the \fB\-K\fR option
++rather than \fB\-C\fP.
+ .PP
+ Note that because padding is collected to the beginning of the capability, not
+-all capabilities are output. Mandatory padding is not supported. Because
++all capabilities are output.
++Mandatory padding is not supported.
++Because
+ \fBtermcap\fR strings are not as flexible, it is not always possible to convert
+-a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A
+-subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format
++a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format.
++A subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format
+ will not necessarily reproduce the original \fBterminfo\fR
+ source.
+ .PP
+@@ -156,27 +192,33 @@
+ .SS Use= Option [\-u]
+ The \fB\-u\fR option produces a \fBterminfo\fR source description of the first
+ terminal \fItermname\fR which is relative to the sum of the descriptions given
+-by the entries for the other terminals \fItermnames\fR. It does this by
++by the entries for the other terminals \fItermnames\fR.
++It does this by
+ analyzing the differences between the first \fItermname\fR and the other
+ \fItermnames\fR and producing a description with \fBuse=\fR fields for the
+-other terminals. In this manner, it is possible to retrofit generic terminfo
+-entries into a terminal's description. Or, if two similar terminals exist, but
++other terminals.
++In this manner, it is possible to retrofit generic terminfo
++entries into a terminal's description.
++Or, if two similar terminals exist, but
+ were coded at different times or by different people so that each description
+ is a full description, using \fB@INFOCMP@\fR will show what can be done to change
+ one description to be relative to the other.
+ .PP
+ A capability will get printed with an at-sign (@) if it no longer exists in the
+ first \fItermname\fR, but one of the other \fItermname\fR entries contains a
+-value for it. A capability's value gets printed if the value in the first
++value for it.
++A capability's value gets printed if the value in the first
+ \fItermname\fR is not found in any of the other \fItermname\fR entries, or if
+ the first of the other \fItermname\fR entries that has this capability gives a
+ different value for the capability than that in the first \fItermname\fR.
+ .PP
+-The order of the other \fItermname\fR entries is significant. Since the
+-terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
++The order of the other \fItermname\fR entries is significant.
++Since the
++terminfo compiler \fB@TIC@\fR does a left-to-right scan of the capabilities,
+ specifying two \fBuse=\fR entries that contain differing entries for the same
+ capabilities will produce different results depending on the order that the
+-entries are given in. \fB@INFOCMP@\fR will flag any such inconsistencies between
++entries are given in.
++\fB@INFOCMP@\fR will flag any such inconsistencies between
+ the other \fItermname\fR entries as they are found.
+ .PP
+ Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
+@@ -187,29 +229,48 @@
+ .PP
+ Another error that does not cause incorrect compiled files, but will slow down
+ the compilation time, is specifying extra \fBuse=\fR fields that are
+-superfluous. \fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
++superfluous.
++\fB@INFOCMP@\fR will flag any other \fItermname use=\fR fields that
+ were not needed.
+ .SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
+-The location of the compiled \fBterminfo\fR database is taken from the
+-environment variable \fBTERMINFO\fR . If the variable is not defined, or the
+-terminal is not found in that location, the system \fBterminfo\fR database,
+-in \fB@TERMINFO@\fR, will be used. The options \fB\-A\fR
+-and \fB\-B\fR may be used to override this location. The \fB\-A\fR option will
+-set \fBTERMINFO\fR for the first \fItermname\fR and the \fB\-B\fR option will
+-set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to
++Like other \fBncurses\fP utilities,
++@INFOCMP@ looks for the terminal descriptions in several places.
++You can use the \fBTERMINFO\fP and \fBTERMINFO_DIRS\fP environment variables
++to override the compiled-in default list of places to search
++(see \fBcurses\fP(3X) for details).
++.PP
++You can also use the options \fB\-A\fR
++and \fB\-B\fR to override the list of places to search
++when comparing terminal descriptions:
++.bP
++The \fB\-A\fR option sets the location for the first \fItermname\fR
++.bP
++The \fB\-B\fR option sets the location for the other \fItermnames\fR.
++.PP
++Using these options, it is possible to
+ compare descriptions for a terminal with the same name located in two different
+-databases. This is useful for comparing descriptions for the same terminal
++databases.
++For instance,
++you can use this feature for comparing descriptions for the same terminal
+ created by different people.
+ .SS Other Options
+ .TP 5
++\fB\-0\fR
++causes the fields to be printed on one line, without wrapping.
++.TP 5
+ \fB\-1\fR
+-causes the fields to be printed out one to a line. Otherwise,
++causes the fields to be printed out one to a line.
++Otherwise,
+ the fields will be printed several to a line to a maximum width
+ of 60 characters.
+ .TP
+ \fB\-a\fR
+ tells \fB@INFOCMP@\fP to retain commented-out capabilities rather than discarding
+-them. Capabilities are commented by prefixing them with a period.
++them.
++Capabilities are commented by prefixing them with a period.
++.TP
++\fB\-D\fR
++tells \fB@INFOCMP@\fP to print the database locations that it knows about, and exit.
+ .TP 5
+ \fB\-E\fR
+ Dump the capabilities of the given terminal as tables, needed in
+@@ -231,12 +292,15 @@
+ for a given terminal type.
+ .TP 5
+ \fB\-F\fR
+-compare terminfo files. This assumes that two following arguments are
+-filenames. The files are searched for pairwise matches between
++compare terminfo files.
++This assumes that two following arguments are filenames.
++The files are searched for pairwise matches between
+ entries, with two entries considered to match if any of their names do.
+ The report printed to standard output lists entries with no matches in
+-the other file, and entries with more than one match. For entries
+-with exactly one match it includes a difference report. Normally,
++the other file, and entries with more than one match.
++For entries
++with exactly one match it includes a difference report.
++Normally,
+ to reduce the volume of the report, use references are
+ not resolved before looking for differences, but resolution can be forced
+ by also specifying \fB\-r\fR.
+@@ -255,14 +319,17 @@
+ .TP 5
+ \fB\-i\fR
+ Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
+-(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the
++(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry.
++For each string, the
+ code tries to analyze it into actions in terms of the other capabilities in the
+ entry, certain X3.64/ISO 6429/ECMA\-48 capabilities, and certain DEC VT-series
+ private modes (the set of recognized special sequences has been selected for
+-completeness over the existing terminfo database). Each report line consists
++completeness over the existing terminfo database).
++Each report line consists
+ of the capability name, followed by a colon and space, followed by a printable
+ expansion of the capability string with sections matching recognized actions
+-translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI
++translated into {}-bracketed descriptions.
++Here is a list of the DEC/ANSI
+ special sequences recognized:
+ i.
+ .TS
+@@ -308,8 +375,9 @@
+ .sp
+ It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
+ Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
+-REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off).
+-.PP
++REVERSE.
++All but NORMAL may be prefixed with `+' (turn on) or `\-' (turn off).
++.IP
+ An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
+ .TP 5
+ \fB\-l\fR
+@@ -323,12 +391,15 @@
+ "\-" for absent capabilities, "@" for canceled rather than "NULL".
+ .TP 5
+ \fB\-R\fR\fIsubset\fR
+-Restrict output to a given subset. This option is for use with archaic
++Restrict output to a given subset.
++This option is for use with archaic
+ versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
+ the full set of SVR4/XSI Curses terminfo; and variants such as AIX
+-that have their own extensions incompatible with SVr4/XSI. Available terminfo
++that have their own extensions incompatible with SVr4/XSI.
++Available terminfo
+ subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for
+-details. You can also choose the subset "BSD" which selects only capabilities
++details.
++You can also choose the subset "BSD" which selects only capabilities
+ with termcap equivalents recognized by 4.4BSD.
+ .TP
+ \fB\-s \fR\fI[d|i|l|c]\fR
+@@ -362,7 +433,7 @@
+ descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
+ .TP
+ \fB\-t\fR
+-tells \fBtic\fP to discard commented-out capabilities.
++tells \fB@TIC@\fP to discard commented-out capabilities.
+ Normally when translating from terminfo to termcap,
+ untranslatable capabilities are commented-out.
+ .TP 5
+@@ -385,13 +456,15 @@
+ \fB\-x\fR
+ print information for user-defined capabilities.
+ These are extensions to the terminfo repertoire which can be loaded
+-using the \fB\-x\fR option of \fBtic\fP.
++using the \fB\-x\fR option of \fB@TIC@\fP.
+ .SH FILES
+ .TP 20
+ \*d
+ Compiled terminal description database.
+ .SH EXTENSIONS
+ The
++\fB\-0\fR,
++\fB\-1\fR,
+ \fB\-E\fR,
+ \fB\-F\fR,
+ \fB\-G\fR,
+@@ -410,7 +483,8 @@
+ options are not supported in SVr4 curses.
+ .PP
+ The \fB\-r\fR option's notion of `termcap' capabilities is System V Release 4's.
+-Actual BSD curses versions will have a more restricted set. To see only the
++Actual BSD curses versions will have a more restricted set.
++To see only the
+ 4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
+ .SH BUGS
+ The \fB\-F\fR option of \fB@INFOCMP@\fR(1M) should be a \fB@TOE@\fR(1M) mode.
+@@ -421,6 +495,8 @@
+ \fB@TOE@\fR(1M),
+ \fBcurses\fR(3X),
+ \fBterminfo\fR(\*n).
++.sp
++http://invisible-island.net/ncurses/tctest.html
+ .PP
+ This describes \fBncurses\fR
+ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+Index: man/manhtml.aliases
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/man/manhtml.aliases 2013-12-21 21:44:52.000000000 +0000
+@@ -0,0 +1,16 @@
++# $Id: manhtml.aliases,v 1.1 2013/12/21 21:44:52 tom Exp $
++# Items in this list will be linked to the corresponding manpages by man2html
++addch(3X) curs_addch(3X)
++delscreen(3X) curs_initscr(3X)
++filter(3X) curs_util(3X)
++form_fieldtype(3X) form_fieldtype(3X)
++getch(3X) curs_getch(3X)
++infocmp(1) infocmp(1M)
++initscr(3X) curs_initscr(3X)
++newterm(3X) curs_initscr(3X)
++set_fieldtype(3X) form_fieldtype(3X)
++set_term(3X) curs_initscr(3X)
++setupterm(3X) curs_terminfo(3X)
++tic(1) tic(1M)
++use_env(3X) curs_util(3X)
++vidputs(3X) curs_terminfo(3X)
+Index: man/manhtml.externs
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/man/manhtml.externs 2013-12-21 22:11:29.000000000 +0000
+@@ -0,0 +1,24 @@
++# $Id: manhtml.externs,v 1.3 2013/12/21 22:11:29 tom Exp $
++# Items in this list will not be linked by man2html
++conflict(1)
++csh(1)
++ded(1)
++environ(7)
++getty(1)
++nvi(1)
++printf(3)
++profile(5)
++putc(3)
++putwc(3)
++read(2)
++rogue(1)
++scanf(3)
++sh(1)
++sscanf(3)
++stdio(3)
++stty(1)
++system(3)
++termio(7)
++tty(4)
++ttys(5)
++wcwidth(3)
+Index: man/menu.3x
+Prereq: 1.21
+--- ncurses-5.9/man/menu.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/menu.3x 2014-08-16 20:32:08.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: menu.3x,v 1.21 2010/12/04 18:40:45 tom Exp $
++.\" $Id: menu.3x,v 1.22 2014/08/16 20:32:08 tom Exp $
+ .TH menu 3X ""
+ .SH NAME
+ \fBmenu\fR \- curses extension for programming menus
+@@ -166,9 +166,6 @@
+ .TP 5
+ .B E_UNKNOWN_COMMAND
+ The menu driver code saw an unknown request code.
+-.SH SEE ALSO
+-\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
+-descriptions of the entry points.
+ .SH NOTES
+ The header file \fB<menu.h>\fR automatically includes the header files
+ \fB<curses.h>\fR and \fB<eti.h>\fR.
+@@ -183,5 +180,8 @@
+ Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric
+ S. Raymond.
+ .SH SEE ALSO
++\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
++descriptions of the entry points.
++.PP
+ This describes \fBncurses\fR
+ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+Index: man/menu_items.3x
+Prereq: 1.9
+--- ncurses-5.9/man/menu_items.3x 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/menu_items.3x 2012-11-03 23:03:59.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: menu_items.3x,v 1.9 2010/12/04 18:40:45 tom Exp $
++.\" $Id: menu_items.3x,v 1.10 2012/11/03 23:03:59 tom Exp $
+ .TH menu_items 3X ""
+ .SH NAME
+ \fBmenu_items\fR \- make and break connections between items and menus
+@@ -47,7 +47,7 @@
+ The function \fBmenu_items\fR returns the item array of the given menu.
+ .PP
+ The function \fBitem_count\fR returns the count of items in \fImenu\fR.
+-.SH RETURN VALUES
++.SH RETURN VALUE
+ The function \fBmenu_items\fR returns a pointer (which may be \fBNULL\fR).
+ It does not set errno.
+ .PP
+Index: man/ncurses.3x
+Prereq: 1.103
+--- ncurses-5.9/man/ncurses.3x 2011-02-05 23:21:29.000000000 +0000
++++ ncurses-5.9-20141206/man/ncurses.3x 2014-08-09 20:54:30.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,9 +27,13 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp $
++.\" $Id: ncurses.3x,v 1.119 2014/08/09 20:54:30 tom Exp $
+ .hy 0
+ .TH ncurses 3X ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .de bP
+ .IP \(bu 4
+ ..
+@@ -43,7 +47,7 @@
+ .SH DESCRIPTION
+ The \fBncurses\fR library routines give the user a terminal-independent method
+ of updating character screens with reasonable optimization.
+-This implementation is ``new curses'' (ncurses) and
++This implementation is \*(``new curses\*('' (ncurses) and
+ is the approved replacement for
+ 4.4BSD classic curses, which has been discontinued.
+ This describes \fBncurses\fR
+@@ -55,8 +59,10 @@
+ XSI stands for X/Open System Interfaces Extension.
+ The \fBncurses\fR library is freely redistributable in source form.
+ Differences from the SVr4
+-curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
+-described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
++curses are summarized under the
++\fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
++described in detail in the respective
++\fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
+ of individual man pages.
+ .PP
+ The \fBncurses\fR library also provides many useful extensions,
+@@ -108,9 +114,9 @@
+ .sp
+ Before a \fBcurses\fR program is run, the tab stops of the terminal
+ should be set and its initialization strings, if defined, must be output.
+-This can be done by executing the \fBtput init\fR command
++This can be done by executing the \fB@TPUT@ init\fR command
+ after the shell environment variable \fBTERM\fR has been exported.
+-\fBtset(1)\fR is usually responsible for doing this.
++\fB@TSET@(1)\fR is usually responsible for doing this.
+ [See \fBterminfo\fR(\*n) for further details.]
+ .PP
+ The \fBncurses\fR library permits manipulation of data structures,
+@@ -637,6 +643,7 @@
+ use_env/\fBcurs_util\fR(3X)
+ use_extended_names/\fBcurs_extend\fR(3X)*
+ use_legacy_coding/\fBlegacy_coding\fR(3X)*
++use_tioctl/\fBcurs_util\fR(3X)
+ vid_attr/\fBcurs_terminfo\fR(3X)
+ vid_puts/\fBcurs_terminfo\fR(3X)
+ vidattr/\fBcurs_terminfo\fR(3X)
+@@ -734,9 +741,16 @@
+ integer value other than \fBERR\fR upon successful completion, unless
+ otherwise noted in the routine descriptions.
+ .PP
++As a general rule, routines check for null pointers passed as parameters,
++and handle this as an error.
++.PP
+ All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
+ \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
+-The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
++The return values of
++\fBsetscrreg\fR,
++\fBwsetscrreg\fR,
++\fBgetyx\fR,
++\fBgetbegyx\fR, and
+ \fBgetmaxyx\fR are undefined (i.e., these should not be used as the
+ right-hand side of assignment statements).
+ .PP
+@@ -746,24 +760,24 @@
+ runtime behavior of the \fBncurses\fR library.
+ The most important ones have been already discussed in detail.
+ .TP 5
+-BAUDRATE
+-The debugging library checks this environment symbol when the application
+-has redirected output to a file.
+-The symbol's numeric value is used for the baudrate.
+-If no value is found, \fBncurses\fR uses 9600.
+-This allows testers to construct repeatable test-cases
+-that take into account costs that depend on baudrate.
+-.TP 5
+ CC
+ When set, change occurrences of the command_character
+ (i.e., the \fBcmdch\fP capability)
+-of the loaded terminfo entries to the value of this symbol.
++of the loaded terminfo entries to the value of this variable.
+ Very few terminfo entries provide this feature.
+ .IP
+ Because this name is also used in development environments to represent
+ the C compiler's name, \fBncurses\fR ignores it if it does not happen to
+ be a single character.
+ .TP 5
++BAUDRATE
++The debugging library checks this environment variable when the application
++has redirected output to a file.
++The variable's numeric value is used for the baudrate.
++If no value is found, \fBncurses\fR uses 9600.
++This allows testers to construct repeatable test-cases
++that take into account costs that depend on baudrate.
++.TP 5
+ COLUMNS
+ Specify the width of the screen in characters.
+ Applications running in a windowing environment usually are able to
+@@ -786,7 +800,9 @@
+ a terminal description for terminals which are run as emulations.
+ .IP
+ Use the \fBuse_env\fR function to disable all use of external environment
+-(including system calls) to determine the screen size.
++(but not including system calls) to determine the screen size.
++Use the \fBuse_tioctl\fR function to update \fBCOLUMNS\fP or \fBLINES\fP
++to match the screen size obtained from system calls or the terminal database.
+ .TP 5
+ ESCDELAY
+ Specifies the total time, in milliseconds, for which ncurses will
+@@ -837,8 +853,8 @@
+ .br
+ 3 = middle.
+ .sp
+-This symbol lets you customize the mouse.
+-The symbol must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
++This variable lets you customize the mouse.
++The variable must be three numeric digits 1\-3 in any order, e.g., 123 or 321.
+ If it is not specified, \fBncurses\fR uses 132.
+ .TP 5
+ NCURSES_ASSUMED_COLORS
+@@ -852,6 +868,17 @@
+ To make it green-on-black, set it to "2,0".
+ Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
+ .TP 5
++NCURSES_CONSOLE2
++This applies only to the MinGW port of ncurses.
++.IP
++The \fBConsole2\fP program's handling of the Microsoft Console API call
++\fBCreateConsoleScreenBuffer\fP is defective.
++Applications which use this will hang.
++However, it is possible to simulate the action of this call by
++mapping coordinates,
++explicitly saving and restoring the original screen contents.
++Setting the environment variable \fBNCGDB\fP has the same effect.
++.TP 5
+ NCURSES_GPM_TERMS
+ This applies only to ncurses configured to use the GPM interface.
+ .IP
+@@ -871,7 +898,7 @@
+ Set this environment variable to disable the feature.
+ You can also adjust your \fBstty\fP settings to avoid the problem.
+ .TP 5
+-NCURSES_NO_MAGIC_COOKIES
++NCURSES_NO_MAGIC_COOKIE
+ Some terminals use a magic-cookie feature which requires special handling
+ to make highlighting and other video attributes display properly.
+ You can suppress the highlighting entirely for these terminals by
+@@ -899,19 +926,44 @@
+ You may wish to use these descriptions,
+ but not want to pay the performance penalty.
+ .IP
+-Set the NCURSES_NO_PADDING symbol to disable all but mandatory
++Set the NCURSES_NO_PADDING environment variable to disable all but mandatory
+ padding.
+ Mandatory padding is used as a part of special control
+ sequences such as \fIflash\fR.
+ .TP 5
+ NCURSES_NO_SETBUF
+-Normally \fBncurses\fR enables buffered output during terminal initialization.
+-This is done (as in SVr4 curses) for performance reasons.
++This setting is obsolete.
++Before changes
++.RS
++.bP
++started with 5.9 patch 20120825
++and
++.bP
++continued
++though 5.9 patch 20130126
++.RE
++.IP
++\fBncurses\fR enabled buffered output during terminal initialization.
++This was done (as in SVr4 curses) for performance reasons.
+ For testing purposes, both of \fBncurses\fR and certain applications,
+-this feature is made optional.
++this feature was made optional.
+ Setting the NCURSES_NO_SETBUF variable
+-disables output buffering, leaving the output in the original (usually
++disabled output buffering, leaving the output in the original (usually
+ line buffered) mode.
++.IP
++In the current implementation,
++ncurses performs its own buffering and does not require this workaround.
++It does not modify the buffering of the standard output.
++.IP
++The reason for the change was to make the behavior for interrupts and
++other signals more robust.
++One drawback is that certain nonconventional programs would mix
++ordinary stdio calls with ncurses calls and (usually) work.
++This is no longer possible since ncurses is not using
++the buffered standard output but its own output (to the same file descriptor).
++As a special case, the low-level calls such as \fBputp\fP still use the
++standard output.
++But high-level curses calls do not.
+ .TP 5
+ NCURSES_NO_UTF8_ACS
+ During initialization, the \fBncurses\fR library
+@@ -933,20 +985,22 @@
+ .IP
+ As an alternative to the environment variable,
+ ncurses checks for an extended terminfo capability \fBU8\fP.
+-This is a numeric capability which can be compiled using \fBtic\ \-x\fP.
++This is a numeric capability which can be compiled using \fB@TIC@\ \-x\fP.
+ For example
+ .RS 5
++.ft CW
+ .sp
+ .nf
+ # linux console, if patched to provide working
+ # VT100 shift-in/shift-out, with corresponding font.
+ linux-vt100|linux console with VT100 line-graphics,
+- U8#0, use=linux,
++ U8#0, use=linux,
+ .sp
+ # uxterm with vt100Graphics resource set to false
+ xterm-utf8|xterm relying on UTF-8 line-graphics,
+- U8#1, use=xterm,
++ U8#1, use=xterm,
+ .fi
++.ft
+ .RE
+ .IP
+ The name "U8" is chosen to be two characters,
+@@ -955,7 +1009,7 @@
+ .TP 5
+ NCURSES_TRACE
+ During initialization, the \fBncurses\fR debugging library
+-checks the NCURSES_TRACE symbol.
++checks the NCURSES_TRACE environment variable.
+ If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
+ function, using that value as the argument.
+ .IP
+@@ -967,15 +1021,31 @@
+ TERM
+ Denotes your terminal type.
+ Each terminal type is distinct, though many are similar.
++.IP
++\fBTERM\fP is commonly set by terminal emulators to help
++applications find a workable terminal description.
++Some of those choose a popular approximation, e.g.,
++\*(``ansi\*('', \*(``vt100\*('', \*(``xterm\*('' rather than an exact fit.
++Not infrequently, your application will have problems with that approach,
++e.g., incorrect function-key definitions.
++.IP
++If you set \fBTERM\fP in your environment,
++it has no effect on the operation of the terminal emulator.
++It only affects the way applications work within the terminal.
++Likewise, as a general rule (\fBxterm\fP being a rare exception),
++terminal emulators which allow you to
++specify \fBTERM\fP as a parameter or configuration value do
++not change their behavior to match that setting.
+ .TP 5
+ TERMCAP
+ If the \fBncurses\fR library has been configured with \fItermcap\fR
+ support, \fBncurses\fR will check for a terminal's description in
+ termcap form if it is not available in the terminfo database.
+ .IP
+-The TERMCAP symbol contains either a terminal description (with
++The TERMCAP environment variable contains either a terminal description (with
+ newlines stripped out),
+-or a file name telling where the information denoted by the TERM symbol exists.
++or a file name telling where the information denoted by
++the TERM environment variable exists.
+ In either case, setting it directs \fBncurses\fR to ignore
+ the usual place for this information, e.g., /etc/termcap.
+ .TP 5
+@@ -988,33 +1058,51 @@
+ .bP
+ the last directory to which \fBncurses\fR wrote, if any, is searched first
+ .bP
+-the directory specified by the TERMINFO symbol
++the directory specified by the TERMINFO environment variable
+ .bP
+ $HOME/.terminfo
+ .bP
+-directories listed in the TERMINFO_DIRS symbol
++directories listed in the TERMINFO_DIRS environment variable
+ .bP
+ one or more directories whose names are configured and compiled into the
+-ncurses library, e.g.,
+-@TERMINFO@
++ncurses library, i.e.,
++.RS
++.bP
++@TERMINFO_DIRS@ (corresponding to the TERMINFO_DIRS variable)
++.bP
++@TERMINFO@ (corresponding to the TERMINFO variable)
++.RE
+ .RE
+ .TP 5
+ TERMINFO_DIRS
+ Specifies a list of directories to search for terminal descriptions.
+ The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
+-All of the terminal descriptions are in terminfo form, which makes
+-a subdirectory named for the first letter of the terminal names therein.
++.IP
++All of the terminal descriptions are in terminfo form.
++Normally these are stored in a directory tree,
++using subdirectories named by the first letter of the terminal names therein.
++.IP
++If \fBncurses\fP is built with a hashed database,
++then each entry in this list can also be the path of the corresponding
++database file.
++.IP
++If \fBncurses\fP is built with a support for reading termcap files
++directly, then an entry in this list may be the path of a termcap file.
+ .TP 5
+ TERMPATH
+ If TERMCAP does not hold a file name then \fBncurses\fR checks
+-the TERMPATH symbol.
+-This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
+-If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
++the TERMPATH environment variable.
++This is a list of filenames separated by spaces or colons (i.e., ":") on Unix,
++semicolons on OS/2 EMX.
++.IP
++If the TERMPATH environment variable is not set,
++\fBncurses\fR looks in the files
+ /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
+ .PP
+ The library may be configured to disregard the following variables when the
+ current user is the superuser (root), or if the application uses setuid or
+ setgid permissions:
++.IP
+ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
+ .SH ALTERNATE CONFIGURATIONS
+ Several different configurations are possible,
+@@ -1042,8 +1130,9 @@
+ to build executables.
+ .TP 5
+ \-\-enable\-widec
+-The configure script renames the library and (if the \fB\-\-disable\-overwrite\fP
+-option is used) puts the header files in a different subdirectory.
++The configure script renames the library and
++(if the \fB\-\-disable\-overwrite\fP option is used)
++puts the header files in a different subdirectory.
+ All of the library names have a "w" appended to them,
+ i.e., instead of
+ .RS
+@@ -1068,6 +1157,16 @@
+ to allow applications to be built using either library
+ from the same set of headers.
+ .TP 5
++\-\-with\-pthread
++The configure script renames the library.
++All of the library names have a "t" appended to them
++(before any "w" added by \fB\-\-enable\-widec\fP).
++.IP
++The global variables such as \fBLINES\fP are replaced by macros to
++allow read-only access.
++At the same time, setter-functions are provided to set these values.
++Some applications (very few) may require changes to work with this convention.
++.TP 5
+ \-\-with\-shared
+ .TP
+ \-\-with\-normal
+@@ -1093,8 +1192,8 @@
+ @TERMINFO@
+ terminal capability database
+ .SH SEE ALSO
+-\fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
+-descriptions.
++\fBterminfo\fR(\*n) and related pages whose names begin
++"curs_" for detailed routine descriptions.
+ .br
+ \fBcurs_variables\fR(3X)
+ .SH EXTENSIONS
+@@ -1144,6 +1243,15 @@
+ the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
+ sections of the library man pages.
+ .PP
++Unlike other implementations, this one checks parameters such as pointers
++to WINDOW structures to ensure they are not null.
++The main reason for providing this behavior is to guard against programmer
++error.
++The standard interface does not provide a way for the library
++to tell an application which of several possible errors were detected.
++Relying on this (or some other) extension will adversely affect the
++portability of curses applications.
++.PP
+ This implementation also contains several extensions:
+ .bP
+ The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
+Index: man/resizeterm.3x
+Prereq: 1.14
+--- ncurses-5.9/man/resizeterm.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/resizeterm.3x 2013-06-22 20:41:54.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,9 +26,9 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" Author: Thomas E. Dickey 1996-2005
++.\" Author: Thomas E. Dickey 1996-on
+ .\"
+-.\" $Id: resizeterm.3x,v 1.14 2010/12/04 18:38:55 tom Exp $
++.\" $Id: resizeterm.3x,v 1.17 2013/06/22 20:41:54 tom Exp $
+ .TH resizeterm 3X ""
+ .SH NAME
+ \fBis_term_resized\fR,
+@@ -48,7 +48,8 @@
+ primarily for use by programs running in an X Window terminal (e.g., xterm).
+ The function \fBresizeterm\fR resizes the standard and current windows
+ to the specified dimensions, and adjusts other bookkeeping data used by
+-the \fBncurses\fR library that record the window dimensions.
++the \fBncurses\fR library that record the window dimensions
++such as the \fBLINES\fP and \fBCOLS\fP variables.
+ .LP
+ Most of the work is done by the inner function \fBresize_term\fR.
+ The outer function \fBresizeterm\fR adds bookkeeping for the SIGWINCH handler.
+@@ -64,7 +65,7 @@
+ can check if the \fBresize_term\fR function would modify the window structures.
+ It returns TRUE if the windows would be modified, and FALSE otherwise.
+ .SH RETURN VALUE
+-Except as notes, these function return
++Except as noted, these functions return
+ the integer \fBERR\fR upon failure and \fBOK\fR on success.
+ They will fail if either of the dimensions are less than or equal to zero,
+ or if an error occurs while (re)allocating memory for the windows.
+@@ -75,7 +76,7 @@
+ since it uses those functions.
+ .PP
+ If ncurses is configured to supply its own SIGWINCH handler,
+-the \fBresizeterm\fR function ungetch's a \fBKEY_RESIZE\fR which
++the \fBresizeterm\fR function \fBungetch\fP's a \fBKEY_RESIZE\fR which
+ will be read on the next call to \fBgetch\fR.
+ This is used to alert an application that the screen size has changed,
+ and that it should repaint special features such as pads that cannot
+@@ -86,9 +87,8 @@
+ the operating system.
+ Thus, even if a SIGWINCH is received,
+ no screen size change may be recorded.
+-In that case, no \fBKEY_RESIZE\fP is queued for the next call to \fBgetch\fP;
+-an \fBERR\fP will be returned instead.
+ .SH SEE ALSO
++\fBcurs_getch\fR(3X),
+ \fBcurs_variables\fR(3X),
+ \fBwresize\fR(3X).
+ .SH AUTHOR
+Index: man/tabs.1
+Prereq: 1.8
+--- ncurses-5.9/man/tabs.1 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/tabs.1 2013-06-22 18:11:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2008-2011,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,19 +26,18 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tabs.1,v 1.8 2010/12/04 18:40:45 tom Exp $
++.\" $Id: tabs.1,v 1.11 2013/06/22 18:11:57 tom Exp $
+ .TH @TABS@ 1 ""
+ .ds n 5
+ .SH NAME
+-\fBtabs\fR \- set tabs on a terminal
++\fB@TABS@\fR \- set tabs on a terminal
+ .SH SYNOPSIS
+-\fBtabs\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR
+-.br
++\fB@TABS@\fR [\fIoptions\fR]] \fI[tabstop-list]\fR
+ .SH DESCRIPTION
+ .PP
+-The \fBtabs\fP program clears and sets tab-stops on the terminal.
++The \fB@TABS@\fP program clears and sets tab-stops on the terminal.
+ This uses the terminfo \fIclear_all_tabs\fP and \fIset_tab\fP capabilities.
+-If either is absent, \fBtabs\fP is unable to clear/set tab-stops.
++If either is absent, \fB@TABS@\fP is unable to clear/set tab-stops.
+ The terminal should be configured to use hard tabs, e.g.,
+ .sp
+ .RS
+@@ -48,8 +47,8 @@
+ .SS General Options
+ .TP 5
+ .BI \-T "name"
+-Tell \fBtabs\fP which terminal type to use.
+-If this option is not given, \fBtabs\fP will use the \fB$TERM\fP
++Tell \fB@TABS@\fP which terminal type to use.
++If this option is not given, \fB@TABS@\fP will use the \fB$TERM\fP
+ environment variable.
+ If that is not set, it will use the \fIansi+tabs\fP entry.
+ .TP 5
+@@ -59,10 +58,13 @@
+ The second data line shows the actual tab-stops, marked with asterisks.
+ .TP 5
+ .B \-n
+-This option tells \fBtabs\fP to check the options and run any debugging
++This option tells \fB@TABS@\fP to check the options and run any debugging
+ option, but not to modify the terminal settings.
++.TP
++\fB\-V\fR
++reports the version of ncurses which was used in this program, and exits.
+ .PP
+-The \fBtabs\fP program processes a single list of tab stops.
++The \fB@TABS@\fP program processes a single list of tab stops.
+ The last option to be processed which defines a list is the one that
+ determines the list to be processed.
+ .SS Implicit Lists
+Index: man/term.7
+Prereq: 1.22
+--- ncurses-5.9/man/term.7 2010-12-04 18:41:07.000000000 +0000
++++ ncurses-5.9-20141206/man/term.7 2011-12-17 23:32:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2007,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: term.7,v 1.22 2010/12/04 18:41:07 tom Exp $
++.\" $Id: term.7,v 1.23 2011/12/17 23:32:17 tom Exp $
+ .TH term 7
+ .ds n 5
+ .ds d @TERMINFO@
+@@ -55,7 +55,7 @@
+ are in fact using a VT100-superset console, terminal, or terminal emulator.)
+ .PP
+ In any case, you are free to override the system \fBTERM\fR setting to your
+-taste in your shell profile. The \fBtset\fP(1) utility may be of assistance;
++taste in your shell profile. The \fB@TSET@\fP(1) utility may be of assistance;
+ you can give it a set of rules for deducing or requesting a terminal type based
+ on the tty device and baud rate.
+ .PP
+Index: man/term_variables.3x
+Prereq: 1.2
+--- ncurses-5.9/man/term_variables.3x 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/term_variables.3x 2013-12-21 22:17:39.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 2011,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: term_variables.3x,v 1.2 2010/12/04 18:38:55 tom Exp $
++.\" $Id: term_variables.3x,v 1.4 2013/12/21 22:17:39 tom Exp $
+ .TH term_variables 3X ""
+ .ds n 5
+ .na
+@@ -110,7 +110,7 @@
+ Alternatively, one can save the return value from \fBnewterm\fP
+ or \fBsetupterm\fP to reuse in \fBset_term\fP.
+ .SS Terminfo Names
+-The \fBtic\fP(1) and \fBinfocmp\fP(1) programs use lookup tables for
++The \fB@TIC@\fP(1) and \fB@INFOCMP@\fP(1) programs use lookup tables for
+ the long and short names of terminfo capabilities,
+ as well as the corresponding names for termcap capabilities.
+ These are available to other applications,
+@@ -134,7 +134,10 @@
+ On initialization of the curses or terminfo interfaces,
+ \fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
+ .SH NOTES
+-The low-level terminfo interface is initialized using \fBsetupterm\fR(3X).
++The low-level terminfo interface is initialized using
++.hy 0
++\fBsetupterm\fR(3X).
++.hy
+ The upper-level curses interface uses the low-level terminfo interface,
+ internally.
+ .SH PORTABILITY
+@@ -146,8 +149,9 @@
+ Some implementations provide the variables in their libraries,
+ but omit them from the header files.
+ .SH SEE ALSO
++.hy 0
+ \fBcurses\fR(3X),
+ \fBcurs_terminfo\fR(3X),
+ \fBcurs_threads\fR(3X),
+-\fBterminfo\fR(3X),
+ \fBterminfo\fR(\*n).
++.hy
+Index: man/terminfo.head
+Prereq: 1.18
+--- ncurses-5.9/man/terminfo.head 2010-07-31 16:08:48.000000000 +0000
++++ ncurses-5.9-20141206/man/terminfo.head 2013-03-09 22:11:36.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,10 +26,17 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: terminfo.head,v 1.18 2010/07/31 16:08:48 tom Exp $
++.\" $Id: terminfo.head,v 1.21 2013/03/09 22:11:36 tom Exp $
+ .TH terminfo 5 "" "" "File Formats"
+ .ds n 5
+ .ds d @TERMINFO@
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
++.de bP
++.IP \(bu 4
++..
+ .SH NAME
+ terminfo \- terminal capability data base
+ .SH SYNOPSIS
+@@ -74,7 +81,7 @@
+ Terminal names (except for the last, verbose entry) should
+ be chosen using the following conventions.
+ The particular piece of hardware making up the terminal should
+-have a root name, thus ``hp2621''.
++have a root name, thus \*(``hp2621\*(''.
+ This name should not contain hyphens.
+ Modes that the hardware can be in, or user preferences, should
+ be indicated by appending a hyphen and a mode suffix.
+@@ -102,6 +109,6 @@
+ .TE
+ .PP
+ For more on terminal naming conventions, see the \fBterm(7)\fR manual page.
+-.SS Capabilities
++.SS Predefined Capabilities
+ .\" Head of terminfo man page ends here
+ .ps -1
+Index: man/terminfo.tail
+Prereq: 1.53
+--- ncurses-5.9/man/terminfo.tail 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/terminfo.tail 2013-11-09 15:20:48.000000000 +0000
+@@ -1,8 +1,51 @@
+-.\" $Id: terminfo.tail,v 1.53 2010/12/04 18:38:55 tom Exp $
++.\" $Id: terminfo.tail,v 1.68 2013/11/09 15:20:48 tom Exp $
+ .\" Beginning of terminfo.tail file
+ .\" This file is part of ncurses.
+ .\" See "terminfo.head" for copyright.
+ .ps +1
++.SS User-Defined Capabilities
++.
++The preceding section listed the \fIpredefined\fP capabilities.
++They deal with some special features for terminals no longer
++(or possibly never) produced.
++Occasionally there are special features of newer terminals which
++are awkward or impossible to represent by reusing the predefined
++capabilities.
++.PP
++\fBncurses\fP addresses this limitation by allowing user-defined capabilities.
++The \fB@TIC@\fP and \fB@INFOCMP@\fP programs provide
++the \fB\-x\fP option for this purpose.
++When \fB\-x\fP is set,
++\fB@TIC@\fP treats unknown capabilities as user-defined.
++That is, if \fB@TIC@\fP encounters a capability name
++which it does not recognize,
++it infers its type (boolean, number or string) from the syntax
++and makes an extended table entry for that capability.
++The \fBuse_extended_names\fP function makes this information
++conditionally available to applications.
++The ncurses library provides the data leaving most of the behavior
++to applications:
++.bP
++User-defined capability strings whose name begins
++with \*(``k\*('' are treated as function keys.
++.bP
++The types (boolean, number, string) determined by \fB@TIC@\fP
++can be inferred by successful calls on \fBtigetflag\fP, etc.
++.bP
++If the capability name happens to be two characters,
++the capability is also available through the termcap interface.
++.PP
++While termcap is said to be extensible because it does not use a predefined set
++of capabilities,
++in practice it has been limited to the capabilities defined by
++terminfo implementations.
++As a rule,
++user-defined capabilities intended for use by termcap applications should
++be limited to booleans and numbers to avoid running past the 1023 byte
++limit assumed by termcap implementations and their applications.
++In particular, providing extended sets of function keys (past the 60
++numbered keys and the handful of special named keys) is best done using
++the longer names available using terminfo.
+ .
+ .SS A Sample Entry
+ .
+@@ -10,42 +53,54 @@
+ of what a \fBterminfo\fR entry for a modern terminal typically looks like.
+ .PP
+ .nf
+-.in -2
+-.ta .3i
+ .ft CW
+ \s-2ansi|ansi/pc-term compatible with color,
+- mc5i,
+- colors#8, ncv#3, pairs#64,
+- cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC,
+- cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM,
+- ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I,
+- ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT,
+- kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B,
+- kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V,
+- kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P,
+- kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U,
+- kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S,
+- op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%\-%db,
+- rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B,
+- s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
+- setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- sgr=\\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
+- sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n,
+- u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2
+-.in +2
++ am, mc5i, mir, msgr,
++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
++ acsc=+\\020\\,\\021-\\030.^Y0\\333`\\004a\\261f\\370g\\361h\\260
++ j\\331k\\277l\\332m\\300n\\305o~p\\304q\\304r\\304s_t\\303
++ u\\264v\\301w\\302x\\263y\\363z\\362{\\343|\\330}\\234~\\376,
++ bel=^G, blink=\\E[5m, bold=\\E[1m, cbt=\\E[Z, clear=\\E[H\\E[J,
++ cr=^M, cub=\\E[%p1%dD, cub1=\\E[D, cud=\\E[%p1%dB, cud1=\\E[B,
++ cuf=\\E[%p1%dC, cuf1=\\E[C, cup=\\E[%i%p1%d;%p2%dH,
++ cuu=\\E[%p1%dA, cuu1=\\E[A, dch=\\E[%p1%dP, dch1=\\E[P,
++ dl=\\E[%p1%dM, dl1=\\E[M, ech=\\E[%p1%dX, ed=\\E[J, el=\\E[K,
++ el1=\\E[1K, home=\\E[H, hpa=\\E[%i%p1%dG, ht=\\E[I, hts=\\EH,
++ ich=\\E[%p1%d@, il=\\E[%p1%dL, il1=\\E[L, ind=^J,
++ indn=\\E[%p1%dS, invis=\\E[8m, kbs=^H, kcbt=\\E[Z, kcub1=\\E[D,
++ kcud1=\\E[B, kcuf1=\\E[C, kcuu1=\\E[A, khome=\\E[H, kich1=\\E[L,
++ mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, op=\\E[39;49m,
++ rep=%p1%c\\E[%p2%{1}%-%db, rev=\\E[7m, rin=\\E[%p1%dT,
++ rmacs=\\E[10m, rmpch=\\E[10m, rmso=\\E[m, rmul=\\E[m,
++ s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, s3ds=\\E+B,
++ setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
++ sgr=\\E[0;10%?%p1%t;7%;
++ %?%p2%t;4%;
++ %?%p3%t;7%;
++ %?%p4%t;5%;
++ %?%p6%t;1%;
++ %?%p7%t;8%;
++ %?%p9%t;11%;m,
++ sgr0=\\E[0;10m, smacs=\\E[11m, smpch=\\E[11m, smso=\\E[7m,
++ smul=\\E[4m, tbc=\\E[3g, u6=\\E[%i%d;%dR, u7=\\E[6n,
++ u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%i%p1%dd,
+ .fi
+ .ft R
+ .PP
+ Entries may continue onto multiple lines by placing white space at
+ the beginning of each line except the first.
+-Comments may be included on lines beginning with ``#''.
++Comments may be included on lines beginning with \*(``#\*(''.
+ Capabilities in
+ .I terminfo
+ are of three types:
++.bP
+ Boolean capabilities which indicate that the terminal has
+-some particular feature, numeric capabilities giving the size of the terminal
+-or the size of particular delays, and string
++some particular feature,
++.bP
++numeric capabilities giving the size of the terminal
++or the size of particular delays, and
++.bP
++string
+ capabilities, which give a sequence which can be used to perform particular
+ terminal operations.
+ .PP
+@@ -58,15 +113,15 @@
+ (i.e., an automatic return and line-feed
+ when the end of a line is reached) is indicated by the capability \fBam\fR.
+ Hence the description of ansi includes \fBam\fR.
+-Numeric capabilities are followed by the character `#' and then a positive value.
++Numeric capabilities are followed by the character \*(``#\*('' and then a positive value.
+ Thus \fBcols\fR, which indicates the number of columns the terminal has,
+-gives the value `80' for ansi.
++gives the value \*(``80\*('' for ansi.
+ Values for numeric capabilities may be specified in decimal, octal or hexadecimal,
+ using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).
+ .PP
+ Finally, string valued capabilities, such as \fBel\fR (clear to end of line
+-sequence) are given by the two-character code, an `=', and then a string
+-ending at the next following `,'.
++sequence) are given by the two-character code, an \*(``=\*('', and then a string
++ending at the next following \*(``,\*(''.
+ .PP
+ A number of escape sequences are provided in the string valued capabilities
+ for easy encoding of characters there.
+@@ -75,14 +130,29 @@
+ \fB^x\fR maps to a control-x for any appropriate x, and the sequences
+ \fB\en \el \er \et \eb \ef \es\fR give
+ a newline, line-feed, return, tab, backspace, form-feed, and space.
+-Other escapes include \fB\e^\fR for \fB^\fR,
++Other escapes include
++.bP
++\fB\e^\fR for \fB^\fR,
++.bP
+ \fB\e\e\fR for \fB\e\fR,
++.bP
+ \fB\e\fR, for comma,
++.bP
+ \fB\e:\fR for \fB:\fR,
++.bP
+ and \fB\e0\fR for null.
+-(\fB\e0\fR will produce \e200, which does not terminate a string but behaves
++.IP
++\fB\e0\fR will produce \e200, which does not terminate a string but behaves
+ as a null character on most terminals, providing CS7 is specified.
+-See stty(1).)
++See stty(1).
++.IP
++The reason for this quirk is to maintain binary compatibility of the
++compiled terminfo files with other implementations,
++e.g., the SVr4 systems, which document this.
++Compiled terminfo files use null-terminated strings, with no lengths.
++Modifying this would require a new binary format,
++which would not work with other implementations.
++.PP
+ Finally, characters may be given as three octal digits after a \fB\e\fR.
+ .PP
+ A delay in milliseconds may appear anywhere in a string capability, enclosed in
+@@ -90,8 +160,8 @@
+ .I tputs
+ to provide this delay.
+ The delay must be a number with at most one decimal
+-place of precision; it may be followed by suffixes `*' or '/' or both.
+-A `*'
++place of precision; it may be followed by suffixes \*(``*\*('' or \*(``/\*('' or both.
++A \*(``*\*(''
+ indicates that the padding required is proportional to the number of lines
+ affected by the operation, and the amount given is the per-affected-unit
+ padding required.
+@@ -100,7 +170,7 @@
+ .IR lines
+ affected.) Normally, padding is advisory if the device has the \fBxon\fR
+ capability; it is used for cost computation but does not trigger delays.
+-A `/'
++A \*(``/\*(''
+ suffix indicates that the padding is mandatory and forces a delay of the given
+ number of milliseconds even on devices for which \fBxon\fR is present to
+ indicate flow control.
+@@ -115,27 +185,36 @@
+ .PP
+ .SS Fetching Compiled Descriptions
+ .PP
++The \fBncurses\fP library searches for terminal descriptions in several places.
++It uses only the first description found.
++The library has a compiled-in list of places to search
++which can be overridden by environment variables.
++Before starting to search,
++\fBncurses\fP eliminates duplicates in its search list.
++.bP
+ If the environment variable TERMINFO is set, it is interpreted as the pathname
+ of a directory containing the compiled description you are working on.
+-Only
+-that directory is searched.
+-.PP
+-If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code
+-will instead look in the directory \fB$HOME/.terminfo\fR
++Only that directory is searched.
++.bP
++If TERMINFO is not set,
++\fBncurses\fR will instead look in the directory \fB$HOME/.terminfo\fR
+ for a compiled description.
+-If it fails to find one there, and the environment variable TERMINFO_DIRS is
+-set, it will interpret the contents of that variable as a list of colon-
+-separated directories to be searched (an empty entry is interpreted as a
+-command to search \fI\*d\fR).
+-If no description is found in any of the
+-TERMINFO_DIRS directories, the fetch fails.
+-.PP
+-If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the
+-system terminfo directory, \fI\*d\fR.
+-.PP
+-(Neither the \fB$HOME/.terminfo\fR lookups nor TERMINFO_DIRS extensions are
+-supported under stock System V terminfo/curses.)
+-.PP
++.bP
++Next, if the environment variable TERMINFO_DIRS is set,
++\fBncurses\fR will interpret the contents of that variable
++as a list of colon-separated directories (or database files) to be searched.
++.IP
++An empty directory name (i.e., if the variable begins or ends
++with a colon, or contains adacent colons)
++is interpreted as the system location \fI\*d\fR.
++.bP
++Finally, \fBncurses\fP searches these compiled-in locations:
++.RS
++.bP
++a list of directories (@TERMINFO_DIRS@), and
++.bP
++the system terminfo directory, \fI\*d\fR (the compiled-in default).
++.RE
+ .SS Preparing Descriptions
+ .PP
+ We now outline how to prepare descriptions of terminals.
+@@ -154,7 +233,7 @@
+ .PP
+ To get the padding for insert line right (if the terminal manufacturer
+ did not document it) a severe test is to edit a large file at 9600 baud,
+-delete 16 or so lines from the middle of the screen, then hit the `u'
++delete 16 or so lines from the middle of the screen, then hit the \*(``u\*(''
+ key several times quickly.
+ If the terminal messes up, more padding is usually needed.
+ A similar test can be used for insert character.
+@@ -198,7 +277,7 @@
+ and
+ .BR cud1 .
+ These local cursor motions should not alter the text they pass over,
+-for example, you would not normally use `\fBcuf1\fP=\ ' because the
++for example, you would not normally use \*(``\fBcuf1\fP=\ \*('' because the
+ space would erase the character moved over.
+ .PP
+ A very important point here is that the local cursor motions encoded
+@@ -275,9 +354,10 @@
+ .ft CW
+ .\".in -2
+ \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
+- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
++ bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
+ .\".in +2
+ .ft R
++.fi
+ .PP
+ while the Lear Siegler \s-1ADM-3\s0 is described as
+ .PP
+@@ -286,8 +366,8 @@
+ .ft CW
+ .\".in -2
+ \s-1adm3\||\|3\||\|lsi adm3,
+- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+- ind=^J, lines#24,\s+1
++ am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
++ ind=^J, lines#24,\s+1
+ .\".in +2
+ .ft R
+ .fi
+@@ -296,9 +376,8 @@
+ .PP
+ Cursor addressing and other strings requiring parameters
+ in the terminal are described by a
+-parameterized string capability, with
+-.IR printf (3)
+-like escapes \fB%x\fR in it.
++parameterized string capability,
++with \fIprintf\fP-like escapes such as \fI%x\fR in it.
+ For example, to address the cursor, the
+ .B cup
+ capability is given, using two parameters:
+@@ -321,34 +400,34 @@
+ The \fB%\fR encodings have the following meanings:
+ .PP
+ .TP 5
+-\s-1%%
+-outputs `%'
++\fB%%\fP
++outputs \*(``%\*(''
+ .TP
+-%\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
+-as in \fBprintf\fP, flags are [\-+#] and space.
+-Use a `:' to allow the next character to be a `\-' flag,
++\fB%\fP\fI[[\fP:\fI]flags][width[.precision]][\fP\fBdoxXs\fP\fI]\fP
++as in \fBprintf\fP, flags are \fI[\-+#]\fP and \fIspace\fP.
++Use a \*(``:\*('' to allow the next character to be a \*(``\-\*('' flag,
+ avoiding interpreting "%\-" as an operator.
+ .TP
+-%c
++\f(CW%c\fP
+ print pop() like %c in \fBprintf\fP
+ .TP
+-%s
++\fB%s\fP
+ print pop() like %s in \fBprintf\fP
+ .TP
+-%p[1\-9]
++\fB%p\fP\fI[1\-9]\fP
+ push \fIi\fP'th parameter
+ .TP
+-%P[a\-z]
+-set dynamic variable [a\-z] to pop()
++\fB%P\fP\fI[a\-z]\fP
++set dynamic variable \fI[a\-z]\fP to pop()
+ .TP
+-%g[a\-z]
+-get dynamic variable [a\-z] and push it
++\fB%g\fP\fI[a\-z]/\fP
++get dynamic variable \fI[a\-z]\fP and push it
+ .TP
+-%P[A\-Z]
+-set static variable [a\-z] to pop()
++\fB%P\fP\fI[A\-Z]\fP
++set static variable \fI[a\-z]\fP to \fIpop()\fP
+ .TP
+-%g[A\-Z]
+-get static variable [a\-z] and push it
++\fB%g\fP\fI[A\-Z]\fP
++get static variable \fI[a\-z]\fP and push it
+ .IP
+ The terms "static" and "dynamic" are misleading.
+ Historically, these are simply two different sets of variables,
+@@ -356,48 +435,48 @@
+ However, that fact is not documented in other implementations.
+ Relying on it will adversely impact portability to other implementations.
+ .TP
+-%'\fIc\fP'
++\fB%'\fP\fIc\fP\fB'\fP
+ char constant \fIc\fP
+ .TP
+-%{\fInn\fP}
++\fB%{\fP\fInn\fP\fB}\fP
+ integer constant \fInn\fP
+ .TP
+-%l
++\fB%l\fP
+ push strlen(pop)
+ .TP
+-%+ %\- %* %/ %m
+-arithmetic (%m is mod): push(pop() op pop())
++\fB%+\fP, \fB%\-\fP, \fB%*\fP, \fB%/\fP, \fB%m\fP
++arithmetic (%m is mod): \fIpush(pop() op pop())\fP
+ .TP
+-%& %| %^
+-bit operations (AND, OR and exclusive-OR): push(pop() op pop())
++\fB%&\fP, \fB%|\fP, \fB%^\fP
++bit operations (AND, OR and exclusive-OR): \fIpush(pop() op pop())\fP
+ .TP
+-%= %> %<
+-logical operations: push(pop() op pop())
++\fB%=\fP, \fB%>\fP, \fB%<\fP
++logical operations: \fIpush(pop() op pop())\fP
+ .TP
+-%A, %O
++\fB%A\fP, \fB%O\fP
+ logical AND and OR operations (for conditionals)
+ .TP
+-%! %~
++\fB%!\fP, \fB%~\fP
+ unary operations (logical and bit complement): push(op pop())
+ .TP
+-%i
++\fB%i\fP
+ add 1 to first two parameters (for ANSI terminals)
+ .TP
+-%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %;
++\fB%?\fP \fIexpr\fP \fB%t\fP \fIthenpart\fP \fB%e\fP \fIelsepart\fP \fB%;\fP
+ This forms an if-then-else.
+-The %e \fIelsepart\fP is optional.
+-Usually the %? \fIexpr\fP part pushes a value onto the stack,
+-and %t pops it from the stack, testing if it is nonzero (true).
+-If it is zero (false), control passes to the %e (else) part.
++The \fB%e\fP \fIelsepart\fP is optional.
++Usually the \fB%?\fP \fIexpr\fP part pushes a value onto the stack,
++and \fB%t\fP pops it from the stack, testing if it is nonzero (true).
++If it is zero (false), control passes to the \fB%e\fP (else) part.
+ .IP
+ It is possible to form else-if's a la Algol 68:
+ .RS
+-%? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
++\fB%?\fP c\d1\u \fB%t\fP b\d1\u \fB%e\fP c\d2\u \fB%t\fP b\d2\u \fB%e\fP c\d3\u \fB%t\fP b\d3\u \fB%e\fP c\d4\u \fB%t\fP b\d4\u \fB%e\fP \fB%;\fP
+ .RE
+ .IP
+ where c\di\u are conditions, b\di\u are bodies.
+ .IP
+-Use the \fB\-f\fP option of \fBtic\fP or \fB@INFOCMP@\fP to see
++Use the \fB\-f\fP option of \fB@TIC@\fP or \fB@INFOCMP@\fP to see
+ the structure of if-then-else's.
+ Some strings, e.g., \fBsgr\fP can be very complicated when written
+ on one line.
+@@ -405,7 +484,7 @@
+ .PP
+ Binary operations are in postfix form with the operands in the usual order.
+ That is, to get x\-5 one would use "%gx%{5}%-".
+-%P and %g variables are
++\fB%P\fP and \fB%g\fP variables are
+ persistent across escape-string evaluations.
+ .PP
+ Consider the HP2645, which, to get to row 3 and column 12, needs
+@@ -429,7 +508,7 @@
+ .PP
+ A final example is the \s-1LSI ADM\s0-3a, which uses row and column
+ offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq.
+-After sending `\eE=', this pushes the first parameter, pushes the
++After sending \*(``\eE=\*('', this pushes the first parameter, pushes the
+ ASCII value for a space (32), adds them (pushing the sum on the stack
+ in place of the two previous values) and outputs that value as a character.
+ Then the same is done for the second parameter.
+@@ -593,6 +672,7 @@
+ a distinction between typed and untyped blanks on the screen, shifting
+ upon an insert or delete only to an untyped blank on the screen which is
+ either eliminated, or expanded to two untyped blanks.
++.PP
+ You can determine the
+ kind of terminal you have by clearing the screen and then typing
+ text separated by cursor motions.
+@@ -608,6 +688,7 @@
+ current line and onto the next as you insert, you have the second type of
+ terminal, and should give the capability \fBin\fR, which stands for
+ \*(lqinsert null\*(rq.
++.PP
+ While these are two logically separate attributes (one line versus multi-line
+ insert mode, and special treatment of untyped spaces) we have seen no
+ terminals whose insert mode cannot be described with the single attribute.
+@@ -642,7 +723,7 @@
+ in \fBip\fR (a string option).
+ Any other sequence which may need to be
+ sent after an insert of a single character may also be given in \fBip\fR.
+-If your terminal needs both to be placed into an `insert mode' and
++If your terminal needs both to be placed into an \*(``insert mode\*('' and
+ a special code to precede each inserted character, then both
+ .BR smir / rmir
+ and
+@@ -792,6 +873,7 @@
+ .PP
+ Writing out the above sequences, along with their dependencies yields
+ .PP
++.ne 11
+ .TS
+ center;
+ l l l
+@@ -799,6 +881,7 @@
+ lw18 lw14 lw18.
+ \fBsequence when to output terminfo translation\fP
+
++.ft CW
+ \\E[0 always \\E[0
+ ;1 if p1 or p6 %?%p1%p6%|%t;1%;
+ ;4 if p2 %?%p2%|%t;4%;
+@@ -807,14 +890,17 @@
+ ;8 if p7 %?%p7%|%t;8%;
+ m always m
+ ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
++.ft R
+ .TE
+ .PP
+ Putting this all together into the sgr sequence gives:
+ .PP
++.ft CW
+ .nf
+- sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
+- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
++ sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
++ %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
+ .fi
++.ft R
+ .PP
+ Remember that if you specify sgr, you must also specify sgr0.
+ Also, some implementations rely on sgr being given if sgr0 is,
+@@ -824,9 +910,9 @@
+ The only drawback to adding an sgr string is that termcap also
+ assumes that sgr0 does not exit alternate character set mode.
+ .PP
+-Terminals with the ``magic cookie'' glitch
++Terminals with the \*(``magic cookie\*('' glitch
+ .RB ( xmc )
+-deposit special ``cookies'' when they receive mode-setting sequences,
++deposit special \*(``cookies\*('' when they receive mode-setting sequences,
+ which affect the display algorithm rather than having extra bits for
+ each character.
+ Some terminals, such as the HP 2621, automatically leave standout
+@@ -871,6 +957,7 @@
+ If the keypad can be set to transmit or not transmit,
+ give these codes as \fBsmkx\fR and \fBrmkx\fR.
+ Otherwise the keypad is assumed to always transmit.
++.PP
+ The codes sent by the left arrow, right arrow, up arrow, down arrow,
+ and home keys can be given as
+ \fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively.
+@@ -878,41 +965,60 @@
+ can be given as \fBkf0, kf1, ..., kf10\fR.
+ If these keys have labels other than the default f0 through f10, the labels
+ can be given as \fBlf0, lf1, ..., lf10\fR.
++.PP
+ The codes transmitted by certain other special keys can be given:
++.bP
+ .B kll
+ (home down),
++.bP
+ .B kbs
+ (backspace),
++.bP
+ .B ktbc
+ (clear all tabs),
++.bP
+ .B kctab
+ (clear the tab stop in this column),
++.bP
+ .B kclr
+ (clear screen or erase key),
++.bP
+ .B kdch1
+ (delete character),
++.bP
+ .B kdl1
+ (delete line),
++.bP
+ .B krmir
+ (exit insert mode),
++.bP
+ .B kel
+ (clear to end of line),
++.bP
+ .B ked
+ (clear to end of screen),
++.bP
+ .B kich1
+ (insert character or enter insert mode),
++.bP
+ .B kil1
+ (insert line),
++.bP
+ .B knp
+ (next page),
++.bP
+ .B kpp
+ (previous page),
++.bP
+ .B kind
+ (scroll forward/down),
++.bP
+ .B kri
+ (scroll backward/up),
++.bP
+ .B khts
+ (set a tab stop in this column).
++.PP
+ In addition, if the keypad has a 3 by 3 array of keys including the four
+ arrow keys, the other five keys can be given as
+ .BR ka1 ,
+@@ -956,7 +1062,7 @@
+ tab stop can be given as
+ .B ht
+ (usually control I).
+-A ``back-tab'' command which moves leftward to the preceding tab stop can
++A \*(``back-tab\*('' command which moves leftward to the preceding tab stop can
+ be given as
+ .BR cbt .
+ By convention, if the teletype modes indicate that tabs are being
+@@ -974,7 +1080,7 @@
+ .B it
+ is given, showing the number of spaces the tabs are set to.
+ This is normally used by the
+-.IR tset
++.IR @TSET@
+ command to determine whether to set the mode for hardware tab expansion,
+ and whether to set the tab stops.
+ If the terminal has tab stops that can be saved in non-volatile memory,
+@@ -1131,7 +1237,7 @@
+ string is used.
+ .PP
+ .SS Status Lines
+-Some terminals have an extra `status line' which is not normally used by
++Some terminals have an extra \*(``status line\*('' which is not normally used by
+ software (and thus not counted in the terminal's \fBlines\fR capability).
+ .PP
+ The simplest case is a status line which is cursor-addressable but not
+@@ -1223,7 +1329,7 @@
+ .PP
+ .SS Color Handling
+ .PP
+-Most color terminals are either `Tektronix-like' or `HP-like'.
++Most color terminals are either \*(``Tektronix-like\*('' or \*(``HP-like\*(''.
+ Tektronix-like
+ terminals have a predefined set of N colors (where N usually 8), and can set
+ character-cell foreground and background characters independently, mixing them
+@@ -1303,6 +1409,7 @@
+ yellow \fBCOLOR_YELLOW\fR 6 max,max,0
+ white \fBCOLOR_WHITE\fR 7 max,max,max
+ .TE
++.PP
+ It is important to not confuse the two sets of color capabilities;
+ otherwise red/blue will be interchanged on the display.
+ .PP
+@@ -1339,18 +1446,25 @@
+ .PP
+ .TS
+ center;
+-l c c
+-lw25 lw2 lw10.
+-\fBAttribute Bit Decimal\fR
+-A_STANDOUT 0 1
+-A_UNDERLINE 1 2
+-A_REVERSE 2 4
+-A_BLINK 3 8
+-A_DIM 4 16
+-A_BOLD 5 32
+-A_INVIS 6 64
+-A_PROTECT 7 128
+-A_ALTCHARSET 8 256
++l l l l
++lw20 lw2 lw10 lw10.
++\fBAttribute Bit Decimal Set by\fR
++A_STANDOUT 0 1 sgr
++A_UNDERLINE 1 2 sgr
++A_REVERSE 2 4 sgr
++A_BLINK 3 8 sgr
++A_DIM 4 16 sgr
++A_BOLD 5 32 sgr
++A_INVIS 6 64 sgr
++A_PROTECT 7 128 sgr
++A_ALTCHARSET 8 256 sgr
++A_HORIZONTAL 9 512 sgr1
++A_LEFT 10 1024 sgr1
++A_LOW 11 2048 sgr1
++A_RIGHT 12 4096 sgr1
++A_TOP 13 8192 sgr1
++A_VERTICAL 14 16384 sgr1
++A_ITALIC 15 32768 sitm
+ .TE
+ .PP
+ For example, on many IBM PC consoles, the underline attribute collides with the
+@@ -1389,7 +1503,7 @@
+ .BR rep .
+ The first parameter is the character to be repeated and the second
+ is the number of times to repeat it.
+-Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'.
++Thus, tparm(repeat_char, 'x', 10) is the same as \*(``xxxxxxxxxx\*(''.
+ .PP
+ If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025,
+ this can be indicated with
+@@ -1420,13 +1534,13 @@
+ .I virtual
+ terminal descriptions for which the escape sequences are known.)
+ .PP
+-If the terminal has a ``meta key'' which acts as a shift key,
++If the terminal has a \*(``meta key\*('' which acts as a shift key,
+ setting the 8th bit of any character transmitted, this fact can
+ be indicated with
+ .BR km .
+ Otherwise, software will assume that the 8th bit is parity and it
+ will usually be cleared.
+-If strings exist to turn this ``meta mode'' on and off, they
++If strings exist to turn this \*(``meta mode\*('' on and off, they
+ can be given as
+ .B smm
+ and
+@@ -1470,7 +1584,7 @@
+ .PP
+ .SS Glitches and Braindamage
+ .PP
+-Hazeltine terminals, which do not allow `~' characters to be displayed should
++Hazeltine terminals, which do not allow \*(``~\*('' characters to be displayed should
+ indicate \fBhz\fR.
+ .PP
+ Terminals which ignore a line-feed immediately after an \fBam\fR wrap,
+@@ -1485,10 +1599,10 @@
+ .PP
+ Teleray terminals, where tabs turn all characters moved over to blanks,
+ should indicate \fBxt\fR (destructive tabs).
+-Note: the variable indicating this is now `dest_tabs_magic_smso'; in
++Note: the variable indicating this is now \*(``dest_tabs_magic_smso\*(''; in
+ older versions, it was teleray_glitch.
+ This glitch is also taken to mean that it is not possible to position
+-the cursor on top of a ``magic cookie'',
++the cursor on top of a \*(``magic cookie\*('',
+ that to erase standout mode it is instead necessary to use
+ delete and insert line.
+ The ncurses implementation ignores this glitch.
+@@ -1499,7 +1613,7 @@
+ indicating that the f1 key is used for escape and f2 for control C.
+ (Only certain Superbees have this problem, depending on the ROM.)
+ Note that in older terminfo versions, this capability was called
+-`beehive_glitch'; it is now `no_esc_ctl_c'.
++\*(``beehive_glitch\*(''; it is now \*(``no_esc_ctl_c\*(''.
+ .PP
+ Other specific terminal problems may be corrected by adding more
+ capabilities of the form \fBx\fR\fIx\fR.
+@@ -1524,8 +1638,10 @@
+ A capability can be canceled by placing \fBxx@\fR to the left of the
+ use reference that imports it, where \fIxx\fP is the capability.
+ For example, the entry
++.RS
+ .PP
+- 2621\-nl, smkx@, rmkx@, use=2621,
++2621\-nl, smkx@, rmkx@, use=2621,
++.RE
+ .PP
+ defines a 2621\-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
+ and hence does not turn on the function key labels when in visual mode.
+@@ -1570,19 +1686,15 @@
+ backslash-newline pairs, which \fBtgetent()\fP strips out while reading it.
+ Some termcap libraries strip off the final newline, too (GNU termcap does not).
+ Now suppose:
+-.TP 5
+-*
++.bP
+ a termcap entry before expansion is more than 1023 bytes long,
+-.TP 5
+-*
++.bP
+ and the application has only allocated a 1k buffer,
+-.TP 5
+-*
++.bP
+ and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
+ the whole entry into the buffer, no matter what its length, to see
+ if it is the entry it wants,
+-.TP 5
+-*
++.bP
+ and \fBtgetent()\fP is searching for a terminal type that either is the
+ long entry, appears in the termcap file after the long entry, or
+ does not appear in the file at all (so that \fBtgetent()\fP has to search
+@@ -1625,6 +1737,11 @@
+ SVr1, and have added extension capabilities to the string table that (in the
+ binary format) collide with System V and XSI Curses extensions.
+ .SH EXTENSIONS
++.PP
++Searching for terminal descriptions in
++\fB$HOME/.terminfo\fR and TERMINFO_DIRS
++is not supported by older implementations.
++.PP
+ Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, do not
+ interpret the %A and %O operators in parameter strings.
+ .PP
+@@ -1652,6 +1769,15 @@
+ interpret it as \fBKEY_MOUSE\fR, for use by terminals and emulators like xterm
+ that can return mouse-tracking information in the keyboard-input stream.
+ .PP
++X/Open Curses does not mention italics.
++Portable applications must assume that numeric capabilities are
++signed 16-bit values.
++This includes the \fIno_color_video\fP (ncv) capability.
++The 32768 mask value used for italics with ncv can be confused with
++an absent or cancelled ncv.
++If italics should work with colors,
++then the ncv value must be specified, even if it is zero.
++.PP
+ Different commercial ports of terminfo and curses support different subsets of
+ the XSI Curses standard and (in some cases) different extension sets.
+ Here
+@@ -1666,9 +1792,9 @@
+ .PP
+ \fBSVr1, Ultrix\fR \-\-
+ These support a restricted subset of terminfo capabilities.
+-The booleans
+-end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the
+-strings with \fBprtr_non\fR.
++The booleans end with \fBxon_xoff\fR;
++the numerics with \fBwidth_status_line\fR;
++and the strings with \fBprtr_non\fR.
+ .PP
+ \fBHP/UX\fR \-\-
+ Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR,
+Index: man/tic.1m
+Prereq: 1.47
+--- ncurses-5.9/man/tic.1m 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/tic.1m 2014-05-24 22:00:11.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,19 +26,29 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tic.1m,v 1.47 2010/12/04 18:38:55 tom Exp $
++.\" $Id: tic.1m,v 1.60 2014/05/24 22:00:11 tom Exp $
+ .TH @TIC@ 1M ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .ds n 5
+ .ds d @TERMINFO@
++.de bP
++.IP \(bu 4
++..
+ .SH NAME
+-\fBtic\fR \- the \fIterminfo\fR entry-description compiler
++\fB@TIC@\fR \- the \fIterminfo\fR entry-description compiler
+ .SH SYNOPSIS
+-\fBtic\fR
++\fB@TIC@\fR
+ [\fB\-\
++0\
+ 1\
+ C\
++D\
+ G\
+ I\
++K\
+ L\
+ N\
+ T\
+@@ -61,31 +71,69 @@
+ \fIfile\fR
+ .br
+ .SH DESCRIPTION
+-The command \fBtic\fR translates a \fBterminfo\fR file from source
++The \fB@TIC@\fR command translates a \fBterminfo\fR file from source
+ format into compiled format.
+ The compiled format is necessary for use with
+ the library routines in \fBncurses\fR(3X).
+ .PP
+-The results are normally placed in the system terminfo
+-directory \fB\*d\fR.
+-There are two ways to change this behavior.
+-.PP
+-First, you may override the system default by setting the variable
+-\fBTERMINFO\fR in your shell environment to a valid (existing) directory name.
+-.PP
+-Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO
+-directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory
+-exists, the entry is placed there.
+-.PP
+-Libraries that read terminfo entries are expected to check for a TERMINFO
+-directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
+-finally look in \fI\*d\fR.
++As described in \fBterm\fR(\*n), the database may be either a directory
++tree (one file per terminal entry) or a hashed database (one record per entry).
++The \fB@TIC@\fR command writes only one type of entry,
++depending on how it was built:
++.bP
++For directory trees, the top-level directory, e.g., /usr/share/terminfo,
++specifies the location of the database.
++.bP
++For hashed databases, a filename is needed.
++If the given file is not found by that name,
++but can be found by adding the suffix ".db",
++then that is used.
++.IP
++The default name for the hashed database is the same as the
++default directory name (only adding a ".db" suffix).
++.PP
++In either case (directory or hashed database),
++\fB@TIC@\fP will create the container if it does not exist.
++For a directory, this would be the "terminfo" leaf,
++versus a "terminfo.db" file.
++.PP
++The results are normally placed in the system terminfo database \fB\*d\fR.
++The compiled terminal description can be placed
++in a different terminfo database.
++There are two ways to achieve this:
++.bP
++First, you may override the system default either by
++using the \fB\-o\fP option,
++or by setting the variable \fBTERMINFO\fR
++in your shell environment to a valid database location.
++.bP
++Secondly, if \fB@TIC@\fR cannot write in \fI\*d\fR
++or the location specified using your TERMINFO variable,
++it looks for the directory \fI$HOME/.terminfo\fR
++(or hashed database \fI$HOME/.terminfo.db)\fR;
++if that location exists, the entry is placed there.
++.PP
++Libraries that read terminfo entries are expected to check in succession
++.bP
++a location specified with the TERMINFO environment variable,
++.bP
++\fI$HOME/.terminfo\fR,
++.bP
++directories listed in the TERMINFO_DIRS environment variable,
++.bP
++a compiled-in list of directories (@TERMINFO_DIRS@), and
++.bP
++the system terminfo database (\fI\*d\fR).
++.SS OPTIONS
++.TP
++\fB\-0\fR
++restricts the output to a single line
+ .TP
+ \fB\-1\fR
+ restricts the output to a single column
+ .TP
+ \fB\-a\fR
+-tells \fBtic\fP to retain commented-out capabilities rather than discarding
++tells \fB@TIC@\fP to retain commented-out capabilities rather than discarding
+ them.
+ Capabilities are commented by prefixing them with a period.
+ This sets the \fB\-x\fR option, because it treats the commented-out
+@@ -101,16 +149,49 @@
+ Capabilities
+ that are not translatable are left in the entry under their terminfo names
+ but commented out with two preceding dots.
++The actual format used incorporates some improvements for escaped characters
++from terminfo format.
++For a stricter BSD-compatible translation, add the \fB\-K\fR option.
++.IP
++If this is combined with \fB\-c\fR, \fB@TIC@\fR makes additional checks
++to report cases where the terminfo values do not have an exact equivalent
++in termcap form.
++For example:
++.RS
++.bP
++\fBsgr\fP usually will not convert, because termcap lacks the ability to
++work with more than two parameters, and because termcap lacks many of
++the arithmetic/logical operators used in terminfo.
++.bP
++capabilities with more than one delay or with delays before the end of
++the string will not convert completely.
++.RE
+ .TP
+ \fB\-c\fR
+-tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and
++tells \fB@TIC@\fP to only check \fIfile\fR for errors, including syntax problems and
+ bad use links.
+ If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code
+ will print warnings about entries which, after use resolution, are more than
+ 1023 (4096) bytes long.
+-Due to a fixed buffer length in older termcap
+-libraries (and a documented limit in terminfo), these entries may cause core
+-dumps.
++Due to a fixed buffer length in older termcap libraries,
++as well as buggy checking for the buffer length
++(and a documented limit in terminfo),
++these entries may cause core
++dumps with other implementations.
++.IP
++\fB@TIC@\fP checks string capabilities to ensure that those with parameters
++will be valid expressions.
++It does this check only for the predefined string capabilities;
++those which are defined with the \fB\-x\fP option are ignored.
++.TP
++\fB\-D\fR
++tells \fB@TIC@\fP to print the database locations that it knows about, and exit.
++The first location shown is the one to which it would write compiled
++terminal descriptions.
++If \fB@TIC@\fP is not able to find a writable database location
++according to the rules summarized above,
++it will print a diagnostic and exit with an error rather than
++printing a list of database locations.
+ .TP
+ \fB\-e \fR\fInames\fR
+ Limit writes and translations to the following comma-separated list of
+@@ -137,6 +218,10 @@
+ \fB\-I\fR
+ Force source translation to terminfo format.
+ .TP
++\fB\-K\fR
++Suppress some longstanding ncurses extensions to termcap format,
++e.g., "\\s" for space.
++.TP
+ \fB\-L\fR
+ Force source translation to terminfo format
+ using the long C variable names listed in <\fBterm.h\fR>
+@@ -155,9 +240,8 @@
+ obsolete capabilities.
+ .TP
+ \fB\-o\fR\fIdir\fR
+-Write compiled entries to given directory.
+-Overrides the TERMINFO environment
+-variable.
++Write compiled entries to given database location.
++Overrides the TERMINFO environment variable.
+ .TP
+ \fB\-R\fR\fIsubset\fR
+ Restrict output to a given subset.
+@@ -177,7 +261,7 @@
+ tc capabilities per entry.
+ .TP
+ \fB\-s\fR
+-Summarize the compile by showing the directory into which entries
++Summarize the compile by showing the database location into which entries
+ are written, and the number of entries which are compiled.
+ .TP
+ \fB\-T\fR
+@@ -186,12 +270,12 @@
+ descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
+ .TP
+ \fB\-t\fR
+-tells \fBtic\fP to discard commented-out capabilities.
++tells \fB@TIC@\fP to discard commented-out capabilities.
+ Normally when translating from terminfo to termcap,
+ untranslatable capabilities are commented-out.
+ .TP 5
+ \fB\-U\fR
+-tells \fBtic\fP to not post-process the data after parsing the source file.
++tells \fB@TIC@\fP to not post-process the data after parsing the source file.
+ Normally, it infers data which is commonly missing in older terminfo data,
+ or in termcaps.
+ .TP
+@@ -200,31 +284,13 @@
+ .TP
+ \fB\-v\fR\fIn\fR
+ specifies that (verbose) output be written to standard error trace
+-information showing \fBtic\fR's progress.
++information showing \fB@TIC@\fR's progress.
+ The optional parameter \fIn\fR is a number from 1 to 10, inclusive,
+ indicating the desired level of detail of information.
+ If \fIn\fR is omitted, the default level is 1.
+ If \fIn\fR is specified and greater than 1, the level of
+ detail is increased.
+-.TP
+-\fB\-w\fR\fIn\fR
+-specifies the width of the output.
+-The parameter is optional.
+-If it is omitted, it defaults to 60.
+-.TP
+-\fB\-x\fR
+-Treat unknown capabilities as user-defined.
+-That is, if you supply a capability name which \fBtic\fP does not recognize,
+-it will infer its type (boolean, number or string) from the syntax and
+-make an extended table entry for that.
+-User-defined capability strings
+-whose name begins with ``k'' are treated as function keys.
+-.TP
+-\fIfile\fR
+-contains one or more \fBterminfo\fR terminal descriptions in source
+-format [see \fBterminfo\fR(\*n)].
+-Each description in the file
+-describes the capabilities of a particular terminal.
++.RS
+ .PP
+ The debug flag levels are as follows:
+ .TP
+@@ -232,7 +298,7 @@
+ Names of files created and linked
+ .TP
+ 2
+-Information related to the ``use'' facility
++Information related to the \*(``use\*('' facility
+ .TP
+ 3
+ Statistics from the hashing algorithm
+@@ -250,19 +316,42 @@
+ All values computed in construction of the hash table
+ .LP
+ If the debug level \fIn\fR is not given, it is taken to be one.
++.RE
++.TP
++\fB\-w\fR\fIn\fR
++specifies the width of the output.
++The parameter is optional.
++If it is omitted, it defaults to 60.
++.TP
++\fB\-x\fR
++Treat unknown capabilities as user-defined.
++That is, if you supply a capability name which \fB@TIC@\fP does not recognize,
++it will infer its type (boolean, number or string) from the syntax and
++make an extended table entry for that.
++User-defined capability strings
++whose name begins with \*(``k\*('' are treated as function keys.
++.SS PARAMETERS
++.TP
++\fIfile\fR
++contains one or more \fBterminfo\fR terminal descriptions in source
++format [see \fBterminfo\fR(\*n)].
++Each description in the file
++describes the capabilities of a particular terminal.
++.IP
++If \fIfile\fR is \*(``-\*('', then the data is read from the standard input.
++The \fIfile\fR parameter may also be the path of a character-device.
++.SS PROCESSING
+ .PP
+-All but one of the capabilities recognized by \fBtic\fR are documented
++All but one of the capabilities recognized by \fB@TIC@\fR are documented
+ in \fBterminfo\fR(\*n).
+ The exception is the \fBuse\fR capability.
+ .PP
+ When a \fBuse\fR=\fIentry\fR\-\fIname\fR field is discovered in a
+-terminal entry currently being compiled, \fBtic\fR reads in the binary
++terminal entry currently being compiled, \fB@TIC@\fR reads in the binary
+ from \fB\*d\fR to complete the entry.
+ (Entries created from
+ \fIfile\fR will be used first.
+-If the environment variable
+-\fBTERMINFO\fR is set, that directory is searched instead of
+-\fB\*d\fR.) \fBtic\fR duplicates the capabilities in
++\fB@TIC@\fR duplicates the capabilities in
+ \fIentry\fR\-\fIname\fR for the current entry, with the exception of
+ those capabilities that explicitly are defined in the current entry.
+ .PP
+@@ -272,9 +361,6 @@
+ \fBentry_name_1\fR before \fBuse=\fR for these capabilities to be
+ canceled in \fBentry_name_1\fR.
+ .PP
+-If the environment variable \fBTERMINFO\fR is set, the compiled
+-results are placed there instead of \fB\*d\fR.
+-.PP
+ Total compiled entries cannot exceed 4096 bytes.
+ The name field cannot
+ exceed 512 bytes.
+@@ -282,14 +368,14 @@
+ (32 characters on systems with long filenames, 14 characters otherwise)
+ will be truncated to the maximum alias length and a warning message will be printed.
+ .SH COMPATIBILITY
+-There is some evidence that historic \fBtic\fR implementations treated
++There is some evidence that historic \fB@TIC@\fR implementations treated
+ description fields with no whitespace in them as additional aliases or
+ short names.
+-This \fBtic\fR does not do that, but it does warn when
++This \fB@TIC@\fR does not do that, but it does warn when
+ description fields may be treated that way and check them for dangerous
+ characters.
+ .SH EXTENSIONS
+-Unlike the stock SVr4 \fBtic\fR command, this implementation can actually
++Unlike the SVr4 \fB@TIC@\fR command, this implementation can actually
+ compile termcap sources.
+ In fact, entries in terminfo and termcap syntax can
+ be mixed in a single source file.
+@@ -298,16 +384,20 @@
+ .PP
+ The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
+ capabilities.
+-This implementation of \fBtic\fR will find \fBuse\fR targets anywhere
++This implementation of \fB@TIC@\fR will find \fBuse\fR targets anywhere
+ in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if
+-\fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory
+-(if it exists), or (finally) anywhere in the system's file tree of
++\fBTERMINFO\fR is defined),
++or in the user's \fI$HOME/.terminfo\fR database
++(if it exists),
++or (finally) anywhere in the system's file tree of
+ compiled entries.
+ .PP
+-The error messages from this \fBtic\fR have the same format as GNU C
++The error messages from this \fB@TIC@\fR have the same format as GNU C
+ error messages, and can be parsed by GNU Emacs's compile facility.
+ .PP
+ The
++\fB\-0\fR,
++\fB\-1\fR,
+ \fB\-C\fR,
+ \fB\-G\fR,
+ \fB\-I\fR,
+@@ -329,7 +419,7 @@
+ The SVr4 \fB\-c\fR mode does not report bad use links.
+ .PP
+ System V does not compile entries to or read entries from your
+-\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
++\fI$HOME/.terminfo\fR database unless TERMINFO is explicitly set to it.
+ .SH FILES
+ .TP 5
+ \fB\*d/?/*\fR
+@@ -340,6 +430,7 @@
+ \fB@INFOTOCAP@\fR(1M),
+ \fB@TOE@\fR(1M),
+ \fBcurses\fR(3X),
++\fBterm\fR(\*n).
+ \fBterminfo\fR(\*n).
+ .PP
+ This describes \fBncurses\fR
+Index: man/toe.1m
+Prereq: 1.23
+--- ncurses-5.9/man/toe.1m 2010-12-04 18:40:45.000000000 +0000
++++ ncurses-5.9-20141206/man/toe.1m 2012-01-01 00:40:51.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,19 +26,19 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: toe.1m,v 1.23 2010/12/04 18:40:45 tom Exp $
++.\" $Id: toe.1m,v 1.26 2012/01/01 00:40:51 tom Exp $
+ .TH @TOE@ 1M ""
+ .ds n 5
+ .ds d @TERMINFO@
+ .SH NAME
+-\fBtoe\fR \- table of (terminfo) entries
++\fB@TOE@\fR \- table of (terminfo) entries
+ .SH SYNOPSIS
+-\fBtoe\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahuUV\fR] \fIfile...\fR
++\fB@TOE@\fR [\fB\-v\fR[\fIn\fR]] [\fB\-ahsuUV\fR] \fIfile...\fR
+ .br
+ .SH DESCRIPTION
+ .PP
+ With no options,
+-\fBtoe\fR lists all available terminal types by primary name
++\fB@TOE@\fR lists all available terminal types by primary name
+ with descriptions.
+ File arguments specify the directories to be scanned; if no
+ such arguments are given,
+@@ -52,6 +52,15 @@
+ \fB\-a\fR
+ report on all of the terminal databases which ncurses would search,
+ rather than only the first one that it finds.
++.IP
++If the \fB\-s\fR is also given, \fB@TOE@\fR
++adds a column to the report,
++showing (like \fBconflict\fP(1)) which entries which
++belong to a given terminal database.
++An "*" marks entries which differ, and "+" marks equivalent entries.
++.TP
++\fB\-s\fR
++sort the output by the entry names.
+ .TP
+ \fB\-u\fR \fIfile\fR
+ says to write a report to the standard output,
+@@ -78,7 +87,7 @@
+ .TP
+ \fB\-v\fR\fIn\fR
+ specifies that (verbose) output be written to standard error,
+-showing \fBtoe\fR's progress.
++showing \fB@TOE@\fR's progress.
+ The optional parameter \fIn\fR is a number from 1 to 10,
+ interpreted as for \fB@TIC@\fR(1M).
+ .TP
+Index: man/tput.1
+Prereq: 1.29
+--- ncurses-5.9/man/tput.1 2010-12-04 18:41:07.000000000 +0000
++++ ncurses-5.9-20141206/man/tput.1 2012-07-14 21:06:45.000000000 +0000
+@@ -1,6 +1,6 @@
+ '\" t
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tput.1,v 1.29 2010/12/04 18:41:07 tom Exp $
++.\" $Id: tput.1,v 1.32 2012/07/14 21:06:45 tom Exp $
+ .TH @TPUT@ 1 ""
+ .ds d @TERMINFO@
+ .ds n 1
+@@ -77,11 +77,12 @@
+ and the \fIcapname\fR associated with each, see \fBterminfo\fR(5).
+ .TP
+ \fB\-T\fR\fItype\fR
+-indicates the \fItype\fR of terminal. Normally this option is
++indicates the \fItype\fR of terminal.
++Normally this option is
+ unnecessary, because the default is taken from the environment
+-variable \fBTERM\fR. If \fB\-T\fR is specified, then the shell
+-variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
+-operating system will not be queried for the actual screen size.
++variable \fBTERM\fR.
++If \fB\-T\fR is specified, then the shell
++variables \fBLINES\fR and \fBCOLUMNS\fR will also be ignored.
+ .TP
+ \fIcapname\fR
+ indicates the capability from the \fBterminfo\fR database. When
+@@ -159,7 +160,7 @@
+ .PP
+ If \fB@TPUT@\fR is invoked by a link named \fBreset\fR, this has the
+ same effect as \fB@TPUT@ reset\fR.
+-See \fBtset\fR for comparison, which has similar behavior.
++See \fB@TSET@\fR for comparison, which has similar behavior.
+ .SH EXAMPLES
+ .TP 5
+ \fB@TPUT@ init\fR
+@@ -275,7 +276,7 @@
+ .PP
+ Any other exit code indicates an error; see the DIAGNOSTICS section.
+ .SH DIAGNOSTICS
+-\fBtput\fR prints the following error messages and sets the corresponding exit
++\fB@TPUT@\fR prints the following error messages and sets the corresponding exit
+ codes.
+ .PP
+ .ne 15
+@@ -303,17 +304,29 @@
+ .PP
+ X/Open documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP.
+ In this implementation, \fBclear\fP is part of the \fIcapname\fR support.
+-Other implementations of \fBtput\fP on
++Other implementations of \fB@TPUT@\fP on
+ SVr4-based systems such as Solaris, IRIX64 and HPUX
+ as well as others such as AIX and Tru64
+ provide support for \fIcapname\fR operands.
++.PP
+ A few platforms such as FreeBSD and NetBSD recognize termcap names rather
+-than terminfo capability names in their respective \fBtput\fP commands.
++than terminfo capability names in their respective \fB@TPUT@\fP commands.
++.PP
++Most implementations which provide support for \fIcapname\fR operands
++use the \fItparm\fP function to expand parameters in it.
++That function expects a mixture of numeric and string parameters,
++requiring \fB@TPUT@\fP to know which type to use.
++This implementation uses a table to determine that for
++the standard \fIcapname\fR operands, and an internal library
++function to analyze nonstandard \fIcapname\fR operands.
++Other implementations may simply guess that an operand containing only digits
++is intended to be a number.
+ .SH SEE ALSO
+ \fB@CLEAR@\fR(1),
+ \fBstty\fR(1),
+ \fBtabs\fR(\*n),
+-\fBterminfo\fR(5).
++\fBterminfo\fR(5),
++\fBcurs_termcap\fR(3X).
+ .PP
+ This describes \fBncurses\fR
+ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+Index: man/tset.1
+Prereq: 1.25
+--- ncurses-5.9/man/tset.1 2010-12-04 18:38:55.000000000 +0000
++++ ncurses-5.9-20141206/man/tset.1 2013-12-21 22:15:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ .\"***************************************************************************
+-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++.\" Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
+ .\" *
+ .\" Permission is hereby granted, free of charge, to any person obtaining a *
+ .\" copy of this software and associated documentation files (the *
+@@ -26,12 +26,16 @@
+ .\" authorization. *
+ .\"***************************************************************************
+ .\"
+-.\" $Id: tset.1,v 1.25 2010/12/04 18:38:55 tom Exp $
++.\" $Id: tset.1,v 1.29 2013/12/21 22:15:53 tom Exp $
+ .TH @TSET@ 1 ""
++.ie \n(.g .ds `` \(lq
++.el .ds `` ``
++.ie \n(.g .ds '' \(rq
++.el .ds '' ''
+ .SH NAME
+-\fBtset\fR, \fBreset\fR \- terminal initialization
++\fB@TSET@\fR, \fBreset\fR \- terminal initialization
+ .SH SYNOPSIS
+-\fBtset\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
++\fB@TSET@\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
+ .br
+ \fBreset\fR [\fB\-IQVcqrsw\fR] [\fB\-\fR] [\fB\-e\fR \fIch\fR] [\fB\-i\fR \fIch\fR] [\fB\-k\fR \fIch\fR] [\fB\-m\fR \fImapping\fR] [\fIterminal\fR]
+ .SH DESCRIPTION
+@@ -49,13 +53,13 @@
+ \fIgetty\fR does this job by setting
+ \fBTERM\fR according to the type passed to it by \fI/etc/inittab\fR.)
+ .PP
+-4. The default terminal type, ``unknown''.
++4. The default terminal type, \*(``unknown\*(''.
+ .PP
+ If the terminal type was not specified on the command-line, the \fB\-m\fR
+ option mappings are then applied (see the section
+ .B TERMINAL TYPE MAPPING
+ for more information).
+-Then, if the terminal type begins with a question mark (``?''), the
++Then, if the terminal type begins with a question mark (\*(``?\*(''), the
+ user is prompted for confirmation of the terminal type. An empty
+ response confirms the type, or, another type can be entered to specify
+ a new type. Once the terminal type has been determined, the terminfo
+@@ -72,7 +76,7 @@
+ versus the other initialization.
+ If neither option is given, both are assumed.
+ .PP
+-When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes,
++When invoked as \fBreset\fR, \fB@TSET@\fR sets cooked and echo modes,
+ turns off cbreak and raw modes, turns on newline translation and
+ resets any unset special characters to their default values before
+ doing the terminal initialization described above. This is useful
+@@ -89,6 +93,7 @@
+ .TP 5
+ .B \-c
+ Set control characters and modes.
++.TP 5
+ .B \-e
+ Set the erase character to \fIch\fR.
+ .TP
+@@ -109,7 +114,7 @@
+ .TP
+ .B \-Q
+ Do not display any values for the erase, interrupt and line kill characters.
+-Normally \fBtset\fR displays the values for control characters which
++Normally \fB@TSET@\fR displays the values for control characters which
+ differ from the system's default values.
+ .TP
+ .B \-q
+@@ -137,7 +142,7 @@
+ .PP
+ The arguments for the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR
+ options may either be entered as actual characters or by using the `hat'
+-notation, i.e., control-h may be specified as ``^H'' or ``^h''.
++notation, i.e., control-h may be specified as \*(``^H\*('' or \*(``^h\*(''.
+ .
+ .SH SETTING THE ENVIRONMENT
+ It is often desirable to enter the terminal type and information about
+@@ -146,35 +151,41 @@
+ .PP
+ When the \fB\-s\fR option is specified, the commands to enter the information
+ into the shell's environment are written to the standard output. If
+-the \fBSHELL\fR environmental variable ends in ``csh'', the commands
++the \fBSHELL\fR environmental variable ends in \*(``csh\*('', the commands
+ are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
+ Note, the \fBcsh\fR commands set and unset the shell variable
+ \fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
+ or \fB.profile\fR files will initialize the environment correctly:
+ .sp
+- eval \`tset \-s options ... \`
++ eval \`@TSET@ \-s options ... \`
+ .
+ .SH TERMINAL TYPE MAPPING
+ When the terminal is not hardwired into the system (or the current
+ system information is incorrect) the terminal type derived from the
+ \fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often
+ something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR.
+-When \fBtset\fR is used in a startup script it is often desirable to
++When \fB@TSET@\fR is used in a startup script it is often desirable to
+ provide information about the type of terminal used on such ports.
+ .PP
+ The purpose of the \fB\-m\fR option is to map
+ from some set of conditions to a terminal type, that is, to
+-tell \fBtset\fR
+-``If I'm on this port at a particular speed, guess that I'm on that
+-kind of terminal''.
++tell \fB@TSET@\fR
++\*(``If I'm on this port at a particular speed,
++guess that I'm on that kind of terminal\*(''.
+ .PP
+ The argument to the \fB\-m\fR option consists of an optional port type, an
+ optional operator, an optional baud rate specification, an optional
+-colon (``:'') character and a terminal type. The port type is a
+-string (delimited by either the operator or the colon character). The
+-operator may be any combination of ``>'', ``<'', ``@'', and ``!''; ``>''
+-means greater than, ``<'' means less than, ``@'' means equal to
+-and ``!'' inverts the sense of the test.
++colon (\*(``:\*('') character and a terminal type. The port type is a
++string (delimited by either the operator or the colon character).
++The operator may be any combination of
++\*(``>\*('',
++\*(``<\*('',
++\*(``@\*('',
++and \*(``!\*('';
++\*(``>\*('' means greater than,
++\*(``<\*('' means less than,
++\*(``@\*('' means equal to and
++\*(``!\*('' inverts the sense of the test.
+ The baud rate is specified as a number and is compared with the speed
+ of the standard error output (which should be the control terminal).
+ The terminal type is a string.
+@@ -204,53 +215,57 @@
+ No whitespace characters are permitted in the \fB\-m\fR option argument.
+ Also, to avoid problems with meta-characters, it is suggested that the
+ entire \fB\-m\fR option argument be placed within single quote characters,
+-and that \fBcsh\fR users insert a backslash character (``\e'') before
+-any exclamation marks (``!'').
++and that \fBcsh\fR users insert a backslash character (\*(``\e\*('') before
++any exclamation marks (\*(``!\*('').
+ .SH HISTORY
+-The \fBtset\fR command appeared in BSD 3.0. The \fBncurses\fR implementation
++The \fB@TSET@\fR command appeared in BSD 3.0. The \fBncurses\fR implementation
+ was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
+ S. Raymond <esr@snark.thyrsus.com>.
+ .SH COMPATIBILITY
+-The \fBtset\fR utility has been provided for backward-compatibility with BSD
++The \fB@TSET@\fR utility has been provided for backward-compatibility with BSD
+ environments (under most modern UNIXes, \fB/etc/inittab\fR and \fIgetty\fR(1)
+ can set \fBTERM\fR appropriately for each dial-up line; this obviates what was
+-\fBtset\fR's most important use). This implementation behaves like 4.4BSD
++\fB@TSET@\fR's most important use). This implementation behaves like 4.4BSD
+ tset, with a few exceptions specified here.
+ .PP
+-The \fB\-S\fR option of BSD tset no longer works; it prints an error message to stderr
+-and dies. The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
+-changes are because the \fBTERMCAP\fR variable is no longer supported under
+-terminfo-based \fBncurses\fR, which makes \fBtset \-S\fR useless (we made it die
+-noisily rather than silently induce lossage).
++The \fB\-S\fR option of BSD tset no longer works;
++it prints an error message to stderr and dies.
++The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP.
++Both of these changes are because the \fBTERMCAP\fR variable
++is no longer supported under terminfo-based \fBncurses\fR,
++which makes \fB@TSET@ \-S\fR useless
++(we made it die noisily rather than silently induce lossage).
+ .PP
+ There was an undocumented 4.4BSD feature that invoking tset via a link named
+ `TSET` (or via any other name beginning with an upper-case letter) set the
+ terminal to use upper-case only. This feature has been omitted.
+ .PP
+ The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR
+-options were deleted from the \fBtset\fR
++options were deleted from the \fB@TSET@\fR
+ utility in 4.4BSD.
+ None of them were documented in 4.3BSD and all are
+ of limited utility at best.
+ The \fB\-a\fR, \fB\-d\fR, and \fB\-p\fR options are similarly
+ not documented or useful, but were retained as they appear to be in
+ widespread use. It is strongly recommended that any usage of these
+-three options be changed to use the \fB\-m\fR option instead. The
+-\fB\-n\fP option remains, but has no effect. The \fB\-adnp\fR options are therefore
+-omitted from the usage summary above.
+-.PP
+-It is still permissible to specify the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR options without
+-arguments, although it is strongly recommended that such usage be fixed to
++three options be changed to use the \fB\-m\fR option instead.
++The \fB\-n\fP option remains, but has no effect.
++The \fB\-adnp\fR options are therefore omitted from the usage summary above.
++.PP
++It is still permissible to specify the \fB\-e\fR, \fB\-i\fR,
++and \fB\-k\fR options without arguments,
++although it is strongly recommended that such usage be fixed to
+ explicitly specify the character.
+ .PP
+-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB\-Q\fR
+-option. Also, the interaction between the \- option and the \fIterminal\fR
+-argument in some historic implementations of \fBtset\fR has been removed.
++As of 4.4BSD,
++executing \fB@TSET@\fR as \fBreset\fR no longer implies the \fB\-Q\fR option.
++Also, the interaction between the \- option and the \fIterminal\fR
++argument in some historic implementations of \fB@TSET@\fR has been removed.
+ .SH ENVIRONMENT
+-The \fBtset\fR command uses these environment variables:
++The \fB@TSET@\fR command uses these environment variables:
+ .TP 5
+ SHELL
+-tells \fBtset\fP whether to initialize \fBTERM\fP using \fBsh\fP or
++tells \fB@TSET@\fP whether to initialize \fBTERM\fP using \fBsh\fP or
+ \fBcsh\fP syntax.
+ .TP 5
+ TERM
+@@ -260,7 +275,7 @@
+ TERMCAP
+ may denote the location of a termcap database.
+ If it is not an absolute pathname, e.g., begins with a `/',
+-\fBtset\fP removes the variable from the environment before looking
++\fB@TSET@\fP removes the variable from the environment before looking
+ for the terminal description.
+ .SH FILES
+ .TP 5
+@@ -270,6 +285,7 @@
+ @TERMINFO@
+ terminal capability database
+ .SH SEE ALSO
++.hy 0
+ csh(1),
+ sh(1),
+ stty(1),
+@@ -278,6 +294,7 @@
+ terminfo(5),
+ ttys(5),
+ environ(7)
++.hy
+ .PP
+ This describes \fBncurses\fR
+ version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+Index: menu/Makefile.in
+Prereq: 1.54
+--- ncurses-5.9/menu/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/menu/Makefile.in 2014-11-15 13:54:00.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.54 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.60 2014/11/15 13:54:00 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -51,14 +51,21 @@
+
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
++top_srcdir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@ @EXPORT_SYMS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -84,7 +91,7 @@
+ CPP = @CPP@
+ CFLAGS = @CFLAGS@
+
+-CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
++CPPFLAGS = -I${top_srcdir}/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -102,6 +109,8 @@
+ SHLIB_DIRS = -L../lib
+ SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
+
++RPATH_LIST = @RPATH_LIST@
++VERSIONED_SYMS = @VERSIONED_SYMS@
+ MK_SHARED_LIB = @MK_SHARED_LIB@
+
+ NCURSES_MAJOR = @NCURSES_MAJOR@
+@@ -111,7 +120,7 @@
+
+ RANLIB = @LIB_PREP@
+
+-LIBRARIES = @LIBS_TO_MAKE@
++LIBRARIES = @Libs_To_Make@
+
+ LINT = @LINT@
+ LINT_OPTS = @LINT_OPTS@
+Index: menu/m_attribs.c
+Prereq: 1.16
+--- ncurses-5.9/menu/m_attribs.c 2010-01-23 21:16:54.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_attribs.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_attribs.c,v 1.16 2010/01/23 21:16:54 tom Exp $")
++MODULE_ID("$Id: m_attribs.c,v 1.17 2012/03/10 23:43:41 tom Exp $")
+
+ /* Macro to redraw menu if it is posted and changed */
+ #define Refresh_Menu(menu) \
+@@ -51,7 +51,7 @@
+ #define GEN_MENU_ATTR_SET_FCT( name ) \
+ NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU* menu, chtype attr) \
+ {\
+- T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr))); \
++ T((T_CALLED("set_menu_" #name "(%p,%s)"), (void *) menu, _traceattr(attr))); \
+ if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
+ RETURN(E_BAD_ARGUMENT);\
+ if (menu && ( menu -> name != attr))\
+Index: menu/m_driver.c
+Prereq: 1.29
+--- ncurses-5.9/menu/m_driver.c 2010-01-23 21:20:10.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_driver.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_driver.c,v 1.29 2010/01/23 21:20:10 tom Exp $")
++MODULE_ID("$Id: m_driver.c,v 1.31 2012/03/10 23:43:41 tom Exp $")
+
+ /* Macros */
+
+@@ -47,7 +47,7 @@
+
+ /* Add a new character to the match pattern buffer */
+ #define Add_Character_To_Pattern(menu,ch) \
+- { (menu)->pattern[((menu)->pindex)++] = (ch);\
++ { (menu)->pattern[((menu)->pindex)++] = (char) (ch);\
+ (menu)->pattern[(menu)->pindex] = '\0'; }
+
+ /*---------------------------------------------------------------------------
+@@ -537,7 +537,11 @@
+ result = E_UNKNOWN_COMMAND;
+ }
+
+- if (E_OK == result)
++ if (item == 0)
++ {
++ result = E_BAD_STATE;
++ }
++ else if (E_OK == result)
+ {
+ /* Adjust the top row if it turns out that the current item unfortunately
+ doesn't appear in the menu window */
+Index: menu/m_format.c
+Prereq: 1.16
+--- ncurses-5.9/menu/m_format.c 2010-01-23 21:20:10.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_format.c 2012-06-09 23:54:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_format.c,v 1.16 2010/01/23 21:20:10 tom Exp $")
++MODULE_ID("$Id: m_format.c,v 1.18 2012/06/09 23:54:02 tom Exp $")
+
+ #define minimum(a,b) ((a)<(b) ? (a): (b))
+
+@@ -81,8 +81,8 @@
+ if (menu->pattern)
+ Reset_Pattern(menu);
+
+- menu->frows = rows;
+- menu->fcols = cols;
++ menu->frows = (short)rows;
++ menu->fcols = (short)cols;
+
+ assert(rows > 0 && cols > 0);
+ total_rows = (menu->nitems - 1) / cols + 1;
+@@ -90,21 +90,21 @@
+ minimum(menu->nitems, cols) :
+ (menu->nitems - 1) / total_rows + 1;
+
+- menu->rows = total_rows;
+- menu->cols = total_cols;
+- menu->arows = minimum(total_rows, rows);
++ menu->rows = (short)total_rows;
++ menu->cols = (short)total_cols;
++ menu->arows = (short)minimum(total_rows, rows);
+ menu->toprow = 0;
+ menu->curitem = *(menu->items);
+ assert(menu->curitem);
+- menu->status |= _LINK_NEEDED;
++ SetStatus(menu, _LINK_NEEDED);
+ _nc_Calculate_Item_Length_and_Width(menu);
+ }
+ else
+ {
+ if (rows > 0)
+- _nc_Default_Menu.frows = rows;
++ _nc_Default_Menu.frows = (short)rows;
+ if (cols > 0)
+- _nc_Default_Menu.fcols = cols;
++ _nc_Default_Menu.fcols = (short)cols;
+ }
+
+ RETURN(E_OK);
+Index: menu/m_global.c
+Prereq: 1.25
+--- ncurses-5.9/menu/m_global.c 2010-01-23 21:20:10.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_global.c 2014-03-15 20:37:22.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_global.c,v 1.25 2010/01/23 21:20:10 tom Exp $")
++MODULE_ID("$Id: m_global.c,v 1.28 2014/03/15 20:37:22 tom Exp $")
+
+ static char mark[] = "-";
+ /* *INDENT-OFF* */
+@@ -117,17 +117,17 @@
+ assert(menu && menu->items);
+ for (items = menu->items; *items; items++)
+ {
+- check = _nc_Calculate_Text_Width(&((*items)->name));
++ check = (unsigned)_nc_Calculate_Text_Width(&((*items)->name));
+ if (check > MaximumNameLength)
+ MaximumNameLength = check;
+
+- check = _nc_Calculate_Text_Width(&((*items)->description));
++ check = (unsigned)_nc_Calculate_Text_Width(&((*items)->description));
+ if (check > MaximumDescriptionLength)
+ MaximumDescriptionLength = check;
+ }
+
+- menu->namelen = MaximumNameLength;
+- menu->desclen = MaximumDescriptionLength;
++ menu->namelen = (short)MaximumNameLength;
++ menu->desclen = (short)MaximumDescriptionLength;
+ T(("ComputeMaximum_NameDesc_Lengths %d,%d", menu->namelen, menu->desclen));
+ }
+
+@@ -195,7 +195,7 @@
+ {
+ (*item)->value = FALSE;
+ }
+- (*item)->index = ItemCount++;
++ (*item)->index = (short)ItemCount++;
+ (*item)->imenu = menu;
+ }
+ }
+@@ -206,7 +206,7 @@
+ if (ItemCount != 0)
+ {
+ menu->items = items;
+- menu->nitems = ItemCount;
++ menu->nitems = (short)ItemCount;
+ ComputeMaximum_NameDesc_Lengths(menu);
+ if ((menu->pattern = typeMalloc(char, (unsigned)(1 + menu->namelen))))
+ {
+@@ -256,7 +256,7 @@
+ T((T_CALLED("_nc_menu_text_width(%p)"), (const void *)item));
+ if (result != 0 && item->str != 0)
+ {
+- int count = mbstowcs(0, item->str, 0);
++ int count = (int)mbstowcs(0, item->str, 0);
+ wchar_t *temp = 0;
+
+ if (count > 0
+@@ -343,7 +343,7 @@
+
+ assert(menu);
+
+- menu->height = 1 + menu->spc_rows * (menu->arows - 1);
++ menu->height = (short)(1 + menu->spc_rows * (menu->arows - 1));
+
+ l = calculate_actual_width(menu, TRUE);
+ l += menu->marklen;
+@@ -354,10 +354,10 @@
+ l += menu->spc_desc;
+ }
+
+- menu->itemlen = l;
++ menu->itemlen = (short)l;
+ l *= menu->cols;
+ l += (menu->cols - 1) * menu->spc_cols; /* for the padding between the columns */
+- menu->width = l;
++ menu->width = (short)l;
+
+ T(("_nc_CalculateItem_Length_and_Width columns %d, item %d, width %d",
+ menu->cols,
+@@ -388,7 +388,7 @@
+ int Last_in_Column;
+ bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE;
+
+- menu->status &= ~_LINK_NEEDED;
++ ClrStatus(menu, _LINK_NEEDED);
+
+ if (menu->opt & O_ROWMAJOR)
+ {
+@@ -431,8 +431,8 @@
+ (cycle ? menu->items[(row + 1) < menu->rows ?
+ Number_Of_Items - 1 : col] :
+ (ITEM *) 0);
+- item->x = col;
+- item->y = row;
++ item->x = (short)col;
++ item->y = (short)row;
+ if (++col == Number_Of_Columns)
+ {
+ row++;
+@@ -482,8 +482,8 @@
+ (ITEM *) 0
+ );
+
+- item->x = col;
+- item->y = row;
++ item->x = (short)col;
++ item->y = (short)row;
+ if ((++row) == Number_Of_Rows)
+ {
+ col++;
+@@ -568,7 +568,9 @@
+
+ cur_item = menu->curitem;
+ assert(cur_item);
+- menu->toprow = new_toprow;
++ menu->toprow = (short)(((menu->rows - menu->frows) >= 0)
++ ? min(menu->rows - menu->frows, new_toprow)
++ : 0);
+ menu->curitem = new_current_item;
+
+ if (mterm_called)
+@@ -590,7 +592,9 @@
+ }
+ else
+ { /* if we are not posted, this is quite simple */
+- menu->toprow = new_toprow;
++ menu->toprow = (short)(((menu->rows - menu->frows) >= 0)
++ ? min(menu->rows - menu->frows, new_toprow)
++ : 0);
+ menu->curitem = new_current_item;
+ }
+ }
+Index: menu/m_hook.c
+Prereq: 1.15
+--- ncurses-5.9/menu/m_hook.c 2010-01-23 21:16:54.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_hook.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,13 +37,13 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_hook.c,v 1.15 2010/01/23 21:16:54 tom Exp $")
++MODULE_ID("$Id: m_hook.c,v 1.16 2012/03/10 23:43:41 tom Exp $")
+
+ /* "Template" macro to generate function to set application specific hook */
+ #define GEN_HOOK_SET_FUNCTION( typ, name ) \
+ NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
+ {\
+- T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), menu, func));\
++ T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), (void *) menu, func));\
+ (Normalize_Menu(menu) -> typ ## name = func );\
+ RETURN(E_OK);\
+ }
+Index: menu/m_item_new.c
+Prereq: 1.30
+--- ncurses-5.9/menu/m_item_new.c 2010-01-23 21:20:11.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_item_new.c 2012-06-09 23:55:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -44,7 +44,7 @@
+ #endif
+ #endif
+
+-MODULE_ID("$Id: m_item_new.c,v 1.30 2010/01/23 21:20:11 tom Exp $")
++MODULE_ID("$Id: m_item_new.c,v 1.33 2012/06/09 23:55:15 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnmenu
+@@ -62,7 +62,7 @@
+ int result = TRUE;
+
+ #if USE_WIDEC_SUPPORT
+- int count = mbstowcs(0, s, 0);
++ int count = (int)mbstowcs(0, s, 0);
+ wchar_t *temp = 0;
+
+ assert(s);
+@@ -127,13 +127,13 @@
+ {
+ *item = _nc_Default_Item; /* hope we have struct assignment */
+
+- item->name.length = strlen(name);
++ item->name.length = (unsigned short)strlen(name);
+ item->name.str = name;
+
+ if (description && (*description != '\0') &&
+ Is_Printable_String(description))
+ {
+- item->description.length = strlen(description);
++ item->description.length = (unsigned short)strlen(description);
+ item->description.str = description;
+ }
+ else
+@@ -195,12 +195,12 @@
+ NCURSES_EXPORT(int)
+ set_menu_mark(MENU * menu, const char *mark)
+ {
+- unsigned l;
++ short l;
+
+ T((T_CALLED("set_menu_mark(%p,%s)"), (void *)menu, _nc_visbuf(mark)));
+
+ if (mark && (*mark != '\0') && Is_Printable_String(mark))
+- l = strlen(mark);
++ l = (short)strlen(mark);
+ else
+ l = 0;
+
+@@ -213,7 +213,7 @@
+ {
+ /* If the menu is already posted, the geometry is fixed. Then
+ we can only accept a mark with exactly the same length */
+- if (menu->marklen != (int)l)
++ if (menu->marklen != l)
+ RETURN(E_BAD_ARGUMENT);
+ }
+ menu->marklen = l;
+@@ -222,14 +222,13 @@
+ menu->mark = strdup(mark);
+ if (menu->mark)
+ {
+- strcpy(menu->mark, mark);
+ if (menu != &_nc_Default_Menu)
+- menu->status |= _MARK_ALLOCATED;
++ SetStatus(menu, _MARK_ALLOCATED);
+ }
+ else
+ {
+ menu->mark = old_mark;
+- menu->marklen = (old_mark != 0) ? strlen(old_mark) : 0;
++ menu->marklen = (short)((old_mark != 0) ? strlen(old_mark) : 0);
+ RETURN(E_SYSTEM_ERROR);
+ }
+ }
+Index: menu/m_pad.c
+Prereq: 1.12
+--- ncurses-5.9/menu/m_pad.c 2010-01-23 21:20:10.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_pad.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_pad.c,v 1.12 2010/01/23 21:20:10 tom Exp $")
++MODULE_ID("$Id: m_pad.c,v 1.13 2012/03/10 23:43:41 tom Exp $")
+
+ /* Macro to redraw menu if it is posted and changed */
+ #define Refresh_Menu(menu) \
+@@ -69,7 +69,7 @@
+ RETURN(E_BAD_ARGUMENT);
+
+ Normalize_Menu(menu);
+- menu->pad = pad;
++ menu->pad = (unsigned char)pad;
+
+ if (do_refresh)
+ Refresh_Menu(menu);
+Index: menu/m_post.c
+Prereq: 1.29
+--- ncurses-5.9/menu/m_post.c 2010-05-01 19:18:27.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_post.c 2012-06-09 23:54:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_post.c,v 1.29 2010/05/01 19:18:27 tom Exp $")
++MODULE_ID("$Id: m_post.c,v 1.31 2012/06/09 23:54:35 tom Exp $")
+
+ /*---------------------------------------------------------------------------
+ | Facility : libnmenu
+@@ -67,7 +67,7 @@
+ - it is a onevalued menu and it is the current item
+ - or it has a selection value
+ */
+- wattron(menu->win, menu->back);
++ wattron(menu->win, (int)menu->back);
+ if (item->value || (item == menu->curitem))
+ {
+ if (menu->marklen)
+@@ -79,13 +79,13 @@
+ item. */
+ if (!(menu->opt & O_ONEVALUE) && item->value && item != menu->curitem)
+ {
+- wattron(menu->win, menu->fore);
++ wattron(menu->win, (int)menu->fore);
+ isfore = TRUE;
+ }
+ waddstr(menu->win, menu->mark);
+ if (isfore)
+ {
+- wattron(menu->win, menu->fore);
++ wattron(menu->win, (int)menu->fore);
+ isfore = FALSE;
+ }
+ }
+@@ -93,7 +93,7 @@
+ else /* otherwise we have to wipe out the marker area */
+ for (ch = ' ', i = menu->marklen; i > 0; i--)
+ waddch(menu->win, ch);
+- wattroff(menu->win, menu->back);
++ wattroff(menu->win, (int)menu->back);
+ count += menu->marklen;
+
+ /* First we have to calculate the attribute depending on selectability
+@@ -101,19 +101,19 @@
+ */
+ if (!(item->opt & O_SELECTABLE))
+ {
+- wattron(menu->win, menu->grey);
++ wattron(menu->win, (int)menu->grey);
+ isgrey = TRUE;
+ }
+ else
+ {
+ if (item->value || item == menu->curitem)
+ {
+- wattron(menu->win, menu->fore);
++ wattron(menu->win, (int)menu->fore);
+ isfore = TRUE;
+ }
+ else
+ {
+- wattron(menu->win, menu->back);
++ wattron(menu->win, (int)menu->back);
+ isback = TRUE;
+ }
+ }
+@@ -158,10 +158,10 @@
+ assert(cx >= 0 && cy >= 0);
+ getyx(menu->win, ncy, ncx);
+ if (isgrey)
+- wattroff(menu->win, menu->grey);
++ wattroff(menu->win, (int)menu->grey);
+ else if (isfore)
+- wattroff(menu->win, menu->fore);
+- wattron(menu->win, menu->back);
++ wattroff(menu->win, (int)menu->fore);
++ wattron(menu->win, (int)menu->back);
+ for (j = 1; j < menu->spc_rows; j++)
+ {
+ if ((item_y + j) < getmaxy(menu->win))
+@@ -175,17 +175,17 @@
+ }
+ wmove(menu->win, ncy, ncx);
+ if (!isback)
+- wattroff(menu->win, menu->back);
++ wattroff(menu->win, (int)menu->back);
+ }
+ }
+
+ /* Remove attributes */
+ if (isfore)
+- wattroff(menu->win, menu->fore);
++ wattroff(menu->win, (int)menu->fore);
+ if (isback)
+- wattroff(menu->win, menu->back);
++ wattroff(menu->win, (int)menu->back);
+ if (isgrey)
+- wattroff(menu->win, menu->grey);
++ wattroff(menu->win, (int)menu->grey);
+ }
+
+ /*---------------------------------------------------------------------------
+@@ -225,7 +225,7 @@
+ {
+ _nc_Post_Item(menu, hitem);
+
+- wattron(menu->win, menu->back);
++ wattron(menu->win, (int)menu->back);
+ if (((hitem = hitem->right) != lasthor) && hitem)
+ {
+ int i, j, cy, cx;
+@@ -244,7 +244,7 @@
+ }
+ }
+ while (hitem && (hitem != lasthor));
+- wattroff(menu->win, menu->back);
++ wattroff(menu->win, (int)menu->back);
+
+ item = item->down;
+ y += menu->spc_rows;
+@@ -305,7 +305,7 @@
+ else
+ RETURN(E_NOT_CONNECTED);
+
+- menu->status |= _POSTED;
++ SetStatus(menu, _POSTED);
+
+ if (!(menu->opt & O_ONEVALUE))
+ {
+@@ -369,7 +369,7 @@
+ delwin(menu->win);
+ menu->win = (WINDOW *)0;
+
+- menu->status &= ~_POSTED;
++ ClrStatus(menu, _POSTED);
+
+ RETURN(E_OK);
+ }
+Index: menu/m_req_name.c
+Prereq: 1.21
+--- ncurses-5.9/menu/m_req_name.c 2009-10-10 16:17:23.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_req_name.c 2012-07-21 23:27:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_req_name.c,v 1.21 2009/10/10 16:17:23 tom Exp $")
++MODULE_ID("$Id: m_req_name.c,v 1.22 2012/07/21 23:27:32 tom Exp $")
+
+ static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] =
+ {
+@@ -99,23 +99,26 @@
+ /* because the table is so small, it doesn't really hurt
+ to run sequentially through it.
+ */
+- unsigned int i = 0;
++ size_t i = 0;
+ char buf[16];
+
+ T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str)));
+
+- if (str)
++ if (str != 0 && (i = strlen(str)) != 0)
+ {
+- strncpy(buf, str, sizeof(buf));
+- while ((i < sizeof(buf)) && (buf[i] != '\0'))
++ if (i > sizeof(buf) - 2)
++ i = sizeof(buf) - 2;
++ memcpy(buf, str, i);
++ buf[i] = '\0';
++
++ for (i = 0; buf[i] != '\0'; ++i)
+ {
+ buf[i] = (char)toupper(UChar(buf[i]));
+- i++;
+ }
+
+ for (i = 0; i < A_SIZE; i++)
+ {
+- if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
++ if (strcmp(request_names[i], buf) == 0)
+ returnCode(MIN_MENU_COMMAND + (int)i);
+ }
+ }
+Index: menu/m_spacing.c
+Prereq: 1.18
+--- ncurses-5.9/menu/m_spacing.c 2010-01-23 21:20:10.000000000 +0000
++++ ncurses-5.9-20141206/menu/m_spacing.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2004,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include "menu.priv.h"
+
+-MODULE_ID("$Id: m_spacing.c,v 1.18 2010/01/23 21:20:10 tom Exp $")
++MODULE_ID("$Id: m_spacing.c,v 1.19 2012/03/10 23:43:41 tom Exp $")
+
+ #define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
+ #define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
+@@ -70,9 +70,9 @@
+ ((s_col < 0) || (s_col > MAX_SPC_COLS)))
+ RETURN(E_BAD_ARGUMENT);
+
+- m->spc_desc = s_desc ? s_desc : 1;
+- m->spc_rows = s_row ? s_row : 1;
+- m->spc_cols = s_col ? s_col : 1;
++ m->spc_desc = (short)(s_desc ? s_desc : 1);
++ m->spc_rows = (short)(s_row ? s_row : 1);
++ m->spc_cols = (short)(s_col ? s_col : 1);
+ _nc_Calculate_Item_Length_and_Width(m);
+
+ RETURN(E_OK);
+Index: menu/menu.priv.h
+Prereq: 1.23
+--- ncurses-5.9/menu/menu.priv.h 2009-02-28 21:02:57.000000000 +0000
++++ ncurses-5.9-20141206/menu/menu.priv.h 2014-11-01 14:47:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,7 +30,7 @@
+ * Author: Juergen Pfeifer, 1995,1997 *
+ ****************************************************************************/
+
+-/* $Id: menu.priv.h,v 1.23 2009/02/28 21:02:57 juergen Exp $ */
++/* $Id: menu.priv.h,v 1.25 2014/11/01 14:47:00 tom Exp $ */
+
+ /***************************************************************************
+ * Module menu.priv.h *
+@@ -39,6 +39,7 @@
+
+ #ifndef MENU_PRIV_H_incl
+ #define MENU_PRIV_H_incl 1
++/* *INDENT-OFF* */
+
+ #include "curses.priv.h"
+ #include "mf_common.h"
+@@ -99,10 +100,11 @@
+ */
+ #define Adjust_Current_Item(menu,row,item) \
+ { if ((item)->y < row) \
+- row = (item)->y;\
+- if ( (item)->y >= (row + (menu)->arows) )\
+- row = ( (item)->y < ((menu)->rows - row) ) ? \
+- (item)->y : (menu)->rows - (menu)->arows;\
++ row = (short) (item)->y; \
++ if ( (item)->y >= (row + (menu)->arows) ) \
++ row = (short) (( (item)->y < ((menu)->rows - row) ) \
++ ? (item)->y \
++ : (menu)->rows - (menu)->arows); \
+ _nc_New_TopRow_and_CurrentItem(menu,row,item); }
+
+ /* Reset the match pattern buffer */
+@@ -128,12 +130,12 @@
+
+ #ifdef TRACE
+
+-#define returnItem(code) TRACE_RETURN(code,item)
+-#define returnItemPtr(code) TRACE_RETURN(code,item_ptr)
+-#define returnItemOpts(code) TRACE_RETURN(code,item_opts)
+-#define returnMenu(code) TRACE_RETURN(code,menu)
+-#define returnMenuHook(code) TRACE_RETURN(code,menu_hook)
+-#define returnMenuOpts(code) TRACE_RETURN(code,menu_opts)
++#define returnItem(code) TRACE_RETURN1(code,item)
++#define returnItemPtr(code) TRACE_RETURN1(code,item_ptr)
++#define returnItemOpts(code) TRACE_RETURN1(code,item_opts)
++#define returnMenu(code) TRACE_RETURN1(code,menu)
++#define returnMenuHook(code) TRACE_RETURN1(code,menu_hook)
++#define returnMenuOpts(code) TRACE_RETURN1(code,menu_opts)
+
+ extern NCURSES_EXPORT(ITEM *) _nc_retrace_item (ITEM *);
+ extern NCURSES_EXPORT(ITEM **) _nc_retrace_item_ptr (ITEM **);
+@@ -152,5 +154,6 @@
+ #define returnMenuOpts(code) return code
+
+ #endif /* TRACE/!TRACE */
++/* *INDENT-ON* */
+
+ #endif /* MENU_PRIV_H_incl */
+Index: menu/mf_common.h
+Prereq: 0.22
+--- ncurses-5.9/menu/mf_common.h 2005-11-26 15:26:52.000000000 +0000
++++ ncurses-5.9-20141206/menu/mf_common.h 2012-06-10 00:06:54.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2004,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,7 +30,7 @@
+ * Author: Juergen Pfeifer, 1995,1997 *
+ ****************************************************************************/
+
+-/* $Id: mf_common.h,v 0.22 2005/11/26 15:26:52 tom Exp $ */
++/* $Id: mf_common.h,v 0.24 2012/06/10 00:06:54 tom Exp $ */
+
+ /* Common internal header for menu and form library */
+
+@@ -63,10 +63,9 @@
+ #if USE_RCS_IDS
+ #define MODULE_ID(id) static const char Ident[] = id;
+ #else
+-#define MODULE_ID(id) /*nothing*/
++#define MODULE_ID(id) /*nothing */
+ #endif
+
+-
+ /* Maximum regular 8-bit character code */
+ #define MAX_REGULAR_CHARACTER (0xff)
+
+@@ -80,16 +79,19 @@
+ #endif
+
+ /* The few common values in the status fields for menus and forms */
+-#define _POSTED (0x01U) /* menu or form is posted */
+-#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */
++#define _POSTED (0x01U) /* menu or form is posted */
++#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */
++
++#define SetStatus(target,mask) (target)->status |= (unsigned short) (mask)
++#define ClrStatus(target,mask) (target)->status = (unsigned short) (target->status & (~mask))
+
+ /* Call object hook */
+ #define Call_Hook( object, handler ) \
+ if ( (object) != 0 && ((object)->handler) != (void *) 0 )\
+ {\
+- (object)->status |= _IN_DRIVER;\
++ SetStatus(object, _IN_DRIVER);\
+ (object)->handler(object);\
+- (object)->status &= ~_IN_DRIVER;\
++ ClrStatus(object, _IN_DRIVER);\
+ }
+
+ #endif /* MF_COMMON_H_incl */
+Index: misc/Makefile.in
+Prereq: 1.56
+--- ncurses-5.9/misc/Makefile.in 2011-02-21 01:09:31.000000000 +0000
++++ ncurses-5.9-20141206/misc/Makefile.in 2014-09-23 22:12:42.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.56 2011/02/21 01:09:31 tom Exp $
++# $Id: Makefile.in,v 1.62 2014/09/23 22:12:42 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -56,7 +56,11 @@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+ libdir = @libdir@
++datarootdir = @datarootdir@
+ datadir = @datadir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
+
+ tabsetdir = $(datadir)/tabset
+ ticdir = @TERMINFO@
+@@ -77,7 +81,7 @@
+
+ sources :: terminfo.tmp
+
+-install : install.data install.libs
++install : @MISC_INSTALL_DATA@ install.libs
+
+ install.data : terminfo.tmp \
+ $(DESTDIR)$(libdir) \
+@@ -120,7 +124,8 @@
+
+ run_tic.sed :
+ WHICH_XTERM=@WHICH_XTERM@ \
+- ticdir=${ticdir} \
++ XTERM_KBS=@XTERM_KBS@ \
++ datadir=${datadir} \
+ $(SHELL) $(srcdir)/gen_edit.sh >$@
+
+ $(DESTDIR)$(bindir) \
+@@ -130,7 +135,7 @@
+ $(DESTDIR)$(PKG_CONFIG_LIBDIR) :
+ mkdir -p $@
+
+-uninstall : uninstall.data uninstall.libs
++uninstall : @MISC_UNINSTALL_DATA@ uninstall.libs
+
+ uninstall.data :
+ -test -d $(DESTDIR)$(tabsetdir) && rm -rf $(DESTDIR)$(tabsetdir)
+@@ -139,7 +144,7 @@
+
+ uninstall.libs :
+ -rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+-@MAKE_PC_FILES@ $(SHELL) 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
++@MAKE_PC_FILES@ $(SHELL) -c 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
+
+ tags :
+
+Index: misc/gen-pkgconfig.in
+Prereq: 1.8
+--- ncurses-5.9/misc/gen-pkgconfig.in 2010-02-06 22:12:07.000000000 +0000
++++ ncurses-5.9-20141206/misc/gen-pkgconfig.in 2014-01-18 20:21:45.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!@SHELL@
+-# $Id: gen-pkgconfig.in,v 1.8 2010/02/06 22:12:07 Miroslav.Lichvar Exp $
++# $Id: gen-pkgconfig.in,v 1.16 2014/01/18 20:21:45 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2009-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -28,7 +28,7 @@
+ # authorization. #
+ ##############################################################################
+ #
+-# Author: Thomas E. Dickey, 2009
++# Author: Thomas E. Dickey
+ #
+ # The complete configure script for ncurses is the ncurses5-config (or similar
+ # name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc).
+@@ -39,22 +39,22 @@
+ # library, except that the tinfo library does not depend on ncurses.
+ LIB_NAME=@LIB_NAME@
+ TINFO_NAME=@TINFO_NAME@
+-PANEL_NAME=panel # @PANEL_NAME@
+-MENU_NAME=menu # @MENU_NAME@
+-FORM_NAME=form # @FORM_NAME@
+-CXX_NAME=ncurses++ # @CXX_NAME@
++PANEL_NAME=@PANEL_NAME@
++MENU_NAME=@MENU_NAME@
++FORM_NAME=@FORM_NAME@
++CXX_NAME=@CXX_NAME@
+ DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
+ TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@
+ CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
+
+ prefix="@prefix@"
+ exec_prefix="@exec_prefix@"
+-includedir="@includedir@"
++includedir="@includedir@@includesubdir@"
+ libdir="@libdir@"
+
+ show_prefix='@prefix@'
+ show_exec_prefix='@exec_prefix@'
+-show_includedir='@includedir@'
++show_includedir='@includedir@@includesubdir@'
+ show_libdir='@libdir@'
+
+ MAIN_LIBRARY="${LIB_NAME}@DFT_ARG_SUFFIX@"
+@@ -63,59 +63,42 @@
+ MENU_LIBRARY="${MENU_NAME}@DFT_ARG_SUFFIX@"
+ FORM_LIBRARY="${FORM_NAME}@DFT_ARG_SUFFIX@"
+
+-SUB_LIBRARY_REQ=${SUB_LIBRARY}
+-if test $TINFO_NAME = $LIB_NAME ; then
+- SUB_LIBRARY_REQ=
++if test "$includedir" = "/usr/include" ; then
++ CFLAGS=
++else
++ CFLAGS="-I\${includedir}"
+ fi
+
+-for lib in ../lib/*
+-do
+- name=`basename $lib`
+- if test "$name" = "*" ; then
+- break
+- fi
+-
+- root=`basename $name "$DFT_DEP_SUFFIX"`
+- if test "$name" = "$root" ; then
+- root=`basename $name "$CXX_LIB_SUFFIX"`
+- if test "$name" = "$root" ; then
+- continue
+- fi
+- fi
++if test "$libdir" = "/usr/lib" ; then
++ LDFLAGS=
++else
++ LDFLAGS="-L\${libdir}"
++fi
+
+- name=`echo "$name" | sed -e 's/^lib//' -e 's/\..*$//'`
++for name in @PC_MODULES_TO_MAKE@
++do
++ name="${name}"
+
+ desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
++ reqs=
++
+ if test $name = $MAIN_LIBRARY ; then
+- reqs=$SUB_LIBRARY_REQ
+ desc="$desc library"
+ elif test $name = $SUB_LIBRARY ; then
+- reqs=
+ desc="$desc terminal interface library"
+ elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
+- reqs="$PANEL_LIBRARY $MENU_LIBRARY $FORM_LIBRARY $MAIN_LIBRARY $SUB_LIBRARY_REQ"
++ reqs="$PANEL_LIBRARY, $MENU_LIBRARY, $FORM_LIBRARY, $MAIN_LIBRARY"
+ desc="$desc add-on library"
+ else
+- reqs="$MAIN_LIBRARY $SUB_LIBRARY_REQ"
++ reqs="$MAIN_LIBRARY"
+ desc="$desc add-on library"
+ fi
+
+- if test "$includedir" = "/usr/include" ; then
+- cflags=
+- else
+- cflags="-I\${includedir}"
+- fi
+-
+- if test "$libdir" = "/usr/lib" ; then
+- libs=
+- else
+- libs="-L\${libdir}"
+- fi
+- libs="$libs -l$name"
+-
+- # add dependencies that pkg-config cannot guess about
+- if test -z "$reqs" ; then
+- libs="$libs @LIBS@"
++ if test $name != $SUB_LIBRARY && test $SUB_LIBRARY != $MAIN_LIBRARY ; then
++ if test $name != $TINFO_NAME ; then
++ test -n "$reqs" && reqs="$reqs, "
++ reqs="${reqs}${SUB_LIBRARY}"
++ fi
+ fi
+
+ echo "** creating ${name}.pc"
+@@ -130,10 +113,13 @@
+ Name: $name
+ Description: $desc
+ Version: \${version}
+-Requires: $reqs
+-Libs: $libs
+-Cflags: $cflags
++URL: http://invisible-island.net/ncurses
++Requires.private: $reqs
++Libs: $LDFLAGS -l$name
++Libs.private: @LIBS@
++Cflags: $CFLAGS
+ EOF
+- # pr -f ${name}.pc
++
++ #pr -f ${name}.pc
+ done
+ # vile:shmode
+Index: misc/gen_edit.sh
+Prereq: 1.1
+--- ncurses-5.9/misc/gen_edit.sh 2004-07-11 15:01:29.000000000 +0000
++++ ncurses-5.9-20141206/misc/gen_edit.sh 2012-04-01 15:04:37.000000000 +0000
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ ##############################################################################
+-# Copyright (c) 2004 Free Software Foundation, Inc. #
++# Copyright (c) 2004-2011,2012 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -29,7 +29,7 @@
+ #
+ # Author: Thomas E. Dickey
+ #
+-# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $
++# $Id: gen_edit.sh,v 1.5 2012/04/01 15:04:37 tom Exp $
+ # Generate a sed-script for converting the terminfo.src to the form which will
+ # be installed.
+ #
+@@ -37,22 +37,82 @@
+ # The leaf directory names (lib, tabset, terminfo)
+ #
+
+-: ${ticdir=@TERMINFO@}
+-: ${xterm_new=@WHICH_XTERM@}
++linux_dft=linux2.2
++
++: ${datadir=/usr/share}
++: ${WHICH_LINUX=$linux_dft}
++: ${WHICH_XTERM=xterm-new}
++: ${XTERM_KBS=BS}
+
+ # If we're not installing into /usr/share/, we'll have to adjust the location
+ # of the tabset files in terminfo.src (which are in a parallel directory).
+-TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
++TABSET=${datadir}/tabset
+ if test "x$TABSET" != "x/usr/share/tabset" ; then
+ cat <<EOF
+ s%/usr/share/tabset%$TABSET%g
+ EOF
+ fi
+
+-if test "$xterm_new" != "xterm-new" ; then
++if test "$WHICH_XTERM" != "xterm-new" ; then
++echo "** using $WHICH_XTERM terminal description for XTerm entry" >&2
+ cat <<EOF
+ /^# This is xterm for ncurses/,/^$/{
+ s/use=xterm-new,/use=$WHICH_XTERM,/
+ }
+ EOF
+ fi
++
++if test "$XTERM_KBS" != "BS" ; then
++echo "** using DEL for XTerm backspace-key" >&2
++cat <<EOF
++/^xterm+kbs|fragment for backspace key/,/^#/{
++ s/kbs=^H,/kbs=^?,/
++}
++EOF
++fi
++
++# Work around incompatibities built into Linux console. The 2.6 series added
++# a patch to fixup the SI/SO behavior, which is closer to vt100, but the older
++# kernels do not recognize those controls. All of the kernels recognize the
++# older flavor of rmacs/smacs, but beginning in the late 1990s, changes made
++# as part of implementing UTF-8 prevent using those for line-drawing when the
++# console is in UTF-8 mode. Taking into account the fact that it took about
++# ten years to provide (and distribute) the 2.6 series' change for SI/SO, the
++# default remains "linux2.2".
++case x$WHICH_LINUX in #(vi
++xauto)
++ system=`uname -s 2>/dev/null`
++ if test "x$system" = xLinux
++ then
++ case x`uname -r` in
++ x1.*)
++ WHICH_LINUX=linux-c
++ ;;
++ x2.[0-4]*)
++ WHICH_LINUX=linux2.2
++ ;;
++ *)
++ WHICH_LINUX=linux3.0
++ ;;
++ esac
++ else
++ WHICH_LINUX=$linux_dft
++ fi
++ ;;
++xlinux*)
++ # allow specific setting
++ ;;
++*)
++ WHICH_LINUX=$linux_dft
++ ;;
++esac
++
++if test $WHICH_LINUX != $linux_dft
++then
++echo "** using $WHICH_LINUX terminal description for Linux console" >&2
++cat <<EOF
++/^# This is Linux console for ncurses/,/^$/{
++ s/use=$linux_dft,/use=$WHICH_LINUX,/
++}
++EOF
++fi
+Index: misc/ncurses-config.in
+Prereq: 1.25
+--- ncurses-5.9/misc/ncurses-config.in 2011-03-19 22:43:38.000000000 +0000
++++ ncurses-5.9-20141206/misc/ncurses-config.in 2012-11-11 00:14:28.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!@SHELL@
+-# $Id: ncurses-config.in,v 1.25 2011/03/19 22:43:38 tom Exp $
++# $Id: ncurses-config.in,v 1.30 2012/11/11 00:14:28 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2006-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -30,22 +30,48 @@
+ #
+ # Author: Thomas E. Dickey, 2006-on
+
++LANG=C; export LANG
++LANGUAGE=C; export LANGUAGE
++LC_ALL=C; export LC_ALL
++LC_CTYPE=C; export LC_CTYPE
++
+ prefix="@prefix@"
+ exec_prefix="@exec_prefix@"
+
+ bindir="@bindir@"
+ includedir="@includedir@"
+ libdir="@libdir@"
++datarootdir="@datarootdir@"
+ datadir="@datadir@"
+ mandir="@mandir@"
+
+ THIS="@LIB_NAME@@DFT_ARG_SUFFIX@"
+ TINFO_LIB="@TINFO_ARG_SUFFIX@"
++RPATH_LIST="@RPATH_LIST@"
+
+-LANG=C; export LANG
+-LANGUAGE=C; export LANGUAGE
+-LC_ALL=C; export LC_ALL
+-LC_CTYPE=C; export LC_CTYPE
++# Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty.
++# We cannot filter it out within the build-process since the variable is used
++# in some special cases of installation using a relative path.
++if test -n "$RPATH_LIST"
++then
++ save_IFS="$IFS"
++ IFS='@PATH_SEPARATOR@'
++ filtered=
++ for item in $RPATH_LIST
++ do
++ case "$item" in
++ ./*|../*|*/..|*/../*)
++ ;;
++ *)
++ test -n "$filtered" && filtered="${filtered}@PATH_SEPARATOR@"
++ filtered="${filtered}${item}"
++ ;;
++ esac
++ done
++ IFS="$save_IFS"
++ # if the result is empty, there is little we can do to fix it
++ RPATH_LIST="$filtered"
++fi
+
+ # with --disable-overwrite, we installed into a subdirectory, but transformed
+ # the headers to include like this:
+@@ -83,13 +109,19 @@
+ ENDECHO
+ ;;
+ --libs)
++ if test "$libdir" = /usr/lib
++ then
++ LIBDIR=
++ else
++ LIBDIR=-L$libdir
++ fi
+ if test @TINFO_NAME@ = @LIB_NAME@ ; then
+ sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
+- -L$libdir @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
++ $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
+ ENDECHO
+ else
+ sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
+- -L$libdir @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
++ $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
+ ENDECHO
+ fi
+ ;;
+@@ -163,4 +195,5 @@
+ esac
+ shift
+ done
++# vi:ts=4 sw=4
+ # vile:shmode
+Index: misc/run_tic.in
+Prereq: 1.32
+--- ncurses-5.9/misc/run_tic.in 2011-02-23 23:30:15.000000000 +0000
++++ ncurses-5.9-20141206/misc/run_tic.in 2012-10-06 19:00:51.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!@SHELL@
+-# $Id: run_tic.in,v 1.32 2011/02/23 23:30:15 tom Exp $
++# $Id: run_tic.in,v 1.34 2012/10/06 19:00:51 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -41,13 +41,14 @@
+ # The script is designed to be run from the misc/Makefile as
+ # make install.data
+
+-: ${suffix:=@PROG_EXT@}
++: ${suffix:=@EXEEXT@}
+ : ${DESTDIR:=@DESTDIR@}
+ : ${prefix:=@prefix@}
+ : ${exec_prefix:=@exec_prefix@}
+ : ${bindir:=@bindir@}
+ : ${top_srcdir:=@top_srcdir@}
+ : ${srcdir:=@srcdir@}
++: ${datarootdir:=@datarootdir@}
+ : ${datadir:=@datadir@}
+ : ${TIC_PATH:=@TIC_PATH@}
+ : ${ticdir:=@TERMINFO@}
+Index: misc/terminfo.src
+--- ncurses-5.9/misc/terminfo.src 2011-02-20 20:46:53.000000000 +0000
++++ ncurses-5.9-20141206/misc/terminfo.src 2014-10-19 01:16:56.000000000 +0000
+@@ -6,8 +6,8 @@
+ # Report bugs and new terminal descriptions to
+ # bug-ncurses@gnu.org
+ #
+-# $Revision: 1.383 $
+-# $Date: 2011/02/20 20:46:53 $
++# $Revision: 1.525 $
++# $Date: 2014/10/19 01:16:56 $
+ #
+ # The original header is preserved below for reference. It is noted that there
+ # is a "newer" version which differs in some cosmetic details (but actually
+@@ -321,7 +321,7 @@
+ # DEL and ^C are hardcoded to act as kill characters.
+ # ^D acts as a line break (just like newline).
+ # It also interprets
+-# \033];xxx\007
++# \033];xxx\007
+ # for compatibility with xterm -TD
+ 9term|Plan9 terminal emulator for X,
+ am,
+@@ -376,11 +376,19 @@
+ dim=\E[2m,
+ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m,
+ use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
+-ansi+pp|ansi printer port,
+- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+ ansi+csr|ansi scroll-region plus cursor save & restore,
+ csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
+
++# The normal (ANSI) flavor of "media copy" building block asserts that
++# characters sent to the printer do not echo on the screen. DEC terminals
++# can also be put into autoprinter mode, where each line is sent to the
++# printer as you move off that line, e.g., by a carriage return.
++ansi+pp|ansi printer port,
++ mc5i,
++ mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
++dec+pp|DEC autoprinter mode,
++ mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i,
++
+ # The IBM PC alternate character set. Plug this into any Intel console entry.
+ # We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
+ # ROM graphics for control characters such as the diamond, up- and down-arrow.
+@@ -456,9 +464,10 @@
+ cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+ dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
+- hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+- indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
+- smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
++ hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT,
++ rmam=\E[?7l, sc=\E7, smam=\E[?7h, tbc=\E[g,
++ vpa=\E[%i%p1%dd,
+
+ #### ANSI/ECMA-48 terminals and terminal emulators
+ #
+@@ -488,7 +497,7 @@
+ # ansi-mtabs adds relative addressing and minimal tab support
+ ansi-mtabs|any ansi terminal with pessimistic assumptions,
+ it#8,
+- ht=^I, use=ansi+local1, use=ansi-mini,
++ ht=^I, use=ansi-mini, use=ansi+local1,
+
+ # ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
+ #
+@@ -655,7 +664,7 @@
+ kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
+ kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
+ kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
+- pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%?%p1%{13}%<%t%'z'%e%?%p1%{23}%<%t%'G'%e%?%p1%{25}%<%t%'p'%e%?%p1%'#'%<%t%'E'%e%?%p1%'%'%<%t%'f'%e%?%p1%'/'%<%t%'C'%e%{92}%;%;%;%;%;%;%;%p1%+%d;%p2"%s"p,
++ pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%p1%{13}%<%t%'z'%e%p1%{23}%<%t%'G'%e%p1%{25}%<%t%'p'%e%p1%'#'%<%t%'E'%e%p1%'%'%<%t%'f'%e%p1%'/'%<%t%'C'%e%{92}%;%p1%+%d;%p2"%s"p,
+ use=ansi.sys-old,
+
+ #
+@@ -689,12 +698,8 @@
+ is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
+ use=ansi.sysk,
+
+-#### ANSI console types
+-#
++#### Atari ST terminals
+
+-#############################################################################
+-#
+-# Atari ST terminals.
+ # From Guido Flohr <gufl0000@stud.uni-sb.de>.
+ #
+ tw52|tw52-color|Toswin window manager with color,
+@@ -799,9 +804,6 @@
+ rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_,
+ smso=\Ep, smul=\EyH,
+
+-#### Atari ST
+-#
+-
+ # From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
+ atari-old|atari st,
+ OTbs, am,
+@@ -835,16671 +837,17280 @@
+ ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
+ smcup=\Ee, smso=\Ep,
+
+-#### BeOS
+-#
+-# BeOS entry for Terminal program Seems to be almost ANSI
+-beterm|BeOS Terminal,
+- am, eo, mir, msgr, xenl, xon,
+- colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
+- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
+- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+- kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~,
+- kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+- kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~,
+- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
+- nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
+- rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm,
+- sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m,
+- smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
+- vpa=\E[%i%p1%dd,
+-
+-#### Linux consoles
+-#
++#### Apple Terminal.app
+
+-# This entry is good for the 1.2.13 or later version of the Linux console.
++# nsterm*|Apple_Terminal - AppKit Terminal.app
+ #
+-# ***************************************************************************
+-# * *
+-# * WARNING: *
+-# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
+-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
+-# * character. Here are the keymap replacement lines that will set this up: *
+-# * *
+-# keycode 15 = Tab Tab
+-# alt keycode 15 = Meta_Tab
+-# shift keycode 15 = F26
+-# string F26 ="\033[Z"
+-# * *
+-# * This has to use a key slot which is unfortunate (any unused one will *
+-# * do, F26 is the higher-numbered one). The change ought to be built *
+-# * into the kernel tables. *
+-# * *
+-# ***************************************************************************
++# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and
++# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
++# Server and Mac OS X operating systems. There is also a
++# "terminal.app" in GNUStep, but I believe it to be an unrelated
++# codebase and I have not attempted to describe it here.
+ #
+-# All linux kernels since 1.2.13 (at least) set the screen size
+-# themselves; this entry assumes that capability.
++# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
++# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
++# You might also try "nsterm-7" and "nsterm-old" if you suspect your
++# version supports color.
+ #
+-linux-basic|linux console,
+- am, bce, eo, mir, msgr, xenl, xon,
+- it#8, ncv#18, U8#1,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
+- el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
+- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
+- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+- kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
+- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+- smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
+- vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
+- use=ecma+color,
+-
+-linux-m|Linux console no color,
+- colors@, pairs@,
+- setab@, setaf@, setb@, setf@, use=linux,
+-
+-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
+-# and it matters, turn off <ccc>. The %02x escape used to implement this is
+-# not supposedly back-portable to older SV curses (although it has worked fine
+-# on Solaris for several years) and not supported in ncurses versions before
+-# 1.9.9.
+-linux-c-nc|linux console with color-change,
+- ccc,
+- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
+- oc=\E]R, use=linux-basic,
+-# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
+-linux-c|linux console 1.3.6+ for older ncurses,
+- ccc,
+- initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
+- oc=\E]R, use=linux-basic,
+-
+-# The 2.2.x kernels add a private mode that sets the cursor type; use that to
+-# get a block cursor for cvvis.
+-# reported by Frank Heckenbach <frank@g-n-u.de>.
+-linux|linux console,
+- civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
+- cvvis=\E[?25h\E[?8c, use=linux-c-nc,
+-
+-# Subject: linux 2.6.26 vt back_color_erase
+-# Changes to the Linux console driver broke bce model as reported in
+-# https://bugzilla.novell.com/show_bug.cgi?id=418613
+-# apparently from
+-# http://lkml.org/lkml/2008/4/26/305
+-# http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e
+-linux2.6.26|linux console w/o bce,
+- bce@, use=linux,
+-
+-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+-linux-nic|linux with ich/ich1 suppressed for non-curses programs,
+- ich@, ich1@, use=linux,
+-
+-# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
+-# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
+-linux-koi8|linux with koi8 alternate character set,
+- acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224,
+- use=linux, use=klone+koi8acs,
+-
+-# Another entry for KOI8-r with Qing Long's acsc.
+-# (which one better complies with the standard?)
+-linux-koi8r|linux with koi8-r alternate character set,
+- use=linux, use=klone+koi8acs,
+-
+-# Entry for the latin1 and latin2 fonts
+-linux-lat|linux with latin1 or latin2 alternate character set,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376,
+- use=linux,
+-
+-# This uses graphics from VT codeset instead of from cp437.
+-# reason: cp437 (aka "straight to font") is not functional under luit.
+-# from: Andrey V Lukyanov <land@long.yar.ru>.
+-linux-vt|linux console using VT codes for graphics,
+- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
+- rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
+- smpch@, use=linux,
+-
+-# This is based on the Linux console (relies on the console to perform some
+-# of the functionality), but does not recognize as many control sequences.
+-# The program comes bundled with an old (circa 1998) copy of the Linux
+-# console terminfo. It recognizes some non-ANSI/VT100 sequences such as
+-# \E* move cursor to home, as as \E[H
+-# \E,X same as \E(X
+-# \EE move cursor to beginning of row
+-# \E[y,xf same as \E[y,xH
++# To determine the version of Terminal.app you're using by running:
+ #
+-# Note: The status-line support is buggy (dsl does not work).
+-kon|kon2|jfbterm|Kanji ON Linux console,
+- ccc@, hs,
+- civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@,
+- initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
+- use=linux,
+-
+-# 16-color linux console entry; this works with a 256-character
+-# console font but bright background colors turn into dim ones when
+-# you use a 512-character console font. This uses bold for bright
+-# foreground colors and blink for bright background colors.
+-linux-16color|linux console with 16 colors,
+- colors#16, ncv#54, pairs#256,
+- setab=\E[4%p1%{8}%m%d%?%p1%{8}%>%t;5%e%p1%{8}%=%t;2%e;25%;m,
+- setaf=\E[3%p1%{8}%m%d%?%p1%{8}%>%t;1%e%p1%{8}%=%t;2%e;21%;m,
+- use=linux,
+-
+-# bterm (bogl 0.1.18)
+-# Implementation is in bogl-term.c
+-# Key capabilities from linux terminfo entry
++# echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
+ #
+-# Notes:
+-# bterm only supports acs using wide-characters, has case for these: qjxamlkut
+-# bterm does not support sgr, since it only processes one parameter -TD
+-bterm|bogl virtual terminal,
+- am, bce,
+- colors#8, cols#80, lines#24, pairs#64,
+- acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
+- cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ind=^J,
+- kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
+- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J,
+- op=\E49;39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
+- rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
+-
+-#### Mach
++# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
+ #
+-
+-# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
+-mach|Mach Console,
+- am, km,
+- cols#80, it#8, lines#25,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
+- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+- kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
+- kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
+- smso=\E[7m, smul=\E[4m,
+-mach-bold|Mach Console with bold instead of underline,
+- rmul=\E[0m, smul=\E[1m, use=mach,
+-mach-color|Mach Console with ANSI color,
+- colors#8, pairs#64,
+- dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
+-
+-# From: Marcus Brinkmann
+-# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
++# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
+ #
+-# Comments in the original are summarized here:
++# For Apple_Terminal v71+/v100+, use "nsterm-bce".
+ #
+-# hurd uses 8-bit characters (km).
++# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
+ #
+-# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
++# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
+ #
+-# Regarding compatibility to vt100: hurd doesn't specify <xenl>, as we don't
+-# have the eat_newline_glitch. It doesn't support setting or removing tab
+-# stops (hts/tbc).
++# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
++# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
++# might work too, but really you're on your own here since these
++# systems are very obsolete and I can't test them. I do welcome
++# patches, though :).
++
++# Other Terminals:
+ #
+-# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
+-# one byte instead three.
++# For GNUstep_Terminal, you're probably best off using "linux" or
++# writing your own terminfo.
++
++# For MacTelnet, you're on your own. It's a different codebase, and
++# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
++
++# For iTerm.app, see "iterm".
++
+ #
+-# <ich1> is not included because hurd has insert mode.
++# The AppKit Terminal.app descriptions all have names beginning with
++# "nsterm". Note that the statusline (-s) versions use the window
++# titlebar as a phony status line, and may produce warnings during
++# compilation as a result ("tsl uses 0 parameters, expected 1".)
++# Ignore these warnings, or even ignore these entries entirely. Apps
++# which need to position the cursor or do other fancy stuff inside the
++# status line won't work with these entries. They're primarily useful
++# for programs like Pine which provide simple notifications in the
++# status line. Please note that non-ASCII characters don't work right
++# in the status line, since Terminal.app incorrectly interprets their
++# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X
++# versions) or only accepts status lines consisting entirely of
++# characters from the first 256 Unicode positions (including C1 but
++# not C0 or DEL.)
+ #
+-# hurd doesn't use ^J for scrolling, because this could put things into the
+-# scrollback buffer.
++# The Mythology* of AppKit Terminal.app:
+ #
+-# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
+-# This is a GNU extension.
++# In the days of NeXTSTep 0.x and 1.x there were two incompatible
++# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
++# shareware replacement for Terminal called "Stuart" which NeXT bought
++# and used as the basis for the Terminal.app in NeXTstep 2+,
++# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
++# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
++# capabilities for the early versions, but I believe that the
++# TERM_PROGRAM_VERSION may have been reset at some point.
+ #
+-# The original has commented-out ncv, but is restored here.
++# The early versions were tailored to the NeXT character set. Sometime
++# after the Apple aquisition the encoding was swiched to MacRoman
++# (initally with serious altcharset bugs due to incomplete conversion
++# of the old NeXT code,) and then later to UTF-8. Alos sometime during
++# or just prior to the early days of Mac OS X, the Terminal grew ANSI
++# 8-color support (initially buggy when combined with attributes, but
++# that was later fixed.) More recently, around Mac OS X version 10.3
++# or so (Terminal.app v100+) xterm-like 16-color support was added. In
++# some versions (for instance 133-1 which shipped with Mac OS X
++# version 10.4) this suffered from the <bce> bug, but that seems to
++# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
+ #
+-# Reading the source, RIS resets cnorm, but not xmous.
+-hurd|The GNU Hurd console server,
+- am, bce, bw, eo, km, mir, msgr, xon,
+- colors#8, it#8, ncv#18, pairs#64,
+- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP,
+- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
+- invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
+- kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+- kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T,
+- rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l,
+- rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+- sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h,
+- smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
+- gsbom=\E[>1h,
+-
+-#### OSF Unix
++# In the early days of Mac OS X the terminal was fairly buggy and
++# would routinely crash under load. Many of these bugs seem to have
++# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
++# some may still remain. This change seems to correspond to
++# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
++# it did previously.
+ #
+-
+-# OSF/1 1.1 Snapshot 2
+-pmcons|pmconsole|PMAX console,
+- am,
+- cols#128, lines#57,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
+- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+-
+-# SCO console and SOS-Syscons console for 386bsd
+-# (scoansi: had unknown capabilities
+-# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
+-# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
+-# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
+-# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
+-# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
+-# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
+-# on the <smacs>=\E[12m -- esr)
++# * This may correspond with what actually happened, but I don't
++# know. It is based on guesswork, hearsay, private correspondence,
++# my faulty memory, and the following online sources and references:
+ #
+-# klone+sgr-dumb is an error since the acsc does not match -TD
++# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
++# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
+ #
+-# In this description based on SCO's keyboard(HW) manpage list of default
+-# function key values:
+-# F13-F24 are shifted F1-F12
+-# F25-F36 are control F1-F12
+-# F37-F48 are shift+control F1-F12
++# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
++# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
+ #
+-# hpa/vpa work in the console, but not in scoterm:
+-# hpa=\E[%p1%dG,
+-# vpa=\E[%p1%dd,
++# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
++# "nsterm" to comply with the name length and case conventions and
++# limitations of various software packages [notably Solaris terminfo
++# and UNIX.] A single Apple_Terminal alias is retained for
++# backwards-compatbility.
+ #
+-# SCO's terminfo uses
+-# kLFT=\E[d,
+-# kRIT=\E[c,
+-# which do not work (console or scoterm).
++# * Added function key support (F1-F4). These only work in Terminal.app
++# version 51, hopefully the capabilities won't cause problems for people
++# using version 41.
+ #
+-# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
+-scoansi-old|SCO Extended ANSI standard crt (5.0.5),
+- OTbs, am, bce, eo, xon,
+- colors#8, cols#80, it#8, lines#25, pairs#64,
+- acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
+- dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
+- ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
+- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+- ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H,
+- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+- kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
+- kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
+- kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
+- kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
+- kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
+- kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
+- kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
+- kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
+- kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+- kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
+- rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
+- rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
+- smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+-scoansi-new|SCO Extended ANSI standard crt (5.0.6),
+- km,
+- civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
+- cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
+- rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
+- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
+- smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
+- smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
+- smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
+- smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
+- wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
+- use=scoansi-old,
+-# make this easy to change...
+-scoansi|SCO Extended ANSI standard crt,
+- use=scoansi-old,
+-
+-# This actually describes the generic SVr4 display driver for Intel boxes.
+-# The <dim=\E[2m> isn't documented and therefore may not be reliable.
+-# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
+-att6386|at386|386at|AT&T WGS 6386 console,
+- am, bw, eo, xon,
+- cols#80, it#8, lines#25,
+- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
+- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
+- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
+- indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
+- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
+- kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
+- knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
+- ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
+- sc=\E7,
+- sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
+- sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, vpa=\E[%i%p1%dd, use=klone+color,
+-# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
+-pc6300plus|AT&T 6300 plus,
+- OTbs, am, xon,
+- cols#80, lines#24,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
+- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
+- dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
+- home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
+- invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
+- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
+- nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++# * Added "full color" (-c) entries which support the 16-color mode in
++# version 51.
++#
++# * By default, version 51 uses UTF-8 encoding with broken altcharset
++# support, so "ASCII" (-7) entries without altcharset support were
++# added.
+
+-# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
++# nsterm - AppKit Terminal.app
+ #
+-# I have a UNIX PC which I use as a terminal attached to my Linux PC.
+-# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
+-# is broken. All the special key sequences are broken, making it unusable
+-# with Emacs. The problem stems from the following:
++# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
++# Terminal.app. It is a partial VT100 emulation with some xterm-like
++# extensions. This terminfo was written to describe versions 41
++# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
++# version 10.1) of Terminal.app.
+ #
+-# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
+-# keypad!), loadable fonts, and strange highlighting modes ("dithered"
+-# half-intensity, "smeared" bold, and real strike-out, for example.) It also
+-# uses resizable terminal windows, but the bundled terminal program always
+-# uses an 80x24 window (and doesn't support seem to support a 132-column
+-# mode.)
++# Terminal.app runs under the Mac OS X Quartz windowing system (and
++# other AppKit-supported windowing systems.) On the Mac OS X machine I
++# use, the executable for Terminal.app is:
++# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
+ #
+-# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
+-# library which was a superset of SVr3.5 curses (called tam, for "terminal
+-# access method".) tam includes support for real, overlapping windows,
+-# onscreen function key labels, and bitmap graphics. But since the primary
+-# user interface on the UNIX PC was a GUI program (ua, for "user
+-# assistant",) and remote administration was considered important for the
+-# machine, tam also supported VT100-compatible terminals attached to the
+-# serial port or used across the StarLan network. To simulate the extra keys
+-# not present on a VT100, users could press ESC and a two-letter sequence,
+-# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
+-# however, were not the same as those sent by the actual Undo key. The
+-# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
+-# (If you're interested in adding some of the tam calls to ncurses, btw, I
+-# have the full documentation and several programs which use tam. It also
+-# used an extended terminfo format to describe key sequences, special
+-# highlighting modes, etc.)
++# If you're looking for a description of the full-screen system
++# console which runs under Apple's Darwin operating system on PowerPC
++# platforms, see the "xnuppc" entry instead.
+ #
+-# KEYS: This means that ncurses would quite painful on the UNIX PC, since
+-# there are two sequences for every key-modifier combination (local keyboard
+-# sequence and remote "VT100" sequence.) But I doubt many people are trying
+-# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
+-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
+-# seem to have been built from the manual describing the VT100 sequences.
+-# This means it doesn't work for a real live UNIX PC.
++# There were no function keys in version 41. In version 51, there are
++# four working function keys (F1, F2, F3 and F4.) The function keys
++# are included in all of these entries.
+ #
+-# FONTS: The UNIX PC also has a strange interpretation of "alternate
+-# character set". Rather than the VT100 graphics you might expect, it allows
+-# up to 8 custom fonts to be loaded at any given time. This means that
+-# programs expecting VT100 graphics will usually be disappointed. For this
+-# reason I have disabled the smacs/rmacs sequences, but they could easily be
+-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
+-# manpage), should you wish to do so:
++# It does not support mouse pointer position reporting. Under some
++# circumstances the cursor can be positioned using option-click; this
++# works by comparing the cursor position and the selected position,
++# and simulating enough cursor-key presses to move the cursor to the
++# selected position. This technique fails in all but the simplest
++# applications.
+ #
+-# SGR10 - Select font 0 - ESC [ 10 m or SO
+-# SGR11 - Select font 1 - ESC [ 11 m or SI
+-# SGR12 - Select font 2 - ESC [ 12 m
+-# ... (etc.)
+-# SGR17 - Select font 7 - ESC [ 17 m
++# It provides partial ANSI color support (background colors interacted
++# badly with bold in version 41, though, as reflected in :ncv:.) The
++# monochrome (-m) entries are useful if you've disabled color support
++# or use a monochrome monitor. The full color (-c) entries are useful
++# in version 51, which doesn't exhibit the background color bug. They
++# also enable an xterm-compatible 16-color mode.
+ #
+-# Graphics for line drawing are not reliably found at *any* character
+-# location because the UNIX PC has dynamically reloadable fonts. I use font
+-# 0 for regular text and font 1 for italics, but this is by no means
+-# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
++# The configurable titlebar is set using xterm-compatible sequences;
++# it is used as a status bar in the statusline (-s) entries. Its width
++# depends on font sizes and window sizes, but 50 characters seems to
++# be the default for an 80x24 window.
+ #
+-# MISC: The cursor visible/cursor invisible sequences were swapped in the
+-# distributed terminfo.
++# The MacRoman character encoding is used for some of the alternate
++# characters in the "MacRoman" entries; the "ASCII" (-7) entries
++# disable alternate character set support entirely, and the "VT100"
++# (-acs) entries rely instead on Terminal.app's own buggy VT100
++# graphics emulation, which seems to think the character encoding is
++# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
++# are useful in Terminal.app version 51, which supports UTF-8 and
++# other ASCII-compatible character encodings but does not correctly
++# implement VT100 graphics; once VT100 graphics are correctly
++# implemented in Terminal.app, the "VT100" (-acs) entries should be
++# usable in any ASCII-compatible character encoding [except perhaps
++# in UTF-8, where some experts argue for disallowing alternate
++# characters entirely.]
+ #
+-# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
+-# the UNIX PC terminfo entry. The modified version works great with Lynx,
+-# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
+-# attached by serial cable. In Emacs, even the Undo key works, and many
+-# applications can now use the F1-F8 keys.
++# Terminal.app reports "vt100" as the terminal type, but exports
++# several environment variables which may aid detection in a shell
++# profile (i.e. .profile or .login):
+ #
+-# esr's notes:
+-# Terminfo entry for the AT&T Unix PC 7300
+-# from escape(7) in Unix PC 7300 Manual.
+-# Somewhat similar to a vt100-am (but different enough
+-# to redo this from scratch.)
++# TERM=vt100
++# TERM_PROGRAM=Apple_Terminal
++# TERM_PROGRAM_VERSION=41 # in Terminal.app version 41
++# TERM_PROGRAM_VERSION=51 # in Terminal.app version 51
+ #
+-# /***************************************************************
+-# *
+-# * FONT LOADING PROGRAM FOR THE UNIX PC
+-# *
+-# * This routine loads a font defined in the file ALTFONT
+-# * into font memory slot #1. Once the font has been loaded,
+-# * it can be used as an alternative character set.
+-# *
+-# * The call to ioctl with the argument WIOCLFONT is the key
+-# * to this routine. For more information, see window(7) in
+-# * the PC 7300 documentation.
+-# ***************************************************************/
+-# #include <string.h> /* needed for strcpy call */
+-# #include <sys/window.h> /* needed for ioctl call */
+-# #define FNSIZE 60 /* font name size */
+-# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */
+-# /*
+-# * The file /usr/lib/wfont/special.8.ft comes with the
+-# * standard PC software. It defines a graphics character set
+-# * similar to that of the Teletype 5425 terminal. To view
+-# * this or other fonts in /usr/lib/wfont, use the command
+-# * cfont <filename>. For further information on fonts see
+-# * cfont(1) in the PC 7300 documentation.
+-# */
++# For example, the following Bourne shell script would detect the
++# correct terminal type:
+ #
+-# struct altfdata /* structure for alt font data */
+-# {
+-# short altf_slot; /* memory slot number */
+-# char altf_name[FNSIZE]; /* font name (file name) */
+-# };
+-# ldfont()
+-# {
+-# int wd; /* window in which altfont will be */
+-# struct altfdata altf;
+-# altf.altf_slot=1;
+-# strcpy(altf.altf_name,ALTFONT);
+-# for (wd =1; wd < 12; wd++) {
+-# ioctl(wd, WIOCLFONT,&altf);
+-# }
+-# }
++# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
++# then
++# export TERM
++# if [ :"$TERM_PROGRAM_VERSION" = :41 ]
++# then
++# TERM="nsterm-old"
++# else
++# TERM="nsterm-c-7"
++# fi
++# fi
+ #
+-# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
+-# they're confirmed by the man page for the System V display---esr)
++# In a C shell derivative, this would be accomplished by:
+ #
+-att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
+- am, xon,
++# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
++# if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
++# if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
++# setenv TERM "nsterm-old"
++# else
++# setenv TERM "nsterm-c-7"
++# endif
++# endif
++# endif
++
++# The '+' entries are building blocks
++nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
++ am, bw, msgr, xenl, xon,
+ cols#80, it#8, lines#24,
+- bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
+- clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
+- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+- ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
+- kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
+- kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
+- kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
+- kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
+- kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
+- kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
+- ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
+- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+- kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
+- kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
+- kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
+- kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
+- ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
+- rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
+- smul=\E[4m,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
++ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
++ ind=^J, invis=\E[8m, kbs=\177, kcub1=\EOD, kcud1=\EOB,
++ kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM,
++ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m,
++ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
+
+-# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
+-# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes
+-# for the application keypad mode. We have added iris-ansi-ap rather than
+-# change the original to keypad mode.
+-#
+-# (iris-ansi: added rmam/smam based on init string -- esr)
+-#
+-# This entry, and those derived from it, is used in xwsh (also known as
+-# winterm). Some capabilities that do not fit into the terminfo model
+-# include the shift- and control-functionkeys:
+-#
+-# F1-F12 generate different codes when shift or control modifiers are used.
+-# For example:
+-# F1 \E[001q
+-# shift F1 \E[013q
+-# control-F1 \E[025q
+-#
+-# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
+-# \EOP to \EOS. The shifted and control modifiers still do the same thing.
+-#
+-# The cursor keys also have different codes:
+-# control-up \E[162q
+-# control-down \E[165q
+-# control-left \E[159q
+-# control-right \E[168q
+-#
+-# shift-up \E[161q
+-# shift-down \E[164q
+-# shift-left \E[158q
+-# shift-right \E[167q
+-#
+-# control-tab \[072q
+-#
+-iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
+- am,
+- cols#80, it#8, lines#40,
+- bel=^G, bold=\E[1m, clear=\E[H\E[2J,
+- cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
+- cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
+- kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
+- kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
+- kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
+- kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
+- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
+- knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
+- kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
+- rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
+- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
+- tbc=\E[3g,
+-iris-ansi-ap|IRIS ANSI in application-keypad mode,
+- is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
+- kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
++nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ enacs=\E(B\E)0, rmacs=^O,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+
+-# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
+-# (T.Dickey 98/1/24)
+-iris-color|xwsh|IRIX ANSI with color,
+- ncv#33,
+- csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
+- ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
+- rmul=\E[24m, rs1=\Ec,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sitm=\E[3m, use=vt100+enq, use=klone+color,
+- use=iris-ansi-ap,
++nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
++ acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245,
++ enacs=\E(B\E)0, rmacs=^O,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+
+-# The following is a version of the ibm-pc entry distributed with PC/IX,
+-# (Interactive Systems' System 3 for the Big Blue), modified by Richard
+-# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
+-# (the former is untrue, and the latter failed under UCB/man); standout and
+-# underline modes have been added. Note: this entry describes the "native"
+-# capabilities of the PC monochrome display, without ANY emulation; most
+-# communications packages (but NOT PC/IX connect) do some kind of emulation.
+-pcix|PC/IX console,
+- am, bw, eo,
+- cols#80, lines#24,
+- clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
+- smul=\E[4m,
++# compare with xterm+sl-twm
++nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
++ wsl#50, use=xterm+sl-twm,
+
+-# (ibmpcx: this entry used to be known as ibmx.
+-# It formerly included the following extension capabilities:
+-# :GC=b:GL=v:GR=t:RT=^J:\
+-# :GH=\E[196g:GV=\E[179g:\
+-# :GU=\E[193g:GD=\E[194g:\
+-# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
+-# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
+-# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
+-# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
+-# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match
+-# what was there before. -- esr)
+-ibmpcx|xenix|ibmx|IBM PC xenix console display,
+- OTbs, am, msgr,
+- cols#80, lines#25,
+- clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
+- kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
+- kpp=\E[Z, use=klone+acs, use=klone+sgr8,
++nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
++ op=\E[0m, use=ibm+16color,
+
+-#### QNX
++nsterm+c41|AppKit Terminal.app v41 color support,
++ colors#8, ncv#37, pairs#64,
++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++
++# These are different combinations of the building blocks
++
++# ASCII charset (-7)
++nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
++ use=nsterm+7,
++
++nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
++ use=nsterm+s, use=nsterm+7,
++
++nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
++ use=nsterm+c41, use=nsterm+7,
++
++nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
++ use=nsterm+c, use=nsterm+7,
++
++nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
++ use=nsterm+s, use=nsterm+c41, use=nsterm+7,
++
++nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
++ use=nsterm+s, use=nsterm+c, use=nsterm+7,
++
++# VT100 alternate-charset (-acs)
++nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
++ use=nsterm+acs,
++
++nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
++ use=nsterm+s, use=nsterm+acs,
++
++nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
++ use=nsterm+c41, use=nsterm+acs,
++
++nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
++ use=nsterm+c, use=nsterm+acs,
++
++nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
++ use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
++
++nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
++ use=nsterm+s, use=nsterm+c, use=nsterm+acs,
++
++# MacRoman charset
++nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
++ use=nsterm+mac,
++
++nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
++ use=nsterm+s, use=nsterm+mac,
++
++nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color),
++ use=nsterm+c41, use=nsterm+mac,
++
++nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
++ use=nsterm+c, use=nsterm+mac,
++
++nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
++ use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
++
++nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
++ use=nsterm+s, use=nsterm+c, use=nsterm+mac,
++
++# In Mac OS X version 10.5 the format of the preferences has changed
++# and a new, more complex technique is needed, e.g.,
++#
++# python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
++# "NSUserDefaults");ud=NSUserDefaults.alloc();
++# ud.init();prefs=ud.persistentDomainForName_(
++# "com.apple.Terminal");prefs["Window Settings"][
++# prefs["Default Window Settings"]]["TerminalType"
++# ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
++# "com.apple.Terminal")' nsterm-16color
++#
++# and it is still not settable from the preferences dialog. This is
++# tracked under rdar://problem/7365108 and rdar://problem/7365134
++# in Apple's bug reporter.
+ #
++# In OS X 10.7 (Leopard) the TERM which can be set in the preferences dialog
++# defaults to xterm-color. Alternative selections are ansi, dtterm, rxvt,
++# vt52, vt100, vt102 and xterm.
++nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
++ bw@, mir, npc,
++ civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
++ flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
++ ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
++ kf18=\E[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
++ knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
++ smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
++ kLFT5=\E[5D, kRIT5=\E[5C, use=nsterm-c-s-acs,
+
+-# QNX 4.0 Console
+-# Michael's original version of this entry had <am@>, <smcup=\Ei>,
+-# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower
+-# right corner without triggering a scroll. The ncurses terminfo library can
+-# handle this case with the <ich1> capability, and prefers <am> for better
+-# optimization. Bug: The <op> capability resets attributes.
+-# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
+-# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
+-qnx|qnx4|qnx console,
+- daisy, km, mir, msgr, xhpa, xt,
+- colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
+- acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263,
+- bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ,
+- cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2,
+- dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee,
+- il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263,
+- kCMD=\377\267, kCPY=\377\363, kCRT=\377\364,
+- kDL=\377\366, kEND=\377\301, kEOL=\377\311,
+- kEXT=\377\367, kFND=\377\370, kHLP=\377\371,
+- kHOM=\377\260, kIC=\377\340, kLFT=\377\264,
+- kMOV=\377\306, kMSG=\377\304, kNXT=\377\272,
+- kOPT=\377\372, kPRT=\377\275, kPRV=\377\262,
+- kRDO=\377\315, kRES=\377\374, kRIT=\377\266,
+- kRPL=\377\373, kSAV=\377\307, kSPD=\377\303,
+- kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0,
+- kclo=\377\343, kclr=\377\341, kcmd=\377\245,
+- kcpy=\377\265, kcrt=\377\305, kctab=\377\237,
+- kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246,
+- kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274,
+- ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320,
+- kext=\377\270, kf1=\377\201, kf10=\377\212,
+- kf11=\377\256, kf12=\377\257, kf13=\377\213,
+- kf14=\377\214, kf15=\377\215, kf16=\377\216,
+- kf17=\377\217, kf18=\377\220, kf19=\377\221,
+- kf2=\377\202, kf20=\377\222, kf21=\377\223,
+- kf22=\377\224, kf23=\377\333, kf24=\377\334,
+- kf25=\377\225, kf26=\377\226, kf27=\377\227,
+- kf28=\377\230, kf29=\377\231, kf3=\377\203,
+- kf30=\377\232, kf31=\377\233, kf32=\377\234,
+- kf33=\377\235, kf34=\377\236, kf35=\377\276,
+- kf36=\377\277, kf37=\377\321, kf38=\377\322,
+- kf39=\377\323, kf4=\377\204, kf40=\377\324,
+- kf41=\377\325, kf42=\377\326, kf43=\377\327,
+- kf44=\377\330, kf45=\377\331, kf46=\377\332,
+- kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206,
+- kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346,
+- khlp=\377\350, khome=\377\240, khts=\377\342,
+- kich1=\377\253, kil1=\377\273, kind=\377\261,
+- kmov=\377\351, kmrk=\377\355, kmsg=\377\345,
+- knp=\377\252, knxt=\377\312, kopn=\377\357,
+- kopt=\377\353, kpp=\377\242, kprt=\377\255,
+- kprv=\377\302, krdo=\377\336, kref=\377\354,
+- kres=\377\360, krfr=\377\347, kri=\377\271,
+- krmir=\377\313, krpl=\377\362, krst=\377\352,
+- ksav=\377\361, kslt=\377\247, kspd=\377\335,
+- ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER,
+- rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER,
+- rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d,
+- setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei,
+- smso=\E(, smul=\E[,
++# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
++# the background color erase feature. The newer version 240.2 in Mac OS X
++# version 10.5 does not.
+ #
++# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
++# and D P Schreber comparing to nsterm-c-s-acs.
+ #
+-qnxt|qnxt4|QNX4 terminal,
+- crxm, use=qnx4,
++# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
++# can be set in Terminal.app, e.g.,
+ #
+-qnxm|QNX4 with mouse events,
+- maddr#1,
+- chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h,
+- mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l,
+- mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l,
+- smicm=\E/>2h, use=qnx4,
++# defaults write com.apple.Terminal TermCapString nsterm-bce
+ #
+-qnxw|QNX4 windows,
+- xvpa, use=qnxm,
++# and that it is not set in Terminal's preferences dialog.
+ #
+-# Monochrome QNX4 terminal or console. Setting this terminal type will
+-# allow an application running on a color console to behave as if it
+-# were a monochrome terminal. Output will be through stdout instead of
+-# console writes because the term routines will recognize that the
+-# terminal name starts with 'qnxt'.
++# Modified for OS X 10.8, omitting bw based on testing with tack -TD
+ #
+-qnxtmono|Monochrome QNX4 terminal or console,
+- colors@, pairs@,
+- scp@, use=qnx4,
++# Notes:
++# * The terminal description matches the default settings.
++# * The keyboard is configurable via a dialog.
++# * By default khome, kend, knext and kprev are honored only with a
++# shift-modifier.
++# * There are bindings for control left/right arrow (but not up/down).
++# Added those to nsterm-16color, which is the version used for OS X 10.6
++# * "Allow VT100 application keypage mode" is by default disabled.
++# There is no way to press keypad-comma unless application mode is enabled
++# and used.
++# * 132-column mode stopped working during vttest's tests. Consider it broken.
++# * CHT, REP, SU, SD are buggy.
++# * ECH works (also in Leopard), but is not used here for compatibility.
++# * The terminal preferences dialog replaces xterm-color by xterm-16color and
++# xterm-256color. However, it adds "nsterm", so it is possible to use the
++# nsterm entry from this file to override the MacPorts (20110404) or
++# system (20081102) copy of this file.
++# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences
++# dialog defaults to xterm-256color. Alternative selections are ansi,
++# dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color. However,
++# the menu says "Declare terminal as" without promising to actually emulate
++# the corresponding terminals. Indeed, changing TERM does not affect the
++# emulation itself. This means that
++# + the function-keys do not match for dtterm for kf1-kf4 as well as
++# khome/kend
++# + the color model is the same for each setting of TERM (does not match
++# ansi or dtterm).
++# + the shift/control/meta key modifiers from rxvt and xterm variants are not
++# recognised except for a few special cases, i.e., kRIT5 and kLFT5.
++# + the vt52 emulation does not give a usable shell because screen-clearing
++# does not work as expected.
++# + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
++nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
++ bce, use=nsterm-16color,
+
+-# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
+-# (esr: commented out <scp> and <rmcup> to avoid warnings.)
+-# (TD: derive from original qnx4 entry)
+-qnxt2|qnx 2.15 serial terminal,
+- am,
+- civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
+- rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
++# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
++# TERM_PROGRAM_VERSION=309
++# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
++# TERM_PROGRAM_VERSION=303
++nsterm-256color|Terminal.app in OS X 10.8,
++ use=xterm+256setaf, use=nsterm-bce,
+
+-# QNX ANSI terminal definition
+-qansi-g|QNX ANSI,
+- am, eslok, hs, xon,
+- colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
+- acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
+- el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
+- fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
+- ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
+- is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
+- kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
+- kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
+- kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
+- kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
+- kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
+- kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
+- kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
+- kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
+- kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~,
+- kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~,
+- kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~,
+- kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~,
+- kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~,
+- kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
+- kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
+- kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
+- khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
+- kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
+- kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
+- kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
+- ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T,
+- rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
+- rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g,
+- tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
++# This is an alias which should always point to the "current" version
++nsterm|Apple_Terminal|AppKit Terminal.app,
++ use=nsterm-256color,
++
++# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
++# more featureful) terminal emulator for Mac OS X. It is similar
++# enough in capabilities to nsterm-16color that I have derived this
++# description from that one, but as far as I know they share no code.
++# Many of the features are user-configurable, but I attempt only to
++# describe the default configuration.
+ #
+-qansi|QNX ansi with console writes,
+- daisy, xhpa, use=qansi-g,
++# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is
++# disabled.
++iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
++ bce, bw@,
++ csr@, dim@, kend=\EOF, khome=\EOH,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ use=xterm+256setaf, use=nsterm-16color,
++
++# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
+ #
+-qansi-t|QNX ansi without console writes,
+- crxm, use=qansi,
++# On PowerPC platforms, Apple's Darwin operating system uses a
++# full-screen system console derived from a NetBSD framebuffer
++# console. It is an ANSI-style terminal, and is not really VT-100
++# compatible.
+ #
+-qansi-m|QNX ansi with mouse,
+- maddr#1,
+- chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
+- mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
+- mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
+- smicm=\E[>2h, use=qansi,
++# Under Mac OS X, this is the system console driver used while in
++# single-user mode [reachable by holding down Command-S during the
++# boot process] and when logged in using console mode [reachable by
++# typing ">console" at the graphical login prompt.]
+ #
+-qansi-w|QNX ansi for windows,
+- xvpa, use=qansi-m,
+-
+-#### NetBSD consoles
++# If you're looking for a description of the Terminal.app terminal
++# emulator which runs under the Mac OS X Quartz windowing system (and
++# other AppKit-supported windowing systems,) see the "nsterm"
++# entry instead.
+ #
+-# pcvt termcap database entries (corresponding to release 3.31)
+-# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
++# NOTE: Under Mac OS X version 10.1, the default login window does not
++# prompt for user name, instead requiring an icon to be selected from
++# a list of known users. Since the special ">console" login is not in
++# this list, you must make one of two changes in the Login Window
++# panel of the Login section of System Prefs to make the special
++# ">console" login accessible. The first option is to enable 'Show
++# "Other User" in list for network users', which will add a special
++# "Other..." icon to the graphical login panel. Selecting "Other..."
++# will present the regular graphical login prompt. The second option
++# is to change the 'Display Login Window as:' setting to 'Name and
++# password entry fields', which replaces the login panel with a
++# graphical login prompt.
+ #
+-# (For the terminfo master file, I translated these into terminfo syntax.
+-# Then I dropped all the pseudo-HP entries. we don't want and can't use
+-# the :Xs: flag. Then I split :is: into a size-independent <is1> and a
+-# size-dependent <is2>. Finally, I added <rmam>/<smam> -- esr)
++# There are no function keys, at least not in Darwin 1.3.
++#
++# It has no mouse support.
++#
++# It has full ANSI color support, and color combines correctly with
++# all three supported attributes: bold, inverse-video and underline.
++# However, bold colored text is almost unreadable (bolding is
++# accomplished using shifting and or-ing, and looks smeared) so bold
++# has been excluded from the list of color-compatible attributes
++# [using (ncv)]. The monochrome entry (-m) is useful if you use a
++# monochrome monitor.
++#
++# There is one serious bug with this terminal emulation's color
++# support: repositioning the cursor onto a cell with non-matching
++# colors obliterates that cell's contents, replacing it with a blank
++# and displaying a colored cursor in the "current" colors. There is
++# no complete workaround at present [other than using the monochrome
++# (-m) entries,] but removing the (msgr) capability seemed to help.
++#
++# The "standout" chosen was simple reverse-video, although a colorful
++# standout might be more aesthetically pleasing. Similarly, the bold
++# chosen is the terminal's own smeared bold, although a simple
++# color-change might be more readable. The color-bold (-b) entries
++# uses magenta colored text for bolding instead. The fancy color (-f
++# and -f2) entries use color for bold, standout and underlined text
++# (underlined text is still underlined, though.)
++#
++# Apparently the terminal emulator does support a VT-100-style
++# alternate character set, but all the alternate character set
++# positions have been left blank in the font. For this reason, no
++# alternate character set capabilities have been included in this
++# description. The console driver appears to be ASCII-only, so (enacs)
++# has been excluded [although the VT-100 sequence does work.]
++#
++# The default Mac OS X and Darwin installation reports "vt100" as the
++# terminal type, and exports no helpful environment variables. To fix
++# this, change the "console" entry in /etc/ttys from "vt100" to
++# "xnuppc-WxH", where W and H are the character dimensions of your
++# console (see below.)
++#
++# The font used by the terminal emulator is apparently one originally
++# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
++# file includes descriptions for the following geometries:
++#
++# Pixels Characters Entry Name (append -m for monochrome)
++# -------------------------------------------------------------------
++# 640x400 80x25 xnuppc-80x25
++# 640x480 80x30 xnuppc-80x30
++# 720x480 90x30 xnuppc-90x30
++# 800x600 100x37 xnuppc-100x37
++# 896x600 112x37 xnuppc-112x37
++# 1024x640 128x40 xnuppc-128x40
++# 1024x768 128x48 xnuppc-128x48
++# 1152x768 144x48 xnuppc-144x48
++# 1280x1024 160x64 xnuppc-160x64
++# 1600x1024 200x64 xnuppc-200x64
++# 1600x1200 200x75 xnuppc-200x75
++# 2048x1536 256x96 xnuppc-256x96
++#
++# The basic "xnuppc" entry includes no size information, and the
++# emulator includes no reporting capability, so you'll be at the mercy
++# of the TTY device (which reports incorrectly on my hardware.) The
++# color-bold entries do not include size information.
+
+-# NOTE: <ich1> has been taken out of this entry. for reference, it should
+-# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
+-# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
+-pcvtXX|pcvt vt200 emulator (DEC VT220),
+- am, km, mir, msgr, xenl,
+- it#8, vt#3,
+- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS,
+- is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
+- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
+- khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
+- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100,
+- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+- rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++# The '+' entries are building blocks
++xnuppc+basic|Darwin PowerPC Console basic capabilities,
++ am, bce, mir, xenl,
++ it#8,
++ bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
++ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
++ rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
++ rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
++ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
+
+-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
+-# 50 lines entries; 80 columns
+-pcvt25|dec vt220 emulation with 25 lines,
+- cols#80, lines#25,
+- is2=\E[1;25r\E[25;1H, use=pcvtXX,
+-pcvt28|dec vt220 emulation with 28 lines,
+- cols#80, lines#28,
+- is2=\E[1;28r\E[28;1H, use=pcvtXX,
+-pcvt35|dec vt220 emulation with 35 lines,
+- cols#80, lines#35,
+- is2=\E[1;35r\E[35;1H, use=pcvtXX,
+-pcvt40|dec vt220 emulation with 40 lines,
+- cols#80, lines#40,
+- is2=\E[1;40r\E[40;1H, use=pcvtXX,
+-pcvt43|dec vt220 emulation with 43 lines,
+- cols#80, lines#43,
+- is2=\E[1;43r\E[43;1H, use=pcvtXX,
+-pcvt50|dec vt220 emulation with 50 lines,
+- cols#80, lines#50,
+- is2=\E[1;50r\E[50;1H, use=pcvtXX,
++xnuppc+c|Darwin PowerPC Console ANSI color support,
++ colors#8, ncv#32, pairs#64,
++ op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+
+-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
+-# 50 lines entries; 132 columns
+-pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
+- cols#132, lines#25,
+- is2=\E[1;25r\E[25;1H, use=pcvtXX,
+-pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
+- cols#132, lines#28,
+- is2=\E[1;28r\E[28;1H, use=pcvtXX,
+-pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
+- cols#132, lines#35,
+- is2=\E[1;35r\E[35;1H, use=pcvtXX,
+-pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
+- cols#132, lines#40,
+- is2=\E[1;40r\E[40;1H, use=pcvtXX,
+-pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
+- cols#132, lines#43,
+- is2=\E[1;43r\E[43;1H, use=pcvtXX,
+-pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
+- cols#132, lines#50,
+- is2=\E[1;50r\E[50;1H, use=pcvtXX,
++xnuppc+b|Darwin PowerPC Console color-bold support,
++ ncv#32,
++ bold=\E[35m,
++ sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
++ use=xnuppc+basic,
+
+-# OpenBSD implements a color variation
+-pcvt25-color|dec vt220 emulation with 25 lines and color,
++xnuppc+f|Darwin PowerPC Console fancy color support,
++ ncv#35,
++ sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
++ smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
++
++xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
++ ncv#35,
++ bold=\E[33m,
++ sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
++ smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
++
++# Building blocks for specific screen sizes
++xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
+ cols#80, lines#25,
+- is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
+- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX,
+- use=ecma+color,
+
+-# Terminfo entries to enable the use of the ncurses library in colour on a
+-# NetBSD-arm32 console (only tested on a RiscPC).
+-# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
+-# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
+-# typo in invis - TD
+-arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
+- am, bce, msgr, xenl, xon,
+- cols#80, it#8, lines#30,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J,
+- invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
+- kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
+- kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
+- kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
+- rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
+- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
+- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
+- use=klone+color,
++xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
++ cols#80, lines#30,
+
+-arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
+- cols#132, lines#50, use=arm100,
++xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
++ cols#90, lines#30,
+
+-# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
+-# manufactured by Sharp for the Japenese market.
+-# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
+-x68k|x68k-ite|NetBSD/x68k ITE,
+- cols#96, lines#32,
+- kclr=\E[9~, khlp=\E[28~, use=vt220,
++xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
++ cols#100, lines#37,
+
+-# <tv@pobox.com>:
+-# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
+-#
+-# (still unfinished, but good enough so far.)
+-ofcons|DNARD OpenFirmware console,
+- bw,
+- cols#80, lines#30,
+- bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
+- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
+- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
+- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
+- dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
+- flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
+- il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
+- kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
+- kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
+- kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
+- kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
+- rmso=\2330m, rmul=\2330m,
+- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+- sgr0=\2330m,
++xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
++ cols#112, lines#37,
+
+-# NetBSD "wscons" emulator in vt220 mode.
+-# This entry is based on the NetBSD termcap entry, correcting the ncv value.
+-# The emulator renders underlined text in red. Colors are otherwise usable.
+-#
+-# Testing the emulator and reading the source code (NetBSD 2.0), it appears
+-# that "vt220" is inaccurate. There are a few vt220-features, but most of the
+-# vt220 screens in vttest do not work with this emulator. For instance, it
+-# identifies itself (primary DA response) as a vt220 with selective erase. But
+-# the selective erase feature does not work. The secondary response is copied
+-# from Kermit's emulation of vt220, does not correspond to actual vt220. At
+-# the level of detail in a termcap, it is a passable emulator, since ECH does
+-# work. Don't use it on a VMS system -TD
+-wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
+- bce, msgr,
+- colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
+- is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+- kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220,
++xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
++ cols#128, lines#40,
+
+-wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
+- km, use=wsvt25,
++xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
++ cols#128, lines#48,
+
+-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
+-# DECstation/pmax.
+-rcons|BSD rasterconsole,
+- use=sun-il,
+-# Color version of above. Color currently only provided by NetBSD.
+-rcons-color|BSD rasterconsole with ANSI color,
+- bce,
+- colors#8, pairs#64,
+- op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
++xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
++ cols#144, lines#48,
+
+-# mgterm -- MGL/MGL2, MobileGear Graphic Library
+-# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
+-# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
+-# -- compare with cons25w
+-mgterm,
+- OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
+- colors#8, cols#80, it#8, lines#18, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
+- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N,
+- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
+- kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I,
+- nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
+- rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm,
+- setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
++xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
++ cols#160, lines#64,
+
+-#### FreeBSD console entries
+-#
+-# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
+-# Andrey Chernov maintains the FreeBSD termcap distributions.
+-#
+-# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
+-# or comment out the :cb: capability in the console entry.
+-#
+-# Alexander Lukyanov reports:
+-# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
+-# Now el1 clears not only to the line beginning, but also a large chunk
+-# of previous line. But there is another bug - ech does not work at all.
+-#
++xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
++ cols#200, lines#64,
+
+-# for syscons
+-# common entry without semigraphics
+-# Bug: The <op> capability resets attributes.
+-# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
+-# instance el1 does if the cursor is moved to the right margin first. Removed
+-# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
+-#
+-# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
+-# Note that this disables standout with color.
+-#
+-# The emulator sends difference strings based on shift- and control-keys,
+-# like scoansi:
+-# F13-F24 are shifted F1-F12
+-# F25-F36 are control F1-F12
+-# F37-F48 are shift+control F1-F12
+-cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
+- am, bce, bw, eo, msgr, npc,
+- colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
+- cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
+- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
+- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
+- kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
+- kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
+- kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
+- kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
+- kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
+- kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
+- kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
+- kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
+- kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
+- knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m,
+- ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+- sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
+-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
+- acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
+- use=cons25w,
+-cons25-debian|freebsd console with debian backspace (25-line ansi mode),
+- kbs=\177, kdch1=\E[3~, use=cons25,
+-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
+- colors@, pairs@,
+- bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
+- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
+- smul=\E[4m, use=cons25,
+-cons30|ansi80x30|freebsd console (30-line ansi mode),
+- lines#30, use=cons25,
+-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
+- lines#30, use=cons25-m,
+-cons43|ansi80x43|freebsd console (43-line ansi mode),
+- lines#43, use=cons25,
+-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
+- lines#43, use=cons25-m,
+-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
+- lines#50, use=cons25,
+-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
+- lines#50, use=cons25-m,
+-cons60|ansi80x60|freebsd console (60-line ansi mode),
+- lines#60, use=cons25,
+-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
+- lines#60, use=cons25-m,
+-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
+- acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
+- use=cons25w,
+-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
+- colors@, pairs@,
+- op@, rmul=\E[m, setab@, setaf@,
+- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+- smul=\E[4m, use=cons25r,
+-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
+- lines#50, use=cons25r,
+-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
+- lines#50, use=cons25r-m,
+-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
+- lines#60, use=cons25r,
+-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
+- lines#60, use=cons25r-m,
+-# ISO 8859-1 FreeBSD console
+-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
+- acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237,
+- use=cons25w,
+-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
+- colors@, pairs@,
+- bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
+- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
+- smul=\E[4m, use=cons25l1,
+-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
+- lines#50, use=cons25l1,
+-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
+- lines#50, use=cons25l1-m,
+-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
+- lines#60, use=cons25l1,
+-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
+- lines#60, use=cons25l1-m,
++xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
++ cols#200, lines#75,
+
+-#### 386BSD and BSD/OS Consoles
+-#
++xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
++ cols#256, lines#96,
+
+-# This was the original 386BSD console entry (I think).
+-# Some places it's named oldpc3|oldibmpc3.
+-# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
+-origpc3|origibmpc3|IBM PC 386BSD Console,
+- OTbs, am, bw, eo, xon,
+- cols#80, lines#25,
+- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+- bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
+- rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
+- smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
++# These are different combinations of the building blocks
+
+-# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
+-oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
+- OTbs, km,
+- lines#25,
+- bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M,
+- ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
+- knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R,
++xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
++ use=xnuppc+basic,
+
+-# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
+-# Note, the emulator supports many of the additional console features
+-# listed in the iBCS2 (e.g. character-set selection) though not all
+-# are described here. This entry really ought to be upgraded.
+-# Also note, the console will also work with fewer lines after doing
+-# "stty rows NN", e.g. to use 24 lines.
+-# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
+-# Bug: The <op> capability resets attributes.
+-bsdos-pc|IBM PC BSD/OS Console,
+- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+- use=bsdos-pc-nobold,
++xnuppc|darwin|Darwin PowerPC Console (color),
++ use=xnuppc+c, use=xnuppc+basic,
+
+-bsdos-pc-nobold|BSD/OS PC console w/o bold,
+- use=klone+color, use=bsdos-pc-m,
++xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
++ use=xnuppc+b,
+
+-bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
+- OTbs, am, eo, km, xon,
+- cols#80, it#8, lines#25,
+- bel=^G, clear=\Ec, cr=^M, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
+- kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7,
+- sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;,
+- use=klone+sgr8,
++xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
++ use=xnuppc+b, use=xnuppc+c,
+
+-# Old names for BSD/OS PC console used in releases before 4.1.
+-pc3|BSD/OS on the PC Console,
+- use=bsdos-pc-nobold,
+-ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
+- use=bsdos-pc,
++xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
++ use=xnuppc+f,
+
+-# BSD/OS on the SPARC
+-bsdos-sparc|Sun SPARC BSD/OS Console,
+- use=sun,
++xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
++ use=xnuppc+f, use=xnuppc+c,
+
+-# BSD/OS on the PowerPC
+-bsdos-ppc|PowerPC BSD/OS Console,
+- use=bsdos-pc,
++xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
++ use=xnuppc+f2,
+
+-#### DEC VT52
+-# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
+-#
+-# Actually (TD pointed this out at the time the acsc string was added):
+-# vt52 shouldn't define full acsc since most of the cells don't match.
+-# see vt100 manual page A-31. This is the list that does match:
+-# f degree
+-# g plus/minus
+-# h right-arrow
+-# k down-arrow
+-# m scan-1
+-# o scan-3
+-# q scan-5
+-# s scan-7
+-# The line-drawing happens to work in several terminal emulators, but should
+-# not be used as a guide to the capabilities of the vt52. Note in particular
+-# that vt52 does not support line-drawing characters (the scan-X values refer
+-# to a crude plotting feature) -TD
+-vt52|dec vt52,
+- OTbs,
+- cols#80, it#8, lines#24,
+- acsc=+h.k0affggolpnqprrss, bel=^G, clear=\EH\EJ, cr=^M,
+- cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+- el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
++xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
++ use=xnuppc+f2, use=xnuppc+c,
+
+-#### DEC VT100 and compatibles
+-#
+-# DEC terminals from the vt100 forward are collected here. Older DEC terminals
+-# and micro consoles can be found in the `obsolete' section. More details on
+-# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
+-# found near the end of this file.
+-#
+-# Except where noted, these entries are DEC's official terminfos.
+-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
+-# Engineering for more information. Updated terminfos and termcaps
+-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
+-#
+-# In October 1995 DEC sold its terminals business, including the VT and Dorio
+-# line and trademark, to SunRiver Data Systems. SunRiver has since changed
+-# its name to Boundless Technologies; see http://www.boundless.com.
+-#
++# Combinations for specific screen sizes
++xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
++ use=xnuppc+80x25, use=xnuppc+basic,
+
+-# NOTE: Any VT100 emulation, whether in hardware or software, almost
+-# certainly includes what DEC called the `Level 1 editing extension' codes;
+-# only the very oldest VT100s lacked these and there probably aren't any of
+-# those left alive. To capture these, use one of the VT102 entries.
+-#
+-# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept,
+-# since the cursor is left in a different position while in the
+-# weird state (concept at beginning of next line, vt100 at end
+-# of this line) so all versions of vi before 3.7 don't handle
+-# <xenl> right on vt100. The correct way to handle <xenl> is when
+-# you output the char in column 80, immediately output CR LF
+-# and then assume you are in column 1 of the next line. If <xenl>
+-# is on, am should be on too.
++xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
++ use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
++
++xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
++ use=xnuppc+80x30, use=xnuppc+basic,
++
++xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
++ use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
++
++xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
++ use=xnuppc+90x30, use=xnuppc+basic,
++
++xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
++ use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
++
++xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
++ use=xnuppc+100x37, use=xnuppc+basic,
++
++xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
++ use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
++
++xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
++ use=xnuppc+112x37, use=xnuppc+basic,
++
++xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
++ use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
++
++xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
++ use=xnuppc+128x40, use=xnuppc+basic,
++
++xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
++ use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
++
++xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
++ use=xnuppc+128x48, use=xnuppc+basic,
++
++xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
++ use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
++
++xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
++ use=xnuppc+144x48, use=xnuppc+basic,
++
++xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
++ use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
++
++xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
++ use=xnuppc+160x64, use=xnuppc+basic,
++
++xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
++ use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
++
++xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
++ use=xnuppc+200x64, use=xnuppc+basic,
++
++xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
++ use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
++
++xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
++ use=xnuppc+200x75, use=xnuppc+basic,
++
++xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
++ use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
++
++xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
++ use=xnuppc+256x96, use=xnuppc+basic,
++
++xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
++ use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
++
++
++#### BeOS
+ #
+-# I assume you have smooth scroll off or are at a slow enough baud
+-# rate that it doesn't matter (1200? or less). Also this assumes
+-# that you set auto-nl to "on", if you set it off use vt100-nam
+-# below.
++# BeOS entry for Terminal program Seems to be almost ANSI
++beterm|BeOS Terminal,
++ am, eo, mir, msgr, xenl, xon,
++ colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
++ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
++ kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~,
++ kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
++ kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~,
++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
++ nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
++ rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm,
++ sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m,
++ smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
++ vpa=\E[%i%p1%dd,
++
++#### Linux consoles
+ #
+-# The padding requirements listed here are guesses. It is strongly
+-# recommended that xon/xoff be enabled, as this is assumed here.
++
++# This entry is good for the 1.2.13 or later version of the Linux console.
+ #
+-# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the
+-# tab settings are in non-volatile memory and don't need to be
+-# reset upon login. Also setting the number of columns glitches
+-# the screen annoyingly. You can type "reset" to get them set.
++# ***************************************************************************
++# * *
++# * WARNING: *
++# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
++# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
++# * character. Here are the keymap replacement lines that will set this up: *
++# * *
++# keycode 15 = Tab Tab
++# alt keycode 15 = Meta_Tab
++# shift keycode 15 = F26
++# string F26 ="\033[Z"
++# * *
++# * This has to use a key slot which is unfortunate (any unused one will *
++# * do, F26 is the higher-numbered one). The change ought to be built *
++# * into the kernel tables. *
++# * *
++# ***************************************************************************
+ #
+-# The VT100 series terminals have cursor ("arrows") keys which can operate
+-# in two different modes: Cursor Mode and Application Mode. Cursor Mode
+-# is the reset state, and is assumed to be the normal state. Application
+-# Mode is the "set" state. In Cursor Mode, the cursor keys transmit
+-# "Esc [ {code}" sequences, conforming to ANSI standards. In Application
+-# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode
+-# was provided primarily as an aid to the porting of VT52 applications. It is
+-# assumed that the cursor keys are normally in Cursor Mode, and expected that
+-# applications such as vi will always transmit the <smkx> string. Therefore,
+-# the definitions for the cursor keys are made to match what the terminal
+-# transmits after the <smkx> string is transmitted. If the <smkx> string
+-# is a null string or is not defined, then cursor keys are assumed to be in
+-# "Cursor Mode", and the cursor keys definitions should match that assumption,
+-# else the application may fail. It is also expected that applications will
+-# always transmit the <rmkx> string to the terminal before they exit.
++# All linux kernels since 1.2.13 (at least) set the screen size
++# themselves; this entry assumes that capability.
+ #
+-# The VT100 series terminals have an auxiliary keypad, commonly referred to as
+-# the "Numeric Keypad", because it is a cluster of numeric and function keys.
+-# The Numeric Keypad which can operate in two different modes: Numeric Mode and
+-# Application Mode. Numeric Mode is the reset state, and is assumed to be
+-# the normal state. Application Mode is the "set" state. In Numeric Mode,
+-# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
+-# Enter key transmits the same as the Return key (Note: the Return key
+-# can be configured to send either LF (\015) or CR LF). In Application Mode,
+-# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys
+-# always send the same "Esc O {code}" sequences. It is assumed that the keypad
+-# is normally in Numeric Mode. If an application requires that the keypad be
+-# in Application Mode then it is expected that the user, or the application,
+-# will set the TERM environment variable to point to a terminfo entry which has
+-# defined the <smkx> string to include the codes that switch the keypad into
+-# Application Mode, and the terminfo entry will also define function key
+-# fields to match the Application Mode control codes. If the <smkx> string
+-# is a null string or is not defined, then the keypad is assumed to be in
+-# Numeric Mode. If the <smkx> string switches the keypad into Application
+-# Mode, it is expected that the <rmkx> string will contain the control codes
+-# necessary to reset the keypad to "Normal" mode, and it is also expected that
+-# applications which transmit the <smkx> string will also always transmit the
+-# <rmkx> string to the terminal before they exit.
+-#
+-# Here's a diagram of the VT100 keypad keys with their bindings.
+-# The top line is the name of the key (some DEC keyboards have the keys
+-# labelled somewhat differently, like GOLD instead of PF1, but this is
+-# the most "official" name). The second line is the escape sequence it
+-# generates in Application Keypad mode (where "$" means the ESC
+-# character). The third line contains two items, first the mapping of
+-# the key in terminfo, and then in termcap.
+-# _______________________________________
+-# | PF1 | PF2 | PF3 | PF4 |
+-# | $OP | $OQ | $OR | $OS |
+-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
+-# | 7 8 9 - |
+-# | $Ow | $Ox | $Oy | $Om |
+-# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
+-# | 4 | 5 | 6 | , |
+-# | $Ot | $Ou | $Ov | $Ol |
+-# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
+-# | 1 | 2 | 3 | |
+-# | $Oq | $Or | $Os | enter |
+-# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM |
+-# | 0 | . | |
+-# | $Op | $On | |
+-# |___kc1_______K4____|_kc3__K5_|_kent_@8_|
+-#
+-# Note however, that the arrangement of the 5-key ka1-kc3 do not follow the
+-# terminfo guidelines. That is a compromise used to assign the remaining
+-# keys on the keypad to kf5-kf0, used on older systems with legacy termcap
+-# support:
+-vt100+keypad|dec vt100 numeric keypad no fkeys,
+- ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
+-vt100+pfkeys|dec vt100 numeric keypad,
+- kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+- use=vt100+keypad,
+-vt100+fnkeys|dec vt100 numeric keypad,
+- kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
+- kf9=\EOw, use=vt100+pfkeys,
+-#
+-# A better adaptation to modern keyboards such as the PC's, which have a dozen
+-# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
+-# use the 5-key arrangement to model the arrow keys as suggested in the
+-# terminfo guidelines:
+-# _______________________________________
+-# | PF1 | PF2 | PF3 | PF4 |
+-# | $OP | $OQ | $OR | $OS |
+-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
+-# | 7 8 9 - |
+-# | $Ow | $Ox | $Oy | $Om |
+-# |_ka1__K1_|_________|_ka3__K3_|_________|
+-# | 4 | 5 | 6 | , |
+-# | $Ot | $Ou | $Ov | $Ol |
+-# |_________|_kb2__K2_|_________|_________|
+-# | 1 | 2 | 3 | |
+-# | $Oq | $Or | $Os | enter |
+-# |_kc1__K4_|_________|_kc3__K5_| $OM |
+-# | 0 | . | |
+-# | $Op | $On | |
+-# |___________________|_________|_kent_@8_|
+-#
+-vt220+keypad|dec vt220 numeric keypad,
+- ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt,
+- kb3=\EOv, kc2=\EOr,
+-#
+-vt100+enq|ncurses extension for vt100-style ENQ,
+- u8=\E[?1;2c, use=ansi+enq,
+-vt102+enq|ncurses extension for vt102-style ENQ,
+- u8=\E[?6c, use=ansi+enq,
+-#
+-# And here, for those of you with orphaned VT100s lacking documentation, is
+-# a description of the soft switches invoked when you do `Set Up'.
+-#
+-# Scroll 0-Jump Shifted 3 0-#
+-# | 1-Smooth | 1-British pound sign
+-# | Autorepeat 0-Off | Wrap Around 0-Off
+-# | | 1-On | | 1-On
+-# | | Screen 0-Dark Bkg | | New Line 0-Off
+-# | | | 1-Light Bkg | | | 1-On
+-# | | | Cursor 0-Underline | | | Interlace 0-Off
+-# | | | | 1-Block | | | | 1-On
+-# | | | | | | | |
+-# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
+-# | | | | | | | |
+-# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
+-# | | | 1-On | | | 1-50 Hz
+-# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
+-# | | 1-ANSI | | 1-8 Bits
+-# | Keyclick 0-Off | Parity 0-Off
+-# | 1-On | 1-On
+-# Margin Bell 0-Off Parity Sense 0-Odd
+-# 1-On 1-Even
+-#
+-# The following SET-UP modes are assumed for normal operation:
+-# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
+-# WRAP_AROUND_ON JUMP_SCROLL_OFF
+-# Other SET-UP modes may be set for operator convenience or communication
+-# requirements; I recommend
+-# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
+-# Unless you have a graphics add-on such as Digital Engineering's VT640
+-# (and even then, whenever it can be arranged!) you should set
+-# INTERLACE_OFF
+-#
+-# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
+-vt100|vt100-am|dec vt100 (w/advanced video),
+- OTbs, am, mc5i, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++linux-basic|linux console,
++ am, bce, eo, mir, msgr, xenl, xon,
++ it#8, ncv#18, U8#1,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
+- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+- use=vt100+fnkeys,
+-vt100nam|vt100-nam|vt100 no automargins,
+- am@, xenl@, use=vt100-am,
+-vt100-vb|dec vt100 (w/advanced video) & no beep,
+- bel@, flash=\E[?5h\E[?5l, use=vt100,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
++ el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
++ kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
++ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
++ kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
++ rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;11%;m,
++ smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%i%p1%dd, use=vt102+enq, use=klone+sgr,
++ use=ecma+color,
+
+-# Ordinary vt100 in 132 column ("wide") mode.
+-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
+- cols#132, lines#24,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
+-vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
+- cols#132, lines#14, vt@,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
++linux-m|Linux console no color,
++ colors@, pairs@,
++ setab@, setaf@, setb@, setf@, use=linux,
+
+-# vt100 with no advanced video.
+-vt100-nav|vt100 without advanced video option,
+- xmc#1,
+- blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
+- smul@, use=vt100,
+-vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
+- cols#132, lines#14, use=vt100-nav,
++# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
++# and it matters, turn off <ccc>. The %02x escape used to implement this is
++# not supposedly back-portable to older SV curses (although it has worked fine
++# on Solaris for several years) and not supported in ncurses versions before
++# 1.9.9.
++linux-c-nc|linux console with color-change,
++ ccc,
++ initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
++ oc=\E]R, use=linux-basic,
++# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
++linux-c|linux console 1.3.6+ for older ncurses,
++ ccc,
++ initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
++ oc=\E]R, use=linux-basic,
+
+-# vt100 with one of the 24 lines used as a status line.
+-# We put the status line on the top.
+-vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
+- eslok, hs,
+- lines#23,
+- clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
+- cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8,
+- fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8,
+- tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am,
++# The 2.2.x kernels add a private mode that sets the cursor type; use that to
++# get a block cursor for cvvis.
++# reported by Frank Heckenbach <frank@g-n-u.de>.
++linux2.2|linux 2.2.x console,
++ civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
++ cvvis=\E[?25h\E[?8c, use=linux-c-nc,
+
+-# Status line at bottom.
+-# Clearing the screen will clobber status line.
+-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
+- eslok, hs,
+- lines#23,
+- dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
+- tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
++# Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
++# http://lkml.indiana.edu/hypermail/linux/kernel/0602.2/0868.html
++# Using SI/SO has the drawback that it confuses screen. SCS would work.
++# However, SCS is buggy (see comment in Debian #515609) -TD
++# Further, this breaks longstanding workarounds for Linux console's line
++# drawing (see Debian 665959) -TD
++linux2.6|linux 2.6.x console,
++ rmacs=^O,
++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, use=linux2.2,
++
++# The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
++# It is the same as xterm's erase-saved-lines feature.
++linux3.0|linux 3.0 kernels,
++ E3=\E[3;J, use=linux2.6,
+
+-# Most of the `vt100' emulators out there actually emulate a vt102
+-# This entry (or vt102-nsgr) is probably the right thing to use for
+-# these.
+-vt102|dec vt102,
+- dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
+- use=vt100,
+-vt102-w|dec vt102 in wide mode,
+- cols#132,
+- rs3=\E[?3h, use=vt102,
++# This is Linux console for ncurses.
++linux|linux console,
++ use=linux2.2,
+
+-# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
+-# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0>
+-# string in the canonical vt100 entry above leaves the screen littered
+-# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
+-# after highlight turnoffs. This entry should fix that, and even leave
+-# ACS support working, at the cost of making multiple-highlight changes
+-# slightly more expensive.
+-# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
+-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
+- sgr@, sgr0=\E[m, use=vt102,
++# Subject: linux 2.6.26 vt back_color_erase
++# Changes to the Linux console driver broke bce model as reported in
++# https://bugzilla.novell.com/show_bug.cgi?id=418613
++# apparently from
++# http://lkml.org/lkml/2008/4/26/305
++# http://lkml.org/lkml/2008/10/3/66
++linux2.6.26|linux console w/o bce,
++ bce@, use=linux2.6,
+
+-# VT125 Graphics CRT. Clear screen also erases graphics
+-# Some vt125's came configured with vt102 support.
+-vt125|vt125 graphics terminal,
+- mir,
+- clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
++# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
++linux-nic|linux with ich/ich1 suppressed for non-curses programs,
++ ich@, ich1@, use=linux,
+
+-# This isn't a DEC entry, it came from University of Wisconsin.
+-# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
+-vt131|dec vt131,
+- OTbs, am, xenl,
+- cols#80, it#8, lines#24, vt#3,
+- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
+- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
+- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
+- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
+- rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
+- rmul=\E[m$<2/>,
+- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
++# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
++# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
++linux-koi8|linux with koi8 alternate character set,
++ acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224,
++ use=linux, use=klone+koi8acs,
+
+-# vt132 - like vt100 but slower and has ins/del line and such.
+-# I'm told that <smir>/<rmir> are backwards in the terminal from the
+-# manual and from the ANSI standard, this describes the actual
+-# terminal. I've never actually used a vt132 myself, so this
+-# is untested.
+-#
+-vt132|DEC vt132,
+- xenl,
+- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
+- ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
++# Another entry for KOI8-r with Qing Long's acsc.
++# (which one better complies with the standard?)
++linux-koi8r|linux with koi8-r alternate character set,
++ use=linux, use=klone+koi8acs,
+
+-# This vt220 description maps F5--F9 to the second block of function keys
+-# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
+-# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
+-# PF1--PF4 are used as F1--F4.
++# Entry for the latin1 and latin2 fonts
++linux-lat|linux with latin1 or latin2 alternate character set,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376,
++ use=linux,
++
++# This uses graphics from VT codeset instead of from cp437.
++# reason: cp437 (aka "straight to font") is not functional under luit.
++# from: Andrey V Lukyanov <land@long.yar.ru>.
++linux-vt|linux console using VT codes for graphics,
++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
++ rmacs=\E(K, rmpch@, sgr@, sgr0=\E[0m\E(K\017, smacs=\E(0,
++ smpch@, use=linux,
++
++# This is based on the Linux console (relies on the console to perform some
++# of the functionality), but does not recognize as many control sequences.
++# The program comes bundled with an old (circa 1998) copy of the Linux
++# console terminfo. It recognizes some non-ANSI/VT100 sequences such as
++# \E* move cursor to home, as as \E[H
++# \E,X same as \E(X
++# \EE move cursor to beginning of row
++# \E[y,xf same as \E[y,xH
+ #
+-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
+- OTbs, OTpt, am, mir, xenl, xon,
+- cols#80, lines#24, vt#3,
+- OTnl=^J,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
+- clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+- if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
+- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP,
+- kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
+- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
+- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8,
+- rev=\E[7m$<2>, rf=/usr/share/tabset/vt100,
+- ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+- rmso=\E[27m, rmul=\E[24m,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+- smso=\E[7m, smul=\E[4m,
++# Note: The status-line support is buggy (dsl does not work).
++kon|kon2|jfbterm|Kanji ON Linux console,
++ ccc@, hs,
++ civis@, cnorm@, cvvis@, dsl=\E[?H, flash@, fsl=\E[?F, initc@,
++ initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
++ use=linux,
+
+-# A much better description of the VT200/220; used to be vt220-8
+-# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
+-# designation to accommodate bug in pcvt -TD
+-vt220|vt200|dec vt220,
+- OTbs, am, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
+- il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
+- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
+- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
+- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
+- mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
+- rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+-vt220-w|vt200-w|DEC vt220 in wide mode,
+- cols#132,
+- rs3=\E[?3h, use=vt220,
+-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
+- OTbs, am, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
+- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
+- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
+- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
+- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
+- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
+- flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
+- ich=\233%p1%d@, if=/usr/share/tabset/vt100,
+- il=\233%p1%dL, il1=\233L, ind=\ED,
+- is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
+- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
+- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
+- kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
+- kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
+- kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
+- kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
+- knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
+- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
+- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
+- rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
+- rs1=\233?3l, sc=\E7,
+- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
+- smso=\2337m, smul=\2334m, tbc=\2333g,
++# 16-color linux console entry; this works with a 256-character
++# console font but bright background colors turn into dim ones when
++# you use a 512-character console font. This uses bold for bright
++# foreground colors and blink for bright background colors.
++linux-16color|linux console with 16 colors,
++ colors#16, ncv#63, pairs#256,
++ setab=\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m,
++ setaf=\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m,
++ use=linux,
+
+-# vt220d:
+-# This vt220 description regards F6--F10 as the second block of function keys
+-# at the top of the keyboard. This mapping follows the description given
+-# in the VT220 Programmer Reference Manual and agrees with the labeling
+-# on some terminals that emulate the vt220. There is no support for an F5.
+-# See vt220 for an alternate mapping.
++# bterm (bogl 0.1.18)
++# Implementation is in bogl-term.c
++# Key capabilities from linux terminfo entry
+ #
+-vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
++# Notes:
++# bterm only supports acs using wide-characters, has case for these: qjxamlkut
++# bterm does not support sgr, since it only processes one parameter -TD
++bterm|bogl virtual terminal,
++ am, bce,
++ colors#8, cols#80, lines#24, pairs#64,
++ acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
++ cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ind=^J,
++ kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
++ kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
++ kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J,
++ op=\E[49m\E[39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
++ rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
+
+-vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
+- am@,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
++#### Mach
++#
+
+-# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
+-# (not an official DEC entry!)
+-# The problem with real vt220 terminals is they don't send escapes when in
+-# in vt220 mode. This can be gotten around two ways. 1> don't send
+-# escapes or 2> put the vt220 into vt100 mode and use all the nifty
+-# features of vt100 advanced video which it then has.
++# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
++mach|Mach Console,
++ am, km,
++ cols#80, it#8, lines#25,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
++ kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
++ kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
++ smso=\E[7m, smul=\E[4m,
++mach-bold|Mach Console with bold instead of underline,
++ rmul=\E[0m, smul=\E[1m, use=mach,
++mach-color|Mach Console with ANSI color,
++ colors#8, pairs#64,
++ dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
++
++# From: Samuel Thibault
++# Source: git://git.sv.gnu.org/hurd/gnumach.git
++# Files: i386/i386at/kd.c
++#
++# Added nel, hpa, sgr and removed rmacs, smacs based on source -TD
++mach-gnu|GNU Mach,
++ acsc=+>\,<-\^.v0\333`+a\261f\370g\361h\260i#j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
++ el1=\E[1K, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, ich1=\E[@,
++ indn=\E[%p1%dS, invis=\E[8m, nel=\EE, rin=\E[%p1%dT,
++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m,
++ use=mach,
++
++mach-gnu-color|Mach Console with ANSI color,
++ colors#8, pairs#64,
++ op=\E[37;40m, rmso=\E[27m, setab=\E[4%p1%dm,
++ setaf=\E[3%p1%dm, use=mach-gnu,
++
++# From: Marcus Brinkmann
++# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
+ #
+-# This entry takes the view of putting a vt220 into vt100 mode so
+-# you can use the escape key in emacs and everything else which needs it.
++# Comments in the original are summarized here:
+ #
+-# You probably don't want to use this on a VMS machine since VMS will think
+-# it has a vt220 and will get fouled up coming out of emacs
++# hurd uses 8-bit characters (km).
+ #
+-# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
+-# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
+-vt200-js|vt220-js|dec vt200 series with jump scroll,
+- am,
+- cols#80,
+- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
+- ht=^I, il1=\E[L, ind=\ED,
+- is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
+- rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
+- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
+- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
+-
+-# This was DEC's vt320. Use the purpose-built one below instead
+-#vt320|DEC VT320 in vt100 emulation mode,
+-# use=vt220,
+-
+-# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
++# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
+ #
+-vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
+- am@,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
+-
+-# These entries are not DEC's official ones, they were purpose-built for the
+-# VT320. Here are the designer's notes:
+-# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to
+-# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
+-# khome is Home on a PC kbd. Actually 'FIND' on a VT.
+-# Things that use <knxt> usually use tab anyways... and things that don't use
+-# tab usually use <knxt> instead...
+-# kprv is same as tab - Backtab is useless...
+-# I left out <sgr> because of its RIDICULOUS complexity,
+-# and the resulting fact that it causes the termcap translation of the entry
+-# to SMASH the 1k-barrier...
+-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+-# (vt320: uncommented <fsl> --esr)
+-vt320|vt300|dec vt320 7 bit terminal,
+- am, eslok, hs, mir, msgr, xenl,
+- cols#80, lines#24, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
+- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+- il1=\E[L, ind=\ED,
+- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+- kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
+- kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i,
+- mc5=\E[?5i, nel=\EE, rc=\E8, rev=\E[7m,
+- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
+- rmul=\E[m,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
+-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
+- am@,
+- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+- use=vt320,
+-# We have to init 132-col mode, not 80-col mode.
+-vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
+- cols#132, wsl#132,
+- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- use=vt320,
+-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
+- am@,
+- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+- use=vt320-w,
+-
+-# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
+-# which are pretty much a superset of the VT320. They have the
+-# host writable status line, yet another different DRCS matrix size,
+-# and such, but they add the DEC Technical character set, Multiple text
+-# pages, selectable length pages, and the like. The difference between
+-# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
+-# monitor, the former has 4 planes and a color monitor. These terminals
+-# support VT131 and ANSI block mode, but as with much of these things,
+-# termcap/terminfo doesn't deal with these features.
+-#
+-# Note that this entry is are set up in what was the standard way for GNU
+-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
+-# keys were switched into application mode at the same time the numeric pad
+-# is switched into application mode. This changes the definitions of the
+-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
+-# your termcap or terminfo entry,
+-#
+-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
+-# (vt340: string capability "sb=\E[M" corrected to "sr";
+-# also, added <rmam>/<smam> based on the init string -- esr)
+-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
+- am, eslok, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
+- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+- dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
+- ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+- il1=\E[L, ind=\ED,
+- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
+- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
+- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+- rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[2$~\E[1$}\E[1;%dH,
+-
+-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
+-# (originally written with vt420 as its primary name, and usable for it).
++# Regarding compatibility to vt100: hurd doesn't specify <xenl>, as we don't
++# have the eat_newline_glitch. It doesn't support setting or removing tab
++# stops (hts/tbc).
+ #
+-# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
+-# text pages and long text pages with selectable length of the vt340, along
+-# with left and right margins, rectangular area text copy, fill, and erase
+-# operations, selected region character attribute change operations,
+-# page memory and rectangle checksums, insert/delete column, reception
+-# macros, and other features too numerous to remember right now. TERMCAP
+-# can only take advantage of a few of these added features.
++# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
++# one byte instead three.
+ #
+-# Note that this entry is are set up in what was the standard way for GNU
+-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
+-# keys were switched into application mode at the same time the numeric pad
+-# is switched into application mode. This changes the definitions of the
+-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
+-# your termcap entry,
++# <ich1> is not included because hurd has insert mode.
+ #
+-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
+-# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
+-# also, added <rmam>/<smam> based on the init string -- esr)
+-vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
+- am, eslok, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J$<10/>, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
+- el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
+- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
+- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[2$~\E[1$}\E[1;%dH,
+-
+-# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
+-# a missing <sc> -- esr)
+-vt420|DEC VT420,
+- am, mir, xenl, xon,
+- cols#80, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
+- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
+- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
+- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+- smkx=\E=, smso=\E[7m, smul=\E[4m,
+-
+-# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
+-# takes two parameters, the key and the string. Translating the key is
+-# straightforward (keys 1-5 are not defined on real terminals, though some
+-# emulators define these):
++# hurd doesn't use ^J for scrolling, because this could put things into the
++# scrollback buffer.
+ #
+-# if (key < 16) then value = key;
+-# else if (key < 21) then value = key + 1;
+-# else if (key < 25) then value = key + 2;
+-# else if (key < 27) then value = key + 3;
+-# else if (key < 30) then value = key + 4;
+-# else value = key + 5;
++# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
++# This is a GNU extension.
+ #
+-# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
+-# There's no provision in terminfo for emitting a string in this format, so the
+-# application has to know it.
++# The original has commented-out ncv, but is restored here.
+ #
+-vt420pc|DEC VT420 w/PC keyboard,
+- kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~,
+- kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
+- kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~,
+- kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
+- kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~,
+- kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~,
+- kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~,
+- kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~,
+- kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~,
+- kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~,
+- kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~,
+- kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+- pctrm=USR_TERM\:vt420pcdos\:,
+- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
+- use=vt420,
+-
+-vt420pcdos|DEC VT420 w/PC for DOS Merge,
+- lines#25,
+- dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;,
+- pctrm@,
+- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@,
+- sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc,
+-
+-vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys,
+- kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
++# Reading the source, RIS resets cnorm, but not xmous.
++hurd|The GNU Hurd console server,
++ am, bce, bw, eo, km, mir, msgr, xenl, xon,
++ colors#8, it#8, ncv#18, pairs#64,
++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP,
++ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
++ invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
++ kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS,
+- use=vt420,
+-
+-vt510|DEC VT510,
+- use=vt420,
+-vt510pc|DEC VT510 w/PC keyboard,
+- use=vt420pc,
+-vt510pcdos|DEC VT510 w/PC for DOS Merge,
+- use=vt420pcdos,
++ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
++ kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T,
++ rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l,
++ rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
++ sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h,
++ smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
++ gsbom=\E[>1h,
+
+-# VT520/VT525
+-#
+-# The VT520 is a monochrome text terminal capable of managing up to
+-# four independent sessions in the terminal. It has multiple ANSI
+-# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
+-# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
+-# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only.
++#### QNX
+ #
+-# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
+-# [Alt]/[Print Screen] depending upon which keyboard and which
+-# terminal mode is being used. If Set-Up has been disabled or
+-# assigned to an unknown key, Set-Up may be entered by pressing
+-# [F3] as the first key after power up, regardless of keyboard type.
+-# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
+-vt520|DEC VT520,
+- am, mir, xenl, xon,
+- cols#80, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
+- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- kslt=\E[4~,
+- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
+- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+- smso=\E[7m, smul=\E[4m,
+-
+-# (vt525: I added <rmam>/<smam> based on the init string;
+-# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
+-vt525|DEC VT525,
+- am, mir, xenl, xon,
+- cols#80, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
+- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
+- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- kslt=\E[4~,
+- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
+- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
+- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
+- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+- smso=\E[7m, smul=\E[4m,
+
+-#### VT100 emulations
++# QNX 4.0 Console
++# Michael's original version of this entry had <am@>, <smcup=\Ei>,
++# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower
++# right corner without triggering a scroll. The ncurses terminfo library can
++# handle this case with the <ich1> capability, and prefers <am> for better
++# optimization. Bug: The <op> capability resets attributes.
++# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
++# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
++qnx|qnx4|qnx console,
++ daisy, km, mir, msgr, xhpa, xt,
++ colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
++ acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263,
++ bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ,
++ cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2,
++ dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee,
++ il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263,
++ kCMD=\377\267, kCPY=\377\363, kCRT=\377\364,
++ kDL=\377\366, kEND=\377\301, kEOL=\377\311,
++ kEXT=\377\367, kFND=\377\370, kHLP=\377\371,
++ kHOM=\377\260, kIC=\377\340, kLFT=\377\264,
++ kMOV=\377\306, kMSG=\377\304, kNXT=\377\272,
++ kOPT=\377\372, kPRT=\377\275, kPRV=\377\262,
++ kRDO=\377\315, kRES=\377\374, kRIT=\377\266,
++ kRPL=\377\373, kSAV=\377\307, kSPD=\377\303,
++ kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0,
++ kclo=\377\343, kclr=\377\341, kcmd=\377\245,
++ kcpy=\377\265, kcrt=\377\305, kctab=\377\237,
++ kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246,
++ kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274,
++ ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320,
++ kext=\377\270, kf1=\377\201, kf10=\377\212,
++ kf11=\377\256, kf12=\377\257, kf13=\377\213,
++ kf14=\377\214, kf15=\377\215, kf16=\377\216,
++ kf17=\377\217, kf18=\377\220, kf19=\377\221,
++ kf2=\377\202, kf20=\377\222, kf21=\377\223,
++ kf22=\377\224, kf23=\377\333, kf24=\377\334,
++ kf25=\377\225, kf26=\377\226, kf27=\377\227,
++ kf28=\377\230, kf29=\377\231, kf3=\377\203,
++ kf30=\377\232, kf31=\377\233, kf32=\377\234,
++ kf33=\377\235, kf34=\377\236, kf35=\377\276,
++ kf36=\377\277, kf37=\377\321, kf38=\377\322,
++ kf39=\377\323, kf4=\377\204, kf40=\377\324,
++ kf41=\377\325, kf42=\377\326, kf43=\377\327,
++ kf44=\377\330, kf45=\377\331, kf46=\377\332,
++ kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206,
++ kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346,
++ khlp=\377\350, khome=\377\240, khts=\377\342,
++ kich1=\377\253, kil1=\377\273, kind=\377\261,
++ kmov=\377\351, kmrk=\377\355, kmsg=\377\345,
++ knp=\377\252, knxt=\377\312, kopn=\377\357,
++ kopt=\377\353, kpp=\377\242, kprt=\377\255,
++ kprv=\377\302, krdo=\377\336, kref=\377\354,
++ kres=\377\360, krfr=\377\347, kri=\377\271,
++ krmir=\377\313, krpl=\377\362, krst=\377\352,
++ ksav=\377\361, kslt=\377\247, kspd=\377\335,
++ ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER,
++ rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER,
++ rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d,
++ setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei,
++ smso=\E(, smul=\E[,
+ #
++#
++qnxt|qnxt4|QNX4 terminal,
++ crxm, use=qnx4,
++#
++qnxm|QNX4 with mouse events,
++ maddr#1,
++ chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h,
++ mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l,
++ mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l,
++ smicm=\E/>2h, use=qnx4,
++#
++qnxw|QNX4 windows,
++ xvpa, use=qnxm,
++#
++# Monochrome QNX4 terminal or console. Setting this terminal type will
++# allow an application running on a color console to behave as if it
++# were a monochrome terminal. Output will be through stdout instead of
++# console writes because the term routines will recognize that the
++# terminal name starts with 'qnxt'.
++#
++qnxtmono|Monochrome QNX4 terminal or console,
++ colors@, pairs@,
++ scp@, use=qnx4,
+
+-# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
+-# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
+-# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
+-# that this works best with a stock vt100 entry.
+-dec-vt100|EWAN telnet's vt100 emulation,
+- use=vt100,
+-
+-# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
+-dec-vt220|DOS tnvt200 terminal emulator,
+- am@, use=vt220,
+-
+-# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
+-# anyone who needs PC VT340 emulation. (or anything below that level, for
+-# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
+-# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
+-# I can send the address if requested.
+-# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
+-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+-z340|zstem vt340 terminal emulator 132col 42line,
+- lines#42,
+- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
+- use=vt320-w,
+-z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
+- am@,
+- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
+- use=z340,
+-
+-# CRT is shareware. It implements some xterm features, including mouse.
+-crt|crt-vt220|CRT 2.3 emulating VT220,
+- bce, msgr,
+- ncv@,
+- hts=\EH, use=vt100+enq, use=vt220, use=ecma+color,
++# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
++# (esr: commented out <scp> and <rmcup> to avoid warnings.)
++# (TD: derive from original qnx4 entry)
++qnxt2|qnx 2.15 serial terminal,
++ am,
++ civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
++ rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
+
+-# PuTTY 0.55 (released 3 August 2004)
+-# http://www.chiark.greenend.org.uk/~sgtatham/putty/
++# QNX ANSI terminal definition
++qansi-g|QNX ANSI,
++ am, eslok, hs, xon,
++ colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
++ acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
++ el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
++ fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
++ ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
++ is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
++ kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
++ kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
++ kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
++ kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
++ kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
++ kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
++ kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
++ kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
++ kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~,
++ kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~,
++ kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~,
++ kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~,
++ kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~,
++ kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
++ kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
++ kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
++ khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
++ kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
++ kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
++ kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
++ ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T,
++ rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
++ rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g,
++ tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
+ #
+-# Comparing with 0.51, vttest is much better (only a few problems with the
+-# cursor position reports and wrapping).
++qansi|QNX ansi with console writes,
++ daisy, xhpa, use=qansi-g,
+ #
+-# PuTTY 0.51 (released 14 December 2000)
++qansi-t|QNX ansi without console writes,
++ crxm, use=qansi,
+ #
+-# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as
+-# well as SCO and Atari, color palettes from Linux console). Reading the code,
+-# it is intended to be VT102 plus selected features. By default, it sets $TERM
+-# to xterm, which is incorrect, since several features are misimplemented:
++qansi-m|QNX ansi with mouse,
++ maddr#1,
++ chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
++ mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
++ mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
++ smicm=\E[>2h, use=qansi,
+ #
+-# Alt+key always sends ESC+key, so 'km' capability is removed.
++qansi-w|QNX ansi for windows,
++ xvpa, use=qansi-m,
++
++#### SCO consoles
++
++# SCO console and SOS-Syscons console for 386bsd
++# (scoansi: had unknown capabilities
++# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
++# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
++# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
++# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
++# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
++# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
++# on the <smacs>=\E[12m -- esr)
+ #
+-# Control responses, wrapping and tabs are buggy, failing a couple of
+-# screens in vttest.
++# klone+sgr-dumb is an error since the acsc does not match -TD
+ #
+-# xterm mouse support is not implemented (unrelease version may).
++# In this description based on SCO's keyboard(HW) manpage list of default
++# function key values:
++# F13-F24 are shifted F1-F12
++# F25-F36 are control F1-F12
++# F37-F48 are shift+control F1-F12
+ #
+-# Several features such as backspace/delete are optional; this entry documents
+-# the default behavior -TD
+-
+-putty|PuTTY terminal emulator,
+- am, bce, bw, ccc, hs, mir, msgr, xenl, xon, XT,
+- colors#8, it#8, ncv#22, pairs#64, U8#1,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+- dch=\E[%p1%dP, dch1=\E[P,
+- dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
+- dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
+- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
+- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- indn=\E[%p1%dS,
+- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
+- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
+- kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~,
+- kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+- kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+- kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
+- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
+- rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
+- rmso=\E[27m, rmul=\E[24m,
+- rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
+- s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
+- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, use=vt102+enq,
+-vt100-putty|Reset PuTTY to pure vt100,
+- rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
+- use=vt100,
+-# palette is hardcoded...
+-putty-256color|PuTTY 0.58 with xterm 256-colors,
+- initc@, use=xterm+256color, use=putty,
++# hpa/vpa work in the console, but not in scoterm:
++# hpa=\E[%p1%dG,
++# vpa=\E[%p1%dd,
++#
++# SCO's terminfo uses
++# kLFT=\E[d,
++# kRIT=\E[c,
++# which do not work (console or scoterm).
++#
++# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
++scoansi-old|SCO Extended ANSI standard crt (5.0.5),
++ OTbs, am, bce, eo, xon,
++ colors#8, cols#80, it#8, lines#25, pairs#64,
++ acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[=0;12C, dch=\E[%p1%dP,
++ dch1=\E[P, dispc=\E[=%p1%dg, dl=\E[%p1%dM, dl1=\E[M,
++ ed=\E[m\E[J, el=\E[m\E[K, el1=\E[1K, home=\E[H, ht=^I,
++ hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
++ ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbeg=\E[E, kbs=^H,
++ kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
++ kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
++ kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
++ kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
++ kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
++ kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
++ kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
++ kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
++ kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
++ kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
++ kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
++ rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
++ rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
++ smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
++scoansi-new|SCO Extended ANSI standard crt (5.0.6),
++ km,
++ civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
++ cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
++ rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
++ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%e;10%;m,
++ smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
++ smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
++ smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
++ smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
++ wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
++ use=scoansi-old,
++# make this easy to change...
++scoansi|SCO Extended ANSI standard crt,
++ use=scoansi-old,
+
+-# One of the keyboard selections is "VT100+".
+-# pterm (the X11 port) uses shifted F1-F10 as F11-F20
+-putty-vt100|VT100+ keyboard layout,
+- kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ,
+- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+- kf9=\EOX, use=putty,
++#### SGI consoles
+
+-# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
+-# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator
+-# (communication program) which supports:
++# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
++# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes
++# for the application keypad mode. We have added iris-ansi-ap rather than
++# change the original to keypad mode.
+ #
+-# - Serial port connections.
+-# - TCP/IP (telnet) connections.
+-# - VT100 emulation, and selected VT200/300 emulation.
+-# - TEK4010 emulation.
+-# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
+-# Quick-VAN).
+-# - Scripts using the "Tera Term Language".
+-# - Japanese and Russian character sets.
++# (iris-ansi: added rmam/smam based on init string -- esr)
+ #
+-# The program does not come with terminfo or termcap entries. However, the
+-# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
+-# vt52 or doublesize character support; blinking is done with color). Besides
+-# the HPA, VPA extensions it also implements CPL and CNL.
++# This entry, and those derived from it, is used in xwsh (also known as
++# winterm). Some capabilities that do not fit into the terminfo model
++# include the shift- and control-functionkeys:
+ #
+-# All of the function keys can be remapped. This description shows the default
+-# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
+-# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
+-# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
+-# kfnd Insert
+-# kslt Delete
+-# kich1 Home
+-# kdch1 PageUp
+-# kpp End
+-# knp PageDown
++# F1-F12 generate different codes when shift or control modifiers are used.
++# For example:
++# F1 \E[001q
++# shift F1 \E[013q
++# control-F1 \E[025q
+ #
+-# ANSI colors are implemented, but cannot be combined with video attributes
+-# except for reverse.
++# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
++# \EOP to \EOS. The shifted and control modifiers still do the same thing.
+ #
+-# No fonts are supplied with the program, so the acsc string is chosen to
+-# correspond with the default Microsoft terminal font.
++# The cursor keys also have different codes:
++# control-up \E[162q
++# control-down \E[165q
++# control-left \E[159q
++# control-right \E[168q
+ #
+-# Tera Term recognizes some xterm sequences, including those for setting and
+-# retrieving the window title, and for setting the window size (i.e., using
+-# "resize -s"), though it does not pass SIGWINCH to the application if the
+-# user resizes the window with the mouse.
+-teraterm2.3|Tera Term Pro,
+- km, xon@,
+- ncv#43, vt@,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
+- cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+- flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
+- il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
+- kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
+- rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m,
+- smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
+- use=klone+color, use=vt100,
+-
+-# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
+-# to choose a Windows OEM font).
++# shift-up \E[161q
++# shift-down \E[164q
++# shift-left \E[158q
++# shift-right \E[167q
+ #
+-# Testing with tack:
+-# - it does not have xenl (suppress that)
+-# - underline seems to work with color (modify ncv).
+-# Testing with vttest:
+-# - wrapping differs from vt100 (menu 1).
+-# - it recognizes xterm's X10 and normal mouse tracking, but none of the
+-# other flavors.
+-# - it recognizes the dtterm window controls for reporting size in
+-# characters and pixels.
+-# - it passes SIGWINCH.
+-teraterm4.59|Tera Term Pro,
+- bce, xenl@,
+- ncv#41,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- kmous=\E[M, use=teraterm2.3,
++# control-tab \[072q
++#
++iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
++ am,
++ cols#80, it#8, lines#40,
++ bel=^G, bold=\E[1m, clear=\E[H\E[2J,
++ cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
++ cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
++ kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
++ kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
++ kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
++ kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
++ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
++ kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
++ knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
++ kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
++ rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
++ sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
++ tbc=\E[3g,
++iris-ansi-ap|IRIS ANSI in application-keypad mode,
++ is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
++ kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
+
+-teraterm|Tera Term,
+- use=teraterm4.59,
++# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
++# (T.Dickey 98/1/24)
++iris-color|xwsh|IRIX ANSI with color,
++ ncv#33,
++ csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
++ ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
++ rmul=\E[24m, rs1=\Ec,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sitm=\E[3m, use=vt100+enq, use=klone+color,
++ use=iris-ansi-ap,
+
+-# Tested with WinNT 4.0, the telnet application assumes the screensize is
+-# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
++#### OpenBSD consoles
+ #
+-# Other notes:
+-# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
+-# for casual (occasional) use. Also fails several of the vttest screens,
+-# but that is not unusual for vt100 "emulators".
+-# b) Does not implement vt100 keypad
+-# c) Recognizes a subset of vt52 controls.
+-ms-vt100|MS telnet imitating dec vt100,
+- lines#25,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@,
+- kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, use=vt102+enq, use=vt100,
+-
+-# Tested with Windows 2000, the telnet application runs in a console window,
+-# also using 'Terminal' font.
++# From: Alexei Malinin <Alexei.Malinin@mail.ru>; October, 2011.
+ #
+-# Other notes:
+-# a) This version has no function keys or numeric keypad. Unlike the older
+-# version, the numeric keypad is entirely ignored.
+-# b) The program sets $TERM to "ansi", which of course is inaccurate.
+-ms-vt100-color|vtnt|windows 2000 ansi (sic),
++# The following terminal descriptions for the AMD/Intel PC console
++# were prepared based on information contained in the OpenBSD-4.9
++# termtypes.master and wscons(4) & vga(4) manuals (2010, November).
++#
++# Added bce based on testing with tack -TD
++# Added several capabilities to pccon+base, reading wsemul_vt100_subr.c -TD
++# Changed kbs to DEL and removed keys that duplicate stty settings -TD
++#
++pccon+keys|OpenBSD PC keyboard keys,
++ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[8~, kent=^M, kf1=\E[11~, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
++ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
++ kf9=\E[20~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ krfr=^R,
++pccon+sgr+acs0|sgr and simple ASCII pseudographics for OpenBSD PC console,
++ acsc=+>\,<-\^.v0#`+a\:f\\h#i#j+k+l+m+n+o~p-q-r-s_t+u+v+w+x|y#z#{*|!}#~o,
++ sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
++pccon+sgr+acs|sgr and default ASCII pseudographics for OpenBSD PC console,
++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ enacs=\E)0$<5>, rmacs=\E(B$<5>,
++ sgr=\E[0%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<5>,
++ sgr0=\E[m\E(B$<5>, smacs=\E(0$<5>,
++pccon+colors|ANSI colors for OpenBSD PC console,
+ bce,
+- dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
+- use=ms-vt100,
++ colors#8, pairs#64,
++ op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++pccon+base|base capabilities for OpenBSD PC console,
++ am, km, mc5i, msgr, npc, nxon, xenl, xon,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
++ dch1=\E[P, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il1=\E[L, ind=\ED, nel=\EE, rev=\E[7m, ri=\EM, rmam=\E[?7l,
++ rmso=\E[m, rs2=\Ec$<50>, smam=\E[?7h, smso=\E[7m,
++ tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
++pccon0-m|OpenBSD PC console without colors & with simple ASCII pseudographics,
++ use=pccon+base, use=pccon+sgr+acs0, use=pccon+keys,
++pccon0|OpenBSD PC console with simple ASCII pseudographics,
++ use=pccon0-m, use=pccon+colors,
++pccon-m|OpenBSD PC console without colors,
++ use=pccon+base, use=pccon+sgr+acs, use=pccon+keys,
++pccon|OpenBSD PC console,
++ use=pccon-m, use=pccon+colors,
+
+-# Based on comments from Federico Bianchi:
+-#
+-# vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different
+-# scheme for PF keys.
++#### NetBSD consoles
+ #
+-# and PuTTY wishlist:
++# pcvt termcap database entries (corresponding to release 3.31)
++# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
+ #
+-# The modifiers are represented as the codes listed above, prefixed to
+-# the normal sequences. If the modifier is pressed alone, its sequence
+-# is transmitted twice in succession. If multiple modifiers apply,
+-# they're transmitted in the order shift, control, alt.
+-#
+-# Shift \E^S
+-# Alt \E^A,
+-# Ctrl \E^C,
+-ms-vt100+|vt100+|windows XP vt100+ (sic),
+- kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@,
+- kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3,
+- kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6,
+- kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9,
+- kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@,
+- kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3,
+- kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6,
+- kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9,
+- kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@,
+- kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4,
+- kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6,
+- kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9,
+- kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5,
+- kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+,
+- knp=\E/, kpp=\E?, use=ms-vt100-color,
++# (For the terminfo master file, I translated these into terminfo syntax.
++# Then I dropped all the pseudo-HP entries. we don't want and can't use
++# the :Xs: flag. Then I split :is: into a size-independent <is1> and a
++# size-dependent <is2>. Finally, I added <rmam>/<smam> -- esr)
+
+-ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
+- use=ms-vt100+,
++# NOTE: <ich1> has been taken out of this entry. for reference, it should
++# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
++# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
++pcvtXX|pcvt vt200 emulator (DEC VT220),
++ am, km, mir, msgr, xenl,
++ it#8, vt#3,
++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS,
++ is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
++ kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
++ khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
++ nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100,
++ ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
++ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
++ rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+-# expect-5.44.1.15/example/tkterm
+-# a minimal subset of a vt100 (compare with "news-unk).
++# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
++# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
++# 50 lines entries; 80 columns
++pcvt25|dec vt220 emulation with 25 lines,
++ cols#80, lines#25,
++ is2=\E[1;25r\E[25;1H, use=pcvtXX,
++pcvt28|dec vt220 emulation with 28 lines,
++ cols#80, lines#28,
++ is2=\E[1;28r\E[28;1H, use=pcvtXX,
++pcvt35|dec vt220 emulation with 35 lines,
++ cols#80, lines#35,
++ is2=\E[1;35r\E[35;1H, use=pcvtXX,
++pcvt40|dec vt220 emulation with 40 lines,
++ cols#80, lines#40,
++ is2=\E[1;40r\E[40;1H, use=pcvtXX,
++pcvt43|dec vt220 emulation with 43 lines,
++ cols#80, lines#43,
++ is2=\E[1;43r\E[43;1H, use=pcvtXX,
++pcvt50|dec vt220 emulation with 50 lines,
++ cols#80, lines#50,
++ is2=\E[1;50r\E[50;1H, use=pcvtXX,
++
++# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
++# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
++# 50 lines entries; 132 columns
++pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
++ cols#132, lines#25,
++ is2=\E[1;25r\E[25;1H, use=pcvtXX,
++pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
++ cols#132, lines#28,
++ is2=\E[1;28r\E[28;1H, use=pcvtXX,
++pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
++ cols#132, lines#35,
++ is2=\E[1;35r\E[35;1H, use=pcvtXX,
++pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
++ cols#132, lines#40,
++ is2=\E[1;40r\E[40;1H, use=pcvtXX,
++pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
++ cols#132, lines#43,
++ is2=\E[1;43r\E[43;1H, use=pcvtXX,
++pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
++ cols#132, lines#50,
++ is2=\E[1;50r\E[50;1H, use=pcvtXX,
++
++# OpenBSD implements a color variation
++pcvt25-color|dec vt220 emulation with 25 lines and color,
++ cols#80, lines#25,
++ is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
++ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX,
++ use=ecma+color,
++
++# Terminfo entries to enable the use of the ncurses library in colour on a
++# NetBSD-arm32 console (only tested on a RiscPC).
++# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
++# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
++# typo in invis - TD
++arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
++ am, bce, msgr, xenl, xon,
++ cols#80, it#8, lines#30,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
++ clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J,
++ invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
++ kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
++ kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
++ kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
++ rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
++ rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
++ use=klone+color,
++
++arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
++ cols#132, lines#50, use=arm100,
++
++# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
++# manufactured by Sharp for the Japenese market.
++# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
++x68k|x68k-ite|NetBSD/x68k ITE,
++ cols#96, lines#32,
++ kclr=\E[9~, khlp=\E[28~, use=vt220,
++
++# <tv@pobox.com>:
++# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
+ #
+-# The missing "=" in smkx is not a typo (here), but an error in tkterm.
+-tt|tkterm|Don Libes' tk text widget terminal emulator,
+- clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ,
+- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+- kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
+- smso=\E[7m,
++# (still unfinished, but good enough so far.)
++ofcons|DNARD OpenFirmware console,
++ bw,
++ cols#80, lines#30,
++ bel=^G, blink=\2335m, bold=\2331m, clear=^L, cr=^M,
++ cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
++ cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
++ cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
++ dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
++ flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
++ il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
++ kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
++ kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
++ kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
++ kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
++ rmso=\2330m, rmul=\2330m,
++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t2%;%?%p7%t8%;%?%p1%p3%|%t;7%;m,
++ sgr0=\2330m, smso=\2337m, smul=\2334m,
+
+-#### X terminal emulators
++# NetBSD "wscons" emulator in vt220 mode.
++# This entry is based on the NetBSD termcap entry, correcting the ncv value.
++# The emulator renders underlined text in red. Colors are otherwise usable.
+ #
+-# You can add the following line to your .Xdefaults to change the terminal type
+-# set by the xterms you start up to my-xterm:
++# Testing the emulator and reading the source code (NetBSD 2.0), it appears
++# that "vt220" is inaccurate. There are a few vt220-features, but most of the
++# vt220 screens in vttest do not work with this emulator. For instance, it
++# identifies itself (primary DA response) as a vt220 with selective erase. But
++# the selective erase feature does not work. The secondary response is copied
++# from Kermit's emulation of vt220, does not correspond to actual vt220. At
++# the level of detail in a termcap, it is a passable emulator, since ECH does
++# work. Don't use it on a VMS system -TD
++wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
++ bce, msgr,
++ colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
++ civis=\E[?25l, cnorm=\E[?25h, is2=\E[r\E[25;1H,
++ kdch1=\E[3~, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
++ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
++ kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220,
++
++wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
++ km, use=wsvt25,
++
++# NetBSD 6.x still uses wscons, with minor changes (2014/02/22) -TD
+ #
+-# *termName: my-xterm
++# TERM is by default vt100 for the console, wsvt25 for other ttys.
++# Initial testing set TERM=xterm, based on comments by developers, found too
++# many differences to continue in that path. However, test-results may be
++# useful to people curious about compatibility with xterm.
+ #
+-# System administrators can change the default entry for xterm instances
+-# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either
+-# case, xterm will detect and reject an invalid terminal type, falling back
+-# to the default of xterm.
++# Testing with tack:
++# -----------------
++# Failed: cbt, bel, flash, cvvis, smul (color), blink, invis
++# There is color-bleeding in the color-pairs screen.
++# Attributes do not work with color
++# Failed: vpa/hpa
++# Failed: kf1-kf4, kf13-kf48, khome, kend
++# (effectively xterm-r6 for function-keys)
++# None of the function or cursor key-modifiers are encoded.
++# Console hangs in the smm/rmm test if TERM=xterm, does not show test
+ #
++# Testing with vttest:
++# -------------------
++# Identifies as vt220 with selective erase
++# (however, selective erase refers to DECSCA, SPA)
++# Does not implement vt52
++# Uses spaces to simulate double-size characters
++# Does not support 8-bit controls
++# Does not support VT220 reports
++# Does not support send/receive mode
++# Supports ECH (like rxvt)
++# Does not support DECSCA
++# Does not support any of the ISO-6429 cursor-movement
++# Does not support any of the ISO-6429 miscellaneous tests
++# (SL/SR also leave unexpected char on screen too)
++# Background does not change in menu 11.6.9 (SGR 22-27)
++# None of the xterm special features tests work
++netbsd6|NetBSD wscons in 25 line DEC VT100 mode,
++ kbs=\177, use=wsvt25,
+
+-# X10/6.6 11/7/86, minus alternate screen, plus (csr)
+-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
+-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
+-# as these seem not to work -- esr)
+-x10term|vs100-x10|xterm terminal emulator (X10 window system),
+- OTbs, am, km, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#65,
+- bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
+- smso=\E[7m, smul=\E[4m,
+-# Compatible with the R5 xterm
+-# (from the XFree86 3.2 distribution, <blink=@> removed)
+-# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
+-# corrected typos in rs2 string - TD
+-# added u6-u9 -TD
+-xterm-r5|xterm R5 version,
+- OTbs, am, km, msgr, xenl,
+- cols#80, it#8, lines#24,
+- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
++# DECstation/pmax.
++rcons|BSD rasterconsole,
++ use=sun-il,
++# Color version of above. Color currently only provided by NetBSD.
++rcons-color|BSD rasterconsole with ANSI color,
++ bce,
++ colors#8, pairs#64,
++ op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
++
++# mgterm -- MGL/MGL2, MobileGear Graphic Library
++# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
++# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
++# -- compare with cons25w
++mgterm,
++ OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
++ colors#8, cols#80, it#8, lines#18, pairs#64,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
+- kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
+- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+- kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8,
+- rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
+- rmul=\E[m,
+- rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
+- sc=\E7,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+- sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, use=vt100+enq,
+-# Compatible with the R6 xterm
+-# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
+-# added khome/kend, hts based on the R6 xterm code - TD
+-# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
+-# for compatibility with other emulators).
+-xterm-r6|xterm-old|xterm X11R6 version,
+- OTbs, am, km, mir, msgr, xenl,
+- cols#80, it#8, lines#24,
+- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
+- il1=\E[L, ind=^J,
+- is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+- kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
+- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- use=vt100+enq,
+-# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
+-# The name has been changed and some aliases have been removed.
+-xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
+- OTbs, am, bce, km, mir, msgr, xenl,
+- cols#80, it#8, lines#24, ncv@,
+- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+- il1=\E[L, ind=^J,
+- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
+- kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
+- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+- kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
+- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
+- memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
+- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
+- rmso=\E[27m, rmul=\E[24m, rs1=^O,
+- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
+- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
+- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
+- use=ecma+color, use=vt220+keypad,
+-
+-# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
+-# codes for F1-F4 except while in VT220 mode.
+-xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
+-
+-# This version was released in XFree86 3.3.3 (November 1998).
+-# Besides providing printer support, it exploits a new feature that allows
+-# xterm to use terminfo-based descriptions with the titeInhibit resource.
+-# -- the distribution contained incorrect khome/kend values -TD
+-xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
+- mc5i,
+- blink=\E[5m, ich1@, invis=\E[8m,
+- is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
+- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
+- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
+-
+-# This version was released in XFree86 4.0.
+-xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
+- npc,
+- kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
+- kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
+- ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
+- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
+- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
+- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
+- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
+- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
+- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
+- kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
+- kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
+- kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
+- kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- smcup=\E[?1049h, use=xterm-xf86-v333,
+-
+-# This version was released in XFree86 4.3.
+-xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
+- kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
+- kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
+- kbeg@,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- use=xterm-xf86-v40,
+-
+-# This version was released in XFree86 4.4.
+-xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
+- cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
+- rin=\E[%p1%dT, use=xterm-xf86-v43,
+-
+-xterm-xfree86|xterm terminal emulator (XFree86),
+- use=xterm-xf86-v44,
+-
+-# This version reflects the current xterm features.
+-xterm-new|modern xterm terminal emulator,
+- npc,
+- indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
+- kIC=\E[2;2~, kNXT=\E[6;2~, kPRV=\E[5;2~, kb2=\EOE,
+- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kend=\EOF, kent=\EOM, khome=\EOH, kich1=\E[2~, kmous=\E[M,
+- knp=\E[6~, kpp=\E[5~, rin=\E[%p1%dT, use=xterm+pcfkeys,
+- use=xterm-basic,
+-#
+-# This fragment describes as much of XFree86 xterm's "pc-style" function
+-# keys as will fit into terminfo's 60 function keys.
+-# From ctlseqs.ms:
+-# Code Modifiers
+-# ---------------------------------
+-# 2 Shift
+-# 3 Alt
+-# 4 Shift + Alt
+-# 5 Control
+-# 6 Shift + Control
+-# 7 Alt + Control
+-# 8 Shift + Alt + Control
+-# ---------------------------------
+-# The meta key may also be used as a modifier in this scheme, adding another
+-# bit to the parameter.
+-xterm+pcfkeys|fragment for PC-style fkeys,
+- use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
+- use=xterm+pce2,
+-#
+-xterm+noapp|fragment with cursor keys in normal mode,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
+- khome=\E[H,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
++ indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
++ kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N,
++ kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
++ kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I,
++ nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
++ rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm,
++ setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
+
+-xterm+app|fragment with cursor keys in application mode,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
+- khome=\EOH,
+-#
+-# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
+-# and revised in patch #167 (2002/8/24). Some other terminal emulators copied
+-# the earlier scheme, as noted in the "use=" clauses in this file.
++#### FreeBSD console entries
+ #
+-# The original assignments from patch #94 for cursor-keys had some technical
+-# issues:
++# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
++# Andrey Chernov maintains the FreeBSD termcap distributions.
+ #
+-# A parameter for a function-key to represent a modifier is just more
+-# bits. But for a cursor-key it may change the behavior of the
+-# application. For instance, emacs decodes the first parameter of a
+-# cursor-key as a repeat count.
++# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
++# or comment out the :cb: capability in the console entry.
+ #
+-# A parameterized string should (really) not begin with SS3 (\EO).
+-# Rather, CSI (\E[) should be used.
++# Alexander Lukyanov reports:
++# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
++# Now el1 clears not only to the line beginning, but also a large chunk
++# of previous line. But there is another bug - ech does not work at all.
+ #
+-# For these reasons, the original assignments were deprecated. For
+-# compatibility reasons, they are still available as a setting of xterm's
+-# modifyCursorKeys resource. These fragments list the modified cursor-keys
+-# that might apply to xterm+pcfkeys with different values of that resource.
+-xterm+pcc3|fragment with modifyCursorKeys:3,
+- kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
+- kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
+- kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
+- kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
+- kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
+- kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
+- kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
+- kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
+- kUP7=\E[>1;7A,
+-
+-xterm+pcc2|fragment with modifyCursorKeys:2,
+- kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
+- kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
+- kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
+- kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
+- kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
+- kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
+- kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
+-
+-xterm+pcc1|fragment with modifyCursorKeys:1,
+- kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
+- kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
+- kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
+- kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
+- kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
+- kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
+-
+-xterm+pcc0|fragment with modifyCursorKeys:0,
+- kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
+- kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
+- kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
+- kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
+- kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
+- kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
+
++# for syscons
++# common entry without semigraphics
++# Bug: The <op> capability resets attributes.
++# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
++# instance el1 does if the cursor is moved to the right margin first. Removed
++# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
+ #
+-# Here are corresponding fragments from xterm patch #216:
++# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
++# Note that this disables standout with color.
+ #
+-xterm+pcf0|fragment with modifyFunctionKeys:0,
+- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
+- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
+- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
+- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR,
+- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
+- kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
+- kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
+- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
+- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
+- kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
+- kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
+- kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
+- kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
+- kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++# The emulator sends difference strings based on shift- and control-keys,
++# like scoansi:
++# F13-F24 are shifted F1-F12
++# F25-F36 are control F1-F12
++# F37-F48 are shift+control F1-F12
++cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
++ am, bce, bw, eo, msgr, npc,
++ colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
++ cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
++ indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
++ kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
++ kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
++ kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
++ kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
++ kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
++ kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
++ kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
++ kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
++ kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
++ kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
++ knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m,
++ ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
++ sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
++cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
++ acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
++ use=cons25w,
++cons25-debian|freebsd console with debian backspace (25-line ansi mode),
++ kbs=\177, kdch1=\E[3~, use=cons25,
++cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
++ colors@, pairs@,
++ bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
++ smul=\E[4m, use=cons25,
++cons30|ansi80x30|freebsd console (30-line ansi mode),
++ lines#30, use=cons25,
++cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
++ lines#30, use=cons25-m,
++cons43|ansi80x43|freebsd console (43-line ansi mode),
++ lines#43, use=cons25,
++cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
++ lines#43, use=cons25-m,
++cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
++ lines#50, use=cons25,
++cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
++ lines#50, use=cons25-m,
++cons60|ansi80x60|freebsd console (60-line ansi mode),
++ lines#60, use=cons25,
++cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
++ lines#60, use=cons25-m,
++cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
++ acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
++ use=cons25w,
++cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
++ colors@, pairs@,
++ op@, rmul=\E[m, setab@, setaf@,
++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
++ smul=\E[4m, use=cons25r,
++cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
++ lines#50, use=cons25r,
++cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
++ lines#50, use=cons25r-m,
++cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
++ lines#60, use=cons25r,
++cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
++ lines#60, use=cons25r-m,
++# ISO 8859-1 FreeBSD console
++cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
++ acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237,
++ use=cons25w,
++cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
++ colors@, pairs@,
++ bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
++ smul=\E[4m, use=cons25l1,
++cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
++ lines#50, use=cons25l1,
++cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
++ lines#50, use=cons25l1-m,
++cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
++ lines#60, use=cons25l1,
++cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
++ lines#60, use=cons25l1-m,
++
++# Starting with FreeBSD 8, an alternative configuration for syscons is provided,
++# which is intended to be xterm-compatible. See for example
++# http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/
++# in particular scterm-teken.c
+ #
+-xterm+pcf2|fragment with modifyFunctionKeys:2,
+- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
+- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
+- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
+- kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
+- kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
+- kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
+- kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
+- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
+- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
+- kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
+- kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
+- kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
+- kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
+- kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~,
++# For FreeBSD 9 and 10:
++# --------------------
++# The /etc/ttys entries for console and other ttys are all configured to set
++# TERM=xterm.
+ #
+-# Chunks from xterm #230:
+-xterm+pce2|fragment with modifyCursorKeys:2,
+- kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
+- kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
+- kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
+- kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
+- kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
+- kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
+- kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
+- kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
+- kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
+- kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
+- kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
+- use=xterm+edit,
++# Testing with tack:
++# There is no VT100 line-drawing (uses +'s and -'s)
++# Shifted f1-f12 give cons25 codes, rather than xterm function-keys
++#
++# Testing with vttest:
++# Menu 2 diamonds don't work, blink ditto, light background ditto
++# The terminal identifies itself as VT100 with AVO
++# There is no VT52 support
++# There is no doublesize character support
++# The terminal supports ECH (like rxvt)
++# The terminal does not support send/receive mode
++# The terminal supports all of the ISO-6429 cursor-movement
++# The terminal supports some of the ISO-6429 miscellaneous tests
++# (SL/SR also leave unexpected char on screen too)
++#
++# Considering cons25 as a base, the line-drawing mostly works, but is missing
++# the cells which happen to have ASCII control-character values:
++# - ^X arrow pointing up
++# . ^Y arrow pointing down
++# i ^Y lantern
++# ` ^D diamond
++#
++# Those are removed from this entry's acsc string to avoid confusion.
++# The resulting description provides correct line-drawing and function-keys -TD
++teken|syscons with teken,
++ bw@, mir, xenl,
++ acsc=0\333a\260f\370g\361h\261j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
++ civis=\E[?25l, cnorm=\E[?25h, cvvis@, hpa=\E[%i%p1%dG,
++ hts=\EH, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[F, kent=^M, kf1=\EOP, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmir=\E[4l,
++ smir=\E[4h, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
++ u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd, use=cons25,
+
+-xterm+edit|fragment for 6-key editing-keypad,
+- kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- use=xterm+pc+edit,
++#### 386BSD and BSD/OS Consoles
++#
+
+-xterm+pc+edit|fragment for pc-style editing keypad,
+- kend=\E[4~, khome=\E[1~,
++# This was the original 386BSD console entry (I think).
++# Some places it's named oldpc3|oldibmpc3.
++# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
++origpc3|origibmpc3|IBM PC 386BSD Console,
++ OTbs, am, bw, eo, xon,
++ cols#80, lines#25,
++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
++ bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
++ rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
++ smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
+
+-xterm+vt+edit|fragment for vt220-style editing keypad,
+- kfnd=\E[1~, kslt=\E[4~,
++# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
++oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
++ OTbs, km,
++ lines#25,
++ bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M,
++ ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
++ knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R,
+
+-#
+-# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
+-# Alternatively, the same scheme with old-style function keys as in xterm-r6
+-# is shown here (because that is used in mrxvt and mlterm):
+-xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
+- kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
+- kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
+- kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
+- kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
+- kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
+- kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
+- kf63=\E[13;4~, use=xterm+pcf2,
+-#
+-# This chunk is used for building the VT220/Sun/PC keyboard variants.
+-xterm-basic|modern xterm terminal emulator - common,
+- OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
+- colors#8, cols#80, it#8, lines#24, pairs#64,
+- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
++# Note, the emulator supports many of the additional console features
++# listed in the iBCS2 (e.g. character-set selection) though not all
++# are described here. This entry really ought to be upgraded.
++# Also note, the console will also work with fewer lines after doing
++# "stty rows NN", e.g. to use 24 lines.
++# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
++# Bug: The <op> capability resets attributes.
++bsdos-pc|IBM PC BSD/OS Console,
++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
++ use=bsdos-pc-nobold,
++
++bsdos-pc-nobold|BSD/OS PC console w/o bold,
++ use=klone+color, use=bsdos-pc-m,
++
++bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
++ OTbs, am, eo, km, xon,
++ cols#80, it#8, lines#25,
++ bel=^G, clear=\Ec, cr=^M, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+- ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
+- kmous=\E[M, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
+- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m,
+- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+- sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
+- smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
++ kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7,
++ sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;,
++ use=klone+sgr8,
+
+-# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
+-# In retrospect, something like xterm-r6 was intended here -TD
+-xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
+- rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
++# Old names for BSD/OS PC console used in releases before 4.1.
++pc3|BSD/OS on the PC Console,
++ use=bsdos-pc-nobold,
++ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
++ use=bsdos-pc,
+
+-# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+-# If configured to support 88- or 256-colors (which is fairly common in 2009),
+-# xterm also recognizes the control sequences for initc -TD
+-xterm-16color|xterm with 16 colors like aixterm,
+- ccc,
+- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
+- use=ibm+16color, use=xterm-new,
++# BSD/OS on the SPARC
++bsdos-sparc|Sun SPARC BSD/OS Console,
++ use=sun,
+
+-# 256-colors is a compile-time feature of XFree86 xterm beginning with
+-# patch #111 (1999/7/10) -TD
+-xterm+256color|xterm 256-color feature,
+- ccc,
+- colors#256, pairs#32767,
+- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
+- setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
+- setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
+- setb@, setf@,
++# BSD/OS on the PowerPC
++bsdos-ppc|PowerPC BSD/OS Console,
++ use=bsdos-pc,
+
+-# 88-colors is a compile-time feature of XFree86 xterm beginning with
+-# patch #115 (1999/9/18) -TD
++
++#### DEC VT52
++# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
+ #
+-# Note that the escape sequences used are the same as for 256-colors - xterm
+-# has a different table of default color resource values. If built for
+-# 256-colors, it can still handle an 88-color palette by using the initc
+-# capability.
++# Actually (TD pointed this out at the time the acsc string was added):
++# vt52 shouldn't define full acsc since most of the cells don't match.
++# see vt100 manual page A-31. This is the list that does match:
++# f degree
++# g plus/minus
++# h right-arrow
++# k down-arrow
++# m scan-1
++# o scan-3
++# q scan-5
++# s scan-7
++# The line-drawing happens to work in several terminal emulators, but should
++# not be used as a guide to the capabilities of the vt52. Note in particular
++# that vt52 does not support line-drawing characters (the scan-X values refer
++# to a crude plotting feature) -TD
++vt52|dec vt52,
++ OTbs,
++ cols#80, it#8, lines#24,
++ acsc=+h.k0affggolpnqprrss, bel=^G, clear=\EH\EJ, cr=^M,
++ cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
++ el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
++
++#### DEC VT100 and compatibles
+ #
+-# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
+-# which support the xterm+256color feature support the associated initc
+-# capability. So it is cancelled in the entries which use this and/or the
+-# xterm+256color block.
++# DEC terminals from the vt100 forward are collected here. Older DEC terminals
++# and micro consoles can be found in the `obsolete' section. More details on
++# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
++# found near the end of this file.
+ #
+-# The default color palette for the 256- and 88-colors are different. A
+-# given executable will have one palette (perhaps compiled-in). If the program
+-# supports xterm's control sequence, it can be programmed using initc.
+-xterm+88color|xterm 88-color feature,
+- colors#88, pairs#7744, use=xterm+256color,
+-
+-# These variants of XFree86 3.9.16 xterm are built as a configure option.
+-xterm-256color|xterm with 256 colors,
+- use=xterm+256color, use=xterm-new,
+-xterm-88color|xterm with 88 colors,
+- use=xterm+88color, use=xterm-256color,
+-
+-# These two are used to demonstrate the any-event mouse support, i.e., by
+-# using an extended name "XM" which tells ncurses to put the terminal into
+-# a special mode when initializing the xterm mouse.
+-xterm-1002|testing xterm-mouse,
+- XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new,
+-xterm-1003|testing xterm-mouse,
+- XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
+-
+-# This 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.
++# Except where noted, these entries are DEC's official terminfos.
++# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
++# Engineering for more information. Updated terminfos and termcaps
++# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
+ #
+-# HTS \E H \210
+-# RI \E M \215
+-# SS3 \E O \217
+-# CSI \E [ \233
++# In October 1995 DEC sold its terminals business, including the VT and Dorio
++# line and trademark, to SunRiver Data Systems. SunRiver has since changed
++# its name to Boundless Technologies; see http://www.boundless.com.
+ #
+-xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
+- OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
+- colors#8, cols#80, it#8, lines#24, pairs#64,
+- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
+- civis=\233?25l, clear=\233H\2332J,
+- cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr,
+- cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J,
+- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
+- cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h,
+- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
+- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
+- flash=\233?5h$<100/>\233?5l, home=\233H,
+- hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
+- il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
+- is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
+- ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
+- kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
+- kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
+- kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
+- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
+- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
+- kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
+- kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
+- kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
+- knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
+- meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
+- ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
+- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
+- rs1=\Ec,
+- rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
+- sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
+- setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
+- smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
+- smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
+- u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
+-
+-xterm-hp|xterm with hpterm function keys,
+- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
+- kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
+- knp=\ES, kpp=\ET, use=xterm-basic,
+-
+-xterm-sco|xterm with SCO function keys,
+- kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
+- kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
+- kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
+- kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
+- kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
+- kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
+- kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
+- kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
+- kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
+- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
+- kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
+- use=xterm-basic,
+
+-# The xterm-new description has all of the features, but is not completely
+-# compatible with vt220. If you are using a Sun or PC keyboard, set the
+-# sunKeyboard resource to true:
+-# + maps the editing keypad
+-# + interprets control-function-key as a second array of keys, so a
+-# 12-fkey keyboard can support vt220's 20-fkeys.
+-# + maps numeric keypad "+" to ",".
+-# + uses DEC-style control sequences for the application keypad.
++# NOTE: Any VT100 emulation, whether in hardware or software, almost
++# certainly includes what DEC called the `Level 1 editing extension' codes;
++# only the very oldest VT100s lacked these and there probably aren't any of
++# those left alive. To capture these, use one of the VT102 entries.
+ #
+-xterm-vt220|xterm emulating vt220,
+- kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+- use=xterm+app, use=xterm+edit, use=xterm-basic,
+- use=vt220+keypad,
+-
+-xterm-vt52|xterm emulating dec vt52,
+- cols#80, it#8, lines#24,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
+- home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
+-
+-xterm-noapp|xterm with cursor keys in normal mode,
+- rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
+- use=xterm,
+-
+-xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
+- lines#24, use=xterm-old,
+-
+-# This is xterm for ncurses.
+-xterm|xterm terminal emulator (X Window System),
+- use=xterm-new,
+-
+-# This entry assumes that xterm's handling of VT100 SI/SO is disabled by
+-# setting the vt100Graphics resource to false.
+-xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
+- U8#1, use=xterm,
+-
+-# These entries allow access to the X titlebar and icon name as a status line.
+-# Note that twm (and possibly window managers descended from it such as tvtwm,
+-# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
+-# with it.
+-xterm+sl|access X title line and icon name,
+- hs,
+- wsl#40,
+- dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
+-xterm+sl-twm|access X title line (pacify twm-descended window managers),
+- hs,
+- wsl#40,
+- dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
+-
++# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept,
++# since the cursor is left in a different position while in the
++# weird state (concept at beginning of next line, vt100 at end
++# of this line) so all versions of vi before 3.7 don't handle
++# <xenl> right on vt100. The correct way to handle <xenl> is when
++# you output the char in column 80, immediately output CR LF
++# and then assume you are in column 1 of the next line. If <xenl>
++# is on, am should be on too.
+ #
+-# The following xterm variants don't depend on your base version
++# I assume you have smooth scroll off or are at a slow enough baud
++# rate that it doesn't matter (1200? or less). Also this assumes
++# that you set auto-nl to "on", if you set it off use vt100-nam
++# below.
+ #
+-# xterm with bold instead of underline
+-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
+- smso=\E[7m, smul=\E[1m, use=xterm-old,
+-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
+-# (kterm should not invoke DEC Graphics as the alternate character set
+-# -- Kenji Rikitake)
+-# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
+-# -- MATSUMOTO Shoji)
+-# kterm implements acsc via built-in table of X Drawable's
+-kterm|kterm kanji terminal emulator (X window system),
+- eslok, hs, XT,
+- ncv@,
+- acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
+- csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
+- kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
+- tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
+-kterm-color|kterm-co|kterm with ANSI colors,
+- ncv@, use=kterm, use=ecma+color,
+-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
+- ich@, ich1@, use=xterm,
+-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
+-xterm1|xterm terminal emulator ignoring the alternate screen buffer,
+- rmcup@, smcup@, use=xterm,
+-
+-# This describes the capabilities of color_xterm, an xterm variant from
+-# before ECMA-64 color support was folded into the main-line xterm release.
+-# This entry is straight from color_xterm's maintainer.
+-# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
+-# The README's with the distribution also say that it supports SGR 21, 24, 25
+-# and 27, but they are not present in the terminfo or termcap.
+-color_xterm|cx|cx100|color_xterm color terminal emulator for X,
+- OTbs, am, km, mir, msgr, xenl, XT,
+- cols#80, it#8, lines#65, ncv@,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
+- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
+- kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
+- rmso=\E[27m, rmul=\E[24m,
+- rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
+- smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
+- smul=\E[4m, use=ecma+color, use=vt220+keypad,
+-
+-# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
+-# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
+-# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
+-# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
+-# that each of those implements the home, end, delete keys differently.
++# The padding requirements listed here are guesses. It is strongly
++# recommended that xon/xoff be enabled, as this is assumed here.
+ #
+-# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
+-# colors; note that this is not compatible with the 5.2 version.
+-# csw (2002-05-15): make xterm-color primary instead of nxterm, to
+-# match XFree86's xterm.terminfo usage and prevent circular links
+-xterm-color|nxterm|generic color xterm,
+- ncv@,
+- op=\E[m, use=xterm-r6, use=klone+color,
+-
+-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
+-gnome-rh62|Gnome terminal,
+- bce,
+- kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+- use=xterm-color,
+-
+-# GNOME Terminal 1.4.0.4 (Redhat 7.2)
+-#
+-# This implements a subset of vt102 with a random selection of features from
+-# other terminals such as color and function-keys.
++# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the
++# tab settings are in non-volatile memory and don't need to be
++# reset upon login. Also setting the number of columns glitches
++# the screen annoyingly. You can type "reset" to get them set.
+ #
+-# shift-f1 to shift-f10 are f11 to f20
++# The VT100 series terminals have cursor ("arrows") keys which can operate
++# in two different modes: Cursor Mode and Application Mode. Cursor Mode
++# is the reset state, and is assumed to be the normal state. Application
++# Mode is the "set" state. In Cursor Mode, the cursor keys transmit
++# "Esc [ {code}" sequences, conforming to ANSI standards. In Application
++# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode
++# was provided primarily as an aid to the porting of VT52 applications. It is
++# assumed that the cursor keys are normally in Cursor Mode, and expected that
++# applications such as vi will always transmit the <smkx> string. Therefore,
++# the definitions for the cursor keys are made to match what the terminal
++# transmits after the <smkx> string is transmitted. If the <smkx> string
++# is a null string or is not defined, then cursor keys are assumed to be in
++# "Cursor Mode", and the cursor keys definitions should match that assumption,
++# else the application may fail. It is also expected that applications will
++# always transmit the <rmkx> string to the terminal before they exit.
+ #
+-# NumLock changes the application keypad to approximate vt100 keypad, except
+-# that there is no escape sequence matching comma (,).
++# The VT100 series terminals have an auxiliary keypad, commonly referred to as
++# the "Numeric Keypad", because it is a cluster of numeric and function keys.
++# The Numeric Keypad which can operate in two different modes: Numeric Mode and
++# Application Mode. Numeric Mode is the reset state, and is assumed to be
++# the normal state. Application Mode is the "set" state. In Numeric Mode,
++# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
++# Enter key transmits the same as the Return key (Note: the Return key
++# can be configured to send either LF (\015) or CR LF). In Application Mode,
++# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys
++# always send the same "Esc O {code}" sequences. It is assumed that the keypad
++# is normally in Numeric Mode. If an application requires that the keypad be
++# in Application Mode then it is expected that the user, or the application,
++# will set the TERM environment variable to point to a terminfo entry which has
++# defined the <smkx> string to include the codes that switch the keypad into
++# Application Mode, and the terminfo entry will also define function key
++# fields to match the Application Mode control codes. If the <smkx> string
++# is a null string or is not defined, then the keypad is assumed to be in
++# Numeric Mode. If the <smkx> string switches the keypad into Application
++# Mode, it is expected that the <rmkx> string will contain the control codes
++# necessary to reset the keypad to "Normal" mode, and it is also expected that
++# applications which transmit the <smkx> string will also always transmit the
++# <rmkx> string to the terminal before they exit.
+ #
+-# Other defects observed:
+-# vt100 LNM mode is not implemented.
+-# vt100 80/132 column mode is not implemented.
+-# vt100 DECALN is not implemented.
+-# vt100 DECSCNM mode is not implemented, so flash does not work.
+-# vt100 TBC (tab reset) is not implemented.
+-# xterm alternate screen controls do not restore cursor position properly
+-# it hangs in tack after running function-keys test.
+-gnome-rh72|GNOME Terminal,
+- bce, km@,
+- civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color,
+-
+-# GNOME Terminal 2.0.1 (Redhat 8.0)
++# Here's a diagram of the VT100 keypad keys with their bindings.
++# The top line is the name of the key (some DEC keyboards have the keys
++# labelled somewhat differently, like GOLD instead of PF1, but this is
++# the most "official" name). The second line is the escape sequence it
++# generates in Application Keypad mode (where "$" means the ESC
++# character). The third line contains two items, first the mapping of
++# the key in terminfo, and then in termcap.
++# _______________________________________
++# | PF1 | PF2 | PF3 | PF4 |
++# | $OP | $OQ | $OR | $OS |
++# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
++# | 7 8 9 - |
++# | $Ow | $Ox | $Oy | $Om |
++# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
++# | 4 | 5 | 6 | , |
++# | $Ot | $Ou | $Ov | $Ol |
++# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
++# | 1 | 2 | 3 | |
++# | $Oq | $Or | $Os | enter |
++# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM |
++# | 0 | . | |
++# | $Op | $On | |
++# |___kc1_______K4____|_kc3__K5_|_kent_@8_|
+ #
+-# Documentation now claims it implements vt220 (which is demonstrably false).
+-# However, it does implement ECH, which is a vt220 feature. And there are
+-# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display
+-# more of its bugs using vttest.
++# 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,
+ #
+-# However, note that bce and msgr are broken in this release. Tabs (tbc and
+-# hts) are broken as well. Sometimes flash (as in xterm-new) works.
++# 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_|
+ #
+-# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
+-# operations. Shift-tab generates a distinct sequence so it can be argued
+-# that it implements kcbt.
+-gnome-rh80|GNOME Terminal,
+- bce@, msgr@,
+- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177,
+- kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
+-
+-# GNOME Terminal 2.2.1 (Redhat 9.0)
++vt220+keypad|dec vt220 numeric keypad,
++ ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, ka2=\EOx, kb1=\EOt,
++ kb3=\EOv, kc2=\EOr,
+ #
+-# bce and msgr are repaired.
+-gnome-rh90|GNOME Terminal,
+- bce, msgr,
+- hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
+- kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
+- vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
+- use=gnome-rh80,
+-
+-# GNOME Terminal 2.14.2 (Fedora Core 5)
+-# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002.
+-gnome-fc5|GNOME Terminal,
+- rs1=\Ec,
+- rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+- use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
+-
+-# GNOME Terminal 2.18.1 (2007 snapshot)
++vt100+enq|ncurses extension for vt100-style ENQ,
++ u8=\E[?1;2c, use=ansi+enq,
++vt102+enq|ncurses extension for vt102-style ENQ,
++ u8=\E[?6c, use=ansi+enq,
+ #
+-# For any "recent" version of gnome-terminal, it is futile to attempt to
+-# support modifiers on cursor- and keypad keys because the program usually
+-# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
+-# of the keys (which more/less correspond to the termcap values), and will
+-# interpret those according to the $TERM value, but others not in the
+-# terminfo according to some constantly changing set of hacker guidelines -TD
+-vte-2007|VTE in GNOME Terminal snapshot 2.18.1,
+- use=xterm+pcc2, use=gnome-fc5,
+-gnome-2007|GNOME Terminal snapshot 2.18.1,
+- use=vte-2007,
+-
+-# GNOME Terminal 2.22.3 (2008 snapshot)
++# And here, for those of you with orphaned VT100s lacking documentation, is
++# a description of the soft switches invoked when you do `Set Up'.
+ #
+-# In vttest, it claims to be a vt220 with national replacement character-sets,
+-# but aside from the identifier string, implements only a small fraction of
+-# vt220's behavior, which will make it less usable on a VMS system (unclear
+-# what the intent of the developer is, since the NRC feature exposed in vttest
+-# by this change does not work).
+-vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
+- use=vte+pcfkeys, use=vte-2007,
+-gnome-2008|GNOME Terminal snapshot 2.22.3,
+- use=vte-2008,
+-
+-# GNOME terminal may automatically use the contents of the "xterm" terminfo to
+-# supply key information which is not built into the program. With 2.22.3,
+-# this list is built into the program (which addresses the inadvertant use of
+-# random terminfo data, though using a set of values which does not correspond
+-# to any that xterm produces - still not solving the problem that GNOME
+-# terminal hardcodes the $TERM variable as "xterm").
++# Scroll 0-Jump Shifted 3 0-#
++# | 1-Smooth | 1-British pound sign
++# | Autorepeat 0-Off | Wrap Around 0-Off
++# | | 1-On | | 1-On
++# | | Screen 0-Dark Bkg | | New Line 0-Off
++# | | | 1-Light Bkg | | | 1-On
++# | | | Cursor 0-Underline | | | Interlace 0-Off
++# | | | | 1-Block | | | | 1-On
++# | | | | | | | |
++# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
++# | | | | | | | |
++# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
++# | | | 1-On | | | 1-50 Hz
++# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
++# | | 1-ANSI | | 1-8 Bits
++# | Keyclick 0-Off | Parity 0-Off
++# | 1-On | 1-On
++# Margin Bell 0-Off Parity Sense 0-Odd
++# 1-On 1-Even
+ #
+-# terminfo modifier code keys
+-# kf13-kf24 shift 2 F1 to F12
+-# kf25-kf36 control 5 F1 to F12
+-# kf37-kf48 shift/control 6 F1 to F12
+-# kf49-kf60 alt 3 F1 to F12
+-# kf61-kf63 shift-alt 4 F1 to F3
++# The following SET-UP modes are assumed for normal operation:
++# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
++# WRAP_AROUND_ON JUMP_SCROLL_OFF
++# Other SET-UP modes may be set for operator convenience or communication
++# requirements; I recommend
++# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
++# Unless you have a graphics add-on such as Digital Engineering's VT640
++# (and even then, whenever it can be arranged!) you should set
++# INTERLACE_OFF
+ #
+-# The parameters with \EO (SS3) are technically an error, since SS3 should have
+-# no parameters. This appears to be rote copying based on xterm+pcc0.
+-vte+pcfkeys|VTE's variation on xterm+pcfkeys,
+- kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
+- kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
+- kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
+- kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
+- kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
+- kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
+- use=xterm+pcfkeys,
+-gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
+- use=vte+pcfkeys,
+-
+-vte|VTE aka GNOME Terminal,
+- use=vte-2008,
+-gnome|GNOME Terminal,
+- use=vte,
+-
+-# palette is hardcoded...
+-vte-256color|VTE with xterm 256-colors,
+- initc@, use=xterm+256color, use=vte,
+-gnome-256color|GNOME Terminal with xterm 256-colors,
+- use=vte-256color,
++# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
++vt100|vt100-am|dec vt100 (w/advanced video),
++ OTbs, am, mc5i, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
++ clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
++ lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
++ rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
++ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
++ use=vt100+fnkeys,
++vt100nam|vt100-nam|vt100 no automargins,
++ am@, xenl@, use=vt100-am,
++vt100-vb|dec vt100 (w/advanced video) & no beep,
++ bel@, flash=\E[?5h\E[?5l, use=vt100,
+
+-# XFCE Terminal 0.2.5.4beta2
+-#
+-# This is based on some of the same source code, e.g., the VTE library, as
+-# gnome-terminal, but has fewer features, fails more screens in vttest.
+-# Since most of the terminfo-related behavior is due to the VTE library,
+-# the terminfo is the same as gnome-terminal.
+-xfce|Xfce Terminal,
+- use=vte,
++# Ordinary vt100 in 132 column ("wide") mode.
++vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
++ cols#132, lines#24,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
++vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
++ cols#132, lines#14, vt@,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
+
+-# Multi-Gnome-Terminal 1.6.2
+-#
+-# This does not use VTE, and does have different behavior (compare xfce and
+-# gnome).
+-mgt|Multi GNOME Terminal,
+- indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
++# vt100 with no advanced video.
++vt100-nav|vt100 without advanced video option,
++ xmc#1,
++ blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
++ smul@, use=vt100,
++vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
++ cols#132, lines#14, use=vt100-nav,
+
+-# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
+-# or not is debatable).
+-kvt|KDE terminal,
+- bce, km@,
+- kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color,
++# vt100 with one of the 24 lines used as a status line.
++# We put the status line on the top.
++vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
++ eslok, hs,
++ lines#23,
++ clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
++ cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8,
++ fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8,
++ tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am,
+
+-# Konsole 1.0.1
+-# (formerly known as kvt)
++# Status line at bottom.
++# Clearing the screen will clobber status line.
++vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
++ eslok, hs,
++ lines#23,
++ dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
++ tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
++
++# Most of the `vt100' emulators out there actually emulate a vt102
++# This entry (or vt102-nsgr) is probably the right thing to use for
++# these.
++vt102|dec vt102,
++ dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
++ use=vt100,
++vt102-w|dec vt102 in wide mode,
++ cols#132,
++ rs3=\E[?3h, use=vt102,
++
++# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
++# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0>
++# string in the canonical vt100 entry above leaves the screen littered
++# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
++# after highlight turnoffs. This entry should fix that, and even leave
++# ACS support working, at the cost of making multiple-highlight changes
++# slightly more expensive.
++# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
++vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
++ sgr@, sgr0=\E[m, use=vt102,
++
++# VT125 Graphics CRT. Clear screen also erases graphics
++# Some vt125's came configured with vt102 support.
++vt125|vt125 graphics terminal,
++ mir,
++ clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
++
++# This isn't a DEC entry, it came from University of Wisconsin.
++# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
++vt131|dec vt131,
++ OTbs, am, xenl,
++ cols#80, it#8, lines#24, vt#3,
++ bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
++ clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
++ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
++ ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
++ is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
++ kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
++ kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
++ rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
++ rmul=\E[m$<2/>,
++ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[7m$<2/>, smul=\E[4m$<2/>,
++
++# vt132 - like vt100 but slower and has ins/del line and such.
++# I'm told that <smir>/<rmir> are backwards in the terminal from the
++# manual and from the ANSI standard, this describes the actual
++# terminal. I've never actually used a vt132 myself, so this
++# is untested.
+ #
+-# This program hardcodes $TERM to 'xterm', which is not accurate. However, to
+-# simplify this entry (and point out why konsole isn't xterm), we base this on
+-# xterm-r6. The default keyboard appears to be 'linux'.
++vt132|DEC vt132,
++ xenl,
++ dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
++ ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
++
++# This vt220 description maps F5--F9 to the second block of function keys
++# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
++# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
++# PF1--PF4 are used as F1--F4.
+ #
+-# Notes:
+-# a) konsole implements several features from XFree86 xterm, though none of
+-# that is documented - except of course in its source code - apparently
+-# because its implementors are unaccustomed to reading documentation - as
+-# evidenced by the sparse and poorly edited documentation distributed with
+-# konsole. Some features such as the 1049 private mode are recognized but
+-# incorrectly implemented as a duplicate of the 47 private mode.
+-# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
+-# sends PC-style escapes rather than vt100.
+-# c) fails vttest menu 3 (Test of character sets) because it does not properly
+-# parse some control sequences. Also fails vttest Primary Device Attributes
+-# by sending a bogus code (in the source it says it's supposed to be a
+-# vt220, which is doubly incorrect because it does not implement vt220
+-# control sequences except for a few special cases). Treat it as a
+-# mildly-broken vt102.
++# added msgr -TD
++vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
++ OTbs, OTpt, am, mir, msgr, xenl, xon,
++ cols#80, lines#24, vt#3,
++ OTnl=^J,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
++ clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
++ dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
++ if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
++ is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP,
++ kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
++ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8,
++ rev=\E[7m$<2>, rf=/usr/share/tabset/vt100,
++ ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
++ rmso=\E[27m, rmul=\E[24m,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
++ smso=\E[7m, smul=\E[4m,
++
++# A much better description of the VT200/220; used to be vt220-8
++# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
++# designation to accommodate bug in pcvt -TD
+ #
+-# Update for konsole 1.3.2:
+-# The 1049 private mode works (but see the other xterm screens in vttest).
+-# Primary Device Attributes now returns the code for a vt100 with advanced
+-# video option. Perhaps that's intended to be a "mildly-broken vt102".
++# Here's a picture of the VT220 editing keypad:
++# +--------+--------+--------+
++# | Find | Insert | Remove |
++# +--------+--------+--------+
++# | Select | Prev | Next |
++# +--------+--------+--------+
++vt220|vt200|dec vt220,
++ OTbs, am, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
++ flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ is2=\E[?7h\E[>\E[?1l\E F\E[?4l, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
++ khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B$<4>,
++ rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
++ rs1=\E[?3l, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=ansi+pp,
++ use=ansi+enq,
++vt220-w|vt200-w|DEC vt220 in wide mode,
++ cols#132,
++ rs3=\E[?3h, use=vt220,
++vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
++ OTbs, am, mc5i, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
++ csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
++ cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
++ cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
++ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
++ ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
++ flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
++ ich=\233%p1%d@, if=/usr/share/tabset/vt100,
++ il=\233%p1%dL, il1=\233L, ind=\ED,
++ is2=\233?7h\233>\233?1l\E F\233?4l, kbs=^H,
++ kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
++ kdch1=\2333~, kf1=\EOP, kf10=\23321~, kf11=\23323~,
++ kf12=\23324~, kf13=\23325~, kf14=\23326~, kf17=\23331~,
++ kf18=\23332~, kf19=\23333~, kf2=\EOQ, kf20=\23334~,
++ kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~, kf8=\23319~,
++ kf9=\23320~, kfnd=\2331~, khlp=\23328~, khome=\233H,
++ kich1=\2332~, knp=\2336~, kpp=\2335~, krdo=\23329~,
++ kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i,
++ mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8, rev=\2337m, ri=\EM,
++ rmacs=\E(B, rmam=\233?7l, rmir=\2334l, rmso=\23327m,
++ rmul=\23324m, rs1=\233?3l, sc=\E7,
++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
++ smso=\2337m, smul=\2334m, tbc=\2333g,
++
++# vt220d:
++# This vt220 description regards F6--F10 as the second block of function keys
++# at the top of the keyboard. This mapping follows the description given
++# in the VT220 Programmer Reference Manual and agrees with the labeling
++# on some terminals that emulate the vt220. There is no support for an F5.
++# See vt220 for an alternate mapping.
+ #
+-# Updated for konsole 1.6.4:
+-# add konsole-solaris
++vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
++ kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
++
++vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
++ am@,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
++
++# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
++# (not an official DEC entry!)
++# The problem with real vt220 terminals is they don't send escapes when in
++# in vt220 mode. This can be gotten around two ways. 1> don't send
++# escapes or 2> put the vt220 into vt100 mode and use all the nifty
++# features of vt100 advanced video which it then has.
+ #
+-# Updated for konsole 1.6.6:
+-# add control-key modifiers for function-keys, etc.
++# This entry takes the view of putting a vt220 into vt100 mode so
++# you can use the escape key in emacs and everything else which needs it.
+ #
+-# vttest menu 1 shows that both konsole and gnome terminal do wrapping
+-# different from xterm (and vt100's). They have the same behavior in this
+-# detail, but it is unclear which copies the other.
+-konsole-base|KDE console window,
+- bce, km@, npc, XT,
+- ncv@,
+- bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
+- ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
+- hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
+- kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
+- kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
+- kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
+- rmso=\E[27m, rmul=\E[24m,
+- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
+- use=ecma+color, use=xterm-r6,
+-konsole-linux|KDE console window with linux keyboard,
+- kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
+- kf2=\E[[B, kf20@, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- use=konsole-base,
+-konsole-solaris|KDE console window with Solaris keyboard,
+- kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
+-# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
+-# than testing the code.
+-konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
+- kend=\E[4~, khome=\E[1~, use=konsole-vt100,
+-# The value for kbs reflects local customization rather than the settings used
+-# for XFree86 xterm.
+-konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
+- kend=\EOF, khome=\EOH, use=konsole+pcfkeys,
+- use=konsole-vt100,
+-# Konsole does not implement shifted cursor-keys.
+-konsole+pcfkeys|konsole subset of xterm+pcfkeys,
+- kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
+- use=xterm+pcf0,
+-# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
+-# it is still useful for deriving the other entries.
+-konsole-vt100|KDE console window with vt100 (sic) keyboard,
+- kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@,
+- kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[H, use=konsole-base,
+-konsole-vt420pc|KDE console window with vt420 pc keyboard,
+- kbs=^H, kdch1=\177, use=konsole-vt100,
+-konsole-16color|klone of xterm-16color,
+- ncv#32, use=ibm+16color, use=konsole,
+-# make a default entry for konsole
+-konsole|KDE console window,
+- use=konsole-xf4x,
++# You probably don't want to use this on a VMS machine since VMS will think
++# it has a vt220 and will get fouled up coming out of emacs
++#
++# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
++# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
++# added msgr -TD
++vt200-js|vt220-js|dec vt200 series with jump scroll,
++ am, msgr,
++ cols#80,
++ bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
++ ht=^I, il1=\E[L, ind=\ED,
++ is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1h\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
++ rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
++ rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
++ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
+
+-# palette is hardcoded...
+-konsole-256color|KDE console window with xterm 256-colors,
+- initc@, use=xterm+256color, use=konsole,
++# This was DEC's vt320. Use the purpose-built one below instead
++#vt320|DEC VT320 in vt100 emulation mode,
++# use=vt220,
+
+-# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
+-#
+-# It is nominally a vt102 emulator, with features borrowed from rxvt and
+-# xterm.
+-#
+-# The function keys are numbered based on shift/control/alt modifiers, except
+-# that the control-modifier itself is used to spawn a new copy of mlterm (the
+-# "-P" option). So control/F1 to control/F12 may not be usable, depending on
+-# how it is configured.
+-#
+-# kf1 to kf12 \E[11~ to \E[24~
+-# shift kf1 to kf12 \E[11;2~ to \E[24;2~
+-# alt kf1 to kf12 \E[11;3~ to \E[24;3~
+-# shift/alt kf1 to kf12 \E[11;4~ to \E[24;4~
+-# control kf1 to kf12 \E[11;5~ to \E[24;5~ (maybe)
+-# control/shift kf1 to kf12 \E[11;6~ to \E[24;6~
+-# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~
+-# control/shift/alt kf1 to kf12 \E[11;8~ to \E[24;8~
++# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
+ #
+-mlterm|multi lingual terminal emulator,
+- am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
+- colors#8, cols#80, it#8, lines#24, pairs#64,
+- acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
++ am@,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
++
++# These entries are not DEC's official ones, they were purpose-built for the
++# VT320. Here are the designer's notes:
++# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to
++# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
++# khome is Home on a PC kbd. Actually 'FIND' on a VT.
++# Things that use <knxt> usually use tab anyways... and things that don't use
++# tab usually use <knxt> instead...
++# kprv is same as tab - Backtab is useless...
++# I left out <sgr> because of its RIDICULOUS complexity,
++# and the resulting fact that it causes the termcap translation of the entry
++# to SMASH the 1k-barrier...
++# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
++# (vt320: uncommented <fsl> --esr)
++vt320|vt300|dec vt320 7 bit terminal,
++ am, hs, mir, msgr, xenl,
++ cols#80, lines#24, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
+- kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~,
+- khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M,
+- knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, kslt=\E[4~, mc0=\E[i,
+- nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+- rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
+- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
+- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
+- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
+- vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
+-
+-# The insert/delete/home/end keys do not respond to modifiers because mlterm
+-# looks in its termcap to decide which string to send. If it used terminfo
+-# (when available), it could use the extended names introduced for xterm.
+-mlterm+pcfkeys|fragment for PC-style fkeys,
+- kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
+- kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B,
+- kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~,
+- kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D,
+- kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~,
+- kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
+- kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C,
+- kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
+- kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
++ hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
++ kf9=\E[20~, khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I,
++ kpp=\E[5~, kprv=\E[Z, kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m,
++ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
++ rmul=\E[m,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ use=dec+pp, use=vt220+keypad, use=dec+sl, use=ansi+enq,
++vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
++ am@,
++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
++ use=vt320,
++# We have to init 132-col mode, not 80-col mode.
++vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
++ cols#132, wsl#132,
++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ use=vt320,
++vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
++ am@,
++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
++ use=vt320-w,
+
+-mlterm-256color|mlterm 3.0 with xterm 256-colors,
+- use=xterm+256color, use=rxvt,
++# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
++# which are pretty much a superset of the VT320. They have the
++# host writable status line, yet another different DRCS matrix size,
++# and such, but they add the DEC Technical character set, Multiple text
++# pages, selectable length pages, and the like. The difference between
++# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
++# monitor, the former has 4 planes and a color monitor. These terminals
++# support VT131 and ANSI block mode, but as with much of these things,
++# termcap/terminfo doesn't deal with these features.
++#
++# Note that this entry is are set up in what was the standard way for GNU
++# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
++# keys were switched into application mode at the same time the numeric pad
++# is switched into application mode. This changes the definitions of the
++# arrow keys. Emacs v19 is smarter and mines its keys directly out of
++# your termcap or terminfo entry,
++#
++# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
++# (vt340: string capability "sb=\E[M" corrected to "sr";
++# also, added <rmam>/<smam> based on the init string -- esr)
++vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
++ am, eslok, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
++ cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
++ ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
++ il1=\E[L, ind=\ED,
++ is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
++ lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
++ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
++ rmul=\E[24m, rs1=\E[?3l, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[2$~\E[1$}\E[1;%dH,
+
+-# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
+-# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
+-# Notes:
+-# rxvt 2.21b uses
+-# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
+-# but some applications don't work with that.
+-# It also has an AIX extension
+-# box2=lqkxjmwuvtn,
+-# and
+-# ech=\E[%p1%dX,
+-# but the latter does not work correctly.
++# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
++# (originally written with vt420 as its primary name, and usable for it).
+ #
+-# The distributed terminfo says it implements hpa and vpa, but they are not
+-# implemented correctly, using relative rather than absolute positioning.
++# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
++# text pages and long text pages with selectable length of the vt340, along
++# with left and right margins, rectangular area text copy, fill, and erase
++# operations, selected region character attribute change operations,
++# page memory and rectangle checksums, insert/delete column, reception
++# macros, and other features too numerous to remember right now. TERMCAP
++# can only take advantage of a few of these added features.
+ #
+-# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
+-# Since rxvt is not really compatible with xterm, it should be configured as
+-# "rxvt" or "rxvt-color".
++# Note that this entry is are set up in what was the standard way for GNU
++# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
++# keys were switched into application mode at the same time the numeric pad
++# is switched into application mode. This changes the definitions of the
++# arrow keys. Emacs v19 is smarter and mines its keys directly out of
++# your termcap entry,
+ #
+-# removed dch/dch1 because they are inconsistent with bce/ech -TD
+-# remove km as per tack test -TD
+-rxvt-basic|rxvt terminal base (X Window System),
+- OTbs, am, bce, eo, mir, msgr, xenl, xon, XT,
+- cols#80, it#8, lines#24,
++# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
++# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
++# also, added <rmam>/<smam> based on the init string -- esr)
++vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
++ am, eslok, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J$<10/>, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I,
+- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+- ind=^J, is1=\E[?47l\E=\E[?1l,
+- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
+- kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
+- rmul=\E[24m,
+- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+- s0ds=\E(B, s1ds=\E(0, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
+- smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
+- use=rxvt+pcfkeys, use=vt220+keypad,
+-# Key Codes from rxvt reference:
+-#
+-# Note: Shift + F1-F10 generates F11-F20
+-#
+-# For the keypad, use Shift to temporarily override Application-Keypad
+-# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
+-# is off, escape sequences toggle Application-Keypad setting.
+-# Also note that values of Home, End, Delete may have been compiled
+-# differently on your system.
+-#
+-# Normal Shift Control Ctrl+Shift
+-# Tab ^I ESC [ Z ^I ESC [ Z
+-# BackSpace ^H ^? ^? ^?
+-# Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
+-# Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
+-# Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+-# Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
+-# Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
+-# Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
+-# Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
+-# End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
+-# Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+-# F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
+-# F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
+-# F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
+-# F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
+-# F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
+-# F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
+-# F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
+-# F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
+-# F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
+-# F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
+-# F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
+-# F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
+-# F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
+-# F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
+-# F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
+-# F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
+-# F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
+-# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
+-# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
+-# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
+-#
+-# Application
+-# Up ESC [ A ESC [ a ESC O a ESC O A
+-# Down ESC [ B ESC [ b ESC O b ESC O B
+-# Right ESC [ C ESC [ c ESC O c ESC O C
+-# Left ESC [ D ESC [ d ESC O d ESC O D
+-# KP_Enter ^M ESC O M
+-# KP_F1 ESC O P ESC O P
+-# KP_F2 ESC O Q ESC O Q
+-# KP_F3 ESC O R ESC O R
+-# KP_F4 ESC O S ESC O S
+-# XK_KP_Multiply * ESC O j
+-# XK_KP_Add + ESC O k
+-# XK_KP_Separator , ESC O l
+-# XK_KP_Subtract - ESC O m
+-# XK_KP_Decimal . ESC O n
+-# XK_KP_Divide / ESC O o
+-# XK_KP_0 0 ESC O p
+-# XK_KP_1 1 ESC O q
+-# XK_KP_2 2 ESC O r
+-# XK_KP_3 3 ESC O s
+-# XK_KP_4 4 ESC O t
+-# XK_KP_5 5 ESC O u
+-# XK_KP_6 6 ESC O v
+-# XK_KP_7 7 ESC O w
+-# XK_KP_8 8 ESC O x
+-# XK_KP_9 9 ESC O y
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
++ el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
++ lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
++ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
++ rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[2$~\E[1$}\E[1;%dH, use=dec+sl,
++
++# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
++# a missing <sc> -- esr)
++# add msgr and other capabilities from vt220 -TD
++vt420|DEC VT420,
++ am, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
++ clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K,
++ enacs=\E)0, flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I,
++ hts=\EH, ich=\E[%p1%d@, if=/usr/share/tabset/vt300,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED, is2=\E[1;24r\E[24;1H,
++ is3=\E[?67h\E[64;1"p, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[29~,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~, kf6=\E[18~,
++ kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, kfnd=\E[1~,
++ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, nel=\EE,
++ rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
++ ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
++ rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ rmso=\E[27m, rmul=\E[24m, rs3=\E[?67h\E[64;1"p, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
++ sgr0=\E[m\E(B$<2>, smacs=\E(0$<2>, smam=\E[?7h,
++ smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ use=ansi+pp, use=dec+sl, use=ansi+enq,
++
++# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
++# takes two parameters, the key and the string. Translating the key is
++# straightforward (keys 1-5 are not defined on real terminals, though some
++# emulators define these):
+ #
+-# The source-code for rxvt actually defines mappings for F21-F35, using
+-# "ESC [ 35 ~" to "ESC [ 49 ~". Keyboards with more than 12 function keys
+-# are rare, so this entry uses the shift- and control-modifiers as in
+-# xterm+pcfkeys to define keys past F12.
++# if (key < 16) then value = key;
++# else if (key < 21) then value = key + 1;
++# else if (key < 25) then value = key + 2;
++# else if (key < 27) then value = key + 3;
++# else if (key < 30) then value = key + 4;
++# else value = key + 5;
+ #
+-# kIC is normally not used, since rxvt performs a paste for that (shifted
+-# insert), unless private mode 35 is set.
++# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
++# There's no provision in terminfo for emitting a string in this format, so the
++# application has to know it.
+ #
+-# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
+-# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
+-rxvt+pcfkeys|fragment for PC-style fkeys,
+- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
+- kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
+- kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
++vt420pc|DEC VT420 w/PC keyboard,
++ kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~,
++ kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
++ kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~,
++ kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
++ kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~,
++ kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~,
++ kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~,
++ kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~,
++ kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~,
++ kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~,
++ kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~,
++ kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[H,
++ pctrm=USR_TERM\:vt420pcdos\:,
++ pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
++ use=vt420,
++
++vt420pcdos|DEC VT420 w/PC for DOS Merge,
++ lines#25,
++ dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;,
++ pctrm@,
++ rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@,
++ sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc,
++
++vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys,
++ kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$,
+- kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^,
+- kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~,
+- kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^,
+- kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^,
+- kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
+- kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
++ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, knp=\E[6~,
+- kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@,
+- kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@,
+- kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@,
+- kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^,
+- kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa,
+-
+-rxvt|rxvt terminal emulator (X Window System),
+- ncv@,
+- hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
+- vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
+-rxvt-color|rxvt terminal emulator (X Window System),
+- use=rxvt,
+-rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
+- use=xterm+256color, use=rxvt,
+-rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
+- use=xterm+88color, use=rxvt,
+-rxvt-xpm|rxvt terminal emulator (X Window System),
+- use=rxvt,
+-rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
+- acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- use=rxvt,
+-rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
+- acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
+- use=rxvt-cygwin,
++ khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS,
++ use=vt420,
+
+-# This variant is supposed to work with rxvt 2.7.7 when compiled with
+-# NO_BRIGHTCOLOR defined. rxvt needs more work...
+-rxvt-16color|xterm with 16 colors like aixterm,
+- ncv#32, use=ibm+16color, use=rxvt,
++vt510|DEC VT510,
++ use=vt420,
++vt510pc|DEC VT510 w/PC keyboard,
++ use=vt420pc,
++vt510pcdos|DEC VT510 w/PC for DOS Merge,
++ use=vt420pcdos,
+
+-# mrxvt 0.5.4
++# VT520/VT525
+ #
+-# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
+-# makes its function-keys different from other flavors of rxvt -TD
+-mrxvt|multitabbed rxvt,
+- XT,
+- kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
+- kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
+- kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~,
+- kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~,
+- kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys,
+- use=rxvt,
++# The VT520 is a monochrome text terminal capable of managing up to
++# four independent sessions in the terminal. It has multiple ANSI
++# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
++# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
++# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only.
++#
++# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
++# [Alt]/[Print Screen] depending upon which keyboard and which
++# terminal mode is being used. If Set-Up has been disabled or
++# assigned to an unknown key, Set-Up may be entered by pressing
++# [F3] as the first key after power up, regardless of keyboard type.
++vt520|DEC VT520,
++ use=ansi+rca, use=vt420, use=ansi+tabs,
+
+-mrxvt-256color|multitabbed rxvt with 256 colors,
+- use=xterm+256color, use=mrxvt,
++vt525|DEC VT525,
++ use=vt520,
+
+-# From: Michael Jennings <mej@valinux.com>
++# I just got a brand new Boundless VT520 with that company's "ANSI 2011"
++# Keyboard, which replaces the old LK41R-AA keyboard.
+ #
+-# Eterm 0.9.3
++# In trying to get the function keys to work, I had to cobble my own
++# terminfo.src entry, since the existing vt520 entry doesn't include most of
++# the function keys. If I blend the entries for "vt420f" and "vt220+keypad"
++# I seem to get them all -Mike Gran
++vt520ansi|Boundless VT520 ANSI,
++ use=ansi+rca, use=vt420f, use=vt220+keypad,
++ use=ansi+tabs,
++
++#### VT100 emulations
+ #
+-# removed kf0 which conflicts with kf10 -TD
+-# remove cvvis which conflicts with cnorm -TD
+-# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
+-# but does otherwise follow the rxvt+pcfkeys model -TD
+-# remove nonworking flash -TD
+-# remove km as per tack test -TD
+-Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
+- am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT,
+- btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- is1=\E[?47l\E>\E[?1l,
+- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
+- kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
+- kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
+- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
+- rmso=\E[27m, rmul=\E[24m,
+- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
+- smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
+- use=ecma+color,
+
+-Eterm-256color|Eterm with xterm 256-colors,
+- use=xterm+256color, use=Eterm,
++# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
++# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
++# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
++# that this works best with a stock vt100 entry.
++dec-vt100|EWAN telnet's vt100 emulation,
++ use=vt100,
+
+-Eterm-88color|Eterm with 88 colors,
+- use=xterm+88color, use=Eterm,
++# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
++dec-vt220|DOS tnvt200 terminal emulator,
++ am@, use=vt220,
+
+-# Based on rxvt 2.4.8, it has a few differences in key bindings
+-aterm|AfterStep terminal,
+- XT,
+- kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
++# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
++# anyone who needs PC VT340 emulation. (or anything below that level, for
++# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
++# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
++# I can send the address if requested.
++# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
++# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
++z340|zstem vt340 terminal emulator 132col 42line,
++ lines#42,
++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
++ use=vt320-w,
++z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
++ am@,
++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
++ use=z340,
+
+-# xiterm 0.5-5.2
+-# This is not based on xterm's source...
+-# vttest shows several problems with keyboard, cursor-movements.
+-# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm
+-xiterm|internationalized terminal emulator for X,
+- km@,
+- kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
++# CRT is shareware. It implements some xterm features, including mouse.
++crt|crt-vt220|CRT 2.3 emulating VT220,
++ bce, msgr,
++ ncv@,
++ hts=\EH, use=vt100+enq, use=vt220, use=ecma+color,
+
+-# These (xtermc and xtermm) are distributed with Solaris. They refer to a
+-# variant of xterm which is apparently no longer supported, but are interesting
+-# because they illustrate SVr4 curses mouse controls - T.Dickey
+-xtermm|xterm terminal emulator (monocrome),
+- OTbs, am, km, mir, msgr, xenl,
+- btns#3, cols#80, it#8, lines#24,
++# PuTTY 0.55 (released 3 August 2004)
++# http://www.chiark.greenend.org.uk/~sgtatham/putty/
++#
++# Comparing with 0.51, vttest is much better (only a few problems with the
++# cursor position reports and wrapping).
++#
++# PuTTY 0.51 (released 14 December 2000)
++#
++# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as
++# well as SCO and Atari, color palettes from Linux console). Reading the code,
++# it is intended to be VT102 plus selected features. By default, it sets $TERM
++# to xterm, which is incorrect, since several features are misimplemented:
++#
++# Alt+key always sends ESC+key, so 'km' capability is removed.
++#
++# Control responses, wrapping and tabs are buggy, failing a couple of
++# screens in vttest.
++#
++# xterm mouse support is not implemented (unrelease version may).
++#
++# Several features such as backspace/delete are optional; this entry documents
++# the default behavior -TD
++
++putty|PuTTY terminal emulator,
++ am, bce, bw, ccc, mir, msgr, xenl, xon, XT,
++ colors#8, it#8, ncv#22, pairs#64, U8#1,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
+- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
+- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
+- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
+- knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
+- rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
+- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
++ dch=\E[%p1%dP, dch1=\E[P,
++ dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
++ ind=^J, indn=\E[%p1%dS,
++ initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
++ is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
++ kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~,
++ kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
++ kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
++ kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
++ ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
++ rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
++ rmso=\E[27m, rmul=\E[24m,
++ rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
++ s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
+- smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
+-
+-xtermc|xterm terminal emulator (color),
+- colors#8, ncv#7, pairs#64,
+- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- use=xtermm,
+-
+-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
+-# Here's a termcap entry I've been using for xterm_color, which comes
+-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
+-# color stuff, I also have a status line defined as the window manager
+-# title bar. [I have translated it to terminfo -- ESR]
+-xterm-pcolor|xterm with color used for highlights and status line,
+- bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
+- smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
++ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, vpa=\E[%i%p1%dd, E3=\E[3;J, use=vt102+enq,
++ use=xterm+sl,
++vt100-putty|Reset PuTTY to pure vt100,
++ rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
++ use=vt100,
++# palette is hardcoded...
++putty-256color|PuTTY 0.58 with xterm 256-colors,
++ use=xterm+256setaf, use=putty,
+
+-# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
+-# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS
+-# chars look like --esr)
+-hpterm|X-hpterm|hp X11 terminal emulator,
+- am, da, db, mir, xhp,
+- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
+- acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
+- cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
+- cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
+- hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
+- kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
+- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
+- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
+- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
+- memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
+- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
+- rmul=\E&d@,
+- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
+- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
+- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+-# HPUX 11 provides a color version.
+-hpterm-color|HP X11 terminal emulator with color,
+- ccc,
+- colors#64, pairs#8,
+- home=\E&a0y0C,
+- initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
+- op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
++# One of the keyboard selections is "VT100+".
++# pterm (the X11 port) uses shifted F1-F10 as F11-F20
++putty-vt100|VT100+ keyboard layout,
++ kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EO[, kf2=\EOQ,
++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
++ kf9=\EOX, use=putty,
+
+-# This entry describes an xterm with Sun-style function keys enabled
+-# via the X resource setting "xterm*sunFunctionKeys:true"
+-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
+-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
+-# because we want it to be seen as <kcpy>.
+-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
+-# with their Sun keyboard labels instead.
+-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
+-xterm-sun|xterm with sunFunctionKeys true,
+- kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
+- kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
+- kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
+- kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
+- kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
+- kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
+- kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
+- kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
+- kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
+- kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
+- kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
+- use=xterm-basic,
+-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
+- cols#80, lines#24, use=xterm-sun,
++# Unlike xterm-sco, this leaves kmous ambiguous with kf1.
++#
++# Use modifiers to obtain function keys past 12:
++# F1-F12 - normal
++# F13-F24 - shift
++# F25-F36 - control/alt
++# F37-F48 - control/shift
++#
++putty-sco|putty with SCO function keys,
++ kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
++ kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
++ kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
++ kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
++ kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
++ kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
++ kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
++ kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
++ kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
++ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
++ kich1=\E[L, knp=\E[G, kpp=\E[I, use=putty,
+
+-# This is for the extensible terminal emulator on the X11R6 contrib tape.
+-# It corresponds to emu's internal emulation:
+-# emu -term emu
+-# emu's default sets TERM to "xterm", but that doesn't work well -TD
+-# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
+-# fixes: add civis, cnorm, sgr -TD
+-emu|emu native mode,
+- am, bce, mir, msgr, xon,
+- colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
+- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
+- bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
+- cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
+- cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC,
+- cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
+- dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
+- ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
+- hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG,
+- is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED,
+- kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01,
+- kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14,
+- kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19,
+- kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05,
+- kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind,
+- kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel,
+- op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES,
+- rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
+- setaf=\Er%i%p1%d;,
+- sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;,
+- sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
+-
+-# vt220 Terminfo entry for the Emu emulation, corresponds to
+-# emu -term vt220
+-# with NumLock set (to make the keypad transmit kf0-kf9).
+-# fixes: add am, xenl, corrected sgr0 -TD
+-emu-220|Emu-220 (vt200-7bit mode),
+- am, xenl, xon,
+- cols#80, it#8, lines#24, vt#200,
+- acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+- blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l,
+- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
+- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+- dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
+- ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
+- hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL,
+- il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
+- kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq,
+- kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ,
+- kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~,
+- kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~,
+- kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~,
+- kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw,
+- kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
+- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m,
+- ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
+- rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
+- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
+- smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
+-# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
+-# print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings
+-# indicate that it emulates more than one terminal, but incompletely.
++# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
++# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator
++# (communication program) which supports:
+ #
+-# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
+-# It is based on vt102's entry, with some subtle differences, but also
+-# has status line
+-# supports ANSI colors (except for 'op' string)
+-# apparently implements alternate screen like xterm
+-# does not use padding, of course.
+-mvterm|vv100|SwitchTerm aka mvTERM,
+- am, eslok, hs, km, mir, msgr, xenl,
+- colors#8, cols#80, it#8, lines#24, pairs#64,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0,
+- fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy,
+- kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw,
+- op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m,
+- rmul=\E[m,
+- rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H,
+- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
+-
+-### MTERM
++# - Serial port connections.
++# - TCP/IP (telnet) connections.
++# - VT100 emulation, and selected VT200/300 emulation.
++# - TEK4010 emulation.
++# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
++# Quick-VAN).
++# - Scripts using the "Tera Term Language".
++# - Japanese and Russian character sets.
+ #
+-# This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
++# The program does not come with terminfo or termcap entries. However, the
++# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
++# vt52 or doublesize character support; blinking is done with color). Besides
++# the HPA, VPA extensions it also implements CPL and CNL.
+ #
+-# "mterm -type ansi" sets $TERM to "ansi"
+-mterm-ansi|ANSI emulation,
+- am, bw, mir, msgr,
+- it#8,
+- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
+- el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=,
+- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
+- invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m,
+- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m,
+- rmul=\E[24m,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+- vpa=\E[%i%p1%dd,
+-# mterm normally sets $TERM to "mterm"
+-mterm|mouse-sun|Der Mouse term,
+- am, bw, mir,
+- it#8,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S,
+- cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C,
+- home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W,
+- rmir=^O, rmso=^T, smir=^Q, smso=^V,
+-# "mterm -type decansi" sets $TERM to "decansi"
++# All of the function keys can be remapped. This description shows the default
++# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
++# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
++# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
++# kfnd Insert
++# kslt Delete
++# kich1 Home
++# kdch1 PageUp
++# kpp End
++# knp PageDown
+ #
+-# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
+-decansi|ANSI emulation with DEC compatibility hacks,
+- am, mir, msgr, xenl,
+- colors#8, it#8, pairs#64,
+- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0,
+- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
+- il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m,
+- is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~,
++# ANSI colors are implemented, but cannot be combined with video attributes
++# except for reverse.
++#
++# No fonts are supplied with the program, so the acsc string is chosen to
++# correspond with the default Microsoft terminal font.
++#
++# Tera Term recognizes some xterm sequences, including those for setting and
++# retrieving the window title, and for setting the window size (i.e., using
++# "resize -s"), though it does not pass SIGWINCH to the application if the
++# user resizes the window with the mouse.
++teraterm2.3|Tera Term Pro,
++ km, xon@,
++ ncv#43, vt@,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
++ cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
++ flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
++ il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
+ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+ kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
+- kpp=\E[5~, kslt=\E[4~, 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,
++ kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
++ rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m,
++ smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
++ use=klone+color, use=vt100,
+
+-#### VWM
+-#
+-# vwmterm is a terminal emulator written for the VWM console window manager
++# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
++# to choose a Windows OEM font).
+ #
+-vwmterm|(vwm term),
+- am, bce, ccc, mir, msgr, npc, xenl, xon,
+- colors#8, pairs#64,
++# Testing with tack:
++# - it does not have xenl (suppress that)
++# - underline seems to work with color (modify ncv).
++# Testing with vttest:
++# - wrapping differs from vt100 (menu 1).
++# - it recognizes xterm's X10 and normal mouse tracking, but none of the
++# other flavors.
++# - it recognizes the dtterm window controls for reporting size in
++# characters and pixels.
++# - it passes SIGWINCH.
++teraterm4.59|Tera Term Pro,
++ bce, xenl@,
++ ncv#41,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD,
+- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, cvvis=\E[?25h, dim=\E[2m, ed=\E[J, el=\E[K,
+- home=\E[H, il1=\E[L, ind=^J, invis=\E[8m, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+- kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[22~,
+- kf12=\E[23~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmacs=\E[10m,
+- rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+- sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h,
+- smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
++ kmous=\E[M, use=teraterm2.3,
+
+-#### MGR
+-#
+-# MGR is a Bell Labs window system lighter-weight than X.
+-# These entries describe MGR's xterm-equivalent.
+-# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
++teraterm|Tera Term,
++ use=teraterm4.59,
++
++# Tested with WinNT 4.0, the telnet application assumes the screensize is
++# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
+ #
++# Other notes:
++# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
++# for casual (occasional) use. Also fails several of the vttest screens,
++# but that is not unusual for vt100 "emulators".
++# b) Does not implement vt100 keypad
++# c) Recognizes a subset of vt52 controls.
++ms-vt100|MS telnet imitating dec vt100,
++ lines#25,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@,
++ kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, use=vt102+enq, use=vt100,
+
+-mgr|Bellcore MGR (non X) window system terminal emulation,
+- am, km,
+- bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
+- csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
+- cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
+- dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>,
+- dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u,
+- ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>,
+- il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S,
+- rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
+- smul=\E4n,
+-mgr-sun|Mgr window with Sun keyboard,
+- ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z,
+- kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z,
+- kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z,
+- kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z,
+- kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
+- kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z,
+- kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr,
+-mgr-linux|Mgr window with Linux keyboard,
+- ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~,
+- kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
+- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
++# Tested with Windows 2000, the telnet application runs in a console window,
++# also using 'Terminal' font.
++#
++# Other notes:
++# a) This version has no function keys or numeric keypad. Unlike the older
++# version, the numeric keypad is entirely ignored.
++# b) The program sets $TERM to "ansi", which of course is inaccurate.
++ms-vt100-color|vtnt|windows 2000 ansi (sic),
++ bce,
++ dch=\E[%p1%dP, ich=\E[%p1%d@, use=ecma+color,
++ use=ms-vt100,
+
+-######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
++# Based on comments from Federico Bianchi:
++#
++# vt100+ is basically a VT102-noSGR with ANSI.SYS colors and a different
++# scheme for PF keys.
++#
++# and PuTTY wishlist:
++#
++# The modifiers are represented as the codes listed above, prefixed to
++# the normal sequences. If the modifier is pressed alone, its sequence
++# is transmitted twice in succession. If multiple modifiers apply,
++# they're transmitted in the order shift, control, alt.
+ #
++# Shift \E^S
++# Alt \E^A,
++# Ctrl \E^C,
++ms-vt100+|vt100+|windows XP vt100+ (sic),
++ kdch1=\E-, kend=\Ek, kf1=\E1, kf10=\E0, kf11=\E!, kf12=\E@,
++ kf13=\E\023\E1, kf14=\E\023\E2, kf15=\E\023\E3,
++ kf16=\E\023\E4, kf17=\E\023\E5, kf18=\E\023\E6,
++ kf19=\E\023\E7, kf2=\E2, kf20=\E\023\E8, kf21=\E\023\E9,
++ kf22=\E\023\E0, kf23=\E\023\E!, kf24=\E\023\E@,
++ kf25=\E\003\E1, kf26=\E\003\E2, kf27=\E\003\E3,
++ kf28=\E\003\E4, kf29=\E\003\E5, kf3=\E3, kf30=\E\003\E6,
++ kf31=\E\003\E7, kf32=\E\003\E8, kf33=\E\003\E9,
++ kf34=\E\003\E0, kf35=\E\003\E!, kf36=\E\003\E@,
++ kf37=\E\001\E1, kf38=\E\001\E2, kf39=\E\001\E3, kf4=\E4,
++ kf40=\E\001\E4, kf41=\E\001\E5, kf42=\E\001\E6,
++ kf43=\E\001\E7, kf44=\E\001\E8, kf45=\E\001\E9,
++ kf46=\E\001\E0, kf47=\E\001\E!, kf48=\E\001\E@, kf5=\E5,
++ kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, khome=\Eh, kich1=\E+,
++ knp=\E/, kpp=\E?, use=ms-vt100-color,
+
+-# Columbus UNIX virtual terminal. This terminal also appears in
+-# UNIX 4.0 and successors as line discipline 1 (?), but is
+-# undocumented and does not really work quite right.
+-cbunix|cb unix virtual terminal,
+- OTbs, am, da, db,
+- cols#80, lines#24, lm#0,
+- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
+- el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
+- smso=\Ea^D, smul=\Ea^A,
+-# (vremote: removed obsolete ":nl@:" -- esr)
+-vremote|virtual remote terminal,
+- am@,
+- cols#79, use=cbunix,
++ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
++ use=ms-vt100+,
+
+-pty|4bsd pseudo teletype,
+- cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
+- smso=\Ea$, smul=\Ea!, use=cbunix,
++# expect-5.44.1.15/example/tkterm
++# a minimal subset of a vt100 (compare with "news-unk).
++#
++# The missing "=" in smkx is not a typo (here), but an error in tkterm.
++tt|tkterm|Don Libes' tk text widget terminal emulator,
++ clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ,
++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
++ kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
++ smso=\E[7m,
+
+-# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
+-eterm|gnu emacs term.el terminal emulation,
+- am, mir, xenl,
+- cols#80, lines#24,
+- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++######## X TERMINAL EMULATORS
++#### XTERM
++#
++# You can add the following line to your .Xdefaults to change the terminal type
++# set by the xterms you start up to my-xterm:
++#
++# *termName: my-xterm
++#
++# System administrators can change the default entry for xterm instances
++# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either
++# case, xterm will detect and reject an invalid terminal type, falling back
++# to the default of xterm.
++#
++
++# X10/6.6 11/7/86, minus alternate screen, plus (csr)
++# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
++# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
++# as these seem not to work -- esr)
++x10term|vs100-x10|xterm terminal emulator (X10 window system),
++ OTbs, am, km, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#65,
++ bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
++ smso=\E[7m, smul=\E[4m,
++# Compatible with the R5 xterm
++# (from the XFree86 3.2 distribution, <blink=@> removed)
++# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
++# corrected typos in rs2 string - TD
++# added u6-u9 -TD
++xterm-r5|xterm R5 version,
++ OTbs, am, km, msgr, xenl,
++ cols#80, it#8, lines#24,
++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, rev=\E[7m,
+- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
+- smul=\E[4m,
+-
+-# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
+-eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
+- am, mir, msgr, xenl,
+- colors#8, cols#80, lines#24, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
++ kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
++ kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8,
++ rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
++ rmul=\E[m,
++ rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
++ sc=\E7,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
++ sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, use=vt100+enq,
++# Compatible with the R6 xterm
++# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
++# added khome/kend, hts based on the R6 xterm code - TD
++# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
++# for compatibility with other emulators).
++xterm-r6|xterm X11R6 version,
++ OTbs, am, km, mir, msgr, xenl,
++ cols#80, it#8, lines#24,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
++ el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
++ il1=\E[L, ind=^J,
++ is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=^H,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
+- knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
+- ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+- sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
+- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
+- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+- u6=\E[%i%d;%dR, u7=\E[6n,
+-
+-# Entries for use by the `screen' program by Juergen Weigert,
+-# Michael Schroeder, Oliver Laumann. The screen and
+-# screen-w entries came with version 3.7.1. The screen2 and screen3 entries
+-# come from University of Wisconsin and may be older.
+-# (screen: added <cnorm> on ANSI model -- esr)
+-#
+-# 'screen' defines extensions to termcap. Some are used in its terminal
+-# description:
+-# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
+-# AX (bool) Does understand ANSI set default fg/bg color
+-# (\E[39m / \E[49m).
+-# S0 (str) Switch charset 'G0' to the specified charset.
+-# E0 (str) Switch charset 'G0' back to standard charset.
+-#
+-# tested with screen 3.09.08
+-screen|VT 100/ANSI X3.64 virtual terminal,
+- OTbs, OTpt, am, km, mir, msgr, xenl, G0,
+- colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
+- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
++ kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
++ kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
++ rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
++ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
++ sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ use=vt100+enq,
++xterm-old|antique xterm version,
++ use=xterm-r6,
++# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
++# The name has been changed and some aliases have been removed.
++xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
++ OTbs, am, bce, km, mir, msgr, xenl, XT,
++ cols#80, it#8, lines#24, ncv@,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+- flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
+- rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
+- S0=\E(%p1%c, use=ecma+color,
+-# The bce and status-line entries are from screen 3.9.13 (and require some
+-# changes to .screenrc).
+-screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
+- bce,
+- ech@, use=screen,
+-screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
+- dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
+-
+-# ======================================================================
+-# Entries for GNU Screen with 16 colors.
+-# Those variations permit to benefit from 16 colors palette, and from
+-# bold font and blink attribute separated from bright colors. But they
+-# are less portable than the generic "screen" 8 color entries: Their
+-# usage makes real sense only if the terminals you attach and reattach
+-# do all support 16 color palette.
+-
+-screen-16color|GNU Screen with 16 colors,
+- use=ibm+16color, use=screen,
+-
+-screen-16color-s|GNU Screen with 16 colors and status line,
+- use=ibm+16color, use=screen-s,
+-
+-screen-16color-bce|GNU Screen with 16 colors and BCE,
+- use=ibm+16color, use=screen-bce,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
++ flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
++ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
++ il1=\E[L, ind=^J,
++ is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
++ kbeg=\EOE, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, kdch1=\177, kend=\EOF, kf1=\E[11~, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
++ kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
++ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
++ kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
++ kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
++ memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
++ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
++ rmso=\E[27m, rmul=\E[24m, rs1=^O,
++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt100+enq,
++ use=ecma+color, use=vt220+keypad,
+
+-screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line,
+- bce, use=ibm+16color, use=screen-s,
++# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
++# codes for F1-F4 except while in VT220 mode.
++xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
+
+-# ======================================================================
+-# Entries for GNU Screen 4.02 with --enable-colors256.
++# This version was released in XFree86 3.3.3 (November 1998).
++# Besides providing printer support, it exploits a new feature that allows
++# xterm to use terminfo-based descriptions with the titeInhibit resource.
++# -- the distribution contained incorrect khome/kend values -TD
++xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
++ blink=\E[5m, ich1@, invis=\E[8m,
++ is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
++ rmcup=\E[?1047l\E[?1048l, rs1=\Ec,
++ rs2=\E[!p\E[?3;4l\E[4l\E>,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ smcup=\E[?1048h\E[?1047h, use=ansi+pp,
++ use=xterm-xf86-v33,
+
+-screen-256color|GNU Screen with 256 colors,
+- ccc@,
+- initc@, use=xterm+256color, use=screen,
++# This version was released in XFree86 4.0.
++xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
++ npc,
++ kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
++ kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
++ ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
++ kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
++ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
++ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
++ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
++ kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
++ kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
++ kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
++ kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
++ kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
++ kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
++ kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ smcup=\E[?1049h, use=xterm-xf86-v333,
+
+-screen-256color-s|GNU Screen with 256 colors and status line,
+- ccc@,
+- initc@, use=xterm+256color, use=screen-s,
++# This version was released in XFree86 4.3.
++xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
++ kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
++ kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
++ kbeg@,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ use=xterm-xf86-v40,
+
+-screen-256color-bce|GNU Screen with 256 colors and BCE,
+- ccc@,
+- initc@, use=xterm+256color, use=screen-bce,
++# This version was released in XFree86 4.4.
++xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
++ cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
++ rin=\E[%p1%dT, use=xterm-xf86-v43,
+
+-screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line,
+- bce, ccc@,
+- initc@, use=xterm+256color, use=screen-s,
++xterm-xfree86|xterm terminal emulator (XFree86),
++ use=xterm-xf86-v44,
+
+-# ======================================================================
++# This version reflects the current xterm features.
++xterm-new|modern xterm terminal emulator,
++ npc,
++ indn=\E[%p1%dS, kb2=\EOE, kcbt=\E[Z, kent=\EOM,
++ rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm+tmux,
++ use=xterm-basic,
+
+-# Read the fine manpage:
+-# When screen tries to figure out a terminal name for
+-# itself, it first looks for an entry named "screen.<term>",
+-# where <term> is the contents of your $TERM variable. If
+-# no such entry exists, screen tries "screen" (or "screen-w"
+-# if the terminal is wide (132 cols or more)). If even this
+-# entry cannot be found, "vt100" is used as a substitute.
++# This fragment is for people who cannot agree on what the backspace key
++# should send.
++xterm+kbs|fragment for backspace key,
++ kbs=^H,
+ #
+-# Notwithstanding the manpage, screen uses its own notion of the termcap
+-# and some keys from "screen.<term>" are ignored. Here is an entry which
+-# covers those (tested with screen 4.00.02) -TD
+-screen+fkeys|function-keys according to screen,
+- kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
+- khome=\E[1~, kslt@,
++# This fragment describes as much of XFree86 xterm's "pc-style" function
++# keys as will fit into terminfo's 60 function keys.
++# From ctlseqs.ms:
++# Code Modifiers
++# ---------------------------------
++# 2 Shift
++# 3 Alt
++# 4 Shift + Alt
++# 5 Control
++# 6 Shift + Control
++# 7 Alt + Control
++# 8 Shift + Alt + Control
++# ---------------------------------
++# The meta key may also be used as a modifier in this scheme, adding another
++# bit to the parameter.
++xterm+pcfkeys|fragment for PC-style fkeys,
++ use=xterm+app, use=xterm+pcf2, use=xterm+pcc2,
++ use=xterm+pce2,
+ #
+-# Here are a few customized entries which are useful -TD
++xterm+noapp|fragment with cursor keys in normal mode,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
++ khome=\E[H,
++
++xterm+app|fragment with cursor keys in application mode,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\EOF,
++ khome=\EOH,
+ #
+-# Notes:
+-# (a) screen does not support invis.
+-# (b) screen's implementation of bw is incorrect according to tack.
+-# (c) screen appears to hardcode the strings for khome/kend, making it
+-# necessary to override the "use=" clause's values (screen+fkeys).
+-# (d) screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
+-# which is NOT the same as the terminfo screen.<term>.
+-# (e) when screen finds one of these customized entries, it sets $TERM to
+-# match. Hence, no "screen.xterm" entry is provided, since that would
+-# create heartburn for people running remote xterm's.
++# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
++# and revised in patch #167 (2002/8/24). Some other terminal emulators copied
++# the earlier scheme, as noted in the "use=" clauses in this file.
+ #
+-# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
+-# since the default translations override the built-in keycode
+-# translation. They are suppressed here to show what is tested by tack.
+-screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
+- bce@, bw,
+- invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
+- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
+- use=screen+fkeys, use=xterm-new,
+-# xterm-r6 does not really support khome/kend unless it is propped up by
+-# the translations resource.
+-screen.xterm-r6|screen customized for X11R6 xterm,
+- bw, use=screen+fkeys, use=xterm-r6,
+-# Color applications running in screen and TeraTerm do not play well together
+-# on Solaris because Sun's curses implementation gets confused.
+-screen.teraterm|disable ncv in teraterm,
+- ncv#127,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- use=screen+fkeys, use=screen,
+-# Other terminals
+-screen.rxvt|screen in rxvt,
+- bw, XT,
+- cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
+- use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
+-screen.Eterm|screen in Eterm,
+- use=screen+fkeys, use=Eterm,
+-screen.mrxvt|screen in mrxvt,
+- use=screen+fkeys, use=mrxvt,
+-screen.vte|screen in any VTE-based terminal,
+- use=screen+fkeys, use=vte,
+-screen.gnome|screen in GNOME Terminal,
+- use=screen+fkeys, use=gnome,
+-screen.konsole|screen in KDE console window,
+- use=screen+fkeys, use=konsole,
+-# fix the backspace key
+-screen.linux|screen in linux console,
+- bw,
+- kbs=\177, kcbt@, use=screen+fkeys, use=screen,
+-screen.mlterm|screen in mlterm,
+- use=screen+fkeys, use=mlterm,
+-
+-# The default "screen" entry is reasonably portable, but not optimal for the
+-# most widely-used terminal emulators. The "bce" capability is supported in
+-# screen since 3.9.13, and when used, will require fewer characters to be sent
+-# to the terminal for updates.
++# The original assignments from patch #94 for cursor-keys had some technical
++# issues:
+ #
+-# If you are using only terminals which support bce, then you can use this
+-# feature in your screen configuration.
++# A parameter for a function-key to represent a modifier is just more
++# bits. But for a cursor-key it may change the behavior of the
++# application. For instance, emacs decodes the first parameter of a
++# cursor-key as a repeat count.
+ #
+-# Adding these lines to your ".screenrc" file will allow using these customized
+-# entries:
+-# term screen-bce
+-# bce on
+-# defbce on
+-screen-bce.xterm-new|screen optimized for modern xterm,
+- bce,
+- ech@, use=screen.xterm-new,
+-screen-bce.rxvt|screen optimized for rxvt,
+- bce,
+- ech@, use=screen.rxvt,
+-screen-bce.Eterm|screen optimized for Eterm,
+- bce,
+- ech@, use=screen.Eterm,
+-screen-bce.mrxvt|screen optimized for mrxvt,
+- bce,
+- ech@, use=screen.mrxvt,
+-screen-bce.gnome|screen optimized for GNOME-Terminal,
+- bce,
+- ech@, use=screen.gnome,
+-screen-bce.konsole|screen optimized for KDE console window,
+- bce,
+- ech@, use=screen.konsole,
+-screen-bce.linux|screen optimized for linux console,
+- bce,
+- ech@, use=screen.linux,
+-screen-bce.mlterm|screen optimized for mlterm,
+- bce,
+- ech@, use=screen.mlterm,
++# A parameterized string should (really) not begin with SS3 (\EO).
++# Rather, CSI (\E[) should be used.
++#
++# For these reasons, the original assignments were deprecated. For
++# compatibility reasons, they are still available as a setting of xterm's
++# modifyCursorKeys resource. These fragments list the modified cursor-keys
++# that might apply to xterm+pcfkeys with different values of that resource.
++xterm+pcc3|fragment with modifyCursorKeys:3,
++ kLFT=\E[>1;2D, kRIT=\E[>1;2C, kind=\E[>1;2B,
++ kri=\E[>1;2A, kDN=\E[>1;2B, kDN3=\E[>1;3B, kDN4=\E[>1;4B,
++ kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
++ kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D,
++ kLFT6=\E[>1;6D, kLFT7=\E[>1;7D, kRIT3=\E[>1;3C,
++ kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C,
++ kRIT7=\E[>1;7C, kUP=\E[>1;2A, kUP3=\E[>1;3A,
++ kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
++ kUP7=\E[>1;7A,
+
+-screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
+- cols#132, use=screen,
++xterm+pcc2|fragment with modifyCursorKeys:2,
++ kLFT=\E[1;2D, kRIT=\E[1;2C, kind=\E[1;2B, kri=\E[1;2A,
++ kDN=\E[1;2B, kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B,
++ kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D, kLFT4=\E[1;4D,
++ kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D,
++ kRIT3=\E[1;3C, kRIT4=\E[1;4C, kRIT5=\E[1;5C,
++ kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A,
++ kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,
+
+-screen2|old VT 100/ANSI X3.64 virtual terminal,
+- cols#80, it#8, lines#24,
+- cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
+- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
+- nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
+- rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
+- smso=\E[3m, smul=\E[4m, tbc=\E[3g,
+-# (screen3: removed unknown ":xv:LP:G0:" -- esr)
+-screen3|older VT 100/ANSI X3.64 virtual terminal,
+- km, mir, msgr,
+- cols#80, it#8, lines#24,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
+- kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+- rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
+- sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
+- smul=\E[4m, tbc=\E[3g,
++xterm+pcc1|fragment with modifyCursorKeys:1,
++ kLFT=\E[2D, kRIT=\E[2C, kind=\E[2B, kri=\E[2A, kDN=\E[2B,
++ kDN3=\E[3B, kDN4=\E[4B, kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B,
++ kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D, kLFT6=\E[6D,
++ kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C,
++ kRIT6=\E[6C, kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A,
++ kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,
++
++xterm+pcc0|fragment with modifyCursorKeys:0,
++ kLFT=\EO2D, kRIT=\EO2C, kind=\EO2B, kri=\EO2A, kDN=\EO2B,
++ kDN3=\EO3B, kDN4=\EO4B, kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B,
++ kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D, kLFT6=\EO6D,
++ kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C,
++ kRIT6=\EO6C, kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A,
++ kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,
+
+-# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
+-# NCSA telnet is one of the most used telnet clients for the Macintosh. It has
+-# been maintained until recently by the National Center for Supercomputer
+-# Applications, and it is feature rich, stable and free. It can be downloaded
+-# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
+-# xterm+sl, and the docs at NCSA. It works well.
+ #
+-# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
+-# The terminal options should be set as follows:
+-# Xterm sequences ON
+-# use VT wrap mode ON
+-# use Emacs arrow keys OFF
+-# CTRL-COMND is Emacs meta ON
+-# 8 bit mode ON
+-# answerback string: "ncsa-vt220-8"
+-# setup keys: all disabled
++# Here are corresponding fragments from xterm patch #216:
+ #
+-# Application mode is not used.
++xterm+pcf0|fragment with modifyFunctionKeys:0,
++ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
++ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
++ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
++ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
++ kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR,
++ kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
++ kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
++ kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
++ kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
++ kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
++ kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
++ kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
++ kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
++ kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
++ kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
++ kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ #
+-# Other special mappings:
+-# Apple VT220
+-# HELP Find
+-# HOME Insert here
+-# PAGEUP Remove
+-# DEL Select
+-# END Prev Screen
+-# PAGEDOWN Next Screen
++xterm+pcf2|fragment with modifyFunctionKeys:2,
++ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S,
++ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
++ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
++ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q,
++ kf27=\E[1;5R, kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR,
++ kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
++ kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
++ kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R,
++ kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
++ kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
++ kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
++ kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
++ kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
++ kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
++ kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
++ kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~,
+ #
+-# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
+-# text.
++# Chunks from xterm #230:
++xterm+pce2|fragment with modifyCursorKeys:2,
++ kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
++ kNXT=\E[6;2~, kPRV=\E[5;2~, kich1=\E[2~, knp=\E[6~,
++ kpp=\E[5~, kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~,
++ kDC6=\E[3;6~, kDC7=\E[3;7~, kEND3=\E[1;3F, kEND4=\E[1;4F,
++ kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
++ kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H,
++ kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
++ kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~,
++ kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~,
++ kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
++ kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
++ use=xterm+edit,
++
++xterm+edit|fragment for 6-key editing-keypad,
++ kdch1=\E[3~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ use=xterm+pc+edit,
++
++xterm+pc+edit|fragment for pc-style editing keypad,
++ kend=\E[4~, khome=\E[1~,
++
++xterm+vt+edit|fragment for vt220-style editing keypad,
++ kfnd=\E[1~, kslt=\E[4~,
++
+ #
+-# The status-line manipulation is a mapping of the xterm-compatible control
+-# sequences for setting the window-title. So you must use tsl and fsl in
+-# pairs, since the latter ends the string that is loaded to the window-title.
+-ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+- am, hs, km, mir, msgr, xenl,
++# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
++# Alternatively, the same scheme with old-style function keys as in xterm-r6
++# is shown here (because that is used in mrxvt and mlterm):
++xterm+r6f2|xterm with oldFunctionKeys and modifyFunctionKeys:2,
++ kf1=\E[11~, kf13=\E[11;2~, kf14=\E[12;2~, kf15=\E[13;2~,
++ kf16=\E[14;2~, kf2=\E[12~, kf25=\E[11;5~, kf26=\E[12;5~,
++ kf27=\E[13;5~, kf28=\E[14;5~, kf3=\E[13~, kf37=\E[11;6~,
++ kf38=\E[12;6~, kf39=\E[13;6~, kf4=\E[14~, kf40=\E[14;6~,
++ kf49=\E[11;3~, kf50=\E[12;3~, kf51=\E[13;3~,
++ kf52=\E[14;3~, kf61=\E[11;4~, kf62=\E[12;4~,
++ kf63=\E[13;4~, use=xterm+pcf2,
++#
++# This chunk is used for building the VT220/Sun/PC keyboard variants.
++xterm-basic|modern xterm terminal emulator - common,
++ OTbs, am, bce, km, mir, msgr, xenl, AX, XT,
++ colors#8, cols#80, it#8, lines#24, pairs#64,
+ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
+- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
+- il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
+- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
+- kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
+- kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
+- kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
+- khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
+- rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
+- rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
+- rmso=\E[27m, rmul=\E[24m,
+- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
+- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
+- u8=\E[?62;1;6c, use=ansi+enq,
+-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+- use=ncsa-m, use=klone+color,
+-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
+- hs@,
+- dsl@, fsl@, tsl@, use=ncsa,
+-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
+- hs@,
+- dsl@, fsl@, tsl@, use=ncsa-m,
+-# alternate -TD:
+-# The documented function-key mapping refers to the Apple Extended Keyboard
+-# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
+-# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
+-# some keyboards and many applications require these as F1-F4.
+-#
+-ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
+- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
+- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, use=ncsa,
+-
+-#### Pilot Pro Palm-Top
+-#
+-# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
+-# http://www.ai/~iang/TGssh/
+-pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
+- OTbs, am, xenl,
+- cols#39, lines#16,
+- bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
+- cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
+- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
+- rmso=\EB, smso=\Eb,
+-
+-# From: Federico Bianchi <bianchi@www.arte.unipi.it>
+-# These entries are for the Embeddable Linux Kernel System (ELKS)
+-# project - an heavily stripped down Linux to be run on 16 bit
+-# boxes or, eventually, to be used in embedded systems - and have been
+-# adapted from the stock ELKS termcap. The project itself looks stalled,
+-# and the latest improvements I know of date back to March 2000.
+-#
+-# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
+-# as an added bonus, this deals with all the capabilities common to
+-# both VT52 and ANSI (or, eventually, "special") modes.
+-
+-elks-glasstty|ELKS glass-TTY capabilities,
+- OTbs, am,
+- cols#80, it#8, lines#25,
+- bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+- nel=^M^J,
++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
++ is2=\E[!p\E[?3;4l\E[4l\E>, kmous=\E[M, meml=\El,
++ memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
++ ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
++ rmir=\E[4l, rmkx=\E[?1l\E>, rmm=\E[?1034l, rmso=\E[27m,
++ rmul=\E[24m, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
++ sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h,
++ smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=,
++ smm=\E[?1034h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%i%p1%dd, E3=\E[3;J, use=ansi+pp, use=xterm+kbs,
++ use=vt100+enq,
+
+-elks-vt52|ELKS vt52 console,
+- clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK,
+- home=\EH, use=elks-glasstty,
++# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
++# In retrospect, something like xterm-r6 was intended here -TD
++xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
++ rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
+
+-elks-ansi|ELKS ANSI console,
+- clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+- rmso=\E[m, smso=\E[7m, use=elks-glasstty,
++# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
++# If configured to support 88- or 256-colors (which is fairly common in 2009),
++# xterm also recognizes the control sequences for initc -TD
++xterm-16color|xterm with 16 colors like aixterm,
++ ccc,
++ initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
++ use=ibm+16color, use=xterm-new,
+
+-# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
+-# instead of VT52, but the "elks" entry still refers to the latter.
++# 256-colors is a compile-time feature of XFree86 xterm beginning with
++# patch #111 (1999/7/10) -TD
++xterm+256color|xterm 256-color feature,
++ ccc,
++ colors#256, pairs#32767,
++ initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
++ setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
++ setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
++ setb@, setf@,
+
+-elks|default ELKS console,
+- use=elks-vt52,
++xterm+256setaf|xterm 256-color (set-only),
++ ccc@,
++ colors#256, pairs#32767,
++ initc@,
++ setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
++ setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
++ setb@, setf@,
+
+-# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS
+-# one but in screen size
++# 88-colors is a compile-time feature of XFree86 xterm beginning with
++# patch #115 (1999/9/18) -TD
++#
++# Note that the escape sequences used are the same as for 256-colors - xterm
++# has a different table of default color resource values. If built for
++# 256-colors, it can still handle an 88-color palette by using the initc
++# capability.
++#
++# At this time (2007/7/14), except for rxvt 2.7.x, none of the other terminals
++# which support the xterm+256color feature support the associated initc
++# capability. So it is cancelled in the entries which use this and/or the
++# xterm+256color block.
++#
++# The default color palette for the 256- and 88-colors are different. A
++# given executable will have one palette (perhaps compiled-in). If the program
++# supports xterm's control sequence, it can be programmed using initc.
++xterm+88color|xterm 88-color feature,
++ colors#88, pairs#7744, use=xterm+256color,
+
+-sibo|ELKS SIBO console,
+- cols#61, it#8, lines#20, use=elks-vt52,
++# These variants of XFree86 3.9.16 xterm are built as a configure option.
++xterm-256color|xterm with 256 colors,
++ use=xterm+256color, use=xterm-new,
++xterm-88color|xterm with 88 colors,
++ use=xterm+88color, use=xterm-256color,
+
+-######## COMMERCIAL WORKSTATION CONSOLES
+-#
++# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
++# asked for some of xterm's advanced features to be added to its terminfo
++# entry. It defines extended capabilities not found in standard terminfo or
++# termcap. These are useful in tmux, for instance, hence the name.
++#
++# One caveat in adding extended capabilities in ncurses is that if the names
++# are longer than two characters, then they will not be visible through the
++# termcap interface.
++#
++# Ms modifies the selection/clipboard. Its parameters are
++# p1 = the storage unit (clipboard, selection or cut buffer)
++# p2 = the base64-encoded clipboard content.
++#
++# Ss is used to set the cursor style as described by the DECSCUSR
++# function to a block or underline.
++# Se resets the cursor style to the terminal power-on default.
++#
++# Cs and Cr set and reset the cursor colour.
++xterm+tmux|advanced xterm features used in tmux,
++ Cr=\E]112\007, Cs=\E]12;%p1%s\007,
++ Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2 q, Ss=\E[%p1%d q,
+
+-#### Alpha consoles
++# This is another variant, for XFree86 4.0 xterm (T.Dickey)
++# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
++# To use it, your decTerminalID resource must be set to 200 or above.
++#
++# HTS \E H \210
++# RI \E M \215
++# SS3 \E O \217
++# CSI \E [ \233
+ #
++xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
++ OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
++ colors#8, cols#80, it#8, lines#24, pairs#64,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
++ civis=\233?25l, clear=\233H\2332J,
++ cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr,
++ cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J,
++ cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
++ cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h,
++ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
++ ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
++ flash=\233?5h$<100/>\233?5l, home=\233H,
++ hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
++ il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
++ is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
++ ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kc1=\217q,
++ kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
++ kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
++ kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
++ kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
++ kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
++ kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
++ kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
++ kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
++ knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
++ meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
++ ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
++ rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
++ rs1=\Ec,
++ rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
++ sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
++ setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
++ smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
++ smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
++ u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
++ use=xterm+kbs,
+
+-# This is from the OSF/1 Release 1.0 termcap file
+-pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
+- am, xon,
+- cols#80, lines#25,
+- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+- nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
++xterm-hp|xterm with hpterm function keys,
++ kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
++ kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
++ knp=\ES, kpp=\ET, use=xterm-basic,
+
+-#### Sun consoles
++xterm-sco|xterm with SCO function keys,
++ kbeg=\E[E, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V, kf11=\E[W,
++ kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a, kf16=\E[b,
++ kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f,
++ kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k,
++ kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O,
++ kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t,
++ kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y,
++ kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\,
++ kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{,
++ kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
++ kich1=\E[L, kmous=\E[>M, knp=\E[G, kpp=\E[I,
++ use=xterm-basic,
++
++# The xterm-new description has all of the features, but is not completely
++# compatible with vt220. If you are using a Sun or PC keyboard, set the
++# sunKeyboard resource to true:
++# + maps the editing keypad
++# + interprets control-function-key as a second array of keys, so a
++# 12-fkey keyboard can support vt220's 20-fkeys.
++# + maps numeric keypad "+" to ",".
++# + uses DEC-style control sequences for the application keypad.
+ #
++xterm-vt220|xterm emulating vt220,
++ kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
++ use=xterm+app, use=xterm+edit, use=xterm-basic,
++ use=vt220+keypad,
+
+-# :is1: resets scrolling region in case a previous user had used "tset vt100"
+-oldsun|Sun Microsystems Workstation console,
+- OTbs, am, km, mir, msgr,
+- cols#80, it#8, lines#34,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
+- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
+- rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+-# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
+-# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
+-# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
+-sun-il|Sun Microsystems console with working insert-line,
+- am, km, msgr,
+- cols#80, lines#34,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
+- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
+- kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
+- kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
+- kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
+- knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
+- kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
+- sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
+- u8=\E[1t, u9=\E[11t,
+-# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
+-# flake out on the last line. Unfortunately, without them the terminal has no
+-# way to scroll.
+-sun-cgsix|sun-ss5|Sun SparcStation 5 console,
+- il@, il1@, use=sun-il,
+-# If you are using an SS5, change the sun definition to use sun-ss5.
+-sun|sun1|sun2|Sun Microsystems Inc. workstation console,
+- use=sun-il,
++xterm-vt52|xterm emulating dec vt52,
++ cols#80, it#8, lines#24,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
++ home=\EH, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
++ use=xterm+kbs,
+
+-# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
+-sun-s|Sun Microsystems Workstation window with status line,
++xterm-noapp|xterm with cursor keys in normal mode,
++ rmcup@, rmkx=\E>, smcup@, smkx=\E=, use=xterm+noapp,
++ use=xterm,
++
++xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
++ lines#24, use=xterm-old,
++
++# This is xterm for ncurses.
++xterm|xterm terminal emulator (X Window System),
++ use=xterm-new,
++
++# This entry assumes that xterm's handling of VT100 SI/SO is disabled by
++# setting the vt100Graphics resource to false.
++xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
++ U8#1, use=xterm,
++
++# These building-blocks allow access to the X titlebar and icon name as a
++# status line. There are a few problems in using them in entries:
++#
++# a) tsl should have a parameter to denote the column on which to transfer to
++# the status line.
++# b) the "0" code for xterm updates both icon-title and window title. Some
++# window managers such as twm (and possibly window managers descended from
++# it such as tvtwm, ctwm, and vtwm) track windows by icon-name. Thus, you
++# don't want to mess with icon-name when using those window managers.
++#
++# The extension "TS" is preferable, because it does not accept a parameter.
++# However, if you are using a non-extended terminfo, "TS" is not visible.
++xterm+sl|access X title line and icon name,
+ hs,
+- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
+-sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
++ dsl=\E]0;\007, fsl=^G, tsl=\E]0;, TS=\E]0;,
++xterm+sl-twm|access X title line (pacify twm-descended window managers),
+ hs,
+- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
+-sun-48|Sun 48-line window,
+- cols#80, lines#48, use=sun,
+-sun-34|Sun 34-line window,
+- cols#80, lines#34, use=sun,
+-sun-24|Sun 24-line window,
+- cols#80, lines#24, use=sun,
+-sun-17|Sun 17-line window,
+- cols#80, lines#17, use=sun,
+-sun-12|Sun 12-line window,
+- cols#80, lines#12, use=sun,
+-sun-1|Sun 1-line window for sysline,
+- eslok, hs,
+- cols#80, lines#1,
+- dsl=^L, fsl=\E[K, tsl=^M, use=sun,
+-sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
+- ich1@, rmir@, smir@, use=sun,
+-sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
+- lines#35,
+- rmcup=\E[>4h, smcup=\E[>4l, use=sun,
+-sun-type4|Sun Workstation console with type 4 keyboard,
+- kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z,
+- kcuu1=\E[215z, use=sun-il,
++ dsl=\E]2;\007, fsl=^G, tsl=\E]2;, TS=\E]2;,
+
+-# Most of the current references to sun-color are from users wondering why this
+-# is the default on install. Details from reading the wscons manpage, adding
+-# cub, etc., here (rather than in the base sun-il entry) since it is not clear
+-# when those were added -TD (2005-05-28)
+-#
+-# According to wscons manpage, color is supported only on IA systems.
+-# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons
+-# does not list these. It also sets ncv#3, however that corresponds to
+-# underline and standout.
++# In contrast, this block can be used for a DEC vt320 and up. There are two
++# controls used.
+ #
+-# Since the documentation and terminfo do not agree, see also current code at
+-# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
++# DECSASD (select active status display)
++# \E[0$} Main display
++# \E[1$} Status line
++#
++# DECSSDT (select status line type)
++# \E[0$~ No status line
++# \E[1$~ Indicator status line
++# \E[2$~ Host-writable status line
++#
++# The building block assumes that the terminal always shows something at the
++# status line (either the indicator, or status line). That is because if no
++# status line is used, then the terminal makes that line part of the user
++# window, changing its size without notice.
++#
++# Because there is no "esl" (enable status line) capability, the "tsl"
++# capability ensures that the status line is host-writable. A DEC terminal
++# will clear the status line when changing from indicator to host-writable
++# mode.
++#
++# Once on the status line, the row part of cursor addressing is ignored. Since
++# tsl expects a parameter (to specify the column), the shortest addressing that
++# can be used for this purpose is HPA, e.g., \E[5d to go to column 5.
+ #
+-# That (actually a different driver which "supports" sun-color) also supports
+-# these features:
+-# vpa=\E[%i%p1%dd
+-# hpa=\E[%i%p1%d`
+-# cbt=\E[Z
+-# dim=\E[2m
+-# blink=\E[5m
+-# It supports bold, but not underline -TD (2009-09-19)
+-sun-color|Sun Microsystems Workstation console with color support (IA systems),
+- colors#8, ncv#3, pairs#64,
+- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+- cuu=\E[%p1%dA, home=\E[H, op=\E[0m, setab=\E[4%p1%dm,
+- setaf=\E[3%p1%dm,
+- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+- use=sun,
++dec+sl|DEC VTxx status line,
++ eslok, hs,
++ dsl=\E[1$~, fsl=\E[0$}, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
+
+-#### Iris consoles
+ #
+-
+-# (wsiris: this had extension capabilities
+-# :HS=\E7F2:HE=\E7F7:\
+-# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
+-# See the note on Iris extensions near the end of this file.
+-# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
+-# <flash> from BRL -- esr)
+-wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
+- OTbs, OTnc, OTpt, am,
+- OTkn#3, cols#80, it#8, lines#40,
+- OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
+- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+- cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
+- flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
+- ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
+- kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
+- rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
+- smul=\E7R2\E9P,
+-
+-#### NeWS consoles
+-#
+-# Console terminal windows under the NeWS (Sun's Display Postscript windowing
+-# environment). Note: these have nothing to do with Sony's News workstation
+-# line.
++# The following xterm variants don't depend on your base version
+ #
++# xterm with bold instead of underline
++xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
++ sgr=%?%p9%t\016%e\017%;B\E[0%?%p6%t;1%;%?%p2%t;1%;%?%p1%p3%|%t;7%;m,
++ smso=\E[7m, smul=\E[1m, use=xterm-old,
+
+-# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
+-# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
+-psterm|psterm-basic|NeWS psterm-80x34,
+- OTbs, am, hs, km, ul,
+- cols#80, it#8, lines#34,
+- blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;,
+- cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY,
+- dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl,
+- home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr,
+- ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^],
+- sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu,
+- tsl=\EOl,
+-psterm-96x48|NeWS psterm 96x48,
+- cols#96, lines#48, use=psterm,
+-psterm-90x28|NeWS psterm 90x28,
+- cols#90, lines#28, use=psterm,
+-psterm-80x24|NeWS psterm 80x24,
+- cols#80, lines#24, use=psterm,
+-# This is a faster termcap for psterm. Warning: if you use this termcap,
+-# some control characters you type will do strange things to the screen.
+-# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
+-psterm-fast|NeWS psterm fast version (flaky ctrl chars),
+- OTbs, am, hs, km, ul,
+- cols#80, it#8, lines#34,
+- blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;,
+- cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y,
+- dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I,
+- il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni,
+- rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi,
+- smso=^Oo, smul=^Ou, tsl=^Ol,
++# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
++xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
++ ich@, ich1@, use=xterm,
++# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
++xterm1|xterm terminal emulator ignoring the alternate screen buffer,
++ rmcup@, smcup@, use=xterm,
+
+-#### NeXT consoles
+-#
+-# Use `glasstty' for the Workspace application
+-#
++#### XTERM Mouse
++# The xterm mouse protocol is used by other terminal emulators.
++# In this section, two extended capabilities are used to illustrate the mouse
++# protocol: XM and xm. The "XM" capability is recognized by ncurses to allow
++# enabling/disabling other mouse protocols. The "xm" capability describes the
++# mouse response; currently there is no interpreter which would use this
++# information to make the mouse support completely data-driven.
++
++# Here is the "original" xterm mouse protocol.
++#
++# First seen in X10.3, February 1986, this likely dates from 1985 based on the
++# copyright dates in the sources. A comment in charproc.c notes "MIT bogus
++# sequence", referring to the fact that it does not correspond to a "real"
++# terminal. The mouse responses for the X10 protocol are sent only for
++# button-presses.
++xterm+x10mouse|X10 xterm mouse protocol,
++ kmous=\E[M, XM=\E[?9%?%p1%{1}%=%th%el%;,
++ xm=\E[M%p3%' '%+%c%p2%'!'%+%c%p1%'!'%+%c,
++xterm-x10mouse|X10 xterm mouse,
++ use=xterm+x10mouse, use=xterm,
++
++# Here is the conventional xterm mouse protocol, introduced with X11R1 in
++# September 1987.
++#
++# The mouse responses for the X11 protocol covered button releases, as well as
++# modifiers:
++# shift 4
++# alt/meta 8 (technically the "mod1" mask, because X11 has no such keys)
++# control 16
++#
++# The modifiers are not reflected in this description because as used in xterm
++# they are normally inaccessible because the translations resources assign
++# shift and control to other features. However, they are important because
++# they take up space in the first byte of the response. The other bits of this
++# byte are used to encode the button number for both presses and releases.
++# In the X11 protocol, any button-release is encoded with "3" (the lowest 2
++# bits in the byte). Later work on XFree86 xterm used the remaining 3 bits to
++# provide additional features, e.g., wheel mouse.
++#
++# X11R1's xterm also supported an "emacs" mouse protocol, with final character
++# "t" or "T", which was activated by double-clicking. The "t" response was
++# used when the starting/ending positions were the same.
++#
++# X11R3 (February 1988) added the highlight/tracking mode.
++#
++# X11R4 (December 1989) added the control sequences document, listing the
++# control sequences for the X10/X11 protocols without descriptions. It also
++# mentioned the "emacs" ("T") response. Comments in button.c referred to the
++# X11 protocol as "DEC vt200 compatible", although DEC offered no such terminal.
++#
++# X11R5 (November 1993) gave a description of the mouse protocol.
++#
++# X11R6 (January 1995) moved the control sequences document out of the xterm
++# source-directory to xc/doc/specs/xterm, polishing the formatting but adding
++# no new information.
++xterm+x11mouse|X11 xterm mouse protocol,
++ kmous=\E[M, XM=\E[?1000%?%p1%{1}%=%th%el%;,
++ xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%c%p1%'!'%+%c,
++xterm-x11mouse|X11 mouse,
++ use=xterm+x11mouse, use=xterm,
++
++# Here is a suggested description of the xterm highlighting protocol.
++# A more complicated example could be constructed to account for the "t"
++# response.
++xterm+x11hilite|X11 xterm mouse protocol with highlight,
++ kmous=\E[M, XM=\E[?1001%?%p1%{1}%=%th%el%;,
++ xm=\E[%p7%'!'%+%p6%'!'%+%c%p9%'!'%+%c%p8%'!'%+%c%p2%'!'%+%c%p1%'!'%+%cT,
++xterm-x11hilite|X11 mouse with highlight,
++ use=xterm+x11mouse, use=xterm,
++
++# The preceding were the sources from X Consortium. Other sources (or patches)
++# were available. Starting in mid-1995, XFree86 developers collected some of
++# those changes and began improvements, e.g., to support color. This was, by
++# the way, around the same time that rxvt developers began implementing color,
++# though dates (and attributions) are not well documented. I became interested
++# in xterm in late 1995, and involved in early 1996. To complete the picture,
++# CDE's dtterm was introduced around the same time, with no mouse protocol -TD
++
++# xterm patch #83 (1998/10/7), added Jason Bacon's changes to provide an
++# "any-event" mouse mode.
++xterm+sm+1002|xterm any-event mouse,
++ kmous=\E[M, XM=\E[?1002%?%p1%{1}%=%th%el%;,
++xterm-1002|xterm any-event mouse,
++ use=xterm+sm+1002, use=xterm,
+
+-# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
+-next|NeXT console,
+- am, xt,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+- ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
+- rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m,
+-nextshell|NeXT Shell application,
+- am,
+- cols#80,
+- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H,
+- kcud1=^J, nel=^M^J,
++xterm+sm+1003|testing xterm-mouse,
++ kmous=\E[M, XM=\E[?1003%?%p1%{1}%=%th%el%;,
+
+-#### Sony NEWS workstations
+-#
++xterm-1003|testing xterm-mouse,
++ use=xterm+sm+1003, use=xterm,
+
+-# (news-unk: this had :KB=news: -- esr)
+-news-unk|SONY NEWS vt100 emulator common entry,
+- OTbs, OTpt, am, xenl,
+- cols#80,
+- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
+- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
+- ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+- if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
+- is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
+- kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
+- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
+- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+-#
+-# (news-29: this had :TY=ascii: --esr)
+-news-29,
+- lines#29, use=news-unk,
+-# (news-29-euc: this had :TY=euc: --esr)
+-news-29-euc,
+- use=news-29,
+-# (news-29-sjis: this had :TY=sjis: --esr)
+-news-29-sjis,
+- use=news-29,
+-#
+-# (news-33: this had :TY=ascii: --esr)
+-news-33,
+- lines#33, use=news-unk,
+-# (news-33-euc: this had :TY=euc: --esr)
+-news-33-euc,
+- use=news-33,
+-# (news-33-sjis: this had :TY=sjis: --esr)
+-news-33-sjis,
+- use=news-33,
+-#
+-# (news-42: this had :TY=ascii: --esr)
+-news-42,
+- lines#42, use=news-unk,
+-# (news-42-euc: this had :TY=euc: --esr)
+-news-42-euc,
+- use=news-42,
+-# (news-42-sjis: this had :TY=sjis: --esr)
+-news-42-sjis,
+- use=news-42,
+-#
+-# NEWS-OS old termcap entry
+-#
+-# (news-old-unk: this had :KB=news:TY=sjis: --esr)
+-news-old-unk|SONY NEWS vt100 emulator common entry,
+- OTbs, OTpt, am, xenl,
+- cols#80, vt#3,
+- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
+- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
+- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+-#
+-# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
+-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
+- OTbs,
+- lines#40,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
+- use=news-old-unk,
+-#
+-# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
+-nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
+- lines#42,
+- is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
+- use=news-old-unk,
+-#
+-# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr)
+-nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
+- OTbs,
+- lines#40,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
+- use=news-old-unk,
+-#
+-# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
+-nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
+- OTbs,
+- lines#31,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
+- use=news-old-unk,
+-#
+-# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
+-# also the alias vt100-bm.
+-nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
+- OTbs,
+- lines#33,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8,
+- use=news-old-unk,
+-#
+-# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
+-nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
+- OTbs,
+- lines#31,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
+- use=news-old-unk,
+-#
+-# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
+-news28|sony vt100 emulator 28 lines,
+- OTbs,
+- lines#28,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8,
+- use=news-old-unk,
+-#
+-# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
+-news29|news28-a|sony vt100 emulator 29 lines,
+- lines#29,
+- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8,
+- use=news-old-unk,
+-#
+-# (news511: this had :TY=sjis: --esr)
+-nwp511|nwp-511|nwp-511 vt100,
+- OTbs, OTpt, am, xenl,
+- cols#80, lines#24,
+- clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
+- ed=\E[J$<30/>, el=\E[K$<3/>,
+- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
+- il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
+- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
+- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
+- rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
+- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+-# (news517: this had :TY=sjis:. --esr)
+-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
+- eslok, hs,
+- cols#80, lines#30,
+- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
+- is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- tsl=\E[1$}\E[;%df, use=vt200,
+-# (news517-w: this had :TY=sjis:. --esr)
+-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
+- eslok, hs,
+- cols#132, lines#50,
+- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
+- is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
+- tsl=\E[1$}\E[;%df, use=vt200,
++# xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
++# locator mode.
+
+-#### Common Desktop Environment
+-#
++# xterm patch #120 (1999/10/28) added my change to support wheel mouse, by
++# dropping support for the X11 mouse protocol's shift-modifier and using
++# available bits in the first byte of the response to encode buttons 4 and 5.
++# xterm patch #126 (2000/2/8) amended that change to avoid conflicting with
++# older configurations which might have used the obsolete modifiers.
++
++# xterm patch #262 (2010/8/30) added Ryan Johnson's changes to provide a mode
++# where the coordinates in the mouse response would be encoded in UTF-8,
++# thereby extending the range of coordinates past 222=(255-33). This is the
++# "1005" mouse mode.
++xterm+sm+1005|xterm UTF-8 mouse,
++ kmous=\E[M, XM=\E[?1005;1000%?%p1%{1}%=%th%el%;,
++ xm=\E[M%?%p4%t3%e%p3%' '%+%c%;%p2%'!'%+%u%p1%'!'%+%u,
++xterm-1005|xterm UTF-8 mouse,
++ use=xterm+sm+1005, use=xterm,
++
++# xterm patch #277 (2012/1/7) provides a mode where the mouse response uses
++# SGR-style parameters.
++#
++# Someone stated that the 1005 mouse mode would not be handled properly in luit.
++# (By the way, this is a problem with the X11 protocol). A more plausible
++# criticism is that the responses provided by the 1005 mode are not distinct
++# from the non-1005 responses.
++#
++# As an alternative (and fixing the longstanding limitation of X11 mouse
++# protocol regarding button-releases), I provided this:
++xterm+sm+1006|xterm SGR-mouse,
++ kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
++ xm=\E[<%p1%d;%p2%d;%p3%d;%?%p4%tM%em%;,
++xterm-1006|xterm SGR-mouse,
++ use=xterm+sm+1006, use=xterm,
+
+-# This ships with Sun's CDE in Solaris 2.5
+-# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
+-dtterm|CDE desktop terminal,
+- am, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, lm#0, ncv@,
++#### KTERM
++# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
++# (kterm should not invoke DEC Graphics as the alternate character set
++# -- Kenji Rikitake)
++# (proper setting of enacs, smacs, rmacs makes kterm to use DEC Graphics
++# -- MATSUMOTO Shoji)
++# kterm implements acsc via built-in table of X Drawable's
++kterm|kterm kanji terminal emulator (X window system),
++ eslok, hs, XT,
++ ncv@,
++ acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
++ csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
++ kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
++ tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
++kterm-color|kterm-co|kterm with ANSI colors,
++ ncv@, use=kterm, use=ecma+color,
++
++#### Other XTERM
++# These (xtermc and xtermm) are distributed with Solaris. They refer to a
++# variant of xterm which is apparently no longer supported, but are interesting
++# because they illustrate SVr4 curses mouse controls - T.Dickey
++xtermm|xterm terminal emulator (monocrome),
++ OTbs, am, km, mir, msgr, xenl,
++ btns#3, cols#80, it#8, lines#24,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
+- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+- ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
+- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kf0=\EOy,
++ kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf5=\EOT, kf6=\EOU,
++ kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kmous=\E[^_,
++ knp=\E[U, kpp=\E[V, rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM,
++ rmacs=^O, rmcup=\E@0\E[?4r, rmso=\E[m,
++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
++ smso=\E[7m, tbc=\E[3g, use=vt100+fnkeys,
++
++xtermc|xterm terminal emulator (color),
++ colors#8, ncv#7, pairs#64,
++ op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ use=xtermm,
++
++# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
++# Here's a termcap entry I've been using for xterm_color, which comes
++# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
++# color stuff, I also have a status line defined as the window manager
++# title bar. [I have translated it to terminfo -- ESR]
++xterm-pcolor|xterm with color used for highlights and status line,
++ wsl#40,
++ bold=\E[1;43m, rev=\E[7;34m,
++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1;43%;%?%p2%t;4;42%;%?%p1%t;7;31%;%?%p3%t;7;34%;%?%p4%t;5%;%?%p7%t;8%;m,
++ smso=\E[7;31m, smul=\E[4;42m, use=xterm+sl, use=xterm-r6,
++
++# This describes the capabilities of color_xterm, an xterm variant from
++# before ECMA-64 color support was folded into the main-line xterm release.
++# This entry is straight from color_xterm's maintainer.
++# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
++# The README's with the distribution also say that it supports SGR 21, 24, 25
++# and 27, but they are not present in the terminfo or termcap.
++color_xterm|cx|cx100|color_xterm color terminal emulator for X,
++ OTbs, am, km, mir, msgr, xenl, XT,
++ cols#80, it#8, lines#65, ncv@,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kf1=\E[11~,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
++ kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
++ rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
++ rmso=\E[27m, rmul=\E[24m,
++ rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
+ sc=\E7,
+- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
++ smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
++ smul=\E[4m, use=ecma+color, use=vt220+keypad,
+
+-#### Non-Unix Consoles
++# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
++# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
++# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
++# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
++# that each of those implements the home, end, delete keys differently.
+ #
++# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
++# colors; note that this is not compatible with the 5.2 version.
++# csw (2002-05-15): make xterm-color primary instead of nxterm, to
++# match XFree86's xterm.terminfo usage and prevent circular links
++xterm-color|nxterm|generic color xterm,
++ ncv@,
++ op=\E[m, use=xterm-r6, use=klone+color,
++
++# This entry describes an xterm with Sun-style function keys enabled
++# via the X resource setting "xterm*sunFunctionKeys:true"
++# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
++# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
++# because we want it to be seen as <kcpy>.
++# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
++# with their Sun keyboard labels instead.
++# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
++xterm-sun|xterm with sunFunctionKeys true,
++ kb2=\E[218z, kcpy=\E[197z, kcub1=\EOD, kcud1=\EOB,
++ kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3z, kend=\E[220z,
++ kent=\EOM, kf1=\E[224z, kf10=\E[233z, kf11=\E[192z,
++ kf12=\E[193z, kf13=\E[194z, kf14=\E[195z, kf15=\E[196z,
++ kf17=\E[198z, kf18=\E[199z, kf19=\E[200z, kf2=\E[225z,
++ kf20=\E[201z, kf3=\E[226z, kf31=\E[208z, kf32=\E[209z,
++ kf33=\E[210z, kf34=\E[211z, kf35=\E[212z, kf36=\E[213z,
++ kf38=\E[215z, kf4=\E[227z, kf40=\E[217z, kf42=\E[219z,
++ kf44=\E[221z, kf45=\E[222z, kf46=\E[234z, kf47=\E[235z,
++ kf5=\E[228z, kf6=\E[229z, kf7=\E[230z, kf8=\E[231z,
++ kf9=\E[232z, kfnd=\E[200z, khlp=\E[196z, khome=\E[214z,
++ kich1=\E[2z, knp=\E[222z, kpp=\E[216z, kund=\E[195z,
++ use=xterm-basic,
++xterms-sun|small (80x24) xterm with sunFunctionKeys true,
++ cols#80, lines#24, use=xterm-sun,
+
+-### EMX termcap.dat compatibility modes
++#### GNOME (VTE)
++# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
++gnome-rh62|Gnome terminal,
++ bce,
++ kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ use=xterm-color,
++
++# GNOME Terminal 1.4.0.4 (Redhat 7.2)
+ #
+-# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
+-# no_color_video to inform the application that standout(1), underline(2)
+-# reverse(4) and invisible(64) don't work with color.
+-emx-base|DOS special keys,
+- bce, bw,
+- it#8, ncv#71,
+- bel=^G, use=ansi.sys,
++# This implements a subset of vt102 with a random selection of features from
++# other terminals such as color and function-keys.
++#
++# shift-f1 to shift-f10 are f11 to f20
++#
++# NumLock changes the application keypad to approximate vt100 keypad, except
++# that there is no escape sequence matching comma (,).
++#
++# Other defects observed:
++# vt100 LNM mode is not implemented.
++# vt100 80/132 column mode is not implemented.
++# vt100 DECALN is not implemented.
++# vt100 DECSCNM mode is not implemented, so flash does not work.
++# vt100 TBC (tab reset) is not implemented.
++# xterm alternate screen controls do not restore cursor position properly
++# it hangs in tack after running function-keys test.
++gnome-rh72|GNOME Terminal,
++ bce, km@,
++ civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color,
+
+-# 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).
++# GNOME Terminal 2.0.1 (Redhat 8.0)
+ #
+-# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
+-ansi-emx|ANSI.SYS color,
+- am, bce, eo, mir, msgr, xon,
+- colors#8, cols#80, it#8, lines#25, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
+- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
+- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
+- kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J,
+- rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m,
+- rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m,
+- smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c,
+- u9=\E[c, use=emx-base,
+-# nice colors for Emacs (white on blue, mode line white on cyan)
+-ansi-color-2-emx|ANSI.SYS color 2,
+- clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m,
+- rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec,
+- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m,
+- smul=\E[1;36;44m, use=ansi-emx,
+-# nice colors for Emacs (white on black, mode line black on cyan)
+-ansi-color-3-emx|ANSI.SYS color 3,
+- clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m,
+- rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec,
+- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m,
+- smul=\E[0;36;40m, use=ansi-emx,
+-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
+- am,
+- cols#80, it#8, lines#24,
+- clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
+- ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
+- kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
+- kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
+- kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
+- sgr0=\E[0m,
++# Documentation now claims it implements vt220 (which is demonstrably false).
++# However, it does implement ECH, which is a vt220 feature. And there are
++# workable vt100 LNM, DECALN, DECSNM modes, making it possible to display
++# more of its bugs using vttest.
++#
++# However, note that bce and msgr are broken in this release. Tabs (tbc and
++# hts) are broken as well. Sometimes flash (as in xterm-new) works.
++#
++# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
++# operations. Shift-tab generates a distinct sequence so it can be argued
++# that it implements kcbt.
++gnome-rh80|GNOME Terminal,
++ bce@, msgr@,
++ ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l, kbs=\177,
++ kcbt=\E^I, op=\E[39;49m, use=gnome-rh72,
+
+-# Use this for cygwin32 (tested with beta 19.1)
+-# underline is colored bright magenta
+-# shifted kf1-kf12 are kf11-kf22
+-cygwinB19|ansi emulation for cygwin32,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
+- use=ansi.sys,
++# GNOME Terminal 2.2.1 (Redhat 9.0)
++#
++# bce and msgr are repaired.
++gnome-rh90|GNOME Terminal,
++ bce, msgr, XT,
++ hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
++ kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
++ vpa=\E[%i%p1%dd, use=xterm+pcf0, use=xterm+pcfkeys,
++ use=gnome-rh80,
+
+-# Use this for cygwin (tested with version 1.1.0).
+-# I've combined pcansi and linux. Some values of course were different and
+-# I've indicated which of these were and which I used.
+-# Cheers, earnie_boyd@yahoo.com
+-# several changes based on running with tack and comparing with older entry -TD
+-# more changes from csw:
+-# add cbt [backtab]
+-# remove eo [erase overstrike with blank]
+-# change clear was \E[H\E[J now \E[2J (faster?)
+-# remove cols
+-# remove lines
+-# remove ncv#3 [colors collide with highlights, bitmask] not applicable
+-# to MSDOS box?
+-# add cub [cursor back param]
+-# add cuf [cursor forward param]
+-# add cuu [cursor up param]
+-# add cud [cursor down param]
+-# add hs [has status line]
+-# add fsl [return from status line]
+-# add tsl [go to status line]
+-# add smacs [Start alt charset] (not sure if this works)
+-# add rmacs [End alt charset] (ditto)
+-# add smcup [enter_ca_mode] (save console; thanks Corinna)
+-# add rmcup [exit_ca_mode] (restore console; thanks Corinna)
+-# add kb2 [center of keypad]
+-# add u8 [user string 8] \E[?6c
+-# add el [clear to end of line] \E[K
+-# Notes:
+-# cnorm [make cursor normal] not implemented
+-# flash [flash] not implemented
+-# blink [blink] not implemented very usefully in cygwin? \E[5m
+-# dim [dim] not implemented very usefully in cygwin? \E[2m
+-# cub1 [cursor back 1] typically \E[D, but ^H is faster?
+-# kNXT [shifted next key] not implemented
+-# kPRV [shifted prev key] not implemented
+-# khome [home key] really is \E[1~ NOT \E[H
+-# tbc [clear tab stops] not implemented
+-# xenl [newline ignnored after 80 cols] messes up last line? Ehud Karni
+-# smpch [Start PC charset] is \E[11m, same as smacs
+-# rmpch [End PC charset] is \E[10m, same as rmacs
+-# mir [move in insert mode] fails in tack?
+-# bce [back color erase] causes problems with change background color?
+-# cvvis [make cursor very visible] causes a stackdump when testing with
+-# testcurs using the output option? \E[?25h\E[?8c
+-# civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
+-# ech [erase characters param] broken \E[%p1%dX
+-# kcbt [back-tab key] not implemented in cygwin? \E[Z
+-#
+-# 2005/11/12 -TD
+-# Remove cbt since it does not work in current cygwin
+-# Add 'mir' and 'in' flags based on tack
+-cygwin|ansi emulation for Cygwin,
+- am, hs, mir, msgr, xon,
+- colors#8, it#8, pairs#64,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD,
+- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H,
+- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G,
+- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
+- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
+- nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+- rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R,
+- sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+- sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
+- smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
+- vpa=\E[%i%p1%dd, use=vt102+enq,
++# GNOME Terminal 2.14.2 (Fedora Core 5)
++# Ed Catmur notes that gnome-terminal has recognized soft-reset since May 2002.
++gnome-fc5|GNOME Terminal,
++ rs1=\Ec,
++ rs2=\E7\E[r\E8\E[m\E[?7h\E[!p\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
++ use=ansi+enq, use=xterm+pcc0, use=gnome-rh90,
+
+-# I've supplied this so that you can help test new values and add other
+-# features. Cheers, earnie_boyd@yahoo.com.
++# GNOME Terminal 2.18.1 (2007 snapshot)
+ #
+-# Some features are from pcansi. The op value is from linux. Function-keys
+-# are from linux. These have been tested not to cause problems. xenl was in
+-# this list, but DOES cause problems so it has been removed
+-cygwinDBG|Debug Version for Cygwin,
+- am, eo, mir, msgr, xon,
+- colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
+- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$,
+- kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
+- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+- knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m,
+- rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l,
+- rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
+- sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
++# For any "recent" version of gnome-terminal, it is futile to attempt to
++# support modifiers on cursor- and keypad keys because the program usually
++# is hardcoded to set $TERM to "xterm", and on startup, it builds a subset
++# of the keys (which more/less correspond to the termcap values), and will
++# interpret those according to the $TERM value, but others not in the
++# terminfo according to some constantly changing set of hacker guidelines -TD
++vte-2007|VTE in GNOME Terminal snapshot 2.18.1,
++ use=xterm+pcc2, use=gnome-fc5,
++gnome-2007|GNOME Terminal snapshot 2.18.1,
++ use=vte-2007,
+
+-# Key definitions:
+-# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc. match the
+-# encodings used by other x86 environments. All others are invented for DJGPP.
+-# Oddly enough, while several combinations of modifiers are tabulated, there is
+-# none for shifted cursor keys.
++# GNOME Terminal 2.22.3 (2008 snapshot)
+ #
+-# F1 \E[[A
+-# F2 \E[[B
+-# F3 \E[[C
+-# F4 \E[[D
+-# F5 \E[[E
+-# F6 \E[17~
+-# F7 \E[18~
+-# F8 \E[19~
+-# F9 \E[20~
+-# F10 \E[21~
+-# F11 \E[23~
+-# F12 \E[24~
++# In vttest, it claims to be a vt220 with national replacement character-sets,
++# but aside from the identifier string, implements only a small fraction of
++# vt220's behavior, which will make it less usable on a VMS system (unclear
++# what the intent of the developer is, since the NRC feature exposed in vttest
++# by this change does not work).
++vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
++ use=vte+pcfkeys, use=vte-2007,
++gnome-2008|GNOME Terminal snapshot 2.22.3,
++ use=vte-2008,
++
++# GNOME Terminal 3.6.0 (2012)
++# VTE 0.34.1 was marked in git 2012-10-15 (three days after patch was applied
++# in ncurses). It inherited from gnome-fc5, which broke the modified forms
++# of f1-f4 -TD
++#
++# Testing with tack shows that flash does not/has not worked -TD
++vte-2012|VTE 0.34.1,
++ ncv#16,
++ dim=\E[2m, flash@, invis=\E[8m, ritm=\E[23m,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%;%?%p7%t;8%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
++ sitm=\E[3m, use=vte-2008,
++# Version 3.6.1 sets TERM to xterm-256color (still hardcoded), which has
++# 61 differences from a correct entry for gnome terminal.
++gnome-2012|GNOME Terminal 3.6.0,
++ use=vte-2012,
++
++# GNOME terminal may automatically use the contents of the "xterm" terminfo to
++# supply key information which is not built into the program. With 2.22.3,
++# this list is built into the program (which addresses the inadvertant use of
++# random terminfo data, though using a set of values which does not correspond
++# to any that xterm produces - still not solving the problem that GNOME
++# terminal hardcodes the $TERM variable as "xterm").
+ #
+-# Delete \E[3~
+-# Down Arrow \E[B
+-# End \E[4~
+-# Home \E[1~
+-# Insert \E[2~
+-# Left Arrow \E[D
+-# Page Down \E[6~
+-# Page Up \E[5~
+-# Right Arrow \E[C
+-# Up Arrow \E[A
++# terminfo modifier code keys
++# kf13-kf24 shift 2 F1 to F12
++# kf25-kf36 control 5 F1 to F12
++# kf37-kf48 shift/control 6 F1 to F12
++# kf49-kf60 alt 3 F1 to F12
++# kf61-kf63 shift-alt 4 F1 to F3
+ #
+-# Shift-F1 \E[25~
+-# Shift-F2 \E[26~
+-# Shift-F3 \E[27~
+-# Shift-F4 \E[28~
+-# Shift-F5 \E[29~
+-# Shift-F6 \E[30~
+-# Shift-F7 \E[31~
+-# Shift-F8 \E[32~
+-# Shift-F9 \E[33~
+-# Shift-F10 \E[34~
+-# Shift-F11 \E[35~
+-# Shift-F12 \E[36~
++# The parameters with \EO (SS3) are technically an error, since SS3 should have
++# no parameters. This appears to be rote copying based on xterm+pcc0.
++vte+pcfkeys|VTE's variation on xterm+pcfkeys,
++ kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
++ kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
++ kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
++ kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
++ kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
++ kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
++ use=xterm+pcfkeys,
++gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
++ use=vte+pcfkeys,
++
++vte|VTE aka GNOME Terminal,
++ use=vte-2012,
++gnome|GNOME Terminal,
++ use=vte,
++
++# palette is hardcoded...
++vte-256color|VTE with xterm 256-colors,
++ use=xterm+256color, use=vte,
++gnome-256color|GNOME Terminal with xterm 256-colors,
++ use=vte-256color,
++
++# XFCE Terminal 0.2.5.4beta2
+ #
+-# Ctrl-F1 \E[47~
+-# Ctrl-F2 \E[48~
+-# Ctrl-F3 \E[49~
+-# Ctrl-F4 \E[50~
+-# Ctrl-F5 \E[51~
+-# Ctrl-F6 \E[52~
+-# Ctrl-F7 \E[53~
+-# Ctrl-F8 \E[54~
+-# Ctrl-F9 \E[55~
+-# Ctrl-F10 \E[56~
+-# Ctrl-F11 \E[57~
+-# Ctrl-F12 \E[58~
++# This is based on some of the same source code, e.g., the VTE library, as
++# gnome-terminal, but has fewer features, fails more screens in vttest.
++# Since most of the terminfo-related behavior is due to the VTE library,
++# the terminfo is the same as gnome-terminal.
++xfce|Xfce Terminal,
++ use=vte-2008,
++
++#### Other GNOME
++# Multi-Gnome-Terminal 1.6.2
+ #
+-# Ctrl-Delete \E[43~
+-# Ctrl-Down Arrow \E[38~
+-# Ctrl-End \E[44~
+-# Ctrl-Home \E[41~
+-# Ctrl-Insert \E[42~
+-# Ctrl-Left Arrow \E[39~
+-# Ctrl-Page Down \E[46~
+-# Ctrl-Page Up \E[45~
+-# Ctrl-Right Arrow \E[40~
+-# Ctrl-Up Arrow \E[37~
++# This does not use VTE, and does have different behavior (compare xfce and
++# gnome).
++mgt|Multi GNOME Terminal,
++ indn=\E[%p1%dS, rin=\E[%p1%dT, use=xterm-xf86-v333,
++
++#### KDE
++# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
++# or not is debatable).
++kvt|KDE terminal,
++ bce, km@,
++ kdch1=\177, kend=\E[F, khome=\E[H, use=xterm-color,
++
++# Konsole 1.0.1
++# (formerly known as kvt)
+ #
+-# Alt-F1 \E[59~
+-# Alt-F2 \E[60~
+-# Alt-F3 \E[61~
+-# Alt-F4 \E[62~
+-# Alt-F5 \E[63~
+-# Alt-F6 \E[64~
+-# Alt-F7 \E[65~
+-# Alt-F8 \E[66~
+-# Alt-F9 \E[67~
+-# Alt-F10 \E[68~
+-# Alt-F11 \E[79~
+-# Alt-F12 \E[80~
++# This program hardcodes $TERM to 'xterm', which is not accurate. However, to
++# simplify this entry (and point out why konsole isn't xterm), we base this on
++# xterm-r6. The default keyboard appears to be 'linux'.
+ #
+-# Alt-Delete \E[65~
+-# Alt-Down Arrow \E[60~
+-# Alt-End \E[66~
+-# Alt-Home \E[41~
+-# Alt-Insert \E[64~
+-# Alt-Left Arrow \E[61~
+-# Alt-Page Down \E[68~
+-# Alt-Page Up \E[67~
+-# Alt-Right Arrow \E[62~
+-# Alt-Up Arrow \E[59~
++# Notes:
++# a) konsole implements several features from XFree86 xterm, though none of
++# that is documented - except of course in its source code - apparently
++# because its implementors are unaccustomed to reading documentation - as
++# evidenced by the sparse and poorly edited documentation distributed with
++# konsole. Some features such as the 1049 private mode are recognized but
++# incorrectly implemented as a duplicate of the 47 private mode.
++# b) even with the "vt100 (historical)" keyboard setting, the numeric keypad
++# sends PC-style escapes rather than vt100.
++# c) fails vttest menu 3 (Test of character sets) because it does not properly
++# parse some control sequences. Also fails vttest Primary Device Attributes
++# by sending a bogus code (in the source it says it's supposed to be a
++# vt220, which is doubly incorrect because it does not implement vt220
++# control sequences except for a few special cases). Treat it as a
++# mildly-broken vt102.
+ #
+-# Also:
+-# Alt-A \E[82~
+-# Alt-B \E[82~
+-# Alt-C \E[83~
+-# Alt-D \E[84~
+-# Alt-E \E[85~
+-# Alt-F \E[86~
+-# Alt-G \E[87~
+-# Alt-H \E[88~
+-# Alt-I \E[89~
+-# Alt-J \E[90~
+-# Alt-K \E[91~
+-# Alt-L \E[92~
+-# Alt-M \E[93~
+-# Alt-N \E[94~
+-# Alt-O \E[95~
+-# Alt-P \E[96~
+-# Alt-Q \E[97~
+-# Alt-R \E[98~
+-# Alt-S \E[99~
+-# Alt-T \E[100~
+-# Alt-U \E[101~
+-# Alt-V \E[102~
+-# Alt-W \E[103~
+-# Alt-X \E[104~
+-# Alt-Y \E[105~
+-# Alt-Z \E[106~
+-djgpp|ansi emulation for DJGPP alpha,
+- am, bce, msgr, xhp, xon, xt,
+- colors#8, it#8, pairs#64,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
+- clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+- indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+- kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J,
+- op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m,
+- sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
++# Update for konsole 1.3.2:
++# The 1049 private mode works (but see the other xterm screens in vttest).
++# Primary Device Attributes now returns the code for a vt100 with advanced
++# video option. Perhaps that's intended to be a "mildly-broken vt102".
++#
++# Updated for konsole 1.6.4:
++# add konsole-solaris
++#
++# Updated for konsole 1.6.6:
++# add control-key modifiers for function-keys, etc.
++#
++# Updated for konsole 2.12.4:
++# add sitm/ritm
++#
++# vttest menu 1 shows that both konsole and gnome terminal do wrapping
++# different from xterm (and vt100's). They have the same behavior in this
++# detail, but it is unclear which copies the other.
++konsole-base|KDE console window,
++ bce, km@, npc, XT,
++ ncv@,
++ bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
++ ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
++ hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1=\E[3~,
++ kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
++ kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
++ kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, ritm=\E[23m,
++ rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[0m\017, sitm=\E[3m, smam=\E[?7h, vpa=\E[%i%p1%dd,
++ use=ecma+color, use=xterm-r6,
++konsole-linux|KDE console window with linux keyboard,
++ kf1=\E[[A, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13@,
++ kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E[[B, kf20@,
++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, use=konsole-base,
++konsole-solaris|KDE console window with Solaris keyboard,
++ kbs=^H, kend=\E[4~, khome=\E[1~, use=konsole-vt100,
++# KDE's "XFree86 3.x.x" keyboard is based on reading the xterm terminfo rather
++# than testing the code.
++konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
++ kend=\E[4~, khome=\E[1~, use=konsole-vt100,
++# The value for kbs reflects local customization rather than the settings used
++# for XFree86 xterm.
++konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
++ kend=\EOF, khome=\EOH, use=konsole+pcfkeys,
++ use=konsole-vt100,
++# Konsole does not implement shifted cursor-keys.
++konsole+pcfkeys|konsole subset of xterm+pcfkeys,
++ kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
++ use=xterm+pcf0,
++# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
++# it is still useful for deriving the other entries.
++konsole-vt100|KDE console window with vt100 (sic) keyboard,
++ kbs=\177, kdch1=\E[3~, kend=\E[F, kf1=\E[11~, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@,
++ kf18@, kf19@, kf2=\E[12~, kf20@, kf3=\E[13~, kf4=\E[14~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[H, use=konsole-base,
++konsole-vt420pc|KDE console window with vt420 pc keyboard,
++ kbs=^H, kdch1=\177, use=konsole-vt100,
++konsole-16color|klone of xterm-16color,
++ ncv#32, use=ibm+16color, use=konsole,
++# make a default entry for konsole
++konsole|KDE console window,
++ use=konsole-xf4x,
+
+-djgpp203|Entry for DJGPP 2.03,
+- OTbs, am,
+- cols#80, it#8, lines#25,
+- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
+- kcud1=^J, nel=^M^J,
++# palette is hardcoded...
++konsole-256color|KDE console window with xterm 256-colors,
++ use=xterm+256setaf, use=konsole,
+
+-djgpp204|Entry for DJGPP 2.04,
+- OTbs, am, AX,
+- colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
+- clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD,
+- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P,
+- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+- il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, kf2=\E[[B,
+- kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+- kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m,
+- ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm,
+- setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++#### MLTERM
++# http://mlterm.sourceforge.net/
+
+-# This is tested using U/Win's telnet. Scrolling is omitted because it is
+-# buggy. Another odd bug appears when displaying "~" in alternate character
+-# set (the emulator spits out error messages). Compare with att6386 -TD
+-uwin|U/Win 3.2 console,
+- am, eo, in, msgr, xenl, xon,
+- colors#8, it#8, ncv#58, pairs#64,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
+- ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP,
+- kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX,
+- khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8,
+- rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m,
+- rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
+- smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
++mlterm|multi lingual terminal emulator,
++ use=mlterm3,
+
+-# This entry fits the Windows NT console when the _POSIX_TERM environment
+-# variable is set to 'on'. While the Windows NT POSIX console is seldom used,
+-# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
+-# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
+-# systems is not, and (surprise!) they match very well.
++# Tested mlterm 3.2.2:
++# mlterm 3.x has made changes, but they are not reflected in the included
++# mlterm.ti; this entry is based on testing with tack and vttest -TD
++mlterm3|multi lingual terminal emulator,
++ kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
++ ritm=\E[23m, sitm=\E[3m, use=xterm+app, use=xterm+pcf0,
++ use=xterm+pcc2, use=xterm+pce2, use=mlterm2,
++
++# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
+ #
+-# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
+-# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only
+-# are the installation instructions a pile of mind-numbing bureaucratese,
+-# but the termcap entry is actually broken and unusable as given; the :do:
+-# capability is misspelled "d".
++# It is nominally a vt102 emulator, with features borrowed from rxvt and
++# xterm.
+ #
+-# To use this, you need to a bunch of environment variables:
++# The function keys are numbered based on shift/control/alt modifiers, except
++# that the control-modifier itself is used to spawn a new copy of mlterm (the
++# "-P" option). So control/F1 to control/F12 may not be usable, depending on
++# how it is configured.
+ #
+-# SET _POSIX_TERM=on
+-# SET TERM=ansi
+-# SET TERMCAP=location of termcap file in POSIX file format
+-# which is case-sensitive.
+-# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
+-# SET TMP=//C/TEMP
++# kf1 to kf12 \E[11~ to \E[24~
++# shift kf1 to kf12 \E[11;2~ to \E[24;2~
++# alt kf1 to kf12 \E[11;3~ to \E[24;3~
++# shift/alt kf1 to kf12 \E[11;4~ to \E[24;4~
++# control kf1 to kf12 \E[11;5~ to \E[24;5~ (maybe)
++# control/shift kf1 to kf12 \E[11;6~ to \E[24;6~
++# control/alt kf1 to kf12 \E[11;7~ to \E[24;7~
++# control/shift/alt kf1 to kf12 \E[11;8~ to \E[24;8~
+ #
+-# Important note: setting the TMP environment variable in POSIX style renders
+-# it incompatible with a lot of other applications, including Visual C++. So
+-# you should have a separate command window just for vi. All the other
+-# variables may be permanently set in the Control Panel\System applet.
++mlterm2|multi lingual terminal emulator,
++ am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
++ colors#8, cols#80, it#8, lines#24, pairs#64,
++ acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
++ is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
++ kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kfnd=\E[1~,
++ khome=\EOH, kich1=\E[2~, kind=\EO1;2B, kmous=\E[M,
++ knp=\E[6~, kpp=\E[5~, kri=\EO1;2A, kslt=\E[4~, mc0=\E[i,
++ nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
++ rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
++ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
++ vpa=\E[%i%p1%dd, use=mlterm+pcfkeys, use=xterm+r6f2,
++
++# The insert/delete/home/end keys do not respond to modifiers because mlterm
++# looks in its termcap to decide which string to send. If it used terminfo
++# (when available), it could use the extended names introduced for xterm.
++mlterm+pcfkeys|fragment for PC-style fkeys,
++ kLFT=\EO1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO1;2C,
++ kDN=\EO1;2B, kDN3=\EO1;3B, kDN4=\EO1;4B, kDN5=\EO1;5B,
++ kDN6=\EO1;6B, kDN7=\EO1;7B, kIC5=\E[2;5~, kIC6=\E[2;6~,
++ kLFT3=\EO1;3D, kLFT4=\EO1;4D, kLFT5=\EO1;5D,
++ kLFT6=\EO1;6D, kLFT7=\EO1;7D, kNXT5=\E[6;5~,
++ kNXT6=\E[6;6~, kPRV5=\E[5;5~, kPRV6=\E[5;6~,
++ kRIT3=\EO1;3C, kRIT4=\EO1;4C, kRIT5=\EO1;5C,
++ kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
++ kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
++
++mlterm-256color|mlterm 3.0 with xterm 256-colors,
++ use=xterm+256color, use=mlterm,
++
++#### RXVT
++# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
++# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
++# Notes:
++# rxvt 2.21b uses
++# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
++# but some applications don't work with that.
++# It also has an AIX extension
++# box2=lqkxjmwuvtn,
++# and
++# ech=\E[%p1%dX,
++# but the latter does not work correctly.
+ #
+-# You can find out more about the restrictions of this facility at
+-# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
++# The distributed terminfo says it implements hpa and vpa, but they are not
++# implemented correctly, using relative rather than absolute positioning.
+ #
+-# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
+-ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode,
+- am, bw, msgr,
+- cols#80, it#8, lines#25,
+- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V,
+- kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m,
+- ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m,
+-# From: jew@venus.sunquest.com
+-# Date: 19 Feb 93 23:41:07 GMT
+-# Here's a combination of ansi and vt100 termcap
+-# entries that works nearly perfectly for me
+-# (Gateway 2000 Handbook and Microsoft Works 3.0):
+-pcmw|PC running Microsoft Works,
+- am, xenl,
+- cols#80, it#8, lines#24, vt#3,
+- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+- clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
+- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
+- ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
+- rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
+- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
+- tbc=\E[3g$<2/>,
+-
+-# From: Federico Bianchi
+-# This is the entry for the OpenNT terminal.
+-# The ntconsole name is for backward compatability.
+-# This is for OpenNT 2.0 and later.
+-# Later OpenNT was renamed to Interix.
++# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
++# Since rxvt is not really compatible with xterm, it should be configured as
++# "rxvt" or "rxvt-color".
+ #
+-# Presently it is distributed by Microsoft as Services For Unix (SFU).
+-# The 3.5 beta contains ncurses 4.2 (that is header files and executables,
+-# the documentation dates from 1.9.9e) -TD
+-
+-interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
+- am, bw, msgr,
+- colors#8, cols#80, lines#25, ncv#3, pairs#64,
+- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+- bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
+- cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+- indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA,
+- kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD,
+- kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI,
+- kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM,
+- kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR,
+- kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV,
+- kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa,
+- kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe,
+- kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj,
+- kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5,
+- kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt,
+- kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy,
+- kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-,
+- kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9,
+- kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J,
+- op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
+- rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
+- sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
+- sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m,
+-
+-opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
+- lines#35, use=opennt,
+-
+-opennt-50|ntconsole-50|OpenNT-term50 compatible with color,
+- lines#50, use=opennt,
+-
+-opennt-60|ntconsole-60|OpenNT-term60 compatible with color,
+- lines#60, use=opennt,
+-
+-opennt-100|ntconsole-100|OpenNT-term100 compatible with color,
+- lines#100, use=opennt,
+-
+-# OpenNT wide terminals
+-opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color,
+- cols#125, use=opennt,
+-
+-opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color,
+- lines#35, use=opennt-w,
+-
+-opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color,
+- lines#50, use=opennt-w,
+-
+-opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color,
+- lines#60, use=opennt-w,
+-
+-opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color,
+- cols#132, use=opennt,
+-
+-# OpenNT terminals with no smcup/rmcup (names match termcap entries)
+-interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color,
+- rmcup@, smcup@, use=opennt,
+-
+-opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color,
+- lines#35, use=opennt-nti,
+-
+-opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color,
+- lines#50, use=opennt-nti,
+-
+-opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color,
+- lines#60, use=opennt-nti,
+-
+-opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color,
+- lines#100, use=opennt-nti,
+-
+-######## COMMON TERMINAL TYPES
++# removed dch/dch1 because they are inconsistent with bce/ech -TD
++# remove km as per tack test -TD
++rxvt-basic|rxvt terminal base (X Window System),
++ OTbs, am, bce, eo, mir, msgr, xenl, xon, XT,
++ cols#80, it#8, lines#24,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I,
++ hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
++ ind=^J, is1=\E[?47l\E=\E[?1l,
++ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
++ kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
++ rmul=\E[24m,
++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
++ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
++ s0ds=\E(B, s1ds=\E(0, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
++ smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
++ use=rxvt+pcfkeys, use=vt220+keypad,
++# Key Codes from rxvt reference:
+ #
+-# This section describes terminal classes and maker brands that are still
+-# quite common, but have proprietary command sets not blessed by ANSI.
++# Note: Shift + F1-F10 generates F11-F20
+ #
+-
+-#### Altos
++# For the keypad, use Shift to temporarily override Application-Keypad
++# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
++# is off, escape sequences toggle Application-Keypad setting.
++# Also note that values of Home, End, Delete may have been compiled
++# differently on your system.
+ #
+-# Altos made a moderately successful line of UNIX boxes. In 1990 they were
+-# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
+-# Acer has a web site at http://www.acer.com.
++# Normal Shift Control Ctrl+Shift
++# Tab ^I ESC [ Z ^I ESC [ Z
++# BackSpace ^H ^? ^? ^?
++# Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
++# Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
++# Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
++# Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
++# Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
++# Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
++# Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
++# End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
++# Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
++# F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
++# F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
++# F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
++# F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
++# F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
++# F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
++# F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
++# F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
++# F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
++# F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
++# F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
++# F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
++# F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
++# F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
++# F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
++# F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
++# F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
++# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
++# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
++# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
+ #
+-# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
+-# His comments suggest they were shipped with the system.
++# Application
++# Up ESC [ A ESC [ a ESC O a ESC O A
++# Down ESC [ B ESC [ b ESC O b ESC O B
++# Right ESC [ C ESC [ c ESC O c ESC O C
++# Left ESC [ D ESC [ d ESC O d ESC O D
++# KP_Enter ^M ESC O M
++# KP_F1 ESC O P ESC O P
++# KP_F2 ESC O Q ESC O Q
++# KP_F3 ESC O R ESC O R
++# KP_F4 ESC O S ESC O S
++# XK_KP_Multiply * ESC O j
++# XK_KP_Add + ESC O k
++# XK_KP_Separator , ESC O l
++# XK_KP_Subtract - ESC O m
++# XK_KP_Decimal . ESC O n
++# XK_KP_Divide / ESC O o
++# XK_KP_0 0 ESC O p
++# XK_KP_1 1 ESC O q
++# XK_KP_2 2 ESC O r
++# XK_KP_3 3 ESC O s
++# XK_KP_4 4 ESC O t
++# XK_KP_5 5 ESC O u
++# XK_KP_6 6 ESC O v
++# XK_KP_7 7 ESC O w
++# XK_KP_8 8 ESC O x
++# XK_KP_9 9 ESC O y
++#
++# The source-code for rxvt actually defines mappings for F21-F35, using
++# "ESC [ 35 ~" to "ESC [ 49 ~". Keyboards with more than 12 function keys
++# are rare, so this entry uses the shift- and control-modifiers as in
++# xterm+pcfkeys to define keys past F12.
+ #
++# kIC is normally not used, since rxvt performs a paste for that (shifted
++# insert), unless private mode 35 is set.
++#
++# kDN, kDN5, kDN6, etc are extensions based on the names from xterm+pcfkeys -TD
++# Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
++rxvt+pcfkeys|fragment for PC-style fkeys,
++ kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
++ kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
++ kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf2=\E[12~, kf20=\E[34~, kf21=\E[23$, kf22=\E[24$,
++ kf23=\E[11\^, kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^,
++ kf27=\E[15\^, kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~,
++ kf30=\E[19\^, kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^,
++ kf34=\E[24\^, kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^,
++ kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
++ kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, knp=\E[6~,
++ kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@,
++ kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@,
++ kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@,
++ kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^,
++ kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa,
+
+-# (altos2: had extension capabilities
+-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
+-# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
+-# :HL=^AP\r:SP=\E[i:\
+-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+-# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
+-# Comparison with the k* capabilities makes it obvious that the c* things are
+-# shift keys. I have renamed them to keys 32 and up accordingly. Also,
+-# :sr: was given as a boolean-- esr)
+-altos2|alt2|altos-2|altos II,
+- cols#80, it#8, lines#24, xmc#0,
+- clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
+- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
+- if=/usr/share/tabset/vt100, il1=\E[L, ind=^J,
+- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
+- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
+- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
+- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
+- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
+- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
+- nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+- smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+-# (altos3: had extension capabilities
+-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
+-# :HL=^AP\r:SP=\E[i:\
+-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+-altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
+- blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
+-altos4|alt4|altos-4|altos IV,
+- use=wy50,
+-# (altos7: had extension capabilities:
+-# :GG#0:GI=\EH8:GF=\EH7:\
+-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+-# Comparison with the k* capabilities makes it obvious that the c* things are
+-# shift keys. I have renamed them to keys 32 and up accordingly. I have
+-# also made this entry relative to adm12 in order to give it an <sgr>. The
+-# <invis> imported by use=adm+sgr may work, let me know. -- esr)
+-altos7|alt7|altos VII,
+- am, mir,
+- cols#80, lines#24, xmc#0,
+- acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
+- clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
+- ind=^J, invis=\EG1,
+- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
+- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
+- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
+- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
+- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
+- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
+- knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej,
+- rmir=\Er, smir=\Eq, use=adm+sgr,
+-altos7pc|alt7pc|altos PC VII,
+- kend=\ET, use=altos7,
+-
+-#### Hewlett-Packard (hp)
++# rxvt was originally "xvt", first announced in April 1993:
++# http://www.informatica.co.cr/linux-desktops/research/1993/0416.html
+ #
+-# Hewlett-Packard
+-# 8000 Foothills Blvd
+-# Roseville, CA 95747
+-# Vox: 1-(916)-785-4363 (Technical response line for VDTs)
+-# 1-(800)-633-3600 (General customer support)
++# Though its change-log does not mention this, John Davis has stated that he
++# was the author of the changes to use the bce ("new color model") which was
++# incorporated into rxvt 2.11 (June 15, 1995). The change-log does not give
++# dates, nor give developer's names. Initial color support was added for rxvt
++# "2.0", which was sometime in 1994.
++#
++# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my work on
++# vttest, as well as bug reports to Mark Olesen. For instance, the fix
++# mentioned here
++# http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
++# was from one of my bug-reports -TD
++#
++# While the color model both for xterm and rxvt was based on Linux console,
++# Olesen (or possibly Davis) diverged in one respect from Linux's bce color
++# behavior: inserting/deleting characters does not fill the newly empty cell
++# with the default background color.
++rxvt|rxvt terminal emulator (X Window System),
++ ncv@,
++ hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
++ vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
++rxvt-color|rxvt terminal emulator (X Window System),
++ use=rxvt,
++rxvt-256color|rxvt 2.7.9 with xterm 256-colors,
++ use=xterm+256color, use=rxvt,
++rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
++ use=xterm+88color, use=rxvt,
++rxvt-xpm|rxvt terminal emulator (X Window System),
++ use=rxvt,
++rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
++ acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ use=rxvt,
++rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
++ acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
++ use=rxvt-cygwin,
++
++# This variant is supposed to work with rxvt 2.7.7 when compiled with
++# NO_BRIGHTCOLOR defined. rxvt needs more work...
++rxvt-16color|xterm with 16 colors like aixterm,
++ ncv#32, use=ibm+16color, use=rxvt,
++
++#### MRXVT
++# mrxvt 0.5.4
+ #
++# mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
++# makes its function-keys different from other flavors of rxvt -TD
+ #
+-# As of March 1998, HP no longer has any terminals in production.
+-# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
+-# supported (they still have parts). So are the 2392a and 2394a.
+-# See the WORKSTATION CONSOLES section for the 700s.
++# Testing with tack:
++# + made custom description (below) to work, though it sets TERM=xterm.
+ #
++# Testing with vttest:
++# + While "based on" rxvt, some of the basic functionality is broken. The
++# window collapses to a single line when running several of the screens
++# in vttest, e.g., the tests for cursor movement, screen features,
++# double-sized characters.
++# + The vt52 test works properly, but this is an exception. Due to the
++# other bug(s) most of vttest is untestable.
++# + the color test using ECH shows a gap in the bce model, like rxvt.
++#
++# Testing with xterm "vttest" scripts:
++# + resize.pl does not work because mrxvt does implement CSI 18 t
++# (not in rxvt, but not documented by mrxvt) but not CSI 19 t.
++# + none of the "dynamic colors" (OSC colors) scripts work.
++mrxvt|multitabbed rxvt,
++ XT,
++ kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
++ kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
++ kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~,
++ kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~,
++ kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys,
++ use=rxvt,
+
+-# Generic HP terminal - this should (hopefully) work on any HP terminal.
+-hpgeneric|hp|hewlett-packard generic terminal,
+- OTbs, OTpt, am, da, db, mir, xhp,
+- cols#80, lines#24, lm#0, vt#6,
+- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM,
+- ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
+- ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@,
+- sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
+- vpa=\E&a%p1%dY,
+-
+-hp110|hewlett-packard model 110 portable,
+- lines#16, use=hpgeneric,
+-
+-hp+pfk+cr|hp function keys with CR,
+- kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
+- kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
+-
+-hp+pfk-cr|hp function keys w/o CR,
+- kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
+- kf8=\Ew,
+-
+-# The hp2621s use the same keys for the arrows and function keys,
+-# but not separate escape sequences. These definitions allow the
+-# user to use those keys as arrow keys rather than as function
+-# keys.
+-hp+pfk+arrows|hp alternate arrow definitions,
+- kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
+- kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
+- kll=\Eq\r, kri=\Es\r,
+-
+-hp+arrows|hp arrow definitions,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
+- kind=\ES, kll=\EF, kri=\ET,
++mrxvt-256color|multitabbed rxvt with 256 colors,
++ use=xterm+256color, use=mrxvt,
+
+-# Generic stuff from the HP 262x series
++#### ETERM
++# From: Michael Jennings <mej@valinux.com>
+ #
+-hp262x|HP 262x terminals,
+- xhp,
+- blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
+- invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
+- kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
+- krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
+- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c,
+- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
+-
+-# Note: no <home> on HPs since that homes to top of memory, not screen.
+-# Due to severe 2621 braindamage, the only way to get the arrow keys to
+-# transmit anything at all is to turn on the function key labels
+-# with <smkx>, and even then the user has to hold down shift!
+-# The default 2621 turns off the labels except when it has to to
+-# enable the function keys. If your installation prefers labels
+-# on all the time, or off all the time (at the "expense" of the
+-# function keys), use 2621-nl or 2621-wl.
++# Eterm 0.9.3
+ #
+-# Note: there are newer ROMs for 2621's that allow you to set
+-# strap A so the regular arrow keys xmit \EA, etc, as with the
+-# 2645. However, even with this strap set, the terminal stops
+-# xmitting if you reset it, until you unset and reset the strap!
+-# Since there is no way to set/unset the strap with an escape
+-# sequence, we don't use it in the default.
+-# If you like, you can use 2621-ba (brain-damaged arrow keys).
+-hp2621-ba|2621 w/new rom and strap A set,
+- rmkx@, smkx@, use=hp+arrows, use=hp2621,
+-
+-# hp2621 with function labels. Most of the time they are off,
+-# but inside vi, the function key labels appear. You have to
+-# hold down shift to get them to xmit.
+-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
+- is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
+-hp2621-fl|hp 2621,
+- xhp@, xon,
+- pb#19200,
+- cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
+- ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
+- sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
+- use=hp+pfk+cr, use=hpgeneric,
++# removed kf0 which conflicts with kf10 -TD
++# remove cvvis which conflicts with cnorm -TD
++# Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
++# but does otherwise follow the rxvt+pcfkeys model -TD
++# remove nonworking flash -TD
++# remove km as per tack test -TD
++Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
++ am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT,
++ btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is1=\E[?47l\E>\E[?1l,
++ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
++ kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
++ kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
++ mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
++ rmso=\E[27m, rmul=\E[24m,
++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
++ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
++ smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%i%p1%dd, use=vt100+enq, use=rxvt+pcfkeys,
++ use=ecma+color,
+
+-# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
+-hp2621p|hp 2621 with printer,
+- mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
++Eterm-256color|Eterm with xterm 256-colors,
++ use=xterm+256color, use=Eterm,
+
+-hp2621p-a|hp2621p with fn as arrows,
+- use=hp+pfk+arrows, use=hp2621p,
++Eterm-88color|Eterm with 88 colors,
++ use=xterm+88color, use=Eterm,
+
+-# hp2621 with k45 keyboard
+-hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
+- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
++#### ATERM
++# Based on rxvt 2.4.8, it has a few differences in key bindings
++aterm|AfterStep terminal,
++ XT,
++ kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
+
+-# 2621 using all 48 lines of memory, only 24 visible at any time.
+-hp2621-48|48 line 2621,
+- lines#48,
+- cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
+- use=hp2621,
++#### XITERM
++# xiterm 0.5-5.2
++# This is not based on xterm's source...
++# vttest shows several problems with keyboard, cursor-movements.
++# see also http://invisible-island.net/xterm/xterm.faq.html#bug_xiterm
++xiterm|internationalized terminal emulator for X,
++ km@,
++ kbs=\177, kdch1=\E[3~, use=klone+color, use=xterm-r6,
+
+-# 2621 with no labels ever. Also prevents vi delays on escape.
+-hp2621-nl|hp 2621 with no labels,
+- kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
+- use=hp2621-fl,
+
+-# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
+-# (wrong).
+-#
+-hp2621-nt|hp 2621 w/no tabs,
+- ht@, use=hp2621,
++#### HPTERM
++# HP ships this (HPUX 9 and 10), except for the pb#9600 which was merged in
++# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS
++# chars look like --esr)
++hpterm|X-hpterm|hp X11 terminal emulator,
++ am, da, db, mir, xhp,
++ cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
++ acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
++ cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
++ cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
++ hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
++ kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
++ kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
++ khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
++ knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
++ memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
++ pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
++ pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
++ pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
++ rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
++ rmul=\E&d@,
++ sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
++ sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
++ smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
++# HPUX 11 provides a color version.
++hpterm-color|HP X11 terminal emulator with color,
++ ccc,
++ colors#64, pairs#8,
++ home=\E&a0y0C,
++ initp=\E&v%p2%da%p3%db%p4%dc%p5%dx%p6%dy%p7%dz%p1%dI,
++ op=\E&v0S, scp=\E&v%p1%dS, use=hpterm,
+
+-# Hp 2624 B with 4 or 10 pages of memory.
+-#
+-# Some assumptions are made with this entry. These settings are
+-# NOT set up by the initialization strings.
+-#
+-# Port Configuration
+-# RecvPace=Xon/Xoff
+-# XmitPace=Xon/Xoff
+-# StripNulDel=Yes
+-#
+-# Terminal Configuration
+-# InhHndShk=Yes
+-# InhDC2=Yes
+-# XmitFnctn(A)=No
+-# InhEolWrp=No
++#### EMU
++# This is for the extensible terminal emulator on the X11R6 contrib tape.
++# It corresponds to emu's internal emulation:
++# emu -term emu
++# emu's default sets TERM to "xterm", but that doesn't work well -TD
++# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
++# fixes: add civis, cnorm, sgr -TD
++emu|emu native mode,
++ am, bce, mir, msgr, xon,
++ colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
++ acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
++ bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
++ cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
++ cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC,
++ cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
++ dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
++ ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
++ hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG,
++ is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED,
++ kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01,
++ kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14,
++ kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19,
++ kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05,
++ kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind,
++ kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel,
++ op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES,
++ rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
++ setaf=\Er%i%p1%d;,
++ sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;,
++ sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
++
++# vt220 Terminfo entry for the Emu emulation, corresponds to
++# emu -term vt220
++# with NumLock set (to make the keypad transmit kf0-kf9).
++# fixes: add am, xenl, corrected sgr0 -TD
++emu-220|Emu-220 (vt200-7bit mode),
++ am, xenl, xon,
++ cols#80, it#8, lines#24, vt#200,
++ acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
++ blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l,
++ clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
++ cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
++ dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
++ ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
++ hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL,
++ il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
++ kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq,
++ kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ,
++ kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~,
++ kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~,
++ kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~,
++ kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw,
++ kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
++ knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m,
++ ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
++ rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
++ smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
++
++#### MVTERM
++# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
++# print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings
++# indicate that it emulates more than one terminal, but incompletely.
+ #
+-# Note: the 2624 DOES have a true <home>, believe it or not!
++# This is adapted from a FreeBSD bug-report by Daniel Rudy <dcrudy@pacbell.net>
++# It is based on vt102's entry, with some subtle differences, but also
++# has status line
++# supports ANSI colors (except for 'op' string)
++# apparently implements alternate screen like xterm
++# does not use padding, of course.
++mvterm|vv100|SwitchTerm aka mvTERM,
++ am, eslok, hs, km, mir, msgr, xenl,
++ colors#8, cols#80, it#8, lines#24, pairs#64,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ dsl=\E[?E, ed=\E[J, el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0,
++ fsl=\E[?F, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOy,
++ kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw,
++ op=\E[100m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmcup=\E[2J\E[?47l\E8, rmkx=\E[?1l\E>, rmso=\E[m,
++ rmul=\E[m,
++ rs2=\E>\E[1;3;4;5;6l\E[?7h\E[100m\E[m\E[r\E[2J\E[H,
++ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[?E\E[?%i%p1%dT, use=vt100+fnkeys,
++
++#### MTERM
+ #
+-# The 2624 has an "error line" to which messages can be sent.
+-# This is CLOSE to what is expected for a "status line". However,
+-# after a message is sent to the "error line", the next carriage
+-# return is EATEN and the "error line" is turned back off again!
+-# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>.
++# This application is available by email from <mouse@Rodents.Montreal.QC.CA>.
+ #
+-# This entry supports emacs (and any other program that uses raw
+-# mode) at 4800 baud and less. I couldn't get the padding right
+-# for 9600.
++# "mterm -type ansi" sets $TERM to "ansi"
++mterm-ansi|ANSI emulation,
++ am, bw, mir, msgr,
++ it#8,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
++ el=\E[K, home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=,
++ il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
++ invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m,
++ ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m,
++ rmul=\E[24m,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++ vpa=\E[%i%p1%dd,
++# mterm normally sets $TERM to "mterm"
++mterm|mouse-sun|Der Mouse term,
++ am, bw, mir,
++ it#8,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^N, cuf1=^S,
++ cup=\006%p1%d.%p2%d., cuu1=^X, dch1=^Y, dl1=^K, ed=^B, el=^C,
++ home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W,
++ rmir=^O, rmso=^T, smir=^Q, smso=^V,
++# "mterm -type decansi" sets $TERM to "decansi"
+ #
+-# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
+-hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
+- da, db,
+- lm#96,
+- flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F,
+- use=hp+labels, use=scrhp,
++# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
++decansi|ANSI emulation with DEC compatibility hacks,
++ am, mir, msgr, xenl,
++ colors#8, it#8, pairs#64,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E(B\E)0,
++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
++ il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m,
++ is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB,
++ kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
++ kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
++ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
++ kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
++ ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
++ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
++ u7=\E[6n, vpa=\E[%i%p1%dd,
+
+-# This hp2626 entry does not use any of the fancy windowing stuff
+-# of the 2626.
+-#
+-# Indeed, terminfo does not yet handle such stuff. Since changing
+-# any window clears memory, it is probably not possible to use
+-# this for screen opt.
+-#
+-# ed is incredibly slow most of the time - I am guessing at the
+-# exact padding. Since the terminal uses xoff/xon this is intended
+-# only for cost computation, so that the terminal will prefer el
+-# or even dl1 which is probably faster!
++#### VWM
++# http://vwm.sourceforge.net/
+ #
+-# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
+-# extra slow on the last line of the window.
++# VWM 2.0.2 (2009-05-01)
++# vwmterm is a terminal emulator written for the VWM console window manager.
++# This version is obsolete, replaced by libvterm in 2.1.0 (2009-10-23).
++vwmterm|(vwm term),
++ am, bce, ccc, mir, msgr, npc, xenl, xon,
++ colors#8, pairs#64,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD,
++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, cvvis=\E[?25h, dim=\E[2m, ed=\E[J, el=\E[K,
++ home=\E[H, il1=\E[L, ind=^J, invis=\E[8m, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
++ kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[22~,
++ kf12=\E[23~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmacs=\E[10m,
++ rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
++ sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h,
++ smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
++
++#### MGR
+ #
+-# The padding probably should be changed.
++# MGR is a Bell Labs window system lighter-weight than X.
++# These entries describe MGR's xterm-equivalent.
++# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
+ #
+-hp2626|hp2626a|hp2626p|hp 2626,
+- da, db,
+- lm#0, pb#19200,
+- ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
+- is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
+- use=hp+labels, use=scrhp,
+
+-# This entry is for sysline. It allocates a 23 line window with
+-# a 115 line workspace for regular use, and a 1 line window for
+-# the status line.
+-#
+-# This assumes port 2 is being used.
+-# Turn off horizontal line, Create ws #1 with 115 lines,
+-# Create ws #2 with 1 line, Create window #1 lines 1-23,
+-# Create window #2 lines 24-24, Attach cursor to workspace #1.
+-# Note that this clears the tabs so it must be done by tset before
+-# it sets the tabs.
+-#
+-hp2626-s|hp 2626 using only 23 lines,
+- eslok, hs,
+- lines#23,
+- fsl=\E&d@\E&w7f2p1I\E&w4f1I,
+- is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r,
+- tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
+-# Force terminal back to 24 lines after being 23.
+-hp2626-ns|hp 2626 using all 24 lines,
+- is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r,
+- use=hp2626,
+-# Various entries useful for small windows on 2626.
+-hp2626-12|hewlett-packard 2626 12 lines,
+- lines#12, use=hp2626,
+-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
+- cols#40, lines#12, use=hp2626,
+-hp2626-x40|hewlett-packard 2626 40 columns,
+- cols#40, use=hp2626,
+-hp2626-12-s|hewlett-packard 2626 11 lines plus status,
+- lines#11, use=hp2626-s,
++mgr|Bellcore MGR (non X) window system terminal emulation,
++ am, km,
++ bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
++ csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
++ cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
++ dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>,
++ dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u,
++ ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>,
++ il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S,
++ rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
++ smul=\E4n,
++mgr-sun|Mgr window with Sun keyboard,
++ ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z,
++ kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z,
++ kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z,
++ kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z,
++ kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
++ kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z,
++ kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr,
++mgr-linux|Mgr window with Linux keyboard,
++ ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~,
++ kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
+
++#### SIMPLETERM
++# st.suckless.org
++# st-0.4.1
++#
++# This version uses a table which supports a single modifier (a subset of
++# xterm's keys, using the same scheme). Because it supports only a single
++# modifier in this table, function keys f36-f48 are normally unavailable
++# because they are assigned to modifier-4.
++#
++# The program assigns TERM to match the program name (the upstream source says
++# "st", but Debian renames it to "stterm").
++#
++# The source includes two entries which are not useful here:
++# st-meta| simpleterm with meta key,
++# st-meta-256color| simpleterm with meta key and 256 colors,
++# because st's notion of "meta" does not correspond to the terminfo definition.
++# Rather, it acts like xterm - when the meta feature is disabled.
++#
++# Removed invis -TD
++st|stterm| simpleterm 0.4.1,
++ am, bce, hs, mir, msgr, ul, xenl,
++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E)0, flash=\E[?5h\E[?5l, fsl=^G, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
++ is2=\E[4l\E>\E[?1034l, 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, ka1=\E[1~, ka3=\E[5~, kb2=\EOu,
++ kbs=\177, kc1=\E[4~, kc3=\E[6~, kcbt=\E[Z, kclr=\E[3;5~,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kdl1=\E[3;2~, ked=\E[1;5F, kel=\E[1;2F,
++ kend=\E[4~, kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R,
++ kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
++ kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
++ kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
++ kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
++ kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
++ kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
++ kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q,
++ kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~,
++ kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
++ kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
++ kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q,
++ kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
++ kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
++ kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
++ kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
++ kil1=\E[2;5~, kind=\E[1;2B, kmous=\E[M, knp=\E[6~,
++ kpp=\E[5~, kri=\E[1;2A, krmir=\E[2;2~, op=\E[39;49m,
++ rc=\E8, rev=\E[7m, ri=\EM, ritm=\E[23m, rmacs=\E(B,
++ rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
++ rmul=\E[m, rs1=\Ec, rs2=\E[4l\E>\E[?1034l, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%;m,
++ sgr0=\E[0m, sitm=\E[3m, smacs=\E(0, smcup=\E[?1049h,
++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n,
++ u8=\E[?1;2c, u9=\E[c, vpa=\E[%i%p1%dd,
+ #
+-# hp2627 color tubes from University of Wisconsin
++# st-0.1.1
+ #
+-hp2627a-rev|hp 2627 with reverse video colors,
+- cr=^M, cud1=^J, ht=^I, ind=^J,
+- is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r,
+- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@,
+- smul=\E&dD\E&v1S, use=hp2621-nl,
+-hp2627a|hp 2627 color terminal with no labels,
+- cr=^M, cud1=^J, ht=^I, ind=^J,
+- is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
+- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
+- rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
+- use=hp2621-nl,
+-hp2627c|hp 2627 color (cyan) terminal with no labels,
+- cr=^M, cud1=^J, ht=^I, ind=^J,
+- is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
+- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
++# Note: the original terminfo description uses leading blank to persuade
++# ncurses to use "st" as its name. Proper fix for that is to use "st" as an
++# alias.
++#
++# Reading the code shows it should work for aixterm 16-colors
++# - added st-16color
++#
++# Using tack:
++# - set eo (erase-overstrike)
++# - set xenl
++# - tbc doesn't work
++# - hts works
++# - cbt doesn't work
++# - shifted cursor-keys send sequences like rxvt
++# - sgr referred to unimplemented "invis" mode.
++# Fixes: add eo and xenl per tack, remove nonworking cbt, hts and tbc, invis
++simpleterm|old-st| simpleterm 0.1.1,
++ am, eo, mir, msgr, ul, xenl,
++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
++ cnorm=\E[?12l\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=\177,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, knp=\E[6~, kpp=\E[5~, op=\E[37;40m, rc=\E8,
++ rev=\E[7m, rmacs=\E(B, rmso=\E[m, rmul=\E[m, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
++ sgr0=\E[0m, smacs=\E(0, smso=\E[7m, smul=\E[4m,
++st-16color|stterm-16color|simpleterm with 16-colors,
++ use=ibm+16color, use=st,
++# 256 colors "works", but when running xterm's test-scripts, some garbage is
++# shown in the titlebar.
++#
++# terminal wants to use TERM=stterm-256color, but that is longer than 14
++# characters, making the choice nonportable.
++st-256color|stterm-256color|simpleterm with 256 colors,
++ use=xterm+256color, use=st,
++
++#### TERMINATOR
++# https://code.google.com/p/jessies/
++# Tested using their Debian package org.jessies.terminator 6.104.3256 on 64-bit
++# Debian/current -TD (2011/8/20)
++#
++# There are some packaging problems:
++# a) using Java, the program starts off using 50Mb, and climbs from there,
++# up to 114Mb after testing (no scrollback).
++# b) it insists on reinstalling its terminal description in $HOME/.terminfo
++# (two copies, just in case the host happens to be Mac OS X).
++# I deleted this after testing with tack.
++#
++# Issues/features found with tack:
++# a) tbc does not work (implying that hts also is broken).
++# Comparing with the tabs utility shows a problem with the last tabstop on
++# a line.
++# b) has xterm-style shifted function-key strings
++# meta also is used, but control is ignored.
++# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta)
++# d) some combinations of shift/control send xterm-style sequences for
++# insert/delete/home/end.
++# e) numeric keypad sends only numbers (compare with vttest).
++# f) meta mode (km) is not implemented.
++#
++# Issues found with ncurses test-program:
++# a) bce is inconsistently implemented
++# b) widths of Unicode values above 256 do not always agree with wcwidth.
++#
++# Checked with vttest, found low degree of compatibility there.
++#
++# Checked with xterm's scripts, found that the 256-color palette is fixed.
++#
++# Fixes:
++# a) add sgr string
++# b) corrected sgr0 to reset alternate character set
++# c) modified smacs/rmacs to use SCS rather than SI/SO
++# d) removed bce
++# e) removed km
++terminator|Terminator no line wrap,
++ eo, mir, msgr, xenl, xon,
++ colors#256, cols#80, it#8, lines#24, lm#0, pairs#32767,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bold=\E[1m, civis=\E[?25l, clear=\E[H\E[2J,
++ cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E(B\E)0, flash=^G, home=\E[H, hpa=\E[%i%p1%dG,
++ ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is1=\E[?47l\E=\E[?1l,
++ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
++ kf15=\E[28~, kf16=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B,
++ rmcup=\E[?47l\E8, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
++ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
++ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
++ s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[48;5;%p1%dm,
++ setaf=\E[38;5;%p1%dm,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\E[m\E(B, smacs=\E(0, smcup=\E7\E[?47h, smir=\E[4h,
++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
++ use=xterm+sl-twm,
++
++#### TERMINOLOGY
++# http://enlightenment.org
++#
++# Tested terminology-0.3.0, 0.6.1, using tack and vttest. This is not a vt100
++# emulator, nor is it compatible with xterm, but it uses a few features from
++# both -TD
++#
++# General comments:
++# cursor does not fill on focus
++# there are pervasive problems with clearing/erasing parts of the screen
++# resizing the window causes it to stop listening to the keyboard
++# tack -
++# doesn't understand vt100 CPR needed for resize
++# no CBT
++# no cvvis
++# has invis
++# no blink
++# uses bce model for colors, but (see below) fails the vttest screens
++# has partial support for 256color feature.
++# tack function-keys (a subset of xterm+pcf0), and
++# tack cursor-keys (a subset of xterm+pce2):
++# ctrl+shift (ignored)
++# 2 shift
++# shift-alt modifier -> shift (2)
++# 3 alt
++# 4
++# 5 ctrl
++# tack modifiers did not work for fkeys in 0.3.0; subset works in 0.6.1
++# ctrl + khome/kend works - none of the other modifiers do
++# vttest -
++# spits lots of messages from termptyesc.c especially in vttest.
++# no 132-column mode
++# fails menu 1, 2 (definitely not vt100-compatible)
++# primary (claims vt420 with several options, apparently none work) and
++# secondary report says (perhaps... vt420): \E[>41;285;0c
++# CHA, HPR, VPA, CNL, CPL work
++# BCE with ED/EL - fail
++# BCE with ECH/indexing - fail
++# SD/SU work
++# unlike teken, background light/dark works
++# can set title
++# X10 and Normal mouse work
++# Any-event mouse works
++# Mouse button-event works
++#
++# This description uses xterm+pcf0, which is misleading because the program
++# does not handle combinations of modifiers - but listing them all would
++# involve more effort than its developers spent -TD
++terminology|EFL-based terminal emulator,
++ mc5i@, xon@,
++ blink@, ed@, el@, el1@, invis=\E[8m, kLFT=\E[1;2D,
++ kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ kind=\E[1;2B, kri=\E[1;2A,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
++ vpa=\E[%i%p1%dd, kDC3=\E[3;3~, kDC4=\E[3;4~,
++ kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B,
++ kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B,
++ kDN7=\E[1;7B, kEND5=\E[1;5F, kHOM5=\E[1;5H,
++ kLFT3=\E[1;3D, kLFT4=\E[1;4D, kLFT5=\E[1;5D,
++ kLFT6=\E[1;6D, kLFT7=\E[1;7D, kRIT3=\E[1;3C,
++ kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C,
++ kRIT7=\E[1;7C, kUP=\E[1;2A, use=xterm+pcf0, use=vt100,
++ use=xterm+256setaf,
+
+-# hp2640a doesn't have the Y cursor addressing feature, and C is
+-# memory relative instead of screen relative, as we need.
++######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
+ #
+-hp2640a|hp 2640a,
+- cup@, rmkx@, smkx@, use=hp2645,
+-
+-hp2640b|hp2644a|hp 264x series,
+- rmkx@, smkx@, use=hp2645,
+-
+-# (hp2641a: removed unknown :gu: -- esr)
+-hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
+- am, da, db, mir, xhp,
+- cols#80, lines#24,
+- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
+- ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I,
+- if=/usr/share/tabset/std, il1=\EL, ind=^J,
+- is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
+- rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
+- vpa=\E&a%p1%2dY,
+-
+-# This terminal should be used at 4800 baud or less. It needs padding for
+-# plain characters at 9600, I guessed at an appropriate cr delay. It really
+-# wants ^E/^F handshaking, but that doesn't work well even if you write
+-# software to support it.
+-hp2645|hp45|HP 2645 series,
+- pb#9600,
+- blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+- ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
+- kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
+- rmkx=\E&s0A,
+- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
+- sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
+-# You should use this terminal at 4800 baud or less.
+-hp2648|hp2648a|HP 2648a graphics terminal,
+- clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
+- dch1=\EP$<7>, ip=$<5>, use=hp2645,
+-
+-# The HP 150 terminal is a fairly vanilla HP terminal, with the
+-# clreol standout problem. It also has graphics capabilities and
+-# a touch screen, which we don't describe here.
+-hp150|hewlett packard Model 150,
+- OTbs, use=hp2622,
+
+-# HP 2382a terminals, "the little ones." They don't have any
+-# alternate character set support and sending out ^N/^O will
+-# leave the screen blank.
+-hp2382a|hp2382|hewlett packard 2382a,
+- da, db,
+- lh#1, lm#48,
+- acsc@,
+- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
+- rmacs@,
+- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c,
+- sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp,
++# Columbus UNIX virtual terminal. This terminal also appears in
++# UNIX 4.0 and successors as line discipline 1 (?), but is
++# undocumented and does not really work quite right.
++cbunix|cb unix virtual terminal,
++ OTbs, am, da, db,
++ cols#80, lines#24, lm#0,
++ bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
++ el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
++ smso=\Ea^D, smul=\Ea^A,
++# (vremote: removed obsolete ":nl@:" -- esr)
++vremote|virtual remote terminal,
++ am@,
++ cols#79, use=cbunix,
+
+-hp2621-a|hp2621a-a|hp2621 with fn as arrows,
+- use=hp+pfk+arrows, use=hp2621-fl,
++pty|4bsd pseudo teletype,
++ cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
++ smso=\Ea$, smul=\Ea!, use=cbunix,
+
+-# newer hewlett packard terminals
++#### Emacs
+
+-newhpkeyboard|generic entry for HP extended keyboard,
+- kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
+- kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
+- kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
+- use=hp+pfk-cr,
++# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
++eterm|gnu emacs term.el terminal emulation,
++ am, mir, xenl,
++ cols#80, lines#24,
++ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, rev=\E[7m,
++ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
++ smul=\E[4m,
+
+-newhp|generic entry for new hewlett packard terminals,
+- am, bw, mir, xhp, xon,
+- cols#80, lines#24, pb#4800,
+- acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x.,
+- bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H,
+- cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
+- dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J,
+- invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J,
+- pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s,
+- pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s,
+- pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET,
+- rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg,
+- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;,
+- sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD,
+- tbc=\E3, use=newhpkeyboard,
++# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
++eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
++ am, mir, msgr, xenl,
++ colors#8, cols#80, lines#24, pairs#64,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
++ knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
++ ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
++ sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
++ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
++ sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++ u6=\E[%i%d;%dR, u7=\E[6n,
+
+-memhp|memory relative addressing for new HP ttys,
+- vt#6,
+- clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR,
+- cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR,
+- home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r,
+- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp,
++#### Screen
+
+-scrhp|screen relative addressing for new HP ttys,
+- clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC,
+- cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC,
+- cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR,
+- home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA,
+- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp,
++# Entries for use by the `screen' program by Juergen Weigert,
++# Michael Schroeder, Oliver Laumann. The screen and
++# screen-w entries came with version 3.7.1. The screen2 and screen3 entries
++# come from University of Wisconsin and may be older.
++# (screen: added <cnorm> on ANSI model -- esr)
++#
++# 'screen' defines extensions to termcap. Some are used in its terminal
++# description:
++# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
++# AX (bool) Does understand ANSI set default fg/bg color
++# (\E[39m / \E[49m).
++# S0 (str) Switch charset 'G0' to the specified charset.
++# E0 (str) Switch charset 'G0' back to standard charset.
++#
++# Initially tested with screen 3.09.08
++#
++# According to its manual page
++#
++# Screen is a full-screen window manager that multiplexes a physical
++# terminal between several processes (typically interactive shells). Each
++# virtual terminal provides the functions of a DEC VT100 terminal and, in
++# addition, several control functions from the ISO 6429 (ECMA 48, ANSI
++# X3.64) and ISO 2022 standards (e.g. insert/delete line and support for
++# multiple character sets).
++#
++# However, there is a design error in its support for video highlights. The
++# program uses a table (rendlist) which equates the SGR codes to terminal
++# capabilities. That, and color-decoding are hardcoded in screen; its behavior
++# is modified only by the presence or absence of the corresponding capabilities.
++# Not by their values.
++#
++# If screen sets the TERMCAP variable, it uses hardcoded strings which
++# correspond to the rendlist table.
++#
++# The table gives this information:
++#
++# SGR capability
++# --- ---------
++# 1 bold
++# 2 dim
++# 3 standout
++# 4 underline
++# 5 blink
++# - (unused 6)
++# 7 reverse
++# - (unused 8-21)
++# 22 reset bold, standout and dim
++# 23 reset standout
++# 24 reset underline
++# 25 reset blink
++# - (unused 26)
++# 27 reset reverse
++#
++# ECMA-48 differs from this: 3 and 23 set and reset italics, respectively.
++# ECMA-48 does not define "standout" - that is a termcap/terminfo abstraction.
++# Without some redesign of screen, it is not possible to extend the set of
++# capabilities. Substitution would be possible, e.g., sending italics in
++# place of underline.
++#
++# Because screen uses hard-coded parsing, it does not check if two capabilities
++# use the same value. For example, changing standout to be the same as any of
++# the other capabilities will confuse screen. Curses applications which use
++# sgr are not impacted (because that usually resets all capabilities before
++# setting any), but termcap applications do not use sgr -TD
++screen|VT 100/ANSI X3.64 virtual terminal,
++ OTbs, OTpt, am, km, mir, msgr, xenl, G0,
++ colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
++ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
++ cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
++ flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
++ rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
++ S0=\E(%p1%c, use=ecma+color,
++# The bce and status-line entries are from screen 3.9.13 (and require some
++# changes to .screenrc).
++screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
++ bce,
++ ech@, use=screen,
++screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
++ dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
+
+-# (hp+labels: added label values from a BRL termcap -- esr)
+-hp+labels|"standard" label info for new HP ttys,
+- lh#2, lw#8, nlab#8,
+- lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8,
+- pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
+- rmln=\E&j@, smln=\E&jB,
++# ======================================================================
++# Entries for GNU Screen with 16 colors.
++# Those variations permit to benefit from 16 colors palette, and from
++# bold font and blink attribute separated from bright colors. But they
++# are less portable than the generic "screen" 8 color entries: Their
++# usage makes real sense only if the terminals you attach and reattach
++# do all support 16 color palette.
+
+-hp+printer|"standard" printer info for HP ttys,
+- ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C,
++screen-16color|GNU Screen with 16 colors,
++ use=ibm+16color, use=screen,
+
++screen-16color-s|GNU Screen with 16 colors and status line,
++ use=ibm+16color, use=screen-s,
+
+-# The new hp2621b is kind of a cross between the old 2621 and the
+-# new 262x series of machines. It has dip-switched options.
+-# The firmware has a bug in it such that if you give it a null
+-# length label, the following character is eaten!
+-hp2621b|hp 2621b with old style keyboard,
+- lh#1, lm#48, lw#8, nlab#8,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
+- kind=\ET, kll=\EF, kri=\ES,
+- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r,
+- smln=\E&jB, use=hp2621,
++screen-16color-bce|GNU Screen with 16 colors and BCE,
++ use=ibm+16color, use=screen-bce,
+
+-hp2621b-p|hp 2621b with printer,
+- use=hp+printer, use=hp2621b,
++screen-16color-bce-s|GNU Screen with 16 colors, BCE, and status line,
++ bce, use=ibm+16color, use=screen-s,
+
+-# hp2621b - new 2621b with new extended keyboard
+-# these are closer to the new 26xx series than the other 2621b
+-hp2621b-kx|hp 2621b with extended keyboard,
+- use=newhpkeyboard, use=hp2621b,
++# ======================================================================
++# Entries for GNU Screen 4.02 with --enable-colors256.
+
+-hp2621b-kx-p|hp 2621b with new keyboard & printer,
+- use=hp+printer, use=hp2621b-kx,
++screen-256color|GNU Screen with 256 colors,
++ use=xterm+256setaf, use=screen,
+
+-# Some assumptions are made in the following entries.
+-# These settings are NOT set up by the initialization strings.
+-#
+-# Port Configuration
+-# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes
++screen-256color-s|GNU Screen with 256 colors and status line,
++ use=xterm+256setaf, use=screen-s,
++
++screen-256color-bce|GNU Screen with 256 colors and BCE,
++ bce, use=xterm+256setaf, use=screen-bce,
++
++screen-256color-bce-s|GNU Screen with 256 colors, BCE, and status line,
++ bce, use=xterm+256setaf, use=screen-s,
++
++# ======================================================================
++
++# Read the fine manpage:
++# When screen tries to figure out a terminal name for
++# itself, it first looks for an entry named "screen.<term>",
++# where <term> is the contents of your $TERM variable. If
++# no such entry exists, screen tries "screen" (or "screen-w"
++# if the terminal is wide (132 cols or more)). If even this
++# entry cannot be found, "vt100" is used as a substitute.
+ #
+-# Terminal Configuration
+-# InhHndShk(G)=Yes InhDC2(H)=Yes
+-# XmitFnctn(A)=No InhEolWrp=No
++# Notwithstanding the manpage, screen uses its own notion of the termcap
++# and some keys from "screen.<term>" are ignored. Here is an entry which
++# covers those (tested with screen 4.00.02) -TD
++screen+fkeys|function-keys according to screen,
++ kend=\E[4~, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kfnd@,
++ khome=\E[1~, kslt@,
++
++# See explanation before "screen" entry. Cancel italics so that applications
++# do not assume screen supports the feature. Add this tweak to entries which
++# extend screen for terminals which do support italics.
++screen+italics|screen cannot support italics,
++ ritm@, sitm@,
+ #
++# Here are a few customized entries which are useful -TD
+ #
+-# Hp 2622a & hp2623a display and graphics terminals
++# Notes:
++# (a) screen does not support invis.
++# (b) screen's implementation of bw is incorrect according to tack.
++# (c) screen appears to hardcode the strings for khome/kend, making it
++# necessary to override the "use=" clause's values (screen+fkeys).
++# (d) screen sets $TERMCAP to a termcap-formatted copy of the 'screen' entry,
++# which is NOT the same as the terminfo screen.<term>.
++# (e) when screen finds one of these customized entries, it sets $TERM to
++# match. Hence, no "screen.xterm" entry is provided, since that would
++# create heartburn for people running remote xterm's.
+ #
+-hp2622|hp2622a|hp 2622,
+- da, db,
+- lm#0, pb#19200,
+- is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
++# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
++# since the default translations override the built-in keycode
++# translation. They are suppressed here to show what is tested by tack.
++screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
++ bce@, bw,
++ invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;m,
++ E3@, use=screen+italics, use=screen+fkeys, use=xterm-new,
++# xterm-r6 does not really support khome/kend unless it is propped up by
++# the translations resource.
++screen.xterm-r6|screen customized for X11R6 xterm,
++ bw, use=screen+fkeys, use=xterm-r6,
++# Color applications running in screen and TeraTerm do not play well together
++# on Solaris because Sun's curses implementation gets confused.
++screen.teraterm|disable ncv in teraterm,
++ ncv#127,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ use=screen+fkeys, use=screen,
++# Other terminals
++screen.rxvt|screen in rxvt,
++ bw, XT,
++ cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
++ use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
++screen.Eterm|screen in Eterm,
++ use=screen+fkeys, use=Eterm,
++screen.mrxvt|screen in mrxvt,
++ use=screen+fkeys, use=mrxvt,
++screen.vte|screen in any VTE-based terminal,
++ use=screen+italics, use=screen+fkeys, use=vte,
++screen.gnome|screen in GNOME Terminal,
++ use=screen+italics, use=screen+fkeys, use=gnome,
++screen.konsole|screen in KDE console window,
++ use=screen+italics, use=screen+fkeys, use=konsole,
++# fix the backspace key
++screen.linux|screen in linux console,
++ bw,
++ kbs=\177, kcbt@, use=screen+fkeys, use=screen,
++screen.mlterm|screen in mlterm,
++ use=screen+fkeys, use=mlterm,
+
+-# The 2623 is a 2622 with extra graphics hardware.
+-hp2623|hp2623a|hp 2623,
+- use=hp2622,
++# The default "screen" entry is reasonably portable, but not optimal for the
++# most widely-used terminal emulators. The "bce" capability is supported in
++# screen since 3.9.13, and when used, will require fewer characters to be sent
++# to the terminal for updates.
++#
++# If you are using only terminals which support bce, then you can use this
++# feature in your screen configuration.
++#
++# Adding these lines to your ".screenrc" file will allow using these customized
++# entries:
++# term screen-bce
++# bce on
++# defbce on
++screen-bce.xterm-new|screen optimized for modern xterm,
++ bce,
++ ech@, use=screen+italics, use=screen.xterm-new,
++screen-bce.rxvt|screen optimized for rxvt,
++ bce,
++ ech@, use=screen.rxvt,
++screen-bce.Eterm|screen optimized for Eterm,
++ bce,
++ ech@, use=screen.Eterm,
++screen-bce.mrxvt|screen optimized for mrxvt,
++ bce,
++ ech@, use=screen.mrxvt,
++screen-bce.gnome|screen optimized for GNOME-Terminal,
++ bce,
++ ech@, use=screen+italics, use=screen.gnome,
++screen-bce.konsole|screen optimized for KDE console window,
++ bce,
++ ech@, use=screen+italics, use=screen.konsole,
++screen-bce.linux|screen optimized for linux console,
++ bce,
++ ech@, use=screen.linux,
++screen-bce.mlterm|screen optimized for mlterm,
++ bce,
++ ech@, use=screen.mlterm,
+
+-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
+- use=hp+printer, use=hp2624,
++screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
++ cols#132, use=screen,
+
+-# The hewlett packard B can have an optional extra 6 pages of memory.
+-hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
+- lm#240, use=hp2624,
++screen2|old VT 100/ANSI X3.64 virtual terminal,
++ cols#80, it#8, lines#24,
++ cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
++ kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
++ nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
++ rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
++ smso=\E[3m, smul=\E[4m, tbc=\E[3g,
++# (screen3: removed unknown ":xv:LP:G0:" -- esr)
++screen3|older VT 100/ANSI X3.64 virtual terminal,
++ km, mir, msgr,
++ cols#80, it#8, lines#24,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
++ kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
++ rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
++ sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
++ smul=\E[4m, tbc=\E[3g,
+
+-hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
+- lm#240, use=hp2624b-p,
++#### NCSA Telnet
+
+-# Color manipulations for HP terminals
+-hp+color|hp with colors,
+- ccc,
+- colors#16, ncv#17, pairs#7,
+- initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI,
+- oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I,
+- op=\E&v0S, scp=\E&v%p1%dS,
+-
+-# <is2> sets the screen to be 80 columns wide
+-hp2397a|hp2397|hewlett packard 2397A color terminal,
+- is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
++# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
++# NCSA telnet is one of the most used telnet clients for the Macintosh. It has
++# been maintained until recently by the National Center for Supercomputer
++# Applications, and it is feature rich, stable and free. It can be downloaded
++# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
++# xterm+sl, and the docs at NCSA. It works well.
++#
++# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
++# The terminal options should be set as follows:
++# Xterm sequences ON
++# use VT wrap mode ON
++# use Emacs arrow keys OFF
++# CTRL-COMND is Emacs meta ON
++# 8 bit mode ON
++# answerback string: "ncsa-vt220-8"
++# setup keys: all disabled
++#
++# Application mode is not used.
++#
++# Other special mappings:
++# Apple VT220
++# HELP Find
++# HOME Insert here
++# PAGEUP Remove
++# DEL Select
++# END Prev Screen
++# PAGEDOWN Next Screen
++#
++# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
++# text.
++#
++# The status-line manipulation is a mapping of the xterm-compatible control
++# sequences for setting the window-title. So you must use tsl and fsl in
++# pairs, since the latter ends the string that is loaded to the window-title.
++ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
++ am, km, mir, msgr, xenl,
++ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K, enacs=\E)0, flash=\E[?5h\E[?5l,
++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
++ ind=\n$<150*>,
++ is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
++ kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
++ kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
++ kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
++ khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
++ rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
++ rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
++ rmso=\E[27m, rmul=\E[24m,
++ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
++ smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ u8=\E[?62;1;6c, use=xterm+sl, use=ansi+enq,
++ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
++ use=ncsa-m, use=klone+color,
++ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
++ hs@,
++ dsl@, fsl@, tsl@, use=ncsa,
++ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
++ hs@,
++ dsl@, fsl@, tsl@, use=ncsa-m,
++# alternate -TD:
++# The documented function-key mapping refers to the Apple Extended Keyboard
++# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
++# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
++# some keyboards and many applications require these as F1-F4.
++#
++ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
++ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
++ kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, use=ncsa,
+
+-# HP 700/44 Setup parameters:
+-# Terminal Mode HP-PCterm
+-# Inhibit Auto Wrap NO
+-# Status Line Host Writable
+-# PC Character Set YES
+-# Twenty-Five Line Mode YES
+-# XON/XOFF @128 or 64 (sc)
+-# Keycode Mode NO or YES (sc)
+-# Backspace Key BS or BS/DEL
++#### Pilot Pro Palm-Top
+ #
+-# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
+-# \E\\? does not turn off keycode mode
+-# <smsc> sets alternate start/stop; keycode on
+-hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
+- am, eo, xenl, xon,
+- cols#80, lines#25,
+- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H,
+- cnorm=\E[?25h, cr=^M, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
+- ind=^J,
+- is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
+- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
+- kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
+- kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
+- kpp=\E[5~, rmam=\E[?7l,
+- rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
+- rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
+- smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
+- smul=\E[4m, xoffc=g, xonc=e,
++# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
++# http://www.ai/~iang/TGssh/
++pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
++ OTbs, am, xenl,
++ cols#39, lines#16,
++ bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
++ cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
++ ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
++ rmso=\EB, smso=\Eb,
++
++# From: Federico Bianchi <bianchi@www.arte.unipi.it>
++# These entries are for the Embeddable Linux Kernel System (ELKS)
++# project - an heavily stripped down Linux to be run on 16 bit
++# boxes or, eventually, to be used in embedded systems - and have been
++# adapted from the stock ELKS termcap. The project itself looks stalled,
++# and the latest improvements I know of date back to March 2000.
+ #
+-# (hp2392: copied <rmir> here from hpex -- esr)
+-hp2392|239x series,
+- cols#80,
+- cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
+- kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
+- kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
+- rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
+- use=hpsub,
++# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
++# as an added bonus, this deals with all the capabilities common to
++# both VT52 and ANSI (or, eventually, "special") modes.
+
+-hpsub|hp terminals -- capability subset,
+- am, da, db, mir, xhp, xon,
+- lines#24,
+- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+- cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
+- ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J,
+- is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
+- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
++elks-glasstty|ELKS glass-TTY capabilities,
++ OTbs, am,
++ cols#80, it#8, lines#25,
++ bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
++ nel=^M^J,
+
+-# hpex:
+-# May be used for most 24 x 80 hp terminals,
+-# but has no padding added, so may allow runover in some terminals at high
+-# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and
+-# hp98x5 terminal emulators or hp98x6 consoles.
+-# Adds xy-cursor addressing, vertical cursor addressing, home,
+-# last line, and underline capabilities.
++elks-vt52|ELKS vt52 console,
++ clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\EK,
++ home=\EH, use=elks-glasstty,
++
++elks-ansi|ELKS ANSI console,
++ clear=\E[H\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
++ rmso=\E[m, smso=\E[7m, use=elks-glasstty,
++
++# As a matter of fact, ELKS 0.0.83 on PCs defaults to ANSI emulation
++# instead of VT52, but the "elks" entry still refers to the latter.
++
++elks|default ELKS console,
++ use=elks-vt52,
++
++# Project SIBO (for Psion 3 palmtops) console is identical to the ELKS
++# one but in screen size
++
++sibo|ELKS SIBO console,
++ cols#61, it#8, lines#20, use=elks-vt52,
++
++######## COMMERCIAL WORKSTATION CONSOLES
+ #
+-# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
+-# moved <rmir> here from hpsub -- esr)
+-hpex|hp extended capabilites,
+- cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H,
+- kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ,
+- smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
+
+-# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
+-hp2|hpex2|hewlett-packard extended capabilities newer version,
+- am, da, db, mir, xhp,
+- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
+- bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
+- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
+- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+- il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
+- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
+- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
+- krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
+- pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A,
+- rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
+- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
+- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
+- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
++#### Alpha consoles
++#
+
+-# HP 236 console
+-# From: <ddavis@ic.berkeley.edu>
+-hp236|hp236 internal terminal emulator,
+- OTbs, am,
+- cols#80, lines#24,
+- clear=\EF, cnorm=\EDE, cub1=^H,
+- cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB,
+- dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI,
+- sgr0=\ECI, smso=\EBI,
++# This is from the OSF/1 Release 1.0 termcap file
++pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
++ am, xon,
++ cols#80, lines#25,
++ bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
++ nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
+
+-# This works on a hp300 console running Utah 4.3 BSD
+-# From: Craig Leres <leres@okeeffe.berkeley.edu>
+-hp300h|HP Catseye console,
+- OTbs, am, da, db, mir, xhp,
+- cols#128, lines#51, lm#0, xmc#0,
+- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
+- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
+- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
+- if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
+- rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
+- smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
+- vpa=\E&a%p1%dY,
+-# From: Greg Couch <gregc@ernie.berkeley.edu>
+-hp9837|hp98720|hp98721|HP 9000/300 workstations,
+- OTbs, am, da, db, mir, xhp,
+- cols#128, it#8, lines#46, lm#0,
+- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
+- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
+- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+- il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+- ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
+- kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
+- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
+- tbc=\E3, vpa=\E&a%p1%dY,
+-# HP 9845 desktop computer from BRL
+-# (hp9845: removed unknown capability :gu: -- esr)
+-hp9845|HP 9845,
+- OTbs, am, da, db, eo, mir, xhp,
+- cols#80, lines#21,
+- OTbc=\ED, clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
+- ed=\EJ, el=\EK, if=/usr/share/tabset/std, il1=\EL,
+- rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
+-# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
+-# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
+-# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
+-hp98550|hp98550a|HP 9000 Series 300 color console,
+- OTbs, am, da, db, mir, xhp,
+- cols#128, it#8, lines#49, lm#0,
+- acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
+- clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
+- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
+- if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds,
+- kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
+- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
+- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
+- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
+- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
+- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
+- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+-# From: Victor Duchovni <vic@fine.princeton.edu>
+-# (hp700-wy: removed obsolete ":nl=^J:";
+-# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
+-hp700-wy|HP700/41 emulating wyse30,
+- OTbs, am, bw, mir, msgr,
+- cols#80, it#8, lines#24, xmc#1,
+- cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1,
+- if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>,
+- is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI,
+- kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY,
+- kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K,
+- ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
+- sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
+- smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
+-hp70092|hp70092a|hp70092A|HP 700/92,
+- am, da, db, xhp,
+- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
+- acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
+- bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H,
+- cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
+- dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
+- hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
+- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
+- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
+- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
+- krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
+- rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
+- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
+- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
++#### Sun consoles
++#
+
+-bobcat|sbobcat|HP 9000 model 300 console,
+- am, da, db, mir, xhp,
+- cols#128, it#8, lines#47, xmc#0,
+- cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+- cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
+- dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
+- il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER,
+- rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
+- smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
+-gator-t|HP 9000 model 237 emulating extra-tall AAA,
+- lines#94, use=gator,
+-gator|HP 9000 model 237 emulating AAA,
+- bw, km, mir, ul,
+- cols#128, it#8, lines#47,
+- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
+- dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
+- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
+- ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
+- il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
+- rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
+- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+-gator-52|HP 9000 model 237 emulating VT52,
+- cols#128, lines#47, use=vt52,
+-gator-52t|HP 9000 model 237 emulating extra-tall VT52,
+- lines#94, use=gator-52,
++# :is1: resets scrolling region in case a previous user had used "tset vt100"
++oldsun|Sun Microsystems Workstation console,
++ OTbs, am, km, mir, msgr,
++ cols#80, it#8, lines#34,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
++ rmso=\E[m, sgr0=\E[m, smso=\E[7m,
++# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
++# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
++# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
++sun-il|Sun Microsystems console with working insert-line,
++ am, km, msgr,
++ cols#80, lines#34,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
++ kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
++ kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
++ kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
++ kich1=\E[247z, knp=\E[222z, kopt=\E[194z, kpp=\E[216z,
++ kres=\E[193z, kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@,
++ rs2=\E[s, sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m,
++ smso=\E[7m, u8=\E[1t, u9=\E[11t,
++# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
++# flake out on the last line. Unfortunately, without them the terminal has no
++# way to scroll.
++sun-cgsix|sun-ss5|Sun SparcStation 5 console,
++ il@, il1@, use=sun-il,
++# If you are using an SS5, change the sun definition to use sun-ss5.
++sun|sun1|sun2|Sun Microsystems Inc. workstation console,
++ use=sun-il,
+
+-#### Honeywell-Bull
++sun+sl|Sun Workstation window status line,
++ hs,
++ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l,
++
++# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
++sun-s|Sun Microsystems Workstation window with status line,
++ hs,
++ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
++sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
++ hs,
++ dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
++sun-48|Sun 48-line window,
++ cols#80, lines#48, use=sun,
++sun-34|Sun 34-line window,
++ cols#80, lines#34, use=sun,
++sun-24|Sun 24-line window,
++ cols#80, lines#24, use=sun,
++sun-17|Sun 17-line window,
++ cols#80, lines#17, use=sun,
++sun-12|Sun 12-line window,
++ cols#80, lines#12, use=sun,
++sun-1|Sun 1-line window for sysline,
++ eslok, hs,
++ cols#80, lines#1,
++ dsl=^L, fsl=\E[K, tsl=^M, use=sun,
++sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
++ ich1@, rmir@, smir@, use=sun,
++sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
++ lines#35,
++ rmcup=\E[>4h, smcup=\E[>4l, use=sun,
++sun-type4|Sun Workstation console with type 4 keyboard,
++ kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z,
++ kcuu1=\E[215z, use=sun-il,
++
++# Most of the current references to sun-color are from users wondering why this
++# is the default on install. Details from reading the wscons manpage, adding
++# cub, etc., here (rather than in the base sun-il entry) since it is not clear
++# when those were added -TD (2005-05-28)
+ #
+-# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
++# According to wscons manpage, color is supported only on IA systems.
++# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons
++# does not list these. It also sets ncv#3, however that corresponds to
++# underline and standout.
++#
++# Since the documentation and terminfo do not agree, see also current code at
++# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
+ #
++# That (actually a different driver which "supports" sun-color) also supports
++# these features:
++# vpa=\E[%i%p1%dd
++# hpa=\E[%i%p1%d`
++# cbt=\E[Z
++# dim=\E[2m
++# blink=\E[5m
++# It supports bold, but not underline -TD (2009-09-19)
++sun-color|Sun Microsystems Workstation console with color support (IA systems),
++ colors#8, ncv#3, pairs#64,
++ bold=\E[1m, cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
++ cuu=\E[%p1%dA, home=\E[H, op=\E[0m, rs2=\E[s,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
++ sgr=\E[0%?%p6%t;1%;%?%p1%p3%|%t;7%;m, sgr0=\E[m,
++ smso=\E[7m, use=sun,
+
+-# Honeywell Bull terminal. Its cursor and function keys send single
+-# control characters and it has standout/underline glitch. Most programs
+-# do not like these features/bugs. Visual bell is realized by flashing the
+-# "keyboard locked" LED.
+-dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
+- cols#80, lines#25,
+- clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K,
+- flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y,
+- kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J,
+-dku7003|Honeywell Bull DKU 7003 all features described,
+- msgr,
+- xmc#1,
+- blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m,
+- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+- use=dku7003-dumb,
++#### Iris consoles
++#
+
+-#### Lear-Siegler (adm)
++# (wsiris: this had extension capabilities
++# :HS=\E7F2:HE=\E7F7:\
++# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
++# See the note on Iris extensions near the end of this file.
++# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
++# <flash> from BRL -- esr)
++wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
++ OTbs, OTnc, OTpt, am,
++ OTkn#3, cols#80, it#8, lines#40,
++ OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
++ cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
++ cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
++ flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
++ ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
++ kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
++ rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
++ smul=\E7R2\E9P,
++
++#### NeWS consoles
+ #
+-# These guys are long since out of the terminals business, but
+-# in 1995 many current terminals still have an adm type as one of their
+-# emulations (usually their stupidest, and usually labeled adm3, though
+-# these `adm3' emulations normally have adm3a+ capabilities).
++# Console terminal windows under the NeWS (Sun's Display Postscript windowing
++# environment). Note: these have nothing to do with Sony's News workstation
++# line.
+ #
+-# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
+-# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
+-# was being held to ground would trigger a send of the top line on the screen.
+-# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
+-# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
+-# for clearing up this point.)
+
+-adm1a|adm1|lsi adm1a,
+- am,
+- cols#80, lines#24,
+- bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
+- ind=^J,
+-adm2|lsi adm2,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+-# (adm3: removed obsolete ":ma=^K^P:" -- esr)
+-adm3|lsi adm3,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
+-# The following ADM-3A switch settings are assumed for normal operation:
+-# SPACE U/L_DISP CLR_SCRN 24_LINE
+-# CUR_CTL LC_EN AUTO_NL FDX
+-# Other switches may be set for operator convenience or communication
+-# requirements. I recommend
+-# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF
+-# ETX_OFF EOT_OFF
+-# Most of these terminals required an option ROM to support lower case display.
+-# Open the case and look at the motherboard; if you see an open 24-pin DIP
+-# socket, you may be out of luck.
++# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
++# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
++psterm|psterm-basic|NeWS psterm-80x34,
++ OTbs, am, hs, km, ul,
++ cols#80, it#8, lines#34,
++ blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;,
++ cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY,
++ dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl,
++ home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr,
++ ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^],
++ sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu,
++ tsl=\EOl,
++psterm-96x48|NeWS psterm 96x48,
++ cols#96, lines#48, use=psterm,
++psterm-90x28|NeWS psterm 90x28,
++ cols#90, lines#28, use=psterm,
++psterm-80x24|NeWS psterm 80x24,
++ cols#80, lines#24, use=psterm,
++# This is a faster termcap for psterm. Warning: if you use this termcap,
++# some control characters you type will do strange things to the screen.
++# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
++psterm-fast|NeWS psterm fast version (flaky ctrl chars),
++ OTbs, am, hs, km, ul,
++ cols#80, it#8, lines#34,
++ blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;,
++ cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y,
++ dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I,
++ il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni,
++ rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi,
++ smso=^Oo, smul=^Ou, tsl=^Ol,
++
++#### NeXT consoles
+ #
+-# (adm3a: some capabilities merged in from BRl entry -- esr)
+-adm3a|lsi adm3a,
+- OTbs, am,
+- cols#80, lines#24,
+- OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
+- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
+- kcuu1=^K, rs2=^N,
+-adm3a+|adm3a plus,
+- kbs=^H, use=adm3a,
+-# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
+-adm5|lsi adm5,
+- xmc#1,
+- bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
+- rmso=\EG, smso=\EG, use=adm3a+,
+-# A lot of terminals other than adm11s use these. Wherever you see
+-# use=adm+sgr with some of its capabilities disabled, try the
+-# disabled ones. They may well work but not have been documented or
+-# expressed in the using entry. We'd like to cook up an <sgr> but the
+-# <rmacs>/<smacs> sequences of the using entries vary too much.
+-adm+sgr|adm style highlight capabilities,
+- invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0,
+- smso=\EG4, smul=\EG8,
+-# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
+-# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
+-# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. <clear> could also
+-# be ^Z, according to his entry.
+-# (adm11: <smul>=\EG4 was obviously erroneous because it also said
+-# <rev>=\EG4. Looking at other ADMs confirms this -- esr)
+-adm11|LSI ADM-11,
+- OTbs, am, hs,
+- OTkn#8, cols#80, lines#24,
+- OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H,
+- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I,
+- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E),
+- use=adm+sgr,
+-# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
+-# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
+-# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
+-# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had
+-# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost>
+-# via BRL. That entry asserted <xmc#1>, but I've left that out because
+-# neither earlier nor later ADMSs have it -- esr)
++# Use `glasstty' for the Workspace application
+ #
+-# You will need to get into the supervisor setup before you can set
+-# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
+-# see a lot more setup options.
++
++# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
++next|NeXT console,
++ am, xt,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
++ ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
++ rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m,
++nextshell|NeXT Shell application,
++ am,
++ cols#80,
++ bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H,
++ kcud1=^J, nel=^M^J,
++
++#### Sony NEWS workstations
+ #
+-# While in supervisor setup you can also use following codes:
++
++# (news-unk: this had :KB=news: -- esr)
++news-unk|SONY NEWS vt100 emulator common entry,
++ OTbs, OTpt, am, xenl,
++ cols#80,
++ OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
++ cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
++ ed=\E[J, el=\E[K, home=\E[H, ht=^I,
++ if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
++ is2=\E[?7h\E[?1h\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
++ kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
++ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
++ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ #
+-# Ctrl-P Personality character selections (configure for example what
+-# arrow keys send, if I recall correctly)
+-# Ctrl-T tabs 1-80 use left&right to move and up to set and
+-# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
+-# Ctrl-B Binary setup (probably not needed. I think that everything can
+-# be set using normal setup)
+-# Ctrl-A Answerback mode (enter answerback message)
+-# Ctrl-U User friendly mode (normal setup)
+-# Ctrl-D Defaults entire setup and function keys from EPROM tables
+-# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
+-# Ctrl-R Reads both setup and functions keys from NVM.
+-# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
++# (news-29: this had :TY=ascii: --esr)
++news-29,
++ lines#29, use=news-unk,
++# (news-29-euc: this had :TY=euc: --esr)
++news-29-euc,
++ use=news-29,
++# (news-29-sjis: this had :TY=sjis: --esr)
++news-29-sjis,
++ use=news-29,
+ #
+-# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
+-# RTS/CTS used nowadays with virtually every modem and computer. 19200
+-# bps works fine with hardware flow control.
++# (news-33: this had :TY=ascii: --esr)
++news-33,
++ lines#33, use=news-unk,
++# (news-33-euc: this had :TY=euc: --esr)
++news-33-euc,
++ use=news-33,
++# (news-33-sjis: this had :TY=sjis: --esr)
++news-33-sjis,
++ use=news-33,
+ #
+-# The following null-modem cable should fix this and enable you to use
+-# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
+-# set ADM-12+ for DTR handshaking from supervisor setup.
++# (news-42: this had :TY=ascii: --esr)
++news-42,
++ lines#42, use=news-unk,
++# (news-42-euc: this had :TY=euc: --esr)
++news-42-euc,
++ use=news-42,
++# (news-42-sjis: this had :TY=sjis: --esr)
++news-42-sjis,
++ use=news-42,
+ #
+-# PC Serial ADM-12+
+-# -------- -------
+-# 2 - 3
+-# 3 - 2
+-# 4 - 5
+-# 5 - 20
+-# 6,8 - 4
+-# 7 - 7
+-# 20 - 6,8
++# NEWS-OS old termcap entry
+ #
+-adm12|lsi adm12,
+- OTbs, OTpt, am, mir,
+- OTug#1, cols#80, it#8, lines#24,
+- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
+- is2=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
+- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
+- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
+- use=adm+sgr,
+-# (adm20: removed obsolete ":kn#7:" -- esr)
+-adm20|lear siegler adm20,
+- OTbs, am,
+- cols#80, it#8, lines#24,
+- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
+- cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
+- kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
+- sgr0=\E(, smso=\E),
+-adm21|lear siegler adm21,
+- xmc#1,
+- bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET,
+- ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr,
+- use=adm3a,
+-# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
+-# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
+-# removed bogus-looking \200 from before <cup>. -- esr)
+-adm22|lsi adm22,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE,
+- is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0,
+- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
+- lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E),
+-# ADM 31 DIP Switches
++# (news-old-unk: this had :KB=news:TY=sjis: --esr)
++news-old-unk|SONY NEWS vt100 emulator common entry,
++ OTbs, OTpt, am, xenl,
++ cols#80, vt#3,
++ OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
++ cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
++ rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ #
+-# This information comes from two versions of the manual for the
+-# Lear-Siegler ADM 31.
++# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
++nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
++ OTbs,
++ lines#40,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
++ use=news-old-unk,
+ #
+-# Main board:
+-# rear of case
+-# +-||||-------------------------------------+
+-# + S1S2 ||S +
+-# + ||3 +
+-# + +
+-# + ||S +
+-# + ||4 +
+-# + +
+-# + +
+-# + +
+-# + +
+-# + +
+-# +-+ +-+
+-# + +
+-# + S5 S6 S7 +
+-# + == == == +
+-# +----------------------------------------------+
+-# front of case (keyboard)
+-#
+-# S1 - Data Rate - Modem
+-# S2 - Data Rate - Printer
+-# ------------------------
+-# Data Rate Setting
+-# -------------------
+-# 50 0 0 0 0
+-# 75 1 0 0 0
+-# 110 0 1 0 0
+-# 134.5 1 1 0 0
+-# 150 0 0 1 0
+-# 300 1 0 1 0
+-# 600 0 1 1 0
+-# 1200 1 1 1 0
+-# 1800 0 0 0 1
+-# 2000 1 0 0 1
+-# 2400 0 1 0 1
+-# 3600 1 1 0 1
+-# 4800 0 0 1 1
+-# 7200 1 0 1 1
+-# 9600 0 1 1 1
+-# x 1 1 1 1
+-#
+-# S3 - Interface/Printer/Attributes
+-# ---------------------------------
+-# Printer Busy Control
+-# sw1 sw2 sw3
+-# ---------------
+-# off off off Busy not active, CD disabled
+-# off off on Busy not active, CD enabled
+-# off on off Busy active on J5-20, CD disabled
+-# on off off Busy active on J5-19, CD disabled - Factory Set.
+-# on off on Busy active on J5-19, CD enabled
+-#
+-# sw4 Used in conjuction with S4 for comm interface control - Fact 0
+-#
+-# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0
+-#
+-# sw6 ON enables printer BUSY active LOW - Factory Setting
+-# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
+-#
+-# sw7 ON - steady cursor - Factory Setting
+-# OFF - blinking cursor
+-#
+-# sw8 ON causes selected attribute character to be displayed
+-# OFF causes SPACE to be displayed instead - Factory Setting
+-#
+-# S4 - Interface
+-# --------------
+-# Modem Interface
+-# S3 S4 S4 S4 S4
+-# sw4 sw1 sw2 sw3 sw4
+-# ---------------------------
+-# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and
+-# Current Loop disabled - Factory Setting
+-# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect
+-# disabled
+-# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and
+-# Current Loop Disabled
+-#
+-# sw5 ON disables dot stretching mode - Factory Setting
+-# OFF enables dot stretching mode
+-# sw6 ON enables blanking function
+-# OFF enables underline function - Factory Setting
+-# sw7 ON causes NULLS to be displayed as NULLS
+-# OFF causes NULLS to be displayed as SPACES - Factory Setting
+-#
+-# S5 - Word Structure
+-# -------------------
+-# sw1 ON enables BREAK key - Factory Setting
+-# OFF disables BREAK key
+-# sw2 ON selects 50Hz monitor refresh rate
+-# OFF selects 60Hz monitor refresh rate - Factory Setting
+-#
+-# Modem Port Selection
+-# sw3 sw4 sw5
+-# ---------------
+-# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits
+-# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits
+-# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
+-# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit
+-# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits
+-# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit
+-# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit
+-# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit
+-#
+-# sw6 ON sends bit 8 a 1 (mark)
+-# OFF sends bit 8 as 0 (space) - Factory Setting
+-# sw7 ON selects Block Mode
+-# OFF selects Conversation Mode - Factory Setting
+-# sw8 ON selects Full Duplex operation
+-# OFF selects Half Duplex operation - Factory Setting
++# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
++nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
++ lines#42,
++ is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
++ use=news-old-unk,
+ #
+-# S6 - Printer
+-# ------------
+-# sw1, sw2, sw6, sw7 Reserved - Factory 0
++# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr)
++nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
++ OTbs,
++ lines#40,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
++ use=news-old-unk,
+ #
+-# Printer Port Selection
+-# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
++# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
++nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
++ OTbs,
++ lines#31,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
++ use=news-old-unk,
+ #
+-# sw8 ON enables Printer Port
+-# OFF disables Printer Port - Factory Setting
++# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
++# also the alias vt100-bm.
++nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
++ OTbs,
++ lines#33,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8,
++ use=news-old-unk,
+ #
+-# S7 - Polling Address
+-# --------------------
+-# sw1-7 Establish ASCII character which designates terminal polling address
+-# ON = logic 0
+-# OFF = logic 1 - Factory Setting
+-# sw8 ON enables Polling Option
+-# OFF disables Polling Option - Factory Setting
++# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
++nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
++ OTbs,
++ lines#31,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
++ use=news-old-unk,
+ #
++# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
++news28|sony vt100 emulator 28 lines,
++ OTbs,
++ lines#28,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8,
++ use=news-old-unk,
+ #
+-# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
++# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
++news29|news28-a|sony vt100 emulator 29 lines,
++ lines#29,
++ is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8,
++ use=news-old-unk,
+ #
+-# This adm31 entry uses underline as the standout mode.
+-# If the adm31 gives you trouble with standout mode, check the DIP switch in
+-# position 6, bank @c11, 25% from back end of the circuit board. Should be
+-# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
+-# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
+-adm31|lsi adm31 with sw6 set for underline mode,
+- OTbs, am, mir,
+- cols#80, lines#24,
+- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
+- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
+- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0,
+- rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1,
+-adm31-old|o31|old adm31,
+- rmul@, smso=\EG4, smul@, use=adm31,
+-# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
+-adm36|LSI ADM36,
+- OTbs, OTpt,
+- OTkn#4,
+- if=/usr/share/tabset/vt100,
+- is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l,
+- use=vt100,
+-# (adm42: removed obsolete ":ma=^K^P:" -- esr)
+-adm42|lsi adm42,
+- OTbs, am,
++# (news511: this had :TY=sjis: --esr)
++nwp511|nwp-511|nwp-511 vt100,
++ OTbs, OTpt, am, xenl,
+ cols#80, lines#24,
+- bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I,
+- il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J,
+- kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@,
+- smir=\Eq, smul@, use=adm+sgr,
+-# The following termcap for the Lear Siegler ADM-42 leaves the
+-# "system line" at the bottom of the screen blank (for those who
+-# find it distracting otherwise)
+-adm42-ns|lsi adm-42 with no system line,
+- cbt=\EI\EF \011, clear=\E;\EF \011,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
+- dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
+- el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011,
+- smir=\Eq\EF \011, use=adm42,
+-# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985.
+-# The insert mode of this terminal is commented out because it's broken for our
+-# purposes in that it will shift the position of every character on the page,
+-# not just the cursor line!
+-# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
+-adm1178|1178|lsi adm1178,
+- am,
+- cols#80, lines#24, xmc#1,
+- bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET,
+- home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H,
+- kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0,
+- sgr0=\E), smso=\EG4, smul=\EG1,
++ clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
++ ed=\E[J$<30/>, el=\E[K$<3/>,
++ flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
++ il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
++ kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
++ ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
++ rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
++ smso=\E[7m$<2/>, smul=\E[4m$<2/>,
++# (news517: this had :TY=sjis:. --esr)
++nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
++ eslok, hs,
++ cols#80, lines#30,
++ OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
++ is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ tsl=\E[1$}\E[;%df, use=vt200,
++# (news517-w: this had :TY=sjis:. --esr)
++nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
++ eslok, hs,
++ cols#132, lines#50,
++ OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
++ is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
++ tsl=\E[1$}\E[;%df, use=vt200,
+
+-#### Prime
+-#
+-# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings
+-# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
+-# Prime merged with ComputerVision in the late 1980s; you can reach them at:
+-#
+-# ComputerVision Services
+-# 500 Old Connecticut Path
+-# Framingham, Mass.
++#### Common Desktop Environment
+ #
+
+-# Standout mode is dim reverse-video.
+-pt100|pt200|wren|fenix|prime pt100/pt200,
+- am, bw, mir, msgr,
+- cols#80, it#8, lines#24,
+- cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
+- cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
+- ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
+- home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J,
+- rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m,
+- smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q,
+- smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
+-pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
+- cols#132,
+- cup=\E[%i%p1%d;%p2%dH, use=pt100,
+-pt250|Prime PT250,
+- rmso@, smso@, use=pt100,
+-pt250w|Prime PT250 in 132-column mode,
+- rmso@, smso@, use=pt100w,
++# This ships with Sun's CDE in Solaris 2.5
++# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
++dtterm|CDE desktop terminal,
++ am, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, lm#0, ncv@,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
++ ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
++ ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
++ sc=\E7,
++ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
+
+-#### Qume (qvt)
+-#
+-# Qume, Inc.
+-# 3475-A North 1st Street
+-# San Jose CA 95134
+-# Vox: (800)-457-4447
+-# Fax: (408)-473-1510
+-# Net: josed@techsupp.wyse.com (Jose D'Oliveira)
+-#
+-# Qume was bought by Wyse, but still (as of early 1995) has its own support
+-# group and production division.
+-#
+-# Discontinued Qume models:
+-#
+-# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
+-# built to replace them, and a qvt119+ which was a 101+ with available wide
+-# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
+-# and an ANSI-compatible qvt203 that replaced it. Qume started producing
+-# ANSI-compatible terminals with the qvt323 and qvt61.
+-#
+-# Current Qume models (as of February 1995):
+-#
+-# All current Qume terminals have ANSI-compatible operation modes.
+-# Qume is still producing the qvt62, which features emulations for other
+-# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
+-# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
+-# with many emulations including Wyse370, Wyse 325, etc. Their newest
+-# model is the qvt520, which is vt420-compatible.
++######## Non-Unix Consoles
+ #
+-# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
+-#
+-# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
+-# setup mode. Shift-s should be a configuration save to NVRAM.
+
+-qvt101|qvt108|qume qvt 101 and QVT 108,
+- xmc#1, use=qvt101+,
+-
+-# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap
+-# file had <cvvis=\EM4 \200\200\200>. I've done the safe thing and yanked
+-# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E).
+-# What seems to be going on here is that this entry was designed so that
+-# the normal highlight is bold and standout is dim plus something else
+-# (reverse-video maybe? But then, are there two <rev> sequences?)
+-qvt101+|qvt101p|qume qvt 101 PLUS product,
+- am, bw, hs, ul,
+- cols#80, lines#24, xmc#0,
+- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
+- flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+- ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
+- kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
+- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
+- khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
+- smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
+-qvt102|qume qvt 102,
+- cnorm=\E., use=qvt101,
+-# (qvt103: added <rmam>/<smam> based on init string -- esr)
+-qvt103|qume qvt 103,
+- am, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
+- hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
+- rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
+- rmso=\E[m$<2>, rmul=\E[m$<2>,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
+- sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+-qvt103-w|qume qvt103 132 cols,
+- cols#132, lines#24,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
+-qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
+- am, hs, mir, msgr,
+- cols#80, lines#24, xmc#0,
+- bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H,
+- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey,
+- el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I,
+- hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX,
+- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r,
+- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8,
+- tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
+-qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines,
+- lines#25, use=qvt119+,
+-qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
+- cols#132,
+- is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
+-qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
+- lines#25, use=qvt119+,
+-qvt203|qvt203+|qume qvt 203 Plus,
+- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
+- ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
+- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
+- kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
+-qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
+- cols#132, lines#24,
+- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
+-#
+-# Since a command is present for enabling 25 data lines,
+-# a specific terminfo entry may be generated for the 203.
+-# If one is desired for the QVT 119 PLUS then 25 lines must
+-# be selected in the status line (setup line 9).
++#### EMX termcap.dat compatibility modes
+ #
+-qvt203-25|QVT 203 PLUS with 25 by 80 column mode,
+- cols#80, lines#25,
+- is2=\E[=40h\E[?3l, use=qvt203,
+-qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
+- cols#132, lines#25,
+- rs2=\E[?3h\E[=40h, use=qvt203,
++# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
++# no_color_video to inform the application that standout(1), underline(2)
++# reverse(4) and invisible(64) don't work with color.
++emx-base|DOS special keys,
++ bce, bw,
++ it#8, ncv#71,
++ bel=^G, use=ansi.sys,
+
+-#### Televideo (tvi)
+-#
+-# TeleVideo
+-# 550 East Brokaw Road
+-# PO Box 49048 95161
+-# San Jose CA 95112
+-# Vox: (408)-954-8333
+-# Fax: (408)-954-0623
+-#
+-#
+-# These require incredible amounts of padding.
++# 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).
+ #
+-# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
+-# Televideo terminals are ANSI and PC-ANSI compatible.
++# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
++ansi-emx|ANSI.SYS color,
++ am, bce, eo, mir, msgr, xon,
++ colors#8, cols#80, it#8, lines#25, pairs#64,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
++ cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
++ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
++ kb2=\E[G, kbs=^H, kf0=\0D, kll=\0O, kspd=^Z, nel=^M^J,
++ rev=\E[5;37;41m, rmir=\E[4l, rmpch=\E[10m,
++ rmso=\E[0;44m\E[1;33m, rmul=\E[0;44m\E[1;33m, rs1=\Ec,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr0=\E[0m\E[1;33;44m, smir=\E[4h, smpch=\E[11m,
++ smso=\E[0;31;47m, smul=\E[1;31;44m, tbc=\E[3g, u8=\E[?6c,
++ u9=\E[c, use=emx-base,
++# nice colors for Emacs (white on blue, mode line white on cyan)
++ansi-color-2-emx|ANSI.SYS color 2,
++ clear=\E[0;37;44m\E[H\E[J, rev=\E[1;37;46m,
++ rmso=\E[0;37;44m, rmul=\E[0;37;44m, rs1=\Ec,
++ setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smso=\E[1;37;46m,
++ smul=\E[1;36;44m, use=ansi-emx,
++# nice colors for Emacs (white on black, mode line black on cyan)
++ansi-color-3-emx|ANSI.SYS color 3,
++ clear=\E[0;37;40m\E[H\E[J, rev=\E[1;37;46m,
++ rmso=\E[0;37;40m, rmul=\E[0;37;40m, rs1=\Ec,
++ setaf=\E[3%p1%dm, sgr0=\E[0;10m, smso=\E[1;37;46m,
++ smul=\E[0;36;40m, use=ansi-emx,
++mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
++ am,
++ cols#80, it#8, lines#24,
++ clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
++ ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
++ kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
++ kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
++ kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
++ sgr0=\E[0m,
+
+-tvi803|televideo 803,
+- clear=\E*$<10>, use=tvi950,
++#### Cygwin
+
+-# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
+-# Switch settings are:
+-#
+-# S1 1 2 3 4
+-# D D D D 9600
+-# D D D U 50
+-# D D U D 75
+-# D D U U 110
+-# D U D D 135
+-# D U D U 150
+-# D U U D 300
+-# D U U U 600
+-# U D D D 1200
+-# U D D U 1800
+-# U D U D 2400
+-# U D U U 3600
+-# U U D D 4800
+-# U U D U 7200
+-# U U U D 9600
+-# U U U U 19200
+-#
+-# S1 5 6 7 8
+-# U D X D 7N1 (data bits, parity, stop bits) (X means ignored)
+-# U D X U 7N2
+-# U U D D 7O1
+-# U U D U 7O2
+-# U U U D 7E1
+-# U U U U 7E2
+-# D D X D 8N1
+-# D D X U 8N2
+-# D U D D 8O1
+-# D U U U 8E2
+-#
+-# S1 9 Autowrap
+-# U on
+-# D off
+-#
+-# S1 10 CR/LF
+-# U do CR/LF when CR received
+-# D do CR when CR received
+-#
+-# S2 1 Mode
+-# U block
+-# D conversational
+-#
+-# S2 2 Duplex
+-# U half
+-# D full
++# Use this for cygwin32 (tested with beta 19.1)
++# underline is colored bright magenta
++# shifted kf1-kf12 are kf11-kf22
++cygwinB19|ansi emulation for cygwin32,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
++ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
++ use=ansi.sys,
++
++# Use this for cygwin (tested with version 1.1.0).
++# I've combined pcansi and linux. Some values of course were different and
++# I've indicated which of these were and which I used.
++# Cheers, earnie_boyd@yahoo.com
++# several changes based on running with tack and comparing with older entry -TD
++# more changes from csw:
++# add cbt [backtab]
++# remove eo [erase overstrike with blank]
++# change clear was \E[H\E[J now \E[2J (faster?)
++# remove cols
++# remove lines
++# remove ncv#3 [colors collide with highlights, bitmask] not applicable
++# to MSDOS box?
++# add cub [cursor back param]
++# add cuf [cursor forward param]
++# add cuu [cursor up param]
++# add cud [cursor down param]
++# add hs [has status line]
++# add fsl [return from status line]
++# add tsl [go to status line]
++# add smacs [Start alt charset] (not sure if this works)
++# add rmacs [End alt charset] (ditto)
++# add smcup [enter_ca_mode] (save console; thanks Corinna)
++# add rmcup [exit_ca_mode] (restore console; thanks Corinna)
++# add kb2 [center of keypad]
++# add u8 [user string 8] \E[?6c
++# add el [clear to end of line] \E[K
++# Notes:
++# cnorm [make cursor normal] not implemented
++# flash [flash] not implemented
++# blink [blink] not implemented very usefully in cygwin? \E[5m
++# dim [dim] not implemented very usefully in cygwin? \E[2m
++# cub1 [cursor back 1] typically \E[D, but ^H is faster?
++# kNXT [shifted next key] not implemented
++# kPRV [shifted prev key] not implemented
++# khome [home key] really is \E[1~ NOT \E[H
++# tbc [clear tab stops] not implemented
++# xenl [newline ignnored after 80 cols] messes up last line? Ehud Karni
++# smpch [Start PC charset] is \E[11m, same as smacs
++# rmpch [End PC charset] is \E[10m, same as rmacs
++# mir [move in insert mode] fails in tack?
++# bce [back color erase] causes problems with change background color?
++# cvvis [make cursor very visible] causes a stackdump when testing with
++# testcurs using the output option? \E[?25h\E[?8c
++# civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
++# ech [erase characters param] broken \E[%p1%dX
++# kcbt [back-tab key] not implemented in cygwin? \E[Z
+ #
+-# S2 3 Hertz
+-# U 50
+-# D 60
++# 2005/11/12 -TD
++# Remove cbt since it does not work in current cygwin
++# Add 'mir' and 'in' flags based on tack
++cygwin|ansi emulation for Cygwin,
++ am, hs, mir, msgr, xon,
++ colors#8, it#8, pairs#64,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD,
++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G,
++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
++ kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
++ kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
++ nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
++ rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
++ rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R,
++ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
++ sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h,
++ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];,
++ vpa=\E[%i%p1%dd, use=vt102+enq,
++
++# I've supplied this so that you can help test new values and add other
++# features. Cheers, earnie_boyd@yahoo.com.
+ #
+-# S2 4 Edit mode
+-# U local
+-# D duplex
++# Some features are from pcansi. The op value is from linux. Function-keys
++# are from linux. These have been tested not to cause problems. xenl was in
++# this list, but DOES cause problems so it has been removed
++cygwinDBG|Debug Version for Cygwin,
++ am, eo, mir, msgr, xon,
++ colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
++ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, invis=\E[8m, kNXT=\E[6$, kPRV=\E[5$,
++ kb2=\E[G, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
++ kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
++ knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m,
++ rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, rmir=\E[4l,
++ rmso=\E[m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
++ sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
++
++#### DJGPP
++
++# Key definitions:
++# The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc. match the
++# encodings used by other x86 environments. All others are invented for DJGPP.
++# Oddly enough, while several combinations of modifiers are tabulated, there is
++# none for shifted cursor keys.
+ #
+-# S2 5 Cursor type
+-# U underline
+-# D block
++# F1 \E[[A
++# F2 \E[[B
++# F3 \E[[C
++# F4 \E[[D
++# F5 \E[[E
++# F6 \E[17~
++# F7 \E[18~
++# F8 \E[19~
++# F9 \E[20~
++# F10 \E[21~
++# F11 \E[23~
++# F12 \E[24~
+ #
+-# S2 6 Cursor down key
+-# U send ^J
+-# D send ^V
++# Delete \E[3~
++# Down Arrow \E[B
++# End \E[4~
++# Home \E[1~
++# Insert \E[2~
++# Left Arrow \E[D
++# Page Down \E[6~
++# Page Up \E[5~
++# Right Arrow \E[C
++# Up Arrow \E[A
+ #
+-# S2 7 Screen colour
+-# U green on black
+-# D black on green
++# Shift-F1 \E[25~
++# Shift-F2 \E[26~
++# Shift-F3 \E[27~
++# Shift-F4 \E[28~
++# Shift-F5 \E[29~
++# Shift-F6 \E[30~
++# Shift-F7 \E[31~
++# Shift-F8 \E[32~
++# Shift-F9 \E[33~
++# Shift-F10 \E[34~
++# Shift-F11 \E[35~
++# Shift-F12 \E[36~
+ #
+-# S2 8 DSR status (pin 6)
+-# U disconnected
+-# D connected
++# Ctrl-F1 \E[47~
++# Ctrl-F2 \E[48~
++# Ctrl-F3 \E[49~
++# Ctrl-F4 \E[50~
++# Ctrl-F5 \E[51~
++# Ctrl-F6 \E[52~
++# Ctrl-F7 \E[53~
++# Ctrl-F8 \E[54~
++# Ctrl-F9 \E[55~
++# Ctrl-F10 \E[56~
++# Ctrl-F11 \E[57~
++# Ctrl-F12 \E[58~
+ #
+-# S2 9 DCD status (pin 8)
+-# U disconnected
+-# D duplex
++# Ctrl-Delete \E[43~
++# Ctrl-Down Arrow \E[38~
++# Ctrl-End \E[44~
++# Ctrl-Home \E[41~
++# Ctrl-Insert \E[42~
++# Ctrl-Left Arrow \E[39~
++# Ctrl-Page Down \E[46~
++# Ctrl-Page Up \E[45~
++# Ctrl-Right Arrow \E[40~
++# Ctrl-Up Arrow \E[37~
+ #
+-# S2 10 DTR status (pin 20)
+-# U disconnected
+-# D duplex
+-# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
+-# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
+-tvi910|televideo model 910,
+- OTbs, am, msgr,
+- cols#80, it#8, lines#24, xmc#1,
+- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
+- home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I,
+- if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- vpa=\E[%p1%{32}%+%c, use=adm+sgr,
+-# From: Alan R. Rogers <rogers%albany@csnet-relay>
+-# as subsequently hacked over by someone at SCO
+-# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
++# Alt-F1 \E[59~
++# Alt-F2 \E[60~
++# Alt-F3 \E[61~
++# Alt-F4 \E[62~
++# Alt-F5 \E[63~
++# Alt-F6 \E[64~
++# Alt-F7 \E[65~
++# Alt-F8 \E[66~
++# Alt-F9 \E[67~
++# Alt-F10 \E[68~
++# Alt-F11 \E[79~
++# Alt-F12 \E[80~
+ #
+-# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
++# Alt-Delete \E[65~
++# Alt-Down Arrow \E[60~
++# Alt-End \E[66~
++# Alt-Home \E[41~
++# Alt-Insert \E[64~
++# Alt-Left Arrow \E[61~
++# Alt-Page Down \E[68~
++# Alt-Page Up \E[67~
++# Alt-Right Arrow \E[62~
++# Alt-Up Arrow \E[59~
+ #
+-# S1 1 2 3 4:
+-# D D D D 9600 D D D U 50 D D U D 75 D D U U 110
+-# D U D D 135 D U D U 150 D U U D 300 D U U U 600
+-# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600
+-# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200
+-#
+-# S1 5 6 7 8:
+-# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2
+-# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2
+-# D U D D 8O1 D U U U 8E2
+-#
+-# S1 9 Autowrap (U = on, D = off)
+-# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received)
+-# S2 1 Mode (U = block, D = conversational)
+-# S2 2 Duplex (U = half, D = full)
+-# S2 3 Hertz (U = 50, D = 60)
+-# S2 4 Edit mode (U = local, D = duplex)
+-# S2 5 Cursor type (U = underline, D = block)
+-# S2 6 Cursor down key (U = send ^J, D = send ^V)
+-# S2 7 Screen colour (U = green on black, D = black on green)
+-# S2 8 DSR status (pin 6) (U = disconnected, D = connected)
+-# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
+-# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
+-#
+-tvi910+|televideo 910+,
+- dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
+- kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
+- kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
+- ll=\E=7\s, use=tvi910,
++# Also:
++# Alt-A \E[82~
++# Alt-B \E[82~
++# Alt-C \E[83~
++# Alt-D \E[84~
++# Alt-E \E[85~
++# Alt-F \E[86~
++# Alt-G \E[87~
++# Alt-H \E[88~
++# Alt-I \E[89~
++# Alt-J \E[90~
++# Alt-K \E[91~
++# Alt-L \E[92~
++# Alt-M \E[93~
++# Alt-N \E[94~
++# Alt-O \E[95~
++# Alt-P \E[96~
++# Alt-Q \E[97~
++# Alt-R \E[98~
++# Alt-S \E[99~
++# Alt-T \E[100~
++# Alt-U \E[101~
++# Alt-V \E[102~
++# Alt-W \E[103~
++# Alt-X \E[104~
++# Alt-Y \E[105~
++# Alt-Z \E[106~
++djgpp|ansi emulation for DJGPP alpha,
++ am, bce, msgr, xhp, xon, xt,
++ colors#8, it#8, pairs#64,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
++ clear=\E[H\E[J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
++ indn=\E[%p1%dS, invis=\E[8m, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
++ kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, nel=^M^J,
++ op=\E[37;40m, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%e;25%;%?%p6%t;1%;%?%p7%t;8%;m,
++ sgr0=\E[m, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+
+-# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and
+-# <khome> from BRL entry -- esr)
+-tvi912|tvi914|tvi920|old televideo 912/914/920,
+- OTbs, OTpt, am, msgr,
+- cols#80, it#8, lines#24, xmc#1,
+- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^,
+- ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt,
+- il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
+- kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
+- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
+- kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El,
+- tbc=\E3,
+-# We got some new tvi912c terminals that act really weird on the regular
+-# termcap, so one of our gurus worked this up. Seems that cursor
+-# addressing is broken.
+-tvi912cc|tvi912 at cowell college,
+- cup@, use=tvi912c,
++djgpp203|Entry for DJGPP 2.03,
++ OTbs, am,
++ cols#80, it#8, lines#25,
++ bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
++ kcud1=^J, nel=^M^J,
+
+-# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
+-# From: Benjamin C. W. Sittler
+-#
+-# Someone has put a scanned copy of the manual online at:
+-# http://vt100.net/televideo/912b-om/
+-#
+-# These terminals were produced ca. 1979, and had a 12" monochrome
+-# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit
+-# ASCII, and were generally similar to adm3a but with attributes
+-# (including some with magic cookies), fancy half-duplex mode, and
+-# different bugs.
+-#
+-# Some operations reqire truly incredible amounts of padding. The
+-# insert_line (<il1>) and delete_line (<dl1>) operations in particular
+-# are so slow as to be nearly unusable.
+-#
+-# There may or may not have been a separate, earlier series of 912/920
+-# terminals (without the "B" and "C" suffix); I have never seen one,
+-# and the manual only describes the "B" and "C" series. The 912 and 920
+-# are quite distinct from the 914 and 924, which were much nicer non-
+-# magic-cookie terminals similar to the 950.
+-#
+-# This is a new description for the following TeleVideo terminals,
+-# distinguished chiefly by their keyboards:
++djgpp204|Entry for DJGPP 2.04,
++ OTbs, am, AX,
++ colors#8, cols#80, it#8, lines#25, ncv#3, pairs#64,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[1v,
++ clear=\E[H\E[2J, cnorm=\E[v, cr=^M, cub=\E[%p1%dD,
++ cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, cvvis=\E[2v, dch=\E[%p1%dP, dch1=\E[P,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
++ il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kf0=\E[21~, kf1=\E[[A, kf10=\E[21~, kf2=\E[[B,
++ kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
++ kll=\E[4~, knp=\E[6~, kpp=\E[5~, nel=^M^J, rev=\E[7m,
++ ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, setab=\E[4%p1%dm,
++ setaf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++
++#### U/Win
++
++# This is tested using U/Win's telnet. Scrolling is omitted because it is
++# buggy. Another odd bug appears when displaying "~" in alternate character
++# set (the emulator spits out error messages). Compare with att6386 -TD
++uwin|U/Win 3.2 console,
++ am, eo, in, msgr, xenl, xon,
++ colors#8, it#8, ncv#58, pairs#64,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, ech=\E[%p1%dX,
++ ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, ich1=\E[@, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf1=\EOP,
++ kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ, kf3=\EOR,
++ kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX,
++ khome=\E[H, kich1=\E[@, nel=^M^J, op=\E[39;49m, rc=\E8,
++ rev=\E[7m, rmacs=\E[10m, rmir=\E[4l, rmpch=\E[10m,
++ rmso=\E[27m, rmul=\E[m, rs1=\Ec\E]R, sc=\E7,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
++ smacs=\E[11m, smir=\E[4h, smpch=\E[11m, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
++
++#### Microsoft (miscellaneous)
++
++# This entry fits the Windows NT console when the _POSIX_TERM environment
++# variable is set to 'on'. While the Windows NT POSIX console is seldom used,
++# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
++# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
++# systems is not, and (surprise!) they match very well.
+ #
+-# TVI-912B - very odd layout, no function keys (84 keys)
+-# TVI-920B - typewriter layout, no function keys (103 keys)
+-# TVI-912C - very odd layout, function keys F1-F11 (82 keys)
+-# TVI-920C - typewriter layout, function keys F1-F11 (101 keys)
++# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
++# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only
++# are the installation instructions a pile of mind-numbing bureaucratese,
++# but the termcap entry is actually broken and unusable as given; the :do:
++# capability is misspelled "d".
+ #
+-# To choose a setting for the TERM variable, start with the model:
++# To use this, you need to a bunch of environment variables:
+ #
+-# Model || base name
+-# ----------||-----------
+-# TVI-912B || tvi912b
+-# TVI-912C || tvi912c
+-# TVI-920B || tvi920b
+-# TVI-920C || tvi920c
++# SET _POSIX_TERM=on
++# SET TERM=ansi
++# SET TERMCAP=location of termcap file in POSIX file format
++# which is case-sensitive.
++# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
++# SET TMP=//C/TEMP
+ #
+-# Then add a suffix from the following table describing installed options
+-# and how you'd like to use the terminal:
++# Important note: setting the TMP environment variable in POSIX style renders
++# it incompatible with a lot of other applications, including Visual C++. So
++# you should have a separate command window just for vi. All the other
++# variables may be permanently set in the Control Panel\System applet.
+ #
+-# Use Video | Second | Visual | Magic | Page || feature
+-# Attributes | Page | Bell | Cookies | Print || suffix
+-# ------------|--------|--------|---------|-------||---------
+-# No | No | N/A | N/A | No || -unk
+-# No | No | N/A | N/A | Yes || -p
+-# No | Yes | No | N/A | No || -2p-unk
+-# No | Yes | No | N/A | Yes || -2p-p
+-# No | Yes | Yes | N/A | No || -vb-unk
+-# No | Yes | Yes | N/A | Yes || -vb-p
+-# Yes | No | N/A | No | N/A ||
+-# Yes | No | N/A | Yes | N/A || -mc
+-# Yes | Yes | No | No | N/A || -2p
+-# Yes | Yes | No | Yes | N/A || -2p-mc
+-# Yes | Yes | Yes | No | N/A || -vb
+-# Yes | Yes | Yes | Yes | N/A || -vb-mc
++# You can find out more about the restrictions of this facility at
++# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
+ #
+-# So e.g. a model 920 C with second page memory option, visual bell
+-# and no magic cookies would be tvi920c-vb; a model 912 B without the
+-# second page memory option and using magic cookies would be
+-# tvi912b-mc
++# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
++ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode,
++ am, bw, msgr,
++ cols#80, it#8, lines#25,
++ bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V,
++ kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m,
++ ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m,
++# From: jew@venus.sunquest.com
++# Date: 19 Feb 93 23:41:07 GMT
++# Here's a combination of ansi and vt100 termcap
++# entries that works nearly perfectly for me
++# (Gateway 2000 Handbook and Microsoft Works 3.0):
++pcmw|PC running Microsoft Works,
++ am, xenl,
++ cols#80, it#8, lines#24, vt#3,
++ bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
++ clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
++ cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
++ ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
++ rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/tabset/vt100,
++ ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
++ tbc=\E[3g$<2/>,
++
++# From: Federico Bianchi
++# This is the entry for the OpenNT terminal.
++# The ntconsole name is for backward compatability.
++# This is for OpenNT 2.0 and later.
++# Later OpenNT was renamed to Interix.
+ #
+-# PADDING
+-#
+-# At 9600 baud, the terminal is prone to overflow its input buffer
+-# during complex operations (insert/delete
+-# character/line/screen/page), and it does not signal this over the
+-# RS232 cable. The typical symptom of an overrun is that the terminal
+-# starts beeping, and output becomes garbled.
++# Presently it is distributed by Microsoft as Services For Unix (SFU).
++# The 3.5 beta contains ncurses 4.2 (that is header files and executables,
++# the documentation dates from 1.9.9e) -TD
++
++interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
++ am, bw, msgr,
++ colors#8, cols#80, lines#25, ncv#3, pairs#64,
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
++ cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
++ home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
++ indn=\E[%p1%dS, kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[M, kend=\E[U, kf0=\EFA,
++ kf1=\EF1, kf10=\EFA, kf11=\EFB, kf12=\EFC, kf13=\EFD,
++ kf14=\EFE, kf15=\EFF, kf16=\EFG, kf17=\EFH, kf18=\EFI,
++ kf19=\EFJ, kf2=\EF2, kf20=\EFK, kf21=\EFL, kf22=\EFM,
++ kf23=\EFN, kf24=\EFO, kf25=\EFP, kf26=\EFQ, kf27=\EFR,
++ kf28=\EFS, kf29=\EFT, kf3=\EF3, kf30=\EFU, kf31=\EFV,
++ kf32=\EFW, kf33=\EFX, kf34=\EFY, kf35=\EFZ, kf36=\EFa,
++ kf37=\EFb, kf38=\EFc, kf39=\EFd, kf4=\EF4, kf40=\EFe,
++ kf41=\EFf, kf42=\EFg, kf43=\EFh, kf44=\EFi, kf45=\EFj,
++ kf46=\EFk, kf47=\EFm, kf48=\EFn, kf49=\EFo, kf5=\EF5,
++ kf50=\EFp, kf51=\EFq, kf52=\EFr, kf53=\EFs, kf54=\EFt,
++ kf55=\EFu, kf56=\EFv, kf57=\EFw, kf58=\EFx, kf59=\EFy,
++ kf6=\EF6, kf60=\EFz, kf61=\EF+, kf62=\EF-,
++ kf63=\EF\014 kf64=\EF$, kf7=\EF7, kf8=\EF8, kf9=\EF9,
++ kich1=\E[L, kll=\E[U, knp=\E[T, kpp=\E[S, ll=\E[U, nel=^M^J,
++ op=\E[m, rc=\E[u, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
++ rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
++ sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
++ sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m,
++
++opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
++ lines#35, use=opennt,
++
++opennt-50|ntconsole-50|OpenNT-term50 compatible with color,
++ lines#50, use=opennt,
++
++opennt-60|ntconsole-60|OpenNT-term60 compatible with color,
++ lines#60, use=opennt,
++
++opennt-100|ntconsole-100|OpenNT-term100 compatible with color,
++ lines#100, use=opennt,
++
++# OpenNT wide terminals
++opennt-w|opennt-25-w|ntconsole-w|ntconsole-25-w|OpenNT-term-w compat with color,
++ cols#125, use=opennt,
++
++opennt-35-w|ntconsole-35-w|OpenNT-term35-w compatible with color,
++ lines#35, use=opennt-w,
++
++opennt-50-w|ntconsole-50-w|OpenNT-term50-w compatible with color,
++ lines#50, use=opennt-w,
++
++opennt-60-w|ntconsole-60-w|OpenNT-term60-w compatible with color,
++ lines#60, use=opennt-w,
++
++opennt-w-vt|opennt-25-w-vt|ntconsole-w-vt|ntconsole-25-w-vt|OpenNT-term-w-vt compat with color,
++ cols#132, use=opennt,
++
++# OpenNT terminals with no smcup/rmcup (names match termcap entries)
++interix-nti|opennt-nti|opennt-25-nti|ntconsole-25-nti|OpenNT-nti compatible with color,
++ rmcup@, smcup@, use=opennt,
++
++opennt-35-nti|ntconsole-35-nti|OpenNT-term35-nti compatible with color,
++ lines#35, use=opennt-nti,
++
++opennt-50-nti|ntconsole-50-nti|OpenNT-term50-nti compatible with color,
++ lines#50, use=opennt-nti,
++
++opennt-60-nti|ntconsole-60-nti|OpenNT-term60-nti compatible with color,
++ lines#60, use=opennt-nti,
++
++opennt-100-nti|ntconsole-100-nti|OpenNT-term100-nti compatible with color,
++ lines#100, use=opennt-nti,
++
++######## COMMON TERMINAL TYPES
+ #
+-# The padding delays in this terminfo were derived using tack(1)
+-# running on a Linux box connected to a TVI-920C with a later-model
+-# (A49C1-style) ROM running at 9600 baud, so your mileage may
+-# vary. The numbers below seem to give the terminal enough time so
+-# that it doesn't overflow its input buffer and start losing
+-# characters.
++# This section describes terminal classes and maker brands that are still
++# quite common, but have proprietary command sets not blessed by ANSI.
+ #
+-# KEYS
++
++#### Altos
+ #
+-# If you want to use the FUNCT key on a tvi912[bc], use the
+-# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from
+-# the following table (these also work on the 920 series):
++# Altos made a moderately successful line of UNIX boxes. In 1990 they were
++# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
++# Acer has a web site at http://www.acer.com.
+ #
+-# Unshifted Function Keys:
++# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
++# His comments suggest they were shipped with the system.
+ #
+-# Key | capname|| Equivalent
+-# -----|--------||------------
+-# F1 | <kf1> || FUNCT + @
+-# F2 | <kf2> || FUNCT + A
+-# F3 | <kf3> || FUNCT + B
+-# F4 | <kf4> || FUNCT + C
+-# F5 | <kf5> || FUNCT + D
+-# F6 | <kf6> || FUNCT + E
+-# F7 | <kf7> || FUNCT + F
+-# F8 | <kf8> || FUNCT + G
+-# F9 | <kf9> || FUNCT + H
+-# F10 | <kf10> || FUNCT + I
+-# F11 | <kf11> || FUNCT + J
++
++# (altos2: had extension capabilities
++# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
++# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
++# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
++# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
++# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
++# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
++# :HL=^AP\r:SP=\E[i:\
++# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
++# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
++# Comparison with the k* capabilities makes it obvious that the c* things are
++# shift keys. I have renamed them to keys 32 and up accordingly. Also,
++# :sr: was given as a boolean-- esr)
++altos2|alt2|altos-2|altos II,
++ cols#80, it#8, lines#24, xmc#0,
++ clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
++ if=/usr/share/tabset/vt100, il1=\E[L, ind=^J,
++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
++ kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
++ kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
++ kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
++ kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
++ kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
++ nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
++ smam=\E[?7h, smso=\E[7m, smul=\E[4m,
++# (altos3: had extension capabilities
++# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
++# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
++# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
++# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
++# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
++# :HL=^AP\r:SP=\E[i:\
++# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:
++altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
++ blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
++altos4|alt4|altos-4|altos IV,
++ use=wy50,
++# (altos7: had extension capabilities:
++# :GG#0:GI=\EH8:GF=\EH7:\
++# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
++# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
++# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
++# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
++# Comparison with the k* capabilities makes it obvious that the c* things are
++# shift keys. I have renamed them to keys 32 and up accordingly. I have
++# also made this entry relative to adm12 in order to give it an <sgr>. The
++# <invis> imported by use=adm+sgr may work, let me know. -- esr)
++altos7|alt7|altos VII,
++ am, mir,
++ cols#80, lines#24, xmc#0,
++ acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
++ clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
++ ind=^J, invis=\EG1,
++ is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
++ kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
++ kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
++ kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
++ kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
++ kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
++ knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej,
++ rmir=\Er, smir=\Eq, use=adm+sgr,
++altos7pc|alt7pc|altos PC VII,
++ kend=\ET, use=altos7,
++
++#### Hewlett-Packard (hp)
+ #
+-# Shifted Function Keys:
++# Hewlett-Packard
++# 8000 Foothills Blvd
++# Roseville, CA 95747
++# Vox: 1-(916)-785-4363 (Technical response line for VDTs)
++# 1-(800)-633-3600 (General customer support)
+ #
+-# SHIFT + Key | capname|| Equivalent
+-# -------------|--------||------------
+-# SHIFT + F1 | <kf12> || FUNCT + `
+-# SHIFT + F2 | <kf13> || FUNCT + a
+-# SHIFT + F3 | <kf14> || FUNCT + b
+-# SHIFT + F4 | <kf15> || FUNCT + c
+-# SHIFT + F5 | <kf16> || FUNCT + d
+-# SHIFT + F6 | <kf17> || FUNCT + e
+-# SHIFT + F7 | <kf18> || FUNCT + f
+-# SHIFT + F8 | <kf19> || FUNCT + g
+-# SHIFT + F9 | <kf20> || FUNCT + h
+-# SHIFT + F10 | <kf21> || FUNCT + i
+-# SHIFT + F11 | <kf22> || FUNCT + j
+ #
+-# PORTS AND SWITCH SETTINGS
++# As of March 1998, HP no longer has any terminals in production.
++# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
++# supported (they still have parts). So are the 2392a and 2394a.
++# See the WORKSTATION CONSOLES section for the 700s.
+ #
+-# Here are the switch settings for the TVI-912B/TVI-920B and
+-# TVI-912C/TVI-920C:
++
++# Generic HP terminal - this should (hopefully) work on any HP terminal.
++hpgeneric|hp|hewlett-packard generic terminal,
++ OTbs, OTpt, am, da, db, mir, xhp,
++ cols#80, lines#24, lm#0, vt#6,
++ bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM,
++ ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
++ ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@,
++ sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
++ vpa=\E&a%p1%dY,
++
++hp110|hewlett-packard model 110 portable,
++ lines#16, use=hpgeneric,
++
++hp+pfk+cr|hp function keys with CR,
++ kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
++ kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
++
++hp+pfk-cr|hp function keys w/o CR,
++ kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
++ kf8=\Ew,
++
++# The hp2621s use the same keys for the arrows and function keys,
++# but not separate escape sequences. These definitions allow the
++# user to use those keys as arrow keys rather than as function
++# keys.
++hp+pfk+arrows|hp alternate arrow definitions,
++ kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
++ kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
++ kll=\Eq\r, kri=\Es\r,
++
++hp+arrows|hp arrow definitions,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
++ kind=\ES, kll=\EF, kri=\ET,
++
++# Generic stuff from the HP 262x series
+ #
+-# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
+-# 2: 9600 3: 4800 4: 2400 5: 1200
+-# 6: 600 7: 300 8: 150 9: 75
+-# 10: 110
+-#
+-# S2 UART/Terminal options:
+-# Up Down
+-# 1: Not used Not allowed
+-# 2: Alternate character set Standard character set
+-# 3: Full duplex Half duplex
+-# 4: 50 Hz refresh 60 Hz refresh
+-# 5: No parity Send parity
+-# 6: 2 stop bits 1 stop bit
+-# 7: 8 data bits 7 data bits
+-# 8: Not used Not allowed on Rev E or lower
+-# 9: Even parity Odd parity
+-# 10: Steady cursor Blinking cursor
+-# (On Rev E or lower, use W25 instead of switch 10.)
+-#
+-# S5 UART/Terminal options:
+-# Open Closed
+-# 1: P3-6 Not connected DSR received on P3-6
+-# 2: P3-8 Not connected DCD received on P3-8
++hp262x|HP 262x terminals,
++ xhp,
++ blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
++ invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
++ kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
++ krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
++ sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c,
++ sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
++
++# Note: no <home> on HPs since that homes to top of memory, not screen.
++# Due to severe 2621 braindamage, the only way to get the arrow keys to
++# transmit anything at all is to turn on the function key labels
++# with <smkx>, and even then the user has to hold down shift!
++# The default 2621 turns off the labels except when it has to to
++# enable the function keys. If your installation prefers labels
++# on all the time, or off all the time (at the "expense" of the
++# function keys), use 2621-nl or 2621-wl.
+ #
+-# 3 Open, 4 Open: P3-20 Not connected
+-# 3 Open, 4 Closed: DTR on when terminal is on
+-# 3 Closed, 4 Open: DTR is connected to RTS
+-# 3 Closed, 4 Closed: Not allowed
++# Note: there are newer ROMs for 2621's that allow you to set
++# strap A so the regular arrow keys xmit \EA, etc, as with the
++# 2645. However, even with this strap set, the terminal stops
++# xmitting if you reset it, until you unset and reset the strap!
++# Since there is no way to set/unset the strap with an escape
++# sequence, we don't use it in the default.
++# If you like, you can use 2621-ba (brain-damaged arrow keys).
++hp2621-ba|2621 w/new rom and strap A set,
++ rmkx@, smkx@, use=hp+arrows, use=hp2621,
++
++# hp2621 with function labels. Most of the time they are off,
++# but inside vi, the function key labels appear. You have to
++# hold down shift to get them to xmit.
++hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
++ is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
++hp2621-fl|hp 2621,
++ xhp@, xon,
++ pb#19200,
++ cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
++ ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
++ sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
++ use=hp+pfk+cr, use=hpgeneric,
++
++# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
++hp2621p|hp 2621 with printer,
++ mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
++
++hp2621p-a|hp2621p with fn as arrows,
++ use=hp+pfk+arrows, use=hp2621p,
++
++# hp2621 with k45 keyboard
++hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
++ kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
++
++# 2621 using all 48 lines of memory, only 24 visible at any time.
++hp2621-48|48 line 2621,
++ lines#48,
++ cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
++ use=hp2621,
++
++# 2621 with no labels ever. Also prevents vi delays on escape.
++hp2621-nl|hp 2621 with no labels,
++ kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
++ use=hp2621-fl,
++
++# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
++# (wrong).
+ #
+-# 5 Closed: HDX printer (hardware control) Rev. K with extension port off,
+-# all data transmitted out of the modem port (P3) will also be
+-# transmitted out of the printer port (P4).
++hp2621-nt|hp 2621 w/no tabs,
++ ht@, use=hp2621,
++
++# Hp 2624 B with 4 or 10 pages of memory.
+ #
+-# 6 Open, 7 Open: Not allowed
+-# 6 Open, 7 Closed: 20ma current loop input
+-# 6 Closed, 7 Open: RS232 input
+-# 6 Closed, 7 Closed: Not allowed
++# Some assumptions are made with this entry. These settings are
++# NOT set up by the initialization strings.
+ #
+-# Jumper options:
+-# If the jumper is installed, the effect will occur (the next time the terminal
+-# is switched on).
++# Port Configuration
++# RecvPace=Xon/Xoff
++# XmitPace=Xon/Xoff
++# StripNulDel=Yes
+ #
+-# S4/W31: Enables automatic LF upon receipt of CR from
+-# remote or keyboard.
+-# S4/W32: Enables transmission of EOT at the end of Send. If not
+-# installed, a carriage return is sent.
+-# S4/W33: Disables automatic carriage return in column 80.
+-# S4/W34: Selects Page Print Mode as initial condition. If not
+-# installed, Extension Mode is selected.
++# Terminal Configuration
++# InhHndShk=Yes
++# InhDC2=Yes
++# XmitFnctn(A)=No
++# InhEolWrp=No
+ #
+-# NON-STANDARD CAPABILITIES
++# Note: the 2624 DOES have a true <home>, believe it or not!
+ #
+-# Sending <u9> or <u7> returns a cursor position report in the format
+-# YX\r, where Y and X are as in <cup>. This format is described in
+-# <u8> and <u6>, but it's not clear how one should write an
+-# appropriate scanf string, since we need to subtract %' ' from the
+-# character after reading it. The <u9> capability is used by tack(1)
+-# to synchronize during padding tests, and seems to work for that
+-# purpose.
++# The 2624 has an "error line" to which messages can be sent.
++# This is CLOSE to what is expected for a "status line". However,
++# after a message is sent to the "error line", the next carriage
++# return is EATEN and the "error line" is turned back off again!
++# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>.
+ #
+-# This description also includes the obsolete termcap capabilities
+-# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>).
++# This entry supports emacs (and any other program that uses raw
++# mode) at 4800 baud and less. I couldn't get the padding right
++# for 9600.
+ #
+-# FEATURES NOT YET DESCRIBED IN THIS TERMINFO
++# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
++hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
++ da, db,
++ lm#96,
++ flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F,
++ use=hp+labels, use=scrhp,
++
++# This hp2626 entry does not use any of the fancy windowing stuff
++# of the 2626.
+ #
+-# The FUNCT modifier actually works with every normal key by sending
+-# ^AX\r, where X is the sequence normally sent by that key. This is a
+-# sort of meta key not currently describable in terminfo.
++# Indeed, terminfo does not yet handle such stuff. Since changing
++# any window clears memory, it is probably not possible to use
++# this for screen opt.
+ #
+-# There are quite a few other keys (especially on the 920 models,) but
+-# they are for the most part only useful in block mode.
++# ed is incredibly slow most of the time - I am guessing at the
++# exact padding. Since the terminal uses xoff/xon this is intended
++# only for cost computation, so that the terminal will prefer el
++# or even dl1 which is probably faster!
+ #
+-# These terminals have lots of forms manipulation features, mainly
+-# useful in block mode, including "clear X to nulls" (vs. "clear X to
+-# spaces"; nulls are sentinels for "send X" operations); "send X"
+-# operations for uploading all or part of the screen; and block-mode
+-# editing keys (they don't send escape sequences, but manipulate video
+-# memory directly). Block mode is used for local editing, and protect
+-# mode (in conjunction with the "write protect" attribute,
+-# a.k.a. half-intensity outside of protect mode) is used to control
+-# which parts of the screen are edited/sent/printed (by <mc0>).
++# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
++# extra slow on the last line of the window.
+ #
+-# There are at least two major families of ROM, "early" and
+-# A49B1/A49C1; the major difference seems to be that the latter ROMs
+-# support a few extra escape sequences for manipulating the off-screen
+-# memory page, and for sending whole pages back to the host (mainly
+-# useful in block mode.) The descriptions in this file don't use any
+-# of those sequences: set cursor position including page (\E-PYX,
+-# where P is \s for page 0 and ! for page 1 [actually only the LSB of
+-# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are
+-# as in <cup>); read cursor position (\E/), which is analogous to <u9>
+-# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX
+-# are as in <cup>, and some "send page" features mainly useful for
+-# forms manipulation.
++# The padding probably should be changed.
+ #
+-# The keyboard enable (\E") and disable (\E#) sequences are unused,
+-# except that a terminal reset (<is2>) enables the keyboard.
++hp2626|hp2626a|hp2626p|hp 2626,
++ da, db,
++ lm#0, pb#19200,
++ ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
++ is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk-cr,
++ use=hp+labels, use=scrhp,
++
++# This entry is for sysline. It allocates a 23 line window with
++# a 115 line workspace for regular use, and a 1 line window for
++# the status line.
+ #
+-# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew)
+-# enabled in <is2>, but auto-flip is very jarring so we don't use it.
++# This assumes port 2 is being used.
++# Turn off horizontal line, Create ws #1 with 115 lines,
++# Create ws #2 with 1 line, Create window #1 lines 1-23,
++# Create window #2 lines 24-24, Attach cursor to workspace #1.
++# Note that this clears the tabs so it must be done by tset before
++# it sets the tabs.
+ #
+-# BUGS
++hp2626-s|hp 2626 using only 23 lines,
++ eslok, hs,
++ lines#23,
++ fsl=\E&d@\E&w7f2p1I\E&w4f1I,
++ is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r,
++ tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
++# Force terminal back to 24 lines after being 23.
++hp2626-ns|hp 2626 using all 24 lines,
++ is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r,
++ use=hp2626,
++# Various entries useful for small windows on 2626.
++hp2626-12|hewlett-packard 2626 12 lines,
++ lines#12, use=hp2626,
++hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
++ cols#40, lines#12, use=hp2626,
++hp2626-x40|hewlett-packard 2626 40 columns,
++ cols#40, use=hp2626,
++hp2626-12-s|hewlett-packard 2626 11 lines plus status,
++ lines#11, use=hp2626-s,
++
+ #
+-# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed
+-# sequences (I infer that in some TeleVideo terminal they may invert
+-# and uninvert the display) so the <flash> sequence given here is a
+-# cheesy page-flip instead.
++# hp2627 color tubes from University of Wisconsin
+ #
+-# The back_tab (<cbt>) sequence (\EI) doesn't work according to
+-# tack(1), so it is not included in the descriptions below.
++hp2627a-rev|hp 2627 with reverse video colors,
++ cr=^M, cud1=^J, ht=^I, ind=^J,
++ is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r,
++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@,
++ smul=\E&dD\E&v1S, use=hp2621-nl,
++hp2627a|hp 2627 color terminal with no labels,
++ cr=^M, cud1=^J, ht=^I, ind=^J,
++ is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
++ rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
++ use=hp2621-nl,
++hp2627c|hp 2627 color (cyan) terminal with no labels,
++ cr=^M, cud1=^J, ht=^I, ind=^J,
++ is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
++
++# hp2640a doesn't have the Y cursor addressing feature, and C is
++# memory relative instead of screen relative, as we need.
+ #
+-# It's not clear whether auto_left_margin (<bw>) flag should be set
+-# for these terminals; tack says yes, so it is set here, but this
+-# differs from other descriptions I've seen.
+-#
+-# Extension print mode (<mc5>) echoes all characters to the printer
+-# port [in addition to displaying them] except for the page print mode
+-# sequence (<mc4>); this is a slight violation of the terminfo
+-# definition for <mc5> but I don't expect it to cause problems. We
+-# reset to page print mode in <rs1> since it may have been enabled
+-# accidentally.
+-#
+-# The descriptions with plus signs (+) are building blocks.
+-
+-tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes),
+- OTbs, OTpt, am, bw,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>,
+- dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>,
+- home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>,
+- if=/usr/share/tabset/stdcrt, il1=\EE$<1*>$<100>,
+- ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J,
+- kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA,
+- mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r,
+- u7=\E?, u8=%c%c\r, u9=\E?,
+-
+-# This isn't included in the basic capabilities because it is
+-# typically unusable in combination with the full range of video
+-# attributes, since the magic cookie attributes turn into ASCII
+-# control characters, and the half-intensity ("protected") attribute
+-# converts all affected characters to spaces.
+-
+-tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support,
+- mc0=\EP,
+-
+-# This uses half-intensity mode (<dim>) for standout (<smso>), and
+-# exposes no other attributes (half-intensity is the only attribute
+-# that does not generate a magic cookie.)
+-
+-tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support,
+- msgr,
+- dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(,
+- smso=\E),
+-
+-# Full magic-cookie attribute support, with half-intensity reverse
+-# video for standout. Note that we add a space in the <dim> sequence
+-# to give a consistent magic-cookie count. Also note that <sgr> uses
+-# backspacing (in the TVI-supported order) to apply all requested
+-# attributes with only a single magic cookie.
++hp2640a|hp 2640a,
++ cup@, rmkx@, smkx@, use=hp2645,
+
+-tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support,
+- xmc#1,
+- blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek,
+- rmul=\Em,
+- sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;,
+- sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El,
++hp2640b|hp2644a|hp 264x series,
++ rmkx@, smkx@, use=hp2645,
+
+-# This uses the second page memory option to save & restore screen
+-# contents. If your terminal is missing the option, this description
+-# should still work, but that has not been tested.
++# (hp2641a: removed unknown :gu: -- esr)
++hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
++ am, da, db, mir, xhp,
++ cols#80, lines#24,
++ bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
++ ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I,
++ if=/usr/share/tabset/std, il1=\EL, ind=^J,
++ is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
++ rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
++ vpa=\E&a%p1%2dY,
+
+-tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support,
+- flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s,
+- smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>,
++# This terminal should be used at 4800 baud or less. It needs padding for
++# plain characters at 9600, I guessed at an appropriate cr delay. It really
++# wants ^E/^F handshaking, but that doesn't work well even if you write
++# software to support it.
++hp2645|hp45|HP 2645 series,
++ pb#9600,
++ blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
++ ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
++ kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
++ rmkx=\E&s0A,
++ sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
++ sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
++# You should use this terminal at 4800 baud or less.
++hp2648|hp2648a|HP 2648a graphics terminal,
++ clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
++ dch1=\EP$<7>, ip=$<5>, use=hp2645,
+
+-# This simulates flashing by briefly toggling to the other page
+-# (kludge!)
++# The HP 150 terminal is a fairly vanilla HP terminal, with the
++# clreol standout problem. It also has graphics capabilities and
++# a touch screen, which we don't describe here.
++hp150|hewlett packard Model 150,
++ OTbs, use=hp2622,
+
+-tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support,
+- bel=\EK$<100>\EK, use=tvi912b+2p,
++# HP 2382a terminals, "the little ones." They don't have any
++# alternate character set support and sending out ^N/^O will
++# leave the screen blank.
++hp2382a|hp2382|hewlett packard 2382a,
++ da, db,
++ lh#1, lm#48,
++ acsc@,
++ pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
++ rmacs@,
++ sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c,
++ sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp,
+
+-# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>)
++hp2621-a|hp2621a-a|hp2621 with fn as arrows,
++ use=hp+pfk+arrows, use=hp2621-fl,
+
+-tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support,
+- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r,
+- kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r,
+- kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r,
+- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r,
++# newer hewlett packard terminals
+
+-# Combinations of the basic building blocks
++newhpkeyboard|generic entry for HP extended keyboard,
++ kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
++ kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
++ kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
++ use=hp+pfk-cr,
+
+-tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes),
+- use=tvi912b+2p, use=tvi912b-unk,
++newhp|generic entry for new hewlett packard terminals,
++ am, bw, mir, xhp, xon,
++ cols#80, lines#24, pb#4800,
++ acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x.,
++ bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H,
++ cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
++ dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J,
++ invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J,
++ pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s,
++ pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s,
++ pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET,
++ rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg,
++ sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;,
++ sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD,
++ tbc=\E3, use=newhpkeyboard,
+
+-tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes),
+- use=tvi912b+vb, use=tvi912b-unk,
++memhp|memory relative addressing for new HP ttys,
++ vt#6,
++ clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR,
++ cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR,
++ home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r,
++ mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp,
+
+-tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print),
+- use=tvi912b+printer, use=tvi912b-unk,
++scrhp|screen relative addressing for new HP ttys,
++ clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC,
++ cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC,
++ cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR,
++ home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA,
++ mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp,
+
+-tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print),
+- use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk,
++# (hp+labels: added label values from a BRL termcap -- esr)
++hp+labels|"standard" label info for new HP ttys,
++ lh#2, lw#8, nlab#8,
++ lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8,
++ pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
++ rmln=\E&j@, smln=\E&jB,
+
+-tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print),
+- use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk,
++hp+printer|"standard" printer info for HP ttys,
++ ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C,
+
+-tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute),
+- use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk,
+
+-tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies),
+- use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk,
++# The new hp2621b is kind of a cross between the old 2621 and the
++# new 262x series of machines. It has dip-switched options.
++# The firmware has a bug in it such that if you give it a null
++# length label, the following character is eaten!
++hp2621b|hp 2621b with old style keyboard,
++ lh#1, lm#48, lw#8, nlab#8,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
++ kind=\ET, kll=\EF, kri=\ES,
++ pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r,
++ smln=\E&jB, use=hp2621,
+
+-tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute),
+- use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk,
++hp2621b-p|hp 2621b with printer,
++ use=hp+printer, use=hp2621b,
+
+-tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies),
+- use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk,
++# hp2621b - new 2621b with new extended keyboard
++# these are closer to the new 26xx series than the other 2621b
++hp2621b-kx|hp 2621b with extended keyboard,
++ use=newhpkeyboard, use=hp2621b,
+
+-tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute),
+- use=tvi912b+dim, use=tvi912b-unk,
++hp2621b-kx-p|hp 2621b with new keyboard & printer,
++ use=hp+printer, use=hp2621b-kx,
+
+-tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies),
+- use=tvi912b+mc, use=tvi912b-unk,
++# Some assumptions are made in the following entries.
++# These settings are NOT set up by the initialization strings.
++#
++# Port Configuration
++# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes
++#
++# Terminal Configuration
++# InhHndShk(G)=Yes InhDC2(H)=Yes
++# XmitFnctn(A)=No InhEolWrp=No
++#
++#
++# Hp 2622a & hp2623a display and graphics terminals
++#
++hp2622|hp2622a|hp 2622,
++ da, db,
++ lm#0, pb#19200,
++ is2=\E&dj@\r, use=hp+pfk-cr, use=hp+labels, use=scrhp,
+
+-tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes),
+- use=tvi920b+fn, use=tvi912b-unk,
++# The 2623 is a 2622 with extra graphics hardware.
++hp2623|hp2623a|hp 2623,
++ use=hp2622,
+
+-tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes),
+- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk,
++hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
++ use=hp+printer, use=hp2624,
+
+-tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes),
+- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk,
++# The hewlett packard B can have an optional extra 6 pages of memory.
++hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
++ lm#240, use=hp2624,
+
+-tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print),
+- use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk,
++hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
++ lm#240, use=hp2624b-p,
+
+-tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print),
+- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer,
+- use=tvi912b-unk,
++# Color manipulations for HP terminals
++hp+color|hp with colors,
++ ccc,
++ colors#16, ncv#17, pairs#7,
++ initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI,
++ oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I,
++ op=\E&v0S, scp=\E&v%p1%dS,
+
+-tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print),
+- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer,
+- use=tvi912b-unk,
++# <is2> sets the screen to be 80 columns wide
++hp2397a|hp2397|hewlett packard 2397A color terminal,
++ is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
+
+-tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute),
+- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim,
+- use=tvi912b-unk,
+-
+-tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies),
+- use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc,
+- use=tvi912b-unk,
+-
+-tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute),
+- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim,
+- use=tvi912b-unk,
++# HP 700/44 Setup parameters:
++# Terminal Mode HP-PCterm
++# Inhibit Auto Wrap NO
++# Status Line Host Writable
++# PC Character Set YES
++# Twenty-Five Line Mode YES
++# XON/XOFF @128 or 64 (sc)
++# Keycode Mode NO or YES (sc)
++# Backspace Key BS or BS/DEL
++#
++# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
++# \E\\? does not turn off keycode mode
++# <smsc> sets alternate start/stop; keycode on
++hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
++ am, eo, xenl, xon,
++ cols#80, lines#25,
++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
++ bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H,
++ cnorm=\E[?25h, cr=^M, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
++ ind=^J,
++ is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
++ kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
++ kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
++ kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
++ kpp=\E[5~, rmam=\E[?7l,
++ rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
++ rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
++ smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
++ smul=\E[4m, xoffc=g, xonc=e,
++#
++# (hp2392: copied <rmir> here from hpex -- esr)
++hp2392|239x series,
++ cols#80,
++ cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
++ kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
++ kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
++ rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
++ use=hpsub,
+
+-tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies),
+- use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc,
+- use=tvi912b-unk,
++hpsub|hp terminals -- capability subset,
++ am, da, db, mir, xhp, xon,
++ lines#24,
++ bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
++ cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
++ ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J,
++ is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
++ sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
+
+-tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute),
+- use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk,
++# hpex:
++# May be used for most 24 x 80 hp terminals,
++# but has no padding added, so may allow runover in some terminals at high
++# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and
++# hp98x5 terminal emulators or hp98x6 consoles.
++# Adds xy-cursor addressing, vertical cursor addressing, home,
++# last line, and underline capabilities.
++#
++# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
++# moved <rmir> here from hpsub -- esr)
++hpex|hp extended capabilites,
++ cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H,
++ kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ,
++ smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
+
+-tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies),
+- use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk,
++# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
++hp2|hpex2|hewlett-packard extended capabilities newer version,
++ am, da, db, mir, xhp,
++ cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
++ bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
++ cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
++ il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
++ ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
++ kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
++ kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
++ krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
++ pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
++ pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
++ pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
++ pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A,
++ rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
++ sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
++ sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
++ smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+
+-# Televideo 921 and variants
+-# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
+-# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
+-# also added empty <acsc> to suppress tic warning -- esr)
+-tvi921|televideo model 921 with sysline same as page & real vi function,
+- OTbs, OTpt, am, hs, xenl, xhp,
+- cols#80, lines#24, xmc#0,
+- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
+- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
+- el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
+- if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
+- is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
+- kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
+- ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
+- rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
+-# without the beeper
+-# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
+-# also added empty <acsc> to suppress tic warning -- esr)
+-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
+- am, hs, xenl, xhp,
+- cols#80, lines#24, xmc#0,
+- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
+- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
+- el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
+- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
+- invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
+- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
+- kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
+- nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
+-# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
+-tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
+- dl1=\ER$<2*/>, il1=\EE$<2*/>,
+- is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
+- kil1=\EE$<2*/>, use=tvi92B,
++# HP 236 console
++# From: <ddavis@ic.berkeley.edu>
++hp236|hp236 internal terminal emulator,
++ OTbs, am,
++ cols#80, lines#24,
++ clear=\EF, cnorm=\EDE, cub1=^H,
++ cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB,
++ dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI,
++ sgr0=\ECI, smso=\EBI,
+
+-# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings
+-# in from a BSD termcap file because it looks like they do something the
+-# old ones skip -- esr)
+-tvi924|televideo tvi924,
+- am, bw, hs, in, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, wsl#80, xmc#0,
+- bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
+- cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
+- cub1=^H, cud1=^V, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
+- dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
+- flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
+- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
+- invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
+- kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
+- kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
+- kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
+- kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
+- kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
+- kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
+- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
+- pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
+- use=adm+sgr,
++# This works on a hp300 console running Utah 4.3 BSD
++# From: Craig Leres <leres@okeeffe.berkeley.edu>
++hp300h|HP Catseye console,
++ OTbs, am, da, db, mir, xhp,
++ cols#128, lines#51, lm#0, xmc#0,
++ bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
++ cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
++ if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
++ rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
++ smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
++ vpa=\E&a%p1%dY,
++# From: Greg Couch <gregc@ernie.berkeley.edu>
++hp9837|hp98720|hp98721|HP 9000/300 workstations,
++ OTbs, am, da, db, mir, xhp,
++ cols#128, it#8, lines#46, lm#0,
++ bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
++ cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
++ il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
++ ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
++ kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
++ sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
++ tbc=\E3, vpa=\E&a%p1%dY,
++# HP 9845 desktop computer from BRL
++# (hp9845: removed unknown capability :gu: -- esr)
++hp9845|HP 9845,
++ OTbs, am, da, db, eo, mir, xhp,
++ cols#80, lines#21,
++ OTbc=\ED, clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
++ ed=\EJ, el=\EK, if=/usr/share/tabset/std, il1=\EL,
++ rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
++# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
++# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
++# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
++hp98550|hp98550a|HP 9000 Series 300 color console,
++ OTbs, am, da, db, mir, xhp,
++ cols#128, it#8, lines#49, lm#0,
++ acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
++ clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
++ dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
++ if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds,
++ kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
++ kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
++ khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
++ knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
++ rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
++ sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
++ smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
++# From: Victor Duchovni <vic@fine.princeton.edu>
++# (hp700-wy: removed obsolete ":nl=^J:";
++# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
++hp700-wy|HP700/41 emulating wyse30,
++ OTbs, am, bw, mir, msgr,
++ cols#80, it#8, lines#24, xmc#1,
++ cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1,
++ if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>,
++ is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI,
++ kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY,
++ kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K,
++ ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
++ sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
++ smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
++hp70092|hp70092a|hp70092A|HP 700/92,
++ am, da, db, xhp,
++ cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
++ acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
++ bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H,
++ cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
++ dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
++ hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
++ ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
++ kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
++ kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
++ krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
++ rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
++ sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
++ smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+
+-# TVI925 DIP switches. In each of these, D = Down and U = Up,
++bobcat|sbobcat|HP 9000 model 300 console,
++ am, da, db, mir, xhp,
++ cols#128, it#8, lines#47, xmc#0,
++ cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
++ cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
++ dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
++ il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER,
++ rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
++ smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
++gator-t|HP 9000 model 237 emulating extra-tall AAA,
++ lines#94, use=gator,
++gator|HP 9000 model 237 emulating AAA,
++ bw, km, mir, ul,
++ cols#128, it#8, lines#47,
++ bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
++ dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
++ ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
++ il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
++ rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
++ rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++gator-52|HP 9000 model 237 emulating VT52,
++ cols#128, lines#47, use=vt52,
++gator-52t|HP 9000 model 237 emulating extra-tall VT52,
++ lines#94, use=gator-52,
++
++#### Honeywell-Bull
+ #
+-# Here are the settings for the external (baud) switches (S1):
++# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
+ #
+-# Position Baud
+-# 7 8 9 10 [Printer]
+-# 1 2 3 4 [Main RS232]
+-# -----------------------------------------------------
+-# D D D D 9600
+-# D D D U 50
+-# D D U D 75
+-# D D U U 110
+-# D U D D 135
+-# D U D U 150
+-# D U U D 300
+-# D U U U 600
+-# U D D D 1200
+-# U D D U 1800
+-# U D U D 2400
+-# U D U U 3600
+-# U U D D 4800
+-# U U D U 7200
+-# U U U D 9600
+-# U U U U 19200
++
++# Honeywell Bull terminal. Its cursor and function keys send single
++# control characters and it has standout/underline glitch. Most programs
++# do not like these features/bugs. Visual bell is realized by flashing the
++# "keyboard locked" LED.
++dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
++ cols#80, lines#25,
++ clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K,
++ flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y,
++ kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J,
++dku7003|Honeywell Bull DKU 7003 all features described,
++ msgr,
++ xmc#1,
++ blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m,
++ rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++ use=dku7003-dumb,
++
++#### Lear-Siegler (adm)
+ #
++# These guys are long since out of the terminals business, but
++# in 1995 many current terminals still have an adm type as one of their
++# emulations (usually their stupidest, and usually labeled adm3, though
++# these `adm3' emulations normally have adm3a+ capabilities).
+ #
+-# Settings for word length and stop-bits (S1)
++# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
++# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
++# was being held to ground would trigger a send of the top line on the screen.
++# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
++# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
++# for clearing up this point.)
++
++adm1a|adm1|lsi adm1a,
++ am,
++ cols#80, lines#24,
++ bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
++ ind=^J,
++adm2|lsi adm2,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
++# (adm3: removed obsolete ":ma=^K^P:" -- esr)
++adm3|lsi adm3,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
++# The following ADM-3A switch settings are assumed for normal operation:
++# SPACE U/L_DISP CLR_SCRN 24_LINE
++# CUR_CTL LC_EN AUTO_NL FDX
++# Other switches may be set for operator convenience or communication
++# requirements. I recommend
++# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF
++# ETX_OFF EOT_OFF
++# Most of these terminals required an option ROM to support lower case display.
++# Open the case and look at the motherboard; if you see an open 24-pin DIP
++# socket, you may be out of luck.
+ #
+-# Position Description
+-# 5 6
+-# ---------------------------
+-# U - 7-bit word
+-# D - 8-bit word
+-# - U 2 stop bits
+-# - D 1 stop bit
++# (adm3a: some capabilities merged in from BRl entry -- esr)
++adm3a|lsi adm3a,
++ OTbs, am,
++ cols#80, lines#24,
++ OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
++ kcuu1=^K, rs2=^N,
++adm3a+|adm3a plus,
++ kbs=^H, use=adm3a,
++# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
++adm5|lsi adm5,
++ xmc#1,
++ bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
++ rmso=\EG, smso=\EG, use=adm3a+,
++# A lot of terminals other than adm11s use these. Wherever you see
++# use=adm+sgr with some of its capabilities disabled, try the
++# disabled ones. They may well work but not have been documented or
++# expressed in the using entry. We'd like to cook up an <sgr> but the
++# <rmacs>/<smacs> sequences of the using entries vary too much.
++adm+sgr|adm style highlight capabilities,
++ invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0,
++ smso=\EG4, smul=\EG8,
++# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
++# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
++# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. <clear> could also
++# be ^Z, according to his entry.
++# (adm11: <smul>=\EG4 was obviously erroneous because it also said
++# <rev>=\EG4. Looking at other ADMs confirms this -- esr)
++adm11|LSI ADM-11,
++ OTbs, am, hs,
++ OTkn#8, cols#80, lines#24,
++ OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H,
++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I,
++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E),
++ use=adm+sgr,
++# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
++# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
++# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
++# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had
++# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost>
++# via BRL. That entry asserted <xmc#1>, but I've left that out because
++# neither earlier nor later ADMSs have it -- esr)
+ #
++# You will need to get into the supervisor setup before you can set
++# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
++# see a lot more setup options.
+ #
+-# S2 (external) settings
++# While in supervisor setup you can also use following codes:
+ #
+-# Position Up Dn Description
+-# --------------------------------------------
+-# 1 X Local edit
+-# X Duplex edit (transmit editing keys)
+-# --------------------------------------------
+-# 2 X 912/920 emulation
+-# X 925
+-# --------------------------------------------
+-# 3 X
+-# 4 X No parity
+-# 5 X
+-# --------------------------------------------
+-# 3 X
+-# 4 X Odd parity
+-# 5 X
+-# --------------------------------------------
+-# 3 X
+-# 4 X Even parity
+-# 5 X
+-# --------------------------------------------
+-# 3 X
+-# 4 X Mark parity
+-# 5 X
+-# --------------------------------------------
+-# 3 X
+-# 4 X Space parity
+-# 5 X
+-# --------------------------------------------
+-# 6 X White on black display
+-# X Black on white display
+-# --------------------------------------------
+-# 7 X Half Duplex
+-# 8 X
+-# --------------------------------------------
+-# 7 X Full Duplex
+-# 8 X
+-# --------------------------------------------
+-# 7 X Block mode
+-# 8 X
+-# --------------------------------------------
+-# 9 X 50 Hz
+-# X 60 Hz
+-# --------------------------------------------
+-# 10 X CR/LF (Auto LF)
+-# X CR only
++# Ctrl-P Personality character selections (configure for example what
++# arrow keys send, if I recall correctly)
++# Ctrl-T tabs 1-80 use left&right to move and up to set and
++# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
++# Ctrl-B Binary setup (probably not needed. I think that everything can
++# be set using normal setup)
++# Ctrl-A Answerback mode (enter answerback message)
++# Ctrl-U User friendly mode (normal setup)
++# Ctrl-D Defaults entire setup and function keys from EPROM tables
++# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
++# Ctrl-R Reads both setup and functions keys from NVM.
++# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
+ #
+-# S3 (internal switch) settings:
++# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
++# RTS/CTS used nowadays with virtually every modem and computer. 19200
++# bps works fine with hardware flow control.
+ #
+-# Position Up Dn Description
+-# --------------------------------------------
+-# 1 X Keyclick off
+-# X Keyclick on
+-# --------------------------------------------
+-# 2 X English
+-# 3 X
+-# --------------------------------------------
+-# 2 X German
+-# 3 X
+-# --------------------------------------------
+-# 2 X French
+-# 3 X
+-# --------------------------------------------
+-# 2 X Spanish
+-# 3 X
+-# --------------------------------------------
+-# 4 X Blinking block cursor
+-# 5 X
+-# --------------------------------------------
+-# 4 X Blinking underline cursor
+-# 5 X
+-# --------------------------------------------
+-# 4 X Steady block cursor
+-# 5 X
+-# --------------------------------------------
+-# 4 X Steady underline cursor
+-# 5 X
+-# --------------------------------------------
+-# 6 X Screen blanking timer (ON)
+-# X Screen blanking timer (OFF)
+-# --------------------------------------------
+-# 7 X Page attributes
+-# X Line attributes
+-# --------------------------------------------
+-# 8 X DCD disconnected
+-# X DCD connected
+-# --------------------------------------------
+-# 9 X DSR disconnected
+-# X DSR connected
+-# --------------------------------------------
+-# 10 X DTR Disconnected
+-# X DTR connected
+-# --------------------------------------------
+-#
+-# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr)
+-tvi925|televideo 925,
+- OTbs, am, bw, hs, ul,
+- cols#80, lines#24, xmc#1,
+- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V,
+- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
+- flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1,
+- ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z,
+- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+- ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
+- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
+- kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3,
+- tsl=\Eh\Ef, use=adm+sgr,
+-# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
+-# to avoid "magic cookie" standout glitch:
+-tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
+- xmc@,
+- kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925,
+-
+-# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
+-# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
+-# for additional capabilities,
+-# The following tvi descriptions from B:pjphar and virus!mike
+-# is for all 950s. It sets the following attributes:
+-# full duplex (\EDF) write protect off (\E()
+-# conversation mode (\EC) graphics mode off (\E%)
+-# white on black (\Ed) auto page flip off (\Ew)
+-# turn off status line (\Eg) clear status line (\Ef\r)
+-# normal video (\E0) monitor mode off (\EX or \Eu)
+-# edit mode (\Er) load blank char to space (\Ee\040)
+-# line edit mode (\EO) enable buffer control (^O)
+-# protect mode off (\E\047) duplex edit keys (\El)
+-# program unshifted send key to send line all (\E016)
+-# program shifted send key to send line unprotected (\E004)
+-# set the following to nulls:
+-# field delimiter (\Ex0\200\200)
+-# line delimiter (\Ex1\200\200)
+-# start-protected field delimiter (\Ex2\200\200)
+-# end-protected field delimiter (\Ex3\200\200)
+-# set end of text delimiter to carriage return/null (\Ex4\r\200)
++# The following null-modem cable should fix this and enable you to use
++# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
++# set ADM-12+ for DTR handshaking from supervisor setup.
+ #
+-# TVI 950 Switch Setting Reference Charts
++# PC Serial ADM-12+
++# -------- -------
++# 2 - 3
++# 3 - 2
++# 4 - 5
++# 5 - 20
++# 6,8 - 4
++# 7 - 7
++# 20 - 6,8
+ #
+-# TABLE 1:
++adm12|lsi adm12,
++ OTbs, OTpt, am, mir,
++ OTug#1, cols#80, it#8, lines#24,
++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
++ is2=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
++ kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
++ kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
++ use=adm+sgr,
++# (adm20: removed obsolete ":kn#7:" -- esr)
++adm20|lear siegler adm20,
++ OTbs, am,
++ cols#80, it#8, lines#24,
++ bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
++ cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
++ kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
++ sgr0=\E(, smso=\E),
++adm21|lear siegler adm21,
++ xmc#1,
++ bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=\ER$<30*>, ed=\EY,
++ el=\ET, ich1=\EQ, il1=\EE$<30*>, ind=^J, invis@, kbs=^H,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
++ use=adm+sgr, use=adm3a,
++# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
++# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
++# removed bogus-looking \200 from before <cup>. -- esr)
++adm22|lsi adm22,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE,
++ is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0,
++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
++ lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E),
++# ADM 31 DIP Switches
+ #
+-# S1 1 2 3 4 5 6 7 8 9 10
+-# +-----------------------+-----+-----+-----------------------+
+-# | Computer Baud Rate |Data |Stop | Printer Baud Rate |
+-# | |Bits |Bits | |
+-# +------+-----------------------+-----+-----+-----------------------+
+-# | Up | See | 7 | 2 | See |
+-# +------+-----------------------+-----+-----+-----------------------+
+-# | Down | TABLE 2 | 8 | 1 | TABLE 2 |
+-# +------+-----------------------+-----+-----+-----------------------+
++# This information comes from two versions of the manual for the
++# Lear-Siegler ADM 31.
+ #
++# Main board:
++# rear of case
++# +-||||-------------------------------------+
++# + S1S2 ||S +
++# + ||3 +
++# + +
++# + ||S +
++# + ||4 +
++# + +
++# + +
++# + +
++# + +
++# + +
++# +-+ +-+
++# + +
++# + S5 S6 S7 +
++# + == == == +
++# +----------------------------------------------+
++# front of case (keyboard)
+ #
+-# S2 1 2 3 4 5 6 7 8 9 10
+-# +-----+-----+-----------------+-----+-----------+-----+-----+
+-# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click|
+-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
+-# | Up | Dplx|Blink| See |GonBk| See | 60 | Off |
+-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
+-# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On |
+-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
++# S1 - Data Rate - Modem
++# S2 - Data Rate - Printer
++# ------------------------
++# Data Rate Setting
++# -------------------
++# 50 0 0 0 0
++# 75 1 0 0 0
++# 110 0 1 0 0
++# 134.5 1 1 0 0
++# 150 0 0 1 0
++# 300 1 0 1 0
++# 600 0 1 1 0
++# 1200 1 1 1 0
++# 1800 0 0 0 1
++# 2000 1 0 0 1
++# 2400 0 1 0 1
++# 3600 1 1 0 1
++# 4800 0 0 1 1
++# 7200 1 0 1 1
++# 9600 0 1 1 1
++# x 1 1 1 1
+ #
+-# TABLE 2:
++# S3 - Interface/Printer/Attributes
++# ---------------------------------
++# Printer Busy Control
++# sw1 sw2 sw3
++# ---------------
++# off off off Busy not active, CD disabled
++# off off on Busy not active, CD enabled
++# off on off Busy active on J5-20, CD disabled
++# on off off Busy active on J5-19, CD disabled - Factory Set.
++# on off on Busy active on J5-19, CD enabled
+ #
+-# +-----------+-----+-----+-----+-----+-----------+
+-# | Display | 1 | 2 | 3 | 4 | Baud |
+-# +-----------+-----+-----+-----+-----+ |
+-# | Printer | 7 | 8 | 9 | 10 | Rate |
+-# +-----------+-----+-----+-----+-----+-----------+
+-# | D | D | D | D | 9600 |
+-# | U | D | D | D | 50 |
+-# | D | U | D | D | 75 |
+-# | U | U | D | D | 110 |
+-# | D | D | U | D | 135 |
+-# | U | D | U | D | 150 |
+-# | D | U | U | D | 300 |
+-# | U | U | U | D | 600 |
+-# | D | D | D | U | 1200 |
+-# | U | D | D | U | 1800 |
+-# | D | U | D | U | 2400 |
+-# | U | U | D | U | 3600 |
+-# | D | D | U | U | 4800 |
+-# | U | D | U | U | 7200 |
+-# | D | U | U | U | 9600 |
+-# | U | U | U | U | 19200 |
+-# +-----+-----+-----+-----+-----------+
++# sw4 Used in conjuction with S4 for comm interface control - Fact 0
+ #
+-# TABLE 3:
+-# +-----+-----+-----+-----------+
+-# | 3 | 4 | 5 | Parity |
+-# +-----+-----+-----+-----------+
+-# | X | X | D | None |
+-# | D | D | U | Odd |
+-# | D | U | U | Even |
+-# | U | D | U | Mark |
+-# | U | U | U | Space |
+-# +-----+-----+-----+-----------+
+-# X = don't care
++# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0
+ #
+-# CHART:
+-# +-----+-----+-----------------+
+-# | 7 | 8 | Communication |
+-# +-----+-----+-----------------+
+-# | D | D | Half Duplex |
+-# | D | U | Full Duplex |
+-# | U | D | Block |
+-# | U | U | Local |
+-# +-----+-----+-----------------+
++# sw6 ON enables printer BUSY active LOW - Factory Setting
++# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
+ #
+-# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
+-# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich>
+-# should be present and all tvi native modes use the same string for this.
+-# Finally, note that BSD has cud1=^V. -- esr)
+-tvi950|televideo 950,
+- OTbs, am, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, xmc#1,
+- acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*,
+- cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed,
+- fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J,
+- invis@,
+- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r,
+- kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L,
+- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r,
+- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X,
+- rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
+- use=adm+sgr,
++# sw7 ON - steady cursor - Factory Setting
++# OFF - blinking cursor
+ #
+-# is for 950 with two pages adds the following:
+-# set 48 line page (\E\\2)
+-# place cursor at page 0, line 24, column 1 (\E-07 )
+-# set local (no send) edit keys (\Ek)
++# sw8 ON causes selected attribute character to be displayed
++# OFF causes SPACE to be displayed instead - Factory Setting
+ #
+-# two page 950 adds the following:
+-# when entering ex, set 24 line page (\E\\1)
+-# when exiting ex, reset 48 line page (\E\\2)
+-# place cursor at 0,24,1 (\E-07 )
+-# set duplex (send) edit keys (\El) when entering vi
+-# set local (no send) edit keys (\Ek) when exiting vi
++# S4 - Interface
++# --------------
++# Modem Interface
++# S3 S4 S4 S4 S4
++# sw4 sw1 sw2 sw3 sw4
++# ---------------------------
++# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and
++# Current Loop disabled - Factory Setting
++# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect
++# disabled
++# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and
++# Current Loop Disabled
+ #
+-tvi950-2p|televideo950 w/2 pages,
+- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011,
+- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+- smkx=\El, use=tvi950,
++# sw5 ON disables dot stretching mode - Factory Setting
++# OFF enables dot stretching mode
++# sw6 ON enables blanking function
++# OFF enables underline function - Factory Setting
++# sw7 ON causes NULLS to be displayed as NULLS
++# OFF causes NULLS to be displayed as SPACES - Factory Setting
+ #
+-# is for 950 with four pages adds the following:
+-# set 96 line page (\E\\3)
+-# place cursor at page 0, line 24, column 1 (\E-07 )
++# S5 - Word Structure
++# -------------------
++# sw1 ON enables BREAK key - Factory Setting
++# OFF disables BREAK key
++# sw2 ON selects 50Hz monitor refresh rate
++# OFF selects 60Hz monitor refresh rate - Factory Setting
+ #
+-# four page 950 adds the following:
+-# when entering ex, set 24 line page (\E\\1)
+-# when exiting ex, reset 96 line page (\E\\3)
+-# place cursor at 0,24,1 (\E-07 )
++# Modem Port Selection
++# sw3 sw4 sw5
++# ---------------
++# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits
++# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits
++# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
++# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit
++# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits
++# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit
++# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit
++# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit
+ #
+-tvi950-4p|televideo950 w/4 pages,
+- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011,
+- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+- smkx=\El, use=tvi950,
++# sw6 ON sends bit 8 a 1 (mark)
++# OFF sends bit 8 as 0 (space) - Factory Setting
++# sw7 ON selects Block Mode
++# OFF selects Conversation Mode - Factory Setting
++# sw8 ON selects Full Duplex operation
++# OFF selects Half Duplex operation - Factory Setting
+ #
+-# <is2> for reverse video 950 changes the following:
+-# set reverse video (\Ed)
++# S6 - Printer
++# ------------
++# sw1, sw2, sw6, sw7 Reserved - Factory 0
+ #
+-# set vb accordingly (\Ed ...delay... \Eb)
++# Printer Port Selection
++# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
+ #
+-tvi950-rv|televideo950 rev video,
+- flash=\Ed$<200/>\Eb,
+- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0,
+- use=tvi950,
+-
+-# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
+-tvi950-rv-2p|televideo950 rev video w/2 pages,
+- flash=\Ed$<200/>\Eb,
+- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s,
+- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+- smkx=\El, use=tvi950,
+-
+-# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
+-tvi950-rv-4p|televideo950 rev video w/4 pages,
+- flash=\Ed$<200/>\Eb,
+- is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s,
+- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
+- smkx=\El, use=tvi950,
+-# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
+-# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
+-# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
+-# the :rs: string, inserted the <ich> implied by the termcap :ko: string. Note
+-# the :ko: string had :cl: in it, which means that one of the original
+-# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
+-# the 950 has. Finally, corrected the <kel> string to match the 950 and what
+-# ko implies -- esr)
+-# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
+-# also work.
+-tvi955|televideo 955,
+- OTbs, mc5i, msgr@,
+- it#8, xmc@,
+- acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
+- civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
+- cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
+- is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1,
+- knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%,
+- rmam=\E[=7l, rmxon=^N,
+- rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r,
+- sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
+- use=tvi950,
+-tvi955-w|955-w|televideo955 w/132 cols,
+- cols#132,
+- is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
+-# use half-intensity as normal mode, full intensity as <bold>
+-tvi955-hb|955-hb|televideo955 half-bright,
+- bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
+- sgr0=\EG0\E[=5h, use=tvi955,
+-# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
+-# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m;
+-# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL.
+-# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
+-# it does to the function keys. I deduced <rmam>/<smam>.
+-# also added empty <acsc> to suppress tic warning, -- esr)
+-tvi970|televideo 970,
+- OTbs, OTpt, am, da, db, mir, msgr,
+- cols#80, it#8, lines#24,
+- acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
+- cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r,
+- ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
+- hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
+- is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
+- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
+- kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
+- rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
+- smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
+- smul=\E[4m, vpa=\E[%i%p1%dd,
+-tvi970-vb|televideo 970 with visual bell,
+- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
+- use=tvi970,
+-tvi970-2p|televideo 970 with using 2 pages of memory,
+- rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
+- use=tvi970,
+-# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
+-# per line (rather than 40), Esc K chooses the normal character set. Not sure
+-# padding is needed, but adapted from the tvi920c termcap. The <smso> and
+-# <smul> strings are klutzy, but at least use no screen space.
+-# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>,
+-# its absence means <smam>=\Ev isn't safe to use. -- esr)
+-# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
+-# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
+-# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
+-tvipt|televideo personal terminal,
+- OTbs, am,
+- cols#80, lines#24,
+- cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>,
+- ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt,
+- il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J,
+- kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
+- rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
+-# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
+-tvi9065|televideo 9065,
+- am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
+- wnum#0, wsl#30,
+- acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
+- blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
+- cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
+- cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
+- cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
+- dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
+- el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+- ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
+- il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
+- ip=$<3>,
+- is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
+- is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
+- kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
+- kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H,
+- mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J,
+- pfkey=\E|%p1%{48}%+%c3%p2%s\031,
+- pfloc=\E|%p1%{48}%+%c2%p2%s\031,
+- pfx=\E|%p1%{48}%+%c1%p2%s\031,
+- pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
+- rep=\E[%p2%db%p1%c, rev=\EG4,
+- rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT,
+- rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H,
+- rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0,
+- rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
+- rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
+- rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
+- sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
+- sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
+- smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
+- tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
+-
+-#### Visual (vi)
++# sw8 ON enables Printer Port
++# OFF disables Printer Port - Factory Setting
+ #
+-# In September 1993, Visual Technology of Westboro, Massachusetts,
+-# merged with White Pine Software of Nashua, New Hampshire.
++# S7 - Polling Address
++# --------------------
++# sw1-7 Establish ASCII character which designates terminal polling address
++# ON = logic 0
++# OFF = logic 1 - Factory Setting
++# sw8 ON enables Polling Option
++# OFF disables Polling Option - Factory Setting
+ #
+-# White Pine Software may be contacted at +1 603/886-9050.
+-# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
+ #
+-
+-# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
+-# Recently I hacked together the following termcap for Visual
+-# Technology's Visual 50 terminal. It's a slight modification of
+-# the vt52 termcap.
+-# It's intended to run when the Visual 50 is in vt52 emulation mode
+-# (I know what you're thinking; if it's emulating a vt52, then why
+-# another termcap? Well, it turns out that the Visual 50 can handle
+-# <dl1> and db(?) among other things, which the vt52 can't)
+-# The termcap works OK for the most part. The only problem is on
+-# character inserts. The whole line gets painfully redrawn for each
+-# character typed. Any suggestions?
+-# Beau's entry is combined with the vi50 entry from University of Wisconsin.
+-# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in
+-# disguise; <kf7>-<kf9> are really l1-l3.
+-vi50|visual 50,
+- OTbs, OTpt, am, da, db, msgr,
+- cols#80, it#8, lines#24,
+- OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H,
+- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
+- ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
+- kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
+- nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
+-# this one was BSD & SCO's vi50
+-vi50adm|visual 50 in adm3a mode,
+- am, msgr,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
+- ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
+- rmso=\ET, smso=\EU,
+-# From: Jeff Siegal <jbs@quiotix.com>
+-vi55|Visual 55,
+- OTbs, am, mir, msgr,
+- cols#80, it#8, lines#24,
+- clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
+- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
+- il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
+- smir=\Ea, smso=\EU,
+-
+-# Visual 200 from BRL
+-# The following switch settings are assumed for normal operation:
+-# FULL_DUPLEX SCROLL CR
+-# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE
+-# Other switches may be set for operator convenience or communication
+-# requirements.
+-# Character insertion is kludged in order to get around the "beep" misfeature.
+-# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
+-# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
+-# and <dl1> strings, but we seem to get along fine without them.
+-vi200|visual 200,
+- OTbs, OTpt, am, mir, msgr,
+- OTkn#10, cols#80, it#8, lines#24,
+- acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H,
+- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey,
+- el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea,
+- kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
+- kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
+- kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
+- kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
+- rmacs=\EG, rmkx=\E>, rmso=\E3,
+- rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
+- smkx=\E=, smso=\E4, tbc=\Eg,
+-# The older Visuals didn't come with function keys. This entry uses
+-# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
+-# If your version of vi doesn't support function keys you may want
+-# to use vi200-f.
+-vi200-f|visual 200 no function keys,
+- is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
+- kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
+- kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
+- use=vi200,
+-vi200-rv|visual 200 reverse video,
+- cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
+-
+-# the function keys are programmable but we don't reprogram them to their
+-# default values with <is2> because programming them is very verbose. maybe
+-# an initialization file should be made for the 300 and they could be stuck
+-# in it.
+-# (vi300: added <rmam>/<smam> based on init string -- esr)
+-vi300|visual 300 ansi x3.64,
+- am, bw, mir, xenl,
++# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
++#
++# This adm31 entry uses underline as the standout mode.
++# If the adm31 gives you trouble with standout mode, check the DIP switch in
++# position 6, bank @c11, 25% from back end of the circuit board. Should be
++# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
++# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
++adm31|lsi adm31 with sw6 set for underline mode,
++ OTbs, am, mir,
+ cols#80, lines#24,
+- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+- il1=\E[L, ind=^J,
+- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
+- kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
+- kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
+- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
+- smso=\E[1m, smul=\E[4m,
+-# some of the vi300s have older firmware that has the command
+-# sequence for setting editing extent reversed.
+-vi300-old|visual 300 with old firmware (set edit extent reversed),
+- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s,
+- use=vi300,
+-
+-# Visual 500 prototype entry from University of Wisconsin.
+-# The best place to look for the escape sequences is page A1-1 of the
+-# Visual 500 manual. The initialization sequence given here may be
+-# overkill, but it does leave out some of the initializations which can
+-# be done with the menus in set-up mode.
+-# The :xp: line below is so that emacs can understand the padding requirements
+-# of this slow terminal. :xp: is 10 time the padding factor.
+-# (vi500: removed unknown :xp#4: termcap;
+-# also added empty <acsc> to suppress tic warning -- esr)
+-vi500|visual 500,
+- am, mir, msgr,
+- cols#80, it#8, lines#33,
+- acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
+- csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB,
+- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+- dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>,
+- el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
+- ind=^J,
+- is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
+- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G,
+- rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
+-
+-# The visual 550 is a visual 300 with tektronix graphics,
+-# and with 33 lines. clear screen is modified here to
+-# also clear the graphics.
+-vi550|visual 550 ansi x3.64,
+- lines#33,
+- clear=\030\E[H\E[2J, use=vi300,
+-
+-vi603|visual603|visual 603,
+- hs, mir,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+- csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
+- ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
+- rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
++ bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
++ kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
++ kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0,
++ rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1,
++adm31-old|o31|old adm31,
++ rmul@, smso=\EG4, smul@, use=adm31,
++# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
++adm36|LSI ADM36,
++ OTbs, OTpt,
++ OTkn#4,
++ if=/usr/share/tabset/vt100,
++ is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l,
+ use=vt100,
++# (adm42: removed obsolete ":ma=^K^P:" -- esr)
++adm42|lsi adm42,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I,
++ il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J,
++ kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@,
++ smir=\Eq, smul@, use=adm+sgr,
++# The following termcap for the Lear Siegler ADM-42 leaves the
++# "system line" at the bottom of the screen blank (for those who
++# find it distracting otherwise)
++adm42-ns|lsi adm-42 with no system line,
++ cbt=\EI\EF \011, clear=\E;\EF \011,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
++ dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
++ el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011,
++ smir=\Eq\EF \011, use=adm42,
++# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985.
++# The insert mode of this terminal is commented out because it's broken for our
++# purposes in that it will shift the position of every character on the page,
++# not just the cursor line!
++# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
++adm1178|1178|lsi adm1178,
++ am,
++ cols#80, lines#24, xmc#1,
++ bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET,
++ home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H,
++ kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0,
++ sgr0=\E), smso=\EG4, smul=\EG1,
+
+-#### Wyse (wy)
++#### Prime
+ #
+-# Wyse Technology
+-# 3471 North First Street
+-# San Jose, CA 95134
+-# Vox: (408)-473-1200
+-# Fax: (408) 473-1222
+-# Web: http://www.wyse.com
++# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings
++# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
++# Prime merged with ComputerVision in the late 1980s; you can reach them at:
+ #
+-# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at
+-# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the
+-# obvious address, <http://www.wyse.com>. They keep terminfo entries at
+-# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
++# ComputerVision Services
++# 500 Old Connecticut Path
++# Framingham, Mass.
+ #
+-# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
+-# They now own the Qume and Amdek brands, too. So these are the people to
+-# talk with about all Link, Qume, and Amdek terminals.
++
++# Standout mode is dim reverse-video.
++pt100|pt200|wren|fenix|prime pt100/pt200,
++ am, bw, mir, msgr,
++ cols#80, it#8, lines#24,
++ cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
++ cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
++ ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
++ home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J,
++ rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m,
++ smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q,
++ smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
++pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
++ cols#132,
++ cup=\E[%i%p1%d;%p2%dH, use=pt100,
++pt250|Prime PT250,
++ rmso@, smso@, use=pt100,
++pt250w|Prime PT250 in 132-column mode,
++ rmso@, smso@, use=pt100w,
++
++#### Qume (qvt)
+ #
+-# These entries include a few small fixes.
+-# I canceled the bel capacities in the vb entries.
+-# I made two trivial syntax fixes in the wyse30 entry.
+-# I made some entries relative to adm+sgr.
++# Qume, Inc.
++# 3475-A North 1st Street
++# San Jose CA 95134
++# Vox: (800)-457-4447
++# Fax: (408)-473-1510
++# Net: josed@techsupp.wyse.com (Jose D'Oliveira)
+ #
++# Qume was bought by Wyse, but still (as of early 1995) has its own support
++# group and production division.
+ #
+-# Note: The wyse75, wyse85, and wyse99 have been discontinued.
+-
+-# Although the Wyse 30 can support more than one attribute
+-# it requires magic cookies to do so. Many applications do not
+-# function well with magic cookies. The following terminfo uses
+-# the protect mode to support one attribute (dim) without cookies.
+-# If more than one attribute is needed then the wy30-mc terminfo
+-# should be used.
++# Discontinued Qume models:
+ #
+-wy30|wyse30|Wyse 30,
+- am, bw, hs, mc5i, mir, msgr, xon,
+- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
+- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
+- civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H,
+- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
+- dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
+- fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
+- ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
+- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
+- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
+- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
+- kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
+- mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
+- rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
+- sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
+- smso=\E`7\E), tbc=\E0, tsl=\EF,
++# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
++# built to replace them, and a qvt119+ which was a 101+ with available wide
++# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
++# and an ANSI-compatible qvt203 that replaced it. Qume started producing
++# ANSI-compatible terminals with the qvt323 and qvt61.
+ #
+-# This terminal description uses the non-hidden attribute mode
+-# (with magic cookie).
++# Current Qume models (as of February 1995):
+ #
+-# (wy30-mc: added <smcup> to suppress tic warning --esr)
+-wy30-mc|wyse30-mc|wyse 30 with magic cookies,
+- msgr@,
+- ma@, xmc#1,
+- blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
+- rmcup=\EG0, rmso=\EG0,
+- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
+- smso=\EG4, use=wy30, use=adm+sgr,
+-# The mandatory pause used by <flash> does not work with
+-# older versions of terminfo. If you see this effect then
+-# unset xon and delete the / from the delay.
+-# i.e. change $<100/> to $<100>
+-wy30-vb|wyse30-vb|wyse 30 visible bell,
+- bel@, use=wy30,
++# All current Qume terminals have ANSI-compatible operation modes.
++# Qume is still producing the qvt62, which features emulations for other
++# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
++# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
++# with many emulations including Wyse370, Wyse 325, etc. Their newest
++# model is the qvt520, which is vt420-compatible.
+ #
+-# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
+-# Normal) without magic cookies by using the protect mode.
+-# The following description uses this feature, but when more
+-# than one attribute is put on the screen at once, all attributes
+-# will be changed to be the same as the last attribute given.
+-# The Wyse 50 can support more attributes when used with magic
+-# cookies. The wy50-mc terminal description uses magic cookies
+-# to correctly handle multiple attributes on a screen.
++# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
+ #
+-wy50|wyse50|Wyse 50,
+- am, bw, hs, mc5i, mir, msgr, xon,
+- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
+- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
+- civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H,
++# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
++# setup mode. Shift-s should be a configuration save to NVRAM.
++
++qvt101|qvt108|qume qvt 101 and QVT 108,
++ xmc#1, use=qvt101+,
++
++# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap
++# file had <cvvis=\EM4 \200\200\200>. I've done the safe thing and yanked
++# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E).
++# What seems to be going on here is that this entry was designed so that
++# the normal highlight is bold and standout is dim plus something else
++# (reverse-video maybe? But then, are there two <rev> sequences?)
++#
++# Added kdch1, kil1, kdl1 based on screenshot -TD:
++# http://www.vintagecomputer.net/qume/qvt-108/qume_qvt-108_keyboard.jpg
++qvt101+|qvt101p|qume qvt 101 PLUS product,
++ am, bw, hs, ul,
++ cols#80, lines#24, xmc#0,
++ bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
++ flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
++ ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
++ kel=\ET, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r,
++ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
++ kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@,
++ rmso=\E(, smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
++qvt102|qume qvt 102,
++ cnorm=\E., use=qvt101,
++# (qvt103: added <rmam>/<smam> based on init string -- esr)
++qvt103|qume qvt 103,
++ am, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
++ clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
++ hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
++ rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
++ rmso=\E[m$<2>, rmul=\E[m$<2>,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
++ sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
++qvt103-w|qume qvt103 132 cols,
++ cols#132, lines#24,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
++qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
++ am, hs, mir, msgr,
++ cols#80, lines#24, xmc#0,
++ bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H,
+ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
+- ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
+- home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
+- is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
+- kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
+- kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
+- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey,
++ el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I,
++ hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX,
++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r,
++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
+- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J,
+- pfx=\Ez%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
+- ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
+- sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
+- smso=\E`6\E), tbc=\E0, tsl=\EF,
++ mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8,
++ tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
++qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines,
++ lines#25, use=qvt119+,
++qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
++ cols#132,
++ is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
++qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
++ lines#25, use=qvt119+,
++qvt203|qvt203+|qume qvt 203 Plus,
++ dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
++ ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
++ kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
++ kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
++qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
++ cols#132, lines#24,
++ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
+ #
+-# This terminal description uses the non-hidden attribute mode
+-# (with magic cookie).
++# Since a command is present for enabling 25 data lines,
++# a specific terminfo entry may be generated for the 203.
++# If one is desired for the QVT 119 PLUS then 25 lines must
++# be selected in the status line (setup line 9).
+ #
+-# The mandatory pause used by flash does not work with some
+-# older versions of terminfo. If you see this effect then
+-# unset <xon> and delete the / from the delay.
+-# i.e. change $<100/> to $<100>
+-# (wy50-mc: added <smcup> to suppress tic warning --esr)
+-wy50-mc|wyse50-mc|wyse 50 with magic cookies,
+- msgr@,
+- ma@, xmc#1,
+- blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
+- rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0,
+- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
+- smso=\EGt, use=wy50, use=adm+sgr,
+-wy50-vb|wyse50-vb|wyse 50 visible bell,
+- bel@, use=wy50,
+-wy50-w|wyse50-w|wyse 50 132-column,
+- cols#132, lw#7, nlab#16, wsl#97,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
+- use=wy50,
+-wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
+- bel@, use=wy50-w,
++qvt203-25|QVT 203 PLUS with 25 by 80 column mode,
++ cols#80, lines#25,
++ is2=\E[=40h\E[?3l, use=qvt203,
++qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
++ cols#132, lines#25,
++ rs2=\E[?3h\E[=40h, use=qvt203,
+
++#### Televideo (tvi)
+ #
+-# The Wyse 350 is a Wyse 50 with color.
+-# Unfortunately this means that it has magic cookies.
+-# The color attributes are designed to overlap the reverse, dim and
+-# underline attributes. This is nice for monochrome applications
+-# because you can make underline stuff green (or any other color)
+-# but for true color applications it's not so hot because you cannot
+-# mix color with reverse, dim or underline.
+-# To further complicate things one of the attributes must be
+-# black (either the foreground or the background). In reverse video
+-# the background changes color with black letters. In normal video
+-# the foreground changes colors on a black background.
+-# This terminfo uses some of the more advanced features of curses
+-# to display both color and blink. In the final analysis I am not
+-# sure that the wy350 runs better with this terminfo than it does
+-# with the wy50 terminfo (with user adjusted colors).
++# TeleVideo
++# 550 East Brokaw Road
++# PO Box 49048 95161
++# San Jose CA 95112
++# Vox: (408)-954-8333
++# Fax: (408)-954-0623
+ #
+-# The mandatory pause used by flash does not work with
+-# older versions of terminfo. If you see this effect then
+-# unset xon and delete the / from the delay.
+-# i.e. change $<100/> to $<100>
+ #
+-# Bug: The <op> capability resets attributes.
+-wy350|wyse350|Wyse 350,
+- am, bw, hs, mc5i, mir, xon,
+- colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
+- wsl#45, xmc#1,
+- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
+- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
+- cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
+- dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
+- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
+- il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
+- is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+- ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
+- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
+- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0,
+- pfx=\Ez%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej,
+- rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=,
+- setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c,
+- sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
+- sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
+- smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
+-wy350-vb|wyse350-vb|wyse 350 visible bell,
+- bel@, use=wy350,
+-wy350-w|wyse350-w|wyse 350 132-column,
+- cols#132, lw#7, nlab#16, wsl#97,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
+- use=wy350,
+-wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
+- bel@, use=wy350-w,
++# These require incredible amounts of padding.
+ #
+-# This terminfo description is untested.
+-# The wyse100 emulates an adm31, so the adm31 entry should work.
++# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
++# Televideo terminals are ANSI and PC-ANSI compatible.
++
++tvi803|televideo 803,
++ clear=\E*$<10>, use=tvi950,
++
++# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
++# Switch settings are:
+ #
+-wy100|wyse 100,
+- hs, mir,
+- cols#80, lines#24, xmc#1,
+- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J,
+- invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
+- kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
+- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{,
+- rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr,
++# S1 1 2 3 4
++# D D D D 9600
++# D D D U 50
++# D D U D 75
++# D D U U 110
++# D U D D 135
++# D U D U 150
++# D U U D 300
++# D U U U 600
++# U D D D 1200
++# U D D U 1800
++# U D U D 2400
++# U D U U 3600
++# U U D D 4800
++# U U D U 7200
++# U U U D 9600
++# U U U U 19200
+ #
+-# The Wyse 120/150 has most of the features of the Wyse 60.
+-# This terminal does not need padding up to 9600 baud!
+-# <msgr> should be set but the clear screen fails when in
+-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
+-# then set <msgr>.
+-#
+-wy120|wyse120|wy150|wyse150|Wyse 120/150,
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
+- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
+- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
+- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
+- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>,
+- hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
+- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
+- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
+- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
+- rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
+- rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
+- rs3=\EwG\Ee($<100>,
+- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
+- tbc=\E0, tsl=\EF, use=adm+sgr,
++# S1 5 6 7 8
++# U D X D 7N1 (data bits, parity, stop bits) (X means ignored)
++# U D X U 7N2
++# U U D D 7O1
++# U U D U 7O2
++# U U U D 7E1
++# U U U U 7E2
++# D D X D 8N1
++# D D X U 8N2
++# D U D D 8O1
++# D U U U 8E2
+ #
+-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
+- cols#132, lw#7, nlab#16, wsl#97,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
+- rs2=\E`;$<70>, use=wy120,
++# S1 9 Autowrap
++# U on
++# D off
+ #
+-wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy120,
++# S1 10 CR/LF
++# U do CR/LF when CR received
++# D do CR when CR received
+ #
+-wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
++# S2 1 Mode
++# U block
++# D conversational
+ #
+-wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell,
+- bel@, use=wy120,
++# S2 2 Duplex
++# U half
++# D full
+ #
+-wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell,
+- bel@, use=wy120-w,
++# S2 3 Hertz
++# U 50
++# D 60
+ #
+-# The Wyse 60 is like the Wyse 50 but with more padding.
+-# The reset strings are slow and the pad times very depending
+-# on other parameters such as font loading. I have tried
+-# to follow the following outline:
++# S2 4 Edit mode
++# U local
++# D duplex
+ #
+-# <rs1> -> set personality
+-# <rs2> -> set number of columns
+-# <rs3> -> set number of lines
+-# <is1> -> select the proper font
+-# <is2> -> do the initialization
+-# <is3> -> set up display memory (2 pages)
++# S2 5 Cursor type
++# U underline
++# D block
+ #
+-# The Wyse 60's that have vt100 emulation are slower than the
+-# older Wyse 60's. This change happened mid-1987.
+-# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
++# S2 6 Cursor down key
++# U send ^J
++# D send ^V
+ #
+-# The meta key is only half right. This terminal will return the
+-# high order bit set when you hit CTRL-function_key
++# S2 7 Screen colour
++# U green on black
++# D black on green
+ #
+-# It may be useful to assign two function keys with the
+-# values \E=(\s look at old data in page 1
+-# \E=W, look at bottom of page 1
+-# where \s is a space ( ).
++# S2 8 DSR status (pin 6)
++# U disconnected
++# D connected
+ #
+-# Note:
+-# The Wyse 60 runs faster when the XON/XOFF
+-# handshake is turned off.
++# S2 9 DCD status (pin 8)
++# U disconnected
++# D duplex
+ #
+-# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
+-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
+-wy60|wyse60|Wyse 60,
+- am, bw, hs, km, mc5i, mir, msgr,
+- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
+- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
+- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
+- ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
+- home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
+- ip=$<3>, is1=\EcB0\EcC1,
+- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
++# S2 10 DTR status (pin 20)
++# U disconnected
++# D duplex
++# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
++# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
++tvi910|televideo model 910,
++ OTbs, am, msgr,
++ cols#80, it#8, lines#24, xmc#1,
++ bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
++ home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I,
++ if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r,
+ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
+- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
+- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
+- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er,
+- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>,
+- rs2=\EeG$<150>, rs3=\EwG\Ee($<200>,
+- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
+- tbc=\E0, tsl=\EF, use=adm+sgr,
++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ vpa=\E[%p1%{32}%+%c, use=adm+sgr,
++# From: Alan R. Rogers <rogers%albany@csnet-relay>
++# as subsequently hacked over by someone at SCO
++# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
+ #
+-wy60-w|wyse60-w|wyse 60 132-column,
+- cols#132, lw#7, nlab#16, wsl#97,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
+- rs2=\EeF$<150>\E`;$<150>, use=wy60,
++# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
+ #
+-wy60-25|wyse60-25|wyse 60 80-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<200>, use=wy60,
+-wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
++# S1 1 2 3 4:
++# D D D D 9600 D D D U 50 D D U D 75 D D U U 110
++# D U D D 135 D U D U 150 D U U D 300 D U U U 600
++# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600
++# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200
+ #
+-wy60-42|wyse60-42|wyse 60 80-column 42-lines,
+- lines#42,
+- clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
+- dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
+- ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
+- ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
+-wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
+- cols#132, lw#7, nlab#16, wsl#97,
+- clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
+- dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
+- nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
++# S1 5 6 7 8:
++# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2
++# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2
++# D U D D 8O1 D U U U 8E2
+ #
+-wy60-43|wyse60-43|wyse 60 80-column 43-lines,
+- lh@, lines#43, lw@, nlab@,
+- pln@, rs3=\Ee+$<150>, use=wy60-42,
+-wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
+- lh@, lines#43, lw@, nlab@,
+- pln@, rs3=\Ee+$<150>, use=wy60-42-w,
++# S1 9 Autowrap (U = on, D = off)
++# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received)
++# S2 1 Mode (U = block, D = conversational)
++# S2 2 Duplex (U = half, D = full)
++# S2 3 Hertz (U = 50, D = 60)
++# S2 4 Edit mode (U = local, D = duplex)
++# S2 5 Cursor type (U = underline, D = block)
++# S2 6 Cursor down key (U = send ^J, D = send ^V)
++# S2 7 Screen colour (U = green on black, D = black on green)
++# S2 8 DSR status (pin 6) (U = disconnected, D = connected)
++# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
++# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
+ #
+-wy60-vb|wyse60-vb|Wyse 60 visible bell,
+- bel@, use=wy60,
+-wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
+- bel@, use=wy60-w,
++tvi910+|televideo 910+,
++ dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
++ kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
++ kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
++ ll=\E=7\s, use=tvi910,
+
+-# The Wyse-99GT looks at lot like the Wyse 60 except that it
+-# does not have the 42/43 line mode. In the Wyse-60 the "lines"
+-# setup parameter controls the number of lines on the screen.
+-# For the Wyse 99GT the "lines" setup parameter controls the
+-# number of lines in a page. The screen can display 25 lines max.
+-# The Wyse-99GT also has personalities for the VT220 and
+-# Tektronix 4014. But this has no bearing on the native mode.
++# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and
++# <khome> from BRL entry -- esr)
++tvi912|tvi914|tvi920|old televideo 912/914/920,
++ OTbs, OTpt, am, msgr,
++ cols#80, it#8, lines#24, xmc#1,
++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^,
++ ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt,
++ il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
++ kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
++ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
++ kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El,
++ tbc=\E3,
++# We got some new tvi912c terminals that act really weird on the regular
++# termcap, so one of our gurus worked this up. Seems that cursor
++# addressing is broken.
++tvi912cc|tvi912 at cowell college,
++ cup@, use=tvi912c,
++
++# tvi{912,920}[bc] - TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C
++# From: Benjamin C. W. Sittler
+ #
+-# (msgr) should be set but the clear screen fails when in
+-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
+-# then set msgr, else use msgr@.
++# Someone has put a scanned copy of the manual online at:
++# http://vt100.net/televideo/912b-om/
+ #
+-# u0 -> enter Tektronix mode
+-# u1 -> exit Tektronix mode
+-#
+-wy99gt|wyse99gt|Wyse 99gt,
+- msgr@,
+- clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
+- el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
+- il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
+- ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
+- u0=\E~>\E8, u1=\E[42h, use=wy60,
++# These terminals were produced ca. 1979, and had a 12" monochrome
++# screen, supported 75-9600 baud (no handshaking), monochrome, 7-bit
++# ASCII, and were generally similar to adm3a but with attributes
++# (including some with magic cookies), fancy half-duplex mode, and
++# different bugs.
+ #
+-wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
+- cols#132, lw#7, nlab#16, wsl#97,
+- clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
+- dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
+- use=wy99gt,
++# Some operations reqire truly incredible amounts of padding. The
++# insert_line (<il1>) and delete_line (<dl1>) operations in particular
++# are so slow as to be nearly unusable.
+ #
+-wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
++# There may or may not have been a separate, earlier series of 912/920
++# terminals (without the "B" and "C" suffix); I have never seen one,
++# and the manual only describes the "B" and "C" series. The 912 and 920
++# are quite distinct from the 914 and 924, which were much nicer non-
++# magic-cookie terminals similar to the 950.
+ #
+-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs2=\E`;$<150>, use=wy99gt-w,
++# This is a new description for the following TeleVideo terminals,
++# distinguished chiefly by their keyboards:
+ #
+-wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell,
+- bel@, use=wy99gt,
++# TVI-912B - very odd layout, no function keys (84 keys)
++# TVI-920B - typewriter layout, no function keys (103 keys)
++# TVI-912C - very odd layout, function keys F1-F11 (82 keys)
++# TVI-920C - typewriter layout, function keys F1-F11 (101 keys)
+ #
+-wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
+- bel@, use=wy99gt-w,
+-
+-# Can't set tabs! Other bugs (ANSI mode only):
+-# - can't redefine function keys (anyway, key redefinition in ANSI mode
+-# is too much complex to be described);
+-# - meta key can't be described (the terminal forgets it when reset);
+-# The xon-xoff handshaking can't be disabled while in ansi personality, so
+-# emacs can't work at speed greater than 9600 baud. No padding is needed at
+-# this speed.
+-# dch1 has been commented out because it causes annoying glittering when
+-# vi deletes one character at the beginning of a line with tabs in it.
+-# dch makes sysgen(1M) have a horrible behaviour when deleting
+-# a screen and makes screen(1) behave badly, so it is disabled too. The nice
+-# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
+-# not, so smir and rmir are commented out as well.
+-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+-wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
+- am, km, mc5i, mir, msgr, xenl,
+- cols#80, it#8, lines#25, vt#3,
+- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
+- cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
+- cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+- cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
+- enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
+- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
+- il1=\E[L, ind=\n$<1>, invis=\E[8m,
+- is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i,
+- kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ,
+- kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
+- kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
+- mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
+- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
+- rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
+- rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i,
+- sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+-
+-# This is the american terminal. Here tabs work fine.
+-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+-wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
+- hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
+-
+-# This terminal (firmware version 02) has a lot of bugs:
+-# - can't set tabs;
+-# - other bugs in ANSI modes (see above).
+-# This description disables handshaking when using cup. This is because
+-# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
+-# cannot be used at speeds greater than 9600 baud, because at greater
+-# speeds handshaking is needed even for character sending. If you use
+-# DTR handshaking, you can use even greater speeds.
+-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+-wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- cols#80, it#8, lines#25, wsl#46,
+- acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
+- blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
+- cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
+- ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
+- flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE,
+- ind=^J, invis=\EG3,
+- is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024,
+- ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
+- kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
+- kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r,
+- kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r,
+- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#,
+- nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
+- rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
+- rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024,
+- sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;,
+- sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
+- smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
+-
+-# This is the american terminal. Here tabs work.
+-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+-wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
+- hts=\E1, tbc=\E0, use=wy99f,
+-
++# To choose a setting for the TERM variable, start with the model:
+ #
+-# The Wyse 160 is combination of the WY-60 and the WY-99gt.
+-# The reset strings are slow and the pad times very depending
+-# on other parameters such as font loading. I have tried
+-# to follow the following outline:
++# Model || base name
++# ----------||-----------
++# TVI-912B || tvi912b
++# TVI-912C || tvi912c
++# TVI-920B || tvi920b
++# TVI-920C || tvi920c
+ #
+-# <rs1> -> set personality
+-# <rs2> -> set number of columns
+-# <rs3> -> set number of lines
+-# <is1> -> select the proper font
+-# <is2> -> do the initialization
+-# <is3> -> set up display memory (2 pages)
++# Then add a suffix from the following table describing installed options
++# and how you'd like to use the terminal:
+ #
+-# The display memory may be used for either text or graphics.
+-# When "Display Memory = Shared" the terminal will have more pages
+-# but garbage may be left on the screen when you switch from
+-# graphics to text. If "Display Memory = Unshared" then the
+-# text area will be only one page long.
++# Use Video | Second | Visual | Magic | Page || feature
++# Attributes | Page | Bell | Cookies | Print || suffix
++# ------------|--------|--------|---------|-------||---------
++# No | No | N/A | N/A | No || -unk
++# No | No | N/A | N/A | Yes || -p
++# No | Yes | No | N/A | No || -2p-unk
++# No | Yes | No | N/A | Yes || -2p-p
++# No | Yes | Yes | N/A | No || -vb-unk
++# No | Yes | Yes | N/A | Yes || -vb-p
++# Yes | No | N/A | No | N/A ||
++# Yes | No | N/A | Yes | N/A || -mc
++# Yes | Yes | No | No | N/A || -2p
++# Yes | Yes | No | Yes | N/A || -2p-mc
++# Yes | Yes | Yes | No | N/A || -vb
++# Yes | Yes | Yes | Yes | N/A || -vb-mc
+ #
+-# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
+-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
+-wy160|wyse160|Wyse 160,
+- am, bw, hs, km, mc5i, mir, msgr,
+- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
+- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
+- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
+- dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
+- el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I,
+- hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
+- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+- is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
+- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
+- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>,
+- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
+- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
+- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
+- rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
+- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
+- tbc=\E0, tsl=\EF, use=adm+sgr,
++# So e.g. a model 920 C with second page memory option, visual bell
++# and no magic cookies would be tvi920c-vb; a model 912 B without the
++# second page memory option and using magic cookies would be
++# tvi912b-mc
+ #
+-wy160-w|wyse160-w|wyse 160 132-column,
+- cols#132, lw#7, nlab#16, wsl#90,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
+- rs2=\EeF$<150>\E`;$<150>, use=wy160,
++# PADDING
+ #
+-wy160-25|wyse160-25|wyse 160 80-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<200>, use=wy160,
+-wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
++# At 9600 baud, the terminal is prone to overflow its input buffer
++# during complex operations (insert/delete
++# character/line/screen/page), and it does not signal this over the
++# RS232 cable. The typical symptom of an overrun is that the terminal
++# starts beeping, and output becomes garbled.
+ #
+-wy160-42|wyse160-42|wyse 160 80-column 42-lines,
+- lines#42,
+- clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
+- ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
+- rs3=\Ee*$<150>, use=wy160,
+-wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
+- cols#132, lw#7, nlab#16, wsl#90,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
+- rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
++# The padding delays in this terminfo were derived using tack(1)
++# running on a Linux box connected to a TVI-920C with a later-model
++# (A49C1-style) ROM running at 9600 baud, so your mileage may
++# vary. The numbers below seem to give the terminal enough time so
++# that it doesn't overflow its input buffer and start losing
++# characters.
+ #
+-wy160-43|wyse160-43|wyse 160 80-column 43-lines,
+- lh@, lines#43, lw@, nlab@,
+- pln@, rs3=\Ee+$<150>, use=wy160-42,
+-wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
+- lh@, lines#43, lw@, nlab@,
+- pln@, rs3=\Ee+$<150>, use=wy160-42-w,
++# KEYS
+ #
+-wy160-vb|wyse160-vb|Wyse 160 visible bell,
+- bel@, use=wy160,
+-wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
+- bel@, use=wy160-w,
++# If you want to use the FUNCT key on a tvi912[bc], use the
++# corresponding tvi920[bc] terminfo with FUNCT + ... equivalents from
++# the following table (these also work on the 920 series):
+ #
+-# The Wyse 75 is a vt100 lookalike without advanced video.
++# Unshifted Function Keys:
+ #
+-# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
+-# Underline) without magic cookies. The following description
+-# uses this capability, but when more than one attribute is
+-# put on the screen at once, all attributes will be changed
+-# to be the same as the last attribute given.
+-# The Wyse 75 can support more attributes when used with magic
+-# cookies. The wy75-mc terminal description uses magic cookies
+-# to correctly handle multiple attributes on a screen.
++# Key | capname|| Equivalent
++# -----|--------||------------
++# F1 | <kf1> || FUNCT + @
++# F2 | <kf2> || FUNCT + A
++# F3 | <kf3> || FUNCT + B
++# F4 | <kf4> || FUNCT + C
++# F5 | <kf5> || FUNCT + D
++# F6 | <kf6> || FUNCT + E
++# F7 | <kf7> || FUNCT + F
++# F8 | <kf8> || FUNCT + G
++# F9 | <kf9> || FUNCT + H
++# F10 | <kf10> || FUNCT + I
++# F11 | <kf11> || FUNCT + J
+ #
+-wy75|wyse75|wyse 75,
+- am, hs, mc5i, mir, msgr, xenl, xon,
+- cols#80, lines#24, ma#1, pb#1201, wsl#78,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>,
+- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
+- dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
+- dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
+- ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
+- enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
+- ind=\n$<2>, ip=$<1>,
+- is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
+- is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K,
+- kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
+- kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+- khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
+- kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
+- mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
+- rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
+- sc=\E7,
+- sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
+- tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad,
++# Shifted Function Keys:
+ #
+-# This terminal description uses the non-hidden attribute mode
+-# (with magic cookie).
++# SHIFT + Key | capname|| Equivalent
++# -------------|--------||------------
++# SHIFT + F1 | <kf12> || FUNCT + `
++# SHIFT + F2 | <kf13> || FUNCT + a
++# SHIFT + F3 | <kf14> || FUNCT + b
++# SHIFT + F4 | <kf15> || FUNCT + c
++# SHIFT + F5 | <kf16> || FUNCT + d
++# SHIFT + F6 | <kf17> || FUNCT + e
++# SHIFT + F7 | <kf18> || FUNCT + f
++# SHIFT + F8 | <kf19> || FUNCT + g
++# SHIFT + F9 | <kf20> || FUNCT + h
++# SHIFT + F10 | <kf21> || FUNCT + i
++# SHIFT + F11 | <kf22> || FUNCT + j
+ #
+-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
+- msgr@,
+- ma@, xmc#1,
+- blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
+- rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
+- sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;,
+- sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
+- use=wy75,
+-wy75-vb|wyse75-vb|wyse 75 with visible bell,
+- pb@,
+- bel@, use=wy75,
+-wy75-w|wyse75-w|wyse 75 in 132 column mode,
+- cols#132, wsl#130,
+- rs2=\E[35h\E[?3h$<80>, use=wy75,
+-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
+- pb@,
+- bel@, use=wy75-w,
++# PORTS AND SWITCH SETTINGS
+ #
+-# Wyse 85 emulating a vt220 7 bit mode.
+-# 24 line screen with status line.
++# Here are the switch settings for the TVI-912B/TVI-920B and
++# TVI-912C/TVI-920C:
+ #
+-# The vt220 mode permits more function keys but it wipes out
+-# the escape key. I strongly recommend that <f11> be set to
+-# escape (esc).
+-# The terminal may have to be set for 8 data bits and 2 stop
+-# bits for the arrow keys to work.
+-# The Wyse 85 runs faster with XON/XOFF enabled. Also the
+-# <dch> and <ich> work best when XON/XOFF is set. <ich> and
+-# <dch> leave trash on the screen when used without XON/XOFF.
++# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
++# 2: 9600 3: 4800 4: 2400 5: 1200
++# 6: 600 7: 300 8: 150 9: 75
++# 10: 110
+ #
+-wy85|wyse85|wyse 85,
+- am, hs, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
+- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
+- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
+- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
+- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
+- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
+- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
+- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
+- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
+- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
+- kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
+- khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
+- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
+- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
+- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
+- rs3=\E[?5l, sc=\E7,
+- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad,
++# S2 UART/Terminal options:
++# Up Down
++# 1: Not used Not allowed
++# 2: Alternate character set Standard character set
++# 3: Full duplex Half duplex
++# 4: 50 Hz refresh 60 Hz refresh
++# 5: No parity Send parity
++# 6: 2 stop bits 1 stop bit
++# 7: 8 data bits 7 data bits
++# 8: Not used Not allowed on Rev E or lower
++# 9: Even parity Odd parity
++# 10: Steady cursor Blinking cursor
++# (On Rev E or lower, use W25 instead of switch 10.)
+ #
+-# Wyse 85 with visual bell.
+-wy85-vb|wyse85-vb|wyse 85 with visible bell,
+- bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85,
++# S5 UART/Terminal options:
++# Open Closed
++# 1: P3-6 Not connected DSR received on P3-6
++# 2: P3-8 Not connected DCD received on P3-8
+ #
+-# Wyse 85 in 132-column mode.
+-wy85-w|wyse85-w|wyse 85 in 132-column mode,
+- cols#132, wsl#132,
+- rs2=\E[35h\E[?3h$<70>, use=wy85,
++# 3 Open, 4 Open: P3-20 Not connected
++# 3 Open, 4 Closed: DTR on when terminal is on
++# 3 Closed, 4 Open: DTR is connected to RTS
++# 3 Closed, 4 Closed: Not allowed
+ #
+-# Wyse 85 in 132-column mode with visual bell.
+-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
+- bel@, use=wy85-w,
+-
+-# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
+-# This copes with an apparent firmware bug in the wy85. He writes:
+-# "What I did was change leave the terminal cursor keys set to Normal
+-# (instead of application), and change \E[ to \233 for all the keys in
+-# terminfo. At one point, I found some reference indicating that this
+-# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
+-# me), but I can't find that and the server under my bookmark to "Wyse
+-# Technical" isn't responding. So there's the question of wether the wy85
+-# terminfo should reflect the manufactuer's intended behaviour of the terminal
+-# or the actual."
+-wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
+- am, hs, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
+- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
+- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
+- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
+- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
+- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
+- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
+- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
+- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
+- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
+- kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
+- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
+- kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
+- kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
+- kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
+- kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
+- khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
+- kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
+- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
+- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
+- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
+- rs3=\E[?5l, sc=\E7,
+- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[40h\E7\E[25;%i%p1%dH,
++# 5 Closed: HDX printer (hardware control) Rev. K with extension port off,
++# all data transmitted out of the modem port (P3) will also be
++# transmitted out of the printer port (P4).
+ #
+-# Wyse 185 emulating a vt320 7 bit mode.
++# 6 Open, 7 Open: Not allowed
++# 6 Open, 7 Closed: 20ma current loop input
++# 6 Closed, 7 Open: RS232 input
++# 6 Closed, 7 Closed: Not allowed
+ #
+-# This terminal always displays 25 lines. These lines may be used
+-# as 24 data lines and a terminal status line (top or bottom) or
+-# 25 data lines. The 48 and 50 line modes change the page size
+-# and not the number of lines on the screen.
++# Jumper options:
++# If the jumper is installed, the effect will occur (the next time the terminal
++# is switched on).
+ #
+-# The Compose Character key can be used as a meta key if changed
+-# by set-up.
++# S4/W31: Enables automatic LF upon receipt of CR from
++# remote or keyboard.
++# S4/W32: Enables transmission of EOT at the end of Send. If not
++# installed, a carriage return is sent.
++# S4/W33: Disables automatic carriage return in column 80.
++# S4/W34: Selects Page Print Mode as initial condition. If not
++# installed, Extension Mode is selected.
+ #
+-wy185|wyse185|wyse 185,
+- am, hs, km, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
+- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
+- dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
+- el=\E[K, el1=\E[1K, enacs=\E)0,
+- flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8,
+- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
+- ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
+- ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
+- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
+- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
+- kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
+- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
+- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
+- ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
+- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
+- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
+- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
+- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
+- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
+- use=vt220+keypad,
++# NON-STANDARD CAPABILITIES
+ #
+-# Wyse 185 with 24 data lines and top status (terminal status)
+-wy185-24|wyse185-24|wyse 185 with 24 data lines,
+- hs@,
+- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
+- use=wy185,
++# Sending <u9> or <u7> returns a cursor position report in the format
++# YX\r, where Y and X are as in <cup>. This format is described in
++# <u8> and <u6>, but it's not clear how one should write an
++# appropriate scanf string, since we need to subtract %' ' from the
++# character after reading it. The <u9> capability is used by tack(1)
++# to synchronize during padding tests, and seems to work for that
++# purpose.
+ #
+-# Wyse 185 with visual bell.
+-wy185-vb|wyse185-vb|wyse 185+flash,
+- bel@, use=wy185,
++# This description also includes the obsolete termcap capabilities
++# has_hardware_tabs (<OTpt>) and backspaces_with_bs (<OTbs>).
+ #
+-# Wyse 185 in 132-column mode.
+-wy185-w|wyse185-w|wyse 185 in 132-column mode,
+- cols#132, wsl#132,
+- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
+- ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
++# FEATURES NOT YET DESCRIBED IN THIS TERMINFO
+ #
+-# Wyse 185 in 132-column mode with visual bell.
+-wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
+- bel@, use=wy185-w,
+-
+-# wy325 terminfo entries
+-# Done by Joe H. Davis 3-9-92
+-
+-# lines 25 columns 80
++# The FUNCT modifier actually works with every normal key by sending
++# ^AX\r, where X is the sequence normally sent by that key. This is a
++# sort of meta key not currently describable in terminfo.
+ #
+-wy325|wyse325|Wyse epc,
+- am, bw, hs, mc5i, mir,
+- cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
+- acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
+- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
+- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
+- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
+- il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
+- is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
+- is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
+- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
+- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq,
+- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
+- mc0=\EP, mc4=^T, mc5=\Ed#,
+- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
+- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
+- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
+- rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
+- rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
+- rs3=\EwG\Ee($<100>,
+- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
+- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
+- tsl=\EF, use=adm+sgr,
+-
++# There are quite a few other keys (especially on the 920 models,) but
++# they are for the most part only useful in block mode.
+ #
+-# lines 24 columns 80 vb
++# These terminals have lots of forms manipulation features, mainly
++# useful in block mode, including "clear X to nulls" (vs. "clear X to
++# spaces"; nulls are sentinels for "send X" operations); "send X"
++# operations for uploading all or part of the screen; and block-mode
++# editing keys (they don't send escape sequences, but manipulate video
++# memory directly). Block mode is used for local editing, and protect
++# mode (in conjunction with the "write protect" attribute,
++# a.k.a. half-intensity outside of protect mode) is used to control
++# which parts of the screen are edited/sent/printed (by <mc0>).
+ #
+-wy325-vb|wyse325-vb|wyse-325 with visual bell,
+- bel@, use=wy325,
+-
++# There are at least two major families of ROM, "early" and
++# A49B1/A49C1; the major difference seems to be that the latter ROMs
++# support a few extra escape sequences for manipulating the off-screen
++# memory page, and for sending whole pages back to the host (mainly
++# useful in block mode.) The descriptions in this file don't use any
++# of those sequences: set cursor position including page (\E-PYX,
++# where P is \s for page 0 and ! for page 1 [actually only the LSB of
++# P is taken into account, so e.g. 0 and 1 work too,] and Y and X are
++# as in <cup>); read cursor position (\E/), which is analogous to <u9>
++# and returns PYX\r, where P is \s for page 0 or ! for page 1, and YX
++# are as in <cup>, and some "send page" features mainly useful for
++# forms manipulation.
+ #
+-# lines 24 columns 132
++# The keyboard enable (\E") and disable (\E#) sequences are unused,
++# except that a terminal reset (<is2>) enables the keyboard.
+ #
+-wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
+- cols#132, lw#7, nlab#16, wsl#97,
+- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
+- rs2=\E`;$<70>, use=wy325,
++# Auto-flip mode (\Ev) is likely faster than the scrolling mode (\Ew)
++# enabled in <is2>, but auto-flip is very jarring so we don't use it.
+ #
+-# lines 25 columns 80
++# BUGS
+ #
+-wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy325,
++# At least up to the A49B1 and A49C1 ROMs, there are no \Eb and \Ed
++# sequences (I infer that in some TeleVideo terminal they may invert
++# and uninvert the display) so the <flash> sequence given here is a
++# cheesy page-flip instead.
+ #
+-# lines 25 columns 132
++# The back_tab (<cbt>) sequence (\EI) doesn't work according to
++# tack(1), so it is not included in the descriptions below.
+ #
+-wy325-25w|wyse325-25w|wy325 132 columns,
+- lh@, lines#25, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
++# It's not clear whether auto_left_margin (<bw>) flag should be set
++# for these terminals; tack says yes, so it is set here, but this
++# differs from other descriptions I've seen.
+ #
+-# lines 25 columns 132 vb
++# Extension print mode (<mc5>) echoes all characters to the printer
++# port [in addition to displaying them] except for the page print mode
++# sequence (<mc4>); this is a slight violation of the terminfo
++# definition for <mc5> but I don't expect it to cause problems. We
++# reset to page print mode in <rs1> since it may have been enabled
++# accidentally.
+ #
+-wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
+- bel@, use=wy325-w,
++# The descriptions with plus signs (+) are building blocks.
+
+-#
+-# lines 42 columns 80
+-#
+-wy325-42|wyse325-42|wyse-325 42 lines,
+- lh@, lines#42, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy325,
+-#
+-# lines 42 columns 132
+-#
+-wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
+- lh@, lines#42, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+-#
+-# lines 42 columns 132 vb
+-#
+-wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
+- bel@, use=wy325-w,
+-#
+-# lines 43 columns 80
+-#
+-wy325-43|wyse325-43|wyse-325 43 lines,
+- lh@, lines#43, lw@, nlab@,
+- pln@, use=wy325,
+-#
+-# lines 43 columns 132
+-#
+-wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
+- lh@, lines#43, lw@, nlab@,
+- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+-#
+-# lines 43 columns 132 vb
+-#
+-wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
+- bel@, use=wy325-w,
++tvi912b-unk|tvi912c-unk|TeleVideo TVI-912B or TVI-912C (no attributes),
++ OTbs, OTpt, am, bw,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=\032$<50>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%' '%+%c%p2%' '%+%c, cuu1=^K, dch1=\EW$<30>,
++ dl1=\ER$<1*>$<100>, ed=\Ey$<2*>$<10>, el=\ET$<15>,
++ home=^^, ht=^I, hts=\E1, ich1=\EQ$<30>,
++ if=/usr/share/tabset/stdcrt, il1=\EE$<1*>$<100>,
++ ind=\n$<10>, is2=\Ew\EA\E'\E"\E(, kcub1=^H, kcud1=^J,
++ kcuf1=^L, kcuu1=^K, kdch1=\177, kent=^M, khome=^^, mc4=\EA,
++ mc5=\E@, rs1=\Ek\010\Em\010\Eq\032, tbc=\E3, u6=%c%c\r,
++ u7=\E?, u8=%c%c\r, u9=\E?,
+
+-# Wyse 370 -- 24 line screen with status line.
+-#
+-# The terminal may have to be set for 8 data bits and 2 stop
+-# bits for the arrow keys to work.
+-#
+-# If you change keyboards the terminal will send different
+-# escape sequences.
+-# The following definition is for the basic terminal without
+-# function keys.
+-#
+-# <u0> -> enter Tektronix 4010/4014 mode
+-# <u1> -> exit Tektronix 4010/4014 mode
+-# <u2> -> enter ASCII mode (from any ANSI mode)
+-# <u3> -> exit ASCII mode (goto native ANSI mode)
+-# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
+-# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
+-#
+-# Bug: The <op> capability resets attributes.
+-wy370-nk|wyse 370 without function keys,
+- am, ccc, hs, mc5i, mir, msgr, xenl, xon,
+- colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
+- dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
+- dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
+- el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
+- flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8,
+- home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
+- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
+- ind=\n$<2>,
+- initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw,
+- invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
+- is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
+- is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
+- mc5=\E[5i,
+- oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w,
+- op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
+- rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
+- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
+- rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
+- rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
+- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
+- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
+- u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
+- u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
+-#
+-# Function key set for the ASCII (wy-50 compatible) keyboard
+-# This is the default 370.
+-#
+-wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
+- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
+- kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
+- knp=\E[U, kpp=\E[V, use=wy370-nk,
+-#
+-# Function key set for the VT-320 (and wy85) compatible keyboard
++# This isn't included in the basic capabilities because it is
++# typically unusable in combination with the full range of video
++# attributes, since the magic cookie attributes turn into ASCII
++# control characters, and the half-intensity ("protected") attribute
++# converts all affected characters to spaces.
++
++tvi912b+printer|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C page print support,
++ mc0=\EP,
++
++# This uses half-intensity mode (<dim>) for standout (<smso>), and
++# exposes no other attributes (half-intensity is the only attribute
++# that does not generate a magic cookie.)
++
++tvi912b+dim|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C half-intensity attribute support,
++ msgr,
++ dim=\E), rmso=\E(, sgr=\E%?%p1%p5%|%t)%e(%;, sgr0=\E(,
++ smso=\E),
++
++# Full magic-cookie attribute support, with half-intensity reverse
++# video for standout. Note that we add a space in the <dim> sequence
++# to give a consistent magic-cookie count. Also note that <sgr> uses
++# backspacing (in the TVI-supported order) to apply all requested
++# attributes with only a single magic cookie.
++
++tvi912b+mc|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C full magic-cookie attribute support,
++ xmc#1,
++ blink=\E\^, dim=\E)\s, invis=\E_, rev=\Ej, rmso=\E(\Ek,
++ rmul=\Em,
++ sgr=\E%?%p1%p5%|%t)%e(%; \010\E%?%p1%p3%|%tj%ek%;\010\E%?%p2%tl%em%;\010\E%?%p7%t_%e%?%p4%t\^%eq%;%;,
++ sgr0=\E(\Ek\010\Em\010\Eq, smso=\E)\Ej, smul=\El,
++
++# This uses the second page memory option to save & restore screen
++# contents. If your terminal is missing the option, this description
++# should still work, but that has not been tested.
++
++tvi912b+2p|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option support,
++ flash=\EK$<100>\EK, rmcup=\032$<50>\EK\E=7\s,
++ smcup=\EK\032$<50>\E(\Ek\010\Em\010\Eq\032$<50>,
++
++# This simulates flashing by briefly toggling to the other page
++# (kludge!)
++
++tvi912b+vb|TeleVideo TVI-912B/TVI-920B and TVI-912C/TVI-920C second page memory option "visible bell" support,
++ bel=\EK$<100>\EK, use=tvi912b+2p,
++
++# Function keys (<kf12> .. <kf22> are shifted <kf1> .. <kf11>)
++
++tvi920b+fn|TeleVideo TVI-920B and TVI-920C function key support,
++ kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^A`\r, kf13=^Aa\r,
++ kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r, kf17=^Ae\r, kf18=^Af\r,
++ kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r, kf21=^Ai\r, kf22=^Aj\r,
++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r,
++
++# Combinations of the basic building blocks
++
++tvi912b-2p-unk|tvi912c-2p-unk|tvi912b-unk-2p|tvi912c-unk-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes),
++ use=tvi912b+2p, use=tvi912b-unk,
++
++tvi912b-vb-unk|tvi912c-vb-unk|tvi912b-unk-vb|tvi912c-unk-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes),
++ use=tvi912b+vb, use=tvi912b-unk,
++
++tvi912b-p|tvi912c-p|TeleVideo TVI-912B or TVI-912C (no attributes; page print),
++ use=tvi912b+printer, use=tvi912b-unk,
++
++tvi912b-2p-p|tvi912c-2p-p|tvi912b-p-2p|tvi912c-p-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; no attributes; page print),
++ use=tvi912b+2p, use=tvi912b+printer, use=tvi912b-unk,
++
++tvi912b-vb-p|tvi912c-vb-p|tvi912b-p-vb|tvi912c-p-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; no attributes; page print),
++ use=tvi912b+vb, use=tvi912b+printer, use=tvi912b-unk,
++
++tvi912b-2p|tvi912c-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; half-intensity attribute),
++ use=tvi912b+2p, use=tvi912b+dim, use=tvi912b-unk,
++
++tvi912b-2p-mc|tvi912c-2p-mc|tvi912b-mc-2p|tvi912c-mc-2p|TeleVideo TVI-912B or TVI-912C (second page memory option; magic cookies),
++ use=tvi912b+2p, use=tvi912b+mc, use=tvi912b-unk,
++
++tvi912b-vb|tvi912c-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; half-intensity attribute),
++ use=tvi912b+vb, use=tvi912b+dim, use=tvi912b-unk,
++
++tvi912b-vb-mc|tvi912c-vb-mc|tvi912b-mc-vb|tvi912c-mc-vb|TeleVideo TVI-912B or TVI-912C (second page memory option "visible bell"; magic cookies),
++ use=tvi912b+vb, use=tvi912b+mc, use=tvi912b-unk,
++
++tvi912b|tvi912c|TeleVideo TVI-912B or TVI-912C (half-intensity attribute),
++ use=tvi912b+dim, use=tvi912b-unk,
++
++tvi912b-mc|tvi912c-mc|TeleVideo TVI-912B or TVI-912C (magic cookies),
++ use=tvi912b+mc, use=tvi912b-unk,
++
++tvi920b-unk|tvi920c-unk|TeleVideo TVI-920B or TVI-920C (no attributes),
++ use=tvi920b+fn, use=tvi912b-unk,
++
++tvi920b-2p-unk|tvi920c-2p-unk|tvi920b-unk-2p|tvi920c-unk-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes),
++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b-unk,
++
++tvi920b-vb-unk|tvi920c-vb-unk|tvi920b-unk-vb|tvi920c-unk-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes),
++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b-unk,
++
++tvi920b-p|tvi920c-p|TeleVideo TVI-920B or TVI-920C (no attributes; page print),
++ use=tvi920b+fn, use=tvi912b+printer, use=tvi912b-unk,
++
++tvi920b-2p-p|tvi920c-2p-p|tvi920b-p-2p|tvi920c-p-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; no attributes; page print),
++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+printer,
++ use=tvi912b-unk,
++
++tvi920b-vb-p|tvi920c-vb-p|tvi920b-p-vb|tvi920c-p-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; no attributes; page print),
++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+printer,
++ use=tvi912b-unk,
++
++tvi920b-2p|tvi920c-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; half-intensity attribute),
++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+dim,
++ use=tvi912b-unk,
++
++tvi920b-2p-mc|tvi920c-2p-mc|tvi920b-mc-2p|tvi920c-mc-2p|TeleVideo TVI-920B or TVI-920C (second page memory option; magic cookies),
++ use=tvi920b+fn, use=tvi912b+2p, use=tvi912b+mc,
++ use=tvi912b-unk,
++
++tvi920b-vb|tvi920c-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; half-intensity attribute),
++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+dim,
++ use=tvi912b-unk,
++
++tvi920b-vb-mc|tvi920c-vb-mc|tvi920b-mc-vb|tvi920c-mc-vb|TeleVideo TVI-920B or TVI-920C (second page memory option "visible bell"; magic cookies),
++ use=tvi920b+fn, use=tvi912b+vb, use=tvi912b+mc,
++ use=tvi912b-unk,
++
++tvi920b|tvi920c|TeleVideo TVI-920B or TVI-920C (half-intensity attribute),
++ use=tvi920b+fn, use=tvi912b+dim, use=tvi912b-unk,
++
++tvi920b-mc|tvi920c-mc|TeleVideo TVI-920B or TVI-920C (magic cookies),
++ use=tvi920b+fn, use=tvi912b+mc, use=tvi912b-unk,
++
++# Televideo 921 and variants
++# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
++# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
++# also added empty <acsc> to suppress tic warning -- esr)
++tvi921|televideo model 921 with sysline same as page & real vi function,
++ OTbs, OTpt, am, hs, xenl, xhp,
++ cols#80, lines#24, xmc#0,
++ acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
++ cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
++ el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
++ if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
++ is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
++ kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
++ ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
++ rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
++# without the beeper
++# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
++# also added empty <acsc> to suppress tic warning -- esr)
++tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
++ am, hs, xenl, xhp,
++ cols#80, lines#24, xmc#0,
++ acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
++ cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
++ el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
++ ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
++ invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
++ kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
++ kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
++ nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
++# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
++tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
++ dl1=\ER$<2*/>, il1=\EE$<2*/>,
++ is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
++ kil1=\EE$<2*/>, use=tvi92B,
++
++# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings
++# in from a BSD termcap file because it looks like they do something the
++# old ones skip -- esr)
++tvi924|televideo tvi924,
++ am, bw, hs, in, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, wsl#80, xmc#0,
++ bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
++ cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
++ cub1=^H, cud1=^V, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
++ dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
++ flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
++ ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
++ invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
++ kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
++ kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
++ kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
++ kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
++ kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
++ kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
++ lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
++ pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
++ use=adm+sgr,
++
++# TVI925 DIP switches. In each of these, D = Down and U = Up,
+ #
+-wy370-105k|Wyse 370 with 105 key keyboard,
+- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
+- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
+- use=wy370-nk, use=vt220+keypad,
++# Here are the settings for the external (baud) switches (S1):
+ #
+-# Function key set for the PC compatible keyboard
++# Position Baud
++# 7 8 9 10 [Printer]
++# 1 2 3 4 [Main RS232]
++# -----------------------------------------------------
++# D D D D 9600
++# D D D U 50
++# D D U D 75
++# D D U U 110
++# D U D D 135
++# D U D U 150
++# D U U D 300
++# D U U U 600
++# U D D D 1200
++# U D D U 1800
++# U D U D 2400
++# U D U U 3600
++# U U D D 4800
++# U U D U 7200
++# U U U D 9600
++# U U U U 19200
+ #
+-wy370-EPC|Wyse 370 with 102 key keyboard,
+- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
+- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+- kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
+ #
+-# Wyse 370 with visual bell.
+-wy370-vb|Wyse 370 with visible bell,
+- bel@, use=wy370,
++# Settings for word length and stop-bits (S1)
+ #
+-# Wyse 370 in 132-column mode.
+-wy370-w|Wyse 370 in 132-column mode,
+- cols#132, wsl#132,
+- rs2=\E[35h\E[?3h$<70>, use=wy370,
++# Position Description
++# 5 6
++# ---------------------------
++# U - 7-bit word
++# D - 8-bit word
++# - U 2 stop bits
++# - D 1 stop bit
+ #
+-# Wyse 370 in 132-column mode with visual bell.
+-wy370-wvb|Wyse 370 with visible bell 132-columns,
+- flash=\E[30h\E\,\E[30l$<300>, use=wy370-w,
+-wy370-rv|Wyse 370 reverse video,
+- rs3=\E[32h\E[?5h, use=wy370,
+ #
+-# Wyse 99gt Tektronix 4010/4014 emulator,
++# S2 (external) settings
+ #
+-wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator,
+- am, os,
+- cols#74, lines#35,
+- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
+- cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
+- cuu1=^K, ff=^L,
+- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
+- home=^]7`x @\037,
+- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
+- is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
+-#
+-# Wyse 160 Tektronix 4010/4014 emulator,
++# Position Up Dn Description
++# --------------------------------------------
++# 1 X Local edit
++# X Duplex edit (transmit editing keys)
++# --------------------------------------------
++# 2 X 912/920 emulation
++# X 925
++# --------------------------------------------
++# 3 X
++# 4 X No parity
++# 5 X
++# --------------------------------------------
++# 3 X
++# 4 X Odd parity
++# 5 X
++# --------------------------------------------
++# 3 X
++# 4 X Even parity
++# 5 X
++# --------------------------------------------
++# 3 X
++# 4 X Mark parity
++# 5 X
++# --------------------------------------------
++# 3 X
++# 4 X Space parity
++# 5 X
++# --------------------------------------------
++# 6 X White on black display
++# X Black on white display
++# --------------------------------------------
++# 7 X Half Duplex
++# 8 X
++# --------------------------------------------
++# 7 X Full Duplex
++# 8 X
++# --------------------------------------------
++# 7 X Block mode
++# 8 X
++# --------------------------------------------
++# 9 X 50 Hz
++# X 60 Hz
++# --------------------------------------------
++# 10 X CR/LF (Auto LF)
++# X CR only
+ #
+-wy160-tek|Wyse 160 Tektronix 4010/4014 emulator,
+- cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
+- home=^]8`g @\037, use=wy99gt-tek,
++# S3 (internal switch) settings:
+ #
+-# Wyse 370 Tektronix 4010/4014 emulator,
++# Position Up Dn Description
++# --------------------------------------------
++# 1 X Keyclick off
++# X Keyclick on
++# --------------------------------------------
++# 2 X English
++# 3 X
++# --------------------------------------------
++# 2 X German
++# 3 X
++# --------------------------------------------
++# 2 X French
++# 3 X
++# --------------------------------------------
++# 2 X Spanish
++# 3 X
++# --------------------------------------------
++# 4 X Blinking block cursor
++# 5 X
++# --------------------------------------------
++# 4 X Blinking underline cursor
++# 5 X
++# --------------------------------------------
++# 4 X Steady block cursor
++# 5 X
++# --------------------------------------------
++# 4 X Steady underline cursor
++# 5 X
++# --------------------------------------------
++# 6 X Screen blanking timer (ON)
++# X Screen blanking timer (OFF)
++# --------------------------------------------
++# 7 X Page attributes
++# X Line attributes
++# --------------------------------------------
++# 8 X DCD disconnected
++# X DCD connected
++# --------------------------------------------
++# 9 X DSR disconnected
++# X DSR connected
++# --------------------------------------------
++# 10 X DTR Disconnected
++# X DTR connected
++# --------------------------------------------
+ #
+-wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
+- am, os,
+- cols#80, lines#36,
+- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
+- cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037,
+- cuu1=^K, ff=^L,
+- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
+- home=^]8g @\037,
+- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
+- is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K,
+- nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0,
+-
+-# Vendor-supplied Wyse entries end here.
++# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr)
++tvi925|televideo 925,
++ OTbs, am, bw, hs, ul,
++ cols#80, lines#24, xmc#1,
++ bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V,
++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
++ flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1,
++ ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z,
++ kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
++ ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
++ kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
++ kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3,
++ tsl=\Eh\Ef, use=adm+sgr,
++# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
++# to avoid "magic cookie" standout glitch:
++tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
++ xmc@,
++ kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925,
+
++# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
++# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
++# for additional capabilities,
++# The following tvi descriptions from B:pjphar and virus!mike
++# is for all 950s. It sets the following attributes:
++# full duplex (\EDF) write protect off (\E()
++# conversation mode (\EC) graphics mode off (\E%)
++# white on black (\Ed) auto page flip off (\Ew)
++# turn off status line (\Eg) clear status line (\Ef\r)
++# normal video (\E0) monitor mode off (\EX or \Eu)
++# edit mode (\Er) load blank char to space (\Ee\040)
++# line edit mode (\EO) enable buffer control (^O)
++# protect mode off (\E\047) duplex edit keys (\El)
++# program unshifted send key to send line all (\E016)
++# program shifted send key to send line unprotected (\E004)
++# set the following to nulls:
++# field delimiter (\Ex0\200\200)
++# line delimiter (\Ex1\200\200)
++# start-protected field delimiter (\Ex2\200\200)
++# end-protected field delimiter (\Ex3\200\200)
++# set end of text delimiter to carriage return/null (\Ex4\r\200)
+ #
+-#TITLE: TERMINFO ENTRY WY520
+-#DATE: 8/5/93
+-# The WY520 terminfo is based on the WY285 entry published on the WYSE
+-# BBS with the addition of more function keys and special keys.
+-#
+-# rs1 -> set personality
+-# rs2 -> set number of columns
+-# rs3 -> set number of lines
+-# is1 -> select the proper font
+-# is2 -> do the initialization
+-# is3 -> If this string is empty then rs3 gets sent.
+-#
+-# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
+-# - The BS key is programmed to generate BS in smcup since
+-# is2 doesn't seem to work.
+-# - Remove and shift/Remove: delete a character
+-# - Insert : enter insert mode
+-# - Find : delete to end of file
+-# - Select : clear a line
+-# - F11, F12, F13: send default sequences (not ESC, BS, LF)
+-# - F14 : Home key
+-# - Bottom status line (host writable line) is used.
+-# - smkx,rmkx are removed because this would put the numeric
+-# keypad in Dec application mode which doesn't seem to work
+-# with SCO applications.
+-#
+-wy520|wyse520|wyse 520,
+- am, hs, km, mc5i, mir, xenl, xon,
+- cols#80, it#8, lines#24, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
+- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
+- ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
+- enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
+- hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
+- il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
+- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
+- is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
+- kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+- kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~,
+- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1,
+- lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+- rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l,
+- rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m,
+- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
+- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
+- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
+- smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
+- vpa=\E[%i%p1%dd, use=vt220+keypad,
++# TVI 950 Switch Setting Reference Charts
+ #
+-# Wyse 520 with 24 data lines and status (terminal status)
+-wy520-24|wyse520-24|wyse 520 with 24 data lines,
+- hs@,
+- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
+- use=wy520,
++# TABLE 1:
+ #
+-# Wyse 520 with visual bell.
+-wy520-vb|wyse520-vb|wyse 520 with visible bell,
+- flash=\E[30h\E\,\E[30l$<100>, use=wy520,
++# S1 1 2 3 4 5 6 7 8 9 10
++# +-----------------------+-----+-----+-----------------------+
++# | Computer Baud Rate |Data |Stop | Printer Baud Rate |
++# | |Bits |Bits | |
++# +------+-----------------------+-----+-----+-----------------------+
++# | Up | See | 7 | 2 | See |
++# +------+-----------------------+-----+-----+-----------------------+
++# | Down | TABLE 2 | 8 | 1 | TABLE 2 |
++# +------+-----------------------+-----+-----+-----------------------+
+ #
+-# Wyse 520 in 132-column mode.
+-wy520-w|wyse520-w|wyse 520 in 132-column mode,
+- cols#132, wsl#132,
+- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
+- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
+ #
+-# Wyse 520 in 132-column mode with visual bell.
+-wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
+- flash=\E[30h\E\,\E[30l$<100>, use=wy520-w,
++# S2 1 2 3 4 5 6 7 8 9 10
++# +-----+-----+-----------------+-----+-----------+-----+-----+
++# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click|
++# +------+-----+-----+-----------------+-----+-----------+-----+-----+
++# | Up | Dplx|Blink| See |GonBk| See | 60 | Off |
++# +------+-----+-----+-----------------+-----+-----------+-----+-----+
++# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On |
++# +------+-----+-----+-----------------+-----+-----------+-----+-----+
+ #
++# TABLE 2:
+ #
+-# Wyse 520 emulating a vt420 7 bit mode.
+-# The DEL key is programmed to generate BS in is2.
+-# With EPC keyboard.
+-# - 'End' key will clear till end of line on EPC keyboard
+-# - Shift/End : ignored.
+-# - Insert : enter insert mode.
+-# - Delete : delete a character (have to change interrupt character
+-# to CTRL-C: stty intr '^c') for it to work since the
+-# Delete key sends 7FH.
+-wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
+- kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
+- kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
+- use=wy520,
+-#
+-# Wyse 520 with 24 data lines and status (terminal status)
+-# with EPC keyboard.
+-wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
+- hs@,
+- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
+- use=wy520-epc,
++# +-----------+-----+-----+-----+-----+-----------+
++# | Display | 1 | 2 | 3 | 4 | Baud |
++# +-----------+-----+-----+-----+-----+ |
++# | Printer | 7 | 8 | 9 | 10 | Rate |
++# +-----------+-----+-----+-----+-----+-----------+
++# | D | D | D | D | 9600 |
++# | U | D | D | D | 50 |
++# | D | U | D | D | 75 |
++# | U | U | D | D | 110 |
++# | D | D | U | D | 135 |
++# | U | D | U | D | 150 |
++# | D | U | U | D | 300 |
++# | U | U | U | D | 600 |
++# | D | D | D | U | 1200 |
++# | U | D | D | U | 1800 |
++# | D | U | D | U | 2400 |
++# | U | U | D | U | 3600 |
++# | D | D | U | U | 4800 |
++# | U | D | U | U | 7200 |
++# | D | U | U | U | 9600 |
++# | U | U | U | U | 19200 |
++# +-----+-----+-----+-----+-----------+
+ #
+-# Wyse 520 with visual bell.
+-wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
+- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc,
++# TABLE 3:
++# +-----+-----+-----+-----------+
++# | 3 | 4 | 5 | Parity |
++# +-----+-----+-----+-----------+
++# | X | X | D | None |
++# | D | D | U | Odd |
++# | D | U | U | Even |
++# | U | D | U | Mark |
++# | U | U | U | Space |
++# +-----+-----+-----+-----------+
++# X = don't care
+ #
+-# Wyse 520 in 132-column mode.
+-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
+- cols#132, wsl#132,
+- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
+- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
++# CHART:
++# +-----+-----+-----------------+
++# | 7 | 8 | Communication |
++# +-----+-----+-----------------+
++# | D | D | Half Duplex |
++# | D | U | Full Duplex |
++# | U | D | Block |
++# | U | U | Local |
++# +-----+-----+-----------------+
+ #
+-# Wyse 520 in 132-column mode with visual bell.
+-wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
+- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w,
++# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
++# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich>
++# should be present and all tvi native modes use the same string for this.
++# Finally, note that BSD has cud1=^V. -- esr)
++tvi950|televideo 950,
++ OTbs, am, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, xmc#1,
++ acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*,
++ cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed,
++ fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J,
++ invis@,
++ is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r,
++ kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L,
++ kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r,
++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X,
++ rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
++ use=adm+sgr,
+ #
+-# Wyse 520 in 80-column, 36 lines
+-wy520-36|wyse520-36|wyse 520 with 36 data lines,
+- hs@,
+- lines#36,
+- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
+- use=wy520,
++# is for 950 with two pages adds the following:
++# set 48 line page (\E\\2)
++# place cursor at page 0, line 24, column 1 (\E-07 )
++# set local (no send) edit keys (\Ek)
+ #
+-# Wyse 520 in 80-column, 48 lines
+-wy520-48|wyse520-48|wyse 520 with 48 data lines,
+- hs@,
+- lines#48,
+- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
+- use=wy520,
++# two page 950 adds the following:
++# when entering ex, set 24 line page (\E\\1)
++# when exiting ex, reset 48 line page (\E\\2)
++# place cursor at 0,24,1 (\E-07 )
++# set duplex (send) edit keys (\El) when entering vi
++# set local (no send) edit keys (\Ek) when exiting vi
+ #
+-# Wyse 520 in 132-column, 36 lines
+-wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
+- cols#132, wsl#132,
+- rs2=\E[?3h,
+- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
+- use=wy520-36,
++tvi950-2p|televideo950 w/2 pages,
++ is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011,
++ rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
++ smkx=\El, use=tvi950,
+ #
+-# Wyse 520 in 132-column, 48 lines
+-wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
+- cols#132, wsl#132,
+- rs2=\E[?3h,
+- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
+- use=wy520-48,
++# is for 950 with four pages adds the following:
++# set 96 line page (\E\\3)
++# place cursor at page 0, line 24, column 1 (\E-07 )
+ #
++# four page 950 adds the following:
++# when entering ex, set 24 line page (\E\\1)
++# when exiting ex, reset 96 line page (\E\\3)
++# place cursor at 0,24,1 (\E-07 )
+ #
+-# Wyse 520 in 80-column, 36 lines with EPC keyboard
+-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
+- hs@,
+- lines#36,
+- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
+- use=wy520-epc,
++tvi950-4p|televideo950 w/4 pages,
++ is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011,
++ rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
++ smkx=\El, use=tvi950,
+ #
+-# Wyse 520 in 80-column, 48 lines with EPC keyboard
+-wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
+- hs@,
+- lines#48,
+- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
+- use=wy520-epc,
++# <is2> for reverse video 950 changes the following:
++# set reverse video (\Ed)
+ #
+-# Wyse 520 in 132-column, 36 lines with EPC keyboard
+-wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
+- cols#132, wsl#132,
+- rs2=\E[?3h,
+- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
+- use=wy520-36pc,
++# set vb accordingly (\Ed ...delay... \Eb)
+ #
+-# Wyse 520 in 132-column, 48 lines with EPC keyboard
+-wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
+- cols#132, wsl#132,
+- rs2=\E[?3h,
+- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
+- use=wy520-48pc,
+-
+-# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
+-# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such
+-# file and we don't know what <hts> is -- esr)
+-wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
+- OTbs, am,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
+- dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J,
+- is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F,
+- kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O,
+- rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
+- smul=^N,
+-
+-wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
+- is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>,
+- use=wy75,
+-
+-# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
+-wy100q|Wyse 100 for Quotron,
+- OTbs,
+- cols#80, lines#24, xmc#1,
+- cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
+- is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J,
+- kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
++tvi950-rv|televideo950 rev video,
++ flash=\Ed$<200/>\Eb,
++ is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0,
++ use=tvi950,
+
+-#### Kermit terminal emulations
+-#
+-# Obsolete Kermit versions may be listed in the section describing obsolete
+-# non-ANSI terminal emulators later in the file.
+-#
++# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
++tvi950-rv-2p|televideo950 rev video w/2 pages,
++ flash=\Ed$<200/>\Eb,
++ is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s,
++ rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
++ smkx=\El, use=tvi950,
+
+-# KERMIT standard all versions.
+-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
+-# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
+-# From: greg small <gts@populi.berkeley.edu> 9-25-84
+-kermit|standard kermit,
+- OTbs,
+- cols#80, lines#24,
+- clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+- el=\EK, home=\EH, is2=K0 Standard Kermit 9-25-84\n,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+-kermit-am|standard kermit plus auto-margin,
+- am,
+- is2=K1 Standard Kermit plus Automatic Margins\n,
+- use=kermit,
+-# IBMPC Kermit 1.2.
+-# Bugs: <ed>, <el>: do not work except at beginning of line! <clear> does
+-# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
+-# line).
+-# From: greg small <gts@populi.berkeley.edu> 8-30-84
+-pckermit|pckermit12|UCB IBMPC Kermit 1.2,
+- am,
+- lines#25,
+- clear=\EH\EJ, ed@, el@,
+- is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit,
+-# IBMPC Kermit 1.20
+-# Cannot use line 25, now acts funny like ansi special scrolling region.
+-# Initialization must escape from that region by cursor position to line 24.
+-# Cannot use character insert because 1.20 goes crazy if insert at col 80.
+-# Does not use :am: because autowrap is lost when kermit dropped and restarted.
+-# From: greg small <gts@populi.berkeley.edu> 12-19-84
+-pckermit120|UCB IBMPC Kermit 1.20,
+- it#8, lines#24,
+- cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
+- il1=\EL,
+- is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n,
+- rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
+-# MS-DOS Kermit 2.27 for the IBMPC
+-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
+-# Cannot use line 25, now acts funny like ansi special scrolling region.
+-# Initialization must escape from that region by cursor position to line 24.
+-# Does not use am: because autowrap is lost when kermit dropped and restarted.
+-# Reverse video for standout like H19.
+-# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
+-# From: greg small <gts@populi.berkeley.edu> 3-17-85
+-msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC,
+- OTbs, am@,
++# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
++tvi950-rv-4p|televideo950 rev video w/4 pages,
++ flash=\Ed$<200/>\Eb,
++ is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s,
++ rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
++ smkx=\El, use=tvi950,
++# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
++# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
++# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
++# the :rs: string, inserted the <ich> implied by the termcap :ko: string. Note
++# the :ko: string had :cl: in it, which means that one of the original
++# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
++# the 950 has. Finally, corrected the <kel> string to match the 950 and what
++# ko implies -- esr)
++# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
++# also work.
++tvi955|televideo 955,
++ OTbs, mc5i, msgr@,
++ it#8, xmc@,
++ acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
++ civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
++ cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
++ is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1,
++ knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%,
++ rmam=\E[=7l, rmxon=^N,
++ rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r,
++ sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
++ use=tvi950,
++tvi955-w|955-w|televideo955 w/132 cols,
++ cols#132,
++ is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
++# use half-intensity as normal mode, full intensity as <bold>
++tvi955-hb|955-hb|televideo955 half-bright,
++ bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
++ sgr0=\EG0\E[=5h, use=tvi955,
++# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
++# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m;
++# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL.
++# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
++# it does to the function keys. I deduced <rmam>/<smam>.
++# also added empty <acsc> to suppress tic warning, -- esr)
++tvi970|televideo 970,
++ OTbs, OTpt, am, da, db, mir, msgr,
+ cols#80, it#8, lines#24,
+- clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+- cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK,
+- home=\EH, ht=^I, il1=\EL,
+- is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek,
+- rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep,
+-# MS-DOS Kermit 2.27 with automatic margins
+-# From: greg small <gts@populi.berkeley.edu> 3-17-85
+-msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins,
+- am,
+- cvvis=\EO\Eq\EG\EvK5,
+- is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n,
+- use=msk227,
+-# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
+-# Automatic margins now default. Use ansi <sgr> for highlights.
+-# Define function keys.
+-# (msk22714: removed obsolete ":kn#10:" -- esr)
+-# From: greg small <gts@populi.berkeley.edu> 3-17-85
+-msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
+- am,
+- bold=\E[1m, cvvis=\EO\Eq\EG\EvK6,
+- is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n,
+- kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6,
+- kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227,
+-# This was designed for a VT320 emulator, but it is probably a good start
+-# at support for the VT320 itself.
+-# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
+-# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
+-vt320-k3|MS-Kermit 3.00's vt320 emulation,
+- am, eslok, hs, km, mir, msgr, xenl,
+- cols#80, it#8, lines#49, pb#9600, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+- flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
+- fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
+- kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8,
+- rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
+- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+- rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~,
+- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd,
+-# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
+-# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
+-# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
+-vt320-k311|dec vt320 series as defined by kermit 3.11,
+- am, eslok, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[;H\E[2J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
+- flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
+- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
+- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
+- rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
+- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
+-
+-######## NON-ANSI TERMINAL EMULATIONS
+-#
++ acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
++ cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r,
++ ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
++ is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
++ kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
++ rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
++ smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
++ smul=\E[4m, vpa=\E[%i%p1%dd,
++tvi970-vb|televideo 970 with visual bell,
++ flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
++ use=tvi970,
++tvi970-2p|televideo 970 with using 2 pages of memory,
++ rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
++ use=tvi970,
++# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
++# per line (rather than 40), Esc K chooses the normal character set. Not sure
++# padding is needed, but adapted from the tvi920c termcap. The <smso> and
++# <smul> strings are klutzy, but at least use no screen space.
++# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>,
++# its absence means <smam>=\Ev isn't safe to use. -- esr)
++# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
++# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
++# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
++tvipt|televideo personal terminal,
++ OTbs, am,
++ cols#80, lines#24,
++ cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>,
++ ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt,
++ il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J,
++ kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
++ rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
++# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
++tvi9065|televideo 9065,
++ am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
++ cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
++ wnum#0, wsl#30,
++ acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
++ blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
++ cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
++ cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
++ cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
++ dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
++ el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
++ ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
++ il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
++ ip=$<3>,
++ is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
++ is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
++ kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
++ kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H,
++ mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J,
++ pfkey=\E|%p1%{48}%+%c3%p2%s\031,
++ pfloc=\E|%p1%{48}%+%c2%p2%s\031,
++ pfx=\E|%p1%{48}%+%c1%p2%s\031,
++ pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
++ rep=\E[%p2%db%p1%c, rev=\EG4,
++ rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT,
++ rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H,
++ rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0,
++ rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
++ rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
++ rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
++ sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p8%t\E&%;%?%p9%t\E$%e\E%%%;,
++ sgr0=\EG0\E%, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
++ smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
++ tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
+
+-#### Avatar
+-#
+-# These entries attempt to describe Avatar, a terminal emulation used with
+-# MS-DOS bulletin-board systems. It was designed to give ANSI-like
+-# capabilities, but with cheaper (shorter) control sequences. Messy design,
+-# excessively dependent on PC idiosyncracies, but apparently rather popular
+-# in the BBS world.
+-#
+-# No color support. Avatar doesn't fit either of the Tektronix or HP color
+-# models that terminfo knows about. An Avatar color attribute is the
+-# low 7 bits of the IBM-PC display-memory attribute. Bletch.
++#### Visual (vi)
+ #
+-# I wrote these entries while looking at the Avatar spec. I don't have
+-# the facilities to test them. Let me know if they work, or don't.
++# In September 1993, Visual Technology of Westboro, Massachusetts,
++# merged with White Pine Software of Nashua, New Hampshire.
+ #
+-# Avatar escapes not used by these entries (because maybe you're smarter
+-# and more motivated than I am and can figure out how to wrap terminfo
+-# around some of them, and because they are weird enough to be funny):
+-# level 0:
+-# ^L -- clear window/reset current attribute to default
+-# ^V^A%p1%c -- set current color attribute, parameter decodes as follows:
++# White Pine Software may be contacted at +1 603/886-9050.
++# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
+ #
+-# bit: 6 5 4 3 2 1 0
+-# | | | | |
+-# +---+---+ | +---+---+
+-# | | |
+-# | | foreground color
+-# | foreground intensity
+-# background color
+-# level 0+:
+-# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines
+-# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines
+-# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1
+-# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1
+-# (^V^L and ^V^M set the current attribute as a side-effect.)
+-# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes
+-# in the pattern, <c> the number of times the pattern
+-# should be repeated. If either value is 0, no-op.
+-# The pattern can contain Avatar console codes,
+-# including other ^V ^Y patterns.
+-# level 1:
+-# ^V^O -- clockwise mode on; turn print direction right each time you
+-# hit a window edge (yes, really). Turned off by CR
+-# ^V^P -- no-op
+-# ^V^Q%c -- query the driver
+-# ^V^R -- driver reset
+-# ^V^S -- Sound tone (PC-specific)
+-# ^V^T -- change highlight at current cursor poition to %c
+-# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b>
+-# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
+-# -- define window
+-#
+-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+-# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
+-# tell ncurses that the corresponding highlights exist; it should use <sgr>,
+-# which is the only method that will actually work for multiple highlights.)
+-#
+-# Update by TD - 2004: half of this was inconsistent. Found documentation
+-# and repaired most of the damage. sgr0 is probably incorrect, but the
+-# available documentation gives no clues for a workable string.
+-avatar0|avatar terminal emulator level 0,
+- am, bce, msgr,
+- cols#80, it#8, lines#25,
+- blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
+- cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
+- ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap,
+- rmacs@, rs2=^L,
+- sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;,
+- sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A,
+- use=klone+acs,
+-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+-avatar0+|avatar terminal emulator level 0+,
+- dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
+-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+-avatar|avatar1|avatar terminal emulator level 1,
+- civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
+- rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
+
+-#### RBcomm
+-#
+-# RBComm is a lean and mean terminal emulator written by the Interrupt List
+-# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
+-# '90s), especially in the BBS world, and still has some loyal users due to
+-# its very small memory footprint and to a cute macro language.
+-rbcomm|IBM PC with RBcomm and EMACS keybindings,
+- am, bw, mir, msgr, xenl,
+- cols#80, it#8, lines#25,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=^C, cuf1=^B,
+- cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
+- dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
+- il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
+- is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
+- kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
+- rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
+- rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
+- rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
+- smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
+-rbcomm-nam|IBM PC with RBcomm without autowrap,
+- am@,
+- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
+- is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
+- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
+-rbcomm-w|IBM PC with RBcomm in 132 column mode,
+- cols#132,
+- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
+- is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
+- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
++# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
++# Recently I hacked together the following termcap for Visual
++# Technology's Visual 50 terminal. It's a slight modification of
++# the vt52 termcap.
++# It's intended to run when the Visual 50 is in vt52 emulation mode
++# (I know what you're thinking; if it's emulating a vt52, then why
++# another termcap? Well, it turns out that the Visual 50 can handle
++# <dl1> and db(?) among other things, which the vt52 can't)
++# The termcap works OK for the most part. The only problem is on
++# character inserts. The whole line gets painfully redrawn for each
++# character typed. Any suggestions?
++# Beau's entry is combined with the vi50 entry from University of Wisconsin.
++# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in
++# disguise; <kf7>-<kf9> are really l1-l3.
++vi50|visual 50,
++ OTbs, OTpt, am, da, db, msgr,
++ cols#80, it#8, lines#24,
++ OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H,
++ cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
++ ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
++ kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
++ nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
++# this one was BSD & SCO's vi50
++vi50adm|visual 50 in adm3a mode,
++ am, msgr,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
++ ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
++ rmso=\ET, smso=\EU,
++# From: Jeff Siegal <jbs@quiotix.com>
++vi55|Visual 55,
++ OTbs, am, mir, msgr,
++ cols#80, it#8, lines#24,
++ clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
++ cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
++ il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
++ smir=\Ea, smso=\EU,
+
+-######## LCD DISPLAYS
+-#
++# Visual 200 from BRL
++# The following switch settings are assumed for normal operation:
++# FULL_DUPLEX SCROLL CR
++# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE
++# Other switches may be set for operator convenience or communication
++# requirements.
++# Character insertion is kludged in order to get around the "beep" misfeature.
++# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
++# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
++# and <dl1> strings, but we seem to get along fine without them.
++vi200|visual 200,
++ OTbs, OTpt, am, mir, msgr,
++ OTkn#10, cols#80, it#8, lines#24,
++ acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H,
++ cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey,
++ el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea,
++ kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
++ kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
++ kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
++ kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
++ rmacs=\EG, rmkx=\E>, rmso=\E3,
++ rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
++ smkx=\E=, smso=\E4, tbc=\Eg,
++# The older Visuals didn't come with function keys. This entry uses
++# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
++# If your version of vi doesn't support function keys you may want
++# to use vi200-f.
++vi200-f|visual 200 no function keys,
++ is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
++ kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
++ kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
++ use=vi200,
++vi200-rv|visual 200 reverse video,
++ cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
+
+-#### Matrix Orbital
+-# from: Eric Z. Ayers (eric@ale.org)
+-#
+-# Matrix Orbital 20x4 LCD display
+-# Command Character is 0xFE (decimal 254, octal 376)
+-#
+-# On this device, cursor addressability isn't possible. The LCD expects:
+-# 0xfe G <col> <row>
+-# for cup: %p1 == row and %p2 is column
+-#
+-# This line:
+-# cup=\376G%p2%c%p1%c
+-# LOOKS like it will work, but sometimes only one of the two numbers is sent.
+-# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
++# the function keys are programmable but we don't reprogram them to their
++# default values with <is2> because programming them is very verbose. maybe
++# an initialization file should be made for the 300 and they could be stuck
++# in it.
++# (vi300: added <rmam>/<smam> based on init string -- esr)
++vi300|visual 300 ansi x3.64,
++ am, bw, mir, xenl,
++ cols#80, lines#24,
++ bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
++ il1=\E[L, ind=^J,
++ is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
++ kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
++ kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
++ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
++ smso=\E[1m, smul=\E[4m,
++# some of the vi300s have older firmware that has the command
++# sequence for setting editing extent reversed.
++vi300-old|visual 300 with old firmware (set edit extent reversed),
++ is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s,
++ use=vi300,
++
++# Visual 500 prototype entry from University of Wisconsin.
++# The best place to look for the escape sequences is page A1-1 of the
++# Visual 500 manual. The initialization sequence given here may be
++# overkill, but it does leave out some of the initializations which can
++# be done with the menus in set-up mode.
++# The :xp: line below is so that emacs can understand the padding requirements
++# of this slow terminal. :xp: is 10 time the padding factor.
++# (vi500: removed unknown :xp#4: termcap;
++# also added empty <acsc> to suppress tic warning -- esr)
++vi500|visual 500,
++ am, mir, msgr,
++ cols#80, it#8, lines#33,
++ acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
++ csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB,
++ cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
++ dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>,
++ el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
++ ind=^J,
++ is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
++ kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G,
++ rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
++
++# The visual 550 is a visual 300 with tektronix graphics,
++# and with 33 lines. clear screen is modified here to
++# also clear the graphics.
++vi550|visual 550 ansi x3.64,
++ lines#33,
++ clear=\030\E[H\E[2J, use=vi300,
++
++vi603|visual603|visual 603,
++ hs, mir,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
++ csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
++ ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
++ rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
++ sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
++ use=vt100,
++
++#### Wyse (wy)
+ #
+-# Alas, there is no cursor upline capability on this display.
++# Wyse Technology
++# 3471 North First Street
++# San Jose, CA 95134
++# Vox: (408)-473-1200
++# Fax: (408) 473-1222
++# Web: http://www.wyse.com
+ #
+-# These entries add some 'sanity stuff' to the clear function. That is, it
+-# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
+-# and turns off the cursor blinking and stuff like that.
++# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at
++# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the
++# obvious address, <http://www.wyse.com>. They keep terminfo entries at
++# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
+ #
+-# NOTE: calling 'beep' turns on the backlight (bell)
+-# NOTE: calling 'flash' turns it on and back off (visual bell)
++# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
++# They now own the Qume and Amdek brands, too. So these are the people to
++# talk with about all Link, Qume, and Amdek terminals.
+ #
+-MtxOrb|Generic Matrix Orbital LCD display,
+- bel=\376B^A, clear=\376X\376C\376R\376K\376T,
+- cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
+- flash=\376B\001$<200>\376F, home=\376H,
+-MtxOrb204|20x4 Matrix Orbital LCD display,
+- cols#20, lines#4, use=MtxOrb,
+-MtxOrb162|16x2 Matrix Orbital LCD display,
+- cols#16, lines#2, use=MtxOrb,
+-# The end
+-
+-######## OLDER TERMINAL TYPES
++# These entries include a few small fixes.
++# I canceled the bel capacities in the vb entries.
++# I made two trivial syntax fixes in the wyse30 entry.
++# I made some entries relative to adm+sgr.
+ #
+-# This section is devoted to older commercial terminal brands that are now
+-# discontinued, but known to be still in use or represented by emulations.
+ #
++# Note: The wyse75, wyse85, and wyse99 have been discontinued.
+
+-#### AT&T (att, tty)
++# Although the Wyse 30 can support more than one attribute
++# it requires magic cookies to do so. Many applications do not
++# function well with magic cookies. The following terminfo uses
++# the protect mode to support one attribute (dim) without cookies.
++# If more than one attribute is needed then the wy30-mc terminfo
++# should be used.
+ #
+-# This section also includes Teletype-branded VDTs.
++wy30|wyse30|Wyse 30,
++ am, bw, hs, mc5i, mir, msgr, xon,
++ cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
++ civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H,
++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
++ dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
++ fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
++ ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
++ kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
++ kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
++ kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
++ mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
++ rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
++ sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
++ sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
++ smso=\E`7\E), tbc=\E0, tsl=\EF,
+ #
+-# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
+-# Boundless Technologies); for details, see the header comment on the ADDS
+-# section.
++# This terminal description uses the non-hidden attribute mode
++# (with magic cookie).
+ #
+-# These are AT&T's official terminfo entries. All-caps aliases have been
+-# removed.
++# (wy30-mc: added <smcup> to suppress tic warning --esr)
++wy30-mc|wyse30-mc|wyse 30 with magic cookies,
++ msgr@,
++ ma@, xmc#1,
++ blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
++ rmcup=\EG0, rmso=\EG0,
++ sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
++ sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
++ smso=\EG4, use=wy30, use=adm+sgr,
++# The mandatory pause used by <flash> does not work with
++# older versions of terminfo. If you see this effect then
++# unset xon and delete the / from the delay.
++# i.e. change $<100/> to $<100>
++wy30-vb|wyse30-vb|wyse 30 visible bell,
++ bel@, use=wy30,
+ #
+-att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
+- am, eo, mir, msgr, xon,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcbt=\E[Z, kclr=\E[J,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+- kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
+- kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
+- kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
+- kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
+- kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+- rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
+- smso=\E[7m,
+-att2350|AT&T 2350 Video Information Terminal 80 column mode,
+- mc0@, mc4@, mc5@, use=att2300,
+-
+-# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
+-# Seems upward compatible with vt100, plus ins/del line/char.
+-# On sgr, the protection parameter is ignored.
+-# No check is made to make sure that only 3 parameters are output.
+-# standout= reverse + half-intensity = 3 | 5.
+-# bold= reverse + underline = 2 | 3.
+-# note that half-bright blinking doesn't look different from normal blinking.
+-# NOTE:you must program the function keys first, label second!
+-# (att4410: a BSD entry has been seen with the following capabilities:
+-# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>,
+-# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr)
+-att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
+- am, hs, mir, msgr, xon,
+- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+- acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
+- dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
+- ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0,
+- is3=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW,
+- kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
+- kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
+- ll=\E[24H, nel=^M^J,
+- pfx=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s,
+- pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
+- sc=\E7,
+- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
+- tsl=\E7\E[25;%p1%{1}%+%dH,
+-
+-att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
+- cols#132, wsl#132,
+- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1,
+-
+-att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2,
+- OTbs,
+- pfx=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s,
+- use=att5410v1,
+-
+-att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
+- cols#132, wsl#132,
+- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
+-
+-# 5410 in terms of a vt100
+-# (v5410: added <rmam>/<smam> based on init string -- esr)
+-v5410|att5410 in terms of a vt100,
+- am, mir, msgr, xon,
+- cols#80, it#8, lines#24, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=^J, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
+- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
+- il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
+- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
+- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+- use=vt100+fnkeys,
+-
++# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
++# Normal) without magic cookies by using the protect mode.
++# The following description uses this feature, but when more
++# than one attribute is put on the screen at once, all attributes
++# will be changed to be the same as the last attribute given.
++# The Wyse 50 can support more attributes when used with magic
++# cookies. The wy50-mc terminal description uses magic cookies
++# to correctly handle multiple attributes on a screen.
+ #
+-# Teletype Model 5420 -- A souped up 5410, with multiple windows,
+-# even! the 5420 has three modes: scroll, window or page mode
+-# this terminfo should work in scroll or window mode, but doesn't
+-# take advantage of any of the differences between them.
++wy50|wyse50|Wyse 50,
++ am, bw, hs, mc5i, mir, msgr, xon,
++ cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
++ civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H,
++ cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
++ ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
++ home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
++ is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
++ kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
++ kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
++ kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
++ ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J,
++ pfx=\Ez%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
++ ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
++ sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
++ sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
++ smso=\E`6\E), tbc=\E0, tsl=\EF,
+ #
+-# Has memory below (2 lines!)
+-# 3 pages of memory (plus some spare)
+-# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>,
+-# <hpa>, <hts> would work for these, but these work in both scroll and window
+-# mode... Unset insert character so insert mode works
+-# <is1> sets 80 column mode,
+-# <is2> escape sequence:
+-# 1) turn off all fonts
+-# 2) function keys off, keyboard lock off, control display off,
+-# insert mode off, erasure mode off,
+-# 3) full duplex, monitor mode off, send graphics off, nl on lf off
+-# 4) reset origin mode
+-# 5) set line wraparound
+-# 6) exit erasure mode, positional attribute mode, and erasure extent mode
+-# 7) clear margins
+-# 8) program ENTER to transmit ^J,
+-# We use \212 to program the ^J because a bare ^J will get translated by
+-# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
+-# 1 2 3 4 5 6 7 8
+-# <is3> set screen color to black,
+-# No representation in terminfo for the delete word key: kdw1=\Ed
+-# Key capabilities assume the power-up send sequence...
+-# This <rmcup> is not strictly necessary, but it helps maximize
+-# memory usefulness: <rmcup=\Ez>,
+-# Alternate sgr0: <sgr0=\E[m\EW^O>,
+-# Alternate sgr: <sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>,
+-# smkx programs the SYS PF keys to send a set sequence.
+-# It also sets up labels f1, f2, ..., f8, and sends edit keys.
+-# This string causes them to send the strings <kf1>-<kf8>
+-# when pressed in SYS PF mode.
+-# (att4415: I added <rmam>/<smam> based on the init string -- esr)
+-att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
+- OTbs, db, mir, xon,
+- lh#2, lm#78, lw#8, nlab#8, wsl#55,
+- cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
+- cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
+- cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
+- dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
+- flash=\E[?5h$<200>\E[?5l, home=\E[x,
+- hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
+- il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
+- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212,
+- is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
+- kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd,
+- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
+- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
+- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i,
+- mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
+- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
+- rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
+- rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
+- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
+- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+- use=att4410,
++# This terminal description uses the non-hidden attribute mode
++# (with magic cookie).
++#
++# The mandatory pause used by flash does not work with some
++# older versions of terminfo. If you see this effect then
++# unset <xon> and delete the / from the delay.
++# i.e. change $<100/> to $<100>
++# (wy50-mc: added <smcup> to suppress tic warning --esr)
++wy50-mc|wyse50-mc|wyse 50 with magic cookies,
++ msgr@,
++ ma@, xmc#1,
++ blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
++ rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0,
++ sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
++ sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
++ smso=\EGt, use=wy50, use=adm+sgr,
++wy50-vb|wyse50-vb|wyse 50 visible bell,
++ bel@, use=wy50,
++wy50-w|wyse50-w|wyse 50 132-column,
++ cols#132, lw#7, nlab#16, wsl#97,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
++ use=wy50,
++wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
++ bel@, use=wy50-w,
+
+-att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
+- cols#132, lm#54, wsl#97,
+- is1=\E[?3h$<100>, use=att4415,
+-
+-att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv,
+- flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415,
+-
+-att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv,
+- cols#132, lm#54, wsl#97,
+- flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h,
+- use=att4415,
+-
+-# Note that this mode permits programming USER PF KEYS and labels
+-# However, when you program user pf labels you have to reselect
+-# user pf keys to make them appear!
+-att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels,
+- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
+- pfx=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s,
+- pln=\E[%p1%d;0;0;1q%p2%:-16.16s,
+-
+-att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels,
+- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+- use=att4415,
+-
+-att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels,
+- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+- use=att4415-rv,
+-
+-att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels,
+- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+- use=att4415-w,
+-
+-att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels,
+- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
+- use=att4415-w-rv,
+-
+-att5420_2|AT&T 5420 model 2 80 cols,
+- am, db, hs, mir, msgr, xon,
+- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
+- cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+- cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J,
+- el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
+- home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- indn=\E[%p1%dE, invis=\E[8m,
+- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
+- kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
+- kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe,
+- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
+- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
+- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
+- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
+- mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J,
+- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
+- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
+- rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
+- sc=\E7,
+- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
+- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
+-att5420_2-w|AT&T 5420 model 2 in 132 column mode,
+- cols#132,
+- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
+- use=att5420_2,
+-
+-att4418|att5418|AT&T 5418 80 cols,
+- am, xon,
+- cols#80, lines#24,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD,
+- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
+- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J,
+- is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
+- kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
+- kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
+- kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
+- kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
+- kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
+- rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
+- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
+-att4418-w|att5418-w|AT&T 5418 132 cols,
+- cols#132,
+- is1=\E[?3h, use=att5418,
+-
+-att4420|tty4420|teletype 4420,
+- OTbs, da, db, eo, msgr, ul, xon,
+- cols#80, lines#24, lm#72,
+- bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
+- dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
+- kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
+- kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
+- lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
+- rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
+-
+-# The following is a terminfo entry for the Teletype 4424
+-# asynchronous keyboard-display terminal. It supports
+-# the vi editor. The terminal must be set up as follows,
+ #
+-# HIGHLIGHT DEFINITION 3-TONE
+-# DISPLAY FUNCTION GROUP III
++# The Wyse 350 is a Wyse 50 with color.
++# Unfortunately this means that it has magic cookies.
++# The color attributes are designed to overlap the reverse, dim and
++# underline attributes. This is nice for monochrome applications
++# because you can make underline stuff green (or any other color)
++# but for true color applications it's not so hot because you cannot
++# mix color with reverse, dim or underline.
++# To further complicate things one of the attributes must be
++# black (either the foreground or the background). In reverse video
++# the background changes color with black letters. In normal video
++# the foreground changes colors on a black background.
++# This terminfo uses some of the more advanced features of curses
++# to display both color and blink. In the final analysis I am not
++# sure that the wy350 runs better with this terminfo than it does
++# with the wy50 terminfo (with user adjusted colors).
+ #
+-# The second entry below provides limited (a la adm3a)
+-# operation under GROUP II.
++# The mandatory pause used by flash does not work with
++# older versions of terminfo. If you see this effect then
++# unset xon and delete the / from the delay.
++# i.e. change $<100/> to $<100>
+ #
+-# This must be used with DISPLAY FUNCTION GROUP I or III
+-# and HIGHLIGHT DEFINITION 3-TONE
+-# The terminal has either bold or blink, depending on options
++# Bug: The <op> capability resets attributes.
++wy350|wyse350|Wyse 350,
++ am, bw, hs, mc5i, mir, xon,
++ colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
++ wsl#45, xmc#1,
++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
++ cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
++ cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
++ dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
++ flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
++ il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
++ is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
++ ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
++ kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
++ ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0,
++ pfx=\Ez%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej,
++ rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=,
++ setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c,
++ sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
++ sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
++ smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
++wy350-vb|wyse350-vb|wyse 350 visible bell,
++ bel@, use=wy350,
++wy350-w|wyse350-w|wyse 350 132-column,
++ cols#132, lw#7, nlab#16, wsl#97,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
++ use=wy350,
++wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
++ bel@, use=wy350-w,
+ #
+-# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
+-att4424|tty4424|teletype 4424,
+- OTbs, am, xon,
+- cols#80, lines#24,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
+- dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
+- ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h,
+- kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+- khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
+- rmul=\EZ,
+- sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m,
+- sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
+- tbc=\EF,
+-
+-att4424-1|tty4424-1|teletype 4424 in display function group I,
+- kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
+- use=att4424,
+-
+-# This entry is not one of AT&T's official ones, it was translated from the
+-# 4.4BSD termcap file. The highlight strings are different from att4424.
+-# I have no idea why this is -- older firmware version, maybe?
+-# The following two lines are the comment originally attached to the entry:
+-# This entry appears to avoid the top line - I have no idea why.
+-# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
+-att4424m|tty4424m|teletype 4424M,
+- am, da, db, mir,
+- cols#80, it#8, lines#23,
+- bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
+- dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>,
+- is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+-
+-# The Teletype 5425 is really version 2 of the Teletype 5420. It
+-# is quite similar, except for some minor differences. No page
+-# mode, for example, so all of the <cup> sequences used above have
+-# to change back to what's being used for the 5410. Many of the
+-# option settings have changed their numbering as well.
++# This terminfo description is untested.
++# The wyse100 emulates an adm31, so the adm31 entry should work.
+ #
+-# This has been tested on a preliminary model.
++wy100|wyse 100,
++ hs, mir,
++ cols#80, lines#24, xmc#1,
++ bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J,
++ invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
++ kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
++ kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{,
++ rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr,
+ #
+-# (att5425: added <rmam>/<smam> based on the init string -- esr)
+-att5425|tty5425|att4425|AT&T 4425/5425,
+- am, da, db, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+- clear=\E[H\E[J, cnorm=\E[12;0j, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
+- el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
+- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
+- invis=\E[8m, is1=\E<\E[?3l$<100>,
+- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212,
+- is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+- kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
+- kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
+- kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
+- kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
+- nel=^M^J,
+- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
+- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
+- rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
+- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
+- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
+- vpa=\E[%p1%{1}%+%dd,
+-
+-att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
+- smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
+-
+-att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
+- cols#132, lm#54, wsl#97,
+- is1=\E[?3h$<100>, use=tty5425,
+-
+-# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
+-# I also added <rmam>/<smam> -- esr)
+-att4426|tty4426|teletype 4426S,
+- am, da, db, xon,
+- cols#80, lines#24, lm#48,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
+- cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EP,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
+- hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
+- il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
+- is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO,
+- kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
+- kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H,
+- nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT,
+- rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
+- rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0,
+- smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
+- vpa=\E[%p1%dd,
+-
+-# Terminfo entry for the AT&T 510 A Personal Terminal
+-# Function keys 9 - 16 are available only after the
+-# screen labeled (soft keys/action blocks) are labeled. Function key
+-# 9 corresponds to the leftmost touch target on the screen,
+-# function key 16 corresponds to the rightmost.
++# The Wyse 120/150 has most of the features of the Wyse 60.
++# This terminal does not need padding up to 9600 baud!
++# <msgr> should be set but the clear screen fails when in
++# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
++# then set <msgr>.
+ #
+-# This entry is based on one done by Ernie Rice at Summit, NJ and
+-# changed by Anne Gallup, Skokie, IL, ttrdc!anne
+-att510a|bct510a|AT&T 510A Personal Terminal,
+- am, mir, msgr, xenl, xon,
+- cols#80, lh#2, lines#24, lw#7, nlab#8,
+- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+- civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
+- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
+- el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
+- hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l,
+- is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
+- kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
+- kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
+- kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
+- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
+- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
+- rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
+- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g,
++wy120|wyse120|wy150|wyse150|Wyse 120/150,
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
++ dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
++ flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>,
++ hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
++ is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
++ is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
++ mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
++ pfx=\EZ1%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
++ rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
++ rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
++ rs3=\EwG\Ee($<100>,
++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
++ smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
++ tbc=\E0, tsl=\EF, use=adm+sgr,
++#
++wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
++ cols#132, lw#7, nlab#16, wsl#97,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
++ rs2=\E`;$<70>, use=wy120,
++#
++wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy120,
++#
++wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
++#
++wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell,
++ bel@, use=wy120,
++#
++wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell,
++ bel@, use=wy120-w,
++#
++# The Wyse 60 is like the Wyse 50 but with more padding.
++# The reset strings are slow and the pad times very depending
++# on other parameters such as font loading. I have tried
++# to follow the following outline:
++#
++# <rs1> -> set personality
++# <rs2> -> set number of columns
++# <rs3> -> set number of lines
++# <is1> -> select the proper font
++# <is2> -> do the initialization
++# <is3> -> set up display memory (2 pages)
++#
++# The Wyse 60's that have vt100 emulation are slower than the
++# older Wyse 60's. This change happened mid-1987.
++# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
++#
++# The meta key is only half right. This terminal will return the
++# high order bit set when you hit CTRL-function_key
++#
++# It may be useful to assign two function keys with the
++# values \E=(\s look at old data in page 1
++# \E=W, look at bottom of page 1
++# where \s is a space ( ).
++#
++# Note:
++# The Wyse 60 runs faster when the XON/XOFF
++# handshake is turned off.
++#
++# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
++# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
++wy60|wyse60|Wyse 60,
++ am, bw, hs, km, mc5i, mir, msgr,
++ cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
++ ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
++ home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
++ ip=$<3>, is1=\EcB0\EcC1,
++ is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
++ is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
++ mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
++ pfx=\EZ1%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
++ rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er,
++ rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>,
++ rs2=\EeG$<150>, rs3=\EwG\Ee($<200>,
++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
++ smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
++ tbc=\E0, tsl=\EF, use=adm+sgr,
++#
++wy60-w|wyse60-w|wyse 60 132-column,
++ cols#132, lw#7, nlab#16, wsl#97,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
++ rs2=\EeF$<150>\E`;$<150>, use=wy60,
++#
++wy60-25|wyse60-25|wyse 60 80-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<200>, use=wy60,
++wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
++#
++wy60-42|wyse60-42|wyse 60 80-column 42-lines,
++ lines#42,
++ clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
++ dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
++ ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
++ ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
++wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
++ cols#132, lw#7, nlab#16, wsl#97,
++ clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
++ dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
++ nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
++#
++wy60-43|wyse60-43|wyse 60 80-column 43-lines,
++ lh@, lines#43, lw@, nlab@,
++ pln@, rs3=\Ee+$<150>, use=wy60-42,
++wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
++ lh@, lines#43, lw@, nlab@,
++ pln@, rs3=\Ee+$<150>, use=wy60-42-w,
++#
++wy60-vb|wyse60-vb|Wyse 60 visible bell,
++ bel@, use=wy60,
++wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
++ bel@, use=wy60-w,
+
+-# Terminfo entry for the AT&T 510 D Personal Terminal
+-# Function keys 9 through 16 are accessed by bringing up the
+-# system blocks.
+-# Function key 9 corresponds to the leftmost touch target on the screen,
+-# function key 16 corresponds to the rightmost.
++# The Wyse-99GT looks at lot like the Wyse 60 except that it
++# does not have the 42/43 line mode. In the Wyse-60 the "lines"
++# setup parameter controls the number of lines on the screen.
++# For the Wyse 99GT the "lines" setup parameter controls the
++# number of lines in a page. The screen can display 25 lines max.
++# The Wyse-99GT also has personalities for the VT220 and
++# Tektronix 4014. But this has no bearing on the native mode.
+ #
+-# There are problems with soft key labeling. These are due to
+-# strangenesses in the native terminal that are impossible to
+-# describe in a terminfo.
+-att510d|bct510d|AT&T 510D Personal Terminal,
+- am, da, db, mir, msgr, xenl, xon,
+- cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
+- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+- clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
+- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+- cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
+- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
+- el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
+- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+- invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212,
+- kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd,
+- kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi,
+- kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf,
+- kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2,
+- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
+- pln=\E[%p1%dp%p2%:-16s, rc=\E8,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
+- rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|,
+- rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|,
+- rs2=\E[5;0|, sc=\E7,
+- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
+- smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
+- smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
++# (msgr) should be set but the clear screen fails when in
++# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
++# then set msgr, else use msgr@.
++#
++# u0 -> enter Tektronix mode
++# u1 -> exit Tektronix mode
++#
++wy99gt|wyse99gt|Wyse 99gt,
++ msgr@,
++ clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
++ el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
++ il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
++ ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
++ u0=\E~>\E8, u1=\E[42h, use=wy60,
++#
++wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
++ cols#132, lw#7, nlab#16, wsl#97,
++ clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
++ dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
++ use=wy99gt,
++#
++wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
++#
++wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs2=\E`;$<150>, use=wy99gt-w,
++#
++wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell,
++ bel@, use=wy99gt,
++#
++wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
++ bel@, use=wy99gt-w,
+
+-# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
+-att500|att513|AT&T 513 using page mode,
+- am, chts, mir, msgr, xenl, xon,
+- cols#80, lh#2, lines#24, lw#8, nlab#8,
+- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
+- clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M,
+- csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
+- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- indn=\E[%p1%dE, invis=\E[8m,
+- is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
+- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
+- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
+- kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
+- kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
+- kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
+- kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
+- kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
+- kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
+- kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
+- kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
+- khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
+- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
+- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
+- kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
+- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2,
+- mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i,
+- nel=\EE,
+- pfkey=\E[%p1%d;%p2%l%d;3;0p F%p1%d %p2%s,
+- pfloc=\E[%p1%d;%p2%l%d;2;0p F%p1%d %p2%s,
+- pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s,
+- pln=\E[%p1%dp%p2%:-16s, rc=\E8,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
+- rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
+- rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
+- rmul=\E[m,
+- rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
+- rs2=\E[5;0|, sc=\E7,
+- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smir=\E[4h,
+- smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
++# Can't set tabs! Other bugs (ANSI mode only):
++# - can't redefine function keys (anyway, key redefinition in ANSI mode
++# is too much complex to be described);
++# - meta key can't be described (the terminal forgets it when reset);
++# The xon-xoff handshaking can't be disabled while in ansi personality, so
++# emacs can't work at speed greater than 9600 baud. No padding is needed at
++# this speed.
++# dch1 has been commented out because it causes annoying glittering when
++# vi deletes one character at the beginning of a line with tabs in it.
++# dch makes sysgen(1M) have a horrible behaviour when deleting
++# a screen and makes screen(1) behave badly, so it is disabled too. The nice
++# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
++# not, so smir and rmir are commented out as well.
++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
++wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
++ am, km, mc5i, mir, msgr, xenl,
++ cols#80, it#8, lines#25, vt#3,
++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
++ cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
++ cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
++ cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
++ enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
++ il1=\E[L, ind=\n$<1>, invis=\E[8m,
++ is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i,
++ kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ,
++ kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
++ kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
++ mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
++ rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
++ rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
++ rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i,
++ sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+
+-# 01-07-88
+-# printer must be set to EMUL ANSI to accept ESC codes
+-# <cuu1> stops at top margin
+-# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
+-# and alt font ascii,wrap on,tabs cleared
+-# <is2> disables newline on LF,Emphasized off
+-# The <u0> capability sets form length
+-att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
+- xhpa, xvpa,
+- bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10,
+- orhi#100, orl#12, orvi#72,
+- cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
+- cr=^M,
+- csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
+- cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM,
+- ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r,
+- lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
+- rshm=\E[m,
+- scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
+- smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds,
+- smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m,
+- u0=\E[%p1%dt, vpa=\E[%p1%dd,
++# This is the american terminal. Here tabs work fine.
++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
++wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
++ hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
+
+-# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
+-# The following SET-UP modes are assumed for normal operation:
+-# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL
+-# Other SET-UP modes may be set for operator convenience or communication
+-# requirements. This termcap description is for the Resident Terminal Mode.
+-# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# The BRL entry also said: UNSAFE :ll=\E[70H:
+-att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
+- am, xon,
+- cols#88, it#8, lines#70, vt#3,
+- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+- kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT,
+- rs1=\Ec, sc=\E7,
++# This terminal (firmware version 02) has a lot of bugs:
++# - can't set tabs;
++# - other bugs in ANSI modes (see above).
++# This description disables handshaking when using cup. This is because
++# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
++# cannot be used at speeds greater than 9600 baud, because at greater
++# speeds handshaking is needed even for character sending. If you use
++# DTR handshaking, you can use even greater speeds.
++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
++wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ cols#80, it#8, lines#25, wsl#46,
++ acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
++ blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
++ cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
++ ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
++ flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE,
++ ind=^J, invis=\EG3,
++ is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024,
++ ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
++ kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
++ kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r,
++ kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r,
++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#,
++ nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
++ rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
++ rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024,
++ sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;,
++ sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
++ smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
+
+-# 5620 terminfo (2.0 or later ROMS with char attributes)
+-# The following SET-UP modes are assumed for normal operation:
+-# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR
+-# Other SET-UP modes may be set for operator convenience or communication
+-# requirements. This termcap description is for Resident Terminal Mode. No
+-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# assumptions: <ind> (scroll forward one line) is only done at screen bottom
+-# Be aware that older versions of the dmd have a firmware bug that affects
+-# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
+-# <msgr> is from an otherwise inferior BRL for this terminal. That entry
+-# also has <ll>=\E[70H commented out and marked unsafe.
+-# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
+-att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
+- OTbs, am, msgr, npc, xon,
+- cols#88, it#8, lines#70,
+- bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H,
+- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+- indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J,
+- pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
+- rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
+- sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+-att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
+- lines#24, use=att5620,
+-att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
+- lines#34, use=att5620,
+-# 5620 layer running the "S" system's downloaded graphics handler:
+-att5620-s|tty5620-s|layer|vitty|5620 S layer,
+- OTbs, OTpt, am,
+- cols#80, it#8, lines#72,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
+- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
+- el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+- kll=\E[70;1H,
++# This is the american terminal. Here tabs work.
++# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
++wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
++ hts=\E1, tbc=\E0, use=wy99f,
+
+-# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
+ #
+-# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
+-# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
+-att605|AT&T 605 80 column 102key keyboard,
+- am, eo, xon,
+- cols#80, lines#24, lw#8, nlab#8, wsl#80,
++# The Wyse 160 is combination of the WY-60 and the WY-99gt.
++# The reset strings are slow and the pad times very depending
++# on other parameters such as font loading. I have tried
++# to follow the following outline:
++#
++# <rs1> -> set personality
++# <rs2> -> set number of columns
++# <rs3> -> set number of lines
++# <is1> -> select the proper font
++# <is2> -> do the initialization
++# <is3> -> set up display memory (2 pages)
++#
++# The display memory may be used for either text or graphics.
++# When "Display Memory = Shared" the terminal will have more pages
++# but garbage may be left on the screen when you switch from
++# graphics to text. If "Display Memory = Unshared" then the
++# text area will be only one page long.
++#
++# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
++# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
++wy160|wyse160|Wyse 160,
++ am, bw, hs, km, mc5i, mir, msgr,
++ cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
++ dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
++ el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I,
++ hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
++ is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
++ is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
++ mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>,
++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
++ pfx=\EZ1%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
++ rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
++ rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
++ rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
++ smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
++ tbc=\E0, tsl=\EF, use=adm+sgr,
++#
++wy160-w|wyse160-w|wyse 160 132-column,
++ cols#132, lw#7, nlab#16, wsl#90,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
++ rs2=\EeF$<150>\E`;$<150>, use=wy160,
++#
++wy160-25|wyse160-25|wyse 160 80-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<200>, use=wy160,
++wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
++#
++wy160-42|wyse160-42|wyse 160 80-column 42-lines,
++ lines#42,
++ clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
++ ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
++ rs3=\Ee*$<150>, use=wy160,
++wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
++ cols#132, lw#7, nlab#16, wsl#90,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
++ rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
++#
++wy160-43|wyse160-43|wyse 160 80-column 43-lines,
++ lh@, lines#43, lw@, nlab@,
++ pln@, rs3=\Ee+$<150>, use=wy160-42,
++wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
++ lh@, lines#43, lw@, nlab@,
++ pln@, rs3=\Ee+$<150>, use=wy160-42-w,
++#
++wy160-vb|wyse160-vb|Wyse 160 visible bell,
++ bel@, use=wy160,
++wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
++ bel@, use=wy160-w,
++#
++# The Wyse 75 is a vt100 lookalike without advanced video.
++#
++# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
++# Underline) without magic cookies. The following description
++# uses this capability, but when more than one attribute is
++# put on the screen at once, all attributes will be changed
++# to be the same as the last attribute given.
++# The Wyse 75 can support more attributes when used with magic
++# cookies. The wy75-mc terminal description uses magic cookies
++# to correctly handle multiple attributes on a screen.
++#
++wy75|wyse75|wyse 75,
++ am, hs, mc5i, mir, msgr, xenl, xon,
++ cols#80, lines#24, ma#1, pb#1201, wsl#78,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
+- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+- il1=\E[L, ind=^J, invis=\E[8m,
+- is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
+- kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+- kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
+- kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
+- kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
+- kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
+- kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
+- kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
+- kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
+- kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
+- kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
+- kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
+- kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
+- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
+- rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
+- rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
+- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
+- tsl=\E7\E[25;%i%p1%dx,
+-att605-pc|ATT 605 in pc term mode,
+- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+- cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
+- dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
+- kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
+- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
+- kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
+- rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g,
+- xonc=e, use=att605,
+-att605-w|AT&T 605-w 132 column 102 key keyboard,
+- cols#132, wsl#132,
+- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
+- use=att605,
+-# (att610: I added <rmam>/<smam> based on the init string. I also
+-# added <indn> and <rin> because the BSD file says the att615s have them,
+-# and the 615 is like a 610 with a big keyboard, and most of their other
+-# smart terminals support the same sequence -- esr)
+-att610|AT&T 610; 80 column; 98key keyboard,
+- am, eslok, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
++ bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>,
++ cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
++ dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
++ dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
++ ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
++ enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
++ ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
++ ind=\n$<2>, ip=$<1>,
++ is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
++ is2=\E>\E(B\E)0\017, is3=\E[m, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K,
++ kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
++ kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
++ khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
++ kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
++ mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
++ rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
++ sc=\E7,
++ sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
++ tbc=\E[3g, tsl=\E[>\,\001, use=vt220+keypad,
++#
++# This terminal description uses the non-hidden attribute mode
++# (with magic cookie).
++#
++wy75-mc|wyse75-mc|wyse 75 with magic cookies,
++ msgr@,
++ ma@, xmc#1,
++ blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
++ rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
++ sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;,
++ sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
++ use=wy75,
++wy75-vb|wyse75-vb|wyse 75 with visible bell,
++ pb@,
++ bel@, use=wy75,
++wy75-w|wyse75-w|wyse 75 in 132 column mode,
++ cols#132, wsl#130,
++ rs2=\E[35h\E[?3h$<80>, use=wy75,
++wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
++ pb@,
++ bel@, use=wy75-w,
++#
++# Wyse 85 emulating a vt220 7 bit mode.
++# 24 line screen with status line.
++#
++# The vt220 mode permits more function keys but it wipes out
++# the escape key. I strongly recommend that <f11> be set to
++# escape (esc).
++# The terminal may have to be set for 8 data bits and 2 stop
++# bits for the arrow keys to work.
++# The Wyse 85 runs faster with XON/XOFF enabled. Also the
++# <dch> and <ich> work best when XON/XOFF is set. <ich> and
++# <dch> leave trash on the screen when used without XON/XOFF.
++#
++wy85|wyse85|wyse 85,
++ am, hs, mc5i, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, wsl#80,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
++ clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- indn=\E[%p1%dS, invis=\E[8m,
+- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
+- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
+- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+- kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
+- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+- kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
+- nel=\EE,
+- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
+- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
+- rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
+-att610-w|AT&T 610; 132 column; 98key keyboard,
+- cols#132, wsl#132,
+- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+- use=att610,
+-
+-att610-103k|AT&T 610; 80 column; 103key keyboard,
+- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
+- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
+- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
+- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
+- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
+- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
+- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx,
+- khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl,
+- knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V,
+- kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq,
+- krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo,
+- kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610,
+-att610-103k-w|AT&T 610; 132 column; 103key keyboard,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
++ dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
++ ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
++ enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
++ fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
++ ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
++ ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
++ is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
++ kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
++ kf19=\E[33~, kf20=\E[34~, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
++ khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
++ mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
++ rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
++ rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
++ rs3=\E[?5l, sc=\E7,
++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[40h\E7\E[25;%i%p1%dH, use=vt220+keypad,
++#
++# Wyse 85 with visual bell.
++wy85-vb|wyse85-vb|wyse 85 with visible bell,
++ bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85,
++#
++# Wyse 85 in 132-column mode.
++wy85-w|wyse85-w|wyse 85 in 132-column mode,
+ cols#132, wsl#132,
+- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+- use=att610-103k,
+-att615|AT&T 615; 80 column; 98key keyboard,
+- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
+- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
+- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
+- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
+- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
+- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
+- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610,
+-att615-w|AT&T 615; 132 column; 98key keyboard,
+- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
+- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
+- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
+- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
+- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
+- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
+- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w,
+-att615-103k|AT&T 615; 80 column; 103key keyboard,
+- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k,
+-att615-103k-w|AT&T 615; 132 column; 103key keyboard,
+- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w,
+-# (att620: I added <rmam>/<smam> based on the init string and
+-# <rin>/<indn> from a BSD termcap -- esr)
+-att620|AT&T 620; 80 column; 98key keyboard,
+- am, eslok, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
++ rs2=\E[35h\E[?3h$<70>, use=wy85,
++#
++# Wyse 85 in 132-column mode with visual bell.
++wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
++ bel@, use=wy85-w,
++
++# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
++# This copes with an apparent firmware bug in the wy85. He writes:
++# "What I did was change leave the terminal cursor keys set to Normal
++# (instead of application), and change \E[ to \233 for all the keys in
++# terminfo. At one point, I found some reference indicating that this
++# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
++# me), but I can't find that and the server under my bookmark to "Wyse
++# Technical" isn't responding. So there's the question of wether the wy85
++# terminfo should reflect the manufactuer's intended behaviour of the terminal
++# or the actual."
++wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
++ am, hs, mc5i, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, wsl#80,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
++ clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- indn=\E[%p1%dS, invis=\E[8m,
+- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
+- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
+- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+- kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
+- kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
+- kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
+- kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
+- kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
+- kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
+- kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
+- kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
+- kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
+- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
+- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
+- rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
+- rs2=\Ec\E[?3l, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
+- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
+- tsl=\E7\E[25;%i%p1%dx,
+-att620-w|AT&T 620; 132 column; 98key keyboard,
+- cols#132, wsl#132,
+- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+- use=att620,
+-att620-103k|AT&T 620; 80 column; 103key keyboard,
+- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
+- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
+- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
+- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
+- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
+- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
+- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
+- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@,
+- kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@,
+- kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@,
+- kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@,
+- kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi,
+- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
+- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
+- kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB,
+- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620,
+-
+-att620-103k-w|AT&T 620; 132 column; 103key keyboard,
+- cols#132, wsl#132,
+- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
+- use=att620-103k,
+-
+-# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
+-# The following SETUP modes are assumed for normal operation:
+-# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF
+-# Font_Size=Large Non-Layers_Window_Cols=80
+-# Non-Layers_Window_Rows=60
+-# Other SETUP modes may be set for operator convenience or communication
+-# requirements. Some capabilities assume a printer attached to the Aux EIA
+-# port. This termcap description is for the Fixed Non-Layers Window. No
+-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr)
+-att630|AT&T 630 windowing terminal,
+- OTbs, am, da, db, mir, msgr, npc, xon,
+- cols#80, it#8, lines#60, lm#0,
+- bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
+- el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m,
+- kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M,
+- kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
+- kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy,
+- kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~,
+- kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i,
+- mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
+- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
+- rmul=\E[m, rs2=\Ec, sc=\E7,
+- sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
+- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+-att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
+- lines#24, use=att630,
+-
+-# This is the att700 entry for 700 native emulation of the AT&T 700
+-# terminal. Comments are relative to changes from the 605V2 entry and
+-# att730 on which the entry is based. Comments show the terminfo
+-# capability name, termcap name, and description.
+-#
+-# Here is what's going onm in the init string:
+-# ESC [ 50;4| set 700 native mode (really is 605)
+-# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line)
+-# ESC [ 53;0| set GenFlow to Xon/Xoff
+-# ESC [ 8 ;0| set CR on NL
+-# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h)
+-# ESC [ ? 4 l jump scroll
+-# ESC [ ? 5 l/h video: normal (l); reverse (h)
+-# ESC [ ?13 l Labels on
+-# ESC [ ?15 l parity check = no
+-# ESC [ 13 l monitor mode off
+-# ESC [ 20 l LF on NL (not CRLF on NL)
+-# ESC [ ? 7 h autowrap on
+-# ESC [ 12 h local echo off
+-# ESC ( B GO = ASCII
+-# ESC ) 0 G1 = Special Char & Line Drawing
+-# ESC [ ? 31 l Set 7 bit controls
+-#
+-# Note: Most terminals, especially the 600 family use Reverse Video for
+-# standout mode. DEC also uses reverse video. The VT100 uses bold in addition
+-# Assume we should stay with reverse video for 70.. However, the 605V2 exits
+-# standout mode with \E[m (all normal attributes). The 730 entry simply
+-# exits reverse video which would leave other current attributes intact. It
+-# was assumed the 730 entry to be more correct so rmso has changed. The
+-# 605V2 has no sequences to turn individual attributes off, thus its setting
+-# and the rmso/smso settings from the 730.
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
++ dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
++ ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
++ enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
++ fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
++ ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
++ ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
++ is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
++ kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
++ kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
++ kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
++ kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
++ kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
++ kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
++ kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
++ khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
++ kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
++ mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
++ rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
++ rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
++ rs3=\E[?5l, sc=\E7,
++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[40h\E7\E[25;%i%p1%dH,
+ #
+-# Note: For the same reason as above in rmso I changed exit under-score mode
+-# to specifically turn off underscore, rather than return to all normal
+-# attributes
++# Wyse 185 emulating a vt320 7 bit mode.
+ #
+-# Note: The following pkey_xmit is taken from the 605V2 which contained the
+-# capability as pfxl. It was changed here to pfx since pfxl
+-# will only compile successfully with Unix 4.0 tic. Also note that pfx only
+-# allows strings to be parameters and label values must be programmed as
+-# constant strings. Supposedly the pfxl of Version 4.0 allows both labels
+-# and strings to be parameters. The 605V2 pfx entry should be examined later
+-# in this regard. For reference the 730 pfxl entry is shown here for comparison
+-# 730 pfx entry:
+-# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
+-# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
++# This terminal always displays 25 lines. These lines may be used
++# as 24 data lines and a terminal status line (top or bottom) or
++# 25 data lines. The 48 and 50 line modes change the page size
++# and not the number of lines on the screen.
+ #
+-# (for 4.0 tic)
+-# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
++# The Compose Character key can be used as a meta key if changed
++# by set-up.
+ #
+-# (for <4.0 tic)
+-# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
++wy185|wyse185|wyse 185,
++ am, hs, km, mc5i, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
++ dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
++ dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
++ el=\E[K, el1=\E[1K, enacs=\E)0,
++ flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8,
++ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
++ ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
++ ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
++ is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
++ kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
++ kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
++ knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
++ lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
++ ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
++ rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
++ rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
++ rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
++ smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
++ use=vt220+keypad,
+ #
+-# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
++# Wyse 185 with 24 data lines and top status (terminal status)
++wy185-24|wyse185-24|wyse 185 with 24 data lines,
++ hs@,
++ dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
++ use=wy185,
+ #
+-# Port1 Interface
++# Wyse 185 with visual bell.
++wy185-vb|wyse185-vb|wyse 185+flash,
++ bel@, use=wy185,
+ #
+-# modular 10 pin Connector
+-# Left side Right side
+-# Pin 1 2 3 4 5 6 7 8 9 10
++# Wyse 185 in 132-column mode.
++wy185-w|wyse185-w|wyse 185 in 132-column mode,
++ cols#132, wsl#132,
++ dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
++ ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
+ #
+-# Key (notch) at bottom
++# Wyse 185 in 132-column mode with visual bell.
++wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
++ bel@, use=wy185-w,
++
++# wy325 terminfo entries
++# Done by Joe H. Davis 3-9-92
++
++# lines 25 columns 80
+ #
+-# Pin 1 DSR
+-# 3 DCD
+-# 4 DTR
+-# 5 Sig Ground
+-# 6 RD
+-# 7 SD
+-# 8 CTS
+-# 9 RTS
+-# 10 Frame Ground
++wy325|wyse325|Wyse epc,
++ am, bw, hs, mc5i, mir,
++ cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
++ acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
++ bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
++ cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
++ dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
++ flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
++ il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
++ is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
++ is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
++ kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
++ kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
++ kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq,
++ kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
++ mc0=\EP, mc4=^T, mc5=\Ed#,
++ pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
++ pfx=\EZ1%p1%{63}%+%c%p2%s\177,
++ pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
++ rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
++ rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
++ rs3=\EwG\Ee($<100>,
++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
++ sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
++ smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
++ tsl=\EF, use=adm+sgr,
++
+ #
+-# The manual is 189 pages and is loaded with details about the escape codes,
+-# etc..... Available from AT&T CIC 800-432-6600...
+-# ask for Document number 999-300-660..
++# lines 24 columns 80 vb
+ #
+-att700|AT&T 700 24x80 column display w/102key keyboard,
+- am, eslok, hs, mir, msgr, xenl, xon,
+- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
+- fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
+- is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017,
+- is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
+- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
+- kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
+- kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
+- kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
+- kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
+- kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
+- kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
+- kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
+- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
+- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+- kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
+- mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+- pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
+- rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
+- smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
+- tsl=\E7\E[99;%i%p1%dx,
+-
+-# This entry was modified 3/13/90 by JWE.
+-# fixes include additions of <enacs>, correcting <rep>, and modification
+-# of <kHOM>. (See comments below)
+-# att730 has status line of 80 chars
+-# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>,
+-# the <kf25> and up keys are used for shifted system Fkeys
+-# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
+-# currently the same as <khome> (unshifted HOME or \E[H). On the 102, 102+1
+-# and 122 key keyboards, the 730's translation is \E[2J. For consistency
+-# <kHOM> has been commented out. The user can uncomment <kHOM> if using the
+-# 102, 102+1, or 122 key keyboards
+-# kHOM=\E[2J,
+-# (att730: I added <rmam>/<smam> based on the init string -- esr)
+-att730|AT&T 730 windowing terminal,
+- am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
+- cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
+- home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+- ind=\ED, invis=\E[8m,
+- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
+- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
+- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
+- kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
+- kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
+- kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
+- kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
+- kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
+- kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
+- kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
+- kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
+- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
+- kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
+- mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
+- pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq SYS F%p1%:-2d %e;0;3q%;%p2%s,
+- pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
+- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
+- rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
+- rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
+- swidm=\E#6, tsl=\E7\E[;%i%p1%dx,
+-att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
+- lines#41, use=att730,
+-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
+- lines#24, use=att730,
+-att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
+- flash=\E[?5l$<200>\E[?5h,
+- is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B,
+- use=att730,
+-att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
+- lines#41, use=att730r,
+-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
+- lines#24, use=att730r,
++wy325-vb|wyse325-vb|wyse-325 with visual bell,
++ bel@, use=wy325,
+
+-# The following represents the screen layout along with the associated
+-# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
+-# not appear on the screen but are shown to reference the bezel buttons.
+-# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
+-# position relative to the screen.
+ #
++# lines 24 columns 132
+ #
++wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
++ cols#132, lw#7, nlab#16, wsl#97,
++ cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
++ rs2=\E`;$<70>, use=wy325,
+ #
+-# +----------------------------------------------------------------+
+-# | |
+-# XXXX | kf0 kf24 | XXXX
+-# | |
+-# | |
+-# XXXX | kf1 kf23 | XXXX
+-# | |
+-# | |
+-# XXXX | kf2 kf22 | XXXX
+-# | |
+-# | |
+-# XXXX | kf3 kf21 | XXXX
+-# | |
+-# | |
+-# XXXX | kf4 kf20 | XXXX
+-# | |
+-# | |
+-# XXXX | kf5 kf19 | XXXX
+-# | |
+-# | |
+-# XXXX | kf6 kf18 | XXXX
+-# | |
+-# | |
+-# XXXX | | XXXX
+-# | |
+-# | |
+-# +----------------------------------------------------------------+
++# lines 25 columns 80
+ #
+-# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
++wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy325,
+ #
+-# Note: XXXX represents the screen buttons
+-# CMD REDRAW
++# lines 25 columns 132
+ #
+-# MAIL
++wy325-25w|wyse325-25w|wy325 132 columns,
++ lh@, lines#25, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+ #
+-# version 1 note:
+-# The character string sent by key 'kf26' may be user programmable
+-# to send either \E[16s, or \E[26s.
+-# The character string sent by key 'krfr' may be user programmable
+-# to send either \E[17s, or \E[27s.
++# lines 25 columns 132 vb
+ #
+-# Depression of the "CMD" key sends \E! (kcmd)
+-# Depression of the "MAIL" key sends \E[26s (kf26)
+-# "REDRAW" same as "REFRESH" (krfr)
++wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
++ bel@, use=wy325-w,
++
+ #
+-# "kf" functions adds carriage return to output string if terminal is in
+-# 'new line' mode.
++# lines 42 columns 80
+ #
+-# The following are functions not covered in the table above:
++wy325-42|wyse325-42|wyse-325 42 lines,
++ lh@, lines#42, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy325,
+ #
+-# Set keyboard character (SKC): \EPn1;Pn2w
+-# Pn1= 0 Back Space key
+-# Pn1= 1 Break key
+-# Pn2= Program char (hex)
++# lines 42 columns 132
+ #
+-# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
+-# Pn1= Window number (1-39)
+-# Pn2-Pn5= Y;X;Y;X coordinates
++wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
++ lh@, lines#42, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+ #
+-# Screen Selection (SSL): \E[Pnu
+-# Pn= Window number
++# lines 42 columns 132 vb
+ #
+-# Set Terminal Modes (SM): \E[Pnh
+-# Pn= 3 Graphics mode
+-# Pn= > Cursor blink
+-# Pn= < Enter new line mode
+-# Pn= = Enter reverse insert/replace mode
+-# Pn= ? Enter no scroll mode
++wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
++ bel@, use=wy325-w,
+ #
+-# Reset Terminal Mode (RM): \E[Pnl
+-# Pn= 3 Exit graphics mode
+-# Pn= > Exit cursor blink
+-# Pn= < Exit new line mode
+-# Pn= = Exit reverse insert/replace mode
+-# Pn= ? Exit no scroll mode
++# lines 43 columns 80
+ #
+-# Screen Status Report (SSR): \E[Pnp
+-# Pn= 0 Request current window number
+-# Pn= 1 Request current window dimensions
++wy325-43|wyse325-43|wyse-325 43 lines,
++ lh@, lines#43, lw@, nlab@,
++ pln@, use=wy325,
+ #
+-# Device Status Report (DSR): \E[6n Request cursor position
++# lines 43 columns 132
+ #
+-# Call Status Report (CSR): \E[Pnv
+-# Pn= 0 Call failed
+-# Pn= 1 Call successful
++wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
++ lh@, lines#43, lw@, nlab@,
++ pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
+ #
+-# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
+-# Pn1= Button number to be loaded
+-# Pn2= Character count of "string"
+-# Pn3= Key mode being loaded:
+-# 0= Unshifted
+-# 1= Shifted
+-# 2= Control
+-# String= Text string (15 chars max)
++# lines 43 columns 132 vb
+ #
+-# Screen Number Report (SNR): \E[Pnp
+-# Pn= Screen number
++wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
++ bel@, use=wy325-w,
++
++# Wyse 370 -- 24 line screen with status line.
+ #
+-# Screen Dimension Report (SDR): \E[Pn1;Pn2r
+-# Pn1= Number of rows available in window
+-# Pn2= Number of columns available in window
++# The terminal may have to be set for 8 data bits and 2 stop
++# bits for the arrow keys to work.
+ #
+-# Cursor Position Report (CPR): \E[Pn1;Pn2R
+-# Pn1= "Y" Position of cursor
+-# Pn2= "X" Position of cursor
++# If you change keyboards the terminal will send different
++# escape sequences.
++# The following definition is for the basic terminal without
++# function keys.
+ #
+-# Request Answer Back (RAB): \E[c
++# <u0> -> enter Tektronix 4010/4014 mode
++# <u1> -> exit Tektronix 4010/4014 mode
++# <u2> -> enter ASCII mode (from any ANSI mode)
++# <u3> -> exit ASCII mode (goto native ANSI mode)
++# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
++# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
+ #
+-# Answer Back Response (ABR): \E[?;*;30;VSV
+-# *= 0 No printer available
+-# *= 2 Printer available
+-# V= Software version number
+-# SV= Software sub version number
+-# (printer-available field not documented in v1)
++# Bug: The <op> capability resets attributes.
++wy370-nk|wyse 370 without function keys,
++ am, ccc, hs, mc5i, mir, msgr, xenl, xon,
++ colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
++ dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
++ dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
++ el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
++ flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8,
++ home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
++ ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
++ ind=\n$<2>,
++ initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw,
++ invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
++ is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
++ is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
++ mc5=\E[5i,
++ oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w,
++ op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
++ rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
++ rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
++ rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
++ rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
++ smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
++ u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
++ u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
+ #
+-# Screen Alignment Aid: \En
++# Function key set for the ASCII (wy-50 compatible) keyboard
++# This is the default 370.
+ #
+-# Bell (lower pitch): \E[x
++wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
++ kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
++ kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
++ knp=\E[U, kpp=\E[V, use=wy370-nk,
+ #
+-# Dial Phone Number: \EPdstring\
+-# string= Phone number to be dialed
++# Function key set for the VT-320 (and wy85) compatible keyboard
+ #
+-# Set Phone Labels: \EPpstring\
+-# string= Label for phone buttons
++wy370-105k|Wyse 370 with 105 key keyboard,
++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
++ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
++ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
++ khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
++ kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
++ use=wy370-nk, use=vt220+keypad,
+ #
+-# Set Clock: \EPchour;minute;second\
++# Function key set for the PC compatible keyboard
+ #
+-# Position Clock: \EPsY;X\
+-# Y= "Y" coordinate
+-# X= "X" coordinate
++wy370-EPC|Wyse 370 with 102 key keyboard,
++ kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
++ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
+ #
+-# Delete Clock: \Epr\
++# Wyse 370 with visual bell.
++wy370-vb|Wyse 370 with visible bell,
++ bel@, use=wy370,
+ #
+-# Programming The Function Buttons: \EPfPn;string\
+-# Pn= Button number (00-06, 18-24)
+-# (kf00-kf06, kf18-kf24)
+-# string= Text to sent on button depression
++# Wyse 370 in 132-column mode.
++wy370-w|Wyse 370 in 132-column mode,
++ cols#132, wsl#132,
++ rs2=\E[35h\E[?3h$<70>, use=wy370,
+ #
+-# The following in version 2 only:
++# Wyse 370 in 132-column mode with visual bell.
++wy370-wvb|Wyse 370 with visible bell 132-columns,
++ flash=\E[30h\E\,\E[30l$<300>, use=wy370-w,
++wy370-rv|Wyse 370 reverse video,
++ rs3=\E[32h\E[?5h, use=wy370,
+ #
+-# Request For Local Directory Data: \EPp12;\
++# Wyse 99gt Tektronix 4010/4014 emulator,
+ #
+-# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
++wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator,
++ am, os,
++ cols#74, lines#35,
++ bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
++ cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
++ cuu1=^K, ff=^L,
++ hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
++ home=^]7`x @\037,
++ hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
++ is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
+ #
+-# Request for Local Directory Data in print format: \EPp13;\
++# Wyse 160 Tektronix 4010/4014 emulator,
+ #
+-# Enable 'Prt on Line' mode: \022 (DC2)
++wy160-tek|Wyse 160 Tektronix 4010/4014 emulator,
++ cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
++ home=^]8`g @\037, use=wy99gt-tek,
+ #
+-# Disable 'Prt on Line' mode: \024 (DC4)
++# Wyse 370 Tektronix 4010/4014 emulator,
+ #
++wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
++ am, os,
++ cols#80, lines#36,
++ bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
++ cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037,
++ cuu1=^K, ff=^L,
++ hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
++ home=^]8g @\037,
++ hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
++ is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K,
++ nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0,
+
+-# 05-Aug-86:
+-# The following Terminfo entry describes functions which are supported by
+-# the AT&T 5430/pt505 terminal software version 2 and later.
+-att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
+- am, xon,
+- cols#80, it#8, lines#24,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
+- cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
+- il=\E[%p1%dL, il1=\E[L, ind=^J,
+- is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
+- kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
+- kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s,
+- kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s,
+- kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s,
+- krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
+- rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
+- rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
+- smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
++# Vendor-supplied Wyse entries end here.
+
+-# The following Terminfo entry describes functions which are supported by
+-# the AT&T 5430/pt505 terminal software version 1.
+-att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
+- lines#24,
+- mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
+-tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
+- lines#22, use=att505,
+ #
+-#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
+-# This cut mark helps make life less painful for people running ncurses tic
+-# on machines with relatively little RAM. The file can be broken in half here
+-# cleanly and compiled in sections -- no `use' references cross this cut
+-# going forward.
++#TITLE: TERMINFO ENTRY WY520
++#DATE: 8/5/93
++# The WY520 terminfo is based on the WY285 entry published on the WYSE
++# BBS with the addition of more function keys and special keys.
+ #
+-
+-#### Ampex (Dialogue)
++# rs1 -> set personality
++# rs2 -> set number of columns
++# rs3 -> set number of lines
++# is1 -> select the proper font
++# is2 -> do the initialization
++# is3 -> If this string is empty then rs3 gets sent.
+ #
+-# Yes, these are the same people who are better-known for making audio- and
+-# videotape. I'm told they are located in Redwood City, CA.
++# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
++# - The BS key is programmed to generate BS in smcup since
++# is2 doesn't seem to work.
++# - Remove and shift/Remove: delete a character
++# - Insert : enter insert mode
++# - Find : delete to end of file
++# - Select : clear a line
++# - F11, F12, F13: send default sequences (not ESC, BS, LF)
++# - F14 : Home key
++# - Bottom status line (host writable line) is used.
++# - smkx,rmkx are removed because this would put the numeric
++# keypad in Dec application mode which doesn't seem to work
++# with SCO applications.
+ #
+-
+-# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
+-# (ampex80: some capabilities merged in from SCO's entry -- esr)
+-ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
+- OTbs, am, bw, ul,
+- cols#80, it#8, lines#24,
+- bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1,
+- ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em,
+- smso=\Ej, smul=\El, tbc=\E3,
+-# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
+-ampex175|ampex d175,
+- am,
+- cols#80, lines#24,
+- bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J,
+- is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+- kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K,
+- rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El,
+-# No backspace key in the main QWERTY cluster. Fortunately, it has a
+-# NEWLINE/PAGE key just above RETURN that sends a strange single-character
+-# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
+-# mode), this key can be used as the erase key; I find I like this. Because
+-# some people and some systems may not, there is another termcap ("ampex175")
+-# that suppresses this little eccentricity by omitting the relevant capability.
+-ampex175-b|ampex d175 using left arrow for erase,
+- kbs=^_, use=ampex175,
+-# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
+-# (ampex210: removed obsolete ":kn#10:" -- esr)
+-ampex210|a210|ampex a210,
+- OTbs, am, hs, xenl,
+- cols#80, it#8, lines#24, xmc#1,
+- cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX,
+- fsl=\E.2, home=^^, ht=^I, ich1=\EQ,
+- if=/usr/share/tabset/std, il1=\EE, invis@,
+- is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H,
+- kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
+- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
+- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^,
+- tsl=\E.0\Eg\E}\Ef, use=adm+sgr,
+-# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
+-# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
+-# and moved the padding to be *after* the caps -- esr)
+-ampex219|ampex-219|amp219|Ampex with Automargins,
+- hs, xenl,
+- cols#80, it#8, lines#24,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
+- clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M,
+- csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
+- cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
+- cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>,
+- el=\E[K$<3>, home=\E[H, ht=^I, ind=^J,
+- is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~,
+- kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+- rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>,
+- rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
+- smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
+-ampex219w|ampex-219w|amp219w|Ampex 132 cols,
+- cols#132, lines#24,
+- bel=^G, cr=^M, cud1=^J, ind=^J,
+- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
+-# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr)
+-ampex232|ampex-232|Ampex Model 232,
+- am,
+- cols#80, lines#24, xmc#1,
+- cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V,
+- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET,
+- flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>,
+- invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L,
+- kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
+- kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
+- kf9=^AI\r, khome=^^, use=adm+sgr,
+-# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr)
+-ampex232w|Ampex Model 232 / 132 columns,
+- cols#132, lines#24,
+- is2=\E\034Eg\El, use=ampex232,
+-
+-#### Ann Arbor (aa)
++wy520|wyse520|wyse 520,
++ am, hs, km, mc5i, mir, xenl, xon,
++ cols#80, it#8, lines#24, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
++ dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
++ ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
++ enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
++ hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
++ il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
++ is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
++ is3=\E>\E(B\E)0\017\E[m, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
++ kel=\E[4~, kent=\EOM, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf20=\E[34~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
++ kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~, khome=\E[26~,
++ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1,
++ lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
++ rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O, rmam=\E[?7l,
++ rmcup=\E[ R, rmir=\E[4l, rmso=\E[m, rmul=\E[24m,
++ rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
++ rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
++ sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
++ smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
++ vpa=\E[%i%p1%dd, use=vt220+keypad,
+ #
+-# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
+-# numbers of function keys. At least some used monitors in portrait mode,
+-# allowing up to 76-character screen heights! They were reachable at:
++# Wyse 520 with 24 data lines and status (terminal status)
++wy520-24|wyse520-24|wyse 520 with 24 data lines,
++ hs@,
++ dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
++ use=wy520,
+ #
+-# Ann Arbor Terminals
+-# 6175 Jackson Road
+-# Ann Arbor, MI 48103
+-# (313)-663-8000
++# Wyse 520 with visual bell.
++wy520-vb|wyse520-vb|wyse 520 with visible bell,
++ flash=\E[30h\E\,\E[30l$<100>, use=wy520,
+ #
+-# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
+-# can't be found on the Web; I fear they're long dead. R.I.P.
++# Wyse 520 in 132-column mode.
++wy520-w|wyse520-w|wyse 520 in 132-column mode,
++ cols#132, wsl#132,
++ dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
++ ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
+ #
+-
+-
+-# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
+-# Highly modified 6/22 by Mike O'Brien.
+-# split out into several for the various screen sizes by dave-yost@rand
+-# Modifications made 3/82 by Mark Horton
+-# Modified by Tom Quarles at UCB for greater efficiency and more diversity
+-# status line moved to top of screen, <flash> removed 5/82
+-# Some unknown person at SCO then hacked the init strings to make them more
+-# efficient.
++# Wyse 520 in 132-column mode with visual bell.
++wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
++ flash=\E[30h\E\,\E[30l$<100>, use=wy520-w,
+ #
+-# assumes the following setup:
+-# A menu: 0000 1010 0001 0000
+-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
+-# C menu: 56 66 0 0 9600 0110 1100
+-# D menu: 0110 1001 1 0
+ #
+-# Briefly, the settings are for the following modes:
+-# (values are for bit set/clear with * indicating our preference
+-# and the value used to test these termcaps)
+-# Note that many of these settings are irrelevent to the terminfo
+-# and are just set to the default mode of the terminal as shipped
+-# by the factory.
++# Wyse 520 emulating a vt420 7 bit mode.
++# The DEL key is programmed to generate BS in is2.
++# With EPC keyboard.
++# - 'End' key will clear till end of line on EPC keyboard
++# - Shift/End : ignored.
++# - Insert : enter insert mode.
++# - Delete : delete a character (have to change interrupt character
++# to CTRL-C: stty intr '^c') for it to work since the
++# Delete key sends 7FH.
++wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
++ kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
++ kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
++ use=wy520,
+ #
+-# A menu: 0000 1010 0001 0000
+-# Block/underline cursor*
+-# blinking/nonblinking cursor*
+-# key click/no key click*
+-# bell/no bell at column 72*
++# Wyse 520 with 24 data lines and status (terminal status)
++# with EPC keyboard.
++wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
++ hs@,
++ dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
++ use=wy520-epc,
+ #
+-# key pad is cursor control*/key pad is numeric
+-# return and line feed/return for <cr> key *
+-# repeat after .5 sec*/no repeat
+-# repeat at 25/15 chars per sec. *
++# Wyse 520 with visual bell.
++wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
++ flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc,
+ #
+-# hold data until pause pressed/process data unless pause pressed*
+-# slow scroll/no slow scroll*
+-# Hold in area/don't hold in area*
+-# functions keys have default*/function keys disabled on powerup
++# Wyse 520 in 132-column mode.
++wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
++ cols#132, wsl#132,
++ dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
++ ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
+ #
+-# show/don't show position of cursor during page transmit*
+-# unused
+-# unused
+-# unused
++# Wyse 520 in 132-column mode with visual bell.
++wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
++ flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w,
+ #
+-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
+-# Baud rate (9600*)
++# Wyse 520 in 80-column, 36 lines
++wy520-36|wyse520-36|wyse 520 with 36 data lines,
++ hs@,
++ lines#36,
++ dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
++ use=wy520,
+ #
+-# 2 bits of parity - 00=odd,01=even*,10=space,11=mark
+-# 1 stop bit*/2 stop bits
+-# parity error detection off*/on
++# Wyse 520 in 80-column, 48 lines
++wy520-48|wyse520-48|wyse 520 with 48 data lines,
++ hs@,
++ lines#48,
++ dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
++ use=wy520,
+ #
+-# keyboard local/on line*
+-# half/full duplex*
+-# disable/do not disable keyboard after data transmission*
++# Wyse 520 in 132-column, 36 lines
++wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
++ cols#132, wsl#132,
++ rs2=\E[?3h,
++ rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
++ use=wy520-36,
+ #
+-# transmit entire page/stop transmission at cursor*
+-# transfer/do not transfer protected characters*
+-# transmit all characters/transmit only selected characters*
+-# transmit all selected areas/transmit only 1 selected area*
++# Wyse 520 in 132-column, 48 lines
++wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
++ cols#132, wsl#132,
++ rs2=\E[?3h,
++ rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
++ use=wy520-48,
+ #
+-# transmit/do not transmit line separators to host*
+-# transmit/do not transmit page tab stops tabs to host*
+-# transmit/do not transmit column tab stop tabs to host*
+-# transmit/do not transmit graphics control (underline,inverse..)*
+ #
+-# enable*/disable auto XON/XOFF control
+-# require/do not require receipt of a DC1 from host after each LF*
+-# pause key acts as a meta key/pause key is pause*
+-# unused
++# Wyse 520 in 80-column, 36 lines with EPC keyboard
++wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
++ hs@,
++ lines#36,
++ dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
++ use=wy520-epc,
+ #
+-# unused
+-# unused
+-# unused
+-# unused
++# Wyse 520 in 80-column, 48 lines with EPC keyboard
++wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
++ hs@,
++ lines#48,
++ dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
++ use=wy520-epc,
+ #
+-# XON character (17*)
+-# XOFF character (19*)
++# Wyse 520 in 132-column, 36 lines with EPC keyboard
++wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
++ cols#132, wsl#132,
++ rs2=\E[?3h,
++ rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
++ use=wy520-36pc,
+ #
+-# C menu: 56 66 0 0 9600 0110 1100
+-# number of lines to print data on (printer) (56*)
++# Wyse 520 in 132-column, 48 lines with EPC keyboard
++wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
++ cols#132, wsl#132,
++ rs2=\E[?3h,
++ rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
++ use=wy520-48pc,
++
++# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
++# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such
++# file and we don't know what <hts> is -- esr)
++wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
++ OTbs, am,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
++ dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J,
++ is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F,
++ kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O,
++ rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
++ smul=^N,
++
++wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
++ is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>,
++ use=wy75,
++
++# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
++wy100q|Wyse 100 for Quotron,
++ OTbs,
++ cols#80, lines#24, xmc#1,
++ cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
++ is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J,
++ kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
++
++#### Kermit terminal emulations
+ #
+-# number of lines on a sheet of paper (printer) (66*)
++# Obsolete Kermit versions may be listed in the section describing obsolete
++# non-ANSI terminal emulators later in the file.
+ #
+-# left margin (printer) (0*)
++
++# KERMIT standard all versions.
++# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
++# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
++# From: greg small <gts@populi.berkeley.edu> 9-25-84
++kermit|standard kermit,
++ OTbs,
++ cols#80, lines#24,
++ clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
++ el=\EK, home=\EH, is2=K0 Standard Kermit 9-25-84\n,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
++kermit-am|standard kermit plus auto-margin,
++ am,
++ is2=K1 Standard Kermit plus Automatic Margins\n,
++ use=kermit,
++# IBMPC Kermit 1.2.
++# Bugs: <ed>, <el>: do not work except at beginning of line! <clear> does
++# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
++# line).
++# From: greg small <gts@populi.berkeley.edu> 8-30-84
++pckermit|pckermit12|UCB IBMPC Kermit 1.2,
++ am,
++ lines#25,
++ clear=\EH\EJ, ed@, el@,
++ is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit,
++# IBMPC Kermit 1.20
++# Cannot use line 25, now acts funny like ansi special scrolling region.
++# Initialization must escape from that region by cursor position to line 24.
++# Cannot use character insert because 1.20 goes crazy if insert at col 80.
++# Does not use :am: because autowrap is lost when kermit dropped and restarted.
++# From: greg small <gts@populi.berkeley.edu> 12-19-84
++pckermit120|UCB IBMPC Kermit 1.20,
++ it#8, lines#24,
++ cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
++ il1=\EL,
++ is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n,
++ rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
++# MS-DOS Kermit 2.27 for the IBMPC
++# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
++# Cannot use line 25, now acts funny like ansi special scrolling region.
++# Initialization must escape from that region by cursor position to line 24.
++# Does not use am: because autowrap is lost when kermit dropped and restarted.
++# Reverse video for standout like H19.
++# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
++# From: greg small <gts@populi.berkeley.edu> 3-17-85
++msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC,
++ OTbs, am@,
++ cols#80, it#8, lines#24,
++ clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
++ cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK,
++ home=\EH, ht=^I, il1=\EL,
++ is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek,
++ rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep,
++# MS-DOS Kermit 2.27 with automatic margins
++# From: greg small <gts@populi.berkeley.edu> 3-17-85
++msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins,
++ am,
++ cvvis=\EO\Eq\EG\EvK5,
++ is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n,
++ use=msk227,
++# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
++# Automatic margins now default. Use ansi <sgr> for highlights.
++# Define function keys.
++# (msk22714: removed obsolete ":kn#10:" -- esr)
++# From: greg small <gts@populi.berkeley.edu> 3-17-85
++msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
++ am,
++ bold=\E[1m, cvvis=\EO\Eq\EG\EvK6,
++ is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n,
++ kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6,
++ kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227,
++# This was designed for a VT320 emulator, but it is probably a good start
++# at support for the VT320 itself.
++# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
++# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
++vt320-k3|MS-Kermit 3.00's vt320 emulation,
++ am, eslok, hs, km, mir, msgr, xenl,
++ cols#80, it#8, lines#49, pb#9600, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
++ fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is2=\E>\E F\E[?1h\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
++ kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8,
++ rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
++ rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~,
++ sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd,
++# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
++# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
++# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
++vt320-k311|dec vt320 series as defined by kermit 3.11,
++ am, eslok, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[;H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
++ flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
++ lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
++ rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
++ rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
++ smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
++
++######## NON-ANSI TERMINAL EMULATIONS
+ #
+-# number of pad chars on new line to printer (0*)
++
++#### Avatar
+ #
+-# printer baud rate (9600*)
++# These entries attempt to describe Avatar, a terminal emulation used with
++# MS-DOS bulletin-board systems. It was designed to give ANSI-like
++# capabilities, but with cheaper (shorter) control sequences. Messy design,
++# excessively dependent on PC idiosyncracies, but apparently rather popular
++# in the BBS world.
+ #
+-# printer parity: 00=odd,01=even*,10=space,11=mark
+-# printer stop bits: 2*/1
+-# print/do not print guarded areas*
++# No color support. Avatar doesn't fit either of the Tektronix or HP color
++# models that terminfo knows about. An Avatar color attribute is the
++# low 7 bits of the IBM-PC display-memory attribute. Bletch.
+ #
+-# new line is: 01=LF,10=CR,11=CRLF*
+-# unused
+-# unused
++# I wrote these entries while looking at the Avatar spec. I don't have
++# the facilities to test them. Let me know if they work, or don't.
+ #
+-# D menu: 0110 1001 1 0
+-# LF is newline/LF is down one line, same column*
+-# wrap to preceding line if move left from col 1*/don't wrap
+-# wrap to next line if move right from col 80*/don't wrap
+-# backspace is/is not destructive*
++# Avatar escapes not used by these entries (because maybe you're smarter
++# and more motivated than I am and can figure out how to wrap terminfo
++# around some of them, and because they are weird enough to be funny):
++# level 0:
++# ^L -- clear window/reset current attribute to default
++# ^V^A%p1%c -- set current color attribute, parameter decodes as follows:
+ #
+-# display*/ignore DEL character
+-# display will not/will scroll*
+-# page/column tab stops*
+-# erase everything*/erase unprotected only
++# bit: 6 5 4 3 2 1 0
++# | | | | |
++# +---+---+ | +---+---+
++# | | |
++# | | foreground color
++# | foreground intensity
++# background color
++# level 0+:
++# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines
++# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines
++# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1
++# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1
++# (^V^L and ^V^M set the current attribute as a side-effect.)
++# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes
++# in the pattern, <c> the number of times the pattern
++# should be repeated. If either value is 0, no-op.
++# The pattern can contain Avatar console codes,
++# including other ^V ^Y patterns.
++# level 1:
++# ^V^O -- clockwise mode on; turn print direction right each time you
++# hit a window edge (yes, really). Turned off by CR
++# ^V^P -- no-op
++# ^V^Q%c -- query the driver
++# ^V^R -- driver reset
++# ^V^S -- Sound tone (PC-specific)
++# ^V^T -- change highlight at current cursor poition to %c
++# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b>
++# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
++# -- define window
+ #
+-# editing extent: 0=display,1=line*,2=field,3=area
++# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
++# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
++# tell ncurses that the corresponding highlights exist; it should use <sgr>,
++# which is the only method that will actually work for multiple highlights.)
+ #
+-# unused
++# Update by TD - 2004: half of this was inconsistent. Found documentation
++# and repaired most of the damage. sgr0 is probably incorrect, but the
++# available documentation gives no clues for a workable string.
++avatar0|avatar terminal emulator level 0,
++ am, bce, msgr,
++ cols#80, it#8, lines#25,
++ blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
++ cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
++ ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap,
++ rmacs@, rs2=^L,
++ sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;,
++ sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A,
++ use=klone+acs,
++# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
++avatar0+|avatar terminal emulator level 0+,
++ dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
++# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
++avatar|avatar1|avatar terminal emulator level 1,
++ civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
++ rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
++
++#### RBcomm
+ #
++# RBComm is a lean and mean terminal emulator written by the Interrupt List
++# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
++# '90s), especially in the BBS world, and still has some loyal users due to
++# its very small memory footprint and to a cute macro language.
++rbcomm|IBM PC with RBcomm and EMACS keybindings,
++ am, bw, mir, msgr, xenl,
++ cols#80, it#8, lines#25,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=^C, cuf1=^B,
++ cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
++ dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
++ il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
++ is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
++ kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
++ rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
++ rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
++ rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
++ smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
++rbcomm-nam|IBM PC with RBcomm without autowrap,
++ am@,
++ bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
++ is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
++ kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
++rbcomm-w|IBM PC with RBcomm in 132 column mode,
++ cols#132,
++ bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
++ is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
++ kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
+
+-annarbor4080|aa4080|ann arbor 4080,
+- OTbs, am,
+- cols#80, lines#40,
+- bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_,
+- cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c,
+- cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H,
+- kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P,
++######## LCD DISPLAYS
++#
+
+-# Strange Ann Arbor terminal from BRL
+-aas1901|Ann Arbor K4080 w/S1901 mod,
+- am,
+- cols#80, lines#40,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N,
+- home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c,
+- nel=^M^J,
++#### Matrix Orbital
++# from: Eric Z. Ayers (eric@ale.org)
++#
++# Matrix Orbital 20x4 LCD display
++# Command Character is 0xFE (decimal 254, octal 376)
++#
++# On this device, cursor addressability isn't possible. The LCD expects:
++# 0xfe G <col> <row>
++# for cup: %p1 == row and %p2 is column
++#
++# This line:
++# cup=\376G%p2%c%p1%c
++# LOOKS like it will work, but sometimes only one of the two numbers is sent.
++# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
++#
++# Alas, there is no cursor upline capability on this display.
++#
++# These entries add some 'sanity stuff' to the clear function. That is, it
++# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
++# and turns off the cursor blinking and stuff like that.
++#
++# NOTE: calling 'beep' turns on the backlight (bell)
++# NOTE: calling 'flash' turns it on and back off (visual bell)
++#
++MtxOrb|Generic Matrix Orbital LCD display,
++ bel=\376B^A, clear=\376X\376C\376R\376K\376T,
++ cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
++ flash=\376B\001$<200>\376F, home=\376H,
++MtxOrb204|20x4 Matrix Orbital LCD display,
++ cols#20, lines#4, use=MtxOrb,
++MtxOrb162|16x2 Matrix Orbital LCD display,
++ cols#16, lines#2, use=MtxOrb,
++# The end
+
+-# If you're using the GNU termcap library, add
+-# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
+-# to these capabilities. This is the nonstandard GNU termcap scrolling
+-# capability, arguments are:
+-# 1. Total number of lines on the screen.
+-# 2. Number of lines above desired scroll region.
+-# 3. Number of lines below (outside of) desired scroll region.
+-# 4. Total number of lines on the screen, the same as the first parameter.
+-# The generic Ann Arbor entry is the only one that uses this.
+-aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
+- OTbs, am, km, mc5i, mir, xon,
+- cols#80, it#8,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
++######## OLDER TERMINAL TYPES
++#
++# This section is devoted to older commercial terminal brands that are now
++# discontinued, but known to be still in use or represented by emulations.
++#
++
++#### AT&T (att, tty)
++#
++# This section also includes Teletype-branded VDTs.
++#
++# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
++# Boundless Technologies); for details, see the header comment on the ADDS
++# section.
++#
++# These are AT&T's official terminfo entries. All-caps aliases have been
++# removed.
++#
++att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
++ am, eo, mir, msgr, xon,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+- el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
+- hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
+- il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
+- is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
+- kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
+- kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
+- kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
+- kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
+- kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
+- khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
+- mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
+- rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
+- rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
+- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+- sgr0=\E[m,
+- smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
+- smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- vpa=\E[%p1%{1}%+%dd,
++ el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcbt=\E[Z, kclr=\E[J,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
++ kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
++ kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
++ kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
++ kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
++ kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
++ rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
++ smso=\E[7m,
++att2350|AT&T 2350 Video Information Terminal 80 column mode,
++ mc0@, mc4@, mc5@, use=att2300,
+
+-aaa+rv|ann arbor ambassador in reverse video,
+- blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
+- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
+- rs1=\E[H\E[7m\E[J$<156>,
+- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+- sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
+-# Ambassador with the DEC option, for partial vt100 compatibility.
+-aaa+dec|ann arbor ambassador in dec vt100 mode,
+- acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
+- csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
+- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
+- smacs=^O,
+-aaa-18|ann arbor ambassador/18 lines,
+- lines#18,
+- is2=\E7\E[60;0;0;18p\E8,
+- rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
+- use=aaa+unk,
+-aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
+- use=aaa+rv, use=aaa-18,
+-aaa-20|ann arbor ambassador/20 lines,
+- lines#20,
+- is2=\E7\E[60;0;0;20p\E8,
+- rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
+- use=aaa+unk,
+-aaa-22|ann arbor ambassador/22 lines,
+- lines#22,
+- is2=\E7\E[60;0;0;22p\E8,
+- rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
+- use=aaa+unk,
+-aaa-24|ann arbor ambassador/24 lines,
+- lines#24,
+- is2=\E7\E[60;0;0;24p\E8,
+- rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
+- use=aaa+unk,
+-aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
+- use=aaa+rv, use=aaa-24,
+-aaa-26|ann arbor ambassador/26 lines,
+- lines#26,
+- is2=\E7\E[60;0;0;26p\E8,
+- rmcup=\E[60;0;0;26p\E[26;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
+-aaa-28|ann arbor ambassador/28 lines,
+- lines#28,
+- is2=\E7\E[60;0;0;28p\E8,
+- rmcup=\E[60;0;0;28p\E[28;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
+-aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
+- eslok, hs,
+- lines#29,
+- dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
+- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8,
+- rmcup=\E[60;1;0;30p\E[29;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
+- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
+-aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
+- use=aaa+rv, use=aaa-30-s,
+-aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
+- rmcup=\E[60;1;0;30p\E[59;1H\E[K,
+- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
+-aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
+- rmcup=\E[60;1;0;30p\E[59;1H\E[K,
+- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
+-aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
+- lines#30,
+- is2=\E7\E[60;0;0;30p\E8,
+- rmcup=\E[60;0;0;30p\E[30;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
+-aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
+- use=aaa+rv, use=aaa-30,
+-aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
+- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
+- use=aaa-30,
+-aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
+- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
+- use=aaa+rv, use=aaa-30,
+-aaa-36|ann arbor ambassador/36 lines,
+- lines#36,
+- is2=\E7\E[60;0;0;36p\E8,
+- rmcup=\E[60;0;0;36p\E[36;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
+-aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
+- use=aaa+rv, use=aaa-36,
+-aaa-40|ann arbor ambassador/40 lines,
+- lines#40,
+- is2=\E7\E[60;0;0;40p\E8,
+- rmcup=\E[60;0;0;40p\E[40;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
+-aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
+- use=aaa+rv, use=aaa-40,
+-aaa-48|ann arbor ambassador/48 lines,
+- lines#48,
+- is2=\E7\E[60;0;0;48p\E8,
+- rmcup=\E[60;0;0;48p\E[48;1H\E[K,
+- smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
+-aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
+- use=aaa+rv, use=aaa-48,
+-aaa-60-s|ann arbor ambassador/59 lines+status,
+- eslok, hs,
+- lines#59,
+- dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
+- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
+- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
+-aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
+- use=aaa+rv, use=aaa-60-s,
+-aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
+- use=aaa+dec, use=aaa+rv, use=aaa-60-s,
+-aaa-60|ann arbor ambassador/60 lines,
+- lines#60,
+- is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
+- use=aaa+unk,
+-aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
+- use=aaa+rv, use=aaa-60,
+-aaa-db|ann arbor ambassador 30/destructive backspace,
+- OTbs@,
+- cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
++# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
++# Seems upward compatible with vt100, plus ins/del line/char.
++# On sgr, the protection parameter is ignored.
++# No check is made to make sure that only 3 parameters are output.
++# standout= reverse + half-intensity = 3 | 5.
++# bold= reverse + underline = 2 | 3.
++# note that half-bright blinking doesn't look different from normal blinking.
++# NOTE:you must program the function keys first, label second!
++# (att4410: a BSD entry has been seen with the following capabilities:
++# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>,
++# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr)
++att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
++ am, hs, mir, msgr, xon,
++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
++ acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
++ dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
++ ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0,
++ is3=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW,
++ kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
++ kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
++ ll=\E[24H, nel=^M^J,
++ pfx=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s,
++ pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
++ rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
++ sc=\E7,
++ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
++ tsl=\E7\E[25;%p1%{1}%+%dH,
+
+-guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
+- lines#33,
+- flash=\E[>59h$<100>\E[>59l,
+- is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
+- rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
+-guru+rv|guru changes for reverse video,
+- flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
+-guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
+- use=guru+rv, use=guru-33,
+-guru+s|guru status line,
+- eslok, hs,
+- dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l,
+- rmcup=\E[255;1p\E[255;1H\E[K, smcup=,
+- tsl=\E[>51h\E[1;%p1%dH\E[2K,
+-guru-nctxt|guru with no saved context,
+- smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
+-guru-s|guru-33-s|ann arbor guru/33 lines+status,
+- lines#32,
+- is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
+- smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+-guru-24|ann arbor guru 24 lines,
+- cols#80, lines#24,
+- is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
+- use=guru+unk,
+-guru-44|ann arbor guru 44 lines,
+- cols#97, lines#44,
+- is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
+- use=guru+unk,
+-guru-44-s|ann arbor guru/44 lines+status,
+- lines#43,
+- is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
+- smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+-guru-76|guru with 76 lines by 89 cols,
+- cols#89, lines#76,
+- is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
+- use=guru+unk,
+-guru-76-s|ann arbor guru/76 lines+status,
+- cols#89, lines#75,
+- is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
+- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+-guru-76-lp|guru-lp|guru with page bigger than line printer,
+- cols#134, lines#76,
+- is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p,
+- use=guru+unk,
+-guru-76-w|guru 76 lines by 178 cols,
+- cols#178, lines#76,
+- is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
+- use=guru+unk,
+-guru-76-w-s|ann arbor guru/76 lines+status+wide,
+- cols#178, lines#75,
+- is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
+- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
+-guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
+- cols#178, lines#76,
+- is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
+- use=guru+unk,
+-aaa-rv-unk|ann arbor unknown type,
+- lh#0, lw#0, nlab#0,
+- blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
+- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
+- rs1=\E[H\E[7m\E[J,
+- sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+- sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
++att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
++ cols#132, wsl#132,
++ is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1,
+
+-#### Applied Digital Data Systems (adds)
+-#
+-# ADDS itself is long gone. ADDS was bought by NCR, and the same group made
+-# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for
+-# terminals was merged again. Then AT&T sold the terminal business to
+-# SunRiver, which later changed its name to Boundless Technologies. The
+-# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
+-# as of early 1995) are at:
+-#
+-# Boundless Technologies
+-# 100 Marcus Boulevard
+-# Hauppauge, NY 11788-3762
+-# Vox: (800)-231-5445
+-# Fax: (516)-342-7378
+-# Web: http://boundless.com
+-#
+-# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
+-# In 1995 Boundless acquired DEC's terminals business.
+-#
++att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2,
++ OTbs,
++ pfx=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s,
++ use=att5410v1,
+
+-# Regent: lowest common denominator, works on all regents.
+-# (regent: renamed ":bc:" to ":le:" -- esr)
+-regent|Adds Regent Series,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z,
+- home=\EY\s\s, ind=^J, ll=^A,
+-# Regent 100 has a bug where if computer sends escape when user is holding
+-# down shift key it gets confused, so we avoid escape.
+-regent100|Adds Regent 100,
+- xmc#1,
+- bel=^G,
+- cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
+- kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r,
+- kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
+- lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
+- sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
+-regent20|Adds Regent 20,
+- bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
+- use=regent,
+-regent25|Adds Regent 25,
+- bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A,
+- use=regent20,
+-regent40|Adds Regent 40,
+- xmc#1,
+- bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r,
+- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
+- kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
+- lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
+- smul=\E0`, use=regent25,
+-regent40+|Adds Regent 40+,
+- is2=\EB, use=regent40,
+-regent60|regent200|Adds Regent 60,
+- dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF,
+- rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV,
+- use=regent40+,
+-# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
+-# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
+-viewpoint|addsviewpoint|adds viewpoint,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
+- cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>,
+- ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
+- kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
+- rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
+-# Some viewpoints have bad ROMs that foo up on ^O
+-screwpoint|adds viewpoint with ^O bug,
+- cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
++att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
++ cols#132, wsl#132,
++ is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
++
++# 5410 in terms of a vt100
++# (v5410: added <rmam>/<smam> based on init string -- esr)
++v5410|att5410 in terms of a vt100,
++ am, mir, msgr, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
++ clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=^J, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
++ dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
++ il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O,
++ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
++ rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
++ use=vt100+fnkeys,
+
+-# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
+-# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs.
+-# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
+-# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
+-# invis=01000100 and %c is the logical or of desired attributes.
+-# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
+-#
+-# Update by TD - 2004:
+-# Adapted from
+-# http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
+ #
+-# COMMANDS ASCII CODE
++# Teletype Model 5420 -- A souped up 5410, with multiple windows,
++# even! the 5420 has three modes: scroll, window or page mode
++# this terminfo should work in scroll or window mode, but doesn't
++# take advantage of any of the differences between them.
+ #
+-# Address, Absolute ESC,=,row,column
+-# Beep BEL
+-# Aux Port Enable ESC,@
+-# Aux Port Disable ESC,A
+-# Backspace BS
+-# Cursor back BS
+-# Cursor down LF
+-# Cursor forward FF
+-# Cursor home RS
+-# Cursor up VT
+-# Cursor supress ETB
+-# Cursor enable CAN
+-# Erase to end of line ESC,T
+-# Erase to end of page ESC,Y
+-# Erase screen SUB
+-# Keyboard lock SI
+-# Keyboard unlock SO
+-# Read current cursor position ESC,?
+-# Set Attribute ESC,0,x (see below for values of x)
+-# Tag bit reset ESC,(
+-# Tag bit set ESC,)
+-# Transparent Print on ESC,3
+-# Transparent Print off ESC,4
++# Has memory below (2 lines!)
++# 3 pages of memory (plus some spare)
++# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>,
++# <hpa>, <hts> would work for these, but these work in both scroll and window
++# mode... Unset insert character so insert mode works
++# <is1> sets 80 column mode,
++# <is2> escape sequence:
++# 1) turn off all fonts
++# 2) function keys off, keyboard lock off, control display off,
++# insert mode off, erasure mode off,
++# 3) full duplex, monitor mode off, send graphics off, nl on lf off
++# 4) reset origin mode
++# 5) set line wraparound
++# 6) exit erasure mode, positional attribute mode, and erasure extent mode
++# 7) clear margins
++# 8) program ENTER to transmit ^J,
++# We use \212 to program the ^J because a bare ^J will get translated by
++# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
++# 1 2 3 4 5 6 7 8
++# <is3> set screen color to black,
++# No representation in terminfo for the delete word key: kdw1=\Ed
++# Key capabilities assume the power-up send sequence...
++# This <rmcup> is not strictly necessary, but it helps maximize
++# memory usefulness: <rmcup=\Ez>,
++# Alternate sgr0: <sgr0=\E[m\EW^O>,
++# Alternate sgr: <sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>,
++# smkx programs the SYS PF keys to send a set sequence.
++# It also sets up labels f1, f2, ..., f8, and sends edit keys.
++# This string causes them to send the strings <kf1>-<kf8>
++# when pressed in SYS PF mode.
++# (att4415: I added <rmam>/<smam> based on the init string -- esr)
++att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
++ OTbs, db, mir, xon,
++ lh#2, lm#78, lw#8, nlab#8, wsl#55,
++ cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
++ cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
++ cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
++ dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
++ flash=\E[?5h$<200>\E[?5l, home=\E[x,
++ hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
++ il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
++ is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212,
++ is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
++ kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd,
++ kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
++ kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
++ kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
++ lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i,
++ mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
++ pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
++ rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
++ rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
++ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
++ tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
++ use=att4410,
++
++att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
++ cols#132, lm#54, wsl#97,
++ is1=\E[?3h$<100>, use=att4415,
++
++att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv,
++ flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415,
++
++att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv,
++ cols#132, lm#54, wsl#97,
++ flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h,
++ use=att4415,
++
++# Note that this mode permits programming USER PF KEYS and labels
++# However, when you program user pf labels you have to reselect
++# user pf keys to make them appear!
++att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels,
++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
++ pfx=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s,
++ pln=\E[%p1%d;0;0;1q%p2%:-16.16s,
++
++att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels,
++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
++ use=att4415,
++
++att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels,
++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
++ use=att4415-rv,
++
++att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels,
++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
++ use=att4415-w,
++
++att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels,
++ kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
++ use=att4415-w-rv,
++
++att5420_2|AT&T 5420 model 2 80 cols,
++ am, db, hs, mir, msgr, xon,
++ cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
++ cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
++ cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J,
++ el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
++ home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ indn=\E[%p1%dE, invis=\E[8m,
++ is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
++ kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
++ kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe,
++ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
++ kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
++ kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
++ lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
++ mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J,
++ pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
++ rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
++ rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
++ sc=\E7,
++ sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
++ smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
++att5420_2-w|AT&T 5420 model 2 in 132 column mode,
++ cols#132,
++ is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
++ use=att5420_2,
++
++att4418|att5418|AT&T 5418 80 cols,
++ am, xon,
++ cols#80, lines#24,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD,
++ cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
++ ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J,
++ is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
++ kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
++ kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
++ kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
++ kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
++ kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
++ rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
++ sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
++att4418-w|att5418-w|AT&T 5418 132 cols,
++ cols#132,
++ is1=\E[?3h, use=att5418,
++
++att4420|tty4420|teletype 4420,
++ OTbs, da, db, eo, msgr, ul, xon,
++ cols#80, lines#24, lm#72,
++ bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
++ dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
++ kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
++ kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
++ lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
++ rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
++
++# The following is a terminfo entry for the Teletype 4424
++# asynchronous keyboard-display terminal. It supports
++# the vi editor. The terminal must be set up as follows,
+ #
++# HIGHLIGHT DEFINITION 3-TONE
++# DISPLAY FUNCTION GROUP III
+ #
+-# ATTRIBUTES
++# The second entry below provides limited (a la adm3a)
++# operation under GROUP II.
+ #
+-# Normal @ 0100
+-# Half Intensity A 0101
+-# Blinking B 0102
+-# Half Intensity Blinking C 0103
+-# Reverse Video P 0120
+-# Reverse Video Half Intensity Q 0121
+-# Reverse Video Blinking R 0122
+-# Reverse Video Half Intensity
+-# Blinking S 0123
+-# Underlined ` 0140
+-# Underlined Half Intensity a 0141
+-# Underlined Blinking b 0142
+-# Underlined Half Intensity
+-# Blinking c 0143
+-# Video suppress D 0104
+-vp3a+|viewpoint3a+|adds viewpoint 3a+,
+- am, bw,
+- cols#80, it#8, lines#24,
+- blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M,
+- cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E),
+- ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E),
+- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+- nel=^M^J, rev=\E0P\E), rmso=\E(,
+- sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
+- sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
+-vp60|viewpoint60|addsvp60|adds viewpoint60,
+- use=regent40,
++# This must be used with DISPLAY FUNCTION GROUP I or III
++# and HIGHLIGHT DEFINITION 3-TONE
++# The terminal has either bold or blink, depending on options
+ #
+-# adds viewpoint 90 - from cornell
+-# Note: emacs sends ei occasionally to insure the terminal is out of
+-# insert mode. This unfortunately puts the viewpoint90 IN insert
+-# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also,
+-# - :ei=:im=: must be present in the termcap translation.)
+-# - <xhp> indicates glitch that attributes stick to location
+-# - <msgr> means it's safe to move in standout mode
+-# - <clear=\EG\Ek>: clears screen and visual attributes without affecting
+-# the status line
+-# Function key and label capabilities merged in from SCO.
+-vp90|viewpoint90|adds viewpoint 90,
+- OTbs, bw, msgr, xhp,
+- cols#80, lines#24,
+- clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE,
+- dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I,
+- ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J,
+- kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
+- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
+- kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2,
+- lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
+- lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
+- sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
+-# Note: if return acts weird on a980, check internal switch #2
+-# on the top chip on the CONTROL pc board.
+-adds980|a980|adds consul 980,
+- OTbs, am,
++# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
++att4424|tty4424|teletype 4424,
++ OTbs, am, xon,
+ cols#80, lines#24,
+- bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d,
+- dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1,
+- kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
+- kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
++ dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
++ ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h,
++ kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++ khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
++ rmul=\EZ,
++ sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m,
++ sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
++ tbc=\EF,
+
+-#### C. Itoh Electronics
++att4424-1|tty4424-1|teletype 4424 in display function group I,
++ kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
++ use=att4424,
++
++# This entry is not one of AT&T's official ones, it was translated from the
++# 4.4BSD termcap file. The highlight strings are different from att4424.
++# I have no idea why this is -- older firmware version, maybe?
++# The following two lines are the comment originally attached to the entry:
++# This entry appears to avoid the top line - I have no idea why.
++# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
++att4424m|tty4424m|teletype 4424M,
++ am, da, db, mir,
++ cols#80, it#8, lines#23,
++ bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
++ dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>,
++ is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
++ kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++
++# The Teletype 5425 is really version 2 of the Teletype 5420. It
++# is quite similar, except for some minor differences. No page
++# mode, for example, so all of the <cup> sequences used above have
++# to change back to what's being used for the 5410. Many of the
++# option settings have changed their numbering as well.
+ #
+-# As of 1995 these people no longer make terminals (they're still in the
+-# printer business). Their terminals were all clones of the DEC VT series.
+-# They're located in Orange County, CA.
++# This has been tested on a preliminary model.
+ #
+-
+-# CIT 80 - vt-52 emulator, the termcap has been modified to remove
+-# the delay times and do an auto tab set rather than the indirect
+-# file used in vt100.
+-cit80|cit-80|citoh 80,
+- OTbs, am,
+- cols#80, lines#24,
+- clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
+- ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
+-# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
+-# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
+-cit101|citc|C.itoh fast vt100,
+- OTbs, am, xenl,
+- cols#80, lines#24,
+- bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
+- flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
+- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+- smul=\E[4m,
+-# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
+-# The following termcap entry was created from the Callan cd100 entry. The
+-# last two lines (with the capabilities in caps) are used by RM-cobol to allow
+-# full selection of combinations of reverse video, underline, and blink.
+-# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
+-# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
+-# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
+-cit101e|C. Itoh CIT-101e,
+- OTbs, OTpt, am, mir, msgr,
+- cols#80, it#8, lines#24,
+- acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
+- cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH,
+- cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M,
+- ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
+- kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
+- rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
+- smkx=\E=, smso=\E[7m, smul=\E[4m,
+-# From: David S. Lawyer, June 1997:
+-# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
+-# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
+-# late 1980's CIT Terminals went out of business.
+-# There is no need to use the initialization string is=... (by invoking
+-# tset or setterm etc.) provided that the terminal has been manually set
+-# up (and the setup saved with ^S) to be compatible with this termcap. To be
+-# compatible it should be in ANSI mode (not VT52). A set-up that
+-# works is to set all the manually setable stuff to factory defaults
+-# by pressing ^D in set-up mode. Then increse the brighness with the
+-# up-arrow key since the factory default will likely be dim on an old
+-# terminal. Then change any options you want (provided that they are
+-# compatible with the termcap). For my terminal I set: Screen
+-# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
+-# on. I also set up mine for parity (but you may not need it). Then
+-# save the setup with ^S.
+-# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
+-cit101e-rv|Citoh CIT-101e (sets reverse video),
+- am, eo, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24,
+- OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M,
++# (att5425: added <rmam>/<smam> based on the init string -- esr)
++att5425|tty5425|att4425|AT&T 4425/5425,
++ am, da, db, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
++ clear=\E[H\E[J, cnorm=\E[12;0j, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
+- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+- is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H,
+- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
+- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l,
+- rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7,
+- sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h,
+- smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR,
+- u7=\E[6n, u8=\E[?6c, u9=\E[c,
+-cit101e-n|CIT-101e w/o am,
+- am@,
+- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
+- use=cit101e,
+-cit101e-132|CIT-101e with 132 cols,
+- cols#132,
+- kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
+-cit101e-n132|CIT-101e with 132 cols w/o am,
+- am@,
+- cols#132,
+- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
+- use=cit101e,
+-# CIE Terminals CIT-500 from BRL
+-# The following SET-UP modes are assumed for normal operation:
+-# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF
+-# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES
+-# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF
+-# Other SET-UP modes may be set for operator convenience or communication
+-# requirements.
+-# Hardware tabs are assumed to be set every 8 columns; they can be set up
+-# by the "reset", "tset", or "tabs" utilities. No delays are specified; use
+-# "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# (cit500: I added <rmam>/<smam> based on the init string -- esr)
+-cit500|CIE Terminals CIT-500,
+- OTbs, OTpt, mir, msgr, xon,
+- OTkn#10, cols#80, it#8, lines#64, vt#3,
+- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
+- ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
+- kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
+- khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
+- lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
+- lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
+- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
+- rmso=\E[m, rmul=\E[m,
+- rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
+- sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
++ el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
++ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
++ hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
++ invis=\E[8m, is1=\E<\E[?3l$<100>,
++ is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212,
++ is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
++ kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
++ kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
++ kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
++ kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
++ nel=^M^J,
++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
++ rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
++ rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
++ rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
++ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
++ vpa=\E[%p1%{1}%+%dd,
+
+-# C. Itoh printers begin here
+-citoh|ci8510|8510|c.itoh 8510a,
+- cols#80, it#8,
+- bold=\E!, cub1@,
+- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
+- rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY,
+- smul=\EX, use=lpr,
+-citoh-pica|citoh in pica,
+- is1=\EN, use=citoh,
+-citoh-elite|citoh in elite,
+- cols#96,
+- is1=\EE,
+- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
+- use=citoh,
+-citoh-comp|citoh in compressed,
+- cols#136,
+- is1=\EQ,
+- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129.,
+- use=citoh,
+-# citoh has infinite cols because we don't want lp ever inserting \n\t**.
+-citoh-prop|citoh-ps|ips|citoh in proportional spacing mode,
+- cols#32767,
+- is1=\EP, use=citoh,
+-citoh-6lpi|citoh in 6 lines per inch mode,
+- is3=\EA, use=citoh,
+-citoh-8lpi|citoh in 8 lines per inch mode,
+- lines#88,
+- is3=\EB, use=citoh,
++att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
++ smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
+
+-#### Control Data (cdc)
+-#
++att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
++ cols#132, lm#54, wsl#97,
++ is1=\E[?3h$<100>, use=tty5425,
+
+-cdc456|cdc 456 terminal,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
+- el=^V, home=^Y, il1=\EL, ind=^J,
++# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
++# I also added <rmam>/<smam> -- esr)
++att4426|tty4426|teletype 4426S,
++ am, da, db, xon,
++ cols#80, lines#24, lm#48,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
++ cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EP,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
++ hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
++ il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
++ is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO,
++ kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
++ kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H,
++ nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT,
++ rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
++ rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0,
++ smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%p1%dd,
+
+-# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
+-cdc721|CDC Viking,
+- OTbs, am,
+- cols#80, lines#24,
+- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
+- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
+- kcuu1=^W, khome=^Y,
+-cdc721ll|CDC Vikingll,
+- OTbs, am,
+- cols#132, lines#24,
+- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
+- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
+- kcuu1=^W, khome=^Y,
+-# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out
+-cdc752|CDC 752,
+- OTbs, am, bw, xhp,
+- cols#80, lines#24,
+- bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V,
+- home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1 \030\002\003\017,
+-# CDC 756
+-# The following switch/key settings are assumed for normal operation:
+-# 96 chars SCROLL FULL duplex not BLOCK
+-# Other switches may be set according to communication requirements.
+-# Insert/delete-character cannot be used, as the whole display is affected.
+-# "so" & "se" are commented out until jove handles "sg" correctly.
+-cdc756|CDC 756,
+- OTbs, am, bw,
+- OTkn#10, cols#80, lines#24,
+- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z,
+- dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J,
+- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI,
+- kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED,
+- kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y,
+- khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4,
+- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z,
+- rs1=\031\030\002\003\017,
+-#
+-# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
+-#
+-# Part of the long initialization string defines the "DOWN" key to the left
+-# of the tab key to send an ESC. The real ESC key is positioned way out
+-# in right field.
+-#
+-# The termcap won't work in 132 column mode due to the way it it moves the
+-# cursor. Termcap doesn't have the capability (as far as I could tell) to
+-# handle the 721 in 132 column mode.
++# Terminfo entry for the AT&T 510 A Personal Terminal
++# Function keys 9 - 16 are available only after the
++# screen labeled (soft keys/action blocks) are labeled. Function key
++# 9 corresponds to the leftmost touch target on the screen,
++# function key 16 corresponds to the rightmost.
+ #
+-# (cdc721: changed :ri: to :sr: -- esr)
+-cdc721-esc|Control Data 721,
+- OTbs, OTpt, am, bw, msgr, xon,
+- OTkn#10, cols#80, it#8, lines#30,
+- bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z,
+- cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W,
+- dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW,
+- ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[,
+- is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o,
+- kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q,
+- kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x,
+- kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D,
+- ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^],
+- sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk,
+- smso=^^D, smul=^\, tbc=^^^RY,
++# This entry is based on one done by Ernie Rice at Summit, NJ and
++# changed by Anne Gallup, Skokie, IL, ttrdc!anne
++att510a|bct510a|AT&T 510A Personal Terminal,
++ am, mir, msgr, xenl, xon,
++ cols#80, lh#2, lines#24, lw#7, nlab#8,
++ acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
++ civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
++ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
++ el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
++ hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l,
++ is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
++ kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
++ kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
++ kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
++ mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
++ pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
++ rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
++ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g,
+
+-#### Getronics
+-#
+-# Getronics is a Dutch electronics company that at one time was called
+-# `Geveke' and made async terminals; but (according to the company itself!)
+-# they've lost all their documentation on the command set. The hardware
+-# documentation suggests the terminals were actually manufactured by a
+-# Taiwanese electronics company named Cal-Comp. There are known
+-# to have been at least two models, the 33 and the 50.
++# Terminfo entry for the AT&T 510 D Personal Terminal
++# Function keys 9 through 16 are accessed by bringing up the
++# system blocks.
++# Function key 9 corresponds to the leftmost touch target on the screen,
++# function key 16 corresponds to the rightmost.
+ #
++# There are problems with soft key labeling. These are due to
++# strangenesses in the native terminal that are impossible to
++# describe in a terminfo.
++att510d|bct510d|AT&T 510D Personal Terminal,
++ am, da, db, mir, msgr, xenl, xon,
++ cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
++ acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
++ clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
++ el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
++ hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
++ invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212,
++ kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd,
++ kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi,
++ kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf,
++ kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2,
++ mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
++ pln=\E[%p1%dp%p2%:-16s, rc=\E8,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
++ rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|,
++ rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|,
++ rs2=\E[5;0|, sc=\E7,
++ sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
++ smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
++ smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
+
+-# The 50 seems to be a top end vt220 clone, with the addition of a higher
+-# screen resolution, a larger screen, at least 1 page of memory above and
+-# below the screen, apparently pages of memory right and left of the screen
+-# which can be panned, and about 75 function keys (15 function keys x normal,
+-# shift, control, func A, func B). It also has more setup possibilities than
+-# the vt220. The monitor case is dated November 1978 and the keyboard case is
+-# May 1982.
+-#
+-# The vt100 emulation works as is. The entry below describes the rather
+-# non-conformant (but more featureful) ANSI mode.
+-#
+-# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
+-visa50|geveke visa 50 terminal in ansi 80 character mode,
+- bw, mir, msgr,
+- cols#80, lines#25,
+- acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
+- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
++att500|att513|AT&T 513 using page mode,
++ am, chts, mir, msgr, xenl, xon,
++ cols#80, lh#2, lines#24, lw#8, nlab#8,
++ acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
++ clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M,
++ csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H,
+- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
+- is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
+- ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
+- kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
+- kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
+- kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
+- kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
+- lf3=A insert line, lf4=A delete line, lf5=A clear,
+- lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
+- lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
+- rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
+- smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
+- vpa=\E[%i%p1%dd,
+-
+-#### Human Designed Systems (Concept)
+-#
+-# Human Designed Systems
+-# 400 Fehley Drive
+-# King of Prussia, PA 19406
+-# Vox: (610)-277-8300
+-# Fax: (610)-275-5739
+-# Net: support@hds.com
+-#
+-# John Martin <john@hds.com> is their termcap expert. They're mostly out of
+-# the character-terminal business now (1995) and making X terminals. In
+-# particular, the whole `Concept' line described here was discontinued long
+-# ago.
+-#
+-
+-# From: <vax135!hpk> Sat Jun 27 07:41:20 1981
+-# Extensive changes to c108 by arpavax:eric Feb 1982
+-# Some unknown person at SCO then translated it to terminfo.
+-#
+-# There seem to be a number of different versions of the C108 PROMS
+-# (with bug fixes in its Z-80 program).
+-#
+-# The first one that we had would lock out the keyboard of you
+-# sent lots of short lines (like /usr/dict/words) at 9600 baud.
+-# Try that on your C108 and see if it sends a ^S when you type it.
+-# If so, you have an old version of the PROMs.
+-#
+-# You should configure the C108 to send ^S/^Q before running this.
+-# It is much faster (at 9600 baud) than the c100 because the delays
+-# are not fixed.
+-# new status line display entries for c108-8p:
+-# <is3> - init str #3 - setup term for status display -
+-# set programmer mode, select window 2, define window at last
+-# line of memory, set bkgnd stat mesg there, select window 0.
+-#
+-# <tsl> - to status line - select window 2, home cursor, erase to
+-# end-of-window, 1/2 bright on, goto(line#0, col#?)
+-#
+-# <fsl> - from status line - 1/2 bright off, select window 0
+-#
+-# <dsl> - disable status display - set bkgnd status mesg with
+-# illegal window #
+-#
+-# There are probably more function keys that should be added but
+-# I don't know what they are.
+-#
+-# No delays needed on c108 because of ^S/^Q handshaking
+-#
+-c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
+- is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n,
+- rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p,
+-c108-4p|concept108-4p|concept 108 w/4 pages,
+- OTbs, eslok, hs, xon,
+- pb@,
+- acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M,
+- cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c,
+- cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
+- ind=^J, is1=\EK\E!\E F,
+- is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n,
+- rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!,
+- smcup=\EU\Ev 8p\Ep\r\E\025,
+- tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
+-c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
+- rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r,
+- use=c108-rv-4p,
+-c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
+- flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
+- use=c108-4p,
+-c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
+- cols#132,
+- is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n,
+- smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p,
++ cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
++ hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ indn=\E[%p1%dE, invis=\E[8m,
++ is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
++ kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
++ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
++ kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
++ kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
++ kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
++ kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
++ kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
++ kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
++ kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
++ khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
++ kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
++ kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
++ kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
++ ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2,
++ mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i,
++ nel=\EE,
++ pfkey=\E[%p1%d;%p2%l%d;3;0p F%p1%d %p2%s,
++ pfloc=\E[%p1%d;%p2%l%d;2;0p F%p1%d %p2%s,
++ pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s,
++ pln=\E[%p1%dp%p2%:-16s, rc=\E8,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
++ rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
++ rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
++ rmul=\E[m,
++ rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
++ rs2=\E[5;0|, sc=\E7,
++ sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smir=\E[4h,
++ smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
++ smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
+
+-# Concept 100:
+-# These have only window relative cursor addressing, not screen
+-# relative. To get it to work right here, smcup/rmcup (which
+-# were invented for the concept) lock you into a one page
+-# window for screen style programs.
+-#
+-# To get out of the one page window, we use a clever trick:
+-# we set the window size to zero ("\Ev " in rmcup) which the
+-# terminal recognizes as an error and resets the window to all
+-# of memory.
+-#
+-# This trick works on c100 but does not on c108, sigh.
+-#
+-# Some tty drivers use cr3 for concept, others use nl3, hence
+-# the delays on cr and ind below. This padding is only needed at
+-# 9600 baud and up. One or the other is commented out depending on
+-# local conventions.
+-#
+-# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe
+-# less than 6 but more than 2 will work.
+-#
+-# Note: can't use function keys f7-f10 because they are
+-# indistinguishable from arrow keys (!), also, del char and
+-# clear eol use xon/xoff so they probably won't work very well.
+-#
+-# Also note that we don't define insrt/del char/delline/eop/send
+-# because they don't transmit unless we reset them - I figured
+-# it was a bad idea to clobber their definitions.
+-#
+-# The <mc5> sequence changes the escape character to ^^ so that
+-# escapes will be passed through to the printer. Only trouble
+-# is that ^^ won't be - ^^ was chosen to be unlikely.
+-# Unfortunately, if you're sending raster bits through to be
+-# plotted, any character you choose will be likely, so we lose.
+-#
+-# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
+-# cannot be # in is2 because it will hang a c100 with no printer
+-# if sent twice.
+-c100|concept100|concept|c104|c100-4p|hds concept 100,
+- OTbs, am, eo, mir, ul, xenl,
+- cols#80, lines#24, pb#9600, vt#8,
+- bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
+- cub1=^H, cud1=^J, cuf1=\E=,
+- cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;,
+- dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>,
+- ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK,
+- ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>,
+- is1=\EK,
+- is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c,
+- is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
+- kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
+- kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
+- kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
+- khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
+- kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
+- mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
+- rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED,
+- rmcup=\Ev $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex,
+- rmso=\Ed, rmul=\Eg, sgr0=\EN@,
+- smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
+- smso=\ED, smul=\EG,
+-c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
+- cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
+- smso=\EE, use=c100,
+-oc100|oconcept|c100-1p|old 1 page concept 100,
+- in,
+- is3@, use=c100,
++# 01-07-88
++# printer must be set to EMUL ANSI to accept ESC codes
++# <cuu1> stops at top margin
++# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
++# and alt font ascii,wrap on,tabs cleared
++# <is2> disables newline on LF,Emphasized off
++# The <u0> capability sets form length
++att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
++ xhpa, xvpa,
++ bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10,
++ orhi#100, orl#12, orvi#72,
++ cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
++ cr=^M,
++ csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
++ cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM,
++ ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r,
++ lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
++ rshm=\E[m,
++ scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
++ smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds,
++ smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m,
++ u0=\E[%p1%dt, vpa=\E[%p1%dd,
+
+-# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
+-# Lots of notes, originally inline, but ncurses doesn't grok that.
+-#
+-# am: not available in power on mode, but turned on with \E[=107;207h in
+-# is2=. Also, \E=124l in is2= could have been used to prevent needing
+-# to specify xenl:, but that would have rendered the last space on the
+-# last line useless.
+-# bw: Not available in power on mode, but turned on with \E[=107;207h in
+-# is2=.
+-# clear: Could be done with \E[2J alone, except that vi (and probably most
+-# other programs) assume that this also homes the cursor.
+-# dsl: Go to window 2, go to the beginning of the line, use a line feed to
+-# scroll the window, and go back to window 1.
+-# is2: the string may cause a warning to be issued by tic that it
+-# found a very long line and that it suspects that a comma is missing
+-# somewhere. This warning can be ignored (unless it comes up more than
+-# once). The initialization string contains the following commands:
++# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
++# The following SET-UP modes are assumed for normal operation:
++# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL
++# Other SET-UP modes may be set for operator convenience or communication
++# requirements. This termcap description is for the Resident Terminal Mode.
++# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
++# The BRL entry also said: UNSAFE :ll=\E[70H:
++att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
++ am, xon,
++ cols#88, it#8, lines#70, vt#3,
++ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
++ dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
++ home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
++ kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT,
++ rs1=\Ec, sc=\E7,
++
++# 5620 terminfo (2.0 or later ROMS with char attributes)
++# The following SET-UP modes are assumed for normal operation:
++# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR
++# Other SET-UP modes may be set for operator convenience or communication
++# requirements. This termcap description is for Resident Terminal Mode. No
++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
++# assumptions: <ind> (scroll forward one line) is only done at screen bottom
++# Be aware that older versions of the dmd have a firmware bug that affects
++# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
++# <msgr> is from an otherwise inferior BRL for this terminal. That entry
++# also has <ll>=\E[70H commented out and marked unsafe.
++# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
++att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
++ OTbs, am, msgr, npc, xon,
++ cols#88, it#8, lines#70,
++ bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H,
++ cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
++ indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J,
++ pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
++ rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
++ sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
++att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
++ lines#24, use=att5620,
++att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
++ lines#34, use=att5620,
++# 5620 layer running the "S" system's downloaded graphics handler:
++att5620-s|tty5620-s|layer|vitty|5620 S layer,
++ OTbs, OTpt, am,
++ cols#80, it#8, lines#72,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
++ cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
++ el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
++ kll=\E[70;1H,
++
++# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
+ #
+-# [Setup mode items changed from factory defaults:]
+-# \E)0 set alternate character set to
+-# graphics
+-# ^O set character set to default
+-# [In case it wasn't]
+-# \E[m turn off all attributes
+-# [In case they weren't off]
+-# \E[=107; cursor wrap and
+-# 207h character wrap on
+-# \E[90;3u set Fkey definitions to "transmit"
+-# defaults
+-# \E[92;3u set cursor key definitions to
+-# "transmit" defaults
+-# \E[43;1u set shift F13 to transmit...
+-# \177\E$P\177
+-# \E[44;1u set shift F14 to transmit...
+-# \177\E$Q\177
+-# \E[45;1u set shift F15 to transmit...
+-# \177\E$R\177
+-# \E[46;1u set shift F16 to transmit...
+-# \177\E$S\177
+-# \E[200;1u set shift up to transmit...
+-# \177\E$A\177
+-# \E[201;1u set shift down to transmit...
+-# \177\E$B\177
+-# \E[202;1u set shift right to transmit...
+-# \177\E$C\177
+-# \E[203;1u set shift left to transmit...
+-# \177\E$D\177
+-# \E[204;1u set shift home to transmit...
+-# \177\E$H\177
+-# \E[212;1u set backtab to transmit...
+-# \177\E$I\177
+-# \E[213;1u set shift backspace to transmit...
+-# \177\E$^H\177
+-# \E[214;1u set shift del to transmit...
+-# "\E$\177"
+-# [Necessary items not mentioned in setup mode:]
+-# \E[2!w move to window 2
+-# \E[25;25w define window as line 25 of memory
+-# \E[!w move to window 1
+-# \E[2*w show current line of window 2 as
+-# status line
+-# \E[2+x set meta key to use high bit
+-# \E[;3+} move underline to bottom of character
+-#
+-# All Fkeys are set to their default transmit definitions with \E[90;3u
+-# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty
+-# setting MUST be redefined or deactivated, because the default is
+-# contained in almost all of this terminal's Fkey strings! If for some
+-# reason "quit" cannot be altered, the Fkeys can, but it would be
+-# necessary to change ^| to ^] in all of these definitions, and add
+-# \E[2;029!t to is2.
+-# lines: is set to 24 because this terminal refuses to treat the 25th
+-# line normally.
+-# ll: Not available in power on mode, but turned on with \E[=107;207h in
+-# is2=.
+-# lm: Pointless, given that this definition locks a single screen of
+-# memory into view, but what the hey...
+-# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
+-# other attributes alone), but some programs expect this to turn off
+-# everything.
+-# rmul: Could use \E[4!{ to turn off only underline (leaving any other
+-# attributes alone), but some programs expect this to turn off
+-# everything.
+-# sgr: Attributes are set on this terminal with the string \E[ followed by
+-# a list of attribute code numbers (in decimal, separated by
+-# semicolons), followed by the character m. The attribute code
+-# numbers are:
+-# 1 for bold;
+-# 2 for dim (which is ignored in power on mode);
+-# 4 for underline;
+-# 5 for blinking;
+-# 7 for inverse;
+-# 8 for not displayable; and
+-# =99 for protected (except that there are strange side
+-# effects to protected characters which make them inadvisable).
+-# The mapping of terminfo parameters to attributes is as follows:
+-# %p1 (standout) = bold and inverse together;
+-# %p2 (underline) = underline;
+-# %p3 (reverse) = inverse;
+-# %p4 (blink) = blinking;
+-# %p5 (dim) is ignored;
+-# %p6 (bold) = bold;
+-# %p7 (invisible) = not displayable;
+-# %p8 (protected) is ignored; and
+-# %p9 (alt char set) = alt char set.
+-# The code to do this is:
+-# \E[0 OUTPUT \E[0
+-# %?%p1%p6%O IF (standout; bold) OR
+-# %t;1 THEN OUTPUT ;1
+-# %; ENDIF
+-# %?%p2 IF underline
+-# %t;4 THEN OUTPUT ;4
+-# %; ENDIF
+-# %?%p4 IF blink
+-# %t;5 THEN OUTPUT ;5
+-# %; ENDIF
+-# %?%p1%p3%O IF (standout; reverse) OR
+-# %t;7 THEN OUTPUT ;7
+-# %; ENDIF
+-# %?%p7 IF invisible
+-# %t;8 THEN OUTPUT ;8
+-# %; ENDIF
+-# m OUTPUT m
+-# %?%p9 IF altcharset
+-# %t^N THEN OUTPUT ^N
+-# %e^O ELSE OUTPUT ^O
+-# %; ENDIF
+-# sgr0: Everything is turned off (including alternate character set), since
+-# there is no way of knowing what it is that the program wants turned
+-# off.
+-# smul: The "underline" attribute is reconfigurable to an overline or
+-# strikethru, or (as done with \E[;3+} in is2=), to a line at the true
+-# bottom of the character cell. This was done to allow for more readable
+-# underlined characters, and to be able to distinguish between an
+-# underlined space, an underscore, and an underlined underscore.
+-# xenl: Terminal can be configured to not need this, but this "glitch"
+-# behavior is actually preferable with autowrap terminals.
+-#
+-# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
+-# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2
+-# string modifies the 'O' in kf43 to kf46 to a '$'.
+-#
+-# kcbt was originally ^I but redefined in is2=.
+-# kHOM was \E[H originally but redefined in is2=, as were a number of
+-# other keys.
+-# kDC was originally \177 but redefined in is2=.
+-#
+-# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
+-# tsl: Go to window 2, then do an hpa=.
+-#
+-#------- flash=\E[8;3!}^G\E[3;3!}
+-#------- flash=\E[?5h$<100>\E[?5l
+-# There are two ways to flash the screen, both of which have their drawbacks.
+-# The first is to set the bell mode to video, transmit a bell character, and
+-# set the bell mode back - but to what? There is no way of knowing what the
+-# user's old bell setting was before we messed with it. Worse, the command to
+-# set the bell mode also sets the key click volume, and there is no way to say
+-# "leave that alone", or to know what it's set to, either.
+-# The second way to do a flash is to set the screen to inverse video, pad for a
+-# tenth of a second, and set it back - but like before, there's no way to know
+-# that the screen wasn't ALREADY in inverse video, or that the user may prefer
+-# it that way. The point is moot anyway, since vi (and probably other
+-# programs) assume that by defining flash=, you want the computer to use it
+-# INSTEAD of bel=, rather than as a secondary type of signal.
+-#
+-#------- cvvis=\E[+{
+-# The is the power on setting, which is also as visible as the cursor
+-# gets.
+-#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
+-# Windowing is possible, but not defined here because it is also used to
+-# emulate status line functions. Allowing a program to set a window could
+-# clobber the status line or render it unusable. There is additional memory,
+-# but screen scroll functions are destructive and do not make use of it.
+-#
+-#------- dim= Not available in power on mode.
+-# You have a choice of defining low intensity characters as "half bright" and
+-# high intensity as "normal", or defining low as "normal" and high as "bold".
+-# No matter which you choose, only one of either "half bright" or "bold" is
+-# available at any time, so taking the time to override the default is
+-# pointless.
+-#
+-#------- prot=\E[=0;99m
+-# Not defined, because it appears to have some strange side effects.
+-#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
+-#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
+-#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
+-# Available, but making them available to programs is inadvisable.
+-# The code to do this is:
+-# %?%p1%{24}%< IF ((key; 24) <;
+-# %p1%{30}%> ((key; 30) >;
+-# %p1%{54}%< (key; 54) <
+-# %A ) AND
+-# %O ) OR
+-# [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
+-# %t\E[ THEN OUTPUT \E[
+-# %p1%d OUTPUT (key) as decimal
+-# [next line applies to pfx only]
+-# ;1 OUTPUT ;1
+-# u OUTPUT u
+-# \177 OUTPUT \177
+-# %p2%s OUTPUT (string) as string
+-# \177 OUTPUT \177
+-# [DEL chosen as delimiter, but could be any character]
+-# [implied: ELSE do nothing]
+-# %; ENDIF
+-#
+-#------- rs2=
+-# Not defined since anything it might do could be done faster and easier with
+-# either Meta-Shift-Reset or the main power switch.
+-#
+-#------- smkx=\E[1!z
+-#------- rmkx=\E[!z
+-# These sequences apply to the cursor and setup keys only, not to the
+-# numeric keypad. But it doesn't matter anyway, since making these
+-# available to programs is inadvisable.
+-# For the key definitions below, all sequences beginning with \E$ are
+-# custom and programmed into the terminal via is2. \E$ also has no
+-# meaning to any other terminal.
+-#
+-#------- cmdch=\E[;%p1%d!t
+-# Available, but making it available to programs is inadvisable.
+-#------- smxon=\E[1*q
+-# Available, but making it available to programs is inadvisable.
+-# Terminal will send XON/XOFF on buffer overflow.
+-#------- rmxon=\E[*q
+-# Available, but making it available to programs is inadvisable.
+-# Terminal will not notify on buffer overflow.
+-#------- smm=\E[2+x
+-#------- rmm=\E[+x
+-# Available, but making them available to programs is inadvisable.
+-#
+-# Printing:
+-# It's not made clear in the manuals, but based on other ansi/vt type
+-# terminals, it's a good guess that this terminal is capable of both
+-# "transparent print" (which doesn't copy data to the screen, and
+-# therefore needs mc5i: specified to say so) and "auxilliary print"
+-# (which does duplicate printed data on the screen, in which case mc4=
+-# and mc5= should use the \E[?4i and \E[?5i strings instead).
+-
+-hds200|Human Designed Systems HDS200,
+- am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, lm#0,
+- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+- blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
+- clear=\E[H\E[J, cnorm=\E[+{, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
+- fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- invis=\E[0;8m,
+- is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+},
+- kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
+- kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r,
+- kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ,
+- kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r,
+- kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r,
+- kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r,
+- kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r,
+- kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r,
+- kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r,
+- kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r,
+- kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r,
+- kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
+- kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
+- kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
+- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
+- rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
+- rmul=\E[m\017, sc=\E7,
+- sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
+- smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
+- vpa=\E[%i%p1%dd,
+-
+-# <ht> through <el> included to specify padding needed in raw mode.
+-# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
+-avt-ns|concept avt no status line,
+- OTbs, am, eo, mir, ul, xenl, xon,
+- cols#80, it#8, lines#24, lm#192,
+- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
+- dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
+- hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
+- invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
+- is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t,
+- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H,
+- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+- pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
+- prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
+- ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
+- rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
+- sc=\E7,
+- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
+- sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
+- smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
+-avt-rv-ns|concept avt in reverse video mode/no status line,
+- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
+- use=avt-ns,
+-avt-w-ns|concept avt in 132 column mode/no status line,
+- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
+- use=avt-ns,
+-avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
+- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
+- smcup=\E[H\E[1;24;1;132w, use=avt-ns,
+-
+-# Concept AVT with status line. We get the status line using the
+-# "Background status line" feature of the terminal. We swipe the
+-# first line of memory in window 2 for the status line, keeping
+-# 191 lines of memory and 24 screen lines for regular use.
+-# The first line is used instead of the last so that this works
+-# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
+-# assumes an 8 page AVT but lm isn't currently used anywhere.)
+-#
+-avt+s|concept avt status line changes,
+- eslok, hs,
+- lm#191,
+- dsl=\E[0*w, fsl=\E[1;1!w,
+- is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
+- rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
+- tsl=\E[2;1!w\E[;%p1%dH\E[2K,
+-avt|avt-s|concept-avt|avt w/80 columns,
+- use=avt+s, use=avt-ns,
+-avt-rv|avt-rv-s|avt reverse video w/sl,
+- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
+- use=avt+s, use=avt-ns,
+-avt-w|avt-w-s|concept avt 132 cols+status,
+- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
+- use=avt+s, use=avt-ns,
+-avt-w-rv|avt-w-rv-s|avt wide+status+rv,
+- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
+- smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
+-
+-#### Contel Business Systems.
+-#
+-
+-# Contel c300 and c320 terminals.
+-contel300|contel320|c300|Contel Business Systems C-300 or C-320,
+- am, in, xon,
+- cols#80, lines#24, xmc#1,
+- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
+- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
+- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
+- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
+- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
+- rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3,
+-# Contel c301 and c321 terminals.
+-contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321,
+- flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>,
+- use=contel300,
+-
+-#### Data General (dg)
+-#
+-# According to James Carlson <carlson@xylogics.com> writing in January 1995,
+-# the terminals group at Data General was shut down in 1991; all these
+-# terminals have thus been discontinued.
+-#
+-# DG terminals have function keys that respond to the SHIFT and CTRL keys,
+-# e.g., SHIFT-F1 generates a different code from F1. To number the keys
+-# sequentially, first the unmodified key codes are listed as F1 through F15.
+-# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
+-# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
+-# F46 through F60. This is done in the private "includes" below whose names
+-# start with "dgkeys+".
+-#
+-# DG terminals generally support 8 bit characters. For each of these terminals
+-# two descriptions are supplied:
+-# 1) A default description for 8 bits/character communications, which
+-# uses the default DG international character set and keyboard codes.
+-# 2) A description with suffix "-7b" for 7 bits/character communications.
+-# This description must use the NON-DEFAULT native keyboard language.
+-
+-# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
+-# Ctrl/Shift fdkeys (kf34-kf44).
+-
+-dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys,
+- ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z,
+- kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
+- kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z,
+- kf11=\233011z, kf12=\233012z, kf13=\233013z,
+- kf14=\233014z, kf15=\233000z, kf16=\233101z,
+- kf17=\233102z, kf18=\233103z, kf19=\233104z,
+- kf2=\233002z, kf20=\233105z, kf21=\233106z,
+- kf22=\233107z, kf23=\233108z, kf24=\233109z,
+- kf25=\233110z, kf26=\233111z, kf27=\233112z,
+- kf28=\233113z, kf29=\233114z, kf3=\233003z,
+- kf30=\233100z, kf31=\233201z, kf32=\233202z,
+- kf33=\233203z, kf34=\233204z, kf35=\233205z,
+- kf36=\233206z, kf37=\233207z, kf38=\233208z,
+- kf39=\233209z, kf4=\233004z, kf40=\233210z,
+- kf41=\233211z, kf42=\233212z, kf43=\233213z,
+- kf44=\233214z, kf45=\233200z, kf46=\233301z,
+- kf47=\233302z, kf48=\233303z, kf49=\233304z,
+- kf5=\233005z, kf50=\233305z, kf51=\233306z,
+- kf52=\233307z, kf53=\233308z, kf54=\233309z,
+- kf55=\233310z, kf56=\233311z, kf57=\233312z,
+- kf58=\233313z, kf59=\233314z, kf6=\233006z,
+- kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z,
+- khome=\233H, kprt=\233i,
+-
+-dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys,
+- ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z,
+- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z,
+- kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z,
+- kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z,
+- kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z,
+- kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z,
+- kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z,
+- kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z,
+- kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z,
+- kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z,
+- kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z,
+- kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z,
+- kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z,
+- kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z,
+- kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z,
+- kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z,
+- kf9=\E[009z, khome=\E[H, kprt=\E[i,
+-
+-dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
+- kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K,
+- kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c,
+- kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
+- kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
+- kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
+- kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
+- kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
+- kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
+- kf8=^^x, kf9=^^y, khome=^H,
+-
+-dgkeys+15|Private entry describing 15 DG mode special keys,
+- kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^,
+- kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^},
+- kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d,
+- kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
+- kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
+- kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
+- kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
+- kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
+- kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
+- kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
+- kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x,
+- kf9=^^y,
+-
+-# Data General color terminals use the "Tektronix" color model. The total
+-# number of colors varies with the terminal model, as does support for
+-# attributes used in conjunction with color.
+-
+-# Removed u7, u8 definitions since they conflict with tack:
+-# Preserve user-defined colors in at least some cases.
+-# u7=^^Fh,
+-# Default is ACM mode.
+-# u8=^^F}20^^Fi^^F}21,
+-#
+-dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
+- bce,
+- colors#16, ncv#53, pairs#256,
+- op=\036Ad\036Bd,
+- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
+-
+-dg+fixed|Fixed color info for DG D430C terminals in DG mode,
+- use=dgunix+fixed,
+-
+-# Video attributes are coordinated using static variables set by "sgr", then
+-# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
+-# (D=dim, U=underline, B=blink, R=reverse.)
+-dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode,
+- bce,
+- colors#8, ncv#16, pairs#64,
+- op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m,
+- setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+-
+-dg+color|Color info for Data General D470C terminals in ANSI mode,
+- colors#16, ncv#53, pairs#256,
+- setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+- use=dg+color8,
+-
+-dgmode+color8|Color info for Data General D220/D230C terminals in DG mode,
+- bce,
+- colors#8, ncv#16, pairs#64,
+- op=\036Ad\036Bd,
+- setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
+- setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
+- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
+-
+-dgmode+color|Color info for Data General D470C terminals in DG mode,
+- colors#16, pairs#256,
+- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
+- use=dgmode+color8,
+-
+-dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
+- bce, ccc,
+- colors#52, ncv#53, pairs#26,
+- initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X,
+- oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
+- op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
+- scp=\036RG2%p1%02X,
+-
+-# Colors are in the order: normal, reverse, dim, dim + reverse.
+-dg+ccc|Configurable color info for DG D430C terminals in DG mode,
+- bce, ccc,
+- colors#52, ncv#53, pairs#26,
+- initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
+- oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
+- op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
+- scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
+-
+-# The generic DG terminal type (an 8-bit-clean subset of the 6053)
+-# Initialization string 1 sets:
+-# ^R - vertical scrolling enabled
+-# ^C - blinking enabled
+-dg-generic|Generic Data General terminal in DG mode,
+- am, bw, msgr, xon,
+- cols#80, lines#24,
+- bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
+- cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C,
+- mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\,
+- smul=^T, use=dgkeys+11,
+-
+-# According to the 4.4BSD termcap file, the dg200 <cup> should be the
+-# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
+-# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
+-# maybe they were originally nuls (which would fit).
+-
+-dg200|data general dasher 200,
+- OTbs, am, bw,
+- cols#80, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
+- cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J,
+- kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q,
+- kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x,
+- kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U,
+- smso=^^D, smul=^T,
+-
+-# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL
+-dg210|dg-ansi|Data General 210/211,
+- am,
+- cols#80, lines#24,
+- OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m,
+- smso=\E[7;m, smul=\E[4;m,
+-# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
+-# courtesy of Carlos Rucalde of Vantage Software, Inc.
+-# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
+-# I suspect the d200 function keys actually work on the dg211, check it out.)
+-dg211|Data General d211,
+- cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
+- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
+- rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
+-
+-# dg450 from Cornell (not official)
+-dg450|dg6134|data general 6134,
+- cub1@, cuf1=^X, use=dg200,
+-
+-# Not official...
+-# Note: lesser Dasher terminals will not work with vi because vi insists upon
+-# having a command to move straight down from any position on the bottom line
+-# and scroll the screen up, or a direct vertical scroll command. The 460 and
+-# above have both, the D210/211, for instance, has neither. We must use ANSI
+-# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
+-# backspace on all terminals. This is not so in DG mode.
+-# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
+-# grounds that there is no matching ":ml:"
+-# fixed garbled ":k9=\E[00\:z:" capability -- esr)
+-dg460-ansi|Data General Dasher 460 in ANSI-mode,
+- OTbs, am, msgr, ul,
+- cols#80, it#8, lines#24,
+- OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
+- dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+- ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
+- kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
+- kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
+- lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
+- ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
+- smul=\E[4m,
+-# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
+-# Data General 605x
+-# Ought to work for a Model 6242, Type D210 as well as a 605x.
+-# Note that the cursor-down key transmits ^Z. Job control users, beware!
+-# This also matches a posted description of something called a `Dasher 100'
+-# so there's a dg100 alias here.
+-# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
+-dg6053-old|dg100|data general 6053,
+- OTbs, am, bw, ul,
+- cols#80, lines#24,
+- OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z,
+- cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K,
+- home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X,
+- kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v,
+- kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L,
+- rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D,
+- smul=^T,
++# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
++# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
++att605|AT&T 605 80 column 102key keyboard,
++ am, eo, xon,
++ cols#80, lines#24, lw#8, nlab#8, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
++ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
++ il1=\E[L, ind=^J, invis=\E[8m,
++ is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
++ kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
++ kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
++ kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
++ kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
++ kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
++ kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
++ kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
++ kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
++ kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
++ kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
++ kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
++ kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
++ mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
++ rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
++ rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
++ smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
++ tsl=\E7\E[25;%i%p1%dx,
++att605-pc|ATT 605 in pc term mode,
++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
++ cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
++ dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
++ kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
++ kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
++ kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
++ rmsc=\E[50;0|$<400>, smsc=\E[?11l\E[50;1|$<250>,
++ xoffc=g, xonc=e, use=att605,
++att605-w|AT&T 605-w 132 column 102 key keyboard,
++ cols#132, wsl#132,
++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
++ use=att605,
++# (att610: I added <rmam>/<smam> based on the init string. I also
++# added <indn> and <rin> because the BSD file says the att615s have them,
++# and the 615 is like a 610 with a big keyboard, and most of their other
++# smart terminals support the same sequence -- esr)
++att610|AT&T 610; 80 column; 98key keyboard,
++ am, eslok, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ indn=\E[%p1%dS, invis=\E[8m,
++ is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
++ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
++ kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
++ kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
++ kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
++ nel=\EE,
++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
++ ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
++ rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
++att610-w|AT&T 610; 132 column; 98key keyboard,
++ cols#132, wsl#132,
++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
++ use=att610,
+
+-# (Some performance can be gained over the generic DG terminal type)
+-dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053,
+- xon@,
+- home=^P\0\0, ll=^P\0^W, use=dg-generic,
++att610-103k|AT&T 610; 80 column; 103key keyboard,
++ kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
++ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
++ kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
++ kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
++ kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
++ kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
++ kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
++ kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx,
++ khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl,
++ knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V,
++ kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq,
++ krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo,
++ kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610,
++att610-103k-w|AT&T 610; 132 column; 103key keyboard,
++ cols#132, wsl#132,
++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
++ use=att610-103k,
++att615|AT&T 615; 80 column; 98key keyboard,
++ kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
++ kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
++ kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
++ kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
++ kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
++ kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
++ kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610,
++att615-w|AT&T 615; 132 column; 98key keyboard,
++ kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
++ kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
++ kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
++ kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
++ kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
++ kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
++ kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w,
++att615-103k|AT&T 615; 80 column; 103key keyboard,
++ kLFT=\E[ A, kRIT=\E[ @, use=att610-103k,
++att615-103k-w|AT&T 615; 132 column; 103key keyboard,
++ kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w,
++# (att620: I added <rmam>/<smam> based on the init string and
++# <rin>/<indn> from a BSD termcap -- esr)
++att620|AT&T 620; 80 column; 98key keyboard,
++ am, eslok, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ indn=\E[%p1%dS, invis=\E[8m,
++ is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
++ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
++ kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
++ kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
++ kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
++ kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
++ kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
++ kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
++ kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
++ kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
++ kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
++ kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
++ mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
++ pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
++ ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
++ rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
++ rs2=\Ec\E[?3l, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\E)0\016%e\E(B\017%;,
++ sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
++ smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
++ tsl=\E7\E[25;%i%p1%dx,
++att620-w|AT&T 620; 132 column; 98key keyboard,
++ cols#132, wsl#132,
++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
++ use=att620,
++att620-103k|AT&T 620; 80 column; 103key keyboard,
++ kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
++ kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
++ kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
++ kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
++ kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
++ kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
++ kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
++ kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@,
++ kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@,
++ kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@,
++ kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@,
++ kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi,
++ kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
++ kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
++ kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB,
++ ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620,
+
+-# Like 6053, but adds reverse video and more keypad and function keys.
+-d200|d200-dg|Data General DASHER D200,
+- bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^],
+- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;,
+- sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15,
+- use=dg6053,
++att620-103k-w|AT&T 620; 132 column; 103key keyboard,
++ cols#132, wsl#132,
++ is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
++ use=att620-103k,
+
+-# DASHER D210 series terminals in ANSI mode.
+-# Reverse video, no insert/delete character/line, 7 bits/character only.
+-#
+-# Initialization string 1 sets:
+-# <0 - scrolling enabled
+-# <1 - blink enabled
+-# <4 - print characters regardless of attributes
+-d210|d214|Data General DASHER D210 series,
+- am, bw, msgr, xon,
+- cols#80, lines#24,
+- bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M,
++# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
++# The following SETUP modes are assumed for normal operation:
++# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF
++# Font_Size=Large Non-Layers_Window_Cols=80
++# Non-Layers_Window_Rows=60
++# Other SETUP modes may be set for operator convenience or communication
++# requirements. Some capabilities assume a printer attached to the Aux EIA
++# port. This termcap description is for the Fixed Non-Layers Window. No
++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
++# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr)
++att630|AT&T 630 windowing terminal,
++ OTbs, am, da, db, mir, msgr, npc, xon,
++ cols#80, it#8, lines#60, lm#0,
++ bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M,
+ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
+- el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
+- ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
+- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
+- sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
+-
+-# DASHER D210 series terminals in DG mode.
+-# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
+-d210-dg|d214-dg|Data General DASHER D210 series in DG mode,
+- xon,
+- ed=^^FF, use=d200-dg,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
++ el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m,
++ kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M,
++ kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
++ kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy,
++ kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~,
++ kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i,
++ mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
++ rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
++ rmul=\E[m, rs2=\Ec, sc=\E7,
++ sgr=\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%p4%|%t;7%;m,
++ sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
++ lines#24, use=att630,
+
+-# DASHER D211 series terminals in ANSI mode.
+-# Like the D210, but with 8-bit characters and local printer support.
++# This is the att700 entry for 700 native emulation of the AT&T 700
++# terminal. Comments are relative to changes from the 605V2 entry and
++# att730 on which the entry is based. Comments show the terminfo
++# capability name, termcap name, and description.
++#
++# Here is what's going onm in the init string:
++# ESC [ 50;4| set 700 native mode (really is 605)
++# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line)
++# ESC [ 53;0| set GenFlow to Xon/Xoff
++# ESC [ 8 ;0| set CR on NL
++# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h)
++# ESC [ ? 4 l jump scroll
++# ESC [ ? 5 l/h video: normal (l); reverse (h)
++# ESC [ ?13 l Labels on
++# ESC [ ?15 l parity check = no
++# ESC [ 13 l monitor mode off
++# ESC [ 20 l LF on NL (not CRLF on NL)
++# ESC [ ? 7 h autowrap on
++# ESC [ 12 h local echo off
++# ESC ( B GO = ASCII
++# ESC ) 0 G1 = Special Char & Line Drawing
++# ESC [ ? 31 l Set 7 bit controls
++#
++# Note: Most terminals, especially the 600 family use Reverse Video for
++# standout mode. DEC also uses reverse video. The VT100 uses bold in addition
++# Assume we should stay with reverse video for 70.. However, the 605V2 exits
++# standout mode with \E[m (all normal attributes). The 730 entry simply
++# exits reverse video which would leave other current attributes intact. It
++# was assumed the 730 entry to be more correct so rmso has changed. The
++# 605V2 has no sequences to turn individual attributes off, thus its setting
++# and the rmso/smso settings from the 730.
++#
++# Note: For the same reason as above in rmso I changed exit under-score mode
++# to specifically turn off underscore, rather than return to all normal
++# attributes
++#
++# Note: The following pkey_xmit is taken from the 605V2 which contained the
++# capability as pfxl. It was changed here to pfx since pfxl
++# will only compile successfully with Unix 4.0 tic. Also note that pfx only
++# allows strings to be parameters and label values must be programmed as
++# constant strings. Supposedly the pfxl of Version 4.0 allows both labels
++# and strings to be parameters. The 605V2 pfx entry should be examined later
++# in this regard. For reference the 730 pfxl entry is shown here for comparison
++# 730 pfx entry:
++# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
++# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
++#
++# (for 4.0 tic)
++# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
++#
++# (for <4.0 tic)
++# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
+ #
+-# Initialization string 2 sets:
+-# \E[2;1;1;1v
+-# 2;1 - 8 bit operations
+-# 1;1 - 8 bit (international) keyboard language
+-# \E(B - default primary character set (U.S. ASCII)
+-# \E)4 - default secondary character set (international)
+-# ^O - primary character set
++# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
+ #
+-d211|d215|Data General DASHER D211 series,
+- km,
+- is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b,
+- use=d210,
+-
+-# Initialization string 2 sets:
+-# \E[2;0;1;0v
+-# 2;0 - 7 bit operations
+-# 1;0 - 7 bit (native) keyboard language
+-# \E(0 - default character set (the keyboard native language)
+-# ^O - primary character set
+-d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode,
+- km@,
+- is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211,
+-
+-# Like the D210 series, but adds support for 8-bit characters.
++# Port1 Interface
+ #
+-# Reset string 2 sets:
+-# ^^N - secondary character set
+-# ^^FS0> - 8 bit international character set
+-# ^^O - primary character set
+-# ^^FS00 - default character set (matching the native keyboard language)
++# modular 10 pin Connector
++# Left side Right side
++# Pin 1 2 3 4 5 6 7 8 9 10
+ #
+-d211-dg|d215-dg|Data General DASHER D211 series in DG mode,
+- km,
+- rs2=\036N\036FS0>\036O\036FS00, use=d210-dg,
+-
+-d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode,
+- use=d211-dg,
+-
+-# Enhanced DG mode with changes to be more UNIX compatible.
+-d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode,
+- mc5i,
+- it#8,
+- acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI,
+- clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA,
+- el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J,
+- is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd,
+- kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB,
+- kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0,
+- mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00,
+- rs2=\036N\036FS0E\036O\036FS00,
+- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
+- sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11,
+- vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg,
+-d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines,
+- lines#25,
+- is3=\036Fz2, use=d216+,
+-
+-d217-unix|Data General DASHER D217 in DG-UNIX mode,
+- use=d216-unix,
+-d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines,
+- use=d216-unix-25,
+-
+-# DASHER D220 color terminal in ANSI mode.
+-# Like the D470C but with fewer colors and screen editing features.
++# Key (notch) at bottom
+ #
+-# Initialization string 1 sets:
+-# \E[<0;<1;<4l
+-# <0 - scrolling enabled
+-# <1 - blink enabled
+-# <4 - print characters regardless of attributes
+-# \E[m - all attributes off
+-# Reset string 1 sets:
+-# \Ec - initial mode defaults (RIS)
++# Pin 1 DSR
++# 3 DCD
++# 4 DTR
++# 5 Sig Ground
++# 6 RD
++# 7 SD
++# 8 CTS
++# 9 RTS
++# 10 Frame Ground
+ #
+-d220|Data General DASHER D220,
+- mc5i@,
+- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
+- use=dg+color8, use=d470c,
++# The manual is 189 pages and is loaded with details about the escape codes,
++# etc..... Available from AT&T CIC 800-432-6600...
++# ask for Document number 999-300-660..
++#
++att700|AT&T 700 24x80 column display w/102key keyboard,
++ am, eslok, hs, mir, msgr, xenl, xon,
++ cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
++ fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
++ is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017,
++ is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
++ kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
++ kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
++ kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
++ kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
++ kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
++ kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
++ kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
++ kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
++ kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
++ kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
++ mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
++ pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
++ rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
++ smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
++ tsl=\E7\E[99;%i%p1%dx,
+
+-d220-7b|Data General DASHER D220 in 7 bit mode,
+- mc5i@,
+- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
+- use=dg+color8, use=d470c-7b,
++# This entry was modified 3/13/90 by JWE.
++# fixes include additions of <enacs>, correcting <rep>, and modification
++# of <kHOM>. (See comments below)
++# att730 has status line of 80 chars
++# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>,
++# the <kf25> and up keys are used for shifted system Fkeys
++# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
++# currently the same as <khome> (unshifted HOME or \E[H). On the 102, 102+1
++# and 122 key keyboards, the 730's translation is \E[2J. For consistency
++# <kHOM> has been commented out. The user can uncomment <kHOM> if using the
++# 102, 102+1, or 122 key keyboards
++# kHOM=\E[2J,
++# (att730: I added <rmam>/<smam> based on the init string -- esr)
++att730|AT&T 730 windowing terminal,
++ am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
++ cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
++ clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
++ enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
++ home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
++ ind=\ED, invis=\E[8m,
++ is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
++ is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
++ kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
++ kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
++ kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
++ kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
++ kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
++ kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
++ kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
++ kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
++ kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
++ kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
++ kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
++ mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
++ pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq SYS F%p1%:-2d %e;0;3q%;%p2%s,
++ pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
++ pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
++ rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
++ rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7,
++ sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
++ swidm=\E#6, tsl=\E7\E[;%i%p1%dx,
++att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
++ lines#41, use=att730,
++att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
++ lines#24, use=att730,
++att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
++ flash=\E[?5l$<200>\E[?5h,
++ is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B,
++ use=att730,
++att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
++ lines#41, use=att730r,
++att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
++ lines#24, use=att730r,
+
+-# Initialization string 3 sets:
+-# - default cursor (solid rectangle)
+-# Reset string 2 sets:
+-# ^^N - secondary character set
+-# ^^FS0> - 8 bit international character set
+-# ^^O - primary character set
+-# ^^FS00 - default character set (matching the native keyboard language)
++# The following represents the screen layout along with the associated
++# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
++# not appear on the screen but are shown to reference the bezel buttons.
++# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
++# position relative to the screen.
+ #
+-d220-dg|Data General DASHER D220 color terminal in DG mode,
+- mc5i@,
+- dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
+- rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
+- use=d470c-dg,
+-
+-# DASHER D230C color terminal in ANSI mode.
+-# Like the D220 but with minor ANSI compatibility improvements.
+ #
+-d230c|d230|Data General DASHER D230C,
+- blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J,
+- rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m,
+- sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
+- sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m,
+- smul=\E[4;50m, use=dgkeys+7b, use=d220,
+-
+-d230c-dg|d230-dg|Data General DASHER D230C in DG mode,
+- use=d220-dg,
+-
+-# DASHER D400/D450 series terminals.
+-# These add intelligent features like insert/delete to the D200 series.
+ #
+-# Initialization string 2 sets:
+-# ^^FQ2 - default cursor (solid rectangle)
+-# ^^FW - character protection disabled
+-# ^^FJ - normal (80 column) mode
+-# ^^F\^ - horizontal scrolling enabled (for alignment)
+-# ^^FX004? - margins at columns 0 and 79
+-# ^^F] - horizontal scrolling disabled
+-# ^^O - primary character set
+-# ^^FS00 - default character set (the keyboard native language)
+-# - (should reset scrolling regions, but that glitches the screen)
+-# Reset string 1 sets:
+-# ^^FA - all terminal defaults except scroll rate
+-# Reset string 2 sets:
+-# ^^F] - horizontal scrolling disabled
+-# ^^FT0 - jump scrolling
++# +----------------------------------------------------------------+
++# | |
++# XXXX | kf0 kf24 | XXXX
++# | |
++# | |
++# XXXX | kf1 kf23 | XXXX
++# | |
++# | |
++# XXXX | kf2 kf22 | XXXX
++# | |
++# | |
++# XXXX | kf3 kf21 | XXXX
++# | |
++# | |
++# XXXX | kf4 kf20 | XXXX
++# | |
++# | |
++# XXXX | kf5 kf19 | XXXX
++# | |
++# | |
++# XXXX | kf6 kf18 | XXXX
++# | |
++# | |
++# XXXX | | XXXX
++# | |
++# | |
++# +----------------------------------------------------------------+
++#
++# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
+ #
+-d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
+- mc5i,
+- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0,
+- cnorm=\036FQ2, dch1=^^K, dl1=^^FI,
+- enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177,
+- ich1=^^J, il1=^^FH,
+- is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00,
+- ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O,
+- rs1=^^FA, rs2=\036F]\036FT0,
+- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;,
+- sgr0=\017\025\035\036E\036O, smacs=^^N,
+- vpa=\020\177%p1%c, use=d210-dg,
+-
+-# DASHER D410/D460 series terminals in ANSI mode.
+-# These add a large number of intelligent terminal features.
++# Note: XXXX represents the screen buttons
++# CMD REDRAW
+ #
+-# Initialization string 1 sets:
+-# \E[<0;<1;<2;<4l
+-# <0 - scrolling enabled
+-# <1 - blink enabled
+-# <2 - horizontal scrolling enabled (for alignment)
+-# <4 - print characters regardless of attributes
+-# \E[5;0v - normal (80 column) mode
+-# \E[1;1;80w - margins at columns 1 and 80
+-# \E[1;6;<2h
+-# 1 - print all characters even if protected
+-# 6 - character protection disabled
+-# <2 - horizontal scrolling disabled
+-# - (should reset scrolling regions, but that glitches the screen)
++# MAIL
+ #
+-# Initialization string 2 sets:
+-# \E[3;2;2;1;1;1v
+-# 3;2 - default cursor (solid rectangle)
+-# 2;1 - 8 bit operations
+-# 1;1 - international keyboard language
+-# \E(B - default primary character set (U.S. ASCII)
+-# \E)4 - default secondary character set (international)
+-# ^O - primary character set
++# version 1 note:
++# The character string sent by key 'kf26' may be user programmable
++# to send either \E[16s, or \E[26s.
++# The character string sent by key 'krfr' may be user programmable
++# to send either \E[17s, or \E[27s.
+ #
+-# Reset string 1 sets:
+-# \Ec - initial mode defaults (RIS)
+-# \E[<2h - horizontal scrolling disabled
++# Depression of the "CMD" key sends \E! (kcmd)
++# Depression of the "MAIL" key sends \E[26s (kf26)
++# "REDRAW" same as "REFRESH" (krfr)
+ #
+-# Reset string 2 sets:
+-# \E[4;0;2;1;1;1v
+-# 4;0 - jump scrolling
+-# 2;1 - 8 bit operations
+-# 1;1 - 8 bit (international) keyboard language
+-# \E(B - default primary character set (U.S. ASCII)
+-# \E)4 - default secondary character set (international)
++# "kf" functions adds carriage return to output string if terminal is in
++# 'new line' mode.
+ #
+-d410|d411|d460|d461|Data General DASHER D410/D460 series,
+- mc5i,
+- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
+- cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+- is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
+- is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
+- ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
+- rs2=\E[4;0;2;1;1;1v\E(B\E)4,
+- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
+- sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
+-
+-# Initialization string 2 sets:
+-# \E[3;2;2;0;1;0v
+-# 3;2 - default cursor (solid rectangle)
+-# 2;0 - 7 bit operations
+-# 1;0 - 7 bit (native) keyboard language
+-# \E(0 - default character set (the keyboard native language)
+-# ^O - primary character set
++# The following are functions not covered in the table above:
+ #
+-# Reset string 2 sets:
+-# \E[4;0;2;0;1;0v
+-# 4;0 - jump scrolling
+-# 2;0 - 7 bit operations
+-# 1;0 - 7 bit (native) keyboard language
+-# \E(0 - default character set (the keyboard native language)
++# Set keyboard character (SKC): \EPn1;Pn2w
++# Pn1= 0 Back Space key
++# Pn1= 1 Break key
++# Pn2= Program char (hex)
+ #
+-d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode,
+- km@,
+- enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
+- rs2=\E[4;0;2;0;1;0v\E(0,
+- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
+-
+-d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
+- km,
+- enacs@, rmacs=\036FS00,
+- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
+- sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
+- use=d400-dg,
+-
+-# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
++# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
++# Pn1= Window number (1-39)
++# Pn2-Pn5= Y;X;Y;X coordinates
+ #
+-# Initialization string 1 sets:
+-# \E[<0;<1;<2;<4l
+-# <0 - scrolling enabled
+-# <1 - blink enabled
+-# <2 - horizontal scrolling enabled (for alignment)
+-# <4 - print characters regardless of attributes
+-# \E[5;1v - compressed (135 column) mode
+-# \E[1;1;126 - margins at columns 1 and 126
+-# \E[1;6;<2h
+-# 1 - print all characters even if protected
+-# 6 - character protection disabled
+-# <2 - horizontal scrolling disabled
+-# - (should reset scrolling regions, but that glitches the screen)
++# Screen Selection (SSL): \E[Pnu
++# Pn= Window number
+ #
+-# Reset string 1 sets:
+-# \Ec - initial mode defaults (RIS)
+-# \E[5;1v - compressed (135 column) mode
+-# \E[1;1;126w - margins at columns 1 and 126
+-# \E[<2h - horizontal scrolling disabled
++# Set Terminal Modes (SM): \E[Pnh
++# Pn= 3 Graphics mode
++# Pn= > Cursor blink
++# Pn= < Enter new line mode
++# Pn= = Enter reverse insert/replace mode
++# Pn= ? Enter no scroll mode
+ #
+-d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode,
+- cols#126,
+- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
+- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410,
+-
+-d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode,
+- cols#126,
+- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
+- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b,
+-
+-d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode,
+- use=d410-dg,
+-
+-# These add intelligent features like scrolling regions.
+-d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode,
+- civis=\036FQ0, clear=^^FE, cnorm=\036FQ5,
+- cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI,
+- home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH,
+- is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00,
+- ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I,
+- rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10,
+- vpa=\036FPFF%p1%2.2X,
+- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
+- use=d216+,
+-d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode,
+- cols#132,
+- is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00,
+- rs2=\036P@1\036FK\036FX0083,
+- wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X,
+- use=d412-unix,
+-d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines,
+- lines#25,
+- is3=\036Fz2,
+- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
+- use=d462+,
+-d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line,
+- eslok, hs,
+- clear=\036FG\036PH, fsl=\036F}01\022,
+- is3=\036Fz2\036F}00\036FB180000\036F}01, ll@,
+- tsl=\036F}00\036FP%p1%2.2X18\036PG,
+- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X,
+- use=d462+,
+-
+-# Relative cursor motions are confined to the current window,
+-# which is not what the scrolling region specification expects.
+-# Thus, relative vertical cursor positioning must be deleted.
+-d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region,
+- csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;,
+- cud1@, cuu1@, ll@, use=d462+,
+-
+-d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode,
+- use=d412-unix,
+-d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode,
+- use=d412-unix-w,
+-d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines,
+- use=d412-unix-25,
+-d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line,
+- use=d412-unix-s,
+-d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region,
+- use=d412-unix-sr,
+-
+-d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode,
+- use=d413-unix,
+-d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode,
+- use=d413-unix-w,
+-d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines,
+- use=d413-unix-25,
+-d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line,
+- use=d413-unix-s,
+-d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region,
+- use=d413-unix-sr,
+-
+-d430c-dg|d430-dg|Data General D430C in DG mode,
+- use=d413-dg, use=dg+fixed,
+-d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors,
+- use=d413-dg, use=dg+ccc,
+-
+-d430c-unix|d430-unix|Data General D430C in DG-UNIX mode,
+- use=d413-unix, use=dgunix+fixed,
+-d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode,
+- use=d413-unix-w, use=dgunix+fixed,
+-d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines,
+- use=d413-unix-25, use=dgunix+fixed,
+-d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line,
+- use=d413-unix-s, use=dgunix+fixed,
+-d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region,
+- use=d413-unix-sr, use=dgunix+fixed,
+-d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors,
+- use=d413-unix, use=dgunix+ccc,
+-d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors,
+- use=d413-unix-w, use=dgunix+ccc,
+-d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors,
+- use=d413-unix-25, use=dgunix+ccc,
+-d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors,
+- use=d413-unix-s, use=dgunix+ccc,
+-d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors,
+- use=d413-unix-sr, use=dgunix+ccc,
+-
+-# DASHER D470C color terminal in ANSI mode.
+-# Like the D460 but with 16 colors and without a compressed mode.
++# Reset Terminal Mode (RM): \E[Pnl
++# Pn= 3 Exit graphics mode
++# Pn= > Exit cursor blink
++# Pn= < Exit new line mode
++# Pn= = Exit reverse insert/replace mode
++# Pn= ? Exit no scroll mode
+ #
+-# Initialization string 1 sets:
+-# \E[<0;<1;<2;<4l
+-# <0 - scrolling enabled
+-# <1 - blink enabled
+-# <2 - horizontal scrolling enabled (for alignment)
+-# <4 - print characters regardless of attributes
+-# \E[1;1;80w - margins at columns 1 and 80
+-# \E[1;6;<2h
+-# 1 - print all characters even if protected
+-# 6 - character protection disabled
+-# <2 - horizontal scrolling disabled
+-# - (should reset scrolling regions, but that glitches the screen)
++# Screen Status Report (SSR): \E[Pnp
++# Pn= 0 Request current window number
++# Pn= 1 Request current window dimensions
+ #
+-d470c|d470|Data General DASHER D470C,
+- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
+- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
+- use=dg+color, use=d460,
+-
+-d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
+- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
+- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;,
+- use=dg+color, use=d460-7b,
+-
+-# Initialization string 2 sets:
+-# ^^FQ2 - default cursor (solid rectangle)
+-# ^^FW - character protection disabled
+-# ^^F\^ - horizontal scrolling enabled (for alignment)
+-# ^^FX004? - margins at columns 0 and 79
+-# ^^F] - horizontal scrolling disabled
+-# ^^O - primary character set
+-# ^^FS00 - default character set (the keyboard native language)
+-# - (should reset scrolling regions, but that glitches the screen)
++# Device Status Report (DSR): \E[6n Request cursor position
+ #
+-d470c-dg|d470-dg|Data General DASHER D470C in DG mode,
+- is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00,
+- use=dgmode+color, use=d460-dg,
+-
+-# DASHER D555 terminal in ANSI mode.
+-# Like a D411, but has an integrated phone.
+-d555|Data General DASHER D555,
+- use=d411,
+-d555-7b|Data General DASHER D555 in 7-bit mode,
+- use=d411-7b,
+-d555-w|Data General DASHER D555 in wide mode,
+- use=d411-w,
+-d555-7b-w|Data General DASHER D555 in wide 7-bit mode,
+- use=d411-7b-w,
+-d555-dg|Data General DASHER D555 series in DG mode,
+- use=d411-dg,
+-
+-# DASHER D577 terminal in ANSI mode.
+-# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
+-d577|Data General DASHER D577,
+- use=d411,
+-d577-7b|Data General DASHER D577 in 7-bit mode,
+- use=d411-7b,
+-d577-w|Data General DASHER D577 in wide mode,
+- use=d411-w,
+-d577-7b-w|Data General DASHER D577 in wide 7-bit mode,
+- use=d411-7b-w,
+-
+-d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode,
+- use=d411-dg,
+-
+-# DASHER D578 terminal.
+-# Like a D577, but without compressed mode; like a D470C in this respect.
++# Call Status Report (CSR): \E[Pnv
++# Pn= 0 Call failed
++# Pn= 1 Call successful
+ #
+-# Initialization string 1 sets:
+-# \E[<0;<1;<2;<4l
+-# <0 - scrolling enabled
+-# <1 - blink enabled
+-# <2 - horizontal scrolling enabled (for alignment)
+-# <4 - print characters regardless of attributes
+-# \E[1;1;80w - margins at columns 1 and 80
+-# \E[1;6;<2h
+-# 1 - print all characters even if protected
+-# 6 - character protection disabled
+-# <2 - horizontal scrolling disabled
+-# - (should reset scrolling regions, but that glitches the screen)
++# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
++# Pn1= Button number to be loaded
++# Pn2= Character count of "string"
++# Pn3= Key mode being loaded:
++# 0= Unshifted
++# 1= Shifted
++# 2= Control
++# String= Text string (15 chars max)
+ #
+-d578|Data General DASHER D578,
+- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577,
+-d578-7b|Data General DASHER D578 in 7-bit mode,
+- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b,
+-
+-#### Datamedia (dm)
++# Screen Number Report (SNR): \E[Pnp
++# Pn= Screen number
+ #
+-# Datamedia was headquartered in Nashua, New Hampshire until it went
+-# out of business in 1993, but the ID plates on the terminals referred
+-# to the factory in Pennsauken, NJ. The factory was sold to a PCB board
+-# manufacturer which threw out all information about the terminals.
++# Screen Dimension Report (SDR): \E[Pn1;Pn2r
++# Pn1= Number of rows available in window
++# Pn2= Number of columns available in window
+ #
+-
+-cs10|colorscan|Datamedia Color Scan 10,
+- msgr,
+- cols#80, lines#24,
+- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+-cs10-w|Datamedia Color Scan 10 with 132 columns,
+- cols#132,
+- cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
+-
+-# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
+-dm1520|dm1521|datamedia 1520,
+- OTbs, am, xenl,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
+- khome=^Y,
+-# dm2500: this terminal has both <ich> and <smir>. Applications using
+-# termcap/terminfo directly (rather than through ncurses) might be confused.
+-dm2500|datamedia2500|datamedia 2500,
+- OTbs, OTnc,
+- cols#80, lines#24,
+- bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
+- cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z,
+- dch1=\020\010\030\035$<10*>,
+- dl1=\020\032\030\035$<10*>, el=^W, home=^B,
+- ich1=\020\034\030\035$<10*>,
+- il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377,
+- rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^],
+- smdc=^P, smir=^P, smso=^N,
+-# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
+-# also, has a meta-key.
+-# From: <goldberger@su-csli.arpa>
+-# (dmchat: ":MT:" changed to ":km:" -- esr)
+-dmchat|dmchat version of datamedia 2500,
+- km,
+- dl1=\020\032\030\035$<2/>,
+- il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
+-# (dm3025: ":MT:" changed to ":km:" -- esr)
+-dm3025|datamedia 3025a,
+- OTbs, km,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
+- dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK,
+- home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>,
+- is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
+- smir=\EP, smso=\EO1,
+-dm3045|datamedia 3045a,
+- OTbs, am, eo, km@, ul, xenl,
+- dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
+- kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
+- kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
+- khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
+- use=dm3025,
+-# Datamedia DT80 soft switches:
+-# 1 0=Jump 1=Smooth
+-# Autorepeat 0=off 1=on
+-# Screen 0=Dark 1=light
+-# Cursor 0=u/l 1=block
++# Cursor Position Report (CPR): \E[Pn1;Pn2R
++# Pn1= "Y" Position of cursor
++# Pn2= "X" Position of cursor
+ #
+-# 2 Margin Bell 0=off 1=on
+-# Keyclick 0=off 1=on
+-# Ansi/VT52 0=VT52 1=Ansi
+-# Xon/Xoff 0=Off 1=On
++# Request Answer Back (RAB): \E[c
+ #
+-# 3 Shift3 0=Hash 1=UK Pound
+-# Wrap 0=Off 1=On
+-# Newline 0=Off 1=On
+-# Interlace 0=Off 1=On
++# Answer Back Response (ABR): \E[?;*;30;VSV
++# *= 0 No printer available
++# *= 2 Printer available
++# V= Software version number
++# SV= Software sub version number
++# (printer-available field not documented in v1)
+ #
+-# 4 Parity 0=Odd 1=Even
+-# Parity 0=Off 1=On
+-# Bits/Char 0=7 1=8
+-# Power 0=60Hz 1=50Hz
++# Screen Alignment Aid: \En
+ #
+-# 5 Line Interface 0=EIA 1=Loop
+-# Aux Interface 0=EIA 1=Loop
+-# Local Copy 0=Off 1=On
+-# Spare
++# Bell (lower pitch): \E[x
+ #
+-# 6 Aux Parity 0=Odd 1=Even
+-# Aux Parity 0=Off 1=On
+-# Aux Bits/Char 0=7 1=8
+-# CRT Saver 0=Off 1=On
+-# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
+-dm80|dmdt80|dt80|datamedia dt80/1,
+- clear=\E[2J\E[H, cud1=^J, cuf1=\E[C,
+- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+- home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
+- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+- use=vt100,
+-# except in 132 column mode, where it needs a little padding.
+-# This is still less padding than the vt100, and you can always turn on
+-# the ^S/^Q handshaking, so you can use vt100 flavors for things like
+-# reverse video.
+-dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
+- cols#132,
+- clear=\E[H\E[2J$<50/>, cud1=^J,
+- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
+- ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80,
+-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+-dt80-sas|Datamedia DT803/DTX for SAS usage,
+- am, bw,
+- cols#80, lines#24,
+- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
+- bel=^G, clear=^L, cr=^M,
+- csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2,
+- cub1=^H, cud1=\EB, cuf1=^\,
+- cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K,
+- el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB,
+- is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J,
+- kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N,
+- rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF,
+- smso=\E$2\004, tbc=\E'0,
+-
+-# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
+-# These aren't end-all Excel termcaps; but do insert/delete char/line
+-# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman)
+-# The naming convention has been bent somewhat, with the use of E? (where
+-# E is for 'Excel') as # a name. This was done to distinguish the entries
+-# from the other Datamedias in use here, and yet to associate a model of
+-# the Excel terminals with the regular datamedia terminals that share
+-# major characteristics.
+-excel62|excel64|datamedia Excel 62,
+- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
+- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
+- use=dt80,
+-excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
+- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
+- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
+- use=dt80w,
+-excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
+- dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J,
+- kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
+- smir=\E[4h, use=dt80,
+-
+-#### Falco
++# Dial Phone Number: \EPdstring\
++# string= Phone number to be dialed
+ #
+-# Falco Data Products
+-# 440 Potrero Avenue
+-# Sunnyvale, CA 940864-196
+-# Vox: (800)-325-2648
+-# Fax: (408)-745-7860
+-# Net: techsup@charm.sys.falco.com
++# Set Phone Labels: \EPpstring\
++# string= Label for phone buttons
+ #
+-# Current Falco models as of 1995 are generally ANSI-compatible and support
+-# emulations of DEC VT-series, Wyse, and Televideo types.
++# Set Clock: \EPchour;minute;second\
++#
++# Position Clock: \EPsY;X\
++# Y= "Y" coordinate
++# X= "X" coordinate
++#
++# Delete Clock: \Epr\
++#
++# Programming The Function Buttons: \EPfPn;string\
++# Pn= Button number (00-06, 18-24)
++# (kf00-kf06, kf18-kf24)
++# string= Text to sent on button depression
++#
++# The following in version 2 only:
++#
++# Request For Local Directory Data: \EPp12;\
++#
++# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
++#
++# Request for Local Directory Data in print format: \EPp13;\
++#
++# Enable 'Prt on Line' mode: \022 (DC2)
++#
++# Disable 'Prt on Line' mode: \024 (DC4)
+ #
+
+-# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
+-# This terminal was released around 1983 and was discontinued long ago.
+-# The standout and underline highlights are the same.
+-falco|ts1|ts-1|falco ts-1,
+- OTbs, am,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE,
+- ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+- kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
+- smir=\Eq, smso=\Eg1, smul=\Eg1,
+-falco-p|ts1p|ts-1p|falco ts-1 with paging option,
+- OTbs, am, da, db, mir, msgr, ul,
++# 05-Aug-86:
++# The following Terminfo entry describes functions which are supported by
++# the AT&T 5430/pt505 terminal software version 2 and later.
++att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
++ am, xon,
+ cols#80, it#8, lines#24,
+- bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
+- dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
+- il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
+- rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
+- smso=\Eg4, smul=\Eg1,
+-# (ts100: I added <rmam>/<smam> based on the init string -- esr)
+-ts100|ts100-sp|falco ts100-sp,
+- am, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+- cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
+- el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
+- ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+- use=vt100+fnkeys,
+-ts100-ctxt|falco ts-100 saving context,
+- rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
++ cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
++ il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
++ kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
++ kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s,
++ kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s,
++ kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s,
++ krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
++ rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
++ rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
++ smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
+
+-#### Florida Computer Graphics
++# The following Terminfo entry describes functions which are supported by
++# the AT&T 5430/pt505 terminal software version 1.
++att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
++ lines#24,
++ mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
++tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
++ lines#22, use=att505,
+ #
+-
+-# Florida Computer Graphics Beacon System, using terminal emulator program
+-# "host.com", as provided by FCG. This description is for an early release
+-# of the "host" program. Known bug: <ed> clears the whole screen, so it's
+-# commented out.
+-
+-# From: David Bryant <cbosg!djb> 1/7/83
+-beacon|FCG Beacon System,
+- am, da, db,
+- cols#80, lines#32,
+- bel=\ESTART\r\E37\r\EEND\r$<1>,
+- blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M,
+- cub1=^H, cud1=^J, cuf1=\EV,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU,
+- dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE,
+- ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=,
+- rmso=\ESTART\r\E70\,0\r\EEND\r$<20>,
+- rmul=\ESTART\r\E60\,0\r\EEND\r,
+- sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>,
+- smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>,
+- smso=\ESTART\r\E70\,6\r\EEND\r$<20>,
+- smul=\ESTART\r\E60\,1\r\EEND\r,
+-
+-#### Fluke
++#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
++# This cut mark helps make life less painful for people running ncurses tic
++# on machines with relatively little RAM. The file can be broken in half here
++# cleanly and compiled in sections -- no `use' references cross this cut
++# going forward.
+ #
+
+-# The f1720a differences from ANSI: no auto margin, destructive
+-# tabs, # of lines, funny highlighting and underlining
+-f1720|f1720a|fluke 1720A,
+- xt,
+- cols#80, lines#16, xmc#1,
+- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
+- el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
+- kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+- smso=\E[7m, smul=\E[4m,
+-
+-#### Liberty Electronics (Freedom)
++#### Ampex (Dialogue)
++#
++# Yes, these are the same people who are better-known for making audio- and
++# videotape. I'm told they are located in Redwood City, CA.
+ #
+-# Liberty Electronics
+-# 48089 Fremont Blvd
+-# Fremont CA 94538
+-# Vox: (510)-623-6000
+-# Fax: (510)-623-7021
+
+-# From: <faletti@berkeley.edu>
+-# (f100: added empty <acsc> to suppress a tic warning;
+-# made this relative to adm+sgr -- note that <invis> isn't
+-# known to work for f100 but does on the f110. --esr)
+-f100|freedom|freedom100|freedom model 100,
+- OTbs, am, bw, hs, mir, msgr, xon,
+- cols#80, lines#24,
+- acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J,
++# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
++# (ampex80: some capabilities merged in from SCO's entry -- esr)
++ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
++ OTbs, am, bw, ul,
++ cols#80, it#8, lines#24,
++ bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J,
+ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
+- flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c,
+- ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>,
+- is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V,
+- kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r,
+- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
+- smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
+- vpa=\E[%p1%{32}%+%c, use=adm+sgr,
+-f100-rv|freedom-rv|freedom 100 in reverse video,
+- flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
+-# The f110 and f200 have problems with vi(1). They use the ^V
+-# code for the down cursor key. When kcud1 is defined in terminfo
+-# as ^V, the Control Character Quoting capability (^V in insert mode)
+-# is lost! It cannot be remapped in vi because it is necessary to enter
+-# a ^V to to quote the ^V that is being remapped!!!
+-#
+-# f110/f200 users will have to decide whether
+-# to lose the down cursor key or the quoting capability. We will opt
+-# initially for leaving the quoting capability out, since use of VI
+-# is not generally applicable to most interactive applications
+-# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr)
+-f110|freedom110|Liberty Freedom 110,
+- bw@, eslok,
+- it#8, wsl#80,
+- blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
+- dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE,
+- ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET,
+- kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
+- ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq,
+- smso=\EG<, tsl=\Ef, use=f100,
+-f110-14|Liberty Freedom 110 14inch,
+- dch1@, use=f110,
+-f110-w|Liberty Freedom 110 - 132 cols,
+- cols#132, use=f110,
+-f110-14w|Liberty Freedom 110 14in/132 cols,
+- cols#132,
+- dch1@, use=f110,
+-# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+-f200|freedom200|Liberty Freedom 200,
+- OTbs, am, eslok, hs, mir, msgr, xon,
+- cols#80, it#8, lines#24, wsl#80,
+- acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0,
+- clear=^Z, cnorm=\E.1, cr=^M,
+- csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
++ dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1,
++ ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em,
++ smso=\Ej, smul=\El, tbc=\E3,
++# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
++ampex175|ampex d175,
++ am,
++ cols#80, lines#24,
++ bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J,
++ is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
++ kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K,
++ rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El,
++# No backspace key in the main QWERTY cluster. Fortunately, it has a
++# NEWLINE/PAGE key just above RETURN that sends a strange single-character
++# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
++# mode), this key can be used as the erase key; I find I like this. Because
++# some people and some systems may not, there is another termcap ("ampex175")
++# that suppresses this little eccentricity by omitting the relevant capability.
++ampex175-b|ampex d175 using left arrow for erase,
++ kbs=^_, use=ampex175,
++# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
++# (ampex210: removed obsolete ":kn#10:" -- esr)
++ampex210|a210|ampex a210,
++ OTbs, am, hs, xenl,
++ cols#80, it#8, lines#24, xmc#1,
++ cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX,
++ fsl=\E.2, home=^^, ht=^I, ich1=\EQ,
++ if=/usr/share/tabset/std, il1=\EE, invis@,
++ is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H,
++ kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
++ kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
++ kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^,
++ tsl=\E.0\Eg\E}\Ef, use=adm+sgr,
++# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
++# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
++# and moved the padding to be *after* the caps -- esr)
++ampex219|ampex-219|amp219|Ampex with Automargins,
++ hs, xenl,
++ cols#80, it#8, lines#24,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
++ clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M,
++ csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
++ cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
++ cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>,
++ el=\E[K$<3>, home=\E[H, ht=^I, ind=^J,
++ is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~,
++ kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~,
++ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
++ rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>,
++ rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
++ smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
++ampex219w|ampex-219w|amp219w|Ampex 132 cols,
++ cols#132, lines#24,
++ bel=^G, cr=^M, cud1=^J, ind=^J,
++ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
++# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr)
++ampex232|ampex-232|Ampex Model 232,
++ am,
++ cols#80, lines#24, xmc#1,
++ cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V,
+ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET,
+- flash=\Eo$<200/>\En, fsl=^M, home=^^,
+- hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
+- kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
+- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
+- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
+- ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<,
+- tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr,
+-f200-w|Liberty Freedom 200 - 132 cols,
+- cols#132, use=f200,
+-# The f200 has the ability to reprogram the down cursor key. The key is
+-# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
+-# so powering the terminal off and on will not cause the change to be lost.
+-f200vi|Liberty Freedom 200 for vi,
+- flash=\Eb$<200/>\Ed, kcud1=^J, use=f200,
+-f200vi-w|Liberty Freedom 200 - 132 cols for vi,
+- cols#132, use=f200vi,
++ dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET,
++ flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>,
++ invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L,
++ kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
++ kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
++ kf9=^AI\r, khome=^^, use=adm+sgr,
++# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr)
++ampex232w|Ampex Model 232 / 132 columns,
++ cols#132, lines#24,
++ is2=\E\034Eg\El, use=ampex232,
+
+-#### GraphOn (go)
+-#
+-# Graphon Corporation
+-# 544 Division Street
+-# Campbell, CA 95008
+-# Vox: (408)-370-4080
+-# Fax: (408)-370-5047
+-# Net: troy@graphon.com (Troy Morrison)
++#### Ann Arbor (aa)
+ #
++# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
++# numbers of function keys. At least some used monitors in portrait mode,
++# allowing up to 76-character screen heights! They were reachable at:
+ #
+-# The go140 and go225 have been discontinued. GraphOn now makes X terminals,
+-# including one odd hybrid that starts out life on power-up as a character
+-# terminal, than can be switched to X graphics mode (driven over the serial
+-# line) by an escape sequence. No info on this beast yet.
+-# (go140: I added <rmam>/<smam> based on the init string -- esr)
+-go140|graphon go-140,
+- OTbs,
+- cols#80, it#8, lines#24,
+- clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- ed=\E[J$<10/>, el=\E[K, ht=^I,
+- if=/usr/share/tabset/vt100, il1=\E[L,
+- is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
+- rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+-go140w|graphon go-140 in 132 column mode,
+- am,
+- cols#132,
+- is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q,
+- use=go140,
+-# Hacked up vt200 termcap to handle GO-225/VT220
+-# From: <edm@nwnexus.WA.COM>
+-# (go225: I added <rmam>/<smam> based on the init string -- esr)
+-go225|go-225|Graphon 225,
+- OTbs, am, mir, xenl,
+- cols#80, it#8, lines#25, vt#3,
+- blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
+- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
+- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
+- rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
+- rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
+- rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
+- sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
+- smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
+-
+-#### Harris (Beehive)
++# Ann Arbor Terminals
++# 6175 Jackson Road
++# Ann Arbor, MI 48103
++# (313)-663-8000
+ #
+-# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine.
+-# Their terminal group is ancient history now (1995) though the parent
+-# company is still in business.
++# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
++# can't be found on the Web; I fear they're long dead. R.I.P.
+ #
+
+-# Beehive documentation is undated and marked Preliminary and has no figures
+-# so we must have early Superbee2 (Model 600, according to phone conversation
+-# with mfr.). It has proved reliable except for some missing padding
+-# (notably after \EK and <nl> at bottom of screen).
+-#
+-# The key idea is that AEP mode is poison for <cup> & that US's in
+-# the local memory should be avoided like the plague. That means
+-# that the 2048 character local buffer is used as 25 lines of 80
+-# characters, period. No scrolling local memory, folks. It also
+-# appears that we cannot use naked INS LINE feature since it uses
+-# US. The sbi fakes <il1> with an 80-space insert that may be too
+-# slow at low speeds; also spaces get converted to \040 which is
+-# too long for some programs (not vi). DEL LINE is ok but slow.
++
++# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
++# Highly modified 6/22 by Mike O'Brien.
++# split out into several for the various screen sizes by dave-yost@rand
++# Modifications made 3/82 by Mark Horton
++# Modified by Tom Quarles at UCB for greater efficiency and more diversity
++# status line moved to top of screen, <flash> removed 5/82
++# Some unknown person at SCO then hacked the init strings to make them more
++# efficient.
+ #
+-# The <nl> string is designed for last line of screen ONLY; cup to
+-# 25th line corrects the motion inherent in scrolling to Page 1.
++# assumes the following setup:
++# A menu: 0000 1010 0001 0000
++# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
++# C menu: 56 66 0 0 9600 0110 1100
++# D menu: 0110 1001 1 0
+ #
+-# There is one understood bug. It is that the screen appears to
+-# pop to a new (blank) page after a <nel>, or leave a half-line
+-# ellipsis to a quad that is the extra 48 memory locations. The
+-# data received is dumped into memory but not displayed. Not to
+-# worry if <cup> is being used; the lines not displayed will be,
+-# whenever the cursor is moved up there. Since <cup> is addressed
+-# relative to MEMORY of window, nothing is lost; but beware of
+-# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended,
+-# therefore, is setenv MORE -c .
++# Briefly, the settings are for the following modes:
++# (values are for bit set/clear with * indicating our preference
++# and the value used to test these termcaps)
++# Note that many of these settings are irrelevent to the terminfo
++# and are just set to the default mode of the terminal as shipped
++# by the factory.
+ #
+-# WARNING: Not all features tested.
++# A menu: 0000 1010 0001 0000
++# Block/underline cursor*
++# blinking/nonblinking cursor*
++# key click/no key click*
++# bell/no bell at column 72*
+ #
+-# Timings are assembled from 3 sources. Some timings may reflect
+-# SB2/Model 300 that were used if more conservative.
+-# Tested on a Model 600 at 1200 and 9600 bd.
++# key pad is cursor control*/key pad is numeric
++# return and line feed/return for <cr> key *
++# repeat after .5 sec*/no repeat
++# repeat at 25/15 chars per sec. *
+ #
+-# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
+-# placed on the keyboard and useless because of AEP, is made
+-# into a backspace key. In use ESC must be pressed twice (to send)
+-# and sending ^C must be prefixed by ESC to avoid that weird
+-# transmit mode associated with ENTER key.
++# hold data until pause pressed/process data unless pause pressed*
++# slow scroll/no slow scroll*
++# Hold in area/don't hold in area*
++# functions keys have default*/function keys disabled on powerup
+ #
+-# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
+-# the screen, then it has dropped into ENTER mode; hit
+-# RESET--ONLINE--!tset.
++# show/don't show position of cursor during page transmit*
++# unused
++# unused
++# unused
+ #
+-# As delivered this machine has a FATAL feature that will throw
+-# it into that strange transmit state (SPOW) if the space bar is
+-# hit after a CR is received, but before receiving a LF (or a
+-# few others).
++# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
++# Baud rate (9600*)
+ #
+-# The circuits MUST be modified to eliminate the SPOW latch.
+-# This is done by strapping on chip A46 of the I/O board; cut
+-# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
+-# chip. This mod has been checked out on a Mod 600 of Superbee II.
+-# With this modification absurdly high timings on cr are
+-# unnecessary.
++# 2 bits of parity - 00=odd,01=even*,10=space,11=mark
++# 1 stop bit*/2 stop bits
++# parity error detection off*/on
+ #
+-# NOTE WELL that the rear panel switch should be set to CR/LF,
+-# not AEP!
++# keyboard local/on line*
++# half/full duplex*
++# disable/do not disable keyboard after data transmission*
+ #
+-sb1|beehive superbee,
+- OTbs, am, bw, da, db, mir, ul, xsb,
+- cols#80, lines#25, xmc#1,
+- bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
+- cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d,
+- cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>,
+- el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1,
+- il1=\EN\EL$<3>\EQ \EP$<3> \EO\ER\EA$<3>,
+- ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
+- kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
+- kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
+- krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
+- rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
+- smso=\E_1, smul=\E_0, tbc=\E3,
+-sbi|superbee|beehive superbee at Indiana U.,
+- xsb,
+- cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA,
+- use=sb1,
+-# Alternate (older) description of Superbee - f1=escape, f2=^C.
+-# Note: there are at least 3 kinds of superbees in the world. The sb1
+-# holds onto escapes and botches ^C's. The sb2 is the best of the 3.
+-# The sb3 puts garbage on the bottom of the screen when you scroll with
+-# the switch in the back set to CRLF instead of AEP. This description
+-# is tested on the sb2 but should work on all with either switch setting.
+-# The f1/f2 business is for the sb1 and the <xsb> can be taken out for
+-# the other two if you want to try to hit that tiny escape key.
+-# This description is tricky: being able to use cup depends on there being
+-# 2048 bytes of memory and the hairy <nl> string.
+-superbee-xsb|beehive super bee,
+- am, da, db, xsb,
+- cols#80, it#8, lines#25,
+- clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
+- cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>,
+- dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
+- home=\EH, ht=^I, hts=\E1,
+- ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
+- kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
+- khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
+-# This loses on lines > 80 chars long, use at your own risk
+-superbeeic|super bee with insert char,
+- ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
+-sb2|sb3|fixed superbee,
+- xsb@, use=superbee,
+-
+-#### Beehive Medical Electronics
++# transmit entire page/stop transmission at cursor*
++# transfer/do not transfer protected characters*
++# transmit all characters/transmit only selected characters*
++# transmit all selected areas/transmit only 1 selected area*
+ #
+-# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
+-# Regarding your question though; Beehive terminals weren't made by Harris.
+-# They were made by Beehive Medical Electronics in Utah. They went out of
+-# business in the early '80s.
++# transmit/do not transmit line separators to host*
++# transmit/do not transmit page tab stops tabs to host*
++# transmit/do not transmit column tab stop tabs to host*
++# transmit/do not transmit graphics control (underline,inverse..)*
+ #
+-# (OK, then, I don't know why a couple of these say "harris beehive".)
++# enable*/disable auto XON/XOFF control
++# require/do not require receipt of a DC1 from host after each LF*
++# pause key acts as a meta key/pause key is pause*
++# unused
+ #
+-
+-# Reports are that most of these Beehive entries (except superbee) have not
+-# been tested and do not work right. <rmso> is a trouble spot. Be warned.
+-
+-# (bee: <ich1> was empty, which is obviously bogus -- esr)
+-beehive|bee|harris beehive,
+- OTbs, am, mir,
+- cols#80, lines#24,
+- cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
+- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
+- dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
+- kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
+- krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
+- smir=\EQ, smso=\EdP, smul=\Ed`,
+-# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
+-# good grief - does this entry make :sg:/:ug: when it doesn't have to?
+-# look at those spaces in <rmso>/<smso>. Seems strange to me...
+-# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you
+-# really care, cook up one using ^F -- esr)
+-beehive3|bh3m|beehiveIIIm|harris beehive 3m,
+- OTbs, am,
+- cols#80, it#8, lines#20,
+- bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K,
+- dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
+- il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s,
+-beehive4|bh4|beehive 4,
+- am,
+- cols#80, lines#24,
+- bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
+- cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J,
+-# There was an early Australian kit-built computer called a "Microbee".
+-# It's not clear whether this is for one of those or for a relative
+-# of the Beehive.
+-microb|microbee|micro bee series,
+- OTbs, am,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+- el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+- kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
+- kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
+- rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
+-
+-# 8675, 8686, and bee from Cyrus Rahman
+-# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
+-ha8675|harris 8675,
+- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
+- kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
+- kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H,
+- kf8=\177, kf9=\Ee, use=bee,
+-# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
+-# in :is: -- esr)
+-ha8686|harris 8686,
+- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#,
+- kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003,
+- kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003,
+- kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003,
+- kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(,
+- use=bee,
+-
+-#### Hazeltine
++# unused
++# unused
++# unused
++# unused
+ #
+-# Hazeltine appears to be out of the terminal business as of 1995. These
+-# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
+-# Harris. They have a hazeltine.com domain (but no web page there ) and can
+-# be reached at:
++# XON character (17*)
++# XOFF character (19*)
+ #
+-# Hazeltine
+-# 450 East Pulaski Road
+-# Greenlawn, New York 11740
++# C menu: 56 66 0 0 9600 0110 1100
++# number of lines to print data on (printer) (56*)
+ #
+-# As late as 1993, manuals for the terminal product line could still be
+-# purchased from:
++# number of lines on a sheet of paper (printer) (66*)
+ #
+-# TRW Customer Service Division
+-# 15 Law Drive
+-# P.O. Box 2076
+-# Fairfield, NJ 07007-2078
++# left margin (printer) (0*)
+ #
+-# They're now (1998) a subsidiary of General Electric, operating under the
+-# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page
+-# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
++# number of pad chars on new line to printer (0*)
+ #
+-
+-# Since <cuf1> is blank, when you want to erase something you
+-# are out of luck. You will have to do ^L's a lot to
+-# redraw the screen. h1000 is untested. It doesn't work in
+-# vi - this terminal is too dumb for even vi. (The code is
+-# there but it isn't debugged for this case.)
+-hz1000|hazeltine 1000,
+- OTbs,
+- cols#80, lines#12,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
+- ind=^J,
+-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
+-hz1420|hazeltine 1420,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
+- cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S,
+- ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y,
+- smso=\E^_,
+-# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
+-# freakout with out-of-range args and tn3270. No hz since it needs to
+-# receive tildes.
+-hz1500|hazeltine 1500,
+- OTbs, am, hz,
+- cols#80, lines#24,
+- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+- cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c,
+- cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R,
+- il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P,
+- kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_,
+-# h1510 assumed to be in sane escape mode. Else use h1500.
+-# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
+-# <smso=\E^Y>, but these caps were commented out in 8.3; also,
+-# removed incorrect and overridden ":do=^J:" -- esr)
+-hz1510|hazeltine 1510,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
+- cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X,
+- el=\E^O, il1=\E^Z, ind=^J,
+-# Hazeltine 1520
+-# The following switch settings are assumed for normal operation:
+-# FULL CR U/L_CASE ESCAPE
+-# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON
+-# Other switches may be set for operator convenience or communication
+-# requirements.
+-hz1520|Hazeltine 1520,
+- OTbs, am, bw, msgr,
+- cols#80, lines#24,
+- bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
+- ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H,
+- kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L,
+- kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z,
+- rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
+-# This version works with the escape switch off
+-# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
+-hz1520-noesc|hazeltine 1520,
+- am, hz,
+- cols#80, lines#24,
+- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+- cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O,
+- home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_,
+-# Note: the h1552 appears to be the first Hazeltine terminal which
+-# is not braindamaged. It has tildes and backprimes and everything!
+-# Be sure the auto lf/cr switch is set to cr.
+-hz1552|hazeltine 1552,
+- OTbs,
+- cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue,
+- lf2=red, lf3=green, use=vt52,
+-hz1552-rv|hazeltine 1552 reverse video,
+- cud1=^J, rmso=\ET, smso=\ES, use=hz1552,
+-# Note: h2000 won't work well because of a clash between upper case and ~'s.
+-hz2000|hazeltine 2000,
+- OTbs, OTnc, am,
+- cols#74, lines#27,
+- bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
+- cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
+- il1=~\032$<6>, ind=^J, pad=\177,
+-# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote:
+-# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
+-# to work ok. There is one problem though if one types a lot of garbage
+-# characters very fast vi seems not able to keep up and hangs while trying
+-# to insert. That's in insert mode while trying to insert in the middle of
+-# a line. It might be because the Esprit doesn't have insert char and delete
+-# char as a built in function. Vi has to delete to end of line and then
+-# redraw the rest of the line.
+-esprit|Hazeltine Esprit I,
+- OTbs, am, bw,
+- cols#80, lines#24,
+- bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K,
+- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
+- ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H,
+- kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J,
+- kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J,
+- kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R,
+- lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
+- rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
+-esprit-am|hazeltine esprit auto-margin,
+- am, use=esprit,
+-# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
+-# Vi it seems always wants to send a control J for "do" and it turned out
+-# that the terminal would work somewhat if the auto LF/CR was turned off.
+-# (hmod1: removed :dn=~^K: -- esr)
+-hmod1|Hazeltine Modular 1,
+- OTbs, am, hz,
+- cols#80, lines#24,
+- bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
+- cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z,
+- ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R,
+- rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_,
++# printer baud rate (9600*)
+ #
+-# Hazeltine Executive 80 Model 30 (1554?)
+-# from Will Martin <control@ALMSA-1.ARPA> via BRL
+-# Like VT100, except for different "am" behavior.
+-hazel|exec80|h80|he80|Hazeltine Executive 80,
+- OTbs, OTpt, am,
+- cols#80, it#8, lines#24, vt#3,
+- OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
+- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
+- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
+- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
+- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
+- kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
+- rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
+- rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
+- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
+- smul=\E[4m$<2/>,
+-
+-#### IBM
++# printer parity: 00=odd,01=even*,10=space,11=mark
++# printer stop bits: 2*/1
++# print/do not print guarded areas*
++#
++# new line is: 01=LF,10=CR,11=CRLF*
++# unused
++# unused
++#
++# D menu: 0110 1001 1 0
++# LF is newline/LF is down one line, same column*
++# wrap to preceding line if move left from col 1*/don't wrap
++# wrap to next line if move right from col 80*/don't wrap
++# backspace is/is not destructive*
++#
++# display*/ignore DEL character
++# display will not/will scroll*
++# page/column tab stops*
++# erase everything*/erase unprotected only
++#
++# editing extent: 0=display,1=line*,2=field,3=area
++#
++# unused
+ #
+
+-ibm327x|line mode IBM 3270 style,
+- gn,
+- clear=^M^J, el=^M, home=^M,
++annarbor4080|aa4080|ann arbor 4080,
++ OTbs, am,
++ cols#80, lines#40,
++ bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_,
++ cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c,
++ cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H,
++ kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P,
+
+-ibm3101|i3101|IBM 3101-10,
+- OTbs, am, xon,
+- cols#80, lines#24,
+- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+- el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
+-ibm3151|IBM 3151 display,
+- is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
+- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
+- sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
+-# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
+-# removed kend, knp, kpp -TD
+-ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
+- OTbs, am, mir, msgr,
+- cols#80, it#8, lines#24,
+- acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
+- bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
+- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
+- invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
+- kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
+- kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
+- kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
+- kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
+- kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
+- kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
+- kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
+- ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
+- rmso=\E4@, rmul=\E4@,
+- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
+- sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
++# Strange Ann Arbor terminal from BRL
++aas1901|Ann Arbor K4080 w/S1901 mod,
++ am,
++ cols#80, lines#40,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N,
++ home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c,
++ nel=^M^J,
+
+-ibm3161-C|IBM 3161-C NLS terminal using cartridge,
+- rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
+-ibm3162|IBM 3162 display,
+- blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
+- rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
+- use=ibm3161-C,
++# If you're using the GNU termcap library, add
++# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
++# to these capabilities. This is the nonstandard GNU termcap scrolling
++# capability, arguments are:
++# 1. Total number of lines on the screen.
++# 2. Number of lines above desired scroll region.
++# 3. Number of lines below (outside of) desired scroll region.
++# 4. Total number of lines on the screen, the same as the first parameter.
++# The generic Ann Arbor entry is the only one that uses this.
++aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
++ OTbs, am, km, mc5i, mir, xon,
++ cols#80, it#8,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
++ el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
++ hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
++ il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
++ is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
++ kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
++ kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
++ kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
++ kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
++ kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
++ khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
++ mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
++ rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
++ rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
++ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
++ sgr0=\E[m,
++ smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
++ smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%p1%{1}%+%dd,
++
++aaa+rv|ann arbor ambassador in reverse video,
++ blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
++ is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
++ rs1=\E[H\E[7m\E[J$<156>,
++ sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p2%|%p3%!%t7;%;%?%p7%t8;%;m\016,
++ sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
++# Ambassador with the DEC option, for partial vt100 compatibility.
++aaa+dec|ann arbor ambassador in dec vt100 mode,
++ acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
++ csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
++ sgr=\E[%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p1%p3%|%!%t7;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
++ smacs=^O,
++aaa-18|ann arbor ambassador/18 lines,
++ lines#18,
++ is2=\E7\E[60;0;0;18p\E8,
++ rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
++ use=aaa+unk,
++aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
++ use=aaa+rv, use=aaa-18,
++aaa-20|ann arbor ambassador/20 lines,
++ lines#20,
++ is2=\E7\E[60;0;0;20p\E8,
++ rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
++ use=aaa+unk,
++aaa-22|ann arbor ambassador/22 lines,
++ lines#22,
++ is2=\E7\E[60;0;0;22p\E8,
++ rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
++ use=aaa+unk,
++aaa-24|ann arbor ambassador/24 lines,
++ lines#24,
++ is2=\E7\E[60;0;0;24p\E8,
++ rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
++ use=aaa+unk,
++aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
++ use=aaa+rv, use=aaa-24,
++aaa-26|ann arbor ambassador/26 lines,
++ lines#26,
++ is2=\E7\E[60;0;0;26p\E8,
++ rmcup=\E[60;0;0;26p\E[26;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
++aaa-28|ann arbor ambassador/28 lines,
++ lines#28,
++ is2=\E7\E[60;0;0;28p\E8,
++ rmcup=\E[60;0;0;28p\E[28;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
++aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
++ eslok, hs,
++ lines#29,
++ dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
++ fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8,
++ rmcup=\E[60;1;0;30p\E[29;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
++ tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
++aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
++ use=aaa+rv, use=aaa-30-s,
++aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
++ rmcup=\E[60;1;0;30p\E[59;1H\E[K,
++ smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
++aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
++ rmcup=\E[60;1;0;30p\E[59;1H\E[K,
++ smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
++aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
++ lines#30,
++ is2=\E7\E[60;0;0;30p\E8,
++ rmcup=\E[60;0;0;30p\E[30;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
++aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
++ use=aaa+rv, use=aaa-30,
++aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
++ rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
++ use=aaa-30,
++aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
++ rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
++ use=aaa+rv, use=aaa-30,
++aaa-36|ann arbor ambassador/36 lines,
++ lines#36,
++ is2=\E7\E[60;0;0;36p\E8,
++ rmcup=\E[60;0;0;36p\E[36;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
++aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
++ use=aaa+rv, use=aaa-36,
++aaa-40|ann arbor ambassador/40 lines,
++ lines#40,
++ is2=\E7\E[60;0;0;40p\E8,
++ rmcup=\E[60;0;0;40p\E[40;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
++aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
++ use=aaa+rv, use=aaa-40,
++aaa-48|ann arbor ambassador/48 lines,
++ lines#48,
++ is2=\E7\E[60;0;0;48p\E8,
++ rmcup=\E[60;0;0;48p\E[48;1H\E[K,
++ smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
++aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
++ use=aaa+rv, use=aaa-48,
++aaa-60-s|ann arbor ambassador/59 lines+status,
++ eslok, hs,
++ lines#59,
++ dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
++ fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
++ tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
++aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
++ use=aaa+rv, use=aaa-60-s,
++aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
++ use=aaa+dec, use=aaa+rv, use=aaa-60-s,
++aaa-60|ann arbor ambassador/60 lines,
++ lines#60,
++ is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
++ use=aaa+unk,
++aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
++ use=aaa+rv, use=aaa-60,
++aaa-db|ann arbor ambassador 30/destructive backspace,
++ OTbs@,
++ cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
++
++guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
++ lines#33,
++ flash=\E[>59h$<100>\E[>59l,
++ is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
++ rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
++guru+rv|guru changes for reverse video,
++ flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
++guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
++ use=guru+rv, use=guru-33,
++guru+s|guru status line,
++ eslok, hs,
++ dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l,
++ rmcup=\E[255;1p\E[255;1H\E[K, smcup=,
++ tsl=\E[>51h\E[1;%p1%dH\E[2K,
++guru-nctxt|guru with no saved context,
++ smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
++guru-s|guru-33-s|ann arbor guru/33 lines+status,
++ lines#32,
++ is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
++ smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
++guru-24|ann arbor guru 24 lines,
++ cols#80, lines#24,
++ is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
++ use=guru+unk,
++guru-44|ann arbor guru 44 lines,
++ cols#97, lines#44,
++ is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
++ use=guru+unk,
++guru-44-s|ann arbor guru/44 lines+status,
++ lines#43,
++ is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
++ smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
++guru-76|guru with 76 lines by 89 cols,
++ cols#89, lines#76,
++ is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
++ use=guru+unk,
++guru-76-s|ann arbor guru/76 lines+status,
++ cols#89, lines#75,
++ is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
++ smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
++guru-76-lp|guru-lp|guru with page bigger than line printer,
++ cols#134, lines#76,
++ is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p,
++ use=guru+unk,
++guru-76-w|guru 76 lines by 178 cols,
++ cols#178, lines#76,
++ is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
++ use=guru+unk,
++guru-76-w-s|ann arbor guru/76 lines+status+wide,
++ cols#178, lines#75,
++ is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
++ smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
++guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
++ cols#178, lines#76,
++ is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
++ use=guru+unk,
++aaa-rv-unk|ann arbor unknown type,
++ lh#0, lw#0, nlab#0,
++ blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
++ is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
++ rs1=\E[H\E[7m\E[J,
++ sgr=\E[%?%p6%t1;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p1%!%t7;%;%?%p7%t8;%;m,
++ sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
+
+-# This really should not use setab/setaf, but it is clear that the
+-# original terminfo does not toggle red/blue colors as in setb/setf.
+-ibm3164|i3164|IBM 3164,
+- msgr,
+- colors#8, pairs#64,
+- op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A,
+- setab=\E4 %p1%{64}%+%c,
+- setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@,
+- smcup=\E!9/N\E>B, use=ibm3161,
++#### Applied Digital Data Systems (adds)
++#
++# ADDS itself is long gone. ADDS was bought by NCR, and the same group made
++# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for
++# terminals was merged again. Then AT&T sold the terminal business to
++# SunRiver, which later changed its name to Boundless Technologies. The
++# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
++# as of early 1995) are at:
++#
++# Boundless Technologies
++# 100 Marcus Boulevard
++# Hauppauge, NY 11788-3762
++# Vox: (800)-231-5445
++# Fax: (516)-342-7378
++# Web: http://boundless.com
++#
++# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
++# In 1995 Boundless acquired DEC's terminals business.
++#
+
+-ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
+- am, bw, msgr, xon,
+- cols#80, it#8, lines#25,
+- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
+- hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+- indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
+- kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+- kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
+- kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
+- kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
+- kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
+- kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
+- kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
+- kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
+- kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
+- kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
+- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
+- kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
+- kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
+- krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l,
+- rmso=\E[m, rmul=\E[m, rs2=\Ec,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
+- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++# Regent: lowest common denominator, works on all regents.
++# (regent: renamed ":bc:" to ":le:" -- esr)
++regent|Adds Regent Series,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z,
++ home=\EY\s\s, ind=^J, ll=^A,
++# Regent 100 has a bug where if computer sends escape when user is holding
++# down shift key it gets confused, so we avoid escape.
++regent100|Adds Regent 100,
++ xmc#1,
++ bel=^G,
++ cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
++ kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r,
++ kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
++ lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
++ sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
++regent20|Adds Regent 20,
++ bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
++ use=regent,
++regent25|Adds Regent 25,
++ bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A,
++ use=regent20,
++regent40|Adds Regent 40,
++ xmc#1,
++ bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r,
++ kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
++ kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
++ lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
++ smul=\E0`, use=regent25,
++regent40+|Adds Regent 40+,
++ is2=\EB, use=regent40,
++regent60|regent200|Adds Regent 60,
++ dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF,
++ rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV,
++ use=regent40+,
++# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
++# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
++viewpoint|addsviewpoint|adds viewpoint,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
++ cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>,
++ ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
++ kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
++ rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
++# Some viewpoints have bad ROMs that foo up on ^O
++screwpoint|adds viewpoint with ^O bug,
++ cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
+
+-ibmaed|IBM Experimental display,
+- OTbs, am, eo, msgr,
+- cols#80, it#8, lines#52,
+- clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
+- dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
+- il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- rmso=\E0, sgr0=\E0, smso=\E0,
+-ibm-apl|apl|IBM apl terminal simulator,
+- lines#25, use=dm1520,
+-# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
+-# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
+-ibmmono|IBM workstation monochrome,
+- eslok, hs,
+- bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL,
+- invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET,
+- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY,
+- khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG,
+- lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew,
+- sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
+- use=ibm3101,
+-ibmega|IBM Enhanced Color Display,
+- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+- nel=^M^J, use=ibmmono,
+-# This color scheme is assumed in some recent IBM terminal descriptions
+-# (green on black, emulated on a 16-color terminal).
+-ibm+color|IBM color definitions,
+- colors#8, ncv#3, pairs#64,
+- op=\E[32m\E[40m,
+- setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;,
+- setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;,
+-ibm+16color|IBM aixterm color definitions,
+- colors#16, pairs#256,
+- setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm,
+- setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm,
+- setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
+- setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
+-ibm5154|IBM 5154 Color display,
+- colors#8, ncv@, pairs#64,
+- bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
+- use=ibm+color,
+-ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
+- rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
+- use=ibmmono,
+-ibmvga-c|IBM VGA display color termcap,
+- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+- nel=^M^J, use=ibmega-c,
+-ibmvga|IBM VGA display,
+- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
+- nel=^M^J, use=ibmega,
+-# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
+-rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
+- lines#32,
+- dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono,
+-ibm6155|IBM 6155 Black & White display,
+- blink@, bold@, use=ibm5151,
+-# Advanced Monochrome (6153) and Color (6154) Graphics Display:
+-ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display,
+- lines#31,
+- dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono,
+-ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display,
+- lines#31,
+- dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo,
+- use=ibmega-c,
+-ibm6154|IBM 6154 Color displays,
+- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
+- sgr0=\E[0;10m, use=ibm5154,
+-ibm6153|IBM 6153 Black & White display,
+- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
+- sgr0=\E[0;10m, use=ibm5151,
+-ibm6153-90|IBM 6153 Black & White display,
+- cols#90, lines#36,
+- blink@, bold@, use=ibm5151,
+-ibm6153-40|IBM 6153 Black & White display,
+- cols#40, lines#12, use=ibm6153-90,
+-ibm8512|ibm8513|IBM color VGA Terminal,
+- am, mir, msgr,
+- cols#80, it#8, lines#25,
+- acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
+- clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
+- il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
+- kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
+- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+- kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
+- rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
+- rmir=\E[4l, rmso=\E[m, rmul=\E[m,
+- rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
+- smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
+- smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+- use=ibm8503,
+-hft-c|HFT with Color,
+- colors#8, pairs#64,
+- acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
+- use=ibm5151, use=ibm+color,
+-hft-c-old|HFT with Color PC850,
+- colors#8, pairs#64,
+- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
+- use=ibm+color,
+-hft-old|AIWS High Function Terminal,
+- am, xon,
+- cols#80, lines#25,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
+- ht=^I, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
+- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
+- kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
+- ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
+-ibm-system1|system1|ibm system/1 computer,
+- am, xt,
++# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
++# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs.
++# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
++# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
++# invis=01000100 and %c is the logical or of desired attributes.
++# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
++#
++# Update by TD - 2004:
++# Adapted from
++# http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
++#
++# COMMANDS ASCII CODE
++#
++# Address, Absolute ESC,=,row,column
++# Beep BEL
++# Aux Port Enable ESC,@
++# Aux Port Disable ESC,A
++# Backspace BS
++# Cursor back BS
++# Cursor down LF
++# Cursor forward FF
++# Cursor home RS
++# Cursor up VT
++# Cursor supress ETB
++# Cursor enable CAN
++# Erase to end of line ESC,T
++# Erase to end of page ESC,Y
++# Erase screen SUB
++# Keyboard lock SI
++# Keyboard unlock SO
++# Read current cursor position ESC,?
++# Set Attribute ESC,0,x (see below for values of x)
++# Tag bit reset ESC,(
++# Tag bit set ESC,)
++# Transparent Print on ESC,3
++# Transparent Print off ESC,4
++#
++#
++# ATTRIBUTES
++#
++# Normal @ 0100
++# Half Intensity A 0101
++# Blinking B 0102
++# Half Intensity Blinking C 0103
++# Reverse Video P 0120
++# Reverse Video Half Intensity Q 0121
++# Reverse Video Blinking R 0122
++# Reverse Video Half Intensity
++# Blinking S 0123
++# Underlined ` 0140
++# Underlined Half Intensity a 0141
++# Underlined Blinking b 0142
++# Underlined Half Intensity
++# Blinking c 0143
++# Video suppress D 0104
++vp3a+|viewpoint3a+|adds viewpoint 3a+,
++ am, bw,
++ cols#80, it#8, lines#24,
++ blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M,
++ cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E),
++ ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E),
++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
++ nel=^M^J, rev=\E0P\E), rmso=\E(,
++ sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
++ sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
++vp60|viewpoint60|addsvp60|adds viewpoint60,
++ use=regent40,
++#
++# adds viewpoint 90 - from cornell
++# Note: emacs sends ei occasionally to insure the terminal is out of
++# insert mode. This unfortunately puts the viewpoint90 IN insert
++# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also,
++# - :ei=:im=: must be present in the termcap translation.)
++# - <xhp> indicates glitch that attributes stick to location
++# - <msgr> means it's safe to move in standout mode
++# - <clear=\EG\Ek>: clears screen and visual attributes without affecting
++# the status line
++# Function key and label capabilities merged in from SCO.
++vp90|viewpoint90|adds viewpoint 90,
++ OTbs, bw, msgr, xhp,
+ cols#80, lines#24,
+- bel=^G, clear=^Z, cub1=^H, cuf1=^\,
+- cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K,
+- ind=^J,
+-# lft-pc850 : IBM Low Function Terminal Device
+-# lft "supports" underline, bold, and blink in the sense that the lft code
+-# sets all the right bits. HOWEVER, depending upon the adapter, these
+-# attributes may or may not be supported by the device driver.
+-lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
+- am, bw, msgr, xon,
+- cols#80, it#8, lines#25,
+- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
+- home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
+- il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec,
+- kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q,
+- kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
+- kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
+- kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
+- kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
+- kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
+- kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
+- kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
+- kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
+- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
+- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
+- kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
+- kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT,
+- rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g,
+-ibm5081|hft|IBM Megapel Color display,
+- acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
+- s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
+-ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
+- eslok, hs,
+- lines#33,
+- dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
+- use=ibmega-c,
+-ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
+- use=hft-c,
+-ibm8514|IBM 8514/a color VGA display,
+- eslok, hs,
+- dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
+-ibm8514-c|IBM 8514 color display with standout and underline,
+- eslok, hs,
+- lines#41,
+- cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J,
+- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo,
+- use=ibmega-c,
++ clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE,
++ dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I,
++ ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J,
++ kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
++ kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
++ kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2,
++ lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
++ lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
++ sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
++# Note: if return acts weird on a980, check internal switch #2
++# on the top chip on the CONTROL pc board.
++adds980|a980|adds consul 980,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d,
++ dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1,
++ kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
++ kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N,
+
++#### C. Itoh Electronics
+ #
+-# AIX entries. IBM ships these with AIX 3.2.5.
+-# -- added rc, sc based on manpage -TD
+-# Note that we could use ibm+16color, but that is not how IBM defines this one.
+-aixterm|IBM Aixterm Terminal Emulator,
+- eslok, hs,
+- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
+- fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
+-aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
+- eslok, hs,
+- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
+- fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
+-aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
+- eslok, hs,
+- bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+- tsl=\E[?%p1%dT, use=ibm6153,
+-jaixterm|IBM Kanji Aixterm Terminal Eemulator,
+- acsc@, use=aixterm,
+-jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
+- acsc@, use=aixterm-m,
++# As of 1995 these people no longer make terminals (they're still in the
++# printer business). Their terminals were all clones of the DEC VT series.
++# They're located in Orange County, CA.
++#
++
++# CIT 80 - vt-52 emulator, the termcap has been modified to remove
++# the delay times and do an auto tab set rather than the indirect
++# file used in vt100.
++cit80|cit-80|citoh 80,
++ OTbs, am,
++ cols#80, lines#24,
++ clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
++ ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
++ kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
++# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
++# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
++cit101|citc|C.itoh fast vt100,
++ OTbs, am, xenl,
++ cols#80, lines#24,
++ bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
++ flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
++ smul=\E[4m,
++# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
++# The following termcap entry was created from the Callan cd100 entry. The
++# last two lines (with the capabilities in caps) are used by RM-cobol to allow
++# full selection of combinations of reverse video, underline, and blink.
++# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
++# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
++# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
++cit101e|C. Itoh CIT-101e,
++ OTbs, OTpt, am, mir, msgr,
++ cols#80, it#8, lines#24,
++ acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
++ cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH,
++ cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M,
++ ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
++ kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
++ rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
++ smkx=\E=, smso=\E[7m, smul=\E[4m,
++# From: David S. Lawyer, June 1997:
++# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
++# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
++# late 1980's CIT Terminals went out of business.
++# There is no need to use the initialization string is=... (by invoking
++# tset or setterm etc.) provided that the terminal has been manually set
++# up (and the setup saved with ^S) to be compatible with this termcap. To be
++# compatible it should be in ANSI mode (not VT52). A set-up that
++# works is to set all the manually setable stuff to factory defaults
++# by pressing ^D in set-up mode. Then increse the brighness with the
++# up-arrow key since the factory default will likely be dim on an old
++# terminal. Then change any options you want (provided that they are
++# compatible with the termcap). For my terminal I set: Screen
++# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
++# on. I also set up mine for parity (but you may not need it). Then
++# save the setup with ^S.
++# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
++cit101e-rv|Citoh CIT-101e (sets reverse video),
++ am, eo, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24,
++ OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
++ is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H,
++ kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
++ rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l,
++ rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7,
++ sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h,
++ smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR,
++ u7=\E[6n, u8=\E[?6c, u9=\E[c,
++cit101e-n|CIT-101e w/o am,
++ am@,
++ cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
++ use=cit101e,
++cit101e-132|CIT-101e with 132 cols,
++ cols#132,
++ kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
++cit101e-n132|CIT-101e with 132 cols w/o am,
++ am@,
++ cols#132,
++ cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
++ use=cit101e,
++# CIE Terminals CIT-500 from BRL
++# The following SET-UP modes are assumed for normal operation:
++# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF
++# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES
++# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF
++# Other SET-UP modes may be set for operator convenience or communication
++# requirements.
++# Hardware tabs are assumed to be set every 8 columns; they can be set up
++# by the "reset", "tset", or "tabs" utilities. No delays are specified; use
++# "stty ixon -ixany" to enable DC3/DC1 flow control!
++# (cit500: I added <rmam>/<smam> based on the init string -- esr)
++cit500|CIE Terminals CIT-500,
++ OTbs, OTpt, mir, msgr, xon,
++ OTkn#10, cols#80, it#8, lines#64, vt#3,
++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
++ ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
++ kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
++ khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
++ lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
++ lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
++ ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
++ rmso=\E[m, rmul=\E[m,
++ rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
++ sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+
+-# This flavor is adapted from xterm, in turn from aixterm documentation -TD
+-aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
+- use=ibm+16color, use=aixterm,
++# C. Itoh printers begin here
++citoh|ci8510|8510|c.itoh 8510a,
++ cols#80, it#8,
++ bold=\E!, cub1@,
++ is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
++ rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY,
++ smul=\EX, use=lpr,
++citoh-pica|citoh in pica,
++ is1=\EN, use=citoh,
++citoh-elite|citoh in elite,
++ cols#96,
++ is1=\EE,
++ is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
++ use=citoh,
++citoh-comp|citoh in compressed,
++ cols#136,
++ is1=\EQ,
++ is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129.,
++ use=citoh,
++# citoh has infinite cols because we don't want lp ever inserting \n\t**.
++citoh-prop|citoh-ps|ips|citoh in proportional spacing mode,
++ cols#32767,
++ is1=\EP, use=citoh,
++citoh-6lpi|citoh in 6 lines per inch mode,
++ is3=\EA, use=citoh,
++citoh-8lpi|citoh in 8 lines per inch mode,
++ lines#88,
++ is3=\EB, use=citoh,
+
+-#### Infoton/General Terminal Corp.
++#### Control Data (cdc)
+ #
+
+-# gt100 sounds like something DEC would come out with. Let's hope they don't.
+-i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
++cdc456|cdc 456 terminal,
+ OTbs, am,
+ cols#80, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
+- ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
+- ind=^J, rmso=\Ea, smso=\Eb,
+-i400|infoton 400,
++ bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
++ el=^V, home=^Y, il1=\EL, ind=^J,
++
++# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
++cdc721|CDC Viking,
+ OTbs, am,
+- cols#80, lines#25,
+- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
+- dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
+- il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
+-# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
+-addrinfo,
+- am,
+ cols#80, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
+- cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\,
+-# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
+-infoton,
+- am,
++ clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
++ cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
++ kcuu1=^W, khome=^Y,
++cdc721ll|CDC Vikingll,
++ OTbs, am,
++ cols#132, lines#24,
++ clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
++ cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
++ kcuu1=^W, khome=^Y,
++# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out
++cdc752|CDC 752,
++ OTbs, am, bw, xhp,
+ cols#80, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
+- ed=^K, ind=^J, ll=^H^\,
++ bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
++ cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V,
++ home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1 \030\002\003\017,
++# CDC 756
++# The following switch/key settings are assumed for normal operation:
++# 96 chars SCROLL FULL duplex not BLOCK
++# Other switches may be set according to communication requirements.
++# Insert/delete-character cannot be used, as the whole display is affected.
++# "so" & "se" are commented out until jove handles "sg" correctly.
++cdc756|CDC 756,
++ OTbs, am, bw,
++ OTkn#10, cols#80, lines#24,
++ bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
++ cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z,
++ dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J,
++ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI,
++ kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED,
++ kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y,
++ khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4,
++ lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z,
++ rs1=\031\030\002\003\017,
++#
++# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
++#
++# Part of the long initialization string defines the "DOWN" key to the left
++# of the tab key to send an ESC. The real ESC key is positioned way out
++# in right field.
++#
++# The termcap won't work in 132 column mode due to the way it it moves the
++# cursor. Termcap doesn't have the capability (as far as I could tell) to
++# handle the 721 in 132 column mode.
++#
++# (cdc721: changed :ri: to :sr: -- esr)
++cdc721-esc|Control Data 721,
++ OTbs, OTpt, am, bw, msgr, xon,
++ OTkn#10, cols#80, it#8, lines#30,
++ bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z,
++ cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W,
++ dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW,
++ ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[,
++ is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o,
++ kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q,
++ kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x,
++ kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D,
++ ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^],
++ sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk,
++ smso=^^D, smul=^\, tbc=^^^RY,
++
++#### Getronics
++#
++# Getronics is a Dutch electronics company that at one time was called
++# `Geveke' and made async terminals; but (according to the company itself!)
++# they've lost all their documentation on the command set. The hardware
++# documentation suggests the terminals were actually manufactured by a
++# Taiwanese electronics company named Cal-Comp. There are known
++# to have been at least two models, the 33 and the 50.
++#
++
++# The 50 seems to be a top end vt220 clone, with the addition of a higher
++# screen resolution, a larger screen, at least 1 page of memory above and
++# below the screen, apparently pages of memory right and left of the screen
++# which can be panned, and about 75 function keys (15 function keys x normal,
++# shift, control, func A, func B). It also has more setup possibilities than
++# the vt220. The monitor case is dated November 1978 and the keyboard case is
++# May 1982.
++#
++# The vt100 emulation works as is. The entry below describes the rather
++# non-conformant (but more featureful) ANSI mode.
++#
++# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
++visa50|geveke visa 50 terminal in ansi 80 character mode,
++ bw, mir, msgr,
++ cols#80, lines#25,
++ acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
++ blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H,
++ hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
++ is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
++ ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
++ kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
++ kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
++ kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
++ kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
++ lf3=A insert line, lf4=A delete line, lf5=A clear,
++ lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
++ lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
++ rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
++ smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%i%p1%dd,
++
++#### Human Designed Systems (Concept)
++#
++# Human Designed Systems
++# 400 Fehley Drive
++# King of Prussia, PA 19406
++# Vox: (610)-277-8300
++# Fax: (610)-275-5739
++# Net: support@hds.com
++#
++# John Martin <john@hds.com> is their termcap expert. They're mostly out of
++# the character-terminal business now (1995) and making X terminals. In
++# particular, the whole `Concept' line described here was discontinued long
++# ago.
++#
++
++# From: <vax135!hpk> Sat Jun 27 07:41:20 1981
++# Extensive changes to c108 by arpavax:eric Feb 1982
++# Some unknown person at SCO then translated it to terminfo.
++#
++# There seem to be a number of different versions of the C108 PROMS
++# (with bug fixes in its Z-80 program).
++#
++# The first one that we had would lock out the keyboard of you
++# sent lots of short lines (like /usr/dict/words) at 9600 baud.
++# Try that on your C108 and see if it sends a ^S when you type it.
++# If so, you have an old version of the PROMs.
++#
++# You should configure the C108 to send ^S/^Q before running this.
++# It is much faster (at 9600 baud) than the c100 because the delays
++# are not fixed.
++# new status line display entries for c108-8p:
++# <is3> - init str #3 - setup term for status display -
++# set programmer mode, select window 2, define window at last
++# line of memory, set bkgnd stat mesg there, select window 0.
++#
++# <tsl> - to status line - select window 2, home cursor, erase to
++# end-of-window, 1/2 bright on, goto(line#0, col#?)
++#
++# <fsl> - from status line - 1/2 bright off, select window 0
++#
++# <dsl> - disable status display - set bkgnd status mesg with
++# illegal window #
++#
++# There are probably more function keys that should be added but
++# I don't know what they are.
++#
++# No delays needed on c108 because of ^S/^Q handshaking
++#
++c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
++ is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n,
++ rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p,
++c108-4p|concept108-4p|concept 108 w/4 pages,
++ OTbs, eslok, hs, xon,
++ pb@,
++ acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M,
++ cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c,
++ cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
++ ind=^J, is1=\EK\E!\E F,
++ is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n,
++ rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!,
++ smcup=\EU\Ev 8p\Ep\r\E\025,
++ tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
++c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
++ rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r,
++ use=c108-rv-4p,
++c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
++ flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
++ use=c108-4p,
++c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
++ cols#132,
++ is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n,
++ smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p,
+
+-# The ICL6402 was actually the Kokusai Display System 6402.
+-# The 6404 was the KDS7372 (color version of the 6402).
++# Concept 100:
++# These have only window relative cursor addressing, not screen
++# relative. To get it to work right here, smcup/rmcup (which
++# were invented for the concept) lock you into a one page
++# window for screen style programs.
+ #
+-# ICL6404 control codes follow:
++# To get out of the one page window, we use a clever trick:
++# we set the window size to zero ("\Ev " in rmcup) which the
++# terminal recognizes as an error and resets the window to all
++# of memory.
+ #
+-#code function
+-#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-#ctrl-A set SOM position at cursor position
+-#ctrl-G Bell
+-#ctrl-H Backspace
+-#ctrl-I Horiz tab
+-#ctrl-J Linefeed
+-#ctrl-K Cursor up
+-#ctrl-L Cursor right
+-#ctrl-M Carriage return
+-#ctrl-N Disable xon/xoff to host
+-#ctrl-O Enable xon/xoff to host
+-#ctrl-R Enable bidirectional mode
+-#ctrl-T Disable bidirectional mode
+-#ctrl-V Cursor down
+-#ctrl-Z Clear unprotected data to insert char
+-#ctrl-^ Cursor home
+-#ctrl-_ Newline
++# This trick works on c100 but does not on c108, sigh.
+ #
+-#ESC lead-in char for multiple character command
++# Some tty drivers use cr3 for concept, others use nl3, hence
++# the delays on cr and ind below. This padding is only needed at
++# 9600 baud and up. One or the other is commented out depending on
++# local conventions.
+ #
+-#ESC space R execute power on sequence
+-#ESC ! p1 p2 define scroll region:
+-# p1 = scroll top line: 20h - 37h
+-# p1 = scroll bottom line: 20h - 37h
+-#ESC " unlock keyboard
+-#ESC # lock keyboard
+-#ESC $ Semi-graphics mode on
+-#ESC % Semi-graphics mode off
+-#ESC & protect mode on
+-#ESC ' protect mode off
+-#ESC ( write protect mode off (full intensity)
+-#ESC ) write protect mode on (half intensity)
++# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe
++# less than 6 but more than 2 will work.
+ #
+-#ESC * clear screen
+-#ESC + clear unprotected data to insert char
+-#ESC , clear unprotected data to half intensity spaces
+-#ESC - p1 p2 p3 p4 address cursor to page, row, column:
+-# p1 = page number 0 - 3
+-# p2 = row 20h - 7fh
+-# p3 = column (lo) 20h - 7fh
+-# p4 = column (hi) 20h - 21h (only 132 col)
+-#ESC . p1 set cursor style:
+-# p1 = 0 invisible cursor
+-# p1 = 1 block blinking cursor
+-# p1 = 2 block steady cursor
+-# p1 = 3 underline blinking cursor
+-# p1 = 4 underline steady cursor
+-#ESC / transmit cursor location (page, row, column)
+-#ESC 0 p1 p2 p3 p4 program edit key:
+-# p1 = edit key code: '@'-'S', '`'-'s'
+-# p2 p3 p4 = program data (3 bytes)
++# Note: can't use function keys f7-f10 because they are
++# indistinguishable from arrow keys (!), also, del char and
++# clear eol use xon/xoff so they probably won't work very well.
+ #
+-#ESC 1 set tab
+-#ESC 2 clear tab at cursor
+-#ESC 3 clear all tabs
+-#ESC 4 send unprotect line to cursor
+-#ESC 5 send unprotect page to cursor
+-#ESC 6 send line to cursor
+-#ESC 7 send page to cursor
+-#ESC 8 n set scroll mode:
+-# n = 0 set jump scroll
+-# n = 1 set smooth scroll
+-#ESC 9 n control display:
+-# n = 0 display off
+-# n = 1 display on
+-#ESC : clear unprotected data to null
+-#ESC ; clear unprotected data to insert char
++# Also note that we don't define insrt/del char/delline/eop/send
++# because they don't transmit unless we reset them - I figured
++# it was a bad idea to clobber their definitions.
+ #
+-#ESC < keyclick on
+-#ESC = p1 p2 address cursor to row, column
+-# p1 = row 20h - 7fh
+-# p2 = column (lo) 20h - 7fh
+-# p3 = column (hi) 20h - 21h (only 132 col)
+-#ESC > keyclick off
+-#ESC ? transmit cursor location (row, column)
++# The <mc5> sequence changes the escape character to ^^ so that
++# escapes will be passed through to the printer. Only trouble
++# is that ^^ won't be - ^^ was chosen to be unlikely.
++# Unfortunately, if you're sending raster bits through to be
++# plotted, any character you choose will be likely, so we lose.
+ #
+-#ESC @ copy print mode on
+-#ESC A copy print mode off
+-#ESC B block mode on
+-#ESC C block mode off (conversation mode)
+-#ESC D F set full duplex
+-#ESC D H set half duplex
+-#ESC E line insert
+-#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd)
+-# 0 = black, 1 = red, 2 = green, 3 = yellow
+-# 4 = blue, 5 = magenta, 6 = cyan, 7 = white
+-#ESC G n set serial field attribute (n = 30h - 3Fh)
+-#ESC H n full graphics mode:
+-# n = 0 exit full graphics mode
+-# n = 1 enter full graphics mode
+-#ESC I back tab
+-#ESC J back page
+-#ESC K forward page
++# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
++# cannot be # in is2 because it will hang a c100 with no printer
++# if sent twice.
++c100|concept100|concept|c104|c100-4p|hds concept 100,
++ OTbs, am, eo, mir, ul, xenl,
++ cols#80, lines#24, pb#9600, vt#8,
++ bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
++ cub1=^H, cud1=^J, cuf1=\E=,
++ cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;,
++ dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>,
++ ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK,
++ ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>,
++ is1=\EK,
++ is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c,
++ is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
++ kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
++ kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
++ kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
++ khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
++ kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
++ mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
++ rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED,
++ rmcup=\Ev $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex,
++ rmso=\Ed, rmul=\Eg, sgr0=\EN@,
++ smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
++ smso=\ED, smul=\EG,
++c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
++ cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
++ smso=\EE, use=c100,
++oc100|oconcept|c100-1p|old 1 page concept 100,
++ in,
++ is3@, use=c100,
++
++# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
++# Lots of notes, originally inline, but ncurses doesn't grok that.
+ #
+-#ESC L unformatted page print
+-#ESC M L move window left (132 col mode only)
+-#ESC M R move window right (132 col mode only)
+-#ESC N set page edit (clear line edit)
+-#ESC O set line edit (clear page edit)
+-#ESC P formatted page print
+-#ESC Q character insert
+-#ESC R line delete
+-#ESC S send message unprotected only
+-#ESC T erase line to insert char
+-#ESC U set monitor mode (see ESC X, ESC u)
++# am: not available in power on mode, but turned on with \E[=107;207h in
++# is2=. Also, \E=124l in is2= could have been used to prevent needing
++# to specify xenl:, but that would have rendered the last space on the
++# last line useless.
++# bw: Not available in power on mode, but turned on with \E[=107;207h in
++# is2=.
++# clear: Could be done with \E[2J alone, except that vi (and probably most
++# other programs) assume that this also homes the cursor.
++# dsl: Go to window 2, go to the beginning of the line, use a line feed to
++# scroll the window, and go back to window 1.
++# is2: the string may cause a warning to be issued by tic that it
++# found a very long line and that it suspects that a comma is missing
++# somewhere. This warning can be ignored (unless it comes up more than
++# once). The initialization string contains the following commands:
++#
++# [Setup mode items changed from factory defaults:]
++# \E)0 set alternate character set to
++# graphics
++# ^O set character set to default
++# [In case it wasn't]
++# \E[m turn off all attributes
++# [In case they weren't off]
++# \E[=107; cursor wrap and
++# 207h character wrap on
++# \E[90;3u set Fkey definitions to "transmit"
++# defaults
++# \E[92;3u set cursor key definitions to
++# "transmit" defaults
++# \E[43;1u set shift F13 to transmit...
++# \177\E$P\177
++# \E[44;1u set shift F14 to transmit...
++# \177\E$Q\177
++# \E[45;1u set shift F15 to transmit...
++# \177\E$R\177
++# \E[46;1u set shift F16 to transmit...
++# \177\E$S\177
++# \E[200;1u set shift up to transmit...
++# \177\E$A\177
++# \E[201;1u set shift down to transmit...
++# \177\E$B\177
++# \E[202;1u set shift right to transmit...
++# \177\E$C\177
++# \E[203;1u set shift left to transmit...
++# \177\E$D\177
++# \E[204;1u set shift home to transmit...
++# \177\E$H\177
++# \E[212;1u set backtab to transmit...
++# \177\E$I\177
++# \E[213;1u set shift backspace to transmit...
++# \177\E$^H\177
++# \E[214;1u set shift del to transmit...
++# "\E$\177"
++# [Necessary items not mentioned in setup mode:]
++# \E[2!w move to window 2
++# \E[25;25w define window as line 25 of memory
++# \E[!w move to window 1
++# \E[2*w show current line of window 2 as
++# status line
++# \E[2+x set meta key to use high bit
++# \E[;3+} move underline to bottom of character
++#
++# All Fkeys are set to their default transmit definitions with \E[90;3u
++# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty
++# setting MUST be redefined or deactivated, because the default is
++# contained in almost all of this terminal's Fkey strings! If for some
++# reason "quit" cannot be altered, the Fkeys can, but it would be
++# necessary to change ^| to ^] in all of these definitions, and add
++# \E[2;029!t to is2.
++# lines: is set to 24 because this terminal refuses to treat the 25th
++# line normally.
++# ll: Not available in power on mode, but turned on with \E[=107;207h in
++# is2=.
++# lm: Pointless, given that this definition locks a single screen of
++# memory into view, but what the hey...
++# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
++# other attributes alone), but some programs expect this to turn off
++# everything.
++# rmul: Could use \E[4!{ to turn off only underline (leaving any other
++# attributes alone), but some programs expect this to turn off
++# everything.
++# sgr: Attributes are set on this terminal with the string \E[ followed by
++# a list of attribute code numbers (in decimal, separated by
++# semicolons), followed by the character m. The attribute code
++# numbers are:
++# 1 for bold;
++# 2 for dim (which is ignored in power on mode);
++# 4 for underline;
++# 5 for blinking;
++# 7 for inverse;
++# 8 for not displayable; and
++# =99 for protected (except that there are strange side
++# effects to protected characters which make them inadvisable).
++# The mapping of terminfo parameters to attributes is as follows:
++# %p1 (standout) = bold and inverse together;
++# %p2 (underline) = underline;
++# %p3 (reverse) = inverse;
++# %p4 (blink) = blinking;
++# %p5 (dim) is ignored;
++# %p6 (bold) = bold;
++# %p7 (invisible) = not displayable;
++# %p8 (protected) is ignored; and
++# %p9 (alt char set) = alt char set.
++# The code to do this is:
++# \E[0 OUTPUT \E[0
++# %?%p1%p6%O IF (standout; bold) OR
++# %t;1 THEN OUTPUT ;1
++# %; ENDIF
++# %?%p2 IF underline
++# %t;4 THEN OUTPUT ;4
++# %; ENDIF
++# %?%p4 IF blink
++# %t;5 THEN OUTPUT ;5
++# %; ENDIF
++# %?%p1%p3%O IF (standout; reverse) OR
++# %t;7 THEN OUTPUT ;7
++# %; ENDIF
++# %?%p7 IF invisible
++# %t;8 THEN OUTPUT ;8
++# %; ENDIF
++# m OUTPUT m
++# %?%p9 IF altcharset
++# %t^N THEN OUTPUT ^N
++# %e^O ELSE OUTPUT ^O
++# %; ENDIF
++# sgr0: Everything is turned off (including alternate character set), since
++# there is no way of knowing what it is that the program wants turned
++# off.
++# smul: The "underline" attribute is reconfigurable to an overline or
++# strikethru, or (as done with \E[;3+} in is2=), to a line at the true
++# bottom of the character cell. This was done to allow for more readable
++# underlined characters, and to be able to distinguish between an
++# underlined space, an underscore, and an underlined underscore.
++# xenl: Terminal can be configured to not need this, but this "glitch"
++# behavior is actually preferable with autowrap terminals.
+ #
+-#ESC V n select video attribute mode:
+-# n = 0 serial field attribute mode
+-# n = 1 parallel character attribute mode
+-#ESC V 2 n define line attribute:
+-# n = 0 single width single height
+-# n = 1 single width double height
+-# n = 2 double width single height
+-# n = 3 double width double height
+-#ESC V 3 n select character font:
+-# n = 0 system font
+-# n = 1 user defined font
+-#ESC V 4 n select screen mode:
+-# n = 0 page screen mode
+-# n = 1 virtual screen mode
+-#ESC V 5 n control mouse mode:
+-# n = 0 disable mouse
+-# n = 1 enable sample mode
+-# n = 2 send mouse information
+-# n = 3 enable request mode
+-#ESC W character delete
+-#ESC X clear monitor mode (see ESC U, ESC u)
+-#ESC Y erase page to insert char
++# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
++# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2
++# string modifies the 'O' in kf43 to kf46 to a '$'.
+ #
+-#ESC Z n send user/status line:
+-# n = 0 send user line
+-# n = 1 send status line
+-# n = 2 send terminal ID
+-#ESC [ p1 p2 p3 set character attribute (parallel char mode):
+-# p1: 0 = normal
+-# 1 = blank
+-# 2 = blink
+-# 3 = blink blank (= blank)
+-# 4 = reverse
+-# 5 = reverse blank
+-# 6 = reverse blink
+-# 7 = reverse blink blank (= reverse blank)
+-# 8 = underline
+-# 9 = underline blank
+-# : = underline blink
+-# ; = underline blink blank
+-# < = reverse underline
+-# = = reverse underline blank
+-# > = reverse underline blink
+-# ? = reverse underline blink blank
+-# p2, p3: f/grnd, b/grnd colour
+-# (see ESC F for colours)
+-# use ZZ for mono, eg.
+-# ESC [ 0 Z Z for normal
+-# ESC [ 4 Z Z for inverse etc.
++# kcbt was originally ^I but redefined in is2=.
++# kHOM was \E[H originally but redefined in is2=, as were a number of
++# other keys.
++# kDC was originally \177 but redefined in is2=.
+ #
+-#ESC \ n set page size:
+-# n = 1 24 lines/page
+-# n = 2 48 lines/page
+-# n = 3 72 lines/page
+-# n = 4 96 lines/page
+-#ESC ] n set Wordstar mode:
+-# n = 0 normal (KDS7372) mode
+-# n = 1 Wordstar mode
++# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
++# tsl: Go to window 2, then do an hpa=.
+ #
+-#ESC b set foreground colour screen
++#------- flash=\E[8;3!}^G\E[3;3!}
++#------- flash=\E[?5h$<100>\E[?5l
++# There are two ways to flash the screen, both of which have their drawbacks.
++# The first is to set the bell mode to video, transmit a bell character, and
++# set the bell mode back - but to what? There is no way of knowing what the
++# user's old bell setting was before we messed with it. Worse, the command to
++# set the bell mode also sets the key click volume, and there is no way to say
++# "leave that alone", or to know what it's set to, either.
++# The second way to do a flash is to set the screen to inverse video, pad for a
++# tenth of a second, and set it back - but like before, there's no way to know
++# that the screen wasn't ALREADY in inverse video, or that the user may prefer
++# it that way. The point is moot anyway, since vi (and probably other
++# programs) assume that by defining flash=, you want the computer to use it
++# INSTEAD of bel=, rather than as a secondary type of signal.
+ #
+-#ESC c n enter self-test mode:
+-# n = 0 exit self test mode
+-# n = 1 ROM test
+-# n = 2 RAM test
+-# n = 3 NVRAM test
+-# n = 4 screen display test
+-# n = 5 main/printer port test
+-# n = 6 mouse port test
+-# n = 7 graphics board test
+-# n = 8 graphics memory test
+-# n = 9 display all 'E'
+-# n = : display all 'H'
+-#ESC d set background colour screen
++#------- cvvis=\E[+{
++# The is the power on setting, which is also as visible as the cursor
++# gets.
++#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
++# Windowing is possible, but not defined here because it is also used to
++# emulate status line functions. Allowing a program to set a window could
++# clobber the status line or render it unusable. There is additional memory,
++# but screen scroll functions are destructive and do not make use of it.
+ #
+-#ESC e n program insert char (n = insert char)
+-#ESC f text CR load user status line with 'text'
++#------- dim= Not available in power on mode.
++# You have a choice of defining low intensity characters as "half bright" and
++# high intensity as "normal", or defining low as "normal" and high as "bold".
++# No matter which you choose, only one of either "half bright" or "bold" is
++# available at any time, so taking the time to override the default is
++# pointless.
+ #
+-#ESC g display user status line on 25th line
+-#ESC h display system status line on 25th line
+-#ESC i tab
+-#ESC j reverse linefeed
+-#ESC k n duplex/local edit mode:
+-# n = 0 duplex edit mode
+-# n = 1 local edit mode
+-#ESC l n select virtual screen:
+-# n = 0 screen 1
+-# n = 1 screen 2
+-#ESC m save current config to NVRAM
+-#ESC n p1 select display screen:
+-# p1 = 0 screen 1
+-# p1 = 1 screen 2
+-# p1 = 2 screen 3
+-# p1 = 3 screen 4
+-#ESC o p1 p2 set characters/line and attribute:
+-# p1 = 0 80 chars/line
++#------- prot=\E[=0;99m
++# Not defined, because it appears to have some strange side effects.
++#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
++#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
++#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
++# Available, but making them available to programs is inadvisable.
++# The code to do this is:
++# %?%p1%{24}%< IF ((key; 24) <;
++# %p1%{30}%> ((key; 30) >;
++# %p1%{54}%< (key; 54) <
++# %A ) AND
++# %O ) OR
++# [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
++# %t\E[ THEN OUTPUT \E[
++# %p1%d OUTPUT (key) as decimal
++# [next line applies to pfx only]
++# ;1 OUTPUT ;1
++# u OUTPUT u
++# \177 OUTPUT \177
++# %p2%s OUTPUT (string) as string
++# \177 OUTPUT \177
++# [DEL chosen as delimiter, but could be any character]
++# [implied: ELSE do nothing]
++# %; ENDIF
+ #
+-#ESC o p1 p2 set characters/line and attribute:
+-# p1 = 0 80 chars/line
+-# p1 = 1 132 chars/line
+-# p2 = 0 single width single height
+-# p2 = 1 single width double height
+-# p2 = 2 double width single height
+-# p2 = 3 double width double height
++#------- rs2=
++# Not defined since anything it might do could be done faster and easier with
++# either Meta-Shift-Reset or the main power switch.
+ #
+-#ESC q insert mode on
+-#ESC r edit mode on
+-#ESC s send message all
+-#ESC t erase line to null
+-#ESC u clear monitor mode (see ESC U, ESC X)
+-#ESC v autopage mode on
+-#ESC w autopage mode off
+-#ESC x p1 p2 p3 define delimiter code...
+-#ESC y erase page to null
++#------- smkx=\E[1!z
++#------- rmkx=\E[!z
++# These sequences apply to the cursor and setup keys only, not to the
++# numeric keypad. But it doesn't matter anyway, since making these
++# available to programs is inadvisable.
++# For the key definitions below, all sequences beginning with \E$ are
++# custom and programmed into the terminal via is2. \E$ also has no
++# meaning to any other terminal.
+ #
+-#ESC z 2 p1 p2 p3 p4 draw quadrangle:
+-# p1 = starting row
+-# p2 = starting column
+-# p3 = end row
+-# p4 = end column
++#------- cmdch=\E[;%p1%d!t
++# Available, but making it available to programs is inadvisable.
++#------- smxon=\E[1*q
++# Available, but making it available to programs is inadvisable.
++# Terminal will send XON/XOFF on buffer overflow.
++#------- rmxon=\E[*q
++# Available, but making it available to programs is inadvisable.
++# Terminal will not notify on buffer overflow.
++#------- smm=\E[2+x
++#------- rmm=\E[+x
++# Available, but making them available to programs is inadvisable.
+ #
+-#ESC { p1 p2 p3 p4 configure main port
+-# (baud, stop bits, parity, word length)
++# Printing:
++# It's not made clear in the manuals, but based on other ansi/vt type
++# terminals, it's a good guess that this terminal is capable of both
++# "transparent print" (which doesn't copy data to the screen, and
++# therefore needs mc5i: specified to say so) and "auxilliary print"
++# (which does duplicate printed data on the screen, in which case mc4=
++# and mc5= should use the \E[?4i and \E[?5i strings instead).
++
++hds200|Human Designed Systems HDS200,
++ am, bw, eslok, hs, km, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, lm#0,
++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
++ blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
++ clear=\E[H\E[J, cnorm=\E[+{, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
++ fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
++ ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ invis=\E[0;8m,
++ is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+},
++ kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
++ kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r,
++ kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ,
++ kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r,
++ kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r,
++ kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r,
++ kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r,
++ kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r,
++ kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r,
++ kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r,
++ kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r,
++ kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
++ kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
++ kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
++ nel=\E[E, rc=\E8, rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l,
++ rmso=\E[m\017, rmul=\E[m\017, sc=\E7,
++ sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
++ smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
++ vpa=\E[%i%p1%dd, use=ansi+pp,
++
++# <ht> through <el> included to specify padding needed in raw mode.
++# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
++avt-ns|concept avt no status line,
++ OTbs, am, eo, mir, ul, xenl, xon,
++ cols#80, it#8, lines#24, lm#192,
++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
++ dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
++ hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
++ invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
++ is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t,
++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
++ kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H,
++ mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
++ pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
++ prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
++ ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
++ rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
++ sc=\E7,
++ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;%?%p8%t99;%;m%?%p5%t\E[1!{%;%?%p9%t\017%e\016%;$<1>,
++ sgr0=\E[m\016$<1>, smacs=\017$<1>,
++ smcup=\E[=4l\E[1;24w\E2\r, smir=\E[4h,
++ smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%p1%{1}%+%dd,
++avt-rv-ns|concept avt in reverse video mode/no status line,
++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
++ use=avt-ns,
++avt-w-ns|concept avt in 132 column mode/no status line,
++ is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
++ use=avt-ns,
++avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
++ smcup=\E[H\E[1;24;1;132w, use=avt-ns,
++
++# Concept AVT with status line. We get the status line using the
++# "Background status line" feature of the terminal. We swipe the
++# first line of memory in window 2 for the status line, keeping
++# 191 lines of memory and 24 screen lines for regular use.
++# The first line is used instead of the last so that this works
++# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
++# assumes an 8 page AVT but lm isn't currently used anywhere.)
+ #
+-#ESC | p1 p2 text Ctrl-Y program function key with 'text':
+-# p1 = function key code:
+-# '1' - ';' normal f1- f11
+-# '<' - 'F' shifted f1 - f11
+-# p2 = program mode:
+-# 1 = FDX
+-# 2 = LOC
+-# 3 = HDX
+-# Ctrl-Y = terminator
+-# (use Ctrl-P to escape ^P, ^Y )
++avt+s|concept avt status line changes,
++ eslok, hs,
++ lm#191,
++ dsl=\E[0*w, fsl=\E[1;1!w,
++ is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
++ rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
++ tsl=\E[2;1!w\E[;%p1%dH\E[2K,
++avt|avt-s|concept-avt|avt w/80 columns,
++ use=avt+s, use=avt-ns,
++avt-rv|avt-rv-s|avt reverse video w/sl,
++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
++ use=avt+s, use=avt-ns,
++avt-w|avt-w-s|concept avt 132 cols+status,
++ is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
++ use=avt+s, use=avt-ns,
++avt-w-rv|avt-w-rv-s|avt wide+status+rv,
++ flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
++ smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
++
++#### Contel Business Systems.
+ #
+-#ESC } p1 p2 p3 p4 configure printer port
+-# (baud, stop bits, parity, word length)
+-#ESC ~ send system status
++
++# Contel c300 and c320 terminals.
++contel300|contel320|c300|Contel Business Systems C-300 or C-320,
++ am, in, xon,
++ cols#80, lines#24, xmc#1,
++ bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
++ dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
++ el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
++ hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
++ kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
++ kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
++ rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3,
++# Contel c301 and c321 terminals.
++contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321,
++ flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>,
++ use=contel300,
++
++#### Data General (dg)
+ #
+-# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
++# According to James Carlson <carlson@xylogics.com> writing in January 1995,
++# the terminals group at Data General was shut down in 1991; all these
++# terminals have thus been discontinued.
+ #
+-# Entry is by esr going solely on above information and is UNTESTED.
+-# This actually looks a lot like a Televideo 9xx.
+-# This entry uses page 0 and is monochrome; I'm not brave enough to try
+-# to make color work without a test terminal. The <am> capability is a guess.
+-# The initialization string sets conversation mode, blinking underline cursor,
+-# full duplex, parallel attribute mode, display user status line, white
+-# foreground, black background, normal highlight.
++# DG terminals have function keys that respond to the SHIFT and CTRL keys,
++# e.g., SHIFT-F1 generates a different code from F1. To number the keys
++# sequentially, first the unmodified key codes are listed as F1 through F15.
++# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
++# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
++# F46 through F60. This is done in the private "includes" below whose names
++# start with "dgkeys+".
+ #
+-icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372,
+- OTbs, am, hs,
+- cols#80, lines#24,
+- bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*,
+- cnorm=\E.3, cr=^M,
+- csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c,
+- cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I,
+- hts=\E1, il1=\EE, invis=\E[1ZZ,
+- is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
+- rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
+- rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
+- sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
+- sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
+-icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
+- rs2=\Eo1, use=icl6404,
++# DG terminals generally support 8 bit characters. For each of these terminals
++# two descriptions are supplied:
++# 1) A default description for 8 bits/character communications, which
++# uses the default DG international character set and keyboard codes.
++# 2) A description with suffix "-7b" for 7 bits/character communications.
++# This description must use the NON-DEFAULT native keyboard language.
++
++# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
++# Ctrl/Shift fdkeys (kf34-kf44).
++
++dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys,
++ ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z,
++ kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
++ kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z,
++ kf11=\233011z, kf12=\233012z, kf13=\233013z,
++ kf14=\233014z, kf15=\233000z, kf16=\233101z,
++ kf17=\233102z, kf18=\233103z, kf19=\233104z,
++ kf2=\233002z, kf20=\233105z, kf21=\233106z,
++ kf22=\233107z, kf23=\233108z, kf24=\233109z,
++ kf25=\233110z, kf26=\233111z, kf27=\233112z,
++ kf28=\233113z, kf29=\233114z, kf3=\233003z,
++ kf30=\233100z, kf31=\233201z, kf32=\233202z,
++ kf33=\233203z, kf34=\233204z, kf35=\233205z,
++ kf36=\233206z, kf37=\233207z, kf38=\233208z,
++ kf39=\233209z, kf4=\233004z, kf40=\233210z,
++ kf41=\233211z, kf42=\233212z, kf43=\233213z,
++ kf44=\233214z, kf45=\233200z, kf46=\233301z,
++ kf47=\233302z, kf48=\233303z, kf49=\233304z,
++ kf5=\233005z, kf50=\233305z, kf51=\233306z,
++ kf52=\233307z, kf53=\233308z, kf54=\233309z,
++ kf55=\233310z, kf56=\233311z, kf57=\233312z,
++ kf58=\233313z, kf59=\233314z, kf6=\233006z,
++ kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z,
++ khome=\233H, kprt=\233i,
++
++dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys,
++ ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z,
++ kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z,
++ kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z,
++ kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z,
++ kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z,
++ kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z,
++ kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z,
++ kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z,
++ kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z,
++ kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z,
++ kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z,
++ kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z,
++ kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z,
++ kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z,
++ kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z,
++ kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z,
++ kf9=\E[009z, khome=\E[H, kprt=\E[i,
++
++dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
++ kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K,
++ kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c,
++ kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
++ kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
++ kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
++ kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
++ kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
++ kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
++ kf8=^^x, kf9=^^y, khome=^H,
++
++dgkeys+15|Private entry describing 15 DG mode special keys,
++ kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^,
++ kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^},
++ kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d,
++ kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
++ kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
++ kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
++ kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
++ kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
++ kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
++ kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
++ kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x,
++ kf9=^^y,
+
+-#### Interactive Systems Corp
+-#
+-# ISC used to sell OEMed and customized hardware to support ISC UNIX.
+-# ISC UNIX still exists in 1995, but ISC itself is no more; they got
+-# bought out by Sun.
++# Data General color terminals use the "Tektronix" color model. The total
++# number of colors varies with the terminal model, as does support for
++# attributes used in conjunction with color.
++
++# Removed u7, u8 definitions since they conflict with tack:
++# Preserve user-defined colors in at least some cases.
++# u7=^^Fh,
++# Default is ACM mode.
++# u8=^^F}20^^Fi^^F}21,
+ #
++dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
++ bce,
++ colors#16, ncv#53, pairs#256,
++ op=\036Ad\036Bd,
++ setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
++ setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
++ setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
+
+-# From: <cithep!eric> Wed Sep 16 08:06:44 1981
+-# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
+-# ":le=^_:" later overridden -- esr)
+-intext|Interactive Systems Corporation modified owl 1200,
+- OTbs, am,
+- cols#80, it#8, lines#24, xmc#1,
+- bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\,
+- dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>,
+- el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H,
+- kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
+- kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
+- kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
+- rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
+- smso=^V$\,,
+-intext2|intextii|INTERACTIVE modified owl 1251,
+- am, bw, ul,
+- cols#80, lines#24, xmc#0,
+- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=\E[D,
+- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
+- flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
+- hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
+- kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
+- kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r,
+- kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r,
+- khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
+- lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
+- lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
+- smul=\E[18 D,
++dg+fixed|Fixed color info for DG D430C terminals in DG mode,
++ use=dgunix+fixed,
+
+-#### Kimtron (abm, kt)
+-#
+-# Kimtron seems to be history, but as March 1998 these people are still
+-# offering repair services for Kimtron equipment:
+-#
+-# Com/Pair Monitor Service
+-# 1105 N. Cliff Ave.
+-# Sioux Falls, South Dakota 57103
+-#
+-# WATS voice: 1-800/398-4946
+-# POTS fax: +1 605/338-8709
+-# POTS voice: +1 605/338-9650
+-# Email: <compair@sd.cybernex.net>
+-# Internet/Web: <http://www.com-pair.com>
+-#
+-# Kimtron entries include (undocumented) codes for: enter dim mode,
+-# enter bold mode, enter reverse mode, turn off all attributes.
+-#
++# Video attributes are coordinated using static variables set by "sgr", then
++# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
++# (D=dim, U=underline, B=blink, R=reverse.)
++dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode,
++ bce,
++ colors#8, ncv#16, pairs#64,
++ op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m,
++ setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
+
+-# Kimtron ABM 85 added by Dual Systems
+-# (abm85: removed duplicated ":kd=^J:" -- esr)
+-abm85|Kimtron ABM 85,
+- OTbs, am, bw, msgr,
+- cols#80, it#8, lines#24, xmc#1,
+- cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\Ey, el=\Et, ht=^I,
+- if=/usr/share/tabset/stdcrt, il1=\EE,
+- is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H,
+- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek,
+- rmul=\Em, smir=\EQ, smso=\Ej, smul=\El,
+-# Kimtron ABM 85H added by Dual Systems.
+-# Some notes about the abm85h entries:
+-# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
+-# firmware revs prior to SP51
+-# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
+-# abm85e entry if it is in tvi920 emulation mode. They are incompatible
+-# in some places and NOT software settable i.e., <is2> can't fix it)
+-# 3) In 85h mode, the arrow keys and special functions transmit when
+-# the terminal is in dup-edit, and work only locally in local-edit.
+-# Vi won't swallow `del char' for instance, but <smcup> turns on
+-# dup-edit anyway so that the arrow keys will work right. If the
+-# arrow keys don't work the way you like, change <smcup>, <rmcup>, and
+-# <is2>. Note that 920E mode does not have software commands to toggle
+-# between dup and local edit, so you get whatever was set last on the
+-# terminal.
+-# 4) <flash> attribute is nice, but seems too slow to work correctly
+-# (\Eb<pad>\Ed)
+-# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
+-# are selected, the <xmc@> entry should be removed.
+-# 6) auto new-line should be on (selectable from setup mode only)
+-#
+-# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985
+-abm85h|Kimtron ABM 85H native mode,
+- hs,
+- xmc@,
+- bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@,
+- fsl=^M, invis@,
+- is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El,
+- kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr,
+- use=abm85,
+-abm85e|Kimtron ABM 85H in 920E mode,
+- xmc@,
+- bel=^G, dim=\E), flash@,
+- is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em,
+- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
+-abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.,
+- xmc@,
+- bel=^G, dim=\E),
+- is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF,
+- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
+-# From: <malman@bbn-vax.arpa>
+-# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
+-kt7|kimtron model kt-7,
+- OTbs, am,
+- cols#80, it#8, lines#24,
+- cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
+- if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E",
+- kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L,
+- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r,
+- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr,
+-# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
+-# other kt7 entry and the adjacent key capabilities). Removed EE which is
+-# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight
+-# but we can't figure out what.
+-kt7ix|kimtron model kt-7 or 70 in IX mode,
+- am, bw,
+- cols#80, it#8, lines#25,
+- acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI,
+- civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V,
+- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M,
+- home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J,
+- is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
+- ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
+- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
+- nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
+- sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
++dg+color|Color info for Data General D470C terminals in ANSI mode,
++ colors#16, ncv#53, pairs#256,
++ setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
++ use=dg+color8,
++
++dgmode+color8|Color info for Data General D220/D230C terminals in DG mode,
++ bce,
++ colors#8, ncv#16, pairs#64,
++ op=\036Ad\036Bd,
++ setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
++ setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
++ setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
++
++dgmode+color|Color info for Data General D470C terminals in DG mode,
++ colors#16, pairs#256,
++ setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
++ setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
++ use=dgmode+color8,
++
++dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
++ bce, ccc,
++ colors#52, ncv#53, pairs#26,
++ initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X,
++ oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
++ op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
++ scp=\036RG2%p1%02X,
++
++# Colors are in the order: normal, reverse, dim, dim + reverse.
++dg+ccc|Configurable color info for DG D430C terminals in DG mode,
++ bce, ccc,
++ colors#52, ncv#53, pairs#26,
++ initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
++ oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
++ op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
++ scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
++
++# The generic DG terminal type (an 8-bit-clean subset of the 6053)
++# Initialization string 1 sets:
++# ^R - vertical scrolling enabled
++# ^C - blinking enabled
++dg-generic|Generic Data General terminal in DG mode,
++ am, bw, msgr, xon,
++ cols#80, lines#24,
++ bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
++ cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C,
++ mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\,
++ smul=^T, use=dgkeys+11,
++
++# According to the 4.4BSD termcap file, the dg200 <cup> should be the
++# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
++# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
++# maybe they were originally nuls (which would fit).
++
++dg200|data general dasher 200,
++ OTbs, am, bw,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
++ cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J,
++ kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q,
++ kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x,
++ kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U,
++ smso=^^D, smul=^T,
++
++# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL
++dg210|dg-ansi|Data General 210/211,
++ am,
++ cols#80, lines#24,
++ OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m,
++ smso=\E[7;m, smul=\E[4;m,
++# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
++# courtesy of Carlos Rucalde of Vantage Software, Inc.
++# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
++# I suspect the d200 function keys actually work on the dg211, check it out.)
++dg211|Data General d211,
++ cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
++ kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
++ rmso=\036E$<0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
++
++# dg450 from Cornell (not official)
++dg450|dg6134|data general 6134,
++ cub1@, cuf1=^X, use=dg200,
++
++# Not official...
++# Note: lesser Dasher terminals will not work with vi because vi insists upon
++# having a command to move straight down from any position on the bottom line
++# and scroll the screen up, or a direct vertical scroll command. The 460 and
++# above have both, the D210/211, for instance, has neither. We must use ANSI
++# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
++# backspace on all terminals. This is not so in DG mode.
++# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
++# grounds that there is no matching ":ml:"
++dg460-ansi|Data General Dasher 460 in ANSI-mode,
++ OTbs, am, msgr, ul,
++ cols#80, it#8, lines#24,
++ OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
++ dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
++ ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
++ kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
++ kf8=\E[009z, kf9=\E[00\:z, khome=\E[H, lf0=f1, lf1=f2,
++ lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10,
++ mc0=\E[i, rev=\E[7m, ri=\E[T, rmso=\E[m, rmul=\E[05,
++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m,
++ sgr0=\E(B\E[m, smso=\E[7m, smul=\E[4m, u6=\E[%d;%dR,
++ u7=\E[6n, u8=\E[5n, u9=\E[0n,
++# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
++# Data General 605x
++# Ought to work for a Model 6242, Type D210 as well as a 605x.
++# Note that the cursor-down key transmits ^Z. Job control users, beware!
++# This also matches a posted description of something called a `Dasher 100'
++# so there's a dg100 alias here.
++# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
++dg6053-old|dg100|data general 6053,
++ OTbs, am, bw, ul,
++ cols#80, lines#24,
++ OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z,
++ cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K,
++ home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X,
++ kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v,
++ kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L,
++ rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D,
++ smul=^T,
+
+-#### Microdata/MDIS
++# (Some performance can be gained over the generic DG terminal type)
++dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053,
++ xon@,
++ home=^P\0\0, ll=^P\0^W, use=dg-generic,
++
++# Like 6053, but adds reverse video and more keypad and function keys.
++d200|d200-dg|Data General DASHER D200,
++ bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^],
++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;,
++ sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15,
++ use=dg6053,
++
++# DASHER D210 series terminals in ANSI mode.
++# Reverse video, no insert/delete character/line, 7 bits/character only.
+ #
+-# This was a line of terminals made by McDonnell-Douglas Information Systems.
+-# These entries come direct from MDIS documentation. I have edited them only
+-# to move primary names of the form p[0-9] * to aliases, and to comment out
+-# <rmacs>/<smacs> in a couple of entries without <acsc> strings. I have
+-# also removed the change history; the last version indicates this is
+-# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
++# Initialization string 1 sets:
++# <0 - scrolling enabled
++# <1 - blink enabled
++# <4 - print characters regardless of attributes
++d210|d214|Data General DASHER D210 series,
++ am, bw, msgr, xon,
++ cols#80, lines#24,
++ bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
++ el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
++ ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
++ sgr=\E[%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;%?%p1%p3%|%p6%|%t7;%;m,
++ sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
++
++# DASHER D210 series terminals in DG mode.
++# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
++d210-dg|d214-dg|Data General DASHER D210 series in DG mode,
++ xon,
++ ed=^^FF, use=d200-dg,
++
++# DASHER D211 series terminals in ANSI mode.
++# Like the D210, but with 8-bit characters and local printer support.
++#
++# Initialization string 2 sets:
++# \E[2;1;1;1v
++# 2;1 - 8 bit operations
++# 1;1 - 8 bit (international) keyboard language
++# \E(B - default primary character set (U.S. ASCII)
++# \E)4 - default secondary character set (international)
++# ^O - primary character set
+ #
++d211|d215|Data General DASHER D211 series,
++ km,
++ is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b,
++ use=d210,
+
+-# McDonnell Information Systems Terminal Family History
+-# =========================================
++# Initialization string 2 sets:
++# \E[2;0;1;0v
++# 2;0 - 7 bit operations
++# 1;0 - 7 bit (native) keyboard language
++# \E(0 - default character set (the keyboard native language)
++# ^O - primary character set
++d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode,
++ km@,
++ is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211,
++
++# Like the D210 series, but adds support for 8-bit characters.
+ #
+-# Prism-1, Prism-2 and P99:
+-# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
++# Reset string 2 sets:
++# ^^N - secondary character set
++# ^^FS0> - 8 bit international character set
++# ^^O - primary character set
++# ^^FS00 - default character set (matching the native keyboard language)
+ #
+-# Prism-4 and Prism-5:
+-# Slightly less ancient range of Microdata terminals. Follow-on from
+-# Prism-2, but with many enhancements. P5 has eight display pages.
++d211-dg|d215-dg|Data General DASHER D211 series in DG mode,
++ km,
++ rs2=\036N\036FS0>\036O\036FS00, use=d210-dg,
++
++d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode,
++ use=d211-dg,
++
++# Enhanced DG mode with changes to be more UNIX compatible.
++d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode,
++ mc5i,
++ it#8,
++ acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI,
++ clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA,
++ el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J,
++ is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd,
++ kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB,
++ kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0,
++ mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00,
++ rs2=\036N\036FS0E\036O\036FS00,
++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
++ sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11,
++ vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg,
++d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines,
++ lines#25,
++ is3=\036Fz2, use=d216+,
++
++d217-unix|Data General DASHER D217 in DG-UNIX mode,
++ use=d216-unix,
++d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines,
++ use=d216-unix-25,
++
++# DASHER D220 color terminal in ANSI mode.
++# Like the D470C but with fewer colors and screen editing features.
+ #
+-# Prism-6:
+-# A special terminal for use with library systems, primarily in Germany.
+-# Limited numbers. Similar functionality to P5 (except attributes?).
++# Initialization string 1 sets:
++# \E[<0;<1;<4l
++# <0 - scrolling enabled
++# <1 - blink enabled
++# <4 - print characters regardless of attributes
++# \E[m - all attributes off
++# Reset string 1 sets:
++# \Ec - initial mode defaults (RIS)
+ #
+-# Prism-7, Prism-8 and Prism-9:
+-# More recent range of MDIS terminals, in which P7 and P8
+-# replace the P4 & P5, with added functionality, and P9 is the flagship.
+-# The P9 has two emulation modes - P8 and ANSI - and includes a
+-# large number of the DEC VT220 control sequences. Both
+-# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
++d220|Data General DASHER D220,
++ mc5i@,
++ dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
++ use=dg+color8, use=d470c,
++
++d220-7b|Data General DASHER D220 in 7 bit mode,
++ mc5i@,
++ dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
++ use=dg+color8, use=d470c-7b,
++
++# Initialization string 3 sets:
++# - default cursor (solid rectangle)
++# Reset string 2 sets:
++# ^^N - secondary character set
++# ^^FS0> - 8 bit international character set
++# ^^O - primary character set
++# ^^FS00 - default character set (matching the native keyboard language)
+ #
+-# Prism-12 and Prism-14:
+-# Latest range, functionally very similar to the P9. The P14 has a
+-# black-on-white overscanning screen.
++d220-dg|Data General DASHER D220 color terminal in DG mode,
++ mc5i@,
++ dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
++ rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
++ use=d470c-dg,
++
++# DASHER D230C color terminal in ANSI mode.
++# Like the D220 but with minor ANSI compatibility improvements.
+ #
+-# The terminfo definitions given here are:
++d230c|d230|Data General DASHER D230C,
++ blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J,
++ rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m,
++ sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
++ sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m,
++ smul=\E[4;50m, use=dgkeys+7b, use=d220,
++
++d230c-dg|d230-dg|Data General DASHER D230C in DG mode,
++ use=d220-dg,
++
++# DASHER D400/D450 series terminals.
++# These add intelligent features like insert/delete to the D200 series.
+ #
+-# p2 - Prism-2 (or Prism-1 or P99).
++# Initialization string 2 sets:
++# ^^FQ2 - default cursor (solid rectangle)
++# ^^FW - character protection disabled
++# ^^FJ - normal (80 column) mode
++# ^^F\^ - horizontal scrolling enabled (for alignment)
++# ^^FX004? - margins at columns 0 and 79
++# ^^F] - horizontal scrolling disabled
++# ^^O - primary character set
++# ^^FS00 - default character set (the keyboard native language)
++# - (should reset scrolling regions, but that glitches the screen)
++# Reset string 1 sets:
++# ^^FA - all terminal defaults except scroll rate
++# Reset string 2 sets:
++# ^^F] - horizontal scrolling disabled
++# ^^FT0 - jump scrolling
+ #
+-# p4 - Prism-4 (and older P7s & P8s).
+-# p5 - Prism-5 (or Prism-6).
++d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
++ mc5i,
++ acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0,
++ cnorm=\036FQ2, dch1=^^K, dl1=^^FI,
++ enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177,
++ ich1=^^J, il1=^^FH,
++ is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00,
++ ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O,
++ rs1=^^FA, rs2=\036F]\036FT0,
++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;,
++ sgr0=\017\025\035\036E\036O, smacs=^^N,
++ vpa=\020\177%p1%c, use=d210-dg,
++
++# DASHER D410/D460 series terminals in ANSI mode.
++# These add a large number of intelligent terminal features.
+ #
+-# p7 - Prism-7.
+-# p8 - Prism-8 (in national or multinational mode).
+-# p8-w - 132 column version of p8.
+-# p9 - Prism-9 in ANSI mode.
+-# p9-w - 132 column version of p9.
+-# p9-8 - Prism-9 in Prism-8 emulation mode.
+-# p9-8-w - As p9-8, but with 132 columns.
++# Initialization string 1 sets:
++# \E[<0;<1;<2;<4l
++# <0 - scrolling enabled
++# <1 - blink enabled
++# <2 - horizontal scrolling enabled (for alignment)
++# <4 - print characters regardless of attributes
++# \E[5;0v - normal (80 column) mode
++# \E[1;1;80w - margins at columns 1 and 80
++# \E[1;6;<2h
++# 1 - print all characters even if protected
++# 6 - character protection disabled
++# <2 - horizontal scrolling disabled
++# - (should reset scrolling regions, but that glitches the screen)
+ #
+-# p12 - Prism-12 in ANSI mode.
+-# p12-w - 132 column version of p12.
+-# p12-m - Prism-12 in MDC emulation mode.
+-# p12-m-w - As p12-m, but with 132 columns.
+-# p14 - Prism-14 in ANSI mode.
+-# p14-w - 132 column version of p14.
+-# p14-m - Prism-14 in MDC emulation mode.
+-# p14-m-w - As p14-m, but with 132 columns.
++# Initialization string 2 sets:
++# \E[3;2;2;1;1;1v
++# 3;2 - default cursor (solid rectangle)
++# 2;1 - 8 bit operations
++# 1;1 - international keyboard language
++# \E(B - default primary character set (U.S. ASCII)
++# \E)4 - default secondary character set (international)
++# ^O - primary character set
+ #
+-# p2: Prism-2
+-# -----------
++# Reset string 1 sets:
++# \Ec - initial mode defaults (RIS)
++# \E[<2h - horizontal scrolling disabled
+ #
+-# Includes Prism-1 and basic P99 without SP or MP loaded.
+-# The simplest form of Prism-type terminal.
+-# Basic cursor movement and clearing operations only.
+-# No video attributes.
+-# Notes:
+-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
+-# value up, followed by backspace.
++# Reset string 2 sets:
++# \E[4;0;2;1;1;1v
++# 4;0 - jump scrolling
++# 2;1 - 8 bit operations
++# 1;1 - 8 bit (international) keyboard language
++# \E(B - default primary character set (U.S. ASCII)
++# \E)4 - default secondary character set (international)
+ #
+-prism2|MDC Prism-2,
+- am, bw, msgr,
+- cols#80, lines#24,
+- bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+- cuu1=^Z, ed=\EJ, el=\EK, home=^A,
+- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+- ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
++d410|d411|d460|d461|Data General DASHER D410/D460 series,
++ mc5i,
++ acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
++ cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
++ is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
++ is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
++ ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
++ rs2=\E[4;0;2;1;1;1v\E(B\E)4,
++ sgr=\E[%?%p1%t2;7%;%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p1%p5%|%t2;%;%?%p6%t4;7;%;m\E)%?%p9%t6\016%e4\017%;,
++ sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
+
+-# p4: Prism-4
+-# -----------
++# Initialization string 2 sets:
++# \E[3;2;2;0;1;0v
++# 3;2 - default cursor (solid rectangle)
++# 2;0 - 7 bit operations
++# 1;0 - 7 bit (native) keyboard language
++# \E(0 - default character set (the keyboard native language)
++# ^O - primary character set
+ #
+-# Includes early versions of P7 & P8.
+-# Basic family definition for most Prisms (except P2 and P9 ANSI).
+-# Notes:
+-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
+-# value up, followed by backspace.
+-# Cursor key definitions removed because they interfere with vi and csh keys.
++# Reset string 2 sets:
++# \E[4;0;2;0;1;0v
++# 4;0 - jump scrolling
++# 2;0 - 7 bit operations
++# 1;0 - 7 bit (native) keyboard language
++# \E(0 - default character set (the keyboard native language)
+ #
+-prism4|p4|P4|MDC Prism-4,
+- am, bw, hs, mc5i, msgr,
+- cols#80, lines#24, wsl#72, xmc#1,
+- bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>,
+- cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+- cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK,
+- fsl=^]\345, home=^A,
+- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
+- ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER,
+- rev=^CD, rmso=^C\s, rmul=^C\s,
+- sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;,
+- sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343,
+- vpa=\013%p1%{32}%+%c,
++d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode,
++ km@,
++ enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
++ rs2=\E[4;0;2;0;1;0v\E(0,
++ sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;,
++ sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
+
+-# p5: Prism-5
+-# -----------
+-#
+-# Same definition as p4. Includes Prism-6 (not tested!).
+-# Does not use any multi-page features.
+-#
+-prism5|p5|P5|MDC Prism-5,
+- use=p4,
++d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
++ km,
++ enacs@, rmacs=\036FS00,
++ sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
++ sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
++ use=d400-dg,
+
+-# p7: Prism-7
+-# -----------
+-#
+-# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
+-# Notes:
+-# Use p4 for very early models of P7.
+-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
++# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
+ #
+-prism7|p7|P7|MDC Prism-7,
+- cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4,
+-
+-# p8: Prism-8
+-# -----------
++# Initialization string 1 sets:
++# \E[<0;<1;<2;<4l
++# <0 - scrolling enabled
++# <1 - blink enabled
++# <2 - horizontal scrolling enabled (for alignment)
++# <4 - print characters regardless of attributes
++# \E[5;1v - compressed (135 column) mode
++# \E[1;1;126 - margins at columns 1 and 126
++# \E[1;6;<2h
++# 1 - print all characters even if protected
++# 6 - character protection disabled
++# <2 - horizontal scrolling disabled
++# - (should reset scrolling regions, but that glitches the screen)
+ #
+-# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
+-# Supports national and multinational character sets.
+-# Notes:
+-# Alternate char set operations only work in multinational mode.
+-# Use p4 for very early models of P8.
+-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
+-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
++# Reset string 1 sets:
++# \Ec - initial mode defaults (RIS)
++# \E[5;1v - compressed (135 column) mode
++# \E[1;1;126w - margins at columns 1 and 126
++# \E[<2h - horizontal scrolling disabled
+ #
+-prism8|p8|P8|MDC Prism-8,
+- cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h,
+- vpa=\E[%i%p1%dd, use=p4,
++d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode,
++ cols#126,
++ is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
++ rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410,
+
+-# p8-w: Prism-8 in 132 column mode
+-# --------------------------------
+-#
+-# 'Wide' version of p8.
+-# Notes:
+-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
+-#
+-prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
++d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode,
++ cols#126,
++ is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
++ rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b,
++
++d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode,
++ use=d410-dg,
++
++# These add intelligent features like scrolling regions.
++d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode,
++ civis=\036FQ0, clear=^^FE, cnorm=\036FQ5,
++ cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI,
++ home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH,
++ is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00,
++ ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I,
++ rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10,
++ vpa=\036FPFF%p1%2.2X,
++ wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
++ use=d216+,
++d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode,
+ cols#132,
+- is2=\E[<12h\E[<14h, use=p8,
++ is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00,
++ rs2=\036P@1\036FK\036FX0083,
++ wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X,
++ use=d412-unix,
++d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines,
++ lines#25,
++ is3=\036Fz2,
++ wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
++ use=d462+,
++d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line,
++ eslok, hs,
++ clear=\036FG\036PH, fsl=\036F}01\022,
++ is3=\036Fz2\036F}00\036FB180000\036F}01, ll@,
++ tsl=\036F}00\036FP%p1%2.2X18\036PG,
++ wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X,
++ use=d462+,
+
+-# p9: Prism-9 in ANSI mode
+-# -------------------------
+-#
+-# The "flagship" model of this generation of terminals.
+-# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
+-# Notes:
+-# Tabs only reset by "reset". Otherwise assumes default (8 cols).
+-# Fixes to deal with terminal firmware bugs:
+-# . 'ri' uses insert-line since rev index doesn't always
+-# . 'sgr0' has extra '0' since esc[m fails
+-# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
+-# Not covered in the current definition:
+-# . Labels
+-# . Programming Fn keys
+-# . Graphic characters (defaults correctly to vt100)
+-# . Padding values (sets xon)
+-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
+-#
+-prism9|p9|P9|MDC Prism-9 in ANSII mode,
+- am, bw, hs, mc5i, msgr, xenl, xon,
+- cols#80, it#8, lines#24, vt#3, wsl#72,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
+- clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+- dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
+- ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
+- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+- khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
+- prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
+- ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
+- rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
+- sc=\E[%y,
+- sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
+- sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
++# Relative cursor motions are confined to the current window,
++# which is not what the scrolling region specification expects.
++# Thus, relative vertical cursor positioning must be deleted.
++d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region,
++ csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;,
++ cud1@, cuu1@, ll@, use=d462+,
++
++d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode,
++ use=d412-unix,
++d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode,
++ use=d412-unix-w,
++d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines,
++ use=d412-unix-25,
++d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line,
++ use=d412-unix-s,
++d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region,
++ use=d412-unix-sr,
++
++d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode,
++ use=d413-unix,
++d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode,
++ use=d413-unix-w,
++d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines,
++ use=d413-unix-25,
++d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line,
++ use=d413-unix-s,
++d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region,
++ use=d413-unix-sr,
+
+-# p9-w: Prism-9 in 132 column mode
+-# --------------------------------
+-#
+-# 'Wide' version of p9.
+-#
+-prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
+- cols#132,
+- is2=\E[&p\E[<12l\E F\E[<14h,
+- rs2=\E[&p\E[<12l\E F\E[<14h, use=p9,
++d430c-dg|d430-dg|Data General D430C in DG mode,
++ use=d413-dg, use=dg+fixed,
++d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors,
++ use=d413-dg, use=dg+ccc,
+
+-# p9-8: Prism-9 in P8 mode
+-# ------------------------
+-#
+-# P9 terminal in P8 emulation mode.
+-# Similar to p8 definition.
+-# Insertion and deletion operations possible.
+-#
+-prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
++d430c-unix|d430-unix|Data General D430C in DG-UNIX mode,
++ use=d413-unix, use=dgunix+fixed,
++d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode,
++ use=d413-unix-w, use=dgunix+fixed,
++d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines,
++ use=d413-unix-25, use=dgunix+fixed,
++d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line,
++ use=d413-unix-s, use=dgunix+fixed,
++d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region,
++ use=d413-unix-sr, use=dgunix+fixed,
++d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors,
++ use=d413-unix, use=dgunix+ccc,
++d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors,
++ use=d413-unix-w, use=dgunix+ccc,
++d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors,
++ use=d413-unix-25, use=dgunix+ccc,
++d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors,
++ use=d413-unix-s, use=dgunix+ccc,
++d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors,
++ use=d413-unix-sr, use=dgunix+ccc,
+
+-# p9-8-w: Prism-9 in P8 and 132 column modes
+-# ------------------------------------------
++# DASHER D470C color terminal in ANSI mode.
++# Like the D460 but with 16 colors and without a compressed mode.
+ #
+-# P9 terminal in P8 emulation mode and 132 column mode.
++# Initialization string 1 sets:
++# \E[<0;<1;<2;<4l
++# <0 - scrolling enabled
++# <1 - blink enabled
++# <2 - horizontal scrolling enabled (for alignment)
++# <4 - print characters regardless of attributes
++# \E[1;1;80w - margins at columns 1 and 80
++# \E[1;6;<2h
++# 1 - print all characters even if protected
++# 6 - character protection disabled
++# <2 - horizontal scrolling disabled
++# - (should reset scrolling regions, but that glitches the screen)
+ #
+-prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
++d470c|d470|Data General DASHER D470C,
++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
++ sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m\E)%?%p9%t6\016%e4\017%;,
++ use=dg+color, use=d460,
+
+-# p12: Prism-12 in ANSI mode
+-# ---------------------------
+-#
+-# See p9 definition.
+-#
+-prism12|p12|P12|MDC Prism-12 in ANSI mode,
+- use=p9,
++d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
++ sgr=\E[%?%p3%t7;%;%?%p4%t5;%;%?%p2%t4;%;%?%p6%t4;7;%;%?%p1%t2;7;%;%?%p5%t2;%;m%?%p9%t\016%e\017%;,
++ use=dg+color, use=d460-7b,
+
+-# p12-w: Prism-12 in 132 column mode
+-# ----------------------------------
+-#
+-# 'Wide' version of p12.
++# Initialization string 2 sets:
++# ^^FQ2 - default cursor (solid rectangle)
++# ^^FW - character protection disabled
++# ^^F\^ - horizontal scrolling enabled (for alignment)
++# ^^FX004? - margins at columns 0 and 79
++# ^^F] - horizontal scrolling disabled
++# ^^O - primary character set
++# ^^FS00 - default character set (the keyboard native language)
++# - (should reset scrolling regions, but that glitches the screen)
+ #
+-prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode,
+- use=p9-w,
++d470c-dg|d470-dg|Data General DASHER D470C in DG mode,
++ is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00,
++ use=dgmode+color, use=d460-dg,
+
+-# p12-m: Prism-12 in MDC emulation mode
+-# -------------------------------------
+-#
+-# P12 terminal in MDC emulation mode.
+-# Similar to p8 definition.
+-# Insertion and deletion operations possible.
+-#
+-prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
+- use=p9-8,
++# DASHER D555 terminal in ANSI mode.
++# Like a D411, but has an integrated phone.
++d555|Data General DASHER D555,
++ use=d411,
++d555-7b|Data General DASHER D555 in 7-bit mode,
++ use=d411-7b,
++d555-w|Data General DASHER D555 in wide mode,
++ use=d411-w,
++d555-7b-w|Data General DASHER D555 in wide 7-bit mode,
++ use=d411-7b-w,
++d555-dg|Data General DASHER D555 series in DG mode,
++ use=d411-dg,
+
+-# p12-m-w: Prism-12 in MDC emulation and 132 column modes
+-# -------------------------------------------------------
+-#
+-# P12 terminal in MDC emulation mode and 132 column mode.
+-#
+-prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
+- use=p9-8-w,
++# DASHER D577 terminal in ANSI mode.
++# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
++d577|Data General DASHER D577,
++ use=d411,
++d577-7b|Data General DASHER D577 in 7-bit mode,
++ use=d411-7b,
++d577-w|Data General DASHER D577 in wide mode,
++ use=d411-w,
++d577-7b-w|Data General DASHER D577 in wide 7-bit mode,
++ use=d411-7b-w,
+
+-# p14: Prism-14 in ANSII mode
+-# ---------------------------
++d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode,
++ use=d411-dg,
++
++# DASHER D578 terminal.
++# Like a D577, but without compressed mode; like a D470C in this respect.
+ #
+-# See p9 definition.
++# Initialization string 1 sets:
++# \E[<0;<1;<2;<4l
++# <0 - scrolling enabled
++# <1 - blink enabled
++# <2 - horizontal scrolling enabled (for alignment)
++# <4 - print characters regardless of attributes
++# \E[1;1;80w - margins at columns 1 and 80
++# \E[1;6;<2h
++# 1 - print all characters even if protected
++# 6 - character protection disabled
++# <2 - horizontal scrolling disabled
++# - (should reset scrolling regions, but that glitches the screen)
+ #
+-prism14|p14|P14|MDC Prism-14 in ANSII mode,
+- use=p9,
++d578|Data General DASHER D578,
++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577,
++d578-7b|Data General DASHER D578 in 7-bit mode,
++ is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b,
+
+-# p14-w: Prism-14 in 132 column mode
+-# ----------------------------------
++#### Datamedia (dm)
+ #
+-# 'Wide' version of p14.
++# Datamedia was headquartered in Nashua, New Hampshire until it went
++# out of business in 1993, but the ID plates on the terminals referred
++# to the factory in Pennsauken, NJ. The factory was sold to a PCB board
++# manufacturer which threw out all information about the terminals.
+ #
+-prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode,
+- use=p9-w,
+
+-# p14-m: Prism-14 in MDC emulation mode
+-# -------------------------------------
++cs10|colorscan|Datamedia Color Scan 10,
++ msgr,
++ cols#80, lines#24,
++ bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++cs10-w|Datamedia Color Scan 10 with 132 columns,
++ cols#132,
++ cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
++
++# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
++dm1520|dm1521|datamedia 1520,
++ OTbs, am, xenl,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
++ khome=^Y,
++# dm2500: this terminal has both <ich> and <smir>. Applications using
++# termcap/terminfo directly (rather than through ncurses) might be confused.
++dm2500|datamedia2500|datamedia 2500,
++ OTbs, OTnc,
++ cols#80, lines#24,
++ bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
++ cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z,
++ dch1=\020\010\030\035$<10*>,
++ dl1=\020\032\030\035$<10*>, el=^W, home=^B,
++ ich1=\020\034\030\035$<10*>,
++ il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377,
++ rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^],
++ smdc=^P, smir=^P, smso=^N,
++# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
++# also, has a meta-key.
++# From: <goldberger@su-csli.arpa>
++# (dmchat: ":MT:" changed to ":km:" -- esr)
++dmchat|dmchat version of datamedia 2500,
++ km,
++ dl1=\020\032\030\035$<2/>,
++ il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
++# (dm3025: ":MT:" changed to ":km:" -- esr)
++dm3025|datamedia 3025a,
++ OTbs, km,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
++ dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK,
++ home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>,
++ is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
++ smir=\EP, smso=\EO1,
++dm3045|datamedia 3045a,
++ OTbs, am, eo, km@, ul, xenl,
++ dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
++ kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
++ kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
++ khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
++ use=dm3025,
++# Datamedia DT80 soft switches:
++# 1 0=Jump 1=Smooth
++# Autorepeat 0=off 1=on
++# Screen 0=Dark 1=light
++# Cursor 0=u/l 1=block
+ #
+-# P14 terminal in MDC emulation mode.
+-# Similar to p8 definition.
+-# Insertion and deletion operations possible.
++# 2 Margin Bell 0=off 1=on
++# Keyclick 0=off 1=on
++# Ansi/VT52 0=VT52 1=Ansi
++# Xon/Xoff 0=Off 1=On
+ #
+-prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode,
+- use=p9-8,
+-
+-# p14-m-w: Prism-14 in MDC emulation and 132 column modes
+-# -------------------------------------------------------
++# 3 Shift3 0=Hash 1=UK Pound
++# Wrap 0=Off 1=On
++# Newline 0=Off 1=On
++# Interlace 0=Off 1=On
+ #
+-# P14 terminal in MDC emulation mode and 132 column mode.
++# 4 Parity 0=Odd 1=Even
++# Parity 0=Off 1=On
++# Bits/Char 0=7 1=8
++# Power 0=60Hz 1=50Hz
+ #
+-prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode,
+- use=p9-8-w,
+-
+-# End of McDonnell Information Systems Prism definitions
++# 5 Line Interface 0=EIA 1=Loop
++# Aux Interface 0=EIA 1=Loop
++# Local Copy 0=Off 1=On
++# Spare
++#
++# 6 Aux Parity 0=Odd 1=Even
++# Aux Parity 0=Off 1=On
++# Aux Bits/Char 0=7 1=8
++# CRT Saver 0=Off 1=On
++# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
++dm80|dmdt80|dt80|datamedia dt80/1,
++ clear=\E[2J\E[H, cud1=^J, cuf1=\E[C,
++ cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
++ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++ use=vt100,
++# except in 132 column mode, where it needs a little padding.
++# This is still less padding than the vt100, and you can always turn on
++# the ^S/^Q handshaking, so you can use vt100 flavors for things like
++# reverse video.
++dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
++ cols#132,
++ clear=\E[H\E[2J$<50/>, cud1=^J,
++ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
++ ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80,
++# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
++dt80-sas|Datamedia DT803/DTX for SAS usage,
++ am, bw,
++ cols#80, lines#24,
++ acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
++ bel=^G, clear=^L, cr=^M,
++ csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2,
++ cub1=^H, cud1=\EB, cuf1=^\,
++ cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K,
++ el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB,
++ is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J,
++ kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N,
++ rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF,
++ smso=\E$2\004, tbc=\E'0,
+
+-# These things were popular in the Pick database community at one time
+-# From: George Land <georgeland@aol.com> 24 Sep 1996
+-p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition,
+- am, bw, hs, mir,
+- cols#80, lines#24, ma#1, wsl#78, xmc#1,
+- bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P,
+- ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U,
+- kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ,
+- kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r,
+- kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r,
+- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2,
+- lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M,
+- pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
+- smul=^C0,
++# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
++# These aren't end-all Excel termcaps; but do insert/delete char/line
++# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman)
++# The naming convention has been bent somewhat, with the use of E? (where
++# E is for 'Excel') as # a name. This was done to distinguish the entries
++# from the other Datamedias in use here, and yet to associate a model of
++# the Excel terminals with the regular datamedia terminals that share
++# major characteristics.
++excel62|excel64|datamedia Excel 62,
++ dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
++ kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
++ use=dt80,
++excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
++ dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
++ kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
++ use=dt80w,
++excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
++ dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J,
++ kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
++ smir=\E[4h, use=dt80,
+
+-#### Microterm (act, mime)
++#### Falco
+ #
+-# The mime1 entries refer to the Microterm Mime I or Mime II.
+-# The default mime is assumed to be in enhanced act iv mode.
++# Falco Data Products
++# 440 Potrero Avenue
++# Sunnyvale, CA 940864-196
++# Vox: (800)-325-2648
++# Fax: (408)-745-7860
++# Net: techsup@charm.sys.falco.com
++#
++# Current Falco models as of 1995 are generally ANSI-compatible and support
++# emulations of DEC VT-series, Wyse, and Televideo types.
+ #
+
+-# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents
+-# freakout with out-of-range args on Sytek multiplexors. No <smso=^N> and
+-# <rmso=^N> since it gets confused and it's too dim anyway. No <ich1>
+-# since Sytek insists ^S means xoff.
+-# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
+-act4|microterm|microterm act iv,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
+- cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c,
+- cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>,
+- ed=\037$<2.2*/>, el=\036$<.1*/>, home=^],
+- il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X,
+- kcuu1=^Z,
+-# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
+-# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
+-# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
+-act5|microterm5|microterm act v,
+- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
+- use=act4,
+-# Mimes using brightness for standout. Half bright is really dim unless
+-# you turn up the brightness so far that lines show up on the screen.
+-mime-fb|full bright mime1,
+- is2=^S\E, rmso=^S, smso=^Y, use=mime,
+-mime-hb|half bright mime1,
+- is2=^Y\E, rmso=^Y, smso=^S, use=mime,
+-# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
+-# the more plausible ":do=^J:" -- esr)
+-# uc was at one time disabled to get around a curses bug, be wary of it
+-mime|mime1|mime2|mimei|mimeii|microterm mime1,
+- OTbs, am,
+- cols#80, it#8, lines#24, vt#9,
+- bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X,
+- cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c,
+- cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>,
+- il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K,
+- kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
+-# These termcaps (for mime2a) put the terminal in low intensity mode
+-# since high intensity mode is so obnoxious.
+-mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
++# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
++# This terminal was released around 1983 and was discontinued long ago.
++# The standout and underline highlights are the same.
++falco|ts1|ts-1|falco ts-1,
+ OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED,
+- dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
+- il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J,
+- kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
+- smir=\EE, smso=\E\:, smul=\E6,
+-# This is the preferred mode (but ^X can't be used as a kill character)
+-mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
+- OTbs,
+ cols#80, it#8, lines#24,
+- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
+- dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
+- il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
+- rmul=\E5, smir=^O, smso=\E8, smul=\E4,
+-# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
+-mime3a|mime1 emulating 3a,
+- am@,
+- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
+-mime3ax|mime-3ax|mime1 emulating enhanced 3a,
+- it#8,
+- dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
+- use=mime3a,
+-# Wed Mar 9 18:53:21 1983
+-# We run our terminals at 2400 baud, so there might be some timing problems at
+-# higher speeds. The major improvements in this model are the terminal now
+-# scrolls down and insert mode works without redrawing the rest of the line
+-# to the right of the cursor. This is done with a bit of a kludge using the
+-# exit graphics mode to get out of insert, but it does not appear to hurt
+-# anything when using vi at least. If you have some users using act4s with
+-# programs that use curses and graphics mode this could be a problem.
+-mime314|mm314|mime 314,
+- am,
+- cols#80, lines#24,
+- clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z,
+- dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H,
+- kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S,
+-# Microterm mime 340 from University of Wisconsin
+-mm340|mime340|mime 340,
+- cols#80, lines#24,
+- clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
+- dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>,
+- el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,,
+- kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J,
+-# This came from University of Wisconsin marked "astro termcap for jooss".
+-# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
+-# also added <rmam>/<smam> based on the init string -- esr)
+-mt4520-rv|micro-term 4520 reverse video,
+- am, hs, msgr, xenl, xon,
+- cols#80, it#8, lines#24, wsl#80,
+- bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
+- fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
+- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+- is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J,
+- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
+- ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100,
+- ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
+- rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
+- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
+- tbc=\E[g, tsl=\E[25;1H,
+-
+-# Fri Aug 5 08:11:57 1983
+-# This entry works for the ergo 4000 with the following setups:
+-# ansi,wraparound,newline disabled, xon/xoff disabled in both
+-# setup a & c.
+-#
+-# WARNING!!! There are multiple versions of ERGO 4000 microcode
+-# Be advised that very early versions DO NOT WORK RIGHT !!
+-# Microterm does have a ROM exchange program- use it or lose big
+-# (ergo400: added <rmam>/<smam> based on the init string -- esr)
+-ergo4000|microterm ergo 4000,
+- da, db, msgr,
+- cols#80, lines#66,
+- bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
+- el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
+- is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
+- lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
+- rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
+- smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
+- smso=\E[7m$<20>,
++ bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE,
++ ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
++ kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
++ smir=\Eq, smso=\Eg1, smul=\Eg1,
++falco-p|ts1p|ts-1p|falco ts-1 with paging option,
++ OTbs, am, da, db, mir, msgr, ul,
++ cols#80, it#8, lines#24,
++ bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
++ dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
++ il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
++ rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
++ smso=\Eg4, smul=\Eg1,
++# (ts100: I added <rmam>/<smam> based on the init string -- esr)
++ts100|ts100-sp|falco ts100-sp,
++ am, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
++ clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
++ cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
++ el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
++ ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
++ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
++ use=vt100+fnkeys,
++ts100-ctxt|falco ts-100 saving context,
++ rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
+
+-#### NCR
+-#
+-# NCR's terminal group was merged with AT&T's when AT&T bought the company.
+-# For what happened to that group, see the ADDS section.
+-#
+-# There is an NCR4103 terminal that's just a re-badged Wyse-50.
++#### Florida Computer Graphics
+ #
+
+-# The following vendor-supplied termcaps were captured from the Boundless
+-# Technologies site, 8 March 1998. I removed all-upper-case names that were
+-# identical, except for case, to lower-case ones. I also uncommented the acsc
+-# capabilities.X
+-#
+-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+-# DEC vt200/300 with color capabilities added.
+-ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
+- colors#8, pairs#64,
+- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- use=ncr260vt300an,
+-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+-# DEC vt200/300 with color capabilities added.
+-ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
+- colors#8, pairs#64,
+- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- use=ncr260vt300wan,
+-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+-# DEC vt200/300 with color capabilities added.
+-ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
+- colors#8, pairs#64,
+- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- use=ncr260vt300pp,
+-# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
+-# DEC vt200/300 with color capabilities added.
+-ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
+- colors#8, pairs#64,
+- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+- use=ncr260vt300wpp,
+-# This definition for ViewPoint supports several attributes. This means
+-# that it has magic cookies (extra spaces where the attributes begin).
+-# Some applications do not function well with magic cookies. The System
+-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+-# If supporting various attributes is not vital, 'xmc#1' and the extra
+-# attributes can be removed.
+-# Mapping to ASCII character set ('acsc' capability) can also be
+-# restored if needed.
+-ncr260vppp|NCR 2900_260 viewpoint,
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- cols#80, lines#24, nlab#32, xmc#1,
+- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+- cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
+- cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
+- dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
+- el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1,
+- il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
+- is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+- kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
+- kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
+- kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
+- kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
+- kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
+- kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
+- kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
+- kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
+- kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
+- kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
+- kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
+- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
+- nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
+- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+- rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+- sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
+- smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
+-ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
+- cols#132,
+- cup=\Ea%i%p1%dR%p2%dC$<30>,
+- is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+- rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
+- use=ncr260vppp,
+-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
+- am, hs, mir, msgr, xenl, xon,
+- cols#80, lines#24, nlab#32,
+- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
+- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
+- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
+- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
+- ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
+- fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
+- hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
+- il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
+- invis=\E[8m,
+- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
+- knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>,
+- rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
+- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+- sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
+- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
+-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
+- cols#132,
+- cup=\E[%i%p1%d;%p2%dH$<30>,
+- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- use=ncr260vt100an,
+-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
+- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
+- kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
+- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
+- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- smkx=\E=, use=ncr260vt100an,
+-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
+- cols#132,
+- cup=\E[%i%p1%d;%p2%dH$<30>,
+- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- use=ncr260vt100pp,
+-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
+- am, hs, mir, msgr, xenl, xon,
+- cols#80, lines#24, nlab#32,
+- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
+- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
+- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
+- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
+- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
+- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
+- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
+- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
+- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
+- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~,
+- kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~,
+- kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~,
+- kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
+- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
+- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
+- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
+- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
+- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
+- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
+- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
+- use=vt220+keypad,
+-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
+- cols#132,
+- cup=\E[%i%p1%d;%p2%dH$<30>,
+- is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
+- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
+- use=ncr260vt200an,
+-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
+- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
+- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
+- use=ncr260vt200an,
+-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
+- cols#132,
+- cup=\E[%i%p1%d;%p2%dH$<30>,
+- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- use=ncr260vt200pp,
+-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
+- am, hs, mir, msgr, xenl, xon,
+- cols#80, lines#24, nlab#32,
+- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
+- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
+- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
+- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
+- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
+- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
+- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
+- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
+- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
+- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
+- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
+- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
+- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+- kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~,
+- kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~,
+- kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~,
+- kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~,
+- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+- khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
+- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>,
+- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
+- rmul=\E[24m,
+- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
+- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
+- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
+- use=vt220+keypad,
+-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
++# Florida Computer Graphics Beacon System, using terminal emulator program
++# "host.com", as provided by FCG. This description is for an early release
++# of the "host" program. Known bug: <ed> clears the whole screen, so it's
++# commented out.
++
++# From: David Bryant <cbosg!djb> 1/7/83
++beacon|FCG Beacon System,
++ am, da, db,
++ cols#80, lines#32,
++ bel=\ESTART\r\E37\r\EEND\r$<1>,
++ blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M,
++ cub1=^H, cud1=^J, cuf1=\EV,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU,
++ dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE,
++ ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=,
++ rmso=\ESTART\r\E70\,0\r\EEND\r$<20>,
++ rmul=\ESTART\r\E60\,0\r\EEND\r,
++ sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>,
++ smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>,
++ smso=\ESTART\r\E70\,6\r\EEND\r$<20>,
++ smul=\ESTART\r\E60\,1\r\EEND\r,
++
++#### Fluke
++#
++
++# The f1720a differences from ANSI: no auto margin, destructive
++# tabs, # of lines, funny highlighting and underlining
++f1720|f1720a|fluke 1720A,
++ xt,
++ cols#80, lines#16, xmc#1,
++ bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
++ el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
++ kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
++ smso=\E[7m, smul=\E[4m,
++
++#### Liberty Electronics (Freedom)
++#
++# Liberty Electronics
++# 48089 Fremont Blvd
++# Fremont CA 94538
++# Vox: (510)-623-6000
++# Fax: (510)-623-7021
++
++# From: <faletti@berkeley.edu>
++# (f100: added empty <acsc> to suppress a tic warning;
++# made this relative to adm+sgr -- note that <invis> isn't
++# known to work for f100 but does on the f110. --esr)
++f100|freedom|freedom100|freedom model 100,
++ OTbs, am, bw, hs, mir, msgr, xon,
++ cols#80, lines#24,
++ acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
++ flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c,
++ ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>,
++ is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V,
++ kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r,
++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
++ smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
++ vpa=\E[%p1%{32}%+%c, use=adm+sgr,
++f100-rv|freedom-rv|freedom 100 in reverse video,
++ flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
++# The f110 and f200 have problems with vi(1). They use the ^V
++# code for the down cursor key. When kcud1 is defined in terminfo
++# as ^V, the Control Character Quoting capability (^V in insert mode)
++# is lost! It cannot be remapped in vi because it is necessary to enter
++# a ^V to to quote the ^V that is being remapped!!!
++#
++# f110/f200 users will have to decide whether
++# to lose the down cursor key or the quoting capability. We will opt
++# initially for leaving the quoting capability out, since use of VI
++# is not generally applicable to most interactive applications
++# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr)
++f110|freedom110|Liberty Freedom 110,
++ bw@, eslok,
++ it#8, wsl#80,
++ blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
++ dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE,
++ ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET,
++ kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
++ ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq,
++ smso=\EG<, tsl=\Ef, use=f100,
++f110-14|Liberty Freedom 110 14inch,
++ dch1@, use=f110,
++f110-w|Liberty Freedom 110 - 132 cols,
++ cols#132, use=f110,
++f110-14w|Liberty Freedom 110 14in/132 cols,
+ cols#132,
+- cup=\E[%i%p1%d;%p2%dH$<30>,
+- is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
+- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
+- use=ncr260vt300an,
+-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
+- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
+- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
+- use=ncr260vt300an,
+-NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd,
++ dch1@, use=f110,
++# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
++f200|freedom200|Liberty Freedom 200,
++ OTbs, am, eslok, hs, mir, msgr, xon,
++ cols#80, it#8, lines#24, wsl#80,
++ acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0,
++ clear=^Z, cnorm=\E.1, cr=^M,
++ csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET,
++ flash=\Eo$<200/>\En, fsl=^M, home=^^,
++ hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
++ kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
++ kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
++ ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<,
++ tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr,
++f200-w|Liberty Freedom 200 - 132 cols,
++ cols#132, use=f200,
++# The f200 has the ability to reprogram the down cursor key. The key is
++# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
++# so powering the terminal off and on will not cause the change to be lost.
++f200vi|Liberty Freedom 200 for vi,
++ flash=\Eb$<200/>\Ed, kcud1=^J, use=f200,
++f200vi-w|Liberty Freedom 200 - 132 cols for vi,
++ cols#132, use=f200vi,
++
++#### GraphOn (go)
++#
++# Graphon Corporation
++# 544 Division Street
++# Campbell, CA 95008
++# Vox: (408)-370-4080
++# Fax: (408)-370-5047
++# Net: troy@graphon.com (Troy Morrison)
++#
++#
++# The go140 and go225 have been discontinued. GraphOn now makes X terminals,
++# including one odd hybrid that starts out life on power-up as a character
++# terminal, than can be switched to X graphics mode (driven over the serial
++# line) by an escape sequence. No info on this beast yet.
++# (go140: I added <rmam>/<smam> based on the init string -- esr)
++go140|graphon go-140,
++ OTbs,
++ cols#80, it#8, lines#24,
++ clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ ed=\E[J$<10/>, el=\E[K, ht=^I,
++ if=/usr/share/tabset/vt100, il1=\E[L,
++ is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
++ rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++go140w|graphon go-140 in 132 column mode,
++ am,
+ cols#132,
+- cup=\E[%i%p1%d;%p2%dH$<30>,
+- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
+- use=ncr260vt300pp,
+-# This terminfo file contains color capabilities for the Wyse325 emulation of
+-# the NCR 2900/260C color terminal. Because of the structure of the command
+-# (escape sequence) used to set color attributes, one of the fore/background
+-# colors must be preset to a given value. I have set the background color to
+-# black. The user can change this setup by altering the last section of the
+-# 'setf' definition. The escape sequence to set color attributes is
+-# ESC d y <foreground_color> <background_color> 1
+-# In addition, the background color can be changed through the desk accessories.
+-# The capablitiy 'op' sets colors to green on black (default combination).
++ is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q,
++ use=go140,
++# Hacked up vt200 termcap to handle GO-225/VT220
++# From: <edm@nwnexus.WA.COM>
++# (go225: I added <rmam>/<smam> based on the init string -- esr)
++go225|go-225|Graphon 225,
++ OTbs, am, mir, xenl,
++ cols#80, it#8, lines#25, vt#3,
++ blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
++ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
++ rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
++ rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
++ rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
++ sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
++ smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
++
++#### Harris (Beehive)
++#
++# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine.
++# Their terminal group is ancient history now (1995) though the parent
++# company is still in business.
++#
++
++# Beehive documentation is undated and marked Preliminary and has no figures
++# so we must have early Superbee2 (Model 600, according to phone conversation
++# with mfr.). It has proved reliable except for some missing padding
++# (notably after \EK and <nl> at bottom of screen).
++#
++# The key idea is that AEP mode is poison for <cup> & that US's in
++# the local memory should be avoided like the plague. That means
++# that the 2048 character local buffer is used as 25 lines of 80
++# characters, period. No scrolling local memory, folks. It also
++# appears that we cannot use naked INS LINE feature since it uses
++# US. The sbi fakes <il1> with an 80-space insert that may be too
++# slow at low speeds; also spaces get converted to \040 which is
++# too long for some programs (not vi). DEL LINE is ok but slow.
++#
++# The <nl> string is designed for last line of screen ONLY; cup to
++# 25th line corrects the motion inherent in scrolling to Page 1.
++#
++# There is one understood bug. It is that the screen appears to
++# pop to a new (blank) page after a <nel>, or leave a half-line
++# ellipsis to a quad that is the extra 48 memory locations. The
++# data received is dumped into memory but not displayed. Not to
++# worry if <cup> is being used; the lines not displayed will be,
++# whenever the cursor is moved up there. Since <cup> is addressed
++# relative to MEMORY of window, nothing is lost; but beware of
++# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended,
++# therefore, is setenv MORE -c .
++#
++# WARNING: Not all features tested.
++#
++# Timings are assembled from 3 sources. Some timings may reflect
++# SB2/Model 300 that were used if more conservative.
++# Tested on a Model 600 at 1200 and 9600 bd.
++#
++# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
++# placed on the keyboard and useless because of AEP, is made
++# into a backspace key. In use ESC must be pressed twice (to send)
++# and sending ^C must be prefixed by ESC to avoid that weird
++# transmit mode associated with ENTER key.
++#
++# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
++# the screen, then it has dropped into ENTER mode; hit
++# RESET--ONLINE--!tset.
++#
++# As delivered this machine has a FATAL feature that will throw
++# it into that strange transmit state (SPOW) if the space bar is
++# hit after a CR is received, but before receiving a LF (or a
++# few others).
++#
++# The circuits MUST be modified to eliminate the SPOW latch.
++# This is done by strapping on chip A46 of the I/O board; cut
++# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
++# chip. This mod has been checked out on a Mod 600 of Superbee II.
++# With this modification absurdly high timings on cr are
++# unnecessary.
++#
++# NOTE WELL that the rear panel switch should be set to CR/LF,
++# not AEP!
++#
++sb1|beehive superbee,
++ OTbs, am, bw, da, db, mir, ul, xsb,
++ cols#80, lines#25, xmc#1,
++ bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
++ cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d,
++ cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>,
++ el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1,
++ il1=\EN\EL$<3>\EQ \EP$<3> \EO\ER\EA$<3>,
++ ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
++ kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
++ kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
++ krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
++ rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
++ smso=\E_1, smul=\E_0, tbc=\E3,
++sbi|superbee|beehive superbee at Indiana U.,
++ xsb,
++ cr=\r$<1>, il1=\EN$<1>\EL$<9>\EQ \EP$<9> \EO\ER\EA,
++ use=sb1,
++# Alternate (older) description of Superbee - f1=escape, f2=^C.
++# Note: there are at least 3 kinds of superbees in the world. The sb1
++# holds onto escapes and botches ^C's. The sb2 is the best of the 3.
++# The sb3 puts garbage on the bottom of the screen when you scroll with
++# the switch in the back set to CRLF instead of AEP. This description
++# is tested on the sb2 but should work on all with either switch setting.
++# The f1/f2 business is for the sb1 and the <xsb> can be taken out for
++# the other two if you want to try to hit that tiny escape key.
++# This description is tricky: being able to use cup depends on there being
++# 2048 bytes of memory and the hairy <nl> string.
++superbee-xsb|beehive super bee,
++ am, da, db, xsb,
++ cols#80, it#8, lines#25,
++ clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
++ cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>,
++ dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
++ home=\EH, ht=^I, hts=\E1,
++ ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
++ kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
++ khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
++# This loses on lines > 80 chars long, use at your own risk
++superbeeic|super bee with insert char,
++ ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
++sb2|sb3|fixed superbee,
++ xsb@, use=superbee,
++
++#### Beehive Medical Electronics
+ #
+-# NOTE: The NCR Unix System Administrator's Shell will not function properly
+-# if the 'pairs' capability is defined. Un-Comment the 'pairs'
+-# capability and recompile if you wish to have it included.
++# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
++# Regarding your question though; Beehive terminals weren't made by Harris.
++# They were made by Beehive Medical Electronics in Utah. They went out of
++# business in the early '80s.
+ #
+-ncr260wy325pp|NCR 2900_260 wyse 325,
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- colors#16, cols#80, lines#24, ncv#33, nlab#32,
+- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+- cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M,
+- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
+- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
+- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I,
+- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
+- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
+- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
+- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET,
+- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r,
+- kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r,
+- kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r,
+- kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r,
+- kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r,
+- kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
+- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ,
+- kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
+- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
+- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
+- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- setb=\s,
+- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
+- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
+- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
+- tsl=\EF,
+-ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
+- cols#132,
+- cup=\Ea%i%p1%dR%p2%dC$<30>,
+- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- use=ncr260wy325pp,
+-# This definition for Wyse 350 supports several attributes. This means
+-# that it has magic cookies (extra spaces where the attributes begin).
+-# Some applications do not function well with magic cookies. The System
+-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+-# If supporting various attributes is not vital, 'xmc#1' and the extra
+-# attributes can be removed.
+-# Mapping to ASCII character set ('acsc' capability) can also be
+-# restored if needed.
+-# In addition, color capabilities have been added to this file. The drawback,
+-# however, is that the background color has to be black. The foreground colors
+-# are numbered 0 through 15.
++# (OK, then, I don't know why a couple of these say "harris beehive".)
++#
++
++# Reports are that most of these Beehive entries (except superbee) have not
++# been tested and do not work right. <rmso> is a trouble spot. Be warned.
++
++# (bee: <ich1> was empty, which is obviously bogus -- esr)
++beehive|bee|harris beehive,
++ OTbs, am, mir,
++ cols#80, lines#24,
++ cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
++ cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
++ dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
++ kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
++ krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
++ smir=\EQ, smso=\EdP, smul=\Ed`,
++# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
++# good grief - does this entry make :sg:/:ug: when it doesn't have to?
++# look at those spaces in <rmso>/<smso>. Seems strange to me...
++# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you
++# really care, cook up one using ^F -- esr)
++beehive3|bh3m|beehiveIIIm|harris beehive 3m,
++ OTbs, am,
++ cols#80, it#8, lines#20,
++ bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K,
++ dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
++ il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s,
++beehive4|bh4|beehive 4,
++ am,
++ cols#80, lines#24,
++ bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
++ cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J,
++# There was an early Australian kit-built computer called a "Microbee".
++# It's not clear whether this is for one of those or for a relative
++# of the Beehive.
++microb|microbee|micro bee series,
++ OTbs, am,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
++ el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
++ kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
++ rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
++
++# 8675, 8686, and bee from Cyrus Rahman
++# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
++ha8675|harris 8675,
++ is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
++ kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
++ kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H,
++ kf8=\177, kf9=\Ee, use=bee,
++# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
++# in :is: -- esr)
++ha8686|harris 8686,
++ is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#,
++ kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003,
++ kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003,
++ kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003,
++ kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(,
++ use=bee,
++
++#### Hazeltine
++#
++# Hazeltine appears to be out of the terminal business as of 1995. These
++# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
++# Harris. They have a hazeltine.com domain (but no web page there ) and can
++# be reached at:
++#
++# Hazeltine
++# 450 East Pulaski Road
++# Greenlawn, New York 11740
++#
++# As late as 1993, manuals for the terminal product line could still be
++# purchased from:
++#
++# TRW Customer Service Division
++# 15 Law Drive
++# P.O. Box 2076
++# Fairfield, NJ 07007-2078
++#
++# They're now (1998) a subsidiary of General Electric, operating under the
++# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page
++# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
++#
++
++# Since <cuf1> is blank, when you want to erase something you
++# are out of luck. You will have to do ^L's a lot to
++# redraw the screen. h1000 is untested. It doesn't work in
++# vi - this terminal is too dumb for even vi. (The code is
++# there but it isn't debugged for this case.)
++hz1000|hazeltine 1000,
++ OTbs,
++ cols#80, lines#12,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
++ ind=^J,
++# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
++hz1420|hazeltine 1420,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
++ cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S,
++ ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y,
++ smso=\E^_,
++# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
++# freakout with out-of-range args and tn3270. No hz since it needs to
++# receive tildes.
++hz1500|hazeltine 1500,
++ OTbs, am, hz,
++ cols#80, lines#24,
++ bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
++ cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c,
++ cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R,
++ il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P,
++ kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_,
++# h1510 assumed to be in sane escape mode. Else use h1500.
++# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
++# <smso=\E^Y>, but these caps were commented out in 8.3; also,
++# removed incorrect and overridden ":do=^J:" -- esr)
++hz1510|hazeltine 1510,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
++ cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X,
++ el=\E^O, il1=\E^Z, ind=^J,
++# Hazeltine 1520
++# The following switch settings are assumed for normal operation:
++# FULL CR U/L_CASE ESCAPE
++# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON
++# Other switches may be set for operator convenience or communication
++# requirements.
++hz1520|Hazeltine 1520,
++ OTbs, am, bw, msgr,
++ cols#80, lines#24,
++ bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
++ ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H,
++ kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L,
++ kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z,
++ rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
++# This version works with the escape switch off
++# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
++hz1520-noesc|hazeltine 1520,
++ am, hz,
++ cols#80, lines#24,
++ bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
++ cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O,
++ home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_,
++# Note: the h1552 appears to be the first Hazeltine terminal which
++# is not braindamaged. It has tildes and backprimes and everything!
++# Be sure the auto lf/cr switch is set to cr.
++hz1552|hazeltine 1552,
++ OTbs,
++ cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue,
++ lf2=red, lf3=green, use=vt52,
++hz1552-rv|hazeltine 1552 reverse video,
++ cud1=^J, rmso=\ET, smso=\ES, use=hz1552,
++# Note: h2000 won't work well because of a clash between upper case and ~'s.
++hz2000|hazeltine 2000,
++ OTbs, OTnc, am,
++ cols#74, lines#27,
++ bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
++ cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
++ il1=~\032$<6>, ind=^J, pad=\177,
++# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote:
++# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
++# to work ok. There is one problem though if one types a lot of garbage
++# characters very fast vi seems not able to keep up and hangs while trying
++# to insert. That's in insert mode while trying to insert in the middle of
++# a line. It might be because the Esprit doesn't have insert char and delete
++# char as a built in function. Vi has to delete to end of line and then
++# redraw the rest of the line.
++esprit|Hazeltine Esprit I,
++ OTbs, am, bw,
++ cols#80, lines#24,
++ bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K,
++ cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
++ ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H,
++ kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J,
++ kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J,
++ kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R,
++ lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
++ rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
++esprit-am|hazeltine esprit auto-margin,
++ am, use=esprit,
++# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
++# Vi it seems always wants to send a control J for "do" and it turned out
++# that the terminal would work somewhat if the auto LF/CR was turned off.
++# (hmod1: removed :dn=~^K: -- esr)
++hmod1|Hazeltine Modular 1,
++ OTbs, am, hz,
++ cols#80, lines#24,
++ bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
++ cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z,
++ ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R,
++ rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_,
+ #
+-# NOTE: The NCR Unix System Administrator's Shell does not function properly
+-# with the 'pairs' capability defined as below. If you wish to
+-# have it included, Un-comment it and recompile (using 'tic').
++# Hazeltine Executive 80 Model 30 (1554?)
++# from Will Martin <control@ALMSA-1.ARPA> via BRL
++# Like VT100, except for different "am" behavior.
++hazel|exec80|h80|he80|Hazeltine Executive 80,
++ OTbs, OTpt, am,
++ cols#80, it#8, lines#24, vt#3,
++ OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
++ clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
++ cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
++ ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
++ is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
++ kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
++ kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
++ rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
++ rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
++ rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
++ smul=\E[4m$<2/>,
++
++#### IBM
++#
++
++ibm327x|line mode IBM 3270 style,
++ gn,
++ clear=^M^J, el=^M, home=^M,
++
++ibm3101|i3101|IBM 3101-10,
++ OTbs, am, xon,
++ cols#80, lines#24,
++ bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
++ el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
++ibm3151|IBM 3151 display,
++ is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
++ sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
++ sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
++# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
++# removed kend, knp, kpp -TD
++ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
++ OTbs, am, mir, msgr,
++ cols#80, it#8, lines#24,
++ acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
++ bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
++ cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
++ invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
++ kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
++ kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
++ kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
++ kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
++ kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
++ kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
++ kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
++ ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
++ rmso=\E4@, rmul=\E4@,
++ sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
++ sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
++
++ibm3161-C|IBM 3161-C NLS terminal using cartridge,
++ rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
++ibm3162|IBM 3162 display,
++ blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
++ rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
++ use=ibm3161-C,
++
++# This really should not use setab/setaf, but it is clear that the
++# original terminfo does not toggle red/blue colors as in setb/setf.
++ibm3164|i3164|IBM 3164,
++ msgr,
++ colors#8, pairs#64,
++ op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A,
++ setab=\E4 %p1%{64}%+%c,
++ setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@,
++ smcup=\E!9/N\E>B, use=ibm3161,
++
++ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
++ am, bw, msgr, xon,
++ cols#80, it#8, lines#25,
++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
++ hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
++ indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
++ kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
++ kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
++ kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
++ kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
++ kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
++ kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
++ kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
++ kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
++ kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
++ kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
++ kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
++ kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
++ krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l,
++ rmso=\E[m, rmul=\E[m, rs2=\Ec,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
++ sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++
++ibmaed|IBM Experimental display,
++ OTbs, am, eo, msgr,
++ cols#80, it#8, lines#52,
++ clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
++ dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
++ il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ rmso=\E0, sgr0=\E0, smso=\E0,
++ibm-apl|apl|IBM apl terminal simulator,
++ lines#25, use=dm1520,
++# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
++# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
++ibmmono|IBM workstation monochrome,
++ eslok, hs,
++ bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL,
++ invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET,
++ kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY,
++ khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG,
++ lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew,
++ sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
++ use=ibm3101,
++ibmega|IBM Enhanced Color Display,
++ cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
++ nel=^M^J, use=ibmmono,
++# This color scheme is assumed in some recent IBM terminal descriptions
++# (green on black, emulated on a 16-color terminal).
++ibm+color|IBM color definitions,
++ colors#8, ncv#3, pairs#64,
++ op=\E[32m\E[40m,
++ setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;,
++ setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;,
++ibm+16color|IBM aixterm color definitions,
++ colors#16, pairs#256,
++ setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm,
++ setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm,
++ setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
++ setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
++ibm5154|IBM 5154 Color display,
++ colors#8, ncv@, pairs#64,
++ bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
++ use=ibm+color,
++ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
++ rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
++ use=ibmmono,
++ibmvga-c|IBM VGA display color termcap,
++ cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
++ nel=^M^J, use=ibmega-c,
++ibmvga|IBM VGA display,
++ cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
++ nel=^M^J, use=ibmega,
++# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
++rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
++ lines#32,
++ dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono,
++ibm6155|IBM 6155 Black & White display,
++ blink@, bold@, use=ibm5151,
++# Advanced Monochrome (6153) and Color (6154) Graphics Display:
++ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display,
++ lines#31,
++ dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono,
++ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display,
++ lines#31,
++ dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo,
++ use=ibmega-c,
++ibm6154|IBM 6154 Color displays,
++ blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
++ sgr0=\E[0;10m, use=ibm5154,
++ibm6153|IBM 6153 Black & White display,
++ blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
++ sgr0=\E[0;10m, use=ibm5151,
++ibm6153-90|IBM 6153 Black & White display,
++ cols#90, lines#36,
++ blink@, bold@, use=ibm5151,
++ibm6153-40|IBM 6153 Black & White display,
++ cols#40, lines#12, use=ibm6153-90,
++ibm8512|ibm8513|IBM color VGA Terminal,
++ am, mir, msgr,
++ cols#80, it#8, lines#25,
++ acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
++ clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
++ il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
++ kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
++ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
++ kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
++ rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
++ rmir=\E[4l, rmso=\E[m, rmul=\E[m,
++ rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
++ smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
++ smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++ use=ibm8503,
++hft-c|HFT with Color,
++ colors#8, pairs#64,
++ acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
++ use=ibm5151, use=ibm+color,
++hft-c-old|HFT with Color PC850,
++ colors#8, pairs#64,
++ setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
++ use=ibm+color,
++hft-old|AIWS High Function Terminal,
++ am, xon,
++ cols#80, lines#25,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
++ cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
++ ht=^I, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
++ kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
++ kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
++ ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
++ibm-system1|system1|ibm system/1 computer,
++ am, xt,
++ cols#80, lines#24,
++ bel=^G, clear=^Z, cub1=^H, cuf1=^\,
++ cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K,
++ ind=^J,
++# lft-pc850 : IBM Low Function Terminal Device
++# lft "supports" underline, bold, and blink in the sense that the lft code
++# sets all the right bits. HOWEVER, depending upon the adapter, these
++# attributes may or may not be supported by the device driver.
++lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
++ am, bw, msgr, xon,
++ cols#80, it#8, lines#25,
++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
++ home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
++ il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec,
++ kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q,
++ kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
++ kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
++ kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
++ kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
++ kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
++ kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
++ kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
++ kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
++ kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
++ kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
++ kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
++ kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT,
++ rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g,
++# "Megapel" refers to the display adapter, which was used with the IBM RT
++# aka IBM 6150.
++ibm5081|hft|IBM Megapel Color display,
++ acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
++ s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
++ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
++ eslok, hs,
++ lines#33,
++ dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
++ use=ibmega-c,
++ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
++ use=hft-c,
++ibm8514|IBM 8514/a color VGA display,
++ eslok, hs,
++ dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
++ibm8514-c|IBM 8514 color display with standout and underline,
++ eslok, hs,
++ lines#41,
++ cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J,
++ kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo,
++ use=ibmega-c,
++
+ #
+-ncr260wy350pp|NCR 2900_260 wyse 350,
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1,
+- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
+- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
+- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
+- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
+- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
+- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
+- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
+- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
+- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
+- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
+- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
+- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
+- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
+- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
+- mc0=\EP$<10>, mc4=^T, mc5=^R,
+- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
+- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
+- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- setb=\s,
+- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
+- sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
+- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
+- tsl=\EF,
+-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
+- cols#132,
+- cup=\Ea%i%p1%dR%p2%dC$<30>,
+- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+- use=ncr260wy350pp,
+-# This definition for Wyse 50+ supports several attributes. This means
+-# that it has magic cookies (extra spaces where the attributes begin).
+-# Some applications do not function well with magic cookies. The System
+-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+-# If supporting various attributes is not vital, 'xmc#1' and the extra
+-# attributes can be removed.
+-# Mapping to ASCII character set ('acsc' capability) can also be
+-# restored if needed.
+-# (ncr260wy50+pp: originally contained commented-out
+-# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
+-ncr260wy50+pp|NCR 2900_260 wyse 50+,
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- cols#80, lines#24, nlab#32, xmc#1,
+- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
+- cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
+- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
+- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
+- ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
+- ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
+- invis=\EG1,
+- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
+- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
+- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
+- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
+- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
+- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
+- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
+- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
+- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
+- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
+- mc0=\EP$<10>, mc4=^T, mc5=^R,
+- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
+- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
+- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
+- smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
+-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
+- cols#132,
+- cup=\Ea%i%p1%dR%p2%dC$<30>,
+- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
+- use=ncr260wy50+pp,
+-ncr260wy60pp|NCR 2900_260 wyse 60,
+- am, bw, hs, km, mc5i, mir, msgr, xon,
+- cols#80, lines#24, nlab#32,
+- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
+- cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
+- cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
+- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
+- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
+- ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
+- invis=\EG1,
+- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
+- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
+- kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+- kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
+- kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
+- kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
+- kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
+- kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
+- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
+- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
+- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
+- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
+- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
+- tsl=\EF,
+-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
+- cols#132,
+- cup=\Ea%i%p1%dR%p2%dC$<30>,
+- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
+- use=ncr260wy60pp,
+-ncr160vppp|NCR 2900_160 viewpoint,
+- use=ncr260vppp,
+-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
+- use=ncr260vpwpp,
+-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
+- use=ncr260vt100an,
+-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
+- use=ncr260vt100pp,
+-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
+- use=ncr260vt100wan,
+-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd,
+- use=ncr260vt100wpp,
+-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
+- use=ncr260vt200an,
+-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
+- use=ncr260vt200pp,
+-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
+- use=ncr260vt200wan,
+-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd,
+- use=ncr260vt200wpp,
+-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
+- use=ncr260vt300an,
+-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
+- use=ncr260vt300pp,
+-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
+- use=ncr260vt300wan,
+-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd,
+- use=ncr260vt300wpp,
+-ncr160wy50+pp|NCR 2900_160 wyse 50+,
+- use=ncr260wy50+pp,
+-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
+- use=ncr260wy50+wpp,
+-ncr160wy60pp|NCR 2900_160 wyse 60,
+- use=ncr260wy60pp,
+-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
+- use=ncr260wy60wpp,
+-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
+- am, hs, mc5i, mir, msgr, xon,
+- cols#80, it#8, lines#24, nlab#32,
+- acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
+- bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
+- clear=\E[2J\E[1;1H$<300>, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
+- cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
+- cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
+- cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
+- dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
+- ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
+- enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
+- ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
+- ind=\ED,
+- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
+- kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
+- kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
+- rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
+- rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
+- rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
+- sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
+- sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
+- smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
+- tsl=\E[>+1$<70>,
+-ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
+- cols#132,
+- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
+- rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
+- use=ncrvt100an,
++# AIX entries. IBM ships these with AIX 3.2.5.
++# -- added rc, sc based on manpage -TD
++# Note that we could use ibm+16color, but that is not how IBM defines this one.
++aixterm|IBM Aixterm Terminal Emulator,
++ eslok, hs,
++ acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
++ fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
++ sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
++aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
++ eslok, hs,
++ acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
++ fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
++ sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
++aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
++ eslok, hs,
++ bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
++ tsl=\E[?%p1%dT, use=ibm6153,
++jaixterm|IBM Kanji Aixterm Terminal Eemulator,
++ acsc@, use=aixterm,
++jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
++ acsc@, use=aixterm-m,
++
++# This flavor is adapted from xterm, in turn from aixterm documentation -TD
++aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
++ use=ibm+16color, use=aixterm,
++
++#### Infoton/General Terminal Corp.
+ #
+-# Vendor-supplied NCR termcaps end here
+
+-# NCR7900 DIP switches:
++# gt100 sounds like something DEC would come out with. Let's hope they don't.
++i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
++ ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
++ ind=^J, rmso=\Ea, smso=\Eb,
++i400|infoton 400,
++ OTbs, am,
++ cols#80, lines#25,
++ bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
++ dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
++ il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
++# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
++addrinfo,
++ am,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
++ cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\,
++# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
++infoton,
++ am,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
++ ed=^K, ind=^J, ll=^H^\,
++
++# The ICL6402 was actually the Kokusai Display System 6402.
++# The 6404 was the KDS7372 (color version of the 6402).
+ #
+-# Switch A:
+-# 1-4 - Baud Rate
+-# 5 - Parity (Odd/Even)
+-# 6 - Don't Send or Do Send Spaces
+-# 7 - Parity Enable
+-# 8 - Stop Bits (One/Two)
++# ICL6404 control codes follow:
+ #
+-# Switch B:
+-# 1 - Upper/Lower Shift
+-# 2 - Typewriter Shift
+-# 3 - Half Duplex / Full Duplex
+-# 4 - Light/Dark Background
+-# 5-6 - Carriage Return Without / With Line Feed
+-# 7 - Extended Mode
+-# 8 - Suppress Keyboard Display
++#code function
++#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
++#ctrl-A set SOM position at cursor position
++#ctrl-G Bell
++#ctrl-H Backspace
++#ctrl-I Horiz tab
++#ctrl-J Linefeed
++#ctrl-K Cursor up
++#ctrl-L Cursor right
++#ctrl-M Carriage return
++#ctrl-N Disable xon/xoff to host
++#ctrl-O Enable xon/xoff to host
++#ctrl-R Enable bidirectional mode
++#ctrl-T Disable bidirectional mode
++#ctrl-V Cursor down
++#ctrl-Z Clear unprotected data to insert char
++#ctrl-^ Cursor home
++#ctrl-_ Newline
+ #
+-# Switch C:
+-# 1 - End of line entry disabled/enabled
+-# 2 - Conversational mode / (Local?) Mode
+-# 3 - Control characters displayed / not displayed
+-# 4 - (2-wire?) / 4-wire communications
+-# 5 - RTS on and off for each character
+-# 6 - (50Hz?) / 60 Hz
+-# 7 - Exit after level zero diagnostics
+-# 8 - RS-232 interface
++#ESC lead-in char for multiple character command
++#
++#ESC space R execute power on sequence
++#ESC ! p1 p2 define scroll region:
++# p1 = scroll top line: 20h - 37h
++# p1 = scroll bottom line: 20h - 37h
++#ESC " unlock keyboard
++#ESC # lock keyboard
++#ESC $ Semi-graphics mode on
++#ESC % Semi-graphics mode off
++#ESC & protect mode on
++#ESC ' protect mode off
++#ESC ( write protect mode off (full intensity)
++#ESC ) write protect mode on (half intensity)
++#
++#ESC * clear screen
++#ESC + clear unprotected data to insert char
++#ESC , clear unprotected data to half intensity spaces
++#ESC - p1 p2 p3 p4 address cursor to page, row, column:
++# p1 = page number 0 - 3
++# p2 = row 20h - 7fh
++# p3 = column (lo) 20h - 7fh
++# p4 = column (hi) 20h - 21h (only 132 col)
++#ESC . p1 set cursor style:
++# p1 = 0 invisible cursor
++# p1 = 1 block blinking cursor
++# p1 = 2 block steady cursor
++# p1 = 3 underline blinking cursor
++# p1 = 4 underline steady cursor
++#ESC / transmit cursor location (page, row, column)
++#ESC 0 p1 p2 p3 p4 program edit key:
++# p1 = edit key code: '@'-'S', '`'-'s'
++# p2 p3 p4 = program data (3 bytes)
++#
++#ESC 1 set tab
++#ESC 2 clear tab at cursor
++#ESC 3 clear all tabs
++#ESC 4 send unprotect line to cursor
++#ESC 5 send unprotect page to cursor
++#ESC 6 send line to cursor
++#ESC 7 send page to cursor
++#ESC 8 n set scroll mode:
++# n = 0 set jump scroll
++# n = 1 set smooth scroll
++#ESC 9 n control display:
++# n = 0 display off
++# n = 1 display on
++#ESC : clear unprotected data to null
++#ESC ; clear unprotected data to insert char
++#
++#ESC < keyclick on
++#ESC = p1 p2 address cursor to row, column
++# p1 = row 20h - 7fh
++# p2 = column (lo) 20h - 7fh
++# p3 = column (hi) 20h - 21h (only 132 col)
++#ESC > keyclick off
++#ESC ? transmit cursor location (row, column)
++#
++#ESC @ copy print mode on
++#ESC A copy print mode off
++#ESC B block mode on
++#ESC C block mode off (conversation mode)
++#ESC D F set full duplex
++#ESC D H set half duplex
++#ESC E line insert
++#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd)
++# 0 = black, 1 = red, 2 = green, 3 = yellow
++# 4 = blue, 5 = magenta, 6 = cyan, 7 = white
++#ESC G n set serial field attribute (n = 30h - 3Fh)
++#ESC H n full graphics mode:
++# n = 0 exit full graphics mode
++# n = 1 enter full graphics mode
++#ESC I back tab
++#ESC J back page
++#ESC K forward page
++#
++#ESC L unformatted page print
++#ESC M L move window left (132 col mode only)
++#ESC M R move window right (132 col mode only)
++#ESC N set page edit (clear line edit)
++#ESC O set line edit (clear page edit)
++#ESC P formatted page print
++#ESC Q character insert
++#ESC R line delete
++#ESC S send message unprotected only
++#ESC T erase line to insert char
++#ESC U set monitor mode (see ESC X, ESC u)
++#
++#ESC V n select video attribute mode:
++# n = 0 serial field attribute mode
++# n = 1 parallel character attribute mode
++#ESC V 2 n define line attribute:
++# n = 0 single width single height
++# n = 1 single width double height
++# n = 2 double width single height
++# n = 3 double width double height
++#ESC V 3 n select character font:
++# n = 0 system font
++# n = 1 user defined font
++#ESC V 4 n select screen mode:
++# n = 0 page screen mode
++# n = 1 virtual screen mode
++#ESC V 5 n control mouse mode:
++# n = 0 disable mouse
++# n = 1 enable sample mode
++# n = 2 send mouse information
++# n = 3 enable request mode
++#ESC W character delete
++#ESC X clear monitor mode (see ESC U, ESC u)
++#ESC Y erase page to insert char
++#
++#ESC Z n send user/status line:
++# n = 0 send user line
++# n = 1 send status line
++# n = 2 send terminal ID
++#ESC [ p1 p2 p3 set character attribute (parallel char mode):
++# p1: 0 = normal
++# 1 = blank
++# 2 = blink
++# 3 = blink blank (= blank)
++# 4 = reverse
++# 5 = reverse blank
++# 6 = reverse blink
++# 7 = reverse blink blank (= reverse blank)
++# 8 = underline
++# 9 = underline blank
++# : = underline blink
++# ; = underline blink blank
++# < = reverse underline
++# = = reverse underline blank
++# > = reverse underline blink
++# ? = reverse underline blink blank
++# p2, p3: f/grnd, b/grnd colour
++# (see ESC F for colours)
++# use ZZ for mono, eg.
++# ESC [ 0 Z Z for normal
++# ESC [ 4 Z Z for inverse etc.
++#
++#ESC \ n set page size:
++# n = 1 24 lines/page
++# n = 2 48 lines/page
++# n = 3 72 lines/page
++# n = 4 96 lines/page
++#ESC ] n set Wordstar mode:
++# n = 0 normal (KDS7372) mode
++# n = 1 Wordstar mode
++#
++#ESC b set foreground colour screen
++#
++#ESC c n enter self-test mode:
++# n = 0 exit self test mode
++# n = 1 ROM test
++# n = 2 RAM test
++# n = 3 NVRAM test
++# n = 4 screen display test
++# n = 5 main/printer port test
++# n = 6 mouse port test
++# n = 7 graphics board test
++# n = 8 graphics memory test
++# n = 9 display all 'E'
++# n = : display all 'H'
++#ESC d set background colour screen
++#
++#ESC e n program insert char (n = insert char)
++#ESC f text CR load user status line with 'text'
++#
++#ESC g display user status line on 25th line
++#ESC h display system status line on 25th line
++#ESC i tab
++#ESC j reverse linefeed
++#ESC k n duplex/local edit mode:
++# n = 0 duplex edit mode
++# n = 1 local edit mode
++#ESC l n select virtual screen:
++# n = 0 screen 1
++# n = 1 screen 2
++#ESC m save current config to NVRAM
++#ESC n p1 select display screen:
++# p1 = 0 screen 1
++# p1 = 1 screen 2
++# p1 = 2 screen 3
++# p1 = 3 screen 4
++#ESC o p1 p2 set characters/line and attribute:
++# p1 = 0 80 chars/line
+ #
+-# Switch D:
+-# 1 - Reverse Channel (yes / no)
+-# 2 - Manual answer (no / yes)
+-# 3-4 - Cursor appearance
+-# 5 - Communication Rate
+-# 6 - Enable / Disable EXT turnoff
+-# 7 - Enable / Disable CR turnoff
+-# 8 - Enable / Disable backspace
++#ESC o p1 p2 set characters/line and attribute:
++# p1 = 0 80 chars/line
++# p1 = 1 132 chars/line
++# p2 = 0 single width single height
++# p2 = 1 single width double height
++# p2 = 2 double width single height
++# p2 = 3 double width double height
+ #
+-# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
+-# reverse, blink, dim, and underline) the appropriate number of bits (by
+-# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
+-# '@' is (effectively) "or"ed with each attribute to generate the proper third
+-# character in the <ESC>0 sequence. The <sgr> string implements the following
+-# equation:
++#ESC q insert mode on
++#ESC r edit mode on
++#ESC s send message all
++#ESC t erase line to null
++#ESC u clear monitor mode (see ESC U, ESC X)
++#ESC v autopage mode on
++#ESC w autopage mode off
++#ESC x p1 p2 p3 define delimiter code...
++#ESC y erase page to null
+ #
+-# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) =>
+-# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
++#ESC z 2 p1 p2 p3 p4 draw quadrangle:
++# p1 = starting row
++# p2 = starting column
++# p3 = end row
++# p4 = end column
+ #
+-# Where: P1 <==> Standout attribute parameter
+-# P2 <==> Underline attribute parameter
+-# P3 <==> Reverse attribute parameter
+-# P4 <==> Blink attribute parameter
+-# P5 <==> Dim attribute parameter
+-# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
+-ncr7900i|ncr7900|ncr 7900 model 1,
+- am, bw, ul,
+- cols#80, lines#24, xmc#1,
+- bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
+- cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J,
+- is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F,
+- kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@,
+- rmul=\E0@,
+- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c,
+- sgr0=\E0@, smso=\E0Q, smul=\E0`,
+-ncr7900iv|ncr 7900 model 4,
+- am, bw, eslok, hs,
+- cols#80, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
+- cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
+- fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H,
+- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
+- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
+- khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J,
+- tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
+-# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
+-# The user can enter a CTRL-B to get out of this locked state.
+-# In <hpa>, we want to output the character given by the formula:
+-# ((col / 10) * 16) + (col % 10) where "col" is "p1"
+-ncr7901|ncr 7901 model,
+- am, bw, ul,
+- cols#80, lines#24,
+- bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M,
+- cub1=^H, cud1=^J, cuf1=^F,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A,
+- ed=\Ek, el=\EK,
+- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J,
+- is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
+- khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O,
+- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016,
+- sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
+- vpa=\013%p1%{64}%+%c,
+-
+-# Newbury Data Recording Limited (Newbury Data)
++#ESC { p1 p2 p3 p4 configure main port
++# (baud, stop bits, parity, word length)
+ #
+-# Have been manufacturing and reselling various peripherals for a long time
+-# They don't make terminals anymore, but are still in business (in 2007).
+-# Their e-mail address is at ndsales@newburydata.co.uk
+-# and their post address is:
++#ESC | p1 p2 text Ctrl-Y program function key with 'text':
++# p1 = function key code:
++# '1' - ';' normal f1- f11
++# '<' - 'F' shifted f1 - f11
++# p2 = program mode:
++# 1 = FDX
++# 2 = LOC
++# 3 = HDX
++# Ctrl-Y = terminator
++# (use Ctrl-P to escape ^P, ^Y )
+ #
+-# Newbury Data Recording Ltd,
+-# Premier Park, Road One,
+-# Winsford, Cheshire, CW7 3PT
++#ESC } p1 p2 p3 p4 configure printer port
++# (baud, stop bits, parity, word length)
++#ESC ~ send system status
+ #
+-# Their technical support is still good, they sent me for free a printed copy
+-# of the 9500 user manual and I got it just 1 week after I first contacted them
+-# (in 2005)!
+-
+-# NDR 9500
+-# Manufactured in the early/mid eighties, behaves almost the same as a
+-# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
+-# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
+-# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
+-# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is
+-# recognized: if you type in "ESC !", the next (third) character is not
+-# echoed, showing that the terminal was actually waiting for a parameter!
+-ndr9500|nd9500|Newbury Data 9500,
+- am, bw, hs, mc5i, mir, msgr, ul, xon,
+- cols#80, lines#24, wsl#79,
+- acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0,
+- clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
+- dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
+- flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
+- ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
+- kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
+- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
+- ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
+- kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
+- kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
+- kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
+- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
+- kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
+- pfloc=\E|%{48}%p1%+%c2%p2\031,
+- pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
+- rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
+- sgr=\E%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
+- sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
+- tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
+-
+-ndr9500-nl|NDR 9500 with no status line,
+- hs@,
+- wsl@,
+- dsl@, fsl@, tsl@, use=ndr9500,
+-
+-ndr9500-25|NDR 9500 with 25th line enabled,
+- lines#25, use=ndr9500,
+-
+-ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
+- lines#25, use=ndr9500-nl,
+-
+-ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
+- msgr@,
+- xmc#1,
+- blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
+- sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
+- sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
+-
+-ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
+- lines#25, use=ndr9500-mc,
+-
+-ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
+- hs@,
+- wsl@,
+- dsl@, fsl@, tsl@, use=ndr9500-mc,
+-
+-ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
+- lines#25, use=ndr9500-mc-nl,
+-
+-#### Perkin-Elmer (Owl)
++# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
+ #
+-# These are official terminfo entries from within Perkin-Elmer.
++# Entry is by esr going solely on above information and is UNTESTED.
++# This actually looks a lot like a Televideo 9xx.
++# This entry uses page 0 and is monochrome; I'm not brave enough to try
++# to make color work without a test terminal. The <am> capability is a guess.
++# The initialization string sets conversation mode, blinking underline cursor,
++# full duplex, parallel attribute mode, display user status line, white
++# foreground, black background, normal highlight.
+ #
+-
+-bantam|pe550|pe6100|perkin elmer 550,
+- OTbs,
+- cols#80, lines#24,
+- bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+- el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA,
+-fox|pe1100|perkin elmer 1100,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+- ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
+- home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3,
+-owl|pe1200|perkin elmer 1200,
+- OTbs, am, in,
+- cols#80, lines#24,
+- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
+- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
+- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
+- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
+- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
+- rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
+-pe1251|pe6300|pe6312|perkin elmer 1251,
+- am,
+- cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
+- bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
+- ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J,
+- kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE,
+- kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3,
+-# (pe7000m: this had
+-# rmul=\E!\0, smul=\E!\040,
+-# which is probably wrong, it collides with kf0
+-pe7000m|perkin elmer 7000 series monochrome monitor,
+- am,
++icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372,
++ OTbs, am, hs,
+ cols#80, lines#24,
+- bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB,
+- cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
+- ed=\EJ, el=\EI, home=\EH, ind=^J,
+- is1=\E!\0\EW 7o\Egf\ES7\s, kbs=^H, kcub1=\E!V,
+- kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A,
+- kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
+- kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
+- ll=\ES7\s, ri=\ER,
+-pe7000c|perkin elmer 7000 series colour monitor,
+- is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
+- rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
++ bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*,
++ cnorm=\E.3, cr=^M,
++ csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c,
++ cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I,
++ hts=\E1, il1=\EE, invis=\E[1ZZ,
++ is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
++ rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
++ rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
++ sgr=\E[%'0'%?%p1%t%'8'%|%;%?%p2%t%'8'%|%;%?%p3%t%'4'%|%;%?%p4%t%'2'%|%;%?%p7%t%'1'%|%;%cZZ,
++ sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
++icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
++ rs2=\Eo1, use=icl6404,
+
+-#### Sperry Univac
++#### Interactive Systems Corp
+ #
+-# Sperry Univac has merged with Burroughs to form Unisys.
++# ISC used to sell OEMed and customized hardware to support ISC UNIX.
++# ISC UNIX still exists in 1995, but ISC itself is no more; they got
++# bought out by Sun.
+ #
+
+-# This entry is for the Sperry UTS30 terminal running the TTY
+-# utility under control of CP/M Plus 1R1. The functionality
+-# provided is comparable to the DEC vt100.
+-# (uts30: I added <rmam>/<smam> based on the init string -- esr)
+-uts30|sperry uts30 with cp/m@1R1,
+- am, bw, hs,
+- cols#80, lines#24, wsl#40,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
+- cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
+- dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
+- ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
+- ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
+- rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI,
+- rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
+- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
+- smul=\E[4m, tsl=\E], uc=\EPB,
++# From: <cithep!eric> Wed Sep 16 08:06:44 1981
++# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
++# ":le=^_:" later overridden -- esr)
++intext|Interactive Systems Corporation modified owl 1200,
++ OTbs, am,
++ cols#80, it#8, lines#24, xmc#1,
++ bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\,
++ dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>,
++ el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H,
++ kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
++ kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
++ kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
++ rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
++ smso=^V$\,,
++intext2|intextii|INTERACTIVE modified owl 1251,
++ am, bw, ul,
++ cols#80, lines#24, xmc#0,
++ bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=\E[D,
++ cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
++ flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
++ hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
++ kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
++ kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r,
++ kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r,
++ khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
++ lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
++ lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
++ smul=\E[18 D,
+
+-#### Tandem
++#### Kimtron (abm, kt)
+ #
+-# Tandem builds these things for use with its line of fault-tolerant
+-# transaction-processing computers. They aren't generally available
+-# on the merchant market, and so are fairly uncommon.
++# Kimtron seems to be history, but as March 1998 these people are still
++# offering repair services for Kimtron equipment:
+ #
+-
+-tandem6510|adm3a repackaged by Tandem,
+- use=adm3a,
+-
+-# A funny series of terminal that TANDEM uses. The actual model numbers
+-# have a fourth digit after 653 that designates minor variants. These are
+-# natively block-mode and rather ugly, but they have a character mode which
+-# this doubtless(?) exploits. There is a 6520 that is slightly dumber.
+-# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
+-# removed <if=/usr/share/tabset/tandem653>, no such file -- esr)
+-tandem653|t653x|Tandem 653x multipage terminal,
+- OTbs, am, da, db, hs,
+- cols#80, lines#24, wsl#64, xmc#1,
+- clear=\EI, cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r,
+- ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
+- rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
+-
+-#### Tandy/Radio Shack
++# Com/Pair Monitor Service
++# 1105 N. Cliff Ave.
++# Sioux Falls, South Dakota 57103
+ #
+-# Tandy has a line of VDTs distinct from its microcomputers.
++# WATS voice: 1-800/398-4946
++# POTS fax: +1 605/338-8709
++# POTS voice: +1 605/338-9650
++# Email: <compair@sd.cybernex.net>
++# Internet/Web: <http://www.com-pair.com>
+ #
+-
+-dmterm|deskmate terminal,
+- am, bw,
+- cols#80, lines#24,
+- bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
+- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
+- ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
+- kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
+- kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
+- khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
+- lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
+- use=adm+sgr,
+-dt100|dt-100|Tandy DT-100 terminal,
+- xon,
+- cols#80, lines#24, xmc#1,
+- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
+- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
+- il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
+- kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
+- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
+- knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
+- lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
+-dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
+- cols#132, use=dt100,
+-dt110|Tandy DT-110 emulating ansi,
+- xon,
+- cols#80, lines#24,
+- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
+- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[0P,
+- dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
+- ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
+- kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
+- kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
+- khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
+- lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
+- lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
+- smacs=^N, smso=\E[7m, smul=\E[4m,
+-pt210|TRS-80 PT-210 printing terminal,
+- hc, os,
+- cols#80,
+- bel=^G, cr=^M, cud1=^J, ind=^J,
+-
+-#### Tektronix (tek)
++# Kimtron entries include (undocumented) codes for: enter dim mode,
++# enter bold mode, enter reverse mode, turn off all attributes.
+ #
+-# Tektronix tubes are graphics terminals. Most of them use modified
+-# oscilloscope technology incorporating a long-persistence green phosphor,
+-# and support vector graphics on a main screen with an attached "dialogue
+-# area" for interactive text.
++
++# Kimtron ABM 85 added by Dual Systems
++# (abm85: removed duplicated ":kd=^J:" -- esr)
++abm85|Kimtron ABM 85,
++ OTbs, am, bw, msgr,
++ cols#80, it#8, lines#24, xmc#1,
++ cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\Ey, el=\Et, ht=^I,
++ if=/usr/share/tabset/stdcrt, il1=\EE,
++ is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H,
++ kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek,
++ rmul=\Em, smir=\EQ, smso=\Ej, smul=\El,
++# Kimtron ABM 85H added by Dual Systems.
++# Some notes about the abm85h entries:
++# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
++# firmware revs prior to SP51
++# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
++# abm85e entry if it is in tvi920 emulation mode. They are incompatible
++# in some places and NOT software settable i.e., <is2> can't fix it)
++# 3) In 85h mode, the arrow keys and special functions transmit when
++# the terminal is in dup-edit, and work only locally in local-edit.
++# Vi won't swallow `del char' for instance, but <smcup> turns on
++# dup-edit anyway so that the arrow keys will work right. If the
++# arrow keys don't work the way you like, change <smcup>, <rmcup>, and
++# <is2>. Note that 920E mode does not have software commands to toggle
++# between dup and local edit, so you get whatever was set last on the
++# terminal.
++# 4) <flash> attribute is nice, but seems too slow to work correctly
++# (\Eb<pad>\Ed)
++# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
++# are selected, the <xmc@> entry should be removed.
++# 6) auto new-line should be on (selectable from setup mode only)
+ #
++# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985
++abm85h|Kimtron ABM 85H native mode,
++ hs,
++ xmc@,
++ bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@,
++ fsl=^M, invis@,
++ is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El,
++ kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr,
++ use=abm85,
++abm85e|Kimtron ABM 85H in 920E mode,
++ xmc@,
++ bel=^G, dim=\E), flash@,
++ is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em,
++ rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
++abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.,
++ xmc@,
++ bel=^G, dim=\E),
++ is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF,
++ rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
++# From: <malman@bbn-vax.arpa>
++# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
++kt7|kimtron model kt-7,
++ OTbs, am,
++ cols#80, it#8, lines#24,
++ cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
++ if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E",
++ kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L,
++ kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r,
++ kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr,
++# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
++# other kt7 entry and the adjacent key capabilities). Removed EE which is
++# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight
++# but we can't figure out what.
++kt7ix|kimtron model kt-7 or 70 in IX mode,
++ am, bw,
++ cols#80, it#8, lines#25,
++ acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI,
++ civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V,
++ cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M,
++ home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J,
++ is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
++ ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
++ nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
++ sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
+
+-tek|tek4012|tektronix 4012,
+- OTbs, os,
+- cols#75, lines#35,
+- bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
+- ff=\014$<1000>, is2=\E^O,
+-# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+-tek4013|tektronix 4013,
+- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
+-tek4014|tektronix 4014,
+- cols#81, lines#38,
+- is2=\E\017\E9, use=tek4012,
+-# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+-tek4015|tektronix 4015,
+- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
+-tek4014-sm|tektronix 4014 in small font,
+- cols#121, lines#58,
+- is2=\E\017\E\:, use=tek4014,
+-# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
+-tek4015-sm|tektronix 4015 in small font,
+- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
+-# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
++#### Microdata/MDIS
+ #
+-# You need to have "stty nl2" in effect. Some versions of tset(1) know
+-# how to set it for you.
++# This was a line of terminals made by McDonnell-Douglas Information Systems.
++# These entries come direct from MDIS documentation. I have edited them only
++# to move primary names of the form p[0-9] * to aliases, and to comment out
++# <rmacs>/<smacs> in a couple of entries without <acsc> strings. I have
++# also removed the change history; the last version indicates this is
++# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
+ #
+-# It's got the Magic Cookie problem around stand-out mode. If you can't
+-# live with Magic Cookie, remove the :so: and :se: fields and do without
+-# reverse video. If you like reverse video stand-out mode but don't want
+-# it to flash, change the letter 'H' to 'P' in the :so: field.
+-tek4023|tektronix 4023,
+- OTbs, am,
+- OTdN#4, cols#80, lines#24, vt#4, xmc#1,
+- OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J,
+- cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H,
+- rmso=^_@, smso=^_P,
+-# It is recommended that you run the 4025 at 4800 baud or less;
+-# various bugs in the terminal appear at 9600. It wedges at the
+-# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
+-# on keyboard don't work. You have to hit BREAK twice to get
+-# one break at any speed - this is a documented feature.
+-# Can't use cursor motion because it's memory relative, and
+-# because it only works in the workspace, not the monitor.
+-# Same for home. Likewise, standout only works in the workspace.
++
++# McDonnell Information Systems Terminal Family History
++# =========================================
+ #
+-# <el> was commented out since vi and rogue seem to work better
+-# simulating it with lots of spaces!
++# Prism-1, Prism-2 and P99:
++# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
+ #
+-# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
+-# and didn't seem necessary.
++# Prism-4 and Prism-5:
++# Slightly less ancient range of Microdata terminals. Follow-on from
++# Prism-2, but with many enhancements. P5 has eight display pages.
+ #
+-tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
+- OTbs, am, da, db,
+- cols#80, it#8, lines#34, lm#0,
+- bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M,
+- cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
+- cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
+- cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r,
+- dl=\037dli %p1%d\r\006, dl1=\037dli\r\006,
+- ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010,
+- il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r,
+- ind=^F^J,
+- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
+- rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r,
+- smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r,
+-tek4025-17|tek 4025 17 line window,
+- lines#17, use=tek4025,
+-tek4025-17-ws|tek 4025 17 line window in workspace,
+- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r,
+- rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
+- smso=\037att e\r, use=tek4025-17,
+-tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
+- is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
+- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
+-# Tektronix 4025a
+-# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
+-# The following status modes are assumed for normal operation (replace the
+-# initial "!" by whatever the current command character is):
+-# !COM 29 # NOTE: changes command character to GS (^])
+-# ^]DUP
+-# ^]ECH R
+-# ^]EOL
+-# ^]RSS T
+-# ^]SNO N
+-# ^]STO 9 17 25 33 41 49 57 65 73
+-# Other modes may be set according to communication requirements.
+-# If the command character is inadvertently changed, termcap can't restore it.
+-# Insert-character cannot be made to work on both top and bottom rows.
+-# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
+-# There also seems to be a problem with vertical motion, perhaps involving
+-# delete/insert-line, following a typed carriage return. This terminal sucks.
+-# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
+-# work any more. -- esr)
+-tek4025a|Tektronix 4025A,
+- OTbs, OTpt, am, bw, da, db, xon,
+- cols#80, it#8, lines#34,
+- bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^],
+- cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
+- cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;,
+- cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;,
+- dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;,
+- el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I,
+- il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;,
+- rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;,
+- tbc=\035sto;,
+-# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
+-# Here's the command file that I use to get rogue to work on the 4025.
+-# It should work with any program using the old curses (e.g. it better
+-# not try to scroll, or cursor addressing won't work. Also, you can't
+-# see the cursor.)
+-# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
+-tek4025-cr|tek 4025 for curses and rogue,
+- OTbs, am,
+- cols#80, it#8, lines#33,
+- clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;,
+- cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J,
+- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
+- rmcup=\037wor 0, smcup=\037wor 33h,
+-# next two lines commented out since curses only allows 128 chars, sigh.
+-# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
+-# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
+-tek4025ex|4025ex|4027ex|tek 4025 w/!,
+- is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r,
+- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
+-tek4105|tektronix 4105,
+- OTbs, am, mir, msgr, ul, xenl, xt,
+- cols#79, it#8, lines#29,
+- acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
+- clear=\E[2J\E[H, cr=^M, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
+- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
+- dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
+- il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
+- is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B,
+- kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T,
+- rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m,
+- rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m,
+- smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
+- smul=\E[=5;<2m, tbc=\E[1g,
+-
+-# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
+-tek4105-30|4015 emulating 30 line vt100,
+- am, mir, msgr, xenl, xon,
+- cols#80, it#8, lines#30, vt#3,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
+- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
+- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
+- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
+- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
+- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
+- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
+- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
+- use=vt100+fnkeys,
+-
+-# Tektronix 4105 from BRL
+-# The following setup modes are assumed for normal operation:
+-# CODE ansi CRLF no DABUFFER 141
+-# DAENABLE yes DALINES 30 DAMODE replace
+-# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
+-# FLAGGING input INSERTREPLACE replace LFCR no
+-# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
+-# SELECTCHARSET G1 0 TABS -2
+-# Other setup modes may be set for operator convenience or communication
+-# requirements; I recommend
+-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
+-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
+-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
+-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
+-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
+-# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
+-# XMTDELAY 0
+-# and factory color maps. After setting these modes, save them with NVSAVE. No
+-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# "IC" cannot be used in combination with "im" & "ei".
+-# "tek4105a" is just a guess:
+-tek4105a|Tektronix 4105,
+- OTbs, OTpt, msgr, xon,
+- OTkn#8, cols#80, it#8, lines#30, vt#3,
+- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
+- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
+- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
+- lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
+- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
+- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+-
++# Prism-6:
++# A special terminal for use with library systems, primarily in Germany.
++# Limited numbers. Similar functionality to P5 (except attributes?).
+ #
+-# Tektronix 4106/4107/4109 from BRL
+-# The following setup modes are assumed for normal operation:
+-# CODE ansi COLUMNMODE 80 CRLF no
+-# DABUFFER 141 DAENABLE yes DALINES 32
+-# DAMODE replace DAVISIBILITY yes ECHO no
+-# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace
+-# LFCR no LOCKKEYBOARD no ORIGINMODE relative
+-# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0
+-# TABS -2
+-# Other setup modes may be set for operator convenience or communication
+-# requirements; I recommend
+-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
+-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
+-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
+-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3
+-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
+-# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132
+-# XMTDELAY 0
+-# and factory color maps. After setting these modes, save them with NVSAVE. No
+-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+-# "IC" cannot be used in combination with "im" & "ei".
+-tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
+- msgr, xon,
+- cols#80, it#8, lines#32, vt#3,
+- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
+- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
+- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
+- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
+- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
+- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
+- lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
+- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
+- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
+- smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
+-
+-# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code:
+-# 0 selects Tek mode, i.e., \E%!0
+-# 1 selects ANSI mode
+-# 2 selects ANSI edit-mode
+-# 3 selects VT52 mode
++# Prism-7, Prism-8 and Prism-9:
++# More recent range of MDIS terminals, in which P7 and P8
++# replace the P4 & P5, with added functionality, and P9 is the flagship.
++# The P9 has two emulation modes - P8 and ANSI - and includes a
++# large number of the DEC VT220 control sequences. Both
++# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
++#
++# Prism-12 and Prism-14:
++# Latest range, functionally very similar to the P9. The P14 has a
++# black-on-white overscanning screen.
++#
++# The terminfo definitions given here are:
++#
++# p2 - Prism-2 (or Prism-1 or P99).
+ #
+-# One odd thing about the description (which has been unchanged since the 90s)
+-# is that the cursor addressing is using VT52 mode, and a few others use the
+-# VT52's non-CSI versions of ANSI, e.g., \EJ.
+-tek4107|tek4109|tektronix terminals 4107 4109,
+- OTbs, am, mir, msgr, ul, xenl, xt,
+- cols#79, it#8, lines#29,
+- bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
+- bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M,
+- cub1=^H, cud1=^J, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
+- dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
+- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
+- rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
+- sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
+- sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
+- smul=\E%!1\E[4m$<2>\E%!0,
+-# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
+-# see the note attached to tek4207.
+-tek4207-s|Tektronix 4207 with sysline but no memory,
+- eslok, hs,
+- dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8,
+- is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
+- is2=\E7\E[?6l\E[2K\E[?6h\E8,
+- tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107,
+-
+-# The 4110 series may be a wonderful graphics series, but they make the 4025
+-# look good for screen editing. In the dialog area, you can't move the cursor
+-# off the bottom line. Out of the dialog area, ^K moves it up, but there
+-# is no way to scroll.
++# p4 - Prism-4 (and older P7s & P8s).
++# p5 - Prism-5 (or Prism-6).
+ #
+-# Note that there is a floppy for free from Tek that makes the
+-# 4112 emulate the vt52 (use the vt52 termcap). There is also
+-# an expected enhancement that will use ANSI standard sequences.
++# p7 - Prism-7.
++# p8 - Prism-8 (in national or multinational mode).
++# p8-w - 132 column version of p8.
++# p9 - Prism-9 in ANSI mode.
++# p9-w - 132 column version of p9.
++# p9-8 - Prism-9 in Prism-8 emulation mode.
++# p9-8-w - As p9-8, but with 132 columns.
+ #
+-# 4112 in non-dialog area pretending to scroll. It really wraps
+-# but vi is said to work (more or less) in this mode.
++# p12 - Prism-12 in ANSI mode.
++# p12-w - 132 column version of p12.
++# p12-m - Prism-12 in MDC emulation mode.
++# p12-m-w - As p12-m, but with 132 columns.
++# p14 - Prism-14 in ANSI mode.
++# p14-w - 132 column version of p14.
++# p14-m - Prism-14 in MDC emulation mode.
++# p14-m-w - As p14-m, but with 132 columns.
+ #
+-# 'vi' works reasonably well with this entry.
++# p2: Prism-2
++# -----------
+ #
+-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
+- am,
+- cols#80, lines#34,
+- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
+- rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
+-# The 4112 with the ANSI compatibility enhancement
+-tek4112|tek4114|tektronix 4110 series,
+- OTbs, am, db,
+- cols#80, lines#34,
+- cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P,
+- dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
+- ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
+- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+-tek4112-nd|4112 not in dialog area,
+- OTns,
+- cuu1=^K, use=tek4112,
+-tek4112-5|4112 in 5 line dialog area,
+- lines#5, use=tek4112,
+-# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
+-# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
+-# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
+-# previously \0410 and \0411 sequences...I don't *think* they were supposed
+-# to be 4-digit octal -- esr)
+-tek4113|tektronix 4113 color graphics with 5 line dialog area,
+- OTbs, am, da, eo,
+- cols#80, lines#5,
+- clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0,
+- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
+- is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
+-tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
+- lines#34,
+- is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
+-# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
+-# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
+-# :vb: needs enough delay to let you see the background color being toggled.
+-tek4113-nd|tektronix 4113 color graphics with no dialog area,
+- OTbs, am, eo,
+- cols#80, it#8, lines#34,
+- clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K,
+- cvvis=\ELZ\EKA0,
+- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
+- home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @,
+- ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
+-# This entry is from Tek. Inc. (Brian Biehl)
+-# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
+-otek4115|Tektronix 4115,
+- OTbs, am, da, db, eo,
+- cols#80, it#8, lines#34,
+- cbt=\E[Z, clear=\E[H\E[2J,
+- cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
+- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+- cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
+- el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100,
+- il1=\E[L,
+- is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m,
+- kbs=^H, ri=\EM, rmam=\E[?7l,
+- rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
+- rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
+- smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
+- smul=\E[4m,
+-tek4115|newer tektronix 4115 entry with more ANSI capabilities,
+- am, xon,
+- cols#80, lines#34,
+- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
+- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
+- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
+- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+- il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D,
+- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
+- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
+- rmso=\E[m, rmul=\E[m,
+- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+- sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+- vpa=\E[%p1%{1}%+%dd,
+-# The tek4125 emulates a vt100 incorrectly - the scrolling region
+-# command is ignored. The following entry replaces <csr> with the needed
+-# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
+-# chokes on; and adds a lot of initialization for the tek dialog area.
+-# Note that this entry uses all 34 lines and sets the cursor color to green.
+-# Steve Jacobson 8/85
+-# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
+-# commented out, <smir>=\E1 because there's no <rmir> -- esr)
+-tek4125|tektronix 4125,
+- lines#34,
+- csr@, dl1=\E[1M, il1=\E[1L,
+- is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- rc@, sc@, smkx=\E=, use=vt100,
+-
+-# From: <jcoker@ucbic>
+-# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
+-# supplied another, less capable 4107 entry. So we'll use that for 4107 and
+-# note that if jcoker wasn't confused you may be able to use this one.
+-# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr)
+-tek4207|Tektronix 4207 graphics terminal with memory,
+- am, bw, mir, msgr, ul, xenl,
+- cols#80, it#8, lines#32,
+- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>,
+- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J,
+- el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>,
+- il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5,
+- is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
+- kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H,
+- rev=\E[7m, ri=\E[T,
+- rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m,
+- rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m,
+- smul=\E[4m, tbc=\E[1g,
+-
+-# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
+-# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
+-# Tab had been given as \E2I,that must be the tab-set capability -- esr)
+-tek4404|tektronix 4404,
+- OTbs,
+- cols#80, it#8, lines#32,
+- blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
+- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
+- ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
+- rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
+- rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
+- smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
+- smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
+-# Some unknown person wrote:
+-# I added the is string - straight Unix has ESC ; in the login
+-# string which sets a ct8500 into monitor mode (aka 4025 snoopy
+-# mode). The is string here cleans up a few things (but not
+-# everything).
+-ct8500|tektronix ct8500,
+- am, bw, da, db,
+- cols#80, lines#25,
+- bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J,
+- cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER,
+- dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
+- il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s,
+- rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!,
++# Includes Prism-1 and basic P99 without SP or MP loaded.
++# The simplest form of Prism-type terminal.
++# Basic cursor movement and clearing operations only.
++# No video attributes.
++# Notes:
++# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
++# value up, followed by backspace.
++#
++prism2|MDC Prism-2,
++ am, bw, msgr,
++ cols#80, lines#24,
++ bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
++ cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
++ cuu1=^Z, ed=\EJ, el=\EK, home=^A,
++ hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
++ ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
+
+-# Tektronix 4205 terminal.
++# p4: Prism-4
++# -----------
+ #
+-# am is not defined because the wrap around occurs not when the char.
+-# is placed in the 80'th column, but when we are attempting to type
+-# the 81'st character on the line. (esr: hmm, this is like the vt100
+-# version of xenl, perhaps am + xenl would work!)
++# Includes early versions of P7 & P8.
++# Basic family definition for most Prisms (except P2 and P9 ANSI).
++# Notes:
++# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
++# value up, followed by backspace.
++# Cursor key definitions removed because they interfere with vi and csh keys.
+ #
+-# Bold, dim, and standout are simulated by colors and thus not allowed
+-# with colors. The tektronix color table is mapped into the RGB color
+-# table by setf/setb. All colors are reset to factory specifications by oc.
+-# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
+-# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
+-# interval then maps into pre-defined value.
+-tek4205|tektronix 4205,
+- ccc, mir, msgr,
+- colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
+- clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
+- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
+- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
+- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
+- initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
+- invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
+- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
+- kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
+- kf7=\ES,
+- oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1,
+- op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=,
+- rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m,
+- setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
+- setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
+- sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
+- smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
+- smul=\E[4m, tbc=\E[1g,
++prism4|p4|P4|MDC Prism-4,
++ am, bw, hs, mc5i, msgr,
++ cols#80, lines#24, wsl#72, xmc#1,
++ bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>,
++ cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
++ cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
++ cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK,
++ fsl=^]\345, home=^A,
++ hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
++ ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER,
++ rev=^CD, rmso=^C\s, rmul=^C\s,
++ sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;,
++ sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343,
++ vpa=\013%p1%{32}%+%c,
+
+-#### Teletype (tty)
++# p5: Prism-5
++# -----------
+ #
+-# These are the hardcopy Teletypes from before AT&T bought the company,
+-# clattering electromechanical dinosaurs in Bakelite cases that printed on
+-# pulpy yellow roll paper. If you remember these you go back a ways.
+-# Teletype-branded VDTs are listed in the AT&T section.
++# Same definition as p4. Includes Prism-6 (not tested!).
++# Does not use any multi-page features.
+ #
+-# The earliest UNIXes were designed to use these clunkers; nroff and a few
+-# other programs still default to emitting codes for the Model 37.
++prism5|p5|P5|MDC Prism-5,
++ use=p4,
++
++# p7: Prism-7
++# -----------
+ #
++# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
++# Notes:
++# Use p4 for very early models of P7.
++# Rev-index removed; can't send nulls to terminal in 8-bit modes.
++#
++prism7|p7|P7|MDC Prism-7,
++ cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4,
+
+-tty33|tty35|model 33 or 35 teletype,
+- hc, os, xon,
+- cols#72,
+- bel=^G, cr=^M, cud1=^J, ind=^J,
+-tty37|model 37 teletype,
+- OTbs, hc, os, xon,
+- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
+- ind=^J,
++# p8: Prism-8
++# -----------
++#
++# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
++# Supports national and multinational character sets.
++# Notes:
++# Alternate char set operations only work in multinational mode.
++# Use p4 for very early models of P8.
++# Rev-index removed; can't send nulls to terminal in 8-bit modes.
++# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
++#
++prism8|p8|P8|MDC Prism-8,
++ cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h,
++ vpa=\E[%i%p1%dd, use=p4,
+
+-# There are known to be at least three flavors of the tty40, all seem more
+-# like IBM half duplex forms fillers than ASCII terminals. They have lots of
+-# awful braindamage, such as printing a visible newline indicator after each
+-# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is
+-# braindamaged but has hope and is described here. The 40-4 is a 3270
+-# lookalike and beyond hope. The terminal has visible bell but I don't know
+-# it - it's null here to prevent it from showing the BL character.
+-# There is an \EG in <nl> because of a bug in old vi (if stty says you have
+-# a "newline" style terminal (-crmode) vi figures all it needs is nl
+-# to get crlf, even if <cr> is not ^M.)
+-# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
+-tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
+- OTbs, xon,
+- cols#80, lines#24,
+- clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
+- cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>,
+- ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1,
+- ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^],
+- kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4,
+- rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>,
+-tty43|model 43 teletype,
+- OTbs, am, hc, os, xon,
++# p8-w: Prism-8 in 132 column mode
++# --------------------------------
++#
++# 'Wide' version of p8.
++# Notes:
++# Rev-index removed; can't send nulls to terminal in 8-bit modes.
++#
++prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
+ cols#132,
+- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
++ is2=\E[<12h\E[<14h, use=p8,
+
+-#### Tymshare
++# p9: Prism-9 in ANSI mode
++# -------------------------
++#
++# The "flagship" model of this generation of terminals.
++# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
++# Notes:
++# Tabs only reset by "reset". Otherwise assumes default (8 cols).
++# Fixes to deal with terminal firmware bugs:
++# . 'ri' uses insert-line since rev index doesn't always
++# . 'sgr0' has extra '0' since esc[m fails
++# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
++# Not covered in the current definition:
++# . Labels
++# . Programming Fn keys
++# . Graphic characters (defaults correctly to vt100)
++# . Padding values (sets xon)
++# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
+ #
++prism9|p9|P9|MDC Prism-9 in ANSII mode,
++ am, bw, hs, msgr, xenl, xon,
++ cols#80, it#8, lines#24, vt#3, wsl#72,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
++ clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
++ dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
++ ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
++ ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
++ is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
++ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
++ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
++ kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ khome=\E[H, nel=^M^J, prot=\E[32%{, rc=\E[%z,
++ rep=\E[%p2%db%p1%c, rev=\E[7m, ri=\E[L, rmir=\E[4l,
++ rmso=\E[27m, rmul=\E[24m,
++ rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
++ sc=\E[%y,
++ sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;m%?%p8%t\E[32%%{%;%?%p9%t\016%e\017%;,
++ sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
++ use=ansi+pp,
+
+-# You can add <is2=\E<> to put this 40-column mode, though I can't
+-# for the life of me think why anyone would want to.
+-scanset|sc410|sc415|Tymshare Scan Set,
+- am, bw, msgr,
+- cols#80, lines#24,
+- acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H,
+- cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+- cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED,
+- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
+- mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
++# p9-w: Prism-9 in 132 column mode
++# --------------------------------
++#
++# 'Wide' version of p9.
++#
++prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
++ cols#132,
++ is2=\E[&p\E[<12l\E F\E[<14h,
++ rs2=\E[&p\E[<12l\E F\E[<14h, use=p9,
+
+-#### Volker-Craig (vc)
++# p9-8: Prism-9 in P8 mode
++# ------------------------
+ #
+-# If you saw a Byte Magazine cover with a terminal on it during the early
+-# 1980s, it was probably one of these. Carl Helmers liked them because
+-# they could crank 19.2 and were cheap (that is, he liked them until he tried
+-# to program one...)
++# P9 terminal in P8 emulation mode.
++# Similar to p8 definition.
++# Insertion and deletion operations possible.
+ #
++prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
+
+-# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
+-# every other linefeed.
+-vc303|vc103|vc203|volker-craig 303,
+- OTbs, OTns, am,
+- cols#80, lines#24,
+- bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
+- cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I,
+- kcuu1=^N, ll=\017$<1>W,
+-vc303a|vc403a|volker-craig 303a,
+- clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
+- home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
+-# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
+-vc404|volker-craig 404,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
+- ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J,
+- kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z,
+-vc404-s|volker-craig 404 w/standout mode,
+- cud1=^J, rmso=^O, smso=^N, use=vc404,
+-# From: <wolfgang@cs.sfu.ca>
+-# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
+-vc414|vc414h|Volker-Craig 414H in sane escape mode.,
+- OTbs, am,
+- cols#80, lines#24,
+- clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
+- cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
+- dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
+- ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
+- kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
+- kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
+- lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
+- rmso=\E^_, smso=\E^Y,
+-vc415|volker-craig 415,
+- clear=^L, use=vc404,
++# p9-8-w: Prism-9 in P8 and 132 column modes
++# ------------------------------------------
++#
++# P9 terminal in P8 emulation mode and 132 column mode.
++#
++prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
+
+-######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
++# p12: Prism-12 in ANSI mode
++# ---------------------------
++#
++# See p9 definition.
+ #
++prism12|p12|P12|MDC Prism-12 in ANSI mode,
++ use=p9,
+
+-#### IBM PC and clones
++# p12-w: Prism-12 in 132 column mode
++# ----------------------------------
++#
++# 'Wide' version of p12.
+ #
++prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode,
++ use=p9-w,
+
+-# The pcplot IBM-PC terminal emulation program is really messed up. It is
+-# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
+-# doesn't support scrolling regions, ignores add line commands, and ignores
+-# delete line commands. Consequently, the resulting behavior looks like a
+-# crude adm3a-type terminal.
+-# Steve Jacobson 8/85
+-pcplot|pc-plot terminal emulation program,
+- xenl@,
+- csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
+-# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
+-# I've found that my KayPro II, running MDM730, continues to emulate an
+-# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
+-# system the following termcap entry works well:
+-# I have noticed a couple of minor glitches, but nothing I can't work
+-# around. (I added two capabilities from the BRL entry -- esr)
+-kaypro|kaypro2|kaypro II,
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W,
+- el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K,
++# p12-m: Prism-12 in MDC emulation mode
++# -------------------------------------
++#
++# P12 terminal in MDC emulation mode.
++# Similar to p8 definition.
++# Insertion and deletion operations possible.
++#
++prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
++ use=p9-8,
+
+-# From IBM, Thu May 5 19:35:27 1983
+-# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr)
+-ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS),
+- OTbs, am,
+- cols#80, lines#24,
+- bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\,
+- cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_,
++# p12-m-w: Prism-12 in MDC emulation and 132 column modes
++# -------------------------------------------------------
++#
++# P12 terminal in MDC emulation mode and 132 column mode.
++#
++prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
++ use=p9-8-w,
+
+-ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
+- OTbs, am, bw, eo, hs, km, msgr, ul,
+- cols#80, it#8, lines#24,
+- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
+- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
+- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+- home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
+- indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
+- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+- kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241,
+- kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247,
+- kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
+- ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
+- rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
+- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
+- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++# p14: Prism-14 in ANSII mode
++# ---------------------------
++#
++# See p9 definition.
++#
++prism14|p14|P14|MDC Prism-14 in ANSII mode,
++ use=p9,
+
+-#### Apple II
++# p14-w: Prism-14 in 132 column mode
++# ----------------------------------
+ #
+-# Apple II firmware console first, then various 80-column cards and
+-# terminal emulators. For two cents I'd toss all these in the UFO file
+-# along with the 40-column apple entries.
++# 'Wide' version of p14.
+ #
++prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode,
++ use=p9-w,
+
+-# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
+-# 'it#8' tells UNIX that you have tabs every 8 columns. This is a
+-# function of TIC, not the firmware.
+-# The clear key on a IIgs will do something like clear-screen,
+-# depending on what you're in.
+-appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface,
+- OTbs, am, bw, eo, msgr,
+- cols#80, it#8, lines#24,
+- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J,
+- kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N,
+- smso=^O,
+-# Apple //e with 80-column card, entry from BRL
+-# The modem interface is permitted to discard LF (maybe DC1), otherwise
+-# passing characters to the 80-column firmware via COUT (PR#3 assumed).
+-# Auto-wrap does not work right due to newline scrolling delay, which also
+-# requires that you set "stty cr2".
+-# Note: Cursor addressing is only available via the Pascal V1.1 entry,
+-# not via the BASIC PR#3 hook. All this nonsense can be avoided only by
+-# using a terminal emulation program instead of the built-in firmware.
+-apple2e|Apple //e,
+- bw, msgr,
+- cols#80, lines#24,
+- bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
+- ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W,
+- is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K,
+- nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
+- smso=^O,
+-# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
+-# 4.20, with incoming and outgoing terminals both on 0, emulation On.
+-apple2e-p|Apple //e via Pascal,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
+- kcud1=^J, use=apple2e,
+-# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
+-# Enable DC3/DC1 flow control with "stty ixon -ixany".
+-apple-ae|ASCII Express,
+- OTbs, am, bw, msgr, nxon, xon,
+- cols#80, it#8, lines#24,
+- bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J,
+- kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
+- smso=^O,
+-appleII|apple ii plus,
+- OTbs, am,
+- cols#80, it#8, lines#24,
+- clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6,
+- ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I,
+- is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N,
+- smso=^O,
+-# Originally by Gary Ford 21NOV83
+-# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
+-apple-80|apple II with smarterm 80 col,
+- OTbs, am, bw,
+- cols#80, lines#24,
+- cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J,
+- cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
+- ed=\013$<10*/>, el=\035$<10/>, home=^Y,
+-apple-soroc|apple emulating soroc 120,
+- am,
+- cols#80, lines#24,
+- bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
+- home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
+-# From Peter Harrison, Computer Graphics Lab, San Francisco
+-# ucbvax!ucsfmis!harrison .....uucp
+-# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA
+-# "These two work. If you don't have the inverse video chip for the
+-# Apple with videx then remove the :so: and :se: fields."
+-# (apple-videx: this used to be called DaleApple -- esr)
+-apple-videx|Apple with videx videoterm 80 column board with inverse video,
+- OTbs, am, xenl,
+- cols#80, it#8, lines#24,
+- clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y,
+- rmso=^Z2, sgr0=^Z2, smso=^Z3,
+-# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
+-# Apple Cat ][ 212 modem, + more all
+-# controlled by ASCII Express: Pro.
+-# From Dave Shaver <isucs1!shaver>
+-apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell,
+- OTbs, am, eo, xt,
+- cols#80, lines#24,
+- acsc=, clear=^L, cuf1=^\,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- flash=^W35^W06, home=^Y,
+- is2=^V4^W06\017\rVisible Bell Installed.\016\r\n,
+- rmso=^N, smso=^O,
+-apple-uterm|Ultraterm for Apple micros,
+- OTbs, am, eo, xt,
+- cols#80, lines#24,
+- acsc=, clear=^L, cuf1=^\,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O,
+-# from trwrba!bwong (Bradley W. Wong):
++# p14-m: Prism-14 in MDC emulation mode
++# -------------------------------------
+ #
+-# This entry assumes that you are using an apple with the UCSD Pascal
+-# language card. SYSTEM.MISCINFO is assumed to be the same as that
+-# supplied with the standard apple except that screenwidth should be set
+-# using SETUP to 80 columns. Note that the right arrow is not mapped in
+-# this termcap entry. This is because that key, on the Apple, transmits
+-# a ^U and would thus preempt the more useful "up" function of vi.
++# P14 terminal in MDC emulation mode.
++# Similar to p8 definition.
++# Insertion and deletion operations possible.
+ #
+-# HMH 2/23/81
+-apple80p|80-column apple with Pascal card,
+- am, bw,
+- cols#80, lines#24,
+- clear=^Y^L, cuf1=^\\:,
+- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
+- home=^Y, kcub1=^H,
++prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode,
++ use=p9-8,
++
++# p14-m-w: Prism-14 in MDC emulation and 132 column modes
++# -------------------------------------------------------
+ #
+-# Apple II+ equipped with Videx 80 column card
++# P14 terminal in MDC emulation mode and 132 column mode.
+ #
+-# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
+-# manually converted by D A Gwyn
++prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode,
++ use=p9-8-w,
++
++# End of McDonnell Information Systems Prism definitions
++
++# These things were popular in the Pick database community at one time
++# From: George Land <georgeland@aol.com> 24 Sep 1996
++p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition,
++ am, bw, hs, mir,
++ cols#80, lines#24, ma#1, wsl#78, xmc#1,
++ bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P,
++ ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U,
++ kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ,
++ kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r,
++ kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r,
++ kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2,
++ lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M,
++ pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
++ smul=^C0,
++
++#### Microterm (act, mime)
+ #
+-# DO NOT use any terminal emulation with this data base, it works directly
+-# with the Videx card. This has been tested with vi 1200 baud and works fine.
++# The mime1 entries refer to the Microterm Mime I or Mime II.
++# The default mime is assumed to be in enhanced act iv mode.
+ #
+-# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
+-# 1 screen, while in R2 ^U doesn't.
+-# For inverse alternate character set add:
+-# <smacs>=^O:<rmacs>=^N:
+-# (apple-v: added it#8 -- esr)
+-apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
+- am, xenl,
+- cols#80, it#8, lines#24,
+- bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H,
+- cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
+- cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>,
+- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
+- khome=^Y, rmso=^Z2, smso=^Z3,
+-apple-videx3|vapple|Apple II with 80 col card,
++
++# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents
++# freakout with out-of-range args on Sytek multiplexors. No <smso=^N> and
++# <rmso=^N> since it gets confused and it's too dim anyway. No <ich1>
++# since Sytek insists ^S means xoff.
++# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
++act4|microterm|microterm act iv,
+ OTbs, am,
+ cols#80, lines#24,
+- clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex,
+- home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+- kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#,
+- kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+-#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
+-aepro|Apple II+ running ASCII Express Pro--vt52,
++ bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
++ cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c,
++ cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>,
++ ed=\037$<2.2*/>, el=\036$<.1*/>, home=^],
++ il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X,
++ kcuu1=^Z,
++# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
++# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
++# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
++act5|microterm5|microterm act v,
++ kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
++ use=act4,
++# Mimes using brightness for standout. Half bright is really dim unless
++# you turn up the brightness so far that lines show up on the screen.
++mime-fb|full bright mime1,
++ is2=^S\E, rmso=^S, smso=^Y, use=mime,
++mime-hb|half bright mime1,
++ is2=^Y\E, rmso=^Y, smso=^S, use=mime,
++# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
++# the more plausible ":do=^J:" -- esr)
++# uc was at one time disabled to get around a curses bug, be wary of it
++mime|mime1|mime2|mimei|mimeii|microterm mime1,
++ OTbs, am,
++ cols#80, it#8, lines#24, vt#9,
++ bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X,
++ cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c,
++ cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>,
++ il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K,
++ kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
++# These termcaps (for mime2a) put the terminal in low intensity mode
++# since high intensity mode is so obnoxious.
++mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED,
++ dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
++ il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J,
++ kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
++ smir=\EE, smso=\E\:, smul=\E6,
++# This is the preferred mode (but ^X can't be used as a kill character)
++mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
+ OTbs,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
++ dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
++ il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
++ rmul=\E5, smir=^O, smso=\E8, smul=\E4,
++# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
++mime3a|mime1 emulating 3a,
++ am@,
++ kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
++mime3ax|mime-3ax|mime1 emulating enhanced 3a,
++ it#8,
++ dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
++ use=mime3a,
++# Wed Mar 9 18:53:21 1983
++# We run our terminals at 2400 baud, so there might be some timing problems at
++# higher speeds. The major improvements in this model are the terminal now
++# scrolls down and insert mode works without redrawing the rest of the line
++# to the right of the cursor. This is done with a bit of a kludge using the
++# exit graphics mode to get out of insert, but it does not appear to hurt
++# anything when using vi at least. If you have some users using act4s with
++# programs that use curses and graphics mode this could be a problem.
++mime314|mm314|mime 314,
++ am,
+ cols#80, lines#24,
+- clear=\014$<300/>, cub1=\ED, cud1=\EB, cuf1=\EC,
+- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
+- el=\EK, home=\EH,
+-# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
+-apple-vm80|ap-vm80|apple with viewmax-80,
+- OTbs,
++ clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z,
++ dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H,
++ kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S,
++# Microterm mime 340 from University of Wisconsin
++mm340|mime340|mime 340,
+ cols#80, lines#24,
+- clear=\014$<300/>, cuf1=^\\:,
+- cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
+- ed=\013$<300/>, el=^], home=\031$<200/>,
++ clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
++ dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>,
++ el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,,
++ kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J,
++# This came from University of Wisconsin marked "astro termcap for jooss".
++# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
++# also added <rmam>/<smam> based on the init string -- esr)
++mt4520-rv|micro-term 4520 reverse video,
++ am, hs, msgr, xenl, xon,
++ cols#80, it#8, lines#24, wsl#80,
++ bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
++ fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
++ is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J,
++ kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
++ ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100,
++ ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
++ rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
++ sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
++ tbc=\E[g, tsl=\E[25;1H,
+
+-#### Apple Lisa & Macintosh
++# Fri Aug 5 08:11:57 1983
++# This entry works for the ergo 4000 with the following setups:
++# ansi,wraparound,newline disabled, xon/xoff disabled in both
++# setup a & c.
+ #
++# WARNING!!! There are multiple versions of ERGO 4000 microcode
++# Be advised that very early versions DO NOT WORK RIGHT !!
++# Microterm does have a ROM exchange program- use it or lose big
++# (ergo400: added <rmam>/<smam> based on the init string -- esr)
++ergo4000|microterm ergo 4000,
++ da, db, msgr,
++ cols#80, lines#66,
++ bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
++ el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
++ is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
++ lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
++ rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
++ smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
++ smso=\E[7m$<20>,
+
+-# (lisa: changed <cvvis> to <cnorm> -- esr)
+-lisa|apple lisa console display (black on white),
+- OTbs, am, eo, msgr,
+- cols#88, it#8, lines#32,
+- acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
+- cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
+- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
+- is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
+- sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
+-liswb|apple lisa console display (white on black),
+- is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
+- smso=\E[m, smul=\E[4m, use=lisa,
+-
+-# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
+-# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA>
++#### NCR
+ #
+-# These entries assume that the 'Auto Wraparound' is enabled.
+-# Xon-Xoff flow control should also be enabled.
++# NCR's terminal group was merged with AT&T's when AT&T bought the company.
++# For what happened to that group, see the ADDS section.
+ #
+-# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
+-# settings are in non-volatile memory and don't need to be reset upon login.
+-# Also setting the number of columns glitches the screen annoyingly.
+-# You can type "reset" to get them set.
++# There is an NCR4103 terminal that's just a re-badged Wyse-50.
+ #
+-lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
+- OTbs, OTpt, am, xenl, xon,
+- OTkn#4, cols#80, it#8, lines#24, vt#3,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
+- el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD,
+- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
+- kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
+- rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
+- sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+- tbc=\E[3g,
+-# Lisaterm in 132 column ("wide") mode.
+-lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
++
++# The following vendor-supplied termcaps were captured from the Boundless
++# Technologies site, 8 March 1998. I removed all-upper-case names that were
++# identical, except for case, to lower-case ones. I also uncommented the acsc
++# capabilities.X
++#
++# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
++# DEC vt200/300 with color capabilities added.
++ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
++ colors#8, pairs#64,
++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ use=ncr260vt300an,
++# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
++# DEC vt200/300 with color capabilities added.
++ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
++ colors#8, pairs#64,
++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ use=ncr260vt300wan,
++# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
++# DEC vt200/300 with color capabilities added.
++ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
++ colors#8, pairs#64,
++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ use=ncr260vt300pp,
++# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
++# DEC vt200/300 with color capabilities added.
++ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
++ colors#8, pairs#64,
++ op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
++ use=ncr260vt300wpp,
++# This definition for ViewPoint supports several attributes. This means
++# that it has magic cookies (extra spaces where the attributes begin).
++# Some applications do not function well with magic cookies. The System
++# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
++# If supporting various attributes is not vital, 'xmc#1' and the extra
++# attributes can be removed.
++# Mapping to ASCII character set ('acsc' capability) can also be
++# restored if needed.
++ncr260vppp|NCR 2900_260 viewpoint,
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ cols#80, lines#24, nlab#32, xmc#1,
++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
++ cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
++ cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
++ dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
++ el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1,
++ il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
++ is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
++ kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
++ kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
++ kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
++ kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
++ kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
++ kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
++ kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
++ kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
++ kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
++ kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
++ kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
++ nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
++ rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
++ rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
++ sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
++ smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
++ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
++ cols#132,
++ cup=\Ea%i%p1%dR%p2%dC$<30>,
++ is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
++ rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
++ use=ncr260vppp,
++ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
++ am, hs, mir, msgr, xenl, xon,
++ cols#80, lines#24, nlab#32,
++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
++ blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
++ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
++ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
++ cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
++ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
++ ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
++ fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
++ hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
++ il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
++ invis=\E[8m,
++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
++ knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>,
++ rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
++ rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
++ sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
++ tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>, use=vt220+keypad,
++ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
++ cols#132,
++ cup=\E[%i%p1%d;%p2%dH$<30>,
++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ use=ncr260vt100an,
++ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
++ kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
++ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ smkx=\E=, use=ncr260vt100an,
++ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
++ cols#132,
++ cup=\E[%i%p1%d;%p2%dH$<30>,
++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ use=ncr260vt100pp,
++ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
++ am, hs, mir, msgr, xenl, xon,
++ cols#80, lines#24, nlab#32,
++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
++ blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
++ csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
++ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
++ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
++ cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
++ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
++ ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
++ fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
++ ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
++ ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf2=\EOQ, kf20=\E[34~, kf21=\E[31~, kf22=\E[32~,
++ kf23=\E[33~, kf24=\E[34~, kf25=\E[35~, kf26=\E[1~,
++ kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR, kf30=\E[5~,
++ kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
++ kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
++ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
++ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
++ mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
++ ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
++ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
++ sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
++ use=vt220+keypad,
++ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
+ cols#132,
+- kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm,
+-# Although MacTerminal has insert/delete line, it is commented out here
+-# since it is much faster and cleaner to use the "lock scrolling region"
+-# method of inserting and deleting lines due to the MacTerminal implementation.
+-# Also, the "Insert/delete ch" strings have an extra character appended to them
+-# due to a bug in MacTerminal V1.1. Blink is disabled since it is not
+-# supported by MacTerminal.
+-mac|macintosh|Macintosh with MacTerminal,
+- xenl,
+- OTdN#30,
+- blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa,
+-# Lisaterm in 132 column ("wide") mode.
+-mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
+- cols#132, use=mac,
+-
+-# nsterm*|Apple_Terminal - AppKit Terminal.app
+-#
+-# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and
+-# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
+-# Server and Mac OS X operating systems. There is also a
+-# "terminal.app" in GNUStep, but I believe it to be an unrelated
+-# codebase and I have not attempted to describe it here.
+-#
+-# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
+-# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
+-# You might also try "nsterm-7" and "nsterm-old" if you suspect your
+-# version supports color.
+-#
+-# To determine the version of Terminal.app you're using by running:
+-#
+-# echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
+-#
+-# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
+-#
+-# For Apple_Terminal v71+/v100+, use "nsterm-bce".
+-#
+-# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
+-#
+-# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
+-#
+-# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
+-# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
+-# might work too, but really you're on your own here since these
+-# systems are very obsolete and I can't test them. I do welcome
+-# patches, though :).
+-
+-# Other Terminals:
+-#
+-# For GNUstep_Terminal, you're probably best off using "linux" or
+-# writing your own terminfo.
+-
+-# For MacTelnet, you're on your own. It's a different codebase, and
+-# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
+-
+-# For iTerm.app, see "iterm".
+-
+-#
+-# The AppKit Terminal.app descriptions all have names beginning with
+-# "nsterm". Note that the statusline (-s) versions use the window
+-# titlebar as a phony status line, and may produce warnings during
+-# compilation as a result ("tsl uses 0 parameters, expected 1".)
+-# Ignore these warnings, or even ignore these entries entirely. Apps
+-# which need to position the cursor or do other fancy stuff inside the
+-# status line won't work with these entries. They're primarily useful
+-# for programs like Pine which provide simple notifications in the
+-# status line. Please note that non-ASCII characters don't work right
+-# in the status line, since Terminal.app incorrectly interprets their
+-# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X
+-# versions) or only accepts status lines consisting entirely of
+-# characters from the first 256 Unicode positions (including C1 but
+-# not C0 or DEL.)
+-#
+-# The Mythology* of AppKit Terminal.app:
+-#
+-# In the days of NeXTSTep 0.x and 1.x there were two incompatible
+-# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
+-# shareware replacement for Terminal called "Stuart" which NeXT bought
+-# and used as the basis for the Terminal.app in NeXTstep 2+,
+-# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
+-# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
+-# capabilities for the early versions, but I believe that the
+-# TERM_PROGRAM_VERSION may have been reset at some point.
+-#
+-# The early versions were tailored to the NeXT character set. Sometime
+-# after the Apple aquisition the encoding was swiched to MacRoman
+-# (initally with serious altcharset bugs due to incomplete conversion
+-# of the old NeXT code,) and then later to UTF-8. Alos sometime during
+-# or just prior to the early days of Mac OS X, the Terminal grew ANSI
+-# 8-color support (initially buggy when combined with attributes, but
+-# that was later fixed.) More recently, around Mac OS X version 10.3
+-# or so (Terminal.app v100+) xterm-like 16-color support was added. In
+-# some versions (for instance 133-1 which shipped with Mac OS X
+-# version 10.4) this suffered from the <bce> bug, but that seems to
+-# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
+-#
+-# In the early days of Mac OS X the terminal was fairly buggy and
+-# would routinely crash under load. Many of these bugs seem to have
+-# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
+-# some may still remain. This change seems to correspond to
+-# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
+-# it did previously.
+-#
+-# * This may correspond with what actually happened, but I don't
+-# know. It is based on guesswork, hearsay, private correspondence,
+-# my faulty memory, and the following online sources and references:
+-#
+-# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
+-# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
++ cup=\E[%i%p1%d;%p2%dH$<30>,
++ is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
++ rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
++ use=ncr260vt200an,
++ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
++ ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
++ kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
++ use=ncr260vt200an,
++ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
++ cols#132,
++ cup=\E[%i%p1%d;%p2%dH$<30>,
++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ use=ncr260vt200pp,
++ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
++ am, hs, mir, msgr, xenl, xon,
++ cols#80, lines#24, nlab#32,
++ acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
++ blink=\E[5m, bold=\E[1m, civis=\E[?25l,
++ clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
++ csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
++ cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
++ cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
++ cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
++ cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
++ dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
++ ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
++ fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
++ ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
++ ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
++ is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kdch1=\E[3~, kf0=\EOy, kf10=\E[21~, kf11=\E[23~,
++ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
++ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
++ kf20=\E[34~, kf21=\E[31~, kf22=\E[32~, kf23=\E[33~,
++ kf24=\E[34~, kf25=\E[35~, kf26=\E[1~, kf27=\E[2~,
++ kf28=\E[3~, kf29=\E[4~, kf30=\E[5~, kf31=\E[6~, kf32=\E[7~,
++ kf33=\E[8~, kf34=\E[9~, kf35=\E[10~, kf5=\E[M, kf6=\E[17~,
++ kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
++ khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ krdo=\E[29~, kslt=\E[4~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i,
++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM$<5>, rmacs=\017$<20>,
++ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
++ rmul=\E[24m,
++ rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<20>,
++ sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
++ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
++ use=vt220+keypad,
++ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
++ cols#132,
++ cup=\E[%i%p1%d;%p2%dH$<30>,
++ is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
++ rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
++ use=ncr260vt300an,
++ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
++ ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
++ kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
++ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
++ use=ncr260vt300an,
++NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd,
++ cols#132,
++ cup=\E[%i%p1%d;%p2%dH$<30>,
++ is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
++ use=ncr260vt300pp,
++# This terminfo file contains color capabilities for the Wyse325 emulation of
++# the NCR 2900/260C color terminal. Because of the structure of the command
++# (escape sequence) used to set color attributes, one of the fore/background
++# colors must be preset to a given value. I have set the background color to
++# black. The user can change this setup by altering the last section of the
++# 'setf' definition. The escape sequence to set color attributes is
++# ESC d y <foreground_color> <background_color> 1
++# In addition, the background color can be changed through the desk accessories.
++# The capablitiy 'op' sets colors to green on black (default combination).
+ #
+-# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
+-# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
++# NOTE: The NCR Unix System Administrator's Shell will not function properly
++# if the 'pairs' capability is defined. Un-Comment the 'pairs'
++# capability and recompile if you wish to have it included.
+ #
+-# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
+-# "nsterm" to comply with the name length and case conventions and
+-# limitations of various software packages [notably Solaris terminfo
+-# and UNIX.] A single Apple_Terminal alias is retained for
+-# backwards-compatbility.
++ncr260wy325pp|NCR 2900_260 wyse 325,
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ colors#16, cols#80, lines#24, ncv#33, nlab#32,
++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
++ cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M,
++ cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
++ cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
++ ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I,
++ hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
++ kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
++ kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET,
++ kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r,
++ kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r,
++ kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r,
++ kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r,
++ kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r,
++ kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
++ kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ,
++ kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
++ rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ setb=\s,
++ setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
++ sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
++ smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
++ tsl=\EF,
++ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
++ cols#132,
++ cup=\Ea%i%p1%dR%p2%dC$<30>,
++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ use=ncr260wy325pp,
++# This definition for Wyse 350 supports several attributes. This means
++# that it has magic cookies (extra spaces where the attributes begin).
++# Some applications do not function well with magic cookies. The System
++# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
++# If supporting various attributes is not vital, 'xmc#1' and the extra
++# attributes can be removed.
++# Mapping to ASCII character set ('acsc' capability) can also be
++# restored if needed.
++# In addition, color capabilities have been added to this file. The drawback,
++# however, is that the background color has to be black. The foreground colors
++# are numbered 0 through 15.
+ #
+-# * Added function key support (F1-F4). These only work in Terminal.app
+-# version 51, hopefully the capabilities won't cause problems for people
+-# using version 41.
++# NOTE: The NCR Unix System Administrator's Shell does not function properly
++# with the 'pairs' capability defined as below. If you wish to
++# have it included, Un-comment it and recompile (using 'tic').
+ #
+-# * Added "full color" (-c) entries which support the 16-color mode in
+-# version 51.
++ncr260wy350pp|NCR 2900_260 wyse 350,
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ colors#16, cols#80, lines#24, ncv#33, nlab#32, pairs#16, xmc#1,
++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
++ cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
++ cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
++ cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
++ ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
++ hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
++ kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
++ kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
++ kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
++ kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
++ kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
++ kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
++ kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
++ khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
++ mc0=\EP$<10>, mc4=^T, mc5=^R,
++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
++ rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ setb=\s,
++ setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
++ sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
++ smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
++ tsl=\EF,
++ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
++ cols#132,
++ cup=\Ea%i%p1%dR%p2%dC$<30>,
++ is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
++ rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
++ use=ncr260wy350pp,
++# This definition for Wyse 50+ supports several attributes. This means
++# that it has magic cookies (extra spaces where the attributes begin).
++# Some applications do not function well with magic cookies. The System
++# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
++# If supporting various attributes is not vital, 'xmc#1' and the extra
++# attributes can be removed.
++# Mapping to ASCII character set ('acsc' capability) can also be
++# restored if needed.
++# (ncr260wy50+pp: originally contained commented-out
++# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
++ncr260wy50+pp|NCR 2900_260 wyse 50+,
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ cols#80, lines#24, nlab#32, xmc#1,
++ acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
++ cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
++ cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
++ cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
++ ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
++ ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
++ invis=\EG1,
++ is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
++ kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
++ kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
++ kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
++ kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
++ kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
++ kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
++ kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
++ kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
++ khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
++ mc0=\EP$<10>, mc4=^T, mc5=^R,
++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
++ rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
++ rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
++ smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
++ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
++ cols#132,
++ cup=\Ea%i%p1%dR%p2%dC$<30>,
++ is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
++ rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
++ use=ncr260wy50+pp,
++ncr260wy60pp|NCR 2900_260 wyse 60,
++ am, bw, hs, km, mc5i, mir, msgr, xon,
++ cols#80, lines#24, nlab#32,
++ acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
++ cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
++ cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
++ cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
++ ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
++ ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
++ invis=\EG1,
++ is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
++ kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
++ kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
++ kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
++ kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
++ kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
++ kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
++ kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
++ mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
++ nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
++ rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
++ rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
++ smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
++ tsl=\EF,
++ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
++ cols#132,
++ cup=\Ea%i%p1%dR%p2%dC$<30>,
++ is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
++ use=ncr260wy60pp,
++ncr160vppp|NCR 2900_160 viewpoint,
++ use=ncr260vppp,
++ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
++ use=ncr260vpwpp,
++ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
++ use=ncr260vt100an,
++ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
++ use=ncr260vt100pp,
++ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
++ use=ncr260vt100wan,
++ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd,
++ use=ncr260vt100wpp,
++ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
++ use=ncr260vt200an,
++ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
++ use=ncr260vt200pp,
++ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
++ use=ncr260vt200wan,
++ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd,
++ use=ncr260vt200wpp,
++ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
++ use=ncr260vt300an,
++ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
++ use=ncr260vt300pp,
++ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
++ use=ncr260vt300wan,
++ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd,
++ use=ncr260vt300wpp,
++ncr160wy50+pp|NCR 2900_160 wyse 50+,
++ use=ncr260wy50+pp,
++ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
++ use=ncr260wy50+wpp,
++ncr160wy60pp|NCR 2900_160 wyse 60,
++ use=ncr260wy60pp,
++ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
++ use=ncr260wy60wpp,
++ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
++ am, hs, mc5i, mir, msgr, xon,
++ cols#80, it#8, lines#24, nlab#32,
++ acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
++ bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
++ clear=\E[2J\E[1;1H$<300>, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
++ cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
++ cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
++ cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
++ dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
++ ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
++ enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
++ ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
++ ind=\ED,
++ is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
++ kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
++ kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
++ rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
++ rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
++ rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
++ sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
++ sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
++ smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
++ tsl=\E[>+1$<70>,
++ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
++ cols#132,
++ is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
++ rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
++ use=ncrvt100an,
+ #
+-# * By default, version 51 uses UTF-8 encoding with broken altcharset
+-# support, so "ASCII" (-7) entries without altcharset support were
+-# added.
++# Vendor-supplied NCR termcaps end here
+
+-# nsterm - AppKit Terminal.app
+-#
+-# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
+-# Terminal.app. It is a partial VT100 emulation with some xterm-like
+-# extensions. This terminfo was written to describe versions 41
+-# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
+-# version 10.1) of Terminal.app.
+-#
+-# Terminal.app runs under the Mac OS X Quartz windowing system (and
+-# other AppKit-supported windowing systems.) On the Mac OS X machine I
+-# use, the executable for Terminal.app is:
+-# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
+-#
+-# If you're looking for a description of the full-screen system
+-# console which runs under Apple's Darwin operating system on PowerPC
+-# platforms, see the "xnuppc" entry instead.
+-#
+-# There were no function keys in version 41. In version 51, there are
+-# four working function keys (F1, F2, F3 and F4.) The function keys
+-# are included in all of these entries.
++# NCR7900 DIP switches:
+ #
+-# It does not support mouse pointer position reporting. Under some
+-# circumstances the cursor can be positioned using option-click; this
+-# works by comparing the cursor position and the selected position,
+-# and simulating enough cursor-key presses to move the cursor to the
+-# selected position. This technique fails in all but the simplest
+-# applications.
++# Switch A:
++# 1-4 - Baud Rate
++# 5 - Parity (Odd/Even)
++# 6 - Don't Send or Do Send Spaces
++# 7 - Parity Enable
++# 8 - Stop Bits (One/Two)
+ #
+-# It provides partial ANSI color support (background colors interacted
+-# badly with bold in version 41, though, as reflected in :ncv:.) The
+-# monochrome (-m) entries are useful if you've disabled color support
+-# or use a monochrome monitor. The full color (-c) entries are useful
+-# in version 51, which doesn't exhibit the background color bug. They
+-# also enable an xterm-compatible 16-color mode.
++# Switch B:
++# 1 - Upper/Lower Shift
++# 2 - Typewriter Shift
++# 3 - Half Duplex / Full Duplex
++# 4 - Light/Dark Background
++# 5-6 - Carriage Return Without / With Line Feed
++# 7 - Extended Mode
++# 8 - Suppress Keyboard Display
+ #
+-# The configurable titlebar is set using xterm-compatible sequences;
+-# it is used as a status bar in the statusline (-s) entries. Its width
+-# depends on font sizes and window sizes, but 50 characters seems to
+-# be the default for an 80x24 window.
++# Switch C:
++# 1 - End of line entry disabled/enabled
++# 2 - Conversational mode / (Local?) Mode
++# 3 - Control characters displayed / not displayed
++# 4 - (2-wire?) / 4-wire communications
++# 5 - RTS on and off for each character
++# 6 - (50Hz?) / 60 Hz
++# 7 - Exit after level zero diagnostics
++# 8 - RS-232 interface
+ #
+-# The MacRoman character encoding is used for some of the alternate
+-# characters in the "MacRoman" entries; the "ASCII" (-7) entries
+-# disable alternate character set support entirely, and the "VT100"
+-# (-acs) entries rely instead on Terminal.app's own buggy VT100
+-# graphics emulation, which seems to think the character encoding is
+-# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
+-# are useful in Terminal.app version 51, which supports UTF-8 and
+-# other ASCII-compatible character encodings but does not correctly
+-# implement VT100 graphics; once VT100 graphics are correctly
+-# implemented in Terminal.app, the "VT100" (-acs) entries should be
+-# usable in any ASCII-compatible character encoding [except perhaps
+-# in UTF-8, where some experts argue for disallowing alternate
+-# characters entirely.]
++# Switch D:
++# 1 - Reverse Channel (yes / no)
++# 2 - Manual answer (no / yes)
++# 3-4 - Cursor appearance
++# 5 - Communication Rate
++# 6 - Enable / Disable EXT turnoff
++# 7 - Enable / Disable CR turnoff
++# 8 - Enable / Disable backspace
+ #
+-# Terminal.app reports "vt100" as the terminal type, but exports
+-# several environment variables which may aid detection in a shell
+-# profile (i.e. .profile or .login):
++# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
++# reverse, blink, dim, and underline) the appropriate number of bits (by
++# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
++# '@' is (effectively) "or"ed with each attribute to generate the proper third
++# character in the <ESC>0 sequence. The <sgr> string implements the following
++# equation:
+ #
+-# TERM=vt100
+-# TERM_PROGRAM=Apple_Terminal
+-# TERM_PROGRAM_VERSION=41 # in Terminal.app version 41
+-# TERM_PROGRAM_VERSION=51 # in Terminal.app version 51
++# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) =>
++# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
+ #
+-# For example, the following Bourne shell script would detect the
+-# correct terminal type:
++# Where: P1 <==> Standout attribute parameter
++# P2 <==> Underline attribute parameter
++# P3 <==> Reverse attribute parameter
++# P4 <==> Blink attribute parameter
++# P5 <==> Dim attribute parameter
++# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
++ncr7900i|ncr7900|ncr 7900 model 1,
++ am, bw, ul,
++ cols#80, lines#24, xmc#1,
++ bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
++ cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J,
++ is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F,
++ kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@,
++ rmul=\E0@,
++ sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c,
++ sgr0=\E0@, smso=\E0Q, smul=\E0`,
++ncr7900iv|ncr 7900 model 4,
++ am, bw, eslok, hs,
++ cols#80, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
++ cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
++ fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H,
++ kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
++ kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
++ khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J,
++ tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
++# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
++# The user can enter a CTRL-B to get out of this locked state.
++# In <hpa>, we want to output the character given by the formula:
++# ((col / 10) * 16) + (col % 10) where "col" is "p1"
++ncr7901|ncr 7901 model,
++ am, bw, ul,
++ cols#80, lines#24,
++ bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M,
++ cub1=^H, cud1=^J, cuf1=^F,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A,
++ ed=\Ek, el=\EK,
++ hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J,
++ is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
++ khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O,
++ sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016,
++ sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
++ vpa=\013%p1%{64}%+%c,
++
++# Newbury Data Recording Limited (Newbury Data)
+ #
+-# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
+-# then
+-# export TERM
+-# if [ :"$TERM_PROGRAM_VERSION" = :41 ]
+-# then
+-# TERM="nsterm-old"
+-# else
+-# TERM="nsterm-c-7"
+-# fi
+-# fi
++# Have been manufacturing and reselling various peripherals for a long time
++# They don't make terminals anymore, but are still in business (in 2007).
++# Their e-mail address is at ndsales@newburydata.co.uk
++# and their post address is:
+ #
+-# In a C shell derivative, this would be accomplished by:
++# Newbury Data Recording Ltd,
++# Premier Park, Road One,
++# Winsford, Cheshire, CW7 3PT
+ #
+-# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
+-# if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
+-# if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
+-# setenv TERM "nsterm-old"
+-# else
+-# setenv TERM "nsterm-c-7"
+-# endif
+-# endif
+-# endif
+-
+-# The '+' entries are building blocks
+-nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
+- am, bw, msgr, xenl, xon,
+- cols#80, it#8, lines#24,
+- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+- invis=\E[8m, kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+- kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM,
+- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
+-
+-nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
+- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+- enacs=\E(B\E)0, rmacs=^O,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+-
+-nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
+- acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245,
+- enacs=\E(B\E)0, rmacs=^O,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+- sgr0=\E[m\017, smacs=^N, use=nsterm+7,
+-
+-nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
+- hs,
+- wsl#50,
+- dsl=\E]2;\007, fsl=^G, tsl=\E]2;,
+-
+-nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
+- op=\E[0m, use=ibm+16color,
+-
+-nsterm+c41|AppKit Terminal.app v41 color support,
+- colors#8, ncv#37, pairs#64,
+- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+-
+-# These are different combinations of the building blocks
+-
+-# ASCII charset (-7)
+-nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
+- use=nsterm+7,
+-
+-nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
+- use=nsterm+s, use=nsterm+7,
+-
+-nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
+- use=nsterm+c41, use=nsterm+7,
+-
+-nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
+- use=nsterm+c, use=nsterm+7,
+-
+-nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
+- use=nsterm+s, use=nsterm+c41, use=nsterm+7,
+-
+-nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
+- use=nsterm+s, use=nsterm+c, use=nsterm+7,
+-
+-# VT100 alternate-charset (-acs)
+-nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
+- use=nsterm+acs,
+-
+-nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
+- use=nsterm+s, use=nsterm+acs,
+-
+-nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
+- use=nsterm+c41, use=nsterm+acs,
+-
+-nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
+- use=nsterm+c, use=nsterm+acs,
++# Their technical support is still good, they sent me for free a printed copy
++# of the 9500 user manual and I got it just 1 week after I first contacted them
++# (in 2005)!
+
+-nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
+- use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
++# NDR 9500
++# Manufactured in the early/mid eighties, behaves almost the same as a
++# Televideo 950. Take a 950, change its cabinet for a more 80s-ish one (but
++# keep the same keyboard layout), add an optional 25-line mode, replace the DIP
++# switches with a menu and remove the "lock line" feature (ESC ! 1 and ESC !
++# 2), here is the NDR 9500. Even the line-lock, albeit disabled, is
++# recognized: if you type in "ESC !", the next (third) character is not
++# echoed, showing that the terminal was actually waiting for a parameter!
++ndr9500|nd9500|Newbury Data 9500,
++ am, bw, hs, mc5i, mir, msgr, ul, xon,
++ cols#80, lines#24, wsl#79,
++ acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0,
++ clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
++ dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
++ flash=\Eb$<50/>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
++ ich1=\EQ, il1=\EE, ind=^J, is2=\Ew\E'\EDF\El\Er\EO,
++ kDC=\Er, kDL=\EO, kEOL=\Et, kIC=\Eq, kcbt=\EI, kclr=^Z,
++ kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
++ ked=\EY, kel=\ET, kent=^M, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
++ kf12=^A`\r, kf13=^Aa\r, kf14=^Ab\r, kf15=^Ac\r, kf16=^Ad\r,
++ kf17=^Ae\r, kf18=^Af\r, kf19=^Ag\r, kf2=^AA\r, kf20=^Ah\r,
++ kf21=^Ai\r, kf22=^Aj\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
++ kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
++ kich1=\EQ, kil1=\EE, kprt=\EP, mc4=\Ea, mc5=\E`, nel=^_,
++ pfloc=\E|%{48}%p1%+%c2%p2\031,
++ pfx=\E|%{48}%p1%+%c1%p2\031, prot=\E), ri=\Ej,
++ rmacs=\E%%, rmir=\Er, rmso=\E(, rmxon=^N,
++ sgr=\EG0\E%%%%\E(%?%p1%p5%p8%|%|%t\E)%;%?%p9%t\E$%;,
++ sgr0=\EG0\E%%\E(, smacs=\E$, smir=\Eq, smso=\E), smxon=^O,
++ tbc=\E3, tsl=\Eg\Ef\011%p1%{32}%+%c, .kbs=^H,
+
+-nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
+- use=nsterm+s, use=nsterm+c, use=nsterm+acs,
++ndr9500-nl|NDR 9500 with no status line,
++ hs@,
++ wsl@,
++ dsl@, fsl@, tsl@, use=ndr9500,
+
+-# MacRoman charset
+-nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
+- use=nsterm+mac,
++ndr9500-25|NDR 9500 with 25th line enabled,
++ lines#25, use=ndr9500,
+
+-nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
+- use=nsterm+s, use=nsterm+mac,
++ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
++ lines#25, use=ndr9500-nl,
+
+-nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color),
+- use=nsterm+c41, use=nsterm+mac,
++ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
++ msgr@,
++ xmc#1,
++ blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
++ sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
++ sgr0=\EG0\E%%\E(, smso=\EG4, smul=\EG8, use=ndr9500,
+
+-nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
+- use=nsterm+c, use=nsterm+mac,
++ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
++ lines#25, use=ndr9500-mc,
+
+-nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
+- use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
++ndr9500-mc-nl|NDR 9500 with magic cookies and no status line,
++ hs@,
++ wsl@,
++ dsl@, fsl@, tsl@, use=ndr9500-mc,
+
+-nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
+- use=nsterm+s, use=nsterm+c, use=nsterm+mac,
++ndr9500-25-mc-nl|NDR 9500 with 25 lines and magic cookies and no status line,
++ lines#25, use=ndr9500-mc-nl,
+
+-# In Mac OS X version 10.5 the format of the preferences has changed
+-# and a new, more complex technique is needed, e.g.,
++#### Perkin-Elmer (Owl)
+ #
+-# python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
+-# "NSUserDefaults");ud=NSUserDefaults.alloc();
+-# ud.init();prefs=ud.persistentDomainForName_(
+-# "com.apple.Terminal");prefs["Window Settings"][
+-# prefs["Default Window Settings"]]["TerminalType"
+-# ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
+-# "com.apple.Terminal")' nsterm-16color
++# These are official terminfo entries from within Perkin-Elmer.
+ #
+-# and it is still not settable from the preferences dialog. This is
+-# tracked under rdar://problem/7365108 and rdar://problem/7365134
+-# in Apple's bug reporter.
+-nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
+- bw@, mir, npc,
+- civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
+- flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+- ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F,
+- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+- kf18=\E[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~,
+- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+- knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+- smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
+- use=nsterm-c-s-acs,
+
+-# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
+-# the background color erase bug. The newer version 240.2 in Mac OS X
+-# version 10.5 does not.
++bantam|pe550|pe6100|perkin elmer 550,
++ OTbs,
++ cols#80, lines#24,
++ bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
++ el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA,
++fox|pe1100|perkin elmer 1100,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
++ ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
++ home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3,
++owl|pe1200|perkin elmer 1200,
++ OTbs, am, in,
++ cols#80, lines#24,
++ bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
++ dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
++ el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
++ hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
++ kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
++ kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
++ rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
++pe1251|pe6300|pe6312|perkin elmer 1251,
++ am,
++ cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
++ bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
++ ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J,
++ kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE,
++ kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3,
++# (pe7000m: this had
++# rmul=\E!\0, smul=\E!\040,
++# which is probably wrong, it collides with kf0
++pe7000m|perkin elmer 7000 series monochrome monitor,
++ am,
++ cols#80, lines#24,
++ bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB,
++ cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
++ ed=\EJ, el=\EI, home=\EH, ind=^J,
++ is1=\E!\0\EW 7o\Egf\ES7\s, kbs=^H, kcub1=\E!V,
++ kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A,
++ kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
++ kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
++ ll=\ES7\s, ri=\ER,
++pe7000c|perkin elmer 7000 series colour monitor,
++ is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
++ rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
++
++#### Sperry Univac
+ #
+-# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
+-# and D P Schreber comparing to nsterm-c-s-acs.
++# Sperry Univac has merged with Burroughs to form Unisys.
+ #
+-# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
+-# can be set in Terminal.app, e.g.,
++
++# This entry is for the Sperry UTS30 terminal running the TTY
++# utility under control of CP/M Plus 1R1. The functionality
++# provided is comparable to the DEC vt100.
++# (uts30: I added <rmam>/<smam> based on the init string -- esr)
++uts30|sperry uts30 with cp/m@1R1,
++ am, bw, hs,
++ cols#80, lines#24, wsl#40,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
++ cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
++ dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
++ ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
++ ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
++ rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI,
++ rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
++ rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
++ smul=\E[4m, tsl=\E], uc=\EPB,
++
++#### Tandem
+ #
+-# defaults write com.apple.Terminal TermCapString nsterm-bce
++# Tandem builds these things for use with its line of fault-tolerant
++# transaction-processing computers. They aren't generally available
++# on the merchant market, and so are fairly uncommon.
+ #
+-# and that it is not set in Terminal's preferences dialog.
+-nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
+- bce, bw, use=nsterm-16color,
+
+-# This is an alias which should always point to the "current" version
+-nsterm|Apple_Terminal|AppKit Terminal.app,
+- use=nsterm-16color,
++tandem6510|adm3a repackaged by Tandem,
++ use=adm3a,
+
+-# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
+-# more featureful) terminal emulator for Mac OS X. It is similar
+-# enough in capabilities to nsterm-16color that I have derived this
+-# description from that one, but as far as I know they share no code.
+-# Many of the features are user-configurable, but I attempt only to
+-# describe the default configuration.
+-#
+-# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is
+-# disabled.
+-iTerm.app|iTerm.app terminal emulator for Mac OS X,
+- bce, bw@, ccc@,
+- csr@, initc@, kend=\EOF, khome=\EOH, use=xterm+256color,
+- use=nsterm-16color,
++# A funny series of terminal that TANDEM uses. The actual model numbers
++# have a fourth digit after 653 that designates minor variants. These are
++# natively block-mode and rather ugly, but they have a character mode which
++# this doubtless(?) exploits. There is a 6520 that is slightly dumber.
++# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
++# removed <if=/usr/share/tabset/tandem653>, no such file -- esr)
++tandem653|t653x|Tandem 653x multipage terminal,
++ OTbs, am, da, db, hs,
++ cols#80, lines#24, wsl#64, xmc#1,
++ clear=\EI, cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r,
++ ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
++ rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
+
+-# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
++#### Tandy/Radio Shack
+ #
+-# On PowerPC platforms, Apple's Darwin operating system uses a
+-# full-screen system console derived from a NetBSD framebuffer
+-# console. It is an ANSI-style terminal, and is not really VT-100
+-# compatible.
++# Tandy has a line of VDTs distinct from its microcomputers.
+ #
+-# Under Mac OS X, this is the system console driver used while in
+-# single-user mode [reachable by holding down Command-S during the
+-# boot process] and when logged in using console mode [reachable by
+-# typing ">console" at the graphical login prompt.]
++
++dmterm|deskmate terminal,
++ am, bw,
++ cols#80, lines#24,
++ bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
++ cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
++ ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
++ kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
++ kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
++ khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
++ lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
++ use=adm+sgr,
++dt100|dt-100|Tandy DT-100 terminal,
++ xon,
++ cols#80, lines#24, xmc#1,
++ acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
++ il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
++ kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
++ kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
++ knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
++ lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
++dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
++ cols#132, use=dt100,
++dt110|Tandy DT-110 emulating ansi,
++ xon,
++ cols#80, lines#24,
++ acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
++ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[0P,
++ dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
++ ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
++ kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
++ kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
++ khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
++ lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
++ lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
++ smacs=^N, smso=\E[7m, smul=\E[4m,
++pt210|TRS-80 PT-210 printing terminal,
++ hc, os,
++ cols#80,
++ bel=^G, cr=^M, cud1=^J, ind=^J,
++
++#### Tektronix (tek)
+ #
+-# If you're looking for a description of the Terminal.app terminal
+-# emulator which runs under the Mac OS X Quartz windowing system (and
+-# other AppKit-supported windowing systems,) see the "nsterm"
+-# entry instead.
++# Tektronix tubes are graphics terminals. Most of them use modified
++# oscilloscope technology incorporating a long-persistence green phosphor,
++# and support vector graphics on a main screen with an attached "dialogue
++# area" for interactive text.
++#
++
++tek|tek4012|tektronix 4012,
++ OTbs, os,
++ cols#75, lines#35,
++ bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
++ ff=\014$<1000>, is2=\E^O,
++# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
++tek4013|tektronix 4013,
++ acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
++tek4014|tektronix 4014,
++ cols#81, lines#38,
++ is2=\E\017\E9, use=tek4012,
++# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
++tek4015|tektronix 4015,
++ acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
++tek4014-sm|tektronix 4014 in small font,
++ cols#121, lines#58,
++ is2=\E\017\E\:, use=tek4014,
++# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
++tek4015-sm|tektronix 4015 in small font,
++ acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
++# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
+ #
+-# NOTE: Under Mac OS X version 10.1, the default login window does not
+-# prompt for user name, instead requiring an icon to be selected from
+-# a list of known users. Since the special ">console" login is not in
+-# this list, you must make one of two changes in the Login Window
+-# panel of the Login section of System Prefs to make the special
+-# ">console" login accessible. The first option is to enable 'Show
+-# "Other User" in list for network users', which will add a special
+-# "Other..." icon to the graphical login panel. Selecting "Other..."
+-# will present the regular graphical login prompt. The second option
+-# is to change the 'Display Login Window as:' setting to 'Name and
+-# password entry fields', which replaces the login panel with a
+-# graphical login prompt.
++# You need to have "stty nl2" in effect. Some versions of tset(1) know
++# how to set it for you.
+ #
+-# There are no function keys, at least not in Darwin 1.3.
++# It's got the Magic Cookie problem around stand-out mode. If you can't
++# live with Magic Cookie, remove the :so: and :se: fields and do without
++# reverse video. If you like reverse video stand-out mode but don't want
++# it to flash, change the letter 'H' to 'P' in the :so: field.
++tek4023|tektronix 4023,
++ OTbs, am,
++ OTdN#4, cols#80, lines#24, vt#4, xmc#1,
++ OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J,
++ cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H,
++ rmso=^_@, smso=^_P,
++# It is recommended that you run the 4025 at 4800 baud or less;
++# various bugs in the terminal appear at 9600. It wedges at the
++# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
++# on keyboard don't work. You have to hit BREAK twice to get
++# one break at any speed - this is a documented feature.
++# Can't use cursor motion because it's memory relative, and
++# because it only works in the workspace, not the monitor.
++# Same for home. Likewise, standout only works in the workspace.
+ #
+-# It has no mouse support.
++# <el> was commented out since vi and rogue seem to work better
++# simulating it with lots of spaces!
+ #
+-# It has full ANSI color support, and color combines correctly with
+-# all three supported attributes: bold, inverse-video and underline.
+-# However, bold colored text is almost unreadable (bolding is
+-# accomplished using shifting and or-ing, and looks smeared) so bold
+-# has been excluded from the list of color-compatible attributes
+-# [using (ncv)]. The monochrome entry (-m) is useful if you use a
+-# monochrome monitor.
++# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
++# and didn't seem necessary.
+ #
+-# There is one serious bug with this terminal emulation's color
+-# support: repositioning the cursor onto a cell with non-matching
+-# colors obliterates that cell's contents, replacing it with a blank
+-# and displaying a colored cursor in the "current" colors. There is
+-# no complete workaround at present [other than using the monochrome
+-# (-m) entries,] but removing the (msgr) capability seemed to help.
++tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
++ OTbs, am, da, db,
++ cols#80, it#8, lines#34, lm#0,
++ bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M,
++ cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
++ cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
++ cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r,
++ dl=\037dli %p1%d\r\006, dl1=\037dli\r\006,
++ ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010,
++ il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r,
++ ind=^F^J,
++ is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
++ rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r,
++ smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r,
++tek4025-17|tek 4025 17 line window,
++ lines#17, use=tek4025,
++tek4025-17-ws|tek 4025 17 line window in workspace,
++ is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r,
++ rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
++ smso=\037att e\r, use=tek4025-17,
++tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
++ is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
++ rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
++# Tektronix 4025a
++# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
++# The following status modes are assumed for normal operation (replace the
++# initial "!" by whatever the current command character is):
++# !COM 29 # NOTE: changes command character to GS (^])
++# ^]DUP
++# ^]ECH R
++# ^]EOL
++# ^]RSS T
++# ^]SNO N
++# ^]STO 9 17 25 33 41 49 57 65 73
++# Other modes may be set according to communication requirements.
++# If the command character is inadvertently changed, termcap can't restore it.
++# Insert-character cannot be made to work on both top and bottom rows.
++# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
++# There also seems to be a problem with vertical motion, perhaps involving
++# delete/insert-line, following a typed carriage return. This terminal sucks.
++# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
++# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
++# work any more. -- esr)
++tek4025a|Tektronix 4025A,
++ OTbs, OTpt, am, bw, da, db, xon,
++ cols#80, it#8, lines#34,
++ bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^],
++ cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
++ cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;,
++ cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;,
++ dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;,
++ el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I,
++ il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;,
++ rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;,
++ tbc=\035sto;,
++# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
++# Here's the command file that I use to get rogue to work on the 4025.
++# It should work with any program using the old curses (e.g. it better
++# not try to scroll, or cursor addressing won't work. Also, you can't
++# see the cursor.)
++# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
++tek4025-cr|tek 4025 for curses and rogue,
++ OTbs, am,
++ cols#80, it#8, lines#33,
++ clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;,
++ cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J,
++ is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
++ rmcup=\037wor 0, smcup=\037wor 33h,
++# next two lines commented out since curses only allows 128 chars, sigh.
++# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
++# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
++tek4025ex|4025ex|4027ex|tek 4025 w/!,
++ is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r,
++ rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
++tek4105|tektronix 4105,
++ OTbs, am, mir, msgr, ul, xenl, xt,
++ cols#79, it#8, lines#29,
++ acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
++ clear=\E[2J\E[H, cr=^M, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
++ dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
++ il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
++ is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B,
++ kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T,
++ rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m,
++ rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m,
++ smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
++ smul=\E[=5;<2m, tbc=\E[1g,
++
++# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
++tek4105-30|4015 emulating 30 line vt100,
++ am, mir, msgr, xenl, xon,
++ cols#80, it#8, lines#30, vt#3,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
++ clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C$<2>,
++ cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
++ cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
++ enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
++ rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
++ rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
++ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
++ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
++ sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
++ smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
++ use=vt100+fnkeys,
++
++# Tektronix 4105 from BRL
++# The following setup modes are assumed for normal operation:
++# CODE ansi CRLF no DABUFFER 141
++# DAENABLE yes DALINES 30 DAMODE replace
++# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
++# FLAGGING input INSERTREPLACE replace LFCR no
++# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
++# SELECTCHARSET G1 0 TABS -2
++# Other setup modes may be set for operator convenience or communication
++# requirements; I recommend
++# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
++# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
++# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
++# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
++# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
++# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
++# XMTDELAY 0
++# and factory color maps. After setting these modes, save them with NVSAVE. No
++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
++# "IC" cannot be used in combination with "im" & "ei".
++# "tek4105a" is just a guess:
++tek4105a|Tektronix 4105,
++ OTbs, OTpt, msgr, xon,
++ OTkn#8, cols#80, it#8, lines#30, vt#3,
++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
++ cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
++ kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
++ lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
++ rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
++ sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++
+ #
+-# The "standout" chosen was simple reverse-video, although a colorful
+-# standout might be more aesthetically pleasing. Similarly, the bold
+-# chosen is the terminal's own smeared bold, although a simple
+-# color-change might be more readable. The color-bold (-b) entries
+-# uses magenta colored text for bolding instead. The fancy color (-f
+-# and -f2) entries use color for bold, standout and underlined text
+-# (underlined text is still underlined, though.)
++# Tektronix 4106/4107/4109 from BRL
++# The following setup modes are assumed for normal operation:
++# CODE ansi COLUMNMODE 80 CRLF no
++# DABUFFER 141 DAENABLE yes DALINES 32
++# DAMODE replace DAVISIBILITY yes ECHO no
++# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace
++# LFCR no LOCKKEYBOARD no ORIGINMODE relative
++# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0
++# TABS -2
++# Other setup modes may be set for operator convenience or communication
++# requirements; I recommend
++# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
++# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
++# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
++# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3
++# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
++# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132
++# XMTDELAY 0
++# and factory color maps. After setting these modes, save them with NVSAVE. No
++# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
++# "IC" cannot be used in combination with "im" & "ei".
++tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
++ msgr, xon,
++ cols#80, it#8, lines#32, vt#3,
++ acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
++ civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
++ cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
++ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
++ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
++ ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
++ il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
++ kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
++ kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
++ kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
++ lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
++ rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
++ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
++ sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
++ smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
++
++# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code:
++# 0 selects Tek mode, i.e., \E%!0
++# 1 selects ANSI mode
++# 2 selects ANSI edit-mode
++# 3 selects VT52 mode
+ #
+-# Apparently the terminal emulator does support a VT-100-style
+-# alternate character set, but all the alternate character set
+-# positions have been left blank in the font. For this reason, no
+-# alternate character set capabilities have been included in this
+-# description. The console driver appears to be ASCII-only, so (enacs)
+-# has been excluded [although the VT-100 sequence does work.]
++# One odd thing about the description (which has been unchanged since the 90s)
++# is that the cursor addressing is using VT52 mode, and a few others use the
++# VT52's non-CSI versions of ANSI, e.g., \EJ.
++tek4107|tek4109|tektronix terminals 4107 4109,
++ OTbs, am, mir, msgr, ul, xenl, xt,
++ cols#79, it#8, lines#29,
++ bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
++ bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M,
++ cub1=^H, cud1=^J, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
++ dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
++ kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
++ rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
++ sgr=\E%%!1\E[%?%p1%t;7;5%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t<0%;%?%p6%t;1%;m$<2>\E%%!0,
++ sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
++ smul=\E%!1\E[4m$<2>\E%!0,
++# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
++# see the note attached to tek4207.
++tek4207-s|Tektronix 4207 with sysline but no memory,
++ eslok, hs,
++ dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8,
++ is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
++ is2=\E7\E[?6l\E[2K\E[?6h\E8,
++ tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107,
++
++# The 4110 series may be a wonderful graphics series, but they make the 4025
++# look good for screen editing. In the dialog area, you can't move the cursor
++# off the bottom line. Out of the dialog area, ^K moves it up, but there
++# is no way to scroll.
+ #
+-# The default Mac OS X and Darwin installation reports "vt100" as the
+-# terminal type, and exports no helpful environment variables. To fix
+-# this, change the "console" entry in /etc/ttys from "vt100" to
+-# "xnuppc-WxH", where W and H are the character dimensions of your
+-# console (see below.)
++# Note that there is a floppy for free from Tek that makes the
++# 4112 emulate the vt52 (use the vt52 termcap). There is also
++# an expected enhancement that will use ANSI standard sequences.
+ #
+-# The font used by the terminal emulator is apparently one originally
+-# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
+-# file includes descriptions for the following geometries:
++# 4112 in non-dialog area pretending to scroll. It really wraps
++# but vi is said to work (more or less) in this mode.
+ #
+-# Pixels Characters Entry Name (append -m for monochrome)
+-# -------------------------------------------------------------------
+-# 640x400 80x25 xnuppc-80x25
+-# 640x480 80x30 xnuppc-80x30
+-# 720x480 90x30 xnuppc-90x30
+-# 800x600 100x37 xnuppc-100x37
+-# 896x600 112x37 xnuppc-112x37
+-# 1024x640 128x40 xnuppc-128x40
+-# 1024x768 128x48 xnuppc-128x48
+-# 1152x768 144x48 xnuppc-144x48
+-# 1280x1024 160x64 xnuppc-160x64
+-# 1600x1024 200x64 xnuppc-200x64
+-# 1600x1200 200x75 xnuppc-200x75
+-# 2048x1536 256x96 xnuppc-256x96
++# 'vi' works reasonably well with this entry.
+ #
+-# The basic "xnuppc" entry includes no size information, and the
+-# emulator includes no reporting capability, so you'll be at the mercy
+-# of the TTY device (which reports incorrectly on my hardware.) The
+-# color-bold entries do not include size information.
+-
+-# The '+' entries are building blocks
+-xnuppc+basic|Darwin PowerPC Console basic capabilities,
+- am, bce, mir, xenl,
+- it#8,
+- bold=\E[1m, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
++otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
++ am,
++ cols#80, lines#34,
++ bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
++ rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
++# The 4112 with the ANSI compatibility enhancement
++tek4112|tek4114|tektronix 4110 series,
++ OTbs, am, db,
++ cols#80, lines#34,
++ cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P,
++ dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
++ ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
++ rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
++tek4112-nd|4112 not in dialog area,
++ OTns,
++ cuu1=^K, use=tek4112,
++tek4112-5|4112 in 5 line dialog area,
++ lines#5, use=tek4112,
++# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
++# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
++# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
++# previously \0410 and \0411 sequences...I don't *think* they were supposed
++# to be 4-digit octal -- esr)
++tek4113|tektronix 4113 color graphics with 5 line dialog area,
++ OTbs, am, da, eo,
++ cols#80, lines#5,
++ clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0,
++ flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
++ is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
++tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
++ lines#34,
++ is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
++# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
++# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
++# :vb: needs enough delay to let you see the background color being toggled.
++tek4113-nd|tektronix 4113 color graphics with no dialog area,
++ OTbs, am, eo,
++ cols#80, it#8, lines#34,
++ clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K,
++ cvvis=\ELZ\EKA0,
++ flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
++ home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @,
++ ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
++# This entry is from Tek. Inc. (Brian Biehl)
++# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
++otek4115|Tektronix 4115,
++ OTbs, am, da, db, eo,
++ cols#80, it#8, lines#34,
++ cbt=\E[Z, clear=\E[H\E[2J,
++ cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
++ cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
++ el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100,
++ il1=\E[L,
++ is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m,
++ kbs=^H, ri=\EM, rmam=\E[?7l,
++ rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
++ rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
++ smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
++ smul=\E[4m,
++tek4115|newer tektronix 4115 entry with more ANSI capabilities,
++ am, xon,
++ cols#80, lines#34,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
++ cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+- cuu=\E[%p1%dA, cuu1=\E[A, dsl=\E]2;\007, ed=\E[J, el=\E[K,
+- el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=\177,
+- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
+- rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m,
+- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
+- sc=\E7,
+- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
+-
+-xnuppc+c|Darwin PowerPC Console ANSI color support,
+- colors#8, ncv#32, pairs#64,
+- op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+-
+-xnuppc+b|Darwin PowerPC Console color-bold support,
+- ncv#32,
+- bold=\E[35m,
+- sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
+- use=xnuppc+basic,
+-
+-xnuppc+f|Darwin PowerPC Console fancy color support,
+- ncv#35,
+- sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;m,
+- smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
+-
+-xnuppc+f2|Darwin PowerPC Console alternate fancy color support,
+- ncv#35,
+- bold=\E[33m,
+- sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
+- smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
+-
+-# Building blocks for specific screen sizes
+-xnuppc+80x25|Darwin PowerPC Console 80x25 support (640x400 pixels),
+- cols#80, lines#25,
+-
+-xnuppc+80x30|Darwin PowerPC Console 80x30 support (640x480 pixels),
+- cols#80, lines#30,
+-
+-xnuppc+90x30|Darwin PowerPC Console 90x30 support (720x480 pixels),
+- cols#90, lines#30,
+-
+-xnuppc+100x37|Darwin PowerPC Console 100x37 support (800x600 pixels),
+- cols#100, lines#37,
+-
+-xnuppc+112x37|Darwin PowerPC Console 112x37 support (896x600 pixels),
+- cols#112, lines#37,
+-
+-xnuppc+128x40|Darwin PowerPC Console 128x40 support (1024x640 pixels),
+- cols#128, lines#40,
+-
+-xnuppc+128x48|Darwin PowerPC Console 128x48 support (1024x768 pixels),
+- cols#128, lines#48,
+-
+-xnuppc+144x48|Darwin PowerPC Console 144x48 support (1152x768 pixels),
+- cols#144, lines#48,
+-
+-xnuppc+160x64|Darwin PowerPC Console 160x64 support (1280x1024 pixels),
+- cols#160, lines#64,
+-
+-xnuppc+200x64|Darwin PowerPC Console 200x64 support (1600x1024 pixels),
+- cols#200, lines#64,
+-
+-xnuppc+200x75|Darwin PowerPC Console 200x75 support (1600x1200 pixels),
+- cols#200, lines#75,
+-
+-xnuppc+256x96|Darwin PowerPC Console 256x96 support (2048x1536 pixels),
+- cols#256, lines#96,
+-
+-# These are different combinations of the building blocks
+-
+-xnuppc-m|darwin-m|Darwin PowerPC Console (monochrome),
+- use=xnuppc+basic,
+-
+-xnuppc|darwin|Darwin PowerPC Console (color),
+- use=xnuppc+c, use=xnuppc+basic,
+-
+-xnuppc-m-b|darwin-m-b|Darwin PowerPC Console (monochrome w/color-bold),
+- use=xnuppc+b,
+-
+-xnuppc-b|darwin-b|Darwin PowerPC Console (color w/color-bold),
+- use=xnuppc+b, use=xnuppc+c,
+-
+-xnuppc-m-f|darwin-m-f|Darwin PowerPC Console (fancy monochrome),
+- use=xnuppc+f,
+-
+-xnuppc-f|darwin-f|Darwin PowerPC Console (fancy color),
+- use=xnuppc+f, use=xnuppc+c,
+-
+-xnuppc-m-f2|darwin-m-f2|Darwin PowerPC Console (alternate fancy monochrome),
+- use=xnuppc+f2,
+-
+-xnuppc-f2|darwin-f2|Darwin PowerPC Console (alternate fancy color),
+- use=xnuppc+f2, use=xnuppc+c,
+-
+-# Combinations for specific screen sizes
+-xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC Console (monochrome) 80x25,
+- use=xnuppc+80x25, use=xnuppc+basic,
+-
+-xnuppc-80x25|darwin-80x25|Darwin PowerPC Console (color) 80x25,
+- use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
+-
+-xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC Console (monochrome) 80x30,
+- use=xnuppc+80x30, use=xnuppc+basic,
+-
+-xnuppc-80x30|darwin-80x30|Darwin PowerPC Console (color) 80x30,
+- use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
++ cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
++ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
++ ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D,
++ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
++ rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
++ rmso=\E[m, rmul=\E[m,
++ sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
++ sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++ vpa=\E[%p1%{1}%+%dd,
++# The tek4125 emulates a vt100 incorrectly - the scrolling region
++# command is ignored. The following entry replaces <csr> with the needed
++# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
++# chokes on; and adds a lot of initialization for the tek dialog area.
++# Note that this entry uses all 34 lines and sets the cursor color to green.
++# Steve Jacobson 8/85
++# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
++# commented out, <smir>=\E1 because there's no <rmir> -- esr)
++tek4125|tektronix 4125,
++ lines#34,
++ csr@, dl1=\E[1M, il1=\E[1L,
++ is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
++ rc@, sc@, smkx=\E=, use=vt100,
+
+-xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC Console (monochrome) 90x30,
+- use=xnuppc+90x30, use=xnuppc+basic,
++# From: <jcoker@ucbic>
++# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
++# supplied another, less capable 4107 entry. So we'll use that for 4107 and
++# note that if jcoker wasn't confused you may be able to use this one.
++# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr)
++tek4207|Tektronix 4207 graphics terminal with memory,
++ am, bw, mir, msgr, ul, xenl,
++ cols#80, it#8, lines#32,
++ blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>,
++ cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J,
++ el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>,
++ il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5,
++ is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
++ kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H,
++ rev=\E[7m, ri=\E[T,
++ rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m,
++ rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m,
++ smul=\E[4m, tbc=\E[1g,
+
+-xnuppc-90x30|darwin-90x30|Darwin PowerPC Console (color) 90x30,
+- use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
++# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
++# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
++# Tab had been given as \E2I,that must be the tab-set capability -- esr)
++tek4404|tektronix 4404,
++ OTbs,
++ cols#80, it#8, lines#32,
++ blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
++ csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
++ rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
++ rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
++ smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
++ smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
++# Some unknown person wrote:
++# I added the is string - straight Unix has ESC ; in the login
++# string which sets a ct8500 into monitor mode (aka 4025 snoopy
++# mode). The is string here cleans up a few things (but not
++# everything).
++ct8500|tektronix ct8500,
++ am, bw, da, db,
++ cols#80, lines#25,
++ bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J,
++ cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER,
++ dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
++ il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s,
++ rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!,
+
+-xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC Console (monochrome) 100x37,
+- use=xnuppc+100x37, use=xnuppc+basic,
++# Tektronix 4205 terminal.
++#
++# am is not defined because the wrap around occurs not when the char.
++# is placed in the 80'th column, but when we are attempting to type
++# the 81'st character on the line. (esr: hmm, this is like the vt100
++# version of xenl, perhaps am + xenl would work!)
++#
++# Bold, dim, and standout are simulated by colors and thus not allowed
++# with colors. The tektronix color table is mapped into the RGB color
++# table by setf/setb. All colors are reset to factory specifications by oc.
++# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
++# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
++# interval then maps into pre-defined value.
++tek4205|tektronix 4205,
++ ccc, mir, msgr,
++ colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
++ clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
++ cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
++ dch1=\E[1P, dim=\E[=1;<6m, dl=\E[%p1%dM, dl1=\E[1M,
++ ech=\E%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
++ home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L,
++ ind=\ED,
++ initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
++ invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
++ kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
++ kf7=\ES,
++ oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1,
++ op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=,
++ rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m,
++ setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
++ setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
++ sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
++ smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
++ smul=\E[4m, tbc=\E[1g,
+
+-xnuppc-100x37|darwin-100x37|Darwin PowerPC Console (color) 100x37,
+- use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
++#### Teletype (tty)
++#
++# These are the hardcopy Teletypes from before AT&T bought the company,
++# clattering electromechanical dinosaurs in Bakelite cases that printed on
++# pulpy yellow roll paper. If you remember these you go back a ways.
++# Teletype-branded VDTs are listed in the AT&T section.
++#
++# The earliest UNIXes were designed to use these clunkers; nroff and a few
++# other programs still default to emitting codes for the Model 37.
++#
+
+-xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC Console (monochrome) 112x37,
+- use=xnuppc+112x37, use=xnuppc+basic,
++tty33|tty35|model 33 or 35 teletype,
++ hc, os, xon,
++ cols#72,
++ bel=^G, cr=^M, cud1=^J, ind=^J,
++tty37|model 37 teletype,
++ OTbs, hc, os, xon,
++ bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
++ ind=^J,
+
+-xnuppc-112x37|darwin-112x37|Darwin PowerPC Console (color) 112x37,
+- use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
++# There are known to be at least three flavors of the tty40, all seem more
++# like IBM half duplex forms fillers than ASCII terminals. They have lots of
++# awful braindamage, such as printing a visible newline indicator after each
++# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is
++# braindamaged but has hope and is described here. The 40-4 is a 3270
++# lookalike and beyond hope. The terminal has visible bell but I don't know
++# it - it's null here to prevent it from showing the BL character.
++# There is an \EG in <nl> because of a bug in old vi (if stty says you have
++# a "newline" style terminal (-crmode) vi figures all it needs is nl
++# to get crlf, even if <cr> is not ^M.)
++# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
++tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
++ OTbs, xon,
++ cols#80, lines#24,
++ clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
++ cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>,
++ ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1,
++ ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^],
++ kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4,
++ rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>,
++tty43|model 43 teletype,
++ OTbs, am, hc, os, xon,
++ cols#132,
++ bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
+
+-xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC Console (monochrome) 128x40,
+- use=xnuppc+128x40, use=xnuppc+basic,
++#### Tymshare
++#
+
+-xnuppc-128x40|darwin-128x40|Darwin PowerPC Console (color) 128x40,
+- use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
++# You can add <is2=\E<> to put this 40-column mode, though I can't
++# for the life of me think why anyone would want to.
++scanset|sc410|sc415|Tymshare Scan Set,
++ am, bw, msgr,
++ cols#80, lines#24,
++ acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H,
++ cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
++ cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED,
++ kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
++ mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
+
+-xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC Console (monochrome) 128x48,
+- use=xnuppc+128x48, use=xnuppc+basic,
++#### Volker-Craig (vc)
++#
++# If you saw a Byte Magazine cover with a terminal on it during the early
++# 1980s, it was probably one of these. Carl Helmers liked them because
++# they could crank 19.2 and were cheap (that is, he liked them until he tried
++# to program one...)
++#
+
+-xnuppc-128x48|darwin-128x48|Darwin PowerPC Console (color) 128x48,
+- use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
++# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
++# every other linefeed.
++vc303|vc103|vc203|volker-craig 303,
++ OTbs, OTns, am,
++ cols#80, lines#24,
++ bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
++ cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I,
++ kcuu1=^N, ll=\017$<1>W,
++vc303a|vc403a|volker-craig 303a,
++ clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
++ home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
++# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
++vc404|volker-craig 404,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
++ cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
++ ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J,
++ kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z,
++vc404-s|volker-craig 404 w/standout mode,
++ cud1=^J, rmso=^O, smso=^N, use=vc404,
++# From: <wolfgang@cs.sfu.ca>
++# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
++vc414|vc414h|Volker-Craig 414H in sane escape mode.,
++ OTbs, am,
++ cols#80, lines#24,
++ clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
++ cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
++ dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
++ ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
++ kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
++ kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
++ lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
++ rmso=\E^_, smso=\E^Y,
++vc415|volker-craig 415,
++ clear=^L, use=vc404,
+
+-xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC Console (monochrome) 144x48,
+- use=xnuppc+144x48, use=xnuppc+basic,
++######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
++#
+
+-xnuppc-144x48|darwin-144x48|Darwin PowerPC Console (color) 144x48,
+- use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
++#### IBM PC and clones
++#
+
+-xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC Console (monochrome) 160x64,
+- use=xnuppc+160x64, use=xnuppc+basic,
++# The pcplot IBM-PC terminal emulation program is really messed up. It is
++# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
++# doesn't support scrolling regions, ignores add line commands, and ignores
++# delete line commands. Consequently, the resulting behavior looks like a
++# crude adm3a-type terminal.
++# Steve Jacobson 8/85
++pcplot|pc-plot terminal emulation program,
++ xenl@,
++ csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
++# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
++# I've found that my KayPro II, running MDM730, continues to emulate an
++# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
++# system the following termcap entry works well:
++# I have noticed a couple of minor glitches, but nothing I can't work
++# around. (I added two capabilities from the BRL entry -- esr)
++kaypro|kaypro2|kaypro II,
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W,
++ el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K,
+
+-xnuppc-160x64|darwin-160x64|Darwin PowerPC Console (color) 160x64,
+- use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
++# From IBM, Thu May 5 19:35:27 1983
++# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr)
++ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS),
++ OTbs, am,
++ cols#80, lines#24,
++ bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\,
++ cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_,
+
+-xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC Console (monochrome) 200x64,
+- use=xnuppc+200x64, use=xnuppc+basic,
++ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
++ OTbs, am, bw, eo, hs, km, msgr, ul,
++ cols#80, it#8, lines#24,
++ acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
++ cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
++ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
++ cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
++ indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
++ kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241,
++ kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247,
++ kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
++ ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
++ rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
++ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t30;40%;m,
++ sgr0=\E[m, smso=\E[7m, smul=\E[4m,
+
+-xnuppc-200x64|darwin-200x64|Darwin PowerPC Console (color) 200x64,
+- use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
++#### Apple II
++#
++# Apple II firmware console first, then various 80-column cards and
++# terminal emulators. For two cents I'd toss all these in the UFO file
++# along with the 40-column apple entries.
++#
+
+-xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC Console (monochrome) 200x75,
+- use=xnuppc+200x75, use=xnuppc+basic,
++# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
++# 'it#8' tells UNIX that you have tabs every 8 columns. This is a
++# function of TIC, not the firmware.
++# The clear key on a IIgs will do something like clear-screen,
++# depending on what you're in.
++appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface,
++ OTbs, am, bw, eo, msgr,
++ cols#80, it#8, lines#24,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J,
++ kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N,
++ smso=^O,
++# Apple //e with 80-column card, entry from BRL
++# The modem interface is permitted to discard LF (maybe DC1), otherwise
++# passing characters to the 80-column firmware via COUT (PR#3 assumed).
++# Auto-wrap does not work right due to newline scrolling delay, which also
++# requires that you set "stty cr2".
++# Note: Cursor addressing is only available via the Pascal V1.1 entry,
++# not via the BASIC PR#3 hook. All this nonsense can be avoided only by
++# using a terminal emulation program instead of the built-in firmware.
++apple2e|Apple //e,
++ bw, msgr,
++ cols#80, lines#24,
++ bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
++ ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W,
++ is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K,
++ nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
++ smso=^O,
++# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
++# 4.20, with incoming and outgoing terminals both on 0, emulation On.
++apple2e-p|Apple //e via Pascal,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
++ kcud1=^J, use=apple2e,
++# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
++# Enable DC3/DC1 flow control with "stty ixon -ixany".
++apple-ae|ASCII Express,
++ OTbs, am, bw, msgr, nxon, xon,
++ cols#80, it#8, lines#24,
++ bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J,
++ kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
++ smso=^O,
++appleII|apple ii plus,
++ OTbs, am,
++ cols#80, it#8, lines#24,
++ clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6,
++ ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I,
++ is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N,
++ smso=^O,
++# Originally by Gary Ford 21NOV83
++# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
++apple-80|apple II with smarterm 80 col,
++ OTbs, am, bw,
++ cols#80, lines#24,
++ cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J,
++ cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
++ ed=\013$<10*/>, el=\035$<10/>, home=^Y,
++apple-soroc|apple emulating soroc 120,
++ am,
++ cols#80, lines#24,
++ bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
++ home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
++# From Peter Harrison, Computer Graphics Lab, San Francisco
++# ucbvax!ucsfmis!harrison .....uucp
++# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA
++# "These two work. If you don't have the inverse video chip for the
++# Apple with videx then remove the :so: and :se: fields."
++# (apple-videx: this used to be called DaleApple -- esr)
++apple-videx|Apple with videx videoterm 80 column board with inverse video,
++ OTbs, am, xenl,
++ cols#80, it#8, lines#24,
++ clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y,
++ rmso=^Z2, sgr0=^Z2, smso=^Z3,
++# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
++# Apple Cat ][ 212 modem, + more all
++# controlled by ASCII Express: Pro.
++# From Dave Shaver <isucs1!shaver>
++apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell,
++ OTbs, am, eo, xt,
++ cols#80, lines#24,
++ acsc=, clear=^L, cuf1=^\,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ flash=^W35^W06, home=^Y,
++ is2=^V4^W06\017\rVisible Bell Installed.\016\r\n,
++ rmso=^N, smso=^O,
++apple-uterm|Ultraterm for Apple micros,
++ OTbs, am, eo, xt,
++ cols#80, lines#24,
++ acsc=, clear=^L, cuf1=^\,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O,
++# from trwrba!bwong (Bradley W. Wong):
++#
++# This entry assumes that you are using an apple with the UCSD Pascal
++# language card. SYSTEM.MISCINFO is assumed to be the same as that
++# supplied with the standard apple except that screenwidth should be set
++# using SETUP to 80 columns. Note that the right arrow is not mapped in
++# this termcap entry. This is because that key, on the Apple, transmits
++# a ^U and would thus preempt the more useful "up" function of vi.
++#
++# HMH 2/23/81
++apple80p|80-column apple with Pascal card,
++ am, bw,
++ cols#80, lines#24,
++ clear=^Y^L, cuf1=^\\:,
++ cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
++ home=^Y, kcub1=^H,
++#
++# Apple II+ equipped with Videx 80 column card
++#
++# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
++# manually converted by D A Gwyn
++#
++# DO NOT use any terminal emulation with this data base, it works directly
++# with the Videx card. This has been tested with vi 1200 baud and works fine.
++#
++# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
++# 1 screen, while in R2 ^U doesn't.
++# For inverse alternate character set add:
++# <smacs>=^O:<rmacs>=^N:
++# (apple-v: added it#8 -- esr)
++apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
++ am, xenl,
++ cols#80, it#8, lines#24,
++ bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H,
++ cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
++ cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>,
++ ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
++ khome=^Y, rmso=^Z2, smso=^Z3,
++apple-videx3|vapple|Apple II with 80 col card,
++ OTbs, am,
++ cols#80, lines#24,
++ clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex,
++ home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
++ kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#,
++ kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
++#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
++aepro|Apple II+ running ASCII Express Pro--vt52,
++ OTbs,
++ cols#80, lines#24,
++ clear=\014$<300/>, cub1=\ED, cud1=\EB, cuf1=\EC,
++ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
++ el=\EK, home=\EH,
++# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
++apple-vm80|ap-vm80|apple with viewmax-80,
++ OTbs,
++ cols#80, lines#24,
++ clear=\014$<300/>, cuf1=^\\:,
++ cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
++ ed=\013$<300/>, el=^], home=\031$<200/>,
+
+-xnuppc-200x75|darwin-200x75|Darwin PowerPC Console (color) 200x75,
+- use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
++#### Apple Lisa & Macintosh
++#
+
+-xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC Console (monochrome) 256x96,
+- use=xnuppc+256x96, use=xnuppc+basic,
++# (lisa: changed <cvvis> to <cnorm> -- esr)
++lisa|apple lisa console display (black on white),
++ OTbs, am, eo, msgr,
++ cols#88, it#8, lines#32,
++ acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
++ cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
++ is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
++ kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
++ sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
++liswb|apple lisa console display (white on black),
++ is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
++ smso=\E[m, smul=\E[4m, use=lisa,
+
+-xnuppc-256x96|darwin-256x96|Darwin PowerPC Console (color) 256x96,
+- use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
++# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
++# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA>
++#
++# These entries assume that the 'Auto Wraparound' is enabled.
++# Xon-Xoff flow control should also be enabled.
++#
++# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
++# settings are in non-volatile memory and don't need to be reset upon login.
++# Also setting the number of columns glitches the screen annoyingly.
++# You can type "reset" to get them set.
++#
++lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
++ OTbs, OTpt, am, xenl, xon,
++ OTkn#4, cols#80, it#8, lines#24, vt#3,
++ bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
++ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
++ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
++ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
++ el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD,
++ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
++ kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
++ rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
++ rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
++ sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g,
++# Lisaterm in 132 column ("wide") mode.
++lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
++ cols#132,
++ kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm,
++# Although MacTerminal has insert/delete line, it is commented out here
++# since it is much faster and cleaner to use the "lock scrolling region"
++# method of inserting and deleting lines due to the MacTerminal implementation.
++# Also, the "Insert/delete ch" strings have an extra character appended to them
++# due to a bug in MacTerminal V1.1. Blink is disabled since it is not
++# supported by MacTerminal.
++mac|macintosh|Macintosh with MacTerminal,
++ xenl,
++ OTdN#30,
++ blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa,
++# Lisaterm in 132 column ("wide") mode.
++mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
++ cols#132, use=mac,
+
+ #### Radio Shack/Tandy
+ #
+@@ -17749,9 +18360,26 @@
+ # even as single processes under SunOS and the Macintosh OS.
+ #
+
+-# See
+-# http://www.minix3.org/manpages/man4/console.4.html
+-minix|minix console (v3),
++# See
++# http://www.minix3.org/manpages/html4/console.html
++minix|minix console (v3),
++ acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
++ kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~,
++ kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~,
++ kf14=\E[14;2~, kf15=\E[15;2~, kf16=\E[17;2~,
++ kf17=\E[18;2~, kf18=\E[19;2~, kf19=\E[20;2~, kf2=\E[12~,
++ kf20=\E[21;2~, kf21=\E[11;5~, kf22=\E[12;5~,
++ kf23=\E[13;5~, kf24=\E[14;5~, kf25=\E[15;5~,
++ kf26=\E[17;5~, kf27=\E[18;5~, kf28=\E[19;5~,
++ kf29=\E[20;5~, kf3=\E[13~, kf30=\E[21;5~, kf31=\E[11;6~,
++ kf32=\E[12;6~, kf33=\E[13;6~, kf34=\E[14;6~,
++ kf35=\E[15;6~, kf36=\E[17;6~, kf37=\E[18;6~,
++ kf38=\E[19;6~, kf39=\E[20;6~, kf4=\E[14~, kf40=\E[21;6~,
++ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
++ kich1=\E[@, knp=\E[U, kpp=\E[V, lf0@, lf1@, lf2@, lf3@, lf4@, lf5@,
++ use=minix-3.0,
++
++minix-3.0|minix console (v3.0),
+ use=ecma+color, use=minix-1.7,
+
+ # See
+@@ -17792,7 +18420,7 @@
+ am, use=minix-old,
+
+ pc-minix|minix console on an Intel box,
+- use=klone+acs, use=minix,
++ use=klone+acs, use=minix-3.0,
+
+ # According to the Coherent 2.3 manual, the PC console is similar
+ # to a z19. The differences seem to be (1) 25 lines, (2) no status
+@@ -17878,7 +18506,7 @@
+ xerox820|x820|Xerox 820,
+ am,
+ cols#80, lines#24,
+- bel=^G, clear=1^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
++ bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
+ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
+ home=^^, ind=^J,
+
+@@ -18195,6 +18823,7 @@
+ use=tws-generic,
+ dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
+ blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
++ sgr=\E[0%?%p1%t;2;4;5;7%;%?%p3%t;7%;%?%p2%t;2%;%?%p4%t;2;4%;%?%p5%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+ smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
+
+ #=========================================================#
+@@ -18274,7 +18903,7 @@
+
+ # This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
+ bq300|Bull vt320 ISO Latin 1 80 columns terminal,
+- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
++ am, eo, eslok, hs, km, mir, msgr, xenl, xon,
+ cols#80, it#8, lines#24, vt#3, wsl#80,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+@@ -18298,14 +18927,14 @@
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+ khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
+ krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
+- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
+- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
+- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
+- rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
++ nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
++ rmcup=\E[?7h, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
++ rmul=\E[24m, rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0,
++ sc=\E7,
+ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
+ sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
+ smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
++ smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~, use=ansi+pp,
+ bq300-rv|Bull vt320 reverse 80 columns,
+ flash=\E[?5l$<50>\E[?5h,
+ is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
+@@ -18383,12 +19012,12 @@
+ csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D,
+ cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
+ cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
+- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
++ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
+ dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
+ el=\233K, el1=\2331K, enacs=\E(B\E)0,
+ flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
+- ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED,
+- is1=\E[63;2"p\E[2h,
++ ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, il1=\233L,
++ ind=\ED, is1=\E[63;2"p\E[2h,
+ is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
+ is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
+ ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
+@@ -18401,11 +19030,12 @@
+ khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
+ krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
+ lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
+- rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
+- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
+- rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
++ rev=\2337m, ri=\EM, rmacs=\E(B, rmam=\233?7l,
++ rmcup=\233?7h, rmir=\2334l, rmkx=\233?1l\E>,
++ rmso=\23327m, rmul=\23324m, rs1=\E[!p, rs2=\E[?3l,
++ s0ds=\E(B, s1ds=\E(0, sc=\E7,
+ sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
+- sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
++ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
+ smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
+ smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
+ bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
+@@ -18927,7 +19557,7 @@
+ clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+ cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
+ dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
+- ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
++ ip=$<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+ kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW,
+ kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue, lf7=red,
+ lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq, smacs=\EF,
+@@ -19010,14 +19640,14 @@
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
+- dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
+- ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL,
+- ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
+- kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
+- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
+- kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
+- nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
+- rmso=\E[m, rmul=\E[m,
++ dl1=\E[M, dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l,
++ home=\E[H, ht=^I, hts=\EH, if=/usr/share/tabset/vt100,
++ il=\E[%p1%dL, il1=\E[L, ind=\ED, kbs=^H, kclr=\E[J,
++ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, ked=\E[J,
++ kf0=\E[~, kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW,
++ kf6=\EOP, kf7=\EOQ, kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help,
++ mc0=\E#7, nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM,
++ rmcup=\E[?7h, rmso=\E[m, rmul=\E[m,
+ rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
+ sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
+ tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
+@@ -19687,12 +20317,11 @@
+ cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
+ dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
+ il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+- kcuf1=\E[C, kcuu1=\E[A, kdch1=P$<\233>, kf1=P$<\217>,
+- kf2=Q$<\217>, kf3=R$<\217>, kf4=S$<\217>, kf5=~$<\23316>,
+- kf6=~$<\23317>, kf7=~$<\23318>, kf8=~$<\23319>,
+- kf9=~$<\23320>, kich1=@$<\233>, rc=\E8, rev=\E[7m, ri=\EM,
+- rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
+- smul=\E[4m, tbc=\E[3g,
++ kcuf1=\E[C, kcuu1=\E[A, kdch1=\233P, kf1=\217P, kf2=\217Q,
++ kf3=\217R, kf4=\217S, kf5=\23316~, kf6=\23317~,
++ kf7=\23318~, kf8=\23319~, kf9=\23320~, kich1=\233@, rc=\E8,
++ rev=\E[7m, ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
++ smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
+ cols#132, use=ti924,
+ ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
+@@ -19818,6 +20447,193 @@
+ apollo_color|apollo color display,
+ rmir@, smir@, use=vt132,
+
++#### AT&T consoles
++
++# This actually describes the generic SVr4 display driver for Intel boxes.
++# The <dim=\E[2m> isn't documented and therefore may not be reliable.
++# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
++att6386|at386|386at|AT&T WGS 6386 console,
++ am, bw, eo, xon,
++ cols#80, it#8, lines#25,
++ acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
++ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
++ clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
++ cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
++ dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
++ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
++ ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
++ indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
++ kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
++ kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
++ kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
++ knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
++ ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
++ sc=\E7,
++ sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
++ sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
++ tbc=\E[3g, vpa=\E[%i%p1%dd, use=klone+color,
++# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
++pc6300plus|AT&T 6300 plus,
++ OTbs, am, xon,
++ cols#80, lines#24,
++ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
++ clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
++ cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
++ dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
++ home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
++ invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
++ kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
++ kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
++ nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
++ smso=\E[7m, smul=\E[4m, tbc=\E[3g,
++
++# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
++#
++# I have a UNIX PC which I use as a terminal attached to my Linux PC.
++# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
++# is broken. All the special key sequences are broken, making it unusable
++# with Emacs. The problem stems from the following:
++#
++# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
++# keypad!), loadable fonts, and strange highlighting modes ("dithered"
++# half-intensity, "smeared" bold, and real strike-out, for example.) It also
++# uses resizable terminal windows, but the bundled terminal program always
++# uses an 80x24 window (and doesn't support seem to support a 132-column
++# mode.)
++#
++# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
++# library which was a superset of SVr3.5 curses (called tam, for "terminal
++# access method".) tam includes support for real, overlapping windows,
++# onscreen function key labels, and bitmap graphics. But since the primary
++# user interface on the UNIX PC was a GUI program (ua, for "user
++# assistant",) and remote administration was considered important for the
++# machine, tam also supported VT100-compatible terminals attached to the
++# serial port or used across the StarLan network. To simulate the extra keys
++# not present on a VT100, users could press ESC and a two-letter sequence,
++# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
++# however, were not the same as those sent by the actual Undo key. The
++# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
++# (If you're interested in adding some of the tam calls to ncurses, btw, I
++# have the full documentation and several programs which use tam. It also
++# used an extended terminfo format to describe key sequences, special
++# highlighting modes, etc.)
++#
++# KEYS: This means that ncurses would quite painful on the UNIX PC, since
++# there are two sequences for every key-modifier combination (local keyboard
++# sequence and remote "VT100" sequence.) But I doubt many people are trying
++# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
++# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
++# seem to have been built from the manual describing the VT100 sequences.
++# This means it doesn't work for a real live UNIX PC.
++#
++# FONTS: The UNIX PC also has a strange interpretation of "alternate
++# character set". Rather than the VT100 graphics you might expect, it allows
++# up to 8 custom fonts to be loaded at any given time. This means that
++# programs expecting VT100 graphics will usually be disappointed. For this
++# reason I have disabled the smacs/rmacs sequences, but they could easily be
++# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
++# manpage), should you wish to do so:
++#
++# SGR10 - Select font 0 - ESC [ 10 m or SO
++# SGR11 - Select font 1 - ESC [ 11 m or SI
++# SGR12 - Select font 2 - ESC [ 12 m
++# ... (etc.)
++# SGR17 - Select font 7 - ESC [ 17 m
++#
++# Graphics for line drawing are not reliably found at *any* character
++# location because the UNIX PC has dynamically reloadable fonts. I use font
++# 0 for regular text and font 1 for italics, but this is by no means
++# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
++#
++# MISC: The cursor visible/cursor invisible sequences were swapped in the
++# distributed terminfo.
++#
++# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
++# the UNIX PC terminfo entry. The modified version works great with Lynx,
++# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
++# attached by serial cable. In Emacs, even the Undo key works, and many
++# applications can now use the F1-F8 keys.
++#
++# esr's notes:
++# Terminfo entry for the AT&T Unix PC 7300
++# from escape(7) in Unix PC 7300 Manual.
++# Somewhat similar to a vt100-am (but different enough
++# to redo this from scratch.)
++#
++# /***************************************************************
++# *
++# * FONT LOADING PROGRAM FOR THE UNIX PC
++# *
++# * This routine loads a font defined in the file ALTFONT
++# * into font memory slot #1. Once the font has been loaded,
++# * it can be used as an alternative character set.
++# *
++# * The call to ioctl with the argument WIOCLFONT is the key
++# * to this routine. For more information, see window(7) in
++# * the PC 7300 documentation.
++# ***************************************************************/
++# #include <string.h> /* needed for strcpy call */
++# #include <sys/window.h> /* needed for ioctl call */
++# #define FNSIZE 60 /* font name size */
++# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */
++# /*
++# * The file /usr/lib/wfont/special.8.ft comes with the
++# * standard PC software. It defines a graphics character set
++# * similar to that of the Teletype 5425 terminal. To view
++# * this or other fonts in /usr/lib/wfont, use the command
++# * cfont <filename>. For further information on fonts see
++# * cfont(1) in the PC 7300 documentation.
++# */
++#
++# struct altfdata /* structure for alt font data */
++# {
++# short altf_slot; /* memory slot number */
++# char altf_name[FNSIZE]; /* font name (file name) */
++# };
++# ldfont()
++# {
++# int wd; /* window in which altfont will be */
++# struct altfdata altf;
++# altf.altf_slot=1;
++# strcpy(altf.altf_name,ALTFONT);
++# for (wd =1; wd < 12; wd++) {
++# ioctl(wd, WIOCLFONT,&altf);
++# }
++# }
++#
++# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
++# they're confirmed by the man page for the System V display---esr)
++#
++att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
++ am, xon,
++ cols#80, it#8, lines#24,
++ bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
++ clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
++ cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
++ cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
++ cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
++ ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
++ il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
++ kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
++ kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
++ kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
++ kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
++ kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
++ kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
++ ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
++ kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
++ kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
++ kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
++ kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
++ kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
++ ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
++ rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
++ smul=\E[4m,
++
+ #### Convergent Technology
+ #
+ # Burroughs bought Convergent shortly before it merged with Univac.
+@@ -19923,6 +20739,54 @@
+ masscomp2|masscomp large screen version 2,
+ cols#64, lines#21, use=masscomp,
+
++#### OSF Unix
++#
++
++# OSF/1 1.1 Snapshot 2
++pmcons|pmconsole|PMAX console,
++ am,
++ cols#128, lines#57,
++ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
++ ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
++ kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
++
++#### Other consoles
++# The following is a version of the ibm-pc entry distributed with PC/IX,
++# (Interactive Systems' System 3 for the Big Blue), modified by Richard
++# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
++# (the former is untrue, and the latter failed under UCB/man); standout and
++# underline modes have been added. Note: this entry describes the "native"
++# capabilities of the PC monochrome display, without ANY emulation; most
++# communications packages (but NOT PC/IX connect) do some kind of emulation.
++pcix|PC/IX console,
++ am, bw, eo,
++ cols#80, lines#24,
++ clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
++ home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
++ smul=\E[4m,
++
++# (ibmpcx: this entry used to be known as ibmx.
++# It formerly included the following extension capabilities:
++# :GC=b:GL=v:GR=t:RT=^J:\
++# :GH=\E[196g:GV=\E[179g:\
++# :GU=\E[193g:GD=\E[194g:\
++# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
++# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
++# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
++# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
++# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match
++# what was there before. -- esr)
++ibmpcx|xenix|ibmx|IBM PC xenix console display,
++ OTbs, am, msgr,
++ cols#80, lines#25,
++ clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
++ cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
++ ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
++ kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
++ kpp=\E[Z, use=klone+acs, use=klone+sgr8,
++
+ ######## OTHER OBSOLETE TYPES
+ #
+ # These terminals are *long* dead -- these entries are retained for
+@@ -20126,7 +20990,7 @@
+ cols#80, lines#24,
+ clear=^L, cub1=^H, cuf1=\EX,
+ cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
+- dch1=.1*\E'D, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
++ dch1=\E'D$<.1*>, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
+ il1=\E&I$<2*/>, ip=$<.1*/>, kcub1=\EW, kcud1=\EZ,
+ kcuf1=\EX, kcuu1=\EY, pad=\177, rmcup=\E"N, rmir=\E'J,
+ rmso=\E"I, rmul=\E"U, smcup=\E"N, smir=\E'I, smso=\E"I,
+@@ -20217,9 +21081,9 @@
+ sgr0=\EX, smacs=\EF, smso=\ET,
+ env230|envision230|envision 230 graphics terminal,
+ xenl@,
+- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+- sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
+- use=vt100,
++ enacs@, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rmacs@,
++ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
++ sgr0=\E[0m$<2>, smacs@, use=vt100,
+ # These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
+ # coupler attached, the whole rig fitting in a suitcase and more or less
+ # portable. Hot stuff for c.1977 :-) -- esr
+@@ -20274,7 +21138,7 @@
+ rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
+ rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
+ rs3=\EwG\Ee($<150>,
+- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
++ sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
+ sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
+ smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
+ smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
+@@ -20881,7 +21745,7 @@
+ # assigned in System V terminfo. There are some variant extension sets out
+ # there. We try to describe them here.
+ #
+-# XENIX extensions:
++#### XENIX extensions:
+ #
+ # The XENIX extensions include a set of function-key capabilities as follows:
+ #
+@@ -20946,7 +21810,7 @@
+ # When translating a termcap file, ncurses tic will do this automatically.
+ # The double forms characters don't fit the SVr4 terminfo model.
+ #
+-# AT&T Extensions:
++#### AT&T Extensions:
+ #
+ # The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+ # nonstandard capabilities. Its signature is the KM capability, used to name
+@@ -20957,7 +21821,7 @@
+ # FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
+ # cursor invisible), and CV=:ve: (make cursor normal).
+ #
+-# HP Extensions
++#### HP Extensions
+ #
+ # The HP library (as of mid-1995, their term.h file version 70.1) appears to
+ # have the System V capabilities up to SVr1 level. After that, it supports
+@@ -20966,7 +21830,7 @@
+ # label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the
+ # HP binary format incompatible with SVr4's.
+ #
+-# IBM Extensions
++#### IBM Extensions
+ #
+ # There is a set of nonstandard terminfos used by IBM's AIX operating system.
+ # The AIX terminfo library diverged from SVr1 terminfo, and replaces all
+@@ -20994,7 +21858,7 @@
+ # The box2 characters are the double-line versions of these forms graphics.
+ # The AIX binary terminfo format is incompatible with SVr4's.
+ #
+-# Iris console extensions:
++#### Iris console extensions:
+ #
+ # HS is half-intensity start; HE is half-intensity end
+ # CT is color terminal type (for Curses & rogue)
+@@ -21003,7 +21867,7 @@
+ #
+ # The ncurses tic utility recognizes HS as an alias for mh <dim>.
+ #
+-# TC Extensions:
++#### TC Extensions:
+ #
+ # There is a set of extended termcaps associated with something
+ # called the "Terminal Control" or TC package created by MainStream Systems,
+@@ -21011,11 +21875,123 @@
+ # CF for civis and CO for cvvis. Finally, they define a boolean :ct:
+ # that flags color terminals.
+ #
++######## NCURSES USER-DEFINABLE CAPABILITIES
++#
++# Extensions added after ncurses 5.0 generally use the "-x" option of tic and
++# infocmp to manipulate user-definable capabilities. Those that are intended
++# for use in either terminfo or termcap use 2-character names. Extended
++# function keys do not use 2-character names, and are available only with
++# terminfo.
++#
++# As of mid-2012, no other terminfo/termcap implementation than ncurses
++# supports this extension; termcap libraries can as noted above make limited
++# use of the feature.
++#
++# ncurses makes explicit checks for a few user-definable capabilities: AX, U8,
++# XM.
++#
++#### SCREEN Extensions:
++#
++# The screen program uses the termcap interface. It recognizes a few useful
++# nonstandard capabilities. Those are used in this file.
++#
++# AX (bool) Does understand ANSI set default fg/bg color (\E[39m /
++# \E[49m).
++# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
++# E0 (str) Switch charset 'G0' back to standard charset.
++# S0 (str) Switch charset 'G0' to the specified charset.
++# XT (bool) Terminal understands special xterm sequences (OSC, mouse
++# tracking).
++#
++# AX is relatively straightforward; it is interpreted by ncurses to say that
++# SGR 39/49 reset the terminal's foreground and background colors to their
++# "default".
++#
++# XT is harder, since screen's manpage does not give more details. For that,
++# we must read screen's source-code. When XT is set, screen assumes
++#
++# a) OSC 1 sets the title string, e.g., for the icon. Recent versions of
++# screen may also set the terminal's name, which is (for xterm) distinct
++# from the icon name.
++# b) OSC 20 sets the background pixmap. This is an rxvt feature.
++# c) OSC 39 and OSC 49 set the default foreground/background colors. Again
++# this is an rxvt feature.
++# d) certain mode settings enable the mouse: 9, 1000, 1001, 1002, 1003.
++# These are from xterm, although xterm accepts mouse codes that may not be
++# recognized by screen, e.g., 1005, 1006.
++# e) colors beyond 0..7 are implemented by xterm's aixterm-like 16-color
++# sequence. However, because screen uses only termcap, the values returned
++# by Af/Ab are not usable because they rely on expressions that termcap
++# does not support. Therefore, screen uses a hardcoded string to work
++# around the limitation.
++# f) all entries named "*xterm*" or "*rxvt*" have the bce flag set.
++#
++# The other ISO-2022 features are rarely used, but provided here to make
++# screen's termcap features available.
++#
++#### XTERM Extensions:
++#
++# Most of the xterm extensions are for function-keys. Since patch #94 (in
++# 1999), xterm has supported shift/control/alt/meta modifiers which produce
++# additional function-key strings. Some other developers copied the feature,
++# though they did not follow xterm's lead in patch #167 (in 2002), to make
++# these key definitions less ambiguous.
++#
++# A few terminals provide similar functionality (sending distinct keys when
++# a modifier is used), including rxvt.
++#
++# These are the extended keys defined in this file:
++#
++# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
++# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
++# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
++# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
++#
++# Here are the other xterm-related extensions which are used in this file:
++#
++# Cr is a string capability which resets the cursor color
++# Cs is a string capability which sets the cursor color to a given value.
++# The single string parameter is the color name/number, according to the
++# implementation.
++# Ms modifies the selection/clipboard. Its parameters are
++# p1 = the storage unit (clipboard, selection or cut buffer)
++# p2 = the base64-encoded clipboard content.
++# Se resets the cursor style to the terminal power-on default.
++# Ss is a string capability with one numeric parameter. It is used to set the
++# cursor style as described by the DECSCUSR function to a block or
++# underline.
++# TS is a string capability which acts like "tsl", but uses no parameter and
++# goes to the first column of the "status line".
++# XM is a string capability which overrides ncurses's built-in string which
++# enables/disables xterm mouse mode.
++# xm shows the format of the mouse responses. Parameters are (from zero):
++# p1 = y-ordinate
++# p2 = x-ordinate
++# p3 = button
++# p4 = state, e.g., pressed or released
++# p6 = y-ordinate starting region
++# p7 = x-ordinate starting region
++# p8 = y-ordinate ending region
++# p9 = x-ordinate ending region
++# Other extensions, used in xm:
++# %u = UTF-8
++#
++#### Miscellaneous extensions:
++#
++# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
++# This was implemented for the Hurd.
++# E3 clears the terminal's scrollback buffer. This was implemented in the
++# Linux 3.0 kernel as a security feature. It matches a feature which was
++# added in xterm patch #107.
++# U8 is a numeric capability which denotes a terminal emulator which does not
++# support VT100 SI/SO when processing UTF-8 encoding. Set this to a nonzero
++# value to enable it.
++#
+ ######## CHANGE HISTORY
+ #
+ # The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
+-# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
+-# project.
++# Releases 9 and 10 (up until the release of ncurses 4.2 in 1998) were
++# maintained by Eric S. Raymond as part of the ncurses project.
+ #
+ # This file contains all the capability information present in John Kunze's
+ # last version of the termcap master file, except as noted in the change
+@@ -21115,7 +22091,7 @@
+ # * Replaced HP entries up to hpsub with purpose-built ones.
+ # * Blank rmir/smir/rmdc/smdc capabilities removed.
+ # * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
+-# 9.4.8 (Fri Apr 7 09:36:34 EDT 199):
++# 9.4.8 (Fri Apr 7 09:36:34 EDT 1995):
+ # * Replaced the Ann Arbor entries with SCO's, the init strings are
+ # more efficient (but the entries otherwise identical).
+ # * Added dg211 from Shuford archive.
+@@ -22224,7 +23200,7 @@
+ # * add screen.rxvt -TD
+ #
+ # 2008-04-28
+-# * add screen+fkeys (prompted by Debian # 478094) -TD
++# * add screen+fkeys (prompted by Debian #478094) -TD
+ #
+ # 2008-06-28
+ # * add screen.mlterm -TD
+@@ -22280,7 +23256,7 @@
+ # 2009-12-12
+ # * updated nsterm* entries (Benjamin Sittler, Emanuele Giaquinta)
+ #
+-# 2009-12-12
++# 2009-12-19
+ # * add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler)
+ # * rename minix to minix-1.7, add minix entry for Minux3 -TD
+ #
+@@ -22354,6 +23330,247 @@
+ # * add xterm-utf8 as a demo of the U8 feature -TD
+ #
+ # 2011-02-20
+-# * add cons25-debian entry (Brian M Carlson, Debina #607662).
++# * add cons25-debian entry (Brian M Carlson, Debian #607662).
++#
++# 2011-06-11
++# * update minix entry to minix 3.2 (Thomas Cort).
++#
++# 2011-07-09
++# * fix inconsistent tabset path in pcmw (Todd C. Miller).
++# * remove a backslash which continued comment, obscuring altos3
++# definition with OpenBSD toolset (Nicholas Marriott).
++#
++# 2011-07-16
++# * add/use xterm+tmux chunk from xterm #271 -TD
++# * resync xterm-new entry from xterm #271 -TD
++# * add E3 extended capability to linux-basic (Miroslav Lichvar)
++# * add linux2.2, linux2.6, linux3.0 entries to give context for E3 -TD
++# * add SI/SO change to linux2.6 entry (Debian #515609) -TD
++#
++# 2011-07-21
++# * add kich1 to sun (Yuri Pankov)
++# * use bold rather than reverse for smso in sun-color (Yuri Pankov).
++#
++# 2011-08-06
++# * corrected k9 in dg460-ansi, add other features based on manuals -TD
++#
++# 2011-08-20
++# * minor cleanup of X-terminal emulator section -TD
++# * add terminator entry -TD
++# * add simpleterm entry -TD
++#
++# 2011-09-10
++# * add xterm+kbs fragment from xterm #272 -TD
++#
++# 2011-11-12
++# * add pccon entries for OpenBSD console (Alexei Malinin)
++#
++# 2011-12-17
++# * corrected old changelog comments -TD
++#
++# 2011-11-24
++# * add putty-sco -TD
++#
++# 2012-01-28
++# * add mach-gnu (Samuel Thibault)
++# * add mach-gnu-color, tweaks to mach-gnu -TD
++# * make sgr for sun-color agree with smso -TD
++# * make sgr for prism9 agree with other caps -TD
++# * make sgr for icl6404 agree with other caps -TD
++# * make sgr for ofcons agree with other caps -TD
++# * make sgr for att5410v1, att4415, att620 agree with other caps -TD
++# * make sgr for aaa-unk, aaa-rv agree with other caps -TD
++# * make sgr for avt-ns agree with other caps -TD
++#
++# 2012-02-11
++# * make sgr for xterm-pcolor agree with other caps -TD
++# * make sgr for att5425 agree with other caps -TD
++# * make sgr for att630 agree with other caps -TD
++# * make sgr for linux entries agree with other caps -TD
++# * make sgr for tvi9065 agree with other caps -TD
++# * make sgr for ncr260vt200an agree with other caps -TD
++# * make sgr for ncr160vt100pp agree with other caps -TD
++# * make sgr for ncr260vt300an agree with other caps -TD
++# * make sgr for aaa-60-dec-rv, aaa+dec agree with other caps -TD
++# * make sgr for cygwin, cygwinDBG agree with other caps -TD
++#
++# 2012-03-31
++# * correct order of use-clauses in st-256color -TD
++#
++# 2012-04-01
++# * revert 2011-07-16 change to "linux" alias, return to "linux2.2" -TD
++#
++# 2012-04-14
++# * document all of the user-defined capabilities in one place -TD
++# * add XT to some places to improve usefulness for other applications
++# than screen, which would like to pretend that xterm's title is
++# a status-line. -TD
++# * change use-clauses in ansi-mtabs, hp2626, and hp2622 based on review
++# of ordering and overrides -TD
++#
++# 2012-04-21
++# * add msgr to vt420, similar DEC vtXXX entries -TD
++# * add several missing vt420 capabilities from vt220 -TD
++# * factor out ansi+pp from several entries -TD
++# * change xterm+sl and xterm+sl-twm to include only the status-line
++# capabilities and not "use=xterm", making them more generally useful
++# as building-blocks -TD
++# * add dec+sl building block, as example -TD
++#
++# 2012-04-28
++# * fix some inconsistencies between vt320/vt420, e.g., cnorm/civis -TD
++# * add eslok flag to dec+sl -TD
++# * dec+sl applies to vt320 and up -TD
++# * drop wsl width from xterm+sl -TD
++# * reuse xterm+sl in putty and nsca-m -TD
++# * add ansi+tabs to vt520 -TD
++# * add ansi+enq to vt220-vt520 -TD
++#
++# 2012-05-05
++# * remove p6 (bold) from opus3n1+ for consistency -TD
++# * remove acs stuff from env230 per clues in Ingres termcap -TD
++# * modify env230 sgr/sgr0 to match other capabilities -TD
++# * modify smacs/rmacs in bq300-8 to match sgr/sgr0 -TD
++# * make sgr for dku7202 agree with other caps -TD
++# * make sgr for ibmpc agree with other caps -TD
++# * make sgr for tek4107 agree with other caps -TD
++# * make sgr for ndr9500 agree with other caps -TD
++# * make sgr for sco-ansi agree with other caps -TD
++# * make sgr for d410 agree with other caps -TD
++# * make sgr for d210 agree with other caps -TD
++# * make sgr for d470c, d470c-7b agree with other caps -TD
++#
++# 2012-05-12
++# * rewrite vt520 entry based on vt420 -TD
++# * corrected 'op' for bterm (report by Samuel Thibault) -TD
++#
++# 2012-06-02
++# * add kdch1 to wsvt25 entry from NetBSD CVS (reported by David Lord,
++# analysis by Martin Husemann).
++# * add cnorm/civis to wsvt25 entry from NetBSD CVS (report/analysis by
++# Onno van der Linden).
++# * add kdch1 aka "Remove" to vt220 and vt220-8 entries -TD
++# * add kdch1, etc., to qvt108 -TD
++# * add dl1/il1 to some entries based on dl/il values -TD
++# * add dl to simpleterm -TD
++#
++# 2012-06-10
++# * modify some older xterm entries to align with xterm source -TD
++# * separate "xterm-old" alias from "xterm-r6" -TD
++#
++# 2012-07-28
++# * add E3 to xterm-basic and putty -TD
++#
++# 2012-08-11
++# * add nsterm-256color, make this the default nsterm -TD
++# * remove bw from nsterm-bce, per testing with tack -TD
++#
++# 2012-10-12
++# * add vte-2012, gnome-2012, making these the defaults for vte/gnome
++# (patch by Christian Persch).
++#
++# 2012-11-02
++# * reviewed vte-2012, reverted most of the change since it was incorrect
++# based on testing with tack -TD
++# * un-cancel the initc in vte-256color, since this was implemented
++# starting with version 0.20 in 2009 -TD
++#
++# 2013-03-16
++# * correct typo in sgr string for sun-color,
++# add bold for consistency with sgr,
++# change smso for consistency with sgr -TD
++# * correct typo in sgr string for terminator -TD
++# * add blink to the attributes masked by ncv in linux-16color (report
++# by Benjamin Sittler)
++#
++# 2013-03-23
++# * change initialization for vt220, similar entries for consistency
++# with cursor-key strings (NetBSD #47674) -TD
++# * further improvements to linux-16color (Benjamin Sittler)
++#
++# 2013-05-11
++# * move nsterm-related entries out of "obsolete" section to more
++# plausible "ansi consoles" -TD
++# * additional cleanup of table-of-contents by reordering -TD
++#
++# 2013-06-07
++# * added note to clarify Terminal.app's non-emulation of the various
++# terminal types listed in the preferences dialog -TD
++#
++# 2013-11-02
++# * use TS extension to describe xterm's title-escapes -TD
++# * modify terminator and nsterm-s to use xterm+sl-twm building block -TD
++# * update hurd.ti, add xenl to reflect 2011-03-06 change in
++# http://git.savannah.gnu.org/cgit/hurd/hurd.git/log/console/display.c
++# (Debian #727119).
++# * simplify pfkey expression in ansi.sys -TD
++#
++# 2013-11-10
++# * split-out building blocks xterm+sm+1002 and xterm+sm+1003 -TD
++#
++# 2014-02-22
++# * updated notes for wsvt25 based on tack and vttest -TD
++# * add teken entry to show actual properties of FreeBSD's "xterm"
++# console -TD
++#
++# 2014-03-22
++# * add terminology entry -TD
++# * add mlterm3 entry, use that as "mlterm" -TD
++# * inherit mlterm-256color from mlterm -TD
++#
++# 2014-03-23
++# * fix typo in "mlterm" entry (report by Gabriele Balducci) -TD
++#
++# 2014-03-30
++# * cancel ccc in putty-256color and konsole-256color for consistency
++# with the cancelled initc capability (patch by Sven Zuhlsdorf).
++# * add xterm+256setaf building block for various terminals which only
++# get the 256-color feature half-implemented -TD
++# * updated "st" entry (leaving the 0.1.1 version as "simpleterm") to
++# 0.4.1 -TD
++#
++# 2014-05-03
++# * add vt520ansi (Mike Gran)
++#
++# 2014-05-24
++# * correct several entries which had termcap-style padding used in
++# terminfo: adm21, aj510, alto-h19, att605-pc, x820 -TD
++# * correct syntax for padding in some entries: dg211, h19 -TD
++# * correct ti924-8 which had confused padding versus octal escapes -TD
++# * correct padding in sbi entry -TD
++#
++# 2014-06-07
++# * update xterm-new to patch #305 -TD
++# + change screen's smso to use SGR 7 (ECMA-80 reverse) rather than SGR 3
++# (italic). This was a long-ago typo in screen 3.1.1 which was
++# overlooked until a few terminal emulators implemented the feature -TD
++#
++# 2014-06-09
++# > fix regression in screen terminfo entries (reports by Christian
++# Ebert, Gabriele Balducci) -TD
++# + revert the change to screen; see notes for why this did not work -TD
++# + cancel sitm/ritm for entries which extend "screen", to work around
++# screen's hardcoded behavior for SGR 3 -TD
++#
++# 2014-06-14
++# + modify sgr for screen.xterm-new to support dim capability -TD
++# + add dim capability to nsterm+7 -TD
++# + cancel dim capability for iterm -TD
++# + add dim, invis capabilities to vte-2012 -TD
++# + add sitm/ritm to konsole-base and mlterm3 -TD
++#
++# 2014-10-06
++# + add xterm-1005 and xterm-1006 entries, with suggested extension
++# capability "xm" -TD
++#
++# 2014-10-07
++# + update test-report for mrxvt -TD
++#
++# 2014-10-11
++# + add xterm-x10mouse, xterm-x11mouse, etc. -TD
++#
++# 2014-10-18
++# + reviewed terminology 0.6.1, add function key definitions. None of
++# the vt100-compatibility issues were improved -TD
+ #
+ ######## SHANTIH! SHANTIH! SHANTIH!
+Index: mk-0th.awk
+Prereq: 1.18
+--- ncurses-5.9/mk-0th.awk 2010-01-09 21:45:41.000000000 +0000
++++ ncurses-5.9-20141206/mk-0th.awk 2012-06-30 20:56:11.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: mk-0th.awk,v 1.18 2010/01/09 21:45:41 tom Exp $
++# $Id: mk-0th.awk,v 1.22 2012/06/30 20:56:11 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2005,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -34,14 +34,62 @@
+ # Variables:
+ # libname (library name, e.g., "ncurses", "panel", "forms", "menus")
+ # subsets (is used here to decide if wide-character code is used)
++# ticlib (library name for libtic, e.g., "tic")
++# termlib (library name for libtinfo, e.g., "tinfo")
+ #
++function make_lintlib(name,sources) {
++ print ""
++ print "clean ::"
++ printf "\trm -f llib-l%s.*\n", name
++ print ""
++ print "realclean ::"
++ printf "\trm -f llib-l%s\n", name
++ print ""
++ printf "llib-l%s : %s\n", name, sources
++ printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) %s >$@\n", sources
++ print ""
++ print "lintlib ::"
++ printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)\n", name
++ print ""
++ print "lint ::"
++ printf "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) %s $(LINT_LIBS)\n", sources
++}
++
++# A blank in "subsets" indicates a split-off of the library into a separate
++# file, e.g., for libtic or libtinfo. They are all logical parts of the same
++# library.
++function which_library() {
++ if ( ( which == "ticlib" ) && ( subsets ~ /ticlib / ) ) {
++ return ticlib;
++ } else if ( ( which == "termlib" || which == "ext_tinfo" ) && ( subsets ~ /[[:space:]]base/ ) ) {
++ return termlib;
++ } else {
++ return libname;
++ }
++}
++
++function show_list(name, len, list) {
++ if ( len > 0 ) {
++ printf "\n%s_SRC =", toupper(name);
++ for (n = 0; n < len; ++n)
++ printf " \\\n\t%s", list[n];
++ print "";
++ make_lintlib(name, sprintf("$(%s_SRC)", toupper(name)));
++ }
++}
++
+ BEGIN {
+ which = libname;
+ using = 0;
+ found = 0;
++ count_ticlib = 0;
++ count_termlib = 0;
++ count_library = 0;
+ }
+ /^@/ {
+ which = $0;
++ sub(/^@[[:blank:]]+/, "", which);
++ sub(/[[:blank:]]+$/, "", which);
+ }
+ !/^[@#]/ {
+ if (using == 0)
+@@ -50,6 +98,10 @@
+ print "# generated by mk-0th.awk"
+ printf "# libname: %s\n", libname
+ printf "# subsets: %s\n", subsets
++ if ( libname ~ /ncurses/ ) {
++ printf "# ticlib: %s\n", ticlib
++ printf "# termlib: %s\n", termlib
++ }
+ print ""
+ print ".SUFFIXES: .c .cc .h .i .ii"
+ print ".c.i :"
+@@ -80,9 +132,18 @@
+ found = 2
+ }
+ if ( libname == "c++" || libname == "c++w" ) {
+- printf " \\\n\t%s/%s.cc", $3, $1
++ srcname = sprintf("%s/%s.cc", $3, $1);
++ printf " \\\n\t%s", srcname;
+ } else if ( widechar == 1 || $3 != "$(wide)" ) {
+- printf " \\\n\t%s/%s.c", $3, $1
++ srcname = sprintf("%s/%s.c", $3, $1);
++ printf " \\\n\t%s", srcname;
++ if ( which_library() == libname ) {
++ list_library[count_library++] = srcname;
++ } else if ( which_library() == ticlib ) {
++ list_ticlib[count_ticlib++] = srcname;
++ } else {
++ list_termlib[count_termlib++] = srcname;
++ }
+ }
+ }
+ }
+@@ -91,22 +152,11 @@
+ if ( found == 1 )
+ {
+ print ""
+- printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname
+- print "# it in the lintlib rule. We'll only remove in the cleanest setup."
+- print "clean ::"
+- printf "\trm -f llib-l%s.*\n", libname
+- print ""
+- print "realclean ::"
+- printf "\trm -f llib-l%s\n", libname
+- print ""
+- printf "llib-l%s : $(C_SRC)\n", libname
+- printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
+- print ""
+- print "lintlib :"
+- printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname
+- print ""
+- print "lint :"
+- print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
++ printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname;
++ print "# it in the lintlib rule. We'll only remove in the cleanest setup.";
++ show_list(libname, count_library, list_library);
++ show_list(ticlib, count_ticlib, list_ticlib);
++ show_list(termlib, count_termlib, list_termlib);
+ }
+ else
+ {
+@@ -115,3 +165,4 @@
+ print "\t@echo no action needed"
+ }
+ }
++# vile:ts=4 sw=4
+Index: mk-1st.awk
+Prereq: 1.85
+--- ncurses-5.9/mk-1st.awk 2010-08-07 20:42:30.000000000 +0000
++++ ncurses-5.9-20141206/mk-1st.awk 2013-09-07 17:54:05.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: mk-1st.awk,v 1.85 2010/08/07 20:42:30 Gabriele.Balducci Exp $
++# $Id: mk-1st.awk,v 1.96 2013/09/07 17:54:05 Alexey.Pavlov Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -34,10 +34,12 @@
+ # name (library name, e.g., "ncurses", "panel", "forms", "menus")
+ # traces ("all" or "DEBUG", to control whether tracing is compiled in)
+ # MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
++# CXX_MODEL (e.g., "DEBUG", uppercase)
+ # model (directory into which we compile, e.g., "obj")
+ # prefix (e.g., "lib", for Unix-style libraries)
+ # suffix (e.g., "_g.a", for debug libraries)
+ # subset ("none", "base", "base+ext_funcs" or "termlib", etc.)
++# driver ("yes" or "no", depends on --enable-term-driver)
+ # ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
+ # ShlibVerInfix ("yes" or "no", determines location of version #)
+ # SymLink ("ln -s", etc)
+@@ -69,7 +71,7 @@
+ }
+ # see imp_name
+ function imp_name_of(a_name) {
+- if (ShlibVerInfix == "cygdll") {
++ if (ShlibVerInfix == "cygdll" || ShlibVerInfix == "msysdll" || ShlibVerInfix == "mingw") {
+ result = sprintf("%s%s%s.a", prefix, a_name, suffix);
+ } else {
+ result = "";
+@@ -80,6 +82,10 @@
+ function abi_name_of(a_name) {
+ if (ShlibVerInfix == "cygdll") {
+ result = sprintf("%s%s$(ABI_VERSION)%s", "cyg", a_name, suffix);
++ } else if (ShlibVerInfix == "msysdll") {
++ result = sprintf("%s%s$(ABI_VERSION)%s", "msys-", a_name, suffix);
++ } else if (ShlibVerInfix == "mingw") {
++ result = sprintf("%s%s$(ABI_VERSION)%s", prefix, a_name, suffix);
+ } else if (ShlibVerInfix == "yes") {
+ result = sprintf("%s%s.$(ABI_VERSION)%s", prefix, a_name, suffix);
+ } else {
+@@ -91,6 +97,10 @@
+ function rel_name_of(a_name) {
+ if (ShlibVerInfix == "cygdll") {
+ result = sprintf("%s%s$(REL_VERSION)%s", "cyg", a_name, suffix);
++ } else if (ShlibVerInfix == "msysdll") {
++ result = sprintf("%s%s$(ABI_VERSION)%s", "msys-", a_name, suffix);
++ } else if (ShlibVerInfix == "mingw") {
++ result = sprintf("%s%s$(REL_VERSION)%s", prefix, a_name, suffix);
+ } else if (ShlibVerInfix == "yes") {
+ result = sprintf("%s%s.$(REL_VERSION)%s", prefix, a_name, suffix);
+ } else {
+@@ -107,7 +117,7 @@
+ } else {
+ if ( ShlibVer == "rel" ) {
+ result = rel_name_of(a_name);
+- } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
++ } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw" ) {
+ result = abi_name_of(a_name);
+ } else {
+ result = lib_name_of(a_name);
+@@ -124,23 +134,38 @@
+ }
+ }
+ function rmlink(directory, dst) {
+- printf "\t-rm -f %s/%s\n", directory, dst
++ if ( dst != "" ) {
++ printf "\t-rm -f %s/%s\n", directory, dst
++ }
+ }
+ function removelinks(directory) {
+- rmlink(directory, end_name);
++ nlinks = 0;
++ links[nlinks++] = end_name;
+ if ( DoLinks == "reverse" ) {
+ if ( ShlibVer == "rel" ) {
+- rmlink(directory, abi_name);
+- rmlink(directory, rel_name);
++ links[nlinks++] = abi_name;
++ links[nlinks++] = rel_name;
+ } else if ( ShlibVer == "abi" ) {
+- rmlink(directory, abi_name);
++ links[nlinks++] = abi_name;
+ }
+ } else {
+ if ( ShlibVer == "rel" ) {
+- rmlink(directory, abi_name);
+- rmlink(directory, lib_name);
++ links[nlinks++] = abi_name;
++ links[nlinks++] = lib_name;
+ } else if ( ShlibVer == "abi" ) {
+- rmlink(directory, lib_name);
++ links[nlinks++] = lib_name;
++ }
++ }
++ for (j = 0; j < nlinks; ++j) {
++ found = 0;
++ for (k = 0; k < j; ++k ) {
++ if ( links[j] == links[k] ) {
++ found = 1;
++ break;
++ }
++ }
++ if ( !found ) {
++ rmlink(directory, links[j]);
+ }
+ }
+ }
+@@ -148,7 +173,7 @@
+ printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(%s) $(LDFLAGS)\n", objs, shlib_list
+ }
+ function sharedlinks(directory) {
+- if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) {
++ if ( ShlibVer != "auto" && ShlibVer != "cygdll" && ShlibVer != "msysdll" && ShlibVer != "mingw" ) {
+ printf "\tcd %s && (", directory
+ if ( DoLinks == "reverse" ) {
+ if ( ShlibVer == "rel" ) {
+@@ -181,6 +206,11 @@
+ dst_libs = sprintf("%s/%s", directory, end_name);
+ printf "%s : \\\n", dst_libs
+ printf "\t\t%s \\\n", directory
++ if (subset == "ticlib" && driver == "yes" ) {
++ base = name;
++ sub(/^tic/, "ncurses", base); # workaround for "w"
++ printf "\t\t%s/%s \\\n", directory, end_name_of(base);
++ }
+ if (subset ~ /^base/ || subset == "ticlib" ) {
+ save_suffix = suffix
+ sub(/^[^.]\./,".",suffix)
+@@ -223,8 +253,9 @@
+ printf "\t%s %s %s\n", program, src_name, dst_name
+ }
+ BEGIN {
+- found = 0
+- using = 0
++ TOOL_PREFIX = "";
++ found = 0;
++ using = 0;
+ }
+ /^@/ {
+ using = 0
+@@ -233,15 +264,26 @@
+ } else if (index(subset,$2) > 0) {
+ if (using == 0) {
+ if (found == 0) {
++ if ( name ~ /^.*\+\+.*/ ) {
++ if ( CXX_MODEL == "NORMAL" && MODEL == "SHARED" ) {
++ print ""
++ printf "# overriding model from %s to match CXX_MODEL\n", MODEL;
++ MODEL = "NORMAL";
++ suffix = ".a";
++ DoLinks = "no";
++ }
++ }
+ print ""
+ printf "# generated by mk-1st.awk (subset=%s)\n", subset
+ printf "# name: %s\n", name
+ printf "# traces: %s\n", traces
+ printf "# MODEL: %s\n", MODEL
++ printf "# CXX_MODEL: %s\n", CXX_MODEL
+ printf "# model: %s\n", model
+ printf "# prefix: %s\n", prefix
+ printf "# suffix: %s\n", suffix
+ printf "# subset: %s\n", subset
++ printf "# driver: %s\n", driver
+ printf "# ShlibVer: %s\n", ShlibVer
+ printf "# ShlibVerInfix: %s\n", ShlibVerInfix
+ printf "# SymLink: %s\n", SymLink
+@@ -285,12 +327,23 @@
+ if ( found == 0 )
+ {
+ printf "%s_OBJS =", OBJS
+- if ( $2 == "lib" )
+- found = 1
+- else
+- found = 2
++ if ( $2 == "lib" ) {
++ found = 1;
++ } else if ( $2 == "c++" ) {
++ TOOL_PREFIX = "CXX_";
++ found = 1;
++ } else {
++ found = 2;
++ }
++ if ( $2 == "c++" ) {
++ CC_NAME="CXX"
++ CC_FLAG="CXXFLAGS"
++ } else {
++ CC_NAME="CC"
++ CC_FLAG="CFLAGS"
++ }
+ }
+- printf " \\\n\t../%s/%s$o", model, $1
++ printf " \\\n\t../%s/%s$o", model, $1;
+ }
+ }
+ END {
+@@ -316,7 +369,7 @@
+ print "install \\"
+ print "install.libs \\"
+
+- if ( ShlibVer == "cygdll" ) {
++ if ( ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw") {
+
+ dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)";
+ printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs
+@@ -337,7 +390,7 @@
+
+ if ( overwrite == "yes" && name == "ncurses" )
+ {
+- if ( ShlibVer == "cygdll" ) {
++ if ( ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw") {
+ ovr_name = sprintf("libcurses%s.a", suffix)
+ printf "\t@echo linking %s to %s\n", imp_name, ovr_name
+ printf "\tcd $(DESTDIR)$(libdir) && ("
+@@ -358,7 +411,7 @@
+ print "uninstall \\"
+ print "uninstall.libs \\"
+ printf "uninstall.%s ::\n", name
+- if ( ShlibVer == "cygdll" ) {
++ if ( ShlibVer == "cygdll" || ShlibVer == "msysdll" || ShlibVer == "mingw") {
+
+ printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name
+ printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name
+@@ -371,11 +424,7 @@
+ removelinks("$(DESTDIR)$(libdir)")
+ if ( overwrite == "yes" && name == "ncurses" )
+ {
+- if ( ShlibVer == "cygdll" ) {
+- ovr_name = sprintf("libcurses%s.a", suffix)
+- } else {
+- ovr_name = sprintf("libcurses%s", suffix)
+- }
++ ovr_name = sprintf("libcurses%s", suffix)
+ printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name
+ }
+ }
+@@ -388,20 +437,19 @@
+ }
+ else if ( MODEL == "LIBTOOL" )
+ {
+- if ( $2 == "c++" ) {
+- compile="CXX"
+- } else {
+- compile="CC"
+- }
+ end_name = lib_name;
+ printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
+ if ( is_ticlib() ) {
+- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS, libtool_version
++ which_list = "TICS_LIST";
+ } else if ( is_termlib() ) {
+- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS, libtool_version
++ which_list = "TINFO_LIST";
+ } else {
+- printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) %s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS, libtool_version
++ which_list = "SHLIB_LIST";
+ }
++ printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) $(%s) \\\n", CC_NAME, CC_FLAG;
++ printf "\t\t-o %s $(%s_OBJS:$o=.lo) \\\n", lib_name, OBJS;
++ printf "\t\t-rpath $(DESTDIR)$(libdir) \\\n";
++ printf "\t\t%s $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(%s) $(LDFLAGS)\n", libtool_version, which_list;
+ print ""
+ print "install \\"
+ print "install.libs \\"
+@@ -419,7 +467,7 @@
+ {
+ end_name = lib_name;
+ printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
+- printf "\t$(AR) $(ARFLAGS) $@ $?\n"
++ printf "\t$(%sAR) $(%sARFLAGS) $@ $?\n", TOOL_PREFIX, TOOL_PREFIX;
+ printf "\t$(RANLIB) $@\n"
+ if ( host == "vxworks" )
+ {
+Index: mk-hdr.awk
+Prereq: 1.3
+--- ncurses-5.9/mk-hdr.awk 2010-05-15 20:10:42.000000000 +0000
++++ ncurses-5.9-20141206/mk-hdr.awk 2013-08-03 23:09:42.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: mk-hdr.awk,v 1.3 2010/05/15 20:10:42 tom Exp $
++# $Id: mk-hdr.awk,v 1.4 2013/08/03 23:09:42 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2007,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2007-2010,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -73,12 +73,12 @@
+ END {
+ if ( count > 0 )
+ {
+- print "${DESTDIR}${includedir} :"
++ print "${INCLUDEDIR} :"
+ print " mkdir -p $@"
+ print ""
+ print "install \\"
+ print "install.libs \\"
+- print "install.includes :: ${AUTO_SRC} ${DESTDIR}${includedir} \\"
++ print "install.includes :: ${AUTO_SRC} ${INCLUDEDIR} \\"
+
+ for (i = 0; i < count - 1; ++i) {
+ printf " %s \\\n", data[i]
+@@ -86,9 +86,9 @@
+ printf " %s\n", data[count - 1]
+
+ for (i = 0; i < count; ++i) {
+- printf " @ (cd ${DESTDIR}${includedir} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${DESTDIR}${includedir} ${srcdir} %s\n", basename(data[i]), data[i]
++ printf " @ (cd ${INCLUDEDIR} && rm -f %s) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} %s\n", basename(data[i]), data[i]
+ if (data[i] == "curses.h" && compat == "yes") {
+- printf " @ (cd ${DESTDIR}${includedir} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
++ printf " @ (cd ${INCLUDEDIR} && rm -f ncurses.h && ${LN_S} %s ncurses.h)\n", data[i]
+ }
+ }
+ print ""
+@@ -97,9 +97,9 @@
+ print "uninstall.includes ::"
+
+ for (i = 0; i < count; ++i) {
+- printf " -@ (cd ${DESTDIR}${includedir} && rm -f %s)\n", basename(data[i])
++ printf " -@ (cd ${INCLUDEDIR} && rm -f %s)\n", basename(data[i])
+ if (data[i] == "curses.h" && compat == "yes") {
+- printf " -@ (cd ${DESTDIR}${includedir} && rm -f ncurses.h)\n"
++ printf " -@ (cd ${INCLUDEDIR} && rm -f ncurses.h)\n"
+ }
+ }
+ }
+Index: ncurses/Makefile.in
+Prereq: 1.130
+--- ncurses-5.9/ncurses/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/Makefile.in 2014-11-15 13:54:00.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.130 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.144 2014/11/15 13:54:00 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -64,9 +64,16 @@
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++datarootdir = @datarootdir@
+ datadir = @datadir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@ @EXPORT_SYMS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -84,6 +91,7 @@
+ AWK = @AWK@
+ LD = @LD@
+ LN_S = @LN_S@
++NM = @NM@
+
+ CTAGS = @CTAGS@
+ ETAGS = @ETAGS@
+@@ -93,13 +101,13 @@
+ CFLAGS = @CFLAGS@
+
+ INCDIR = $(srcdir)/../include
+-CPPFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@
++CPPFLAGS = -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+-BUILD_CPPFLAGS = -I../include -DUSE_BUILD_CC @BUILD_CPPFLAGS@
++BUILD_CPPFLAGS = -DHAVE_CONFIG_H -DUSE_BUILD_CC -I../ncurses -I$(srcdir) -I../include -I$(INCDIR) @BUILD_CPPFLAGS@
+ BUILD_CC = @BUILD_CC@
+-BUILD_CCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I$(INCDIR) $(BUILD_CPPFLAGS) @BUILD_CFLAGS@
++BUILD_CCFLAGS = @BUILD_CFLAGS@
+ BUILD_LDFLAGS = @BUILD_LDFLAGS@
+ BUILD_LIBS = @BUILD_LIBS@
+
+@@ -107,7 +115,7 @@
+ # is compiled into the build, or are test-programs that are not installed.
+
+ BUILD_EXEEXT = @BUILD_EXEEXT@
+-x = @PROG_EXT@
++x = @EXEEXT@
+
+ CFLAGS_LIBTOOL = $(CCFLAGS)
+ CFLAGS_NORMAL = $(CCFLAGS)
+@@ -125,6 +133,8 @@
+ TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@
+ TICS_LIST = $(SHLIB_DIRS) @TICS_LIST@
+
++RPATH_LIST = @RPATH_LIST@
++VERSIONED_SYMS = @VERSIONED_SYMS@
+ MK_SHARED_LIB = @MK_SHARED_LIB@
+
+ NCURSES_MAJOR = @NCURSES_MAJOR@
+@@ -134,7 +144,7 @@
+
+ RANLIB = @LIB_PREP@
+
+-LIBRARIES = @LIBS_TO_MAKE@
++LIBRARIES = @Libs_To_Make@
+
+ LINT = @LINT@
+ LINT_OPTS = @LINT_OPTS@
+@@ -219,12 +229,12 @@
+ make_keys$(BUILD_EXEEXT) : \
+ $(tinfo)/make_keys.c \
+ names.c
+- $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
++ $(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+
+ make_hash$(BUILD_EXEEXT) : \
+ $(tinfo)/make_hash.c \
+ ../include/hashsize.h
+- $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
++ $(BUILD_CC) -o $@ $(BUILD_CPPFLAGS) $(BUILD_CCFLAGS) $(tinfo)/make_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS)
+
+ ./expanded.c : $(srcdir)/curses.priv.h $(serial)/MKexpanded.sh
+ sh -e $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
+@@ -254,6 +264,9 @@
+ @MAKE_UPPER_TAGS@TAGS:
+ @MAKE_UPPER_TAGS@ $(ETAGS) *.[ch] */*.[ch]
+
++ncurses.map : $(LIBRARIES)
++ $(NM) -p $(LIBRARIES) >$@
++
+ mostlyclean ::
+ -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
+ -rm -f $(TEST_PROGS)
+@@ -262,7 +275,7 @@
+ -rm -f $(AUTO_SRC)
+ -rm -f make_keys$(BUILD_EXEEXT)
+ -rm -f make_hash$(BUILD_EXEEXT)
+- -rm -rf .libs
++ -rm -rf .libs *.dSYM *.map
+
+ distclean :: clean
+ -rm -f Makefile
+@@ -282,21 +295,21 @@
+ sh -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
+
+ captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
+- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
+
+ hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
+- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
+
+ hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
+- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
+
+ lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
+ ../@DFT_OBJ_SUBDIR@/dump_entry$o
+- @ECHO_LINK@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
++ @ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
+
+ link_test$x : ./link_test.c $(TEST_DEPS) \
+ ../@DFT_OBJ_SUBDIR@/link_test$o
+- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
++ @ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
+
+ ../@DFT_OBJ_SUBDIR@/dump_entry$o:
+ cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry$o
+Index: ncurses/base/MKkeyname.awk
+Prereq: 1.45
+--- ncurses-5.9/ncurses/base/MKkeyname.awk 2010-12-19 01:36:14.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/MKkeyname.awk 2013-08-24 17:37:22.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: MKkeyname.awk,v 1.45 2010/12/19 01:36:14 tom Exp $
++# $Id: MKkeyname.awk,v 1.48 2013/08/24 17:37:22 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1999-2012,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -65,6 +65,7 @@
+ print ""
+ print "#define SIZEOF_TABLE 256"
+ print "#define MyTable _nc_globals.keyname_table"
++ print "#define MyInit _nc_globals.init_keyname"
+ print ""
+ print "NCURSES_EXPORT(NCURSES_CONST char *)"
+ print "safe_keyname (SCREEN *sp, int c)"
+@@ -96,21 +97,36 @@
+ print " if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {"
+ print " if (MyTable == 0)"
+ print " MyTable = typeCalloc(char *, SIZEOF_TABLE);"
++ print ""
+ print " if (MyTable != 0) {"
++ print " int m_prefix = (sp == 0 || sp->_use_meta);"
++ print ""
++ print " /* if sense of meta() changed, discard cached data */"
++ print " if (MyInit != (m_prefix + 1)) {"
++ print " MyInit = m_prefix + 1;"
++ print " for (i = 0; i < SIZEOF_TABLE; ++i) {"
++ print " if (MyTable[i]) {"
++ print " FreeAndNull(MyTable[i]);"
++ print " }"
++ print " }"
++ print " }"
++ print ""
++ print " /* create and cache result as needed */"
+ print " if (MyTable[c] == 0) {"
+ print " int cc = c;"
+ print " p = name;"
+- print " if (cc >= 128 && (sp == 0 || sp->_use_meta)) {"
+- print " strcpy(p, \"M-\");"
++ print "#define P_LIMIT (sizeof(name) - (size_t) (p - name))"
++ print " if (cc >= 128 && m_prefix) {"
++ print " _nc_STRCPY(p, \"M-\", P_LIMIT);"
+ print " p += 2;"
+ print " cc -= 128;"
+ print " }"
+ print " if (cc < 32)"
+- print " sprintf(p, \"^%c\", cc + '@');"
++ print " _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) \"^%c\", cc + '@');"
+ print " else if (cc == 127)"
+- print " strcpy(p, \"^?\");"
++ print " _nc_STRCPY(p, \"^?\", P_LIMIT);"
+ print " else"
+- print " sprintf(p, \"%c\", cc);"
++ print " _nc_SPRINTF(p, _nc_SLIMIT(P_LIMIT) \"%c\", cc);"
+ print " MyTable[c] = strdup(name);"
+ print " }"
+ print " result = MyTable[c];"
+Index: ncurses/base/MKlib_gen.sh
+Prereq: 1.43
+--- ncurses-5.9/ncurses/base/MKlib_gen.sh 2011-01-22 19:47:29.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/MKlib_gen.sh 2014-12-06 18:56:25.000000000 +0000
+@@ -2,10 +2,10 @@
+ #
+ # MKlib_gen.sh -- generate sources from curses.h macro definitions
+ #
+-# ($Id: MKlib_gen.sh,v 1.43 2011/01/22 19:47:29 tom Exp $)
++# ($Id: MKlib_gen.sh,v 1.47 2014/12/06 18:56:25 tom Exp $)
+ #
+ ##############################################################################
+-# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -410,10 +410,45 @@
+ print "#undef vwprintw"
+ }
+ /^DECLARATIONS/ {start = 1; next;}
+- {if (start) print \$0;}
++ {
++ if (start) {
++ if ( "$USE" == "generated" ) {
++ print \$0;
++ } else if ( \$0 ~ /^[{}]?\$/ ) {
++ print \$0;
++ } else if ( \$0 ~ /;/ ) {
++ print \$0;
++ } else {
++ calls[start] = \$0;
++ print \$0;
++ start++;
++ }
++ }
++ }
+ END {
+ if ( "$USE" != "generated" ) {
+- print "int main(void) { return 0; }"
++ print "int main(void)"
++ print "{"
++ for (n = 1; n < start; ++n) {
++ value = calls[n];
++ if ( value !~ /P_POUNDC/ ) {
++ gsub(/[[:blank:]]+/," ",value);
++ sub(/^[[:alnum:]_]+ /,"",value);
++ sub(/^\* /,"",value);
++ gsub(/[[:alnum:]_]+ \* /,"",value);
++ gsub(/ (const) /," ",value);
++ gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value);
++ gsub(/ void /,"",value);
++ sub(/^/,"call_",value);
++ gsub(/ (a[[:digit:]]|z) /, " 0 ", value);
++ gsub(/ int[[:blank:]]*[(][^)]+[)][(][^)]+[)]/, "0", value);
++ printf "\t%s;\n", value;
++ } else {
++ print value;
++ }
++ }
++ print " return 0;"
++ print "}"
+ }
+ }
+ EOF1
+@@ -422,6 +457,8 @@
+ #include <ncurses_cfg.h>
+ #undef NCURSES_NOMACROS
+ #include <curses.h>
++#include <term.h>
++#include <unctrl.h>
+
+ DECLARATIONS
+
+@@ -437,11 +474,22 @@
+ -e 's/gen_$//' \
+ -e 's/ / /g' >>$TMP
+
++cat >$ED1 <<EOF
++s/ / /g
++s/^ //
++s/ $//
++s/P_NCURSES_BOOL/NCURSES_BOOL/g
++EOF
++
++# A patch discussed here:
++# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
++# introduces spurious #line markers. Work around that by ignoring the system's
++# attempt to define "bool" and using our own symbol here.
++sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2
++cat $ED2 >$TMP
++
+ $preprocessor $TMP 2>/dev/null \
+-| sed \
+- -e 's/ / /g' \
+- -e 's/^ //' \
+- -e 's/_Bool/NCURSES_BOOL/g' \
++| sed -f $ED1 \
+ | $AWK -f $AW2 \
+ | sed -f $ED3 \
+ | sed \
+Index: ncurses/base/MKunctrl.awk
+Prereq: 1.26
+--- ncurses-5.9/ncurses/base/MKunctrl.awk 2009-07-04 22:05:15.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/MKunctrl.awk 2012-06-09 20:29:33.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: MKunctrl.awk,v 1.26 2009/07/04 22:05:15 Clemens.Ladisch Exp $
++# $Id: MKunctrl.awk,v 1.27 2012/06/09 20:29:33 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -140,7 +140,7 @@
+ } else {
+ stringname = "unctrl"
+ }
+- print "\tint check = ChCharOf(ch);"
++ print "\tint check = (int) ChCharOf(ch);"
+ print "\tconst char *result;"
+ print ""
+ print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {"
+Index: ncurses/base/define_key.c
+Prereq: 1.20
+--- ncurses-5.9/ncurses/base/define_key.c 2009-11-28 22:53:17.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/define_key.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: define_key.c,v 1.20 2009/11/28 22:53:17 tom Exp $")
++MODULE_ID("$Id: define_key.c,v 1.21 2014/03/08 20:32:59 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode)
+@@ -47,7 +47,7 @@
+ unsigned ukey = (unsigned) keycode;
+
+ #ifdef USE_TERM_DRIVER
+-#define CallHasKey(keycode) CallDriver_1(SP_PARM, kyExist, keycode)
++#define CallHasKey(keycode) CallDriver_1(SP_PARM, td_kyExist, keycode)
+ #else
+ #define CallHasKey(keycode) NCURSES_SP_NAME(has_key)(NCURSES_SP_ARGx keycode)
+ #endif
+Index: ncurses/base/keybound.c
+Prereq: 1.10
+--- ncurses-5.9/ncurses/base/keybound.c 2009-10-24 22:15:47.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/keybound.c 2011-10-22 16:47:05.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2006,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: keybound.c,v 1.10 2009/10/24 22:15:47 tom Exp $")
++MODULE_ID("$Id: keybound.c,v 1.11 2011/10/22 16:47:05 tom Exp $")
+
+ /*
+ * Returns the count'th string definition which is associated with the
+@@ -46,7 +46,10 @@
+
+ T((T_CALLED("keybound(%p, %d,%d)"), (void *) SP_PARM, code, count));
+ if (SP_PARM != 0 && code >= 0) {
+- result = _nc_expand_try(SP_PARM->_keytry, (unsigned) code, &count, 0);
++ result = _nc_expand_try(SP_PARM->_keytry,
++ (unsigned) code,
++ &count,
++ (size_t) 0);
+ }
+ returnPtr(result);
+ }
+Index: ncurses/base/keyok.c
+Prereq: 1.10
+--- ncurses-5.9/ncurses/base/keyok.c 2009-10-24 22:15:47.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/keyok.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: keyok.c,v 1.10 2009/10/24 22:15:47 tom Exp $")
++MODULE_ID("$Id: keyok.c,v 1.14 2014/03/08 20:32:59 tom Exp $")
+
+ /*
+ * Enable (or disable) ncurses' interpretation of a keycode by adding (or
+@@ -50,37 +50,47 @@
+ {
+ int code = ERR;
+
+- T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag));
++ if (HasTerminal(SP_PARM)) {
++ T((T_CALLED("keyok(%p, %d,%d)"), (void *) SP_PARM, c, flag));
+ #ifdef USE_TERM_DRIVER
+- code = CallDriver_2(sp, kyOk, c, flag);
++ code = CallDriver_2(sp, td_kyOk, c, flag);
+ #else
+- T((T_CALLED("keyok(%d,%d)"), c, flag));
+- if (c >= 0) {
+- int count = 0;
+- char *s;
+- unsigned ch = (unsigned) c;
+-
+- if (flag) {
+- while ((s = _nc_expand_try(SP_PARM->_key_ok, ch, &count, 0)) != 0
+- && _nc_remove_key(&(SP_PARM->_key_ok), ch)) {
+- code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch);
+- free(s);
+- count = 0;
+- if (code != OK)
+- break;
+- }
+- } else {
+- while ((s = _nc_expand_try(SP_PARM->_keytry, ch, &count, 0)) != 0
+- && _nc_remove_key(&(SP_PARM->_keytry), ch)) {
+- code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch);
+- free(s);
+- count = 0;
+- if (code != OK)
+- break;
++ T((T_CALLED("keyok(%d,%d)"), c, flag));
++ if (c >= 0) {
++ int count = 0;
++ char *s;
++ unsigned ch = (unsigned) c;
++
++ if (flag) {
++ while ((s = _nc_expand_try(SP_PARM->_key_ok,
++ ch, &count, (size_t) 0)) != 0) {
++ if (_nc_remove_key(&(SP_PARM->_key_ok), ch)) {
++ code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch);
++ free(s);
++ count = 0;
++ if (code != OK)
++ break;
++ } else {
++ free(s);
++ }
++ }
++ } else {
++ while ((s = _nc_expand_try(SP_PARM->_keytry,
++ ch, &count, (size_t) 0)) != 0) {
++ if (_nc_remove_key(&(SP_PARM->_keytry), ch)) {
++ code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch);
++ free(s);
++ count = 0;
++ if (code != OK)
++ break;
++ } else {
++ free(s);
++ }
++ }
+ }
+ }
+- }
+ #endif
++ }
+ returnCode(code);
+ }
+
+Index: ncurses/base/lib_addch.c
+Prereq: 1.124
+--- ncurses-5.9/ncurses/base/lib_addch.c 2010-04-24 22:41:05.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_addch.c 2014-08-16 20:41:04.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_addch.c,v 1.124 2010/04/24 22:41:05 tom Exp $")
++MODULE_ID("$Id: lib_addch.c,v 1.129 2014/08/16 20:41:04 tom Exp $")
+
+ static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
+
+@@ -209,7 +209,8 @@
+ buffer[WINDOW_EXT(win, addch_used)] = '\0';
+ if ((len = (int) mbrtowc(&result,
+ buffer,
+- WINDOW_EXT(win, addch_used), &state)) > 0) {
++ (size_t) WINDOW_EXT(win, addch_used),
++ &state)) > 0) {
+ attr_t attrs = AttrOf(CHDEREF(ch));
+ if_EXT_COLORS(int pair = GetPair(CHDEREF(ch)));
+ SetChar(CHDEREF(ch), result, attrs);
+@@ -411,10 +412,12 @@
+ #endif
+ const char *s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx t);
+ int tabsize = 8;
++
+ /*
+ * If we are using the alternate character set, forget about locale.
+ * Otherwise, if unctrl() returns a single-character or the locale
+- * claims the code is printable, treat it that way.
++ * claims the code is printable (and not also a control character),
++ * treat it that way.
+ */
+ if ((AttrOf(ch) & A_ALTCHARSET)
+ || (
+@@ -424,14 +427,15 @@
+ s[1] == 0
+ )
+ || (
+- isprint(t)
++ (isprint((int)t) && !iscntrl((int)t))
+ #if USE_WIDEC_SUPPORT
+ || ((sp == 0 || !sp->_legacy_coding) &&
+ (WINDOW_EXT(win, addch_used)
+ || !_nc_is_charable(CharOf(ch))))
+ #endif
+- ))
++ )) {
+ return waddch_literal(win, ch);
++ }
+
+ /*
+ * Handle carriage control and other codes that are not printable, or are
+@@ -497,7 +501,7 @@
+ default:
+ while (*s) {
+ NCURSES_CH_T sch;
+- SetChar(sch, *s++, AttrOf(ch));
++ SetChar(sch, UChar(*s++), AttrOf(ch));
+ if_EXT_COLORS(SetPair(sch, GetPair(ch)));
+ if (waddch_literal(win, sch) == ERR)
+ return ERR;
+Index: ncurses/base/lib_addstr.c
+Prereq: 1.51
+--- ncurses-5.9/ncurses/base/lib_addstr.c 2010-12-19 01:22:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_addstr.c 2011-05-28 23:02:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -44,7 +44,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_addstr.c,v 1.51 2010/12/19 01:22:58 tom Exp $")
++MODULE_ID("$Id: lib_addstr.c,v 1.52 2011/05/28 23:02:09 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ waddnstr(WINDOW *win, const char *astr, int n)
+@@ -119,8 +119,10 @@
+ _nc_wchstrlen(const cchar_t *s)
+ {
+ int result = 0;
+- while (CharOf(s[result]) != L'\0') {
+- result++;
++ if (s != 0) {
++ while (CharOf(s[result]) != L'\0') {
++ result++;
++ }
+ }
+ return result;
+ }
+Index: ncurses/base/lib_beep.c
+Prereq: 1.15
+--- ncurses-5.9/ncurses/base/lib_beep.c 2009-10-24 22:02:14.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_beep.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -46,7 +46,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_beep.c,v 1.15 2009/10/24 22:02:14 tom Exp $")
++MODULE_ID("$Id: lib_beep.c,v 1.17 2014/03/08 20:32:59 tom Exp $")
+
+ /*
+ * beep()
+@@ -65,18 +65,15 @@
+
+ #ifdef USE_TERM_DRIVER
+ if (SP_PARM != 0)
+- res = CallDriver_1(SP_PARM, doBeepOrFlash, TRUE);
++ res = CallDriver_1(SP_PARM, td_doBeepOrFlash, TRUE);
+ #else
+ /* FIXME: should make sure that we are not in altchar mode */
+ if (cur_term == 0) {
+ res = ERR;
+ } else if (bell) {
+- TPUTS_TRACE("bell");
+- res = putp(bell);
+- _nc_flush();
++ res = NCURSES_PUTP2_FLUSH("bell", bell);
+ } else if (flash_screen) {
+- TPUTS_TRACE("flash_screen");
+- res = putp(flash_screen);
++ res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen);
+ _nc_flush();
+ }
+ #endif
+Index: ncurses/base/lib_bkgd.c
+Prereq: 1.43
+--- ncurses-5.9/ncurses/base/lib_bkgd.c 2011-01-22 19:47:37.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_bkgd.c 2014-09-04 09:36:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_bkgd.c,v 1.43 2011/01/22 19:47:37 tom Exp $")
++MODULE_ID("$Id: lib_bkgd.c,v 1.49 2014/09/04 09:36:20 tom Exp $")
+
+ /*
+ * Set the window's background information.
+@@ -85,6 +85,7 @@
+ cchar_t wch;
+ int tmp;
+
++ memset(&wch, 0, sizeof(wch));
+ (void) wgetbkgrnd(win, &wch);
+ tmp = _nc_to_char((wint_t) CharOf(wch));
+
+@@ -118,16 +119,18 @@
+ {
+ int code = ERR;
+ int x, y;
+- NCURSES_CH_T new_bkgd = CHDEREF(ch);
+
+ T((T_CALLED("wbkgd(%p,%s)"), (void *) win, _tracech_t(ch)));
+
+ if (win) {
++ NCURSES_CH_T new_bkgd = CHDEREF(ch);
+ NCURSES_CH_T old_bkgrnd;
+- wgetbkgrnd(win, &old_bkgrnd);
++
++ memset(&old_bkgrnd, 0, sizeof(old_bkgrnd));
++ (void) wgetbkgrnd(win, &old_bkgrnd);
+
+ (void) wbkgrndset(win, CHREF(new_bkgd));
+- (void) wattrset(win, AttrOf(win->_nc_bkgd));
++ (void) wattrset(win, (int) AttrOf(win->_nc_bkgd));
+
+ for (y = 0; y <= win->_maxy; y++) {
+ for (x = 0; x <= win->_maxx; x++) {
+Index: ncurses/base/lib_chgat.c
+Prereq: 1.9
+--- ncurses-5.9/ncurses/base/lib_chgat.c 2010-03-31 23:38:02.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_chgat.c 2014-02-01 22:13:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,14 +42,22 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_chgat.c,v 1.9 2010/03/31 23:38:02 tom Exp $")
++MODULE_ID("$Id: lib_chgat.c,v 1.10 2014/02/01 22:13:31 tom Exp $")
+
+ NCURSES_EXPORT(int)
+-wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
++wchgat(WINDOW *win,
++ int n,
++ attr_t attr,
++ NCURSES_PAIRS_T color,
++ const void *opts GCC_UNUSED)
+ {
+ int i;
+
+- T((T_CALLED("wchgat(%p,%d,%s,%d)"), (void *) win, n, _traceattr(attr), color));
++ T((T_CALLED("wchgat(%p,%d,%s,%d)"),
++ (void *) win,
++ n,
++ _traceattr(attr),
++ (int) color));
+
+ if (win) {
+ struct ldat *line = &(win->_line[win->_cury]);
+Index: ncurses/base/lib_color.c
+Prereq: 1.98
+--- ncurses-5.9/ncurses/base/lib_color.c 2010-04-24 22:57:53.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_color.c 2014-03-08 20:04:44.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -45,7 +45,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_color.c,v 1.98 2010/04/24 22:57:53 tom Exp $")
++MODULE_ID("$Id: lib_color.c,v 1.110 2014/03/08 20:04:44 tom Exp $")
+
+ #ifdef USE_TERM_DRIVER
+ #define CanChange InfoOf(SP_PARM).canchange
+@@ -188,7 +188,7 @@
+ set_background_color(NCURSES_SP_DCLx int bg, NCURSES_SP_OUTC outc)
+ {
+ #ifdef USE_TERM_DRIVER
+- CallDriver_3(SP_PARM, color, FALSE, bg, outc);
++ CallDriver_3(SP_PARM, td_color, FALSE, bg, outc);
+ #else
+ if (set_a_background) {
+ TPUTS_TRACE("set_a_background");
+@@ -208,7 +208,7 @@
+ set_foreground_color(NCURSES_SP_DCLx int fg, NCURSES_SP_OUTC outc)
+ {
+ #ifdef USE_TERM_DRIVER
+- CallDriver_3(SP_PARM, color, TRUE, fg, outc);
++ CallDriver_3(SP_PARM, td_color, TRUE, fg, outc);
+ #else
+ if (set_a_foreground) {
+ TPUTS_TRACE("set_a_foreground");
+@@ -258,14 +258,13 @@
+ reset_color_pair(NCURSES_SP_DCL0)
+ {
+ #ifdef USE_TERM_DRIVER
+- return CallDriver(SP_PARM, rescol);
++ return CallDriver(SP_PARM, td_rescol);
+ #else
+ bool result = FALSE;
+
+ (void) SP_PARM;
+ if (orig_pair != 0) {
+- TPUTS_TRACE("orig_pair");
+- putp(orig_pair);
++ (void) NCURSES_PUTP2("orig_pair", orig_pair);
+ result = TRUE;
+ }
+ return result;
+@@ -289,11 +288,10 @@
+ result = TRUE;
+
+ #ifdef USE_TERM_DRIVER
+- result = CallDriver(SP_PARM, rescolors);
++ result = CallDriver(SP_PARM, td_rescolors);
+ #else
+ if (orig_colors != 0) {
+- TPUTS_TRACE("orig_colors");
+- putp(orig_colors);
++ NCURSES_PUTP2("orig_colors", orig_colors);
+ result = TRUE;
+ }
+ #endif
+@@ -331,6 +329,13 @@
+ default_bg(NCURSES_SP_ARG),
+ NCURSES_SP_NAME(_nc_outch));
+ }
++#if !NCURSES_EXT_COLORS
++ /*
++ * Without ext-colors, we cannot represent more than 256 color pairs.
++ */
++ if (maxpairs > 256)
++ maxpairs = 256;
++#endif
+
+ if (maxpairs > 0 && maxcolors > 0) {
+ SP_PARM->_pair_limit = maxpairs;
+@@ -383,10 +388,10 @@
+
+ /* This function was originally written by Daniel Weaver <danw@znyx.com> */
+ static void
+-rgb2hls(short r, short g, short b, short *h, short *l, short *s)
++rgb2hls(int r, int g, int b, NCURSES_COLOR_T *h, NCURSES_COLOR_T *l, NCURSES_COLOR_T *s)
+ /* convert RGB to HLS system */
+ {
+- short min, max, t;
++ int min, max, t;
+
+ if ((min = g < r ? g : r) > b)
+ min = b;
+@@ -394,7 +399,7 @@
+ max = b;
+
+ /* calculate lightness */
+- *l = (short) ((min + max) / 20);
++ *l = (NCURSES_COLOR_T) ((min + max) / 20);
+
+ if (min == max) { /* black, white and all shades of gray */
+ *h = 0;
+@@ -404,19 +409,19 @@
+
+ /* calculate saturation */
+ if (*l < 50)
+- *s = (short) (((max - min) * 100) / (max + min));
++ *s = (NCURSES_COLOR_T) (((max - min) * 100) / (max + min));
+ else
+- *s = (short) (((max - min) * 100) / (2000 - max - min));
++ *s = (NCURSES_COLOR_T) (((max - min) * 100) / (2000 - max - min));
+
+ /* calculate hue */
+ if (r == max)
+- t = (short) (120 + ((g - b) * 60) / (max - min));
++ t = (NCURSES_COLOR_T) (120 + ((g - b) * 60) / (max - min));
+ else if (g == max)
+- t = (short) (240 + ((b - r) * 60) / (max - min));
++ t = (NCURSES_COLOR_T) (240 + ((b - r) * 60) / (max - min));
+ else
+- t = (short) (360 + ((r - g) * 60) / (max - min));
++ t = (NCURSES_COLOR_T) (360 + ((r - g) * 60) / (max - min));
+
+- *h = t % 360;
++ *h = (NCURSES_COLOR_T) (t % 360);
+ }
+
+ /*
+@@ -424,13 +429,20 @@
+ * values.
+ */
+ NCURSES_EXPORT(int)
+-NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b)
++NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx
++ NCURSES_PAIRS_T pair,
++ NCURSES_COLOR_T f,
++ NCURSES_COLOR_T b)
+ {
+ colorpair_t result;
+ colorpair_t previous;
+ int maxcolors;
+
+- T((T_CALLED("init_pair(%p,%d,%d,%d)"), (void *) SP_PARM, pair, f, b));
++ T((T_CALLED("init_pair(%p,%d,%d,%d)"),
++ (void *) SP_PARM,
++ (int) pair,
++ (int) f,
++ (int) b));
+
+ if (!ValidPair(pair))
+ returnCode(ERR);
+@@ -439,7 +451,7 @@
+
+ previous = SP_PARM->_color_pairs[pair];
+ #if NCURSES_EXT_FUNCS
+- if (SP_PARM->_default_color) {
++ if (SP_PARM->_default_color || SP_PARM->_assumed_color) {
+ bool isDefault = FALSE;
+ bool wasDefault = FALSE;
+ int default_pairs = SP_PARM->_default_pairs;
+@@ -498,8 +510,9 @@
+ {
+ if ((f < 0) || !OkColorHi(f)
+ || (b < 0) || !OkColorHi(b)
+- || (pair < 1))
++ || (pair < 1)) {
+ returnCode(ERR);
++ }
+ }
+
+ /*
+@@ -534,22 +547,26 @@
+ SET_SCREEN_PAIR(SP_PARM, (chtype) (~0)); /* force attribute update */
+
+ #ifdef USE_TERM_DRIVER
+- CallDriver_3(SP_PARM, initpair, pair, f, b);
++ CallDriver_3(SP_PARM, td_initpair, pair, f, b);
+ #else
+ if (initialize_pair && InPalette(f) && InPalette(b)) {
+ const color_t *tp = DefaultPalette;
+
+ TR(TRACE_ATTRS,
+ ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)",
+- pair,
+- tp[f].red, tp[f].green, tp[f].blue,
+- tp[b].red, tp[b].green, tp[b].blue));
+-
+- TPUTS_TRACE("initialize_pair");
+- putp(TPARM_7(initialize_pair,
+- pair,
+- tp[f].red, tp[f].green, tp[f].blue,
+- tp[b].red, tp[b].green, tp[b].blue));
++ (int) pair,
++ (int) tp[f].red, (int) tp[f].green, (int) tp[f].blue,
++ (int) tp[b].red, (int) tp[b].green, (int) tp[b].blue));
++
++ NCURSES_PUTP2("initialize_pair",
++ TPARM_7(initialize_pair,
++ pair,
++ (int) tp[f].red,
++ (int) tp[f].green,
++ (int) tp[f].blue,
++ (int) tp[b].red,
++ (int) tp[b].green,
++ (int) tp[b].blue));
+ }
+ #endif
+
+@@ -558,7 +575,7 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-init_pair(short pair, short f, short b)
++init_pair(NCURSES_COLOR_T pair, NCURSES_COLOR_T f, NCURSES_COLOR_T b)
+ {
+ return NCURSES_SP_NAME(init_pair) (CURRENT_SCREEN, pair, f, b);
+ }
+@@ -568,7 +585,10 @@
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(init_color) (NCURSES_SP_DCLx
+- short color, short r, short g, short b)
++ NCURSES_COLOR_T color,
++ NCURSES_COLOR_T r,
++ NCURSES_COLOR_T g,
++ NCURSES_COLOR_T b)
+ {
+ int result = ERR;
+ int maxcolors;
+@@ -605,10 +625,10 @@
+ }
+
+ #ifdef USE_TERM_DRIVER
+- CallDriver_4(SP_PARM, initcolor, color, r, g, b);
++ CallDriver_4(SP_PARM, td_initcolor, color, r, g, b);
+ #else
+- TPUTS_TRACE("initialize_color");
+- putp(TPARM_4(initialize_color, color, r, g, b));
++ NCURSES_PUTP2("initialize_color",
++ TPARM_4(initialize_color, color, r, g, b));
+ #endif
+ SP_PARM->_color_defs = max(color + 1, SP_PARM->_color_defs);
+
+@@ -619,7 +639,10 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-init_color(short color, short r, short g, short b)
++init_color(NCURSES_COLOR_T color,
++ NCURSES_COLOR_T r,
++ NCURSES_COLOR_T g,
++ NCURSES_COLOR_T b)
+ {
+ return NCURSES_SP_NAME(init_color) (CURRENT_SCREEN, color, r, g, b);
+ }
+@@ -628,8 +651,15 @@
+ NCURSES_EXPORT(bool)
+ NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL)
+ {
++ int result = FALSE;
++
+ T((T_CALLED("can_change_color(%p)"), (void *) SP_PARM));
+- returnCode((CanChange != 0) ? TRUE : FALSE);
++
++ if (HasTerminal(SP_PARM) && (CanChange != 0)) {
++ result = TRUE;
++ }
++
++ returnCode(result);
+ }
+
+ #if NCURSES_SP_FUNCS
+@@ -643,20 +673,22 @@
+ NCURSES_EXPORT(bool)
+ NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0)
+ {
+- int code;
++ int code = FALSE;
+
+ (void) SP_PARM;
+ T((T_CALLED("has_colors()")));
++ if (HasTerminal(SP_PARM)) {
+ #ifdef USE_TERM_DRIVER
+- code = HasColor;
++ code = HasColor;
+ #else
+- code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
+- && (((set_foreground != NULL)
+- && (set_background != NULL))
+- || ((set_a_foreground != NULL)
+- && (set_a_background != NULL))
+- || set_color_pair)) ? TRUE : FALSE);
++ code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
++ && (((set_foreground != NULL)
++ && (set_background != NULL))
++ || ((set_a_foreground != NULL)
++ && (set_a_background != NULL))
++ || set_color_pair)) ? TRUE : FALSE);
+ #endif
++ }
+ returnCode(code);
+ }
+
+@@ -670,7 +702,10 @@
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(color_content) (NCURSES_SP_DCLx
+- short color, short *r, short *g, short *b)
++ NCURSES_COLOR_T color,
++ NCURSES_COLOR_T *r,
++ NCURSES_COLOR_T *g,
++ NCURSES_COLOR_T *b)
+ {
+ int result = ERR;
+ int maxcolors;
+@@ -710,7 +745,10 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-color_content(short color, short *r, short *g, short *b)
++color_content(NCURSES_COLOR_T color,
++ NCURSES_COLOR_T *r,
++ NCURSES_COLOR_T *g,
++ NCURSES_COLOR_T *b)
+ {
+ return NCURSES_SP_NAME(color_content) (CURRENT_SCREEN, color, r, g, b);
+ }
+@@ -718,21 +756,23 @@
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(pair_content) (NCURSES_SP_DCLx
+- short pair, short *f, short *b)
++ NCURSES_PAIRS_T pair,
++ NCURSES_COLOR_T *f,
++ NCURSES_COLOR_T *b)
+ {
+ int result;
+
+ T((T_CALLED("pair_content(%p,%d,%p,%p)"),
+ (void *) SP_PARM,
+- pair,
++ (int) pair,
+ (void *) f,
+ (void *) b));
+
+ if (!ValidPair(pair)) {
+ result = ERR;
+ } else {
+- NCURSES_COLOR_T fg = FORE_OF(SP_PARM->_color_pairs[pair]);
+- NCURSES_COLOR_T bg = BACK_OF(SP_PARM->_color_pairs[pair]);
++ NCURSES_COLOR_T fg = (NCURSES_COLOR_T) FORE_OF(SP_PARM->_color_pairs[pair]);
++ NCURSES_COLOR_T bg = (NCURSES_COLOR_T) BACK_OF(SP_PARM->_color_pairs[pair]);
+
+ #if NCURSES_EXT_FUNCS
+ if (fg == COLOR_DEFAULT)
+@@ -748,8 +788,8 @@
+
+ TR(TRACE_ATTRS, ("...pair_content(%p,%d,%d,%d)",
+ (void *) SP_PARM,
+- pair,
+- fg, bg));
++ (int) pair,
++ (int) fg, (int) bg));
+ result = OK;
+ }
+ returnCode(result);
+@@ -757,7 +797,7 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-pair_content(short pair, short *f, short *b)
++pair_content(NCURSES_COLOR_T pair, NCURSES_COLOR_T *f, NCURSES_COLOR_T *b)
+ {
+ return NCURSES_SP_NAME(pair_content) (CURRENT_SCREEN, pair, f, b);
+ }
+@@ -765,17 +805,18 @@
+
+ NCURSES_EXPORT(void)
+ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx
+- short old_pair,
+- short pair,
+- bool reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_SP_OUTC outc)
+ {
+ #ifdef USE_TERM_DRIVER
+- CallDriver_4(SP_PARM, docolor, old_pair, pair, reverse, outc);
++ CallDriver_4(SP_PARM, td_docolor, old_pair, pair, reverse, outc);
+ #else
+ NCURSES_COLOR_T fg = COLOR_DEFAULT;
+ NCURSES_COLOR_T bg = COLOR_DEFAULT;
+- NCURSES_COLOR_T old_fg, old_bg;
++ NCURSES_COLOR_T old_fg = -1;
++ NCURSES_COLOR_T old_bg = -1;
+
+ if (!ValidPair(pair)) {
+ return;
+@@ -787,13 +828,14 @@
+ 1, outc);
+ return;
+ } else if (SP_PARM != 0) {
+- pair_content((short) pair, &fg, &bg);
++ if (pair_content((NCURSES_COLOR_T) pair, &fg, &bg) == ERR)
++ return;
+ }
+ }
+
+ if (old_pair >= 0
+ && SP_PARM != 0
+- && pair_content(old_pair, &old_fg, &old_bg) != ERR) {
++ && pair_content((NCURSES_COLOR_T) old_pair, &old_fg, &old_bg) != ERR) {
+ if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
+ || (isDefaultColor(bg) && !isDefaultColor(old_bg))) {
+ #if NCURSES_EXT_FUNCS
+@@ -822,9 +864,9 @@
+
+ #if NCURSES_EXT_FUNCS
+ if (isDefaultColor(fg))
+- fg = (short) default_fg(NCURSES_SP_ARG);
++ fg = (NCURSES_COLOR_T) default_fg(NCURSES_SP_ARG);
+ if (isDefaultColor(bg))
+- bg = (short) default_bg(NCURSES_SP_ARG);
++ bg = (NCURSES_COLOR_T) default_bg(NCURSES_SP_ARG);
+ #endif
+
+ if (reverse) {
+@@ -847,7 +889,7 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(void)
+-_nc_do_color(short old_pair, short pair, bool reverse, NCURSES_OUTC outc)
++_nc_do_color(int old_pair, int pair, int reverse, NCURSES_OUTC outc)
+ {
+ SetSafeOutcWrapper(outc);
+ NCURSES_SP_NAME(_nc_do_color) (CURRENT_SCREEN,
+Index: ncurses/base/lib_colorset.c
+Prereq: 1.13
+--- ncurses-5.9/ncurses/base/lib_colorset.c 2009-10-24 22:02:14.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_colorset.c 2014-02-01 22:10:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,14 +41,14 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_colorset.c,v 1.13 2009/10/24 22:02:14 tom Exp $")
++MODULE_ID("$Id: lib_colorset.c,v 1.14 2014/02/01 22:10:42 tom Exp $")
+
+ NCURSES_EXPORT(int)
+-wcolor_set(WINDOW *win, short color_pair_number, void *opts)
++wcolor_set(WINDOW *win, NCURSES_PAIRS_T color_pair_number, void *opts)
+ {
+ int code = ERR;
+
+- T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, color_pair_number));
++ T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, (int) color_pair_number));
+ if (win
+ && !opts
+ && (SP != 0)
+Index: ncurses/base/lib_dft_fgbg.c
+Prereq: 1.25
+--- ncurses-5.9/ncurses/base/lib_dft_fgbg.c 2009-10-24 22:15:00.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_dft_fgbg.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.25 2009/10/24 22:15:00 tom Exp $")
++MODULE_ID("$Id: lib_dft_fgbg.c,v 1.27 2014/03/08 20:32:59 tom Exp $")
+
+ /*
+ * Modify the behavior of color-pair 0 so that the library doesn't assume that
+@@ -70,7 +70,7 @@
+ T((T_CALLED("assume_default_colors(%p,%d,%d)"), (void *) SP_PARM, fg, bg));
+ #ifdef USE_TERM_DRIVER
+ if (sp != 0)
+- code = CallDriver_2(sp, defaultcolors, fg, bg);
++ code = CallDriver_2(sp, td_defaultcolors, fg, bg);
+ #else
+ if ((orig_pair || orig_colors) && !initialize_pair) {
+
+@@ -80,6 +80,7 @@
+ SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
+ if (SP_PARM->_color_pairs != 0) {
+ bool save = SP_PARM->_default_color;
++ SP_PARM->_assumed_color = TRUE;
+ SP_PARM->_default_color = TRUE;
+ init_pair(0, (short) fg, (short) bg);
+ SP_PARM->_default_color = save;
+Index: ncurses/base/lib_driver.c
+Prereq: 1.3
+--- ncurses-5.9/ncurses/base/lib_driver.c 2010-12-20 00:29:17.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_driver.c 2014-04-11 08:21:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_driver.c,v 1.3 2010/12/20 00:29:17 tom Exp $")
++MODULE_ID("$Id: lib_driver.c,v 1.6 2014/04/11 08:21:23 jpf Exp $")
+
+ typedef struct DriverEntry {
+ const char *name;
+@@ -43,9 +43,9 @@
+ static DRIVER_ENTRY DriverTable[] =
+ {
+ #ifdef __MINGW32__
+- {"win", &_nc_WIN_DRIVER},
++ {"win32console", &_nc_WIN_DRIVER},
+ #endif
+- {"tinfo", &_nc_TINFO_DRIVER}
++ {"tinfo", &_nc_TINFO_DRIVER} /* must be last */
+ };
+
+ NCURSES_EXPORT(int)
+@@ -63,9 +63,11 @@
+
+ for (i = 0; i < SIZEOF(DriverTable); i++) {
+ res = DriverTable[i].driver;
+- if (res->CanHandle(TCB, name, errret)) {
+- use = res;
+- break;
++ if (strcmp(DriverTable[i].name, res->td_name(TCB)) == 0) {
++ if (res->td_CanHandle(TCB, name, errret)) {
++ use = res;
++ break;
++ }
+ }
+ }
+ if (use != 0) {
+@@ -79,7 +81,7 @@
+ NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode)
+ {
+ T((T_CALLED("has_key(%p, %d)"), (void *) sp, keycode));
+- returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, kyExist, keycode) : FALSE);
++ returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, td_kyExist, keycode) : FALSE);
+ }
+
+ NCURSES_EXPORT(int)
+@@ -94,7 +96,7 @@
+ int code = ERR;
+
+ if (0 != TerminalOf(sp))
+- code = CallDriver_2(sp, print, data, len);
++ code = CallDriver_2(sp, td_print, data, len);
+ return (code);
+ }
+
+@@ -112,7 +114,7 @@
+ T((T_CALLED("doupdate(%p)"), (void *) sp));
+
+ if (IsValidScreen(sp))
+- code = CallDriver(sp, update);
++ code = CallDriver(sp, td_update);
+
+ returnCode(code);
+ }
+@@ -130,7 +132,7 @@
+ TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%p,%d,%d,%d,%d)"),
+ (void *) sp, yold, xold, ynew, xnew));
+ if (HasTerminal(sp)) {
+- code = CallDriver_4(sp, hwcur, yold, xold, ynew, xnew);
++ code = CallDriver_4(sp, td_hwcur, yold, xold, ynew, xnew);
+ }
+ returnCode(code);
+ }
+Index: ncurses/base/lib_endwin.c
+Prereq: 1.22
+--- ncurses-5.9/ncurses/base/lib_endwin.c 2009-10-24 22:02:14.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_endwin.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_endwin.c,v 1.22 2009/10/24 22:02:14 tom Exp $")
++MODULE_ID("$Id: lib_endwin.c,v 1.23 2014/03/08 20:32:59 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0)
+@@ -56,8 +56,8 @@
+ TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM);
+
+ SP_PARM->_endwin = TRUE;
+- if (TCB && TCB->drv && TCB->drv->scexit)
+- TCB->drv->scexit(SP_PARM);
++ if (TCB && TCB->drv && TCB->drv->td_scexit)
++ TCB->drv->td_scexit(SP_PARM);
+ #else
+ SP_PARM->_endwin = TRUE;
+ SP_PARM->_mouse_wrap(SP_PARM);
+Index: ncurses/base/lib_flash.c
+Prereq: 1.11
+--- ncurses-5.9/ncurses/base/lib_flash.c 2009-10-24 22:02:14.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_flash.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -46,7 +46,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_flash.c,v 1.11 2009/10/24 22:02:14 tom Exp $")
++MODULE_ID("$Id: lib_flash.c,v 1.14 2014/03/08 20:32:59 tom Exp $")
+
+ /*
+ * flash()
+@@ -64,17 +64,15 @@
+ T((T_CALLED("flash(%p)"), (void *) SP_PARM));
+ #ifdef USE_TERM_DRIVER
+ if (SP_PARM != 0)
+- res = CallDriver_1(SP_PARM, doBeepOrFlash, FALSE);
++ res = CallDriver_1(SP_PARM, td_doBeepOrFlash, FALSE);
+ #else
+- /* FIXME: should make sure that we are not in altchar mode */
+- if (flash_screen) {
+- TPUTS_TRACE("flash_screen");
+- res = putp(flash_screen);
+- _nc_flush();
+- } else if (bell) {
+- TPUTS_TRACE("bell");
+- res = putp(bell);
+- _nc_flush();
++ if (HasTerminal(SP_PARM)) {
++ /* FIXME: should make sure that we are not in altchar mode */
++ if (flash_screen) {
++ res = NCURSES_PUTP2_FLUSH("flash_screen", flash_screen);
++ } else if (bell) {
++ res = NCURSES_PUTP2_FLUSH("bell", bell);
++ }
+ }
+ #endif
+ returnCode(res);
+Index: ncurses/base/lib_freeall.c
+Prereq: 1.59
+--- ncurses-5.9/ncurses/base/lib_freeall.c 2010-01-23 17:57:43.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_freeall.c 2012-11-17 23:53:03.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ extern int malloc_errfd; /* FIXME */
+ #endif
+
+-MODULE_ID("$Id: lib_freeall.c,v 1.59 2010/01/23 17:57:43 tom Exp $")
++MODULE_ID("$Id: lib_freeall.c,v 1.62 2012/11/17 23:53:03 tom Exp $")
+
+ /*
+ * Free all ncurses data. This is used for testing only (there's no practical
+@@ -70,19 +70,21 @@
+
+ /* Delete only windows that're not a parent */
+ for (each_window(SP_PARM, p)) {
++ WINDOW *p_win = &(p->win);
+ bool found = FALSE;
+
+ for (each_window(SP_PARM, q)) {
++ WINDOW *q_win = &(q->win);
+ if ((p != q)
+- && (q->win._flags & _SUBWIN)
+- && (&(p->win) == q->win._parent)) {
++ && (q_win->_flags & _SUBWIN)
++ && (p_win == q_win->_parent)) {
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found) {
+- if (delwin(&(p->win)) != ERR)
++ if (delwin(p_win) != ERR)
+ deleted = TRUE;
+ break;
+ }
+@@ -100,7 +102,7 @@
+
+ (void) _nc_printf_string(0, empty_va);
+ #ifdef TRACE
+- (void) _nc_trace_buf(-1, 0);
++ (void) _nc_trace_buf(-1, (size_t) 0);
+ #endif
+ #if USE_WIDEC_SUPPORT
+ FreeIfNeeded(_nc_wacs);
+@@ -129,8 +131,9 @@
+ NCURSES_EXPORT(void)
+ NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code)
+ {
+- char *last_setbuf = (SP_PARM != 0) ? SP_PARM->_setbuf : 0;
++ char *last_buffer = (SP_PARM != 0) ? SP_PARM->out_buffer : 0;
+
++ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG);
+ #ifdef TRACE
+ trace(0); /* close trace file, freeing its setbuf */
+@@ -139,8 +142,7 @@
+ free(_nc_varargs("?", fake));
+ }
+ #endif
+- fclose(stdout);
+- FreeIfNeeded(last_setbuf);
++ FreeIfNeeded(last_buffer);
+ exit(code);
+ }
+
+Index: ncurses/base/lib_getch.c
+Prereq: 1.121
+--- ncurses-5.9/ncurses/base/lib_getch.c 2010-12-25 23:24:04.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_getch.c 2014-05-10 20:36:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_getch.c,v 1.121 2010/12/25 23:24:04 tom Exp $")
++MODULE_ID("$Id: lib_getch.c,v 1.131 2014/05/10 20:36:57 tom Exp $")
+
+ #include <fifo_defs.h>
+
+@@ -124,6 +124,17 @@
+ return (sp ? sp->_use_meta : 0);
+ }
+
++#ifdef USE_TERM_DRIVER
++# ifdef __MINGW32__
++static HANDLE
++_nc_get_handle(int fd)
++{
++ intptr_t value = _get_osfhandle(fd);
++ return (HANDLE) value;
++}
++# endif
++#endif
++
+ /*
+ * Check for mouse activity, returning nonzero if we find any.
+ */
+@@ -133,7 +144,16 @@
+ int rc;
+
+ #ifdef USE_TERM_DRIVER
+- rc = TCBOf(sp)->drv->testmouse(TCBOf(sp), delay);
++ TERMINAL_CONTROL_BLOCK *TCB = TCBOf(sp);
++ rc = TCBOf(sp)->drv->td_testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl));
++# ifdef __MINGW32__
++ /* if we emulate terminfo on console, we have to use the console routine */
++ if (IsTermInfoOnConsole(sp)) {
++ HANDLE fd = _nc_get_handle(sp->_ifd);
++ rc = _nc_mingw_testmouse(sp, fd, delay EVENTLIST_2nd(evl));
++ } else
++# endif
++ rc = TCB->drv->td_testmouse(TCB, delay EVENTLIST_2nd(evl));
+ #else
+ #if USE_SYSMOUSE
+ if ((sp->_mouse_type == M_SYSMOUSE)
+@@ -163,7 +183,7 @@
+ static NCURSES_INLINE int
+ fifo_peek(SCREEN *sp)
+ {
+- int ch = sp->_fifo[peek];
++ int ch = (peek >= 0) ? sp->_fifo[peek] : ERR;
+ TR(TRACE_IEVENT, ("peeking at %d", peek));
+
+ p_inc();
+@@ -173,15 +193,16 @@
+ static NCURSES_INLINE int
+ fifo_pull(SCREEN *sp)
+ {
+- int ch;
+- ch = sp->_fifo[head];
++ int ch = (head >= 0) ? sp->_fifo[head] : ERR;
++
+ TR(TRACE_IEVENT, ("pulling %s from %d", _nc_tracechar(sp, ch), head));
+
+ if (peek == head) {
+ h_inc();
+ peek = head;
+- } else
++ } else {
+ h_inc();
++ }
+
+ #ifdef TRACE
+ if (USE_TRACEF(TRACE_IEVENT)) {
+@@ -200,7 +221,7 @@
+ int mask = 0;
+
+ (void) mask;
+- if (tail == -1)
++ if (tail < 0)
+ return ERR;
+
+ #ifdef HIDE_EINTR
+@@ -257,10 +278,24 @@
+ n = 1;
+ } else
+ #endif
++#if USE_KLIBC_KBD
++ if (NC_ISATTY(sp->_ifd) && sp->_cbreak) {
++ ch = _read_kbd(0, 1, !sp->_raw);
++ n = (ch == -1) ? -1 : 1;
++ sp->_extended_key = (ch == 0);
++ } else
++#endif
+ { /* Can block... */
+ #ifdef USE_TERM_DRIVER
+ int buf;
+- n = CallDriver_1(sp, read, &buf);
++#ifdef __MINGW32__
++ if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak)
++ n = _nc_mingw_console_read(sp,
++ _nc_get_handle(sp->_ifd),
++ &buf);
++ else
++#endif
++ n = CallDriver_1(sp, td_read, &buf);
+ ch = buf;
+ #else
+ unsigned char c2 = 0;
+@@ -270,7 +305,7 @@
+ # endif
+ _nc_globals.read_thread = pthread_self();
+ # endif
+- n = (int) read(sp->_ifd, &c2, 1);
++ n = (int) read(sp->_ifd, &c2, (size_t) 1);
+ #if USE_PTHREADS_EINTR
+ _nc_globals.read_thread = 0;
+ #endif
+@@ -431,11 +466,11 @@
+ /* ungetch in reverse order */
+ #ifdef NCURSES_WGETCH_EVENTS
+ rc = recur_wgetnstr(win, buf);
+- if (rc != KEY_EVENT)
++ if (rc != KEY_EVENT && rc != ERR)
+ safe_ungetch(sp, '\n');
+ #else
+- (void) recur_wgetnstr(win, buf);
+- safe_ungetch(sp, '\n');
++ if (recur_wgetnstr(win, buf) != ERR)
++ safe_ungetch(sp, '\n');
+ #endif
+ for (bufp = buf + strlen(buf); bufp > buf; bufp--)
+ safe_ungetch(sp, bufp[-1]);
+@@ -569,7 +604,7 @@
+ *
+ * If carriage return is defined as a function key in the
+ * terminfo, e.g., kent, then Solaris may return either ^J (or ^M
+- * if nonl() is set) or KEY_ENTER depending on the echo() mode.
++ * if nonl() is set) or KEY_ENTER depending on the echo() mode.
+ * We echo before translating carriage return based on nonl(),
+ * since the visual result simply moves the cursor to column 0.
+ *
+@@ -709,10 +744,11 @@
+
+ if (ptr->value != 0) { /* sequence terminated */
+ TR(TRACE_IEVENT, ("end of sequence"));
+- if (peek == tail)
++ if (peek == tail) {
+ fifo_clear(sp);
+- else
++ } else {
+ head = peek;
++ }
+ return (ptr->value);
+ }
+
+Index: ncurses/base/lib_getstr.c
+Prereq: 1.29
+--- ncurses-5.9/ncurses/base/lib_getstr.c 2009-10-24 21:59:02.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_getstr.c 2011-10-22 16:31:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,14 +40,14 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_getstr.c,v 1.29 2009/10/24 21:59:02 tom Exp $")
++MODULE_ID("$Id: lib_getstr.c,v 1.30 2011/10/22 16:31:35 tom Exp $")
+
+ /*
+ * This wipes out the last character, no matter whether it was a tab, control
+ * or other character, and handles reverse wraparound.
+ */
+ static char *
+-WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed)
++WipeOut(WINDOW *win, int y, int x, char *first, char *last, int echoed)
+ {
+ if (last > first) {
+ *--last = '\0';
+Index: ncurses/base/lib_initscr.c
+Prereq: 1.39
+--- ncurses-5.9/ncurses/base/lib_initscr.c 2009-02-14 20:55:49.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_initscr.c 2014-04-26 18:47:51.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -45,7 +45,7 @@
+ #include <sys/termio.h> /* needed for ISC */
+ #endif
+
+-MODULE_ID("$Id: lib_initscr.c,v 1.39 2009/02/14 20:55:49 tom Exp $")
++MODULE_ID("$Id: lib_initscr.c,v 1.40 2014/04/26 18:47:51 juergen Exp $")
+
+ NCURSES_EXPORT(WINDOW *)
+ initscr(void)
+@@ -75,9 +75,9 @@
+ * core when attempting to write to stdout. Opening /dev/tty
+ * explicitly seems to fix the problem.
+ */
+- if (isatty(fileno(stdout))) {
++ if (NC_ISATTY(fileno(stdout))) {
+ FILE *fp = fopen("/dev/tty", "w");
+- if (fp != 0 && isatty(fileno(fp))) {
++ if (fp != 0 && NC_ISATTY(fileno(fp))) {
+ fclose(stdout);
+ dup2(fileno(fp), STDOUT_FILENO);
+ stdout = fdopen(STDOUT_FILENO, "w");
+Index: ncurses/base/lib_insch.c
+Prereq: 1.32
+--- ncurses-5.9/ncurses/base/lib_insch.c 2009-10-24 22:04:35.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_insch.c 2013-05-18 21:58:56.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -43,7 +43,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_insch.c,v 1.32 2009/10/24 22:04:35 tom Exp $")
++MODULE_ID("$Id: lib_insch.c,v 1.35 2013/05/18 21:58:56 tom Exp $")
+
+ /*
+ * Insert the given character, updating the current location to simplify
+@@ -53,6 +53,7 @@
+ _nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch)
+ {
+ int code = OK;
++ int ch8 = (int) ChCharOf(ch);
+ NCURSES_CH_T wch;
+ int count;
+ NCURSES_CONST char *s;
+@@ -82,10 +83,9 @@
+ #if USE_WIDEC_SUPPORT
+ WINDOW_EXT(win, addch_used) == 0 &&
+ #endif
+- is8bits(ChCharOf(ch)) &&
+- (isprint(ChCharOf(ch)) ||
++ (isprint(ch8) ||
+ (ChAttrOf(ch) & A_ALTCHARSET) ||
+- (sp != 0 && sp->_legacy_coding && !iscntrl(ChCharOf(ch))))) {
++ (sp != 0 && sp->_legacy_coding && !iscntrl(ch8)))) {
+ if (win->_curx <= win->_maxx) {
+ struct ldat *line = &(win->_line[win->_cury]);
+ NCURSES_CH_T *end = &(line->text[win->_curx]);
+@@ -101,8 +101,8 @@
+ *temp1 = _nc_render(win, wch);
+ win->_curx++;
+ }
+- } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
+- s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch));
++ } else if (iscntrl(ch8)) {
++ s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx (chtype) ch8);
+ while (*s != '\0') {
+ code = _nc_insert_ch(sp, win, ChAttrOf(ch) | UChar(*s));
+ if (code != OK)
+@@ -122,18 +122,14 @@
+ code = _nc_insert_wch(win, &wch);
+ } else if (count == -1) {
+ /* handle EILSEQ */
+- if (is8bits(ch)) {
+- s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch));
+- if (strlen(s) > 1) {
+- while (*s != '\0') {
+- code = _nc_insert_ch(sp, win,
+- ChAttrOf(ch) | UChar(*s));
+- if (code != OK)
+- break;
+- ++s;
+- }
+- } else {
+- code = ERR;
++ s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx (chtype) ch8);
++ if (strlen(s) > 1) {
++ while (*s != '\0') {
++ code = _nc_insert_ch(sp, win,
++ ChAttrOf(ch) | UChar(*s));
++ if (code != OK)
++ break;
++ ++s;
+ }
+ } else {
+ code = ERR;
+Index: ncurses/base/lib_instr.c
+Prereq: 1.17
+--- ncurses-5.9/ncurses/base/lib_instr.c 2009-10-24 22:55:45.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_instr.c 2014-02-01 22:09:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,7 +41,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_instr.c,v 1.17 2009/10/24 22:55:45 tom Exp $")
++MODULE_ID("$Id: lib_instr.c,v 1.21 2014/02/01 22:09:27 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ winnstr(WINDOW *win, char *str, int n)
+@@ -64,7 +64,7 @@
+ cchar_t *cell = &(win->_line[row].text[col]);
+ wchar_t *wch;
+ attr_t attrs;
+- short pair;
++ NCURSES_PAIRS_T pair;
+ int n2;
+ bool done = FALSE;
+ mbstate_t state;
+@@ -78,11 +78,15 @@
+ if (getcchar(cell, wch, &attrs, &pair, 0) == OK) {
+
+ init_mb(state);
+- n3 = wcstombs(0, wch, 0);
++ n3 = wcstombs(0, wch, (size_t) 0);
+ if (!isEILSEQ(n3) && (n3 != 0)) {
+- if (((int) n3 + i) > n) {
++ size_t need = n3 + 10 + (size_t) i;
++ int have = (int) n3 + i;
++
++ /* check for loop-done as well as overflow */
++ if (have > n || (int) need <= 0) {
+ done = TRUE;
+- } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
++ } else if ((tmp = typeCalloc(char, need)) == 0) {
+ done = TRUE;
+ } else {
+ init_mb(state);
+Index: ncurses/base/lib_mouse.c
+Prereq: 1.121
+--- ncurses-5.9/ncurses/base/lib_mouse.c 2011-01-22 19:47:47.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_mouse.c 2014-11-01 12:27:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -84,7 +84,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_mouse.c,v 1.121 2011/01/22 19:47:47 tom Exp $")
++MODULE_ID("$Id: lib_mouse.c,v 1.165 2014/11/01 12:27:59 tom Exp $")
+
+ #include <tic.h>
+
+@@ -112,7 +112,7 @@
+ #undef buttons /* symbol conflict in consio.h */
+ #undef mouse_info /* symbol conflict in consio.h */
+ #include <osreldate.h>
+-#if (__FreeBSD_version >= 400017)
++#if defined(__DragonFly_version) || (defined(__FreeBSD__) && (__FreeBSD_version >= 400017))
+ #include <sys/consio.h>
+ #include <sys/fbio.h>
+ #else
+@@ -120,6 +120,17 @@
+ #endif
+ #endif /* use_SYSMOUSE */
+
++#if USE_KLIBC_MOUSE
++#include <sys/socket.h>
++#define pipe(handles) socketpair(AF_LOCAL, SOCK_STREAM, 0, handles)
++#define DosWrite(hfile, pbuffer, cbwrite, pcbactual) \
++ write(hfile, pbuffer, cbwrite)
++#define DosExit(action, result ) /* do nothing */
++#define DosCreateThread(ptid, pfn, param, flag, cbStack) \
++ (*(ptid) = _beginthread(pfn, NULL, cbStack, \
++ (void *)param), (*(ptid) == -1))
++#endif
++
+ #define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
+
+ #define MASK_RELEASE(x) (mmask_t) NCURSES_MOUSE_MASK(x, 001)
+@@ -148,6 +159,9 @@
+ #define INVALID_EVENT -1
+ #define NORMAL_EVENT 0
+
++#define ValidEvent(ep) ((ep)->id != INVALID_EVENT)
++#define Invalidate(ep) (ep)->id = INVALID_EVENT
++
+ #if USE_GPM_SUPPORT
+
+ #ifndef LIBGPM_SONAME
+@@ -211,7 +225,7 @@
+ char buf[6];
+ unsigned long ignore;
+
+- strncpy(buf, key_mouse, 3); /* should be "\033[M" */
++ strcpy(buf, "\033[M"); /* should be the same as key_mouse */
+ buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40);
+ buf[4] = ' ' + x - LEFT_COL + 1;
+ buf[5] = ' ' + y - TOP_ROW + 1;
+@@ -219,7 +233,11 @@
+ }
+
+ static void
++#if USE_KLIBC_MOUSE
++mouse_server(void *param)
++#else
+ mouse_server(unsigned long param)
++#endif
+ {
+ SCREEN *sp = (SCREEN *) param;
+ unsigned short fWait = MOU_WAIT;
+@@ -245,7 +263,8 @@
+ /* sit and wait on the event queue */
+ rc = MouReadEventQue(&mouev, &fWait, hmou);
+ if (rc) {
+- sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc);
++ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err))
++ "Error reading mouse queue, rc=%lu.\r\n", rc);
+ break;
+ }
+ if (!sp->_emxmouse_activated)
+@@ -271,9 +290,11 @@
+ finish:
+ oldstate = mouev.fs;
+ }
+- } else
+- sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n",
+- nbuttons, rc);
++ } else {
++ _nc_SPRINTF(err, _nc_SLIMIT(sizeof(err))
++ "Error setting event mask, buttons=%d, rc=%lu.\r\n",
++ nbuttons, rc);
++ }
+
+ DosWrite(2, err, strlen(err), &rc);
+ MouClose(hmou);
+@@ -355,9 +376,46 @@
+ init_xterm_mouse(SCREEN *sp)
+ {
+ sp->_mouse_type = M_XTERM;
++ sp->_mouse_format = MF_X10;
+ sp->_mouse_xtermcap = tigetstr("XM");
+- if (!VALID_STRING(sp->_mouse_xtermcap))
++ if (VALID_STRING(sp->_mouse_xtermcap)) {
++ char *code = strstr(sp->_mouse_xtermcap, "[?");
++ if (code != 0) {
++ code += 2;
++ while ((*code >= '0') && (*code <= '9')) {
++ char *next = code;
++ while ((*next >= '0') && (*next <= '9')) {
++ ++next;
++ }
++ if (!strncmp(code, "1006", (size_t) (next - code))) {
++ sp->_mouse_format = MF_SGR1006;
++ }
++#ifdef EXP_XTERM_1005
++ if (!strncmp(code, "1005", (size_t) (next - code))) {
++ sp->_mouse_format = MF_XTERM_1005;
++ }
++#endif
++ if (*next == ';') {
++ while (*next == ';') {
++ ++next;
++ }
++ code = next;
++ } else {
++ break;
++ }
++ }
++ }
++ } else {
++ int code = tigetnum("XM");
++ switch (code) {
++ case 1006:
++ break;
++ default:
++ code = 1000;
++ break;
++ }
+ sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
++ }
+ }
+ #endif
+
+@@ -367,23 +425,29 @@
+ #if USE_EMX_MOUSE
+ sp->_emxmouse_activated = enable;
+ #else
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "xterm-mouse",
+- TPARM_1(sp->_mouse_xtermcap, enable));
++ NCURSES_PUTP2("xterm-mouse", TPARM_1(sp->_mouse_xtermcap, enable));
+ #endif
+ sp->_mouse_active = enable;
+ }
+
+ #if USE_GPM_SUPPORT
+ static bool
+-allow_gpm_mouse(void)
++allow_gpm_mouse(SCREEN *sp GCC_UNUSED)
+ {
+ bool result = FALSE;
+
+- /* GPM does printf's without checking if stdout is a terminal */
+- if (isatty(fileno(stdout))) {
+- char *list = getenv("NCURSES_GPM_TERMS");
+- char *env = getenv("TERM");
++#if USE_WEAK_SYMBOLS
++ /* Danger Robinson: do not use dlopen for libgpm if already loaded */
++ if ((Gpm_Wgetch)) {
++ if (!sp->_mouse_gpm_loaded) {
++ T(("GPM library was already dlopen'd, not by us"));
++ }
++ } else
++#endif
++ /* GPM does printf's without checking if stdout is a terminal */
++ if (NC_ISATTY(fileno(stdout))) {
++ const char *list = getenv("NCURSES_GPM_TERMS");
++ const char *env = getenv("TERM");
+ if (list != 0) {
+ if (env != 0) {
+ result = _nc_name_match(list, env, "|:");
+@@ -506,7 +570,7 @@
+
+ /* Try gpm first, because gpm may be configured to run in xterm */
+ #if USE_GPM_SUPPORT
+- if (allow_gpm_mouse()) {
++ if (allow_gpm_mouse(sp)) {
+ if (!sp->_mouse_gpm_loaded) {
+ #ifdef HAVE_LIBDL
+ load_gpm_library(sp);
+@@ -544,7 +608,7 @@
+ int rc;
+
+ if (!sp->_emxmouse_buttons[0]) {
+- char *s = getenv("MOUSE_BUTTONS_123");
++ const char *s = getenv("MOUSE_BUTTONS_123");
+
+ sp->_emxmouse_buttons[0] = 1;
+ if (s && strlen(s) >= 3) {
+@@ -580,7 +644,7 @@
+ struct mouse_info the_mouse;
+ char *the_device = 0;
+
+- if (isatty(sp->_ifd))
++ if (NC_ISATTY(sp->_ifd))
+ the_device = ttyname(sp->_ifd);
+ if (the_device == 0)
+ the_device = "/dev/tty";
+@@ -641,7 +705,7 @@
+ #endif /* USE_SYSMOUSE */
+
+ #ifdef USE_TERM_DRIVER
+- CallDriver(sp, initmouse);
++ CallDriver(sp, td_initmouse);
+ #else
+ /* we know how to recognize mouse events under "xterm" */
+ if (key_mouse != 0) {
+@@ -673,7 +737,7 @@
+
+ sp->_mouse_eventp = FirstEV(sp);
+ for (i = 0; i < EV_MAX; i++)
+- sp->_mouse_events[i].id = INVALID_EVENT;
++ Invalidate(sp->_mouse_events + i);
+
+ initialize_mousetype(sp);
+
+@@ -750,6 +814,7 @@
+ eventp->bstate |= BUTTON3_RELEASED;
+ break;
+ default:
++ eventp->bstate |= REPORT_MOUSE_POSITION;
+ break;
+ }
+
+@@ -818,157 +883,416 @@
+ return result; /* true if we found an event */
+ }
+
++#if USE_EMX_MOUSE
++#define PRESS_POSITION(n) \
++ do { \
++ eventp->bstate = MASK_PRESS(n); \
++ sp->_mouse_bstate |= MASK_PRESS(n); \
++ if (kbuf[0] & 0x40) { \
++ eventp->bstate = MASK_RELEASE(n); \
++ sp->_mouse_bstate &= ~MASK_PRESS(n); \
++ } \
++ } while (0)
++#else
++#define PRESS_POSITION(n) \
++ do { \
++ eventp->bstate = (mmask_t) (sp->_mouse_bstate & MASK_PRESS(n) \
++ ? REPORT_MOUSE_POSITION \
++ : MASK_PRESS(n)); \
++ sp->_mouse_bstate |= MASK_PRESS(n); \
++ } while (0)
++#endif
++
+ static bool
+-_nc_mouse_inline(SCREEN *sp)
+-/* mouse report received in the keyboard stream -- parse its info */
++handle_wheel(SCREEN *sp, MEVENT * eventp, int button, int wheel)
+ {
++ bool result = TRUE;
++
++ switch (button & 3) {
++ case 0:
++ if (wheel) {
++ eventp->bstate = MASK_PRESS(4);
++ /* Do not record in sp->_mouse_bstate; there will be no
++ * corresponding release event.
++ */
++ } else {
++ PRESS_POSITION(1);
++ }
++ break;
++ case 1:
++ if (wheel) {
++#if NCURSES_MOUSE_VERSION == 2
++ eventp->bstate = MASK_PRESS(5);
++ /* See comment above for button 4 */
++#else
++ /* Ignore this event as it is not a true press of the button */
++ eventp->bstate = REPORT_MOUSE_POSITION;
++#endif
++ } else {
++ PRESS_POSITION(2);
++ }
++ break;
++ case 2:
++ PRESS_POSITION(3);
++ break;
++ default:
++ result = FALSE;
++ break;
++ }
++ return result;
++}
++
++static bool
++decode_X10_bstate(SCREEN *sp, MEVENT * eventp, unsigned intro)
++{
++ bool result;
+ int b;
+- bool result = FALSE;
+- MEVENT *eventp = sp->_mouse_eventp;
+
+- TR(MY_TRACE, ("_nc_mouse_inline() called"));
++ eventp->bstate = 0;
+
+- if (sp->_mouse_type == M_XTERM) {
+- unsigned char kbuf[4];
+- mmask_t prev;
+- size_t grabbed;
+- int res;
+-
+- /* This code requires that your xterm entry contain the kmous
+- * capability and that it be set to the \E[M documented in the
+- * Xterm Control Sequences reference. This is how we
+- * arrange for mouse events to be reported via a KEY_MOUSE
+- * return value from wgetch(). After this value is received,
+- * _nc_mouse_inline() gets called and is immediately
+- * responsible for parsing the mouse status information
+- * following the prefix.
+- *
+- * The following quotes from the ctrlseqs.ms document in the
+- * X distribution, describing the X mouse tracking feature:
+- *
+- * Parameters for all mouse tracking escape sequences
+- * generated by xterm encode numeric parameters in a single
+- * character as value+040. For example, ! is 1.
+- *
+- * On button press or release, xterm sends ESC [ M CbCxCy.
+- * The low two bits of Cb encode button information: 0=MB1
+- * pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. The
+- * upper bits encode what modifiers were down when the
+- * button was pressed and are added together. 4=Shift,
+- * 8=Meta, 16=Control. Cx and Cy are the x and y coordinates
+- * of the mouse event. The upper left corner is (1,1).
+- *
+- * (End quote) By the time we get here, we've eaten the
+- * key prefix. FYI, the loop below is necessary because
+- * mouse click info isn't guaranteed to present as a
+- * single clist item.
+- *
+- * Wheel mice may return buttons 4 and 5 when the wheel is turned.
+- * We encode those as button presses.
++ if (!handle_wheel(sp, eventp, (int) intro, (intro & 96) == 96)) {
++ /*
++ * 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.
+ */
++ if (sp->_mouse_bstate & BUTTON_PRESSED) {
++ eventp->bstate = BUTTON_RELEASED;
++ for (b = 1; b <= MAX_BUTTONS; ++b) {
++ if (!(sp->_mouse_bstate & MASK_PRESS(b)))
++ eventp->bstate &= ~MASK_RELEASE(b);
++ }
++ sp->_mouse_bstate = 0;
++ } else {
++ /*
++ * xterm will return a stream of release-events to let the
++ * application know where the mouse is going, if private mode
++ * 1002 or 1003 is enabled.
++ */
++ eventp->bstate = REPORT_MOUSE_POSITION;
++ }
++ }
++
++ if (intro & 4) {
++ eventp->bstate |= BUTTON_SHIFT;
++ }
++ if (intro & 8) {
++ eventp->bstate |= BUTTON_ALT;
++ }
++ if (intro & 16) {
++ eventp->bstate |= BUTTON_CTRL;
++ }
++ result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE;
++ return result;
++}
++
++/* This code requires that your xterm entry contain the kmous capability and
++ * that it be set to the \E[M documented in the Xterm Control Sequences
++ * reference. This is how we arrange for mouse events to be reported via a
++ * KEY_MOUSE return value from wgetch(). After this value is received,
++ * _nc_mouse_inline() gets called and is immediately responsible for parsing
++ * the mouse status information following the prefix.
++ *
++ * The following quotes from the ctlseqs.ms document in the XTerm distribution,
++ * describing the mouse tracking feature:
++ *
++ * Parameters for all mouse tracking escape sequences generated by xterm encode
++ * numeric parameters in a single character as value+040. For example, ! is
++ * 1.
++ *
++ * On button press or release, xterm sends ESC [ M CbCxCy. The low two bits of
++ * Cb encode button information: 0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed,
++ * 3=release. The upper bits encode what modifiers were down when the button
++ * was pressed and are added together. 4=Shift, 8=Meta, 16=Control. Cx and Cy
++ * are the x and y coordinates of the mouse event. The upper left corner is
++ * (1,1).
++ *
++ * (End quote) By the time we get here, we've eaten the key prefix. FYI, the
++ * loop below is necessary because mouse click info isn't guaranteed to present
++ * as a single clist item.
++ *
++ * Wheel mice may return buttons 4 and 5 when the wheel is turned. We encode
++ * those as button presses.
++ */
++static bool
++decode_xterm_X10(SCREEN *sp, MEVENT * eventp)
++{
++ unsigned char kbuf[4];
++ size_t grabbed;
++ int res;
++ bool result;
++
+ # if USE_PTHREADS_EINTR
+ # if USE_WEAK_SYMBOLS
+- if ((pthread_self) && (pthread_kill) && (pthread_equal))
++ if ((pthread_self) && (pthread_kill) && (pthread_equal))
+ # endif
+- _nc_globals.read_thread = pthread_self();
++ _nc_globals.read_thread = pthread_self();
+ # endif
+- for (grabbed = 0; grabbed < 3; grabbed += (size_t) res) {
++ for (grabbed = 0; grabbed < 3; grabbed += (size_t) res) {
+
+- /* For VIO mouse we add extra bit 64 to disambiguate button-up. */
++ /* For VIO mouse we add extra bit 64 to disambiguate button-up. */
++ res = (int) read(
+ #if USE_EMX_MOUSE
+- res = (int) read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3);
++ (M_FD(sp) >= 0) ? M_FD(sp) : sp->_ifd,
+ #else
+- res = (int) read(sp->_ifd, kbuf + grabbed, 3 - grabbed);
++ sp->_ifd,
+ #endif
+- if (res == -1)
+- break;
+- }
++ kbuf + grabbed, 3 - grabbed);
++ if (res == -1)
++ break;
++ }
+ #if USE_PTHREADS_EINTR
+- _nc_globals.read_thread = 0;
++ _nc_globals.read_thread = 0;
+ #endif
+- kbuf[3] = '\0';
++ kbuf[3] = '\0';
+
+- TR(TRACE_IEVENT,
+- ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf));
++ TR(TRACE_IEVENT,
++ ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf));
+
+- /* there's only one mouse... */
+- eventp->id = NORMAL_EVENT;
++ /* there's only one mouse... */
++ eventp->id = NORMAL_EVENT;
++
++ result = decode_X10_bstate(sp, eventp, kbuf[0]);
++
++ eventp->x = (kbuf[1] - ' ') - 1;
++ eventp->y = (kbuf[2] - ' ') - 1;
+
+- /* processing code goes here */
+- eventp->bstate = 0;
+- prev = PREV(eventp)->bstate;
++ return result;
++}
++
++#ifdef EXP_XTERM_1005
++/*
++ * This is identical to X10/X11 responses except that there are two UTF-8
++ * characters storing the ordinates instead of two bytes.
++ */
++static bool
++decode_xterm_1005(SCREEN *sp, MEVENT * eventp)
++{
++ char kbuf[80];
++ size_t grabbed;
++ size_t limit = (sizeof(kbuf) - 1);
++ unsigned coords[2];
++ int res;
++ bool result;
++
++ coords[0] = 0;
++ coords[1] = 0;
++
++# if USE_PTHREADS_EINTR
++# if USE_WEAK_SYMBOLS
++ if ((pthread_self) && (pthread_kill) && (pthread_equal))
++# endif
++ _nc_globals.read_thread = pthread_self();
++# endif
++ for (grabbed = 0; grabbed < limit;) {
+
++ res = (int) read(
+ #if USE_EMX_MOUSE
+-#define PRESS_POSITION(n) \
+- eventp->bstate = MASK_PRESS(n); \
+- if (kbuf[0] & 0x40) \
+- eventp->bstate = MASK_RELEASE(n)
++ (M_FD(sp) >= 0) ? M_FD(sp) : sp->_ifd,
+ #else
+-#define PRESS_POSITION(n) \
+- eventp->bstate = (mmask_t) (prev & MASK_PRESS(n) \
+- ? REPORT_MOUSE_POSITION \
+- : MASK_PRESS(n))
++ sp->_ifd,
+ #endif
+-
+- switch (kbuf[0] & 0x3) {
+- case 0x0:
+- if (kbuf[0] & 64)
+- eventp->bstate = MASK_PRESS(4);
+- else
+- PRESS_POSITION(1);
++ kbuf + grabbed, 1);
++ if (res == -1)
+ break;
++ grabbed += (size_t) res;
++ if (grabbed > 1) {
++ size_t check = 1;
++ int n;
++ int rc;
++ for (n = 0; n < 2; ++n) {
++ if (check >= grabbed)
++ break;
++ rc = _nc_conv_to_utf32(&coords[n], kbuf + check, (unsigned)
++ (grabbed - check));
++ if (!rc)
++ break;
++ check += (size_t) rc;
++ }
++ if (n >= 2)
++ break;
++ }
++ }
++#if USE_PTHREADS_EINTR
++ _nc_globals.read_thread = 0;
++#endif
+
+- case 0x1:
+-#if NCURSES_MOUSE_VERSION == 2
+- if (kbuf[0] & 64)
+- eventp->bstate = MASK_PRESS(5);
+- else
++ TR(TRACE_IEVENT,
++ ("_nc_mouse_inline sees the following xterm data: %s",
++ _nc_visbufn(kbuf, (int) grabbed)));
++
++ /* there's only one mouse... */
++ eventp->id = NORMAL_EVENT;
++
++ result = decode_X10_bstate(sp, eventp, UChar(kbuf[0]));
++
++ eventp->x = (int) (coords[0] - ' ') - 1;
++ eventp->y = (int) (coords[1] - ' ') - 1;
++
++ return result;
++}
++#endif /* EXP_XTERM_1005 */
++
++/*
++ * ECMA-48 section 5.4
++ */
++#define isInter(c) ((c) >= 0x20 && (c) <= 0x2f)
++#define isParam(c) ((c) >= 0x30 && (c) <= 0x3f)
++#define isFinal(c) ((c) >= 0x40 && (c) <= 0x7e)
++
++#define MAX_PARAMS 9
++
++typedef struct {
++ int nerror; /* nonzero if there are unexpected chars */
++ int nparam; /* number of numeric parameters */
++ int params[MAX_PARAMS];
++ int final; /* the final-character */
++} SGR_DATA;
++
++static bool
++read_SGR(SCREEN *sp, SGR_DATA * result)
++{
++ char kbuf[80]; /* bigger than any possible mouse response */
++ int grabbed = 0;
++ int res;
++ int ch = 0;
++ int now = -1;
++ int marker = 1;
++
++ memset(result, 0, sizeof(*result));
++# if USE_PTHREADS_EINTR
++# if USE_WEAK_SYMBOLS
++ if ((pthread_self) && (pthread_kill) && (pthread_equal))
++# endif
++ _nc_globals.read_thread = pthread_self();
++# endif
++ do {
++ res = (int) read(
++#if USE_EMX_MOUSE
++ (M_FD(sp) >= 0) ? M_FD(sp) : sp->_ifd,
++#else
++ sp->_ifd,
+ #endif
+- PRESS_POSITION(2);
++ kbuf + grabbed, 1);
++ if (res == -1)
+ break;
+-
+- case 0x2:
+- PRESS_POSITION(3);
++ if ((grabbed + 3) >= (int) sizeof(kbuf)) {
++ result->nerror++;
+ break;
+-
+- case 0x3:
+- /*
+- * 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.
+- */
+- if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) {
+- eventp->bstate = BUTTON_RELEASED;
+- for (b = 1; b <= MAX_BUTTONS; ++b) {
+- if (!(prev & MASK_PRESS(b)))
+- eventp->bstate &= ~MASK_RELEASE(b);
+- }
+- } else {
++ }
++ ch = UChar(kbuf[grabbed]);
++ kbuf[grabbed + 1] = 0;
++ switch (ch) {
++ case '0':
++ case '1':
++ case '2':
++ case '3':
++ case '4':
++ case '5':
++ case '6':
++ case '7':
++ case '8':
++ case '9':
++ if (marker) {
++ ++now;
++ result->nparam = (now + 1);
++ }
++ marker = 0;
++ result->params[now] = (result->params[now] * 10) + (ch - '0');
++ break;
++ case ';':
++ if (marker) {
++ ++now;
++ result->nparam = (now + 1);
++ }
++ marker = 1;
++ break;
++ default:
++ if (ch < 32 || ch > 126) {
+ /*
+- * 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.
++ * Technically other characters could be interspersed in the
++ * response. Ignore those for now.
+ */
+- eventp->bstate = REPORT_MOUSE_POSITION;
++ result->nerror++;
++ continue;
++ } else if (isFinal(ch)) {
++ if (marker) {
++ result->nparam++;
++ }
++ result->final = ch;
++ } else {
++ result->nerror++;
+ }
+ break;
+ }
+- result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE;
++ ++grabbed;
++ } while (!isFinal(ch));
++#if USE_PTHREADS_EINTR
++ _nc_globals.read_thread = 0;
++#endif
+
+- if (kbuf[0] & 4) {
+- eventp->bstate |= BUTTON_SHIFT;
+- }
+- if (kbuf[0] & 8) {
+- eventp->bstate |= BUTTON_ALT;
++ kbuf[++grabbed] = 0;
++ TR(TRACE_IEVENT,
++ ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf));
++ return (grabbed > 0) && (result->nerror == 0);
++}
++
++static bool
++decode_xterm_SGR1006(SCREEN *sp, MEVENT * eventp)
++{
++ SGR_DATA data;
++ bool result = FALSE;
++ if (read_SGR(sp, &data)) {
++ int b = data.params[0];
++ int b3 = 1 + (b & 3);
++
++ result = TRUE;
++ eventp->id = NORMAL_EVENT;
++ if (data.final == 'M') {
++ (void) handle_wheel(sp, eventp, b, (b & 64) == 64);
++ } else {
++ mmask_t pressed = (mmask_t) NCURSES_MOUSE_MASK(b3, NCURSES_BUTTON_PRESSED);
++ mmask_t release = (mmask_t) NCURSES_MOUSE_MASK(b3, NCURSES_BUTTON_RELEASED);
++ if (sp->_mouse_bstate & pressed) {
++ eventp->bstate = release;
++ sp->_mouse_bstate &= ~pressed;
++ } else {
++ eventp->bstate = REPORT_MOUSE_POSITION;
++ }
+ }
+- if (kbuf[0] & 16) {
+- eventp->bstate |= BUTTON_CTRL;
++ result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE;
++ eventp->x = (data.params[1] ? (data.params[1] - 1) : 0);
++ eventp->y = (data.params[2] ? (data.params[2] - 1) : 0);
++ }
++ return result;
++}
++
++static bool
++_nc_mouse_inline(SCREEN *sp)
++/* mouse report received in the keyboard stream -- parse its info */
++{
++ bool result = FALSE;
++ MEVENT *eventp = sp->_mouse_eventp;
++
++ TR(MY_TRACE, ("_nc_mouse_inline() called"));
++
++ if (sp->_mouse_type == M_XTERM) {
++ switch (sp->_mouse_format) {
++ case MF_X10:
++ result = decode_xterm_X10(sp, eventp);
++ break;
++ case MF_SGR1006:
++ result = decode_xterm_SGR1006(sp, eventp);
++ break;
++#ifdef EXP_XTERM_1005
++ case MF_XTERM_1005:
++ result = decode_xterm_1005(sp, eventp);
++ break;
++#endif
+ }
+
+- eventp->x = (kbuf[1] - ' ') - 1;
+- eventp->y = (kbuf[2] - ' ') - 1;
+ TR(MY_TRACE,
+ ("_nc_mouse_inline: primitive mouse-event %s has slot %ld",
+ _nc_tracemouse(sp, eventp),
+@@ -976,16 +1300,30 @@
+
+ /* bump the next-free pointer into the circular list */
+ sp->_mouse_eventp = NEXT(eventp);
+-#if 0 /* this return would be needed for QNX's mods to lib_getch.c */
+- return (TRUE);
+-#endif
++
++ if (!result) {
++ /* If this event is from a wheel-mouse, treat it like position
++ * reports and avoid waiting for the release-events which will
++ * never come.
++ */
++ if (eventp->bstate & BUTTON_PRESSED) {
++ int b;
++
++ for (b = 4; b <= MAX_BUTTONS; ++b) {
++ if ((eventp->bstate & MASK_PRESS(b))) {
++ result = TRUE;
++ break;
++ }
++ }
++ }
++ }
+ }
+
+ return (result);
+ }
+
+ static void
+-mouse_activate(SCREEN *sp, bool on)
++mouse_activate(SCREEN *sp, int on)
+ {
+ if (!on && !sp->_mouse_initialized)
+ return;
+@@ -994,7 +1332,7 @@
+ return;
+
+ if (on) {
+-
++ sp->_mouse_bstate = 0;
+ switch (sp->_mouse_type) {
+ case M_XTERM:
+ #if NCURSES_EXT_FUNCS
+@@ -1074,10 +1412,13 @@
+ /* parse a run of atomic mouse events into a gesture */
+ {
+ MEVENT *eventp = sp->_mouse_eventp;
+- MEVENT *ep, *runp, *next, *prev = PREV(eventp);
++ MEVENT *next, *ep;
++ MEVENT *first_valid = NULL;
++ MEVENT *first_invalid = NULL;
+ int n;
+ int b;
+ bool merge;
++ bool endLoop;
+
+ TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount));
+
+@@ -1094,7 +1435,8 @@
+ *
+ * It's possible that the run may not resolve to a single event (for
+ * example, if the user quadruple-clicks). If so, leading events
+- * in the run are ignored.
++ * in the run are ignored if user does not call getmouse in a loop (getting
++ * them from newest to older).
+ *
+ * Note that this routine is independent of the format of the specific
+ * format of the pointing-device's reports. We can use it to parse
+@@ -1102,79 +1444,110 @@
+ * button basis, as long as the device-dependent mouse code puts stuff
+ * on the queue in MEVENT format.
+ */
+- if (runcount == 1) {
+- TR(MY_TRACE,
+- ("_nc_mouse_parse: returning simple mouse event %s at slot %ld",
+- _nc_tracemouse(sp, prev),
+- (long) IndexEV(sp, prev)));
+- return (prev->id >= NORMAL_EVENT)
+- ? ((prev->bstate & sp->_mouse_mask) ? TRUE : FALSE)
+- : FALSE;
+- }
+
+- /* find the start of the run */
+- runp = eventp;
+- for (n = runcount; n > 0; n--) {
+- runp = PREV(runp);
++ /*
++ * Reset all events that were not set, in case the user sometimes calls
++ * getmouse only once and other times until there are no more events in
++ * queue.
++ *
++ * This also allows reaching the beginning of the run.
++ */
++ ep = eventp;
++ for (n = runcount; n < EV_MAX; n++) {
++ Invalidate(ep);
++ ep = NEXT(ep);
+ }
+
+ #ifdef TRACE
+ if (USE_TRACEF(TRACE_IEVENT)) {
+ _trace_slot(sp, "before mouse press/release merge:");
+ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+- RunParams(sp, eventp, runp),
++ RunParams(sp, eventp, ep),
+ runcount);
+ _nc_unlock_global(tracef);
+ }
+ #endif /* TRACE */
+
+ /* first pass; merge press/release pairs */
+- do {
+- merge = FALSE;
+- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
++ endLoop = FALSE;
++ while (!endLoop) {
++ next = NEXT(ep);
++ if (next == eventp) {
++ /* Will end the loop, but compact before */
++ endLoop = TRUE;
++ } else {
+
+ #define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \
+ == !(next->bstate & MASK_RELEASE(x)))
+
+- if (ep->x == next->x && ep->y == next->y
++ if (ValidEvent(ep) && ValidEvent(next)
++ && ep->x == next->x && ep->y == next->y
+ && (ep->bstate & BUTTON_PRESSED)
+- && MASK_CHANGED(1)
+- && MASK_CHANGED(2)
+- && MASK_CHANGED(3)
+- && MASK_CHANGED(4)
+-#if NCURSES_MOUSE_VERSION == 2
+- && MASK_CHANGED(5)
+-#endif
+- ) {
++ && (!(next->bstate & BUTTON_PRESSED))) {
++ bool changed = TRUE;
++
+ for (b = 1; b <= MAX_BUTTONS; ++b) {
+- if ((sp->_mouse_mask & MASK_CLICK(b))
+- && (ep->bstate & MASK_PRESS(b))) {
+- ep->bstate &= ~MASK_PRESS(b);
+- ep->bstate |= MASK_CLICK(b);
+- merge = TRUE;
++ if (!MASK_CHANGED(b)) {
++ changed = FALSE;
++ break;
++ }
++ }
++
++ if (changed) {
++ merge = FALSE;
++ for (b = 1; b <= MAX_BUTTONS; ++b) {
++ if ((sp->_mouse_mask & MASK_CLICK(b))
++ && (ep->bstate & MASK_PRESS(b))) {
++ next->bstate &= ~MASK_RELEASE(b);
++ next->bstate |= MASK_CLICK(b);
++ merge = TRUE;
++ }
++ }
++ if (merge) {
++ Invalidate(ep);
+ }
+ }
+- if (merge)
+- next->id = INVALID_EVENT;
+ }
+ }
+- } while
+- (merge);
+
++ /* Compact valid events */
++ if (!ValidEvent(ep)) {
++ if ((first_valid != NULL) && (first_invalid == NULL)) {
++ first_invalid = ep;
++ }
++ } else {
++ if (first_valid == NULL) {
++ first_valid = ep;
++ } else if (first_invalid != NULL) {
++ *first_invalid = *ep;
++ Invalidate(ep);
++ first_invalid = NEXT(first_invalid);
++ }
++ }
++
++ ep = next;
++ }
++
++ if (first_invalid != NULL) {
++ eventp = first_invalid;
++ }
+ #ifdef TRACE
+ if (USE_TRACEF(TRACE_IEVENT)) {
+ _trace_slot(sp, "before mouse click merge:");
+- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+- RunParams(sp, eventp, runp),
+- runcount);
+- _nc_unlock_global(tracef);
++ if (first_valid == NULL) {
++ _tracef("_nc_mouse_parse: no valid event");
++ } else {
++ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
++ RunParams(sp, eventp, first_valid),
++ runcount);
++ _nc_unlock_global(tracef);
++ }
+ }
+ #endif /* TRACE */
+
+ /*
+- * Second pass; merge click runs. At this point, click events are
+- * each followed by one invalid event. We merge click events
+- * forward in the queue.
++ * Second pass; merge click runs. We merge click events forward in the
++ * queue. For example, double click can be changed to triple click.
+ *
+ * NOTE: There is a problem with this design! If the application
+ * allows enough click events to pile up in the circular queue so
+@@ -1187,87 +1560,102 @@
+ * but the timer element would have to have sub-second resolution,
+ * which would get us into portability trouble.
+ */
+- do {
+- MEVENT *follower;
+-
+- merge = FALSE;
+- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next)
+- if (ep->id != INVALID_EVENT) {
+- if (next->id != INVALID_EVENT)
+- continue;
+- follower = NEXT(next);
+- if (follower->id == INVALID_EVENT)
+- continue;
+-
+- /* merge click events forward */
+- if ((ep->bstate & BUTTON_CLICKED)
+- && (follower->bstate & BUTTON_CLICKED)) {
+- for (b = 1; b <= MAX_BUTTONS; ++b) {
+- if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
+- && (follower->bstate & MASK_CLICK(b))) {
+- follower->bstate &= ~MASK_CLICK(b);
+- follower->bstate |= MASK_DOUBLE_CLICK(b);
+- merge = TRUE;
+- }
++ first_invalid = NULL;
++ endLoop = (first_valid == NULL);
++ ep = first_valid;
++ while (!endLoop) {
++ next = NEXT(ep);
++
++ if (next == eventp) {
++ /* Will end the loop, but check event type and compact before */
++ endLoop = TRUE;
++ } else if (!ValidEvent(next)) {
++ continue;
++ } else {
++ /* merge click events forward */
++ if ((ep->bstate & BUTTON_CLICKED)
++ && (next->bstate & BUTTON_CLICKED)) {
++ merge = FALSE;
++ for (b = 1; b <= MAX_BUTTONS; ++b) {
++ if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
++ && (ep->bstate & MASK_CLICK(b))
++ && (next->bstate & MASK_CLICK(b))) {
++ next->bstate &= ~MASK_CLICK(b);
++ next->bstate |= MASK_DOUBLE_CLICK(b);
++ merge = TRUE;
+ }
+- if (merge)
+- ep->id = INVALID_EVENT;
+ }
++ if (merge) {
++ Invalidate(ep);
++ }
++ }
+
+- /* merge double-click events forward */
+- if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
+- && (follower->bstate & BUTTON_CLICKED)) {
+- for (b = 1; b <= MAX_BUTTONS; ++b) {
+- if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
+- && (follower->bstate & MASK_CLICK(b))) {
+- follower->bstate &= ~MASK_CLICK(b);
+- follower->bstate |= MASK_TRIPLE_CLICK(b);
+- merge = TRUE;
+- }
++ /* merge double-click events forward */
++ if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
++ && (next->bstate & BUTTON_CLICKED)) {
++ merge = FALSE;
++ for (b = 1; b <= MAX_BUTTONS; ++b) {
++ if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
++ && (ep->bstate & MASK_DOUBLE_CLICK(b))
++ && (next->bstate & MASK_CLICK(b))) {
++ next->bstate &= ~MASK_CLICK(b);
++ next->bstate |= MASK_TRIPLE_CLICK(b);
++ merge = TRUE;
+ }
+- if (merge)
+- ep->id = INVALID_EVENT;
++ }
++ if (merge) {
++ Invalidate(ep);
+ }
+ }
+- } while
+- (merge);
++ }
+
+-#ifdef TRACE
+- if (USE_TRACEF(TRACE_IEVENT)) {
+- _trace_slot(sp, "before mouse event queue compaction:");
+- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+- RunParams(sp, eventp, runp),
+- runcount);
+- _nc_unlock_global(tracef);
+- }
+-#endif /* TRACE */
++ /* Discard event if it does not match event mask */
++ if (!(ep->bstate & sp->_mouse_mask2)) {
++ Invalidate(ep);
++ }
+
+- /*
+- * Now try to throw away trailing events flagged invalid, or that
+- * don't match the current event mask.
+- */
+- for (; runcount; prev = PREV(eventp), runcount--)
+- if (prev->id == INVALID_EVENT || !(prev->bstate & sp->_mouse_mask)) {
+- sp->_mouse_eventp = eventp = prev;
++ /* Compact valid events */
++ if (!ValidEvent(ep)) {
++ if (ep == first_valid) {
++ first_valid = next;
++ } else if (first_invalid == NULL) {
++ first_invalid = ep;
++ }
++ } else if (first_invalid != NULL) {
++ *first_invalid = *ep;
++ Invalidate(ep);
++ first_invalid = NEXT(first_invalid);
+ }
++
++ ep = next;
++ }
++
++ if (first_invalid == NULL) {
++ first_invalid = eventp;
++ }
++ sp->_mouse_eventp = first_invalid;
++
+ #ifdef TRACE
+- if (USE_TRACEF(TRACE_IEVENT)) {
+- _trace_slot(sp, "after mouse event queue compaction:");
+- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
+- RunParams(sp, eventp, runp),
+- runcount);
+- _nc_unlock_global(tracef);
++ if (first_valid != NULL) {
++ if (USE_TRACEF(TRACE_IEVENT)) {
++ _trace_slot(sp, "after mouse event queue compaction:");
++ _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
++ RunParams(sp, first_invalid, first_valid),
++ runcount);
++ _nc_unlock_global(tracef);
++ }
++ for (ep = first_valid; ep != first_invalid; ep = NEXT(ep)) {
++ if (ValidEvent(ep))
++ TR(MY_TRACE,
++ ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
++ _nc_tracemouse(sp, ep),
++ (long) IndexEV(sp, ep)));
++ }
+ }
+- for (ep = runp; ep != eventp; ep = NEXT(ep))
+- if (ep->id != INVALID_EVENT)
+- TR(MY_TRACE,
+- ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
+- _nc_tracemouse(sp, ep),
+- (long) IndexEV(sp, ep)));
+ #endif /* TRACE */
+
+ /* after all this, do we have a valid event? */
+- return (PREV(eventp)->id != INVALID_EVENT);
++ return ValidEvent(PREV(first_invalid));
+ }
+
+ static void
+@@ -1359,7 +1747,16 @@
+ /* compute the current-event pointer */
+ MEVENT *prev = PREV(eventp);
+
+- if (prev->id != INVALID_EVENT) {
++ /*
++ * Discard events not matching mask (there could be still some if
++ * _nc_mouse_parse was not called, e.g., when _nc_mouse_inline returns
++ * false).
++ */
++ while (ValidEvent(prev) && (!(prev->bstate & SP_PARM->_mouse_mask2))) {
++ Invalidate(prev);
++ prev = PREV(prev);
++ }
++ if (ValidEvent(prev)) {
+ /* copy the event we find there */
+ *aevent = *prev;
+
+@@ -1367,9 +1764,16 @@
+ _nc_tracemouse(SP_PARM, prev),
+ (long) IndexEV(SP_PARM, prev)));
+
+- prev->id = INVALID_EVENT; /* so the queue slot becomes free */
+- SP_PARM->_mouse_eventp = PREV(prev);
++ Invalidate(prev); /* so the queue slot becomes free */
++ SP_PARM->_mouse_eventp = prev;
+ result = OK;
++ } else {
++ /* Reset the provided event */
++ aevent->bstate = 0;
++ Invalidate(aevent);
++ aevent->x = 0;
++ aevent->y = 0;
++ aevent->z = 0;
+ }
+ }
+ returnCode(result);
+@@ -1420,6 +1824,7 @@
+ /* set the mouse event mask */
+ {
+ mmask_t result = 0;
++ int b;
+
+ T((T_CALLED("mousemask(%p,%#lx,%p)"),
+ (void *) SP_PARM,
+@@ -1447,6 +1852,22 @@
+ mouse_activate(SP_PARM, (bool) (result != 0));
+
+ SP_PARM->_mouse_mask = result;
++ SP_PARM->_mouse_mask2 = result;
++
++ /*
++ * Make a mask corresponding to the states we will need to
++ * retain (temporarily) while building up the state that the
++ * user asked for.
++ */
++ for (b = 1; b <= MAX_BUTTONS; ++b) {
++ if (SP_PARM->_mouse_mask2 & MASK_TRIPLE_CLICK(b))
++ SP_PARM->_mouse_mask2 |= MASK_DOUBLE_CLICK(b);
++ if (SP_PARM->_mouse_mask2 & MASK_DOUBLE_CLICK(b))
++ SP_PARM->_mouse_mask2 |= MASK_CLICK(b);
++ if (SP_PARM->_mouse_mask2 & MASK_CLICK(b))
++ SP_PARM->_mouse_mask2 |= (MASK_PRESS(b) |
++ MASK_RELEASE(b));
++ }
+ }
+ }
+ }
+Index: ncurses/base/lib_newterm.c
+Prereq: 1.86
+--- ncurses-5.9/ncurses/base/lib_newterm.c 2010-05-20 23:25:18.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_newterm.c 2014-04-26 18:00:39.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,17 +42,13 @@
+
+ #include <curses.priv.h>
+
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+ #ifndef CUR
+ #define CUR SP_TERMTYPE
+ #endif
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_newterm.c,v 1.86 2010/05/20 23:25:18 tom Exp $")
++MODULE_ID("$Id: lib_newterm.c,v 1.92 2014/04/26 18:00:39 tom Exp $")
+
+ #ifdef USE_TERM_DRIVER
+ #define NumLabels InfoOf(SP_PARM).numlabels
+@@ -185,7 +181,7 @@
+ START_TRACE();
+ T((T_CALLED("newterm(%p, \"%s\", %p,%p)"),
+ (void *) SP_PARM,
+- name,
++ (name ? name : ""),
+ (void *) ofp,
+ (void *) ifp));
+
+@@ -204,9 +200,6 @@
+ INIT_TERM_DRIVER();
+ /* this loads the capability entry, then sets LINES and COLS */
+ if (
+-#if NCURSES_SP_FUNCS
+- SP_PARM->_prescreen &&
+-#endif
+ TINFO_SETUP_TERM(&new_term, name,
+ fileno(_ofp), &errret, FALSE) != ERR) {
+
+@@ -283,7 +276,8 @@
+ NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp));
+ #ifdef TERMIOS
+ SP_PARM->_use_meta = ((new_term->Ottyb.c_cflag & CSIZE) == CS8 &&
+- !(new_term->Ottyb.c_iflag & ISTRIP));
++ !(new_term->Ottyb.c_iflag & ISTRIP)) ||
++ USE_KLIBC_KBD;
+ #else
+ SP_PARM->_use_meta = FALSE;
+ #endif
+@@ -309,8 +303,8 @@
+
+ /* compute movement costs so we can do better move optimization */
+ #ifdef USE_TERM_DRIVER
+- TCBOf(SP_PARM)->drv->scinit(SP_PARM);
+-#else
++ TCBOf(SP_PARM)->drv->td_scinit(SP_PARM);
++#else /* ! USE_TERM_DRIVER */
+ /*
+ * Check for mismatched graphic-rendition capabilities. Most SVr4
+ * terminfo trees contain entries that have rmul or rmso equated to
+@@ -323,13 +317,16 @@
+ #define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode))
+ SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode);
+ SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode);
++#if USE_ITALIC
++ SP_PARM->_use_ritm = SGR0_TEST(exit_italics_mode);
++#endif
+
+ /* compute movement costs so we can do better move optimization */
+ _nc_mvcur_init();
+
+ /* initialize terminal to a sane state */
+ _nc_screen_init();
+-#endif
++#endif /* USE_TERM_DRIVER */
+
+ /* Initialize the terminal line settings. */
+ _nc_initscr(NCURSES_SP_ARG);
+Index: ncurses/base/lib_newwin.c
+Prereq: 1.69
+--- ncurses-5.9/ncurses/base/lib_newwin.c 2011-03-07 21:58:17.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_newwin.c 2011-05-28 21:32:51.000000000 +0000
+@@ -43,7 +43,7 @@
+ #include <curses.priv.h>
+ #include <stddef.h>
+
+-MODULE_ID("$Id: lib_newwin.c,v 1.69 2011/03/07 21:58:17 tom Exp $")
++MODULE_ID("$Id: lib_newwin.c,v 1.71 2011/05/28 21:32:51 tom Exp $")
+
+ #define window_is(name) ((sp)->_##name == win)
+
+@@ -141,7 +141,11 @@
+ T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), (void *) SP_PARM, num_lines, num_columns,
+ begy, begx));
+
+- if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0)
++ if (begy < 0
++ || begx < 0
++ || num_lines < 0
++ || num_columns < 0
++ || SP_PARM == 0)
+ returnWin(0);
+
+ if (num_lines == 0)
+@@ -235,10 +239,15 @@
+ NCURSES_EXPORT(WINDOW *)
+ subwin(WINDOW *w, int l, int c, int y, int x)
+ {
++ WINDOW *result = 0;
++
+ T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x));
+- T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
++ if (w != 0) {
++ T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx));
+
+- returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx));
++ result = derwin(w, l, c, y - w->_begy, x - w->_begx);
++ }
++ returnWin(result);
+ }
+
+ static bool
+Index: ncurses/base/lib_overlay.c
+Prereq: 1.29
+--- ncurses-5.9/ncurses/base/lib_overlay.c 2009-10-24 23:21:31.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_overlay.c 2013-04-06 23:47:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,7 +40,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_overlay.c,v 1.29 2009/10/24 23:21:31 tom Exp $")
++MODULE_ID("$Id: lib_overlay.c,v 1.31 2013/04/06 23:47:13 tom Exp $")
+
+ static int
+ overlap(const WINDOW *const src, WINDOW *const dst, int const flag)
+@@ -151,7 +151,10 @@
+ dminrow, dmincol,
+ dmaxrow, dmaxcol, over));
+
+- if (src && dst) {
++ if (src != 0
++ && dst != 0
++ && dmaxrow >= dminrow
++ && dmaxcol >= dmincol) {
+ _nc_lock_global(curses);
+
+ bk = AttrOf(dst->_nc_bkgd);
+@@ -160,6 +163,7 @@
+ /* make sure rectangle exists in source */
+ if ((sminrow + dmaxrow - dminrow) <= (src->_maxy + 1) &&
+ (smincol + dmaxcol - dmincol) <= (src->_maxx + 1)) {
++ bool copied = FALSE;
+
+ T(("rectangle exists in source"));
+
+@@ -172,10 +176,18 @@
+ dy <= dmaxrow;
+ sy++, dy++) {
+
++ if (dy < 0 || sy < 0)
++ continue;
++
+ touched = FALSE;
+ for (dx = dmincol, sx = smincol;
+ dx <= dmaxcol;
+ sx++, dx++) {
++
++ if (dx < 0 || sx < 0)
++ continue;
++ copied = TRUE;
++
+ if (over) {
+ if ((CharOf(src->_line[sy].text[sx]) != L(' ')) &&
+ (!CharEq(dst->_line[dy].text[dx],
+@@ -201,7 +213,8 @@
+ }
+ }
+ T(("finished copywin"));
+- rc = OK;
++ if (copied)
++ rc = OK;
+ }
+ }
+ _nc_unlock_global(curses);
+Index: ncurses/base/lib_printw.c
+Prereq: 1.20
+--- ncurses-5.9/ncurses/base/lib_printw.c 2009-10-24 22:07:03.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_printw.c 2012-09-03 17:55:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
++ * Author: Thomas E. Dickey 1997-on *
+ ****************************************************************************/
+
+ /*
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_printw.c,v 1.20 2009/10/24 22:07:03 tom Exp $")
++MODULE_ID("$Id: lib_printw.c,v 1.23 2012/09/03 17:55:28 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ printw(const char *fmt,...)
+@@ -48,10 +48,11 @@
+ int code;
+
+ #ifdef TRACE
+- va_start(argp, fmt);
++ va_list argq;
++ va_start(argq, fmt);
+ T((T_CALLED("printw(%s%s)"),
+- _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+- va_end(argp);
++ _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
++ va_end(argq);
+ #endif
+
+ va_start(argp, fmt);
+@@ -68,10 +69,11 @@
+ int code;
+
+ #ifdef TRACE
+- va_start(argp, fmt);
++ va_list argq;
++ va_start(argq, fmt);
+ T((T_CALLED("wprintw(%p,%s%s)"),
+- (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+- va_end(argp);
++ (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
++ va_end(argq);
+ #endif
+
+ va_start(argp, fmt);
+@@ -88,10 +90,11 @@
+ int code;
+
+ #ifdef TRACE
+- va_start(argp, fmt);
++ va_list argq;
++ va_start(argq, fmt);
+ T((T_CALLED("mvprintw(%d,%d,%s%s)"),
+- y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+- va_end(argp);
++ y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
++ va_end(argq);
+ #endif
+
+ if ((code = move(y, x)) != ERR) {
+@@ -109,10 +112,11 @@
+ int code;
+
+ #ifdef TRACE
+- va_start(argp, fmt);
++ va_list argq;
++ va_start(argq, fmt);
+ T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"),
+- y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argp)));
+- va_end(argp);
++ y, x, (void *) win, _nc_visbuf(fmt), _nc_varargs(fmt, argq)));
++ va_end(argq);
+ #endif
+
+ if ((code = wmove(win, y, x)) != ERR) {
+Index: ncurses/base/lib_refresh.c
+Prereq: 1.44
+--- ncurses-5.9/ncurses/base/lib_refresh.c 2010-12-19 01:22:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_refresh.c 2011-06-25 19:02:22.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_refresh.c,v 1.44 2010/12/19 01:22:58 tom Exp $")
++MODULE_ID("$Id: lib_refresh.c,v 1.45 2011/06/25 19:02:22 Vassili.Courzakis Exp $")
+
+ NCURSES_EXPORT(int)
+ wrefresh(WINDOW *win)
+@@ -90,12 +90,6 @@
+ #endif
+
+ T((T_CALLED("wnoutrefresh(%p)"), (void *) win));
+-#ifdef TRACE
+- if (USE_TRACEF(TRACE_UPDATE)) {
+- _tracedump("...win", win);
+- _nc_unlock_global(tracef);
+- }
+-#endif /* TRACE */
+
+ /*
+ * This function will break badly if we try to refresh a pad.
+@@ -104,6 +98,13 @@
+ || (win->_flags & _ISPAD))
+ returnCode(ERR);
+
++#ifdef TRACE
++ if (USE_TRACEF(TRACE_UPDATE)) {
++ _tracedump("...win", win);
++ _nc_unlock_global(tracef);
++ }
++#endif /* TRACE */
++
+ /* put them here so "win == 0" won't break our code */
+ begx = win->_begx;
+ begy = win->_begy;
+Index: ncurses/base/lib_restart.c
+Prereq: 1.13
+--- ncurses-5.9/ncurses/base/lib_restart.c 2009-10-24 22:47:43.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_restart.c 2012-12-08 20:40:06.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,11 +41,7 @@
+
+ #include <curses.priv.h>
+
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+-MODULE_ID("$Id: lib_restart.c,v 1.13 2009/10/24 22:47:43 tom Exp $")
++MODULE_ID("$Id: lib_restart.c,v 1.15 2012/12/08 20:40:06 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
+@@ -55,7 +51,7 @@
+ {
+ int result;
+ #ifdef USE_TERM_DRIVER
+- TERMINAL *new_term;
++ TERMINAL *new_term = 0;
+ #endif
+
+ T((T_CALLED("restartterm(%p,%s,%d,%p)"),
+Index: ncurses/base/lib_scanw.c
+Prereq: 1.12
+--- ncurses-5.9/ncurses/base/lib_scanw.c 2009-10-24 22:35:14.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_scanw.c 2011-10-22 16:31:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2001,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,14 +40,14 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_scanw.c,v 1.12 2009/10/24 22:35:14 tom Exp $")
++MODULE_ID("$Id: lib_scanw.c,v 1.13 2011/10/22 16:31:35 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
+ {
+ char buf[BUFSIZ];
+
+- if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR)
++ if (wgetnstr(win, buf, (int) sizeof(buf) - 1) == ERR)
+ return (ERR);
+
+ return (vsscanf(buf, fmt, argp));
+Index: ncurses/base/lib_screen.c
+Prereq: 1.38
+--- ncurses-5.9/ncurses/base/lib_screen.c 2009-10-24 22:08:55.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_screen.c 2011-10-22 15:03:11.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_screen.c,v 1.38 2009/10/24 22:08:55 tom Exp $")
++MODULE_ID("$Id: lib_screen.c,v 1.41 2011/10/22 15:03:11 tom Exp $")
+
+ #define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */
+
+@@ -51,8 +51,11 @@
+
+ T((T_CALLED("getwin(%p)"), (void *) filep));
+
++ if (filep == 0) {
++ returnWin(0);
++ }
+ clearerr(filep);
+- if (fread(&tmp, 1, sizeof(WINDOW), filep) < sizeof(WINDOW)
++ if (fread(&tmp, (size_t) 1, sizeof(WINDOW), filep) < sizeof(WINDOW)
+ || ferror(filep)
+ || tmp._maxy == 0
+ || tmp._maxy > MAX_SIZE
+@@ -110,7 +113,7 @@
+
+ for (n = 0; n <= nwin->_maxy; n++) {
+ clearerr(filep);
+- if (fread(nwin->_line[n].text, 1, linesize, filep) < linesize
++ if (fread(nwin->_line[n].text, (size_t) 1, linesize, filep) < linesize
+ || ferror(filep)) {
+ delwin(nwin);
+ returnWin(0);
+@@ -141,7 +144,7 @@
+ size_t len = (size_t) (win->_maxx + 1);
+
+ clearerr(filep);
+- if (fwrite(win, sizeof(WINDOW), 1, filep) != 1
++ if (fwrite(win, sizeof(WINDOW), (size_t) 1, filep) != 1
+ || ferror(filep))
+ returnCode(code);
+
+@@ -189,18 +192,20 @@
+ NCURSES_EXPORT(int)
+ scr_dump(const char *file)
+ {
++ int result;
+ FILE *fp = 0;
+
+ T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file)));
+
+ if (_nc_access(file, W_OK) < 0
+ || (fp = fopen(file, "wb")) == 0) {
+- returnCode(ERR);
++ result = ERR;
+ } else {
+ (void) putwin(newscr, fp);
+ (void) fclose(fp);
+- returnCode(OK);
++ result = OK;
+ }
++ returnCode(result);
+ }
+
+ NCURSES_EXPORT(int)
+Index: ncurses/base/lib_scroll.c
+Prereq: 1.28
+--- ncurses-5.9/ncurses/base/lib_scroll.c 2010-12-19 01:48:09.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_scroll.c 2011-10-22 16:34:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -43,13 +43,13 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_scroll.c,v 1.28 2010/12/19 01:48:09 tom Exp $")
++MODULE_ID("$Id: lib_scroll.c,v 1.29 2011/10/22 16:34:50 tom Exp $")
+
+ NCURSES_EXPORT(void)
+ _nc_scroll_window(WINDOW *win,
+ int const n,
+- NCURSES_SIZE_T const top,
+- NCURSES_SIZE_T const bottom,
++ int const top,
++ int const bottom,
+ NCURSES_CH_T blank)
+ {
+ int limit;
+Index: ncurses/base/lib_set_term.c
+Prereq: 1.138
+--- ncurses-5.9/ncurses/base/lib_set_term.c 2010-12-20 00:42:20.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_set_term.c 2014-11-01 12:30:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -47,7 +47,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_set_term.c,v 1.138 2010/12/20 00:42:20 tom Exp $")
++MODULE_ID("$Id: lib_set_term.c,v 1.150 2014/11/01 12:30:47 tom Exp $")
+
+ #ifdef USE_TERM_DRIVER
+ #define MaxColors InfoOf(sp).maxcolors
+@@ -188,18 +188,7 @@
+ FreeIfNeeded(sp->_acs_map);
+ FreeIfNeeded(sp->_screen_acs_map);
+
+- /*
+- * If the associated output stream has been closed, we can discard the
+- * set-buffer. Limit the error check to EBADF, since fflush may fail
+- * for other reasons than trying to operate upon a closed stream.
+- */
+- if (sp->_ofp != 0
+- && sp->_setbuf != 0
+- && fflush(sp->_ofp) != 0
+- && errno == EBADF) {
+- free(sp->_setbuf);
+- }
+-
++ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+ NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx sp->_term);
+ free(sp);
+
+@@ -253,8 +242,8 @@
+ }
+
+ #if NCURSES_EXT_FUNCS && USE_COLORFGBG
+-static char *
+-extract_fgbg(char *src, int *result)
++static const char *
++extract_fgbg(const char *src, int *result)
+ {
+ char *dst = 0;
+ long value = strtol(src, &dst, 0);
+@@ -272,8 +261,8 @@
+ }
+ #endif
+
+-#define ReturnScreenError() _nc_set_screen(0); \
+- returnCode(ERR)
++#define ReturnScreenError() { _nc_set_screen(0); \
++ returnCode(ERR); } while (0)
+
+ /* OS-independent screen initializations */
+ NCURSES_EXPORT(int)
+@@ -284,7 +273,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- bool filtered,
++ int filtered,
+ int slk_format)
+ {
+ char *env;
+@@ -362,7 +351,7 @@
+ slines = 1;
+ SET_LINES(slines);
+ #ifdef USE_TERM_DRIVER
+- CallDriver(sp, setfilter);
++ CallDriver(sp, td_setfilter);
+ #else
+ clear_screen = 0;
+ cursor_down = parm_down_cursor = 0;
+@@ -383,7 +372,15 @@
+ sp->_lines = (NCURSES_SIZE_T) slines;
+ sp->_lines_avail = (NCURSES_SIZE_T) slines;
+ sp->_columns = (NCURSES_SIZE_T) scolumns;
++
++ fflush(output);
++ sp->_ofd = output ? fileno(output) : -1;
+ sp->_ofp = output;
++ sp->out_limit = (size_t) ((2 + slines) * (6 + scolumns));
++ if ((sp->out_buffer = malloc(sp->out_limit)) == 0)
++ sp->out_limit = 0;
++ sp->out_inuse = 0;
++
+ SP_PRE_INIT(sp);
+ SetNoPadding(sp);
+
+@@ -445,7 +442,7 @@
+ * decide later if it is worth having default attributes as well.
+ */
+ if (getenv("COLORFGBG") != 0) {
+- char *p = getenv("COLORFGBG");
++ const char *p = getenv("COLORFGBG");
+ TR(TRACE_CHARPUT | TRACE_MOVE, ("decoding COLORFGBG %s", p));
+ p = extract_fgbg(p, &(sp->_default_fg));
+ p = extract_fgbg(p, &(sp->_default_bg));
+@@ -510,16 +507,7 @@
+
+ if (magic_cookie_glitch > 0) { /* tvi, wyse */
+
+- sp->_xmc_triggers = sp->_ok_attributes & (
+- A_STANDOUT |
+- A_UNDERLINE |
+- A_REVERSE |
+- A_BLINK |
+- A_DIM |
+- A_BOLD |
+- A_INVIS |
+- A_PROTECT
+- );
++ sp->_xmc_triggers = sp->_ok_attributes & XMC_CONFLICT;
+ #if 0
+ /*
+ * We "should" treat colors as an attribute. The wyse350 (and its
+@@ -584,9 +572,13 @@
+
+ NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_ARG);
+ #if USE_WIDEC_SUPPORT
++ sp->_screen_unicode = _nc_unicode_locale();
+ _nc_init_wacs();
++ if (_nc_wacs == 0) {
++ ReturnScreenError();
++ }
+
+- sp->_screen_acs_fix = (_nc_unicode_locale()
++ sp->_screen_acs_fix = (sp->_screen_unicode
+ && _nc_locale_breaks_acs(sp->_term));
+ #endif
+ env = _nc_get_locale();
+@@ -619,6 +611,7 @@
+ #endif
+ #if USE_SIZECHANGE
+ sp->_resize = NCURSES_SP_NAME(resizeterm);
++ sp->_ungetch = safe_ungetch;
+ #endif
+
+ NewScreen(sp)->_clear = TRUE;
+@@ -695,7 +688,7 @@
+ _nc_setupscreen(int slines GCC_UNUSED,
+ int scolumns GCC_UNUSED,
+ FILE *output,
+- bool filtered,
++ int filtered,
+ int slk_format)
+ {
+ SCREEN *sp = 0;
+@@ -759,6 +752,7 @@
+ int line,
+ int (*init) (WINDOW *, int))
+ {
++ START_TRACE();
+ return NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx
+ (line < 0) ? -1 : 1,
+ init);
+Index: ncurses/base/lib_slkatr_set.c
+Prereq: 1.14
+--- ncurses-5.9/ncurses/base/lib_slkatr_set.c 2009-10-24 22:47:03.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_slkatr_set.c 2014-02-01 22:10:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -38,12 +38,12 @@
+ */
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_slkatr_set.c,v 1.14 2009/10/24 22:47:03 tom Exp $")
++MODULE_ID("$Id: lib_slkatr_set.c,v 1.15 2014/02/01 22:10:42 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(slk_attr_set) (NCURSES_SP_DCLx
+ const attr_t attr,
+- short color_pair_number,
++ NCURSES_PAIRS_T color_pair_number,
+ void *opts)
+ {
+ int code = ERR;
+@@ -51,7 +51,7 @@
+ T((T_CALLED("slk_attr_set(%p,%s,%d)"),
+ (void *) SP_PARM,
+ _traceattr(attr),
+- color_pair_number));
++ (int) color_pair_number));
+
+ if (SP_PARM != 0
+ && SP_PARM->_slk != 0
+@@ -71,7 +71,7 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-slk_attr_set(const attr_t attr, short color_pair_number, void *opts)
++slk_attr_set(const attr_t attr, NCURSES_COLOR_T color_pair_number, void *opts)
+ {
+ return NCURSES_SP_NAME(slk_attr_set) (CURRENT_SCREEN, attr,
+ color_pair_number, opts);
+Index: ncurses/base/lib_slkcolor.c
+Prereq: 1.16
+--- ncurses-5.9/ncurses/base/lib_slkcolor.c 2009-10-24 22:12:21.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_slkcolor.c 2014-02-01 22:10:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -38,14 +38,14 @@
+ */
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_slkcolor.c,v 1.16 2009/10/24 22:12:21 tom Exp $")
++MODULE_ID("$Id: lib_slkcolor.c,v 1.17 2014/02/01 22:10:42 tom Exp $")
+
+ NCURSES_EXPORT(int)
+-NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx short color_pair_number)
++NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx NCURSES_PAIRS_T color_pair_number)
+ {
+ int code = ERR;
+
+- T((T_CALLED("slk_color(%p,%d)"), (void *) SP_PARM, color_pair_number));
++ T((T_CALLED("slk_color(%p,%d)"), (void *) SP_PARM, (int) color_pair_number));
+
+ if (SP_PARM != 0
+ && SP_PARM->_slk != 0
+@@ -61,7 +61,7 @@
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-slk_color(short color_pair_number)
++slk_color(NCURSES_PAIRS_T color_pair_number)
+ {
+ return NCURSES_SP_NAME(slk_color) (CURRENT_SCREEN, color_pair_number);
+ }
+Index: ncurses/base/lib_slkrefr.c
+Prereq: 1.26
+--- ncurses-5.9/ncurses/base/lib_slkrefr.c 2010-05-01 19:17:28.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_slkrefr.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -43,7 +43,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_slkrefr.c,v 1.26 2010/05/01 19:17:28 tom Exp $")
++MODULE_ID("$Id: lib_slkrefr.c,v 1.30 2014/03/08 20:32:59 tom Exp $")
+
+ #ifdef USE_TERM_DRIVER
+ #define NumLabels InfoOf(SP_PARM).numlabels
+@@ -97,25 +97,25 @@
+ if (slk->ent[i].visible) {
+ if (numlab > 0 && SLK_STDFMT(fmt)) {
+ #ifdef USE_TERM_DRIVER
+- CallDriver_2(sp, hwlabel, i + 1, slk->ent[i].form_text);
++ CallDriver_2(sp, td_hwlabel, i + 1, slk->ent[i].form_text);
+ #else
+ if (i < num_labels) {
+- TPUTS_TRACE("plab_norm");
+- putp(TPARM_2(plab_norm, i + 1, slk->ent[i].form_text));
++ NCURSES_PUTP2("plab_norm",
++ TPARM_2(plab_norm,
++ i + 1,
++ slk->ent[i].form_text));
+ }
+ #endif
+ } else {
+ if (fmt == 4)
+ slk_paint_info(slk->win);
+ wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
+- if (sp->_slk) {
+- (void) wattrset(slk->win, AttrOf(sp->_slk->attr));
+- }
++ (void) wattrset(slk->win, (int) AttrOf(slk->attr));
+ waddstr(slk->win, slk->ent[i].form_text);
+ /* if we simulate SLK's, it's looking much more
+ natural to use the current ATTRIBUTE also
+ for the label window */
+- (void) wattrset(slk->win, WINDOW_ATTRS(StdScreen(sp)));
++ (void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp)));
+ }
+ }
+ slk->ent[i].dirty = FALSE;
+@@ -125,14 +125,12 @@
+
+ if (numlab > 0) {
+ #ifdef USE_TERM_DRIVER
+- CallDriver_1(sp, hwlabelOnOff, slk->hidden ? FALSE : TRUE);
++ CallDriver_1(sp, td_hwlabelOnOff, slk->hidden ? FALSE : TRUE);
+ #else
+ if (slk->hidden) {
+- TPUTS_TRACE("label_off");
+- putp(label_off);
++ NCURSES_PUTP2("label_off", label_off);
+ } else {
+- TPUTS_TRACE("label_on");
+- putp(label_on);
++ NCURSES_PUTP2("label_on", label_on);
+ }
+ #endif
+ }
+Index: ncurses/base/lib_slkset.c
+Prereq: 1.21
+--- ncurses-5.9/ncurses/base/lib_slkset.c 2010-12-25 23:43:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_slkset.c 2012-12-08 23:09:25.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -44,13 +44,13 @@
+ #endif
+ #endif
+
+-MODULE_ID("$Id: lib_slkset.c,v 1.21 2010/12/25 23:43:58 tom Exp $")
++MODULE_ID("$Id: lib_slkset.c,v 1.24 2012/12/08 23:09:25 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format)
+ {
+ SLK *slk;
+- int offset;
++ int offset = 0;
+ int numchrs;
+ int numcols;
+ int limit;
+@@ -111,13 +111,12 @@
+ slk->ent[i].ent_text[numchrs] = '\0';
+
+ if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
+- (unsigned) (limit +
+- numchrs + 1))
++ (size_t) (limit +
++ numchrs + 1))
+ ) == 0)
+ returnCode(ERR);
+
+ switch (format) {
+- default:
+ case 0: /* left-justified */
+ offset = 0;
+ break;
+@@ -131,16 +130,16 @@
+ if (offset <= 0)
+ offset = 0;
+ else
+- memset(slk->ent[i].form_text, ' ', (unsigned) offset);
++ memset(slk->ent[i].form_text, ' ', (size_t) offset);
+
+ memcpy(slk->ent[i].form_text + offset,
+ slk->ent[i].ent_text,
+- (unsigned) numchrs);
++ (size_t) numchrs);
+
+ if (offset < limit) {
+ memset(slk->ent[i].form_text + offset + numchrs,
+ ' ',
+- (unsigned) (limit - (offset + numcols)));
++ (size_t) (limit - (offset + numcols)));
+ }
+
+ slk->ent[i].form_text[numchrs - numcols + limit] = 0;
+Index: ncurses/base/lib_touch.c
+Prereq: 1.11
+--- ncurses-5.9/ncurses/base/lib_touch.c 2010-12-19 01:22:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_touch.c 2012-06-09 20:29:33.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -43,7 +43,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_touch.c,v 1.11 2010/12/19 01:22:58 tom Exp $")
++MODULE_ID("$Id: lib_touch.c,v 1.12 2012/06/09 20:29:33 tom Exp $")
+
+ NCURSES_EXPORT(bool)
+ is_linetouched(WINDOW *win, int line)
+@@ -84,7 +84,7 @@
+ for (i = y; i < y + n; i++) {
+ if (i > win->_maxy)
+ break;
+- win->_line[i].firstchar = changed ? 0 : _NOCHANGE;
++ win->_line[i].firstchar = (NCURSES_SIZE_T) (changed ? 0 : _NOCHANGE);
+ win->_line[i].lastchar = (NCURSES_SIZE_T) (changed
+ ? win->_maxx
+ : _NOCHANGE);
+Index: ncurses/base/lib_ungetch.c
+Prereq: 1.14
+--- ncurses-5.9/ncurses/base/lib_ungetch.c 2009-10-24 22:12:21.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/lib_ungetch.c 2012-08-04 17:38:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_ungetch.c,v 1.14 2009/10/24 22:12:21 tom Exp $")
++MODULE_ID("$Id: lib_ungetch.c,v 1.16 2012/08/04 17:38:53 tom Exp $")
+
+ #include <fifo_defs.h>
+
+@@ -64,13 +64,14 @@
+
+ T((T_CALLED("ungetch(%p,%s)"), (void *) sp, _nc_tracechar(sp, ch)));
+
+- if (tail != -1) {
+- if (head == -1) {
++ if (sp != 0 && tail >= 0) {
++ if (head < 0) {
+ head = 0;
+ t_inc();
+ peek = tail; /* no raw keys */
+- } else
++ } else {
+ h_dec();
++ }
+
+ sp->_fifo[head] = ch;
+ T(("ungetch %s ok", _nc_tracechar(sp, ch)));
+Index: ncurses/base/resizeterm.c
+Prereq: 1.43
+--- ncurses-5.9/ncurses/base/resizeterm.c 2011-01-10 01:34:49.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/resizeterm.c 2014-10-13 08:56:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -45,7 +45,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: resizeterm.c,v 1.43 2011/01/10 01:34:49 tom Exp $")
++MODULE_ID("$Id: resizeterm.c,v 1.47 2014/10/13 08:56:49 tom Exp $")
+
+ /*
+ * If we're trying to be reentrant, do not want any local statics.
+@@ -347,7 +347,7 @@
+ (SP_PARM == 0) ? -1 : screen_lines(SP_PARM),
+ (SP_PARM == 0) ? -1 : screen_columns(SP_PARM)));
+
+- if (SP_PARM == 0) {
++ if (SP_PARM == 0 || ToLines <= 0 || ToCols <= 0) {
+ returnCode(ERR);
+ }
+
+@@ -365,58 +365,71 @@
+ }
+ #endif
+ if (ToLines > screen_lines(SP_PARM)) {
+- increase_size(NCURSES_SP_ARGx
+- myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
++ result = increase_size(NCURSES_SP_ARGx
++ myLines = ToLines,
++ myCols,
++ was_stolen EXTRA_ARGS);
+ CurLines = myLines;
+ CurCols = myCols;
+ }
+
+- if (ToCols > screen_columns(SP_PARM)) {
+- increase_size(NCURSES_SP_ARGx
+- myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
++ if ((result == OK)
++ && (ToCols > screen_columns(SP_PARM))) {
++ result = increase_size(NCURSES_SP_ARGx
++ myLines,
++ myCols = ToCols,
++ was_stolen EXTRA_ARGS);
+ CurLines = myLines;
+ CurCols = myCols;
+ }
+
+- if (ToLines < myLines ||
+- ToCols < myCols) {
+- decrease_size(NCURSES_SP_ARGx ToLines, ToCols, was_stolen EXTRA_ARGS);
++ if ((result == OK)
++ && (ToLines < myLines ||
++ ToCols < myCols)) {
++ result = decrease_size(NCURSES_SP_ARGx
++ ToLines,
++ ToCols,
++ was_stolen EXTRA_ARGS);
+ }
+
+- screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines;
+- screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols;
++ if (result == OK) {
++ screen_lines(SP_PARM) = (NCURSES_SIZE_T) ToLines;
++ screen_columns(SP_PARM) = (NCURSES_SIZE_T) ToCols;
+
+ #ifdef USE_TERM_DRIVER
+- CallDriver_2(SP_PARM, setsize, ToLines, ToCols);
++ CallDriver_2(SP_PARM, td_setsize, ToLines, ToCols);
+ #else
+- lines = (NCURSES_SIZE_T) ToLines;
+- columns = (NCURSES_SIZE_T) ToCols;
++ lines = (NCURSES_SIZE_T) ToLines;
++ columns = (NCURSES_SIZE_T) ToCols;
+ #endif
+
+- SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen);
++ SP_PARM->_lines_avail = (NCURSES_SIZE_T) (ToLines - was_stolen);
+
+- if (SP_PARM->oldhash) {
+- FreeAndNull(SP_PARM->oldhash);
+- }
+- if (SP_PARM->newhash) {
+- FreeAndNull(SP_PARM->newhash);
+- }
++ if (SP_PARM->oldhash) {
++ FreeAndNull(SP_PARM->oldhash);
++ }
++ if (SP_PARM->newhash) {
++ FreeAndNull(SP_PARM->newhash);
++ }
+ #ifdef TRACE
+- if (USE_TRACEF(TRACE_UPDATE)) {
+- SET_LINES(ToLines - was_stolen);
+- SET_COLS(ToCols);
+- show_window_sizes("after");
+- _nc_unlock_global(tracef);
+- }
++ if (USE_TRACEF(TRACE_UPDATE)) {
++ SET_LINES(ToLines - was_stolen);
++ SET_COLS(ToCols);
++ show_window_sizes("after");
++ _nc_unlock_global(tracef);
++ }
+ #endif
++ }
+ }
+
+- /*
+- * Always update LINES, to allow for call from lib_doupdate.c which
+- * needs to have the count adjusted by the stolen (ripped off) lines.
+- */
+- SET_LINES(ToLines - was_stolen);
+- SET_COLS(ToCols);
++ if (result == OK) {
++ /*
++ * Always update LINES, to allow for call from lib_doupdate.c which
++ * needs to have the count adjusted by the stolen (ripped off) lines.
++ */
++ SET_LINES(ToLines - was_stolen);
++ SET_COLS(ToCols);
++ }
+
+ _nc_nonsp_unlock_global(curses);
+
+@@ -453,7 +466,7 @@
+ (SP_PARM == 0) ? -1 : screen_lines(SP_PARM),
+ (SP_PARM == 0) ? -1 : screen_columns(SP_PARM)));
+
+- if (SP_PARM != 0) {
++ if (SP_PARM != 0 && ToLines > 0 && ToCols > 0) {
+ result = OK;
+ SP_PARM->_sig_winch = FALSE;
+
+@@ -471,7 +484,6 @@
+ result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols);
+
+ #if USE_SIGWINCH
+- safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */
+ clearok(CurScreen(SP_PARM), TRUE); /* screen contents are unknown */
+
+ /* ripped-off lines are a special case: if we did not lengthen
+@@ -501,6 +513,9 @@
+ }
+ #endif
+ }
++#if USE_SIGWINCH
++ safe_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */
++#endif
+ }
+
+ returnCode(result);
+Index: ncurses/base/safe_sprintf.c
+Prereq: 1.24
+--- ncurses-5.9/ncurses/base/safe_sprintf.c 2010-06-05 22:22:27.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/safe_sprintf.c 2013-01-20 01:04:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,13 +27,13 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
++ * Author: Thomas E. Dickey 1997-on *
+ ****************************************************************************/
+
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: safe_sprintf.c,v 1.24 2010/06/05 22:22:27 tom Exp $")
++MODULE_ID("$Id: safe_sprintf.c,v 1.27 2013/01/20 01:04:32 tom Exp $")
+
+ #if USE_SAFE_SPRINTF
+
+@@ -109,12 +109,16 @@
+ } else if (state == Prec) {
+ prec = ival;
+ }
+- sprintf(fmt_arg, "%d", ival);
++ _nc_SPRINTF(fmt_arg,
++ _nc_SLIMIT(sizeof(fmt_arg))
++ "%d", ival);
+ fmt_len += strlen(fmt_arg);
+ if ((format = _nc_doalloc(format, fmt_len)) == 0) {
++ free(buffer);
+ return -1;
+ }
+- strcpy(&format[--f], fmt_arg);
++ --f;
++ _nc_STRCPY(&format[f], fmt_arg, fmt_len - f);
+ f = strlen(format);
+ } else if (isalpha(UChar(*fmt))) {
+ done = TRUE;
+@@ -185,13 +189,13 @@
+ format[f] = '\0';
+ switch (used) {
+ case 'i':
+- sprintf(buffer, format, ival);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, ival);
+ break;
+ case 'f':
+- sprintf(buffer, format, fval);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, fval);
+ break;
+ default:
+- sprintf(buffer, format, pval);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(length) format, pval);
+ break;
+ }
+ len += (int) strlen(buffer);
+Index: ncurses/base/vsscanf.c
+Prereq: 1.18
+--- ncurses-5.9/ncurses/base/vsscanf.c 2004-04-03 20:27:02.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/vsscanf.c 2012-02-22 22:26:58.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2004,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -38,7 +38,7 @@
+
+ #if !HAVE_VSSCANF
+
+-MODULE_ID("$Id: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $")
++MODULE_ID("$Id: vsscanf.c,v 1.20 2012/02/22 22:26:58 tom Exp $")
+
+ #if !(HAVE_VFSCANF || HAVE__DOSCAN)
+
+@@ -293,12 +293,12 @@
+
+ /* add %n, if the format was not that */
+ if (chunk != cAssigned) {
+- strcat(my_fmt, "%n");
++ _nc_STRCAT(my_fmt, "%n", len_fmt);
+ }
+
+ switch (chunk) {
+ case cAssigned:
+- strcat(my_fmt, "%n");
++ _nc_STRCAT(my_fmt, "%n", len_fmt);
+ pointer = &eaten;
+ break;
+ case cInt:
+Index: ncurses/base/wresize.c
+Prereq: 1.34
+--- ncurses-5.9/ncurses/base/wresize.c 2010-06-05 22:36:26.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/base/wresize.c 2011-05-21 18:55:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: wresize.c,v 1.34 2010/06/05 22:36:26 tom Exp $")
++MODULE_ID("$Id: wresize.c,v 1.35 2011/05/21 18:55:07 tom Exp $")
+
+ static int
+ cleanup_lines(struct ldat *data, int length)
+@@ -175,9 +175,10 @@
+ for (col = 0; col <= ToCols; ++col)
+ s[col] = win->_nc_bkgd;
+ }
+- } else {
+- assert(pline != 0);
++ } else if (pline != 0 && pline[win->_pary + row].text != 0) {
+ s = &pline[win->_pary + row].text[win->_parx];
++ } else {
++ s = 0;
+ }
+
+ if_USE_SCROLL_HINTS(new_lines[row].oldindex = row);
+Index: ncurses/build.priv.h
+Prereq: 1.6
+--- ncurses-5.9/ncurses/build.priv.h 2010-05-22 20:30:35.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/build.priv.h 2012-02-22 22:17:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,9 +30,8 @@
+ * Author: Thomas E. Dickey 2010 *
+ ****************************************************************************/
+
+-
+ /*
+- * $Id: build.priv.h,v 1.6 2010/05/22 20:30:35 tom Exp $
++ * $Id: build.priv.h,v 1.9 2012/02/22 22:17:02 tom Exp $
+ *
+ * build.priv.h
+ *
+@@ -83,6 +82,7 @@
+ #define SIZEOF(v) (sizeof(v) / sizeof(v[0]))
+
+ #include <nc_alloc.h>
++#include <nc_string.h>
+
+ /* declare these, to avoid needing term.h */
+ #if BROKEN_LINKER || USE_REENTRANT
+Index: ncurses/curses.priv.h
+Prereq: 1.475
+--- ncurses-5.9/ncurses/curses.priv.h 2011-01-22 21:10:19.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/curses.priv.h 2014-11-01 13:52:34.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+ ****************************************************************************/
+
+ /*
+- * $Id: curses.priv.h,v 1.475 2011/01/22 21:10:19 tom Exp $
++ * $Id: curses.priv.h,v 1.546 2014/11/01 13:52:34 tom Exp $
+ *
+ * curses.priv.h
+ *
+@@ -65,6 +65,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
+
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+@@ -85,6 +86,12 @@
+
+ #include <errno.h>
+
++#if defined __hpux
++# ifndef EILSEQ
++# define EILSEQ 47
++# endif
++#endif
++
+ #ifndef PATH_MAX
+ # if defined(_POSIX_PATH_MAX)
+ # define PATH_MAX _POSIX_PATH_MAX
+@@ -111,6 +118,14 @@
+ #define USE_FUNC_POLL 0
+ #endif
+
++#if HAVE_INTTYPES_H
++# include <inttypes.h>
++#else
++# if HAVE_STDINT_H
++# include <stdint.h>
++# endif
++#endif
++
+ /* include signal.h before curses.h to work-around defect in glibc 2.1.3 */
+ #include <signal.h>
+
+@@ -135,6 +150,15 @@
+ #define USE_EMX_MOUSE 0
+ #endif
+
++/* kLIBC keyboard/mouse support */
++#if defined(__OS2__) && defined(__KLIBC__)
++#define USE_KLIBC_KBD 1
++#define USE_KLIBC_MOUSE 1
++#else
++#define USE_KLIBC_KBD 0
++#define USE_KLIBC_MOUSE 0
++#endif
++
+ #define DEFAULT_MAXCLICK 166
+ #define EV_MAX 8 /* size of mouse circular event queue */
+
+@@ -156,6 +180,18 @@
+ #endif
+
+ /*
++ * When building in the MSYS2 environment, the automatic discovery of
++ * the path separator in configure doesn't work properly. So, if building
++ * for MinGW, we enforce the correct Windows PATH separator
++ */
++#ifdef __MINGW32__
++# ifdef NCURSES_PATHSEP
++# undef NCURSES_PATHSEP
++# endif
++# define NCURSES_PATHSEP ';'
++#endif
++
++/*
+ * If desired, one can configure this, disabling environment variables that
+ * point to custom terminfo/termcap locations.
+ */
+@@ -192,6 +228,18 @@
+ #endif
+
+ /*
++ * Either/both S_ISxxx and/or S_IFxxx are defined in sys/types.h; some systems
++ * lack one or the other.
++ */
++#ifndef S_ISDIR
++#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR)
++#endif
++
++#ifndef S_ISREG
++#define S_ISREG(mode) ((mode & S_IFMT) == S_IFREG)
++#endif
++
++/*
+ * Scroll hints are useless when hashmap is used
+ */
+ #if !USE_SCROLL_HINTS
+@@ -208,6 +256,8 @@
+ #define if_USE_SCROLL_HINTS(stmt) /*nothing*/
+ #endif
+
++#include <nc_string.h>
++
+ /*
+ * Options for terminal drivers, etc...
+ */
+@@ -250,14 +300,6 @@
+ * Structure for palette tables
+ */
+
+-typedef struct
+-{
+- short red, green, blue; /* what color_content() returns */
+- short r, g, b; /* params to init_color() */
+- int init; /* true if we called init_color() */
+-}
+-color_t;
+-
+ #define MAXCOLUMNS 135
+ #define MAXLINES 66
+ #define FIFO_SIZE MAXCOLUMNS+2 /* for nocbreak mode input */
+@@ -272,7 +314,7 @@
+ #undef _XOPEN_SOURCE_EXTENDED
+ #undef _XPG5
+ #define _nc_bkgd _bkgd
+-#define wgetbkgrnd(win, wch) *wch = win->_bkgd
++#define wgetbkgrnd(win, wch) ((*wch = win->_bkgd) != 0 ? OK : ERR)
+ #define wbkgrnd wbkgd
+ #endif
+
+@@ -282,6 +324,14 @@
+
+ #include <curses.h> /* we'll use -Ipath directive to get the right one! */
+
++typedef struct
++{
++ NCURSES_COLOR_T red, green, blue; /* what color_content() returns */
++ NCURSES_COLOR_T r, g, b; /* params to init_color() */
++ int init; /* true if we called init_color() */
++}
++color_t;
++
+ /*
+ * If curses.h did not expose the SCREEN-functions, then we do not need the
+ * parameter in the corresponding unextended functions.
+@@ -312,7 +362,7 @@
+ #define HasTerminal(sp) (((sp) != 0) && (0 != ((sp)->_term)))
+ #define IsValidScreen(sp) (HasTerminal(sp) && !IsPreScreen(sp))
+
+-#if BROKEN_LINKER || USE_REENTRANT
++#if USE_REENTRANT
+ #define CurTerm _nc_prescreen._cur_term
+ #else
+ #define CurTerm cur_term
+@@ -325,6 +375,7 @@
+ #endif
+
+ #include <term.h>
++#include <nc_termios.h>
+
+ /*
+ * Reduce dependency on cur_term global by using terminfo data from SCREEN's
+@@ -341,6 +392,16 @@
+ #include <nc_tparm.h>
+
+ /*
++ * Simplify ifdef's for the "*_ATTR" macros in case italics are not configured.
++ */
++#ifdef A_ITALIC
++#define USE_ITALIC 1
++#else
++#define USE_ITALIC 0
++#define A_ITALIC 0
++#endif
++
++/*
+ * Use these macros internally, to make tracing less verbose. But leave the
+ * option for compiling the tracing into the library.
+ */
+@@ -365,7 +426,7 @@
+ #define if_EXT_COLORS(stmt) stmt
+ #define SetPair(value,p) SetPair2((value).ext_color, AttrOf(value), p)
+ #define SetPair2(c,a,p) c = (p), \
+- a = (unColor2(a) | (A_COLOR & ColorPair(oldColor(c))))
++ a = (unColor2(a) | (A_COLOR & (unsigned) ColorPair(oldColor(c))))
+ #define GetPair(value) GetPair2((value).ext_color, AttrOf(value))
+ #define GetPair2(c,a) ((c) ? (c) : PairNumber(a))
+ #define oldColor(p) (((p) > 255) ? 255 : (p))
+@@ -373,11 +434,7 @@
+ #define SET_WINDOW_PAIR(w,p) (w)->_color = (p)
+ #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b))
+
+-#if NCURSES_SP_FUNCS
+-#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vid_attr)(sp, attr, pair, 0)
+-#else
+-#define VIDATTR(sp,attr,pair) vid_attr(attr, pair, 0)
+-#endif
++#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vid_puts)(NCURSES_SP_ARGx attr, (short) pair, 0, NCURSES_OUTC_FUNC)
+
+ #else /* !NCURSES_EXT_COLORS */
+
+@@ -390,14 +447,14 @@
+ WINDOW_ATTRS(w) |= (A_COLOR & (attr_t) ColorPair(p))
+ #define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b))
+
+-#if NCURSES_SP_FUNCS
+-#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidattr)(sp, attr)
+-#else
+-#define VIDATTR(sp,attr,pair) vidattr(attr)
+-#endif
++#define VIDATTR(sp,attr,pair) NCURSES_SP_NAME(vidputs)(NCURSES_SP_ARGx attr, NCURSES_OUTC_FUNC)
+
+ #endif /* NCURSES_EXT_COLORS */
+
++#define NCURSES_OUTC_FUNC NCURSES_SP_NAME(_nc_outch)
++#define NCURSES_PUTP2(name,value) NCURSES_SP_NAME(_nc_putp)(NCURSES_SP_ARGx name, value)
++#define NCURSES_PUTP2_FLUSH(name,value) NCURSES_SP_NAME(_nc_putp_flush)(NCURSES_SP_ARGx name, value)
++
+ #if NCURSES_NO_PADDING
+ #define GetNoPadding(sp) ((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding)
+ #define SetNoPadding(sp) _nc_set_no_padding(sp)
+@@ -467,6 +524,9 @@
+ # endif
+ # define _declare(name) __extension__ extern __typeof__(name) name
+ # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
++#else
++# undef USE_WEAK_SYMBOLS
++# define USE_WEAK_SYMBOLS 0
+ #endif
+ #endif
+
+@@ -616,6 +676,14 @@
+ #endif
+ } MouseType;
+
++typedef enum {
++ MF_X10 = 0 /* conventional 3-byte format */
++ , MF_SGR1006 /* xterm private mode 1006, SGR-style */
++#ifdef EXP_XTERM_1005
++ , MF_XTERM_1005 /* xterm UTF-8 private mode 1005 */
++#endif
++} MouseFormat;
++
+ /*
+ * Structures for scrolling.
+ */
+@@ -665,6 +733,9 @@
+ #if USE_GPM_SUPPORT
+ #undef buttons /* term.h defines this, and gpm uses it! */
+ #include <gpm.h>
++#if USE_WEAK_SYMBOLS
++weak_symbol(Gpm_Wgetch);
++#endif
+
+ #ifdef HAVE_LIBDL
+ /* link dynamically to GPM */
+@@ -766,17 +837,23 @@
+ #define INIT_TERM_DRIVER() /* nothing */
+ #endif
+
++typedef struct {
++ const char *name;
++ char *value;
++} ITERATOR_VARS;
++
+ /*
+ * Global data which is not specific to a screen.
+ */
+ typedef struct {
++ SIG_ATOMIC_T have_sigtstp;
+ SIG_ATOMIC_T have_sigwinch;
+ SIG_ATOMIC_T cleanup_nested;
+
+ bool init_signals;
+ bool init_screen;
+
+- const char *comp_sourcename;
++ char *comp_sourcename;
+ char *comp_termtype;
+
+ bool have_tic_directory;
+@@ -788,6 +865,7 @@
+
+ char *first_name;
+ char **keyname_table;
++ int init_keyname;
+
+ int slk_format;
+
+@@ -798,6 +876,12 @@
+ int tgetent_index;
+ long tgetent_sequence;
+
++ char *dbd_blob; /* string-heap for dbd_list[] */
++ char **dbd_list; /* distinct places to look for data */
++ int dbd_size; /* length of dbd_list[] */
++ time_t dbd_time; /* cache last updated */
++ ITERATOR_VARS dbd_vars[dbdLAST];
++
+ #ifndef USE_SP_WINDOWLIST
+ WINDOWLIST *_nc_windowlist;
+ #define WindowList(sp) _nc_globals._nc_windowlist
+@@ -891,6 +975,7 @@
+ const char *_tputs_trace;
+ #endif
+ #endif
++ bool use_tioctl;
+ } NCURSES_PRESCREEN;
+
+ /*
+@@ -911,11 +996,13 @@
+ */
+
+ struct screen {
+- int _ifd; /* input file ptr for screen */
++ int _ifd; /* input file descriptor for screen */
++ int _ofd; /* output file descriptor for screen */
+ FILE *_ofp; /* output file ptr for screen */
+- char *_setbuf; /* buffered I/O for output */
++ char *out_buffer; /* output buffer */
++ size_t out_limit; /* output buffer size */
++ size_t out_inuse; /* output buffer current use */
+ bool _filtered; /* filter() was called */
+- bool _buffered; /* setvbuf uses _setbuf data */
+ bool _prescreen; /* is in prescreen phase */
+ bool _use_env; /* LINES & COLS from environment? */
+ int _checkfd; /* filedesc for typeahead check */
+@@ -1015,6 +1102,7 @@
+ int _pair_count; /* count of color pairs */
+ int _pair_limit; /* actual limit of color-pairs */
+ #if NCURSES_EXT_FUNCS
++ bool _assumed_color; /* use assumed colors */
+ bool _default_color; /* use default colors */
+ bool _has_sgr_39_49; /* has ECMA default color support */
+ int _default_fg; /* assumed default foreground */
+@@ -1031,6 +1119,13 @@
+ /* used in lib_vidattr.c */
+ bool _use_rmso; /* true if we may use 'rmso' */
+ bool _use_rmul; /* true if we may use 'rmul' */
++#if USE_ITALIC
++ bool _use_ritm; /* true if we may use 'ritm' */
++#endif
++
++#if USE_KLIBC_KBD
++ bool _extended_key; /* true if an extended key */
++#endif
+
+ /*
+ * These data correspond to the state of the idcok() and idlok()
+@@ -1055,7 +1150,10 @@
+ void (*_mouse_wrap) (SCREEN *);
+ int _mouse_fd; /* file-descriptor, if any */
+ bool _mouse_active; /* true if initialized */
+- mmask_t _mouse_mask;
++ mmask_t _mouse_mask; /* set via mousemask() */
++ mmask_t _mouse_mask2; /* OR's in press/release bits */
++ mmask_t _mouse_bstate;
++ MouseFormat _mouse_format; /* type of xterm mouse protocol */
+ NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */
+ MEVENT _mouse_events[EV_MAX]; /* hold the last mouse event seen */
+ MEVENT *_mouse_eventp; /* next free slot in event queue */
+@@ -1102,6 +1200,7 @@
+ */
+ #if USE_SIZECHANGE
+ int (*_resize)(NCURSES_SP_DCLx int y, int x);
++ int (*_ungetch)(SCREEN *, int);
+ #endif
+
+ /*
+@@ -1120,7 +1219,6 @@
+ int *_oldnum_list;
+ int _oldnum_size;
+
+- bool _cleanup; /* cleanup after int/quit signal */
+ NCURSES_SP_OUTC _outch; /* output handler if not putc */
+
+ int _legacy_coding; /* see use_legacy_coding() */
+@@ -1158,7 +1256,10 @@
+ * UTF-8, but do not permit ACS at the same time (see tty_update.c).
+ */
+ bool _screen_acs_fix;
++ bool _screen_unicode;
+ #endif
++
++ bool _use_tioctl;
+ };
+
+ extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
+@@ -1168,7 +1269,7 @@
+ WINDOWLIST *next;
+ SCREEN *screen; /* screen containing the window */
+ WINDOW win; /* WINDOW_EXT() needs to account for offset */
+-#ifdef NCURSES_WIDECHAR
++#if NCURSES_WIDECHAR
+ char addch_work[(MB_LEN_MAX * 9) + 1];
+ unsigned addch_used; /* number of bytes in addch_work[] */
+ int addch_x; /* x-position for addch_work[] */
+@@ -1189,7 +1290,7 @@
+ sp->_endwin = TRUE; \
+ sp->_cursor = -1; \
+ WindowList(sp) = 0; \
+- sp->_outch = NCURSES_SP_NAME(_nc_outch); \
++ sp->_outch = NCURSES_OUTC_FUNC; \
+ sp->jump = 0 \
+
+ /* usually in <limits.h> */
+@@ -1267,8 +1368,8 @@
+
+ #define UChar(c) ((unsigned char)(c))
+ #define UShort(c) ((unsigned short)(c))
+-#define ChCharOf(c) ((c) & (chtype)A_CHARTEXT)
+-#define ChAttrOf(c) ((c) & (chtype)A_ATTRIBUTES)
++#define ChCharOf(c) ((chtype)(c) & (chtype)A_CHARTEXT)
++#define ChAttrOf(c) ((chtype)(c) & (chtype)A_ATTRIBUTES)
+
+ #ifndef MB_LEN_MAX
+ #define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
+@@ -1322,9 +1423,9 @@
+ #define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \
+ mbstate_t PUT_st; wchar_t PUTC_ch
+ #define PUTC_INIT init_mb (PUT_st)
+-#define PUTC(ch,b) do { if(!isWidecExt(ch)) { \
++#define PUTC(ch) do { if(!isWidecExt(ch)) { \
+ if (Charable(ch)) { \
+- fputc(CharOf(ch), b); \
++ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \
+ COUNT_OUTCHARS(1); \
+ } else { \
+ PUTC_INIT; \
+@@ -1336,10 +1437,14 @@
+ (ch).chars[PUTC_i], &PUT_st); \
+ if (PUTC_n <= 0) { \
+ if (PUTC_ch && is8bits(PUTC_ch) && PUTC_i == 0) \
+- putc(PUTC_ch,b); \
++ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx CharOf(ch)); \
+ break; \
++ } else { \
++ int PUTC_j; \
++ for (PUTC_j = 0; PUTC_j < PUTC_n; ++PUTC_j) { \
++ NCURSES_OUTC_FUNC (NCURSES_SP_ARGx PUTC_buf[PUTC_j]); \
++ } \
+ } \
+- IGNORE_RC(fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b)); \
+ } \
+ COUNT_OUTCHARS(PUTC_i); \
+ } } } while (0)
+@@ -1362,11 +1467,11 @@
+ AttrOf(dst) |= (attr_t) (ext + 1)
+
+ #define if_WIDEC(code) code
+-#define Charable(ch) ((SP_PARM != 0 && SP_PARM->_legacy_coding) \
++#define Charable(ch) (((SP_PARM->_legacy_coding) \
+ || (AttrOf(ch) & A_ALTCHARSET) \
+- || (!isWidecExt(ch) && \
++ || (!isWidecExt(ch))) && \
+ (ch).chars[1] == L'\0' && \
+- _nc_is_charable(CharOf(ch))))
++ _nc_is_charable(CharOf(ch)))
+
+ #define L(ch) L ## ch
+ #else /* }{ */
+@@ -1383,8 +1488,8 @@
+ #define CHDEREF(wch) wch
+ #define ARG_CH_T NCURSES_CH_T
+ #define CARG_CH_T NCURSES_CH_T
+-#define PUTC_DATA int data = 0
+-#define PUTC(ch,b) do { data = CharOf(ch); putc(data,b); } while (0)
++#define PUTC_DATA /* nothing */
++#define PUTC(ch) NCURSES_OUTC_FUNC (NCURSES_SP_ARGx (int) ch)
+
+ #define BLANK (' '|A_NORMAL)
+ #define ZEROS ('\0'|A_NORMAL)
+@@ -1412,25 +1517,25 @@
+
+ #define CHANGED_CELL(line,col) \
+ if (line->firstchar == _NOCHANGE) \
+- line->firstchar = line->lastchar = (NCURSES_SIZE_T) col; \
++ line->firstchar = line->lastchar = (NCURSES_SIZE_T) (col); \
+ else if ((col) < line->firstchar) \
+- line->firstchar = (NCURSES_SIZE_T) col; \
++ line->firstchar = (NCURSES_SIZE_T) (col); \
+ else if ((col) > line->lastchar) \
+- line->lastchar = (NCURSES_SIZE_T) col
++ line->lastchar = (NCURSES_SIZE_T) (col)
+
+ #define CHANGED_RANGE(line,start,end) \
+ if (line->firstchar == _NOCHANGE \
+ || line->firstchar > (start)) \
+- line->firstchar = (NCURSES_SIZE_T) start; \
++ line->firstchar = (NCURSES_SIZE_T) (start); \
+ if (line->lastchar == _NOCHANGE \
+ || line->lastchar < (end)) \
+- line->lastchar = (NCURSES_SIZE_T) end
++ line->lastchar = (NCURSES_SIZE_T) (end)
+
+ #define CHANGED_TO_EOL(line,start,end) \
+ if (line->firstchar == _NOCHANGE \
+ || line->firstchar > (start)) \
+- line->firstchar = (NCURSES_SIZE_T) start; \
+- line->lastchar = (NCURSES_SIZE_T) end
++ line->firstchar = (NCURSES_SIZE_T) (start); \
++ line->lastchar = (NCURSES_SIZE_T) (end)
+
+ #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
+
+@@ -1444,6 +1549,20 @@
+ #include <nc_alloc.h>
+
+ /*
++ * Use these for tic/infocmp malloc failures. Generally the ncurses library
++ * tries to limp along after a failure.
++ */
++#define TYPE_MALLOC(type, size, name) \
++ name = typeMalloc(type, size); \
++ if (name == 0) \
++ _nc_err_abort(MSG_NO_MEMORY)
++
++#define TYPE_REALLOC(type, size, name) \
++ name = typeRealloc(type, size, name); \
++ if (name == 0) \
++ _nc_err_abort(MSG_NO_MEMORY)
++
++/*
+ * TTY bit definition for converting tabs to spaces.
+ */
+ #ifdef TAB3
+@@ -1506,7 +1625,8 @@
+
+ #define TR(n, a) if (USE_TRACEF(n)) _nc_locked_tracef a
+ #define T(a) TR(TRACE_CALLS, a)
+-#define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
++#define TRACE_RETURN(value,type) return _nc_retrace_##type((type)(value))
++#define TRACE_RETURN1(value,dst) return _nc_retrace_##dst(value)
+ #define TRACE_RETURN2(value,dst,src) return _nc_retrace_##dst##_##src(value)
+ #define TRACE_RETURN_SP(value,type) return _nc_retrace_##type(SP_PARM, value)
+
+@@ -1515,20 +1635,20 @@
+ #define returnAttr(code) TRACE_RETURN(code,attr_t)
+ #define returnBits(code) TRACE_RETURN(code,unsigned)
+ #define returnBool(code) TRACE_RETURN(code,bool)
+-#define returnCPtr(code) TRACE_RETURN(code,cptr)
+-#define returnCVoidPtr(code) TRACE_RETURN(code,cvoid_ptr)
++#define returnCPtr(code) TRACE_RETURN1(code,cptr)
++#define returnCVoidPtr(code) TRACE_RETURN1(code,cvoid_ptr)
+ #define returnChar(code) TRACE_RETURN(code,char)
+ #define returnChtype(code) TRACE_RETURN(code,chtype)
+ #define returnCode(code) TRACE_RETURN(code,int)
+ #define returnIntAttr(code) TRACE_RETURN2(code,int,attr_t)
+ #define returnMMask(code) TRACE_RETURN_SP(code,mmask_t)
+-#define returnPtr(code) TRACE_RETURN(code,ptr)
+-#define returnSP(code) TRACE_RETURN(code,sp)
++#define returnPtr(code) TRACE_RETURN1(code,ptr)
++#define returnSP(code) TRACE_RETURN1(code,sp)
+ #define returnVoid T((T_RETURN(""))); return
+-#define returnVoidPtr(code) TRACE_RETURN(code,void_ptr)
+-#define returnWin(code) TRACE_RETURN(code,win)
++#define returnVoidPtr(code) TRACE_RETURN1(code,void_ptr)
++#define returnWin(code) TRACE_RETURN1(code,win)
+
+-extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (NCURSES_BOOL);
++extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (int);
+ extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);
+ extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *);
+ extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *);
+@@ -1539,7 +1659,7 @@
+ extern NCURSES_EXPORT(chtype) _nc_retrace_chtype (chtype);
+ extern NCURSES_EXPORT(const char *) _nc_altcharset_name(attr_t, chtype);
+ extern NCURSES_EXPORT(const char *) _nc_retrace_cptr (const char *);
+-extern NCURSES_EXPORT(char) _nc_retrace_char (char);
++extern NCURSES_EXPORT(char) _nc_retrace_char (int);
+ extern NCURSES_EXPORT(int) _nc_retrace_int (int);
+ extern NCURSES_EXPORT(int) _nc_retrace_int_attr_t (attr_t);
+ extern NCURSES_EXPORT(mmask_t) _nc_retrace_mmask_t (SCREEN *, mmask_t);
+@@ -1619,7 +1739,9 @@
+ NCURSES_EXPORT(void) name (void) { }
+
+ #define ALL_BUT_COLOR ((chtype)~(A_COLOR))
+-#define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)
++#define NONBLANK_ATTR (A_BOLD | A_DIM | A_BLINK | A_ITALIC)
++#define TPARM_ATTR (A_STANDOUT | A_UNDERLINE | A_REVERSE | A_BLINK | A_DIM | A_BOLD | A_ALTCHARSET | A_INVIS | A_PROTECT)
++#define XMC_CONFLICT (A_STANDOUT | A_UNDERLINE | A_REVERSE | A_BLINK | A_DIM | A_BOLD | A_INVIS | A_PROTECT | A_ITALIC)
+ #define XMC_CHANGES(c) ((c) & SP_PARM->_xmc_suppress)
+
+ #define toggle_attr_on(S,at) {\
+@@ -1795,6 +1917,8 @@
+ /* lib_mvcur.c */
+ #define INFINITY 1000000 /* cost: too high to use */
+
++extern NCURSES_EXPORT(int) _nc_mvcur(int yold, int xold, int ynew, int xnew);
++
+ extern NCURSES_EXPORT(void) _nc_mvcur_init (void);
+ extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);
+ extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);
+@@ -1816,12 +1940,31 @@
+ extern NCURSES_EXPORT(char *) _nc_get_locale(void);
+ extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
+ extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(TERMINAL *);
+-extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
+-extern NCURSES_EXPORT(void) _nc_tinfo_cmdch(TERMINAL *, char);
++extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, int);
++extern NCURSES_EXPORT(void) _nc_tinfo_cmdch(TERMINAL *, int);
+
+ /* lib_set_term.c */
+ extern NCURSES_EXPORT(int) _nc_ripoffline(int, int(*)(WINDOW*, int));
+
++/* lib_setup.c */
++#define ret_error(code, fmt, arg) if (errret) {\
++ *errret = code;\
++ returnCode(ERR);\
++ } else {\
++ fprintf(stderr, fmt, arg);\
++ exit(EXIT_FAILURE);\
++ }
++
++#define ret_error1(code, fmt, arg) ret_error(code, "'%s': " fmt, arg)
++
++#define ret_error0(code, msg) if (errret) {\
++ *errret = code;\
++ returnCode(ERR);\
++ } else {\
++ fprintf(stderr, msg);\
++ exit(EXIT_FAILURE);\
++ }
++
+ /* lib_tstp.c */
+ #if USE_SIGWINCH
+ extern NCURSES_EXPORT(int) _nc_handle_sigwinch(SCREEN *);
+@@ -1871,20 +2014,22 @@
+ extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *);
+ extern NCURSES_EXPORT(char *) _nc_tracechar (SCREEN *, int);
+ extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *);
++extern NCURSES_EXPORT(char *) _nc_trace_mmask_t (SCREEN *, mmask_t);
+ 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 *);
+-extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, bool);
++extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, int);
+ extern NCURSES_EXPORT(int) _nc_ospeed (int);
+ extern NCURSES_EXPORT(int) _nc_outch (int);
++extern NCURSES_EXPORT(int) _nc_putchar (int);
+ extern NCURSES_EXPORT(int) _nc_putp(const char *, const char *);
+ extern NCURSES_EXPORT(int) _nc_putp_flush(const char *, const char *);
+ extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);
+-extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int);
+ extern NCURSES_EXPORT(int) _nc_setup_tinfo(const char *, TERMTYPE *);
++extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, int, int);
+ extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
+-extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, NCURSES_OUTC);
++extern NCURSES_EXPORT(void) _nc_do_color (int, int, int, NCURSES_OUTC);
+ extern NCURSES_EXPORT(void) _nc_flush (void);
+ extern NCURSES_EXPORT(void) _nc_free_and_exit (int) GCC_NORETURN;
+ extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *);
+@@ -1895,8 +2040,9 @@
+ extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
+ extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);
+ extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);
+-extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
+-extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
++extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, int);
++extern NCURSES_EXPORT(void) _nc_setenv_num (const char *, int);
++extern NCURSES_EXPORT(void) _nc_signal_handler (int);
+ extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
+ extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *);
+
+@@ -1905,7 +2051,9 @@
+ extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_codes_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_comp_captab_leaks(void);
++extern NCURSES_EXPORT(void) _nc_comp_error_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
++extern NCURSES_EXPORT(void) _nc_db_iterator_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_keyname_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_names_leaks(void);
+ extern NCURSES_EXPORT(void) _nc_tgetent_leaks(void);
+@@ -1914,7 +2062,7 @@
+ #if !(defined(USE_TERMLIB) || defined(USE_BUILD_CC))
+ extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+ extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);
+-extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, NCURSES_SIZE_T const, NCURSES_SIZE_T const, NCURSES_CH_T);
++extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, int const, int const, NCURSES_CH_T);
+ #endif
+
+ #if USE_WIDEC_SUPPORT
+@@ -1946,8 +2094,26 @@
+ * Wide-character macros to hide some platform-differences.
+ */
+ #if USE_WIDEC_SUPPORT
++
++#if defined(__MINGW32__)
++/*
++ * MinGW has wide-character functions, but they do not work correctly.
++ */
++
++extern int __MINGW_NOTHROW _nc_wctomb(char *, wchar_t);
++#define wctomb(s,wc) _nc_wctomb(s,wc)
++#define wcrtomb(s,wc,n) _nc_wctomb(s,wc)
++
++extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *, const char *, size_t);
++#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n)
++
++extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t);
++#define mblen(s,n) _nc_mblen(s, n)
++
++#endif /* __MINGW32__ */
++
+ #if HAVE_MBTOWC && HAVE_MBLEN
+-#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0))
++#define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0))
+ #define count_mbytes(buffer,length,state) mblen(buffer,length)
+ #define check_mbytes(wch,buffer,length,state) \
+ (int) mbtowc(&wch, buffer, length)
+@@ -1960,7 +2126,8 @@
+ #else
+ make an error
+ #endif
+-#endif
++
++#endif /* USE_WIDEC_SUPPORT */
+
+ /*
+ * Not everyone has vsscanf(), but we'd like to use it for scanw().
+@@ -1974,8 +2141,6 @@
+
+ #define USE_SETBUF_0 0
+
+-#define NC_BUFFERED(sp,flag) NCURSES_SP_NAME(_nc_set_buffer)(NCURSES_SP_ARGx sp->_ofp, flag)
+-
+ #define NC_OUTPUT(sp) ((sp != 0) ? sp->_ofp : stdout)
+
+ /*
+@@ -2049,16 +2214,15 @@
+
+ #define SetSafeOutcWrapper(outc) \
+ SCREEN* sp = CURRENT_SCREEN; \
++ struct screen outc_wrapper; \
+ if (sp==0) { \
+- struct screen dummy; \
+- sp = &dummy; \
++ sp = &outc_wrapper; \
+ memset(sp,0,sizeof(struct screen)); \
+ sp->_outch = _nc_outc_wrapper; \
+ }\
+ sp->jump = outc
+
+ #ifdef USE_TERM_DRIVER
+-typedef void* TERM_HANDLE;
+
+ typedef struct _termInfo
+ {
+@@ -2084,48 +2248,47 @@
+
+ typedef struct term_driver {
+ bool isTerminfo;
+- bool (*CanHandle)(struct DriverTCB*,const char*,int*);
+- void (*init)(struct DriverTCB*);
+- void (*release)(struct DriverTCB*);
+- int (*size)(struct DriverTCB*, int* Line, int *Cols);
+- int (*sgmode)(struct DriverTCB*, bool setFlag, TTY*);
+- chtype (*conattr)(struct DriverTCB*);
+- int (*hwcur)(struct DriverTCB*, int yold, int xold, int y, int x);
+- int (*mode)(struct DriverTCB*, bool progFlag, bool defFlag);
+- bool (*rescol)(struct DriverTCB*);
+- bool (*rescolors)(struct DriverTCB*);
+- void (*color)(struct DriverTCB*,bool fore, int color, int(*)(SCREEN*,int));
+- int (*doBeepOrFlash)(struct DriverTCB*, bool);
+- void (*initpair)(struct DriverTCB*,short,short,short);
+- void (*initcolor)(struct DriverTCB*,short,short,short,short);
+- void (*docolor)(struct DriverTCB*,short,short,bool,int(*)(SCREEN*,int));
+- void (*initmouse)(struct DriverTCB*);
+- int (*testmouse)(struct DriverTCB*,int);
+- void (*setfilter)(struct DriverTCB*);
+- void (*hwlabel)(struct DriverTCB*,int,char*);
+- void (*hwlabelOnOff)(struct DriverTCB*,bool);
+- int (*update)(struct DriverTCB*);
+- int (*defaultcolors)(struct DriverTCB*,int,int);
+- int (*print)(struct DriverTCB*,char*,int);
+- int (*getsize)(struct DriverTCB*,int*,int*);
+- int (*setsize)(struct DriverTCB*,int,int);
+- void (*initacs)(struct DriverTCB*,chtype*,chtype*);
+- void (*scinit)(SCREEN *);
+- void (*scexit)(SCREEN *);
+- int (*twait)(struct DriverTCB*,int,int,int* EVENTLIST_2nd(_nc_eventlist*));
+- int (*read)(struct DriverTCB*,int*);
+- int (*nap)(struct DriverTCB*,int);
+- int (*kpad)(struct DriverTCB*, bool);
+- int (*kyOk)(struct DriverTCB*, int, bool);
+- bool (*kyExist)(struct DriverTCB*, int);
++ const char* (*td_name)(struct DriverTCB*);
++ bool (*td_CanHandle)(struct DriverTCB*, const char*, int*);
++ void (*td_init)(struct DriverTCB*);
++ void (*td_release)(struct DriverTCB*);
++ int (*td_size)(struct DriverTCB*, int* Line, int *Cols);
++ int (*td_sgmode)(struct DriverTCB*, int setFlag, TTY*);
++ chtype (*td_conattr)(struct DriverTCB*);
++ int (*td_hwcur)(struct DriverTCB*, int yold, int xold, int y, int x);
++ int (*td_mode)(struct DriverTCB*, int progFlag, int defFlag);
++ bool (*td_rescol)(struct DriverTCB*);
++ bool (*td_rescolors)(struct DriverTCB*);
++ void (*td_color)(struct DriverTCB*, int fore, int color, int(*)(SCREEN*, int));
++ int (*td_doBeepOrFlash)(struct DriverTCB*, int);
++ void (*td_initpair)(struct DriverTCB*, int, int, int);
++ void (*td_initcolor)(struct DriverTCB*, int, int, int, int);
++ void (*td_docolor)(struct DriverTCB*, int, int, int, int(*)(SCREEN*, int));
++ void (*td_initmouse)(struct DriverTCB*);
++ int (*td_testmouse)(struct DriverTCB*, int EVENTLIST_2nd(_nc_eventlist*));
++ void (*td_setfilter)(struct DriverTCB*);
++ void (*td_hwlabel)(struct DriverTCB*, int, char*);
++ void (*td_hwlabelOnOff)(struct DriverTCB*, int);
++ int (*td_update)(struct DriverTCB*);
++ int (*td_defaultcolors)(struct DriverTCB*, int, int);
++ int (*td_print)(struct DriverTCB*, char*, int);
++ int (*td_getsize)(struct DriverTCB*, int*, int*);
++ int (*td_setsize)(struct DriverTCB*, int, int);
++ void (*td_initacs)(struct DriverTCB*, chtype*, chtype*);
++ void (*td_scinit)(SCREEN *);
++ void (*td_scexit)(SCREEN *);
++ int (*td_twait)(struct DriverTCB*, int, int, int* EVENTLIST_2nd(_nc_eventlist*));
++ int (*td_read)(struct DriverTCB*, int*);
++ int (*td_nap)(struct DriverTCB*, int);
++ int (*td_kpad)(struct DriverTCB*, int);
++ int (*td_kyOk)(struct DriverTCB*, int, int);
++ bool (*td_kyExist)(struct DriverTCB*, int);
++ int (*td_cursorSet)(struct DriverTCB*, int);
+ } TERM_DRIVER;
+
+ typedef struct DriverTCB
+ {
+ TERMINAL term; /* needs to be the first Element !!! */
+- TERM_HANDLE inp; /* The input handle of the Terminal */
+- TERM_HANDLE out; /* The output handle of the Terminal in shell mode */
+- TERM_HANDLE hdl; /* The output handle of the Terminal in prog mode */
+ TERM_DRIVER* drv; /* The driver for that Terminal */
+ SCREEN* csp; /* The screen that owns that Terminal */
+ TerminalInfo info; /* Driver independent core capabilities of the Terminal */
+@@ -2166,7 +2329,7 @@
+ #else
+ #define TINFO_HAS_KEY NCURSES_SP_NAME(has_key)
+ #define TINFO_DOUPDATE NCURSES_SP_NAME(doupdate)
+-#define TINFO_MVCUR NCURSES_SP_NAME(mvcur)
++#define TINFO_MVCUR NCURSES_SP_NAME(_nc_mvcur)
+ #endif
+
+ /*
+@@ -2174,7 +2337,7 @@
+ */
+ #ifdef USE_TERM_DRIVER
+ extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, TERMINAL *, int *, int *);
+-extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, NCURSES_CONST char *, int , int *, bool);
++extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, NCURSES_CONST char *, int , int *, int);
+ #define TINFO_GET_SIZE(sp, tp, lp, cp) \
+ _nc_get_screensize(sp, tp, lp, cp)
+ #define TINFO_SET_CURTERM(sp, tp) \
+@@ -2192,20 +2355,44 @@
+ #endif /* !USE_TERM_DRIVER */
+
+ #ifdef USE_TERM_DRIVER
+-#ifdef __MINGW32__
++#if defined(USE_WIN32CON_DRIVER)
+ #include <nc_mingw.h>
+ extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER;
++extern NCURSES_EXPORT(int) _nc_mingw_isatty(int fd);
++extern NCURSES_EXPORT(int) _nc_mingw_isconsole(int fd);
++extern NCURSES_EXPORT(int) _nc_mingw_console_read(
++ SCREEN *sp,
++ HANDLE fd,
++ int *buf);
++extern NCURSES_EXPORT(int) _nc_mingw_testmouse(
++ SCREEN * sp,
++ HANDLE fd,
++ int delay);
++#else
+ #endif
+ extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER;
+ #endif
+
++#if defined(USE_TERM_DRIVER) && defined(USE_WIN32CON_DRIVER)
++#define NC_ISATTY(fd) _nc_mingw_isatty(fd)
++#else
++#define NC_ISATTY(fd) isatty(fd)
++#endif
++
+ #ifdef USE_TERM_DRIVER
+-#define IsTermInfo(sp) (TCBOf(sp) && ((TCBOf(sp)->drv->isTerminfo)))
++# define IsTermInfo(sp) ((TCBOf(sp) != 0) && ((TCBOf(sp)->drv->isTerminfo)))
++# define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp))
++# if defined(USE_WIN32CON_DRIVER)
++# define IsTermInfoOnConsole(sp) (IsTermInfo(sp)&&_nc_mingw_isconsole(TerminalOf(sp)->Filedes))
++#else
++# define IsTermInfoOnConsole(sp) FALSE
++# endif
+ #else
+-#define IsTermInfo(sp) TRUE
++# define IsTermInfo(sp) TRUE
++# define HasTInfoTerminal(sp) (0 != TerminalOf(sp))
++# define IsTermInfoOnConsole(sp) FALSE
+ #endif
+
+-#define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp))
+ #define IsValidTIScreen(sp) (HasTInfoTerminal(sp))
+
+ /*
+@@ -2239,7 +2426,9 @@
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_get_tty_mode)(SCREEN*,TTY*);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_mcprint)(SCREEN*,char*, int);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_msec_cost)(SCREEN*, const char *, int);
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_mvcur)(SCREEN*, int, int, int, int);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_outch)(SCREEN*, int);
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putchar)(SCREEN*, int);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putp)(SCREEN*, const char *, const char*);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_putp_flush)(SCREEN*, const char *, const char *);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_resetty)(SCREEN*);
+@@ -2250,12 +2439,12 @@
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_scr_restore)(SCREEN*, const char*);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_scrolln)(SCREEN*, int, int, int, int);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_set_tty_mode)(SCREEN*, TTY*);
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_setupscreen)(SCREEN**, int, int, FILE *, bool, int);
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_setupscreen)(SCREEN**, int, int, FILE *, int, int);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_tgetent)(SCREEN*,char*,const char *);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_tigetnum)(SCREEN*,NCURSES_CONST char*);
+-extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_vid_attr)(SCREEN *, attr_t, short, void *);
++extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_vid_attr)(SCREEN *, attr_t, NCURSES_COLOR_T, void *);
+ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_vidputs)(SCREEN*,chtype,int(*) (SCREEN*, int));
+-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_color)(SCREEN*, short, short, bool, NCURSES_SP_OUTC);
++extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_color)(SCREEN*, int, int, int, NCURSES_SP_OUTC);
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_do_xmc_glitch)(SCREEN*, attr_t);
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_flush)(SCREEN*);
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
+@@ -2271,7 +2460,7 @@
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_screen_wrap)(SCREEN*);
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_scroll_oldhash)(SCREEN*, int n, int top, int bot);
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_scroll_optimize)(SCREEN*);
+-extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, bool);
++extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, int);
+
+ extern NCURSES_EXPORT(void) _nc_cookie_init(SCREEN *sp);
+
+@@ -2303,6 +2492,11 @@
+
+ #endif
+
++#ifdef EXP_XTERM_1005
++NCURSES_EXPORT(int) _nc_conv_to_utf8(unsigned char *, unsigned, unsigned);
++NCURSES_EXPORT(int) _nc_conv_to_utf32(unsigned *, const char *, unsigned);
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif
+Index: ncurses/fifo_defs.h
+Prereq: 1.6
+--- ncurses-5.9/ncurses/fifo_defs.h 2008-06-28 15:52:32.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/fifo_defs.h 2012-08-04 15:59:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2002,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2008,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+ /*
+ * Common macros for lib_getch.c, lib_ungetch.c
+ *
+- * $Id: fifo_defs.h,v 1.6 2008/06/28 15:52:32 tom Exp $
++ * $Id: fifo_defs.h,v 1.7 2012/08/04 15:59:17 tom Exp $
+ */
+
+ #ifndef FIFO_DEFS_H
+@@ -45,14 +45,42 @@
+ /* peek points to next uninterpreted character */
+ #define peek sp->_fifopeek
+
+-#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
+-#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
+-#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
+-#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear(sp);}
+-#define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;}
++#define h_inc() { \
++ (head >= FIFO_SIZE-1) \
++ ? head = 0 \
++ : head++; \
++ if (head == tail) \
++ head = -1, tail = 0; \
++ }
++#define h_dec() { \
++ (head <= 0) \
++ ? head = FIFO_SIZE-1 \
++ : head--; \
++ if (head == tail) \
++ tail = -1; \
++ }
++#define t_inc() { \
++ (tail >= FIFO_SIZE-1) \
++ ? tail = 0 \
++ : tail++; \
++ if (tail == head) \
++ tail = -1; \
++ }
++#define t_dec() { \
++ (tail <= 0) \
++ ? tail = FIFO_SIZE-1 \
++ : tail--; \
++ if (head == tail) \
++ fifo_clear(sp); \
++ }
++#define p_inc() { \
++ (peek >= FIFO_SIZE-1) \
++ ? peek = 0 \
++ : peek++; \
++ }
+
+-#define cooked_key_in_fifo() ((head != -1) && (peek != head))
+-#define raw_key_in_fifo() ((head != -1) && (peek != tail))
++#define cooked_key_in_fifo() ((head >= 0) && (peek != head))
++#define raw_key_in_fifo() ((head >= 0) && (peek != tail))
+
+ #undef HIDE_EINTR
+
+Index: ncurses/llib-lncurses
+--- ncurses-5.9/ncurses/llib-lncurses 2011-01-08 18:57:00.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/llib-lncurses 2013-12-14 22:09:56.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey 1996-2010,2011 *
++ * Author: Thomas E. Dickey 1996-on *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -95,8 +95,6 @@
+
+ /* ./base/lib_addch.c */
+
+-#include <ctype.h>
+-
+ #undef _nc_render
+ chtype _nc_render(
+ WINDOW *win,
+@@ -219,8 +217,6 @@
+
+ /* ./base/lib_color.c */
+
+-#include <tic.h>
+-
+ #undef COLOR_PAIRS
+ int COLOR_PAIRS;
+ #undef COLORS
+@@ -329,17 +325,17 @@
+ #undef _nc_do_color_sp
+ void _nc_do_color_sp(
+ SCREEN *sp,
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC_sp outc)
+ { /* void */ }
+
+ #undef _nc_do_color
+ void _nc_do_color(
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC outc)
+ { /* void */ }
+
+@@ -418,85 +414,85 @@
+ /* ./lib_gen.c */
+
+ #undef addch
+-int addch(
++int (addch)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef addchnstr
+-int addchnstr(
++int (addchnstr)(
+ const chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addchstr
+-int addchstr(
++int (addchstr)(
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef addnstr
+-int addnstr(
++int (addnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addstr
+-int addstr(
++int (addstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef attroff
+-int attroff(
++int (attroff)(
+ NCURSES_ATTR_T z)
+ { return(*(int *)0); }
+
+ #undef attron
+-int attron(
++int (attron)(
+ NCURSES_ATTR_T z)
+ { return(*(int *)0); }
+
+ #undef attrset
+-int attrset(
++int (attrset)(
+ NCURSES_ATTR_T z)
+ { return(*(int *)0); }
+
+ #undef attr_get
+-int attr_get(
++int (attr_get)(
+ attr_t *a1,
+ short *a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_off
+-int attr_off(
++int (attr_off)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_on
+-int attr_on(
++int (attr_on)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_set
+-int attr_set(
++int (attr_set)(
+ attr_t a1,
+ short a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef bkgd
+-int bkgd(
++int (bkgd)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef bkgdset
+-void bkgdset(
++void (bkgdset)(
+ chtype z)
+ { /* void */ }
+
+ #undef border
+-int border(
++int (border)(
+ chtype a1,
+ chtype a2,
+ chtype a3,
+@@ -508,14 +504,14 @@
+ { return(*(int *)0); }
+
+ #undef box
+-int box(
++int (box)(
+ WINDOW *a1,
+ chtype a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef chgat
+-int chgat(
++int (chgat)(
+ int a1,
+ attr_t a2,
+ short a3,
+@@ -523,137 +519,137 @@
+ { return(*(int *)0); }
+
+ #undef clear
+-int clear(void)
++int (clear)(void)
+ { return(*(int *)0); }
+
+ #undef clrtobot
+-int clrtobot(void)
++int (clrtobot)(void)
+ { return(*(int *)0); }
+
+ #undef clrtoeol
+-int clrtoeol(void)
++int (clrtoeol)(void)
+ { return(*(int *)0); }
+
+ #undef color_set
+-int color_set(
++int (color_set)(
+ short a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef COLOR_PAIR
+-int COLOR_PAIR(
++int (COLOR_PAIR)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef delch
+-int delch(void)
++int (delch)(void)
+ { return(*(int *)0); }
+
+ #undef deleteln
+-int deleteln(void)
++int (deleteln)(void)
+ { return(*(int *)0); }
+
+ #undef echochar
+-int echochar(
++int (echochar)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef erase
+-int erase(void)
++int (erase)(void)
+ { return(*(int *)0); }
+
+ #undef getbkgd
+-chtype getbkgd(
++chtype (getbkgd)(
+ WINDOW *z)
+ { return(*(chtype *)0); }
+
+ #undef getch
+-int getch(void)
++int (getch)(void)
+ { return(*(int *)0); }
+
+ #undef getnstr
+-int getnstr(
++int (getnstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef getstr
+-int getstr(
++int (getstr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef hline
+-int hline(
++int (hline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inch
+-chtype inch(void)
++chtype (inch)(void)
+ { return(*(chtype *)0); }
+
+ #undef inchnstr
+-int inchnstr(
++int (inchnstr)(
+ chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inchstr
+-int inchstr(
++int (inchstr)(
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef innstr
+-int innstr(
++int (innstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insch
+-int insch(
++int (insch)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef insdelln
+-int insdelln(
++int (insdelln)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef insertln
+-int insertln(void)
++int (insertln)(void)
+ { return(*(int *)0); }
+
+ #undef insnstr
+-int insnstr(
++int (insnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insstr
+-int insstr(
++int (insstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef instr
+-int instr(
++int (instr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef move
+-int move(
++int (move)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddch
+-int mvaddch(
++int (mvaddch)(
+ int a1,
+ int a2,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvaddchnstr
+-int mvaddchnstr(
++int (mvaddchnstr)(
+ int a1,
+ int a2,
+ const chtype *a3,
+@@ -661,14 +657,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddchstr
+-int mvaddchstr(
++int (mvaddchstr)(
+ int a1,
+ int a2,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnstr
+-int mvaddnstr(
++int (mvaddnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -676,14 +672,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddstr
+-int mvaddstr(
++int (mvaddstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvchgat
+-int mvchgat(
++int (mvchgat)(
+ int a1,
+ int a2,
+ int a3,
+@@ -693,19 +689,19 @@
+ { return(*(int *)0); }
+
+ #undef mvdelch
+-int mvdelch(
++int (mvdelch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetch
+-int mvgetch(
++int (mvgetch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetnstr
+-int mvgetnstr(
++int (mvgetnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -713,14 +709,14 @@
+ { return(*(int *)0); }
+
+ #undef mvgetstr
+-int mvgetstr(
++int (mvgetstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvhline
+-int mvhline(
++int (mvhline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -728,13 +724,13 @@
+ { return(*(int *)0); }
+
+ #undef mvinch
+-chtype mvinch(
++chtype (mvinch)(
+ int a1,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvinchnstr
+-int mvinchnstr(
++int (mvinchnstr)(
+ int a1,
+ int a2,
+ chtype *a3,
+@@ -742,14 +738,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinchstr
+-int mvinchstr(
++int (mvinchstr)(
+ int a1,
+ int a2,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvinnstr
+-int mvinnstr(
++int (mvinnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -757,14 +753,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinsch
+-int mvinsch(
++int (mvinsch)(
+ int a1,
+ int a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvinsnstr
+-int mvinsnstr(
++int (mvinsnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -772,21 +768,21 @@
+ { return(*(int *)0); }
+
+ #undef mvinsstr
+-int mvinsstr(
++int (mvinsstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvinstr
+-int mvinstr(
++int (mvinstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvvline
+-int mvvline(
++int (mvvline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -794,7 +790,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddch
+-int mvwaddch(
++int (mvwaddch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -802,7 +798,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchnstr
+-int mvwaddchnstr(
++int (mvwaddchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -811,7 +807,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchstr
+-int mvwaddchstr(
++int (mvwaddchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -819,7 +815,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddnstr
+-int mvwaddnstr(
++int (mvwaddnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -828,7 +824,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddstr
+-int mvwaddstr(
++int (mvwaddstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -836,7 +832,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwchgat
+-int mvwchgat(
++int (mvwchgat)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -847,21 +843,21 @@
+ { return(*(int *)0); }
+
+ #undef mvwdelch
+-int mvwdelch(
++int (mvwdelch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetch
+-int mvwgetch(
++int (mvwgetch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetnstr
+-int mvwgetnstr(
++int (mvwgetnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -870,7 +866,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwgetstr
+-int mvwgetstr(
++int (mvwgetstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -878,7 +874,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwhline
+-int mvwhline(
++int (mvwhline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -887,14 +883,14 @@
+ { return(*(int *)0); }
+
+ #undef mvwinch
+-chtype mvwinch(
++chtype (mvwinch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvwinchnstr
+-int mvwinchnstr(
++int (mvwinchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -903,7 +899,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinchstr
+-int mvwinchstr(
++int (mvwinchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -911,7 +907,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinnstr
+-int mvwinnstr(
++int (mvwinnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -920,7 +916,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsch
+-int mvwinsch(
++int (mvwinsch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -928,7 +924,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsnstr
+-int mvwinsnstr(
++int (mvwinsnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -937,7 +933,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsstr
+-int mvwinsstr(
++int (mvwinsstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -945,7 +941,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinstr
+-int mvwinstr(
++int (mvwinstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -953,7 +949,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwvline
+-int mvwvline(
++int (mvwvline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -962,117 +958,117 @@
+ { return(*(int *)0); }
+
+ #undef PAIR_NUMBER
+-int PAIR_NUMBER(
++int (PAIR_NUMBER)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef redrawwin
+-int redrawwin(
++int (redrawwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef refresh
+-int refresh(void)
++int (refresh)(void)
+ { return(*(int *)0); }
+
+ #undef scrl
+-int scrl(
++int (scrl)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef scroll
+-int scroll(
++int (scroll)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef setscrreg
+-int setscrreg(
++int (setscrreg)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef standout
+-int standout(void)
++int (standout)(void)
+ { return(*(int *)0); }
+
+ #undef standend
+-int standend(void)
++int (standend)(void)
+ { return(*(int *)0); }
+
+ #undef timeout
+-void timeout(
++void (timeout)(
+ int z)
+ { /* void */ }
+
+ #undef touchline
+-int touchline(
++int (touchline)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef touchwin
+-int touchwin(
++int (touchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef untouchwin
+-int untouchwin(
++int (untouchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef vline
+-int vline(
++int (vline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vw_printw
+-int vw_printw(
++int (vw_printw)(
+ WINDOW *a1,
+ const char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef vw_scanw
+-int vw_scanw(
++int (vw_scanw)(
+ WINDOW *a1,
+ char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef waddchstr
+-int waddchstr(
++int (waddchstr)(
+ WINDOW *a1,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef waddstr
+-int waddstr(
++int (waddstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef wattron
+-int wattron(
++int (wattron)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattroff
+-int wattroff(
++int (wattroff)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattrset
+-int wattrset(
++int (wattrset)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattr_get
+-int wattr_get(
++int (wattr_get)(
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
+@@ -1080,7 +1076,7 @@
+ { return(*(int *)0); }
+
+ #undef wattr_set
+-int wattr_set(
++int (wattr_set)(
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
+@@ -1088,168 +1084,168 @@
+ { return(*(int *)0); }
+
+ #undef wdeleteln
+-int wdeleteln(
++int (wdeleteln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetstr
+-int wgetstr(
++int (wgetstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef winchstr
+-int winchstr(
++int (winchstr)(
+ WINDOW *a1,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef winsertln
+-int winsertln(
++int (winsertln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef winsstr
+-int winsstr(
++int (winsstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef winstr
+-int winstr(
++int (winstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef wstandout
+-int wstandout(
++int (wstandout)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wstandend
+-int wstandend(
++int (wstandend)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getattrs
+-int getattrs(
++int (getattrs)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcurx
+-int getcurx(
++int (getcurx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcury
+-int getcury(
++int (getcury)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegx
+-int getbegx(
++int (getbegx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegy
+-int getbegy(
++int (getbegy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxx
+-int getmaxx(
++int (getmaxx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxy
+-int getmaxy(
++int (getmaxy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getparx
+-int getparx(
++int (getparx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getpary
+-int getpary(
++int (getpary)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetparent
+-WINDOW *wgetparent(
++WINDOW *(wgetparent)(
+ const WINDOW *z)
+ { return(*(WINDOW **)0); }
+
+ #undef is_cleared
+-NCURSES_BOOL is_cleared(
++NCURSES_BOOL (is_cleared)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idcok
+-NCURSES_BOOL is_idcok(
++NCURSES_BOOL (is_idcok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idlok
+-NCURSES_BOOL is_idlok(
++NCURSES_BOOL (is_idlok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_immedok
+-NCURSES_BOOL is_immedok(
++NCURSES_BOOL (is_immedok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_keypad
+-NCURSES_BOOL is_keypad(
++NCURSES_BOOL (is_keypad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_leaveok
+-NCURSES_BOOL is_leaveok(
++NCURSES_BOOL (is_leaveok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_nodelay
+-NCURSES_BOOL is_nodelay(
++NCURSES_BOOL (is_nodelay)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_notimeout
+-NCURSES_BOOL is_notimeout(
++NCURSES_BOOL (is_notimeout)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_pad
+-NCURSES_BOOL is_pad(
++NCURSES_BOOL (is_pad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_scrollok
+-NCURSES_BOOL is_scrollok(
++NCURSES_BOOL (is_scrollok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_subwin
+-NCURSES_BOOL is_subwin(
++NCURSES_BOOL (is_subwin)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_syncok
+-NCURSES_BOOL is_syncok(
++NCURSES_BOOL (is_syncok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef wgetscrreg
+-int wgetscrreg(
++int (wgetscrreg)(
+ const WINDOW *a1,
+ int *a2,
+ int *z)
+ { return(*(int *)0); }
+
+ #undef mouse_trafo
+-NCURSES_BOOL mouse_trafo(
++NCURSES_BOOL (mouse_trafo)(
+ int *a1,
+ int *a2,
+ NCURSES_BOOL z)
+@@ -1257,8 +1253,6 @@
+
+ /* ./base/lib_getch.c */
+
+-#include <fifo_defs.h>
+-
+ #undef ESCDELAY
+ int ESCDELAY;
+
+@@ -1523,6 +1517,23 @@
+ void _nc_mvcur_wrap(void)
+ { /* void */ }
+
++#undef _nc_mvcur_sp
++int _nc_mvcur_sp(
++ SCREEN *sp,
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
++#undef _nc_mvcur
++int _nc_mvcur(
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
+ #undef mvcur_sp
+ int mvcur_sp(
+ SCREEN *sp,
+@@ -1932,8 +1943,8 @@
+ void _nc_scroll_window(
+ WINDOW *win,
+ int const n,
+- short const top,
+- short const bottom,
++ int const top,
++ int const bottom,
+ chtype blank)
+ { /* void */ }
+
+@@ -1978,7 +1989,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -1987,7 +1998,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -2263,11 +2274,9 @@
+
+ /* ./tty/lib_tstp.c */
+
+-#include <SigAction.h>
+-
+ #undef _nc_signal_handler
+ void _nc_signal_handler(
+- NCURSES_BOOL enable)
++ int enable)
+ { /* void */ }
+
+ /* ./base/lib_ungetch.c */
+@@ -2425,9 +2434,6 @@
+
+ /* ./tty/tty_update.c */
+
+-#include <sys/time.h>
+-#include <sys/times.h>
+-
+ #undef doupdate_sp
+ int doupdate_sp(
+ SCREEN *sp)
+@@ -2504,12 +2510,6 @@
+ va_list ap)
+ { return(*(char **)0); }
+
+-/* ./base/memmove.c */
+-
+-#undef _nc_memmove
+-void _nc_memmove(void)
+- { /* void */ }
+-
+ /* ./base/vsscanf.c */
+
+ #undef _nc_vsscanf
+@@ -2769,7 +2769,7 @@
+ #undef _nc_copy_termtype
+ void _nc_copy_termtype(
+ TERMTYPE *dst,
+- TERMTYPE *src)
++ const TERMTYPE *src)
+ { /* void */ }
+
+ /* ./codes.c */
+@@ -2783,8 +2783,6 @@
+
+ /* ./comp_captab.c */
+
+-#include <hashsize.h>
+-
+ #undef _nc_get_table
+ const struct name_table_entry *_nc_get_table(
+ NCURSES_BOOL termcap)
+@@ -2959,6 +2957,12 @@
+ const char *name)
+ { return(*(int *)0); }
+
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
+ /* ./tinfo/home_terminfo.c */
+
+ #undef _nc_home_terminfo
+@@ -2967,15 +2971,6 @@
+
+ /* ./tinfo/init_keytry.c */
+
+-#if 0
+-
+-#include <init_keytry.h>
+-
+-#undef _nc_tinfo_fkeys
+-const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
+-
+-#endif
+-
+ #undef _nc_init_keytry
+ void _nc_init_keytry(
+ SCREEN *sp)
+@@ -2997,8 +2992,6 @@
+
+ /* ./tinfo/lib_baudrate.c */
+
+-#include <termcap.h>
+-
+ struct speed {
+ int s;
+ int sp;
+@@ -3144,8 +3137,6 @@
+
+ /* ./tinfo/lib_napms.c */
+
+-#include <time.h>
+-
+ #undef napms_sp
+ int napms_sp(
+ SCREEN *sp,
+@@ -3255,7 +3246,7 @@
+ #undef _nc_keypad
+ int _nc_keypad(
+ SCREEN *sp,
+- NCURSES_BOOL flag)
++ int flag)
+ { return(*(int *)0); }
+
+ /* ./tinfo/lib_raw.c */
+@@ -3329,10 +3320,6 @@
+
+ /* ./tinfo/lib_setup.c */
+
+-#include <locale.h>
+-#include <sys/ioctl.h>
+-#include <langinfo.h>
+-
+ #undef ttytype
+ char ttytype[256];
+ #undef LINES
+@@ -3364,11 +3351,22 @@
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef use_env
+ void use_env(
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef _nc_get_screensize
+ void _nc_get_screensize(
+ SCREEN *sp,
+@@ -3390,7 +3388,7 @@
+ #undef _nc_tinfo_cmdch
+ void _nc_tinfo_cmdch(
+ TERMINAL *termp,
+- char proto)
++ int proto)
+ { /* void */ }
+
+ #undef _nc_get_locale
+@@ -3411,7 +3409,7 @@
+ char *tname,
+ int Filedes,
+ int *errret,
+- NCURSES_BOOL reuse)
++ int reuse)
+ { return(*(int *)0); }
+
+ #undef new_prescr
+@@ -3439,12 +3437,6 @@
+ const char *name)
+ { return(*(int *)0); }
+
+-#if 0
+-
+-#include <capdefaults.c>
+-
+-#endif
+-
+ #undef tgetent
+ int tgetent(
+ char *bufp,
+@@ -3550,7 +3542,7 @@
+ int _nc_tparm_analyze(
+ const char *string,
+ char *p_is_s[9],
+- int *popcount)
++ int *_nc_popcount)
+ { return(*(int *)0); }
+
+ #undef tparm
+@@ -3570,7 +3562,7 @@
+ #undef PC
+ char PC;
+ #undef ospeed
+-NCURSES_OSPEED ospeed;
++short ospeed;
+ #undef _nc_nulls_sent
+ int _nc_nulls_sent;
+
+@@ -3610,12 +3602,28 @@
+ int ch)
+ { return(*(int *)0); }
+
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
+ #undef putp_sp
+ int putp_sp(
+ SCREEN *sp,
+ const char *string)
+ { return(*(int *)0); }
+
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
+ #undef _nc_putp_sp
+ int _nc_putp_sp(
+ SCREEN *sp,
+@@ -3623,11 +3631,6 @@
+ const char *string)
+ { return(*(int *)0); }
+
+-#undef putp
+-int putp(
+- const char *string)
+- { return(*(int *)0); }
+-
+ #undef _nc_putp
+ int _nc_putp(
+ const char *name,
+@@ -3678,12 +3681,12 @@
+
+ #undef _nc_retrace_bool
+ NCURSES_BOOL _nc_retrace_bool(
+- NCURSES_BOOL code)
++ int code)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef _nc_retrace_char
+ char _nc_retrace_char(
+- char code)
++ int code)
+ { return(*(char *)0); }
+
+ #undef _nc_retrace_int
+@@ -3917,9 +3920,27 @@
+ #undef strfnames
+ char *const strfnames[] = {0};
+
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
+ /* ./tinfo/read_entry.c */
+
+-#include <hashed_db.h>
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
+
+ #undef _nc_read_termtype
+ int _nc_read_termtype(
+@@ -3943,27 +3964,8 @@
+
+ /* ./tinfo/read_termcap.c */
+
+-#include <sys/types.h>
+-
+-#undef _nc_read_termcap_entry
+-int _nc_read_termcap_entry(
+- const char *const tn,
+- TERMTYPE *const tp)
+- { return(*(int *)0); }
+-
+-/* ./tinfo/setbuf.c */
+-
+-#undef _nc_set_buffer_sp
+-void _nc_set_buffer_sp(
+- SCREEN *sp,
+- FILE *ofp,
+- NCURSES_BOOL buffered)
+- { /* void */ }
+-
+-#undef _nc_set_buffer
+-void _nc_set_buffer(
+- FILE *ofp,
+- NCURSES_BOOL buffered)
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
+ { /* void */ }
+
+ /* ./tinfo/strings.c */
+@@ -4189,6 +4191,8 @@
+
+ #undef _nc_syntax
+ int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
+ #undef _nc_curr_file_pos
+ long _nc_curr_file_pos;
+ #undef _nc_comment_start
+Index: ncurses/llib-lncursest
+--- ncurses-5.9/ncurses/llib-lncursest 2011-01-08 19:03:20.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/llib-lncursest 2013-12-14 22:06:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -332,17 +332,17 @@
+ #undef _nc_do_color_sp
+ void _nc_do_color_sp(
+ SCREEN *sp,
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC_sp outc)
+ { /* void */ }
+
+ #undef _nc_do_color
+ void _nc_do_color(
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC outc)
+ { /* void */ }
+
+@@ -420,86 +420,88 @@
+
+ /* ./lib_gen.c */
+
++#include <ncurses_cfg.h>
++
+ #undef addch
+-int addch(
++int (addch)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef addchnstr
+-int addchnstr(
++int (addchnstr)(
+ const chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addchstr
+-int addchstr(
++int (addchstr)(
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef addnstr
+-int addnstr(
++int (addnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addstr
+-int addstr(
++int (addstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef attroff
+-int attroff(
+- NCURSES_ATTR_T z)
++int (attroff)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attron
+-int attron(
+- NCURSES_ATTR_T z)
++int (attron)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attrset
+-int attrset(
+- NCURSES_ATTR_T z)
++int (attrset)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attr_get
+-int attr_get(
++int (attr_get)(
+ attr_t *a1,
+ short *a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_off
+-int attr_off(
++int (attr_off)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_on
+-int attr_on(
++int (attr_on)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_set
+-int attr_set(
++int (attr_set)(
+ attr_t a1,
+ short a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef bkgd
+-int bkgd(
++int (bkgd)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef bkgdset
+-void bkgdset(
++void (bkgdset)(
+ chtype z)
+ { /* void */ }
+
+ #undef border
+-int border(
++int (border)(
+ chtype a1,
+ chtype a2,
+ chtype a3,
+@@ -511,14 +513,14 @@
+ { return(*(int *)0); }
+
+ #undef box
+-int box(
++int (box)(
+ WINDOW *a1,
+ chtype a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef chgat
+-int chgat(
++int (chgat)(
+ int a1,
+ attr_t a2,
+ short a3,
+@@ -526,137 +528,137 @@
+ { return(*(int *)0); }
+
+ #undef clear
+-int clear(void)
++int (clear)(void)
+ { return(*(int *)0); }
+
+ #undef clrtobot
+-int clrtobot(void)
++int (clrtobot)(void)
+ { return(*(int *)0); }
+
+ #undef clrtoeol
+-int clrtoeol(void)
++int (clrtoeol)(void)
+ { return(*(int *)0); }
+
+ #undef color_set
+-int color_set(
++int (color_set)(
+ short a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef COLOR_PAIR
+-int COLOR_PAIR(
++int (COLOR_PAIR)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef delch
+-int delch(void)
++int (delch)(void)
+ { return(*(int *)0); }
+
+ #undef deleteln
+-int deleteln(void)
++int (deleteln)(void)
+ { return(*(int *)0); }
+
+ #undef echochar
+-int echochar(
++int (echochar)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef erase
+-int erase(void)
++int (erase)(void)
+ { return(*(int *)0); }
+
+ #undef getbkgd
+-chtype getbkgd(
++chtype (getbkgd)(
+ WINDOW *z)
+ { return(*(chtype *)0); }
+
+ #undef getch
+-int getch(void)
++int (getch)(void)
+ { return(*(int *)0); }
+
+ #undef getnstr
+-int getnstr(
++int (getnstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef getstr
+-int getstr(
++int (getstr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef hline
+-int hline(
++int (hline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inch
+-chtype inch(void)
++chtype (inch)(void)
+ { return(*(chtype *)0); }
+
+ #undef inchnstr
+-int inchnstr(
++int (inchnstr)(
+ chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inchstr
+-int inchstr(
++int (inchstr)(
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef innstr
+-int innstr(
++int (innstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insch
+-int insch(
++int (insch)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef insdelln
+-int insdelln(
++int (insdelln)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef insertln
+-int insertln(void)
++int (insertln)(void)
+ { return(*(int *)0); }
+
+ #undef insnstr
+-int insnstr(
++int (insnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insstr
+-int insstr(
++int (insstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef instr
+-int instr(
++int (instr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef move
+-int move(
++int (move)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddch
+-int mvaddch(
++int (mvaddch)(
+ int a1,
+ int a2,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvaddchnstr
+-int mvaddchnstr(
++int (mvaddchnstr)(
+ int a1,
+ int a2,
+ const chtype *a3,
+@@ -664,14 +666,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddchstr
+-int mvaddchstr(
++int (mvaddchstr)(
+ int a1,
+ int a2,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnstr
+-int mvaddnstr(
++int (mvaddnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -679,14 +681,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddstr
+-int mvaddstr(
++int (mvaddstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvchgat
+-int mvchgat(
++int (mvchgat)(
+ int a1,
+ int a2,
+ int a3,
+@@ -696,19 +698,19 @@
+ { return(*(int *)0); }
+
+ #undef mvdelch
+-int mvdelch(
++int (mvdelch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetch
+-int mvgetch(
++int (mvgetch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetnstr
+-int mvgetnstr(
++int (mvgetnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -716,14 +718,14 @@
+ { return(*(int *)0); }
+
+ #undef mvgetstr
+-int mvgetstr(
++int (mvgetstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvhline
+-int mvhline(
++int (mvhline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -731,13 +733,13 @@
+ { return(*(int *)0); }
+
+ #undef mvinch
+-chtype mvinch(
++chtype (mvinch)(
+ int a1,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvinchnstr
+-int mvinchnstr(
++int (mvinchnstr)(
+ int a1,
+ int a2,
+ chtype *a3,
+@@ -745,14 +747,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinchstr
+-int mvinchstr(
++int (mvinchstr)(
+ int a1,
+ int a2,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvinnstr
+-int mvinnstr(
++int (mvinnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -760,14 +762,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinsch
+-int mvinsch(
++int (mvinsch)(
+ int a1,
+ int a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvinsnstr
+-int mvinsnstr(
++int (mvinsnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -775,21 +777,21 @@
+ { return(*(int *)0); }
+
+ #undef mvinsstr
+-int mvinsstr(
++int (mvinsstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvinstr
+-int mvinstr(
++int (mvinstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvvline
+-int mvvline(
++int (mvvline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -797,7 +799,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddch
+-int mvwaddch(
++int (mvwaddch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -805,7 +807,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchnstr
+-int mvwaddchnstr(
++int (mvwaddchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -814,7 +816,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchstr
+-int mvwaddchstr(
++int (mvwaddchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -822,7 +824,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddnstr
+-int mvwaddnstr(
++int (mvwaddnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -831,7 +833,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddstr
+-int mvwaddstr(
++int (mvwaddstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -839,7 +841,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwchgat
+-int mvwchgat(
++int (mvwchgat)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -850,21 +852,21 @@
+ { return(*(int *)0); }
+
+ #undef mvwdelch
+-int mvwdelch(
++int (mvwdelch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetch
+-int mvwgetch(
++int (mvwgetch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetnstr
+-int mvwgetnstr(
++int (mvwgetnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -873,7 +875,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwgetstr
+-int mvwgetstr(
++int (mvwgetstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -881,7 +883,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwhline
+-int mvwhline(
++int (mvwhline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -890,14 +892,14 @@
+ { return(*(int *)0); }
+
+ #undef mvwinch
+-chtype mvwinch(
++chtype (mvwinch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvwinchnstr
+-int mvwinchnstr(
++int (mvwinchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -906,7 +908,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinchstr
+-int mvwinchstr(
++int (mvwinchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -914,7 +916,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinnstr
+-int mvwinnstr(
++int (mvwinnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -923,7 +925,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsch
+-int mvwinsch(
++int (mvwinsch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -931,7 +933,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsnstr
+-int mvwinsnstr(
++int (mvwinsnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -940,7 +942,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsstr
+-int mvwinsstr(
++int (mvwinsstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -948,7 +950,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinstr
+-int mvwinstr(
++int (mvwinstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -956,7 +958,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwvline
+-int mvwvline(
++int (mvwvline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -965,117 +967,117 @@
+ { return(*(int *)0); }
+
+ #undef PAIR_NUMBER
+-int PAIR_NUMBER(
++int (PAIR_NUMBER)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef redrawwin
+-int redrawwin(
++int (redrawwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef refresh
+-int refresh(void)
++int (refresh)(void)
+ { return(*(int *)0); }
+
+ #undef scrl
+-int scrl(
++int (scrl)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef scroll
+-int scroll(
++int (scroll)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef setscrreg
+-int setscrreg(
++int (setscrreg)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef standout
+-int standout(void)
++int (standout)(void)
+ { return(*(int *)0); }
+
+ #undef standend
+-int standend(void)
++int (standend)(void)
+ { return(*(int *)0); }
+
+ #undef timeout
+-void timeout(
++void (timeout)(
+ int z)
+ { /* void */ }
+
+ #undef touchline
+-int touchline(
++int (touchline)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef touchwin
+-int touchwin(
++int (touchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef untouchwin
+-int untouchwin(
++int (untouchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef vline
+-int vline(
++int (vline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vw_printw
+-int vw_printw(
++int (vw_printw)(
+ WINDOW *a1,
+ const char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef vw_scanw
+-int vw_scanw(
++int (vw_scanw)(
+ WINDOW *a1,
+ char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef waddchstr
+-int waddchstr(
++int (waddchstr)(
+ WINDOW *a1,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef waddstr
+-int waddstr(
++int (waddstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef wattron
+-int wattron(
++int (wattron)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattroff
+-int wattroff(
++int (wattroff)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattrset
+-int wattrset(
++int (wattrset)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattr_get
+-int wattr_get(
++int (wattr_get)(
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
+@@ -1083,7 +1085,7 @@
+ { return(*(int *)0); }
+
+ #undef wattr_set
+-int wattr_set(
++int (wattr_set)(
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
+@@ -1091,168 +1093,168 @@
+ { return(*(int *)0); }
+
+ #undef wdeleteln
+-int wdeleteln(
++int (wdeleteln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetstr
+-int wgetstr(
++int (wgetstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef winchstr
+-int winchstr(
++int (winchstr)(
+ WINDOW *a1,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef winsertln
+-int winsertln(
++int (winsertln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef winsstr
+-int winsstr(
++int (winsstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef winstr
+-int winstr(
++int (winstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef wstandout
+-int wstandout(
++int (wstandout)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wstandend
+-int wstandend(
++int (wstandend)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getattrs
+-int getattrs(
++int (getattrs)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcurx
+-int getcurx(
++int (getcurx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcury
+-int getcury(
++int (getcury)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegx
+-int getbegx(
++int (getbegx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegy
+-int getbegy(
++int (getbegy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxx
+-int getmaxx(
++int (getmaxx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxy
+-int getmaxy(
++int (getmaxy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getparx
+-int getparx(
++int (getparx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getpary
+-int getpary(
++int (getpary)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetparent
+-WINDOW *wgetparent(
++WINDOW *(wgetparent)(
+ const WINDOW *z)
+ { return(*(WINDOW **)0); }
+
+ #undef is_cleared
+-NCURSES_BOOL is_cleared(
++NCURSES_BOOL (is_cleared)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idcok
+-NCURSES_BOOL is_idcok(
++NCURSES_BOOL (is_idcok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idlok
+-NCURSES_BOOL is_idlok(
++NCURSES_BOOL (is_idlok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_immedok
+-NCURSES_BOOL is_immedok(
++NCURSES_BOOL (is_immedok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_keypad
+-NCURSES_BOOL is_keypad(
++NCURSES_BOOL (is_keypad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_leaveok
+-NCURSES_BOOL is_leaveok(
++NCURSES_BOOL (is_leaveok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_nodelay
+-NCURSES_BOOL is_nodelay(
++NCURSES_BOOL (is_nodelay)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_notimeout
+-NCURSES_BOOL is_notimeout(
++NCURSES_BOOL (is_notimeout)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_pad
+-NCURSES_BOOL is_pad(
++NCURSES_BOOL (is_pad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_scrollok
+-NCURSES_BOOL is_scrollok(
++NCURSES_BOOL (is_scrollok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_subwin
+-NCURSES_BOOL is_subwin(
++NCURSES_BOOL (is_subwin)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_syncok
+-NCURSES_BOOL is_syncok(
++NCURSES_BOOL (is_syncok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef wgetscrreg
+-int wgetscrreg(
++int (wgetscrreg)(
+ const WINDOW *a1,
+ int *a2,
+ int *z)
+ { return(*(int *)0); }
+
+ #undef mouse_trafo
+-NCURSES_BOOL mouse_trafo(
++NCURSES_BOOL (mouse_trafo)(
+ int *a1,
+ int *a2,
+ NCURSES_BOOL z)
+@@ -1532,6 +1534,23 @@
+ void _nc_mvcur_wrap(void)
+ { /* void */ }
+
++#undef _nc_mvcur_sp
++int _nc_mvcur_sp(
++ SCREEN *sp,
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
++#undef _nc_mvcur
++int _nc_mvcur(
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
+ #undef mvcur_sp
+ int mvcur_sp(
+ SCREEN *sp,
+@@ -1598,6 +1617,8 @@
+
+ /* ./base/lib_newwin.c */
+
++#include "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
++
+ #undef _nc_freewin
+ int _nc_freewin(
+ WINDOW *win)
+@@ -1987,7 +2008,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -1996,7 +2017,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -2276,7 +2297,7 @@
+
+ #undef _nc_signal_handler
+ void _nc_signal_handler(
+- NCURSES_BOOL enable)
++ int enable)
+ { /* void */ }
+
+ /* ./base/lib_ungetch.c */
+@@ -2513,12 +2534,6 @@
+ va_list ap)
+ { return(*(char **)0); }
+
+-/* ./base/memmove.c */
+-
+-#undef _nc_memmove
+-void _nc_memmove(void)
+- { /* void */ }
+-
+ /* ./base/vsscanf.c */
+
+ #undef _nc_vsscanf
+@@ -2778,7 +2793,7 @@
+ #undef _nc_copy_termtype
+ void _nc_copy_termtype(
+ TERMTYPE *dst,
+- TERMTYPE *src)
++ const TERMTYPE *src)
+ { /* void */ }
+
+ /* ./codes.c */
+@@ -2882,6 +2897,8 @@
+
+ /* ./tinfo/db_iterator.c */
+
++#include <time.h>
++
+ #undef _nc_tic_dir
+ const char *_nc_tic_dir(
+ const char *path)
+@@ -2973,6 +2990,12 @@
+ const char *name)
+ { return(*(int *)0); }
+
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
+ /* ./tinfo/home_terminfo.c */
+
+ #undef _nc_home_terminfo
+@@ -3313,7 +3336,7 @@
+ #undef _nc_keypad
+ int _nc_keypad(
+ SCREEN *sp,
+- NCURSES_BOOL flag)
++ int flag)
+ { return(*(int *)0); }
+
+ /* ./tinfo/lib_raw.c */
+@@ -3444,11 +3467,22 @@
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef use_env
+ void use_env(
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef _nc_get_screensize
+ void _nc_get_screensize(
+ SCREEN *sp,
+@@ -3470,7 +3504,7 @@
+ #undef _nc_tinfo_cmdch
+ void _nc_tinfo_cmdch(
+ TERMINAL *termp,
+- char proto)
++ int proto)
+ { /* void */ }
+
+ #undef _nc_get_locale
+@@ -3491,7 +3525,7 @@
+ char *tname,
+ int Filedes,
+ int *errret,
+- NCURSES_BOOL reuse)
++ int reuse)
+ { return(*(int *)0); }
+
+ #undef new_prescr
+@@ -3630,7 +3664,7 @@
+ int _nc_tparm_analyze(
+ const char *string,
+ char *p_is_s[9],
+- int *popcount)
++ int *_nc_popcount)
+ { return(*(int *)0); }
+
+ #undef tparm
+@@ -3650,7 +3684,7 @@
+ #undef PC
+ char PC;
+ #undef ospeed
+-NCURSES_OSPEED ospeed;
++short ospeed;
+ #undef _nc_nulls_sent
+ int _nc_nulls_sent;
+
+@@ -3690,12 +3724,28 @@
+ int ch)
+ { return(*(int *)0); }
+
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
+ #undef putp_sp
+ int putp_sp(
+ SCREEN *sp,
+ const char *string)
+ { return(*(int *)0); }
+
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
+ #undef _nc_putp_sp
+ int _nc_putp_sp(
+ SCREEN *sp,
+@@ -3703,11 +3753,6 @@
+ const char *string)
+ { return(*(int *)0); }
+
+-#undef putp
+-int putp(
+- const char *string)
+- { return(*(int *)0); }
+-
+ #undef _nc_putp
+ int _nc_putp(
+ const char *name,
+@@ -3772,12 +3817,12 @@
+
+ #undef _nc_retrace_bool
+ NCURSES_BOOL _nc_retrace_bool(
+- NCURSES_BOOL code)
++ int code)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef _nc_retrace_char
+ char _nc_retrace_char(
+- char code)
++ int code)
+ { return(*(char *)0); }
+
+ #undef _nc_retrace_int
+@@ -4033,10 +4078,30 @@
+ char *const *_nc_strfnames(void)
+ { return(*(char **)0); }
+
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
+ /* ./tinfo/read_entry.c */
+
+ #include <hashed_db.h>
+
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
+ #undef _nc_read_termtype
+ int _nc_read_termtype(
+ TERMTYPE *ptr,
+@@ -4061,25 +4126,8 @@
+
+ #include <sys/types.h>
+
+-#undef _nc_read_termcap_entry
+-int _nc_read_termcap_entry(
+- const char *const tn,
+- TERMTYPE *const tp)
+- { return(*(int *)0); }
+-
+-/* ./tinfo/setbuf.c */
+-
+-#undef _nc_set_buffer_sp
+-void _nc_set_buffer_sp(
+- SCREEN *sp,
+- FILE *ofp,
+- NCURSES_BOOL buffered)
+- { /* void */ }
+-
+-#undef _nc_set_buffer
+-void _nc_set_buffer(
+- FILE *ofp,
+- NCURSES_BOOL buffered)
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
+ { /* void */ }
+
+ /* ./tinfo/strings.c */
+@@ -4305,6 +4353,8 @@
+
+ #undef _nc_syntax
+ int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
+ #undef _nc_curr_file_pos
+ long _nc_curr_file_pos;
+ #undef _nc_comment_start
+Index: ncurses/llib-lncursestw
+--- ncurses-5.9/ncurses/llib-lncursestw 2011-01-08 19:11:35.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/llib-lncursestw 2013-12-14 22:06:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey 2009-2010,2011 *
++ * Author: Thomas E. Dickey 2009-on *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -369,17 +369,17 @@
+ #undef _nc_do_color_sp
+ void _nc_do_color_sp(
+ SCREEN *sp,
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC_sp outc)
+ { /* void */ }
+
+ #undef _nc_do_color
+ void _nc_do_color(
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC outc)
+ { /* void */ }
+
+@@ -457,86 +457,88 @@
+
+ /* ./lib_gen.c */
+
++#include <ncurses_cfg.h>
++
+ #undef addch
+-int addch(
++int (addch)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef addchnstr
+-int addchnstr(
++int (addchnstr)(
+ const chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addchstr
+-int addchstr(
++int (addchstr)(
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef addnstr
+-int addnstr(
++int (addnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addstr
+-int addstr(
++int (addstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef attroff
+-int attroff(
+- NCURSES_ATTR_T z)
++int (attroff)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attron
+-int attron(
+- NCURSES_ATTR_T z)
++int (attron)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attrset
+-int attrset(
+- NCURSES_ATTR_T z)
++int (attrset)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attr_get
+-int attr_get(
++int (attr_get)(
+ attr_t *a1,
+ short *a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_off
+-int attr_off(
++int (attr_off)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_on
+-int attr_on(
++int (attr_on)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_set
+-int attr_set(
++int (attr_set)(
+ attr_t a1,
+ short a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef bkgd
+-int bkgd(
++int (bkgd)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef bkgdset
+-void bkgdset(
++void (bkgdset)(
+ chtype z)
+ { /* void */ }
+
+ #undef border
+-int border(
++int (border)(
+ chtype a1,
+ chtype a2,
+ chtype a3,
+@@ -548,14 +550,14 @@
+ { return(*(int *)0); }
+
+ #undef box
+-int box(
++int (box)(
+ WINDOW *a1,
+ chtype a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef chgat
+-int chgat(
++int (chgat)(
+ int a1,
+ attr_t a2,
+ short a3,
+@@ -563,137 +565,137 @@
+ { return(*(int *)0); }
+
+ #undef clear
+-int clear(void)
++int (clear)(void)
+ { return(*(int *)0); }
+
+ #undef clrtobot
+-int clrtobot(void)
++int (clrtobot)(void)
+ { return(*(int *)0); }
+
+ #undef clrtoeol
+-int clrtoeol(void)
++int (clrtoeol)(void)
+ { return(*(int *)0); }
+
+ #undef color_set
+-int color_set(
++int (color_set)(
+ short a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef COLOR_PAIR
+-int COLOR_PAIR(
++int (COLOR_PAIR)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef delch
+-int delch(void)
++int (delch)(void)
+ { return(*(int *)0); }
+
+ #undef deleteln
+-int deleteln(void)
++int (deleteln)(void)
+ { return(*(int *)0); }
+
+ #undef echochar
+-int echochar(
++int (echochar)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef erase
+-int erase(void)
++int (erase)(void)
+ { return(*(int *)0); }
+
+ #undef getbkgd
+-chtype getbkgd(
++chtype (getbkgd)(
+ WINDOW *z)
+ { return(*(chtype *)0); }
+
+ #undef getch
+-int getch(void)
++int (getch)(void)
+ { return(*(int *)0); }
+
+ #undef getnstr
+-int getnstr(
++int (getnstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef getstr
+-int getstr(
++int (getstr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef hline
+-int hline(
++int (hline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inch
+-chtype inch(void)
++chtype (inch)(void)
+ { return(*(chtype *)0); }
+
+ #undef inchnstr
+-int inchnstr(
++int (inchnstr)(
+ chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inchstr
+-int inchstr(
++int (inchstr)(
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef innstr
+-int innstr(
++int (innstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insch
+-int insch(
++int (insch)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef insdelln
+-int insdelln(
++int (insdelln)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef insertln
+-int insertln(void)
++int (insertln)(void)
+ { return(*(int *)0); }
+
+ #undef insnstr
+-int insnstr(
++int (insnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insstr
+-int insstr(
++int (insstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef instr
+-int instr(
++int (instr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef move
+-int move(
++int (move)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddch
+-int mvaddch(
++int (mvaddch)(
+ int a1,
+ int a2,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvaddchnstr
+-int mvaddchnstr(
++int (mvaddchnstr)(
+ int a1,
+ int a2,
+ const chtype *a3,
+@@ -701,14 +703,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddchstr
+-int mvaddchstr(
++int (mvaddchstr)(
+ int a1,
+ int a2,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnstr
+-int mvaddnstr(
++int (mvaddnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -716,14 +718,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddstr
+-int mvaddstr(
++int (mvaddstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvchgat
+-int mvchgat(
++int (mvchgat)(
+ int a1,
+ int a2,
+ int a3,
+@@ -733,19 +735,19 @@
+ { return(*(int *)0); }
+
+ #undef mvdelch
+-int mvdelch(
++int (mvdelch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetch
+-int mvgetch(
++int (mvgetch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetnstr
+-int mvgetnstr(
++int (mvgetnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -753,14 +755,14 @@
+ { return(*(int *)0); }
+
+ #undef mvgetstr
+-int mvgetstr(
++int (mvgetstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvhline
+-int mvhline(
++int (mvhline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -768,13 +770,13 @@
+ { return(*(int *)0); }
+
+ #undef mvinch
+-chtype mvinch(
++chtype (mvinch)(
+ int a1,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvinchnstr
+-int mvinchnstr(
++int (mvinchnstr)(
+ int a1,
+ int a2,
+ chtype *a3,
+@@ -782,14 +784,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinchstr
+-int mvinchstr(
++int (mvinchstr)(
+ int a1,
+ int a2,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvinnstr
+-int mvinnstr(
++int (mvinnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -797,14 +799,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinsch
+-int mvinsch(
++int (mvinsch)(
+ int a1,
+ int a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvinsnstr
+-int mvinsnstr(
++int (mvinsnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -812,21 +814,21 @@
+ { return(*(int *)0); }
+
+ #undef mvinsstr
+-int mvinsstr(
++int (mvinsstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvinstr
+-int mvinstr(
++int (mvinstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvvline
+-int mvvline(
++int (mvvline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -834,7 +836,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddch
+-int mvwaddch(
++int (mvwaddch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -842,7 +844,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchnstr
+-int mvwaddchnstr(
++int (mvwaddchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -851,7 +853,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchstr
+-int mvwaddchstr(
++int (mvwaddchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -859,7 +861,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddnstr
+-int mvwaddnstr(
++int (mvwaddnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -868,7 +870,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddstr
+-int mvwaddstr(
++int (mvwaddstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -876,7 +878,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwchgat
+-int mvwchgat(
++int (mvwchgat)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -887,21 +889,21 @@
+ { return(*(int *)0); }
+
+ #undef mvwdelch
+-int mvwdelch(
++int (mvwdelch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetch
+-int mvwgetch(
++int (mvwgetch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetnstr
+-int mvwgetnstr(
++int (mvwgetnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -910,7 +912,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwgetstr
+-int mvwgetstr(
++int (mvwgetstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -918,7 +920,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwhline
+-int mvwhline(
++int (mvwhline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -927,14 +929,14 @@
+ { return(*(int *)0); }
+
+ #undef mvwinch
+-chtype mvwinch(
++chtype (mvwinch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvwinchnstr
+-int mvwinchnstr(
++int (mvwinchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -943,7 +945,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinchstr
+-int mvwinchstr(
++int (mvwinchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -951,7 +953,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinnstr
+-int mvwinnstr(
++int (mvwinnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -960,7 +962,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsch
+-int mvwinsch(
++int (mvwinsch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -968,7 +970,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsnstr
+-int mvwinsnstr(
++int (mvwinsnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -977,7 +979,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsstr
+-int mvwinsstr(
++int (mvwinsstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -985,7 +987,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinstr
+-int mvwinstr(
++int (mvwinstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -993,7 +995,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwvline
+-int mvwvline(
++int (mvwvline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1002,129 +1004,129 @@
+ { return(*(int *)0); }
+
+ #undef PAIR_NUMBER
+-int PAIR_NUMBER(
++int (PAIR_NUMBER)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef redrawwin
+-int redrawwin(
++int (redrawwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef refresh
+-int refresh(void)
++int (refresh)(void)
+ { return(*(int *)0); }
+
+ #undef scrl
+-int scrl(
++int (scrl)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef scroll
+-int scroll(
++int (scroll)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef setscrreg
+-int setscrreg(
++int (setscrreg)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef slk_attr_off
+-int slk_attr_off(
++int (slk_attr_off)(
+ const attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef slk_attr_on
+-int slk_attr_on(
++int (slk_attr_on)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef standout
+-int standout(void)
++int (standout)(void)
+ { return(*(int *)0); }
+
+ #undef standend
+-int standend(void)
++int (standend)(void)
+ { return(*(int *)0); }
+
+ #undef timeout
+-void timeout(
++void (timeout)(
+ int z)
+ { /* void */ }
+
+ #undef touchline
+-int touchline(
++int (touchline)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef touchwin
+-int touchwin(
++int (touchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef untouchwin
+-int untouchwin(
++int (untouchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef vline
+-int vline(
++int (vline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vw_printw
+-int vw_printw(
++int (vw_printw)(
+ WINDOW *a1,
+ const char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef vw_scanw
+-int vw_scanw(
++int (vw_scanw)(
+ WINDOW *a1,
+ char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef waddchstr
+-int waddchstr(
++int (waddchstr)(
+ WINDOW *a1,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef waddstr
+-int waddstr(
++int (waddstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef wattron
+-int wattron(
++int (wattron)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattroff
+-int wattroff(
++int (wattroff)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattrset
+-int wattrset(
++int (wattrset)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattr_get
+-int wattr_get(
++int (wattr_get)(
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
+@@ -1132,7 +1134,7 @@
+ { return(*(int *)0); }
+
+ #undef wattr_set
+-int wattr_set(
++int (wattr_set)(
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
+@@ -1140,205 +1142,205 @@
+ { return(*(int *)0); }
+
+ #undef wdeleteln
+-int wdeleteln(
++int (wdeleteln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetstr
+-int wgetstr(
++int (wgetstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef winchstr
+-int winchstr(
++int (winchstr)(
+ WINDOW *a1,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef winsertln
+-int winsertln(
++int (winsertln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef winsstr
+-int winsstr(
++int (winsstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef winstr
+-int winstr(
++int (winstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef wstandout
+-int wstandout(
++int (wstandout)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wstandend
+-int wstandend(
++int (wstandend)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getattrs
+-int getattrs(
++int (getattrs)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcurx
+-int getcurx(
++int (getcurx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcury
+-int getcury(
++int (getcury)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegx
+-int getbegx(
++int (getbegx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegy
+-int getbegy(
++int (getbegy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxx
+-int getmaxx(
++int (getmaxx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxy
+-int getmaxy(
++int (getmaxy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getparx
+-int getparx(
++int (getparx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getpary
+-int getpary(
++int (getpary)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetparent
+-WINDOW *wgetparent(
++WINDOW *(wgetparent)(
+ const WINDOW *z)
+ { return(*(WINDOW **)0); }
+
+ #undef is_cleared
+-NCURSES_BOOL is_cleared(
++NCURSES_BOOL (is_cleared)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idcok
+-NCURSES_BOOL is_idcok(
++NCURSES_BOOL (is_idcok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idlok
+-NCURSES_BOOL is_idlok(
++NCURSES_BOOL (is_idlok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_immedok
+-NCURSES_BOOL is_immedok(
++NCURSES_BOOL (is_immedok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_keypad
+-NCURSES_BOOL is_keypad(
++NCURSES_BOOL (is_keypad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_leaveok
+-NCURSES_BOOL is_leaveok(
++NCURSES_BOOL (is_leaveok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_nodelay
+-NCURSES_BOOL is_nodelay(
++NCURSES_BOOL (is_nodelay)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_notimeout
+-NCURSES_BOOL is_notimeout(
++NCURSES_BOOL (is_notimeout)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_pad
+-NCURSES_BOOL is_pad(
++NCURSES_BOOL (is_pad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_scrollok
+-NCURSES_BOOL is_scrollok(
++NCURSES_BOOL (is_scrollok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_subwin
+-NCURSES_BOOL is_subwin(
++NCURSES_BOOL (is_subwin)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_syncok
+-NCURSES_BOOL is_syncok(
++NCURSES_BOOL (is_syncok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef wgetscrreg
+-int wgetscrreg(
++int (wgetscrreg)(
+ const WINDOW *a1,
+ int *a2,
+ int *z)
+ { return(*(int *)0); }
+
+ #undef add_wch
+-int add_wch(
++int (add_wch)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef add_wchnstr
+-int add_wchnstr(
++int (add_wchnstr)(
+ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef add_wchstr
+-int add_wchstr(
++int (add_wchstr)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef addnwstr
+-int addnwstr(
++int (addnwstr)(
+ const wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addwstr
+-int addwstr(
++int (addwstr)(
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef bkgrnd
+-int bkgrnd(
++int (bkgrnd)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef bkgrndset
+-void bkgrndset(
++void (bkgrndset)(
+ const cchar_t *z)
+ { /* void */ }
+
+ #undef border_set
+-int border_set(
++int (border_set)(
+ const cchar_t *a1,
+ const cchar_t *a2,
+ const cchar_t *a3,
+@@ -1350,96 +1352,96 @@
+ { return(*(int *)0); }
+
+ #undef box_set
+-int box_set(
++int (box_set)(
+ WINDOW *a1,
+ const cchar_t *a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef echo_wchar
+-int echo_wchar(
++int (echo_wchar)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef get_wch
+-int get_wch(
++int (get_wch)(
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef get_wstr
+-int get_wstr(
++int (get_wstr)(
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef getbkgrnd
+-int getbkgrnd(
++int (getbkgrnd)(
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef getn_wstr
+-int getn_wstr(
++int (getn_wstr)(
+ wint_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef hline_set
+-int hline_set(
++int (hline_set)(
+ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef in_wch
+-int in_wch(
++int (in_wch)(
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef in_wchnstr
+-int in_wchnstr(
++int (in_wchnstr)(
+ cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef in_wchstr
+-int in_wchstr(
++int (in_wchstr)(
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef innwstr
+-int innwstr(
++int (innwstr)(
+ wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef ins_nwstr
+-int ins_nwstr(
++int (ins_nwstr)(
+ const wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef ins_wch
+-int ins_wch(
++int (ins_wch)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef ins_wstr
+-int ins_wstr(
++int (ins_wstr)(
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef inwstr
+-int inwstr(
++int (inwstr)(
+ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wch
+-int mvadd_wch(
++int (mvadd_wch)(
+ int a1,
+ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wchnstr
+-int mvadd_wchnstr(
++int (mvadd_wchnstr)(
+ int a1,
+ int a2,
+ const cchar_t *a3,
+@@ -1447,14 +1449,14 @@
+ { return(*(int *)0); }
+
+ #undef mvadd_wchstr
+-int mvadd_wchstr(
++int (mvadd_wchstr)(
+ int a1,
+ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnwstr
+-int mvaddnwstr(
++int (mvaddnwstr)(
+ int a1,
+ int a2,
+ const wchar_t *a3,
+@@ -1462,28 +1464,28 @@
+ { return(*(int *)0); }
+
+ #undef mvaddwstr
+-int mvaddwstr(
++int (mvaddwstr)(
+ int a1,
+ int a2,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvget_wch
+-int mvget_wch(
++int (mvget_wch)(
+ int a1,
+ int a2,
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvget_wstr
+-int mvget_wstr(
++int (mvget_wstr)(
+ int a1,
+ int a2,
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvgetn_wstr
+-int mvgetn_wstr(
++int (mvgetn_wstr)(
+ int a1,
+ int a2,
+ wint_t *a3,
+@@ -1491,7 +1493,7 @@
+ { return(*(int *)0); }
+
+ #undef mvhline_set
+-int mvhline_set(
++int (mvhline_set)(
+ int a1,
+ int a2,
+ const cchar_t *a3,
+@@ -1499,14 +1501,14 @@
+ { return(*(int *)0); }
+
+ #undef mvin_wch
+-int mvin_wch(
++int (mvin_wch)(
+ int a1,
+ int a2,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvin_wchnstr
+-int mvin_wchnstr(
++int (mvin_wchnstr)(
+ int a1,
+ int a2,
+ cchar_t *a3,
+@@ -1514,14 +1516,14 @@
+ { return(*(int *)0); }
+
+ #undef mvin_wchstr
+-int mvin_wchstr(
++int (mvin_wchstr)(
+ int a1,
+ int a2,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvinnwstr
+-int mvinnwstr(
++int (mvinnwstr)(
+ int a1,
+ int a2,
+ wchar_t *a3,
+@@ -1529,7 +1531,7 @@
+ { return(*(int *)0); }
+
+ #undef mvins_nwstr
+-int mvins_nwstr(
++int (mvins_nwstr)(
+ int a1,
+ int a2,
+ const wchar_t *a3,
+@@ -1537,28 +1539,28 @@
+ { return(*(int *)0); }
+
+ #undef mvins_wch
+-int mvins_wch(
++int (mvins_wch)(
+ int a1,
+ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvins_wstr
+-int mvins_wstr(
++int (mvins_wstr)(
+ int a1,
+ int a2,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvinwstr
+-int mvinwstr(
++int (mvinwstr)(
+ int a1,
+ int a2,
+ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvvline_set
+-int mvvline_set(
++int (mvvline_set)(
+ int a1,
+ int a2,
+ const cchar_t *a3,
+@@ -1566,7 +1568,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwadd_wch
+-int mvwadd_wch(
++int (mvwadd_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1574,7 +1576,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwadd_wchnstr
+-int mvwadd_wchnstr(
++int (mvwadd_wchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1583,7 +1585,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwadd_wchstr
+-int mvwadd_wchstr(
++int (mvwadd_wchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1591,7 +1593,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddnwstr
+-int mvwaddnwstr(
++int (mvwaddnwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1600,7 +1602,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddwstr
+-int mvwaddwstr(
++int (mvwaddwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1608,7 +1610,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwget_wch
+-int mvwget_wch(
++int (mvwget_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1616,7 +1618,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwget_wstr
+-int mvwget_wstr(
++int (mvwget_wstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1624,7 +1626,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwgetn_wstr
+-int mvwgetn_wstr(
++int (mvwgetn_wstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1633,7 +1635,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwhline_set
+-int mvwhline_set(
++int (mvwhline_set)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1642,7 +1644,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwin_wch
+-int mvwin_wch(
++int (mvwin_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1650,7 +1652,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwin_wchnstr
+-int mvwin_wchnstr(
++int (mvwin_wchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1659,7 +1661,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwin_wchstr
+-int mvwin_wchstr(
++int (mvwin_wchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1667,7 +1669,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinnwstr
+-int mvwinnwstr(
++int (mvwinnwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1676,7 +1678,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwins_nwstr
+-int mvwins_nwstr(
++int (mvwins_nwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1685,7 +1687,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwins_wch
+-int mvwins_wch(
++int (mvwins_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1693,7 +1695,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwins_wstr
+-int mvwins_wstr(
++int (mvwins_wstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1701,7 +1703,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinwstr
+-int mvwinwstr(
++int (mvwinwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1709,7 +1711,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwvline_set
+-int mvwvline_set(
++int (mvwvline_set)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1718,49 +1720,49 @@
+ { return(*(int *)0); }
+
+ #undef vline_set
+-int vline_set(
++int (vline_set)(
+ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wadd_wchstr
+-int wadd_wchstr(
++int (wadd_wchstr)(
+ WINDOW *a1,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef waddwstr
+-int waddwstr(
++int (waddwstr)(
+ WINDOW *a1,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef wget_wstr
+-int wget_wstr(
++int (wget_wstr)(
+ WINDOW *a1,
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef wgetbkgrnd
+-int wgetbkgrnd(
++int (wgetbkgrnd)(
+ WINDOW *a1,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef win_wchstr
+-int win_wchstr(
++int (win_wchstr)(
+ WINDOW *a1,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef wins_wstr
+-int wins_wstr(
++int (wins_wstr)(
+ WINDOW *a1,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mouse_trafo
+-NCURSES_BOOL mouse_trafo(
++NCURSES_BOOL (mouse_trafo)(
+ int *a1,
+ int *a2,
+ NCURSES_BOOL z)
+@@ -2040,6 +2042,23 @@
+ void _nc_mvcur_wrap(void)
+ { /* void */ }
+
++#undef _nc_mvcur_sp
++int _nc_mvcur_sp(
++ SCREEN *sp,
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
++#undef _nc_mvcur
++int _nc_mvcur(
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
+ #undef mvcur_sp
+ int mvcur_sp(
+ SCREEN *sp,
+@@ -2106,6 +2125,8 @@
+
+ /* ./base/lib_newwin.c */
+
++#include "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
++
+ #undef _nc_freewin
+ int _nc_freewin(
+ WINDOW *win)
+@@ -2495,7 +2516,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -2504,7 +2525,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -2786,7 +2807,7 @@
+
+ #undef _nc_signal_handler
+ void _nc_signal_handler(
+- NCURSES_BOOL enable)
++ int enable)
+ { /* void */ }
+
+ /* ./base/lib_ungetch.c */
+@@ -3023,12 +3044,6 @@
+ va_list ap)
+ { return(*(char **)0); }
+
+-/* ./base/memmove.c */
+-
+-#undef _nc_memmove
+-void _nc_memmove(void)
+- { /* void */ }
+-
+ /* ./base/vsscanf.c */
+
+ #undef _nc_vsscanf
+@@ -3563,7 +3578,7 @@
+ #undef _nc_copy_termtype
+ void _nc_copy_termtype(
+ TERMTYPE *dst,
+- TERMTYPE *src)
++ const TERMTYPE *src)
+ { /* void */ }
+
+ /* ./codes.c */
+@@ -3667,6 +3682,8 @@
+
+ /* ./tinfo/db_iterator.c */
+
++#include <time.h>
++
+ #undef _nc_tic_dir
+ const char *_nc_tic_dir(
+ const char *path)
+@@ -3758,6 +3775,12 @@
+ const char *name)
+ { return(*(int *)0); }
+
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
+ /* ./tinfo/home_terminfo.c */
+
+ #undef _nc_home_terminfo
+@@ -4098,7 +4121,7 @@
+ #undef _nc_keypad
+ int _nc_keypad(
+ SCREEN *sp,
+- NCURSES_BOOL flag)
++ int flag)
+ { return(*(int *)0); }
+
+ /* ./tinfo/lib_raw.c */
+@@ -4229,11 +4252,22 @@
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef use_env
+ void use_env(
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef _nc_get_screensize
+ void _nc_get_screensize(
+ SCREEN *sp,
+@@ -4255,7 +4289,7 @@
+ #undef _nc_tinfo_cmdch
+ void _nc_tinfo_cmdch(
+ TERMINAL *termp,
+- char proto)
++ int proto)
+ { /* void */ }
+
+ #undef _nc_get_locale
+@@ -4276,7 +4310,7 @@
+ char *tname,
+ int Filedes,
+ int *errret,
+- NCURSES_BOOL reuse)
++ int reuse)
+ { return(*(int *)0); }
+
+ #undef new_prescr
+@@ -4415,7 +4449,7 @@
+ int _nc_tparm_analyze(
+ const char *string,
+ char *p_is_s[9],
+- int *popcount)
++ int *_nc_popcount)
+ { return(*(int *)0); }
+
+ #undef tparm
+@@ -4435,7 +4469,7 @@
+ #undef PC
+ char PC;
+ #undef ospeed
+-NCURSES_OSPEED ospeed;
++short ospeed;
+ #undef _nc_nulls_sent
+ int _nc_nulls_sent;
+
+@@ -4475,12 +4509,28 @@
+ int ch)
+ { return(*(int *)0); }
+
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
+ #undef putp_sp
+ int putp_sp(
+ SCREEN *sp,
+ const char *string)
+ { return(*(int *)0); }
+
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
+ #undef _nc_putp_sp
+ int _nc_putp_sp(
+ SCREEN *sp,
+@@ -4488,11 +4538,6 @@
+ const char *string)
+ { return(*(int *)0); }
+
+-#undef putp
+-int putp(
+- const char *string)
+- { return(*(int *)0); }
+-
+ #undef _nc_putp
+ int _nc_putp(
+ const char *name,
+@@ -4557,12 +4602,12 @@
+
+ #undef _nc_retrace_bool
+ NCURSES_BOOL _nc_retrace_bool(
+- NCURSES_BOOL code)
++ int code)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef _nc_retrace_char
+ char _nc_retrace_char(
+- char code)
++ int code)
+ { return(*(char *)0); }
+
+ #undef _nc_retrace_int
+@@ -4829,10 +4874,30 @@
+ char *const *_nc_strfnames(void)
+ { return(*(char **)0); }
+
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
+ /* ./tinfo/read_entry.c */
+
+ #include <hashed_db.h>
+
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
+ #undef _nc_read_termtype
+ int _nc_read_termtype(
+ TERMTYPE *ptr,
+@@ -4857,25 +4922,8 @@
+
+ #include <sys/types.h>
+
+-#undef _nc_read_termcap_entry
+-int _nc_read_termcap_entry(
+- const char *const tn,
+- TERMTYPE *const tp)
+- { return(*(int *)0); }
+-
+-/* ./tinfo/setbuf.c */
+-
+-#undef _nc_set_buffer_sp
+-void _nc_set_buffer_sp(
+- SCREEN *sp,
+- FILE *ofp,
+- NCURSES_BOOL buffered)
+- { /* void */ }
+-
+-#undef _nc_set_buffer
+-void _nc_set_buffer(
+- FILE *ofp,
+- NCURSES_BOOL buffered)
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
+ { /* void */ }
+
+ /* ./tinfo/strings.c */
+@@ -5123,6 +5171,8 @@
+
+ #undef _nc_syntax
+ int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
+ #undef _nc_curr_file_pos
+ long _nc_curr_file_pos;
+ #undef _nc_comment_start
+Index: ncurses/llib-lncursesw
+--- ncurses-5.9/ncurses/llib-lncursesw 2011-01-08 19:01:11.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/llib-lncursesw 2013-12-14 22:06:25.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,7 +27,7 @@
+ ****************************************************************************/
+
+ /****************************************************************************
+- * Author: Thomas E. Dickey 2001-2010,2011 *
++ * Author: Thomas E. Dickey 2001-on *
+ ****************************************************************************/
+ /* LINTLIBRARY */
+
+@@ -366,17 +366,17 @@
+ #undef _nc_do_color_sp
+ void _nc_do_color_sp(
+ SCREEN *sp,
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC_sp outc)
+ { /* void */ }
+
+ #undef _nc_do_color
+ void _nc_do_color(
+- short old_pair,
+- short pair,
+- NCURSES_BOOL reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_OUTC outc)
+ { /* void */ }
+
+@@ -454,86 +454,88 @@
+
+ /* ./lib_gen.c */
+
++#include <ncurses_cfg.h>
++
+ #undef addch
+-int addch(
++int (addch)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef addchnstr
+-int addchnstr(
++int (addchnstr)(
+ const chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addchstr
+-int addchstr(
++int (addchstr)(
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef addnstr
+-int addnstr(
++int (addnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addstr
+-int addstr(
++int (addstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef attroff
+-int attroff(
+- NCURSES_ATTR_T z)
++int (attroff)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attron
+-int attron(
+- NCURSES_ATTR_T z)
++int (attron)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attrset
+-int attrset(
+- NCURSES_ATTR_T z)
++int (attrset)(
++ int z)
+ { return(*(int *)0); }
+
+ #undef attr_get
+-int attr_get(
++int (attr_get)(
+ attr_t *a1,
+ short *a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_off
+-int attr_off(
++int (attr_off)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_on
+-int attr_on(
++int (attr_on)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef attr_set
+-int attr_set(
++int (attr_set)(
+ attr_t a1,
+ short a2,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef bkgd
+-int bkgd(
++int (bkgd)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef bkgdset
+-void bkgdset(
++void (bkgdset)(
+ chtype z)
+ { /* void */ }
+
+ #undef border
+-int border(
++int (border)(
+ chtype a1,
+ chtype a2,
+ chtype a3,
+@@ -545,14 +547,14 @@
+ { return(*(int *)0); }
+
+ #undef box
+-int box(
++int (box)(
+ WINDOW *a1,
+ chtype a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef chgat
+-int chgat(
++int (chgat)(
+ int a1,
+ attr_t a2,
+ short a3,
+@@ -560,137 +562,137 @@
+ { return(*(int *)0); }
+
+ #undef clear
+-int clear(void)
++int (clear)(void)
+ { return(*(int *)0); }
+
+ #undef clrtobot
+-int clrtobot(void)
++int (clrtobot)(void)
+ { return(*(int *)0); }
+
+ #undef clrtoeol
+-int clrtoeol(void)
++int (clrtoeol)(void)
+ { return(*(int *)0); }
+
+ #undef color_set
+-int color_set(
++int (color_set)(
+ short a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef COLOR_PAIR
+-int COLOR_PAIR(
++int (COLOR_PAIR)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef delch
+-int delch(void)
++int (delch)(void)
+ { return(*(int *)0); }
+
+ #undef deleteln
+-int deleteln(void)
++int (deleteln)(void)
+ { return(*(int *)0); }
+
+ #undef echochar
+-int echochar(
++int (echochar)(
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef erase
+-int erase(void)
++int (erase)(void)
+ { return(*(int *)0); }
+
+ #undef getbkgd
+-chtype getbkgd(
++chtype (getbkgd)(
+ WINDOW *z)
+ { return(*(chtype *)0); }
+
+ #undef getch
+-int getch(void)
++int (getch)(void)
+ { return(*(int *)0); }
+
+ #undef getnstr
+-int getnstr(
++int (getnstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef getstr
+-int getstr(
++int (getstr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef hline
+-int hline(
++int (hline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inch
+-chtype inch(void)
++chtype (inch)(void)
+ { return(*(chtype *)0); }
+
+ #undef inchnstr
+-int inchnstr(
++int (inchnstr)(
+ chtype *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef inchstr
+-int inchstr(
++int (inchstr)(
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef innstr
+-int innstr(
++int (innstr)(
+ char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insch
+-int insch(
++int (insch)(
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef insdelln
+-int insdelln(
++int (insdelln)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef insertln
+-int insertln(void)
++int (insertln)(void)
+ { return(*(int *)0); }
+
+ #undef insnstr
+-int insnstr(
++int (insnstr)(
+ const char *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef insstr
+-int insstr(
++int (insstr)(
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef instr
+-int instr(
++int (instr)(
+ char *z)
+ { return(*(int *)0); }
+
+ #undef move
+-int move(
++int (move)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvaddch
+-int mvaddch(
++int (mvaddch)(
+ int a1,
+ int a2,
+ const chtype z)
+ { return(*(int *)0); }
+
+ #undef mvaddchnstr
+-int mvaddchnstr(
++int (mvaddchnstr)(
+ int a1,
+ int a2,
+ const chtype *a3,
+@@ -698,14 +700,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddchstr
+-int mvaddchstr(
++int (mvaddchstr)(
+ int a1,
+ int a2,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnstr
+-int mvaddnstr(
++int (mvaddnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -713,14 +715,14 @@
+ { return(*(int *)0); }
+
+ #undef mvaddstr
+-int mvaddstr(
++int (mvaddstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvchgat
+-int mvchgat(
++int (mvchgat)(
+ int a1,
+ int a2,
+ int a3,
+@@ -730,19 +732,19 @@
+ { return(*(int *)0); }
+
+ #undef mvdelch
+-int mvdelch(
++int (mvdelch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetch
+-int mvgetch(
++int (mvgetch)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvgetnstr
+-int mvgetnstr(
++int (mvgetnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -750,14 +752,14 @@
+ { return(*(int *)0); }
+
+ #undef mvgetstr
+-int mvgetstr(
++int (mvgetstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvhline
+-int mvhline(
++int (mvhline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -765,13 +767,13 @@
+ { return(*(int *)0); }
+
+ #undef mvinch
+-chtype mvinch(
++chtype (mvinch)(
+ int a1,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvinchnstr
+-int mvinchnstr(
++int (mvinchnstr)(
+ int a1,
+ int a2,
+ chtype *a3,
+@@ -779,14 +781,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinchstr
+-int mvinchstr(
++int (mvinchstr)(
+ int a1,
+ int a2,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef mvinnstr
+-int mvinnstr(
++int (mvinnstr)(
+ int a1,
+ int a2,
+ char *a3,
+@@ -794,14 +796,14 @@
+ { return(*(int *)0); }
+
+ #undef mvinsch
+-int mvinsch(
++int (mvinsch)(
+ int a1,
+ int a2,
+ chtype z)
+ { return(*(int *)0); }
+
+ #undef mvinsnstr
+-int mvinsnstr(
++int (mvinsnstr)(
+ int a1,
+ int a2,
+ const char *a3,
+@@ -809,21 +811,21 @@
+ { return(*(int *)0); }
+
+ #undef mvinsstr
+-int mvinsstr(
++int (mvinsstr)(
+ int a1,
+ int a2,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef mvinstr
+-int mvinstr(
++int (mvinstr)(
+ int a1,
+ int a2,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef mvvline
+-int mvvline(
++int (mvvline)(
+ int a1,
+ int a2,
+ chtype a3,
+@@ -831,7 +833,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddch
+-int mvwaddch(
++int (mvwaddch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -839,7 +841,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchnstr
+-int mvwaddchnstr(
++int (mvwaddchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -848,7 +850,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddchstr
+-int mvwaddchstr(
++int (mvwaddchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -856,7 +858,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddnstr
+-int mvwaddnstr(
++int (mvwaddnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -865,7 +867,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddstr
+-int mvwaddstr(
++int (mvwaddstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -873,7 +875,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwchgat
+-int mvwchgat(
++int (mvwchgat)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -884,21 +886,21 @@
+ { return(*(int *)0); }
+
+ #undef mvwdelch
+-int mvwdelch(
++int (mvwdelch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetch
+-int mvwgetch(
++int (mvwgetch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef mvwgetnstr
+-int mvwgetnstr(
++int (mvwgetnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -907,7 +909,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwgetstr
+-int mvwgetstr(
++int (mvwgetstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -915,7 +917,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwhline
+-int mvwhline(
++int (mvwhline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -924,14 +926,14 @@
+ { return(*(int *)0); }
+
+ #undef mvwinch
+-chtype mvwinch(
++chtype (mvwinch)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(chtype *)0); }
+
+ #undef mvwinchnstr
+-int mvwinchnstr(
++int (mvwinchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -940,7 +942,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinchstr
+-int mvwinchstr(
++int (mvwinchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -948,7 +950,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinnstr
+-int mvwinnstr(
++int (mvwinnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -957,7 +959,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsch
+-int mvwinsch(
++int (mvwinsch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -965,7 +967,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsnstr
+-int mvwinsnstr(
++int (mvwinsnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -974,7 +976,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinsstr
+-int mvwinsstr(
++int (mvwinsstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -982,7 +984,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinstr
+-int mvwinstr(
++int (mvwinstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -990,7 +992,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwvline
+-int mvwvline(
++int (mvwvline)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -999,129 +1001,129 @@
+ { return(*(int *)0); }
+
+ #undef PAIR_NUMBER
+-int PAIR_NUMBER(
++int (PAIR_NUMBER)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef redrawwin
+-int redrawwin(
++int (redrawwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef refresh
+-int refresh(void)
++int (refresh)(void)
+ { return(*(int *)0); }
+
+ #undef scrl
+-int scrl(
++int (scrl)(
+ int z)
+ { return(*(int *)0); }
+
+ #undef scroll
+-int scroll(
++int (scroll)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef setscrreg
+-int setscrreg(
++int (setscrreg)(
+ int a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef slk_attr_off
+-int slk_attr_off(
++int (slk_attr_off)(
+ const attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef slk_attr_on
+-int slk_attr_on(
++int (slk_attr_on)(
+ attr_t a1,
+ void *z)
+ { return(*(int *)0); }
+
+ #undef standout
+-int standout(void)
++int (standout)(void)
+ { return(*(int *)0); }
+
+ #undef standend
+-int standend(void)
++int (standend)(void)
+ { return(*(int *)0); }
+
+ #undef timeout
+-void timeout(
++void (timeout)(
+ int z)
+ { /* void */ }
+
+ #undef touchline
+-int touchline(
++int (touchline)(
+ WINDOW *a1,
+ int a2,
+ int z)
+ { return(*(int *)0); }
+
+ #undef touchwin
+-int touchwin(
++int (touchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef untouchwin
+-int untouchwin(
++int (untouchwin)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef vline
+-int vline(
++int (vline)(
+ chtype a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef vw_printw
+-int vw_printw(
++int (vw_printw)(
+ WINDOW *a1,
+ const char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef vw_scanw
+-int vw_scanw(
++int (vw_scanw)(
+ WINDOW *a1,
+ char *a2,
+ va_list z)
+ { return(*(int *)0); }
+
+ #undef waddchstr
+-int waddchstr(
++int (waddchstr)(
+ WINDOW *a1,
+ const chtype *z)
+ { return(*(int *)0); }
+
+ #undef waddstr
+-int waddstr(
++int (waddstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef wattron
+-int wattron(
++int (wattron)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattroff
+-int wattroff(
++int (wattroff)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattrset
+-int wattrset(
++int (wattrset)(
+ WINDOW *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wattr_get
+-int wattr_get(
++int (wattr_get)(
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
+@@ -1129,7 +1131,7 @@
+ { return(*(int *)0); }
+
+ #undef wattr_set
+-int wattr_set(
++int (wattr_set)(
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
+@@ -1137,205 +1139,205 @@
+ { return(*(int *)0); }
+
+ #undef wdeleteln
+-int wdeleteln(
++int (wdeleteln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetstr
+-int wgetstr(
++int (wgetstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef winchstr
+-int winchstr(
++int (winchstr)(
+ WINDOW *a1,
+ chtype *z)
+ { return(*(int *)0); }
+
+ #undef winsertln
+-int winsertln(
++int (winsertln)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef winsstr
+-int winsstr(
++int (winsstr)(
+ WINDOW *a1,
+ const char *z)
+ { return(*(int *)0); }
+
+ #undef winstr
+-int winstr(
++int (winstr)(
+ WINDOW *a1,
+ char *z)
+ { return(*(int *)0); }
+
+ #undef wstandout
+-int wstandout(
++int (wstandout)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wstandend
+-int wstandend(
++int (wstandend)(
+ WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getattrs
+-int getattrs(
++int (getattrs)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcurx
+-int getcurx(
++int (getcurx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getcury
+-int getcury(
++int (getcury)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegx
+-int getbegx(
++int (getbegx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getbegy
+-int getbegy(
++int (getbegy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxx
+-int getmaxx(
++int (getmaxx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getmaxy
+-int getmaxy(
++int (getmaxy)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getparx
+-int getparx(
++int (getparx)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef getpary
+-int getpary(
++int (getpary)(
+ const WINDOW *z)
+ { return(*(int *)0); }
+
+ #undef wgetparent
+-WINDOW *wgetparent(
++WINDOW *(wgetparent)(
+ const WINDOW *z)
+ { return(*(WINDOW **)0); }
+
+ #undef is_cleared
+-NCURSES_BOOL is_cleared(
++NCURSES_BOOL (is_cleared)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idcok
+-NCURSES_BOOL is_idcok(
++NCURSES_BOOL (is_idcok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_idlok
+-NCURSES_BOOL is_idlok(
++NCURSES_BOOL (is_idlok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_immedok
+-NCURSES_BOOL is_immedok(
++NCURSES_BOOL (is_immedok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_keypad
+-NCURSES_BOOL is_keypad(
++NCURSES_BOOL (is_keypad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_leaveok
+-NCURSES_BOOL is_leaveok(
++NCURSES_BOOL (is_leaveok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_nodelay
+-NCURSES_BOOL is_nodelay(
++NCURSES_BOOL (is_nodelay)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_notimeout
+-NCURSES_BOOL is_notimeout(
++NCURSES_BOOL (is_notimeout)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_pad
+-NCURSES_BOOL is_pad(
++NCURSES_BOOL (is_pad)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_scrollok
+-NCURSES_BOOL is_scrollok(
++NCURSES_BOOL (is_scrollok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_subwin
+-NCURSES_BOOL is_subwin(
++NCURSES_BOOL (is_subwin)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef is_syncok
+-NCURSES_BOOL is_syncok(
++NCURSES_BOOL (is_syncok)(
+ const WINDOW *z)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef wgetscrreg
+-int wgetscrreg(
++int (wgetscrreg)(
+ const WINDOW *a1,
+ int *a2,
+ int *z)
+ { return(*(int *)0); }
+
+ #undef add_wch
+-int add_wch(
++int (add_wch)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef add_wchnstr
+-int add_wchnstr(
++int (add_wchnstr)(
+ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef add_wchstr
+-int add_wchstr(
++int (add_wchstr)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef addnwstr
+-int addnwstr(
++int (addnwstr)(
+ const wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef addwstr
+-int addwstr(
++int (addwstr)(
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef bkgrnd
+-int bkgrnd(
++int (bkgrnd)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef bkgrndset
+-void bkgrndset(
++void (bkgrndset)(
+ const cchar_t *z)
+ { /* void */ }
+
+ #undef border_set
+-int border_set(
++int (border_set)(
+ const cchar_t *a1,
+ const cchar_t *a2,
+ const cchar_t *a3,
+@@ -1347,96 +1349,96 @@
+ { return(*(int *)0); }
+
+ #undef box_set
+-int box_set(
++int (box_set)(
+ WINDOW *a1,
+ const cchar_t *a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef echo_wchar
+-int echo_wchar(
++int (echo_wchar)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef get_wch
+-int get_wch(
++int (get_wch)(
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef get_wstr
+-int get_wstr(
++int (get_wstr)(
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef getbkgrnd
+-int getbkgrnd(
++int (getbkgrnd)(
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef getn_wstr
+-int getn_wstr(
++int (getn_wstr)(
+ wint_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef hline_set
+-int hline_set(
++int (hline_set)(
+ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef in_wch
+-int in_wch(
++int (in_wch)(
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef in_wchnstr
+-int in_wchnstr(
++int (in_wchnstr)(
+ cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef in_wchstr
+-int in_wchstr(
++int (in_wchstr)(
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef innwstr
+-int innwstr(
++int (innwstr)(
+ wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef ins_nwstr
+-int ins_nwstr(
++int (ins_nwstr)(
+ const wchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef ins_wch
+-int ins_wch(
++int (ins_wch)(
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef ins_wstr
+-int ins_wstr(
++int (ins_wstr)(
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef inwstr
+-int inwstr(
++int (inwstr)(
+ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wch
+-int mvadd_wch(
++int (mvadd_wch)(
+ int a1,
+ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvadd_wchnstr
+-int mvadd_wchnstr(
++int (mvadd_wchnstr)(
+ int a1,
+ int a2,
+ const cchar_t *a3,
+@@ -1444,14 +1446,14 @@
+ { return(*(int *)0); }
+
+ #undef mvadd_wchstr
+-int mvadd_wchstr(
++int (mvadd_wchstr)(
+ int a1,
+ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvaddnwstr
+-int mvaddnwstr(
++int (mvaddnwstr)(
+ int a1,
+ int a2,
+ const wchar_t *a3,
+@@ -1459,28 +1461,28 @@
+ { return(*(int *)0); }
+
+ #undef mvaddwstr
+-int mvaddwstr(
++int (mvaddwstr)(
+ int a1,
+ int a2,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvget_wch
+-int mvget_wch(
++int (mvget_wch)(
+ int a1,
+ int a2,
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvget_wstr
+-int mvget_wstr(
++int (mvget_wstr)(
+ int a1,
+ int a2,
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef mvgetn_wstr
+-int mvgetn_wstr(
++int (mvgetn_wstr)(
+ int a1,
+ int a2,
+ wint_t *a3,
+@@ -1488,7 +1490,7 @@
+ { return(*(int *)0); }
+
+ #undef mvhline_set
+-int mvhline_set(
++int (mvhline_set)(
+ int a1,
+ int a2,
+ const cchar_t *a3,
+@@ -1496,14 +1498,14 @@
+ { return(*(int *)0); }
+
+ #undef mvin_wch
+-int mvin_wch(
++int (mvin_wch)(
+ int a1,
+ int a2,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvin_wchnstr
+-int mvin_wchnstr(
++int (mvin_wchnstr)(
+ int a1,
+ int a2,
+ cchar_t *a3,
+@@ -1511,14 +1513,14 @@
+ { return(*(int *)0); }
+
+ #undef mvin_wchstr
+-int mvin_wchstr(
++int (mvin_wchstr)(
+ int a1,
+ int a2,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvinnwstr
+-int mvinnwstr(
++int (mvinnwstr)(
+ int a1,
+ int a2,
+ wchar_t *a3,
+@@ -1526,7 +1528,7 @@
+ { return(*(int *)0); }
+
+ #undef mvins_nwstr
+-int mvins_nwstr(
++int (mvins_nwstr)(
+ int a1,
+ int a2,
+ const wchar_t *a3,
+@@ -1534,28 +1536,28 @@
+ { return(*(int *)0); }
+
+ #undef mvins_wch
+-int mvins_wch(
++int (mvins_wch)(
+ int a1,
+ int a2,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvins_wstr
+-int mvins_wstr(
++int (mvins_wstr)(
+ int a1,
+ int a2,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvinwstr
+-int mvinwstr(
++int (mvinwstr)(
+ int a1,
+ int a2,
+ wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mvvline_set
+-int mvvline_set(
++int (mvvline_set)(
+ int a1,
+ int a2,
+ const cchar_t *a3,
+@@ -1563,7 +1565,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwadd_wch
+-int mvwadd_wch(
++int (mvwadd_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1571,7 +1573,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwadd_wchnstr
+-int mvwadd_wchnstr(
++int (mvwadd_wchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1580,7 +1582,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwadd_wchstr
+-int mvwadd_wchstr(
++int (mvwadd_wchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1588,7 +1590,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddnwstr
+-int mvwaddnwstr(
++int (mvwaddnwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1597,7 +1599,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwaddwstr
+-int mvwaddwstr(
++int (mvwaddwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1605,7 +1607,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwget_wch
+-int mvwget_wch(
++int (mvwget_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1613,7 +1615,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwget_wstr
+-int mvwget_wstr(
++int (mvwget_wstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1621,7 +1623,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwgetn_wstr
+-int mvwgetn_wstr(
++int (mvwgetn_wstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1630,7 +1632,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwhline_set
+-int mvwhline_set(
++int (mvwhline_set)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1639,7 +1641,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwin_wch
+-int mvwin_wch(
++int (mvwin_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1647,7 +1649,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwin_wchnstr
+-int mvwin_wchnstr(
++int (mvwin_wchnstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1656,7 +1658,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwin_wchstr
+-int mvwin_wchstr(
++int (mvwin_wchstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1664,7 +1666,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinnwstr
+-int mvwinnwstr(
++int (mvwinnwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1673,7 +1675,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwins_nwstr
+-int mvwins_nwstr(
++int (mvwins_nwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1682,7 +1684,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwins_wch
+-int mvwins_wch(
++int (mvwins_wch)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1690,7 +1692,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwins_wstr
+-int mvwins_wstr(
++int (mvwins_wstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1698,7 +1700,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwinwstr
+-int mvwinwstr(
++int (mvwinwstr)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1706,7 +1708,7 @@
+ { return(*(int *)0); }
+
+ #undef mvwvline_set
+-int mvwvline_set(
++int (mvwvline_set)(
+ WINDOW *a1,
+ int a2,
+ int a3,
+@@ -1715,49 +1717,49 @@
+ { return(*(int *)0); }
+
+ #undef vline_set
+-int vline_set(
++int (vline_set)(
+ const cchar_t *a1,
+ int z)
+ { return(*(int *)0); }
+
+ #undef wadd_wchstr
+-int wadd_wchstr(
++int (wadd_wchstr)(
+ WINDOW *a1,
+ const cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef waddwstr
+-int waddwstr(
++int (waddwstr)(
+ WINDOW *a1,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef wget_wstr
+-int wget_wstr(
++int (wget_wstr)(
+ WINDOW *a1,
+ wint_t *z)
+ { return(*(int *)0); }
+
+ #undef wgetbkgrnd
+-int wgetbkgrnd(
++int (wgetbkgrnd)(
+ WINDOW *a1,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef win_wchstr
+-int win_wchstr(
++int (win_wchstr)(
+ WINDOW *a1,
+ cchar_t *z)
+ { return(*(int *)0); }
+
+ #undef wins_wstr
+-int wins_wstr(
++int (wins_wstr)(
+ WINDOW *a1,
+ const wchar_t *z)
+ { return(*(int *)0); }
+
+ #undef mouse_trafo
+-NCURSES_BOOL mouse_trafo(
++NCURSES_BOOL (mouse_trafo)(
+ int *a1,
+ int *a2,
+ NCURSES_BOOL z)
+@@ -2031,6 +2033,23 @@
+ void _nc_mvcur_wrap(void)
+ { /* void */ }
+
++#undef _nc_mvcur_sp
++int _nc_mvcur_sp(
++ SCREEN *sp,
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
++#undef _nc_mvcur
++int _nc_mvcur(
++ int yold,
++ int xold,
++ int ynew,
++ int xnew)
++ { return(*(int *)0); }
++
+ #undef mvcur_sp
+ int mvcur_sp(
+ SCREEN *sp,
+@@ -2097,6 +2116,8 @@
+
+ /* ./base/lib_newwin.c */
+
++#include "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
++
+ #undef _nc_freewin
+ int _nc_freewin(
+ WINDOW *win)
+@@ -2440,8 +2461,8 @@
+ void _nc_scroll_window(
+ WINDOW *win,
+ int const n,
+- short const top,
+- short const bottom,
++ int const top,
++ int const bottom,
+ cchar_t blank)
+ { /* void */ }
+
+@@ -2486,7 +2507,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -2495,7 +2516,7 @@
+ int slines,
+ int scolumns,
+ FILE *output,
+- NCURSES_BOOL filtered,
++ int filtered,
+ int slk_format)
+ { return(*(int *)0); }
+
+@@ -2777,7 +2798,7 @@
+
+ #undef _nc_signal_handler
+ void _nc_signal_handler(
+- NCURSES_BOOL enable)
++ int enable)
+ { /* void */ }
+
+ /* ./base/lib_ungetch.c */
+@@ -3014,12 +3035,6 @@
+ va_list ap)
+ { return(*(char **)0); }
+
+-/* ./base/memmove.c */
+-
+-#undef _nc_memmove
+-void _nc_memmove(void)
+- { /* void */ }
+-
+ /* ./base/vsscanf.c */
+
+ #undef _nc_vsscanf
+@@ -3554,7 +3569,7 @@
+ #undef _nc_copy_termtype
+ void _nc_copy_termtype(
+ TERMTYPE *dst,
+- TERMTYPE *src)
++ const TERMTYPE *src)
+ { /* void */ }
+
+ /* ./codes.c */
+@@ -3653,6 +3668,8 @@
+
+ /* ./tinfo/db_iterator.c */
+
++#include <time.h>
++
+ #undef _nc_tic_dir
+ const char *_nc_tic_dir(
+ const char *path)
+@@ -3744,6 +3761,12 @@
+ const char *name)
+ { return(*(int *)0); }
+
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
+ /* ./tinfo/home_terminfo.c */
+
+ #undef _nc_home_terminfo
+@@ -3929,8 +3952,6 @@
+
+ /* ./tinfo/lib_napms.c */
+
+-#include <time.h>
+-
+ #undef napms_sp
+ int napms_sp(
+ SCREEN *sp,
+@@ -4040,7 +4061,7 @@
+ #undef _nc_keypad
+ int _nc_keypad(
+ SCREEN *sp,
+- NCURSES_BOOL flag)
++ int flag)
+ { return(*(int *)0); }
+
+ /* ./tinfo/lib_raw.c */
+@@ -4149,11 +4170,22 @@
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef use_env
+ void use_env(
+ NCURSES_BOOL f)
+ { /* void */ }
+
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
+ #undef _nc_get_screensize
+ void _nc_get_screensize(
+ SCREEN *sp,
+@@ -4175,7 +4207,7 @@
+ #undef _nc_tinfo_cmdch
+ void _nc_tinfo_cmdch(
+ TERMINAL *termp,
+- char proto)
++ int proto)
+ { /* void */ }
+
+ #undef _nc_get_locale
+@@ -4196,7 +4228,7 @@
+ char *tname,
+ int Filedes,
+ int *errret,
+- NCURSES_BOOL reuse)
++ int reuse)
+ { return(*(int *)0); }
+
+ #undef new_prescr
+@@ -4335,7 +4367,7 @@
+ int _nc_tparm_analyze(
+ const char *string,
+ char *p_is_s[9],
+- int *popcount)
++ int *_nc_popcount)
+ { return(*(int *)0); }
+
+ #undef tparm
+@@ -4355,7 +4387,7 @@
+ #undef PC
+ char PC;
+ #undef ospeed
+-NCURSES_OSPEED ospeed;
++short ospeed;
+ #undef _nc_nulls_sent
+ int _nc_nulls_sent;
+
+@@ -4395,12 +4427,28 @@
+ int ch)
+ { return(*(int *)0); }
+
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
+ #undef putp_sp
+ int putp_sp(
+ SCREEN *sp,
+ const char *string)
+ { return(*(int *)0); }
+
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
+ #undef _nc_putp_sp
+ int _nc_putp_sp(
+ SCREEN *sp,
+@@ -4408,11 +4456,6 @@
+ const char *string)
+ { return(*(int *)0); }
+
+-#undef putp
+-int putp(
+- const char *string)
+- { return(*(int *)0); }
+-
+ #undef _nc_putp
+ int _nc_putp(
+ const char *name,
+@@ -4463,12 +4506,12 @@
+
+ #undef _nc_retrace_bool
+ NCURSES_BOOL _nc_retrace_bool(
+- NCURSES_BOOL code)
++ int code)
+ { return(*(NCURSES_BOOL *)0); }
+
+ #undef _nc_retrace_char
+ char _nc_retrace_char(
+- char code)
++ int code)
+ { return(*(char *)0); }
+
+ #undef _nc_retrace_int
+@@ -4713,10 +4756,30 @@
+ #undef strfnames
+ char *const strfnames[] = {0};
+
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
+ /* ./tinfo/read_entry.c */
+
+ #include <hashed_db.h>
+
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
+ #undef _nc_read_termtype
+ int _nc_read_termtype(
+ TERMTYPE *ptr,
+@@ -4741,25 +4804,8 @@
+
+ #include <sys/types.h>
+
+-#undef _nc_read_termcap_entry
+-int _nc_read_termcap_entry(
+- const char *const tn,
+- TERMTYPE *const tp)
+- { return(*(int *)0); }
+-
+-/* ./tinfo/setbuf.c */
+-
+-#undef _nc_set_buffer_sp
+-void _nc_set_buffer_sp(
+- SCREEN *sp,
+- FILE *ofp,
+- NCURSES_BOOL buffered)
+- { /* void */ }
+-
+-#undef _nc_set_buffer
+-void _nc_set_buffer(
+- FILE *ofp,
+- NCURSES_BOOL buffered)
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
+ { /* void */ }
+
+ /* ./tinfo/strings.c */
+@@ -5007,6 +5053,8 @@
+
+ #undef _nc_syntax
+ int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
+ #undef _nc_curr_file_pos
+ long _nc_curr_file_pos;
+ #undef _nc_comment_start
+Index: ncurses/llib-ltic
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltic 2012-06-30 20:16:16.000000000 +0000
+@@ -0,0 +1,212 @@
++/****************************************************************************
++ * Copyright (c) 2012 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/alloc_entry.c */
++
++#include <curses.priv.h>
++#include <tic.h>
++
++#undef _nc_init_entry
++void _nc_init_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_copy_entry
++ENTRY *_nc_copy_entry(
++ ENTRY *oldp)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_save_str
++char *_nc_save_str(
++ const char *const string)
++ { return(*(char **)0); }
++
++#undef _nc_wrap_entry
++void _nc_wrap_entry(
++ ENTRY *const ep,
++ NCURSES_BOOL copy_strings)
++ { /* void */ }
++
++#undef _nc_merge_entry
++void _nc_merge_entry(
++ TERMTYPE *const to,
++ TERMTYPE *const from)
++ { /* void */ }
++
++/* ./tinfo/captoinfo.c */
++
++#include <ctype.h>
++
++#undef _nc_captoinfo
++char *_nc_captoinfo(
++ const char *cap,
++ const char *s,
++ int const parameterized)
++ { return(*(char **)0); }
++
++#undef _nc_infotocap
++char *_nc_infotocap(
++ const char *cap,
++ const char *str,
++ int const parameterized)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_expand.c */
++
++#undef _nc_tic_expand
++char *_nc_tic_expand(
++ const char *srcp,
++ NCURSES_BOOL tic_format,
++ int numbers)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_parse.c */
++
++#undef _nc_check_termtype2
++void (*_nc_check_termtype2)(
++ TERMTYPE *p1,
++ NCURSES_BOOL p2);
++#undef _nc_check_termtype
++void (*_nc_check_termtype)(
++ TERMTYPE *p1);
++
++#undef _nc_entry_match
++NCURSES_BOOL _nc_entry_match(
++ char *n1,
++ char *n2)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_read_entry_source
++void _nc_read_entry_source(
++ FILE *fp,
++ char *buf,
++ int literal,
++ NCURSES_BOOL silent,
++ NCURSES_BOOL (*hook)(
++ ENTRY *p1))
++ { /* void */ }
++
++#undef _nc_resolve_uses2
++int _nc_resolve_uses2(
++ NCURSES_BOOL fullresolve,
++ NCURSES_BOOL literal)
++ { return(*(int *)0); }
++
++#undef _nc_resolve_uses
++int _nc_resolve_uses(
++ NCURSES_BOOL fullresolve)
++ { return(*(int *)0); }
++
++/* ./tinfo/comp_scan.c */
++
++#undef _nc_syntax
++int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
++#undef _nc_curr_file_pos
++long _nc_curr_file_pos;
++#undef _nc_comment_start
++long _nc_comment_start;
++#undef _nc_comment_end
++long _nc_comment_end;
++#undef _nc_start_line
++long _nc_start_line;
++#undef _nc_curr_token
++struct token _nc_curr_token;
++#undef _nc_disable_period
++NCURSES_BOOL _nc_disable_period;
++
++#undef _nc_reset_input
++void _nc_reset_input(
++ FILE *fp,
++ char *buf)
++ { /* void */ }
++
++#undef _nc_get_token
++int _nc_get_token(
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_trans_string
++int _nc_trans_string(
++ char *ptr,
++ char *last)
++ { return(*(int *)0); }
++
++#undef _nc_push_token
++void _nc_push_token(
++ int tokclass)
++ { /* void */ }
++
++#undef _nc_panic_mode
++void _nc_panic_mode(
++ char ch)
++ { /* void */ }
++
++/* ./tinfo/parse_entry.c */
++
++#undef _nc_parse_entry
++int _nc_parse_entry(
++ struct entry *entryp,
++ int literal,
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_capcmp
++int _nc_capcmp(
++ const char *s,
++ const char *t)
++ { return(*(int *)0); }
++
++typedef struct {
++ const char *from;
++ const char *to;
++} assoc;
++
++/* ./tinfo/write_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_set_writedir
++void _nc_set_writedir(
++ char *dir)
++ { /* void */ }
++
++#undef _nc_write_entry
++void _nc_write_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_tic_written
++int _nc_tic_written(void)
++ { return(*(int *)0); }
+Index: ncurses/llib-ltict
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltict 2013-12-14 22:01:15.000000000 +0000
+@@ -0,0 +1,212 @@
++/****************************************************************************
++ * Copyright (c) 2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2013 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/alloc_entry.c */
++
++#include <curses.priv.h>
++#include <tic.h>
++
++#undef _nc_init_entry
++void _nc_init_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_copy_entry
++ENTRY *_nc_copy_entry(
++ ENTRY *oldp)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_save_str
++char *_nc_save_str(
++ const char *const string)
++ { return(*(char **)0); }
++
++#undef _nc_wrap_entry
++void _nc_wrap_entry(
++ ENTRY *const ep,
++ NCURSES_BOOL copy_strings)
++ { /* void */ }
++
++#undef _nc_merge_entry
++void _nc_merge_entry(
++ TERMTYPE *const to,
++ TERMTYPE *const from)
++ { /* void */ }
++
++/* ./tinfo/captoinfo.c */
++
++#include <ctype.h>
++
++#undef _nc_captoinfo
++char *_nc_captoinfo(
++ const char *cap,
++ const char *s,
++ int const parameterized)
++ { return(*(char **)0); }
++
++#undef _nc_infotocap
++char *_nc_infotocap(
++ const char *cap,
++ const char *str,
++ int const parameterized)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_expand.c */
++
++#undef _nc_tic_expand
++char *_nc_tic_expand(
++ const char *srcp,
++ NCURSES_BOOL tic_format,
++ int numbers)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_parse.c */
++
++#undef _nc_check_termtype2
++void (*_nc_check_termtype2)(
++ TERMTYPE *p1,
++ NCURSES_BOOL p2);
++#undef _nc_check_termtype
++void (*_nc_check_termtype)(
++ TERMTYPE *p1);
++
++#undef _nc_entry_match
++NCURSES_BOOL _nc_entry_match(
++ char *n1,
++ char *n2)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_read_entry_source
++void _nc_read_entry_source(
++ FILE *fp,
++ char *buf,
++ int literal,
++ NCURSES_BOOL silent,
++ NCURSES_BOOL (*hook)(
++ ENTRY *p1))
++ { /* void */ }
++
++#undef _nc_resolve_uses2
++int _nc_resolve_uses2(
++ NCURSES_BOOL fullresolve,
++ NCURSES_BOOL literal)
++ { return(*(int *)0); }
++
++#undef _nc_resolve_uses
++int _nc_resolve_uses(
++ NCURSES_BOOL fullresolve)
++ { return(*(int *)0); }
++
++/* ./tinfo/comp_scan.c */
++
++#undef _nc_syntax
++int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
++#undef _nc_curr_file_pos
++long _nc_curr_file_pos;
++#undef _nc_comment_start
++long _nc_comment_start;
++#undef _nc_comment_end
++long _nc_comment_end;
++#undef _nc_start_line
++long _nc_start_line;
++#undef _nc_curr_token
++struct token _nc_curr_token;
++#undef _nc_disable_period
++NCURSES_BOOL _nc_disable_period;
++
++#undef _nc_reset_input
++void _nc_reset_input(
++ FILE *fp,
++ char *buf)
++ { /* void */ }
++
++#undef _nc_get_token
++int _nc_get_token(
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_trans_string
++int _nc_trans_string(
++ char *ptr,
++ char *last)
++ { return(*(int *)0); }
++
++#undef _nc_push_token
++void _nc_push_token(
++ int tokclass)
++ { /* void */ }
++
++#undef _nc_panic_mode
++void _nc_panic_mode(
++ char ch)
++ { /* void */ }
++
++/* ./tinfo/parse_entry.c */
++
++#undef _nc_parse_entry
++int _nc_parse_entry(
++ struct entry *entryp,
++ int literal,
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_capcmp
++int _nc_capcmp(
++ const char *s,
++ const char *t)
++ { return(*(int *)0); }
++
++typedef struct {
++ const char *from;
++ const char *to;
++} assoc;
++
++/* ./tinfo/write_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_set_writedir
++void _nc_set_writedir(
++ char *dir)
++ { /* void */ }
++
++#undef _nc_write_entry
++void _nc_write_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_tic_written
++int _nc_tic_written(void)
++ { return(*(int *)0); }
+Index: ncurses/llib-ltictw
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltictw 2012-06-30 21:24:08.000000000 +0000
+@@ -0,0 +1,212 @@
++/****************************************************************************
++ * Copyright (c) 2012 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/alloc_entry.c */
++
++#include <curses.priv.h>
++#include <tic.h>
++
++#undef _nc_init_entry
++void _nc_init_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_copy_entry
++ENTRY *_nc_copy_entry(
++ ENTRY *oldp)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_save_str
++char *_nc_save_str(
++ const char *const string)
++ { return(*(char **)0); }
++
++#undef _nc_wrap_entry
++void _nc_wrap_entry(
++ ENTRY *const ep,
++ NCURSES_BOOL copy_strings)
++ { /* void */ }
++
++#undef _nc_merge_entry
++void _nc_merge_entry(
++ TERMTYPE *const to,
++ TERMTYPE *const from)
++ { /* void */ }
++
++/* ./tinfo/captoinfo.c */
++
++#include <ctype.h>
++
++#undef _nc_captoinfo
++char *_nc_captoinfo(
++ const char *cap,
++ const char *s,
++ int const parameterized)
++ { return(*(char **)0); }
++
++#undef _nc_infotocap
++char *_nc_infotocap(
++ const char *cap,
++ const char *str,
++ int const parameterized)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_expand.c */
++
++#undef _nc_tic_expand
++char *_nc_tic_expand(
++ const char *srcp,
++ NCURSES_BOOL tic_format,
++ int numbers)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_parse.c */
++
++#undef _nc_check_termtype2
++void (*_nc_check_termtype2)(
++ TERMTYPE *p1,
++ NCURSES_BOOL p2);
++#undef _nc_check_termtype
++void (*_nc_check_termtype)(
++ TERMTYPE *p1);
++
++#undef _nc_entry_match
++NCURSES_BOOL _nc_entry_match(
++ char *n1,
++ char *n2)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_read_entry_source
++void _nc_read_entry_source(
++ FILE *fp,
++ char *buf,
++ int literal,
++ NCURSES_BOOL silent,
++ NCURSES_BOOL (*hook)(
++ ENTRY *p1))
++ { /* void */ }
++
++#undef _nc_resolve_uses2
++int _nc_resolve_uses2(
++ NCURSES_BOOL fullresolve,
++ NCURSES_BOOL literal)
++ { return(*(int *)0); }
++
++#undef _nc_resolve_uses
++int _nc_resolve_uses(
++ NCURSES_BOOL fullresolve)
++ { return(*(int *)0); }
++
++/* ./tinfo/comp_scan.c */
++
++#undef _nc_syntax
++int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
++#undef _nc_curr_file_pos
++long _nc_curr_file_pos;
++#undef _nc_comment_start
++long _nc_comment_start;
++#undef _nc_comment_end
++long _nc_comment_end;
++#undef _nc_start_line
++long _nc_start_line;
++#undef _nc_curr_token
++struct token _nc_curr_token;
++#undef _nc_disable_period
++NCURSES_BOOL _nc_disable_period;
++
++#undef _nc_reset_input
++void _nc_reset_input(
++ FILE *fp,
++ char *buf)
++ { /* void */ }
++
++#undef _nc_get_token
++int _nc_get_token(
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_trans_string
++int _nc_trans_string(
++ char *ptr,
++ char *last)
++ { return(*(int *)0); }
++
++#undef _nc_push_token
++void _nc_push_token(
++ int tokclass)
++ { /* void */ }
++
++#undef _nc_panic_mode
++void _nc_panic_mode(
++ char ch)
++ { /* void */ }
++
++/* ./tinfo/parse_entry.c */
++
++#undef _nc_parse_entry
++int _nc_parse_entry(
++ struct entry *entryp,
++ int literal,
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_capcmp
++int _nc_capcmp(
++ const char *s,
++ const char *t)
++ { return(*(int *)0); }
++
++typedef struct {
++ const char *from;
++ const char *to;
++} assoc;
++
++/* ./tinfo/write_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_set_writedir
++void _nc_set_writedir(
++ char *dir)
++ { /* void */ }
++
++#undef _nc_write_entry
++void _nc_write_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_tic_written
++int _nc_tic_written(void)
++ { return(*(int *)0); }
+Index: ncurses/llib-lticw
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-lticw 2012-06-30 21:00:26.000000000 +0000
+@@ -0,0 +1,212 @@
++/****************************************************************************
++ * Copyright (c) 2012 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/alloc_entry.c */
++
++#include <curses.priv.h>
++#include <tic.h>
++
++#undef _nc_init_entry
++void _nc_init_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_copy_entry
++ENTRY *_nc_copy_entry(
++ ENTRY *oldp)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_save_str
++char *_nc_save_str(
++ const char *const string)
++ { return(*(char **)0); }
++
++#undef _nc_wrap_entry
++void _nc_wrap_entry(
++ ENTRY *const ep,
++ NCURSES_BOOL copy_strings)
++ { /* void */ }
++
++#undef _nc_merge_entry
++void _nc_merge_entry(
++ TERMTYPE *const to,
++ TERMTYPE *const from)
++ { /* void */ }
++
++/* ./tinfo/captoinfo.c */
++
++#include <ctype.h>
++
++#undef _nc_captoinfo
++char *_nc_captoinfo(
++ const char *cap,
++ const char *s,
++ int const parameterized)
++ { return(*(char **)0); }
++
++#undef _nc_infotocap
++char *_nc_infotocap(
++ const char *cap,
++ const char *str,
++ int const parameterized)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_expand.c */
++
++#undef _nc_tic_expand
++char *_nc_tic_expand(
++ const char *srcp,
++ NCURSES_BOOL tic_format,
++ int numbers)
++ { return(*(char **)0); }
++
++/* ./tinfo/comp_parse.c */
++
++#undef _nc_check_termtype2
++void (*_nc_check_termtype2)(
++ TERMTYPE *p1,
++ NCURSES_BOOL p2);
++#undef _nc_check_termtype
++void (*_nc_check_termtype)(
++ TERMTYPE *p1);
++
++#undef _nc_entry_match
++NCURSES_BOOL _nc_entry_match(
++ char *n1,
++ char *n2)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_read_entry_source
++void _nc_read_entry_source(
++ FILE *fp,
++ char *buf,
++ int literal,
++ NCURSES_BOOL silent,
++ NCURSES_BOOL (*hook)(
++ ENTRY *p1))
++ { /* void */ }
++
++#undef _nc_resolve_uses2
++int _nc_resolve_uses2(
++ NCURSES_BOOL fullresolve,
++ NCURSES_BOOL literal)
++ { return(*(int *)0); }
++
++#undef _nc_resolve_uses
++int _nc_resolve_uses(
++ NCURSES_BOOL fullresolve)
++ { return(*(int *)0); }
++
++/* ./tinfo/comp_scan.c */
++
++#undef _nc_syntax
++int _nc_syntax;
++#undef _nc_strict_bsd
++int _nc_strict_bsd;
++#undef _nc_curr_file_pos
++long _nc_curr_file_pos;
++#undef _nc_comment_start
++long _nc_comment_start;
++#undef _nc_comment_end
++long _nc_comment_end;
++#undef _nc_start_line
++long _nc_start_line;
++#undef _nc_curr_token
++struct token _nc_curr_token;
++#undef _nc_disable_period
++NCURSES_BOOL _nc_disable_period;
++
++#undef _nc_reset_input
++void _nc_reset_input(
++ FILE *fp,
++ char *buf)
++ { /* void */ }
++
++#undef _nc_get_token
++int _nc_get_token(
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_trans_string
++int _nc_trans_string(
++ char *ptr,
++ char *last)
++ { return(*(int *)0); }
++
++#undef _nc_push_token
++void _nc_push_token(
++ int tokclass)
++ { /* void */ }
++
++#undef _nc_panic_mode
++void _nc_panic_mode(
++ char ch)
++ { /* void */ }
++
++/* ./tinfo/parse_entry.c */
++
++#undef _nc_parse_entry
++int _nc_parse_entry(
++ struct entry *entryp,
++ int literal,
++ NCURSES_BOOL silent)
++ { return(*(int *)0); }
++
++#undef _nc_capcmp
++int _nc_capcmp(
++ const char *s,
++ const char *t)
++ { return(*(int *)0); }
++
++typedef struct {
++ const char *from;
++ const char *to;
++} assoc;
++
++/* ./tinfo/write_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_set_writedir
++void _nc_set_writedir(
++ char *dir)
++ { /* void */ }
++
++#undef _nc_write_entry
++void _nc_write_entry(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_tic_written
++int _nc_tic_written(void)
++ { return(*(int *)0); }
+Index: ncurses/llib-ltinfo
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltinfo 2013-12-14 22:06:07.000000000 +0000
+@@ -0,0 +1,1526 @@
++/****************************************************************************
++ * Copyright (c) 2012,2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/access.c */
++
++#include <curses.priv.h>
++#include <ctype.h>
++#include <tic.h>
++
++#undef _nc_rootname
++char *_nc_rootname(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_is_abs_path
++NCURSES_BOOL _nc_is_abs_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_pathlast
++unsigned _nc_pathlast(
++ const char *path)
++ { return(*(unsigned *)0); }
++
++#undef _nc_basename
++char *_nc_basename(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_access
++int _nc_access(
++ const char *path,
++ int mode)
++ { return(*(int *)0); }
++
++#undef _nc_is_dir_path
++NCURSES_BOOL _nc_is_dir_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_is_file_path
++NCURSES_BOOL _nc_is_file_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_env_access
++int _nc_env_access(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/add_tries.c */
++
++#undef _nc_add_to_try
++int _nc_add_to_try(
++ TRIES **tree,
++ const char *str,
++ unsigned code)
++ { return(*(int *)0); }
++
++/* ./tinfo/alloc_ttype.c */
++
++#undef _nc_align_termtype
++void _nc_align_termtype(
++ TERMTYPE *to,
++ TERMTYPE *from)
++ { /* void */ }
++
++#undef _nc_copy_termtype
++void _nc_copy_termtype(
++ TERMTYPE *dst,
++ const TERMTYPE *src)
++ { /* void */ }
++
++/* ./codes.c */
++
++#undef boolcodes
++char *const boolcodes[] = {0};
++#undef numcodes
++char *const numcodes[] = {0};
++#undef strcodes
++char *const strcodes[] = {0};
++
++/* ./comp_captab.c */
++
++#include <hashsize.h>
++
++#undef _nc_get_table
++const struct name_table_entry *_nc_get_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct name_table_entry **)0); }
++
++#undef _nc_get_hash_table
++const HashValue *_nc_get_hash_table(
++ NCURSES_BOOL termcap)
++ { return(*(const HashValue **)0); }
++
++#undef _nc_get_alias_table
++const struct alias *_nc_get_alias_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct alias **)0); }
++
++#undef _nc_get_hash_info
++const HashData *_nc_get_hash_info(
++ NCURSES_BOOL termcap)
++ { return(*(const HashData **)0); }
++
++/* ./tinfo/comp_error.c */
++
++#undef _nc_suppress_warnings
++NCURSES_BOOL _nc_suppress_warnings;
++#undef _nc_curr_line
++int _nc_curr_line;
++#undef _nc_curr_col
++int _nc_curr_col;
++
++#undef _nc_get_source
++const char *_nc_get_source(void)
++ { return(*(const char **)0); }
++
++#undef _nc_set_source
++void _nc_set_source(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_set_type
++void _nc_set_type(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_get_type
++void _nc_get_type(
++ char *name)
++ { /* void */ }
++
++#undef _nc_warning
++void _nc_warning(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_err_abort
++void _nc_err_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_syserr_abort
++void _nc_syserr_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++/* ./tinfo/comp_hash.c */
++
++#undef _nc_find_entry
++struct name_table_entry const *_nc_find_entry(
++ const char *string,
++ const HashValue *hash_table)
++ { return(*(struct name_table_entry const **)0); }
++
++#undef _nc_find_type_entry
++struct name_table_entry const *_nc_find_type_entry(
++ const char *string,
++ int type,
++ NCURSES_BOOL termcap)
++ { return(*(struct name_table_entry const **)0); }
++
++/* ./tinfo/db_iterator.c */
++
++#include <time.h>
++
++#undef _nc_tic_dir
++const char *_nc_tic_dir(
++ const char *path)
++ { return(*(const char **)0); }
++
++#undef _nc_keep_tic_dir
++void _nc_keep_tic_dir(
++ const char *path)
++ { /* void */ }
++
++#undef _nc_last_db
++void _nc_last_db(void)
++ { /* void */ }
++
++#undef _nc_next_db
++const char *_nc_next_db(
++ DBDIRS *state,
++ int *offset)
++ { return(*(const char **)0); }
++
++#undef _nc_first_db
++void _nc_first_db(
++ DBDIRS *state,
++ int *offset)
++ { /* void */ }
++
++/* ./tinfo/doalloc.c */
++
++#undef _nc_doalloc
++void *_nc_doalloc(
++ void *oldp,
++ size_t amount)
++ { return(*(void **)0); }
++
++/* ./tinfo/entries.c */
++
++#undef _nc_head
++ENTRY *_nc_head;
++#undef _nc_tail
++ENTRY *_nc_tail;
++
++#undef _nc_free_entry
++void _nc_free_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { /* void */ }
++
++#undef _nc_free_entries
++void _nc_free_entries(
++ ENTRY *headp)
++ { /* void */ }
++
++#undef _nc_delink_entry
++ENTRY *_nc_delink_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_leaks_tinfo
++void _nc_leaks_tinfo(void)
++ { /* void */ }
++
++/* ./fallback.c */
++
++#undef _nc_fallback
++const TERMTYPE *_nc_fallback(
++ const char *name)
++ { return(*(const TERMTYPE **)0); }
++
++/* ./tinfo/free_ttype.c */
++
++#undef _nc_free_termtype
++void _nc_free_termtype(
++ TERMTYPE *ptr)
++ { /* void */ }
++
++#undef _nc_user_definable
++NCURSES_BOOL _nc_user_definable;
++
++#undef use_extended_names
++int use_extended_names(
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/getenv_num.c */
++
++#undef _nc_getenv_num
++int _nc_getenv_num(
++ const char *name)
++ { return(*(int *)0); }
++
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
++/* ./tinfo/home_terminfo.c */
++
++#undef _nc_home_terminfo
++char *_nc_home_terminfo(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/init_keytry.c */
++
++#if 0
++
++#include <init_keytry.h>
++
++#undef _nc_tinfo_fkeys
++const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
++
++#endif
++
++#undef _nc_init_keytry
++void _nc_init_keytry(
++ SCREEN *sp)
++ { /* void */ }
++
++/* ./tinfo/lib_acs.c */
++
++#undef acs_map
++chtype acs_map[128];
++
++#undef _nc_init_acs_sp
++void _nc_init_acs_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_init_acs
++void _nc_init_acs(void)
++ { /* void */ }
++
++/* ./tinfo/lib_baudrate.c */
++
++#include <termcap.h>
++
++struct speed {
++ int s;
++ int sp;
++};
++
++#undef _nc_baudrate
++int _nc_baudrate(
++ int OSpeed)
++ { return(*(int *)0); }
++
++#undef _nc_ospeed
++int _nc_ospeed(
++ int BaudRate)
++ { return(*(int *)0); }
++
++#undef baudrate_sp
++int baudrate_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef baudrate
++int baudrate(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_cur_term.c */
++
++#undef cur_term
++TERMINAL *cur_term;
++
++#undef set_curterm_sp
++TERMINAL *set_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef set_curterm
++TERMINAL *set_curterm(
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef del_curterm_sp
++int del_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef del_curterm
++int del_curterm(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_data.c */
++
++#undef stdscr
++WINDOW *stdscr;
++#undef curscr
++WINDOW *curscr;
++#undef newscr
++WINDOW *newscr;
++#undef _nc_screen_chain
++SCREEN *_nc_screen_chain;
++#undef SP
++SCREEN *SP;
++#undef _nc_globals
++NCURSES_GLOBALS _nc_globals;
++#undef _nc_prescreen
++NCURSES_PRESCREEN _nc_prescreen;
++
++#undef _nc_screen_of
++SCREEN *_nc_screen_of(
++ WINDOW *win)
++ { return(*(SCREEN **)0); }
++
++/* ./tinfo/lib_has_cap.c */
++
++#undef has_ic_sp
++NCURSES_BOOL has_ic_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_ic
++NCURSES_BOOL has_ic(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il_sp
++NCURSES_BOOL has_il_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il
++NCURSES_BOOL has_il(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./tinfo/lib_kernel.c */
++
++#undef erasechar_sp
++char erasechar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef erasechar
++char erasechar(void)
++ { return(*(char *)0); }
++
++#undef killchar_sp
++char killchar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef killchar
++char killchar(void)
++ { return(*(char *)0); }
++
++#undef flushinp_sp
++int flushinp_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef flushinp
++int flushinp(void)
++ { return(*(int *)0); }
++
++/* ./lib_keyname.c */
++
++struct kn { short offset; int code; };
++
++#undef keyname_sp
++char *keyname_sp(
++ SCREEN *sp,
++ int c)
++ { return(*(char **)0); }
++
++#undef keyname
++char *keyname(
++ int c)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_longname.c */
++
++#undef longname
++char *longname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_napms.c */
++
++#include <sys/time.h>
++
++#undef napms_sp
++int napms_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef napms
++int napms(
++ int ms)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_options.c */
++
++#undef idlok
++int idlok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef idcok
++void idcok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { /* void */ }
++
++#undef halfdelay_sp
++int halfdelay_sp(
++ SCREEN *sp,
++ int t)
++ { return(*(int *)0); }
++
++#undef halfdelay
++int halfdelay(
++ int t)
++ { return(*(int *)0); }
++
++#undef nodelay
++int nodelay(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef notimeout
++int notimeout(
++ WINDOW *win,
++ NCURSES_BOOL f)
++ { return(*(int *)0); }
++
++#undef wtimeout
++void wtimeout(
++ WINDOW *win,
++ int delay)
++ { /* void */ }
++
++#undef keypad
++int keypad(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef meta
++int meta(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef curs_set_sp
++int curs_set_sp(
++ SCREEN *sp,
++ int vis)
++ { return(*(int *)0); }
++
++#undef curs_set
++int curs_set(
++ int vis)
++ { return(*(int *)0); }
++
++#undef typeahead_sp
++int typeahead_sp(
++ SCREEN *sp,
++ int fd)
++ { return(*(int *)0); }
++
++#undef typeahead
++int typeahead(
++ int fd)
++ { return(*(int *)0); }
++
++#undef has_key_sp
++int has_key_sp(
++ SCREEN *sp,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef has_key
++int has_key(
++ int keycode)
++ { return(*(int *)0); }
++
++#undef _nc_putp_flush_sp
++int _nc_putp_flush_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *value)
++ { return(*(int *)0); }
++
++#undef _nc_keypad
++int _nc_keypad(
++ SCREEN *sp,
++ int flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_raw.c */
++
++#undef raw_sp
++int raw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef raw
++int raw(void)
++ { return(*(int *)0); }
++
++#undef cbreak_sp
++int cbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef cbreak
++int cbreak(void)
++ { return(*(int *)0); }
++
++#undef qiflush_sp
++void qiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef qiflush
++void qiflush(void)
++ { /* void */ }
++
++#undef noraw_sp
++int noraw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef noraw
++int noraw(void)
++ { return(*(int *)0); }
++
++#undef nocbreak_sp
++int nocbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef nocbreak
++int nocbreak(void)
++ { return(*(int *)0); }
++
++#undef noqiflush_sp
++void noqiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef noqiflush
++void noqiflush(void)
++ { /* void */ }
++
++#undef intrflush_sp
++int intrflush_sp(
++ SCREEN *sp,
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef intrflush
++int intrflush(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_setup.c */
++
++#include <locale.h>
++#include <sys/ioctl.h>
++#include <langinfo.h>
++
++#undef ttytype
++char ttytype[256];
++#undef LINES
++int LINES;
++#undef COLS
++int COLS;
++#undef TABSIZE
++int TABSIZE;
++
++#undef set_tabsize_sp
++int set_tabsize_sp(
++ SCREEN *sp,
++ int value)
++ { return(*(int *)0); }
++
++#undef set_tabsize
++int set_tabsize(
++ int value)
++ { return(*(int *)0); }
++
++#undef _nc_handle_sigwinch
++int _nc_handle_sigwinch(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef use_env_sp
++void use_env_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_env
++void use_env(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef _nc_get_screensize
++void _nc_get_screensize(
++ SCREEN *sp,
++ int *linep,
++ int *colp)
++ { /* void */ }
++
++#undef _nc_update_screensize
++void _nc_update_screensize(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_setup_tinfo
++int _nc_setup_tinfo(
++ const char *const tn,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++#undef _nc_tinfo_cmdch
++void _nc_tinfo_cmdch(
++ TERMINAL *termp,
++ int proto)
++ { /* void */ }
++
++#undef _nc_get_locale
++char *_nc_get_locale(void)
++ { return(*(char **)0); }
++
++#undef _nc_unicode_locale
++int _nc_unicode_locale(void)
++ { return(*(int *)0); }
++
++#undef _nc_locale_breaks_acs
++int _nc_locale_breaks_acs(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef _nc_setupterm
++int _nc_setupterm(
++ char *tname,
++ int Filedes,
++ int *errret,
++ int reuse)
++ { return(*(int *)0); }
++
++#undef new_prescr
++SCREEN *new_prescr(void)
++ { return(*(SCREEN **)0); }
++
++#undef setupterm
++int setupterm(
++ char *tname,
++ int Filedes,
++ int *errret)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_termcap.c */
++
++#undef UP
++char *UP;
++#undef BC
++char *BC;
++
++#undef tgetent_sp
++int tgetent_sp(
++ SCREEN *sp,
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#if 0
++
++#include <capdefaults.c>
++
++#endif
++
++#undef tgetent
++int tgetent(
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#undef tgetflag_sp
++int tgetflag_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetflag
++int tgetflag(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum_sp
++int tgetnum_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum
++int tgetnum(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetstr_sp
++char *tgetstr_sp(
++ SCREEN *sp,
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++#undef tgetstr
++char *tgetstr(
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_termname.c */
++
++#undef termname_sp
++char *termname_sp(
++ SCREEN *sp)
++ { return(*(char **)0); }
++
++#undef termname
++char *termname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tgoto.c */
++
++#undef tgoto
++char *tgoto(
++ const char *string,
++ int x,
++ int y)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ti.c */
++
++#undef tigetflag_sp
++int tigetflag_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetflag
++int tigetflag(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum_sp
++int tigetnum_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum
++int tigetnum(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetstr_sp
++char *tigetstr_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(char **)0); }
++
++#undef tigetstr
++char *tigetstr(
++ char *str)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tparm.c */
++
++#undef _nc_tparm_err
++int _nc_tparm_err;
++
++#undef _nc_tparm_analyze
++int _nc_tparm_analyze(
++ const char *string,
++ char *p_is_s[9],
++ int *_nc_popcount)
++ { return(*(int *)0); }
++
++#undef tparm
++char *tparm(
++ char *string,
++ ...)
++ { return(*(char **)0); }
++
++#undef tiparm
++char *tiparm(
++ const char *string,
++ ...)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tputs.c */
++
++#undef PC
++char PC;
++#undef ospeed
++short ospeed;
++#undef _nc_nulls_sent
++int _nc_nulls_sent;
++
++#undef _nc_set_no_padding
++void _nc_set_no_padding(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef delay_output_sp
++int delay_output_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef delay_output
++int delay_output(
++ int ms)
++ { return(*(int *)0); }
++
++#undef _nc_flush_sp
++void _nc_flush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_flush
++void _nc_flush(void)
++ { /* void */ }
++
++#undef _nc_outch_sp
++int _nc_outch_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_outch
++int _nc_outch(
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
++#undef putp_sp
++int putp_sp(
++ SCREEN *sp,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp_sp
++int _nc_putp_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp
++int _nc_putp(
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef tputs_sp
++int tputs_sp(
++ SCREEN *sp,
++ const char *string,
++ int affcnt,
++ NCURSES_OUTC_sp outc)
++ { return(*(int *)0); }
++
++#undef _nc_outc_wrapper
++int _nc_outc_wrapper(
++ SCREEN *sp,
++ int c)
++ { return(*(int *)0); }
++
++#undef tputs
++int tputs(
++ const char *string,
++ int affcnt,
++ int (*outc)(
++ int p1))
++ { return(*(int *)0); }
++
++/* ./trace/lib_trace.c */
++
++#undef _nc_tracing
++unsigned _nc_tracing;
++#undef _nc_tputs_trace
++const char *_nc_tputs_trace = {0};
++#undef _nc_outchars
++long _nc_outchars;
++
++#undef trace
++void trace(
++ const unsigned int tracelevel)
++ { /* void */ }
++
++#undef _tracef
++void _tracef(
++ const char *fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_retrace_bool
++NCURSES_BOOL _nc_retrace_bool(
++ int code)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_retrace_char
++char _nc_retrace_char(
++ int code)
++ { return(*(char *)0); }
++
++#undef _nc_retrace_int
++int _nc_retrace_int(
++ int code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_unsigned
++unsigned _nc_retrace_unsigned(
++ unsigned code)
++ { return(*(unsigned *)0); }
++
++#undef _nc_retrace_ptr
++char *_nc_retrace_ptr(
++ char *code)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_cptr
++const char *_nc_retrace_cptr(
++ const char *code)
++ { return(*(const char **)0); }
++
++#undef _nc_retrace_cvoid_ptr
++void *_nc_retrace_cvoid_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_void_ptr
++void *_nc_retrace_void_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_sp
++SCREEN *_nc_retrace_sp(
++ SCREEN *code)
++ { return(*(SCREEN **)0); }
++
++#undef _nc_retrace_win
++WINDOW *_nc_retrace_win(
++ WINDOW *code)
++ { return(*(WINDOW **)0); }
++
++/* ./trace/lib_traceatr.c */
++
++#undef _traceattr2
++char *_traceattr2(
++ int bufnum,
++ chtype newmode)
++ { return(*(char **)0); }
++
++#undef _traceattr
++char *_traceattr(
++ attr_t newmode)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_int_attr_t
++int _nc_retrace_int_attr_t(
++ attr_t code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_attr_t
++attr_t _nc_retrace_attr_t(
++ attr_t code)
++ { return(*(attr_t *)0); }
++
++#undef _nc_altcharset_name
++const char *_nc_altcharset_name(
++ attr_t attr,
++ chtype ch)
++ { return(*(const char **)0); }
++
++#undef _tracechtype2
++char *_tracechtype2(
++ int bufnum,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _tracechtype
++char *_tracechtype(
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_chtype
++chtype _nc_retrace_chtype(
++ chtype code)
++ { return(*(chtype *)0); }
++
++/* ./trace/lib_tracebits.c */
++
++typedef struct {
++ unsigned int val;
++ const char *name;
++} BITNAMES;
++
++#undef _nc_trace_ttymode
++char *_nc_trace_ttymode(
++ struct termios *tty)
++ { return(*(char **)0); }
++
++#undef _nc_tracebits
++char *_nc_tracebits(void)
++ { return(*(char **)0); }
++
++/* ./trace/lib_tracechr.c */
++
++#undef _nc_tracechar
++char *_nc_tracechar(
++ SCREEN *sp,
++ int ch)
++ { return(*(char **)0); }
++
++#undef _tracechar
++char *_tracechar(
++ int ch)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ttyflags.c */
++
++#undef _nc_get_tty_mode_sp
++int _nc_get_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_get_tty_mode
++int _nc_get_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode_sp
++int _nc_set_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode
++int _nc_set_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef def_shell_mode_sp
++int def_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_shell_mode
++int def_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef def_prog_mode_sp
++int def_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_prog_mode
++int def_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode_sp
++int reset_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode
++int reset_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode_sp
++int reset_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode
++int reset_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef savetty_sp
++int savetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef savetty
++int savetty(void)
++ { return(*(int *)0); }
++
++#undef resetty_sp
++int resetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef resetty
++int resetty(void)
++ { return(*(int *)0); }
++
++/* ./tty/lib_twait.c */
++
++#undef _nc_timed_wait
++int _nc_timed_wait(
++ SCREEN *sp,
++ int mode,
++ int milliseconds,
++ int *timeleft)
++ { return(*(int *)0); }
++
++/* ./tinfo/name_match.c */
++
++#undef _nc_first_name
++char *_nc_first_name(
++ const char *const sp)
++ { return(*(char **)0); }
++
++#undef _nc_name_match
++int _nc_name_match(
++ const char *const namelst,
++ const char *const name,
++ const char *const delim)
++ { return(*(int *)0); }
++
++/* ./names.c */
++
++#undef boolnames
++char *const boolnames[] = {0};
++#undef boolfnames
++char *const boolfnames[] = {0};
++#undef numnames
++char *const numnames[] = {0};
++#undef numfnames
++char *const numfnames[] = {0};
++#undef strnames
++char *const strnames[] = {0};
++#undef strfnames
++char *const strfnames[] = {0};
++
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++/* ./tinfo/read_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_read_termtype
++int _nc_read_termtype(
++ TERMTYPE *ptr,
++ char *buffer,
++ int limit)
++ { return(*(int *)0); }
++
++#undef _nc_read_file_entry
++int _nc_read_file_entry(
++ const char *const filename,
++ TERMTYPE *ptr)
++ { return(*(int *)0); }
++
++#undef _nc_read_entry
++int _nc_read_entry(
++ const char *const name,
++ char *const filename,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++/* ./tinfo/read_termcap.c */
++
++#include <sys/types.h>
++
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
++ { /* void */ }
++
++/* ./tinfo/strings.c */
++
++#undef _nc_str_init
++string_desc *_nc_str_init(
++ string_desc *dst,
++ char *src,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_null
++string_desc *_nc_str_null(
++ string_desc *dst,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_copy
++string_desc *_nc_str_copy(
++ string_desc *dst,
++ string_desc *src)
++ { return(*(string_desc **)0); }
++
++#undef _nc_safe_strcat
++NCURSES_BOOL _nc_safe_strcat(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_safe_strcpy
++NCURSES_BOOL _nc_safe_strcpy(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./trace/trace_buf.c */
++
++#undef _nc_trace_buf
++char *_nc_trace_buf(
++ int bufnum,
++ size_t want)
++ { return(*(char **)0); }
++
++#undef _nc_trace_bufcat
++char *_nc_trace_bufcat(
++ int bufnum,
++ const char *value)
++ { return(*(char **)0); }
++
++/* ./trace/trace_tries.c */
++
++#undef _nc_trace_tries
++void _nc_trace_tries(
++ TRIES *tree)
++ { /* void */ }
++
++/* ./base/tries.c */
++
++#undef _nc_expand_try
++char *_nc_expand_try(
++ TRIES *tree,
++ unsigned code,
++ int *count,
++ size_t len)
++ { return(*(char **)0); }
++
++#undef _nc_remove_key
++int _nc_remove_key(
++ TRIES **tree,
++ unsigned code)
++ { return(*(int *)0); }
++
++#undef _nc_remove_string
++int _nc_remove_string(
++ TRIES **tree,
++ const char *string)
++ { return(*(int *)0); }
++
++/* ./tinfo/trim_sgr0.c */
++
++#undef _nc_trim_sgr0
++char *_nc_trim_sgr0(
++ TERMTYPE *tp)
++ { return(*(char **)0); }
++
++/* ./unctrl.c */
++
++#undef unctrl_sp
++char *unctrl_sp(
++ SCREEN *sp,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef unctrl
++char *unctrl(
++ chtype ch)
++ { return(*(char **)0); }
++
++/* ./trace/visbuf.c */
++
++#undef _nc_visbuf2
++const char *_nc_visbuf2(
++ int bufnum,
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbuf
++const char *_nc_visbuf(
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbufn
++const char *_nc_visbufn(
++ const char *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf2
++const char *_nc_viscbuf2(
++ int bufnum,
++ const chtype *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf
++const char *_nc_viscbuf(
++ const chtype *buf,
++ int len)
++ { return(*(const char **)0); }
++
++/* ./base/define_key.c */
++
++#undef define_key_sp
++int define_key_sp(
++ SCREEN *sp,
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef define_key
++int define_key(
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++/* ./tinfo/hashed_db.c */
++
++#undef _nc_hashed_db
++void _nc_hashed_db(void)
++ { /* void */ }
++
++/* ./base/key_defined.c */
++
++#undef key_defined_sp
++int key_defined_sp(
++ SCREEN *sp,
++ const char *str)
++ { return(*(int *)0); }
++
++#undef key_defined
++int key_defined(
++ const char *str)
++ { return(*(int *)0); }
++
++/* ./base/keybound.c */
++
++#undef keybound_sp
++char *keybound_sp(
++ SCREEN *sp,
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++#undef keybound
++char *keybound(
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++/* ./base/keyok.c */
++
++#undef keyok_sp
++int keyok_sp(
++ SCREEN *sp,
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef keyok
++int keyok(
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./base/version.c */
++
++#undef curses_version
++const char *curses_version(void)
++ { return(*(const char **)0); }
+Index: ncurses/llib-ltinfot
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltinfot 2013-12-14 22:03:58.000000000 +0000
+@@ -0,0 +1,1635 @@
++/****************************************************************************
++ * Copyright (c) 2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2013 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/access.c */
++
++#include <curses.priv.h>
++#include <ctype.h>
++#include <tic.h>
++
++#undef _nc_rootname
++char *_nc_rootname(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_is_abs_path
++NCURSES_BOOL _nc_is_abs_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_pathlast
++unsigned _nc_pathlast(
++ const char *path)
++ { return(*(unsigned *)0); }
++
++#undef _nc_basename
++char *_nc_basename(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_access
++int _nc_access(
++ const char *path,
++ int mode)
++ { return(*(int *)0); }
++
++#undef _nc_is_dir_path
++NCURSES_BOOL _nc_is_dir_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_is_file_path
++NCURSES_BOOL _nc_is_file_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_env_access
++int _nc_env_access(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/add_tries.c */
++
++#undef _nc_add_to_try
++int _nc_add_to_try(
++ TRIES **tree,
++ const char *str,
++ unsigned code)
++ { return(*(int *)0); }
++
++/* ./tinfo/alloc_ttype.c */
++
++#undef _nc_align_termtype
++void _nc_align_termtype(
++ TERMTYPE *to,
++ TERMTYPE *from)
++ { /* void */ }
++
++#undef _nc_copy_termtype
++void _nc_copy_termtype(
++ TERMTYPE *dst,
++ const TERMTYPE *src)
++ { /* void */ }
++
++/* ./codes.c */
++
++#undef _nc_boolcodes
++char *const *_nc_boolcodes(void)
++ { return(*(char **)0); }
++
++#undef _nc_numcodes
++char *const *_nc_numcodes(void)
++ { return(*(char **)0); }
++
++#undef _nc_strcodes
++char *const *_nc_strcodes(void)
++ { return(*(char **)0); }
++
++/* ./comp_captab.c */
++
++#include <hashsize.h>
++
++#undef _nc_get_table
++const struct name_table_entry *_nc_get_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct name_table_entry **)0); }
++
++#undef _nc_get_hash_table
++const HashValue *_nc_get_hash_table(
++ NCURSES_BOOL termcap)
++ { return(*(const HashValue **)0); }
++
++#undef _nc_get_alias_table
++const struct alias *_nc_get_alias_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct alias **)0); }
++
++#undef _nc_get_hash_info
++const HashData *_nc_get_hash_info(
++ NCURSES_BOOL termcap)
++ { return(*(const HashData **)0); }
++
++/* ./tinfo/comp_error.c */
++
++#undef _nc_suppress_warnings
++NCURSES_BOOL _nc_suppress_warnings;
++#undef _nc_curr_line
++int _nc_curr_line;
++#undef _nc_curr_col
++int _nc_curr_col;
++
++#undef _nc_get_source
++const char *_nc_get_source(void)
++ { return(*(const char **)0); }
++
++#undef _nc_set_source
++void _nc_set_source(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_set_type
++void _nc_set_type(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_get_type
++void _nc_get_type(
++ char *name)
++ { /* void */ }
++
++#undef _nc_warning
++void _nc_warning(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_err_abort
++void _nc_err_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_syserr_abort
++void _nc_syserr_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++/* ./tinfo/comp_hash.c */
++
++#undef _nc_find_entry
++struct name_table_entry const *_nc_find_entry(
++ const char *string,
++ const HashValue *hash_table)
++ { return(*(struct name_table_entry const **)0); }
++
++#undef _nc_find_type_entry
++struct name_table_entry const *_nc_find_type_entry(
++ const char *string,
++ int type,
++ NCURSES_BOOL termcap)
++ { return(*(struct name_table_entry const **)0); }
++
++/* ./tinfo/db_iterator.c */
++
++#include <time.h>
++
++#undef _nc_tic_dir
++const char *_nc_tic_dir(
++ const char *path)
++ { return(*(const char **)0); }
++
++#undef _nc_keep_tic_dir
++void _nc_keep_tic_dir(
++ const char *path)
++ { /* void */ }
++
++#undef _nc_last_db
++void _nc_last_db(void)
++ { /* void */ }
++
++#undef _nc_next_db
++const char *_nc_next_db(
++ DBDIRS *state,
++ int *offset)
++ { return(*(const char **)0); }
++
++#undef _nc_first_db
++void _nc_first_db(
++ DBDIRS *state,
++ int *offset)
++ { /* void */ }
++
++/* ./tinfo/doalloc.c */
++
++#undef _nc_doalloc
++void *_nc_doalloc(
++ void *oldp,
++ size_t amount)
++ { return(*(void **)0); }
++
++/* ./tinfo/entries.c */
++
++#undef _nc_head
++ENTRY *_nc_head;
++#undef _nc_tail
++ENTRY *_nc_tail;
++
++#undef _nc_free_entry
++void _nc_free_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { /* void */ }
++
++#undef _nc_free_entries
++void _nc_free_entries(
++ ENTRY *headp)
++ { /* void */ }
++
++#undef _nc_delink_entry
++ENTRY *_nc_delink_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_leaks_tinfo
++void _nc_leaks_tinfo(void)
++ { /* void */ }
++
++/* ./fallback.c */
++
++#undef _nc_fallback
++const TERMTYPE *_nc_fallback(
++ const char *name)
++ { return(*(const TERMTYPE **)0); }
++
++/* ./tinfo/free_ttype.c */
++
++#undef _nc_free_termtype
++void _nc_free_termtype(
++ TERMTYPE *ptr)
++ { /* void */ }
++
++#undef _nc_user_definable
++NCURSES_BOOL _nc_user_definable;
++
++#undef use_extended_names
++int use_extended_names(
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/getenv_num.c */
++
++#undef _nc_getenv_num
++int _nc_getenv_num(
++ const char *name)
++ { return(*(int *)0); }
++
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
++/* ./tinfo/home_terminfo.c */
++
++#undef _nc_home_terminfo
++char *_nc_home_terminfo(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/init_keytry.c */
++
++#if 0
++
++#include <init_keytry.h>
++
++#undef _nc_tinfo_fkeys
++const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
++
++#endif
++
++#undef _nc_init_keytry
++void _nc_init_keytry(
++ SCREEN *sp)
++ { /* void */ }
++
++/* ./tinfo/lib_acs.c */
++
++#undef _nc_acs_map
++chtype *_nc_acs_map(void)
++ { return(*(chtype **)0); }
++
++#undef _nc_init_acs_sp
++void _nc_init_acs_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_init_acs
++void _nc_init_acs(void)
++ { /* void */ }
++
++/* ./tinfo/lib_baudrate.c */
++
++#include <termcap.h>
++
++struct speed {
++ int s;
++ int sp;
++};
++
++#undef _nc_baudrate
++int _nc_baudrate(
++ int OSpeed)
++ { return(*(int *)0); }
++
++#undef _nc_ospeed
++int _nc_ospeed(
++ int BaudRate)
++ { return(*(int *)0); }
++
++#undef baudrate_sp
++int baudrate_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef baudrate
++int baudrate(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_cur_term.c */
++
++#undef _nc_get_cur_term_sp
++TERMINAL *_nc_get_cur_term_sp(
++ SCREEN *sp)
++ { return(*(TERMINAL **)0); }
++
++#undef _nc_get_cur_term
++TERMINAL *_nc_get_cur_term(void)
++ { return(*(TERMINAL **)0); }
++
++#undef _nc_cur_term
++TERMINAL *_nc_cur_term(void)
++ { return(*(TERMINAL **)0); }
++
++#undef set_curterm_sp
++TERMINAL *set_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef set_curterm
++TERMINAL *set_curterm(
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef del_curterm_sp
++int del_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef del_curterm
++int del_curterm(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_data.c */
++
++#undef _nc_stdscr
++WINDOW *_nc_stdscr(void)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_curscr
++WINDOW *_nc_curscr(void)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_newscr
++WINDOW *_nc_newscr(void)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_screen_chain
++SCREEN *_nc_screen_chain;
++#undef SP
++SCREEN *SP;
++#undef _nc_globals
++NCURSES_GLOBALS _nc_globals;
++#undef _nc_prescreen
++NCURSES_PRESCREEN _nc_prescreen;
++
++#undef _nc_screen_of
++SCREEN *_nc_screen_of(
++ WINDOW *win)
++ { return(*(SCREEN **)0); }
++
++#undef _nc_init_pthreads
++void _nc_init_pthreads(void)
++ { /* void */ }
++
++#undef _nc_mutex_init
++void _nc_mutex_init(
++ pthread_mutex_t *obj)
++ { /* void */ }
++
++#undef _nc_mutex_lock
++int _nc_mutex_lock(
++ pthread_mutex_t *obj)
++ { return(*(int *)0); }
++
++#undef _nc_mutex_trylock
++int _nc_mutex_trylock(
++ pthread_mutex_t *obj)
++ { return(*(int *)0); }
++
++#undef _nc_mutex_unlock
++int _nc_mutex_unlock(
++ pthread_mutex_t *obj)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_has_cap.c */
++
++#undef has_ic_sp
++NCURSES_BOOL has_ic_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_ic
++NCURSES_BOOL has_ic(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il_sp
++NCURSES_BOOL has_il_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il
++NCURSES_BOOL has_il(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./tinfo/lib_kernel.c */
++
++#undef erasechar_sp
++char erasechar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef erasechar
++char erasechar(void)
++ { return(*(char *)0); }
++
++#undef killchar_sp
++char killchar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef killchar
++char killchar(void)
++ { return(*(char *)0); }
++
++#undef flushinp_sp
++int flushinp_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef flushinp
++int flushinp(void)
++ { return(*(int *)0); }
++
++/* ./lib_keyname.c */
++
++struct kn { short offset; int code; };
++
++#undef keyname_sp
++char *keyname_sp(
++ SCREEN *sp,
++ int c)
++ { return(*(char **)0); }
++
++#undef keyname
++char *keyname(
++ int c)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_longname.c */
++
++#undef longname_sp
++char *longname_sp(
++ SCREEN *sp)
++ { return(*(char **)0); }
++
++#undef longname
++char *longname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_napms.c */
++
++#undef napms_sp
++int napms_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef napms
++int napms(
++ int ms)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_options.c */
++
++#undef idlok
++int idlok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef idcok
++void idcok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { /* void */ }
++
++#undef halfdelay_sp
++int halfdelay_sp(
++ SCREEN *sp,
++ int t)
++ { return(*(int *)0); }
++
++#undef halfdelay
++int halfdelay(
++ int t)
++ { return(*(int *)0); }
++
++#undef nodelay
++int nodelay(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef notimeout
++int notimeout(
++ WINDOW *win,
++ NCURSES_BOOL f)
++ { return(*(int *)0); }
++
++#undef wtimeout
++void wtimeout(
++ WINDOW *win,
++ int delay)
++ { /* void */ }
++
++#undef keypad
++int keypad(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef meta
++int meta(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef curs_set_sp
++int curs_set_sp(
++ SCREEN *sp,
++ int vis)
++ { return(*(int *)0); }
++
++#undef curs_set
++int curs_set(
++ int vis)
++ { return(*(int *)0); }
++
++#undef typeahead_sp
++int typeahead_sp(
++ SCREEN *sp,
++ int fd)
++ { return(*(int *)0); }
++
++#undef typeahead
++int typeahead(
++ int fd)
++ { return(*(int *)0); }
++
++#undef has_key_sp
++int has_key_sp(
++ SCREEN *sp,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef has_key
++int has_key(
++ int keycode)
++ { return(*(int *)0); }
++
++#undef _nc_putp_flush_sp
++int _nc_putp_flush_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *value)
++ { return(*(int *)0); }
++
++#undef _nc_keypad
++int _nc_keypad(
++ SCREEN *sp,
++ int flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_raw.c */
++
++#undef raw_sp
++int raw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef raw
++int raw(void)
++ { return(*(int *)0); }
++
++#undef cbreak_sp
++int cbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef cbreak
++int cbreak(void)
++ { return(*(int *)0); }
++
++#undef qiflush_sp
++void qiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef qiflush
++void qiflush(void)
++ { /* void */ }
++
++#undef noraw_sp
++int noraw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef noraw
++int noraw(void)
++ { return(*(int *)0); }
++
++#undef nocbreak_sp
++int nocbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef nocbreak
++int nocbreak(void)
++ { return(*(int *)0); }
++
++#undef noqiflush_sp
++void noqiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef noqiflush
++void noqiflush(void)
++ { /* void */ }
++
++#undef intrflush_sp
++int intrflush_sp(
++ SCREEN *sp,
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef intrflush
++int intrflush(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_setup.c */
++
++#include <locale.h>
++#include <sys/ioctl.h>
++#include <langinfo.h>
++
++#undef _nc_ttytype
++char *_nc_ttytype(void)
++ { return(*(char **)0); }
++
++#undef _nc_ptr_Lines
++int *_nc_ptr_Lines(
++ SCREEN *sp)
++ { return(*(int **)0); }
++
++#undef _nc_LINES
++int _nc_LINES(void)
++ { return(*(int *)0); }
++
++#undef _nc_ptr_Cols
++int *_nc_ptr_Cols(
++ SCREEN *sp)
++ { return(*(int **)0); }
++
++#undef _nc_COLS
++int _nc_COLS(void)
++ { return(*(int *)0); }
++
++#undef _nc_ptr_Tabsize
++int *_nc_ptr_Tabsize(
++ SCREEN *sp)
++ { return(*(int **)0); }
++
++#undef _nc_TABSIZE
++int _nc_TABSIZE(void)
++ { return(*(int *)0); }
++
++#undef set_tabsize_sp
++int set_tabsize_sp(
++ SCREEN *sp,
++ int value)
++ { return(*(int *)0); }
++
++#undef set_tabsize
++int set_tabsize(
++ int value)
++ { return(*(int *)0); }
++
++#undef _nc_handle_sigwinch
++int _nc_handle_sigwinch(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef use_env_sp
++void use_env_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_env
++void use_env(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef _nc_get_screensize
++void _nc_get_screensize(
++ SCREEN *sp,
++ int *linep,
++ int *colp)
++ { /* void */ }
++
++#undef _nc_update_screensize
++void _nc_update_screensize(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_setup_tinfo
++int _nc_setup_tinfo(
++ const char *const tn,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++#undef _nc_tinfo_cmdch
++void _nc_tinfo_cmdch(
++ TERMINAL *termp,
++ int proto)
++ { /* void */ }
++
++#undef _nc_get_locale
++char *_nc_get_locale(void)
++ { return(*(char **)0); }
++
++#undef _nc_unicode_locale
++int _nc_unicode_locale(void)
++ { return(*(int *)0); }
++
++#undef _nc_locale_breaks_acs
++int _nc_locale_breaks_acs(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef _nc_setupterm
++int _nc_setupterm(
++ char *tname,
++ int Filedes,
++ int *errret,
++ int reuse)
++ { return(*(int *)0); }
++
++#undef new_prescr
++SCREEN *new_prescr(void)
++ { return(*(SCREEN **)0); }
++
++#undef setupterm
++int setupterm(
++ char *tname,
++ int Filedes,
++ int *errret)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_termcap.c */
++
++#undef UP
++char *UP;
++#undef BC
++char *BC;
++
++#undef tgetent_sp
++int tgetent_sp(
++ SCREEN *sp,
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#if 0
++
++#include <capdefaults.c>
++
++#endif
++
++#undef tgetent
++int tgetent(
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#undef tgetflag_sp
++int tgetflag_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetflag
++int tgetflag(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum_sp
++int tgetnum_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum
++int tgetnum(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetstr_sp
++char *tgetstr_sp(
++ SCREEN *sp,
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++#undef tgetstr
++char *tgetstr(
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_termname.c */
++
++#undef termname_sp
++char *termname_sp(
++ SCREEN *sp)
++ { return(*(char **)0); }
++
++#undef termname
++char *termname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tgoto.c */
++
++#undef tgoto
++char *tgoto(
++ const char *string,
++ int x,
++ int y)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ti.c */
++
++#undef tigetflag_sp
++int tigetflag_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetflag
++int tigetflag(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum_sp
++int tigetnum_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum
++int tigetnum(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetstr_sp
++char *tigetstr_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(char **)0); }
++
++#undef tigetstr
++char *tigetstr(
++ char *str)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tparm.c */
++
++#undef _nc_tparm_err
++int _nc_tparm_err;
++
++#undef _nc_tparm_analyze
++int _nc_tparm_analyze(
++ const char *string,
++ char *p_is_s[9],
++ int *_nc_popcount)
++ { return(*(int *)0); }
++
++#undef tparm
++char *tparm(
++ char *string,
++ ...)
++ { return(*(char **)0); }
++
++#undef tiparm
++char *tiparm(
++ const char *string,
++ ...)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tputs.c */
++
++#undef PC
++char PC;
++#undef ospeed
++short ospeed;
++#undef _nc_nulls_sent
++int _nc_nulls_sent;
++
++#undef _nc_set_no_padding
++void _nc_set_no_padding(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef delay_output_sp
++int delay_output_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef delay_output
++int delay_output(
++ int ms)
++ { return(*(int *)0); }
++
++#undef _nc_flush_sp
++void _nc_flush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_flush
++void _nc_flush(void)
++ { /* void */ }
++
++#undef _nc_outch_sp
++int _nc_outch_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_outch
++int _nc_outch(
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
++#undef putp_sp
++int putp_sp(
++ SCREEN *sp,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp_sp
++int _nc_putp_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp
++int _nc_putp(
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef tputs_sp
++int tputs_sp(
++ SCREEN *sp,
++ const char *string,
++ int affcnt,
++ NCURSES_OUTC_sp outc)
++ { return(*(int *)0); }
++
++#undef _nc_outc_wrapper
++int _nc_outc_wrapper(
++ SCREEN *sp,
++ int c)
++ { return(*(int *)0); }
++
++#undef tputs
++int tputs(
++ const char *string,
++ int affcnt,
++ int (*outc)(
++ int p1))
++ { return(*(int *)0); }
++
++/* ./trace/lib_trace.c */
++
++#undef _nc_tracing
++unsigned _nc_tracing;
++
++#undef _nc__nc_tputs_trace
++const char *_nc__nc_tputs_trace(void)
++ { return(*(const char **)0); }
++
++#undef _nc__nc_outchars
++long _nc__nc_outchars(void)
++ { return(*(long *)0); }
++
++#undef _nc_set_tputs_trace
++void _nc_set_tputs_trace(
++ const char *s)
++ { /* void */ }
++
++#undef _nc_count_outchars
++void _nc_count_outchars(
++ long increment)
++ { /* void */ }
++
++#undef trace
++void trace(
++ const unsigned int tracelevel)
++ { /* void */ }
++
++#undef _tracef
++void _tracef(
++ const char *fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_retrace_bool
++NCURSES_BOOL _nc_retrace_bool(
++ int code)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_retrace_char
++char _nc_retrace_char(
++ int code)
++ { return(*(char *)0); }
++
++#undef _nc_retrace_int
++int _nc_retrace_int(
++ int code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_unsigned
++unsigned _nc_retrace_unsigned(
++ unsigned code)
++ { return(*(unsigned *)0); }
++
++#undef _nc_retrace_ptr
++char *_nc_retrace_ptr(
++ char *code)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_cptr
++const char *_nc_retrace_cptr(
++ const char *code)
++ { return(*(const char **)0); }
++
++#undef _nc_retrace_cvoid_ptr
++void *_nc_retrace_cvoid_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_void_ptr
++void *_nc_retrace_void_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_sp
++SCREEN *_nc_retrace_sp(
++ SCREEN *code)
++ { return(*(SCREEN **)0); }
++
++#undef _nc_retrace_win
++WINDOW *_nc_retrace_win(
++ WINDOW *code)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_use_tracef
++int _nc_use_tracef(
++ unsigned mask)
++ { return(*(int *)0); }
++
++#undef _nc_locked_tracef
++void _nc_locked_tracef(
++ const char *fmt,
++ ...)
++ { /* void */ }
++
++/* ./trace/lib_traceatr.c */
++
++#undef _traceattr2
++char *_traceattr2(
++ int bufnum,
++ chtype newmode)
++ { return(*(char **)0); }
++
++#undef _traceattr
++char *_traceattr(
++ attr_t newmode)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_int_attr_t
++int _nc_retrace_int_attr_t(
++ attr_t code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_attr_t
++attr_t _nc_retrace_attr_t(
++ attr_t code)
++ { return(*(attr_t *)0); }
++
++#undef _nc_altcharset_name
++const char *_nc_altcharset_name(
++ attr_t attr,
++ chtype ch)
++ { return(*(const char **)0); }
++
++#undef _tracechtype2
++char *_tracechtype2(
++ int bufnum,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _tracechtype
++char *_tracechtype(
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_chtype
++chtype _nc_retrace_chtype(
++ chtype code)
++ { return(*(chtype *)0); }
++
++/* ./trace/lib_tracebits.c */
++
++typedef struct {
++ unsigned int val;
++ const char *name;
++} BITNAMES;
++
++#undef _nc_trace_ttymode
++char *_nc_trace_ttymode(
++ struct termios *tty)
++ { return(*(char **)0); }
++
++#undef _nc_tracebits
++char *_nc_tracebits(void)
++ { return(*(char **)0); }
++
++/* ./trace/lib_tracechr.c */
++
++#undef _nc_tracechar
++char *_nc_tracechar(
++ SCREEN *sp,
++ int ch)
++ { return(*(char **)0); }
++
++#undef _tracechar
++char *_tracechar(
++ int ch)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ttyflags.c */
++
++#undef _nc_get_tty_mode_sp
++int _nc_get_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_get_tty_mode
++int _nc_get_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode_sp
++int _nc_set_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode
++int _nc_set_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef def_shell_mode_sp
++int def_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_shell_mode
++int def_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef def_prog_mode_sp
++int def_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_prog_mode
++int def_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode_sp
++int reset_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode
++int reset_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode_sp
++int reset_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode
++int reset_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef savetty_sp
++int savetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef savetty
++int savetty(void)
++ { return(*(int *)0); }
++
++#undef resetty_sp
++int resetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef resetty
++int resetty(void)
++ { return(*(int *)0); }
++
++/* ./tty/lib_twait.c */
++
++#include <sys/time.h>
++
++#undef _nc_timed_wait
++int _nc_timed_wait(
++ SCREEN *sp,
++ int mode,
++ int milliseconds,
++ int *timeleft)
++ { return(*(int *)0); }
++
++/* ./tinfo/name_match.c */
++
++#undef _nc_first_name
++char *_nc_first_name(
++ const char *const sp)
++ { return(*(char **)0); }
++
++#undef _nc_name_match
++int _nc_name_match(
++ const char *const namelst,
++ const char *const name,
++ const char *const delim)
++ { return(*(int *)0); }
++
++/* ./names.c */
++
++#undef _nc_boolnames
++char *const *_nc_boolnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_boolfnames
++char *const *_nc_boolfnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_numnames
++char *const *_nc_numnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_numfnames
++char *const *_nc_numfnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_strnames
++char *const *_nc_strnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_strfnames
++char *const *_nc_strfnames(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++/* ./tinfo/read_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_read_termtype
++int _nc_read_termtype(
++ TERMTYPE *ptr,
++ char *buffer,
++ int limit)
++ { return(*(int *)0); }
++
++#undef _nc_read_file_entry
++int _nc_read_file_entry(
++ const char *const filename,
++ TERMTYPE *ptr)
++ { return(*(int *)0); }
++
++#undef _nc_read_entry
++int _nc_read_entry(
++ const char *const name,
++ char *const filename,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++/* ./tinfo/read_termcap.c */
++
++#include <sys/types.h>
++
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
++ { /* void */ }
++
++/* ./tinfo/strings.c */
++
++#undef _nc_str_init
++string_desc *_nc_str_init(
++ string_desc *dst,
++ char *src,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_null
++string_desc *_nc_str_null(
++ string_desc *dst,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_copy
++string_desc *_nc_str_copy(
++ string_desc *dst,
++ string_desc *src)
++ { return(*(string_desc **)0); }
++
++#undef _nc_safe_strcat
++NCURSES_BOOL _nc_safe_strcat(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_safe_strcpy
++NCURSES_BOOL _nc_safe_strcpy(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./trace/trace_buf.c */
++
++#undef _nc_trace_buf
++char *_nc_trace_buf(
++ int bufnum,
++ size_t want)
++ { return(*(char **)0); }
++
++#undef _nc_trace_bufcat
++char *_nc_trace_bufcat(
++ int bufnum,
++ const char *value)
++ { return(*(char **)0); }
++
++/* ./trace/trace_tries.c */
++
++#undef _nc_trace_tries
++void _nc_trace_tries(
++ TRIES *tree)
++ { /* void */ }
++
++/* ./base/tries.c */
++
++#undef _nc_expand_try
++char *_nc_expand_try(
++ TRIES *tree,
++ unsigned code,
++ int *count,
++ size_t len)
++ { return(*(char **)0); }
++
++#undef _nc_remove_key
++int _nc_remove_key(
++ TRIES **tree,
++ unsigned code)
++ { return(*(int *)0); }
++
++#undef _nc_remove_string
++int _nc_remove_string(
++ TRIES **tree,
++ const char *string)
++ { return(*(int *)0); }
++
++/* ./tinfo/trim_sgr0.c */
++
++#undef _nc_trim_sgr0
++char *_nc_trim_sgr0(
++ TERMTYPE *tp)
++ { return(*(char **)0); }
++
++/* ./unctrl.c */
++
++#undef unctrl_sp
++char *unctrl_sp(
++ SCREEN *sp,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef unctrl
++char *unctrl(
++ chtype ch)
++ { return(*(char **)0); }
++
++/* ./trace/visbuf.c */
++
++#undef _nc_visbuf2
++const char *_nc_visbuf2(
++ int bufnum,
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbuf
++const char *_nc_visbuf(
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbufn
++const char *_nc_visbufn(
++ const char *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf2
++const char *_nc_viscbuf2(
++ int bufnum,
++ const chtype *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf
++const char *_nc_viscbuf(
++ const chtype *buf,
++ int len)
++ { return(*(const char **)0); }
++
++/* ./base/define_key.c */
++
++#undef define_key_sp
++int define_key_sp(
++ SCREEN *sp,
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef define_key
++int define_key(
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++/* ./tinfo/hashed_db.c */
++
++#undef _nc_hashed_db
++void _nc_hashed_db(void)
++ { /* void */ }
++
++/* ./base/key_defined.c */
++
++#undef key_defined_sp
++int key_defined_sp(
++ SCREEN *sp,
++ const char *str)
++ { return(*(int *)0); }
++
++#undef key_defined
++int key_defined(
++ const char *str)
++ { return(*(int *)0); }
++
++/* ./base/keybound.c */
++
++#undef keybound_sp
++char *keybound_sp(
++ SCREEN *sp,
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++#undef keybound
++char *keybound(
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++/* ./base/keyok.c */
++
++#undef keyok_sp
++int keyok_sp(
++ SCREEN *sp,
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef keyok
++int keyok(
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./base/version.c */
++
++#undef curses_version
++const char *curses_version(void)
++ { return(*(const char **)0); }
+Index: ncurses/llib-ltinfotw
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltinfotw 2013-12-14 22:05:59.000000000 +0000
+@@ -0,0 +1,1668 @@
++/****************************************************************************
++ * Copyright (c) 2012,2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/access.c */
++
++#include <curses.priv.h>
++#include <ctype.h>
++#include <tic.h>
++
++#undef _nc_rootname
++char *_nc_rootname(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_is_abs_path
++NCURSES_BOOL _nc_is_abs_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_pathlast
++unsigned _nc_pathlast(
++ const char *path)
++ { return(*(unsigned *)0); }
++
++#undef _nc_basename
++char *_nc_basename(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_access
++int _nc_access(
++ const char *path,
++ int mode)
++ { return(*(int *)0); }
++
++#undef _nc_is_dir_path
++NCURSES_BOOL _nc_is_dir_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_is_file_path
++NCURSES_BOOL _nc_is_file_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_env_access
++int _nc_env_access(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/add_tries.c */
++
++#undef _nc_add_to_try
++int _nc_add_to_try(
++ TRIES **tree,
++ const char *str,
++ unsigned code)
++ { return(*(int *)0); }
++
++/* ./tinfo/alloc_ttype.c */
++
++#undef _nc_align_termtype
++void _nc_align_termtype(
++ TERMTYPE *to,
++ TERMTYPE *from)
++ { /* void */ }
++
++#undef _nc_copy_termtype
++void _nc_copy_termtype(
++ TERMTYPE *dst,
++ const TERMTYPE *src)
++ { /* void */ }
++
++/* ./codes.c */
++
++#undef _nc_boolcodes
++char *const *_nc_boolcodes(void)
++ { return(*(char **)0); }
++
++#undef _nc_numcodes
++char *const *_nc_numcodes(void)
++ { return(*(char **)0); }
++
++#undef _nc_strcodes
++char *const *_nc_strcodes(void)
++ { return(*(char **)0); }
++
++/* ./comp_captab.c */
++
++#include <hashsize.h>
++
++#undef _nc_get_table
++const struct name_table_entry *_nc_get_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct name_table_entry **)0); }
++
++#undef _nc_get_hash_table
++const HashValue *_nc_get_hash_table(
++ NCURSES_BOOL termcap)
++ { return(*(const HashValue **)0); }
++
++#undef _nc_get_alias_table
++const struct alias *_nc_get_alias_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct alias **)0); }
++
++#undef _nc_get_hash_info
++const HashData *_nc_get_hash_info(
++ NCURSES_BOOL termcap)
++ { return(*(const HashData **)0); }
++
++/* ./tinfo/comp_error.c */
++
++#undef _nc_suppress_warnings
++NCURSES_BOOL _nc_suppress_warnings;
++#undef _nc_curr_line
++int _nc_curr_line;
++#undef _nc_curr_col
++int _nc_curr_col;
++
++#undef _nc_get_source
++const char *_nc_get_source(void)
++ { return(*(const char **)0); }
++
++#undef _nc_set_source
++void _nc_set_source(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_set_type
++void _nc_set_type(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_get_type
++void _nc_get_type(
++ char *name)
++ { /* void */ }
++
++#undef _nc_warning
++void _nc_warning(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_err_abort
++void _nc_err_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_syserr_abort
++void _nc_syserr_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++/* ./tinfo/comp_hash.c */
++
++#undef _nc_find_entry
++struct name_table_entry const *_nc_find_entry(
++ const char *string,
++ const HashValue *hash_table)
++ { return(*(struct name_table_entry const **)0); }
++
++#undef _nc_find_type_entry
++struct name_table_entry const *_nc_find_type_entry(
++ const char *string,
++ int type,
++ NCURSES_BOOL termcap)
++ { return(*(struct name_table_entry const **)0); }
++
++/* ./tinfo/db_iterator.c */
++
++#include <time.h>
++
++#undef _nc_tic_dir
++const char *_nc_tic_dir(
++ const char *path)
++ { return(*(const char **)0); }
++
++#undef _nc_keep_tic_dir
++void _nc_keep_tic_dir(
++ const char *path)
++ { /* void */ }
++
++#undef _nc_last_db
++void _nc_last_db(void)
++ { /* void */ }
++
++#undef _nc_next_db
++const char *_nc_next_db(
++ DBDIRS *state,
++ int *offset)
++ { return(*(const char **)0); }
++
++#undef _nc_first_db
++void _nc_first_db(
++ DBDIRS *state,
++ int *offset)
++ { /* void */ }
++
++/* ./tinfo/doalloc.c */
++
++#undef _nc_doalloc
++void *_nc_doalloc(
++ void *oldp,
++ size_t amount)
++ { return(*(void **)0); }
++
++/* ./tinfo/entries.c */
++
++#undef _nc_head
++ENTRY *_nc_head;
++#undef _nc_tail
++ENTRY *_nc_tail;
++
++#undef _nc_free_entry
++void _nc_free_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { /* void */ }
++
++#undef _nc_free_entries
++void _nc_free_entries(
++ ENTRY *headp)
++ { /* void */ }
++
++#undef _nc_delink_entry
++ENTRY *_nc_delink_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_leaks_tinfo
++void _nc_leaks_tinfo(void)
++ { /* void */ }
++
++/* ./fallback.c */
++
++#undef _nc_fallback
++const TERMTYPE *_nc_fallback(
++ const char *name)
++ { return(*(const TERMTYPE **)0); }
++
++/* ./tinfo/free_ttype.c */
++
++#undef _nc_free_termtype
++void _nc_free_termtype(
++ TERMTYPE *ptr)
++ { /* void */ }
++
++#undef _nc_user_definable
++NCURSES_BOOL _nc_user_definable;
++
++#undef use_extended_names
++int use_extended_names(
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/getenv_num.c */
++
++#undef _nc_getenv_num
++int _nc_getenv_num(
++ const char *name)
++ { return(*(int *)0); }
++
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
++/* ./tinfo/home_terminfo.c */
++
++#undef _nc_home_terminfo
++char *_nc_home_terminfo(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/init_keytry.c */
++
++#if 0
++
++#include <init_keytry.h>
++
++#undef _nc_tinfo_fkeys
++const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
++
++#endif
++
++#undef _nc_init_keytry
++void _nc_init_keytry(
++ SCREEN *sp)
++ { /* void */ }
++
++/* ./tinfo/lib_acs.c */
++
++#undef _nc_acs_map
++chtype *_nc_acs_map(void)
++ { return(*(chtype **)0); }
++
++#undef _nc_init_acs_sp
++void _nc_init_acs_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_init_acs
++void _nc_init_acs(void)
++ { /* void */ }
++
++/* ./tinfo/lib_baudrate.c */
++
++#include <termcap.h>
++
++struct speed {
++ int s;
++ int sp;
++};
++
++#undef _nc_baudrate
++int _nc_baudrate(
++ int OSpeed)
++ { return(*(int *)0); }
++
++#undef _nc_ospeed
++int _nc_ospeed(
++ int BaudRate)
++ { return(*(int *)0); }
++
++#undef baudrate_sp
++int baudrate_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef baudrate
++int baudrate(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_cur_term.c */
++
++#undef _nc_get_cur_term_sp
++TERMINAL *_nc_get_cur_term_sp(
++ SCREEN *sp)
++ { return(*(TERMINAL **)0); }
++
++#undef _nc_get_cur_term
++TERMINAL *_nc_get_cur_term(void)
++ { return(*(TERMINAL **)0); }
++
++#undef _nc_cur_term
++TERMINAL *_nc_cur_term(void)
++ { return(*(TERMINAL **)0); }
++
++#undef set_curterm_sp
++TERMINAL *set_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef set_curterm
++TERMINAL *set_curterm(
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef del_curterm_sp
++int del_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef del_curterm
++int del_curterm(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_data.c */
++
++#undef _nc_stdscr
++WINDOW *_nc_stdscr(void)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_curscr
++WINDOW *_nc_curscr(void)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_newscr
++WINDOW *_nc_newscr(void)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_screen_chain
++SCREEN *_nc_screen_chain;
++#undef SP
++SCREEN *SP;
++#undef _nc_globals
++NCURSES_GLOBALS _nc_globals;
++#undef _nc_prescreen
++NCURSES_PRESCREEN _nc_prescreen;
++
++#undef _nc_screen_of
++SCREEN *_nc_screen_of(
++ WINDOW *win)
++ { return(*(SCREEN **)0); }
++
++#undef _nc_init_pthreads
++void _nc_init_pthreads(void)
++ { /* void */ }
++
++#undef _nc_mutex_init
++void _nc_mutex_init(
++ pthread_mutex_t *obj)
++ { /* void */ }
++
++#undef _nc_mutex_lock
++int _nc_mutex_lock(
++ pthread_mutex_t *obj)
++ { return(*(int *)0); }
++
++#undef _nc_mutex_trylock
++int _nc_mutex_trylock(
++ pthread_mutex_t *obj)
++ { return(*(int *)0); }
++
++#undef _nc_mutex_unlock
++int _nc_mutex_unlock(
++ pthread_mutex_t *obj)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_has_cap.c */
++
++#undef has_ic_sp
++NCURSES_BOOL has_ic_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_ic
++NCURSES_BOOL has_ic(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il_sp
++NCURSES_BOOL has_il_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il
++NCURSES_BOOL has_il(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./tinfo/lib_kernel.c */
++
++#undef erasechar_sp
++char erasechar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef erasechar
++char erasechar(void)
++ { return(*(char *)0); }
++
++#undef killchar_sp
++char killchar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef killchar
++char killchar(void)
++ { return(*(char *)0); }
++
++#undef flushinp_sp
++int flushinp_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef flushinp
++int flushinp(void)
++ { return(*(int *)0); }
++
++/* ./lib_keyname.c */
++
++struct kn { short offset; int code; };
++
++#undef keyname_sp
++char *keyname_sp(
++ SCREEN *sp,
++ int c)
++ { return(*(char **)0); }
++
++#undef keyname
++char *keyname(
++ int c)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_longname.c */
++
++#undef longname_sp
++char *longname_sp(
++ SCREEN *sp)
++ { return(*(char **)0); }
++
++#undef longname
++char *longname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_napms.c */
++
++#undef napms_sp
++int napms_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef napms
++int napms(
++ int ms)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_options.c */
++
++#undef idlok
++int idlok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef idcok
++void idcok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { /* void */ }
++
++#undef halfdelay_sp
++int halfdelay_sp(
++ SCREEN *sp,
++ int t)
++ { return(*(int *)0); }
++
++#undef halfdelay
++int halfdelay(
++ int t)
++ { return(*(int *)0); }
++
++#undef nodelay
++int nodelay(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef notimeout
++int notimeout(
++ WINDOW *win,
++ NCURSES_BOOL f)
++ { return(*(int *)0); }
++
++#undef wtimeout
++void wtimeout(
++ WINDOW *win,
++ int delay)
++ { /* void */ }
++
++#undef keypad
++int keypad(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef meta
++int meta(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef curs_set_sp
++int curs_set_sp(
++ SCREEN *sp,
++ int vis)
++ { return(*(int *)0); }
++
++#undef curs_set
++int curs_set(
++ int vis)
++ { return(*(int *)0); }
++
++#undef typeahead_sp
++int typeahead_sp(
++ SCREEN *sp,
++ int fd)
++ { return(*(int *)0); }
++
++#undef typeahead
++int typeahead(
++ int fd)
++ { return(*(int *)0); }
++
++#undef has_key_sp
++int has_key_sp(
++ SCREEN *sp,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef has_key
++int has_key(
++ int keycode)
++ { return(*(int *)0); }
++
++#undef _nc_putp_flush_sp
++int _nc_putp_flush_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *value)
++ { return(*(int *)0); }
++
++#undef _nc_keypad
++int _nc_keypad(
++ SCREEN *sp,
++ int flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_raw.c */
++
++#undef raw_sp
++int raw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef raw
++int raw(void)
++ { return(*(int *)0); }
++
++#undef cbreak_sp
++int cbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef cbreak
++int cbreak(void)
++ { return(*(int *)0); }
++
++#undef qiflush_sp
++void qiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef qiflush
++void qiflush(void)
++ { /* void */ }
++
++#undef noraw_sp
++int noraw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef noraw
++int noraw(void)
++ { return(*(int *)0); }
++
++#undef nocbreak_sp
++int nocbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef nocbreak
++int nocbreak(void)
++ { return(*(int *)0); }
++
++#undef noqiflush_sp
++void noqiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef noqiflush
++void noqiflush(void)
++ { /* void */ }
++
++#undef intrflush_sp
++int intrflush_sp(
++ SCREEN *sp,
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef intrflush
++int intrflush(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_setup.c */
++
++#include <locale.h>
++#include <sys/ioctl.h>
++#include <langinfo.h>
++
++#undef _nc_ttytype
++char *_nc_ttytype(void)
++ { return(*(char **)0); }
++
++#undef _nc_ptr_Lines
++int *_nc_ptr_Lines(
++ SCREEN *sp)
++ { return(*(int **)0); }
++
++#undef _nc_LINES
++int _nc_LINES(void)
++ { return(*(int *)0); }
++
++#undef _nc_ptr_Cols
++int *_nc_ptr_Cols(
++ SCREEN *sp)
++ { return(*(int **)0); }
++
++#undef _nc_COLS
++int _nc_COLS(void)
++ { return(*(int *)0); }
++
++#undef _nc_ptr_Tabsize
++int *_nc_ptr_Tabsize(
++ SCREEN *sp)
++ { return(*(int **)0); }
++
++#undef _nc_TABSIZE
++int _nc_TABSIZE(void)
++ { return(*(int *)0); }
++
++#undef set_tabsize_sp
++int set_tabsize_sp(
++ SCREEN *sp,
++ int value)
++ { return(*(int *)0); }
++
++#undef set_tabsize
++int set_tabsize(
++ int value)
++ { return(*(int *)0); }
++
++#undef _nc_handle_sigwinch
++int _nc_handle_sigwinch(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef use_env_sp
++void use_env_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_env
++void use_env(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef _nc_get_screensize
++void _nc_get_screensize(
++ SCREEN *sp,
++ int *linep,
++ int *colp)
++ { /* void */ }
++
++#undef _nc_update_screensize
++void _nc_update_screensize(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_setup_tinfo
++int _nc_setup_tinfo(
++ const char *const tn,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++#undef _nc_tinfo_cmdch
++void _nc_tinfo_cmdch(
++ TERMINAL *termp,
++ int proto)
++ { /* void */ }
++
++#undef _nc_get_locale
++char *_nc_get_locale(void)
++ { return(*(char **)0); }
++
++#undef _nc_unicode_locale
++int _nc_unicode_locale(void)
++ { return(*(int *)0); }
++
++#undef _nc_locale_breaks_acs
++int _nc_locale_breaks_acs(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef _nc_setupterm
++int _nc_setupterm(
++ char *tname,
++ int Filedes,
++ int *errret,
++ int reuse)
++ { return(*(int *)0); }
++
++#undef new_prescr
++SCREEN *new_prescr(void)
++ { return(*(SCREEN **)0); }
++
++#undef setupterm
++int setupterm(
++ char *tname,
++ int Filedes,
++ int *errret)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_termcap.c */
++
++#undef UP
++char *UP;
++#undef BC
++char *BC;
++
++#undef tgetent_sp
++int tgetent_sp(
++ SCREEN *sp,
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#if 0
++
++#include <capdefaults.c>
++
++#endif
++
++#undef tgetent
++int tgetent(
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#undef tgetflag_sp
++int tgetflag_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetflag
++int tgetflag(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum_sp
++int tgetnum_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum
++int tgetnum(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetstr_sp
++char *tgetstr_sp(
++ SCREEN *sp,
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++#undef tgetstr
++char *tgetstr(
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_termname.c */
++
++#undef termname_sp
++char *termname_sp(
++ SCREEN *sp)
++ { return(*(char **)0); }
++
++#undef termname
++char *termname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tgoto.c */
++
++#undef tgoto
++char *tgoto(
++ const char *string,
++ int x,
++ int y)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ti.c */
++
++#undef tigetflag_sp
++int tigetflag_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetflag
++int tigetflag(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum_sp
++int tigetnum_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum
++int tigetnum(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetstr_sp
++char *tigetstr_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(char **)0); }
++
++#undef tigetstr
++char *tigetstr(
++ char *str)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tparm.c */
++
++#undef _nc_tparm_err
++int _nc_tparm_err;
++
++#undef _nc_tparm_analyze
++int _nc_tparm_analyze(
++ const char *string,
++ char *p_is_s[9],
++ int *_nc_popcount)
++ { return(*(int *)0); }
++
++#undef tparm
++char *tparm(
++ char *string,
++ ...)
++ { return(*(char **)0); }
++
++#undef tiparm
++char *tiparm(
++ const char *string,
++ ...)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tputs.c */
++
++#undef PC
++char PC;
++#undef ospeed
++short ospeed;
++#undef _nc_nulls_sent
++int _nc_nulls_sent;
++
++#undef _nc_set_no_padding
++void _nc_set_no_padding(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef delay_output_sp
++int delay_output_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef delay_output
++int delay_output(
++ int ms)
++ { return(*(int *)0); }
++
++#undef _nc_flush_sp
++void _nc_flush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_flush
++void _nc_flush(void)
++ { /* void */ }
++
++#undef _nc_outch_sp
++int _nc_outch_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_outch
++int _nc_outch(
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
++#undef putp_sp
++int putp_sp(
++ SCREEN *sp,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp_sp
++int _nc_putp_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp
++int _nc_putp(
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef tputs_sp
++int tputs_sp(
++ SCREEN *sp,
++ const char *string,
++ int affcnt,
++ NCURSES_OUTC_sp outc)
++ { return(*(int *)0); }
++
++#undef _nc_outc_wrapper
++int _nc_outc_wrapper(
++ SCREEN *sp,
++ int c)
++ { return(*(int *)0); }
++
++#undef tputs
++int tputs(
++ const char *string,
++ int affcnt,
++ int (*outc)(
++ int p1))
++ { return(*(int *)0); }
++
++/* ./trace/lib_trace.c */
++
++#undef _nc_tracing
++unsigned _nc_tracing;
++
++#undef _nc__nc_tputs_trace
++const char *_nc__nc_tputs_trace(void)
++ { return(*(const char **)0); }
++
++#undef _nc__nc_outchars
++long _nc__nc_outchars(void)
++ { return(*(long *)0); }
++
++#undef _nc_set_tputs_trace
++void _nc_set_tputs_trace(
++ const char *s)
++ { /* void */ }
++
++#undef _nc_count_outchars
++void _nc_count_outchars(
++ long increment)
++ { /* void */ }
++
++#undef trace
++void trace(
++ const unsigned int tracelevel)
++ { /* void */ }
++
++#undef _tracef
++void _tracef(
++ const char *fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_retrace_bool
++NCURSES_BOOL _nc_retrace_bool(
++ int code)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_retrace_char
++char _nc_retrace_char(
++ int code)
++ { return(*(char *)0); }
++
++#undef _nc_retrace_int
++int _nc_retrace_int(
++ int code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_unsigned
++unsigned _nc_retrace_unsigned(
++ unsigned code)
++ { return(*(unsigned *)0); }
++
++#undef _nc_retrace_ptr
++char *_nc_retrace_ptr(
++ char *code)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_cptr
++const char *_nc_retrace_cptr(
++ const char *code)
++ { return(*(const char **)0); }
++
++#undef _nc_retrace_cvoid_ptr
++void *_nc_retrace_cvoid_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_void_ptr
++void *_nc_retrace_void_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_sp
++SCREEN *_nc_retrace_sp(
++ SCREEN *code)
++ { return(*(SCREEN **)0); }
++
++#undef _nc_retrace_win
++WINDOW *_nc_retrace_win(
++ WINDOW *code)
++ { return(*(WINDOW **)0); }
++
++#undef _nc_use_tracef
++int _nc_use_tracef(
++ unsigned mask)
++ { return(*(int *)0); }
++
++#undef _nc_locked_tracef
++void _nc_locked_tracef(
++ const char *fmt,
++ ...)
++ { /* void */ }
++
++/* ./trace/lib_traceatr.c */
++
++#undef _traceattr2
++char *_traceattr2(
++ int bufnum,
++ chtype newmode)
++ { return(*(char **)0); }
++
++#undef _traceattr
++char *_traceattr(
++ attr_t newmode)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_int_attr_t
++int _nc_retrace_int_attr_t(
++ attr_t code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_attr_t
++attr_t _nc_retrace_attr_t(
++ attr_t code)
++ { return(*(attr_t *)0); }
++
++#undef _nc_altcharset_name
++const char *_nc_altcharset_name(
++ attr_t attr,
++ chtype ch)
++ { return(*(const char **)0); }
++
++#undef _tracechtype2
++char *_tracechtype2(
++ int bufnum,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _tracechtype
++char *_tracechtype(
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_chtype
++chtype _nc_retrace_chtype(
++ chtype code)
++ { return(*(chtype *)0); }
++
++#undef _tracecchar_t2
++char *_tracecchar_t2(
++ int bufnum,
++ const cchar_t *ch)
++ { return(*(char **)0); }
++
++#undef _tracecchar_t
++char *_tracecchar_t(
++ const cchar_t *ch)
++ { return(*(char **)0); }
++
++/* ./trace/lib_tracebits.c */
++
++typedef struct {
++ unsigned int val;
++ const char *name;
++} BITNAMES;
++
++#undef _nc_trace_ttymode
++char *_nc_trace_ttymode(
++ struct termios *tty)
++ { return(*(char **)0); }
++
++#undef _nc_tracebits
++char *_nc_tracebits(void)
++ { return(*(char **)0); }
++
++/* ./trace/lib_tracechr.c */
++
++#undef _nc_tracechar
++char *_nc_tracechar(
++ SCREEN *sp,
++ int ch)
++ { return(*(char **)0); }
++
++#undef _tracechar
++char *_tracechar(
++ int ch)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ttyflags.c */
++
++#undef _nc_get_tty_mode_sp
++int _nc_get_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_get_tty_mode
++int _nc_get_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode_sp
++int _nc_set_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode
++int _nc_set_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef def_shell_mode_sp
++int def_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_shell_mode
++int def_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef def_prog_mode_sp
++int def_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_prog_mode
++int def_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode_sp
++int reset_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode
++int reset_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode_sp
++int reset_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode
++int reset_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef savetty_sp
++int savetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef savetty
++int savetty(void)
++ { return(*(int *)0); }
++
++#undef resetty_sp
++int resetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef resetty
++int resetty(void)
++ { return(*(int *)0); }
++
++/* ./tty/lib_twait.c */
++
++#include <sys/time.h>
++
++#undef _nc_timed_wait
++int _nc_timed_wait(
++ SCREEN *sp,
++ int mode,
++ int milliseconds,
++ int *timeleft)
++ { return(*(int *)0); }
++
++/* ./tinfo/name_match.c */
++
++#undef _nc_first_name
++char *_nc_first_name(
++ const char *const sp)
++ { return(*(char **)0); }
++
++#undef _nc_name_match
++int _nc_name_match(
++ const char *const namelst,
++ const char *const name,
++ const char *const delim)
++ { return(*(int *)0); }
++
++/* ./names.c */
++
++#undef _nc_boolnames
++char *const *_nc_boolnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_boolfnames
++char *const *_nc_boolfnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_numnames
++char *const *_nc_numnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_numfnames
++char *const *_nc_numfnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_strnames
++char *const *_nc_strnames(void)
++ { return(*(char **)0); }
++
++#undef _nc_strfnames
++char *const *_nc_strfnames(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++/* ./tinfo/read_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_read_termtype
++int _nc_read_termtype(
++ TERMTYPE *ptr,
++ char *buffer,
++ int limit)
++ { return(*(int *)0); }
++
++#undef _nc_read_file_entry
++int _nc_read_file_entry(
++ const char *const filename,
++ TERMTYPE *ptr)
++ { return(*(int *)0); }
++
++#undef _nc_read_entry
++int _nc_read_entry(
++ const char *const name,
++ char *const filename,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++/* ./tinfo/read_termcap.c */
++
++#include <sys/types.h>
++
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
++ { /* void */ }
++
++/* ./tinfo/strings.c */
++
++#undef _nc_str_init
++string_desc *_nc_str_init(
++ string_desc *dst,
++ char *src,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_null
++string_desc *_nc_str_null(
++ string_desc *dst,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_copy
++string_desc *_nc_str_copy(
++ string_desc *dst,
++ string_desc *src)
++ { return(*(string_desc **)0); }
++
++#undef _nc_safe_strcat
++NCURSES_BOOL _nc_safe_strcat(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_safe_strcpy
++NCURSES_BOOL _nc_safe_strcpy(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./trace/trace_buf.c */
++
++#undef _nc_trace_buf
++char *_nc_trace_buf(
++ int bufnum,
++ size_t want)
++ { return(*(char **)0); }
++
++#undef _nc_trace_bufcat
++char *_nc_trace_bufcat(
++ int bufnum,
++ const char *value)
++ { return(*(char **)0); }
++
++/* ./trace/trace_tries.c */
++
++#undef _nc_trace_tries
++void _nc_trace_tries(
++ TRIES *tree)
++ { /* void */ }
++
++/* ./base/tries.c */
++
++#undef _nc_expand_try
++char *_nc_expand_try(
++ TRIES *tree,
++ unsigned code,
++ int *count,
++ size_t len)
++ { return(*(char **)0); }
++
++#undef _nc_remove_key
++int _nc_remove_key(
++ TRIES **tree,
++ unsigned code)
++ { return(*(int *)0); }
++
++#undef _nc_remove_string
++int _nc_remove_string(
++ TRIES **tree,
++ const char *string)
++ { return(*(int *)0); }
++
++/* ./tinfo/trim_sgr0.c */
++
++#undef _nc_trim_sgr0
++char *_nc_trim_sgr0(
++ TERMTYPE *tp)
++ { return(*(char **)0); }
++
++/* ./unctrl.c */
++
++#undef unctrl_sp
++char *unctrl_sp(
++ SCREEN *sp,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef unctrl
++char *unctrl(
++ chtype ch)
++ { return(*(char **)0); }
++
++/* ./trace/visbuf.c */
++
++#undef _nc_visbuf2
++const char *_nc_visbuf2(
++ int bufnum,
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbuf
++const char *_nc_visbuf(
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbufn
++const char *_nc_visbufn(
++ const char *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viswbuf2
++const char *_nc_viswbuf2(
++ int bufnum,
++ const wchar_t *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_viswbuf
++const char *_nc_viswbuf(
++ const wchar_t *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_viswbufn
++const char *_nc_viswbufn(
++ const wchar_t *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viswibuf
++const char *_nc_viswibuf(
++ const wint_t *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf2
++const char *_nc_viscbuf2(
++ int bufnum,
++ const cchar_t *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf
++const char *_nc_viscbuf(
++ const cchar_t *buf,
++ int len)
++ { return(*(const char **)0); }
++
++/* ./base/define_key.c */
++
++#undef define_key_sp
++int define_key_sp(
++ SCREEN *sp,
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef define_key
++int define_key(
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++/* ./tinfo/hashed_db.c */
++
++#undef _nc_hashed_db
++void _nc_hashed_db(void)
++ { /* void */ }
++
++/* ./base/key_defined.c */
++
++#undef key_defined_sp
++int key_defined_sp(
++ SCREEN *sp,
++ const char *str)
++ { return(*(int *)0); }
++
++#undef key_defined
++int key_defined(
++ const char *str)
++ { return(*(int *)0); }
++
++/* ./base/keybound.c */
++
++#undef keybound_sp
++char *keybound_sp(
++ SCREEN *sp,
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++#undef keybound
++char *keybound(
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++/* ./base/keyok.c */
++
++#undef keyok_sp
++int keyok_sp(
++ SCREEN *sp,
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef keyok
++int keyok(
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./base/version.c */
++
++#undef curses_version
++const char *curses_version(void)
++ { return(*(const char **)0); }
+Index: ncurses/llib-ltinfow
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/llib-ltinfow 2013-12-14 22:05:51.000000000 +0000
+@@ -0,0 +1,1559 @@
++/****************************************************************************
++ * Copyright (c) 2012,2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2012 *
++ ****************************************************************************/
++/* LINTLIBRARY */
++
++/* ./tinfo/access.c */
++
++#include <curses.priv.h>
++#include <ctype.h>
++#include <tic.h>
++
++#undef _nc_rootname
++char *_nc_rootname(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_is_abs_path
++NCURSES_BOOL _nc_is_abs_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_pathlast
++unsigned _nc_pathlast(
++ const char *path)
++ { return(*(unsigned *)0); }
++
++#undef _nc_basename
++char *_nc_basename(
++ char *path)
++ { return(*(char **)0); }
++
++#undef _nc_access
++int _nc_access(
++ const char *path,
++ int mode)
++ { return(*(int *)0); }
++
++#undef _nc_is_dir_path
++NCURSES_BOOL _nc_is_dir_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_is_file_path
++NCURSES_BOOL _nc_is_file_path(
++ const char *path)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_env_access
++int _nc_env_access(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/add_tries.c */
++
++#undef _nc_add_to_try
++int _nc_add_to_try(
++ TRIES **tree,
++ const char *str,
++ unsigned code)
++ { return(*(int *)0); }
++
++/* ./tinfo/alloc_ttype.c */
++
++#undef _nc_align_termtype
++void _nc_align_termtype(
++ TERMTYPE *to,
++ TERMTYPE *from)
++ { /* void */ }
++
++#undef _nc_copy_termtype
++void _nc_copy_termtype(
++ TERMTYPE *dst,
++ const TERMTYPE *src)
++ { /* void */ }
++
++/* ./codes.c */
++
++#undef boolcodes
++char *const boolcodes[] = {0};
++#undef numcodes
++char *const numcodes[] = {0};
++#undef strcodes
++char *const strcodes[] = {0};
++
++/* ./comp_captab.c */
++
++#include <hashsize.h>
++
++#undef _nc_get_table
++const struct name_table_entry *_nc_get_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct name_table_entry **)0); }
++
++#undef _nc_get_hash_table
++const HashValue *_nc_get_hash_table(
++ NCURSES_BOOL termcap)
++ { return(*(const HashValue **)0); }
++
++#undef _nc_get_alias_table
++const struct alias *_nc_get_alias_table(
++ NCURSES_BOOL termcap)
++ { return(*(const struct alias **)0); }
++
++#undef _nc_get_hash_info
++const HashData *_nc_get_hash_info(
++ NCURSES_BOOL termcap)
++ { return(*(const HashData **)0); }
++
++/* ./tinfo/comp_error.c */
++
++#undef _nc_suppress_warnings
++NCURSES_BOOL _nc_suppress_warnings;
++#undef _nc_curr_line
++int _nc_curr_line;
++#undef _nc_curr_col
++int _nc_curr_col;
++
++#undef _nc_get_source
++const char *_nc_get_source(void)
++ { return(*(const char **)0); }
++
++#undef _nc_set_source
++void _nc_set_source(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_set_type
++void _nc_set_type(
++ const char *const name)
++ { /* void */ }
++
++#undef _nc_get_type
++void _nc_get_type(
++ char *name)
++ { /* void */ }
++
++#undef _nc_warning
++void _nc_warning(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_err_abort
++void _nc_err_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_syserr_abort
++void _nc_syserr_abort(
++ const char *const fmt,
++ ...)
++ { /* void */ }
++
++/* ./tinfo/comp_hash.c */
++
++#undef _nc_find_entry
++struct name_table_entry const *_nc_find_entry(
++ const char *string,
++ const HashValue *hash_table)
++ { return(*(struct name_table_entry const **)0); }
++
++#undef _nc_find_type_entry
++struct name_table_entry const *_nc_find_type_entry(
++ const char *string,
++ int type,
++ NCURSES_BOOL termcap)
++ { return(*(struct name_table_entry const **)0); }
++
++/* ./tinfo/db_iterator.c */
++
++#include <time.h>
++
++#undef _nc_tic_dir
++const char *_nc_tic_dir(
++ const char *path)
++ { return(*(const char **)0); }
++
++#undef _nc_keep_tic_dir
++void _nc_keep_tic_dir(
++ const char *path)
++ { /* void */ }
++
++#undef _nc_last_db
++void _nc_last_db(void)
++ { /* void */ }
++
++#undef _nc_next_db
++const char *_nc_next_db(
++ DBDIRS *state,
++ int *offset)
++ { return(*(const char **)0); }
++
++#undef _nc_first_db
++void _nc_first_db(
++ DBDIRS *state,
++ int *offset)
++ { /* void */ }
++
++/* ./tinfo/doalloc.c */
++
++#undef _nc_doalloc
++void *_nc_doalloc(
++ void *oldp,
++ size_t amount)
++ { return(*(void **)0); }
++
++/* ./tinfo/entries.c */
++
++#undef _nc_head
++ENTRY *_nc_head;
++#undef _nc_tail
++ENTRY *_nc_tail;
++
++#undef _nc_free_entry
++void _nc_free_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { /* void */ }
++
++#undef _nc_free_entries
++void _nc_free_entries(
++ ENTRY *headp)
++ { /* void */ }
++
++#undef _nc_delink_entry
++ENTRY *_nc_delink_entry(
++ ENTRY *headp,
++ TERMTYPE *tterm)
++ { return(*(ENTRY **)0); }
++
++#undef _nc_leaks_tinfo
++void _nc_leaks_tinfo(void)
++ { /* void */ }
++
++/* ./fallback.c */
++
++#undef _nc_fallback
++const TERMTYPE *_nc_fallback(
++ const char *name)
++ { return(*(const TERMTYPE **)0); }
++
++/* ./tinfo/free_ttype.c */
++
++#undef _nc_free_termtype
++void _nc_free_termtype(
++ TERMTYPE *ptr)
++ { /* void */ }
++
++#undef _nc_user_definable
++NCURSES_BOOL _nc_user_definable;
++
++#undef use_extended_names
++int use_extended_names(
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/getenv_num.c */
++
++#undef _nc_getenv_num
++int _nc_getenv_num(
++ const char *name)
++ { return(*(int *)0); }
++
++#undef _nc_setenv_num
++void _nc_setenv_num(
++ const char *name,
++ int value)
++ { /* void */ }
++
++/* ./tinfo/home_terminfo.c */
++
++#undef _nc_home_terminfo
++char *_nc_home_terminfo(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/init_keytry.c */
++
++#if 0
++
++#include <init_keytry.h>
++
++#undef _nc_tinfo_fkeys
++const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0};
++
++#endif
++
++#undef _nc_init_keytry
++void _nc_init_keytry(
++ SCREEN *sp)
++ { /* void */ }
++
++/* ./tinfo/lib_acs.c */
++
++#undef acs_map
++chtype acs_map[128];
++
++#undef _nc_init_acs_sp
++void _nc_init_acs_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_init_acs
++void _nc_init_acs(void)
++ { /* void */ }
++
++/* ./tinfo/lib_baudrate.c */
++
++#include <termcap.h>
++
++struct speed {
++ int s;
++ int sp;
++};
++
++#undef _nc_baudrate
++int _nc_baudrate(
++ int OSpeed)
++ { return(*(int *)0); }
++
++#undef _nc_ospeed
++int _nc_ospeed(
++ int BaudRate)
++ { return(*(int *)0); }
++
++#undef baudrate_sp
++int baudrate_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef baudrate
++int baudrate(void)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_cur_term.c */
++
++#undef cur_term
++TERMINAL *cur_term;
++
++#undef set_curterm_sp
++TERMINAL *set_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef set_curterm
++TERMINAL *set_curterm(
++ TERMINAL *termp)
++ { return(*(TERMINAL **)0); }
++
++#undef del_curterm_sp
++int del_curterm_sp(
++ SCREEN *sp,
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef del_curterm
++int del_curterm(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_data.c */
++
++#undef stdscr
++WINDOW *stdscr;
++#undef curscr
++WINDOW *curscr;
++#undef newscr
++WINDOW *newscr;
++#undef _nc_screen_chain
++SCREEN *_nc_screen_chain;
++#undef SP
++SCREEN *SP;
++#undef _nc_globals
++NCURSES_GLOBALS _nc_globals;
++#undef _nc_prescreen
++NCURSES_PRESCREEN _nc_prescreen;
++
++#undef _nc_screen_of
++SCREEN *_nc_screen_of(
++ WINDOW *win)
++ { return(*(SCREEN **)0); }
++
++/* ./tinfo/lib_has_cap.c */
++
++#undef has_ic_sp
++NCURSES_BOOL has_ic_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_ic
++NCURSES_BOOL has_ic(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il_sp
++NCURSES_BOOL has_il_sp(
++ SCREEN *sp)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef has_il
++NCURSES_BOOL has_il(void)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./tinfo/lib_kernel.c */
++
++#undef erasechar_sp
++char erasechar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef erasechar
++char erasechar(void)
++ { return(*(char *)0); }
++
++#undef killchar_sp
++char killchar_sp(
++ SCREEN *sp)
++ { return(*(char *)0); }
++
++#undef killchar
++char killchar(void)
++ { return(*(char *)0); }
++
++#undef flushinp_sp
++int flushinp_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef flushinp
++int flushinp(void)
++ { return(*(int *)0); }
++
++/* ./lib_keyname.c */
++
++struct kn { short offset; int code; };
++
++#undef keyname_sp
++char *keyname_sp(
++ SCREEN *sp,
++ int c)
++ { return(*(char **)0); }
++
++#undef keyname
++char *keyname(
++ int c)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_longname.c */
++
++#undef longname
++char *longname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_napms.c */
++
++#include <sys/time.h>
++
++#undef napms_sp
++int napms_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef napms
++int napms(
++ int ms)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_options.c */
++
++#undef idlok
++int idlok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef idcok
++void idcok(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { /* void */ }
++
++#undef halfdelay_sp
++int halfdelay_sp(
++ SCREEN *sp,
++ int t)
++ { return(*(int *)0); }
++
++#undef halfdelay
++int halfdelay(
++ int t)
++ { return(*(int *)0); }
++
++#undef nodelay
++int nodelay(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef notimeout
++int notimeout(
++ WINDOW *win,
++ NCURSES_BOOL f)
++ { return(*(int *)0); }
++
++#undef wtimeout
++void wtimeout(
++ WINDOW *win,
++ int delay)
++ { /* void */ }
++
++#undef keypad
++int keypad(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef meta
++int meta(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef curs_set_sp
++int curs_set_sp(
++ SCREEN *sp,
++ int vis)
++ { return(*(int *)0); }
++
++#undef curs_set
++int curs_set(
++ int vis)
++ { return(*(int *)0); }
++
++#undef typeahead_sp
++int typeahead_sp(
++ SCREEN *sp,
++ int fd)
++ { return(*(int *)0); }
++
++#undef typeahead
++int typeahead(
++ int fd)
++ { return(*(int *)0); }
++
++#undef has_key_sp
++int has_key_sp(
++ SCREEN *sp,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef has_key
++int has_key(
++ int keycode)
++ { return(*(int *)0); }
++
++#undef _nc_putp_flush_sp
++int _nc_putp_flush_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *value)
++ { return(*(int *)0); }
++
++#undef _nc_keypad
++int _nc_keypad(
++ SCREEN *sp,
++ int flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_raw.c */
++
++#undef raw_sp
++int raw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef raw
++int raw(void)
++ { return(*(int *)0); }
++
++#undef cbreak_sp
++int cbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef cbreak
++int cbreak(void)
++ { return(*(int *)0); }
++
++#undef qiflush_sp
++void qiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef qiflush
++void qiflush(void)
++ { /* void */ }
++
++#undef noraw_sp
++int noraw_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef noraw
++int noraw(void)
++ { return(*(int *)0); }
++
++#undef nocbreak_sp
++int nocbreak_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef nocbreak
++int nocbreak(void)
++ { return(*(int *)0); }
++
++#undef noqiflush_sp
++void noqiflush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef noqiflush
++void noqiflush(void)
++ { /* void */ }
++
++#undef intrflush_sp
++int intrflush_sp(
++ SCREEN *sp,
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef intrflush
++int intrflush(
++ WINDOW *win,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_setup.c */
++
++#include <locale.h>
++#include <sys/ioctl.h>
++#include <langinfo.h>
++
++#undef ttytype
++char ttytype[256];
++#undef LINES
++int LINES;
++#undef COLS
++int COLS;
++#undef TABSIZE
++int TABSIZE;
++
++#undef set_tabsize_sp
++int set_tabsize_sp(
++ SCREEN *sp,
++ int value)
++ { return(*(int *)0); }
++
++#undef set_tabsize
++int set_tabsize(
++ int value)
++ { return(*(int *)0); }
++
++#undef _nc_handle_sigwinch
++int _nc_handle_sigwinch(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef use_env_sp
++void use_env_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl_sp
++void use_tioctl_sp(
++ SCREEN *sp,
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_env
++void use_env(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef use_tioctl
++void use_tioctl(
++ NCURSES_BOOL f)
++ { /* void */ }
++
++#undef _nc_get_screensize
++void _nc_get_screensize(
++ SCREEN *sp,
++ int *linep,
++ int *colp)
++ { /* void */ }
++
++#undef _nc_update_screensize
++void _nc_update_screensize(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_setup_tinfo
++int _nc_setup_tinfo(
++ const char *const tn,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++#undef _nc_tinfo_cmdch
++void _nc_tinfo_cmdch(
++ TERMINAL *termp,
++ int proto)
++ { /* void */ }
++
++#undef _nc_get_locale
++char *_nc_get_locale(void)
++ { return(*(char **)0); }
++
++#undef _nc_unicode_locale
++int _nc_unicode_locale(void)
++ { return(*(int *)0); }
++
++#undef _nc_locale_breaks_acs
++int _nc_locale_breaks_acs(
++ TERMINAL *termp)
++ { return(*(int *)0); }
++
++#undef _nc_setupterm
++int _nc_setupterm(
++ char *tname,
++ int Filedes,
++ int *errret,
++ int reuse)
++ { return(*(int *)0); }
++
++#undef new_prescr
++SCREEN *new_prescr(void)
++ { return(*(SCREEN **)0); }
++
++#undef setupterm
++int setupterm(
++ char *tname,
++ int Filedes,
++ int *errret)
++ { return(*(int *)0); }
++
++/* ./tinfo/lib_termcap.c */
++
++#undef UP
++char *UP;
++#undef BC
++char *BC;
++
++#undef tgetent_sp
++int tgetent_sp(
++ SCREEN *sp,
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#if 0
++
++#include <capdefaults.c>
++
++#endif
++
++#undef tgetent
++int tgetent(
++ char *bufp,
++ const char *name)
++ { return(*(int *)0); }
++
++#undef tgetflag_sp
++int tgetflag_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetflag
++int tgetflag(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum_sp
++int tgetnum_sp(
++ SCREEN *sp,
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetnum
++int tgetnum(
++ char *id)
++ { return(*(int *)0); }
++
++#undef tgetstr_sp
++char *tgetstr_sp(
++ SCREEN *sp,
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++#undef tgetstr
++char *tgetstr(
++ char *id,
++ char **area)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_termname.c */
++
++#undef termname_sp
++char *termname_sp(
++ SCREEN *sp)
++ { return(*(char **)0); }
++
++#undef termname
++char *termname(void)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tgoto.c */
++
++#undef tgoto
++char *tgoto(
++ const char *string,
++ int x,
++ int y)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ti.c */
++
++#undef tigetflag_sp
++int tigetflag_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetflag
++int tigetflag(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum_sp
++int tigetnum_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetnum
++int tigetnum(
++ char *str)
++ { return(*(int *)0); }
++
++#undef tigetstr_sp
++char *tigetstr_sp(
++ SCREEN *sp,
++ char *str)
++ { return(*(char **)0); }
++
++#undef tigetstr
++char *tigetstr(
++ char *str)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tparm.c */
++
++#undef _nc_tparm_err
++int _nc_tparm_err;
++
++#undef _nc_tparm_analyze
++int _nc_tparm_analyze(
++ const char *string,
++ char *p_is_s[9],
++ int *_nc_popcount)
++ { return(*(int *)0); }
++
++#undef tparm
++char *tparm(
++ char *string,
++ ...)
++ { return(*(char **)0); }
++
++#undef tiparm
++char *tiparm(
++ const char *string,
++ ...)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_tputs.c */
++
++#undef PC
++char PC;
++#undef ospeed
++short ospeed;
++#undef _nc_nulls_sent
++int _nc_nulls_sent;
++
++#undef _nc_set_no_padding
++void _nc_set_no_padding(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef delay_output_sp
++int delay_output_sp(
++ SCREEN *sp,
++ int ms)
++ { return(*(int *)0); }
++
++#undef delay_output
++int delay_output(
++ int ms)
++ { return(*(int *)0); }
++
++#undef _nc_flush_sp
++void _nc_flush_sp(
++ SCREEN *sp)
++ { /* void */ }
++
++#undef _nc_flush
++void _nc_flush(void)
++ { /* void */ }
++
++#undef _nc_outch_sp
++int _nc_outch_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_outch
++int _nc_outch(
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar_sp
++int _nc_putchar_sp(
++ SCREEN *sp,
++ int ch)
++ { return(*(int *)0); }
++
++#undef _nc_putchar
++int _nc_putchar(
++ int ch)
++ { return(*(int *)0); }
++
++#undef putp_sp
++int putp_sp(
++ SCREEN *sp,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef putp
++int putp(
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp_sp
++int _nc_putp_sp(
++ SCREEN *sp,
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef _nc_putp
++int _nc_putp(
++ const char *name,
++ const char *string)
++ { return(*(int *)0); }
++
++#undef tputs_sp
++int tputs_sp(
++ SCREEN *sp,
++ const char *string,
++ int affcnt,
++ NCURSES_OUTC_sp outc)
++ { return(*(int *)0); }
++
++#undef _nc_outc_wrapper
++int _nc_outc_wrapper(
++ SCREEN *sp,
++ int c)
++ { return(*(int *)0); }
++
++#undef tputs
++int tputs(
++ const char *string,
++ int affcnt,
++ int (*outc)(
++ int p1))
++ { return(*(int *)0); }
++
++/* ./trace/lib_trace.c */
++
++#undef _nc_tracing
++unsigned _nc_tracing;
++#undef _nc_tputs_trace
++const char *_nc_tputs_trace = {0};
++#undef _nc_outchars
++long _nc_outchars;
++
++#undef trace
++void trace(
++ const unsigned int tracelevel)
++ { /* void */ }
++
++#undef _tracef
++void _tracef(
++ const char *fmt,
++ ...)
++ { /* void */ }
++
++#undef _nc_retrace_bool
++NCURSES_BOOL _nc_retrace_bool(
++ int code)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_retrace_char
++char _nc_retrace_char(
++ int code)
++ { return(*(char *)0); }
++
++#undef _nc_retrace_int
++int _nc_retrace_int(
++ int code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_unsigned
++unsigned _nc_retrace_unsigned(
++ unsigned code)
++ { return(*(unsigned *)0); }
++
++#undef _nc_retrace_ptr
++char *_nc_retrace_ptr(
++ char *code)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_cptr
++const char *_nc_retrace_cptr(
++ const char *code)
++ { return(*(const char **)0); }
++
++#undef _nc_retrace_cvoid_ptr
++void *_nc_retrace_cvoid_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_void_ptr
++void *_nc_retrace_void_ptr(
++ void *code)
++ { return(*(void **)0); }
++
++#undef _nc_retrace_sp
++SCREEN *_nc_retrace_sp(
++ SCREEN *code)
++ { return(*(SCREEN **)0); }
++
++#undef _nc_retrace_win
++WINDOW *_nc_retrace_win(
++ WINDOW *code)
++ { return(*(WINDOW **)0); }
++
++/* ./trace/lib_traceatr.c */
++
++#undef _traceattr2
++char *_traceattr2(
++ int bufnum,
++ chtype newmode)
++ { return(*(char **)0); }
++
++#undef _traceattr
++char *_traceattr(
++ attr_t newmode)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_int_attr_t
++int _nc_retrace_int_attr_t(
++ attr_t code)
++ { return(*(int *)0); }
++
++#undef _nc_retrace_attr_t
++attr_t _nc_retrace_attr_t(
++ attr_t code)
++ { return(*(attr_t *)0); }
++
++#undef _nc_altcharset_name
++const char *_nc_altcharset_name(
++ attr_t attr,
++ chtype ch)
++ { return(*(const char **)0); }
++
++#undef _tracechtype2
++char *_tracechtype2(
++ int bufnum,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _tracechtype
++char *_tracechtype(
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef _nc_retrace_chtype
++chtype _nc_retrace_chtype(
++ chtype code)
++ { return(*(chtype *)0); }
++
++#undef _tracecchar_t2
++char *_tracecchar_t2(
++ int bufnum,
++ const cchar_t *ch)
++ { return(*(char **)0); }
++
++#undef _tracecchar_t
++char *_tracecchar_t(
++ const cchar_t *ch)
++ { return(*(char **)0); }
++
++/* ./trace/lib_tracebits.c */
++
++typedef struct {
++ unsigned int val;
++ const char *name;
++} BITNAMES;
++
++#undef _nc_trace_ttymode
++char *_nc_trace_ttymode(
++ struct termios *tty)
++ { return(*(char **)0); }
++
++#undef _nc_tracebits
++char *_nc_tracebits(void)
++ { return(*(char **)0); }
++
++/* ./trace/lib_tracechr.c */
++
++#undef _nc_tracechar
++char *_nc_tracechar(
++ SCREEN *sp,
++ int ch)
++ { return(*(char **)0); }
++
++#undef _tracechar
++char *_tracechar(
++ int ch)
++ { return(*(char **)0); }
++
++/* ./tinfo/lib_ttyflags.c */
++
++#undef _nc_get_tty_mode_sp
++int _nc_get_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_get_tty_mode
++int _nc_get_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode_sp
++int _nc_set_tty_mode_sp(
++ SCREEN *sp,
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef _nc_set_tty_mode
++int _nc_set_tty_mode(
++ struct termios *buf)
++ { return(*(int *)0); }
++
++#undef def_shell_mode_sp
++int def_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_shell_mode
++int def_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef def_prog_mode_sp
++int def_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef def_prog_mode
++int def_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode_sp
++int reset_prog_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_prog_mode
++int reset_prog_mode(void)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode_sp
++int reset_shell_mode_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef reset_shell_mode
++int reset_shell_mode(void)
++ { return(*(int *)0); }
++
++#undef savetty_sp
++int savetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef savetty
++int savetty(void)
++ { return(*(int *)0); }
++
++#undef resetty_sp
++int resetty_sp(
++ SCREEN *sp)
++ { return(*(int *)0); }
++
++#undef resetty
++int resetty(void)
++ { return(*(int *)0); }
++
++/* ./tty/lib_twait.c */
++
++#undef _nc_timed_wait
++int _nc_timed_wait(
++ SCREEN *sp,
++ int mode,
++ int milliseconds,
++ int *timeleft)
++ { return(*(int *)0); }
++
++/* ./tinfo/name_match.c */
++
++#undef _nc_first_name
++char *_nc_first_name(
++ const char *const sp)
++ { return(*(char **)0); }
++
++#undef _nc_name_match
++int _nc_name_match(
++ const char *const namelst,
++ const char *const name,
++ const char *const delim)
++ { return(*(int *)0); }
++
++/* ./names.c */
++
++#undef boolnames
++char *const boolnames[] = {0};
++#undef boolfnames
++char *const boolfnames[] = {0};
++#undef numnames
++char *const numnames[] = {0};
++#undef numfnames
++char *const numfnames[] = {0};
++#undef strnames
++char *const strnames[] = {0};
++#undef strfnames
++char *const strfnames[] = {0};
++
++/* ./tinfo/obsolete.c */
++
++#undef _nc_set_buffer_sp
++void _nc_set_buffer_sp(
++ SCREEN *sp,
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++#undef _nc_set_buffer
++void _nc_set_buffer(
++ FILE *ofp,
++ int buffered)
++ { /* void */ }
++
++/* ./tinfo/read_entry.c */
++
++#include <hashed_db.h>
++
++#undef _nc_init_termtype
++void _nc_init_termtype(
++ TERMTYPE *const tp)
++ { /* void */ }
++
++#undef _nc_read_termtype
++int _nc_read_termtype(
++ TERMTYPE *ptr,
++ char *buffer,
++ int limit)
++ { return(*(int *)0); }
++
++#undef _nc_read_file_entry
++int _nc_read_file_entry(
++ const char *const filename,
++ TERMTYPE *ptr)
++ { return(*(int *)0); }
++
++#undef _nc_read_entry
++int _nc_read_entry(
++ const char *const name,
++ char *const filename,
++ TERMTYPE *const tp)
++ { return(*(int *)0); }
++
++/* ./tinfo/read_termcap.c */
++
++#include <sys/types.h>
++
++#undef _nc_read_termcap
++void _nc_read_termcap(void)
++ { /* void */ }
++
++/* ./tinfo/strings.c */
++
++#undef _nc_str_init
++string_desc *_nc_str_init(
++ string_desc *dst,
++ char *src,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_null
++string_desc *_nc_str_null(
++ string_desc *dst,
++ size_t len)
++ { return(*(string_desc **)0); }
++
++#undef _nc_str_copy
++string_desc *_nc_str_copy(
++ string_desc *dst,
++ string_desc *src)
++ { return(*(string_desc **)0); }
++
++#undef _nc_safe_strcat
++NCURSES_BOOL _nc_safe_strcat(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++#undef _nc_safe_strcpy
++NCURSES_BOOL _nc_safe_strcpy(
++ string_desc *dst,
++ const char *src)
++ { return(*(NCURSES_BOOL *)0); }
++
++/* ./trace/trace_buf.c */
++
++#undef _nc_trace_buf
++char *_nc_trace_buf(
++ int bufnum,
++ size_t want)
++ { return(*(char **)0); }
++
++#undef _nc_trace_bufcat
++char *_nc_trace_bufcat(
++ int bufnum,
++ const char *value)
++ { return(*(char **)0); }
++
++/* ./trace/trace_tries.c */
++
++#undef _nc_trace_tries
++void _nc_trace_tries(
++ TRIES *tree)
++ { /* void */ }
++
++/* ./base/tries.c */
++
++#undef _nc_expand_try
++char *_nc_expand_try(
++ TRIES *tree,
++ unsigned code,
++ int *count,
++ size_t len)
++ { return(*(char **)0); }
++
++#undef _nc_remove_key
++int _nc_remove_key(
++ TRIES **tree,
++ unsigned code)
++ { return(*(int *)0); }
++
++#undef _nc_remove_string
++int _nc_remove_string(
++ TRIES **tree,
++ const char *string)
++ { return(*(int *)0); }
++
++/* ./tinfo/trim_sgr0.c */
++
++#undef _nc_trim_sgr0
++char *_nc_trim_sgr0(
++ TERMTYPE *tp)
++ { return(*(char **)0); }
++
++/* ./unctrl.c */
++
++#undef unctrl_sp
++char *unctrl_sp(
++ SCREEN *sp,
++ chtype ch)
++ { return(*(char **)0); }
++
++#undef unctrl
++char *unctrl(
++ chtype ch)
++ { return(*(char **)0); }
++
++/* ./trace/visbuf.c */
++
++#undef _nc_visbuf2
++const char *_nc_visbuf2(
++ int bufnum,
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbuf
++const char *_nc_visbuf(
++ const char *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_visbufn
++const char *_nc_visbufn(
++ const char *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viswbuf2
++const char *_nc_viswbuf2(
++ int bufnum,
++ const wchar_t *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_viswbuf
++const char *_nc_viswbuf(
++ const wchar_t *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_viswbufn
++const char *_nc_viswbufn(
++ const wchar_t *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viswibuf
++const char *_nc_viswibuf(
++ const wint_t *buf)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf2
++const char *_nc_viscbuf2(
++ int bufnum,
++ const cchar_t *buf,
++ int len)
++ { return(*(const char **)0); }
++
++#undef _nc_viscbuf
++const char *_nc_viscbuf(
++ const cchar_t *buf,
++ int len)
++ { return(*(const char **)0); }
++
++/* ./base/define_key.c */
++
++#undef define_key_sp
++int define_key_sp(
++ SCREEN *sp,
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++#undef define_key
++int define_key(
++ const char *str,
++ int keycode)
++ { return(*(int *)0); }
++
++/* ./tinfo/hashed_db.c */
++
++#undef _nc_hashed_db
++void _nc_hashed_db(void)
++ { /* void */ }
++
++/* ./base/key_defined.c */
++
++#undef key_defined_sp
++int key_defined_sp(
++ SCREEN *sp,
++ const char *str)
++ { return(*(int *)0); }
++
++#undef key_defined
++int key_defined(
++ const char *str)
++ { return(*(int *)0); }
++
++/* ./base/keybound.c */
++
++#undef keybound_sp
++char *keybound_sp(
++ SCREEN *sp,
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++#undef keybound
++char *keybound(
++ int code,
++ int count)
++ { return(*(char **)0); }
++
++/* ./base/keyok.c */
++
++#undef keyok_sp
++int keyok_sp(
++ SCREEN *sp,
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++#undef keyok
++int keyok(
++ int c,
++ NCURSES_BOOL flag)
++ { return(*(int *)0); }
++
++/* ./base/version.c */
++
++#undef curses_version
++const char *curses_version(void)
++ { return(*(const char **)0); }
+Index: ncurses/modules
+Prereq: 1.117
+--- ncurses-5.9/ncurses/modules 2010-08-07 18:41:02.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/modules 2013-01-26 22:17:55.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: modules,v 1.117 2010/08/07 18:41:02 tom Exp $
++# $Id: modules,v 1.120 2013/01/26 22:17:55 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -115,7 +115,6 @@
+ varargs lib $(trace) $(HEADER_DEPS)
+
+ # Modules for porting
+-memmove lib $(base) $(HEADER_DEPS)
+ vsscanf lib $(base) $(HEADER_DEPS)
+
+ # actually an extension, but with its own configure option (--disable-leaks)
+@@ -199,9 +198,9 @@
+ lib_twait lib $(serial) $(HEADER_DEPS)
+ name_match lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h
+ names lib . $(HEADER_DEPS)
++obsolete lib $(tinfo) $(HEADER_DEPS)
+ read_entry lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h $(INCDIR)/hashed_db.h
+ read_termcap lib $(tinfo) $(HEADER_DEPS) $(INCDIR)/tic.h
+-setbuf lib $(tinfo) $(HEADER_DEPS)
+ strings lib $(tinfo) $(HEADER_DEPS)
+ trace_buf lib $(trace) $(HEADER_DEPS)
+ trace_tries lib $(trace) $(HEADER_DEPS)
+@@ -236,6 +235,7 @@
+ @ port_win32con
+ gettimeofday lib $(win32con) $(HEADER_DEPS)
+ wcwidth lib $(win32con) $(HEADER_DEPS)
++widechars lib $(wide) $(HEADER_DEPS)
+ win_driver lib $(win32con) $(HEADER_DEPS)
+
+ @ port_tinfo
+Index: ncurses/tinfo/MKcaptab.sh
+Prereq: 1.13
+--- ncurses-5.9/ncurses/tinfo/MKcaptab.sh 2010-12-25 23:43:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/MKcaptab.sh 2011-10-22 16:34:50.000000000 +0000
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ ##############################################################################
+-# Copyright (c) 2007-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 2007-2010,2011 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -26,7 +26,7 @@
+ # use or other dealings in this Software without prior written #
+ # authorization. #
+ ##############################################################################
+-# $Id: MKcaptab.sh,v 1.13 2010/12/25 23:43:58 tom Exp $
++# $Id: MKcaptab.sh,v 1.14 2011/10/22 16:34:50 tom Exp $
+ AWK=${1-awk}
+ OPT1=${2-0}
+ OPT2=${3-tinfo/MKcaptab.awk}
+@@ -99,12 +99,12 @@
+ _nc_build_alias(struct alias **actual,
+ const alias_table_data *source,
+ const char *strings,
+- unsigned tablesize)
++ size_t tablesize)
+ {
+ if (*actual == 0) {
+ *actual = typeCalloc(struct alias, tablesize + 1);
+ if (*actual != 0) {
+- unsigned n;
++ size_t n;
+ for (n = 0; n < tablesize; ++n) {
+ add_alias(from);
+ add_alias(to);
+@@ -178,7 +178,7 @@
+ static int
+ compare_tcap_names(const char *a, const char *b)
+ {
+- return !strncmp(a, b, TCAP_LEN);
++ return !strncmp(a, b, (size_t) TCAP_LEN);
+ }
+
+ static int
+Index: ncurses/tinfo/access.c
+Prereq: 1.16
+--- ncurses-5.9/ncurses/tinfo/access.c 2010-01-23 17:57:43.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/access.c 2012-09-01 19:21:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,11 +33,18 @@
+ #include <curses.priv.h>
+
+ #include <ctype.h>
+-#include <sys/stat.h>
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: access.c,v 1.16 2010/01/23 17:57:43 tom Exp $")
++MODULE_ID("$Id: access.c,v 1.23 2012/09/01 19:21:29 tom Exp $")
++
++#ifdef __TANDEM
++#define ROOT_UID 65535
++#endif
++
++#ifndef ROOT_UID
++#define ROOT_UID 0
++#endif
+
+ #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+
+@@ -53,7 +60,7 @@
+ result = temp;
+ #if !MIXEDCASE_FILENAMES
+ for (s = result; *s != '\0'; ++s) {
+- *s = LOWERCASE(*s);
++ *s = (char) LOWERCASE(*s);
+ }
+ #endif
+ #if defined(PROG_EXT)
+@@ -108,24 +115,33 @@
+ NCURSES_EXPORT(int)
+ _nc_access(const char *path, int mode)
+ {
+- if (access(path, mode) < 0) {
++ int result;
++
++ if (path == 0) {
++ result = -1;
++ } else if (access(path, mode) < 0) {
+ if ((mode & W_OK) != 0
+ && errno == ENOENT
+ && strlen(path) < PATH_MAX) {
+ char head[PATH_MAX];
+- char *leaf = _nc_basename(strcpy(head, path));
++ char *leaf;
+
++ _nc_STRCPY(head, path, sizeof(head));
++ leaf = _nc_basename(head);
+ if (leaf == 0)
+ leaf = head;
+ *leaf = '\0';
+ if (head == leaf)
+- (void) strcpy(head, ".");
++ _nc_STRCPY(head, ".", sizeof(head));
+
+- return access(head, R_OK | W_OK | X_OK);
++ result = access(head, R_OK | W_OK | X_OK);
++ } else {
++ result = -1;
+ }
+- return -1;
++ } else {
++ result = 0;
+ }
+- return 0;
++ return result;
+ }
+
+ NCURSES_EXPORT(bool)
+@@ -135,7 +151,7 @@
+ struct stat sb;
+
+ if (stat(path, &sb) == 0
+- && (sb.st_mode & S_IFMT) == S_IFDIR) {
++ && S_ISDIR(sb.st_mode)) {
+ result = TRUE;
+ }
+ return result;
+@@ -148,7 +164,7 @@
+ struct stat sb;
+
+ if (stat(path, &sb) == 0
+- && (sb.st_mode & S_IFMT) == S_IFREG) {
++ && S_ISREG(sb.st_mode)) {
+ result = TRUE;
+ }
+ return result;
+@@ -170,6 +186,7 @@
+ || getgid() != getegid())
+ return FALSE;
+ #endif
+- return getuid() != 0 && geteuid() != 0; /* ...finally, disallow root */
++ /* ...finally, disallow root */
++ return (getuid() != ROOT_UID) && (geteuid() != ROOT_UID);
+ }
+ #endif
+Index: ncurses/tinfo/alloc_entry.c
+Prereq: 1.51
+--- ncurses-5.9/ncurses/tinfo/alloc_entry.c 2010-12-25 23:06:01.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/alloc_entry.c 2013-08-17 19:20:38.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -47,7 +47,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: alloc_entry.c,v 1.51 2010/12/25 23:06:01 tom Exp $")
++MODULE_ID("$Id: alloc_entry.c,v 1.58 2013/08/17 19:20:38 tom Exp $")
+
+ #define ABSENT_OFFSET -1
+ #define CANCELLED_OFFSET -2
+@@ -61,8 +61,6 @@
+ _nc_init_entry(TERMTYPE *const tp)
+ /* initialize a terminal type data block */
+ {
+- unsigned i;
+-
+ #if NO_LEAKS
+ if (tp == 0) {
+ if (stringbuf != 0) {
+@@ -73,33 +71,11 @@
+ #endif
+
+ if (stringbuf == 0)
+- stringbuf = (char *) malloc(MAX_STRTAB);
+-
+-#if NCURSES_XNAMES
+- tp->num_Booleans = BOOLCOUNT;
+- tp->num_Numbers = NUMCOUNT;
+- tp->num_Strings = STRCOUNT;
+- tp->ext_Booleans = 0;
+- tp->ext_Numbers = 0;
+- tp->ext_Strings = 0;
+-#endif
+- if (tp->Booleans == 0)
+- tp->Booleans = typeMalloc(NCURSES_SBOOL, BOOLCOUNT);
+- if (tp->Numbers == 0)
+- tp->Numbers = typeMalloc(short, NUMCOUNT);
+- if (tp->Strings == 0)
+- tp->Strings = typeMalloc(char *, STRCOUNT);
+-
+- for_each_boolean(i, tp)
+- tp->Booleans[i] = FALSE;
+-
+- for_each_number(i, tp)
+- tp->Numbers[i] = ABSENT_NUMERIC;
+-
+- for_each_string(i, tp)
+- tp->Strings[i] = ABSENT_STRING;
++ TYPE_MALLOC(char, (size_t) MAX_STRTAB, stringbuf);
+
+ next_free = 0;
++
++ _nc_init_termtype(tp);
+ }
+
+ NCURSES_EXPORT(ENTRY *)
+@@ -131,13 +107,13 @@
+ result = (stringbuf + next_free - 1);
+ }
+ } else if (next_free + len < MAX_STRTAB) {
+- strcpy(&stringbuf[next_free], string);
++ _nc_STRCPY(&stringbuf[next_free], string, MAX_STRTAB);
+ DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
+ DEBUG(7, ("at location %d", (int) next_free));
+ next_free += len;
+ result = (stringbuf + old_next_free);
+ } else {
+- _nc_warning("Too much data, some is lost");
++ _nc_warning("Too much data, some is lost: %s", string);
+ }
+ return result;
+ }
+@@ -194,8 +170,7 @@
+ useoffsets[i] = (int) (ep->uses[i].name - stringbuf);
+ }
+
+- if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0)
+- _nc_err_abort(MSG_NO_MEMORY);
++ TYPE_MALLOC(char, next_free, tp->str_table);
+ (void) memcpy(tp->str_table, stringbuf, next_free);
+
+ tp->term_names = tp->str_table + n;
+@@ -216,16 +191,18 @@
+ if ((n = (unsigned) NUM_EXT_NAMES(tp)) != 0) {
+ if (n < SIZEOF(offsets)) {
+ size_t length = 0;
++ size_t offset;
+ for (i = 0; i < n; i++) {
+ length += strlen(tp->ext_Names[i]) + 1;
+ offsets[i] = (int) (tp->ext_Names[i] - stringbuf);
+ }
+- if ((tp->ext_str_table = typeMalloc(char, length)) == 0)
+- _nc_err_abort(MSG_NO_MEMORY);
+- for (i = 0, length = 0; i < n; i++) {
+- tp->ext_Names[i] = tp->ext_str_table + length;
+- strcpy(tp->ext_Names[i], stringbuf + offsets[i]);
+- length += strlen(tp->ext_Names[i]) + 1;
++ TYPE_MALLOC(char, length, tp->ext_str_table);
++ for (i = 0, offset = 0; i < n; i++) {
++ tp->ext_Names[i] = tp->ext_str_table + offset;
++ _nc_STRCPY(tp->ext_Names[i],
++ stringbuf + offsets[i],
++ length - offset);
++ offset += strlen(tp->ext_Names[i]) + 1;
+ }
+ }
+ }
+Index: ncurses/tinfo/alloc_ttype.c
+Prereq: 1.22
+--- ncurses-5.9/ncurses/tinfo/alloc_ttype.c 2010-12-19 00:24:09.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/alloc_ttype.c 2013-06-08 16:54:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: alloc_ttype.c,v 1.22 2010/12/19 00:24:09 tom Exp $")
++MODULE_ID("$Id: alloc_ttype.c,v 1.27 2013/06/08 16:54:50 tom Exp $")
+
+ #if NCURSES_XNAMES
+ /*
+@@ -104,7 +104,7 @@
+
+ if (to->ext_Booleans != ext_Booleans) {
+ EXTEND_NUM(num_Booleans, ext_Booleans);
+- to->Booleans = typeRealloc(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
++ TYPE_REALLOC(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
+ for (n = to->ext_Booleans - 1,
+ m = ext_Booleans - 1,
+ base = to->num_Booleans - (m + 1); m >= 0; m--) {
+@@ -116,9 +116,10 @@
+ }
+ to->ext_Booleans = UShort(ext_Booleans);
+ }
++
+ if (to->ext_Numbers != ext_Numbers) {
+ EXTEND_NUM(num_Numbers, ext_Numbers);
+- to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers);
++ TYPE_REALLOC(short, to->num_Numbers, to->Numbers);
+ for (n = to->ext_Numbers - 1,
+ m = ext_Numbers - 1,
+ base = to->num_Numbers - (m + 1); m >= 0; m--) {
+@@ -132,7 +133,7 @@
+ }
+ if (to->ext_Strings != ext_Strings) {
+ EXTEND_NUM(num_Strings, ext_Strings);
+- to->Strings = typeRealloc(char *, to->num_Strings, to->Strings);
++ TYPE_REALLOC(char *, to->num_Strings, to->Strings);
+ for (n = to->ext_Strings - 1,
+ m = ext_Strings - 1,
+ base = to->num_Strings - (m + 1); m >= 0; m--) {
+@@ -301,7 +302,7 @@
+ }
+ }
+
+- tp->ext_Names = typeRealloc(char *, total, tp->ext_Names);
++ TYPE_REALLOC(char *, total, tp->ext_Names);
+ for (k = total - 1; k > j; k--)
+ tp->ext_Names[k] = tp->ext_Names[k - 1];
+ tp->ext_Names[j] = name;
+@@ -311,21 +312,21 @@
+ case BOOLEAN:
+ tp->ext_Booleans++;
+ tp->num_Booleans++;
+- tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
++ TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
+ for (k = (unsigned) (tp->num_Booleans - 1); k > j; k--)
+ tp->Booleans[k] = tp->Booleans[k - 1];
+ break;
+ case NUMBER:
+ tp->ext_Numbers++;
+ tp->num_Numbers++;
+- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
++ TYPE_REALLOC(short, tp->num_Numbers, tp->Numbers);
+ for (k = (unsigned) (tp->num_Numbers - 1); k > j; k--)
+ tp->Numbers[k] = tp->Numbers[k - 1];
+ break;
+ case STRING:
+ tp->ext_Strings++;
+ tp->num_Strings++;
+- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
++ TYPE_REALLOC(char *, tp->num_Strings, tp->Strings);
+ for (k = (unsigned) (tp->num_Strings - 1); k > j; k--)
+ tp->Strings[k] = tp->Strings[k - 1];
+ break;
+@@ -417,7 +418,7 @@
+ * into it, updating to's counts for booleans, etc. Fortunately we do
+ * this only for the terminfo compiler (tic) and comparer (infocmp).
+ */
+- ext_Names = typeMalloc(char *, (size_t)(na + nb));
++ TYPE_MALLOC(char *, (size_t)(na + nb), ext_Names);
+
+ if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers))
+ adjust_cancels(to, from);
+@@ -461,7 +462,7 @@
+ if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) {
+ nb = (ext_Booleans + ext_Numbers + ext_Strings);
+ realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings);
+- from->ext_Names = typeRealloc(char *, (size_t) nb, from->ext_Names);
++ TYPE_REALLOC(char *, (size_t) nb, from->ext_Names);
+ memcpy(from->ext_Names, ext_Names, sizeof(char *) * (size_t) nb);
+ DEBUG(2, ("realigned %d extended names for '%s' (from)",
+ NUM_EXT_NAMES(from), from->term_names));
+@@ -473,22 +474,27 @@
+ #endif
+
+ NCURSES_EXPORT(void)
+-_nc_copy_termtype(TERMTYPE *dst, TERMTYPE *src)
++_nc_copy_termtype(TERMTYPE *dst, const TERMTYPE *src)
+ {
++#if NCURSES_XNAMES
+ unsigned i;
++#endif
+
+ *dst = *src; /* ...to copy the sizes and string-tables */
+- dst->Booleans = typeMalloc(NCURSES_SBOOL, NUM_BOOLEANS(dst));
+- dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst));
+- dst->Strings = typeMalloc(char *, NUM_STRINGS(dst));
+-
+- /* FIXME: use memcpy for these and similar loops */
+- for_each_boolean(i, dst)
+- dst->Booleans[i] = src->Booleans[i];
+- for_each_number(i, dst)
+- dst->Numbers[i] = src->Numbers[i];
+- for_each_string(i, dst)
+- dst->Strings[i] = src->Strings[i];
++
++ TYPE_MALLOC(NCURSES_SBOOL, NUM_BOOLEANS(dst), dst->Booleans);
++ TYPE_MALLOC(short, NUM_NUMBERS(dst), dst->Numbers);
++ TYPE_MALLOC(char *, NUM_STRINGS(dst), dst->Strings);
++
++ memcpy(dst->Booleans,
++ src->Booleans,
++ NUM_BOOLEANS(dst) * sizeof(dst->Booleans[0]));
++ memcpy(dst->Numbers,
++ src->Numbers,
++ NUM_NUMBERS(dst) * sizeof(dst->Numbers[0]));
++ memcpy(dst->Strings,
++ src->Strings,
++ NUM_STRINGS(dst) * sizeof(dst->Strings[0]));
+
+ /* FIXME: we probably should also copy str_table and ext_str_table,
+ * but tic and infocmp are not written to exploit that (yet).
+@@ -496,11 +502,10 @@
+
+ #if NCURSES_XNAMES
+ if ((i = NUM_EXT_NAMES(src)) != 0) {
+- dst->ext_Names = typeMalloc(char *, i);
++ TYPE_MALLOC(char *, i, dst->ext_Names);
+ memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *));
+ } else {
+ dst->ext_Names = 0;
+ }
+ #endif
+-
+ }
+Index: ncurses/tinfo/captoinfo.c
+Prereq: 1.58
+--- ncurses-5.9/ncurses/tinfo/captoinfo.c 2010-12-04 20:08:19.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/captoinfo.c 2012-12-30 00:50:40.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -93,7 +93,7 @@
+ #include <ctype.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: captoinfo.c,v 1.58 2010/12/04 20:08:19 tom Exp $")
++MODULE_ID("$Id: captoinfo.c,v 1.77 2012/12/30 00:50:40 tom Exp $")
+
+ #define MAX_PUSHED 16 /* max # args we can push onto the stack */
+
+@@ -114,9 +114,7 @@
+ /* initialize 'my_string', 'my_length' */
+ {
+ if (my_string == 0)
+- my_string = typeMalloc(char, my_length = 256);
+- if (my_string == 0)
+- _nc_err_abort(MSG_NO_MEMORY);
++ TYPE_MALLOC(char, my_length = 256, my_string);
+
+ *my_string = '\0';
+ return my_string;
+@@ -133,7 +131,7 @@
+ _nc_err_abort(MSG_NO_MEMORY);
+ d = my_string + have;
+ }
+- (void) strcpy(d, s);
++ _nc_STRCPY(d, s, my_length - have);
+ return d + strlen(d);
+ }
+
+@@ -240,6 +238,12 @@
+ else if (parm == 2)
+ parm = 1;
+ }
++
++ while (n--) {
++ dp = save_string(dp, "%p");
++ dp = save_char(dp, '0' + parm);
++ }
++
+ if (onstack == parm) {
+ if (n > 1) {
+ _nc_warning("string may not be optimal");
+@@ -255,11 +259,6 @@
+
+ onstack = parm;
+
+- while (n--) {
+- dp = save_string(dp, "%p");
+- dp = save_char(dp, '0' + parm);
+- }
+-
+ if (seenn && parm < 3) {
+ dp = save_string(dp, "%{96}%^");
+ }
+@@ -469,73 +468,9 @@
+ break;
+ }
+ break;
+-#ifdef REVISIBILIZE
+- case '\\':
+- dp = save_char(dp, *s++);
+- dp = save_char(dp, *s++);
+- break;
+- case '\n':
+- dp = save_string(dp, "\\n");
+- s++;
+- break;
+- case '\t':
+- dp = save_string(dp, "\\t");
+- s++;
+- break;
+- case '\r':
+- dp = save_string(dp, "\\r");
+- s++;
+- break;
+- case '\200':
+- dp = save_string(dp, "\\0");
+- s++;
+- break;
+- case '\f':
+- dp = save_string(dp, "\\f");
+- s++;
+- break;
+- case '\b':
+- dp = save_string(dp, "\\b");
+- s++;
+- break;
+- case ' ':
+- dp = save_string(dp, "\\s");
+- s++;
+- break;
+- case '^':
+- dp = save_string(dp, "\\^");
+- s++;
+- break;
+- case ':':
+- dp = save_string(dp, "\\:");
+- s++;
+- break;
+- case ',':
+- dp = save_string(dp, "\\,");
+- s++;
+- break;
+- default:
+- if (*s == '\033') {
+- dp = save_string(dp, "\\E");
+- s++;
+- } else if (*s > 0 && *s < 32) {
+- dp = save_char(dp, '^');
+- dp = save_char(dp, *s + '@');
+- s++;
+- } else if (*s <= 0 || *s >= 127) {
+- dp = save_char(dp, '\\');
+- dp = save_char(dp, ((*s & 0300) >> 6) + '0');
+- dp = save_char(dp, ((*s & 0070) >> 3) + '0');
+- dp = save_char(dp, (*s & 0007) + '0');
+- s++;
+- } else
+- dp = save_char(dp, *s++);
+- break;
+-#else
+ default:
+ dp = save_char(dp, *s++);
+ break;
+-#endif
+ }
+ }
+
+@@ -578,7 +513,7 @@
+ {
+ char buffer[80];
+ int tst;
+- sprintf(buffer, fmt, ch1, ch2);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) fmt, ch1, ch2);
+ tst = strlen(buffer) - 1;
+ assert(len == tst);
+ }
+@@ -597,10 +532,13 @@
+ bufptr = save_char(bufptr, '\\');
+ bufptr = save_char(bufptr, c1);
+ } else {
+- if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */
+- (void) strcpy(temp, unctrl((chtype) c1));
+- else
+- (void) sprintf(temp, "\\%03o", c1);
++ if (c1 == (c1 & 0x1f)) { /* iscntrl() returns T on 255 */
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "%.20s", unctrl((chtype) c1));
++ } else {
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "\\%03o", c1);
++ }
+ bufptr = save_string(bufptr, temp);
+ }
+ return bufptr;
+@@ -646,13 +584,15 @@
+ int in0, in1, in2;
+ char ch1 = 0, ch2 = 0;
+ char *bufptr = init_string();
++ char octal[4];
+ int len;
+ bool syntax_error = FALSE;
+
+ /* we may have to move some trailing mandatory padding up front */
+ padding = str + strlen(str) - 1;
+- if (padding > str && *padding == '>' && *--padding == '/') {
+- --padding;
++ if (padding > str && *padding == '>') {
++ if (*--padding == '/')
++ --padding;
+ while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
+ padding--;
+ if (padding > str && *padding == '<' && *--padding == '$')
+@@ -663,7 +603,7 @@
+ bufptr = save_char(bufptr, *padding++);
+ }
+
+- for (; *str && str != trimmed; str++) {
++ for (; *str && ((trimmed == 0) || (str < trimmed)); str++) {
+ int c1, c2;
+ char *cp = 0;
+
+@@ -685,8 +625,72 @@
+ } else if (str[1] == ',') {
+ bufptr = save_char(bufptr, *++str);
+ } else {
++ int xx1, xx2;
++
+ bufptr = save_char(bufptr, *str++);
+- bufptr = save_char(bufptr, *str);
++ xx1 = *str;
++ if (_nc_strict_bsd) {
++ if (isdigit(UChar(xx1))) {
++ int pad = 0;
++
++ if (!isdigit(UChar(str[1])))
++ pad = 2;
++ else if (str[1] && !isdigit(UChar(str[2])))
++ pad = 1;
++
++ /*
++ * Test for "\0", "\00" or "\000" and transform those
++ * into "\200".
++ */
++ if (xx1 == '0'
++ && ((pad == 2) || (str[1] == '0'))
++ && ((pad >= 1) || (str[2] == '0'))) {
++ xx2 = '2';
++ } else {
++ xx2 = '0';
++ pad = 0; /* FIXME - optionally pad to 3 digits */
++ }
++ while (pad-- > 0) {
++ bufptr = save_char(bufptr, xx2);
++ xx2 = '0';
++ }
++ } else if (strchr("E\\nrtbf", xx1) == 0) {
++ switch (xx1) {
++ case 'e':
++ xx1 = 'E';
++ break;
++ case 'l':
++ xx1 = 'n';
++ break;
++ case 's':
++ bufptr = save_char(bufptr, '0');
++ bufptr = save_char(bufptr, '4');
++ xx1 = '0';
++ break;
++ case ':':
++ /*
++ * Note: termcap documentation claims that ":"
++ * must be escaped as "\072", however the
++ * documentation is incorrect - read the code.
++ * The replacement does not work reliably,
++ * so the advice is not helpful.
++ */
++ bufptr = save_char(bufptr, '0');
++ bufptr = save_char(bufptr, '7');
++ xx1 = '2';
++ break;
++ default:
++ /* should not happen, but handle this anyway */
++ _nc_SPRINTF(octal, _nc_SLIMIT(sizeof(octal))
++ "%03o", UChar(xx1));
++ bufptr = save_char(bufptr, octal[0]);
++ bufptr = save_char(bufptr, octal[1]);
++ xx1 = octal[2];
++ break;
++ }
++ }
++ }
++ bufptr = save_char(bufptr, xx1);
+ }
+ } else if (str[0] == '$' && str[1] == '<') { /* discard padding */
+ str += 2;
+@@ -703,7 +707,8 @@
+ && ((in0 == 4 && in1 == 10 && in2 == 48)
+ || (in0 == 3 && in1 == 9 && in2 == 38))) {
+ /* dumb-down an optimized case from xterm-256color for termcap */
+- str = strstr(str, ";m");
++ if ((str = strstr(str, ";m")) == 0)
++ break; /* cannot happen */
+ ++str;
+ if (in2 == 48) {
+ bufptr = save_string(bufptr, "[48;5;%dm");
+@@ -720,13 +725,13 @@
+ bufptr = save_tc_inequality(bufptr, c1, c2);
+ } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) {
+ str = strchr(str, ';');
+- bufptr = save_tc_inequality(bufptr, c1, c2);
++ bufptr = save_tc_inequality(bufptr, c1, ch2);
+ } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) {
+ str = strchr(str, ';');
+- bufptr = save_tc_inequality(bufptr, c1, c2);
++ bufptr = save_tc_inequality(bufptr, ch1, c2);
+ } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) {
+ str = strchr(str, ';');
+- bufptr = save_tc_inequality(bufptr, c1, c2);
++ bufptr = save_tc_inequality(bufptr, ch1, ch2);
+ } else if ((len = bcd_expression(str)) != 0) {
+ str += len;
+ bufptr = save_string(bufptr, "%B");
+@@ -741,15 +746,15 @@
+ bufptr = save_tc_char(bufptr, c1);
+ }
+ /* FIXME: this "works" for 'delta' */
+- else if (strncmp(str, "%{2}%*%-", 8) == 0) {
++ else if (strncmp(str, "%{2}%*%-", (size_t) 8) == 0) {
+ str += 7;
+ bufptr = save_string(bufptr, "%D");
+- } else if (strncmp(str, "%{96}%^", 7) == 0) {
++ } else if (strncmp(str, "%{96}%^", (size_t) 7) == 0) {
+ str += 6;
+ if (saw_m++ == 0) {
+ bufptr = save_string(bufptr, "%n");
+ }
+- } else if (strncmp(str, "%{127}%^", 8) == 0) {
++ } else if (strncmp(str, "%{127}%^", (size_t) 8) == 0) {
+ str += 7;
+ if (saw_n++ == 0) {
+ bufptr = save_string(bufptr, "%m");
+@@ -772,8 +777,25 @@
+ case '8':
+ case '9':
+ bufptr = save_char(bufptr, '%');
+- while (isdigit(UChar(*str)))
+- bufptr = save_char(bufptr, *str++);
++ ch1 = 0;
++ ch2 = 0;
++ while (isdigit(UChar(*str))) {
++ ch2 = ch1;
++ ch1 = *str++;
++ if (_nc_strict_bsd) {
++ if (ch1 > '3')
++ return 0;
++ } else {
++ bufptr = save_char(bufptr, ch1);
++ }
++ }
++ if (_nc_strict_bsd) {
++ if (ch2 != 0 && ch2 != '0')
++ return 0;
++ if (ch1 < '2')
++ ch1 = 'd';
++ bufptr = save_char(bufptr, ch1);
++ }
+ if (strchr("doxX.", *str)) {
+ if (*str != 'd') /* termcap doesn't have octal, hex */
+ return 0;
+@@ -794,6 +816,8 @@
+ * termcap notation.
+ */
+ case 's':
++ if (_nc_strict_bsd)
++ return 0;
+ bufptr = save_string(bufptr, "%s");
+ break;
+
+@@ -826,7 +850,7 @@
+ * but that may not be the end of the string.
+ */
+ assert(str != 0);
+- if (*str == '\0')
++ if (str == 0 || *str == '\0')
+ break;
+
+ } /* endwhile (*str) */
+Index: ncurses/tinfo/comp_error.c
+Prereq: 1.31
+--- ncurses-5.9/ncurses/tinfo/comp_error.c 2007-04-21 23:38:32.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/comp_error.c 2012-02-22 22:34:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,7 +41,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: comp_error.c,v 1.31 2007/04/21 23:38:32 tom Exp $")
++MODULE_ID("$Id: comp_error.c,v 1.36 2012/02/22 22:34:31 tom Exp $")
+
+ NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
+ NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
+@@ -59,7 +59,8 @@
+ NCURSES_EXPORT(void)
+ _nc_set_source(const char *const name)
+ {
+- SourceName = name;
++ FreeIfNeeded(SourceName);
++ SourceName = strdup(name);
+ }
+
+ NCURSES_EXPORT(void)
+@@ -70,7 +71,7 @@
+ if (TermType != 0) {
+ TermType[0] = '\0';
+ if (name)
+- strncat(TermType, name, MAX_NAME_SIZE);
++ strncat(TermType, name, (size_t) MAX_NAME_SIZE);
+ }
+ }
+
+@@ -84,7 +85,7 @@
+ }
+ #endif
+ if (name != 0)
+- strcpy(name, TermType != 0 ? TermType : "");
++ _nc_STRCPY(name, TermType != 0 ? TermType : "", MAX_NAME_SIZE);
+ }
+
+ static NCURSES_INLINE void
+@@ -151,3 +152,12 @@
+ exit(EXIT_FAILURE);
+ #endif
+ }
++
++#if NO_LEAKS
++NCURSES_EXPORT(void)
++_nc_comp_error_leaks(void)
++{
++ FreeAndNull(SourceName);
++ FreeAndNull(TermType);
++}
++#endif
+Index: ncurses/tinfo/comp_expand.c
+Prereq: 1.21
+--- ncurses-5.9/ncurses/tinfo/comp_expand.c 2010-01-16 17:11:23.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/comp_expand.c 2012-03-24 18:37:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+ #include <ctype.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: comp_expand.c,v 1.21 2010/01/16 17:11:23 tom Exp $")
++MODULE_ID("$Id: comp_expand.c,v 1.25 2012/03/24 18:37:17 tom Exp $")
+
+ static int
+ trailing_spaces(const char *src)
+@@ -49,6 +49,8 @@
+ #define REALCTL(s) (UChar(*(s)) < 127 && iscntrl(UChar(*(s))))
+ #define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s))))
+
++#define P_LIMIT(p) (length - (size_t)(p))
++
+ NCURSES_EXPORT(char *)
+ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
+ {
+@@ -61,15 +63,15 @@
+ size_t need = (2 + strlen(str)) * 4;
+ int ch;
+
+-#if NO_LEAKS
+ if (srcp == 0) {
++#if NO_LEAKS
+ if (buffer != 0) {
+ FreeAndNull(buffer);
+ length = 0;
+ }
++#endif
+ return 0;
+ }
+-#endif
+ if (buffer == 0 || need > length) {
+ if ((buffer = typeRealloc(char, length = need, buffer)) == 0)
+ return 0;
+@@ -90,7 +92,8 @@
+ && str[1] != '\\'
+ && REALPRINT(str + 1)
+ && str[2] == S_QUOTE) {
+- sprintf(buffer + bufp, "{%d}", str[1]);
++ _nc_SPRINTF(buffer + bufp, _nc_SLIMIT(P_LIMIT(bufp))
++ "{%d}", str[1]);
+ bufp += (int) strlen(buffer + bufp);
+ str += 2;
+ } else {
+@@ -177,10 +180,12 @@
+ #define UnCtl(c) ((c) + '@')
+ else if (REALCTL(str) && ch != '\\'
+ && (!islong || isdigit(UChar(str[1])))) {
+- (void) sprintf(&buffer[bufp], "^%c", UnCtl(ch));
++ _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp))
++ "^%c", UnCtl(ch));
+ bufp += 2;
+ } else {
+- (void) sprintf(&buffer[bufp], "\\%03o", ch);
++ _nc_SPRINTF(&buffer[bufp], _nc_SLIMIT(P_LIMIT(bufp))
++ "\\%03o", ch);
+ bufp += 4;
+ }
+
+Index: ncurses/tinfo/comp_parse.c
+Prereq: 1.73
+--- ncurses-5.9/ncurses/tinfo/comp_parse.c 2010-12-25 23:06:37.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/comp_parse.c 2013-08-31 15:22:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,15 +35,10 @@
+ /*
+ * comp_parse.c -- parser driver loop and use handling.
+ *
+- * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
+- * _nc_resolve_uses2(void)
+- * _nc_free_entries(void)
+- *
+ * Use this code by calling _nc_read_entry_source() on as many source
+ * files as you like (either terminfo or termcap syntax). If you
+ * want use-resolution, call _nc_resolve_uses2(). To free the list
+ * storage, do _nc_free_entries().
+- *
+ */
+
+ #include <curses.priv.h>
+@@ -52,7 +47,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: comp_parse.c,v 1.73 2010/12/25 23:06:37 tom Exp $")
++MODULE_ID("$Id: comp_parse.c,v 1.90 2013/08/31 15:22:31 tom Exp $")
+
+ static void sanity_check2(TERMTYPE *, bool);
+ NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
+@@ -61,6 +56,8 @@
+ static void sanity_check(TERMTYPE *);
+ NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
+
++static void fixup_acsc(TERMTYPE *, int);
++
+ static void
+ enqueue(ENTRY * ep)
+ /* add an entry to the in-core list */
+@@ -86,16 +83,28 @@
+ if (len > MAX_NAME_SIZE)
+ len = MAX_NAME_SIZE;
+ (void) strncpy(dst, src, len);
+- (void) strcpy(dst + len, "|");
++ _nc_STRCPY(dst + len, "|", MAX_NAME_SIZE);
+ src = dst;
+ }
+ return src;
+ }
+ #define ForceBar(dst, src) ((strchr(src, '|') == 0) ? force_bar(dst, src) : src)
+
+-NCURSES_EXPORT(bool)
+-_nc_entry_match(char *n1, char *n2)
+-/* do any of the aliases in a pair of terminal names match? */
++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES
++static char *
++skip_index(char *name)
++{
++ char *bar = strchr(name, '|');
++
++ if (bar != 0 && (bar - name) == 2)
++ name = bar + 1;
++
++ return name;
++}
++#endif
++
++static bool
++check_collisions(char *n1, char *n2, int counter)
+ {
+ char *pstart, *qstart, *pend, *qend;
+ char nc1[MAX_NAME_SIZE + 2];
+@@ -104,15 +113,95 @@
+ n1 = ForceBar(nc1, n1);
+ n2 = ForceBar(nc2, n2);
+
+- for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1)
+- for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1)
++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES
++ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
++ n1 = skip_index(n1);
++ n2 = skip_index(n2);
++ }
++#endif
++
++ for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) {
++ for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) {
+ if ((pend - pstart == qend - qstart)
+- && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0)
++ && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) {
++ if (counter > 0)
++ (void) fprintf(stderr, "Name collision '%.*s' between\n",
++ (int) (pend - pstart), pstart);
+ return (TRUE);
++ }
++ }
++ }
+
+ return (FALSE);
+ }
+
++static char *
++next_name(char *name)
++{
++ if (*name != '\0')
++ ++name;
++ return name;
++}
++
++static char *
++name_ending(char *name)
++{
++ if (*name == '\0') {
++ name = 0;
++ } else {
++ while (*name != '\0' && *name != '|')
++ ++name;
++ }
++ return name;
++}
++
++/*
++ * Essentially, find the conflict reported in check_collisions() and remove
++ * it from the second name, unless that happens to be the last alias.
++ */
++static bool
++remove_collision(char *n1, char *n2)
++{
++ char *p2 = n2;
++ char *pstart, *qstart, *pend, *qend;
++ bool removed = FALSE;
++
++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES
++ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
++ n1 = skip_index(n1);
++ p2 = n2 = skip_index(n2);
++ }
++#endif
++
++ for (pstart = n1; (pend = name_ending(pstart)); pstart = next_name(pend)) {
++ for (qstart = n2; (qend = name_ending(qstart)); qstart = next_name(qend)) {
++ if ((pend - pstart == qend - qstart)
++ && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) {
++ if (qstart != p2 || *qend == '|') {
++ if (*qend == '|')
++ ++qend;
++ while ((*qstart++ = *qend++) != '\0') ;
++ fprintf(stderr, "...now\t%s\n", p2);
++ } else {
++ fprintf(stderr, "Cannot remove alias '%.*s'\n",
++ (int) (qend - qstart), qstart);
++ }
++ removed = TRUE;
++ break;
++ }
++ }
++ }
++
++ return removed;
++}
++
++/* do any of the aliases in a pair of terminal names match? */
++NCURSES_EXPORT(bool)
++_nc_entry_match(char *n1, char *n2)
++{
++ return check_collisions(n1, n2, 0);
++}
++
+ /****************************************************************************
+ *
+ * Entry compiler and resolution logic
+@@ -198,19 +287,19 @@
+
+ for_entry_list(rp) {
+ if (qp > rp
+- && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
+- matchcount++;
+- if (matchcount == 1) {
+- (void) fprintf(stderr, "Name collision between %s",
+- _nc_first_name(qp->tterm.term_names));
+- multiples++;
++ && check_collisions(qp->tterm.term_names,
++ rp->tterm.term_names,
++ matchcount + 1)) {
++ if (!matchcount++) {
++ (void) fprintf(stderr, "\t%s\n", rp->tterm.term_names);
++ }
++ (void) fprintf(stderr, "and\t%s\n", qp->tterm.term_names);
++ if (!remove_collision(rp->tterm.term_names,
++ qp->tterm.term_names)) {
++ ++multiples;
+ }
+- if (matchcount >= 1)
+- (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names));
+ }
+ }
+- if (matchcount >= 1)
+- (void) putc('\n', stderr);
+ }
+ if (multiples > 0)
+ return (FALSE);
+@@ -256,9 +345,7 @@
+ DEBUG(2, ("%s: resolving use=%s (compiled)",
+ child, lookfor));
+
+- rp = typeMalloc(ENTRY, 1);
+- if (rp == 0)
+- _nc_err_abort(MSG_NO_MEMORY);
++ TYPE_MALLOC(ENTRY, 1, rp);
+ rp->tterm = thisterm;
+ rp->nuses = 0;
+ rp->next = lastread;
+@@ -378,7 +465,34 @@
+ for_entry_list(qp) {
+ _nc_curr_line = (int) qp->startline;
+ _nc_set_type(_nc_first_name(qp->tterm.term_names));
+- _nc_check_termtype2(&qp->tterm, literal);
++ /*
++ * tic overrides this function pointer to provide more verbose
++ * checking.
++ */
++ if (_nc_check_termtype2 != sanity_check2) {
++ SCREEN *save_SP = SP;
++ SCREEN fake_sp;
++ TERMINAL fake_tm;
++ TERMINAL *save_tm = cur_term;
++
++ /*
++ * Setup so that tic can use ordinary terminfo interface
++ * to obtain capability information.
++ */
++ memset(&fake_sp, 0, sizeof(fake_sp));
++ memset(&fake_tm, 0, sizeof(fake_tm));
++ fake_sp._term = &fake_tm;
++ fake_tm.type = qp->tterm;
++ _nc_set_screen(&fake_sp);
++ set_curterm(&fake_tm);
++
++ _nc_check_termtype2(&qp->tterm, literal);
++
++ _nc_set_screen(save_SP);
++ set_curterm(save_tm);
++ } else {
++ fixup_acsc(&qp->tterm, literal);
++ }
+ }
+ DEBUG(2, ("SANITY CHECK FINISHED"));
+ }
+@@ -403,6 +517,17 @@
+ #define CUR tp->
+
+ static void
++fixup_acsc(TERMTYPE *tp, int literal)
++{
++ if (!literal) {
++ if (acs_chars == 0
++ && enter_alt_charset_mode != 0
++ && exit_alt_charset_mode != 0)
++ acs_chars = strdup(VT_ACSC);
++ }
++}
++
++static void
+ sanity_check2(TERMTYPE *tp, bool literal)
+ {
+ if (!PRESENT(exit_attribute_mode)) {
+@@ -422,16 +547,14 @@
+ #endif /* __UNUSED__ */
+ PAIRED(enter_standout_mode, exit_standout_mode);
+ PAIRED(enter_underline_mode, exit_underline_mode);
++ PAIRED(enter_italics_mode, exit_italics_mode);
+ }
+
+ /* we do this check/fix in postprocess_termcap(), but some packagers
+ * prefer to bypass it...
+ */
+ if (!literal) {
+- if (acs_chars == 0
+- && enter_alt_charset_mode != 0
+- && exit_alt_charset_mode != 0)
+- acs_chars = strdup(VT_ACSC);
++ fixup_acsc(tp, literal);
+ ANDMISSING(enter_alt_charset_mode, acs_chars);
+ ANDMISSING(exit_alt_charset_mode, acs_chars);
+ }
+Index: ncurses/tinfo/comp_scan.c
+Prereq: 1.89
+--- ncurses-5.9/ncurses/tinfo/comp_scan.c 2010-12-25 23:06:37.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/comp_scan.c 2013-11-16 19:57:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -50,7 +50,7 @@
+ #include <ctype.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: comp_scan.c,v 1.89 2010/12/25 23:06:37 tom Exp $")
++MODULE_ID("$Id: comp_scan.c,v 1.102 2013/11/16 19:57:50 tom Exp $")
+
+ /*
+ * Maximum length of string capability we'll accept before raising an error.
+@@ -61,6 +61,7 @@
+ #define iswhite(ch) (ch == ' ' || ch == '\t')
+
+ NCURSES_EXPORT_VAR (int) _nc_syntax = 0; /* termcap or terminfo? */
++NCURSES_EXPORT_VAR (int) _nc_strict_bsd = 1; /* ncurses extended termcap? */
+ NCURSES_EXPORT_VAR (long) _nc_curr_file_pos = 0; /* file offset of current line */
+ NCURSES_EXPORT_VAR (long) _nc_comment_start = 0; /* start of comment range before name */
+ NCURSES_EXPORT_VAR (long) _nc_comment_end = 0; /* end of comment range before name */
+@@ -127,14 +128,19 @@
+ * Returns the final nonblank character on the current input buffer
+ */
+ static int
+-last_char(void)
++last_char(int from_end)
+ {
+ size_t len = strlen(bufptr);
++ int result = 0;
++
+ while (len--) {
+- if (!isspace(UChar(bufptr[len])))
+- return bufptr[len];
++ if (!isspace(UChar(bufptr[len]))) {
++ if (from_end < (int) len)
++ result = bufptr[(int) len - from_end];
++ break;
++ }
+ }
+- return 0;
++ return result;
+ }
+
+ /*
+@@ -195,7 +201,8 @@
+ result = typeRealloc(char, allocated, result);
+ if (result == 0)
+ return (EOF);
+- bufstart = result;
++ if (bufstart)
++ bufstart = result;
+ }
+ if (used == 0)
+ _nc_curr_file_pos = ftell(yyin);
+@@ -212,7 +219,7 @@
+ }
+ } else {
+ if (used != 0)
+- strcat(result, "\n");
++ _nc_STRCAT(result, "\n", allocated);
+ }
+ if ((bufptr = bufstart) != 0) {
+ used = strlen(bufptr);
+@@ -256,12 +263,12 @@
+ }
+
+ static void
+-push_back(char c)
++push_back(int c)
+ /* push a character back onto the input stream */
+ {
+ if (bufptr == bufstart)
+ _nc_syserr_abort("Can't backspace off beginning of line");
+- *--bufptr = c;
++ *--bufptr = (char) c;
+ _nc_curr_col--;
+ }
+
+@@ -299,6 +306,8 @@
+ *tok_ptr++ = (char) ch; \
+ *tok_ptr = '\0'
+
++static char *tok_buf;
++
+ /*
+ * int
+ * get_token()
+@@ -336,15 +345,14 @@
+ _nc_get_token(bool silent)
+ {
+ static const char terminfo_punct[] = "@%&*!#";
+- static char *tok_buf;
+
+- char *after_list;
+- char *after_name;
++ char *after_name; /* after primary name */
++ char *after_list; /* after primary and alias list */
+ char *numchk;
+ char *tok_ptr;
+ char *s;
+ char numbuf[80];
+- int ch;
++ int ch, c0, c1;
+ int dot_flag = FALSE;
+ int type;
+ long number;
+@@ -372,11 +380,10 @@
+
+ if (end_of_stream()) {
+ yyin = 0;
+- next_char(); /* frees its allocated memory */
++ (void) next_char(); /* frees its allocated memory */
+ if (tok_buf != 0) {
+ if (_nc_curr_token.tk_name == tok_buf)
+ _nc_curr_token.tk_name = 0;
+- FreeAndNull(tok_buf);
+ }
+ return (EOF);
+ }
+@@ -390,6 +397,7 @@
+ }
+
+ ch = eat_escaped_newline(ch);
++ _nc_curr_token.tk_valstring = 0;
+
+ #ifdef TRACE
+ old_line = _nc_curr_line;
+@@ -424,7 +432,7 @@
+ #if NCURSES_EXT_FUNCS
+ && !(ch == '.' && _nc_disable_period)
+ #endif
+- && !strchr(terminfo_punct, (char) ch)) {
++ && ((strchr) (terminfo_punct, (char) ch) == 0)) {
+ if (!silent)
+ _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'",
+ terminfo_punct, unctrl(UChar(ch)));
+@@ -457,7 +465,7 @@
+ after_list = tok_ptr;
+ if (after_name == 0)
+ after_name = tok_ptr;
+- } else if (ch == ':' && last_char() != ',') {
++ } else if (ch == ':' && last_char(0) != ',') {
+ _nc_syntax = SYN_TERMCAP;
+ separator = ':';
+ break;
+@@ -471,12 +479,64 @@
+ if (after_name == 0)
+ break;
+ /*
+- * If we see a comma, we assume this is terminfo unless we
+- * subsequently run into a colon. But we don't stop
+- * looking for a colon until hitting a newline. This
+- * allows commas to be embedded in description fields of
+- * either syntax.
++ * We saw a comma, but are not entirely sure this is
++ * terminfo format, since we can still be parsing the
++ * description field (for either syntax).
++ *
++ * A properly formatted termcap line ends with either a
++ * colon, or a backslash after a colon. It is possible
++ * to have a backslash in the middle of a capability, but
++ * then there would be no leading whitespace on the next
++ * line - something we want to discourage.
+ */
++ c0 = last_char(0);
++ c1 = last_char(1);
++ if (c1 != ':' && c0 != '\\' && c0 != ':') {
++ bool capability = FALSE;
++
++ /*
++ * Since it is not termcap, assume the line is terminfo
++ * format. However, the comma can be embedded in a
++ * description field. It also can be a separator
++ * between a description field and a capability.
++ *
++ * Improve the guess by checking if the next word after
++ * the comma does not look like a capability. In that
++ * case, extend the description past the comma.
++ */
++ for (s = bufptr; isspace(UChar(*s)); ++s) {
++ ;
++ }
++ if (islower(UChar(*s))) {
++ char *name = s;
++ while (isalnum(UChar(*s))) {
++ ++s;
++ }
++ if (*s == '#' || *s == '=' || *s == '@') {
++ /*
++ * Checking solely with syntax allows us to
++ * support extended capabilities with string
++ * values.
++ */
++ capability = TRUE;
++ } else if (*s == ',') {
++ c0 = *s;
++ *s = '\0';
++ /*
++ * Otherwise, we can handle predefined boolean
++ * capabilities, still aided by syntax.
++ */
++ if (_nc_find_entry(name,
++ _nc_get_hash_table(FALSE))) {
++ capability = TRUE;
++ }
++ *s = (char) c0;
++ }
++ }
++ if (capability) {
++ break;
++ }
++ }
+ } else
+ ch = eat_escaped_newline(ch);
+
+@@ -748,7 +808,7 @@
+ if (!(is7bits(c) && isprint(c))) {
+ _nc_warning("Illegal ^ character - '%s'", unctrl(UChar(c)));
+ }
+- if (c == '?') {
++ if (c == '?' && (_nc_syntax != SYN_TERMCAP)) {
+ *(ptr++) = '\177';
+ if (_nc_tracing)
+ _nc_warning("Allow ^? as synonym for \\177");
+@@ -758,23 +818,29 @@
+ *(ptr++) = (char) (c);
+ }
+ } else if (c == '\\') {
++ bool strict_bsd = ((_nc_syntax == SYN_TERMCAP) && _nc_strict_bsd);
++
+ c = next_char();
+ if (c == EOF)
+ _nc_err_abort(MSG_NO_INPUTS);
+
+- if (c >= '0' && c <= '7') {
++#define isoctal(c) ((c) >= '0' && (c) <= '7')
++
++ if (isoctal(c) || (strict_bsd && isdigit(c))) {
+ number = c - '0';
+ for (i = 0; i < 2; i++) {
+ c = next_char();
+ if (c == EOF)
+ _nc_err_abort(MSG_NO_INPUTS);
+
+- if (c < '0' || c > '7') {
++ if (!isoctal(c)) {
+ if (isdigit(c)) {
+- _nc_warning("Non-octal digit `%c' in \\ sequence", c);
+- /* allow the digit; it'll do less harm */
++ if (!strict_bsd) {
++ _nc_warning("Non-octal digit `%c' in \\ sequence", c);
++ /* allow the digit; it'll do less harm */
++ }
+ } else {
+- push_back((char) c);
++ push_back(c);
+ break;
+ }
+ }
+@@ -782,21 +848,16 @@
+ number = number * 8 + c - '0';
+ }
+
+- if (number == 0)
++ number = UChar(number);
++ if (number == 0 && !strict_bsd)
+ number = 0200;
+ *(ptr++) = (char) number;
+ } else {
+ switch (c) {
+ case 'E':
+- case 'e':
+ *(ptr++) = '\033';
+ break;
+
+- case 'a':
+- *(ptr++) = '\007';
+- break;
+-
+- case 'l':
+ case 'n':
+ *(ptr++) = '\n';
+ break;
+@@ -809,10 +870,6 @@
+ *(ptr++) = '\010';
+ break;
+
+- case 's':
+- *(ptr++) = ' ';
+- break;
+-
+ case 'f':
+ *(ptr++) = '\014';
+ break;
+@@ -833,16 +890,33 @@
+ *(ptr++) = ',';
+ break;
+
+- case ':':
+- *(ptr++) = ':';
+- break;
+-
+ case '\n':
+ continue;
+
+ default:
+- _nc_warning("Illegal character '%s' in \\ sequence",
+- unctrl(UChar(c)));
++ if ((_nc_syntax == SYN_TERMINFO) || !_nc_strict_bsd) {
++ switch (c) {
++ case 'a':
++ c = '\007';
++ break;
++ case 'e':
++ c = '\033';
++ break;
++ case 'l':
++ c = '\n';
++ break;
++ case 's':
++ c = ' ';
++ break;
++ case ':':
++ c = ':';
++ break;
++ default:
++ _nc_warning("Illegal character '%s' in \\ sequence",
++ unctrl(UChar(c)));
++ break;
++ }
++ }
+ /* FALLTHRU */
+ case '|':
+ *(ptr++) = (char) c;
+@@ -862,7 +936,7 @@
+
+ if (!ignored) {
+ if (_nc_curr_col <= 1) {
+- push_back((char) c);
++ push_back(c);
+ c = '\n';
+ break;
+ }
+@@ -934,5 +1008,8 @@
+ if (pushname != 0) {
+ FreeAndNull(pushname);
+ }
++ if (tok_buf != 0) {
++ FreeAndNull(tok_buf);
++ }
+ }
+ #endif
+Index: ncurses/tinfo/db_iterator.c
+Prereq: 1.9
+--- ncurses-5.9/ncurses/tinfo/db_iterator.c 2010-12-25 23:00:25.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/db_iterator.c 2014-11-01 14:47:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,13 +36,142 @@
+
+ #include <curses.priv.h>
+
++#include <time.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: db_iterator.c,v 1.9 2010/12/25 23:00:25 tom Exp $")
++#if USE_HASHED_DB
++#include <hashed_db.h>
++#endif
++
++MODULE_ID("$Id: db_iterator.c,v 1.39 2014/11/01 14:47:00 tom Exp $")
+
+ #define HaveTicDirectory _nc_globals.have_tic_directory
+ #define KeepTicDirectory _nc_globals.keep_tic_directory
+ #define TicDirectory _nc_globals.tic_directory
++#define my_blob _nc_globals.dbd_blob
++#define my_list _nc_globals.dbd_list
++#define my_size _nc_globals.dbd_size
++#define my_time _nc_globals.dbd_time
++#define my_vars _nc_globals.dbd_vars
++
++static void
++add_to_blob(const char *text, size_t limit)
++{
++ (void) limit;
++
++ if (*text != '\0') {
++ char *last = my_blob + strlen(my_blob);
++ if (last != my_blob)
++ *last++ = NCURSES_PATHSEP;
++ _nc_STRCPY(last, text, limit);
++ }
++}
++
++static bool
++check_existence(const char *name, struct stat *sb)
++{
++ bool result = FALSE;
++
++ if (stat(name, sb) == 0
++ && (S_ISDIR(sb->st_mode) || S_ISREG(sb->st_mode))) {
++ result = TRUE;
++ }
++#if USE_HASHED_DB
++ else if (strlen(name) < PATH_MAX - sizeof(DBM_SUFFIX)) {
++ char temp[PATH_MAX];
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%s%s", name, DBM_SUFFIX);
++ if (stat(temp, sb) == 0 && S_ISREG(sb->st_mode)) {
++ result = TRUE;
++ }
++ }
++#endif
++ return result;
++}
++
++/*
++ * Store the latest value of an environment variable in my_vars[] so we can
++ * detect if one changes, invalidating the cached search-list.
++ */
++static bool
++update_getenv(const char *name, DBDIRS which)
++{
++ bool result = FALSE;
++
++ if (which < dbdLAST) {
++ char *value;
++
++ if ((value = getenv(name)) == 0 || (value = strdup(value)) == 0) {
++ ;
++ } else if (my_vars[which].name == 0 || strcmp(my_vars[which].name, name)) {
++ FreeIfNeeded(my_vars[which].value);
++ my_vars[which].name = name;
++ my_vars[which].value = value;
++ result = TRUE;
++ } else if ((my_vars[which].value != 0) ^ (value != 0)) {
++ FreeIfNeeded(my_vars[which].value);
++ my_vars[which].value = value;
++ result = TRUE;
++ } else if (value != 0 && strcmp(value, my_vars[which].value)) {
++ FreeIfNeeded(my_vars[which].value);
++ my_vars[which].value = value;
++ result = TRUE;
++ } else {
++ free(value);
++ }
++ }
++ return result;
++}
++
++static char *
++cache_getenv(const char *name, DBDIRS which)
++{
++ char *result = 0;
++
++ (void) update_getenv(name, which);
++ if (which < dbdLAST) {
++ result = my_vars[which].value;
++ }
++ return result;
++}
++
++/*
++ * The cache expires if at least a second has passed since the initial lookup,
++ * or if one of the environment variables changed.
++ *
++ * Only a few applications use multiple lookups of terminal entries, seems that
++ * aside from bulk I/O such as tic and toe, that leaves interactive programs
++ * which should not be modifying the terminal databases in a way that would
++ * invalidate the search-list.
++ *
++ * The "1-second" is to allow for user-directed changes outside the program.
++ */
++static bool
++cache_expired(void)
++{
++ bool result = FALSE;
++ time_t now = time((time_t *) 0);
++
++ if (now > my_time) {
++ result = TRUE;
++ } else {
++ DBDIRS n;
++ for (n = (DBDIRS) 0; n < dbdLAST; ++n) {
++ if (my_vars[n].name != 0
++ && update_getenv(my_vars[n].name, n)) {
++ result = TRUE;
++ break;
++ }
++ }
++ }
++ return result;
++}
++
++static void
++free_cache(void)
++{
++ FreeAndNull(my_blob);
++ FreeAndNull(my_list);
++}
+
+ /*
+ * Record the "official" location of the terminfo directory, according to
+@@ -51,17 +180,20 @@
+ NCURSES_EXPORT(const char *)
+ _nc_tic_dir(const char *path)
+ {
++ T(("_nc_tic_dir %s", NonNull(path)));
+ if (!KeepTicDirectory) {
+ if (path != 0) {
+ TicDirectory = path;
+ HaveTicDirectory = TRUE;
+- } else if (!HaveTicDirectory && use_terminfo_vars()) {
+- char *envp;
+- if ((envp = getenv("TERMINFO")) != 0)
+- return _nc_tic_dir(envp);
++ } else if (HaveTicDirectory == 0) {
++ if (use_terminfo_vars()) {
++ const char *envp;
++ if ((envp = getenv("TERMINFO")) != 0)
++ return _nc_tic_dir(envp);
++ }
+ }
+ }
+- return TicDirectory;
++ return TicDirectory ? TicDirectory : TERMINFO;
+ }
+
+ /*
+@@ -77,61 +209,16 @@
+ }
+
+ /*
+- * Process the list of :-separated directories, looking for the terminal type.
+- * We don't use strtok because it does not show us empty tokens.
+- */
+-#define ThisDbList _nc_globals.dbi_list
+-#define ThisDbSize _nc_globals.dbi_size
+-
+-/*
+ * Cleanup.
+ */
+ NCURSES_EXPORT(void)
+ _nc_last_db(void)
+ {
+- if (ThisDbList != 0) {
+- FreeAndNull(ThisDbList);
++ if (my_blob != 0 && cache_expired()) {
++ free_cache();
+ }
+- ThisDbSize = 0;
+ }
+
+-/* The TERMINFO_DIRS value, if defined by the configure script, begins with a
+- * ":", which will be interpreted as TERMINFO.
+- */
+-static const char *
+-next_list_item(const char *source, int *offset)
+-{
+- if (source != 0) {
+- FreeIfNeeded(ThisDbList);
+- ThisDbList = strdup(source);
+- ThisDbSize = (int) strlen(source);
+- }
+-
+- if (ThisDbList != 0 && ThisDbSize && *offset < ThisDbSize) {
+- static char system_db[] = TERMINFO;
+- char *result = ThisDbList + *offset;
+- char *marker = strchr(result, NCURSES_PATHSEP);
+-
+- /*
+- * Put a null on the marker if a separator was found. Set the offset
+- * to the next position after the marker so we can call this function
+- * again, using the data at the offset.
+- */
+- if (marker == 0) {
+- *offset += (int) strlen(result);
+- } else {
+- *marker++ = 0;
+- *offset = (int) (marker - ThisDbList);
+- }
+- if (*result == 0 && result != (ThisDbList + ThisDbSize))
+- result = system_db;
+- return result;
+- }
+- return 0;
+-}
+-
+-#define NEXT_DBD(var, offset) next_list_item((*offset == 0) ? var : 0, offset)
+-
+ /*
+ * This is a simple iterator which allows the caller to step through the
+ * possible locations for a terminfo directory. ncurses uses this to find
+@@ -141,84 +228,186 @@
+ _nc_next_db(DBDIRS * state, int *offset)
+ {
+ const char *result;
+- char *envp;
+-
+- while (*state < dbdLAST) {
+- DBDIRS next = (DBDIRS) ((int) (*state) + 1);
+
++ (void) offset;
++ if ((int) *state < my_size
++ && my_list != 0
++ && my_list[*state] != 0) {
++ result = my_list[*state];
++ (*state)++;
++ } else {
+ result = 0;
++ }
++ if (result != 0) {
++ T(("_nc_next_db %d %s", *state, result));
++ }
++ return result;
++}
+
+- switch (*state) {
+- case dbdTIC:
+- if (HaveTicDirectory)
+- result = _nc_tic_dir(0);
+- break;
+-#if USE_DATABASE
+- case dbdEnvOnce:
+- if (use_terminfo_vars()) {
+- if ((envp = getenv("TERMINFO")) != 0)
+- result = _nc_tic_dir(envp);
++NCURSES_EXPORT(void)
++_nc_first_db(DBDIRS * state, int *offset)
++{
++ bool cache_has_expired = FALSE;
++ *state = dbdTIC;
++ *offset = 0;
++
++ T(("_nc_first_db"));
++
++ /* build a blob containing all of the strings we will use for a lookup
++ * table.
++ */
++ if (my_blob == 0 || (cache_has_expired = cache_expired())) {
++ size_t blobsize = 0;
++ const char *values[dbdLAST];
++ struct stat *my_stat;
++ int j, k;
++
++ if (cache_has_expired)
++ free_cache();
++
++ for (j = 0; j < dbdLAST; ++j)
++ values[j] = 0;
++
++ /*
++ * This is the first item in the list, and is used only when tic is
++ * writing to the database, as a performance improvement.
++ */
++ values[dbdTIC] = TicDirectory;
++
++#if NCURSES_USE_DATABASE
++#ifdef TERMINFO_DIRS
++ values[dbdCfgList] = TERMINFO_DIRS;
++#endif
++#ifdef TERMINFO
++ values[dbdCfgOnce] = TERMINFO;
++#endif
++#endif
++
++#if NCURSES_USE_TERMCAP
++ values[dbdCfgList2] = TERMPATH;
++#endif
++
++ if (use_terminfo_vars()) {
++#if NCURSES_USE_DATABASE
++ values[dbdEnvOnce] = cache_getenv("TERMINFO", dbdEnvOnce);
++ values[dbdHome] = _nc_home_terminfo();
++ (void) cache_getenv("HOME", dbdHome);
++ values[dbdEnvList] = cache_getenv("TERMINFO_DIRS", dbdEnvList);
++
++#endif
++#if NCURSES_USE_TERMCAP
++ values[dbdEnvOnce2] = cache_getenv("TERMCAP", dbdEnvOnce2);
++ /* only use $TERMCAP if it is an absolute path */
++ if (values[dbdEnvOnce2] != 0
++ && *values[dbdEnvOnce2] != '/') {
++ values[dbdEnvOnce2] = 0;
+ }
+- break;
+- case dbdHome:
+- if (use_terminfo_vars()) {
+- result = _nc_home_terminfo();
++ values[dbdEnvList2] = cache_getenv("TERMPATH", dbdEnvList2);
++#endif /* NCURSES_USE_TERMCAP */
++ }
++
++ for (j = 0; j < dbdLAST; ++j) {
++ if (values[j] == 0)
++ values[j] = "";
++ blobsize += 2 + strlen(values[j]);
++ }
++
++ my_blob = malloc(blobsize);
++ if (my_blob != 0) {
++ *my_blob = '\0';
++ for (j = 0; j < dbdLAST; ++j) {
++ add_to_blob(values[j], blobsize);
+ }
+- break;
+- case dbdEnvList:
+- if (use_terminfo_vars()) {
+- if ((result = NEXT_DBD(getenv("TERMINFO_DIRS"), offset)) != 0)
+- next = *state;
++
++ /* Now, build an array which will be pointers to the distinct
++ * strings in the blob.
++ */
++ blobsize = 2;
++ for (j = 0; my_blob[j] != '\0'; ++j) {
++ if (my_blob[j] == NCURSES_PATHSEP)
++ ++blobsize;
+ }
+- break;
+- case dbdCfgList:
+-#ifdef TERMINFO_DIRS
+- if ((result = NEXT_DBD(TERMINFO_DIRS, offset)) != 0)
+- next = *state;
++ my_list = typeCalloc(char *, blobsize);
++ my_stat = typeCalloc(struct stat, blobsize);
++ if (my_list != 0 && my_stat != 0) {
++ k = 0;
++ my_list[k++] = my_blob;
++ for (j = 0; my_blob[j] != '\0'; ++j) {
++ if (my_blob[j] == NCURSES_PATHSEP) {
++ my_blob[j] = '\0';
++ my_list[k++] = &my_blob[j + 1];
++ }
++ }
++
++ /*
++ * Eliminate duplicates from the list.
++ */
++ for (j = 0; my_list[j] != 0; ++j) {
++#ifdef TERMINFO
++ if (*my_list[j] == '\0')
++ my_list[j] = strdup(TERMINFO);
+ #endif
+- break;
+- case dbdCfgOnce:
+-#ifndef TERMINFO_DIRS
+- result = TERMINFO;
+-#endif
+- break;
+-#endif /* USE_DATABASE */
+-#if USE_TERMCAP
+- case dbdEnvOnce2:
+- if (use_terminfo_vars()) {
+- if ((envp = getenv("TERMCAP")) != 0)
+- result = _nc_tic_dir(envp);
+- }
+- break;
+- case dbdEnvList2:
+- if (use_terminfo_vars()) {
+- if ((result = NEXT_DBD(getenv("TERMPATH"), offset)) != 0)
+- next = *state;
++ for (k = 0; k < j; ++k) {
++ if (!strcmp(my_list[j], my_list[k])) {
++ k = j - 1;
++ while ((my_list[j] = my_list[j + 1]) != 0) {
++ ++j;
++ }
++ j = k;
++ break;
++ }
++ }
++ }
++
++ /*
++ * Eliminate non-existent databases, and those that happen to
++ * be symlinked to another location.
++ */
++ for (j = 0; my_list[j] != 0; ++j) {
++ bool found = check_existence(my_list[j], &my_stat[j]);
++#if HAVE_LINK
++ if (found) {
++ for (k = 0; k < j; ++k) {
++ if (my_stat[j].st_dev == my_stat[k].st_dev
++ && my_stat[j].st_ino == my_stat[k].st_ino) {
++ found = FALSE;
++ break;
++ }
++ }
++ }
++#endif
++ if (!found) {
++ k = j;
++ while ((my_list[k] = my_list[k + 1]) != 0) {
++ ++k;
++ }
++ --j;
++ }
++ }
++ my_size = j;
++ my_time = time((time_t *) 0);
++ } else {
++ FreeAndNull(my_blob);
+ }
+- break;
+- case dbdCfgList2:
+- if ((result = NEXT_DBD(TERMPATH, offset)) != 0)
+- next = *state;
+- break;
+-#endif /* USE_TERMCAP */
+- case dbdLAST:
+- break;
+- }
+- if (*state != next) {
+- *state = next;
+- *offset = 0;
+- _nc_last_db();
+- }
+- if (result != 0) {
+- return result;
++ free(my_stat);
+ }
+ }
+- return 0;
+ }
+
+-NCURSES_EXPORT(void)
+-_nc_first_db(DBDIRS * state, int *offset)
++#if NO_LEAKS
++void
++_nc_db_iterator_leaks(void)
+ {
+- *state = dbdTIC;
+- *offset = 0;
++ DBDIRS which;
++
++ if (my_blob != 0)
++ FreeAndNull(my_blob);
++ if (my_list != 0)
++ FreeAndNull(my_list);
++ for (which = 0; (int) which < dbdLAST; ++which) {
++ my_vars[which].name = 0;
++ FreeIfNeeded(my_vars[which].value);
++ my_vars[which].value = 0;
++ }
+ }
++#endif
+Index: ncurses/tinfo/doalloc.c
+Prereq: 1.8
+--- ncurses-5.9/ncurses/tinfo/doalloc.c 2002-08-31 21:48:11.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/doalloc.c 2012-11-03 19:27:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2000,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: doalloc.c,v 1.8 2002/08/31 21:48:11 Philippe.Blain Exp $")
++MODULE_ID("$Id: doalloc.c,v 1.11 2012/11/03 19:27:41 tom Exp $")
+
+ NCURSES_EXPORT(void *)
+ _nc_doalloc(void *oldp, size_t amount)
+@@ -56,20 +56,3 @@
+ }
+ return newp;
+ }
+-
+-#if !HAVE_STRDUP
+-NCURSES_EXPORT(char *)
+-_nc_strdup(const char *src)
+-{
+- char *dst;
+- if (src != 0) {
+- dst = typeMalloc(char, strlen(src) + 1);
+- if (dst != 0) {
+- (void) strcpy(dst, src);
+- }
+- } else {
+- dst = 0;
+- }
+- return dst;
+-}
+-#endif
+Index: ncurses/tinfo/entries.c
+Prereq: 1.17
+--- ncurses-5.9/ncurses/tinfo/entries.c 2010-01-23 17:57:43.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/entries.c 2012-05-05 20:33:44.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: entries.c,v 1.17 2010/01/23 17:57:43 tom Exp $")
++MODULE_ID("$Id: entries.c,v 1.21 2012/05/05 20:33:44 tom Exp $")
+
+ /****************************************************************************
+ *
+@@ -96,6 +96,9 @@
+ if (last != 0) {
+ last->next = ep->next;
+ }
++ if (ep->next != 0) {
++ ep->next->last = last;
++ }
+ if (ep == _nc_head) {
+ _nc_head = ep->next;
+ }
+@@ -128,19 +131,21 @@
+ _nc_free_entries(_nc_head);
+ _nc_get_type(0);
+ _nc_first_name(0);
++ _nc_db_iterator_leaks();
+ _nc_keyname_leaks();
+ #if BROKEN_LINKER || USE_REENTRANT
+ _nc_names_leaks();
+ _nc_codes_leaks();
+ FreeIfNeeded(_nc_prescreen.real_acs_map);
+ #endif
++ _nc_comp_error_leaks();
+
+ if ((s = _nc_home_terminfo()) != 0)
+ free(s);
+
+ #ifdef TRACE
+ trace(0);
+- _nc_trace_buf(-1, 0);
++ _nc_trace_buf(-1, (size_t) 0);
+ #endif
+
+ #endif /* NO_LEAKS */
+Index: ncurses/tinfo/getenv_num.c
+Prereq: 1.3
+--- ncurses-5.9/ncurses/tinfo/getenv_num.c 2000-12-10 02:55:07.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/getenv_num.c 2013-09-28 20:25:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: getenv_num.c,v 1.3 2000/12/10 02:55:07 tom Exp $")
++MODULE_ID("$Id: getenv_num.c,v 1.6 2013/09/28 20:25:08 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ _nc_getenv_num(const char *name)
+@@ -54,3 +54,20 @@
+
+ return (int) value;
+ }
++
++NCURSES_EXPORT(void)
++_nc_setenv_num(const char *name, int value)
++{
++ if (name != 0 && value >= 0) {
++ char buffer[128];
++#if HAVE_SETENV
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%d", value);
++ setenv(name, buffer, 1);
++#elif HAVE_PUTENV
++ char *s;
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%s=%d", name, value);
++ if ((s = strdup(buffer)) != 0)
++ putenv(s);
++#endif
++ }
++}
+Index: ncurses/tinfo/hashed_db.c
+Prereq: 1.14
+--- ncurses-5.9/ncurses/tinfo/hashed_db.c 2008-12-13 20:59:02.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/hashed_db.c 2013-12-15 00:33:01.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,12 +36,81 @@
+
+ #if USE_HASHED_DB
+
+-MODULE_ID("$Id: hashed_db.c,v 1.14 2008/12/13 20:59:02 tom Exp $")
++MODULE_ID("$Id: hashed_db.c,v 1.17 2013/12/15 00:33:01 tom Exp $")
+
+ #if HASHED_DB_API >= 2
+ static DBC *cursor;
+ #endif
+
++typedef struct _myconn {
++ struct _myconn *next;
++ DB *db;
++ char *path;
++ bool modify;
++} MYCONN;
++
++static MYCONN *connections;
++
++static void
++cleanup(void)
++{
++ while (connections != 0) {
++ _nc_db_close(connections->db);
++ }
++}
++
++static DB *
++find_connection(const char *path, bool modify)
++{
++ DB *result = 0;
++ MYCONN *p;
++
++ for (p = connections; p != 0; p = p->next) {
++ if (!strcmp(p->path, path) && p->modify == modify) {
++ result = p->db;
++ break;
++ }
++ }
++
++ return result;
++}
++
++static void
++drop_connection(DB * db)
++{
++ MYCONN *p, *q;
++
++ for (p = connections, q = 0; p != 0; q = p, p = p->next) {
++ if (p->db == db) {
++ if (q != 0)
++ q->next = p->next;
++ else
++ connections = p->next;
++ free(p->path);
++ free(p);
++ break;
++ }
++ }
++}
++
++static void
++make_connection(DB * db, const char *path, bool modify)
++{
++ MYCONN *p = typeCalloc(MYCONN, 1);
++
++ if (p != 0) {
++ p->db = db;
++ p->path = strdup(path);
++ p->modify = modify;
++ if (p->path != 0) {
++ p->next = connections;
++ connections = p;
++ } else {
++ free(p);
++ }
++ }
++}
++
+ /*
+ * Open the database.
+ */
+@@ -51,50 +120,57 @@
+ DB *result = 0;
+ int code;
+
++ if (connections == 0)
++ atexit(cleanup);
++
++ if ((result = find_connection(path, modify)) == 0) {
++
+ #if HASHED_DB_API >= 4
+- db_create(&result, NULL, 0);
+- if ((code = result->open(result,
+- NULL,
+- path,
+- NULL,
+- DB_HASH,
+- modify ? DB_CREATE : DB_RDONLY,
+- 0644)) != 0) {
+- result = 0;
+- }
++ db_create(&result, NULL, 0);
++ if ((code = result->open(result,
++ NULL,
++ path,
++ NULL,
++ DB_HASH,
++ modify ? DB_CREATE : DB_RDONLY,
++ 0644)) != 0) {
++ result = 0;
++ }
+ #elif HASHED_DB_API >= 3
+- db_create(&result, NULL, 0);
+- if ((code = result->open(result,
+- path,
+- NULL,
+- DB_HASH,
+- modify ? DB_CREATE : DB_RDONLY,
+- 0644)) != 0) {
+- result = 0;
+- }
++ db_create(&result, NULL, 0);
++ if ((code = result->open(result,
++ path,
++ NULL,
++ DB_HASH,
++ modify ? DB_CREATE : DB_RDONLY,
++ 0644)) != 0) {
++ result = 0;
++ }
+ #elif HASHED_DB_API >= 2
+- if ((code = db_open(path,
+- DB_HASH,
+- modify ? DB_CREATE : DB_RDONLY,
+- 0644,
+- (DB_ENV *) 0,
+- (DB_INFO *) 0,
+- &result)) != 0) {
+- result = 0;
+- }
+-#else
+- if ((result = dbopen(path,
+- modify ? (O_CREAT | O_RDWR) : O_RDONLY,
+- 0644,
+- DB_HASH,
+- NULL)) == 0) {
+- code = errno;
+- }
++ if ((code = db_open(path,
++ DB_HASH,
++ modify ? DB_CREATE : DB_RDONLY,
++ 0644,
++ (DB_ENV *) 0,
++ (DB_INFO *) 0,
++ &result)) != 0) {
++ result = 0;
++ }
++#else
++ if ((result = dbopen(path,
++ modify ? (O_CREAT | O_RDWR) : O_RDONLY,
++ 0644,
++ DB_HASH,
++ NULL)) == 0) {
++ code = errno;
++ }
+ #endif
+- if (result != 0) {
+- T(("opened %s", path));
+- } else {
+- T(("cannot open %s: %s", path, strerror(code)));
++ if (result != 0) {
++ make_connection(result, path, modify);
++ T(("opened %s", path));
++ } else {
++ T(("cannot open %s: %s", path, strerror(code)));
++ }
+ }
+ return result;
+ }
+@@ -107,6 +183,7 @@
+ {
+ int result;
+
++ drop_connection(db);
+ #if HASHED_DB_API >= 2
+ result = db->close(db, 0);
+ #else
+@@ -209,7 +286,7 @@
+ _nc_db_have_index(DBT * key, DBT * data, char **buffer, int *size)
+ {
+ bool result = FALSE;
+- int used = data->size - 1;
++ int used = (int) data->size - 1;
+ char *have = (char *) data->data;
+
+ (void) key;
+@@ -232,7 +309,7 @@
+ _nc_db_have_data(DBT * key, DBT * data, char **buffer, int *size)
+ {
+ bool result = FALSE;
+- int used = data->size - 1;
++ int used = (int) data->size - 1;
+ char *have = (char *) data->data;
+
+ if (*have++ == 0) {
+Index: ncurses/tinfo/home_terminfo.c
+Prereq: 1.12
+--- ncurses-5.9/ncurses/tinfo/home_terminfo.c 2010-12-25 23:43:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/home_terminfo.c 2012-10-27 21:49:14.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,7 +37,7 @@
+ #include <curses.priv.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: home_terminfo.c,v 1.12 2010/12/25 23:43:58 tom Exp $")
++MODULE_ID("$Id: home_terminfo.c,v 1.15 2012/10/27 21:49:14 tom Exp $")
+
+ /* ncurses extension...fall back on user's private directory */
+
+@@ -54,10 +54,8 @@
+ if (MyBuffer == 0) {
+ if ((home = getenv("HOME")) != 0) {
+ size_t want = (strlen(home) + sizeof(PRIVATE_INFO));
+- MyBuffer = typeMalloc(char, want);
+- if (MyBuffer == 0)
+- _nc_err_abort(MSG_NO_MEMORY);
+- (void) sprintf(MyBuffer, PRIVATE_INFO, home);
++ TYPE_MALLOC(char, want, MyBuffer);
++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(want) PRIVATE_INFO, home);
+ }
+ }
+ result = MyBuffer;
+Index: ncurses/tinfo/lib_acs.c
+Prereq: 1.43
+--- ncurses-5.9/ncurses/tinfo/lib_acs.c 2010-12-25 23:00:45.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_acs.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_acs.c,v 1.43 2010/12/25 23:00:45 tom Exp $")
++MODULE_ID("$Id: lib_acs.c,v 1.45 2014/03/08 20:32:59 tom Exp $")
+
+ #if BROKEN_LINKER || USE_REENTRANT
+ #define MyBuffer _nc_prescreen.real_acs_map
+@@ -166,11 +166,10 @@
+ real_map['E'] = '+'; /* large plus or crossover */
+
+ #ifdef USE_TERM_DRIVER
+- CallDriver_2(SP_PARM, initacs, real_map, fake_map);
++ CallDriver_2(SP_PARM, td_initacs, real_map, fake_map);
+ #else
+ if (ena_acs != NULL) {
+- TPUTS_TRACE("ena_acs");
+- putp(ena_acs);
++ NCURSES_PUTP2("ena_acs", ena_acs);
+ }
+ #if NCURSES_EXT_FUNCS
+ /*
+Index: ncurses/tinfo/lib_baudrate.c
+Prereq: 1.31
+--- ncurses-5.9/ncurses/tinfo/lib_baudrate.c 2010-12-19 01:50:50.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_baudrate.c 2014-04-26 18:48:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -49,7 +49,7 @@
+ * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
+ * ospeed's type for compatibility.
+ */
+-#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)
++#if NCURSES_OSPEED_COMPAT && ((defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__))
+ #undef B0
+ #undef B50
+ #undef B75
+@@ -79,7 +79,7 @@
+ #undef USE_OLD_TTY
+ #endif /* USE_OLD_TTY */
+
+-MODULE_ID("$Id: lib_baudrate.c,v 1.31 2010/12/19 01:50:50 tom Exp $")
++MODULE_ID("$Id: lib_baudrate.c,v 1.35 2014/04/26 18:48:19 juergen Exp $")
+
+ /*
+ * int
+@@ -90,54 +90,55 @@
+ */
+
+ struct speed {
+- int s; /* value for 'ospeed' is an index */
++ NCURSES_OSPEED s; /* values for 'ospeed' */
+ int sp; /* the actual speed */
+ };
+
++#define DATA(number) { B##number, number }
++
+ static struct speed const speeds[] =
+ {
+- {B0, 0},
+- {B50, 50},
+- {B75, 75},
+- {B110, 110},
+- {B134, 134},
+- {B150, 150},
+- {B200, 200},
+- {B300, 300},
+- {B600, 600},
+- {B1200, 1200},
+- {B1800, 1800},
+- {B2400, 2400},
+- {B4800, 4800},
+- {B9600, 9600},
++ DATA(0),
++ DATA(50),
++ DATA(75),
++ DATA(110),
++ DATA(134),
++ DATA(150),
++ DATA(200),
++ DATA(300),
++ DATA(600),
++ DATA(1200),
++ DATA(1800),
++ DATA(2400),
++ DATA(4800),
++ DATA(9600),
+ #ifdef B19200
+- {B19200, 19200},
+-#else
+-#ifdef EXTA
++ DATA(19200),
++#elif defined(EXTA)
+ {EXTA, 19200},
+ #endif
+-#endif
+ #ifdef B38400
+- {B38400, 38400},
+-#else
+-#ifdef EXTB
++ DATA(38400),
++#elif defined(EXTB)
+ {EXTB, 38400},
+ #endif
+-#endif
+ #ifdef B57600
+- {B57600, 57600},
++ DATA(57600),
+ #endif
++ /* ifdef to prevent overflow when OLD_TTY is not available */
++#if !(NCURSES_OSPEED_COMPAT && defined(__FreeBSD__) && (__FreeBSD_version > 700000))
+ #ifdef B115200
+- {B115200, 115200},
++ DATA(115200),
+ #endif
+ #ifdef B230400
+- {B230400, 230400},
++ DATA(230400),
+ #endif
+ #ifdef B460800
+- {B460800, 460800},
++ DATA(460800),
+ #endif
+ #ifdef B921600
+- {B921600, 921600},
++ DATA(921600),
++#endif
+ #endif
+ };
+
+@@ -167,7 +168,7 @@
+ }
+ }
+ #if !USE_REENTRANT
+- if (OSpeed == last_OSpeed) {
++ if (OSpeed != last_OSpeed) {
+ last_OSpeed = OSpeed;
+ last_baudrate = result;
+ }
+@@ -207,7 +208,7 @@
+ */
+ #ifdef TRACE
+ if (IsValidTIScreen(SP_PARM)
+- && !isatty(fileno(SP_PARM ? SP_PARM->_ofp : stdout))
++ && !NC_ISATTY(fileno(SP_PARM ? SP_PARM->_ofp : stdout))
+ && getenv("BAUDRATE") != 0) {
+ int ret;
+ if ((ret = _nc_getenv_num("BAUDRATE")) <= 0)
+@@ -219,8 +220,8 @@
+
+ if (IsValidTIScreen(SP_PARM)) {
+ #ifdef USE_OLD_TTY
+- result = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
+- ospeed = _nc_ospeed(result);
++ result = (int) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
++ ospeed = (NCURSES_OSPEED) _nc_ospeed(result);
+ #else /* !USE_OLD_TTY */
+ #ifdef TERMIOS
+ ospeed = (NCURSES_OSPEED) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
+Index: ncurses/tinfo/lib_cur_term.c
+Prereq: 1.30
+--- ncurses-5.9/ncurses/tinfo/lib_cur_term.c 2010-12-19 01:38:45.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_cur_term.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,14 +39,12 @@
+ #include <curses.priv.h>
+ #include <termcap.h> /* ospeed */
+
+-MODULE_ID("$Id: lib_cur_term.c,v 1.30 2010/12/19 01:38:45 tom Exp $")
++MODULE_ID("$Id: lib_cur_term.c,v 1.33 2014/03/08 20:32:59 tom Exp $")
+
+ #undef CUR
+ #define CUR termp->type.
+
+-#if BROKEN_LINKER && !USE_REENTRANT
+-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
+-#elif BROKEN_LINKER || USE_REENTRANT
++#if USE_REENTRANT
+
+ NCURSES_EXPORT(TERMINAL *)
+ NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0)
+@@ -55,6 +53,7 @@
+ }
+
+ #if NCURSES_SP_FUNCS
++
+ NCURSES_EXPORT(TERMINAL *)
+ _nc_get_cur_term(void)
+ {
+@@ -87,10 +86,10 @@
+ oldterm = cur_term;
+ if (SP_PARM)
+ SP_PARM->_term = termp;
+-#if BROKEN_LINKER && !USE_REENTRANT
+- cur_term = termp;
+-#else
++#if USE_REENTRANT
+ CurTerm = termp;
++#else
++ cur_term = termp;
+ #endif
+ if (termp != 0) {
+ #ifdef USE_TERM_DRIVER
+@@ -133,9 +132,7 @@
+ TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp;
+ #endif
+ TERMINAL *cur = (
+-#if BROKEN_LINKER && !USE_REENTRANT
+- cur_term
+-#elif BROKEN_LINKER || USE_REENTRANT
++#if USE_REENTRANT
+ NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG)
+ #else
+ cur_term
+@@ -148,12 +145,13 @@
+
+ FreeIfNeeded(termp->_termname);
+ #if USE_HOME_TERMINFO
+- if (_nc_globals.home_terminfo != 0)
++ if (_nc_globals.home_terminfo != 0) {
+ FreeAndNull(_nc_globals.home_terminfo);
++ }
+ #endif
+ #ifdef USE_TERM_DRIVER
+ if (TCB->drv)
+- TCB->drv->release(TCB);
++ TCB->drv->td_release(TCB);
+ #endif
+ free(termp);
+
+Index: ncurses/tinfo/lib_data.c
+Prereq: 1.61
+--- ncurses-5.9/ncurses/tinfo/lib_data.c 2010-05-15 22:06:56.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_data.c 2013-08-24 17:28:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_data.c,v 1.61 2010/05/15 22:06:56 tom Exp $")
++MODULE_ID("$Id: lib_data.c,v 1.66 2013/08/24 17:28:24 tom Exp $")
+
+ /*
+ * OS/2's native linker complains if we don't initialize public data when
+@@ -114,6 +114,7 @@
+ #define TGETENT_0s { TGETENT_0, TGETENT_0, TGETENT_0, TGETENT_0 }
+
+ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
++ 0, /* have_sigtstp */
+ 0, /* have_sigwinch */
+ 0, /* cleanup_nested */
+
+@@ -125,13 +126,14 @@
+
+ FALSE, /* have_tic_directory */
+ FALSE, /* keep_tic_directory */
+- TERMINFO, /* tic_directory */
++ 0, /* tic_directory */
+
+ NULL, /* dbi_list */
+ 0, /* dbi_size */
+
+ NULL, /* first_name */
+ NULL, /* keyname_table */
++ 0, /* init_keyname */
+
+ 0, /* slk_format */
+
+@@ -142,6 +144,12 @@
+ 0, /* tgetent_index */
+ 0, /* tgetent_sequence */
+
++ 0, /* dbd_blob */
++ 0, /* dbd_list */
++ 0, /* dbd_size */
++ 0, /* dbd_time */
++ { { 0, 0 } }, /* dbd_vars */
++
+ #ifndef USE_SP_WINDOWLIST
+ 0, /* _nc_windowlist */
+ #endif
+@@ -249,6 +257,7 @@
+ NULL, /* _tputs_trace */
+ #endif
+ #endif
++ FALSE, /* use_tioctl */
+ };
+ /* *INDENT-ON* */
+
+Index: ncurses/tinfo/lib_has_cap.c
+Prereq: 1.9
+--- ncurses-5.9/ncurses/tinfo/lib_has_cap.c 2009-10-24 22:15:47.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_has_cap.c 2013-11-16 19:57:22.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2003,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -46,7 +46,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_has_cap.c,v 1.9 2009/10/24 22:15:47 tom Exp $")
++MODULE_ID("$Id: lib_has_cap.c,v 1.10 2013/11/16 19:57:22 tom Exp $")
+
+ NCURSES_EXPORT(bool)
+ NCURSES_SP_NAME(has_ic) (NCURSES_SP_DCL0)
+@@ -55,7 +55,7 @@
+
+ T((T_CALLED("has_ic(%p)"), (void *) SP_PARM));
+
+- if (IsValidTIScreen(SP_PARM) && IsTermInfo(SP_PARM)) {
++ if (HasTInfoTerminal(SP_PARM)) {
+ code = ((insert_character || parm_ich
+ || (enter_insert_mode && exit_insert_mode))
+ && (delete_character || parm_dch)) ? TRUE : FALSE;
+@@ -77,7 +77,7 @@
+ {
+ bool code = FALSE;
+ T((T_CALLED("has_il(%p)"), (void *) SP_PARM));
+- if (IsValidTIScreen(SP_PARM) && IsTermInfo(SP_PARM)) {
++ if (HasTInfoTerminal(SP_PARM)) {
+ code = ((insert_line || parm_insert_line)
+ && (delete_line || parm_delete_line)) ? TRUE : FALSE;
+ }
+Index: ncurses/tinfo/lib_napms.c
+Prereq: 1.20
+--- ncurses-5.9/ncurses/tinfo/lib_napms.c 2009-11-07 20:37:30.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_napms.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -51,17 +51,21 @@
+ #endif
+ #endif
+
+-MODULE_ID("$Id: lib_napms.c,v 1.20 2009/11/07 20:37:30 tom Exp $")
++MODULE_ID("$Id: lib_napms.c,v 1.24 2014/03/08 20:32:59 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms)
+ {
+- (void) SP_PARM;
+ T((T_CALLED("napms(%d)"), ms));
+
+ #ifdef USE_TERM_DRIVER
+- CallDriver_1(SP_PARM, nap, ms);
++ if (HasTerminal(SP_PARM)) {
++ CallDriver_1(SP_PARM, td_nap, ms);
++ }
+ #else /* !USE_TERM_DRIVER */
++#if NCURSES_SP_FUNCS
++ (void) sp;
++#endif
+ #if HAVE_NANOSLEEP
+ {
+ struct timespec request, remaining;
+Index: ncurses/tinfo/lib_options.c
+Prereq: 1.71
+--- ncurses-5.9/ncurses/tinfo/lib_options.c 2009-10-24 21:56:15.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_options.c 2014-09-27 21:55:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -46,7 +46,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_options.c,v 1.71 2009/10/24 21:56:15 tom Exp $")
++MODULE_ID("$Id: lib_options.c,v 1.78 2014/09/27 21:55:24 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ idlok(WINDOW *win, bool flag)
+@@ -56,7 +56,11 @@
+
+ if (win) {
+ SCREEN *sp = _nc_screen_of(win);
+- if (sp && IsTermInfo(sp)) {
++ if (sp != 0
++#ifdef USE_TERM_DRIVER
++ && IsTermInfo(sp)
++#endif
++ ) {
+ sp->_nc_sp_idlok =
+ win->_idlok = (flag && (NCURSES_SP_NAME(has_il) (NCURSES_SP_ARG)
+ || change_scroll_region));
+@@ -165,16 +169,16 @@
+ #ifdef USE_TERM_DRIVER
+ if (IsTermInfo(sp)) {
+ if (flag) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on);
++ NCURSES_PUTP2("meta_on", meta_on);
+ } else {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off);
++ NCURSES_PUTP2("meta_off", meta_off);
+ }
+ }
+ #else
+ if (flag) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on);
++ NCURSES_PUTP2("meta_on", meta_on);
+ } else {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off);
++ NCURSES_PUTP2("meta_off", meta_off);
+ }
+ #endif
+ result = OK;
+@@ -192,30 +196,31 @@
+
+ if (SP_PARM != 0 && vis >= 0 && vis <= 2) {
+ int cursor = SP_PARM->_cursor;
+- bool bBuiltIn = !IsTermInfo(SP_PARM);
+ if (vis == cursor) {
+ code = cursor;
+ } else {
+- if (!bBuiltIn) {
++#ifdef USE_TERM_DRIVER
++ code = CallDriver_1(SP_PARM, td_cursorSet, vis);
++#else
++ if (IsTermInfo(SP_PARM)) {
+ switch (vis) {
+ case 2:
+- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
+- "cursor_visible",
+- cursor_visible);
++ code = NCURSES_PUTP2_FLUSH("cursor_visible",
++ cursor_visible);
+ break;
+ case 1:
+- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
+- "cursor_normal",
+- cursor_normal);
++ code = NCURSES_PUTP2_FLUSH("cursor_normal",
++ cursor_normal);
+ break;
+ case 0:
+- code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
+- "cursor_invisible",
+- cursor_invisible);
++ code = NCURSES_PUTP2_FLUSH("cursor_invisible",
++ cursor_invisible);
+ break;
+ }
+- } else
++ } else {
+ code = ERR;
++ }
++#endif
+ if (code != ERR)
+ code = (cursor == -1 ? 1 : cursor);
+ SP_PARM->_cursor = vis;
+@@ -301,7 +306,7 @@
+ NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_DCLx
+ const char *name, const char *value)
+ {
+- int rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value);
++ int rc = NCURSES_PUTP2(name, value);
+ if (rc != ERR) {
+ _nc_flush();
+ }
+@@ -324,7 +329,7 @@
+ * the terminal state _before_ switching modes.
+ */
+ NCURSES_EXPORT(int)
+-_nc_keypad(SCREEN *sp, bool flag)
++_nc_keypad(SCREEN *sp, int flag)
+ {
+ int rc = ERR;
+
+@@ -349,18 +354,14 @@
+ #endif
+ {
+ #ifdef USE_TERM_DRIVER
+- rc = CallDriver_1(sp, kpad, flag);
++ rc = CallDriver_1(sp, td_kpad, flag);
+ if (rc == OK)
+ sp->_keypad_on = flag;
+ #else
+ if (flag) {
+- (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
+- "keypad_xmit",
+- keypad_xmit);
++ (void) NCURSES_PUTP2_FLUSH("keypad_xmit", keypad_xmit);
+ } else if (!flag && keypad_local) {
+- (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx
+- "keypad_local",
+- keypad_local);
++ (void) NCURSES_PUTP2_FLUSH("keypad_local", keypad_local);
+ }
+
+ if (flag && !sp->_tried) {
+Index: ncurses/tinfo/lib_print.c
+Prereq: 1.20
+--- ncurses-5.9/ncurses/tinfo/lib_print.c 2010-06-05 22:18:35.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_print.c 2012-02-22 22:34:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_print.c,v 1.20 2010/06/05 22:18:35 tom Exp $")
++MODULE_ID("$Id: lib_print.c,v 1.23 2012/02/22 22:34:31 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len)
+@@ -76,10 +76,10 @@
+ return (ERR);
+ }
+
+- (void) strcpy(mybuf, switchon);
+- memcpy(mybuf + onsize, data, (unsigned) len);
++ _nc_STRCPY(mybuf, switchon, need);
++ memcpy(mybuf + onsize, data, (size_t) len);
+ if (offsize)
+- (void) strcpy(mybuf + onsize + len, prtr_off);
++ _nc_STRCPY(mybuf + onsize + len, prtr_off, need);
+
+ /*
+ * We're relying on the atomicity of UNIX writes here. The
+Index: ncurses/tinfo/lib_raw.c
+Prereq: 1.19
+--- ncurses-5.9/ncurses/tinfo/lib_raw.c 2010-04-24 23:49:12.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_raw.c 2012-01-21 19:21:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -49,11 +49,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_raw.c,v 1.19 2010/04/24 23:49:12 tom Exp $")
+-
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
++MODULE_ID("$Id: lib_raw.c,v 1.21 2012/01/21 19:21:29 KO.Myung-Hun Exp $")
+
+ #if HAVE_SYS_TERMIO_H
+ #include <sys/termio.h> /* needed for ISC */
+@@ -66,6 +62,11 @@
+ #define _nc_setmode(mode) /* nothing */
+ #endif
+
++#if USE_KLIBC_KBD
++#define INCL_KBD
++#include <os2.h>
++#endif
++
+ #define COOKED_INPUT (IXON|BRKINT|PARMRK)
+
+ #ifdef TRACE
+@@ -100,6 +101,17 @@
+ #endif
+ result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
+ if (result == OK) {
++#if USE_KLIBC_KBD
++ KBDINFO kbdinfo;
++
++ kbdinfo.cb = sizeof(kbdinfo);
++ KbdGetStatus(&kbdinfo, 0);
++
++ kbdinfo.cb = sizeof(kbdinfo);
++ kbdinfo.fsMask &= ~KEYBOARD_ASCII_MODE;
++ kbdinfo.fsMask |= KEYBOARD_BINARY_MODE;
++ KbdSetStatus(&kbdinfo, 0);
++#endif
+ SP_PARM->_raw = TRUE;
+ SP_PARM->_cbreak = 1;
+ termp->Nttyb = buf;
+@@ -218,6 +230,17 @@
+ #endif
+ result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
+ if (result == OK) {
++#if USE_KLIBC_KBD
++ KBDINFO kbdinfo;
++
++ kbdinfo.cb = sizeof(kbdinfo);
++ KbdGetStatus(&kbdinfo, 0);
++
++ kbdinfo.cb = sizeof(kbdinfo);
++ kbdinfo.fsMask &= ~KEYBOARD_BINARY_MODE;
++ kbdinfo.fsMask |= KEYBOARD_ASCII_MODE;
++ KbdSetStatus(&kbdinfo, 0);
++#endif
+ SP_PARM->_raw = FALSE;
+ SP_PARM->_cbreak = 0;
+ termp->Nttyb = buf;
+Index: ncurses/tinfo/lib_setup.c
+Prereq: 1.135
+--- ncurses-5.9/ncurses/tinfo/lib_setup.c 2011-02-06 01:04:21.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_setup.c 2014-11-01 12:33:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,21 +37,18 @@
+ * Terminal setup routines common to termcap and terminfo:
+ *
+ * use_env(bool)
++ * use_tioctl(bool)
+ * setupterm(char *, int, int *)
+ */
+
+ #include <curses.priv.h>
+ #include <tic.h> /* for MAX_NAME_SIZE */
+
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+ #if HAVE_LOCALE_H
+ #include <locale.h>
+ #endif
+
+-MODULE_ID("$Id: lib_setup.c,v 1.135 2011/02/06 01:04:21 tom Exp $")
++MODULE_ID("$Id: lib_setup.c,v 1.161 2014/11/01 12:33:16 tom Exp $")
+
+ /****************************************************************************
+ *
+@@ -225,6 +222,7 @@
+ {
+ T((T_CALLED("use_env(%p,%d)"), (void *) SP_PARM, (int) f));
+ #if NCURSES_SP_FUNCS
++ START_TRACE();
+ if (IsPreScreen(SP_PARM)) {
+ SP_PARM->_use_env = f;
+ }
+@@ -234,14 +232,39 @@
+ returnVoid;
+ }
+
++NCURSES_EXPORT(void)
++NCURSES_SP_NAME(use_tioctl) (NCURSES_SP_DCLx bool f)
++{
++ T((T_CALLED("use_tioctl(%p,%d)"), (void *) SP_PARM, (int) f));
++#if NCURSES_SP_FUNCS
++ START_TRACE();
++ if (IsPreScreen(SP_PARM)) {
++ SP_PARM->_use_tioctl = f;
++ }
++#else
++ _nc_prescreen.use_tioctl = f;
++#endif
++ returnVoid;
++}
++
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(void)
+ use_env(bool f)
+ {
+ T((T_CALLED("use_env(%d)"), (int) f));
++ START_TRACE();
+ _nc_prescreen.use_env = f;
+ returnVoid;
+ }
++
++NCURSES_EXPORT(void)
++use_tioctl(bool f)
++{
++ T((T_CALLED("use_tioctl(%d)"), (int) f));
++ START_TRACE();
++ _nc_prescreen.use_tioctl = f;
++ returnVoid;
++}
+ #endif
+
+ NCURSES_EXPORT(void)
+@@ -260,7 +283,7 @@
+ TCB = (TERMINAL_CONTROL_BLOCK *) termp;
+
+ my_tabsize = TCB->info.tabsize;
+- TCB->drv->size(TCB, linep, colp);
++ TCB->drv->td_size(TCB, linep, colp);
+
+ #if USE_REENTRANT
+ if (sp != 0) {
+@@ -281,7 +304,7 @@
+ *linep = (int) lines;
+ *colp = (int) columns;
+
+- if (_nc_prescreen.use_env) {
++ if (_nc_prescreen.use_env || _nc_prescreen.use_tioctl) {
+ int value;
+
+ #ifdef __EMX__
+@@ -289,14 +312,16 @@
+ int screendata[2];
+ _scrsize(screendata);
+ *colp = screendata[0];
+- *linep = screendata[1];
++ *linep = ((sp != 0 && sp->_filtered)
++ ? 1
++ : screendata[1]);
+ T(("EMX screen size: environment LINES = %d COLUMNS = %d",
+ *linep, *colp));
+ }
+ #endif
+ #if HAVE_SIZECHANGE
+ /* try asking the OS */
+- if (isatty(cur_term->Filedes)) {
++ if (NC_ISATTY(cur_term->Filedes)) {
+ STRUCT_WINSIZE size;
+
+ errno = 0;
+@@ -315,19 +340,33 @@
+ }
+ #endif /* HAVE_SIZECHANGE */
+
+- /*
+- * Finally, look for environment variables.
+- *
+- * Solaris lets users override either dimension with an environment
+- * variable.
+- */
+- if ((value = _nc_getenv_num("LINES")) > 0) {
+- *linep = value;
+- T(("screen size: environment LINES = %d", *linep));
+- }
+- if ((value = _nc_getenv_num("COLUMNS")) > 0) {
+- *colp = value;
+- T(("screen size: environment COLUMNS = %d", *colp));
++ if (_nc_prescreen.use_env) {
++ if (_nc_prescreen.use_tioctl) {
++ /*
++ * If environment variables are used, update them.
++ */
++ if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) {
++ _nc_setenv_num("LINES", *linep);
++ }
++ if (_nc_getenv_num("COLUMNS") > 0) {
++ _nc_setenv_num("COLUMNS", *colp);
++ }
++ }
++
++ /*
++ * Finally, look for environment variables.
++ *
++ * Solaris lets users override either dimension with an environment
++ * variable.
++ */
++ if ((value = _nc_getenv_num("LINES")) > 0) {
++ *linep = value;
++ T(("screen size: environment LINES = %d", *linep));
++ }
++ if ((value = _nc_getenv_num("COLUMNS")) > 0) {
++ *colp = value;
++ T(("screen size: environment COLUMNS = %d", *colp));
++ }
+ }
+
+ /* if we can't get dynamic info about the size, use static */
+@@ -384,7 +423,7 @@
+
+ assert(sp != 0);
+
+- CallDriver_2(sp, getsize, &old_lines, &old_cols);
++ CallDriver_2(sp, td_getsize, &old_lines, &old_cols);
+
+ #else
+ TERMINAL *termp = cur_term;
+@@ -399,10 +438,12 @@
+ * We're doing it this way because those functions belong to the upper
+ * ncurses library, while this resides in the lower terminfo library.
+ */
+- if (sp != 0
+- && sp->_resize != 0) {
+- if ((new_lines != old_lines) || (new_cols != old_cols))
++ if (sp != 0 && sp->_resize != 0) {
++ if ((new_lines != old_lines) || (new_cols != old_cols)) {
+ sp->_resize(NCURSES_SP_ARGx new_lines, new_cols);
++ } else if (sp->_sig_winch && (sp->_ungetch != 0)) {
++ sp->_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */
++ }
+ sp->_sig_winch = FALSE;
+ }
+ }
+@@ -414,23 +455,7 @@
+ *
+ ****************************************************************************/
+
+-#define ret_error(code, fmt, arg) if (errret) {\
+- *errret = code;\
+- returnCode(ERR);\
+- } else {\
+- fprintf(stderr, fmt, arg);\
+- exit(EXIT_FAILURE);\
+- }
+-
+-#define ret_error0(code, msg) if (errret) {\
+- *errret = code;\
+- returnCode(ERR);\
+- } else {\
+- fprintf(stderr, msg);\
+- exit(EXIT_FAILURE);\
+- }
+-
+-#if USE_DATABASE || USE_TERMCAP
++#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP
+ /*
+ * Return 1 if entry found, 0 if not found, -1 if database not accessible,
+ * just like tgetent().
+@@ -467,7 +492,7 @@
+ ** and substitute it in for the prototype given in 'command_character'.
+ */
+ void
+-_nc_tinfo_cmdch(TERMINAL * termp, char proto)
++_nc_tinfo_cmdch(TERMINAL * termp, int proto)
+ {
+ unsigned i;
+ char CC;
+@@ -481,8 +506,8 @@
+ if ((tmp = getenv("CC")) != 0 && strlen(tmp) == 1) {
+ CC = *tmp;
+ for_each_string(i, &(termp->type)) {
+- for (tmp = termp->type.Strings[i]; *tmp; tmp++) {
+- if (*tmp == proto)
++ for (tmp = termp->type.Strings[i]; tmp && *tmp; tmp++) {
++ if (UChar(*tmp) == proto)
+ *tmp = CC;
+ }
+ }
+@@ -520,7 +545,9 @@
+ _nc_unicode_locale(void)
+ {
+ int result = 0;
+-#if HAVE_LANGINFO_CODESET
++#if defined(__MINGW32__) && USE_WIDEC_SUPPORT
++ result = 1;
++#elif HAVE_LANGINFO_CODESET
+ char *env = nl_langinfo(CODESET);
+ result = !strcmp(env, "UTF-8");
+ T(("_nc_unicode_locale(%s) ->%d", env, result));
+@@ -547,11 +574,11 @@
+ _nc_locale_breaks_acs(TERMINAL * termp)
+ {
+ const char *env_name = "NCURSES_NO_UTF8_ACS";
+- char *env;
++ const char *env;
+ int value;
+ int result = 0;
+
+- if ((env = getenv(env_name)) != 0) {
++ if (getenv(env_name) != 0) {
+ result = _nc_getenv_num(env_name);
+ } else if ((value = tigetnum("U8")) >= 0) {
+ result = value; /* use extension feature */
+@@ -578,7 +605,7 @@
+ NCURSES_CONST char *tname,
+ int Filedes,
+ int *errret,
+- bool reuse)
++ int reuse)
+ {
+ #ifdef USE_TERM_DRIVER
+ TERMINAL_CONTROL_BLOCK *TCB = 0;
+@@ -608,7 +635,11 @@
+ if (tname == 0) {
+ tname = getenv("TERM");
+ if (tname == 0 || *tname == '\0') {
++#ifdef USE_TERM_DRIVER
++ tname = "unknown";
++#else
+ ret_error0(TGETENT_ERR, "TERM environment variable not set.\n");
++#endif
+ }
+ }
+
+@@ -624,7 +655,7 @@
+ * 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))
++ if (Filedes == STDOUT_FILENO && !NC_ISATTY(Filedes))
+ Filedes = STDERR_FILENO;
+
+ /*
+@@ -651,9 +682,14 @@
+ && _nc_name_match(termp->type.term_names, tname, "|")) {
+ T(("reusing existing terminal information and mode-settings"));
+ code = OK;
++#ifdef USE_TERM_DRIVER
++ TCB = (TERMINAL_CONTROL_BLOCK *) termp;
++#endif
+ } else {
+ #ifdef USE_TERM_DRIVER
+- termp = (TERMINAL *) typeCalloc(TERMINAL_CONTROL_BLOCK, 1);
++ TERMINAL_CONTROL_BLOCK *my_tcb;
++ my_tcb = typeCalloc(TERMINAL_CONTROL_BLOCK, 1);
++ termp = &(my_tcb->term);
+ #else
+ termp = typeCalloc(TERMINAL, 1);
+ #endif
+@@ -673,7 +709,7 @@
+ "Could not find any driver to handle this terminal.\n");
+ }
+ #else
+-#if USE_DATABASE || USE_TERMCAP
++#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP
+ status = _nc_setup_tinfo(tname, &termp->type);
+ #else
+ status = TGETENT_NO;
+@@ -684,7 +720,7 @@
+ const TERMTYPE *fallback = _nc_fallback(tname);
+
+ if (fallback) {
+- termp->type = *fallback;
++ _nc_copy_termtype(&(termp->type), fallback);
+ status = TGETENT_YES;
+ }
+ }
+@@ -694,11 +730,11 @@
+ if (status == TGETENT_ERR) {
+ ret_error0(status, "terminals database is inaccessible\n");
+ } else if (status == TGETENT_NO) {
+- ret_error(status, "'%s': unknown terminal type.\n", tname);
++ ret_error1(status, "unknown terminal type.\n", tname);
+ }
+ }
+ #if !USE_REENTRANT
+- strncpy(ttytype, termp->type.term_names, NAMESIZE - 1);
++ strncpy(ttytype, termp->type.term_names, (size_t) (NAMESIZE - 1));
+ ttytype[NAMESIZE - 1] = '\0';
+ #endif
+
+@@ -708,7 +744,7 @@
+ set_curterm(termp);
+
+ if (command_character)
+- _nc_tinfo_cmdch(termp, *command_character);
++ _nc_tinfo_cmdch(termp, UChar(*command_character));
+
+ /*
+ * If an application calls setupterm() rather than initscr() or
+@@ -716,7 +752,7 @@
+ * _nc_setupscreen(). Do it now anyway, so we can initialize the
+ * baudrate.
+ */
+- if (isatty(Filedes)) {
++ if (NC_ISATTY(Filedes)) {
+ def_prog_mode();
+ baudrate();
+ }
+@@ -727,7 +763,7 @@
+ #ifdef USE_TERM_DRIVER
+ *tp = termp;
+ NCURSES_SP_NAME(set_curterm) (sp, termp);
+- TCB->drv->init(TCB);
++ TCB->drv->td_init(TCB);
+ #else
+ sp = SP;
+ #endif
+@@ -742,10 +778,20 @@
+
+ #ifndef USE_TERM_DRIVER
+ if (generic_type) {
+- ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
+- }
+- if (hard_copy) {
+- ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname);
++ /*
++ * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity
++ * check before giving up.
++ */
++ if ((VALID_STRING(cursor_address)
++ || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home)))
++ && VALID_STRING(clear_screen)) {
++ ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname);
++ } else {
++ del_curterm(termp);
++ ret_error1(TGETENT_NO, "I need something more specific.\n", tname);
++ }
++ } else if (hard_copy) {
++ ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname);
+ }
+ #endif
+ returnCode(code);
+@@ -798,10 +844,10 @@
+ _nc_setupterm(NCURSES_CONST char *tname,
+ int Filedes,
+ int *errret,
+- bool reuse)
++ int reuse)
+ {
+ int res;
+- TERMINAL *termp;
++ TERMINAL *termp = 0;
+ res = TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse);
+ if (ERR != res)
+ NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN_PRE, termp);
+Index: ncurses/tinfo/lib_termcap.c
+Prereq: 1.73
+--- ncurses-5.9/ncurses/tinfo/lib_termcap.c 2010-12-25 19:27:12.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_termcap.c 2013-06-08 16:48:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -48,7 +48,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_termcap.c,v 1.73 2010/12/25 19:27:12 tom Exp $")
++MODULE_ID("$Id: lib_termcap.c,v 1.80 2013/06/08 16:48:47 tom Exp $")
+
+ NCURSES_EXPORT_VAR(char *) UP = 0;
+ NCURSES_EXPORT_VAR(char *) BC = 0;
+@@ -63,6 +63,15 @@
+ #define LAST_USE MyCache[CacheInx].last_used
+ #define LAST_SEQ MyCache[CacheInx].sequence
+
++/*
++ * Termcap names are matched only using the first two bytes.
++ * Ignore any extended names longer than two bytes, to avoid problems
++ * with legacy code which passes in parameters whose use is long forgotten.
++ */
++#define ValidCap(cap) (((cap)[0] != '\0') && ((cap)[1] != '\0'))
++#define SameCap(a,b) (((a)[0] == (b)[0]) && ((a)[1] == (b)[1]))
++#define ValidExt(ext) (ValidCap(ext) && (ext)[2] == '\0')
++
+ /***************************************************************************
+ *
+ * tgetent(bufp, term)
+@@ -97,7 +106,7 @@
+ #ifdef USE_TERM_DRIVER
+ if (termp == 0 ||
+ !((TERMINAL_CONTROL_BLOCK *) termp)->drv->isTerminfo)
+- return (rc);
++ returnCode(rc);
+ #endif
+
+ /*
+@@ -202,11 +211,13 @@
+ static bool
+ same_tcname(const char *a, const char *b)
+ {
+- fprintf(stderr, "compare(%s,%s)\n", a, b);
+- return !strncmp(a, b, 2);
++ bool code = SameCap(a, b);
++ fprintf(stderr, "compare(%s,%s) %s\n", a, b, code ? "same" : "diff");
++ return code;
+ }
++
+ #else
+-#define same_tcname(a,b) !strncmp(a,b,2)
++#define same_tcname(a,b) SameCap(a,b)
+ #endif
+
+ /***************************************************************************
+@@ -222,10 +233,10 @@
+ NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id)
+ {
+ int result = 0; /* Solaris returns zero for missing flag */
+- int i, j;
++ int j = -1;
+
+ T((T_CALLED("tgetflag(%p, %s)"), (void *) SP_PARM, id));
+- if (HasTInfoTerminal(SP_PARM)) {
++ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
+ TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
+ struct name_table_entry const *entry_ptr;
+
+@@ -235,10 +246,10 @@
+ }
+ #if NCURSES_XNAMES
+ else {
+- j = -1;
++ int i;
+ for_each_ext_boolean(i, tp) {
+ const char *capname = ExtBoolname(tp, i, boolcodes);
+- if (same_tcname(id, capname)) {
++ if (same_tcname(id, capname) && ValidExt(capname)) {
+ j = i;
+ break;
+ }
+@@ -274,10 +285,10 @@
+ NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id)
+ {
+ int result = ABSENT_NUMERIC;
+- int i, j;
++ int j = -1;
+
+ T((T_CALLED("tgetnum(%p, %s)"), (void *) SP_PARM, id));
+- if (HasTInfoTerminal(SP_PARM)) {
++ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
+ TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
+ struct name_table_entry const *entry_ptr;
+
+@@ -287,10 +298,10 @@
+ }
+ #if NCURSES_XNAMES
+ else {
+- j = -1;
++ int i;
+ for_each_ext_number(i, tp) {
+ const char *capname = ExtNumname(tp, i, numcodes);
+- if (same_tcname(id, capname)) {
++ if (same_tcname(id, capname) && ValidExt(capname)) {
+ j = i;
+ break;
+ }
+@@ -326,10 +337,10 @@
+ NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx NCURSES_CONST char *id, char **area)
+ {
+ char *result = NULL;
+- int i, j;
++ int j = -1;
+
+ T((T_CALLED("tgetstr(%s,%p)"), id, (void *) area));
+- if (HasTInfoTerminal(SP_PARM)) {
++ if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
+ TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
+ struct name_table_entry const *entry_ptr;
+
+@@ -339,10 +350,10 @@
+ }
+ #if NCURSES_XNAMES
+ else {
+- j = -1;
++ int i;
+ for_each_ext_string(i, tp) {
+ const char *capname = ExtStrname(tp, i, strcodes);
+- if (same_tcname(id, capname)) {
++ if (same_tcname(id, capname) && ValidExt(capname)) {
+ j = i;
+ break;
+ }
+@@ -351,7 +362,7 @@
+ #endif
+ if (j >= 0) {
+ result = tp->Strings[j];
+- TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result)));
++ TR(TRACE_DATABASE, ("found match %d: %s", j, _nc_visbuf(result)));
+ /* setupterm forces canceled strings to null */
+ if (VALID_STRING(result)) {
+ if (result == exit_attribute_mode
+@@ -361,7 +372,7 @@
+ }
+ if (area != 0
+ && *area != 0) {
+- (void) strcpy(*area, result);
++ _nc_STRCPY(*area, result, 1024);
+ result = *area;
+ *area += strlen(*area) + 1;
+ }
+Index: ncurses/tinfo/lib_tgoto.c
+Prereq: 1.13
+--- ncurses-5.9/ncurses/tinfo/lib_tgoto.c 2008-08-16 19:29:32.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_tgoto.c 2012-02-24 02:08:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2000-2006,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2000-2008,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+ #include <ctype.h>
+ #include <termcap.h>
+
+-MODULE_ID("$Id: lib_tgoto.c,v 1.13 2008/08/16 19:29:32 tom Exp $")
++MODULE_ID("$Id: lib_tgoto.c,v 1.16 2012/02/24 02:08:08 tom Exp $")
+
+ #if !PURE_TERMINFO
+ static bool
+@@ -159,7 +159,8 @@
+ break;
+ }
+ if (fmt != 0) {
+- sprintf(result + used, fmt, *value++);
++ _nc_SPRINTF(result + used, _nc_SLIMIT(length - used)
++ fmt, *value++);
+ used += strlen(result + used);
+ fmt = 0;
+ }
+@@ -174,7 +175,7 @@
+ }
+ if (result != 0) {
+ if (need_BC) {
+- strcpy(result + used, BC);
++ _nc_STRCPY(result + used, BC, length - used);
+ used += strlen(BC);
+ }
+ result[used] = '\0';
+Index: ncurses/tinfo/lib_ti.c
+Prereq: 1.29
+--- ncurses-5.9/ncurses/tinfo/lib_ti.c 2010-01-23 17:57:43.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_ti.c 2013-06-08 16:55:05.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_ti.c,v 1.29 2010/01/23 17:57:43 tom Exp $")
++MODULE_ID("$Id: lib_ti.c,v 1.30 2013/06/08 16:55:05 tom Exp $")
+
+ #if 0
+ static bool
+@@ -53,7 +53,7 @@
+ NCURSES_SP_NAME(tigetflag) (NCURSES_SP_DCLx NCURSES_CONST char *str)
+ {
+ int result = ABSENT_BOOLEAN;
+- int i, j;
++ int j = -1;
+
+ T((T_CALLED("tigetflag(%p, %s)"), (void *) SP_PARM, str));
+
+@@ -67,7 +67,7 @@
+ }
+ #if NCURSES_XNAMES
+ else {
+- j = -1;
++ int i;
+ for_each_ext_boolean(i, tp) {
+ const char *capname = ExtBoolname(tp, i, boolnames);
+ if (same_name(str, capname)) {
+@@ -97,7 +97,7 @@
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(tigetnum) (NCURSES_SP_DCLx NCURSES_CONST char *str)
+ {
+- int i, j;
++ int j = -1;
+ int result = CANCELLED_NUMERIC; /* Solaris returns a -1 on error */
+
+ T((T_CALLED("tigetnum(%p, %s)"), (void *) SP_PARM, str));
+@@ -112,7 +112,7 @@
+ }
+ #if NCURSES_XNAMES
+ else {
+- j = -1;
++ int i;
+ for_each_ext_number(i, tp) {
+ const char *capname = ExtNumname(tp, i, numnames);
+ if (same_name(str, capname)) {
+@@ -145,7 +145,7 @@
+ NCURSES_SP_NAME(tigetstr) (NCURSES_SP_DCLx NCURSES_CONST char *str)
+ {
+ char *result = CANCELLED_STRING;
+- int i, j;
++ int j = -1;
+
+ T((T_CALLED("tigetstr(%p, %s)"), (void *) SP_PARM, str));
+
+@@ -159,7 +159,7 @@
+ }
+ #if NCURSES_XNAMES
+ else {
+- j = -1;
++ int i;
+ for_each_ext_string(i, tp) {
+ const char *capname = ExtStrname(tp, i, strnames);
+ if (same_name(str, capname)) {
+Index: ncurses/tinfo/lib_tparm.c
+Prereq: 1.82
+--- ncurses-5.9/ncurses/tinfo/lib_tparm.c 2011-01-15 22:19:12.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_tparm.c 2014-10-11 03:04:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+ #include <ctype.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_tparm.c,v 1.82 2011/01/15 22:19:12 tom Exp $")
++MODULE_ID("$Id: lib_tparm.c,v 1.93 2014/10/11 03:04:31 tom Exp $")
+
+ /*
+ * char *
+@@ -53,7 +53,7 @@
+ *
+ * Cursor addressing and other strings requiring parame-
+ * ters in the terminal are described by a parameterized string
+- * capability, with like escapes %x in it. For example, to
++ * capability, with escapes like %x in it. For example, to
+ * address the cursor, the cup capability is given, using two
+ * parameters: the row and column to address to. (Rows and
+ * columns are numbered from zero and refer to the physical
+@@ -107,6 +107,7 @@
+ NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0;
+
+ #define TPS(var) _nc_prescreen.tparm_state.var
++#define popcount _nc_popcount /* workaround for NetBSD 6.0 defect */
+
+ #if NO_LEAKS
+ NCURSES_EXPORT(void)
+@@ -128,9 +129,7 @@
+ need += TPS(out_used);
+ if (need > TPS(out_size)) {
+ TPS(out_size) = need * 2;
+- TPS(out_buff) = typeRealloc(char, TPS(out_size), TPS(out_buff));
+- if (TPS(out_buff) == 0)
+- _nc_err_abort(MSG_NO_MEMORY);
++ TYPE_REALLOC(char, TPS(out_size), TPS(out_buff));
+ }
+ }
+
+@@ -143,7 +142,9 @@
+
+ get_space(s_len + 1);
+
+- (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, s);
++ _nc_SPRINTF(TPS(out_buff) + TPS(out_used),
++ _nc_SLIMIT(TPS(out_size) - TPS(out_used))
++ fmt, s);
+ TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
+ }
+
+@@ -153,9 +154,11 @@
+ if (len < 30)
+ len = 30; /* actually log10(MAX_INT)+1 */
+
+- get_space((unsigned) len + 1);
++ get_space((size_t) len + 1);
+
+- (void) sprintf(TPS(out_buff) + TPS(out_used), fmt, number);
++ _nc_SPRINTF(TPS(out_buff) + TPS(out_used),
++ _nc_SLIMIT(TPS(out_size) - TPS(out_used))
++ fmt, number);
+ TPS(out_used) += strlen(TPS(out_buff) + TPS(out_used));
+ }
+
+@@ -164,7 +167,7 @@
+ {
+ if (c == 0)
+ c = 0200;
+- get_space(1);
++ get_space((size_t) 1);
+ TPS(out_buff)[TPS(out_used)++] = (char) c;
+ }
+
+@@ -250,6 +253,9 @@
+ case 'x': /* FALLTHRU */
+ case 'X': /* FALLTHRU */
+ case 's':
++#ifdef EXP_XTERM_1005
++ case 'u':
++#endif
+ *format++ = *s;
+ done = TRUE;
+ break;
+@@ -369,6 +375,9 @@
+ case 'x': /* FALLTHRU */
+ case 'X': /* FALLTHRU */
+ case 'c': /* FALLTHRU */
++#ifdef EXP_XTERM_1005
++ case 'u':
++#endif
+ if (lastpop <= 0)
+ number++;
+ lastpop = -1;
+@@ -450,7 +459,7 @@
+ }
+
+ static NCURSES_INLINE char *
+-tparam_internal(bool use_TPARM_ARG, const char *string, va_list ap)
++tparam_internal(int use_TPARM_ARG, const char *string, va_list ap)
+ {
+ char *p_is_s[NUM_PARM];
+ TPARM_ARG param[NUM_PARM];
+@@ -463,6 +472,8 @@
+ int i;
+ const char *cp = string;
+ size_t len2;
++ bool termcap_hack;
++ bool incremented_two;
+
+ if (cp == NULL)
+ return NULL;
+@@ -479,6 +490,8 @@
+ if (TPS(fmt_buff) == 0)
+ return NULL;
+
++ incremented_two = FALSE;
++
+ if (number > NUM_PARM)
+ number = NUM_PARM;
+ if (popcount > NUM_PARM)
+@@ -511,7 +524,9 @@
+ * style, which means tparam() will expand termcap strings OK.
+ */
+ TPS(stack_ptr) = 0;
++ termcap_hack = FALSE;
+ if (popcount == 0) {
++ termcap_hack = TRUE;
+ popcount = number;
+ for (i = number - 1; i >= 0; i--) {
+ if (p_is_s[i])
+@@ -522,7 +537,7 @@
+ }
+ #ifdef TRACE
+ if (USE_TRACEF(TRACE_CALLS)) {
+- for (i = 0; i < popcount; i++) {
++ for (i = 0; i < num_args; i++) {
+ if (p_is_s[i] != 0)
+ save_text(", %s", _nc_visbuf(p_is_s[i]), 0);
+ else
+@@ -558,8 +573,22 @@
+ save_char(npop());
+ break;
+
++#ifdef EXP_XTERM_1005
++ case 'u':
++ {
++ unsigned char target[10];
++ unsigned source = (unsigned) npop();
++ int rc = _nc_conv_to_utf8(target, source, (unsigned)
++ sizeof(target));
++ int n;
++ for (n = 0; n < rc; ++n) {
++ save_char(target[n]);
++ }
++ }
++ break;
++#endif
+ case 'l':
+- save_number("%d", (int) strlen(spop()), 0);
++ npush((int) strlen(spop()));
+ break;
+
+ case 's':
+@@ -570,10 +599,11 @@
+ cp++;
+ i = (UChar(*cp) - '1');
+ if (i >= 0 && i < NUM_PARM) {
+- if (p_is_s[i])
++ if (p_is_s[i]) {
+ spush(p_is_s[i]);
+- else
++ } else {
+ npush((int) param[i]);
++ }
+ }
+ break;
+
+@@ -688,10 +718,26 @@
+ break;
+
+ case 'i':
+- if (p_is_s[0] == 0)
+- param[0]++;
+- if (p_is_s[1] == 0)
+- param[1]++;
++ /*
++ * Increment the first two parameters -- if they are numbers
++ * rather than strings. As a side effect, assign into the
++ * stack; if this is termcap, then the stack was populated
++ * using the termcap hack above rather than via the terminfo
++ * 'p' case.
++ */
++ if (!incremented_two) {
++ incremented_two = TRUE;
++ if (p_is_s[0] == 0) {
++ param[0]++;
++ if (termcap_hack)
++ TPS(stack)[0].data.num = (int) param[0];
++ }
++ if (p_is_s[1] == 0) {
++ param[1]++;
++ if (termcap_hack)
++ TPS(stack)[1].data.num = (int) param[1];
++ }
++ }
+ break;
+
+ case '?':
+@@ -757,7 +803,7 @@
+ cp++;
+ } /* endwhile (*cp) */
+
+- get_space(1);
++ get_space((size_t) 1);
+ TPS(out_buff)[TPS(out_used)] = '\0';
+
+ T((T_RETURN("%s"), _nc_visbuf(TPS(out_buff))));
+Index: ncurses/tinfo/lib_tputs.c
+Prereq: 1.81
+--- ncurses-5.9/ncurses/tinfo/lib_tputs.c 2010-12-20 00:42:50.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_tputs.c 2013-01-12 20:57:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -51,7 +51,7 @@
+ #include <termcap.h> /* ospeed */
+ #include <tic.h>
+
+-MODULE_ID("$Id: lib_tputs.c,v 1.81 2010/12/20 00:42:50 tom Exp $")
++MODULE_ID("$Id: lib_tputs.c,v 1.93 2013/01/12 20:57:32 tom Exp $")
+
+ NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
+ NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
+@@ -119,7 +119,17 @@
+ NCURSES_EXPORT(void)
+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0)
+ {
+- (void) fflush(NC_OUTPUT(SP_PARM));
++ if (SP_PARM != 0 && SP_PARM->_ofd >= 0) {
++ if (SP_PARM->out_inuse) {
++ size_t amount = SP->out_inuse;
++ /*
++ * Help a little, if the write is interrupted, by first resetting
++ * our amount.
++ */
++ SP->out_inuse = 0;
++ IGNORE_RC(write(SP_PARM->_ofd, SP_PARM->out_buffer, amount));
++ }
++ }
+ }
+
+ #if NCURSES_SP_FUNCS
+@@ -138,17 +148,23 @@
+ COUNT_OUTCHARS(1);
+
+ if (HasTInfoTerminal(SP_PARM)
+- && SP_PARM != 0
+- && SP_PARM->_cleanup) {
+- char tmp = (char) ch;
+- /*
+- * POSIX says write() is safe in a signal handler, but the
+- * buffered I/O is not.
+- */
+- if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, 1) == -1)
+- rc = ERR;
++ && SP_PARM != 0) {
++ if (SP_PARM->out_buffer != 0) {
++ if (SP_PARM->out_inuse + 1 >= SP_PARM->out_limit)
++ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
++ SP_PARM->out_buffer[SP_PARM->out_inuse++] = (char) ch;
++ } else {
++ char tmp = (char) ch;
++ /*
++ * POSIX says write() is safe in a signal handler, but the
++ * buffered I/O is not.
++ */
++ if (write(fileno(NC_OUTPUT(SP_PARM)), &tmp, (size_t) 1) == -1)
++ rc = ERR;
++ }
+ } else {
+- if (putc(ch, NC_OUTPUT(SP_PARM)) == EOF)
++ char tmp = (char) ch;
++ if (write(fileno(stdout), &tmp, (size_t) 1) == -1)
+ rc = ERR;
+ }
+ return rc;
+@@ -162,13 +178,48 @@
+ }
+ #endif
+
++/*
++ * This is used for the putp special case.
++ */
++NCURSES_EXPORT(int)
++NCURSES_SP_NAME(_nc_putchar) (NCURSES_SP_DCLx int ch)
++{
++ (void) SP_PARM;
++ return putchar(ch);
++}
++
++#if NCURSES_SP_FUNCS
++NCURSES_EXPORT(int)
++_nc_putchar(int ch)
++{
++ return putchar(ch);
++}
++#endif
++
++/*
++ * putp is special - per documentation it calls tputs with putchar as the
++ * parameter for outputting characters. This means that it uses stdio, which
++ * is not signal-safe. Applications call this entrypoint; we do not call it
++ * from within the library.
++ */
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(putp) (NCURSES_SP_DCLx const char *string)
+ {
+ return NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+- string, 1, NCURSES_SP_NAME(_nc_outch));
++ string, 1, NCURSES_SP_NAME(_nc_putchar));
+ }
+
++#if NCURSES_SP_FUNCS
++NCURSES_EXPORT(int)
++putp(const char *string)
++{
++ return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string);
++}
++#endif
++
++/*
++ * Use these entrypoints rather than "putp" within the library.
++ */
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_DCLx
+ const char *name GCC_UNUSED,
+@@ -178,19 +229,14 @@
+
+ if (string != 0) {
+ TPUTS_TRACE(name);
+- rc = NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx string);
++ rc = NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
++ string, 1, NCURSES_SP_NAME(_nc_outch));
+ }
+ return rc;
+ }
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-putp(const char *string)
+-{
+- return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string);
+-}
+-
+-NCURSES_EXPORT(int)
+ _nc_putp(const char *name, const char *string)
+ {
+ return NCURSES_SP_NAME(_nc_putp) (CURRENT_SCREEN, name, string);
+@@ -216,9 +262,9 @@
+
+ if (USE_TRACEF(TRACE_TPUTS)) {
+ if (outc == NCURSES_SP_NAME(_nc_outch))
+- (void) strcpy(addrbuf, "_nc_outch");
++ _nc_STRCPY(addrbuf, "_nc_outch", sizeof(addrbuf));
+ else
+- (void) sprintf(addrbuf, "%p", outc);
++ _nc_SPRINTF(addrbuf, _nc_SLIMIT(sizeof(addrbuf)) "%p", outc);
+ if (_nc_tputs_trace) {
+ _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace,
+ _nc_visbuf(string), affcnt, addrbuf);
+Index: ncurses/tinfo/lib_ttyflags.c
+Prereq: 1.27
+--- ncurses-5.9/ncurses/tinfo/lib_ttyflags.c 2010-12-25 23:43:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/lib_ttyflags.c 2014-04-26 18:47:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,7 +41,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_ttyflags.c,v 1.27 2010/12/25 23:43:58 tom Exp $")
++MODULE_ID("$Id: lib_ttyflags.c,v 1.30 2014/04/26 18:47:20 juergen Exp $")
+
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf)
+@@ -57,7 +57,7 @@
+ result = ERR;
+ } else {
+ #ifdef USE_TERM_DRIVER
+- result = CallDriver_2(SP_PARM, sgmode, FALSE, buf);
++ result = CallDriver_2(SP_PARM, td_sgmode, FALSE, buf);
+ #else
+ for (;;) {
+ if (GET_TTY(termp->Filedes, buf) != 0) {
+@@ -102,10 +102,14 @@
+ result = ERR;
+ } else {
+ #ifdef USE_TERM_DRIVER
+- result = CallDriver_2(SP_PARM, sgmode, TRUE, buf);
++ result = CallDriver_2(SP_PARM, td_sgmode, TRUE, buf);
+ #else
+ for (;;) {
+- if (SET_TTY(termp->Filedes, buf) != 0) {
++ if ((SET_TTY(termp->Filedes, buf) != 0)
++#if USE_KLIBC_KBD
++ && !NC_ISATTY(termp->Filedes)
++#endif
++ ) {
+ if (errno == EINTR)
+ continue;
+ if ((errno == ENOTTY) && (SP_PARM != 0))
+@@ -141,7 +145,7 @@
+
+ if (termp != 0) {
+ #ifdef USE_TERM_DRIVER
+- rc = CallDriver_2(SP_PARM, mode, FALSE, TRUE);
++ rc = CallDriver_2(SP_PARM, td_mode, FALSE, TRUE);
+ #else
+ /*
+ * If XTABS was on, remove the tab and backtab capabilities.
+@@ -179,7 +183,7 @@
+
+ if (termp != 0) {
+ #ifdef USE_TERM_DRIVER
+- rc = CallDriver_2(SP_PARM, mode, TRUE, TRUE);
++ rc = CallDriver_2(SP_PARM, td_mode, TRUE, TRUE);
+ #else
+ /*
+ * Turn off the XTABS bit in the tty structure if it was on.
+@@ -215,13 +219,12 @@
+
+ if (termp != 0) {
+ #ifdef USE_TERM_DRIVER
+- rc = CallDriver_2(SP_PARM, mode, TRUE, FALSE);
++ rc = CallDriver_2(SP_PARM, td_mode, TRUE, FALSE);
+ #else
+ if (_nc_set_tty_mode(&termp->Nttyb) == OK) {
+ if (SP_PARM) {
+ if (SP_PARM->_keypad_on)
+ _nc_keypad(SP_PARM, TRUE);
+- NC_BUFFERED(SP_PARM, TRUE);
+ }
+ rc = OK;
+ }
+@@ -248,12 +251,11 @@
+
+ if (termp != 0) {
+ #ifdef USE_TERM_DRIVER
+- rc = CallDriver_2(SP_PARM, mode, FALSE, FALSE);
++ rc = CallDriver_2(SP_PARM, td_mode, FALSE, FALSE);
+ #else
+ if (SP_PARM) {
+ _nc_keypad(SP_PARM, FALSE);
+ _nc_flush();
+- NC_BUFFERED(SP_PARM, FALSE);
+ }
+ rc = _nc_set_tty_mode(&termp->Ottyb);
+ #endif
+Index: ncurses/tinfo/make_hash.c
+Prereq: 1.3
+--- ncurses-5.9/ncurses/tinfo/make_hash.c 2010-05-22 18:02:50.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/make_hash.c 2013-09-28 20:55:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -44,7 +44,7 @@
+
+ #include <ctype.h>
+
+-MODULE_ID("$Id: make_hash.c,v 1.3 2010/05/22 18:02:50 tom Exp $")
++MODULE_ID("$Id: make_hash.c,v 1.13 2013/09/28 20:55:47 tom Exp $")
+
+ /*
+ * _nc_make_hash_table()
+@@ -59,6 +59,24 @@
+ #define MODULE_ID(id) /*nothing */
+ #include <tinfo/doalloc.c>
+
++static void
++failed(const char *s)
++{
++ perror(s);
++ exit(EXIT_FAILURE);
++}
++
++static char *
++strmalloc(char *s)
++{
++ size_t need = strlen(s) + 1;
++ char *result = malloc(need);
++ if (result == 0)
++ failed("strmalloc");
++ _nc_STRCPY(result, s, need);
++ return result;
++}
++
+ /*
+ * int hash_function(string)
+ *
+@@ -119,6 +137,18 @@
+
+ #define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */
+
++static int
++count_columns(char **list)
++{
++ int result = 0;
++ if (list != 0) {
++ while (*list++) {
++ ++result;
++ }
++ }
++ return result;
++}
++
+ static char **
+ parse_columns(char *buffer)
+ {
+@@ -126,7 +156,7 @@
+
+ int col = 0;
+
+- if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0)
++ if (list == 0 && (list = typeCalloc(char *, (MAX_COLUMNS + 1))) == 0)
+ return (0);
+
+ if (*buffer != '#') {
+@@ -201,8 +231,15 @@
+ list = parse_columns(buffer);
+ if (list == 0) /* blank or comment */
+ continue;
++ if (column > count_columns(list)) {
++ fprintf(stderr, "expected %d columns, have %d:\n%s\n",
++ column,
++ count_columns(list),
++ buffer);
++ exit(EXIT_FAILURE);
++ }
+ name_table[n].nte_link = -1; /* end-of-hash */
+- name_table[n].nte_name = strdup(list[column]);
++ name_table[n].nte_name = strmalloc(list[column]);
+ if (!strcmp(list[2], "bool")) {
+ name_table[n].nte_type = BOOLEAN;
+ name_table[n].nte_index = BoolCount++;
+@@ -256,13 +293,12 @@
+ printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name);
+ } else {
+
+- printf("static struct name_table_entry %s _nc_%s_table[] =\n",
+- bigstring ? "" : "const",
++ printf("static struct name_table_entry const _nc_%s_table[] =\n",
+ root_name);
+ printf("{\n");
+ for (n = 0; n < CAPTABSIZE; n++) {
+- sprintf(buffer, "\"%s\"",
+- name_table[n].nte_name);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "\"%s\"",
++ name_table[n].nte_name);
+ printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n",
+ buffer,
+ typenames[name_table[n].nte_type],
+Index: ncurses/tinfo/make_keys.c
+Prereq: 1.19
+--- ncurses-5.9/ncurses/tinfo/make_keys.c 2010-06-05 22:08:00.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/make_keys.c 2011-10-22 16:34:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #define USE_TERMLIB 1
+ #include <build.priv.h>
+
+-MODULE_ID("$Id: make_keys.c,v 1.19 2010/06/05 22:08:00 tom Exp $")
++MODULE_ID("$Id: make_keys.c,v 1.20 2011/10/22 16:34:50 tom Exp $")
+
+ #include <names.c>
+
+@@ -76,7 +76,7 @@
+ unsigned maxlen = 16;
+ int scanned;
+
+- while (fgets(buffer, sizeof(buffer), ifp) != 0) {
++ while (fgets(buffer, (int) sizeof(buffer), ifp) != 0) {
+ if (*buffer == '#')
+ continue;
+
+Index: ncurses/tinfo/name_match.c
+Prereq: 1.18
+--- ncurses-5.9/ncurses/tinfo/name_match.c 2008-11-16 00:19:59.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/name_match.c 2013-05-25 20:20:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,25 +33,38 @@
+ #include <curses.priv.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: name_match.c,v 1.18 2008/11/16 00:19:59 juergen Exp $")
++MODULE_ID("$Id: name_match.c,v 1.23 2013/05/25 20:20:08 tom Exp $")
+
+-/*
+- * _nc_first_name(char *names)
+- *
+- * Extract the primary name from a compiled entry.
+- */
+ #define FirstName _nc_globals.first_name
+
++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES
++static const char *
++skip_index(const char *name)
++{
++ if ((_nc_syntax == SYN_TERMCAP) && _nc_user_definable) {
++ const char *bar = strchr(name, '|');
++ if (bar != 0 && (bar - name) == 2)
++ name = bar + 1;
++ }
++ return name;
++}
++#endif
++
++/*
++ * Get the primary name from the given name list. For terminfo, this is the
++ * first name. For termcap, this may be the second name, if the first one
++ * happens to be two characters.
++ */
+ NCURSES_EXPORT(char *)
+ _nc_first_name(const char *const sp)
+-/* get the first name from the given name list */
+ {
+ unsigned n;
+
+ #if NO_LEAKS
+ if (sp == 0) {
+- if (FirstName != 0)
++ if (FirstName != 0) {
+ FreeAndNull(FirstName);
++ }
+ } else
+ #endif
+ {
+@@ -59,8 +72,12 @@
+ FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
+
+ if (FirstName != 0) {
++ const char *src = sp;
++#if NCURSES_USE_TERMCAP && NCURSES_XNAMES
++ src = skip_index(sp);
++#endif
+ for (n = 0; n < MAX_NAME_SIZE; n++) {
+- if ((FirstName[n] = sp[n]) == '\0'
++ if ((FirstName[n] = src[n]) == '\0'
+ || (FirstName[n] == '|'))
+ break;
+ }
+@@ -71,11 +88,8 @@
+ }
+
+ /*
+- * int _nc_name_match(namelist, name, delim)
+- *
+- * Is the given name matched in namelist?
++ * Is the given name matched in namelist?
+ */
+-
+ NCURSES_EXPORT(int)
+ _nc_name_match(const char *const namelst, const char *const name, const char *const delim)
+ {
+Index: ncurses/tinfo/obsolete.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/obsolete.c 2014-10-11 02:39:35.000000000 +0000
+@@ -0,0 +1,239 @@
++/****************************************************************************
++ * Copyright (c) 2013,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey 2013-on *
++ ****************************************************************************/
++
++/*
++** Support for obsolete/unusual features.
++*/
++
++#include <curses.priv.h>
++
++MODULE_ID("$Id: obsolete.c,v 1.3 2014/10/11 02:39:35 tom Exp $")
++
++/*
++ * Obsolete entrypoint retained for binary compatbility.
++ */
++NCURSES_EXPORT(void)
++NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_DCLx FILE *ofp, int buffered)
++{
++#if NCURSES_SP_FUNCS
++ (void) SP_PARM;
++#endif
++ (void) ofp;
++ (void) buffered;
++}
++
++#if NCURSES_SP_FUNCS
++NCURSES_EXPORT(void)
++_nc_set_buffer(FILE *ofp, int buffered)
++{
++ NCURSES_SP_NAME(_nc_set_buffer) (CURRENT_SCREEN, ofp, buffered);
++}
++#endif
++
++#if !HAVE_STRDUP
++NCURSES_EXPORT(char *)
++_nc_strdup(const char *s)
++{
++ char *result = 0;
++ if (s != 0) {
++ size_t need = strlen(s);
++ result = malloc(need + 1);
++ if (result != 0) {
++ strcpy(result, s);
++ }
++ }
++ return result;
++}
++#endif
++
++#if USE_MY_MEMMOVE
++#define DST ((char *)s1)
++#define SRC ((const char *)s2)
++NCURSES_EXPORT(void *)
++_nc_memmove(void *s1, const void *s2, size_t n)
++{
++ if (n != 0) {
++ if ((DST + n > SRC) && (SRC + n > DST)) {
++ static char *bfr;
++ static size_t length;
++ register size_t j;
++ if (length < n) {
++ length = (n * 3) / 2;
++ bfr = typeRealloc(char, length, bfr);
++ }
++ for (j = 0; j < n; j++)
++ bfr[j] = SRC[j];
++ s2 = bfr;
++ }
++ while (n-- != 0)
++ DST[n] = SRC[n];
++ }
++ return s1;
++}
++#endif /* USE_MY_MEMMOVE */
++
++#ifdef EXP_XTERM_1005
++NCURSES_EXPORT(int)
++_nc_conv_to_utf8(unsigned char *target, unsigned source, unsigned limit)
++{
++#define CH(n) UChar((source) >> ((n) * 8))
++ int rc = 0;
++
++ if (source <= 0x0000007f)
++ rc = 1;
++ else if (source <= 0x000007ff)
++ rc = 2;
++ else if (source <= 0x0000ffff)
++ rc = 3;
++ else if (source <= 0x001fffff)
++ rc = 4;
++ else if (source <= 0x03ffffff)
++ rc = 5;
++ else /* (source <= 0x7fffffff) */
++ rc = 6;
++
++ if ((unsigned) rc > limit) { /* whatever it is, we cannot decode it */
++ rc = 0;
++ }
++
++ if (target != 0) {
++ switch (rc) {
++ case 1:
++ target[0] = CH(0);
++ break;
++
++ case 2:
++ target[1] = UChar(0x80 | (CH(0) & 0x3f));
++ target[0] = UChar(0xc0 | (CH(0) >> 6) | ((CH(1) & 0x07) << 2));
++ break;
++
++ case 3:
++ target[2] = UChar(0x80 | (CH(0) & 0x3f));
++ target[1] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2));
++ target[0] = UChar(0xe0 | ((int) (CH(1) & 0xf0) >> 4));
++ break;
++
++ case 4:
++ target[3] = UChar(0x80 | (CH(0) & 0x3f));
++ target[2] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2));
++ target[1] = UChar(0x80 |
++ ((int) (CH(1) & 0xf0) >> 4) |
++ ((int) (CH(2) & 0x03) << 4));
++ target[0] = UChar(0xf0 | ((int) (CH(2) & 0x1f) >> 2));
++ break;
++
++ case 5:
++ target[4] = UChar(0x80 | (CH(0) & 0x3f));
++ target[3] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2));
++ target[2] = UChar(0x80 |
++ ((int) (CH(1) & 0xf0) >> 4) |
++ ((int) (CH(2) & 0x03) << 4));
++ target[1] = UChar(0x80 | (CH(2) >> 2));
++ target[0] = UChar(0xf8 | (CH(3) & 0x03));
++ break;
++
++ case 6:
++ target[5] = UChar(0x80 | (CH(0) & 0x3f));
++ target[4] = UChar(0x80 | (CH(0) >> 6) | ((CH(1) & 0x0f) << 2));
++ target[3] = UChar(0x80 | (CH(1) >> 4) | ((CH(2) & 0x03) << 4));
++ target[2] = UChar(0x80 | (CH(2) >> 2));
++ target[1] = UChar(0x80 | (CH(3) & 0x3f));
++ target[0] = UChar(0xfc | ((int) (CH(3) & 0x40) >> 6));
++ break;
++ }
++ }
++
++ return rc; /* number of bytes needed in target */
++#undef CH
++}
++
++NCURSES_EXPORT(int)
++_nc_conv_to_utf32(unsigned *target, const char *source, unsigned limit)
++{
++#define CH(n) UChar((*target) >> ((n) * 8))
++ int rc = 0;
++ int j;
++ unsigned mask = 0;
++
++ /*
++ * Find the number of bytes we will need from the source.
++ */
++ if ((*source & 0x80) == 0) {
++ rc = 1;
++ mask = (unsigned) *source;
++ } else if ((*source & 0xe0) == 0xc0) {
++ rc = 2;
++ mask = (unsigned) (*source & 0x1f);
++ } else if ((*source & 0xf0) == 0xe0) {
++ rc = 3;
++ mask = (unsigned) (*source & 0x0f);
++ } else if ((*source & 0xf8) == 0xf0) {
++ rc = 4;
++ mask = (unsigned) (*source & 0x07);
++ } else if ((*source & 0xfc) == 0xf8) {
++ rc = 5;
++ mask = (unsigned) (*source & 0x03);
++ } else if ((*source & 0xfe) == 0xfc) {
++ rc = 6;
++ mask = (unsigned) (*source & 0x01);
++ }
++
++ if ((unsigned) rc > limit) { /* whatever it is, we cannot decode it */
++ rc = 0;
++ }
++
++ /*
++ * sanity-check.
++ */
++ if (rc > 1) {
++ for (j = 1; j < rc; j++) {
++ if ((source[j] & 0xc0) != 0x80)
++ break;
++ }
++ if (j != rc) {
++ rc = 0;
++ }
++ }
++
++ if (target != 0) {
++ int shift = 0;
++ *target = 0;
++ for (j = 1; j < rc; j++) {
++ *target |= (unsigned) (source[rc - j] & 0x3f) << shift;
++ shift += 6;
++ }
++ *target |= mask << shift;
++ }
++ return rc;
++#undef CH
++}
++#endif /* EXP_XTERM_1005 */
+Index: ncurses/tinfo/parse_entry.c
+Prereq: 1.75
+--- ncurses-5.9/ncurses/tinfo/parse_entry.c 2010-05-01 19:35:09.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/parse_entry.c 2012-10-27 21:43:45.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -47,7 +47,7 @@
+ #include <ctype.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: parse_entry.c,v 1.75 2010/05/01 19:35:09 tom Exp $")
++MODULE_ID("$Id: parse_entry.c,v 1.79 2012/10/27 21:43:45 tom Exp $")
+
+ #ifdef LINT
+ static short const parametrized[] =
+@@ -145,27 +145,27 @@
+ case BOOLEAN:
+ tp->ext_Booleans++;
+ tp->num_Booleans++;
+- tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
++ TYPE_REALLOC(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
+ for_each_value(tp->num_Booleans)
+ tp->Booleans[last] = tp->Booleans[last - 1];
+ break;
+ case NUMBER:
+ tp->ext_Numbers++;
+ tp->num_Numbers++;
+- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
++ TYPE_REALLOC(short, tp->num_Numbers, tp->Numbers);
+ for_each_value(tp->num_Numbers)
+ tp->Numbers[last] = tp->Numbers[last - 1];
+ break;
+ case STRING:
+ tp->ext_Strings++;
+ tp->num_Strings++;
+- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
++ TYPE_REALLOC(char *, tp->num_Strings, tp->Strings);
+ for_each_value(tp->num_Strings)
+ tp->Strings[last] = tp->Strings[last - 1];
+ break;
+ }
+ actual = NUM_EXT_NAMES(tp);
+- tp->ext_Names = typeRealloc(char *, actual, tp->ext_Names);
++ TYPE_REALLOC(char *, actual, tp->ext_Names);
+ while (--actual > offset)
+ tp->ext_Names[actual] = tp->ext_Names[actual - 1];
+ tp->ext_Names[offset] = _nc_save_str(name);
+@@ -203,6 +203,8 @@
+ { bad_tc_usage = TRUE; \
+ _nc_warning("Legacy termcap allows only a trailing tc= clause"); }
+
++#define MAX_NUMBER 0x7fff /* positive shorts only */
++
+ NCURSES_EXPORT(int)
+ _nc_parse_entry(struct entry *entryp, int literal, bool silent)
+ {
+@@ -444,8 +446,12 @@
+ break;
+
+ case NUMBER:
+- entryp->tterm.Numbers[entry_ptr->nte_index] =
+- (short) _nc_curr_token.tk_valnumber;
++ if (_nc_curr_token.tk_valnumber > MAX_NUMBER) {
++ entryp->tterm.Numbers[entry_ptr->nte_index] = MAX_NUMBER;
++ } else {
++ entryp->tterm.Numbers[entry_ptr->nte_index] =
++ (short) _nc_curr_token.tk_valnumber;
++ }
+ break;
+
+ case STRING:
+@@ -654,14 +660,16 @@
+
+ if (WANTED(carriage_return)) {
+ if (carriage_return_delay > 0) {
+- sprintf(buf, "%s$<%d>", C_CR, carriage_return_delay);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%s$<%d>", C_CR, carriage_return_delay);
+ carriage_return = _nc_save_str(buf);
+ } else
+ carriage_return = _nc_save_str(C_CR);
+ }
+ if (WANTED(cursor_left)) {
+ if (backspace_delay > 0) {
+- sprintf(buf, "%s$<%d>", C_BS, backspace_delay);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%s$<%d>", C_BS, backspace_delay);
+ cursor_left = _nc_save_str(buf);
+ } else if (backspaces_with_bs == 1)
+ cursor_left = _nc_save_str(C_BS);
+@@ -674,7 +682,8 @@
+ cursor_down = linefeed_if_not_lf;
+ else if (linefeed_is_newline != 1) {
+ if (new_line_delay > 0) {
+- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%s$<%d>", C_LF, new_line_delay);
+ cursor_down = _nc_save_str(buf);
+ } else
+ cursor_down = _nc_save_str(C_LF);
+@@ -685,7 +694,8 @@
+ cursor_down = linefeed_if_not_lf;
+ else if (linefeed_is_newline != 1) {
+ if (new_line_delay > 0) {
+- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%s$<%d>", C_LF, new_line_delay);
+ scroll_forward = _nc_save_str(buf);
+ } else
+ scroll_forward = _nc_save_str(C_LF);
+@@ -694,7 +704,8 @@
+ if (WANTED(newline)) {
+ if (linefeed_is_newline == 1) {
+ if (new_line_delay > 0) {
+- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%s$<%d>", C_LF, new_line_delay);
+ newline = _nc_save_str(buf);
+ } else
+ newline = _nc_save_str(C_LF);
+@@ -736,7 +747,8 @@
+ */
+ if (WANTED(tab)) {
+ if (horizontal_tab_delay > 0) {
+- sprintf(buf, "%s$<%d>", C_HT, horizontal_tab_delay);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf))
++ "%s$<%d>", C_HT, horizontal_tab_delay);
+ tab = _nc_save_str(buf);
+ } else
+ tab = _nc_save_str(C_HT);
+Index: ncurses/tinfo/read_entry.c
+Prereq: 1.108
+--- ncurses-5.9/ncurses/tinfo/read_entry.c 2011-02-26 15:36:06.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/read_entry.c 2014-06-14 22:30:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,11 +41,13 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: read_entry.c,v 1.108 2011/02/26 15:36:06 tom Exp $")
++MODULE_ID("$Id: read_entry.c,v 1.128 2014/06/14 22:30:41 tom Exp $")
+
+ #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+
+-#if USE_DATABASE
++#define MyNumber(n) (short) LOW_MSB(n)
++
++#if NCURSES_USE_DATABASE
+ static void
+ convert_shorts(char *buf, short *Numbers, int count)
+ {
+@@ -56,7 +58,7 @@
+ else if (IS_NEG2(buf + 2 * i))
+ Numbers[i] = CANCELLED_NUMERIC;
+ else
+- Numbers[i] = (short) LOW_MSB(buf + 2 * i);
++ Numbers[i] = MyNumber(buf + 2 * i);
+ TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i]));
+ }
+ }
+@@ -72,10 +74,10 @@
+ Strings[i] = ABSENT_STRING;
+ } else if (IS_NEG2(buf + 2 * i)) {
+ Strings[i] = CANCELLED_STRING;
+- } else if ((int) LOW_MSB(buf + 2 * i) > size) {
++ } else if (MyNumber(buf + 2 * i) > size) {
+ Strings[i] = ABSENT_STRING;
+ } else {
+- Strings[i] = (LOW_MSB(buf + 2 * i) + table);
++ Strings[i] = (MyNumber(buf + 2 * i) + table);
+ TR(TRACE_DATABASE, ("Strings[%d] = %s", i, _nc_visbuf(Strings[i])));
+ }
+
+@@ -99,7 +101,7 @@
+ if (have > 0) {
+ if ((int) want > have)
+ want = (unsigned) have;
+- memcpy(dst, src + *offset, want);
++ memcpy(dst, src + *offset, (size_t) want);
+ *offset += (int) want;
+ } else {
+ want = 0;
+@@ -107,22 +109,72 @@
+ return (int) want;
+ }
+
+-#define Read(buf, count) fake_read(buffer, &offset, limit, buf, count)
++#define Read(buf, count) fake_read(buffer, &offset, limit, (char *) buf, (unsigned) count)
+
+ #define read_shorts(buf, count) \
+- (Read(buf, (unsigned) (count)*2) == (int) (count)*2)
++ (Read(buf, (count)*2) == (int) (count)*2)
+
+ #define even_boundary(value) \
+ if ((value) % 2 != 0) Read(buf, 1)
++#endif
++
++NCURSES_EXPORT(void)
++_nc_init_termtype(TERMTYPE *const tp)
++{
++ unsigned i;
++
++#if NCURSES_XNAMES
++ tp->num_Booleans = BOOLCOUNT;
++ tp->num_Numbers = NUMCOUNT;
++ tp->num_Strings = STRCOUNT;
++ tp->ext_Booleans = 0;
++ tp->ext_Numbers = 0;
++ tp->ext_Strings = 0;
++#endif
++ if (tp->Booleans == 0)
++ TYPE_MALLOC(NCURSES_SBOOL, BOOLCOUNT, tp->Booleans);
++ if (tp->Numbers == 0)
++ TYPE_MALLOC(short, NUMCOUNT, tp->Numbers);
++ if (tp->Strings == 0)
++ TYPE_MALLOC(char *, STRCOUNT, tp->Strings);
++
++ for_each_boolean(i, tp)
++ tp->Booleans[i] = FALSE;
++
++ for_each_number(i, tp)
++ tp->Numbers[i] = ABSENT_NUMERIC;
++
++ for_each_string(i, tp)
++ tp->Strings[i] = ABSENT_STRING;
++}
+
++#if NCURSES_USE_DATABASE
++#if NCURSES_XNAMES
++static bool
++valid_shorts(char *buffer, int limit)
++{
++ bool result = FALSE;
++ int n;
++ for (n = 0; n < limit; ++n) {
++ if (MyNumber(buffer + (n * 2)) > 0) {
++ result = TRUE;
++ break;
++ }
++ }
++ return result;
++}
++#endif
++
++/*
++ * Return TGETENT_YES if read, TGETENT_NO if not found or garbled.
++ */
+ NCURSES_EXPORT(int)
+ _nc_read_termtype(TERMTYPE *ptr, char *buffer, int limit)
+-/* return 1 if read, 0 if not found or garbled */
+ {
+ int offset = 0;
+ int name_size, bool_count, num_count, str_count, str_size;
+ int i;
+- char buf[MAX_ENTRY_SIZE + 1];
++ char buf[MAX_ENTRY_SIZE + 2];
+ char *string_table;
+ unsigned want, have;
+
+@@ -136,11 +188,11 @@
+ return (TGETENT_NO);
+ }
+
+- name_size = LOW_MSB(buf + 2);
+- bool_count = LOW_MSB(buf + 4);
+- num_count = LOW_MSB(buf + 6);
+- str_count = LOW_MSB(buf + 8);
+- str_size = LOW_MSB(buf + 10);
++ name_size = MyNumber(buf + 2);
++ bool_count = MyNumber(buf + 4);
++ num_count = MyNumber(buf + 6);
++ str_count = MyNumber(buf + 8);
++ str_size = MyNumber(buf + 10);
+
+ TR(TRACE_DATABASE,
+ ("TERMTYPE name_size=%d, bool=%d/%d, num=%d/%d str=%d/%d(%d)",
+@@ -157,7 +209,7 @@
+ want = (unsigned) (str_size + name_size + 1);
+ if (str_size) {
+ /* try to allocate space for the string table */
+- if (str_count * 2 >= (int) sizeof(buf)
++ if (str_count * 2 >= MAX_ENTRY_SIZE
+ || (string_table = typeMalloc(char, want)) == 0) {
+ return (TGETENT_NO);
+ }
+@@ -173,7 +225,7 @@
+ ptr->str_table = string_table;
+ ptr->term_names = string_table;
+ if ((have = (unsigned) Read(ptr->term_names, want)) != want) {
+- memset(ptr->term_names + have, 0, want - have);
++ memset(ptr->term_names + have, 0, (size_t) (want - have));
+ }
+ ptr->term_names[want] = '\0';
+ string_table += (want + 1);
+@@ -203,8 +255,9 @@
+ }
+ convert_shorts(buf, ptr->Numbers, num_count);
+
+- if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0)
+- return (TGETENT_NO);
++ if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0) {
++ return (TGETENT_NO);
++ }
+
+ if (str_count) {
+ /* grab the string offsets */
+@@ -212,8 +265,9 @@
+ return (TGETENT_NO);
+ }
+ /* finally, grab the string table itself */
+- if (Read(string_table, (unsigned) str_size) != str_size)
++ if (Read(string_table, (unsigned) str_size) != str_size) {
+ return (TGETENT_NO);
++ }
+ convert_strings(buf, ptr->Strings, str_count, str_size, string_table);
+ }
+ #if NCURSES_XNAMES
+@@ -227,32 +281,33 @@
+ */
+ even_boundary(str_size);
+ TR(TRACE_DATABASE, ("READ extended_header @%d", offset));
+- if (_nc_user_definable && read_shorts(buf, 5)) {
+- int ext_bool_count = LOW_MSB(buf + 0);
+- int ext_num_count = LOW_MSB(buf + 2);
+- int ext_str_count = LOW_MSB(buf + 4);
+- int ext_str_size = LOW_MSB(buf + 6);
+- int ext_str_limit = LOW_MSB(buf + 8);
++ if (_nc_user_definable && read_shorts(buf, 5) && valid_shorts(buf, 5)) {
++ int ext_bool_count = MyNumber(buf + 0);
++ int ext_num_count = MyNumber(buf + 2);
++ int ext_str_count = MyNumber(buf + 4);
++ int ext_str_size = MyNumber(buf + 6);
++ int ext_str_limit = MyNumber(buf + 8);
+ unsigned need = (unsigned) (ext_bool_count + ext_num_count + ext_str_count);
+ int base = 0;
+
+- if (need >= sizeof(buf)
+- || ext_str_size >= (int) sizeof(buf)
+- || ext_str_limit >= (int) sizeof(buf)
++ if (need >= (MAX_ENTRY_SIZE / 2)
++ || ext_str_size >= MAX_ENTRY_SIZE
++ || ext_str_limit >= MAX_ENTRY_SIZE
+ || ext_bool_count < 0
+ || ext_num_count < 0
+ || ext_str_count < 0
+ || ext_str_size < 0
+- || ext_str_limit < 0)
++ || ext_str_limit < 0) {
+ return (TGETENT_NO);
++ }
+
+ ptr->num_Booleans = UShort(BOOLCOUNT + ext_bool_count);
+ ptr->num_Numbers = UShort(NUMCOUNT + ext_num_count);
+ ptr->num_Strings = UShort(STRCOUNT + ext_str_count);
+
+- ptr->Booleans = typeRealloc(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans);
+- ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers);
+- ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings);
++ TYPE_REALLOC(NCURSES_SBOOL, ptr->num_Booleans, ptr->Booleans);
++ TYPE_REALLOC(short, ptr->num_Numbers, ptr->Numbers);
++ TYPE_REALLOC(char *, ptr->num_Strings, ptr->Strings);
+
+ TR(TRACE_DATABASE, ("extended header is %d/%d/%d(%d:%d)",
+ ext_bool_count, ext_num_count, ext_str_count,
+@@ -262,34 +317,42 @@
+ ext_bool_count, offset));
+ if ((ptr->ext_Booleans = UShort(ext_bool_count)) != 0) {
+ if (Read(ptr->Booleans + BOOLCOUNT, (unsigned)
+- ext_bool_count) != ext_bool_count)
++ ext_bool_count) != ext_bool_count) {
+ return (TGETENT_NO);
++ }
+ }
+ even_boundary(ext_bool_count);
+
+ TR(TRACE_DATABASE, ("READ %d extended-numbers @%d",
+ ext_num_count, offset));
+ if ((ptr->ext_Numbers = UShort(ext_num_count)) != 0) {
+- if (!read_shorts(buf, ext_num_count))
++ if (!read_shorts(buf, ext_num_count)) {
+ return (TGETENT_NO);
++ }
+ TR(TRACE_DATABASE, ("Before converting extended-numbers"));
+ convert_shorts(buf, ptr->Numbers + NUMCOUNT, ext_num_count);
+ }
+
+ TR(TRACE_DATABASE, ("READ extended-offsets @%d", offset));
++ if ((unsigned) (ext_str_count + (int) need) >= (MAX_ENTRY_SIZE / 2)) {
++ return (TGETENT_NO);
++ }
+ if ((ext_str_count || need)
+- && !read_shorts(buf, ext_str_count + (int) need))
++ && !read_shorts(buf, ext_str_count + (int) need)) {
+ return (TGETENT_NO);
++ }
+
+ TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%d",
+ ext_str_limit, offset));
+
+ if (ext_str_limit) {
+ ptr->ext_str_table = typeMalloc(char, (size_t) ext_str_limit);
+- if (ptr->ext_str_table == 0)
++ if (ptr->ext_str_table == 0) {
+ return (TGETENT_NO);
+- if (Read(ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit)
++ }
++ if (Read(ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit) {
+ return (TGETENT_NO);
++ }
+ TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table)));
+ }
+
+@@ -313,10 +376,12 @@
+ }
+
+ if (need) {
+- if (ext_str_count >= (MAX_ENTRY_SIZE * 2))
++ if (ext_str_count >= (MAX_ENTRY_SIZE / 2)) {
++ return (TGETENT_NO);
++ }
++ if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0) {
+ return (TGETENT_NO);
+- if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0)
+- return (TGETENT_NO);
++ }
+ TR(TRACE_DATABASE,
+ ("ext_NAMES starting @%d in extended_strings, first = %s",
+ base, _nc_visbuf(ptr->ext_str_table + base)));
+@@ -326,17 +391,18 @@
+ ext_str_limit, ptr->ext_str_table + base);
+ }
+
+- T(("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)",
+- ptr->num_Booleans, ptr->ext_Booleans,
+- ptr->num_Numbers, ptr->ext_Numbers,
+- ptr->num_Strings, ptr->ext_Strings));
++ TR(TRACE_DATABASE,
++ ("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)",
++ ptr->num_Booleans, ptr->ext_Booleans,
++ ptr->num_Numbers, ptr->ext_Numbers,
++ ptr->num_Strings, ptr->ext_Strings));
+
+ TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans));
+ } else
+ #endif /* NCURSES_XNAMES */
+ {
+- T(("...done reading terminfo bool %d num %d str %d",
+- bool_count, num_count, str_count));
++ TR(TRACE_DATABASE, ("...done reading terminfo bool %d num %d str %d",
++ bool_count, num_count, str_count));
+ #if NCURSES_XNAMES
+ TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans));
+ #endif
+@@ -371,13 +437,13 @@
+
+ if (_nc_access(filename, R_OK) < 0
+ || (fp = fopen(filename, "rb")) == 0) {
+- T(("cannot open terminfo %s (errno=%d)", filename, errno));
++ TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno));
+ code = TGETENT_NO;
+ } else {
+ if ((limit = (int) fread(buffer, sizeof(char), sizeof(buffer), fp))
+ > 0) {
+
+- T(("read terminfo %s", filename));
++ TR(TRACE_DATABASE, ("read terminfo %s", filename));
+ if ((code = _nc_read_termtype(ptr, buffer, limit)) == TGETENT_NO) {
+ _nc_free_termtype(ptr);
+ }
+@@ -390,6 +456,58 @@
+ return (code);
+ }
+
++#if USE_HASHED_DB
++/*
++ * Return if if we can build the filename of a ".db" file.
++ */
++static bool
++make_db_filename(char *filename, unsigned limit, const char *const path)
++{
++ static const char suffix[] = DBM_SUFFIX;
++
++ size_t lens = sizeof(suffix) - 1;
++ size_t size = strlen(path);
++ size_t test = lens + size;
++ bool result = FALSE;
++
++ if (test < limit) {
++ if (size >= lens
++ && !strcmp(path + size - lens, suffix))
++ _nc_STRCPY(filename, path, limit);
++ else
++ _nc_SPRINTF(filename, _nc_SLIMIT(limit) "%s%s", path, suffix);
++ result = TRUE;
++ }
++ return result;
++}
++#endif
++
++/*
++ * Return true if we can build the name of a filesystem entry.
++ */
++static bool
++make_dir_filename(char *filename,
++ unsigned limit,
++ const char *const path,
++ const char *name)
++{
++ bool result = FALSE;
++
++#if NCURSES_USE_TERMCAP
++ if (_nc_is_dir_path(path))
++#endif
++ {
++ unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name));
++
++ if (need <= limit) {
++ _nc_SPRINTF(filename, _nc_SLIMIT(limit)
++ "%s/" LEAF_FMT "/%s", path, *name, name);
++ result = TRUE;
++ }
++ }
++ return result;
++}
++
+ /*
+ * Build a terminfo pathname and try to read the data. Returns TGETENT_YES on
+ * success, TGETENT_NO on failure.
+@@ -401,103 +519,82 @@
+ const char *name,
+ TERMTYPE *const tp)
+ {
+- int result = TGETENT_NO;
+-
+- /*
+- * If we are looking in a directory, assume the entry is a file under that,
+- * according to the normal rules.
+- */
+- unsigned need = (unsigned) (LEAF_LEN + 3 + strlen(path) + strlen(name));
+- if (need <= limit)
+- (void) sprintf(filename, "%s/" LEAF_FMT "/%s", path, *name, name);
++ int code = TGETENT_NO;
+
+- if (_nc_is_dir_path(path))
+- result = _nc_read_file_entry(filename, tp);
+ #if USE_HASHED_DB
+- else {
+- static const char suffix[] = DBM_SUFFIX;
+- DB *capdbp;
+- unsigned lens = sizeof(suffix) - 1;
+- unsigned size = strlen(path);
+- unsigned test = lens + size;
+-
+- if (test < limit) {
+- if (size >= lens
+- && !strcmp(path + size - lens, suffix))
+- (void) strcpy(filename, path);
+- else
+- (void) sprintf(filename, "%s%s", path, suffix);
++ DB *capdbp;
+
+- /*
+- * It would be nice to optimize the dbopen/close activity, as
+- * done in the cgetent implementation for tc= clauses. However,
+- * since we support multiple database locations, we cannot do
+- * that.
+- */
+- if ((capdbp = _nc_db_open(filename, FALSE)) != 0) {
+- DBT key, data;
+- int reccnt = 0;
+- char *save = strdup(name);
+-
+- memset(&key, 0, sizeof(key));
+- key.data = save;
+- key.size = strlen(save);
+-
+- /*
+- * This lookup could return termcap data, which we do not want.
+- * We are looking for compiled (binary) terminfo data.
+- *
+- * cgetent uses a two-level lookup. On the first it uses the
+- * given name to return a record containing only the aliases
+- * for an entry. On the second (using that list of aliases as
+- * a key), it returns the content of the terminal description.
+- * We expect second lookup to return data beginning with the
+- * same set of aliases.
+- *
+- * For compiled terminfo, the list of aliases in the second
+- * case will be null-terminated. A termcap entry will not be,
+- * and will run on into the description. So we can easily
+- * distinguish between the two (source/binary) by checking the
+- * lengths.
+- */
+- while (_nc_db_get(capdbp, &key, &data) == 0) {
+- int used = data.size - 1;
+- char *have = (char *) data.data;
+-
+- if (*have++ == 0) {
+- if (data.size > key.size
+- && IS_TIC_MAGIC(have)) {
+- result = _nc_read_termtype(tp, have, used);
+- if (result == TGETENT_NO) {
+- _nc_free_termtype(tp);
+- }
+- }
+- break;
+- }
++ if (make_db_filename(filename, limit, path)
++ && (capdbp = _nc_db_open(filename, FALSE)) != 0) {
+
+- /*
+- * Just in case we have a corrupt database, do not waste
+- * time with it.
+- */
+- if (++reccnt >= 3)
+- break;
+-
+- /*
+- * Prepare for the second level.
+- */
+- key.data = have;
+- key.size = used;
++ DBT key, data;
++ int reccnt = 0;
++ char *save = strdup(name);
++
++ memset(&key, 0, sizeof(key));
++ key.data = save;
++ key.size = strlen(save);
++
++ /*
++ * This lookup could return termcap data, which we do not want. We are
++ * looking for compiled (binary) terminfo data.
++ *
++ * cgetent uses a two-level lookup. On the first it uses the given
++ * name to return a record containing only the aliases for an entry.
++ * On the second (using that list of aliases as a key), it returns the
++ * content of the terminal description. We expect second lookup to
++ * return data beginning with the same set of aliases.
++ *
++ * For compiled terminfo, the list of aliases in the second case will
++ * be null-terminated. A termcap entry will not be, and will run on
++ * into the description. So we can easily distinguish between the two
++ * (source/binary) by checking the lengths.
++ */
++ while (_nc_db_get(capdbp, &key, &data) == 0) {
++ int used = (int) data.size - 1;
++ char *have = (char *) data.data;
++
++ if (*have++ == 0) {
++ if (data.size > key.size
++ && IS_TIC_MAGIC(have)) {
++ code = _nc_read_termtype(tp, have, used);
++ if (code == TGETENT_NO) {
++ _nc_free_termtype(tp);
++ }
+ }
+-
+- _nc_db_close(capdbp);
+- free(save);
++ break;
+ }
++
++ /*
++ * Just in case we have a corrupt database, do not waste time with
++ * it.
++ */
++ if (++reccnt >= 3)
++ break;
++
++ /*
++ * Prepare for the second level.
++ */
++ key.data = have;
++ key.size = used;
+ }
++
++ free(save);
++ } else /* may be either filesystem or flat file */
++#endif
++ if (make_dir_filename(filename, limit, path, name)) {
++ code = _nc_read_file_entry(filename, tp);
++ }
++#if NCURSES_USE_TERMCAP
++ else if (code != TGETENT_YES) {
++ code = _nc_read_termcap_entry(name, tp);
++ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
++ "%.*s", PATH_MAX - 1, _nc_get_source());
+ }
+ #endif
+- return result;
++ return code;
+ }
+-#endif /* USE_DATABASE */
++#endif /* NCURSES_USE_DATABASE */
+
+ /*
+ * _nc_read_entry(char *name, char *filename, TERMTYPE *tp)
+@@ -513,31 +610,35 @@
+ {
+ int code = TGETENT_NO;
+
+- sprintf(filename, "%.*s", PATH_MAX - 1, name);
++ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
++ "%.*s", PATH_MAX - 1, name);
++
+ if (strlen(name) == 0
+ || strcmp(name, ".") == 0
+ || strcmp(name, "..") == 0
+ || _nc_pathlast(name) != 0
+ || strchr(name, NCURSES_PATHSEP) != 0) {
+- T(("illegal or missing entry name '%s'", name));
++ TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", name));
+ } else {
+-#if USE_DATABASE
+- DBDIRS state = dbdTIC;
+- int offset = 0;
++#if NCURSES_USE_DATABASE
++ DBDIRS state;
++ int offset;
+ const char *path;
+
++ _nc_first_db(&state, &offset);
+ while ((path = _nc_next_db(&state, &offset)) != 0) {
++ TR(TRACE_DATABASE, ("_nc_read_tic_entry path=%s, name=%s", path, name));
+ code = _nc_read_tic_entry(filename, PATH_MAX, path, name, tp);
+ if (code == TGETENT_YES) {
+ _nc_last_db();
+ break;
+ }
+ }
+-#endif
+-#if USE_TERMCAP
++#elif NCURSES_USE_TERMCAP
+ if (code != TGETENT_YES) {
+ code = _nc_read_termcap_entry(name, tp);
+- sprintf(filename, "%.*s", PATH_MAX - 1, _nc_get_source());
++ _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
++ "%.*s", PATH_MAX - 1, _nc_get_source());
+ }
+ #endif
+ }
+Index: ncurses/tinfo/read_termcap.c
+Prereq: 1.74
+--- ncurses-5.9/ncurses/tinfo/read_termcap.c 2010-01-23 17:57:43.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/read_termcap.c 2013-12-15 00:32:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -54,10 +54,9 @@
+
+ #include <ctype.h>
+ #include <sys/types.h>
+-#include <sys/stat.h>
+ #include <tic.h>
+
+-MODULE_ID("$Id: read_termcap.c,v 1.74 2010/01/23 17:57:43 tom Exp $")
++MODULE_ID("$Id: read_termcap.c,v 1.89 2013/12/15 00:32:43 tom Exp $")
+
+ #if !PURE_TERMINFO
+
+@@ -74,7 +73,7 @@
+
+ if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0)
+ result = TERMPATH;
+- T(("TERMPATH is %s", result));
++ TR(TRACE_DATABASE, ("TERMPATH is %s", result));
+ return result;
+ }
+
+@@ -162,7 +161,7 @@
+ return (-1);
+ }
+ gottoprec = 0;
+- (void) strcpy(toprec, ent);
++ _nc_STRCPY(toprec, ent, topreclen);
+ return (0);
+ }
+
+@@ -295,7 +294,7 @@
+ errno = ENOMEM;
+ return (TC_SYS_ERR);
+ }
+- (void) strcpy(record, toprec);
++ _nc_STRCPY(record, toprec, topreclen + BFRAG);
+ rp = record + topreclen + 1;
+ r_end = rp + BFRAG;
+ current = in_array;
+@@ -384,7 +383,14 @@
+ c = *bp++;
+ if (c == '\n') {
+ lineno++;
+- if (rp == record || *(rp - 1) != '\\')
++ /*
++ * Unlike BSD 4.3, this ignores a backslash at the
++ * end of a comment-line. That makes it consistent
++ * with the rest of ncurses -TD
++ */
++ if (rp == record
++ || *record == '#'
++ || *(rp - 1) != '\\')
+ break;
+ }
+ *rp++ = c;
+@@ -442,8 +448,10 @@
+ break;
+ }
+
+- if (!foundit)
++ if (!foundit) {
++ free(record);
+ return (TC_NOT_FOUND);
++ }
+ }
+
+ /*
+@@ -455,7 +463,7 @@
+ register int newilen;
+ unsigned ilen;
+ int diff, iret, tclen, oline;
+- char *icap, *scan, *tc, *tcstart, *tcend;
++ char *icap = 0, *scan, *tc, *tcstart, *tcend;
+
+ /*
+ * Loop invariants:
+@@ -468,8 +476,9 @@
+ scan = record;
+ tc_not_resolved = FALSE;
+ for (;;) {
+- if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0)
++ if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0) {
+ break;
++ }
+
+ /*
+ * Find end of tc=name and stomp on the trailing `:'
+@@ -486,6 +495,7 @@
+ tclen = s - tcstart;
+ tcend = s;
+
++ icap = 0;
+ iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd,
+ tc, depth + 1, 0);
+ newicap = icap; /* Put into a register. */
+@@ -496,12 +506,13 @@
+ if (myfd)
+ (void) close(fd);
+ free(record);
++ FreeIfNeeded(icap);
+ return (iret);
+ }
+- if (iret == TC_UNRESOLVED)
++ if (iret == TC_UNRESOLVED) {
+ tc_not_resolved = TRUE;
+- /* couldn't resolve tc */
+- if (iret == TC_NOT_FOUND) {
++ /* couldn't resolve tc */
++ } else if (iret == TC_NOT_FOUND) {
+ *(s - 1) = ':';
+ scan = s - 1;
+ tc_not_resolved = TRUE;
+@@ -581,8 +592,9 @@
+ }
+
+ *cap = record;
+- if (tc_not_resolved)
++ if (tc_not_resolved) {
+ return (TC_UNRESOLVED);
++ }
+ return (current);
+ }
+
+@@ -697,8 +709,6 @@
+ #define PVECSIZ 32 /* max number of names in path */
+ #define TBUFSIZ (2048*2)
+
+-static char *tbuf;
+-
+ /*
+ * On entry, srcp points to a non ':' character which is the beginning of the
+ * token, if any. We'll try to return a string that doesn't end with a ':'.
+@@ -760,7 +770,7 @@
+ dst = 0;
+ break;
+ }
+- *dst++ = ch;
++ *dst++ = (char) ch;
+ }
+ return dst;
+ }
+@@ -776,18 +786,16 @@
+ register char *p;
+ register char *cp;
+ char *dummy = NULL;
+- char **fname;
++ CGETENT_CONST char **fname;
+ char *home;
+ int i;
+ char pathbuf[PBUFSIZ]; /* holds raw path of filenames */
+- char *pathvec[PVECSIZ]; /* to point to names in pathbuf */
+- char **pvec; /* holds usable tail of path vector */
++ CGETENT_CONST char *pathvec[PVECSIZ]; /* point to names in pathbuf */
+ NCURSES_CONST char *termpath;
+ string_desc desc;
+
++ *lineno = 1;
+ fname = pathvec;
+- pvec = pathvec;
+- tbuf = bp;
+ p = pathbuf;
+ cp = use_terminfo_vars()? getenv("TERMCAP") : NULL;
+
+@@ -812,10 +820,11 @@
+ if ((home = getenv("HOME")) != 0 && *home != '\0'
+ && strchr(home, ' ') == 0
+ && strlen(home) < sizeof(temp) - 10) { /* setup path */
+- sprintf(temp, "%s/", home); /* $HOME first */
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "%s/", home); /* $HOME first */
+ }
+ /* if no $HOME look in current directory */
+- strcat(temp, ".termcap");
++ _nc_STRCAT(temp, ".termcap", sizeof(temp));
+ _nc_safe_strcat(&desc, temp);
+ _nc_safe_strcat(&desc, " ");
+ _nc_safe_strcat(&desc, get_termpath());
+@@ -841,6 +850,9 @@
+ }
+ }
+ *fname = 0; /* mark end of vector */
++#if !HAVE_BSD_CGETENT
++ (void) _nc_cgetset(0);
++#endif
+ if (_nc_is_abs_path(cp)) {
+ if (_nc_cgetset(cp) < 0) {
+ return (TC_SYS_ERR);
+@@ -853,6 +865,7 @@
+ * empty fields, and mistakenly use the last valid cap entry instead of
+ * the first (breaks tc= includes)
+ */
++ *bp = '\0';
+ if (i >= 0) {
+ char *pd, *ps, *tok;
+ int endflag = FALSE;
+@@ -874,7 +887,7 @@
+ }
+ if (ignore != TRUE) {
+ list[count++] = tok;
+- pd = copy_tc_token(pd, tok, TBUFSIZ - (2 + pd - bp));
++ pd = copy_tc_token(pd, tok, (size_t) (TBUFSIZ - (2 + pd - bp)));
+ if (pd == 0) {
+ i = -1;
+ break;
+@@ -932,7 +945,7 @@
+ if (count < MAXPATHS
+ && _nc_access(path, R_OK) == 0) {
+ termpaths[count++] = path;
+- T(("Adding termpath %s", path));
++ TR(TRACE_DATABASE, ("Adding termpath %s", path));
+ }
+ termpaths[count] = 0;
+ if (save != 0)
+@@ -956,13 +969,13 @@
+ static char *source;
+ static int lineno;
+
+- T(("read termcap entry for %s", tn));
++ TR(TRACE_DATABASE, ("read termcap entry for %s", tn));
+
+ if (strlen(tn) == 0
+ || strcmp(tn, ".") == 0
+ || strcmp(tn, "..") == 0
+ || _nc_pathlast(tn) != 0) {
+- T(("illegal or missing entry name '%s'", tn));
++ TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", tn));
+ return TGETENT_NO;
+ }
+
+@@ -980,7 +993,7 @@
+ _nc_curr_line = lineno;
+ _nc_set_source(source);
+ }
+- _nc_read_entry_source((FILE *) 0, tc, FALSE, FALSE, NULLHOOK);
++ _nc_read_entry_source((FILE *) 0, tc, FALSE, TRUE, NULLHOOK);
+ #else
+ /*
+ * Here is what the 4.4BSD termcap(3) page prescribes:
+@@ -1027,7 +1040,9 @@
+ normal = FALSE;
+ } else if (_nc_name_match(tc, tn, "|:")) { /* treat as a capability file */
+ use_buffer = TRUE;
+- (void) sprintf(tc_buf, "%.*s\n", (int) sizeof(tc_buf) - 2, tc);
++ _nc_SPRINTF(tc_buf,
++ _nc_SLIMIT(sizeof(tc_buf))
++ "%.*s\n", (int) sizeof(tc_buf) - 2, tc);
+ normal = FALSE;
+ }
+ }
+@@ -1049,8 +1064,9 @@
+ if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0'
+ && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
+ /* user's .termcap, if any, should override it */
+- (void) strcpy(envhome, h);
+- (void) sprintf(pathbuf, PRIVATE_CAP, envhome);
++ _nc_STRCPY(envhome, h, sizeof(envhome));
++ _nc_SPRINTF(pathbuf, _nc_SLIMIT(sizeof(pathbuf))
++ PRIVATE_CAP, envhome);
+ ADD_TC(pathbuf, filecount);
+ }
+ }
+@@ -1063,7 +1079,7 @@
+ for (j = 0; j < filecount; j++) {
+ bool omit = FALSE;
+ if (stat(termpaths[j], &test_stat[j]) != 0
+- || (test_stat[j].st_mode & S_IFMT) != S_IFREG) {
++ || !S_ISREG(test_stat[j].st_mode)) {
+ omit = TRUE;
+ } else {
+ for (k = 0; k < j; k++) {
+@@ -1075,7 +1091,7 @@
+ }
+ }
+ if (omit) {
+- T(("Path %s is a duplicate", termpaths[j]));
++ TR(TRACE_DATABASE, ("Path %s is a duplicate", termpaths[j]));
+ for (k = j + 1; k < filecount; k++) {
+ termpaths[k - 1] = termpaths[k];
+ test_stat[k - 1] = test_stat[k];
+@@ -1100,7 +1116,7 @@
+
+ for (i = 0; i < filecount; i++) {
+
+- T(("Looking for %s in %s", tn, termpaths[i]));
++ TR(TRACE_DATABASE, ("Looking for %s in %s", tn, termpaths[i]));
+ if (_nc_access(termpaths[i], R_OK) == 0
+ && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
+ _nc_set_source(termpaths[i]);
+@@ -1138,8 +1154,7 @@
+ * from the list.
+ */
+ *tp = ep->tterm;
+- _nc_delink_entry(_nc_head, &(ep->tterm));
+- free(ep);
++ _nc_free_entry(_nc_head, &(ep->tterm));
+
+ /*
+ * OK, now try to write the type to user's terminfo directory.
+Index: ncurses/tinfo/strings.c
+Prereq: 1.6
+--- ncurses-5.9/ncurses/tinfo/strings.c 2007-08-11 17:12:17.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/strings.c 2012-02-22 22:34:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2000-2003,2007 Free Software Foundation, Inc. *
++ * Copyright (c) 2000-2007,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: strings.c,v 1.6 2007/08/11 17:12:17 tom Exp $")
++MODULE_ID("$Id: strings.c,v 1.8 2012/02/22 22:34:31 tom Exp $")
+
+ /****************************************************************************
+ * Useful string functions (especially for mvcur)
+@@ -110,7 +110,7 @@
+
+ if (len < dst->s_size) {
+ if (dst->s_tail != 0) {
+- strcpy(dst->s_tail, src);
++ _nc_STRCPY(dst->s_tail, src, dst->s_size);
+ dst->s_tail += len;
+ }
+ dst->s_size -= len;
+@@ -131,7 +131,7 @@
+
+ if (len < dst->s_size) {
+ if (dst->s_head != 0) {
+- strcpy(dst->s_head, src);
++ _nc_STRCPY(dst->s_head, src, dst->s_size);
+ dst->s_tail = dst->s_head + len;
+ }
+ dst->s_size = dst->s_init - len;
+Index: ncurses/tinfo/tinfo_driver.c
+Prereq: 1.13
+--- ncurses-5.9/ncurses/tinfo/tinfo_driver.c 2010-12-20 01:47:09.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/tinfo_driver.c 2014-09-27 21:58:57.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -50,7 +50,7 @@
+ # endif
+ #endif
+
+-MODULE_ID("$Id: tinfo_driver.c,v 1.13 2010/12/20 01:47:09 tom Exp $")
++MODULE_ID("$Id: tinfo_driver.c,v 1.39 2014/09/27 21:58:57 tom Exp $")
+
+ /*
+ * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
+@@ -93,7 +93,7 @@
+
+ #define TCBMAGIC NCDRV_MAGIC(NCDRV_TINFO)
+ #define AssertTCB() assert(TCB!=0 && TCB->magic==TCBMAGIC)
+-#define SetSP() assert(TCB->csp!=0); sp = TCB->csp
++#define SetSP() assert(TCB->csp!=0); sp = TCB->csp; (void) sp
+
+ /*
+ * This routine needs to do all the work to make curscr look
+@@ -106,21 +106,12 @@
+ return TINFO_DOUPDATE(TCB->csp);
+ }
+
+-#define ret_error(code, fmt, arg) if (errret) {\
+- *errret = code;\
+- return(FALSE); \
+- } else {\
+- fprintf(stderr, fmt, arg);\
+- exit(EXIT_FAILURE);\
+- }
+-
+-#define ret_error0(code, msg) if (errret) {\
+- *errret = code;\
+- return(FALSE);\
+- } else {\
+- fprintf(stderr, msg);\
+- exit(EXIT_FAILURE);\
+- }
++static const char *
++drv_Name(TERMINAL_CONTROL_BLOCK * TCB)
++{
++ (void) TCB;
++ return "tinfo";
++}
+
+ static bool
+ drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret)
+@@ -130,12 +121,14 @@
+ TERMINAL *termp;
+ SCREEN *sp;
+
++ T((T_CALLED("tinfo::drv_CanHandle(%p)"), TCB));
++
+ assert(TCB != 0 && tname != 0);
+ termp = (TERMINAL *) TCB;
+ sp = TCB->csp;
+ TCB->magic = TCBMAGIC;
+
+-#if (USE_DATABASE || USE_TERMCAP)
++#if (NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP)
+ status = _nc_setup_tinfo(tname, &termp->type);
+ #else
+ status = TGETENT_NO;
+@@ -156,12 +149,12 @@
+ if (status == TGETENT_ERR) {
+ ret_error0(status, "terminals database is inaccessible\n");
+ } else if (status == TGETENT_NO) {
+- ret_error(status, "'%s': unknown terminal type.\n", tname);
++ ret_error1(status, "unknown terminal type.\n", tname);
+ }
+ }
+ result = TRUE;
+ #if !USE_REENTRANT
+- strncpy(ttytype, termp->type.term_names, NAMESIZE - 1);
++ strncpy(ttytype, termp->type.term_names, (size_t) NAMESIZE - 1);
+ ttytype[NAMESIZE - 1] = '\0';
+ #endif
+
+@@ -169,17 +162,27 @@
+ _nc_tinfo_cmdch(termp, *command_character);
+
+ if (generic_type) {
+- ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname);
++ /*
++ * BSD 4.3's termcap contains mis-typed "gn" for wy99. Do a sanity
++ * check before giving up.
++ */
++ if ((VALID_STRING(cursor_address)
++ || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home)))
++ && VALID_STRING(clear_screen)) {
++ ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname);
++ } else {
++ ret_error1(TGETENT_NO, "I need something more specific.\n", tname);
++ }
+ }
+ if (hard_copy) {
+- ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname);
++ ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname);
+ }
+
+- return result;
++ returnBool(result);
+ }
+
+ static int
+-drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, bool beepFlag)
++drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, int beepFlag)
+ {
+ SCREEN *sp;
+ int res = ERR;
+@@ -190,22 +193,18 @@
+ /* FIXME: should make sure that we are not in altchar mode */
+ if (beepFlag) {
+ if (bell) {
+- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell);
++ res = NCURSES_PUTP2("bell", bell);
+ NCURSES_SP_NAME(_nc_flush) (sp);
+ } else if (flash_screen) {
+- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "flash_screen",
+- flash_screen);
++ res = NCURSES_PUTP2("flash_screen", flash_screen);
+ NCURSES_SP_NAME(_nc_flush) (sp);
+ }
+ } else {
+ if (flash_screen) {
+- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "flash_screen",
+- flash_screen);
++ res = NCURSES_PUTP2("flash_screen", flash_screen);
+ NCURSES_SP_NAME(_nc_flush) (sp);
+ } else if (bell) {
+- res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell);
++ res = NCURSES_PUTP2("bell", bell);
+ NCURSES_SP_NAME(_nc_flush) (sp);
+ }
+ }
+@@ -277,7 +276,7 @@
+
+ static void
+ drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB,
+- bool fore,
++ int fore,
+ int color,
+ NCURSES_SP_OUTC outc)
+ {
+@@ -321,7 +320,7 @@
+ SetSP();
+
+ if (orig_pair != 0) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_pair", orig_pair);
++ NCURSES_PUTP2("orig_pair", orig_pair);
+ result = TRUE;
+ }
+ return result;
+@@ -337,7 +336,7 @@
+ SetSP();
+
+ if (orig_colors != 0) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_colors", orig_colors);
++ NCURSES_PUTP2("orig_colors", orig_colors);
+ result = TRUE;
+ }
+ return result;
+@@ -348,14 +347,18 @@
+ {
+ SCREEN *sp;
+ bool useEnv = TRUE;
++ bool useTioctl = TRUE;
+
+ AssertTCB();
+ sp = TCB->csp; /* can be null here */
+
+ if (sp) {
+ useEnv = sp->_use_env;
+- } else
++ useTioctl = sp->_use_tioctl;
++ } else {
+ useEnv = _nc_prescreen.use_env;
++ useTioctl = _nc_prescreen.use_tioctl;
++ }
+
+ /* figure out the size of the screen */
+ T(("screen size: terminfo lines = %d columns = %d", lines, columns));
+@@ -363,7 +366,7 @@
+ *linep = (int) lines;
+ *colp = (int) columns;
+
+- if (useEnv) {
++ if (useEnv || useTioctl) {
+ int value;
+
+ #ifdef __EMX__
+@@ -371,7 +374,9 @@
+ int screendata[2];
+ _scrsize(screendata);
+ *colp = screendata[0];
+- *linep = screendata[1];
++ *linep = ((sp != 0 && sp->_filtered)
++ ? 1
++ : screendata[1]);
+ T(("EMX screen size: environment LINES = %d COLUMNS = %d",
+ *linep, *colp));
+ }
+@@ -380,7 +385,7 @@
+ /* try asking the OS */
+ {
+ TERMINAL *termp = (TERMINAL *) TCB;
+- if (isatty(termp->Filedes)) {
++ if (NC_ISATTY(termp->Filedes)) {
+ STRUCT_WINSIZE size;
+
+ errno = 0;
+@@ -400,19 +405,33 @@
+ }
+ #endif /* HAVE_SIZECHANGE */
+
+- /*
+- * Finally, look for environment variables.
+- *
+- * Solaris lets users override either dimension with an environment
+- * variable.
+- */
+- if ((value = _nc_getenv_num("LINES")) > 0) {
+- *linep = value;
+- T(("screen size: environment LINES = %d", *linep));
+- }
+- if ((value = _nc_getenv_num("COLUMNS")) > 0) {
+- *colp = value;
+- T(("screen size: environment COLUMNS = %d", *colp));
++ if (useEnv) {
++ if (useTioctl) {
++ /*
++ * If environment variables are used, update them.
++ */
++ if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) {
++ _nc_setenv_num("LINES", *linep);
++ }
++ if (_nc_getenv_num("COLUMNS") > 0) {
++ _nc_setenv_num("COLUMNS", *colp);
++ }
++ }
++
++ /*
++ * Finally, look for environment variables.
++ *
++ * Solaris lets users override either dimension with an environment
++ * variable.
++ */
++ if ((value = _nc_getenv_num("LINES")) > 0) {
++ *linep = value;
++ T(("screen size: environment LINES = %d", *linep));
++ }
++ if ((value = _nc_getenv_num("COLUMNS")) > 0) {
++ *colp = value;
++ T(("screen size: environment COLUMNS = %d", *colp));
++ }
+ }
+
+ /* if we can't get dynamic info about the size, use static */
+@@ -463,7 +482,7 @@
+ }
+
+ static int
+-drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf)
++drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, int setFlag, TTY * buf)
+ {
+ SCREEN *sp = TCB->csp;
+ TERMINAL *_term = (TERMINAL *) TCB;
+@@ -497,7 +516,7 @@
+ }
+
+ static int
+-drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag)
++drv_mode(TERMINAL_CONTROL_BLOCK * TCB, int progFlag, int defFlag)
+ {
+ SCREEN *sp;
+ TERMINAL *_term = (TERMINAL *) TCB;
+@@ -527,7 +546,6 @@
+ if (sp) {
+ if (sp->_keypad_on)
+ _nc_keypad(sp, TRUE);
+- NC_BUFFERED(sp, TRUE);
+ }
+ code = OK;
+ }
+@@ -553,7 +571,6 @@
+ if (sp) {
+ _nc_keypad(sp, FALSE);
+ NCURSES_SP_NAME(_nc_flush) (sp);
+- NC_BUFFERED(sp, FALSE);
+ }
+ code = drv_sgmode(TCB, TRUE, &(_term->Ottyb));
+ }
+@@ -620,15 +637,13 @@
+ static void
+ drv_init(TERMINAL_CONTROL_BLOCK * TCB)
+ {
+- SCREEN *sp;
+ TERMINAL *trm;
+
+ AssertTCB();
+
+ trm = (TERMINAL *) TCB;
+- sp = TCB->csp;
+
+- TCB->info.initcolor = initialize_color;
++ TCB->info.initcolor = VALID_STRING(initialize_color);
+ TCB->info.canchange = can_change;
+ TCB->info.hascolor = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
+ && (((set_foreground != NULL)
+@@ -656,8 +671,8 @@
+ * _nc_setupscreen(). Do it now anyway, so we can initialize the
+ * baudrate.
+ */
+- if (isatty(trm->Filedes)) {
+- TCB->drv->mode(TCB, TRUE, TRUE);
++ if (NC_ISATTY(trm->Filedes)) {
++ TCB->drv->td_mode(TCB, TRUE, TRUE);
+ }
+ }
+
+@@ -665,7 +680,7 @@
+ #define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE)
+
+ static void
+-drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, short pair, short f, short b)
++drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, int pair, int f, int b)
+ {
+ SCREEN *sp;
+
+@@ -681,12 +696,11 @@
+ tp[f].red, tp[f].green, tp[f].blue,
+ tp[b].red, tp[b].green, tp[b].blue));
+
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "initialize_pair",
+- TPARM_7(initialize_pair,
+- pair,
+- tp[f].red, tp[f].green, tp[f].blue,
+- tp[b].red, tp[b].green, tp[b].blue));
++ NCURSES_PUTP2("initialize_pair",
++ TPARM_7(initialize_pair,
++ pair,
++ tp[f].red, tp[f].green, tp[f].blue,
++ tp[b].red, tp[b].green, tp[b].blue));
+ }
+ }
+
+@@ -712,23 +726,22 @@
+
+ static void
+ drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB,
+- short color, short r, short g, short b)
++ int color, int r, int g, int b)
+ {
+ SCREEN *sp = TCB->csp;
+
+ AssertTCB();
+ if (initialize_color != NULL) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "initialize_color",
+- TPARM_4(initialize_color, color, r, g, b));
++ NCURSES_PUTP2("initialize_color",
++ TPARM_4(initialize_color, color, r, g, b));
+ }
+ }
+
+ static void
+ drv_do_color(TERMINAL_CONTROL_BLOCK * TCB,
+- short old_pair,
+- short pair,
+- bool reverse,
++ int old_pair,
++ int pair,
++ int reverse,
+ NCURSES_SP_OUTC outc)
+ {
+ SCREEN *sp = TCB->csp;
+@@ -759,7 +772,7 @@
+ if (old_pair >= 0
+ && sp != 0
+ && NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx
+- old_pair,
++ (short) old_pair,
+ &old_fg,
+ &old_bg) !=ERR) {
+ if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
+@@ -845,7 +858,9 @@
+ }
+
+ static int
+-drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB, int delay)
++drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB,
++ int delay
++ EVENTLIST_2nd(_nc_eventlist * evl))
+ {
+ int rc = 0;
+ SCREEN *sp;
+@@ -860,11 +875,11 @@
+ } else
+ #endif
+ {
+- rc = TCBOf(sp)->drv->twait(TCBOf(sp),
+- TWAIT_MASK,
+- delay,
+- (int *) 0
+- EVENTLIST_2nd(evl));
++ rc = TCBOf(sp)->drv->td_twait(TCBOf(sp),
++ TWAIT_MASK,
++ delay,
++ (int *) 0
++ EVENTLIST_2nd(evl));
+ #if USE_SYSMOUSE
+ if ((sp->_mouse_type == M_SYSMOUSE)
+ && (sp->_sysmouse_head < sp->_sysmouse_tail)
+@@ -882,7 +897,7 @@
+ {
+ SCREEN *sp = TCB->csp;
+ AssertTCB();
+- return TINFO_MVCUR(sp, yold, xold, ynew, xnew);
++ return NCURSES_SP_NAME(_nc_mvcur) (sp, yold, xold, ynew, xnew);
+ }
+
+ static void
+@@ -892,22 +907,21 @@
+
+ AssertTCB();
+ if (labnum > 0 && labnum <= num_labels) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "plab_norm",
+- TPARM_2(plab_norm, labnum, text));
++ NCURSES_PUTP2("plab_norm",
++ TPARM_2(plab_norm, labnum, text));
+ }
+ }
+
+ static void
+-drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, bool OnFlag)
++drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, int OnFlag)
+ {
+ SCREEN *sp = TCB->csp;
+
+ AssertTCB();
+ if (OnFlag) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_on", label_on);
++ NCURSES_PUTP2("label_on", label_on);
+ } else {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_off", label_off);
++ NCURSES_PUTP2("label_off", label_off);
+ }
+ }
+
+@@ -948,6 +962,11 @@
+ if (sp && sp->_coloron)
+ attrs |= A_COLOR;
+
++#if USE_ITALIC
++ if (enter_italics_mode)
++ attrs |= A_ITALIC;
++#endif
++
+ return (attrs);
+ }
+
+@@ -972,7 +991,7 @@
+ AssertTCB();
+ assert(sp != 0);
+ if (ena_acs != NULL) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "ena_acs", ena_acs);
++ NCURSES_PUTP2("ena_acs", ena_acs);
+ }
+ #if NCURSES_EXT_FUNCS
+ /*
+@@ -991,7 +1010,7 @@
+ size_t i;
+ for (i = 1; i < ACS_LEN; ++i) {
+ if (real_map[i] == 0) {
+- real_map[i] = i;
++ real_map[i] = (chtype) i;
+ if (real_map != fake_map) {
+ if (sp != 0)
+ sp->_screen_acs_map[i] = TRUE;
+@@ -1074,16 +1093,7 @@
+
+ if (magic_cookie_glitch > 0) { /* tvi, wyse */
+
+- sp->_xmc_triggers = sp->_ok_attributes & (
+- A_STANDOUT |
+- A_UNDERLINE |
+- A_REVERSE |
+- A_BLINK |
+- A_DIM |
+- A_BOLD |
+- A_INVIS |
+- A_PROTECT
+- );
++ sp->_xmc_triggers = sp->_ok_attributes & XMC_CONFLICT;
+ #if 0
+ /*
+ * We "should" treat colors as an attribute. The wyse350 (and its
+@@ -1176,7 +1186,7 @@
+ if ((pthread_self) && (pthread_kill) && (pthread_equal))
+ _nc_globals.read_thread = pthread_self();
+ # endif
+- n = read(sp->_ifd, &c2, 1);
++ n = read(sp->_ifd, &c2, (size_t) 1);
+ #if USE_PTHREADS_EINTR
+ _nc_globals.read_thread = 0;
+ #endif
+@@ -1209,7 +1219,7 @@
+ int rc = ERR;
+
+ if (value) {
+- rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value);
++ rc = NCURSES_PUTP2(name, value);
+ }
+ return rc;
+ }
+@@ -1225,7 +1235,7 @@
+ }
+
+ static int
+-drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag)
++drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, int flag)
+ {
+ int ret = ERR;
+ SCREEN *sp;
+@@ -1251,7 +1261,7 @@
+ }
+
+ static int
+-drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, bool flag)
++drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, int flag)
+ {
+ SCREEN *sp;
+ int code = ERR;
+@@ -1264,7 +1274,8 @@
+ if (c >= 0) {
+ unsigned ch = (unsigned) c;
+ if (flag) {
+- while ((s = _nc_expand_try(sp->_key_ok, ch, &count, 0)) != 0
++ while ((s = _nc_expand_try(sp->_key_ok,
++ ch, &count, (size_t) 0)) != 0
+ && _nc_remove_key(&(sp->_key_ok), ch)) {
+ code = _nc_add_to_try(&(sp->_keytry), s, ch);
+ free(s);
+@@ -1273,7 +1284,8 @@
+ break;
+ }
+ } else {
+- while ((s = _nc_expand_try(sp->_keytry, ch, &count, 0)) != 0
++ while ((s = _nc_expand_try(sp->_keytry,
++ ch, &count, (size_t) 0)) != 0
+ && _nc_remove_key(&(sp->_keytry), ch)) {
+ code = _nc_add_to_try(&(sp->_key_ok), s, ch);
+ free(s);
+@@ -1286,6 +1298,35 @@
+ return (code);
+ }
+
++static int
++drv_cursorSet(TERMINAL_CONTROL_BLOCK * TCB, int vis)
++{
++ SCREEN *sp;
++ int code = ERR;
++
++ AssertTCB();
++ SetSP();
++
++ T((T_CALLED("tinfo:drv_cursorSet(%p,%d)"), (void *) SP_PARM, vis));
++
++ if (SP_PARM != 0 && IsTermInfo(SP_PARM)) {
++ switch (vis) {
++ case 2:
++ code = NCURSES_PUTP2_FLUSH("cursor_visible", cursor_visible);
++ break;
++ case 1:
++ code = NCURSES_PUTP2_FLUSH("cursor_normal", cursor_normal);
++ break;
++ case 0:
++ code = NCURSES_PUTP2_FLUSH("cursor_invisible", cursor_invisible);
++ break;
++ }
++ } else {
++ code = ERR;
++ }
++ returnCode(code);
++}
++
+ static bool
+ drv_kyExist(TERMINAL_CONTROL_BLOCK * TCB, int key)
+ {
+@@ -1300,6 +1341,7 @@
+
+ NCURSES_EXPORT_VAR (TERM_DRIVER) _nc_TINFO_DRIVER = {
+ TRUE,
++ drv_Name, /* Name */
+ drv_CanHandle, /* CanHandle */
+ drv_init, /* init */
+ drv_release, /* release */
+@@ -1333,5 +1375,6 @@
+ drv_nap, /* nap */
+ drv_kpad, /* kpad */
+ drv_keyok, /* kyOk */
+- drv_kyExist /* kyExist */
++ drv_kyExist, /* kyExist */
++ drv_cursorSet /* cursorSet */
+ };
+Index: ncurses/tinfo/trim_sgr0.c
+Prereq: 1.12
+--- ncurses-5.9/ncurses/tinfo/trim_sgr0.c 2010-12-25 23:03:57.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/trim_sgr0.c 2012-12-15 20:57:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2005-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2005-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+
+ #include <tic.h>
+
+-MODULE_ID("$Id: trim_sgr0.c,v 1.12 2010/12/25 23:03:57 tom Exp $")
++MODULE_ID("$Id: trim_sgr0.c,v 1.15 2012/12/15 20:57:17 tom Exp $")
+
+ #undef CUR
+ #define CUR tp->
+@@ -48,21 +48,28 @@
+ static char *
+ set_attribute_9(TERMTYPE *tp, int flag)
+ {
+- const char *result;
++ const char *value;
++ char *result;
+
+- if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
+- result = "";
+- return strdup(result);
++ value = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag);
++ if (PRESENT(value))
++ result = strdup(value);
++ else
++ result = 0;
++ return result;
+ }
+
+ static int
+ is_csi(const char *s)
+ {
+- if (UChar(s[0]) == CSI)
+- return 1;
+- else if (s[0] == ESC && s[1] == L_BRACK)
+- return 2;
+- return 0;
++ int result = 0;
++ if (s != 0) {
++ if (UChar(s[0]) == CSI)
++ result = 1;
++ else if (s[0] == ESC && s[1] == L_BRACK)
++ result = 2;
++ }
++ return result;
+ }
+
+ static char *
+@@ -97,7 +104,7 @@
+ static bool
+ rewrite_sgr(char *s, char *attr)
+ {
+- if (PRESENT(s)) {
++ if (s != 0) {
+ if (PRESENT(attr)) {
+ size_t len_s = strlen(s);
+ size_t len_a = strlen(attr);
+@@ -108,7 +115,7 @@
+ for (n = 0; n < len_s - len_a; ++n) {
+ s[n] = s[n + len_a];
+ }
+- strcpy(s + n, attr);
++ _nc_STRCPY(s + n, attr, strlen(s) + 1);
+ TR(TRACE_DATABASE, ("to:\n\t%s", s));
+ }
+ }
+@@ -121,33 +128,35 @@
+ similar_sgr(char *a, char *b)
+ {
+ bool result = FALSE;
+- int csi_a = is_csi(a);
+- int csi_b = is_csi(b);
+- size_t len_a;
+- size_t len_b;
+-
+- TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s",
+- _nc_visbuf2(1, a),
+- _nc_visbuf2(2, b)));
+- if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
+- a += csi_a;
+- b += csi_b;
+- if (*a != *b) {
+- a = skip_zero(a);
+- b = skip_zero(b);
++ if (a != 0 && b != 0) {
++ int csi_a = is_csi(a);
++ int csi_b = is_csi(b);
++ size_t len_a;
++ size_t len_b;
++
++ TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s",
++ _nc_visbuf2(1, a),
++ _nc_visbuf2(2, b)));
++ if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
++ a += csi_a;
++ b += csi_b;
++ if (*a != *b) {
++ a = skip_zero(a);
++ b = skip_zero(b);
++ }
+ }
++ len_a = strlen(a);
++ len_b = strlen(b);
++ if (len_a && len_b) {
++ if (len_a > len_b)
++ result = (strncmp(a, b, len_b) == 0);
++ else
++ result = (strncmp(a, b, len_a) == 0);
++ }
++ TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result,
++ _nc_visbuf2(1, a),
++ _nc_visbuf2(2, b)));
+ }
+- len_a = strlen(a);
+- len_b = strlen(b);
+- if (len_a && len_b) {
+- if (len_a > len_b)
+- result = (strncmp(a, b, len_b) == 0);
+- else
+- result = (strncmp(a, b, len_a) == 0);
+- }
+- TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result,
+- _nc_visbuf2(1, a),
+- _nc_visbuf2(2, b)));
+ return result;
+ }
+
+Index: ncurses/tinfo/write_entry.c
+Prereq: 1.78
+--- ncurses-5.9/ncurses/tinfo/write_entry.c 2010-12-25 23:23:08.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tinfo/write_entry.c 2014-11-01 14:47:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,21 +39,15 @@
+ #include <curses.priv.h>
+ #include <hashed_db.h>
+
+-#include <sys/stat.h>
+-
+ #include <tic.h>
+
+-#ifndef S_ISDIR
+-#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR)
+-#endif
+-
+ #if 1
+ #define TRACE_OUT(p) DEBUG(2, p)
+ #else
+ #define TRACE_OUT(p) /*nothing */
+ #endif
+
+-MODULE_ID("$Id: write_entry.c,v 1.78 2010/12/25 23:23:08 tom Exp $")
++MODULE_ID("$Id: write_entry.c,v 1.92 2014/11/01 14:47:00 tom Exp $")
+
+ static int total_written;
+
+@@ -76,7 +70,7 @@
+ DEBUG(1, ("Created %s", filename));
+
+ if (write_object(tp, buffer, &offset, limit) == ERR
+- || fwrite(buffer, sizeof(char), offset, fp) != offset) {
++ || fwrite(buffer, sizeof(char), (size_t) offset, fp) != offset) {
+ _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename);
+ }
+
+@@ -99,13 +93,13 @@
+ char dir[sizeof(LEAF_FMT)];
+ char *s = 0;
+
+- if (code == 0 || (s = strchr(dirnames, code)) == 0)
++ if (code == 0 || (s = (strchr) (dirnames, code)) == 0)
+ _nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code);
+
+ if (verified[s - dirnames])
+ return;
+
+- sprintf(dir, LEAF_FMT, code);
++ _nc_SPRINTF(dir, _nc_SLIMIT(sizeof(dir)) LEAF_FMT, code);
+ if (make_db_root(dir) < 0) {
+ _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
+ }
+@@ -115,36 +109,35 @@
+ #endif /* !USE_HASHED_DB */
+
+ static int
+-make_db_path(char *dst, const char *src, unsigned limit)
++make_db_path(char *dst, const char *src, size_t limit)
+ {
+ int rc = -1;
+ const char *top = _nc_tic_dir(0);
+
+ if (src == top || _nc_is_abs_path(src)) {
+ if (strlen(src) + 1 <= limit) {
+- (void) strcpy(dst, src);
++ _nc_STRCPY(dst, src, limit);
+ rc = 0;
+ }
+ } else {
+ if (strlen(top) + strlen(src) + 2 <= limit) {
+- (void) sprintf(dst, "%s/%s", top, src);
++ _nc_SPRINTF(dst, _nc_SLIMIT(limit) "%s/%s", top, src);
+ rc = 0;
+ }
+ }
+ #if USE_HASHED_DB
+ if (rc == 0) {
+- if (_nc_is_dir_path(dst)) {
+- rc = -1;
+- } else {
+- static const char suffix[] = DBM_SUFFIX;
+- unsigned have = strlen(dst);
+- unsigned need = strlen(suffix);
+- if (have > need && strcmp(dst + have - need, suffix)) {
+- if (have + need <= limit)
+- strcat(dst, suffix);
+- else
+- rc = -1;
++ static const char suffix[] = DBM_SUFFIX;
++ size_t have = strlen(dst);
++ size_t need = strlen(suffix);
++ if (have > need && strcmp(dst + (int) (have - need), suffix)) {
++ if (have + need <= limit) {
++ _nc_STRCAT(dst, suffix, limit);
++ } else {
++ rc = -1;
+ }
++ } else if (_nc_is_dir_path(dst)) {
++ rc = -1;
+ }
+ }
+ #endif
+@@ -164,10 +157,11 @@
+ #if USE_HASHED_DB
+ DB *capdbp;
+
+- if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL)
++ if ((capdbp = _nc_db_open(fullpath, TRUE)) == NULL) {
+ rc = -1;
+- else if (_nc_db_close(capdbp) < 0)
++ } else if (_nc_db_close(capdbp) < 0) {
+ rc = -1;
++ }
+ #else
+ struct stat statbuf;
+
+@@ -191,13 +185,16 @@
+ * Set the write directory for compiled entries.
+ */
+ NCURSES_EXPORT(void)
+-_nc_set_writedir(char *dir)
++_nc_set_writedir(const char *dir)
+ {
+ const char *destination;
+ char actual[PATH_MAX];
+
+ if (dir == 0
+- && use_terminfo_vars())
++#ifndef USE_ROOT_ENVIRON
++ && use_terminfo_vars()
++#endif
++ )
+ dir = getenv("TERMINFO");
+
+ if (dir != 0)
+@@ -279,16 +276,21 @@
+ char name_list[MAX_TERMINFO_LENGTH];
+ char *first_name, *other_names;
+ char *ptr;
++ char *term_names = tp->term_names;
++ size_t name_size = strlen(term_names);
+
+- assert(strlen(tp->term_names) != 0);
+- assert(strlen(tp->term_names) < sizeof(name_list));
++ if (name_size == 0) {
++ _nc_syserr_abort("no terminal name found.");
++ } else if (name_size >= sizeof(name_list) - 1) {
++ _nc_syserr_abort("terminal name too long: %s", term_names);
++ }
+
+- (void) strcpy(name_list, tp->term_names);
++ _nc_STRCPY(name_list, term_names, sizeof(name_list));
+ DEBUG(7, ("Name list = '%s'", name_list));
+
+ first_name = name_list;
+
+- ptr = &name_list[strlen(name_list) - 1];
++ ptr = &name_list[name_size - 1];
+ other_names = ptr + 1;
+
+ while (ptr > name_list && *ptr != '|')
+@@ -322,8 +324,8 @@
+ buffer[0] = 0;
+
+ memset(&key, 0, sizeof(key));
+- key.data = tp->term_names;
+- key.size = strlen(tp->term_names);
++ key.data = term_names;
++ key.size = name_size;
+
+ memset(&data, 0, sizeof(data));
+ data.data = buffer;
+@@ -336,8 +338,10 @@
+ key.data = name_list;
+ key.size = strlen(name_list);
+
+- strcpy(buffer + 1, tp->term_names);
+- data.size = strlen(tp->term_names) + 1;
++ _nc_STRCPY(buffer + 1,
++ term_names,
++ sizeof(buffer) - 1);
++ data.size = name_size + 1;
+
+ _nc_db_put(capdb, &key, &data);
+
+@@ -355,7 +359,6 @@
+
+ _nc_db_put(capdb, &key, &data);
+ }
+- _nc_db_close(capdb);
+ }
+ }
+ #else /* !USE_HASHED_DB */
+@@ -366,7 +369,8 @@
+ if (strlen(first_name) >= sizeof(filename) - (2 + LEAF_LEN))
+ _nc_warning("terminal name too long.");
+
+- sprintf(filename, LEAF_FMT "/%s", first_name[0], first_name);
++ _nc_SPRINTF(filename, _nc_SLIMIT(sizeof(filename))
++ LEAF_FMT "/%s", first_name[0], first_name);
+
+ /*
+ * Has this primary name been written since the first call to
+@@ -376,7 +380,22 @@
+ if (start_time > 0 &&
+ stat(filename, &statbuf) >= 0
+ && statbuf.st_mtime >= start_time) {
++#if HAVE_LINK && !USE_SYMLINKS
++ /*
++ * If the file has more than one link, the reason for the previous
++ * write could be that the current primary name used to be an alias for
++ * the previous entry. In that case, unlink the file so that we will
++ * not modify the previous entry as we write this one.
++ */
++ if (statbuf.st_nlink > 1) {
++ _nc_warning("name redefined.");
++ unlink(filename);
++ } else {
++ _nc_warning("name multiply defined.");
++ }
++#else
+ _nc_warning("name multiply defined.");
++#endif
+ }
+
+ check_writeable(first_name[0]);
+@@ -407,7 +426,8 @@
+ }
+
+ check_writeable(ptr[0]);
+- sprintf(linkname, LEAF_FMT "/%s", ptr[0], ptr);
++ _nc_SPRINTF(linkname, _nc_SLIMIT(sizeof(linkname))
++ LEAF_FMT "/%s", ptr[0], ptr);
+
+ if (strcmp(filename, linkname) == 0) {
+ _nc_warning("self-synonym ignored");
+@@ -422,7 +442,7 @@
+ if (first_name[0] == linkname[0])
+ strncpy(symlinkname, first_name, sizeof(symlinkname) - 1);
+ else {
+- strcpy(symlinkname, "../");
++ _nc_STRCPY(symlinkname, "../", sizeof(suymlinkname));
+ strncat(symlinkname, filename, sizeof(symlinkname) - 4);
+ }
+ symlinkname[sizeof(symlinkname) - 1] = '\0';
+@@ -491,7 +511,7 @@
+ return (want / size);
+ }
+
+-#define Write(buf, size, count) fake_write(buffer, offset, limit, (char *) buf, count, size)
++#define Write(buf, size, count) fake_write(buffer, offset, (size_t) limit, (char *) buf, (size_t) count, (size_t) size)
+
+ #undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */
+ #define HI(x) ((x) / 256)
+@@ -706,7 +726,7 @@
+ return (ERR);
+
+ nextfree = compute_offsets(tp->Strings + STRCOUNT,
+- tp->ext_Strings,
++ (size_t) tp->ext_Strings,
+ offsets);
+ TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree));
+
+@@ -714,7 +734,7 @@
+ return (ERR);
+
+ nextfree += compute_offsets(tp->ext_Names,
+- extcnt,
++ (size_t) extcnt,
+ offsets + tp->ext_Strings);
+ TRACE_OUT(("after extended capnames, nextfree=%d", nextfree));
+ strmax = tp->ext_Strings + extcnt;
+@@ -742,7 +762,7 @@
+
+ TRACE_OUT(("WRITE %d numbers @%d", tp->ext_Numbers, *offset));
+ if (tp->ext_Numbers) {
+- convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers);
++ convert_shorts(buf, tp->Numbers + NUMCOUNT, (size_t) tp->ext_Numbers);
+ if (Write(buf, 2, tp->ext_Numbers) != tp->ext_Numbers)
+ return (ERR);
+ }
+Index: ncurses/trace/lib_trace.c
+Prereq: 1.76
+--- ncurses-5.9/ncurses/trace/lib_trace.c 2010-12-19 01:21:19.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/lib_trace.c 2013-07-06 19:42:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -47,7 +47,7 @@
+
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_trace.c,v 1.76 2010/12/19 01:21:19 tom Exp $")
++MODULE_ID("$Id: lib_trace.c,v 1.82 2013/07/06 19:42:09 tom Exp $")
+
+ NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
+
+@@ -103,9 +103,9 @@
+ }
+ TracePath[size] = '\0';
+ assert(strlen(TracePath) <= size);
+- strcat(TracePath, "/trace");
++ _nc_STRCAT(TracePath, "/trace", sizeof(TracePath));
+ if (_nc_is_dir_path(TracePath)) {
+- strcat(TracePath, ".log");
++ _nc_STRCAT(TracePath, ".log", sizeof(TracePath));
+ }
+ }
+
+@@ -121,7 +121,7 @@
+ * end of each line. This is useful in case the program dies.
+ */
+ #if HAVE_SETVBUF /* ANSI */
+- (void) setvbuf(TraceFP, (char *) 0, _IOLBF, 0);
++ (void) setvbuf(TraceFP, (char *) 0, _IOLBF, (size_t) 0);
+ #elif HAVE_SETBUF /* POSIX */
+ (void) setbuffer(TraceFP, (char *) 0);
+ #endif
+@@ -185,9 +185,9 @@
+ if ((pthread_self))
+ # endif
+ #ifdef __MINGW32__
+- fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self().p);
++ fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self().p);
+ #else
+- fprintf(TraceFP, "%#lx:", (long) (void *) pthread_self());
++ fprintf(TraceFP, "%#lx:", (long) (intptr_t) pthread_self());
+ #endif
+ #endif
+ if (before || after) {
+@@ -218,7 +218,7 @@
+
+ /* Trace 'bool' return-values */
+ NCURSES_EXPORT(NCURSES_BOOL)
+-_nc_retrace_bool(NCURSES_BOOL code)
++_nc_retrace_bool(int code)
+ {
+ T((T_RETURN("%s"), code ? "TRUE" : "FALSE"));
+ return code;
+@@ -226,10 +226,10 @@
+
+ /* Trace 'char' return-values */
+ NCURSES_EXPORT(char)
+-_nc_retrace_char(char code)
++_nc_retrace_char(int code)
+ {
+ T((T_RETURN("%c"), code));
+- return code;
++ return (char) code;
+ }
+
+ /* Trace 'int' return-values */
+@@ -339,8 +339,9 @@
+ _nc_va_tracef(fmt, ap);
+ va_end(ap);
+
+- if (--(_nc_globals.nested_tracef) == 0)
++ if (--(_nc_globals.nested_tracef) == 0) {
+ _nc_unlock_global(tracef);
++ }
+ }
+ #endif /* USE_REENTRANT */
+
+Index: ncurses/trace/lib_traceatr.c
+Prereq: 1.74
+--- ncurses-5.9/ncurses/trace/lib_traceatr.c 2011-01-22 19:48:01.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/lib_traceatr.c 2014-02-01 22:09:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -43,10 +43,13 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_traceatr.c,v 1.74 2011/01/22 19:48:01 tom Exp $")
++MODULE_ID("$Id: lib_traceatr.c,v 1.81 2014/02/01 22:09:27 tom Exp $")
+
+ #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
+
++#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size)
++#define COLOR_BUF_SIZE(num) (sizeof(my_buffer[num]))
++
+ #ifdef TRACE
+
+ static const char l_brace[] = StringOf(L_BRACE);
+@@ -65,9 +68,12 @@
+ my_cached = c;
+ my_select = !my_select;
+ if (c == COLOR_DEFAULT)
+- strcpy(my_buffer[my_select], "default");
++ _nc_STRCPY(my_buffer[my_select], "default",
++ COLOR_BUF_SIZE(my_select));
+ else
+- sprintf(my_buffer[my_select], "color%d", c);
++ _nc_SPRINTF(my_buffer[my_select],
++ _nc_SLIMIT(COLOR_BUF_SIZE(my_select))
++ "color%d", c);
+ }
+ return my_buffer[my_select];
+ }
+@@ -97,6 +103,9 @@
+ { A_CHARTEXT, "A_CHARTEXT" },
+ { A_NORMAL, "A_NORMAL" },
+ { A_COLOR, "A_COLOR" },
++#if USE_ITALIC
++ { A_ITALIC, "A_ITALIC" },
++#endif
+ /* *INDENT-ON* */
+
+ }
+@@ -120,14 +129,14 @@
+ ;
+ size_t n;
+ char temp[80];
+- char *result = _nc_trace_buf(bufnum, BUFSIZ);
++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
+
+ if (result != 0) {
+ unsigned save_nc_tracing = _nc_tracing;
+
+ _nc_tracing = 0;
+
+- strcpy(result, l_brace);
++ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
+
+ for (n = 0; n < SIZEOF(names); n++) {
+ if ((newmode & names[n].val) != 0) {
+@@ -139,18 +148,20 @@
+ short pairnum = (short) PairNumber(newmode);
+ #ifdef USE_TERMLIB
+ /* pair_content lives in libncurses */
+- (void) sprintf(temp, "{%d}", pairnum);
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "{%d}", pairnum);
+ #else
+- short fg, bg;
++ NCURSES_COLOR_T fg, bg;
+
+ if (pair_content(pairnum, &fg, &bg) == OK) {
+- (void) sprintf(temp,
+- "{%d = {%s, %s}}",
+- pairnum,
+- COLOR_OF(fg),
+- COLOR_OF(bg));
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "{%d = {%s, %s}}",
++ pairnum,
++ COLOR_OF(fg),
++ COLOR_OF(bg));
+ } else {
+- (void) sprintf(temp, "{%d}", pairnum);
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "{%d}", pairnum);
+ }
+ #endif
+ result = _nc_trace_bufcat(bufnum, temp);
+@@ -243,7 +254,7 @@
+ #if NCURSES_SP_FUNCS
+ (void) sp;
+ #endif
+- if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
++ if (SP_PARM != 0 && (attr & A_ALTCHARSET) && (acs_chars != 0)) {
+ char *cp;
+ char *found = 0;
+ const ALT_NAMES *strp;
+@@ -271,10 +282,10 @@
+ _tracechtype2(int bufnum, chtype ch)
+ {
+ const char *found;
+- char *result = _nc_trace_buf(bufnum, BUFSIZ);
++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
+
+ if (result != 0) {
+- strcpy(result, l_brace);
++ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
+ if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
+ (void) _nc_trace_bufcat(bufnum, found);
+ } else
+@@ -311,12 +322,12 @@
+ NCURSES_EXPORT(char *)
+ _tracecchar_t2(int bufnum, const cchar_t *ch)
+ {
+- char *result = _nc_trace_buf(bufnum, BUFSIZ);
++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
+ attr_t attr;
+ const char *found;
+
+ if (result != 0) {
+- strcpy(result, l_brace);
++ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
+ if (ch != 0) {
+ attr = AttrOfD(ch);
+ if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != 0) {
+Index: ncurses/trace/lib_tracebits.c
+Prereq: 1.19
+--- ncurses-5.9/ncurses/trace/lib_tracebits.c 2011-01-09 00:23:03.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/lib_tracebits.c 2012-06-09 19:55:46.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,11 +34,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_tracebits.c,v 1.19 2011/01/09 00:23:03 tom Exp $")
+-
+-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
++MODULE_ID("$Id: lib_tracebits.c,v 1.23 2012/06/09 19:55:46 tom Exp $")
+
+ #if HAVE_SYS_TERMIO_H
+ #include <sys/termio.h> /* needed for ISC */
+@@ -80,22 +76,24 @@
+ const char *name;
+ } BITNAMES;
+
++#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size)
++
+ static void
+ lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val)
+ {
+ const BITNAMES *sp;
+
+- (void) strcat(buf, label);
+- (void) strcat(buf, ": {");
++ _nc_STRCAT(buf, label, TRACE_BUF_SIZE(0));
++ _nc_STRCAT(buf, ": {", TRACE_BUF_SIZE(0));
+ for (sp = table; sp->name; sp++)
+ if (sp->val != 0
+ && (val & sp->val) == sp->val) {
+- (void) strcat(buf, sp->name);
+- (void) strcat(buf, ", ");
++ _nc_STRCAT(buf, sp->name, TRACE_BUF_SIZE(0));
++ _nc_STRCAT(buf, ", ", TRACE_BUF_SIZE(0));
+ }
+ if (buf[strlen(buf) - 2] == ',')
+ buf[strlen(buf) - 2] = '\0';
+- (void) strcat(buf, "} ");
++ _nc_STRCAT(buf, "} ", TRACE_BUF_SIZE(0));
+ }
+
+ NCURSES_EXPORT(char *)
+@@ -192,7 +190,7 @@
+ CS_DATA(CS8),
+ };
+ const char *result = "CSIZE? ";
+- int value = (tty->c_cflag & CSIZE);
++ int value = (int) (tty->c_cflag & CSIZE);
+ unsigned n;
+
+ if (value != 0) {
+@@ -203,7 +201,7 @@
+ }
+ }
+ }
+- strcat(buf, result);
++ _nc_STRCAT(buf, result, TRACE_BUF_SIZE(0));
+ }
+ #endif
+
+Index: ncurses/trace/lib_tracechr.c
+Prereq: 1.20
+--- ncurses-5.9/ncurses/trace/lib_tracechr.c 2009-04-18 22:48:29.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/lib_tracechr.c 2012-02-22 22:40:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,10 +39,12 @@
+
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_tracechr.c,v 1.20 2009/04/18 22:48:29 tom Exp $")
++MODULE_ID("$Id: lib_tracechr.c,v 1.22 2012/02/22 22:40:24 tom Exp $")
+
+ #ifdef TRACE
+
++#define MyBufSize sizeof(_nc_globals.tracechr_buf)
++
+ NCURSES_EXPORT(char *)
+ _nc_tracechar(SCREEN *sp, int ch)
+ {
+@@ -55,19 +57,22 @@
+ name = safe_keyname(SP_PARM, ch);
+ if (name == 0 || *name == '\0')
+ name = "NULL";
+- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
++ "'%.30s' = %#03o", name, ch);
+ } else if (!is8bits(ch) || !isprint(UChar(ch))) {
+ /*
+ * workaround for glibc bug:
+ * sprintf changes the result from unctrl() to an empty string if it
+ * does not correspond to a valid multibyte sequence.
+ */
+- (void) sprintf(MyBuffer, "%#03o", ch);
++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
++ "%#03o", ch);
+ } else {
+ name = safe_unctrl(SP_PARM, (chtype) ch);
+ if (name == 0 || *name == 0)
+ name = "null"; /* shouldn't happen */
+- (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
++ _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize)
++ "'%.30s' = %#03o", name, ch);
+ }
+ return (MyBuffer);
+ }
+Index: ncurses/trace/lib_tracedmp.c
+Prereq: 1.32
+--- ncurses-5.9/ncurses/trace/lib_tracedmp.c 2009-04-18 21:01:38.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/lib_tracedmp.c 2012-10-27 20:54:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_tracedmp.c,v 1.32 2009/04/18 21:01:38 tom Exp $")
++MODULE_ID("$Id: lib_tracedmp.c,v 1.34 2012/10/27 20:54:42 tom Exp $")
+
+ #ifdef TRACE
+
+@@ -70,6 +70,8 @@
+ if (++width + 1 > (int) my_length) {
+ my_length = (unsigned) (2 * (width + 1));
+ my_buffer = typeRealloc(char, my_length, my_buffer);
++ if (my_buffer == 0)
++ return;
+ }
+
+ for (n = 0; n <= win->_maxy; ++n) {
+@@ -111,7 +113,7 @@
+ if (multicolumn) {
+ ep = my_buffer;
+ for (j = 0; j < width; ++j) {
+- chtype test = WidecExt(win->_line[n].text[j]);
++ int test = WidecExt(win->_line[n].text[j]);
+ if (test) {
+ ep[j] = (char) (test + '0');
+ } else {
+Index: ncurses/trace/lib_tracemse.c
+Prereq: 1.18
+--- ncurses-5.9/ncurses/trace/lib_tracemse.c 2011-01-22 19:48:08.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/lib_tracemse.c 2014-10-10 09:06:26.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -38,16 +38,22 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_tracemse.c,v 1.18 2011/01/22 19:48:08 tom Exp $")
++MODULE_ID("$Id: lib_tracemse.c,v 1.22 2014/10/10 09:06:26 tom Exp $")
+
+ #ifdef TRACE
+
+ #define my_buffer sp->tracemse_buf
+
+-static char *
+-_trace_mmask_t(SCREEN *sp, mmask_t code)
++NCURSES_EXPORT(char *)
++_nc_trace_mmask_t(SCREEN *sp, mmask_t code)
+ {
+-#define SHOW(m, s) if ((code & m) == m) strcat(strcat(my_buffer, s), ", ")
++#define SHOW(m, s) \
++ if ((code & m) == m) { \
++ size_t n = strlen(my_buffer); \
++ if (n && (my_buffer[n-1] != '{')) \
++ _nc_STRCAT(my_buffer, ", ", sizeof(my_buffer)); \
++ _nc_STRCAT(my_buffer, s, sizeof(my_buffer)); \
++ }
+
+ SHOW(BUTTON1_RELEASED, "release-1");
+ SHOW(BUTTON1_PRESSED, "press-1");
+@@ -110,23 +116,33 @@
+ NCURSES_EXPORT(char *)
+ _nc_tracemouse(SCREEN *sp, MEVENT const *ep)
+ {
+- (void) sprintf(my_buffer, TRACEMSE_FMT,
+- ep->id,
+- ep->x,
+- ep->y,
+- ep->z,
+- (unsigned long) ep->bstate);
++ char *result = 0;
+
+- (void) _trace_mmask_t(sp, ep->bstate);
+- (void) strcat(my_buffer, "}");
+- return (my_buffer);
++ if (sp != 0) {
++ _nc_SPRINTF(my_buffer, _nc_SLIMIT(sizeof(my_buffer))
++ TRACEMSE_FMT,
++ ep->id,
++ ep->x,
++ ep->y,
++ ep->z,
++ (unsigned long) ep->bstate);
++
++ (void) _nc_trace_mmask_t(sp, ep->bstate);
++ _nc_STRCAT(my_buffer, "}", sizeof(my_buffer));
++ result = (my_buffer);
++ }
++ return result;
+ }
+
+ NCURSES_EXPORT(mmask_t)
+ _nc_retrace_mmask_t(SCREEN *sp, mmask_t code)
+ {
+- *my_buffer = '\0';
+- T((T_RETURN("{%s}"), _trace_mmask_t(sp, code)));
++ if (sp != 0) {
++ *my_buffer = '\0';
++ T((T_RETURN("{%s}"), _nc_trace_mmask_t(sp, code)));
++ } else {
++ T((T_RETURN("{?}")));
++ }
+ return code;
+ }
+
+Index: ncurses/trace/trace_buf.c
+Prereq: 1.17
+--- ncurses-5.9/ncurses/trace/trace_buf.c 2011-01-22 19:48:16.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/trace_buf.c 2012-02-22 22:34:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: trace_buf.c,v 1.17 2011/01/22 19:48:16 tom Exp $")
++MODULE_ID("$Id: trace_buf.c,v 1.20 2012/02/22 22:34:31 tom Exp $")
+
+ #ifdef TRACE
+
+@@ -103,13 +103,14 @@
+ NCURSES_EXPORT(char *)
+ _nc_trace_bufcat(int bufnum, const char *value)
+ {
+- char *buffer = _nc_trace_alloc(bufnum, 0);
++ char *buffer = _nc_trace_alloc(bufnum, (size_t) 0);
+ if (buffer != 0) {
+ size_t have = strlen(buffer);
++ size_t need = strlen(value) + have;
+
+- buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value));
++ buffer = _nc_trace_alloc(bufnum, 1 + need);
+ if (buffer != 0)
+- (void) strcpy(buffer + have, value);
++ _nc_STRCPY(buffer + have, value, need);
+
+ }
+ return buffer;
+Index: ncurses/trace/trace_tries.c
+Prereq: 1.16
+--- ncurses-5.9/ncurses/trace/trace_tries.c 2011-01-09 00:23:27.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/trace_tries.c 2012-10-27 20:50:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2009,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: trace_tries.c,v 1.16 2011/01/09 00:23:27 tom Exp $")
++MODULE_ID("$Id: trace_tries.c,v 1.17 2012/10/27 20:50:50 tom Exp $")
+
+ #ifdef TRACE
+ #define my_buffer _nc_globals.tracetry_buf
+@@ -49,28 +49,31 @@
+ my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length);
+ }
+
+- while (tree != 0) {
+- if ((my_buffer[level] = tree->ch) == 0)
+- my_buffer[level] = 128;
+- my_buffer[level + 1] = 0;
+- if (tree->value != 0) {
+- _tracef("%5d: %s (%s)", tree->value,
+- _nc_visbuf((char *) my_buffer), keyname(tree->value));
++ if (my_buffer != 0) {
++ while (tree != 0) {
++ if ((my_buffer[level] = tree->ch) == 0)
++ my_buffer[level] = 128;
++ my_buffer[level + 1] = 0;
++ if (tree->value != 0) {
++ _tracef("%5d: %s (%s)", tree->value,
++ _nc_visbuf((char *) my_buffer), keyname(tree->value));
++ }
++ if (tree->child)
++ recur_tries(tree->child, level + 1);
++ tree = tree->sibling;
+ }
+- if (tree->child)
+- recur_tries(tree->child, level + 1);
+- tree = tree->sibling;
+ }
+ }
+
+ NCURSES_EXPORT(void)
+ _nc_trace_tries(TRIES * tree)
+ {
+- my_buffer = typeMalloc(unsigned char, my_length = 80);
+- _tracef("BEGIN tries %p", (void *) tree);
+- recur_tries(tree, 0);
+- _tracef(". . . tries %p", (void *) tree);
+- free(my_buffer);
++ if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != 0) {
++ _tracef("BEGIN tries %p", (void *) tree);
++ recur_tries(tree, 0);
++ _tracef(". . . tries %p", (void *) tree);
++ free(my_buffer);
++ }
+ }
+
+ #else
+Index: ncurses/trace/varargs.c
+Prereq: 1.8
+--- ncurses-5.9/ncurses/trace/varargs.c 2008-11-16 00:19:59.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/varargs.c 2012-10-27 21:03:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2008,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+
+ #include <ctype.h>
+
+-MODULE_ID("$Id: varargs.c,v 1.8 2008/11/16 00:19:59 juergen Exp $")
++MODULE_ID("$Id: varargs.c,v 1.11 2012/10/27 21:03:28 tom Exp $")
+
+ #ifdef TRACE
+
+@@ -149,25 +149,32 @@
+ param = buffer;
+ switch (used) {
+ case atInteger:
+- sprintf(buffer, "%d", ival);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%d", ival);
+ break;
+ case atFloat:
+- sprintf(buffer, "%f", fval);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%f", fval);
+ break;
+ case atPoint:
+- sprintf(buffer, "%p", pval);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%p", pval);
+ break;
+ case atString:
+ param = _nc_visbuf2(1, sval);
+ break;
+ case atUnknown:
+ default:
+- strcpy(buffer, "?");
++ _nc_STRCPY(buffer, "?", sizeof(buffer));
+ break;
+ }
+ MyLength += strlen(param) + 2;
+ MyBuffer = typeRealloc(char, MyLength, MyBuffer);
+- sprintf(MyBuffer + strlen(MyBuffer), ", %s", param);
++ if (MyBuffer != 0) {
++ _nc_SPRINTF(MyBuffer + strlen(MyBuffer),
++ _nc_SLIMIT(MyLength - strlen(MyBuffer))
++ ", %s", param);
++ }
+ }
+ }
+ used = atUnknown;
+@@ -177,7 +184,7 @@
+ }
+ }
+
+- return (MyBuffer);
++ return (MyBuffer ? MyBuffer : dummy);
+ }
+ #else
+ EMPTY_MODULE(_nc_varargs)
+Index: ncurses/trace/visbuf.c
+Prereq: 1.37
+--- ncurses-5.9/ncurses/trace/visbuf.c 2010-05-29 18:51:41.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/trace/visbuf.c 2014-09-25 08:51:13.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,12 +42,12 @@
+ #include <tic.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: visbuf.c,v 1.37 2010/05/29 18:51:41 tom Exp $")
++MODULE_ID("$Id: visbuf.c,v 1.44 2014/09/25 08:51:13 tom Exp $")
+
+ #define NUM_VISBUFS 4
+
+ #define NormalLen(len) (size_t) (((size_t)(len) + 1) * 4)
+-#define WideLen(len) (size_t) (((size_t)(len) + 1) * 4 * MB_CUR_MAX)
++#define WideLen(len) (size_t) (((size_t)(len) + 1) * 4 * (size_t) MB_CUR_MAX)
+
+ #ifdef TRACE
+ static const char d_quote[] = StringOf(D_QUOTE);
+@@ -55,13 +55,21 @@
+ static const char r_brace[] = StringOf(R_BRACE);
+ #endif
+
++#if USE_STRING_HACKS && HAVE_SNPRINTF
++#define VisChar(tp, chr, limit) _nc_vischar(tp, chr, limit)
++#define LIMIT_ARG ,size_t limit
++#else
++#define VisChar(tp, chr, limit) _nc_vischar(tp, chr)
++#define LIMIT_ARG /* nothing */
++#endif
++
+ static char *
+-_nc_vischar(char *tp, unsigned c)
++_nc_vischar(char *tp, unsigned c LIMIT_ARG)
+ {
+ if (c == '"' || c == '\\') {
+ *tp++ = '\\';
+ *tp++ = (char) c;
+- } else if (is7bits(c) && (isgraph(c) || c == ' ')) {
++ } else if (is7bits((int) c) && (isgraph((int) c) || c == ' ')) {
+ *tp++ = (char) c;
+ } else if (c == '\n') {
+ *tp++ = '\\';
+@@ -84,7 +92,8 @@
+ *tp++ = '^';
+ *tp++ = (char) ('@' + c);
+ } else {
+- sprintf(tp, "\\%03lo", (unsigned long) ChCharOf(c));
++ _nc_SPRINTF(tp, _nc_SLIMIT(limit)
++ "\\%03lo", (unsigned long) ChCharOf(c));
+ tp += strlen(tp);
+ }
+ *tp = 0;
+@@ -97,6 +106,7 @@
+ const char *vbuf = 0;
+ char *tp;
+ int c;
++ int count;
+
+ if (buf == 0)
+ return ("(null)");
+@@ -106,6 +116,7 @@
+ if (len < 0)
+ len = (int) strlen(buf);
+
++ count = len;
+ #ifdef TRACE
+ vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len));
+ #else
+@@ -124,8 +135,8 @@
+ #endif
+ if (tp != 0) {
+ *tp++ = D_QUOTE;
+- while ((--len >= 0) && (c = *buf++) != '\0') {
+- tp = _nc_vischar(tp, UChar(c));
++ while ((--count >= 0) && (c = *buf++) != '\0') {
++ tp = VisChar(tp, UChar(c), NormalLen(len));
+ }
+ *tp++ = D_QUOTE;
+ *tp = '\0';
+@@ -175,6 +186,7 @@
+ const char *vbuf;
+ char *tp;
+ wchar_t c;
++ int count;
+
+ if (buf == 0)
+ return ("(null)");
+@@ -182,6 +194,7 @@
+ if (len < 0)
+ len = (int) wcslen(buf);
+
++ count = len;
+ #ifdef TRACE
+ vbuf = tp = _nc_trace_buf(bufnum, WideLen(len));
+ #else
+@@ -193,15 +206,16 @@
+ #endif
+ if (tp != 0) {
+ *tp++ = D_QUOTE;
+- while ((--len >= 0) && (c = *buf++) != '\0') {
++ while ((--count >= 0) && (c = *buf++) != '\0') {
+ char temp[CCHARW_MAX + 80];
+ int j = wctomb(temp, c), k;
+ if (j <= 0) {
+- sprintf(temp, "\\u%08X", (unsigned) c);
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
++ "\\u%08X", (unsigned) c);
+ j = (int) strlen(temp);
+ }
+ for (k = 0; k < j; ++k) {
+- tp = _nc_vischar(tp, UChar(temp[k]));
++ tp = VisChar(tp, UChar(temp[k]), WideLen(len));
+ }
+ }
+ *tp++ = D_QUOTE;
+@@ -248,10 +262,12 @@
+ else
+ mybuf = typeMalloc(wchar_t, mylen);
+ }
+- for (n = 0; buf[n] != 0; ++n) {
+- mybuf[n] = (wchar_t) buf[n];
++ if (mybuf != 0) {
++ for (n = 0; buf[n] != 0; ++n) {
++ mybuf[n] = (wchar_t) buf[n];
++ }
++ mybuf[n] = L'\0';
+ }
+- mybuf[n] = L'\0';
+
+ return _nc_viswbuf2(0, mybuf);
+ }
+@@ -261,7 +277,7 @@
+ NCURSES_EXPORT(const char *)
+ _nc_viscbuf2(int bufnum, const NCURSES_CH_T * buf, int len)
+ {
+- char *result = _nc_trace_buf(bufnum, BUFSIZ);
++ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
+ int first;
+ const char *found;
+
+@@ -315,7 +331,7 @@
+ break;
+ for (k = 0; k < PUTC_n; k++) {
+ char temp[80];
+- _nc_vischar(temp, UChar(PUTC_buf[k]));
++ VisChar(temp, UChar(PUTC_buf[k]), sizeof(temp));
+ (void) _nc_trace_bufcat(bufnum, temp);
+ }
+ }
+@@ -323,8 +339,8 @@
+ #else
+ {
+ char temp[80];
+- _nc_vischar(temp, UChar(buf[j]));
+- result = _nc_trace_bufcat(bufnum, temp);
++ VisChar(temp, UChar(buf[j]), sizeof(temp));
++ (void) _nc_trace_bufcat(bufnum, temp);
+ }
+ #endif /* USE_WIDEC_SUPPORT */
+ }
+Index: ncurses/tty/hardscroll.c
+Prereq: 1.47
+--- ncurses-5.9/ncurses/tty/hardscroll.c 2010-04-24 23:46:47.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/hardscroll.c 2012-10-17 09:01:10.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -147,7 +147,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: hardscroll.c,v 1.47 2010/04/24 23:46:47 tom Exp $")
++MODULE_ID("$Id: hardscroll.c,v 1.51 2012/10/17 09:01:10 tom Exp $")
+
+ #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
+
+@@ -173,9 +173,9 @@
+ # if USE_HASHMAP
+ # define oldnums(sp) (sp)->_oldnum_list
+ # define OLDNUM(sp,n) oldnums(sp)[n]
+-# else /* !USE_HASHMAP */
++# else /* !USE_HASHMAP */
+ # define OLDNUM(sp,n) NewScreen(sp)->_line[n].oldindex
+-# endif /* !USE_HASHMAP */
++# endif /* !USE_HASHMAP */
+
+ #define OLDNUM_SIZE(sp) (sp)->_oldnum_size
+
+@@ -193,14 +193,20 @@
+ #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
+ #if USE_HASHMAP
+ /* get enough storage */
+- if (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) {
++ assert(OLDNUM_SIZE(SP_PARM) >= 0);
++ assert(screen_lines(SP_PARM) > 0);
++ if ((oldnums(SP_PARM) == 0)
++ || (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))) {
++ int need_lines = ((OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))
++ ? screen_lines(SP_PARM)
++ : OLDNUM_SIZE(SP_PARM));
+ int *new_oldnums = typeRealloc(int,
+- (size_t) screen_lines(SP_PARM),
++ (size_t) need_lines,
+ oldnums(SP_PARM));
+ if (!new_oldnums)
+ return;
+ oldnums(SP_PARM) = new_oldnums;
+- OLDNUM_SIZE(SP_PARM) = screen_lines(SP_PARM);
++ OLDNUM_SIZE(SP_PARM) = need_lines;
+ }
+ /* calculate the indices */
+ NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_ARG);
+@@ -302,7 +308,9 @@
+
+ *buf = '\0';
+ for (n = 0; n < screen_lines(SP_PARM); n++)
+- (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(SP_PARM, n));
++ _nc_SPRINTF(buf + strlen(buf),
++ _nc_SLIMIT(want - strlen(buf))
++ " %02d", OLDNUM(SP_PARM, n));
+ TR(TRACE_UPDATE | TRACE_MOVE, ("virt %s", buf));
+ free(buf);
+ }
+Index: ncurses/tty/hashmap.c
+Prereq: 1.62
+--- ncurses-5.9/ncurses/tty/hashmap.c 2010-04-24 23:46:07.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/hashmap.c 2014-04-26 18:48:44.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -73,7 +73,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: hashmap.c,v 1.62 2010/04/24 23:46:07 tom Exp $")
++MODULE_ID("$Id: hashmap.c,v 1.64 2014/04/26 18:48:44 juergen Exp $")
+
+ #ifdef HASHDEBUG
+
+@@ -163,7 +163,7 @@
+ * effective. 'blank' indicates whether the line 'to' would become blank.
+ */
+ static NCURSES_INLINE bool
+-cost_effective(SCREEN *sp, const int from, const int to, const bool blank)
++cost_effective(SCREEN *sp, const int from, const int to, const int blank)
+ {
+ int new_from;
+
+@@ -492,7 +492,7 @@
+ CharOf(oldtext[n][0]) = CharOf(newtext[n][0]) = '.';
+ }
+
+- if (isatty(fileno(stdin)))
++ if (NC_ISATTY(fileno(stdin)))
+ usage();
+
+ #ifdef TRACE
+Index: ncurses/tty/lib_mvcur.c
+Prereq: 1.126
+--- ncurses-5.9/ncurses/tty/lib_mvcur.c 2011-01-22 19:48:21.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/lib_mvcur.c 2014-04-26 18:47:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -159,7 +159,7 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_mvcur.c,v 1.126 2011/01/22 19:48:21 tom Exp $")
++MODULE_ID("$Id: lib_mvcur.c,v 1.135 2014/04/26 18:47:20 juergen Exp $")
+
+ #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */
+
+@@ -176,6 +176,9 @@
+ static float diff;
+ #endif /* MAIN */
+
++#undef NCURSES_OUTC_FUNC
++#define NCURSES_OUTC_FUNC myOutCh
++
+ #define OPT_SIZE 512
+
+ static int normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt);
+@@ -274,10 +277,9 @@
+ /* Set the scroll-region to a known state (the default) */
+ {
+ if (change_scroll_region) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "change_scroll_region",
+- TPARM_2(change_scroll_region,
+- 0, screen_lines(SP_PARM) - 1));
++ NCURSES_PUTP2("change_scroll_region",
++ TPARM_2(change_scroll_region,
++ 0, screen_lines(SP_PARM) - 1));
+ }
+ }
+
+@@ -285,14 +287,12 @@
+ NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_DCL0)
+ /* what to do at initialization time and after each shellout */
+ {
+- if (SP_PARM && !IsTermInfo(SP_PARM))
++ if (!SP_PARM || !IsTermInfo(SP_PARM))
+ return;
+
+ /* initialize screen for cursor access */
+ if (enter_ca_mode) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "enter_ca_mode",
+- enter_ca_mode);
++ NCURSES_PUTP2("enter_ca_mode", enter_ca_mode);
+ }
+
+ /*
+@@ -327,13 +327,14 @@
+ NCURSES_SP_NAME(_nc_mvcur_init) (NCURSES_SP_DCL0)
+ /* initialize the cost structure */
+ {
+- if (SP_PARM->_ofp && isatty(fileno(SP_PARM->_ofp)))
++ if (SP_PARM->_ofp && NC_ISATTY(fileno(SP_PARM->_ofp))) {
+ SP_PARM->_char_padding = ((BAUDBYTE * 1000 * 10)
+ / (BAUDRATE(SP_PARM) > 0
+ ? BAUDRATE(SP_PARM)
+ : 9600));
+- else
++ } else {
+ SP_PARM->_char_padding = 1; /* must be nonzero */
++ }
+ if (SP_PARM->_char_padding <= 0)
+ SP_PARM->_char_padding = 1; /* must be nonzero */
+ TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP_PARM->_char_padding));
+@@ -481,9 +482,7 @@
+ }
+
+ if (exit_ca_mode) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "exit_ca_mode",
+- exit_ca_mode);
++ NCURSES_PUTP2("exit_ca_mode", exit_ca_mode);
+ }
+ /*
+ * Reset terminal's tab counter. There's a long-time bug that
+@@ -549,7 +548,7 @@
+ int from_x,
+ int to_y,
+ int to_x,
+- bool ovw)
++ int ovw)
+ /* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */
+ {
+ string_desc save;
+@@ -770,7 +769,10 @@
+ */
+
+ static NCURSES_INLINE int
+-onscreen_mvcur(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew, bool ovw)
++onscreen_mvcur(NCURSES_SP_DCLx
++ int yold, int xold,
++ int ynew, int xnew, int ovw,
++ NCURSES_SP_OUTC myOutCh)
+ /* onscreen move from (yold, xold) to (ynew, xnew) */
+ {
+ string_desc result;
+@@ -935,7 +937,7 @@
+ if (usecost != INFINITY) {
+ TPUTS_TRACE("mvcur");
+ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+- buffer, 1, NCURSES_SP_NAME(_nc_outch));
++ buffer, 1, myOutCh);
+ SP_PARM->_cursrow = ynew;
+ SP_PARM->_curscol = xnew;
+ return (OK);
+@@ -943,9 +945,15 @@
+ return (ERR);
+ }
+
+-NCURSES_EXPORT(int)
+-TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew)
+-/* optimized cursor move from (yold, xold) to (ynew, xnew) */
++/*
++ * optimized cursor move from (yold, xold) to (ynew, xnew)
++ */
++static int
++_nc_real_mvcur(NCURSES_SP_DCLx
++ int yold, int xold,
++ int ynew, int xnew,
++ NCURSES_SP_OUTC myOutCh,
++ int ovw)
+ {
+ NCURSES_CH_T oldattr;
+ int code;
+@@ -994,20 +1002,18 @@
+
+ if (l > 0) {
+ if (carriage_return) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "carriage_return",
+- carriage_return);
+- } else
+- NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\r');
++ NCURSES_PUTP2("carriage_return", carriage_return);
++ } else {
++ myOutCh(NCURSES_SP_ARGx '\r');
++ }
+ xold = 0;
+
+ while (l > 0) {
+ if (newline) {
+- NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+- "newline",
+- newline);
+- } else
+- NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\n');
++ NCURSES_PUTP2("newline", newline);
++ } else {
++ myOutCh(NCURSES_SP_ARGx '\n');
++ }
+ l--;
+ }
+ }
+@@ -1027,7 +1033,7 @@
+ ynew = screen_lines(SP_PARM) - 1;
+
+ /* destination location is on screen now */
+- code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, TRUE);
++ code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, ovw, myOutCh);
+
+ /*
+ * Restore attributes if we disabled them before moving.
+@@ -1042,13 +1048,66 @@
+ returnCode(code);
+ }
+
+-#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER)
++/*
++ * These entrypoints are used within the library.
++ */
++NCURSES_EXPORT(int)
++NCURSES_SP_NAME(_nc_mvcur) (NCURSES_SP_DCLx
++ int yold, int xold,
++ int ynew, int xnew)
++{
++ return _nc_real_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew,
++ NCURSES_SP_NAME(_nc_outch),
++ TRUE);
++}
++
++#if NCURSES_SP_FUNCS
++NCURSES_EXPORT(int)
++_nc_mvcur(int yold, int xold,
++ int ynew, int xnew)
++{
++ return NCURSES_SP_NAME(_nc_mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew);
++}
++#endif
++
++#if defined(USE_TERM_DRIVER)
++/*
++ * The terminal driver does not support the external "mvcur()".
++ */
++NCURSES_EXPORT(int)
++TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew)
++{
++ return _nc_real_mvcur(NCURSES_SP_ARGx
++ yold, xold,
++ ynew, xnew,
++ NCURSES_SP_NAME(_nc_outch),
++ TRUE);
++}
++
++#else /* !USE_TERM_DRIVER */
++
++/*
++ * These entrypoints support users of the library.
++ */
++NCURSES_EXPORT(int)
++NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx int yold, int xold, int ynew,
++ int xnew)
++{
++ return _nc_real_mvcur(NCURSES_SP_ARGx
++ yold, xold,
++ ynew, xnew,
++ NCURSES_SP_NAME(_nc_putchar),
++ FALSE);
++}
++
++#if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+ mvcur(int yold, int xold, int ynew, int xnew)
+ {
+ return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew);
+ }
+ #endif
++#endif /* USE_TERM_DRIVER */
+
+ #if defined(TRACE) || defined(NCURSES_TEST)
+ NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
+@@ -1128,7 +1187,6 @@
+ baudrate();
+
+ _nc_mvcur_init();
+- NC_BUFFERED(FALSE);
+
+ (void) puts("The mvcur tester. Type ? for help");
+
+Index: ncurses/tty/lib_tstp.c
+Prereq: 1.41
+--- ncurses-5.9/ncurses/tty/lib_tstp.c 2010-05-15 21:31:12.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/lib_tstp.c 2014-04-26 18:47:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,11 +42,7 @@
+
+ #include <SigAction.h>
+
+-#if SVR4_ACTION && !defined(_POSIX_SOURCE)
+-#define _POSIX_SOURCE
+-#endif
+-
+-MODULE_ID("$Id: lib_tstp.c,v 1.41 2010/05/15 21:31:12 tom Exp $")
++MODULE_ID("$Id: lib_tstp.c,v 1.48 2014/04/26 18:47:35 juergen Exp $")
+
+ #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
+ #define USE_SIGTSTP 1
+@@ -138,7 +134,7 @@
+
+ #if USE_SIGTSTP
+ static void
+-tstp(int dummy GCC_UNUSED)
++handle_SIGTSTP(int dummy GCC_UNUSED)
+ {
+ SCREEN *sp = CURRENT_SCREEN;
+ sigset_t mask, omask;
+@@ -148,7 +144,8 @@
+ int sigttou_blocked;
+ #endif
+
+- T(("tstp() called"));
++ _nc_globals.have_sigtstp = 1;
++ T(("handle_SIGTSTP() called"));
+
+ /*
+ * The user may have changed the prog_mode tty bits, so save them.
+@@ -239,21 +236,24 @@
+ #endif /* USE_SIGTSTP */
+
+ static void
+-cleanup(int sig)
++handle_SIGINT(int sig)
+ {
+ SCREEN *sp = CURRENT_SCREEN;
+
+ /*
+- * Actually, doing any sort of I/O from within an signal handler is
+- * "unsafe". But we'll _try_ to clean up the screen and terminal
+- * settings on the way out.
++ * Much of this is unsafe from a signal handler. But we'll _try_ to clean
++ * up the screen and terminal settings on the way out.
++ *
++ * There are at least the following problems:
++ * 1) Walking the SCREEN list is unsafe, since all list management
++ * is done without any signal blocking.
++ * 2) On systems which have REENTRANT turned on, set_term() uses
++ * _nc_lock_global() which could deadlock or misbehave in other ways.
++ * 3) endwin() calls all sorts of stuff, many of which use stdio or
++ * other library functions which are clearly unsafe.
+ */
+ if (!_nc_globals.cleanup_nested++
+- && (sig == SIGINT
+-#ifdef SIGQUIT
+- || sig == SIGQUIT
+-#endif
+- )) {
++ && (sig == SIGINT || sig == SIGTERM)) {
+ #if HAVE_SIGACTION || HAVE_SIGVEC
+ sigaction_t act;
+ sigemptyset(&act.sa_mask);
+@@ -267,23 +267,22 @@
+ SCREEN *scan;
+ for (each_screen(scan)) {
+ if (scan->_ofp != 0
+- && isatty(fileno(scan->_ofp))) {
+- scan->_cleanup = TRUE;
++ && NC_ISATTY(fileno(scan->_ofp))) {
+ scan->_outch = NCURSES_SP_NAME(_nc_outch);
+ }
+ set_term(scan);
+ NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG);
+ if (sp)
+- sp->_endwin = FALSE; /* in case we have an atexit! */
++ sp->_endwin = FALSE; /* in case of reuse */
+ }
+ }
+ }
+- exit(EXIT_FAILURE);
++ _exit(EXIT_FAILURE);
+ }
+
+ #if USE_SIGWINCH
+ static void
+-sigwinch(int sig GCC_UNUSED)
++handle_SIGWINCH(int sig GCC_UNUSED)
+ {
+ _nc_globals.have_sigwinch = 1;
+ # if USE_PTHREADS_EINTR
+@@ -301,7 +300,7 @@
+ * handler.
+ */
+ static int
+-CatchIfDefault(int sig, RETSIGTYPE (*handler) (int))
++CatchIfDefault(int sig, void (*handler) (int))
+ {
+ int result;
+ #if HAVE_SIGACTION || HAVE_SIGVEC
+@@ -331,7 +330,7 @@
+ result = FALSE;
+ }
+ #else /* !HAVE_SIGACTION */
+- RETSIGTYPE (*ohandler) (int);
++ void (*ohandler) (int);
+
+ ohandler = signal(sig, SIG_IGN);
+ if (ohandler == SIG_DFL
+@@ -364,7 +363,7 @@
+ * the caller later changes its mind, but that doesn't seem correct.
+ */
+ NCURSES_EXPORT(void)
+-_nc_signal_handler(bool enable)
++_nc_signal_handler(int enable)
+ {
+ T((T_CALLED("_nc_signal_handler(%d)"), enable));
+ #if USE_SIGTSTP /* Xenix 2.x doesn't have SIGTSTP, for example */
+@@ -385,7 +384,7 @@
+ #ifdef SA_RESTART
+ new_sigaction.sa_flags |= SA_RESTART;
+ #endif /* SA_RESTART */
+- new_sigaction.sa_handler = tstp;
++ new_sigaction.sa_handler = handle_SIGTSTP;
+ (void) sigaction(SIGTSTP, &new_sigaction, NULL);
+ } else {
+ ignore_tstp = TRUE;
+@@ -396,10 +395,10 @@
+
+ if (!_nc_globals.init_signals) {
+ if (enable) {
+- CatchIfDefault(SIGINT, cleanup);
+- CatchIfDefault(SIGTERM, cleanup);
++ CatchIfDefault(SIGINT, handle_SIGINT);
++ CatchIfDefault(SIGTERM, handle_SIGINT);
+ #if USE_SIGWINCH
+- CatchIfDefault(SIGWINCH, sigwinch);
++ CatchIfDefault(SIGWINCH, handle_SIGWINCH);
+ #endif
+ _nc_globals.init_signals = TRUE;
+ }
+Index: ncurses/tty/lib_twait.c
+Prereq: 1.61
+--- ncurses-5.9/ncurses/tty/lib_twait.c 2010-12-25 23:43:58.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/lib_twait.c 2014-03-08 20:32:59.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -53,6 +53,11 @@
+ #include <OS.h>
+ #endif
+
++#if USE_KLIBC_KBD
++#define INCL_KBD
++#include <os2.h>
++#endif
++
+ #if USE_FUNC_POLL
+ # if HAVE_SYS_TIME_H
+ # include <sys/time.h>
+@@ -70,10 +75,10 @@
+ #endif
+ #undef CUR
+
+-MODULE_ID("$Id: lib_twait.c,v 1.61 2010/12/25 23:43:58 tom Exp $")
++MODULE_ID("$Id: lib_twait.c,v 1.68 2014/03/08 20:32:59 tom Exp $")
+
+ static long
+-_nc_gettime(TimeType * t0, bool first)
++_nc_gettime(TimeType * t0, int first)
+ {
+ long res;
+
+@@ -97,7 +102,7 @@
+ if (first) {
+ *t0 = t1;
+ }
+- res = (t1 - *t0) * 1000;
++ res = (long) ((t1 - *t0) * 1000);
+ #endif
+ TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res));
+ return res;
+@@ -184,6 +189,12 @@
+ fd_set set;
+ #endif
+
++#if USE_KLIBC_KBD
++ fd_set saved_set;
++ KBDKEYINFO ki;
++ struct timeval tv;
++#endif
++
+ long starttime, returntime;
+
+ TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d",
+@@ -207,6 +218,7 @@
+ starttime = _nc_gettime(&t0, TRUE);
+
+ count = 0;
++ (void) count;
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ if ((mode & TW_EVENT) && evl)
+@@ -217,8 +229,11 @@
+ memset(fd_list, 0, sizeof(fd_list));
+
+ #ifdef NCURSES_WGETCH_EVENTS
+- if ((mode & TW_EVENT) && evl)
++ if ((mode & TW_EVENT) && evl) {
+ fds = typeMalloc(struct pollfd, MIN_FDS + evl->count);
++ if (fds == 0)
++ return TW_NONE;
++ }
+ #endif
+
+ if (mode & TW_INPUT) {
+@@ -247,7 +262,7 @@
+ }
+ #endif
+
+- result = poll(fds, (unsigned) count, milliseconds);
++ result = poll(fds, (size_t) count, milliseconds);
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ if ((mode & TW_EVENT) && evl) {
+@@ -274,10 +289,6 @@
+ }
+ }
+ }
+-
+- if (fds != fd_list)
+- free((char *) fds);
+-
+ #endif
+
+ #elif defined(__BEOS__)
+@@ -329,10 +340,12 @@
+ */
+ FD_ZERO(&set);
+
++#if !USE_KLIBC_KBD
+ if (mode & TW_INPUT) {
+ FD_SET(sp->_ifd, &set);
+ count = sp->_ifd + 1;
+ }
++#endif
+ if ((mode & TW_MOUSE)
+ && (fd = sp->_mouse_fd) >= 0) {
+ FD_SET(fd, &set);
+@@ -352,6 +365,31 @@
+ }
+ #endif
+
++#if USE_KLIBC_KBD
++ for (saved_set = set;; set = saved_set) {
++ if ((mode & TW_INPUT)
++ && (sp->_extended_key
++ || (KbdPeek(&ki, 0) == 0
++ && (ki.fbStatus & KBDTRF_FINAL_CHAR_IN)))) {
++ FD_ZERO(&set);
++ FD_SET(sp->_ifd, &set);
++ result = 1;
++ break;
++ }
++
++ tv.tv_sec = 0;
++ tv.tv_usec = (milliseconds == 0) ? 0 : (10 * 1000);
++
++ if ((result = select(count, &set, NULL, NULL, &tv)) != 0)
++ break;
++
++ /* Time out ? */
++ if (milliseconds >= 0 && _nc_gettime(&t0, FALSE) >= milliseconds) {
++ result = 0;
++ break;
++ }
++ }
++#else
+ if (milliseconds >= 0) {
+ struct timeval ntimeout;
+ ntimeout.tv_sec = milliseconds / 1000;
+@@ -360,6 +398,7 @@
+ } else {
+ result = select(count, &set, NULL, NULL, NULL);
+ }
++#endif
+
+ #ifdef NCURSES_WGETCH_EVENTS
+ if ((mode & TW_EVENT) && evl) {
+@@ -462,5 +501,12 @@
+ result |= TW_EVENT;
+ #endif
+
++#if USE_FUNC_POLL
++#ifdef NCURSES_WGETCH_EVENTS
++ if (fds != fd_list)
++ free((char *) fds);
++#endif
++#endif
++
+ return (result);
+ }
+Index: ncurses/tty/lib_vidattr.c
+Prereq: 1.61
+--- ncurses-5.9/ncurses/tty/lib_vidattr.c 2010-06-05 22:22:04.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/lib_vidattr.c 2014-09-04 22:01:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -69,27 +69,27 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_vidattr.c,v 1.61 2010/06/05 22:22:04 tom Exp $")
++MODULE_ID("$Id: lib_vidattr.c,v 1.71 2014/09/04 22:01:27 tom Exp $")
+
+ #define doPut(mode) \
+ TPUTS_TRACE(#mode); \
+ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc)
+
+-#define TurnOn(mask,mode) \
++#define TurnOn(mask, mode) \
+ if ((turn_on & mask) && mode) { doPut(mode); }
+
+-#define TurnOff(mask,mode) \
++#define TurnOff(mask, mode) \
+ if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
+
+ /* if there is no current screen, assume we *can* do color */
+-#define SetColorsIf(why,old_attr) \
++#define SetColorsIf(why, old_attr) \
+ if (can_color && (why)) { \
+ int old_pair = PairNumber(old_attr); \
+ TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \
+ if ((pair != old_pair) \
+ || (fix_pair0 && (pair == 0)) \
+ || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
+- NCURSES_SP_NAME(_nc_do_color)(NCURSES_SP_ARGx \
++ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx \
+ (short) old_pair, \
+ (short) pair, \
+ reverse, outc); \
+@@ -139,6 +139,9 @@
+ A_BOLD,
+ A_INVIS,
+ A_PROTECT,
++#if USE_ITALIC
++ A_ITALIC,
++#endif
+ };
+ unsigned n;
+ int used = 0;
+@@ -210,7 +213,7 @@
+ }
+
+ turn_off = (~newmode & PreviousAttr) & ALL_BUT_COLOR;
+- turn_on = (newmode & ~PreviousAttr) & ALL_BUT_COLOR;
++ turn_on = (newmode & ~(PreviousAttr & TPARM_ATTR)) & ALL_BUT_COLOR;
+
+ SetColorsIf(((pair == 0) && !fix_pair0), PreviousAttr);
+
+@@ -229,6 +232,11 @@
+ if (!SP_PARM || SP_PARM->_use_rmso) {
+ TurnOff(A_STANDOUT, exit_standout_mode);
+ }
++#if USE_ITALIC
++ if (!SP_PARM || SP_PARM->_use_ritm) {
++ TurnOff(A_ITALIC, exit_italics_mode);
++ }
++#endif
+ }
+ PreviousAttr &= ALL_BUT_COLOR;
+ }
+@@ -251,6 +259,15 @@
+ 1, outc);
+ PreviousAttr &= ALL_BUT_COLOR;
+ }
++#if USE_ITALIC
++ if (!SP_PARM || SP_PARM->_use_ritm) {
++ if (turn_on & A_ITALIC) {
++ TurnOn(A_ITALIC, enter_italics_mode);
++ } else if (turn_off & A_ITALIC) {
++ TurnOff(A_ITALIC, exit_italics_mode);
++ }
++ }
++#endif
+ SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
+ } else {
+
+@@ -265,7 +282,11 @@
+ if (!SP_PARM || SP_PARM->_use_rmso) {
+ TurnOff(A_STANDOUT, exit_standout_mode);
+ }
+-
++#if USE_ITALIC
++ if (!SP_PARM || SP_PARM->_use_ritm) {
++ TurnOff(A_ITALIC, exit_italics_mode);
++ }
++#endif
+ if (turn_off && exit_attribute_mode) {
+ doPut(exit_attribute_mode);
+ turn_on |= (newmode & ALL_BUT_COLOR);
+@@ -284,6 +305,9 @@
+ TurnOn(A_PROTECT, enter_protected_mode);
+ TurnOn(A_INVIS, enter_secure_mode);
+ TurnOn(A_UNDERLINE, enter_underline_mode);
++#if USE_ITALIC
++ TurnOn(A_ITALIC, enter_italics_mode);
++#endif
+ #if USE_WIDEC_SUPPORT
+ TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
+ TurnOn(A_LEFT, enter_left_hl_mode);
+@@ -324,7 +348,7 @@
+ T((T_CALLED("vidattr(%p,%s)"), (void *) SP_PARM, _traceattr(newmode)));
+ returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx
+ newmode,
+- NCURSES_SP_NAME(_nc_outch)));
++ NCURSES_SP_NAME(_nc_putchar)));
+ }
+
+ #if NCURSES_SP_FUNCS
+@@ -341,42 +365,49 @@
+ chtype attrs = A_NORMAL;
+
+ T((T_CALLED("termattrs(%p)"), (void *) SP_PARM));
++
++ if (HasTerminal(SP_PARM)) {
+ #ifdef USE_TERM_DRIVER
+- if (HasTerminal(SP_PARM))
+- attrs = CallDriver(SP_PARM, conattr);
+-#else
++ attrs = CallDriver(SP_PARM, td_conattr);
++#else /* ! USE_TERM_DRIVER */
+
+- if (enter_alt_charset_mode)
+- attrs |= A_ALTCHARSET;
++ if (enter_alt_charset_mode)
++ attrs |= A_ALTCHARSET;
+
+- if (enter_blink_mode)
+- attrs |= A_BLINK;
++ if (enter_blink_mode)
++ attrs |= A_BLINK;
+
+- if (enter_bold_mode)
+- attrs |= A_BOLD;
++ if (enter_bold_mode)
++ attrs |= A_BOLD;
+
+- if (enter_dim_mode)
+- attrs |= A_DIM;
++ if (enter_dim_mode)
++ attrs |= A_DIM;
+
+- if (enter_reverse_mode)
+- attrs |= A_REVERSE;
++ if (enter_reverse_mode)
++ attrs |= A_REVERSE;
+
+- if (enter_standout_mode)
+- attrs |= A_STANDOUT;
++ if (enter_standout_mode)
++ attrs |= A_STANDOUT;
+
+- if (enter_protected_mode)
+- attrs |= A_PROTECT;
++ if (enter_protected_mode)
++ attrs |= A_PROTECT;
+
+- if (enter_secure_mode)
+- attrs |= A_INVIS;
++ if (enter_secure_mode)
++ attrs |= A_INVIS;
+
+- if (enter_underline_mode)
+- attrs |= A_UNDERLINE;
++ if (enter_underline_mode)
++ attrs |= A_UNDERLINE;
+
+- if (SP_PARM->_coloron)
+- attrs |= A_COLOR;
++ if (SP_PARM->_coloron)
++ attrs |= A_COLOR;
+
++#if USE_ITALIC
++ if (enter_italics_mode)
++ attrs |= A_ITALIC;
+ #endif
++
++#endif /* USE_TERM_DRIVER */
++ }
+ returnChtype(attrs);
+ }
+
+Index: ncurses/tty/tty_update.c
+Prereq: 1.264
+--- ncurses-5.9/ncurses/tty/tty_update.c 2010-12-19 01:21:02.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/tty/tty_update.c 2014-08-23 19:25:18.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -82,7 +82,7 @@
+
+ #include <ctype.h>
+
+-MODULE_ID("$Id: tty_update.c,v 1.264 2010/12/19 01:21:02 tom Exp $")
++MODULE_ID("$Id: tty_update.c,v 1.280 2014/08/23 19:25:18 tom Exp $")
+
+ /*
+ * This define controls the line-breakout optimization. Every once in a
+@@ -145,8 +145,7 @@
+
+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+ memset(buf, '\0', sizeof(buf));
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx "\033[6n"); /* only works on ANSI-compatibles */
+- NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
++ NCURSES_PUTP2_FLUSH("cpr", "\033[6n"); /* only works on ANSI-compatibles */
+ *(s = buf) = 0;
+ do {
+ int ask = sizeof(buf) - 1 - (s - buf);
+@@ -180,7 +179,7 @@
+ }
+ }
+ #else
+-#define position_check(sp, expected_y, expected_x, legend) /* nothing */
++#define position_check(expected_y, expected_x, legend) /* nothing */
+ #endif /* POSITION_DEBUG */
+
+ /****************************************************************************
+@@ -195,13 +194,17 @@
+ TR(TRACE_MOVE, ("GoTo(%p, %d, %d) from (%d, %d)",
+ (void *) SP_PARM, row, col, SP_PARM->_cursrow, SP_PARM->_curscol));
+
+- position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "GoTo");
++ position_check(NCURSES_SP_ARGx
++ SP_PARM->_cursrow,
++ SP_PARM->_curscol, "GoTo");
+
+ TINFO_MVCUR(NCURSES_SP_ARGx
+ SP_PARM->_cursrow,
+ SP_PARM->_curscol,
+ row, col);
+- position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "GoTo2");
++ position_check(NCURSES_SP_ARGx
++ SP_PARM->_cursrow,
++ SP_PARM->_curscol, "GoTo2");
+ }
+
+ static NCURSES_INLINE void
+@@ -209,7 +212,9 @@
+ {
+ int chlen = 1;
+ NCURSES_CH_T my_ch;
++#if USE_WIDEC_SUPPORT
+ PUTC_DATA;
++#endif
+ NCURSES_CH_T tilde;
+ NCURSES_CH_T attr = CHDEREF(ch);
+
+@@ -276,6 +281,11 @@
+ && SP_PARM->_screen_acs_map[CharOf(my_ch)]) {
+ RemAttr(attr, A_ALTCHARSET);
+ my_ch = _nc_wacs[CharOf(my_ch)];
++ } else if (SP_PARM->_screen_unicode
++ && !SP_PARM->_screen_acs_map[CharOf(my_ch)]
++ && _nc_wacs[CharOf(my_ch)].chars[0]) {
++ RemAttr(attr, A_ALTCHARSET);
++ my_ch = _nc_wacs[CharOf(my_ch)];
+ }
+ #endif
+ /*
+@@ -288,13 +298,12 @@
+ int j = CharOfD(ch);
+ chtype temp = UChar(SP_PARM->_acs_map[j]);
+
+- if (!(SP_PARM->_screen_acs_map[j])) {
++ if (temp != 0) {
++ SetChar(my_ch, temp, AttrOf(attr));
++ } else {
++ my_ch = CHDEREF(ch);
+ RemAttr(attr, A_ALTCHARSET);
+- if (temp == 0)
+- temp = ' ';
+ }
+- if (temp != 0)
+- SetChar(my_ch, temp, AttrOf(attr));
+ }
+ ch = CHREF(my_ch);
+ }
+@@ -304,22 +313,13 @@
+ }
+
+ UpdateAttrs(SP_PARM, attr);
++ PUTC(CHDEREF(ch));
+ #if !USE_WIDEC_SUPPORT
+- /* FIXME - we do this special case for signal handling, should see how to
+- * make it work for wide characters.
+- */
+- if (SP_PARM->_outch != 0) {
+- SP_PARM->_outch(NCURSES_SP_ARGx UChar(ch));
+- } else
++ COUNT_OUTCHARS(1);
+ #endif
+- {
+- PUTC(CHDEREF(ch), SP_PARM->_ofp); /* macro's fastest... */
+- COUNT_OUTCHARS(1);
+- }
+ SP_PARM->_curscol += chlen;
+ if (char_padding) {
+- TPUTS_TRACE("char_padding");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx char_padding);
++ NCURSES_PUTP2("char_padding", char_padding);
+ }
+ }
+
+@@ -342,7 +342,7 @@
+ struct pollfd fds[1];
+ fds[0].fd = SP_PARM->_checkfd;
+ fds[0].events = POLLIN;
+- if (poll(fds, 1, 0) > 0) {
++ if (poll(fds, (size_t) 1, 0) > 0) {
+ have_pending = TRUE;
+ }
+ #elif defined(__BEOS__)
+@@ -390,18 +390,16 @@
+ PutAttrChar(NCURSES_SP_ARGx ch);
+ } else if (enter_am_mode && exit_am_mode) {
+ /* we can suppress automargin */
+- TPUTS_TRACE("exit_am_mode");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_am_mode);
++ NCURSES_PUTP2("exit_am_mode", exit_am_mode);
+
+ PutAttrChar(NCURSES_SP_ARGx ch);
+ SP_PARM->_curscol--;
+- position_check(SP_PARM,
++ position_check(NCURSES_SP_ARGx
+ SP_PARM->_cursrow,
+ SP_PARM->_curscol,
+ "exit_am_mode");
+
+- TPUTS_TRACE("enter_am_mode");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_am_mode);
++ NCURSES_PUTP2("enter_am_mode", enter_am_mode);
+ } else if ((enter_insert_mode && exit_insert_mode)
+ || insert_character || parm_ich) {
+ GoTo(NCURSES_SP_ARGx
+@@ -455,7 +453,7 @@
+ } else {
+ SP_PARM->_curscol--;
+ }
+- position_check(SP_PARM,
++ position_check(NCURSES_SP_ARGx
+ SP_PARM->_cursrow,
+ SP_PARM->_curscol,
+ "wrap_cursor");
+@@ -475,7 +473,9 @@
+ if (SP_PARM->_curscol >= screen_columns(SP_PARM))
+ wrap_cursor(NCURSES_SP_ARG);
+
+- position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "PutChar");
++ position_check(NCURSES_SP_ARGx
++ SP_PARM->_cursrow,
++ SP_PARM->_curscol, "PutChar");
+ }
+
+ /*
+@@ -496,12 +496,13 @@
+ if (SP_PARM->_default_fg != C_MASK || SP_PARM->_default_bg != C_MASK)
+ return FALSE;
+ if ((pair = GetPair(CHDEREF(ch))) != 0) {
+- short fg, bg;
+- NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx
+- (short) pair,
+- &fg, &bg);
+- if (fg != C_MASK || bg != C_MASK)
++ NCURSES_COLOR_T fg, bg;
++ if (NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx
++ (short) pair,
++ &fg, &bg) == ERR
++ || (fg != C_MASK || bg != C_MASK)) {
+ return FALSE;
++ }
+ }
+ #else
+ if (AttrOfD(ch) & A_COLOR)
+@@ -563,8 +564,7 @@
+ && runcount > SP_PARM->_ech_cost + SP_PARM->_cup_ch_cost
+ && can_clear_with(NCURSES_SP_ARGx CHREF(ntext0))) {
+ UpdateAttrs(SP_PARM, ntext0);
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+- TPARM_1(erase_chars, runcount));
++ NCURSES_PUTP2("erase_chars", TPARM_1(erase_chars, runcount));
+
+ /*
+ * If this is the last part of the given interval,
+@@ -628,6 +628,7 @@
+ int first, int last)
+ {
+ int i, j, same;
++ int rc;
+
+ TR(TRACE_CHARPUT, ("PutRange(%p, %p, %p, %d, %d, %d)",
+ (void *) SP_PARM,
+@@ -655,9 +656,11 @@
+ * Always return 1 for the next GoTo() after a PutRange() if we found
+ * identical characters at end of interval
+ */
+- return (same == 0 ? i : 1);
++ rc = (same == 0 ? i : 1);
++ } else {
++ rc = EmitRange(NCURSES_SP_ARGx ntext + first, last - first + 1);
+ }
+- return EmitRange(NCURSES_SP_ARGx ntext + first, last - first + 1);
++ return rc;
+ }
+
+ /* leave unbracketed here so 'indent' works */
+@@ -677,6 +680,9 @@
+
+ T((T_CALLED("_nc_tinfo:doupdate(%p)"), (void *) SP_PARM));
+
++ if (SP_PARM == 0)
++ returnCode(ERR);
++
+ #if !USE_REENTRANT
+ /*
+ * It is "legal" but unlikely that an application could assign a new
+@@ -1076,32 +1082,29 @@
+ */
+
+ static void
+-ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, bool needclear)
++ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, int needclear)
+ {
+ int j;
+
+- if (SP_PARM != 0) {
+- if (CurScreen(SP_PARM) != 0
+- && SP_PARM->_cursrow >= 0) {
+- for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) {
+- if (j >= 0) {
+- NCURSES_CH_T *cp =
+- &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]);
+-
+- if (!CharEq(*cp, blank)) {
+- *cp = blank;
+- needclear = TRUE;
+- }
++ if (CurScreen(SP_PARM) != 0
++ && SP_PARM->_cursrow >= 0) {
++ for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) {
++ if (j >= 0) {
++ NCURSES_CH_T *cp =
++ &(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]);
++
++ if (!CharEq(*cp, blank)) {
++ *cp = blank;
++ needclear = TRUE;
+ }
+ }
+ }
+ }
+
+- if (needclear && (SP_PARM != 0)) {
++ if (needclear) {
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("clr_eol");
+ if (clr_eol && SP_PARM->_el_cost <= (screen_columns(SP_PARM) - SP_PARM->_curscol)) {
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
++ NCURSES_PUTP2("clr_eol", clr_eol);
+ } else {
+ int count = (screen_columns(SP_PARM) - SP_PARM->_curscol);
+ while (count-- > 0)
+@@ -1121,12 +1124,14 @@
+ {
+ int row, col;
+
+- if (0 == SP_PARM)
+- return;
+-
+ row = SP_PARM->_cursrow;
+ col = SP_PARM->_curscol;
+
++ if (row < 0)
++ row = 0;
++ if (col < 0)
++ col = 0;
++
+ UpdateAttrs(SP_PARM, blank);
+ TPUTS_TRACE("clr_eos");
+ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+@@ -1370,13 +1375,11 @@
+ && SP_PARM->_el_cost <= SP_PARM->_el1_cost) {
+ GoTo(NCURSES_SP_ARGx lineno, 0);
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("clr_eol");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
++ NCURSES_PUTP2("clr_eol", clr_eol);
+ } else {
+ GoTo(NCURSES_SP_ARGx lineno, nFirstChar - 1);
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("clr_bol");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_bol);
++ NCURSES_PUTP2("clr_bol", clr_bol);
+ }
+
+ while (firstChar < nFirstChar)
+@@ -1492,9 +1495,17 @@
+ if (oLastChar < nLastChar) {
+ int m = max(nLastNonblank, oLastNonblank);
+ #if USE_WIDEC_SUPPORT
+- while (isWidecExt(newLine[n + 1]) && n) {
+- --n;
+- --oLastChar;
++ if (n) {
++ while (isWidecExt(newLine[n + 1]) && n) {
++ --n;
++ --oLastChar; /* increase cost */
++ }
++ } else if (n >= firstChar &&
++ isWidecBase(newLine[n])) {
++ while (isWidecExt(newLine[n + 1])) {
++ ++n;
++ ++oLastChar; /* decrease cost */
++ }
+ }
+ #endif
+ GoTo(NCURSES_SP_ARGx lineno, n + 1);
+@@ -1514,8 +1525,9 @@
+ if (DelCharCost(SP_PARM, oLastChar - nLastChar)
+ > SP_PARM->_el_cost + nLastNonblank - (n + 1)) {
+ if (PutRange(NCURSES_SP_ARGx oldLine, newLine, lineno,
+- n + 1, nLastNonblank))
+- GoTo(NCURSES_SP_ARGx lineno, nLastNonblank + 1);
++ n + 1, nLastNonblank)) {
++ GoTo(NCURSES_SP_ARGx lineno, nLastNonblank + 1);
++ }
+ ClrToEOL(NCURSES_SP_ARGx blank, FALSE);
+ } else {
+ /*
+@@ -1574,10 +1586,9 @@
+ if (fast_clear) {
+ if (clear_screen) {
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("clear_screen");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clear_screen);
++ NCURSES_PUTP2("clear_screen", clear_screen);
+ SP_PARM->_cursrow = SP_PARM->_curscol = 0;
+- position_check(SP_PARM,
++ position_check(NCURSES_SP_ARGx
+ SP_PARM->_cursrow,
+ SP_PARM->_curscol,
+ "ClearScreen");
+@@ -1595,8 +1606,7 @@
+ UpdateAttrs(SP_PARM, blank);
+ for (i = 0; i < screen_lines(SP_PARM); i++) {
+ GoTo(NCURSES_SP_ARGx i, 0);
+- TPUTS_TRACE("clr_eol");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
++ NCURSES_PUTP2("clr_eol", clr_eol);
+ }
+ GoTo(NCURSES_SP_ARGx 0, 0);
+ }
+@@ -1647,33 +1657,30 @@
+ count--;
+ }
+ } else if (enter_insert_mode && exit_insert_mode) {
+- TPUTS_TRACE("enter_insert_mode");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_insert_mode);
++ NCURSES_PUTP2("enter_insert_mode", enter_insert_mode);
+ while (count) {
+ PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
+ if (insert_padding) {
+- TPUTS_TRACE("insert_padding");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding);
++ NCURSES_PUTP2("insert_padding", insert_padding);
+ }
+ line++;
+ count--;
+ }
+- TPUTS_TRACE("exit_insert_mode");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode);
++ NCURSES_PUTP2("exit_insert_mode", exit_insert_mode);
+ } else {
+ while (count) {
+- TPUTS_TRACE("insert_character");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_character);
++ NCURSES_PUTP2("insert_character", insert_character);
+ PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
+ if (insert_padding) {
+- TPUTS_TRACE("insert_padding");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding);
++ NCURSES_PUTP2("insert_padding", insert_padding);
+ }
+ line++;
+ count--;
+ }
+ }
+- position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "InsStr");
++ position_check(NCURSES_SP_ARGx
++ SP_PARM->_cursrow,
++ SP_PARM->_curscol, "InsStr");
+ }
+
+ /*
+@@ -1701,8 +1708,7 @@
+ NCURSES_SP_NAME(_nc_outch));
+ } else {
+ for (n = 0; n < count; n++) {
+- TPUTS_TRACE("delete_character");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_character);
++ NCURSES_PUTP2("delete_character", delete_character);
+ }
+ }
+ }
+@@ -1754,13 +1760,11 @@
+ if (n == 1 && scroll_forward && top == miny && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx bot, 0);
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("scroll_forward");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward);
++ NCURSES_PUTP2("scroll_forward", scroll_forward);
+ } else if (n == 1 && delete_line && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("delete_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
++ NCURSES_PUTP2("delete_line", delete_line);
+ } else if (parm_index && top == miny && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx bot, 0);
+ UpdateAttrs(SP_PARM, blank);
+@@ -1781,15 +1785,13 @@
+ GoTo(NCURSES_SP_ARGx bot, 0);
+ UpdateAttrs(SP_PARM, blank);
+ for (i = 0; i < n; i++) {
+- TPUTS_TRACE("scroll_forward");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward);
++ NCURSES_PUTP2("scroll_forward", scroll_forward);
+ }
+ } else if (delete_line && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+ for (i = 0; i < n; i++) {
+- TPUTS_TRACE("delete_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
++ NCURSES_PUTP2("delete_line", delete_line);
+ }
+ } else
+ return ERR;
+@@ -1823,13 +1825,11 @@
+ if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("scroll_reverse");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse);
++ NCURSES_PUTP2("scroll_reverse", scroll_reverse);
+ } else if (n == 1 && insert_line && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+- TPUTS_TRACE("insert_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
++ NCURSES_PUTP2("insert_line", insert_line);
+ } else if (parm_rindex && top == miny && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+@@ -1850,15 +1850,13 @@
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+ for (i = 0; i < n; i++) {
+- TPUTS_TRACE("scroll_reverse");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse);
++ NCURSES_PUTP2("scroll_reverse", scroll_reverse);
+ }
+ } else if (insert_line && bot == maxy) {
+ GoTo(NCURSES_SP_ARGx top, 0);
+ UpdateAttrs(SP_PARM, blank);
+ for (i = 0; i < n; i++) {
+- TPUTS_TRACE("insert_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
++ NCURSES_PUTP2("insert_line", insert_line);
+ }
+ } else
+ return ERR;
+@@ -1889,8 +1887,7 @@
+ GoTo(NCURSES_SP_ARGx del, 0);
+ UpdateAttrs(SP_PARM, blank);
+ if (n == 1 && delete_line) {
+- TPUTS_TRACE("delete_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
++ NCURSES_PUTP2("delete_line", delete_line);
+ } else if (parm_delete_line) {
+ TPUTS_TRACE("parm_delete_line");
+ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+@@ -1899,16 +1896,14 @@
+ NCURSES_SP_NAME(_nc_outch));
+ } else { /* if (delete_line) */
+ for (i = 0; i < n; i++) {
+- TPUTS_TRACE("delete_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
++ NCURSES_PUTP2("delete_line", delete_line);
+ }
+ }
+
+ GoTo(NCURSES_SP_ARGx ins, 0);
+ UpdateAttrs(SP_PARM, blank);
+ if (n == 1 && insert_line) {
+- TPUTS_TRACE("insert_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
++ NCURSES_PUTP2("insert_line", insert_line);
+ } else if (parm_insert_line) {
+ TPUTS_TRACE("parm_insert_line");
+ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+@@ -1917,8 +1912,7 @@
+ NCURSES_SP_NAME(_nc_outch));
+ } else { /* if (insert_line) */
+ for (i = 0; i < n; i++) {
+- TPUTS_TRACE("insert_line");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
++ NCURSES_PUTP2("insert_line", insert_line);
+ }
+ }
+
+@@ -1975,24 +1969,20 @@
+ && (SP_PARM->_cursrow == bot || SP_PARM->_cursrow == bot - 1))
+ && save_cursor && restore_cursor) {
+ cursor_saved = TRUE;
+- TPUTS_TRACE("save_cursor");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor);
++ NCURSES_PUTP2("save_cursor", save_cursor);
+ }
+- TPUTS_TRACE("change_scroll_region");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+- TPARM_2(change_scroll_region, top, bot));
++ NCURSES_PUTP2("change_scroll_region",
++ TPARM_2(change_scroll_region, top, bot));
+ if (cursor_saved) {
+- TPUTS_TRACE("restore_cursor");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor);
++ NCURSES_PUTP2("restore_cursor", restore_cursor);
+ } else {
+ SP_PARM->_cursrow = SP_PARM->_curscol = -1;
+ }
+
+ res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, top, bot, blank);
+
+- TPUTS_TRACE("change_scroll_region");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+- TPARM_2(change_scroll_region, 0, maxy));
++ NCURSES_PUTP2("change_scroll_region",
++ TPARM_2(change_scroll_region, 0, maxy));
+ SP_PARM->_cursrow = SP_PARM->_curscol = -1;
+ }
+
+@@ -2025,15 +2015,12 @@
+ SP_PARM->_cursrow == top - 1)
+ && save_cursor && restore_cursor) {
+ cursor_saved = TRUE;
+- TPUTS_TRACE("save_cursor");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor);
++ NCURSES_PUTP2("save_cursor", save_cursor);
+ }
+- TPUTS_TRACE("change_scroll_region");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+- TPARM_2(change_scroll_region, top, bot));
++ NCURSES_PUTP2("change_scroll_region",
++ TPARM_2(change_scroll_region, top, bot));
+ if (cursor_saved) {
+- TPUTS_TRACE("restore_cursor");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor);
++ NCURSES_PUTP2("restore_cursor", restore_cursor);
+ } else {
+ SP_PARM->_cursrow = SP_PARM->_curscol = -1;
+ }
+@@ -2041,9 +2028,8 @@
+ res = scroll_csr_backward(NCURSES_SP_ARGx
+ -n, top, bot, top, bot, blank);
+
+- TPUTS_TRACE("change_scroll_region");
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+- TPARM_2(change_scroll_region, 0, maxy));
++ NCURSES_PUTP2("change_scroll_region",
++ TPARM_2(change_scroll_region, 0, maxy));
+ SP_PARM->_cursrow = SP_PARM->_curscol = -1;
+ }
+
+@@ -2114,23 +2100,25 @@
+ }
+
+ if (exit_attribute_mode)
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_attribute_mode);
++ NCURSES_PUTP2("exit_attribute_mode", exit_attribute_mode);
+ else {
+ /* turn off attributes */
+ if (exit_alt_charset_mode)
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_alt_charset_mode);
++ NCURSES_PUTP2("exit_alt_charset_mode", exit_alt_charset_mode);
+ if (exit_standout_mode)
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_standout_mode);
++ NCURSES_PUTP2("exit_standout_mode", exit_standout_mode);
+ if (exit_underline_mode)
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_underline_mode);
++ NCURSES_PUTP2("exit_underline_mode", exit_underline_mode);
+ }
+ if (exit_insert_mode)
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode);
+- if (enter_am_mode && exit_am_mode)
+- NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+- (auto_right_margin
+- ? enter_am_mode
+- : exit_am_mode));
++ NCURSES_PUTP2("exit_insert_mode", exit_insert_mode);
++ if (enter_am_mode && exit_am_mode) {
++ if (auto_right_margin) {
++ NCURSES_PUTP2("enter_am_mode", enter_am_mode);
++ } else {
++ NCURSES_PUTP2("exit_am_mode", exit_am_mode);
++ }
++ }
+ }
+
+ #if NCURSES_SP_FUNCS
+@@ -2159,33 +2147,33 @@
+ NCURSES_EXPORT(void)
+ NCURSES_SP_NAME(_nc_screen_wrap) (NCURSES_SP_DCL0)
+ {
+- if (SP_PARM == 0)
+- return;
++ if (SP_PARM != 0) {
+
+- UpdateAttrs(SP_PARM, normal);
++ UpdateAttrs(SP_PARM, normal);
+ #if NCURSES_EXT_FUNCS
+- if (SP_PARM->_coloron
+- && !SP_PARM->_default_color) {
+- static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
+- SP_PARM->_default_color = TRUE;
+- NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx
+- -1,
+- 0,
+- FALSE,
+- NCURSES_SP_NAME(_nc_outch));
+- SP_PARM->_default_color = FALSE;
++ if (SP_PARM->_coloron
++ && !SP_PARM->_default_color) {
++ static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
++ SP_PARM->_default_color = TRUE;
++ NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx
++ -1,
++ 0,
++ FALSE,
++ NCURSES_SP_NAME(_nc_outch));
++ SP_PARM->_default_color = FALSE;
++
++ TINFO_MVCUR(NCURSES_SP_ARGx
++ SP_PARM->_cursrow,
++ SP_PARM->_curscol,
++ screen_lines(SP_PARM) - 1,
++ 0);
+
+- TINFO_MVCUR(NCURSES_SP_ARGx
+- SP_PARM->_cursrow,
+- SP_PARM->_curscol,
+- screen_lines(SP_PARM) - 1,
+- 0);
+-
+- ClrToEOL(NCURSES_SP_ARGx blank, TRUE);
+- }
++ ClrToEOL(NCURSES_SP_ARGx blank, TRUE);
++ }
+ #endif
+- if (SP_PARM->_color_defs) {
+- NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG);
++ if (SP_PARM->_color_defs) {
++ NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG);
++ }
+ }
+ }
+
+Index: ncurses/wcwidth.h
+--- ncurses-5.9/ncurses/wcwidth.h 2010-08-07 18:28:09.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/wcwidth.h 2013-07-06 19:53:29.000000000 +0000
+@@ -192,15 +192,18 @@
+ (ucs <= 0x115f || /* Hangul Jamo init. consonants */
+ ucs == 0x2329 || ucs == 0x232a ||
+ (ucs >= 0x2e80 && ucs <= 0xa4cf &&
+- ucs != 0x303f) || /* CJK ... Yi */
+- (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
+- (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
+- (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */
+- (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
+- (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */
+- (ucs >= 0xffe0 && ucs <= 0xffe6) ||
+- (ucs >= 0x20000 && ucs <= 0x2fffd) ||
+- (ucs >= 0x30000 && ucs <= 0x3fffd)));
++ ucs != 0x303f) /* CJK ... Yi */
++ || (ucs >= 0xac00 && ucs <= 0xd7a3) /* Hangul Syllables */
++ || (ucs >= 0xf900 && ucs <= 0xfaff) /* CJK Compatibility Ideographs */
++ || (ucs >= 0xfe10 && ucs <= 0xfe19) /* Vertical forms */
++ || (ucs >= 0xfe30 && ucs <= 0xfe6f) /* CJK Compatibility Forms */
++ || (ucs >= 0xff00 && ucs <= 0xff60) /* Fullwidth Forms */
++ || (ucs >= 0xffe0 && ucs <= 0xffe6)
++#if !defined(SIZEOF_WCHAR_T) || (SIZEOF_WCHAR_T >= 4)
++ || (ucs >= 0x20000 && ucs <= 0x2fffd)
++ || (ucs >= 0x30000 && ucs <= 0x3fffd)
++#endif
++ ));
+ }
+
+
+Index: ncurses/widechar/lib_box_set.c
+Prereq: 1.5
+--- ncurses-5.9/ncurses/widechar/lib_box_set.c 2009-10-24 22:36:56.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_box_set.c 2011-06-25 19:02:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2003,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_box_set.c,v 1.5 2009/10/24 22:36:56 tom Exp $")
++MODULE_ID("$Id: lib_box_set.c,v 1.6 2011/06/25 19:02:07 Vassili.Courzakis Exp $")
+
+ NCURSES_EXPORT(int)
+ wborder_set(WINDOW *win,
+@@ -52,7 +52,7 @@
+ NCURSES_SIZE_T endx, endy;
+ NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr;
+
+- T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
++ T((T_CALLED("wborder_set(%p,%s,%s,%s,%s,%s,%s,%s,%s)"),
+ (void *) win,
+ _tracech_t2(1, ls),
+ _tracech_t2(2, rs),
+Index: ncurses/widechar/lib_cchar.c
+Prereq: 1.20
+--- ncurses-5.9/ncurses/widechar/lib_cchar.c 2010-12-25 23:46:26.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_cchar.c 2014-02-01 22:10:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,7 +35,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_cchar.c,v 1.20 2010/12/25 23:46:26 tom Exp $")
++MODULE_ID("$Id: lib_cchar.c,v 1.27 2014/02/01 22:10:42 tom Exp $")
+
+ /*
+ * The SuSv2 description leaves some room for interpretation. We'll assume wch
+@@ -47,7 +47,7 @@
+ setcchar(cchar_t *wcval,
+ const wchar_t *wch,
+ const attr_t attrs,
+- short color_pair,
++ NCURSES_PAIRS_T color_pair,
+ const void *opts)
+ {
+ unsigned i;
+@@ -56,11 +56,11 @@
+
+ TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%lu,%d,%p)"),
+ (void *) wcval, _nc_viswbuf(wch),
+- (unsigned long) attrs, color_pair, opts));
++ (unsigned long) attrs, (int) color_pair, opts));
+
+- len = (unsigned) wcslen(wch);
+ if (opts != NULL
+- || (len > 1 && wcwidth(wch[0]) < 0)) {
++ || wch == NULL
++ || ((len = (unsigned) wcslen(wch)) > 1 && wcwidth(wch[0]) < 0)) {
+ code = ERR;
+ } else {
+ if (len > CCHARW_MAX)
+@@ -80,7 +80,7 @@
+ memset(wcval, 0, sizeof(*wcval));
+
+ if (len != 0) {
+- SetAttr(*wcval, attrs | (attr_t) ColorPair(color_pair));
++ SetAttr(*wcval, attrs);
+ SetPair(CHDEREF(wcval), color_pair);
+ memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
+ TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
+@@ -96,7 +96,7 @@
+ getcchar(const cchar_t *wcval,
+ wchar_t *wch,
+ attr_t *attrs,
+- short *color_pair,
++ NCURSES_PAIRS_T *color_pair,
+ void *opts)
+ {
+ wchar_t *wp;
+@@ -110,8 +110,8 @@
+ (void *) color_pair,
+ opts));
+
+- if (opts == NULL) {
+- len = ((wp = wmemchr(wcval->chars, L'\0', CCHARW_MAX))
++ if (opts == NULL && wcval != NULL) {
++ len = ((wp = wmemchr(wcval->chars, L'\0', (size_t) CCHARW_MAX))
+ ? (int) (wp - wcval->chars)
+ : CCHARW_MAX);
+
+@@ -125,8 +125,8 @@
+ code = ERR;
+ } else if (len >= 0) {
+ *attrs = AttrOf(*wcval) & A_ATTRIBUTES;
+- *color_pair = (short) GetPair(*wcval);
+- wmemcpy(wch, wcval->chars, (unsigned) len);
++ *color_pair = (NCURSES_PAIRS_T) GetPair(*wcval);
++ wmemcpy(wch, wcval->chars, (size_t) len);
+ wch[len] = L'\0';
+ code = OK;
+ }
+Index: ncurses/widechar/lib_erasewchar.c
+Prereq: 1.2
+--- ncurses-5.9/ncurses/widechar/lib_erasewchar.c 2010-07-24 11:35:12.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_erasewchar.c 2014-02-23 01:21:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_erasewchar.c,v 1.2 2010/07/24 11:35:12 tom Exp $")
++MODULE_ID("$Id: lib_erasewchar.c,v 1.3 2014/02/23 01:21:08 tom Exp $")
+
+ /*
+ * erasewchar()
+@@ -49,7 +49,7 @@
+
+ T((T_CALLED("erasewchar()")));
+ if ((value = erasechar()) != ERR) {
+- *wch = value;
++ *wch = (wchar_t) value;
+ result = OK;
+ }
+ returnCode(result);
+@@ -70,7 +70,7 @@
+
+ T((T_CALLED("killwchar()")));
+ if ((value = killchar()) != ERR) {
+- *wch = value;
++ *wch = (wchar_t) value;
+ result = OK;
+ }
+ returnCode(result);
+Index: ncurses/widechar/lib_get_wch.c
+Prereq: 1.22
+--- ncurses-5.9/ncurses/widechar/lib_get_wch.c 2010-08-28 21:00:35.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_get_wch.c 2011-05-28 23:00:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,7 +40,7 @@
+ #include <curses.priv.h>
+ #include <ctype.h>
+
+-MODULE_ID("$Id: lib_get_wch.c,v 1.22 2010/08/28 21:00:35 tom Exp $")
++MODULE_ID("$Id: lib_get_wch.c,v 1.23 2011/05/28 23:00:29 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ wget_wch(WINDOW *win, wint_t *result)
+@@ -106,7 +106,10 @@
+ } else {
+ code = ERR;
+ }
+- *result = (wint_t) value;
++
++ if (result != 0)
++ *result = (wint_t) value;
++
+ _nc_unlock_global(curses);
+ T(("result %#o", value));
+ returnCode(code);
+Index: ncurses/widechar/lib_get_wstr.c
+Prereq: 1.12
+--- ncurses-5.9/ncurses/widechar/lib_get_wstr.c 2009-10-24 22:38:11.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_get_wstr.c 2011-10-22 16:31:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_get_wstr.c,v 1.12 2009/10/24 22:38:11 tom Exp $")
++MODULE_ID("$Id: lib_get_wstr.c,v 1.13 2011/10/22 16:31:35 tom Exp $")
+
+ static int
+ wadd_wint(WINDOW *win, wint_t *src)
+@@ -49,7 +49,7 @@
+
+ wch[0] = (wchar_t) (*src);
+ wch[1] = 0;
+- setcchar(&tmp, wch, A_NORMAL, 0, NULL);
++ setcchar(&tmp, wch, A_NORMAL, (short) 0, NULL);
+ return wadd_wch(win, &tmp);
+ }
+
+@@ -58,7 +58,7 @@
+ * or other character, and handles reverse wraparound.
+ */
+ static wint_t *
+-WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed)
++WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, int echoed)
+ {
+ if (last > first) {
+ *--last = '\0';
+Index: ncurses/widechar/lib_ins_wch.c
+Prereq: 1.16
+--- ncurses-5.9/ncurses/widechar/lib_ins_wch.c 2010-12-19 01:34:04.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_ins_wch.c 2011-10-22 16:34:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_ins_wch.c,v 1.16 2010/12/19 01:34:04 tom Exp $")
++MODULE_ID("$Id: lib_ins_wch.c,v 1.17 2011/10/22 16:34:50 tom Exp $")
+
+ /*
+ * Insert the given character, updating the current location to simplify
+@@ -132,7 +132,7 @@
+ (void) setcchar(&tmp_cchar,
+ &tmp_wchar,
+ WA_NORMAL,
+- 0,
++ (short) 0,
+ (void *) 0);
+ code = _nc_insert_wch(win, &tmp_cchar);
+ } else {
+Index: ncurses/widechar/lib_inwstr.c
+Prereq: 1.5
+--- ncurses-5.9/ncurses/widechar/lib_inwstr.c 2009-10-24 22:37:29.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_inwstr.c 2011-05-28 22:49:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2004,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2009,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_inwstr.c,v 1.5 2009/10/24 22:37:29 tom Exp $")
++MODULE_ID("$Id: lib_inwstr.c,v 1.6 2011/05/28 22:49:49 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ winnwstr(WINDOW *win, wchar_t *wstr, int n)
+@@ -93,8 +93,13 @@
+ winwstr(WINDOW *win, wchar_t *wstr)
+ {
+ int result = OK;
++
+ T((T_CALLED("winwstr(%p,%p)"), (void *) win, (void *) wstr));
+- if (winnwstr(win, wstr, CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR)
++ if (win == 0) {
++ result = ERR;
++ } else if (winnwstr(win, wstr,
++ CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) {
+ result = ERR;
++ }
+ returnCode(result);
+ }
+Index: ncurses/widechar/lib_slk_wset.c
+Prereq: 1.11
+--- ncurses-5.9/ncurses/widechar/lib_slk_wset.c 2005-01-16 01:03:53.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_slk_wset.c 2011-10-22 15:52:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. *
++ * Copyright (c) 2003-2002,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,7 +40,7 @@
+ #include <wctype.h>
+ #endif
+
+-MODULE_ID("$Id: lib_slk_wset.c,v 1.11 2005/01/16 01:03:53 tom Exp $")
++MODULE_ID("$Id: lib_slk_wset.c,v 1.13 2011/10/22 15:52:20 tom Exp $")
+
+ NCURSES_EXPORT(int)
+ slk_wset(int i, const wchar_t *astr, int format)
+@@ -53,19 +53,21 @@
+
+ T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format));
+
+- init_mb(state);
+- str = astr;
+- if ((arglen = wcsrtombs(NULL, &str, 0, &state)) != (size_t) -1) {
+- if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
+- str = astr;
+- if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {
+- /* glibc documentation claims that the terminating L'\0'
+- * is written, but it is not...
+- */
+- mystr[arglen] = 0;
+- result = slk_set(i, mystr, format);
++ if (astr != 0) {
++ init_mb(state);
++ str = astr;
++ if ((arglen = wcsrtombs(NULL, &str, (size_t) 0, &state)) != (size_t) -1) {
++ if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
++ str = astr;
++ if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {
++ /* glibc documentation claims that the terminating L'\0'
++ * is written, but it is not...
++ */
++ mystr[arglen] = 0;
++ result = slk_set(i, mystr, format);
++ }
++ free(mystr);
+ }
+- free(mystr);
+ }
+ }
+ returnCode(result);
+Index: ncurses/widechar/lib_unget_wch.c
+Prereq: 1.14
+--- ncurses-5.9/ncurses/widechar/lib_unget_wch.c 2010-07-24 11:35:21.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_unget_wch.c 2011-10-22 16:34:50.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_unget_wch.c,v 1.14 2010/07/24 11:35:21 tom Exp $")
++MODULE_ID("$Id: lib_unget_wch.c,v 1.15 2011/10/22 16:34:50 tom Exp $")
+
+ /*
+ * Wrapper for wcrtomb() which obtains the length needed for the given
+@@ -55,7 +55,7 @@
+ const wchar_t *tempp = temp;
+ temp[0] = source;
+ temp[1] = 0;
+- result = (int) wcsrtombs(NULL, &tempp, 0, state);
++ result = (int) wcsrtombs(NULL, &tempp, (size_t) 0, state);
+ } else {
+ result = (int) wcrtomb(target, source, state);
+ }
+Index: ncurses/widechar/lib_vid_attr.c
+Prereq: 1.14
+--- ncurses-5.9/ncurses/widechar/lib_vid_attr.c 2010-12-19 01:44:24.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_vid_attr.c 2014-06-07 22:13:46.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,14 +36,16 @@
+ #define CUR SP_TERMTYPE
+ #endif
+
+-MODULE_ID("$Id: lib_vid_attr.c,v 1.14 2010/12/19 01:44:24 tom Exp $")
++MODULE_ID("$Id: lib_vid_attr.c,v 1.23 2014/06/07 22:13:46 tom Exp $")
+
+-#define doPut(mode) TPUTS_TRACE(#mode); NCURSES_SP_NAME(tputs)(NCURSES_SP_ARGx mode, 1, outc)
++#define doPut(mode) \
++ TPUTS_TRACE(#mode); \
++ NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc)
+
+-#define TurnOn(mask,mode) \
++#define TurnOn(mask, mode) \
+ if ((turn_on & mask) && mode) { doPut(mode); }
+
+-#define TurnOff(mask,mode) \
++#define TurnOff(mask, mode) \
+ if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
+
+ /* if there is no current screen, assume we *can* do color */
+@@ -66,7 +68,7 @@
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(vid_puts) (NCURSES_SP_DCLx
+ attr_t newmode,
+- short pair,
++ NCURSES_PAIRS_T pair,
+ void *opts GCC_UNUSED,
+ NCURSES_SP_OUTC outc)
+ {
+@@ -120,7 +122,7 @@
+ * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS
+ * macro so this will work properly for the wide-character layout.
+ */
+- unsigned value = no_color_video;
++ unsigned value = (unsigned) no_color_video;
+ attr_t mask = NCURSES_BITS((value & 63)
+ | ((value & 192) << 1)
+ | ((value & 256) >> 2), 8);
+@@ -142,7 +144,7 @@
+ }
+
+ turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
+- turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
++ turn_on = (newmode & ~(previous_attr & TPARM_ATTR)) & ALL_BUT_COLOR;
+
+ SetColorsIf(((pair == 0) && !fix_pair0), previous_attr, previous_pair);
+
+@@ -161,6 +163,11 @@
+ if (!SP_PARM || SP_PARM->_use_rmso) {
+ TurnOff(A_STANDOUT, exit_standout_mode);
+ }
++#if USE_ITALIC
++ if (!SP_PARM || SP_PARM->_use_ritm) {
++ TurnOff(A_ITALIC, exit_italics_mode);
++ }
++#endif
+ }
+ previous_attr &= ALL_BUT_COLOR;
+ previous_pair = 0;
+@@ -185,6 +192,15 @@
+ previous_attr &= ALL_BUT_COLOR;
+ previous_pair = 0;
+ }
++#if USE_ITALIC
++ if (!SP_PARM || SP_PARM->_use_ritm) {
++ if (turn_on & A_ITALIC) {
++ TurnOn(A_ITALIC, enter_italics_mode);
++ } else if (turn_off & A_ITALIC) {
++ TurnOff(A_ITALIC, exit_italics_mode);
++ }
++ }
++#endif
+ SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+ } else {
+
+@@ -199,7 +215,11 @@
+ if (!SP_PARM || SP_PARM->_use_rmso) {
+ TurnOff(A_STANDOUT, exit_standout_mode);
+ }
+-
++#if USE_ITALIC
++ if (!SP_PARM || SP_PARM->_use_ritm) {
++ TurnOff(A_ITALIC, exit_italics_mode);
++ }
++#endif
+ if (turn_off && exit_attribute_mode) {
+ doPut(exit_attribute_mode);
+ turn_on |= (newmode & ALL_BUT_COLOR);
+@@ -219,6 +239,9 @@
+ TurnOn(A_PROTECT, enter_protected_mode);
+ TurnOn(A_INVIS, enter_secure_mode);
+ TurnOn(A_UNDERLINE, enter_underline_mode);
++#if USE_ITALIC
++ TurnOn(A_ITALIC, enter_italics_mode);
++#endif
+ #if USE_WIDEC_SUPPORT
+ TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
+ TurnOn(A_LEFT, enter_left_hl_mode);
+@@ -244,7 +267,7 @@
+
+ returnCode(OK);
+ #else
+- T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
++ T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), (int) pair));
+ set_color(newmode, pair);
+ returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx newmode, outc));
+ #endif
+@@ -253,7 +276,7 @@
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+ vid_puts(attr_t newmode,
+- short pair,
++ NCURSES_PAIRS_T pair,
+ void *opts GCC_UNUSED,
+ NCURSES_OUTC outc)
+ {
+@@ -270,20 +293,20 @@
+ NCURSES_EXPORT(int)
+ NCURSES_SP_NAME(vid_attr) (NCURSES_SP_DCLx
+ attr_t newmode,
+- short pair,
++ NCURSES_PAIRS_T pair,
+ void *opts)
+ {
+- T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair));
++ T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), (int) pair));
+ returnCode(NCURSES_SP_NAME(vid_puts) (NCURSES_SP_ARGx
+ newmode,
+ pair,
+ opts,
+- NCURSES_SP_NAME(_nc_outch)));
++ NCURSES_SP_NAME(_nc_putchar)));
+ }
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(int)
+-vid_attr(attr_t newmode, short pair, void *opts)
++vid_attr(attr_t newmode, NCURSES_PAIRS_T pair, void *opts)
+ {
+ return NCURSES_SP_NAME(vid_attr) (CURRENT_SCREEN, newmode, pair, opts);
+ }
+@@ -296,24 +319,26 @@
+ NCURSES_EXPORT(attr_t)
+ NCURSES_SP_NAME(term_attrs) (NCURSES_SP_DCL0)
+ {
+- attr_t attrs;
++ attr_t attrs = 0;
+
+ T((T_CALLED("term_attrs()")));
+- attrs = SP_PARM ? NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG) : 0;
++ if (SP_PARM) {
++ attrs = NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG);
+
+- /* these are only supported for wide-character mode */
+- if (enter_horizontal_hl_mode)
+- attrs |= WA_HORIZONTAL;
+- if (enter_left_hl_mode)
+- attrs |= WA_LEFT;
+- if (enter_low_hl_mode)
+- attrs |= WA_LOW;
+- if (enter_right_hl_mode)
+- attrs |= WA_RIGHT;
+- if (enter_top_hl_mode)
+- attrs |= WA_TOP;
+- if (enter_vertical_hl_mode)
+- attrs |= WA_VERTICAL;
++ /* these are only supported for wide-character mode */
++ if (enter_horizontal_hl_mode)
++ attrs |= WA_HORIZONTAL;
++ if (enter_left_hl_mode)
++ attrs |= WA_LEFT;
++ if (enter_low_hl_mode)
++ attrs |= WA_LOW;
++ if (enter_right_hl_mode)
++ attrs |= WA_RIGHT;
++ if (enter_top_hl_mode)
++ attrs |= WA_TOP;
++ if (enter_vertical_hl_mode)
++ attrs |= WA_VERTICAL;
++ }
+
+ returnAttr(attrs);
+ }
+Index: ncurses/widechar/lib_wacs.c
+Prereq: 1.10
+--- ncurses-5.9/ncurses/widechar/lib_wacs.c 2010-12-19 01:43:19.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_wacs.c 2014-02-23 01:21:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,7 +32,7 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_wacs.c,v 1.10 2010/12/19 01:43:19 tom Exp $")
++MODULE_ID("$Id: lib_wacs.c,v 1.14 2014/02/23 01:21:08 tom Exp $")
+
+ NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0;
+
+@@ -119,22 +119,24 @@
+ T(("initializing WIDE-ACS map (Unicode is%s active)",
+ active ? "" : " not"));
+
+- _nc_wacs = typeCalloc(cchar_t, ACS_LEN);
+- for (n = 0; n < SIZEOF(table); ++n) {
+- int wide = wcwidth(table[n].value[active]);
+-
+- m = table[n].map;
+- if (active && (wide == 1)) {
+- SetChar(_nc_wacs[m], table[n].value[active], A_NORMAL);
+- } else if (acs_map[m] & A_ALTCHARSET) {
+- SetChar(_nc_wacs[m], m, A_ALTCHARSET);
+- } else {
+- SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
+- }
++ if ((_nc_wacs = typeCalloc(cchar_t, ACS_LEN)) != 0) {
++
++ for (n = 0; n < SIZEOF(table); ++n) {
++ int wide = wcwidth((wchar_t) table[n].value[active]);
+
+- T(("#%d, SetChar(%c, %#04x) = %s",
+- n, m,
+- table[n].value[active],
+- _tracecchar_t(&_nc_wacs[m])));
++ m = table[n].map;
++ if (active && (wide == 1)) {
++ SetChar(_nc_wacs[m], table[n].value[1], A_NORMAL);
++ } else if (acs_map[m] & A_ALTCHARSET) {
++ SetChar(_nc_wacs[m], m, A_ALTCHARSET);
++ } else {
++ SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL);
++ }
++
++ T(("#%d, SetChar(%c, %#04x) = %s",
++ n, m,
++ table[n].value[active],
++ _tracecchar_t(&_nc_wacs[m])));
++ }
+ }
+ }
+Index: ncurses/widechar/lib_wunctrl.c
+Prereq: 1.14
+--- ncurses-5.9/ncurses/widechar/lib_wunctrl.c 2010-12-19 01:42:15.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/lib_wunctrl.c 2012-12-15 20:53:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2001-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2001-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,14 +35,17 @@
+
+ #include <curses.priv.h>
+
+-MODULE_ID("$Id: lib_wunctrl.c,v 1.14 2010/12/19 01:42:15 tom Exp $")
++MODULE_ID("$Id: lib_wunctrl.c,v 1.16 2012/12/15 20:53:42 tom Exp $")
+
+ NCURSES_EXPORT(wchar_t *)
+ NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc)
+ {
+ static wchar_t str[CCHARW_MAX + 1], *wsp;
++ wchar_t *result;
+
+- if (Charable(*wc)) {
++ if (wc == 0) {
++ result = 0;
++ } else if (SP_PARM != 0 && Charable(*wc)) {
+ const char *p =
+ NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx
+ (unsigned) _nc_to_char((wint_t)CharOf(*wc)));
+@@ -51,9 +54,11 @@
+ *wsp++ = (wchar_t) _nc_to_widechar(*p);
+ }
+ *wsp = 0;
+- return str;
+- } else
+- return wc->chars;
++ result = str;
++ } else {
++ result = wc->chars;
++ }
++ return result;
+ }
+
+ #if NCURSES_SP_FUNCS
+Index: ncurses/widechar/widechars.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/ncurses/widechar/widechars.c 2013-03-02 18:55:51.000000000 +0000
+@@ -0,0 +1,152 @@
++/****************************************************************************
++ * Copyright (c) 2012,2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++#include <curses.priv.h>
++
++#if USE_WIDEC_SUPPORT
++
++MODULE_ID("$Id: widechars.c,v 1.5 2013/03/02 18:55:51 tom Exp $")
++
++#if defined(__MINGW32__)
++/*
++ * MinGW has wide-character functions, but they do not work correctly.
++ */
++
++int
++_nc_mbtowc(wchar_t *pwc, const char *s, size_t n)
++{
++ int result;
++ int count;
++ int try;
++
++ if (s != 0 && n != 0) {
++ /*
++ * MultiByteToWideChar() can decide to return more than one
++ * wide-character. We want only one. Ignore any trailing null, both
++ * in the initial count and in the conversion.
++ */
++ count = 0;
++ for (try = 1; try <= (int) n; ++try) {
++ count = MultiByteToWideChar(CP_UTF8,
++ MB_ERR_INVALID_CHARS,
++ s,
++ try,
++ pwc,
++ 0);
++ TR(TRACE_BITS, ("...try %d:%d", try, count));
++ if (count > 0) {
++ break;
++ }
++ }
++ if (count < 1 || count > 2) {
++ result = -1;
++ } else {
++ wchar_t actual[2];
++ memset(&actual, 0, sizeof(actual));
++ count = MultiByteToWideChar(CP_UTF8,
++ MB_ERR_INVALID_CHARS,
++ s,
++ try,
++ actual,
++ 2);
++ TR(TRACE_BITS, ("\twin32 ->%#x, %#x", actual[0], actual[1]));
++ *pwc = actual[0];
++ if (actual[1] != 0)
++ result = -1;
++ else
++ result = try;
++ }
++ } else {
++ result = 0;
++ }
++
++ return result;
++}
++
++int
++_nc_mblen(const char *s, size_t n)
++{
++ int result = -1;
++ int count;
++ wchar_t temp;
++
++ if (s != 0 && n != 0) {
++ count = _nc_mbtowc(&temp, s, n);
++ if (count == 1) {
++ int check = WideCharToMultiByte(CP_UTF8,
++ 0,
++ &temp,
++ 1,
++ NULL,
++ 0, /* compute length only */
++ NULL,
++ NULL);
++ TR(TRACE_BITS, ("\tcheck ->%d\n", check));
++ if (check > 0 && (size_t) check <= n) {
++ result = check;
++ }
++ }
++ } else {
++ result = 0;
++ }
++
++ return result;
++}
++
++int __MINGW_NOTHROW
++_nc_wctomb(char *s, wchar_t wc)
++{
++ int result;
++ int check;
++
++ check = WideCharToMultiByte(CP_UTF8,
++ 0,
++ &wc,
++ 1,
++ NULL,
++ 0, /* compute length only */
++ NULL,
++ NULL);
++ if (check > 0) {
++ result = WideCharToMultiByte(CP_UTF8,
++ 0,
++ &wc,
++ 1,
++ s,
++ check + 1,
++ NULL,
++ NULL);
++ } else {
++ result = -1;
++ }
++ return result;
++}
++
++#endif /* __MINGW32__ */
++
++#endif /* USE_WIDEC_SUPPORT */
+Index: ncurses/win32con/gettimeofday.c
+Prereq: 1.2
+--- ncurses-5.9/ncurses/win32con/gettimeofday.c 2010-01-16 15:18:51.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/win32con/gettimeofday.c 2014-04-26 19:41:34.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,13 +26,16 @@
+ * authorization. *
+ ****************************************************************************/
+
++#ifdef WINVER
++# undef WINVER
++#endif
+ #define WINVER 0x0501
+
+ #include <curses.priv.h>
+
+ #include <windows.h>
+
+-MODULE_ID("$Id: gettimeofday.c,v 1.2 2010/01/16 15:18:51 tom Exp $")
++MODULE_ID("$Id: gettimeofday.c,v 1.3 2014/04/26 19:41:34 juergen Exp $")
+
+ #define JAN1970 116444736000000000LL /* the value for 01/01/1970 00:00 */
+
+Index: ncurses/win32con/win_driver.c
+Prereq: 1.10
+--- ncurses-5.9/ncurses/win32con/win_driver.c 2010-12-25 19:28:21.000000000 +0000
++++ ncurses-5.9-20141206/ncurses/win32con/win_driver.c 2014-10-25 00:24:24.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -28,26 +28,61 @@
+
+ /****************************************************************************
+ * Author: Juergen Pfeifer *
+- * *
++ * and: Thomas E. Dickey *
+ ****************************************************************************/
+
+ /*
+ * TODO - GetMousePos(POINT * result) from ntconio.c
+ * TODO - implement nodelay
++ * TODO - improve screen-repainting performance, using implied wraparound to reduce write's
++ * TODO - make it optional whether screen is restored or not when non-buffered
+ */
+
+ #include <curses.priv.h>
++
++#ifdef __MINGW32__
++#include <tchar.h>
++#else
++#include <windows.h>
++#include <wchar.h>
++#endif
++
++#include <io.h>
++
++#define PSAPI_VERSION 2
++#include <psapi.h>
++
+ #define CUR my_term.type.
+
+-MODULE_ID("$Id: win_driver.c,v 1.10 2010/12/25 19:28:21 tom Exp $")
++MODULE_ID("$Id: win_driver.c,v 1.52 2014/10/25 00:24:24 tom Exp $")
++
++#ifndef __GNUC__
++# error We need GCC to compile for MinGW
++#endif
+
+ #define WINMAGIC NCDRV_MAGIC(NCDRV_WINCONSOLE)
+
+-#define AssertTCB() assert(TCB!=0 && TCB->magic==WINMAGIC)
+-#define SetSP() assert(TCB->csp!=0); sp = TCB->csp
++#define EXP_OPTIMIZE 0
++
++#define array_length(a) (sizeof(a)/sizeof(a[0]))
++
++#define okConsoleHandle(TCB) (TCB != 0 && CON.hdl != INVALID_HANDLE_VALUE)
++
++#define AssertTCB() assert(TCB != 0 && (TCB->magic == WINMAGIC))
++#define SetSP() assert(TCB->csp != 0); sp = TCB->csp; (void) sp
+
+ #define GenMap(vKey,key) MAKELONG(key, vKey)
+
++#define AdjustY() (CON.buffered ? 0 : (int) CON.SBI.srWindow.Top)
++
++#if USE_WIDEC_SUPPORT
++#define write_screen WriteConsoleOutputW
++#define read_screen ReadConsoleOutputW
++#else
++#define write_screen WriteConsoleOutput
++#define read_screen ReadConsoleOutput
++#endif
++
+ static const LONG keylist[] =
+ {
+ GenMap(VK_PRIOR, KEY_PPAGE),
+@@ -61,31 +96,40 @@
+ GenMap(VK_DELETE, KEY_DC),
+ GenMap(VK_INSERT, KEY_IC)
+ };
+-#define N_INI ((int)(sizeof(keylist)/sizeof(keylist[0])))
++#define N_INI ((int)array_length(keylist))
+ #define FKEYS 24
+ #define MAPSIZE (FKEYS + N_INI)
+ #define NUMPAIRS 64
+
+-typedef struct props {
+- CONSOLE_SCREEN_BUFFER_INFO SBI;
+- bool progMode;
++/* A process can only have a single console, so it's save
++ to maintain all the information about it in a single
++ static scructure.
++ */
++static struct {
++ BOOL initialized;
++ BOOL buffered;
++ BOOL window_only;
++ BOOL progMode;
++ BOOL isMinTTY;
++ BOOL isTermInfoConsole;
++ HANDLE out;
++ HANDLE inp;
++ HANDLE hdl;
++ HANDLE lastOut;
++ int numButtons;
+ DWORD map[MAPSIZE];
+ DWORD rmap[MAPSIZE];
+ WORD pairs[NUMPAIRS];
+-} Properties;
+-
+-#define PropOf(TCB) ((Properties*)TCB->prop)
++ COORD origin;
++ CHAR_INFO *save_screen;
++ COORD save_size;
++ SMALL_RECT save_region;
++ CONSOLE_SCREEN_BUFFER_INFO SBI;
++ CONSOLE_SCREEN_BUFFER_INFO save_SBI;
++ CONSOLE_CURSOR_INFO save_CI;
++} CON;
+
+-int
+-_nc_mingw_ioctl(int fd GCC_UNUSED,
+- long int request GCC_UNUSED,
+- struct termios *arg GCC_UNUSED)
+-{
+- return 0;
+- endwin();
+- fprintf(stderr, "TERMINFO currently not supported on Windows.\n");
+- exit(1);
+-}
++static BOOL console_initialized = FALSE;
+
+ static WORD
+ MapColor(bool fore, int color)
+@@ -102,29 +146,32 @@
+ return (WORD) a;
+ }
+
++#define RevAttr(attr) \
++ (WORD) (((attr) & 0xff00) | \
++ ((((attr) & 0x07) << 4) | \
++ (((attr) & 0x70) >> 4)))
++
+ static WORD
+-MapAttr(TERMINAL_CONTROL_BLOCK * TCB, WORD res, chtype ch)
++MapAttr(WORD res, attr_t ch)
+ {
+ if (ch & A_COLOR) {
+ int p;
+- SCREEN *sp;
+
+- AssertTCB();
+- SetSP();
+ p = PairNumber(ch);
+- if (p > 0 && p < NUMPAIRS && TCB != 0 && sp != 0) {
++ if (p > 0 && p < NUMPAIRS) {
+ WORD a;
+- a = PropOf(TCB)->pairs[p];
+- res = (res & 0xff00) | a;
++ a = CON.pairs[p];
++ res = (WORD) ((res & 0xff00) | a);
+ }
+ }
+
+- if (ch & A_REVERSE)
+- res = ((res & 0xff00) | (((res & 0x07) << 4) | ((res & 0x70) >> 4)));
++ if (ch & A_REVERSE) {
++ res = RevAttr(res);
++ }
+
+- if (ch & A_STANDOUT)
+- res = ((res & 0xff00) | (((res & 0x07) << 4) | ((res & 0x70) >> 4))
+- | BACKGROUND_INTENSITY);
++ if (ch & A_STANDOUT) {
++ res = RevAttr(res) | BACKGROUND_INTENSITY;
++ }
+
+ if (ch & A_BOLD)
+ res |= FOREGROUND_INTENSITY;
+@@ -135,33 +182,138 @@
+ return res;
+ }
+
++#if 0 /* def TRACE */
++static void
++dump_screen(const char *fn, int ln)
++{
++ int max_cells = (CON.SBI.dwSize.Y * (1 + CON.SBI.dwSize.X)) + 1;
++ char output[max_cells];
++ CHAR_INFO save_screen[max_cells];
++ COORD save_size;
++ SMALL_RECT save_region;
++ COORD bufferCoord;
++
++ T(("dump_screen %s@%d", fn, ln));
++
++ save_region.Top = CON.SBI.srWindow.Top;
++ save_region.Left = CON.SBI.srWindow.Left;
++ save_region.Bottom = CON.SBI.srWindow.Bottom;
++ save_region.Right = CON.SBI.srWindow.Right;
++
++ save_size.X = (SHORT) (save_region.Right - save_region.Left + 1);
++ save_size.Y = (SHORT) (save_region.Bottom - save_region.Top + 1);
++
++ bufferCoord.X = bufferCoord.Y = 0;
++
++ if (read_screen(CON.hdl,
++ save_screen,
++ save_size,
++ bufferCoord,
++ &save_region)) {
++ int i, j;
++ int ij = 0;
++ int k = 0;
++
++ for (i = save_region.Top; i <= save_region.Bottom; ++i) {
++ for (j = save_region.Left; j <= save_region.Right; ++j) {
++ output[k++] = save_screen[ij++].Char.AsciiChar;
++ }
++ output[k++] = '\n';
++ }
++ output[k] = 0;
++
++ T(("DUMP: %d,%d - %d,%d",
++ save_region.Top,
++ save_region.Left,
++ save_region.Bottom,
++ save_region.Right));
++ T(("%s", output));
++ }
++}
++
++#else
++#define dump_screen(fn,ln) /* nothing */
++#endif
++
++#if USE_WIDEC_SUPPORT
++/*
++ * TODO: support surrogate pairs
++ * TODO: support combining characters
++ * TODO: support acsc
++ * TODO: _nc_wacs should be part of sp.
++ */
+ static BOOL
+-con_write(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n)
++con_write16(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, cchar_t *str, int limit)
+ {
+- CHAR_INFO ci[n];
++ int actual = 0;
++ CHAR_INFO ci[limit];
+ COORD loc, siz;
+ SMALL_RECT rec;
+ int i;
+- chtype ch;
++ cchar_t ch;
+ SCREEN *sp;
+
+ AssertTCB();
++ SetSP();
+
+- if (TCB == 0 || InvalidConsoleHandle(TCB->hdl))
+- return FALSE;
++ for (i = actual = 0; i < limit; i++) {
++ ch = str[i];
++ if (isWidecExt(ch))
++ continue;
++ ci[actual].Char.UnicodeChar = CharOf(ch);
++ ci[actual].Attributes = MapAttr(CON.SBI.wAttributes,
++ AttrOf(ch));
++ if (AttrOf(ch) & A_ALTCHARSET) {
++ if (_nc_wacs) {
++ int which = CharOf(ch);
++ if (which > 0
++ && which < ACS_LEN
++ && CharOf(_nc_wacs[which]) != 0) {
++ ci[actual].Char.UnicodeChar = CharOf(_nc_wacs[which]);
++ } else {
++ ci[actual].Char.UnicodeChar = ' ';
++ }
++ }
++ }
++ ++actual;
++ }
+
++ loc.X = (SHORT) 0;
++ loc.Y = (SHORT) 0;
++ siz.X = (SHORT) actual;
++ siz.Y = 1;
++
++ rec.Left = (SHORT) x;
++ rec.Top = (SHORT) (y + AdjustY());
++ rec.Right = (SHORT) (x + limit - 1);
++ rec.Bottom = rec.Top;
++
++ return write_screen(CON.hdl, ci, siz, loc, &rec);
++}
++#define con_write(tcb, y, x, str, n) con_write16(tcb, y, x, str, n)
++#else
++static BOOL
++con_write8(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n)
++{
++ CHAR_INFO ci[n];
++ COORD loc, siz;
++ SMALL_RECT rec;
++ int i;
++ chtype ch;
++ SCREEN *sp;
++
++ AssertTCB();
+ SetSP();
+
+ for (i = 0; i < n; i++) {
+ ch = str[i];
+ ci[i].Char.AsciiChar = ChCharOf(ch);
+- ci[i].Attributes = MapAttr(TCB,
+- PropOf(TCB)->SBI.wAttributes,
++ ci[i].Attributes = MapAttr(CON.SBI.wAttributes,
+ ChAttrOf(ch));
+ if (ChAttrOf(ch) & A_ALTCHARSET) {
+ if (sp->_acs_map)
+ ci[i].Char.AsciiChar =
+- ChCharOf(NCURSES_SP_NAME(_nc_acs_char) (sp, ChCharOf(ch)));
++ ChCharOf(NCURSES_SP_NAME(_nc_acs_char) (sp, ChCharOf(ch)));
+ }
+ }
+
+@@ -175,57 +327,223 @@
+ rec.Right = (short) (x + n - 1);
+ rec.Bottom = rec.Top;
+
+- return WriteConsoleOutput(TCB->hdl, ci, siz, loc, &rec);
++ return write_screen(CON.hdl, ci, siz, loc, &rec);
++}
++#define con_write(tcb, y, x, str, n) con_write8(tcb, y, x, str, n)
++#endif
++
++#if EXP_OPTIMIZE
++/*
++ * Comparing new/current screens, determine the last column-index for a change
++ * beginning on the given row,col position. Unlike a serial terminal, there is
++ * no cost for "moving" the "cursor" on the line as we update it.
++ */
++static int
++find_end_of_change(SCREEN *sp, int row, int col)
++{
++ int result = col;
++ struct ldat *curdat = CurScreen(sp)->_line + row;
++ struct ldat *newdat = NewScreen(sp)->_line + row;
++
++ while (col <= newdat->lastchar) {
++#if USE_WIDEC_SUPPORT
++ if (isWidecExt(curdat->text[col]) || isWidecExt(newdat->text[col])) {
++ result = col;
++ } else if (memcmp(&curdat->text[col],
++ &newdat->text[col],
++ sizeof(curdat->text[0]))) {
++ result = col;
++ } else {
++ break;
++ }
++#else
++ if (curdat->text[col] != newdat->text[col]) {
++ result = col;
++ } else {
++ break;
++ }
++#endif
++ ++col;
++ }
++ return result;
++}
++
++/*
++ * Given a row,col position at the end of a change-chunk, look for the
++ * beginning of the next change-chunk.
++ */
++static int
++find_next_change(SCREEN *sp, int row, int col)
++{
++ struct ldat *curdat = CurScreen(sp)->_line + row;
++ struct ldat *newdat = NewScreen(sp)->_line + row;
++ int result = newdat->lastchar + 1;
++
++ while (++col <= newdat->lastchar) {
++#if USE_WIDEC_SUPPORT
++ if (isWidecExt(curdat->text[col]) != isWidecExt(newdat->text[col])) {
++ result = col;
++ break;
++ } else if (memcmp(&curdat->text[col],
++ &newdat->text[col],
++ sizeof(curdat->text[0]))) {
++ result = col;
++ break;
++ }
++#else
++ if (curdat->text[col] != newdat->text[col]) {
++ result = col;
++ break;
++ }
++#endif
++ }
++ return result;
+ }
+
++#define EndChange(first) \
++ find_end_of_change(sp, y, first)
++#define NextChange(last) \
++ find_next_change(sp, y, last)
++
++#endif /* EXP_OPTIMIZE */
++
+ #define MARK_NOCHANGE(win,row) \
+ win->_line[row].firstchar = _NOCHANGE; \
+ win->_line[row].lastchar = _NOCHANGE
+
++static void
++selectActiveHandle(void)
++{
++ if (CON.lastOut != CON.hdl) {
++ CON.lastOut = CON.hdl;
++ SetConsoleActiveScreenBuffer(CON.lastOut);
++ }
++}
++
++static bool
++restore_original_screen(void)
++{
++ COORD bufferCoord;
++ bool result = FALSE;
++ SMALL_RECT save_region = CON.save_region;
++
++ T(("... restoring %s", CON.window_only ? "window" : "entire buffer"));
++
++ bufferCoord.X = (SHORT) (CON.window_only ? CON.SBI.srWindow.Left : 0);
++ bufferCoord.Y = (SHORT) (CON.window_only ? CON.SBI.srWindow.Top : 0);
++
++ if (write_screen(CON.hdl,
++ CON.save_screen,
++ CON.save_size,
++ bufferCoord,
++ &save_region)) {
++ result = TRUE;
++ mvcur(-1, -1, LINES - 2, 0);
++ T(("... restore original screen contents ok %dx%d (%d,%d - %d,%d)",
++ CON.save_size.Y,
++ CON.save_size.X,
++ save_region.Top,
++ save_region.Left,
++ save_region.Bottom,
++ save_region.Right));
++ } else {
++ T(("... restore original screen contents err"));
++ }
++ return result;
++}
++
++static const char *
++wcon_name(TERMINAL_CONTROL_BLOCK * TCB)
++{
++ (void) TCB;
++ return "win32console";
++}
++
+ static int
+-drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB)
++wcon_doupdate(TERMINAL_CONTROL_BLOCK * TCB)
+ {
++ int result = ERR;
+ int y, nonempty, n, x0, x1, Width, Height;
+ SCREEN *sp;
+
+ AssertTCB();
+ SetSP();
+
+- Width = screen_columns(sp);
+- Height = screen_lines(sp);
+- nonempty = min(Height, NewScreen(sp)->_maxy + 1);
+-
+- if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) {
+- int x;
+- chtype empty[Width];
++ T((T_CALLED("win32con::wcon_doupdate(%p)"), TCB));
++ if (okConsoleHandle(TCB)) {
++
++ Width = screen_columns(sp);
++ Height = screen_lines(sp);
++ nonempty = min(Height, NewScreen(sp)->_maxy + 1);
++
++ T(("... %dx%d clear cur:%d new:%d",
++ Height, Width,
++ CurScreen(sp)->_clear,
++ NewScreen(sp)->_clear));
++
++ if (SP_PARM->_endwin) {
+
+- for (x = 0; x < Width; x++)
+- empty[x] = ' ';
++ T(("coming back from shell mode"));
++ NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG);
++
++ NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_ARG);
++ NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_ARG);
++ SP_PARM->_mouse_resume(SP_PARM);
++
++ SP_PARM->_endwin = FALSE;
++ }
++
++ if ((CurScreen(sp)->_clear || NewScreen(sp)->_clear)) {
++ int x;
++#if USE_WIDEC_SUPPORT
++ cchar_t empty[Width];
++ wchar_t blank[2] =
++ {
++ L' ', L'\0'
++ };
++
++ for (x = 0; x < Width; x++)
++ setcchar(&empty[x], blank, 0, 0, 0);
++#else
++ chtype empty[Width];
++
++ for (x = 0; x < Width; x++)
++ empty[x] = ' ';
++#endif
++
++ for (y = 0; y < nonempty; y++) {
++ con_write(TCB, y, 0, empty, Width);
++ memcpy(empty,
++ CurScreen(sp)->_line[y].text,
++ (size_t) Width * sizeof(empty[0]));
++ }
++ CurScreen(sp)->_clear = FALSE;
++ NewScreen(sp)->_clear = FALSE;
++ touchwin(NewScreen(sp));
++ T(("... cleared %dx%d lines @%d of screen", nonempty, Width,
++ AdjustY()));
++ }
+
+ for (y = 0; y < nonempty; y++) {
+- con_write(TCB, y, 0, empty, Width);
+- memcpy(empty,
+- CurScreen(sp)->_line[y].text,
+- Width * sizeof(chtype));
+- }
+- CurScreen(sp)->_clear = FALSE;
+- NewScreen(sp)->_clear = FALSE;
+- touchwin(NewScreen(sp));
+- }
+-
+- for (y = 0; y < nonempty; y++) {
+- x0 = NewScreen(sp)->_line[y].firstchar;
+- if (x0 != _NOCHANGE) {
+- x1 = NewScreen(sp)->_line[y].lastchar;
+- n = x1 - x0 + 1;
+- if (n > 0) {
+- memcpy(CurScreen(sp)->_line[y].text + x0,
+- NewScreen(sp)->_line[y].text + x0,
+- n * sizeof(chtype));
+- con_write(TCB,
+- y,
+- x0,
+- ((chtype *) CurScreen(sp)->_line[y].text) + x0, n);
++ x0 = NewScreen(sp)->_line[y].firstchar;
++ if (x0 != _NOCHANGE) {
++#if EXP_OPTIMIZE
++ int x2;
++ int limit = NewScreen(sp)->_line[y].lastchar;
++ while ((x1 = EndChange(x0)) <= limit) {
++ while ((x2 = NextChange(x1)) <= limit && x2 <= (x1 + 2)) {
++ x1 = x2;
++ }
++ n = x1 - x0 + 1;
++ memcpy(&CurScreen(sp)->_line[y].text[x0],
++ &NewScreen(sp)->_line[y].text[x0],
++ n * sizeof(CurScreen(sp)->_line[y].text[x0]));
++ con_write(TCB,
++ y,
++ x0,
++ &CurScreen(sp)->_line[y].text[x0], n);
++ x0 = NextChange(x1);
++ }
+
+ /* mark line changed successfully */
+ if (y <= NewScreen(sp)->_maxy) {
+@@ -234,95 +552,160 @@
+ if (y <= CurScreen(sp)->_maxy) {
+ MARK_NOCHANGE(CurScreen(sp), y);
+ }
++#else
++ x1 = NewScreen(sp)->_line[y].lastchar;
++ n = x1 - x0 + 1;
++ if (n > 0) {
++ memcpy(&CurScreen(sp)->_line[y].text[x0],
++ &NewScreen(sp)->_line[y].text[x0],
++ (size_t) n * sizeof(CurScreen(sp)->_line[y].text[x0]));
++ con_write(TCB,
++ y,
++ x0,
++ &CurScreen(sp)->_line[y].text[x0], n);
++
++ /* mark line changed successfully */
++ if (y <= NewScreen(sp)->_maxy) {
++ MARK_NOCHANGE(NewScreen(sp), y);
++ }
++ if (y <= CurScreen(sp)->_maxy) {
++ MARK_NOCHANGE(CurScreen(sp), y);
++ }
++ }
++#endif
+ }
+ }
+- }
+
+- /* put everything back in sync */
+- for (y = nonempty; y <= NewScreen(sp)->_maxy; y++) {
+- MARK_NOCHANGE(NewScreen(sp), y);
+- }
+- for (y = nonempty; y <= CurScreen(sp)->_maxy; y++) {
+- MARK_NOCHANGE(CurScreen(sp), y);
+- }
+-
+- if (!NewScreen(sp)->_leaveok) {
+- CurScreen(sp)->_curx = NewScreen(sp)->_curx;
+- CurScreen(sp)->_cury = NewScreen(sp)->_cury;
++ /* put everything back in sync */
++ for (y = nonempty; y <= NewScreen(sp)->_maxy; y++) {
++ MARK_NOCHANGE(NewScreen(sp), y);
++ }
++ for (y = nonempty; y <= CurScreen(sp)->_maxy; y++) {
++ MARK_NOCHANGE(CurScreen(sp), y);
++ }
+
+- TCB->drv->hwcur(TCB, 0, 0, CurScreen(sp)->_cury, CurScreen(sp)->_curx);
++ if (!NewScreen(sp)->_leaveok) {
++ CurScreen(sp)->_curx = NewScreen(sp)->_curx;
++ CurScreen(sp)->_cury = NewScreen(sp)->_cury;
++
++ TCB->drv->td_hwcur(TCB,
++ 0, 0,
++ CurScreen(sp)->_cury, CurScreen(sp)->_curx);
++ }
++ selectActiveHandle();
++ result = OK;
+ }
+- SetConsoleActiveScreenBuffer(TCB->hdl);
+- return OK;
++ returnCode(result);
+ }
+
+ static bool
+-drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB,
+- const char *tname,
+- int *errret GCC_UNUSED)
++wcon_CanHandle(TERMINAL_CONTROL_BLOCK * TCB,
++ const char *tname,
++ int *errret GCC_UNUSED)
+ {
+ bool code = FALSE;
+
+- T((T_CALLED("win32con::drv_CanHandle(%p)"), TCB));
++ T((T_CALLED("win32con::wcon_CanHandle(%p)"), TCB));
+
+- assert(TCB != 0);
+- assert(tname != 0);
++ assert((TCB != 0) && (tname != 0));
+
+ TCB->magic = WINMAGIC;
+- if (*tname == 0 || *tname == 0) {
+- code = TRUE;
+- } else {
+- TERMINAL my_term;
+- int status;
+-
+- code = FALSE;
+-#if (USE_DATABASE || USE_TERMCAP)
+- status = _nc_setup_tinfo(tname, &my_term.type);
+-#else
+- status = TGETENT_NO;
+-#endif
+- if (status != TGETENT_YES) {
+- const TERMTYPE *fallback = _nc_fallback(tname);
+
+- if (fallback) {
+- my_term.type = *fallback;
+- status = TGETENT_YES;
+- } else if (!strcmp(tname, "unknown")) {
+- code = TRUE;
+- }
+- }
+- if (status == TGETENT_YES) {
+- if (generic_type || hard_copy)
+- code = TRUE;
++ if (tname == 0 || *tname == 0)
++ code = TRUE;
++ else if (tname != 0 && *tname == '#') {
++ /*
++ * Use "#" (a character which cannot begin a terminal's name) to
++ * select specific driver from the table.
++ *
++ * In principle, we could have more than one non-terminfo driver,
++ * e.g., "win32gui".
++ */
++ size_t n = strlen(tname + 1);
++ if (n != 0
++ && ((strncmp(tname + 1, "win32console", n) == 0)
++ || (strncmp(tname + 1, "win32con", n) == 0))) {
++ code = TRUE;
+ }
++ } else if (tname != 0 && stricmp(tname, "unknown") == 0) {
++ code = TRUE;
+ }
+
+- if (code) {
+- if ((TCB->term.type.Booleans) == 0) {
+- _nc_init_entry(&(TCB->term.type));
+- }
++ /*
++ * This is intentional, to avoid unnecessary breakage of applications
++ * using <term.h> symbols.
++ */
++ if (code && (TCB->term.type.Booleans == 0)) {
++ _nc_init_termtype(&(TCB->term.type));
+ }
+
++ if (!code) {
++ if (_nc_mingw_isconsole(0))
++ CON.isTermInfoConsole = TRUE;
++ }
+ returnBool(code);
+ }
+
+ static int
+-drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB,
+- bool beepFlag GCC_UNUSED)
++wcon_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB,
++ int beepFlag)
+ {
+ SCREEN *sp;
+- int res = ERR;
++ int res = OK;
++
++ int high = (CON.SBI.srWindow.Bottom - CON.SBI.srWindow.Top + 1);
++ int wide = (CON.SBI.srWindow.Right - CON.SBI.srWindow.Left + 1);
++ int max_cells = (high * wide);
++ int i;
++
++ CHAR_INFO this_screen[max_cells];
++ CHAR_INFO that_screen[max_cells];
++ COORD this_size;
++ SMALL_RECT this_region;
++ COORD bufferCoord;
+
+ AssertTCB();
++
+ SetSP();
+
++ this_region.Top = CON.SBI.srWindow.Top;
++ this_region.Left = CON.SBI.srWindow.Left;
++ this_region.Bottom = CON.SBI.srWindow.Bottom;
++ this_region.Right = CON.SBI.srWindow.Right;
++
++ this_size.X = (SHORT) wide;
++ this_size.Y = (SHORT) high;
++
++ bufferCoord.X = this_region.Left;
++ bufferCoord.Y = this_region.Top;
++
++ if (!beepFlag &&
++ read_screen(CON.hdl,
++ this_screen,
++ this_size,
++ bufferCoord,
++ &this_region)) {
++
++ memcpy(that_screen, this_screen, sizeof(that_screen));
++
++ for (i = 0; i < max_cells; i++) {
++ that_screen[i].Attributes = RevAttr(that_screen[i].Attributes);
++ }
++
++ write_screen(CON.hdl, that_screen, this_size, bufferCoord, &this_region);
++ Sleep(200);
++ write_screen(CON.hdl, this_screen, this_size, bufferCoord, &this_region);
++
++ } else {
++ MessageBeep(MB_ICONWARNING); /* MB_OK might be better */
++ }
+ return res;
+ }
+
+ static int
+-drv_print(TERMINAL_CONTROL_BLOCK * TCB,
+- char *data GCC_UNUSED,
+- int len GCC_UNUSED)
++wcon_print(TERMINAL_CONTROL_BLOCK * TCB,
++ char *data GCC_UNUSED,
++ int len GCC_UNUSED)
+ {
+ SCREEN *sp;
+
+@@ -333,9 +716,9 @@
+ }
+
+ static int
+-drv_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB,
+- int fg GCC_UNUSED,
+- int bg GCC_UNUSED)
++wcon_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB,
++ int fg GCC_UNUSED,
++ int bg GCC_UNUSED)
+ {
+ SCREEN *sp;
+ int code = ERR;
+@@ -346,39 +729,73 @@
+ return (code);
+ }
+
++static bool
++get_SBI(void)
++{
++ bool rc = FALSE;
++ if (GetConsoleScreenBufferInfo(CON.hdl, &(CON.SBI))) {
++ T(("GetConsoleScreenBufferInfo"));
++ T(("... buffer(X:%d Y:%d)",
++ CON.SBI.dwSize.X,
++ CON.SBI.dwSize.Y));
++ T(("... window(X:%d Y:%d)",
++ CON.SBI.dwMaximumWindowSize.X,
++ CON.SBI.dwMaximumWindowSize.Y));
++ T(("... cursor(X:%d Y:%d)",
++ CON.SBI.dwCursorPosition.X,
++ CON.SBI.dwCursorPosition.Y));
++ T(("... display(Top:%d Bottom:%d Left:%d Right:%d)",
++ CON.SBI.srWindow.Top,
++ CON.SBI.srWindow.Bottom,
++ CON.SBI.srWindow.Left,
++ CON.SBI.srWindow.Right));
++ if (CON.buffered) {
++ CON.origin.X = 0;
++ CON.origin.Y = 0;
++ } else {
++ CON.origin.X = CON.SBI.srWindow.Left;
++ CON.origin.Y = CON.SBI.srWindow.Top;
++ }
++ rc = TRUE;
++ } else {
++ T(("GetConsoleScreenBufferInfo ERR"));
++ }
++ return rc;
++}
++
+ static void
+-drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB,
+- bool fore,
+- int color,
+- int (*outc) (SCREEN *, int) GCC_UNUSED)
++wcon_setcolor(TERMINAL_CONTROL_BLOCK * TCB,
++ int fore,
++ int color,
++ int (*outc) (SCREEN *, int) GCC_UNUSED)
+ {
+ AssertTCB();
+
+- if (TCB && !InvalidConsoleHandle(TCB->hdl)) {
++ if (okConsoleHandle(TCB)) {
+ WORD a = MapColor(fore, color);
+- a = ((PropOf(TCB)->SBI.wAttributes) & (fore ? 0xfff8 : 0xff8f)) | a;
+- SetConsoleTextAttribute(TCB->hdl, a);
+- GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI));
++ a |= (WORD) ((CON.SBI.wAttributes) & (fore ? 0xfff8 : 0xff8f));
++ SetConsoleTextAttribute(CON.hdl, a);
++ get_SBI();
+ }
+ }
+
+ static bool
+-drv_rescol(TERMINAL_CONTROL_BLOCK * TCB)
++wcon_rescol(TERMINAL_CONTROL_BLOCK * TCB)
+ {
+ bool res = FALSE;
+
+ AssertTCB();
+- if (TCB && !InvalidConsoleHandle(TCB->hdl)) {
++ if (okConsoleHandle(TCB)) {
+ WORD a = FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN;
+- SetConsoleTextAttribute(TCB->hdl, a);
+- GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI));
++ SetConsoleTextAttribute(CON.hdl, a);
++ get_SBI();
+ res = TRUE;
+ }
+ return res;
+ }
+
+ static bool
+-drv_rescolors(TERMINAL_CONTROL_BLOCK * TCB)
++wcon_rescolors(TERMINAL_CONTROL_BLOCK * TCB)
+ {
+ int result = FALSE;
+ SCREEN *sp;
+@@ -390,29 +807,42 @@
+ }
+
+ static int
+-drv_size(TERMINAL_CONTROL_BLOCK * TCB, int *Lines, int *Cols)
++wcon_size(TERMINAL_CONTROL_BLOCK * TCB, int *Lines, int *Cols)
+ {
++ int result = ERR;
++
+ AssertTCB();
+
+- if (TCB == NULL || Lines == NULL || Cols == NULL || InvalidConsoleHandle(TCB->hdl))
+- return ERR;
++ T((T_CALLED("win32con::wcon_size(%p)"), TCB));
+
+- *Lines = (int) (PropOf(TCB)->SBI.dwSize.Y);
+- *Cols = (int) (PropOf(TCB)->SBI.dwSize.X);
+- return OK;
++ if (okConsoleHandle(TCB) &&
++ Lines != NULL &&
++ Cols != NULL) {
++ if (CON.buffered) {
++ *Lines = (int) (CON.SBI.dwSize.Y);
++ *Cols = (int) (CON.SBI.dwSize.X);
++ } else {
++ *Lines = (int) (CON.SBI.srWindow.Bottom + 1 -
++ CON.SBI.srWindow.Top);
++ *Cols = (int) (CON.SBI.srWindow.Right + 1 -
++ CON.SBI.srWindow.Left);
++ }
++ result = OK;
++ }
++ returnCode(result);
+ }
+
+ static int
+-drv_setsize(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED,
+- int l GCC_UNUSED,
+- int c GCC_UNUSED)
++wcon_setsize(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED,
++ int l GCC_UNUSED,
++ int c GCC_UNUSED)
+ {
+ AssertTCB();
+ return ERR;
+ }
+
+ static int
+-drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf)
++wcon_sgmode(TERMINAL_CONTROL_BLOCK * TCB, int setFlag, TTY * buf)
+ {
+ DWORD dwFlag = 0;
+ tcflag_t iflag;
+@@ -427,48 +857,48 @@
+ iflag = buf->c_iflag;
+ lflag = buf->c_lflag;
+
+- GetConsoleMode(TCB->inp, &dwFlag);
++ GetConsoleMode(CON.inp, &dwFlag);
+
+ if (lflag & ICANON)
+ dwFlag |= ENABLE_LINE_INPUT;
+ else
+- dwFlag &= ~ENABLE_LINE_INPUT;
++ dwFlag &= (DWORD) (~ENABLE_LINE_INPUT);
+
+ if (lflag & ECHO)
+ dwFlag |= ENABLE_ECHO_INPUT;
+ else
+- dwFlag &= ~ENABLE_ECHO_INPUT;
++ dwFlag &= (DWORD) (~ENABLE_ECHO_INPUT);
+
+ if (iflag & BRKINT)
+ dwFlag |= ENABLE_PROCESSED_INPUT;
+ else
+- dwFlag &= ~ENABLE_PROCESSED_INPUT;
++ dwFlag &= (DWORD) (~ENABLE_PROCESSED_INPUT);
+
+ dwFlag |= ENABLE_MOUSE_INPUT;
+
+ buf->c_iflag = iflag;
+ buf->c_lflag = lflag;
+- SetConsoleMode(TCB->inp, dwFlag);
++ SetConsoleMode(CON.inp, dwFlag);
+ TCB->term.Nttyb = *buf;
+ } else {
+ iflag = TCB->term.Nttyb.c_iflag;
+ lflag = TCB->term.Nttyb.c_lflag;
+- GetConsoleMode(TCB->inp, &dwFlag);
++ GetConsoleMode(CON.inp, &dwFlag);
+
+ if (dwFlag & ENABLE_LINE_INPUT)
+ lflag |= ICANON;
+ else
+- lflag &= ~ICANON;
++ lflag &= (tcflag_t) (~ICANON);
+
+ if (dwFlag & ENABLE_ECHO_INPUT)
+ lflag |= ECHO;
+ else
+- lflag &= ~ECHO;
++ lflag &= (tcflag_t) (~ECHO);
+
+ if (dwFlag & ENABLE_PROCESSED_INPUT)
+ iflag |= BRKINT;
+ else
+- iflag &= ~BRKINT;
++ iflag &= (tcflag_t) (~BRKINT);
+
+ TCB->term.Nttyb.c_iflag = iflag;
+ TCB->term.Nttyb.c_lflag = lflag;
+@@ -478,8 +908,86 @@
+ return OK;
+ }
+
++#define MIN_WIDE 80
++#define MIN_HIGH 24
++
++/*
++ * In "normal" mode, reset the buffer- and window-sizes back to their original values.
++ */
++static void
++set_scrollback(bool normal, CONSOLE_SCREEN_BUFFER_INFO * info)
++{
++ SMALL_RECT rect;
++ COORD coord;
++ bool changed = FALSE;
++
++ T((T_CALLED("win32con::set_scrollback(%s)"),
++ (normal
++ ? "normal"
++ : "application")));
++
++ T(("... SBI.srWindow %d,%d .. %d,%d",
++ info->srWindow.Top,
++ info->srWindow.Left,
++ info->srWindow.Bottom,
++ info->srWindow.Right));
++ T(("... SBI.dwSize %dx%d",
++ info->dwSize.Y,
++ info->dwSize.X));
++
++ if (normal) {
++ rect = info->srWindow;
++ coord = info->dwSize;
++ if (memcmp(info, &CON.SBI, sizeof(*info)) != 0) {
++ changed = TRUE;
++ CON.SBI = *info;
++ }
++ } else {
++ int high = info->srWindow.Bottom - info->srWindow.Top + 1;
++ int wide = info->srWindow.Right - info->srWindow.Left + 1;
++
++ if (high < MIN_HIGH) {
++ T(("... height %d < %d", high, MIN_HIGH));
++ high = MIN_HIGH;
++ changed = TRUE;
++ }
++ if (wide < MIN_WIDE) {
++ T(("... width %d < %d", wide, MIN_WIDE));
++ wide = MIN_WIDE;
++ changed = TRUE;
++ }
++
++ rect.Left =
++ rect.Top = 0;
++ rect.Right = (SHORT) (wide - 1);
++ rect.Bottom = (SHORT) (high - 1);
++
++ coord.X = (SHORT) wide;
++ coord.Y = (SHORT) high;
++
++ if (info->dwSize.Y != high ||
++ info->dwSize.X != wide ||
++ info->srWindow.Top != 0 ||
++ info->srWindow.Left != 0) {
++ changed = TRUE;
++ }
++
++ }
++
++ if (changed) {
++ T(("... coord %d,%d", coord.Y, coord.X));
++ T(("... rect %d,%d - %d,%d",
++ rect.Top, rect.Left,
++ rect.Bottom, rect.Right));
++ SetConsoleScreenBufferSize(CON.hdl, coord); /* dwSize */
++ SetConsoleWindowInfo(CON.hdl, TRUE, &rect); /* srWindow */
++ get_SBI();
++ }
++ returnVoid;
++}
++
+ static int
+-drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag)
++wcon_mode(TERMINAL_CONTROL_BLOCK * TCB, int progFlag, int defFlag)
+ {
+ SCREEN *sp;
+ TERMINAL *_term = (TERMINAL *) TCB;
+@@ -488,30 +996,35 @@
+ AssertTCB();
+ sp = TCB->csp;
+
+- PropOf(TCB)->progMode = progFlag;
+- SetConsoleActiveScreenBuffer(progFlag ? TCB->hdl : TCB->out);
++ T((T_CALLED("win32con::wcon_mode(%p, prog=%d, def=%d)"), TCB, progFlag, defFlag));
++ CON.progMode = progFlag;
++ CON.lastOut = progFlag ? CON.hdl : CON.out;
++ SetConsoleActiveScreenBuffer(CON.lastOut);
+
+ if (progFlag) /* prog mode */ {
+ if (defFlag) {
+- if ((drv_sgmode(TCB, FALSE, &(_term->Nttyb)) == OK)) {
+- _term->Nttyb.c_oflag &= ~OFLAGS_TABS;
++ if ((wcon_sgmode(TCB, FALSE, &(_term->Nttyb)) == OK)) {
++ _term->Nttyb.c_oflag &= (tcflag_t) (~OFLAGS_TABS);
+ code = OK;
+ }
+ } else {
+ /* reset_prog_mode */
+- if (drv_sgmode(TCB, TRUE, &(_term->Nttyb)) == OK) {
++ if (wcon_sgmode(TCB, TRUE, &(_term->Nttyb)) == OK) {
+ if (sp) {
+ if (sp->_keypad_on)
+ _nc_keypad(sp, TRUE);
+- NC_BUFFERED(sp, TRUE);
++ }
++ if (!CON.buffered) {
++ set_scrollback(FALSE, &CON.SBI);
+ }
+ code = OK;
+ }
+ }
++ T(("... buffered:%d, clear:%d", CON.buffered, CurScreen(sp)->_clear));
+ } else { /* shell mode */
+ if (defFlag) {
+ /* def_shell_mode */
+- if (drv_sgmode(TCB, FALSE, &(_term->Ottyb)) == OK) {
++ if (wcon_sgmode(TCB, FALSE, &(_term->Ottyb)) == OK) {
+ code = OK;
+ }
+ } else {
+@@ -519,22 +1032,27 @@
+ if (sp) {
+ _nc_keypad(sp, FALSE);
+ NCURSES_SP_NAME(_nc_flush) (sp);
+- NC_BUFFERED(sp, FALSE);
+ }
+- code = drv_sgmode(TCB, TRUE, &(_term->Ottyb));
++ code = wcon_sgmode(TCB, TRUE, &(_term->Ottyb));
++ if (!CON.buffered) {
++ set_scrollback(TRUE, &CON.save_SBI);
++ if (!restore_original_screen())
++ code = ERR;
++ }
++ SetConsoleCursorInfo(CON.hdl, &CON.save_CI);
+ }
+ }
+
+- return (code);
++ returnCode(code);
+ }
+
+ static void
+-drv_screen_init(SCREEN *sp GCC_UNUSED)
++wcon_screen_init(SCREEN *sp GCC_UNUSED)
+ {
+ }
+
+ static void
+-drv_wrap(SCREEN *sp GCC_UNUSED)
++wcon_wrap(SCREEN *sp GCC_UNUSED)
+ {
+ }
+
+@@ -557,17 +1075,15 @@
+ }
+
+ static int
+-MapKey(TERMINAL_CONTROL_BLOCK * TCB, WORD vKey)
++MapKey(WORD vKey)
+ {
+ WORD nKey = 0;
+ void *res;
+ LONG key = GenMap(vKey, 0);
+ int code = -1;
+
+- AssertTCB();
+-
+ res = bsearch(&key,
+- PropOf(TCB)->map,
++ CON.map,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ keycompare);
+@@ -582,9 +1098,9 @@
+ }
+
+ static void
+-drv_release(TERMINAL_CONTROL_BLOCK * TCB)
++wcon_release(TERMINAL_CONTROL_BLOCK * TCB)
+ {
+- T((T_CALLED("win32con::drv_release(%p)"), TCB));
++ T((T_CALLED("win32con::wcon_release(%p)"), TCB));
+
+ AssertTCB();
+ if (TCB->prop)
+@@ -593,38 +1109,96 @@
+ returnVoid;
+ }
+
+-static void
+-drv_init(TERMINAL_CONTROL_BLOCK * TCB)
++static bool
++read_screen_data(void)
+ {
+- DWORD num_buttons;
++ bool result = FALSE;
++ COORD bufferCoord;
++ size_t want;
+
+- T((T_CALLED("win32con::drv_init(%p)"), TCB));
++ CON.save_size.X = (SHORT) (CON.save_region.Right
++ - CON.save_region.Left + 1);
++ CON.save_size.Y = (SHORT) (CON.save_region.Bottom
++ - CON.save_region.Top + 1);
++
++ want = (size_t) (CON.save_size.X * CON.save_size.Y);
++
++ if ((CON.save_screen = malloc(want * sizeof(CHAR_INFO))) != 0) {
++ bufferCoord.X = (SHORT) (CON.window_only ? CON.SBI.srWindow.Left : 0);
++ bufferCoord.Y = (SHORT) (CON.window_only ? CON.SBI.srWindow.Top : 0);
++
++ T(("... reading console %s %dx%d into %d,%d - %d,%d at %d,%d",
++ CON.window_only ? "window" : "buffer",
++ CON.save_size.Y, CON.save_size.X,
++ CON.save_region.Top,
++ CON.save_region.Left,
++ CON.save_region.Bottom,
++ CON.save_region.Right,
++ bufferCoord.Y,
++ bufferCoord.X));
++
++ if (read_screen(CON.hdl,
++ CON.save_screen,
++ CON.save_size,
++ bufferCoord,
++ &CON.save_region)) {
++ result = TRUE;
++ } else {
++ T((" error %#lx", (unsigned long) GetLastError()));
++ FreeAndNull(CON.save_screen);
++ }
++ }
+
+- AssertTCB();
++ return result;
++}
+
+- if (TCB) {
+- BOOL b = AllocConsole();
+- WORD a;
+- int i;
++/*
++ * Attempt to save the screen contents. PDCurses does this if
++ * PDC_RESTORE_SCREEN is set, giving the same visual appearance on
++ * restoration as if the library had allocated a console buffer. MSDN
++ * says that the data which can be read is limited to 64Kb (and may be
++ * less).
++ */
++static bool
++save_original_screen(void)
++{
++ bool result = FALSE;
+
+- if (!b)
+- b = AttachConsole(ATTACH_PARENT_PROCESS);
++ CON.save_region.Top = 0;
++ CON.save_region.Left = 0;
++ CON.save_region.Bottom = (SHORT) (CON.SBI.dwSize.Y - 1);
++ CON.save_region.Right = (SHORT) (CON.SBI.dwSize.X - 1);
++
++ if (read_screen_data()) {
++ result = TRUE;
++ } else {
+
+- TCB->inp = GetStdHandle(STD_INPUT_HANDLE);
+- TCB->out = GetStdHandle(STD_OUTPUT_HANDLE);
++ CON.save_region.Top = CON.SBI.srWindow.Top;
++ CON.save_region.Left = CON.SBI.srWindow.Left;
++ CON.save_region.Bottom = CON.SBI.srWindow.Bottom;
++ CON.save_region.Right = CON.SBI.srWindow.Right;
+
+- if (getenv("NCGDB"))
+- TCB->hdl = TCB->out;
+- else
+- TCB->hdl = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE,
+- 0,
+- NULL,
+- CONSOLE_TEXTMODE_BUFFER,
+- NULL);
+-
+- if (!InvalidConsoleHandle(TCB->hdl)) {
+- TCB->prop = typeCalloc(Properties, 1);
+- GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI));
++ CON.window_only = TRUE;
++
++ if (read_screen_data()) {
++ result = TRUE;
++ }
++ }
++
++ T(("... save original screen contents %s", result ? "ok" : "err"));
++ return result;
++}
++
++static void
++wcon_init(TERMINAL_CONTROL_BLOCK * TCB)
++{
++ T((T_CALLED("win32con::wcon_init(%p)"), TCB));
++
++ AssertTCB();
++
++ if (TCB) {
++ if (CON.hdl == INVALID_HANDLE_VALUE) {
++ returnVoid;
+ }
+
+ TCB->info.initcolor = TRUE;
+@@ -640,43 +1214,18 @@
+ TCB->info.nocolorvideo = 1;
+ TCB->info.tabsize = 8;
+
+- if (GetNumberOfConsoleMouseButtons(&num_buttons)) {
+- T(("mouse has %ld buttons", num_buttons));
+- TCB->info.numbuttons = num_buttons;
+- } else {
+- TCB->info.numbuttons = 1;
+- }
+-
++ TCB->info.numbuttons = CON.numButtons;
+ TCB->info.defaultPalette = _nc_cga_palette;
+
+- for (i = 0; i < (N_INI + FKEYS); i++) {
+- if (i < N_INI)
+- PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] = keylist[i];
+- else
+- PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] =
+- GenMap((VK_F1 + (i - N_INI)), (KEY_F(1) + (i - N_INI)));
+- }
+- qsort(PropOf(TCB)->map,
+- (size_t) (MAPSIZE),
+- sizeof(keylist[0]),
+- keycompare);
+- qsort(PropOf(TCB)->rmap,
+- (size_t) (MAPSIZE),
+- sizeof(keylist[0]),
+- rkeycompare);
+-
+- a = MapColor(true, COLOR_WHITE) | MapColor(false, COLOR_BLACK);
+- for (i = 0; i < NUMPAIRS; i++)
+- PropOf(TCB)->pairs[i] = a;
+ }
+ returnVoid;
+ }
+
+ static void
+-drv_initpair(TERMINAL_CONTROL_BLOCK * TCB,
+- short pair,
+- short f,
+- short b)
++wcon_initpair(TERMINAL_CONTROL_BLOCK * TCB,
++ int pair,
++ int f,
++ int b)
+ {
+ SCREEN *sp;
+
+@@ -685,16 +1234,16 @@
+
+ if ((pair > 0) && (pair < NUMPAIRS) && (f >= 0) && (f < 8)
+ && (b >= 0) && (b < 8)) {
+- PropOf(TCB)->pairs[pair] = MapColor(true, f) | MapColor(false, b);
++ CON.pairs[pair] = MapColor(true, f) | MapColor(false, b);
+ }
+ }
+
+ static void
+-drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB,
+- short color GCC_UNUSED,
+- short r GCC_UNUSED,
+- short g GCC_UNUSED,
+- short b GCC_UNUSED)
++wcon_initcolor(TERMINAL_CONTROL_BLOCK * TCB,
++ int color GCC_UNUSED,
++ int r GCC_UNUSED,
++ int g GCC_UNUSED,
++ int b GCC_UNUSED)
+ {
+ SCREEN *sp;
+
+@@ -703,11 +1252,11 @@
+ }
+
+ static void
+-drv_do_color(TERMINAL_CONTROL_BLOCK * TCB,
+- short old_pair GCC_UNUSED,
+- short pair GCC_UNUSED,
+- bool reverse GCC_UNUSED,
+- int (*outc) (SCREEN *, int) GCC_UNUSED
++wcon_do_color(TERMINAL_CONTROL_BLOCK * TCB,
++ int old_pair GCC_UNUSED,
++ int pair GCC_UNUSED,
++ int reverse GCC_UNUSED,
++ int (*outc) (SCREEN *, int) GCC_UNUSED
+ )
+ {
+ SCREEN *sp;
+@@ -717,7 +1266,7 @@
+ }
+
+ static void
+-drv_initmouse(TERMINAL_CONTROL_BLOCK * TCB)
++wcon_initmouse(TERMINAL_CONTROL_BLOCK * TCB)
+ {
+ SCREEN *sp;
+
+@@ -728,7 +1277,7 @@
+ }
+
+ static int
+-drv_testmouse(TERMINAL_CONTROL_BLOCK * TCB, int delay)
++wcon_testmouse(TERMINAL_CONTROL_BLOCK * TCB, int delay)
+ {
+ int rc = 0;
+ SCREEN *sp;
+@@ -739,36 +1288,36 @@
+ if (sp->_drv_mouse_head < sp->_drv_mouse_tail) {
+ rc = TW_MOUSE;
+ } else {
+- rc = TCBOf(sp)->drv->twait(TCBOf(sp),
+- TWAIT_MASK,
+- delay,
+- (int *) 0
+- EVENTLIST_2nd(evl));
++ rc = TCBOf(sp)->drv->td_twait(TCBOf(sp),
++ TWAIT_MASK,
++ delay,
++ (int *) 0
++ EVENTLIST_2nd(evl));
+ }
+
+ return rc;
+ }
+
+ static int
+-drv_mvcur(TERMINAL_CONTROL_BLOCK * TCB,
+- int yold GCC_UNUSED, int xold GCC_UNUSED,
+- int y, int x)
++wcon_mvcur(TERMINAL_CONTROL_BLOCK * TCB,
++ int yold GCC_UNUSED, int xold GCC_UNUSED,
++ int y, int x)
+ {
+ int ret = ERR;
+- if (TCB && !InvalidConsoleHandle(TCB->hdl)) {
++ if (okConsoleHandle(TCB)) {
+ COORD loc;
+ loc.X = (short) x;
+- loc.Y = (short) y;
+- SetConsoleCursorPosition(TCB->hdl, loc);
++ loc.Y = (short) (y + AdjustY());
++ SetConsoleCursorPosition(CON.hdl, loc);
+ ret = OK;
+ }
+ return ret;
+ }
+
+ static void
+-drv_hwlabel(TERMINAL_CONTROL_BLOCK * TCB,
+- int labnum GCC_UNUSED,
+- char *text GCC_UNUSED)
++wcon_hwlabel(TERMINAL_CONTROL_BLOCK * TCB,
++ int labnum GCC_UNUSED,
++ char *text GCC_UNUSED)
+ {
+ SCREEN *sp;
+
+@@ -777,8 +1326,8 @@
+ }
+
+ static void
+-drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB,
+- bool OnFlag GCC_UNUSED)
++wcon_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB,
++ int OnFlag GCC_UNUSED)
+ {
+ SCREEN *sp;
+
+@@ -787,7 +1336,7 @@
+ }
+
+ static chtype
+-drv_conattr(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED)
++wcon_conattr(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED)
+ {
+ chtype res = A_NORMAL;
+ res |= (A_BOLD | A_DIM | A_REVERSE | A_STANDOUT | A_COLOR);
+@@ -795,7 +1344,7 @@
+ }
+
+ static void
+-drv_setfilter(TERMINAL_CONTROL_BLOCK * TCB)
++wcon_setfilter(TERMINAL_CONTROL_BLOCK * TCB)
+ {
+ SCREEN *sp;
+
+@@ -804,9 +1353,9 @@
+ }
+
+ static void
+-drv_initacs(TERMINAL_CONTROL_BLOCK * TCB,
+- chtype *real_map GCC_UNUSED,
+- chtype *fake_map GCC_UNUSED)
++wcon_initacs(TERMINAL_CONTROL_BLOCK * TCB,
++ chtype *real_map GCC_UNUSED,
++ chtype *fake_map GCC_UNUSED)
+ {
+ #define DATA(a,b) { a, b }
+ static struct {
+@@ -844,7 +1393,7 @@
+ SetSP();
+
+ for (n = 0; n < SIZEOF(table); ++n) {
+- real_map[table[n].acs_code] = table[n].use_code | A_ALTCHARSET;
++ real_map[table[n].acs_code] = (chtype) table[n].use_code | A_ALTCHARSET;
+ if (sp != 0)
+ sp->_screen_acs_map[table[n].acs_code] = TRUE;
+ }
+@@ -869,11 +1418,11 @@
+ static int
+ Adjust(int milliseconds, int diff)
+ {
+- if (milliseconds == INFINITY)
+- return milliseconds;
+- milliseconds -= diff;
+- if (milliseconds < 0)
+- milliseconds = 0;
++ if (milliseconds != INFINITY) {
++ milliseconds -= diff;
++ if (milliseconds < 0)
++ milliseconds = 0;
++ }
+ return milliseconds;
+ }
+
+@@ -884,13 +1433,12 @@
+ RIGHTMOST_BUTTON_PRESSED)
+
+ static int
+-decode_mouse(TERMINAL_CONTROL_BLOCK * TCB, int mask)
++decode_mouse(SCREEN *sp, int mask)
+ {
+- SCREEN *sp;
+ int result = 0;
+
+- AssertTCB();
+- SetSP();
++ (void) sp;
++ assert(sp && console_initialized);
+
+ if (mask & FROM_LEFT_1ST_BUTTON_PRESSED)
+ result |= BUTTON1_PRESSED;
+@@ -902,7 +1450,7 @@
+ result |= BUTTON4_PRESSED;
+
+ if (mask & RIGHTMOST_BUTTON_PRESSED) {
+- switch (TCB->info.numbuttons) {
++ switch (CON.numButtons) {
+ case 1:
+ result |= BUTTON1_PRESSED;
+ break;
+@@ -922,26 +1470,26 @@
+ }
+
+ static int
+-drv_twait(TERMINAL_CONTROL_BLOCK * TCB,
+- int mode,
+- int milliseconds,
+- int *timeleft
+- EVENTLIST_2nd(_nc_eventlist * evl))
++console_twait(
++ SCREEN *sp,
++ HANDLE fd,
++ int mode,
++ int milliseconds,
++ int *timeleft
++ EVENTLIST_2nd(_nc_eventlist * evl))
+ {
+- SCREEN *sp;
+ INPUT_RECORD inp_rec;
+ BOOL b;
+- DWORD nRead = 0, rc = -1;
++ DWORD nRead = 0, rc = (DWORD) (-1);
+ int code = 0;
+ FILETIME fstart;
+ FILETIME fend;
+ int diff;
+ bool isImmed = (milliseconds == 0);
+
+-#define CONSUME() ReadConsoleInput(TCB->inp,&inp_rec,1,&nRead)
++#define CONSUME() ReadConsoleInput(fd,&inp_rec,1,&nRead)
+
+- AssertTCB();
+- SetSP();
++ assert(sp);
+
+ TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d",
+ milliseconds, mode));
+@@ -953,19 +1501,19 @@
+
+ while (true) {
+ GetSystemTimeAsFileTime(&fstart);
+- rc = WaitForSingleObject(TCB->inp, milliseconds);
++ rc = WaitForSingleObject(fd, (DWORD) milliseconds);
+ GetSystemTimeAsFileTime(&fend);
+ diff = (int) tdiff(fstart, fend);
+ milliseconds = Adjust(milliseconds, diff);
+
+- if (!isImmed && milliseconds == 0)
++ if (!isImmed && milliseconds <= 0)
+ break;
+
+ if (rc == WAIT_OBJECT_0) {
+ if (mode) {
+- b = GetNumberOfConsoleInputEvents(TCB->inp, &nRead);
++ b = GetNumberOfConsoleInputEvents(fd, &nRead);
+ if (b && nRead > 0) {
+- b = PeekConsoleInput(TCB->inp, &inp_rec, 1, &nRead);
++ b = PeekConsoleInput(fd, &inp_rec, 1, &nRead);
+ if (b && nRead > 0) {
+ switch (inp_rec.EventType) {
+ case KEY_EVENT:
+@@ -975,7 +1523,7 @@
+
+ if (inp_rec.Event.KeyEvent.bKeyDown) {
+ if (0 == ch) {
+- int nKey = MapKey(TCB, vk);
++ int nKey = MapKey(vk);
+ if ((nKey < 0) || FALSE == sp->_keypad_on) {
+ CONSUME();
+ continue;
+@@ -989,7 +1537,7 @@
+ }
+ continue;
+ case MOUSE_EVENT:
+- if (decode_mouse(TCB,
++ if (decode_mouse(sp,
+ (inp_rec.Event.MouseEvent.dwButtonState
+ & BUTTON_MASK)) == 0) {
+ CONSUME();
+@@ -998,9 +1546,10 @@
+ goto end;
+ }
+ continue;
++ /* e.g., FOCUS_EVENT */
+ default:
+- SetConsoleActiveScreenBuffer(!PropOf(TCB)->progMode ?
+- TCB->hdl : TCB->out);
++ CONSUME();
++ selectActiveHandle();
+ continue;
+ }
+ }
+@@ -1028,16 +1577,35 @@
+ return code;
+ }
+
+-static bool
+-handle_mouse(TERMINAL_CONTROL_BLOCK * TCB, MOUSE_EVENT_RECORD mer)
++static int
++wcon_twait(TERMINAL_CONTROL_BLOCK * TCB,
++ int mode,
++ int milliseconds,
++ int *timeleft
++ EVENTLIST_2nd(_nc_eventlist * evl))
+ {
+ SCREEN *sp;
+- MEVENT work;
+- bool result = FALSE;
++ int code;
+
+ AssertTCB();
+ SetSP();
+
++ code = console_twait(sp,
++ CON.inp,
++ mode,
++ milliseconds,
++ timeleft EVENTLIST_2nd(_nc_eventlist * evl));
++ return code;
++}
++
++static bool
++handle_mouse(SCREEN *sp, MOUSE_EVENT_RECORD mer)
++{
++ MEVENT work;
++ bool result = FALSE;
++
++ assert(sp);
++
+ sp->_drv_mouse_old_buttons = sp->_drv_mouse_new_buttons;
+ sp->_drv_mouse_new_buttons = mer.dwButtonState & BUTTON_MASK;
+
+@@ -1051,18 +1619,20 @@
+
+ if (sp->_drv_mouse_new_buttons) {
+
+- work.bstate |= decode_mouse(TCB, sp->_drv_mouse_new_buttons);
++ work.bstate |= (mmask_t) decode_mouse(sp, sp->_drv_mouse_new_buttons);
+
+ } else {
+
+ /* cf: BUTTON_PRESSED, BUTTON_RELEASED */
+- work.bstate |= (decode_mouse(TCB, sp->_drv_mouse_old_buttons) >> 1);
++ work.bstate |= (mmask_t) (decode_mouse(sp,
++ sp->_drv_mouse_old_buttons)
++ >> 1);
+
+ result = TRUE;
+ }
+
+ work.x = mer.dwMousePosition.X;
+- work.y = mer.dwMousePosition.Y;
++ work.y = mer.dwMousePosition.Y - AdjustY();
+
+ sp->_drv_mouse_fifo[sp->_drv_mouse_tail] = work;
+ sp->_drv_mouse_tail += 1;
+@@ -1072,78 +1642,59 @@
+ }
+
+ static int
+-drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf)
++wcon_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf)
+ {
+ SCREEN *sp;
+- int n = 1;
+- INPUT_RECORD inp_rec;
+- BOOL b;
+- DWORD nRead;
+- WORD vk;
+- WORD sc;
++ int n;
+
+ AssertTCB();
+ assert(buf);
+ SetSP();
+
+- memset(&inp_rec, 0, sizeof(inp_rec));
+-
+- T((T_CALLED("win32con::drv_read(%p)"), TCB));
+- while ((b = ReadConsoleInput(TCB->inp, &inp_rec, 1, &nRead))) {
+- if (b && nRead > 0) {
+- if (inp_rec.EventType == KEY_EVENT) {
+- if (!inp_rec.Event.KeyEvent.bKeyDown)
+- continue;
+- *buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar;
+- vk = inp_rec.Event.KeyEvent.wVirtualKeyCode;
+- sc = inp_rec.Event.KeyEvent.wVirtualScanCode;
+- if (*buf == 0) {
+- if (sp->_keypad_on) {
+- *buf = MapKey(TCB, vk);
+- if (0 > (*buf))
+- continue;
+- else
+- break;
+- } else
+- continue;
+- } else { /* *buf != 0 */
+- break;
+- }
+- } else if (inp_rec.EventType == MOUSE_EVENT) {
+- if (handle_mouse(TCB, inp_rec.Event.MouseEvent)) {
+- *buf = KEY_MOUSE;
+- break;
+- }
+- }
+- continue;
+- }
+- }
++ T((T_CALLED("win32con::wcon_read(%p)"), TCB));
++ n = _nc_mingw_console_read(sp, CON.inp, buf);
+ returnCode(n);
+ }
+
+ static int
+-drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms)
++wcon_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms)
+ {
+- Sleep(ms);
+- return OK;
++ T((T_CALLED("win32con::wcon_nap(%p, %d)"), TCB, ms));
++ Sleep((DWORD) ms);
++ returnCode(OK);
++}
++
++static int
++wcon_cursorSet(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int mode)
++{
++ int res = -1;
++ CONSOLE_CURSOR_INFO this_CI = CON.save_CI;
++ T((T_CALLED("win32con:wcon_cursorSet(%d)"), mode));
++ switch (mode) {
++ case 0:
++ this_CI.bVisible = FALSE;
++ break;
++ case 1:
++ break;
++ case 2:
++ this_CI.dwSize = 100;
++ break;
++ }
++ SetConsoleCursorInfo(CON.hdl, &this_CI);
++ returnCode(res);
+ }
+
+ static bool
+-drv_kyExist(TERMINAL_CONTROL_BLOCK * TCB, int keycode)
++wcon_kyExist(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int keycode)
+ {
+- SCREEN *sp;
+ WORD nKey;
+ void *res;
+ bool found = FALSE;
+ LONG key = GenMap(0, (WORD) keycode);
+
+- AssertTCB();
+- SetSP();
+-
+- AssertTCB();
+-
++ T((T_CALLED("win32con::wcon_kyExist(%d)"), keycode));
+ res = bsearch(&key,
+- PropOf(TCB)->rmap,
++ CON.rmap,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ rkeycompare);
+@@ -1153,26 +1704,29 @@
+ if (!(nKey & 0x8000))
+ found = TRUE;
+ }
+- return found;
++ returnCode(found);
+ }
+
+ static int
+-drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag GCC_UNUSED)
++wcon_kpad(TERMINAL_CONTROL_BLOCK * TCB, int flag GCC_UNUSED)
+ {
+ SCREEN *sp;
+ int code = ERR;
+
+ AssertTCB();
+- sp = TCB->csp;
++ SetSP();
+
++ T((T_CALLED("win32con::wcon_kpad(%p, %d)"), TCB, flag));
+ if (sp) {
+ code = OK;
+ }
+- return code;
++ returnCode(code);
+ }
+
+ static int
+-drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int keycode, bool flag)
++wcon_keyok(TERMINAL_CONTROL_BLOCK * TCB,
++ int keycode,
++ int flag)
+ {
+ int code = ERR;
+ SCREEN *sp;
+@@ -1181,12 +1735,14 @@
+ void *res;
+ LONG key = GenMap(0, (WORD) keycode);
+
++ T((T_CALLED("win32con::wcon_keyok(%p, %d, %d)"), TCB, keycode, flag));
++
+ AssertTCB();
+ SetSP();
+
+ if (sp) {
+ res = bsearch(&key,
+- PropOf(TCB)->rmap,
++ CON.rmap,
+ (size_t) (N_INI + FKEYS),
+ sizeof(keylist[0]),
+ rkeycompare);
+@@ -1199,43 +1755,419 @@
+ *(LONG *) res = GenMap(vKey, nKey);
+ }
+ }
+- return code;
++ returnCode(code);
+ }
+
+ NCURSES_EXPORT_VAR (TERM_DRIVER) _nc_WIN_DRIVER = {
+ FALSE,
+- drv_CanHandle, /* CanHandle */
+- drv_init, /* init */
+- drv_release, /* release */
+- drv_size, /* size */
+- drv_sgmode, /* sgmode */
+- drv_conattr, /* conattr */
+- drv_mvcur, /* hwcur */
+- drv_mode, /* mode */
+- drv_rescol, /* rescol */
+- drv_rescolors, /* rescolors */
+- drv_setcolor, /* color */
+- drv_dobeepflash, /* DoBeepFlash */
+- drv_initpair, /* initpair */
+- drv_initcolor, /* initcolor */
+- drv_do_color, /* docolor */
+- drv_initmouse, /* initmouse */
+- drv_testmouse, /* testmouse */
+- drv_setfilter, /* setfilter */
+- drv_hwlabel, /* hwlabel */
+- drv_hwlabelOnOff, /* hwlabelOnOff */
+- drv_doupdate, /* update */
+- drv_defaultcolors, /* defaultcolors */
+- drv_print, /* print */
+- drv_size, /* getsize */
+- drv_setsize, /* setsize */
+- drv_initacs, /* initacs */
+- drv_screen_init, /* scinit */
+- drv_wrap, /* scexit */
+- drv_twait, /* twait */
+- drv_read, /* read */
+- drv_nap, /* nap */
+- drv_kpad, /* kpad */
+- drv_keyok, /* kyOk */
+- drv_kyExist /* kyExist */
++ wcon_name, /* Name */
++ wcon_CanHandle, /* CanHandle */
++ wcon_init, /* init */
++ wcon_release, /* release */
++ wcon_size, /* size */
++ wcon_sgmode, /* sgmode */
++ wcon_conattr, /* conattr */
++ wcon_mvcur, /* hwcur */
++ wcon_mode, /* mode */
++ wcon_rescol, /* rescol */
++ wcon_rescolors, /* rescolors */
++ wcon_setcolor, /* color */
++ wcon_dobeepflash, /* DoBeepFlash */
++ wcon_initpair, /* initpair */
++ wcon_initcolor, /* initcolor */
++ wcon_do_color, /* docolor */
++ wcon_initmouse, /* initmouse */
++ wcon_testmouse, /* testmouse */
++ wcon_setfilter, /* setfilter */
++ wcon_hwlabel, /* hwlabel */
++ wcon_hwlabelOnOff, /* hwlabelOnOff */
++ wcon_doupdate, /* update */
++ wcon_defaultcolors, /* defaultcolors */
++ wcon_print, /* print */
++ wcon_size, /* getsize */
++ wcon_setsize, /* setsize */
++ wcon_initacs, /* initacs */
++ wcon_screen_init, /* scinit */
++ wcon_wrap, /* scexit */
++ wcon_twait, /* twait */
++ wcon_read, /* read */
++ wcon_nap, /* nap */
++ wcon_kpad, /* kpad */
++ wcon_keyok, /* kyOk */
++ wcon_kyExist, /* kyExist */
++ wcon_cursorSet /* cursorSet */
+ };
++
++/* --------------------------------------------------------- */
++
++static HANDLE
++get_handle(int fd)
++{
++ intptr_t value = _get_osfhandle(fd);
++ return (HANDLE) value;
++}
++
++#if WINVER >= 0x0600
++/* This function tests, whether or not the ncurses application
++ is running as a descendant of MSYS2/cygwin mintty terminal
++ application. mintty doesn't use Windows Console for it's screen
++ I/O, so the native Windows _isatty doesn't recognize it as
++ character device. But we can discover we are at the end of an
++ Pipe and can query to server side of the pipe, looking whether
++ or not this is mintty.
++ */
++static int
++_ismintty(int fd, LPHANDLE pMinTTY)
++{
++ HANDLE handle = get_handle(fd);
++ DWORD dw;
++ int code = 0;
++
++ T((T_CALLED("win32con::_ismintty(%d, %p)"), fd, pMinTTY));
++
++ if (handle != INVALID_HANDLE_VALUE) {
++ dw = GetFileType(handle);
++ if (dw == FILE_TYPE_PIPE) {
++ if (GetNamedPipeInfo(handle, 0, 0, 0, 0)) {
++ ULONG pPid;
++ /* Requires NT6 */
++ if (GetNamedPipeServerProcessId(handle, &pPid)) {
++ TCHAR buf[MAX_PATH];
++ DWORD len = 0;
++ /* These security attributes may allow us to
++ create a remote thread in mintty to manipulate
++ the terminal state remotely */
++ HANDLE pHandle = OpenProcess(
++ PROCESS_CREATE_THREAD
++ | PROCESS_QUERY_INFORMATION
++ | PROCESS_VM_OPERATION
++ | PROCESS_VM_WRITE
++ | PROCESS_VM_READ,
++ FALSE,
++ pPid);
++ if (pMinTTY)
++ *pMinTTY = INVALID_HANDLE_VALUE;
++ if (pHandle != INVALID_HANDLE_VALUE) {
++ if ((len = GetProcessImageFileName(
++ pHandle,
++ buf,
++ (DWORD)
++ array_length(buf)))) {
++ TCHAR *pos = _tcsrchr(buf, _T('\\'));
++ if (pos) {
++ pos++;
++ if (_tcsnicmp(pos, _TEXT("mintty.exe"), 10)
++ == 0) {
++ if (pMinTTY)
++ *pMinTTY = pHandle;
++ code = 1;
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ }
++ returnCode(code);
++}
++#endif
++
++/* Borrowed from ansicon project.
++ Check whether or not an I/O handle is associated with
++ a Windows console.
++*/
++static BOOL
++IsConsoleHandle(HANDLE hdl)
++{
++ DWORD dwFlag = 0;
++ BOOL result;
++
++ if (!GetConsoleMode(hdl, &dwFlag)) {
++ result = (int) WriteConsoleA(hdl, NULL, 0, &dwFlag, NULL);
++ } else {
++ result = (int) (dwFlag & ENABLE_PROCESSED_OUTPUT);
++ }
++ return result;
++}
++
++/* Our replacement for the systems _isatty to include also
++ a test for mintty. This is called from the NC_ISATTY macro
++ defined in curses.priv.h
++ */
++int
++_nc_mingw_isatty(int fd)
++{
++ int result = 0;
++
++#ifdef __MING32__
++#define SysISATTY(fd) _isatty(fd)
++#else
++#define SysISATTY(fd) isatty(fd)
++#endif
++ if (SysISATTY(fd)) {
++ result = 1;
++ } else {
++#if WINVER >= 0x0600
++ result = _ismintty(fd, NULL);
++#endif
++ }
++ return result;
++}
++
++/* This is used when running in terminfo mode to discover,
++ whether or not the "terminal" is actually a Windows
++ Console. It's the responsibilty of the console to deal
++ with the terminal escape sequences that are sent by
++ terminfo.
++ */
++int
++_nc_mingw_isconsole(int fd)
++{
++ HANDLE hdl = get_handle(fd);
++ int code = 0;
++
++ T((T_CALLED("win32con::_nc_mingw_isconsole(%d)"), fd));
++
++ code = (int) IsConsoleHandle(hdl);
++
++ returnCode(code);
++}
++
++#define TC_PROLOGUE(fd) \
++ SCREEN *sp; \
++ TERMINAL *term = 0; \
++ int code = ERR; \
++ if (_nc_screen_chain == 0) \
++ return 0; \
++ for (each_screen(sp)) { \
++ if (sp->_term && (sp->_term->Filedes == fd)) { \
++ term = sp->_term; \
++ break; \
++ } \
++ } \
++ assert(term != 0)
++
++int
++_nc_mingw_tcsetattr(
++ int fd,
++ int optional_action GCC_UNUSED,
++ const struct termios *arg)
++{
++ TC_PROLOGUE(fd);
++
++ if (_nc_mingw_isconsole(fd)) {
++ DWORD dwFlag = 0;
++ HANDLE ofd = get_handle(fd);
++ if (ofd != INVALID_HANDLE_VALUE) {
++ if (arg) {
++ if (arg->c_lflag & ICANON)
++ dwFlag |= ENABLE_LINE_INPUT;
++ else
++ dwFlag = dwFlag & (DWORD) (~ENABLE_LINE_INPUT);
++
++ if (arg->c_lflag & ECHO)
++ dwFlag = dwFlag | ENABLE_ECHO_INPUT;
++ else
++ dwFlag = dwFlag & (DWORD) (~ENABLE_ECHO_INPUT);
++
++ if (arg->c_iflag & BRKINT)
++ dwFlag |= ENABLE_PROCESSED_INPUT;
++ else
++ dwFlag = dwFlag & (DWORD) (~ENABLE_PROCESSED_INPUT);
++ }
++ dwFlag |= ENABLE_MOUSE_INPUT;
++ SetConsoleMode(ofd, dwFlag);
++ code = OK;
++ }
++ }
++ if (arg)
++ term->Nttyb = *arg;
++
++ return code;
++}
++
++int
++_nc_mingw_tcgetattr(int fd, struct termios *arg)
++{
++ TC_PROLOGUE(fd);
++
++ if (_nc_mingw_isconsole(fd)) {
++ if (arg)
++ *arg = term->Nttyb;
++ }
++ return code;
++}
++
++int
++_nc_mingw_tcflush(int fd, int queue)
++{
++ TC_PROLOGUE(fd);
++ (void) term;
++
++ if (_nc_mingw_isconsole(fd)) {
++ if (queue == TCIFLUSH) {
++ BOOL b = FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
++ if (!b)
++ return (int) GetLastError();
++ }
++ }
++ return code;
++}
++
++int
++_nc_mingw_testmouse(
++ SCREEN *sp,
++ HANDLE fd,
++ int delay)
++{
++ int rc = 0;
++
++ assert(sp);
++
++ if (sp->_drv_mouse_head < sp->_drv_mouse_tail) {
++ rc = TW_MOUSE;
++ } else {
++ rc = console_twait(sp,
++ fd,
++ TWAIT_MASK,
++ delay,
++ (int *) 0
++ EVENTLIST_2nd(evl));
++ }
++ return rc;
++}
++
++int
++_nc_mingw_console_read(
++ SCREEN *sp,
++ HANDLE fd,
++ int *buf)
++{
++ int n = 1;
++ INPUT_RECORD inp_rec;
++ BOOL b;
++ DWORD nRead;
++ WORD vk;
++
++ assert(sp);
++ assert(buf);
++
++ memset(&inp_rec, 0, sizeof(inp_rec));
++
++ T((T_CALLED("_nc_mingw_console_read(%p)"), sp));
++
++ while ((b = ReadConsoleInput(fd, &inp_rec, 1, &nRead))) {
++ if (b && nRead > 0) {
++ if (inp_rec.EventType == KEY_EVENT) {
++ if (!inp_rec.Event.KeyEvent.bKeyDown)
++ continue;
++ *buf = (int) inp_rec.Event.KeyEvent.uChar.AsciiChar;
++ vk = inp_rec.Event.KeyEvent.wVirtualKeyCode;
++ if (*buf == 0) {
++ if (sp->_keypad_on) {
++ *buf = MapKey(vk);
++ if (0 > (*buf))
++ continue;
++ else
++ break;
++ } else
++ continue;
++ } else { /* *buf != 0 */
++ break;
++ }
++ } else if (inp_rec.EventType == MOUSE_EVENT) {
++ if (handle_mouse(sp,
++ inp_rec.Event.MouseEvent)) {
++ *buf = KEY_MOUSE;
++ break;
++ }
++ }
++ continue;
++ }
++ }
++ returnCode(n);
++}
++
++static
++__attribute__((constructor))
++ void _enter_console(void)
++{
++ if (!console_initialized) {
++ int i;
++ DWORD num_buttons;
++ WORD a;
++ BOOL buffered = TRUE;
++ BOOL b;
++
++ START_TRACE();
++ if (_nc_mingw_isatty(0)) {
++ CON.isMinTTY = TRUE;
++ }
++
++ for (i = 0; i < (N_INI + FKEYS); i++) {
++ if (i < N_INI)
++ CON.rmap[i] = CON.map[i] =
++ (DWORD) keylist[i];
++ else
++ CON.rmap[i] = CON.map[i] =
++ (DWORD) GenMap((VK_F1 + (i - N_INI)),
++ (KEY_F(1) + (i - N_INI)));
++ }
++ qsort(CON.map,
++ (size_t) (MAPSIZE),
++ sizeof(keylist[0]),
++ keycompare);
++ qsort(CON.rmap,
++ (size_t) (MAPSIZE),
++ sizeof(keylist[0]),
++ rkeycompare);
++
++ if (GetNumberOfConsoleMouseButtons(&num_buttons)) {
++ CON.numButtons = (int) num_buttons;
++ } else {
++ CON.numButtons = 1;
++ }
++
++ a = MapColor(true, COLOR_WHITE) | MapColor(false, COLOR_BLACK);
++ for (i = 0; i < NUMPAIRS; i++)
++ CON.pairs[i] = a;
++
++ CON.inp = GetStdHandle(STD_INPUT_HANDLE);
++ CON.out = GetStdHandle(STD_OUTPUT_HANDLE);
++
++ b = AllocConsole();
++
++ if (!b)
++ b = AttachConsole(ATTACH_PARENT_PROCESS);
++
++ if (getenv("NCGDB") || getenv("NCURSES_CONSOLE2")) {
++ T(("... will not buffer console"));
++ buffered = FALSE;
++ CON.hdl = CON.out;
++ } else {
++ T(("... creating console buffer"));
++ CON.hdl = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE,
++ 0,
++ NULL,
++ CONSOLE_TEXTMODE_BUFFER,
++ NULL);
++ }
++
++ if (CON.hdl != INVALID_HANDLE_VALUE) {
++ CON.buffered = buffered;
++ get_SBI();
++ CON.save_SBI = CON.SBI;
++ if (!buffered) {
++ save_original_screen();
++ set_scrollback(FALSE, &CON.SBI);
++ }
++ GetConsoleCursorInfo(CON.hdl, &CON.save_CI);
++ T(("... initial cursor is %svisible, %d%%",
++ (CON.save_CI.bVisible ? "" : "not-"),
++ (int) CON.save_CI.dwSize));
++ }
++
++ console_initialized = TRUE;
++ }
++}
+Index: package/debian-mingw/changelog
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/changelog 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1,11 @@
++ncurses6 (5.9+20141206) unstable; urgency=low
++
++ * latest weekly patch
++
++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Dec 2014 08:32:29 -0500
++
++ncurses6 (5.9-20131005) unstable; urgency=low
++
++ * initial release
++
++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Oct 2013 13:35:29 -0400
+Index: package/debian-mingw/compat
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/compat 2010-04-20 19:47:10.000000000 +0000
+@@ -0,0 +1 @@
++5
+Index: package/debian-mingw/control
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/control 2013-10-05 19:37:02.000000000 +0000
+@@ -0,0 +1,16 @@
++Source: ncurses6
++Section: libdevel
++Priority: optional
++Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
++Homepage: http://invisible-island.net/ncurses/
++Build-Depends: debhelper (>= 7)
++Standards-Version: 3.8.2
++
++Package: mingw32-ncurses6
++Architecture: any
++Depends: ${misc:Depends}
++Description: shared libraries for terminal handling
++ The ncurses library routines are a terminal-independent method of
++ updating character screens with reasonable optimization.
++ .
++ This package is used for testing ABI 6 with the MinGW 32-bit port.
+Index: package/debian-mingw/copyright
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/copyright 2014-01-19 00:01:25.000000000 +0000
+@@ -0,0 +1,112 @@
++This package is used for testing builds of ncurses.
++
++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.
++Copyright © 2001 by Pradeep Padala
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, distribute with modifications, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
++DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
++THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++
++Copyright (C) 1994 X Consortium
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to
++deal in the Software without restriction, including without limitation the
++rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++sell copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
++TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the X Consortium shall not
++be used in advertising or otherwise to promote the sale, use or other deal-
++ings in this Software without prior written authorization from the X Consor-
++tium.
++
++
++Copyright (c) 1980, 1991, 1992, 1993
++ The Regents of the University of California. All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++3. Neither the name of the University nor the names of its contributors
++ may be used to endorse or promote products derived from this software
++ without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGE.
++
++
++Copyright 1996-2013,2014 by Thomas E. Dickey
++
++ All Rights Reserved
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
++CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
++TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++-- vile: txtmode file-encoding=utf-8
+Index: package/debian-mingw/rules
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/rules 2014-09-20 22:42:24.000000000 +0000
+@@ -0,0 +1,140 @@
++#!/usr/bin/make -f
++# Made with the aid of dh_make, by Craig Small
++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
++# Some lines taken from debmake, by Cristoph Lameter.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# These are used for cross-compiling and for saving the configure script
++# from having to guess our platform (since we know it already)
++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++
++BUILD_CC = gcc
++
++CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
++CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
++
++TARGET = i686-w64-mingw32
++MINGW_BIN = /usr/bin
++MINGW_TOP = /usr/$(TARGET)
++MINGW_TMP = $(CURDIR)/debian/mingw32-ncurses6
++
++CFLAGS = $(CC_NORMAL)
++
++CONFIG_OPTIONS = \
++ --disable-echo \
++ --disable-db-install \
++ --disable-getcap \
++ --disable-hard-tabs \
++ --disable-leaks \
++ --disable-macros \
++ --disable-overwrite \
++ --disable-termcap \
++ --enable-const \
++ --enable-ext-colors \
++ --enable-ext-mouse \
++ --enable-interop \
++ --enable-sp-funcs \
++ --enable-term-driver \
++ --enable-warnings \
++ --enable-widec \
++ --verbose \
++ --with-chtype=uint32_t \
++ --with-mmask_t=uint32_t \
++ --with-cxx-shared \
++ --with-develop \
++ --with-fallbacks=unknown,rxvt \
++ --with-shared \
++ --with-tparm-arg=intptr_t \
++ --with-trace \
++ --with-xterm-kbs=DEL \
++ --without-ada \
++ --without-debug \
++ --without-manpages \
++ --without-progs \
++ --without-tests
++
++export CFLAGS BUILD_CC
++
++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++ CFLAGS += -O0
++else
++ CFLAGS += -O2
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++ INSTALL_PROGRAM += -s
++endif
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++
++ CC=$(TARGET)-gcc \
++ CFLAGS="$(CFLAGS)" \
++ ./configure \
++ --host=$(TARGET) \
++ --target=$(TARGET) \
++ --prefix=$(MINGW_TOP) \
++ --with-build-cc=$(BUILD_CC) \
++ $(CONFIG_OPTIONS)
++
++ touch configure-stamp
++
++build: build-stamp
++build-stamp: configure-stamp
++ dh_testdir
++
++ $(MAKE)
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++
++ [ ! -f makefile ] || $(MAKE) distclean
++
++ rm -f configure-stamp build-stamp install-stamp
++
++ dh_clean
++
++install: install-stamp
++install-stamp: build-stamp
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ $(MAKE) install.libs DESTDIR=$(MINGW_TMP)
++
++ mkdir -p $(MINGW_TMP)$(MINGW_BIN)
++ for name in $(MINGW_TMP)$(MINGW_TOP)/bin/*-config; \
++ do \
++ base=`basename $$name`; \
++ ln -v $$name $(MINGW_TMP)$(MINGW_BIN)/$(TARGET)-$$base; \
++ done
++
++ touch install-stamp
++
++# Build architecture-independent files here.
++binary-indep: build install
++# No binary-indep target.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installchangelogs NEWS
++ # dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install install-stamp
+Index: package/debian-mingw/source/format
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/source/format 2014-11-16 02:19:54.000000000 +0000
+@@ -0,0 +1 @@
++3.0 (native)
+Index: package/debian-mingw/watch
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw/watch 2012-06-08 11:53:43.000000000 +0000
+@@ -0,0 +1,4 @@
++version=3
++
++opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \
++ debian uupdate
+Index: package/debian-mingw64/changelog
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/changelog 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1,11 @@
++ncurses6 (5.9+20141206) unstable; urgency=low
++
++ * latest weekly patch
++
++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Dec 2014 08:32:29 -0500
++
++ncurses6 (5.9-20131005) unstable; urgency=low
++
++ * initial release
++
++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Oct 2013 13:35:29 -0400
+Index: package/debian-mingw64/compat
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/compat 2010-04-20 19:47:10.000000000 +0000
+@@ -0,0 +1 @@
++5
+Index: package/debian-mingw64/control
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/control 2013-10-05 21:05:14.000000000 +0000
+@@ -0,0 +1,16 @@
++Source: ncurses6
++Section: libdevel
++Priority: optional
++Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
++Homepage: http://invisible-island.net/ncurses/
++Build-Depends: debhelper (>= 7)
++Standards-Version: 3.8.2
++
++Package: mingw64-ncurses6
++Architecture: any
++Depends: ${misc:Depends}
++Description: shared libraries for terminal handling
++ The ncurses library routines are a terminal-independent method of
++ updating character screens with reasonable optimization.
++ .
++ This package is used for testing ABI 6 with the MinGW 64-bit port.
+Index: package/debian-mingw64/copyright
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/copyright 2014-01-19 00:01:49.000000000 +0000
+@@ -0,0 +1,112 @@
++This package is used for testing builds of ncurses.
++
++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.
++Copyright © 2001 by Pradeep Padala
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, distribute with modifications, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
++DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
++THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++
++Copyright (C) 1994 X Consortium
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to
++deal in the Software without restriction, including without limitation the
++rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++sell copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
++TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the X Consortium shall not
++be used in advertising or otherwise to promote the sale, use or other deal-
++ings in this Software without prior written authorization from the X Consor-
++tium.
++
++
++Copyright (c) 1980, 1991, 1992, 1993
++ The Regents of the University of California. All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++3. Neither the name of the University nor the names of its contributors
++ may be used to endorse or promote products derived from this software
++ without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGE.
++
++
++Copyright 1996-2013,2014 by Thomas E. Dickey
++
++ All Rights Reserved
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
++CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
++TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++-- vile: txtmode file-encoding=utf-8
+Index: package/debian-mingw64/rules
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/rules 2014-09-20 22:43:01.000000000 +0000
+@@ -0,0 +1,140 @@
++#!/usr/bin/make -f
++# Made with the aid of dh_make, by Craig Small
++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
++# Some lines taken from debmake, by Cristoph Lameter.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# These are used for cross-compiling and for saving the configure script
++# from having to guess our platform (since we know it already)
++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++
++BUILD_CC = gcc
++
++CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
++CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
++
++TARGET = x86_64-w64-mingw32
++MINGW_BIN = /usr/bin
++MINGW_TOP = /usr/$(TARGET)
++MINGW_TMP = $(CURDIR)/debian/mingw64-ncurses6
++
++CFLAGS = $(CC_NORMAL)
++
++CONFIG_OPTIONS = \
++ --disable-echo \
++ --disable-db-install \
++ --disable-getcap \
++ --disable-hard-tabs \
++ --disable-leaks \
++ --disable-macros \
++ --disable-overwrite \
++ --disable-termcap \
++ --enable-const \
++ --enable-ext-colors \
++ --enable-ext-mouse \
++ --enable-interop \
++ --enable-sp-funcs \
++ --enable-term-driver \
++ --enable-warnings \
++ --enable-widec \
++ --verbose \
++ --with-chtype=uint32_t \
++ --with-mmask_t=uint32_t \
++ --with-cxx-shared \
++ --with-develop \
++ --with-fallbacks=unknown,rxvt \
++ --with-shared \
++ --with-tparm-arg=intptr_t \
++ --with-trace \
++ --with-xterm-kbs=DEL \
++ --without-ada \
++ --without-debug \
++ --without-manpages \
++ --without-progs \
++ --without-tests
++
++export CFLAGS BUILD_CC
++
++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++ CFLAGS += -O0
++else
++ CFLAGS += -O2
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++ INSTALL_PROGRAM += -s
++endif
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++
++ CC=$(TARGET)-gcc \
++ CFLAGS="$(CFLAGS)" \
++ ./configure \
++ --host=$(TARGET) \
++ --target=$(TARGET) \
++ --prefix=$(MINGW_TOP) \
++ --with-build-cc=$(BUILD_CC) \
++ $(CONFIG_OPTIONS)
++
++ touch configure-stamp
++
++build: build-stamp
++build-stamp: configure-stamp
++ dh_testdir
++
++ $(MAKE)
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++
++ [ ! -f makefile ] || $(MAKE) distclean
++
++ rm -f configure-stamp build-stamp install-stamp
++
++ dh_clean
++
++install: install-stamp
++install-stamp: build-stamp
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ $(MAKE) install.libs DESTDIR=$(MINGW_TMP)
++
++ mkdir -p $(MINGW_TMP)$(MINGW_BIN)
++ for name in $(MINGW_TMP)$(MINGW_TOP)/bin/*-config; \
++ do \
++ base=`basename $$name`; \
++ ln -v $$name $(MINGW_TMP)$(MINGW_BIN)/$(TARGET)-$$base; \
++ done
++
++ touch install-stamp
++
++# Build architecture-independent files here.
++binary-indep: build install
++# No binary-indep target.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installchangelogs NEWS
++ # dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install install-stamp
+Index: package/debian-mingw64/source/format
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/source/format 2014-11-16 02:20:03.000000000 +0000
+@@ -0,0 +1 @@
++3.0 (native)
+Index: package/debian-mingw64/watch
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian-mingw64/watch 2012-06-08 11:53:43.000000000 +0000
+@@ -0,0 +1,4 @@
++version=3
++
++opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \
++ debian uupdate
+Index: package/debian/changelog
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/changelog 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1,11 @@
++ncurses6 (5.9+20141206) unstable; urgency=low
++
++ * latest weekly patch
++
++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Dec 2014 08:32:29 -0500
++
++ncurses6 (5.9-20120608) unstable; urgency=low
++
++ * initial release
++
++ -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 08 Jun 2012 07:54:29 -0400
+Index: package/debian/compat
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/compat 2010-04-20 19:47:10.000000000 +0000
+@@ -0,0 +1 @@
++5
+Index: package/debian/control
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/control 2012-06-08 13:29:14.000000000 +0000
+@@ -0,0 +1,16 @@
++Source: ncurses6
++Section: libdevel
++Priority: optional
++Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
++Homepage: http://invisible-island.net/ncurses/
++Build-Depends: debhelper (>= 7)
++Standards-Version: 3.8.2
++
++Package: ncurses6
++Architecture: any
++Depends: ${misc:Depends}
++Description: shared libraries for terminal handling
++ The ncurses library routines are a terminal-independent method of
++ updating character screens with reasonable optimization.
++ .
++ This package is used for testing ABI 6.
+Index: package/debian/copyright
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/copyright 2014-01-19 00:00:58.000000000 +0000
+@@ -0,0 +1,112 @@
++This package is used for testing builds of ncurses.
++
++Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.
++Copyright © 2001 by Pradeep Padala
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, distribute with modifications, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
++DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
++OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
++THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++
++Copyright (C) 1994 X Consortium
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to
++deal in the Software without restriction, including without limitation the
++rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++sell copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
++TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the X Consortium shall not
++be used in advertising or otherwise to promote the sale, use or other deal-
++ings in this Software without prior written authorization from the X Consor-
++tium.
++
++
++Copyright (c) 1980, 1991, 1992, 1993
++ The Regents of the University of California. All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++3. Neither the name of the University nor the names of its contributors
++ may be used to endorse or promote products derived from this software
++ without specific prior written permission.
++
++THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++SUCH DAMAGE.
++
++
++Copyright 1996-2013,2014 by Thomas E. Dickey
++
++ All Rights Reserved
++
++Permission is hereby granted, free of charge, to any person obtaining a
++copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
++CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
++TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name(s) of the above copyright
++holders shall not be used in advertising or otherwise to promote the
++sale, use or other dealings in this Software without prior written
++authorization.
++
++-- vile: txtmode file-encoding=utf-8
+Index: package/debian/rules
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/rules 2014-11-15 13:05:58.000000000 +0000
+@@ -0,0 +1,126 @@
++#!/usr/bin/make -f
++# MAde with the aid of dh_make, by Craig Small
++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
++# Some lines taken from debmake, by Cristoph Lameter.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# These are used for cross-compiling and for saving the configure script
++# from having to guess our platform (since we know it already)
++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++
++CC_NORMAL = -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
++CC_STRICT = $(CC_NORMAL) -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
++
++MY_DIR=/usr/local/ncurses6
++MYDATA=/usr/local/ncurses/share/terminfo
++BUILD_DIR=$(CURDIR)/debian/ncurses6
++
++CFLAGS = $(CC_NORMAL)
++
++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++ CFLAGS += -O0
++else
++ CFLAGS += -O2
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++ INSTALL_PROGRAM += -s
++endif
++
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++
++ RPATH_LIST=../lib:$(MY_DIR)/lib \
++ CFLAGS="$(CFLAGS)" ./configure \
++ --host=$(DEB_HOST_GNU_TYPE) \
++ --build=$(DEB_BUILD_GNU_TYPE) \
++ --prefix=$(MY_DIR) \
++ --with-default-terminfo-dir=$(MYDATA) \
++ --with-terminfo-dirs=$(MYDATA):/usr/share/terminfo \
++ --disable-echo \
++ --disable-getcap \
++ --disable-leaks \
++ --disable-macros \
++ --disable-termcap \
++ --enable-const \
++ --enable-ext-colors \
++ --enable-ext-mouse \
++ --enable-hard-tabs \
++ --enable-interop \
++ --enable-rpath \
++ --enable-sp-funcs \
++ --enable-warnings \
++ --enable-widec \
++ --verbose \
++ --with-chtype=uint32_t \
++ --with-mmask_t=uint32_t \
++ --with-develop \
++ --with-shared \
++ --with-termlib \
++ --with-ticlib \
++ --with-trace \
++ --with-cxx-shared \
++ --with-versioned-syms \
++ --with-xterm-kbs=DEL \
++ --without-ada \
++ --without-debug \
++ --without-normal
++
++ touch configure-stamp
++
++build: build-stamp
++build-stamp: configure-stamp
++ dh_testdir
++
++ $(MAKE)
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++
++ [ ! -f makefile ] || $(MAKE) distclean
++
++ rm -f configure-stamp build-stamp install-stamp
++
++ dh_clean
++
++install: install-stamp
++install-stamp: build-stamp
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ $(MAKE) install.libs install.progs DESTDIR=$(BUILD_DIR)
++
++ ( cd test && make ncurses LOCAL_LIBDIR=$(MY_DIR)/lib )
++ mv test/ncurses $(BUILD_DIR)$(MY_DIR)/bin/ncurses6
++
++ touch install-stamp
++
++# Build architecture-independent files here.
++binary-indep: build install
++# No binary-indep target.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installchangelogs NEWS
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install install-stamp
+Index: package/debian/source/format
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/source/format 2014-11-16 02:19:47.000000000 +0000
+@@ -0,0 +1 @@
++3.0 (native)
+Index: package/debian/watch
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/debian/watch 2012-06-08 11:53:43.000000000 +0000
+@@ -0,0 +1,4 @@
++version=3
++
++opts=passive ftp://invisible-island.net/ncurses/current/ncurses\.tar.gz \
++ debian uupdate
+Index: package/mingw-ncurses.nsi
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/mingw-ncurses.nsi 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1,190 @@
++; $Id: mingw-ncurses.nsi,v 1.73 2014/12/06 13:32:29 tom Exp $
++
++; TODO add examples
++; TODO bump ABI to 6
++
++; Define the application name
++!define APPNAME "ncurses"
++!define EXENAME "ncurses.exe"
++
++!define VERSION_MAJOR "5"
++!define VERSION_MINOR "9"
++!define VERSION_YYYY "2014"
++!define VERSION_MMDD "1206"
++!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
++
++!define MY_ABI "5"
++!define MY_MODEL "w"
++
++!define SUBKEY "ncurses"
++
++!define INSTALL "${APPNAME} (Console)"
++!define VERSION ${VERSION_MAJOR}.${VERSION_MINOR}
++!define VERSION_FULL ${VERSION}-${VERSION_PATCH}
++
++; Main Install settings
++Name "${INSTALL}"
++InstallDir "c:\mingw"
++InstallDirRegKey HKLM "Software\${SUBKEY}" "$INSTDIR\bin"
++OutFile "NSIS-Output\${APPNAME}-${VERSION_FULL}-setup.exe"
++
++CRCCheck on
++SetCompressor /SOLID lzma
++
++VIAddVersionKey ProductName "${SUBKEY}"
++VIAddVersionKey CompanyName "http://invisible-island.net"
++VIAddVersionKey FileDescription "NCurses Installer (MinGW)"
++VIAddVersionKey FileVersion ${VERSION_FULL}
++VIAddVersionKey ProductVersion ${VERSION_FULL}
++VIAddVersionKey Comments "This installer was built with NSIS and cross-compiling to MinGW."
++VIAddVersionKey InternalName "${APPNAME}-${VERSION_FULL}-setup.exe"
++; This is a dotted set of numbers limited to 16-bits each
++VIProductVersion "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_YYYY}.${VERSION_MMDD}"
++
++; Modern interface settings
++!include "MUI.nsh"
++
++!define MUI_ABORTWARNING
++;!define MUI_FINISHPAGE_RUN
++;"$INSTDIR\bin\${EXENAME}"
++
++!insertmacro MUI_PAGE_WELCOME
++!insertmacro MUI_PAGE_LICENSE "..\COPYING"
++!insertmacro MUI_PAGE_COMPONENTS
++!insertmacro MUI_PAGE_DIRECTORY
++!insertmacro MUI_PAGE_INSTFILES
++!insertmacro MUI_PAGE_FINISH
++
++!insertmacro MUI_UNPAGE_CONFIRM
++!insertmacro MUI_UNPAGE_INSTFILES
++
++; Set languages (first is default language)
++!insertmacro MUI_LANGUAGE "English"
++!insertmacro MUI_RESERVEFILE_LANGDLL
++
++InstType "Full" ; SectionIn 1
++InstType "Typical" ; SectionIn 2
++InstType "Minimal" ; SectionIn 3
++
++Section "${APPNAME}" Section1
++
++ SectionIn 1 2 3
++
++ ; Set Section properties
++ SetOverwrite on
++
++ ; Set Section Files and Shortcuts
++ SetOutPath "$INSTDIR\bin"
++
++ File ".\bin\*.dll"
++
++ SetOutPath "$INSTDIR\share\${APPNAME}"
++ File /oname=README.txt "..\README"
++ File /oname=README-mingw.txt "..\README.mingw"
++
++ CreateDirectory "$SMPROGRAMS\${INSTALL}"
++ CreateShortCut "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk" "$INSTDIR\bin\${EXENAME}"
++ CreateShortCut "$SMPROGRAMS\${INSTALL}\Uninstall.lnk" "$INSTDIR\uninstall.exe"
++
++SectionEnd
++
++Section "development" Section2
++
++ SectionIn 1 2
++
++ ; Set Section properties
++ SetOverwrite on
++
++ ; Set Section Files and Shortcuts
++ SetOutPath "$INSTDIR\share\${APPNAME}"
++
++ SetOutPath "$INSTDIR\include\${APPNAME}${MY_MODEL}"
++
++ File ".\include\${APPNAME}${MY_MODEL}\*.h"
++
++ SetOutPath "$INSTDIR\lib"
++
++ File ".\lib\*.a"
++
++SectionEnd
++
++Section "examples" Section3
++
++ SectionIn 1
++
++ ; Set Section properties
++ SetOverwrite on
++
++ ; Set Section Files and Shortcuts
++ SetOutPath "$INSTDIR\lib\${APPNAME}"
++
++SectionEnd
++
++Section -FinishSection
++
++ WriteRegStr HKLM "Software\${SUBKEY}" "" "$INSTDIR"
++ WriteRegStr HKLM "Software\${SUBKEY}" "Environment" ""
++ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "DisplayName" "${APPNAME} ${VERSION_FULL} (Console)"
++ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}" "UninstallString" "$INSTDIR\uninstall.exe"
++ WriteUninstaller "$INSTDIR\uninstall.exe"
++
++SectionEnd
++
++; Modern install component descriptions
++!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
++ !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "${SUBKEY} runtime"
++ !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Development headers and libraries"
++ !insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Examples"
++!insertmacro MUI_FUNCTION_DESCRIPTION_END
++
++;Uninstall section
++Section Uninstall
++
++ ;Remove from registry...
++ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL}"
++ DeleteRegKey HKLM "SOFTWARE\${SUBKEY}"
++
++ ; Delete self
++ Delete "$INSTDIR\uninstall.exe"
++
++ ; Delete Shortcuts
++ Delete "$SMPROGRAMS\${INSTALL}\${APPNAME}.lnk"
++ Delete "$SMPROGRAMS\${INSTALL}\Uninstall.lnk"
++
++ ; Clean up application
++ Delete "$INSTDIR\bin\libform${MY_MODEL}${MY_ABI}.dll"
++ Delete "$INSTDIR\bin\libmenu${MY_MODEL}${MY_ABI}.dll"
++ Delete "$INSTDIR\bin\libncurses++${MY_MODEL}${MY_ABI}.dll"
++ Delete "$INSTDIR\bin\libncurses${MY_MODEL}${MY_ABI}.dll"
++ Delete "$INSTDIR\bin\libpanel${MY_MODEL}${MY_ABI}.dll"
++
++ Delete "$INSTDIR\include\${APPNAME}${MY_MODEL}\*.h"
++
++ Delete "$INSTDIR\lib\libform${MY_MODEL}.a"
++ Delete "$INSTDIR\lib\libmenu${MY_MODEL}.a"
++ Delete "$INSTDIR\lib\libncurses++${MY_MODEL}.a"
++ Delete "$INSTDIR\lib\libncurses${MY_MODEL}.a"
++ Delete "$INSTDIR\lib\libpanel${MY_MODEL}.a"
++
++ Delete "$INSTDIR\lib\libform${MY_MODEL}.dll.a"
++ Delete "$INSTDIR\lib\libmenu${MY_MODEL}.dll.a"
++ Delete "$INSTDIR\lib\libncurses++${MY_MODEL}.dll.a"
++ Delete "$INSTDIR\lib\libncurses${MY_MODEL}.dll.a"
++ Delete "$INSTDIR\lib\libpanel${MY_MODEL}.dll.a"
++
++ Delete "$INSTDIR\lib\${APPNAME}\*.exe"
++
++ Delete "$INSTDIR\share\${APPNAME}\*.*"
++
++ ; Remove remaining directories
++ RMDir "$SMPROGRAMS\${INSTALL}"
++ RMDir "$INSTDIR\share\${APPNAME}"
++ RMDir "$INSTDIR\share"
++ RMDir "$INSTDIR\lib\${APPNAME}"
++ RMDir "$INSTDIR\lib"
++ RMDir "$INSTDIR\include\${APPNAME}${MY_MODEL}"
++ RMDir "$INSTDIR\include"
++ RMDir "$INSTDIR\bin"
++ RMDir "$INSTDIR\"
++
++SectionEnd
+\ No newline at end of file
+Index: package/mingw-ncurses.spec
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/mingw-ncurses.spec 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1,143 @@
++%?mingw_package_header
++
++Summary: shared libraries for terminal handling
++Name: mingw32-ncurses6
++Version: 5.9
++Release: 20141206
++License: X11
++Group: Development/Libraries
++Source: ncurses-%{version}-%{release}.tgz
++# URL: http://invisible-island.net/ncurses/
++
++BuildRequires: mingw32-filesystem >= 95
++BuildRequires: mingw32-gcc
++BuildRequires: mingw32-binutils
++
++BuildRequires: mingw64-filesystem >= 95
++BuildRequires: mingw64-gcc
++BuildRequires: mingw64-binutils
++
++%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
++%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
++
++%description -n mingw32-ncurses6
++Cross-compiling support for ncurses to mingw32.
++
++The ncurses library routines are a terminal-independent method of
++updating character screens with reasonable optimization.
++
++This package is used for testing ABI 6 with cross-compiles to MinGW.
++
++%package -n mingw64-ncurses6
++Summary: Curses library for MinGW64
++
++%description -n mingw64-ncurses6
++Cross-compiling support for ncurses to mingw64.
++
++The ncurses library routines are a terminal-independent method of
++updating character screens with reasonable optimization.
++
++This package is used for testing ABI 6 with cross-compiles to MinGW.
++
++%prep
++
++%define CFG_OPTS \\\
++ --disable-echo \\\
++ --disable-db-install \\\
++ --disable-getcap \\\
++ --disable-hard-tabs \\\
++ --disable-leaks \\\
++ --disable-macros \\\
++ --disable-overwrite \\\
++ --disable-termcap \\\
++ --enable-const \\\
++ --enable-ext-colors \\\
++ --enable-ext-mouse \\\
++ --enable-interop \\\
++ --enable-sp-funcs \\\
++ --enable-term-driver \\\
++ --enable-warnings \\\
++ --enable-widec \\\
++ --verbose \\\
++ --with-cxx-shared \\\
++ --with-develop \\\
++ --with-fallbacks=unknown,rxvt \\\
++ --with-shared \\\
++ --with-tparm-arg=intptr_t \\\
++ --with-trace \\\
++ --with-xterm-kbs=DEL \\\
++ --without-ada \\\
++ --without-debug \\\
++ --with-install-prefix=$RPM_BUILD_ROOT \\\
++ --without-manpages \\\
++ --without-progs \\\
++ --without-tests
++
++%define debug_package %{nil}
++%setup -q -n ncurses-%{version}-%{release}
++
++%build
++mkdir BUILD-W32
++pushd BUILD-W32
++CFLAGS="%{CC_NORMAL}" \
++CC=%{mingw32_cc} \
++%mingw32_configure %{CFG_OPTS}
++make
++popd
++
++mkdir BUILD-W64
++pushd BUILD-W64
++CFLAGS="%{CC_NORMAL}" \
++CC=%{mingw64_cc} \
++%mingw64_configure %{CFG_OPTS}
++make
++popd
++
++%install
++rm -rf $RPM_BUILD_ROOT
++
++mkdir -p $RPM_BUILD_ROOT%{_bindir}
++
++pushd BUILD-W32
++%{mingw32_make} install.libs
++for name in $RPM_BUILD_ROOT%{mingw32_bindir}/*-config; \
++ do \
++ base=`basename $name`; \
++ ln -v $name $RPM_BUILD_ROOT%{_bindir}/%{mingw32_target}-$base; \
++ done
++popd
++
++pushd BUILD-W64
++%{mingw64_make} install.libs
++for name in $RPM_BUILD_ROOT%{mingw64_bindir}/*-config; \
++ do \
++ base=`basename $name`; \
++ ln -v $name $RPM_BUILD_ROOT%{_bindir}/%{mingw64_target}-$base; \
++ done
++popd
++
++%clean
++rm -rf $RPM_BUILD_ROOT
++
++%files
++%defattr(-,root,root,-)
++
++%files -n mingw32-ncurses6
++%{_bindir}/%{mingw32_target}-*
++%{mingw32_bindir}/*
++%{mingw32_includedir}/*
++%{mingw32_libdir}/*
++
++%files -n mingw64-ncurses6
++%{_bindir}/%{mingw64_target}-*
++%{mingw64_bindir}/*
++%{mingw64_includedir}/*
++%{mingw64_libdir}/*
++
++%changelog
++
++* Sat Sep 20 2014 Thomas E. Dickey
++- adjust install-rules for ncurses*-config
++
++* Sat Aug 03 2013 Thomas E. Dickey
++- initial version, using mingw-pdcurses package as a guide.
+Index: package/ncurses.map
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncurses.map 2014-11-29 19:59:14.000000000 +0000
+@@ -0,0 +1,1109 @@
++# $Id: ncurses.map,v 1.25 2014/11/29 19:59:14 tom Exp $
++# script for shared library symbol-versioning using ld
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 5 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --verbose
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++#
++
++NCURSES_5.0.19991023 {
++ global:
++ COLORS;
++ COLOR_PAIR;
++ COLOR_PAIRS;
++ ESCDELAY;
++ PAIR_NUMBER;
++ TYPE_ALNUM;
++ TYPE_ALPHA;
++ TYPE_ENUM;
++ TYPE_INTEGER;
++ TYPE_IPV4;
++ TYPE_NUMERIC;
++ TYPE_REGEXP;
++ _nc_free_and_exit;
++ _nc_panelhook;
++ _nc_ripoffline;
++ addch;
++ addchnstr;
++ addchstr;
++ addnstr;
++ addstr;
++ attr_get;
++ attr_off;
++ attr_on;
++ attr_set;
++ attroff;
++ attron;
++ attrset;
++ beep;
++ bkgd;
++ bkgdset;
++ border;
++ bottom_panel;
++ box;
++ can_change_color;
++ chgat;
++ clear;
++ clearok;
++ clrtobot;
++ clrtoeol;
++ color_content;
++ color_set;
++ copywin;
++ current_field;
++ current_item;
++ data_ahead;
++ data_behind;
++ del_panel;
++ delch;
++ deleteln;
++ delscreen;
++ delwin;
++ derwin;
++ doupdate;
++ dup_field;
++ dupwin;
++ dynamic_field_info;
++ echo;
++ echochar;
++ endwin;
++ field_arg;
++ field_back;
++ field_buffer;
++ field_count;
++ field_fore;
++ field_index;
++ field_info;
++ field_init;
++ field_just;
++ field_opts;
++ field_opts_off;
++ field_opts_on;
++ field_pad;
++ field_status;
++ field_term;
++ field_type;
++ field_userptr;
++ filter;
++ flash;
++ form_driver;
++ form_fields;
++ form_init;
++ form_opts;
++ form_opts_off;
++ form_opts_on;
++ form_page;
++ form_request_by_name;
++ form_request_name;
++ form_sub;
++ form_term;
++ form_userptr;
++ form_win;
++ free_field;
++ free_fieldtype;
++ free_form;
++ free_item;
++ free_menu;
++ getbkgd;
++ getch;
++ getmouse;
++ getnstr;
++ getstr;
++ getwin;
++ has_colors;
++ hide_panel;
++ hline;
++ immedok;
++ inch;
++ inchnstr;
++ inchstr;
++ init_color;
++ init_pair;
++ initscr;
++ innstr;
++ insch;
++ insdelln;
++ insertln;
++ insnstr;
++ insstr;
++ instr;
++ is_linetouched;
++ is_wintouched;
++ isendwin;
++ item_count;
++ item_description;
++ item_index;
++ item_init;
++ item_name;
++ item_opts;
++ item_opts_off;
++ item_opts_on;
++ item_term;
++ item_userptr;
++ item_value;
++ item_visible;
++ leaveok;
++ link_field;
++ link_fieldtype;
++ mcprint;
++ menu_back;
++ menu_driver;
++ menu_fore;
++ menu_format;
++ menu_grey;
++ menu_init;
++ menu_items;
++ menu_mark;
++ menu_opts;
++ menu_opts_off;
++ menu_opts_on;
++ menu_pad;
++ menu_pattern;
++ menu_request_by_name;
++ menu_request_name;
++ menu_spacing;
++ menu_sub;
++ menu_term;
++ menu_userptr;
++ menu_win;
++ mouse_trafo;
++ mouseinterval;
++ mousemask;
++ move;
++ move_field;
++ move_panel;
++ mvaddch;
++ mvaddchnstr;
++ mvaddchstr;
++ mvaddnstr;
++ mvaddstr;
++ mvchgat;
++ mvcur;
++ mvdelch;
++ mvderwin;
++ mvgetch;
++ mvgetnstr;
++ mvgetstr;
++ mvhline;
++ mvinch;
++ mvinchnstr;
++ mvinchstr;
++ mvinnstr;
++ mvinsch;
++ mvinsnstr;
++ mvinsstr;
++ mvinstr;
++ mvprintw;
++ mvscanw;
++ mvvline;
++ mvwaddch;
++ mvwaddchnstr;
++ mvwaddchstr;
++ mvwaddnstr;
++ mvwaddstr;
++ mvwchgat;
++ mvwdelch;
++ mvwgetch;
++ mvwgetnstr;
++ mvwgetstr;
++ mvwhline;
++ mvwin;
++ mvwinch;
++ mvwinchnstr;
++ mvwinchstr;
++ mvwinnstr;
++ mvwinsch;
++ mvwinsnstr;
++ mvwinsstr;
++ mvwinstr;
++ mvwprintw;
++ mvwscanw;
++ mvwvline;
++ new_field;
++ new_fieldtype;
++ new_form;
++ new_item;
++ new_menu;
++ new_page;
++ new_panel;
++ newpad;
++ newterm;
++ newwin;
++ nl;
++ noecho;
++ nonl;
++ overlay;
++ overwrite;
++ pair_content;
++ panel_above;
++ panel_below;
++ panel_hidden;
++ panel_userptr;
++ panel_window;
++ pechochar;
++ pnoutrefresh;
++ pos_form_cursor;
++ pos_menu_cursor;
++ post_form;
++ post_menu;
++ prefresh;
++ printw;
++ putwin;
++ redrawwin;
++ refresh;
++ replace_panel;
++ resizeterm;
++ restartterm;
++ ripoffline;
++ scale_form;
++ scale_menu;
++ scanw;
++ scr_dump;
++ scr_init;
++ scr_restore;
++ scr_set;
++ scrl;
++ scroll;
++ scrollok;
++ set_current_field;
++ set_current_item;
++ set_field_back;
++ set_field_buffer;
++ set_field_fore;
++ set_field_init;
++ set_field_just;
++ set_field_opts;
++ set_field_pad;
++ set_field_status;
++ set_field_term;
++ set_field_type;
++ set_field_userptr;
++ set_fieldtype_arg;
++ set_fieldtype_choice;
++ set_form_fields;
++ set_form_init;
++ set_form_opts;
++ set_form_page;
++ set_form_sub;
++ set_form_term;
++ set_form_userptr;
++ set_form_win;
++ set_item_init;
++ set_item_opts;
++ set_item_term;
++ set_item_userptr;
++ set_item_value;
++ set_max_field;
++ set_menu_back;
++ set_menu_fore;
++ set_menu_format;
++ 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;
++ set_menu_term;
++ set_menu_userptr;
++ set_menu_win;
++ set_new_page;
++ set_panel_userptr;
++ set_term;
++ set_top_row;
++ setscrreg;
++ show_panel;
++ slk_attr;
++ slk_attr_off;
++ slk_attr_on;
++ slk_attr_set;
++ slk_attroff;
++ slk_attron;
++ slk_attrset;
++ slk_clear;
++ slk_color;
++ slk_init;
++ slk_label;
++ slk_noutrefresh;
++ slk_refresh;
++ slk_restore;
++ slk_set;
++ slk_touch;
++ standend;
++ standout;
++ start_color;
++ subpad;
++ subwin;
++ syncok;
++ termattrs;
++ timeout;
++ top_panel;
++ top_row;
++ ungetch;
++ ungetmouse;
++ unpost_form;
++ unpost_menu;
++ untouchwin;
++ update_panels;
++ use_default_colors;
++ vid_attr;
++ vidattr;
++ vidputs;
++ vline;
++ vw_printw;
++ vw_scanw;
++ vwprintw;
++ vwscanw;
++ waddch;
++ waddchnstr;
++ waddchstr;
++ waddnstr;
++ waddstr;
++ wattr_get;
++ wattr_off;
++ wattr_on;
++ wattr_set;
++ wattroff;
++ wattron;
++ wattrset;
++ wbkgd;
++ wbkgdset;
++ wborder;
++ wchgat;
++ wclear;
++ wclrtobot;
++ wclrtoeol;
++ wcolor_set;
++ wcursyncup;
++ wdelch;
++ wdeleteln;
++ wechochar;
++ wenclose;
++ werase;
++ wgetch;
++ wgetnstr;
++ wgetstr;
++ whline;
++ winch;
++ winchnstr;
++ winchstr;
++ winnstr;
++ winsch;
++ winsdelln;
++ winsertln;
++ winsnstr;
++ winsstr;
++ winstr;
++ wmouse_trafo;
++ wmove;
++ wnoutrefresh;
++ wprintw;
++ wredrawln;
++ wrefresh;
++ wresize;
++ wscanw;
++ wscrl;
++ wsetscrreg;
++ wstandend;
++ wstandout;
++ wsyncdown;
++ wsyncup;
++ wtouchln;
++ wvline;
++ local:
++ _nc_Calculate_Item_Length_and_Width;
++ _nc_Connect_Items;
++ _nc_Copy_Argument;
++ _nc_Copy_Type;
++ _nc_Default_Field;
++ _nc_Default_FieldType;
++ _nc_Default_Form;
++ _nc_Default_Item;
++ _nc_Default_Menu;
++ _nc_Disconnect_Items;
++ _nc_Draw_Menu;
++ _nc_First_Active_Field;
++ _nc_Free_Argument;
++ _nc_Free_Type;
++ _nc_Internal_Validation;
++ _nc_Link_Items;
++ _nc_Make_Argument;
++ _nc_Match_Next_Character_In_Item_Name;
++ _nc_New_TopRow_and_CurrentItem;
++ _nc_Position_Form_Cursor;
++ _nc_Post_Item;
++ _nc_Refresh_Current_Field;
++ _nc_Set_Current_Field;
++ _nc_Set_Form_Page;
++ _nc_Show_Menu;
++ _nc_Synchronize_Attributes;
++ _nc_Synchronize_Options;
++ _nc_background;
++ _nc_do_color;
++ _nc_expanded;
++ _nc_freeall;
++ _nc_freewin;
++ _nc_has_mouse;
++ _nc_hash_map;
++ _nc_lib_traceatr;
++ _nc_lib_tracedmp;
++ _nc_lib_tracemouse;
++ _nc_make_oldhash;
++ _nc_makenew;
++ _nc_memmove;
++ _nc_menu_cursor_pos;
++ _nc_msec_cost;
++ _nc_mvcur_init;
++ _nc_mvcur_resume;
++ _nc_mvcur_wrap;
++ _nc_oldnums;
++ _nc_outstr;
++ _nc_printf_string;
++ _nc_render;
++ _nc_screen_init;
++ _nc_screen_resume;
++ _nc_screen_wrap;
++ _nc_scroll_oldhash;
++ _nc_scroll_optimize;
++ _nc_scroll_window;
++ _nc_scrolln;
++ _nc_setupscreen;
++ _nc_sigaction;
++ _nc_signal_handler;
++ _nc_slk_format;
++ _nc_slk_initialize;
++ _nc_synchook;
++ _nc_trace_xnames;
++ _nc_vsscanf;
++ _nc_waddch_nosync;
++};
++
++NCURSES_5.1.20000708 {
++ global:
++ assume_default_colors;
++ erase;
++ touchline;
++ touchwin;
++} NCURSES_5.0.19991023;
++
++NCURSES_5.3.20021019 {
++ global:
++ is_term_resized;
++ resize_term;
++ local:
++ _nc_reset_colors;
++ _nc_varargs;
++ _nc_wgetch;
++} NCURSES_5.1.20000708;
++
++NCURSES_5.4.20040208 {
++ global:
++ _nc_optimize_enable;
++ local:
++ _nc_Touchline;
++ _nc_Touchpan;
++ _nc_Wnoutrefresh;
++ _nc_dPanel;
++ _nc_dStack;
++ _nc_fifo_dump;
++ _nc_insert_ch;
++ _nc_linedump;
++ _nc_my_visbuf;
++ _tracedump;
++ _tracemouse;
++} NCURSES_5.3.20021019;
++
++NCURSES_5.5.20051010 {
++ local:
++ _nc_Calculate_Text_Width;
++ _nc_retrace_field;
++ _nc_retrace_field_ptr;
++ _nc_retrace_field_type;
++ _nc_retrace_form;
++ _nc_retrace_form_hook;
++ _nc_retrace_item;
++ _nc_retrace_item_opts;
++ _nc_retrace_item_ptr;
++ _nc_retrace_menu;
++ _nc_retrace_menu_hook;
++ _nc_retrace_menu_opts;
++ _nc_retrace_panel;
++} NCURSES_5.4.20040208;
++
++NCURSES_5.6.20061217 {
++ global:
++ getbegx;
++ getbegy;
++ getcurx;
++ getcury;
++ getmaxx;
++ getmaxy;
++ getparx;
++ getpary;
++ nofilter;
++ use_legacy_coding;
++ wgetch_events;
++ wgetnstr_events;
++} NCURSES_5.5.20051010;
++
++NCURSES_5.7.20081102 {
++ global:
++ getattrs;
++ is_cleared;
++ is_idcok;
++ is_idlok;
++ is_immedok;
++ is_keypad;
++ is_leaveok;
++ is_nodelay;
++ is_notimeout;
++ is_scrollok;
++ is_syncok;
++ set_escdelay;
++ use_screen;
++ use_window;
++ wgetparent;
++ wgetscrreg;
++ local:
++ _nc_tracemouse;
++ _nc_ungetch;
++} NCURSES_5.6.20061217;
++
++NCURSES_5.8.20110226 {
++ global:
++ _nc_panelhook_sp;
++ assume_default_colors_sp;
++ beep_sp;
++ can_change_color_sp;
++ ceiling_panel;
++ color_content_sp;
++ doupdate_sp;
++ echo_sp;
++ endwin_sp;
++ filter_sp;
++ flash_sp;
++ get_escdelay;
++ get_escdelay_sp;
++ getmouse_sp;
++ getwin_sp;
++ ground_panel;
++ has_colors_sp;
++ has_mouse;
++ has_mouse_sp;
++ init_color_sp;
++ init_pair_sp;
++ is_pad;
++ is_subwin;
++ is_term_resized_sp;
++ isendwin_sp;
++ mcprint_sp;
++ mouseinterval_sp;
++ mousemask_sp;
++ mvcur_sp;
++ new_form_sp;
++ new_menu_sp;
++ newpad_sp;
++ newterm_sp;
++ newwin_sp;
++ nl_sp;
++ noecho_sp;
++ nofilter_sp;
++ nonl_sp;
++ pair_content_sp;
++ resize_term_sp;
++ resizeterm_sp;
++ restartterm_sp;
++ ripoffline_sp;
++ scr_init_sp;
++ scr_restore_sp;
++ scr_set_sp;
++ set_escdelay_sp;
++ slk_attr_set_sp;
++ slk_attr_sp;
++ slk_attroff_sp;
++ slk_attron_sp;
++ slk_attrset_sp;
++ slk_clear_sp;
++ slk_color_sp;
++ slk_init_sp;
++ slk_label_sp;
++ slk_noutrefresh_sp;
++ slk_refresh_sp;
++ slk_restore_sp;
++ slk_set_sp;
++ slk_touch_sp;
++ start_color_sp;
++ termattrs_sp;
++ ungetch_sp;
++ ungetmouse_sp;
++ update_panels_sp;
++ use_default_colors_sp;
++ use_legacy_coding_sp;
++ vidattr_sp;
++ vidputs_sp;
++ local:
++ _nc_TYPE_ALNUM;
++ _nc_TYPE_ALPHA;
++ _nc_TYPE_ENUM;
++ _nc_TYPE_INTEGER;
++ _nc_TYPE_IPV4;
++ _nc_TYPE_NUMERIC;
++ _nc_TYPE_REGEXP;
++ _nc_curscr_of;
++ _nc_do_color_sp;
++ _nc_form_cursor;
++ _nc_format_slks;
++ _nc_free_and_exit_sp;
++ _nc_freeall_sp;
++ _nc_fty_generic;
++ _nc_generic_fieldtype;
++ _nc_get_fieldbuffer;
++ _nc_hash_map_sp;
++ _nc_linedump_sp;
++ _nc_make_oldhash_sp;
++ _nc_makenew_sp;
++ _nc_msec_cost_sp;
++ _nc_mvcur_init_sp;
++ _nc_mvcur_resume_sp;
++ _nc_mvcur_wrap_sp;
++ _nc_newscr_of;
++ _nc_printf_string_sp;
++ _nc_reset_colors_sp;
++ _nc_retrace_mmask_t;
++ _nc_ripoffline_sp;
++ _nc_screen_init_sp;
++ _nc_screen_resume_sp;
++ _nc_screen_wrap_sp;
++ _nc_scroll_oldhash_sp;
++ _nc_scroll_optimize_sp;
++ _nc_scrolln_sp;
++ _nc_set_generic_fieldtype;
++ _nc_setupscreen_sp;
++ _nc_stdscr_of;
++} NCURSES_5.7.20081102;
++
++NCURSES_5.9.current {
++ global:
++ wgetdelay;
++ local:
++ _nc_mvcur;
++ _nc_mvcur_sp;
++ _nc_trace_mmask_t;
++} NCURSES_5.8.20110226;
++
++NCURSES_TIC_5.0.19991023 {
++ global:
++ _nc_capcmp;
++ _nc_check_termtype;
++ _nc_entry_match;
++ _nc_find_type_entry;
++ _nc_get_table;
++ _nc_infotocap;
++ _nc_read_entry_source;
++ _nc_reset_input;
++ _nc_resolve_uses;
++ _nc_set_writedir;
++ _nc_syntax;
++ _nc_tic_expand;
++ _nc_tic_written;
++ _nc_trans_string;
++ _nc_write_entry;
++ local:
++ _nc_captoinfo;
++ _nc_comment_end;
++ _nc_comment_start;
++ _nc_copy_entry;
++ _nc_curr_file_pos;
++ _nc_curr_token;
++ _nc_get_token;
++ _nc_init_entry;
++ _nc_merge_entry;
++ _nc_panic_mode;
++ _nc_parse_entry;
++ _nc_push_token;
++ _nc_save_str;
++ _nc_start_line;
++ _nc_wrap_entry;
++};
++
++NCURSES_TIC_5.1.20000708 {
++ global:
++ _nc_disable_period;
++} NCURSES_TIC_5.0.19991023;
++
++NCURSES_TIC_5.5.20051010 {
++ global:
++ _nc_alloc_entry_leaks;
++ _nc_captoinfo_leaks;
++ _nc_check_termtype2;
++ _nc_comp_scan_leaks;
++ _nc_resolve_uses2;
++} NCURSES_TIC_5.1.20000708;
++
++NCURSES_TIC_5.7.20081102 {
++ global:
++ _nc_free_tic;
++ _nc_get_alias_table;
++ local:
++ _nc_comp_captab_leaks;
++ _nc_leaks_tic;
++} NCURSES_TIC_5.5.20051010;
++
++NCURSES_TIC_5.9.current {
++ global:
++ _nc_strict_bsd;
++} NCURSES_TIC_5.7.20081102;
++
++NCURSES_TINFO_5.0.19991023 {
++ global:
++ BC;
++ COLS;
++ LINES;
++ PC;
++ SP;
++ TABSIZE;
++ UP;
++ _nc_access;
++ _nc_add_to_try;
++ _nc_copy_termtype;
++ _nc_curr_col;
++ _nc_curr_line;
++ _nc_doalloc;
++ _nc_err_abort;
++ _nc_fallback;
++ _nc_find_entry;
++ _nc_first_name;
++ _nc_free_entries;
++ _nc_free_termtype;
++ _nc_free_tparm;
++ _nc_get_hash_table;
++ _nc_get_tty_mode;
++ _nc_get_type;
++ _nc_getenv_num;
++ _nc_head;
++ _nc_home_terminfo;
++ _nc_info_hash_table;
++ _nc_init_acs;
++ _nc_keep_tic_dir;
++ _nc_keypad;
++ _nc_name_match;
++ _nc_outch;
++ _nc_read_entry;
++ _nc_read_file_entry;
++ _nc_screen_chain;
++ _nc_set_buffer;
++ _nc_set_source;
++ _nc_set_tty_mode;
++ _nc_set_type;
++ _nc_suppress_warnings;
++ _nc_syserr_abort;
++ _nc_tail;
++ _nc_tic_dir;
++ _nc_timed_wait;
++ _nc_tinfo_fkeysf;
++ _nc_trace_buf;
++ _nc_tracing;
++ _nc_update_screensize;
++ _nc_visbuf;
++ _nc_visbuf2;
++ _nc_warning;
++ _tracechar;
++ acs_map;
++ baudrate;
++ boolcodes;
++ boolfnames;
++ boolnames;
++ cbreak;
++ cur_term;
++ curs_set;
++ curscr;
++ curses_version;
++ def_prog_mode;
++ def_shell_mode;
++ define_key;
++ del_curterm;
++ delay_output;
++ erasechar;
++ flushinp;
++ halfdelay;
++ has_ic;
++ has_il;
++ has_key;
++ idcok;
++ idlok;
++ intrflush;
++ keybound;
++ keyname;
++ keyok;
++ keypad;
++ killchar;
++ longname;
++ meta;
++ napms;
++ newscr;
++ nocbreak;
++ nodelay;
++ noqiflush;
++ noraw;
++ notimeout;
++ numcodes;
++ numfnames;
++ numnames;
++ ospeed;
++ putp;
++ qiflush;
++ raw;
++ reset_prog_mode;
++ reset_shell_mode;
++ resetty;
++ savetty;
++ set_curterm;
++ setupterm;
++ stdscr;
++ strcodes;
++ strfnames;
++ strnames;
++ termname;
++ tgetent;
++ tgetflag;
++ tgetnum;
++ tgetstr;
++ tgoto;
++ tigetflag;
++ tigetnum;
++ tigetstr;
++ tparm;
++ tputs;
++ trace;
++ ttytype;
++ typeahead;
++ unctrl;
++ use_env;
++ wtimeout;
++ local:
++ _nc_baudrate;
++ _nc_cap_hash_table;
++ _nc_capalias_table;
++ _nc_expand_try;
++ _nc_infoalias_table;
++ _nc_init_keytry;
++ _nc_key_names;
++ _nc_nulls_sent;
++ _nc_ospeed;
++ _nc_read_termcap;
++ _nc_read_termcap_entry;
++ _nc_remove_key;
++ _nc_remove_string;
++ _nc_trace_tries;
++ _nc_tracebits;
++};
++
++NCURSES_TINFO_5.1.20000708 {
++ global:
++ _nc_align_termtype;
++ _nc_flush;
++ _nc_tinfo_fkeys;
++ _nc_user_definable;
++ use_extended_names;
++} NCURSES_TINFO_5.0.19991023;
++
++NCURSES_TINFO_5.2.20001021 {
++ global:
++ _nc_basename;
++ _nc_env_access;
++ _nc_safe_strcat;
++ _nc_safe_strcpy;
++ _nc_str_copy;
++ _nc_str_init;
++ _nc_str_null;
++} NCURSES_TINFO_5.1.20000708;
++
++NCURSES_TINFO_5.3.20021019 {
++ global:
++ _nc_rootname;
++ _nc_tparm_err;
++ _nc_visbufn;
++} NCURSES_TINFO_5.2.20001021;
++
++NCURSES_TINFO_5.4.20040208 {
++ global:
++ _nc_get_locale;
++ _nc_locale_breaks_acs;
++ _nc_outchars;
++ _nc_pathlast;
++ _nc_retrace_attr_t;
++ _nc_retrace_bool;
++ _nc_retrace_chtype;
++ _nc_retrace_int;
++ _nc_retrace_ptr;
++ _nc_retrace_sp;
++ _nc_retrace_unsigned;
++ _nc_retrace_win;
++ _nc_tparm_analyze;
++ _nc_tputs_trace;
++ _nc_trace_bufcat;
++ _nc_unicode_locale;
++ _traceattr;
++ _traceattr2;
++ _tracechtype;
++ _tracechtype2;
++ _tracef;
++ key_defined;
++ local:
++ _nc_altcharset_name;
++ _nc_trace_ttymode;
++} NCURSES_TINFO_5.3.20021019;
++
++NCURSES_TINFO_5.5.20051010 {
++ global:
++ _nc_get_source;
++ _nc_retrace_cptr;
++ _nc_retrace_cvoid_ptr;
++ _nc_retrace_void_ptr;
++ _nc_setupterm;
++ _nc_trim_sgr0;
++ local:
++ _nc_delink_entry;
++ _nc_free_entry;
++} NCURSES_TINFO_5.4.20040208;
++
++NCURSES_TINFO_5.6.20061217 {
++ global:
++ _nc_eventlist_timeout;
++ _nc_first_db;
++ _nc_handle_sigwinch;
++ _nc_is_abs_path;
++ _nc_is_dir_path;
++ _nc_is_file_path;
++ _nc_keyname_leaks;
++ _nc_last_db;
++ _nc_next_db;
++ _nc_tgetent_leaks;
++ _nc_viscbuf;
++ local:
++ _nc_hashed_db;
++ _nc_read_termtype;
++ _nc_viscbuf2;
++} NCURSES_TINFO_5.5.20051010;
++
++NCURSES_TINFO_5.7.20081102 {
++ global:
++ _nc_free_tinfo;
++ _nc_get_screensize;
++ _nc_globals;
++ _nc_leaks_tinfo;
++ _nc_prescreen;
++ _nc_screen_of;
++ _nc_set_no_padding;
++ _nc_tracechar;
++ set_tabsize;
++ local:
++ _nc_keyname;
++ _nc_unctrl;
++} NCURSES_TINFO_5.6.20061217;
++
++NCURSES_TINFO_5.8.20110226 {
++ global:
++ _nc_flush_sp;
++ _nc_get_tty_mode_sp;
++ _nc_init_acs_sp;
++ _nc_outc_wrapper;
++ _nc_outch_sp;
++ _nc_putp;
++ _nc_putp_flush;
++ _nc_putp_flush_sp;
++ _nc_putp_sp;
++ _nc_retrace_int_attr_t;
++ _nc_set_buffer_sp;
++ _nc_set_tty_mode_sp;
++ baudrate_sp;
++ cbreak_sp;
++ curs_set_sp;
++ def_prog_mode_sp;
++ def_shell_mode_sp;
++ define_key_sp;
++ del_curterm_sp;
++ delay_output_sp;
++ erasechar_sp;
++ flushinp_sp;
++ halfdelay_sp;
++ has_ic_sp;
++ has_il_sp;
++ has_key_sp;
++ intrflush_sp;
++ key_defined_sp;
++ keybound_sp;
++ keyname_sp;
++ keyok_sp;
++ killchar_sp;
++ napms_sp;
++ new_prescr;
++ nocbreak_sp;
++ noqiflush_sp;
++ noraw_sp;
++ putp_sp;
++ qiflush_sp;
++ raw_sp;
++ reset_prog_mode_sp;
++ reset_shell_mode_sp;
++ resetty_sp;
++ savetty_sp;
++ set_curterm_sp;
++ set_tabsize_sp;
++ termname_sp;
++ tgetent_sp;
++ tgetflag_sp;
++ tgetnum_sp;
++ tgetstr_sp;
++ tigetflag_sp;
++ tigetnum_sp;
++ tigetstr_sp;
++ tiparm;
++ tputs_sp;
++ typeahead_sp;
++ unctrl_sp;
++ use_env_sp;
++ local:
++ _nc_get_hash_info;
++ _nc_retrace_char;
++ _nc_setup_tinfo;
++ _nc_tinfo_cmdch;
++} NCURSES_TINFO_5.7.20081102;
++
++NCURSES_TINFO_5.9.current {
++ global:
++ _nc_init_termtype;
++ _nc_putchar;
++ _nc_putchar_sp;
++ use_tioctl;
++ use_tioctl_sp;
++ local:
++ _nc_comp_error_leaks;
++ _nc_db_iterator_leaks;
++ _nc_setenv_num;
++} NCURSES_TINFO_5.8.20110226;
+Index: package/ncurses.spec
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncurses.spec 2014-12-06 13:32:29.000000000 +0000
+@@ -0,0 +1,95 @@
++Summary: shared libraries for terminal handling
++Name: ncurses6
++Version: 5.9
++Release: 20141206
++License: X11
++Group: Development/Libraries
++Source: ncurses-%{version}-%{release}.tgz
++# URL: http://invisible-island.net/ncurses/
++
++%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
++%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
++
++%define _prefix /usr/local/ncurses6
++%define MYDATA /usr/local/ncurses/share/terminfo
++
++%description
++The ncurses library routines are a terminal-independent method of
++updating character screens with reasonable optimization.
++
++This package is used for testing ABI 6.
++
++%prep
++
++%define debug_package %{nil}
++%setup -q -n ncurses-%{version}-%{release}
++
++%build
++CFLAGS="%{CC_NORMAL}" \
++RPATH_LIST=../lib:%{_prefix}/lib \
++%configure \
++ --target %{_target_platform} \
++ --prefix=%{_prefix} \
++ --includedir='${prefix}/include' \
++ --with-default-terminfo-dir=%{MYDATA} \
++ --with-install-prefix=$RPM_BUILD_ROOT \
++ --with-terminfo-dirs=%{MYDATA}:/usr/share/terminfo \
++ --disable-echo \
++ --disable-getcap \
++ --disable-leaks \
++ --disable-macros \
++ --disable-overwrite \
++ --disable-termcap \
++ --enable-const \
++ --enable-ext-colors \
++ --enable-ext-mouse \
++ --enable-hard-tabs \
++ --enable-interop \
++ --enable-rpath \
++ --enable-sp-funcs \
++ --enable-warnings \
++ --enable-widec \
++ --verbose \
++ --with-chtype=uint32_t \
++ --with-mmask_t=uint32_t \
++ --with-develop \
++ --with-shared \
++ --with-termlib \
++ --with-ticlib \
++ --with-trace \
++ --with-cxx-shared \
++ --with-versioned-syms \
++ --with-xterm-kbs=DEL \
++ --without-ada \
++ --without-debug \
++ --without-normal
++
++make
++
++%install
++rm -rf $RPM_BUILD_ROOT
++
++make install.libs install.progs
++rm -f test/ncurses
++( cd test && make ncurses LOCAL_LIBDIR=%{_libdir} && mv ncurses $RPM_BUILD_ROOT/%{_bindir}/ncurses6 )
++
++%clean
++rm -rf $RPM_BUILD_ROOT
++
++%files
++%defattr(-,root,root,-)
++%{_bindir}/*
++%{_includedir}/*
++%{_libdir}/*
++#%{_datadir}/*
++
++%changelog
++
++* Sat Mar 09 2013 Thomas E. Dickey
++- add --with-cxx-shared option to demonstrate c++ binding as shared library
++
++* Sat Oct 27 2012 Thomas E. Dickey
++- add ncurses program as "ncurses6" to provide demonstration.
++
++* Fri Jun 08 2012 Thomas E. Dickey
++- initial version.
+Index: package/ncurses.sym
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncurses.sym 2014-11-28 14:12:48.000000000 +0000
+@@ -0,0 +1,997 @@
++# $Id: ncurses.sym,v 1.14 2014/11/28 14:12:48 tom Exp $
++# script for shared library symbol-visibility using libtool
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 5 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --verbose
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++BC
++COLORS
++COLOR_PAIR
++COLOR_PAIRS
++COLS
++ESCDELAY
++LINES
++PAIR_NUMBER
++PC
++SP
++TABSIZE
++TYPE_ALNUM
++TYPE_ALPHA
++TYPE_ENUM
++TYPE_INTEGER
++TYPE_IPV4
++TYPE_NUMERIC
++TYPE_REGEXP
++UP
++_nc_Calculate_Item_Length_and_Width
++_nc_Calculate_Text_Width
++_nc_Connect_Items
++_nc_Copy_Argument
++_nc_Copy_Type
++_nc_Default_Field
++_nc_Default_FieldType
++_nc_Default_Form
++_nc_Default_Item
++_nc_Default_Menu
++_nc_Disconnect_Items
++_nc_Draw_Menu
++_nc_First_Active_Field
++_nc_Free_Argument
++_nc_Free_Type
++_nc_Internal_Validation
++_nc_Link_Items
++_nc_Make_Argument
++_nc_Match_Next_Character_In_Item_Name
++_nc_New_TopRow_and_CurrentItem
++_nc_Position_Form_Cursor
++_nc_Post_Item
++_nc_Refresh_Current_Field
++_nc_Set_Current_Field
++_nc_Set_Form_Page
++_nc_Show_Menu
++_nc_Synchronize_Attributes
++_nc_Synchronize_Options
++_nc_TYPE_ALNUM
++_nc_TYPE_ALPHA
++_nc_TYPE_ENUM
++_nc_TYPE_INTEGER
++_nc_TYPE_IPV4
++_nc_TYPE_NUMERIC
++_nc_TYPE_REGEXP
++_nc_Touchline
++_nc_Touchpan
++_nc_Wnoutrefresh
++_nc_access
++_nc_add_to_try
++_nc_align_termtype
++_nc_alloc_entry_leaks
++_nc_altcharset_name
++_nc_background
++_nc_basename
++_nc_baudrate
++_nc_cap_hash_table
++_nc_capalias_table
++_nc_capcmp
++_nc_captoinfo
++_nc_captoinfo_leaks
++_nc_check_termtype
++_nc_check_termtype2
++_nc_comment_end
++_nc_comment_start
++_nc_comp_captab_leaks
++_nc_comp_error_leaks
++_nc_comp_scan_leaks
++_nc_copy_entry
++_nc_copy_termtype
++_nc_curr_col
++_nc_curr_file_pos
++_nc_curr_line
++_nc_curr_token
++_nc_curscr_of
++_nc_dPanel
++_nc_dStack
++_nc_db_iterator_leaks
++_nc_delink_entry
++_nc_disable_period
++_nc_do_color
++_nc_do_color_sp
++_nc_doalloc
++_nc_entry_match
++_nc_env_access
++_nc_err_abort
++_nc_eventlist_timeout
++_nc_expand_try
++_nc_expanded
++_nc_fallback
++_nc_fifo_dump
++_nc_find_entry
++_nc_find_type_entry
++_nc_first_db
++_nc_first_name
++_nc_flush
++_nc_flush_sp
++_nc_form_cursor
++_nc_format_slks
++_nc_free_and_exit
++_nc_free_and_exit_sp
++_nc_free_entries
++_nc_free_entry
++_nc_free_termtype
++_nc_free_tic
++_nc_free_tinfo
++_nc_free_tparm
++_nc_freeall
++_nc_freeall_sp
++_nc_freewin
++_nc_fty_generic
++_nc_generic_fieldtype
++_nc_get_alias_table
++_nc_get_fieldbuffer
++_nc_get_hash_info
++_nc_get_hash_table
++_nc_get_locale
++_nc_get_screensize
++_nc_get_source
++_nc_get_table
++_nc_get_token
++_nc_get_tty_mode
++_nc_get_tty_mode_sp
++_nc_get_type
++_nc_getenv_num
++_nc_globals
++_nc_handle_sigwinch
++_nc_has_mouse
++_nc_hash_map
++_nc_hash_map_sp
++_nc_hashed_db
++_nc_head
++_nc_home_terminfo
++_nc_info_hash_table
++_nc_infoalias_table
++_nc_infotocap
++_nc_init_acs
++_nc_init_acs_sp
++_nc_init_entry
++_nc_init_keytry
++_nc_init_termtype
++_nc_insert_ch
++_nc_is_abs_path
++_nc_is_dir_path
++_nc_is_file_path
++_nc_keep_tic_dir
++_nc_key_names
++_nc_keyname
++_nc_keyname_leaks
++_nc_keypad
++_nc_last_db
++_nc_leaks_tic
++_nc_leaks_tinfo
++_nc_lib_traceatr
++_nc_lib_tracedmp
++_nc_lib_tracemouse
++_nc_linedump
++_nc_linedump_sp
++_nc_locale_breaks_acs
++_nc_make_oldhash
++_nc_make_oldhash_sp
++_nc_makenew
++_nc_makenew_sp
++_nc_memmove
++_nc_menu_cursor_pos
++_nc_merge_entry
++_nc_msec_cost
++_nc_msec_cost_sp
++_nc_mvcur
++_nc_mvcur_init
++_nc_mvcur_init_sp
++_nc_mvcur_resume
++_nc_mvcur_resume_sp
++_nc_mvcur_sp
++_nc_mvcur_wrap
++_nc_mvcur_wrap_sp
++_nc_my_visbuf
++_nc_name_match
++_nc_newscr_of
++_nc_next_db
++_nc_nulls_sent
++_nc_oldnums
++_nc_optimize_enable
++_nc_ospeed
++_nc_outc_wrapper
++_nc_outch
++_nc_outch_sp
++_nc_outchars
++_nc_outstr
++_nc_panelhook
++_nc_panelhook_sp
++_nc_panic_mode
++_nc_parse_entry
++_nc_pathlast
++_nc_prescreen
++_nc_printf_string
++_nc_printf_string_sp
++_nc_push_token
++_nc_putchar
++_nc_putchar_sp
++_nc_putp
++_nc_putp_flush
++_nc_putp_flush_sp
++_nc_putp_sp
++_nc_read_entry
++_nc_read_entry_source
++_nc_read_file_entry
++_nc_read_termcap
++_nc_read_termcap_entry
++_nc_read_termtype
++_nc_remove_key
++_nc_remove_string
++_nc_render
++_nc_reset_colors
++_nc_reset_colors_sp
++_nc_reset_input
++_nc_resolve_uses
++_nc_resolve_uses2
++_nc_retrace_attr_t
++_nc_retrace_bool
++_nc_retrace_char
++_nc_retrace_chtype
++_nc_retrace_cptr
++_nc_retrace_cvoid_ptr
++_nc_retrace_field
++_nc_retrace_field_ptr
++_nc_retrace_field_type
++_nc_retrace_form
++_nc_retrace_form_hook
++_nc_retrace_int
++_nc_retrace_int_attr_t
++_nc_retrace_item
++_nc_retrace_item_opts
++_nc_retrace_item_ptr
++_nc_retrace_menu
++_nc_retrace_menu_hook
++_nc_retrace_menu_opts
++_nc_retrace_mmask_t
++_nc_retrace_panel
++_nc_retrace_ptr
++_nc_retrace_sp
++_nc_retrace_unsigned
++_nc_retrace_void_ptr
++_nc_retrace_win
++_nc_ripoffline
++_nc_ripoffline_sp
++_nc_rootname
++_nc_safe_strcat
++_nc_safe_strcpy
++_nc_save_str
++_nc_screen_chain
++_nc_screen_init
++_nc_screen_init_sp
++_nc_screen_of
++_nc_screen_resume
++_nc_screen_resume_sp
++_nc_screen_wrap
++_nc_screen_wrap_sp
++_nc_scroll_oldhash
++_nc_scroll_oldhash_sp
++_nc_scroll_optimize
++_nc_scroll_optimize_sp
++_nc_scroll_window
++_nc_scrolln
++_nc_scrolln_sp
++_nc_set_buffer
++_nc_set_buffer_sp
++_nc_set_generic_fieldtype
++_nc_set_no_padding
++_nc_set_source
++_nc_set_tty_mode
++_nc_set_tty_mode_sp
++_nc_set_type
++_nc_set_writedir
++_nc_setenv_num
++_nc_setup_tinfo
++_nc_setupscreen
++_nc_setupscreen_sp
++_nc_setupterm
++_nc_sigaction
++_nc_signal_handler
++_nc_slk_format
++_nc_slk_initialize
++_nc_start_line
++_nc_stdscr_of
++_nc_str_copy
++_nc_str_init
++_nc_str_null
++_nc_strict_bsd
++_nc_suppress_warnings
++_nc_synchook
++_nc_syntax
++_nc_syserr_abort
++_nc_tail
++_nc_tgetent_leaks
++_nc_tic_dir
++_nc_tic_expand
++_nc_tic_written
++_nc_timed_wait
++_nc_tinfo_cmdch
++_nc_tinfo_fkeys
++_nc_tinfo_fkeysf
++_nc_tparm_analyze
++_nc_tparm_err
++_nc_tputs_trace
++_nc_trace_buf
++_nc_trace_bufcat
++_nc_trace_mmask_t
++_nc_trace_tries
++_nc_trace_ttymode
++_nc_trace_xnames
++_nc_tracebits
++_nc_tracechar
++_nc_tracemouse
++_nc_tracing
++_nc_trans_string
++_nc_trim_sgr0
++_nc_unctrl
++_nc_ungetch
++_nc_unicode_locale
++_nc_update_screensize
++_nc_user_definable
++_nc_varargs
++_nc_visbuf
++_nc_visbuf2
++_nc_visbufn
++_nc_viscbuf
++_nc_viscbuf2
++_nc_vsscanf
++_nc_waddch_nosync
++_nc_warning
++_nc_wgetch
++_nc_wrap_entry
++_nc_write_entry
++_traceattr
++_traceattr2
++_tracechar
++_tracechtype
++_tracechtype2
++_tracedump
++_tracef
++_tracemouse
++acs_map
++addch
++addchnstr
++addchstr
++addnstr
++addstr
++assume_default_colors
++assume_default_colors_sp
++attr_get
++attr_off
++attr_on
++attr_set
++attroff
++attron
++attrset
++baudrate
++baudrate_sp
++beep
++beep_sp
++bkgd
++bkgdset
++boolcodes
++boolfnames
++boolnames
++border
++bottom_panel
++box
++can_change_color
++can_change_color_sp
++cbreak
++cbreak_sp
++ceiling_panel
++chgat
++clear
++clearok
++clrtobot
++clrtoeol
++color_content
++color_content_sp
++color_set
++copywin
++cur_term
++current_field
++current_item
++curs_set
++curs_set_sp
++curscr
++curses_version
++data_ahead
++data_behind
++def_prog_mode
++def_prog_mode_sp
++def_shell_mode
++def_shell_mode_sp
++define_key
++define_key_sp
++del_curterm
++del_curterm_sp
++del_panel
++delay_output
++delay_output_sp
++delch
++deleteln
++delscreen
++delwin
++derwin
++doupdate
++doupdate_sp
++dup_field
++dupwin
++dynamic_field_info
++echo
++echo_sp
++echochar
++endwin
++endwin_sp
++erase
++erasechar
++erasechar_sp
++field_arg
++field_back
++field_buffer
++field_count
++field_fore
++field_index
++field_info
++field_init
++field_just
++field_opts
++field_opts_off
++field_opts_on
++field_pad
++field_status
++field_term
++field_type
++field_userptr
++filter
++filter_sp
++flash
++flash_sp
++flushinp
++flushinp_sp
++form_driver
++form_fields
++form_init
++form_opts
++form_opts_off
++form_opts_on
++form_page
++form_request_by_name
++form_request_name
++form_sub
++form_term
++form_userptr
++form_win
++free_field
++free_fieldtype
++free_form
++free_item
++free_menu
++get_escdelay
++get_escdelay_sp
++getattrs
++getbegx
++getbegy
++getbkgd
++getch
++getcurx
++getcury
++getmaxx
++getmaxy
++getmouse
++getmouse_sp
++getnstr
++getparx
++getpary
++getstr
++getwin
++getwin_sp
++ground_panel
++halfdelay
++halfdelay_sp
++has_colors
++has_colors_sp
++has_ic
++has_ic_sp
++has_il
++has_il_sp
++has_key
++has_key_sp
++has_mouse
++has_mouse_sp
++hide_panel
++hline
++idcok
++idlok
++immedok
++inch
++inchnstr
++inchstr
++init_color
++init_color_sp
++init_pair
++init_pair_sp
++initscr
++innstr
++insch
++insdelln
++insertln
++insnstr
++insstr
++instr
++intrflush
++intrflush_sp
++is_cleared
++is_idcok
++is_idlok
++is_immedok
++is_keypad
++is_leaveok
++is_linetouched
++is_nodelay
++is_notimeout
++is_pad
++is_scrollok
++is_subwin
++is_syncok
++is_term_resized
++is_term_resized_sp
++is_wintouched
++isendwin
++isendwin_sp
++item_count
++item_description
++item_index
++item_init
++item_name
++item_opts
++item_opts_off
++item_opts_on
++item_term
++item_userptr
++item_value
++item_visible
++key_defined
++key_defined_sp
++keybound
++keybound_sp
++keyname
++keyname_sp
++keyok
++keyok_sp
++keypad
++killchar
++killchar_sp
++leaveok
++link_field
++link_fieldtype
++longname
++mcprint
++mcprint_sp
++menu_back
++menu_driver
++menu_fore
++menu_format
++menu_grey
++menu_init
++menu_items
++menu_mark
++menu_opts
++menu_opts_off
++menu_opts_on
++menu_pad
++menu_pattern
++menu_request_by_name
++menu_request_name
++menu_spacing
++menu_sub
++menu_term
++menu_userptr
++menu_win
++meta
++mouse_trafo
++mouseinterval
++mouseinterval_sp
++mousemask
++mousemask_sp
++move
++move_field
++move_panel
++mvaddch
++mvaddchnstr
++mvaddchstr
++mvaddnstr
++mvaddstr
++mvchgat
++mvcur
++mvcur_sp
++mvdelch
++mvderwin
++mvgetch
++mvgetnstr
++mvgetstr
++mvhline
++mvinch
++mvinchnstr
++mvinchstr
++mvinnstr
++mvinsch
++mvinsnstr
++mvinsstr
++mvinstr
++mvprintw
++mvscanw
++mvvline
++mvwaddch
++mvwaddchnstr
++mvwaddchstr
++mvwaddnstr
++mvwaddstr
++mvwchgat
++mvwdelch
++mvwgetch
++mvwgetnstr
++mvwgetstr
++mvwhline
++mvwin
++mvwinch
++mvwinchnstr
++mvwinchstr
++mvwinnstr
++mvwinsch
++mvwinsnstr
++mvwinsstr
++mvwinstr
++mvwprintw
++mvwscanw
++mvwvline
++napms
++napms_sp
++new_field
++new_fieldtype
++new_form
++new_form_sp
++new_item
++new_menu
++new_menu_sp
++new_page
++new_panel
++new_prescr
++newpad
++newpad_sp
++newscr
++newterm
++newterm_sp
++newwin
++newwin_sp
++nl
++nl_sp
++nocbreak
++nocbreak_sp
++nodelay
++noecho
++noecho_sp
++nofilter
++nofilter_sp
++nonl
++nonl_sp
++noqiflush
++noqiflush_sp
++noraw
++noraw_sp
++notimeout
++numcodes
++numfnames
++numnames
++ospeed
++overlay
++overwrite
++pair_content
++pair_content_sp
++panel_above
++panel_below
++panel_hidden
++panel_userptr
++panel_window
++pechochar
++pnoutrefresh
++pos_form_cursor
++pos_menu_cursor
++post_form
++post_menu
++prefresh
++printw
++putp
++putp_sp
++putwin
++qiflush
++qiflush_sp
++raw
++raw_sp
++redrawwin
++refresh
++replace_panel
++reset_prog_mode
++reset_prog_mode_sp
++reset_shell_mode
++reset_shell_mode_sp
++resetty
++resetty_sp
++resize_term
++resize_term_sp
++resizeterm
++resizeterm_sp
++restartterm
++restartterm_sp
++ripoffline
++ripoffline_sp
++savetty
++savetty_sp
++scale_form
++scale_menu
++scanw
++scr_dump
++scr_init
++scr_init_sp
++scr_restore
++scr_restore_sp
++scr_set
++scr_set_sp
++scrl
++scroll
++scrollok
++set_current_field
++set_current_item
++set_curterm
++set_curterm_sp
++set_escdelay
++set_escdelay_sp
++set_field_back
++set_field_buffer
++set_field_fore
++set_field_init
++set_field_just
++set_field_opts
++set_field_pad
++set_field_status
++set_field_term
++set_field_type
++set_field_userptr
++set_fieldtype_arg
++set_fieldtype_choice
++set_form_fields
++set_form_init
++set_form_opts
++set_form_page
++set_form_sub
++set_form_term
++set_form_userptr
++set_form_win
++set_item_init
++set_item_opts
++set_item_term
++set_item_userptr
++set_item_value
++set_max_field
++set_menu_back
++set_menu_fore
++set_menu_format
++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
++set_menu_term
++set_menu_userptr
++set_menu_win
++set_new_page
++set_panel_userptr
++set_tabsize
++set_tabsize_sp
++set_term
++set_top_row
++setscrreg
++setupterm
++show_panel
++slk_attr
++slk_attr_off
++slk_attr_on
++slk_attr_set
++slk_attr_set_sp
++slk_attr_sp
++slk_attroff
++slk_attroff_sp
++slk_attron
++slk_attron_sp
++slk_attrset
++slk_attrset_sp
++slk_clear
++slk_clear_sp
++slk_color
++slk_color_sp
++slk_init
++slk_init_sp
++slk_label
++slk_label_sp
++slk_noutrefresh
++slk_noutrefresh_sp
++slk_refresh
++slk_refresh_sp
++slk_restore
++slk_restore_sp
++slk_set
++slk_set_sp
++slk_touch
++slk_touch_sp
++standend
++standout
++start_color
++start_color_sp
++stdscr
++strcodes
++strfnames
++strnames
++subpad
++subwin
++syncok
++termattrs
++termattrs_sp
++termname
++termname_sp
++tgetent
++tgetent_sp
++tgetflag
++tgetflag_sp
++tgetnum
++tgetnum_sp
++tgetstr
++tgetstr_sp
++tgoto
++tigetflag
++tigetflag_sp
++tigetnum
++tigetnum_sp
++tigetstr
++tigetstr_sp
++timeout
++tiparm
++top_panel
++top_row
++touchline
++touchwin
++tparm
++tputs
++tputs_sp
++trace
++ttytype
++typeahead
++typeahead_sp
++unctrl
++unctrl_sp
++ungetch
++ungetch_sp
++ungetmouse
++ungetmouse_sp
++unpost_form
++unpost_menu
++untouchwin
++update_panels
++update_panels_sp
++use_default_colors
++use_default_colors_sp
++use_env
++use_env_sp
++use_extended_names
++use_legacy_coding
++use_legacy_coding_sp
++use_screen
++use_tioctl
++use_tioctl_sp
++use_window
++vid_attr
++vidattr
++vidattr_sp
++vidputs
++vidputs_sp
++vline
++vw_printw
++vw_scanw
++vwprintw
++vwscanw
++waddch
++waddchnstr
++waddchstr
++waddnstr
++waddstr
++wattr_get
++wattr_off
++wattr_on
++wattr_set
++wattroff
++wattron
++wattrset
++wbkgd
++wbkgdset
++wborder
++wchgat
++wclear
++wclrtobot
++wclrtoeol
++wcolor_set
++wcursyncup
++wdelch
++wdeleteln
++wechochar
++wenclose
++werase
++wgetch
++wgetch_events
++wgetdelay
++wgetnstr
++wgetnstr_events
++wgetparent
++wgetscrreg
++wgetstr
++whline
++winch
++winchnstr
++winchstr
++winnstr
++winsch
++winsdelln
++winsertln
++winsnstr
++winsstr
++winstr
++wmouse_trafo
++wmove
++wnoutrefresh
++wprintw
++wredrawln
++wrefresh
++wresize
++wscanw
++wscrl
++wsetscrreg
++wstandend
++wstandout
++wsyncdown
++wsyncup
++wtimeout
++wtouchln
++wvline
+Index: package/ncursest.map
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncursest.map 2014-12-06 22:59:10.000000000 +0000
+@@ -0,0 +1,1086 @@
++# $Id: ncursest.map,v 1.16 2014/12/06 22:59:10 tom Exp $
++# script for shared library symbol-versioning using ld
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 7 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-reentrant
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --verbose
++# --with-pthread
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++#
++
++NCURSES_TIC_5.0.19991023 {
++ global:
++ _nc_capcmp;
++ _nc_check_termtype;
++ _nc_entry_match;
++ _nc_find_type_entry;
++ _nc_get_table;
++ _nc_infotocap;
++ _nc_read_entry_source;
++ _nc_reset_input;
++ _nc_resolve_uses;
++ _nc_set_writedir;
++ _nc_syntax;
++ _nc_tic_expand;
++ _nc_tic_written;
++ _nc_trans_string;
++ _nc_write_entry;
++ local:
++ _nc_captoinfo;
++ _nc_comment_end;
++ _nc_comment_start;
++ _nc_copy_entry;
++ _nc_curr_file_pos;
++ _nc_curr_token;
++ _nc_get_token;
++ _nc_init_entry;
++ _nc_merge_entry;
++ _nc_panic_mode;
++ _nc_parse_entry;
++ _nc_push_token;
++ _nc_save_str;
++ _nc_start_line;
++ _nc_wrap_entry;
++};
++
++NCURSES_TIC_5.1.20000708 {
++ global:
++ _nc_disable_period;
++} NCURSES_TIC_5.0.19991023;
++
++NCURSES_TIC_5.5.20051010 {
++ global:
++ _nc_alloc_entry_leaks;
++ _nc_captoinfo_leaks;
++ _nc_check_termtype2;
++ _nc_comp_scan_leaks;
++ _nc_resolve_uses2;
++} NCURSES_TIC_5.1.20000708;
++
++NCURSES_TIC_5.7.20081102 {
++ global:
++ _nc_free_tic;
++ _nc_get_alias_table;
++ local:
++ _nc_comp_captab_leaks;
++ _nc_leaks_tic;
++} NCURSES_TIC_5.5.20051010;
++
++NCURSES_TIC_5.9.current {
++ global:
++ _nc_strict_bsd;
++} NCURSES_TIC_5.7.20081102;
++
++NCURSES_TINFO_5.0.19991023 {
++ global:
++ BC;
++ PC;
++ SP;
++ UP;
++ _nc_access;
++ _nc_add_to_try;
++ _nc_copy_termtype;
++ _nc_curr_col;
++ _nc_curr_line;
++ _nc_doalloc;
++ _nc_err_abort;
++ _nc_fallback;
++ _nc_find_entry;
++ _nc_first_name;
++ _nc_free_entries;
++ _nc_free_termtype;
++ _nc_free_tparm;
++ _nc_get_hash_table;
++ _nc_get_tty_mode;
++ _nc_get_type;
++ _nc_getenv_num;
++ _nc_head;
++ _nc_home_terminfo;
++ _nc_init_acs;
++ _nc_keep_tic_dir;
++ _nc_keypad;
++ _nc_name_match;
++ _nc_outch;
++ _nc_read_entry;
++ _nc_read_file_entry;
++ _nc_screen_chain;
++ _nc_set_buffer;
++ _nc_set_source;
++ _nc_set_tty_mode;
++ _nc_set_type;
++ _nc_suppress_warnings;
++ _nc_syserr_abort;
++ _nc_tail;
++ _nc_tic_dir;
++ _nc_timed_wait;
++ _nc_trace_buf;
++ _nc_tracing;
++ _nc_update_screensize;
++ _nc_visbuf;
++ _nc_visbuf2;
++ _nc_warning;
++ _tracechar;
++ baudrate;
++ cbreak;
++ curs_set;
++ curses_version;
++ def_prog_mode;
++ def_shell_mode;
++ define_key;
++ del_curterm;
++ delay_output;
++ erasechar;
++ flushinp;
++ halfdelay;
++ has_ic;
++ has_il;
++ has_key;
++ idcok;
++ idlok;
++ intrflush;
++ keybound;
++ keyname;
++ keyok;
++ keypad;
++ killchar;
++ longname;
++ meta;
++ napms;
++ nocbreak;
++ nodelay;
++ noqiflush;
++ noraw;
++ notimeout;
++ ospeed;
++ putp;
++ qiflush;
++ raw;
++ reset_prog_mode;
++ reset_shell_mode;
++ resetty;
++ savetty;
++ set_curterm;
++ setupterm;
++ termname;
++ tgetent;
++ tgetflag;
++ tgetnum;
++ tgetstr;
++ tgoto;
++ tigetflag;
++ tigetnum;
++ tigetstr;
++ tparm;
++ tputs;
++ trace;
++ typeahead;
++ unctrl;
++ use_env;
++ wtimeout;
++ local:
++ _nc_baudrate;
++ _nc_expand_try;
++ _nc_init_keytry;
++ _nc_nulls_sent;
++ _nc_ospeed;
++ _nc_read_termcap;
++ _nc_read_termcap_entry;
++ _nc_remove_key;
++ _nc_remove_string;
++ _nc_trace_tries;
++ _nc_tracebits;
++};
++
++NCURSES_TINFO_5.1.20000708 {
++ global:
++ _nc_align_termtype;
++ _nc_flush;
++ _nc_tinfo_fkeys;
++ _nc_user_definable;
++ use_extended_names;
++} NCURSES_TINFO_5.0.19991023;
++
++NCURSES_TINFO_5.2.20001021 {
++ global:
++ _nc_basename;
++ _nc_env_access;
++ _nc_safe_strcat;
++ _nc_safe_strcpy;
++ _nc_str_copy;
++ _nc_str_init;
++ _nc_str_null;
++} NCURSES_TINFO_5.1.20000708;
++
++NCURSES_TINFO_5.3.20021019 {
++ global:
++ _nc_rootname;
++ _nc_tparm_err;
++ _nc_visbufn;
++} NCURSES_TINFO_5.2.20001021;
++
++NCURSES_TINFO_5.4.20040208 {
++ global:
++ _nc_get_locale;
++ _nc_locale_breaks_acs;
++ _nc_pathlast;
++ _nc_retrace_attr_t;
++ _nc_retrace_bool;
++ _nc_retrace_chtype;
++ _nc_retrace_int;
++ _nc_retrace_ptr;
++ _nc_retrace_sp;
++ _nc_retrace_unsigned;
++ _nc_retrace_win;
++ _nc_tparm_analyze;
++ _nc_trace_bufcat;
++ _nc_unicode_locale;
++ _traceattr;
++ _traceattr2;
++ _tracechtype;
++ _tracechtype2;
++ _tracef;
++ key_defined;
++ local:
++ _nc_altcharset_name;
++ _nc_trace_ttymode;
++} NCURSES_TINFO_5.3.20021019;
++
++NCURSES_TINFO_5.5.20051010 {
++ global:
++ _nc_get_source;
++ _nc_retrace_cptr;
++ _nc_retrace_cvoid_ptr;
++ _nc_retrace_void_ptr;
++ _nc_setupterm;
++ _nc_trim_sgr0;
++ local:
++ _nc_delink_entry;
++ _nc_free_entry;
++} NCURSES_TINFO_5.4.20040208;
++
++NCURSES_TINFO_5.6.20061217 {
++ global:
++ _nc_eventlist_timeout;
++ _nc_first_db;
++ _nc_handle_sigwinch;
++ _nc_is_abs_path;
++ _nc_is_dir_path;
++ _nc_is_file_path;
++ _nc_keyname_leaks;
++ _nc_last_db;
++ _nc_next_db;
++ _nc_tgetent_leaks;
++ _nc_viscbuf;
++ local:
++ _nc_hashed_db;
++ _nc_read_termtype;
++ _nc_viscbuf2;
++} NCURSES_TINFO_5.5.20051010;
++
++NCURSES_TINFO_5.7.20081102 {
++ global:
++ _nc_COLS;
++ _nc_LINES;
++ _nc_TABSIZE;
++ _nc__nc_outchars;
++ _nc_acs_map;
++ _nc_boolcodes;
++ _nc_boolfnames;
++ _nc_boolnames;
++ _nc_codes_leaks;
++ _nc_count_outchars;
++ _nc_cur_term;
++ _nc_curscr;
++ _nc_free_tinfo;
++ _nc_get_screensize;
++ _nc_globals;
++ _nc_init_pthreads;
++ _nc_leaks_tinfo;
++ _nc_locked_tracef;
++ _nc_mutex_lock;
++ _nc_mutex_trylock;
++ _nc_mutex_unlock;
++ _nc_names_leaks;
++ _nc_newscr;
++ _nc_numcodes;
++ _nc_numfnames;
++ _nc_numnames;
++ _nc_prescreen;
++ _nc_ptr_Cols;
++ _nc_ptr_Lines;
++ _nc_screen_of;
++ _nc_set_no_padding;
++ _nc_set_tputs_trace;
++ _nc_stdscr;
++ _nc_strcodes;
++ _nc_strfnames;
++ _nc_strnames;
++ _nc_tracechar;
++ _nc_use_tracef;
++ set_tabsize;
++ local:
++ _nc__nc_tputs_trace;
++ _nc_keyname;
++ _nc_mutex_init;
++ _nc_ttytype;
++ _nc_unctrl;
++} NCURSES_TINFO_5.6.20061217;
++
++NCURSES_TINFO_5.8.20110226 {
++ global:
++ _nc_flush_sp;
++ _nc_get_tty_mode_sp;
++ _nc_init_acs_sp;
++ _nc_outc_wrapper;
++ _nc_outch_sp;
++ _nc_putp;
++ _nc_putp_flush;
++ _nc_putp_flush_sp;
++ _nc_putp_sp;
++ _nc_retrace_int_attr_t;
++ _nc_set_buffer_sp;
++ _nc_set_tty_mode_sp;
++ baudrate_sp;
++ cbreak_sp;
++ curs_set_sp;
++ def_prog_mode_sp;
++ def_shell_mode_sp;
++ define_key_sp;
++ del_curterm_sp;
++ delay_output_sp;
++ erasechar_sp;
++ flushinp_sp;
++ halfdelay_sp;
++ has_ic_sp;
++ has_il_sp;
++ has_key_sp;
++ intrflush_sp;
++ key_defined_sp;
++ keybound_sp;
++ keyname_sp;
++ keyok_sp;
++ killchar_sp;
++ longname_sp;
++ napms_sp;
++ new_prescr;
++ nocbreak_sp;
++ noqiflush_sp;
++ noraw_sp;
++ putp_sp;
++ qiflush_sp;
++ raw_sp;
++ reset_prog_mode_sp;
++ reset_shell_mode_sp;
++ resetty_sp;
++ savetty_sp;
++ set_curterm_sp;
++ set_tabsize_sp;
++ termname_sp;
++ tgetent_sp;
++ tgetflag_sp;
++ tgetnum_sp;
++ tgetstr_sp;
++ tigetflag_sp;
++ tigetnum_sp;
++ tigetstr_sp;
++ tiparm;
++ tputs_sp;
++ typeahead_sp;
++ unctrl_sp;
++ use_env_sp;
++ local:
++ _nc_get_cur_term;
++ _nc_get_cur_term_sp;
++ _nc_get_hash_info;
++ _nc_ptr_Tabsize;
++ _nc_retrace_char;
++ _nc_setup_tinfo;
++ _nc_tinfo_cmdch;
++} NCURSES_TINFO_5.7.20081102;
++
++NCURSES_TINFO_5.9.current {
++ global:
++ _nc_init_termtype;
++ _nc_putchar;
++ _nc_putchar_sp;
++ use_tioctl;
++ use_tioctl_sp;
++ local:
++ _nc_comp_error_leaks;
++ _nc_db_iterator_leaks;
++ _nc_setenv_num;
++} NCURSES_TINFO_5.8.20110226;
++
++NCURSEST_5.7.20081102 {
++ global:
++ COLOR_PAIR;
++ PAIR_NUMBER;
++ TYPE_ALNUM;
++ TYPE_ALPHA;
++ TYPE_ENUM;
++ TYPE_INTEGER;
++ TYPE_IPV4;
++ TYPE_NUMERIC;
++ TYPE_REGEXP;
++ _nc_COLORS;
++ _nc_COLOR_PAIRS;
++ _nc_ESCDELAY;
++ _nc_free_and_exit;
++ _nc_optimize_enable;
++ _nc_panelhook;
++ _nc_ripoffline;
++ addch;
++ addchnstr;
++ addchstr;
++ addnstr;
++ addstr;
++ assume_default_colors;
++ attr_get;
++ attr_off;
++ attr_on;
++ attr_set;
++ attroff;
++ attron;
++ attrset;
++ beep;
++ bkgd;
++ bkgdset;
++ border;
++ bottom_panel;
++ box;
++ can_change_color;
++ chgat;
++ clear;
++ clearok;
++ clrtobot;
++ clrtoeol;
++ color_content;
++ color_set;
++ copywin;
++ current_field;
++ current_item;
++ data_ahead;
++ data_behind;
++ del_panel;
++ delch;
++ deleteln;
++ delscreen;
++ delwin;
++ derwin;
++ doupdate;
++ dup_field;
++ dupwin;
++ dynamic_field_info;
++ echo;
++ echochar;
++ endwin;
++ erase;
++ field_arg;
++ field_back;
++ field_buffer;
++ field_count;
++ field_fore;
++ field_index;
++ field_info;
++ field_init;
++ field_just;
++ field_opts;
++ field_opts_off;
++ field_opts_on;
++ field_pad;
++ field_status;
++ field_term;
++ field_type;
++ field_userptr;
++ filter;
++ flash;
++ form_driver;
++ form_fields;
++ form_init;
++ form_opts;
++ form_opts_off;
++ form_opts_on;
++ form_page;
++ form_request_by_name;
++ form_request_name;
++ form_sub;
++ form_term;
++ form_userptr;
++ form_win;
++ free_field;
++ free_fieldtype;
++ free_form;
++ free_item;
++ free_menu;
++ getattrs;
++ getbegx;
++ getbegy;
++ getbkgd;
++ getch;
++ getcurx;
++ getcury;
++ getmaxx;
++ getmaxy;
++ getmouse;
++ getnstr;
++ getparx;
++ getpary;
++ getstr;
++ getwin;
++ has_colors;
++ hide_panel;
++ hline;
++ immedok;
++ inch;
++ inchnstr;
++ inchstr;
++ init_color;
++ init_pair;
++ initscr;
++ innstr;
++ insch;
++ insdelln;
++ insertln;
++ insnstr;
++ insstr;
++ instr;
++ is_cleared;
++ is_idcok;
++ is_idlok;
++ is_immedok;
++ is_keypad;
++ is_leaveok;
++ is_linetouched;
++ is_nodelay;
++ is_notimeout;
++ is_scrollok;
++ is_syncok;
++ is_term_resized;
++ is_wintouched;
++ isendwin;
++ item_count;
++ item_description;
++ item_index;
++ item_init;
++ item_name;
++ item_opts;
++ item_opts_off;
++ item_opts_on;
++ item_term;
++ item_userptr;
++ item_value;
++ item_visible;
++ leaveok;
++ link_field;
++ link_fieldtype;
++ mcprint;
++ menu_back;
++ menu_driver;
++ menu_fore;
++ menu_format;
++ menu_grey;
++ menu_init;
++ menu_items;
++ menu_mark;
++ menu_opts;
++ menu_opts_off;
++ menu_opts_on;
++ menu_pad;
++ menu_pattern;
++ menu_request_by_name;
++ menu_request_name;
++ menu_spacing;
++ menu_sub;
++ menu_term;
++ menu_userptr;
++ menu_win;
++ mouse_trafo;
++ mouseinterval;
++ mousemask;
++ move;
++ move_field;
++ move_panel;
++ mvaddch;
++ mvaddchnstr;
++ mvaddchstr;
++ mvaddnstr;
++ mvaddstr;
++ mvchgat;
++ mvcur;
++ mvdelch;
++ mvderwin;
++ mvgetch;
++ mvgetnstr;
++ mvgetstr;
++ mvhline;
++ mvinch;
++ mvinchnstr;
++ mvinchstr;
++ mvinnstr;
++ mvinsch;
++ mvinsnstr;
++ mvinsstr;
++ mvinstr;
++ mvprintw;
++ mvscanw;
++ mvvline;
++ mvwaddch;
++ mvwaddchnstr;
++ mvwaddchstr;
++ mvwaddnstr;
++ mvwaddstr;
++ mvwchgat;
++ mvwdelch;
++ mvwgetch;
++ mvwgetnstr;
++ mvwgetstr;
++ mvwhline;
++ mvwin;
++ mvwinch;
++ mvwinchnstr;
++ mvwinchstr;
++ mvwinnstr;
++ mvwinsch;
++ mvwinsnstr;
++ mvwinsstr;
++ mvwinstr;
++ mvwprintw;
++ mvwscanw;
++ mvwvline;
++ new_field;
++ new_fieldtype;
++ new_form;
++ new_item;
++ new_menu;
++ new_page;
++ new_panel;
++ newpad;
++ newterm;
++ newwin;
++ nl;
++ noecho;
++ nofilter;
++ nonl;
++ overlay;
++ overwrite;
++ pair_content;
++ panel_above;
++ panel_below;
++ panel_hidden;
++ panel_userptr;
++ panel_window;
++ pechochar;
++ pnoutrefresh;
++ pos_form_cursor;
++ pos_menu_cursor;
++ post_form;
++ post_menu;
++ prefresh;
++ printw;
++ putwin;
++ redrawwin;
++ refresh;
++ replace_panel;
++ resize_term;
++ resizeterm;
++ restartterm;
++ ripoffline;
++ scale_form;
++ scale_menu;
++ scanw;
++ scr_dump;
++ scr_init;
++ scr_restore;
++ scr_set;
++ scrl;
++ scroll;
++ scrollok;
++ set_current_field;
++ set_current_item;
++ set_escdelay;
++ set_field_back;
++ set_field_buffer;
++ set_field_fore;
++ set_field_init;
++ set_field_just;
++ set_field_opts;
++ set_field_pad;
++ set_field_status;
++ set_field_term;
++ set_field_type;
++ set_field_userptr;
++ set_fieldtype_arg;
++ set_fieldtype_choice;
++ set_form_fields;
++ set_form_init;
++ set_form_opts;
++ set_form_page;
++ set_form_sub;
++ set_form_term;
++ set_form_userptr;
++ set_form_win;
++ set_item_init;
++ set_item_opts;
++ set_item_term;
++ set_item_userptr;
++ set_item_value;
++ set_max_field;
++ set_menu_back;
++ set_menu_fore;
++ set_menu_format;
++ 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;
++ set_menu_term;
++ set_menu_userptr;
++ set_menu_win;
++ set_new_page;
++ set_panel_userptr;
++ set_term;
++ set_top_row;
++ setscrreg;
++ show_panel;
++ slk_attr;
++ slk_attr_set;
++ slk_attroff;
++ slk_attron;
++ slk_attrset;
++ slk_clear;
++ slk_color;
++ slk_init;
++ slk_label;
++ slk_noutrefresh;
++ slk_refresh;
++ slk_restore;
++ slk_set;
++ slk_touch;
++ standend;
++ standout;
++ start_color;
++ subpad;
++ subwin;
++ syncok;
++ termattrs;
++ timeout;
++ top_panel;
++ top_row;
++ touchline;
++ touchwin;
++ ungetch;
++ ungetmouse;
++ unpost_form;
++ unpost_menu;
++ untouchwin;
++ update_panels;
++ use_default_colors;
++ use_legacy_coding;
++ use_screen;
++ use_window;
++ vidattr;
++ vidputs;
++ vline;
++ vw_printw;
++ vw_scanw;
++ vwprintw;
++ vwscanw;
++ waddch;
++ waddchnstr;
++ waddchstr;
++ waddnstr;
++ waddstr;
++ wattr_get;
++ wattr_off;
++ wattr_on;
++ wattr_set;
++ wattroff;
++ wattron;
++ wattrset;
++ wbkgd;
++ wbkgdset;
++ wborder;
++ wchgat;
++ wclear;
++ wclrtobot;
++ wclrtoeol;
++ wcolor_set;
++ wcursyncup;
++ wdelch;
++ wdeleteln;
++ wechochar;
++ wenclose;
++ werase;
++ wgetch;
++ wgetch_events;
++ wgetnstr;
++ wgetnstr_events;
++ wgetparent;
++ wgetscrreg;
++ wgetstr;
++ whline;
++ winch;
++ winchnstr;
++ winchstr;
++ winnstr;
++ winsch;
++ winsdelln;
++ winsertln;
++ winsnstr;
++ winsstr;
++ winstr;
++ wmouse_trafo;
++ wmove;
++ wnoutrefresh;
++ wprintw;
++ wredrawln;
++ wrefresh;
++ wresize;
++ wscanw;
++ wscrl;
++ wsetscrreg;
++ wstandend;
++ wstandout;
++ wsyncdown;
++ wsyncup;
++ wtouchln;
++ wvline;
++ local:
++ _nc_Calculate_Item_Length_and_Width;
++ _nc_Calculate_Text_Width;
++ _nc_Connect_Items;
++ _nc_Copy_Argument;
++ _nc_Copy_Type;
++ _nc_Default_Field;
++ _nc_Default_FieldType;
++ _nc_Default_Form;
++ _nc_Default_Item;
++ _nc_Default_Menu;
++ _nc_Disconnect_Items;
++ _nc_Draw_Menu;
++ _nc_First_Active_Field;
++ _nc_Free_Argument;
++ _nc_Free_Type;
++ _nc_Internal_Validation;
++ _nc_Link_Items;
++ _nc_Make_Argument;
++ _nc_Match_Next_Character_In_Item_Name;
++ _nc_New_TopRow_and_CurrentItem;
++ _nc_Position_Form_Cursor;
++ _nc_Post_Item;
++ _nc_Refresh_Current_Field;
++ _nc_Set_Current_Field;
++ _nc_Set_Form_Page;
++ _nc_Show_Menu;
++ _nc_Synchronize_Attributes;
++ _nc_Synchronize_Options;
++ _nc_Touchline;
++ _nc_Touchpan;
++ _nc_Wnoutrefresh;
++ _nc_dPanel;
++ _nc_dStack;
++ _nc_do_color;
++ _nc_expanded;
++ _nc_fifo_dump;
++ _nc_freeall;
++ _nc_freewin;
++ _nc_has_mouse;
++ _nc_hash_map;
++ _nc_insert_ch;
++ _nc_linedump;
++ _nc_make_oldhash;
++ _nc_makenew;
++ _nc_memmove;
++ _nc_menu_cursor_pos;
++ _nc_msec_cost;
++ _nc_mvcur_init;
++ _nc_mvcur_resume;
++ _nc_mvcur_wrap;
++ _nc_my_visbuf;
++ _nc_oldnums;
++ _nc_printf_string;
++ _nc_render;
++ _nc_reset_colors;
++ _nc_retrace_field;
++ _nc_retrace_field_ptr;
++ _nc_retrace_field_type;
++ _nc_retrace_form;
++ _nc_retrace_form_hook;
++ _nc_retrace_item;
++ _nc_retrace_item_opts;
++ _nc_retrace_item_ptr;
++ _nc_retrace_menu;
++ _nc_retrace_menu_hook;
++ _nc_retrace_menu_opts;
++ _nc_retrace_panel;
++ _nc_screen_init;
++ _nc_screen_resume;
++ _nc_screen_wrap;
++ _nc_scroll_oldhash;
++ _nc_scroll_optimize;
++ _nc_scroll_window;
++ _nc_scrolln;
++ _nc_setupscreen;
++ _nc_signal_handler;
++ _nc_slk_initialize;
++ _nc_synchook;
++ _nc_trace_xnames;
++ _nc_tracemouse;
++ _nc_ungetch;
++ _nc_varargs;
++ _nc_vsscanf;
++ _nc_waddch_nosync;
++ _nc_wgetch;
++ _tracedump;
++ _tracemouse;
++};
++
++NCURSEST_5.8.20110226 {
++ global:
++ _nc_panelhook_sp;
++ assume_default_colors_sp;
++ beep_sp;
++ can_change_color_sp;
++ ceiling_panel;
++ color_content_sp;
++ doupdate_sp;
++ echo_sp;
++ endwin_sp;
++ filter_sp;
++ flash_sp;
++ get_escdelay;
++ get_escdelay_sp;
++ getmouse_sp;
++ getwin_sp;
++ ground_panel;
++ has_colors_sp;
++ has_mouse;
++ has_mouse_sp;
++ init_color_sp;
++ init_pair_sp;
++ is_pad;
++ is_subwin;
++ is_term_resized_sp;
++ isendwin_sp;
++ mcprint_sp;
++ mouseinterval_sp;
++ mousemask_sp;
++ mvcur_sp;
++ new_form_sp;
++ new_menu_sp;
++ newpad_sp;
++ newterm_sp;
++ newwin_sp;
++ nl_sp;
++ noecho_sp;
++ nofilter_sp;
++ nonl_sp;
++ pair_content_sp;
++ resize_term_sp;
++ resizeterm_sp;
++ restartterm_sp;
++ ripoffline_sp;
++ scr_init_sp;
++ scr_restore_sp;
++ scr_set_sp;
++ set_escdelay_sp;
++ slk_attr_set_sp;
++ slk_attr_sp;
++ slk_attroff_sp;
++ slk_attron_sp;
++ slk_attrset_sp;
++ slk_clear_sp;
++ slk_color_sp;
++ slk_init_sp;
++ slk_label_sp;
++ slk_noutrefresh_sp;
++ slk_refresh_sp;
++ slk_restore_sp;
++ slk_set_sp;
++ slk_touch_sp;
++ start_color_sp;
++ termattrs_sp;
++ ungetch_sp;
++ ungetmouse_sp;
++ update_panels_sp;
++ use_default_colors_sp;
++ use_legacy_coding_sp;
++ vidattr_sp;
++ vidputs_sp;
++ local:
++ _nc_TYPE_ALNUM;
++ _nc_TYPE_ALPHA;
++ _nc_TYPE_ENUM;
++ _nc_TYPE_INTEGER;
++ _nc_TYPE_IPV4;
++ _nc_TYPE_NUMERIC;
++ _nc_TYPE_REGEXP;
++ _nc_curscr_of;
++ _nc_do_color_sp;
++ _nc_form_cursor;
++ _nc_format_slks;
++ _nc_free_and_exit_sp;
++ _nc_freeall_sp;
++ _nc_fty_generic;
++ _nc_generic_fieldtype;
++ _nc_get_fieldbuffer;
++ _nc_hash_map_sp;
++ _nc_linedump_sp;
++ _nc_make_oldhash_sp;
++ _nc_makenew_sp;
++ _nc_msec_cost_sp;
++ _nc_mvcur_init_sp;
++ _nc_mvcur_resume_sp;
++ _nc_mvcur_wrap_sp;
++ _nc_newscr_of;
++ _nc_printf_string_sp;
++ _nc_ptr_Escdelay;
++ _nc_reset_colors_sp;
++ _nc_retrace_mmask_t;
++ _nc_ripoffline_sp;
++ _nc_screen_init_sp;
++ _nc_screen_resume_sp;
++ _nc_screen_wrap_sp;
++ _nc_scroll_oldhash_sp;
++ _nc_scroll_optimize_sp;
++ _nc_scrolln_sp;
++ _nc_set_generic_fieldtype;
++ _nc_setupscreen_sp;
++ _nc_stdscr_of;
++} NCURSEST_5.7.20081102;
++
++NCURSEST_5.9.current {
++ global:
++ wgetdelay;
++ local:
++ _nc_mvcur;
++ _nc_mvcur_sp;
++ _nc_trace_mmask_t;
++} NCURSEST_5.8.20110226;
+Index: package/ncursest.sym
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncursest.sym 2014-11-28 02:54:53.000000000 +0000
+@@ -0,0 +1,1001 @@
++# $Id: ncursest.sym,v 1.13 2014/11/28 02:54:53 tom Exp $
++# script for shared library symbol-visibility using libtool
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 7 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-reentrant
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --verbose
++# --with-pthread
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++BC
++COLOR_PAIR
++PAIR_NUMBER
++PC
++SP
++TYPE_ALNUM
++TYPE_ALPHA
++TYPE_ENUM
++TYPE_INTEGER
++TYPE_IPV4
++TYPE_NUMERIC
++TYPE_REGEXP
++UP
++_nc_COLORS
++_nc_COLOR_PAIRS
++_nc_COLS
++_nc_Calculate_Item_Length_and_Width
++_nc_Calculate_Text_Width
++_nc_Connect_Items
++_nc_Copy_Argument
++_nc_Copy_Type
++_nc_Default_Field
++_nc_Default_FieldType
++_nc_Default_Form
++_nc_Default_Item
++_nc_Default_Menu
++_nc_Disconnect_Items
++_nc_Draw_Menu
++_nc_ESCDELAY
++_nc_First_Active_Field
++_nc_Free_Argument
++_nc_Free_Type
++_nc_Internal_Validation
++_nc_LINES
++_nc_Link_Items
++_nc_Make_Argument
++_nc_Match_Next_Character_In_Item_Name
++_nc_New_TopRow_and_CurrentItem
++_nc_Position_Form_Cursor
++_nc_Post_Item
++_nc_Refresh_Current_Field
++_nc_Set_Current_Field
++_nc_Set_Form_Page
++_nc_Show_Menu
++_nc_Synchronize_Attributes
++_nc_Synchronize_Options
++_nc_TABSIZE
++_nc_TYPE_ALNUM
++_nc_TYPE_ALPHA
++_nc_TYPE_ENUM
++_nc_TYPE_INTEGER
++_nc_TYPE_IPV4
++_nc_TYPE_NUMERIC
++_nc_TYPE_REGEXP
++_nc_Touchline
++_nc_Touchpan
++_nc_Wnoutrefresh
++_nc__nc_outchars
++_nc__nc_tputs_trace
++_nc_access
++_nc_acs_map
++_nc_add_to_try
++_nc_align_termtype
++_nc_alloc_entry_leaks
++_nc_altcharset_name
++_nc_basename
++_nc_baudrate
++_nc_boolcodes
++_nc_boolfnames
++_nc_boolnames
++_nc_capcmp
++_nc_captoinfo
++_nc_captoinfo_leaks
++_nc_check_termtype
++_nc_check_termtype2
++_nc_codes_leaks
++_nc_comment_end
++_nc_comment_start
++_nc_comp_captab_leaks
++_nc_comp_error_leaks
++_nc_comp_scan_leaks
++_nc_copy_entry
++_nc_copy_termtype
++_nc_count_outchars
++_nc_cur_term
++_nc_curr_col
++_nc_curr_file_pos
++_nc_curr_line
++_nc_curr_token
++_nc_curscr
++_nc_curscr_of
++_nc_dPanel
++_nc_dStack
++_nc_db_iterator_leaks
++_nc_delink_entry
++_nc_disable_period
++_nc_do_color
++_nc_do_color_sp
++_nc_doalloc
++_nc_entry_match
++_nc_env_access
++_nc_err_abort
++_nc_eventlist_timeout
++_nc_expand_try
++_nc_expanded
++_nc_fallback
++_nc_fifo_dump
++_nc_find_entry
++_nc_find_type_entry
++_nc_first_db
++_nc_first_name
++_nc_flush
++_nc_flush_sp
++_nc_form_cursor
++_nc_format_slks
++_nc_free_and_exit
++_nc_free_and_exit_sp
++_nc_free_entries
++_nc_free_entry
++_nc_free_termtype
++_nc_free_tic
++_nc_free_tinfo
++_nc_free_tparm
++_nc_freeall
++_nc_freeall_sp
++_nc_freewin
++_nc_fty_generic
++_nc_generic_fieldtype
++_nc_get_alias_table
++_nc_get_cur_term
++_nc_get_cur_term_sp
++_nc_get_fieldbuffer
++_nc_get_hash_info
++_nc_get_hash_table
++_nc_get_locale
++_nc_get_screensize
++_nc_get_source
++_nc_get_table
++_nc_get_token
++_nc_get_tty_mode
++_nc_get_tty_mode_sp
++_nc_get_type
++_nc_getenv_num
++_nc_globals
++_nc_handle_sigwinch
++_nc_has_mouse
++_nc_hash_map
++_nc_hash_map_sp
++_nc_hashed_db
++_nc_head
++_nc_home_terminfo
++_nc_infotocap
++_nc_init_acs
++_nc_init_acs_sp
++_nc_init_entry
++_nc_init_keytry
++_nc_init_pthreads
++_nc_init_termtype
++_nc_insert_ch
++_nc_is_abs_path
++_nc_is_dir_path
++_nc_is_file_path
++_nc_keep_tic_dir
++_nc_keyname
++_nc_keyname_leaks
++_nc_keypad
++_nc_last_db
++_nc_leaks_tic
++_nc_leaks_tinfo
++_nc_linedump
++_nc_linedump_sp
++_nc_locale_breaks_acs
++_nc_locked_tracef
++_nc_make_oldhash
++_nc_make_oldhash_sp
++_nc_makenew
++_nc_makenew_sp
++_nc_memmove
++_nc_menu_cursor_pos
++_nc_merge_entry
++_nc_msec_cost
++_nc_msec_cost_sp
++_nc_mutex_init
++_nc_mutex_lock
++_nc_mutex_trylock
++_nc_mutex_unlock
++_nc_mvcur
++_nc_mvcur_init
++_nc_mvcur_init_sp
++_nc_mvcur_resume
++_nc_mvcur_resume_sp
++_nc_mvcur_sp
++_nc_mvcur_wrap
++_nc_mvcur_wrap_sp
++_nc_my_visbuf
++_nc_name_match
++_nc_names_leaks
++_nc_newscr
++_nc_newscr_of
++_nc_next_db
++_nc_nulls_sent
++_nc_numcodes
++_nc_numfnames
++_nc_numnames
++_nc_oldnums
++_nc_optimize_enable
++_nc_ospeed
++_nc_outc_wrapper
++_nc_outch
++_nc_outch_sp
++_nc_panelhook
++_nc_panelhook_sp
++_nc_panic_mode
++_nc_parse_entry
++_nc_pathlast
++_nc_prescreen
++_nc_printf_string
++_nc_printf_string_sp
++_nc_ptr_Cols
++_nc_ptr_Escdelay
++_nc_ptr_Lines
++_nc_ptr_Tabsize
++_nc_push_token
++_nc_putchar
++_nc_putchar_sp
++_nc_putp
++_nc_putp_flush
++_nc_putp_flush_sp
++_nc_putp_sp
++_nc_read_entry
++_nc_read_entry_source
++_nc_read_file_entry
++_nc_read_termcap
++_nc_read_termcap_entry
++_nc_read_termtype
++_nc_remove_key
++_nc_remove_string
++_nc_render
++_nc_reset_colors
++_nc_reset_colors_sp
++_nc_reset_input
++_nc_resolve_uses
++_nc_resolve_uses2
++_nc_retrace_attr_t
++_nc_retrace_bool
++_nc_retrace_char
++_nc_retrace_chtype
++_nc_retrace_cptr
++_nc_retrace_cvoid_ptr
++_nc_retrace_field
++_nc_retrace_field_ptr
++_nc_retrace_field_type
++_nc_retrace_form
++_nc_retrace_form_hook
++_nc_retrace_int
++_nc_retrace_int_attr_t
++_nc_retrace_item
++_nc_retrace_item_opts
++_nc_retrace_item_ptr
++_nc_retrace_menu
++_nc_retrace_menu_hook
++_nc_retrace_menu_opts
++_nc_retrace_mmask_t
++_nc_retrace_panel
++_nc_retrace_ptr
++_nc_retrace_sp
++_nc_retrace_unsigned
++_nc_retrace_void_ptr
++_nc_retrace_win
++_nc_ripoffline
++_nc_ripoffline_sp
++_nc_rootname
++_nc_safe_strcat
++_nc_safe_strcpy
++_nc_save_str
++_nc_screen_chain
++_nc_screen_init
++_nc_screen_init_sp
++_nc_screen_of
++_nc_screen_resume
++_nc_screen_resume_sp
++_nc_screen_wrap
++_nc_screen_wrap_sp
++_nc_scroll_oldhash
++_nc_scroll_oldhash_sp
++_nc_scroll_optimize
++_nc_scroll_optimize_sp
++_nc_scroll_window
++_nc_scrolln
++_nc_scrolln_sp
++_nc_set_buffer
++_nc_set_buffer_sp
++_nc_set_generic_fieldtype
++_nc_set_no_padding
++_nc_set_source
++_nc_set_tputs_trace
++_nc_set_tty_mode
++_nc_set_tty_mode_sp
++_nc_set_type
++_nc_set_writedir
++_nc_setenv_num
++_nc_setup_tinfo
++_nc_setupscreen
++_nc_setupscreen_sp
++_nc_setupterm
++_nc_signal_handler
++_nc_slk_initialize
++_nc_start_line
++_nc_stdscr
++_nc_stdscr_of
++_nc_str_copy
++_nc_str_init
++_nc_str_null
++_nc_strcodes
++_nc_strfnames
++_nc_strict_bsd
++_nc_strnames
++_nc_suppress_warnings
++_nc_synchook
++_nc_syntax
++_nc_syserr_abort
++_nc_tail
++_nc_tgetent_leaks
++_nc_tic_dir
++_nc_tic_expand
++_nc_tic_written
++_nc_timed_wait
++_nc_tinfo_cmdch
++_nc_tinfo_fkeys
++_nc_tparm_analyze
++_nc_tparm_err
++_nc_trace_buf
++_nc_trace_bufcat
++_nc_trace_mmask_t
++_nc_trace_tries
++_nc_trace_ttymode
++_nc_trace_xnames
++_nc_tracebits
++_nc_tracechar
++_nc_tracemouse
++_nc_tracing
++_nc_trans_string
++_nc_trim_sgr0
++_nc_ttytype
++_nc_unctrl
++_nc_ungetch
++_nc_unicode_locale
++_nc_update_screensize
++_nc_use_tracef
++_nc_user_definable
++_nc_varargs
++_nc_visbuf
++_nc_visbuf2
++_nc_visbufn
++_nc_viscbuf
++_nc_viscbuf2
++_nc_vsscanf
++_nc_waddch_nosync
++_nc_warning
++_nc_wgetch
++_nc_wrap_entry
++_nc_write_entry
++_traceattr
++_traceattr2
++_tracechar
++_tracechtype
++_tracechtype2
++_tracedump
++_tracef
++_tracemouse
++addch
++addchnstr
++addchstr
++addnstr
++addstr
++assume_default_colors
++assume_default_colors_sp
++attr_get
++attr_off
++attr_on
++attr_set
++attroff
++attron
++attrset
++baudrate
++baudrate_sp
++beep
++beep_sp
++bkgd
++bkgdset
++border
++bottom_panel
++box
++can_change_color
++can_change_color_sp
++cbreak
++cbreak_sp
++ceiling_panel
++chgat
++clear
++clearok
++clrtobot
++clrtoeol
++color_content
++color_content_sp
++color_set
++copywin
++current_field
++current_item
++curs_set
++curs_set_sp
++curses_version
++data_ahead
++data_behind
++def_prog_mode
++def_prog_mode_sp
++def_shell_mode
++def_shell_mode_sp
++define_key
++define_key_sp
++del_curterm
++del_curterm_sp
++del_panel
++delay_output
++delay_output_sp
++delch
++deleteln
++delscreen
++delwin
++derwin
++doupdate
++doupdate_sp
++dup_field
++dupwin
++dynamic_field_info
++echo
++echo_sp
++echochar
++endwin
++endwin_sp
++erase
++erasechar
++erasechar_sp
++field_arg
++field_back
++field_buffer
++field_count
++field_fore
++field_index
++field_info
++field_init
++field_just
++field_opts
++field_opts_off
++field_opts_on
++field_pad
++field_status
++field_term
++field_type
++field_userptr
++filter
++filter_sp
++flash
++flash_sp
++flushinp
++flushinp_sp
++form_driver
++form_fields
++form_init
++form_opts
++form_opts_off
++form_opts_on
++form_page
++form_request_by_name
++form_request_name
++form_sub
++form_term
++form_userptr
++form_win
++free_field
++free_fieldtype
++free_form
++free_item
++free_menu
++get_escdelay
++get_escdelay_sp
++getattrs
++getbegx
++getbegy
++getbkgd
++getch
++getcurx
++getcury
++getmaxx
++getmaxy
++getmouse
++getmouse_sp
++getnstr
++getparx
++getpary
++getstr
++getwin
++getwin_sp
++ground_panel
++halfdelay
++halfdelay_sp
++has_colors
++has_colors_sp
++has_ic
++has_ic_sp
++has_il
++has_il_sp
++has_key
++has_key_sp
++has_mouse
++has_mouse_sp
++hide_panel
++hline
++idcok
++idlok
++immedok
++inch
++inchnstr
++inchstr
++init_color
++init_color_sp
++init_pair
++init_pair_sp
++initscr
++innstr
++insch
++insdelln
++insertln
++insnstr
++insstr
++instr
++intrflush
++intrflush_sp
++is_cleared
++is_idcok
++is_idlok
++is_immedok
++is_keypad
++is_leaveok
++is_linetouched
++is_nodelay
++is_notimeout
++is_pad
++is_scrollok
++is_subwin
++is_syncok
++is_term_resized
++is_term_resized_sp
++is_wintouched
++isendwin
++isendwin_sp
++item_count
++item_description
++item_index
++item_init
++item_name
++item_opts
++item_opts_off
++item_opts_on
++item_term
++item_userptr
++item_value
++item_visible
++key_defined
++key_defined_sp
++keybound
++keybound_sp
++keyname
++keyname_sp
++keyok
++keyok_sp
++keypad
++killchar
++killchar_sp
++leaveok
++link_field
++link_fieldtype
++longname
++longname_sp
++mcprint
++mcprint_sp
++menu_back
++menu_driver
++menu_fore
++menu_format
++menu_grey
++menu_init
++menu_items
++menu_mark
++menu_opts
++menu_opts_off
++menu_opts_on
++menu_pad
++menu_pattern
++menu_request_by_name
++menu_request_name
++menu_spacing
++menu_sub
++menu_term
++menu_userptr
++menu_win
++meta
++mouse_trafo
++mouseinterval
++mouseinterval_sp
++mousemask
++mousemask_sp
++move
++move_field
++move_panel
++mvaddch
++mvaddchnstr
++mvaddchstr
++mvaddnstr
++mvaddstr
++mvchgat
++mvcur
++mvcur_sp
++mvdelch
++mvderwin
++mvgetch
++mvgetnstr
++mvgetstr
++mvhline
++mvinch
++mvinchnstr
++mvinchstr
++mvinnstr
++mvinsch
++mvinsnstr
++mvinsstr
++mvinstr
++mvprintw
++mvscanw
++mvvline
++mvwaddch
++mvwaddchnstr
++mvwaddchstr
++mvwaddnstr
++mvwaddstr
++mvwchgat
++mvwdelch
++mvwgetch
++mvwgetnstr
++mvwgetstr
++mvwhline
++mvwin
++mvwinch
++mvwinchnstr
++mvwinchstr
++mvwinnstr
++mvwinsch
++mvwinsnstr
++mvwinsstr
++mvwinstr
++mvwprintw
++mvwscanw
++mvwvline
++napms
++napms_sp
++new_field
++new_fieldtype
++new_form
++new_form_sp
++new_item
++new_menu
++new_menu_sp
++new_page
++new_panel
++new_prescr
++newpad
++newpad_sp
++newterm
++newterm_sp
++newwin
++newwin_sp
++nl
++nl_sp
++nocbreak
++nocbreak_sp
++nodelay
++noecho
++noecho_sp
++nofilter
++nofilter_sp
++nonl
++nonl_sp
++noqiflush
++noqiflush_sp
++noraw
++noraw_sp
++notimeout
++ospeed
++overlay
++overwrite
++pair_content
++pair_content_sp
++panel_above
++panel_below
++panel_hidden
++panel_userptr
++panel_window
++pechochar
++pnoutrefresh
++pos_form_cursor
++pos_menu_cursor
++post_form
++post_menu
++prefresh
++printw
++putp
++putp_sp
++putwin
++qiflush
++qiflush_sp
++raw
++raw_sp
++redrawwin
++refresh
++replace_panel
++reset_prog_mode
++reset_prog_mode_sp
++reset_shell_mode
++reset_shell_mode_sp
++resetty
++resetty_sp
++resize_term
++resize_term_sp
++resizeterm
++resizeterm_sp
++restartterm
++restartterm_sp
++ripoffline
++ripoffline_sp
++savetty
++savetty_sp
++scale_form
++scale_menu
++scanw
++scr_dump
++scr_init
++scr_init_sp
++scr_restore
++scr_restore_sp
++scr_set
++scr_set_sp
++scrl
++scroll
++scrollok
++set_current_field
++set_current_item
++set_curterm
++set_curterm_sp
++set_escdelay
++set_escdelay_sp
++set_field_back
++set_field_buffer
++set_field_fore
++set_field_init
++set_field_just
++set_field_opts
++set_field_pad
++set_field_status
++set_field_term
++set_field_type
++set_field_userptr
++set_fieldtype_arg
++set_fieldtype_choice
++set_form_fields
++set_form_init
++set_form_opts
++set_form_page
++set_form_sub
++set_form_term
++set_form_userptr
++set_form_win
++set_item_init
++set_item_opts
++set_item_term
++set_item_userptr
++set_item_value
++set_max_field
++set_menu_back
++set_menu_fore
++set_menu_format
++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
++set_menu_term
++set_menu_userptr
++set_menu_win
++set_new_page
++set_panel_userptr
++set_tabsize
++set_tabsize_sp
++set_term
++set_top_row
++setscrreg
++setupterm
++show_panel
++slk_attr
++slk_attr_set
++slk_attr_set_sp
++slk_attr_sp
++slk_attroff
++slk_attroff_sp
++slk_attron
++slk_attron_sp
++slk_attrset
++slk_attrset_sp
++slk_clear
++slk_clear_sp
++slk_color
++slk_color_sp
++slk_init
++slk_init_sp
++slk_label
++slk_label_sp
++slk_noutrefresh
++slk_noutrefresh_sp
++slk_refresh
++slk_refresh_sp
++slk_restore
++slk_restore_sp
++slk_set
++slk_set_sp
++slk_touch
++slk_touch_sp
++standend
++standout
++start_color
++start_color_sp
++subpad
++subwin
++syncok
++termattrs
++termattrs_sp
++termname
++termname_sp
++tgetent
++tgetent_sp
++tgetflag
++tgetflag_sp
++tgetnum
++tgetnum_sp
++tgetstr
++tgetstr_sp
++tgoto
++tigetflag
++tigetflag_sp
++tigetnum
++tigetnum_sp
++tigetstr
++tigetstr_sp
++timeout
++tiparm
++top_panel
++top_row
++touchline
++touchwin
++tparm
++tputs
++tputs_sp
++trace
++typeahead
++typeahead_sp
++unctrl
++unctrl_sp
++ungetch
++ungetch_sp
++ungetmouse
++ungetmouse_sp
++unpost_form
++unpost_menu
++untouchwin
++update_panels
++update_panels_sp
++use_default_colors
++use_default_colors_sp
++use_env
++use_env_sp
++use_extended_names
++use_legacy_coding
++use_legacy_coding_sp
++use_screen
++use_tioctl
++use_tioctl_sp
++use_window
++vidattr
++vidattr_sp
++vidputs
++vidputs_sp
++vline
++vw_printw
++vw_scanw
++vwprintw
++vwscanw
++waddch
++waddchnstr
++waddchstr
++waddnstr
++waddstr
++wattr_get
++wattr_off
++wattr_on
++wattr_set
++wattroff
++wattron
++wattrset
++wbkgd
++wbkgdset
++wborder
++wchgat
++wclear
++wclrtobot
++wclrtoeol
++wcolor_set
++wcursyncup
++wdelch
++wdeleteln
++wechochar
++wenclose
++werase
++wgetch
++wgetch_events
++wgetdelay
++wgetnstr
++wgetnstr_events
++wgetparent
++wgetscrreg
++wgetstr
++whline
++winch
++winchnstr
++winchstr
++winnstr
++winsch
++winsdelln
++winsertln
++winsnstr
++winsstr
++winstr
++wmouse_trafo
++wmove
++wnoutrefresh
++wprintw
++wredrawln
++wrefresh
++wresize
++wscanw
++wscrl
++wsetscrreg
++wstandend
++wstandout
++wsyncdown
++wsyncup
++wtimeout
++wtouchln
++wvline
+Index: package/ncursestw.map
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncursestw.map 2014-12-06 22:59:11.000000000 +0000
+@@ -0,0 +1,1206 @@
++# $Id: ncursestw.map,v 1.17 2014/12/06 22:59:11 tom Exp $
++# script for shared library symbol-versioning using ld
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 7 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-reentrant
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --enable-widec
++# --verbose
++# --with-pthread
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++#
++
++NCURSES_TIC_5.0.19991023 {
++ global:
++ _nc_capcmp;
++ _nc_check_termtype;
++ _nc_entry_match;
++ _nc_find_type_entry;
++ _nc_get_table;
++ _nc_infotocap;
++ _nc_read_entry_source;
++ _nc_reset_input;
++ _nc_resolve_uses;
++ _nc_set_writedir;
++ _nc_syntax;
++ _nc_tic_expand;
++ _nc_tic_written;
++ _nc_trans_string;
++ _nc_write_entry;
++ local:
++ _nc_captoinfo;
++ _nc_comment_end;
++ _nc_comment_start;
++ _nc_copy_entry;
++ _nc_curr_file_pos;
++ _nc_curr_token;
++ _nc_get_token;
++ _nc_init_entry;
++ _nc_merge_entry;
++ _nc_panic_mode;
++ _nc_parse_entry;
++ _nc_push_token;
++ _nc_save_str;
++ _nc_start_line;
++ _nc_wrap_entry;
++};
++
++NCURSES_TIC_5.1.20000708 {
++ global:
++ _nc_disable_period;
++} NCURSES_TIC_5.0.19991023;
++
++NCURSES_TIC_5.5.20051010 {
++ global:
++ _nc_alloc_entry_leaks;
++ _nc_captoinfo_leaks;
++ _nc_check_termtype2;
++ _nc_comp_scan_leaks;
++ _nc_resolve_uses2;
++} NCURSES_TIC_5.1.20000708;
++
++NCURSES_TIC_5.7.20081102 {
++ global:
++ _nc_free_tic;
++ _nc_get_alias_table;
++ local:
++ _nc_comp_captab_leaks;
++ _nc_leaks_tic;
++} NCURSES_TIC_5.5.20051010;
++
++NCURSES_TIC_5.9.current {
++ global:
++ _nc_strict_bsd;
++} NCURSES_TIC_5.7.20081102;
++
++NCURSES_TINFO_5.0.19991023 {
++ global:
++ BC;
++ PC;
++ SP;
++ UP;
++ _nc_access;
++ _nc_add_to_try;
++ _nc_copy_termtype;
++ _nc_curr_col;
++ _nc_curr_line;
++ _nc_doalloc;
++ _nc_err_abort;
++ _nc_fallback;
++ _nc_find_entry;
++ _nc_first_name;
++ _nc_free_entries;
++ _nc_free_termtype;
++ _nc_free_tparm;
++ _nc_get_hash_table;
++ _nc_get_tty_mode;
++ _nc_get_type;
++ _nc_getenv_num;
++ _nc_head;
++ _nc_home_terminfo;
++ _nc_init_acs;
++ _nc_keep_tic_dir;
++ _nc_keypad;
++ _nc_name_match;
++ _nc_outch;
++ _nc_read_entry;
++ _nc_read_file_entry;
++ _nc_screen_chain;
++ _nc_set_buffer;
++ _nc_set_source;
++ _nc_set_tty_mode;
++ _nc_set_type;
++ _nc_suppress_warnings;
++ _nc_syserr_abort;
++ _nc_tail;
++ _nc_tic_dir;
++ _nc_timed_wait;
++ _nc_trace_buf;
++ _nc_tracing;
++ _nc_update_screensize;
++ _nc_visbuf;
++ _nc_visbuf2;
++ _nc_warning;
++ _tracechar;
++ baudrate;
++ cbreak;
++ curs_set;
++ curses_version;
++ def_prog_mode;
++ def_shell_mode;
++ define_key;
++ del_curterm;
++ delay_output;
++ erasechar;
++ flushinp;
++ halfdelay;
++ has_ic;
++ has_il;
++ has_key;
++ idcok;
++ idlok;
++ intrflush;
++ keybound;
++ keyname;
++ keyok;
++ keypad;
++ killchar;
++ longname;
++ meta;
++ napms;
++ nocbreak;
++ nodelay;
++ noqiflush;
++ noraw;
++ notimeout;
++ ospeed;
++ putp;
++ qiflush;
++ raw;
++ reset_prog_mode;
++ reset_shell_mode;
++ resetty;
++ savetty;
++ set_curterm;
++ setupterm;
++ termname;
++ tgetent;
++ tgetflag;
++ tgetnum;
++ tgetstr;
++ tgoto;
++ tigetflag;
++ tigetnum;
++ tigetstr;
++ tparm;
++ tputs;
++ trace;
++ typeahead;
++ unctrl;
++ use_env;
++ wtimeout;
++ local:
++ _nc_baudrate;
++ _nc_expand_try;
++ _nc_init_keytry;
++ _nc_nulls_sent;
++ _nc_ospeed;
++ _nc_read_termcap;
++ _nc_read_termcap_entry;
++ _nc_remove_key;
++ _nc_remove_string;
++ _nc_trace_tries;
++ _nc_tracebits;
++};
++
++NCURSES_TINFO_5.1.20000708 {
++ global:
++ _nc_align_termtype;
++ _nc_flush;
++ _nc_tinfo_fkeys;
++ _nc_user_definable;
++ use_extended_names;
++} NCURSES_TINFO_5.0.19991023;
++
++NCURSES_TINFO_5.2.20001021 {
++ global:
++ _nc_basename;
++ _nc_env_access;
++ _nc_safe_strcat;
++ _nc_safe_strcpy;
++ _nc_str_copy;
++ _nc_str_init;
++ _nc_str_null;
++} NCURSES_TINFO_5.1.20000708;
++
++NCURSES_TINFO_5.3.20021019 {
++ global:
++ _nc_rootname;
++ _nc_tparm_err;
++ _nc_visbufn;
++} NCURSES_TINFO_5.2.20001021;
++
++NCURSES_TINFO_5.4.20040208 {
++ global:
++ _nc_get_locale;
++ _nc_locale_breaks_acs;
++ _nc_pathlast;
++ _nc_retrace_attr_t;
++ _nc_retrace_bool;
++ _nc_retrace_chtype;
++ _nc_retrace_int;
++ _nc_retrace_ptr;
++ _nc_retrace_sp;
++ _nc_retrace_unsigned;
++ _nc_retrace_win;
++ _nc_tparm_analyze;
++ _nc_trace_bufcat;
++ _nc_unicode_locale;
++ _traceattr;
++ _traceattr2;
++ _tracechtype;
++ _tracechtype2;
++ _tracef;
++ key_defined;
++ local:
++ _nc_altcharset_name;
++ _nc_trace_ttymode;
++} NCURSES_TINFO_5.3.20021019;
++
++NCURSES_TINFO_5.5.20051010 {
++ global:
++ _nc_get_source;
++ _nc_retrace_cptr;
++ _nc_retrace_cvoid_ptr;
++ _nc_retrace_void_ptr;
++ _nc_setupterm;
++ _nc_trim_sgr0;
++ local:
++ _nc_delink_entry;
++ _nc_free_entry;
++} NCURSES_TINFO_5.4.20040208;
++
++NCURSES_TINFO_5.6.20061217 {
++ global:
++ _nc_eventlist_timeout;
++ _nc_first_db;
++ _nc_handle_sigwinch;
++ _nc_is_abs_path;
++ _nc_is_dir_path;
++ _nc_is_file_path;
++ _nc_keyname_leaks;
++ _nc_last_db;
++ _nc_next_db;
++ _nc_tgetent_leaks;
++ _nc_viscbuf;
++ local:
++ _nc_hashed_db;
++ _nc_read_termtype;
++ _nc_viscbuf2;
++} NCURSES_TINFO_5.5.20051010;
++
++NCURSES_TINFO_5.7.20081102 {
++ global:
++ _nc_COLS;
++ _nc_LINES;
++ _nc_TABSIZE;
++ _nc__nc_outchars;
++ _nc_acs_map;
++ _nc_boolcodes;
++ _nc_boolfnames;
++ _nc_boolnames;
++ _nc_codes_leaks;
++ _nc_count_outchars;
++ _nc_cur_term;
++ _nc_curscr;
++ _nc_free_tinfo;
++ _nc_get_screensize;
++ _nc_globals;
++ _nc_init_pthreads;
++ _nc_leaks_tinfo;
++ _nc_locked_tracef;
++ _nc_mutex_lock;
++ _nc_mutex_trylock;
++ _nc_mutex_unlock;
++ _nc_names_leaks;
++ _nc_newscr;
++ _nc_numcodes;
++ _nc_numfnames;
++ _nc_numnames;
++ _nc_prescreen;
++ _nc_ptr_Cols;
++ _nc_ptr_Lines;
++ _nc_screen_of;
++ _nc_set_no_padding;
++ _nc_set_tputs_trace;
++ _nc_stdscr;
++ _nc_strcodes;
++ _nc_strfnames;
++ _nc_strnames;
++ _nc_tracechar;
++ _nc_use_tracef;
++ _nc_viswbuf;
++ _nc_viswbufn;
++ _nc_viswibuf;
++ _tracecchar_t;
++ _tracecchar_t2;
++ set_tabsize;
++ local:
++ _nc__nc_tputs_trace;
++ _nc_keyname;
++ _nc_mutex_init;
++ _nc_ttytype;
++ _nc_unctrl;
++ _nc_viswbuf2;
++} NCURSES_TINFO_5.6.20061217;
++
++NCURSES_TINFO_5.8.20110226 {
++ global:
++ _nc_flush_sp;
++ _nc_get_tty_mode_sp;
++ _nc_init_acs_sp;
++ _nc_outc_wrapper;
++ _nc_outch_sp;
++ _nc_putp;
++ _nc_putp_flush;
++ _nc_putp_flush_sp;
++ _nc_putp_sp;
++ _nc_retrace_int_attr_t;
++ _nc_set_buffer_sp;
++ _nc_set_tty_mode_sp;
++ baudrate_sp;
++ cbreak_sp;
++ curs_set_sp;
++ def_prog_mode_sp;
++ def_shell_mode_sp;
++ define_key_sp;
++ del_curterm_sp;
++ delay_output_sp;
++ erasechar_sp;
++ flushinp_sp;
++ halfdelay_sp;
++ has_ic_sp;
++ has_il_sp;
++ has_key_sp;
++ intrflush_sp;
++ key_defined_sp;
++ keybound_sp;
++ keyname_sp;
++ keyok_sp;
++ killchar_sp;
++ longname_sp;
++ napms_sp;
++ new_prescr;
++ nocbreak_sp;
++ noqiflush_sp;
++ noraw_sp;
++ putp_sp;
++ qiflush_sp;
++ raw_sp;
++ reset_prog_mode_sp;
++ reset_shell_mode_sp;
++ resetty_sp;
++ savetty_sp;
++ set_curterm_sp;
++ set_tabsize_sp;
++ termname_sp;
++ tgetent_sp;
++ tgetflag_sp;
++ tgetnum_sp;
++ tgetstr_sp;
++ tigetflag_sp;
++ tigetnum_sp;
++ tigetstr_sp;
++ tiparm;
++ tputs_sp;
++ typeahead_sp;
++ unctrl_sp;
++ use_env_sp;
++ local:
++ _nc_get_cur_term;
++ _nc_get_cur_term_sp;
++ _nc_get_hash_info;
++ _nc_ptr_Tabsize;
++ _nc_retrace_char;
++ _nc_setup_tinfo;
++ _nc_tinfo_cmdch;
++} NCURSES_TINFO_5.7.20081102;
++
++NCURSES_TINFO_5.9.current {
++ global:
++ _nc_init_termtype;
++ _nc_putchar;
++ _nc_putchar_sp;
++ use_tioctl;
++ use_tioctl_sp;
++ local:
++ _nc_comp_error_leaks;
++ _nc_db_iterator_leaks;
++ _nc_setenv_num;
++} NCURSES_TINFO_5.8.20110226;
++
++NCURSESTW_5.7.20081102 {
++ global:
++ COLOR_PAIR;
++ PAIR_NUMBER;
++ TYPE_ALNUM;
++ TYPE_ALPHA;
++ TYPE_ENUM;
++ TYPE_INTEGER;
++ TYPE_IPV4;
++ TYPE_NUMERIC;
++ TYPE_REGEXP;
++ _nc_COLORS;
++ _nc_COLOR_PAIRS;
++ _nc_ESCDELAY;
++ _nc_free_and_exit;
++ _nc_optimize_enable;
++ _nc_panelhook;
++ _nc_ripoffline;
++ _nc_wacs;
++ _nc_wcrtomb;
++ add_wch;
++ add_wchnstr;
++ add_wchstr;
++ addch;
++ addchnstr;
++ addchstr;
++ addnstr;
++ addnwstr;
++ addstr;
++ addwstr;
++ assume_default_colors;
++ attr_get;
++ attr_off;
++ attr_on;
++ attr_set;
++ attroff;
++ attron;
++ attrset;
++ beep;
++ bkgd;
++ bkgdset;
++ bkgrnd;
++ bkgrndset;
++ border;
++ border_set;
++ bottom_panel;
++ box;
++ box_set;
++ can_change_color;
++ chgat;
++ clear;
++ clearok;
++ clrtobot;
++ clrtoeol;
++ color_content;
++ color_set;
++ copywin;
++ current_field;
++ current_item;
++ data_ahead;
++ data_behind;
++ del_panel;
++ delch;
++ deleteln;
++ delscreen;
++ delwin;
++ derwin;
++ doupdate;
++ dup_field;
++ dupwin;
++ dynamic_field_info;
++ echo;
++ echo_wchar;
++ echochar;
++ endwin;
++ erase;
++ erasewchar;
++ field_arg;
++ field_back;
++ field_buffer;
++ field_count;
++ field_fore;
++ field_index;
++ field_info;
++ field_init;
++ field_just;
++ field_opts;
++ field_opts_off;
++ field_opts_on;
++ field_pad;
++ field_status;
++ field_term;
++ field_type;
++ field_userptr;
++ filter;
++ flash;
++ form_driver;
++ form_fields;
++ form_init;
++ form_opts;
++ form_opts_off;
++ form_opts_on;
++ form_page;
++ form_request_by_name;
++ form_request_name;
++ form_sub;
++ form_term;
++ form_userptr;
++ form_win;
++ free_field;
++ free_fieldtype;
++ free_form;
++ free_item;
++ free_menu;
++ get_wch;
++ get_wstr;
++ getattrs;
++ getbegx;
++ getbegy;
++ getbkgd;
++ getbkgrnd;
++ getcchar;
++ getch;
++ getcurx;
++ getcury;
++ getmaxx;
++ getmaxy;
++ getmouse;
++ getn_wstr;
++ getnstr;
++ getparx;
++ getpary;
++ getstr;
++ getwin;
++ has_colors;
++ hide_panel;
++ hline;
++ hline_set;
++ immedok;
++ in_wch;
++ in_wchnstr;
++ in_wchstr;
++ inch;
++ inchnstr;
++ inchstr;
++ init_color;
++ init_pair;
++ initscr;
++ innstr;
++ innwstr;
++ ins_nwstr;
++ ins_wch;
++ ins_wstr;
++ insch;
++ insdelln;
++ insertln;
++ insnstr;
++ insstr;
++ instr;
++ inwstr;
++ is_cleared;
++ is_idcok;
++ is_idlok;
++ is_immedok;
++ is_keypad;
++ is_leaveok;
++ is_linetouched;
++ is_nodelay;
++ is_notimeout;
++ is_scrollok;
++ is_syncok;
++ is_term_resized;
++ is_wintouched;
++ isendwin;
++ item_count;
++ item_description;
++ item_index;
++ item_init;
++ item_name;
++ item_opts;
++ item_opts_off;
++ item_opts_on;
++ item_term;
++ item_userptr;
++ item_value;
++ item_visible;
++ key_name;
++ killwchar;
++ leaveok;
++ link_field;
++ link_fieldtype;
++ mcprint;
++ menu_back;
++ menu_driver;
++ menu_fore;
++ menu_format;
++ menu_grey;
++ menu_init;
++ menu_items;
++ menu_mark;
++ menu_opts;
++ menu_opts_off;
++ menu_opts_on;
++ menu_pad;
++ menu_pattern;
++ menu_request_by_name;
++ menu_request_name;
++ menu_spacing;
++ menu_sub;
++ menu_term;
++ menu_userptr;
++ menu_win;
++ mouse_trafo;
++ mouseinterval;
++ mousemask;
++ move;
++ move_field;
++ move_panel;
++ mvadd_wch;
++ mvadd_wchnstr;
++ mvadd_wchstr;
++ mvaddch;
++ mvaddchnstr;
++ mvaddchstr;
++ mvaddnstr;
++ mvaddnwstr;
++ mvaddstr;
++ mvaddwstr;
++ mvchgat;
++ mvcur;
++ mvdelch;
++ mvderwin;
++ mvget_wch;
++ mvget_wstr;
++ mvgetch;
++ mvgetn_wstr;
++ mvgetnstr;
++ mvgetstr;
++ mvhline;
++ mvhline_set;
++ mvin_wch;
++ mvin_wchnstr;
++ mvin_wchstr;
++ mvinch;
++ mvinchnstr;
++ mvinchstr;
++ mvinnstr;
++ mvinnwstr;
++ mvins_nwstr;
++ mvins_wch;
++ mvins_wstr;
++ mvinsch;
++ mvinsnstr;
++ mvinsstr;
++ mvinstr;
++ mvinwstr;
++ mvprintw;
++ mvscanw;
++ mvvline;
++ mvvline_set;
++ mvwadd_wch;
++ mvwadd_wchnstr;
++ mvwadd_wchstr;
++ mvwaddch;
++ mvwaddchnstr;
++ mvwaddchstr;
++ mvwaddnstr;
++ mvwaddnwstr;
++ mvwaddstr;
++ mvwaddwstr;
++ mvwchgat;
++ mvwdelch;
++ mvwget_wch;
++ mvwget_wstr;
++ mvwgetch;
++ mvwgetn_wstr;
++ mvwgetnstr;
++ mvwgetstr;
++ mvwhline;
++ mvwhline_set;
++ mvwin;
++ mvwin_wch;
++ mvwin_wchnstr;
++ mvwin_wchstr;
++ mvwinch;
++ mvwinchnstr;
++ mvwinchstr;
++ mvwinnstr;
++ mvwinnwstr;
++ mvwins_nwstr;
++ mvwins_wch;
++ mvwins_wstr;
++ mvwinsch;
++ mvwinsnstr;
++ mvwinsstr;
++ mvwinstr;
++ mvwinwstr;
++ mvwprintw;
++ mvwscanw;
++ mvwvline;
++ mvwvline_set;
++ new_field;
++ new_fieldtype;
++ new_form;
++ new_item;
++ new_menu;
++ new_page;
++ new_panel;
++ newpad;
++ newterm;
++ newwin;
++ nl;
++ noecho;
++ nofilter;
++ nonl;
++ overlay;
++ overwrite;
++ pair_content;
++ panel_above;
++ panel_below;
++ panel_hidden;
++ panel_userptr;
++ panel_window;
++ pecho_wchar;
++ pechochar;
++ pnoutrefresh;
++ pos_form_cursor;
++ pos_menu_cursor;
++ post_form;
++ post_menu;
++ prefresh;
++ printw;
++ putwin;
++ redrawwin;
++ refresh;
++ replace_panel;
++ resize_term;
++ resizeterm;
++ restartterm;
++ ripoffline;
++ scale_form;
++ scale_menu;
++ scanw;
++ scr_dump;
++ scr_init;
++ scr_restore;
++ scr_set;
++ scrl;
++ scroll;
++ scrollok;
++ set_current_field;
++ set_current_item;
++ set_escdelay;
++ set_field_back;
++ set_field_buffer;
++ set_field_fore;
++ set_field_init;
++ set_field_just;
++ set_field_opts;
++ set_field_pad;
++ set_field_status;
++ set_field_term;
++ set_field_type;
++ set_field_userptr;
++ set_fieldtype_arg;
++ set_fieldtype_choice;
++ set_form_fields;
++ set_form_init;
++ set_form_opts;
++ set_form_page;
++ set_form_sub;
++ set_form_term;
++ set_form_userptr;
++ set_form_win;
++ set_item_init;
++ set_item_opts;
++ set_item_term;
++ set_item_userptr;
++ set_item_value;
++ set_max_field;
++ set_menu_back;
++ set_menu_fore;
++ set_menu_format;
++ 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;
++ set_menu_term;
++ set_menu_userptr;
++ set_menu_win;
++ set_new_page;
++ set_panel_userptr;
++ set_term;
++ set_top_row;
++ setcchar;
++ setscrreg;
++ show_panel;
++ slk_attr;
++ slk_attr_off;
++ slk_attr_on;
++ slk_attr_set;
++ slk_attroff;
++ slk_attron;
++ slk_attrset;
++ slk_clear;
++ slk_color;
++ slk_init;
++ slk_label;
++ slk_noutrefresh;
++ slk_refresh;
++ slk_restore;
++ slk_set;
++ slk_touch;
++ slk_wset;
++ standend;
++ standout;
++ start_color;
++ subpad;
++ subwin;
++ syncok;
++ term_attrs;
++ termattrs;
++ timeout;
++ top_panel;
++ top_row;
++ touchline;
++ touchwin;
++ unget_wch;
++ ungetch;
++ ungetmouse;
++ unpost_form;
++ unpost_menu;
++ untouchwin;
++ update_panels;
++ use_default_colors;
++ use_legacy_coding;
++ use_screen;
++ use_window;
++ vid_attr;
++ vid_puts;
++ vidattr;
++ vidputs;
++ vline;
++ vline_set;
++ vw_printw;
++ vw_scanw;
++ vwprintw;
++ vwscanw;
++ wadd_wch;
++ wadd_wchnstr;
++ wadd_wchstr;
++ waddch;
++ waddchnstr;
++ waddchstr;
++ waddnstr;
++ waddnwstr;
++ waddstr;
++ waddwstr;
++ wattr_get;
++ wattr_off;
++ wattr_on;
++ wattr_set;
++ wattroff;
++ wattron;
++ wattrset;
++ wbkgd;
++ wbkgdset;
++ wbkgrnd;
++ wbkgrndset;
++ wborder;
++ wborder_set;
++ wchgat;
++ wclear;
++ wclrtobot;
++ wclrtoeol;
++ wcolor_set;
++ wcursyncup;
++ wdelch;
++ wdeleteln;
++ wecho_wchar;
++ wechochar;
++ wenclose;
++ werase;
++ wget_wch;
++ wget_wstr;
++ wgetbkgrnd;
++ wgetch;
++ wgetch_events;
++ wgetn_wstr;
++ wgetnstr;
++ wgetnstr_events;
++ wgetparent;
++ wgetscrreg;
++ wgetstr;
++ whline;
++ whline_set;
++ win_wch;
++ win_wchnstr;
++ win_wchstr;
++ winch;
++ winchnstr;
++ winchstr;
++ winnstr;
++ winnwstr;
++ wins_nwstr;
++ wins_wch;
++ wins_wstr;
++ winsch;
++ winsdelln;
++ winsertln;
++ winsnstr;
++ winsstr;
++ winstr;
++ winwstr;
++ wmouse_trafo;
++ wmove;
++ wnoutrefresh;
++ wprintw;
++ wredrawln;
++ wrefresh;
++ wresize;
++ wscanw;
++ wscrl;
++ wsetscrreg;
++ wstandend;
++ wstandout;
++ wsyncdown;
++ wsyncup;
++ wtouchln;
++ wunctrl;
++ wvline;
++ wvline_set;
++ local:
++ _nc_Calculate_Item_Length_and_Width;
++ _nc_Calculate_Text_Width;
++ _nc_Connect_Items;
++ _nc_Copy_Argument;
++ _nc_Copy_Type;
++ _nc_Default_Field;
++ _nc_Default_FieldType;
++ _nc_Default_Form;
++ _nc_Default_Item;
++ _nc_Default_Menu;
++ _nc_Disconnect_Items;
++ _nc_Draw_Menu;
++ _nc_First_Active_Field;
++ _nc_Free_Argument;
++ _nc_Free_Type;
++ _nc_Internal_Validation;
++ _nc_Link_Items;
++ _nc_Make_Argument;
++ _nc_Match_Next_Character_In_Item_Name;
++ _nc_New_TopRow_and_CurrentItem;
++ _nc_Position_Form_Cursor;
++ _nc_Post_Item;
++ _nc_Refresh_Current_Field;
++ _nc_Set_Current_Field;
++ _nc_Set_Form_Page;
++ _nc_Show_Menu;
++ _nc_Synchronize_Attributes;
++ _nc_Synchronize_Options;
++ _nc_Touchline;
++ _nc_Touchpan;
++ _nc_Widen_String;
++ _nc_Wnoutrefresh;
++ _nc_build_wch;
++ _nc_dPanel;
++ _nc_dStack;
++ _nc_do_color;
++ _nc_expanded;
++ _nc_fifo_dump;
++ _nc_freeall;
++ _nc_freewin;
++ _nc_has_mouse;
++ _nc_hash_map;
++ _nc_init_wacs;
++ _nc_insert_ch;
++ _nc_is_charable;
++ _nc_linedump;
++ _nc_make_oldhash;
++ _nc_makenew;
++ _nc_memmove;
++ _nc_menu_cursor_pos;
++ _nc_msec_cost;
++ _nc_mvcur_init;
++ _nc_mvcur_resume;
++ _nc_mvcur_wrap;
++ _nc_my_visbuf;
++ _nc_oldnums;
++ _nc_printf_string;
++ _nc_render;
++ _nc_reset_colors;
++ _nc_retrace_field;
++ _nc_retrace_field_ptr;
++ _nc_retrace_field_type;
++ _nc_retrace_form;
++ _nc_retrace_form_hook;
++ _nc_retrace_item;
++ _nc_retrace_item_opts;
++ _nc_retrace_item_ptr;
++ _nc_retrace_menu;
++ _nc_retrace_menu_hook;
++ _nc_retrace_menu_opts;
++ _nc_retrace_panel;
++ _nc_screen_init;
++ _nc_screen_resume;
++ _nc_screen_wrap;
++ _nc_scroll_oldhash;
++ _nc_scroll_optimize;
++ _nc_scroll_window;
++ _nc_scrolln;
++ _nc_setupscreen;
++ _nc_signal_handler;
++ _nc_slk_initialize;
++ _nc_synchook;
++ _nc_to_char;
++ _nc_to_widechar;
++ _nc_trace_xnames;
++ _nc_tracemouse;
++ _nc_ungetch;
++ _nc_varargs;
++ _nc_vsscanf;
++ _nc_waddch_nosync;
++ _nc_wchstrlen;
++ _nc_wgetch;
++ _tracedump;
++ _tracemouse;
++};
++
++NCURSESTW_5.8.20110226 {
++ global:
++ _nc_panelhook_sp;
++ assume_default_colors_sp;
++ beep_sp;
++ can_change_color_sp;
++ ceiling_panel;
++ color_content_sp;
++ doupdate_sp;
++ echo_sp;
++ endwin_sp;
++ filter_sp;
++ flash_sp;
++ get_escdelay;
++ get_escdelay_sp;
++ getmouse_sp;
++ getwin_sp;
++ ground_panel;
++ has_colors_sp;
++ has_mouse;
++ has_mouse_sp;
++ init_color_sp;
++ init_pair_sp;
++ is_pad;
++ is_subwin;
++ is_term_resized_sp;
++ isendwin_sp;
++ mcprint_sp;
++ mouseinterval_sp;
++ mousemask_sp;
++ mvcur_sp;
++ new_form_sp;
++ new_menu_sp;
++ newpad_sp;
++ newterm_sp;
++ newwin_sp;
++ nl_sp;
++ noecho_sp;
++ nofilter_sp;
++ nonl_sp;
++ pair_content_sp;
++ resize_term_sp;
++ resizeterm_sp;
++ restartterm_sp;
++ ripoffline_sp;
++ scr_init_sp;
++ scr_restore_sp;
++ scr_set_sp;
++ set_escdelay_sp;
++ slk_attr_set_sp;
++ slk_attr_sp;
++ slk_attroff_sp;
++ slk_attron_sp;
++ slk_attrset_sp;
++ slk_clear_sp;
++ slk_color_sp;
++ slk_init_sp;
++ slk_label_sp;
++ slk_noutrefresh_sp;
++ slk_refresh_sp;
++ slk_restore_sp;
++ slk_set_sp;
++ slk_touch_sp;
++ start_color_sp;
++ term_attrs_sp;
++ termattrs_sp;
++ unget_wch_sp;
++ ungetch_sp;
++ ungetmouse_sp;
++ update_panels_sp;
++ use_default_colors_sp;
++ use_legacy_coding_sp;
++ vid_attr_sp;
++ vid_puts_sp;
++ vidattr_sp;
++ vidputs_sp;
++ wunctrl_sp;
++ local:
++ _nc_TYPE_ALNUM;
++ _nc_TYPE_ALPHA;
++ _nc_TYPE_ENUM;
++ _nc_TYPE_INTEGER;
++ _nc_TYPE_IPV4;
++ _nc_TYPE_NUMERIC;
++ _nc_TYPE_REGEXP;
++ _nc_curscr_of;
++ _nc_do_color_sp;
++ _nc_form_cursor;
++ _nc_format_slks;
++ _nc_free_and_exit_sp;
++ _nc_freeall_sp;
++ _nc_fty_generic;
++ _nc_generic_fieldtype;
++ _nc_get_fieldbuffer;
++ _nc_hash_map_sp;
++ _nc_insert_wch;
++ _nc_linedump_sp;
++ _nc_make_oldhash_sp;
++ _nc_makenew_sp;
++ _nc_msec_cost_sp;
++ _nc_mvcur_init_sp;
++ _nc_mvcur_resume_sp;
++ _nc_mvcur_wrap_sp;
++ _nc_newscr_of;
++ _nc_printf_string_sp;
++ _nc_ptr_Escdelay;
++ _nc_reset_colors_sp;
++ _nc_retrace_mmask_t;
++ _nc_ripoffline_sp;
++ _nc_screen_init_sp;
++ _nc_screen_resume_sp;
++ _nc_screen_wrap_sp;
++ _nc_scroll_oldhash_sp;
++ _nc_scroll_optimize_sp;
++ _nc_scrolln_sp;
++ _nc_set_generic_fieldtype;
++ _nc_setupscreen_sp;
++ _nc_stdscr_of;
++} NCURSESTW_5.7.20081102;
++
++NCURSESTW_5.9.current {
++ global:
++ form_driver_w;
++ wgetdelay;
++ local:
++ _nc_mvcur;
++ _nc_mvcur_sp;
++ _nc_trace_mmask_t;
++} NCURSESTW_5.8.20110226;
+Index: package/ncursestw.sym
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncursestw.sym 2014-11-28 02:58:56.000000000 +0000
+@@ -0,0 +1,1121 @@
++# $Id: ncursestw.sym,v 1.12 2014/11/28 02:58:56 tom Exp $
++# script for shared library symbol-visibility using libtool
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 7 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-reentrant
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --enable-widec
++# --verbose
++# --with-pthread
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++BC
++COLOR_PAIR
++PAIR_NUMBER
++PC
++SP
++TYPE_ALNUM
++TYPE_ALPHA
++TYPE_ENUM
++TYPE_INTEGER
++TYPE_IPV4
++TYPE_NUMERIC
++TYPE_REGEXP
++UP
++_nc_COLORS
++_nc_COLOR_PAIRS
++_nc_COLS
++_nc_Calculate_Item_Length_and_Width
++_nc_Calculate_Text_Width
++_nc_Connect_Items
++_nc_Copy_Argument
++_nc_Copy_Type
++_nc_Default_Field
++_nc_Default_FieldType
++_nc_Default_Form
++_nc_Default_Item
++_nc_Default_Menu
++_nc_Disconnect_Items
++_nc_Draw_Menu
++_nc_ESCDELAY
++_nc_First_Active_Field
++_nc_Free_Argument
++_nc_Free_Type
++_nc_Internal_Validation
++_nc_LINES
++_nc_Link_Items
++_nc_Make_Argument
++_nc_Match_Next_Character_In_Item_Name
++_nc_New_TopRow_and_CurrentItem
++_nc_Position_Form_Cursor
++_nc_Post_Item
++_nc_Refresh_Current_Field
++_nc_Set_Current_Field
++_nc_Set_Form_Page
++_nc_Show_Menu
++_nc_Synchronize_Attributes
++_nc_Synchronize_Options
++_nc_TABSIZE
++_nc_TYPE_ALNUM
++_nc_TYPE_ALPHA
++_nc_TYPE_ENUM
++_nc_TYPE_INTEGER
++_nc_TYPE_IPV4
++_nc_TYPE_NUMERIC
++_nc_TYPE_REGEXP
++_nc_Touchline
++_nc_Touchpan
++_nc_Widen_String
++_nc_Wnoutrefresh
++_nc__nc_outchars
++_nc__nc_tputs_trace
++_nc_access
++_nc_acs_map
++_nc_add_to_try
++_nc_align_termtype
++_nc_alloc_entry_leaks
++_nc_altcharset_name
++_nc_basename
++_nc_baudrate
++_nc_boolcodes
++_nc_boolfnames
++_nc_boolnames
++_nc_build_wch
++_nc_capcmp
++_nc_captoinfo
++_nc_captoinfo_leaks
++_nc_check_termtype
++_nc_check_termtype2
++_nc_codes_leaks
++_nc_comment_end
++_nc_comment_start
++_nc_comp_captab_leaks
++_nc_comp_error_leaks
++_nc_comp_scan_leaks
++_nc_copy_entry
++_nc_copy_termtype
++_nc_count_outchars
++_nc_cur_term
++_nc_curr_col
++_nc_curr_file_pos
++_nc_curr_line
++_nc_curr_token
++_nc_curscr
++_nc_curscr_of
++_nc_dPanel
++_nc_dStack
++_nc_db_iterator_leaks
++_nc_delink_entry
++_nc_disable_period
++_nc_do_color
++_nc_do_color_sp
++_nc_doalloc
++_nc_entry_match
++_nc_env_access
++_nc_err_abort
++_nc_eventlist_timeout
++_nc_expand_try
++_nc_expanded
++_nc_fallback
++_nc_fifo_dump
++_nc_find_entry
++_nc_find_type_entry
++_nc_first_db
++_nc_first_name
++_nc_flush
++_nc_flush_sp
++_nc_form_cursor
++_nc_format_slks
++_nc_free_and_exit
++_nc_free_and_exit_sp
++_nc_free_entries
++_nc_free_entry
++_nc_free_termtype
++_nc_free_tic
++_nc_free_tinfo
++_nc_free_tparm
++_nc_freeall
++_nc_freeall_sp
++_nc_freewin
++_nc_fty_generic
++_nc_generic_fieldtype
++_nc_get_alias_table
++_nc_get_cur_term
++_nc_get_cur_term_sp
++_nc_get_fieldbuffer
++_nc_get_hash_info
++_nc_get_hash_table
++_nc_get_locale
++_nc_get_screensize
++_nc_get_source
++_nc_get_table
++_nc_get_token
++_nc_get_tty_mode
++_nc_get_tty_mode_sp
++_nc_get_type
++_nc_getenv_num
++_nc_globals
++_nc_handle_sigwinch
++_nc_has_mouse
++_nc_hash_map
++_nc_hash_map_sp
++_nc_hashed_db
++_nc_head
++_nc_home_terminfo
++_nc_infotocap
++_nc_init_acs
++_nc_init_acs_sp
++_nc_init_entry
++_nc_init_keytry
++_nc_init_pthreads
++_nc_init_termtype
++_nc_init_wacs
++_nc_insert_ch
++_nc_insert_wch
++_nc_is_abs_path
++_nc_is_charable
++_nc_is_dir_path
++_nc_is_file_path
++_nc_keep_tic_dir
++_nc_keyname
++_nc_keyname_leaks
++_nc_keypad
++_nc_last_db
++_nc_leaks_tic
++_nc_leaks_tinfo
++_nc_linedump
++_nc_linedump_sp
++_nc_locale_breaks_acs
++_nc_locked_tracef
++_nc_make_oldhash
++_nc_make_oldhash_sp
++_nc_makenew
++_nc_makenew_sp
++_nc_memmove
++_nc_menu_cursor_pos
++_nc_merge_entry
++_nc_msec_cost
++_nc_msec_cost_sp
++_nc_mutex_init
++_nc_mutex_lock
++_nc_mutex_trylock
++_nc_mutex_unlock
++_nc_mvcur
++_nc_mvcur_init
++_nc_mvcur_init_sp
++_nc_mvcur_resume
++_nc_mvcur_resume_sp
++_nc_mvcur_sp
++_nc_mvcur_wrap
++_nc_mvcur_wrap_sp
++_nc_my_visbuf
++_nc_name_match
++_nc_names_leaks
++_nc_newscr
++_nc_newscr_of
++_nc_next_db
++_nc_nulls_sent
++_nc_numcodes
++_nc_numfnames
++_nc_numnames
++_nc_oldnums
++_nc_optimize_enable
++_nc_ospeed
++_nc_outc_wrapper
++_nc_outch
++_nc_outch_sp
++_nc_panelhook
++_nc_panelhook_sp
++_nc_panic_mode
++_nc_parse_entry
++_nc_pathlast
++_nc_prescreen
++_nc_printf_string
++_nc_printf_string_sp
++_nc_ptr_Cols
++_nc_ptr_Escdelay
++_nc_ptr_Lines
++_nc_ptr_Tabsize
++_nc_push_token
++_nc_putchar
++_nc_putchar_sp
++_nc_putp
++_nc_putp_flush
++_nc_putp_flush_sp
++_nc_putp_sp
++_nc_read_entry
++_nc_read_entry_source
++_nc_read_file_entry
++_nc_read_termcap
++_nc_read_termcap_entry
++_nc_read_termtype
++_nc_remove_key
++_nc_remove_string
++_nc_render
++_nc_reset_colors
++_nc_reset_colors_sp
++_nc_reset_input
++_nc_resolve_uses
++_nc_resolve_uses2
++_nc_retrace_attr_t
++_nc_retrace_bool
++_nc_retrace_char
++_nc_retrace_chtype
++_nc_retrace_cptr
++_nc_retrace_cvoid_ptr
++_nc_retrace_field
++_nc_retrace_field_ptr
++_nc_retrace_field_type
++_nc_retrace_form
++_nc_retrace_form_hook
++_nc_retrace_int
++_nc_retrace_int_attr_t
++_nc_retrace_item
++_nc_retrace_item_opts
++_nc_retrace_item_ptr
++_nc_retrace_menu
++_nc_retrace_menu_hook
++_nc_retrace_menu_opts
++_nc_retrace_mmask_t
++_nc_retrace_panel
++_nc_retrace_ptr
++_nc_retrace_sp
++_nc_retrace_unsigned
++_nc_retrace_void_ptr
++_nc_retrace_win
++_nc_ripoffline
++_nc_ripoffline_sp
++_nc_rootname
++_nc_safe_strcat
++_nc_safe_strcpy
++_nc_save_str
++_nc_screen_chain
++_nc_screen_init
++_nc_screen_init_sp
++_nc_screen_of
++_nc_screen_resume
++_nc_screen_resume_sp
++_nc_screen_wrap
++_nc_screen_wrap_sp
++_nc_scroll_oldhash
++_nc_scroll_oldhash_sp
++_nc_scroll_optimize
++_nc_scroll_optimize_sp
++_nc_scroll_window
++_nc_scrolln
++_nc_scrolln_sp
++_nc_set_buffer
++_nc_set_buffer_sp
++_nc_set_generic_fieldtype
++_nc_set_no_padding
++_nc_set_source
++_nc_set_tputs_trace
++_nc_set_tty_mode
++_nc_set_tty_mode_sp
++_nc_set_type
++_nc_set_writedir
++_nc_setenv_num
++_nc_setup_tinfo
++_nc_setupscreen
++_nc_setupscreen_sp
++_nc_setupterm
++_nc_signal_handler
++_nc_slk_initialize
++_nc_start_line
++_nc_stdscr
++_nc_stdscr_of
++_nc_str_copy
++_nc_str_init
++_nc_str_null
++_nc_strcodes
++_nc_strfnames
++_nc_strict_bsd
++_nc_strnames
++_nc_suppress_warnings
++_nc_synchook
++_nc_syntax
++_nc_syserr_abort
++_nc_tail
++_nc_tgetent_leaks
++_nc_tic_dir
++_nc_tic_expand
++_nc_tic_written
++_nc_timed_wait
++_nc_tinfo_cmdch
++_nc_tinfo_fkeys
++_nc_to_char
++_nc_to_widechar
++_nc_tparm_analyze
++_nc_tparm_err
++_nc_trace_buf
++_nc_trace_bufcat
++_nc_trace_mmask_t
++_nc_trace_tries
++_nc_trace_ttymode
++_nc_trace_xnames
++_nc_tracebits
++_nc_tracechar
++_nc_tracemouse
++_nc_tracing
++_nc_trans_string
++_nc_trim_sgr0
++_nc_ttytype
++_nc_unctrl
++_nc_ungetch
++_nc_unicode_locale
++_nc_update_screensize
++_nc_use_tracef
++_nc_user_definable
++_nc_varargs
++_nc_visbuf
++_nc_visbuf2
++_nc_visbufn
++_nc_viscbuf
++_nc_viscbuf2
++_nc_viswbuf
++_nc_viswbuf2
++_nc_viswbufn
++_nc_viswibuf
++_nc_vsscanf
++_nc_wacs
++_nc_waddch_nosync
++_nc_warning
++_nc_wchstrlen
++_nc_wcrtomb
++_nc_wgetch
++_nc_wrap_entry
++_nc_write_entry
++_traceattr
++_traceattr2
++_tracecchar_t
++_tracecchar_t2
++_tracechar
++_tracechtype
++_tracechtype2
++_tracedump
++_tracef
++_tracemouse
++add_wch
++add_wchnstr
++add_wchstr
++addch
++addchnstr
++addchstr
++addnstr
++addnwstr
++addstr
++addwstr
++assume_default_colors
++assume_default_colors_sp
++attr_get
++attr_off
++attr_on
++attr_set
++attroff
++attron
++attrset
++baudrate
++baudrate_sp
++beep
++beep_sp
++bkgd
++bkgdset
++bkgrnd
++bkgrndset
++border
++border_set
++bottom_panel
++box
++box_set
++can_change_color
++can_change_color_sp
++cbreak
++cbreak_sp
++ceiling_panel
++chgat
++clear
++clearok
++clrtobot
++clrtoeol
++color_content
++color_content_sp
++color_set
++copywin
++current_field
++current_item
++curs_set
++curs_set_sp
++curses_version
++data_ahead
++data_behind
++def_prog_mode
++def_prog_mode_sp
++def_shell_mode
++def_shell_mode_sp
++define_key
++define_key_sp
++del_curterm
++del_curterm_sp
++del_panel
++delay_output
++delay_output_sp
++delch
++deleteln
++delscreen
++delwin
++derwin
++doupdate
++doupdate_sp
++dup_field
++dupwin
++dynamic_field_info
++echo
++echo_sp
++echo_wchar
++echochar
++endwin
++endwin_sp
++erase
++erasechar
++erasechar_sp
++erasewchar
++field_arg
++field_back
++field_buffer
++field_count
++field_fore
++field_index
++field_info
++field_init
++field_just
++field_opts
++field_opts_off
++field_opts_on
++field_pad
++field_status
++field_term
++field_type
++field_userptr
++filter
++filter_sp
++flash
++flash_sp
++flushinp
++flushinp_sp
++form_driver
++form_driver_w
++form_fields
++form_init
++form_opts
++form_opts_off
++form_opts_on
++form_page
++form_request_by_name
++form_request_name
++form_sub
++form_term
++form_userptr
++form_win
++free_field
++free_fieldtype
++free_form
++free_item
++free_menu
++get_escdelay
++get_escdelay_sp
++get_wch
++get_wstr
++getattrs
++getbegx
++getbegy
++getbkgd
++getbkgrnd
++getcchar
++getch
++getcurx
++getcury
++getmaxx
++getmaxy
++getmouse
++getmouse_sp
++getn_wstr
++getnstr
++getparx
++getpary
++getstr
++getwin
++getwin_sp
++ground_panel
++halfdelay
++halfdelay_sp
++has_colors
++has_colors_sp
++has_ic
++has_ic_sp
++has_il
++has_il_sp
++has_key
++has_key_sp
++has_mouse
++has_mouse_sp
++hide_panel
++hline
++hline_set
++idcok
++idlok
++immedok
++in_wch
++in_wchnstr
++in_wchstr
++inch
++inchnstr
++inchstr
++init_color
++init_color_sp
++init_pair
++init_pair_sp
++initscr
++innstr
++innwstr
++ins_nwstr
++ins_wch
++ins_wstr
++insch
++insdelln
++insertln
++insnstr
++insstr
++instr
++intrflush
++intrflush_sp
++inwstr
++is_cleared
++is_idcok
++is_idlok
++is_immedok
++is_keypad
++is_leaveok
++is_linetouched
++is_nodelay
++is_notimeout
++is_pad
++is_scrollok
++is_subwin
++is_syncok
++is_term_resized
++is_term_resized_sp
++is_wintouched
++isendwin
++isendwin_sp
++item_count
++item_description
++item_index
++item_init
++item_name
++item_opts
++item_opts_off
++item_opts_on
++item_term
++item_userptr
++item_value
++item_visible
++key_defined
++key_defined_sp
++key_name
++keybound
++keybound_sp
++keyname
++keyname_sp
++keyok
++keyok_sp
++keypad
++killchar
++killchar_sp
++killwchar
++leaveok
++link_field
++link_fieldtype
++longname
++longname_sp
++mcprint
++mcprint_sp
++menu_back
++menu_driver
++menu_fore
++menu_format
++menu_grey
++menu_init
++menu_items
++menu_mark
++menu_opts
++menu_opts_off
++menu_opts_on
++menu_pad
++menu_pattern
++menu_request_by_name
++menu_request_name
++menu_spacing
++menu_sub
++menu_term
++menu_userptr
++menu_win
++meta
++mouse_trafo
++mouseinterval
++mouseinterval_sp
++mousemask
++mousemask_sp
++move
++move_field
++move_panel
++mvadd_wch
++mvadd_wchnstr
++mvadd_wchstr
++mvaddch
++mvaddchnstr
++mvaddchstr
++mvaddnstr
++mvaddnwstr
++mvaddstr
++mvaddwstr
++mvchgat
++mvcur
++mvcur_sp
++mvdelch
++mvderwin
++mvget_wch
++mvget_wstr
++mvgetch
++mvgetn_wstr
++mvgetnstr
++mvgetstr
++mvhline
++mvhline_set
++mvin_wch
++mvin_wchnstr
++mvin_wchstr
++mvinch
++mvinchnstr
++mvinchstr
++mvinnstr
++mvinnwstr
++mvins_nwstr
++mvins_wch
++mvins_wstr
++mvinsch
++mvinsnstr
++mvinsstr
++mvinstr
++mvinwstr
++mvprintw
++mvscanw
++mvvline
++mvvline_set
++mvwadd_wch
++mvwadd_wchnstr
++mvwadd_wchstr
++mvwaddch
++mvwaddchnstr
++mvwaddchstr
++mvwaddnstr
++mvwaddnwstr
++mvwaddstr
++mvwaddwstr
++mvwchgat
++mvwdelch
++mvwget_wch
++mvwget_wstr
++mvwgetch
++mvwgetn_wstr
++mvwgetnstr
++mvwgetstr
++mvwhline
++mvwhline_set
++mvwin
++mvwin_wch
++mvwin_wchnstr
++mvwin_wchstr
++mvwinch
++mvwinchnstr
++mvwinchstr
++mvwinnstr
++mvwinnwstr
++mvwins_nwstr
++mvwins_wch
++mvwins_wstr
++mvwinsch
++mvwinsnstr
++mvwinsstr
++mvwinstr
++mvwinwstr
++mvwprintw
++mvwscanw
++mvwvline
++mvwvline_set
++napms
++napms_sp
++new_field
++new_fieldtype
++new_form
++new_form_sp
++new_item
++new_menu
++new_menu_sp
++new_page
++new_panel
++new_prescr
++newpad
++newpad_sp
++newterm
++newterm_sp
++newwin
++newwin_sp
++nl
++nl_sp
++nocbreak
++nocbreak_sp
++nodelay
++noecho
++noecho_sp
++nofilter
++nofilter_sp
++nonl
++nonl_sp
++noqiflush
++noqiflush_sp
++noraw
++noraw_sp
++notimeout
++ospeed
++overlay
++overwrite
++pair_content
++pair_content_sp
++panel_above
++panel_below
++panel_hidden
++panel_userptr
++panel_window
++pecho_wchar
++pechochar
++pnoutrefresh
++pos_form_cursor
++pos_menu_cursor
++post_form
++post_menu
++prefresh
++printw
++putp
++putp_sp
++putwin
++qiflush
++qiflush_sp
++raw
++raw_sp
++redrawwin
++refresh
++replace_panel
++reset_prog_mode
++reset_prog_mode_sp
++reset_shell_mode
++reset_shell_mode_sp
++resetty
++resetty_sp
++resize_term
++resize_term_sp
++resizeterm
++resizeterm_sp
++restartterm
++restartterm_sp
++ripoffline
++ripoffline_sp
++savetty
++savetty_sp
++scale_form
++scale_menu
++scanw
++scr_dump
++scr_init
++scr_init_sp
++scr_restore
++scr_restore_sp
++scr_set
++scr_set_sp
++scrl
++scroll
++scrollok
++set_current_field
++set_current_item
++set_curterm
++set_curterm_sp
++set_escdelay
++set_escdelay_sp
++set_field_back
++set_field_buffer
++set_field_fore
++set_field_init
++set_field_just
++set_field_opts
++set_field_pad
++set_field_status
++set_field_term
++set_field_type
++set_field_userptr
++set_fieldtype_arg
++set_fieldtype_choice
++set_form_fields
++set_form_init
++set_form_opts
++set_form_page
++set_form_sub
++set_form_term
++set_form_userptr
++set_form_win
++set_item_init
++set_item_opts
++set_item_term
++set_item_userptr
++set_item_value
++set_max_field
++set_menu_back
++set_menu_fore
++set_menu_format
++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
++set_menu_term
++set_menu_userptr
++set_menu_win
++set_new_page
++set_panel_userptr
++set_tabsize
++set_tabsize_sp
++set_term
++set_top_row
++setcchar
++setscrreg
++setupterm
++show_panel
++slk_attr
++slk_attr_off
++slk_attr_on
++slk_attr_set
++slk_attr_set_sp
++slk_attr_sp
++slk_attroff
++slk_attroff_sp
++slk_attron
++slk_attron_sp
++slk_attrset
++slk_attrset_sp
++slk_clear
++slk_clear_sp
++slk_color
++slk_color_sp
++slk_init
++slk_init_sp
++slk_label
++slk_label_sp
++slk_noutrefresh
++slk_noutrefresh_sp
++slk_refresh
++slk_refresh_sp
++slk_restore
++slk_restore_sp
++slk_set
++slk_set_sp
++slk_touch
++slk_touch_sp
++slk_wset
++standend
++standout
++start_color
++start_color_sp
++subpad
++subwin
++syncok
++term_attrs
++term_attrs_sp
++termattrs
++termattrs_sp
++termname
++termname_sp
++tgetent
++tgetent_sp
++tgetflag
++tgetflag_sp
++tgetnum
++tgetnum_sp
++tgetstr
++tgetstr_sp
++tgoto
++tigetflag
++tigetflag_sp
++tigetnum
++tigetnum_sp
++tigetstr
++tigetstr_sp
++timeout
++tiparm
++top_panel
++top_row
++touchline
++touchwin
++tparm
++tputs
++tputs_sp
++trace
++typeahead
++typeahead_sp
++unctrl
++unctrl_sp
++unget_wch
++unget_wch_sp
++ungetch
++ungetch_sp
++ungetmouse
++ungetmouse_sp
++unpost_form
++unpost_menu
++untouchwin
++update_panels
++update_panels_sp
++use_default_colors
++use_default_colors_sp
++use_env
++use_env_sp
++use_extended_names
++use_legacy_coding
++use_legacy_coding_sp
++use_screen
++use_tioctl
++use_tioctl_sp
++use_window
++vid_attr
++vid_attr_sp
++vid_puts
++vid_puts_sp
++vidattr
++vidattr_sp
++vidputs
++vidputs_sp
++vline
++vline_set
++vw_printw
++vw_scanw
++vwprintw
++vwscanw
++wadd_wch
++wadd_wchnstr
++wadd_wchstr
++waddch
++waddchnstr
++waddchstr
++waddnstr
++waddnwstr
++waddstr
++waddwstr
++wattr_get
++wattr_off
++wattr_on
++wattr_set
++wattroff
++wattron
++wattrset
++wbkgd
++wbkgdset
++wbkgrnd
++wbkgrndset
++wborder
++wborder_set
++wchgat
++wclear
++wclrtobot
++wclrtoeol
++wcolor_set
++wcursyncup
++wdelch
++wdeleteln
++wecho_wchar
++wechochar
++wenclose
++werase
++wget_wch
++wget_wstr
++wgetbkgrnd
++wgetch
++wgetch_events
++wgetdelay
++wgetn_wstr
++wgetnstr
++wgetnstr_events
++wgetparent
++wgetscrreg
++wgetstr
++whline
++whline_set
++win_wch
++win_wchnstr
++win_wchstr
++winch
++winchnstr
++winchstr
++winnstr
++winnwstr
++wins_nwstr
++wins_wch
++wins_wstr
++winsch
++winsdelln
++winsertln
++winsnstr
++winsstr
++winstr
++winwstr
++wmouse_trafo
++wmove
++wnoutrefresh
++wprintw
++wredrawln
++wrefresh
++wresize
++wscanw
++wscrl
++wsetscrreg
++wstandend
++wstandout
++wsyncdown
++wsyncup
++wtimeout
++wtouchln
++wunctrl
++wunctrl_sp
++wvline
++wvline_set
+Index: package/ncursesw.map
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncursesw.map 2014-12-06 22:59:11.000000000 +0000
+@@ -0,0 +1,1220 @@
++# $Id: ncursesw.map,v 1.22 2014/12/06 22:59:11 tom Exp $
++# script for shared library symbol-versioning using ld
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 5 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --enable-widec
++# --verbose
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++#
++
++NCURSES_TIC_5.0.19991023 {
++ global:
++ _nc_capcmp;
++ _nc_check_termtype;
++ _nc_entry_match;
++ _nc_find_type_entry;
++ _nc_get_table;
++ _nc_infotocap;
++ _nc_read_entry_source;
++ _nc_reset_input;
++ _nc_resolve_uses;
++ _nc_set_writedir;
++ _nc_syntax;
++ _nc_tic_expand;
++ _nc_tic_written;
++ _nc_trans_string;
++ _nc_write_entry;
++ local:
++ _nc_captoinfo;
++ _nc_comment_end;
++ _nc_comment_start;
++ _nc_copy_entry;
++ _nc_curr_file_pos;
++ _nc_curr_token;
++ _nc_get_token;
++ _nc_init_entry;
++ _nc_merge_entry;
++ _nc_panic_mode;
++ _nc_parse_entry;
++ _nc_push_token;
++ _nc_save_str;
++ _nc_start_line;
++ _nc_wrap_entry;
++};
++
++NCURSES_TIC_5.1.20000708 {
++ global:
++ _nc_disable_period;
++} NCURSES_TIC_5.0.19991023;
++
++NCURSES_TIC_5.5.20051010 {
++ global:
++ _nc_alloc_entry_leaks;
++ _nc_captoinfo_leaks;
++ _nc_check_termtype2;
++ _nc_comp_scan_leaks;
++ _nc_resolve_uses2;
++} NCURSES_TIC_5.1.20000708;
++
++NCURSES_TIC_5.7.20081102 {
++ global:
++ _nc_free_tic;
++ _nc_get_alias_table;
++ local:
++ _nc_comp_captab_leaks;
++ _nc_leaks_tic;
++} NCURSES_TIC_5.5.20051010;
++
++NCURSES_TIC_5.9.current {
++ global:
++ _nc_strict_bsd;
++} NCURSES_TIC_5.7.20081102;
++
++NCURSES_TINFO_5.0.19991023 {
++ global:
++ BC;
++ COLS;
++ LINES;
++ PC;
++ SP;
++ TABSIZE;
++ UP;
++ _nc_access;
++ _nc_add_to_try;
++ _nc_copy_termtype;
++ _nc_curr_col;
++ _nc_curr_line;
++ _nc_doalloc;
++ _nc_err_abort;
++ _nc_fallback;
++ _nc_find_entry;
++ _nc_first_name;
++ _nc_free_entries;
++ _nc_free_termtype;
++ _nc_free_tparm;
++ _nc_get_hash_table;
++ _nc_get_tty_mode;
++ _nc_get_type;
++ _nc_getenv_num;
++ _nc_head;
++ _nc_home_terminfo;
++ _nc_info_hash_table;
++ _nc_init_acs;
++ _nc_keep_tic_dir;
++ _nc_keypad;
++ _nc_name_match;
++ _nc_outch;
++ _nc_read_entry;
++ _nc_read_file_entry;
++ _nc_screen_chain;
++ _nc_set_buffer;
++ _nc_set_source;
++ _nc_set_tty_mode;
++ _nc_set_type;
++ _nc_suppress_warnings;
++ _nc_syserr_abort;
++ _nc_tail;
++ _nc_tic_dir;
++ _nc_timed_wait;
++ _nc_trace_buf;
++ _nc_tracing;
++ _nc_update_screensize;
++ _nc_visbuf;
++ _nc_visbuf2;
++ _nc_warning;
++ _tracechar;
++ acs_map;
++ baudrate;
++ boolcodes;
++ boolfnames;
++ boolnames;
++ cbreak;
++ cur_term;
++ curs_set;
++ curscr;
++ curses_version;
++ def_prog_mode;
++ def_shell_mode;
++ define_key;
++ del_curterm;
++ delay_output;
++ erasechar;
++ flushinp;
++ halfdelay;
++ has_ic;
++ has_il;
++ has_key;
++ idcok;
++ idlok;
++ intrflush;
++ keybound;
++ keyname;
++ keyok;
++ keypad;
++ killchar;
++ longname;
++ meta;
++ napms;
++ newscr;
++ nocbreak;
++ nodelay;
++ noqiflush;
++ noraw;
++ notimeout;
++ numcodes;
++ numfnames;
++ numnames;
++ ospeed;
++ putp;
++ qiflush;
++ raw;
++ reset_prog_mode;
++ reset_shell_mode;
++ resetty;
++ savetty;
++ set_curterm;
++ setupterm;
++ stdscr;
++ strcodes;
++ strfnames;
++ strnames;
++ termname;
++ tgetent;
++ tgetflag;
++ tgetnum;
++ tgetstr;
++ tgoto;
++ tigetflag;
++ tigetnum;
++ tigetstr;
++ tparm;
++ tputs;
++ trace;
++ ttytype;
++ typeahead;
++ unctrl;
++ use_env;
++ wtimeout;
++ local:
++ _nc_baudrate;
++ _nc_cap_hash_table;
++ _nc_capalias_table;
++ _nc_expand_try;
++ _nc_infoalias_table;
++ _nc_init_keytry;
++ _nc_key_names;
++ _nc_nulls_sent;
++ _nc_ospeed;
++ _nc_read_termcap;
++ _nc_read_termcap_entry;
++ _nc_remove_key;
++ _nc_remove_string;
++ _nc_trace_tries;
++ _nc_tracebits;
++};
++
++NCURSES_TINFO_5.1.20000708 {
++ global:
++ _nc_align_termtype;
++ _nc_flush;
++ _nc_tinfo_fkeys;
++ _nc_user_definable;
++ _nc_utf8_outch;
++ use_extended_names;
++} NCURSES_TINFO_5.0.19991023;
++
++NCURSES_TINFO_5.2.20001021 {
++ global:
++ _nc_basename;
++ _nc_env_access;
++ _nc_safe_strcat;
++ _nc_safe_strcpy;
++ _nc_str_copy;
++ _nc_str_init;
++ _nc_str_null;
++} NCURSES_TINFO_5.1.20000708;
++
++NCURSES_TINFO_5.3.20021019 {
++ global:
++ _nc_rootname;
++ _nc_tparm_err;
++ _nc_visbufn;
++} NCURSES_TINFO_5.2.20001021;
++
++NCURSES_TINFO_5.4.20040208 {
++ global:
++ _nc_altcharset_name;
++ _nc_get_locale;
++ _nc_locale_breaks_acs;
++ _nc_outchars;
++ _nc_pathlast;
++ _nc_retrace_attr_t;
++ _nc_retrace_bool;
++ _nc_retrace_chtype;
++ _nc_retrace_int;
++ _nc_retrace_ptr;
++ _nc_retrace_sp;
++ _nc_retrace_unsigned;
++ _nc_retrace_win;
++ _nc_tparm_analyze;
++ _nc_tputs_trace;
++ _nc_trace_bufcat;
++ _nc_unicode_locale;
++ _nc_viswbuf;
++ _nc_viswbufn;
++ _traceattr;
++ _traceattr2;
++ _tracecchar_t;
++ _tracecchar_t2;
++ _tracechtype;
++ _tracechtype2;
++ _tracef;
++ key_defined;
++ local:
++ _nc_trace_ttymode;
++ _nc_viswbuf2;
++} NCURSES_TINFO_5.3.20021019;
++
++NCURSES_TINFO_5.5.20051010 {
++ global:
++ _nc_get_source;
++ _nc_retrace_cptr;
++ _nc_retrace_cvoid_ptr;
++ _nc_retrace_void_ptr;
++ _nc_setupterm;
++ _nc_trim_sgr0;
++ _nc_viswibuf;
++ local:
++ _nc_delink_entry;
++ _nc_free_entry;
++} NCURSES_TINFO_5.4.20040208;
++
++NCURSES_TINFO_5.6.20061217 {
++ global:
++ _nc_eventlist_timeout;
++ _nc_first_db;
++ _nc_handle_sigwinch;
++ _nc_is_abs_path;
++ _nc_is_dir_path;
++ _nc_is_file_path;
++ _nc_keyname_leaks;
++ _nc_last_db;
++ _nc_next_db;
++ _nc_tgetent_leaks;
++ _nc_viscbuf;
++ local:
++ _nc_hashed_db;
++ _nc_read_termtype;
++ _nc_viscbuf2;
++} NCURSES_TINFO_5.5.20051010;
++
++NCURSES_TINFO_5.7.20081102 {
++ global:
++ _nc_free_tinfo;
++ _nc_get_screensize;
++ _nc_globals;
++ _nc_leaks_tinfo;
++ _nc_prescreen;
++ _nc_screen_of;
++ _nc_set_no_padding;
++ _nc_tracechar;
++ set_tabsize;
++ local:
++ _nc_keyname;
++ _nc_unctrl;
++} NCURSES_TINFO_5.6.20061217;
++
++NCURSES_TINFO_5.8.20110226 {
++ global:
++ _nc_flush_sp;
++ _nc_get_tty_mode_sp;
++ _nc_init_acs_sp;
++ _nc_outc_wrapper;
++ _nc_outch_sp;
++ _nc_putp;
++ _nc_putp_flush;
++ _nc_putp_flush_sp;
++ _nc_putp_sp;
++ _nc_retrace_int_attr_t;
++ _nc_set_buffer_sp;
++ _nc_set_tty_mode_sp;
++ baudrate_sp;
++ cbreak_sp;
++ curs_set_sp;
++ def_prog_mode_sp;
++ def_shell_mode_sp;
++ define_key_sp;
++ del_curterm_sp;
++ delay_output_sp;
++ erasechar_sp;
++ flushinp_sp;
++ halfdelay_sp;
++ has_ic_sp;
++ has_il_sp;
++ has_key_sp;
++ intrflush_sp;
++ key_defined_sp;
++ keybound_sp;
++ keyname_sp;
++ keyok_sp;
++ killchar_sp;
++ napms_sp;
++ new_prescr;
++ nocbreak_sp;
++ noqiflush_sp;
++ noraw_sp;
++ putp_sp;
++ qiflush_sp;
++ raw_sp;
++ reset_prog_mode_sp;
++ reset_shell_mode_sp;
++ resetty_sp;
++ savetty_sp;
++ set_curterm_sp;
++ set_tabsize_sp;
++ termname_sp;
++ tgetent_sp;
++ tgetflag_sp;
++ tgetnum_sp;
++ tgetstr_sp;
++ tigetflag_sp;
++ tigetnum_sp;
++ tigetstr_sp;
++ tiparm;
++ tputs_sp;
++ typeahead_sp;
++ unctrl_sp;
++ use_env_sp;
++ local:
++ _nc_get_hash_info;
++ _nc_retrace_char;
++ _nc_setup_tinfo;
++ _nc_tinfo_cmdch;
++} NCURSES_TINFO_5.7.20081102;
++
++NCURSES_TINFO_5.9.current {
++ global:
++ _nc_init_termtype;
++ _nc_putchar;
++ _nc_putchar_sp;
++ use_tioctl;
++ use_tioctl_sp;
++ local:
++ _nc_comp_error_leaks;
++ _nc_db_iterator_leaks;
++ _nc_setenv_num;
++} NCURSES_TINFO_5.8.20110226;
++
++NCURSESW_5.1.20000708 {
++ global:
++ COLORS;
++ COLOR_PAIR;
++ COLOR_PAIRS;
++ ESCDELAY;
++ PAIR_NUMBER;
++ TYPE_ALNUM;
++ TYPE_ALPHA;
++ TYPE_ENUM;
++ TYPE_INTEGER;
++ TYPE_IPV4;
++ TYPE_NUMERIC;
++ TYPE_REGEXP;
++ _nc_free_and_exit;
++ _nc_panelhook;
++ _nc_ripoffline;
++ addch;
++ addchnstr;
++ addchstr;
++ addnstr;
++ addstr;
++ assume_default_colors;
++ attr_get;
++ attr_off;
++ attr_on;
++ attr_set;
++ attroff;
++ attron;
++ attrset;
++ beep;
++ bkgd;
++ bkgdset;
++ border;
++ bottom_panel;
++ box;
++ can_change_color;
++ chgat;
++ clear;
++ clearok;
++ clrtobot;
++ clrtoeol;
++ color_content;
++ color_set;
++ copywin;
++ current_field;
++ current_item;
++ data_ahead;
++ data_behind;
++ del_panel;
++ delch;
++ deleteln;
++ delscreen;
++ delwin;
++ derwin;
++ doupdate;
++ dup_field;
++ dupwin;
++ dynamic_field_info;
++ echo;
++ echochar;
++ endwin;
++ erase;
++ field_arg;
++ field_back;
++ field_buffer;
++ field_count;
++ field_fore;
++ field_index;
++ field_info;
++ field_init;
++ field_just;
++ field_opts;
++ field_opts_off;
++ field_opts_on;
++ field_pad;
++ field_status;
++ field_term;
++ field_type;
++ field_userptr;
++ filter;
++ flash;
++ form_driver;
++ form_fields;
++ form_init;
++ form_opts;
++ form_opts_off;
++ form_opts_on;
++ form_page;
++ form_request_by_name;
++ form_request_name;
++ form_sub;
++ form_term;
++ form_userptr;
++ form_win;
++ free_field;
++ free_fieldtype;
++ free_form;
++ free_item;
++ free_menu;
++ getbkgd;
++ getch;
++ getmouse;
++ getnstr;
++ getstr;
++ getwin;
++ has_colors;
++ hide_panel;
++ hline;
++ immedok;
++ inch;
++ inchnstr;
++ inchstr;
++ init_color;
++ init_pair;
++ initscr;
++ innstr;
++ insch;
++ insdelln;
++ insertln;
++ insnstr;
++ insstr;
++ instr;
++ is_linetouched;
++ is_wintouched;
++ isendwin;
++ item_count;
++ item_description;
++ item_index;
++ item_init;
++ item_name;
++ item_opts;
++ item_opts_off;
++ item_opts_on;
++ item_term;
++ item_userptr;
++ item_value;
++ item_visible;
++ leaveok;
++ link_field;
++ link_fieldtype;
++ mcprint;
++ menu_back;
++ menu_driver;
++ menu_fore;
++ menu_format;
++ menu_grey;
++ menu_init;
++ menu_items;
++ menu_mark;
++ menu_opts;
++ menu_opts_off;
++ menu_opts_on;
++ menu_pad;
++ menu_pattern;
++ menu_request_by_name;
++ menu_request_name;
++ menu_spacing;
++ menu_sub;
++ menu_term;
++ menu_userptr;
++ menu_win;
++ mouse_trafo;
++ mouseinterval;
++ mousemask;
++ move;
++ move_field;
++ move_panel;
++ mvaddch;
++ mvaddchnstr;
++ mvaddchstr;
++ mvaddnstr;
++ mvaddstr;
++ mvchgat;
++ mvcur;
++ mvdelch;
++ mvderwin;
++ mvgetch;
++ mvgetnstr;
++ mvgetstr;
++ mvhline;
++ mvinch;
++ mvinchnstr;
++ mvinchstr;
++ mvinnstr;
++ mvinsch;
++ mvinsnstr;
++ mvinsstr;
++ mvinstr;
++ mvprintw;
++ mvscanw;
++ mvvline;
++ mvwaddch;
++ mvwaddchnstr;
++ mvwaddchstr;
++ mvwaddnstr;
++ mvwaddstr;
++ mvwchgat;
++ mvwdelch;
++ mvwgetch;
++ mvwgetnstr;
++ mvwgetstr;
++ mvwhline;
++ mvwin;
++ mvwinch;
++ mvwinchnstr;
++ mvwinchstr;
++ mvwinnstr;
++ mvwinsch;
++ mvwinsnstr;
++ mvwinsstr;
++ mvwinstr;
++ mvwprintw;
++ mvwscanw;
++ mvwvline;
++ new_field;
++ new_fieldtype;
++ new_form;
++ new_item;
++ new_menu;
++ new_page;
++ new_panel;
++ newpad;
++ newterm;
++ newwin;
++ nl;
++ noecho;
++ nonl;
++ overlay;
++ overwrite;
++ pair_content;
++ panel_above;
++ panel_below;
++ panel_hidden;
++ panel_userptr;
++ panel_window;
++ pechochar;
++ pnoutrefresh;
++ pos_form_cursor;
++ pos_menu_cursor;
++ post_form;
++ post_menu;
++ prefresh;
++ printw;
++ putwin;
++ redrawwin;
++ refresh;
++ replace_panel;
++ resizeterm;
++ restartterm;
++ ripoffline;
++ scale_form;
++ scale_menu;
++ scanw;
++ scr_dump;
++ scr_init;
++ scr_restore;
++ scr_set;
++ scrl;
++ scroll;
++ scrollok;
++ set_current_field;
++ set_current_item;
++ set_field_back;
++ set_field_buffer;
++ set_field_fore;
++ set_field_init;
++ set_field_just;
++ set_field_opts;
++ set_field_pad;
++ set_field_status;
++ set_field_term;
++ set_field_type;
++ set_field_userptr;
++ set_fieldtype_arg;
++ set_fieldtype_choice;
++ set_form_fields;
++ set_form_init;
++ set_form_opts;
++ set_form_page;
++ set_form_sub;
++ set_form_term;
++ set_form_userptr;
++ set_form_win;
++ set_item_init;
++ set_item_opts;
++ set_item_term;
++ set_item_userptr;
++ set_item_value;
++ set_max_field;
++ set_menu_back;
++ set_menu_fore;
++ set_menu_format;
++ 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;
++ set_menu_term;
++ set_menu_userptr;
++ set_menu_win;
++ set_new_page;
++ set_panel_userptr;
++ set_term;
++ set_top_row;
++ setscrreg;
++ show_panel;
++ slk_attr;
++ slk_attr_off;
++ slk_attr_on;
++ slk_attr_set;
++ slk_attroff;
++ slk_attron;
++ slk_attrset;
++ slk_clear;
++ slk_color;
++ slk_init;
++ slk_label;
++ slk_noutrefresh;
++ slk_refresh;
++ slk_restore;
++ slk_set;
++ slk_touch;
++ standend;
++ standout;
++ start_color;
++ subpad;
++ subwin;
++ syncok;
++ termattrs;
++ timeout;
++ top_panel;
++ top_row;
++ touchline;
++ touchwin;
++ ungetch;
++ ungetmouse;
++ unpost_form;
++ unpost_menu;
++ untouchwin;
++ update_panels;
++ use_default_colors;
++ vid_attr;
++ vidattr;
++ vidputs;
++ vline;
++ vw_printw;
++ vw_scanw;
++ vwprintw;
++ vwscanw;
++ waddch;
++ waddchnstr;
++ waddchstr;
++ waddnstr;
++ waddstr;
++ wattr_get;
++ wattr_off;
++ wattr_on;
++ wattr_set;
++ wattroff;
++ wattron;
++ wattrset;
++ wbkgd;
++ wbkgdset;
++ wborder;
++ wchgat;
++ wclear;
++ wclrtobot;
++ wclrtoeol;
++ wcolor_set;
++ wcursyncup;
++ wdelch;
++ wdeleteln;
++ wechochar;
++ wenclose;
++ werase;
++ wgetch;
++ wgetnstr;
++ wgetstr;
++ whline;
++ winch;
++ winchnstr;
++ winchstr;
++ winnstr;
++ winsch;
++ winsdelln;
++ winsertln;
++ winsnstr;
++ winsstr;
++ winstr;
++ wmouse_trafo;
++ wmove;
++ wnoutrefresh;
++ wprintw;
++ wredrawln;
++ wrefresh;
++ wresize;
++ wscanw;
++ wscrl;
++ wsetscrreg;
++ wstandend;
++ wstandout;
++ wsyncdown;
++ wsyncup;
++ wtouchln;
++ wvline;
++ local:
++ _nc_Calculate_Item_Length_and_Width;
++ _nc_Connect_Items;
++ _nc_Copy_Argument;
++ _nc_Copy_Type;
++ _nc_Default_Field;
++ _nc_Default_FieldType;
++ _nc_Default_Form;
++ _nc_Default_Item;
++ _nc_Default_Menu;
++ _nc_Disconnect_Items;
++ _nc_Draw_Menu;
++ _nc_First_Active_Field;
++ _nc_Free_Argument;
++ _nc_Free_Type;
++ _nc_Internal_Validation;
++ _nc_Link_Items;
++ _nc_Make_Argument;
++ _nc_Match_Next_Character_In_Item_Name;
++ _nc_New_TopRow_and_CurrentItem;
++ _nc_Position_Form_Cursor;
++ _nc_Post_Item;
++ _nc_Refresh_Current_Field;
++ _nc_Set_Current_Field;
++ _nc_Set_Form_Page;
++ _nc_Show_Menu;
++ _nc_Synchronize_Attributes;
++ _nc_Synchronize_Options;
++ _nc_background;
++ _nc_do_color;
++ _nc_expanded;
++ _nc_freeall;
++ _nc_freewin;
++ _nc_has_mouse;
++ _nc_hash_map;
++ _nc_make_oldhash;
++ _nc_makenew;
++ _nc_memmove;
++ _nc_menu_cursor_pos;
++ _nc_msec_cost;
++ _nc_mvcur_init;
++ _nc_mvcur_resume;
++ _nc_mvcur_wrap;
++ _nc_oldnums;
++ _nc_outstr;
++ _nc_printf_string;
++ _nc_render;
++ _nc_screen_init;
++ _nc_screen_resume;
++ _nc_screen_wrap;
++ _nc_scroll_oldhash;
++ _nc_scroll_optimize;
++ _nc_scroll_window;
++ _nc_scrolln;
++ _nc_setupscreen;
++ _nc_sigaction;
++ _nc_signal_handler;
++ _nc_slk_format;
++ _nc_slk_initialize;
++ _nc_synchook;
++ _nc_vsscanf;
++ _nc_waddch_nosync;
++};
++
++NCURSESW_5.3.20021019 {
++ global:
++ _nc_wacs;
++ _nc_wchstrlen;
++ add_wch;
++ add_wchnstr;
++ add_wchstr;
++ addnwstr;
++ addwstr;
++ bkgrnd;
++ bkgrndset;
++ border_set;
++ box_set;
++ echo_wchar;
++ erasewchar;
++ get_wch;
++ get_wstr;
++ getbkgrnd;
++ getcchar;
++ getn_wstr;
++ hline_set;
++ in_wch;
++ in_wchnstr;
++ in_wchstr;
++ innwstr;
++ ins_nwstr;
++ ins_wch;
++ ins_wstr;
++ inwstr;
++ is_term_resized;
++ key_name;
++ killwchar;
++ mvadd_wch;
++ mvadd_wchnstr;
++ mvadd_wchstr;
++ mvaddnwstr;
++ mvaddwstr;
++ mvget_wch;
++ mvget_wstr;
++ mvgetn_wstr;
++ mvhline_set;
++ mvin_wch;
++ mvin_wchnstr;
++ mvin_wchstr;
++ mvinnwstr;
++ mvins_nwstr;
++ mvins_wch;
++ mvins_wstr;
++ mvinwstr;
++ mvvline_set;
++ mvwadd_wch;
++ mvwadd_wchnstr;
++ mvwadd_wchstr;
++ mvwaddnwstr;
++ mvwaddwstr;
++ mvwget_wch;
++ mvwget_wstr;
++ mvwgetn_wstr;
++ mvwhline_set;
++ mvwin_wch;
++ mvwin_wchnstr;
++ mvwin_wchstr;
++ mvwinnwstr;
++ mvwins_nwstr;
++ mvwins_wch;
++ mvwins_wstr;
++ mvwinwstr;
++ mvwvline_set;
++ resize_term;
++ setcchar;
++ term_attrs;
++ unget_wch;
++ vid_puts;
++ vline_set;
++ wadd_wch;
++ wadd_wchnstr;
++ wadd_wchstr;
++ waddnwstr;
++ waddwstr;
++ wbkgrnd;
++ wbkgrndset;
++ wborder_set;
++ wecho_wchar;
++ wget_wch;
++ wget_wstr;
++ wgetn_wstr;
++ whline_set;
++ win_wch;
++ win_wchnstr;
++ win_wchstr;
++ winnwstr;
++ wins_nwstr;
++ wins_wch;
++ wins_wstr;
++ winwstr;
++ wunctrl;
++ wvline_set;
++ local:
++ _nc_init_wacs;
++ _nc_reset_colors;
++ _nc_varargs;
++ _nc_wgetch;
++} NCURSESW_5.1.20000708;
++
++NCURSESW_5.4.20040208 {
++ global:
++ _nc_optimize_enable;
++ pecho_wchar;
++ slk_wset;
++ local:
++ _nc_Touchline;
++ _nc_Touchpan;
++ _nc_Wnoutrefresh;
++ _nc_dPanel;
++ _nc_dStack;
++ _nc_fifo_dump;
++ _nc_insert_ch;
++ _nc_is_charable;
++ _nc_linedump;
++ _nc_my_visbuf;
++ _nc_to_char;
++ _nc_to_widechar;
++ _nc_trace_xnames;
++ _tracedump;
++ _tracemouse;
++} NCURSESW_5.3.20021019;
++
++NCURSESW_5.5.20051010 {
++ global:
++ _nc_wcrtomb;
++ local:
++ _nc_Calculate_Text_Width;
++ _nc_Widen_String;
++ _nc_build_wch;
++ _nc_retrace_field;
++ _nc_retrace_field_ptr;
++ _nc_retrace_field_type;
++ _nc_retrace_form;
++ _nc_retrace_form_hook;
++ _nc_retrace_item;
++ _nc_retrace_item_opts;
++ _nc_retrace_item_ptr;
++ _nc_retrace_menu;
++ _nc_retrace_menu_hook;
++ _nc_retrace_menu_opts;
++ _nc_retrace_panel;
++} NCURSESW_5.4.20040208;
++
++NCURSESW_5.6.20061217 {
++ global:
++ getbegx;
++ getbegy;
++ getcurx;
++ getcury;
++ getmaxx;
++ getmaxy;
++ getparx;
++ getpary;
++ nofilter;
++ use_legacy_coding;
++ wgetbkgrnd;
++ wgetch_events;
++ wgetnstr_events;
++} NCURSESW_5.5.20051010;
++
++NCURSESW_5.7.20081102 {
++ global:
++ getattrs;
++ is_cleared;
++ is_idcok;
++ is_idlok;
++ is_immedok;
++ is_keypad;
++ is_leaveok;
++ is_nodelay;
++ is_notimeout;
++ is_scrollok;
++ is_syncok;
++ set_escdelay;
++ use_screen;
++ use_window;
++ wgetparent;
++ wgetscrreg;
++ local:
++ _nc_tracemouse;
++ _nc_ungetch;
++} NCURSESW_5.6.20061217;
++
++NCURSESW_5.8.20110226 {
++ global:
++ _nc_panelhook_sp;
++ assume_default_colors_sp;
++ beep_sp;
++ can_change_color_sp;
++ ceiling_panel;
++ color_content_sp;
++ doupdate_sp;
++ echo_sp;
++ endwin_sp;
++ filter_sp;
++ flash_sp;
++ get_escdelay;
++ get_escdelay_sp;
++ getmouse_sp;
++ getwin_sp;
++ ground_panel;
++ has_colors_sp;
++ has_mouse;
++ has_mouse_sp;
++ init_color_sp;
++ init_pair_sp;
++ is_pad;
++ is_subwin;
++ is_term_resized_sp;
++ isendwin_sp;
++ mcprint_sp;
++ mouseinterval_sp;
++ mousemask_sp;
++ mvcur_sp;
++ new_form_sp;
++ new_menu_sp;
++ newpad_sp;
++ newterm_sp;
++ newwin_sp;
++ nl_sp;
++ noecho_sp;
++ nofilter_sp;
++ nonl_sp;
++ pair_content_sp;
++ resize_term_sp;
++ resizeterm_sp;
++ restartterm_sp;
++ ripoffline_sp;
++ scr_init_sp;
++ scr_restore_sp;
++ scr_set_sp;
++ set_escdelay_sp;
++ slk_attr_set_sp;
++ slk_attr_sp;
++ slk_attroff_sp;
++ slk_attron_sp;
++ slk_attrset_sp;
++ slk_clear_sp;
++ slk_color_sp;
++ slk_init_sp;
++ slk_label_sp;
++ slk_noutrefresh_sp;
++ slk_refresh_sp;
++ slk_restore_sp;
++ slk_set_sp;
++ slk_touch_sp;
++ start_color_sp;
++ term_attrs_sp;
++ termattrs_sp;
++ unget_wch_sp;
++ ungetch_sp;
++ ungetmouse_sp;
++ update_panels_sp;
++ use_default_colors_sp;
++ use_legacy_coding_sp;
++ vid_attr_sp;
++ vid_puts_sp;
++ vidattr_sp;
++ vidputs_sp;
++ wunctrl_sp;
++ local:
++ _nc_TYPE_ALNUM;
++ _nc_TYPE_ALPHA;
++ _nc_TYPE_ENUM;
++ _nc_TYPE_INTEGER;
++ _nc_TYPE_IPV4;
++ _nc_TYPE_NUMERIC;
++ _nc_TYPE_REGEXP;
++ _nc_curscr_of;
++ _nc_do_color_sp;
++ _nc_form_cursor;
++ _nc_format_slks;
++ _nc_free_and_exit_sp;
++ _nc_freeall_sp;
++ _nc_fty_generic;
++ _nc_generic_fieldtype;
++ _nc_get_fieldbuffer;
++ _nc_hash_map_sp;
++ _nc_insert_wch;
++ _nc_linedump_sp;
++ _nc_make_oldhash_sp;
++ _nc_makenew_sp;
++ _nc_msec_cost_sp;
++ _nc_mvcur_init_sp;
++ _nc_mvcur_resume_sp;
++ _nc_mvcur_wrap_sp;
++ _nc_newscr_of;
++ _nc_printf_string_sp;
++ _nc_reset_colors_sp;
++ _nc_retrace_mmask_t;
++ _nc_ripoffline_sp;
++ _nc_screen_init_sp;
++ _nc_screen_resume_sp;
++ _nc_screen_wrap_sp;
++ _nc_scroll_oldhash_sp;
++ _nc_scroll_optimize_sp;
++ _nc_scrolln_sp;
++ _nc_set_generic_fieldtype;
++ _nc_setupscreen_sp;
++ _nc_stdscr_of;
++} NCURSESW_5.7.20081102;
++
++NCURSESW_5.9.current {
++ global:
++ form_driver_w;
++ wgetdelay;
++ local:
++ _nc_mvcur;
++ _nc_mvcur_sp;
++ _nc_trace_mmask_t;
++} NCURSESW_5.8.20110226;
+Index: package/ncursesw.sym
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/package/ncursesw.sym 2014-11-28 14:16:34.000000000 +0000
+@@ -0,0 +1,1111 @@
++# $Id: ncursesw.sym,v 1.13 2014/11/28 14:16:34 tom Exp $
++# script for shared library symbol-visibility using libtool
++#
++# This file was generated by ncu-mapsyms
++# Configure options (merged 5 builds):
++# 'CFLAGS=-O'
++# --disable-echo
++# --disable-getcap
++# --disable-leaks
++# --disable-root-environ
++# --disable-termcap
++# --enable-getcap
++# --enable-getcap-cache
++# --enable-hard-tabs
++# --enable-interop
++# --enable-rpath
++# --enable-sp-funcs
++# --enable-termcap
++# --enable-warnings
++# --enable-wgetch-events
++# --enable-widec
++# --verbose
++# --with-shared
++# --with-termlib
++# --with-ticlib
++# --with-trace
++# --with-warnings
++# --without-ada
++# --without-debug
++# --without-normal
++BC
++COLORS
++COLOR_PAIR
++COLOR_PAIRS
++COLS
++ESCDELAY
++LINES
++PAIR_NUMBER
++PC
++SP
++TABSIZE
++TYPE_ALNUM
++TYPE_ALPHA
++TYPE_ENUM
++TYPE_INTEGER
++TYPE_IPV4
++TYPE_NUMERIC
++TYPE_REGEXP
++UP
++_nc_Calculate_Item_Length_and_Width
++_nc_Calculate_Text_Width
++_nc_Connect_Items
++_nc_Copy_Argument
++_nc_Copy_Type
++_nc_Default_Field
++_nc_Default_FieldType
++_nc_Default_Form
++_nc_Default_Item
++_nc_Default_Menu
++_nc_Disconnect_Items
++_nc_Draw_Menu
++_nc_First_Active_Field
++_nc_Free_Argument
++_nc_Free_Type
++_nc_Internal_Validation
++_nc_Link_Items
++_nc_Make_Argument
++_nc_Match_Next_Character_In_Item_Name
++_nc_New_TopRow_and_CurrentItem
++_nc_Position_Form_Cursor
++_nc_Post_Item
++_nc_Refresh_Current_Field
++_nc_Set_Current_Field
++_nc_Set_Form_Page
++_nc_Show_Menu
++_nc_Synchronize_Attributes
++_nc_Synchronize_Options
++_nc_TYPE_ALNUM
++_nc_TYPE_ALPHA
++_nc_TYPE_ENUM
++_nc_TYPE_INTEGER
++_nc_TYPE_IPV4
++_nc_TYPE_NUMERIC
++_nc_TYPE_REGEXP
++_nc_Touchline
++_nc_Touchpan
++_nc_Widen_String
++_nc_Wnoutrefresh
++_nc_access
++_nc_add_to_try
++_nc_align_termtype
++_nc_alloc_entry_leaks
++_nc_altcharset_name
++_nc_background
++_nc_basename
++_nc_baudrate
++_nc_build_wch
++_nc_cap_hash_table
++_nc_capalias_table
++_nc_capcmp
++_nc_captoinfo
++_nc_captoinfo_leaks
++_nc_check_termtype
++_nc_check_termtype2
++_nc_comment_end
++_nc_comment_start
++_nc_comp_captab_leaks
++_nc_comp_error_leaks
++_nc_comp_scan_leaks
++_nc_copy_entry
++_nc_copy_termtype
++_nc_curr_col
++_nc_curr_file_pos
++_nc_curr_line
++_nc_curr_token
++_nc_curscr_of
++_nc_dPanel
++_nc_dStack
++_nc_db_iterator_leaks
++_nc_delink_entry
++_nc_disable_period
++_nc_do_color
++_nc_do_color_sp
++_nc_doalloc
++_nc_entry_match
++_nc_env_access
++_nc_err_abort
++_nc_eventlist_timeout
++_nc_expand_try
++_nc_expanded
++_nc_fallback
++_nc_fifo_dump
++_nc_find_entry
++_nc_find_type_entry
++_nc_first_db
++_nc_first_name
++_nc_flush
++_nc_flush_sp
++_nc_form_cursor
++_nc_format_slks
++_nc_free_and_exit
++_nc_free_and_exit_sp
++_nc_free_entries
++_nc_free_entry
++_nc_free_termtype
++_nc_free_tic
++_nc_free_tinfo
++_nc_free_tparm
++_nc_freeall
++_nc_freeall_sp
++_nc_freewin
++_nc_fty_generic
++_nc_generic_fieldtype
++_nc_get_alias_table
++_nc_get_fieldbuffer
++_nc_get_hash_info
++_nc_get_hash_table
++_nc_get_locale
++_nc_get_screensize
++_nc_get_source
++_nc_get_table
++_nc_get_token
++_nc_get_tty_mode
++_nc_get_tty_mode_sp
++_nc_get_type
++_nc_getenv_num
++_nc_globals
++_nc_handle_sigwinch
++_nc_has_mouse
++_nc_hash_map
++_nc_hash_map_sp
++_nc_hashed_db
++_nc_head
++_nc_home_terminfo
++_nc_info_hash_table
++_nc_infoalias_table
++_nc_infotocap
++_nc_init_acs
++_nc_init_acs_sp
++_nc_init_entry
++_nc_init_keytry
++_nc_init_termtype
++_nc_init_wacs
++_nc_insert_ch
++_nc_insert_wch
++_nc_is_abs_path
++_nc_is_charable
++_nc_is_dir_path
++_nc_is_file_path
++_nc_keep_tic_dir
++_nc_key_names
++_nc_keyname
++_nc_keyname_leaks
++_nc_keypad
++_nc_last_db
++_nc_leaks_tic
++_nc_leaks_tinfo
++_nc_linedump
++_nc_linedump_sp
++_nc_locale_breaks_acs
++_nc_make_oldhash
++_nc_make_oldhash_sp
++_nc_makenew
++_nc_makenew_sp
++_nc_memmove
++_nc_menu_cursor_pos
++_nc_merge_entry
++_nc_msec_cost
++_nc_msec_cost_sp
++_nc_mvcur
++_nc_mvcur_init
++_nc_mvcur_init_sp
++_nc_mvcur_resume
++_nc_mvcur_resume_sp
++_nc_mvcur_sp
++_nc_mvcur_wrap
++_nc_mvcur_wrap_sp
++_nc_my_visbuf
++_nc_name_match
++_nc_newscr_of
++_nc_next_db
++_nc_nulls_sent
++_nc_oldnums
++_nc_optimize_enable
++_nc_ospeed
++_nc_outc_wrapper
++_nc_outch
++_nc_outch_sp
++_nc_outchars
++_nc_outstr
++_nc_panelhook
++_nc_panelhook_sp
++_nc_panic_mode
++_nc_parse_entry
++_nc_pathlast
++_nc_prescreen
++_nc_printf_string
++_nc_printf_string_sp
++_nc_push_token
++_nc_putchar
++_nc_putchar_sp
++_nc_putp
++_nc_putp_flush
++_nc_putp_flush_sp
++_nc_putp_sp
++_nc_read_entry
++_nc_read_entry_source
++_nc_read_file_entry
++_nc_read_termcap
++_nc_read_termcap_entry
++_nc_read_termtype
++_nc_remove_key
++_nc_remove_string
++_nc_render
++_nc_reset_colors
++_nc_reset_colors_sp
++_nc_reset_input
++_nc_resolve_uses
++_nc_resolve_uses2
++_nc_retrace_attr_t
++_nc_retrace_bool
++_nc_retrace_char
++_nc_retrace_chtype
++_nc_retrace_cptr
++_nc_retrace_cvoid_ptr
++_nc_retrace_field
++_nc_retrace_field_ptr
++_nc_retrace_field_type
++_nc_retrace_form
++_nc_retrace_form_hook
++_nc_retrace_int
++_nc_retrace_int_attr_t
++_nc_retrace_item
++_nc_retrace_item_opts
++_nc_retrace_item_ptr
++_nc_retrace_menu
++_nc_retrace_menu_hook
++_nc_retrace_menu_opts
++_nc_retrace_mmask_t
++_nc_retrace_panel
++_nc_retrace_ptr
++_nc_retrace_sp
++_nc_retrace_unsigned
++_nc_retrace_void_ptr
++_nc_retrace_win
++_nc_ripoffline
++_nc_ripoffline_sp
++_nc_rootname
++_nc_safe_strcat
++_nc_safe_strcpy
++_nc_save_str
++_nc_screen_chain
++_nc_screen_init
++_nc_screen_init_sp
++_nc_screen_of
++_nc_screen_resume
++_nc_screen_resume_sp
++_nc_screen_wrap
++_nc_screen_wrap_sp
++_nc_scroll_oldhash
++_nc_scroll_oldhash_sp
++_nc_scroll_optimize
++_nc_scroll_optimize_sp
++_nc_scroll_window
++_nc_scrolln
++_nc_scrolln_sp
++_nc_set_buffer
++_nc_set_buffer_sp
++_nc_set_generic_fieldtype
++_nc_set_no_padding
++_nc_set_source
++_nc_set_tty_mode
++_nc_set_tty_mode_sp
++_nc_set_type
++_nc_set_writedir
++_nc_setenv_num
++_nc_setup_tinfo
++_nc_setupscreen
++_nc_setupscreen_sp
++_nc_setupterm
++_nc_sigaction
++_nc_signal_handler
++_nc_slk_format
++_nc_slk_initialize
++_nc_start_line
++_nc_stdscr_of
++_nc_str_copy
++_nc_str_init
++_nc_str_null
++_nc_strict_bsd
++_nc_suppress_warnings
++_nc_synchook
++_nc_syntax
++_nc_syserr_abort
++_nc_tail
++_nc_tgetent_leaks
++_nc_tic_dir
++_nc_tic_expand
++_nc_tic_written
++_nc_timed_wait
++_nc_tinfo_cmdch
++_nc_tinfo_fkeys
++_nc_to_char
++_nc_to_widechar
++_nc_tparm_analyze
++_nc_tparm_err
++_nc_tputs_trace
++_nc_trace_buf
++_nc_trace_bufcat
++_nc_trace_mmask_t
++_nc_trace_tries
++_nc_trace_ttymode
++_nc_trace_xnames
++_nc_tracebits
++_nc_tracechar
++_nc_tracemouse
++_nc_tracing
++_nc_trans_string
++_nc_trim_sgr0
++_nc_unctrl
++_nc_ungetch
++_nc_unicode_locale
++_nc_update_screensize
++_nc_user_definable
++_nc_utf8_outch
++_nc_varargs
++_nc_visbuf
++_nc_visbuf2
++_nc_visbufn
++_nc_viscbuf
++_nc_viscbuf2
++_nc_viswbuf
++_nc_viswbuf2
++_nc_viswbufn
++_nc_viswibuf
++_nc_vsscanf
++_nc_wacs
++_nc_waddch_nosync
++_nc_warning
++_nc_wchstrlen
++_nc_wcrtomb
++_nc_wgetch
++_nc_wrap_entry
++_nc_write_entry
++_traceattr
++_traceattr2
++_tracecchar_t
++_tracecchar_t2
++_tracechar
++_tracechtype
++_tracechtype2
++_tracedump
++_tracef
++_tracemouse
++acs_map
++add_wch
++add_wchnstr
++add_wchstr
++addch
++addchnstr
++addchstr
++addnstr
++addnwstr
++addstr
++addwstr
++assume_default_colors
++assume_default_colors_sp
++attr_get
++attr_off
++attr_on
++attr_set
++attroff
++attron
++attrset
++baudrate
++baudrate_sp
++beep
++beep_sp
++bkgd
++bkgdset
++bkgrnd
++bkgrndset
++boolcodes
++boolfnames
++boolnames
++border
++border_set
++bottom_panel
++box
++box_set
++can_change_color
++can_change_color_sp
++cbreak
++cbreak_sp
++ceiling_panel
++chgat
++clear
++clearok
++clrtobot
++clrtoeol
++color_content
++color_content_sp
++color_set
++copywin
++cur_term
++current_field
++current_item
++curs_set
++curs_set_sp
++curscr
++curses_version
++data_ahead
++data_behind
++def_prog_mode
++def_prog_mode_sp
++def_shell_mode
++def_shell_mode_sp
++define_key
++define_key_sp
++del_curterm
++del_curterm_sp
++del_panel
++delay_output
++delay_output_sp
++delch
++deleteln
++delscreen
++delwin
++derwin
++doupdate
++doupdate_sp
++dup_field
++dupwin
++dynamic_field_info
++echo
++echo_sp
++echo_wchar
++echochar
++endwin
++endwin_sp
++erase
++erasechar
++erasechar_sp
++erasewchar
++field_arg
++field_back
++field_buffer
++field_count
++field_fore
++field_index
++field_info
++field_init
++field_just
++field_opts
++field_opts_off
++field_opts_on
++field_pad
++field_status
++field_term
++field_type
++field_userptr
++filter
++filter_sp
++flash
++flash_sp
++flushinp
++flushinp_sp
++form_driver
++form_driver_w
++form_fields
++form_init
++form_opts
++form_opts_off
++form_opts_on
++form_page
++form_request_by_name
++form_request_name
++form_sub
++form_term
++form_userptr
++form_win
++free_field
++free_fieldtype
++free_form
++free_item
++free_menu
++get_escdelay
++get_escdelay_sp
++get_wch
++get_wstr
++getattrs
++getbegx
++getbegy
++getbkgd
++getbkgrnd
++getcchar
++getch
++getcurx
++getcury
++getmaxx
++getmaxy
++getmouse
++getmouse_sp
++getn_wstr
++getnstr
++getparx
++getpary
++getstr
++getwin
++getwin_sp
++ground_panel
++halfdelay
++halfdelay_sp
++has_colors
++has_colors_sp
++has_ic
++has_ic_sp
++has_il
++has_il_sp
++has_key
++has_key_sp
++has_mouse
++has_mouse_sp
++hide_panel
++hline
++hline_set
++idcok
++idlok
++immedok
++in_wch
++in_wchnstr
++in_wchstr
++inch
++inchnstr
++inchstr
++init_color
++init_color_sp
++init_pair
++init_pair_sp
++initscr
++innstr
++innwstr
++ins_nwstr
++ins_wch
++ins_wstr
++insch
++insdelln
++insertln
++insnstr
++insstr
++instr
++intrflush
++intrflush_sp
++inwstr
++is_cleared
++is_idcok
++is_idlok
++is_immedok
++is_keypad
++is_leaveok
++is_linetouched
++is_nodelay
++is_notimeout
++is_pad
++is_scrollok
++is_subwin
++is_syncok
++is_term_resized
++is_term_resized_sp
++is_wintouched
++isendwin
++isendwin_sp
++item_count
++item_description
++item_index
++item_init
++item_name
++item_opts
++item_opts_off
++item_opts_on
++item_term
++item_userptr
++item_value
++item_visible
++key_defined
++key_defined_sp
++key_name
++keybound
++keybound_sp
++keyname
++keyname_sp
++keyok
++keyok_sp
++keypad
++killchar
++killchar_sp
++killwchar
++leaveok
++link_field
++link_fieldtype
++longname
++mcprint
++mcprint_sp
++menu_back
++menu_driver
++menu_fore
++menu_format
++menu_grey
++menu_init
++menu_items
++menu_mark
++menu_opts
++menu_opts_off
++menu_opts_on
++menu_pad
++menu_pattern
++menu_request_by_name
++menu_request_name
++menu_spacing
++menu_sub
++menu_term
++menu_userptr
++menu_win
++meta
++mouse_trafo
++mouseinterval
++mouseinterval_sp
++mousemask
++mousemask_sp
++move
++move_field
++move_panel
++mvadd_wch
++mvadd_wchnstr
++mvadd_wchstr
++mvaddch
++mvaddchnstr
++mvaddchstr
++mvaddnstr
++mvaddnwstr
++mvaddstr
++mvaddwstr
++mvchgat
++mvcur
++mvcur_sp
++mvdelch
++mvderwin
++mvget_wch
++mvget_wstr
++mvgetch
++mvgetn_wstr
++mvgetnstr
++mvgetstr
++mvhline
++mvhline_set
++mvin_wch
++mvin_wchnstr
++mvin_wchstr
++mvinch
++mvinchnstr
++mvinchstr
++mvinnstr
++mvinnwstr
++mvins_nwstr
++mvins_wch
++mvins_wstr
++mvinsch
++mvinsnstr
++mvinsstr
++mvinstr
++mvinwstr
++mvprintw
++mvscanw
++mvvline
++mvvline_set
++mvwadd_wch
++mvwadd_wchnstr
++mvwadd_wchstr
++mvwaddch
++mvwaddchnstr
++mvwaddchstr
++mvwaddnstr
++mvwaddnwstr
++mvwaddstr
++mvwaddwstr
++mvwchgat
++mvwdelch
++mvwget_wch
++mvwget_wstr
++mvwgetch
++mvwgetn_wstr
++mvwgetnstr
++mvwgetstr
++mvwhline
++mvwhline_set
++mvwin
++mvwin_wch
++mvwin_wchnstr
++mvwin_wchstr
++mvwinch
++mvwinchnstr
++mvwinchstr
++mvwinnstr
++mvwinnwstr
++mvwins_nwstr
++mvwins_wch
++mvwins_wstr
++mvwinsch
++mvwinsnstr
++mvwinsstr
++mvwinstr
++mvwinwstr
++mvwprintw
++mvwscanw
++mvwvline
++mvwvline_set
++napms
++napms_sp
++new_field
++new_fieldtype
++new_form
++new_form_sp
++new_item
++new_menu
++new_menu_sp
++new_page
++new_panel
++new_prescr
++newpad
++newpad_sp
++newscr
++newterm
++newterm_sp
++newwin
++newwin_sp
++nl
++nl_sp
++nocbreak
++nocbreak_sp
++nodelay
++noecho
++noecho_sp
++nofilter
++nofilter_sp
++nonl
++nonl_sp
++noqiflush
++noqiflush_sp
++noraw
++noraw_sp
++notimeout
++numcodes
++numfnames
++numnames
++ospeed
++overlay
++overwrite
++pair_content
++pair_content_sp
++panel_above
++panel_below
++panel_hidden
++panel_userptr
++panel_window
++pecho_wchar
++pechochar
++pnoutrefresh
++pos_form_cursor
++pos_menu_cursor
++post_form
++post_menu
++prefresh
++printw
++putp
++putp_sp
++putwin
++qiflush
++qiflush_sp
++raw
++raw_sp
++redrawwin
++refresh
++replace_panel
++reset_prog_mode
++reset_prog_mode_sp
++reset_shell_mode
++reset_shell_mode_sp
++resetty
++resetty_sp
++resize_term
++resize_term_sp
++resizeterm
++resizeterm_sp
++restartterm
++restartterm_sp
++ripoffline
++ripoffline_sp
++savetty
++savetty_sp
++scale_form
++scale_menu
++scanw
++scr_dump
++scr_init
++scr_init_sp
++scr_restore
++scr_restore_sp
++scr_set
++scr_set_sp
++scrl
++scroll
++scrollok
++set_current_field
++set_current_item
++set_curterm
++set_curterm_sp
++set_escdelay
++set_escdelay_sp
++set_field_back
++set_field_buffer
++set_field_fore
++set_field_init
++set_field_just
++set_field_opts
++set_field_pad
++set_field_status
++set_field_term
++set_field_type
++set_field_userptr
++set_fieldtype_arg
++set_fieldtype_choice
++set_form_fields
++set_form_init
++set_form_opts
++set_form_page
++set_form_sub
++set_form_term
++set_form_userptr
++set_form_win
++set_item_init
++set_item_opts
++set_item_term
++set_item_userptr
++set_item_value
++set_max_field
++set_menu_back
++set_menu_fore
++set_menu_format
++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
++set_menu_term
++set_menu_userptr
++set_menu_win
++set_new_page
++set_panel_userptr
++set_tabsize
++set_tabsize_sp
++set_term
++set_top_row
++setcchar
++setscrreg
++setupterm
++show_panel
++slk_attr
++slk_attr_off
++slk_attr_on
++slk_attr_set
++slk_attr_set_sp
++slk_attr_sp
++slk_attroff
++slk_attroff_sp
++slk_attron
++slk_attron_sp
++slk_attrset
++slk_attrset_sp
++slk_clear
++slk_clear_sp
++slk_color
++slk_color_sp
++slk_init
++slk_init_sp
++slk_label
++slk_label_sp
++slk_noutrefresh
++slk_noutrefresh_sp
++slk_refresh
++slk_refresh_sp
++slk_restore
++slk_restore_sp
++slk_set
++slk_set_sp
++slk_touch
++slk_touch_sp
++slk_wset
++standend
++standout
++start_color
++start_color_sp
++stdscr
++strcodes
++strfnames
++strnames
++subpad
++subwin
++syncok
++term_attrs
++term_attrs_sp
++termattrs
++termattrs_sp
++termname
++termname_sp
++tgetent
++tgetent_sp
++tgetflag
++tgetflag_sp
++tgetnum
++tgetnum_sp
++tgetstr
++tgetstr_sp
++tgoto
++tigetflag
++tigetflag_sp
++tigetnum
++tigetnum_sp
++tigetstr
++tigetstr_sp
++timeout
++tiparm
++top_panel
++top_row
++touchline
++touchwin
++tparm
++tputs
++tputs_sp
++trace
++ttytype
++typeahead
++typeahead_sp
++unctrl
++unctrl_sp
++unget_wch
++unget_wch_sp
++ungetch
++ungetch_sp
++ungetmouse
++ungetmouse_sp
++unpost_form
++unpost_menu
++untouchwin
++update_panels
++update_panels_sp
++use_default_colors
++use_default_colors_sp
++use_env
++use_env_sp
++use_extended_names
++use_legacy_coding
++use_legacy_coding_sp
++use_screen
++use_tioctl
++use_tioctl_sp
++use_window
++vid_attr
++vid_attr_sp
++vid_puts
++vid_puts_sp
++vidattr
++vidattr_sp
++vidputs
++vidputs_sp
++vline
++vline_set
++vw_printw
++vw_scanw
++vwprintw
++vwscanw
++wadd_wch
++wadd_wchnstr
++wadd_wchstr
++waddch
++waddchnstr
++waddchstr
++waddnstr
++waddnwstr
++waddstr
++waddwstr
++wattr_get
++wattr_off
++wattr_on
++wattr_set
++wattroff
++wattron
++wattrset
++wbkgd
++wbkgdset
++wbkgrnd
++wbkgrndset
++wborder
++wborder_set
++wchgat
++wclear
++wclrtobot
++wclrtoeol
++wcolor_set
++wcursyncup
++wdelch
++wdeleteln
++wecho_wchar
++wechochar
++wenclose
++werase
++wget_wch
++wget_wstr
++wgetbkgrnd
++wgetch
++wgetch_events
++wgetdelay
++wgetn_wstr
++wgetnstr
++wgetnstr_events
++wgetparent
++wgetscrreg
++wgetstr
++whline
++whline_set
++win_wch
++win_wchnstr
++win_wchstr
++winch
++winchnstr
++winchstr
++winnstr
++winnwstr
++wins_nwstr
++wins_wch
++wins_wstr
++winsch
++winsdelln
++winsertln
++winsnstr
++winsstr
++winstr
++winwstr
++wmouse_trafo
++wmove
++wnoutrefresh
++wprintw
++wredrawln
++wrefresh
++wresize
++wscanw
++wscrl
++wsetscrreg
++wstandend
++wstandout
++wsyncdown
++wsyncup
++wtimeout
++wtouchln
++wunctrl
++wunctrl_sp
++wvline
++wvline_set
+Index: panel/Makefile.in
+Prereq: 1.58
+--- ncurses-5.9/panel/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/panel/Makefile.in 2014-11-15 13:54:00.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.58 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.65 2014/11/15 13:54:00 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -51,15 +51,23 @@
+
+ MODEL = @DFT_LWR_MODEL@
+ DESTDIR = @DESTDIR@
++top_srcdir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++datarootdir = @datarootdir@
+ datadir = @datadir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@ @EXPORT_SYMS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -85,7 +93,7 @@
+ CPP = @CPP@
+ CFLAGS = @CFLAGS@
+
+-CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
++CPPFLAGS = -I${top_srcdir}/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -103,6 +111,8 @@
+ SHLIB_DIRS = -L../lib
+ SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
+
++RPATH_LIST = @RPATH_LIST@
++VERSIONED_SYMS = @VERSIONED_SYMS@
+ MK_SHARED_LIB = @MK_SHARED_LIB@
+
+ NCURSES_MAJOR = @NCURSES_MAJOR@
+@@ -112,7 +122,7 @@
+
+ RANLIB = @LIB_PREP@
+
+-LIBRARIES = @LIBS_TO_MAKE@
++LIBRARIES = @Libs_To_Make@
+
+ LINT = @LINT@
+ LINT_OPTS = @LINT_OPTS@
+Index: panel/p_above.c
+Prereq: 1.8
+--- ncurses-5.9/panel/p_above.c 2010-01-23 21:22:15.000000000 +0000
++++ ncurses-5.9-20141206/panel/p_above.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,13 +36,13 @@
+ */
+ #include "panel.priv.h"
+
+-MODULE_ID("$Id: p_above.c,v 1.8 2010/01/23 21:22:15 tom Exp $")
++MODULE_ID("$Id: p_above.c,v 1.9 2012/03/10 23:43:41 tom Exp $")
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(PANEL *)
+ ground_panel(SCREEN * sp)
+ {
+- T((T_CALLED("ground_panel(%p)"), sp));
++ T((T_CALLED("ground_panel(%p)"), (void *)sp));
+ if (sp)
+ {
+ struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
+Index: panel/p_below.c
+Prereq: 1.8
+--- ncurses-5.9/panel/p_below.c 2010-01-23 21:22:15.000000000 +0000
++++ ncurses-5.9-20141206/panel/p_below.c 2012-03-10 23:43:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,13 +36,13 @@
+ */
+ #include "panel.priv.h"
+
+-MODULE_ID("$Id: p_below.c,v 1.8 2010/01/23 21:22:15 tom Exp $")
++MODULE_ID("$Id: p_below.c,v 1.9 2012/03/10 23:43:41 tom Exp $")
+
+ #if NCURSES_SP_FUNCS
+ NCURSES_EXPORT(PANEL *)
+ ceiling_panel(SCREEN * sp)
+ {
+- T((T_CALLED("ceiling_panel(%p)"), sp));
++ T((T_CALLED("ceiling_panel(%p)"), (void *)sp));
+ if (sp)
+ {
+ struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
+Index: panel/panel.c
+Prereq: 1.25
+--- ncurses-5.9/panel/panel.c 2010-01-23 21:22:16.000000000 +0000
++++ ncurses-5.9-20141206/panel/panel.c 2012-02-23 10:02:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -36,7 +36,7 @@
+ /* panel.c -- implementation of panels library, some core routines */
+ #include "panel.priv.h"
+
+-MODULE_ID("$Id: panel.c,v 1.25 2010/01/23 21:22:16 tom Exp $")
++MODULE_ID("$Id: panel.c,v 1.26 2012/02/23 10:02:15 tom Exp $")
+
+ /*+-------------------------------------------------------------------------
+ _nc_retrace_panel (pan)
+@@ -61,9 +61,9 @@
+ char temp[32];
+
+ if (ptr != 0)
+- sprintf(temp, "ptr:%p", ptr);
++ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "ptr:%p", ptr);
+ else
+- strcpy(temp, "<null>");
++ _nc_STRCPY(temp, "<null>", sizeof(temp));
+ return _nc_visbuf(temp);
+ }
+ #endif
+@@ -95,7 +95,7 @@
+
+ GetPanelHook(pan);
+
+- sprintf(s80, fmt, num, pan);
++ _nc_SPRINTF(s80, _nc_SLIMIT(sizeof(s80)) fmt, num, pan);
+ _tracef("%s b=%s t=%s", s80,
+ (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
+ (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
+@@ -143,7 +143,7 @@
+ {
+ char s80[80];
+
+- sprintf(s80, "Touchline s=%d c=%d", start, count);
++ _nc_SPRINTF(s80, _nc_SLIMIT(sizeof(s80)) "Touchline s=%d c=%d", start, count);
+ dPanel(s80, pan);
+ touchline(pan->win, start, count);
+ }
+Index: panel/panel.priv.h
+Prereq: 1.23
+--- ncurses-5.9/panel/panel.priv.h 2009-04-11 20:33:55.000000000 +0000
++++ ncurses-5.9-20141206/panel/panel.priv.h 2014-11-01 14:48:03.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,10 +26,11 @@
+ * authorization. *
+ ****************************************************************************/
+
+-/* $Id: panel.priv.h,v 1.23 2009/04/11 20:33:55 tom Exp $ */
++/* $Id: panel.priv.h,v 1.26 2014/11/01 14:48:03 tom Exp $ */
+
+ #ifndef NCURSES_PANEL_PRIV_H
+ #define NCURSES_PANEL_PRIV_H 1
++/* *INDENT-OFF* */
+
+ #if HAVE_CONFIG_H
+ # include <ncurses_cfg.h>
+@@ -60,7 +61,7 @@
+ # define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
+ # endif
+
+-# define returnPanel(code) TRACE_RETURN(code,panel)
++# define returnPanel(code) TRACE_RETURN1(code,panel)
+
+ extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
+ extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
+@@ -89,7 +90,7 @@
+ #define GetScreenHook(sp) \
+ struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp)
+ #define GetPanelHook(pan) \
+- GetScreenHook(_nc_screen_of((pan)->win))
++ GetScreenHook(pan ? _nc_screen_of((pan)->win) : 0)
+ #define GetWindowHook(win) \
+ SCREEN* sp = _nc_screen_of(win); \
+ GetScreenHook(sp)
+@@ -160,7 +161,7 @@
+ ---------------------------------------------------------------------------*/
+ #define PANEL_UPDATE(pan,panstart)\
+ { PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
+- while(pan2) {\
++ while(pan2 && pan2->win) {\
+ if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
+ int y, ix1, ix2, iy1, iy2;\
+ COMPUTE_INTERSECTION(pan, pan2, ix1, ix2, iy1, iy2);\
+@@ -210,5 +211,6 @@
+ /* These may become later renamed and part of panel.h and the public API */
+ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*);
+ #endif
++/* *INDENT-ON* */
+
+ #endif /* NCURSES_PANEL_PRIV_H */
+Index: progs/Makefile.in
+Prereq: 1.85
+--- ncurses-5.9/progs/Makefile.in 2010-11-27 21:45:27.000000000 +0000
++++ ncurses-5.9-20141206/progs/Makefile.in 2014-11-15 00:34:28.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.85 2010/11/27 21:45:27 tom Exp $
++# $Id: Makefile.in,v 1.93 2014/11/15 00:34:28 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -61,9 +61,16 @@
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++datarootdir = @datarootdir@
+ datadir = @datadir@
++includesubdir = @includesubdir@
++
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -85,7 +92,7 @@
+ CFLAGS = @CFLAGS@
+
+ INCDIR = $(top_srcdir)/include
+-CPPFLAGS = -I../progs -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
++CPPFLAGS = -DHAVE_CONFIG_H @CPPFLAGS@
+
+ CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+
+@@ -104,20 +111,21 @@
+ LD = @LD@
+ LINK = @LINK_PROGS@ $(LIBTOOL_LINK)
+ LDFLAGS = @EXTRA_LDFLAGS@ @LDFLAGS@
++RPATH_LIST = @RPATH_LIST@
+
+ LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
+ LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
+ LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG)
+-LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
++LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
+ LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
+
+ LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
+
+-LIBS_TIC = @LDFLAGS_STATIC@ @TICS_ARGS@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
+-LDFLAGS_TIC = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
++LIBS_TIC = @TINFO_LDFLAGS@ @LDFLAGS_STATIC@ @TICS_LIBS@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
++LDFLAGS_TIC = @TICS_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TIC)
+
+-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
+-LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
++LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LD_MODEL@ @LIBS@
++LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
+
+ LINT = @LINT@
+ LINT_OPTS = @LINT_OPTS@
+@@ -227,49 +235,51 @@
+ DEPS_TIC = \
+ $(MODEL)/tic$o \
+ $(MODEL)/dump_entry$o \
++ $(MODEL)/tparm_type$o \
+ $(MODEL)/transform$o
+
+ tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
+- @ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
+
+ DEPS_TOE = \
+ $(MODEL)/toe$o
+
+ toe$x: $(DEPS_TOE) $(DEPS_CURSES)
+- @ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_TOE) $(LDFLAGS_TIC) -o $@
+
+ DEPS_CLEAR = \
+ $(MODEL)/clear$o
+
+ clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
+- @ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
+
+ DEPS_TABS = \
+ $(MODEL)/tabs$o
+
+ tabs$x: $(DEPS_TABS) $(DEPS_TABS)
+- @ECHO_LINK@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@
+
+ DEPS_TPUT = \
+ $(MODEL)/tput$o \
++ $(MODEL)/tparm_type$o \
+ $(MODEL)/transform$o
+
+ tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
+- @ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
+
+ DEPS_INFOCMP = \
+ $(MODEL)/infocmp$o \
+ $(MODEL)/dump_entry$o
+
+ infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
+- @ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
+
+ DEPS_TSET = \
+ $(MODEL)/tset$o \
+ $(MODEL)/transform$o
+
+ tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
+- @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
++ @ECHO_LD@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
+
+ termsort.c: $(srcdir)/MKtermsort.sh
+ sh $(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ >$@
+Index: progs/capconvert
+Prereq: 1.4
+--- ncurses-5.9/progs/capconvert 2006-04-22 21:46:17.000000000 +0000
++++ ncurses-5.9-20141206/progs/capconvert 2011-11-12 23:28:07.000000000 +0000
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+ ##############################################################################
+-# Copyright (c) 1998,2006 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2006,2011 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -26,7 +26,7 @@
+ # use or other dealings in this Software without prior written #
+ # authorization. #
+ ##############################################################################
+-# $Id: capconvert,v 1.4 2006/04/22 21:46:17 tom Exp $
++# $Id: capconvert,v 1.5 2011/11/12 23:28:07 Robert.Millan Exp $
+ #
+ # capconvert -- automated conversion from termcap to terminfo
+ #
+@@ -77,16 +77,18 @@
+ # Assumes the terminfo master covers all canned terminal types
+ exit;
+ fi
+- if test "$TERM" = "xterm"
+- then
++ case $TERM in
++ xterm | xterm-*)
+ echo "You are running xterm, which usually sets TERMCAP itself."
+ echo "We can ignore this, because terminfo knows about xterm."
+ echo "So you will just use the system-wide terminfo tree."
+- exit;
+- else
++ exit
++ ;;
++ *)
+ echo "We will have to make a local one for you anyway, to capture the effect"
+ echo "of your TERMCAP variable."
+- fi
++ ;;
++ esac
+ else
+ echo "No system-wide terminfo tree. We will make you a local one."
+ fi
+@@ -109,7 +111,7 @@
+ for x in $PATH .
+ do
+ if test $OPT $x/tic
+- then
++ then
+ TIC=$x/tic
+ break
+ fi
+@@ -141,7 +143,7 @@
+ then
+ echo "It appears you already have a private terminfo directory"
+ echo "at $HOME/.terminfo; this seems odd, because TERMINFO"
+- echo "is not defined. I am not going to second-guess this -- if you"
++ echo "is not defined. I am not going to second-guess this -- if you"
+ echo "really want me to try auto-configuring for you, remove or"
+ echo "rename $HOME/terminfo and run me again."
+ exit;
+@@ -214,7 +216,7 @@
+ #
+ echo "You now have a private tree under $HOME/.terminfo;"
+ echo "the ncurses library will automatically read from it,"
+-echo "and ncurses tic will automatically compile entries to it."
++echo "and ncurses tic will automatically compile entries to it."
+
+ # We're done unless user has a .termcap file or equivalent named by TERMCAP
+ if test -z "$TERMCAP"
+@@ -235,7 +237,7 @@
+ echo "Done."
+ echo "Note that editing $HOME/.termcap will no longer change the data curses sees."
+ elif test -f "$TERMCAP"
+-then
++then
+ echo "Your TERMCAP names the file $TERMCAP. I will compile that."
+ eval $TIC $TERMCAP
+ echo "Done."
+Index: progs/clear.c
+Prereq: 1.11
+--- ncurses-5.9/progs/clear.c 2007-10-13 22:16:02.000000000 +0000
++++ ncurses-5.9-20141206/progs/clear.c 2013-06-22 22:20:54.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2007,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #define USE_LIBTINFO
+ #include <progs.priv.h>
+
+-MODULE_ID("$Id: clear.c,v 1.11 2007/10/13 22:16:02 tom Exp $")
++MODULE_ID("$Id: clear.c,v 1.13 2013/06/22 22:20:54 tom Exp $")
+
+ static int
+ putch(int c)
+@@ -52,7 +52,15 @@
+ int argc GCC_UNUSED,
+ char *argv[]GCC_UNUSED)
+ {
++ char *E3;
++
+ setupterm((char *) 0, STDOUT_FILENO, (int *) 0);
++
++ /* Clear the scrollback buffer if possible. */
++ E3 = tigetstr("E3");
++ if (E3)
++ (void) tputs(E3, lines > 0 ? lines : 1, putch);
++
+ ExitProgram((tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR)
+ ? EXIT_FAILURE
+ : EXIT_SUCCESS);
+Index: progs/dump_entry.c
+Prereq: 1.89
+--- ncurses-5.9/progs/dump_entry.c 2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9-20141206/progs/dump_entry.c 2014-10-18 09:32:54.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -39,7 +39,7 @@
+ #include "termsort.c" /* this C file is generated */
+ #include <parametrized.h> /* so is this */
+
+-MODULE_ID("$Id: dump_entry.c,v 1.89 2010/05/01 22:04:08 tom Exp $")
++MODULE_ID("$Id: dump_entry.c,v 1.114 2014/10/18 09:32:54 tom Exp $")
+
+ #define INDENT 8
+ #define DISCARD(string) string = ABSENT_STRING
+@@ -57,6 +57,7 @@
+ static int outform; /* output format to use */
+ static int sortmode; /* sort mode to use */
+ static int width = 60; /* max line width for listings */
++static int height = 65535; /* max number of lines for listings */
+ static int column; /* current column, limited by 'width' */
+ static int oldcol; /* last value of column before wrap */
+ static bool pretty; /* true if we format if-then-else strings */
+@@ -72,7 +73,7 @@
+ static NCURSES_CONST char *const *num_names;
+ static NCURSES_CONST char *const *str_names;
+
+-static const char *separator, *trailer;
++static const char *separator = "", *trailer = "";
+
+ /* cover various ports and variants of terminfo */
+ #define V_ALLCAPS 0 /* all capabilities (SVr4, XSI, ncurses) */
+@@ -99,6 +100,15 @@
+ #define StrIndirect(j) ((sortmode == S_NOSORT) ? (j) : str_indirect[j])
+ #endif
+
++static void failed(const char *) GCC_NORETURN;
++
++static void
++failed(const char *s)
++{
++ perror(s);
++ ExitProgram(EXIT_FAILURE);
++}
++
+ static void
+ strncpy_DYN(DYNBUF * dst, const char *src, size_t need)
+ {
+@@ -106,6 +116,8 @@
+ if (want > dst->size) {
+ dst->size += (want + 1024); /* be generous */
+ dst->text = typeRealloc(char, dst->size, dst->text);
++ if (dst->text == 0)
++ failed("strncpy_DYN");
+ }
+ (void) strncpy(dst->text + dst->used, src, need);
+ dst->used += need;
+@@ -172,11 +184,17 @@
+ }
+
+ void
+-dump_init(const char *version, int mode, int sort, int twidth, int traceval,
++dump_init(const char *version,
++ int mode,
++ int sort,
++ int twidth,
++ int theight,
++ unsigned traceval,
+ bool formatted)
+ /* set up for entry display */
+ {
+ width = twidth;
++ height = theight;
+ pretty = formatted;
+
+ /* versions */
+@@ -201,7 +219,7 @@
+ bool_names = boolnames;
+ num_names = numnames;
+ str_names = strnames;
+- separator = twidth ? ", " : ",";
++ separator = (twidth > 0 && theight > 1) ? ", " : ",";
+ trailer = "\n\t";
+ break;
+
+@@ -209,7 +227,7 @@
+ bool_names = boolfnames;
+ num_names = numfnames;
+ str_names = strfnames;
+- separator = twidth ? ", " : ",";
++ separator = (twidth > 0 && theight > 1) ? ", " : ",";
+ trailer = "\n\t";
+ break;
+
+@@ -291,7 +309,11 @@
+ static void set_obsolete_termcaps(TERMTYPE *tp);
+
+ /* is this the index of a function key string? */
+-#define FNKEY(i) (((i)<= 65 && (i)>= 75) || ((i)<= 216 && (i)>= 268))
++#define FNKEY(i) \
++ (((i) >= STR_IDX(key_f0) && \
++ (i) <= STR_IDX(key_f9)) || \
++ ((i) >= STR_IDX(key_f11) && \
++ (i) <= STR_IDX(key_f63)))
+
+ /*
+ * If we configure with a different Caps file, the offsets into the arrays
+@@ -393,8 +415,8 @@
+ static void
+ wrap_concat(const char *src)
+ {
+- unsigned need = strlen(src);
+- unsigned want = strlen(separator) + need;
++ size_t need = strlen(src);
++ size_t want = strlen(separator) + need;
+
+ if (column > INDENT
+ && column + (int) want > width) {
+@@ -445,10 +467,10 @@
+ int n;
+
+ for (n = 0; n < level; n++)
+- strncpy_DYN(buffer, "\t", 1);
++ strncpy_DYN(buffer, "\t", (size_t) 1);
+ }
+
+-static bool
++bool
+ has_params(const char *src)
+ {
+ bool result = FALSE;
+@@ -458,9 +480,9 @@
+ bool params = FALSE;
+
+ for (n = 0; n < len - 1; ++n) {
+- if (!strncmp(src + n, "%p", 2)) {
++ if (!strncmp(src + n, "%p", (size_t) 2)) {
+ params = TRUE;
+- } else if (!strncmp(src + n, "%;", 2)) {
++ } else if (!strncmp(src + n, "%;", (size_t) 2)) {
+ ifthen = TRUE;
+ result = params;
+ break;
+@@ -473,7 +495,7 @@
+ }
+
+ static char *
+-fmt_complex(char *src, int level)
++fmt_complex(TERMTYPE *tterm, const char *capability, char *src, int level)
+ {
+ bool percent = FALSE;
+ bool params = has_params(src);
+@@ -482,7 +504,7 @@
+ switch (*src) {
+ case '\\':
+ percent = FALSE;
+- strncpy_DYN(&tmpbuf, src++, 1);
++ strncpy_DYN(&tmpbuf, src++, (size_t) 1);
+ break;
+ case '%':
+ percent = TRUE;
+@@ -496,26 +518,28 @@
+ /* treat a "%e" as else-if, on the same level */
+ if (*src == 'e') {
+ indent_DYN(&tmpbuf, level);
+- strncpy_DYN(&tmpbuf, "%", 1);
+- strncpy_DYN(&tmpbuf, src, 1);
++ strncpy_DYN(&tmpbuf, "%", (size_t) 1);
++ strncpy_DYN(&tmpbuf, src, (size_t) 1);
+ src++;
+ params = has_params(src);
+ if (!params && *src != '\0' && *src != '%') {
+- strncpy_DYN(&tmpbuf, "\n", 1);
++ strncpy_DYN(&tmpbuf, "\n", (size_t) 1);
+ indent_DYN(&tmpbuf, level + 1);
+ }
+ } else {
+ indent_DYN(&tmpbuf, level + 1);
+- strncpy_DYN(&tmpbuf, "%", 1);
+- strncpy_DYN(&tmpbuf, src, 1);
++ strncpy_DYN(&tmpbuf, "%", (size_t) 1);
++ strncpy_DYN(&tmpbuf, src, (size_t) 1);
+ if (*src++ == '?') {
+- src = fmt_complex(src, level + 1);
++ src = fmt_complex(tterm, capability, src, level + 1);
+ if (*src != '\0' && *src != '%') {
+- strncpy_DYN(&tmpbuf, "\n", 1);
++ strncpy_DYN(&tmpbuf, "\n", (size_t) 1);
+ indent_DYN(&tmpbuf, level + 1);
+ }
+ } else if (level == 1) {
+- _nc_warning("%%%c without %%?", *src);
++ _nc_warning("%s: %%%c without %%? in %s",
++ _nc_first_name(tterm->term_names),
++ *src, capability);
+ }
+ }
+ continue;
+@@ -527,31 +551,39 @@
+ if (level > 1) {
+ tmpbuf.text[tmpbuf.used - 1] = '\n';
+ indent_DYN(&tmpbuf, level);
+- strncpy_DYN(&tmpbuf, "%", 1);
+- strncpy_DYN(&tmpbuf, src++, 1);
++ strncpy_DYN(&tmpbuf, "%", (size_t) 1);
++ strncpy_DYN(&tmpbuf, src++, (size_t) 1);
++ if (src[0] == '%'
++ && src[1] != '\0'
++ && (strchr("?e;", src[1])) == 0) {
++ tmpbuf.text[tmpbuf.used++] = '\n';
++ indent_DYN(&tmpbuf, level);
++ }
+ return src;
+ }
+- _nc_warning("%%; without %%?");
++ _nc_warning("%s: %%; without %%? in %s",
++ _nc_first_name(tterm->term_names),
++ capability);
+ }
+ break;
+ case 'p':
+ if (percent && params) {
+ tmpbuf.text[tmpbuf.used - 1] = '\n';
+ indent_DYN(&tmpbuf, level + 1);
+- strncpy_DYN(&tmpbuf, "%", 1);
++ strncpy_DYN(&tmpbuf, "%", (size_t) 1);
+ }
+ params = FALSE;
+ percent = FALSE;
+ break;
+ case ' ':
+- strncpy_DYN(&tmpbuf, "\\s", 2);
++ strncpy_DYN(&tmpbuf, "\\s", (size_t) 2);
+ ++src;
+ continue;
+ default:
+ percent = FALSE;
+ break;
+ }
+- strncpy_DYN(&tmpbuf, src++, 1);
++ strncpy_DYN(&tmpbuf, src++, (size_t) 1);
+ }
+ return src;
+ }
+@@ -562,9 +594,9 @@
+ int
+ fmt_entry(TERMTYPE *tterm,
+ PredFunc pred,
+- bool content_only,
+- bool suppress_untranslatable,
+- bool infodump,
++ int content_only,
++ int suppress_untranslatable,
++ int infodump,
+ int numbers)
+ {
+ PredIdx i, j;
+@@ -593,14 +625,28 @@
+ column = INDENT; /* FIXME: workaround to prevent empty lines */
+ } else {
+ strcpy_DYN(&outbuf, tterm->term_names);
++
++ /*
++ * Colon is legal in terminfo descriptions, but not in termcap.
++ */
++ if (!infodump) {
++ char *p = outbuf.text;
++ while (*p) {
++ if (*p == ':') {
++ *p = '=';
++ }
++ ++p;
++ }
++ }
+ strcpy_DYN(&outbuf, separator);
+ column = (int) outbuf.used;
+- force_wrap();
++ if (height > 1)
++ force_wrap();
+ }
+
+ for_each_boolean(j, tterm) {
+ i = BoolIndirect(j);
+- name = ExtBoolname(tterm, i, bool_names);
++ name = ExtBoolname(tterm, (int) i, bool_names);
+ assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
+
+ if (!version_filter(BOOLEAN, i))
+@@ -610,21 +656,21 @@
+
+ predval = pred(BOOLEAN, i);
+ if (predval != FAIL) {
+- (void) strcpy(buffer, name);
++ _nc_STRCPY(buffer, name, sizeof(buffer));
+ if (predval <= 0)
+- (void) strcat(buffer, "@");
++ _nc_STRCAT(buffer, "@", sizeof(buffer));
+ else if (i + 1 > num_bools)
+ num_bools = i + 1;
+ WRAP_CONCAT;
+ }
+ }
+
+- if (column != INDENT)
++ if (column != INDENT && height > 1)
+ force_wrap();
+
+ for_each_number(j, tterm) {
+ i = NumIndirect(j);
+- name = ExtNumname(tterm, i, num_names);
++ name = ExtNumname(tterm, (int) i, num_names);
+ assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
+
+ if (!version_filter(NUMBER, i))
+@@ -635,9 +681,11 @@
+ predval = pred(NUMBER, i);
+ if (predval != FAIL) {
+ if (tterm->Numbers[i] < 0) {
+- sprintf(buffer, "%s@", name);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%s@", name);
+ } else {
+- sprintf(buffer, "%s#%d", name, tterm->Numbers[i]);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%s#%d", name, tterm->Numbers[i]);
+ if (i + 1 > num_values)
+ num_values = i + 1;
+ }
+@@ -645,7 +693,7 @@
+ }
+ }
+
+- if (column != INDENT)
++ if (column != INDENT && height > 1)
+ force_wrap();
+
+ len += (int) (num_bools
+@@ -670,7 +718,7 @@
+
+ for_each_string(j, tterm) {
+ i = StrIndirect(j);
+- name = ExtStrname(tterm, i, str_names);
++ name = ExtStrname(tterm, (int) i, str_names);
+ assert(strlen(name) < sizeof(buffer) - EXTRA_CAP);
+
+ capability = tterm->Strings[i];
+@@ -698,14 +746,14 @@
+ if (PRESENT(insert_character) || PRESENT(parm_ich)) {
+ if (SAME_CAP(i, enter_insert_mode)
+ && enter_insert_mode == ABSENT_STRING) {
+- (void) strcpy(buffer, "im=");
++ _nc_STRCPY(buffer, "im=", sizeof(buffer));
+ WRAP_CONCAT;
+ continue;
+ }
+
+ if (SAME_CAP(i, exit_insert_mode)
+ && exit_insert_mode == ABSENT_STRING) {
+- (void) strcpy(buffer, "ei=");
++ _nc_STRCPY(buffer, "ei=", sizeof(buffer));
+ WRAP_CONCAT;
+ continue;
+ }
+@@ -739,24 +787,29 @@
+ num_strings = i + 1;
+
+ if (!VALID_STRING(capability)) {
+- sprintf(buffer, "%s@", name);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%s@", name);
+ WRAP_CONCAT;
+ } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
+- int params = ((i < (int) SIZEOF(parametrized))
+- ? parametrized[i]
+- : 0);
+ char *srccap = _nc_tic_expand(capability, TRUE, numbers);
++ int params = (((i < (int) SIZEOF(parametrized)) &&
++ (i < STRCOUNT))
++ ? parametrized[i]
++ : ((*srccap == 'k')
++ ? 0
++ : has_params(srccap)));
+ char *cv = _nc_infotocap(name, srccap, params);
+
+ if (cv == 0) {
+ if (outform == F_TCONVERR) {
+- sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!",
+- name, srccap);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%s=!!! %s WILL NOT CONVERT !!!",
++ name, srccap);
+ } else if (suppress_untranslatable) {
+ continue;
+ } else {
+ char *s = srccap, *d = buffer;
+- sprintf(d, "..%s=", name);
++ _nc_SPRINTF(d, _nc_SLIMIT(sizeof(buffer)) "..%s=", name);
+ d += strlen(d);
+ while ((*d = *s++) != 0) {
+ if (*d == ':') {
+@@ -769,7 +822,8 @@
+ }
+ }
+ } else {
+- sprintf(buffer, "%s=%s", name, cv);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%s=%s", name, cv);
+ }
+ len += (int) strlen(capability) + 1;
+ WRAP_CONCAT;
+@@ -783,7 +837,7 @@
+ if (pretty
+ && (outform == F_TERMINFO
+ || outform == F_VARIABLE)) {
+- fmt_complex(src, 1);
++ fmt_complex(tterm, name, src, 1);
+ } else {
+ strcpy_DYN(&tmpbuf, src);
+ }
+@@ -793,7 +847,9 @@
+ }
+ }
+ /* e.g., trimmed_sgr0 */
+- if (capability != tterm->Strings[i])
++ if (capability != ABSENT_STRING &&
++ capability != CANCELLED_STRING &&
++ capability != tterm->Strings[i])
+ free(capability);
+ }
+ len += (int) (num_strings * 2);
+@@ -805,11 +861,13 @@
+ */
+ if (tversion == V_HPUX) {
+ if (VALID_STRING(memory_lock)) {
+- (void) sprintf(buffer, "meml=%s", memory_lock);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "meml=%s", memory_lock);
+ WRAP_CONCAT;
+ }
+ if (VALID_STRING(memory_unlock)) {
+- (void) sprintf(buffer, "memu=%s", memory_unlock);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "memu=%s", memory_unlock);
+ WRAP_CONCAT;
+ }
+ } else if (tversion == V_AIX) {
+@@ -821,7 +879,7 @@
+
+ tp = boxchars;
+ for (cp = acstrans; *cp; cp++) {
+- sp = strchr(acs_chars, *cp);
++ sp = (strchr) (acs_chars, *cp);
+ if (sp)
+ *tp++ = sp[1];
+ else {
+@@ -832,9 +890,41 @@
+ tp[0] = '\0';
+
+ if (box_ok) {
+- (void) strcpy(buffer, "box1=");
+- (void) strcat(buffer, _nc_tic_expand(boxchars,
+- outform == F_TERMINFO, numbers));
++ char *tmp = _nc_tic_expand(boxchars,
++ (outform == F_TERMINFO),
++ numbers);
++ _nc_STRCPY(buffer, "box1=", sizeof(buffer));
++ while (*tmp != '\0') {
++ size_t have = strlen(buffer);
++ size_t next = strlen(tmp);
++ size_t want = have + next + 1;
++ size_t last = next;
++ char save = '\0';
++
++ /*
++ * If the expanded string is too long for the buffer,
++ * chop it off and save the location where we chopped it.
++ */
++ if (want >= sizeof(buffer)) {
++ save = tmp[last];
++ tmp[last] = '\0';
++ }
++ _nc_STRCAT(buffer, tmp, sizeof(buffer));
++
++ /*
++ * If we chopped the buffer, replace the missing piece and
++ * shift everything to append the remainder.
++ */
++ if (save != '\0') {
++ next = 0;
++ tmp[last] = save;
++ while ((tmp[next] = tmp[last + next]) != '\0') {
++ ++next;
++ }
++ } else {
++ break;
++ }
++ }
+ WRAP_CONCAT;
+ }
+ }
+@@ -846,7 +936,7 @@
+ */
+ if (outcount) {
+ bool trimmed = FALSE;
+- j = outbuf.used;
++ j = (PredIdx) outbuf.used;
+ if (j >= 2
+ && outbuf.text[j - 1] == '\t'
+ && outbuf.text[j - 2] == '\n') {
+@@ -926,7 +1016,7 @@
+ char name[10];
+
+ for (n = 0; n <= 10; ++n) {
+- sprintf(name, "lf%d", n);
++ _nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "lf%d", n);
+ if ((cap = find_string(tterm, name)) != ABSENT_STRING
+ && kill_string(tterm, cap)) {
+ target -= (int) (strlen(cap) + 5);
+@@ -951,7 +1041,7 @@
+ char name[10];
+
+ for (n = 60; n >= 0; --n) {
+- sprintf(name, "kf%d", n);
++ _nc_SPRINTF(name, _nc_SLIMIT(sizeof(name)) "kf%d", n);
+ if ((cap = find_string(tterm, name)) != ABSENT_STRING
+ && kill_string(tterm, cap)) {
+ target -= (int) (strlen(cap) + 5);
+@@ -1017,8 +1107,8 @@
+ */
+ void
+ dump_entry(TERMTYPE *tterm,
+- bool suppress_untranslatable,
+- bool limited,
++ int suppress_untranslatable,
++ int limited,
+ int numbers,
+ PredFunc pred)
+ {
+@@ -1064,7 +1154,7 @@
+ */
+ unsigned n;
+ for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) {
+- const char *name = ExtStrname(tterm, n, strnames);
++ const char *name = ExtStrname(tterm, (int) n, strnames);
+
+ if (VALID_STRING(tterm->Strings[n])) {
+ set_attributes = ABSENT_STRING;
+@@ -1144,21 +1234,45 @@
+
+ if (outform == F_TERMCAP || outform == F_TCONVERR)
+ trim_trailing();
+- (void) sprintf(buffer, "%s%s", infodump ? "use=" : "tc=", name);
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "%s%s", infodump ? "use=" : "tc=", name);
+ wrap_concat(buffer);
+ }
+
+ int
+ show_entry(void)
+ {
+- trim_trailing();
++ /*
++ * Trim any remaining whitespace.
++ */
++ if (outbuf.used != 0) {
++ bool infodump = (outform != F_TERMCAP && outform != F_TCONVERR);
++ char delim = (char) (infodump ? ',' : ':');
++ int j;
++
++ for (j = (int) outbuf.used - 1; j > 0; --j) {
++ char ch = outbuf.text[j];
++ if (ch == '\n') {
++ ;
++ } else if (isspace(UChar(ch))) {
++ outbuf.used = (size_t) j;
++ } else if (!infodump && ch == '\\') {
++ outbuf.used = (size_t) j;
++ } else if (ch == delim && (j == 0 || outbuf.text[j - 1] != '\\')) {
++ outbuf.used = (size_t) (j + 1);
++ } else {
++ break;
++ }
++ }
++ outbuf.text[outbuf.used] = '\0';
++ }
+ (void) fputs(outbuf.text, stdout);
+ putchar('\n');
+ return (int) outbuf.used;
+ }
+
+ void
+-compare_entry(void (*hook) (PredType t, PredIdx i, const char *name),
++compare_entry(PredHook hook,
+ TERMTYPE *tp GCC_UNUSED,
+ bool quiet)
+ /* compare two entries */
+@@ -1170,7 +1284,7 @@
+ fputs(" comparing booleans.\n", stdout);
+ for_each_boolean(j, tp) {
+ i = BoolIndirect(j);
+- name = ExtBoolname(tp, i, bool_names);
++ name = ExtBoolname(tp, (int) i, bool_names);
+
+ if (isObsolete(outform, name))
+ continue;
+@@ -1182,7 +1296,7 @@
+ fputs(" comparing numbers.\n", stdout);
+ for_each_number(j, tp) {
+ i = NumIndirect(j);
+- name = ExtNumname(tp, i, num_names);
++ name = ExtNumname(tp, (int) i, num_names);
+
+ if (isObsolete(outform, name))
+ continue;
+@@ -1194,7 +1308,7 @@
+ fputs(" comparing strings.\n", stdout);
+ for_each_string(j, tp) {
+ i = StrIndirect(j);
+- name = ExtStrname(tp, i, str_names);
++ name = ExtStrname(tp, (int) i, str_names);
+
+ if (isObsolete(outform, name))
+ continue;
+Index: progs/dump_entry.h
+Prereq: 1.30
+--- ncurses-5.9/progs/dump_entry.h 2008-07-12 20:23:03.000000000 +0000
++++ ncurses-5.9-20141206/progs/dump_entry.h 2014-10-18 09:34:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -32,9 +32,8 @@
+ * and: Thomas E. Dickey 1996-on *
+ ****************************************************************************/
+
+-
+ /*
+- * $Id: dump_entry.h,v 1.30 2008/07/12 20:23:03 tom Exp $
++ * $Id: dump_entry.h,v 1.34 2014/10/18 09:34:15 tom Exp $
+ *
+ * Dump control definitions and variables
+ */
+@@ -64,16 +63,18 @@
+
+ typedef unsigned PredType;
+ typedef unsigned PredIdx;
+-typedef int (*PredFunc)(PredType, PredIdx);
++typedef int (*PredFunc) (PredType, PredIdx);
++typedef void (*PredHook) (PredType, PredIdx, const char *);
+
+ extern NCURSES_CONST char *nametrans(const char *);
+-extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int);
++extern bool has_params(const char *src);
++extern int fmt_entry(TERMTYPE *, PredFunc, int, int, int, int);
+ extern int show_entry(void);
+-extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool);
+-extern void dump_entry(TERMTYPE *, bool, bool, int, PredFunc);
+-extern void dump_init(const char *, int, int, int, int, bool);
++extern void compare_entry(PredHook, TERMTYPE *, bool);
++extern void dump_entry(TERMTYPE *, int, int, int, PredFunc);
++extern void dump_init(const char *, int, int, int, int, unsigned, bool);
+ extern void dump_uses(const char *, bool);
+-extern void repair_acsc(TERMTYPE * tp);
++extern void repair_acsc(TERMTYPE *tp);
+
+ #define FAIL -1
+
+Index: progs/infocmp.c
+Prereq: 1.105
+--- ncurses-5.9/progs/infocmp.c 2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9-20141206/progs/infocmp.c 2014-02-01 22:11:03.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -42,7 +42,7 @@
+
+ #include <dump_entry.h>
+
+-MODULE_ID("$Id: infocmp.c,v 1.105 2010/05/01 22:04:08 tom Exp $")
++MODULE_ID("$Id: infocmp.c,v 1.129 2014/02/01 22:11:03 tom Exp $")
+
+ #define L_CURL "{"
+ #define R_CURL "}"
+@@ -70,8 +70,9 @@
+ static const char *s_absent = "NULL";
+ static const char *s_cancel = "NULL";
+ static const char *tversion; /* terminfo version selected */
+-static int itrace; /* trace flag for debugging */
++static unsigned itrace; /* trace flag for debugging */
+ static int mwidth = 60;
++static int mheight = 65535;
+ static int numbers = 0; /* format "%'char'" to/from "%{number}" */
+ static int outform = F_TERMINFO; /* output format */
+ static int sortmode; /* sort_mode */
+@@ -86,27 +87,52 @@
+ static bool ignorepads; /* ignore pad prefixes when diffing */
+
+ #if NO_LEAKS
++
++typedef struct {
++ ENTRY *head;
++ ENTRY *tail;
++} ENTERED;
++
++static ENTERED *entered;
++
+ #undef ExitProgram
+ static void ExitProgram(int code) GCC_NORETURN;
+ /* prototype is to get gcc to accept the noreturn attribute */
+ static void
+ ExitProgram(int code)
+ {
+- while (termcount-- > 0)
+- _nc_free_termtype(&entries[termcount].tterm);
++ int n;
++
++ for (n = 0; n < termcount; ++n) {
++ ENTRY *new_head = _nc_head;
++ ENTRY *new_tail = _nc_tail;
++ _nc_head = entered[n].head;
++ _nc_tail = entered[n].tail;
++ _nc_free_entries(entered[n].head);
++ _nc_head = new_head;
++ _nc_tail = new_tail;
++ }
+ _nc_leaks_dump_entry();
+ free(entries);
++ free(entered);
+ _nc_free_tic(code);
+ }
+ #endif
+
++static void
++failed(const char *s)
++{
++ perror(s);
++ ExitProgram(EXIT_FAILURE);
++}
++
+ static char *
+ canonical_name(char *ptr, char *buf)
+ /* extract the terminal type's primary name */
+ {
+ char *bp;
+
+- (void) strcpy(buf, ptr);
++ _nc_STRCPY(buf, ptr, NAMESIZE);
+ if ((bp = strchr(buf, '|')) != 0)
+ *bp = '\0';
+
+@@ -307,13 +333,13 @@
+ {
+ switch (val) {
+ case ABSENT_NUMERIC:
+- strcpy(buf, s_absent);
++ _nc_STRCPY(buf, s_absent, MAX_STRING);
+ break;
+ case CANCELLED_NUMERIC:
+- strcpy(buf, s_cancel);
++ _nc_STRCPY(buf, s_cancel, MAX_STRING);
+ break;
+ default:
+- sprintf(buf, "%d", val);
++ _nc_SPRINTF(buf, _nc_SLIMIT(MAX_STRING) "%d", val);
+ break;
+ }
+ }
+@@ -323,31 +349,94 @@
+ /* display the value of a string capability */
+ {
+ if (val == ABSENT_STRING)
+- strcpy(buf, s_absent);
++ _nc_STRCPY(buf, s_absent, MAX_STRING);
+ else if (val == CANCELLED_STRING)
+- strcpy(buf, s_cancel);
++ _nc_STRCPY(buf, s_cancel, MAX_STRING);
+ else {
+- sprintf(buf, "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val));
++ _nc_SPRINTF(buf, _nc_SLIMIT(MAX_STRING)
++ "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val));
+ }
+ }
+
++/*
++ * Show "comparing..." message for the given terminal names.
++ */
++static void
++show_comparing(char **names)
++{
++ if (itrace) {
++ switch (compare) {
++ case C_DIFFERENCE:
++ (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
++ break;
++
++ case C_COMMON:
++ (void) fprintf(stderr, "%s: dumping common capabilities\n", _nc_progname);
++ break;
++
++ case C_NAND:
++ (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
++ break;
++ }
++ }
++ if (*names) {
++ printf("comparing %s", *names++);
++ if (*names) {
++ printf(" to %s", *names++);
++ while (*names) {
++ printf(", %s", *names++);
++ }
++ }
++ printf(".\n");
++ }
++}
++
++/*
++ * ncurses stores two types of non-standard capabilities:
++ * a) capabilities listed past the "STOP-HERE" comment in the Caps file.
++ * These are used in the terminfo source file to provide data for termcaps,
++ * e.g., when there is no equivalent capability in terminfo, as well as for
++ * widely-used non-standard capabilities.
++ * b) user-definable capabilities, via "tic -x".
++ *
++ * However, if "-x" is omitted from the tic command, both types of
++ * non-standard capability are not loaded into the terminfo database. This
++ * macro is used for limit-checks against the symbols that tic uses to omit
++ * the two types of non-standard entry.
++ */
++#if NCURSES_XNAMES
++#define check_user_definable(n,limit) if (!_nc_user_definable && (n) > (limit)) break
++#else
++#define check_user_definable(n,limit) if ((n) > (limit)) break
++#endif
++
++/*
++ * Use these macros to simplify loops on C_COMMON and C_NAND:
++ */
++#define for_each_entry() while (entries[extra].tterm.term_names)
++#define next_entry (&(entries[extra++].tterm))
++
+ static void
+ compare_predicate(PredType type, PredIdx idx, const char *name)
+ /* predicate function to use for entry difference reports */
+ {
+- register ENTRY *e1 = &entries[0];
+- register ENTRY *e2 = &entries[1];
+- char buf1[MAX_STRING], buf2[MAX_STRING];
++ ENTRY *e1 = &entries[0];
++ ENTRY *e2 = &entries[1];
++ char buf1[MAX_STRING];
++ char buf2[MAX_STRING];
+ int b1, b2;
+ int n1, n2;
+ char *s1, *s2;
++ bool found;
++ int extra = 1;
+
+ switch (type) {
+ case CMP_BOOLEAN:
++ check_user_definable(idx, BOOLWRITE);
+ b1 = e1->tterm.Booleans[idx];
+- b2 = e2->tterm.Booleans[idx];
+ switch (compare) {
+ case C_DIFFERENCE:
++ b2 = next_entry->Booleans[idx];
+ if (!(b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) && b1 != b2)
+ (void) printf("\t%s: %s%s%s.\n",
+ name,
+@@ -357,45 +446,93 @@
+ break;
+
+ case C_COMMON:
+- if (b1 == b2 && b1 != ABSENT_BOOLEAN)
+- (void) printf("\t%s= %s.\n", name, dump_boolean(b1));
++ if (b1 != ABSENT_BOOLEAN) {
++ found = TRUE;
++ for_each_entry() {
++ b2 = next_entry->Booleans[idx];
++ if (b1 != b2) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) printf("\t%s= %s.\n", name, dump_boolean(b1));
++ }
++ }
+ break;
+
+ case C_NAND:
+- if (b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN)
+- (void) printf("\t!%s.\n", name);
++ if (b1 == ABSENT_BOOLEAN) {
++ found = TRUE;
++ for_each_entry() {
++ b2 = next_entry->Booleans[idx];
++ if (b1 != b2) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) printf("\t!%s.\n", name);
++ }
++ }
+ break;
+ }
+ break;
+
+ case CMP_NUMBER:
++ check_user_definable(idx, NUMWRITE);
+ n1 = e1->tterm.Numbers[idx];
+- n2 = e2->tterm.Numbers[idx];
+- dump_numeric(n1, buf1);
+- dump_numeric(n2, buf2);
+ switch (compare) {
+ case C_DIFFERENCE:
+- if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2)
++ n2 = next_entry->Numbers[idx];
++ if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2) {
++ dump_numeric(n1, buf1);
++ dump_numeric(n2, buf2);
+ (void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
++ }
+ break;
+
+ case C_COMMON:
+- if (n1 != ABSENT_NUMERIC && n2 != ABSENT_NUMERIC && n1 == n2)
+- (void) printf("\t%s= %s.\n", name, buf1);
++ if (n1 != ABSENT_NUMERIC) {
++ found = TRUE;
++ for_each_entry() {
++ n2 = next_entry->Numbers[idx];
++ if (n1 != n2) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ dump_numeric(n1, buf1);
++ (void) printf("\t%s= %s.\n", name, buf1);
++ }
++ }
+ break;
+
+ case C_NAND:
+- if (n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)
+- (void) printf("\t!%s.\n", name);
++ if (n1 == ABSENT_NUMERIC) {
++ found = TRUE;
++ for_each_entry() {
++ n2 = next_entry->Numbers[idx];
++ if (n1 != n2) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) printf("\t!%s.\n", name);
++ }
++ }
+ break;
+ }
+ break;
+
+ case CMP_STRING:
++ check_user_definable(idx, STRWRITE);
+ s1 = e1->tterm.Strings[idx];
+- s2 = e2->tterm.Strings[idx];
+ switch (compare) {
+ case C_DIFFERENCE:
++ s2 = next_entry->Strings[idx];
+ if (capcmp(idx, s1, s2)) {
+ dump_string(s1, buf1);
+ dump_string(s2, buf2);
+@@ -405,13 +542,35 @@
+ break;
+
+ case C_COMMON:
+- if (s1 && s2 && !capcmp(idx, s1, s2))
+- (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1));
++ if (s1 != ABSENT_STRING) {
++ found = TRUE;
++ for_each_entry() {
++ s2 = next_entry->Strings[idx];
++ if (capcmp(idx, s1, s2) != 0) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1));
++ }
++ }
+ break;
+
+ case C_NAND:
+- if (!s1 && !s2)
+- (void) printf("\t!%s.\n", name);
++ if (s1 == ABSENT_STRING) {
++ found = TRUE;
++ for_each_entry() {
++ s2 = next_entry->Strings[idx];
++ if (s2 != s1) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) printf("\t!%s.\n", name);
++ }
++ }
+ break;
+ }
+ break;
+@@ -430,16 +589,37 @@
+ break;
+
+ case C_COMMON:
+- if (e1->nuses && e2->nuses && useeq(e1, e2)) {
+- (void) fputs("\tuse: ", stdout);
+- print_uses(e1, stdout);
+- fputs(".\n", stdout);
++ if (e1->nuses) {
++ found = TRUE;
++ for_each_entry() {
++ e2 = &entries[extra++];
++ if (e2->nuses != e1->nuses || !useeq(e1, e2)) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) fputs("\tuse: ", stdout);
++ print_uses(e1, stdout);
++ fputs(".\n", stdout);
++ }
+ }
+ break;
+
+ case C_NAND:
+- if (!e1->nuses && !e2->nuses)
+- (void) printf("\t!use.\n");
++ if (!e1->nuses) {
++ found = TRUE;
++ for_each_entry() {
++ e2 = &entries[extra++];
++ if (e2->nuses != e1->nuses) {
++ found = FALSE;
++ break;
++ }
++ }
++ if (found) {
++ (void) printf("\t!use.\n");
++ }
++ }
+ break;
+ }
+ }
+@@ -556,7 +736,7 @@
+ }
+
+ static bool
+-same_param(const char *table, const char *param, unsigned length)
++same_param(const char *table, const char *param, size_t length)
+ {
+ bool result = FALSE;
+ if (strncmp(table, param, length) == 0) {
+@@ -581,15 +761,15 @@
+ size_t tlen = strlen(ap->from);
+
+ if (same_param(ap->from, ep, tlen)) {
+- (void) strcat(dst, ap->to);
++ _nc_STRCAT(dst, ap->to, MAX_TERMINFO_LENGTH);
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found)
+- (void) strcat(dst, ep);
+- (void) strcat(dst, ";");
++ _nc_STRCAT(dst, ep, MAX_TERMINFO_LENGTH);
++ _nc_STRCAT(dst, ";", MAX_TERMINFO_LENGTH);
+ } while
+ ((ep = strtok((char *) 0, ";")));
+
+@@ -608,7 +788,7 @@
+ const assoc *ap;
+ int tp_lines = tp->Numbers[2];
+
+- if (cap == ABSENT_STRING || cap == CANCELLED_STRING)
++ if (!VALID_STRING(cap))
+ return;
+ (void) printf("%s: ", name);
+
+@@ -624,12 +804,13 @@
+ for (i = 0; i < STRCOUNT; i++) {
+ char *cp = tp->Strings[i];
+
+- /* don't use soft-key capabilities */
+- if (strnames[i][0] == 'k' && strnames[i][0] == 'f')
++ /* don't use function-key capabilities */
++ if (strnames[i][0] == 'k' && strnames[i][1] == 'f')
+ continue;
+
+- if (cp != ABSENT_STRING && cp != CANCELLED_STRING && cp[0] && cp
+- != cap) {
++ if (VALID_STRING(cp) &&
++ cp[0] != '\0' &&
++ cp != cap) {
+ len = strlen(cp);
+ (void) strncpy(buf2, sp, len);
+ buf2[len] = '\0';
+@@ -637,7 +818,7 @@
+ if (_nc_capcmp(cp, buf2))
+ continue;
+
+-#define ISRS(s) (!strncmp((s), "is", 2) || !strncmp((s), "rs", 2))
++#define ISRS(s) (!strncmp((s), "is", (size_t) 2) || !strncmp((s), "rs", (size_t) 2))
+ /*
+ * Theoretically we just passed the test for translation
+ * (equality once the padding is stripped). However, there
+@@ -677,12 +858,16 @@
+ /* now check for standard-mode sequences */
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0
+- && (len = strspn(sp + csi, "0123456789;"))
++ && (len = (strspn) (sp + csi, "0123456789;"))
+ && (len < sizeof(buf3))
+ && (next = (size_t) csi + len)
+ && ((sp[next] == 'h') || (sp[next] == 'l'))) {
+
+- (void) strcpy(buf2, (sp[next] == 'h') ? "ECMA+" : "ECMA-");
++ _nc_STRCPY(buf2,
++ ((sp[next] == 'h')
++ ? "ECMA+"
++ : "ECMA-"),
++ sizeof(buf2));
+ (void) strncpy(buf3, sp + csi, len);
+ buf3[len] = '\0';
+ len += (size_t) csi + 1;
+@@ -694,12 +879,16 @@
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0
+ && sp[csi] == '?'
+- && (len = strspn(sp + csi + 1, "0123456789;"))
++ && (len = (strspn) (sp + csi + 1, "0123456789;"))
+ && (len < sizeof(buf3))
+ && (next = (size_t) csi + 1 + len)
+ && ((sp[next] == 'h') || (sp[next] == 'l'))) {
+
+- (void) strcpy(buf2, (sp[next] == 'h') ? "DEC+" : "DEC-");
++ _nc_STRCPY(buf2,
++ ((sp[next] == 'h')
++ ? "DEC+"
++ : "DEC-"),
++ sizeof(buf2));
+ (void) strncpy(buf3, sp + csi + 1, len);
+ buf3[len] = '\0';
+ len += (size_t) csi + 2;
+@@ -710,12 +899,12 @@
+ /* now check for ECMA highlight sequences */
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0
+- && (len = strspn(sp + csi, "0123456789;")) != 0
++ && (len = (strspn) (sp + csi, "0123456789;")) != 0
+ && (len < sizeof(buf3))
+ && (next = (size_t) csi + len)
+ && sp[next] == 'm') {
+
+- (void) strcpy(buf2, "SGR:");
++ _nc_STRCPY(buf2, "SGR:", sizeof(buf2));
+ (void) strncpy(buf3, sp + csi, len);
+ buf3[len] = '\0';
+ len += (size_t) csi + 1;
+@@ -727,8 +916,8 @@
+ && (csi = skip_csi(sp)) != 0
+ && sp[csi] == 'm') {
+ len = (size_t) csi + 1;
+- (void) strcpy(buf2, "SGR:");
+- strcat(buf2, ecma_highlights[0].to);
++ _nc_STRCPY(buf2, "SGR:", sizeof(buf2));
++ _nc_STRCAT(buf2, ecma_highlights[0].to, sizeof(buf2));
+ expansion = buf2;
+ }
+
+@@ -739,7 +928,7 @@
+ expansion = "RSR";
+ len = 1;
+ } else {
+- (void) sprintf(buf2, "1;%dr", tp_lines);
++ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "1;%dr", tp_lines);
+ len = strlen(buf2);
+ if (strncmp(buf2, sp + csi, len) == 0)
+ expansion = "RSR";
+@@ -750,12 +939,12 @@
+ /* now check for home-down */
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0) {
+- (void) sprintf(buf2, "%d;1H", tp_lines);
++ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "%d;1H", tp_lines);
+ len = strlen(buf2);
+ if (strncmp(buf2, sp + csi, len) == 0) {
+ expansion = "LL";
+ } else {
+- (void) sprintf(buf2, "%dH", tp_lines);
++ _nc_SPRINTF(buf2, _nc_SLIMIT(sizeof(buf2)) "%dH", tp_lines);
+ len = strlen(buf2);
+ if (strncmp(buf2, sp + csi, len) == 0) {
+ expansion = "LL";
+@@ -795,12 +984,16 @@
+ int i, n;
+
+ memset(heads, 0, sizeof(heads));
+- dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, itrace, FALSE);
++ dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, 65535, itrace, FALSE);
+
+ for (n = 0; n < argc && n < MAXCOMPARE; n++) {
+ if (freopen(argv[n], "r", stdin) == 0)
+ _nc_err_abort("Can't open %s", argv[n]);
+
++#if NO_LEAKS
++ entered[n].head = _nc_head;
++ entered[n].tail = _nc_tail;
++#endif
+ _nc_head = _nc_tail = 0;
+
+ /* parse entries out of the source file */
+@@ -925,6 +1118,11 @@
+ #endif
+ if (!(entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp))) {
+ char name1[NAMESIZE], name2[NAMESIZE];
++ char *names[3];
++
++ names[0] = name1;
++ names[1] = name2;
++ names[2] = 0;
+
+ entries[0] = *qp;
+ entries[1] = *rp;
+@@ -934,29 +1132,17 @@
+
+ switch (compare) {
+ case C_DIFFERENCE:
+- if (itrace)
+- (void) fprintf(stderr,
+- "%s: dumping differences\n",
+- _nc_progname);
+- (void) printf("comparing %s to %s.\n", name1, name2);
++ show_comparing(names);
+ compare_entry(compare_predicate, &entries->tterm, quiet);
+ break;
+
+ case C_COMMON:
+- if (itrace)
+- (void) fprintf(stderr,
+- "%s: dumping common capabilities\n",
+- _nc_progname);
+- (void) printf("comparing %s to %s.\n", name1, name2);
++ show_comparing(names);
+ compare_entry(compare_predicate, &entries->tterm, quiet);
+ break;
+
+ case C_NAND:
+- if (itrace)
+- (void) fprintf(stderr,
+- "%s: dumping differences\n",
+- _nc_progname);
+- (void) printf("comparing %s to %s.\n", name1, name2);
++ show_comparing(names);
+ compare_entry(compare_predicate, &entries->tterm, quiet);
+ break;
+
+@@ -974,7 +1160,9 @@
+ "Usage: infocmp [options] [-A directory] [-B directory] [termname...]"
+ ,""
+ ,"Options:"
++ ," -0 print single-row"
+ ," -1 print single-column"
++ ," -K use termcap-names and BSD syntax"
+ ," -C use termcap-names"
+ ," -F compare terminfo-files"
+ ," -I use terminfo-names"
+@@ -982,6 +1170,7 @@
+ ," -R subset (see manpage)"
+ ," -T eliminate size limits (test)"
+ ," -U eliminate post-processing of entries"
++ ," -D print database locations"
+ ," -V print version"
+ #if NCURSES_XNAMES
+ ," -a with -F, list commented-out caps"
+@@ -1030,19 +1219,25 @@
+ any_initializer(const char *fmt, const char *type)
+ {
+ static char *initializer;
++ static size_t need;
+ char *s;
+
+- if (initializer == 0)
+- initializer = (char *) malloc(strlen(entries->tterm.term_names) +
+- strlen(type) + strlen(fmt));
++ if (initializer == 0) {
++ need = (strlen(entries->tterm.term_names)
++ + strlen(type)
++ + strlen(fmt));
++ initializer = (char *) malloc(need + 1);
++ if (initializer == 0)
++ failed("any_initializer");
++ }
+
+- (void) strcpy(initializer, entries->tterm.term_names);
++ _nc_STRCPY(initializer, entries->tterm.term_names, need);
+ for (s = initializer; *s != 0 && *s != '|'; s++) {
+ if (!isalnum(UChar(*s)))
+ *s = '_';
+ }
+ *s = 0;
+- (void) sprintf(s, fmt, type);
++ _nc_SPRINTF(s, _nc_SLIMIT(need) fmt, type);
+ return initializer;
+ }
+
+@@ -1073,9 +1268,10 @@
+
+ if (VALID_STRING(term->Strings[n])) {
+ tp = buf;
++#define TP_LIMIT ((MAX_STRING - 5) - (size_t)(tp - buf))
+ *tp++ = '"';
+ for (sp = term->Strings[n];
+- *sp != 0 && (tp - buf) < MAX_STRING - 6;
++ *sp != 0 && TP_LIMIT > 2;
+ sp++) {
+ if (isascii(UChar(*sp))
+ && isprint(UChar(*sp))
+@@ -1083,14 +1279,15 @@
+ && *sp != '"')
+ *tp++ = *sp;
+ else {
+- (void) sprintf(tp, "\\%03o", UChar(*sp));
++ _nc_SPRINTF(tp, _nc_SLIMIT(TP_LIMIT) "\\%03o", UChar(*sp));
+ tp += 4;
+ }
+ }
+ *tp++ = '"';
+ *tp = '\0';
+ (void) printf("static char %-20s[] = %s;\n",
+- string_variable(ExtStrname(term, n, strnames)), buf);
++ string_variable(ExtStrname(term, (int) n, strnames)),
++ buf);
+ }
+ }
+ printf("\n");
+@@ -1116,7 +1313,7 @@
+ break;
+ }
+ (void) printf("\t/* %3u: %-8s */\t%s,\n",
+- n, ExtBoolname(term, n, boolnames), str);
++ n, ExtBoolname(term, (int) n, boolnames), str);
+ }
+ (void) printf("%s;\n", R_CURL);
+
+@@ -1132,12 +1329,12 @@
+ str = "CANCELLED_NUMERIC";
+ break;
+ default:
+- sprintf(buf, "%d", term->Numbers[n]);
++ _nc_SPRINTF(buf, _nc_SLIMIT(sizeof(buf)) "%d", term->Numbers[n]);
+ str = buf;
+ break;
+ }
+ (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
+- ExtNumname(term, n, numnames), str);
++ ExtNumname(term, (int) n, numnames), str);
+ }
+ (void) printf("%s;\n", R_CURL);
+
+@@ -1150,10 +1347,10 @@
+ else if (term->Strings[n] == CANCELLED_STRING)
+ str = "CANCELLED_STRING";
+ else {
+- str = string_variable(ExtStrname(term, n, strnames));
++ str = string_variable(ExtStrname(term, (int) n, strnames));
+ }
+ (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
+- ExtStrname(term, n, strnames), str);
++ ExtStrname(term, (int) n, strnames), str);
+ }
+ (void) printf("%s;\n", R_CURL);
+
+@@ -1165,15 +1362,15 @@
+ name_initializer("string_ext"), L_CURL);
+ for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
+ (void) printf("\t/* %3u: bool */\t\"%s\",\n",
+- n, ExtBoolname(term, n, boolnames));
++ n, ExtBoolname(term, (int) n, boolnames));
+ }
+ for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
+ (void) printf("\t/* %3u: num */\t\"%s\",\n",
+- n, ExtNumname(term, n, numnames));
++ n, ExtNumname(term, (int) n, numnames));
+ }
+ for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
+ (void) printf("\t/* %3u: str */\t\"%s\",\n",
+- n, ExtStrname(term, n, strnames));
++ n, ExtStrname(term, (int) n, strnames));
+ }
+ (void) printf("%s;\n", R_CURL);
+ }
+@@ -1247,6 +1444,23 @@
+ return terminal;
+ }
+
++/*
++ * Show the databases that infocmp knows about. The location to which it writes is
++ */
++static void
++show_databases(void)
++{
++ DBDIRS state;
++ int offset;
++ const char *path2;
++
++ _nc_first_db(&state, &offset);
++ while ((path2 = _nc_next_db(&state, &offset)) != 0) {
++ printf("%s\n", path2);
++ }
++ _nc_last_db();
++}
++
+ /***************************************************************************
+ *
+ * Main sequence
+@@ -1269,7 +1483,7 @@
+ /* Also avoid overflowing smaller stacks on systems like AmigaOS */
+ path *tfile = 0;
+ char **tname = 0;
+- int maxterms;
++ size_t maxterms;
+
+ char **myargv;
+
+@@ -1287,18 +1501,27 @@
+ #if NCURSES_XNAMES
+ use_extended_names(FALSE);
+ #endif
++ _nc_strict_bsd = 0;
+
+ _nc_progname = _nc_rootname(argv[0]);
+
+ /* make sure we have enough space to add two terminal entries */
+ myargv = typeCalloc(char *, (size_t) (argc + 3));
++ if (myargv == 0)
++ failed("myargv");
++
+ memcpy(myargv, argv, (sizeof(char *) * (size_t) argc));
+ argv = myargv;
+
+ while ((c = getopt(argc,
+ argv,
+- "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != -1) {
++ "01A:aB:CcDdEeFfGgIiKLlnpqR:rs:TtUuVv:w:x")) != -1) {
+ switch (c) {
++ case '0':
++ mwidth = 65535;
++ mheight = 1;
++ break;
++
+ case '1':
+ mwidth = 0;
+ break;
+@@ -1317,6 +1540,9 @@
+ restdir = optarg;
+ break;
+
++ case 'K':
++ _nc_strict_bsd = 1;
++ /* FALLTHRU */
+ case 'C':
+ outform = F_TERMCAP;
+ tversion = "BSD";
+@@ -1324,6 +1550,11 @@
+ sortmode = S_TERMCAP;
+ break;
+
++ case 'D':
++ show_databases();
++ ExitProgram(EXIT_SUCCESS);
++ break;
++
+ case 'c':
+ compare = C_COMMON;
+ break;
+@@ -1441,7 +1672,7 @@
+ ExitProgram(EXIT_SUCCESS);
+
+ case 'v':
+- itrace = optarg_to_number();
++ itrace = (unsigned) optarg_to_number();
+ set_trace_level(itrace);
+ break;
+
+@@ -1460,10 +1691,17 @@
+ }
+ }
+
+- maxterms = (argc + 2 - optind);
+- tfile = typeMalloc(path, maxterms);
+- tname = typeCalloc(char *, maxterms);
+- entries = typeCalloc(ENTRY, maxterms);
++ maxterms = (size_t) (argc + 2 - optind);
++ if ((tfile = typeMalloc(path, maxterms)) == 0)
++ failed("tfile");
++ if ((tname = typeCalloc(char *, maxterms)) == 0)
++ failed("tname");
++ if ((entries = typeCalloc(ENTRY, maxterms)) == 0)
++ failed("entries");
++#if NO_LEAKS
++ if ((entered = typeCalloc(ENTERED, maxterms)) == 0)
++ failed("entered");
++#endif
+
+ if (tfile == 0
+ || tname == 0
+@@ -1476,9 +1714,6 @@
+ if (sortmode == S_DEFAULT)
+ sortmode = S_TERMINFO;
+
+- /* set up for display */
+- dump_init(tversion, outform, sortmode, mwidth, itrace, formatted);
+-
+ /* make sure we have at least one terminal name to work with */
+ if (optind >= argc)
+ argv[argc++] = terminal_env();
+@@ -1487,9 +1722,23 @@
+ if (compare != C_DEFAULT && optind >= argc - 1)
+ argv[argc++] = terminal_env();
+
++ /* exactly one terminal name with no options means display it */
+ /* exactly two terminal names with no options means do -d */
+- if (argc - optind == 2 && compare == C_DEFAULT)
+- compare = C_DIFFERENCE;
++ if (compare == C_DEFAULT) {
++ switch (argc - optind) {
++ default:
++ fprintf(stderr, "%s: too many names to compare\n", _nc_progname);
++ ExitProgram(EXIT_FAILURE);
++ case 1:
++ break;
++ case 2:
++ compare = C_DIFFERENCE;
++ break;
++ }
++ }
++
++ /* set up for display */
++ dump_init(tversion, outform, sortmode, mwidth, mheight, itrace, formatted);
+
+ if (!filecompare) {
+ /* grab the entries */
+@@ -1501,15 +1750,17 @@
+ tname[termcount] = argv[optind];
+
+ if (directory) {
+-#if USE_DATABASE
++#if NCURSES_USE_DATABASE
+ #if MIXEDCASE_FILENAMES
+ #define LEAF_FMT "%c"
+ #else
+ #define LEAF_FMT "%02x"
+ #endif
+- (void) sprintf(tfile[termcount], "%s/" LEAF_FMT "/%s",
+- directory,
+- UChar(*argv[optind]), argv[optind]);
++ _nc_SPRINTF(tfile[termcount],
++ _nc_SLIMIT(sizeof(path))
++ "%s/" LEAF_FMT "/%s",
++ directory,
++ UChar(*argv[optind]), argv[optind]);
+ if (itrace)
+ (void) fprintf(stderr,
+ "%s: reading entry %s from file %s\n",
+@@ -1599,27 +1850,17 @@
+ break;
+
+ case C_DIFFERENCE:
+- if (itrace)
+- (void) fprintf(stderr, "%s: dumping differences\n", _nc_progname);
+- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
++ show_comparing(tname);
+ compare_entry(compare_predicate, &entries->tterm, quiet);
+ break;
+
+ case C_COMMON:
+- if (itrace)
+- (void) fprintf(stderr,
+- "%s: dumping common capabilities\n",
+- _nc_progname);
+- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
++ show_comparing(tname);
+ compare_entry(compare_predicate, &entries->tterm, quiet);
+ break;
+
+ case C_NAND:
+- if (itrace)
+- (void) fprintf(stderr,
+- "%s: dumping differences\n",
+- _nc_progname);
+- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
++ show_comparing(tname);
+ compare_entry(compare_predicate, &entries->tterm, quiet);
+ break;
+
+@@ -1640,15 +1881,16 @@
+ break;
+ }
+ }
+- } else if (compare == C_USEALL)
++ } else if (compare == C_USEALL) {
+ (void) fprintf(stderr, "Sorry, -u doesn't work with -F\n");
+- else if (compare == C_DEFAULT)
++ } else if (compare == C_DEFAULT) {
+ (void) fprintf(stderr, "Use `tic -[CI] <file>' for this.\n");
+- else if (argc - optind != 2)
++ } else if (argc - optind != 2) {
+ (void) fprintf(stderr,
+ "File comparison needs exactly two file arguments.\n");
+- else
++ } else {
+ file_comparison(argc - optind, argv + optind);
++ }
+
+ MAIN_LEAKS();
+ ExitProgram(EXIT_SUCCESS);
+Index: progs/modules
+Prereq: 1.17
+--- ncurses-5.9/progs/modules 2010-01-23 17:47:23.000000000 +0000
++++ ncurses-5.9-20141206/progs/modules 2014-05-21 17:01:28.000000000 +0000
+@@ -1,7 +1,7 @@
+-# $Id: modules,v 1.17 2010/01/23 17:47:23 tom Exp $
++# $Id: modules,v 1.18 2014/05/21 17:01:28 tom Exp $
+ # Program modules (some are in ncurses lib!)
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2010,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -33,12 +33,13 @@
+
+ @ base
+ clear progs $(srcdir) $(HEADER_DEPS)
+-tic progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h
++tic progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h $(srcdir)/tparm_type.h
+ toe progs $(srcdir) $(HEADER_DEPS) $(INCDIR)/hashed_db.h
+ dump_entry progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
+ infocmp progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h
+ tabs progs $(srcdir) $(HEADER_DEPS)
+-tput progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h termsort.c
++tparm_type progs $(srcdir) $(HEADER_DEPS) $(srcdir)/tparm_type.h
++tput progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h $(srcdir)/tparm_type.h termsort.c
+ tset progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
+ transform progs $(srcdir) $(HEADER_DEPS) transform.h
+
+Index: progs/progs.priv.h
+Prereq: 1.34
+--- ncurses-5.9/progs/progs.priv.h 2008-08-03 17:43:05.000000000 +0000
++++ ncurses-5.9-20141206/progs/progs.priv.h 2014-05-21 17:00:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,19 +30,22 @@
+ * Author: Thomas E. Dickey 1997-on *
+ ****************************************************************************/
+ /*
+- * $Id: progs.priv.h,v 1.34 2008/08/03 17:43:05 tom Exp $
++ * $Id: progs.priv.h,v 1.40 2014/05/21 17:00:19 tom Exp $
+ *
+ * progs.priv.h
+ *
+ * Header file for curses utility programs
+ */
+
++#ifndef PROGS_PRIV_H
++#define PROGS_PRIV_H 1
++
+ #include <ncurses_cfg.h>
+
+ #if USE_RCS_IDS
+ #define MODULE_ID(id) static const char Ident[] = id;
+ #else
+-#define MODULE_ID(id) /*nothing*/
++#define MODULE_ID(id) /*nothing */
+ #endif
+
+ #include <stdlib.h>
+@@ -90,6 +93,14 @@
+ # endif
+ #endif
+
++#if HAVE_INTTYPES_H
++# include <inttypes.h>
++#else
++# if HAVE_STDINT_H
++# include <stdint.h>
++# endif
++#endif
++
+ #include <assert.h>
+ #include <errno.h>
+
+@@ -99,7 +110,7 @@
+
+ #if HAVE_GETOPT_H
+ #include <getopt.h>
+-#else
++#elif !defined(HAVE_GETOPT_HEADER)
+ /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its
+ * variables doesn't hurt.
+ */
+@@ -109,9 +120,11 @@
+
+ #include <curses.h>
+ #include <term_entry.h>
++#include <nc_termios.h>
+ #include <tic.h>
+ #include <nc_tparm.h>
+
++#include <nc_string.h>
+ #include <nc_alloc.h>
+ #if HAVE_NC_FREEALL
+ #undef ExitProgram
+@@ -171,7 +184,7 @@
+ # elif defined(MAXPATHLEN)
+ # define PATH_MAX MAXPATHLEN
+ # else
+-# define PATH_MAX 255 /* the Posix minimum pathsize */
++# define PATH_MAX 255 /* the Posix minimum pathsize */
+ # endif
+ #endif
+
+@@ -183,10 +196,12 @@
+ # if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
+ # define isascii(c) (UChar(c) <= 127)
+ # else
+-# define isascii(c) 1 /* not really ascii anyway */
++# define isascii(c) 1 /* not really ascii anyway */
+ # endif
+ #endif
+
+ #define UChar(c) ((unsigned char)(c))
+
+ #define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
++
++#endif /* PROGS_PRIV_H */
+Index: progs/tabs.c
+Prereq: 1.19
+--- ncurses-5.9/progs/tabs.c 2010-10-23 22:26:01.000000000 +0000
++++ ncurses-5.9-20141206/progs/tabs.c 2013-06-11 08:18:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -37,12 +37,20 @@
+ #define USE_LIBTINFO
+ #include <progs.priv.h>
+
+-MODULE_ID("$Id: tabs.c,v 1.19 2010/10/23 22:26:01 tom Exp $")
++MODULE_ID("$Id: tabs.c,v 1.34 2013/06/11 08:18:27 tom Exp $")
+
+ static void usage(void) GCC_NORETURN;
+
++static char *prg_name;
+ static int max_cols;
+
++static void
++failed(const char *s)
++{
++ perror(s);
++ ExitProgram(EXIT_FAILURE);
++}
++
+ static int
+ putch(int c)
+ {
+@@ -83,28 +91,29 @@
+ int prior = 0;
+ int ch;
+
+- if (result != 0) {
+- while ((ch = *tab_list++) != '\0') {
+- if (isdigit(UChar(ch))) {
+- value *= 10;
+- value += (ch - '0');
+- } else if (ch == ',') {
+- result[n] = value + prior;
+- if (n > 0 && result[n] <= result[n - 1]) {
+- fprintf(stderr,
+- "tab-stops are not in increasing order: %d %d\n",
+- value, result[n - 1]);
+- free(result);
+- result = 0;
+- break;
+- }
+- ++n;
+- value = 0;
+- prior = 0;
+- } else if (ch == '+') {
+- if (n)
+- prior = result[n - 1];
++ if (result == 0)
++ failed("decode_tabs");
++
++ while ((ch = *tab_list++) != '\0') {
++ if (isdigit(UChar(ch))) {
++ value *= 10;
++ value += (ch - '0');
++ } else if (ch == ',') {
++ result[n] = value + prior;
++ if (n > 0 && result[n] <= result[n - 1]) {
++ fprintf(stderr,
++ "%s: tab-stops are not in increasing order: %d %d\n",
++ prg_name, value, result[n - 1]);
++ free(result);
++ result = 0;
++ break;
+ }
++ ++n;
++ value = 0;
++ prior = 0;
++ } else if (ch == '+') {
++ if (n)
++ prior = result[n - 1];
+ }
+ }
+
+@@ -114,6 +123,7 @@
+ */
+ if ((n == 0) && (value > 0)) {
+ int step = value;
++ value = 1;
+ while (n < max_cols - 1) {
+ result[n++] = value;
+ value += step;
+@@ -126,6 +136,7 @@
+ result[n++] = value + prior;
+ result[n] = 0;
+ }
++
+ return result;
+ }
+
+@@ -140,10 +151,11 @@
+ for (n = 0; n < max_cols; n += 10) {
+ int ch = 1 + (n / 10);
+ char buffer[20];
+- sprintf(buffer, "----+----%c",
+- ((ch < 10)
+- ? (ch + '0')
+- : (ch + 'A' - 10)));
++ _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer))
++ "----+----%c",
++ ((ch < 10)
++ ? (ch + '0')
++ : (ch + 'A' - 10)));
+ printf("%.*s", ((max_cols - n) > 10) ? 10 : (max_cols - n), buffer);
+ }
+ putchar('\n');
+@@ -227,7 +239,7 @@
+ bool result = FALSE;
+
+ if (source != 0) {
+- unsigned len = strlen(source);
++ size_t len = strlen(source);
+ if (len != 0)
+ result = (source[len - 1] != ',');
+ } else {
+@@ -251,7 +263,7 @@
+
+ if (copied != 0 && *copied != '\0') {
+ const char *comma = ",";
+- unsigned need = 1 + strlen(copied);
++ size_t need = 1 + strlen(copied);
+
+ if (*copied == ',')
+ comma = "";
+@@ -263,15 +275,16 @@
+ need += strlen(*append);
+
+ result = malloc(need);
+- if (result != 0) {
+- *result = '\0';
+- if (*append != 0) {
+- strcpy(result, *append);
+- free(*append);
+- }
+- strcat(result, comma);
+- strcat(result, copied);
++ if (result == 0)
++ failed("add_to_tab_list");
++
++ *result = '\0';
++ if (*append != 0) {
++ _nc_STRCPY(result, *append, need);
++ free(*append);
+ }
++ _nc_STRCAT(result, comma, need);
++ _nc_STRCAT(result, copied, need);
+
+ *append = result;
+ }
+@@ -282,7 +295,7 @@
+ * Check for illegal characters in the tab-list.
+ */
+ static bool
+-legal_tab_list(const char *program, const char *tab_list)
++legal_tab_list(const char *tab_list)
+ {
+ bool result = TRUE;
+
+@@ -294,22 +307,34 @@
+ if (!(isdigit(ch) || ch == ',' || ch == '+')) {
+ fprintf(stderr,
+ "%s: unexpected character found '%c'\n",
+- program, ch);
++ prg_name, ch);
+ result = FALSE;
+ break;
+ }
+ }
+ } else {
+- fprintf(stderr, "%s: trailing comma found '%s'\n", program, tab_list);
++ fprintf(stderr, "%s: trailing comma found '%s'\n", prg_name, tab_list);
+ result = FALSE;
+ }
+ } else {
+- fprintf(stderr, "%s: no tab-list given\n", program);
++ fprintf(stderr, "%s: no tab-list given\n", prg_name);
+ result = FALSE;
+ }
+ return result;
+ }
+
++static char *
++skip_list(char *value)
++{
++ while (*value != '\0' &&
++ (isdigit(UChar(*value)) ||
++ isspace(UChar(*value)) ||
++ strchr("+,", UChar(*value)) != 0)) {
++ ++value;
++ }
++ return value;
++}
++
+ static void
+ usage(void)
+ {
+@@ -332,6 +357,7 @@
+ ," -s SNOBOL"
+ ," -u UNIVAC 1100 Assembler"
+ ," -T name use terminal type 'name'"
++ ," -V print version"
+ ,""
+ ,"A tabstop-list is an ordered list of column numbers, e.g., 1,11,21"
+ ,"or 1,+10,+10 which is the same."
+@@ -353,10 +379,11 @@
+ bool no_op = FALSE;
+ int n, ch;
+ NCURSES_CONST char *term_name = 0;
+- const char *mar_list = 0; /* ignored */
+ char *append = 0;
+ const char *tab_list = 0;
+
++ prg_name = _nc_rootname(argv[0]);
++
+ if ((term_name = getenv("TERM")) == 0)
+ term_name = "ansi+tabs";
+
+@@ -368,23 +395,25 @@
+ while ((ch = *++option) != '\0') {
+ switch (ch) {
+ case 'a':
+- switch (*option) {
++ switch (*++option) {
++ default:
+ case '\0':
+ tab_list = "1,10,16,36,72";
++ option--;
+ /* Assembler, IBM S/370, first format */
+ break;
+ case '2':
+ tab_list = "1,10,16,40,72";
+ /* Assembler, IBM S/370, second format */
+ break;
+- default:
+- usage();
+ }
+ break;
+ case 'c':
+- switch (*option) {
++ switch (*++option) {
++ default:
+ case '\0':
+ tab_list = "1,8,12,16,20,55";
++ option--;
+ /* COBOL, normal format */
+ break;
+ case '2':
+@@ -395,8 +424,6 @@
+ tab_list = "1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67";
+ /* COBOL compact format extended */
+ break;
+- default:
+- usage();
+ }
+ break;
+ case 'd': /* ncurses extension */
+@@ -427,17 +454,22 @@
+ term_name = option;
+ } else {
+ term_name = argv[n++];
++ option--;
+ }
+ option += ((int) strlen(option)) - 1;
+ continue;
++ case 'V':
++ puts(curses_version());
++ ExitProgram(EXIT_SUCCESS);
+ default:
+ if (isdigit(UChar(*option))) {
+- tab_list = option;
+- ++n;
++ char *copy = strdup(option);
++ *skip_list(copy) = '\0';
++ tab_list = copy;
++ option = skip_list(option) - 1;
+ } else {
+ usage();
+ }
+- option += ((int) strlen(option)) - 1;
+ break;
+ }
+ }
+@@ -446,7 +478,11 @@
+ while ((ch = *++option) != '\0') {
+ switch (ch) {
+ case 'm':
+- mar_list = option;
++ /*
++ * The "+mXXX" option is unimplemented because only the long-obsolete
++ * att510d implements smgl, which is needed to support
++ * this option.
++ */
+ break;
+ default:
+ /* special case of relative stops separated by spaces? */
+@@ -477,12 +513,12 @@
+ if (!VALID_STRING(clear_all_tabs)) {
+ fprintf(stderr,
+ "%s: terminal type '%s' cannot reset tabs\n",
+- argv[0], term_name);
++ prg_name, term_name);
+ } else if (!VALID_STRING(set_tab)) {
+ fprintf(stderr,
+ "%s: terminal type '%s' cannot set tabs\n",
+- argv[0], term_name);
+- } else if (legal_tab_list(argv[0], tab_list)) {
++ prg_name, term_name);
++ } else if (legal_tab_list(tab_list)) {
+ int *list = decode_tabs(tab_list);
+
+ if (!no_op)
+Index: progs/tic.c
+Prereq: 1.147
+--- ncurses-5.9/progs/tic.c 2011-02-12 18:39:08.000000000 +0000
++++ ncurses-5.9-20141206/progs/tic.c 2014-10-18 09:34:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -35,6 +35,7 @@
+ /*
+ * tic.c --- Main program for terminfo compiler
+ * by Eric S. Raymond
++ * and Thomas E Dickey
+ *
+ */
+
+@@ -42,9 +43,14 @@
+ #include <sys/stat.h>
+
+ #include <dump_entry.h>
++#include <tparm_type.h>
++#include <hashed_db.h>
++#include <parametrized.h>
+ #include <transform.h>
+
+-MODULE_ID("$Id: tic.c,v 1.147 2011/02/12 18:39:08 tom Exp $")
++MODULE_ID("$Id: tic.c,v 1.208 2014/10/18 09:34:29 tom Exp $")
++
++#define STDIN_NAME "<stdin>"
+
+ const char *_nc_progname = "tic";
+
+@@ -53,6 +59,7 @@
+ static bool capdump = FALSE; /* running as infotocap? */
+ static bool infodump = FALSE; /* running as captoinfo? */
+ static bool showsummary = FALSE;
++static char **namelst = 0;
+ static const char *to_remove;
+
+ static void (*save_check_termtype) (TERMTYPE *, bool);
+@@ -69,11 +76,13 @@
+ 1\
+ a\
+ C\
++D\
+ c\
+ f\
+ G\
+ g\
+ I\
++K\
+ L\
+ N\
+ r\
+@@ -99,8 +108,10 @@
+ #endif
+
+ static void
+-cleanup(char **namelst GCC_UNUSED)
++cleanup(void)
+ {
++ int rc;
++
+ #if NO_LEAKS
+ free_namelist(namelst);
+ #endif
+@@ -108,10 +119,12 @@
+ fclose(tmp_fp);
+ if (to_remove != 0) {
+ #if HAVE_REMOVE
+- remove(to_remove);
++ rc = remove(to_remove);
+ #else
+- unlink(to_remove);
++ rc = unlink(to_remove);
+ #endif
++ if (rc != 0)
++ perror(to_remove);
+ }
+ }
+
+@@ -119,7 +132,6 @@
+ failed(const char *msg)
+ {
+ perror(msg);
+- cleanup((char **) 0);
+ ExitProgram(EXIT_FAILURE);
+ }
+
+@@ -134,12 +146,14 @@
+ " -a retain commented-out capabilities (sets -x also)",
+ #endif
+ " -C translate entries to termcap source form",
++ " -D print list of tic's database locations (first must be writable)",
+ " -c check only, validate input without compiling or translating",
+ " -e<names> translate/compile only entries named by comma-separated list",
+ " -f format complex strings for readability",
+ " -G format %{number} to %'char'",
+ " -g format %'char' to %{number}",
+ " -I translate entries to terminfo source form",
++ " -K translate entries to termcap source form with BSD syntax",
+ " -L translate entries to full terminfo source form",
+ " -N disable smart defaults for source translation",
+ " -o<dir> set output directory for compiled entry writes",
+@@ -173,7 +187,7 @@
+
+ #define L_BRACE '{'
+ #define R_BRACE '}'
+-#define S_QUOTE '\'';
++#define S_QUOTE '\''
+
+ static void
+ write_it(ENTRY * ep)
+@@ -216,12 +230,12 @@
+ }
+ *d = 0;
+ if (strlen(result) < strlen(s))
+- strcpy(s, result);
++ _nc_STRCPY(s, result, strlen(s) + 1);
+ }
+ }
+
+ _nc_set_type(_nc_first_name(ep->tterm.term_names));
+- _nc_curr_line = ep->startline;
++ _nc_curr_line = (int) ep->startline;
+ _nc_write_entry(&ep->tterm);
+ }
+
+@@ -286,8 +300,10 @@
+ if (in_name) {
+ if (used + 1 >= have) {
+ have += 132;
+- namebuf = typeRealloc(char, have, namebuf);
+- suffix = typeRealloc(char, have, suffix);
++ if ((namebuf = typeRealloc(char, have, namebuf)) == 0)
++ failed("put_translate namebuf");
++ if ((suffix = typeRealloc(char, have, suffix)) == 0)
++ failed("put_translate suffix");
+ }
+ if (c == '\n' || c == '@') {
+ namebuf[used++] = '\0';
+@@ -308,7 +324,7 @@
+ if ((up = strchr(namebuf, '#')) != 0
+ || (up = strchr(namebuf, '=')) != 0
+ || ((up = strchr(namebuf, '@')) != 0 && up[1] == '>')) {
+- (void) strcpy(suffix, up);
++ _nc_STRCPY(suffix, up, have);
+ *up = '\0';
+ }
+
+@@ -339,39 +355,122 @@
+ static char *
+ stripped(char *src)
+ {
++ char *dst = 0;
++
+ while (isspace(UChar(*src)))
+ src++;
++
+ if (*src != '\0') {
+- char *dst;
+ size_t len;
+
+- if ((dst = strdup(src)) == NULL)
++ if ((dst = strdup(src)) == NULL) {
+ failed("strdup");
++ } else {
++ len = strlen(dst);
++ while (--len != 0 && isspace(UChar(dst[len])))
++ dst[len] = '\0';
++ }
++ }
++ return dst;
++}
++
++static FILE *
++open_tempfile(char *filename)
++{
++ FILE *result = 0;
++
++ _nc_STRCPY(filename, "/tmp/XXXXXX", PATH_MAX);
++#if HAVE_MKSTEMP
++ {
++ int oldmask = (int) umask(077);
++ int fd = mkstemp(filename);
++ if (fd >= 0)
++ result = fdopen(fd, "w");
++ umask((mode_t) oldmask);
++ }
++#else
++ if (tmpnam(filename) != 0)
++ result = fopen(filename, "w");
++#endif
++ return result;
++}
+
+- assert(dst != 0);
++static FILE *
++copy_input(FILE *source, const char *filename, char *alt_file)
++{
++ char my_altfile[PATH_MAX];
++ FILE *result = 0;
++ FILE *target = 0;
++ int ch;
+
+- len = strlen(dst);
+- while (--len != 0 && isspace(UChar(dst[len])))
+- dst[len] = '\0';
+- return dst;
++ if (alt_file == 0)
++ alt_file = my_altfile;
++
++ if (source == 0) {
++ failed("copy_input (source)");
++ } else if ((target = open_tempfile(alt_file)) == 0) {
++ failed("copy_input (target)");
++ } else {
++ clearerr(source);
++ for (;;) {
++ ch = fgetc(source);
++ if (feof(source)) {
++ break;
++ } else if (ferror(source)) {
++ failed(filename);
++ } else if (ch == 0) {
++ /* don't loop in case someone wants to convert /dev/zero */
++ fprintf(stderr, "%s: %s is not a text-file\n", _nc_progname, filename);
++ ExitProgram(EXIT_FAILURE);
++ }
++ fputc(ch, target);
++ }
++ fclose(source);
++ /*
++ * rewind() does not force the target file's data to disk (not does
++ * fflush()...). So open a second stream on the data and then close
++ * the one that we were writing on before starting to read from the
++ * second stream.
++ */
++ result = fopen(alt_file, "r+");
++ fclose(target);
++ to_remove = strdup(alt_file);
+ }
+- return 0;
++ return result;
+ }
+
+ static FILE *
+-open_input(const char *filename)
++open_input(const char *filename, char *alt_file)
+ {
+- FILE *fp = fopen(filename, "r");
++ FILE *fp;
+ struct stat sb;
++ int mode;
+
+- if (fp == 0) {
+- fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
++ if (!strcmp(filename, "-")) {
++ fp = copy_input(stdin, STDIN_NAME, alt_file);
++ } else if (stat(filename, &sb) < 0) {
++ fprintf(stderr, "%s: %s %s\n", _nc_progname, filename, strerror(errno));
+ ExitProgram(EXIT_FAILURE);
+- }
+- if (fstat(fileno(fp), &sb) < 0
+- || (sb.st_mode & S_IFMT) != S_IFREG) {
++ } else if ((mode = (sb.st_mode & S_IFMT)) == S_IFDIR
++ || (mode != S_IFREG && mode != S_IFCHR && mode != S_IFIFO)) {
+ fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
+ ExitProgram(EXIT_FAILURE);
++ } else {
++ fp = fopen(filename, "r");
++
++ if (fp == 0) {
++ fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
++ ExitProgram(EXIT_FAILURE);
++ }
++ if (mode != S_IFREG) {
++ if (alt_file != 0) {
++ FILE *fp2 = copy_input(fp, filename, alt_file);
++ fp = fp2;
++ } else {
++ fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
++ ExitProgram(EXIT_FAILURE);
++ }
++ }
+ }
+ return fp;
+ }
+@@ -389,7 +488,7 @@
+ if (src == 0) {
+ /* EMPTY */ ;
+ } else if (strchr(src, '/') != 0) { /* a filename */
+- FILE *fp = open_input(src);
++ FILE *fp = open_input(src, (char *) 0);
+
+ for (pass = 1; pass <= 2; pass++) {
+ nn = 0;
+@@ -403,7 +502,8 @@
+ }
+ }
+ if (pass == 1) {
+- dst = typeCalloc(char *, nn + 1);
++ if ((dst = typeCalloc(char *, nn + 1)) == 0)
++ failed("make_namelist");
+ rewind(fp);
+ }
+ }
+@@ -425,8 +525,10 @@
+ if (mark == '\0')
+ break;
+ }
+- if (pass == 1)
+- dst = typeCalloc(char *, nn + 1);
++ if (pass == 1) {
++ if ((dst = typeCalloc(char *, nn + 1)) == 0)
++ failed("make_namelist");
++ }
+ }
+ }
+ if (showsummary && (dst != 0)) {
+@@ -456,26 +558,118 @@
+ return (code);
+ }
+
+-static FILE *
+-open_tempfile(char *name)
++static char *
++valid_db_path(const char *nominal)
+ {
+- FILE *result = 0;
+-#if HAVE_MKSTEMP
+- int fd = mkstemp(name);
+- if (fd >= 0)
+- result = fdopen(fd, "w");
++ struct stat sb;
++#if USE_HASHED_DB
++ char suffix[] = DBM_SUFFIX;
++ size_t need = strlen(nominal) + sizeof(suffix);
++ char *result = malloc(need);
++
++ if (result == 0)
++ failed("valid_db_path");
++ _nc_STRCPY(result, nominal, need);
++ if (strcmp(result + need - sizeof(suffix), suffix)) {
++ _nc_STRCAT(result, suffix, need);
++ }
++#else
++ char *result = strdup(nominal);
++#endif
++
++ DEBUG(1, ("** stat(%s)", result));
++ if (stat(result, &sb) >= 0) {
++#if USE_HASHED_DB
++ if (!S_ISREG(sb.st_mode)
++ || access(result, R_OK | W_OK) != 0) {
++ DEBUG(1, ("...not a writable file"));
++ free(result);
++ result = 0;
++ }
+ #else
+- if (tmpnam(name) != 0)
+- result = fopen(name, "w");
++ if (!S_ISDIR(sb.st_mode)
++ || access(result, R_OK | W_OK | X_OK) != 0) {
++ DEBUG(1, ("...not a writable directory"));
++ free(result);
++ result = 0;
++ }
+ #endif
++ } else {
++ /* check if parent is directory and is writable */
++ unsigned leaf = _nc_pathlast(result);
++
++ DEBUG(1, ("...not found"));
++ if (leaf) {
++ char save = result[leaf];
++ result[leaf] = 0;
++ if (stat(result, &sb) >= 0
++ && S_ISDIR(sb.st_mode)
++ && access(result, R_OK | W_OK | X_OK) == 0) {
++ result[leaf] = save;
++ } else {
++ DEBUG(1, ("...parent directory %s is not writable", result));
++ free(result);
++ result = 0;
++ }
++ } else {
++ DEBUG(1, ("... no parent directory"));
++ free(result);
++ result = 0;
++ }
++ }
+ return result;
+ }
+
++/*
++ * Show the databases to which tic could write. The location to which it
++ * writes is always the first one. If none are writable, print an error
++ * message.
++ */
++static void
++show_databases(const char *outdir)
++{
++ bool specific = (outdir != 0) || getenv("TERMINFO") != 0;
++ char *result;
++ const char *tried = 0;
++
++ if (outdir == 0) {
++ outdir = _nc_tic_dir(0);
++ }
++ if ((result = valid_db_path(outdir)) != 0) {
++ printf("%s\n", result);
++ free(result);
++ } else {
++ tried = outdir;
++ }
++
++ if ((outdir = _nc_home_terminfo())) {
++ if ((result = valid_db_path(outdir)) != 0) {
++ printf("%s\n", result);
++ free(result);
++ } else if (!specific) {
++ tried = outdir;
++ }
++ }
++
++ /*
++ * If we can write in neither location, give an error message.
++ */
++ if (tried) {
++ fflush(stdout);
++ fprintf(stderr, "%s: %s (no permission)\n", _nc_progname, tried);
++ ExitProgram(EXIT_FAILURE);
++ }
++}
++
++#define VtoTrace(opt) (unsigned) ((opt > 0) ? opt : (opt == 0))
++
+ int
+ main(int argc, char *argv[])
+ {
+ char my_tmpname[PATH_MAX];
+- int v_opt = -1, debug_level;
++ char my_altfile[PATH_MAX];
++ int v_opt = -1;
++ unsigned debug_level;
+ int smart_defaults = TRUE;
+ char *termcap;
+ ENTRY *qp;
+@@ -486,6 +680,7 @@
+ int sortmode = S_TERMINFO; /* sort_mode */
+
+ int width = 60;
++ int height = 65535;
+ bool formatted = FALSE; /* reformat complex strings? */
+ bool literal = FALSE; /* suppress post-processing? */
+ int numbers = 0; /* format "%'char'" to/from "%{number}" */
+@@ -493,7 +688,6 @@
+ bool limited = TRUE;
+ char *tversion = (char *) NULL;
+ const char *source_file = "terminfo";
+- char **namelst = 0;
+ char *outdir = (char *) NULL;
+ bool check_only = FALSE;
+ bool suppress_untranslatable = FALSE;
+@@ -501,6 +695,7 @@
+ log_fp = stderr;
+
+ _nc_progname = _nc_rootname(argv[0]);
++ atexit(cleanup);
+
+ if ((infodump = same_program(_nc_progname, PROG_CAPTOINFO)) != FALSE) {
+ outform = F_TERMINFO;
+@@ -513,6 +708,7 @@
+ #if NCURSES_XNAMES
+ use_extended_names(FALSE);
+ #endif
++ _nc_strict_bsd = 0;
+
+ /*
+ * Processing arguments is a little complicated, since someone made a
+@@ -520,7 +716,7 @@
+ * be optional.
+ */
+ while ((this_opt = getopt(argc, argv,
+- "0123456789CILNR:TUVace:fGgo:rstvwx")) != -1) {
++ "0123456789CDIKLNR:TUVace:fGgo:rstvwx")) != -1) {
+ if (isdigit(this_opt)) {
+ switch (last_opt) {
+ case 'v':
+@@ -530,19 +726,40 @@
+ width = (width * 10) + (this_opt - '0');
+ break;
+ default:
+- if (this_opt != '1')
++ switch (this_opt) {
++ case '0':
++ last_opt = this_opt;
++ width = 65535;
++ height = 1;
++ break;
++ case '1':
++ last_opt = this_opt;
++ width = 0;
++ break;
++ default:
+ usage();
+- last_opt = this_opt;
+- width = 0;
++ }
+ }
+ continue;
+ }
+ switch (this_opt) {
++ case 'K':
++ _nc_strict_bsd = 1;
++ /* the initial version of -K in 20110730 fell-thru here, but the
++ * same flag is useful when reading sources -TD
++ */
++ break;
+ case 'C':
+ capdump = TRUE;
+ outform = F_TERMCAP;
+ sortmode = S_TERMCAP;
+ break;
++ case 'D':
++ debug_level = VtoTrace(v_opt);
++ set_trace_level(debug_level);
++ show_databases(outdir);
++ ExitProgram(EXIT_SUCCESS);
++ break;
+ case 'I':
+ infodump = TRUE;
+ outform = F_TERMINFO;
+@@ -568,7 +785,6 @@
+ break;
+ case 'V':
+ puts(curses_version());
+- cleanup(namelst);
+ ExitProgram(EXIT_SUCCESS);
+ case 'c':
+ check_only = TRUE;
+@@ -618,7 +834,7 @@
+ last_opt = this_opt;
+ }
+
+- debug_level = (v_opt > 0) ? v_opt : (v_opt == 0);
++ debug_level = VtoTrace(v_opt);
+ set_trace_level(debug_level);
+
+ if (_nc_tracing) {
+@@ -638,8 +854,8 @@
+ */
+ if (namelst && (!infodump && !capdump)) {
+ (void) fprintf(stderr,
+- "Sorry, -e can't be used without -I or -C\n");
+- cleanup(namelst);
++ "%s: Sorry, -e can't be used without -I or -C\n",
++ _nc_progname);
+ ExitProgram(EXIT_FAILURE);
+ }
+ #endif /* HAVE_BIG_CORE */
+@@ -663,16 +879,16 @@
+ if (access(termcap, F_OK) == 0) {
+ /* file exists */
+ source_file = termcap;
+- } else if ((tmp_fp = open_tempfile(strcpy(my_tmpname,
+- "/tmp/XXXXXX")))
+- != 0) {
+- source_file = my_tmpname;
+- fprintf(tmp_fp, "%s\n", termcap);
+- fclose(tmp_fp);
+- tmp_fp = open_input(source_file);
+- to_remove = source_file;
+ } else {
+- failed("tmpnam");
++ if ((tmp_fp = open_tempfile(my_tmpname)) != 0) {
++ source_file = my_tmpname;
++ fprintf(tmp_fp, "%s\n", termcap);
++ fclose(tmp_fp);
++ tmp_fp = open_input(source_file, (char *) 0);
++ to_remove = source_file;
++ } else {
++ failed("tmpnam");
++ }
+ }
+ }
+ } else {
+@@ -682,24 +898,28 @@
+ _nc_progname,
+ _nc_progname,
+ usage_string);
+- cleanup(namelst);
+ ExitProgram(EXIT_FAILURE);
+ }
+ }
+
+- if (tmp_fp == 0)
+- tmp_fp = open_input(source_file);
++ if (tmp_fp == 0) {
++ tmp_fp = open_input(source_file, my_altfile);
++ if (!strcmp(source_file, "-")) {
++ source_file = STDIN_NAME;
++ }
++ }
+
+- if (infodump)
++ if (infodump) {
+ dump_init(tversion,
+ smart_defaults
+ ? outform
+ : F_LITERAL,
+- sortmode, width, debug_level, formatted);
+- else if (capdump)
++ sortmode, width, height, debug_level, formatted);
++ } else if (capdump) {
+ dump_init(tversion,
+ outform,
+- sortmode, width, debug_level, FALSE);
++ sortmode, width, height, debug_level, FALSE);
++ }
+
+ /* parse entries out of the source file */
+ _nc_set_source(source_file);
+@@ -716,13 +936,12 @@
+ /* do use resolution */
+ if (check_only || (!infodump && !capdump) || forceresolve) {
+ if (!_nc_resolve_uses2(TRUE, literal) && !check_only) {
+- cleanup(namelst);
+ ExitProgram(EXIT_FAILURE);
+ }
+ }
+
+ /* length check */
+- if (check_only && (capdump || infodump)) {
++ if (check_only && limited && (capdump || infodump)) {
+ for_entry_list(qp) {
+ if (matches(namelst, qp->tterm.term_names)) {
+ int len = fmt_entry(&qp->tterm, NULL, FALSE, TRUE, infodump, numbers);
+@@ -750,7 +969,7 @@
+
+ for_entry_list(qp) {
+ if (matches(namelst, qp->tterm.term_names)) {
+- int j = qp->cend - qp->cstart;
++ long j = qp->cend - qp->cstart;
+ int len = 0;
+
+ /* this is in case infotocap() generates warnings */
+@@ -767,7 +986,7 @@
+ repair_acsc(&qp->tterm);
+ dump_entry(&qp->tterm, suppress_untranslatable,
+ limited, numbers, NULL);
+- for (j = 0; j < (int) qp->nuses; j++)
++ for (j = 0; j < (long) qp->nuses; j++)
+ dump_uses(qp->uses[j].name, !capdump);
+ len = show_entry();
+ if (debug_level != 0 && !limited)
+@@ -811,7 +1030,6 @@
+ else
+ fprintf(log_fp, "No entries written\n");
+ }
+- cleanup(namelst);
+ ExitProgram(EXIT_SUCCESS);
+ }
+
+@@ -898,6 +1116,17 @@
+ if (!VALID_STRING(orig_pair) && !VALID_STRING(orig_colors))
+ _nc_warning("expected either op/oc string for resetting colors");
+ }
++ if (can_change) {
++ if (!VALID_STRING(initialize_pair) &&
++ !VALID_STRING(initialize_color)) {
++ _nc_warning("expected initc or initp because ccc is given");
++ }
++ } else {
++ if (VALID_STRING(initialize_pair) ||
++ VALID_STRING(initialize_color)) {
++ _nc_warning("expected ccc because initc is given");
++ }
++ }
+ }
+
+ static char
+@@ -915,18 +1144,18 @@
+ return result;
+ }
+
+-static int
++static long
+ keypad_index(const char *string)
+ {
+ char *test;
+ const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */
+ int ch;
+- int result = -1;
++ long result = -1;
+
+ if ((ch = keypad_final(string)) != '\0') {
+- test = strchr(list, ch);
++ test = (strchr) (list, ch);
+ if (test != 0)
+- result = (test - list);
++ result = (long) (test - list);
+ }
+ return result;
+ }
+@@ -1008,6 +1237,19 @@
+ }
+
+ #define EXPECTED(name) if (!PRESENT(name)) _nc_warning("expected " #name)
++#define UNEXPECTED(name) if (PRESENT(name)) _nc_warning("unexpected " #name ", for %s", why)
++
++static void
++check_noaddress(TERMTYPE *tp, const char *why)
++{
++ UNEXPECTED(column_address);
++ UNEXPECTED(cursor_address);
++ UNEXPECTED(cursor_home);
++ UNEXPECTED(cursor_mem_address);
++ UNEXPECTED(cursor_to_ll);
++ UNEXPECTED(row_address);
++ UNEXPECTED(row_address);
++}
+
+ static void
+ check_cursor(TERMTYPE *tp)
+@@ -1015,13 +1257,55 @@
+ int count;
+ char *list[4];
+
++ if (hard_copy) {
++ check_noaddress(tp, "hard_copy");
++ } else if (generic_type) {
++ check_noaddress(tp, "generic_type");
++ } else if (strchr(tp->term_names, '+') == 0) {
++ int y = 0;
++ int x = 0;
++ if (PRESENT(column_address))
++ ++y;
++ if (PRESENT(cursor_address))
++ y = x = 10;
++ if (PRESENT(cursor_home))
++ ++y, ++x;
++ if (PRESENT(cursor_mem_address))
++ y = x = 10;
++ if (PRESENT(cursor_to_ll))
++ ++y, ++x;
++ if (PRESENT(row_address))
++ ++x;
++ if (PRESENT(cursor_down))
++ ++y;
++ if (PRESENT(cursor_up))
++ ++y;
++ if (PRESENT(cursor_left))
++ ++x;
++ if (PRESENT(cursor_right))
++ ++x;
++ if (x < 2 && y < 2) {
++ _nc_warning("terminal lacks cursor addressing");
++ } else {
++ if (x < 2)
++ _nc_warning("terminal lacks cursor column-addressing");
++ if (y < 2)
++ _nc_warning("terminal lacks cursor row-addressing");
++ }
++ }
++
++ /* it is rare to have an insert-line feature without a matching delete */
++ ANDMISSING(parm_insert_line, insert_line);
++ ANDMISSING(parm_delete_line, delete_line);
++ ANDMISSING(parm_insert_line, parm_delete_line);
++
+ /* if we have a parameterized form, then the non-parameterized is easy */
+ ANDMISSING(parm_down_cursor, cursor_down);
+ ANDMISSING(parm_up_cursor, cursor_up);
+ ANDMISSING(parm_left_cursor, cursor_left);
+ ANDMISSING(parm_right_cursor, cursor_right);
+
+- /* Given any of a set of cursor movement, the whole set should be present.
++ /* Given any of a set of cursor movement, the whole set should be present.
+ * Technically this is not true (we could use cursor_address to fill in
+ * unsupported controls), but it is likely.
+ */
+@@ -1097,11 +1381,11 @@
+ VALID_STRING(key_c1) &&
+ VALID_STRING(key_c3)) {
+ char final[MAX_KP + 1];
+- int list[MAX_KP];
++ long list[MAX_KP];
+ int increase = 0;
+ int j, k, kk;
+- int last;
+- int test;
++ long last;
++ long test;
+
+ final[0] = keypad_final(key_a1);
+ final[1] = keypad_final(key_a3);
+@@ -1149,19 +1433,19 @@
+ assert(strlen(show) < (MAX_KP * 4));
+ switch (kk) {
+ case 0:
+- strcat(show, " ka1");
++ _nc_STRCAT(show, " ka1", sizeof(show));
+ break;
+ case 1:
+- strcat(show, " ka3");
++ _nc_STRCAT(show, " ka3", sizeof(show));
+ break;
+ case 2:
+- strcat(show, " kb2");
++ _nc_STRCAT(show, " kb2", sizeof(show));
+ break;
+ case 3:
+- strcat(show, " kc1");
++ _nc_STRCAT(show, " kc1", sizeof(show));
+ break;
+ case 4:
+- strcat(show, " kc3");
++ _nc_STRCAT(show, " kc3", sizeof(show));
+ break;
+ }
+ }
+@@ -1176,18 +1460,24 @@
+ VALID_STRING(key_c3)) {
+ show[0] = '\0';
+ if (keypad_index(key_a1) >= 0)
+- strcat(show, " ka1");
++ _nc_STRCAT(show, " ka1", sizeof(show));
+ if (keypad_index(key_a3) >= 0)
+- strcat(show, " ka3");
++ _nc_STRCAT(show, " ka3", sizeof(show));
+ if (keypad_index(key_b2) >= 0)
+- strcat(show, " kb2");
++ _nc_STRCAT(show, " kb2", sizeof(show));
+ if (keypad_index(key_c1) >= 0)
+- strcat(show, " kc1");
++ _nc_STRCAT(show, " kc1", sizeof(show));
+ if (keypad_index(key_c3) >= 0)
+- strcat(show, " kc3");
++ _nc_STRCAT(show, " kc3", sizeof(show));
+ if (*show != '\0')
+ _nc_warning("vt100 keypad map incomplete:%s", show);
+ }
++
++ /*
++ * These warnings are useful for consistency checks - it is possible that
++ * there are real terminals with mismatches in these
++ */
++ ANDMISSING(key_ic, key_dc);
+ }
+
+ static void
+@@ -1216,6 +1506,74 @@
+ ANDMISSING(parm_up_micro, micro_up);
+ }
+
++static bool
++uses_SGR_39_49(const char *value)
++{
++ return (strstr(value, "39;49") != 0
++ || strstr(value, "49;39") != 0);
++}
++
++/*
++ * Check consistency of termcap extensions related to "screen".
++ */
++static void
++check_screen(TERMTYPE *tp)
++{
++#if NCURSES_XNAMES
++ if (_nc_user_definable) {
++ int have_XT = tigetflag("XT");
++ int have_XM = tigetflag("XM");
++ int have_bce = back_color_erase;
++ bool have_kmouse = FALSE;
++ bool use_sgr_39_49 = FALSE;
++ char *name = _nc_first_name(tp->term_names);
++
++ if (!VALID_BOOLEAN(have_bce)) {
++ have_bce = FALSE;
++ }
++ if (!VALID_BOOLEAN(have_XM)) {
++ have_XM = FALSE;
++ }
++ if (!VALID_BOOLEAN(have_XT)) {
++ have_XT = FALSE;
++ }
++ if (VALID_STRING(key_mouse)) {
++ have_kmouse = !strcmp("\033[M", key_mouse);
++ }
++ if (VALID_STRING(orig_colors)) {
++ use_sgr_39_49 = uses_SGR_39_49(orig_colors);
++ } else if (VALID_STRING(orig_pair)) {
++ use_sgr_39_49 = uses_SGR_39_49(orig_pair);
++ }
++
++ if (have_XM && have_XT) {
++ _nc_warning("Screen's XT capability conflicts with XM");
++ } else if (have_XT
++ && strstr(name, "screen") != 0
++ && strchr(name, '.') != 0) {
++ _nc_warning("Screen's \"screen\" entries should not have XT set");
++ } else if (have_XT) {
++ if (!have_kmouse && have_bce) {
++ if (VALID_STRING(key_mouse)) {
++ _nc_warning("Value of kmous inconsistent with screen's usage");
++ } else {
++ _nc_warning("Expected kmous capability with XT");
++ }
++ }
++ if (!have_bce && max_colors > 0)
++ _nc_warning("Expected bce capability with XT");
++ if (!use_sgr_39_49 && have_bce && max_colors > 0)
++ _nc_warning("Expected orig_colors capability with XT to have 39/49 parameters");
++ if (VALID_STRING(to_status_line))
++ _nc_warning("\"tsl\" capability is redundant, given XT");
++ } else {
++ if (have_kmouse && !have_XM)
++ _nc_warning("Expected XT to be set, given kmous");
++ }
++ }
++#endif
++}
++
+ /*
+ * Returns the expected number of parameters for the given capability.
+ */
+@@ -1318,7 +1676,7 @@
+ int expected = expected_params(name);
+ int actual = 0;
+ int n;
+- bool params[10];
++ bool params[NUM_PARM];
+ char *s = value;
+
+ #ifdef set_top_margin_parm
+@@ -1327,7 +1685,7 @@
+ expected = 2;
+ #endif
+
+- for (n = 0; n < 10; n++)
++ for (n = 0; n < NUM_PARM; n++)
+ params[n] = FALSE;
+
+ while (*s != 0) {
+@@ -1366,6 +1724,228 @@
+ }
+
+ static char *
++check_1_infotocap(const char *name, NCURSES_CONST char *value, int count)
++{
++ int k;
++ int ignored;
++ long numbers[1 + NUM_PARM];
++ char *strings[1 + NUM_PARM];
++ char *p_is_s[NUM_PARM];
++ char *result;
++ char blob[NUM_PARM * 10];
++ char *next = blob;
++
++ *next++ = '\0';
++ for (k = 1; k <= NUM_PARM; k++) {
++ numbers[k] = count;
++ sprintf(next, "XYZ%d", count);
++ strings[k] = next;
++ next += strlen(next) + 1;
++ }
++
++ switch (tparm_type(name)) {
++ case Num_Str:
++ result = TPARM_2(value, numbers[1], strings[2]);
++ break;
++ case Num_Str_Str:
++ result = TPARM_3(value, numbers[1], strings[2], strings[3]);
++ break;
++ case Numbers:
++ default:
++ (void) _nc_tparm_analyze(value, p_is_s, &ignored);
++#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
++ result = TPARM_9(value,
++ myParam(1),
++ myParam(2),
++ myParam(3),
++ myParam(4),
++ myParam(5),
++ myParam(6),
++ myParam(7),
++ myParam(8),
++ myParam(9));
++ break;
++ }
++ return result;
++}
++
++#define IsDelay(ch) ((ch) == '.' || isdigit(UChar(ch)))
++
++static const char *
++parse_delay_value(const char *src, double *delays, int *always)
++{
++ int star = 0;
++
++ *delays = 0.0;
++ if (always)
++ *always = 0;
++
++ while (isdigit(UChar(*src))) {
++ (*delays) = (*delays) * 10 + (*src++ - '0');
++ }
++ if (*src == '.') {
++ int gotdot = 1;
++
++ ++src;
++ while (isdigit(UChar(*src))) {
++ gotdot *= 10;
++ (*delays) += (*src++ - '0') / gotdot;
++ }
++ }
++ while (*src == '*' || *src == '/') {
++ if (always == 0 && *src == '/')
++ break;
++ if (*src++ == '*') {
++ star = 1;
++ } else {
++ *always = 1;
++ }
++ }
++ if (star)
++ *delays = -(*delays);
++ return src;
++}
++
++static const char *
++parse_ti_delay(const char *ti, double *delays)
++{
++ *delays = 0.0;
++ while (*ti != '\0') {
++ if (*ti == '\\') {
++ ++ti;
++ }
++ if (ti[0] == '$'
++ && ti[1] == '<'
++ && IsDelay(UChar(ti[2]))) {
++ int ignored;
++ const char *last = parse_delay_value(ti + 2, delays, &ignored);
++ if (*last == '>') {
++ ti = last;
++ }
++ } else {
++ ++ti;
++ }
++ }
++ return ti;
++}
++
++static const char *
++parse_tc_delay(const char *tc, double *delays)
++{
++ return parse_delay_value(tc, delays, (int *) 0);
++}
++
++/*
++ * Compare terminfo- and termcap-strings, factoring out delays.
++ */
++static bool
++same_ti_tc(const char *ti, const char *tc, bool * embedded)
++{
++ bool same = TRUE;
++ double ti_delay = 0.0;
++ double tc_delay = 0.0;
++ const char *ti_last;
++
++ *embedded = FALSE;
++ ti_last = parse_ti_delay(ti, &ti_delay);
++ tc = parse_tc_delay(tc, &tc_delay);
++
++ while ((ti < ti_last) && *tc) {
++ if (*ti == '\\' && ispunct(UChar(ti[1]))) {
++ ++ti;
++ if ((*ti == '^') && !strncmp(tc, "\\136", 4)) {
++ ti += 1;
++ tc += 4;
++ continue;
++ }
++ } else if (ti[0] == '$' && ti[1] == '<') {
++ double no_delay;
++ const char *ss = parse_ti_delay(ti, &no_delay);
++ if (ss != ti) {
++ *embedded = TRUE;
++ ti = ss;
++ continue;
++ }
++ }
++ if (*tc == '\\' && ispunct(UChar(tc[1]))) {
++ ++tc;
++ }
++ if (*ti++ != *tc++) {
++ same = FALSE;
++ break;
++ }
++ }
++
++ if (*embedded) {
++ if (same) {
++ same = FALSE;
++ } else {
++ *embedded = FALSE; /* report only one problem */
++ }
++ }
++
++ return same;
++}
++
++/*
++ * Check terminfo to termcap translation.
++ */
++static void
++check_infotocap(TERMTYPE *tp, int i, const char *value)
++{
++ const char *name = ExtStrname(tp, i, strnames);
++ int params = (((i < (int) SIZEOF(parametrized)) &&
++ (i < STRCOUNT))
++ ? parametrized[i]
++ : ((*value == 'k')
++ ? 0
++ : has_params(value)));
++ int to_char = 0;
++ char *ti_value;
++ char *tc_value;
++ bool embedded;
++
++ if ((ti_value = _nc_tic_expand(value, TRUE, to_char)) == ABSENT_STRING) {
++ _nc_warning("tic-expansion of %s failed", name);
++ } else if ((tc_value = _nc_infotocap(name, ti_value, params)) == ABSENT_STRING) {
++ _nc_warning("tic-conversion of %s failed", name);
++ } else if (params > 0) {
++ int limit = 5;
++ int count;
++ bool first = TRUE;
++
++ if (!strcmp(name, "setf")
++ || !strcmp(name, "setb")
++ || !strcmp(name, "setaf")
++ || !strcmp(name, "setab")) {
++ limit = max_colors;
++ }
++ for (count = 0; count < limit; ++count) {
++ char *ti_check = check_1_infotocap(name, ti_value, count);
++ char *tc_check = check_1_infotocap(name, tc_value, count);
++
++ if (strcmp(ti_check, tc_check)) {
++ if (first) {
++ fprintf(stderr, "check_infotocap(%s)\n", name);
++ fprintf(stderr, "...ti '%s'\n", ti_value);
++ fprintf(stderr, "...tc '%s'\n", tc_value);
++ first = FALSE;
++ }
++ _nc_warning("tparm-conversion of %s(%d) differs between\n\tterminfo %s\n\ttermcap %s",
++ name, count, ti_check, tc_check);
++ }
++ }
++ } else if (params == 0 && !same_ti_tc(ti_value, tc_value, &embedded)) {
++ if (embedded) {
++ _nc_warning("termcap equivalent of %s cannot use embedded delay", name);
++ } else {
++ _nc_warning("tic-conversion of %s changed value\n\tfrom %s\n\tto %s",
++ name, ti_value, tc_value);
++ }
++ }
++}
++
++static char *
+ skip_delay(char *s)
+ {
+ while (*s == '/' || isdigit(UChar(*s)))
+@@ -1527,7 +2107,7 @@
+ show_where(unsigned level)
+ {
+ if (_nc_tracing >= DEBUG_LEVEL(level)) {
+- char my_name[256];
++ char my_name[MAX_NAME_SIZE];
+ _nc_get_type(my_name);
+ _tracef("\"%s\", line %d, '%s'",
+ _nc_get_source(),
+@@ -1539,60 +2119,129 @@
+ #define show_where(level) /* nothing */
+ #endif
+
+-/* other sanity-checks (things that we don't want in the normal
+- * logic that reads a terminfo entry)
++typedef struct {
++ int keycode;
++ const char *name;
++ const char *value;
++} NAME_VALUE;
++
++static NAME_VALUE *
++get_fkey_list(TERMTYPE *tp)
++{
++ NAME_VALUE *result = typeMalloc(NAME_VALUE, NUM_STRINGS(tp) + 1);
++ const struct tinfo_fkeys *all_fkeys = _nc_tinfo_fkeys;
++ int used = 0;
++ int j;
++
++ if (result == 0)
++ failed("get_fkey_list");
++
++ for (j = 0; all_fkeys[j].code; j++) {
++ char *a = tp->Strings[all_fkeys[j].offset];
++ if (VALID_STRING(a)) {
++ result[used].keycode = (int) all_fkeys[j].code;
++ result[used].name = strnames[all_fkeys[j].offset];
++ result[used].value = a;
++ ++used;
++ }
++ }
++#if NCURSES_XNAMES
++ for (j = STRCOUNT; j < NUM_STRINGS(tp); ++j) {
++ const char *name = ExtStrname(tp, j, strnames);
++ if (*name == 'k') {
++ result[used].keycode = -1;
++ result[used].name = name;
++ result[used].value = tp->Strings[j];
++ ++used;
++ }
++ }
++#endif
++ result[used].keycode = 0;
++ return result;
++}
++
++static void
++show_fkey_name(NAME_VALUE * data)
++{
++ if (data->keycode > 0) {
++ fprintf(stderr, " %s", keyname(data->keycode));
++ fprintf(stderr, " (capability \"%s\")", data->name);
++ } else {
++ fprintf(stderr, " capability \"%s\"", data->name);
++ }
++}
++
++/*
++ * A terminal entry may contain more than one keycode assigned to a given
++ * string (e.g., KEY_END and KEY_LL). But curses will only return one (the
++ * last one assigned).
+ */
+ static void
+-check_termtype(TERMTYPE *tp, bool literal)
++check_conflict(TERMTYPE *tp)
+ {
+ bool conflict = FALSE;
+ unsigned j, k;
+- char fkeys[STRCOUNT];
+
+- /*
+- * A terminal entry may contain more than one keycode assigned to
+- * a given string (e.g., KEY_END and KEY_LL). But curses will only
+- * return one (the last one assigned).
+- */
+ if (!(_nc_syntax == SYN_TERMCAP && capdump)) {
+- memset(fkeys, 0, sizeof(fkeys));
+- for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
+- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
++ char *check = calloc((size_t) (NUM_STRINGS(tp) + 1), sizeof(char));
++ NAME_VALUE *given = get_fkey_list(tp);
++
++ if (check == 0)
++ failed("check_termtype");
++
++ for (j = 0; given[j].keycode; ++j) {
++ const char *a = given[j].value;
+ bool first = TRUE;
+- if (!VALID_STRING(a))
+- continue;
+- for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
+- char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
+- if (!VALID_STRING(b)
+- || fkeys[k])
++
++ for (k = j + 1; given[k].keycode; k++) {
++ const char *b = given[k].value;
++ if (check[k])
+ continue;
+ if (!_nc_capcmp(a, b)) {
+- fkeys[j] = 1;
+- fkeys[k] = 1;
++ check[j] = 1;
++ check[k] = 1;
+ if (first) {
+ if (!conflict) {
+ _nc_warning("Conflicting key definitions (using the last)");
+ conflict = TRUE;
+ }
+- fprintf(stderr, "... %s is the same as %s",
+- keyname((int) _nc_tinfo_fkeys[j].code),
+- keyname((int) _nc_tinfo_fkeys[k].code));
++ fprintf(stderr, "...");
++ show_fkey_name(given + j);
++ fprintf(stderr, " is the same as");
++ show_fkey_name(given + k);
+ first = FALSE;
+ } else {
+- fprintf(stderr, ", %s",
+- keyname((int) _nc_tinfo_fkeys[k].code));
++ fprintf(stderr, ", ");
++ show_fkey_name(given + k);
+ }
+ }
+ }
+ if (!first)
+ fprintf(stderr, "\n");
+ }
++ free(given);
++ free(check);
+ }
++}
+
+- for (j = 0; j < NUM_STRINGS(tp); j++) {
++/* other sanity-checks (things that we don't want in the normal
++ * logic that reads a terminfo entry)
++ */
++static void
++check_termtype(TERMTYPE *tp, bool literal)
++{
++ unsigned j;
++
++ check_conflict(tp);
++
++ for_each_string(j, tp) {
+ char *a = tp->Strings[j];
+- if (VALID_STRING(a))
+- check_params(tp, ExtStrname(tp, j, strnames), a);
++ if (VALID_STRING(a)) {
++ check_params(tp, ExtStrname(tp, (int) j, strnames), a);
++ if (capdump) {
++ check_infotocap(tp, (int) j, a);
++ }
++ }
+ }
+
+ check_acs(tp);
+@@ -1600,6 +2249,7 @@
+ check_cursor(tp);
+ check_keypad(tp);
+ check_printer(tp);
++ check_screen(tp);
+
+ /*
+ * These may be mismatched because the terminal description relies on
+Index: progs/toe.c
+Prereq: 1.52
+--- ncurses-5.9/progs/toe.c 2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9-20141206/progs/toe.c 2013-12-15 01:08:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -44,12 +44,23 @@
+ #include <hashed_db.h>
+ #endif
+
+-MODULE_ID("$Id: toe.c,v 1.52 2010/05/01 22:04:08 tom Exp $")
++MODULE_ID("$Id: toe.c,v 1.74 2013/12/15 01:08:28 tom Exp $")
+
+ #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
+
++typedef struct {
++ int db_index;
++ unsigned long checksum;
++ char *term_name;
++ char *description;
++} TERMDATA;
++
+ const char *_nc_progname;
+
++static TERMDATA *ptr_termdata; /* array of terminal data */
++static size_t use_termdata; /* actual usage in ptr_termdata[] */
++static size_t len_termdata; /* allocated size of ptr_termdata[] */
++
+ #if NO_LEAKS
+ #undef ExitProgram
+ static void ExitProgram(int code) GCC_NORETURN;
+@@ -61,6 +72,8 @@
+ }
+ #endif
+
++static void failed(const char *) GCC_NORETURN;
++
+ static void
+ failed(const char *msg)
+ {
+@@ -68,6 +81,150 @@
+ ExitProgram(EXIT_FAILURE);
+ }
+
++static char *
++strmalloc(const char *value)
++{
++ char *result = strdup(value);
++ if (result == 0) {
++ failed("strmalloc");
++ }
++ return result;
++}
++
++static TERMDATA *
++new_termdata(void)
++{
++ size_t want = use_termdata + 1;
++
++ if (want >= len_termdata) {
++ len_termdata = (2 * want) + 10;
++ ptr_termdata = typeRealloc(TERMDATA, len_termdata, ptr_termdata);
++ if (ptr_termdata == 0)
++ failed("ptr_termdata");
++ }
++
++ return ptr_termdata + use_termdata++;
++}
++
++static int
++compare_termdata(const void *a, const void *b)
++{
++ const TERMDATA *p = (const TERMDATA *) a;
++ const TERMDATA *q = (const TERMDATA *) b;
++ int result = strcmp(p->term_name, q->term_name);
++
++ if (result == 0) {
++ result = (p->db_index - q->db_index);
++ }
++ return result;
++}
++
++/*
++ * Sort the array of TERMDATA and print it. If more than one database is being
++ * reported, add a column to show which database has a given entry.
++ */
++static void
++show_termdata(int eargc, char **eargv)
++{
++ int j, k;
++ size_t n;
++
++ if (use_termdata) {
++ if (eargc > 1) {
++ for (j = 0; j < eargc; ++j) {
++ for (k = 0; k <= j; ++k) {
++ printf("--");
++ }
++ printf("> ");
++ printf("%s\n", eargv[j]);
++ }
++ }
++ if (use_termdata > 1)
++ qsort(ptr_termdata, use_termdata, sizeof(TERMDATA), compare_termdata);
++ for (n = 0; n < use_termdata; ++n) {
++
++ /*
++ * If there is more than one database, show how they differ.
++ */
++ if (eargc > 1) {
++ unsigned long check = 0;
++ k = 0;
++ for (;;) {
++ for (; k < ptr_termdata[n].db_index; ++k) {
++ printf("--");
++ }
++
++ /*
++ * If this is the first entry, or its checksum differs
++ * from the first entry's checksum, print "*". Otherwise
++ * it looks enough like a duplicate to print "+".
++ */
++ printf("%c-", ((check == 0
++ || (check != ptr_termdata[n].checksum))
++ ? '*'
++ : '+'));
++ check = ptr_termdata[n].checksum;
++
++ ++k;
++ if ((n + 1) >= use_termdata
++ || strcmp(ptr_termdata[n].term_name,
++ ptr_termdata[n + 1].term_name)) {
++ break;
++ }
++ ++n;
++ }
++ for (; k < eargc; ++k) {
++ printf("--");
++ }
++ printf(":\t");
++ }
++
++ (void) printf("%-10s\t%s\n",
++ ptr_termdata[n].term_name,
++ ptr_termdata[n].description);
++ }
++ }
++}
++
++static void
++free_termdata(void)
++{
++ if (ptr_termdata != 0) {
++ while (use_termdata != 0) {
++ --use_termdata;
++ free(ptr_termdata[use_termdata].term_name);
++ free(ptr_termdata[use_termdata].description);
++ }
++ free(ptr_termdata);
++ ptr_termdata = 0;
++ }
++ use_termdata = 0;
++ len_termdata = 0;
++}
++
++static char **
++allocArgv(size_t count)
++{
++ char **result = typeCalloc(char *, count + 1);
++ if (result == 0)
++ failed("realloc eargv");
++
++ assert(result != 0);
++ return result;
++}
++
++static void
++freeArgv(char **argv)
++{
++ if (argv) {
++ int count = 0;
++ while (argv[count]) {
++ free(argv[count++]);
++ }
++ free(argv);
++ }
++}
++
+ #if USE_HASHED_DB
+ static bool
+ make_db_name(char *dst, const char *src, unsigned limit)
+@@ -75,67 +232,100 @@
+ static const char suffix[] = DBM_SUFFIX;
+
+ bool result = FALSE;
+- unsigned lens = sizeof(suffix) - 1;
+- unsigned size = strlen(src);
+- unsigned need = lens + size;
++ size_t lens = sizeof(suffix) - 1;
++ size_t size = strlen(src);
++ size_t need = lens + size;
+
+ if (need <= limit) {
+ if (size >= lens
+- && !strcmp(src + size - lens, suffix))
+- (void) strcpy(dst, src);
+- else
+- (void) sprintf(dst, "%s%s", src, suffix);
++ && !strcmp(src + size - lens, suffix)) {
++ _nc_STRCPY(dst, src, PATH_MAX);
++ } else {
++ _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%s%s", src, suffix);
++ }
+ result = TRUE;
+ }
+ return result;
+ }
+ #endif
+
+-static bool
+-is_database(const char *path)
++typedef void (DescHook) (int /* db_index */ ,
++ int /* db_limit */ ,
++ const char * /* term_name */ ,
++ TERMTYPE * /* term */ );
++
++static const char *
++term_description(TERMTYPE *tp)
+ {
+- bool result = FALSE;
+-#if USE_DATABASE
+- if (_nc_is_dir_path(path) && access(path, R_OK | X_OK) == 0) {
+- result = TRUE;
+- }
+-#endif
+-#if USE_TERMCAP
+- if (_nc_is_file_path(path) && access(path, R_OK) == 0) {
+- result = TRUE;
++ const char *desc;
++
++ if (tp->term_names == 0
++ || (desc = strrchr(tp->term_names, '|')) == 0
++ || (*++desc == '\0')) {
++ desc = "(No description)";
+ }
+-#endif
+-#if USE_HASHED_DB
+- if (!result) {
+- char filename[PATH_MAX];
+- if (_nc_is_file_path(path) && access(path, R_OK) == 0) {
+- result = TRUE;
+- } else if (make_db_name(filename, path, sizeof(filename))) {
+- if (_nc_is_file_path(filename) && access(filename, R_OK) == 0) {
+- result = TRUE;
+- }
++
++ return desc;
++}
++
++/* display a description for the type */
++static void
++deschook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp)
++{
++ (void) db_index;
++ (void) db_limit;
++ (void) printf("%-10s\t%s\n", term_name, term_description(tp));
++}
++
++static unsigned long
++string_sum(const char *value)
++{
++ unsigned long result = 0;
++
++ if ((intptr_t) value == (intptr_t) (-1)) {
++ result = ~result;
++ } else if (value) {
++ while (*value) {
++ result += UChar(*value);
++ ++value;
+ }
+ }
+-#endif
+ return result;
+ }
+
+-static void
+-deschook(const char *cn, TERMTYPE *tp)
+-/* display a description for the type */
++static unsigned long
++checksum_of(TERMTYPE *tp)
+ {
+- const char *desc;
++ unsigned long result = string_sum(tp->term_names);
++ unsigned i;
+
+- if ((desc = strrchr(tp->term_names, '|')) == 0 || *++desc == '\0')
+- desc = "(No description)";
++ for (i = 0; i < NUM_BOOLEANS(tp); i++) {
++ result += (unsigned long) (tp->Booleans[i]);
++ }
++ for (i = 0; i < NUM_NUMBERS(tp); i++) {
++ result += (unsigned long) (tp->Numbers[i]);
++ }
++ for (i = 0; i < NUM_STRINGS(tp); i++) {
++ result += string_sum(tp->Strings[i]);
++ }
++ return result;
++}
++
++/* collect data, to sort before display */
++static void
++sorthook(int db_index, int db_limit, const char *term_name, TERMTYPE *tp)
++{
++ TERMDATA *data = new_termdata();
+
+- (void) printf("%-10s\t%s\n", cn, desc);
++ data->db_index = db_index;
++ data->checksum = ((db_limit > 1) ? checksum_of(tp) : 0);
++ data->term_name = strmalloc(term_name);
++ data->description = strmalloc(term_description(tp));
+ }
+
+-#if USE_TERMCAP
++#if NCURSES_USE_TERMCAP
+ static void
+-show_termcap(char *buffer,
+- void (*hook) (const char *, TERMTYPE *tp))
++show_termcap(int db_index, int db_limit, char *buffer, DescHook hook)
+ {
+ TERMTYPE data;
+ char *next = strchr(buffer, ':');
+@@ -149,26 +339,42 @@
+ if (last)
+ ++last;
+
+- data.term_names = strdup(buffer);
++ memset(&data, 0, sizeof(data));
++ data.term_names = strmalloc(buffer);
+ while ((next = strtok(list, "|")) != 0) {
+ if (next != last)
+- hook(next, &data);
++ hook(db_index, db_limit, next, &data);
+ list = 0;
+ }
+ free(data.term_names);
+ }
+ #endif
+
++#if NCURSES_USE_DATABASE
++static char *
++copy_entryname(DIRENT * src)
++{
++ size_t len = NAMLEN(src);
++ char *result = malloc(len + 1);
++ if (result == 0)
++ failed("copy entryname");
++ memcpy(result, src->d_name, len);
++ result[len] = '\0';
++
++ return result;
++}
++#endif
++
+ static int
+ typelist(int eargc, char *eargv[],
+- bool verbosity,
+- void (*hook) (const char *, TERMTYPE *tp))
++ int verbosity,
++ DescHook hook)
+ /* apply a function to each entry in given terminfo directories */
+ {
+ int i;
+
+ for (i = 0; i < eargc; i++) {
+-#if USE_DATABASE
++#if NCURSES_USE_DATABASE
+ if (_nc_is_dir_path(eargv[i])) {
+ char *cwd_buf = 0;
+ DIR *termdir;
+@@ -179,28 +385,35 @@
+ (void) fprintf(stderr,
+ "%s: can't open terminfo directory %s\n",
+ _nc_progname, eargv[i]);
+- return (EXIT_FAILURE);
+- } else if (verbosity)
++ continue;
++ }
++
++ if (verbosity)
+ (void) printf("#\n#%s:\n#\n", eargv[i]);
+
+ while ((subdir = readdir(termdir)) != 0) {
+- size_t len = NAMLEN(subdir);
+- size_t cwd_len = len + strlen(eargv[i]) + 3;
+- char name_1[PATH_MAX];
++ size_t cwd_len;
++ char *name_1;
+ DIR *entrydir;
+ DIRENT *entry;
+
++ name_1 = copy_entryname(subdir);
++ if (isDotname(name_1)) {
++ free(name_1);
++ continue;
++ }
++
++ cwd_len = NAMLEN(subdir) + strlen(eargv[i]) + 3;
+ cwd_buf = typeRealloc(char, cwd_len, cwd_buf);
+ if (cwd_buf == 0)
+ failed("realloc cwd_buf");
+
+ assert(cwd_buf != 0);
+
+- strncpy(name_1, subdir->d_name, len)[len] = '\0';
+- if (isDotname(name_1))
+- continue;
++ _nc_SPRINTF(cwd_buf, _nc_SLIMIT(cwd_len)
++ "%s/%s/", eargv[i], name_1);
++ free(name_1);
+
+- (void) sprintf(cwd_buf, "%s/%.*s/", eargv[i], (int) len, name_1);
+ if (chdir(cwd_buf) != 0)
+ continue;
+
+@@ -210,15 +423,16 @@
+ continue;
+ }
+ while ((entry = readdir(entrydir)) != 0) {
+- char name_2[PATH_MAX];
++ char *name_2;
+ TERMTYPE lterm;
+ char *cn;
+ int status;
+
+- len = NAMLEN(entry);
+- strncpy(name_2, entry->d_name, len)[len] = '\0';
+- if (isDotname(name_2) || !_nc_is_file_path(name_2))
++ name_2 = copy_entryname(entry);
++ if (isDotname(name_2) || !_nc_is_file_path(name_2)) {
++ free(name_2);
+ continue;
++ }
+
+ status = _nc_read_file_entry(name_2, &lterm);
+ if (status <= 0) {
+@@ -226,6 +440,10 @@
+ (void) fprintf(stderr,
+ "%s: couldn't open terminfo file %s.\n",
+ _nc_progname, name_2);
++ free(cwd_buf);
++ free(name_2);
++ closedir(entrydir);
++ closedir(termdir);
+ return (EXIT_FAILURE);
+ }
+
+@@ -233,21 +451,26 @@
+ cn = _nc_first_name(lterm.term_names);
+ if (!strcmp(cn, name_2)) {
+ /* apply the selected hook function */
+- (*hook) (cn, &lterm);
++ hook(i, eargc, cn, &lterm);
+ }
+ _nc_free_termtype(&lterm);
++ free(name_2);
+ }
+ closedir(entrydir);
+ }
+ closedir(termdir);
+ if (cwd_buf != 0)
+ free(cwd_buf);
++ continue;
+ }
+ #if USE_HASHED_DB
+ else {
+ DB *capdbp;
+ char filename[PATH_MAX];
+
++ if (verbosity)
++ (void) printf("#\n#%s:\n#\n", eargv[i]);
++
+ if (make_db_name(filename, eargv[i], sizeof(filename))) {
+ if ((capdbp = _nc_db_open(filename, FALSE)) != 0) {
+ DBT key, data;
+@@ -265,7 +488,7 @@
+ /* only visit things once, by primary name */
+ cn = _nc_first_name(lterm.term_names);
+ /* apply the selected hook function */
+- (*hook) (cn, &lterm);
++ hook(i, eargc, cn, &lterm);
+ _nc_free_termtype(&lterm);
+ }
+ }
+@@ -273,44 +496,51 @@
+ }
+
+ _nc_db_close(capdbp);
++ continue;
+ }
+ }
+ }
+ #endif
+ #endif
+-#if USE_TERMCAP
++#if NCURSES_USE_TERMCAP
+ #if HAVE_BSD_CGETENT
+- char *db_array[2];
+- char *buffer = 0;
++ {
++ CGETENT_CONST char *db_array[2];
++ char *buffer = 0;
+
+- if (verbosity)
+- (void) printf("#\n#%s:\n#\n", eargv[i]);
++ if (verbosity)
++ (void) printf("#\n#%s:\n#\n", eargv[i]);
+
+- db_array[0] = eargv[i];
+- db_array[1] = 0;
++ db_array[0] = eargv[i];
++ db_array[1] = 0;
+
+- if (cgetfirst(&buffer, db_array)) {
+- show_termcap(buffer, hook);
+- free(buffer);
+- while (cgetnext(&buffer, db_array)) {
+- show_termcap(buffer, hook);
++ if (cgetfirst(&buffer, db_array) > 0) {
++ show_termcap(i, eargc, buffer, hook);
+ free(buffer);
++ while (cgetnext(&buffer, db_array) > 0) {
++ show_termcap(i, eargc, buffer, hook);
++ free(buffer);
++ }
++ cgetclose();
++ continue;
+ }
+ }
+- cgetclose();
+ #else
+ /* scan termcap text-file only */
+ if (_nc_is_file_path(eargv[i])) {
+ char buffer[2048];
+ FILE *fp;
+
++ if (verbosity)
++ (void) printf("#\n#%s:\n#\n", eargv[i]);
++
+ if ((fp = fopen(eargv[i], "r")) != 0) {
+ while (fgets(buffer, sizeof(buffer), fp) != 0) {
+ if (*buffer == '#')
+ continue;
+ if (isspace(*buffer))
+ continue;
+- show_termcap(buffer, hook);
++ show_termcap(i, eargc, buffer, hook);
+ }
+ fclose(fp);
+ }
+@@ -319,13 +549,18 @@
+ #endif
+ }
+
++ if (hook == sorthook) {
++ show_termdata(eargc, eargv);
++ free_termdata();
++ }
++
+ return (EXIT_SUCCESS);
+ }
+
+ static void
+ usage(void)
+ {
+- (void) fprintf(stderr, "usage: %s [-ahuUV] [-v n] [file...]\n", _nc_progname);
++ (void) fprintf(stderr, "usage: %s [-ahsuUV] [-v n] [file...]\n", _nc_progname);
+ ExitProgram(EXIT_FAILURE);
+ }
+
+@@ -340,23 +575,24 @@
+ unsigned i;
+ int code;
+ int this_opt, last_opt = '?';
+- int v_opt = 0;
++ unsigned v_opt = 0;
++ DescHook *hook = deschook;
+
+ _nc_progname = _nc_rootname(argv[0]);
+
+- while ((this_opt = getopt(argc, argv, "0123456789ahu:vU:V")) != -1) {
++ while ((this_opt = getopt(argc, argv, "0123456789ahsu:vU:V")) != -1) {
+ /* handle optional parameter */
+ if (isdigit(this_opt)) {
+ switch (last_opt) {
+ case 'v':
+- v_opt = (this_opt - '0');
++ v_opt = (unsigned) (this_opt - '0');
+ break;
+ default:
+ if (isdigit(last_opt))
+ v_opt *= 10;
+ else
+ v_opt = 0;
+- v_opt += (this_opt - '0');
++ v_opt += (unsigned) (this_opt - '0');
+ last_opt = this_opt;
+ }
+ continue;
+@@ -368,6 +604,9 @@
+ case 'h':
+ header = TRUE;
+ break;
++ case 's':
++ hook = sorthook;
++ break;
+ case 'u':
+ direct_dependencies = TRUE;
+ report_file = optarg;
+@@ -450,7 +689,7 @@
+ * If we get this far, user wants a simple terminal type listing.
+ */
+ if (optind < argc) {
+- code = typelist(argc - optind, argv + optind, header, deschook);
++ code = typelist(argc - optind, argv + optind, header, hook);
+ } else if (all_dirs) {
+ DBDIRS state;
+ int offset;
+@@ -460,64 +699,41 @@
+
+ code = EXIT_FAILURE;
+ for (pass = 0; pass < 2; ++pass) {
+- unsigned count = 0;
++ size_t count = 0;
+
+ _nc_first_db(&state, &offset);
+ while ((path = _nc_next_db(&state, &offset)) != 0) {
+- if (!is_database(path)) {
+- ;
+- } else if (eargv != 0) {
+- unsigned n;
+- int found = FALSE;
+-
+- /* eliminate duplicates */
+- for (n = 0; n < count; ++n) {
+- if (!strcmp(path, eargv[n])) {
+- found = TRUE;
+- break;
+- }
+- }
+- if (!found) {
+- eargv[count] = strdup(path);
+- ++count;
+- }
+- } else {
+- ++count;
++ if (pass) {
++ eargv[count] = strmalloc(path);
+ }
++ ++count;
+ }
+ if (!pass) {
+- eargv = typeCalloc(char *, count + 1);
++ eargv = allocArgv(count);
+ if (eargv == 0)
+- failed("realloc eargv");
+-
+- assert(eargv != 0);
++ failed("eargv");
+ } else {
+- code = typelist((int) count, eargv, header, deschook);
+- while (count-- > 0)
+- free(eargv[count]);
+- free(eargv);
++ code = typelist((int) count, eargv, header, hook);
++ freeArgv(eargv);
+ }
+ }
+ } else {
+ DBDIRS state;
+ int offset;
+ const char *path;
+- char *eargv[3];
+- int count = 0;
++ char **eargv = allocArgv((size_t) 2);
++ size_t count = 0;
+
++ if (eargv == 0)
++ failed("eargv");
+ _nc_first_db(&state, &offset);
+- while ((path = _nc_next_db(&state, &offset)) != 0) {
+- if (is_database(path)) {
+- eargv[count++] = strdup(path);
+- break;
+- }
++ if ((path = _nc_next_db(&state, &offset)) != 0) {
++ eargv[count++] = strmalloc(path);
+ }
+- eargv[count] = 0;
+
+- code = typelist(count, eargv, header, deschook);
++ code = typelist((int) count, eargv, header, hook);
+
+- while (count-- > 0)
+- free(eargv[count]);
++ freeArgv(eargv);
+ }
+ _nc_last_db();
+
+Index: progs/tparm_type.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/progs/tparm_type.c 2014-05-21 16:50:57.000000000 +0000
+@@ -0,0 +1,68 @@
++/****************************************************************************
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey *
++ ****************************************************************************/
++
++#include <tparm_type.h>
++
++MODULE_ID("$Id: tparm_type.c,v 1.1 2014/05/21 16:50:57 tom Exp $")
++
++/*
++ * Lookup the type of call we should make to tparm(). This ignores the actual
++ * terminfo capability (bad, because it is not extensible), but makes this
++ * code portable to platforms where sizeof(int) != sizeof(char *).
++ */
++TParams
++tparm_type(const char *name)
++{
++#define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc}
++ TParams result = Numbers;
++ /* *INDENT-OFF* */
++ static const struct {
++ TParams code;
++ const char *name;
++ } table[] = {
++ TD(Num_Str, "pkey_key", "pfkey", "pk"),
++ TD(Num_Str, "pkey_local", "pfloc", "pl"),
++ TD(Num_Str, "pkey_xmit", "pfx", "px"),
++ TD(Num_Str, "plab_norm", "pln", "pn"),
++ TD(Num_Str_Str, "pkey_plab", "pfxl", "xl"),
++ };
++ /* *INDENT-ON* */
++
++ unsigned n;
++ for (n = 0; n < SIZEOF(table); n++) {
++ if (!strcmp(name, table[n].name)) {
++ result = table[n].code;
++ break;
++ }
++ }
++ return result;
++}
+Index: progs/tparm_type.h
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/progs/tparm_type.h 2014-05-21 16:57:56.000000000 +0000
+@@ -0,0 +1,52 @@
++/****************************************************************************
++ * Copyright (c) 2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Thomas E. Dickey *
++ ****************************************************************************/
++
++/*
++ * $Id: tparm_type.h,v 1.1 2014/05/21 16:57:56 tom Exp $
++ *
++ * determine expected/actual number of parameters to setup for tparm
++ */
++#ifndef TPARM_TYPE_H
++#define TPARM_TYPE_H 1
++
++#define USE_LIBTINFO
++#include <progs.priv.h>
++
++typedef enum {
++ Numbers = 0
++ ,Num_Str
++ ,Num_Str_Str
++} TParams;
++
++extern TParams tparm_type(const char *name);
++
++#endif /* TPARM_TYPE_H */
+Index: progs/tput.c
+Prereq: 1.46
+--- ncurses-5.9/progs/tput.c 2010-01-09 16:53:24.000000000 +0000
++++ ncurses-5.9-20141206/progs/tput.c 2014-05-21 16:57:16.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -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-on *
+ ****************************************************************************/
+
+ /*
+@@ -38,8 +39,7 @@
+ * Ross Ridge's mytinfo package.
+ */
+
+-#define USE_LIBTINFO
+-#include <progs.priv.h>
++#include <tparm_type.h>
+
+ #if !PURE_TERMINFO
+ #include <dump_entry.h>
+@@ -47,18 +47,12 @@
+ #endif
+ #include <transform.h>
+
+-MODULE_ID("$Id: tput.c,v 1.46 2010/01/09 16:53:24 tom Exp $")
++MODULE_ID("$Id: tput.c,v 1.50 2014/05/21 16:57:16 tom Exp $")
+
+ #define PUTS(s) fputs(s, stdout)
+ #define PUTCHAR(c) putchar(c)
+ #define FLUSH fflush(stdout)
+
+-typedef enum {
+- Numbers = 0
+- ,Num_Str
+- ,Num_Str_Str
+-} TParams;
+-
+ static char *prg_name;
+ static bool is_init = FALSE;
+ static bool is_reset = FALSE;
+@@ -90,42 +84,6 @@
+ is_reset = same_program(name, PROG_RESET);
+ }
+
+-/*
+- * Lookup the type of call we should make to tparm(). This ignores the actual
+- * terminfo capability (bad, because it is not extensible), but makes this
+- * code portable to platforms where sizeof(int) != sizeof(char *).
+- *
+- * FIXME: If we want extensibility, analyze the capability string as we do
+- * in tparm() to decide how to parse the varargs list.
+- */
+-static TParams
+-tparm_type(const char *name)
+-{
+-#define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc}
+- TParams result = Numbers;
+- /* *INDENT-OFF* */
+- static const struct {
+- TParams code;
+- const char *name;
+- } table[] = {
+- TD(Num_Str, "pkey_key", "pfkey", "pk"),
+- TD(Num_Str, "pkey_local", "pfloc", "pl"),
+- TD(Num_Str, "pkey_xmit", "pfx", "px"),
+- TD(Num_Str, "plab_norm", "pln", "pn"),
+- TD(Num_Str_Str, "pkey_plab", "pfxl", "xl"),
+- };
+- /* *INDENT-ON* */
+-
+- unsigned n;
+- for (n = 0; n < SIZEOF(table); n++) {
+- if (!strcmp(name, table[n].name)) {
+- result = table[n].code;
+- break;
+- }
+- }
+- return result;
+-}
+-
+ static int
+ exit_code(int token, int value)
+ {
+@@ -306,7 +264,7 @@
+ } else if (s != ABSENT_STRING) {
+ if (argc > 1) {
+ int k;
+- int popcount;
++ int ignored;
+ long numbers[1 + NUM_PARM];
+ char *strings[1 + NUM_PARM];
+ char *p_is_s[NUM_PARM];
+@@ -337,8 +295,8 @@
+ break;
+ case Numbers:
+ default:
+- (void) _nc_tparm_analyze(s, p_is_s, &popcount);
+-#define myParam(n) (p_is_s[n - 1] != 0 ? ((long) strings[n]) : numbers[n])
++ (void) _nc_tparm_analyze(s, p_is_s, &ignored);
++#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
+ s = TPARM_9(s,
+ myParam(1),
+ myParam(2),
+Index: progs/transform.c
+Prereq: 1.2
+--- ncurses-5.9/progs/transform.c 2010-09-04 21:16:17.000000000 +0000
++++ ncurses-5.9-20141206/progs/transform.c 2011-05-14 22:41:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2010,2011 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,21 +34,21 @@
+
+ #include <transform.h>
+
+-MODULE_ID("$Id: transform.c,v 1.2 2010/09/04 21:16:17 tom Exp $")
++MODULE_ID("$Id: transform.c,v 1.3 2011/05/14 22:41:17 tom Exp $")
+
+ #ifdef SUFFIX_IGNORED
+ static void
+-trim_suffix(const char *a, unsigned *len)
++trim_suffix(const char *a, size_t *len)
+ {
+ const char ignore[] = SUFFIX_IGNORED;
+
+ if (sizeof(ignore) != 0) {
+ bool trim = FALSE;
+- unsigned need = (sizeof(ignore) - 1);
++ size_t need = (sizeof(ignore) - 1);
+
+ if (*len > need) {
+- unsigned first = *len - need;
+- unsigned n;
++ size_t first = *len - need;
++ size_t n;
+ trim = TRUE;
+ for (n = first; n < *len; ++n) {
+ if (tolower(UChar(a[n])) != tolower(UChar(ignore[n - first]))) {
+@@ -69,8 +69,8 @@
+ bool
+ same_program(const char *a, const char *b)
+ {
+- unsigned len_a = strlen(a);
+- unsigned len_b = strlen(b);
++ size_t len_a = strlen(a);
++ size_t len_b = strlen(b);
+
+ trim_suffix(a, &len_a);
+ trim_suffix(b, &len_b);
+Index: progs/tset.c
+Prereq: 1.82
+--- ncurses-5.9/progs/tset.c 2010-05-01 21:42:46.000000000 +0000
++++ ncurses-5.9-20141206/progs/tset.c 2013-12-15 01:05:56.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -119,7 +119,7 @@
+ #include <dump_entry.h>
+ #include <transform.h>
+
+-MODULE_ID("$Id: tset.c,v 1.82 2010/05/01 21:42:46 tom Exp $")
++MODULE_ID("$Id: tset.c,v 1.93 2013/12/15 01:05:56 tom Exp $")
+
+ /*
+ * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
+@@ -148,6 +148,10 @@
+ #undef CTRL
+ #define CTRL(x) ((x) & 0x1f)
+
++static void failed(const char *) GCC_NORETURN;
++static void exit_error(void) GCC_NORETURN;
++static void err(const char *,...) GCC_NORETURN;
++
+ const char *_nc_progname = "tset";
+
+ static TTY mode, oldmode, original;
+@@ -160,7 +164,10 @@
+ static int terasechar = -1; /* new erase character */
+ static int intrchar = -1; /* new interrupt character */
+ static int tkillchar = -1; /* new kill character */
++
++#if HAVE_SIZECHANGE
+ static int tlines, tcolumns; /* window size */
++#endif
+
+ #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+
+@@ -203,13 +210,13 @@
+ failed(const char *msg)
+ {
+ char temp[BUFSIZ];
+- unsigned len = strlen(_nc_progname) + 2;
++ size_t len = strlen(_nc_progname) + 2;
+
+ if ((int) len < (int) sizeof(temp) - 12) {
+- strcpy(temp, _nc_progname);
+- strcat(temp, ": ");
++ _nc_STRCPY(temp, _nc_progname, sizeof(temp));
++ _nc_STRCAT(temp, ": ", sizeof(temp));
+ } else {
+- strcpy(temp, "tset: ");
++ _nc_STRCPY(temp, "tset: ", sizeof(temp));
+ }
+ perror(strncat(temp, msg, sizeof(temp) - strlen(temp) - 2));
+ exit_error();
+@@ -467,9 +474,6 @@
+ mapp->speed = tbaudrate(p);
+ }
+
+- if (arg == (char *) 0) /* Non-optional type. */
+- goto badmopt;
+-
+ mapp->type = arg;
+
+ /* Terminate porttype, if specified. */
+@@ -527,19 +531,19 @@
+ match = TRUE;
+ break;
+ case EQ:
+- match = (ospeed == mapp->speed);
++ match = ((int) ospeed == mapp->speed);
+ break;
+ case GE:
+- match = (ospeed >= mapp->speed);
++ match = ((int) ospeed >= mapp->speed);
+ break;
+ case GT:
+- match = (ospeed > mapp->speed);
++ match = ((int) ospeed > mapp->speed);
+ break;
+ case LE:
+- match = (ospeed <= mapp->speed);
++ match = ((int) ospeed <= mapp->speed);
+ break;
+ case LT:
+- match = (ospeed < mapp->speed);
++ match = ((int) ospeed < mapp->speed);
+ break;
+ default:
+ match = FALSE;
+@@ -631,13 +635,14 @@
+ * real entry from /etc/termcap. This prevents us from being fooled
+ * by out of date stuff in the environment.
+ */
+- found:if ((p = getenv("TERMCAP")) != 0 && !_nc_is_abs_path(p)) {
++ found:
++ if ((p = getenv("TERMCAP")) != 0 && !_nc_is_abs_path(p)) {
+ /* 'unsetenv("TERMCAP")' is not portable.
+ * The 'environ' array is better.
+ */
+ int n;
+ for (n = 0; environ[n] != 0; n++) {
+- if (!strncmp("TERMCAP=", environ[n], 8)) {
++ if (!strncmp("TERMCAP=", environ[n], (size_t) 8)) {
+ while ((environ[n] = environ[n + 1]) != 0) {
+ n++;
+ }
+@@ -788,14 +793,14 @@
+ mode.c_cc[VWERASE] = CHK(mode.c_cc[VWERASE], CWERASE);
+ #endif
+
+- mode.c_iflag &= ~(IGNBRK | PARMRK | INPCK | ISTRIP | INLCR | IGNCR
++ mode.c_iflag &= ~((unsigned) (IGNBRK | PARMRK | INPCK | ISTRIP | INLCR | IGNCR
+ #ifdef IUCLC
+- | IUCLC
++ | IUCLC
+ #endif
+ #ifdef IXANY
+- | IXANY
++ | IXANY
+ #endif
+- | IXOFF);
++ | IXOFF));
+
+ mode.c_iflag |= (BRKINT | IGNPAR | ICRNL | IXON
+ #ifdef IMAXBEL
+@@ -803,44 +808,44 @@
+ #endif
+ );
+
+- mode.c_oflag &= ~(0
++ mode.c_oflag &= ~((unsigned) (0
+ #ifdef OLCUC
+- | OLCUC
++ | OLCUC
+ #endif
+ #ifdef OCRNL
+- | OCRNL
++ | OCRNL
+ #endif
+ #ifdef ONOCR
+- | ONOCR
++ | ONOCR
+ #endif
+ #ifdef ONLRET
+- | ONLRET
++ | ONLRET
+ #endif
+ #ifdef OFILL
+- | OFILL
++ | OFILL
+ #endif
+ #ifdef OFDEL
+- | OFDEL
++ | OFDEL
+ #endif
+ #ifdef NLDLY
+- | NLDLY
++ | NLDLY
+ #endif
+ #ifdef CRDLY
+- | CRDLY
++ | CRDLY
+ #endif
+ #ifdef TABDLY
+- | TABDLY
++ | TABDLY
+ #endif
+ #ifdef BSDLY
+- | BSDLY
++ | BSDLY
+ #endif
+ #ifdef VTDLY
+- | VTDLY
++ | VTDLY
+ #endif
+ #ifdef FFDLY
+- | FFDLY
++ | FFDLY
+ #endif
+- );
++ ));
+
+ mode.c_oflag |= (OPOST
+ #ifdef ONLCR
+@@ -848,19 +853,19 @@
+ #endif
+ );
+
+- mode.c_cflag &= ~(CSIZE | CSTOPB | PARENB | PARODD | CLOCAL);
++ mode.c_cflag &= ~((unsigned) (CSIZE | CSTOPB | PARENB | PARODD | CLOCAL));
+ mode.c_cflag |= (CS8 | CREAD);
+- mode.c_lflag &= ~(ECHONL | NOFLSH
++ mode.c_lflag &= ~((unsigned) (ECHONL | NOFLSH
+ #ifdef TOSTOP
+- | TOSTOP
++ | TOSTOP
+ #endif
+ #ifdef ECHOPTR
+- | ECHOPRT
++ | ECHOPRT
+ #endif
+ #ifdef XCASE
+- | XCASE
++ | XCASE
+ #endif
+- );
++ ));
+
+ mode.c_lflag |= (ISIG | ICANON | ECHO | ECHOE | ECHOK
+ #ifdef ECHOCTL
+@@ -907,14 +912,23 @@
+ set_control_chars(void)
+ {
+ #ifdef TERMIOS
+- if (DISABLED(mode.c_cc[VERASE]) || terasechar >= 0)
+- mode.c_cc[VERASE] = (terasechar >= 0) ? terasechar : default_erase();
+-
+- if (DISABLED(mode.c_cc[VINTR]) || intrchar >= 0)
+- mode.c_cc[VINTR] = (intrchar >= 0) ? intrchar : CINTR;
+-
+- if (DISABLED(mode.c_cc[VKILL]) || tkillchar >= 0)
+- mode.c_cc[VKILL] = (tkillchar >= 0) ? tkillchar : CKILL;
++ if (DISABLED(mode.c_cc[VERASE]) || terasechar >= 0) {
++ mode.c_cc[VERASE] = UChar((terasechar >= 0)
++ ? terasechar
++ : default_erase());
++ }
++
++ if (DISABLED(mode.c_cc[VINTR]) || intrchar >= 0) {
++ mode.c_cc[VINTR] = UChar((intrchar >= 0)
++ ? intrchar
++ : CINTR);
++ }
++
++ if (DISABLED(mode.c_cc[VKILL]) || tkillchar >= 0) {
++ mode.c_cc[VKILL] = UChar((tkillchar >= 0)
++ ? tkillchar
++ : CKILL);
++ }
+ #endif
+ }
+
+@@ -970,9 +984,9 @@
+ if (newline != (char *) 0 && newline[0] == '\n' && !newline[1]) {
+ /* Newline, not linefeed. */
+ #ifdef ONLCR
+- mode.c_oflag &= ~ONLCR;
++ mode.c_oflag &= ~((unsigned) ONLCR);
+ #endif
+- mode.c_iflag &= ~ICRNL;
++ mode.c_iflag &= ~((unsigned) ICRNL);
+ }
+ #ifdef __OBSOLETE__
+ if (tgetflag("HD")) /* Half duplex. */
+@@ -1043,11 +1057,18 @@
+ {
+ if (set_tab && clear_all_tabs) {
+ int c;
++ int lim =
++#if HAVE_SIZECHANGE
++ tcolumns
++#else
++ columns
++#endif
++ ;
+
+ (void) putc('\r', stderr); /* Force to left margin. */
+ tputs(clear_all_tabs, 0, outc);
+
+- for (c = 8; c < tcolumns; c += 8) {
++ for (c = 8; c < lim; c += 8) {
+ /* Get to the right column. In BSD tset, this
+ * used to try a bunch of half-clever things
+ * with cup and hpa, for an average saving of
+@@ -1273,10 +1294,10 @@
+ (void) get_termcap_entry(*argv);
+
+ if (!noset) {
++#if HAVE_SIZECHANGE
+ tcolumns = columns;
+ tlines = lines;
+
+-#if HAVE_SIZECHANGE
+ if (opt_w) {
+ STRUCT_WINSIZE win;
+ /* Set window size if not set already */
+Index: test/Makefile.in
+Prereq: 1.108
+--- ncurses-5.9/test/Makefile.in 2010-11-28 16:39:40.000000000 +0000
++++ ncurses-5.9-20141206/test/Makefile.in 2014-11-15 00:46:05.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: Makefile.in,v 1.108 2010/11/28 16:39:40 tom Exp $
++# $Id: Makefile.in,v 1.114 2014/11/15 00:46:05 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -44,18 +44,25 @@
+ o = .@OBJEXT@
+
+ MODEL = ../@DFT_OBJ_SUBDIR@
++top_srcdir = @top_srcdir@
+ srcdir = @srcdir@
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
++datarootdir = @datarootdir@
++
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
++includesubdir = @includesubdir@
+
+ BINDIR = $(DESTDIR)$(bindir)
+ LIBDIR = $(DESTDIR)$(libdir)
+-INCLUDEDIR = $(DESTDIR)$(includedir)
++INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir)
++
++PACKAGE = @PACKAGE@
+
+ LIBTOOL = @LIBTOOL@
++LIBTOOL_OPTS = @LIBTOOL_OPTS@
+ LIBTOOL_CLEAN = @LIB_CLEAN@
+ LIBTOOL_COMPILE = @LIB_COMPILE@
+ LIBTOOL_LINK = @LIB_LINK@
+@@ -102,7 +109,7 @@
+ LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
+ LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
+
+-TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
++TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
+
+ # use these for linking with all of the libraries
+ LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB)
+@@ -117,8 +124,8 @@
+ LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
+
+ # use these for linking with the tinfo library if we have it, or curses library if not
+-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
+-LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
++LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_LIBS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
++LDFLAGS_TINFO = @TINFO_LDFLAGS@ $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
+
+ LINT = @LINT@
+ LINT_OPTS = @LINT_OPTS@
+Index: test/README
+Prereq: 1.44
+--- ncurses-5.9/test/README 2011-02-26 00:09:25.000000000 +0000
++++ ncurses-5.9-20141206/test/README 2013-01-19 21:30:38.000000000 +0000
+@@ -1,5 +1,5 @@
+ -------------------------------------------------------------------------------
+--- Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. --
++-- Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. --
+ -- --
+ -- Permission is hereby granted, free of charge, to any person obtaining a --
+ -- copy of this software and associated documentation files (the --
+@@ -25,7 +25,7 @@
+ -- sale, use or other dealings in this Software without prior written --
+ -- authorization. --
+ -------------------------------------------------------------------------------
+--- $Id: README,v 1.44 2011/02/26 00:09:25 tom Exp $
++-- $Id: README,v 1.48 2013/01/19 21:30:38 tom Exp $
+ -------------------------------------------------------------------------------
+
+ The programs in this directory are designed to test your newest toy :-)
+@@ -223,18 +223,18 @@
+ SP lib: form
+ TABSIZE test: test_opaque
+ UP -
+-acs_map test: gdc ins_wide inserts knight movewindow ncurses newdemo test_add_wchstr test_addchstr test_addstr test_addwstr testcurs
++acs_map test: background gdc ins_wide inserts knight movewindow ncurses newdemo test_add_wchstr test_addchstr test_addstr test_addwstr testcurs
+ add_wch test: demo_panels ncurses test_add_wchstr test_addwstr
+ add_wchnstr test: test_add_wchstr
+ add_wchstr test: test_add_wchstr view
+-addch test: blue bs echochar hashtest ncurses savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm
++addch test: background blue bs echochar hashtest ncurses savescreen test_add_wchstr test_addchstr test_addstr test_addwstr test_opaque testaddch view worm
+ addchnstr test: test_addchstr
+ addchstr test: test_addchstr
+ addnstr test: test_addstr
+ addnwstr test: ncurses test_addwstr
+ addstr test: blue bs cardfile gdc hanoi lrtest ncurses savescreen test_addstr
+ addwstr test: ncurses test_addwstr
+-assume_default_colors test: ncurses
++assume_default_colors test: background ncurses
+ assume_default_colors_sp -
+ attr_get test: ncurses
+ attr_off test: ncurses
+@@ -271,7 +271,7 @@
+ color_content_sp -
+ color_set test: color_set ncurses
+ copywin test: ncurses testcurs
+-cur_term test: demo_terminfo dots dots_mvcur lrtest progs: clear tabs tput tset
++cur_term test: demo_terminfo dots dots_mvcur lrtest test_vid_puts test_vidputs progs: clear tabs tput tset
+ curs_set test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas
+ curs_set_sp lib: ncurses
+ curscr test: demo_panels edit_field knight lrtest ncurses savescreen tclock view
+@@ -306,7 +306,7 @@
+ erasewchar -
+ filter test: filter
+ filter_sp -
+-flash test: cardfile lrtest ncurses tclock testcurs
++flash test: cardfile lrtest movewindow ncurses tclock testcurs
+ flash_sp -
+ flushinp test: ncurses newdemo testcurs
+ flushinp_sp lib: ncurses
+@@ -399,7 +399,7 @@
+ key_name test: key_names ncurses
+ keybound test: demo_altkeys demo_defkey
+ keybound_sp lib: ncurses
+-keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic
++keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw test_getstr testcurs view progs: tic
+ keyname_sp lib: ncurses
+ keyok test: demo_keyok foldkeys
+ keyok_sp lib: ncurses
+@@ -430,7 +430,7 @@
+ mvaddwstr test: test_addwstr
+ mvchgat test: chgat
+ mvcur test: dots_mvcur redraw
+-mvcur_sp lib: ncurses
++mvcur_sp -
+ mvdelch -
+ mvderwin test: movewindow
+ mvget_wch -
+@@ -457,7 +457,7 @@
+ mvinsstr test: inserts
+ mvinstr test: test_instr
+ mvinwstr test: test_inwstr
+-mvprintw test: bs demo_menus firework hanoi ncurses tclock view
++mvprintw test: background bs demo_menus firework hanoi ncurses tclock view
+ mvscanw -
+ mvvline test: ncurses
+ mvvline_set test: ncurses
+@@ -542,13 +542,13 @@
+ prefresh test: testcurs
+ printw test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses savescreen testcurs testscanw view
+ putp progs: tput
+-putp_sp lib: ncurses
++putp_sp -
+ putwin test: ncurses
+ qiflush -
+ qiflush_sp -
+ raw test: demo_forms ncurses redraw testcurs
+ raw_sp lib: ncurses
+-redrawwin test: redraw
++redrawwin test: redraw view
+ refresh test: blue bs demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses savescreen tclock testcurs view xmas
+ reset_prog_mode test: filter ncurses
+ reset_prog_mode_sp lib: ncurses
+@@ -586,7 +586,7 @@
+ set_term lib: ncurses
+ setcchar test: demo_panels ins_wide ncurses test_add_wchstr test_addwstr view
+ setscrreg test: view
+-setupterm test: demo_termcap demo_terminfo dots progs: clear tabs tput tset
++setupterm test: demo_termcap demo_terminfo dots test_vid_puts test_vidputs progs: clear tabs tput tset
+ slk_attr -
+ slk_attr_off -
+ slk_attr_on -
+@@ -644,20 +644,20 @@
+ tgetstr test: demo_termcap railroad
+ tgetstr_sp -
+ tgoto test: railroad
+-tigetflag test: demo_terminfo progs: tput
++tigetflag test: demo_terminfo progs: tic tput
+ tigetflag_sp -
+ tigetnum test: demo_terminfo ncurses progs: tput
+ tigetnum_sp -
+-tigetstr test: blue demo_defkey demo_terminfo foldkeys testcurs progs: tput
++tigetstr test: demo_defkey demo_terminfo foldkeys testcurs progs: tput
+ tigetstr_sp -
+ timeout test: rain savescreen
+ tiparm -
+ touchline test: chgat clip_printw insdelln
+ touchwin test: chgat clip_printw demo_menus edit_field filter firstlast inch_wide inchs ins_wide insdelln inserts movewindow ncurses redraw test_add_wchstr test_addchstr test_addstr test_addwstr test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
+ tparm test: dots dots_mvcur progs: tabs tic tput
+-tputs test: dots dots_mvcur railroad progs: clear tabs tset
++tputs test: dots dots_mvcur railroad test_vid_puts test_vidputs progs: clear tabs tset
+ tputs_sp lib: ncurses
+-trace test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
++trace test: demo_menus hashtest lrtest ncurses testcurs view worm
+ ttytype lib: ncurses
+ typeahead test: testcurs
+ typeahead_sp lib: ncurses
+@@ -670,22 +670,24 @@
+ ungetmouse -
+ ungetmouse_sp -
+ untouchwin lib: form
+-use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas
++use_default_colors test: background filter firework gdc hanoi knight ncurses rain tclock worm xmas
+ use_default_colors_sp -
+-use_env progs: tput
++use_env test: ncurses progs: tput
+ use_env_sp -
+-use_extended_names test: demo_terminfo progs: infocmp tic
++use_extended_names test: demo_termcap demo_terminfo progs: infocmp tic
+ use_legacy_coding -
+ use_legacy_coding_sp -
+ use_screen test: ditto
++use_tioctl test: ncurses
++use_tioctl_sp -
+ use_window test: rain worm
+-vid_attr -
++vid_attr test: test_vid_puts
+ vid_attr_sp -
+-vid_puts -
++vid_puts test: test_vid_puts
+ vid_puts_sp -
+-vidattr -
+-vidattr_sp lib: ncurses
+-vidputs -
++vidattr test: test_vidputs
++vidattr_sp -
++vidputs test: test_vidputs
+ vidputs_sp lib: ncurses
+ vline test: gdc ncurses
+ vline_set -
+Index: test/aclocal.m4
+Prereq: 1.50
+--- ncurses-5.9/test/aclocal.m4 2011-03-24 08:28:07.000000000 +0000
++++ ncurses-5.9-20141206/test/aclocal.m4 2014-12-06 13:39:47.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 2003-2010,2011 Free Software Foundation, Inc. *
++dnl Copyright (c) 2003-2013,2014 Free Software Foundation, Inc. *
+ dnl *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a *
+ dnl copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ dnl authorization. *
+ dnl***************************************************************************
+ dnl
+-dnl $Id: aclocal.m4,v 1.50 2011/03/24 08:28:07 tom Exp $
++dnl $Id: aclocal.m4,v 1.102 2014/12/06 13:39:47 tom Exp $
+ dnl
+ dnl Author: Thomas E. Dickey
+ dnl
+@@ -40,7 +40,33 @@
+ dnl
+ dnl ---------------------------------------------------------------------------
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
++dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
++dnl ------------------
++dnl Conditionally generate script according to whether we're using a given autoconf.
++dnl
++dnl $1 = version to compare against
++dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
++dnl $3 = code to use if AC_ACVERSION is older than $1.
++define([CF_ACVERSION_CHECK],
++[
++ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
++ifdef([m4_version_compare],
++[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
++[CF_ACVERSION_COMPARE(
++AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
++AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
++dnl --------------------
++dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
++dnl MAJOR2, MINOR2, TERNARY2,
++dnl PRINTABLE2, not FOUND, FOUND)
++define([CF_ACVERSION_COMPARE],
++[ifelse(builtin([eval], [$2 < $5]), 1,
++[ifelse([$8], , ,[$8])],
++[ifelse([$9], , ,[$9])])])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_ADD_CFLAGS version: 11 updated: 2014/07/22 05:32:57
+ dnl -------------
+ dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+ dnl The second parameter if given makes this macro verbose.
+@@ -65,7 +91,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -102,7 +128,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -229,15 +255,33 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
++dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
+ dnl -----------
+-dnl Add one or more libraries, used to enforce consistency.
++dnl Add one or more libraries, used to enforce consistency. Libraries are
++dnl prepended to an existing list, since their dependencies are assumed to
++dnl already exist in the list.
+ dnl
+ dnl $1 = libraries to add, with the "-l", etc.
+ dnl $2 = variable to update (default $LIBS)
+-AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
++AC_DEFUN([CF_ADD_LIBS],[
++cf_add_libs="$1"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++ifelse($2,,LIBS,[$2])="$cf_add_libs"
++])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_LIB_AFTER version: 2 updated: 2010/11/08 20:33:46
++dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
+ dnl ----------------
+ dnl Add a given library after another, e.g., following the one it satisfies a
+ dnl dependency for.
+@@ -246,11 +290,11 @@
+ dnl $2 = its dependency
+ AC_DEFUN([CF_ADD_LIB_AFTER],[
+ CF_VERBOSE(...before $LIBS)
+-LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s,$1 ,$1 $2 ," -e 's/ / /g'`
++LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'`
+ CF_VERBOSE(...after $LIBS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
++dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
+ dnl ------------------
+ dnl Append to a search-list for a nonstandard header/lib-file
+ dnl $1 = the variable to return as result
+@@ -260,9 +304,9 @@
+ dnl $5 = a directory that we do not want $4 to match
+ AC_DEFUN([CF_ADD_SUBDIR_PATH],
+ [
+-test "$4" != "$5" && \
++test "x$4" != "x$5" && \
+ test -d "$4" && \
+-ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
++ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
+ test -n "$verbose" && echo " ... testing for $3-directories under $4"
+ test -d $4/$3 && $1="[$]$1 $4/$3"
+ test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
+@@ -272,76 +316,6 @@
+ }
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
+-dnl ----------------
+-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+-dnl in the sharutils 4.2 distribution.
+-AC_DEFUN([CF_ANSI_CC_CHECK],
+-[
+-AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
+-cf_cv_ansi_cc=no
+-cf_save_CFLAGS="$CFLAGS"
+-cf_save_CPPFLAGS="$CPPFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc
+-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+-for cf_arg in "-DCC_HAS_PROTOS" \
+- "" \
+- -qlanglvl=ansi \
+- -std1 \
+- -Ae \
+- "-Aa -D_HPUX_SOURCE" \
+- -Xc
+-do
+- CF_ADD_CFLAGS($cf_arg)
+- AC_TRY_COMPILE(
+-[
+-#ifndef CC_HAS_PROTOS
+-#if !defined(__STDC__) || (__STDC__ != 1)
+-choke me
+-#endif
+-#endif
+-],[
+- int test (int i, double x);
+- struct s1 {int (*f) (int a);};
+- struct s2 {int (*f) (double a);};],
+- [cf_cv_ansi_cc="$cf_arg"; break])
+-done
+-CFLAGS="$cf_save_CFLAGS"
+-CPPFLAGS="$cf_save_CPPFLAGS"
+-])
+-
+-if test "$cf_cv_ansi_cc" != "no"; then
+-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+- CF_ADD_CFLAGS($cf_cv_ansi_cc)
+-else
+- AC_DEFINE(CC_HAS_PROTOS)
+-fi
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
+-dnl ---------------
+-dnl For programs that must use an ANSI compiler, obtain compiler options that
+-dnl will make it recognize prototypes. We'll do preprocessor checks in other
+-dnl macros, since tools such as unproto can fake prototypes, but only part of
+-dnl the preprocessor.
+-AC_DEFUN([CF_ANSI_CC_REQD],
+-[AC_REQUIRE([CF_ANSI_CC_CHECK])
+-if test "$cf_cv_ansi_cc" = "no"; then
+- AC_MSG_ERROR(
+-[Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto])
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
+ dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
+ dnl --------------
+ dnl Allow user to disable a normally-on option.
+@@ -377,7 +351,33 @@
+ ])dnl
+ ])])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
++dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
++dnl ---------------
++dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
++dnl into CC. This will not help with broken scripts that wrap the compiler with
++dnl options, but eliminates a more common category of user confusion.
++AC_DEFUN([CF_CC_ENV_FLAGS],
++[
++# This should have been defined by AC_PROG_CC
++: ${CC:=cc}
++
++AC_MSG_CHECKING(\$CC variable)
++case "$CC" in #(vi
++*[[\ \ ]]-[[IUD]]*)
++ AC_MSG_RESULT(broken)
++ AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
++ # humor him...
++ cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
++ CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
++ CF_ADD_CFLAGS($cf_flags)
++ ;;
++*)
++ AC_MSG_RESULT(ok)
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
+ dnl --------------
+ dnl Check if we're accidentally using a cache from a different machine.
+ dnl Derive the system name, as a check for reusing the autoconf cache.
+@@ -400,7 +400,7 @@
+ system_name="`(hostname) 2>/dev/null`"
+ fi
+ fi
+-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
++test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
+ AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+@@ -412,7 +412,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CHECK_CFLAGS version: 2 updated: 2001/12/30 19:09:58
++dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
+ dnl ---------------
+ dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
+ dnl a build-configuration such as imake. These have the pitfall that they
+@@ -424,17 +424,50 @@
+ cf_check_cflags="$CFLAGS"
+ cf_check_cppflags="$CPPFLAGS"
+ CF_ADD_CFLAGS($1,yes)
+-if test "$cf_check_cflags" != "$CFLAGS" ; then
++if test "x$cf_check_cflags" != "x$CFLAGS" ; then
+ AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
+ [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
+- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
++ if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
+ CF_VERBOSE(but keeping change to \$CPPFLAGS)
+ fi
+ CFLAGS="$cf_check_flags"])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_ACS_MAP version: 6 updated: 2010/10/23 15:54:49
++dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
++dnl -----------------
++dnl Check if the given compiler is really clang. clang's C driver defines
++dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
++dnl not ignore some gcc options.
++dnl
++dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
++dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
++dnl the wrappers for gcc and g++ warnings.
++dnl
++dnl $1 = GCC (default) or GXX
++dnl $2 = CLANG_COMPILER (default)
++dnl $3 = CFLAGS (default) or CXXFLAGS
++AC_DEFUN([CF_CLANG_COMPILER],[
++ifelse([$2],,CLANG_COMPILER,[$2])=no
++
++if test "$ifelse([$1],,[$1],GCC)" = yes ; then
++ AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
++ cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
++ ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
++ AC_TRY_COMPILE([],[
++#ifdef __clang__
++#else
++make an error
++#endif
++],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++],[])
++ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
++ AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
++fi
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
+ dnl -----------------
+ dnl Check for likely values of acs_map[]:
+ AC_DEFUN([CF_CURSES_ACS_MAP],
+@@ -452,10 +485,10 @@
+ done
+ ])
+
+-test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
++test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_])
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_CHECK_DATA version: 4 updated: 2011/01/15 16:39:24
++dnl CF_CURSES_CHECK_DATA version: 5 updated: 2014/07/19 18:41:17
+ dnl --------------------
+ dnl Check if curses.h defines the given data/variable.
+ dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
+@@ -480,6 +513,7 @@
+ int main(void)
+ {
+ void *foo = &($1);
++ fprintf(stderr, "testing linkage of $1:%p\n", foo);
+ ${cf_cv_main_return:-return}(foo == 0);
+ }],[cf_result=yes],[cf_result=no],[
+ # cross-compiling
+@@ -487,6 +521,7 @@
+ [extern char $1;],[
+ do {
+ void *foo = &($1);
++ fprintf(stderr, "testing linkage of $1:%p\n", foo);
+ ${cf_cv_main_return:-return}(foo == 0);
+ } while (0)
+ ],[cf_result=yes],[cf_result=no])
+@@ -499,7 +534,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_CHECK_TYPE version: 3 updated: 2010/10/23 15:54:49
++dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
+ dnl --------------------
+ dnl Check if curses.h defines the given type
+ AC_DEFUN([CF_CURSES_CHECK_TYPE],
+@@ -515,9 +550,9 @@
+ AC_MSG_RESULT($cf_result)
+ if test $cf_result = yes ; then
+ CF_UPPER(cf_result,have_type_$1)
+- AC_DEFINE_UNQUOTED($cf_result)
++ AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
+ else
+- AC_DEFINE_UNQUOTED($1,$2)
++ AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+@@ -533,7 +568,7 @@
+ CF_CURSES_LIBS
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11
++dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
+ dnl ------------------
+ dnl Look for the curses headers.
+ AC_DEFUN([CF_CURSES_CPPFLAGS],[
+@@ -542,13 +577,19 @@
+ cf_cv_curses_incdir=no
+ case $host_os in #(vi
+ hpux10.*) #(vi
+- test -d /usr/include/curses_colr && \
+- cf_cv_curses_incdir="-I/usr/include/curses_colr"
++ if test "x$cf_cv_screen" = "xcurses_colr"
++ then
++ test -d /usr/include/curses_colr && \
++ cf_cv_curses_incdir="-I/usr/include/curses_colr"
++ fi
+ ;;
+ sunos3*|sunos4*)
+- test -d /usr/5lib && \
+- test -d /usr/5include && \
+- cf_cv_curses_incdir="-I/usr/5include"
++ if test "x$cf_cv_screen" = "xcurses_5lib"
++ then
++ test -d /usr/5lib && \
++ test -d /usr/5include && \
++ cf_cv_curses_incdir="-I/usr/5include"
++ fi
+ ;;
+ esac
+ ])
+@@ -558,7 +599,7 @@
+ CF_TERM_HEADER
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_FUNCS version: 15 updated: 2010/10/23 15:52:32
++dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
+ dnl ---------------
+ dnl Curses-functions are a little complicated, since a lot of them are macros.
+ AC_DEFUN([CF_CURSES_FUNCS],
+@@ -566,6 +607,7 @@
+ AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
+ AC_REQUIRE([CF_XOPEN_CURSES])
+ AC_REQUIRE([CF_CURSES_TERM_H])
++AC_REQUIRE([CF_CURSES_UNCTRL_H])
+ for cf_func in $1
+ do
+ CF_UPPER(cf_tr_func,$cf_func)
+@@ -578,7 +620,9 @@
+ [
+ #ifndef ${cf_func}
+ long foo = (long)(&${cf_func});
+-${cf_cv_main_return:-return}(foo == 0);
++fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
++if (foo + 1234 > 5678)
++ ${cf_cv_main_return:-return}(foo);
+ #endif
+ ],
+ [cf_result=yes],
+@@ -595,7 +639,7 @@
+ done
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
++dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
+ dnl ----------------
+ dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+ dnl variations of ncurses' installs.
+@@ -605,10 +649,10 @@
+ AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
+ cf_cv_ncurses_header=none
+ for cf_header in ifelse($1,,,[ \
+- $1/curses.h \
+- $1/ncurses.h]) \
+- curses.h \
+- ncurses.h ifelse($1,,[ncurses/curses.h ncurses/ncurses.h])
++ $1/ncurses.h \
++ $1/curses.h]) \
++ ncurses.h \
++ curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
+ do
+ AC_TRY_COMPILE([#include <${cf_header}>],
+ [initscr(); tgoto("?", 0,0)],
+@@ -624,7 +668,7 @@
+ AC_CHECK_HEADERS($cf_cv_ncurses_header)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_LIBS version: 33 updated: 2011/03/06 12:37:18
++dnl CF_CURSES_LIBS version: 37 updated: 2013/02/09 17:33:50
+ dnl --------------
+ dnl Look for the curses libraries. Older curses implementations may require
+ dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
+@@ -644,17 +688,24 @@
+ AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
+ ;;
+ hpux10.*) #(vi
+- AC_CHECK_LIB(cur_colr,initscr,[
+- CF_ADD_LIBS(-lcur_colr)
+- ac_cv_func_initscr=yes
+- ],[
+- AC_CHECK_LIB(Hcurses,initscr,[
+- # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+- CF_ADD_LIBS(-lHcurses)
+- CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
+- ac_cv_func_initscr=yes
+- ])])
+- ;;
++ # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
++ # next (1998), and xcurses "newer" (2000). There is no header file for
++ # Hcurses; the subdirectory curses_colr has the headers (curses.h and
++ # term.h) for cur_colr
++ if test "x$cf_cv_screen" = "xcurses_colr"
++ then
++ AC_CHECK_LIB(cur_colr,initscr,[
++ CF_ADD_LIBS(-lcur_colr)
++ ac_cv_func_initscr=yes
++ ],[
++ AC_CHECK_LIB(Hcurses,initscr,[
++ # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
++ CF_ADD_LIBS(-lHcurses)
++ CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
++ ac_cv_func_initscr=yes
++ ])])
++ fi
++ ;;
+ linux*)
+ case `arch 2>/dev/null` in
+ x86_64)
+@@ -669,76 +720,83 @@
+ CF_ADD_LIBDIR(/lib)
+ ;;
+ esac
+- ;;
++ ;;
+ sunos3*|sunos4*)
+- if test -d /usr/5lib ; then
+- CF_ADD_LIBDIR(/usr/5lib)
+- CF_ADD_LIBS(-lcurses -ltermcap)
++ if test "x$cf_cv_screen" = "xcurses_5lib"
++ then
++ if test -d /usr/5lib ; then
++ CF_ADD_LIBDIR(/usr/5lib)
++ CF_ADD_LIBS(-lcurses -ltermcap)
++ fi
+ fi
+ ac_cv_func_initscr=yes
+ ;;
+ esac
+
+ if test ".$ac_cv_func_initscr" != .yes ; then
+- cf_save_LIBS="$LIBS"
+- cf_term_lib=""
+- cf_curs_lib=""
++ cf_save_LIBS="$LIBS"
+
+- if test ".${cf_cv_ncurses_version:-no}" != .no
+- then
+- cf_check_list="ncurses curses cursesX"
+- else
+- cf_check_list="cursesX curses ncurses"
+- fi
++ if test ".${cf_cv_ncurses_version:-no}" != .no
++ then
++ cf_check_list="ncurses curses cursesX"
++ else
++ cf_check_list="cursesX curses ncurses"
++ fi
+
+- # Check for library containing tgoto. Do this before curses library
+- # because it may be needed to link the test-case for initscr.
+- AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
+- for cf_term_lib in $cf_check_list termcap termlib unknown
+- do
+- AC_CHECK_LIB($cf_term_lib,tgoto,[break])
+- done
+- ])
++ # Check for library containing tgoto. Do this before curses library
++ # because it may be needed to link the test-case for initscr.
++ if test "x$cf_term_lib" = x
++ then
++ AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
++ for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
++ do
++ AC_CHECK_LIB($cf_term_lib,tgoto,[break])
++ done
++ ])
++ fi
+
+- # Check for library containing initscr
+- test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
+- for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
+- do
+- AC_CHECK_LIB($cf_curs_lib,initscr,[break])
+- done
+- test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
++ # Check for library containing initscr
++ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
++ if test "x$cf_curs_lib" = x
++ then
++ for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
++ do
++ AC_CHECK_LIB($cf_curs_lib,initscr,[break])
++ done
++ fi
++ test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
+
+- LIBS="-l$cf_curs_lib $cf_save_LIBS"
+- if test "$cf_term_lib" = unknown ; then
+- AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
+- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+- [initscr()],
+- [cf_result=yes],
+- [cf_result=no])
+- AC_MSG_RESULT($cf_result)
+- test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
+- elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+- :
+- elif test "$cf_term_lib" != predefined ; then
+- AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
+- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+- [initscr(); tgoto((char *)0, 0, 0);],
+- [cf_result=no],
+- [
+- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+- AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+- [initscr()],
+- [cf_result=yes],
+- [cf_result=error])
+- ])
+- AC_MSG_RESULT($cf_result)
+- fi
++ LIBS="-l$cf_curs_lib $cf_save_LIBS"
++ if test "$cf_term_lib" = unknown ; then
++ AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
++ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
++ [initscr()],
++ [cf_result=yes],
++ [cf_result=no])
++ AC_MSG_RESULT($cf_result)
++ test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
++ elif test "$cf_curs_lib" = "$cf_term_lib" ; then
++ :
++ elif test "$cf_term_lib" != predefined ; then
++ AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
++ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
++ [initscr(); tgoto((char *)0, 0, 0);],
++ [cf_result=no],
++ [
++ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
++ AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
++ [initscr()],
++ [cf_result=yes],
++ [cf_result=error])
++ ])
++ AC_MSG_RESULT($cf_result)
++ fi
+ fi
+ fi
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_TERM_H version: 8 updated: 2010/10/23 15:54:49
++dnl CF_CURSES_TERM_H version: 10 updated: 2012/10/06 08:57:51
+ dnl ----------------
+ dnl SVr4 curses should have term.h as well (where it puts the definitions of
+ dnl the low-level interface). This may not be true in old/broken implementations,
+@@ -752,9 +810,17 @@
+
+ # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+ # for <term.h> if we do not find the variant.
+-for cf_header in \
+- `echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
+- term.h
++
++cf_header_list="term.h ncurses/term.h ncursesw/term.h"
++
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
++ cf_header_list="$cf_header_item $cf_header_list"
++ ;;
++esac
++
++for cf_header in $cf_header_list
+ do
+ AC_TRY_COMPILE([
+ #include <${cf_cv_ncurses_header:-curses.h}>
+@@ -789,18 +855,73 @@
+
+ case $cf_cv_term_header in #(vi
+ term.h) #(vi
+- AC_DEFINE(HAVE_TERM_H)
++ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
+ ;;
+ ncurses/term.h) #(vi
+- AC_DEFINE(HAVE_NCURSES_TERM_H)
++ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
+ ;;
+ ncursesw/term.h)
+- AC_DEFINE(HAVE_NCURSESW_TERM_H)
++ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
+ ;;
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59
++dnl CF_CURSES_UNCTRL_H version: 3 updated: 2013/11/03 06:26:10
++dnl ------------------
++dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
++dnl may put it in a subdirectory (along with ncurses' other headers, of
++dnl course). Packages which put the headers in inconsistent locations are
++dnl broken).
++AC_DEFUN([CF_CURSES_UNCTRL_H],
++[
++AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
++
++AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
++
++# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
++# for <unctrl.h> if we do not find the variant.
++
++cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
++
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
++ cf_header_list="$cf_header_item $cf_header_list"
++ ;;
++esac
++
++for cf_header in $cf_header_list
++do
++ AC_TRY_COMPILE([
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <${cf_header}>],
++ [WINDOW *x],
++ [cf_cv_unctrl_header=$cf_header
++ break],
++ [cf_cv_unctrl_header=no])
++done
++])
++
++case $cf_cv_unctrl_header in #(vi
++no)
++ AC_MSG_WARN(unctrl.h header not found)
++ ;;
++esac
++
++case $cf_cv_unctrl_header in #(vi
++unctrl.h) #(vi
++ AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
++ ;;
++ncurses/unctrl.h) #(vi
++ AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
++ ;;
++ncursesw/unctrl.h)
++ AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
+ dnl ------------------
+ dnl Check for likely values of wacs_map[].
+ AC_DEFUN([CF_CURSES_WACS_MAP],
+@@ -819,10 +940,10 @@
+ break])
+ done])
+
+-test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map)
++test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_CURSES_WACS_SYMBOLS version: 1 updated: 2011/01/15 11:28:59
++dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
+ dnl ----------------------
+ dnl Do a check to see if the WACS_xxx constants are defined compatibly with
+ dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
+@@ -854,7 +975,7 @@
+ fi
+ ])
+
+-test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS)
++test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
+@@ -862,7 +983,7 @@
+ dnl "dirname" is not portable, so we fake it with a shell script.
+ AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57
++dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
+ dnl ---------------
+ dnl You can always use "make -n" to see the actual options, but it's hard to
+ dnl pick out/analyze warning messages when the compile-line is long.
+@@ -877,7 +998,7 @@
+ AC_DEFUN([CF_DISABLE_ECHO],[
+ AC_MSG_CHECKING(if you want to see long compiling messages)
+ CF_ARG_DISABLE(echo,
+- [ --disable-echo display "compiling" commands],
++ [ --disable-echo do not display "compiling" commands],
+ [
+ ECHO_LT='--silent'
+ ECHO_LD='@echo linking [$]@;'
+@@ -899,7 +1020,7 @@
+ AC_SUBST(ECHO_CC)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32
++dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
+ dnl ----------------
+ dnl Combine no-leak checks with the libraries or tools that are used for the
+ dnl checks.
+@@ -917,11 +1038,30 @@
+ AC_MSG_RESULT($with_no_leaks)
+
+ if test "$with_no_leaks" = yes ; then
+- AC_DEFINE(NO_LEAKS)
+- AC_DEFINE(YY_NO_LEAKS)
++ AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
++ AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
++dnl ---------------------
++dnl The rpath-hack makes it simpler to build programs, particularly with the
++dnl *BSD ports which may have essential libraries in unusual places. But it
++dnl can interfere with building an executable for the base system. Use this
++dnl option in that case.
++AC_DEFUN([CF_DISABLE_RPATH_HACK],
++[
++AC_MSG_CHECKING(if rpath-hack should be disabled)
++CF_ARG_DISABLE(rpath-hack,
++ [ --disable-rpath-hack don't add rpath options for additional libraries],
++ [cf_disable_rpath_hack=yes],
++ [cf_disable_rpath_hack=no])
++AC_MSG_RESULT($cf_disable_rpath_hack)
++if test "$cf_disable_rpath_hack" = no ; then
++ CF_RPATH_HACK
++fi
++])
++dnl ---------------------------------------------------------------------------
+ dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
+ dnl ------------------
+ dnl Configure-option to enable gcc warnings
+@@ -1122,7 +1262,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_FUNC_CURSES_VERSION version: 5 updated: 2010/10/23 15:54:49
++dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
+ dnl ----------------------
+ dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
+ dnl It's a character string "SVR4", not documented.
+@@ -1141,10 +1281,10 @@
+ ,[cf_cv_func_curses_version=no]
+ ,[cf_cv_func_curses_version=unknown])
+ rm -f core])
+-test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
++test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
++dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
+ dnl -----------------
+ dnl Test for availability of useful gcc __attribute__ directives to quiet
+ dnl compiler warnings. Though useful, not all are supported -- and contrary
+@@ -1222,27 +1362,27 @@
+ test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
+ cat conftest.h >>confdefs.h
+ case $cf_attribute in #(vi
++ noreturn) #(vi
++ AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
++ ;;
+ printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-EOF
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
++ AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
+ fi
++ AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
+ ;;
+ scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-EOF
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
++ AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
+ fi
++ AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
++ ;;
++ unused) #(vi
++ AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
+ ;;
+ esac
+ fi
+@@ -1254,7 +1394,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
++dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
+ dnl --------------
+ dnl Find version of gcc
+ AC_DEFUN([CF_GCC_VERSION],[
+@@ -1262,13 +1402,13 @@
+ GCC_VERSION=none
+ if test "$GCC" = yes ; then
+ AC_MSG_CHECKING(version of $CC)
+- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ test -z "$GCC_VERSION" && GCC_VERSION=unknown
+ AC_MSG_RESULT($GCC_VERSION)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
++dnl CF_GCC_WARNINGS version: 31 updated: 2013/11/19 19:23:35
+ dnl ---------------
+ dnl Check if the compiler supports useful warning options. There's a few that
+ dnl we don't use, simply because they're too noisy:
+@@ -1291,6 +1431,7 @@
+ [
+ AC_REQUIRE([CF_GCC_VERSION])
+ CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
++CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
+
+ cat > conftest.$ac_ext <<EOF
+ #line __oline__ "${as_me:-configure}"
+@@ -1339,10 +1480,14 @@
+ EXTRA_CFLAGS=
+ cf_warn_CONST=""
+ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
+ for cf_opt in W Wall \
+ Wbad-function-cast \
+ Wcast-align \
+ Wcast-qual \
++ Wdeclaration-after-statement \
++ Wextra \
+ Winline \
+ Wmissing-declarations \
+ Wmissing-prototypes \
+@@ -1350,7 +1495,7 @@
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+- Wundef $cf_warn_CONST $1
++ Wundef $cf_gcc_warnings $cf_warn_CONST $1
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+@@ -1366,6 +1511,13 @@
+ continue;;
+ esac
+ ;;
++ Wpointer-arith) #(vi
++ case $GCC_VERSION in
++ [[12]].*)
++ CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
++ continue;;
++ esac
++ ;;
+ esac
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+@@ -1377,6 +1529,32 @@
+ AC_SUBST(EXTRA_CFLAGS)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
++dnl ----------------
++dnl Check for getopt's variables which are commonly defined in stdlib.h,
++dnl unistd.h or (nonstandard) in getopt.h
++AC_DEFUN([CF_GETOPT_HEADER],
++[
++AC_HAVE_HEADERS(unistd.h getopt.h)
++AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
++AC_TRY_COMPILE([
++#include <$cf_header>],
++[int x = optind; char *y = optarg],
++[cf_cv_getopt_header=$cf_header
++ break])
++done
++])
++if test $cf_cv_getopt_header != none ; then
++ AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
++fi
++if test $cf_cv_getopt_header = getopt.h ; then
++ AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
+ dnl -------------
+ dnl Check if we must define _GNU_SOURCE to get a reasonable value for
+@@ -1453,6 +1631,13 @@
+ $1="[$]$1 $cf_header_path_list"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
++dnl ---------------
++dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
++AC_DEFUN([CF_HELP_MESSAGE],
++[AC_DIVERT_HELP([$1])dnl
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
+ dnl -----------------
+ dnl If we do not have a given script, look for it in the parent directory.
+@@ -1461,7 +1646,7 @@
+ test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
++dnl CF_INTEL_COMPILER version: 6 updated: 2014/03/17 13:13:07
+ dnl -----------------
+ dnl Check if the given compiler is really the Intel compiler for Linux. It
+ dnl tries to imitate gcc, but does not return an error when it finds a mismatch
+@@ -1475,6 +1660,7 @@
+ dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
+ dnl $3 = CFLAGS (default) or CXXFLAGS
+ AC_DEFUN([CF_INTEL_COMPILER],[
++AC_REQUIRE([AC_CANONICAL_HOST])
+ ifelse([$2],,INTEL_COMPILER,[$2])=no
+
+ if test "$ifelse([$1],,[$1],GCC)" = yes ; then
+@@ -1489,7 +1675,7 @@
+ make an error
+ #endif
+ ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
+ ],[])
+ ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
+ AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
+@@ -1498,6 +1684,60 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
++dnl ---------------
++dnl For the given system and compiler, find the compiler flags to pass to the
++dnl loader to use the "rpath" feature.
++AC_DEFUN([CF_LD_RPATH_OPT],
++[
++AC_REQUIRE([CF_CHECK_CACHE])
++
++LD_RPATH_OPT=
++AC_MSG_CHECKING(for an rpath option)
++case $cf_cv_system_name in #(vi
++irix*) #(vi
++ if test "$GCC" = yes; then
++ LD_RPATH_OPT="-Wl,-rpath,"
++ else
++ LD_RPATH_OPT="-rpath "
++ fi
++ ;;
++linux*|gnu*|k*bsd*-gnu) #(vi
++ LD_RPATH_OPT="-Wl,-rpath,"
++ ;;
++openbsd[[2-9]].*|mirbsd*) #(vi
++ LD_RPATH_OPT="-Wl,-rpath,"
++ ;;
++dragonfly*|freebsd*) #(vi
++ LD_RPATH_OPT="-rpath "
++ ;;
++netbsd*) #(vi
++ LD_RPATH_OPT="-Wl,-rpath,"
++ ;;
++osf*|mls+*) #(vi
++ LD_RPATH_OPT="-rpath "
++ ;;
++solaris2*) #(vi
++ LD_RPATH_OPT="-R"
++ ;;
++*)
++ ;;
++esac
++AC_MSG_RESULT($LD_RPATH_OPT)
++
++case "x$LD_RPATH_OPT" in #(vi
++x-R*)
++ AC_MSG_CHECKING(if we need a space after rpath option)
++ cf_save_LIBS="$LIBS"
++ CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
++ AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
++ LIBS="$cf_save_LIBS"
++ AC_MSG_RESULT($cf_rpath_space)
++ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
++ ;;
++esac
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
+ dnl ---------------
+ dnl Construct a search-list of directories for a nonstandard library-file
+@@ -1588,38 +1828,7 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_MIN_GETCCHAR version: 3 updated: 2010/10/23 15:54:49
+-dnl ---------------
+-dnl CF_MIN_GETCCHAR
+-dnl Check whether getcchar's return value counts the trailing null in a wchar_t
+-dnl string, or not. X/Open says it does, but Tru64 and Solaris do not do this.
+-AC_DEFUN([CF_MIN_GETCCHAR],[
+-AC_CACHE_CHECK(if getcchar counts trailing null,cf_cv_min_getcchar,[
+-AC_TRY_RUN([
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-
+-int main()
+-{
+- wchar_t data[2];
+- cchar_t temp[2];
+- int count;
+- data[0] = L'\0';
+- setcchar(temp, data, 0, 0, (void *)0);
+- count = getcchar(temp, (wchar_t *)0, (attr_t *)0, (short *)0, (void *)0);
+- ${cf_cv_main_return:-return}(count != 0);
+-}],
+- [cf_cv_min_getcchar=no],
+- [cf_cv_min_getcchar=yes],
+- [cf_cv_min_getcchar=yes])
+-])
+-if test "$cf_cv_min_getcchar" = yes ; then
+- AC_DEFINE(MIN_GETCCHAR,1)
+-fi
+-])dnl
+-dnl ---------------------------------------------------------------------------
+-dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
++dnl CF_MIXEDCASE_FILENAMES version: 6 updated: 2013/10/08 17:47:05
+ dnl ----------------------
+ dnl Check if the file-system supports mixed-case filenames. If we're able to
+ dnl create a lowercase name and see it as uppercase, it doesn't support that.
+@@ -1628,7 +1837,7 @@
+ AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
+ if test "$cross_compiling" = yes ; then
+ case $target_alias in #(vi
+- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
+ cf_cv_mixedcase=no
+ ;;
+ *)
+@@ -1646,7 +1855,7 @@
+ rm -f conftest CONFTEST
+ fi
+ ])
+-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
++test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
+@@ -1690,7 +1899,7 @@
+ ,[$1=no])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
++dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51
+ dnl -----------------
+ dnl Tie together the configure-script macros for ncurses.
+ dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
+@@ -1702,7 +1911,10 @@
+ cf_ncuconfig_root=ifelse($1,,ncurses,$1)
+
+ echo "Looking for ${cf_ncuconfig_root}-config"
+-AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
++
++CF_ACVERSION_CHECK(2.52,
++ [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
++ [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
+
+ if test "$NCURSES_CONFIG" != none ; then
+
+@@ -1713,7 +1925,7 @@
+ CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
+
+ dnl like CF_NCURSES_CPPFLAGS
+-AC_DEFINE(NCURSES)
++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
+
+ dnl like CF_NCURSES_LIBS
+ CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
+@@ -1730,7 +1942,7 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
++dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
+ dnl -------------------
+ dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
+ dnl the CPPFLAGS variable so we can include its header.
+@@ -1776,12 +1988,12 @@
+ CF_TERM_HEADER
+
+ # some applications need this, but should check for NCURSES_VERSION
+-AC_DEFINE(NCURSES)
++AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
+
+ CF_NCURSES_VERSION
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_EXT_FUNCS version: 3 updated: 2010/11/13 19:43:23
++dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
+ dnl --------------------
+ dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
+ dnl may provide these functions. Define the symbol if it is not defined, and
+@@ -1813,10 +2025,10 @@
+ [cf_cv_ncurses_ext_funcs=no])
+ ])
+ ])
+-test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS)
++test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
++dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51
+ dnl -----------------
+ dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+ dnl variations of ncurses' installs.
+@@ -1867,16 +2079,16 @@
+
+ case $cf_cv_ncurses_header in # (vi
+ *ncurses.h)
+- AC_DEFINE(HAVE_NCURSES_H)
++ AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
+ ;;
+ esac
+
+ case $cf_cv_ncurses_header in # (vi
+ ncurses/curses.h|ncurses/ncurses.h)
+- AC_DEFINE(HAVE_NCURSES_NCURSES_H)
++ AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
+ ;;
+ ncursesw/curses.h|ncursesw/ncurses.h)
+- AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
++ AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
+ ;;
+ esac
+
+@@ -1950,7 +2162,7 @@
+ AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
++dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
+ dnl ------------------
+ dnl Check for the version of ncurses, to aid in reporting bugs, etc.
+ dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
+@@ -2009,7 +2221,7 @@
+ ])
+ rm -f $cf_tempfile
+ ])
+-test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
++test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
+@@ -2028,7 +2240,7 @@
+ AC_SUBST(NCURSES_WRAP_PREFIX)
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NETBSD_FORM_H version: 1 updated: 2011/01/15 14:59:18
++dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
+ dnl ----------------
+ dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
+ dnl Some workarounds are needed in client programs to allow them to compile.
+@@ -2045,10 +2257,10 @@
+ ],[cf_cv_netbsd_form_h=no])
+ ])
+
+-test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H)
++test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H,1,[Define to 1 if we appear to be using NetBSD form.h])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NETBSD_MENU_H version: 1 updated: 2011/01/15 14:59:18
++dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
+ dnl ----------------
+ dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
+ dnl Some workarounds are needed in client programs to allow them to compile.
+@@ -2064,17 +2276,17 @@
+ ],[cf_cv_netbsd_menu_h=no])
+ ])
+
+-test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H)
++test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
++dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
+ dnl ------------------
+ dnl see CF_WITH_NO_LEAKS
+ AC_DEFUN([CF_NO_LEAKS_OPTION],[
+ AC_MSG_CHECKING(if you want to use $1 for testing)
+ AC_ARG_WITH($1,
+ [$2],
+- [AC_DEFINE($3)ifelse([$4],,[
++ [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
+ $4
+ ])
+ : ${with_cflags:=-g}
+@@ -2096,7 +2308,7 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
++dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
+ dnl --------------
+ dnl Check the argument to see that it looks like a pathname. Rewrite it if it
+ dnl begins with one of the prefix/exec_prefix variables, and then again if the
+@@ -2116,7 +2328,7 @@
+ ;;
+ .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
+ ;;
+-.\[$]{*prefix}*) #(vi
++.\[$]{*prefix}*|.\[$]{*dir}*) #(vi
+ eval $1="[$]$1"
+ case ".[$]$1" in #(vi
+ .NONE/*)
+@@ -2133,13 +2345,15 @@
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PDCURSES_X11 version: 11 updated: 2011/01/15 18:45:38
++dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
+ dnl ---------------
+ dnl Configure for PDCurses' X11 library
+ AC_DEFUN([CF_PDCURSES_X11],[
+ AC_REQUIRE([CF_X_ATHENA])
+
+-AC_PATH_PROGS(XCURSES_CONFIG,xcurses-config,none)
++CF_ACVERSION_CHECK(2.52,
++ [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
++ [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
+
+ if test "$XCURSES_CONFIG" != none ; then
+
+@@ -2168,15 +2382,15 @@
+ fi
+
+ if test $cf_cv_lib_XCurses = yes ; then
+- AC_DEFINE(UNIX)
+- AC_DEFINE(XCURSES)
+- AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES))
++ AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
++ AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
++ AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
+ else
+ AC_MSG_ERROR(Cannot link with XCurses)
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PKG_CONFIG version: 4 updated: 2011/02/18 20:26:24
++dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
+ dnl -------------
+ dnl Check for the package-config program, unless disabled by command-line.
+ AC_DEFUN([CF_PKG_CONFIG],
+@@ -2193,7 +2407,9 @@
+ PKG_CONFIG=none
+ ;;
+ yes) #(vi
+- AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)
++ CF_ACVERSION_CHECK(2.52,
++ [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
++ [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
+ ;;
+ *)
+ PKG_CONFIG=$withval
+@@ -2305,29 +2521,17 @@
+
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
+-dnl --------------
+-dnl Check if C (preprocessor) -U and -D options are processed in the order
+-dnl given rather than by type of option. Some compilers insist on apply all
+-dnl of the -U options after all of the -D options. Others allow mixing them,
+-dnl and may predefine symbols that conflict with those we define.
+-AC_DEFUN([CF_PROG_CC_U_D],
+-[
+-AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
+- cf_save_CPPFLAGS="$CPPFLAGS"
+- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+- AC_TRY_COMPILE([],[
+-#ifndef U_D_OPTIONS
+-make an undefined-error
+-#endif
+-#ifdef D_U_OPTIONS
+-make a defined-error
+-#endif
+- ],[
+- cf_cv_cc_u_d_options=yes],[
+- cf_cv_cc_u_d_options=no])
+- CPPFLAGS="$cf_save_CPPFLAGS"
+-])
++dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
++dnl ----------
++dnl standard check for CC, plus followup sanity checks
++dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
++AC_DEFUN([CF_PROG_CC],[
++ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
++CF_GCC_VERSION
++CF_ACVERSION_CHECK(2.52,
++ [AC_PROG_CC_STDC],
++ [CF_ANSI_CC_REQD])
++CF_CC_ENV_FLAGS
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+ dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
+@@ -2373,7 +2577,124 @@
+ -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
++dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
++dnl -------------
++AC_DEFUN([CF_RPATH_HACK],
++[
++AC_REQUIRE([CF_LD_RPATH_OPT])
++AC_MSG_CHECKING(for updated LDFLAGS)
++if test -n "$LD_RPATH_OPT" ; then
++ AC_MSG_RESULT(maybe)
++
++ AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
++ cf_rpath_list="/usr/lib /lib"
++ if test "$cf_ldd_prog" != no
++ then
++ cf_rpath_oops=
++
++AC_TRY_LINK([#include <stdio.h>],
++ [printf("Hello");],
++ [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
++
++ # If we passed the link-test, but get a "not found" on a given library,
++ # this could be due to inept reconfiguration of gcc to make it only
++ # partly honor /usr/local/lib (or whatever). Sometimes this behavior
++ # is intentional, e.g., installing gcc in /usr/bin and suppressing the
++ # /usr/local libraries.
++ if test -n "$cf_rpath_oops"
++ then
++ for cf_rpath_src in $cf_rpath_oops
++ do
++ for cf_rpath_dir in \
++ /usr/local \
++ /usr/pkg \
++ /opt/sfw
++ do
++ if test -f $cf_rpath_dir/lib/$cf_rpath_src
++ then
++ CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
++ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
++ break
++ fi
++ done
++ done
++ fi
++ fi
++
++ CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
++
++ CF_RPATH_HACK_2(LDFLAGS)
++ CF_RPATH_HACK_2(LIBS)
++
++ CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
++else
++ AC_MSG_RESULT(no)
++fi
++AC_SUBST(EXTRA_LDFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
++dnl ---------------
++dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
++dnl EXTRA_LDFLAGS for each -L option found.
++dnl
++dnl $cf_rpath_list contains a list of directories to ignore.
++dnl
++dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
++dnl but LIBS often has misplaced -L options.
++AC_DEFUN([CF_RPATH_HACK_2],
++[
++CF_VERBOSE(...checking $1 [$]$1)
++
++cf_rpath_dst=
++for cf_rpath_src in [$]$1
++do
++ case $cf_rpath_src in #(vi
++ -L*) #(vi
++
++ # check if this refers to a directory which we will ignore
++ cf_rpath_skip=no
++ if test -n "$cf_rpath_list"
++ then
++ for cf_rpath_item in $cf_rpath_list
++ do
++ if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
++ then
++ cf_rpath_skip=yes
++ break
++ fi
++ done
++ fi
++
++ if test "$cf_rpath_skip" = no
++ then
++ # transform the option
++ if test "$LD_RPATH_OPT" = "-R " ; then
++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
++ else
++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
++ fi
++
++ # if we have not already added this, add it now
++ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
++ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
++ then
++ CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
++ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
++ fi
++ fi
++ ;;
++ esac
++ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
++done
++$1=$cf_rpath_dst
++
++CF_VERBOSE(...checked $1 [$]$1)
++AC_SUBST(EXTRA_LDFLAGS)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
+ dnl ---------------
+ dnl signal handler, but there are some gcc depedencies in that recommendation.
+ dnl Try anyway.
+@@ -2405,10 +2726,10 @@
+ done
+ ])
+ AC_MSG_RESULT($cf_cv_sig_atomic_t)
+-test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
++test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
++dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
+ dnl --------------
+ dnl Construct a search-list for a nonstandard header/lib-file
+ dnl $1 = the variable to return as result
+@@ -2418,14 +2739,21 @@
+ [
+ $1=
+
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
+ CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
+-CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
++
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ [$]HOME
++do
++ CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
++done
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
++dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07
+ dnl ------------------
+ dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
+ dnl older SCO configurations.
+@@ -2445,10 +2773,10 @@
+ [cf_cv_sys_time_select=no])
+ ])
+ AC_MSG_RESULT($cf_cv_sys_time_select)
+-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
++test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
++dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51
+ dnl --------------
+ dnl Look for term.h, which is part of X/Open curses. It defines the interface
+ dnl to terminfo database. Usually it is in the same include-path as curses.h,
+@@ -2481,21 +2809,90 @@
+
+ case $cf_cv_term_header in # (vi
+ *term.h)
+- AC_DEFINE(HAVE_TERM_H)
++ AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
+ ;;
+ esac
+
+ case $cf_cv_term_header in # (vi
+ ncurses/term.h) #(vi
+- AC_DEFINE(HAVE_NCURSES_TERM_H)
++ AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
+ ;;
+ ncursesw/term.h)
+- AC_DEFINE(HAVE_NCURSESW_TERM_H)
++ AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
+ ;;
+ esac
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30
++dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
++dnl ---------------
++dnl Define a top_builddir symbol, for applications that need an absolute path.
++AC_DEFUN([CF_TOP_BUILDDIR],
++[
++top_builddir=ifelse($1,,`pwd`,$1)
++AC_SUBST(top_builddir)
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_TPUTS_PROTO version: 2 updated: 2011/04/23 19:25:50
++dnl --------------
++dnl Check for type of function-pointer passed to tputs. Some old
++dnl implementations used functions that had different prototypes, making it
++dnl hard to compile portable programs using tputs.
++AC_DEFUN([CF_TPUTS_PROTO],[
++CF_CURSES_FUNCS(tputs)
++if test x$cf_cv_func_tputs = xyes
++then
++ cf_done=no
++ for cf_arg in int char
++ do
++ for cf_ret in int void
++ do
++ if test $cf_ret = void
++ then
++ cf_return="/* nothing */"
++ else
++ cf_return="return value"
++ fi
++ AC_TRY_COMPILE([
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_cv_term_header>
++
++static $cf_ret outc($cf_arg value) { $cf_return; }
++],[
++ tputs("hello", 0, outc);
++ ${cf_cv_main_return:-return}(0);
++],[
++ CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
++ cat >>confdefs.h <<EOF
++#define TPUTS_ARG $cf_arg
++#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
++#define TPUTS_RETURN(value) $cf_return
++EOF
++ cf_done=yes
++ break
++])
++ done
++ test $cf_done = yes && break
++ done
++fi
++])dnl
++dnl ---------------------------------------------------------------------------
++dnl CF_TRIM_X_LIBS version: 2 updated: 2013/07/09 21:27:22
++dnl --------------
++dnl Trim extra base X libraries added as a workaround for inconsistent library
++dnl dependencies returned by "new" pkg-config files.
++AC_DEFUN([CF_TRIM_X_LIBS],[
++ for cf_trim_lib in Xmu Xt X11
++ do
++ case "$LIBS" in
++ *-l$cf_trim_lib\ *-l$cf_trim_lib*)
++ LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
++ CF_VERBOSE(..trimmed $LIBS)
++ ;;
++ esac
++ done
++])
++dnl ---------------------------------------------------------------------------
++dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
+ dnl -----------------
+ dnl This is a simple wrapper to use for pkg-config, for libraries which may be
+ dnl available in that form.
+@@ -2516,10 +2913,51 @@
+ CF_ADD_LIBS($cf_pkgconfig_libs)
+ ifelse([$2],,:,[$2])
+ else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
+ ifelse([$3],,:,[$3])
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
++dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
++dnl -------------------
++dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
++dnl can define it successfully.
++AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
++AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++],[
++#ifndef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ AC_TRY_COMPILE([
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++],[
++#ifdef _XOPEN_SOURCE
++make an error
++#endif],
++ [cf_cv_xopen_source=no],
++ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
++ CPPFLAGS="$cf_save"
++ ])
++])
++
++if test "$cf_cv_xopen_source" != no ; then
++ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
++ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++ CF_ADD_CFLAGS($cf_temp_xopen_source)
++fi
++])
++dnl ---------------------------------------------------------------------------
+ dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
+ dnl --------
+ dnl Make an uppercase version of a variable
+@@ -2529,7 +2967,7 @@
+ $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
++dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
+ dnl -----------
+ dnl Check for multibyte support, and if not found, utf8 compatibility library
+ AC_DEFUN([CF_UTF8_LIB],
+@@ -2548,7 +2986,7 @@
+ # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
+ # ncurses/ncursesw:
+ if test "$cf_cv_utf8_lib" = "add-on" ; then
+- AC_DEFINE(HAVE_LIBUTF8_H)
++ AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
+ CF_ADD_INCDIR($cf_cv_header_path_utf8)
+ CF_ADD_LIBDIR($cf_cv_library_path_utf8)
+ CF_ADD_LIBS($cf_cv_library_file_utf8)
+@@ -2563,7 +3001,7 @@
+ CF_MSG_LOG([$1])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
++dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
+ dnl -------------
+ dnl Check if type wide-character type $1 is declared, and if so, which header
+ dnl file is needed. The second parameter is used to set a shell variable when
+@@ -2595,7 +3033,7 @@
+ [cf_cv_$1=unknown])])])
+
+ if test "$cf_cv_$1" = yes ; then
+- AC_DEFINE(NEED_WCHAR_H)
++ AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
+ NEED_WCHAR_H=1
+ fi
+
+@@ -2667,6 +3105,60 @@
+ fi
+ ])dnl
+ dnl ---------------------------------------------------------------------------
++dnl CF_WITH_NCURSES_ETC version: 2 updated: 2012/01/13 10:49:00
++dnl -------------------
++dnl Use this macro for programs which use any variant of "curses", e.g.,
++dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
++dnl library (such as slang) should use a "--with-screen=XXX" option.
++dnl
++dnl This does not use AC_DEFUN, because that would tell autoconf to run each
++dnl of the macros inside this one - before this macro.
++define([CF_WITH_NCURSES_ETC],[
++CF_WITH_CURSES_DIR
++
++cf_cv_screen=curses
++
++AC_MSG_CHECKING(for specified curses library type)
++AC_ARG_WITH(ncursesw,
++ [ --with-ncursesw use wide ncurses-libraries],
++ [cf_cv_screen=ncursesw],[
++
++AC_ARG_WITH(ncurses,
++ [ --with-ncurses use ncurses-libraries],
++ [cf_cv_screen=ncurses],[
++
++AC_ARG_WITH(pdcurses,
++ [ --with-pdcurses compile/link with pdcurses X11 library],
++ [cf_cv_screen=pdcurses],[
++
++AC_ARG_WITH(curses-colr,
++ [ --with-curses-colr compile/link with HPUX 10.x color-curses],
++ [cf_cv_screen=curses_colr],[
++
++AC_ARG_WITH(curses-5lib,
++ [ --with-curses-5lib compile/link with SunOS 5lib curses],
++ [cf_cv_screen=curses_5lib])])])])])
++
++AC_MSG_RESULT($cf_cv_screen)
++
++case $cf_cv_screen in #(vi
++curses|curses_*) #(vi
++ CF_CURSES_CONFIG
++ ;;
++ncurses) #(vi
++ CF_NCURSES_CONFIG
++ ;;
++ncursesw) #(vi
++ CF_UTF8_LIB
++ CF_NCURSES_CONFIG(ncursesw)
++ ;;
++pdcurses)
++ CF_PDCURSES_X11
++ ;;
++esac
++
++])dnl
++dnl ---------------------------------------------------------------------------
+ dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
+ dnl ----------------
+ AC_DEFUN([CF_WITH_VALGRIND],[
+@@ -2714,7 +3206,7 @@
+ test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_XOPEN_SOURCE version: 35 updated: 2011/02/20 20:37:37
++dnl CF_XOPEN_SOURCE version: 48 updated: 2014/09/01 12:29:14
+ dnl ---------------
+ dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
+ dnl or adapt to the vendor's definitions to get equivalent functionality,
+@@ -2724,16 +3216,17 @@
+ dnl $1 is the nominal value for _XOPEN_SOURCE
+ dnl $2 is the nominal value for _POSIX_C_SOURCE
+ AC_DEFUN([CF_XOPEN_SOURCE],[
++AC_REQUIRE([AC_CANONICAL_HOST])
+
+ cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
+ cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
+ cf_xopen_source=
+
+ case $host_os in #(vi
+-aix[[456]]*) #(vi
++aix[[4-7]]*) #(vi
+ cf_xopen_source="-D_ALL_SOURCE"
+ ;;
+-cygwin) #(vi
++cygwin|msys) #(vi
+ cf_XOPEN_SOURCE=600
+ ;;
+ darwin[[0-8]].*) #(vi
+@@ -2741,6 +3234,7 @@
+ ;;
+ darwin*) #(vi
+ cf_xopen_source="-D_DARWIN_C_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ freebsd*|dragonfly*) #(vi
+ # 5.x headers associate
+@@ -2758,15 +3252,26 @@
+ ;;
+ irix[[56]].*) #(vi
+ cf_xopen_source="-D_SGI_SOURCE"
++ cf_XOPEN_SOURCE=
+ ;;
+ linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+ CF_GNU_SOURCE
+ ;;
++minix*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
++ ;;
+ mirbsd*) #(vi
+- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
++ cf_XOPEN_SOURCE=
++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ ;;
+ netbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd[[4-9]]*) #(vi
++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
++ cf_xopen_source="-D_BSD_SOURCE"
++ cf_XOPEN_SOURCE=600
+ ;;
+ openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+@@ -2780,46 +3285,55 @@
+ sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+-solaris2.1[[0-9]]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-solaris2.[[1-9]]) #(vi
++solaris2.*) #(vi
+ cf_xopen_source="-D__EXTENSIONS__"
++ cf_cv_xopen_source=broken
++ ;;
++sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
++ cf_XOPEN_SOURCE=
++ cf_POSIX_C_SOURCE=
+ ;;
+ *)
+- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
+- AC_TRY_COMPILE([#include <sys/types.h>],[
++ CF_TRY_XOPEN_SOURCE
++ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
++ ;;
++esac
++
++if test -n "$cf_xopen_source" ; then
++ CF_ADD_CFLAGS($cf_xopen_source,true)
++fi
++
++dnl In anything but the default case, we may have system-specific setting
++dnl which is still not guaranteed to provide all of the entrypoints that
++dnl _XOPEN_SOURCE would yield.
++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
++ AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
++ AC_TRY_COMPILE([#include <stdlib.h>],[
+ #ifndef _XOPEN_SOURCE
+ make an error
+ #endif],
+- [cf_cv_xopen_source=no],
+- [cf_save="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- AC_TRY_COMPILE([#include <sys/types.h>],[
+-#ifdef _XOPEN_SOURCE
++ [cf_XOPEN_SOURCE_set=yes],
++ [cf_XOPEN_SOURCE_set=no])
++ AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
++ if test $cf_XOPEN_SOURCE_set = yes
++ then
++ AC_TRY_COMPILE([#include <stdlib.h>],[
++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
+ make an error
+ #endif],
+- [cf_cv_xopen_source=no],
+- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+- CPPFLAGS="$cf_save"
+- ])
+-])
+- if test "$cf_cv_xopen_source" != no ; then
+- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
+- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
+- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+- CF_ADD_CFLAGS($cf_temp_xopen_source)
++ [cf_XOPEN_SOURCE_set_ok=yes],
++ [cf_XOPEN_SOURCE_set_ok=no])
++ if test $cf_XOPEN_SOURCE_set_ok = no
++ then
++ AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
++ fi
++ else
++ CF_TRY_XOPEN_SOURCE
+ fi
+- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+- ;;
+-esac
+-
+-if test -n "$cf_xopen_source" ; then
+- CF_ADD_CFLAGS($cf_xopen_source)
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_X_ATHENA version: 20 updated: 2010/11/09 05:18:02
++dnl CF_X_ATHENA version: 22 updated: 2014/07/12 18:57:58
+ dnl -----------
+ dnl Check for Xaw (Athena) libraries
+ dnl
+@@ -2839,6 +3353,17 @@
+ AC_MSG_RESULT(no)
+ fi
+
++AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
++withval=
++AC_ARG_WITH(Xaw3dxft,
++ [ --with-Xaw3dxft link with Xaw 3d xft library])
++if test "$withval" = yes ; then
++ cf_x_athena=Xaw3dxft
++ AC_MSG_RESULT(yes)
++else
++ AC_MSG_RESULT(no)
++fi
++
+ AC_MSG_CHECKING(if you want to link with neXT Athena library)
+ withval=
+ AC_ARG_WITH(neXtaw,
+@@ -2878,6 +3403,8 @@
+ CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
+ AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
+
++ CF_TRIM_X_LIBS
++
+ AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
+ AC_TRY_LINK([
+ #include <X11/Xmu/CharSet.h>
+@@ -2893,7 +3420,15 @@
+ ;;
+ *)
+ CF_VERBOSE(work around broken package)
+- CF_TRY_PKG_CONFIG(xmu,,[CF_ADD_LIB_AFTER(-lXt,-lXmu)])
++ cf_save_xmu="$LIBS"
++ cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
++ CF_TRY_PKG_CONFIG(xmu,[
++ LIBS="$cf_save_xmu"
++ CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
++ ],[
++ CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
++ ])
++ CF_TRIM_X_LIBS
+ ;;
+ esac
+ fi
+@@ -2957,7 +3492,7 @@
+ fi
+ ])
+ dnl ---------------------------------------------------------------------------
+-dnl CF_X_ATHENA_LIBS version: 10 updated: 2011/02/13 13:31:33
++dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
+ dnl ----------------
+ dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
+ dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
+@@ -2973,19 +3508,24 @@
+ /usr/local
+ do
+ for cf_lib in \
+- "-l$cf_x_athena_root -lXmu" \
+- "-l$cf_x_athena_root -lXpm -lXmu" \
+- "-l${cf_x_athena_root}_s -lXmu_s"
++ ${cf_x_athena_root} \
++ ${cf_x_athena_root}7 \
++ ${cf_x_athena_root}6
++ do
++ for cf_libs in \
++ "-l$cf_lib -lXmu" \
++ "-l$cf_lib -lXpm -lXmu" \
++ "-l${cf_lib}_s -lXmu_s"
+ do
+ if test -z "$cf_x_athena_lib" ; then
+ cf_save="$LIBS"
+ cf_test=XawSimpleMenuAddGlobalActions
+ if test $cf_path != default ; then
+- CF_ADD_LIBS(-L$cf_path/lib $cf_lib)
+- AC_MSG_CHECKING(for $cf_lib in $cf_path)
++ CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
++ AC_MSG_CHECKING(for $cf_libs in $cf_path)
+ else
+- CF_ADD_LIBS($cf_lib)
+- AC_MSG_CHECKING(for $cf_test in $cf_lib)
++ CF_ADD_LIBS($cf_libs)
++ AC_MSG_CHECKING(for $cf_test in $cf_libs)
+ fi
+ AC_TRY_LINK([
+ #include <X11/Intrinsic.h>
+@@ -2996,12 +3536,14 @@
+ [cf_result=no])
+ AC_MSG_RESULT($cf_result)
+ if test "$cf_result" = yes ; then
+- cf_x_athena_lib="$cf_lib"
++ cf_x_athena_lib="$cf_libs"
+ break
+ fi
+ LIBS="$cf_save"
+ fi
+- done
++ done # cf_libs
++ test -n "$cf_x_athena_lib" && break
++ done # cf_lib
+ done
+
+ if test -z "$cf_x_athena_lib" ; then
+@@ -3021,15 +3563,28 @@
+ [CF_ADD_LIB(Xext)])])
+ ])dnl
+ dnl ---------------------------------------------------------------------------
+-dnl CF_X_TOOLKIT version: 20 updated: 2010/11/19 05:43:04
++dnl CF_X_TOOLKIT version: 22 updated: 2014/07/13 14:33:27
+ dnl ------------
+ dnl Check for X Toolkit libraries
+-dnl
+ AC_DEFUN([CF_X_TOOLKIT],
+ [
+ AC_REQUIRE([AC_PATH_XTRA])
+ AC_REQUIRE([CF_CHECK_CACHE])
+
++# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
++# in some cases has installed dummy files in the former, other cases replaced
++# it with a link to the new location). This complicates the configure script.
++# Check for that pitfall, and recover using pkg-config
++#
++# If none of these are set, the configuration is almost certainly broken.
++if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
++then
++ CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
++ CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
++ CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
++ CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
++fi
++
+ cf_have_X_LIBS=no
+
+ CF_TRY_PKG_CONFIG(xt,[
+@@ -3095,7 +3650,7 @@
+
+ AC_CHECK_FUNC(XtAppInitialize,,[
+ AC_CHECK_LIB(Xt, XtAppInitialize,
+- [AC_DEFINE(HAVE_LIBXT)
++ [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
+ cf_have_X_LIBS=Xt
+ LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
+ [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
+Index: test/background.c
+Prereq: 1.3
+--- ncurses-5.9/test/background.c 2006-06-03 16:43:08.000000000 +0000
++++ ncurses-5.9-20141206/test/background.c 2014-08-09 22:31:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003,2006 Free Software Foundation, Inc. *
++ * Copyright (c) 2003-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,15 +26,172 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: background.c,v 1.3 2006/06/03 16:43:08 tom Exp $
++ * $Id: background.c,v 1.15 2014/08/09 22:31:23 tom Exp $
+ */
+
+-#include <test.priv.h>
++#define NEED_COLOR_CODE 1
++#define NEED_COLOR_NAME 1
++#include <color_name.h>
++
++static int default_bg = COLOR_BLACK;
++static int default_fg = COLOR_WHITE;
++
++static void
++test_background(void)
++{
++ NCURSES_COLOR_T f, b;
++ int row;
++ int chr;
++
++ if (pair_content(0, &f, &b) == ERR) {
++ printw("pair 0 contains no data\n");
++ } else {
++ printw("pair 0 contains (%d,%d)\n", (int) f, (int) b);
++ }
++ getch();
++
++ printw("Initializing pair 1 to red/%s\n", color_name(default_bg));
++ init_pair(1, COLOR_RED, (NCURSES_COLOR_T) default_bg);
++ bkgdset((chtype) (' ' | COLOR_PAIR(1)));
++ printw("RED/BLACK\n");
++ getch();
++
++ printw("Initializing pair 2 to %s/blue\n", color_name(default_fg));
++ init_pair(2, (NCURSES_COLOR_T) default_fg, COLOR_BLUE);
++ bkgdset((chtype) (' ' | COLOR_PAIR(2)));
++ printw("This line should be %s/blue\n", color_name(default_fg));
++ getch();
++
++ printw("Initializing pair 3 to %s/cyan (ACS_HLINE)\n", color_name(default_fg));
++ init_pair(3, (NCURSES_COLOR_T) default_fg, COLOR_CYAN);
++ printw("...and drawing a box which should be followed by lines\n");
++ bkgdset(ACS_HLINE | (attr_t) COLOR_PAIR(3));
++ /*
++ * Characters from vt100 line-drawing should be mapped to line-drawing,
++ * since A_ALTCHARSET is set in the background, and the character part
++ * of the background is replaced by the nonblank characters written.
++ *
++ * Characters not in the line-drawing range are usually sent as-is.
++ *
++ * With SVr4 curses it is possible to rely on this to mix uppercase text
++ * with the (lowercase) line-drawing characters. ncurses uses some of
++ * the uppercase characters for encoding thick- and double-lines.
++ */
++ row = 7;
++ mvprintw(row++, 10, "l");
++ for (chr = 0; chr < 32; ++chr)
++ addch(' ');
++ printw("x\n");
++ chr = 32;
++ while (chr < 128) {
++ if ((chr % 32) == 0)
++ mvprintw(row++, 10, "x");
++ addch((chtype) ((chr == 127) ? ' ' : chr));
++ if ((++chr % 32) == 0)
++ printw("x\n");
++ }
++ mvprintw(row++, 10, "m");
++ for (chr = 0; chr < 32; ++chr)
++ addch(' ');
++ printw("j\n");
++ getch();
++
++ bkgdset((chtype) (' ' | COLOR_PAIR(0)));
++ printw("Default Colors\n");
++ getch();
++
++ printw("Resetting colors to pair 1\n");
++ bkgdset((chtype) (' ' | COLOR_PAIR(1)));
++ printw("This line should be red/%s\n", color_name(default_bg));
++ getch();
++
++ printw("Setting screen to pair 0\n");
++ bkgd((chtype) (' ' | COLOR_PAIR(0)));
++ getch();
++
++ printw("Setting screen to pair 1\n");
++ bkgd((chtype) (' ' | COLOR_PAIR(1)));
++ getch();
++
++ printw("Setting screen to pair 2\n");
++ bkgd((chtype) (' ' | COLOR_PAIR(2)));
++ getch();
++
++ printw("Setting screen to pair 3\n");
++ bkgd((chtype) (' ' | COLOR_PAIR(3)));
++ getch();
++
++ printw("Setting screen to pair 0\n");
++ bkgd((chtype) (' ' | COLOR_PAIR(0)));
++ getch();
++}
++
++static void
++usage(void)
++{
++ static const char *msg[] =
++ {
++ "Usage: background [options]"
++ ,""
++ ,"Options:"
++#if HAVE_ASSUME_DEFAULT_COLORS
++ ," -a invoke assume_default_colors, repeat to use in init_pair"
++#endif
++ ," -b XXX specify background color"
++#if HAVE_USE_DEFAULT_COLORS
++ ," -d invoke use_default_colors, repeat to use in init_pair"
++#endif
++ ," -f XXX specify foreground color"
++ };
++ size_t n;
++
++ for (n = 0; n < SIZEOF(msg); n++)
++ fprintf(stderr, "%s\n", msg[n]);
++
++ ExitProgram(EXIT_FAILURE);
++}
+
+ int
+ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+ {
+- short f, b;
++#if HAVE_ASSUME_DEFAULT_COLORS
++ int a_option = 0;
++#endif
++#if HAVE_USE_DEFAULT_COLORS
++ int d_option = 0;
++#endif
++ int n;
++
++ setlocale(LC_ALL, "");
++
++ while ((n = getopt(argc, argv, "ab:df:")) != -1) {
++ switch (n) {
++#if HAVE_ASSUME_DEFAULT_COLORS
++ case 'a':
++ ++a_option;
++ break;
++#endif
++ case 'b':
++ default_bg = color_code(optarg);
++ break;
++#if HAVE_USE_DEFAULT_COLORS
++ case 'd':
++ ++d_option;
++ break;
++#endif
++ case 'f':
++ default_fg = color_code(optarg);
++ break;
++ default:
++ usage();
++ }
++ }
++#if HAVE_USE_DEFAULT_COLORS && HAVE_ASSUME_DEFAULT_COLORS
++ if (a_option && d_option) {
++ fprintf(stderr, "Use either -a or -d option, but not both\n");
++ ExitProgram(EXIT_FAILURE);
++ }
++#endif
+
+ initscr();
+ cbreak();
+@@ -43,47 +200,30 @@
+ if (has_colors()) {
+ start_color();
+
+- pair_content(0, &f, &b);
+- printw("pair 0 contains (%d,%d)\n", f, b);
+- getch();
+-
+- printw("Initializing pair 1 to red/black\n");
+- init_pair(1, COLOR_RED, COLOR_BLACK);
+- bkgdset(' ' | COLOR_PAIR(1));
+- printw("RED/BLACK\n");
+- getch();
+-
+- printw("Initializing pair 2 to white/blue\n");
+- init_pair(2, COLOR_WHITE, COLOR_BLUE);
+- bkgdset(' ' | COLOR_PAIR(2));
+- printw("WHITE/BLUE\n");
+- getch();
+-
+- printw("Resetting colors to pair 0\n");
+- bkgdset(' ' | COLOR_PAIR(0));
+- printw("Default Colors\n");
+- getch();
+-
+- printw("Resetting colors to pair 1\n");
+- bkgdset(' ' | COLOR_PAIR(1));
+- printw("RED/BLACK\n");
+- getch();
+-
+- printw("Setting screen to pair 0\n");
+- bkgd(' ' | COLOR_PAIR(0));
+- getch();
+-
+- printw("Setting screen to pair 1\n");
+- bkgd(' ' | COLOR_PAIR(1));
+- getch();
+-
+- printw("Setting screen to pair 2\n");
+- bkgd(' ' | COLOR_PAIR(2));
+- getch();
+-
+- printw("Setting screen to pair 0\n");
+- bkgd(' ' | COLOR_PAIR(0));
+- getch();
++#if HAVE_USE_DEFAULT_COLORS
++ if (d_option) {
++ printw("Using default colors...\n");
++ use_default_colors();
++ if (d_option > 1) {
++ default_fg = -1;
++ default_bg = -1;
++ }
++ }
++#endif
++#if HAVE_ASSUME_DEFAULT_COLORS
++ if (a_option) {
++ printw("Using assumed colors %s/%s...\n",
++ color_name(default_fg),
++ color_name(default_bg));
++ assume_default_colors(default_fg, default_bg);
++ if (a_option > 1) {
++ default_fg = -1;
++ default_bg = -1;
++ }
++ }
++#endif
++
++ test_background();
+
+ } else {
+ printw("This demo requires a color terminal");
+Index: test/blue.c
+Prereq: 1.33
+--- ncurses-5.9/test/blue.c 2009-10-24 21:03:35.000000000 +0000
++++ ncurses-5.9-20141206/test/blue.c 2013-04-27 19:46:53.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2009,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,7 +40,7 @@
+ * results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
+ * just as good.
+ *
+- * $Id: blue.c,v 1.33 2009/10/24 21:03:35 tom Exp $
++ * $Id: blue.c,v 1.35 2013/04/27 19:46:53 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -70,7 +70,7 @@
+ #define BLACK_ON_WHITE 2
+ #define BLUE_ON_WHITE 3
+
+-static RETSIGTYPE die(int onsig) GCC_NORETURN;
++static void die(int onsig) GCC_NORETURN;
+
+ static int deck_size = PACK_SIZE; /* initial deck */
+ static int deck[PACK_SIZE];
+@@ -132,7 +132,7 @@
+
+ static chtype *suits = letters; /* this may change to glyphs below */
+
+-static RETSIGTYPE
++static void
+ die(int onsig)
+ {
+ (void) signal(onsig, SIG_IGN);
+@@ -202,8 +202,8 @@
+ if (value == NOCARD)
+ (void) addstr(" ");
+ else {
+- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
+- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
++ addch(ranks[value % SUIT_LENGTH][0] | (chtype) COLOR_PAIR(BLUE_ON_WHITE));
++ addch(ranks[value % SUIT_LENGTH][1] | (chtype) COLOR_PAIR(BLUE_ON_WHITE));
+ addch(suits[value / SUIT_LENGTH]);
+ }
+ (void) addch(' ');
+Index: test/bs.c
+Prereq: 1.52
+--- ncurses-5.9/test/bs.c 2010-11-13 20:07:52.000000000 +0000
++++ ncurses-5.9-20141206/test/bs.c 2014-08-09 22:27:12.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -34,7 +34,7 @@
+ * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
+ * v2.1 with ncurses mouse support, September 1995
+ *
+- * $Id: bs.c,v 1.52 2010/11/13 20:07:52 tom Exp $
++ * $Id: bs.c,v 1.63 2014/08/09 22:27:12 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -110,7 +110,7 @@
+ static char destroy[] = "Destroyer";
+ static char ptboat[] = "PT Boat";
+
+-static char name[40];
++static char *your_name;
+ static char dftname[] = "stranger";
+
+ /* direction constants */
+@@ -174,9 +174,9 @@
+
+ #define PR (void)addstr
+
+-static RETSIGTYPE uninitgame(int sig) GCC_NORETURN;
++static void uninitgame(int sig) GCC_NORETURN;
+
+-static RETSIGTYPE
++static void
+ uninitgame(int sig GCC_UNUSED)
+ /* end the game, either normally or due to signal */
+ {
+@@ -220,11 +220,12 @@
+
+ CATCHALL(uninitgame);
+
+- if ((tmpname = getlogin()) != 0) {
+- (void) strcpy(name, tmpname);
+- name[0] = (char) toupper(UChar(name[0]));
+- } else
+- (void) strcpy(name, dftname);
++ if ((tmpname = getlogin()) != 0 &&
++ (your_name = strdup(tmpname)) != 0) {
++ your_name[0] = (char) toupper(UChar(your_name[0]));
++ } else {
++ your_name = dftname;
++ }
+
+ (void) initscr();
+ keypad(stdscr, TRUE);
+@@ -426,10 +427,11 @@
+ placeship(COMPUTER, ss, FALSE);
+ }
+
+- ss = (ship_t *) NULL;
+ do {
+ char c, docked[SHIPTYPES + 2], *cp = docked;
+
++ ss = (ship_t *) NULL;
++
+ /* figure which ships still wait to be placed */
+ *cp++ = 'R';
+ for (i = 0; i < SHIPTYPES; i++)
+@@ -442,7 +444,7 @@
+ do {
+ c = (char) getcoord(PLAYER);
+ } while
+- (!strchr(docked, c));
++ (!(strchr) (docked, c));
+
+ if (c == 'R')
+ (void) ungetch('R');
+@@ -459,13 +461,14 @@
+ do {
+ c = (char) getch();
+ } while
+- (!(strchr("hjklrR", c) || c == FF));
++ (!(strchr("hjkl8462rR", c) || c == FF));
+
+ if (c == FF) {
+ (void) clearok(stdscr, TRUE);
+ (void) refresh();
++ } else if (ss == 0) {
++ beep(); /* simple to verify, unlikely to happen */
+ } else if (c == 'r') {
+- assert(ss != 0);
+ prompt(1, "Random-placing your %s", ss->name);
+ randomplace(PLAYER, ss);
+ placeship(PLAYER, ss, TRUE);
+@@ -481,7 +484,6 @@
+ }
+ error((char *) NULL);
+ } else if (strchr("hjkl8462", c)) {
+- assert(ss != 0);
+ ss->x = curx;
+ ss->y = cury;
+
+@@ -863,7 +865,9 @@
+ m = " You'll pick up survivors from my %s, I hope...!";
+ break;
+ }
+- (void) printw(m, ss->name);
++ if (m != 0) {
++ (void) printw(m, ss->name);
++ }
+ (void) beep();
+ }
+ return (hit);
+@@ -952,8 +956,8 @@
+ bool hit, sunk;
+ ship_t *ss = NULL;
+
+- hit = board[PLAYER][x][y] ? MARK_HIT : MARK_MISS;
+- hits[COMPUTER][x][y] = (char) hit;
++ hit = (bool) board[PLAYER][x][y];
++ hits[COMPUTER][x][y] = (hit ? MARK_HIT : MARK_MISS);
+ MvPrintw(PROMPTLINE, 0,
+ "I shoot at %c%d. I %s!", y + 'A', x, hit ? "hit" :
+ "miss");
+@@ -1130,16 +1134,16 @@
+ ++cpuwon;
+ else
+ ++plywon;
+- j = 18 + (int) strlen(name);
++ j = 18 + (int) strlen(your_name);
+ if (plywon >= 10)
+ ++j;
+ if (cpuwon >= 10)
+ ++j;
+ MvPrintw(1, (COLWIDTH - j) / 2,
+- "%s: %d Computer: %d", name, plywon, cpuwon);
++ "%s: %d Computer: %d", your_name, plywon, cpuwon);
+
+ prompt(2, (awinna())? "Want to be humiliated again, %s [yn]? "
+- : "Going to give me a chance for revenge, %s [yn]? ", name);
++ : "Going to give me a chance for revenge, %s [yn]? ", your_name);
+ return (sgetc("YN") == 'Y');
+ }
+
+Index: test/cardfile.c
+Prereq: 1.38
+--- ncurses-5.9/test/cardfile.c 2010-11-14 00:58:45.000000000 +0000
++++ ncurses-5.9-20141206/test/cardfile.c 2013-09-28 22:02:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /*
+ * Author: Thomas E. Dickey
+ *
+- * $Id: cardfile.c,v 1.38 2010/11/14 00:58:45 tom Exp $
++ * $Id: cardfile.c,v 1.42 2013/09/28 22:02:17 tom Exp $
+ *
+ * File format: text beginning in column 1 is a title; other text is content.
+ */
+@@ -68,17 +68,13 @@
+ static bool try_color = FALSE;
+ static char default_name[] = "cardfile.dat";
+
+-#if !HAVE_STRDUP
+-#define strdup my_strdup
+-static char *
+-strdup(const char *s)
+-{
+- char *p = typeMalloc(char, strlen(s) + 1);
+- if (p)
+- strcpy(p, s);
+- return (p);
++static void
++failed(const char *s)
++{
++ perror(s);
++ endwin();
++ ExitProgram(EXIT_FAILURE);
+ }
+-#endif /* not HAVE_STRDUP */
+
+ static const char *
+ skip(const char *buffer)
+@@ -111,7 +107,7 @@
+ break;
+ }
+
+- card = typeCalloc(CARD, 1);
++ card = typeCalloc(CARD, (size_t) 1);
+ card->title = strdup(title);
+ card->content = strdup("");
+
+@@ -146,6 +142,8 @@
+ }
+ if (card->content)
+ strcpy(card->content + offset, content);
++ else
++ failed("add_content");
+ }
+ }
+
+@@ -337,7 +335,7 @@
+ static FIELD **
+ make_fields(CARD * p, int form_high, int form_wide)
+ {
+- FIELD **f = typeCalloc(FIELD *, 3);
++ FIELD **f = typeCalloc(FIELD *, (size_t) 3);
+
+ f[0] = new_field(1, form_wide, 0, 0, 0, 0);
+ set_field_back(f[0], A_REVERSE);
+@@ -414,7 +412,7 @@
+ if ((win = newwin(panel_high, panel_wide, y, x)) == 0)
+ break;
+
+- wbkgd(win, COLOR_PAIR(pair_2));
++ wbkgd(win, (chtype) COLOR_PAIR(pair_2));
+ keypad(win, TRUE);
+ p->panel = new_panel(win);
+ box(win, 0, 0);
+@@ -588,7 +586,7 @@
+ start_color();
+ init_pair(pair_1, COLOR_WHITE, COLOR_BLUE);
+ init_pair(pair_2, COLOR_WHITE, COLOR_CYAN);
+- bkgd(COLOR_PAIR(pair_1));
++ bkgd((chtype) COLOR_PAIR(pair_1));
+ } else {
+ try_color = FALSE;
+ }
+Index: test/chgat.c
+Prereq: 1.11
+--- ncurses-5.9/test/chgat.c 2010-05-01 19:12:26.000000000 +0000
++++ ncurses-5.9-20141206/test/chgat.c 2012-11-18 01:55:35.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: chgat.c,v 1.11 2010/05/01 19:12:26 tom Exp $
++ * $Id: chgat.c,v 1.12 2012/11/18 01:55:35 tom Exp $
+ *
+ * test-driver for chgat/wchgat/mvchgat/mvwchgat
+ */
+@@ -176,6 +176,8 @@
+ delwin(win1);
+ touchwin(win);
+ } else {
++ if (win1 != 0)
++ delwin(win1);
+ beep();
+ }
+ }
+Index: test/clip_printw.c
+Prereq: 1.7
+--- ncurses-5.9/test/clip_printw.c 2010-11-13 20:48:48.000000000 +0000
++++ ncurses-5.9-20141206/test/clip_printw.c 2014-08-02 23:13:29.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: clip_printw.c,v 1.7 2010/11/13 20:48:48 tom Exp $
++ * $Id: clip_printw.c,v 1.10 2014/08/02 23:13:29 tom Exp $
+ *
+ * demonstrate how to use printw without wrapping.
+ */
+@@ -207,6 +207,8 @@
+ delwin(win1);
+ touchwin(win);
+ } else {
++ if (win1)
++ delwin(win1);
+ beep();
+ }
+ }
+@@ -329,7 +331,7 @@
+ do {
+ switch (st.ch) {
+ case '.': /* change from current position */
+- (void) wattrset(win, st.attr | (chtype) COLOR_PAIR(st.pair));
++ (void) wattrset(win, AttrArg(COLOR_PAIR(st.pair), st.attr));
+ if (st.count > 0) {
+ need = (unsigned) st.count + 1;
+ sprintf(fmt, "%%c%%%ds%%c", st.count);
+@@ -337,12 +339,13 @@
+ need = (unsigned) getmaxx(win) - 1;
+ strcpy(fmt, "%c%s%c");
+ }
+- if ((buffer = typeMalloc(char, need)) != 0) {
++ if ((buffer = typeMalloc(char, need + 1)) != 0) {
+ for (j = 0; j < need; ++j) {
+ buffer[j] = (char) ('A' + (j % 26));
+ }
+ buffer[need - 1] = '\0';
+ st.status = clip_wprintw(win, fmt, '[', buffer, ']');
++ free(buffer);
+ }
+ break;
+ case 'w':
+Index: test/color_name.h
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/color_name.h 2012-11-18 01:59:32.000000000 +0000
+@@ -0,0 +1,103 @@
++/****************************************************************************
++ * Copyright (c) 2011,2012 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++/*
++ * $Id: color_name.h,v 1.4 2012/11/18 01:59:32 tom Exp $
++ */
++
++#ifndef __COLORNAME_H
++#define __COLORNAME_H 1
++
++#ifndef __TEST_PRIV_H
++#include <test.priv.h>
++#endif
++
++static NCURSES_CONST char *the_color_names[] =
++{
++ "black",
++ "red",
++ "green",
++ "yellow",
++ "blue",
++ "magenta",
++ "cyan",
++ "white",
++ "BLACK",
++ "RED",
++ "GREEN",
++ "YELLOW",
++ "BLUE",
++ "MAGENTA",
++ "CYAN",
++ "WHITE"
++};
++
++#ifdef NEED_COLOR_CODE
++static int
++color_code(const char *color)
++{
++ int result = 0;
++ char *endp = 0;
++ size_t n;
++
++ if ((result = (int) strtol(color, &endp, 0)) >= 0
++ && (endp == 0 || *endp == 0)) {
++ ;
++ } else if (!strcmp(color, "default")) {
++ result = -1;
++ } else {
++ for (n = 0; n < SIZEOF(the_color_names); ++n) {
++ if (!strcmp(the_color_names[n], color)) {
++ result = (int) n;
++ break;
++ }
++ }
++ }
++ return result;
++}
++#endif /* NEED_COLOR_NAME */
++
++#ifdef NEED_COLOR_NAME
++static const char *
++color_name(int color)
++{
++ static char temp[20];
++ const char *result = 0;
++
++ if (color >= (int) SIZEOF(the_color_names)) {
++ sprintf(temp, "%d", color);
++ result = temp;
++ } else if (color < 0) {
++ result = "default";
++ } else {
++ result = the_color_names[color];
++ }
++ return result;
++}
++#endif /* NEED_COLOR_NAME */
++
++#endif /* __COLORNAME_H */
+Index: test/color_set.c
+Prereq: 1.6
+--- ncurses-5.9/test/color_set.c 2008-02-10 00:18:01.000000000 +0000
++++ ncurses-5.9-20141206/test/color_set.c 2014-02-01 22:10:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2003-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: color_set.c,v 1.6 2008/02/10 00:18:01 tom Exp $
++ * $Id: color_set.c,v 1.8 2014/02/01 22:10:42 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -38,7 +38,7 @@
+ int
+ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+ {
+- short f, b;
++ NCURSES_COLOR_T f, b;
+ int i;
+
+ initscr();
+@@ -48,8 +48,8 @@
+ if (has_colors()) {
+ start_color();
+
+- pair_content(0, &f, &b);
+- printw("pair 0 contains (%d,%d)\n", f, b);
++ (void) pair_content(0, &f, &b);
++ printw("pair 0 contains (%d,%d)\n", (int) f, (int) b);
+ getch();
+
+ printw("Initializing pair 1 to red/black\n");
+Index: test/configure
+--- ncurses-5.9/test/configure 2011-03-24 08:29:40.000000000 +0000
++++ ncurses-5.9-20141206/test/configure 2014-12-06 13:40:09.000000000 +0000
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated by Autoconf 2.52.20101002.
++# Generated by Autoconf 2.52.20141204.
+ #
+ # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+ # Free Software Foundation, Inc.
+@@ -105,42 +105,6 @@
+ : ${ac_max_here_lines=38}
+
+ ac_unique_file="ncurses.c"
+-# Factoring default headers for most tests.
+-ac_includes_default="\
+-#include <stdio.h>
+-#if HAVE_SYS_TYPES_H
+-# include <sys/types.h>
+-#endif
+-#if HAVE_SYS_STAT_H
+-# include <sys/stat.h>
+-#endif
+-#if STDC_HEADERS
+-# include <stdlib.h>
+-# include <stddef.h>
+-#else
+-# if HAVE_STDLIB_H
+-# include <stdlib.h>
+-# endif
+-#endif
+-#if HAVE_STRING_H
+-# if !STDC_HEADERS && HAVE_MEMORY_H
+-# include <memory.h>
+-# endif
+-# include <string.h>
+-#endif
+-#if HAVE_STRINGS_H
+-# include <strings.h>
+-#endif
+-#if HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#else
+-# if HAVE_STDINT_H
+-# include <stdint.h>
+-# endif
+-#endif
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif"
+
+ # Initialize some variables set by options.
+ ac_init_help=
+@@ -170,15 +134,16 @@
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+-datadir='${prefix}/share'
++datarootdir='${prefix}/share'
++datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
++infodir='${datarootdir}/info'
++mandir='${datarootdir}/man'
+
+ # Identity of this package.
+ PACKAGE_NAME=
+@@ -229,6 +194,13 @@
+ | --da=*)
+ datadir=$ac_optarg ;;
+
++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
++ | --dataroo | --dataro | --datar)
++ ac_prev=datarootdir ;;
++ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
++ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
++ datarootdir=$ac_optarg ;;
++
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+@@ -504,7 +476,7 @@
+ done
+
+ # Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
++for ac_var in bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+ do
+ eval ac_val=$`echo $ac_var`
+@@ -641,15 +613,16 @@
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+- --datadir=DIR read-only architecture-independent data [PREFIX/share]
++ --datarootdir=DIR read-only architecture-independent data [PREFIX/share]
++ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+- --infodir=DIR info documentation [PREFIX/info]
+- --mandir=DIR man documentation [PREFIX/man]
++ --infodir=DIR info documentation [DATAROOTDIR/info]
++ --mandir=DIR man documentation [DATAROOTDIR/man]
+ EOF
+
+ cat <<\EOF
+@@ -673,31 +646,38 @@
+
+ cat <<\EOF
+
+-Optional Features:
+- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+-
+ Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+
+- --disable-echo display "compiling" commands
+- --enable-warnings test: turn on gcc compiler warnings
+- --with-dmalloc test: use Gray Watson's dmalloc library
+- --with-dbmalloc test: use Conor Cahill's dbmalloc library
+- --with-valgrind test: use valgrind
+- --disable-leaks test: free permanent memory, analyze leaks
++Optional Features:
++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++
++General Options:
++ --with-pkg-config{=path} enable/disable use of pkg-config
++ --disable-echo do not display "compiling" commands
++Curses Version-dependent Options:
++ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables
++ --disable-widec disable checks for wide-character functions
+ --with-curses-dir=DIR directory in which (n)curses is installed
+- --with-5lib use SunOS sysv-libraries
+- --with-ncursesw use wide ncurses-libraries (installed)
+- --with-ncurses use ncurses-libraries (installed)
++ --with-ncursesw use wide ncurses-libraries
++ --with-ncurses use ncurses-libraries
+ --with-pdcurses compile/link with pdcurses X11 library
++ --with-curses-colr compile/link with HPUX 10.x color-curses
++ --with-curses-5lib compile/link with SunOS 5lib curses
+ --with-Xaw3d link with Xaw 3d library
++ --with-Xaw3dxft link with Xaw 3d xft library
+ --with-neXtaw link with neXT Athena library
+ --with-XawPlus link with Athena-Plus library
+- --with-pkg-config{=path} enable/disable use of pkg-config
+ --with-x use the X Window System
+- --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables
++Testing/development Options:
++ --enable-warnings test: turn on gcc compiler warnings
++ --with-dmalloc test: use Gray Watson's dmalloc library
++ --with-dbmalloc test: use Conor Cahill's dbmalloc library
++ --with-valgrind test: use valgrind
++ --disable-leaks test: free permanent memory, analyze leaks
++ --disable-rpath-hack don't add rpath options for additional libraries
+
+ Some influential environment variables:
+ CC C compiler command
+@@ -767,7 +747,7 @@
+ running configure, to aid debugging if configure makes a mistake.
+
+ It was created by $as_me, which was
+-generated by GNU Autoconf 2.52.20101002. Invocation command line was
++generated by GNU Autoconf 2.52.20141204. Invocation command line was
+
+ $ $0 $@
+
+@@ -891,7 +871,7 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+- { echo "$as_me:894: loading site script $ac_site_file" >&5
++ { echo "$as_me:874: loading site script $ac_site_file" >&5
+ echo "$as_me: loading site script $ac_site_file" >&6;}
+ cat "$ac_site_file" >&5
+ . "$ac_site_file"
+@@ -902,7 +882,7 @@
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+- { echo "$as_me:905: loading cache $cache_file" >&5
++ { echo "$as_me:885: loading cache $cache_file" >&5
+ echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+@@ -910,7 +890,7 @@
+ esac
+ fi
+ else
+- { echo "$as_me:913: creating cache $cache_file" >&5
++ { echo "$as_me:893: creating cache $cache_file" >&5
+ echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+ fi
+@@ -926,21 +906,21 @@
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+- { echo "$as_me:929: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++ { echo "$as_me:909: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+- { echo "$as_me:933: error: \`$ac_var' was not set in the previous run" >&5
++ { echo "$as_me:913: error: \`$ac_var' was not set in the previous run" >&5
+ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+- { echo "$as_me:939: error: \`$ac_var' has changed since the previous run:" >&5
++ { echo "$as_me:919: error: \`$ac_var' has changed since the previous run:" >&5
+ echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+- { echo "$as_me:941: former value: $ac_old_val" >&5
++ { echo "$as_me:921: former value: $ac_old_val" >&5
+ echo "$as_me: former value: $ac_old_val" >&2;}
+- { echo "$as_me:943: current value: $ac_new_val" >&5
++ { echo "$as_me:923: current value: $ac_new_val" >&5
+ echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+@@ -959,9 +939,9 @@
+ fi
+ done
+ if $ac_cache_corrupted; then
+- { echo "$as_me:962: error: changes in the environment can compromise the build" >&5
++ { echo "$as_me:942: error: changes in the environment can compromise the build" >&5
+ echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+- { { echo "$as_me:964: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++ { { echo "$as_me:944: 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
+@@ -973,19 +953,19 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+- *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T=' ' ;;
++case `echo "testing\c" 2>/dev/null; echo 1,2,3`,`echo -n testing 2>/dev/null; echo 1,2,3` in
++ *c*,-n*) ECHO_N= ECHO_C= # newlines do not sed ;-) only broken shells would use this case anyway
++ ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+ esac
+ echo "#! $SHELL" >conftest.sh
+ echo "exit 0" >>conftest.sh
+ chmod +x conftest.sh
+-if { (echo "$as_me:985: PATH=\".;.\"; conftest.sh") >&5
++if { (echo "$as_me:965: PATH=\".;.\"; conftest.sh") >&5
+ (PATH=".;."; conftest.sh) 2>&5
+ ac_status=$?
+- echo "$as_me:988: \$? = $ac_status" >&5
++ echo "$as_me:968: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_path_separator=';'
+ else
+@@ -1017,7 +997,7 @@
+ fi
+ done
+ if test -z "$ac_aux_dir"; then
+- { { echo "$as_me:1020: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++ { { echo "$as_me:1000: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1027,11 +1007,11 @@
+
+ # Make sure we can run config.sub.
+ $ac_config_sub sun4 >/dev/null 2>&1 ||
+- { { echo "$as_me:1030: error: cannot run $ac_config_sub" >&5
++ { { echo "$as_me:1010: error: cannot run $ac_config_sub" >&5
+ echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+-echo "$as_me:1034: checking build system type" >&5
++echo "$as_me:1014: checking build system type" >&5
+ echo $ECHO_N "checking build system type... $ECHO_C" >&6
+ if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1040,16 +1020,16 @@
+ test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+ test -z "$ac_cv_build_alias" &&
+- { { echo "$as_me:1043: error: cannot guess build type; you must specify one" >&5
++ { { echo "$as_me:1023: error: cannot guess build type; you must specify one" >&5
+ echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+- { { echo "$as_me:1047: error: $ac_config_sub $ac_cv_build_alias failed." >&5
++ { { echo "$as_me:1027: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1052: result: $ac_cv_build" >&5
++echo "$as_me:1032: result: $ac_cv_build" >&5
+ echo "${ECHO_T}$ac_cv_build" >&6
+ build=$ac_cv_build
+ build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1057,7 +1037,7 @@
+ build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+ if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+- echo "$as_me:1060: checking host system type" >&5
++ echo "$as_me:1040: checking host system type" >&5
+ echo $ECHO_N "checking host system type... $ECHO_C" >&6
+ if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1066,12 +1046,12 @@
+ test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+- { { echo "$as_me:1069: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++ { { echo "$as_me:1049: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+-echo "$as_me:1074: result: $ac_cv_host" >&5
++echo "$as_me:1054: result: $ac_cv_host" >&5
+ echo "${ECHO_T}$ac_cv_host" >&6
+ host=$ac_cv_host
+ host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+@@ -1085,7 +1065,8 @@
+ system_name="`(hostname) 2>/dev/null`"
+ fi
+ fi
+-test -n "$system_name" && cat >>confdefs.h <<EOF
++test -n "$system_name" &&
++cat >>confdefs.h <<EOF
+ #define SYSTEM_NAME "$system_name"
+ EOF
+
+@@ -1096,13 +1077,13 @@
+ fi
+
+ test -z "$system_name" && system_name="$cf_cv_system_name"
+-test -n "$cf_cv_system_name" && echo "$as_me:1099: result: Configuring for $cf_cv_system_name" >&5
++test -n "$cf_cv_system_name" && echo "$as_me:1080: result: Configuring for $cf_cv_system_name" >&5
+ echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
+
+ if test ".$system_name" != ".$cf_cv_system_name" ; then
+- echo "$as_me:1103: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
++ echo "$as_me:1084: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
+- { { echo "$as_me:1105: error: \"Please remove config.cache and try again.\"" >&5
++ { { echo "$as_me:1086: error: \"Please remove config.cache and try again.\"" >&5
+ echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -1120,7 +1101,7 @@
+ program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+ rm conftest.sed
+
+-echo "$as_me:1123: checking whether ${MAKE-make} sets \${MAKE}" >&5
++echo "$as_me:1104: checking whether ${MAKE-make} sets \${MAKE}" >&5
+ echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+ set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+ if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+@@ -1140,11 +1121,11 @@
+ rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+- echo "$as_me:1143: result: yes" >&5
++ echo "$as_me:1124: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+ else
+- echo "$as_me:1147: result: no" >&5
++ echo "$as_me:1128: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -1158,7 +1139,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:1161: checking for $ac_word" >&5
++echo "$as_me:1142: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1173,7 +1154,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-echo "$as_me:1176: found $ac_dir/$ac_word" >&5
++echo "$as_me:1157: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1181,10 +1162,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1184: result: $CC" >&5
++ echo "$as_me:1165: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1187: result: no" >&5
++ echo "$as_me:1168: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1193,7 +1174,7 @@
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-echo "$as_me:1196: checking for $ac_word" >&5
++echo "$as_me:1177: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1208,7 +1189,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="gcc"
+-echo "$as_me:1211: found $ac_dir/$ac_word" >&5
++echo "$as_me:1192: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1216,10 +1197,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1219: result: $ac_ct_CC" >&5
++ echo "$as_me:1200: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1222: result: no" >&5
++ echo "$as_me:1203: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1232,7 +1213,7 @@
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:1235: checking for $ac_word" >&5
++echo "$as_me:1216: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1247,7 +1228,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+-echo "$as_me:1250: found $ac_dir/$ac_word" >&5
++echo "$as_me:1231: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1255,10 +1236,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1258: result: $CC" >&5
++ echo "$as_me:1239: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1261: result: no" >&5
++ echo "$as_me:1242: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1267,7 +1248,7 @@
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1270: checking for $ac_word" >&5
++echo "$as_me:1251: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1282,7 +1263,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="cc"
+-echo "$as_me:1285: found $ac_dir/$ac_word" >&5
++echo "$as_me:1266: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1290,10 +1271,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1293: result: $ac_ct_CC" >&5
++ echo "$as_me:1274: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1296: result: no" >&5
++ echo "$as_me:1277: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1306,7 +1287,7 @@
+ if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo "$as_me:1309: checking for $ac_word" >&5
++echo "$as_me:1290: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1326,7 +1307,7 @@
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+-echo "$as_me:1329: found $ac_dir/$ac_word" >&5
++echo "$as_me:1310: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1348,10 +1329,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1351: result: $CC" >&5
++ echo "$as_me:1332: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1354: result: no" >&5
++ echo "$as_me:1335: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1362,7 +1343,7 @@
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:1365: checking for $ac_word" >&5
++echo "$as_me:1346: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1377,7 +1358,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-echo "$as_me:1380: found $ac_dir/$ac_word" >&5
++echo "$as_me:1361: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1385,10 +1366,10 @@
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+- echo "$as_me:1388: result: $CC" >&5
++ echo "$as_me:1369: result: $CC" >&5
+ echo "${ECHO_T}$CC" >&6
+ else
+- echo "$as_me:1391: result: no" >&5
++ echo "$as_me:1372: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1401,7 +1382,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:1404: checking for $ac_word" >&5
++echo "$as_me:1385: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -1416,7 +1397,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+-echo "$as_me:1419: found $ac_dir/$ac_word" >&5
++echo "$as_me:1400: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -1424,10 +1405,10 @@
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+- echo "$as_me:1427: result: $ac_ct_CC" >&5
++ echo "$as_me:1408: result: $ac_ct_CC" >&5
+ echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+- echo "$as_me:1430: result: no" >&5
++ echo "$as_me:1411: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -1439,32 +1420,32 @@
+
+ fi
+
+-test -z "$CC" && { { echo "$as_me:1442: error: no acceptable cc found in \$PATH" >&5
++test -z "$CC" && { { echo "$as_me:1423: error: no acceptable cc found in \$PATH" >&5
+ echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Provide some information about the compiler.
+-echo "$as_me:1447:" \
++echo "$as_me:1428:" \
+ "checking for C compiler version" >&5
+ ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:1450: \"$ac_compiler --version </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1431: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1453: \$? = $ac_status" >&5
++ echo "$as_me:1434: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1455: \"$ac_compiler -v </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1436: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1458: \$? = $ac_status" >&5
++ echo "$as_me:1439: \$? = $ac_status" >&5
+ (exit $ac_status); }
+-{ (eval echo "$as_me:1460: \"$ac_compiler -V </dev/null >&5\"") >&5
++{ (eval echo "$as_me:1441: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+- echo "$as_me:1463: \$? = $ac_status" >&5
++ echo "$as_me:1444: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1467 "configure"
++#line 1448 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1480,13 +1461,13 @@
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+-echo "$as_me:1483: checking for C compiler default output" >&5
++echo "$as_me:1464: checking for C compiler default output" >&5
+ echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:1486: \"$ac_link_default\"") >&5
++if { (eval echo "$as_me:1467: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+- echo "$as_me:1489: \$? = $ac_status" >&5
++ echo "$as_me:1470: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+ # not robust to junk in `.', hence go to wildcards (a.*) only as a last
+@@ -1509,34 +1490,34 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1512: error: C compiler cannot create executables" >&5
++{ { echo "$as_me:1493: error: C compiler cannot create executables" >&5
+ echo "$as_me: error: C compiler cannot create executables" >&2;}
+ { (exit 77); exit 77; }; }
+ fi
+
+ ac_exeext=$ac_cv_exeext
+-echo "$as_me:1518: result: $ac_file" >&5
++echo "$as_me:1499: result: $ac_file" >&5
+ echo "${ECHO_T}$ac_file" >&6
+
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1523: checking whether the C compiler works" >&5
++echo "$as_me:1504: checking whether the C compiler works" >&5
+ echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+- { (eval echo "$as_me:1529: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1510: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1532: \$? = $ac_status" >&5
++ echo "$as_me:1513: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+- { { echo "$as_me:1539: error: cannot run C compiled programs.
++ { { echo "$as_me:1520: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&5
+ echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'." >&2;}
+@@ -1544,24 +1525,24 @@
+ fi
+ fi
+ fi
+-echo "$as_me:1547: result: yes" >&5
++echo "$as_me:1528: result: yes" >&5
+ echo "${ECHO_T}yes" >&6
+
+ rm -f a.out a.exe conftest$ac_cv_exeext
+ ac_clean_files=$ac_clean_files_save
+ # Check the compiler produces executables we can run. If not, either
+ # the compiler is broken, or we cross compile.
+-echo "$as_me:1554: checking whether we are cross compiling" >&5
++echo "$as_me:1535: checking whether we are cross compiling" >&5
+ echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:1556: result: $cross_compiling" >&5
++echo "$as_me:1537: result: $cross_compiling" >&5
+ echo "${ECHO_T}$cross_compiling" >&6
+
+-echo "$as_me:1559: checking for executable suffix" >&5
++echo "$as_me:1540: checking for executable suffix" >&5
+ echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+-if { (eval echo "$as_me:1561: \"$ac_link\"") >&5
++if { (eval echo "$as_me:1542: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:1564: \$? = $ac_status" >&5
++ echo "$as_me:1545: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+@@ -1577,25 +1558,25 @@
+ esac
+ done
+ else
+- { { echo "$as_me:1580: error: cannot compute EXEEXT: cannot compile and link" >&5
++ { { echo "$as_me:1561: error: cannot compute EXEEXT: cannot compile and link" >&5
+ echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest$ac_cv_exeext
+-echo "$as_me:1586: result: $ac_cv_exeext" >&5
++echo "$as_me:1567: result: $ac_cv_exeext" >&5
+ echo "${ECHO_T}$ac_cv_exeext" >&6
+
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+-echo "$as_me:1592: checking for object suffix" >&5
++echo "$as_me:1573: checking for object suffix" >&5
+ echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+ if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1598 "configure"
++#line 1579 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1607,10 +1588,10 @@
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:1610: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1591: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1613: \$? = $ac_status" >&5
++ echo "$as_me:1594: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+@@ -1622,24 +1603,24 @@
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-{ { echo "$as_me:1625: error: cannot compute OBJEXT: cannot compile" >&5
++{ { echo "$as_me:1606: error: cannot compute OBJEXT: cannot compile" >&5
+ echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1632: result: $ac_cv_objext" >&5
++echo "$as_me:1613: result: $ac_cv_objext" >&5
+ echo "${ECHO_T}$ac_cv_objext" >&6
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+-echo "$as_me:1636: checking whether we are using the GNU C compiler" >&5
++echo "$as_me:1617: checking whether we are using the GNU C compiler" >&5
+ echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1642 "configure"
++#line 1623 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1654,16 +1635,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1657: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1638: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1660: \$? = $ac_status" >&5
++ echo "$as_me:1641: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1663: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1644: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1666: \$? = $ac_status" >&5
++ echo "$as_me:1647: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+ else
+@@ -1675,19 +1656,19 @@
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+ fi
+-echo "$as_me:1678: result: $ac_cv_c_compiler_gnu" >&5
++echo "$as_me:1659: result: $ac_cv_c_compiler_gnu" >&5
+ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+ GCC=`test $ac_compiler_gnu = yes && echo yes`
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="-g"
+-echo "$as_me:1684: checking whether $CC accepts -g" >&5
++echo "$as_me:1665: checking whether $CC accepts -g" >&5
+ echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1690 "configure"
++#line 1671 "configure"
+ #include "confdefs.h"
+
+ int
+@@ -1699,16 +1680,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1702: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1683: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1705: \$? = $ac_status" >&5
++ echo "$as_me:1686: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1708: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1689: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1711: \$? = $ac_status" >&5
++ echo "$as_me:1692: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+ else
+@@ -1718,7 +1699,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:1721: result: $ac_cv_prog_cc_g" >&5
++echo "$as_me:1702: result: $ac_cv_prog_cc_g" >&5
+ echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+@@ -1745,16 +1726,16 @@
+ #endif
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1748: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1729: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1751: \$? = $ac_status" >&5
++ echo "$as_me:1732: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1754: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1735: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1757: \$? = $ac_status" >&5
++ echo "$as_me:1738: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+@@ -1766,7 +1747,7 @@
+ 'void exit (int);'
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1769 "configure"
++#line 1750 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ $ac_declaration
+@@ -1779,16 +1760,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1782: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1763: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1785: \$? = $ac_status" >&5
++ echo "$as_me:1766: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1788: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1769: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1791: \$? = $ac_status" >&5
++ echo "$as_me:1772: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -1798,7 +1779,7 @@
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1801 "configure"
++#line 1782 "configure"
+ #include "confdefs.h"
+ $ac_declaration
+ int
+@@ -1810,16 +1791,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:1813: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:1794: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:1816: \$? = $ac_status" >&5
++ echo "$as_me:1797: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:1819: \"$ac_try\"") >&5
++ { (eval echo "$as_me:1800: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:1822: \$? = $ac_status" >&5
++ echo "$as_me:1803: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+ else
+@@ -1847,13 +1828,214 @@
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+
++GCC_VERSION=none
++if test "$GCC" = yes ; then
++ echo "$as_me:1833: checking version of $CC" >&5
++echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
++ GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
++ test -z "$GCC_VERSION" && GCC_VERSION=unknown
++ echo "$as_me:1837: result: $GCC_VERSION" >&5
++echo "${ECHO_T}$GCC_VERSION" >&6
++fi
++
++echo "$as_me:1841: checking for $CC option to accept ANSI C" >&5
++echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
++if test "${ac_cv_prog_cc_stdc+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_cv_prog_cc_stdc=no
++ac_save_CC=$CC
++cat >conftest.$ac_ext <<_ACEOF
++#line 1849 "configure"
++#include "confdefs.h"
++#include <stdarg.h>
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
++struct buf { int x; };
++FILE * (*rcsopen) (struct buf *, struct stat *, int);
++static char *e (p, i)
++ char **p;
++ int i;
++{
++ return p[i];
++}
++static char *f (char * (*g) (char **, int), char **p, ...)
++{
++ char *s;
++ va_list v;
++ va_start (v,p);
++ s = g (p, va_arg (v,int));
++ va_end (v);
++ return s;
++}
++int test (int i, double x);
++struct s1 {int (*f) (int a);};
++struct s2 {int (*f) (double a);};
++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
++int argc;
++char **argv;
++int
++main ()
++{
++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
++ ;
++ return 0;
++}
++_ACEOF
++# Don't try gcc -ansi; that turns off useful extensions and
++# breaks some systems' header files.
++# AIX -qlanglvl=ansi
++# Ultrix and OSF/1 -std1
++# HP-UX 10.20 and later -Ae
++# HP-UX older versions -Aa -D_HPUX_SOURCE
++# SVR4 -Xc -D__EXTENSIONS__
++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
++do
++ CC="$ac_save_CC $ac_arg"
++ rm -f conftest.$ac_objext
++if { (eval echo "$as_me:1898: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:1901: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:1904: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:1907: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_prog_cc_stdc=$ac_arg
++break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext
++done
++rm -f conftest.$ac_ext conftest.$ac_objext
++CC=$ac_save_CC
++
++fi
++
++case "x$ac_cv_prog_cc_stdc" in
++ x|xno)
++ echo "$as_me:1924: result: none needed" >&5
++echo "${ECHO_T}none needed" >&6 ;;
++ *)
++ echo "$as_me:1927: result: $ac_cv_prog_cc_stdc" >&5
++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
++ CC="$CC $ac_cv_prog_cc_stdc" ;;
++esac
++
++# This should have been defined by AC_PROG_CC
++: ${CC:=cc}
++
++echo "$as_me:1935: checking \$CC variable" >&5
++echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
++case "$CC" in #(vi
++*[\ \ ]-[IUD]*)
++ echo "$as_me:1939: result: broken" >&5
++echo "${ECHO_T}broken" >&6
++ { echo "$as_me:1941: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
++echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
++ # humor him...
++ cf_flags=`echo "$CC" | sed -e 's/^[^ ]*[ ]//'`
++ CC=`echo "$CC" | sed -e 's/[ ].*//'`
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_flags
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++ ;;
++*)
++ echo "$as_me:2027: result: ok" >&5
++echo "${ECHO_T}ok" >&6
++ ;;
++esac
++
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ ac_main_return=return
+-echo "$as_me:1856: checking how to run the C preprocessor" >&5
++echo "$as_me:2038: checking how to run the C preprocessor" >&5
+ echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+@@ -1874,18 +2056,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1877 "configure"
++#line 2059 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:1882: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2064: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:1888: \$? = $ac_status" >&5
++ echo "$as_me:2070: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1908,17 +2090,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1911 "configure"
++#line 2093 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:1915: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2097: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:1921: \$? = $ac_status" >&5
++ echo "$as_me:2103: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1955,7 +2137,7 @@
+ else
+ ac_cv_prog_CPP=$CPP
+ fi
+-echo "$as_me:1958: result: $CPP" >&5
++echo "$as_me:2140: result: $CPP" >&5
+ echo "${ECHO_T}$CPP" >&6
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+@@ -1965,18 +2147,18 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 1968 "configure"
++#line 2150 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax error
+ _ACEOF
+-if { (eval echo "$as_me:1973: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2155: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:1979: \$? = $ac_status" >&5
++ echo "$as_me:2161: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -1999,17 +2181,17 @@
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2002 "configure"
++#line 2184 "configure"
+ #include "confdefs.h"
+ #include <ac_nonexistent.h>
+ _ACEOF
+-if { (eval echo "$as_me:2006: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:2188: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:2012: \$? = $ac_status" >&5
++ echo "$as_me:2194: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -2037,7 +2219,7 @@
+ if $ac_preproc_ok; then
+ :
+ else
+- { { echo "$as_me:2040: error: C preprocessor \"$CPP\" fails sanity check" >&5
++ { { echo "$as_me:2222: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+@@ -2053,7 +2235,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2056: checking for $ac_word" >&5
++echo "$as_me:2238: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_AWK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2068,7 +2250,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_AWK="$ac_prog"
+-echo "$as_me:2071: found $ac_dir/$ac_word" >&5
++echo "$as_me:2253: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2076,10 +2258,10 @@
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+- echo "$as_me:2079: result: $AWK" >&5
++ echo "$as_me:2261: result: $AWK" >&5
+ echo "${ECHO_T}$AWK" >&6
+ else
+- echo "$as_me:2082: result: no" >&5
++ echo "$as_me:2264: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2098,7 +2280,7 @@
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:2101: checking for a BSD compatible install" >&5
++echo "$as_me:2283: checking for a BSD compatible install" >&5
+ echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+@@ -2147,7 +2329,7 @@
+ INSTALL=$ac_install_sh
+ fi
+ fi
+-echo "$as_me:2150: result: $INSTALL" >&5
++echo "$as_me:2332: result: $INSTALL" >&5
+ echo "${ECHO_T}$INSTALL" >&6
+
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+@@ -2172,7 +2354,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2175: checking for $ac_word" >&5
++echo "$as_me:2357: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_LINT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2187,7 +2369,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_LINT="$ac_prog"
+-echo "$as_me:2190: found $ac_dir/$ac_word" >&5
++echo "$as_me:2372: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2195,17 +2377,17 @@
+ fi
+ LINT=$ac_cv_prog_LINT
+ if test -n "$LINT"; then
+- echo "$as_me:2198: result: $LINT" >&5
++ echo "$as_me:2380: result: $LINT" >&5
+ echo "${ECHO_T}$LINT" >&6
+ else
+- echo "$as_me:2201: result: no" >&5
++ echo "$as_me:2383: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ test -n "$LINT" && break
+ done
+
+-echo "$as_me:2208: checking if filesystem supports mixed-case filenames" >&5
++echo "$as_me:2390: checking if filesystem supports mixed-case filenames" >&5
+ echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
+ if test "${cf_cv_mixedcase+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2213,7 +2395,7 @@
+
+ if test "$cross_compiling" = yes ; then
+ case $target_alias in #(vi
+- *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
++ *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*) #(vi
+ cf_cv_mixedcase=no
+ ;;
+ *)
+@@ -2232,9 +2414,10 @@
+ fi
+
+ fi
+-echo "$as_me:2235: result: $cf_cv_mixedcase" >&5
++echo "$as_me:2417: result: $cf_cv_mixedcase" >&5
+ echo "${ECHO_T}$cf_cv_mixedcase" >&6
+-test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
++test "$cf_cv_mixedcase" = yes &&
++cat >>confdefs.h <<\EOF
+ #define MIXEDCASE_FILENAMES 1
+ EOF
+
+@@ -2242,7 +2425,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2245: checking for $ac_word" >&5
++echo "$as_me:2428: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_CTAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2257,7 +2440,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_CTAGS="$ac_prog"
+-echo "$as_me:2260: found $ac_dir/$ac_word" >&5
++echo "$as_me:2443: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2265,10 +2448,10 @@
+ fi
+ CTAGS=$ac_cv_prog_CTAGS
+ if test -n "$CTAGS"; then
+- echo "$as_me:2268: result: $CTAGS" >&5
++ echo "$as_me:2451: result: $CTAGS" >&5
+ echo "${ECHO_T}$CTAGS" >&6
+ else
+- echo "$as_me:2271: result: no" >&5
++ echo "$as_me:2454: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2279,7 +2462,7 @@
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo "$as_me:2282: checking for $ac_word" >&5
++echo "$as_me:2465: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_ETAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2294,7 +2477,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_ETAGS="$ac_prog"
+-echo "$as_me:2297: found $ac_dir/$ac_word" >&5
++echo "$as_me:2480: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2302,10 +2485,10 @@
+ fi
+ ETAGS=$ac_cv_prog_ETAGS
+ if test -n "$ETAGS"; then
+- echo "$as_me:2305: result: $ETAGS" >&5
++ echo "$as_me:2488: result: $ETAGS" >&5
+ echo "${ECHO_T}$ETAGS" >&6
+ else
+- echo "$as_me:2308: result: no" >&5
++ echo "$as_me:2491: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2314,7 +2497,7 @@
+
+ # Extract the first word of "${CTAGS:-ctags}", so it can be a program name with args.
+ set dummy ${CTAGS:-ctags}; ac_word=$2
+-echo "$as_me:2317: checking for $ac_word" >&5
++echo "$as_me:2500: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2329,7 +2512,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_LOWER_TAGS="yes"
+-echo "$as_me:2332: found $ac_dir/$ac_word" >&5
++echo "$as_me:2515: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2338,17 +2521,17 @@
+ fi
+ MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
+ if test -n "$MAKE_LOWER_TAGS"; then
+- echo "$as_me:2341: result: $MAKE_LOWER_TAGS" >&5
++ echo "$as_me:2524: result: $MAKE_LOWER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
+ else
+- echo "$as_me:2344: result: no" >&5
++ echo "$as_me:2527: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+ if test "$cf_cv_mixedcase" = yes ; then
+ # Extract the first word of "${ETAGS:-etags}", so it can be a program name with args.
+ set dummy ${ETAGS:-etags}; ac_word=$2
+-echo "$as_me:2351: checking for $ac_word" >&5
++echo "$as_me:2534: checking for $ac_word" >&5
+ echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+ if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -2363,7 +2546,7 @@
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ ac_cv_prog_MAKE_UPPER_TAGS="yes"
+-echo "$as_me:2366: found $ac_dir/$ac_word" >&5
++echo "$as_me:2549: found $ac_dir/$ac_word" >&5
+ break
+ done
+
+@@ -2372,10 +2555,10 @@
+ fi
+ MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
+ if test -n "$MAKE_UPPER_TAGS"; then
+- echo "$as_me:2375: result: $MAKE_UPPER_TAGS" >&5
++ echo "$as_me:2558: result: $MAKE_UPPER_TAGS" >&5
+ echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
+ else
+- echo "$as_me:2378: result: no" >&5
++ echo "$as_me:2561: result: no" >&5
+ echo "${ECHO_T}no" >&6
+ fi
+
+@@ -2395,14 +2578,14 @@
+ MAKE_LOWER_TAGS="#"
+ fi
+
+-echo "$as_me:2398: checking if -lm needed for math functions" >&5
++echo "$as_me:2581: checking if -lm needed for math functions" >&5
+ echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
+ if test "${cf_cv_need_libm+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 2405 "configure"
++#line 2588 "configure"
+ #include "confdefs.h"
+
+ #include <stdio.h>
+@@ -2411,22 +2594,22 @@
+ int
+ main ()
+ {
+-double x = rand(); printf("result = %g\n", sin(x))
++double x = rand(); printf("result = %g\n", pow(sin(x),x))
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:2420: \"$ac_link\"") >&5
++if { (eval echo "$as_me:2603: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:2423: \$? = $ac_status" >&5
++ echo "$as_me:2606: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:2426: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2609: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2429: \$? = $ac_status" >&5
++ echo "$as_me:2612: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_need_libm=no
+ else
+@@ -2436,13 +2619,15 @@
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:2439: result: $cf_cv_need_libm" >&5
++echo "$as_me:2622: result: $cf_cv_need_libm" >&5
+ echo "${ECHO_T}$cf_cv_need_libm" >&6
+ if test "$cf_cv_need_libm" = yes
+ then
+ MATH_LIB=-lm
+ fi
+
++top_builddir=`pwd`
++
+ CC_G_OPT="-g"
+ CC_SHARED_OPTS=unknown
+ CPPFLAGS="$CPPFLAGS"
+@@ -2464,427 +2649,308 @@
+ TEST_ARGS=""
+ TEST_DEPS=""
+ TEST_LIBS=""
+-TINFO_ARGS='$(LIBS_CURSES)'
++TINFO_LDFLAGS=''
++TINFO_LIBS='$(LIBS_CURSES)'
+ cf_cv_abi_version=""
+ cf_cv_rel_version=""
++includesubdir=""
+
+ cf_cv_screen=curses
+ cf_cv_libtype=
+
+-echo "$as_me:2474: checking for ${CC:-cc} option to accept ANSI C" >&5
+-echo $ECHO_N "checking for ${CC:-cc} option to accept ANSI C... $ECHO_C" >&6
+-if test "${cf_cv_ansi_cc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++if test "$GCC" = yes
++then
++cat > conftest.i <<EOF
++#ifndef GCC_PRINTF
++#define GCC_PRINTF 0
++#endif
++#ifndef GCC_SCANF
++#define GCC_SCANF 0
++#endif
++#ifndef GCC_NORETURN
++#define GCC_NORETURN /* nothing */
++#endif
++#ifndef GCC_UNUSED
++#define GCC_UNUSED /* nothing */
++#endif
++EOF
++if test "$GCC" = yes
++then
++ { echo "$as_me:2679: checking for $CC __attribute__ directives..." >&5
++echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
++cat > conftest.$ac_ext <<EOF
++#line 2682 "${as_me:-configure}"
++#include "confdefs.h"
++#include "conftest.h"
++#include "conftest.i"
++#if GCC_PRINTF
++#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
++#else
++#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
++#endif
++#if GCC_SCANF
++#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
++#else
++#define GCC_SCANFLIKE(fmt,var) /*nothing*/
++#endif
++extern void wow(char *,...) GCC_SCANFLIKE(1,2);
++extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
++extern void foo(void) GCC_NORETURN;
++int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
++EOF
++ cf_printf_attribute=no
++ cf_scanf_attribute=no
++ for cf_attribute in scanf printf unused noreturn
++ do
+
+-cf_cv_ansi_cc=no
+-cf_save_CFLAGS="$CFLAGS"
+-cf_save_CPPFLAGS="$CPPFLAGS"
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc
+-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+-for cf_arg in "-DCC_HAS_PROTOS" \
+- "" \
+- -qlanglvl=ansi \
+- -std1 \
+- -Ae \
+- "-Aa -D_HPUX_SOURCE" \
+- -Xc
+-do
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_arg
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
++ cf_directive="__attribute__(($cf_attribute))"
++ echo "checking for $CC $cf_directive" 1>&5
+
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
++ case $cf_attribute in #(vi
++ printf) #(vi
++ cf_printf_attribute=yes
++ cat >conftest.h <<EOF
++#define GCC_$cf_ATTRIBUTE 1
++EOF
+ ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
++ scanf) #(vi
++ cf_scanf_attribute=yes
++ cat >conftest.h <<EOF
++#define GCC_$cf_ATTRIBUTE 1
++EOF
+ ;;
+ *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++ cat >conftest.h <<EOF
++#define GCC_$cf_ATTRIBUTE $cf_directive
++EOF
++ ;;
++ esac
+
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++ if { (eval echo "$as_me:2731: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:2734: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ test -n "$verbose" && echo "$as_me:2736: result: ... $cf_attribute" >&5
++echo "${ECHO_T}... $cf_attribute" >&6
++ cat conftest.h >>confdefs.h
++ case $cf_attribute in #(vi
++ noreturn) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_NORETURN $cf_directive
++EOF
+
+ ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ printf) #(vi
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
+
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++cat >>confdefs.h <<\EOF
++#define GCC_PRINTF 1
++EOF
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
++ fi
+
+-if test -n "$cf_new_cflags" ; then
++cat >>confdefs.h <<EOF
++#define GCC_PRINTFLIKE(fmt,var) $cf_value
++EOF
+
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
++ ;;
++ scanf) #(vi
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
+
+-if test -n "$cf_new_cppflags" ; then
++cat >>confdefs.h <<\EOF
++#define GCC_SCANF 1
++EOF
+
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
++ fi
+
+-if test -n "$cf_new_extra_cppflags" ; then
++cat >>confdefs.h <<EOF
++#define GCC_SCANFLIKE(fmt,var) $cf_value
++EOF
+
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++ ;;
++ unused) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_UNUSED $cf_directive
++EOF
++
++ ;;
++ esac
++ fi
++ done
++else
++ fgrep define conftest.i >>confdefs.h
++fi
++rm -rf conftest*
+ fi
+
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 2578 "configure"
++cf_XOPEN_SOURCE=500
++cf_POSIX_C_SOURCE=199506L
++cf_xopen_source=
++
++case $host_os in #(vi
++aix[4-7]*) #(vi
++ cf_xopen_source="-D_ALL_SOURCE"
++ ;;
++cygwin|msys) #(vi
++ cf_XOPEN_SOURCE=600
++ ;;
++darwin[0-8].*) #(vi
++ cf_xopen_source="-D_APPLE_C_SOURCE"
++ ;;
++darwin*) #(vi
++ cf_xopen_source="-D_DARWIN_C_SOURCE"
++ cf_XOPEN_SOURCE=
++ ;;
++freebsd*|dragonfly*) #(vi
++ # 5.x headers associate
++ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
++ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
++ cf_POSIX_C_SOURCE=200112L
++ cf_XOPEN_SOURCE=600
++ cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ ;;
++hpux11*) #(vi
++ cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
++ ;;
++hpux*) #(vi
++ cf_xopen_source="-D_HPUX_SOURCE"
++ ;;
++irix[56].*) #(vi
++ cf_xopen_source="-D_SGI_SOURCE"
++ cf_XOPEN_SOURCE=
++ ;;
++linux*|gnu*|mint*|k*bsd*-gnu) #(vi
++
++echo "$as_me:2833: 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 2840 "configure"
+ #include "confdefs.h"
++#include <sys/types.h>
++int
++main ()
++{
+
+-#ifndef CC_HAS_PROTOS
+-#if !defined(__STDC__) || (__STDC__ != 1)
+-choke me
+-#endif
++#ifndef _XOPEN_SOURCE
++make an error
+ #endif
+-
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:2855: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:2858: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:2861: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:2864: \$? = $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 2873 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
+ int
+ main ()
+ {
+
+- int test (int i, double x);
+- struct s1 {int (*f) (int a);};
+- struct s2 {int (*f) (double a);};
++#ifdef _XOPEN_SOURCE
++make an error
++#endif
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2599: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2888: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2602: \$? = $ac_status" >&5
++ echo "$as_me:2891: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2605: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2894: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2608: \$? = $ac_status" >&5
++ echo "$as_me:2897: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ansi_cc="$cf_arg"; break
++ cf_cv_gnu_source=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_cv_gnu_source=yes
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-done
+-CFLAGS="$cf_save_CFLAGS"
+-CPPFLAGS="$cf_save_CPPFLAGS"
++ CPPFLAGS="$cf_save"
+
+ fi
+-echo "$as_me:2621: result: $cf_cv_ansi_cc" >&5
+-echo "${ECHO_T}$cf_cv_ansi_cc" >&6
++rm -f conftest.$ac_objext conftest.$ac_ext
+
+-if test "$cf_cv_ansi_cc" != "no"; then
+-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
++fi
++echo "$as_me:2912: result: $cf_cv_gnu_source" >&5
++echo "${ECHO_T}$cf_cv_gnu_source" >&6
++test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
++ ;;
++minix*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
++ ;;
++mirbsd*) #(vi
++ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
++ cf_XOPEN_SOURCE=
+
+-for cf_add_cflags in $cf_cv_ansi_cc
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
++cf_save_CFLAGS="$CFLAGS"
++cf_save_CPPFLAGS="$CPPFLAGS"
+
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
++ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+-else
+- cat >>confdefs.h <<\EOF
+-#define CC_HAS_PROTOS 1
+-EOF
+-
+-fi
+-fi
+-
+-if test "$cf_cv_ansi_cc" = "no"; then
+- { { echo "$as_me:2714: error: Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto" >&5
+-echo "$as_me: error: Your compiler does not appear to recognize prototypes.
+-You have the following choices:
+- a. adjust your compiler options
+- b. get an up-to-date compiler
+- c. use a wrapper such as unproto" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
+-
+-if test "$GCC" = yes
+-then
+-cat > conftest.i <<EOF
+-#ifndef GCC_PRINTF
+-#define GCC_PRINTF 0
+-#endif
+-#ifndef GCC_SCANF
+-#define GCC_SCANF 0
+-#endif
+-#ifndef GCC_NORETURN
+-#define GCC_NORETURN /* nothing */
+-#endif
+-#ifndef GCC_UNUSED
+-#define GCC_UNUSED /* nothing */
+-#endif
+-EOF
+-if test "$GCC" = yes
+-then
+- { echo "$as_me:2745: checking for $CC __attribute__ directives..." >&5
+-echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+-cat > conftest.$ac_ext <<EOF
+-#line 2748 "${as_me:-configure}"
+-#include "confdefs.h"
+-#include "conftest.h"
+-#include "conftest.i"
+-#if GCC_PRINTF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-#else
+-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
+-#endif
+-#if GCC_SCANF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-#else
+-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
+-#endif
+-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
+-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+-extern void foo(void) GCC_NORETURN;
+-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
+-EOF
+- cf_printf_attribute=no
+- cf_scanf_attribute=no
+- for cf_attribute in scanf printf unused noreturn
+- do
+-
+-cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-
+- cf_directive="__attribute__(($cf_attribute))"
+- echo "checking for $CC $cf_directive" 1>&5
+-
+- case $cf_attribute in #(vi
+- printf) #(vi
+- cf_printf_attribute=yes
+- cat >conftest.h <<EOF
+-#define GCC_$cf_ATTRIBUTE 1
+-EOF
+- ;;
+- scanf) #(vi
+- cf_scanf_attribute=yes
+- cat >conftest.h <<EOF
+-#define GCC_$cf_ATTRIBUTE 1
+-EOF
+- ;;
+- *) #(vi
+- cat >conftest.h <<EOF
+-#define GCC_$cf_ATTRIBUTE $cf_directive
+-EOF
+- ;;
+- esac
+-
+- if { (eval echo "$as_me:2797: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:2800: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:2802: result: ... $cf_attribute" >&5
+-echo "${ECHO_T}... $cf_attribute" >&6
+- cat conftest.h >>confdefs.h
+- case $cf_attribute in #(vi
+- printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-EOF
+- fi
+- ;;
+- scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-EOF
+- fi
+- ;;
+- esac
+- fi
+- done
+-else
+- fgrep define conftest.i >>confdefs.h
+-fi
+-rm -rf conftest*
+-fi
+-
+-cf_XOPEN_SOURCE=500
+-cf_POSIX_C_SOURCE=199506L
+-cf_xopen_source=
+-
+-case $host_os in #(vi
+-aix[456]*) #(vi
+- cf_xopen_source="-D_ALL_SOURCE"
+- ;;
+-cygwin) #(vi
+- cf_XOPEN_SOURCE=600
+- ;;
+-darwin[0-8].*) #(vi
+- cf_xopen_source="-D_APPLE_C_SOURCE"
+- ;;
+-darwin*) #(vi
+- cf_xopen_source="-D_DARWIN_C_SOURCE"
+- ;;
+-freebsd*|dragonfly*) #(vi
+- # 5.x headers associate
+- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
+- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
+- cf_POSIX_C_SOURCE=200112L
+- cf_XOPEN_SOURCE=600
+- cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-hpux11*) #(vi
+- cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
+- ;;
+-hpux*) #(vi
+- cf_xopen_source="-D_HPUX_SOURCE"
+- ;;
+-irix[56].*) #(vi
+- cf_xopen_source="-D_SGI_SOURCE"
+- ;;
+-linux*|gnu*|mint*|k*bsd*-gnu) #(vi
+-
+-echo "$as_me:2873: checking if we must define _GNU_SOURCE" >&5
+-echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+-if test "${cf_cv_gnu_source+set}" = set; then
++echo "$as_me:2937: checking if we should define _POSIX_C_SOURCE" >&5
++echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_posix_c_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 2880 "configure"
++echo "${as_me:-configure}:2943: testing if the symbol is already defined go no further ..." 1>&5
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 2946 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+ main ()
+ {
+
+-#ifndef _XOPEN_SOURCE
++#ifndef _POSIX_C_SOURCE
+ make an error
+ #endif
+ ;
+@@ -2892,32 +2958,44 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2895: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:2961: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2898: \$? = $ac_status" >&5
++ echo "$as_me:2964: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2901: \"$ac_try\"") >&5
++ { (eval echo "$as_me:2967: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2904: \$? = $ac_status" >&5
++ echo "$as_me:2970: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_gnu_source=no
++ cf_cv_posix_c_source=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_save="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 2913 "configure"
++cf_want_posix_source=no
++ case .$cf_POSIX_C_SOURCE in #(vi
++ .[12]??*) #(vi
++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
++ ;;
++ .2) #(vi
++ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
++ cf_want_posix_source=yes
++ ;;
++ .*)
++ cf_want_posix_source=yes
++ ;;
++ esac
++ if test "$cf_want_posix_source" = yes ; then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 2991 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+ main ()
+ {
+
+-#ifdef _XOPEN_SOURCE
++#ifdef _POSIX_SOURCE
+ make an error
+ #endif
+ ;
+@@ -2925,75 +3003,42 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:2928: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3006: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:2931: \$? = $ac_status" >&5
++ echo "$as_me:3009: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:2934: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3012: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:2937: \$? = $ac_status" >&5
++ echo "$as_me:3015: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_gnu_source=no
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_gnu_source=yes
++cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS="$cf_save"
++ fi
+
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++echo "${as_me:-configure}:3026: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+
+-fi
+-echo "$as_me:2952: result: $cf_cv_gnu_source" >&5
+-echo "${ECHO_T}$cf_cv_gnu_source" >&6
+-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+
+- ;;
+-mirbsd*) #(vi
+- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+- ;;
+-netbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+- ;;
+-openbsd*) #(vi
+- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+- ;;
+-osf[45]*) #(vi
+- cf_xopen_source="-D_OSF_SOURCE"
+- ;;
+-nto-qnx*) #(vi
+- cf_xopen_source="-D_QNX_SOURCE"
+- ;;
+-sco*) #(vi
+- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+- ;;
+-solaris2.1[0-9]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- ;;
+-solaris2.[1-9]) #(vi
+- cf_xopen_source="-D__EXTENSIONS__"
+- ;;
+-*)
+- echo "$as_me:2982: checking if we should define _XOPEN_SOURCE" >&5
+-echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+-if test "${cf_cv_xopen_source+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++echo "${as_me:-configure}:3031: testing if the second compile does not leave our definition intact error ..." 1>&5
+
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 2989 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3034 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+ main ()
+ {
+
+-#ifndef _XOPEN_SOURCE
++#ifndef _POSIX_C_SOURCE
+ make an error
+ #endif
+ ;
+@@ -3001,49 +3046,222 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3004: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3049: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3007: \$? = $ac_status" >&5
++ echo "$as_me:3052: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3010: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3055: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3013: \$? = $ac_status" >&5
++ echo "$as_me:3058: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_xopen_source=no
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_save="$CPPFLAGS"
+- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 3022 "configure"
+-#include "confdefs.h"
+-#include <sys/types.h>
+-int
+-main ()
+-{
++cf_cv_posix_c_source=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ CPPFLAGS="$cf_save_CPPFLAGS"
+
+-#ifdef _XOPEN_SOURCE
+-make an error
+-#endif
+- ;
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:3074: result: $cf_cv_posix_c_source" >&5
++echo "${ECHO_T}$cf_cv_posix_c_source" >&6
++
++if test "$cf_cv_posix_c_source" != no ; then
++ CFLAGS="$cf_trim_CFLAGS"
++ CPPFLAGS="$cf_trim_CPPFLAGS"
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_cv_posix_c_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++fi
++
++ ;;
++netbsd*) #(vi
++ cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
++ ;;
++openbsd[4-9]*) #(vi
++ # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
++ cf_xopen_source="-D_BSD_SOURCE"
++ cf_XOPEN_SOURCE=600
++ ;;
++openbsd*) #(vi
++ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
++ ;;
++osf[45]*) #(vi
++ cf_xopen_source="-D_OSF_SOURCE"
++ ;;
++nto-qnx*) #(vi
++ cf_xopen_source="-D_QNX_SOURCE"
++ ;;
++sco*) #(vi
++ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
++ ;;
++solaris2.*) #(vi
++ cf_xopen_source="-D__EXTENSIONS__"
++ cf_cv_xopen_source=broken
++ ;;
++sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
++ cf_XOPEN_SOURCE=
++ cf_POSIX_C_SOURCE=
++ ;;
++*)
++
++echo "$as_me:3192: checking if we should define _XOPEN_SOURCE" >&5
++echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_xopen_source+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3199 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:3218: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:3221: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:3224: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:3227: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3236 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifdef _XOPEN_SOURCE
++make an error
++#endif
++ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3037: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3255: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3040: \$? = $ac_status" >&5
++ echo "$as_me:3258: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3043: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3261: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3046: \$? = $ac_status" >&5
++ echo "$as_me:3264: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_xopen_source=no
+ else
+@@ -3058,9 +3276,10 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:3061: result: $cf_cv_xopen_source" >&5
++echo "$as_me:3279: result: $cf_cv_xopen_source" >&5
+ echo "${ECHO_T}$cf_cv_xopen_source" >&6
+- if test "$cf_cv_xopen_source" != no ; then
++
++if test "$cf_cv_xopen_source" != no ; then
+
+ CFLAGS=`echo "$CFLAGS" | \
+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+@@ -3070,7 +3289,7 @@
+ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+- cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -3087,7 +3306,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -3128,7 +3347,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -3150,7 +3369,7 @@
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- fi
++fi
+
+ cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
+
+@@ -3165,16 +3384,16 @@
+ sed -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ ]*\)\?$//g'`
+
+-echo "$as_me:3168: checking if we should define _POSIX_C_SOURCE" >&5
++echo "$as_me:3387: checking if we should define _POSIX_C_SOURCE" >&5
+ echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+ if test "${cf_cv_posix_c_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-echo "${as_me:-configure}:3174: testing if the symbol is already defined go no further ..." 1>&5
++echo "${as_me:-configure}:3393: testing if the symbol is already defined go no further ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3177 "configure"
++#line 3396 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3189,16 +3408,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3192: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3411: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3195: \$? = $ac_status" >&5
++ echo "$as_me:3414: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3198: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3417: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3201: \$? = $ac_status" >&5
++ echo "$as_me:3420: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_posix_c_source=no
+ else
+@@ -3219,7 +3438,7 @@
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3222 "configure"
++#line 3441 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3234,16 +3453,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3237: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3456: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3240: \$? = $ac_status" >&5
++ echo "$as_me:3459: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3243: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3462: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3246: \$? = $ac_status" >&5
++ echo "$as_me:3465: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -3254,15 +3473,15 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+
+-echo "${as_me:-configure}:3257: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
++echo "${as_me:-configure}:3476: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+
+-echo "${as_me:-configure}:3262: testing if the second compile does not leave our definition intact error ..." 1>&5
++echo "${as_me:-configure}:3481: testing if the second compile does not leave our definition intact error ..." 1>&5
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3265 "configure"
++#line 3484 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ int
+@@ -3277,16 +3496,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3280: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3499: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3283: \$? = $ac_status" >&5
++ echo "$as_me:3502: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3286: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3505: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3289: \$? = $ac_status" >&5
++ echo "$as_me:3508: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -3302,7 +3521,7 @@
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
+ fi
+-echo "$as_me:3305: result: $cf_cv_posix_c_source" >&5
++echo "$as_me:3524: result: $cf_cv_posix_c_source" >&5
+ echo "${ECHO_T}$cf_cv_posix_c_source" >&6
+
+ if test "$cf_cv_posix_c_source" != no ; then
+@@ -3324,7 +3543,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -3365,7 +3584,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -3409,7 +3628,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -3450,7 +3669,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -3458,207 +3677,299 @@
+ done
+
+ if test -n "$cf_new_cflags" ; then
++ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
++
++echo "${as_me:-configure}:3682: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+
+ if test -n "$cf_new_cppflags" ; then
++ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
++
++echo "${as_me:-configure}:3690: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+ if test -n "$cf_new_extra_cppflags" ; then
++ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
++
++echo "${as_me:-configure}:3698: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+ fi
+
+-echo "$as_me:3477: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 3485 "configure"
++if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
++ echo "$as_me:3706: checking if _XOPEN_SOURCE really is set" >&5
++echo $ECHO_N "checking if _XOPEN_SOURCE really is set... $ECHO_C" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3709 "configure"
+ #include "confdefs.h"
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+- char **p;
+- int i;
+-{
+- return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+- char *s;
+- va_list v;
+- va_start (v,p);
+- s = g (p, va_arg (v,int));
+- va_end (v);
+- return s;
+-}
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
++#include <stdlib.h>
+ int
+ main ()
+ {
+-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
+ ;
+ return 0;
+ }
+ _ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX -qlanglvl=ansi
+-# Ultrix and OSF/1 -std1
+-# HP-UX 10.20 and later -Ae
+-# HP-UX older versions -Aa -D_HPUX_SOURCE
+-# SVR4 -Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+- CC="$ac_save_CC $ac_arg"
+- rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3534: \"$ac_compile\"") >&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:3724: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3537: \$? = $ac_status" >&5
++ echo "$as_me:3727: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3540: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3730: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3543: \$? = $ac_status" >&5
++ echo "$as_me:3733: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_prog_cc_stdc=$ac_arg
+-break
++ cf_XOPEN_SOURCE_set=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_XOPEN_SOURCE_set=no
+ fi
+-rm -f conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
+-
+-fi
+-
+-case "x$ac_cv_prog_cc_stdc" in
+- x|xno)
+- echo "$as_me:3560: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+- *)
+- echo "$as_me:3563: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+- CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-
+-echo "$as_me:3568: checking for an ANSI C-conforming const" >&5
+-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+-if test "${ac_cv_c_const+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 3574 "configure"
++rm -f conftest.$ac_objext conftest.$ac_ext
++ echo "$as_me:3742: result: $cf_XOPEN_SOURCE_set" >&5
++echo "${ECHO_T}$cf_XOPEN_SOURCE_set" >&6
++ if test $cf_XOPEN_SOURCE_set = yes
++ then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3747 "configure"
+ #include "confdefs.h"
+-
++#include <stdlib.h>
+ int
+ main ()
+ {
+-/* FIXME: Include the comments suggested by Paul. */
+-#ifndef __cplusplus
+- /* Ultrix mips cc rejects this. */
+- typedef int charset[2];
+- const charset x;
+- /* SunOS 4.1.1 cc rejects this. */
+- char const *const *ccp;
+- char **p;
+- /* NEC SVR4.0.2 mips cc rejects this. */
+- struct point {int x, y;};
+- static struct point const zero = {0,0};
+- /* AIX XL C 1.02.0.0 rejects this.
+- It does not let you subtract one const X* pointer from another in
+- an arm of an if-expression whose if-part is not a constant
+- expression */
+- const char *g = "string";
+- ccp = &g + (g ? g-g : 0);
+- /* HPUX 7.0 cc rejects these. */
+- ++ccp;
+- p = (char**) ccp;
+- ccp = (char const *const *) p;
+- { /* SCO 3.2v4 cc rejects this. */
+- char *t;
+- char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+- *t++ = 0;
+- }
+- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+- int x[] = {25, 17};
+- const int *foo = &x[0];
+- ++foo;
+- }
+- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+- typedef const int *iptr;
+- iptr p = 0;
+- ++p;
+- }
+- { /* AIX XL C 1.02.0.0 rejects this saying
+- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+- struct s { int j; const int *ap[3]; };
+- struct s *b; b->j = 5;
+- }
+- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+- const int foo = 10;
+- }
++#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
++make an error
+ #endif
+-
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3632: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:3762: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3635: \$? = $ac_status" >&5
++ echo "$as_me:3765: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3638: \"$ac_try\"") >&5
++ { (eval echo "$as_me:3768: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3641: \$? = $ac_status" >&5
++ echo "$as_me:3771: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_c_const=yes
++ cf_XOPEN_SOURCE_set_ok=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_c_const=no
++cf_XOPEN_SOURCE_set_ok=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:3651: result: $ac_cv_c_const" >&5
+-echo "${ECHO_T}$ac_cv_c_const" >&6
+-if test $ac_cv_c_const = no; then
+-
+-cat >>confdefs.h <<\EOF
+-#define const
+-EOF
++ if test $cf_XOPEN_SOURCE_set_ok = no
++ then
++ { echo "$as_me:3782: WARNING: _XOPEN_SOURCE is lower than requested" >&5
++echo "$as_me: WARNING: _XOPEN_SOURCE is lower than requested" >&2;}
++ fi
++ else
++
++echo "$as_me:3787: checking if we should define _XOPEN_SOURCE" >&5
++echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
++if test "${cf_cv_xopen_source+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3794 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifndef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:3813: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:3816: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:3819: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:3822: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_save="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 3831 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <string.h>
++#include <sys/types.h>
++
++int
++main ()
++{
++
++#ifdef _XOPEN_SOURCE
++make an error
++#endif
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:3850: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:3853: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:3856: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:3859: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xopen_source=no
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_xopen_source=$cf_XOPEN_SOURCE
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS="$cf_save"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:3874: result: $cf_cv_xopen_source" >&5
++echo "${ECHO_T}$cf_cv_xopen_source" >&6
++
++if test "$cf_cv_xopen_source" != no ; then
++
++CFLAGS=`echo "$CFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ ]*\)\?$//g'`
++
++ cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_temp_xopen_source
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
+
+ fi
+
+-echo "$as_me:3661: checking for signal global datatype" >&5
++ fi
++fi
++
++echo "$as_me:3972: checking for signal global datatype" >&5
+ echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
+ if test "${cf_cv_sig_atomic_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+@@ -3670,7 +3981,7 @@
+ "int"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 3673 "configure"
++#line 3984 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -3693,16 +4004,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3696: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:4007: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:3699: \$? = $ac_status" >&5
++ echo "$as_me:4010: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3702: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4013: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:3705: \$? = $ac_status" >&5
++ echo "$as_me:4016: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_sig_atomic_t=$cf_type
+ else
+@@ -3716,473 +4027,535 @@
+
+ fi
+
+-echo "$as_me:3719: result: $cf_cv_sig_atomic_t" >&5
++echo "$as_me:4030: result: $cf_cv_sig_atomic_t" >&5
+ echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
+-test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
++test "$cf_cv_sig_atomic_t" != no &&
++cat >>confdefs.h <<EOF
+ #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
+ EOF
+
+-echo "$as_me:3725: checking if you want to see long compiling messages" >&5
+-echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
+-
+-# Check whether --enable-echo or --disable-echo was given.
+-if test "${enable_echo+set}" = set; then
+- enableval="$enable_echo"
+- test "$enableval" != no && enableval=yes
+- if test "$enableval" != "yes" ; then
+-
+- ECHO_LT='--silent'
+- ECHO_LD='@echo linking $@;'
+- RULE_CC='@echo compiling $<'
+- SHOW_CC='@echo compiling $@'
+- ECHO_CC='@'
+-
+- else
+-
+- ECHO_LT=''
+- ECHO_LD=''
+- RULE_CC=''
+- SHOW_CC=''
+- ECHO_CC=''
++echo "$as_me:4037: checking if you want to use pkg-config" >&5
++echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
+
+- fi
++# Check whether --with-pkg-config or --without-pkg-config was given.
++if test "${with_pkg_config+set}" = set; then
++ withval="$with_pkg_config"
++ cf_pkg_config=$withval
+ else
+- enableval=yes
++ cf_pkg_config=yes
++fi;
++echo "$as_me:4047: result: $cf_pkg_config" >&5
++echo "${ECHO_T}$cf_pkg_config" >&6
+
+- ECHO_LT=''
+- ECHO_LD=''
+- RULE_CC=''
+- SHOW_CC=''
+- ECHO_CC=''
++case $cf_pkg_config in #(vi
++no) #(vi
++ PKG_CONFIG=none
++ ;;
++yes) #(vi
+
+-fi;
+-echo "$as_me:3759: result: $enableval" >&5
+-echo "${ECHO_T}$enableval" >&6
++if test -n "$ac_tool_prefix"; then
++ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
++set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
++echo "$as_me:4059: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ case $PKG_CONFIG in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
++ ;;
++ *)
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ if $as_executable_p "$ac_dir/$ac_word"; then
++ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
++ echo "$as_me:4076: found $ac_dir/$ac_word" >&5
++ break
++fi
++done
+
+-GCC_VERSION=none
+-if test "$GCC" = yes ; then
+- echo "$as_me:3764: checking version of $CC" >&5
+-echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
+- GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+- test -z "$GCC_VERSION" && GCC_VERSION=unknown
+- echo "$as_me:3768: result: $GCC_VERSION" >&5
+-echo "${ECHO_T}$GCC_VERSION" >&6
++ ;;
++esac
+ fi
++PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+-if ( test "$GCC" = yes || test "$GXX" = yes )
+-then
+-echo "$as_me:3774: checking if you want to turn on gcc warnings" >&5
+-echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
++if test -n "$PKG_CONFIG"; then
++ echo "$as_me:4087: result: $PKG_CONFIG" >&5
++echo "${ECHO_T}$PKG_CONFIG" >&6
++else
++ echo "$as_me:4090: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-# Check whether --enable-warnings or --disable-warnings was given.
+-if test "${enable_warnings+set}" = set; then
+- enableval="$enable_warnings"
+- test "$enableval" != yes && enableval=no
+- if test "$enableval" != "no" ; then
+- with_warnings=yes
+- else
+- with_warnings=no
+- fi
++fi
++if test -z "$ac_cv_path_PKG_CONFIG"; then
++ ac_pt_PKG_CONFIG=$PKG_CONFIG
++ # Extract the first word of "pkg-config", so it can be a program name with args.
++set dummy pkg-config; ac_word=$2
++echo "$as_me:4099: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- enableval=no
+- with_warnings=no
++ case $ac_pt_PKG_CONFIG in
++ [\\/]* | ?:[\\/]*)
++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
++ ;;
++ *)
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ if $as_executable_p "$ac_dir/$ac_word"; then
++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
++ echo "$as_me:4116: found $ac_dir/$ac_word" >&5
++ break
++fi
++done
+
+-fi;
+-echo "$as_me:3791: result: $with_warnings" >&5
+-echo "${ECHO_T}$with_warnings" >&6
+-if test "$with_warnings" = "yes"
+-then
++ test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none"
++ ;;
++esac
++fi
++ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+
+-if test "$GCC" = yes
+-then
+-cat > conftest.i <<EOF
+-#ifndef GCC_PRINTF
+-#define GCC_PRINTF 0
+-#endif
+-#ifndef GCC_SCANF
+-#define GCC_SCANF 0
+-#endif
+-#ifndef GCC_NORETURN
+-#define GCC_NORETURN /* nothing */
+-#endif
+-#ifndef GCC_UNUSED
+-#define GCC_UNUSED /* nothing */
+-#endif
+-EOF
+-if test "$GCC" = yes
+-then
+- { echo "$as_me:3814: checking for $CC __attribute__ directives..." >&5
+-echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
+-cat > conftest.$ac_ext <<EOF
+-#line 3817 "${as_me:-configure}"
+-#include "confdefs.h"
+-#include "conftest.h"
+-#include "conftest.i"
+-#if GCC_PRINTF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-#else
+-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
+-#endif
+-#if GCC_SCANF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-#else
+-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
+-#endif
+-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
+-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+-extern void foo(void) GCC_NORETURN;
+-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
+-EOF
+- cf_printf_attribute=no
+- cf_scanf_attribute=no
+- for cf_attribute in scanf printf unused noreturn
+- do
++if test -n "$ac_pt_PKG_CONFIG"; then
++ echo "$as_me:4128: result: $ac_pt_PKG_CONFIG" >&5
++echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
++else
++ echo "$as_me:4131: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++ PKG_CONFIG=$ac_pt_PKG_CONFIG
++else
++ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
++fi
+
+- cf_directive="__attribute__(($cf_attribute))"
+- echo "checking for $CC $cf_directive" 1>&5
++ ;;
++*)
++ PKG_CONFIG=$withval
++ ;;
++esac
+
+- case $cf_attribute in #(vi
+- printf) #(vi
+- cf_printf_attribute=yes
+- cat >conftest.h <<EOF
+-#define GCC_$cf_ATTRIBUTE 1
+-EOF
+- ;;
+- scanf) #(vi
+- cf_scanf_attribute=yes
+- cat >conftest.h <<EOF
+-#define GCC_$cf_ATTRIBUTE 1
+-EOF
+- ;;
+- *) #(vi
+- cat >conftest.h <<EOF
+-#define GCC_$cf_ATTRIBUTE $cf_directive
+-EOF
+- ;;
+- esac
++test -z "$PKG_CONFIG" && PKG_CONFIG=none
++if test "$PKG_CONFIG" != none ; then
+
+- if { (eval echo "$as_me:3866: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:3869: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:3871: result: ... $cf_attribute" >&5
+-echo "${ECHO_T}... $cf_attribute" >&6
+- cat conftest.h >>confdefs.h
+- case $cf_attribute in #(vi
+- printf) #(vi
+- if test "$cf_printf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+-EOF
+- fi
+- ;;
+- scanf) #(vi
+- if test "$cf_scanf_attribute" = no ; then
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) /* nothing */
+-EOF
+- else
+- cat >>confdefs.h <<EOF
+-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+-EOF
+- fi
+- ;;
+- esac
+- fi
+- done
++if test "x$prefix" != xNONE; then
++ cf_path_syntax="$prefix"
+ else
+- fgrep define conftest.i >>confdefs.h
++ cf_path_syntax="$ac_default_prefix"
+ fi
+-rm -rf conftest*
++
++case ".$PKG_CONFIG" in #(vi
++.\$\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
++ ;;
++.\${*prefix}*|.\${*dir}*) #(vi
++ eval PKG_CONFIG="$PKG_CONFIG"
++ case ".$PKG_CONFIG" in #(vi
++ .NONE/*)
++ PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++ esac
++ ;; #(vi
++.no|.NONE/*)
++ PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++*)
++ { { echo "$as_me:4174: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
++echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++esac
++
+ fi
+
+-INTEL_COMPILER=no
++echo "$as_me:4182: checking if you want to see long compiling messages" >&5
++echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
+
+-if test "$GCC" = yes ; then
+- case $host_os in
+- linux*|gnu*)
+- echo "$as_me:3911: checking if this is really Intel C compiler" >&5
+-echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+- cf_save_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -no-gcc"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 3916 "configure"
+-#include "confdefs.h"
++# Check whether --enable-echo or --disable-echo was given.
++if test "${enable_echo+set}" = set; then
++ enableval="$enable_echo"
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
+
+-int
+-main ()
+-{
++ ECHO_LT='--silent'
++ ECHO_LD='@echo linking $@;'
++ RULE_CC='@echo compiling $<'
++ SHOW_CC='@echo compiling $@'
++ ECHO_CC='@'
+
+-#ifdef __INTEL_COMPILER
+-#else
+-make an error
+-#endif
++ else
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:3933: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:3936: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:3939: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:3942: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- INTEL_COMPILER=yes
+-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
+
++ fi
+ else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CFLAGS="$cf_save_CFLAGS"
+- echo "$as_me:3953: result: $INTEL_COMPILER" >&5
+-echo "${ECHO_T}$INTEL_COMPILER" >&6
+- ;;
+- esac
+-fi
++ enableval=yes
+
+-cat > conftest.$ac_ext <<EOF
+-#line 3960 "${as_me:-configure}"
+-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+-EOF
++ ECHO_LT=''
++ ECHO_LD=''
++ RULE_CC=''
++ SHOW_CC=''
++ ECHO_CC=''
+
+-if test "$INTEL_COMPILER" = yes
+-then
+-# The "-wdXXX" options suppress warnings:
+-# remark #1419: external declaration in primary source file
+-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+-# remark #193: zero used for undefined preprocessing identifier
+-# remark #593: variable "curs_sb_left_arrow" was set but never used
+-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+-# remark #869: parameter "tw" was never referenced
+-# remark #981: operands are evaluated in unspecified order
+-# warning #279: controlling expression is constant
++fi;
++echo "$as_me:4216: result: $enableval" >&5
++echo "${ECHO_T}$enableval" >&6
+
+- { echo "$as_me:3977: checking for $CC warning options..." >&5
+-echo "$as_me: checking for $CC warning options..." >&6;}
+- cf_save_CFLAGS="$CFLAGS"
+- EXTRA_CFLAGS="-Wall"
+- for cf_opt in \
+- wd1419 \
+- wd1683 \
+- wd1684 \
+- wd193 \
+- wd593 \
+- wd279 \
+- wd810 \
+- wd869 \
+- wd981
+- do
+- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:3993: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:3996: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:3998: result: ... -$cf_opt" >&5
+-echo "${ECHO_T}... -$cf_opt" >&6
+- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+- fi
+- done
+- CFLAGS="$cf_save_CFLAGS"
+-
+-elif test "$GCC" = yes
+-then
+- { echo "$as_me:4007: checking for $CC warning options..." >&5
+-echo "$as_me: checking for $CC warning options..." >&6;}
+- cf_save_CFLAGS="$CFLAGS"
+- EXTRA_CFLAGS=
+- cf_warn_CONST=""
+- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
+- for cf_opt in W Wall \
+- Wbad-function-cast \
+- Wcast-align \
+- Wcast-qual \
+- Winline \
+- Wmissing-declarations \
+- Wmissing-prototypes \
+- Wnested-externs \
+- Wpointer-arith \
+- Wshadow \
+- Wstrict-prototypes \
+- Wundef $cf_warn_CONST
+- do
+- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+- if { (eval echo "$as_me:4027: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:4030: \$? = $ac_status" >&5
+- (exit $ac_status); }; then
+- test -n "$verbose" && echo "$as_me:4032: result: ... -$cf_opt" >&5
+-echo "${ECHO_T}... -$cf_opt" >&6
+- case $cf_opt in #(vi
+- Wcast-qual) #(vi
+- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
+- ;;
+- Winline) #(vi
+- case $GCC_VERSION in
+- [34].*)
+- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
++echo "$as_me:4219: checking for ncurses wrap-prefix" >&5
++echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
+
+-echo "${as_me:-configure}:4043: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++# Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
++if test "${with_ncurses_wrap_prefix+set}" = set; then
++ withval="$with_ncurses_wrap_prefix"
++ NCURSES_WRAP_PREFIX=$withval
++else
++ NCURSES_WRAP_PREFIX=_nc_
++fi;
++echo "$as_me:4229: result: $NCURSES_WRAP_PREFIX" >&5
++echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+
+- continue;;
+- esac
+- ;;
+- esac
+- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+- fi
+- done
+- CFLAGS="$cf_save_CFLAGS"
+-fi
+-rm -rf conftest*
++echo "$as_me:4232: checking if you want to check for wide-character functions" >&5
++echo $ECHO_N "checking if you want to check for wide-character functions... $ECHO_C" >&6
+
+-fi
+-fi
++# Check whether --enable-widec or --disable-widec was given.
++if test "${enable_widec+set}" = set; then
++ enableval="$enable_widec"
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++ cf_enable_widec=no
++ else
++ cf_enable_widec=yes
++ fi
++else
++ enableval=yes
++ cf_enable_widec=yes
+
+-echo "$as_me:4059: checking if you want to use dmalloc for testing" >&5
+-echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
++fi;
++echo "$as_me:4249: result: $cf_enable_widec" >&5
++echo "${ECHO_T}$cf_enable_widec" >&6
+
+-# Check whether --with-dmalloc or --without-dmalloc was given.
+-if test "${with_dmalloc+set}" = set; then
+- withval="$with_dmalloc"
+- cat >>confdefs.h <<\EOF
+-#define USE_DMALLOC 1
+-EOF
++echo "$as_me:4252: checking for specific curses-directory" >&5
++echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
+
+- : ${with_cflags:=-g}
+- : ${with_no_leaks:=yes}
+- with_dmalloc=yes
++# Check whether --with-curses-dir or --without-curses-dir was given.
++if test "${with_curses_dir+set}" = set; then
++ withval="$with_curses_dir"
++ cf_cv_curses_dir=$withval
+ else
+- with_dmalloc=
++ cf_cv_curses_dir=no
+ fi;
+-echo "$as_me:4075: result: ${with_dmalloc:-no}" >&5
+-echo "${ECHO_T}${with_dmalloc:-no}" >&6
++echo "$as_me:4262: result: $cf_cv_curses_dir" >&5
++echo "${ECHO_T}$cf_cv_curses_dir" >&6
+
+-case .$with_cflags in #(vi
+-.*-g*)
+- case .$CFLAGS in #(vi
+- .*-g*) #(vi
+- ;;
+- *)
++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
++then
+
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
++if test "x$prefix" != xNONE; then
++ cf_path_syntax="$prefix"
++else
++ cf_path_syntax="$ac_default_prefix"
++fi
+
+-for cf_add_cflags in -g
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++case ".$withval" in #(vi
++.\$\(*\)*|.\'*\'*) #(vi
++ ;;
++..|./*|.\\*) #(vi
++ ;;
++.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
++ ;;
++.\${*prefix}*|.\${*dir}*) #(vi
++ eval withval="$withval"
++ case ".$withval" in #(vi
++ .NONE/*)
++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++ esac
++ ;; #(vi
++.no|.NONE/*)
++ withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
++ ;;
++*)
++ { { echo "$as_me:4293: error: expected a pathname, not \"$withval\"" >&5
++echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
++ { (exit 1); exit 1; }; }
++ ;;
++esac
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
++ if test -d "$cf_cv_curses_dir"
++ then
+
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
++if test -n "$cf_cv_curses_dir/include" ; then
++ for cf_add_incdir in $cf_cv_curses_dir/include
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
+ fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++ done
++ fi
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 4326 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int
++main ()
++{
++printf("Hello")
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:4338: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:4341: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:4344: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4347: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_have_incdir=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
+
+-if test -n "$cf_new_cflags" ; then
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
++echo "${as_me:-configure}:4364: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+-if test -n "$cf_new_cppflags" ; then
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
+ fi
+
+-if test -n "$cf_new_extra_cppflags" ; then
++if test -n "$cf_cv_curses_dir/lib" ; then
++ for cf_add_libdir in $cf_cv_curses_dir/lib
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_libdir in $LDFLAGS $LIBS ; do
++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++ cf_have_libdir=yes; break
++ fi
++ done
++ fi
++ if test "$cf_have_libdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++echo "${as_me:-configure}:4398: testing adding $cf_add_libdir to library-path ..." 1>&5
++
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
++ fi
++ done
+ fi
+
+- ;;
+- esac
++ fi
++fi
++
++cf_cv_screen=curses
++
++echo "$as_me:4411: checking for specified curses library type" >&5
++echo $ECHO_N "checking for specified curses library type... $ECHO_C" >&6
++
++# Check whether --with-ncursesw or --without-ncursesw was given.
++if test "${with_ncursesw+set}" = set; then
++ withval="$with_ncursesw"
++ cf_cv_screen=ncursesw
++else
++
++# Check whether --with-ncurses or --without-ncurses was given.
++if test "${with_ncurses+set}" = set; then
++ withval="$with_ncurses"
++ cf_cv_screen=ncurses
++else
++
++# Check whether --with-pdcurses or --without-pdcurses was given.
++if test "${with_pdcurses+set}" = set; then
++ withval="$with_pdcurses"
++ cf_cv_screen=pdcurses
++else
++
++# Check whether --with-curses-colr or --without-curses-colr was given.
++if test "${with_curses_colr+set}" = set; then
++ withval="$with_curses_colr"
++ cf_cv_screen=curses_colr
++else
++
++# Check whether --with-curses-5lib or --without-curses-5lib was given.
++if test "${with_curses_5lib+set}" = set; then
++ withval="$with_curses_5lib"
++ cf_cv_screen=curses_5lib
++fi;
++fi;
++fi;
++fi;
++fi;
++
++echo "$as_me:4448: result: $cf_cv_screen" >&5
++echo "${ECHO_T}$cf_cv_screen" >&6
++
++case $cf_cv_screen in #(vi
++curses|curses_*) #(vi
++
++echo "$as_me:4454: checking for extra include directories" >&5
++echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
++if test "${cf_cv_curses_incdir+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_curses_incdir=no
++case $host_os in #(vi
++hpux10.*) #(vi
++ if test "x$cf_cv_screen" = "xcurses_colr"
++ then
++ test -d /usr/include/curses_colr && \
++ cf_cv_curses_incdir="-I/usr/include/curses_colr"
++ fi
++ ;;
++sunos3*|sunos4*)
++ if test "x$cf_cv_screen" = "xcurses_5lib"
++ then
++ test -d /usr/5lib && \
++ test -d /usr/5include && \
++ cf_cv_curses_incdir="-I/usr/5include"
++ fi
+ ;;
+ esac
+
+-if test "$with_dmalloc" = yes ; then
+- echo "$as_me:4169: checking for dmalloc.h" >&5
+-echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
+-if test "${ac_cv_header_dmalloc_h+set}" = set; then
++fi
++echo "$as_me:4480: result: $cf_cv_curses_incdir" >&5
++echo "${ECHO_T}$cf_cv_curses_incdir" >&6
++test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
++
++echo "$as_me:4484: checking if we have identified curses headers" >&5
++echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
++if test "${cf_cv_ncurses_header+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_ncurses_header=none
++for cf_header in \
++ ncurses.h \
++ curses.h ncurses/ncurses.h ncurses/curses.h
++do
++cat >conftest.$ac_ext <<_ACEOF
++#line 4496 "configure"
++#include "confdefs.h"
++#include <${cf_header}>
++int
++main ()
++{
++initscr(); tgoto("?", 0,0)
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:4508: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:4511: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:4514: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4517: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_ncurses_header=$cf_header; break
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
++fi
++echo "$as_me:4528: result: $cf_cv_ncurses_header" >&5
++echo "${ECHO_T}$cf_cv_ncurses_header" >&6
++
++if test "$cf_cv_ncurses_header" = none ; then
++ { { echo "$as_me:4532: error: No curses header-files found" >&5
++echo "$as_me: error: No curses header-files found" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
++
++for ac_header in $cf_cv_ncurses_header
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:4542: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4175 "configure"
++#line 4548 "configure"
+ #include "confdefs.h"
+-#include <dmalloc.h>
++#include <$ac_header>
+ _ACEOF
+-if { (eval echo "$as_me:4179: \"$ac_cpp conftest.$ac_ext\"") >&5
++if { (eval echo "$as_me:4552: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+- echo "$as_me:4185: \$? = $ac_status" >&5
++ echo "$as_me:4558: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+@@ -4193,238 +4566,255 @@
+ ac_cpp_err=yes
+ fi
+ if test -z "$ac_cpp_err"; then
+- ac_cv_header_dmalloc_h=yes
++ eval "$as_ac_Header=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+- ac_cv_header_dmalloc_h=no
++ eval "$as_ac_Header=no"
+ fi
+ rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:4204: result: $ac_cv_header_dmalloc_h" >&5
+-echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
+-if test $ac_cv_header_dmalloc_h = yes; then
++echo "$as_me:4577: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
+
+-echo "$as_me:4208: checking for dmalloc_debug in -ldmalloc" >&5
+-echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
+-if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
++fi
++done
++
++echo "$as_me:4587: checking for terminfo header" >&5
++echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
++if test "${cf_cv_term_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-ldmalloc $LIBS"
++
++case ${cf_cv_ncurses_header} in #(vi
++*/ncurses.h|*/ncursesw.h) #(vi
++ cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
++ ;;
++*)
++ cf_term_header=term.h
++ ;;
++esac
++
++for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
++do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4216 "configure"
++#line 4605 "configure"
+ #include "confdefs.h"
++#include <stdio.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_test>
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char dmalloc_debug ();
+ int
+ main ()
+ {
+-dmalloc_debug ();
++int x = auto_left_margin
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4235: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:4620: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:4238: \$? = $ac_status" >&5
++ echo "$as_me:4623: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4241: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:4626: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4244: \$? = $ac_status" >&5
++ echo "$as_me:4629: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_dmalloc_dmalloc_debug=yes
++
++ cf_cv_term_header="$cf_test"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_dmalloc_dmalloc_debug=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:4255: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+-echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
+-if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
+- cat >>confdefs.h <<EOF
+-#define HAVE_LIBDMALLOC 1
+-EOF
+
+- LIBS="-ldmalloc $LIBS"
++ cf_cv_term_header=unknown
+
+ fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ test "$cf_cv_term_header" != unknown && break
++done
+
+ fi
++echo "$as_me:4645: result: $cf_cv_term_header" >&5
++echo "${ECHO_T}$cf_cv_term_header" >&6
+
+-fi
++# Set definitions to allow ifdef'ing to accommodate subdirectories
+
+-echo "$as_me:4270: checking if you want to use dbmalloc for testing" >&5
+-echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
++case $cf_cv_term_header in # (vi
++*term.h)
+
+-# Check whether --with-dbmalloc or --without-dbmalloc was given.
+-if test "${with_dbmalloc+set}" = set; then
+- withval="$with_dbmalloc"
+- cat >>confdefs.h <<\EOF
+-#define USE_DBMALLOC 1
++cat >>confdefs.h <<\EOF
++#define HAVE_TERM_H 1
+ EOF
+
+- : ${with_cflags:=-g}
+- : ${with_no_leaks:=yes}
+- with_dbmalloc=yes
+-else
+- with_dbmalloc=
+-fi;
+-echo "$as_me:4286: result: ${with_dbmalloc:-no}" >&5
+-echo "${ECHO_T}${with_dbmalloc:-no}" >&6
++ ;;
++esac
+
+-case .$with_cflags in #(vi
+-.*-g*)
+- case .$CFLAGS in #(vi
+- .*-g*) #(vi
+- ;;
+- *)
++case $cf_cv_term_header in # (vi
++ncurses/term.h) #(vi
+
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_TERM_H 1
++EOF
+
+-for cf_add_cflags in -g
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++ ;;
++ncursesw/term.h)
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_TERM_H 1
++EOF
+
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+ ;;
+ esac
+-done
+
+-if test -n "$cf_new_cflags" ; then
++echo "$as_me:4677: checking for ncurses version" >&5
++echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
++if test "${cf_cv_ncurses_version+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ if test "$cross_compiling" = yes; then
+
+-if test -n "$cf_new_cppflags" ; then
++ # This will not work if the preprocessor splits the line after the
++ # Autoconf token. The 'unproto' program does that.
++ cat > conftest.$ac_ext <<EOF
++#include <${cf_cv_ncurses_header:-curses.h}>
++#undef Autoconf
++#ifdef NCURSES_VERSION
++Autoconf NCURSES_VERSION
++#else
++#ifdef __NCURSES_H
++Autoconf "old"
++#endif
++;
++#endif
++EOF
++ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
++ { (eval echo "$as_me:4703: \"$cf_try\"") >&5
++ (eval $cf_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4706: \$? = $ac_status" >&5
++ (exit $ac_status); }
++ if test -f conftest.out ; then
++ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
++ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
++ rm -f conftest.out
++ fi
+
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 4716 "configure"
++#include "confdefs.h"
+
+-if test -n "$cf_new_extra_cppflags" ; then
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <stdio.h>
++int main()
++{
++ FILE *fp = fopen("$cf_tempfile", "w");
++#ifdef NCURSES_VERSION
++# ifdef NCURSES_VERSION_PATCH
++ fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
++# else
++ fprintf(fp, "%s\n", NCURSES_VERSION);
++# endif
++#else
++# ifdef __NCURSES_H
++ fprintf(fp, "old\n");
++# else
++ make an error
++# endif
++#endif
++ ${cf_cv_main_return:-return}(0);
++}
++_ACEOF
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:4741: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:4744: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:4746: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4749: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
+
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++ cf_cv_ncurses_version=`cat $cf_tempfile`
++else
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
++ rm -f $cf_tempfile
+
+- ;;
+- esac
+- ;;
+-esac
++fi
++echo "$as_me:4763: result: $cf_cv_ncurses_version" >&5
++echo "${ECHO_T}$cf_cv_ncurses_version" >&6
++test "$cf_cv_ncurses_version" = no ||
++cat >>confdefs.h <<\EOF
++#define NCURSES 1
++EOF
+
+-if test "$with_dbmalloc" = yes ; then
+- echo "$as_me:4380: checking for dbmalloc.h" >&5
+-echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
+-if test "${ac_cv_header_dbmalloc_h+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 4386 "configure"
++echo "$as_me:4770: checking if we have identified curses libraries" >&5
++echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line 4773 "configure"
+ #include "confdefs.h"
+-#include <dbmalloc.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
++int
++main ()
++{
++initscr(); tgoto("?", 0,0)
++ ;
++ return 0;
++}
+ _ACEOF
+-if { (eval echo "$as_me:4390: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:4785: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:4396: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- ac_cv_header_dbmalloc_h=yes
++ echo "$as_me:4788: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:4791: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4794: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- ac_cv_header_dbmalloc_h=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
++cat conftest.$ac_ext >&5
++cf_result=no
+ fi
+-echo "$as_me:4415: result: $ac_cv_header_dbmalloc_h" >&5
+-echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
+-if test $ac_cv_header_dbmalloc_h = yes; then
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++echo "$as_me:4803: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
+
+-echo "$as_me:4419: checking for debug_malloc in -ldbmalloc" >&5
+-echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
+-if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
++if test "$cf_result" = no ; then
++case $host_os in #(vi
++freebsd*) #(vi
++ echo "$as_me:4809: checking for tgoto in -lmytinfo" >&5
++echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
++if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-ldbmalloc $LIBS"
++LIBS="-lmytinfo $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4427 "configure"
++#line 4817 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -4433,321 +4823,231 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char debug_malloc ();
++char tgoto ();
+ int
+ main ()
+ {
+-debug_malloc ();
++tgoto ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
++if { (eval echo "$as_me:4836: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4449: \$? = $ac_status" >&5
++ echo "$as_me:4839: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:4452: \"$ac_try\"") >&5
++ { (eval echo "$as_me:4842: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4455: \$? = $ac_status" >&5
++ echo "$as_me:4845: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_dbmalloc_debug_malloc=yes
++ ac_cv_lib_mytinfo_tgoto=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_dbmalloc_debug_malloc=no
++ac_cv_lib_mytinfo_tgoto=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:4466: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+-echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
+-if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
+- cat >>confdefs.h <<EOF
+-#define HAVE_LIBDBMALLOC 1
+-EOF
++echo "$as_me:4856: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
++if test $ac_cv_lib_mytinfo_tgoto = yes; then
+
+- LIBS="-ldbmalloc $LIBS"
++cf_add_libs="-lmytinfo"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+ fi
+
+-fi
++ ;;
++hpux10.*) #(vi
++ # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
++ # next (1998), and xcurses "newer" (2000). There is no header file for
++ # Hcurses; the subdirectory curses_colr has the headers (curses.h and
++ # term.h) for cur_colr
++ if test "x$cf_cv_screen" = "xcurses_colr"
++ then
++ echo "$as_me:4886: checking for initscr in -lcur_colr" >&5
++echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
++if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lcur_colr $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 4894 "configure"
++#include "confdefs.h"
+
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
++int
++main ()
++{
++initscr ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:4913: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:4916: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:4919: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:4922: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_cur_colr_initscr=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_lib_cur_colr_initscr=no
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:4933: result: $ac_cv_lib_cur_colr_initscr" >&5
++echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
++if test $ac_cv_lib_cur_colr_initscr = yes; then
+
+-echo "$as_me:4481: checking if you want to use valgrind for testing" >&5
+-echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
+-
+-# Check whether --with-valgrind or --without-valgrind was given.
+-if test "${with_valgrind+set}" = set; then
+- withval="$with_valgrind"
+- cat >>confdefs.h <<\EOF
+-#define USE_VALGRIND 1
+-EOF
+-
+- : ${with_cflags:=-g}
+- : ${with_no_leaks:=yes}
+- with_valgrind=yes
+-else
+- with_valgrind=
+-fi;
+-echo "$as_me:4497: result: ${with_valgrind:-no}" >&5
+-echo "${ECHO_T}${with_valgrind:-no}" >&6
+-
+-case .$with_cflags in #(vi
+-.*-g*)
+- case .$CFLAGS in #(vi
+- .*-g*) #(vi
+- ;;
+- *)
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in -g
++cf_add_libs="-lcur_colr"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
+ do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
+ done
++LIBS="$cf_add_libs"
+
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+-fi
+-
+- ;;
+- esac
+- ;;
+-esac
+-
+-echo "$as_me:4590: checking if you want to perform memory-leak testing" >&5
+-echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
+-
+-# Check whether --enable-leaks or --disable-leaks was given.
+-if test "${enable_leaks+set}" = set; then
+- enableval="$enable_leaks"
+- if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
+-else
+- : ${with_no_leaks:=no}
+-fi;
+-echo "$as_me:4600: result: $with_no_leaks" >&5
+-echo "${ECHO_T}$with_no_leaks" >&6
+-
+-if test "$with_no_leaks" = yes ; then
+- cat >>confdefs.h <<\EOF
+-#define NO_LEAKS 1
+-EOF
+-
+- cat >>confdefs.h <<\EOF
+-#define YY_NO_LEAKS 1
+-EOF
+-
+-fi
+-
+-echo "$as_me:4614: checking for specific curses-directory" >&5
+-echo $ECHO_N "checking for specific curses-directory... $ECHO_C" >&6
++ ac_cv_func_initscr=yes
+
+-# Check whether --with-curses-dir or --without-curses-dir was given.
+-if test "${with_curses_dir+set}" = set; then
+- withval="$with_curses_dir"
+- cf_cv_curses_dir=$withval
+ else
+- cf_cv_curses_dir=no
+-fi;
+-echo "$as_me:4624: result: $cf_cv_curses_dir" >&5
+-echo "${ECHO_T}$cf_cv_curses_dir" >&6
+
+-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+-then
+-
+-if test "x$prefix" != xNONE; then
+- cf_path_syntax="$prefix"
++ echo "$as_me:4957: checking for initscr in -lHcurses" >&5
++echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
++if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cf_path_syntax="$ac_default_prefix"
+-fi
+-
+-case ".$withval" in #(vi
+-.\$\(*\)*|.\'*\'*) #(vi
+- ;;
+-..|./*|.\\*) #(vi
+- ;;
+-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+- ;;
+-.\${*prefix}*) #(vi
+- eval withval="$withval"
+- case ".$withval" in #(vi
+- .NONE/*)
+- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+- ;;
+- esac
+- ;; #(vi
+-.no|.NONE/*)
+- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+- ;;
+-*)
+- { { echo "$as_me:4655: error: expected a pathname, not \"$withval\"" >&5
+-echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
+- { (exit 1); exit 1; }; }
+- ;;
+-esac
+-
+- if test -d "$cf_cv_curses_dir"
+- then
+-
+-if test -n "$cf_cv_curses_dir/include" ; then
+- for cf_add_incdir in $cf_cv_curses_dir/include
+- do
+- while test $cf_add_incdir != /usr/include
+- do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 4688 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lHcurses $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 4965 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
+ int
+ main ()
+ {
+-printf("Hello")
++initscr ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4700: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:4984: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4703: \$? = $ac_status" >&5
++ echo "$as_me:4987: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4706: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:4990: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4709: \$? = $ac_status" >&5
++ echo "$as_me:4993: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ ac_cv_lib_Hcurses_initscr=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
++ac_cv_lib_Hcurses_initscr=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+-
+-echo "${as_me:-configure}:4726: testing adding $cf_add_incdir to include-path ..." 1>&5
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:5004: result: $ac_cv_lib_Hcurses_initscr" >&5
++echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
++if test $ac_cv_lib_Hcurses_initscr = yes; then
+
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+
+- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+- test "$cf_top_incdir" = "$cf_add_incdir" && break
+- cf_add_incdir="$cf_top_incdir"
+- else
+- break
++cf_add_libs="-lHcurses"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
+ fi
+- fi
+ done
+- done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
++ ac_cv_func_initscr=yes
++
+ fi
+
+-if test -n "$cf_cv_curses_dir/lib" ; then
+- for cf_add_libdir in $cf_cv_curses_dir/lib
+- do
+- if test $cf_add_libdir = /usr/lib ; then
+- :
+- elif test -d $cf_add_libdir
+- then
+- cf_have_libdir=no
+- if test -n "$LDFLAGS$LIBS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
++fi
++
++ fi
++ ;;
++linux*)
++ case `arch 2>/dev/null` in
++ x86_64)
++ if test -d /lib64
++ then
++
++if test -n "/lib64" ; then
++ for cf_add_libdir in /lib64
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
+ for cf_test_libdir in $LDFLAGS $LIBS ; do
+ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+ cf_have_libdir=yes; break
+@@ -4757,7 +5057,7 @@
+ if test "$cf_have_libdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-echo "${as_me:-configure}:4760: testing adding $cf_add_libdir to library-path ..." 1>&5
++echo "${as_me:-configure}:5060: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+ fi
+@@ -4765,370 +5065,354 @@
+ done
+ fi
+
+- fi
+-fi
++ else
+
+-# Check whether --with-5lib or --without-5lib was given.
+-if test "${with_5lib+set}" = set; then
+- withval="$with_5lib"
+- LIBS="-L/usr/5lib $LIBS"
+- CPPFLAGS="$CPPFLAGS -I/usr/5include"
+-fi;
++if test -n "/lib" ; then
++ for cf_add_libdir in /lib
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_libdir in $LDFLAGS $LIBS ; do
++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++ cf_have_libdir=yes; break
++ fi
++ done
++ fi
++ if test "$cf_have_libdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-# Check whether --with-ncursesw or --without-ncursesw was given.
+-if test "${with_ncursesw+set}" = set; then
+- withval="$with_ncursesw"
+- cf_cv_screen=ncursesw
+-else
++echo "${as_me:-configure}:5089: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+-# Check whether --with-ncurses or --without-ncurses was given.
+-if test "${with_ncurses+set}" = set; then
+- withval="$with_ncurses"
+- cf_cv_screen=ncurses
+-else
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
++ fi
++ done
++fi
+
+-# Check whether --with-pdcurses or --without-pdcurses was given.
+-if test "${with_pdcurses+set}" = set; then
+- withval="$with_pdcurses"
+- cf_cv_screen=pdcurses
+-fi;
+-fi;
+-fi;
++ fi
++ ;;
++ *)
+
+-case $cf_cv_screen in
+-curses)
++if test -n "/lib" ; then
++ for cf_add_libdir in /lib
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_libdir in $LDFLAGS $LIBS ; do
++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++ cf_have_libdir=yes; break
++ fi
++ done
++ fi
++ if test "$cf_have_libdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+
+-echo "$as_me:4801: checking for extra include directories" >&5
+-echo $ECHO_N "checking for extra include directories... $ECHO_C" >&6
+-if test "${cf_cv_curses_incdir+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++echo "${as_me:-configure}:5120: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+-cf_cv_curses_incdir=no
+-case $host_os in #(vi
+-hpux10.*) #(vi
+- test -d /usr/include/curses_colr && \
+- cf_cv_curses_incdir="-I/usr/include/curses_colr"
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
++ fi
++ done
++fi
++
++ ;;
++ esac
+ ;;
+ sunos3*|sunos4*)
+- test -d /usr/5lib && \
+- test -d /usr/5include && \
+- cf_cv_curses_incdir="-I/usr/5include"
+- ;;
+-esac
++ if test "x$cf_cv_screen" = "xcurses_5lib"
++ then
++ if test -d /usr/5lib ; then
++
++if test -n "/usr/5lib" ; then
++ for cf_add_libdir in /usr/5lib
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_libdir in $LDFLAGS $LIBS ; do
++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++ cf_have_libdir=yes; break
++ fi
++ done
++ fi
++ if test "$cf_have_libdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
++
++echo "${as_me:-configure}:5155: testing adding $cf_add_libdir to library-path ..." 1>&5
+
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
++ fi
++ done
+ fi
+-echo "$as_me:4821: result: $cf_cv_curses_incdir" >&5
+-echo "${ECHO_T}$cf_cv_curses_incdir" >&6
+-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
+
+-echo "$as_me:4825: checking if we have identified curses headers" >&5
+-echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_header+set}" = set; then
++cf_add_libs="-lcurses -ltermcap"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ fi
++ fi
++ ac_cv_func_initscr=yes
++ ;;
++esac
++
++if test ".$ac_cv_func_initscr" != .yes ; then
++ cf_save_LIBS="$LIBS"
++
++ if test ".${cf_cv_ncurses_version:-no}" != .no
++ then
++ cf_check_list="ncurses curses cursesX"
++ else
++ cf_check_list="cursesX curses ncurses"
++ fi
++
++ # Check for library containing tgoto. Do this before curses library
++ # because it may be needed to link the test-case for initscr.
++ if test "x$cf_term_lib" = x
++ then
++ echo "$as_me:5199: checking for tgoto" >&5
++echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
++if test "${ac_cv_func_tgoto+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
+-cf_cv_ncurses_header=none
+-for cf_header in \
+- curses.h \
+- ncurses.h ncurses/curses.h ncurses/ncurses.h
+-do
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 4837 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 5205 "configure"
+ #include "confdefs.h"
+-#include <${cf_header}>
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char tgoto (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto ();
++char (*f) ();
++
+ int
+ main ()
+ {
+-initscr(); tgoto("?", 0,0)
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_tgoto) || defined (__stub___tgoto)
++choke me
++#else
++f = tgoto; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4849: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:5236: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4852: \$? = $ac_status" >&5
++ echo "$as_me:5239: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4855: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:5242: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4858: \$? = $ac_status" >&5
++ echo "$as_me:5245: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_header=$cf_header; break
++ ac_cv_func_tgoto=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++ac_cv_func_tgoto=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-done
+-
+-fi
+-echo "$as_me:4869: result: $cf_cv_ncurses_header" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+-
+-if test "$cf_cv_ncurses_header" = none ; then
+- { { echo "$as_me:4873: error: No curses header-files found" >&5
+-echo "$as_me: error: No curses header-files found" >&2;}
+- { (exit 1); exit 1; }; }
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
++echo "$as_me:5255: result: $ac_cv_func_tgoto" >&5
++echo "${ECHO_T}$ac_cv_func_tgoto" >&6
++if test $ac_cv_func_tgoto = yes; then
++ cf_term_lib=predefined
++else
+
+-# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
+-
+-for ac_header in $cf_cv_ncurses_header
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:4883: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
++ for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
++ do
++ as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
++echo "$as_me:5264: checking for tgoto in -l$cf_term_lib" >&5
++echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 4889 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-l$cf_term_lib $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 5272 "configure"
+ #include "confdefs.h"
+-#include <$ac_header>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto ();
++int
++main ()
++{
++tgoto ();
++ ;
++ return 0;
++}
+ _ACEOF
+-if { (eval echo "$as_me:4893: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:5291: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:4899: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- eval "$as_ac_Header=yes"
++ echo "$as_me:5294: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:5297: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:5300: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ eval "$as_ac_Lib=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- eval "$as_ac_Header=no"
++cat conftest.$ac_ext >&5
++eval "$as_ac_Lib=no"
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:5311: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
++if test `eval echo '${'$as_ac_Lib'}'` = yes; then
++ break
+ fi
+-echo "$as_me:4918: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-EOF
++
++ done
+
+ fi
+-done
+
+-echo "$as_me:4928: checking for terminfo header" >&5
+-echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+-if test "${cf_cv_term_header+set}" = set; then
++ fi
++
++ # Check for library containing initscr
++ test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
++ if test "x$cf_curs_lib" = x
++ then
++ for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
++ do
++ as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh`
++echo "$as_me:5330: checking for initscr in -l$cf_curs_lib" >&5
++echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
+-case ${cf_cv_ncurses_header} in #(vi
+-*/ncurses.h|*/ncursesw.h) #(vi
+- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
+- ;;
+-*)
+- cf_term_header=term.h
+- ;;
+-esac
+-
+-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+-do
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-l$cf_curs_lib $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 4946 "configure"
++#line 5338 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#include <$cf_test>
+
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
+ int
+ main ()
+ {
+-int x = auto_left_margin
++initscr ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:4961: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:5357: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:4964: \$? = $ac_status" >&5
++ echo "$as_me:5360: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:4967: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:5363: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:4970: \$? = $ac_status" >&5
++ echo "$as_me:5366: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- cf_cv_term_header="$cf_test"
++ eval "$as_ac_Lib=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-
+- cf_cv_term_header=unknown
+-
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- test "$cf_cv_term_header" != unknown && break
+-done
+-
++eval "$as_ac_Lib=no"
+ fi
+-echo "$as_me:4986: result: $cf_cv_term_header" >&5
+-echo "${ECHO_T}$cf_cv_term_header" >&6
+-
+-# Set definitions to allow ifdef'ing to accommodate subdirectories
+-
+-case $cf_cv_term_header in # (vi
+-*term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_TERM_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-case $cf_cv_term_header in # (vi
+-ncurses/term.h) #(vi
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_TERM_H 1
+-EOF
+-
+- ;;
+-ncursesw/term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSESW_TERM_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-echo "$as_me:5015: checking for ncurses version" >&5
+-echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_version+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+- cf_cv_ncurses_version=no
+- cf_tempfile=out$$
+- rm -f $cf_tempfile
+- if test "$cross_compiling" = yes; then
+-
+- # This will not work if the preprocessor splits the line after the
+- # Autoconf token. The 'unproto' program does that.
+- cat > conftest.$ac_ext <<EOF
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#undef Autoconf
+-#ifdef NCURSES_VERSION
+-Autoconf NCURSES_VERSION
+-#else
+-#ifdef __NCURSES_H
+-Autoconf "old"
+-#endif
+-;
+-#endif
+-EOF
+- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+- { (eval echo "$as_me:5041: \"$cf_try\"") >&5
+- (eval $cf_try) 2>&5
+- ac_status=$?
+- echo "$as_me:5044: \$? = $ac_status" >&5
+- (exit $ac_status); }
+- if test -f conftest.out ; then
+- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
+- rm -f conftest.out
+- fi
+-
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 5054 "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
+- ${cf_cv_main_return:-return}(0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:5079: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:5082: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:5084: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:5087: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+-
+- cf_cv_ncurses_version=`cat $cf_tempfile`
+-else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:5377: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
++if test `eval echo '${'$as_ac_Lib'}'` = yes; then
++ break
+ fi
+- rm -f $cf_tempfile
+
+-fi
+-echo "$as_me:5101: result: $cf_cv_ncurses_version" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+-#define NCURSES 1
+-EOF
++ done
++ fi
++ test $cf_curs_lib = unknown && { { echo "$as_me:5385: error: no curses library found" >&5
++echo "$as_me: error: no curses library found" >&2;}
++ { (exit 1); exit 1; }; }
+
+-echo "$as_me:5107: checking if we have identified curses libraries" >&5
+-echo $ECHO_N "checking if we have identified curses libraries... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5110 "configure"
++ LIBS="-l$cf_curs_lib $cf_save_LIBS"
++ if test "$cf_term_lib" = unknown ; then
++ echo "$as_me:5391: checking if we can link with $cf_curs_lib library" >&5
++echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 5394 "configure"
+ #include "confdefs.h"
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-initscr(); tgoto("?", 0,0)
++initscr()
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5122: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5406: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5125: \$? = $ac_status" >&5
++ echo "$as_me:5409: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5128: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5412: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5131: \$? = $ac_status" >&5
++ echo "$as_me:5415: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_result=yes
+ else
+@@ -5137,1902 +5421,1770 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-echo "$as_me:5140: result: $cf_result" >&5
++ echo "$as_me:5424: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
+-
+-if test "$cf_result" = no ; then
+-case $host_os in #(vi
+-freebsd*) #(vi
+- echo "$as_me:5146: checking for tgoto in -lmytinfo" >&5
+-echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+-if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmytinfo $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5154 "configure"
++ test $cf_result = no && { { echo "$as_me:5426: error: Cannot link curses library" >&5
++echo "$as_me: error: Cannot link curses library" >&2;}
++ { (exit 1); exit 1; }; }
++ elif test "$cf_curs_lib" = "$cf_term_lib" ; then
++ :
++ elif test "$cf_term_lib" != predefined ; then
++ echo "$as_me:5432: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
++echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 5435 "configure"
+ #include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char tgoto ();
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-tgoto ();
++initscr(); tgoto((char *)0, 0, 0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5173: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5447: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5176: \$? = $ac_status" >&5
++ echo "$as_me:5450: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5179: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5453: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5182: \$? = $ac_status" >&5
++ echo "$as_me:5456: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_mytinfo_tgoto=yes
++ cf_result=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_mytinfo_tgoto=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:5193: result: $ac_cv_lib_mytinfo_tgoto" >&5
+-echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+-if test $ac_cv_lib_mytinfo_tgoto = yes; then
+- LIBS="-lmytinfo $LIBS"
+-fi
+
+- ;;
+-hpux10.*) #(vi
+- echo "$as_me:5201: checking for initscr in -lcur_colr" >&5
+-echo $ECHO_N "checking for initscr in -lcur_colr... $ECHO_C" >&6
+-if test "${ac_cv_lib_cur_colr_initscr+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lcur_colr $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5209 "configure"
++ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 5465 "configure"
+ #include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-initscr ();
++initscr()
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5228: \"$ac_link\"") >&5
++if { (eval echo "$as_me:5477: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:5231: \$? = $ac_status" >&5
++ echo "$as_me:5480: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5234: \"$ac_try\"") >&5
++ { (eval echo "$as_me:5483: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5237: \$? = $ac_status" >&5
++ echo "$as_me:5486: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_cur_colr_initscr=yes
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_cur_colr_initscr=no
++cf_result=error
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++
+ fi
+-echo "$as_me:5248: result: $ac_cv_lib_cur_colr_initscr" >&5
+-echo "${ECHO_T}$ac_cv_lib_cur_colr_initscr" >&6
+-if test $ac_cv_lib_cur_colr_initscr = yes; then
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ echo "$as_me:5498: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ fi
++fi
++fi
++
++ ;;
++ncurses) #(vi
+
+- LIBS="-lcur_colr $LIBS"
+- ac_cv_func_initscr=yes
++cf_ncuconfig_root=ncurses
++
++echo "Looking for ${cf_ncuconfig_root}-config"
+
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:5516: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$NCURSES_CONFIG"; then
++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
+ else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
++echo "$as_me:5531: found $ac_dir/$ac_word" >&5
++break
++done
+
+- echo "$as_me:5257: checking for initscr in -lHcurses" >&5
+-echo $ECHO_N "checking for initscr in -lHcurses... $ECHO_C" >&6
+-if test "${ac_cv_lib_Hcurses_initscr+set}" = set; then
++fi
++fi
++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
++if test -n "$NCURSES_CONFIG"; then
++ echo "$as_me:5539: result: $NCURSES_CONFIG" >&5
++echo "${ECHO_T}$NCURSES_CONFIG" >&6
++else
++ echo "$as_me:5542: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$NCURSES_CONFIG" && break
++ done
++fi
++if test -z "$NCURSES_CONFIG"; then
++ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:5555: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lHcurses $LIBS"
++ if test -n "$ac_ct_NCURSES_CONFIG"; then
++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
++echo "$as_me:5570: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
++if test -n "$ac_ct_NCURSES_CONFIG"; then
++ echo "$as_me:5578: result: $ac_ct_NCURSES_CONFIG" >&5
++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
++else
++ echo "$as_me:5581: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++ test -n "$ac_ct_NCURSES_CONFIG" && break
++done
++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
++
++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
++fi
++
++if test "$NCURSES_CONFIG" != none ; then
++
++CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
++
++cf_add_libs="`$NCURSES_CONFIG --libs`"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++# even with config script, some packages use no-override for curses.h
++
++echo "$as_me:5614: checking if we have identified curses headers" >&5
++echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
++if test "${cf_cv_ncurses_header+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_cv_ncurses_header=none
++for cf_header in \
++ ncurses/ncurses.h \
++ ncurses/curses.h \
++ ncurses.h \
++ curses.h
++do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5265 "configure"
++#line 5628 "configure"
+ #include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
++#include <${cf_header}>
+ int
+ main ()
+ {
+-initscr ();
++initscr(); tgoto("?", 0,0)
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5284: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:5640: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5287: \$? = $ac_status" >&5
++ echo "$as_me:5643: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5290: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:5646: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5293: \$? = $ac_status" >&5
++ echo "$as_me:5649: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_Hcurses_initscr=yes
++ cf_cv_ncurses_header=$cf_header; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_Hcurses_initscr=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:5304: result: $ac_cv_lib_Hcurses_initscr" >&5
+-echo "${ECHO_T}$ac_cv_lib_Hcurses_initscr" >&6
+-if test $ac_cv_lib_Hcurses_initscr = yes; then
+-
+- # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+- LIBS="-lHcurses $LIBS"
+- CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
+- ac_cv_func_initscr=yes
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
+
+ fi
++echo "$as_me:5660: result: $cf_cv_ncurses_header" >&5
++echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+
++if test "$cf_cv_ncurses_header" = none ; then
++ { { echo "$as_me:5664: error: No curses header-files found" >&5
++echo "$as_me: error: No curses header-files found" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+
+- ;;
+-linux*)
+- case `arch 2>/dev/null` in
+- x86_64)
+- if test -d /lib64
+- then
+-
+-if test -n "/lib64" ; then
+- for cf_add_libdir in /lib64
+- do
+- if test $cf_add_libdir = /usr/lib ; then
+- :
+- elif test -d $cf_add_libdir
+- then
+- cf_have_libdir=no
+- if test -n "$LDFLAGS$LIBS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_libdir in $LDFLAGS $LIBS ; do
+- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+- cf_have_libdir=yes; break
+- fi
+- done
+- fi
+- if test "$cf_have_libdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+-
+-echo "${as_me:-configure}:5343: testing adding $cf_add_libdir to library-path ..." 1>&5
++# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
+
+- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+- fi
+- fi
+- done
++for ac_header in $cf_cv_ncurses_header
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:5674: 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 5680 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:5684: \"$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:5690: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
+ fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:5709: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
+
+- else
++fi
++done
+
+-if test -n "/lib" ; then
+- for cf_add_libdir in /lib
+- do
+- if test $cf_add_libdir = /usr/lib ; then
+- :
+- elif test -d $cf_add_libdir
+- then
+- cf_have_libdir=no
+- if test -n "$LDFLAGS$LIBS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_libdir in $LDFLAGS $LIBS ; do
+- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+- cf_have_libdir=yes; break
+- fi
+- done
+- fi
+- if test "$cf_have_libdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
++cat >>confdefs.h <<\EOF
++#define NCURSES 1
++EOF
+
+-echo "${as_me:-configure}:5372: testing adding $cf_add_libdir to library-path ..." 1>&5
++cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+- fi
+- fi
+- done
+-fi
++cat >>confdefs.h <<EOF
++#define $cf_nculib_ROOT 1
++EOF
+
+- fi
+- ;;
+- *)
++cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+
+-if test -n "/lib" ; then
+- for cf_add_libdir in /lib
+- do
+- if test $cf_add_libdir = /usr/lib ; then
+- :
+- elif test -d $cf_add_libdir
+- then
+- cf_have_libdir=no
+- if test -n "$LDFLAGS$LIBS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_libdir in $LDFLAGS $LIBS ; do
+- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+- cf_have_libdir=yes; break
+- fi
+- done
+- fi
+- if test "$cf_have_libdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
++else
+
+-echo "${as_me:-configure}:5403: testing adding $cf_add_libdir to library-path ..." 1>&5
++cf_ncuhdr_root=ncurses
+
+- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+- fi
+- fi
+- done
+-fi
++test -n "$cf_cv_curses_dir" && \
++test "$cf_cv_curses_dir" != "no" && { \
+
+- ;;
+- esac
+- ;;
+-sunos3*|sunos4*)
+- if test -d /usr/5lib ; then
+-
+-if test -n "/usr/5lib" ; then
+- for cf_add_libdir in /usr/5lib
++if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
++ for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
+ do
+- if test $cf_add_libdir = /usr/lib ; then
+- :
+- elif test -d $cf_add_libdir
+- then
+- cf_have_libdir=no
+- if test -n "$LDFLAGS$LIBS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_libdir in $LDFLAGS $LIBS ; do
+- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+- cf_have_libdir=yes; break
+- fi
+- done
+- fi
+- if test "$cf_have_libdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+-
+-echo "${as_me:-configure}:5436: testing adding $cf_add_libdir to library-path ..." 1>&5
+-
+- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+- fi
+- fi
+- done
+-fi
+-
+- LIBS="-lcurses -ltermcap $LIBS"
+- fi
+- ac_cv_func_initscr=yes
+- ;;
+-esac
+-
+-if test ".$ac_cv_func_initscr" != .yes ; then
+- cf_save_LIBS="$LIBS"
+- cf_term_lib=""
+- cf_curs_lib=""
+-
+- if test ".${cf_cv_ncurses_version:-no}" != .no
+- then
+- cf_check_list="ncurses curses cursesX"
+- else
+- cf_check_list="cursesX curses ncurses"
+- fi
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
++ fi
+
+- # Check for library containing tgoto. Do this before curses library
+- # because it may be needed to link the test-case for initscr.
+- echo "$as_me:5464: checking for tgoto" >&5
+-echo $ECHO_N "checking for tgoto... $ECHO_C" >&6
+-if test "${ac_cv_func_tgoto+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 5470 "configure"
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 5762 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char tgoto (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char tgoto ();
+-char (*f) ();
+-
++#include <stdio.h>
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_tgoto) || defined (__stub___tgoto)
+-choke me
+-#else
+-f = tgoto;
+-#endif
+-
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5501: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:5774: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5504: \$? = $ac_status" >&5
++ echo "$as_me:5777: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5507: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:5780: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5510: \$? = $ac_status" >&5
++ echo "$as_me:5783: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_tgoto=yes
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_tgoto=no
++cf_have_incdir=yes
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
++
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
++
++echo "${as_me:-configure}:5800: testing adding $cf_add_incdir to include-path ..." 1>&5
++
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
+ fi
+-echo "$as_me:5520: result: $ac_cv_func_tgoto" >&5
+-echo "${ECHO_T}$ac_cv_func_tgoto" >&6
+-if test $ac_cv_func_tgoto = yes; then
+- cf_term_lib=predefined
+-else
+
+- for cf_term_lib in $cf_check_list termcap termlib unknown
+- do
+- as_ac_Lib=`echo "ac_cv_lib_$cf_term_lib''_tgoto" | $as_tr_sh`
+-echo "$as_me:5529: checking for tgoto in -l$cf_term_lib" >&5
+-echo $ECHO_N "checking for tgoto in -l$cf_term_lib... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Lib+set}\" = set"; then
++}
++
++echo "$as_me:5817: checking for $cf_ncuhdr_root header in include-path" >&5
++echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
++if test "${cf_cv_ncurses_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-l$cf_term_lib $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5537 "configure"
++
++ cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
++ ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
++ for cf_header in $cf_header_list
++ do
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 5829 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char tgoto ();
++#include <$cf_header>
+ int
+ main ()
+ {
+-tgoto ();
++
++#ifdef NCURSES_VERSION
++
++printf("%s\n", NCURSES_VERSION);
++#else
++#ifdef __NCURSES_H
++printf("old\n");
++#else
++ make an error
++#endif
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5556: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:5853: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5559: \$? = $ac_status" >&5
++ echo "$as_me:5856: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5562: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:5859: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5565: \$? = $ac_status" >&5
++ echo "$as_me:5862: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_Lib=yes"
++ cf_cv_ncurses_h=$cf_header
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_Lib=no"
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:5576: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+-if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+- break
++cf_cv_ncurses_h=no
+ fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+
+- done
++ test "$cf_cv_ncurses_h" != no && break
++ done
+
+ fi
++echo "$as_me:5877: result: $cf_cv_ncurses_h" >&5
++echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+
+- # Check for library containing initscr
+- test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
+- for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
+- do
+- as_ac_Lib=`echo "ac_cv_lib_$cf_curs_lib''_initscr" | $as_tr_sh`
+-echo "$as_me:5591: checking for initscr in -l$cf_curs_lib" >&5
+-echo $ECHO_N "checking for initscr in -l$cf_curs_lib... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++if test "$cf_cv_ncurses_h" != no ; then
++ cf_cv_ncurses_header=$cf_cv_ncurses_h
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-l$cf_curs_lib $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5599 "configure"
+-#include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
+-int
+-main ()
+-{
+-initscr ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5618: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:5621: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5624: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:5627: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- eval "$as_ac_Lib=yes"
++echo "$as_me:5884: checking for $cf_ncuhdr_root include-path" >&5
++echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
++if test "${cf_cv_ncurses_h2+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-eval "$as_ac_Lib=no"
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:5638: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+-if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+- break
+-fi
+
+- done
+- test $cf_curs_lib = unknown && { { echo "$as_me:5645: error: no curses library found" >&5
+-echo "$as_me: error: no curses library found" >&2;}
+- { (exit 1); exit 1; }; }
++ test -n "$verbose" && echo
+
+- LIBS="-l$cf_curs_lib $cf_save_LIBS"
+- if test "$cf_term_lib" = unknown ; then
+- echo "$as_me:5651: checking if we can link with $cf_curs_lib library" >&5
+-echo $ECHO_N "checking if we can link with $cf_curs_lib library... $ECHO_C" >&6
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 5654 "configure"
+-#include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-int
+-main ()
+-{
+-initscr()
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5666: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:5669: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5672: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:5675: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_result=no
++cf_search=
++
++# collect the current set of include-directories from compiler flags
++cf_header_path_list=""
++if test -n "${CFLAGS}${CPPFLAGS}" ; then
++ for cf_header_path in $CPPFLAGS $CFLAGS
++ do
++ case $cf_header_path in #(vi
++ -I*)
++ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
++
++test "x$cf_header_path" != "xNONE" && \
++test -d "$cf_header_path" && \
++ {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
++ test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
++ test -d $cf_header_path/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
++ test -d $cf_header_path/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
++ test -d $cf_header_path/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
++ test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
++}
++
++ cf_header_path_list="$cf_header_path_list $cf_search"
++ ;;
++ esac
++ done
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- echo "$as_me:5684: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- test $cf_result = no && { { echo "$as_me:5686: error: Cannot link curses library" >&5
+-echo "$as_me: error: Cannot link curses library" >&2;}
+- { (exit 1); exit 1; }; }
+- elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+- :
+- elif test "$cf_term_lib" != predefined ; then
+- echo "$as_me:5692: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+-echo $ECHO_N "checking if we need both $cf_curs_lib and $cf_term_lib libraries... $ECHO_C" >&6
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 5695 "configure"
+-#include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-int
+-main ()
+-{
+-initscr(); tgoto((char *)0, 0, 0);
+- ;
+- return 0;
++
++# add the variations for the package we are looking for
++
++cf_search=
++
++test "x$prefix" != "xNONE" && \
++test -d "$prefix" && \
++ {
++ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
++ test -d $prefix/include && cf_search="$cf_search $prefix/include"
++ test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
++ test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5707: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:5710: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5713: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:5716: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=no
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+
+- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 5725 "configure"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
++}
++
++done
++
++test "$includedir" != NONE && \
++test "$includedir" != "/usr/include" && \
++test -d "$includedir" && {
++ test -d $includedir && cf_search="$cf_search $includedir"
++ test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
++}
++
++test "$oldincludedir" != NONE && \
++test "$oldincludedir" != "/usr/include" && \
++test -d "$oldincludedir" && {
++ test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
++ test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
++}
++
++cf_search="$cf_search $cf_header_path_list"
++
++ test -n "$verbose" && echo search path $cf_search
++ cf_save2_CPPFLAGS="$CPPFLAGS"
++ for cf_incdir in $cf_search
++ do
++
++if test -n "$cf_incdir" ; then
++ for cf_add_incdir in $cf_incdir
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
++ fi
++
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6002 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++#include <stdio.h>
+ int
+ main ()
+ {
+-initscr()
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:5737: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:6014: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5740: \$? = $ac_status" >&5
++ echo "$as_me:6017: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:5743: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:6020: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5746: \$? = $ac_status" >&5
++ echo "$as_me:6023: \$? = $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=error
++cf_have_incdir=yes
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
+
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- echo "$as_me:5758: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- fi
+-fi
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
++
++echo "${as_me:-configure}:6040: testing adding $cf_add_incdir to include-path ..." 1>&5
++
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
+ fi
+
+-echo "$as_me:5764: checking for NetBSD form.h" >&5
+-echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
+-if test "${cf_cv_netbsd_form_h+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++ for cf_header in \
++ ncurses.h \
++ curses.h
++ do
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5771 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6061 "configure"
+ #include "confdefs.h"
+
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#include <form.h>
+-
++#include <$cf_header>
+ int
+ main ()
+ {
+
+- FORM *form;
+- int y = current_field(form)->cursor_ypos;
+- int x = current_field(form)->cursor_xpos;
++#ifdef NCURSES_VERSION
++
++printf("%s\n", NCURSES_VERSION);
++#else
++#ifdef __NCURSES_H
++printf("old\n");
++#else
++ make an error
++#endif
++#endif
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5790: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6085: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5793: \$? = $ac_status" >&5
++ echo "$as_me:6088: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5796: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6091: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5799: \$? = $ac_status" >&5
++ echo "$as_me:6094: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_netbsd_form_h=yes
++ cf_cv_ncurses_h2=$cf_header
+
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_netbsd_form_h=no
++cf_cv_ncurses_h2=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+
++ if test "$cf_cv_ncurses_h2" != no ; then
++ cf_cv_ncurses_h2=$cf_incdir/$cf_header
++ test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
++ break
++ fi
++ test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
++ done
++ CPPFLAGS="$cf_save2_CPPFLAGS"
++ test "$cf_cv_ncurses_h2" != no && break
++ done
++ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6115: error: not found" >&5
++echo "$as_me: error: not found" >&2;}
++ { (exit 1); exit 1; }; }
++
+ fi
+-echo "$as_me:5811: result: $cf_cv_netbsd_form_h" >&5
+-echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
++echo "$as_me:6120: result: $cf_cv_ncurses_h2" >&5
++echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+
+-test "$cf_cv_netbsd_form_h" = yes && cat >>confdefs.h <<\EOF
+-#define HAVE_NETBSD_FORM_H 1
+-EOF
++ 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
+
+-echo "$as_me:5818: checking for NetBSD menu.h" >&5
+-echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
+-if test "${cf_cv_netbsd_menu_h+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++if test -n "$cf_1st_incdir" ; then
++ for cf_add_incdir in $cf_1st_incdir
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
++ fi
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 5825 "configure"
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6153 "configure"
+ #include "confdefs.h"
+-
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#include <menu.h>
+-
++#include <stdio.h>
+ int
+ main ()
+ {
+-
+- MENU *menu;
+- int y = menu->max_item_width;
+-
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5843: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6165: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5846: \$? = $ac_status" >&5
++ echo "$as_me:6168: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5849: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6171: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5852: \$? = $ac_status" >&5
++ echo "$as_me:6174: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_netbsd_menu_h=yes
+-
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_netbsd_menu_h=no
++cf_have_incdir=yes
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
+
+-fi
+-echo "$as_me:5864: result: $cf_cv_netbsd_menu_h" >&5
+-echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-test "$cf_cv_netbsd_menu_h" = yes && cat >>confdefs.h <<\EOF
+-#define HAVE_NETBSD_MENU_H 1
+-EOF
++echo "${as_me:-configure}:6191: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+- ;;
+-ncurses)
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+-cf_ncuconfig_root=ncurses
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
++fi
+
+-echo "Looking for ${cf_ncuconfig_root}-config"
+-for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+-do
+- # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:5881: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- case $NCURSES_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:5898: found $ac_dir/$ac_word" >&5
+- break
+ fi
+-done
+
+- ;;
++# Set definitions to allow ifdef'ing for ncurses.h
++
++case $cf_cv_ncurses_header in # (vi
++*ncurses.h)
++
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_H 1
++EOF
++
++ ;;
+ esac
+-fi
+-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+
+-if test -n "$NCURSES_CONFIG"; then
+- echo "$as_me:5909: result: $NCURSES_CONFIG" >&5
+-echo "${ECHO_T}$NCURSES_CONFIG" >&6
+-else
+- echo "$as_me:5912: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
++case $cf_cv_ncurses_header in # (vi
++ncurses/curses.h|ncurses/ncurses.h)
+
+- test -n "$NCURSES_CONFIG" && break
+-done
+-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_NCURSES_H 1
++EOF
+
+-if test "$NCURSES_CONFIG" != none ; then
++ ;;
++ncursesw/curses.h|ncursesw/ncurses.h)
+
+-CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+-LIBS="`$NCURSES_CONFIG --libs` $LIBS"
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_NCURSES_H 1
++EOF
+
+-# even with config script, some packages use no-override for curses.h
++ ;;
++esac
+
+-echo "$as_me:5927: checking if we have identified curses headers" >&5
+-echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_header+set}" = set; then
++echo "$as_me:6237: checking for terminfo header" >&5
++echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
++if test "${cf_cv_term_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-cf_cv_ncurses_header=none
+-for cf_header in \
+- ncurses/curses.h \
+- ncurses/ncurses.h \
+- curses.h \
+- ncurses.h
++case ${cf_cv_ncurses_header} in #(vi
++*/ncurses.h|*/ncursesw.h) #(vi
++ cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
++ ;;
++*)
++ cf_term_header=term.h
++ ;;
++esac
++
++for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 5941 "configure"
++#line 6255 "configure"
+ #include "confdefs.h"
+-#include <${cf_header}>
++#include <stdio.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_test>
++
+ int
+ main ()
+ {
+-initscr(); tgoto("?", 0,0)
++int x = auto_left_margin
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:5953: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:6270: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:5956: \$? = $ac_status" >&5
++ echo "$as_me:6273: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:5959: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6276: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:5962: \$? = $ac_status" >&5
++ echo "$as_me:6279: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_header=$cf_header; break
++
++ cf_cv_term_header="$cf_test"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++
++ cf_cv_term_header=unknown
++
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++ test "$cf_cv_term_header" != unknown && break
+ done
+
+ fi
+-echo "$as_me:5973: result: $cf_cv_ncurses_header" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_header" >&6
++echo "$as_me:6295: result: $cf_cv_term_header" >&5
++echo "${ECHO_T}$cf_cv_term_header" >&6
+
+-if test "$cf_cv_ncurses_header" = none ; then
+- { { echo "$as_me:5977: error: No curses header-files found" >&5
+-echo "$as_me: error: No curses header-files found" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
++# Set definitions to allow ifdef'ing to accommodate subdirectories
+
+-# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
++case $cf_cv_term_header in # (vi
++*term.h)
+
+-for ac_header in $cf_cv_ncurses_header
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:5987: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 5993 "configure"
+-#include "confdefs.h"
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:5997: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+- ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:6003: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- eval "$as_ac_Header=yes"
+-else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-fi
+-echo "$as_me:6022: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++cat >>confdefs.h <<\EOF
++#define HAVE_TERM_H 1
+ EOF
+
+-fi
+-done
++ ;;
++esac
++
++case $cf_cv_term_header in # (vi
++ncurses/term.h) #(vi
+
+ cat >>confdefs.h <<\EOF
+-#define NCURSES 1
++#define HAVE_NCURSES_TERM_H 1
+ EOF
+
+-cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++ ;;
++ncursesw/term.h)
+
+-cat >>confdefs.h <<EOF
+-#define $cf_nculib_ROOT 1
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_TERM_H 1
+ EOF
+
+-cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
++ ;;
++esac
+
+-else
++# some applications need this, but should check for NCURSES_VERSION
+
+-cf_ncuhdr_root=ncurses
++cat >>confdefs.h <<\EOF
++#define NCURSES 1
++EOF
+
+-test -n "$cf_cv_curses_dir" && \
+-test "$cf_cv_curses_dir" != "no" && { \
++echo "$as_me:6333: checking for ncurses version" >&5
++echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
++if test "${cf_cv_ncurses_version+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+
+-if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
+- for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
+- do
+- while test $cf_add_incdir != /usr/include
+- do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
+- fi
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ if test "$cross_compiling" = yes; then
+
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6075 "configure"
++ # This will not work if the preprocessor splits the line after the
++ # Autoconf token. The 'unproto' program does that.
++ cat > conftest.$ac_ext <<EOF
++#include <${cf_cv_ncurses_header:-curses.h}>
++#undef Autoconf
++#ifdef NCURSES_VERSION
++Autoconf NCURSES_VERSION
++#else
++#ifdef __NCURSES_H
++Autoconf "old"
++#endif
++;
++#endif
++EOF
++ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
++ { (eval echo "$as_me:6359: \"$cf_try\"") >&5
++ (eval $cf_try) 2>&5
++ ac_status=$?
++ echo "$as_me:6362: \$? = $ac_status" >&5
++ (exit $ac_status); }
++ if test -f conftest.out ; then
++ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
++ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
++ rm -f conftest.out
++ fi
++
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6372 "configure"
+ #include "confdefs.h"
++
++#include <${cf_cv_ncurses_header:-curses.h}>
+ #include <stdio.h>
+-int
+-main ()
++int main()
+ {
+-printf("Hello")
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6087: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:6090: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6093: \"$ac_try\"") >&5
++ FILE *fp = fopen("$cf_tempfile", "w");
++#ifdef NCURSES_VERSION
++# ifdef NCURSES_VERSION_PATCH
++ fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
++# else
++ fprintf(fp, "%s\n", NCURSES_VERSION);
++# endif
++#else
++# ifdef __NCURSES_H
++ fprintf(fp, "old\n");
++# else
++ make an error
++# endif
++#endif
++ ${cf_cv_main_return:-return}(0);
++}
++_ACEOF
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:6397: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:6400: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:6402: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6096: \$? = $ac_status" >&5
++ echo "$as_me:6405: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++
++ cf_cv_ncurses_version=`cat $cf_tempfile`
+ else
+- echo "$as_me: failed program was:" >&5
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+-
+-echo "${as_me:-configure}:6113: testing adding $cf_add_incdir to include-path ..." 1>&5
+-
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+-
+- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+- test "$cf_top_incdir" = "$cf_add_incdir" && break
+- cf_add_incdir="$cf_top_incdir"
+- else
+- break
+- fi
+- fi
+- done
+- done
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
++ rm -f $cf_tempfile
+
+-}
++fi
++echo "$as_me:6419: result: $cf_cv_ncurses_version" >&5
++echo "${ECHO_T}$cf_cv_ncurses_version" >&6
++test "$cf_cv_ncurses_version" = no ||
++cat >>confdefs.h <<\EOF
++#define NCURSES 1
++EOF
+
+-echo "$as_me:6130: checking for $cf_ncuhdr_root header in include-path" >&5
+-echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_h+set}" = set; then
++cf_nculib_root=ncurses
++ # This works, except for the special case where we find gpm, but
++ # ncurses is in a nonstandard location via $LIBS, and we really want
++ # to link gpm.
++cf_ncurses_LIBS=""
++cf_ncurses_SAVE="$LIBS"
++echo "$as_me:6432: checking for Gpm_Open in -lgpm" >&5
++echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
++if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
+- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
+- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
+- for cf_header in $cf_header_list
+- do
+-
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6142 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lgpm $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 6440 "configure"
+ #include "confdefs.h"
+
+-#include <$cf_header>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char Gpm_Open ();
+ int
+ main ()
+ {
+-
+-#ifdef NCURSES_VERSION
+-
+-printf("%s\n", NCURSES_VERSION);
+-#else
+-#ifdef __NCURSES_H
+-printf("old\n");
+-#else
+- make an error
+-#endif
+-#endif
+-
++Gpm_Open ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6166: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:6459: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6169: \$? = $ac_status" >&5
++ echo "$as_me:6462: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6172: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:6465: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6175: \$? = $ac_status" >&5
++ echo "$as_me:6468: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_h=$cf_header
+-
++ ac_cv_lib_gpm_Gpm_Open=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_ncurses_h=no
++ac_cv_lib_gpm_Gpm_Open=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-
+- test "$cf_cv_ncurses_h" != no && break
+- done
+-
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6190: result: $cf_cv_ncurses_h" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+-
+-if test "$cf_cv_ncurses_h" != no ; then
+- cf_cv_ncurses_header=$cf_cv_ncurses_h
+-else
+-
+-echo "$as_me:6197: checking for $cf_ncuhdr_root include-path" >&5
+-echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_h2+set}" = set; then
++echo "$as_me:6479: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
++if test $ac_cv_lib_gpm_Gpm_Open = yes; then
++ echo "$as_me:6482: checking for initscr in -lgpm" >&5
++echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
++if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
+- test -n "$verbose" && echo
+-
+-cf_search=
+-
+-# collect the current set of include-directories from compiler flags
+-cf_header_path_list=""
+-if test -n "${CFLAGS}${CPPFLAGS}" ; then
+- for cf_header_path in $CPPFLAGS $CFLAGS
+- do
+- case $cf_header_path in #(vi
+- -I*)
+- cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+-
+-test "$cf_header_path" != "NONE" && \
+-test -d "$cf_header_path" && \
+- {
+- test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+- test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
+- test -d $cf_header_path/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
+- test -d $cf_header_path/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
+- test -d $cf_header_path/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
+- test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+- cf_header_path_list="$cf_header_path_list $cf_search"
+- ;;
+- esac
+- done
+-fi
+-
+-# add the variations for the package we are looking for
+-
+-cf_search=
+-
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$prefix" != "NONE" && \
+-test -d "$prefix" && \
+- {
+- test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+- test -d $prefix/include && cf_search="$cf_search $prefix/include"
+- test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
+- test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
+- test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
+- test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$includedir" != NONE && \
+-test "$includedir" != "/usr/include" && \
+-test -d "$includedir" && {
+- test -d $includedir && cf_search="$cf_search $includedir"
+- test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
+-}
+-
+-test "$oldincludedir" != NONE && \
+-test "$oldincludedir" != "/usr/include" && \
+-test -d "$oldincludedir" && {
+- test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
+- test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
+-}
+-
+-cf_search="$cf_search $cf_header_path_list"
+-
+- test -n "$verbose" && echo search path $cf_search
+- cf_save2_CPPFLAGS="$CPPFLAGS"
+- for cf_incdir in $cf_search
+- do
+-
+-if test -n "$cf_incdir" ; then
+- for cf_add_incdir in $cf_incdir
+- do
+- while test $cf_add_incdir != /usr/include
+- do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6337 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lgpm $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 6490 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
+ int
+ main ()
+ {
+-printf("Hello")
++initscr ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6349: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:6509: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6352: \$? = $ac_status" >&5
++ echo "$as_me:6512: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6355: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:6515: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6358: \$? = $ac_status" >&5
++ echo "$as_me:6518: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ ac_cv_lib_gpm_initscr=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
++ac_cv_lib_gpm_initscr=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+-
+-echo "${as_me:-configure}:6375: testing adding $cf_add_incdir to include-path ..." 1>&5
+-
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+-
+- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+- test "$cf_top_incdir" = "$cf_add_incdir" && break
+- cf_add_incdir="$cf_top_incdir"
+- else
+- break
+- fi
+- fi
+- done
+- done
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:6529: result: $ac_cv_lib_gpm_initscr" >&5
++echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
++if test $ac_cv_lib_gpm_initscr = yes; then
++ LIBS="$cf_ncurses_SAVE"
++else
++ cf_ncurses_LIBS="-lgpm"
+ fi
+
+- for cf_header in \
+- ncurses.h \
+- curses.h
+- do
++fi
+
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6396 "configure"
++case $host_os in #(vi
++freebsd*)
++ # This is only necessary if you are linking against an obsolete
++ # version of ncurses (but it should do no harm, since it's static).
++ if test "$cf_nculib_root" = ncurses ; then
++ echo "$as_me:6544: checking for tgoto in -lmytinfo" >&5
++echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
++if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lmytinfo $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 6552 "configure"
+ #include "confdefs.h"
+
+-#include <$cf_header>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto ();
+ int
+ main ()
+ {
+-
+-#ifdef NCURSES_VERSION
+-
+-printf("%s\n", NCURSES_VERSION);
+-#else
+-#ifdef __NCURSES_H
+-printf("old\n");
+-#else
+- make an error
+-#endif
+-#endif
+-
++tgoto ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6420: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:6571: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6423: \$? = $ac_status" >&5
++ echo "$as_me:6574: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6426: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:6577: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6429: \$? = $ac_status" >&5
++ echo "$as_me:6580: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_h2=$cf_header
+-
++ ac_cv_lib_mytinfo_tgoto=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_ncurses_h2=no
++ac_cv_lib_mytinfo_tgoto=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-
+- if test "$cf_cv_ncurses_h2" != no ; then
+- cf_cv_ncurses_h2=$cf_incdir/$cf_header
+- test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
+- break
+- fi
+- test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
+- done
+- CPPFLAGS="$cf_save2_CPPFLAGS"
+- test "$cf_cv_ncurses_h2" != no && break
+- done
+- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:6450: error: not found" >&5
+-echo "$as_me: error: not found" >&2;}
+- { (exit 1); exit 1; }; }
+-
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:6591: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
++if test $ac_cv_lib_mytinfo_tgoto = yes; then
++ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+ fi
+-echo "$as_me:6455: result: $cf_cv_ncurses_h2" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+
+- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+- cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
+- if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
+- cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
+ fi
++ ;;
++esac
+
+-if test -n "$cf_1st_incdir" ; then
+- for cf_add_incdir in $cf_1st_incdir
+- do
+- while test $cf_add_incdir != /usr/include
++cf_add_libs="$cf_ncurses_LIBS"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
+ do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
+ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6488 "configure"
++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
++then
++
++cf_add_libs="-l$cf_nculib_root"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++else
++
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
++ cf_libdir=""
++ echo "$as_me:6640: checking for initscr" >&5
++echo $ECHO_N "checking for initscr... $ECHO_C" >&6
++if test "${ac_cv_func_initscr+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6646 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char initscr (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
++char (*f) ();
++
+ int
+ main ()
+ {
+-printf("Hello")
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_initscr) || defined (__stub___initscr)
++choke me
++#else
++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6500: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:6677: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6503: \$? = $ac_status" >&5
++ echo "$as_me:6680: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6506: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:6683: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6509: \$? = $ac_status" >&5
++ echo "$as_me:6686: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ ac_cv_func_initscr=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+-
+-echo "${as_me:-configure}:6526: testing adding $cf_add_incdir to include-path ..." 1>&5
+-
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+-
+- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+- test "$cf_top_incdir" = "$cf_add_incdir" && break
+- cf_add_incdir="$cf_top_incdir"
+- else
+- break
+- fi
+- fi
+- done
+- done
++ac_cv_func_initscr=no
+ fi
+-
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-
+-# Set definitions to allow ifdef'ing for ncurses.h
+-
+-case $cf_cv_ncurses_header in # (vi
+-*ncurses.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-case $cf_cv_ncurses_header in # (vi
+-ncurses/curses.h|ncurses/ncurses.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_NCURSES_H 1
+-EOF
+-
+- ;;
+-ncursesw/curses.h|ncursesw/ncurses.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSESW_NCURSES_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-echo "$as_me:6569: checking for terminfo header" >&5
+-echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+-if test "${cf_cv_term_header+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++echo "$as_me:6696: result: $ac_cv_func_initscr" >&5
++echo "${ECHO_T}$ac_cv_func_initscr" >&6
++if test $ac_cv_func_initscr = yes; then
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+ else
+
+-case ${cf_cv_ncurses_header} in #(vi
+-*/ncurses.h|*/ncursesw.h) #(vi
+- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
+- ;;
+-*)
+- cf_term_header=term.h
+- ;;
+-esac
+-
+-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+-do
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 6587 "configure"
++ cf_save_LIBS="$LIBS"
++ echo "$as_me:6703: checking for initscr in -l$cf_nculib_root" >&5
++echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
++ LIBS="-l$cf_nculib_root $LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6707 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+-#include <$cf_test>
+-
+ int
+ main ()
+ {
+-int x = auto_left_margin
++initscr()
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:6602: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:6719: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6605: \$? = $ac_status" >&5
++ echo "$as_me:6722: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:6608: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:6725: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6611: \$? = $ac_status" >&5
++ echo "$as_me:6728: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
++ echo "$as_me:6730: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+
+- cf_cv_term_header="$cf_test"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++echo "$as_me:6737: result: no" >&5
++echo "${ECHO_T}no" >&6
+
+- cf_cv_term_header=unknown
++cf_search=
++cf_library_path_list=""
++if test -n "${LDFLAGS}${LIBS}" ; then
++ for cf_library_path in $LDFLAGS $LIBS
++ do
++ case $cf_library_path in #(vi
++ -L*)
++ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- test "$cf_cv_term_header" != unknown && break
+-done
++test "x$cf_library_path" != "xNONE" && \
++test -d "$cf_library_path" && \
++ {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
++ test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
++ test -d $cf_library_path/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
++ test -d $cf_library_path/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
++ test -d $cf_library_path/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
++ test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
++}
+
++ cf_library_path_list="$cf_library_path_list $cf_search"
++ ;;
++ esac
++ done
+ fi
+-echo "$as_me:6627: result: $cf_cv_term_header" >&5
+-echo "${ECHO_T}$cf_cv_term_header" >&6
+-
+-# Set definitions to allow ifdef'ing to accommodate subdirectories
+-
+-case $cf_cv_term_header in # (vi
+-*term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_TERM_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-case $cf_cv_term_header in # (vi
+-ncurses/term.h) #(vi
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_TERM_H 1
+-EOF
+
+- ;;
+-ncursesw/term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSESW_TERM_H 1
+-EOF
++cf_search=
+
+- ;;
+-esac
++test "x$prefix" != "xNONE" && \
++test -d "$prefix" && \
++ {
++ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
++ test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
++ test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
++ test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
++ test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
++ test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
++}
+
+-# some applications need this, but should check for NCURSES_VERSION
+-cat >>confdefs.h <<\EOF
+-#define NCURSES 1
+-EOF
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
+
+-echo "$as_me:6661: checking for ncurses version" >&5
+-echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_version+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root"
++}
+
+- cf_cv_ncurses_version=no
+- cf_tempfile=out$$
+- rm -f $cf_tempfile
+- if test "$cross_compiling" = yes; then
++done
+
+- # This will not work if the preprocessor splits the line after the
+- # Autoconf token. The 'unproto' program does that.
+- cat > conftest.$ac_ext <<EOF
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#undef Autoconf
+-#ifdef NCURSES_VERSION
+-Autoconf NCURSES_VERSION
+-#else
+-#ifdef __NCURSES_H
+-Autoconf "old"
+-#endif
+-;
+-#endif
+-EOF
+- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+- { (eval echo "$as_me:6687: \"$cf_try\"") >&5
+- (eval $cf_try) 2>&5
+- ac_status=$?
+- echo "$as_me:6690: \$? = $ac_status" >&5
+- (exit $ac_status); }
+- if test -f conftest.out ; then
+- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
+- rm -f conftest.out
+- fi
++cf_search="$cf_library_path_list $cf_search"
+
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6700 "configure"
++ for cf_libdir in $cf_search
++ do
++ echo "$as_me:6805: checking for -l$cf_nculib_root in $cf_libdir" >&5
++echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
++ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6809 "configure"
+ #include "confdefs.h"
+-
+ #include <${cf_cv_ncurses_header:-curses.h}>
+-#include <stdio.h>
+-int main()
++int
++main ()
+ {
+- FILE *fp = fopen("$cf_tempfile", "w");
+-#ifdef NCURSES_VERSION
+-# ifdef NCURSES_VERSION_PATCH
+- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
+-# else
+- fprintf(fp, "%s\n", NCURSES_VERSION);
+-# endif
+-#else
+-# ifdef __NCURSES_H
+- fprintf(fp, "old\n");
+-# else
+- make an error
+-# endif
+-#endif
+- ${cf_cv_main_return:-return}(0);
++initscr()
++ ;
++ return 0;
+ }
+ _ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:6725: \"$ac_link\"") >&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:6821: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6728: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:6730: \"$ac_try\"") >&5
++ echo "$as_me:6824: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:6827: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6733: \$? = $ac_status" >&5
++ echo "$as_me:6830: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- cf_cv_ncurses_version=`cat $cf_tempfile`
++ echo "$as_me:6832: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++ break
+ else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
++ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++echo "$as_me:6839: result: no" >&5
++echo "${ECHO_T}no" >&6
++ LIBS="$cf_save_LIBS"
+ fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ done
++
+ fi
+- rm -f $cf_tempfile
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:6747: result: $cf_cv_ncurses_version" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+-#define NCURSES 1
+-EOF
+
+-cf_nculib_root=ncurses
+- # This works, except for the special case where we find gpm, but
+- # ncurses is in a nonstandard location via $LIBS, and we really want
+- # to link gpm.
+-cf_ncurses_LIBS=""
+-cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:6759: checking for Gpm_Open in -lgpm" >&5
+-echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+-if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgpm $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 6767 "configure"
+-#include "confdefs.h"
++eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char Gpm_Open ();
++if test $cf_found_library = no ; then
++ { { echo "$as_me:6854: error: Cannot link $cf_nculib_root library" >&5
++echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++fi
++
++if test -n "$cf_ncurses_LIBS" ; then
++ echo "$as_me:6862: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
++ cf_ncurses_SAVE="$LIBS"
++ for p in $cf_ncurses_LIBS ; do
++ q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
++ if test "$q" != "$LIBS" ; then
++ LIBS="$q"
++ fi
++ done
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6872 "configure"
++#include "confdefs.h"
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-Gpm_Open ();
++initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6786: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6884: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6789: \$? = $ac_status" >&5
++ echo "$as_me:6887: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6792: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6890: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6795: \$? = $ac_status" >&5
++ echo "$as_me:6893: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_gpm_Gpm_Open=yes
++ echo "$as_me:6895: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_gpm_Gpm_Open=no
++echo "$as_me:6900: result: no" >&5
++echo "${ECHO_T}no" >&6
++ LIBS="$cf_ncurses_SAVE"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:6806: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+-echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+-if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+- echo "$as_me:6809: checking for initscr in -lgpm" >&5
+-echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+-if test "${ac_cv_lib_gpm_initscr+set}" = set; then
++
++cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >>confdefs.h <<EOF
++#define $cf_nculib_ROOT 1
++EOF
++
++fi
++
++ ;;
++ncursesw) #(vi
++
++echo "$as_me:6918: checking for multibyte character support" >&5
++echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
++if test "${cf_cv_utf8_lib+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgpm $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 6817 "configure"
++
++ cf_save_LIBS="$LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 6926 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
++#include <stdlib.h>
+ int
+ main ()
+ {
+-initscr ();
++putwc(0,0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6836: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6939: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6839: \$? = $ac_status" >&5
++ echo "$as_me:6942: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6842: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6945: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6845: \$? = $ac_status" >&5
++ echo "$as_me:6948: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_gpm_initscr=yes
++ cf_cv_utf8_lib=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_gpm_initscr=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:6856: result: $ac_cv_lib_gpm_initscr" >&5
+-echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+-if test $ac_cv_lib_gpm_initscr = yes; then
+- LIBS="$cf_ncurses_SAVE"
+-else
+- cf_ncurses_LIBS="-lgpm"
+-fi
+
+-fi
++# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
++# will be set on completion of the AC_TRY_LINK below.
++cf_cv_header_path_utf8=
++cf_cv_library_path_utf8=
++
++echo "${as_me:-configure}:6960: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
++
++cf_save_LIBS="$LIBS"
+
+-case $host_os in #(vi
+-freebsd*)
+- # This is only necessary if you are linking against an obsolete
+- # version of ncurses (but it should do no harm, since it's static).
+- if test "$cf_nculib_root" = ncurses ; then
+- echo "$as_me:6871: checking for tgoto in -lmytinfo" >&5
+-echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+-if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmytinfo $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 6879 "configure"
++#line 6965 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char tgoto ();
++#include <libutf8.h>
+ int
+ main ()
+ {
+-tgoto ();
++putwc(0,0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6898: \"$ac_link\"") >&5
++if { (eval echo "$as_me:6978: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6901: \$? = $ac_status" >&5
++ echo "$as_me:6981: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6904: \"$ac_try\"") >&5
++ { (eval echo "$as_me:6984: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6907: \$? = $ac_status" >&5
++ echo "$as_me:6987: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_mytinfo_tgoto=yes
++
++ cf_cv_find_linkage_utf8=yes
++ cf_cv_header_path_utf8=/usr/include
++ cf_cv_library_path_utf8=/usr/lib
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_mytinfo_tgoto=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:6918: result: $ac_cv_lib_mytinfo_tgoto" >&5
+-echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+-if test $ac_cv_lib_mytinfo_tgoto = yes; then
+- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+-fi
+-
+- fi
+- ;;
+-esac
+-
+-LIBS="$cf_ncurses_LIBS $LIBS"
+
+-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+-then
+- LIBS="-l$cf_nculib_root $LIBS"
+-else
++LIBS="-lutf8 $cf_save_LIBS"
+
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+- cf_libdir=""
+- echo "$as_me:6937: checking for initscr" >&5
+-echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+-if test "${ac_cv_func_initscr+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 6943 "configure"
++cat >conftest.$ac_ext <<_ACEOF
++#line 7001 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char initscr (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
+-char (*f) ();
+
++#include <libutf8.h>
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_initscr) || defined (__stub___initscr)
+-choke me
+-#else
+-f = initscr;
+-#endif
+-
++putwc(0,0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:6974: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7014: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:6977: \$? = $ac_status" >&5
++ echo "$as_me:7017: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:6980: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7020: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:6983: \$? = $ac_status" >&5
++ echo "$as_me:7023: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_initscr=yes
++
++ cf_cv_find_linkage_utf8=yes
++ cf_cv_header_path_utf8=/usr/include
++ cf_cv_library_path_utf8=/usr/lib
++ cf_cv_library_file_utf8="-lutf8"
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_initscr=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++ cf_cv_find_linkage_utf8=no
++ LIBS="$cf_save_LIBS"
++
++ test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
++
++echo "${as_me:-configure}:7040: testing find linkage for utf8 library ..." 1>&5
++
++echo "${as_me:-configure}:7042: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
++
++ cf_save_CPPFLAGS="$CPPFLAGS"
++ cf_test_CPPFLAGS="$CPPFLAGS"
++
++cf_search=
++
++# collect the current set of include-directories from compiler flags
++cf_header_path_list=""
++if test -n "${CFLAGS}${CPPFLAGS}" ; then
++ for cf_header_path in $CPPFLAGS $CFLAGS
++ do
++ case $cf_header_path in #(vi
++ -I*)
++ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
++
++test "x$cf_header_path" != "xNONE" && \
++test -d "$cf_header_path" && \
++ {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
++ test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
++ test -d $cf_header_path/include/utf8 && cf_search="$cf_search $cf_header_path/include/utf8"
++ test -d $cf_header_path/include/utf8/include && cf_search="$cf_search $cf_header_path/include/utf8/include"
++ test -d $cf_header_path/utf8/include && cf_search="$cf_search $cf_header_path/utf8/include"
++ test -d $cf_header_path/utf8/include/utf8 && cf_search="$cf_search $cf_header_path/utf8/include/utf8"
++}
++
++ cf_header_path_list="$cf_header_path_list $cf_search"
++ ;;
++ esac
++ done
+ fi
+-echo "$as_me:6993: result: $ac_cv_func_initscr" >&5
+-echo "${ECHO_T}$ac_cv_func_initscr" >&6
+-if test $ac_cv_func_initscr = yes; then
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+-else
+
+- cf_save_LIBS="$LIBS"
+- echo "$as_me:7000: checking for initscr in -l$cf_nculib_root" >&5
+-echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+- LIBS="-l$cf_nculib_root $LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7004 "configure"
++# add the variations for the package we are looking for
++
++cf_search=
++
++test "x$prefix" != "xNONE" && \
++test -d "$prefix" && \
++ {
++ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
++ test -d $prefix/include && cf_search="$cf_search $prefix/include"
++ test -d $prefix/include/utf8 && cf_search="$cf_search $prefix/include/utf8"
++ test -d $prefix/include/utf8/include && cf_search="$cf_search $prefix/include/utf8/include"
++ test -d $prefix/utf8/include && cf_search="$cf_search $prefix/utf8/include"
++ test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8"
++}
++
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/utf8 && cf_search="$cf_search $cf_subdir_prefix/include/utf8"
++ test -d $cf_subdir_prefix/include/utf8/include && cf_search="$cf_search $cf_subdir_prefix/include/utf8/include"
++ test -d $cf_subdir_prefix/utf8/include && cf_search="$cf_search $cf_subdir_prefix/utf8/include"
++ test -d $cf_subdir_prefix/utf8/include/utf8 && cf_search="$cf_search $cf_subdir_prefix/utf8/include/utf8"
++}
++
++done
++
++test "$includedir" != NONE && \
++test "$includedir" != "/usr/include" && \
++test -d "$includedir" && {
++ test -d $includedir && cf_search="$cf_search $includedir"
++ test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8"
++}
++
++test "$oldincludedir" != NONE && \
++test "$oldincludedir" != "/usr/include" && \
++test -d "$oldincludedir" && {
++ test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
++ test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8"
++}
++
++cf_search="$cf_search $cf_header_path_list"
++
++ for cf_cv_header_path_utf8 in $cf_search
++ do
++ if test -d $cf_cv_header_path_utf8 ; then
++ test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
++
++echo "${as_me:-configure}:7133: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
++
++ CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7137 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++
++#include <libutf8.h>
+ int
+ main ()
+ {
+-initscr()
++putwc(0,0);
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7016: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7150: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7019: \$? = $ac_status" >&5
++ echo "$as_me:7153: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7022: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7156: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7025: \$? = $ac_status" >&5
++ echo "$as_me:7159: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:7027: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+
++ test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
++
++echo "${as_me:-configure}:7164: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
++
++ cf_cv_find_linkage_utf8=maybe
++ cf_test_CPPFLAGS="$CPPFLAGS"
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7034: result: no" >&5
+-echo "${ECHO_T}no" >&6
++
++ CPPFLAGS="$cf_save_CPPFLAGS"
++
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ fi
++ done
++
++ if test "$cf_cv_find_linkage_utf8" = maybe ; then
++
++echo "${as_me:-configure}:7182: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
++
++ cf_save_LIBS="$LIBS"
++ cf_save_LDFLAGS="$LDFLAGS"
++
++ if test "$cf_cv_find_linkage_utf8" != yes ; then
+
+ cf_search=
+ cf_library_path_list=""
+@@ -7043,15 +7195,15 @@
+ -L*)
+ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+-test "$cf_library_path" != "NONE" && \
++test "x$cf_library_path" != "xNONE" && \
+ test -d "$cf_library_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+ test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
+- test -d $cf_library_path/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
+- test -d $cf_library_path/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
+- test -d $cf_library_path/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
+- test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
++ test -d $cf_library_path/lib/utf8 && cf_search="$cf_search $cf_library_path/lib/utf8"
++ test -d $cf_library_path/lib/utf8/lib && cf_search="$cf_search $cf_library_path/lib/utf8/lib"
++ test -d $cf_library_path/utf8/lib && cf_search="$cf_search $cf_library_path/utf8/lib"
++ test -d $cf_library_path/utf8/lib/utf8 && cf_search="$cf_search $cf_library_path/utf8/lib/utf8"
+ }
+
+ cf_library_path_list="$cf_library_path_list $cf_search"
+@@ -7062,307 +7214,646 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
+- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+ test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
+- test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
+- test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
+- test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
+- test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
++ test -d $prefix/lib/utf8 && cf_search="$cf_search $prefix/lib/utf8"
++ test -d $prefix/lib/utf8/lib && cf_search="$cf_search $prefix/lib/utf8/lib"
++ test -d $prefix/utf8/lib && cf_search="$cf_search $prefix/utf8/lib"
++ test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
+- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/utf8 && cf_search="$cf_search $cf_subdir_prefix/lib/utf8"
++ test -d $cf_subdir_prefix/lib/utf8/lib && cf_search="$cf_search $cf_subdir_prefix/lib/utf8/lib"
++ test -d $cf_subdir_prefix/utf8/lib && cf_search="$cf_search $cf_subdir_prefix/utf8/lib"
++ test -d $cf_subdir_prefix/utf8/lib/utf8 && cf_search="$cf_search $cf_subdir_prefix/utf8/lib/utf8"
+ }
+
++done
++
+ cf_search="$cf_library_path_list $cf_search"
+
+- for cf_libdir in $cf_search
+- do
+- echo "$as_me:7124: checking for -l$cf_nculib_root in $cf_libdir" >&5
+-echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7128 "configure"
++ for cf_cv_library_path_utf8 in $cf_search
++ do
++ if test -d $cf_cv_library_path_utf8 ; then
++ test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
++
++echo "${as_me:-configure}:7257: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
++
++ CPPFLAGS="$cf_test_CPPFLAGS"
++ LIBS="-lutf8 $cf_save_LIBS"
++ LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7263 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++
++#include <libutf8.h>
+ int
+ main ()
+ {
+-initscr()
++putwc(0,0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7140: \"$ac_link\"") >&5
++if { (eval echo "$as_me:7276: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:7143: \$? = $ac_status" >&5
++ echo "$as_me:7279: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7146: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7282: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7149: \$? = $ac_status" >&5
++ echo "$as_me:7285: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:7151: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+- break
++
++ test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
++
++echo "${as_me:-configure}:7290: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
++
++ cf_cv_find_linkage_utf8=yes
++ cf_cv_library_file_utf8="-lutf8"
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7158: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- LIBS="$cf_save_LIBS"
++
++ CPPFLAGS="$cf_save_CPPFLAGS"
++ LIBS="$cf_save_LIBS"
++ LDFLAGS="$cf_save_LDFLAGS"
++
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- done
++ fi
++ done
++ CPPFLAGS="$cf_save_CPPFLAGS"
++ LDFLAGS="$cf_save_LDFLAGS"
++ fi
++
++ else
++ cf_cv_find_linkage_utf8=no
++ fi
+
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
++LIBS="$cf_save_LIBS"
+
+-if test $cf_found_library = no ; then
+- { { echo "$as_me:7173: error: Cannot link $cf_nculib_root library" >&5
+-echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+- { (exit 1); exit 1; }; }
++if test "$cf_cv_find_linkage_utf8" = yes ; then
++cf_cv_utf8_lib=add-on
++else
++cf_cv_utf8_lib=no
+ fi
+
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:7332: result: $cf_cv_utf8_lib" >&5
++echo "${ECHO_T}$cf_cv_utf8_lib" >&6
+
+-if test -n "$cf_ncurses_LIBS" ; then
+- echo "$as_me:7181: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+-echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+- cf_ncurses_SAVE="$LIBS"
+- for p in $cf_ncurses_LIBS ; do
+- q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
+- if test "$q" != "$LIBS" ; then
+- LIBS="$q"
++# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
++# ncurses/ncursesw:
++if test "$cf_cv_utf8_lib" = "add-on" ; then
++
++cat >>confdefs.h <<\EOF
++#define HAVE_LIBUTF8_H 1
++EOF
++
++if test -n "$cf_cv_header_path_utf8" ; then
++ for cf_add_incdir in $cf_cv_header_path_utf8
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
+ fi
+- done
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7191 "configure"
++
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7367 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++#include <stdio.h>
+ int
+ main ()
+ {
+-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7203: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7379: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7206: \$? = $ac_status" >&5
++ echo "$as_me:7382: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7209: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7385: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7212: \$? = $ac_status" >&5
++ echo "$as_me:7388: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:7214: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:7219: result: no" >&5
++cf_have_incdir=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
++
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
++
++echo "${as_me:-configure}:7405: testing adding $cf_add_incdir to include-path ..." 1>&5
++
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
++fi
++
++if test -n "$cf_cv_library_path_utf8" ; then
++ for cf_add_libdir in $cf_cv_library_path_utf8
++ do
++ if test $cf_add_libdir = /usr/lib ; then
++ :
++ elif test -d $cf_add_libdir
++ then
++ cf_have_libdir=no
++ if test -n "$LDFLAGS$LIBS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_libdir in $LDFLAGS $LIBS ; do
++ if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
++ cf_have_libdir=yes; break
++ fi
++ done
++ fi
++ if test "$cf_have_libdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
++
++echo "${as_me:-configure}:7439: testing adding $cf_add_libdir to library-path ..." 1>&5
++
++ LDFLAGS="-L$cf_add_libdir $LDFLAGS"
++ fi
++ fi
++ done
++fi
++
++cf_add_libs="$cf_cv_library_file_utf8"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++fi
++
++cf_ncuconfig_root=ncursesw
++
++echo "Looking for ${cf_ncuconfig_root}-config"
++
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:7474: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_NCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$NCURSES_CONFIG"; then
++ ac_cv_prog_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_NCURSES_CONFIG="$ac_tool_prefix$ac_prog"
++echo "$as_me:7489: found $ac_dir/$ac_word" >&5
++break
++done
++
++fi
++fi
++NCURSES_CONFIG=$ac_cv_prog_NCURSES_CONFIG
++if test -n "$NCURSES_CONFIG"; then
++ echo "$as_me:7497: result: $NCURSES_CONFIG" >&5
++echo "${ECHO_T}$NCURSES_CONFIG" >&6
++else
++ echo "$as_me:7500: result: no" >&5
+ echo "${ECHO_T}no" >&6
+- LIBS="$cf_ncurses_SAVE"
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++ test -n "$NCURSES_CONFIG" && break
++ done
+ fi
++if test -z "$NCURSES_CONFIG"; then
++ ac_ct_NCURSES_CONFIG=$NCURSES_CONFIG
++ for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:7513: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_NCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_NCURSES_CONFIG"; then
++ ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_ct_NCURSES_CONFIG" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_NCURSES_CONFIG="$ac_prog"
++echo "$as_me:7528: found $ac_dir/$ac_word" >&5
++break
++done
+
+-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++fi
++fi
++ac_ct_NCURSES_CONFIG=$ac_cv_prog_ac_ct_NCURSES_CONFIG
++if test -n "$ac_ct_NCURSES_CONFIG"; then
++ echo "$as_me:7536: result: $ac_ct_NCURSES_CONFIG" >&5
++echo "${ECHO_T}$ac_ct_NCURSES_CONFIG" >&6
++else
++ echo "$as_me:7539: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-cat >>confdefs.h <<EOF
+-#define $cf_nculib_ROOT 1
+-EOF
++ test -n "$ac_ct_NCURSES_CONFIG" && break
++done
++test -n "$ac_ct_NCURSES_CONFIG" || ac_ct_NCURSES_CONFIG="none"
+
++ NCURSES_CONFIG=$ac_ct_NCURSES_CONFIG
+ fi
+
+- ;;
+-ncursesw)
+- cf_cv_libtype=w
++if test "$NCURSES_CONFIG" != none ; then
+
+-echo "$as_me:7238: checking for multibyte character support" >&5
+-echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
+-if test "${cf_cv_utf8_lib+set}" = set; then
++CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
++
++cf_add_libs="`$NCURSES_CONFIG --libs`"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++# even with config script, some packages use no-override for curses.h
++
++echo "$as_me:7572: checking if we have identified curses headers" >&5
++echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
++if test "${cf_cv_ncurses_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+- cf_save_LIBS="$LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7246 "configure"
++cf_cv_ncurses_header=none
++for cf_header in \
++ ncursesw/ncurses.h \
++ ncursesw/curses.h \
++ ncurses.h \
++ curses.h
++do
++cat >conftest.$ac_ext <<_ACEOF
++#line 7586 "configure"
+ #include "confdefs.h"
+-
+-#include <stdlib.h>
++#include <${cf_header}>
+ int
+ main ()
+ {
+-putwc(0,0);
++initscr(); tgoto("?", 0,0)
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7259: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7598: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7262: \$? = $ac_status" >&5
++ echo "$as_me:7601: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7265: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7604: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7268: \$? = $ac_status" >&5
++ echo "$as_me:7607: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_utf8_lib=yes
++ cf_cv_ncurses_header=$cf_header; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
+
+-# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+-# will be set on completion of the AC_TRY_LINK below.
+-cf_cv_header_path_utf8=
+-cf_cv_library_path_utf8=
++fi
++echo "$as_me:7618: result: $cf_cv_ncurses_header" >&5
++echo "${ECHO_T}$cf_cv_ncurses_header" >&6
+
+-echo "${as_me:-configure}:7280: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
++if test "$cf_cv_ncurses_header" = none ; then
++ { { echo "$as_me:7622: error: No curses header-files found" >&5
++echo "$as_me: error: No curses header-files found" >&2;}
++ { (exit 1); exit 1; }; }
++fi
+
+-cf_save_LIBS="$LIBS"
++# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 7285 "configure"
++for ac_header in $cf_cv_ncurses_header
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:7632: 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 7638 "configure"
+ #include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:7642: \"$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:7648: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:7667: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
+
+-#include <libutf8.h>
++fi
++done
++
++cat >>confdefs.h <<\EOF
++#define NCURSES 1
++EOF
++
++cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >>confdefs.h <<EOF
++#define $cf_nculib_ROOT 1
++EOF
++
++cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
++
++else
++
++cf_ncuhdr_root=ncursesw
++
++test -n "$cf_cv_curses_dir" && \
++test "$cf_cv_curses_dir" != "no" && { \
++
++if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
++ for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
++ fi
++
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7720 "configure"
++#include "confdefs.h"
++#include <stdio.h>
+ int
+ main ()
+ {
+-putwc(0,0);
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7298: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7732: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7301: \$? = $ac_status" >&5
++ echo "$as_me:7735: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7304: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7738: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7307: \$? = $ac_status" >&5
++ echo "$as_me:7741: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- cf_cv_find_linkage_utf8=yes
+- cf_cv_header_path_utf8=/usr/include
+- cf_cv_library_path_utf8=/usr/lib
+-
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_have_incdir=yes
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
+
+-LIBS="-lutf8 $cf_save_LIBS"
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 7321 "configure"
++echo "${as_me:-configure}:7758: testing adding $cf_add_incdir to include-path ..." 1>&5
++
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++
++ cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
++ test "$cf_top_incdir" = "$cf_add_incdir" && break
++ cf_add_incdir="$cf_top_incdir"
++ else
++ break
++ fi
++ fi
++ done
++ done
++fi
++
++}
++
++echo "$as_me:7775: checking for $cf_ncuhdr_root header in include-path" >&5
++echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
++if test "${cf_cv_ncurses_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++ cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
++ ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
++ for cf_header in $cf_header_list
++ do
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7787 "configure"
+ #include "confdefs.h"
+
+-#include <libutf8.h>
++#define _XOPEN_SOURCE_EXTENDED
++#undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
++#define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
++
++#include <$cf_header>
+ int
+ main ()
+ {
+-putwc(0,0);
++
++#ifdef NCURSES_VERSION
++
++#ifndef WACS_BSSB
++ make an error
++#endif
++
++printf("%s\n", NCURSES_VERSION);
++#else
++#ifdef __NCURSES_H
++printf("old\n");
++#else
++ make an error
++#endif
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7334: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:7819: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7337: \$? = $ac_status" >&5
++ echo "$as_me:7822: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7340: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:7825: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7343: \$? = $ac_status" >&5
++ echo "$as_me:7828: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- cf_cv_find_linkage_utf8=yes
+- cf_cv_header_path_utf8=/usr/include
+- cf_cv_library_path_utf8=/usr/lib
+- cf_cv_library_file_utf8="-lutf8"
++ cf_cv_ncurses_h=$cf_header
+
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_cv_ncurses_h=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+
+- cf_cv_find_linkage_utf8=no
+- LIBS="$cf_save_LIBS"
++ test "$cf_cv_ncurses_h" != no && break
++ done
+
+- test -n "$verbose" && echo " find linkage for utf8 library" 1>&6
++fi
++echo "$as_me:7843: result: $cf_cv_ncurses_h" >&5
++echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+
+-echo "${as_me:-configure}:7360: testing find linkage for utf8 library ..." 1>&5
++if test "$cf_cv_ncurses_h" != no ; then
++ cf_cv_ncurses_header=$cf_cv_ncurses_h
++else
+
+-echo "${as_me:-configure}:7362: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
++echo "$as_me:7850: checking for $cf_ncuhdr_root include-path" >&5
++echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
++if test "${cf_cv_ncurses_h2+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+
+- cf_save_CPPFLAGS="$CPPFLAGS"
+- cf_test_CPPFLAGS="$CPPFLAGS"
++ test -n "$verbose" && echo
+
+ cf_search=
+
+@@ -7375,15 +7866,15 @@
+ -I*)
+ cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+
+-test "$cf_header_path" != "NONE" && \
++test "x$cf_header_path" != "xNONE" && \
+ test -d "$cf_header_path" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+ test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
+- test -d $cf_header_path/include/utf8 && cf_search="$cf_search $cf_header_path/include/utf8"
+- test -d $cf_header_path/include/utf8/include && cf_search="$cf_search $cf_header_path/include/utf8/include"
+- test -d $cf_header_path/utf8/include && cf_search="$cf_search $cf_header_path/utf8/include"
+- test -d $cf_header_path/utf8/include/utf8 && cf_search="$cf_search $cf_header_path/utf8/include/utf8"
++ test -d $cf_header_path/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
++ test -d $cf_header_path/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
++ test -d $cf_header_path/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
++ test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
+ cf_header_path_list="$cf_header_path_list $cf_search"
+@@ -7396,315 +7887,213 @@
+
+ cf_search=
+
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/utf8 && cf_search="$cf_search /usr/include/utf8"
+- test -d /usr/include/utf8/include && cf_search="$cf_search /usr/include/utf8/include"
+- test -d /usr/utf8/include && cf_search="$cf_search /usr/utf8/include"
+- test -d /usr/utf8/include/utf8 && cf_search="$cf_search /usr/utf8/include/utf8"
+-}
+-
+-test "$prefix" != "NONE" && \
++test "x$prefix" != "xNONE" && \
+ test -d "$prefix" && \
+ {
+ test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+ test -d $prefix/include && cf_search="$cf_search $prefix/include"
+- test -d $prefix/include/utf8 && cf_search="$cf_search $prefix/include/utf8"
+- test -d $prefix/include/utf8/include && cf_search="$cf_search $prefix/include/utf8/include"
+- test -d $prefix/utf8/include && cf_search="$cf_search $prefix/utf8/include"
+- test -d $prefix/utf8/include/utf8 && cf_search="$cf_search $prefix/utf8/include/utf8"
++ test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
++ test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
++ test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/utf8 && cf_search="$cf_search /usr/local/include/utf8"
+- test -d /usr/local/include/utf8/include && cf_search="$cf_search /usr/local/include/utf8/include"
+- test -d /usr/local/utf8/include && cf_search="$cf_search /usr/local/utf8/include"
+- test -d /usr/local/utf8/include/utf8 && cf_search="$cf_search /usr/local/utf8/include/utf8"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/utf8 && cf_search="$cf_search /opt/include/utf8"
+- test -d /opt/include/utf8/include && cf_search="$cf_search /opt/include/utf8/include"
+- test -d /opt/utf8/include && cf_search="$cf_search /opt/utf8/include"
+- test -d /opt/utf8/include/utf8 && cf_search="$cf_search /opt/utf8/include/utf8"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/utf8 && cf_search="$cf_search $HOME/include/utf8"
+- test -d $HOME/include/utf8/include && cf_search="$cf_search $HOME/include/utf8/include"
+- test -d $HOME/utf8/include && cf_search="$cf_search $HOME/utf8/include"
+- test -d $HOME/utf8/include/utf8 && cf_search="$cf_search $HOME/utf8/include/utf8"
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
++
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for include-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/include && cf_search="$cf_search $cf_subdir_prefix/include"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root"
++ test -d $cf_subdir_prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/include/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include"
++ test -d $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_subdir_prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+ }
+
++done
++
+ test "$includedir" != NONE && \
+ test "$includedir" != "/usr/include" && \
+ test -d "$includedir" && {
+ test -d $includedir && cf_search="$cf_search $includedir"
+- test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8"
++ test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
+ }
+
+ test "$oldincludedir" != NONE && \
+ test "$oldincludedir" != "/usr/include" && \
+ test -d "$oldincludedir" && {
+ test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
+- test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8"
++ test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
+ }
+
+ cf_search="$cf_search $cf_header_path_list"
+
+- for cf_cv_header_path_utf8 in $cf_search
+- do
+- if test -d $cf_cv_header_path_utf8 ; then
+- test -n "$verbose" && echo " ... testing $cf_cv_header_path_utf8" 1>&6
++ test -n "$verbose" && echo search path $cf_search
++ cf_save2_CPPFLAGS="$CPPFLAGS"
++ for cf_incdir in $cf_search
++ do
+
+-echo "${as_me:-configure}:7475: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
++if test -n "$cf_incdir" ; then
++ for cf_add_incdir in $cf_incdir
++ do
++ while test $cf_add_incdir != /usr/include
++ do
++ if test -d $cf_add_incdir
++ then
++ cf_have_incdir=no
++ if test -n "$CFLAGS$CPPFLAGS" ; then
++ # a loop is needed to ensure we can add subdirs of existing dirs
++ for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
++ if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
++ cf_have_incdir=yes; break
++ fi
++ done
++ fi
+
+- CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7479 "configure"
+-#include "confdefs.h"
+-
+-#include <libutf8.h>
++ if test "$cf_have_incdir" = no ; then
++ if test "$cf_add_incdir" = /usr/local/include ; then
++ if test "$GCC" = yes
++ then
++ cf_save_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 7968 "configure"
++#include "confdefs.h"
++#include <stdio.h>
+ int
+ main ()
+ {
+-putwc(0,0);
++printf("Hello")
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7492: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:7980: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7495: \$? = $ac_status" >&5
++ echo "$as_me:7983: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7498: \"$ac_try\"") >&5
++ { (eval echo "$as_me:7986: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7501: \$? = $ac_status" >&5
++ echo "$as_me:7989: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- test -n "$verbose" && echo " ... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
+-
+-echo "${as_me:-configure}:7506: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+-
+- cf_cv_find_linkage_utf8=maybe
+- cf_test_CPPFLAGS="$CPPFLAGS"
+- break
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-
+- CPPFLAGS="$cf_save_CPPFLAGS"
+-
++cf_have_incdir=yes
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- fi
+- done
+-
+- if test "$cf_cv_find_linkage_utf8" = maybe ; then
+-
+-echo "${as_me:-configure}:7524: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+-
+- cf_save_LIBS="$LIBS"
+- cf_save_LDFLAGS="$LDFLAGS"
++ CPPFLAGS=$cf_save_CPPFLAGS
++ fi
++ fi
++ fi
+
+- if test "$cf_cv_find_linkage_utf8" != yes ; then
++ if test "$cf_have_incdir" = no ; then
++ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-cf_search=
+-cf_library_path_list=""
+-if test -n "${LDFLAGS}${LIBS}" ; then
+- for cf_library_path in $LDFLAGS $LIBS
+- do
+- case $cf_library_path in #(vi
+- -L*)
+- cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
++echo "${as_me:-configure}:8006: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+-test "$cf_library_path" != "NONE" && \
+-test -d "$cf_library_path" && \
+- {
+- test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+- test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
+- test -d $cf_library_path/lib/utf8 && cf_search="$cf_search $cf_library_path/lib/utf8"
+- test -d $cf_library_path/lib/utf8/lib && cf_search="$cf_search $cf_library_path/lib/utf8/lib"
+- test -d $cf_library_path/utf8/lib && cf_search="$cf_search $cf_library_path/utf8/lib"
+- test -d $cf_library_path/utf8/lib/utf8 && cf_search="$cf_search $cf_library_path/utf8/lib/utf8"
+-}
++ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+- cf_library_path_list="$cf_library_path_list $cf_search"
+- ;;
+- 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"
++ else
++ break
++ fi
++ fi
+ done
++ done
+ fi
+
+-cf_search=
+-
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/utf8 && cf_search="$cf_search /usr/lib/utf8"
+- test -d /usr/lib/utf8/lib && cf_search="$cf_search /usr/lib/utf8/lib"
+- test -d /usr/utf8/lib && cf_search="$cf_search /usr/utf8/lib"
+- test -d /usr/utf8/lib/utf8 && cf_search="$cf_search /usr/utf8/lib/utf8"
+-}
+-
+-test "$prefix" != "NONE" && \
+-test -d "$prefix" && \
+- {
+- test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+- test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
+- test -d $prefix/lib/utf8 && cf_search="$cf_search $prefix/lib/utf8"
+- test -d $prefix/lib/utf8/lib && cf_search="$cf_search $prefix/lib/utf8/lib"
+- test -d $prefix/utf8/lib && cf_search="$cf_search $prefix/utf8/lib"
+- test -d $prefix/utf8/lib/utf8 && cf_search="$cf_search $prefix/utf8/lib/utf8"
+-}
+-
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/utf8 && cf_search="$cf_search /usr/local/lib/utf8"
+- test -d /usr/local/lib/utf8/lib && cf_search="$cf_search /usr/local/lib/utf8/lib"
+- test -d /usr/local/utf8/lib && cf_search="$cf_search /usr/local/utf8/lib"
+- test -d /usr/local/utf8/lib/utf8 && cf_search="$cf_search /usr/local/utf8/lib/utf8"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/utf8 && cf_search="$cf_search /opt/lib/utf8"
+- test -d /opt/lib/utf8/lib && cf_search="$cf_search /opt/lib/utf8/lib"
+- test -d /opt/utf8/lib && cf_search="$cf_search /opt/utf8/lib"
+- test -d /opt/utf8/lib/utf8 && cf_search="$cf_search /opt/utf8/lib/utf8"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/utf8 && cf_search="$cf_search $HOME/lib/utf8"
+- test -d $HOME/lib/utf8/lib && cf_search="$cf_search $HOME/lib/utf8/lib"
+- test -d $HOME/utf8/lib && cf_search="$cf_search $HOME/utf8/lib"
+- test -d $HOME/utf8/lib/utf8 && cf_search="$cf_search $HOME/utf8/lib/utf8"
+-}
+-
+-cf_search="$cf_library_path_list $cf_search"
+-
+- for cf_cv_library_path_utf8 in $cf_search
+- do
+- if test -d $cf_cv_library_path_utf8 ; then
+- test -n "$verbose" && echo " ... testing $cf_cv_library_path_utf8" 1>&6
+-
+-echo "${as_me:-configure}:7621: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
++ for cf_header in \
++ ncurses.h \
++ curses.h
++ do
+
+- CPPFLAGS="$cf_test_CPPFLAGS"
+- LIBS="-lutf8 $cf_save_LIBS"
+- LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 7627 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8027 "configure"
+ #include "confdefs.h"
+
+-#include <libutf8.h>
++#include <$cf_header>
+ int
+ main ()
+ {
+-putwc(0,0);
++
++#ifdef NCURSES_VERSION
++
++printf("%s\n", NCURSES_VERSION);
++#else
++#ifdef __NCURSES_H
++printf("old\n");
++#else
++ make an error
++#endif
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:7640: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:8051: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7643: \$? = $ac_status" >&5
++ echo "$as_me:8054: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:7646: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:8057: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7649: \$? = $ac_status" >&5
++ echo "$as_me:8060: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
++ cf_cv_ncurses_h2=$cf_header
+
+- test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6
+-
+-echo "${as_me:-configure}:7654: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+-
+- cf_cv_find_linkage_utf8=yes
+- cf_cv_library_file_utf8="-lutf8"
+- break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-
+- CPPFLAGS="$cf_save_CPPFLAGS"
+- LIBS="$cf_save_LIBS"
+- LDFLAGS="$cf_save_LDFLAGS"
+-
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- fi
+- done
+- CPPFLAGS="$cf_save_CPPFLAGS"
+- LDFLAGS="$cf_save_LDFLAGS"
+- fi
+-
+- else
+- cf_cv_find_linkage_utf8=no
+- fi
+-
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-
++cf_cv_ncurses_h2=no
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-
+-LIBS="$cf_save_LIBS"
++rm -f conftest.$ac_objext conftest.$ac_ext
+
+-if test "$cf_cv_find_linkage_utf8" = yes ; then
+-cf_cv_utf8_lib=add-on
+-else
+-cf_cv_utf8_lib=no
+-fi
++ if test "$cf_cv_ncurses_h2" != no ; then
++ cf_cv_ncurses_h2=$cf_incdir/$cf_header
++ test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
++ break
++ fi
++ test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
++ done
++ CPPFLAGS="$cf_save2_CPPFLAGS"
++ test "$cf_cv_ncurses_h2" != no && break
++ done
++ test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8081: error: not found" >&5
++echo "$as_me: error: not found" >&2;}
++ { (exit 1); exit 1; }; }
+
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:7696: result: $cf_cv_utf8_lib" >&5
+-echo "${ECHO_T}$cf_cv_utf8_lib" >&6
++echo "$as_me:8086: result: $cf_cv_ncurses_h2" >&5
++echo "${ECHO_T}$cf_cv_ncurses_h2" >&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
++ cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
++ cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
++ if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
++ cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
++ fi
+
+-if test -n "$cf_cv_header_path_utf8" ; then
+- for cf_add_incdir in $cf_cv_header_path_utf8
++if test -n "$cf_1st_incdir" ; then
++ for cf_add_incdir in $cf_1st_incdir
+ do
+ while test $cf_add_incdir != /usr/include
+ do
+@@ -7727,7 +8116,7 @@
+ cf_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7730 "configure"
++#line 8119 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -7739,16 +8128,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7742: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8131: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7745: \$? = $ac_status" >&5
++ echo "$as_me:8134: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7748: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8137: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7751: \$? = $ac_status" >&5
++ echo "$as_me:8140: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -7765,7 +8154,7 @@
+ if test "$cf_have_incdir" = no ; then
+ test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+
+-echo "${as_me:-configure}:7768: testing adding $cf_add_incdir to include-path ..." 1>&5
++echo "${as_me:-configure}:8157: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+@@ -7780,2044 +8169,1619 @@
+ done
+ fi
+
+-if test -n "$cf_cv_library_path_utf8" ; then
+- for cf_add_libdir in $cf_cv_library_path_utf8
+- do
+- if test $cf_add_libdir = /usr/lib ; then
+- :
+- elif test -d $cf_add_libdir
+- then
+- cf_have_libdir=no
+- if test -n "$LDFLAGS$LIBS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_libdir in $LDFLAGS $LIBS ; do
+- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+- cf_have_libdir=yes; break
+- fi
+- done
+- fi
+- if test "$cf_have_libdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
+-
+-echo "${as_me:-configure}:7802: testing adding $cf_add_libdir to library-path ..." 1>&5
+-
+- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+- fi
+- fi
+- done
+ fi
+
+- LIBS="$cf_cv_library_file_utf8 $LIBS"
+-fi
++# Set definitions to allow ifdef'ing for ncurses.h
+
+-cf_ncuconfig_root=ncursesw
++case $cf_cv_ncurses_header in # (vi
++*ncurses.h)
+
+-echo "Looking for ${cf_ncuconfig_root}-config"
+-for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+-do
+- # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:7820: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_NCURSES_CONFIG+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- case $NCURSES_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:7837: found $ac_dir/$ac_word" >&5
+- break
+-fi
+-done
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_H 1
++EOF
+
+- ;;
++ ;;
+ esac
+-fi
+-NCURSES_CONFIG=$ac_cv_path_NCURSES_CONFIG
+
+-if test -n "$NCURSES_CONFIG"; then
+- echo "$as_me:7848: result: $NCURSES_CONFIG" >&5
+-echo "${ECHO_T}$NCURSES_CONFIG" >&6
+-else
+- echo "$as_me:7851: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
++case $cf_cv_ncurses_header in # (vi
++ncurses/curses.h|ncurses/ncurses.h)
+
+- test -n "$NCURSES_CONFIG" && break
+-done
+-test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_NCURSES_H 1
++EOF
+
+-if test "$NCURSES_CONFIG" != none ; then
++ ;;
++ncursesw/curses.h|ncursesw/ncurses.h)
+
+-CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+-LIBS="`$NCURSES_CONFIG --libs` $LIBS"
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_NCURSES_H 1
++EOF
+
+-# even with config script, some packages use no-override for curses.h
++ ;;
++esac
+
+-echo "$as_me:7866: checking if we have identified curses headers" >&5
+-echo $ECHO_N "checking if we have identified curses headers... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_header+set}" = set; then
++echo "$as_me:8203: checking for terminfo header" >&5
++echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
++if test "${cf_cv_term_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-cf_cv_ncurses_header=none
+-for cf_header in \
+- ncursesw/curses.h \
+- ncursesw/ncurses.h \
+- curses.h \
+- ncurses.h
++case ${cf_cv_ncurses_header} in #(vi
++*/ncurses.h|*/ncursesw.h) #(vi
++ cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
++ ;;
++*)
++ cf_term_header=term.h
++ ;;
++esac
++
++for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+ do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7880 "configure"
++#line 8221 "configure"
+ #include "confdefs.h"
+-#include <${cf_header}>
++#include <stdio.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_test>
++
+ int
+ main ()
+ {
+-initscr(); tgoto("?", 0,0)
++int x = auto_left_margin
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:7892: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:8236: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:7895: \$? = $ac_status" >&5
++ echo "$as_me:8239: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:7898: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8242: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:7901: \$? = $ac_status" >&5
++ echo "$as_me:8245: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_header=$cf_header; break
++
++ cf_cv_term_header="$cf_test"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++
++ cf_cv_term_header=unknown
++
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++ test "$cf_cv_term_header" != unknown && break
+ done
+
+ fi
+-echo "$as_me:7912: result: $cf_cv_ncurses_header" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_header" >&6
++echo "$as_me:8261: result: $cf_cv_term_header" >&5
++echo "${ECHO_T}$cf_cv_term_header" >&6
+
+-if test "$cf_cv_ncurses_header" = none ; then
+- { { echo "$as_me:7916: error: No curses header-files found" >&5
+-echo "$as_me: error: No curses header-files found" >&2;}
+- { (exit 1); exit 1; }; }
+-fi
++# Set definitions to allow ifdef'ing to accommodate subdirectories
+
+-# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
++case $cf_cv_term_header in # (vi
++*term.h)
+
+-for ac_header in $cf_cv_ncurses_header
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:7926: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
++cat >>confdefs.h <<\EOF
++#define HAVE_TERM_H 1
++EOF
++
++ ;;
++esac
++
++case $cf_cv_term_header in # (vi
++ncurses/term.h) #(vi
++
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_TERM_H 1
++EOF
++
++ ;;
++ncursesw/term.h)
++
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_TERM_H 1
++EOF
++
++ ;;
++esac
++
++# some applications need this, but should check for NCURSES_VERSION
++
++cat >>confdefs.h <<\EOF
++#define NCURSES 1
++EOF
++
++echo "$as_me:8299: checking for ncurses version" >&5
++echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
++if test "${cf_cv_ncurses_version+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
++
++ cf_cv_ncurses_version=no
++ cf_tempfile=out$$
++ rm -f $cf_tempfile
++ if test "$cross_compiling" = yes; then
++
++ # This will not work if the preprocessor splits the line after the
++ # Autoconf token. The 'unproto' program does that.
++ cat > conftest.$ac_ext <<EOF
++#include <${cf_cv_ncurses_header:-curses.h}>
++#undef Autoconf
++#ifdef NCURSES_VERSION
++Autoconf NCURSES_VERSION
++#else
++#ifdef __NCURSES_H
++Autoconf "old"
++#endif
++;
++#endif
++EOF
++ cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
++ { (eval echo "$as_me:8325: \"$cf_try\"") >&5
++ (eval $cf_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8328: \$? = $ac_status" >&5
++ (exit $ac_status); }
++ if test -f conftest.out ; then
++ cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
++ test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
++ rm -f conftest.out
++ fi
++
++else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 7932 "configure"
++#line 8338 "configure"
+ #include "confdefs.h"
+-#include <$ac_header>
++
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <stdio.h>
++int main()
++{
++ FILE *fp = fopen("$cf_tempfile", "w");
++#ifdef NCURSES_VERSION
++# ifdef NCURSES_VERSION_PATCH
++ fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
++# else
++ fprintf(fp, "%s\n", NCURSES_VERSION);
++# endif
++#else
++# ifdef __NCURSES_H
++ fprintf(fp, "old\n");
++# else
++ make an error
++# endif
++#endif
++ ${cf_cv_main_return:-return}(0);
++}
+ _ACEOF
+-if { (eval echo "$as_me:7936: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:8363: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:7942: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- eval "$as_ac_Header=yes"
++ echo "$as_me:8366: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:8368: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:8371: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++
++ cf_cv_ncurses_version=`cat $cf_tempfile`
+ else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- eval "$as_ac_Header=no"
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:7961: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-EOF
++ rm -f $cf_tempfile
+
+ fi
+-done
+-
++echo "$as_me:8385: result: $cf_cv_ncurses_version" >&5
++echo "${ECHO_T}$cf_cv_ncurses_version" >&6
++test "$cf_cv_ncurses_version" = no ||
+ cat >>confdefs.h <<\EOF
+ #define NCURSES 1
+ EOF
+
+-cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-
+-cat >>confdefs.h <<EOF
+-#define $cf_nculib_ROOT 1
+-EOF
+-
+-cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+-
++cf_nculib_root=ncursesw
++ # This works, except for the special case where we find gpm, but
++ # ncurses is in a nonstandard location via $LIBS, and we really want
++ # to link gpm.
++cf_ncurses_LIBS=""
++cf_ncurses_SAVE="$LIBS"
++echo "$as_me:8398: checking for Gpm_Open in -lgpm" >&5
++echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
++if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
+-cf_ncuhdr_root=ncursesw
+-
+-test -n "$cf_cv_curses_dir" && \
+-test "$cf_cv_curses_dir" != "no" && { \
+-
+-if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
+- for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
+- do
+- while test $cf_add_incdir != /usr/include
+- do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8014 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lgpm $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 8406 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char Gpm_Open ();
+ int
+ main ()
+ {
+-printf("Hello")
++Gpm_Open ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8026: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:8425: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8029: \$? = $ac_status" >&5
++ echo "$as_me:8428: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8032: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:8431: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8035: \$? = $ac_status" >&5
++ echo "$as_me:8434: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ ac_cv_lib_gpm_Gpm_Open=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
++ac_cv_lib_gpm_Gpm_Open=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+-
+-echo "${as_me:-configure}:8052: testing adding $cf_add_incdir to include-path ..." 1>&5
+-
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+-
+- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+- test "$cf_top_incdir" = "$cf_add_incdir" && break
+- cf_add_incdir="$cf_top_incdir"
+- else
+- break
+- fi
+- fi
+- done
+- done
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-
+-}
+-
+-echo "$as_me:8069: checking for $cf_ncuhdr_root header in include-path" >&5
+-echo $ECHO_N "checking for $cf_ncuhdr_root header in include-path... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_h+set}" = set; then
++echo "$as_me:8445: result: $ac_cv_lib_gpm_Gpm_Open" >&5
++echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
++if test $ac_cv_lib_gpm_Gpm_Open = yes; then
++ echo "$as_me:8448: checking for initscr in -lgpm" >&5
++echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
++if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
+- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
+- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
+- for cf_header in $cf_header_list
+- do
+-
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8081 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lgpm $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 8456 "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>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
+ int
+ main ()
+ {
+-
+-#ifdef NCURSES_VERSION
+-
+-#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
+-
++initscr ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8113: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:8475: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8116: \$? = $ac_status" >&5
++ echo "$as_me:8478: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8119: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:8481: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8122: \$? = $ac_status" >&5
++ echo "$as_me:8484: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_h=$cf_header
+-
++ ac_cv_lib_gpm_initscr=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_ncurses_h=no
++ac_cv_lib_gpm_initscr=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-
+- test "$cf_cv_ncurses_h" != no && break
+- done
+-
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:8137: result: $cf_cv_ncurses_h" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_h" >&6
+-
+-if test "$cf_cv_ncurses_h" != no ; then
+- cf_cv_ncurses_header=$cf_cv_ncurses_h
+-else
+-
+-echo "$as_me:8144: checking for $cf_ncuhdr_root include-path" >&5
+-echo $ECHO_N "checking for $cf_ncuhdr_root include-path... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_h2+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++echo "$as_me:8495: result: $ac_cv_lib_gpm_initscr" >&5
++echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
++if test $ac_cv_lib_gpm_initscr = yes; then
++ LIBS="$cf_ncurses_SAVE"
+ else
+-
+- test -n "$verbose" && echo
+-
+-cf_search=
+-
+-# collect the current set of include-directories from compiler flags
+-cf_header_path_list=""
+-if test -n "${CFLAGS}${CPPFLAGS}" ; then
+- for cf_header_path in $CPPFLAGS $CFLAGS
+- do
+- case $cf_header_path in #(vi
+- -I*)
+- cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+-
+-test "$cf_header_path" != "NONE" && \
+-test -d "$cf_header_path" && \
+- {
+- test -n "$verbose" && echo " ... testing for include-directories under $cf_header_path"
+- test -d $cf_header_path/include && cf_search="$cf_search $cf_header_path/include"
+- test -d $cf_header_path/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
+- test -d $cf_header_path/include/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
+- test -d $cf_header_path/$cf_ncuhdr_root/include && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
+- test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+- cf_header_path_list="$cf_header_path_list $cf_search"
+- ;;
+- esac
+- done
++ cf_ncurses_LIBS="-lgpm"
+ fi
+
+-# add the variations for the package we are looking for
+-
+-cf_search=
+-
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr"
+- test -d /usr/include && cf_search="$cf_search /usr/include"
+- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$prefix" != "NONE" && \
+-test -d "$prefix" && \
+- {
+- test -n "$verbose" && echo " ... testing for include-directories under $prefix"
+- test -d $prefix/include && cf_search="$cf_search $prefix/include"
+- test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
+- test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
+- test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
+- test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
+- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
+- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under /opt"
+- test -d /opt/include && cf_search="$cf_search /opt/include"
+- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
+- test -d $HOME/include && cf_search="$cf_search $HOME/include"
+- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+-}
+-
+-test "$includedir" != NONE && \
+-test "$includedir" != "/usr/include" && \
+-test -d "$includedir" && {
+- test -d $includedir && cf_search="$cf_search $includedir"
+- test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
+-}
+-
+-test "$oldincludedir" != NONE && \
+-test "$oldincludedir" != "/usr/include" && \
+-test -d "$oldincludedir" && {
+- test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
+- test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
+-}
+-
+-cf_search="$cf_search $cf_header_path_list"
+-
+- test -n "$verbose" && echo search path $cf_search
+- cf_save2_CPPFLAGS="$CPPFLAGS"
+- for cf_incdir in $cf_search
+- do
+-
+-if test -n "$cf_incdir" ; then
+- for cf_add_incdir in $cf_incdir
+- do
+- while test $cf_add_incdir != /usr/include
+- do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
+- fi
++fi
+
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8284 "configure"
++case $host_os in #(vi
++freebsd*)
++ # This is only necessary if you are linking against an obsolete
++ # version of ncurses (but it should do no harm, since it's static).
++ if test "$cf_nculib_root" = ncurses ; then
++ echo "$as_me:8510: checking for tgoto in -lmytinfo" >&5
++echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
++if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lmytinfo $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 8518 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char tgoto ();
+ int
+ main ()
+ {
+-printf("Hello")
++tgoto ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8296: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:8537: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8299: \$? = $ac_status" >&5
++ echo "$as_me:8540: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8302: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:8543: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8305: \$? = $ac_status" >&5
++ echo "$as_me:8546: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ ac_cv_lib_mytinfo_tgoto=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
++ac_cv_lib_mytinfo_tgoto=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:8557: result: $ac_cv_lib_mytinfo_tgoto" >&5
++echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
++if test $ac_cv_lib_mytinfo_tgoto = yes; then
++ cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
+-
+-echo "${as_me:-configure}:8322: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++ fi
++ ;;
++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"
+- else
+- break
++cf_add_libs="$cf_ncurses_LIBS"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
+ fi
+- fi
+ done
+- done
+-fi
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- for cf_header in \
+- ncurses.h \
+- curses.h
+- do
++if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
++then
+
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8343 "configure"
++cf_add_libs="-l$cf_nculib_root"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++else
++
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
++ cf_libdir=""
++ echo "$as_me:8606: checking for initscr" >&5
++echo $ECHO_N "checking for initscr... $ECHO_C" >&6
++if test "${ac_cv_func_initscr+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8612 "configure"
+ #include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char initscr (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char initscr ();
++char (*f) ();
+
+-#include <$cf_header>
+ int
+ main ()
+ {
+-
+-#ifdef NCURSES_VERSION
+-
+-printf("%s\n", NCURSES_VERSION);
+-#else
+-#ifdef __NCURSES_H
+-printf("old\n");
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_initscr) || defined (__stub___initscr)
++choke me
+ #else
+- make an error
+-#endif
++f = initscr; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8367: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:8643: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8370: \$? = $ac_status" >&5
++ echo "$as_me:8646: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8373: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:8649: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8376: \$? = $ac_status" >&5
++ echo "$as_me:8652: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_h2=$cf_header
+-
++ ac_cv_func_initscr=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_ncurses_h2=no
++ac_cv_func_initscr=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-
+- if test "$cf_cv_ncurses_h2" != no ; then
+- cf_cv_ncurses_h2=$cf_incdir/$cf_header
+- test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
+- break
+- fi
+- test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
+- done
+- CPPFLAGS="$cf_save2_CPPFLAGS"
+- test "$cf_cv_ncurses_h2" != no && break
+- done
+- test "$cf_cv_ncurses_h2" = no && { { echo "$as_me:8397: error: not found" >&5
+-echo "$as_me: error: not found" >&2;}
+- { (exit 1); exit 1; }; }
+-
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:8402: result: $cf_cv_ncurses_h2" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_h2" >&6
+-
+- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+- cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
+- if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
+- cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
+- fi
+-
+-if test -n "$cf_1st_incdir" ; then
+- for cf_add_incdir in $cf_1st_incdir
+- do
+- while test $cf_add_incdir != /usr/include
+- do
+- if test -d $cf_add_incdir
+- then
+- cf_have_incdir=no
+- if test -n "$CFLAGS$CPPFLAGS" ; then
+- # a loop is needed to ensure we can add subdirs of existing dirs
+- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+- cf_have_incdir=yes; break
+- fi
+- done
+- fi
++echo "$as_me:8662: result: $ac_cv_func_initscr" >&5
++echo "${ECHO_T}$ac_cv_func_initscr" >&6
++if test $ac_cv_func_initscr = yes; then
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++else
+
+- if test "$cf_have_incdir" = no ; then
+- if test "$cf_add_incdir" = /usr/local/include ; then
+- if test "$GCC" = yes
+- then
+- cf_save_CPPFLAGS=$CPPFLAGS
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8435 "configure"
++ cf_save_LIBS="$LIBS"
++ echo "$as_me:8669: checking for initscr in -l$cf_nculib_root" >&5
++echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
++ LIBS="-l$cf_nculib_root $LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8673 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-printf("Hello")
++initscr()
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8447: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:8685: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8450: \$? = $ac_status" >&5
++ echo "$as_me:8688: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8453: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:8691: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8456: \$? = $ac_status" >&5
++ echo "$as_me:8694: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ echo "$as_me:8696: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_have_incdir=yes
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- CPPFLAGS=$cf_save_CPPFLAGS
+- fi
+- fi
+- fi
+-
+- if test "$cf_have_incdir" = no ; then
+- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
++echo "$as_me:8703: result: no" >&5
++echo "${ECHO_T}no" >&6
+
+-echo "${as_me:-configure}:8473: testing adding $cf_add_incdir to include-path ..." 1>&5
++cf_search=
++cf_library_path_list=""
++if test -n "${LDFLAGS}${LIBS}" ; then
++ for cf_library_path in $LDFLAGS $LIBS
++ do
++ case $cf_library_path in #(vi
++ -L*)
++ cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
++test "x$cf_library_path" != "xNONE" && \
++test -d "$cf_library_path" && \
++ {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
++ test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
++ test -d $cf_library_path/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
++ test -d $cf_library_path/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
++ test -d $cf_library_path/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
++ test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
++}
+
+- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+- test "$cf_top_incdir" = "$cf_add_incdir" && break
+- cf_add_incdir="$cf_top_incdir"
+- else
+- break
+- fi
+- fi
++ cf_library_path_list="$cf_library_path_list $cf_search"
++ ;;
++ esac
+ done
+- done
+-fi
+-
+ fi
+
+-# Set definitions to allow ifdef'ing for ncurses.h
+-
+-case $cf_cv_ncurses_header in # (vi
+-*ncurses.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_H 1
+-EOF
+-
+- ;;
+-esac
++cf_search=
+
+-case $cf_cv_ncurses_header in # (vi
+-ncurses/curses.h|ncurses/ncurses.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_NCURSES_H 1
+-EOF
++test "x$prefix" != "xNONE" && \
++test -d "$prefix" && \
++ {
++ test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
++ test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
++ test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
++ test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
++ test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
++ test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
++}
+
+- ;;
+-ncursesw/curses.h|ncursesw/ncurses.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSESW_NCURSES_H 1
+-EOF
++for cf_subdir_prefix in \
++ /usr \
++ /usr/local \
++ /usr/pkg \
++ /opt \
++ /opt/local \
++ $HOME
++do
+
+- ;;
+-esac
++test "x$cf_subdir_prefix" != "x$prefix" && \
++test -d "$cf_subdir_prefix" && \
++(test -z "$prefix" || test x$prefix = xNONE || test "x$cf_subdir_prefix" != "x$prefix") && {
++ test -n "$verbose" && echo " ... testing for lib-directories under $cf_subdir_prefix"
++ test -d $cf_subdir_prefix/lib && cf_search="$cf_search $cf_subdir_prefix/lib"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root"
++ test -d $cf_subdir_prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/lib/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib"
++ test -d $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_subdir_prefix/$cf_nculib_root/lib/$cf_nculib_root"
++}
+
+-echo "$as_me:8516: checking for terminfo header" >&5
+-echo $ECHO_N "checking for terminfo header... $ECHO_C" >&6
+-if test "${cf_cv_term_header+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++done
+
+-case ${cf_cv_ncurses_header} in #(vi
+-*/ncurses.h|*/ncursesw.h) #(vi
+- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
+- ;;
+-*)
+- cf_term_header=term.h
+- ;;
+-esac
++cf_search="$cf_library_path_list $cf_search"
+
+-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
+-do
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 8534 "configure"
++ for cf_libdir in $cf_search
++ do
++ echo "$as_me:8771: checking for -l$cf_nculib_root in $cf_libdir" >&5
++echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
++ LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8775 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+-#include <$cf_test>
+-
+ int
+ main ()
+ {
+-int x = auto_left_margin
++initscr()
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:8549: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:8787: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8552: \$? = $ac_status" >&5
++ echo "$as_me:8790: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:8555: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:8793: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8558: \$? = $ac_status" >&5
++ echo "$as_me:8796: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+-
+- cf_cv_term_header="$cf_test"
++ echo "$as_me:8798: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-
+- cf_cv_term_header=unknown
++echo "$as_me:8805: result: no" >&5
++echo "${ECHO_T}no" >&6
++ LIBS="$cf_save_LIBS"
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ done
+
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- test "$cf_cv_term_header" != unknown && break
+-done
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+ fi
+-echo "$as_me:8574: result: $cf_cv_term_header" >&5
+-echo "${ECHO_T}$cf_cv_term_header" >&6
+
+-# Set definitions to allow ifdef'ing to accommodate subdirectories
++eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+
+-case $cf_cv_term_header in # (vi
+-*term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_TERM_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-case $cf_cv_term_header in # (vi
+-ncurses/term.h) #(vi
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_TERM_H 1
+-EOF
+-
+- ;;
+-ncursesw/term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSESW_TERM_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-# some applications need this, but should check for NCURSES_VERSION
+-cat >>confdefs.h <<\EOF
+-#define NCURSES 1
+-EOF
+-
+-echo "$as_me:8608: checking for ncurses version" >&5
+-echo $ECHO_N "checking for ncurses version... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_version+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+- cf_cv_ncurses_version=no
+- cf_tempfile=out$$
+- rm -f $cf_tempfile
+- if test "$cross_compiling" = yes; then
+-
+- # This will not work if the preprocessor splits the line after the
+- # Autoconf token. The 'unproto' program does that.
+- cat > conftest.$ac_ext <<EOF
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#undef Autoconf
+-#ifdef NCURSES_VERSION
+-Autoconf NCURSES_VERSION
+-#else
+-#ifdef __NCURSES_H
+-Autoconf "old"
+-#endif
+-;
+-#endif
+-EOF
+- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+- { (eval echo "$as_me:8634: \"$cf_try\"") >&5
+- (eval $cf_try) 2>&5
+- ac_status=$?
+- echo "$as_me:8637: \$? = $ac_status" >&5
+- (exit $ac_status); }
+- if test -f conftest.out ; then
+- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
+- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
+- rm -f conftest.out
+- fi
+-
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8647 "configure"
+-#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
+- ${cf_cv_main_return:-return}(0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:8672: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:8675: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:8677: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:8680: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+-
+- cf_cv_ncurses_version=`cat $cf_tempfile`
+-else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++if test $cf_found_library = no ; then
++ { { echo "$as_me:8820: error: Cannot link $cf_nculib_root library" >&5
++echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+- rm -f $cf_tempfile
+
+ fi
+-echo "$as_me:8694: result: $cf_cv_ncurses_version" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_version" >&6
+-test "$cf_cv_ncurses_version" = no || cat >>confdefs.h <<\EOF
+-#define NCURSES 1
+-EOF
+-
+-cf_nculib_root=ncursesw
+- # This works, except for the special case where we find gpm, but
+- # ncurses is in a nonstandard location via $LIBS, and we really want
+- # to link gpm.
+-cf_ncurses_LIBS=""
+-cf_ncurses_SAVE="$LIBS"
+-echo "$as_me:8706: checking for Gpm_Open in -lgpm" >&5
+-echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
+-if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgpm $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 8714 "configure"
+-#include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char Gpm_Open ();
+-int
+-main ()
+-{
+-Gpm_Open ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8733: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:8736: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8739: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:8742: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_gpm_Gpm_Open=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_gpm_Gpm_Open=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:8753: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+-echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
+-if test $ac_cv_lib_gpm_Gpm_Open = yes; then
+- echo "$as_me:8756: checking for initscr in -lgpm" >&5
+-echo $ECHO_N "checking for initscr in -lgpm... $ECHO_C" >&6
+-if test "${ac_cv_lib_gpm_initscr+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgpm $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 8764 "configure"
++if test -n "$cf_ncurses_LIBS" ; then
++ echo "$as_me:8828: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
++echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
++ cf_ncurses_SAVE="$LIBS"
++ for p in $cf_ncurses_LIBS ; do
++ q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
++ if test "$q" != "$LIBS" ; then
++ LIBS="$q"
++ fi
++ done
++ cat >conftest.$ac_ext <<_ACEOF
++#line 8838 "configure"
+ #include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-initscr ();
++initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8783: \"$ac_link\"") >&5
++if { (eval echo "$as_me:8850: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8786: \$? = $ac_status" >&5
++ echo "$as_me:8853: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8789: \"$ac_try\"") >&5
++ { (eval echo "$as_me:8856: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8792: \$? = $ac_status" >&5
++ echo "$as_me:8859: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_gpm_initscr=yes
++ echo "$as_me:8861: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_gpm_initscr=no
++echo "$as_me:8866: result: no" >&5
++echo "${ECHO_T}no" >&6
++ LIBS="$cf_ncurses_SAVE"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:8803: result: $ac_cv_lib_gpm_initscr" >&5
+-echo "${ECHO_T}$ac_cv_lib_gpm_initscr" >&6
+-if test $ac_cv_lib_gpm_initscr = yes; then
+- LIBS="$cf_ncurses_SAVE"
+-else
+- cf_ncurses_LIBS="-lgpm"
+ fi
+
+-fi
++cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+-case $host_os in #(vi
+-freebsd*)
+- # This is only necessary if you are linking against an obsolete
+- # version of ncurses (but it should do no harm, since it's static).
+- if test "$cf_nculib_root" = ncurses ; then
+- echo "$as_me:8818: checking for tgoto in -lmytinfo" >&5
+-echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
+-if test "${ac_cv_lib_mytinfo_tgoto+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmytinfo $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 8826 "configure"
+-#include "confdefs.h"
++cat >>confdefs.h <<EOF
++#define $cf_nculib_ROOT 1
++EOF
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char tgoto ();
+-int
+-main ()
+-{
+-tgoto ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8845: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:8848: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8851: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:8854: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_mytinfo_tgoto=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_mytinfo_tgoto=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:8865: result: $ac_cv_lib_mytinfo_tgoto" >&5
+-echo "${ECHO_T}$ac_cv_lib_mytinfo_tgoto" >&6
+-if test $ac_cv_lib_mytinfo_tgoto = yes; then
+- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+ fi
+
+- fi
+ ;;
+-esac
+-
+-LIBS="$cf_ncurses_LIBS $LIBS"
++pdcurses)
++ echo "$as_me:8883: checking for X" >&5
++echo $ECHO_N "checking for X... $ECHO_C" >&6
+
+-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+-then
+- LIBS="-l$cf_nculib_root $LIBS"
+-else
++# Check whether --with-x or --without-x was given.
++if test "${with_x+set}" = set; then
++ withval="$with_x"
+
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+- cf_libdir=""
+- echo "$as_me:8884: checking for initscr" >&5
+-echo $ECHO_N "checking for initscr... $ECHO_C" >&6
+-if test "${ac_cv_func_initscr+set}" = set; then
++fi;
++# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
++if test "x$with_x" = xno; then
++ # The user explicitly disabled X.
++ have_x=disabled
++else
++ if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
++ # Both variables are already set.
++ have_x=yes
++ else
++ if test "${ac_cv_have_x+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
++ # One or both of the vars are not set, and there is no cached value.
++ac_x_includes=no ac_x_libraries=no
++rm -fr conftest.dir
++if mkdir conftest.dir; then
++ cd conftest.dir
++ # Make sure to not put "make" in the Imakefile rules, since we grep it out.
++ cat >Imakefile <<'EOF'
++acfindx:
++ @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
++EOF
++ if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
++ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
++ eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
++ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
++ for ac_extension in a so sl dylib dll; do
++ if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
++ test -f $ac_im_libdir/libX11.$ac_extension; then
++ ac_im_usrlibdir=$ac_im_libdir; break
++ fi
++ done
++ # Screen out bogus values from the imake configuration. They are
++ # bogus both because they are the default anyway, and because
++ # using them would break gcc on systems where it needs fixed includes.
++ case $ac_im_incroot in
++ /usr/include) ;;
++ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
++ esac
++ case $ac_im_usrlibdir in
++ /usr/lib | /lib) ;;
++ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
++ esac
++ fi
++ cd ..
++ rm -fr conftest.dir
++fi
++
++# Standard set of common directories for X headers.
++# Check X11 before X11Rn because it is often a symlink to the current release.
++ac_x_header_dirs='
++/usr/X11/include
++/usr/X11R6/include
++/usr/X11R5/include
++/usr/X11R4/include
++
++/usr/include/X11
++/usr/include/X11R6
++/usr/include/X11R5
++/usr/include/X11R4
++
++/usr/local/X11/include
++/usr/local/X11R6/include
++/usr/local/X11R5/include
++/usr/local/X11R4/include
++
++/usr/local/include/X11
++/usr/local/include/X11R6
++/usr/local/include/X11R5
++/usr/local/include/X11R4
++
++/usr/X386/include
++/usr/x386/include
++/usr/XFree86/include/X11
++
++/usr/include
++/usr/local/include
++/usr/unsupported/include
++/usr/athena/include
++/usr/local/x11r5/include
++/usr/lpp/Xamples/include
++
++/usr/openwin/include
++/usr/openwin/share/include'
++
++if test "$ac_x_includes" = no; then
++ # Guess where to find include files, by looking for Intrinsic.h.
++ # First, try using that file with no special directory specified.
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 8890 "configure"
++#line 8980 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char initscr (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char initscr ();
+-char (*f) ();
++#include <X11/Intrinsic.h>
++_ACEOF
++if { (eval echo "$as_me:8984: \"$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:8990: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ # We can compile using X headers with no special include directory.
++ac_x_includes=
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ for ac_dir in $ac_x_header_dirs; do
++ if test -r "$ac_dir/X11/Intrinsic.h"; then
++ ac_x_includes=$ac_dir
++ break
++ fi
++done
++fi
++rm -f conftest.err conftest.$ac_ext
++fi # $ac_x_includes = no
+
++if test "$ac_x_libraries" = no; then
++ # Check for the libraries.
++ # See if we find them without any special options.
++ # Don't add to $LIBS permanently.
++ ac_save_LIBS=$LIBS
++ LIBS="-lXt $LIBS"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9023 "configure"
++#include "confdefs.h"
++#include <X11/Intrinsic.h>
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_initscr) || defined (__stub___initscr)
+-choke me
+-#else
+-f = initscr;
+-#endif
+-
++XtMalloc (0)
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8921: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9035: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8924: \$? = $ac_status" >&5
++ echo "$as_me:9038: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8927: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9041: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8930: \$? = $ac_status" >&5
++ echo "$as_me:9044: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_initscr=yes
++ LIBS=$ac_save_LIBS
++# We can link X programs with no special library path.
++ac_x_libraries=
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_initscr=no
++LIBS=$ac_save_LIBS
++for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
++do
++ # Don't even attempt the hair of trying to link an X program!
++ for ac_extension in a so sl dylib dll; do
++ if test -r $ac_dir/libXt.$ac_extension; then
++ ac_x_libraries=$ac_dir
++ break 2
++ fi
++ done
++done
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi # $ac_x_libraries = no
++
++if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
++ # Didn't find X anywhere. Cache the known absence of X.
++ ac_cv_have_x="have_x=no"
++else
++ # Record where we found X for the cache.
++ ac_cv_have_x="have_x=yes \
++ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
+ fi
+-echo "$as_me:8940: result: $ac_cv_func_initscr" >&5
+-echo "${ECHO_T}$ac_cv_func_initscr" >&6
+-if test $ac_cv_func_initscr = yes; then
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
++fi
++
++ fi
++ eval "$ac_cv_have_x"
++fi # $with_x != no
++
++if test "$have_x" != yes; then
++ echo "$as_me:9082: result: $have_x" >&5
++echo "${ECHO_T}$have_x" >&6
++ no_x=yes
+ else
++ # If each of the values was on the command line, it overrides each guess.
++ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
++ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
++ # Update the cache value to reflect the command line values.
++ ac_cv_have_x="have_x=yes \
++ ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
++ echo "$as_me:9092: result: libraries $x_libraries, headers $x_includes" >&5
++echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
++fi
+
+- cf_save_LIBS="$LIBS"
+- echo "$as_me:8947: checking for initscr in -l$cf_nculib_root" >&5
+-echo $ECHO_N "checking for initscr in -l$cf_nculib_root... $ECHO_C" >&6
+- LIBS="-l$cf_nculib_root $LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 8951 "configure"
++if test "$no_x" = yes; then
++ # Not all programs may use this symbol, but it does not hurt to define it.
++
++cat >>confdefs.h <<\EOF
++#define X_DISPLAY_MISSING 1
++EOF
++
++ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
++else
++ if test -n "$x_includes"; then
++ X_CFLAGS="$X_CFLAGS -I$x_includes"
++ fi
++
++ # It would also be nice to do this for all -L options, not just this one.
++ if test -n "$x_libraries"; then
++ X_LIBS="$X_LIBS -L$x_libraries"
++ # For Solaris; some versions of Sun CC require a space after -R and
++ # others require no space. Words are not sufficient . . . .
++ case `(uname -sr) 2>/dev/null` in
++ "SunOS 5"*)
++ echo "$as_me:9116: checking whether -R must be followed by a space" >&5
++echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
++ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9120 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++
+ int
+ main ()
+ {
+-initscr()
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:8963: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9132: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:8966: \$? = $ac_status" >&5
++ echo "$as_me:9135: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:8969: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9138: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:8972: \$? = $ac_status" >&5
++ echo "$as_me:9141: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:8974: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+-
++ ac_R_nospace=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:8981: result: no" >&5
++ac_R_nospace=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ if test $ac_R_nospace = yes; then
++ echo "$as_me:9151: result: no" >&5
+ echo "${ECHO_T}no" >&6
++ X_LIBS="$X_LIBS -R$x_libraries"
++ else
++ LIBS="$ac_xsave_LIBS -R $x_libraries"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9157 "configure"
++#include "confdefs.h"
+
+-cf_search=
+-cf_library_path_list=""
+-if test -n "${LDFLAGS}${LIBS}" ; then
+- for cf_library_path in $LDFLAGS $LIBS
+- do
+- case $cf_library_path in #(vi
+- -L*)
+- cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
++int
++main ()
++{
+
+-test "$cf_library_path" != "NONE" && \
+-test -d "$cf_library_path" && \
+- {
+- test -n "$verbose" && echo " ... testing for lib-directories under $cf_library_path"
+- test -d $cf_library_path/lib && cf_search="$cf_search $cf_library_path/lib"
+- test -d $cf_library_path/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
+- test -d $cf_library_path/lib/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
+- test -d $cf_library_path/$cf_nculib_root/lib && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
+- test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
++ ;
++ return 0;
+ }
+-
+- cf_library_path_list="$cf_library_path_list $cf_search"
+- ;;
+- esac
+- done
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:9169: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:9172: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:9175: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9178: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_R_space=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_R_space=no
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ if test $ac_R_space = yes; then
++ echo "$as_me:9188: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++ X_LIBS="$X_LIBS -R $x_libraries"
++ else
++ echo "$as_me:9192: result: neither works" >&5
++echo "${ECHO_T}neither works" >&6
++ fi
++ fi
++ LIBS=$ac_xsave_LIBS
++ esac
++ fi
+
+-cf_search=
+-
+-test "/usr" != "$prefix" && \
+-test -d "/usr" && \
+-(test $prefix = NONE || test "/usr" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
+- test -d /usr/lib && cf_search="$cf_search /usr/lib"
+- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
+- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
+- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
+-}
++ # Check for system-dependent libraries X programs must link with.
++ # Do this before checking for the system-independent R6 libraries
++ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+-test "$prefix" != "NONE" && \
+-test -d "$prefix" && \
+- {
+- test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
+- test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
+- test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
+- test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
+- test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
+- test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
+-}
++ if test "$ISC" = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
++ else
++ # Martyn Johnson says this is needed for Ultrix, if the X
++ # libraries were built with DECnet support. And Karl Berry says
++ # the Alpha needs dnet_stub (dnet does not exist).
++ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9212 "configure"
++#include "confdefs.h"
+
+-test "/usr/local" != "$prefix" && \
+-test -d "/usr/local" && \
+-(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
+- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
+- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "/opt" != "$prefix" && \
+-test -d "/opt" && \
+-(test $prefix = NONE || test "/opt" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
+- test -d /opt/lib && cf_search="$cf_search /opt/lib"
+- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
+- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
+- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+-}
+-
+-test "$HOME" != "$prefix" && \
+-test -d "$HOME" && \
+-(test $prefix = NONE || test "$HOME" != "$prefix") && {
+- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
+- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
+- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char XOpenDisplay ();
++int
++main ()
++{
++XOpenDisplay ();
++ ;
++ return 0;
+ }
+-
+-cf_search="$cf_library_path_list $cf_search"
+-
+- for cf_libdir in $cf_search
+- do
+- echo "$as_me:9071: checking for -l$cf_nculib_root in $cf_libdir" >&5
+-echo $ECHO_N "checking for -l$cf_nculib_root in $cf_libdir... $ECHO_C" >&6
+- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9075 "configure"
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:9231: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:9234: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:9237: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9240: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++echo "$as_me:9246: checking for dnet_ntoa in -ldnet" >&5
++echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
++if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-ldnet $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 9254 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char dnet_ntoa ();
+ int
+ main ()
+ {
+-initscr()
++dnet_ntoa ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9087: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9273: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9090: \$? = $ac_status" >&5
++ echo "$as_me:9276: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9093: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9279: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9096: \$? = $ac_status" >&5
++ echo "$as_me:9282: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:9098: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+- break
++ ac_cv_lib_dnet_dnet_ntoa=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:9105: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- LIBS="$cf_save_LIBS"
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- done
+-
++ac_cv_lib_dnet_dnet_ntoa=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-
+-fi
+-
+-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+-
+-if test $cf_found_library = no ; then
+- { { echo "$as_me:9120: error: Cannot link $cf_nculib_root library" >&5
+-echo "$as_me: error: Cannot link $cf_nculib_root library" >&2;}
+- { (exit 1); exit 1; }; }
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-
++echo "$as_me:9293: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
++echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
++if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+ fi
+
+-if test -n "$cf_ncurses_LIBS" ; then
+- echo "$as_me:9128: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+-echo $ECHO_N "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS... $ECHO_C" >&6
+- cf_ncurses_SAVE="$LIBS"
+- for p in $cf_ncurses_LIBS ; do
+- q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
+- if test "$q" != "$LIBS" ; then
+- LIBS="$q"
+- fi
+- done
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9138 "configure"
++ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
++ echo "$as_me:9300: checking for dnet_ntoa in -ldnet_stub" >&5
++echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
++if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-ldnet_stub $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 9308 "configure"
+ #include "confdefs.h"
+-#include <${cf_cv_ncurses_header:-curses.h}>
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char dnet_ntoa ();
+ int
+ main ()
+ {
+-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
++dnet_ntoa ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9150: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9327: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9153: \$? = $ac_status" >&5
++ echo "$as_me:9330: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9156: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9333: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9159: \$? = $ac_status" >&5
++ echo "$as_me:9336: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- echo "$as_me:9161: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
++ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-echo "$as_me:9166: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- LIBS="$cf_ncurses_SAVE"
++ac_cv_lib_dnet_stub_dnet_ntoa=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:9347: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
++echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
++if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+ fi
+
+-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-
+-cat >>confdefs.h <<EOF
+-#define $cf_nculib_ROOT 1
+-EOF
+-
++ fi
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ LIBS="$ac_xsave_LIBS"
+
+- ;;
+-pdcurses) #(vi
++ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
++ # to get the SysV transport functions.
++ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
++ # needs -lnsl.
++ # The nsl library prevents programs from opening the X display
++ # on Irix 5.2, according to T.E. Dickey.
++ # The functions gethostbyname, getservbyname, and inet_addr are
++ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
++ echo "$as_me:9366: checking for gethostbyname" >&5
++echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
++if test "${ac_cv_func_gethostbyname+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9372 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char gethostbyname (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char gethostbyname ();
++char (*f) ();
+
+-echo "$as_me:9184: checking if you want to use pkg-config" >&5
+-echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
++choke me
++#else
++f = gethostbyname; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
+
+-# Check whether --with-pkg-config or --without-pkg-config was given.
+-if test "${with_pkg_config+set}" = set; then
+- withval="$with_pkg_config"
+- cf_pkg_config=$withval
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:9403: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:9406: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:9409: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9412: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_func_gethostbyname=yes
+ else
+- cf_pkg_config=yes
+-fi;
+-echo "$as_me:9194: result: $cf_pkg_config" >&5
+-echo "${ECHO_T}$cf_pkg_config" >&6
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_func_gethostbyname=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:9422: result: $ac_cv_func_gethostbyname" >&5
++echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+
+-case $cf_pkg_config in #(vi
+-no) #(vi
+- PKG_CONFIG=none
+- ;;
+-yes) #(vi
+- if test -n "$ac_tool_prefix"; then
+- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+-echo "$as_me:9205: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
++ if test $ac_cv_func_gethostbyname = no; then
++ echo "$as_me:9426: checking for gethostbyname in -lnsl" >&5
++echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
++if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- case $PKG_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:9222: found $ac_dir/$ac_word" >&5
+- break
+-fi
+-done
+-
+- ;;
+-esac
+-fi
+-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lnsl $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 9434 "configure"
++#include "confdefs.h"
+
+-if test -n "$PKG_CONFIG"; then
+- echo "$as_me:9233: result: $PKG_CONFIG" >&5
+-echo "${ECHO_T}$PKG_CONFIG" >&6
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char gethostbyname ();
++int
++main ()
++{
++gethostbyname ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:9453: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:9456: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:9459: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9462: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_nsl_gethostbyname=yes
+ else
+- echo "$as_me:9236: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_lib_nsl_gethostbyname=no
+ fi
+-if test -z "$ac_cv_path_PKG_CONFIG"; then
+- ac_pt_PKG_CONFIG=$PKG_CONFIG
+- # Extract the first word of "pkg-config", so it can be a program name with args.
+-set dummy pkg-config; ac_word=$2
+-echo "$as_me:9245: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- case $ac_pt_PKG_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_ac_pt_PKG_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:9262: found $ac_dir/$ac_word" >&5
+- break
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-done
+-
+- test -z "$ac_cv_path_ac_pt_PKG_CONFIG" && ac_cv_path_ac_pt_PKG_CONFIG="none"
+- ;;
+-esac
++echo "$as_me:9473: result: $ac_cv_lib_nsl_gethostbyname" >&5
++echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
++if test $ac_cv_lib_nsl_gethostbyname = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+ fi
+-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+
+-if test -n "$ac_pt_PKG_CONFIG"; then
+- echo "$as_me:9274: result: $ac_pt_PKG_CONFIG" >&5
+-echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
++ if test $ac_cv_lib_nsl_gethostbyname = no; then
++ echo "$as_me:9480: checking for gethostbyname in -lbsd" >&5
++echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
++if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- echo "$as_me:9277: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lbsd $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 9488 "configure"
++#include "confdefs.h"
+
+- PKG_CONFIG=$ac_pt_PKG_CONFIG
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char gethostbyname ();
++int
++main ()
++{
++gethostbyname ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:9507: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:9510: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:9513: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9516: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_bsd_gethostbyname=yes
+ else
+- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_lib_bsd_gethostbyname=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:9527: result: $ac_cv_lib_bsd_gethostbyname" >&5
++echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
++if test $ac_cv_lib_bsd_gethostbyname = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+ fi
+
+- ;;
+-*)
+- PKG_CONFIG=$withval
+- ;;
+-esac
+-
+-test -z "$PKG_CONFIG" && PKG_CONFIG=none
+-if test "$PKG_CONFIG" != none ; then
++ fi
++ fi
+
+-if test "x$prefix" != xNONE; then
+- cf_path_syntax="$prefix"
++ # lieder@skyler.mavd.honeywell.com says without -lsocket,
++ # socket/setsockopt and other routines are undefined under SCO ODT
++ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
++ # on later versions), says Simon Leinen: it contains gethostby*
++ # variants that don't use the nameserver (or something). -lsocket
++ # must be given before -lnsl if both are needed. We assume that
++ # if connect needs -lnsl, so does gethostbyname.
++ echo "$as_me:9543: checking for connect" >&5
++echo $ECHO_N "checking for connect... $ECHO_C" >&6
++if test "${ac_cv_func_connect+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cf_path_syntax="$ac_default_prefix"
+-fi
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9549 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char connect (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char connect ();
++char (*f) ();
+
+-case ".$PKG_CONFIG" in #(vi
+-.\$\(*\)*|.\'*\'*) #(vi
+- ;;
+-..|./*|.\\*) #(vi
+- ;;
+-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+- ;;
+-.\${*prefix}*) #(vi
+- eval PKG_CONFIG="$PKG_CONFIG"
+- case ".$PKG_CONFIG" in #(vi
+- .NONE/*)
+- PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+- ;;
+- esac
+- ;; #(vi
+-.no|.NONE/*)
+- PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+- ;;
+-*)
+- { { echo "$as_me:9320: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+-echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
+- { (exit 1); exit 1; }; }
+- ;;
+-esac
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_connect) || defined (__stub___connect)
++choke me
++#else
++f = connect; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
+
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:9580: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:9583: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:9586: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:9589: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_func_connect=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_func_connect=no
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:9599: result: $ac_cv_func_connect" >&5
++echo "${ECHO_T}$ac_cv_func_connect" >&6
+
+-echo "$as_me:9328: checking for X" >&5
+-echo $ECHO_N "checking for X... $ECHO_C" >&6
+-
+-# Check whether --with-x or --without-x was given.
+-if test "${with_x+set}" = set; then
+- withval="$with_x"
+-
+-fi;
+-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+-if test "x$with_x" = xno; then
+- # The user explicitly disabled X.
+- have_x=disabled
+-else
+- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
+- # Both variables are already set.
+- have_x=yes
+- else
+- if test "${ac_cv_have_x+set}" = set; then
++ if test $ac_cv_func_connect = no; then
++ echo "$as_me:9603: checking for connect in -lsocket" >&5
++echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
++if test "${ac_cv_lib_socket_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- # One or both of the vars are not set, and there is no cached value.
+-ac_x_includes=no ac_x_libraries=no
+-rm -fr conftest.dir
+-if mkdir conftest.dir; then
+- cd conftest.dir
+- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
+- cat >Imakefile <<'EOF'
+-acfindx:
+- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
+-EOF
+- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
+- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+- for ac_extension in a so sl dylib dll; do
+- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
+- test -f $ac_im_libdir/libX11.$ac_extension; then
+- ac_im_usrlibdir=$ac_im_libdir; break
+- fi
+- done
+- # Screen out bogus values from the imake configuration. They are
+- # bogus both because they are the default anyway, and because
+- # using them would break gcc on systems where it needs fixed includes.
+- case $ac_im_incroot in
+- /usr/include) ;;
+- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+- esac
+- case $ac_im_usrlibdir in
+- /usr/lib | /lib) ;;
+- *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+- esac
+- fi
+- cd ..
+- rm -fr conftest.dir
+-fi
+-
+-# Standard set of common directories for X headers.
+-# Check X11 before X11Rn because it is often a symlink to the current release.
+-ac_x_header_dirs='
+-/usr/X11/include
+-/usr/X11R6/include
+-/usr/X11R5/include
+-/usr/X11R4/include
+-
+-/usr/include/X11
+-/usr/include/X11R6
+-/usr/include/X11R5
+-/usr/include/X11R4
+-
+-/usr/local/X11/include
+-/usr/local/X11R6/include
+-/usr/local/X11R5/include
+-/usr/local/X11R4/include
+-
+-/usr/local/include/X11
+-/usr/local/include/X11R6
+-/usr/local/include/X11R5
+-/usr/local/include/X11R4
+-
+-/usr/X386/include
+-/usr/x386/include
+-/usr/XFree86/include/X11
+-
+-/usr/include
+-/usr/local/include
+-/usr/unsupported/include
+-/usr/athena/include
+-/usr/local/x11r5/include
+-/usr/lpp/Xamples/include
+-
+-/usr/openwin/include
+-/usr/openwin/share/include'
+-
+-if test "$ac_x_includes" = no; then
+- # Guess where to find include files, by looking for Intrinsic.h.
+- # First, try using that file with no special directory specified.
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9425 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 9611 "configure"
+ #include "confdefs.h"
+-#include <X11/Intrinsic.h>
+-_ACEOF
+-if { (eval echo "$as_me:9429: \"$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:9435: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- # We can compile using X headers with no special include directory.
+-ac_x_includes=
+-else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- for ac_dir in $ac_x_header_dirs; do
+- if test -r "$ac_dir/X11/Intrinsic.h"; then
+- ac_x_includes=$ac_dir
+- break
+- fi
+-done
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-fi # $ac_x_includes = no
+
+-if test "$ac_x_libraries" = no; then
+- # Check for the libraries.
+- # See if we find them without any special options.
+- # Don't add to $LIBS permanently.
+- ac_save_LIBS=$LIBS
+- LIBS="-lXt $LIBS"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9468 "configure"
+-#include "confdefs.h"
+-#include <X11/Intrinsic.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char connect ();
+ int
+ main ()
+ {
+-XtMalloc (0)
++connect ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9480: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9630: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9483: \$? = $ac_status" >&5
++ echo "$as_me:9633: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9486: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9636: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9489: \$? = $ac_status" >&5
++ echo "$as_me:9639: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- LIBS=$ac_save_LIBS
+-# We can link X programs with no special library path.
+-ac_x_libraries=
++ ac_cv_lib_socket_connect=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-LIBS=$ac_save_LIBS
+-for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+-do
+- # Don't even attempt the hair of trying to link an X program!
+- for ac_extension in a so sl dylib dll; do
+- if test -r $ac_dir/libXt.$ac_extension; then
+- ac_x_libraries=$ac_dir
+- break 2
+- fi
+- done
+-done
++ac_cv_lib_socket_connect=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi # $ac_x_libraries = no
+-
+-if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
+- # Didn't find X anywhere. Cache the known absence of X.
+- ac_cv_have_x="have_x=no"
+-else
+- # Record where we found X for the cache.
+- ac_cv_have_x="have_x=yes \
+- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
+-fi
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-
+- fi
+- eval "$ac_cv_have_x"
+-fi # $with_x != no
+-
+-if test "$have_x" != yes; then
+- echo "$as_me:9527: result: $have_x" >&5
+-echo "${ECHO_T}$have_x" >&6
+- no_x=yes
+-else
+- # If each of the values was on the command line, it overrides each guess.
+- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+- # Update the cache value to reflect the command line values.
+- ac_cv_have_x="have_x=yes \
+- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
+- echo "$as_me:9537: result: libraries $x_libraries, headers $x_includes" >&5
+-echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
++echo "$as_me:9650: result: $ac_cv_lib_socket_connect" >&5
++echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
++if test $ac_cv_lib_socket_connect = yes; then
++ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+ fi
+
+-if test "$no_x" = yes; then
+- # Not all programs may use this symbol, but it does not hurt to define it.
+-
+-cat >>confdefs.h <<\EOF
+-#define X_DISPLAY_MISSING 1
+-EOF
++ fi
+
+- X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
++ # Guillermo Gomez says -lposix is necessary on A/UX.
++ echo "$as_me:9659: checking for remove" >&5
++echo $ECHO_N "checking for remove... $ECHO_C" >&6
++if test "${ac_cv_func_remove+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- if test -n "$x_includes"; then
+- X_CFLAGS="$X_CFLAGS -I$x_includes"
+- fi
+-
+- # It would also be nice to do this for all -L options, not just this one.
+- if test -n "$x_libraries"; then
+- X_LIBS="$X_LIBS -L$x_libraries"
+- # For Solaris; some versions of Sun CC require a space after -R and
+- # others require no space. Words are not sufficient . . . .
+- case `(uname -sr) 2>/dev/null` in
+- "SunOS 5"*)
+- echo "$as_me:9561: checking whether -R must be followed by a space" >&5
+-echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
+- ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9565 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 9665 "configure"
+ #include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char remove (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char remove ();
++char (*f) ();
+
+ int
+ main ()
+ {
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_remove) || defined (__stub___remove)
++choke me
++#else
++f = remove; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9577: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9696: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9580: \$? = $ac_status" >&5
++ echo "$as_me:9699: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9583: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9702: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9586: \$? = $ac_status" >&5
++ echo "$as_me:9705: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_R_nospace=yes
++ ac_cv_func_remove=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_R_nospace=no
++ac_cv_func_remove=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- if test $ac_R_nospace = yes; then
+- echo "$as_me:9596: result: no" >&5
+-echo "${ECHO_T}no" >&6
+- X_LIBS="$X_LIBS -R$x_libraries"
+- else
+- LIBS="$ac_xsave_LIBS -R $x_libraries"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9602 "configure"
++fi
++echo "$as_me:9715: result: $ac_cv_func_remove" >&5
++echo "${ECHO_T}$ac_cv_func_remove" >&6
++
++ if test $ac_cv_func_remove = no; then
++ echo "$as_me:9719: checking for remove in -lposix" >&5
++echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
++if test "${ac_cv_lib_posix_remove+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lposix $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 9727 "configure"
+ #include "confdefs.h"
+
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char remove ();
+ int
+ main ()
+ {
+-
++remove ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9614: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9746: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9617: \$? = $ac_status" >&5
++ echo "$as_me:9749: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9620: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9752: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9623: \$? = $ac_status" >&5
++ echo "$as_me:9755: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_R_space=yes
++ ac_cv_lib_posix_remove=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_R_space=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- if test $ac_R_space = yes; then
+- echo "$as_me:9633: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+- X_LIBS="$X_LIBS -R $x_libraries"
+- else
+- echo "$as_me:9637: result: neither works" >&5
+-echo "${ECHO_T}neither works" >&6
+- fi
+- fi
+- LIBS=$ac_xsave_LIBS
+- esac
+- fi
+-
+- # Check for system-dependent libraries X programs must link with.
+- # Do this before checking for the system-independent R6 libraries
+- # (-lICE), since we may need -lsocket or whatever for X linking.
+-
+- if test "$ISC" = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+- else
+- # Martyn Johnson says this is needed for Ultrix, if the X
+- # libraries were built with DECnet support. And Karl Berry says
+- # the Alpha needs dnet_stub (dnet does not exist).
+- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9657 "configure"
+-#include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char XOpenDisplay ();
+-int
+-main ()
+-{
+-XOpenDisplay ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9676: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:9679: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9682: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:9685: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- :
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-echo "$as_me:9691: checking for dnet_ntoa in -ldnet" >&5
+-echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+-if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-ldnet $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 9699 "configure"
+-#include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char dnet_ntoa ();
+-int
+-main ()
+-{
+-dnet_ntoa ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9718: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:9721: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9724: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:9727: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_dnet_dnet_ntoa=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_dnet_dnet_ntoa=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:9738: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+-echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+-if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+-fi
+-
+- if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+- echo "$as_me:9745: checking for dnet_ntoa in -ldnet_stub" >&5
+-echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+-if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-ldnet_stub $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 9753 "configure"
+-#include "confdefs.h"
+-
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char dnet_ntoa ();
+-int
+-main ()
+-{
+-dnet_ntoa ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9772: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:9775: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9778: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:9781: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_dnet_stub_dnet_ntoa=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_dnet_stub_dnet_ntoa=no
++ac_cv_lib_posix_remove=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9792: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+-echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+-if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
++echo "$as_me:9766: result: $ac_cv_lib_posix_remove" >&5
++echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
++if test $ac_cv_lib_posix_remove = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+ fi
+
+ fi
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- LIBS="$ac_xsave_LIBS"
+
+- # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+- # to get the SysV transport functions.
+- # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+- # needs -lnsl.
+- # The nsl library prevents programs from opening the X display
+- # on Irix 5.2, according to T.E. Dickey.
+- # The functions gethostbyname, getservbyname, and inet_addr are
+- # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+- echo "$as_me:9811: checking for gethostbyname" >&5
+-echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+-if test "${ac_cv_func_gethostbyname+set}" = set; then
++ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
++ echo "$as_me:9775: checking for shmat" >&5
++echo $ECHO_N "checking for shmat... $ECHO_C" >&6
++if test "${ac_cv_func_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9817 "configure"
++#line 9781 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char gethostbyname (); below. */
++ which can conflict with char shmat (); below. */
+ #include <assert.h>
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+@@ -9825,7 +9789,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 gethostbyname ();
++char shmat ();
+ char (*f) ();
+
+ int
+@@ -9834,10 +9798,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_gethostbyname) || defined (__stub___gethostbyname)
++#if defined (__stub_shmat) || defined (__stub___shmat)
+ choke me
+ #else
+-f = gethostbyname;
++f = shmat; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
+ #endif
+
+ ;
+@@ -9845,38 +9809,38 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9848: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9812: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9851: \$? = $ac_status" >&5
++ echo "$as_me:9815: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9854: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9818: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9857: \$? = $ac_status" >&5
++ echo "$as_me:9821: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_gethostbyname=yes
++ ac_cv_func_shmat=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_gethostbyname=no
++ac_cv_func_shmat=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:9867: result: $ac_cv_func_gethostbyname" >&5
+-echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
++echo "$as_me:9831: result: $ac_cv_func_shmat" >&5
++echo "${ECHO_T}$ac_cv_func_shmat" >&6
+
+- if test $ac_cv_func_gethostbyname = no; then
+- echo "$as_me:9871: checking for gethostbyname in -lnsl" >&5
+-echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
++ if test $ac_cv_func_shmat = no; then
++ echo "$as_me:9835: checking for shmat in -lipc" >&5
++echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
++if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lnsl $LIBS"
++LIBS="-lipc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9879 "configure"
++#line 9843 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -9885,52 +9849,63 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char gethostbyname ();
++char shmat ();
+ int
+ main ()
+ {
+-gethostbyname ();
++shmat ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9898: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9862: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9901: \$? = $ac_status" >&5
++ echo "$as_me:9865: \$? = $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:9868: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9907: \$? = $ac_status" >&5
++ echo "$as_me:9871: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_nsl_gethostbyname=yes
++ ac_cv_lib_ipc_shmat=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_nsl_gethostbyname=no
++ac_cv_lib_ipc_shmat=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9918: result: $ac_cv_lib_nsl_gethostbyname" >&5
+-echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+-if test $ac_cv_lib_nsl_gethostbyname = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
++echo "$as_me:9882: result: $ac_cv_lib_ipc_shmat" >&5
++echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
++if test $ac_cv_lib_ipc_shmat = yes; then
++ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+ fi
+
+- if test $ac_cv_lib_nsl_gethostbyname = no; then
+- echo "$as_me:9925: checking for gethostbyname in -lbsd" >&5
+-echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+-if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
++ fi
++ fi
++
++ # Check for libraries that X11R6 Xt/Xaw programs need.
++ ac_save_LDFLAGS=$LDFLAGS
++ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
++ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
++ # check for ICE first), but we must link in the order -lSM -lICE or
++ # we get undefined symbols. So assume we have SM if we have ICE.
++ # These have to be linked with before -lX11, unlike the other
++ # libraries we check for below, so use a different variable.
++ # John Interrante, Karl Berry
++ echo "$as_me:9900: checking for IceConnectionNumber in -lICE" >&5
++echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
++if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lbsd $LIBS"
++LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 9933 "configure"
++#line 9908 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -9939,549 +9914,1335 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char gethostbyname ();
++char IceConnectionNumber ();
+ int
+ main ()
+ {
+-gethostbyname ();
++IceConnectionNumber ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:9952: \"$ac_link\"") >&5
++if { (eval echo "$as_me:9927: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:9955: \$? = $ac_status" >&5
++ echo "$as_me:9930: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:9958: \"$ac_try\"") >&5
++ { (eval echo "$as_me:9933: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:9961: \$? = $ac_status" >&5
++ echo "$as_me:9936: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_bsd_gethostbyname=yes
++ ac_cv_lib_ICE_IceConnectionNumber=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_bsd_gethostbyname=no
++ac_cv_lib_ICE_IceConnectionNumber=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:9972: result: $ac_cv_lib_bsd_gethostbyname" >&5
+-echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+-if test $ac_cv_lib_bsd_gethostbyname = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
++echo "$as_me:9947: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
++echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
++if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
++ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+ fi
+
+- fi
+- fi
++ LDFLAGS=$ac_save_LDFLAGS
+
+- # lieder@skyler.mavd.honeywell.com says without -lsocket,
+- # socket/setsockopt and other routines are undefined under SCO ODT
+- # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+- # on later versions), says Simon Leinen: it contains gethostby*
+- # variants that don't use the nameserver (or something). -lsocket
+- # must be given before -lnsl if both are needed. We assume that
+- # if connect needs -lnsl, so does gethostbyname.
+- echo "$as_me:9988: checking for connect" >&5
+-echo $ECHO_N "checking for connect... $ECHO_C" >&6
+-if test "${ac_cv_func_connect+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 9994 "configure"
+-#include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char connect (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char connect ();
+-char (*f) ();
++fi
+
+-int
+-main ()
+-{
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_connect) || defined (__stub___connect)
+-choke me
+-#else
+-f = connect;
+-#endif
++cf_x_athena=${cf_x_athena:-Xaw}
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10025: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10028: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10031: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10034: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_func_connect=yes
++echo "$as_me:9959: checking if you want to link with Xaw 3d library" >&5
++echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
++withval=
++
++# Check whether --with-Xaw3d or --without-Xaw3d was given.
++if test "${with_Xaw3d+set}" = set; then
++ withval="$with_Xaw3d"
++
++fi;
++if test "$withval" = yes ; then
++ cf_x_athena=Xaw3d
++ echo "$as_me:9970: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+ else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_connect=no
++ echo "$as_me:9973: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++echo "$as_me:9977: checking if you want to link with Xaw 3d xft library" >&5
++echo $ECHO_N "checking if you want to link with Xaw 3d xft library... $ECHO_C" >&6
++withval=
++
++# Check whether --with-Xaw3dxft or --without-Xaw3dxft was given.
++if test "${with_Xaw3dxft+set}" = set; then
++ withval="$with_Xaw3dxft"
++
++fi;
++if test "$withval" = yes ; then
++ cf_x_athena=Xaw3dxft
++ echo "$as_me:9988: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++else
++ echo "$as_me:9991: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-echo "$as_me:10044: result: $ac_cv_func_connect" >&5
+-echo "${ECHO_T}$ac_cv_func_connect" >&6
+
+- if test $ac_cv_func_connect = no; then
+- echo "$as_me:10048: checking for connect in -lsocket" >&5
+-echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+-if test "${ac_cv_lib_socket_connect+set}" = set; then
++echo "$as_me:9995: checking if you want to link with neXT Athena library" >&5
++echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
++withval=
++
++# Check whether --with-neXtaw or --without-neXtaw was given.
++if test "${with_neXtaw+set}" = set; then
++ withval="$with_neXtaw"
++
++fi;
++if test "$withval" = yes ; then
++ cf_x_athena=neXtaw
++ echo "$as_me:10006: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++else
++ echo "$as_me:10009: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++echo "$as_me:10013: checking if you want to link with Athena-Plus library" >&5
++echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
++withval=
++
++# Check whether --with-XawPlus or --without-XawPlus was given.
++if test "${with_XawPlus+set}" = set; then
++ withval="$with_XawPlus"
++
++fi;
++if test "$withval" = yes ; then
++ cf_x_athena=XawPlus
++ echo "$as_me:10024: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++else
++ echo "$as_me:10027: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++cf_x_athena_lib=""
++
++if test "$PKG_CONFIG" != none ; then
++ cf_athena_list=
++ test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
++ for cf_athena_pkg in \
++ $cf_athena_list \
++ ${cf_x_athena} \
++ ${cf_x_athena}-devel \
++ lib${cf_x_athena} \
++ lib${cf_x_athena}-devel
++ do
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
++ test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6
++
++echo "${as_me:-configure}:10047: testing found package $cf_athena_pkg ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`"
++ test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10053: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10057: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ cf_x_athena_lib="$cf_pkgconfig_libs"
++
++cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ cat >>confdefs.h <<EOF
++#define $cf_x_athena_LIBS 1
++EOF
++
++ for cf_trim_lib in Xmu Xt X11
++ do
++ case "$LIBS" in
++ *-l$cf_trim_lib\ *-l$cf_trim_lib*)
++ LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
++ test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6
++
++echo "${as_me:-configure}:10168: testing ..trimmed $LIBS ..." 1>&5
++
++ ;;
++ esac
++ done
++
++echo "$as_me:10174: checking for usable $cf_x_athena/Xmu package" >&5
++echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
++if test "${cf_cv_xaw_compat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10056 "configure"
++#line 10181 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char connect ();
++#include <X11/Xmu/CharSet.h>
++
+ int
+ main ()
+ {
+-connect ();
++
++int check = XmuCompareISOLatin1("big", "small")
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10075: \"$ac_link\"") >&5
++if { (eval echo "$as_me:10197: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10078: \$? = $ac_status" >&5
++ echo "$as_me:10200: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10081: \"$ac_try\"") >&5
++ { (eval echo "$as_me:10203: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10084: \$? = $ac_status" >&5
++ echo "$as_me:10206: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_socket_connect=yes
++ cf_cv_xaw_compat=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_socket_connect=no
++cf_cv_xaw_compat=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:10095: result: $ac_cv_lib_socket_connect" >&5
+-echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+-if test $ac_cv_lib_socket_connect = yes; then
+- X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+ fi
++echo "$as_me:10216: result: $cf_cv_xaw_compat" >&5
++echo "${ECHO_T}$cf_cv_xaw_compat" >&6
+
+- fi
++ if test "$cf_cv_xaw_compat" = no
++ then
++ # workaround for broken ".pc" files...
++ case "$cf_x_athena_lib" in #(vi
++ *-lXmu*) #(vi
++ ;;
++ *)
++ test -n "$verbose" && echo " work around broken package" 1>&6
+
+- # Guillermo Gomez says -lposix is necessary on A/UX.
+- echo "$as_me:10104: checking for remove" >&5
+-echo $ECHO_N "checking for remove... $ECHO_C" >&6
+-if test "${ac_cv_func_remove+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 10110 "configure"
+-#include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char remove (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char remove ();
+-char (*f) ();
++echo "${as_me:-configure}:10228: testing work around broken package ..." 1>&5
++
++ cf_save_xmu="$LIBS"
++ cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^ *//' -e 's/ .*//'`
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
++ test -n "$verbose" && echo " found package xmu" 1>&6
++
++echo "${as_me:-configure}:10236: testing found package xmu ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs xmu 2>/dev/null`"
++ test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10242: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10246: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ LIBS="$cf_save_xmu"
++
++test -n "$verbose" && echo " ...before $LIBS" 1>&6
++
++echo "${as_me:-configure}:10346: testing ...before $LIBS ..." 1>&5
++
++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib $cf_pkgconfig_libs %" -e 's% % %g'`
++test -n "$verbose" && echo " ...after $LIBS" 1>&6
++
++echo "${as_me:-configure}:10351: testing ...after $LIBS ..." 1>&5
++
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++
++test -n "$verbose" && echo " ...before $LIBS" 1>&6
++
++echo "${as_me:-configure}:10359: testing ...before $LIBS ..." 1>&5
++
++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%$cf_first_lib %$cf_first_lib -lXmu %" -e 's% % %g'`
++test -n "$verbose" && echo " ...after $LIBS" 1>&6
++
++echo "${as_me:-configure}:10364: testing ...after $LIBS ..." 1>&5
++
++fi
++
++ for cf_trim_lib in Xmu Xt X11
++ do
++ case "$LIBS" in
++ *-l$cf_trim_lib\ *-l$cf_trim_lib*)
++ LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
++ test -n "$verbose" && echo " ..trimmed $LIBS" 1>&6
++
++echo "${as_me:-configure}:10375: testing ..trimmed $LIBS ..." 1>&5
++
++ ;;
++ esac
++ done
++
++ ;;
++ esac
++ fi
++
++ break
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++ :
++fi
++
++ done
++fi
++
++if test -z "$cf_x_athena_lib" ; then
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
++ test -n "$verbose" && echo " found package Xext" 1>&6
++
++echo "${as_me:-configure}:10400: testing found package Xext ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs Xext 2>/dev/null`"
++ test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10406: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10410: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ :
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++
++ echo "$as_me:10511: checking for XextCreateExtension in -lXext" >&5
++echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
++if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lXext $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 10519 "configure"
++#include "confdefs.h"
+
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char XextCreateExtension ();
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_remove) || defined (__stub___remove)
+-choke me
+-#else
+-f = remove;
+-#endif
++XextCreateExtension ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:10538: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:10541: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:10544: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:10547: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_Xext_XextCreateExtension=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_lib_Xext_XextCreateExtension=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:10558: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
++echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
++if test $ac_cv_lib_Xext_XextCreateExtension = yes; then
++
++cf_add_libs="-lXext"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++fi
++
++fi
++
++# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
++# in some cases has installed dummy files in the former, other cases replaced
++# it with a link to the new location). This complicates the configure script.
++# Check for that pitfall, and recover using pkg-config
++#
++# If none of these are set, the configuration is almost certainly broken.
++if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
++then
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
++ test -n "$verbose" && echo " found package x11" 1>&6
++
++echo "${as_me:-configure}:10594: testing found package x11 ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`"
++ test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10600: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10604: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ :
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++ { echo "$as_me:10704: WARNING: unable to find X11 library" >&5
++echo "$as_me: WARNING: unable to find X11 library" >&2;}
++fi
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
++ test -n "$verbose" && echo " found package ice" 1>&6
++
++echo "${as_me:-configure}:10711: testing found package ice ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`"
++ test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10717: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10721: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10141: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10144: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10147: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10150: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_func_remove=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_remove=no
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+-echo "$as_me:10160: result: $ac_cv_func_remove" >&5
+-echo "${ECHO_T}$ac_cv_func_remove" >&6
+
+- if test $ac_cv_func_remove = no; then
+- echo "$as_me:10164: checking for remove in -lposix" >&5
+-echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+-if test "${ac_cv_lib_posix_remove+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lposix $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 10172 "configure"
+-#include "confdefs.h"
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char remove ();
+-int
+-main ()
+-{
+-remove ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10191: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10194: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10197: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10200: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_posix_remove=yes
++ :
+ else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_posix_remove=no
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++ { echo "$as_me:10821: WARNING: unable to find ICE library" >&5
++echo "$as_me: WARNING: unable to find ICE library" >&2;}
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
++ test -n "$verbose" && echo " found package sm" 1>&6
++
++echo "${as_me:-configure}:10828: testing found package sm ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`"
++ test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10834: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10838: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+-echo "$as_me:10211: result: $ac_cv_lib_posix_remove" >&5
+-echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+-if test $ac_cv_lib_posix_remove = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+- fi
++if test -n "$cf_new_extra_cppflags" ; then
+
+- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+- echo "$as_me:10220: checking for shmat" >&5
+-echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+-if test "${ac_cv_func_shmat+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ :
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 10226 "configure"
+-#include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char shmat (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char shmat ();
+-char (*f) ();
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++ { echo "$as_me:10938: WARNING: unable to find SM library" >&5
++echo "$as_me: WARNING: unable to find SM library" >&2;}
++fi
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
++ test -n "$verbose" && echo " found package xt" 1>&6
++
++echo "${as_me:-configure}:10945: testing found package xt ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`"
++ test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:10951: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:10955: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+-int
+-main ()
+-{
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_shmat) || defined (__stub___shmat)
+-choke me
+-#else
+-f = shmat;
+-#endif
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10257: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10260: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10263: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10266: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_func_shmat=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_shmat=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:10276: result: $ac_cv_func_shmat" >&5
+-echo "${ECHO_T}$ac_cv_func_shmat" >&6
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
+
+- if test $ac_cv_func_shmat = no; then
+- echo "$as_me:10280: checking for shmat in -lipc" >&5
+-echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+-if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lipc $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 10288 "configure"
+-#include "confdefs.h"
++if test -n "$cf_new_cflags" ; then
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char shmat ();
+-int
+-main ()
+-{
+-shmat ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10307: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10310: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10313: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10316: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_ipc_shmat=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_ipc_shmat=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+-echo "$as_me:10327: result: $ac_cv_lib_ipc_shmat" >&5
+-echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+-if test $ac_cv_lib_ipc_shmat = yes; then
+- X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+- fi
+- fi
++if test -n "$cf_new_extra_cppflags" ; then
+
+- # Check for libraries that X11R6 Xt/Xaw programs need.
+- ac_save_LDFLAGS=$LDFLAGS
+- test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+- # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+- # check for ICE first), but we must link in the order -lSM -lICE or
+- # we get undefined symbols. So assume we have SM if we have ICE.
+- # These have to be linked with before -lX11, unlike the other
+- # libraries we check for below, so use a different variable.
+- # John Interrante, Karl Berry
+- echo "$as_me:10345: checking for IceConnectionNumber in -lICE" >&5
+-echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+-if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 10353 "configure"
+-#include "confdefs.h"
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char IceConnectionNumber ();
+-int
+-main ()
+-{
+-IceConnectionNumber ();
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10372: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:10375: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10378: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:10381: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_lib_ICE_IceConnectionNumber=yes
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ :
+ else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_lib_ICE_IceConnectionNumber=no
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++ { echo "$as_me:11055: WARNING: unable to find Xt library" >&5
++echo "$as_me: WARNING: unable to find Xt library" >&2;}
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++
+ fi
+-echo "$as_me:10392: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+-echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+-if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
+- X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
++
++cf_have_X_LIBS=no
++
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
++ test -n "$verbose" && echo " found package xt" 1>&6
++
++echo "${as_me:-configure}:11066: testing found package xt ..." 1>&5
++
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`"
++ test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
++
++echo "${as_me:-configure}:11072: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++
++ test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
++
++echo "${as_me:-configure}:11076: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+
+- LDFLAGS=$ac_save_LDFLAGS
++if test -n "$cf_new_cppflags" ; then
+
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+-cf_x_athena=${cf_x_athena:-Xaw}
++if test -n "$cf_new_extra_cppflags" ; then
+
+-echo "$as_me:10404: checking if you want to link with Xaw 3d library" >&5
+-echo $ECHO_N "checking if you want to link with Xaw 3d library... $ECHO_C" >&6
+-withval=
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
+
+-# Check whether --with-Xaw3d or --without-Xaw3d was given.
+-if test "${with_Xaw3d+set}" = set; then
+- withval="$with_Xaw3d"
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+-fi;
+-if test "$withval" = yes ; then
+- cf_x_athena=Xaw3d
+- echo "$as_me:10415: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
++ case "x$LIBS" in #(vi
++ *-lX11*) #(vi
++ ;;
++ *)
++# we have an "xt" package, but it may omit Xt's dependency on X11
++echo "$as_me:11177: checking for usable X dependency" >&5
++echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
++if test "${cf_cv_xt_x11_compat+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- echo "$as_me:10418: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-echo "$as_me:10422: checking if you want to link with neXT Athena library" >&5
+-echo $ECHO_N "checking if you want to link with neXT Athena library... $ECHO_C" >&6
+-withval=
+
+-# Check whether --with-neXtaw or --without-neXtaw was given.
+-if test "${with_neXtaw+set}" = set; then
+- withval="$with_neXtaw"
++cat >conftest.$ac_ext <<_ACEOF
++#line 11184 "configure"
++#include "confdefs.h"
+
+-fi;
+-if test "$withval" = yes ; then
+- cf_x_athena=neXtaw
+- echo "$as_me:10433: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-else
+- echo "$as_me:10436: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
++#include <X11/Xlib.h>
+
+-echo "$as_me:10440: checking if you want to link with Athena-Plus library" >&5
+-echo $ECHO_N "checking if you want to link with Athena-Plus library... $ECHO_C" >&6
+-withval=
++int
++main ()
++{
+
+-# Check whether --with-XawPlus or --without-XawPlus was given.
+-if test "${with_XawPlus+set}" = set; then
+- withval="$with_XawPlus"
++ int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
++ int rc2 = XClearWindow((Display*) 0, (Window) 0);
++ int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
++ int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
+
+-fi;
+-if test "$withval" = yes ; then
+- cf_x_athena=XawPlus
+- echo "$as_me:10451: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:11203: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:11206: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:11209: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:11212: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_xt_x11_compat=yes
+ else
+- echo "$as_me:10454: result: no" >&5
+-echo "${ECHO_T}no" >&6
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_xt_x11_compat=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
++echo "$as_me:11222: result: $cf_cv_xt_x11_compat" >&5
++echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
++ if test "$cf_cv_xt_x11_compat" = no
++ then
++ test -n "$verbose" && echo " work around broken X11 dependency" 1>&6
+
+-cf_x_athena_lib=""
++echo "${as_me:-configure}:11228: testing work around broken X11 dependency ..." 1>&5
+
+-if test "$PKG_CONFIG" != none ; then
+- cf_athena_list=
+- test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
+- for cf_athena_pkg in \
+- $cf_athena_list \
+- ${cf_x_athena} \
+- ${cf_x_athena}-devel \
+- lib${cf_x_athena} \
+- lib${cf_x_athena}-devel
+- do
++ # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
+
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
+- test -n "$verbose" && echo " found package $cf_athena_pkg" 1>&6
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
++ test -n "$verbose" && echo " found package x11" 1>&6
+
+-echo "${as_me:-configure}:10474: testing found package $cf_athena_pkg ..." 1>&5
++echo "${as_me:-configure}:11235: testing found package x11 ..." 1>&5
+
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs $cf_athena_pkg 2>/dev/null`"
+- test -n "$verbose" && echo " package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`"
++ test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+-echo "${as_me:-configure}:10480: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:11241: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+- test -n "$verbose" && echo " package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
++ test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
+
+-echo "${as_me:-configure}:10484: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:11245: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -10498,7 +11259,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -10539,7 +11300,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -10561,86 +11322,113 @@
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- LIBS="$cf_pkgconfig_libs $LIBS"
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- cf_x_athena_lib="$cf_pkgconfig_libs"
++ :
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
+
+-cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++test -n "$verbose" && echo " ...before $LIBS" 1>&6
+
+- cat >>confdefs.h <<EOF
+-#define $cf_x_athena_LIBS 1
+-EOF
++echo "${as_me:-configure}:11348: testing ...before $LIBS ..." 1>&5
+
+-echo "$as_me:10574: checking for usable $cf_x_athena/Xmu package" >&5
+-echo $ECHO_N "checking for usable $cf_x_athena/Xmu package... $ECHO_C" >&6
+-if test "${cf_cv_xaw_compat+set}" = set; then
++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt -lX11 %" -e 's% % %g'`
++test -n "$verbose" && echo " ...after $LIBS" 1>&6
++
++echo "${as_me:-configure}:11353: testing ...after $LIBS ..." 1>&5
++
++fi
++
++ fi
++ ;;
++ esac
++
++echo "$as_me:11361: checking for usable X Toolkit package" >&5
++echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
++if test "${cf_cv_xt_ice_compat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10581 "configure"
++#line 11368 "configure"
+ #include "confdefs.h"
+
+-#include <X11/Xmu/CharSet.h>
++#include <X11/Shell.h>
+
+ int
+ main ()
+ {
+-
+-int check = XmuCompareISOLatin1("big", "small")
++int num = IceConnectionNumber(0)
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10597: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11383: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10600: \$? = $ac_status" >&5
++ echo "$as_me:11386: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10603: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11389: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10606: \$? = $ac_status" >&5
++ echo "$as_me:11392: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_xaw_compat=yes
++ cf_cv_xt_ice_compat=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_xaw_compat=no
++cf_cv_xt_ice_compat=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:10616: result: $cf_cv_xaw_compat" >&5
+-echo "${ECHO_T}$cf_cv_xaw_compat" >&6
++echo "$as_me:11402: result: $cf_cv_xt_ice_compat" >&5
++echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
+
+- if test "$cf_cv_xaw_compat" = no
+- then
+- # workaround for broken ".pc" files...
+- case "$cf_x_athena_lib" in #(vi
+- *-lXmu*) #(vi
+- ;;
+- *)
+- test -n "$verbose" && echo " work around broken package" 1>&6
++ if test "$cf_cv_xt_ice_compat" = no
++ then
++ # workaround for broken ".pc" files used for X Toolkit.
++ case "x$X_PRE_LIBS" in #(vi
++ *-lICE*)
++ case "x$LIBS" in #(vi
++ *-lICE*) #(vi
++ ;;
++ *)
++ test -n "$verbose" && echo " work around broken ICE dependency" 1>&6
+
+-echo "${as_me:-configure}:10628: testing work around broken package ..." 1>&5
++echo "${as_me:-configure}:11416: testing work around broken ICE dependency ..." 1>&5
+
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
+- test -n "$verbose" && echo " found package xmu" 1>&6
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
++ test -n "$verbose" && echo " found package ice" 1>&6
+
+-echo "${as_me:-configure}:10633: testing found package xmu ..." 1>&5
++echo "${as_me:-configure}:11421: testing found package ice ..." 1>&5
+
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs xmu 2>/dev/null`"
+- test -n "$verbose" && echo " package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`"
++ test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+-echo "${as_me:-configure}:10639: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++echo "${as_me:-configure}:11427: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+- test -n "$verbose" && echo " package xmu LIBS: $cf_pkgconfig_libs" 1>&6
++ test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
+
+-echo "${as_me:-configure}:10643: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
++echo "${as_me:-configure}:11431: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+@@ -10657,7 +11445,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -10698,7 +11486,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -10720,56 +11508,180 @@
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- LIBS="$cf_pkgconfig_libs $LIBS"
+- :
+-else
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+-test -n "$verbose" && echo " ...before $LIBS" 1>&6
++if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
++ test -n "$verbose" && echo " found package sm" 1>&6
+
+-echo "${as_me:-configure}:10729: testing ...before $LIBS ..." 1>&5
++echo "${as_me:-configure}:11530: testing found package sm ..." 1>&5
+
+-LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/ / /g'`
+-test -n "$verbose" && echo " ...after $LIBS" 1>&6
++ cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
++ cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`"
++ test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+-echo "${as_me:-configure}:10734: testing ...after $LIBS ..." 1>&5
++echo "${as_me:-configure}:11536: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+-fi
++ test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
+
+- ;;
+- esac
++echo "${as_me:-configure}:11540: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in $cf_pkgconfig_incs
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
+ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
++fi
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
++
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
+
++cf_add_libs="$cf_pkgconfig_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
+ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ :
+ else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
+ :
+ fi
+
+- done
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
++
++test -n "$verbose" && echo " ...before $LIBS" 1>&6
++
++echo "${as_me:-configure}:11649: testing ...before $LIBS ..." 1>&5
++
++LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s%-lXt %-lXt $X_PRE_LIBS %" -e 's% % %g'`
++test -n "$verbose" && echo " ...after $LIBS" 1>&6
++
++echo "${as_me:-configure}:11654: testing ...after $LIBS ..." 1>&5
++
+ fi
+
+-if test -z "$cf_x_athena_lib" ; then
++ ;;
++ esac
++ ;;
++ esac
++ fi
+
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
+- test -n "$verbose" && echo " found package Xext" 1>&6
++ cf_have_X_LIBS=yes
+
+-echo "${as_me:-configure}:10755: testing found package Xext ..." 1>&5
++else
++ cf_pkgconfig_incs=
++ cf_pkgconfig_libs=
+
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs Xext 2>/dev/null`"
+- test -n "$verbose" && echo " package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
++ LDFLAGS="$X_LIBS $LDFLAGS"
+
+-echo "${as_me:-configure}:10761: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
+
+- test -n "$verbose" && echo " package Xext LIBS: $cf_pkgconfig_libs" 1>&6
++echo "${as_me:-configure}:11674: testing checking additions to CFLAGS ..." 1>&5
+
+-echo "${as_me:-configure}:10765: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
++cf_check_cflags="$CFLAGS"
++cf_check_cppflags="$CPPFLAGS"
+
+ cf_fix_cppflags=no
+ cf_new_cflags=
+ cf_new_cppflags=
+ cf_new_extra_cppflags=
+
+-for cf_add_cflags in $cf_pkgconfig_incs
++for cf_add_cflags in $X_CFLAGS
+ do
+ case $cf_fix_cppflags in
+ no)
+@@ -10779,7 +11691,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -10820,7 +11732,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -10828,33 +11740,144 @@
+ done
+
+ if test -n "$cf_new_cflags" ; then
++ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
++
++echo "${as_me:-configure}:11745: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+
+ if test -n "$cf_new_cppflags" ; then
++ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
++
++echo "${as_me:-configure}:11753: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+ if test -n "$cf_new_extra_cppflags" ; then
++ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
++
++echo "${as_me:-configure}:11761: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- LIBS="$cf_pkgconfig_libs $LIBS"
+- :
++if test "x$cf_check_cflags" != "x$CFLAGS" ; then
++cat >conftest.$ac_ext <<_ACEOF
++#line 11768 "configure"
++#include "confdefs.h"
++#include <stdio.h>
++int
++main ()
++{
++printf("Hello world");
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:11780: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:11783: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:11786: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:11789: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ :
+ else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
+
+- echo "$as_me:10849: checking for XextCreateExtension in -lXext" >&5
+-echo $ECHO_N "checking for XextCreateExtension in -lXext... $ECHO_C" >&6
+-if test "${ac_cv_lib_Xext_XextCreateExtension+set}" = set; then
++echo "${as_me:-configure}:11797: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
++
++ if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
++ test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
++
++echo "${as_me:-configure}:11802: testing but keeping change to \$CPPFLAGS ..." 1>&5
++
++ fi
++ CFLAGS="$cf_check_flags"
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++
++ echo "$as_me:11810: checking for XOpenDisplay" >&5
++echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
++if test "${ac_cv_func_XOpenDisplay+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 11816 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char XOpenDisplay (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char XOpenDisplay ();
++char (*f) ();
++
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay)
++choke me
++#else
++f = XOpenDisplay; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:11847: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:11850: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:11853: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:11856: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_func_XOpenDisplay=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_func_XOpenDisplay=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:11866: result: $ac_cv_func_XOpenDisplay" >&5
++echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
++if test $ac_cv_func_XOpenDisplay = yes; then
++ :
++else
++
++ echo "$as_me:11872: checking for XOpenDisplay in -lX11" >&5
++echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
++if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lXext $LIBS"
++LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 10857 "configure"
++#line 11880 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -10863,592 +11886,500 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char XextCreateExtension ();
++char XOpenDisplay ();
+ int
+ main ()
+ {
+-XextCreateExtension ();
++XOpenDisplay ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:10876: \"$ac_link\"") >&5
++if { (eval echo "$as_me:11899: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:10879: \$? = $ac_status" >&5
++ echo "$as_me:11902: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:10882: \"$ac_try\"") >&5
++ { (eval echo "$as_me:11905: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:10885: \$? = $ac_status" >&5
++ echo "$as_me:11908: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_Xext_XextCreateExtension=yes
++ ac_cv_lib_X11_XOpenDisplay=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_Xext_XextCreateExtension=no
++ac_cv_lib_X11_XOpenDisplay=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:10896: result: $ac_cv_lib_Xext_XextCreateExtension" >&5
+-echo "${ECHO_T}$ac_cv_lib_Xext_XextCreateExtension" >&6
+-if test $ac_cv_lib_Xext_XextCreateExtension = yes; then
+- LIBS="-lXext $LIBS"
+-fi
+-
+-fi
+-
+-cf_have_X_LIBS=no
+-
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
+- test -n "$verbose" && echo " found package xt" 1>&6
+-
+-echo "${as_me:-configure}:10909: testing found package xt ..." 1>&5
+-
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs xt 2>/dev/null`"
+- test -n "$verbose" && echo " package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
+-
+-echo "${as_me:-configure}:10915: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+-
+- test -n "$verbose" && echo " package xt LIBS: $cf_pkgconfig_libs" 1>&6
+-
+-echo "${as_me:-configure}:10919: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
++echo "$as_me:11919: result: $ac_cv_lib_X11_XOpenDisplay" >&5
++echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
++if test $ac_cv_lib_X11_XOpenDisplay = yes; then
+
+-for cf_add_cflags in $cf_pkgconfig_incs
++cf_add_libs="-lX11"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
+ do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
+ done
++LIBS="$cf_add_libs"
+
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+-if test -n "$cf_new_extra_cppflags" ; then
++ echo "$as_me:11943: checking for XtAppInitialize" >&5
++echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
++if test "${ac_cv_func_XtAppInitialize+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 11949 "configure"
++#include "confdefs.h"
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char XtAppInitialize (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char XtAppInitialize ();
++char (*f) ();
++
++int
++main ()
++{
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize)
++choke me
++#else
++f = XtAppInitialize; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
+
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:11980: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:11983: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:11986: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:11989: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_func_XtAppInitialize=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_func_XtAppInitialize=no
+ fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:11999: result: $ac_cv_func_XtAppInitialize" >&5
++echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
++if test $ac_cv_func_XtAppInitialize = yes; then
++ :
++else
+
+- LIBS="$cf_pkgconfig_libs $LIBS"
+-
+- case "x$LIBS" in #(vi
+- *-lX11*) #(vi
+- ;;
+- *)
+-# we have an "xt" package, but it may omit Xt's dependency on X11
+-echo "$as_me:11006: checking for usable X dependency" >&5
+-echo $ECHO_N "checking for usable X dependency... $ECHO_C" >&6
+-if test "${cf_cv_xt_x11_compat+set}" = set; then
++ echo "$as_me:12005: checking for XtAppInitialize in -lXt" >&5
++echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
++if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11013 "configure"
++#line 12013 "configure"
+ #include "confdefs.h"
+
+-#include <X11/Xlib.h>
+-
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char XtAppInitialize ();
+ int
+ main ()
+ {
+-
+- int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
+- int rc2 = XClearWindow((Display*) 0, (Window) 0);
+- int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
+- int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
+-
++XtAppInitialize ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11032: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12032: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11035: \$? = $ac_status" >&5
++ echo "$as_me:12035: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11038: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12038: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11041: \$? = $ac_status" >&5
++ echo "$as_me:12041: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_xt_x11_compat=yes
++ ac_cv_lib_Xt_XtAppInitialize=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_xt_x11_compat=no
++ac_cv_lib_Xt_XtAppInitialize=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11051: result: $cf_cv_xt_x11_compat" >&5
+-echo "${ECHO_T}$cf_cv_xt_x11_compat" >&6
+- if test "$cf_cv_xt_x11_compat" = no
+- then
+- test -n "$verbose" && echo " work around broken X11 dependency" 1>&6
+-
+-echo "${as_me:-configure}:11057: testing work around broken X11 dependency ..." 1>&5
+-
+- # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
+-
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
+- test -n "$verbose" && echo " found package x11" 1>&6
++echo "$as_me:12052: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
++echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
++if test $ac_cv_lib_Xt_XtAppInitialize = yes; then
+
+-echo "${as_me:-configure}:11064: testing found package x11 ..." 1>&5
++cat >>confdefs.h <<\EOF
++#define HAVE_LIBXT 1
++EOF
+
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs x11 2>/dev/null`"
+- test -n "$verbose" && echo " package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
++ cf_have_X_LIBS=Xt
++ LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
++fi
+
+-echo "${as_me:-configure}:11070: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
++fi
+
+- test -n "$verbose" && echo " package x11 LIBS: $cf_pkgconfig_libs" 1>&6
++fi
+
+-echo "${as_me:-configure}:11074: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
++if test $cf_have_X_LIBS = no ; then
++ { echo "$as_me:12069: WARNING: Unable to successfully link X Toolkit library (-lXt) with
++test program. You will have to check and add the proper libraries by hand
++to makefile." >&5
++echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
++test program. You will have to check and add the proper libraries by hand
++to makefile." >&2;}
++fi
+
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
++cf_x_athena_root=$cf_x_athena
++cf_x_athena_inc=""
+
+-for cf_add_cflags in $cf_pkgconfig_incs
++for cf_path in default \
++ /usr/contrib/X11R6 \
++ /usr/contrib/X11R5 \
++ /usr/lib/X11R5 \
++ /usr/local
+ do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
++ if test -z "$cf_x_athena_inc" ; then
++ cf_save="$CPPFLAGS"
++ cf_test=X11/$cf_x_athena_root/SimpleMenu.h
++ if test $cf_path != default ; then
++ CPPFLAGS="$cf_save -I$cf_path/include"
++ echo "$as_me:12091: checking for $cf_test in $cf_path" >&5
++echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
++ else
++ echo "$as_me:12094: checking for $cf_test" >&5
++echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
++ fi
++ cat >conftest.$ac_ext <<_ACEOF
++#line 12098 "configure"
++#include "confdefs.h"
+
+-if test -n "$cf_new_cppflags" ; then
++#include <X11/Intrinsic.h>
++#include <$cf_test>
++int
++main ()
++{
+
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:12112: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:12115: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:12118: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:12121: \$? = $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:12130: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test "$cf_result" = yes ; then
++ cf_x_athena_inc=$cf_path
++ break
++ else
++ CPPFLAGS="$cf_save"
++ fi
++ fi
++done
+
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++if test -z "$cf_x_athena_inc" ; then
++ { echo "$as_me:12142: WARNING: Unable to successfully find Athena header files with test program" >&5
++echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;}
++elif test "$cf_x_athena_inc" != default ; then
++ CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
+ fi
+
+- LIBS="$cf_pkgconfig_libs $LIBS"
+- :
+-else
+-
+-test -n "$verbose" && echo " ...before $LIBS" 1>&6
+-
+-echo "${as_me:-configure}:11160: testing ...before $LIBS ..." 1>&5
++cf_x_athena_root=$cf_x_athena
++cf_x_athena_lib=""
+
+-LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/ / /g'`
+-test -n "$verbose" && echo " ...after $LIBS" 1>&6
++for cf_path in default \
++ /usr/contrib/X11R6 \
++ /usr/contrib/X11R5 \
++ /usr/lib/X11R5 \
++ /usr/local
++do
++ for cf_lib in \
++ ${cf_x_athena_root} \
++ ${cf_x_athena_root}7 \
++ ${cf_x_athena_root}6
++ do
++ for cf_libs in \
++ "-l$cf_lib -lXmu" \
++ "-l$cf_lib -lXpm -lXmu" \
++ "-l${cf_lib}_s -lXmu_s"
++ do
++ if test -z "$cf_x_athena_lib" ; then
++ cf_save="$LIBS"
++ cf_test=XawSimpleMenuAddGlobalActions
++ if test $cf_path != default ; then
+
+-echo "${as_me:-configure}:11165: testing ...after $LIBS ..." 1>&5
++cf_add_libs="-L$cf_path/lib $cf_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+-fi
++ echo "$as_me:12188: checking for $cf_libs in $cf_path" >&5
++echo $ECHO_N "checking for $cf_libs in $cf_path... $ECHO_C" >&6
++ else
+
++cf_add_libs="$cf_libs"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
+ fi
+- ;;
+- esac
+-
+-echo "$as_me:11173: checking for usable X Toolkit package" >&5
+-echo $ECHO_N "checking for usable X Toolkit package... $ECHO_C" >&6
+-if test "${cf_cv_xt_ice_compat+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 11180 "configure"
++ echo "$as_me:12208: checking for $cf_test in $cf_libs" >&5
++echo $ECHO_N "checking for $cf_test in $cf_libs... $ECHO_C" >&6
++ fi
++ cat >conftest.$ac_ext <<_ACEOF
++#line 12212 "configure"
+ #include "confdefs.h"
+
+-#include <X11/Shell.h>
++#include <X11/Intrinsic.h>
++#include <X11/$cf_x_athena_root/SimpleMenu.h>
+
+ int
+ main ()
+ {
+-int num = IceConnectionNumber(0)
+
++$cf_test((XtAppContext) 0)
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11195: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12228: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11198: \$? = $ac_status" >&5
++ echo "$as_me:12231: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11201: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12234: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11204: \$? = $ac_status" >&5
++ echo "$as_me:12237: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_xt_ice_compat=yes
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_xt_ice_compat=no
++cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:11214: result: $cf_cv_xt_ice_compat" >&5
+-echo "${ECHO_T}$cf_cv_xt_ice_compat" >&6
+-
+- if test "$cf_cv_xt_ice_compat" = no
+- then
+- # workaround for broken ".pc" files used for X Toolkit.
+- case "x$X_PRE_LIBS" in #(vi
+- *-lICE*)
+- case "x$LIBS" in #(vi
+- *-lICE*) #(vi
+- ;;
+- *)
+- test -n "$verbose" && echo " work around broken ICE dependency" 1>&6
+-
+-echo "${as_me:-configure}:11228: testing work around broken ICE dependency ..." 1>&5
+-
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
+- test -n "$verbose" && echo " found package ice" 1>&6
+-
+-echo "${as_me:-configure}:11233: testing found package ice ..." 1>&5
+-
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs ice 2>/dev/null`"
+- test -n "$verbose" && echo " package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
+-
+-echo "${as_me:-configure}:11239: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+-
+- test -n "$verbose" && echo " package ice LIBS: $cf_pkgconfig_libs" 1>&6
+-
+-echo "${as_me:-configure}:11243: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_pkgconfig_incs
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
++ echo "$as_me:12246: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test "$cf_result" = yes ; then
++ cf_x_athena_lib="$cf_libs"
++ break
+ fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
++ LIBS="$cf_save"
++ fi
++ done # cf_libs
++ test -n "$cf_x_athena_lib" && break
++ done # cf_lib
+ done
+
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
++if test -z "$cf_x_athena_lib" ; then
++ { { echo "$as_me:12260: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
++echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
++ { (exit 1); exit 1; }; }
+ fi
+
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+-fi
++cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+-if test -n "$cf_new_extra_cppflags" ; then
++cat >>confdefs.h <<EOF
++#define $cf_x_athena_LIBS 1
++EOF
+
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+- LIBS="$cf_pkgconfig_libs $LIBS"
+-
+-if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
+- test -n "$verbose" && echo " found package sm" 1>&6
+-
+-echo "${as_me:-configure}:11328: testing found package sm ..." 1>&5
+-
+- cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
+- cf_pkgconfig_libs="`$PKG_CONFIG --libs sm 2>/dev/null`"
+- test -n "$verbose" && echo " package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
+-
+-echo "${as_me:-configure}:11334: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+-
+- test -n "$verbose" && echo " package sm LIBS: $cf_pkgconfig_libs" 1>&6
+-
+-echo "${as_me:-configure}:11338: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_pkgconfig_incs
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
++if test -n "$ac_tool_prefix"; then
++ for ac_prog in xcurses-config
++ do
++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:12278: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_XCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$XCURSES_CONFIG"; then
++ ac_cv_prog_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_XCURSES_CONFIG="$ac_tool_prefix$ac_prog"
++echo "$as_me:12293: found $ac_dir/$ac_word" >&5
++break
+ done
+
+-if test -n "$cf_new_cflags" ; then
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+-
+- LIBS="$cf_pkgconfig_libs $LIBS"
+- :
++XCURSES_CONFIG=$ac_cv_prog_XCURSES_CONFIG
++if test -n "$XCURSES_CONFIG"; then
++ echo "$as_me:12301: result: $XCURSES_CONFIG" >&5
++echo "${ECHO_T}$XCURSES_CONFIG" >&6
+ else
+- :
++ echo "$as_me:12304: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+
++ test -n "$XCURSES_CONFIG" && break
++ done
++fi
++if test -z "$XCURSES_CONFIG"; then
++ ac_ct_XCURSES_CONFIG=$XCURSES_CONFIG
++ for ac_prog in xcurses-config
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:12317: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_XCURSES_CONFIG+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ if test -n "$ac_ct_XCURSES_CONFIG"; then
++ ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_ct_XCURSES_CONFIG" # Let the user override the test.
+ else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_ac_ct_XCURSES_CONFIG="$ac_prog"
++echo "$as_me:12332: found $ac_dir/$ac_word" >&5
++break
++done
+
+-test -n "$verbose" && echo " ...before $LIBS" 1>&6
++fi
++fi
++ac_ct_XCURSES_CONFIG=$ac_cv_prog_ac_ct_XCURSES_CONFIG
++if test -n "$ac_ct_XCURSES_CONFIG"; then
++ echo "$as_me:12340: result: $ac_ct_XCURSES_CONFIG" >&5
++echo "${ECHO_T}$ac_ct_XCURSES_CONFIG" >&6
++else
++ echo "$as_me:12343: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-echo "${as_me:-configure}:11428: testing ...before $LIBS ..." 1>&5
++ test -n "$ac_ct_XCURSES_CONFIG" && break
++done
++test -n "$ac_ct_XCURSES_CONFIG" || ac_ct_XCURSES_CONFIG="none"
+
+-LIBS=`echo "$LIBS" | sed -e "s/[ ][ ]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/ / /g'`
+-test -n "$verbose" && echo " ...after $LIBS" 1>&6
++ XCURSES_CONFIG=$ac_ct_XCURSES_CONFIG
++fi
+
+-echo "${as_me:-configure}:11433: testing ...after $LIBS ..." 1>&5
++if test "$XCURSES_CONFIG" != none ; then
+
+-fi
++CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
+
+- ;;
+- esac
+- ;;
+- esac
+- fi
++cf_add_libs="`$XCURSES_CONFIG --libs`"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
+
+- cf_have_X_LIBS=yes
++cf_cv_lib_XCurses=yes
+
+ else
+
+- LDFLAGS="$X_LIBS $LDFLAGS"
++LDFLAGS="$LDFLAGS $X_LIBS"
+
+ test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
+
+-echo "${as_me:-configure}:11451: testing checking additions to CFLAGS ..." 1>&5
++echo "${as_me:-configure}:12382: testing checking additions to CFLAGS ..." 1>&5
+
+ cf_check_cflags="$CFLAGS"
+ cf_check_cppflags="$CPPFLAGS"
+@@ -11468,7 +12399,7 @@
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+@@ -11509,7 +12440,7 @@
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+@@ -11519,7 +12450,7 @@
+ if test -n "$cf_new_cflags" ; then
+ test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
+
+-echo "${as_me:-configure}:11522: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
++echo "${as_me:-configure}:12453: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+@@ -11527,7 +12458,7 @@
+ if test -n "$cf_new_cppflags" ; then
+ test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
+
+-echo "${as_me:-configure}:11530: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
++echo "${as_me:-configure}:12461: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+@@ -11535,14 +12466,14 @@
+ if test -n "$cf_new_extra_cppflags" ; then
+ test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
+
+-echo "${as_me:-configure}:11538: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
++echo "${as_me:-configure}:12469: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+-if test "$cf_check_cflags" != "$CFLAGS" ; then
++if test "x$cf_check_cflags" != "x$CFLAGS" ; then
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11545 "configure"
++#line 12476 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ int
+@@ -11554,16 +12485,16 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11557: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12488: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11560: \$? = $ac_status" >&5
++ echo "$as_me:12491: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11563: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12494: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11566: \$? = $ac_status" >&5
++ echo "$as_me:12497: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+ else
+@@ -11571,12 +12502,12 @@
+ cat conftest.$ac_ext >&5
+ test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
+
+-echo "${as_me:-configure}:11574: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
++echo "${as_me:-configure}:12505: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
+
+- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
++ if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
+ test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
+
+-echo "${as_me:-configure}:11579: testing but keeping change to \$CPPFLAGS ..." 1>&5
++echo "${as_me:-configure}:12510: testing but keeping change to \$CPPFLAGS ..." 1>&5
+
+ fi
+ CFLAGS="$cf_check_flags"
+@@ -11584,17 +12515,17 @@
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+
+- echo "$as_me:11587: checking for XOpenDisplay" >&5
+-echo $ECHO_N "checking for XOpenDisplay... $ECHO_C" >&6
+-if test "${ac_cv_func_XOpenDisplay+set}" = set; then
++echo "$as_me:12518: checking for XOpenDisplay in -lX11" >&5
++echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
++if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 11593 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 12526 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char XOpenDisplay (); below. */
+-#include <assert.h>
++
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+ extern "C"
+@@ -11602,59 +12533,321 @@
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+ char XOpenDisplay ();
+-char (*f) ();
+-
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay)
+-choke me
+-#else
+-f = XOpenDisplay;
+-#endif
++XOpenDisplay ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:12545: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:12548: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:12551: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:12554: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_X11_XOpenDisplay=yes
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++ac_cv_lib_X11_XOpenDisplay=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:12565: result: $ac_cv_lib_X11_XOpenDisplay" >&5
++echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
++if test $ac_cv_lib_X11_XOpenDisplay = yes; then
++
++cf_add_libs="-lX11"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++fi
++
++echo "$as_me:12587: checking for XCurses library" >&5
++echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
++if test "${cf_cv_lib_XCurses+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cf_add_libs="-lXCurses"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 12610 "configure"
++#include "confdefs.h"
++
++#include <xcurses.h>
++char *XCursesProgramName = "test";
+
++int
++main ()
++{
++XCursesExit();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11624: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12625: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11627: \$? = $ac_status" >&5
++ echo "$as_me:12628: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11630: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12631: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11633: \$? = $ac_status" >&5
++ echo "$as_me:12634: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_XOpenDisplay=yes
++ cf_cv_lib_XCurses=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_XOpenDisplay=no
++cf_cv_lib_XCurses=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
+ fi
+-echo "$as_me:11643: result: $ac_cv_func_XOpenDisplay" >&5
+-echo "${ECHO_T}$ac_cv_func_XOpenDisplay" >&6
+-if test $ac_cv_func_XOpenDisplay = yes; then
+- :
++echo "$as_me:12645: result: $cf_cv_lib_XCurses" >&5
++echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
++
++fi
++
++if test $cf_cv_lib_XCurses = yes ; then
++
++cat >>confdefs.h <<\EOF
++#define UNIX 1
++EOF
++
++cat >>confdefs.h <<\EOF
++#define XCURSES 1
++EOF
++
++ echo "$as_me:12660: checking for xcurses.h" >&5
++echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
++if test "${ac_cv_header_xcurses_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 12666 "configure"
++#include "confdefs.h"
++#include <xcurses.h>
++_ACEOF
++if { (eval echo "$as_me:12670: \"$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:12676: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ ac_cv_header_xcurses_h=yes
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ ac_cv_header_xcurses_h=no
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:12695: result: $ac_cv_header_xcurses_h" >&5
++echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
++if test $ac_cv_header_xcurses_h = yes; then
++
++cat >>confdefs.h <<\EOF
++#define HAVE_XCURSES 1
++EOF
++
++fi
++
++else
++ { { echo "$as_me:12706: error: Cannot link with XCurses" >&5
++echo "$as_me: error: Cannot link with XCurses" >&2;}
++ { (exit 1); exit 1; }; }
++fi
++
++ ;;
++esac
++
++case $cf_cv_screen in
++curses|curses_*)
++
++echo "$as_me:12717: checking for NetBSD form.h" >&5
++echo $ECHO_N "checking for NetBSD form.h... $ECHO_C" >&6
++if test "${cf_cv_netbsd_form_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 12724 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <form.h>
++
++int
++main ()
++{
++
++ FORM *form;
++ int y = current_field(form)->cursor_ypos;
++ int x = current_field(form)->cursor_xpos;
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:12743: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:12746: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:12749: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:12752: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_netbsd_form_h=yes
++
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_netbsd_form_h=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:12764: result: $cf_cv_netbsd_form_h" >&5
++echo "${ECHO_T}$cf_cv_netbsd_form_h" >&6
++
++test "$cf_cv_netbsd_form_h" = yes &&
++cat >>confdefs.h <<\EOF
++#define HAVE_NETBSD_FORM_H 1
++EOF
++
++echo "$as_me:12772: checking for NetBSD menu.h" >&5
++echo $ECHO_N "checking for NetBSD menu.h... $ECHO_C" >&6
++if test "${cf_cv_netbsd_menu_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 12779 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <menu.h>
++
++int
++main ()
++{
++
++ MENU *menu;
++ int y = menu->max_item_width;
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:12797: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:12800: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:12803: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:12806: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_netbsd_menu_h=yes
++
+ else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_netbsd_menu_h=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++echo "$as_me:12818: result: $cf_cv_netbsd_menu_h" >&5
++echo "${ECHO_T}$cf_cv_netbsd_menu_h" >&6
++
++test "$cf_cv_netbsd_menu_h" = yes &&
++cat >>confdefs.h <<\EOF
++#define HAVE_NETBSD_MENU_H 1
++EOF
++
++ ;;
++ncursesw)
++ cf_cv_libtype=w
++ ;;
++esac
+
+- echo "$as_me:11649: checking for XOpenDisplay in -lX11" >&5
+-echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
+-if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
++case $cf_cv_screen in #(vi
++pdcurses) #(vi
++ ;;
++*)
++ # look for curses-related libraries
++ : ${cf_panel_lib:=panel}
++ : ${cf_menu_lib:=menu}
++ : ${cf_form_lib:=form}
++
++as_ac_Lib=`echo "ac_cv_lib_$cf_panel_lib$cf_cv_libtype''_new_panel" | $as_tr_sh`
++echo "$as_me:12842: checking for new_panel in -l$cf_panel_lib$cf_cv_libtype" >&5
++echo $ECHO_N "checking for new_panel in -l$cf_panel_lib$cf_cv_libtype... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
++LIBS="-l$cf_panel_lib$cf_cv_libtype $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11657 "configure"
++#line 12850 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -11663,115 +12856,116 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char XOpenDisplay ();
++char new_panel ();
+ int
+ main ()
+ {
+-XOpenDisplay ();
++new_panel ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11676: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12869: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11679: \$? = $ac_status" >&5
++ echo "$as_me:12872: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11682: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12875: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11685: \$? = $ac_status" >&5
++ echo "$as_me:12878: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_X11_XOpenDisplay=yes
++ eval "$as_ac_Lib=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_X11_XOpenDisplay=no
++eval "$as_ac_Lib=no"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11696: result: $ac_cv_lib_X11_XOpenDisplay" >&5
+-echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
+-if test $ac_cv_lib_X11_XOpenDisplay = yes; then
+- LIBS="-lX11 $LIBS"
+-fi
++echo "$as_me:12889: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
++if test `eval echo '${'$as_ac_Lib'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_LIB$cf_panel_lib$cf_cv_libtype" | $as_tr_cpp` 1
++EOF
++
++ LIBS="-l$cf_panel_lib$cf_cv_libtype $LIBS"
+
+ fi
+
+- echo "$as_me:11704: checking for XtAppInitialize" >&5
+-echo $ECHO_N "checking for XtAppInitialize... $ECHO_C" >&6
+-if test "${ac_cv_func_XtAppInitialize+set}" = set; then
++as_ac_Lib=`echo "ac_cv_lib_$cf_menu_lib$cf_cv_libtype''_menu_driver" | $as_tr_sh`
++echo "$as_me:12901: checking for menu_driver in -l$cf_menu_lib$cf_cv_libtype" >&5
++echo $ECHO_N "checking for menu_driver in -l$cf_menu_lib$cf_cv_libtype... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 11710 "configure"
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-l$cf_menu_lib$cf_cv_libtype $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line 12909 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char XtAppInitialize (); below. */
+-#include <assert.h>
++
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char XtAppInitialize ();
+-char (*f) ();
+-
++char menu_driver ();
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize)
+-choke me
+-#else
+-f = XtAppInitialize;
+-#endif
+-
++menu_driver ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11741: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12928: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11744: \$? = $ac_status" >&5
++ echo "$as_me:12931: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11747: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12934: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11750: \$? = $ac_status" >&5
++ echo "$as_me:12937: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_XtAppInitialize=yes
++ eval "$as_ac_Lib=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_XtAppInitialize=no
++eval "$as_ac_Lib=no"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11760: result: $ac_cv_func_XtAppInitialize" >&5
+-echo "${ECHO_T}$ac_cv_func_XtAppInitialize" >&6
+-if test $ac_cv_func_XtAppInitialize = yes; then
+- :
+-else
++echo "$as_me:12948: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
++if test `eval echo '${'$as_ac_Lib'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_LIB$cf_menu_lib$cf_cv_libtype" | $as_tr_cpp` 1
++EOF
+
+- echo "$as_me:11766: checking for XtAppInitialize in -lXt" >&5
+-echo $ECHO_N "checking for XtAppInitialize in -lXt... $ECHO_C" >&6
+-if test "${ac_cv_lib_Xt_XtAppInitialize+set}" = set; then
++ LIBS="-l$cf_menu_lib$cf_cv_libtype $LIBS"
++
++fi
++
++as_ac_Lib=`echo "ac_cv_lib_$cf_form_lib$cf_cv_libtype''_form_driver" | $as_tr_sh`
++echo "$as_me:12960: checking for form_driver in -l$cf_form_lib$cf_cv_libtype" >&5
++echo $ECHO_N "checking for form_driver in -l$cf_form_lib$cf_cv_libtype... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+ ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
++LIBS="-l$cf_form_lib$cf_cv_libtype $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 11774 "configure"
++#line 12968 "configure"
+ #include "confdefs.h"
+
+ /* Override any gcc2 internal prototype to avoid an error. */
+@@ -11780,1160 +12974,1106 @@
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char XtAppInitialize ();
++char form_driver ();
+ int
+ main ()
+ {
+-XtAppInitialize ();
++form_driver ();
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11793: \"$ac_link\"") >&5
++if { (eval echo "$as_me:12987: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11796: \$? = $ac_status" >&5
++ echo "$as_me:12990: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11799: \"$ac_try\"") >&5
++ { (eval echo "$as_me:12993: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11802: \$? = $ac_status" >&5
++ echo "$as_me:12996: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_Xt_XtAppInitialize=yes
++ eval "$as_ac_Lib=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_Xt_XtAppInitialize=no
++eval "$as_ac_Lib=no"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:11813: result: $ac_cv_lib_Xt_XtAppInitialize" >&5
+-echo "${ECHO_T}$ac_cv_lib_Xt_XtAppInitialize" >&6
+-if test $ac_cv_lib_Xt_XtAppInitialize = yes; then
+- cat >>confdefs.h <<\EOF
+-#define HAVE_LIBXT 1
++echo "$as_me:13007: result: `eval echo '${'$as_ac_Lib'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
++if test `eval echo '${'$as_ac_Lib'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_LIB$cf_form_lib$cf_cv_libtype" | $as_tr_cpp` 1
+ EOF
+
+- cf_have_X_LIBS=Xt
+- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
++ LIBS="-l$cf_form_lib$cf_cv_libtype $LIBS"
++
++fi
++
++ # look for curses-related headers
++
++for ac_header in \
++ nc_alloc.h \
++ nomacros.h \
++ form.h \
++ menu.h \
++ panel.h \
++ term_entry.h \
++
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:13030: 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 13036 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:13040: \"$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:13046: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
+ fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:13065: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
+
+ fi
++done
++
++ ;;
++esac
++
++echo "$as_me:13078: 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 13084 "configure"
++#include "confdefs.h"
++#include <stdlib.h>
++#include <stdarg.h>
++#include <string.h>
++#include <float.h>
+
++_ACEOF
++if { (eval echo "$as_me:13092: \"$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:13098: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ ac_cv_header_stdc=yes
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ ac_cv_header_stdc=no
+ fi
++rm -f conftest.err conftest.$ac_ext
++
++if test $ac_cv_header_stdc = yes; then
++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13120 "configure"
++#include "confdefs.h"
++#include <string.h>
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++ egrep "memchr" >/dev/null 2>&1; then
++ :
++else
++ ac_cv_header_stdc=no
++fi
++rm -rf conftest*
+
+-if test $cf_have_X_LIBS = no ; then
+- { echo "$as_me:11829: WARNING: Unable to successfully link X Toolkit library (-lXt) with
+-test program. You will have to check and add the proper libraries by hand
+-to makefile." >&5
+-echo "$as_me: WARNING: Unable to successfully link X Toolkit library (-lXt) with
+-test program. You will have to check and add the proper libraries by hand
+-to makefile." >&2;}
+ fi
+
+-cf_x_athena_root=$cf_x_athena
+-cf_x_athena_inc=""
++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 13138 "configure"
++#include "confdefs.h"
++#include <stdlib.h>
+
+-for cf_path in default \
+- /usr/contrib/X11R6 \
+- /usr/contrib/X11R5 \
+- /usr/lib/X11R5 \
+- /usr/local
+-do
+- if test -z "$cf_x_athena_inc" ; then
+- cf_save="$CPPFLAGS"
+- cf_test=X11/$cf_x_athena_root/SimpleMenu.h
+- if test $cf_path != default ; then
+- CPPFLAGS="$cf_save -I$cf_path/include"
+- echo "$as_me:11851: checking for $cf_test in $cf_path" >&5
+-echo $ECHO_N "checking for $cf_test in $cf_path... $ECHO_C" >&6
+- else
+- echo "$as_me:11854: checking for $cf_test" >&5
+-echo $ECHO_N "checking for $cf_test... $ECHO_C" >&6
+- fi
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 11858 "configure"
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++ egrep "free" >/dev/null 2>&1; then
++ :
++else
++ ac_cv_header_stdc=no
++fi
++rm -rf conftest*
++
++fi
++
++if test $ac_cv_header_stdc = yes; then
++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
++ if test "$cross_compiling" = yes; then
++ :
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13159 "configure"
+ #include "confdefs.h"
++#include <ctype.h>
++#if ((' ' & 0x0FF) == 0x020)
++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
++#else
++# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
++ || ('j' <= (c) && (c) <= 'r') \
++ || ('s' <= (c) && (c) <= 'z'))
++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
++#endif
+
+-#include <X11/Intrinsic.h>
+-#include <$cf_test>
++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ int
+ main ()
+ {
+-
+- ;
+- return 0;
++ int i;
++ for (i = 0; i < 256; i++)
++ if (XOR (islower (i), ISLOWER (i))
++ || toupper (i) != TOUPPER (i))
++ $ac_main_return(2);
++ $ac_main_return (0);
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:11872: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:13185: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:11875: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:11878: \"$ac_try\"") >&5
++ echo "$as_me:13188: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:13190: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11881: \$? = $ac_status" >&5
++ echo "$as_me:13193: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ :
+ else
+- echo "$as_me: failed program was:" >&5
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
++ac_cv_header_stdc=no
++fi
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++fi
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+- echo "$as_me:11890: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- if test "$cf_result" = yes ; then
+- cf_x_athena_inc=$cf_path
+- break
+- else
+- CPPFLAGS="$cf_save"
+- fi
+- fi
+-done
+-
+-if test -z "$cf_x_athena_inc" ; then
+- { echo "$as_me:11902: WARNING: Unable to successfully find Athena header files with test program" >&5
+-echo "$as_me: WARNING: Unable to successfully find Athena header files with test program" >&2;}
+-elif test "$cf_x_athena_inc" != default ; then
+- CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
+ fi
++echo "$as_me:13206: result: $ac_cv_header_stdc" >&5
++echo "${ECHO_T}$ac_cv_header_stdc" >&6
++if test $ac_cv_header_stdc = yes; then
+
+-cf_x_athena_root=$cf_x_athena
+-cf_x_athena_lib=""
++cat >>confdefs.h <<\EOF
++#define STDC_HEADERS 1
++EOF
+
+-for cf_path in default \
+- /usr/contrib/X11R6 \
+- /usr/contrib/X11R5 \
+- /usr/lib/X11R5 \
+- /usr/local
+-do
+- for cf_lib in \
+- "-l$cf_x_athena_root -lXmu" \
+- "-l$cf_x_athena_root -lXpm -lXmu" \
+- "-l${cf_x_athena_root}_s -lXmu_s"
+- do
+- if test -z "$cf_x_athena_lib" ; then
+- cf_save="$LIBS"
+- cf_test=XawSimpleMenuAddGlobalActions
+- if test $cf_path != default ; then
+- LIBS="-L$cf_path/lib $cf_lib $LIBS"
+- echo "$as_me:11927: checking for $cf_lib in $cf_path" >&5
+-echo $ECHO_N "checking for $cf_lib in $cf_path... $ECHO_C" >&6
+- else
+- LIBS="$cf_lib $LIBS"
+- echo "$as_me:11931: checking for $cf_test in $cf_lib" >&5
+-echo $ECHO_N "checking for $cf_test in $cf_lib... $ECHO_C" >&6
+- fi
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 11935 "configure"
+-#include "confdefs.h"
++fi
+
+-#include <X11/Intrinsic.h>
+-#include <X11/$cf_x_athena_root/SimpleMenu.h>
++echo "$as_me:13216: 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 13222 "configure"
++#include "confdefs.h"
++#include <sys/types.h>
++#include <sys/time.h>
++#include <time.h>
+
+ int
+ main ()
+ {
+-
+-$cf_test((XtAppContext) 0)
++if ((struct tm *) 0)
++return 0;
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:11951: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13238: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:11954: \$? = $ac_status" >&5
++ echo "$as_me:13241: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:11957: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:13244: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:11960: \$? = $ac_status" >&5
++ echo "$as_me:13247: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ ac_cv_header_time=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
++ac_cv_header_time=no
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- echo "$as_me:11969: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- if test "$cf_result" = yes ; then
+- cf_x_athena_lib="$cf_lib"
+- break
+- fi
+- LIBS="$cf_save"
+- fi
+- done
+-done
+-
+-if test -z "$cf_x_athena_lib" ; then
+- { { echo "$as_me:11981: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&5
+-echo "$as_me: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" >&2;}
+- { (exit 1); exit 1; }; }
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
++echo "$as_me:13257: result: $ac_cv_header_time" >&5
++echo "${ECHO_T}$ac_cv_header_time" >&6
++if test $ac_cv_header_time = yes; then
+
+-cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-
+-cat >>confdefs.h <<EOF
+-#define $cf_x_athena_LIBS 1
++cat >>confdefs.h <<\EOF
++#define TIME_WITH_SYS_TIME 1
+ EOF
+
+ fi
+
+-for ac_prog in xcurses-config
++for ac_header in \
++getopt.h \
++locale.h \
++math.h \
++stdarg.h \
++sys/ioctl.h \
++sys/select.h \
++sys/time.h \
++termios.h \
++unistd.h \
++
+ do
+- # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:11998: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_XCURSES_CONFIG+set}" = set; then
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:13280: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- case $XCURSES_CONFIG in
+- [\\/]* | ?:[\\/]*)
+- ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a path.
+- ;;
+- *)
+- ac_save_IFS=$IFS; IFS=$ac_path_separator
+-ac_dummy="$PATH"
+-for ac_dir in $ac_dummy; do
+- IFS=$ac_save_IFS
+- test -z "$ac_dir" && ac_dir=.
+- if $as_executable_p "$ac_dir/$ac_word"; then
+- ac_cv_path_XCURSES_CONFIG="$ac_dir/$ac_word"
+- echo "$as_me:12015: found $ac_dir/$ac_word" >&5
+- break
+-fi
+-done
+-
+- ;;
+-esac
+-fi
+-XCURSES_CONFIG=$ac_cv_path_XCURSES_CONFIG
+-
+-if test -n "$XCURSES_CONFIG"; then
+- echo "$as_me:12026: result: $XCURSES_CONFIG" >&5
+-echo "${ECHO_T}$XCURSES_CONFIG" >&6
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13286 "configure"
++#include "confdefs.h"
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:13290: \"$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:13296: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
+ else
+- echo "$as_me:12029: result: no" >&5
+-echo "${ECHO_T}no" >&6
++ ac_cpp_err=yes
+ fi
+-
+- test -n "$XCURSES_CONFIG" && break
+-done
+-test -n "$XCURSES_CONFIG" || XCURSES_CONFIG="none"
+-
+-if test "$XCURSES_CONFIG" != none ; then
+-
+-CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
+-LIBS="`$XCURSES_CONFIG --libs` $LIBS"
+-
+-cf_cv_lib_XCurses=yes
+-
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
+ else
+-
+-LDFLAGS="$LDFLAGS $X_LIBS"
+-
+-test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
+-
+-echo "${as_me:-configure}:12050: testing checking additions to CFLAGS ..." 1>&5
+-
+-cf_check_cflags="$CFLAGS"
+-cf_check_cppflags="$CPPFLAGS"
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $X_CFLAGS
+-do
+-case $cf_fix_cppflags in
+-no)
+- case $cf_add_cflags in #(vi
+- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+- case $cf_add_cflags in
+- -D*)
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test $cf_fix_cppflags = yes ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- *$cf_add_cflags) #(vi
+- ;;
+- *) #(vi
+- case $cf_add_cflags in #(vi
+- -D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+- *)
+- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+- ;;
+- esac
+- ;;
+-yes)
+- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+-
+- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+-
+- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+- test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
+-
+-echo "${as_me:-configure}:12121: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+-
+- CFLAGS="$CFLAGS $cf_new_cflags"
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
+ fi
+-
+-if test -n "$cf_new_cppflags" ; then
+- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
+-
+-echo "${as_me:-configure}:12129: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+-
+- CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++rm -f conftest.err conftest.$ac_ext
+ fi
++echo "$as_me:13315: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
+
+-if test -n "$cf_new_extra_cppflags" ; then
+- test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
+-
+-echo "${as_me:-configure}:12137: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+-
+- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
++done
+
+-if test "$cf_check_cflags" != "$CFLAGS" ; then
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 12144 "configure"
++for ac_header in unistd.h getopt.h
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:13328: 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 13334 "configure"
+ #include "confdefs.h"
+-#include <stdio.h>
+-int
+-main ()
+-{
+-printf("Hello world");
+- ;
+- return 0;
+-}
++#include <$ac_header>
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12156: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:12159: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12162: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
++if { (eval echo "$as_me:13338: \"$ac_cpp conftest.$ac_ext\"") >&5
++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+- echo "$as_me:12165: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- :
++ egrep -v '^ *\+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:13344: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ eval "$as_ac_Header=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
+-
+-echo "${as_me:-configure}:12173: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
+-
+- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
+- test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
+-
+-echo "${as_me:-configure}:12178: testing but keeping change to \$CPPFLAGS ..." 1>&5
+-
+- fi
+- CFLAGS="$cf_check_flags"
++ cat conftest.$ac_ext >&5
++ eval "$as_ac_Header=no"
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:13363: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++EOF
++
+ fi
++done
+
+-echo "$as_me:12186: checking for XOpenDisplay in -lX11" >&5
+-echo $ECHO_N "checking for XOpenDisplay in -lX11... $ECHO_C" >&6
+-if test "${ac_cv_lib_X11_XOpenDisplay+set}" = set; then
++echo "$as_me:13373: checking for header declaring getopt variables" >&5
++echo $ECHO_N "checking for header declaring getopt variables... $ECHO_C" >&6
++if test "${cf_cv_getopt_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
++
++cf_cv_getopt_header=none
++for cf_header in stdio.h stdlib.h unistd.h getopt.h
++do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12194 "configure"
++#line 13383 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char XOpenDisplay ();
++#include <$cf_header>
+ int
+ main ()
+ {
+-XOpenDisplay ();
++int x = optind; char *y = optarg
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12213: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13396: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:12216: \$? = $ac_status" >&5
++ echo "$as_me:13399: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12219: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:13402: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12222: \$? = $ac_status" >&5
++ echo "$as_me:13405: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_lib_X11_XOpenDisplay=yes
++ cf_cv_getopt_header=$cf_header
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_lib_X11_XOpenDisplay=no
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
+ fi
+-echo "$as_me:12233: result: $ac_cv_lib_X11_XOpenDisplay" >&5
+-echo "${ECHO_T}$ac_cv_lib_X11_XOpenDisplay" >&6
+-if test $ac_cv_lib_X11_XOpenDisplay = yes; then
+- LIBS="-lX11 $LIBS"
++echo "$as_me:13417: result: $cf_cv_getopt_header" >&5
++echo "${ECHO_T}$cf_cv_getopt_header" >&6
++if test $cf_cv_getopt_header != none ; then
++
++cat >>confdefs.h <<\EOF
++#define HAVE_GETOPT_HEADER 1
++EOF
++
+ fi
++if test $cf_cv_getopt_header = getopt.h ; then
+
+-echo "$as_me:12239: checking for XCurses library" >&5
+-echo $ECHO_N "checking for XCurses library... $ECHO_C" >&6
+-if test "${cf_cv_lib_XCurses+set}" = set; then
++cat >>confdefs.h <<\EOF
++#define NEED_GETOPT_H 1
++EOF
++
++fi
++
++for ac_func in \
++getopt \
++gettimeofday \
++
++do
++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
++echo "$as_me:13440: 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
+-
+-LIBS="-lXCurses $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 12247 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13446 "configure"
+ #include "confdefs.h"
+-
+-#include <xcurses.h>
+-char *XCursesProgramName = "test";
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char $ac_func (); below. */
++#include <assert.h>
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char $ac_func ();
++char (*f) ();
+
+ int
+ main ()
+ {
+-XCursesExit();
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
++choke me
++#else
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12262: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13477: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12265: \$? = $ac_status" >&5
++ echo "$as_me:13480: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12268: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13483: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12271: \$? = $ac_status" >&5
++ echo "$as_me:13486: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_lib_XCurses=yes
++ eval "$as_ac_var=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_lib_XCurses=no
++eval "$as_ac_var=no"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-
+-fi
+-echo "$as_me:12282: result: $cf_cv_lib_XCurses" >&5
+-echo "${ECHO_T}$cf_cv_lib_XCurses" >&6
+-
+-fi
+-
+-if test $cf_cv_lib_XCurses = yes ; then
+- cat >>confdefs.h <<\EOF
+-#define UNIX 1
+-EOF
+-
+- cat >>confdefs.h <<\EOF
+-#define XCURSES 1
+-EOF
+-
+- echo "$as_me:12296: checking for xcurses.h" >&5
+-echo $ECHO_N "checking for xcurses.h... $ECHO_C" >&6
+-if test "${ac_cv_header_xcurses_h+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12302 "configure"
+-#include "confdefs.h"
+-#include <xcurses.h>
+-_ACEOF
+-if { (eval echo "$as_me:12306: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+- ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:12312: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- ac_cv_header_xcurses_h=yes
+-else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- ac_cv_header_xcurses_h=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+ fi
+-echo "$as_me:12331: result: $ac_cv_header_xcurses_h" >&5
+-echo "${ECHO_T}$ac_cv_header_xcurses_h" >&6
+-if test $ac_cv_header_xcurses_h = yes; then
+- cat >>confdefs.h <<\EOF
+-#define HAVE_XCURSES 1
++echo "$as_me:13496: result: `eval echo '${'$as_ac_var'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
++if test `eval echo '${'$as_ac_var'}'` = yes; then
++ cat >>confdefs.h <<EOF
++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ EOF
+
+ fi
++done
+
+-else
+- { { echo "$as_me:12341: error: Cannot link with XCurses" >&5
+-echo "$as_me: error: Cannot link with XCurses" >&2;}
++if test "x$ac_cv_func_getopt" = xno; then
++ { { echo "$as_me:13507: error: getopt is required for building programs" >&5
++echo "$as_me: error: getopt is required for building programs" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+- ;;
+-esac
++if test "$cf_enable_widec" = yes; then
+
+-case $cf_cv_screen in #(vi
+-pdcurses) #(vi
+- ;;
+-*)
+- # look for curses-related libraries
++for ac_func in \
++mblen \
++mbrlen \
++mbrtowc \
++mbsrtowcs \
++mbstowcs \
++mbtowc \
++wcsrtombs \
++wcstombs \
+
+-as_ac_Lib=`echo "ac_cv_lib_panel$cf_cv_libtype''_new_panel" | $as_tr_sh`
+-echo "$as_me:12356: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+-echo $ECHO_N "checking for new_panel in -lpanel$cf_cv_libtype... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Lib+set}\" = set"; then
++do
++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
++echo "$as_me:13526: checking for $ac_func" >&5
++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
++if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lpanel$cf_cv_libtype $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 12364 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13532 "configure"
+ #include "confdefs.h"
+-
++/* System header to define __stub macros and hopefully few prototypes,
++ which can conflict with char $ac_func (); below. */
++#include <assert.h>
+ /* Override any gcc2 internal prototype to avoid an error. */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ /* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char new_panel ();
++char $ac_func ();
++char (*f) ();
++
+ int
+ main ()
+ {
+-new_panel ();
++/* The GNU C library defines this for functions which it implements
++ to always fail with ENOSYS. Some functions are actually named
++ something starting with __ and the normal name is an alias. */
++#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
++choke me
++#else
++f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12383: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13563: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12386: \$? = $ac_status" >&5
++ echo "$as_me:13566: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12389: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13569: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12392: \$? = $ac_status" >&5
++ echo "$as_me:13572: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_Lib=yes"
++ eval "$as_ac_var=yes"
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_Lib=no"
++eval "$as_ac_var=no"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12403: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+-if test `eval echo '${'$as_ac_Lib'}'` = yes; then
++echo "$as_me:13582: 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_LIBpanel$cf_cv_libtype" | $as_tr_cpp` 1
++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ EOF
+
+- LIBS="-lpanel$cf_cv_libtype $LIBS"
++fi
++done
+
+ fi
+
+-as_ac_Lib=`echo "ac_cv_lib_menu$cf_cv_libtype''_menu_driver" | $as_tr_sh`
+-echo "$as_me:12415: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+-echo $ECHO_N "checking for menu_driver in -lmenu$cf_cv_libtype... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Lib+set}\" = set"; then
++echo "$as_me:13594: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
++echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
++if test "${cf_cv_need_xopen_extension+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lmenu$cf_cv_libtype $LIBS"
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12423 "configure"
++#line 13601 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char menu_driver ();
++#include <stdlib.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-menu_driver ();
++
++#if defined(NCURSES_VERSION_PATCH)
++#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
++ make an error
++#endif
++#endif
++ long x = winnstr(stdscr, "", 0);
++ int x1, y1;
++ getbegyx(stdscr, y1, x1)
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12442: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13623: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12445: \$? = $ac_status" >&5
++ echo "$as_me:13626: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12448: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13629: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12451: \$? = $ac_status" >&5
++ echo "$as_me:13632: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_Lib=yes"
++ cf_cv_need_xopen_extension=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_Lib=no"
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:12462: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+-if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_LIBmenu$cf_cv_libtype" | $as_tr_cpp` 1
+-EOF
+-
+- LIBS="-lmenu$cf_cv_libtype $LIBS"
+-
+-fi
+-
+-as_ac_Lib=`echo "ac_cv_lib_form$cf_cv_libtype''_form_driver" | $as_tr_sh`
+-echo "$as_me:12474: checking for form_driver in -lform$cf_cv_libtype" >&5
+-echo $ECHO_N "checking for form_driver in -lform$cf_cv_libtype... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lform$cf_cv_libtype $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12482 "configure"
++#line 13639 "configure"
+ #include "confdefs.h"
+
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char form_driver ();
++#define _XOPEN_SOURCE_EXTENDED
++#include <stdlib.h>
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-form_driver ();
++
++#ifdef NCURSES_VERSION
++ cchar_t check;
++ int check2 = curs_set((int)sizeof(check));
++#endif
++ long x = winnstr(stdscr, "", 0);
++ int x1, y1;
++ getbegyx(stdscr, y1, x1)
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12501: \"$ac_link\"") >&5
++if { (eval echo "$as_me:13661: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12504: \$? = $ac_status" >&5
++ echo "$as_me:13664: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12507: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13667: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12510: \$? = $ac_status" >&5
++ echo "$as_me:13670: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_Lib=yes"
++ cf_cv_need_xopen_extension=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_Lib=no"
++cf_cv_need_xopen_extension=unknown
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+ fi
+-echo "$as_me:12521: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+-if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_LIBform$cf_cv_libtype" | $as_tr_cpp` 1
+-EOF
+-
+- LIBS="-lform$cf_cv_libtype $LIBS"
+-
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
++echo "$as_me:13682: result: $cf_cv_need_xopen_extension" >&5
++echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
++test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+
+- # look for curses-related headers
+-
+-for ac_header in \
+- nc_alloc.h \
+- nomacros.h \
+- form.h \
+- menu.h \
+- panel.h \
+- term_entry.h \
+-
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:12544: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
++echo "$as_me:13686: checking for term.h" >&5
++echo $ECHO_N "checking for term.h... $ECHO_C" >&6
++if test "${cf_cv_term_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12550 "configure"
+-#include "confdefs.h"
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:12554: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+- ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:12560: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- eval "$as_ac_Header=yes"
+-else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-fi
+-echo "$as_me:12579: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-EOF
+
+-fi
+-done
++# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
++# for <term.h> if we do not find the variant.
++
++cf_header_list="term.h ncurses/term.h ncursesw/term.h"
+
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
++ cf_header_list="$cf_header_item $cf_header_list"
+ ;;
+ esac
+
+-echo "$as_me:12592: checking return type of signal handlers" >&5
+-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+-if test "${ac_cv_type_signal+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12598 "configure"
++for cf_header in $cf_header_list
++do
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13707 "configure"
+ #include "confdefs.h"
+-#include <sys/types.h>
+-#include <signal.h>
+-#ifdef signal
+-# undef signal
+-#endif
+-#ifdef __cplusplus
+-extern "C" void (*signal (int, void (*)(int)))(int);
+-#else
+-void (*signal ()) ();
+-#endif
+
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <${cf_header}>
+ int
+ main ()
+ {
+-int i;
++WINDOW *x
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12620: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13721: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:12623: \$? = $ac_status" >&5
++ echo "$as_me:13724: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:12626: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13727: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12629: \$? = $ac_status" >&5
++ echo "$as_me:13730: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_type_signal=void
++ cf_cv_term_header=$cf_header
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_type_signal=int
++cf_cv_term_header=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:12639: result: $ac_cv_type_signal" >&5
+-echo "${ECHO_T}$ac_cv_type_signal" >&6
+-
+-cat >>confdefs.h <<EOF
+-#define RETSIGTYPE $ac_cv_type_signal
+-EOF
+-
+-echo "$as_me:12646: checking for ANSI C header files" >&5
+-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+-if test "${ac_cv_header_stdc+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12652 "configure"
+-#include "confdefs.h"
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <string.h>
+-#include <float.h>
+-
+-_ACEOF
+-if { (eval echo "$as_me:12660: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+- ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:12666: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- ac_cv_header_stdc=yes
+-else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- ac_cv_header_stdc=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-if test $ac_cv_header_stdc = yes; then
+- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12688 "configure"
+-#include "confdefs.h"
+-#include <string.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+- egrep "memchr" >/dev/null 2>&1; then
+- :
+-else
+- ac_cv_header_stdc=no
+-fi
+-rm -rf conftest*
+-
+-fi
++done
+
+-if test $ac_cv_header_stdc = yes; then
+- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12706 "configure"
++case $cf_cv_term_header in #(vi
++no)
++ # If curses is ncurses, some packagers still mess it up by trying to make
++ # us use GNU termcap. This handles the most common case.
++ for cf_header in ncurses/term.h ncursesw/term.h
++ do
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13749 "configure"
+ #include "confdefs.h"
+-#include <stdlib.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+- egrep "free" >/dev/null 2>&1; then
+- :
+-else
+- ac_cv_header_stdc=no
+-fi
+-rm -rf conftest*
+-
+-fi
+
+-if test $ac_cv_header_stdc = yes; then
+- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+- if test "$cross_compiling" = yes; then
+- :
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12727 "configure"
+-#include "confdefs.h"
+-#include <ctype.h>
+-#if ((' ' & 0x0FF) == 0x020)
+-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
++#include <${cf_cv_ncurses_header:-curses.h}>
++#ifdef NCURSES_VERSION
++#include <${cf_header}>
+ #else
+-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+- || ('j' <= (c) && (c) <= 'r') \
+- || ('s' <= (c) && (c) <= 'z'))
+-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
++make an error
+ #endif
+-
+-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ int
+ main ()
+ {
+- int i;
+- for (i = 0; i < 256; i++)
+- if (XOR (islower (i), ISLOWER (i))
+- || toupper (i) != TOUPPER (i))
+- $ac_main_return(2);
+- $ac_main_return (0);
++WINDOW *x
++ ;
++ return 0;
+ }
+ _ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:12753: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:13767: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:12756: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:12758: \"$ac_try\"") >&5
++ echo "$as_me:13770: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:13773: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12761: \$? = $ac_status" >&5
++ echo "$as_me:13776: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- :
++ cf_cv_term_header=$cf_header
++ break
+ else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
++ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_header_stdc=no
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
++cf_cv_term_header=no
+ fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ done
++ ;;
++esac
++
+ fi
+-echo "$as_me:12774: result: $ac_cv_header_stdc" >&5
+-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+-if test $ac_cv_header_stdc = yes; then
++echo "$as_me:13791: result: $cf_cv_term_header" >&5
++echo "${ECHO_T}$cf_cv_term_header" >&6
++
++case $cf_cv_term_header in #(vi
++term.h) #(vi
+
+ cat >>confdefs.h <<\EOF
+-#define STDC_HEADERS 1
++#define HAVE_TERM_H 1
+ EOF
+
+-fi
++ ;;
++ncurses/term.h) #(vi
+
+-echo "$as_me:12784: checking whether time.h and sys/time.h may both be included" >&5
+-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+-if test "${ac_cv_header_time+set}" = set; then
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_TERM_H 1
++EOF
++
++ ;;
++ncursesw/term.h)
++
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_TERM_H 1
++EOF
++
++ ;;
++esac
++
++echo "$as_me:13818: checking for unctrl.h" >&5
++echo $ECHO_N "checking for unctrl.h... $ECHO_C" >&6
++if test "${cf_cv_unctrl_header+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12790 "configure"
++
++# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
++# for <unctrl.h> if we do not find the variant.
++
++cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
++
++case ${cf_cv_ncurses_header:-curses.h} in #(vi
++*/*)
++ cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
++ cf_header_list="$cf_header_item $cf_header_list"
++ ;;
++esac
++
++for cf_header in $cf_header_list
++do
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13839 "configure"
+ #include "confdefs.h"
+-#include <sys/types.h>
+-#include <sys/time.h>
+-#include <time.h>
+
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <${cf_header}>
+ int
+ main ()
+ {
+-if ((struct tm *) 0)
+-return 0;
++WINDOW *x
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:12806: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:13853: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:12809: \$? = $ac_status" >&5
++ echo "$as_me:13856: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:12812: \"$ac_try\"") >&5
++ { (eval echo "$as_me:13859: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12815: \$? = $ac_status" >&5
++ echo "$as_me:13862: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_header_time=yes
++ cf_cv_unctrl_header=$cf_header
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_header_time=no
++cf_cv_unctrl_header=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++done
++
+ fi
+-echo "$as_me:12825: result: $ac_cv_header_time" >&5
+-echo "${ECHO_T}$ac_cv_header_time" >&6
+-if test $ac_cv_header_time = yes; then
++echo "$as_me:13875: result: $cf_cv_unctrl_header" >&5
++echo "${ECHO_T}$cf_cv_unctrl_header" >&6
++
++case $cf_cv_unctrl_header in #(vi
++no)
++ { echo "$as_me:13880: WARNING: unctrl.h header not found" >&5
++echo "$as_me: WARNING: unctrl.h header not found" >&2;}
++ ;;
++esac
++
++case $cf_cv_unctrl_header in #(vi
++unctrl.h) #(vi
+
+ cat >>confdefs.h <<\EOF
+-#define TIME_WITH_SYS_TIME 1
++#define HAVE_UNCTRL_H 1
+ EOF
+
+-fi
++ ;;
++ncurses/unctrl.h) #(vi
+
+-for ac_header in \
+-getopt.h \
+-locale.h \
+-math.h \
+-stdarg.h \
+-sys/ioctl.h \
+-sys/select.h \
+-sys/time.h \
+-termios.h \
+-unistd.h \
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSES_UNCTRL_H 1
++EOF
++
++ ;;
++ncursesw/unctrl.h)
++
++cat >>confdefs.h <<\EOF
++#define HAVE_NCURSESW_UNCTRL_H 1
++EOF
++
++ ;;
++esac
++
++for cf_func in \
++assume_default_colors \
++chgat \
++color_set \
++filter \
++getbegx \
++getcurx \
++getmaxx \
++getnstr \
++getparx \
++getwin \
++mvvline \
++mvwvline \
++napms \
++putwin \
++resize_term \
++resizeterm \
++ripoffline \
++scr_dump \
++setupterm \
++slk_color \
++slk_init \
++termattrs \
++tgetent \
++tigetnum \
++tigetstr \
++typeahead \
++use_default_colors \
++use_env \
++use_extended_names \
++use_screen \
++use_window \
++vid_puts \
++vidputs \
++vsscanf \
++vw_printw \
++wchgat \
++winsstr \
++wresize \
++wsyncdown \
+
+ do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:12848: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
++
++cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ echo "$as_me:13954: checking for ${cf_func}" >&5
++echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
++
++echo "${as_me:-configure}:13957: testing ${cf_func} ..." 1>&5
++
++ if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12854 "configure"
++
++ eval cf_result='$ac_cv_func_'$cf_func
++ if test ".$cf_result" != ".no"; then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 13966 "configure"
+ #include "confdefs.h"
+-#include <$ac_header>
++
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
++#endif
++#endif
++
++int
++main ()
++{
++
++#ifndef ${cf_func}
++long foo = (long)(&${cf_func});
++fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
++if (foo + 1234 > 5678)
++ ${cf_cv_main_return:-return}(foo);
++#endif
++
++ ;
++ return 0;
++}
+ _ACEOF
+-if { (eval echo "$as_me:12858: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:13999: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:12864: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- eval "$as_ac_Header=yes"
++ echo "$as_me:14002: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:14005: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:14008: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- eval "$as_ac_Header=no"
++cat conftest.$ac_ext >&5
++cf_result=no
+ fi
+-rm -f conftest.err conftest.$ac_ext
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ fi
++ eval 'cf_cv_func_'$cf_func'=$cf_result'
++
+ fi
+-echo "$as_me:12883: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++
++ # use the computed/retrieved cache-value:
++ eval 'cf_result=$cf_cv_func_'$cf_func
++ echo "$as_me:14024: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test $cf_result != no; then
++ cat >>confdefs.h <<EOF
++#define HAVE_${cf_tr_func} 1
+ EOF
+
+-fi
++ fi
+ done
+
+-for ac_func in \
+-gettimeofday \
+-mblen \
+-mbrlen \
+-mbrtowc \
+-mbsrtowcs \
+-mbstowcs \
+-mbtowc \
+-strdup \
+-wcsrtombs \
+-wcstombs \
+-
++for cf_func in tputs
+ do
+-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:12907: checking for $ac_func" >&5
+-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_var+set}\" = set"; then
++
++cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ echo "$as_me:14039: checking for ${cf_func}" >&5
++echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
++
++echo "${as_me:-configure}:14042: testing ${cf_func} ..." 1>&5
++
++ if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 12913 "configure"
++
++ eval cf_result='$ac_cv_func_'$cf_func
++ if test ".$cf_result" != ".no"; then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14051 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char $ac_func (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
++
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
++#endif
+ #endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char $ac_func ();
+-char (*f) ();
+
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+-choke me
+-#else
+-f = $ac_func;
++
++#ifndef ${cf_func}
++long foo = (long)(&${cf_func});
++fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
++if (foo + 1234 > 5678)
++ ${cf_cv_main_return:-return}(foo);
+ #endif
+
+ ;
+@@ -12941,1135 +14081,1039 @@
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:12944: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14084: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:12947: \$? = $ac_status" >&5
++ echo "$as_me:14087: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:12950: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14090: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:12953: \$? = $ac_status" >&5
++ echo "$as_me:14093: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_var=yes"
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_var=no"
++cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ fi
++ eval 'cf_cv_func_'$cf_func'=$cf_result'
++
+ fi
+-echo "$as_me:12963: result: `eval echo '${'$as_ac_var'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+-if test `eval echo '${'$as_ac_var'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
++
++ # use the computed/retrieved cache-value:
++ eval 'cf_result=$cf_cv_func_'$cf_func
++ echo "$as_me:14109: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test $cf_result != no; then
++ cat >>confdefs.h <<EOF
++#define HAVE_${cf_tr_func} 1
+ EOF
+
+-fi
++ fi
+ done
+
+-echo "$as_me:12973: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+-echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
+-if test "${cf_cv_need_xopen_extension+set}" = set; then
++if test x$cf_cv_func_tputs = xyes
++then
++ cf_done=no
++ for cf_arg in int char
++ do
++ for cf_ret in int void
++ do
++ if test $cf_ret = void
++ then
++ cf_return="/* nothing */"
++ else
++ cf_return="return value"
++ fi
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14133 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header:-curses.h}>
++#include <$cf_cv_term_header>
++
++static $cf_ret outc($cf_arg value) { $cf_return; }
++
++int
++main ()
++{
++
++ tputs("hello", 0, outc);
++ ${cf_cv_main_return:-return}(0);
++
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:14153: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:14156: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:14159: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:14162: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++
++ test -n "$verbose" && echo " prototype $cf_ret func($cf_arg value)" 1>&6
++
++echo "${as_me:-configure}:14167: testing prototype $cf_ret func($cf_arg value) ..." 1>&5
++
++ cat >>confdefs.h <<EOF
++#define TPUTS_ARG $cf_arg
++#define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
++#define TPUTS_RETURN(value) $cf_return
++EOF
++ cf_done=yes
++ break
++
++else
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ done
++ test $cf_done = yes && break
++ done
++fi
++
++echo "$as_me:14187: checking for ncurses extended functions" >&5
++echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
++if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 12980 "configure"
++#line 14194 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+
+-#if defined(NCURSES_VERSION_PATCH)
+-#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
+- make an error
+-#endif
+-#endif
+- long x = winnstr(stdscr, "", 0);
+- int x1, y1;
+- getbegyx(stdscr, y1, x1)
++int x = NCURSES_EXT_FUNCS
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13002: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:14209: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13005: \$? = $ac_status" >&5
++ echo "$as_me:14212: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13008: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:14215: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13011: \$? = $ac_status" >&5
++ echo "$as_me:14218: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_need_xopen_extension=no
++ cf_cv_ncurses_ext_funcs=defined
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13018 "configure"
++#line 14226 "configure"
+ #include "confdefs.h"
+
+-#define _XOPEN_SOURCE_EXTENDED
+-#include <stdlib.h>
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+
+-#ifdef NCURSES_VERSION
+- cchar_t check;
+- int check2 = curs_set((int)sizeof(check));
+-#endif
+- long x = winnstr(stdscr, "", 0);
+- int x1, y1;
+- getbegyx(stdscr, y1, x1)
++ (void) assume_default_colors (0, 0);
++ (void) curses_version ();
++ (void) define_key (0, 0);
++ (void) is_term_resized (0, 0);
++ (void) key_defined (0);
++ (void) keybound (0, 0);
++ (void) keyok (0, 0);
++ (void) resize_term (0, 0);
++ (void) resizeterm (0, 0);
++ (void) use_default_colors ();
++ (void) use_extended_names (0);
++ (void) wresize (0, 0, 0);
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13040: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14251: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13043: \$? = $ac_status" >&5
++ echo "$as_me:14254: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13046: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14257: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13049: \$? = $ac_status" >&5
++ echo "$as_me:14260: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_need_xopen_extension=yes
++ cf_cv_ncurses_ext_funcs=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_need_xopen_extension=unknown
++cf_cv_ncurses_ext_funcs=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest.$ac_ext
++
+ fi
+-echo "$as_me:13061: result: $cf_cv_need_xopen_extension" >&5
+-echo "${ECHO_T}$cf_cv_need_xopen_extension" >&6
+-test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
++echo "$as_me:14274: result: $cf_cv_ncurses_ext_funcs" >&5
++echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
++test "$cf_cv_ncurses_ext_funcs" = yes &&
++cat >>confdefs.h <<\EOF
++#define NCURSES_EXT_FUNCS 1
++EOF
+
+-echo "$as_me:13065: checking for term.h" >&5
+-echo $ECHO_N "checking for term.h... $ECHO_C" >&6
+-if test "${cf_cv_term_header+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++if test "$cf_enable_widec" = yes
++then
++ # workaround for systems with ncurses before 20111029, due to change of
++ # feature test macro from _XPG5 to _XOPEN_SOURCE
++ if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno
++ then
++ cf_define_xpg5=no
++ echo "$as_me:14288: checking if _XPG5 should be defined to enable wide-characters" >&5
++echo $ECHO_N "checking if _XPG5 should be defined to enable wide-characters... $ECHO_C" >&6
+
+-# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+-# for <term.h> if we do not find the variant.
+-for cf_header in \
+- `echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
+- term.h
+-do
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13078 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14292 "configure"
+ #include "confdefs.h"
+
+ #include <${cf_cv_ncurses_header:-curses.h}>
+-#include <${cf_header}>
+ int
+ main ()
+ {
+-WINDOW *x
++int x = _XPG5
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13092: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14305: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13095: \$? = $ac_status" >&5
++ echo "$as_me:14308: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13098: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14311: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13101: \$? = $ac_status" >&5
++ echo "$as_me:14314: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_term_header=$cf_header
+- break
++ :
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_term_header=no
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-done
+-
+-case $cf_cv_term_header in #(vi
+-no)
+- # If curses is ncurses, some packagers still mess it up by trying to make
+- # us use GNU termcap. This handles the most common case.
+- for cf_header in ncurses/term.h ncursesw/term.h
+- do
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13120 "configure"
++cf_save_cppflags="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XPG5"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14323 "configure"
+ #include "confdefs.h"
+
+ #include <${cf_cv_ncurses_header:-curses.h}>
+-#ifdef NCURSES_VERSION
+-#include <${cf_header}>
+-#else
+-make an error
+-#endif
+ int
+ main ()
+ {
+-WINDOW *x
++int x = _XPG5
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13138: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14336: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13141: \$? = $ac_status" >&5
++ echo "$as_me:14339: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13144: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14342: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13147: \$? = $ac_status" >&5
++ echo "$as_me:14345: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_term_header=$cf_header
+- break
++ cf_define_xpg5=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_term_header=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+- done
+- ;;
+-esac
+-
++ CPPFLAGS="$cf_save_cppflags"
+ fi
+-echo "$as_me:13162: result: $cf_cv_term_header" >&5
+-echo "${ECHO_T}$cf_cv_term_header" >&6
+-
+-case $cf_cv_term_header in #(vi
+-term.h) #(vi
+- cat >>confdefs.h <<\EOF
+-#define HAVE_TERM_H 1
+-EOF
+-
+- ;;
+-ncurses/term.h) #(vi
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSES_TERM_H 1
+-EOF
+-
+- ;;
+-ncursesw/term.h)
+- cat >>confdefs.h <<\EOF
+-#define HAVE_NCURSESW_TERM_H 1
+-EOF
+-
+- ;;
+-esac
+-
+-for cf_func in \
+-chgat \
+-color_set \
+-filter \
+-getbegx \
+-getcurx \
+-getmaxx \
+-getnstr \
+-getparx \
+-getwin \
+-mvvline \
+-mvwvline \
+-napms \
+-putwin \
+-resize_term \
+-resizeterm \
+-ripoffline \
+-scr_dump \
+-setupterm \
+-slk_color \
+-slk_init \
+-termattrs \
+-tgetent \
+-tigetnum \
+-tigetstr \
+-typeahead \
+-use_default_colors \
+-vw_printw \
+-vsscanf \
+-wchgat \
+-winsstr \
+-wresize \
+-wsyncdown \
+-
+-do
+-
+-cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-
+- echo "$as_me:13224: checking for ${cf_func}" >&5
+-echo $ECHO_N "checking for ${cf_func}... $ECHO_C" >&6
++rm -f conftest.$ac_objext conftest.$ac_ext
++ echo "$as_me:14356: result: $cf_define_xpg5" >&5
++echo "${ECHO_T}$cf_define_xpg5" >&6
+
+-echo "${as_me:-configure}:13227: testing ${cf_func} ..." 1>&5
++ if test "$cf_define_xpg5" = yes
++ then
++ CPPFLAGS="$CPPFLAGS -D_XPG5"
++ fi
++ fi
+
+- if eval "test \"\${cf_cv_func_$cf_func+set}\" = set"; then
++ echo "$as_me:14365: checking for wide-character functions" >&5
++echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
++if test "${cf_cv_widechar_funcs+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+- eval cf_result='$ac_cv_func_'$cf_func
+- if test ".$cf_result" != ".no"; then
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13236 "configure"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14372 "configure"
+ #include "confdefs.h"
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+ #include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
+-#endif
+-
+ int
+ main ()
+ {
+
+-#ifndef ${cf_func}
+-long foo = (long)(&${cf_func});
+-${cf_cv_main_return:-return}(foo == 0);
+-#endif
++ static wchar_t src_wchar[2];
++ static cchar_t dst_cchar;
++ setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13267: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14389: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13270: \$? = $ac_status" >&5
++ echo "$as_me:14392: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13273: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14395: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13276: \$? = $ac_status" >&5
++ echo "$as_me:14398: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ cf_cv_widechar_funcs=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
++cf_cv_widechar_funcs=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- fi
+- eval 'cf_cv_func_'$cf_func'=$cf_result'
+
+ fi
++echo "$as_me:14409: result: $cf_cv_widechar_funcs" >&5
++echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
++ if test "$cf_cv_widechar_funcs" != no ; then
+
+- # use the computed/retrieved cache-value:
+- eval 'cf_result=$cf_cv_func_'$cf_func
+- echo "$as_me:13292: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- if test $cf_result != no; then
+- cat >>confdefs.h <<EOF
+-#define HAVE_${cf_tr_func} 1
++cat >>confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 1
++EOF
++
++ else
++ cat >>confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 0
+ EOF
+
+ fi
+-done
++else
++ cat >>confdefs.h <<\EOF
++#define USE_WIDEC_SUPPORT 0
++EOF
+
+-echo "$as_me:13302: checking for ncurses extended functions" >&5
+-echo $ECHO_N "checking for ncurses extended functions... $ECHO_C" >&6
+-if test "${cf_cv_ncurses_ext_funcs+set}" = set; then
++fi
++
++echo "$as_me:14430: 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 13309 "configure"
++#line 14437 "configure"
+ #include "confdefs.h"
+
+-#include <${cf_cv_ncurses_header:-curses.h}>
++#include <sys/types.h>
++#ifdef HAVE_SYS_TIME_H
++#include <sys/time.h>
++#endif
++#ifdef HAVE_SYS_SELECT_H
++#include <sys/select.h>
++#endif
++
+ int
+ main ()
+ {
+
+-int x = NCURSES_EXT_FUNCS
+-
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13324: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14457: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13327: \$? = $ac_status" >&5
++ echo "$as_me:14460: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13330: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14463: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13333: \$? = $ac_status" >&5
++ echo "$as_me:14466: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_ext_funcs=defined
++ cf_cv_sys_time_select=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_cv_sys_time_select=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++fi
++
++echo "$as_me:14478: result: $cf_cv_sys_time_select" >&5
++echo "${ECHO_T}$cf_cv_sys_time_select" >&6
++test "$cf_cv_sys_time_select" = yes &&
++cat >>confdefs.h <<\EOF
++#define HAVE_SYS_TIME_SELECT 1
++EOF
++
++echo "$as_me:14485: checking for function curses_version" >&5
++echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
++if test "${cf_cv_func_curses_version+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++
++if test "$cross_compiling" = yes; then
++ cf_cv_func_curses_version=unknown
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14495 "configure"
++#include "confdefs.h"
++
++#include <${cf_cv_ncurses_header:-curses.h}>
++int main()
++{
++ char temp[1024];
++ sprintf(temp, "%s\n", curses_version());
++ ${cf_cv_main_return:-return}(0);
++}
++
++_ACEOF
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:14508: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:14511: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:14513: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:14516: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_func_curses_version=yes
++
++else
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_cv_func_curses_version=no
++
++fi
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++fi
++rm -f core
++fi
++echo "$as_me:14531: result: $cf_cv_func_curses_version" >&5
++echo "${ECHO_T}$cf_cv_func_curses_version" >&6
++test "$cf_cv_func_curses_version" = yes &&
++cat >>confdefs.h <<\EOF
++#define HAVE_CURSES_VERSION 1
++EOF
++
++echo "$as_me:14538: checking for alternate character set array" >&5
++echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
++if test "${cf_cv_curses_acs_map+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+
++cf_cv_curses_acs_map=unknown
++for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
++do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 13341 "configure"
++#line 14548 "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);
++$name['k'] = ACS_PLUS
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13366: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14564: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13369: \$? = $ac_status" >&5
++ echo "$as_me:14567: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13372: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14570: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13375: \$? = $ac_status" >&5
++ echo "$as_me:14573: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_ncurses_ext_funcs=yes
++ cf_cv_curses_acs_map=$name; break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_ncurses_ext_funcs=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++done
+
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:14584: result: $cf_cv_curses_acs_map" >&5
++echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
+
+-fi
+-echo "$as_me:13389: result: $cf_cv_ncurses_ext_funcs" >&5
+-echo "${ECHO_T}$cf_cv_ncurses_ext_funcs" >&6
+-test "$cf_cv_ncurses_ext_funcs" = yes && cat >>confdefs.h <<\EOF
+-#define NCURSES_EXT_FUNCS 1
++test "$cf_cv_curses_acs_map" != unknown &&
++cat >>confdefs.h <<EOF
++#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
+ EOF
+
+-echo "$as_me:13395: checking for wide-character functions" >&5
+-echo $ECHO_N "checking for wide-character functions... $ECHO_C" >&6
+-if test "${cf_cv_widechar_funcs+set}" = set; then
++if test "$cf_enable_widec" = yes; then
++
++echo "$as_me:14594: checking for wide alternate character set array" >&5
++echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
++if test "${cf_cv_curses_wacs_map+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 13402 "configure"
++ cf_cv_curses_wacs_map=unknown
++ for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
++ do
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14604 "configure"
+ #include "confdefs.h"
+
++#ifndef _XOPEN_SOURCE_EXTENDED
++#define _XOPEN_SOURCE_EXTENDED
++#endif
+ #include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-
+- static wchar_t src_wchar[2];
+- static cchar_t dst_cchar;
+- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+-
++void *foo = &($name['k'])
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13419: \"$ac_link\"") >&5
++if { (eval echo "$as_me:14620: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13422: \$? = $ac_status" >&5
++ echo "$as_me:14623: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13425: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14626: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13428: \$? = $ac_status" >&5
++ echo "$as_me:14629: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_widechar_funcs=yes
++ cf_cv_curses_wacs_map=$name
++ break
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_widechar_funcs=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-
++ done
+ fi
+-echo "$as_me:13439: result: $cf_cv_widechar_funcs" >&5
+-echo "${ECHO_T}$cf_cv_widechar_funcs" >&6
+-if test "$cf_cv_widechar_funcs" != no ; then
+- cat >>confdefs.h <<\EOF
+-#define USE_WIDEC_SUPPORT 1
+-EOF
++echo "$as_me:14640: result: $cf_cv_curses_wacs_map" >&5
++echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
+
+-else
+- cat >>confdefs.h <<\EOF
+-#define USE_WIDEC_SUPPORT 0
++test "$cf_cv_curses_wacs_map" != unknown &&
++cat >>confdefs.h <<EOF
++#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
+ EOF
+
+-fi
++echo "$as_me:14648: checking for wide alternate character constants" >&5
++echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
++if test "${cf_cv_curses_wacs_symbols+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
+
+-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
++cf_cv_curses_wacs_symbols=no
++if test "$cf_cv_curses_wacs_map" != unknown
++then
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14658 "configure"
++#include "confdefs.h"
+
+-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+- inttypes.h stdint.h unistd.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13459: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++#ifndef _XOPEN_SOURCE_EXTENDED
++#define _XOPEN_SOURCE_EXTENDED
++#endif
++#include <${cf_cv_ncurses_header:-curses.h}>
++int
++main ()
++{
++cchar_t *foo = WACS_PLUS;
++ $cf_cv_curses_wacs_map['k'] = *WACS_PLUS
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:14675: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:14678: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:14681: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:14684: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_cv_curses_wacs_symbols=yes
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13465 "configure"
++ echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 14694 "configure"
+ #include "confdefs.h"
+-$ac_includes_default
+-#include <$ac_header>
++
++#ifndef _XOPEN_SOURCE_EXTENDED
++#define _XOPEN_SOURCE_EXTENDED
++#endif
++#include <${cf_cv_ncurses_header:-curses.h}>
++int
++main ()
++{
++cchar_t *foo = WACS_PLUS
++ ;
++ return 0;
++}
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13471: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:14710: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:13474: \$? = $ac_status" >&5
++ echo "$as_me:14713: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13477: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:14716: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13480: \$? = $ac_status" >&5
++ echo "$as_me:14719: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_Header=yes"
++ cf_cv_curses_wacs_symbols=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_Header=no"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ fi
+-echo "$as_me:13490: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++
++fi
++echo "$as_me:14730: result: $cf_cv_curses_wacs_symbols" >&5
++echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
++
++test "$cf_cv_curses_wacs_symbols" != no &&
++cat >>confdefs.h <<\EOF
++#define CURSES_WACS_SYMBOLS 1
+ EOF
+
+ fi
+-done
+
+-echo "$as_me:13500: checking for pid_t" >&5
+-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+-if test "${ac_cv_type_pid_t+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13506 "configure"
++echo "$as_me:14740: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line 14743 "configure"
+ #include "confdefs.h"
+-$ac_includes_default
++
++#ifndef _XOPEN_SOURCE_EXTENDED
++#define _XOPEN_SOURCE_EXTENDED
++#endif
++#include <${cf_cv_ncurses_header:-curses.h}>
+ int
+ main ()
+ {
+-if ((pid_t *) 0)
+- return 0;
+-if (sizeof (pid_t))
+- return 0;
++
++attr_t foo
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:13521: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14761: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13524: \$? = $ac_status" >&5
++ echo "$as_me:14764: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13527: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14767: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13530: \$? = $ac_status" >&5
++ echo "$as_me:14770: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_type_pid_t=yes
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_type_pid_t=no
++cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:13540: result: $ac_cv_type_pid_t" >&5
+-echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+-if test $ac_cv_type_pid_t = yes; then
+- :
+-else
++echo "$as_me:14779: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++if test $cf_result = yes ; then
++
++cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+ cat >>confdefs.h <<EOF
+-#define pid_t int
++#define $cf_result 1
+ EOF
+
+-fi
+-
+-for ac_header in unistd.h vfork.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:13555: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13561 "configure"
+-#include "confdefs.h"
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:13565: \"$ac_cpp conftest.$ac_ext\"") >&5
+- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+- ac_status=$?
+- egrep -v '^ *\+' conftest.er1 >conftest.err
+- rm -f conftest.er1
+- cat conftest.err >&5
+- echo "$as_me:13571: \$? = $ac_status" >&5
+- (exit $ac_status); } >/dev/null; then
+- if test -s conftest.err; then
+- ac_cpp_err=$ac_c_preproc_warn_flag
+- else
+- ac_cpp_err=
+- fi
+-else
+- ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+- eval "$as_ac_Header=yes"
+ else
+- echo "$as_me: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-fi
+-echo "$as_me:13590: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++
++cat >>confdefs.h <<EOF
++#define attr_t long
+ EOF
+
+ fi
+-done
+
+-for ac_func in fork vfork
+-do
+-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+-echo "$as_me:13603: checking for $ac_func" >&5
+-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_var+set}\" = set"; then
++if test "$cf_enable_widec" = yes; then
++
++# This is needed on Tru64 5.0 to declare mbstate_t
++echo "$as_me:14800: 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 13609 "configure"
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 14807 "configure"
+ #include "confdefs.h"
+-/* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char $ac_func (); below. */
+-#include <assert.h>
+-/* Override any gcc2 internal prototype to avoid an error. */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+- builtin and then its argument prototype would still apply. */
+-char $ac_func ();
+-char (*f) ();
+
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif
+ int
+ main ()
+ {
+-/* The GNU C library defines this for functions which it implements
+- to always fail with ENOSYS. Some functions are actually named
+- something starting with __ and the normal name is an alias. */
+-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+-choke me
+-#else
+-f = $ac_func;
+-#endif
+-
++mbstate_t state
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:13640: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:14825: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13643: \$? = $ac_status" >&5
++ echo "$as_me:14828: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:13646: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:14831: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13649: \$? = $ac_status" >&5
++ echo "$as_me:14834: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- eval "$as_ac_var=yes"
++ cf_cv_mbstate_t=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-eval "$as_ac_var=no"
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+-fi
+-echo "$as_me:13659: result: `eval echo '${'$as_ac_var'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+-if test `eval echo '${'$as_ac_var'}'` = yes; then
+- cat >>confdefs.h <<EOF
+-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+-EOF
+-
+-fi
+-done
+-
+-ac_cv_func_fork_works=$ac_cv_func_fork
+-if test "x$ac_cv_func_fork" = xyes; then
+- echo "$as_me:13671: checking for working fork" >&5
+-echo $ECHO_N "checking for working fork... $ECHO_C" >&6
+-if test "${ac_cv_func_fork_works+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test "$cross_compiling" = yes; then
+- ac_cv_func_fork_works=cross
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-/* By Rüdiger Kuhlmann. */
+- #include <sys/types.h>
+- #if HAVE_UNISTD_H
+- # include <unistd.h>
+- #endif
+- /* Some systems only have a dummy stub for fork() */
+- int main ()
+- {
+- if (fork() < 0)
+- $ac_main_return (1);
+- $ac_main_return (0);
+- }
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13694: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:13697: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:13699: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:13702: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- ac_cv_func_fork_works=yes
+-else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-ac_cv_func_fork_works=no
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-fi
+-echo "$as_me:13714: result: $ac_cv_func_fork_works" >&5
+-echo "${ECHO_T}$ac_cv_func_fork_works" >&6
+-
+-fi
+-if test "x$ac_cv_func_fork_works" = xcross; then
+- case $host in
+- *-*-amigaos* | *-*-msdosdjgpp*)
+- # Override, as these systems have only a dummy fork() stub
+- ac_cv_func_fork_works=no
+- ;;
+- *)
+- ac_cv_func_fork_works=yes
+- ;;
+- esac
+- { echo "$as_me:13728: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&5
+-echo "$as_me: WARNING: CROSS: Result $ac_cv_func_fork_works guessed due to cross-compiling." >&2;}
+-fi
+-ac_cv_func_vfork_works=$ac_cv_func_vfork
+-if test "x$ac_cv_func_vfork" = xyes; then
+- echo "$as_me:13733: checking for working vfork" >&5
+-echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
+-if test "${ac_cv_func_vfork_works+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+- if test "$cross_compiling" = yes; then
+- ac_cv_func_vfork_works=cross
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13742 "configure"
++cat >conftest.$ac_ext <<_ACEOF
++#line 14841 "configure"
+ #include "confdefs.h"
+-/* Thanks to Paul Eggert for this test. */
++
++#include <stdlib.h>
++#include <stdarg.h>
+ #include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif
+-#if HAVE_VFORK_H
+-# include <vfork.h>
+-#endif
+-/* On some sparc systems, changes by the child to local and incoming
+- argument registers are propagated back to the parent. The compiler
+- is told about this with #include <vfork.h>, but some compilers
+- (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
+- static variable whose address is put into a register that is
+- clobbered by the vfork. */
+-static
+-#ifdef __cplusplus
+-sparc_address_test (int arg)
+-# else
+-sparc_address_test (arg) int arg;
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
+ #endif
+-{
+- static pid_t child;
+- if (!child) {
+- child = vfork ();
+- if (child < 0) {
+- perror ("vfork");
+- _exit(2);
+- }
+- if (!child) {
+- arg = getpid();
+- write(-1, "", 0);
+- _exit (arg);
+- }
+- }
+-}
+-
+ int
+ main ()
+ {
+- pid_t parent = getpid ();
+- pid_t child;
+-
+- sparc_address_test ();
+-
+- child = vfork ();
+-
+- if (child == 0) {
+- /* Here is another test for sparc vfork register problems. This
+- test uses lots of local variables, at least as many local
+- variables as main has allocated so far including compiler
+- temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
+- 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
+- reuse the register of parent for one of the local variables,
+- since it will think that parent can't possibly be used any more
+- in this routine. Assigning to the local variable will thus
+- munge parent in the parent process. */
+- pid_t
+- p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
+- p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
+- /* Convince the compiler that p..p7 are live; otherwise, it might
+- use the same hardware register for all 8 local variables. */
+- if (p != p1 || p != p2 || p != p3 || p != p4
+- || p != p5 || p != p6 || p != p7)
+- _exit(1);
+-
+- /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
+- from child file descriptors. If the child closes a descriptor
+- before it execs or exits, this munges the parent's descriptor
+- as well. Test for this by closing stdout in the child. */
+- _exit(close(fileno(stdout)) != 0);
+- } else {
+- int status;
+- struct stat st;
+-
+- while (wait(&status) != child)
+- ;
+- $ac_main_return(
+- /* Was there some problem with vforking? */
+- child < 0
+-
+- /* Did the child fail? (This shouldn't happen.) */
+- || status
+-
+- /* Did the vfork/compiler bug occur? */
+- || parent != getpid()
+-
+- /* Did the file descriptor bug occur? */
+- || fstat(fileno(stdout), &st) != 0
+- );
+- }
++mbstate_t value
++ ;
++ return 0;
+ }
+ _ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13839: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:14860: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13842: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:13844: \"$ac_try\"") >&5
++ echo "$as_me:14863: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:14866: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13847: \$? = $ac_status" >&5
++ echo "$as_me:14869: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- ac_cv_func_vfork_works=yes
++ cf_cv_mbstate_t=yes
+ else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
++ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-ac_cv_func_vfork_works=no
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++cf_cv_mbstate_t=unknown
+ fi
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:13859: result: $ac_cv_func_vfork_works" >&5
+-echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
+-
+-fi;
+-if test "x$ac_cv_func_fork_works" = xcross; then
+- ac_cv_func_vfork_works=ac_cv_func_vfork
+- { echo "$as_me:13865: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&5
+-echo "$as_me: WARNING: CROSS: Result $ac_cv_func_vfork_works guessed due to cross-compiling." >&2;}
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
++echo "$as_me:14881: result: $cf_cv_mbstate_t" >&5
++echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+
+-if test "x$ac_cv_func_vfork_works" = xyes; then
+-
+-cat >>confdefs.h <<\EOF
+-#define HAVE_WORKING_VFORK 1
+-EOF
+-
+-else
++if test "$cf_cv_mbstate_t" = yes ; then
+
+ cat >>confdefs.h <<\EOF
+-#define vfork fork
++#define NEED_WCHAR_H 1
+ EOF
+
++ NEED_WCHAR_H=1
+ fi
+-if test "x$ac_cv_func_fork_works" = xyes; then
+
+-cat >>confdefs.h <<\EOF
+-#define HAVE_WORKING_FORK 1
+-EOF
++# if we do not find mbstate_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_mbstate_t" = unknown ; then
++ NCURSES_MBSTATE_T=1
++fi
+
++# if we find mbstate_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_mbstate_t" != unknown ; then
++ NCURSES_OK_MBSTATE_T=1
+ fi
+
+-echo "$as_me:13890: checking if sys/time.h works with sys/select.h" >&5
+-echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
+-if test "${cf_cv_sys_time_select+set}" = set; then
++# This is needed on Tru64 5.0 to declare wchar_t
++echo "$as_me:14904: 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 14911 "configure"
++#include "confdefs.h"
++
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.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:14929: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:14932: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:14935: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:14938: \$? = $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 13897 "configure"
++#line 14945 "configure"
+ #include "confdefs.h"
+
+-#include <sys/types.h>
+-#ifdef HAVE_SYS_TIME_H
+-#include <sys/time.h>
+-#endif
+-#ifdef HAVE_SYS_SELECT_H
+-#include <sys/select.h>
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#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:13917: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:14964: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13920: \$? = $ac_status" >&5
++ echo "$as_me:14967: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:13923: \"$ac_try\"") >&5
++ { (eval echo "$as_me:14970: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13926: \$? = $ac_status" >&5
++ echo "$as_me:14973: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_sys_time_select=yes
++ cf_cv_wchar_t=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_sys_time_select=no
++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:14985: result: $cf_cv_wchar_t" >&5
++echo "${ECHO_T}$cf_cv_wchar_t" >&6
+
+-echo "$as_me:13938: result: $cf_cv_sys_time_select" >&5
+-echo "${ECHO_T}$cf_cv_sys_time_select" >&6
+-test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
+-#define HAVE_SYS_TIME_SELECT 1
++if test "$cf_cv_wchar_t" = yes ; then
++
++cat >>confdefs.h <<\EOF
++#define NEED_WCHAR_H 1
+ EOF
+
+-echo "$as_me:13944: checking for function curses_version" >&5
+-echo $ECHO_N "checking for function curses_version... $ECHO_C" >&6
+-if test "${cf_cv_func_curses_version+set}" = set; then
++ NEED_WCHAR_H=1
++fi
++
++# if we do not find wchar_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_wchar_t" = unknown ; then
++ NCURSES_WCHAR_T=1
++fi
++
++# 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:15008: 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
+
+-if test "$cross_compiling" = yes; then
+- cf_cv_func_curses_version=unknown
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 13954 "configure"
++cat >conftest.$ac_ext <<_ACEOF
++#line 15015 "configure"
+ #include "confdefs.h"
+
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-int main()
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif
++int
++main ()
+ {
+- char temp[1024];
+- sprintf(temp, "%s\n", curses_version());
+- ${cf_cv_main_return:-return}(0);
++wint_t state
++ ;
++ return 0;
+ }
+-
+ _ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:13967: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:15033: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:13970: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:13972: \"$ac_try\"") >&5
++ echo "$as_me:15036: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:15039: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:13975: \$? = $ac_status" >&5
++ echo "$as_me:15042: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_func_curses_version=yes
+-
++ cf_cv_wint_t=no
+ else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
++ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_func_curses_version=no
+-
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-rm -f core
+-fi
+-echo "$as_me:13990: result: $cf_cv_func_curses_version" >&5
+-echo "${ECHO_T}$cf_cv_func_curses_version" >&6
+-test "$cf_cv_func_curses_version" = yes && cat >>confdefs.h <<\EOF
+-#define HAVE_CURSES_VERSION 1
+-EOF
+-
+-echo "$as_me:13996: checking for ncurses wrap-prefix" >&5
+-echo $ECHO_N "checking for ncurses wrap-prefix... $ECHO_C" >&6
+-
+-# Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
+-if test "${with_ncurses_wrap_prefix+set}" = set; then
+- withval="$with_ncurses_wrap_prefix"
+- NCURSES_WRAP_PREFIX=$withval
+-else
+- NCURSES_WRAP_PREFIX=_nc_
+-fi;
+-echo "$as_me:14006: result: $NCURSES_WRAP_PREFIX" >&5
+-echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+-
+-echo "$as_me:14009: checking for alternate character set array" >&5
+-echo $ECHO_N "checking for alternate character set array... $ECHO_C" >&6
+-if test "${cf_cv_curses_acs_map+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-cf_cv_curses_acs_map=unknown
+-for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
+-do
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14019 "configure"
++#line 15049 "configure"
+ #include "confdefs.h"
+
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-
++#include <stdlib.h>
++#include <stdarg.h>
++#include <stdio.h>
++#include <wchar.h>
++#ifdef HAVE_LIBUTF8_H
++#include <libutf8.h>
++#endif
+ int
+ main ()
+ {
+-
+-$name['k'] = ACS_PLUS
+-
++wint_t value
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14035: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:15068: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14038: \$? = $ac_status" >&5
++ echo "$as_me:15071: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14041: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:15074: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14044: \$? = $ac_status" >&5
++ echo "$as_me:15077: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_curses_acs_map=$name; break
++ 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_exeext conftest.$ac_ext
+-done
+-
++rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:14055: result: $cf_cv_curses_acs_map" >&5
+-echo "${ECHO_T}$cf_cv_curses_acs_map" >&6
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:15089: result: $cf_cv_wint_t" >&5
++echo "${ECHO_T}$cf_cv_wint_t" >&6
+
+-test "$cf_cv_curses_acs_map" != unknown && cat >>confdefs.h <<EOF
+-#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
++if test "$cf_cv_wint_t" = yes ; then
++
++cat >>confdefs.h <<\EOF
++#define NEED_WCHAR_H 1
+ EOF
+
+-echo "$as_me:14062: checking for wide alternate character set array" >&5
+-echo $ECHO_N "checking for wide alternate character set array... $ECHO_C" >&6
+-if test "${cf_cv_curses_wacs_map+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++ NEED_WCHAR_H=1
++fi
+
+- cf_cv_curses_wacs_map=unknown
+- for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
+- do
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 14072 "configure"
++# if we do not find wint_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_wint_t" = unknown ; then
++ NCURSES_WINT_T=1
++fi
++
++# if we find wint_t in either place, use substitution to provide a fallback.
++if test "$cf_cv_wint_t" != unknown ; then
++ NCURSES_OK_WINT_T=1
++fi
++
++ if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
++
++echo "$as_me:15113: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line 15116 "configure"
+ #include "confdefs.h"
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14079,50 +15123,58 @@
+ int
+ main ()
+ {
+-void *foo = &($name['k'])
++
++mbstate_t foo
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14088: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:15134: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14091: \$? = $ac_status" >&5
++ echo "$as_me:15137: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14094: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:15140: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14097: \$? = $ac_status" >&5
++ echo "$as_me:15143: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_curses_wacs_map=$name
+- break
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_result=no
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+- done
+-fi
+-echo "$as_me:14108: result: $cf_cv_curses_wacs_map" >&5
+-echo "${ECHO_T}$cf_cv_curses_wacs_map" >&6
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:15152: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++if test $cf_result = yes ; then
+
+-test "$cf_cv_curses_wacs_map" != unknown && cat >>confdefs.h <<EOF
+-#define CURSES_WACS_ARRAY $cf_cv_curses_wacs_map
++cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >>confdefs.h <<EOF
++#define $cf_result 1
+ EOF
+
+-echo "$as_me:14115: checking for wide alternate character constants" >&5
+-echo $ECHO_N "checking for wide alternate character constants... $ECHO_C" >&6
+-if test "${cf_cv_curses_wacs_symbols+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+
+-cf_cv_curses_wacs_symbols=no
+-if test "$cf_cv_curses_wacs_map" != unknown
+-then
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 14125 "configure"
++cat >>confdefs.h <<EOF
++#define mbstate_t long
++EOF
++
++fi
++
++ fi
++
++ if test "$NCURSES_OK_WCHAR_T" = 0 ; then
++
++echo "$as_me:15174: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line 15177 "configure"
+ #include "confdefs.h"
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14132,33 +15184,58 @@
+ int
+ main ()
+ {
+-cchar_t *foo = WACS_PLUS;
+- $cf_cv_curses_wacs_map['k'] = *WACS_PLUS
++
++wchar_t foo
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14142: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:15195: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14145: \$? = $ac_status" >&5
++ echo "$as_me:15198: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14148: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:15201: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14151: \$? = $ac_status" >&5
++ echo "$as_me:15204: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_curses_wacs_symbols=yes
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_result=no
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:15213: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++if test $cf_result = yes ; then
++
++cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >>confdefs.h <<EOF
++#define $cf_result 1
++EOF
++
+ else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 14161 "configure"
++
++cat >>confdefs.h <<EOF
++#define wchar_t long
++EOF
++
++fi
++
++ fi
++
++ if test "$NCURSES_OK_WINT_T" = 0 ; then
++
++echo "$as_me:15235: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line 15238 "configure"
+ #include "confdefs.h"
+
+ #ifndef _XOPEN_SOURCE_EXTENDED
+@@ -14168,70 +15245,95 @@
+ int
+ main ()
+ {
+-cchar_t *foo = WACS_PLUS
++
++wint_t foo
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14177: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:15256: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14180: \$? = $ac_status" >&5
++ echo "$as_me:15259: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14183: \"$ac_try\"") >&5
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:15262: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14186: \$? = $ac_status" >&5
++ echo "$as_me:15265: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_curses_wacs_symbols=yes
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_result=no
+ fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:15274: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++if test $cf_result = yes ; then
++
++cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++cat >>confdefs.h <<EOF
++#define $cf_result 1
++EOF
++
++else
++
++cat >>confdefs.h <<EOF
++#define wint_t long
++EOF
++
+ fi
+
++ fi
+ fi
+-echo "$as_me:14197: result: $cf_cv_curses_wacs_symbols" >&5
+-echo "${ECHO_T}$cf_cv_curses_wacs_symbols" >&6
+
+-test "$cf_cv_curses_wacs_symbols" != no && cat >>confdefs.h <<\EOF
+-#define CURSES_WACS_SYMBOLS 1
+-EOF
++echo "$as_me:15295: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+
+-echo "$as_me:14204: checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+-echo $ECHO_N "checking for type attr_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14207 "configure"
++#line 15299 "configure"
+ #include "confdefs.h"
+
+-#ifndef _XOPEN_SOURCE_EXTENDED
+-#define _XOPEN_SOURCE_EXTENDED
+-#endif
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
+ #include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
++#endif
++#endif
++
+ int
+ main ()
+ {
+
+-attr_t foo
++void *foo = &(boolnames)
+
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14225: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15327: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14228: \$? = $ac_status" >&5
++ echo "$as_me:15330: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14231: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15333: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14234: \$? = $ac_status" >&5
++ echo "$as_me:15336: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_result=yes
+ else
+@@ -14240,868 +15342,1597 @@
+ cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14243: result: $cf_result" >&5
++echo "$as_me:15345: result: $cf_result" >&5
+ echo "${ECHO_T}$cf_result" >&6
++
+ if test $cf_result = yes ; then
+
+-cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+ cat >>confdefs.h <<EOF
+ #define $cf_result 1
+ EOF
+
+ else
+- cat >>confdefs.h <<EOF
+-#define attr_t long
+-EOF
+-
+-fi
+-
+-# This is needed on Tru64 5.0 to declare mbstate_t
+-echo "$as_me:14261: checking if we must include wchar.h to declare mbstate_t" >&5
+-echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
+-if test "${cf_cv_mbstate_t+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
++ echo "$as_me:15357: checking for data boolnames in library" >&5
++echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6
++ # BSD linkers insist on making weak linkage, but resolve at runtime.
++ if test "$cross_compiling" = yes; then
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14268 "configure"
++ # cross-compiling
++ cat >conftest.$ac_ext <<_ACEOF
++#line 15364 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <stdio.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
+ #endif
++#endif
++
++extern char boolnames;
+ int
+ main ()
+ {
+-mbstate_t state
++
++ do {
++ void *foo = &(boolnames);
++ fprintf(stderr, "testing linkage of boolnames:%p\n", foo);
++ ${cf_cv_main_return:-return}(foo == 0);
++ } while (0)
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14286: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:15397: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14289: \$? = $ac_status" >&5
++ echo "$as_me:15400: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14292: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:15403: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14295: \$? = $ac_status" >&5
++ echo "$as_me:15406: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_mbstate_t=no
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
++cf_result=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 15418 "configure"
++#include "confdefs.h"
++
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
++#endif
++#endif
++
++extern char boolnames;
++int main(void)
++{
++ void *foo = &(boolnames);
++ fprintf(stderr, "testing linkage of boolnames:%p\n", foo);
++ ${cf_cv_main_return:-return}(foo == 0);
++}
++_ACEOF
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:15444: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
++ ac_status=$?
++ echo "$as_me:15447: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:15449: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:15452: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ cf_result=yes
++else
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++cat conftest.$ac_ext >&5
++cf_result=no
++fi
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++fi
++ echo "$as_me:15463: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test $cf_result = yes ; then
++
++cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ cat >>confdefs.h <<EOF
++#define $cf_result 1
++EOF
++
++ fi
++fi
++
++echo "$as_me:15476: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
++echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14302 "configure"
++#line 15480 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <wchar.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
+ #endif
++#endif
++
+ int
+ main ()
+ {
+-mbstate_t value
++
++void *foo = &(boolfnames)
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14321: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15508: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14324: \$? = $ac_status" >&5
++ echo "$as_me:15511: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14327: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15514: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14330: \$? = $ac_status" >&5
++ echo "$as_me:15517: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_mbstate_t=yes
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_mbstate_t=unknown
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:14342: result: $cf_cv_mbstate_t" >&5
+-echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+-
+-if test "$cf_cv_mbstate_t" = yes ; then
+- cat >>confdefs.h <<\EOF
+-#define NEED_WCHAR_H 1
+-EOF
++echo "$as_me:15526: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
+
+- NEED_WCHAR_H=1
+-fi
++if test $cf_result = yes ; then
+
+-# if we do not find mbstate_t in either place, use substitution to provide a fallback.
+-if test "$cf_cv_mbstate_t" = unknown ; then
+- NCURSES_MBSTATE_T=1
+-fi
++cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+-# if we find mbstate_t in either place, use substitution to provide a fallback.
+-if test "$cf_cv_mbstate_t" != unknown ; then
+- NCURSES_OK_MBSTATE_T=1
+-fi
++ cat >>confdefs.h <<EOF
++#define $cf_result 1
++EOF
+
+-# This is needed on Tru64 5.0 to declare wchar_t
+-echo "$as_me:14364: checking if we must include wchar.h to declare wchar_t" >&5
+-echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
+-if test "${cf_cv_wchar_t+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
++ echo "$as_me:15538: checking for data boolfnames in library" >&5
++echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6
++ # BSD linkers insist on making weak linkage, but resolve at runtime.
++ if test "$cross_compiling" = yes; then
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14371 "configure"
++ # cross-compiling
++ cat >conftest.$ac_ext <<_ACEOF
++#line 15545 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <stdio.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
++#endif
+ #endif
++
++extern char boolfnames;
+ int
+ main ()
+ {
+-wchar_t state
++
++ do {
++ void *foo = &(boolfnames);
++ fprintf(stderr, "testing linkage of boolfnames:%p\n", foo);
++ ${cf_cv_main_return:-return}(foo == 0);
++ } while (0)
++
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14389: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:15578: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14392: \$? = $ac_status" >&5
++ echo "$as_me:15581: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14395: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:15584: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14398: \$? = $ac_status" >&5
++ echo "$as_me:15587: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_wchar_t=no
++ cf_result=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14405 "configure"
++cf_result=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 15599 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <wchar.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
++#ifdef HAVE_XCURSES
++#include <xcurses.h>
++char * XCursesProgramName = "test";
++#else
++#include <${cf_cv_ncurses_header:-curses.h}>
++#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
++#include <ncursesw/term.h>
++#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
++#include <ncurses/term.h>
++#elif defined(HAVE_TERM_H)
++#include <term.h>
+ #endif
+-int
+-main ()
++#endif
++
++extern char boolfnames;
++int main(void)
+ {
+-wchar_t value
+- ;
+- return 0;
++ void *foo = &(boolfnames);
++ fprintf(stderr, "testing linkage of boolfnames:%p\n", foo);
++ ${cf_cv_main_return:-return}(foo == 0);
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14424: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:15625: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14427: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14430: \"$ac_try\"") >&5
++ echo "$as_me:15628: \$? = $ac_status" >&5
++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++ { (eval echo "$as_me:15630: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14433: \$? = $ac_status" >&5
++ echo "$as_me:15633: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_wchar_t=yes
++ cf_result=yes
+ else
+- echo "$as_me: failed program was:" >&5
++ echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_wchar_t=unknown
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++cf_result=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+-echo "$as_me:14445: result: $cf_cv_wchar_t" >&5
+-echo "${ECHO_T}$cf_cv_wchar_t" >&6
++ echo "$as_me:15644: result: $cf_result" >&5
++echo "${ECHO_T}$cf_result" >&6
++ if test $cf_result = yes ; then
+
+-if test "$cf_cv_wchar_t" = yes ; then
+- cat >>confdefs.h <<\EOF
+-#define NEED_WCHAR_H 1
++cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ cat >>confdefs.h <<EOF
++#define $cf_result 1
+ EOF
+
+- NEED_WCHAR_H=1
++ fi
+ fi
+
+-# if we do not find wchar_t in either place, use substitution to provide a fallback.
+-if test "$cf_cv_wchar_t" = unknown ; then
+- NCURSES_WCHAR_T=1
+-fi
++if ( test "$GCC" = yes || test "$GXX" = yes )
++then
++echo "$as_me:15659: checking if you want to turn on gcc warnings" >&5
++echo $ECHO_N "checking if you want to turn on gcc warnings... $ECHO_C" >&6
+
+-# if we find wchar_t in either place, use substitution to provide a fallback.
+-if test "$cf_cv_wchar_t" != unknown ; then
+- NCURSES_OK_WCHAR_T=1
+-fi
++# Check whether --enable-warnings or --disable-warnings was given.
++if test "${enable_warnings+set}" = set; then
++ enableval="$enable_warnings"
++ test "$enableval" != yes && enableval=no
++ if test "$enableval" != "no" ; then
++ with_warnings=yes
++ else
++ with_warnings=no
++ fi
++else
++ enableval=no
++ with_warnings=no
+
+-# This is needed on Tru64 5.0 to declare wint_t
+-echo "$as_me:14467: checking if we must include wchar.h to declare wint_t" >&5
+-echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
+-if test "${cf_cv_wint_t+set}" = set; then
+- echo $ECHO_N "(cached) $ECHO_C" >&6
++fi;
++echo "$as_me:15676: result: $with_warnings" >&5
++echo "${ECHO_T}$with_warnings" >&6
++if test "$with_warnings" = "yes"
++then
++
++if test "$GCC" = yes
++then
++cat > conftest.i <<EOF
++#ifndef GCC_PRINTF
++#define GCC_PRINTF 0
++#endif
++#ifndef GCC_SCANF
++#define GCC_SCANF 0
++#endif
++#ifndef GCC_NORETURN
++#define GCC_NORETURN /* nothing */
++#endif
++#ifndef GCC_UNUSED
++#define GCC_UNUSED /* nothing */
++#endif
++EOF
++if test "$GCC" = yes
++then
++ { echo "$as_me:15699: checking for $CC __attribute__ directives..." >&5
++echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
++cat > conftest.$ac_ext <<EOF
++#line 15702 "${as_me:-configure}"
++#include "confdefs.h"
++#include "conftest.h"
++#include "conftest.i"
++#if GCC_PRINTF
++#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
++#else
++#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
++#endif
++#if GCC_SCANF
++#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
++#else
++#define GCC_SCANFLIKE(fmt,var) /*nothing*/
++#endif
++extern void wow(char *,...) GCC_SCANFLIKE(1,2);
++extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
++extern void foo(void) GCC_NORETURN;
++int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
++EOF
++ cf_printf_attribute=no
++ cf_scanf_attribute=no
++ for cf_attribute in scanf printf unused noreturn
++ do
++
++cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++
++ cf_directive="__attribute__(($cf_attribute))"
++ echo "checking for $CC $cf_directive" 1>&5
++
++ case $cf_attribute in #(vi
++ printf) #(vi
++ cf_printf_attribute=yes
++ cat >conftest.h <<EOF
++#define GCC_$cf_ATTRIBUTE 1
++EOF
++ ;;
++ scanf) #(vi
++ cf_scanf_attribute=yes
++ cat >conftest.h <<EOF
++#define GCC_$cf_ATTRIBUTE 1
++EOF
++ ;;
++ *) #(vi
++ cat >conftest.h <<EOF
++#define GCC_$cf_ATTRIBUTE $cf_directive
++EOF
++ ;;
++ esac
++
++ if { (eval echo "$as_me:15751: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:15754: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ test -n "$verbose" && echo "$as_me:15756: result: ... $cf_attribute" >&5
++echo "${ECHO_T}... $cf_attribute" >&6
++ cat conftest.h >>confdefs.h
++ case $cf_attribute in #(vi
++ noreturn) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_NORETURN $cf_directive
++EOF
++
++ ;;
++ printf) #(vi
++ cf_value='/* nothing */'
++ if test "$cf_printf_attribute" != no ; then
++ cf_value='__attribute__((format(printf,fmt,var)))'
++
++cat >>confdefs.h <<\EOF
++#define GCC_PRINTF 1
++EOF
++
++ fi
++
++cat >>confdefs.h <<EOF
++#define GCC_PRINTFLIKE(fmt,var) $cf_value
++EOF
++
++ ;;
++ scanf) #(vi
++ cf_value='/* nothing */'
++ if test "$cf_scanf_attribute" != no ; then
++ cf_value='__attribute__((format(scanf,fmt,var)))'
++
++cat >>confdefs.h <<\EOF
++#define GCC_SCANF 1
++EOF
++
++ fi
++
++cat >>confdefs.h <<EOF
++#define GCC_SCANFLIKE(fmt,var) $cf_value
++EOF
++
++ ;;
++ unused) #(vi
++
++cat >>confdefs.h <<EOF
++#define GCC_UNUSED $cf_directive
++EOF
++
++ ;;
++ esac
++ fi
++ done
+ else
++ fgrep define conftest.i >>confdefs.h
++fi
++rm -rf conftest*
++fi
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14474 "configure"
++INTEL_COMPILER=no
++
++if test "$GCC" = yes ; then
++ case $host_os in
++ linux*|gnu*)
++ echo "$as_me:15820: checking if this is really Intel C compiler" >&5
++echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
++ cf_save_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -no-gcc"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 15825 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <stdio.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
+-#endif
+ int
+ main ()
+ {
+-wint_t state
++
++#ifdef __INTEL_COMPILER
++#else
++make an error
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14492: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15842: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14495: \$? = $ac_status" >&5
++ echo "$as_me:15845: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14498: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15848: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14501: \$? = $ac_status" >&5
++ echo "$as_me:15851: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_wint_t=no
++ INTEL_COMPILER=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -we147"
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14508 "configure"
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ echo "$as_me:15862: result: $INTEL_COMPILER" >&5
++echo "${ECHO_T}$INTEL_COMPILER" >&6
++ ;;
++ esac
++fi
++
++CLANG_COMPILER=no
++
++if test "$GCC" = yes ; then
++ echo "$as_me:15871: checking if this is really Clang C compiler" >&5
++echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
++ cf_save_CFLAGS="$CFLAGS"
++ CFLAGS="$CFLAGS -Qunused-arguments"
++ cat >conftest.$ac_ext <<_ACEOF
++#line 15876 "configure"
+ #include "confdefs.h"
+
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <wchar.h>
+-#ifdef HAVE_LIBUTF8_H
+-#include <libutf8.h>
+-#endif
+ int
+ main ()
+ {
+-wint_t value
++
++#ifdef __clang__
++#else
++make an error
++#endif
++
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14527: \"$ac_compile\"") >&5
++if { (eval echo "$as_me:15893: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+- echo "$as_me:14530: \$? = $ac_status" >&5
++ echo "$as_me:15896: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14533: \"$ac_try\"") >&5
++ { (eval echo "$as_me:15899: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14536: \$? = $ac_status" >&5
++ echo "$as_me:15902: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_cv_wint_t=yes
++ CLANG_COMPILER=yes
++cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
++
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_cv_wint_t=unknown
+ fi
+ rm -f conftest.$ac_objext conftest.$ac_ext
++ CFLAGS="$cf_save_CFLAGS"
++ echo "$as_me:15913: result: $CLANG_COMPILER" >&5
++echo "${ECHO_T}$CLANG_COMPILER" >&6
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
++
++cat > conftest.$ac_ext <<EOF
++#line 15918 "${as_me:-configure}"
++int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
++EOF
++
++if test "$INTEL_COMPILER" = yes
++then
++# The "-wdXXX" options suppress warnings:
++# remark #1419: external declaration in primary source file
++# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
++# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
++# remark #193: zero used for undefined preprocessing identifier
++# remark #593: variable "curs_sb_left_arrow" was set but never used
++# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
++# remark #869: parameter "tw" was never referenced
++# remark #981: operands are evaluated in unspecified order
++# warning #279: controlling expression is constant
++
++ { echo "$as_me:15935: checking for $CC warning options..." >&5
++echo "$as_me: checking for $CC warning options..." >&6;}
++ cf_save_CFLAGS="$CFLAGS"
++ EXTRA_CFLAGS="-Wall"
++ for cf_opt in \
++ wd1419 \
++ wd1683 \
++ wd1684 \
++ wd193 \
++ wd593 \
++ wd279 \
++ wd810 \
++ wd869 \
++ wd981
++ do
++ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
++ if { (eval echo "$as_me:15951: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:15954: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ test -n "$verbose" && echo "$as_me:15956: result: ... -$cf_opt" >&5
++echo "${ECHO_T}... -$cf_opt" >&6
++ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
++ fi
++ done
++ CFLAGS="$cf_save_CFLAGS"
++
++elif test "$GCC" = yes
++then
++ { echo "$as_me:15965: checking for $CC warning options..." >&5
++echo "$as_me: checking for $CC warning options..." >&6;}
++ cf_save_CFLAGS="$CFLAGS"
++ EXTRA_CFLAGS=
++ cf_warn_CONST=""
++ test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
++ cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
++ test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
++ for cf_opt in W Wall \
++ Wbad-function-cast \
++ Wcast-align \
++ Wcast-qual \
++ Wdeclaration-after-statement \
++ Wextra \
++ Winline \
++ Wmissing-declarations \
++ Wmissing-prototypes \
++ Wnested-externs \
++ Wpointer-arith \
++ Wshadow \
++ Wstrict-prototypes \
++ Wundef $cf_gcc_warnings $cf_warn_CONST
++ do
++ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
++ if { (eval echo "$as_me:15989: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>&5
++ ac_status=$?
++ echo "$as_me:15992: \$? = $ac_status" >&5
++ (exit $ac_status); }; then
++ test -n "$verbose" && echo "$as_me:15994: result: ... -$cf_opt" >&5
++echo "${ECHO_T}... -$cf_opt" >&6
++ case $cf_opt in #(vi
++ Wcast-qual) #(vi
++ CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
++ ;;
++ Winline) #(vi
++ case $GCC_VERSION in
++ [34].*)
++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
++
++echo "${as_me:-configure}:16005: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++
++ continue;;
++ esac
++ ;;
++ Wpointer-arith) #(vi
++ case $GCC_VERSION in
++ [12].*)
++ test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
++
++echo "${as_me:-configure}:16015: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
++
++ continue;;
++ esac
++ ;;
++ esac
++ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
++ fi
++ done
++ CFLAGS="$cf_save_CFLAGS"
+ fi
+-echo "$as_me:14548: result: $cf_cv_wint_t" >&5
+-echo "${ECHO_T}$cf_cv_wint_t" >&6
++rm -rf conftest*
+
+-if test "$cf_cv_wint_t" = yes ; then
+- cat >>confdefs.h <<\EOF
+-#define NEED_WCHAR_H 1
++fi
++fi
++
++echo "$as_me:16031: checking if you want to use dmalloc for testing" >&5
++echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
++
++# Check whether --with-dmalloc or --without-dmalloc was given.
++if test "${with_dmalloc+set}" = set; then
++ withval="$with_dmalloc"
++
++cat >>confdefs.h <<EOF
++#define USE_DMALLOC 1
+ EOF
+
+- NEED_WCHAR_H=1
++ : ${with_cflags:=-g}
++ : ${with_no_leaks:=yes}
++ with_dmalloc=yes
++else
++ with_dmalloc=
++fi;
++echo "$as_me:16048: result: ${with_dmalloc:-no}" >&5
++echo "${ECHO_T}${with_dmalloc:-no}" >&6
++
++case .$with_cflags in #(vi
++.*-g*)
++ case .$CFLAGS in #(vi
++ .*-g*) #(vi
++ ;;
++ *)
++
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
++
++for cf_add_cflags in -g
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
++
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
++
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
++
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+
+-# if we do not find wint_t in either place, use substitution to provide a fallback.
+-if test "$cf_cv_wint_t" = unknown ; then
+- NCURSES_WINT_T=1
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+
+-# if 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
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++ ;;
++ esac
++ ;;
++esac
++
++if test "$with_dmalloc" = yes ; then
++ echo "$as_me:16142: checking for dmalloc.h" >&5
++echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
++if test "${ac_cv_header_dmalloc_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 16148 "configure"
++#include "confdefs.h"
++#include <dmalloc.h>
++_ACEOF
++if { (eval echo "$as_me:16152: \"$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:16158: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ ac_cv_header_dmalloc_h=yes
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ ac_cv_header_dmalloc_h=no
+ fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:16177: result: $ac_cv_header_dmalloc_h" >&5
++echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
++if test $ac_cv_header_dmalloc_h = yes; then
+
+-if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
+-
+-echo "$as_me:14571: checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+-echo $ECHO_N "checking for type mbstate_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++echo "$as_me:16181: checking for dmalloc_debug in -ldmalloc" >&5
++echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
++if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-ldmalloc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14574 "configure"
++#line 16189 "configure"
+ #include "confdefs.h"
+
+-#ifndef _XOPEN_SOURCE_EXTENDED
+-#define _XOPEN_SOURCE_EXTENDED
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
+ #endif
+-#include <${cf_cv_ncurses_header:-curses.h}>
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char dmalloc_debug ();
+ int
+ main ()
+ {
+-
+-mbstate_t foo
+-
++dmalloc_debug ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14592: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:16208: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14595: \$? = $ac_status" >&5
++ echo "$as_me:16211: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14598: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:16214: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14601: \$? = $ac_status" >&5
++ echo "$as_me:16217: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ ac_cv_lib_dmalloc_dmalloc_debug=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
++ac_cv_lib_dmalloc_dmalloc_debug=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14610: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+-if test $cf_result = yes ; then
+-
+-cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+-
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:16228: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
++echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
++if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
++ cat >>confdefs.h <<EOF
++#define HAVE_LIBDMALLOC 1
+ EOF
+
+-else
+- cat >>confdefs.h <<EOF
+-#define mbstate_t long
+-EOF
++ LIBS="-ldmalloc $LIBS"
+
+ fi
+
+ fi
+
+-if test "$NCURSES_OK_WCHAR_T" = 0 ; then
++fi
+
+-echo "$as_me:14631: checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+-echo $ECHO_N "checking for type wchar_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14634 "configure"
+-#include "confdefs.h"
++echo "$as_me:16243: checking if you want to use dbmalloc for testing" >&5
++echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
+
+-#ifndef _XOPEN_SOURCE_EXTENDED
+-#define _XOPEN_SOURCE_EXTENDED
+-#endif
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-int
+-main ()
+-{
++# Check whether --with-dbmalloc or --without-dbmalloc was given.
++if test "${with_dbmalloc+set}" = set; then
++ withval="$with_dbmalloc"
+
+-wchar_t foo
++cat >>confdefs.h <<EOF
++#define USE_DBMALLOC 1
++EOF
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14652: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:14655: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14658: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:14661: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=yes
++ : ${with_cflags:=-g}
++ : ${with_no_leaks:=yes}
++ with_dbmalloc=yes
+ else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_result=no
+-fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14670: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+-if test $cf_result = yes ; then
++ with_dbmalloc=
++fi;
++echo "$as_me:16260: result: ${with_dbmalloc:-no}" >&5
++echo "${ECHO_T}${with_dbmalloc:-no}" >&6
+
+-cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++case .$with_cflags in #(vi
++.*-g*)
++ case .$CFLAGS in #(vi
++ .*-g*) #(vi
++ ;;
++ *)
+
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
+-EOF
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
+
+-else
+- cat >>confdefs.h <<EOF
+-#define wchar_t long
+-EOF
++for cf_add_cflags in -g
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+-fi
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
+
+-fi
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+
+-if test "$NCURSES_OK_WINT_T" = 0 ; then
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+
+-echo "$as_me:14691: checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}" >&5
+-echo $ECHO_N "checking for type wint_t in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14694 "configure"
+-#include "confdefs.h"
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+-#ifndef _XOPEN_SOURCE_EXTENDED
+-#define _XOPEN_SOURCE_EXTENDED
+-#endif
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-int
+-main ()
+-{
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+-wint_t foo
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14712: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
+- ac_status=$?
+- echo "$as_me:14715: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14718: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:14721: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_result=no
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14730: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+-if test $cf_result = yes ; then
+
+-cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++if test -n "$cf_new_cppflags" ; then
+
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
+-EOF
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
++fi
+
+-else
+- cat >>confdefs.h <<EOF
+-#define wint_t long
+-EOF
++if test -n "$cf_new_extra_cppflags" ; then
+
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+ fi
+
+-fi
++ ;;
++ esac
++ ;;
++esac
+
+-echo "$as_me:14749: checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
+-echo $ECHO_N "checking for data boolnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++if test "$with_dbmalloc" = yes ; then
++ echo "$as_me:16354: checking for dbmalloc.h" >&5
++echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
++if test "${ac_cv_header_dbmalloc_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ cat >conftest.$ac_ext <<_ACEOF
++#line 16360 "configure"
++#include "confdefs.h"
++#include <dbmalloc.h>
++_ACEOF
++if { (eval echo "$as_me:16364: \"$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:16370: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ ac_cv_header_dbmalloc_h=yes
++else
++ echo "$as_me: failed program was:" >&5
++ cat conftest.$ac_ext >&5
++ ac_cv_header_dbmalloc_h=no
++fi
++rm -f conftest.err conftest.$ac_ext
++fi
++echo "$as_me:16389: result: $ac_cv_header_dbmalloc_h" >&5
++echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
++if test $ac_cv_header_dbmalloc_h = yes; then
+
++echo "$as_me:16393: checking for debug_malloc in -ldbmalloc" >&5
++echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
++if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-ldbmalloc $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+-#line 14753 "configure"
++#line 16401 "configure"
+ #include "confdefs.h"
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
+ #endif
+-
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char debug_malloc ();
+ int
+ main ()
+ {
+-
+-void *foo = &(boolnames)
+-
++debug_malloc ();
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14781: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:16420: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14784: \$? = $ac_status" >&5
++ echo "$as_me:16423: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14787: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:16426: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14790: \$? = $ac_status" >&5
++ echo "$as_me:16429: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ ac_cv_lib_dbmalloc_debug_malloc=yes
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
++ac_cv_lib_dbmalloc_debug_malloc=no
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14799: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:16440: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
++echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
++if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
++ cat >>confdefs.h <<EOF
++#define HAVE_LIBDBMALLOC 1
++EOF
+
+-if test $cf_result = yes ; then
++ LIBS="-ldbmalloc $LIBS"
+
+-cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++fi
+
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
++fi
++
++fi
++
++echo "$as_me:16455: checking if you want to use valgrind for testing" >&5
++echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
++
++# Check whether --with-valgrind or --without-valgrind was given.
++if test "${with_valgrind+set}" = set; then
++ withval="$with_valgrind"
++
++cat >>confdefs.h <<EOF
++#define USE_VALGRIND 1
+ EOF
+
++ : ${with_cflags:=-g}
++ : ${with_no_leaks:=yes}
++ with_valgrind=yes
+ else
+- echo "$as_me:14811: checking for data boolnames in library" >&5
+-echo $ECHO_N "checking for data boolnames in library... $ECHO_C" >&6
+- # BSD linkers insist on making weak linkage, but resolve at runtime.
+- if test "$cross_compiling" = yes; then
++ with_valgrind=
++fi;
++echo "$as_me:16472: result: ${with_valgrind:-no}" >&5
++echo "${ECHO_T}${with_valgrind:-no}" >&6
+
+- # cross-compiling
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 14818 "configure"
+-#include "confdefs.h"
++case .$with_cflags in #(vi
++.*-g*)
++ case .$CFLAGS in #(vi
++ .*-g*) #(vi
++ ;;
++ *)
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
+-#endif
++cf_fix_cppflags=no
++cf_new_cflags=
++cf_new_cppflags=
++cf_new_extra_cppflags=
+
+-extern char boolnames;
+-int
+-main ()
+-{
++for cf_add_cflags in -g
++do
++case $cf_fix_cppflags in
++no)
++ case $cf_add_cflags in #(vi
++ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
++ case $cf_add_cflags in
++ -D*)
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+- do {
+- void *foo = &(boolnames);
+- ${cf_cv_main_return:-return}(foo == 0);
+- } while (0)
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=yes
+
+- ;
+- return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:14850: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:14853: \$? = $ac_status" >&5
+- (exit $ac_status); } &&
+- { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:14856: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:14859: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=yes
+-else
+- echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_result=no
+-fi
+-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ if test $cf_fix_cppflags = yes ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ elif test "${cf_tst_cflags}" = "\"'" ; then
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
++ continue
++ fi
++ ;;
++ esac
++ case "$CPPFLAGS" in
++ *$cf_add_cflags) #(vi
++ ;;
++ *) #(vi
++ case $cf_add_cflags in #(vi
++ -D*)
++ cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 14871 "configure"
+-#include "confdefs.h"
++CPPFLAGS=`echo "$CPPFLAGS" | \
++ sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
++ -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
+-#endif
++ ;;
++ esac
++ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++ *)
++ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
++ ;;
++ esac
++ ;;
++yes)
++ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+-extern char boolnames;
+-int main(void)
+-{
+- void *foo = &(boolnames);
+- ${cf_cv_main_return:-return}(foo == 0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:14896: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:14899: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:14901: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:14904: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=yes
+-else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_result=no
++ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
++
++ test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
++ && test -z "${cf_tst_cflags}" \
++ && cf_fix_cppflags=no
++ ;;
++esac
++done
++
++if test -n "$cf_new_cflags" ; then
++
++ CFLAGS="$CFLAGS $cf_new_cflags"
+ fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++
++if test -n "$cf_new_cppflags" ; then
++
++ CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+ fi
+- echo "$as_me:14915: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- if test $cf_result = yes ; then
+
+-cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++if test -n "$cf_new_extra_cppflags" ; then
++
++ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
++fi
++
++ ;;
++ esac
++ ;;
++esac
++
++echo "$as_me:16565: checking if you want to perform memory-leak testing" >&5
++echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
++
++# Check whether --enable-leaks or --disable-leaks was given.
++if test "${enable_leaks+set}" = set; then
++ enableval="$enable_leaks"
++ if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
++else
++ : ${with_no_leaks:=no}
++fi;
++echo "$as_me:16575: result: $with_no_leaks" >&5
++echo "${ECHO_T}$with_no_leaks" >&6
++
++if test "$with_no_leaks" = yes ; then
++
++cat >>confdefs.h <<\EOF
++#define NO_LEAKS 1
++EOF
+
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
++cat >>confdefs.h <<\EOF
++#define YY_NO_LEAKS 1
+ EOF
+
+- fi
+ fi
+
+-echo "$as_me:14928: checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}" >&5
+-echo $ECHO_N "checking for data boolfnames declaration in ${cf_cv_ncurses_header:-curses.h}... $ECHO_C" >&6
++LD_RPATH_OPT=
++echo "$as_me:16591: checking for an rpath option" >&5
++echo $ECHO_N "checking for an rpath option... $ECHO_C" >&6
++case $cf_cv_system_name in #(vi
++irix*) #(vi
++ if test "$GCC" = yes; then
++ LD_RPATH_OPT="-Wl,-rpath,"
++ else
++ LD_RPATH_OPT="-rpath "
++ fi
++ ;;
++linux*|gnu*|k*bsd*-gnu) #(vi
++ LD_RPATH_OPT="-Wl,-rpath,"
++ ;;
++openbsd[2-9].*|mirbsd*) #(vi
++ LD_RPATH_OPT="-Wl,-rpath,"
++ ;;
++dragonfly*|freebsd*) #(vi
++ LD_RPATH_OPT="-rpath "
++ ;;
++netbsd*) #(vi
++ LD_RPATH_OPT="-Wl,-rpath,"
++ ;;
++osf*|mls+*) #(vi
++ LD_RPATH_OPT="-rpath "
++ ;;
++solaris2*) #(vi
++ LD_RPATH_OPT="-R"
++ ;;
++*)
++ ;;
++esac
++echo "$as_me:16622: result: $LD_RPATH_OPT" >&5
++echo "${ECHO_T}$LD_RPATH_OPT" >&6
+
+-cat >conftest.$ac_ext <<_ACEOF
+-#line 14932 "configure"
+-#include "confdefs.h"
++case "x$LD_RPATH_OPT" in #(vi
++x-R*)
++ echo "$as_me:16627: 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"
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
+-#endif
++cf_add_libs="${LD_RPATH_OPT}$libdir"
++# Filter out duplicates - this happens with badly-designed ".pc" files...
++for cf_add_1lib in $LIBS
++do
++ for cf_add_2lib in $cf_add_libs
++ do
++ if test "x$cf_add_1lib" = "x$cf_add_2lib"
++ then
++ cf_add_1lib=
++ break
++ fi
++ done
++ test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
++done
++LIBS="$cf_add_libs"
++
++ cat >conftest.$ac_ext <<_ACEOF
++#line 16648 "configure"
++#include "confdefs.h"
+
+ int
+ main ()
+ {
+
+-void *foo = &(boolfnames)
+-
+ ;
+ return 0;
+ }
+ _ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:14960: \"$ac_compile\"") >&5
+- (eval $ac_compile) 2>&5
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:16660: \"$ac_link\"") >&5
++ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:14963: \$? = $ac_status" >&5
++ echo "$as_me:16663: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+- { ac_try='test -s conftest.$ac_objext'
+- { (eval echo "$as_me:14966: \"$ac_try\"") >&5
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:16666: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:14969: \$? = $ac_status" >&5
++ echo "$as_me:16669: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ cf_rpath_space=no
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
++cf_rpath_space=yes
+ fi
+-rm -f conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:14978: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++ LIBS="$cf_save_LIBS"
++ echo "$as_me:16679: result: $cf_rpath_space" >&5
++echo "${ECHO_T}$cf_rpath_space" >&6
++ test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
++ ;;
++esac
+
+-if test $cf_result = yes ; then
++echo "$as_me:16685: checking if rpath-hack should be disabled" >&5
++echo $ECHO_N "checking if rpath-hack should be disabled... $ECHO_C" >&6
+
+-cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++# Check whether --enable-rpath-hack or --disable-rpath-hack was given.
++if test "${enable_rpath_hack+set}" = set; then
++ enableval="$enable_rpath_hack"
++ test "$enableval" != no && enableval=yes
++ if test "$enableval" != "yes" ; then
++ cf_disable_rpath_hack=yes
++ else
++ cf_disable_rpath_hack=no
++ fi
++else
++ enableval=yes
++ cf_disable_rpath_hack=no
+
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
+-EOF
++fi;
++echo "$as_me:16702: result: $cf_disable_rpath_hack" >&5
++echo "${ECHO_T}$cf_disable_rpath_hack" >&6
++if test "$cf_disable_rpath_hack" = no ; then
++
++echo "$as_me:16706: checking for updated LDFLAGS" >&5
++echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
++if test -n "$LD_RPATH_OPT" ; then
++ echo "$as_me:16709: result: maybe" >&5
++echo "${ECHO_T}maybe" >&6
+
++ for ac_prog in ldd
++do
++ # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:16716: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_cf_ldd_prog+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+- echo "$as_me:14990: checking for data boolfnames in library" >&5
+-echo $ECHO_N "checking for data boolfnames in library... $ECHO_C" >&6
+- # BSD linkers insist on making weak linkage, but resolve at runtime.
+- if test "$cross_compiling" = yes; then
++ if test -n "$cf_ldd_prog"; then
++ ac_cv_prog_cf_ldd_prog="$cf_ldd_prog" # Let the user override the test.
++else
++ ac_save_IFS=$IFS; IFS=$ac_path_separator
++ac_dummy="$PATH"
++for ac_dir in $ac_dummy; do
++ IFS=$ac_save_IFS
++ test -z "$ac_dir" && ac_dir=.
++ $as_executable_p "$ac_dir/$ac_word" || continue
++ac_cv_prog_cf_ldd_prog="$ac_prog"
++echo "$as_me:16731: found $ac_dir/$ac_word" >&5
++break
++done
+
+- # cross-compiling
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 14997 "configure"
+-#include "confdefs.h"
++fi
++fi
++cf_ldd_prog=$ac_cv_prog_cf_ldd_prog
++if test -n "$cf_ldd_prog"; then
++ echo "$as_me:16739: result: $cf_ldd_prog" >&5
++echo "${ECHO_T}$cf_ldd_prog" >&6
++else
++ echo "$as_me:16742: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
+-#endif
++ test -n "$cf_ldd_prog" && break
++done
++test -n "$cf_ldd_prog" || cf_ldd_prog="no"
+
+-extern char boolfnames;
++ cf_rpath_list="/usr/lib /lib"
++ if test "$cf_ldd_prog" != no
++ then
++ cf_rpath_oops=
++
++cat >conftest.$ac_ext <<_ACEOF
++#line 16756 "configure"
++#include "confdefs.h"
++#include <stdio.h>
+ int
+ main ()
+ {
+-
+- do {
+- void *foo = &(boolfnames);
+- ${cf_cv_main_return:-return}(foo == 0);
+- } while (0)
+-
++printf("Hello");
+ ;
+ return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:15029: \"$ac_link\"") >&5
++if { (eval echo "$as_me:16768: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+- echo "$as_me:15032: \$? = $ac_status" >&5
++ echo "$as_me:16771: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+- { (eval echo "$as_me:15035: \"$ac_try\"") >&5
++ { (eval echo "$as_me:16774: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+- echo "$as_me:15038: \$? = $ac_status" >&5
++ echo "$as_me:16777: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+- cf_result=yes
++ cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
++ cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[ ]/%/%' -e 's%/[^/][^/]*$%%' |sort | uniq`
+ else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+-cf_result=no
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+
+-else
+- cat >conftest.$ac_ext <<_ACEOF
+-#line 15050 "configure"
+-#include "confdefs.h"
++ # If we passed the link-test, but get a "not found" on a given library,
++ # this could be due to inept reconfiguration of gcc to make it only
++ # partly honor /usr/local/lib (or whatever). Sometimes this behavior
++ # is intentional, e.g., installing gcc in /usr/bin and suppressing the
++ # /usr/local libraries.
++ if test -n "$cf_rpath_oops"
++ then
++ for cf_rpath_src in $cf_rpath_oops
++ do
++ for cf_rpath_dir in \
++ /usr/local \
++ /usr/pkg \
++ /opt/sfw
++ do
++ if test -f $cf_rpath_dir/lib/$cf_rpath_src
++ then
++ test -n "$verbose" && echo " ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src" 1>&6
++
++echo "${as_me:-configure}:16805: testing ...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src ..." 1>&5
++
++ LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
++ break
++ fi
++ done
++ done
++ fi
++ fi
+
+-#ifdef HAVE_XCURSES
+-#include <xcurses.h>
+-char * XCursesProgramName = "test";
+-#else
+-#include <${cf_cv_ncurses_header:-curses.h}>
+-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
+-#include <ncursesw/term.h>
+-#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
+-#include <ncurses/term.h>
+-#elif defined(HAVE_TERM_H)
+-#include <term.h>
+-#endif
+-#endif
++ test -n "$verbose" && echo " ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
+
+-extern char boolfnames;
+-int main(void)
+-{
+- void *foo = &(boolfnames);
+- ${cf_cv_main_return:-return}(foo == 0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:15075: \"$ac_link\"") >&5
+- (eval $ac_link) 2>&5
+- ac_status=$?
+- echo "$as_me:15078: \$? = $ac_status" >&5
+- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+- { (eval echo "$as_me:15080: \"$ac_try\"") >&5
+- (eval $ac_try) 2>&5
+- ac_status=$?
+- echo "$as_me:15083: \$? = $ac_status" >&5
+- (exit $ac_status); }; }; then
+- cf_result=yes
+-else
+- echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-cat conftest.$ac_ext >&5
+-cf_result=no
+-fi
+-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+- echo "$as_me:15094: result: $cf_result" >&5
+-echo "${ECHO_T}$cf_result" >&6
+- if test $cf_result = yes ; then
++echo "${as_me:-configure}:16817: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+
+-cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
++test -n "$verbose" && echo " ...checking LDFLAGS $LDFLAGS" 1>&6
+
+- cat >>confdefs.h <<EOF
+-#define $cf_result 1
+-EOF
++echo "${as_me:-configure}:16821: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
++
++cf_rpath_dst=
++for cf_rpath_src in $LDFLAGS
++do
++ case $cf_rpath_src in #(vi
++ -L*) #(vi
++
++ # check if this refers to a directory which we will ignore
++ cf_rpath_skip=no
++ if test -n "$cf_rpath_list"
++ then
++ for cf_rpath_item in $cf_rpath_list
++ do
++ if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
++ then
++ cf_rpath_skip=yes
++ break
++ fi
++ done
++ fi
++
++ if test "$cf_rpath_skip" = no
++ then
++ # transform the option
++ if test "$LD_RPATH_OPT" = "-R " ; then
++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
++ else
++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
++ fi
++
++ # if we have not already added this, add it now
++ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
++ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
++ then
++ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
++
++echo "${as_me:-configure}:16858: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
++
++ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
++ fi
++ fi
++ ;;
++ esac
++ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
++done
++LDFLAGS=$cf_rpath_dst
++
++test -n "$verbose" && echo " ...checked LDFLAGS $LDFLAGS" 1>&6
++
++echo "${as_me:-configure}:16871: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
++
++test -n "$verbose" && echo " ...checking LIBS $LIBS" 1>&6
++
++echo "${as_me:-configure}:16875: testing ...checking LIBS $LIBS ..." 1>&5
++
++cf_rpath_dst=
++for cf_rpath_src in $LIBS
++do
++ case $cf_rpath_src in #(vi
++ -L*) #(vi
++
++ # check if this refers to a directory which we will ignore
++ cf_rpath_skip=no
++ if test -n "$cf_rpath_list"
++ then
++ for cf_rpath_item in $cf_rpath_list
++ do
++ if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
++ then
++ cf_rpath_skip=yes
++ break
++ fi
++ done
++ fi
++
++ if test "$cf_rpath_skip" = no
++ then
++ # transform the option
++ if test "$LD_RPATH_OPT" = "-R " ; then
++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
++ else
++ cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
++ fi
++
++ # if we have not already added this, add it now
++ cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
++ if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
++ then
++ test -n "$verbose" && echo " ...Filter $cf_rpath_src ->$cf_rpath_tmp" 1>&6
++
++echo "${as_me:-configure}:16912: testing ...Filter $cf_rpath_src ->$cf_rpath_tmp ..." 1>&5
++
++ EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
++ fi
++ fi
++ ;;
++ esac
++ cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
++done
++LIBS=$cf_rpath_dst
++
++test -n "$verbose" && echo " ...checked LIBS $LIBS" 1>&6
++
++echo "${as_me:-configure}:16925: testing ...checked LIBS $LIBS ..." 1>&5
++
++ test -n "$verbose" && echo " ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
++
++echo "${as_me:-configure}:16929: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
++
++else
++ echo "$as_me:16932: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
+
+- fi
+ fi
+
+ TEST_ARGS="$LIBS"
+@@ -15188,7 +17019,7 @@
+ : ${CONFIG_STATUS=./config.status}
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:15191: creating $CONFIG_STATUS" >&5
++{ echo "$as_me:17022: creating $CONFIG_STATUS" >&5
+ echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF
+ #! $SHELL
+@@ -15320,7 +17151,7 @@
+ cat >>$CONFIG_STATUS <<EOF
+ ac_cs_version="\\
+ config.status
+-configured by $0, generated by GNU Autoconf 2.52.20101002,
++configured by $0, generated by GNU Autoconf 2.52.20141204,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+@@ -15364,7 +17195,7 @@
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+- { { echo "$as_me:15367: error: ambiguous option: $1
++ { { echo "$as_me:17198: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -15383,7 +17214,7 @@
+ ac_need_defaults=false;;
+
+ # This is an error.
+- -*) { { echo "$as_me:15386: error: unrecognized option: $1
++ -*) { { echo "$as_me:17217: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&5
+ echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2;}
+@@ -15402,7 +17233,7 @@
+ ## Running config.status. ##
+ ## ----------------------- ##
+
+-This file was extended by $as_me 2.52.20101002, executed with
++This file was extended by $as_me 2.52.20141204, executed with
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+@@ -15419,7 +17250,9 @@
+ #
+
+ AWK="$AWK"
++ECHO_CC="$ECHO_CC"
+ ECHO_LD="$ECHO_LD"
++SHOW_CC="$SHOW_LD"
+
+ EOF
+
+@@ -15431,7 +17264,7 @@
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+ "ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ncurses_cfg.h:ncurses_tst.hin" ;;
+- *) { { echo "$as_me:15434: error: invalid argument: $ac_config_target" >&5
++ *) { { echo "$as_me:17267: error: invalid argument: $ac_config_target" >&5
+ echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+@@ -15490,6 +17323,7 @@
+ s,@bindir@,$bindir,;t t
+ s,@sbindir@,$sbindir,;t t
+ s,@libexecdir@,$libexecdir,;t t
++s,@datarootdir@,$datarootdir,;t t
+ s,@datadir@,$datadir,;t t
+ s,@sysconfdir@,$sysconfdir,;t t
+ s,@sharedstatedir@,$sharedstatedir,;t t
+@@ -15529,6 +17363,7 @@
+ s,@ac_ct_CC@,$ac_ct_CC,;t t
+ s,@EXEEXT@,$EXEEXT,;t t
+ s,@OBJEXT@,$OBJEXT,;t t
++s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
+ s,@CPP@,$CPP,;t t
+ s,@AWK@,$AWK,;t t
+ s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+@@ -15541,6 +17376,7 @@
+ s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
+ s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t
+ s,@MATH_LIB@,$MATH_LIB,;t t
++s,@top_builddir@,$top_builddir,;t t
+ s,@CC_G_OPT@,$CC_G_OPT,;t t
+ s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t
+ s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
+@@ -15561,25 +17397,30 @@
+ s,@TEST_ARGS@,$TEST_ARGS,;t t
+ s,@TEST_DEPS@,$TEST_DEPS,;t t
+ s,@TEST_LIBS@,$TEST_LIBS,;t t
+-s,@TINFO_ARGS@,$TINFO_ARGS,;t t
++s,@TINFO_LDFLAGS@,$TINFO_LDFLAGS,;t t
++s,@TINFO_LIBS@,$TINFO_LIBS,;t t
+ s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t
+ s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t
+-s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
++s,@includesubdir@,$includesubdir,;t t
++s,@PKG_CONFIG@,$PKG_CONFIG,;t t
++s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
+ s,@ECHO_LT@,$ECHO_LT,;t t
+ s,@ECHO_LD@,$ECHO_LD,;t t
+ s,@RULE_CC@,$RULE_CC,;t t
+ s,@SHOW_CC@,$SHOW_CC,;t t
+ s,@ECHO_CC@,$ECHO_CC,;t t
+-s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
++s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
+ s,@NCURSES_CONFIG@,$NCURSES_CONFIG,;t t
+-s,@PKG_CONFIG@,$PKG_CONFIG,;t t
+-s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
++s,@ac_ct_NCURSES_CONFIG@,$ac_ct_NCURSES_CONFIG,;t t
+ s,@X_CFLAGS@,$X_CFLAGS,;t t
+ s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
+ s,@X_LIBS@,$X_LIBS,;t t
+ s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
+ s,@XCURSES_CONFIG@,$XCURSES_CONFIG,;t t
+-s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
++s,@ac_ct_XCURSES_CONFIG@,$ac_ct_XCURSES_CONFIG,;t t
++s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
++s,@cf_ldd_prog@,$cf_ldd_prog,;t t
++s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t
+ CEOF
+
+ EOF
+@@ -15694,7 +17535,7 @@
+ esac
+
+ if test x"$ac_file" != x-; then
+- { echo "$as_me:15697: creating $ac_file" >&5
++ { echo "$as_me:17538: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+@@ -15712,7 +17553,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:15715: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:17556: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -15725,13 +17566,45 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:15728: error: cannot find input file: $f" >&5
++ { { echo "$as_me:17569: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ EOF
++cat >>$CONFIG_STATUS <<\EOF
++ ac_warn_datarootdir=no
++ if test x"$ac_file" != x-; then
++ for ac_item in $ac_file_inputs
++ do
++ ac_seen=`grep '@\(datadir\|mandir\|infodir\)@' $ac_item`
++ if test -n "$ac_seen"; then
++ ac_used=`grep '@datarootdir@' $ac_item`
++ if test -z "$ac_used"; then
++ { echo "$as_me:17585: WARNING: datarootdir was used implicitly but not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: datarootdir was used implicitly but not set:
++$ac_seen" >&2;}
++ ac_warn_datarootdir=yes
++ fi
++ fi
++ ac_seen=`grep '${datarootdir}' $ac_item`
++ if test -n "$ac_seen"; then
++ { echo "$as_me:17594: WARNING: datarootdir was used explicitly but not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: datarootdir was used explicitly but not set:
++$ac_seen" >&2;}
++ ac_warn_datarootdir=yes
++ fi
++ done
++ fi
++
++if test "x$ac_warn_datarootdir" = xyes; then
++ ac_sed_cmds="$ac_sed_cmds | sed -e 's,@datarootdir@,\${prefix}/share,g' -e 's,\${datarootdir},\${prefix}/share,g'"
++fi
++
++EOF
+ cat >>$CONFIG_STATUS <<EOF
+ sed "$ac_vpsub
+ $extrasub
+@@ -15746,11 +17619,35 @@
+ " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+- mv $tmp/out $ac_file
++ cp $tmp/out $ac_file
++
++ for ac_name in prefix exec_prefix datarootdir
++ do
++ ac_seen=`fgrep -n '${'$ac_name'[:=].*}' $ac_file`
++ if test -n "$ac_seen"; then
++ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
++ if test -z "$ac_init"; then
++ ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
++ { echo "$as_me:17631: WARNING: Variable $ac_name is used but was not set:
++$ac_seen" >&5
++echo "$as_me: WARNING: Variable $ac_name is used but was not set:
++$ac_seen" >&2;}
++ fi
++ fi
++ done
++ egrep -n '@[a-z_][a-z_0-9]+@' $ac_file >$tmp/out
++ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
++ if test -s $tmp/out; then
++ ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
++ { echo "$as_me:17642: WARNING: Some variables may not be substituted:
++$ac_seen" >&5
++echo "$as_me: WARNING: Some variables may not be substituted:
++$ac_seen" >&2;}
++ fi
+ else
+ cat $tmp/out
+- rm -f $tmp/out
+ fi
++ rm -f $tmp/out
+
+ done
+ EOF
+@@ -15791,7 +17688,7 @@
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+- test x"$ac_file" != x- && { echo "$as_me:15794: creating $ac_file" >&5
++ test x"$ac_file" != x- && { echo "$as_me:17691: creating $ac_file" >&5
+ echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+@@ -15802,7 +17699,7 @@
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+- test -f "$f" || { { echo "$as_me:15805: error: cannot find input file: $f" >&5
++ test -f "$f" || { { echo "$as_me:17702: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+@@ -15815,7 +17712,7 @@
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+- { { echo "$as_me:15818: error: cannot find input file: $f" >&5
++ { { echo "$as_me:17715: error: cannot find input file: $f" >&5
+ echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+@@ -15873,7 +17770,7 @@
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+- { echo "$as_me:15876: $ac_file is unchanged" >&5
++ { echo "$as_me:17773: $ac_file is unchanged" >&5
+ echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+@@ -15949,7 +17846,8 @@
+ \$(MODEL)/$N.o : \$(srcdir)/$N.c \\
+ \$(srcdir)/test.priv.h \\
+ ncurses_cfg.h
+- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
++ $SHOW_CC
++ $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
+ TEST_EOF
+ done
+
+Index: test/configure.in
+Prereq: 1.90
+--- ncurses-5.9/test/configure.in 2011-03-22 09:15:08.000000000 +0000
++++ ncurses-5.9-20141206/test/configure.in 2014-09-20 21:03:23.000000000 +0000
+@@ -1,5 +1,5 @@
+ dnl***************************************************************************
+-dnl Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++dnl Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ dnl *
+ dnl Permission is hereby granted, free of charge, to any person obtaining a *
+ dnl copy of this software and associated documentation files (the *
+@@ -28,7 +28,7 @@
+ dnl
+ dnl Author: Thomas E. Dickey 1996, etc.
+ dnl
+-dnl $Id: configure.in,v 1.90 2011/03/22 09:15:08 tom Exp $
++dnl $Id: configure.in,v 1.117 2014/09/20 21:03:23 tom Exp $
+ dnl This is a simple configuration-script for the ncurses test programs that
+ dnl allows the test-directory to be separately configured against a reference
+ dnl system (i.e., sysvr4 curses)
+@@ -38,7 +38,7 @@
+ dnl
+ dnl See http://invisible-island.net/autoconf/ for additional information.
+ dnl ---------------------------------------------------------------------------
+-AC_PREREQ(2.13.20020210)
++AC_PREREQ(2.52.20030208)
+ AC_INIT(ncurses.c)
+ AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
+
+@@ -49,17 +49,18 @@
+ AC_ARG_PROGRAM
+
+ AC_PROG_MAKE_SET
+-AC_PROG_CC
++CF_PROG_CC
+ AC_PROG_CPP
+ AC_PROG_AWK
+ CF_PROG_INSTALL
+ CF_PROG_LINT
+ CF_MAKE_TAGS
+
+-CF_MATH_LIB(MATH_LIB,sin(x))
++CF_MATH_LIB(MATH_LIB,pow(sin(x),x))
+ AC_SUBST(MATH_LIB)
+
+ dnl Things that we don't need (or must override) if we're not building ncurses
++CF_TOP_BUILDDIR
+ CC_G_OPT="-g" AC_SUBST(CC_G_OPT)
+ CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS)
+ CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS)
+@@ -81,9 +82,11 @@
+ TEST_ARGS="" AC_SUBST(TEST_ARGS)
+ TEST_DEPS="" AC_SUBST(TEST_DEPS)
+ TEST_LIBS="" AC_SUBST(TEST_LIBS)
+-TINFO_ARGS='$(LIBS_CURSES)' AC_SUBST(TINFO_ARGS)
++TINFO_LDFLAGS='' AC_SUBST(TINFO_LDFLAGS)
++TINFO_LIBS='$(LIBS_CURSES)' AC_SUBST(TINFO_LIBS)
+ cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
+ cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
++includesubdir="" AC_SUBST(includesubdir)
+
+ cf_cv_screen=curses
+ cf_cv_libtype=
+@@ -91,55 +94,38 @@
+ AC_EXEEXT
+ AC_OBJEXT
+
+-CF_ANSI_CC_REQD
+ CF_GCC_ATTRIBUTES
+ CF_XOPEN_SOURCE
+-AC_C_CONST
+ CF_SIG_ATOMIC_T
+
++dnl ---------------------------------------------------------------------------
++CF_HELP_MESSAGE(General Options:)
++CF_PKG_CONFIG
+ CF_DISABLE_ECHO
+-CF_ENABLE_WARNINGS
+
+-CF_DISABLE_LEAKS
+-CF_WITH_CURSES_DIR
++dnl ---------------------------------------------------------------------------
++CF_HELP_MESSAGE(Curses Version-dependent Options:)
++CF_NCURSES_WRAP_PREFIX
+
+-dnl SunOS 4.x
+-AC_ARG_WITH(5lib,
+- [ --with-5lib use SunOS sysv-libraries],
+- [LIBS="-L/usr/5lib $LIBS"
+- CPPFLAGS="$CPPFLAGS -I/usr/5include"])
++AC_MSG_CHECKING(if you want to check for wide-character functions)
++CF_ARG_DISABLE(widec,
++ [ --disable-widec disable checks for wide-character functions],
++ cf_enable_widec=no,
++ cf_enable_widec=yes,
++ yes)
++AC_MSG_RESULT($cf_enable_widec)
+
+ dnl ---------------------------------------------------------------------------
+-dnl NcursesW, installed in conventional location
+-AC_ARG_WITH(ncursesw,
+- [ --with-ncursesw use wide ncurses-libraries (installed)],
+- [cf_cv_screen=ncursesw],[
+-
+-dnl Ncurses, installed in conventional location
+-AC_ARG_WITH(ncurses,
+- [ --with-ncurses use ncurses-libraries (installed)],
+- [cf_cv_screen=ncurses],[
+-
+-AC_ARG_WITH(pdcurses,
+- [ --with-pdcurses compile/link with pdcurses X11 library],
+- [cf_cv_screen=pdcurses])])])
++CF_HELP_MESSAGE(Curses Version-dependent Options:)
++CF_WITH_NCURSES_ETC
+
+ case $cf_cv_screen in
+-curses)
+- CF_CURSES_CONFIG
++curses|curses_*)
+ CF_NETBSD_FORM_H
+ CF_NETBSD_MENU_H
+ ;;
+-ncurses)
+- CF_NCURSES_CONFIG
+- ;;
+ ncursesw)
+ cf_cv_libtype=w
+- CF_UTF8_LIB
+- CF_NCURSES_CONFIG(ncursesw)
+- ;;
+-pdcurses) #(vi
+- CF_PDCURSES_X11
+ ;;
+ esac
+
+@@ -153,9 +139,12 @@
+ ;;
+ *)
+ # look for curses-related libraries
+- AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
+- AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
+- AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
++ : ${cf_panel_lib:=panel}
++ : ${cf_menu_lib:=menu}
++ : ${cf_form_lib:=form}
++ AC_CHECK_LIB($cf_panel_lib$cf_cv_libtype,new_panel)
++ AC_CHECK_LIB($cf_menu_lib$cf_cv_libtype,menu_driver)
++ AC_CHECK_LIB($cf_form_lib$cf_cv_libtype,form_driver)
+
+ # look for curses-related headers
+ AC_CHECK_HEADERS( \
+@@ -169,8 +158,6 @@
+ ;;
+ esac
+
+-AC_TYPE_SIGNAL
+-
+ AC_STDC_HEADERS
+ AC_HEADER_TIME
+ AC_CHECK_HEADERS( \
+@@ -185,20 +172,32 @@
+ unistd.h \
+ )
+
++CF_GETOPT_HEADER
++
+ AC_CHECK_FUNCS( \
++getopt \
+ gettimeofday \
++)
++
++if test "x$ac_cv_func_getopt" = xno; then
++ AC_MSG_ERROR(getopt is required for building programs)
++fi
++
++if test "$cf_enable_widec" = yes; then
++AC_CHECK_FUNCS( \
+ mblen \
+ mbrlen \
+ mbrtowc \
+ mbsrtowcs \
+ mbstowcs \
+ mbtowc \
+-strdup \
+ wcsrtombs \
+ wcstombs \
+ )
++fi
+
+ CF_CURSES_FUNCS( \
++assume_default_colors \
+ chgat \
+ color_set \
+ filter \
+@@ -225,61 +224,108 @@
+ tigetstr \
+ typeahead \
+ use_default_colors \
+-vw_printw \
++use_env \
++use_extended_names \
++use_screen \
++use_window \
++vid_puts \
++vidputs \
+ vsscanf \
++vw_printw \
+ wchgat \
+ winsstr \
+ wresize \
+ wsyncdown \
+ )
+
++CF_TPUTS_PROTO
+ CF_NCURSES_EXT_FUNCS
+
+-AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
+-AC_TRY_LINK([
++if test "$cf_enable_widec" = yes
++then
++ # workaround for systems with ncurses before 20111029, due to change of
++ # feature test macro from _XPG5 to _XOPEN_SOURCE
++ if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno
++ then
++ cf_define_xpg5=no
++ AC_MSG_CHECKING(if _XPG5 should be defined to enable wide-characters)
++
++ AC_TRY_COMPILE([
++#include <${cf_cv_ncurses_header:-curses.h}>],
++ [int x = _XPG5],,
++ [cf_save_cppflags="$CPPFLAGS"
++ CPPFLAGS="$CPPFLAGS -D_XPG5"
++ AC_TRY_COMPILE([
++#include <${cf_cv_ncurses_header:-curses.h}>],
++ [int x = _XPG5],
++ [cf_define_xpg5=yes])
++ CPPFLAGS="$cf_save_cppflags"])
++ AC_MSG_RESULT($cf_define_xpg5)
++
++ if test "$cf_define_xpg5" = yes
++ then
++ CPPFLAGS="$CPPFLAGS -D_XPG5"
++ fi
++ fi
++
++ AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
++ AC_TRY_LINK([
+ #include <${cf_cv_ncurses_header:-curses.h}>],
+-[
+- static wchar_t src_wchar[2];
+- static cchar_t dst_cchar;
+- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
+- ],
+- [cf_cv_widechar_funcs=yes],
+- [cf_cv_widechar_funcs=no])
+-])
+-if test "$cf_cv_widechar_funcs" != no ; then
+- AC_DEFINE(USE_WIDEC_SUPPORT,1)
++ [
++ static wchar_t src_wchar[2];
++ static cchar_t dst_cchar;
++ setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
++ ],
++ [cf_cv_widechar_funcs=yes],
++ [cf_cv_widechar_funcs=no])
++ ])
++ if test "$cf_cv_widechar_funcs" != no ; then
++ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to enable wide-character support in (n)curses])
++ else
++ AC_DEFINE(USE_WIDEC_SUPPORT,0)
++ fi
+ else
+ AC_DEFINE(USE_WIDEC_SUPPORT,0)
+ fi
+
+-AC_FUNC_VFORK
+ CF_SYS_TIME_SELECT
+ CF_FUNC_CURSES_VERSION
+-CF_CURSES_ACS_MAP
+-CF_CURSES_WACS_MAP
+-CF_CURSES_WACS_SYMBOLS
+-
+-CF_CURSES_CHECK_TYPE(attr_t,long)
+
+-CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
+-CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
+-CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
+-
+-if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
+- CF_CURSES_CHECK_TYPE(mbstate_t,long)
++CF_CURSES_ACS_MAP
++if test "$cf_enable_widec" = yes; then
++ CF_CURSES_WACS_MAP
++ CF_CURSES_WACS_SYMBOLS
+ fi
+
+-if test "$NCURSES_OK_WCHAR_T" = 0 ; then
+- CF_CURSES_CHECK_TYPE(wchar_t,long)
+-fi
++CF_CURSES_CHECK_TYPE(attr_t,long)
+
+-if test "$NCURSES_OK_WINT_T" = 0 ; then
+- CF_CURSES_CHECK_TYPE(wint_t,long)
++if test "$cf_enable_widec" = yes; then
++ CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
++ CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
++ CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
++
++ if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
++ CF_CURSES_CHECK_TYPE(mbstate_t,long)
++ fi
++
++ if test "$NCURSES_OK_WCHAR_T" = 0 ; then
++ CF_CURSES_CHECK_TYPE(wchar_t,long)
++ fi
++
++ if test "$NCURSES_OK_WINT_T" = 0 ; then
++ CF_CURSES_CHECK_TYPE(wint_t,long)
++ fi
+ fi
+
+ CF_CURSES_CHECK_DATA(boolnames)
+ CF_CURSES_CHECK_DATA(boolfnames)
+
++dnl ---------------------------------------------------------------------------
++CF_HELP_MESSAGE(Testing/development Options:)
++CF_ENABLE_WARNINGS
++CF_DISABLE_LEAKS
++CF_DISABLE_RPATH_HACK
++
+ TEST_ARGS="$LIBS"
+ LIBS=
+
+@@ -302,7 +348,8 @@
+ \$(MODEL)/$N.o : \$(srcdir)/$N.c \\
+ \$(srcdir)/test.priv.h \\
+ ncurses_cfg.h
+- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
++ $SHOW_CC
++ $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) \$(srcdir)/$N.c
+ TEST_EOF
+ done
+
+@@ -317,5 +364,7 @@
+ fi
+ ],[
+ AWK="$AWK"
++ECHO_CC="$ECHO_CC"
+ ECHO_LD="$ECHO_LD"
++SHOW_CC="$SHOW_LD"
+ ],cat)
+Index: test/demo_defkey.c
+Prereq: 1.20
+--- ncurses-5.9/test/demo_defkey.c 2010-11-14 00:59:35.000000000 +0000
++++ ncurses-5.9-20141206/test/demo_defkey.c 2013-09-28 22:02:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: demo_defkey.c,v 1.20 2010/11/14 00:59:35 tom Exp $
++ * $Id: demo_defkey.c,v 1.22 2013/09/28 22:02:17 tom Exp $
+ *
+ * Demonstrate the define_key() function.
+ * Thomas Dickey - 2002/11/23
+@@ -106,7 +106,7 @@
+ for (pass = 0; pass < 2; ++pass) {
+ for (n = 0; string[n] != '\0'; ++n) {
+ char temp[80];
+- strcpy(temp, visichar(string[n]));
++ strncpy(temp, visichar(string[n]), sizeof(temp) - 2);
+ if (pass)
+ strcat(result, temp);
+ else
+@@ -116,7 +116,7 @@
+ result = typeCalloc(char, need);
+ }
+ } else {
+- result = typeCalloc(char, 1);
++ result = typeCalloc(char, (size_t) 1);
+ }
+ return result;
+ }
+@@ -186,9 +186,9 @@
+ const char *prefix = 0;
+ char temp[BUFSIZ];
+
+- if (!strncmp(value, "\033[", 2)) {
++ if (!strncmp(value, "\033[", (size_t) 2)) {
+ prefix = "\033O";
+- } else if (!strncmp(value, "\033O", 2)) {
++ } else if (!strncmp(value, "\033O", (size_t) 2)) {
+ prefix = "\033[";
+ }
+ if (prefix != 0) {
+Index: test/demo_forms.c
+Prereq: 1.38
+--- ncurses-5.9/test/demo_forms.c 2011-01-15 18:15:11.000000000 +0000
++++ ncurses-5.9-20141206/test/demo_forms.c 2014-10-10 00:38:00.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2003-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: demo_forms.c,v 1.38 2011/01/15 18:15:11 tom Exp $
++ * $Id: demo_forms.c,v 1.50 2014/10/10 00:38:00 tom Exp $
+ *
+ * Demonstrate a variety of functions from the form library.
+ * Thomas Dickey - 2003/4/26
+@@ -70,14 +70,116 @@
+
+ #include <edit_field.h>
+
++typedef struct {
++ char *name;
++ char *value;
++} MY_DATA;
++
++static MY_DATA *my_data;
++
+ static int d_option = 0;
+ static int j_value = 0;
+ static int m_value = 0;
+ static int o_value = 0;
+ static char *t_value = 0;
+
++static void
++failed(const char *s)
++{
++ perror(s);
++ ExitProgram(EXIT_FAILURE);
++}
++
++static void
++chomp(char *value)
++{
++ size_t have = strlen(value);
++ while (have != 0 && (value[have - 1] == '\n' || value[have - 1] == '\r')) {
++ value[--have] = '\0';
++ }
++}
++
++static int
++trimmed(const char *value)
++{
++ int result = (int) strlen(value);
++ while (result > 0 && isspace(UChar(value[result - 1]))) {
++ --result;
++ }
++ return result;
++}
++
++static char *
++get_data(const char *name)
++{
++ char *result = t_value;
++ if (my_data != 0) {
++ int n;
++ for (n = 0; my_data[n].name != 0; ++n) {
++ if (!strcmp(name, my_data[n].name)) {
++ result = my_data[n].value;
++ break;
++ }
++ }
++ }
++ return result;
++}
++
++/*
++ * Read (possibly) multi-line data with name+value pairs.
++ */
++static void
++read_data(const char *filename)
++{
++ FILE *fp = fopen(filename, "r");
++
++ if (fp != 0) {
++ char buffer[BUFSIZ];
++ char *colon;
++ int more = 0;
++ int item = 0;
++
++ my_data = typeCalloc(MY_DATA, (size_t) 100); /* FIXME */
++ while (fgets(buffer, sizeof(buffer), fp) != 0) {
++ chomp(buffer);
++ if (more) {
++ if (strcmp(buffer, ".")) {
++ char *prior = my_data[more - 1].value;
++ size_t need = strlen(buffer) + 2 + strlen(prior);
++ char *value = typeRealloc(char, need, prior);
++ if (value == 0)
++ failed("realloc");
++ strcat(value, "\n");
++ strcat(value, buffer);
++ my_data[more - 1].value = value;
++ } else {
++ more = 0;
++ }
++ } else if (*buffer == '#') {
++ continue;
++ } else if ((colon = strchr(buffer, ':')) != 0) {
++ char *name;
++ char *value;
++ *colon++ = '\0';
++ name = strdup(buffer);
++ value = strdup(colon);
++ if (name == 0 || value == 0)
++ failed("strdup");
++ my_data[item].name = name;
++ my_data[item].value = value;
++ more = ++item;
++ } else {
++ failed("expected a colon");
++ }
++ }
++ fclose(fp);
++ } else {
++ failed(filename);
++ }
++}
++
+ static FIELD *
+-make_label(int frow, int fcol, NCURSES_CONST char *label)
++make_label(const char *label, int frow, int fcol)
+ {
+ FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
+
+@@ -92,13 +194,11 @@
+ * Define each field with an extra one, for reflecting "actual" text.
+ */
+ static FIELD *
+-make_field(int frow, int fcol, int rows, int cols)
++make_field(const char *label, int frow, int fcol, int rows, int cols)
+ {
+ FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);
+
+ if (f) {
+- FieldAttrs *ptr;
+-
+ set_field_back(f, A_UNDERLINE);
+ /*
+ * If -j and -d options are combined, -j loses. It is documented in
+@@ -108,8 +208,8 @@
+ set_field_just(f, j_value);
+ if (d_option) {
+ if (has_colors()) {
+- set_field_fore(f, COLOR_PAIR(2));
+- set_field_back(f, A_UNDERLINE | COLOR_PAIR(3));
++ set_field_fore(f, (chtype) COLOR_PAIR(2));
++ set_field_back(f, (A_UNDERLINE | (chtype) COLOR_PAIR(3)));
+ } else {
+ set_field_fore(f, A_BOLD);
+ }
+@@ -121,17 +221,7 @@
+ set_max_field(f, m_value);
+ }
+
+- /*
+- * The userptr is used in edit_field.c's inactive_field().
+- */
+- ptr = (FieldAttrs *) field_userptr(f);
+- if (ptr == 0) {
+- ptr = typeCalloc(FieldAttrs, 1);
+- ptr->background = field_back(f);
+- }
+- set_field_userptr(f, (void *) ptr);
+- if (t_value)
+- set_field_buffer(f, 0, t_value);
++ init_edit_field(f, get_data(label));
+ }
+ return (f);
+ }
+@@ -153,10 +243,10 @@
+ set_form_sub(f, derwin(w, rows, cols, 1, 2));
+ box(w, 0, 0);
+ keypad(w, TRUE);
+- }
+
+- if (post_form(f) != E_OK)
+- wrefresh(w);
++ if (post_form(f) != E_OK)
++ wrefresh(w);
++ }
+ }
+
+ static void
+@@ -257,7 +347,7 @@
+ int currow, curcol;
+
+ if (has_colors()) {
+- wbkgd(win, COLOR_PAIR(1));
++ wbkgd(win, (chtype) COLOR_PAIR(1));
+ }
+ werase(win);
+ form_getyx(form, currow, curcol);
+@@ -309,25 +399,28 @@
+ }
+
+ waddch(win, ' ');
+- (void) wattrset(win, field_fore(field));
++ (void) wattrset(win, AttrArg(field_fore(field), 0));
+ waddstr(win, "fore");
+- wattroff(win, field_fore(field));
++ wattroff(win, (int) field_fore(field));
+
+ waddch(win, '/');
+
+- (void) wattrset(win, field_back(field));
++ (void) wattrset(win, AttrArg(field_back(field), 0));
+ waddstr(win, "back");
+- wattroff(win, field_back(field));
++ wattroff(win, (int) field_back(field));
+
+- wprintw(win, ", pad '%c'",
+- field_pad(field));
++ wprintw(win, ", pad '%c'", field_pad(field));
+
+ waddstr(win, "\n");
+ for (nbuf = 0; nbuf <= 2; ++nbuf) {
+ if ((buffer = field_buffer(field, nbuf)) != 0) {
+ wprintw(win, "buffer %d:", nbuf);
+ (void) wattrset(win, A_REVERSE);
+- waddstr(win, buffer);
++ if (nbuf) {
++ waddnstr(win, buffer, trimmed(buffer));
++ } else {
++ waddstr(win, buffer);
++ }
+ wattroff(win, A_REVERSE);
+ waddstr(win, "\n");
+ }
+@@ -341,11 +434,12 @@
+ {
+ WINDOW *w;
+ FORM *form;
+- FIELD *f[100]; /* FIXME memset to zero */
++ FIELD *f[100]; /* will memset to zero */
+ int finished = 0, c;
+ unsigned n = 0;
+ int pg;
+ WINDOW *also;
++ const char *fname;
+
+ #ifdef NCURSES_MOUSE_VERSION
+ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+@@ -363,66 +457,76 @@
+ for (pg = 0; pg < 4; ++pg) {
+ char label[80];
+ sprintf(label, "Sample Form Page %d", pg + 1);
+- f[n++] = make_label(0, 15, label);
++ f[n++] = make_label(label, 0, 15);
+ set_new_page(f[n - 1], TRUE);
+
+ switch (pg) {
+ default:
+- f[n++] = make_label(2, 0, "Last Name");
+- f[n++] = make_field(3, 0, 1, 18);
++ fname = "Last Name";
++ f[n++] = make_label(fname, 2, 0);
++ f[n++] = make_field(fname, 3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+- f[n++] = make_label(2, 20, "First Name");
+- f[n++] = make_field(3, 20, 1, 12);
++ fname = "First Name";
++ f[n++] = make_label(fname, 2, 20);
++ f[n++] = make_field(fname, 3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+- f[n++] = make_label(2, 34, "Middle Name");
+- f[n++] = make_field(3, 34, 1, 12);
++ fname = "Middle Name";
++ f[n++] = make_label(fname, 2, 34);
++ f[n++] = make_field(fname, 3, 34, 1, 12);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ break;
+ case 1:
+- f[n++] = make_label(2, 0, "Last Name");
+- f[n++] = make_field(3, 0, 1, 18);
++ fname = "Last Name";
++ f[n++] = make_label(fname, 2, 0);
++ f[n++] = make_field(fname, 3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+- f[n++] = make_label(2, 20, "First Name");
+- f[n++] = make_field(3, 20, 1, 12);
++ fname = "First Name";
++ f[n++] = make_label(fname, 2, 20);
++ f[n++] = make_field(fname, 3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+- f[n++] = make_label(2, 34, "MI");
+- f[n++] = make_field(3, 34, 1, 1);
++ fname = "MI";
++ f[n++] = make_label(fname, 2, 34);
++ f[n++] = make_field(fname, 3, 34, 1, 1);
+ set_field_pad(f[n - 1], '?');
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ break;
+ case 2:
+- f[n++] = make_label(2, 0, "Host Name");
+- f[n++] = make_field(3, 0, 1, 18);
++ fname = "Host Name";
++ f[n++] = make_label(fname, 2, 0);
++ f[n++] = make_field(fname, 3, 0, 1, 24);
+ set_field_type(f[n - 1], TYPE_ALNUM, 1);
+
+ #ifdef NCURSES_VERSION
+- f[n++] = make_label(2, 20, "IP Address");
+- f[n++] = make_field(3, 20, 1, 12);
++ fname = "IP Address";
++ f[n++] = make_label(fname, 2, 26);
++ f[n++] = make_field(fname, 3, 26, 1, 16);
+ set_field_type(f[n - 1], TYPE_IPV4, 1);
+ #endif
+
+ break;
+
+ case 3:
+- f[n++] = make_label(2, 0, "Four digits");
+- f[n++] = make_field(3, 0, 1, 18);
++ fname = "Four digits";
++ f[n++] = make_label(fname, 2, 0);
++ f[n++] = make_field(fname, 3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_INTEGER, 4, 0, 0);
+
+- f[n++] = make_label(2, 20, "Numeric");
+- f[n++] = make_field(3, 20, 1, 12);
++ fname = "Numeric";
++ f[n++] = make_label(fname, 2, 20);
++ f[n++] = make_field(fname, 3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_NUMERIC, 3, -10000.0, 100000000.0);
+
+ break;
+ }
+
+- f[n++] = make_label(5, 0, "Comments");
+- f[n++] = make_field(6, 0, 4, 46);
+- set_field_buffer(f[n - 1], 0, "HELLO\nWORLD!");
+- set_field_buffer(f[n - 1], 1, "Hello\nWorld!");
++ fname = "Comments";
++ f[n++] = make_label(fname, 5, 0);
++ f[n++] = make_field(fname, 6, 0, 4, 46);
++ init_edit_field(f[n - 1], get_data(fname));
+ }
+
+ f[n] = (FIELD *) 0;
+@@ -471,7 +575,7 @@
+ {
+ static const char *tbl[] =
+ {
+- "Usage: demo_forms [options]"
++ "Usage: demo_forms [options] [data file]"
+ ,""
+ ," -d make fields dynamic"
+ ," -j value justify (1=left, 2=center, 3=right)"
+@@ -517,6 +621,9 @@
+
+ }
+ }
++ while (optind < argc) {
++ read_data(argv[optind++]);
++ }
+
+ initscr();
+ cbreak();
+@@ -531,7 +638,7 @@
+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
+ init_pair(3, COLOR_CYAN, COLOR_BLACK);
+- bkgd(COLOR_PAIR(1));
++ bkgd((chtype) COLOR_PAIR(1));
+ refresh();
+ }
+
+@@ -540,6 +647,7 @@
+ endwin();
+ ExitProgram(EXIT_SUCCESS);
+ }
++
+ #else
+ int
+ main(void)
+Index: test/demo_forms.txt
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/demo_forms.txt 2013-06-08 14:10:15.000000000 +0000
+@@ -0,0 +1,20 @@
++# $Id: demo_forms.txt,v 1.3 2013/06/08 14:10:15 tom Exp $
++First Name:John
++.
++Middle Name:Don
++.
++MI:D
++.
++Last Name:Smith
++.
++Comments:Hello
++World!
++.
++Host Name:localhost@localdomain
++.
++IP Address:192.168.1.100
++.
++Four digits:1234
++.
++Numeric:32768
++.
+Index: test/demo_menus.c
+Prereq: 1.32
+--- ncurses-5.9/test/demo_menus.c 2011-01-15 20:02:47.000000000 +0000
++++ ncurses-5.9-20141206/test/demo_menus.c 2014-09-05 08:34:06.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2005-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2005-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: demo_menus.c,v 1.32 2011/01/15 20:02:47 tom Exp $
++ * $Id: demo_menus.c,v 1.54 2014/09/05 08:34:06 tom Exp $
+ *
+ * Demonstrate a variety of functions from the menu library.
+ * Thomas Dickey - 2005/4/9
+@@ -38,7 +38,6 @@
+ item_opts_off -
+ item_opts_on -
+ item_term -
+-item_userptr -
+ item_visible -
+ menu_back -
+ menu_fore -
+@@ -49,22 +48,16 @@
+ menu_pad -
+ menu_request_by_name -
+ menu_request_name -
+-menu_sub -
+ menu_term -
+ menu_userptr -
+ set_current_item -
+-set_item_init -
+ set_item_opts -
+-set_item_term -
+-set_item_userptr -
+ set_menu_grey -
+-set_menu_init -
+ set_menu_items -
+ set_menu_opts -
+ set_menu_pad -
+ set_menu_pattern -
+ set_menu_spacing -
+-set_menu_term -
+ set_menu_userptr -
+ set_top_row -
+ top_row -
+@@ -103,23 +96,23 @@
+
+ #define MENU_Y 1
+
++typedef struct {
++ NCURSES_CONST char *name;
++ void (*func) (int);
++ unsigned mask;
++} MENU_DATA;
++
++static void call_files(int);
++
+ static MENU *mpBanner;
+ static MENU *mpFile;
+ static MENU *mpSelect;
+
++static WINDOW *status;
++
+ static bool loaded_file = FALSE;
+
+-#if !HAVE_STRDUP
+-#define strdup my_strdup
+-static char *
+-strdup(char *s)
+-{
+- char *p = typeMalloc(char, strlen(s) + 1);
+- if (p)
+- strcpy(p, s);
+- return (p);
+-}
+-#endif /* not HAVE_STRDUP */
++static char empty[1];
+
+ /* Common function to allow ^T to toggle trace-mode in the middle of a test
+ * so that trace-files can be made smaller.
+@@ -207,6 +200,48 @@
+ return result;
+ }
+
++static void
++my_menu_init(MENU * menu)
++{
++ Trace(("called MenuHook my_menu_init"));
++ mvwprintw(status, 2, 0, "menu_init %p", (void *) menu);
++ wclrtoeol(status);
++ wrefresh(status);
++}
++
++static void
++my_menu_term(MENU * menu)
++{
++ Trace(("called MenuHook my_menu_term"));
++ mvwprintw(status, 2, 0, "menu_term %p", (void *) menu);
++ wclrtoeol(status);
++ wrefresh(status);
++}
++
++static void
++my_item_init(MENU * menu)
++{
++ ITEM *item = current_item(menu);
++ const char *name = item_name(item);
++
++ Trace(("called MenuHook my_item_init (%s)", name));
++ mvwprintw(status, 2, 0, "item_init %s", name);
++ wclrtoeol(status);
++ wrefresh(status);
++}
++
++static void
++my_item_term(MENU * menu)
++{
++ ITEM *item = current_item(menu);
++ const char *name = item_name(item);
++
++ Trace(("called MenuHook my_item_term (%s)", name));
++ mvwprintw(status, 2, 0, "item_term %s", name);
++ wclrtoeol(status);
++ wrefresh(status);
++}
++
+ static MENU *
+ menu_create(ITEM ** items, int count, int ncols, MenuNo number)
+ {
+@@ -225,8 +260,8 @@
+ result = new_menu(items);
+
+ if (has_colors()) {
+- set_menu_fore(result, COLOR_PAIR(1));
+- set_menu_back(result, COLOR_PAIR(2));
++ set_menu_fore(result, (chtype) COLOR_PAIR(1));
++ set_menu_back(result, (chtype) COLOR_PAIR(2));
+ }
+
+ set_menu_format(result, maxrow, maxcol);
+@@ -252,6 +287,10 @@
+
+ post_menu(result);
+
++ set_menu_init(result, my_menu_init);
++ set_menu_term(result, my_menu_term);
++ set_item_init(result, my_item_init);
++ set_item_term(result, my_item_term);
+ return result;
+ }
+
+@@ -278,15 +317,18 @@
+ if ((count > 0) && (m == mpSelect)) {
+ if (blob && loaded_file) {
+ Trace(("freeing blob %p", blob));
+- free((char *) blob);
++ free((void *) blob);
+ }
+ free(items);
++ items = 0;
+ }
+ #ifdef TRACE
+ if ((count > 0) && (m == mpTrace)) {
+ ITEM **ip = items;
+- while (*ip)
+- free(*ip++);
++ if (ip != 0) {
++ while (*ip)
++ free(*ip++);
++ }
+ }
+ #endif
+ }
+@@ -305,21 +347,24 @@
+ static void
+ build_file_menu(MenuNo number)
+ {
+- static CONST_MENUS char *labels[] =
++ static MENU_DATA table[] =
+ {
+- "Exit",
+- (char *) 0
++ {"Exit", call_files, 0},
++ {(char *) 0, 0, 0}
+ };
+- static ITEM *items[SIZEOF(labels)];
++ static ITEM *items[SIZEOF(table)];
+
+ ITEM **ip = items;
+- CONST_MENUS char **ap;
++ int n;
+
+- for (ap = labels; *ap; ap++)
+- *ip++ = new_item(*ap, "");
++ for (n = 0; table[n].name != 0; ++n) {
++ *ip = new_item(table[n].name, empty);
++ set_item_userptr(*ip, (void *) &table[n]);
++ ++ip;
++ }
+ *ip = (ITEM *) 0;
+
+- mpFile = menu_create(items, SIZEOF(labels) - 1, 1, number);
++ mpFile = menu_create(items, SIZEOF(table) - 1, 1, number);
+ }
+
+ static int
+@@ -331,31 +376,40 @@
+ /*****************************************************************************/
+
+ static void
++call_select(int code)
++{
++ (void) code;
++ Trace(("Selected item %d", code));
++}
++
++static void
+ build_select_menu(MenuNo number, char *filename)
+ {
+- static CONST_MENUS char *labels[] =
++#define MY_DATA(name) { name, call_select, 0 }
++ static MENU_DATA table[] =
+ {
+- "Lions",
+- "Tigers",
+- "Bears",
+- "(Oh my!)",
+- "Newts",
+- "Platypi",
+- "Lemurs",
+- "(Oh really?!)",
+- "Leopards",
+- "Panthers",
+- "Pumas",
+- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
+- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
+- (char *) 0
++ MY_DATA("Lions"),
++ MY_DATA("Tigers"),
++ MY_DATA("Bears"),
++ MY_DATA("(Oh my!)"),
++ MY_DATA("Newts"),
++ MY_DATA("Platypi"),
++ MY_DATA("Lemurs"),
++ MY_DATA("(Oh really?!)"),
++ MY_DATA("Leopards"),
++ MY_DATA("Panthers"),
++ MY_DATA("Pumas"),
++ MY_DATA("Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs"),
++ MY_DATA("Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs"),
++ {(char *) 0, 0, 0}
+ };
+ static ITEM **items;
+
+ ITEM **ip;
+- CONST_MENUS char **ap = 0;
+- CONST_MENUS char **myList = 0;
+- unsigned count = 0;
++ MENU_DATA *ap = 0;
++ MENU_DATA *myList = 0;
++ int i;
++ size_t count = 0;
+
+ if (filename != 0) {
+ struct stat sb;
+@@ -365,7 +419,7 @@
+ size_t size = (size_t) sb.st_size;
+ unsigned j, k;
+ char *blob = typeMalloc(char, size + 1);
+- CONST_MENUS char **list = typeCalloc(CONST_MENUS char *, size + 1);
++ MENU_DATA *list = typeCalloc(MENU_DATA, size + 1);
+
+ items = typeCalloc(ITEM *, size + 1);
+ Trace(("build_select_menu blob=%p, items=%p",
+@@ -378,19 +432,19 @@
+ bool mark = TRUE;
+ for (j = k = 0; j < size; ++j) {
+ if (mark) {
+- list[k++] = blob + j;
++ list[k++].name = blob + j;
+ mark = FALSE;
+ }
+ if (blob[j] == '\n') {
+ blob[j] = '\0';
+- if (k > 0 && *list[k - 1] == '\0')
++ if (k > 0 && *list[k - 1].name == '\0')
+ --k;
+ mark = TRUE;
+ } else if (blob[j] == '\t') {
+ blob[j] = ' '; /* menu items are printable */
+ }
+ }
+- list[k] = 0;
++ list[k].name = 0;
+ count = k;
+ ap = myList = list;
+ }
+@@ -398,17 +452,24 @@
+ }
+ loaded_file = TRUE;
+ }
++ if (ap == 0)
++ free(items);
+ }
+ }
+ if (ap == 0) {
+- count = SIZEOF(labels) - 1;
++ count = SIZEOF(table) - 1;
+ items = typeCalloc(ITEM *, count + 1);
+- ap = labels;
++ ap = table;
+ }
+
+ ip = items;
+- while (*ap != 0)
+- *ip++ = new_item(*ap++, "");
++ for (i = 0; ap[i].name != 0; ++i) {
++ ap[i].func = call_select;
++ ap[i].mask = (unsigned) i;
++ *ip = new_item(ap[i].name, empty);
++ set_item_userptr(*ip, (void *) &table[i]);
++ ++ip;
++ }
+ *ip = 0;
+
+ mpSelect = menu_create(items, (int) count, 1, number);
+@@ -425,30 +486,36 @@
+ /*****************************************************************************/
+
+ #ifdef TRACE
+-#define T_TBL(name) { #name, name }
+-static struct {
+- const char *name;
+- unsigned mask;
+-} t_tbl[] = {
++
++static void
++call_trace(int code)
++{
++ (void) code;
++ Trace(("Updating trace mask %d", code));
++}
++
++#define T_TBL(name) { #name, call_trace, name }
++static MENU_DATA t_tbl[] =
++{
+
+ T_TBL(TRACE_DISABLE),
+- T_TBL(TRACE_TIMES),
+- T_TBL(TRACE_TPUTS),
+- T_TBL(TRACE_UPDATE),
+- T_TBL(TRACE_MOVE),
+- T_TBL(TRACE_CHARPUT),
+- T_TBL(TRACE_ORDINARY),
+- T_TBL(TRACE_CALLS),
+- T_TBL(TRACE_VIRTPUT),
+- T_TBL(TRACE_IEVENT),
+- T_TBL(TRACE_BITS),
+- T_TBL(TRACE_ICALLS),
+- T_TBL(TRACE_CCALLS),
+- T_TBL(TRACE_DATABASE),
+- T_TBL(TRACE_ATTRS),
+- T_TBL(TRACE_MAXIMUM),
++ T_TBL(TRACE_TIMES),
++ T_TBL(TRACE_TPUTS),
++ T_TBL(TRACE_UPDATE),
++ T_TBL(TRACE_MOVE),
++ T_TBL(TRACE_CHARPUT),
++ T_TBL(TRACE_ORDINARY),
++ T_TBL(TRACE_CALLS),
++ T_TBL(TRACE_VIRTPUT),
++ T_TBL(TRACE_IEVENT),
++ T_TBL(TRACE_BITS),
++ T_TBL(TRACE_ICALLS),
++ T_TBL(TRACE_CCALLS),
++ T_TBL(TRACE_DATABASE),
++ T_TBL(TRACE_ATTRS),
++ T_TBL(TRACE_MAXIMUM),
+ {
+- (char *) 0, 0
++ (char *) 0, 0, 0
+ }
+ };
+
+@@ -460,8 +527,11 @@
+ ITEM **ip = items;
+ int n;
+
+- for (n = 0; t_tbl[n].name != 0; n++)
+- *ip++ = new_item(t_tbl[n].name, "");
++ for (n = 0; t_tbl[n].name != 0; n++) {
++ *ip = new_item(t_tbl[n].name, empty);
++ set_item_userptr(*ip, (void *) &t_tbl[n]);
++ ++ip;
++ }
+ *ip = (ITEM *) 0;
+
+ mpTrace = menu_create(items, SIZEOF(t_tbl) - 1, 2, number);
+@@ -527,7 +597,8 @@
+ int result;
+
+ for (ip = menu_items(mpTrace); *ip; ip++) {
+- unsigned mask = t_tbl[item_index(*ip)].mask;
++ MENU_DATA *td = (MENU_DATA *) item_userptr(*ip);
++ unsigned mask = td->mask;
+ if (mask == 0)
+ set_item_value(*ip, _nc_tracing == 0);
+ else if ((mask & _nc_tracing) == mask)
+@@ -540,15 +611,17 @@
+ if (update_trace_menu(mpTrace) || cmd == REQ_TOGGLE_ITEM) {
+ newtrace = 0;
+ for (ip = menu_items(mpTrace); *ip; ip++) {
+- if (item_value(*ip))
+- newtrace |= t_tbl[item_index(*ip)].mask;
++ if (item_value(*ip)) {
++ MENU_DATA *td = (MENU_DATA *) item_userptr(*ip);
++ newtrace |= td->mask;
++ }
+ }
+ trace(newtrace);
+ Trace(("trace level interactively set to %s", tracetrace(_nc_tracing)));
+
+- MvPrintw(LINES - 2, 0,
+- "Trace level is %s\n", tracetrace(_nc_tracing));
+- refresh();
++ MvWPrintw(status, 1, 0,
++ "Trace level is %s\n", tracetrace(_nc_tracing));
++ wrefresh(status);
+ }
+ }
+ return result;
+@@ -588,27 +661,37 @@
+ }
+
+ static void
++call_menus(int code)
++{
++ (void) code;
++ Trace(("Activated menu %d\n", code));
++}
++
++static void
+ build_menus(char *filename)
+ {
+- static CONST_MENUS char *labels[] =
++ static MENU_DATA table[] =
+ {
+- "File",
+- "Select",
++ {"File", call_menus, 0},
++ {"Select", call_menus, 1},
+ #ifdef TRACE
+- "Trace",
++ {"Trace", call_menus, 2},
+ #endif
+- (char *) 0
++ {(char *) 0, 0, 0}
+ };
+- static ITEM *items[SIZEOF(labels)];
++ static ITEM *items[SIZEOF(table)];
+
+ ITEM **ip = items;
+- CONST_MENUS char **ap;
++ int n;
+
+- for (ap = labels; *ap; ap++)
+- *ip++ = new_item(*ap, "");
++ for (n = 0; table[n].name != 0; ++n) {
++ *ip = new_item(table[n].name, empty);
++ set_item_userptr(*ip, (void *) &table[n]);
++ ++ip;
++ }
+ *ip = (ITEM *) 0;
+
+- mpBanner = menu_create(items, SIZEOF(labels) - 1, SIZEOF(labels) - 1, eBanner);
++ mpBanner = menu_create(items, SIZEOF(table) - 1, SIZEOF(table) - 1, eBanner);
+ set_menu_mark(mpBanner, ">");
+
+ build_file_menu(eFile);
+@@ -671,14 +754,14 @@
+ static void
+ show_status(int ch, MENU * menu)
+ {
+- move(LINES - 1, 0);
+- printw("key %s, menu %d, mark %s, match %s",
+- keyname(ch),
+- menu_number(),
+- menu_mark(menu),
+- menu_pattern(menu));
+- clrtoeol();
+- refresh();
++ wmove(status, 0, 0);
++ wprintw(status, "key %s, menu %d, mark %s, match %s",
++ keyname(ch),
++ menu_number(),
++ menu_mark(menu),
++ menu_pattern(menu));
++ wclrtoeol(status);
++ wrefresh(status);
+ }
+
+ static void
+@@ -777,9 +860,9 @@
+ wrefresh(menu_win(last_menu));
+ if (code == E_UNKNOWN_COMMAND
+ || code == E_NOT_POSTED) {
+- if (menu_number() == eFile)
+- break;
+- beep();
++ ITEM *item = current_item(last_menu);
++ MENU_DATA *td = (MENU_DATA *) item_userptr(item);
++ td->func((int) td->mask);
+ }
+ if (code == E_REQUEST_DENIED)
+ beep();
+@@ -827,11 +910,23 @@
+ #endif /* HAVE_RIPOFFLINE */
+
+ static void
++call_files(int code)
++{
++ switch (code) {
++ case 0:
++ destroy_menus();
++ endwin();
++ printf("DONE!\n");
++ ExitProgram(EXIT_SUCCESS);
++ }
++}
++
++static void
+ usage(void)
+ {
+ static const char *const tbl[] =
+ {
+- "Usage: demo_menus [options]"
++ "Usage: demo_menus [options] [menu-file]"
+ ,""
+ ,"Options:"
+ #if HAVE_RIPOFFLINE
+@@ -867,7 +962,7 @@
+ #endif /* HAVE_RIPOFFLINE */
+ #ifdef TRACE
+ case 't':
+- trace(strtoul(optarg, 0, 0));
++ trace((unsigned) strtoul(optarg, 0, 0));
+ break;
+ #endif
+ default:
+@@ -885,6 +980,7 @@
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_BLUE, COLOR_WHITE);
+ }
++ status = newwin(3, COLS, LINES - 3, 0);
+ build_menus(argc > 1 ? argv[1] : 0);
+ perform_menus();
+ destroy_menus();
+Index: test/demo_panels.c
+Prereq: 1.37
+--- ncurses-5.9/test/demo_panels.c 2010-05-01 22:19:02.000000000 +0000
++++ ncurses-5.9-20141206/test/demo_panels.c 2014-08-02 17:24:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2007-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2010,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: demo_panels.c,v 1.37 2010/05/01 22:19:02 tom Exp $
++ * $Id: demo_panels.c,v 1.38 2014/08/02 17:24:07 tom Exp $
+ *
+ * Demonstrate a variety of functions from the panel library.
+ */
+@@ -406,7 +406,7 @@
+ {
+ wchar_t source[2];
+
+- source[0] = digit + 0xff10;
++ source[0] = (wchar_t) (digit + 0xff10);
+ source[1] = 0;
+ setcchar(target, source, A_NORMAL, 0, 0);
+ }
+Index: test/demo_termcap.c
+Prereq: 1.14
+--- ncurses-5.9/test/demo_termcap.c 2011-01-15 21:41:27.000000000 +0000
++++ ncurses-5.9-20141206/test/demo_termcap.c 2014-10-10 00:35:43.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2005-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2005-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,12 +29,29 @@
+ /*
+ * Author: Thomas E. Dickey
+ *
+- * $Id: demo_termcap.c,v 1.14 2011/01/15 21:41:27 tom Exp $
++ * $Id: demo_termcap.c,v 1.46 2014/10/10 00:35:43 tom Exp $
+ *
+ * A simple demo of the termcap interface.
+ */
+ #define USE_TINFO
+ #include <test.priv.h>
++#include <sys/stat.h>
++
++#if NCURSES_XNAMES
++#if HAVE_TERM_ENTRY_H
++#include <term_entry.h>
++#else
++#undef NCURSES_XNAMES
++#define NCURSES_XNAMES 0
++#endif
++#endif
++
++static void
++failed(const char *msg)
++{
++ fprintf(stderr, "%s\n", msg);
++ ExitProgram(EXIT_FAILURE);
++}
+
+ #if HAVE_TGETENT
+
+@@ -47,13 +64,103 @@
+ #define FCOLS 8
+ #define FNAME(type) "%s %-*s = ", #type, FCOLS
+
+-#if USE_CODE_LISTS
+ static bool b_opt = FALSE;
+ static bool n_opt = FALSE;
+ static bool s_opt = FALSE;
+-#endif
++static bool q_opt = FALSE;
++static bool x_opt = FALSE;
++static bool y_opt = FALSE;
++
++static char *d_opt;
++static char *e_opt;
++static char **db_list;
++static int db_item;
++
++static char *my_blob;
++static char **my_boolcodes;
++static char **my_numcodes;
++static char **my_numvalues;
++static char **my_strcodes;
++static char **my_strvalues;
++
++static long total_values;
++static long total_b_values;
++static long total_n_values;
++static long total_s_values;
++
++#define isCapName(c) (isgraph(c) && strchr("^=:\\", c) == 0)
++#define EachCapName(n) n = 33; n < 127; ++n
++
++static char *
++make_dbitem(char *p, char *q)
++{
++ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q));
++ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q);
++ return result;
++}
++
++static void
++make_dblist(void)
++{
++ if (d_opt && e_opt) {
++ int pass;
++
++ for (pass = 0; pass < 2; ++pass) {
++ char *p, *q;
++ size_t count = 0;
++
++ for (p = q = d_opt; *p != '\0'; ++p) {
++ if (*p == ':') {
++ if (p != q + 1) {
++ if (pass) {
++ db_list[count] = make_dbitem(p, q);
++ }
++ count++;
++ }
++ q = p + 1;
++ }
++ }
++ if (p != q + 1) {
++ if (pass) {
++ db_list[count] = make_dbitem(p, q);
++ }
++ count++;
++ }
++ if (!pass) {
++ db_list = typeCalloc(char *, count + 1);
++ }
++ }
++ }
++}
+
+-#define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0)
++static char *
++next_dbitem(void)
++{
++ char *result = 0;
++
++ if (db_list) {
++ if ((result = db_list[db_item]) == 0) {
++ db_item = 0;
++ result = db_list[0];
++ } else {
++ db_item++;
++ }
++ }
++ printf("** %s\n", result);
++ return result;
++}
++
++static void
++free_dblist(void)
++{
++ if (db_list) {
++ int n;
++ for (n = 0; db_list[n]; ++n)
++ free(db_list[n]);
++ free(db_list);
++ db_list = 0;
++ }
++}
+
+ static void
+ dumpit(NCURSES_CONST char *cap)
+@@ -70,66 +177,80 @@
+ int num;
+
+ if ((str = tgetstr(cap, &ap)) != 0) {
+- /*
+- * Note that the strings returned are mostly terminfo format, since
+- * ncurses does not convert except for a handful of special cases.
+- */
+- printf(FNAME(str), cap);
+- while (*str != 0) {
+- int ch = UChar(*str++);
+- switch (ch) {
+- case '\177':
+- fputs("^?", stdout);
+- break;
+- case '\033':
+- fputs("\\E", stdout);
+- break;
+- case '\b':
+- fputs("\\b", stdout);
+- break;
+- case '\f':
+- fputs("\\f", stdout);
+- break;
+- case '\n':
+- fputs("\\n", stdout);
+- break;
+- case '\r':
+- fputs("\\r", stdout);
+- break;
+- case ' ':
+- fputs("\\s", stdout);
+- break;
+- case '\t':
+- fputs("\\t", stdout);
+- break;
+- case '^':
+- fputs("\\^", stdout);
+- break;
+- case ':':
+- fputs("\\072", stdout);
+- break;
+- case '\\':
+- fputs("\\\\", stdout);
+- break;
+- default:
+- if (isgraph(ch))
+- fputc(ch, stdout);
+- else if (ch < 32)
+- printf("^%c", ch + '@');
+- else
+- printf("\\%03o", ch);
+- break;
++ total_values++;
++ total_s_values++;
++ if (!q_opt) {
++ /*
++ * Note that the strings returned are mostly terminfo format, since
++ * ncurses does not convert except for a handful of special cases.
++ */
++ printf(FNAME(str), cap);
++ while (*str != 0) {
++ int ch = UChar(*str++);
++ switch (ch) {
++ case '\177':
++ fputs("^?", stdout);
++ break;
++ case '\033':
++ fputs("\\E", stdout);
++ break;
++ case '\b':
++ fputs("\\b", stdout);
++ break;
++ case '\f':
++ fputs("\\f", stdout);
++ break;
++ case '\n':
++ fputs("\\n", stdout);
++ break;
++ case '\r':
++ fputs("\\r", stdout);
++ break;
++ case ' ':
++ fputs("\\s", stdout);
++ break;
++ case '\t':
++ fputs("\\t", stdout);
++ break;
++ case '^':
++ fputs("\\^", stdout);
++ break;
++ case ':':
++ fputs("\\072", stdout);
++ break;
++ case '\\':
++ fputs("\\\\", stdout);
++ break;
++ default:
++ if (isgraph(ch))
++ fputc(ch, stdout);
++ else if (ch < 32)
++ printf("^%c", ch + '@');
++ else
++ printf("\\%03o", ch);
++ break;
++ }
+ }
++ printf("\n");
+ }
+- printf("\n");
+ } else if ((num = tgetnum(cap)) >= 0) {
+- printf(FNAME(num), cap);
+- printf(" %d\n", num);
++ total_values++;
++ total_n_values++;
++ if (!q_opt) {
++ printf(FNAME(num), cap);
++ printf(" %d\n", num);
++ }
+ } else if (tgetflag(cap) > 0) {
+- printf(FNAME(flg), cap);
+- printf("%s\n", "true");
++ total_values++;
++ total_b_values++;
++ if (!q_opt) {
++ printf(FNAME(flg), cap);
++ printf("%s\n", "true");
++ }
+ }
+- fflush(stdout);
++
++ if (!q_opt)
++ fflush(stdout);
+ }
+
+ static void
+@@ -137,16 +258,20 @@
+ {
+ char buffer[1024];
+
+- printf("Terminal type %s\n", name);
++ if (db_list) {
++ putenv(next_dbitem());
++ }
++ if (!q_opt)
++ printf("Terminal type \"%s\"\n", name);
+ if (tgetent(buffer, name) >= 0) {
+ char cap[3];
+ int c1, c2;
+
+ cap[2] = 0;
+- for (c1 = 0; c1 < 256; ++c1) {
++ for (EachCapName(c1)) {
+ cap[0] = (char) c1;
+ if (isCapName(c1)) {
+- for (c2 = 0; c2 < 256; ++c2) {
++ for (EachCapName(c2)) {
+ cap[1] = (char) c2;
+ if (isCapName(c2)) {
+ dumpit(cap);
+@@ -157,54 +282,422 @@
+ }
+ }
+
+-#if USE_CODE_LISTS
++#if NCURSES_XNAMES
+ static void
+-demo_terminfo(NCURSES_CONST char *name)
++dump_xname(NCURSES_CONST char *cap)
++{
++ if (strlen(cap) == 2)
++ dumpit(cap);
++}
++#endif
++
++static void
++demo_termcap(NCURSES_CONST char *name)
+ {
+ unsigned n;
+ NCURSES_CONST char *cap;
++ char buffer[1024];
+
+- printf("Terminal type \"%s\"\n", name);
+-#if HAVE_SETUPTERM
+- setupterm(name, 1, (int *) 0);
+-#else
+- setterm(name);
++ if (db_list) {
++ putenv(next_dbitem());
++ }
++ if (!q_opt)
++ printf("Terminal type \"%s\"\n", name);
++ if (tgetent(buffer, name) >= 0) {
++
++ if (b_opt) {
++ for (n = 0;; ++n) {
++ cap = my_boolcodes[n];
++ if (cap == 0)
++ break;
++ dumpit(cap);
++ }
++ }
++
++ if (n_opt) {
++ for (n = 0;; ++n) {
++ cap = my_numcodes[n];
++ if (cap == 0)
++ break;
++ dumpit(cap);
++ }
++ }
++
++ if (s_opt) {
++ for (n = 0;; ++n) {
++ cap = my_strcodes[n];
++ if (cap == 0)
++ break;
++ dumpit(cap);
++ }
++ }
++#ifdef NCURSES_VERSION
++ if (x_opt && (my_blob == 0) && y_opt) {
++#if NCURSES_XNAMES
++ TERMTYPE *term = &(cur_term->type);
++ if (term != 0
++ && ((NUM_BOOLEANS(term) != BOOLCOUNT)
++ || (NUM_NUMBERS(term) != NUMCOUNT)
++ || (NUM_STRINGS(term) != STRCOUNT))) {
++ for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
++ dump_xname(ExtBoolname(term, (int) n, boolnames));
++ }
++ for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
++ dump_xname(ExtNumname(term, (int) n, numnames));
++ }
++ for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
++ dump_xname(ExtStrname(term, (int) n, strnames));
++ }
++ }
++#endif
++ }
+ #endif
++ }
++}
++
++typedef enum {
++ pDefault = 0
++ ,pComment
++ ,pDescription
++ ,pEscaped
++ ,pNewline
++ ,pName
++ ,pNumber
++ ,pString
++} STATE;
++
++static void
++parse_description(const char *input_name)
++{
++ static char empty[1];
++
++ FILE *fp;
++ struct stat sb;
++ size_t count_bools = 0;
++ size_t count_nums = 0;
++ size_t count_strs = 0;
++ size_t len;
++ size_t j, k;
++ STATE state;
++
++ if (stat(input_name, &sb) != 0
++ || (sb.st_mode & S_IFMT) != S_IFREG) {
++ failed("input is not a file");
++ }
+
+- if (b_opt) {
+- for (n = 0;; ++n) {
+- cap = boolcodes[n];
+- if (cap == 0)
++ if (sb.st_size == 0) {
++ failed("input is empty");
++ }
++
++ /*
++ * None of the arrays could be larger than the input-file, and since it
++ * is small, just allocate the maximum for simplicity.
++ */
++ if ((my_blob = malloc((size_t) sb.st_size + 1)) == 0 ||
++ (my_boolcodes = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_numcodes = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_numvalues = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_strcodes = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_strvalues = typeCalloc(char *, sb.st_size)) == 0) {
++ failed("cannot allocate memory for input-file");
++ }
++
++ if ((fp = fopen(input_name, "r")) == 0)
++ failed("cannot open input-file");
++ len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
++ my_blob[sb.st_size] = '\0';
++ fclose(fp);
++
++ /*
++ * First, get rid of comments and escaped newlines, as well as repeated
++ * colons to construct a canonical entry.
++ *
++ * FIXME: actually this should make an additional pass just to strip
++ * comment-lines and escaped newlines. But it is workable for infocmp
++ * output.
++ */
++ state = pNewline;
++ for (j = k = 0; j < len; ++j) {
++ int ch = my_blob[j];
++ if (ch == '\t') {
++ ch = ' ';
++ }
++ switch (state) {
++ case pNewline:
++ if (ch == ' ') {
++ continue;
++ }
++ if (ch == '#') {
++ state = pComment;
++ continue;
++ }
++ state = pDefault;
++ /* FALLTHRU */
++ case pDefault:
++ switch (ch) {
++ case '|':
++ state = pDescription;
++ continue;
++ case '\\':
++ state = pEscaped;
++ continue;
++ case '\n':
++ state = pNewline;
++ continue;
++ case ' ':
++ case ':':
++ break;
++ default:
++ state = pName;
++ break;
++ }
++ my_blob[k++] = (char) ch;
++ break;
++ case pComment:
++ if (ch == '\n')
++ state = pNewline;
++ break;
++ case pDescription:
++ switch (ch) {
++ case ':':
++ state = pDefault;
++ break;
++ case '\n':
++ state = pNewline;
++ break;
++ }
++ break;
++ case pEscaped:
++ if (ch != '\n') {
++ my_blob[k++] = (char) ch;
++ state = pDefault;
++ } else {
++ state = pNewline;
++ }
++ break;
++ case pName:
++ switch (ch) {
++ case '\n':
++ state = pNewline;
++ continue;
++ case ' ':
++ case ':':
++ state = pDefault;
++ break;
++ case '#':
++ state = pNumber;
++ break;
++ case '|':
++ state = pDescription;
++ continue;
++ }
++ my_blob[k++] = (char) ch;
++ break;
++ case pNumber:
++ switch (ch) {
++ case '\n':
++ state = pNewline;
++ continue;
++ case ':':
++ state = pDefault;
+ break;
+- dumpit(cap);
++ case ' ':
++ state = pDefault;
++ continue;
++ }
++ my_blob[k++] = (char) ch;
++ break;
++ case pString:
++ switch (ch) {
++ case '\\':
++ if (my_blob[j + 1] == '\0') {
++ state = pDefault;
++ continue;
++ }
++ break;
++ case '\n':
++ state = pNewline;
++ continue;
++ case ':':
++ state = pDefault;
++ break;
++ }
++ my_blob[k++] = (char) ch;
++ break;
++ default:
++ /* not used */
++ break;
+ }
+ }
++ my_blob[k] = '\0';
+
+- if (n_opt) {
+- for (n = 0;; ++n) {
+- cap = numcodes[n];
+- if (cap == 0)
++ /*
++ * Then, parse what's left, making indexes of the names and values.
++ */
++ state = pDefault;
++ for (j = 0; my_blob[j] != '\0'; ++j) {
++ switch (state) {
++ case pDefault:
++ switch (my_blob[j]) {
++ case '\\':
++ state = pEscaped;
++ break;
++ case ':':
++ my_blob[j] = '\0';
++ if (my_blob[j + 1] != '\0' && my_blob[j + 1] != ':')
++ state = pName;
++ break;
++ case ' ':
+ break;
+- dumpit(cap);
++ default:
++ break;
++ }
++ case pEscaped:
++ break;
++ case pName:
++ state = pDefault;
++ /*
++ * Commented-out capabilities might be accessible (they are in
++ * ncurses).
++ */
++ if (my_blob[j] == '.' && my_blob[j + 1] == '.') {
++ j += 2;
++ }
++ if (my_blob[j + 1] != '\0') {
++ switch (my_blob[j + 2]) {
++ case '#':
++ my_numvalues[count_nums] = &my_blob[j + 3];
++ my_numcodes[count_nums++] = &my_blob[j];
++ my_blob[j + 2] = '\0';
++ state = pNumber;
++ j += 2;
++ break;
++ case '=':
++ my_strvalues[count_strs] = &my_blob[j + 3];
++ my_strcodes[count_strs++] = &my_blob[j];
++ my_blob[j + 2] = '\0';
++ state = pString;
++ j += 2;
++ break;
++ default:
++ if (my_blob[j + 2] == '@') {
++ /*
++ * We cannot get the type for a cancelled item
++ * directly, but can infer it assuming the input
++ * came from infocmp, which puts the data in a
++ * known order.
++ */
++ if (count_strs) {
++ my_strvalues[count_strs] = empty;
++ my_strcodes[count_strs++] = &my_blob[j];
++ } else if (count_nums) {
++ my_numvalues[count_nums] = empty;
++ my_numcodes[count_nums++] = &my_blob[j];
++ } else {
++ my_boolcodes[count_bools++] = &my_blob[j];
++ }
++ } else {
++ my_boolcodes[count_bools++] = &my_blob[j];
++ }
++ j++;
++ break;
++ }
++ }
++ break;
++ case pNumber:
++ if (!isdigit(UChar(my_blob[j]))) {
++ --j;
++ state = pDefault;
++ }
++ break;
++ case pString:
++ switch (my_blob[j]) {
++ case '\\':
++ if (my_blob[j + 1] == '\0') {
++ state = pDefault;
++ continue;
++ } else {
++ ++j;
++ }
++ break;
++ case '\n':
++ state = pNewline;
++ continue;
++ case ':':
++ --j;
++ state = pDefault;
++ break;
++ }
++ break;
++ case pNewline:
++ case pComment:
++ case pDescription:
++ default:
++ break;
+ }
+ }
++ my_boolcodes[count_bools] = 0;
++ my_numcodes[count_nums] = 0;
++ my_numvalues[count_nums] = 0;
++ my_strcodes[count_strs] = 0;
++ my_strvalues[count_strs] = 0;
++
++#if 0
++ printf("bools:%d\n", (int) count_bools);
++ for (j = 0; my_boolcodes[j]; ++j)
++ printf("%5d:%s\n", (int) j, my_boolcodes[j]);
++
++ printf("numbers:%d\n", (int) count_nums);
++ for (j = 0; my_numcodes[j]; ++j)
++ printf("%5d:%s(%s)\n", (int) j, my_numcodes[j], my_numvalues[j]);
++
++ printf("strings:%d\n", (int) count_strs);
++ for (j = 0; my_strcodes[j]; ++j)
++ printf("%5d:%s(%s)\n", (int) j, my_strcodes[j], my_strvalues[j]);
++#endif
++}
+
+- if (s_opt) {
+- for (n = 0;; ++n) {
+- cap = strcodes[n];
+- if (cap == 0)
+- break;
+- dumpit(cap);
++#if USE_CODE_LISTS
++static char **
++copy_code_list(NCURSES_CONST char *const *list)
++{
++ int pass;
++ size_t count;
++ size_t length = 1;
++ char **result = 0;
++ char *blob = 0;
++ char *unused = 0;
++
++ for (pass = 0; pass < 2; ++pass) {
++ for (count = 0; list[count] != 0; ++count) {
++ size_t chunk = strlen(list[count]) + 1;
++ if (pass == 0) {
++ length += chunk;
++ } else {
++ result[count] = unused;
++ strcpy(unused, list[count]);
++ unused += chunk;
++ }
++ }
++ if (pass == 0) {
++ blob = malloc(length);
++ result = typeCalloc(char *, count + 1);
++ unused = blob;
++ if (blob == 0 || result == 0)
++ failed("copy_code_list failed");
+ }
+ }
++
++ return result;
+ }
++#endif
+
+ static void
+ usage(void)
+ {
+ static const char *msg[] =
+ {
+- "Usage: demo_terminfo [options] [terminal]",
++ "Usage: demo_termcap [options] [terminal]",
+ "",
+ "If no options are given, print all (boolean, numeric, string)",
+ "capabilities for the given terminal, using short names.",
+@@ -212,9 +705,16 @@
+ "Options:",
+ " -a try all names, print capabilities found",
+ " -b print boolean-capabilities",
++ " -d LIST colon-separated list of databases to use",
++ " -e NAME environment variable to set with -d option",
++ " -i NAME terminal description to use as names for \"-a\" option, etc.",
+ " -n print numeric-capabilities",
++ " -q quiet (prints only counts)",
+ " -r COUNT repeat for given count",
+ " -s print string-capabilities",
++#ifdef NCURSES_VERSION
++ " -x print extended capabilities",
++#endif
+ };
+ unsigned n;
+ for (n = 0; n < SIZEOF(msg); ++n) {
+@@ -222,7 +722,6 @@
+ }
+ ExitProgram(EXIT_FAILURE);
+ }
+-#endif
+
+ int
+ main(int argc, char *argv[])
+@@ -230,12 +729,12 @@
+ int n;
+ char *name;
+ bool a_opt = FALSE;
++ char *input_name = 0;
+
+-#if USE_CODE_LISTS
+ int repeat;
+ int r_opt = 1;
+
+- while ((n = getopt(argc, argv, "abnr:s")) != -1) {
++ while ((n = getopt(argc, argv, "abd:e:i:nqr:sxy")) != -1) {
+ switch (n) {
+ case 'a':
+ a_opt = TRUE;
+@@ -243,9 +742,21 @@
+ case 'b':
+ b_opt = TRUE;
+ break;
++ case 'd':
++ d_opt = optarg;
++ break;
++ case 'e':
++ e_opt = optarg;
++ break;
++ case 'i':
++ input_name = optarg;
++ break;
+ case 'n':
+ n_opt = TRUE;
+ break;
++ case 'q':
++ q_opt = TRUE;
++ break;
+ case 'r':
+ if ((r_opt = atoi(optarg)) <= 0)
+ usage();
+@@ -253,49 +764,79 @@
+ case 's':
+ s_opt = TRUE;
+ break;
++#if NCURSES_XNAMES
++ case 'x':
++ x_opt = TRUE;
++ break;
++ case 'y':
++ y_opt = TRUE;
++ x_opt = TRUE;
++ break;
++#endif
+ default:
+ usage();
+ break;
+ }
+ }
+
++#if HAVE_USE_EXTENDED_NAMES
++ use_extended_names(x_opt);
++#endif
++
+ if (!(b_opt || n_opt || s_opt)) {
+ b_opt = TRUE;
+ n_opt = TRUE;
+ s_opt = TRUE;
+ }
+-#else
+- a_opt = TRUE;
+-#endif
++
++ make_dblist();
+
+ if (a_opt) {
+- if (optind < argc) {
+- for (n = optind; n < argc; ++n) {
+- brute_force(argv[n]);
++ for (repeat = 0; repeat < r_opt; ++repeat) {
++ if (optind < argc) {
++ for (n = optind; n < argc; ++n) {
++ brute_force(argv[n]);
++ }
++ } else if ((name = getenv("TERM")) != 0) {
++ brute_force(name);
++ } else {
++ static char dumb[] = "dumb";
++ brute_force(dumb);
+ }
+- } else if ((name = getenv("TERM")) != 0) {
+- brute_force(name);
+- } else {
+- static char dumb[] = "dumb";
+- brute_force(dumb);
+ }
+- }
++ } else {
++ if (input_name != 0) {
++ parse_description(input_name);
++ }
+ #if USE_CODE_LISTS
+- else {
++ else {
++ my_boolcodes = copy_code_list(boolcodes);
++ my_numcodes = copy_code_list(numcodes);
++ my_strcodes = copy_code_list(strcodes);
++ }
++#else
++ else {
++ failed("no capability-lists available (use -i option)");
++ }
++#endif /* USE_CODE_LISTS */
+ for (repeat = 0; repeat < r_opt; ++repeat) {
+ if (optind < argc) {
+ for (n = optind; n < argc; ++n) {
+- demo_terminfo(argv[n]);
++ demo_termcap(argv[n]);
+ }
+ } else if ((name = getenv("TERM")) != 0) {
+- demo_terminfo(name);
++ demo_termcap(name);
+ } else {
+ static char dumb[] = "dumb";
+- demo_terminfo(dumb);
++ demo_termcap(dumb);
+ }
+ }
+ }
+-#endif
++
++ printf("%ld values (%ld booleans, %ld numbers, %ld strings)\n",
++ total_values, total_b_values, total_n_values, total_s_values);
++
++ free_dblist();
+
+ ExitProgram(EXIT_SUCCESS);
+ }
+@@ -305,7 +846,6 @@
+ main(int argc GCC_UNUSED,
+ char *argv[]GCC_UNUSED)
+ {
+- printf("This program requires termcap\n");
+- exit(EXIT_FAILURE);
++ failed("This program requires termcap");
+ }
+ #endif
+Index: test/demo_terminfo.c
+Prereq: 1.9
+--- ncurses-5.9/test/demo_terminfo.c 2010-11-28 00:15:27.000000000 +0000
++++ ncurses-5.9-20141206/test/demo_terminfo.c 2014-10-10 00:35:28.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,123 +29,305 @@
+ /*
+ * Author: Thomas E. Dickey
+ *
+- * $Id: demo_terminfo.c,v 1.9 2010/11/28 00:15:27 tom Exp $
++ * $Id: demo_terminfo.c,v 1.38 2014/10/10 00:35:28 tom Exp $
+ *
+ * A simple demo of the terminfo interface.
+ */
+ #define USE_TINFO
+ #include <test.priv.h>
++#include <sys/stat.h>
+
+-#ifdef NCURSES_VERSION
+-#if !(defined(HAVE_TERM_ENTRY_H) && HAVE_TERM_ENTRY_H)
+-#undef NCURSES_XNAMES
+-#define NCURSES_XNAMES 0
+-#endif
+ #if NCURSES_XNAMES
++#if HAVE_TERM_ENTRY_H
+ #include <term_entry.h>
++#else
++#undef NCURSES_XNAMES
++#define NCURSES_XNAMES 0
+ #endif
+ #endif
+
++static void
++failed(const char *msg)
++{
++ fprintf(stderr, "%s\n", msg);
++ ExitProgram(EXIT_FAILURE);
++}
++
+ #if HAVE_TIGETSTR
++
+ #if defined(HAVE_CURSES_DATA_BOOLNAMES) || defined(DECL_CURSES_DATA_BOOLNAMES)
++#define USE_CODE_LISTS 1
++#else
++#define USE_CODE_LISTS 0
++#endif
+
++static bool a_opt = FALSE;
+ static bool b_opt = FALSE;
+ static bool f_opt = FALSE;
+ static bool n_opt = FALSE;
++static bool q_opt = FALSE;
+ static bool s_opt = FALSE;
+ static bool x_opt = FALSE;
++static bool y_opt = FALSE;
++
++static char *d_opt;
++static char *e_opt;
++static char **db_list;
++static int db_item;
++
++static char *my_blob;
++static char **my_boolcodes;
++static char **my_numcodes;
++static char **my_numvalues;
++static char **my_strcodes;
++static char **my_strvalues;
++
++static long total_values;
++static long total_b_values;
++static long total_n_values;
++static long total_s_values;
+
+ #define FCOLS 8
+ #define FNAME(type) "%s %-*s = ", #type, FCOLS
+
++static char *
++make_dbitem(char *p, char *q)
++{
++ char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q));
++ sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q);
++ return result;
++}
++
++static void
++make_dblist(void)
++{
++ if (d_opt && e_opt) {
++ int pass;
++
++ for (pass = 0; pass < 2; ++pass) {
++ char *p, *q;
++ size_t count = 0;
++
++ for (p = q = d_opt; *p != '\0'; ++p) {
++ if (*p == ':') {
++ if (p != q + 1) {
++ if (pass) {
++ db_list[count] = make_dbitem(p, q);
++ }
++ count++;
++ }
++ q = p + 1;
++ }
++ }
++ if (p != q + 1) {
++ if (pass) {
++ db_list[count] = make_dbitem(p, q);
++ }
++ count++;
++ }
++ if (!pass) {
++ db_list = typeCalloc(char *, count + 1);
++ }
++ }
++ }
++}
++
++static char *
++next_dbitem(void)
++{
++ char *result = 0;
++
++ if (db_list) {
++ if ((result = db_list[db_item]) == 0) {
++ db_item = 0;
++ result = db_list[0];
++ } else {
++ db_item++;
++ }
++ }
++ printf("** %s\n", result);
++ return result;
++}
++
++#ifdef NO_LEAKS
++static void
++free_dblist(void)
++{
++ if (db_list) {
++ int n;
++ for (n = 0; db_list[n]; ++n)
++ free(db_list[n]);
++ free(db_list);
++ db_list = 0;
++ }
++}
++#endif
++
+ static void
+ dumpit(NCURSES_CONST char *cap)
+ {
+- /*
+- * One of the limitations of the termcap interface is that the library
+- * cannot determine the size of the buffer passed via tgetstr(), nor the
+- * amount of space remaining. This demo simply reuses the whole buffer
+- * for each call; a normal termcap application would try to use the buffer
+- * to hold all of the strings extracted from the terminal entry.
+- */
+ const char *str;
+ int num;
+
+ if ((str = tigetstr(cap)) != 0 && (str != (char *) -1)) {
+- /*
+- * Note that the strings returned are mostly terminfo format, since
+- * ncurses does not convert except for a handful of special cases.
+- */
+- printf(FNAME(str), cap);
+- while (*str != 0) {
+- int ch = UChar(*str++);
+- switch (ch) {
+- case '\177':
+- fputs("^?", stdout);
+- break;
+- case '\033':
+- fputs("\\E", stdout);
+- break;
+- case '\b':
+- fputs("\\b", stdout);
+- break;
+- case '\f':
+- fputs("\\f", stdout);
+- break;
+- case '\n':
+- fputs("\\n", stdout);
+- break;
+- case '\r':
+- fputs("\\r", stdout);
+- break;
+- case ' ':
+- fputs("\\s", stdout);
+- break;
+- case '\t':
+- fputs("\\t", stdout);
+- break;
+- case '^':
+- fputs("\\^", stdout);
+- break;
+- case ':':
+- fputs("\\072", stdout);
+- break;
+- case '\\':
+- fputs("\\\\", stdout);
+- break;
+- default:
+- if (isgraph(ch))
+- fputc(ch, stdout);
+- else if (ch < 32)
+- printf("^%c", ch + '@');
+- else
+- printf("\\%03o", ch);
+- break;
++ total_values++;
++ total_s_values++;
++ if (!q_opt) {
++ printf(FNAME(str), cap);
++ while (*str != 0) {
++ int ch = UChar(*str++);
++ switch (ch) {
++ case '\177':
++ fputs("^?", stdout);
++ break;
++ case '\033':
++ fputs("\\E", stdout);
++ break;
++ case '\b':
++ fputs("\\b", stdout);
++ break;
++ case '\f':
++ fputs("\\f", stdout);
++ break;
++ case '\n':
++ fputs("\\n", stdout);
++ break;
++ case '\r':
++ fputs("\\r", stdout);
++ break;
++ case ' ':
++ fputs("\\s", stdout);
++ break;
++ case '\t':
++ fputs("\\t", stdout);
++ break;
++ case '^':
++ fputs("\\^", stdout);
++ break;
++ case ':':
++ fputs("\\072", stdout);
++ break;
++ case '\\':
++ fputs("\\\\", stdout);
++ break;
++ default:
++ if (isgraph(ch))
++ fputc(ch, stdout);
++ else if (ch < 32)
++ printf("^%c", ch + '@');
++ else
++ printf("\\%03o", ch);
++ break;
++ }
+ }
++ printf("\n");
+ }
+- printf("\n");
+ } else if ((num = tigetnum(cap)) >= 0) {
+- printf(FNAME(num), cap);
+- printf(" %d\n", num);
++ total_values++;
++ total_n_values++;
++ if (!q_opt) {
++ printf(FNAME(num), cap);
++ printf(" %d\n", num);
++ }
+ } else if ((num = tigetflag(cap)) >= 0) {
+- printf(FNAME(flg), cap);
+- printf("%s\n", num ? "true" : "false");
++ total_values++;
++ total_b_values++;
++ if (!q_opt) {
++ printf(FNAME(flg), cap);
++ printf("%s\n", num ? "true" : "false");
++ }
+ }
+- fflush(stdout);
++
++ if (!q_opt)
++ fflush(stdout);
+ }
+
++#define isCapName(c) (isalnum(UChar(c)) || ((c) == '_'))
++#define LegalItem(c,n) (n)
++
++static void
++brute_force(const char *name)
++{
++#define MAX_FORCE 5 /* omit "colors", since CPU-time is a problem */
++ static const char legal[] = "\
++0123456789\
++ABCDEFGHIJKLMNOPQRSTUVWXYZ\
++abcdefghijklmnopqrstuvwxyz_";
++ int length;
++ int j, k;
++ bool carry;
++ bool changed;
++ char cap[MAX_FORCE + 1];
++ int item[MAX_FORCE + 1];
++
++ if (db_list) {
++ putenv(next_dbitem());
++ }
++ if (!q_opt)
++ printf("Terminal type \"%s\"\n", name);
++ setupterm((NCURSES_CONST char *) name, 1, (int *) 0);
++
++ for (length = 1; length <= MAX_FORCE; ++length) {
++ /* set all digits to zeros */
++ for (j = 0; j < length; ++j) {
++ item[j] = LegalItem(j, 0);
++ }
++
++ do {
++ changed = FALSE;
++ /* copy digits to cap-name */
++ for (j = 0; j < length; ++j) {
++ cap[j] = legal[item[j]];
++ }
++ cap[length] = '\0';
++ dumpit(cap);
++
++ k = length - 1;
++ do {
++ carry = FALSE;
++ for (; k >= 0; --k) {
++ item[k] += 1;
++ if (legal[item[k]]) {
++ changed = TRUE;
++ break;
++ }
++ if (k > 0 &&
++ legal[item[k - 1] + 1]) {
++ for (j = k; j < length; ++j) {
++ item[j] = LegalItem(j, 0);
++ }
++ carry = TRUE;
++ changed = TRUE;
++ }
++ }
++ } while (carry);
++ } while (changed);
++ }
++ del_curterm(cur_term);
++}
++
++#if USE_CODE_LISTS
++#define fullname(type,n) f_opt ? type##fnames[n] : my_##type##codes[n]
++#else
++#define fullname(type,n) my_##type##codes[n]
++#endif
++
+ static void
+ demo_terminfo(char *name)
+ {
+ unsigned n;
+ NCURSES_CONST char *cap;
+
+- printf("Terminal type \"%s\"\n", name);
++ if (db_list) {
++ putenv(next_dbitem());
++ }
++ if (!q_opt)
++ printf("Terminal type \"%s\"\n", name);
+ setupterm(name, 1, (int *) 0);
+
+ if (b_opt) {
+ for (n = 0;; ++n) {
+- cap = f_opt ? boolfnames[n] : boolnames[n];
++ cap = fullname(bool, n);
+ if (cap == 0)
+ break;
+ dumpit(cap);
+@@ -154,7 +336,7 @@
+
+ if (n_opt) {
+ for (n = 0;; ++n) {
+- cap = f_opt ? numfnames[n] : numnames[n];
++ cap = fullname(num, n);
+ if (cap == 0)
+ break;
+ dumpit(cap);
+@@ -163,16 +345,16 @@
+
+ if (s_opt) {
+ for (n = 0;; ++n) {
+- cap = f_opt ? strfnames[n] : strnames[n];
++ cap = fullname(str, n);
+ if (cap == 0)
+ break;
+ dumpit(cap);
+ }
+ }
+ #ifdef NCURSES_VERSION
+- if (x_opt) {
++ if (x_opt && (my_blob == 0)) {
+ int mod;
+- if (f_opt) {
++ if (y_opt) {
+ #if NCURSES_XNAMES
+ TERMTYPE *term = &(cur_term->type);
+ if (term != 0
+@@ -191,7 +373,7 @@
+ }
+ #endif
+ } else {
+- char temp[10];
++ char temp[80];
+ static const char *xterm_keys[] =
+ {
+ "kDC", "kDN", "kEND", "kHOM", "kIC",
+@@ -199,18 +381,368 @@
+ };
+ for (n = 0; n < SIZEOF(xterm_keys); ++n) {
+ for (mod = 0; mod < 8; ++mod) {
+- if (mod == 0)
+- strcpy(temp, xterm_keys[n]);
+- else
+- sprintf(temp, "%s%d", xterm_keys[n], mod);
++ if (mod == 0) {
++ /* these happen to be standard - avoid duplicates */
++ if (!strcmp(xterm_keys[n], "kDC") ||
++ !strcmp(xterm_keys[n], "kEND") ||
++ !strcmp(xterm_keys[n], "kHOM") ||
++ !strcmp(xterm_keys[n], "kLFT") ||
++ !strcmp(xterm_keys[n], "kRIT")) {
++ continue;
++ }
++ sprintf(temp, "%.*s", 8, xterm_keys[n]);
++ } else {
++ sprintf(temp, "%.*s%d", 8, xterm_keys[n], mod);
++ }
+ dumpit(temp);
+ }
+ }
+ }
+ }
+ #endif
++ del_curterm(cur_term);
++}
++
++typedef enum {
++ pDefault = 0
++ ,pComment
++ ,pDescription
++ ,pEscaped
++ ,pNewline
++ ,pName
++ ,pNumber
++ ,pString
++} STATE;
++
++static void
++parse_description(const char *input_name)
++{
++ static char empty[1];
++
++ FILE *fp;
++ struct stat sb;
++ size_t count_bools = 0;
++ size_t count_nums = 0;
++ size_t count_strs = 0;
++ size_t len;
++ size_t j, k, jl;
++ STATE state;
++
++ if (stat(input_name, &sb) != 0
++ || (sb.st_mode & S_IFMT) != S_IFREG) {
++ failed("input is not a file");
++ }
++
++ if (sb.st_size == 0) {
++ failed("input is empty");
++ }
++
++ /*
++ * None of the arrays could be larger than the input-file, and since it
++ * is small, just allocate the maximum for simplicity.
++ */
++ if ((my_blob = malloc((size_t) sb.st_size + 1)) == 0 ||
++ (my_boolcodes = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_numcodes = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_numvalues = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_strcodes = typeCalloc(char *, sb.st_size)) == 0 ||
++ (my_strvalues = typeCalloc(char *, sb.st_size)) == 0) {
++ failed("cannot allocate memory for input-file");
++ }
++
++ if ((fp = fopen(input_name, "r")) == 0)
++ failed("cannot open input-file");
++ len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
++ my_blob[sb.st_size] = '\0';
++ fclose(fp);
++
++ /*
++ * First, get rid of comments and escaped newlines, as well as repeated
++ * colons to construct a canonical entry.
++ */
++ state = pNewline;
++ for (j = k = 0; j < len; ++j) {
++ int ch = my_blob[j];
++ if (ch == '\t') {
++ ch = ' ';
++ }
++ switch (state) {
++ case pNewline:
++ if (ch == ' ') {
++ continue;
++ }
++ if (ch == '#') {
++ state = pComment;
++ continue;
++ }
++ state = pDefault;
++ /* FALLTHRU */
++ case pDefault:
++ switch (ch) {
++ case '|':
++ state = pDescription;
++ continue;
++ case '\\':
++ state = pEscaped;
++ continue;
++ case '\n':
++ state = pNewline;
++ continue;
++ case ' ':
++ break;
++ case ',':
++ my_blob[k++] = (char) ch;
++ break;
++ default:
++ if (isalpha(UChar(ch)))
++ state = pName;
++ else
++ fprintf(stderr, "OOPS @%d:%.20s\n", __LINE__, my_blob + j);
++ my_blob[k++] = (char) ch;
++ break;
++ }
++ break;
++ case pComment:
++ if (ch == '\n')
++ state = pNewline;
++ break;
++ case pDescription:
++ switch (ch) {
++ case ',':
++ state = pDefault;
++ break;
++ case '\n':
++ state = pNewline;
++ break;
++ }
++ break;
++ case pEscaped:
++ if (ch != '\n') {
++ my_blob[k++] = (char) ch;
++ state = pDefault;
++ } else {
++ state = pNewline;
++ }
++ break;
++ case pName:
++ switch (ch) {
++ case '\n':
++ state = pNewline;
++ continue;
++ case ' ':
++ case ',':
++ state = pDefault;
++ break;
++ case '#':
++ state = pNumber;
++ break;
++ case '=':
++ state = pString;
++ break;
++ case '|':
++ state = pDescription;
++ continue;
++ }
++ my_blob[k++] = (char) ch;
++ break;
++ case pNumber:
++ switch (ch) {
++ case '\n':
++ state = pNewline;
++ continue;
++ case ',':
++ state = pDefault;
++ break;
++ case ' ':
++ state = pDefault;
++ continue;
++ }
++ my_blob[k++] = (char) ch;
++ break;
++ case pString:
++ switch (ch) {
++ case '\n':
++ state = pNewline;
++ break;
++ case ',':
++ state = pDefault;
++ my_blob[k++] = (char) ch;
++ break;
++ default:
++ my_blob[k++] = (char) ch;
++ break;
++ }
++ break;
++ default:
++ /* not used */
++ break;
++ }
++ }
++ my_blob[k] = '\0';
++
++ /*
++ * Then, parse what's left, making indexes of the names and values.
++ */
++ state = pDefault;
++ for (j = 0; my_blob[j] != '\0'; ++j) {
++ switch (state) {
++ case pDefault:
++ switch (my_blob[j]) {
++ case '\\':
++ state = pEscaped;
++ break;
++ case ',':
++ my_blob[j] = '\0';
++ if (my_blob[j + 1] != '\0' && my_blob[j + 1] != ',')
++ state = pName;
++ break;
++ case ' ':
++ break;
++ default:
++ break;
++ }
++ case pEscaped:
++ break;
++ case pName:
++ state = pDefault;
++ if (isalpha(UChar(my_blob[j]))) {
++ for (jl = 1; isalnum(UChar(my_blob[j + jl])); ++jl) {
++ ;
++ }
++ } else {
++ jl = 0;
++ }
++ if (jl != 0) {
++ switch (my_blob[j + jl]) {
++ case '#':
++ my_numvalues[count_nums] = &my_blob[j + jl + 1];
++ my_numcodes[count_nums++] = &my_blob[j];
++ my_blob[j + jl] = '\0';
++ state = pNumber;
++ j += jl;
++ break;
++ case '=':
++ my_strvalues[count_strs] = &my_blob[j + jl + 1];
++ my_strcodes[count_strs++] = &my_blob[j];
++ my_blob[j + jl] = '\0';
++ state = pString;
++ j += jl;
++ break;
++ default:
++ if (my_blob[j + jl] == '@') {
++ /*
++ * We cannot get the type for a cancelled item
++ * directly, but can infer it assuming the input
++ * came from infocmp, which puts the data in a
++ * known order.
++ */
++ if (count_strs) {
++ my_strvalues[count_strs] = empty;
++ my_strcodes[count_strs++] = &my_blob[j];
++ } else if (count_nums) {
++ my_numvalues[count_nums] = empty;
++ my_numcodes[count_nums++] = &my_blob[j];
++ } else {
++ my_boolcodes[count_bools++] = &my_blob[j];
++ }
++ my_blob[j + jl] = '\0';
++ j += jl + 1;
++ } else {
++ my_boolcodes[count_bools++] = &my_blob[j];
++ my_blob[j + jl] = '\0';
++ j += jl;
++ }
++ state = (isCapName(my_blob[j + 1])
++ ? pName
++ : pDefault);
++ break;
++ }
++ }
++ break;
++ case pNumber:
++ if (!isdigit(UChar(my_blob[j]))) {
++ --j;
++ state = pDefault;
++ }
++ break;
++ case pString:
++ switch (my_blob[j]) {
++ case '\\':
++ if (my_blob[j + 1] != '\0') {
++ ++j;
++ } else {
++ --j;
++ state = pDefault;
++ }
++ break;
++ case ',':
++ --j;
++ state = pDefault;
++ break;
++ }
++ break;
++ case pNewline:
++ case pComment:
++ case pDescription:
++ default:
++ break;
++ }
++ }
++ my_boolcodes[count_bools] = 0;
++ my_numcodes[count_nums] = 0;
++ my_numvalues[count_nums] = 0;
++ my_strcodes[count_strs] = 0;
++ my_strvalues[count_strs] = 0;
++
++#if 0
++ printf("# bools:%d\n", (int) count_bools);
++ for (j = 0; my_boolcodes[j]; ++j)
++ printf("\t%s,\n", my_boolcodes[j]);
++
++ printf("# numbers:%d\n", (int) count_nums);
++ for (j = 0; my_numcodes[j]; ++j)
++ printf("\t%s#%s,\n", my_numcodes[j], my_numvalues[j]);
++
++ printf("# strings:%d\n", (int) count_strs);
++ for (j = 0; my_strcodes[j]; ++j)
++ printf("\t%s=%s,\n", my_strcodes[j], my_strvalues[j]);
++#endif
++}
++
++#if USE_CODE_LISTS
++static char **
++copy_code_list(NCURSES_CONST char *const *list)
++{
++ int pass;
++ size_t count;
++ size_t length = 1;
++ char **result = 0;
++ char *blob = 0;
++ char *unused = 0;
++
++ for (pass = 0; pass < 2; ++pass) {
++ for (count = 0; list[count] != 0; ++count) {
++ size_t chunk = strlen(list[count]) + 1;
++ if (pass == 0) {
++ length += chunk;
++ } else {
++ result[count] = unused;
++ strcpy(unused, list[count]);
++ unused += chunk;
++ }
++ }
++ if (pass == 0) {
++ blob = malloc(length);
++ result = typeCalloc(char *, count + 1);
++ unused = blob;
++ if (blob == 0 || result == 0)
++ failed("copy_code_list failed");
++ }
++ }
+
++ return result;
+ }
++#endif
+
+ static void
+ usage(void)
+@@ -223,13 +755,19 @@
+ "capabilities for the given terminal, using short names.",
+ "",
+ "Options:",
++ " -a try all names, print capabilities found",
+ " -b print boolean-capabilities",
++ " -d LIST colon-separated list of databases to use",
++ " -e NAME environment variable to set with -d option",
+ " -f print full names",
++ " -i NAME terminal description to use as names for \"-a\" option",
+ " -n print numeric-capabilities",
++ " -q quiet (prints only counts)",
+ " -r COUNT repeat for given count",
+ " -s print string-capabilities",
+ #ifdef NCURSES_VERSION
+ " -x print extended capabilities",
++ " -y direct-lookup names of extended capabilities",
+ #endif
+ };
+ unsigned n;
+@@ -246,18 +784,34 @@
+ int repeat;
+ char *name;
+ int r_opt = 1;
++ char *input_name = 0;
+
+- while ((n = getopt(argc, argv, "bfnr:sx")) != -1) {
++ while ((n = getopt(argc, argv, "abd:e:fi:nqr:sxy")) != -1) {
+ switch (n) {
++ case 'a':
++ a_opt = TRUE;
++ break;
+ case 'b':
+ b_opt = TRUE;
+ break;
++ case 'd':
++ d_opt = optarg;
++ break;
++ case 'e':
++ e_opt = optarg;
++ break;
+ case 'f':
+ f_opt = TRUE;
+ break;
++ case 'i':
++ input_name = optarg;
++ break;
+ case 'n':
+ n_opt = TRUE;
+ break;
++ case 'q':
++ q_opt = TRUE;
++ break;
+ case 'r':
+ if ((r_opt = atoi(optarg)) <= 0)
+ usage();
+@@ -268,7 +822,10 @@
+ #ifdef NCURSES_VERSION
+ case 'x':
+ x_opt = TRUE;
+- use_extended_names(TRUE);
++ break;
++ case 'y':
++ y_opt = TRUE;
++ x_opt = TRUE;
+ break;
+ #endif
+ default:
+@@ -277,36 +834,78 @@
+ }
+ }
+
+- if (!(b_opt || n_opt || s_opt || x_opt)) {
++#if HAVE_USE_EXTENDED_NAMES
++ use_extended_names(x_opt);
++#endif
++
++ if (!(b_opt || n_opt || s_opt)) {
+ b_opt = TRUE;
+ n_opt = TRUE;
+ s_opt = TRUE;
+ }
+
+- for (repeat = 0; repeat < r_opt; ++repeat) {
+- if (optind < argc) {
+- for (n = optind; n < argc; ++n) {
+- demo_terminfo(argv[n]);
++ make_dblist();
++
++ if (a_opt) {
++ for (repeat = 0; repeat < r_opt; ++repeat) {
++ if (optind < argc) {
++ for (n = optind; n < argc; ++n) {
++ brute_force(argv[n]);
++ }
++ } else if ((name = getenv("TERM")) != 0) {
++ brute_force(name);
++ } else {
++ static char dumb[] = "dumb";
++ brute_force(dumb);
++ }
++ }
++ } else {
++ if (input_name != 0) {
++ parse_description(input_name);
++ }
++#if USE_CODE_LISTS
++ else {
++ my_boolcodes = copy_code_list(boolnames);
++ my_numcodes = copy_code_list(numnames);
++ my_strcodes = copy_code_list(strnames);
++ }
++#else
++ else {
++ failed("no capability-lists available (use -i option)");
++ }
++#endif /* USE_CODE_LISTS */
++ for (repeat = 0; repeat < r_opt; ++repeat) {
++ if (optind < argc) {
++ for (n = optind; n < argc; ++n) {
++ demo_terminfo(argv[n]);
++ }
++ } else if ((name = getenv("TERM")) != 0) {
++ demo_terminfo(name);
++ } else {
++ static char dumb[] = "dumb";
++ demo_terminfo(dumb);
+ }
+- } else if ((name = getenv("TERM")) != 0) {
+- demo_terminfo(name);
+- } else {
+- static char dumb[] = "dumb";
+- demo_terminfo(dumb);
+ }
+ }
+
++ printf("%ld values (%ld booleans, %ld numbers, %ld strings)\n",
++ total_values, total_b_values, total_n_values, total_s_values);
++
++#ifdef NO_LEAKS
++ free_dblist();
++ if (my_blob != 0) {
++ free(my_blob);
++ free(my_boolcodes);
++ free(my_numcodes);
++ free(my_numvalues);
++ free(my_strcodes);
++ free(my_strvalues);
++ }
++#endif
++
+ ExitProgram(EXIT_SUCCESS);
+ }
+
+-#else
+-int
+-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+-{
+- printf("This program requires the terminfo arrays\n");
+- ExitProgram(EXIT_FAILURE);
+-}
+-#endif
+ #else /* !HAVE_TIGETSTR */
+ int
+ main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+Index: test/ditto.c
+Prereq: 1.40
+--- ncurses-5.9/test/ditto.c 2010-11-14 01:06:47.000000000 +0000
++++ ncurses-5.9-20141206/test/ditto.c 2012-11-24 20:16:18.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /*
+ * Author: Thomas E. Dickey (1998-on)
+ *
+- * $Id: ditto.c,v 1.40 2010/11/14 01:06:47 tom Exp $
++ * $Id: ditto.c,v 1.42 2012/11/24 20:16:18 tom Exp $
+ *
+ * The program illustrates how to set up multiple screens from a single
+ * program.
+@@ -80,6 +80,7 @@
+ int which1; /* this screen's index in DITTO[] array */
+ int length; /* length of windows[] and peeks[] */
+ char **titles; /* per-window titles */
++ WINDOW **parents; /* display boxes around each screen's data */
+ WINDOW **windows; /* display data from each screen */
+ PEEK *peeks; /* indices for each screen's fifo */
+ FIFO fifo; /* fifo for this screen */
+@@ -98,6 +99,9 @@
+ DITTO *ditto; /* data for all screens */
+ } DDATA;
+
++static void failed(const char *) GCC_NORETURN;
++static void usage(void) GCC_NORETURN;
++
+ static void
+ failed(const char *s)
+ {
+@@ -201,6 +205,7 @@
+ scrollok(stdscr, TRUE);
+ box(stdscr, 0, 0);
+
++ target->parents = typeCalloc(WINDOW *, (size_t) target->length);
+ target->windows = typeCalloc(WINDOW *, (size_t) target->length);
+ target->peeks = typeCalloc(PEEK, (size_t) target->length);
+
+@@ -220,6 +225,7 @@
+ nodelay(inner, TRUE);
+ #endif
+
++ target->parents[k] = outer;
+ target->windows[k] = inner;
+ }
+ doupdate();
+Index: test/dots.c
+Prereq: 1.22
+--- ncurses-5.9/test/dots.c 2010-11-14 01:00:02.000000000 +0000
++++ ncurses-5.9-20141206/test/dots.c 2013-09-28 22:12:09.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1999-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1999-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /*
+ * Author: Thomas E. Dickey <dickey@clark.net> 1999
+ *
+- * $Id: dots.c,v 1.22 2010/11/14 01:00:02 tom Exp $
++ * $Id: dots.c,v 1.25 2013/09/28 22:12:09 tom Exp $
+ *
+ * A simple demo of the terminfo interface.
+ */
+@@ -46,23 +46,23 @@
+ static long total_chars = 0;
+ static time_t started;
+
+-static int
+-outc(TPUTS_ARG c)
++static
++TPUTS_PROTO(outc, c)
+ {
+ int rc = c;
+
+ if (interrupted) {
+ char tmp = (char) c;
+- if (write(STDOUT_FILENO, &tmp, 1) == -1)
++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1)
+ rc = EOF;
+ } else {
+ rc = putc(c, stdout);
+ }
+- return rc;
++ TPUTS_RETURN(rc);
+ }
+
+ static bool
+-outs(char *s)
++outs(const char *s)
+ {
+ if (valid(s)) {
+ tputs(s, 1, outc);
+@@ -105,6 +105,7 @@
+ int x, y, z, p;
+ double r;
+ double c;
++ int my_colors;
+
+ CATCHALL(onsig);
+
+@@ -112,11 +113,12 @@
+ setupterm((char *) 0, 1, (int *) 0);
+ outs(clear_screen);
+ outs(cursor_invisible);
+- if (max_colors > 1) {
++ my_colors = max_colors;
++ if (my_colors > 1) {
+ if (!valid(set_a_foreground)
+ || !valid(set_a_background)
+ || (!valid(orig_colors) && !valid(orig_pair)))
+- max_colors = -1;
++ my_colors = -1;
+ }
+
+ r = (double) (lines - 4);
+@@ -129,8 +131,8 @@
+ p = (ranf() > 0.9) ? '*' : ' ';
+
+ tputs(tparm3(cursor_address, y, x), 1, outc);
+- if (max_colors > 0) {
+- z = (int) (ranf() * max_colors);
++ if (my_colors > 0) {
++ z = (int) (ranf() * my_colors);
+ if (ranf() > 0.01) {
+ tputs(tparm2(set_a_foreground, z), 1, outc);
+ } else {
+Index: test/dots_curses.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/dots_curses.c 2014-08-09 22:28:42.000000000 +0000
+@@ -0,0 +1,151 @@
++/****************************************************************************
++ * Copyright (c) 2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/*
++ * Author: Thomas E. Dickey
++ *
++ * $Id: dots_curses.c,v 1.3 2014/08/09 22:28:42 tom Exp $
++ *
++ * A simple demo of the curses interface used for comparison with termcap.
++ */
++#include <test.priv.h>
++
++#if !defined(__MINGW32__)
++#include <sys/time.h>
++#endif
++
++#include <time.h>
++
++#define valid(s) ((s != 0) && s != (char *)-1)
++
++static bool interrupted = FALSE;
++static long total_chars = 0;
++static time_t started;
++
++static void
++cleanup(void)
++{
++ endwin();
++
++ printf("\n\n%ld total chars, rate %.2f/sec\n",
++ total_chars,
++ ((double) (total_chars) / (double) (time((time_t *) 0) - started)));
++}
++
++static void
++onsig(int n GCC_UNUSED)
++{
++ interrupted = TRUE;
++}
++
++static double
++ranf(void)
++{
++ long r = (rand() & 077777);
++ return ((double) r / 32768.);
++}
++
++static int
++mypair(int fg, int bg)
++{
++ int pair = (fg * COLORS) + bg;
++ return (pair >= COLOR_PAIRS) ? -1 : pair;
++}
++
++static void
++set_colors(int fg, int bg)
++{
++ int pair = mypair(fg, bg);
++ if (pair > 0) {
++ attron(COLOR_PAIR(mypair(fg, bg)));
++ }
++}
++
++int
++main(int argc GCC_UNUSED,
++ char *argv[]GCC_UNUSED)
++{
++ int x, y, z, p;
++ int fg, bg;
++ double r;
++ double c;
++
++ CATCHALL(onsig);
++
++ srand((unsigned) time(0));
++
++ initscr();
++ if (has_colors()) {
++ start_color();
++ for (fg = 0; fg < COLORS; fg++) {
++ for (bg = 0; bg < COLORS; bg++) {
++ int pair = mypair(fg, bg);
++ if (pair > 0)
++ init_pair((short) pair, (short) fg, (short) bg);
++ }
++ }
++ }
++
++ r = (double) (LINES - 4);
++ c = (double) (COLS - 4);
++ started = time((time_t *) 0);
++
++ fg = COLOR_WHITE;
++ bg = COLOR_BLACK;
++ while (!interrupted) {
++ x = (int) (c * ranf()) + 2;
++ y = (int) (r * ranf()) + 2;
++ p = (ranf() > 0.9) ? '*' : ' ';
++
++ move(y, x);
++ if (has_colors()) {
++ z = (int) (ranf() * COLORS);
++ if (ranf() > 0.01) {
++ set_colors(fg = z, bg);
++ attron(COLOR_PAIR(mypair(fg, bg)));
++ } else {
++ set_colors(fg, bg = z);
++ napms(1);
++ }
++ } else {
++ if (ranf() <= 0.01) {
++ if (ranf() > 0.6) {
++ attron(A_REVERSE);
++ } else {
++ attroff(A_REVERSE);
++ }
++ napms(1);
++ }
++ }
++ addch((chtype) p);
++ refresh();
++ ++total_chars;
++ }
++ cleanup();
++ ExitProgram(EXIT_SUCCESS);
++}
+Index: test/dots_mvcur.c
+Prereq: 1.6
+--- ncurses-5.9/test/dots_mvcur.c 2010-11-14 01:00:44.000000000 +0000
++++ ncurses-5.9-20141206/test/dots_mvcur.c 2013-09-28 22:44:18.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2009,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /*
+ * Author: Thomas E. Dickey - 2007
+ *
+- * $Id: dots_mvcur.c,v 1.6 2010/11/14 01:00:44 tom Exp $
++ * $Id: dots_mvcur.c,v 1.10 2013/09/28 22:44:18 tom Exp $
+ *
+ * A simple demo of the terminfo interface, and mvcur.
+ */
+@@ -46,24 +46,24 @@
+ static long total_chars = 0;
+ static time_t started;
+
+-static int
+-outc(TPUTS_ARG c)
++static
++TPUTS_PROTO(outc, c)
+ {
+ int rc = c;
+
+ if (interrupted) {
+ char tmp = (char) c;
+- if (write(STDOUT_FILENO, &tmp, 1) == -1)
++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1)
+ rc = EOF;
+ } else {
+ if (putc(c, stdout) == EOF)
+ rc = EOF;
+ }
+- return rc;
++ TPUTS_RETURN(rc);
+ }
+
+ static bool
+-outs(char *s)
++outs(const char *s)
+ {
+ if (valid(s)) {
+ tputs(s, 1, outc);
+@@ -108,6 +108,7 @@
+ double r;
+ double c;
+ SCREEN *sp;
++ int my_colors;
+
+ CATCHALL(onsig);
+
+@@ -116,11 +117,12 @@
+ outs(clear_screen);
+ outs(cursor_home);
+ outs(cursor_invisible);
+- if (max_colors > 1) {
++ my_colors = max_colors;
++ if (my_colors > 1) {
+ if (!valid(set_a_foreground)
+ || !valid(set_a_background)
+ || (!valid(orig_colors) && !valid(orig_pair)))
+- max_colors = -1;
++ my_colors = -1;
+ }
+
+ r = (double) (lines - 4);
+@@ -137,8 +139,8 @@
+ y0 = y;
+ }
+
+- if (max_colors > 0) {
+- z = (int) (ranf() * max_colors);
++ if (my_colors > 0) {
++ z = (int) (ranf() * my_colors);
+ if (ranf() > 0.01) {
+ tputs(tparm2(set_a_foreground, z), 1, outc);
+ } else {
+@@ -155,6 +157,7 @@
+ }
+ }
+ outc(p);
++ ++x0;
+ fflush(stdout);
+ ++total_chars;
+ }
+Index: test/dots_termcap.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/dots_termcap.c 2014-09-25 09:00:56.000000000 +0000
+@@ -0,0 +1,254 @@
++/****************************************************************************
++ * Copyright (c) 2013 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/*
++ * Author: Thomas E. Dickey
++ *
++ * $Id: dots_termcap.c,v 1.8 2014/09/25 09:00:56 tom Exp $
++ *
++ * A simple demo of the termcap interface.
++ */
++#define USE_TINFO
++#include <test.priv.h>
++
++#if !defined(__MINGW32__)
++#include <sys/time.h>
++#endif
++
++#if HAVE_TGETENT
++
++#include <time.h>
++
++#define valid(s) ((s != 0) && s != (char *)-1)
++
++static bool interrupted = FALSE;
++static long total_chars = 0;
++static time_t started;
++
++static char *t_AB;
++static char *t_AF;
++static char *t_cl;
++static char *t_cm;
++static char *t_me;
++static char *t_mr;
++static char *t_oc;
++static char *t_op;
++static char *t_ve;
++static char *t_vi;
++
++static struct {
++ const char *name;
++ char **value;
++} my_caps[] = {
++
++ {
++ "AB", &t_AB
++ },
++ {
++ "AF", &t_AF
++ },
++ {
++ "cl", &t_cl
++ },
++ {
++ "cm", &t_cm
++ },
++ {
++ "me", &t_me
++ },
++ {
++ "mr", &t_mr
++ },
++ {
++ "oc", &t_oc
++ },
++ {
++ "op", &t_op
++ },
++ {
++ "ve", &t_ve
++ },
++ {
++ "vi", &t_vi
++ },
++};
++
++static
++TPUTS_PROTO(outc, c)
++{
++ int rc = c;
++
++ if (interrupted) {
++ char tmp = (char) c;
++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1)
++ rc = EOF;
++ } else {
++ rc = putc(c, stdout);
++ }
++ TPUTS_RETURN(rc);
++}
++
++static bool
++outs(char *s)
++{
++ if (valid(s)) {
++ tputs(s, 1, outc);
++ return TRUE;
++ }
++ return FALSE;
++}
++
++static void
++cleanup(void)
++{
++ outs(t_me);
++ if (!outs(t_oc))
++ outs(t_op);
++ outs(t_cl);
++ outs(t_ve);
++
++ printf("\n\n%ld total chars, rate %.2f/sec\n",
++ total_chars,
++ ((double) (total_chars) / (double) (time((time_t *) 0) - started)));
++}
++
++static void
++onsig(int n GCC_UNUSED)
++{
++ interrupted = TRUE;
++}
++
++static double
++ranf(void)
++{
++ long r = (rand() & 077777);
++ return ((double) r / 32768.);
++}
++
++static void
++my_napms(int ms)
++{
++#if defined(__MINGW32__) || !HAVE_GETTIMEOFDAY
++ Sleep((DWORD) ms);
++#else
++ struct timeval data;
++ data.tv_sec = 0;
++ data.tv_usec = ms * 1000;
++ select(0, NULL, NULL, NULL, &data);
++#endif
++}
++
++int
++main(int argc GCC_UNUSED,
++ char *argv[]GCC_UNUSED)
++{
++ int x, y, z, p;
++ int num_colors;
++ int num_lines;
++ int num_columns;
++ double r;
++ double c;
++ char buffer[1024];
++ char area[1024];
++ char *name;
++
++ CATCHALL(onsig);
++
++ srand((unsigned) time(0));
++
++ if ((name = getenv("TERM")) == 0) {
++ fprintf(stderr, "TERM is not set\n");
++ ExitProgram(EXIT_FAILURE);
++ } else if (tgetent(buffer, name) < 0) {
++ fprintf(stderr, "terminal description not found\n");
++ ExitProgram(EXIT_FAILURE);
++ } else {
++ size_t t;
++ char *ap = area;
++ for (t = 0; t < SIZEOF(my_caps); ++t) {
++ *(my_caps[t].value) = tgetstr((NCURSES_CONST char *)
++ my_caps[t].name, &ap);
++ }
++ }
++
++ num_colors = tgetnum("Co");
++ num_lines = tgetnum("li");
++ num_columns = tgetnum("co");
++
++ outs(t_cl);
++ outs(t_vi);
++ if (num_colors > 1) {
++ if (!valid(t_AF)
++ || !valid(t_AB)
++ || (!valid(t_oc) && !valid(t_op)))
++ num_colors = -1;
++ }
++
++ r = (double) (num_lines - 4);
++ c = (double) (num_columns - 4);
++ started = time((time_t *) 0);
++
++ while (!interrupted) {
++ x = (int) (c * ranf()) + 2;
++ y = (int) (r * ranf()) + 2;
++ p = (ranf() > 0.9) ? '*' : ' ';
++
++ tputs(tgoto(t_cm, x, y), 1, outc);
++ if (num_colors > 0) {
++ z = (int) (ranf() * num_colors);
++ if (ranf() > 0.01) {
++ tputs(tgoto(t_AF, 0, z), 1, outc);
++ } else {
++ tputs(tgoto(t_AB, 0, z), 1, outc);
++ my_napms(1);
++ }
++ } else if (valid(t_me)
++ && valid(t_mr)) {
++ if (ranf() <= 0.01) {
++ outs((ranf() > 0.6)
++ ? t_mr
++ : t_me);
++ my_napms(1);
++ }
++ }
++ outc(p);
++ fflush(stdout);
++ ++total_chars;
++ }
++ cleanup();
++ ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(int argc GCC_UNUSED,
++ char *argv[]GCC_UNUSED)
++{
++ fprintf(stderr, "This program requires termcap\n");
++ exit(EXIT_FAILURE);
++}
++#endif
+Index: test/echochar.c
+Prereq: 1.8
+--- ncurses-5.9/test/echochar.c 2010-11-14 01:00:44.000000000 +0000
++++ ncurses-5.9-20141206/test/echochar.c 2014-08-09 22:35:51.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: echochar.c,v 1.8 2010/11/14 01:00:44 tom Exp $
++ * $Id: echochar.c,v 1.10 2014/08/09 22:35:51 tom Exp $
+ *
+ * Demonstrate the echochar function (compare to dots.c).
+ * Thomas Dickey - 2006/11/4
+Index: test/edit_field.c
+Prereq: 1.17
+--- ncurses-5.9/test/edit_field.c 2011-01-15 18:15:11.000000000 +0000
++++ ncurses-5.9-20141206/test/edit_field.c 2014-09-05 08:39:52.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003-2008,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2003-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,11 +26,11 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: edit_field.c,v 1.17 2011/01/15 18:15:11 tom Exp $
++ * $Id: edit_field.c,v 1.24 2014/09/05 08:39:52 tom Exp $
+ *
+ * A wrapper for form_driver() which keeps track of the user's editing changes
+- * for each field, and makes the result available as a null-terminated string
+- * in field_buffer(field,1).
++ * for each field, and makes the resulting length available as a
++ * null-terminated string in field_buffer(field,1).
+ *
+ * Thomas Dickey - 2003/4/26.
+ */
+@@ -297,8 +297,54 @@
+ static void
+ inactive_field(FIELD * f)
+ {
+- FieldAttrs *ptr = (FieldAttrs *) field_userptr(f);
+- set_field_back(f, ptr->background);
++ set_field_back(f, field_attrs(f)->background);
++}
++
++FieldAttrs *
++field_attrs(FIELD * f)
++{
++ return (FieldAttrs *) field_userptr(f);
++}
++
++static int
++buffer_length(FIELD * f)
++{
++ return field_attrs(f)->row_lengths[0];
++}
++
++static void
++set_buffer_length(FIELD * f, int length)
++{
++ field_attrs(f)->row_lengths[0] = length;
++}
++
++/*
++ * The userptr is used in edit_field.c's inactive_field(), as well as for
++ * keeping track of the actual lengths of lines in a multiline field.
++ */
++void
++init_edit_field(FIELD * f, char *value)
++{
++ char empty[1];
++ FieldAttrs *ptr = field_attrs(f);
++ if (ptr == 0) {
++ int rows, cols, frow, fcol, nrow, nbuf;
++
++ ptr = typeCalloc(FieldAttrs, (size_t) 1);
++ ptr->background = field_back(f);
++ if (field_info(f, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK) {
++ ptr->row_count = nrow;
++ ptr->row_lengths = typeCalloc(int, (size_t) nrow + 1);
++ }
++ }
++ if (value == 0) {
++ value = empty;
++ *value = '\0';
++ }
++ set_field_userptr(f, (void *) ptr);
++ set_field_buffer(f, 0, value); /* will be formatted */
++ set_field_buffer(f, 1, value); /* will be unformatted */
++ set_buffer_length(f, (int) strlen(value));
+ }
+
+ int
+@@ -308,9 +354,7 @@
+ int status;
+ FIELD *before;
+ unsigned n;
+- char lengths[80];
+ int length;
+- char *buffer;
+ int before_row;
+ int before_col;
+ int before_off = offset_in_field(form);
+@@ -337,9 +381,7 @@
+ if (status == E_OK) {
+ bool modified = TRUE;
+
+- length = 0;
+- if ((buffer = field_buffer(before, 1)) != 0)
+- length = atoi(buffer);
++ length = buffer_length(before);
+ if (length < before_off)
+ length = before_off;
+ switch (*result) {
+@@ -347,7 +389,7 @@
+ length = before_off;
+ break;
+ case REQ_CLR_EOL:
+- if (before_row + 1 == before->rows)
++ if ((int) (before_row + 1) == (int) (before->rows))
+ length = before_off;
+ break;
+ case REQ_CLR_FIELD:
+@@ -445,8 +487,7 @@
+ < MIN_FORM_COMMAND)
+ ++length;
+
+- sprintf(lengths, "%d", length);
+- set_field_buffer(before, 1, lengths);
++ set_buffer_length(before, length);
+ }
+
+ if (current_field(form) != before)
+Index: test/edit_field.h
+Prereq: 1.6
+--- ncurses-5.9/test/edit_field.h 2008-12-20 19:23:18.000000000 +0000
++++ ncurses-5.9-20141206/test/edit_field.h 2013-06-08 15:46:01.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2003-2008,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: edit_field.h,v 1.6 2008/12/20 19:23:18 tom Exp $
++ * $Id: edit_field.h,v 1.9 2013/06/08 15:46:01 tom Exp $
+ *
+ * Interface of edit_field.c
+ */
+@@ -45,8 +45,12 @@
+
+ typedef struct {
+ chtype background;
++ int row_count;
++ int *row_lengths;
+ } FieldAttrs;
+
++extern FieldAttrs *field_attrs(FIELD * field);
++extern void init_edit_field(FIELD * field, char *value);
+ extern void help_edit_field(void);
+ extern int edit_field(FORM * form, int *result);
+
+Index: test/filter.c
+Prereq: 1.13
+--- ncurses-5.9/test/filter.c 2010-11-13 20:55:54.000000000 +0000
++++ ncurses-5.9-20141206/test/filter.c 2014-08-09 22:35:51.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /*
+ * Author: Thomas E. Dickey <dickey@clark.net> 1998
+ *
+- * $Id: filter.c,v 1.13 2010/11/13 20:55:54 tom Exp $
++ * $Id: filter.c,v 1.16 2014/08/09 22:35:51 tom Exp $
+ */
+ #include <test.priv.h>
+
+@@ -48,7 +48,7 @@
+ */
+
+ static int
+-new_command(char *buffer, int length, attr_t underline)
++new_command(char *buffer, int length, int underline)
+ {
+ int code;
+
+@@ -99,7 +99,7 @@
+ {
+ int ch;
+ char buffer[80];
+- attr_t underline;
++ int underline;
+ bool i_option = FALSE;
+
+ setlocale(LC_ALL, "");
+@@ -143,7 +143,7 @@
+ reset_shell_mode();
+ printf("\n");
+ fflush(stdout);
+- system(buffer);
++ IGNORE_RC(system(buffer));
+ reset_prog_mode();
+ touchwin(stdscr);
+ erase();
+Index: test/firework.c
+Prereq: 1.27
+--- ncurses-5.9/test/firework.c 2010-11-13 20:58:25.000000000 +0000
++++ ncurses-5.9-20141206/test/firework.c 2014-08-02 17:24:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: firework.c,v 1.27 2010/11/13 20:58:25 tom Exp $
++ * $Id: firework.c,v 1.30 2014/08/02 17:24:07 tom Exp $
+ */
+ #include <test.priv.h>
+
+@@ -41,7 +41,7 @@
+ endwin();
+ }
+
+-static RETSIGTYPE
++static void
+ onsig(int n GCC_UNUSED)
+ {
+ cleanup();
+@@ -94,14 +94,14 @@
+ showit();
+
+ init_pair(1, get_colour(&bold), my_bg);
+- (void) attrset(COLOR_PAIR(1) | bold);
++ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
+ MvPrintw(row - 1, col - 1, " - ");
+ MvPrintw(row + 0, col - 1, "-+-");
+ MvPrintw(row + 1, col - 1, " - ");
+ showit();
+
+ init_pair(1, get_colour(&bold), my_bg);
+- (void) attrset(COLOR_PAIR(1) | bold);
++ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
+ MvPrintw(row - 2, col - 2, " --- ");
+ MvPrintw(row - 1, col - 2, "-+++-");
+ MvPrintw(row + 0, col - 2, "-+#+-");
+@@ -110,7 +110,7 @@
+ showit();
+
+ init_pair(1, get_colour(&bold), my_bg);
+- (void) attrset(COLOR_PAIR(1) | bold);
++ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
+ MvPrintw(row - 2, col - 2, " +++ ");
+ MvPrintw(row - 1, col - 2, "++#++");
+ MvPrintw(row + 0, col - 2, "+# #+");
+@@ -119,7 +119,7 @@
+ showit();
+
+ init_pair(1, get_colour(&bold), my_bg);
+- (void) attrset(COLOR_PAIR(1) | bold);
++ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
+ MvPrintw(row - 2, col - 2, " # ");
+ MvPrintw(row - 1, col - 2, "## ##");
+ MvPrintw(row + 0, col - 2, "# #");
+@@ -128,7 +128,7 @@
+ showit();
+
+ init_pair(1, get_colour(&bold), my_bg);
+- (void) attrset(COLOR_PAIR(1) | bold);
++ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
+ MvPrintw(row - 2, col - 2, " # # ");
+ MvPrintw(row - 1, col - 2, "# #");
+ MvPrintw(row + 0, col - 2, " ");
+@@ -173,7 +173,7 @@
+ direction = (start > end) ? -1 : 1;
+ diff = abs(start - end);
+ } while (diff < 2 || diff >= LINES - 2);
+- (void) attrset(A_NORMAL);
++ (void) attrset(AttrArg(0, A_NORMAL));
+ for (row = 0; row < diff; row++) {
+ MvPrintw(LINES - row, start + (row * direction),
+ (direction < 0) ? "\\" : "/");
+Index: test/form_driver_w.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/form_driver_w.c 2014-08-02 17:24:55.000000000 +0000
+@@ -0,0 +1,150 @@
++/****************************************************************************
++ * Copyright (c) 2013,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++/****************************************************************************
++ * Author: Gaute Hope, 2013 *
++ ****************************************************************************/
++
++/*
++ * $Id: form_driver_w.c,v 1.13 2014/08/02 17:24:55 tom Exp $
++ *
++ * Test form_driver_w (int, int, wchar_t), a wide char aware
++ * replacement of form_driver.
++ */
++
++#include <locale.h>
++
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT && USE_LIBFORM && (defined(NCURSES_VERSION_PATCH) && NCURSES_VERSION_PATCH >= 20131207)
++
++#include <form.h>
++
++int
++main(void)
++{
++ FIELD *field[3];
++ FORM *my_form;
++ bool done = FALSE;
++
++ setlocale(LC_ALL, "");
++
++ /* Initialize curses */
++ initscr();
++ cbreak();
++ noecho();
++ keypad(stdscr, TRUE);
++
++ /* Initialize the fields */
++ field[0] = new_field(1, 10, 4, 18, 0, 0);
++ field[1] = new_field(1, 10, 6, 18, 0, 0);
++ field[2] = NULL;
++
++ /* Set field options */
++ set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */
++ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
++ /* Field is filled up */
++ set_field_back(field[1], A_UNDERLINE);
++ field_opts_off(field[1], O_AUTOSKIP);
++
++ /* Create the form and post it */
++ my_form = new_form(field);
++ post_form(my_form);
++ refresh();
++
++ mvprintw(4, 10, "Value 1:");
++ mvprintw(6, 10, "Value 2:");
++ refresh();
++
++ /* Loop through to get user requests */
++ while (!done) {
++ wint_t ch;
++ int ret = get_wch(&ch);
++
++ mvprintw(8, 10, "Got %d (%#x), type: %s", (int) ch, (int) ch,
++ (ret == KEY_CODE_YES)
++ ? "KEY_CODE_YES"
++ : ((ret == OK)
++ ? "OK"
++ : ((ret == ERR)
++ ? "ERR"
++ : "?")));
++ clrtoeol();
++
++ switch (ret) {
++ case KEY_CODE_YES:
++ switch (ch) {
++ case KEY_DOWN:
++ /* Go to next field */
++ form_driver_w(my_form, KEY_CODE_YES, REQ_NEXT_FIELD);
++ /* Go to the end of the present buffer */
++ /* Leaves nicely at the last character */
++ form_driver_w(my_form, KEY_CODE_YES, REQ_END_LINE);
++ break;
++ case KEY_UP:
++ /* Go to previous field */
++ form_driver_w(my_form, KEY_CODE_YES, REQ_PREV_FIELD);
++ form_driver_w(my_form, KEY_CODE_YES, REQ_END_LINE);
++ break;
++ default:
++ break;
++ }
++ break;
++ case OK:
++ switch (ch) {
++ case CTRL('D'):
++ case QUIT:
++ case ESCAPE:
++ done = TRUE;
++ break;
++ default:
++ form_driver_w(my_form, OK, (wchar_t) ch);
++ break;
++ }
++ break;
++ }
++ }
++
++ /* Un post form and free the memory */
++ unpost_form(my_form);
++ free_form(my_form);
++ free_field(field[0]);
++ free_field(field[1]);
++
++ endwin();
++ ExitProgram(EXIT_SUCCESS);
++}
++
++#else
++int
++main(void)
++{
++ printf("This program requires the wide-ncurses and forms library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif /* USE_WIDEC_SUPPORT */
+Index: test/gdc.c
+Prereq: 1.34
+--- ncurses-5.9/test/gdc.c 2010-11-13 21:01:23.000000000 +0000
++++ ncurses-5.9-20141206/test/gdc.c 2014-08-09 22:28:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -27,13 +27,13 @@
+ ****************************************************************************/
+ /*
+ * Grand digital clock for curses compatible terminals
+- * Usage: gdc [-s] [n] -- run for n seconds (default infinity)
++ * Usage: gdc [-s] [-t hh:mm:ss] [n] -- run for n seconds (default infinity)
+ * Flags: -s: scroll
+ *
+ * modified 10-18-89 for curses (jrl)
+ * 10-18-89 added signal handling
+ *
+- * $Id: gdc.c,v 1.34 2010/11/13 21:01:23 tom Exp $
++ * $Id: gdc.c,v 1.42 2014/08/09 22:28:42 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -60,7 +60,7 @@
+ static bool redirected = FALSE;
+ static bool hascolor = FALSE;
+
+-static RETSIGTYPE
++static void
+ sighndl(int signo)
+ {
+ signal(signo, sighndl);
+@@ -72,13 +72,24 @@
+ }
+
+ static void
++check_term(void)
++{
++ if (sigtermed) {
++ (void) standend();
++ endwin();
++ fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
++ ExitProgram(EXIT_FAILURE);
++ }
++}
++
++static void
+ drawbox(bool scrolling)
+ {
+ chtype bottom[XLENGTH + 1];
+ int n;
+
+ if (hascolor)
+- (void) attrset(COLOR_PAIR(PAIR_FRAMES));
++ (void) attrset(AttrArg(COLOR_PAIR(PAIR_FRAMES), 0));
+
+ MvAddCh(YBASE - 1, XBASE - 1, ACS_ULCORNER);
+ hline(ACS_HLINE, XLENGTH);
+@@ -102,7 +113,7 @@
+ vline(ACS_VLINE, YDEPTH);
+
+ if (hascolor)
+- (void) attrset(COLOR_PAIR(PAIR_OTHERS));
++ (void) attrset(AttrArg(COLOR_PAIR(PAIR_OTHERS), 0));
+ }
+
+ static void
+@@ -147,6 +158,7 @@
+ ,"Options:"
+ ," -n redirect input to /dev/null"
+ ," -s scroll each number into place, rather than flipping"
++ ," -t hh:mm:ss specify starting time (default is ``now'')"
+ ,""
+ ,"If you specify a count, gdc runs for that number of seconds"
+ };
+@@ -156,6 +168,43 @@
+ ExitProgram(EXIT_FAILURE);
+ }
+
++static time_t
++parse_time(const char *value)
++{
++ int hh, mm, ss;
++ int check;
++ time_t result;
++ char c;
++ struct tm *tm;
++
++ if (sscanf(value, "%d:%d:%d%c", &hh, &mm, &ss, &c) != 3) {
++ if (sscanf(value, "%02d%02d%02d%c", &hh, &mm, &ss, &c) != 3) {
++ usage();
++ }
++ }
++
++ if ((hh < 0) || (hh >= 24) ||
++ (mm < 0) || (mm >= 60) ||
++ (ss < 0) || (ss >= 60)) {
++ usage();
++ }
++
++ /* adjust so that the localtime in the main loop will give usable time */
++ result = (hh * 3600) + ((mm * 60) + ss);
++ for (check = 0; check < 24; ++check) {
++ tm = localtime(&result);
++ if (tm->tm_hour == hh)
++ break;
++ result += 3600;
++ }
++
++ if (tm->tm_hour != hh) {
++ fprintf(stderr, "Cannot find local time for %s!\n", value);
++ usage();
++ }
++ return result;
++}
++
+ int
+ main(int argc, char *argv[])
+ {
+@@ -166,21 +215,26 @@
+ int count = 0;
+ FILE *ofp = stdout;
+ FILE *ifp = stdin;
+- bool scrol = FALSE;
++ bool smooth = FALSE;
++ bool stages = FALSE;
++ time_t starts = 0;
+
+ setlocale(LC_ALL, "");
+
+ CATCHALL(sighndl);
+
+- while ((k = getopt(argc, argv, "sn")) != -1) {
++ while ((k = getopt(argc, argv, "nst:")) != -1) {
+ switch (k) {
+- case 's':
+- scrol = TRUE;
+- break;
+ case 'n':
+ ifp = fopen("/dev/null", "r");
+ redirected = TRUE;
+ break;
++ case 's':
++ smooth = TRUE;
++ break;
++ case 't':
++ starts = parse_time(optarg);
++ break;
+ default:
+ usage();
+ }
+@@ -220,7 +274,7 @@
+ init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED);
+ init_pair(PAIR_OTHERS, COLOR_RED, bg);
+ init_pair(PAIR_FRAMES, COLOR_WHITE, bg);
+- (void) attrset(COLOR_PAIR(PAIR_OTHERS));
++ (void) attrset(AttrArg(COLOR_PAIR(PAIR_OTHERS), 0));
+ }
+
+ restart:
+@@ -231,9 +285,13 @@
+ drawbox(FALSE);
+
+ do {
+- char buf[30];
++ char buf[40];
+
+- time(&now);
++ if (starts != 0) {
++ now = ++starts;
++ } else {
++ time(&now);
++ }
+ tm = localtime(&now);
+
+ mask = 0;
+@@ -247,12 +305,13 @@
+ set(10, 17);
+
+ for (k = 0; k < 6; k++) {
+- if (scrol) {
++ if (smooth) {
+ for (i = 0; i < 5; i++)
+ newer[i] = (newer[i] & ~mask) | (newer[i + 1] & mask);
+ newer[5] = (newer[5] & ~mask) | (next[k] & mask);
+- } else
++ } else {
+ newer[k] = (newer[k] & ~mask) | (next[k] & mask);
++ }
+ next[k] = 0;
+ for (s = 1; s >= 0; s--) {
+ standt(s);
+@@ -273,7 +332,7 @@
+ }
+ }
+ if (!s) {
+- if (scrol)
++ if (smooth)
+ drawbox(TRUE);
+ refresh();
+ /*
+@@ -286,14 +345,41 @@
+ * a lot of time when asking what time it is, at the top of
+ * this loop -T.Dickey
+ */
+- if (scrol)
++ if (smooth)
+ napms(85);
++ if (stages) {
++ stages = FALSE;
++ switch (wgetch(stdscr)) {
++ case 'q':
++ count = 1;
++ break;
++ case 'S':
++ stages = TRUE;
++ /* FALLTHRU */
++ case 's':
++ nodelay(stdscr, FALSE);
++ break;
++ case ' ':
++ nodelay(stdscr, TRUE);
++ break;
++#ifdef KEY_RESIZE
++ case KEY_RESIZE:
++#endif
++ case '?':
++ goto restart;
++ case ERR:
++ check_term();
++ /* FALLTHRU */
++ default:
++ continue;
++ }
++ }
+ }
+ }
+ }
+
+ /* this depends on the detailed format of ctime(3) */
+- (void) strcpy(buf, ctime(&now));
++ (void) strncpy(buf, ctime(&now), (size_t) 30);
+ (void) strcpy(buf + 10, buf + 19);
+ MvAddStr(16, 30, buf);
+
+@@ -302,11 +388,11 @@
+ refresh();
+
+ /*
+- * If we're not scrolling, wait 1000 msec (1 sec). Use napms() rather
+- * than sleep() because the latter does odd things on some systems,
+- * e.g., suspending output as well.
++ * If we're not smooth-scrolling, wait 1000 msec (1 sec). Use napms()
++ * rather than sleep() because the latter does odd things on some
++ * systems, e.g., suspending output as well.
+ */
+- if (scrol)
++ if (smooth)
+ napms(500);
+ else
+ napms(1000);
+@@ -318,10 +404,14 @@
+ * will return an error if interrupted. This works only if we can
+ * read from the input, of course.
+ */
++ stages = FALSE;
+ switch (wgetch(stdscr)) {
+ case 'q':
+ count = 1;
+ break;
++ case 'S':
++ stages = TRUE;
++ /* FALLTHRU */
+ case 's':
+ nodelay(stdscr, FALSE);
+ break;
+@@ -334,12 +424,7 @@
+ case '?':
+ goto restart;
+ case ERR:
+- if (sigtermed) {
+- (void) standend();
+- endwin();
+- fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
+- ExitProgram(EXIT_FAILURE);
+- }
++ check_term();
+ /* FALLTHRU */
+ default:
+ continue;
+Index: test/hanoi.c
+Prereq: 1.31
+--- ncurses-5.9/test/hanoi.c 2010-11-14 01:01:07.000000000 +0000
++++ ncurses-5.9-20141206/test/hanoi.c 2014-08-02 17:24:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -41,10 +41,11 @@
+ *
+ * Date: 05.Nov.90
+ *
+- * $Id: hanoi.c,v 1.31 2010/11/14 01:01:07 tom Exp $
++ * $Id: hanoi.c,v 1.36 2014/08/02 17:24:07 tom Exp $
+ */
+
+ #include <test.priv.h>
++#include <math.h>
+
+ #define NPEGS 3 /* This is not configurable !! */
+ #define MINTILES 3
+@@ -57,7 +58,7 @@
+ #define MIDPEG 39
+ #define RIGHTPEG 59
+
+-#define LENTOIND(x) (((x)-1)/2)
++#define LENTOIND(x) (((int)(x)-1)/2)
+ #define OTHER(a,b) (3-((a)+(b)))
+
+ struct Peg {
+@@ -84,10 +85,11 @@
+ COLOR_MAGENTA, /* Length 17 */
+ COLOR_RED, /* Length 19 */
+ };
++static int NTiles = 0;
+ static int NMoves = 0;
+ static bool AutoFlag = FALSE;
+
+-static void InitTiles(int NTiles);
++static void InitTiles(void);
+ static void DisplayTiles(void);
+ static void MakeMove(int From, int To);
+ static void AutoMove(int From, int To, int Num);
+@@ -99,7 +101,7 @@
+ int
+ main(int argc, char **argv)
+ {
+- int NTiles, FromCol, ToCol;
++ int FromCol, ToCol;
+
+ setlocale(LC_ALL, "");
+
+@@ -130,9 +132,6 @@
+ Usage();
+ ExitProgram(EXIT_FAILURE);
+ }
+-#ifdef TRACE
+- trace(TRACE_MAXIMUM);
+-#endif
+ initscr();
+ if (has_colors()) {
+ int i;
+@@ -155,7 +154,7 @@
+ curs_set(0);
+ leaveok(stdscr, TRUE); /* Attempt to remove cursor */
+ }
+- InitTiles(NTiles);
++ InitTiles();
+ DisplayTiles();
+ if (AutoFlag) {
+ do {
+@@ -211,7 +210,7 @@
+ }
+
+ static void
+-InitTiles(int NTiles)
++InitTiles(void)
+ {
+ int Size, SlotNo;
+
+@@ -232,7 +231,7 @@
+ erase();
+ MvAddStr(1, 24, "T O W E R S O F H A N O I");
+ MvAddStr(3, 34, "SJR 1990");
+- MvPrintw(19, 5, "Moves : %d", NMoves);
++ MvPrintw(19, 5, "Moves : %d of %.0f", NMoves, pow(2.0, (float) NTiles) - 1);
+ (void) attrset(A_REVERSE);
+ MvAddStr(BASELINE, 8,
+ " ");
+@@ -255,7 +254,7 @@
+ memset(TileBuf, ' ', len);
+ TileBuf[len] = '\0';
+ if (has_colors())
+- (void) attrset(COLOR_PAIR(LENTOIND(len)));
++ (void) attrset(AttrArg(COLOR_PAIR(LENTOIND(len)), 0));
+ else
+ (void) attrset(A_REVERSE);
+ MvAddStr(BASELINE - (SlotNo + 1),
+@@ -310,12 +309,12 @@
+ if (Num == 1) {
+ MakeMove(From, To);
+ napms(500);
+- return;
++ } else {
++ AutoMove(From, OTHER(From, To), Num - 1);
++ MakeMove(From, To);
++ napms(500);
++ AutoMove(OTHER(From, To), To, Num - 1);
+ }
+- AutoMove(From, OTHER(From, To), Num - 1);
+- MakeMove(From, To);
+- napms(500);
+- AutoMove(OTHER(From, To), To, Num - 1);
+ }
+
+ static int
+Index: test/hashtest.c
+Prereq: 1.31
+--- ncurses-5.9/test/hashtest.c 2010-11-13 23:43:15.000000000 +0000
++++ ncurses-5.9-20141206/test/hashtest.c 2013-04-27 19:50:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -30,7 +30,7 @@
+ *
+ * Generate timing statistics for vertical-motion optimization.
+ *
+- * $Id: hashtest.c,v 1.31 2010/11/13 23:43:15 tom Exp $
++ * $Id: hashtest.c,v 1.32 2013/04/27 19:50:17 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -54,7 +54,7 @@
+ endwin();
+ }
+
+-static RETSIGTYPE
++static void
+ finish(int sig GCC_UNUSED)
+ {
+ cleanup();
+Index: test/inchs.c
+Prereq: 1.11
+--- ncurses-5.9/test/inchs.c 2010-11-13 23:41:23.000000000 +0000
++++ ncurses-5.9-20141206/test/inchs.c 2012-11-18 01:58:15.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: inchs.c,v 1.11 2010/11/13 23:41:23 tom Exp $
++ * $Id: inchs.c,v 1.12 2012/11/18 01:58:15 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ */
+@@ -50,6 +50,16 @@
+ #define BASE_Y 7
+ #define MAX_COLS 1024
+
++static void
++failed(const char *s)
++{
++ int save = errno;
++ endwin();
++ errno = save;
++ perror(s);
++ ExitProgram(EXIT_FAILURE);
++}
++
+ static bool
+ Quit(int ch)
+ {
+@@ -87,6 +97,8 @@
+ txtwin = stdscr;
+ base_y = BASE_Y;
+ }
++ if (txtwin == 0)
++ failed("cannot create txtwin");
+
+ keypad(txtwin, TRUE); /* enable keyboard mapping */
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+Index: test/ins_wide.c
+Prereq: 1.15
+--- ncurses-5.9/test/ins_wide.c 2010-12-12 00:20:14.000000000 +0000
++++ ncurses-5.9-20141206/test/ins_wide.c 2014-08-02 17:24:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: ins_wide.c,v 1.15 2010/12/12 00:20:14 tom Exp $
++ * $Id: ins_wide.c,v 1.21 2014/08/02 17:24:55 tom Exp $
+ *
+ * Demonstrate the wins_wstr() and wins_wch functions.
+ * Thomas Dickey - 2002/11/23
+@@ -132,7 +132,7 @@
+ result += 2;
+ break;
+ default:
+- result += wcwidth(ch);
++ result += wcwidth((wchar_t) ch);
+ if (ch < 32)
+ ++result;
+ break;
+@@ -228,8 +228,9 @@
+ WINDOW *work = 0;
+ WINDOW *show = 0;
+ int margin = (2 * MY_TABSIZE) - 1;
+- Options option = ((m_opt ? oMove : oDefault)
+- | ((w_opt || (level > 0)) ? oWindow : oDefault));
++ Options option = (Options) ((int) (m_opt ? oMove : oDefault)
++ | (int) ((w_opt || (level > 0))
++ ? oWindow : oDefault));
+
+ if (first) {
+ static char cmd[80];
+@@ -241,6 +242,15 @@
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
++
++ /*
++ * Show the characters inserted in color, to distinguish from those
++ * that are shifted.
++ */
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ }
+ }
+
+ limit = LINES - 5;
+@@ -274,14 +284,8 @@
+
+ doupdate();
+
+- /*
+- * Show the characters inserted in color, to distinguish from those that
+- * are shifted.
+- */
+ if (has_colors()) {
+- start_color();
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- wbkgdset(work, COLOR_PAIR(1) | ' ');
++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
+ }
+
+ while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
+@@ -290,11 +294,13 @@
+ case key_RECUR:
+ test_inserts(level + 1);
+
+- touchwin(look);
++ if (look)
++ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+- wnoutrefresh(look);
++ if (look)
++ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+@@ -384,7 +390,7 @@
+ }
+ break;
+ default:
+- buffer[length++] = ch;
++ buffer[length++] = (wchar_t) ch;
+ buffer[length] = '\0';
+
+ /* put the string in, one character at a time */
+@@ -438,10 +444,10 @@
+ }
+ }
+ if (level > 0) {
+- delwin(show);
+ delwin(work);
+ delwin(look);
+ }
++ delwin(show);
+ }
+
+ static void
+Index: test/insdelln.c
+Prereq: 1.5
+--- ncurses-5.9/test/insdelln.c 2010-11-13 23:39:38.000000000 +0000
++++ ncurses-5.9-20141206/test/insdelln.c 2014-08-02 23:09:32.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2008-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2008-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: insdelln.c,v 1.5 2010/11/13 23:39:38 tom Exp $
++ * $Id: insdelln.c,v 1.9 2014/08/02 23:09:32 tom Exp $
+ *
+ * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln
+ */
+@@ -175,6 +175,8 @@
+ delwin(win1);
+ touchwin(win);
+ } else {
++ if (win1)
++ delwin(win1);
+ beep();
+ }
+ }
+@@ -300,7 +302,7 @@
+ init_status(win, &st);
+
+ do {
+- (void) wattrset(win, st.attr | (attr_t) COLOR_PAIR(st.pair));
++ (void) wattrset(win, AttrArg(COLOR_PAIR(st.pair), st.attr));
+ switch (st.ch) {
+ case 'i':
+ for (n = 0; n < st.count; ++n)
+@@ -341,7 +343,7 @@
+ init_status(stdscr, &st);
+
+ do {
+- (void) attrset(st.attr | (attr_t) COLOR_PAIR(st.pair));
++ (void) attrset(AttrArg(COLOR_PAIR(st.pair), st.attr));
+ switch (st.ch) {
+ case 'i':
+ for (n = 0; n < st.count; ++n)
+Index: test/inserts.c
+Prereq: 1.23
+--- ncurses-5.9/test/inserts.c 2010-12-12 00:19:55.000000000 +0000
++++ ncurses-5.9-20141206/test/inserts.c 2012-12-16 00:35:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2002-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: inserts.c,v 1.23 2010/12/12 00:19:55 tom Exp $
++ * $Id: inserts.c,v 1.27 2012/12/16 00:35:27 tom Exp $
+ *
+ * Demonstrate the winsstr() and winsch functions.
+ * Thomas Dickey - 2002/10/19
+@@ -167,6 +167,15 @@
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
++
++ /*
++ * Show the characters inserted in color, to distinguish from those
++ * that are shifted.
++ */
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ }
+ }
+
+ limit = LINES - 5;
+@@ -200,14 +209,8 @@
+
+ doupdate();
+
+- /*
+- * Show the characters inserted in color, to distinguish from those that
+- * are shifted.
+- */
+ if (has_colors()) {
+- start_color();
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- wbkgdset(work, COLOR_PAIR(1) | ' ');
++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
+ }
+
+ while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
+@@ -216,11 +219,13 @@
+ case key_RECUR:
+ test_inserts(level + 1);
+
+- touchwin(look);
++ if (look)
++ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+- wnoutrefresh(look);
++ if (look)
++ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+@@ -368,10 +373,10 @@
+ }
+ }
+ if (level > 0) {
+- delwin(show);
+ delwin(work);
+ delwin(look);
+ }
++ delwin(show);
+ }
+
+ static void
+Index: test/key_names.c
+Prereq: 1.4
+--- ncurses-5.9/test/key_names.c 2008-10-11 20:22:37.000000000 +0000
++++ ncurses-5.9-20141206/test/key_names.c 2014-08-02 17:24:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2008,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: key_names.c,v 1.4 2008/10/11 20:22:37 tom Exp $
++ * $Id: key_names.c,v 1.5 2014/08/02 17:24:55 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -77,7 +77,7 @@
+ endwin();
+ }
+ for (n = -1; n < KEY_MAX + 512; n++) {
+- const char *result = key_name(n);
++ const char *result = key_name((wchar_t) n);
+ if (result != 0)
+ printf("%d(%5o):%s\n", n, n, result);
+ }
+Index: test/knight.c
+Prereq: 1.31
+--- ncurses-5.9/test/knight.c 2010-11-13 20:44:21.000000000 +0000
++++ ncurses-5.9-20141206/test/knight.c 2013-02-16 19:53:08.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -33,7 +33,7 @@
+ * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
+ * added September 20th 1995.
+ *
+- * $Id: knight.c,v 1.31 2010/11/13 20:44:21 tom Exp $
++ * $Id: knight.c,v 1.36 2013/02/16 19:53:08 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -123,13 +123,16 @@
+ (void) init_pair(PLUS_COLOR, (short) COLOR_RED, (short) bg);
+ (void) init_pair(MINUS_COLOR, (short) COLOR_GREEN, (short) bg);
+
+- trail |= COLOR_PAIR(TRAIL_COLOR);
+- plus |= COLOR_PAIR(PLUS_COLOR);
+- minus |= COLOR_PAIR(MINUS_COLOR);
++ trail |= (chtype) COLOR_PAIR(TRAIL_COLOR);
++ plus |= (chtype) COLOR_PAIR(PLUS_COLOR);
++ minus |= (chtype) COLOR_PAIR(MINUS_COLOR);
+ }
+ #ifdef NCURSES_MOUSE_VERSION
+ (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
+ #endif /* NCURSES_MOUSE_VERSION */
++#if defined(PDCURSES)
++ mouse_set(BUTTON1_RELEASED);
++#endif
+
+ oldch = minus;
+ }
+@@ -300,15 +303,16 @@
+ }
+ }
+
+-static void
++static bool
+ find_next_move(int *y, int *x)
+ {
+ unsigned j, k;
+ int found = -1;
+ int first = -1;
+- int next = 0;
++ int next = -1;
+ int oldy, oldx;
+ int newy, newx;
++ bool result = FALSE;
+
+ if (movecount > 1) {
+ oldy = history[movecount - 1].y;
+@@ -335,9 +339,27 @@
+ *y = oldy + offsets[next].y;
+ *x = oldx + offsets[next].x;
+ }
+- } else {
+- beep();
++ result = TRUE;
+ }
++ return result;
++}
++
++static void
++count_next_moves(int y, int x)
++{
++ int count = 0;
++ unsigned j;
++
++ wprintw(msgwin, "\nMove %d", movecount);
++ for (j = 0; j < SIZEOF(offsets); j++) {
++ int newy = y + offsets[j].y;
++ int newx = x + offsets[j].x;
++ if (chksqr(newy, newx)) {
++ ++count;
++ }
++ }
++ wprintw(msgwin, ", gives %d choices", count);
++ wclrtoeol(msgwin);
+ }
+
+ static void
+@@ -558,8 +580,9 @@
+ nx = col + 1;
+ break;
+
+-#ifdef NCURSES_MOUSE_VERSION
++#ifdef KEY_MOUSE
+ case KEY_MOUSE:
++#ifdef NCURSES_MOUSE_VERSION
+ {
+ MEVENT myevent;
+
+@@ -576,6 +599,24 @@
+ }
+ }
+ #endif /* NCURSES_MOUSE_VERSION */
++#ifdef PDCURSES
++ {
++ int test_y, test_x;
++ request_mouse_pos();
++ test_y = MOUSE_Y_POS + 0;
++ test_x = MOUSE_X_POS + 1;
++ if (test_y >= CY(0) && test_y <= CY(BDEPTH)
++ && test_x >= CX(0) && test_x <= CX(BWIDTH)) {
++ ny = CYINV(test_y);
++ nx = CXINV(test_x);
++ wmove(helpwin, 0, 0);
++ wrefresh(helpwin);
++ ungetch('\n');
++ }
++ break;
++ }
++#endif /* PDCURSES */
++#endif /* KEY_MOUSE */
+
+ case KEY_B2:
+ case '\n':
+@@ -614,8 +655,8 @@
+ ny = history[movecount].y;
+ nx = history[movecount].x;
+ if (nx < 0 || ny < 0) {
+- ny = lastrow;
+- nx = lastcol;
++ ny = (lastrow >= 0) ? lastrow : 0;
++ nx = (lastcol >= 0) ? lastcol : 0;
+ }
+ movecount = 0;
+ board[ny][nx] = FALSE;
+@@ -652,7 +693,10 @@
+ case 'a':
+ nx = col;
+ ny = rw;
+- find_next_move(&ny, &nx);
++ if (find_next_move(&ny, &nx))
++ count_next_moves(ny, nx);
++ else
++ beep();
+ break;
+
+ case 'F':
+Index: test/linedata.h
+--- ncurses-5.9/test/linedata.h 2010-11-13 21:12:31.000000000 +0000
++++ ncurses-5.9-20141206/test/linedata.h 2012-12-15 22:57:19.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -85,10 +85,8 @@
+ beep();
+ continue;
+ }
+- } else if (code != ERR) {
+- result = (int) ch;
+- break;
+ } else {
++ result = (int) ch;
+ break;
+ }
+ }
+Index: test/make-tar.sh
+Prereq: 1.10
+--- ncurses-5.9/test/make-tar.sh 2011-03-26 20:46:51.000000000 +0000
++++ ncurses-5.9-20141206/test/make-tar.sh 2013-10-26 23:11:43.000000000 +0000
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+-# $Id: make-tar.sh,v 1.10 2011/03/26 20:46:51 tom Exp $
++# $Id: make-tar.sh,v 1.12 2013/10/26 23:11:43 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2010,2011 Free Software Foundation, Inc. #
++# Copyright (c) 2010-2011,2013 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -66,11 +66,11 @@
+ make_changelog() {
+ test -f $1 && chmod u+w $1
+ cat >$1 <<EOF
+-`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_PATCH) unstable; urgency=low
++`echo $PKG_NAME|tr '[A-Z]' '[a-z]'` ($NCURSES_MAJOR.$NCURSES_MINOR-$NCURSES_PATCH) unstable; urgency=low
+
+ * snapshot of ncurses subpackage for $PKG_NAME.
+
+- -- `head -1 $HOME/.signature` `date -R`
++ -- `head -n 1 $HOME/.signature` `date -R`
+ EOF
+ }
+
+@@ -108,7 +108,10 @@
+ do
+ edit_specfile $spec
+ done
+-make_changelog $BUILD/$ROOTNAME/package/debian/changelog
++for spec in $BUILD/$ROOTNAME/package/debian*
++do
++ make_changelog $spec/changelog
++done
+
+ cp -p $SOURCE/NEWS $BUILD/$ROOTNAME
+
+Index: test/modules
+Prereq: 1.43
+--- ncurses-5.9/test/modules 2010-01-23 17:51:38.000000000 +0000
++++ ncurses-5.9-20141206/test/modules 2014-06-21 15:28:46.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: modules,v 1.43 2010/01/23 17:51:38 tom Exp $
++# $Id: modules,v 1.51 2014/06/21 15:28:46 tom Exp $
+ ##############################################################################
+-# Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. #
++# Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -49,13 +49,16 @@
+ demo_terminfo progs $(srcdir) $(HEADER_DEPS)
+ ditto progs $(srcdir) $(HEADER_DEPS)
+ dots progs $(srcdir) $(HEADER_DEPS)
++dots_curses progs $(srcdir) $(HEADER_DEPS)
+ dots_mvcur progs $(srcdir) $(HEADER_DEPS)
++dots_termcap progs $(srcdir) $(HEADER_DEPS)
+ echochar progs $(srcdir) $(HEADER_DEPS)
+ edit_field progs $(srcdir) $(HEADER_DEPS) $(srcdir)/edit_field.h
+ filter progs $(srcdir) $(HEADER_DEPS)
+ firework progs $(srcdir) $(HEADER_DEPS)
+ firstlast progs $(srcdir) $(HEADER_DEPS)
+ foldkeys progs $(srcdir) $(HEADER_DEPS)
++form_driver_w progs $(srcdir) $(HEADER_DEPS)
+ gdc progs $(srcdir) $(HEADER_DEPS)
+ hanoi progs $(srcdir) $(HEADER_DEPS)
+ hashtest progs $(srcdir) $(HEADER_DEPS)
+@@ -86,10 +89,12 @@
+ test_instr progs $(srcdir) $(HEADER_DEPS)
+ test_inwstr progs $(srcdir) $(HEADER_DEPS)
+ test_opaque progs $(srcdir) $(HEADER_DEPS)
++test_vid_puts progs $(srcdir) $(HEADER_DEPS)
++test_vidputs progs $(srcdir) $(HEADER_DEPS)
+ testaddch progs $(srcdir) $(HEADER_DEPS)
+ testcurs progs $(srcdir) $(HEADER_DEPS)
+ testscanw progs $(srcdir) $(HEADER_DEPS)
+-view progs $(srcdir) $(HEADER_DEPS)
++view progs $(srcdir) $(HEADER_DEPS) $(srcdir)/widechars.h
+ worm progs $(srcdir) $(HEADER_DEPS)
+ xmas progs $(srcdir) $(HEADER_DEPS)
+
+Index: test/movewindow.c
+Prereq: 1.24
+--- ncurses-5.9/test/movewindow.c 2010-11-13 23:34:55.000000000 +0000
++++ ncurses-5.9-20141206/test/movewindow.c 2013-05-04 19:41:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2008,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,18 +26,22 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: movewindow.c,v 1.24 2010/11/13 23:34:55 tom Exp $
++ * $Id: movewindow.c,v 1.39 2013/05/04 19:41:02 tom Exp $
+ *
+ * Demonstrate move functions for windows and derived windows from the curses
+ * library.
+ *
+- * Thomas Dickey - 2006/2/11
++ * Author: Thomas E. Dickey
+ */
+ /*
+ derwin
+ mvderwin
+ subwin
+ mvwin
++
++TODO:
++ add command to reset subwindow's origin to coincide with parent.
++ add command to delete subwindow (check if it has subwindows though)
+ */
+
+ #include <test.priv.h>
+@@ -76,6 +80,14 @@
+ static FRAME *all_windows;
+
+ static void
++failed(const char *s)
++{
++ perror(s);
++ endwin();
++ ExitProgram(EXIT_FAILURE);
++}
++
++static void
+ message(int lineno, CONST_FMT char *fmt, va_list argp)
+ {
+ int y, x;
+@@ -122,7 +134,12 @@
+ * Arrow keys move cursor, return location at current on non-arrow key.
+ */
+ static PAIR *
+-selectcell(WINDOW *parent, int uli, int ulj, int lri, int lrj)
++selectcell(WINDOW *parent,
++ WINDOW *child,
++ int uli, int ulj,
++ int lri, int lrj,
++ bool relative,
++ bool * more)
+ {
+ static PAIR res; /* result cell */
+ int si = lri - uli + 1; /* depth of the select area */
+@@ -131,25 +148,46 @@
+
+ res.y = uli;
+ res.x = ulj;
++
++ if (child != 0) {
++ if (relative) {
++ getparyx(child, i, j);
++ } else {
++ getbegyx(child, i, j);
++ i -= uli + getbegy(parent);
++ j -= ulj + getbegx(parent);
++ }
++ }
++
++ if (more)
++ *more = FALSE;
++
+ for (;;) {
+- tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d",
++ bool moved = FALSE;
++
++ tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d -> %d,%d",
+ uli, ulj,
+ lri, lrj,
++ i, j,
+ uli + i, ulj + j);
+ wmove(parent, uli + i, ulj + j);
+
+ switch (wgetch(parent)) {
+ case KEY_UP:
+ i += si - 1;
++ moved = TRUE;
+ break;
+ case KEY_DOWN:
+ i++;
++ moved = TRUE;
+ break;
+ case KEY_LEFT:
+ j += sj - 1;
++ moved = TRUE;
+ break;
+ case KEY_RIGHT:
+ j++;
++ moved = TRUE;
+ break;
+ case QUIT:
+ case ESCAPE:
+@@ -161,8 +199,13 @@
+
+ getmouse(&event);
+ if (event.y > uli && event.x > ulj) {
+- i = event.y - uli;
+- j = event.x - ulj;
++ if (parent != stdscr) {
++ i = event.y - getbegy(parent) - uli;
++ j = event.x - getbegx(parent) - ulj;
++ } else {
++ i = event.y - uli;
++ j = event.x - ulj;
++ }
+ } else {
+ beep();
+ break;
+@@ -175,8 +218,26 @@
+ res.x = ulj + j;
+ return (&res);
+ }
+- i %= si;
+- j %= sj;
++
++ if (si <= 0)
++ i = 0;
++ else
++ i %= si;
++
++ if (sj <= 0)
++ j = 0;
++ else
++ j %= sj;
++
++ /*
++ * If the caller can handle continuous movement, return the result.
++ */
++ if (moved && more) {
++ *more = TRUE;
++ res.y = uli + i;
++ res.x = ulj + j;
++ return (&res);
++ }
+ }
+ }
+
+@@ -194,12 +255,20 @@
+ bool result = FALSE;
+
+ head_line("Use arrows to move cursor, anything else to mark corner 1");
+- if ((tmp = selectcell(parent, min_line, min_col, max_line, max_col)) != 0) {
++ if ((tmp = selectcell(parent, 0,
++ min_line, min_col,
++ max_line, max_col,
++ FALSE,
++ (bool *) 0)) != 0) {
+ *ul = *tmp;
+ MvWAddCh(parent, ul->y, ul->x, '*');
+
+ head_line("Use arrows to move cursor, anything else to mark corner 2");
+- if ((tmp = selectcell(parent, ul->y, ul->x, max_line, max_col)) != 0) {
++ if ((tmp = selectcell(parent, 0,
++ ul->y, ul->x,
++ max_line, max_col,
++ FALSE,
++ (bool *) 0)) != 0) {
+ *lr = *tmp;
+ MvWAddCh(parent, lr->y, lr->x, '*');
+ wmove(parent, lr->y, lr->x);
+@@ -252,6 +321,8 @@
+ keypad(child, TRUE);
+ if (need > have) {
+ all_windows = typeRealloc(FRAME, need, all_windows);
++ if (!all_windows)
++ failed("add_window");
+ }
+ all_windows[num_windows].parent = parent;
+ all_windows[num_windows].child = child;
+@@ -341,10 +412,7 @@
+
+ for (n = 0; n < num_windows; ++n) {
+ if (all_windows[n].parent == parent) {
+- int y0, x0;
+-
+- getbegyx(all_windows[n].child, y0, x0);
+- mvwin(all_windows[n].child, y0 + dy, x0 + dx);
++ mvwin(all_windows[n].child, dy, dx);
+ recur_move_window(all_windows[n].child, dy, dx);
+ }
+ }
+@@ -366,20 +434,24 @@
+ int min_line = top ? LINE_MIN : 0;
+ int max_line = top ? LINE_MAX : getmaxy(parent);
+ PAIR *tmp;
++ bool more;
+
+ head_line("Select new position for %swindow", top ? "" : "sub");
+
+- if ((tmp = selectcell(parent,
+- min_line, min_col,
+- max_line, max_col)) != 0) {
++ while ((tmp = selectcell(parent,
++ win,
++ min_line, min_col,
++ max_line, max_col,
++ FALSE,
++ &more)) != 0) {
+ int y0, x0;
+ getbegyx(parent, y0, x0);
+ /*
+- * Note: Moving a subwindow has the effect of moving a viewport
+- * around the screen. The parent window retains the contents of
+- * the subwindow in the original location, but the viewport will
+- * show the contents (again) at the new location. So it will look
+- * odd when testing.
++ * Moving a subwindow has the effect of moving a viewport around
++ * the screen. The parent window retains the contents of the
++ * subwindow in the original location, but the viewport will show
++ * the contents (again) at the new location. So it will look odd
++ * when testing.
+ */
+ if (mvwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) {
+ if (recur) {
+@@ -388,45 +460,69 @@
+ refresh_all(win);
+ doupdate();
+ result = TRUE;
++ } else {
++ result = FALSE;
+ }
++ if (!more)
++ break;
+ }
+ }
++ head_line("done");
+ return result;
+ }
+
++static void
++show_derwin(WINDOW *win)
++{
++ int pary, parx, maxy, maxx;
++
++ getmaxyx(win, maxy, maxx);
++ getparyx(win, pary, parx);
++
++ head_line("Select new position for derived window at %d,%d (%d,%d)",
++ pary, parx, maxy, maxx);
++}
++
+ /*
+ * test mvderwin().
+ */
+ static bool
+-move_subwin(WINDOW *win)
++move_derwin(WINDOW *win)
+ {
+ WINDOW *parent = parent_of(win);
+ bool result = FALSE;
+
+ if (parent != 0) {
+ bool top = (parent == stdscr);
+- if (!top) {
+- int min_col = top ? COL_MIN : 0;
+- int max_col = top ? COL_MAX : getmaxx(parent);
+- int min_line = top ? LINE_MIN : 0;
+- int max_line = top ? LINE_MAX : getmaxy(parent);
+- PAIR *tmp;
+-
+- head_line("Select new position for subwindow");
+-
+- if ((tmp = selectcell(parent,
+- min_line, min_col,
+- max_line, max_col)) != 0) {
+- int y0, x0;
+- getbegyx(parent, y0, x0);
+- if (mvderwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) {
+- refresh_all(win);
+- doupdate();
+- result = TRUE;
+- }
++ int min_col = top ? COL_MIN : 0;
++ int max_col = top ? COL_MAX : getmaxx(parent);
++ int min_line = top ? LINE_MIN : 0;
++ int max_line = top ? LINE_MAX : getmaxy(parent);
++ PAIR *tmp;
++ bool more;
++
++ show_derwin(win);
++ while ((tmp = selectcell(parent,
++ win,
++ min_line, min_col,
++ max_line, max_col,
++ TRUE,
++ &more)) != 0) {
++ if (mvderwin(win, tmp->y, tmp->x) != ERR) {
++ refresh_all(win);
++ doupdate();
++ repaint_one(win);
++ doupdate();
++ result = TRUE;
++ show_derwin(win);
++ } else {
++ flash();
+ }
++ if (!more)
++ break;
+ }
+ }
++ head_line("done");
+ return result;
+ }
+
+@@ -449,6 +545,28 @@
+ wrefresh(win);
+ }
+
++static void
++fill_with_pattern(WINDOW *win)
++{
++ int y, x;
++ int y0, x0;
++ int y1, x1;
++ int ch = 'a';
++
++ getyx(win, y0, x0);
++ getmaxyx(win, y1, x1);
++ for (y = 0; y < y1; ++y) {
++ for (x = 0; x < x1; ++x) {
++ MvWAddCh(win, y, x, (chtype) ch);
++ if (++ch > 'z')
++ ch = 'a';
++ }
++ }
++ wsyncdown(win);
++ wmove(win, y0, x0);
++ wrefresh(win);
++}
++
+ #define lines_of(ul,lr) (lr.y - ul.y + 1)
+ #define cols_of(ul,lr) (lr.x - ul.x + 1)
+ #define pair_of(ul) ul.y, ul.x
+@@ -523,12 +641,13 @@
+ { 'b', "Draw a box inside the current window" },
+ { 'c', "Create a new window" },
+ { 'd', "Create a new derived window" },
++ { 'D', "Move derived window (moves viewport)" },
+ { 'f', "Fill the current window with the next character" },
++ { 'F', "Fill the current window with a pattern" },
+ { 'm', "Move the current window" },
+ { 'M', "Move the current window (and its children)" },
+ { 'q', "Quit" },
+ { 's', "Create a new subwindow" },
+- { 't', "Move the current subwindow (moves content)" },
+ { CTRL('L'), "Repaint all windows, doing current one last" },
+ { CTRL('N'), "Cursor to next window" },
+ { CTRL('P'), "Cursor to previous window" },
+@@ -571,6 +690,10 @@
+ #endif /* NCURSES_MOUSE_VERSION */
+
+ while (!done && (ch = wgetch(current_win)) != ERR) {
++ int y, x;
++
++ getyx(current_win, y, x);
++
+ switch (ch) {
+ case '?':
+ show_help(current_win);
+@@ -584,9 +707,18 @@
+ case 'd':
+ current_win = create_my_derwin(current_win);
+ break;
++ case 'D':
++ if (!move_derwin(current_win)) {
++ tail_line("error");
++ continue;
++ }
++ break;
+ case 'f':
+ fill_window(current_win, (chtype) wgetch(current_win));
+ break;
++ case 'F':
++ fill_with_pattern(current_win);
++ break;
+ case 'm':
+ case 'M':
+ if (!move_window(current_win, (ch == 'M'))) {
+@@ -600,12 +732,6 @@
+ case 's':
+ current_win = create_my_subwin(current_win);
+ break;
+- case 't':
+- if (!move_subwin(current_win)) {
+- tail_line("error");
+- continue;
+- }
+- break;
+ case CTRL('L'):
+ refresh_all(current_win);
+ break;
+@@ -621,6 +747,7 @@
+ /* want to allow deleting a window also */
+ #endif
+ default:
++ wmove(current_win, y, x);
+ tail_line("unrecognized key (use '?' for help)");
+ beep();
+ continue;
+Index: test/ncurses.c
+Prereq: 1.365
+--- ncurses-5.9/test/ncurses.c 2011-01-22 19:48:33.000000000 +0000
++++ ncurses-5.9-20141206/test/ncurses.c 2014-10-10 09:09:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -40,7 +40,7 @@
+ Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
+ Thomas E. Dickey (beginning revision 1.27 in 1996).
+
+-$Id: ncurses.c,v 1.365 2011/01/22 19:48:33 tom Exp $
++$Id: ncurses.c,v 1.417 2014/10/10 09:09:41 tom Exp $
+
+ ***************************************************************************/
+
+@@ -157,15 +157,23 @@
+ static int max_pairs; /* ...and the number of color pairs */
+
+ typedef struct {
+- short red;
+- short green;
+- short blue;
++ NCURSES_COLOR_T red;
++ NCURSES_COLOR_T green;
++ NCURSES_COLOR_T blue;
+ } RGB_DATA;
+
+ static RGB_DATA *all_colors;
+
+ static void main_menu(bool);
+
++static void
++failed(const char *s)
++{
++ perror(s);
++ endwin();
++ ExitProgram(EXIT_FAILURE);
++}
++
+ /* The behavior of mvhline, mvvline for negative/zero length is unspecified,
+ * though we can rely on negative x/y values to stop the macro.
+ */
+@@ -295,9 +303,9 @@
+
+ #if USE_WIDEC_SUPPORT
+ static wchar_t
+-fullwidth_of(int ch)
++fullwidth_digit(int ch)
+ {
+- return (ch + 0xff10 - '0');
++ return (wchar_t) (ch + 0xff10 - '0');
+ }
+
+ static void
+@@ -305,7 +313,7 @@
+ {
+ int ch;
+ while ((ch = *source++) != 0) {
+- *target++ = fullwidth_of(ch);
++ *target++ = fullwidth_digit(ch);
+ }
+ *target = 0;
+ }
+@@ -315,7 +323,7 @@
+ {
+ int ch;
+ while ((ch = *source++) != 0) {
+- *target++ = ch;
++ *target++ = (wchar_t) ch;
+ }
+ *target = 0;
+ }
+@@ -326,7 +334,7 @@
+ {
+ wchar_t source[2];
+
+- source[0] = fullwidth_of(digit + '0');
++ source[0] = fullwidth_digit(digit + '0');
+ source[1] = 0;
+ setcchar(target, source, A_NORMAL, 0, 0);
+ }
+@@ -490,7 +498,7 @@
+ #ifdef __MINGW32__
+ system("cmd.exe");
+ #else
+- system("sh");
++ IGNORE_RC(system("sh"));
+ #endif
+ if (message)
+ addstr("returned from shellout.\n");
+@@ -723,6 +731,8 @@
+ len_winstack = need;
+ winstack = typeRealloc(WINSTACK, len_winstack, winstack);
+ }
++ if (!winstack)
++ failed("remember_boxes");
+ winstack[level].text = txt_win;
+ winstack[level].frame = box_win;
+ }
+@@ -777,12 +787,21 @@
+ }
+ doupdate();
+ }
+-#endif /* resize_boxes */
++#endif /* resize_boxes */
+ #else
+ #define forget_boxes() /* nothing */
+ #define remember_boxes(level,text,frame) /* nothing */
+ #endif
+
++/*
++ * Return-code is OK/ERR or a keyname.
++ */
++static const char *
++ok_keyname(int code)
++{
++ return ((code == OK) ? "OK" : ((code == ERR) ? "ERR" : keyname(code)));
++}
++
+ static void
+ wgetch_test(unsigned level, WINDOW *win, int delay)
+ {
+@@ -824,9 +843,11 @@
+ } else if (c == 'g') {
+ waddstr(win, "getstr test: ");
+ echo();
+- wgetnstr(win, buf, sizeof(buf) - 1);
++ c = wgetnstr(win, buf, sizeof(buf) - 1);
+ noecho();
+- wprintw(win, "I saw %d characters:\n\t`%s'.", (int) strlen(buf), buf);
++ wprintw(win, "I saw %d characters:\n\t`%s' (%s).",
++ (int) strlen(buf), buf,
++ ok_keyname(c));
+ wclrtoeol(win);
+ wgetch_wrap(win, first_y);
+ } else if (c == 'k') {
+@@ -922,7 +943,7 @@
+ refresh();
+
+ #ifdef NCURSES_MOUSE_VERSION
+- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
++ mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, (mmask_t *) 0);
+ #endif
+
+ (void) printw("Delay in 10ths of a second (<CR> for blocking input)? ");
+@@ -1023,6 +1044,8 @@
+ free(result);
+ result = 0;
+ }
++ } else {
++ failed("wcstos");
+ }
+ }
+ return result;
+@@ -1072,7 +1095,7 @@
+ } else if (c == 'g') {
+ waddstr(win, "getstr test: ");
+ echo();
+- code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1);
++ code = wgetn_wstr(win, wint_buf, BUFSIZ - 1);
+ noecho();
+ if (code == ERR) {
+ wprintw(win, "wgetn_wstr returns an error.");
+@@ -1229,8 +1252,13 @@
+ #define termattrs() my_termattrs()
+ #endif
+
+-#define MAX_ATTRSTRING 31
+-#define LEN_ATTRSTRING 26
++#define ATTRSTRING_1ST 32 /* ' ' */
++#define ATTRSTRING_END 126 /* '~' */
++
++#define COL_ATTRSTRING 25
++#define MARGIN_4_ATTRS (COL_ATTRSTRING + 8)
++#define LEN_ATTRSTRING (COLS - MARGIN_4_ATTRS)
++#define MAX_ATTRSTRING (ATTRSTRING_END + 1 - ATTRSTRING_1ST)
+
+ static char attr_test_string[MAX_ATTRSTRING + 1];
+
+@@ -1264,6 +1292,10 @@
+ " a/A toggle ACS (alternate character set) mapping");
+ MvWPrintw(helpwin, row, col,
+ " v/V toggle video attribute to combine with each line");
++#if USE_WIDEC_SUPPORT
++ MvWPrintw(helpwin, row, col,
++ " w/W toggle normal/wide (double-width) test-characters");
++#endif
+ }
+
+ static void
+@@ -1278,29 +1310,29 @@
+ }
+
+ static bool
+-cycle_color_attr(int ch, short *fg, short *bg, short *tx)
++cycle_color_attr(int ch, NCURSES_COLOR_T *fg, NCURSES_COLOR_T *bg, NCURSES_COLOR_T *tx)
+ {
+ bool error = FALSE;
+
+ if (use_colors) {
+ switch (ch) {
+ case 'f':
+- *fg = (short) (*fg + 1);
++ *fg = (NCURSES_COLOR_T) (*fg + 1);
+ break;
+ case 'F':
+- *fg = (short) (*fg - 1);
++ *fg = (NCURSES_COLOR_T) (*fg - 1);
+ break;
+ case 'b':
+- *bg = (short) (*bg + 1);
++ *bg = (NCURSES_COLOR_T) (*bg + 1);
+ break;
+ case 'B':
+- *bg = (short) (*bg - 1);
++ *bg = (NCURSES_COLOR_T) (*bg - 1);
+ break;
+ case 't':
+- *tx = (short) (*tx + 1);
++ *tx = (NCURSES_COLOR_T) (*tx + 1);
+ break;
+ case 'T':
+- *tx = (short) (*tx - 1);
++ *tx = (NCURSES_COLOR_T) (*tx - 1);
+ break;
+ default:
+ beep();
+@@ -1308,17 +1340,17 @@
+ break;
+ }
+ if (*fg >= COLORS)
+- *fg = (short) min_colors;
++ *fg = (NCURSES_COLOR_T) min_colors;
+ if (*fg < min_colors)
+- *fg = (short) (COLORS - 1);
++ *fg = (NCURSES_COLOR_T) (COLORS - 1);
+ if (*bg >= COLORS)
+- *bg = (short) min_colors;
++ *bg = (NCURSES_COLOR_T) min_colors;
+ if (*bg < min_colors)
+- *bg = (short) (COLORS - 1);
++ *bg = (NCURSES_COLOR_T) (COLORS - 1);
+ if (*tx >= COLORS)
+ *tx = -1;
+ if (*tx < -1)
+- *tx = (short) (COLORS - 1);
++ *tx = (NCURSES_COLOR_T) (COLORS - 1);
+ } else {
+ beep();
+ error = TRUE;
+@@ -1329,12 +1361,14 @@
+ 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; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
++ char save = attr_test_string[0];
++ int first = ((int) UChar(save)) + adjust;
++ int j, k;
++
++ if (first >= ATTRSTRING_1ST) {
++ for (j = 0, k = first; j < MAX_ATTRSTRING; ++j, ++k) {
++ if (k > ATTRSTRING_END)
++ break;
+ attr_test_string[j] = (char) k;
+ if (((k + 1 - first) % 5) == 0) {
+ if (++j >= MAX_ATTRSTRING)
+@@ -1342,23 +1376,40 @@
+ attr_test_string[j] = ' ';
+ }
+ }
+- while (j < MAX_ATTRSTRING)
+- attr_test_string[j++] = ' ';
+- attr_test_string[j] = '\0';
+- } else {
+- beep();
++ if ((LEN_ATTRSTRING - j) > 5) {
++ attr_test_string[0] = save;
++ adjust_attr_string(adjust - 1);
++ } else {
++ while (j < MAX_ATTRSTRING)
++ attr_test_string[j++] = ' ';
++ attr_test_string[j] = '\0';
++ }
+ }
+ }
+
++/*
++ * Prefer the right-end of the string for starting, since that maps to the
++ * VT100 line-drawing.
++ */
++static int
++default_attr_string(void)
++{
++ int result = (ATTRSTRING_END - LEN_ATTRSTRING);
++ result += (LEN_ATTRSTRING / 5);
++ if (result < ATTRSTRING_1ST)
++ result = ATTRSTRING_1ST;
++ return result;
++}
++
+ static void
+ init_attr_string(void)
+ {
+- attr_test_string[0] = 'a';
++ attr_test_string[0] = (char) default_attr_string();
+ adjust_attr_string(0);
+ }
+
+ static int
+-show_attr(int row, int skip, bool arrow, chtype attr, const char *name)
++show_attr(WINDOW *win, int row, int skip, bool arrow, chtype attr, const char *name)
+ {
+ int ncv = get_ncv();
+ chtype test = attr & (chtype) (~A_ALTCHARSET);
+@@ -1366,7 +1417,7 @@
+ if (arrow)
+ MvPrintw(row, 5, "-->");
+ MvPrintw(row, 8, "%s mode:", name);
+- MvPrintw(row, 24, "|");
++ MvPrintw(row, COL_ATTRSTRING - 1, "|");
+ if (skip)
+ printw("%*s", skip, " ");
+ /*
+@@ -1374,27 +1425,29 @@
+ * character at a time (to pass its rendition directly), and use the
+ * string operation for the other attributes.
+ */
++ wmove(win, 0, 0);
++ werase(win);
+ if (attr & A_ALTCHARSET) {
+ const char *s;
+ chtype ch;
+
+ for (s = attr_test_string; *s != '\0'; ++s) {
+ ch = UChar(*s);
+- addch(ch | attr);
++ (void) waddch(win, ch | attr);
+ }
+ } else {
+- (void) attrset(attr);
+- addstr(attr_test_string);
+- attroff(attr);
++ (void) wattrset(win, AttrArg(attr, 0));
++ (void) waddstr(win, attr_test_string);
++ (void) wattroff(win, (int) attr);
+ }
+ if (skip)
+ printw("%*s", skip, " ");
+- printw("|");
++ MvPrintw(row, COL_ATTRSTRING + LEN_ATTRSTRING, "|");
+ if (test != A_NORMAL) {
+ if (!(termattrs() & test)) {
+ printw(" (N/A)");
+ } else {
+- if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
++ if (ncv > 0 && stdscr && (getbkgd(stdscr) & A_COLOR)) {
+ static const chtype table[] =
+ {
+ A_STANDOUT,
+@@ -1406,6 +1459,9 @@
+ #ifdef A_INVIS
+ A_INVIS,
+ #endif
++#ifdef A_ITALIC
++ A_ITALIC,
++#endif
+ A_PROTECT,
+ A_ALTCHARSET
+ };
+@@ -1427,11 +1483,13 @@
+ }
+ return row + 2;
+ }
++
++typedef struct {
++ attr_t attr;
++ NCURSES_CONST char *name;
++} ATTR_TBL;
+ /* *INDENT-OFF* */
+-static const struct {
+- chtype attr;
+- NCURSES_CONST char * name;
+-} attrs_to_test[] = {
++static const ATTR_TBL attrs_to_test[] = {
+ { A_STANDOUT, "STANDOUT" },
+ { A_REVERSE, "REVERSE" },
+ { A_BOLD, "BOLD" },
+@@ -1442,12 +1500,36 @@
+ #ifdef A_INVIS
+ { A_INVIS, "INVISIBLE" },
+ #endif
++#ifdef A_ITALIC
++ { A_ITALIC, "ITALIC" },
++#endif
+ { A_NORMAL, "NORMAL" },
+ };
+ /* *INDENT-ON* */
+
++static unsigned
++init_attr_list(ATTR_TBL * target, attr_t attrs)
++{
++ unsigned result = 0;
++ size_t n;
++
++ for (n = 0; n < SIZEOF(attrs_to_test); ++n) {
++ attr_t test = attrs_to_test[n].attr;
++ if (test == A_NORMAL || (test & attrs) != 0) {
++ target[result++] = attrs_to_test[n];
++ }
++ }
++ return result;
++}
++
+ static bool
+-attr_getc(int *skip, short *fg, short *bg, short *tx, int *ac, unsigned *kc)
++attr_getc(int *skip,
++ NCURSES_COLOR_T *fg,
++ NCURSES_COLOR_T *bg,
++ NCURSES_COLOR_T *tx,
++ int *ac,
++ unsigned *kc,
++ unsigned limit)
+ {
+ bool result = TRUE;
+ bool error = FALSE;
+@@ -1480,13 +1562,13 @@
+ break;
+ case 'v':
+ if (*kc == 0)
+- *kc = SIZEOF(attrs_to_test) - 1;
++ *kc = limit - 1;
+ else
+ *kc -= 1;
+ break;
+ case 'V':
+ *kc += 1;
+- if (*kc >= SIZEOF(attrs_to_test))
++ if (*kc >= limit)
+ *kc = 0;
+ break;
+ case '<':
+@@ -1513,110 +1595,171 @@
+ {
+ int n;
+ int skip = get_xmc();
+- short fg = COLOR_BLACK; /* color pair 0 is special */
+- short bg = COLOR_BLACK;
+- short tx = -1;
++ NCURSES_COLOR_T fg = COLOR_BLACK; /* color pair 0 is special */
++ NCURSES_COLOR_T bg = COLOR_BLACK;
++ NCURSES_COLOR_T tx = -1;
+ int ac = 0;
+ unsigned j, k;
++ WINDOW *my_wins[SIZEOF(attrs_to_test)];
++ ATTR_TBL my_list[SIZEOF(attrs_to_test)];
++ unsigned my_size = init_attr_list(my_list, termattrs());
++
++ if (my_size > 1) {
++ for (j = 0; j < my_size; ++j) {
++ my_wins[j] = subwin(stdscr,
++ 1, LEN_ATTRSTRING,
++ 2 + (int) (2 * j), COL_ATTRSTRING);
++ scrollok(my_wins[j], FALSE);
++ }
++
++ if (skip < 0)
++ skip = 0;
++
++ n = skip; /* make it easy */
++ k = my_size - 1;
++ init_attr_string();
+
+- if (skip < 0)
+- skip = 0;
+-
+- n = skip; /* make it easy */
+- k = SIZEOF(attrs_to_test) - 1;
+- init_attr_string();
+-
+- do {
+- int row = 2;
+- chtype normal = A_NORMAL | BLANK;
+- chtype extras = (chtype) ac;
++ do {
++ int row = 2;
++ chtype normal = A_NORMAL | BLANK;
++ chtype extras = (chtype) ac;
+
+- if (use_colors) {
+- short pair = (short) (fg != COLOR_BLACK || bg != COLOR_BLACK);
+- if (pair != 0) {
+- pair = 1;
+- if (init_pair(pair, fg, bg) == ERR) {
+- beep();
+- } else {
+- normal |= (chtype) COLOR_PAIR(pair);
++ if (use_colors) {
++ NCURSES_PAIRS_T pair = 0;
++ if ((fg != COLOR_BLACK) || (bg != COLOR_BLACK)) {
++ pair = 1;
++ if (init_pair(pair, fg, bg) == ERR) {
++ beep();
++ } else {
++ normal |= (chtype) COLOR_PAIR(pair);
++ }
+ }
+- }
+- if (tx >= 0) {
+- pair = 2;
+- if (init_pair(pair, tx, bg) == ERR) {
+- beep();
+- } else {
+- extras |= (chtype) COLOR_PAIR(pair);
++ if (tx >= 0) {
++ pair = 2;
++ if (init_pair(pair, tx, bg) == ERR) {
++ beep();
++ } else {
++ extras |= (chtype) COLOR_PAIR(pair);
++ normal &= ~A_COLOR;
++ }
+ }
+ }
+- }
+- bkgd(normal);
+- bkgdset(normal);
+- erase();
++ bkgd(normal);
++ bkgdset(normal);
++ erase();
+
+- box(stdscr, 0, 0);
+- MvAddStr(0, 20, "Character attribute test display");
++ box(stdscr, 0, 0);
++ MvAddStr(0, 20, "Character attribute test display");
+
+- for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
+- bool arrow = (j == k);
+- row = show_attr(row, n, arrow,
+- extras |
+- attrs_to_test[j].attr |
+- attrs_to_test[k].attr,
+- attrs_to_test[j].name);
+- }
+-
+- MvPrintw(row, 8,
+- "This terminal does %shave the magic-cookie glitch",
+- get_xmc() > -1 ? "" : "not ");
+- MvPrintw(row + 1, 8, "Enter '?' for help.");
+- show_color_attr(fg, bg, tx);
+- printw(" ACS (%d)", ac != 0);
++ for (j = 0; j < my_size; ++j) {
++ bool arrow = (j == k);
++ row = show_attr(my_wins[j], row, n, arrow,
++ normal |
++ extras |
++ my_list[j].attr |
++ my_list[k].attr,
++ my_list[j].name);
++ }
++
++ MvPrintw(row, 8,
++ "This terminal does %shave the magic-cookie glitch",
++ get_xmc() > -1 ? "" : "not ");
++ MvPrintw(row + 1, 8, "Enter '?' for help.");
++ show_color_attr(fg, bg, tx);
++ printw(" ACS (%d)", ac != 0);
+
+- refresh();
+- } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k));
++ refresh();
++ } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k, my_size));
+
+- bkgdset(A_NORMAL | BLANK);
+- erase();
+- endwin();
++ bkgdset(A_NORMAL | BLANK);
++ erase();
++ endwin();
++ } else {
++ Cannot("does not support video attributes.");
++ }
+ }
+
+ #if USE_WIDEC_SUPPORT
++static bool use_fullwidth;
+ static wchar_t wide_attr_test_string[MAX_ATTRSTRING + 1];
+
++#define FULL_LO 0xff00
++#define FULL_HI 0xff5e
++#define HALF_LO 0x20
++
++#define isFullWidth(ch) ((int)(ch) >= FULL_LO && (int)(ch) <= FULL_HI)
++#define ToNormalWidth(ch) (wchar_t) (((int)(ch) - FULL_LO) + HALF_LO)
++#define ToFullWidth(ch) (wchar_t) (((int)(ch) - HALF_LO) + FULL_LO)
++
++/*
++ * Returns an ASCII code in [32..126]
++ */
++static wchar_t
++normal_wchar(int ch)
++{
++ wchar_t result = (wchar_t) ch;
++ if (isFullWidth(ch))
++ result = ToNormalWidth(ch);
++ return result;
++}
++
++/*
++ * Returns either an ASCII code in in [32..126] or full-width in
++ * [0xff00..0xff5e], according to use_fullwidth setting.
++ */
++static wchar_t
++target_wchar(int ch)
++{
++ wchar_t result = (wchar_t) ch;
++ if (use_fullwidth) {
++ if (!isFullWidth(ch))
++ result = ToFullWidth(ch);
++ } else {
++ if (isFullWidth(ch))
++ result = ToNormalWidth(ch);
++ }
++ return result;
++}
++
+ static void
+ wide_adjust_attr_string(int adjust)
+ {
+- int first = ((int) UChar(wide_attr_test_string[0])) + adjust;
+- int last = first + LEN_ATTRSTRING;
+-
+- if (first >= ' ' && last <= '~') { /* 32..126 */
+- int j, k;
+- for (j = 0, k = first; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
+- wide_attr_test_string[j] = k;
++ wchar_t save = wide_attr_test_string[0];
++ int first = ((int) normal_wchar(save)) + adjust;
++ int j, k;
++
++ if (first >= ATTRSTRING_1ST) {
++ for (j = 0, k = first; j < MAX_ATTRSTRING; ++j, ++k) {
++ if (k > ATTRSTRING_END)
++ break;
++ wide_attr_test_string[j] = target_wchar(k);
+ if (((k + 1 - first) % 5) == 0) {
+ if (++j >= MAX_ATTRSTRING)
+ break;
+ wide_attr_test_string[j] = ' ';
+ }
+ }
+- while (j < MAX_ATTRSTRING)
+- wide_attr_test_string[j++] = ' ';
+- wide_attr_test_string[j] = '\0';
+- } else {
+- beep();
++ if ((LEN_ATTRSTRING - j) > 5) {
++ wide_attr_test_string[0] = save;
++ wide_adjust_attr_string(adjust - 1);
++ } else {
++ while (j < MAX_ATTRSTRING)
++ wide_attr_test_string[j++] = ' ';
++ wide_attr_test_string[j] = '\0';
++ }
+ }
+ }
+
+ static void
+ wide_init_attr_string(void)
+ {
+- wide_attr_test_string[0] = 'a';
++ use_fullwidth = FALSE;
++ wide_attr_test_string[0] = (wchar_t) default_attr_string();
+ wide_adjust_attr_string(0);
+ }
+
+ static void
+-set_wide_background(short pair)
++set_wide_background(NCURSES_PAIRS_T pair)
+ {
+ cchar_t normal;
+ wchar_t blank[2];
+@@ -1634,9 +1777,10 @@
+ attr_t result = A_NORMAL;
+ attr_t attr;
+ cchar_t ch;
+- short pair;
++ NCURSES_PAIRS_T pair;
+ wchar_t wch[10];
+
++ memset(&ch, 0, sizeof(ch));
+ if (getbkgrnd(&ch) != ERR) {
+ if (getcchar(&ch, wch, &attr, &pair, 0) != ERR) {
+ result = attr;
+@@ -1646,7 +1790,13 @@
+ }
+
+ static int
+-wide_show_attr(int row, int skip, bool arrow, chtype attr, short pair, const char *name)
++wide_show_attr(WINDOW *win,
++ int row,
++ int skip,
++ bool arrow,
++ chtype attr,
++ NCURSES_PAIRS_T pair,
++ const char *name)
+ {
+ int ncv = get_ncv();
+ chtype test = attr & ~WA_ALTCHARSET;
+@@ -1654,7 +1804,7 @@
+ if (arrow)
+ MvPrintw(row, 5, "-->");
+ MvPrintw(row, 8, "%s mode:", name);
+- MvPrintw(row, 24, "|");
++ MvPrintw(row, COL_ATTRSTRING - 1, "|");
+ if (skip)
+ printw("%*s", skip, " ");
+
+@@ -1663,6 +1813,8 @@
+ * character at a time (to pass its rendition directly), and use the
+ * string operation for the other attributes.
+ */
++ wmove(win, 0, 0);
++ werase(win);
+ if (attr & WA_ALTCHARSET) {
+ const wchar_t *s;
+ cchar_t ch;
+@@ -1672,20 +1824,20 @@
+ fill[0] = *s;
+ fill[1] = L'\0';
+ setcchar(&ch, fill, attr, pair, 0);
+- add_wch(&ch);
++ (void) wadd_wch(win, &ch);
+ }
+ } else {
+- attr_t old_attr;
+- short old_pair;
++ attr_t old_attr = 0;
++ NCURSES_PAIRS_T old_pair = 0;
+
+- (void) attr_get(&old_attr, &old_pair, 0);
+- (void) attr_set(attr, pair, 0);
+- addwstr(wide_attr_test_string);
+- (void) attr_set(old_attr, old_pair, 0);
++ (void) (wattr_get) (win, &old_attr, &old_pair, 0);
++ (void) wattr_set(win, attr, pair, 0);
++ (void) waddwstr(win, wide_attr_test_string);
++ (void) wattr_set(win, old_attr, old_pair, 0);
+ }
+ if (skip)
+ printw("%*s", skip, " ");
+- printw("|");
++ MvPrintw(row, COL_ATTRSTRING + LEN_ATTRSTRING, "|");
+ if (test != A_NORMAL) {
+ if (!(term_attrs() & test)) {
+ printw(" (N/A)");
+@@ -1723,7 +1875,10 @@
+ }
+
+ static bool
+-wide_attr_getc(int *skip, short *fg, short *bg, short *tx, int *ac, unsigned *kc)
++wide_attr_getc(int *skip,
++ NCURSES_COLOR_T *fg, NCURSES_COLOR_T *bg,
++ NCURSES_COLOR_T *tx, int *ac,
++ unsigned *kc, unsigned limit)
+ {
+ bool result = TRUE;
+ bool error = FALSE;
+@@ -1756,15 +1911,23 @@
+ break;
+ case 'v':
+ if (*kc == 0)
+- *kc = SIZEOF(attrs_to_test) - 1;
++ *kc = limit - 1;
+ else
+ *kc -= 1;
+ break;
+ case 'V':
+ *kc += 1;
+- if (*kc >= SIZEOF(attrs_to_test))
++ if (*kc >= limit)
+ *kc = 0;
+ break;
++ case 'w':
++ use_fullwidth = FALSE;
++ wide_adjust_attr_string(0);
++ break;
++ case 'W':
++ use_fullwidth = TRUE;
++ wide_adjust_attr_string(0);
++ break;
+ case '<':
+ wide_adjust_attr_string(-1);
+ break;
+@@ -1789,68 +1952,82 @@
+ {
+ int n;
+ int skip = get_xmc();
+- short fg = COLOR_BLACK; /* color pair 0 is special */
+- short bg = COLOR_BLACK;
+- short tx = -1;
++ NCURSES_COLOR_T fg = COLOR_BLACK; /* color pair 0 is special */
++ NCURSES_COLOR_T bg = COLOR_BLACK;
++ NCURSES_COLOR_T tx = -1;
+ int ac = 0;
+ unsigned j, k;
++ ATTR_TBL my_list[SIZEOF(attrs_to_test)];
++ WINDOW *my_wins[SIZEOF(attrs_to_test)];
++ unsigned my_size = init_attr_list(my_list, term_attrs());
++
++ if (my_size > 1) {
++ for (j = 0; j < my_size; ++j) {
++ my_wins[j] = subwin(stdscr,
++ 1, LEN_ATTRSTRING,
++ 2 + (int) (2 * j), COL_ATTRSTRING);
++ scrollok(my_wins[j], FALSE);
++ }
++
++ if (skip < 0)
++ skip = 0;
++
++ n = skip; /* make it easy */
++ k = my_size - 1;
++ wide_init_attr_string();
+
+- if (skip < 0)
+- skip = 0;
+-
+- n = skip; /* make it easy */
+- k = SIZEOF(attrs_to_test) - 1;
+- wide_init_attr_string();
+-
+- do {
+- int row = 2;
+- short pair = 0;
+- short extras = 0;
++ do {
++ int row = 2;
++ NCURSES_PAIRS_T pair = 0;
++ NCURSES_PAIRS_T extras = 0;
+
+- if (use_colors) {
+- pair = (short) (fg != COLOR_BLACK || bg != COLOR_BLACK);
+- if (pair != 0) {
+- pair = 1;
+- if (init_pair(pair, fg, bg) == ERR) {
+- beep();
++ if (use_colors) {
++ pair = (NCURSES_PAIRS_T) (fg != COLOR_BLACK || bg != COLOR_BLACK);
++ if (pair != 0) {
++ pair = 1;
++ if (init_pair(pair, fg, bg) == ERR) {
++ beep();
++ }
+ }
+- }
+- extras = pair;
+- if (tx >= 0) {
+- extras = 2;
+- if (init_pair(extras, tx, bg) == ERR) {
+- beep();
++ extras = pair;
++ if (tx >= 0) {
++ extras = 2;
++ if (init_pair(extras, tx, bg) == ERR) {
++ beep();
++ }
+ }
+ }
+- }
+- set_wide_background(pair);
+- erase();
++ set_wide_background(pair);
++ erase();
+
+- box_set(stdscr, 0, 0);
+- MvAddStr(0, 20, "Character attribute test display");
++ box_set(stdscr, 0, 0);
++ MvAddStr(0, 20, "Character attribute test display");
+
+- for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
+- row = wide_show_attr(row, n, j == k,
+- ((attr_t) ac |
+- attrs_to_test[j].attr |
+- attrs_to_test[k].attr),
+- extras,
+- attrs_to_test[j].name);
+- }
+-
+- MvPrintw(row, 8,
+- "This terminal does %shave the magic-cookie glitch",
+- get_xmc() > -1 ? "" : "not ");
+- MvPrintw(row + 1, 8, "Enter '?' for help.");
+- show_color_attr(fg, bg, tx);
+- printw(" ACS (%d)", ac != 0);
++ for (j = 0; j < my_size; ++j) {
++ row = wide_show_attr(my_wins[j], row, n, (j == k),
++ ((attr_t) ac |
++ my_list[j].attr |
++ my_list[k].attr),
++ extras,
++ my_list[j].name);
++ }
++
++ MvPrintw(row, 8,
++ "This terminal does %shave the magic-cookie glitch",
++ get_xmc() > -1 ? "" : "not ");
++ MvPrintw(row + 1, 8, "Enter '?' for help.");
++ show_color_attr(fg, bg, tx);
++ printw(" ACS (%d)", ac != 0);
+
+- refresh();
+- } while (wide_attr_getc(&n, &fg, &bg, &tx, &ac, &k));
++ refresh();
++ } while (wide_attr_getc(&n, &fg, &bg, &tx, &ac, &k, my_size));
+
+- set_wide_background(0);
+- erase();
+- endwin();
++ set_wide_background(0);
++ erase();
++ endwin();
++ } else {
++ Cannot("does not support extended video attributes.");
++ }
+ }
+ #endif
+
+@@ -1895,7 +2072,7 @@
+ } else if (color < 0) {
+ strcpy(temp, "default");
+ } else {
+- strcpy(temp, the_color_names[color]);
++ sprintf(temp, "%.*s", 16, the_color_names[color]);
+ }
+ printw("%-*.*s", width, width, temp);
+ }
+@@ -1925,6 +2102,10 @@
+ " a/A toggle altcharset off/on");
+ MvWPrintw(helpwin, row++, col,
+ " b/B toggle bold off/on");
++ if (has_colors()) {
++ MvWPrintw(helpwin, row++, col,
++ " c/C cycle used-colors through 8,16,...,COLORS");
++ }
+ MvWPrintw(helpwin, row++, col,
+ " n/N toggle text/number on/off");
+ MvWPrintw(helpwin, row++, col,
+@@ -1945,16 +2126,46 @@
+
+ #define set_color_test(name, value) if (name != value) { name = value; base_row = 0; }
+
++static int
++color_cycle(int current, int step)
++{
++ int result = current;
++ if (step < 0) {
++ if (current <= 8) {
++ result = COLORS;
++ } else {
++ result = 8;
++ if ((result * 2) > COLORS) {
++ result = COLORS;
++ } else {
++ while ((result * 2) < current) {
++ result *= 2;
++ }
++ }
++ }
++ } else {
++ if (current >= COLORS) {
++ result = 8;
++ } else {
++ result *= 2;
++ }
++ if (result > COLORS)
++ result = COLORS;
++ }
++ return result;
++}
++
+ /* generate a color test pattern */
+ static void
+ color_test(void)
+ {
+- short i;
++ NCURSES_PAIRS_T i;
+ int top = 0, width;
+ int base_row = 0;
+ int grid_top = top + 3;
+ int page_size = (LINES - grid_top);
+- int pairs_max = PAIR_NUMBER(A_COLOR) + 1;
++ int pairs_max;
++ int colors_max = COLORS;
+ int row_limit;
+ int per_row;
+ char numbered[80];
+@@ -1967,23 +2178,24 @@
+ bool opt_wide = FALSE;
+ WINDOW *helpwin;
+
+- if (COLORS * COLORS == COLOR_PAIRS) {
+- int limit = (COLORS - min_colors) * (COLORS - min_colors);
+- if (pairs_max > limit)
+- pairs_max = limit;
+- } else {
+- if (pairs_max > COLOR_PAIRS)
+- pairs_max = COLOR_PAIRS;
+- }
+-
+ while (!done) {
+ int shown = 0;
+
++ pairs_max = PAIR_NUMBER(A_COLOR) + 1;
++ if (colors_max * colors_max <= COLOR_PAIRS) {
++ int limit = (colors_max - min_colors) * (colors_max - min_colors);
++ if (pairs_max > limit)
++ pairs_max = limit;
++ } else {
++ if (pairs_max > COLOR_PAIRS)
++ pairs_max = COLOR_PAIRS;
++ }
++
+ /* this assumes an 80-column line */
+ if (opt_wide) {
+ width = 4;
+ hello = "Test";
+- per_row = (COLORS > 8) ? 16 : 8;
++ per_row = (colors_max > 8) ? 16 : 8;
+ } else {
+ width = 8;
+ hello = "Hello";
+@@ -1994,9 +2206,12 @@
+ row_limit = (pairs_max + per_row - 1) / per_row;
+
+ move(0, 0);
+- (void) printw("There are %d color pairs and %d colors%s\n",
+- pairs_max, COLORS,
+- min_colors ? " besides 'default'" : "");
++ (void) printw("There are %d color pairs and %d colors",
++ pairs_max, COLORS);
++ if (colors_max != COLORS)
++ (void) printw(" (using %d colors)", colors_max);
++ if (min_colors)
++ (void) addstr(" besides 'default'");
+
+ clrtobot();
+ MvPrintw(top + 1, 0,
+@@ -2010,28 +2225,28 @@
+ show_color_name(top + 2, (i + 1) * width, i + min_colors, opt_wide);
+
+ /* show a grid of colors, with color names/ numbers on the left */
+- for (i = (short) (base_row * per_row); i < pairs_max; i++) {
++ for (i = (NCURSES_PAIRS_T) (base_row * per_row); i < pairs_max; i++) {
+ int row = grid_top + (i / per_row) - base_row;
+ int col = (i % per_row + 1) * width;
+- short pair = i;
++ NCURSES_PAIRS_T pair = i;
+
+-#define InxToFG(i) (short) ((i % (COLORS - min_colors)) + min_colors)
+-#define InxToBG(i) (short) ((i / (COLORS - min_colors)) + min_colors)
++#define InxToFG(i) (NCURSES_COLOR_T) ((i % (colors_max - min_colors)) + min_colors)
++#define InxToBG(i) (NCURSES_COLOR_T) ((i / (colors_max - min_colors)) + min_colors)
+ if (row >= 0 && move(row, col) != ERR) {
+- short fg = InxToFG(i);
+- short bg = InxToBG(i);
++ NCURSES_COLOR_T fg = InxToFG(i);
++ NCURSES_COLOR_T bg = InxToBG(i);
+
+ init_pair(pair, fg, bg);
+- attron((attr_t) COLOR_PAIR(pair));
++ attron(COLOR_PAIR(pair));
+ if (opt_acsc)
+- attron((attr_t) A_ALTCHARSET);
++ attron(A_ALTCHARSET);
+ if (opt_bold)
+- attron((attr_t) A_BOLD);
++ attron(A_BOLD);
+ if (opt_revs)
+- attron((attr_t) A_REVERSE);
++ attron(A_REVERSE);
+
+ if (opt_nums) {
+- sprintf(numbered, "{%02X}", i);
++ sprintf(numbered, "{%02X}", (int) i);
+ hello = numbered;
+ }
+ printw("%-*.*s", width, width, hello);
+@@ -2059,6 +2274,12 @@
+ case 'B':
+ opt_bold = TRUE;
+ break;
++ case 'c':
++ colors_max = color_cycle(colors_max, -1);
++ break;
++ case 'C':
++ colors_max = color_cycle(colors_max, 1);
++ break;
+ case 'n':
+ opt_nums = FALSE;
+ break;
+@@ -2148,6 +2369,7 @@
+ int grid_top = top + 3;
+ int page_size = (LINES - grid_top);
+ int pairs_max = (unsigned short) (-1);
++ int colors_max = COLORS;
+ int row_limit;
+ int per_row;
+ char numbered[80];
+@@ -2159,26 +2381,27 @@
+ bool opt_wide = FALSE;
+ bool opt_nums = FALSE;
+ bool opt_xchr = FALSE;
+- wchar_t buffer[10];
++ wchar_t buffer[80];
+ WINDOW *helpwin;
+
+- if (COLORS * COLORS == COLOR_PAIRS) {
+- int limit = (COLORS - min_colors) * (COLORS - min_colors);
+- if (pairs_max > limit)
+- pairs_max = limit;
+- } else {
+- if (pairs_max > COLOR_PAIRS)
+- pairs_max = COLOR_PAIRS;
+- }
+-
+ while (!done) {
+ int shown = 0;
+
++ pairs_max = (unsigned short) (-1);
++ if (colors_max * colors_max <= COLOR_PAIRS) {
++ int limit = (colors_max - min_colors) * (colors_max - min_colors);
++ if (pairs_max > limit)
++ pairs_max = limit;
++ } else {
++ if (pairs_max > COLOR_PAIRS)
++ pairs_max = COLOR_PAIRS;
++ }
++
+ /* this assumes an 80-column line */
+ if (opt_wide) {
+ width = 4;
+ hello = "Test";
+- per_row = (COLORS > 8) ? 16 : 8;
++ per_row = (colors_max > 8) ? 16 : 8;
+ } else {
+ width = 8;
+ hello = "Hello";
+@@ -2197,9 +2420,12 @@
+ row_limit = (pairs_max + per_row - 1) / per_row;
+
+ move(0, 0);
+- (void) printw("There are %d color pairs and %d colors%s\n",
+- pairs_max, COLORS,
+- min_colors ? " besides 'default'" : "");
++ (void) printw("There are %d color pairs and %d colors",
++ pairs_max, COLORS);
++ if (colors_max != COLORS)
++ (void) printw(" (using %d colors)", colors_max);
++ if (min_colors)
++ (void) addstr(" besides 'default'");
+
+ clrtobot();
+ MvPrintw(top + 1, 0,
+@@ -2216,17 +2442,17 @@
+ for (i = (base_row * per_row); i < pairs_max; i++) {
+ int row = grid_top + (i / per_row) - base_row;
+ int col = (i % per_row + 1) * width;
+- short pair = (short) i;
++ NCURSES_PAIRS_T pair = (NCURSES_PAIRS_T) i;
+
+ if (row >= 0 && move(row, col) != ERR) {
+ init_pair(pair, InxToFG(i), InxToBG(i));
+- color_set(pair, NULL);
++ (void) color_set(pair, NULL);
+ if (opt_acsc)
+- attr_on((attr_t) A_ALTCHARSET, NULL);
++ attr_on(A_ALTCHARSET, NULL);
+ if (opt_bold)
+- attr_on((attr_t) A_BOLD, NULL);
++ attr_on(A_BOLD, NULL);
+ if (opt_revs)
+- attr_on((attr_t) A_REVERSE, NULL);
++ attr_on(A_REVERSE, NULL);
+
+ if (opt_nums) {
+ sprintf(numbered, "{%02X}", i);
+@@ -2261,6 +2487,12 @@
+ case 'B':
+ opt_bold = TRUE;
+ break;
++ case 'c':
++ colors_max = color_cycle(colors_max, -1);
++ break;
++ case 'C':
++ colors_max = color_cycle(colors_max, 1);
++ break;
+ case 'n':
+ opt_nums = FALSE;
+ break;
+@@ -2347,21 +2579,21 @@
+ #endif /* USE_WIDEC_SUPPORT */
+
+ static void
+-change_color(short current, int field, int value, int usebase)
++change_color(NCURSES_PAIRS_T current, int field, int value, int usebase)
+ {
+- short red, green, blue;
++ NCURSES_COLOR_T red, green, blue;
+
+ color_content(current, &red, &green, &blue);
+
+ switch (field) {
+ case 0:
+- red = (short) (usebase ? (red + value) : value);
++ red = (NCURSES_COLOR_T) (usebase ? (red + value) : value);
+ break;
+ case 1:
+- green = (short) (usebase ? (green + value) : value);
++ green = (NCURSES_COLOR_T) (usebase ? (green + value) : value);
+ break;
+ case 2:
+- blue = (short) (usebase ? (blue + value) : value);
++ blue = (NCURSES_COLOR_T) (usebase ? (blue + value) : value);
+ break;
+ }
+
+@@ -2372,7 +2604,7 @@
+ static void
+ init_all_colors(void)
+ {
+- short c;
++ NCURSES_PAIRS_T c;
+
+ for (c = 0; c < COLORS; ++c)
+ init_color(c,
+@@ -2398,18 +2630,20 @@
+ refresh();
+
+ for (i = 0; i < max_colors; i++)
+- init_pair((short) i, (short) COLOR_WHITE, (short) i);
++ init_pair((NCURSES_PAIRS_T) i,
++ (NCURSES_COLOR_T) COLOR_WHITE,
++ (NCURSES_COLOR_T) i);
+
+ MvPrintw(LINES - 2, 0, "Number: %d", value);
+
+ do {
+- short red, green, blue;
++ NCURSES_COLOR_T red, green, blue;
+
+ attron(A_BOLD);
+ MvAddStr(0, 20, "Color RGB Value Editing");
+ attroff(A_BOLD);
+
+- for (i = (short) top_color;
++ for (i = (NCURSES_COLOR_T) top_color;
+ (i - top_color < page_size)
+ && (i < max_colors); i++) {
+ char numeric[80];
+@@ -2419,34 +2653,34 @@
+ (i == current ? '>' : ' '),
+ (i < (int) SIZEOF(the_color_names)
+ ? the_color_names[i] : numeric));
+- (void) attrset((attr_t) COLOR_PAIR(i));
++ (void) attrset(AttrArg(COLOR_PAIR(i), 0));
+ addstr(" ");
+ (void) attrset(A_NORMAL);
+
+- color_content((short) i, &red, &green, &blue);
++ color_content((NCURSES_PAIRS_T) i, &red, &green, &blue);
+ addstr(" R = ");
+ if (current == i && field == 0)
+ attron(A_STANDOUT);
+- printw("%04d", red);
++ printw("%04d", (int) red);
+ if (current == i && field == 0)
+ (void) attrset(A_NORMAL);
+ addstr(", G = ");
+ if (current == i && field == 1)
+ attron(A_STANDOUT);
+- printw("%04d", green);
++ printw("%04d", (int) green);
+ if (current == i && field == 1)
+ (void) attrset(A_NORMAL);
+ addstr(", B = ");
+ if (current == i && field == 2)
+ attron(A_STANDOUT);
+- printw("%04d", blue);
++ printw("%04d", (int) blue);
+ if (current == i && field == 2)
+ (void) attrset(A_NORMAL);
+ (void) attrset(A_NORMAL);
+ printw(" ( %3d %3d %3d )",
+- scaled_rgb(red),
+- scaled_rgb(green),
+- scaled_rgb(blue));
++ (int) scaled_rgb(red),
++ (int) scaled_rgb(green),
++ (int) scaled_rgb(blue));
+ }
+
+ MvAddStr(LINES - 3, 0,
+@@ -2510,15 +2744,15 @@
+ break;
+
+ case '+':
+- change_color((short) current, field, value, 1);
++ change_color((NCURSES_PAIRS_T) current, field, value, 1);
+ break;
+
+ case '-':
+- change_color((short) current, field, -value, 1);
++ change_color((NCURSES_PAIRS_T) current, field, -value, 1);
+ break;
+
+ case '=':
+- change_color((short) current, field, value, 0);
++ change_color((NCURSES_PAIRS_T) current, field, value, 0);
+ break;
+
+ case '?':
+@@ -2545,7 +2779,9 @@
+ endwin();
+ main_menu(FALSE);
+ for (i = 0; i < max_colors; i++)
+- init_pair((short) i, (short) COLOR_WHITE, (short) i);
++ init_pair((NCURSES_PAIRS_T) i,
++ (NCURSES_COLOR_T) COLOR_WHITE,
++ (NCURSES_COLOR_T) i);
+ refresh();
+ break;
+
+@@ -2586,32 +2822,19 @@
+ * Alternate character-set stuff
+ *
+ ****************************************************************************/
+-/* *INDENT-OFF* */
+-static struct {
+- chtype attr;
+- const char *name;
+-} attrs_to_cycle[] = {
+- { A_NORMAL, "normal" },
+- { A_BOLD, "bold" },
+- { A_BLINK, "blink" },
+- { A_REVERSE, "reverse" },
+- { A_UNDERLINE, "underline" },
+-};
+-/* *INDENT-ON* */
+-
+ static bool
+-cycle_attr(int ch, unsigned *at_code, chtype *attr)
++cycle_attr(int ch, unsigned *at_code, chtype *attr, ATTR_TBL * list, unsigned limit)
+ {
+ bool result = TRUE;
+
+ switch (ch) {
+ case 'v':
+- if ((*at_code += 1) >= SIZEOF(attrs_to_cycle))
++ if ((*at_code += 1) >= limit)
+ *at_code = 0;
+ break;
+ case 'V':
+ if (*at_code == 0)
+- *at_code = SIZEOF(attrs_to_cycle) - 1;
++ *at_code = limit - 1;
+ else
+ *at_code -= 1;
+ break;
+@@ -2620,12 +2843,12 @@
+ break;
+ }
+ if (result)
+- *attr = attrs_to_cycle[*at_code].attr;
++ *attr = list[*at_code].attr;
+ return result;
+ }
+
+ static bool
+-cycle_colors(int ch, int *fg, int *bg, short *pair)
++cycle_colors(int ch, int *fg, int *bg, NCURSES_PAIRS_T *pair)
+ {
+ bool result = FALSE;
+
+@@ -2653,10 +2876,12 @@
+ break;
+ }
+ if (result) {
+- *pair = (short) (*fg != COLOR_BLACK || *bg != COLOR_BLACK);
++ *pair = (NCURSES_PAIRS_T) (*fg != COLOR_BLACK || *bg != COLOR_BLACK);
+ if (*pair != 0) {
+ *pair = 1;
+- if (init_pair(*pair, (short) *fg, (short) *bg) == ERR) {
++ if (init_pair(*pair,
++ (NCURSES_COLOR_T) *fg,
++ (NCURSES_COLOR_T) *bg) == ERR) {
+ result = FALSE;
+ }
+ }
+@@ -2715,7 +2940,7 @@
+ static void
+ call_slk_color(int fg, int bg)
+ {
+- init_pair(1, (short) bg, (short) fg);
++ init_pair(1, (NCURSES_COLOR_T) bg, (NCURSES_COLOR_T) fg);
+ slk_color(1);
+ MvPrintw(SLK_WORK, 0, "Colors %d/%d\n", fg, bg);
+ clrtoeol();
+@@ -2737,8 +2962,10 @@
+ #if HAVE_SLK_COLOR
+ int fg = COLOR_BLACK;
+ int bg = COLOR_WHITE;
+- short pair = 0;
++ NCURSES_PAIRS_T pair = 0;
+ #endif
++ ATTR_TBL my_list[SIZEOF(attrs_to_test)];
++ unsigned my_size = init_attr_list(my_list, termattrs());
+
+ c = CTRL('l');
+ #if HAVE_SLK_COLOR
+@@ -2800,7 +3027,7 @@
+ MvAddStr(SLK_WORK, 0, "Please enter the label value: ");
+ strcpy(buf, "");
+ if ((s = slk_label(c - '0')) != 0) {
+- strncpy(buf, s, 8);
++ strncpy(buf, s, (size_t) 8);
+ }
+ wGetstring(stdscr, buf, 8);
+ slk_set((c - '0'), buf, fmt);
+@@ -2819,7 +3046,7 @@
+ #endif
+
+ default:
+- if (cycle_attr(c, &at_code, &attr)) {
++ if (cycle_attr(c, &at_code, &attr, my_list, my_size)) {
+ slk_attrset(attr);
+ slk_touch();
+ slk_noutrefresh();
+@@ -2859,7 +3086,9 @@
+ unsigned at_code = 0;
+ int fg = COLOR_BLACK;
+ int bg = COLOR_WHITE;
+- short pair = 0;
++ NCURSES_PAIRS_T pair = 0;
++ ATTR_TBL my_list[SIZEOF(attrs_to_test)];
++ unsigned my_size = init_attr_list(my_list, term_attrs());
+
+ c = CTRL('l');
+ if (use_colors) {
+@@ -2955,13 +3184,13 @@
+
+ case 'F':
+ if (use_colors) {
+- fg = (short) ((fg + 1) % COLORS);
++ fg = (NCURSES_COLOR_T) ((fg + 1) % COLORS);
+ call_slk_color(fg, bg);
+ }
+ break;
+ case 'B':
+ if (use_colors) {
+- bg = (short) ((bg + 1) % COLORS);
++ bg = (NCURSES_COLOR_T) ((bg + 1) % COLORS);
+ call_slk_color(fg, bg);
+ }
+ break;
+@@ -2971,8 +3200,8 @@
+ break;
+ #endif
+ default:
+- if (cycle_attr(c, &at_code, &attr)) {
+- slk_attr_set(attr, (fg || bg), NULL);
++ if (cycle_attr(c, &at_code, &attr, my_list, my_size)) {
++ slk_attr_set(attr, (NCURSES_COLOR_T) (fg || bg), NULL);
+ slk_touch();
+ slk_noutrefresh();
+ break;
+@@ -3000,15 +3229,46 @@
+ #endif
+ #endif /* SLK_INIT */
+
+-/* ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
++static void
++show_256_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
++{
++ unsigned first = 0;
++ unsigned last = 255;
++ unsigned code;
++ int count;
++
++ erase();
++ attron(A_BOLD);
++ MvPrintw(0, 20, "Display of Character Codes %#0x to %#0x",
++ first, last);
++ attroff(A_BOLD);
++ refresh();
++
++ for (code = first; code <= last; ++code) {
++ int row = (int) (2 + (code / 16));
++ int col = (int) (5 * (code % 16));
++ IGNORE_RC(mvaddch(row, col, colored_chtype(code, attr, pair)));
++ for (count = 1; count < repeat; ++count) {
++ addch(colored_chtype(code, attr, pair));
++ }
++ }
++
++}
++
++/*
++ * Show a slice of 32 characters, allowing those to be repeated up to the
++ * screen's width.
++ *
++ * ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
+ * terminal to perform functions. The remaining codes can be graphic.
+ */
+ static void
+-show_upper_chars(unsigned first, int repeat, attr_t attr, short pair)
++show_upper_chars(int base, int pagesize, int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+- bool C1 = (first == 128);
+ unsigned code;
+- unsigned last = first + 31;
++ unsigned first = (unsigned) base;
++ unsigned last = first + (unsigned) pagesize - 2;
++ bool C1 = (first == 128);
+ int reply;
+
+ erase();
+@@ -3020,8 +3280,8 @@
+
+ for (code = first; code <= last; code++) {
+ int count = repeat;
+- int row = 2 + ((int) (code - first) % 16);
+- int col = ((int) (code - first) / 16) * COLS / 2;
++ int row = 2 + ((int) (code - first) % (pagesize / 2));
++ int col = ((int) (code - first) / (pagesize / 2)) * COLS / 2;
+ char tmp[80];
+ sprintf(tmp, "%3u (0x%x)", code, code);
+ MvPrintw(row, col, "%*s: ", COLS / 4, tmp);
+@@ -3045,7 +3305,7 @@
+ #define PC_COLS 4
+
+ static void
+-show_pc_chars(int repeat, attr_t attr, short pair)
++show_pc_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ unsigned code;
+
+@@ -3086,7 +3346,7 @@
+ }
+
+ static void
+-show_box_chars(int repeat, attr_t attr, short pair)
++show_box_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ (void) repeat;
+
+@@ -3133,7 +3393,7 @@
+ }
+
+ static void
+-show_acs_chars(int repeat, attr_t attr, short pair)
++show_acs_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ /* display the ACS character set */
+ {
+ int n;
+@@ -3195,6 +3455,7 @@
+ acs_display(void)
+ {
+ int c = 'a';
++ int pagesize = 32;
+ char *term = getenv("TERM");
+ const char *pch_kludge = ((term != 0 && strstr(term, "linux"))
+ ? "p=PC, "
+@@ -3205,8 +3466,10 @@
+ int fg = COLOR_BLACK;
+ int bg = COLOR_BLACK;
+ unsigned at_code = 0;
+- short pair = 0;
+- void (*last_show_acs) (int, attr_t, short) = 0;
++ NCURSES_PAIRS_T pair = 0;
++ void (*last_show_acs) (int, attr_t, NCURSES_PAIRS_T) = 0;
++ ATTR_TBL my_list[SIZEOF(attrs_to_test)];
++ unsigned my_size = init_attr_list(my_list, termattrs());
+
+ do {
+ switch (c) {
+@@ -3222,6 +3485,13 @@
+ else
+ beep();
+ break;
++ case 'w':
++ if (pagesize == 32) {
++ pagesize = 256;
++ } else {
++ pagesize = 32;
++ }
++ break;
+ case 'x':
+ ToggleAcs(last_show_acs, show_box_chars);
+ break;
+@@ -3257,7 +3527,7 @@
+ --repeat;
+ break;
+ default:
+- if (cycle_attr(c, &at_code, &attr)
++ if (cycle_attr(c, &at_code, &attr, my_list, my_size)
+ || cycle_colors(c, &fg, &bg, &pair)) {
+ break;
+ } else {
+@@ -3265,25 +3535,28 @@
+ }
+ break;
+ }
+- if (last_show_acs != 0)
++ if (pagesize != 32) {
++ show_256_chars(repeat, attr, pair);
++ } else if (last_show_acs != 0) {
+ last_show_acs(repeat, attr, pair);
+- else
+- show_upper_chars((unsigned) (digit * 32 + 128), repeat, attr, pair);
++ } else {
++ show_upper_chars(digit * pagesize + 128, pagesize, repeat, attr, pair);
++ }
+
+ MvPrintw(LINES - 3, 0,
+ "Note: ANSI terminals may not display C1 characters.");
+ MvPrintw(LINES - 2, 0,
+- "Select: a=ACS, x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit",
++ "Select: a=ACS, w=all x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit",
+ pch_kludge);
+ if (use_colors) {
+ MvPrintw(LINES - 1, 0,
+ "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.",
+- attrs_to_cycle[at_code].name,
++ my_list[at_code].name,
+ fg, bg);
+ } else {
+ MvPrintw(LINES - 1, 0,
+ "v/V cycles through video attributes (%s).",
+- attrs_to_cycle[at_code].name);
++ my_list[at_code].name);
+ }
+ refresh();
+ } while (!isQuit(c = Getchar()));
+@@ -3295,7 +3568,7 @@
+
+ #if USE_WIDEC_SUPPORT
+ static cchar_t *
+-merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, short pair)
++merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ int count;
+
+@@ -3312,8 +3585,55 @@
+ return dst;
+ }
+
++/*
++ * Header/legend take up no more than 8 lines, leaving 16 lines on a 24-line
++ * display. If there are no repeats, we could normally display 16 lines of 64
++ * characters (1024 total). However, taking repeats and double-width cells
++ * into account, use 256 characters for the page.
++ */
++static void
++show_paged_widechars(int base,
++ int pagesize,
++ int repeat,
++ int space,
++ attr_t attr,
++ NCURSES_PAIRS_T pair)
++{
++ int first = base * pagesize;
++ int last = first + pagesize - 1;
++ int per_line = 16;
++ cchar_t temp;
++ wchar_t code;
++ wchar_t codes[10];
++
++ erase();
++ attron(A_BOLD);
++ MvPrintw(0, 20, "Display of Character Codes %#x to %#x", first, last);
++ attroff(A_BOLD);
++
++ for (code = (wchar_t) first; (int) code <= last; code++) {
++ int row = (2 + ((int) code - first) / per_line);
++ int col = 5 * ((int) code % per_line);
++ int count;
++
++ memset(&codes, 0, sizeof(codes));
++ codes[0] = code;
++ setcchar(&temp, codes, attr, pair, 0);
++ move(row, col);
++ if (wcwidth(code) == 0 && code != 0) {
++ addch((chtype) space |
++ (A_REVERSE ^ attr) |
++ (attr_t) COLOR_PAIR(pair));
++ }
++ add_wch(&temp);
++ for (count = 1; count < repeat; ++count) {
++ add_wch(&temp);
++ }
++ }
++}
++
+ static void
+-show_upper_widechars(int first, int repeat, int space, attr_t attr, short pair)
++show_upper_widechars(int first, int repeat, int space, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ cchar_t temp;
+ wchar_t code;
+@@ -3324,7 +3644,7 @@
+ MvPrintw(0, 20, "Display of Character Codes %d to %d", first, last);
+ attroff(A_BOLD);
+
+- for (code = first; (int) code <= last; code++) {
++ for (code = (wchar_t) first; (int) code <= last; code++) {
+ int row = 2 + ((code - first) % 16);
+ int col = ((code - first) / 16) * COLS / 2;
+ wchar_t codes[10];
+@@ -3332,11 +3652,13 @@
+ int count = repeat;
+ int y, x;
+
+- memset(&codes, 0, sizeof(codes));
+- codes[0] = code;
+ sprintf(tmp, "%3ld (0x%lx)", (long) code, (long) code);
+ MvPrintw(row, col, "%*s: ", COLS / 4, tmp);
++
++ memset(&codes, 0, sizeof(codes));
++ codes[0] = code;
+ setcchar(&temp, codes, attr, pair, 0);
++
+ do {
+ /*
+ * Give non-spacing characters something to combine with. If we
+@@ -3350,16 +3672,17 @@
+ (attr_t) COLOR_PAIR(pair));
+ }
+ /*
+- * This could use add_wch(), but is done for comparison with the
+- * normal 'f' test (and to make a test-case for echo_wchar()).
+- * The screen will flicker because the erase() at the top of the
+- * function is met by the builtin refresh() in echo_wchar().
++ * This uses echo_wchar(), for comparison with the normal 'f'
++ * test (and to make a test-case for echo_wchar()). The screen
++ * may flicker because the erase() at the top of the function
++ * is met by the builtin refresh() in echo_wchar().
+ */
+ echo_wchar(&temp);
+ /*
+ * The repeat-count may make text wrap - avoid that.
+ */
+ getyx(stdscr, y, x);
++ (void) y;
+ if (x >= col + (COLS / 2) - 2)
+ break;
+ } while (--count > 0);
+@@ -3383,7 +3706,7 @@
+ #define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair)
+
+ static void
+-show_wacs_chars(int repeat, attr_t attr, short pair)
++show_wacs_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ /* display the wide-ACS character set */
+ {
+ cchar_t temp;
+@@ -3443,7 +3766,7 @@
+
+ #ifdef WACS_D_PLUS
+ static void
+-show_wacs_chars_double(int repeat, attr_t attr, short pair)
++show_wacs_chars_double(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ /* display the wide-ACS character set */
+ {
+ cchar_t temp;
+@@ -3504,7 +3827,7 @@
+
+ #ifdef WACS_T_PLUS
+ static void
+-show_wacs_chars_thick(int repeat, attr_t attr, short pair)
++show_wacs_chars_thick(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ /* display the wide-ACS character set */
+ {
+ cchar_t temp;
+@@ -3568,7 +3891,7 @@
+ #define MERGE_ATTR(n,wch) merge_wide_attr(&temp[n], wch, attr, pair)
+
+ static void
+-show_wbox_chars(int repeat, attr_t attr, short pair)
++show_wbox_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ cchar_t temp[8];
+
+@@ -3603,7 +3926,7 @@
+ #undef MERGE_ATTR
+
+ static int
+-show_2_wacs(int n, const char *name, const char *code, attr_t attr, short pair)
++show_2_wacs(int n, const char *name, const char *code, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ const int height = 16;
+ int row = 2 + (n % height);
+@@ -3612,7 +3935,7 @@
+
+ MvPrintw(row, col, "%*s : ", COLS / 4, name);
+ (void) attr_set(attr, pair, 0);
+- addstr(strcpy(temp, code));
++ addstr(strncpy(temp, code, 20));
+ (void) attr_set(A_NORMAL, 0, 0);
+ return n + 1;
+ }
+@@ -3620,7 +3943,7 @@
+ #define SHOW_UTF8(n, name, code) show_2_wacs(n, name, code, attr, pair)
+
+ static void
+-show_utf8_chars(int repeat, attr_t attr, short pair)
++show_utf8_chars(int repeat, attr_t attr, NCURSES_PAIRS_T pair)
+ {
+ int n;
+
+@@ -3680,12 +4003,15 @@
+ int digit = 0;
+ int repeat = 1;
+ int space = ' ';
++ int pagesize = 32;
+ chtype attr = A_NORMAL;
+ int fg = COLOR_BLACK;
+ int bg = COLOR_BLACK;
+ unsigned at_code = 0;
+- short pair = 0;
+- void (*last_show_wacs) (int, attr_t, short) = 0;
++ NCURSES_PAIRS_T pair = 0;
++ void (*last_show_wacs) (int, attr_t, NCURSES_PAIRS_T) = 0;
++ ATTR_TBL my_list[SIZEOF(attrs_to_test)];
++ unsigned my_size = init_attr_list(my_list, term_attrs());
+
+ do {
+ switch (c) {
+@@ -3705,6 +4031,13 @@
+ ToggleAcs(last_show_wacs, show_wacs_chars_thick);
+ break;
+ #endif
++ case 'w':
++ if (pagesize == 32) {
++ pagesize = 256;
++ } else {
++ pagesize = 32;
++ }
++ break;
+ case 'x':
+ ToggleAcs(last_show_wacs, show_wbox_chars);
+ break;
+@@ -3728,7 +4061,7 @@
+ } else if (c == '_') {
+ space = (space == ' ') ? '_' : ' ';
+ last_show_wacs = 0;
+- } else if (cycle_attr(c, &at_code, &attr)
++ } else if (cycle_attr(c, &at_code, &attr, my_list, my_size)
+ || cycle_colors(c, &fg, &bg, &pair)) {
+ if (last_show_wacs != 0)
+ break;
+@@ -3738,22 +4071,27 @@
+ }
+ break;
+ }
+- if (last_show_wacs != 0)
++ if (pagesize != 32) {
++ show_paged_widechars(digit, pagesize, repeat, space, attr, pair);
++ } else if (last_show_wacs != 0) {
+ last_show_wacs(repeat, attr, pair);
+- else
++ } else {
+ show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair);
++ }
+
+- MvPrintw(LINES - 3, 0,
+- "Select: a/d/t WACS, x box, u UTF-8, 0-9,+/- non-ASCII, </> repeat, ESC=quit");
++ MvPrintw(LINES - 4, 0,
++ "Select: a/d/t WACS, w=all x=box, u UTF-8, ^L repaint");
++ MvPrintw(LINES - 3, 2,
++ "0-9,+/- non-ASCII, </> repeat, _ space, ESC=quit");
+ if (use_colors) {
+- MvPrintw(LINES - 2, 0,
++ MvPrintw(LINES - 2, 2,
+ "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.",
+- attrs_to_cycle[at_code].name,
++ my_list[at_code].name,
+ fg, bg);
+ } else {
+- MvPrintw(LINES - 2, 0,
++ MvPrintw(LINES - 2, 2,
+ "v/V cycles through video attributes (%s).",
+- attrs_to_cycle[at_code].name);
++ my_list[at_code].name);
+ }
+ refresh();
+ } while (!isQuit(c = Getchar()));
+@@ -3779,7 +4117,7 @@
+ /* Use non-default colors if possible to exercise bce a little */
+ if (use_colors) {
+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- normal |= COLOR_PAIR(1);
++ normal |= (chtype) COLOR_PAIR(1);
+ }
+ bkgdset(normal);
+ erase();
+@@ -4115,7 +4453,8 @@
+ outerbox(ul, lr, TRUE);
+ refresh();
+
+- wrefresh(rwindow);
++ if (rwindow != 0)
++ wrefresh(rwindow);
+
+ move(0, 0);
+ clrtoeol();
+@@ -4185,10 +4524,12 @@
+ transient((FRAME *) 0, (char *) 0);
+ switch (c) {
+ case CTRL('C'):
+- if ((neww = typeCalloc(FRAME, 1)) == 0) {
++ if ((neww = typeCalloc(FRAME, (size_t) 1)) == 0) {
++ failed("acs_and_scroll");
+ goto breakout;
+ }
+ if ((neww->wind = getwindow()) == (WINDOW *) 0) {
++ failed("acs_and_scroll");
+ free(neww);
+ goto breakout;
+ }
+@@ -4265,16 +4606,20 @@
+ if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) {
+ transient(current, "Can't open screen dump file");
+ } else {
+- if ((neww = typeCalloc(FRAME, 1)) != 0) {
++ if ((neww = typeCalloc(FRAME, (size_t) 1)) != 0) {
+
+ neww->next = current ? current->next : 0;
+ neww->last = current;
+- neww->last->next = neww;
+- neww->next->last = neww;
++ if (neww->last != 0)
++ neww->last->next = neww;
++ if (neww->next != 0)
++ neww->next->last = neww;
+
+ neww->wind = getwin(fp);
+
+ wrefresh(neww->wind);
++ } else {
++ failed("acs_and_scroll");
+ }
+ (void) fclose(fp);
+ }
+@@ -4463,7 +4808,7 @@
+ mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them
+ --------------------------------------------------------------------------*/
+ static PANEL *
+-mkpanel(short color, int rows, int cols, int tly, int tlx)
++mkpanel(NCURSES_COLOR_T color, int rows, int cols, int tly, int tlx)
+ {
+ WINDOW *win;
+ PANEL *pan = 0;
+@@ -4472,8 +4817,10 @@
+ if ((pan = new_panel(win)) == 0) {
+ delwin(win);
+ } else if (use_colors) {
+- short fg = (short) ((color == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK);
+- short bg = color;
++ NCURSES_COLOR_T fg = (NCURSES_COLOR_T) ((color == COLOR_BLUE)
++ ? COLOR_WHITE
++ : COLOR_BLACK);
++ NCURSES_COLOR_T bg = color;
+
+ init_pair(color, fg, bg);
+ wbkgdset(win, (attr_t) (COLOR_PAIR(color) | ' '));
+@@ -4509,13 +4856,13 @@
+ fill_panel(win)
+ --------------------------------------------------------------------------*/
+ static void
+-init_panel(void)
++init_panel(WINDOW *win)
+ {
+ register int y, x;
+
+ for (y = 0; y < LINES - 1; y++) {
+ for (x = 0; x < COLS; x++)
+- wprintw(stdscr, "%d", (y + x) % 10);
++ wprintw(win, "%d", (y + x) % 10);
+ }
+ }
+
+@@ -4541,7 +4888,7 @@
+
+ #if USE_WIDEC_SUPPORT
+ static void
+-init_wide_panel(void)
++init_wide_panel(WINDOW *win)
+ {
+ int digit;
+ cchar_t temp[10];
+@@ -4553,7 +4900,7 @@
+ int y, x;
+ getyx(stdscr, y, x);
+ digit = (y + x / 2) % 10;
+- } while (add_wch(&temp[digit]) != ERR);
++ } while (wadd_wch(win, &temp[digit]) != ERR);
+ }
+
+ static void
+@@ -4607,7 +4954,7 @@
+ }
+
+ static void
+-demo_panels(void (*InitPanel) (void), void (*FillPanel) (PANEL *))
++demo_panels(void (*InitPanel) (WINDOW *), void (*FillPanel) (PANEL *))
+ {
+ int count;
+ int itmp;
+@@ -4616,7 +4963,7 @@
+ scrollok(stdscr, FALSE); /* we don't want stdscr to scroll! */
+ refresh();
+
+- InitPanel();
++ InitPanel(stdscr);
+ for (count = 0; count < 5; count++) {
+ px[1] = mkpanel(COLOR_RED,
+ LINES / 2 - 2,
+@@ -5226,7 +5573,7 @@
+ #ifdef A_COLOR
+ if (use_colors) {
+ init_pair(2, COLOR_CYAN, COLOR_BLUE);
+- wbkgd(subWin, COLOR_PAIR(2) | ' ');
++ wbkgd(subWin, (chtype) (COLOR_PAIR(2) | ' '));
+ }
+ #endif
+ (void) wattrset(subWin, A_BOLD);
+@@ -5449,6 +5796,8 @@
+ for (n = 0; t_tbl[n].name != 0; n++)
+ need += strlen(t_tbl[n].name) + 2;
+ buf = typeMalloc(char, need);
++ if (!buf)
++ failed("tracetrace");
+ }
+ sprintf(buf, "0x%02x = {", tlevel);
+ if (tlevel == 0) {
+@@ -5622,10 +5971,9 @@
+ set_form_sub(f, derwin(w, rows, cols, 1, 2));
+ box(w, 0, 0);
+ keypad(w, TRUE);
++ if (post_form(f) != E_OK)
++ wrefresh(w);
+ }
+-
+- if (post_form(f) != E_OK)
+- wrefresh(w);
+ }
+
+ static void
+@@ -5649,55 +5997,60 @@
+ if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK
+ && nbuf > 0) {
+ char *source = field_buffer(me, 1);
+- char temp[80];
+- long len;
+-
+- strcpy(temp, source ? source : "");
+- len = (long) (char *) field_userptr(me);
+- if (c <= KEY_MAX) {
+- if (isgraph(c) && (len + 1) < (int) sizeof(temp)) {
+- temp[len++] = (char) c;
+- temp[len] = 0;
+- set_field_buffer(me, 1, temp);
+- c = '*';
+- } else {
+- c = 0;
+- }
+- } else {
+- switch (c) {
+- case REQ_BEG_FIELD:
+- case REQ_CLR_EOF:
+- case REQ_CLR_EOL:
+- case REQ_DEL_LINE:
+- case REQ_DEL_WORD:
+- case REQ_DOWN_CHAR:
+- case REQ_END_FIELD:
+- case REQ_INS_CHAR:
+- case REQ_INS_LINE:
+- case REQ_LEFT_CHAR:
+- case REQ_NEW_LINE:
+- case REQ_NEXT_WORD:
+- case REQ_PREV_WORD:
+- case REQ_RIGHT_CHAR:
+- case REQ_UP_CHAR:
+- c = 0; /* we don't want to do inline editing */
+- break;
+- case REQ_CLR_FIELD:
+- if (len) {
+- temp[0] = 0;
++ size_t have = (source ? strlen(source) : 0) + 1;
++ size_t need = 80 + have;
++ char *temp = malloc(need);
++ size_t len;
++
++ if (temp != 0) {
++ strncpy(temp, source ? source : "", have + 1);
++ len = (size_t) (char *) field_userptr(me);
++ if (c <= KEY_MAX) {
++ if (isgraph(c) && (len + 1) < sizeof(temp)) {
++ temp[len++] = (char) c;
++ temp[len] = 0;
+ set_field_buffer(me, 1, temp);
++ c = '*';
++ } else {
++ c = 0;
+ }
+- break;
+- case REQ_DEL_CHAR:
+- case REQ_DEL_PREV:
+- if (len) {
+- temp[--len] = 0;
+- set_field_buffer(me, 1, temp);
++ } else {
++ switch (c) {
++ case REQ_BEG_FIELD:
++ case REQ_CLR_EOF:
++ case REQ_CLR_EOL:
++ case REQ_DEL_LINE:
++ case REQ_DEL_WORD:
++ case REQ_DOWN_CHAR:
++ case REQ_END_FIELD:
++ case REQ_INS_CHAR:
++ case REQ_INS_LINE:
++ case REQ_LEFT_CHAR:
++ case REQ_NEW_LINE:
++ case REQ_NEXT_WORD:
++ case REQ_PREV_WORD:
++ case REQ_RIGHT_CHAR:
++ case REQ_UP_CHAR:
++ c = 0; /* we don't want to do inline editing */
++ break;
++ case REQ_CLR_FIELD:
++ if (len) {
++ temp[0] = 0;
++ set_field_buffer(me, 1, temp);
++ }
++ break;
++ case REQ_DEL_CHAR:
++ case REQ_DEL_PREV:
++ if (len) {
++ temp[--len] = 0;
++ set_field_buffer(me, 1, temp);
++ }
++ break;
+ }
+- break;
+ }
++ set_field_userptr(me, (void *) len);
++ free(temp);
+ }
+- set_field_userptr(me, (void *) len);
+ }
+ return c;
+ }
+@@ -6045,7 +6398,7 @@
+ static void
+ overlap_test_1_attr(WINDOW *win, int flavor, int col)
+ {
+- short cpair = (short) (1 + (flavor * 2) + col);
++ NCURSES_PAIRS_T cpair = (NCURSES_PAIRS_T) (1 + (flavor * 2) + col);
+
+ switch (flavor) {
+ case 0:
+@@ -6056,11 +6409,11 @@
+ break;
+ case 2:
+ init_pair(cpair, COLOR_BLUE, COLOR_WHITE);
+- (void) wattrset(win, (attr_t) COLOR_PAIR(cpair) | A_NORMAL);
++ (void) wattrset(win, AttrArg(COLOR_PAIR(cpair), A_NORMAL));
+ break;
+ case 3:
+ init_pair(cpair, COLOR_WHITE, COLOR_BLUE);
+- (void) wattrset(win, (attr_t) COLOR_PAIR(cpair) | A_BOLD);
++ (void) wattrset(win, AttrArg(COLOR_PAIR(cpair), A_BOLD));
+ break;
+ }
+ }
+@@ -6068,7 +6421,7 @@
+ static void
+ overlap_test_2_attr(WINDOW *win, int flavor, int col)
+ {
+- short cpair = (short) (9 + (flavor * 2) + col);
++ NCURSES_PAIRS_T cpair = (NCURSES_PAIRS_T) (9 + (flavor * 2) + col);
+
+ switch (flavor) {
+ case 0:
+@@ -6483,6 +6836,9 @@
+ ," -a f,b set default-colors (assumed white-on-black)"
+ ," -d use default-colors if terminal supports them"
+ #endif
++#if HAVE_USE_ENV
++ ," -E call use_env(FALSE) to ignore $LINES and $COLUMNS"
++#endif
+ #if USE_SOFTKEYS
+ ," -e fmt specify format for soft-keys test (e)"
+ #endif
+@@ -6495,6 +6851,9 @@
+ #if USE_LIBPANEL
+ ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
+ #endif
++#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714) && !defined(__MINGW32__)
++ ," -T call use_tioctl(TRUE) to allow SIGWINCH to override environment"
++#endif
+ #ifdef TRACE
+ ," -t mask specify default trace-level (may toggle with ^T)"
+ #endif
+@@ -6517,7 +6876,7 @@
+ }
+
+ #ifdef SIGUSR1
+-static RETSIGTYPE
++static void
+ announce_sig(int sig)
+ {
+ (void) fprintf(stderr, "Handled signal %d\r\n", sig);
+@@ -6613,7 +6972,7 @@
+ command = 0;
+ for (;;) {
+ char ch = '\0';
+- if (read(fileno(stdin), &ch, 1) <= 0) {
++ if (read(fileno(stdin), &ch, (size_t) 1) <= 0) {
+ if (command == 0)
+ command = 'q';
+ break;
+@@ -6681,17 +7040,29 @@
+
+ setlocale(LC_ALL, "");
+
+- while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
++ while ((c = getopt(argc, argv, "a:dEe:fhmp:s:Tt:")) != -1) {
+ switch (c) {
+ #ifdef NCURSES_VERSION
+ case 'a':
+ assumed_colors = TRUE;
+- sscanf(optarg, "%d,%d", &default_fg, &default_bg);
++ switch (sscanf(optarg, "%d,%d", &default_fg, &default_bg)) {
++ case 0:
++ default_fg = COLOR_WHITE;
++ /* FALLTHRU */
++ case 1:
++ default_bg = COLOR_BLACK;
++ break;
++ }
+ break;
+ case 'd':
+ default_colors = TRUE;
+ break;
+ #endif
++#if HAVE_USE_ENV
++ case 'E':
++ use_env(FALSE);
++ break;
++#endif
+ case 'e':
+ my_e_param = atoi(optarg);
+ #ifdef NCURSES_VERSION
+@@ -6721,6 +7092,11 @@
+ nap_msec = (int) atol(optarg);
+ break;
+ #endif
++#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20120714) && !defined(__MINGW32__)
++ case 'T':
++ use_tioctl(TRUE);
++ break;
++#endif
+ #ifdef TRACE
+ case 't':
+ save_trace = (unsigned) strtol(optarg, 0, 0);
+@@ -6761,7 +7137,7 @@
+ bkgdset(BLANK);
+
+ /* tests, in general, will want these modes */
+- use_colors = monochrome ? FALSE : has_colors();
++ use_colors = (bool) (monochrome ? FALSE : has_colors());
+
+ if (use_colors) {
+ start_color();
+@@ -6772,7 +7148,7 @@
+ use_default_colors();
+ min_colors = -1;
+ }
+-#if NCURSES_VERSION_PATCH >= 20000708
++#if HAVE_ASSUME_DEFAULT_COLORS
+ if (assumed_colors)
+ assume_default_colors(default_fg, default_bg);
+ #endif
+@@ -6783,8 +7159,10 @@
+ max_pairs = COLOR_PAIRS; /* was > 256 ? 256 : COLOR_PAIRS */
+
+ if (can_change_color()) {
+- short cp;
++ NCURSES_PAIRS_T cp;
+ all_colors = typeMalloc(RGB_DATA, (unsigned) max_colors);
++ if (!all_colors)
++ failed("all_colors");
+ for (cp = 0; cp < max_colors; ++cp) {
+ color_content(cp,
+ &all_colors[cp].red,
+@@ -6809,9 +7187,10 @@
+ && okRGB(red)
+ && okRGB(green)
+ && okRGB(blue)) {
+- all_colors[c].red = (short) ((red * 1000) / scale);
+- all_colors[c].green = (short) ((green * 1000) / scale);
+- all_colors[c].blue = (short) ((blue * 1000) / scale);
++#define Scaled(n) (NCURSES_COLOR_T) (((n) * 1000) / scale)
++ all_colors[c].red = Scaled(red);
++ all_colors[c].green = Scaled(green);
++ all_colors[c].blue = Scaled(blue);
+ }
+ }
+ fclose(fp);
+Index: test/newdemo.c
+Prereq: 1.35
+--- ncurses-5.9/test/newdemo.c 2010-12-12 00:19:15.000000000 +0000
++++ ncurses-5.9-20141206/test/newdemo.c 2014-08-02 23:10:56.000000000 +0000
+@@ -2,7 +2,7 @@
+ * newdemo.c - A demo program using PDCurses. The program illustrate
+ * the use of colours for text output.
+ *
+- * $Id: newdemo.c,v 1.35 2010/12/12 00:19:15 tom Exp $
++ * $Id: newdemo.c,v 1.41 2014/08/02 23:10:56 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -47,7 +47,7 @@
+ /*
+ * Trap interrupt
+ */
+-static RETSIGTYPE
++static void
+ trap(int sig GCC_UNUSED)
+ {
+ endwin();
+@@ -84,7 +84,7 @@
+ if (pair > COLOR_PAIRS)
+ pair = COLOR_PAIRS;
+ init_pair((short) pair, (short) foreground, (short) background);
+- (void) wattrset(win, (attr_t) COLOR_PAIR(pair));
++ (void) wattrset(win, AttrArg(COLOR_PAIR(pair), 0));
+ }
+ }
+
+@@ -96,7 +96,7 @@
+ pair = COLOR_PAIRS;
+ attrs |= (chtype) COLOR_PAIR(pair);
+ }
+- (void) wattrset(win, attrs);
++ (void) wattrset(win, AttrArg(attrs, 0));
+ return attrs;
+ }
+
+@@ -113,12 +113,19 @@
+ getbegyx(win, by, bx);
+ sw = w / 3;
+ sh = h / 3;
+- if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL)
++
++ if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL) {
+ return 1;
+- if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL)
++ }
++ if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL) {
++ delwin(swin1);
+ return 1;
+- if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL)
++ }
++ if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL) {
++ delwin(swin1);
++ delwin(swin2);
+ return 1;
++ }
+
+ set_colors(swin1, 8, COLOR_RED, COLOR_BLUE);
+ werase(swin1);
+@@ -215,7 +222,7 @@
+ {
+ WINDOW *win;
+ int w, x, y, i, j, k;
+- char buffer[200];
++ char buffer[SIZEOF(messages) * 80];
+ const char *message;
+ int width, height;
+ chtype save[80];
+Index: test/package/debian/source/format
+--- ncurses-5.9/test/package/debian/source/format 2010-12-30 14:23:50.000000000 +0000
++++ ncurses-5.9-20141206/test/package/debian/source/format 2014-06-01 23:25:24.000000000 +0000
+@@ -1 +1 @@
+-3.0 (native)
++3.0 (quilt)
+Index: test/package/mingw-ncurses-examples.spec
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/package/mingw-ncurses-examples.spec 2013-10-26 23:30:21.000000000 +0000
+@@ -0,0 +1,109 @@
++Summary: ncurses-examples - example/test programs from ncurses
++%?mingw_package_header
++
++%define AppProgram ncurses-examples
++%define AppVersion MAJOR.MINOR
++%define AppRelease YYYYMMDD
++# $Id: mingw-ncurses-examples.spec,v 1.3 2013/10/26 23:30:21 tom Exp $
++Name: mingw32-ncurses6-examples
++Version: %{AppVersion}
++Release: %{AppRelease}
++License: X11
++Group: Development/Libraries
++Source: ncurses-examples-%{release}.tgz
++# URL: http://invisible-island.net/ncurses/
++
++BuildRequires: mingw32-ncurses6
++
++BuildRequires: mingw32-filesystem >= 95
++BuildRequires: mingw32-gcc
++BuildRequires: mingw32-binutils
++
++BuildRequires: mingw64-ncurses6
++
++BuildRequires: mingw64-filesystem >= 95
++BuildRequires: mingw64-gcc
++BuildRequires: mingw64-binutils
++
++%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion
++%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic
++
++%description -n mingw32-ncurses6-examples
++Cross-compiling support for ncurses to mingw32.
++
++The ncurses library routines are a terminal-independent method of
++updating character screens with reasonable optimization.
++
++This package is used for testing ABI 6 with cross-compiles to MinGW.
++
++%package -n mingw64-ncurses6-examples
++Summary: Curses library for MinGW64
++
++%description -n mingw64-ncurses6-examples
++Cross-compiling support for ncurses to mingw64.
++
++The ncurses library routines are a terminal-independent method of
++updating character screens with reasonable optimization.
++
++This package is used for testing ABI 6 with cross-compiles to MinGW.
++
++%prep
++
++# override location of bindir, e.g., to avoid conflict with pdcurses
++%global mingw32_bindir %{mingw32_exec_prefix}/bin/%{AppProgram}
++%global mingw64_bindir %{mingw64_exec_prefix}/bin/%{AppProgram}
++
++%define CFG_OPTS \\\
++ --disable-echo \\\
++ --enable-warnings \\\
++ --verbose
++
++%define debug_package %{nil}
++%setup -q -n ncurses-examples-%{release}
++
++%build
++mkdir BUILD-W32
++pushd BUILD-W32
++CFLAGS="%{CC_NORMAL}" \
++CC=%{mingw32_cc} \
++%mingw32_configure %{CFG_OPTS}
++cp config.status /tmp/ming32-config.status
++make
++popd
++
++mkdir BUILD-W64
++pushd BUILD-W64
++CFLAGS="%{CC_NORMAL}" \
++CC=%{mingw64_cc} \
++%mingw64_configure %{CFG_OPTS}
++cp config.status /tmp/ming64-config.status
++make
++popd
++
++%install
++rm -rf $RPM_BUILD_ROOT
++
++pushd BUILD-W32
++%{mingw32_make} install DESTDIR=$RPM_BUILD_ROOT
++popd
++
++pushd BUILD-W64
++%{mingw64_make} install DESTDIR=$RPM_BUILD_ROOT
++popd
++
++%clean
++rm -rf $RPM_BUILD_ROOT
++
++%files
++%defattr(-,root,root,-)
++
++%files -n mingw32-ncurses6-examples
++%{mingw32_bindir}/*
++
++%files -n mingw64-ncurses6-examples
++%{mingw64_bindir}/*
++
++%changelog
++
++* Sat Oct 19 2013 Thomas E. Dickey
++- initial version
+Index: test/package/ncurses-examples.spec
+Prereq: 1.2
+--- ncurses-5.9/test/package/ncurses-examples.spec 2011-03-25 17:46:44.000000000 +0000
++++ ncurses-5.9-20141206/test/package/ncurses-examples.spec 2013-10-05 23:44:19.000000000 +0000
+@@ -2,7 +2,7 @@
+ %define AppProgram ncurses-examples
+ %define AppVersion MAJOR.MINOR
+ %define AppRelease YYYYMMDD
+-# $Id: ncurses-examples.spec,v 1.2 2011/03/25 17:46:44 tom Exp $
++# $Id: ncurses-examples.spec,v 1.3 2013/10/05 23:44:19 tom Exp $
+ Name: %{AppProgram}
+ Version: %{AppVersion}
+ Release: %{AppRelease}
+@@ -51,5 +51,5 @@
+ %changelog
+ # each patch should add its ChangeLog entries here
+
+-* Fri Mar 25 2010 Thomas Dickey
++* Thu Mar 25 2010 Thomas Dickey
+ - initial version
+Index: test/programs
+Prereq: 1.19
+--- ncurses-5.9/test/programs 2009-09-12 19:44:01.000000000 +0000
++++ ncurses-5.9-20141206/test/programs 2014-06-21 15:28:49.000000000 +0000
+@@ -1,6 +1,6 @@
+-# $Id: programs,v 1.19 2009/09/12 19:44:01 tom Exp $
++# $Id: programs,v 1.25 2014/06/21 15:28:49 tom Exp $
+ ##############################################################################
+-# Copyright (c) 2006-2008,2009 Free Software Foundation, Inc. #
++# Copyright (c) 2006-2013,2014 Free Software Foundation, Inc. #
+ # #
+ # Permission is hereby granted, free of charge, to any person obtaining a #
+ # copy of this software and associated documentation files (the "Software"), #
+@@ -47,12 +47,15 @@
+ demo_terminfo $(LDFLAGS_TINFO) $(LOCAL_LIBS) demo_terminfo
+ ditto $(LDFLAGS_THREADS) $(LOCAL_LIBS) ditto
+ dots $(LDFLAGS_TINFO) $(LOCAL_LIBS) dots
++dots_curses $(LDFLAGS_CURSES) $(LOCAL_LIBS) dots_curses
+ dots_mvcur $(LDFLAGS_CURSES) $(LOCAL_LIBS) dots_mvcur
++dots_termcap $(LDFLAGS_TINFO) $(LOCAL_LIBS) dots_termcap
+ echochar $(LDFLAGS_CURSES) $(LOCAL_LIBS) echochar
+ filter $(LDFLAGS_CURSES) $(LOCAL_LIBS) filter
+ firework $(LDFLAGS_CURSES) $(LOCAL_LIBS) firework
+ firstlast $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) firstlast
+ foldkeys $(LDFLAGS_CURSES) $(LOCAL_LIBS) foldkeys
++form_driver_w $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) form_driver_w
+ gdc $(LDFLAGS_CURSES) $(LOCAL_LIBS) gdc
+ hanoi $(LDFLAGS_CURSES) $(LOCAL_LIBS) hanoi
+ hashtest $(LDFLAGS_CURSES) $(LOCAL_LIBS) hashtest
+@@ -83,6 +86,8 @@
+ test_instr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_instr
+ test_inwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_inwstr
+ test_opaque $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_opaque
++test_vid_puts $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vid_puts
++test_vidputs $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_vidputs
+ testaddch $(LDFLAGS_CURSES) $(LOCAL_LIBS) testaddch
+ testcurs $(LDFLAGS_CURSES) $(LOCAL_LIBS) testcurs
+ testscanw $(LDFLAGS_CURSES) $(LOCAL_LIBS) testscanw
+Index: test/railroad.c
+Prereq: 1.19
+--- ncurses-5.9/test/railroad.c 2009-10-24 21:37:56.000000000 +0000
++++ ncurses-5.9-20141206/test/railroad.c 2013-09-28 22:02:17.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2000-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2000-2011,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /*
+ * Author: Thomas E. Dickey - 2000
+ *
+- * $Id: railroad.c,v 1.19 2009/10/24 21:37:56 tom Exp $
++ * $Id: railroad.c,v 1.21 2013/09/28 22:02:17 tom Exp $
+ *
+ * A simple demo of the termcap interface.
+ */
+@@ -55,20 +55,20 @@
+
+ static bool interrupted = FALSE;
+
+-static int
+-outc(TPUTS_ARG c)
++static
++TPUTS_PROTO(outc, c)
+ {
+ int rc = OK;
+
+ if (interrupted) {
+ char tmp = (char) c;
+- if (write(STDOUT_FILENO, &tmp, 1) == -1)
++ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1)
+ rc = ERR;
+ } else {
+ if (putc(c, stdout) == EOF)
+ rc = ERR;
+ }
+- return rc;
++ TPUTS_RETURN(rc);
+ }
+
+ static void
+Index: test/rain.c
+Prereq: 1.38
+--- ncurses-5.9/test/rain.c 2010-11-13 20:11:46.000000000 +0000
++++ ncurses-5.9-20141206/test/rain.c 2014-08-02 17:24:07.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: rain.c,v 1.38 2010/11/13 20:11:46 tom Exp $
++ * $Id: rain.c,v 1.41 2014/08/02 17:24:07 tom Exp $
+ */
+ #include <test.priv.h>
+
+@@ -102,10 +102,7 @@
+ --j;
+ if (has_colors()) {
+ int z = (int) (3 * ranf());
+- chtype color = (chtype) COLOR_PAIR(z);
+- if (z)
+- color |= A_BOLD;
+- (void) attrset(color);
++ (void) attrset(AttrArg(COLOR_PAIR(z), (z ? A_BOLD : A_NORMAL)));
+ }
+ return j;
+ }
+@@ -222,7 +219,7 @@
+ * Find myself in the list of threads so we can count the number of loops.
+ */
+ for (mystats = 0; mystats < MAX_THREADS; ++mystats) {
+-#ifdef __MINGW32__
++#if defined(__MINGW32__) && !defined(__WINPTHREADS_VERSION)
+ if (drop_threads[mystats].myself.p == pthread_self().p)
+ #else
+ if (drop_threads[mystats].myself == pthread_self())
+@@ -256,7 +253,7 @@
+ /*
+ * The description of pthread_create() is misleading, since it implies that
+ * threads will exit cleanly after their function returns.
+- *
++ *
+ * Since they do not (and the number of threads is limited by system
+ * resources), make a limited number of threads, and signal any that are
+ * waiting when we want a thread past that limit.
+Index: test/redraw.c
+Prereq: 1.5
+--- ncurses-5.9/test/redraw.c 2010-05-01 22:04:08.000000000 +0000
++++ ncurses-5.9-20141206/test/redraw.c 2012-12-08 20:46:02.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2006-2007,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2006-2011,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: redraw.c,v 1.5 2010/05/01 22:04:08 tom Exp $
++ * $Id: redraw.c,v 1.8 2012/12/08 20:46:02 tom Exp $
+ *
+ * Demonstrate the redrawwin() and wredrawln() functions.
+ * Thomas Dickey - 2006/11/4
+@@ -113,7 +113,7 @@
+ * using mvcur(). It is ifdef'd for NCURSES, since X/Open does
+ * not define the case where the old location is unknown.
+ */
+- system("date");
++ IGNORE_RC(system("date"));
+ mvcur(-1, -1, y, x);
+ break;
+ #endif
+Index: test/tclock.c
+Prereq: 1.30
+--- ncurses-5.9/test/tclock.c 2011-03-22 09:16:00.000000000 +0000
++++ ncurses-5.9-20141206/test/tclock.c 2014-08-02 16:37:03.000000000 +0000
+@@ -1,4 +1,4 @@
+-/* $Id: tclock.c,v 1.30 2011/03/22 09:16:00 tom Exp $ */
++/* $Id: tclock.c,v 1.34 2014/08/02 16:37:03 tom Exp $ */
+
+ #include <test.priv.h>
+
+@@ -53,14 +53,14 @@
+
+ /* Plot a point */
+ static void
+-plot(int x, int y, char col)
++plot(int x, int y, int col)
+ {
+ MvAddCh(y, x, (chtype) col);
+ }
+
+ /* Draw a diagonal(arbitrary) line using Bresenham's alogrithm. */
+ static void
+-dline(int pair, int from_x, int from_y, int x2, int y2, char ch)
++dline(int pair, int from_x, int from_y, int x2, int y2, int ch)
+ {
+ int dx, dy;
+ int ax, ay;
+@@ -69,7 +69,7 @@
+ int d;
+
+ if (has_colors())
+- (void) attrset((attr_t) COLOR_PAIR(pair));
++ (void) attrset(AttrArg(COLOR_PAIR(pair), 0));
+
+ dx = x2 - from_x;
+ dy = y2 - from_y;
+@@ -135,8 +135,8 @@
+ short my_bg = COLOR_BLACK;
+ #if HAVE_GETTIMEOFDAY
+ struct timeval current;
+- double fraction = 0.0;
+ #endif
++ double fraction = 0.0;
+
+ setlocale(LC_ALL, "");
+
+@@ -216,12 +216,12 @@
+ attroff(A_REVERSE);
+
+ if (has_colors())
+- (void) attrset(COLOR_PAIR(1));
++ (void) attrset(AttrArg(COLOR_PAIR(1), 0));
+
+ dline(1, cx, cy, cx + sdx, cy - sdy, 'O');
+
+ if (has_colors())
+- (void) attrset(COLOR_PAIR(0));
++ (void) attrset(AttrArg(COLOR_PAIR(0), 0));
+
+ text = ctime(&tim);
+ MvPrintw(2, 0, "%.*s", (int) (strlen(text) - 1), text);
+Index: test/test.priv.h
+Prereq: 1.103
+--- ncurses-5.9/test/test.priv.h 2011-03-22 09:15:45.000000000 +0000
++++ ncurses-5.9-20141206/test/test.priv.h 2014-10-25 01:20:34.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ /****************************************************************************
+ * Author: Thomas E. Dickey 1996-on *
+ ****************************************************************************/
+-/* $Id: test.priv.h,v 1.103 2011/03/22 09:15:45 tom Exp $ */
++/* $Id: test.priv.h,v 1.131 2014/10/25 01:20:34 tom Exp $ */
+
+ #ifndef __TEST_PRIV_H
+ #define __TEST_PRIV_H 1
+@@ -58,6 +58,10 @@
+ /*
+ * Fallback definitions to accommodate broken compilers.
+ */
++#ifndef HAVE_ASSUME_DEFAULT_COLORS
++#define HAVE_ASSUME_DEFAULT_COLORS 0
++#endif
++
+ #ifndef HAVE_CURSES_VERSION
+ #define HAVE_CURSES_VERSION 0
+ #endif
+@@ -158,6 +162,10 @@
+ #define HAVE_RIPOFFLINE 0
+ #endif
+
++#ifndef HAVE_SCR_DUMP
++#define HAVE_SCR_DUMP 0
++#endif
++
+ #ifndef HAVE_SETUPTERM
+ #define HAVE_SETUPTERM 0
+ #endif
+@@ -170,14 +178,30 @@
+ #define HAVE_SLK_INIT 0
+ #endif
+
++#ifndef HAVE_SYS_IOCTL_H
++#define HAVE_SYS_IOCTL_H 0
++#endif
++
++#ifndef HAVE_SYS_SELECT_H
++#define HAVE_SYS_SELECT_H 0
++#endif
++
+ #ifndef HAVE_TERMATTRS
+ #define HAVE_TERMATTRS 0
+ #endif
+
++#ifndef HAVE_TERMIOS_H
++#define HAVE_TERMIOS_H 0
++#endif
++
+ #ifndef HAVE_TERMNAME
+ #define HAVE_TERMNAME 0
+ #endif
+
++#ifndef HAVE_TERM_ENTRY_H
++#define HAVE_TERM_ENTRY_H 0
++#endif
++
+ #ifndef HAVE_TGETENT
+ #define HAVE_TGETENT 0
+ #endif
+@@ -202,6 +226,30 @@
+ #define HAVE_USE_DEFAULT_COLORS 0
+ #endif
+
++#ifndef HAVE_USE_ENV
++#define HAVE_USE_ENV 0
++#endif
++
++#ifndef HAVE_USE_EXTENDED_NAMES
++#define HAVE_USE_EXTENDED_NAMES 0
++#endif
++
++#ifndef HAVE_USE_SCREEN
++#define HAVE_USE_SCREEN 0
++#endif
++
++#ifndef HAVE_USE_WINDOW
++#define HAVE_USE_WINDOW 0
++#endif
++
++#ifndef HAVE_VIDPUTS
++#define HAVE_VIDPUTS 0
++#endif
++
++#ifndef HAVE_VID_PUTS
++#define HAVE_VID_PUTS 0
++#endif
++
+ #ifndef HAVE_WRESIZE
+ #define HAVE_WRESIZE 0
+ #endif
+@@ -222,6 +270,13 @@
+ #define NO_LEAKS 0
+ #endif
+
++/*
++ * Workaround for HPUX
++ */
++#if defined(__hpux) && !defined(NCURSES_VERSION)
++#define _ACS_COMPAT_CODE /* needed for acs_map vs __acs_map */
++#endif
++
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <string.h>
+@@ -269,21 +324,18 @@
+
+ /*
+ * Not all curses.h implementations include unctrl.h,
+- * Solaris 10 xpg4 for example.
+ */
+-#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
+-#if defined(HAVE_NCURSESW_NCURSES_H)
++#if defined(HAVE_NCURSESW_UNCTRL_H)
+ #include <ncursesw/unctrl.h>
+-#elif defined(HAVE_NCURSES_NCURSES_H)
++#elif defined(HAVE_NCURSES_UNCTRL_H)
+ #include <ncurses/unctrl.h>
+-#else
++#elif defined(HAVE_UNCTRL_H)
+ #include <unctrl.h>
+ #endif
+-#endif
+
+ #if HAVE_GETOPT_H
+ #include <getopt.h>
+-#else
++#elif !defined(HAVE_GETOPT_HEADER)
+ /* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables
+ * doesn't hurt.
+ */
+@@ -323,17 +375,20 @@
+ #endif
+
+ #if !USE_SOFTKEYS
+-#define slk_init() /* nothing */
+-#define slk_restore() /* nothing */
+-#define slk_clear() /* nothing */
++#define slk_init() /* nothing */
++#define slk_restore() /* nothing */
++#define slk_clear() /* nothing */
+ #endif
+
+ #ifndef HAVE_WSYNCDOWN
+-#define wsyncdown(win) /* nothing */
++#define wsyncdown(win) /* nothing */
+ #endif
+
+ #ifndef USE_WIDEC_SUPPORT
+-#if (defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5)) && defined(WACS_ULCORNER)
++#if (defined(_XOPEN_SOURCE_EXTENDED) \
++ || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) \
++ || (defined(NCURSES_WIDECHAR) && (NCURSES_WIDECHAR - 0 < 1))) \
++ && defined(WACS_ULCORNER)
+ #define USE_WIDEC_SUPPORT 1
+ #else
+ #define USE_WIDEC_SUPPORT 0
+@@ -385,6 +440,14 @@
+ #define NCURSES_CH_T cchar_t
+ #endif
+
++#ifndef NCURSES_COLOR_T
++#define NCURSES_COLOR_T short
++#endif
++
++#ifndef NCURSES_PAIRS_T
++#define NCURSES_PAIRS_T short
++#endif
++
+ #ifndef NCURSES_OPAQUE
+ #define NCURSES_OPAQUE 0
+ #endif
+@@ -507,7 +570,7 @@
+ if ((count = getcchar(s, NULL, NULL, NULL, NULL)) > 0) { \
+ wchar_t test_wch[CCHARW_MAX + 2]; \
+ attr_t test_attrs; \
+- short test_pair; \
++ NCURSES_PAIRS_T test_pair; \
+ \
+ if (getcchar( s, test_wch, &test_attrs, &test_pair, NULL) == OK \
+ && test_wch[0] != L'\0') { \
+@@ -576,6 +639,17 @@
+ #define TIGETSTR(ti,tc) tgetstr(tc,&area_pointer)
+ #endif
+
++/*
++ * So far (2013 - more than ten years), only ncurses implements
++ * use_extended_names().
++ */
++#if defined(NCURSES_XNAMES)
++#elif defined(NCURSES_VERSION) && defined(HAVE_TERM_ENTRY_H) && HAVE_TERM_ENTRY_H
++#define NCURSES_XNAMES 1
++#else
++#define NCURSES_XNAMES 0
++#endif
++
+ /* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list
+ * (which is incompatible with legacy usage, doesn't solve any problems).
+ */
+@@ -593,9 +667,9 @@
+ #define ExitProgram(code) _nc_free_tinfo(code)
+ #endif
+ #else
+-#define typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
+-#define typeCalloc(type,elts) (type *) calloc((elts), sizeof(type))
+-#define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
++#define typeMalloc(type,n) (type *) malloc((size_t)(n) * sizeof(type))
++#define typeCalloc(type,elts) (type *) calloc((size_t)(elts), sizeof(type))
++#define typeRealloc(type,n,p) (type *) realloc(p, (size_t)(n) * sizeof(type))
+ #endif
+
+ #ifndef ExitProgram
+@@ -609,8 +683,32 @@
+ #define EXIT_FAILURE 1
+ #endif
+
+-#ifdef __MINGW32__
++#if defined(__MINGW32__) || defined(USE_WIN32CON_DRIVER)
++
++#if defined(PDCURSES)
++#ifdef WINVER
++# if WINVER < 0x0501
++# error WINVER must at least be 0x0501
++# endif
++#else
++# define WINVER 0x0501
++#endif
++#include <windows.h>
++#include <sys/time.h> /* for struct timeval */
++#undef sleep
++#define sleep(n) Sleep((n) * 1000)
++#define SIGHUP 1
++#define SIGKILL 9
++#define getlogin() "username"
++
++#elif defined(HAVE_NCURSESW_NCURSES_H)
++#include <ncursesw/nc_mingw.h>
++#elif defined(HAVE_NCURSES_NCURSES_H)
++#include <ncurses/nc_mingw.h>
++#else
+ #include <nc_mingw.h>
++#endif
++
+ /* conflicts in test/firstlast.c */
+ #undef large
+ #undef small
+@@ -653,25 +751,32 @@
+ * The same would be needed for HPUX 10.20
+ */
+ #ifndef TPUTS_ARG
++#define TPUTS_ARG int
++#endif
++
+ #if defined(sun) && !defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
++#undef TPUTS_ARG
+ #define TPUTS_ARG char
+ extern char *tgoto(char *, int, int); /* available, but not prototyped */
+-#else
+-#define TPUTS_ARG int
+ #endif
++
++#ifndef TPUTS_PROTO
++#define TPUTS_PROTO(func,value) int func(TPUTS_ARG value)
++#endif
++
++#ifndef TPUTS_RETURN
++#define TPUTS_RETURN(value) return value
+ #endif
+
+ /*
+ * Workarounds for Solaris's X/Open curses
+ */
+-#if defined(sun) && defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
+ #if !defined(KEY_MIN) && defined(__KEY_MIN)
+ #define KEY_MIN __KEY_MIN
+ #endif
+ #if !defined(KEY_MAX) && defined(__KEY_MIN)
+ #define KEY_MAX __KEY_MAX
+ #endif
+-#endif
+
+ /*
+ * Workaround to build with Sun's default SVr4 curses.
+@@ -702,23 +807,10 @@
+ #define CONST_MENUS /* nothing */
+ #endif
+
+-#ifndef HAVE_USE_WINDOW
+-#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915) || !NCURSES_EXT_FUNCS
+-#define HAVE_USE_WINDOW 0
+-#else
+-#define HAVE_USE_WINDOW 1
+-#endif
+-#endif
+-
+ /*
+ * Simplify setting up demo of threading with these macros.
+ */
+
+-#if !HAVE_USE_WINDOW
+-typedef int (*NCURSES_WINDOW_CB) (WINDOW *, void *);
+-typedef int (*NCURSES_SCREEN_CB) (SCREEN *, void *);
+-#endif
+-
+ #if HAVE_USE_WINDOW
+ #define USING_WINDOW(w,func) use_window(w, (NCURSES_WINDOW_CB) func, w)
+ #define USING_WINDOW2(w,func,data) use_window(w, (NCURSES_WINDOW_CB) func, data)
+@@ -745,6 +837,8 @@
+ #define USE_TRACE 0
+ #endif
+
++#define Trace2(p) /* nothing */
++
+ #define MvAddCh (void) mvaddch
+ #define MvWAddCh (void) mvwaddch
+ #define MvAddStr (void) mvaddstr
+@@ -758,6 +852,15 @@
+ #define MvWVLine (void) mvwvline
+
+ /*
++ * The macro likely uses unsigned values, while X/Open prototype uses int.
++ */
++#if defined(wattrset) || defined(PDCURSES)
++#define AttrArg(p,a) (attr_t) ((attr_t)(p) | (attr_t)(a))
++#else
++#define AttrArg(p,a) (int) ((attr_t)(p) | (attr_t)(a))
++#endif
++
++/*
+ * Workaround for defective implementation of gcc attribute warn_unused_result
+ */
+ #if defined(__GNUC__) && defined(_FORTIFY_SOURCE)
+Index: test/test_add_wchstr.c
+Prereq: 1.15
+--- ncurses-5.9/test/test_add_wchstr.c 2011-01-15 18:15:11.000000000 +0000
++++ ncurses-5.9-20141206/test/test_add_wchstr.c 2014-08-02 17:24:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010,2011 Free Software Foundation, Inc. *
++ * Copyright (c) 2010-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: test_add_wchstr.c,v 1.15 2011/01/15 18:15:11 tom Exp $
++ * $Id: test_add_wchstr.c,v 1.21 2014/08/02 17:24:55 tom Exp $
+ *
+ * Demonstrate the waddwchstr() and wadd_wch functions.
+ * Thomas Dickey - 2009/9/12
+@@ -90,6 +90,8 @@
+ if (need > temp_length) { \
+ temp_length = need * 2; \
+ temp_buffer = typeRealloc(cchar_t, temp_length, temp_buffer); \
++ if (!temp_buffer) \
++ failed("TempBuffer"); \
+ } \
+ have[0] = 0; \
+ have[1] = 0; \
+@@ -101,7 +103,7 @@
+ && (temp = unctrl((chtype) have[0])) != 0 \
+ && strlen(temp) > 1) { \
+ while (*temp != '\0') { \
+- have[0] = *temp++; \
++ have[0] = (wchar_t) *temp++; \
+ setcchar(&temp_buffer[n++], have, A_NORMAL, 0, NULL); \
+ } \
+ } else { \
+@@ -208,7 +210,7 @@
+ result += 2;
+ break;
+ default:
+- result += wcwidth(ch);
++ result += wcwidth((wchar_t) ch);
+ if (ch < 32)
+ ++result;
+ break;
+@@ -317,6 +319,15 @@
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
++
++ /*
++ * Show the characters added in color, to distinguish from those that
++ * are shifted.
++ */
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ }
+ }
+
+ limit = LINES - 5;
+@@ -350,14 +361,8 @@
+
+ doupdate();
+
+- /*
+- * Show the characters added in color, to distinguish from those that
+- * are shifted.
+- */
+ if (has_colors()) {
+- start_color();
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- wbkgdset(work, COLOR_PAIR(1) | ' ');
++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
+ }
+
+ while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
+@@ -366,11 +371,13 @@
+ case key_RECUR:
+ test_add_wchstr(level + 1);
+
+- touchwin(look);
++ if (look)
++ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+- wnoutrefresh(look);
++ if (look)
++ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+@@ -461,7 +468,7 @@
+ }
+ break;
+ default:
+- buffer[length++] = ch;
++ buffer[length++] = (wchar_t) ch;
+ buffer[length] = '\0';
+
+ /* put the string in, one character at a time */
+@@ -514,8 +521,8 @@
+ break;
+ }
+ }
++ delwin(show);
+ if (level > 0) {
+- delwin(show);
+ delwin(work);
+ delwin(look);
+ }
+Index: test/test_addchstr.c
+Prereq: 1.13
+--- ncurses-5.9/test/test_addchstr.c 2010-12-12 01:28:24.000000000 +0000
++++ ncurses-5.9-20141206/test/test_addchstr.c 2012-12-16 00:36:27.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: test_addchstr.c,v 1.13 2010/12/12 01:28:24 tom Exp $
++ * $Id: test_addchstr.c,v 1.18 2012/12/16 00:36:27 tom Exp $
+ *
+ * Demonstrate the waddchstr() and waddch functions.
+ * Thomas Dickey - 2009/9/12
+@@ -101,6 +101,8 @@
+ if (need > temp_length) {
+ temp_length = need * 2;
+ temp_buffer = typeRealloc(chtype, temp_length, temp_buffer);
++ if (!temp_buffer)
++ failed("TempBuffer");
+ }
+ do {
+ const char *s;
+@@ -237,6 +239,15 @@
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
++
++ /*
++ * Show the characters added in color, to distinguish from those that
++ * are shifted.
++ */
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ }
+ }
+
+ limit = LINES - 5;
+@@ -270,14 +281,8 @@
+
+ doupdate();
+
+- /*
+- * Show the characters added in color, to distinguish from those that
+- * are shifted.
+- */
+ if (has_colors()) {
+- start_color();
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- show_attr = COLOR_PAIR(1);
++ show_attr = (attr_t) COLOR_PAIR(1);
+ wbkgdset(work, show_attr | ' ');
+ } else {
+ show_attr = A_STANDOUT;
+@@ -289,11 +294,13 @@
+ case key_RECUR:
+ test_adds(level + 1);
+
+- touchwin(look);
++ if (look)
++ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+- wnoutrefresh(look);
++ if (look)
++ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+@@ -445,10 +452,10 @@
+ }
+ }
+ if (level > 0) {
+- delwin(show);
+ delwin(work);
+ delwin(look);
+ }
++ delwin(show);
+ }
+
+ static void
+Index: test/test_addstr.c
+Prereq: 1.6
+--- ncurses-5.9/test/test_addstr.c 2010-12-12 00:17:37.000000000 +0000
++++ ncurses-5.9-20141206/test/test_addstr.c 2012-12-16 00:14:10.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: test_addstr.c,v 1.6 2010/12/12 00:17:37 tom Exp $
++ * $Id: test_addstr.c,v 1.10 2012/12/16 00:14:10 tom Exp $
+ *
+ * Demonstrate the waddstr() and waddch functions.
+ * Thomas Dickey - 2009/9/12
+@@ -161,6 +161,15 @@
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
++
++ /*
++ * Show the characters added in color, to distinguish from those that
++ * are shifted.
++ */
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ }
+ }
+
+ limit = LINES - 5;
+@@ -194,14 +203,8 @@
+
+ doupdate();
+
+- /*
+- * Show the characters added in color, to distinguish from those that
+- * are shifted.
+- */
+ if (has_colors()) {
+- start_color();
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- wbkgdset(work, COLOR_PAIR(1) | ' ');
++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
+ }
+
+ while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
+@@ -210,11 +213,13 @@
+ case key_RECUR:
+ test_adds(level + 1);
+
+- touchwin(look);
++ if (look)
++ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+- wnoutrefresh(look);
++ if (look)
++ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+@@ -361,8 +366,8 @@
+ break;
+ }
+ }
++ delwin(show);
+ if (level > 0) {
+- delwin(show);
+ delwin(work);
+ delwin(look);
+ }
+Index: test/test_addwstr.c
+Prereq: 1.6
+--- ncurses-5.9/test/test_addwstr.c 2010-12-12 00:18:00.000000000 +0000
++++ ncurses-5.9-20141206/test/test_addwstr.c 2014-08-02 17:24:55.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 2009-2012,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: test_addwstr.c,v 1.6 2010/12/12 00:18:00 tom Exp $
++ * $Id: test_addwstr.c,v 1.12 2014/08/02 17:24:55 tom Exp $
+ *
+ * Demonstrate the waddwstr() and wadd_wch functions.
+ * Thomas Dickey - 2009/9/12
+@@ -137,7 +137,7 @@
+ result += 2;
+ break;
+ default:
+- result += wcwidth(ch);
++ result += wcwidth((wchar_t) ch);
+ if (ch < 32)
+ ++result;
+ break;
+@@ -233,8 +233,9 @@
+ WINDOW *work = 0;
+ WINDOW *show = 0;
+ int margin = (2 * MY_TABSIZE) - 1;
+- Options option = ((m_opt ? oMove : oDefault)
+- | ((w_opt || (level > 0)) ? oWindow : oDefault));
++ Options option = (Options) ((int) (m_opt ? oMove : oDefault)
++ | (int) ((w_opt || (level > 0))
++ ? oWindow : oDefault));
+
+ if (first) {
+ static char cmd[80];
+@@ -246,6 +247,15 @@
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
++
++ /*
++ * Show the characters inserted in color, to distinguish from those that
++ * are shifted.
++ */
++ if (has_colors()) {
++ start_color();
++ init_pair(1, COLOR_WHITE, COLOR_BLUE);
++ }
+ }
+
+ limit = LINES - 5;
+@@ -279,14 +289,8 @@
+
+ doupdate();
+
+- /*
+- * Show the characters inserted in color, to distinguish from those that
+- * are shifted.
+- */
+ if (has_colors()) {
+- start_color();
+- init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- wbkgdset(work, COLOR_PAIR(1) | ' ');
++ wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
+ }
+
+ while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) {
+@@ -295,11 +299,13 @@
+ case key_RECUR:
+ test_inserts(level + 1);
+
+- touchwin(look);
++ if (look)
++ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+- wnoutrefresh(look);
++ if (look)
++ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+@@ -392,7 +398,7 @@
+ ch = '\b';
+ /* FALLTHRU */
+ default:
+- buffer[length++] = ch;
++ buffer[length++] = (wchar_t) ch;
+ buffer[length] = '\0';
+
+ /* put the string in, one character at a time */
+@@ -445,8 +451,8 @@
+ break;
+ }
+ }
++ delwin(show);
+ if (level > 0) {
+- delwin(show);
+ delwin(work);
+ delwin(look);
+ }
+Index: test/test_getstr.c
+Prereq: 1.9
+--- ncurses-5.9/test/test_getstr.c 2009-08-29 19:02:25.000000000 +0000
++++ ncurses-5.9-20141206/test/test_getstr.c 2012-07-07 18:22:49.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 2007-2008,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 2007-2009,2012 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -26,7 +26,7 @@
+ * authorization. *
+ ****************************************************************************/
+ /*
+- * $Id: test_getstr.c,v 1.9 2009/08/29 19:02:25 tom Exp $
++ * $Id: test_getstr.c,v 1.10 2012/07/07 18:22:49 tom Exp $
+ *
+ * Author: Thomas E Dickey
+ *
+@@ -58,6 +58,15 @@
+ eMaxFlavor
+ } Flavors;
+
++/*
++ * Return-code is OK/ERR or a keyname.
++ */
++static const char *
++ok_keyname(int code)
++{
++ return ((code == OK) ? "OK" : ((code == ERR) ? "ERR" : keyname(code)));
++}
++
+ static bool
+ Quit(int ch)
+ {
+@@ -310,7 +319,7 @@
+ }
+ noecho();
+ (void) wattrset(txtwin, A_NORMAL);
+- wprintw(strwin, "%d:%s", rc, buffer);
++ wprintw(strwin, "%s:%s", ok_keyname(rc), buffer);
+ wnoutrefresh(strwin);
+ break;
+ default:
+Index: test/test_vid_puts.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/test_vid_puts.c 2014-07-19 23:09:28.000000000 +0000
+@@ -0,0 +1,148 @@
++/****************************************************************************
++ * Copyright (c) 2013,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++/*
++ * $Id: test_vid_puts.c,v 1.6 2014/07/19 23:09:28 tom Exp $
++ *
++ * Demonstrate the vid_puts and vid_attr functions.
++ * Thomas Dickey - 2013/01/12
++ */
++
++#define USE_TINFO
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT && HAVE_SETUPTERM && HAVE_VID_PUTS
++
++#define valid(s) ((s != 0) && s != (char *)-1)
++
++static FILE *my_fp;
++static bool p_opt = FALSE;
++
++static
++TPUTS_PROTO(outc, c)
++{
++ int rc = c;
++
++ rc = putc(c, my_fp);
++ TPUTS_RETURN(rc);
++}
++
++static bool
++outs(const char *s)
++{
++ if (valid(s)) {
++ tputs(s, 1, outc);
++ return TRUE;
++ }
++ return FALSE;
++}
++
++static void
++cleanup(void)
++{
++ outs(exit_attribute_mode);
++ if (!outs(orig_colors))
++ outs(orig_pair);
++ outs(cursor_normal);
++}
++
++static void
++change_attr(chtype attr)
++{
++ if (p_opt) {
++ vid_puts(attr, (short) 0, (void *) 0, outc);
++ } else {
++ vid_attr(attr, (short) 0, (void *) 0);
++ }
++}
++
++static void
++test_vid_puts(void)
++{
++ fprintf(my_fp, "Name: ");
++ change_attr(A_BOLD);
++ fputs("Bold", my_fp);
++ change_attr(A_REVERSE);
++ fputs(" Reverse", my_fp);
++ change_attr(A_NORMAL);
++ fputs("\n", my_fp);
++}
++
++static void
++usage(void)
++{
++ static const char *tbl[] =
++ {
++ "Usage: test_vid_puts [options]"
++ ,""
++ ,"Options:"
++ ," -e use stderr (default stdout)"
++ ," -p use vid_puts (default vid_attr)"
++ };
++ unsigned n;
++ for (n = 0; n < SIZEOF(tbl); ++n)
++ fprintf(stderr, "%s\n", tbl[n]);
++ ExitProgram(EXIT_FAILURE);
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ int ch;
++
++ my_fp = stdout;
++
++ while ((ch = getopt(argc, argv, "ep")) != -1) {
++ switch (ch) {
++ case 'e':
++ my_fp = stderr;
++ break;
++ case 'p':
++ p_opt = TRUE;
++ break;
++ default:
++ usage();
++ break;
++ }
++ }
++ if (optind < argc)
++ usage();
++
++ setupterm((char *) 0, 1, (int *) 0);
++ test_vid_puts();
++ cleanup();
++ ExitProgram(EXIT_SUCCESS);
++}
++
++#else
++int
++main(void)
++{
++ printf("This program requires the wide-ncurses terminfo library\n");
++ ExitProgram(EXIT_FAILURE);
++}
++#endif
+Index: test/test_vidputs.c
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/test_vidputs.c 2014-07-19 23:09:58.000000000 +0000
+@@ -0,0 +1,148 @@
++/****************************************************************************
++ * Copyright (c) 2013,2014 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++/*
++ * $Id: test_vidputs.c,v 1.5 2014/07/19 23:09:58 tom Exp $
++ *
++ * Demonstrate the vidputs and vidattr functions.
++ * Thomas Dickey - 2013/01/12
++ */
++
++#define USE_TINFO
++#include <test.priv.h>
++
++#if HAVE_SETUPTERM && HAVE_VIDPUTS
++
++#define valid(s) ((s != 0) && s != (char *)-1)
++
++static FILE *my_fp;
++static bool p_opt = FALSE;
++
++static
++TPUTS_PROTO(outc, c)
++{
++ int rc = c;
++
++ rc = putc(c, my_fp);
++ TPUTS_RETURN(rc);
++}
++
++static bool
++outs(const char *s)
++{
++ if (valid(s)) {
++ tputs(s, 1, outc);
++ return TRUE;
++ }
++ return FALSE;
++}
++
++static void
++cleanup(void)
++{
++ outs(exit_attribute_mode);
++ if (!outs(orig_colors))
++ outs(orig_pair);
++ outs(cursor_normal);
++}
++
++static void
++change_attr(chtype attr)
++{
++ if (p_opt) {
++ vidputs(attr, outc);
++ } else {
++ vidattr(attr);
++ }
++}
++
++static void
++test_vidputs(void)
++{
++ fprintf(my_fp, "Name: ");
++ change_attr(A_BOLD);
++ fputs("Bold", my_fp);
++ change_attr(A_REVERSE);
++ fputs(" Reverse", my_fp);
++ change_attr(A_NORMAL);
++ fputs("\n", my_fp);
++}
++
++static void
++usage(void)
++{
++ static const char *tbl[] =
++ {
++ "Usage: test_vidputs [options]"
++ ,""
++ ,"Options:"
++ ," -e use stderr (default stdout)"
++ ," -p use vidputs (default vidattr)"
++ };
++ unsigned n;
++ for (n = 0; n < SIZEOF(tbl); ++n)
++ fprintf(stderr, "%s\n", tbl[n]);
++ ExitProgram(EXIT_FAILURE);
++}
++
++int
++main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
++{
++ int ch;
++
++ my_fp = stdout;
++
++ while ((ch = getopt(argc, argv, "ep")) != -1) {
++ switch (ch) {
++ case 'e':
++ my_fp = stderr;
++ break;
++ case 'p':
++ p_opt = TRUE;
++ break;
++ default:
++ usage();
++ break;
++ }
++ }
++ if (optind < argc)
++ usage();
++
++ setupterm((char *) 0, 1, (int *) 0);
++ test_vidputs();
++ cleanup();
++ ExitProgram(EXIT_SUCCESS);
++}
++#else
++int
++main(int argc GCC_UNUSED,
++ char *argv[]GCC_UNUSED)
++{
++ fprintf(stderr, "This program requires terminfo\n");
++ exit(EXIT_FAILURE);
++}
++#endif
+Index: test/testaddch.c
+Prereq: 1.7
+--- ncurses-5.9/test/testaddch.c 2009-08-29 19:02:25.000000000 +0000
++++ ncurses-5.9-20141206/test/testaddch.c 2014-08-02 23:11:20.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2006,2009 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -29,7 +29,7 @@
+ * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
+ * to demonstrate an inconsistency between ncurses and SVr4 curses.
+ *
+- * $Id: testaddch.c,v 1.7 2009/08/29 19:02:25 tom Exp $
++ * $Id: testaddch.c,v 1.12 2014/08/02 23:11:20 tom Exp $
+ */
+ #include <test.priv.h>
+
+@@ -63,21 +63,21 @@
+ for (i = 0; i < 8; i++) {
+ back = (i & 1) ? A_BOLD | 'B' : ' ';
+ set = (i & 2) ? A_REVERSE : 0;
+- attr = (i & 4) ? COLOR_PAIR(4) : 0;
++ attr = (chtype) ((i & 4) ? COLOR_PAIR(4) : 0);
+
+ bkgdset(back);
+- (void) attrset(set);
++ (void) attrset(AttrArg(set, 0));
+
+ attr_addstr("Test string with spaces -> <-\n", attr);
+ }
+ addch('\n');
+ for (i = 0; i < 8; i++) {
+- back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' ';
+- set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0;
+- attr = (i & 4) ? COLOR_PAIR(4) : 0;
++ back = (i & 1) ? (A_BOLD | 'B' | (chtype) COLOR_PAIR(1)) : ' ';
++ set = (i & 2) ? (A_REVERSE | (chtype) COLOR_PAIR(2)) : 0;
++ attr = (chtype) ((i & 4) ? (chtype) COLOR_PAIR(4) : 0);
+
+ bkgdset(back);
+- (void) attrset(set);
++ (void) attrset(AttrArg(set, 0));
+
+ attr_addstr("Test string with spaces -> <-\n", attr);
+ }
+Index: test/testcurs.c
+Prereq: 1.43
+--- ncurses-5.9/test/testcurs.c 2010-11-13 21:02:28.000000000 +0000
++++ ncurses-5.9-20141206/test/testcurs.c 2014-07-27 00:25:14.000000000 +0000
+@@ -6,7 +6,7 @@
+ * wrs(5/28/93) -- modified to be consistent (perform identically) with either
+ * PDCurses or under Unix System V, R4
+ *
+- * $Id: testcurs.c,v 1.43 2010/11/13 21:02:28 tom Exp $
++ * $Id: testcurs.c,v 1.49 2014/07/27 00:25:14 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -45,18 +45,6 @@
+ };
+ #define MAX_OPTIONS (int) SIZEOF(command)
+
+-#if !HAVE_STRDUP
+-#define strdup my_strdup
+-static char *
+-strdup(char *s)
+-{
+- char *p = typeMalloc(char, strlen(s) + 1);
+- if (p)
+- strcpy(p, s);
+- return (p);
+-}
+-#endif /* not HAVE_STRDUP */
+-
+ static int width, height;
+
+ int
+@@ -85,7 +73,7 @@
+ #ifdef A_COLOR
+ if (has_colors()) {
+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
+- wbkgd(win, COLOR_PAIR(1));
++ wbkgd(win, (chtype) COLOR_PAIR(1));
+ } else
+ wbkgd(win, A_REVERSE);
+ #else
+@@ -298,7 +286,7 @@
+ #ifdef A_COLOR
+ if (has_colors()) {
+ init_pair(2, COLOR_WHITE, COLOR_RED);
+- wbkgd(subWin, COLOR_PAIR(2) | A_BOLD);
++ wbkgd(subWin, (chtype) COLOR_PAIR(2) | A_BOLD);
+ } else
+ wbkgd(subWin, A_BOLD);
+ #else
+@@ -353,6 +341,9 @@
+ typeahead(-1);
+ #endif
+
++#ifdef NCURSES_MOUSE_VERSION
++ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
++#endif
+ #if defined(PDCURSES)
+ mouse_set(ALL_MOUSE_EVENTS);
+ #endif
+@@ -367,8 +358,38 @@
+ wprintw(win, "Key Pressed: %c", c);
+ else
+ wprintw(win, "Key Pressed: %s", unctrl(UChar(c)));
+-#if defined(PDCURSES)
++#ifdef KEY_MOUSE
+ if (c == KEY_MOUSE) {
++#if defined(NCURSES_MOUSE_VERSION)
++#define ButtonChanged(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, 037))
++#define ButtonPressed(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED))
++#define ButtonDouble(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED))
++#define ButtonTriple(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED))
++#define ButtonRelease(n) ((event.bstate) & NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED))
++ MEVENT event;
++ int button = 0;
++
++ getmouse(&event);
++ if (ButtonChanged(1))
++ button = 1;
++ else if (ButtonChanged(2))
++ button = 2;
++ else if (ButtonChanged(3))
++ button = 3;
++ else
++ button = 0;
++ wmove(win, 4, 18);
++ wprintw(win, "Button %d: ", button);
++ if (ButtonPressed(button))
++ wprintw(win, "pressed: ");
++ else if (ButtonDouble(button))
++ wprintw(win, "double: ");
++ else if (ButtonTriple(button))
++ wprintw(win, "triple: ");
++ else
++ wprintw(win, "released: ");
++ wprintw(win, " Position: Y: %d X: %d", event.y, event.x);
++#elif defined(PDCURSES)
+ int button = 0;
+ request_mouse_pos();
+ if (BUTTON_CHANGED(1))
+@@ -390,8 +411,9 @@
+ else
+ wprintw(win, "released: ");
+ wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS);
++#endif /* NCURSES_VERSION vs PDCURSES */
+ }
+-#endif
++#endif /* KEY_MOUSE */
+ wrefresh(win);
+ if (c == ' ')
+ break;
+@@ -491,7 +513,7 @@
+ #ifdef A_COLOR
+ if (has_colors()) {
+ init_pair(3, COLOR_BLUE, COLOR_WHITE);
+- wbkgd(win1, COLOR_PAIR(3));
++ wbkgd(win1, (chtype) COLOR_PAIR(3));
+ } else
+ wbkgd(win1, A_NORMAL);
+ #else
+@@ -693,9 +715,11 @@
+ raw();
+ wgetch(pad);
+
+- spad = subpad(pad, 12, 25, 6, 52);
+- MvWAddStr(spad, 2, 2, "This is a new subpad");
+- box(spad, 0, 0);
++ if ((spad = subpad(pad, 12, 25, 6, 52)) != 0) {
++ MvWAddStr(spad, 2, 2, "This is a new subpad");
++ box(spad, 0, 0);
++ delwin(spad);
++ }
+ prefresh(pad, 0, 0, 0, 0, 15, 75);
+ keypad(pad, TRUE);
+ raw();
+Index: test/view.c
+Prereq: 1.81
+--- ncurses-5.9/test/view.c 2010-11-14 01:06:02.000000000 +0000
++++ ncurses-5.9-20141206/test/view.c 2013-09-28 21:58:42.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -50,10 +50,11 @@
+ * scroll operation worked, and the refresh() code only had to do a
+ * partial repaint.
+ *
+- * $Id: view.c,v 1.81 2010/11/14 01:06:02 tom Exp $
++ * $Id: view.c,v 1.94 2013/09/28 21:58:42 tom Exp $
+ */
+
+ #include <test.priv.h>
++#include <widechars.h>
+
+ #include <time.h>
+
+@@ -81,24 +82,10 @@
+ #include <sys/ptem.h>
+ #endif
+
+-#if USE_WIDEC_SUPPORT
+-#if HAVE_MBTOWC && HAVE_MBLEN
+-#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0))
+-#define count_mbytes(buffer,length,state) mblen(buffer,length)
+-#define check_mbytes(wch,buffer,length,state) \
+- (int) mbtowc(&wch, buffer, length)
+-#define state_unused
+-#elif HAVE_MBRTOWC && HAVE_MBRLEN
+-#define reset_mbytes(state) init_mb(state)
+-#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
+-#define check_mbytes(wch,buffer,length,state) \
+- (int) mbrtowc(&wch, buffer, length, &state)
+-#else
+-make an error
+-#endif
+-#endif /* USE_WIDEC_SUPPORT */
++#undef CTRL
++#define CTRL(x) ((x) & 0x1f)
+
+-static RETSIGTYPE finish(int sig) GCC_NORETURN;
++static void finish(int sig) GCC_NORETURN;
+ static void show_all(const char *tag);
+
+ #if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZE_TERM
+@@ -108,11 +95,11 @@
+ #endif
+
+ #if CAN_RESIZE
+-static RETSIGTYPE adjust(int sig);
++static void adjust(int sig);
+ static int interrupted;
++static bool waiting = FALSE;
+ #endif
+
+-static bool waiting = FALSE;
+ static int shift = 0;
+ static bool try_color = FALSE;
+
+@@ -121,6 +108,8 @@
+ static NCURSES_CH_T **lptr;
+ static int num_lines;
+
++static void usage(void) GCC_NORETURN;
++
+ static void
+ usage(void)
+ {
+@@ -135,6 +124,7 @@
+ #if defined(KEY_RESIZE)
+ ," -r use old-style sigwinch handler rather than KEY_RESIZE"
+ #endif
++ ," -s start in single-step mode, waiting for input"
+ #ifdef TRACE
+ ," -t trace screen updates"
+ ," -T NUM specify trace mask"
+@@ -180,7 +170,7 @@
+ {
+ unsigned len = (unsigned) strlen(src);
+ NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1);
+- unsigned j, k;
++ size_t j, k;
+ #if USE_WIDEC_SUPPORT
+ wchar_t wstr[CCHARW_MAX + 1];
+ wchar_t wch;
+@@ -243,6 +233,7 @@
+ int value = 0;
+ bool done = FALSE;
+ bool got_number = FALSE;
++ bool single_step = FALSE;
+ #if CAN_RESIZE
+ bool nonposix_resize = FALSE;
+ #endif
+@@ -258,7 +249,7 @@
+ (void) signal(SIGINT, finish); /* arrange interrupts to terminate */
+ #endif
+
+- while ((i = getopt(argc, argv, "cin:rtT:")) != -1) {
++ while ((i = getopt(argc, argv, "cin:rstT:")) != -1) {
+ switch (i) {
+ case 'c':
+ try_color = TRUE;
+@@ -276,9 +267,18 @@
+ nonposix_resize = TRUE;
+ break;
+ #endif
++ case 's':
++ single_step = TRUE;
++ break;
+ #ifdef TRACE
+ case 'T':
+- trace((unsigned) atoi(optarg));
++ {
++ char *next = 0;
++ int tvalue = (int) strtol(optarg, &next, 0);
++ if (tvalue < 0 || (next != 0 && *next != 0))
++ usage();
++ trace((unsigned) tvalue);
++ }
+ break;
+ case 't':
+ trace(TRACE_CALLS);
+@@ -306,7 +306,7 @@
+ (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */
+ #endif
+
+- /* slurp the file */
++ Trace(("slurp the file"));
+ for (lptr = &vec_lines[0]; (lptr - vec_lines) < MAXLINES; lptr++) {
+ char temp[BUFSIZ], *s, *d;
+ int col;
+@@ -314,8 +314,26 @@
+ if (fgets(buf, sizeof(buf), fp) == 0)
+ break;
+
+- /* convert tabs so that shift will work properly */
++#if USE_WIDEC_SUPPORT
++ if (lptr == vec_lines) {
++ if (!memcmp("", buf, 3)) {
++ Trace(("trim BOM"));
++ s = buf + 3;
++ d = buf;
++ do {
++ } while ((*d++ = *s++) != '\0');
++ }
++ }
++#endif
++
++ /* convert tabs and nonprinting chars so that shift will work properly */
+ for (s = buf, d = temp, col = 0; (*d = *s) != '\0'; s++) {
++ if (*d == '\r') {
++ if (s[1] == '\n')
++ continue;
++ else
++ break;
++ }
+ if (*d == '\n') {
+ *d = '\0';
+ break;
+@@ -347,14 +365,15 @@
+ (void) nonl(); /* tell curses not to do NL->CR/NL on output */
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+- nodelay(stdscr, TRUE);
++ if (!single_step)
++ nodelay(stdscr, TRUE);
+ idlok(stdscr, TRUE); /* allow use of insert/delete line */
+
+ if (try_color) {
+ if (has_colors()) {
+ start_color();
+ init_pair(my_pair, COLOR_WHITE, COLOR_BLUE);
+- bkgd(COLOR_PAIR(my_pair));
++ bkgd((chtype) COLOR_PAIR(my_pair));
+ } else {
+ try_color = FALSE;
+ }
+@@ -373,10 +392,12 @@
+ adjust(0);
+ my_label = "interrupt";
+ }
+-#endif
+ waiting = TRUE;
+ c = getch();
+ waiting = FALSE;
++#else
++ c = getch();
++#endif
+ if ((c < 127) && isdigit(c)) {
+ if (!got_number) {
+ MvPrintw(0, 0, "Count: ");
+@@ -466,6 +487,9 @@
+ nodelay(stdscr, TRUE);
+ my_delay = 0;
+ break;
++ case CTRL('L'):
++ redrawwin(stdscr);
++ break;
+ case ERR:
+ if (!my_delay)
+ napms(50);
+@@ -483,7 +507,7 @@
+ finish(0); /* we're done */
+ }
+
+-static RETSIGTYPE
++static void
+ finish(int sig)
+ {
+ endwin();
+@@ -510,7 +534,7 @@
+ * The 'wrefresh(curscr)' is needed to force the refresh to start from the top
+ * of the screen -- some xterms mangle the bitmap while resizing.
+ */
+-static RETSIGTYPE
++static void
+ adjust(int sig)
+ {
+ if (waiting || sig == 0) {
+@@ -553,7 +577,7 @@
+ printw("%.*s", COLS, temp);
+ clrtoeol();
+ this_time = time((time_t *) 0);
+- strcpy(temp, ctime(&this_time));
++ strncpy(temp, ctime(&this_time), (size_t) 30);
+ if ((i = (int) strlen(temp)) != 0) {
+ temp[--i] = 0;
+ if (move(0, COLS - i - 2) != ERR)
+Index: test/widechars.h
+--- /dev/null 2014-12-07 11:09:34.027922031 +0000
++++ ncurses-5.9-20141206/test/widechars.h 2012-12-01 20:45:54.000000000 +0000
+@@ -0,0 +1,71 @@
++/****************************************************************************
++ * Copyright (c) 2012 Free Software Foundation, Inc. *
++ * *
++ * Permission is hereby granted, free of charge, to any person obtaining a *
++ * copy of this software and associated documentation files (the *
++ * "Software"), to deal in the Software without restriction, including *
++ * without limitation the rights to use, copy, modify, merge, publish, *
++ * distribute, distribute with modifications, sublicense, and/or sell *
++ * copies of the Software, and to permit persons to whom the Software is *
++ * furnished to do so, subject to the following conditions: *
++ * *
++ * The above copyright notice and this permission notice shall be included *
++ * in all copies or substantial portions of the Software. *
++ * *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
++ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
++ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
++ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
++ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
++ * *
++ * Except as contained in this notice, the name(s) of the above copyright *
++ * holders shall not be used in advertising or otherwise to promote the *
++ * sale, use or other dealings in this Software without prior written *
++ * authorization. *
++ ****************************************************************************/
++
++#ifndef __WIDECHARS_H
++#define __WIDECHARS_H 1
++
++#include <test.priv.h>
++
++#if USE_WIDEC_SUPPORT
++
++#if defined(__MINGW32__)
++/*
++ * MinGW has wide-character functions, but they do not work correctly.
++ */
++
++extern int _nc_mbtowc(wchar_t *pwc, const char *s, size_t n);
++extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *pwc, const char *s, size_t n);
++#define mbtowc(pwc,s,n) _nc_mbtowc(pwc,s,n)
++
++extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t);
++#define mblen(s,n) _nc_mblen(s, n)
++
++#endif /* __MINGW32__ */
++
++#if HAVE_MBTOWC && HAVE_MBLEN
++#define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0))
++#define count_mbytes(buffer,length,state) mblen(buffer,length)
++#define check_mbytes(wch,buffer,length,state) \
++ (int) mbtowc(&wch, buffer, length)
++#define state_unused
++#elif HAVE_MBRTOWC && HAVE_MBRLEN
++#define reset_mbytes(state) init_mb(state)
++#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
++#define check_mbytes(wch,buffer,length,state) \
++ (int) mbrtowc(&wch, buffer, length, &state)
++#else
++make an error
++#endif
++
++#else
++
++#endif /* USE_WIDEC_SUPPORT */
++
++extern void widechars_stub(void);
++
++#endif /* __WIDECHARS_H */
+Index: test/worm.c
+Prereq: 1.60
+--- ncurses-5.9/test/worm.c 2010-11-13 20:21:21.000000000 +0000
++++ ncurses-5.9-20141206/test/worm.c 2013-06-22 20:01:41.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
++ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+@@ -61,7 +61,7 @@
+ traces will be dumped. The program stops and waits for one character of
+ input at the beginning and end of the interval.
+
+- $Id: worm.c,v 1.60 2010/11/13 20:21:21 tom Exp $
++ $Id: worm.c,v 1.65 2013/06/22 20:01:41 tom Exp $
+ */
+
+ #include <test.priv.h>
+@@ -202,6 +202,14 @@
+ /* *INDENT-ON* */
+
+ static void
++failed(const char *s)
++{
++ perror(s);
++ endwin();
++ ExitProgram(EXIT_FAILURE);
++}
++
++static void
+ cleanup(void)
+ {
+ USING_WINDOW(stdscr, wrefresh);
+@@ -209,7 +217,7 @@
+ endwin();
+ }
+
+-static RETSIGTYPE
++static void
+ onsig(int sig GCC_UNUSED)
+ {
+ cleanup();
+@@ -354,8 +362,7 @@
+ if (first) {
+ first = FALSE;
+ for (n = 0, w = &worm[0]; n < number; n++, w++) {
+- int rc;
+- rc = pthread_create(&(w->thread), NULL, start_worm, w);
++ (void) pthread_create(&(w->thread), NULL, start_worm, w);
+ }
+ }
+ #else
+@@ -391,6 +398,8 @@
+ if (last_x != COLS - 1) {
+ for (y = 0; y <= last_y; y++) {
+ refs[y] = typeRealloc(int, (size_t) COLS, refs[y]);
++ if (!refs[y])
++ failed("update_refs");
+ for (x = last_x + 1; x < COLS; x++)
+ refs[y][x] = 0;
+ }
+@@ -402,6 +411,8 @@
+ refs = typeRealloc(int *, (size_t) LINES, refs);
+ for (y = last_y + 1; y < LINES; y++) {
+ refs[y] = typeMalloc(int, (size_t) COLS);
++ if (!refs[y])
++ failed("update_refs");
+ for (x = 0; x < COLS; x++)
+ refs[y][x] = 0;
+ }
+@@ -419,6 +430,7 @@
+ struct worm *w;
+ int *ip;
+ bool done = FALSE;
++ int max_refs;
+
+ setlocale(LC_ALL, "");
+
+@@ -489,7 +501,7 @@
+
+ #define SET_COLOR(num, fg) \
+ init_pair(num+1, (short) fg, (short) bg); \
+- flavor[num] |= COLOR_PAIR(num+1) | A_BOLD
++ flavor[num] |= (chtype) COLOR_PAIR(num+1) | A_BOLD
+
+ SET_COLOR(0, COLOR_GREEN);
+ SET_COLOR(1, COLOR_RED);
+@@ -501,8 +513,9 @@
+ }
+ #endif /* A_COLOR */
+
+- refs = typeMalloc(int *, (size_t) LINES);
+- for (y = 0; y < LINES; y++) {
++ max_refs = LINES;
++ refs = typeMalloc(int *, (size_t) max_refs);
++ for (y = 0; y < max_refs; y++) {
+ refs[y] = typeMalloc(int, (size_t) COLS);
+ for (x = 0; x < COLS; x++) {
+ refs[y][x] = 0;
+@@ -596,7 +609,7 @@
+ Trace(("Cleanup"));
+ cleanup();
+ #ifdef NO_LEAKS
+- for (y = 0; y < LINES; y++) {
++ for (y = 0; y < max_refs; y++) {
+ free(refs[y]);
+ }
+ free(refs);
+Index: test/xmas.c
+Prereq: 1.27
+--- ncurses-5.9/test/xmas.c 2010-11-13 20:24:10.000000000 +0000
++++ ncurses-5.9-20141206/test/xmas.c 2013-04-27 19:46:53.000000000 +0000
+@@ -92,7 +92,7 @@
+ /******************************************************************************/
+
+ /*
+- * $Id: xmas.c,v 1.27 2010/11/13 20:24:10 tom Exp $
++ * $Id: xmas.c,v 1.28 2013/04/27 19:46:53 tom Exp $
+ */
+ #include <test.priv.h>
+
+@@ -148,7 +148,7 @@
+ static int reindeer(void);
+ static int blinkit(void);
+
+-static RETSIGTYPE done(int sig) GCC_NORETURN;
++static void done(int sig) GCC_NORETURN;
+
+ static void
+ set_color(WINDOW *win, chtype color)
+@@ -1143,7 +1143,7 @@
+ return (0);
+ }
+
+-static RETSIGTYPE
++static void
+ done(int sig GCC_UNUSED)
+ {
+ CATCHALL(done);
diff --git a/source/l/ncurses/ncurses.SlackBuild b/source/l/ncurses/ncurses.SlackBuild
index 0b83dcd1c..992789e36 100755
--- a/source/l/ncurses/ncurses.SlackBuild
+++ b/source/l/ncurses/ncurses.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2000-2011, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2000-2011, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=ncurses
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -61,13 +61,14 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--with-gpm \
--disable-termcap \
- --with-normal \
--with-shared \
+ --with-cxx-shared \
+ --without-normal \
+ --without-debug \
+ --without-profile \
--enable-symlinks \
--enable-pc-files \
--with-pkg-config-libdir=/usr/lib${LIBDIRSUFFIX}/pkgconfig \
- --without-debug \
- --without-profile \
--without-ada \
$X86_64OPTS \
--program-suffix="" \
@@ -98,8 +99,8 @@ if [ ! -z "$(ls $CWD/patches/ncurses-$VERSION-2*.patch.gz 2> /dev/null)" ]; then
fi
# Apply upstream patch collection:
-xzcat $CWD/ncurses-5.9-20130504-patch.sh.xz > ncurses-5.9-20130504-patch.sh
-sh ncurses-5.9-20130504-patch.sh
+xzcat $CWD/ncurses-5.9-20141206-patch.sh.xz > ncurses-5.9-20141206-patch.sh
+sh ncurses-5.9-20141206-patch.sh
zcat $CWD/ncurses.mkhashsize.diff.gz | patch -p1 --verbose || exit 1
diff --git a/source/l/neon/neon.SlackBuild b/source/l/neon/neon.SlackBuild
index abba3b6e6..980e51dc5 100755
--- a/source/l/neon/neon.SlackBuild
+++ b/source/l/neon/neon.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@ BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/netpbm/config.mk b/source/l/netpbm/config.mk
index f5ace50f0..9f7089a53 100644
--- a/source/l/netpbm/config.mk
+++ b/source/l/netpbm/config.mk
@@ -658,5 +658,4 @@ TIFFLIB = libtiff.so
JPEGLIB = libjpeg.so
ZLIB = libz.so
X11LIB = libX11.so
-LINUXSVGALIB = libvga.so
NETPBM_DOCURL = http://netpbm.sourceforge.net/doc/
diff --git a/source/l/netpbm/netpbm-noppmtompeg.patch b/source/l/netpbm/netpbm-noppmtompeg.patch
new file mode 100644
index 000000000..58b7fa8ef
--- /dev/null
+++ b/source/l/netpbm/netpbm-noppmtompeg.patch
@@ -0,0 +1,23 @@
+diff -up netpbm-10.47.12/buildtools/manpage.mk.noppmtompeg netpbm-10.47.12/buildtools/manpage.mk
+--- netpbm-10.47.12/buildtools/manpage.mk.noppmtompeg 2010-04-27 09:54:52.121522491 -0400
++++ netpbm-10.47.12/buildtools/manpage.mk 2010-04-27 09:55:10.337642487 -0400
+@@ -251,7 +251,6 @@ MAN1 = \
+ ppmtolj.1 \
+ ppmtomap.1 \
+ ppmtomitsu.1 \
+- ppmtompeg.1 \
+ ppmtoneo.1 \
+ ppmtopcx.1 \
+ ppmtopgm.1 \
+diff -up netpbm-10.47.12/converter/ppm/Makefile.noppmtompeg netpbm-10.47.12/converter/ppm/Makefile
+--- netpbm-10.47.12/converter/ppm/Makefile.noppmtompeg 2010-04-27 09:55:20.293517254 -0400
++++ netpbm-10.47.12/converter/ppm/Makefile 2010-04-27 09:55:41.534642567 -0400
+@@ -7,7 +7,7 @@ VPATH=.:$(SRCDIR)/$(SUBDIR)
+
+ include $(BUILDDIR)/config.mk
+
+-SUBDIRS = hpcdtoppm ppmtompeg
++SUBDIRS = hpcdtoppm
+
+ PORTBINARIES = 411toppm eyuvtoppm gouldtoppm ilbmtoppm imgtoppm \
+ leaftoppm mtvtoppm neotoppm \
diff --git a/source/l/netpbm/netpbm-pnmtops.patch b/source/l/netpbm/netpbm-pnmtops.patch
new file mode 100644
index 000000000..31bce9e29
--- /dev/null
+++ b/source/l/netpbm/netpbm-pnmtops.patch
@@ -0,0 +1,13 @@
+diff --git a/converter/other/Makefile b/converter/other/Makefile
+index 7aefda1..0d998f6 100644
+--- a/converter/other/Makefile
++++ b/converter/other/Makefile
+@@ -121,7 +121,7 @@ PORTBINARIES = avstopam bmptopnm fitstopnm \
+ pamtowinicon pamtoxvmini \
+ pbmtopgm pdbimgtopam pfmtopam \
+ pgmtopbm pgmtoppm ppmtopgm pnmtoddif \
+- pnmtopclxl pnmtorast \
++ pnmtopclxl pnmtops pnmtorast \
+ pnmtosgi pnmtosir pamtotga pnmtoxwd \
+ rasttopnm rlatopam sgitopnm sirtopnm srftopam sunicontopnm \
+ winicontopam xwdtopnm zeisstopnm
diff --git a/source/l/netpbm/netpbm.SlackBuild b/source/l/netpbm/netpbm.SlackBuild
index fedaffddb..2619ef503 100755
--- a/source/l/netpbm/netpbm.SlackBuild
+++ b/source/l/netpbm/netpbm.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,21 +22,21 @@
PKGNAM=netpbm
-VERSION=${VERSION:-10.49.02}
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-10.66.02}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -60,6 +60,9 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION
+zcat $CWD/netpbm-noppmtompeg.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/netpbm-pnmtops.patch.gz | patch -p1 --verbose || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
@@ -92,9 +95,20 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
cd usr
mkdir -p doc/netpbm-$VERSION
mv VERSION bin/doc.url doc/netpbm-$VERSION
- ( cd lib ; ln -sf libnetpbm.so.10 libnetpbm.so )
+ if [ -r lib/libnetpbm.so.11 ]; then
+ ( cd lib ; rm -f libnetpbm.so ; ln -sf libnetpbm.so.11 libnetpbm.so )
+ else
+ echo "ERROR: libnetpbm.so.11 not found."
+ echo "Please edit the correct library major version into the build script"
+ exit 1
+ fi
mv lib lib${LIBDIRSUFFIX}
- rm -rf config_template link misc pkginfo man/man1/manweb.1 man/web
+ # Remove junk directories:
+ rm -rf link misc
+ # Remove manweb related files:
+ rm -rf bin/manweb man/man1/manweb.1* man/web
+ # Any other files in /usr are junk:
+ rm --verbose * 2> /dev/null
)
# Compress and link manpages, if any:
diff --git a/source/l/newt/newt.SlackBuild b/source/l/newt/newt.SlackBuild
new file mode 100755
index 000000000..e70bf710b
--- /dev/null
+++ b/source/l/newt/newt.SlackBuild
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Slackware build script for newt
+
+# Copyright 2014 Robby Workman, Northport, Alabama, USA
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=newt
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf newt-$VERSION
+tar xvf $CWD/newt-$VERSION.tar.xz || exit 1
+cd newt-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --with-gpm-support \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Since this ignores --disable-static:
+rm $PKG/usr/lib${LIBDIRSUFFIX}/libnewt.a
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a AUTHORS CHANGES COPYING README $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/newt/slack-desc b/source/l/newt/slack-desc
new file mode 100644
index 000000000..d14ebdf55
--- /dev/null
+++ b/source/l/newt/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+newt: newt (Not Erik's Windowing Toolkit)
+newt:
+newt: Newt is a programming library for color text mode, widget based user
+newt: interfaces. Newt can be used to add stacked windows, entry widgets,
+newt: checkboxes, radio buttons, labels, plain text fields, scrollbars,
+newt: etcetera, to text mode user interfaces. Newt is based on the S-Lang
+newt: library.
+newt:
+newt: Homepage: https://fedorahosted.org/newt/
+newt:
+newt:
diff --git a/source/l/notify-python/notify-python-0.1.1-fix-GTK-symbols.patch b/source/l/notify-python/notify-python-0.1.1-fix-GTK-symbols.patch
new file mode 100644
index 000000000..f985c0136
--- /dev/null
+++ b/source/l/notify-python/notify-python-0.1.1-fix-GTK-symbols.patch
@@ -0,0 +1,25 @@
+diff -up notify-python-0.1.1/src/__init__.py.BAD notify-python-0.1.1/src/__init__.py
+--- notify-python-0.1.1/src/__init__.py.BAD 2010-08-31 09:04:45.353844005 -0400
++++ notify-python-0.1.1/src/__init__.py 2010-08-31 09:04:49.281844300 -0400
+@@ -1 +1,21 @@
++"""
++Fedora's libnotify.so is not linked against GTK2 or GTK3. The idea
++was to support being linked against different parallel-installable
++GTK stacks.
++
++Unfortunately, python needs to jump through some special hoops in order
++to share symbols with extension modules, specifically, pygtk, which does
++link against GTK2.
++
++Without using sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL),
++the result is:
++libnotify-WARNING **: Missing symbol 'gdk_screen_make_display_name'
++
++Thanks to David Malcolm for figuring out the workaround.
++"""
++import ctypes
++import sys
++sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL)
++import gtk
++
+ from _pynotify import *
diff --git a/source/l/notify-python/notify-python.SlackBuild b/source/l/notify-python/notify-python.SlackBuild
index 9227d8d08..21b76ed94 100755
--- a/source/l/notify-python/notify-python.SlackBuild
+++ b/source/l/notify-python/notify-python.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for notify-python
# Copyright 2009 Erik W. Hanson, Minneapolis, MN, USA
-# Copyright 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2010, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,12 +25,12 @@
PKGNAM=notify-python
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -68,7 +68,10 @@ chmod -R u+w,go+r-w,a-s .
rm -f src/pynotify.c
# Fix build with libnotify-0.7 (thanks, Fedora)
-zcat $CWD/libnotify07.patch.gz | patch -p1 || exit 1
+zcat $CWD/libnotify07.patch.gz | patch -p1 --verbose || exit 1
+
+# Fix for hplip-tools:
+zcat $CWD/notify-python-0.1.1-fix-GTK-symbols.patch.gz | patch -p1 --verbose || exit 1
CFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/l/openexr/openexr.SlackBuild b/source/l/openexr/openexr.SlackBuild
index d6ba4db07..3be5b97b9 100755
--- a/source/l/openexr/openexr.SlackBuild
+++ b/source/l/openexr/openexr.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
-# Copyright 2007, 2013 Heinz Wiesinger, Amsterdam, The Netherlands
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2013, 2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2008, 2009, 2010, 2014 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -64,7 +64,6 @@ cd $TMP
rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
-
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
diff --git a/source/l/openjpeg/openjpeg.SlackBuild b/source/l/openjpeg/openjpeg.SlackBuild
new file mode 100755
index 000000000..4871bf5bb
--- /dev/null
+++ b/source/l/openjpeg/openjpeg.SlackBuild
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+# Slackware build script for openjpeg
+
+# Copyright 2008-2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# Copyright 2014 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=openjpeg
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-openjpeg
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf openjpeg-$VERSION
+tar xvf $CWD/openjpeg-$VERSION.tar.?z* || exit 1
+cd openjpeg-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_C_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DOPENJPEG_INSTALL_LIB_DIR="lib$LIBDIRSUFFIX" \
+ -DOPENJPEG_INSTALL_MAN_DIR="man/" \
+ -DOPENJPEG_INSTALL_DOC_DIR="doc/openjpeg-$VERSION/" \
+ -DOPENJPEG_INSTALL_SHARE_DIR="share/openjpeg" \
+ -DBUILD_JPWL:BOOL=ON \
+ -DBUILD_MJ2:BOOL=ON \
+ -DBUILD_JPIP:BOOL=ON \
+ -DBUILD_JP3D:BOOL=ON \
+ ..
+
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+cd -
+
+# Some libs require the openjpeg.h used for openmj2.
+# This version is pretty much the old version from openjpeg 1.5
+mkdir -p $PKG/usr/include/openmj2-2.1
+install -m 644 src/lib/openmj2/openjpeg.h $PKG/usr/include/openmj2-2.1/
+
+mkdir -p $PKG/usr/man
+cp -r doc/man/* $PKG/usr/man/
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+
+mkdir -p $PKG/usr/doc/openjpeg-$VERSION
+cp -a AUTHORS CHANGES INSTALL LICENSE NEWS README THANKS \
+ $PKG/usr/doc/openjpeg-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/openjpeg-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/openjpeg/slack-desc b/source/l/openjpeg/slack-desc
new file mode 100644
index 000000000..7c0b6ef5c
--- /dev/null
+++ b/source/l/openjpeg/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+openjpeg: openjpeg (JPEG2000 Codec)
+openjpeg:
+openjpeg: The OpenJPEG library is an open-source JPEG 2000 codec.
+openjpeg:
+openjpeg: Homepage: http://www.openjpeg.org
+openjpeg:
+openjpeg:
+openjpeg:
+openjpeg:
+openjpeg:
+openjpeg:
diff --git a/source/l/orc/orc.SlackBuild b/source/l/orc/orc.SlackBuild
new file mode 100755
index 000000000..e424fa6ae
--- /dev/null
+++ b/source/l/orc/orc.SlackBuild
@@ -0,0 +1,138 @@
+#!/bin/sh
+
+# Copyright 2014 Eric Hameleers, Eindhoven, NL
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=orc
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --build=$TARGET || exit 1
+
+# Build and install:
+make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries:
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Add documentation:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ COPYING* README* RELEASE TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# Add a description:
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Create the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD$TAG.txz
+
diff --git a/source/l/orc/slack-desc b/source/l/orc/slack-desc
new file mode 100644
index 000000000..f76fe21ea
--- /dev/null
+++ b/source/l/orc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+orc: orc (The Oil Runtime Compiler)
+orc:
+orc: Orc is a library and set of tools for compiling and executing very
+orc: simple programs that operate on arrays of data. The language is
+orc: a generic assembly language that represents many of the features
+orc: available in SIMD architectures, including saturated addition and
+orc: subtraction, and many arithmetic operations.
+orc:
+orc:
+orc: Homepage: http://code.entropywave.com/projects/orc/
+orc:
diff --git a/source/l/pango/pango.SlackBuild b/source/l/pango/pango.SlackBuild
index 9934c553d..34d4f7eb7 100755
--- a/source/l/pango/pango.SlackBuild
+++ b/source/l/pango/pango.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,15 +27,15 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -69,14 +69,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Fix for x86_64 (does not hurt the other archs but note that we will start
-# using /etc/pango/$host instead of /etc/pango/ now):
-zcat $CWD/pango.etc.host.location.diff.gz | patch -p1 --verbose || exit 1
-
-# Autoconf changes linux to linux-gnu.
-# Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu:
-sed -i -e 's#linux|linux-gnu|#linux|linux|#' config.sub
-
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -90,47 +82,12 @@ CFLAGS="$SLKCFLAGS" \
--target=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
-
-# Check the host value that is passed to the compile to the one in this script:
-host="$ARCH-slackware-linux"
-compile_host=$(grep 'host_triplet =' pango/Makefile | sed "s/.* = //")
-if [ "x$compile_host" != "x$host" ]; then
- echo "Host mismatch: compile='$compile_host', SlackBuild='$host'" && exit 1
-fi
-
make install DESTDIR=$PKG || exit 1
-# Install wrapper for pango-querymodules:
-cp $CWD/update-pango-querymodules $PKG/usr/bin/update-pango-querymodules
-chmod 0755 $PKG/usr/bin/update-pango-querymodules
-
# Do not remove pangox.aliases
-rm -f $PKG/etc/pango/pango.modules
-mkdir -p $PKG/etc/pango/$host
-touch $PKG/etc/pango/$host/pango.modules
-
-# We need to have separate 32-bit and 64-bit binaries
-# for places where we have two copies of the GTK+ package installed.
-# (we might have x86_64 and i486 packages on the same system, for example.)
-case "$host" in
- s390x*|x86_64*)
- mv $PKG/usr/bin/pango-querymodules $PKG/usr/bin/pango-querymodules-64
- ( cd $PKG/usr/bin ; ln -sf pango-querymodules-64 pango-querymodules )
- ;;
- *)
- mv $PKG/usr/bin/pango-querymodules $PKG/usr/bin/pango-querymodules-32
- ( cd $PKG/usr/bin ; ln -sf pango-querymodules-32 pango-querymodules )
- ;;
-esac
-
-mkdir -p $PKG/install
-cat <<EOF > $PKG/install/doinst.sh
-# Updating the pango.modules file:
-chroot . /sbin/ldconfig 2> /dev/null
-if [ -x /usr/bin/update-pango-querymodules ]; then
- /usr/bin/update-pango-querymodules
-fi
-EOF
+#rm -f $PKG/etc/pango/pango.modules
+#mkdir -p $PKG/etc/pango/$host
+#touch $PKG/etc/pango/$host/pango.modules
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/pango/pango.etc.host.location.diff b/source/l/pango/pango.etc.host.location.diff
deleted file mode 100644
index f641c1af0..000000000
--- a/source/l/pango/pango.etc.host.location.diff
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -Nur pango-1.34.0.orig/pango/Makefile.am pango-1.34.0/pango/Makefile.am
---- pango-1.34.0.orig/pango/Makefile.am 2013-03-04 19:24:38.000000000 -0600
-+++ pango-1.34.0/pango/Makefile.am 2013-03-26 01:51:57.804499578 -0500
-@@ -17,6 +17,7 @@
- -DPANGO_ENABLE_BACKEND \
- -DPANGO_ENABLE_ENGINE \
- -DSYSCONFDIR=\"$(sysconfdir)\" \
-+ -DHOST=\"$(host_triplet)\" \
- -DLIBDIR=\"$(libdir)\" \
- -I$(top_srcdir) \
- -I$(top_builddir) \
-diff -Nur pango-1.34.0.orig/pango/Makefile.in pango-1.34.0/pango/Makefile.in
---- pango-1.34.0.orig/pango/Makefile.in 2013-03-25 21:10:54.000000000 -0500
-+++ pango-1.34.0/pango/Makefile.in 2013-03-26 01:52:26.701339768 -0500
-@@ -766,6 +766,7 @@
- -DPANGO_ENABLE_BACKEND \
- -DPANGO_ENABLE_ENGINE \
- -DSYSCONFDIR=\"$(sysconfdir)\" \
-+ -DHOST=\"$(host_triplet)\" \
- -DLIBDIR=\"$(libdir)\" \
- -I$(top_srcdir) \
- -I$(top_builddir) \
-diff -Nur pango-1.34.0.orig/pango/modules.c pango-1.34.0/pango/modules.c
---- pango-1.34.0.orig/pango/modules.c 2013-01-07 19:19:43.000000000 -0600
-+++ pango-1.34.0/pango/modules.c 2013-03-26 01:54:07.418782761 -0500
-@@ -561,6 +561,7 @@
- files = g_new (char *, 3);
-
- files[0] = g_build_filename (pango_get_sysconf_subdirectory (),
-+ HOST,
- "pango.modules",
- NULL);
- files[1] = g_build_filename (pango_get_lib_subdirectory (),
-@@ -682,6 +683,7 @@
- if (!no_module_warning)
- {
- gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
-+ HOST,
- "pango.modules",
- NULL);
- g_critical ("No modules found:\n"
diff --git a/source/l/pango/update-pango-querymodules b/source/l/pango/update-pango-querymodules
deleted file mode 100644
index 5aefa034d..000000000
--- a/source/l/pango/update-pango-querymodules
+++ /dev/null
@@ -1,85 +0,0 @@
-#! /bin/sh
-# Updates the pango.modules in /etc/pango/$host
-
-umask 022
-
-# Get the machine type from uname:
-host=$(uname -m)-slackware-linux
-
-# Fix $host for arm arch:
-case "$host" in
- arm*) host=arm-slackware-linux-gnueabi ;;
-esac
-
-# Deriving /etc/pango/$host location
-#
-# We have had problems in the past with build systems
-# changing host from i386 to i686 and appending/dropping
-# the -gnu suffix, so try to match up the $host we got
-# with whats actually there.
-if [ ! -d /etc/pango/$host ]; then
- case "$host" in
- i?86*)
- for d in $(ls -d /etc/pango/i?86*); do
- host=$(basename $d)
- break
- done
- ;;
- esac
-fi
-
-FILE=/etc/pango/$host/pango.modules
-
-case "$host" in
- s390x*|x86_64*)
- if [ -x /usr/bin/pango-querymodules-64 ]; then
- if [ "$1" = "--verbose" ]; then
- echo "Updating pango.modules for ${host}:"
- echo " /usr/bin/pango-querymodules-64 \\"
- echo " > $FILE"
- fi
- /usr/bin/pango-querymodules-64 > $FILE
- # Check for x86_64 multilib:
- if ls -d /etc/pango/i?86* 1> /dev/null 2> /dev/null ; then
- for d in $(ls -d /etc/pango/i?86*); do
- mlhost=$(basename $d)
- break
- done
- if [ -r /etc/pango/$mlhost/pango.modules -a -x /usr/bin/pango-querymodules-32 ]; then
- FILE=/etc/pango/$mlhost/pango.modules
- if [ "$1" = "--verbose" ]; then
- echo "Updating pango.modules for ${mlhost}:"
- echo " /usr/bin/pango-querymodules-32 \\"
- echo " > $FILE"
- fi
- /usr/bin/pango-querymodules-32 > $FILE
- fi
- fi
- else
- if [ "$1" = "--verbose" ]; then
- echo "Updating pango.modules for ${host}:"
- echo " /usr/bin/pango-querymodules \\"
- echo " > $FILE"
- fi
- /usr/bin/pango-querymodules > $FILE
- fi
- ;;
- *)
- if [ -x /usr/bin/pango-querymodules-32 ]; then
- if [ "$1" = "--verbose" ]; then
- echo "Updating pango.modules for ${host}:"
- echo " /usr/bin/pango-querymodules-32 \\"
- echo " > $FILE"
- fi
- /usr/bin/pango-querymodules-32 > $FILE
- else
- if [ "$1" = "--verbose" ]; then
- echo "Updating pango.modules for ${host}:"
- echo " /usr/bin/pango-querymodules \\"
- echo " > $FILE"
- fi
- /usr/bin/pango-querymodules > $FILE
- fi
- ;;
-esac
-
diff --git a/source/l/pangomm/pangomm.SlackBuild b/source/l/pangomm/pangomm.SlackBuild
new file mode 100755
index 000000000..4f5829470
--- /dev/null
+++ b/source/l/pangomm/pangomm.SlackBuild
@@ -0,0 +1,102 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=pangomm
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+rm -rf $PKG/usr/share/doc
+cp -a AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/pangomm/slack-desc b/source/l/pangomm/slack-desc
new file mode 100644
index 000000000..a6262aebe
--- /dev/null
+++ b/source/l/pangomm/slack-desc
@@ -0,0 +1,18 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+pangomm: pangomm (C++ API for Pango)
+pangomm:
+pangomm: Pangomm is a C++ API for Pango.
+pangomm:
+pangomm: Homepage: http://gtkmm.org
+pangomm:
+pangomm:
+pangomm:
+pangomm:
+pangomm:
diff --git a/source/l/parted/parted.SlackBuild b/source/l/parted/parted.SlackBuild
index 27e02b557..71d47f395 100755
--- a/source/l/parted/parted.SlackBuild
+++ b/source/l/parted/parted.SlackBuild
@@ -23,14 +23,14 @@
PKGNAM=parted
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-march=i486 -mtune=i686 -fgnu89-inline"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-march=i586 -mtune=i686 -fgnu89-inline"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/parted/parted.SlackBuild.static b/source/l/parted/parted.SlackBuild.static
index feb3b3611..d3bf359a4 100755
--- a/source/l/parted/parted.SlackBuild.static
+++ b/source/l/parted/parted.SlackBuild.static
@@ -23,14 +23,14 @@
PKGNAM=parted
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-march=i486 -mtune=i686 -fgnu89-inline"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-march=i586 -mtune=i686 -fgnu89-inline"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/pcre/pcre.SlackBuild b/source/l/pcre/pcre.SlackBuild
index 2454c9fc6..ef07ce1fa 100755
--- a/source/l/pcre/pcre.SlackBuild
+++ b/source/l/pcre/pcre.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -79,8 +79,12 @@ CFLAGS="$SLKCFLAGS" \
--enable-utf8 \
--enable-pcre16 \
--enable-pcre32 \
+ --enable-jit \
--enable-unicode-properties \
- --build=$ARCH-slackware-linux
+ --enable-pcregrep-libz \
+ --enable-pcregrep-libbz2 \
+ --disable-static \
+ --build=$ARCH-slackware-linux || exit 1
CFLAGS="$SLKCFLAGS" make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
@@ -88,6 +92,16 @@ make install DESTDIR=$PKG || exit 1
chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libpcre.so.* \
$PKG/usr/lib${LIBDIRSUFFIX}/libpcreposix.so.*
+# Move libraries, as they might be needed before /usr is available:
+mkdir $PKG/lib${LIBDIRSUFFIX}
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ for file in lib*.so.?.* ; do
+ mv $file ../../lib${LIBDIRSUFFIX}
+ ln -sf ../../lib${LIBDIRSUFFIX}/$file .
+ done
+ cp -a lib*.so.? ../../lib${LIBDIRSUFFIX}
+)
+
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/pcre/slack-desc b/source/l/pcre/slack-desc
index 3bcc9d644..644734e9e 100644
--- a/source/l/pcre/slack-desc
+++ b/source/l/pcre/slack-desc
@@ -12,7 +12,7 @@ pcre: The PCRE library is a set of functions that implement regular
pcre: expression pattern matching using the same syntax and semantics as
pcre: Perl 5, with just a few differences (documented in the man page).
pcre:
-pcre: The PCRE library is used by KDE's Konqueror browser.
+pcre:
pcre:
pcre:
pcre:
diff --git a/source/l/phonon-gstreamer/phonon-gstreamer.SlackBuild b/source/l/phonon-gstreamer/phonon-gstreamer.SlackBuild
index eced8a740..c36c22031 100755
--- a/source/l/phonon-gstreamer/phonon-gstreamer.SlackBuild
+++ b/source/l/phonon-gstreamer/phonon-gstreamer.SlackBuild
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2011, 2012 Eric Hameleers, Eindhoven, NL
+# Copyright 2011, 2012, 2014 Eric Hameleers, Eindhoven, NL
# Copyright 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
@@ -95,6 +95,27 @@ cd build
make DESTDIR=$PKG install
cd -
+# Conditional build of Qt5 support:
+if qtpaths-qt5 --qt-version 1>/dev/null 2>/dev/null ; then
+ mkdir -p build-qt5
+ cd build-qt5
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DSYSCONF_INSTALL_DIR=/etc \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DPHONON_BUILD_PHONON4QT5=ON \
+ ..
+ make $NUMJOBS
+ make DESTDIR=$PKG install
+ cd -
+fi
+
# Add documentation:
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
diff --git a/source/l/phonon-mplayer/phonon-mplayer.SlackBuild b/source/l/phonon-mplayer/phonon-mplayer.SlackBuild
deleted file mode 100755
index 38dff2545..000000000
--- a/source/l/phonon-mplayer/phonon-mplayer.SlackBuild
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/sh
-# Copyright 2010, 2012 Eric Hameleers, Eindhoven, NL
-# Copyright 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
-# All rights reserved.
-#
-# Permission to use, copy, modify, and distribute this software for
-# any purpose with or without fee is hereby granted, provided that
-# the above copyright notice and this permission notice appear in all
-# copies.
-#
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-# -----------------------------------------------------------------------------
-
-
-PKGNAM=phonon-mplayer
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
-BUILD=${BUILD:-1}
-
-NUMJOBS=${NUMJOBS:" -j7 "}
-
-# Automatically determine the architecture we're building on:
-MARCH=$( uname -m )
-if [ -z "$ARCH" ]; then
- case "$MARCH" in
- i?86) export ARCH=i486 ;;
- armv7hl) export ARCH=$MARCH ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$MARCH ;;
- esac
-fi
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PKGNAM
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-cd $TMP
-rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
-cd $PKGNAM-$VERSION || exit 1
-
-# Dump cmake fixes in the source directory, care of phonon-vlc:
-# Without these, phonon-mplayer can only be built inside the phonon sources.
-tar xvf $CWD/cmake_fixes.tar.gz
-
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-echo Building ...
-# It's there already but let's do it for fun:
-mkdir -p build
-cd build
- cmake \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DMAN_INSTALL_DIR=/usr/man \
- -DSYSCONF_INSTALL_DIR=/etc \
- -DLIB_SUFFIX=${LIBDIRSUFFIX} \
- ..
- make $NUMJOBS
- make DESTDIR=$PKG install
-cd -
-
-# Add documentation:
-mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
-cp -a \
- mplayer/AUTHORS mplayer/COPYING* mplayer/README mplayer/THANKS \
- $PKG/usr/doc/$PKGNAM-$VERSION
-
-# Strip binaries (if any):
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-# Add a package description:
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-# Build the package:
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/l/phonon-mplayer/slack-desc b/source/l/phonon-mplayer/slack-desc
deleted file mode 100644
index f98dc68e7..000000000
--- a/source/l/phonon-mplayer/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-phonon-mplayer: phonon-mplayer (mplayer backend for phonon)
-phonon-mplayer:
-phonon-mplayer: This package provides an additional mplayer backend for the phonon
-phonon-mplayer: multimedia framework used in KDE.
-phonon-mplayer:
-phonon-mplayer: Home: http://code.google.com/p/phonon-vlc-mplayer/
-phonon-mplayer:
-phonon-mplayer:
-phonon-mplayer:
-phonon-mplayer:
-phonon-mplayer:
diff --git a/source/l/phonon-xine/phonon-backend-xine-4.4.4.find.phonon.patch b/source/l/phonon-xine/phonon-backend-xine-4.4.4.find.phonon.patch
deleted file mode 100644
index 0ce1023c9..000000000
--- a/source/l/phonon-xine/phonon-backend-xine-4.4.4.find.phonon.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From: Andras Mantia <amantia@kde.org>
-Date: Thu, 10 Nov 2011 08:43:52 +0000
-Subject: Use the global FindPhonon.cmake that really finds Phonon.
-X-Git-Url: http://quickgit.kde.org/?p=phonon-xine.git&amp;a=commitdiff&amp;h=8c7fab4e433b53ac2f00093f1f464e0178c2d3e1
----
-Use the global FindPhonon.cmake that really finds Phonon.
----
-
-
---- a/cmake/FindPhonon.cmake
-+++ /dev/null
-@@ -1,53 +0,0 @@
--# Find Phonon
--
--# Copyright (c) 2010, Harald Sitter <sitter@kde.org>
--#
--# Redistribution and use is allowed according to the terms of the BSD license.
--# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
--
--if (NOT PHONON_BUILDSYSTEM_DIR)
-- find_program(PC_EXECUTABLE NAMES pkg-config
-- PATH_SUFFIXES bin
-- HINTS
-- ${CMAKE_INSTALL_PREFIX}
-- ONLY_CMAKE_FIND_ROOT_PATH
-- )
--
-- if (NOT PC_EXECUTABLE)
-- if (Phonon_FIND_REQUIRED)
-- message(FATAL_ERROR "ERROR: Could not find pkg-config [required to find Phonon].")
-- endif (Phonon_FIND_REQUIRED)
-- endif (NOT PC_EXECUTABLE)
--
-- if (PC_EXECUTABLE)
-- execute_process(COMMAND "${PC_EXECUTABLE}" --variable=buildsystemdir phonon
-- OUTPUT_VARIABLE _data_DIR
-- ERROR_QUIET
-- OUTPUT_STRIP_TRAILING_WHITESPACE)
-- file(TO_CMAKE_PATH "${_data_DIR}" _data_DIR)
-- find_path(PHONON_BUILDSYSTEM_DIR FindPhononInternal.cmake HINTS ${_data_DIR})
-- endif (PC_EXECUTABLE)
--endif (NOT PHONON_BUILDSYSTEM_DIR)
--
--if (PHONON_BUILDSYSTEM_DIR)
-- set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PHONON_BUILDSYSTEM_DIR})
--
-- if (Phonon_FIND_REQUIRED)
-- set(_req REQUIRED)
-- endif (Phonon_FIND_REQUIRED)
-- if (PHONON_FIND_QUIETLY)
-- set(_quiet QUIET)
-- endif (PHONON_FIND_QUIETLY)
--
-- find_package(PhononInternal ${_req} ${_quiet})
--else (PHONON_BUILDSYSTEM_DIR)
-- if (_data_DIR)
-- if (Phonon_FIND_REQUIRED)
-- message(FATAL_ERROR "ERROR: FindPhonon.cmake not found in ${_data_DIR}")
-- endif (Phonon_FIND_REQUIRED)
-- else (_data_DIR)
-- if (Phonon_FIND_REQUIRED)
-- message(FATAL_ERROR "ERROR: Either pkg-config can not find its phonon config, or you are not using a recent enough Phonon version.")
-- endif (Phonon_FIND_REQUIRED)
-- endif (_data_DIR)
--endif (PHONON_BUILDSYSTEM_DIR)
-
---- /dev/null
-+++ b/cmake/MacroEnsureVersion.cmake
-@@ -0,0 +1,117 @@
-+# This file defines the following macros for developers to use in ensuring
-+# that installed software is of the right version:
-+#
-+# MACRO_ENSURE_VERSION - test that a version number is greater than
-+# or equal to some minimum
-+# MACRO_ENSURE_VERSION_RANGE - test that a version number is greater than
-+# or equal to some minimum and less than some
-+# maximum
-+# MACRO_ENSURE_VERSION2 - deprecated, do not use in new code
-+#
-+
-+# MACRO_ENSURE_VERSION
-+# This macro compares version numbers of the form "x.y.z" or "x.y"
-+# MACRO_ENSURE_VERSION( FOO_MIN_VERSION FOO_VERSION_FOUND FOO_VERSION_OK)
-+# will set FOO_VERSION_OK to true if FOO_VERSION_FOUND >= FOO_MIN_VERSION
-+# Leading and trailing text is ok, e.g.
-+# MACRO_ENSURE_VERSION( "2.5.31" "flex 2.5.4a" VERSION_OK)
-+# which means 2.5.31 is required and "flex 2.5.4a" is what was found on the system
-+
-+# Copyright (c) 2006, David Faure, <faure@kde.org>
-+# Copyright (c) 2007, Will Stephenson <wstephenson@kde.org>
-+#
-+# Redistribution and use is allowed according to the terms of the BSD license.
-+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-+
-+# MACRO_ENSURE_VERSION_RANGE
-+# This macro ensures that a version number of the form
-+# "x.y.z" or "x.y" falls within a range defined by
-+# min_version <= found_version < max_version.
-+# If this expression holds, FOO_VERSION_OK will be set TRUE
-+#
-+# Example: MACRO_ENSURE_VERSION_RANGE3( "0.1.0" ${FOOCODE_VERSION} "0.7.0" FOO_VERSION_OK )
-+#
-+# This macro will break silently if any of x,y,z are greater than 100.
-+#
-+# Copyright (c) 2007, Will Stephenson <wstephenson@kde.org>
-+#
-+# Redistribution and use is allowed according to the terms of the BSD license.
-+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-+
-+# NORMALIZE_VERSION
-+# Helper macro to convert version numbers of the form "x.y.z"
-+# to an integer equal to 10^4 * x + 10^2 * y + z
-+#
-+# This macro will break silently if any of x,y,z are greater than 100.
-+#
-+# Copyright (c) 2006, David Faure, <faure@kde.org>
-+# Copyright (c) 2007, Will Stephenson <wstephenson@kde.org>
-+#
-+# Redistribution and use is allowed according to the terms of the BSD license.
-+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-+
-+# CHECK_RANGE_INCLUSIVE_LOWER
-+# Helper macro to check whether x <= y < z
-+#
-+# Copyright (c) 2007, Will Stephenson <wstephenson@kde.org>
-+#
-+# Redistribution and use is allowed according to the terms of the BSD license.
-+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-+
-+
-+MACRO(NORMALIZE_VERSION _requested_version _normalized_version)
-+ STRING(REGEX MATCH "[^0-9]*[0-9]+\\.[0-9]+\\.[0-9]+.*" _threePartMatch "${_requested_version}")
-+ if (_threePartMatch)
-+ # parse the parts of the version string
-+ STRING(REGEX REPLACE "[^0-9]*([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" _major_vers "${_requested_version}")
-+ STRING(REGEX REPLACE "[^0-9]*[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" _minor_vers "${_requested_version}")
-+ STRING(REGEX REPLACE "[^0-9]*[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" _patch_vers "${_requested_version}")
-+ else (_threePartMatch)
-+ STRING(REGEX REPLACE "([0-9]+)\\.[0-9]+" "\\1" _major_vers "${_requested_version}")
-+ STRING(REGEX REPLACE "[0-9]+\\.([0-9]+)" "\\1" _minor_vers "${_requested_version}")
-+ set(_patch_vers "0")
-+ endif (_threePartMatch)
-+
-+ # compute an overall version number which can be compared at once
-+ MATH(EXPR ${_normalized_version} "${_major_vers}*10000 + ${_minor_vers}*100 + ${_patch_vers}")
-+ENDMACRO(NORMALIZE_VERSION)
-+
-+MACRO(MACRO_CHECK_RANGE_INCLUSIVE_LOWER _lower_limit _value _upper_limit _ok)
-+ if (${_value} LESS ${_lower_limit})
-+ set( ${_ok} FALSE )
-+ elseif (${_value} EQUAL ${_lower_limit})
-+ set( ${_ok} TRUE )
-+ elseif (${_value} EQUAL ${_upper_limit})
-+ set( ${_ok} FALSE )
-+ elseif (${_value} GREATER ${_upper_limit})
-+ set( ${_ok} FALSE )
-+ else (${_value} LESS ${_lower_limit})
-+ set( ${_ok} TRUE )
-+ endif (${_value} LESS ${_lower_limit})
-+ENDMACRO(MACRO_CHECK_RANGE_INCLUSIVE_LOWER)
-+
-+MACRO(MACRO_ENSURE_VERSION requested_version found_version var_too_old)
-+ NORMALIZE_VERSION( ${requested_version} req_vers_num )
-+ NORMALIZE_VERSION( ${found_version} found_vers_num )
-+
-+ if (found_vers_num LESS req_vers_num)
-+ set( ${var_too_old} FALSE )
-+ else (found_vers_num LESS req_vers_num)
-+ set( ${var_too_old} TRUE )
-+ endif (found_vers_num LESS req_vers_num)
-+
-+ENDMACRO(MACRO_ENSURE_VERSION)
-+
-+MACRO(MACRO_ENSURE_VERSION2 requested_version2 found_version2 var_too_old2)
-+ MACRO_ENSURE_VERSION( ${requested_version2} ${found_version2} ${var_too_old2})
-+ENDMACRO(MACRO_ENSURE_VERSION2)
-+
-+MACRO(MACRO_ENSURE_VERSION_RANGE min_version found_version max_version var_ok)
-+ NORMALIZE_VERSION( ${min_version} req_vers_num )
-+ NORMALIZE_VERSION( ${found_version} found_vers_num )
-+ NORMALIZE_VERSION( ${max_version} max_vers_num )
-+
-+ MACRO_CHECK_RANGE_INCLUSIVE_LOWER( ${req_vers_num} ${found_vers_num} ${max_vers_num} ${var_ok})
-+ENDMACRO(MACRO_ENSURE_VERSION_RANGE)
-+
-+
diff --git a/source/l/phonon-xine/phonon-xine.SlackBuild b/source/l/phonon-xine/phonon-xine.SlackBuild
deleted file mode 100755
index 2aff84356..000000000
--- a/source/l/phonon-xine/phonon-xine.SlackBuild
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/sh
-# Copyright 2011, 2012 Eric Hameleers, Eindhoven, NL
-# Copyright 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
-# All rights reserved.
-#
-# Permission to use, copy, modify, and distribute this software for
-# any purpose with or without fee is hereby granted, provided that
-# the above copyright notice and this permission notice appear in all
-# copies.
-#
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-# -----------------------------------------------------------------------------
-
-
-PKGNAM=phonon-xine
-SRCNAM=phonon-backend-xine
-VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
-BUILD=${BUILD:-1}
-
-NUMJOBS=${NUMJOBS:" -j7 "}
-
-# Automatically determine the architecture we're building on:
-MARCH=$( uname -m )
-if [ -z "$ARCH" ]; then
- case "$MARCH" in
- i?86) export ARCH=i486 ;;
- armv7hl) export ARCH=$MARCH ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$MARCH ;;
- esac
-fi
-
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PKGNAM
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-cd $TMP
-rm -rf $SRCNAM-$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* || exit 1
-cd $SRCNAM-$VERSION || exit 1
-
-# Use better phonon detection routine:
-cat $CWD/phonon-backend-xine-4.4.4.find.phonon.patch | patch -p1 --verbose || exit 1
-
-# Switch from oxygen to hicolor icons. This way they are visible,
-# even when the current icon theme is not oxygen.
-for res in 16 22 32 48 64 128 sc ; do
- mv xine/ox${res}-app-phonon-xine.png xine/hi${res}-app-phonon-xine.png
-done
-
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-echo Building ...
-mkdir -p build
-cd build
- cmake \
- -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DMAN_INSTALL_DIR=/usr/man \
- -DSYSCONF_INSTALL_DIR=/etc \
- -DLIB_SUFFIX=${LIBDIRSUFFIX} \
- ..
- make $NUMJOBS
- make DESTDIR=$PKG install
-cd -
-
-# Add documentation:
-mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
-cp -a \
- COPYING.LIB xine/BUGS \
- $PKG/usr/doc/$PKGNAM-$VERSION
-
-# Compress the man page(s):
-if [ -d $PKG/usr/man ]; then
- find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
- for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).
-gz $i.gz ; rm $i ; done
-fi
-
-# Strip binaries (if any):
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-# Add a package description:
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-# Build the package:
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/l/phonon/phonon.SlackBuild b/source/l/phonon/phonon.SlackBuild
index 2b155060a..1ff8f1fab 100755
--- a/source/l/phonon/phonon.SlackBuild
+++ b/source/l/phonon/phonon.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2008 Robby Workman, Northport, Alabama, USA
-# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,12 +21,12 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Modified 2010, 2011, 2012 Eric Hameleers, Eindhoven, NL
+# Modified 2010, 2011, 2012, 2014 Eric Hameleers, Eindhoven, NL
PKGNAM=phonon
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -34,7 +34,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -42,8 +42,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -88,11 +88,34 @@ cd build
-DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT:BOOL=ON \
-DPHONON_QT_PLUGIN_INSTALL_DIR=/usr/lib$LIBDIRSUFFIX/qt/plugins/designer \
-DWITH_QZeitgeist=BOOL:OFF \
+ -DWITH_PulseAudio=BOOL:ON \
..
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
cd -
+# Conditional build of Qt5 support:
+if qtpaths-qt5 --qt-version 1>/dev/null 2>/dev/null ; then
+ mkdir build-qt5
+ cd build-qt5
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMAN_INSTALL_DIR=/usr/man \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT:BOOL=ON \
+ -DPHONON_QT_PLUGIN_INSTALL_DIR=/usr/lib$LIBDIRSUFFIX/qt/plugins/designer \
+ -DWITH_QZeitgeist=BOOL:OFF \
+ -DWITH_PulseAudio=BOOL:ON \
+ -DPHONON_BUILD_PHONON4QT5=ON \
+ -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake-qt5 \
+ ..
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+ cd -
+fi
+
# PyQT won't find the header files otherwise:
sed -i -e 's#{includedir}$#& -I\${includedir}/phonon#' $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/phonon.pc
diff --git a/source/l/pil/slack-desc b/source/l/pil/slack-desc
deleted file mode 100644
index 1e48b571c..000000000
--- a/source/l/pil/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in. You must make
-# exactly 11 lines for the formatting to be correct. It's also customary to
-# leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-pil: pil (Python Imaging Library)
-pil:
-pil: The Python Imaging Library (PIL) adds image processing capabilities
-pil: to your Python environment. This library provides extensive file
-pil: format support, an efficient internal representation, and powerful
-pil: image processing capabilities.
-pil:
-pil: PIL is used by the scanning component of HPLIP.
-pil:
-pil: PIL homepage: http://www.pythonware.com/products/pil/
-pil:
diff --git a/source/l/pilot-link/pilot-link-0.12.5-redefinePerlsymbols.patch b/source/l/pilot-link/pilot-link-0.12.5-redefinePerlsymbols.patch
new file mode 100644
index 000000000..cdeb1d82e
--- /dev/null
+++ b/source/l/pilot-link/pilot-link-0.12.5-redefinePerlsymbols.patch
@@ -0,0 +1,584 @@
+diff -up pilot-link-0.12.5/bindings/Perl/Pilot.xs.symbol pilot-link-0.12.5/bindings/Perl/Pilot.xs
+--- pilot-link-0.12.5/bindings/Perl/Pilot.xs.symbol 2007-11-12 18:49:54.000000000 +0100
++++ pilot-link-0.12.5/bindings/Perl/Pilot.xs 2011-07-01 16:03:35.080212371 +0200
+@@ -47,6 +47,10 @@
+
+ #include "const-c.inc"
+
++#ifndef sv_yes
++#define sv_yes PL_sv_yes
++#define sv_no PL_sv_no
++#endif
+
+ typedef unsigned char * CPTR;
+
+@@ -160,7 +164,7 @@ SvChar4(arg)
+
+ #define pack_dbinfo(arg, var, failure) { \
+ if (failure < 0) { \
+- arg = &sv_undef; \
++ arg = &PL_sv_undef; \
+ self->errnop = failure; \
+ } else { \
+ HV * i = newHV(); \
+@@ -214,15 +218,15 @@ SvChar4(arg)
+ var.createDate = (s = hv_fetch(i, "createDate", 10, 0)) ? SvIV(*s) : 0;\
+ var.modifyDate = (s = hv_fetch(i, "modifyDate", 10, 0)) ? SvIV(*s) : 0;\
+ var.backupDate = (s = hv_fetch(i, "backupDate", 10, 0)) ? SvIV(*s) : 0;\
+- if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,na) : 0) \
+- strncpy(var.name, SvPV(*s, na), sizeof(var.name)); \
++ if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,PL_na) : 0) \
++ strncpy(var.name, SvPV(*s, PL_na), sizeof(var.name)); \
+ } else {\
+ croak("argument is not a hash reference"); \
+ }
+
+ #define pack_userinfo(arg, var, failure) { \
+ if (failure < 0) { \
+- arg = &sv_undef; \
++ arg = &PL_sv_undef; \
+ self->errnop = failure; \
+ } else { \
+ HV * i = newHV(); \
+@@ -246,8 +250,8 @@ SvChar4(arg)
+ var.lastSyncPC = (s = hv_fetch(i, "lastSyncPC", 10, 0)) ? SvIV(*s) : 0;\
+ var.lastSyncDate = (s = hv_fetch(i, "lastSyncDate", 12, 0)) ? SvIV(*s) : 0;\
+ var.successfulSyncDate = (s = hv_fetch(i, "successfulSyncDate", 18, 0)) ? SvIV(*s) : 0;\
+- if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,na) : 0)\
+- strncpy(var.username, SvPV(*s, na), sizeof(var.username));\
++ if ((s = hv_fetch(i, "name", 4, 0)) ? SvPV(*s,PL_na) : 0)\
++ strncpy(var.username, SvPV(*s, PL_na), sizeof(var.username));\
+ } else {\
+ croak("argument is not a hash reference");\
+ }
+@@ -287,7 +291,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackSI\
+@@ -329,7 +333,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackRecord {\
+@@ -421,7 +425,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackResource\
+@@ -473,7 +477,7 @@ SvChar4(arg)
+ }\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ #define PackPref\
+@@ -536,7 +540,7 @@ SvChar4(arg)
+ croak("Unable to create resource");\
+ } else {\
+ self->errnop = result;\
+- PUSHs(&sv_undef);\
++ PUSHs(&PL_sv_undef);\
+ }
+
+ void doUnpackCategory(HV * self, struct CategoryAppInfo * c)
+@@ -576,7 +580,7 @@ void doPackCategory(HV * self, struct Ca
+
+ if ((s = hv_fetch(self, "categoryName", 12, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+ for (i=0;i<16;i++)
+- strncpy(c->name[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,na) : "", 16);
++ strncpy(c->name[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,PL_na) : "", 16);
+ else
+ for (i=0;i<16;i++)
+ strcpy(c->name[i], "");
+@@ -602,7 +606,7 @@ void doPackCategory(HV * self, struct Ca
+ int SvList(SV * arg, char **list)
+ {
+ int i;
+- char * str = SvPV(arg, na);
++ char * str = SvPV(arg, PL_na);
+ for (i=0;list[i];i++)
+ if (strcasecmp(list[i], str)==0)
+ return i;
+@@ -781,11 +785,11 @@ Pack(record)
+ croak("Invalid advance unit %d encountered", u);
+ }
+ } else {
+- if (strEQ(SvPV(*s, na), "minutes"))
++ if (strEQ(SvPV(*s, PL_na), "minutes"))
+ u = 0;
+- else if (strEQ(SvPV(*s, na), "hours"))
++ else if (strEQ(SvPV(*s, PL_na), "hours"))
+ u = 1;
+- else if (strEQ(SvPV(*s, na), "days"))
++ else if (strEQ(SvPV(*s, PL_na), "days"))
+ u = 2;
+ else
+ croak("Invalid advance unit %d encountered", u);
+@@ -850,10 +854,10 @@ Pack(record)
+ }
+ }
+
+- a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,na) : 0;
++ a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,PL_na) : 0;
+ if (!a.description)
+ croak("appointments must contain a description");
+- a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,na) : 0;
++ a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,PL_na) : 0;
+
+ if (pack_Appointment(&a, &pibuf, datebook_v1) < 0) {
+ croak("pack_Appointment failed");
+@@ -897,7 +901,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_AppointmentAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_AppointmentAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1023,8 +1027,8 @@ Pack(record)
+ a.indefinite = 1;
+ }
+
+- a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,na) : 0;
+- a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,na) : 0;
++ a.description = (s = hv_fetch(h, "description", 11, 0)) ? SvPV(*s,PL_na) : 0;
++ a.note = (s = hv_fetch(h, "note", 4, 0)) ? SvPV(*s,PL_na) : 0;
+
+ if (pack_ToDo(&a, &pibuf, todo_v1) < 0) {
+ croak("pack_ToDo failed");
+@@ -1065,7 +1069,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_ToDoAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_ToDoAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1160,7 +1164,7 @@ Unpack(record)
+ hv_store(ret, "entry", 5, newRV_noinc((SV*)e), 0);
+
+ for (i=0;i<19;i++) {
+- av_push(e, a.entry[i] ? newSVpv(a.entry[i],0) : &sv_undef);
++ av_push(e, a.entry[i] ? newSVpv(a.entry[i],0) : &PL_sv_undef);
+ }
+
+ hv_store(ret, "showPhone", 9, newSViv(a.showPhone), 0);
+@@ -1200,7 +1204,7 @@ Pack(record)
+
+ if ((s = hv_fetch(h, "entry", 5, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+ for (i=0;i<19;i++)
+- a.entry[i] = ((s=av_fetch(av, i, 0)) && SvOK(*s)) ? SvPV(*s,na) : 0;
++ a.entry[i] = ((s=av_fetch(av, i, 0)) && SvOK(*s)) ? SvPV(*s,PL_na) : 0;
+ else
+ for (i=0;i<19;i++)
+ a.entry[i] = 0;
+@@ -1249,7 +1253,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_AddressAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_AddressAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1309,13 +1313,13 @@ PackAppBlock(record)
+ a.sortByCompany = (s = hv_fetch(h, "sortByCompany", 13, 0)) ? SvIV(*s) : 0;
+
+ if ((s = hv_fetch(h, "label", 5, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+- for (i=0;i<22;i++) strncpy(a.labels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,na) : "", 16);
++ for (i=0;i<22;i++) strncpy(a.labels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,PL_na) : "", 16);
+ else
+ for (i=0;i<22;i++) a.labels[i][0] = 0;
+ for (i=0;i<22;i++) a.labels[i][15] = 0;
+
+ if ((s = hv_fetch(h, "phoneLabel", 10, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(av=(AV*)SvRV(*s))==SVt_PVAV))
+- for (i=0;i<8;i++) strncpy(a.phoneLabels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,na) : "", 16);
++ for (i=0;i<8;i++) strncpy(a.phoneLabels[i], (s=av_fetch(av, i, 0)) ? SvPV(*s,PL_na) : "", 16);
+ else
+ for (i=0;i<8;i++) a.phoneLabels[i][0] = 0;
+ for (i=0;i<8;i++) a.phoneLabels[i][15] = 0;
+@@ -1396,7 +1400,7 @@ Pack(record)
+ else {
+
+ if ((s = hv_fetch(h, "text", 4, 0)))
+- a.text = SvPV(*s,na);
++ a.text = SvPV(*s,PL_na);
+ else
+ a.text = 0;
+
+@@ -1438,7 +1442,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MemoAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MemoAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1510,7 +1514,7 @@ Unpack(record)
+
+ SvPV(record,len);
+ if (len > 0) { /* len == 0 if deleted flag is set */
+- if (unpack_Expense(&e, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_Expense(&e, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "date", 4, newRV_noinc((SV*)tmtoav(&e.date)), 0);
+ hv_store(ret, "type", 4, newSVlist(e.type,ExpenseTypeNames),0);
+@@ -1570,15 +1574,15 @@ Pack(record)
+ avtotm((AV*)SvRV(*s), &e.date);
+ else
+ croak("expense record must contain date");
+- if ((s = hv_fetch(h, "amount", 6, 0))) e.amount = SvPV(*s,na);
++ if ((s = hv_fetch(h, "amount", 6, 0))) e.amount = SvPV(*s,PL_na);
+ else e.amount = 0;
+- if ((s = hv_fetch(h, "vendor", 6, 0))) e.vendor = SvPV(*s,na);
++ if ((s = hv_fetch(h, "vendor", 6, 0))) e.vendor = SvPV(*s,PL_na);
+ else e.vendor = 0;
+- if ((s = hv_fetch(h, "city", 4, 0))) e.city = SvPV(*s,na);
++ if ((s = hv_fetch(h, "city", 4, 0))) e.city = SvPV(*s,PL_na);
+ else e.city = 0;
+- if ((s = hv_fetch(h, "attendess", 9, 0))) e.attendees = SvPV(*s,na);
++ if ((s = hv_fetch(h, "attendess", 9, 0))) e.attendees = SvPV(*s,PL_na);
+ else e.attendees = 0;
+- if ((s = hv_fetch(h, "note", 4, 0))) e.note = SvPV(*s,na);
++ if ((s = hv_fetch(h, "note", 4, 0))) e.note = SvPV(*s,PL_na);
+ else e.note = 0;
+
+ len = pack_Expense(&e, mybuf, 0xffff);
+@@ -1619,7 +1623,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_ExpenseAppInfo(&e, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_ExpenseAppInfo(&e, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "sortOrder", 9, newSVlist(e.sortOrder,ExpenseSortNames),0);
+ a = newAV();
+@@ -1662,15 +1666,15 @@ PackAppBlock(record)
+ HV * hv;
+ if ((s=av_fetch(av, i, 0)) && SvOK(*s) && SvRV(*s) && (SvTYPE(hv=(HV*)SvRV(*s))==SVt_PVHV)) {
+ if (s = hv_fetch(hv, "name", 4, 0)) {
+- strncpy(e.currencies[i].name, SvPV(*s, na), 16);
++ strncpy(e.currencies[i].name, SvPV(*s, PL_na), 16);
+ e.currencies[i].name[15] = 0;
+ }
+ if (s = hv_fetch(hv, "symbol", 6, 0)) {
+- strncpy(e.currencies[i].symbol, SvPV(*s, na), 4);
++ strncpy(e.currencies[i].symbol, SvPV(*s, PL_na), 4);
+ e.currencies[i].symbol[3] = 0;
+ }
+ if (s = hv_fetch(hv, "rate", 4, 0)) {
+- strncpy(e.currencies[i].rate, SvPV(*s, na), 8);
++ strncpy(e.currencies[i].rate, SvPV(*s, PL_na), 8);
+ e.currencies[i].rate[7] = 0;
+ }
+ }
+@@ -1718,7 +1722,7 @@ UnpackPref(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_ExpensePref(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_ExpensePref(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "unitOfDistance", 14, newSVlist(a.unitOfDistance, ExpenseDistanceNames), 0);
+ hv_store(ret, "currentCategory", 15, newSViv(a.currentCategory), 0);
+@@ -1811,7 +1815,7 @@ Unpack(record)
+
+ SvPV(record,len);
+ if (len > 0) { /* len == 0 if deleted flag is set */
+- if (unpack_Mail(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_Mail(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ if (a.subject) hv_store(ret, "subject", 7, newSVpv(a.subject,0), 0);
+ if (a.from) hv_store(ret, "from", 4, newSVpv(a.from,0), 0);
+@@ -1858,14 +1862,14 @@ Pack(record)
+ }
+ else {
+
+- a.subject = (s = hv_fetch(h, "subject", 7, 0)) ? SvPV(*s,na) : 0;
+- a.from = (s = hv_fetch(h, "from", 4, 0)) ? SvPV(*s,na) : 0;
+- a.to = (s = hv_fetch(h, "to", 2, 0)) ? SvPV(*s,na) : 0;
+- a.cc = (s = hv_fetch(h, "cc", 2, 0)) ? SvPV(*s,na) : 0;
+- a.bcc = (s = hv_fetch(h, "bcc", 3, 0)) ? SvPV(*s,na) : 0;
+- a.replyTo = (s = hv_fetch(h, "replyTo", 7, 0)) ? SvPV(*s,na) : 0;
+- a.sentTo = (s = hv_fetch(h, "sentTo", 6, 0)) ? SvPV(*s,na) : 0;
+- a.body = (s = hv_fetch(h, "body", 4, 0)) ? SvPV(*s,na) : 0;
++ a.subject = (s = hv_fetch(h, "subject", 7, 0)) ? SvPV(*s,PL_na) : 0;
++ a.from = (s = hv_fetch(h, "from", 4, 0)) ? SvPV(*s,PL_na) : 0;
++ a.to = (s = hv_fetch(h, "to", 2, 0)) ? SvPV(*s,PL_na) : 0;
++ a.cc = (s = hv_fetch(h, "cc", 2, 0)) ? SvPV(*s,PL_na) : 0;
++ a.bcc = (s = hv_fetch(h, "bcc", 3, 0)) ? SvPV(*s,PL_na) : 0;
++ a.replyTo = (s = hv_fetch(h, "replyTo", 7, 0)) ? SvPV(*s,PL_na) : 0;
++ a.sentTo = (s = hv_fetch(h, "sentTo", 6, 0)) ? SvPV(*s,PL_na) : 0;
++ a.body = (s = hv_fetch(h, "body", 4, 0)) ? SvPV(*s,PL_na) : 0;
+
+ a.read = (s = hv_fetch(h, "read", 4, 0)) ? SvIV(*s) : 0;
+ a.signature = (s = hv_fetch(h, "signature", 9, 0)) ? SvIV(*s) : 0;
+@@ -1913,7 +1917,7 @@ UnpackAppBlock(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MailAppInfo(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MailAppInfo(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ doUnpackCategory(ret, &a.category);
+
+@@ -1989,7 +1993,7 @@ UnpackSyncPref(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MailSyncPref(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MailSyncPref(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ hv_store(ret, "syncType", 8, newSVlist(a.syncType, MailSyncTypeNames), 0);
+ hv_store(ret, "getHigh", 7, newSViv(a.getHigh), 0);
+@@ -2033,9 +2037,9 @@ PackSyncPref(record, id)
+ a.getContaining = (s=hv_fetch(h,"getContaining",13,0)) ? SvIV(*s) : 0;
+ a.truncate = (s=hv_fetch(h,"truncate",8,0)) ? SvIV(*s) : 0;
+
+- a.filterTo = (s=hv_fetch(h,"filterTo",8,0)) ? SvPV(*s,na) : 0;
+- a.filterFrom = (s=hv_fetch(h,"filterFrom",10,0)) ? SvPV(*s,na) : 0;
+- a.filterSubject = (s=hv_fetch(h,"filterSubject",13,0)) ? SvPV(*s,na) : 0;
++ a.filterTo = (s=hv_fetch(h,"filterTo",8,0)) ? SvPV(*s,PL_na) : 0;
++ a.filterFrom = (s=hv_fetch(h,"filterFrom",10,0)) ? SvPV(*s,PL_na) : 0;
++ a.filterSubject = (s=hv_fetch(h,"filterSubject",13,0)) ? SvPV(*s,PL_na) : 0;
+
+ len = pack_MailSyncPref(&a, mybuf, 0xffff);
+
+@@ -2073,7 +2077,7 @@ UnpackSignaturePref(record)
+ }
+
+ SvPV(record,len);
+- if (unpack_MailSignaturePref(&a, (CPTR)SvPV(record, na), len)>0) {
++ if (unpack_MailSignaturePref(&a, (CPTR)SvPV(record, PL_na), len)>0) {
+
+ if (a.signature)
+ hv_store(ret, "signature", 9, newSVpv(a.signature, 0), 0);
+@@ -2099,7 +2103,7 @@ PackSignaturePref(record, id)
+ RETVAL = record;
+ else {
+
+- a.signature = (s=hv_fetch(h,"signature",9,0)) ? SvPV(*s,na) : 0;
++ a.signature = (s=hv_fetch(h,"signature",9,0)) ? SvPV(*s,PL_na) : 0;
+
+ len = pack_MailSignaturePref(&a, mybuf, 0xffff);
+
+@@ -2129,7 +2133,7 @@ write(socket, msg)
+ {
+ STRLEN len;
+ SvPV(msg, len);
+- RETVAL = pi_write(socket,SvPV(msg,na),len);
++ RETVAL = pi_write(socket,SvPV(msg,PL_na),len);
+ }
+
+ SV *
+@@ -2146,7 +2150,7 @@ read(socket, len)
+ if (result >=0)
+ RETVAL = newSVpvn((char *) pibuf.data, result);
+ else
+- RETVAL = &sv_undef;
++ RETVAL = &PL_sv_undef;
+ }
+ OUTPUT:
+ RETVAL
+@@ -2282,7 +2286,7 @@ class(self, name=0)
+ croak("DBClasses doesn't exist");
+ if (SvOK(name)) {
+ (void)SvPV(name,len);
+- s = hv_fetch(h, SvPV(name,na), len, 0);
++ s = hv_fetch(h, SvPV(name,PL_na), len, 0);
+ }
+ if (!s)
+ s = hv_fetch(h, "", 0, 0);
+@@ -2577,7 +2581,7 @@ getRecords(self)
+ {
+ int result = dlp_ReadOpenDBInfo(self->socket, self->handle, &RETVAL);
+ if (result < 0) {
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ self->errnop = result;
+ }
+ }
+@@ -2745,7 +2749,7 @@ setResource(self, data)
+ result = dlp_WriteResource(self->socket, self->handle, type, id, c, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else
+ RETVAL = newSViv(result);
+ }
+@@ -2798,7 +2802,7 @@ getPref(self, id=0, backup=1)
+ r = dlp_CloseDB(self->socket, self->handle);
+ result = dlp_ReadAppPreference(self->socket, creator, id, backup, 0xFFFF, mybuf, &len, &version);
+ if (pi_version(self->socket)< 0x101)
+- r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,na), &self->handle);
++ r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,PL_na), &self->handle);
+ ReturnReadPref(mybuf, len);
+ }
+
+@@ -2822,10 +2826,10 @@ setPref(self, data)
+ r = dlp_CloseDB(self->socket, self->handle);
+ result = dlp_WriteAppPreference(self->socket, creator, id, backup, version, buf, len);
+ if (pi_version(self->socket)< 0x101)
+- r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,na), &self->handle);
++ r = dlp_OpenDB(self->socket, self->dbcard, self->dbmode, SvPV(self->dbname,PL_na), &self->handle);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -2861,7 +2865,7 @@ setPrefRaw(self, data, number, version,
+ result = dlp_WriteAppPreference(self->socket, creator, number, backup, version, buf, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -2904,7 +2908,7 @@ getTime(self)
+ int result = dlp_GetSysDateTime(self->socket, &t);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else
+ RETVAL = newSViv(t);
+ }
+@@ -2929,7 +2933,7 @@ getSysInfo(self)
+ int result = dlp_ReadSysInfo(self->socket, &si);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ HV * i = newHV();
+ hv_store(i, "romVersion", 10, newSViv(si.romVersion), 0);\
+@@ -2951,7 +2955,7 @@ getCardInfo(self, cardno=0)
+ int result = dlp_ReadStorageInfo(self->socket, cardno, &c);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ HV * i = newHV();
+ hv_store(i, "card", 6, newSViv(c.card), 0);\
+@@ -3037,7 +3041,7 @@ newPref(self, creator, id=0, version=0,
+ croak("Default PrefClass not defined");
+ PUSHMARK(sp);
+ XPUSHs(newSVsv(*s));
+- XPUSHs(&sv_undef);
++ XPUSHs(&PL_sv_undef);
+ XPUSHs(sv_2mortal(newSVChar4(creator)));
+ if (id)
+ XPUSHs(id);
+@@ -3107,7 +3111,7 @@ open(self, name, mode=0, cardno=0)
+ result = dlp_OpenDB(self->socket, cardno, nummode, name, &handle);
+ if (result<0) {
+ self->errnop = result;
+- RETVAL = &sv_undef;
++ RETVAL = &PL_sv_undef;
+ } else {
+ int type;
+ PDA__Pilot__DLP__DB * x = malloc(sizeof(PDA__Pilot__DLP__DB));
+@@ -3156,7 +3160,7 @@ create(self, name, creator, type, flags,
+ int result = dlp_CreateDB(self->socket, creator, type, cardno, flags, version, name, &handle);
+ if (result<0) {
+ self->errnop = result;
+- RETVAL = &sv_undef;
++ RETVAL = &PL_sv_undef;
+ } else {
+ PDA__Pilot__DLP__DB * x = malloc(sizeof(PDA__Pilot__DLP__DB));
+ SV * sv = newSViv((IV)(void*)x);
+@@ -3224,7 +3228,7 @@ setPref(self, data)
+ result = dlp_WriteAppPreference(self->socket, creator, id, backup, version, buf, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -3248,7 +3252,7 @@ setPrefRaw(self, data, creator, number,
+ result = dlp_WriteAppPreference(self->socket, creator, number, backup, version, buf, len);
+ if (result < 0) {
+ self->errnop = result;
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ } else {
+ RETVAL = newSViv(result);
+ }
+@@ -3350,7 +3354,7 @@ findDBInfo(self, start, name, creator, t
+ else
+ t = 0;
+ result = dlp_FindDBInfo(self->socket, cardno, start,
+- SvOK(name) ? SvPV(name,na) : 0,
++ SvOK(name) ? SvPV(name,PL_na) : 0,
+ t, c, &info);
+ pack_dbinfo(RETVAL, info, result);
+ }
+@@ -3367,7 +3371,7 @@ getFeature(self, creator, number)
+ unsigned long f;
+ int result;
+ if ((result = dlp_ReadFeature(self->socket, creator, number, &f))<0) {
+- RETVAL = newSVsv(&sv_undef);
++ RETVAL = newSVsv(&PL_sv_undef);
+ self->errnop = result;
+ } else {
+ RETVAL = newSViv(f);
+@@ -3397,7 +3401,7 @@ getROMToken(self,token)
+ }
+
+ void
+-callApplication(self, creator, type, action, data=&sv_undef)
++callApplication(self, creator, type, action, data=&PL_sv_undef)
+ PDA::Pilot::DLP *self
+ Char4 creator
+ Char4 type
+@@ -3410,7 +3414,7 @@ callApplication(self, creator, type, act
+ int result;
+ (void)SvPV(data,len);
+ result = dlp_CallApplication(self->socket, creator,
+- type, action, len, SvPV(data,na),
++ type, action, len, SvPV(data,PL_na),
+ &retcode, &pibuf);
+ EXTEND(sp, 2);
+ if (result >= 0) {
+@@ -3419,7 +3423,7 @@ callApplication(self, creator, type, act
+ PUSHs(sv_2mortal(newSViv(retcode)));
+ }
+ } else
+- PUSHs(&sv_undef);
++ PUSHs(&PL_sv_undef);
+ }
+
+ int
+@@ -3530,7 +3534,7 @@ class(self, name=0)
+ croak("DBClasses doesn't exist");
+ if (SvOK(name)) {
+ (void)SvPV(name, len);
+- s = hv_fetch(h, SvPV(name, na), len, 0);
++ s = hv_fetch(h, SvPV(name, PL_na), len, 0);
+ }
+ if (!s)
+ s = hv_fetch(h, "", 0, 0);
diff --git a/source/l/pilot-link/pilot-link.SlackBuild b/source/l/pilot-link/pilot-link.SlackBuild
index 751f09644..41f69b27d 100755
--- a/source/l/pilot-link/pilot-link.SlackBuild
+++ b/source/l/pilot-link/pilot-link.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,12 +21,12 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=${VERSION:-0.12.5}
-BUILD=${BUILD:-7}
+BUILD=${BUILD:-10}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ PKG=$TMP/package-pilot-link
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -61,6 +61,7 @@ tar xvf $CWD/pilot-link-$VERSION.tar.bz2 || exit 1
cd pilot-link-$VERSION
zcat $CWD/pilot-link.png14.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/pilot-link-0.12.5-redefinePerlsymbols.patch.gz | patch -p1 --verbose || exit 1
chown -R root:root .
find . \
@@ -131,7 +132,13 @@ fi
mkdir -p $PKG/usr/man/man{1,7}
cp -a doc/man/*.1 $PKG/usr/man/man1
cp -a doc/man/*.7 $PKG/usr/man/man7
-gzip -9 $PKG/usr/man/man?/*.?
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/polkit-gnome/polkit-gnome.SlackBuild b/source/l/polkit-gnome/polkit-gnome.SlackBuild
index 00adeb0bc..4f414e271 100755
--- a/source/l/polkit-gnome/polkit-gnome.SlackBuild
+++ b/source/l/polkit-gnome/polkit-gnome.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -42,8 +42,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -78,9 +78,7 @@ CXXFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--mandir=/usr/man \
- --enable-gtk-doc \
--disable-static \
- --enable-introspection \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/l/polkit/05_revert-admin-identities-unix-group-wheel.patch b/source/l/polkit/05_revert-admin-identities-unix-group-wheel.patch
deleted file mode 100644
index 1562e69db..000000000
--- a/source/l/polkit/05_revert-admin-identities-unix-group-wheel.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1892aeb9c13841335a4ac383e8a787a3c2728c45 Mon Sep 17 00:00:00 2001
-From: Michael Biebl <biebl@debian.org>
-Date: Fri, 9 Dec 2011 00:31:21 +0100
-Subject: [PATCH] Revert "Default to AdminIdentities=unix-group:wheel for
- local authority"
-
-This reverts commit 763faf434b445c20ae9529100d3ef5290976d0c9.
----
- docs/man/pklocalauthority.xml | 4 ++--
- src/polkitbackend/50-localauthority.conf | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-Index: policykit/docs/man/pklocalauthority.xml
-===================================================================
---- policykit.orig/docs/man/pklocalauthority.xml 2012-01-06 10:34:01.830221577 +0100
-+++ policykit/docs/man/pklocalauthority.xml 2012-01-06 10:39:24.206237179 +0100
-@@ -385,10 +385,10 @@
- </para>
- <programlisting>
- [Configuration]
--AdminIdentities=unix-group:staff
-+AdminIdentities=unix-group:desktop_admin_r
- </programlisting>
- <para>
-- specifies that any user in the <literal>staff</literal> UNIX
-+ that any user in the <literal>desktop_admin_r</literal> UNIX
- group can be used for authentication when administrator
- authentication is needed. This file would typically be installed
- in the <filename>/etc/polkit-1/localauthority.conf.d</filename>
-Index: policykit/src/polkitbackend/50-localauthority.conf
-===================================================================
---- policykit.orig/src/polkitbackend/50-localauthority.conf 2012-01-06 10:33:58.254221404 +0100
-+++ policykit/src/polkitbackend/50-localauthority.conf 2012-01-06 10:39:24.210237180 +0100
-@@ -7,4 +7,4 @@
- #
-
- [Configuration]
--AdminIdentities=unix-group:wheel
-+AdminIdentities=unix-user:0
diff --git a/source/l/polkit/10-org.freedesktop.NetworkManager.pkla b/source/l/polkit/10-org.freedesktop.NetworkManager.pkla
deleted file mode 100644
index b24916028..000000000
--- a/source/l/polkit/10-org.freedesktop.NetworkManager.pkla
+++ /dev/null
@@ -1,6 +0,0 @@
-[nm-applet]
-Identity=unix-group:netdev
-Action=org.freedesktop.NetworkManager.*
-ResultAny=yes
-ResultInactive=no
-ResultActive=yes
diff --git a/source/l/polkit/10-org.freedesktop.NetworkManager.rules b/source/l/polkit/10-org.freedesktop.NetworkManager.rules
new file mode 100644
index 000000000..9d6557b3b
--- /dev/null
+++ b/source/l/polkit/10-org.freedesktop.NetworkManager.rules
@@ -0,0 +1,7 @@
+polkit.addRule(function(action, subject) {
+ if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 &&
+ subject.isInGroup("netdev")) {
+ return polkit.Result.YES;
+ }
+});
+
diff --git a/source/l/polkit/20-plugdev-group-mount-override.pkla b/source/l/polkit/20-plugdev-group-mount-override.pkla
deleted file mode 100644
index 8149de672..000000000
--- a/source/l/polkit/20-plugdev-group-mount-override.pkla
+++ /dev/null
@@ -1,6 +0,0 @@
-[plugdev group mount override]
-Identity=unix-group:plugdev
-Action=org.freedesktop.udisks2.filesystem-*;org.freedesktop.udisks2.eject-*
-ResultAny=yes
-ResultInactive=yes
-ResultActive=yes
diff --git a/source/l/polkit/20-plugdev-group-mount-override.rules b/source/l/polkit/20-plugdev-group-mount-override.rules
new file mode 100644
index 000000000..c47a66cf2
--- /dev/null
+++ b/source/l/polkit/20-plugdev-group-mount-override.rules
@@ -0,0 +1,16 @@
+/* http://udisks.freedesktop.org/docs/latest/udisks-polkit-actions.html */
+
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.freedesktop.udisks2.filesystem-mount" &&
+ subject.isInGroup("plugdev")) {
+ return polkit.Result.YES;
+ }
+});
+
+polkit.addRule(function(action, subject) {
+ if (action.id == "org.freedesktop.udisks2.eject-media" &&
+ subject.isInGroup("plugdev")) {
+ return polkit.Result.YES;
+ }
+});
+
diff --git a/source/l/polkit/doinst.sh b/source/l/polkit/doinst.sh
index bce9ca90e..887bb792d 100644
--- a/source/l/polkit/doinst.sh
+++ b/source/l/polkit/doinst.sh
@@ -1,13 +1,30 @@
config() {
NEW="$1"
- OLD="`dirname $NEW`/`basename $NEW .new`"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
- elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
-config etc/polkit-1/localauthority/50-local.d/20-plugdev-group-mount-override.pkla.new
-config etc/polkit-1/localauthority/50-local.d/10-org.freedesktop.NetworkManager.pkla.new
+config etc/polkit-1/rules.d/20-plugdev-group-mount-override.rules.new
+config etc/polkit-1/rules.d/10-org.freedesktop.NetworkManager.rules.new
+
+# Make sure the polkitd user and group exist:
+if ! grep -q "^polkitd:" etc/passwd ; then
+ echo "polkitd:x:87:87:PolicyKit daemon owner:/var/lib/polkit:/bin/false" >> etc/passwd
+fi
+if ! grep -q "^polkitd:" etc/group ; then
+ echo "polkitd:x:87:" >> etc/group
+fi
+
+# Remove obsolete rules:
+rm -f etc/polkit-1/localauthority/50-local.d/*.pkla{,.new}
+rm -f etc/polkit-1/rules.d/*.pkla{,.new}
+
+# Remove obsolete directory:
+rmdir etc/polkit-1/localauthority/50-local.d 2> /dev/null
+rmdir etc/polkit-1/localauthority 2> /dev/null
+
diff --git a/source/l/polkit/dont-set-wheel-group-as-admin.diff b/source/l/polkit/dont-set-wheel-group-as-admin.diff
new file mode 100644
index 000000000..6a86ac280
--- /dev/null
+++ b/source/l/polkit/dont-set-wheel-group-as-admin.diff
@@ -0,0 +1,10 @@
+diff -Nur polkit-0.112.orig/src/polkitbackend/50-default.rules polkit-0.112/src/polkitbackend/50-default.rules
+--- polkit-0.112.orig/src/polkitbackend/50-default.rules 2013-04-29 12:28:57.000000000 -0500
++++ polkit-0.112/src/polkitbackend/50-default.rules 2015-01-01 23:32:40.154400050 -0600
+@@ -8,5 +8,5 @@
+ // about configuring polkit.
+
+ polkit.addAdminRule(function(action, subject) {
+- return ["unix-group:wheel"];
++ return ["unix-user:root"];
+ });
diff --git a/source/l/polkit/polkit.SlackBuild b/source/l/polkit/polkit.SlackBuild
index 9784bdb54..0d89e18b6 100755
--- a/source/l/polkit/polkit.SlackBuild
+++ b/source/l/polkit/polkit.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2009, 2011 Robby Workman, Northport, Alabama, USA
+# Copyright 2009, 2011, 2015 Robby Workman, Northport, Alabama, USA
# Copyright 2010 Eric Hameleers, Eindhoven, NL
# Copyright 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
@@ -24,13 +24,13 @@
PKGNAM=polkit
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.gz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -43,8 +43,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -72,7 +72,14 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-zcat $CWD/05_revert-admin-identities-unix-group-wheel.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/dont-set-wheel-group-as-admin.diff.gz | patch -p1 || exit 1
+
+# If we get here and don't have a polkitd user/group, add one.
+# Otherwise a few directories in the package will have wrong permissions.
+if ! grep -q "^polkitd:" /etc/passwd ; then
+ groupadd -fg 87 polkitd
+ useradd -c "PolicyKit daemon owner" -d /var/lib/polkit -u 87 -g polkitd -s /bin/false polkitd
+fi
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -86,28 +93,25 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-gtk-doc \
--mandir=/usr/man \
--disable-static \
+ --disable-examples \
--enable-introspection \
+ --enable-libsystemd-login=no \
--with-authfw=shadow \
--enable-verbose-mode \
--with-os-type=Slackware \
--build=$ARCH-slackware-linux
-#NOTE: The directory /etc/polkit-1/localauthority must be owned
-# by root and have mode 700
-#NOTE: The directory /var/lib/polkit-1 must be owned
-# by root and have mode 700
-#NOTE: The file ${exec_prefix}/libexec/polkit-agent-helper-1 must be owned
-# by root and have mode 4755 (setuid root binary)
-#NOTE: The file ${exec_prefix}/bin/pkexec must be owned by root and
-# have mode 4755 (setuid root binary)
-
# Build and install:
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
+# Create homedir for polkit. This is mentioned in /etc/passwd, but isn't
+# actually used for anything later. Perms don't matter.
+mkdir -p $PKG/var/lib/polkit
+
# Add default policy files for udisks2 and NetworkManager events:
-cat $CWD/20-plugdev-group-mount-override.pkla > $PKG/etc/polkit-1/localauthority/50-local.d/20-plugdev-group-mount-override.pkla.new
-cat $CWD/10-org.freedesktop.NetworkManager.pkla > $PKG/etc/polkit-1/localauthority/50-local.d/10-org.freedesktop.NetworkManager.pkla.new
+cat $CWD/10-org.freedesktop.NetworkManager.rules > $PKG/etc/polkit-1/rules.d/10-org.freedesktop.NetworkManager.rules.new
+cat $CWD/20-plugdev-group-mount-override.rules > $PKG/etc/polkit-1/rules.d/20-plugdev-group-mount-override.rules.new
# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" \
diff --git a/source/l/poppler/poppler.SlackBuild b/source/l/poppler/poppler.SlackBuild
index af12f9fa3..7fbf53f5d 100755
--- a/source/l/poppler/poppler.SlackBuild
+++ b/source/l/poppler/poppler.SlackBuild
@@ -28,7 +28,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -37,8 +37,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -85,6 +85,9 @@ CFLAGS="$SLKCFLAGS" \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
+# Remove files that overlap with the xpdf package:
+rm -f $PKG/usr/bin/pdfdetach $PKG/usr/man/man1/pdfdetach.1
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/poppler/slack-desc b/source/l/poppler/slack-desc
index 9d5891d8a..c32595646 100644
--- a/source/l/poppler/slack-desc
+++ b/source/l/poppler/slack-desc
@@ -14,6 +14,6 @@ poppler: library, whenever a flaw was found potentially dozens of applications
poppler: incorporating code from xpdf would have to be patched. By providing
poppler: a centralized PDF library this duplicated effort will be eliminated.
poppler:
-poppler:
+poppler: Homepage: http://poppler.freedesktop.org
poppler:
poppler:
diff --git a/source/l/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch b/source/l/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
new file mode 100644
index 000000000..ea54ae3f5
--- /dev/null
+++ b/source/l/pulseaudio/0001-client-conf-Add-allow-autospawn-for-root.patch
@@ -0,0 +1,79 @@
+From 1cb5647f76dc8cd7bacbce2a64fac9e6c2dc3b16 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanu.kaskinen at linux.intel.com>
+Date: Tue, 28 Apr 2015 14:32:43 +0300
+Subject: [PATCH] client-conf: Add allow-autospawn-for-root
+
+Usually autospawning for root is a bad idea, since it can easily
+interfere with other users' PulseAudio instances, but in embedded
+environments where only root exists, autospawning is fine.
+
+Upstream-Status: Submitted [http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/23549]
+
+Signed-off-by: Tanu Kaskinen <tanu.kaskinen at linux.intel.com>
+---
+ man/pulse-client.conf.5.xml.in | 9 +++++++++
+ src/pulse/client-conf.c | 1 +
+ src/pulse/client-conf.h | 1 +
+ src/pulse/client.conf.in | 1 +
+ src/pulse/context.c | 2 +-
+ 5 files changed, 13 insertions(+), 1 deletion(-)
+
+--- ./man/pulse-client.conf.5.xml.in.orig 2016-05-10 07:28:04.000000000 -0500
++++ ./man/pulse-client.conf.5.xml.in 2016-06-22 13:39:30.494696654 -0500
+@@ -82,6 +82,15 @@
+ </option>
+
+ <option>
++ <p><opt>allow-autospawn-for-root=</opt> Allow autospawning also for root.
++ Takes a boolean value, defaults to <opt>no</opt>. If the <opt>autospawn
++ </opt> option is disabled, this option has no effect. Autospawning for
++ root is disabled by default, because running PulseAudio as root will
++ interfere with regular users' PulseAudio instances. This option should be
++ enabled only in environments where there are no regular users at all.</p>
++ </option>
++
++ <option>
+ <p><opt>daemon-binary=</opt> Path to the PulseAudio daemon to
+ run when autospawning. Defaults to a path configured at compile
+ time.</p>
+--- ./src/pulse/client.conf.in.orig 2016-05-03 01:17:39.000000000 -0500
++++ ./src/pulse/client.conf.in 2016-06-22 13:39:30.527696657 -0500
+@@ -23,6 +23,7 @@
+ ; default-dbus-server =
+
+ ; autospawn = yes
++; allow-autospawn-for-root = no
+ ; daemon-binary = @PA_BINARY@
+ ; extra-arguments = --log-target=syslog
+
+--- ./src/pulse/client-conf.c.orig 2016-05-10 07:28:04.000000000 -0500
++++ ./src/pulse/client-conf.c 2016-06-22 13:39:30.505696655 -0500
+@@ -138,6 +138,7 @@
+ { "default-server", pa_config_parse_string, &c->default_server, NULL },
+ { "default-dbus-server", pa_config_parse_string, &c->default_dbus_server, NULL },
+ { "autospawn", pa_config_parse_bool, &c->autospawn, NULL },
++ { "allow-autospawn-for-root", pa_config_parse_bool, &c->allow_autospawn_for_root, NULL },
+ { "cookie-file", pa_config_parse_string, &c->cookie_file_from_client_conf, NULL },
+ { "disable-shm", pa_config_parse_bool, &c->disable_shm, NULL },
+ { "enable-shm", pa_config_parse_not_bool, &c->disable_shm, NULL },
+--- ./src/pulse/context.c.orig 2016-06-01 05:50:54.000000000 -0500
++++ ./src/pulse/context.c 2016-06-22 13:39:30.536696657 -0500
+@@ -1027,7 +1027,7 @@
+ if (!(flags & PA_CONTEXT_NOAUTOSPAWN) && c->conf->autospawn) {
+
+ #ifdef HAVE_GETUID
+- if (getuid() == 0)
++ if (!c->conf->allow_autospawn_for_root && getuid() == 0)
+ pa_log_debug("Not doing autospawn since we are root.");
+ else {
+ c->do_autospawn = true;
+--- ./src/pulse/client-conf.h.orig 2016-06-22 13:39:30.517696656 -0500
++++ ./src/pulse/client-conf.h 2016-06-22 13:40:11.754699631 -0500
+@@ -38,6 +38,7 @@
+ char *cookie_file_from_application;
+ char *cookie_file_from_client_conf;
+ bool autospawn, disable_shm, disable_memfd, auto_connect_localhost, auto_connect_display;
++ bool allow_autospawn_for_root;
+ size_t shm_size;
+ } pa_client_conf;
+
diff --git a/source/l/pulseaudio/0002-allow-autospawn-for-root-default.diff b/source/l/pulseaudio/0002-allow-autospawn-for-root-default.diff
new file mode 100644
index 000000000..15c995836
--- /dev/null
+++ b/source/l/pulseaudio/0002-allow-autospawn-for-root-default.diff
@@ -0,0 +1,27 @@
+--- ./man/pulse-client.conf.5.xml.in.orig 2016-01-06 15:33:09.797022947 -0600
++++ ./man/pulse-client.conf.5.xml.in 2016-01-06 15:35:34.902019857 -0600
+@@ -73,10 +73,7 @@
+ <option>
+ <p><opt>allow-autospawn-for-root=</opt> Allow autospawning also for root.
+ Takes a boolean value, defaults to <opt>no</opt>. If the <opt>autospawn
+- </opt> option is disabled, this option has no effect. Autospawning for
+- root is disabled by default, because running PulseAudio as root will
+- interfere with regular users' PulseAudio instances. This option should be
+- enabled only in environments where there are no regular users at all.</p>
++ </opt> option is disabled, this option has no effect.</p>
+ </option>
+
+ <option>
+--- ./src/pulse/client.conf.in.orig 2016-01-06 15:33:09.800022947 -0600
++++ ./src/pulse/client.conf.in 2016-01-06 15:39:33.502014775 -0600
+@@ -22,8 +22,8 @@
+ ; default-server =
+ ; default-dbus-server =
+
+-; autospawn = yes
+-; allow-autospawn-for-root = no
++autospawn = yes
++allow-autospawn-for-root = yes
+ ; daemon-binary = @PA_BINARY@
+ ; extra-arguments = --log-target=syslog
+
diff --git a/source/l/pulseaudio/0003-no-root-warn.diff b/source/l/pulseaudio/0003-no-root-warn.diff
new file mode 100644
index 000000000..c7d31c414
--- /dev/null
+++ b/source/l/pulseaudio/0003-no-root-warn.diff
@@ -0,0 +1,14 @@
+--- ./src/daemon/main.c.orig 2015-10-30 07:16:48.000000000 -0500
++++ ./src/daemon/main.c 2016-01-07 15:05:42.131126245 -0600
+@@ -647,10 +647,8 @@
+ }
+
+ #ifdef HAVE_GETUID
+- if (getuid() == 0 && !conf->system_instance)
+- pa_log_warn(_("This program is not intended to be run as root (unless --system is specified)."));
+ #ifndef HAVE_DBUS /* A similar, only a notice worthy check was done earlier, if D-Bus is enabled. */
+- else if (getuid() != 0 && conf->system_instance) {
++ if (getuid() != 0 && conf->system_instance) {
+ pa_log(_("Root privileges required."));
+ goto finish;
+ }
diff --git a/source/l/pulseaudio/020_no-parallel-make.diff b/source/l/pulseaudio/020_no-parallel-make.diff
new file mode 100644
index 000000000..6b552e33e
--- /dev/null
+++ b/source/l/pulseaudio/020_no-parallel-make.diff
@@ -0,0 +1,22 @@
+--- src/Makefile.am.orig 2014-02-14 23:45:45.000000000 +1000
++++ src/Makefile.am 2014-10-26 21:59:33.220234317 +1000
+@@ -19,6 +19,8 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ # USA.
+
++.NOTPARALLEL:
++
+ ###################################
+ # Extra directories #
+ ###################################
+--- Makefile.am.orig 2014-01-24 04:57:55.000000000 +1000
++++ Makefile.am 2014-10-26 21:58:47.090622189 +1000
+@@ -15,6 +15,8 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ # USA.
+
++.NOTPARALLEL:
++
+ ACLOCAL_AMFLAGS = -I m4
+
+ EXTRA_DIST = \
diff --git a/source/l/pulseaudio/030_posix-completion.diff b/source/l/pulseaudio/030_posix-completion.diff
new file mode 100644
index 000000000..de1ef055e
--- /dev/null
+++ b/source/l/pulseaudio/030_posix-completion.diff
@@ -0,0 +1,91 @@
+--- shell-completion/bash/pulseaudio.orig 2015-02-13 00:10:35.000000000 +1000
++++ shell-completion/bash/pulseaudio 2015-09-12 11:09:36.948222926 +1000
+@@ -1,39 +1,45 @@
+ #!/bin/bash
+
+ __cards () {
++ (pactl list cards short 2> /dev/null) |\
+ while IFS=$'\t' read idx name _; do
+ printf "%s %s\n" "$idx" "$name"
+- done < <(pactl list cards short 2> /dev/null)
++ done
+ }
+
+ __sinks () {
++ (pactl list sinks short 2> /dev/null) |\
+ while IFS=$'\t' read _ name _ _ _; do
+ printf "%s\n" "$name"
+- done < <(pactl list sinks short 2> /dev/null)
++ done
+ }
+
+ __sinks_idx () {
++ (pactl list sinks short 2> /dev/null) |\
+ while IFS=$'\t' read idx _ _ _ _; do
+ printf "%s\n" "$idx"
+- done < <(pactl list sinks short 2> /dev/null)
++ done
+ }
+
+ __sources () {
++ (pactl list sources short 2> /dev/null) |\
+ while IFS=$'\t' read _ name _ _ _; do
+ printf "%s\n" "$name"
+- done < <(pactl list sources short 2> /dev/null)
++ done
+ }
+
+ __sink_inputs () {
++ (pactl list sink-inputs short 2> /dev/null) |\
+ while IFS=$'\t' read idx _ _ _ _; do
+ printf "%s\n" "$idx"
+- done < <(pactl list sink-inputs short 2> /dev/null)
++ done
+ }
+
+ __source_outputs () {
++ (pactl list source-outputs short 2> /dev/null) |\
+ while IFS=$'\t' read idx _ _ _ _; do
+ printf "%s\n" "$idx"
+- done < <(pactl list source-outputs short 2> /dev/null)
++ done
+ }
+
+ __ports () {
+@@ -77,28 +83,32 @@
+ }
+
+ __all_modules () {
++ (pulseaudio --dump-modules 2> /dev/null) |\
+ while read name; do
+ name=${name%% *}
+ printf "%s\n" "$name"
+- done < <(pulseaudio --dump-modules 2> /dev/null)
++ done
+ }
+
+ __loaded_modules () {
++ (pactl list modules short 2> /dev/null) |\
+ while IFS=$'\t' read idx name _; do
+ printf "%s %s\n" "$idx" "$name"
+- done < <(pactl list modules short 2> /dev/null)
++ done
+ }
+
+ __resample_methods () {
++ (pulseaudio --dump-resample-methods 2> /dev/null) |\
+ while read name; do
+ printf "%s\n" "$name"
+- done < <(pulseaudio --dump-resample-methods 2> /dev/null)
++ done
+ }
+
+ _pacat_file_formats () {
++ (pacat --list-file-formats 2> /dev/null) |\
+ while IFS=$'\t' read name _; do
+ printf "%s\n" "$name"
+- done < <(pacat --list-file-formats 2> /dev/null)
++ done
+ }
+
+ in_array() {
diff --git a/source/l/pulseaudio/doinst.sh b/source/l/pulseaudio/doinst.sh
new file mode 100644
index 000000000..9b27c9f97
--- /dev/null
+++ b/source/l/pulseaudio/doinst.sh
@@ -0,0 +1,36 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+preserve_perms() {
+ NEW="$1"
+ OLD="$(dirname ${NEW})/$(basename ${NEW} .new)"
+ if [ -e ${OLD} ]; then
+ cp -a ${OLD} ${NEW}.incoming
+ cat ${NEW} > ${NEW}.incoming
+ mv ${NEW}.incoming ${NEW}
+ fi
+ config ${NEW}
+}
+
+config etc/pulse/client.conf.new
+config etc/pulse/daemon.conf.new
+config etc/pulse/default.pa.new
+config etc/pulse/system.pa.new
+preserve_perms etc/rc.d/rc.pulseaudio.new
+
+# Make sure the pulse user is in the audio group:
+chroot . /usr/sbin/usermod -a -G audio pulse 1> /dev/null 2> /dev/null
+
+# Make sure the root user is in the audio group:
+chroot . /usr/sbin/usermod -a -G audio root 1> /dev/null 2> /dev/null
+
diff --git a/source/l/pulseaudio/pulseaudio-autostart.patch b/source/l/pulseaudio/pulseaudio-autostart.patch
new file mode 100644
index 000000000..eb44bdbc7
--- /dev/null
+++ b/source/l/pulseaudio/pulseaudio-autostart.patch
@@ -0,0 +1,13 @@
+diff -up pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in.autostart pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in
+--- pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in.autostart 2015-02-12 08:10:35.000000000 -0600
++++ pulseaudio-6.0/src/daemon/start-pulseaudio-x11.in 2015-06-22 11:24:13.561614127 -0500
+@@ -17,6 +17,9 @@
+
+ set -e
+
++# probe to test if autospawn works, else resort to starting manually
++@PACTL_BINARY@ info > /dev/null 2>&1 || @PA_BINARY@ --start "$@"
++
+ if [ x"$DISPLAY" != x ] ; then
+
+ @PACTL_BINARY@ load-module module-x11-publish "display=$DISPLAY" > /dev/null
diff --git a/source/l/pulseaudio/pulseaudio.SlackBuild b/source/l/pulseaudio/pulseaudio.SlackBuild
new file mode 100755
index 000000000..b9b28d151
--- /dev/null
+++ b/source/l/pulseaudio/pulseaudio.SlackBuild
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+# Slackware build script for pulseaudio
+
+# Copyright 2015 Christoph Willing Brisbane, Australia
+# Copyright 2016 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=pulseaudio
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/020_no-parallel-make.diff.gz | patch -p0 --verbose || exit 1
+zcat $CWD/030_posix-completion.diff.gz | patch -p0 --verbose || exit 1
+
+# https://bugzilla.redhat.com/show_bug.cgi?id=1234710
+zcat $CWD/0001-client-conf-Add-allow-autospawn-for-root.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/0002-allow-autospawn-for-root-default.diff.gz | patch -p1 --verbose || exit 1
+
+# Do not log a warning every time root uses PulseAudio:
+zcat $CWD/0003-no-root-warn.diff.gz | patch -p1 --verbose || exit 1
+
+sed -i -e '/@PA_BINARY@/ imkdir -p \$HOME/.config/pulse' src/daemon/start-pulseaudio-x11.in
+echo "X-MATE-Autostart-Phase=Initialization" >> src/daemon/pulseaudio.desktop.in
+
+# If autospawn isn't working, start-pulseaudio-x11 should start it manually:
+zcat $CWD/pulseaudio-autostart.patch.gz | patch -p1 --verbose || exit 1
+
+# Disable "flat volumes" to work more like ALSA's mixer. POLA.
+# Have a google for "flat volumes" for more rationale on us not
+# using the upstream default here.
+sed -i 's/; flat-volumes = yes/flat-volumes = no/g' ./src/daemon/daemon.conf.in
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./bootstrap.sh \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --disable-tcpwrap \
+ --enable-orc \
+ --disable-static \
+ --disable-hal-compat \
+ --disable-bluez4 \
+ --with-system-user=pulse \
+ --with-system-group=pulse \
+ --with-access-group=audio \
+ --with-bash-completion-dir=/usr/share/bash-completion/completions \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS check || make check || exit 1
+make $NUMJOBS || make || exit 1
+make install-strip DESTDIR=$PKG || exit 1
+
+# Remove .la files:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/lib*.la
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/pulseaudio/lib*.la
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/pulse-*/modules/*.la
+
+# Move config files to .new:
+for f in $( find $PKG/etc/pulse/ -type f ) ; do mv $f $f.new ; done
+
+# Add an init script for system wide mode. You shouldn't use this, but we'll
+# still let you if you really want.
+mkdir -p $PKG/etc/rc.d
+cp $CWD/rc.pulseaudio $PKG/etc/rc.d/rc.pulseaudio.new
+chmod 644 $PKG/etc/rc.d/rc.pulseaudio.new
+chown root:root $PKG/etc/rc.d/rc.pulseaudio.new
+
+# Compress and link manpages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+# Install documentation:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ COPYING* *GPL LICENSE README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/pulseaudio/rc.pulseaudio b/source/l/pulseaudio/rc.pulseaudio
new file mode 100644
index 000000000..31cdf4aab
--- /dev/null
+++ b/source/l/pulseaudio/rc.pulseaudio
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Start/stop/restart PulseAudio in system mode.
+# In this mode, a single system instance of PulseAudio will be shared by
+# multiple local users.
+#
+# Please note: this is not generally the best way to use PulseAudio!
+# Normally pulseaudio will start automatically as-needed with an instance
+# per audio user. Unless you really need to use system mode you should leave
+# this script non-executable.
+#
+# For more information, see:
+# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide
+
+pulse_start() {
+ if [ -x /usr/bin/pulseaudio ]; then
+ echo "Starting system PulseAudio daemon: /usr/bin/pulseaudio --system --disallow-module-loading &"
+ rm -rf /var/lib/pulse
+ # Any errors/warnings will go to the log files:
+ /usr/bin/pulseaudio --system --disallow-module-loading 1> /dev/null 2> /dev/null &
+ fi
+}
+
+pulse_stop() {
+ echo "Stopping PulseAudio: /bin/killall pulseaudio"
+ /bin/killall pulseaudio 2> /dev/null
+}
+
+pulse_restart() {
+ pulse_stop
+ sleep 1
+ pulse_start
+}
+
+case "$1" in
+'start')
+ pulse_start
+ ;;
+'stop')
+ pulse_stop
+ ;;
+'restart')
+ pulse_restart
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+esac
+
diff --git a/source/l/pulseaudio/slack-desc b/source/l/pulseaudio/slack-desc
new file mode 100644
index 000000000..cae1b57b8
--- /dev/null
+++ b/source/l/pulseaudio/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+pulseaudio: pulseaudio (PulseAudio sound server)
+pulseaudio:
+pulseaudio: pulseaudio is a networked low-latency sound server intended to be an
+pulseaudio: improved replacement for the Enlightened Sound Daemon (EsounD).
+pulseaudio:
+pulseaudio: Homepage: http://www.pulseaudio.org
+pulseaudio:
+pulseaudio:
+pulseaudio:
+pulseaudio:
+pulseaudio:
diff --git a/source/l/pycairo/pycairo.SlackBuild b/source/l/pycairo/pycairo.SlackBuild
index 365745b80..009641f48 100755
--- a/source/l/pycairo/pycairo.SlackBuild
+++ b/source/l/pycairo/pycairo.SlackBuild
@@ -27,7 +27,7 @@
PKGNAM=pycairo
SRCNAM=py2cairo
VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -68,7 +68,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* || exit 1
-cd $PKGNAM-$VERSION
+cd $SRCNAM-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -76,6 +76,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+autoreconf -fi
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/l/pycups/pycups.SlackBuild b/source/l/pycups/pycups.SlackBuild
index 00c8f3e12..29967ee89 100755
--- a/source/l/pycups/pycups.SlackBuild
+++ b/source/l/pycups/pycups.SlackBuild
@@ -31,7 +31,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
diff --git a/source/l/pycurl/pycurl.SlackBuild b/source/l/pycurl/pycurl.SlackBuild
index 4d9c43395..f4ed56c05 100755
--- a/source/l/pycurl/pycurl.SlackBuild
+++ b/source/l/pycurl/pycurl.SlackBuild
@@ -23,12 +23,12 @@
PKGNAM=pycurl
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -54,8 +54,7 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-python setup.py build || exit 1
-python setup.py install --root=$PKG || exit 1
+python setup.py --with-ssl install --root=$PKG || exit 1
find $PKG | xargs file | grep -e "shared object" -e "executable" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/l/pygobject3/pygobject3.SlackBuild b/source/l/pygobject3/pygobject3.SlackBuild
new file mode 100755
index 000000000..9a1bce192
--- /dev/null
+++ b/source/l/pygobject3/pygobject3.SlackBuild
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+# Copyright 2007, 2008 Erik Hanson erik@slackbuilds.org
+# Copyright 2008, 2009, 2010, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=pygobject3
+SRCNAM=pygobject
+VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.xz || exit 1
+cd $SRCNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --build=$ARCH-slackware-linux \
+ || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a INSTALL AUTHORS COPYING* NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+( cd $PKG/usr/doc/$PKGNAM-$VERSION
+ ln -s ../../share/gtk-doc/html/pygobject html
+)
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/pygobject3/pygobject3.url b/source/l/pygobject3/pygobject3.url
new file mode 100644
index 000000000..d53b52184
--- /dev/null
+++ b/source/l/pygobject3/pygobject3.url
@@ -0,0 +1 @@
+http://ftp.gnome.org/pub/GNOME/sources/pygobject/
diff --git a/source/l/pygobject3/slack-desc b/source/l/pygobject3/slack-desc
new file mode 100644
index 000000000..f9b63c571
--- /dev/null
+++ b/source/l/pygobject3/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+pygobject3: pygobject3 (GObject bindings for Python)
+pygobject3:
+pygobject3: This archive contains bindings for the GObject, to be used in Python.
+pygobject3: It is a fairly complete set of bindings, it's already rather useful,
+pygobject3: and is usable to write moderately complex programs.
+pygobject3:
+pygobject3: Homepage: https://live.gnome.org/PyGObject
+pygobject3:
+pygobject3:
+pygobject3:
+pygobject3:
diff --git a/source/l/pygtk/pygtk.SlackBuild b/source/l/pygtk/pygtk.SlackBuild
index b4170da85..7e3a32a88 100755
--- a/source/l/pygtk/pygtk.SlackBuild
+++ b/source/l/pygtk/pygtk.SlackBuild
@@ -24,14 +24,14 @@
PKGNAM=pygtk
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -42,8 +42,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/python-pillow/python-pillow.SlackBuild b/source/l/python-pillow/python-pillow.SlackBuild
new file mode 100755
index 000000000..e66ed8493
--- /dev/null
+++ b/source/l/python-pillow/python-pillow.SlackBuild
@@ -0,0 +1,107 @@
+#!/bin/sh
+
+# Copyright 2009, 2010, 2013, 2014 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014 Heinz Wiesinger, Amsterdam, The Netherlands
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=python-pillow
+VERSION=${VERSION:-$(echo Pillow-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+SANE_VERSION=${SANE_VERSION:-$(echo Sane-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ "${ARCH}" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf Pillow-$VERSION
+tar xvf $CWD/Pillow-$VERSION.tar.*z* || exit 1
+cd Pillow-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+python setup.py install --root=$PKG || exit 1
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/Sane
+cp -a \
+ *.md *.rst docs/BUILDME docs/COPYING \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+cd $TMP
+rm -rf Sane-$SANE_VERSION
+tar xvf $CWD/Sane-$SANE_VERSION.tar.*z* || exit 1
+cd Sane-$SANE_VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Don't require Pillow to be installed before building Sane
+sed -i "s|os.path.join|'$TMP/Pillow-$VERSION/libImaging', &|" setup.py
+
+python setup.py install --root=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+cp -a \
+ *.md *.rst COPYING \
+ $PKG/usr/doc/$PKGNAM-$VERSION/Sane
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/python-pillow/slack-desc b/source/l/python-pillow/slack-desc
new file mode 100644
index 000000000..d9ac65681
--- /dev/null
+++ b/source/l/python-pillow/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+python-pillow: python-pillow (Python Imaging Library)
+python-pillow:
+python-pillow: The Python Imaging Library (PIL) adds image processing capabilities
+python-pillow: to your Python environment. This library provides extensive file
+python-pillow: format support, an efficient internal representation, and powerful
+python-pillow: image processing capabilities.
+python-pillow:
+python-pillow: PIL is used by the scanning component of HPLIP.
+python-pillow:
+python-pillow: PIL homepage: https://python-pillow.github.io/
+python-pillow:
diff --git a/source/l/qca-ossl/qca-ossl-openssl-1.0.0.patch b/source/l/qca-ossl/qca-ossl-openssl-1.0.0.patch
deleted file mode 100644
index 7c6fa5bd4..000000000
--- a/source/l/qca-ossl/qca-ossl-openssl-1.0.0.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-diff -ru ../qca-ossl-2.0.0-beta3/CMakeLists.txt ./CMakeLists.txt
---- ../qca-ossl-2.0.0-beta3/CMakeLists.txt 2007-06-29 23:10:53.000000000 +0200
-+++ ./CMakeLists.txt 2010-04-18 04:05:09.000000000 +0200
-@@ -1,5 +1,12 @@
- # QCA OSSL
-
-+INCLUDE(CheckFunctionExists)
-+SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_LIBRARIES})
-+CHECK_FUNCTION_EXISTS(EVP_md2 HAVE_OPENSSL_MD2)
-+IF (HAVE_OPENSSL_MD2)
-+ ADD_DEFINITIONS(-DHAVE_OPENSSL_MD2)
-+ENDIF (HAVE_OPENSSL_MD2)
-+
- SET(QCA_OSSL_SOURCES qca-ossl.cpp)
-
- MY_AUTOMOC( QCA_OSSL_SOURCES )
-diff -ru ../qca-ossl-2.0.0-beta3/qca-ossl.cpp ./qca-ossl.cpp
---- ../qca-ossl-2.0.0-beta3/qca-ossl.cpp 2007-12-11 07:34:57.000000000 +0100
-+++ ./qca-ossl.cpp 2010-04-18 04:08:46.000000000 +0200
-@@ -42,6 +42,15 @@
- #define OSSL_097
- #endif
-
-+#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10000000L
-+// OpenSSL 1.0.0 makes a few changes that aren't very C++ friendly...
-+// Among other things, CHECKED_PTR_OF returns a void*, but is used in
-+// contexts requiring STACK pointers.
-+#undef CHECKED_PTR_OF
-+#define CHECKED_PTR_OF(type, p) \
-+ ((_STACK*) (1 ? p : (type*)0))
-+#endif
-+
- using namespace QCA;
-
- namespace opensslQCAPlugin {
-@@ -1771,8 +1780,10 @@
- md = EVP_sha1();
- else if(alg == EMSA3_MD5)
- md = EVP_md5();
-+#ifdef HAVE_OPENSSL_MD2
- else if(alg == EMSA3_MD2)
- md = EVP_md2();
-+#endif
- else if(alg == EMSA3_RIPEMD160)
- md = EVP_ripemd160();
- else if(alg == EMSA3_Raw)
-@@ -1789,8 +1800,10 @@
- md = EVP_sha1();
- else if(alg == EMSA3_MD5)
- md = EVP_md5();
-+#ifdef HAVE_OPENSSL_MD2
- else if(alg == EMSA3_MD2)
- md = EVP_md2();
-+#endif
- else if(alg == EMSA3_RIPEMD160)
- md = EVP_ripemd160();
- else if(alg == EMSA3_Raw)
-@@ -3385,9 +3398,11 @@
- case NID_md5WithRSAEncryption:
- p.sigalgo = QCA::EMSA3_MD5;
- break;
-+#ifdef HAVE_OPENSSL_MD2
- case NID_md2WithRSAEncryption:
- p.sigalgo = QCA::EMSA3_MD2;
- break;
-+#endif
- case NID_ripemd160WithRSA:
- p.sigalgo = QCA::EMSA3_RIPEMD160;
- break;
-@@ -3871,9 +3886,11 @@
- case NID_md5WithRSAEncryption:
- p.sigalgo = QCA::EMSA3_MD5;
- break;
-+#ifdef HAVE_OPENSSL_MD2
- case NID_md2WithRSAEncryption:
- p.sigalgo = QCA::EMSA3_MD2;
- break;
-+#endif
- case NID_ripemd160WithRSA:
- p.sigalgo = QCA::EMSA3_RIPEMD160;
- break;
-@@ -4061,9 +4078,11 @@
- case NID_md5WithRSAEncryption:
- p.sigalgo = QCA::EMSA3_MD5;
- break;
-+#ifdef HAVE_OPENSSL_MD2
- case NID_md2WithRSAEncryption:
- p.sigalgo = QCA::EMSA3_MD2;
- break;
-+#endif
- case NID_ripemd160WithRSA:
- p.sigalgo = QCA::EMSA3_RIPEMD160;
- break;
-@@ -6582,7 +6601,9 @@
- list += "sha1";
- list += "sha0";
- list += "ripemd160";
-+#ifdef HAVE_OPENSSL_MD2
- list += "md2";
-+#endif
- list += "md4";
- list += "md5";
- #ifdef SHA224_DIGEST_LENGTH
-@@ -6597,9 +6618,11 @@
- #ifdef SHA512_DIGEST_LENGTH
- list += "sha512";
- #endif
-+/*
- #ifdef OBJ_whirlpool
- list += "whirlpool";
- #endif
-+*/
- return list;
- }
-
-@@ -6757,7 +6780,9 @@
- list += all_hash_types();
- list += all_mac_types();
- list += all_cipher_types();
-+#ifdef HAVE_OPENSSL_MD2
- list += "pbkdf1(md2)";
-+#endif
- list += "pbkdf1(sha1)";
- list += "pbkdf2(sha1)";
- list += "pkey";
-@@ -6788,8 +6813,10 @@
- return new opensslHashContext( EVP_sha(), this, type);
- else if ( type == "ripemd160" )
- return new opensslHashContext( EVP_ripemd160(), this, type);
-+#ifdef HAVE_OPENSSL_MD2
- else if ( type == "md2" )
- return new opensslHashContext( EVP_md2(), this, type);
-+#endif
- else if ( type == "md4" )
- return new opensslHashContext( EVP_md4(), this, type);
- else if ( type == "md5" )
-@@ -6810,14 +6837,18 @@
- else if ( type == "sha512" )
- return new opensslHashContext( EVP_sha512(), this, type);
- #endif
-+/*
- #ifdef OBJ_whirlpool
- else if ( type == "whirlpool" )
- return new opensslHashContext( EVP_whirlpool(), this, type);
- #endif
-+*/
- else if ( type == "pbkdf1(sha1)" )
- return new opensslPbkdf1Context( EVP_sha1(), this, type );
-+#ifdef HAVE_OPENSSL_MD2
- else if ( type == "pbkdf1(md2)" )
- return new opensslPbkdf1Context( EVP_md2(), this, type );
-+#endif
- else if ( type == "pbkdf2(sha1)" )
- return new opensslPbkdf2Context( this, type );
- else if ( type == "hmac(md5)" )
diff --git a/source/l/qca-ossl/slack-desc b/source/l/qca-ossl/slack-desc
deleted file mode 100644
index d43d139f4..000000000
--- a/source/l/qca-ossl/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
-# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':'.
-
- |-----handy-ruler------------------------------------------------------|
-qca-ossl: qca-ossl (OpenSSL plugin for QCA)
-qca-ossl:
-qca-ossl: This plugin provides features based on OpenSSL. It implements:
-qca-ossl: * Hashing - SHA1, SHA0, RIPEMD160, MD2, MD4, MD5
-qca-ossl: * Hashing - SHA224, SHA256, SHA384 and SHA512
-qca-ossl: * Block Ciphers
-qca-ossl: * Keyed Hash Message Authentication Code (HMAC), using SHA1,
-qca-ossl: MD5, and RIPEMD160
-qca-ossl: * Public keys - RSA, DSA, Diffie-Hellman
-qca-ossl: * PKCS#12 * SSL/TLS * CMS (for S/MIME)
-qca-ossl:
diff --git a/source/l/qca/0011-use-_DEFAULT_SOURCE-instead-of-_BSD_SOURCE.patch b/source/l/qca/0011-use-_DEFAULT_SOURCE-instead-of-_BSD_SOURCE.patch
new file mode 100644
index 000000000..f6514c745
--- /dev/null
+++ b/source/l/qca/0011-use-_DEFAULT_SOURCE-instead-of-_BSD_SOURCE.patch
@@ -0,0 +1,27 @@
+From 1ff36f4030287f1c263eb344d84cd4a43b1546d2 Mon Sep 17 00:00:00 2001
+From: Rex Dieter <rdieter@math.unl.edu>
+Date: Thu, 19 Nov 2015 13:23:16 -0600
+Subject: [PATCH 11/11] use _DEFAULT_SOURCE instead of _BSD_SOURCE
+
+the former is used in other kde software in general, and
+the latter is generally deprecated on modern glibc's
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dbce082..051ae6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -115,7 +115,7 @@ endif (WIN32)
+
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ if (CMAKE_SYSTEM_NAME MATCHES Linux)
+- add_definitions (-D_BSD_SOURCE)
++ add_definitions (-D_DEFAULT_SOURCE)
+ # on arm -Wcast-align throws many internal qt warning
+ if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align")
+--
+2.5.0
+
diff --git a/source/l/qca/qca.SlackBuild b/source/l/qca/qca.SlackBuild
index 49367ffc9..2adbe7e92 100755
--- a/source/l/qca/qca.SlackBuild
+++ b/source/l/qca/qca.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,14 +24,14 @@
# No additional license terms and no copyright claim
PKGNAM=qca
-VERSION=2.0.2
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j6}
# Automatically determine architecture for build & packaging:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -56,7 +56,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
find . \
@@ -65,20 +65,32 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX}
+zcat $CWD/0011-use-_DEFAULT_SOURCE-instead-of-_BSD_SOURCE.patch.gz | patch -p1 --verbose || exit 1
+
+mkdir build
+cd build
+
+cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DQCA_MAN_INSTALL_DIR=/usr/man \
+ -DQCA_FEATURE_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX}/qt/mkspecs/features/ \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SHARED_LINKER_FLAGS="-lstdc++" \
+ -DLIB_SUFFIX="${LIBDIRSUFFIX}" \
+ -DQT4_BUILD:BOOL=ON \
+ .. || exit 1
make $NUMJOBS || make || exit 1
-make install INSTALL_ROOT=$PKG || exit 1
+make install DESTDIR=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-mv $PKG/usr/share/man $PKG/usr/
-gzip -9 $PKG/usr/man/man?/*.1
+gzip -9 $PKG/usr/man/man?/*.?
+
+cd ..
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
diff --git a/source/l/qca/qca.info b/source/l/qca/qca.info
deleted file mode 100644
index 81e40d37d..000000000
--- a/source/l/qca/qca.info
+++ /dev/null
@@ -1,2 +0,0 @@
-HOMEPAGE="http://delta.affinix.com/qca/"
-DOWNLOAD="http://delta.affinix.com/download/qca/2.0/qca-2.0.1.tar.bz2"
diff --git a/source/l/qt-gstreamer/doinst.sh b/source/l/qt-gstreamer/doinst.sh
new file mode 100644
index 000000000..aab1b9e3c
--- /dev/null
+++ b/source/l/qt-gstreamer/doinst.sh
@@ -0,0 +1,5 @@
+
+if [ -x /usr/bin/update-mime-database ]; then
+ /usr/bin/update-mime-database ./usr/share/mime >/dev/null 2>&1
+fi
+
diff --git a/source/l/qca-ossl/qca-ossl.SlackBuild b/source/l/qt-gstreamer/qt-gstreamer.SlackBuild
index c1fbcc95f..b905009ea 100755
--- a/source/l/qca-ossl/qca-ossl.SlackBuild
+++ b/source/l/qt-gstreamer/qt-gstreamer.SlackBuild
@@ -1,6 +1,7 @@
-#!/bin/sh
+#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,75 +21,106 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Modified by Robby Workman <rworkman@slackware.com> for qca-ossl-2.0.0
-# No additional license terms and no copyright claim
+PKGNAM=qt-gstreamer
+VERSION=${VERSION:-1.2.0}
+BUILD=${BUILD:-1}
-PKGNAM=qca-ossl
-VERSION=2.0.0_beta3
-BUILD=${BUILD:-2}
+NUMJOBS=${NUMJOBS:--j7}
# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) export ARCH=$MARCH ;;
esac
fi
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-${PKGNAM}
-
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PKGNAM-$(echo $VERSION | tr _ -)
-tar xvf $CWD/$PKGNAM-$(echo $VERSION | tr _ -).tar.bz2 || exit 1
-cd $PKGNAM-$(echo $VERSION | tr _ -) || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
-# Fix a compilation error with our new openssh:
-zcat $CWD/qca-ossl-openssl-1.0.0.patch.gz | patch -p1 --verbose || exit 1
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DQT_VERSION=4 \
+ ..
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+cd -
+
+# Conditional build of Qt5 support:
+if qtpaths-qt5 --qt-version 1>/dev/null 2>/dev/null ; then
+ mkdir -p build-qt5
+ cd build-qt5
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX=${LIBDIRSUFFIX} \
+ -DQT_VERSION=5 \
+ ..
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+ cd -
+fi
+
+if [ -d $PKG/usr/man ]; then
+ gzip -9 $PKG/usr/man/man?/*
+fi
-make \
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS"
-make install INSTALL_ROOT=$PKG
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ COPYING HACKING NEWS README \
+ $PKG/usr/doc/$PKGNAM-$VERSION
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-mkdir -p $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _)
-cp -a COPYING README TODO $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _)
-
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/qt-gstreamer/slack-desc b/source/l/qt-gstreamer/slack-desc
new file mode 100644
index 000000000..3ae66051c
--- /dev/null
+++ b/source/l/qt-gstreamer/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler-----------------------------------------------------|
+qt-gstreamer: qt-gstreamer (C++ bindings for gstreamer)
+qt-gstreamer:
+qt-gstreamer: QtGStreamer provides C++ bindings for GStreamer with a Qt-style API,
+qt-gstreamer: plus some helper classes and elements for integrating GStreamer
+qt-gstreamer: better in Qt applications.
+qt-gstreamer: The goal of this module is to allow easy use of GStreamer for
+qt-gstreamer: applications targetting MeeGo Mobile or the KDE desktop.
+qt-gstreamer:
+qt-gstreamer: Homepage:
+qt-gstreamer: http://gstreamer.freedesktop.org/modules/qt-gstreamer.html
+qt-gstreamer:
diff --git a/source/l/qt/Qt.pc b/source/l/qt/Qt.pc
index f4c0d5938..29d1131c6 100644
--- a/source/l/qt/Qt.pc
+++ b/source/l/qt/Qt.pc
@@ -13,4 +13,4 @@ translationdir=${prefix}/translations
Name: Qt
Description: Qt Configuration
-Version: 4.8.1
+Version: 4.8.6
diff --git a/source/l/qt/qt-nowebkit.SlackBuild b/source/l/qt/qt-nowebkit.SlackBuild
new file mode 100755
index 000000000..cb25ba647
--- /dev/null
+++ b/source/l/qt/qt-nowebkit.SlackBuild
@@ -0,0 +1,320 @@
+#!/bin/sh
+
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Merged some ideas from Alex Sarmardzic's script for qt4 at SlackBuilds.org
+# ^^ Modified by Robby Workman <rworkman@slackware.com> for QT4 & KDE4
+
+# We're using qt-copy instead of a released qt version, as this git release
+# has at least one bugfix strongly recommended by the kde developers.
+
+# Obtained from:
+# git clone git://gitorious.org/+kde-developers/qt/kde-qt.git
+# git checkout origin/4.5.3-patched
+# git checkout origin/4.6.0-stable-patched
+# git checkout origin/4.6.1-patched
+# git checkout origin/4.7.0-patched
+#
+# Alternate method (we don't use this):
+# wget http://qt.gitorious.org/qt/kde-qt/archive-tarball/4.6.2-patched
+#
+# Modifications 2010, 2011, 2012 Eric Hameleers, Eindhoven, NL
+# qt 4.7.3, 4.7.4, 4.8.0, 4.8.1, 4.8.2, 4.8.4, 4.8.5, 4.8.6 are built from original nokia sources.
+
+PKGNAM=qt
+VERSION=$(ls qt-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+BUILD=${BUILD:-4}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ # To prevent "qatomic_armv6.h error: output number 2 not directly addressable"
+ # More permanent solution is to patch gcc:
+ # http://bazaar.launchpad.net/~linaro-toolchain-dev/gcc-linaro/4.6/revision/106731
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -fno-strict-volatile-bitfields"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf qt-everywhere-opensource-src-$VERSION
+tar xvf $CWD/qt-everywhere-opensource-src-$VERSION.tar.xz # For qt releases
+cd qt-everywhere-opensource-src-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+if [ $ARCH = "i486" -o $ARCH = "i586" ]; then
+ sed -i -e "s/QMAKE_CFLAGS_RELEASE += -O2/QMAKE_CFLAGS_RELEASE += $SLKCFLAGS/" mkspecs/common/gcc-base.conf || exit 1
+fi
+
+# Fix path to mysql header
+zcat $CWD/qt.mysql.h.diff.gz | patch -p1 --verbose || exit 1
+
+# Stupid idea - remove it:
+zcat $CWD/qt.webkit-no_Werror.patch.gz | patch -p1 --verbose || exit 1
+
+# Fix crash on malformed GIF images (CVE-2014-0190):
+zcat $CWD/qt.fix.broken.gif.crash.diff.gz | patch -p1 --verbose || exit 1
+
+# Implement qsystemtrayicon support for Qt4 applications in Plasma 5:
+zcat $CWD/qt.qsystemtrayicon-plugin-system.diff.gz | patch -p1 --verbose || exit 1
+
+# Apply LibreOffice fixes (QTBUG-37380, QTBUG-34614, QTBUG-38585),
+# Native KDE4 file pickers will be disabled at runtime otherwise.
+zcat $CWD/qt.glib-honor-ExcludeSocketNotifiers-flag.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/qt.qclipboard_fix_recursive.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/qt.qclipboard_delay.patch.gz | patch -p1 --verbose || exit 1
+
+# All other distros I checked build with -no-webkit. But this has the downside of
+# breaking the build when QtWebKit is present on the build system and some things
+# (assistant for one) are built without support for QtWebKit. So let's go with
+# -webkit and remove the built files later from the package. -HW
+
+export CFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS"
+export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
+./configure \
+ -confirm-license \
+ -opensource \
+ -prefix /usr/lib${LIBDIRSUFFIX}/qt \
+ -fast \
+ -system-libpng \
+ -system-libjpeg \
+ -system-zlib \
+ -system-sqlite \
+ -plugin-sql-sqlite \
+ -dbus \
+ -webkit \
+ -no-phonon \
+ -nomake examples \
+ -nomake demos \
+ -nomake docs \
+ -no-separate-debug-info \
+ -no-pch
+ # No-precompiled-headers is ccache-friendly.
+
+# Sometimes a failure happens when parallelizing make. Try again if make fails,
+# but make a failure the second time around (single threaded) a fatal error:
+make $NUMJOBS || make || exit 1
+make install INSTALL_ROOT=$PKG || exit 1
+
+# dropping the just built WebKit since we replace it with an external one
+rm -f $PKG/usr/lib$LIBDIRSUFFIX/qt/lib/libQtWebKit*
+rm -f $PKG/usr/lib$LIBDIRSUFFIX/qt/lib/pkgconfig/QtWebKit.pc
+rm -rf $PKG/usr/lib$LIBDIRSUFFIX/qt/imports/QtWebKit
+rm -rf $PKG/usr/lib$LIBDIRSUFFIX/qt/include/QtWebKit
+
+# The infamous qt -> qt-${VERSION} link that keeps the full path out of .la files:
+( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf qt qt-${VERSION} )
+
+# Add a missing Qt.pc which is needed by KDE applications:
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig
+cat <<EOF > $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/Qt.pc
+prefix=/usr/lib${LIBDIRSUFFIX}/qt
+bindir=\${prefix}/bin
+datadir=\${prefix}
+docdir=\${prefix}/doc
+headerdir=\${prefix}/include
+importdir=\${prefix}/imports
+libdir=\${prefix}/lib
+moc=\${bindir}/moc
+plugindir=\${prefix}/plugins
+qmake=\${bindir}/qmake
+sysconfdir=\${prefix}/etc/settings
+translationdir=\${prefix}/translations
+
+Name: Qt
+Description: Qt Configuration
+Version: $VERSION
+EOF
+
+# libjscore is used internally. Prevent a false dependency on this in the .la and .pc files:
+sed -i "s,-ljscore,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
+sed -i "s,-L../JavaScriptCore/release,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
+
+# Make sure that .la and .pc files use the correct $LIBDIRSUFFIX:
+sed -i "s,-L/usr/X11R6/lib,-L/usr/X11R6/lib${LIBDIRSUFFIX},g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
+
+# Link the shared libraries into /usr/lib:
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ for file in qt/lib/*.so* ; do
+ ln -sf $file .
+ done
+)
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Add profile scripts
+mkdir -p $PKG/etc/profile.d
+sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.sh \
+ > $PKG/etc/profile.d/qt4.sh
+sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.csh \
+ > $PKG/etc/profile.d/qt4.csh
+chmod 0755 $PKG/etc/profile.d/*
+
+# Put a ton of links to more "normal" places. I'd just use a prefix of /usr, but it
+# creates a ton of new (and ambiguously named) /usr directories...
+mkdir -p $PKG/usr/bin
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/bin
+ for file in * ; do
+ ( cd $PKG/usr/bin ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/bin/$file . )
+ done
+)
+
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig
+ for file in *.pc ; do
+ ( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/$file . )
+ done
+)
+
+# Install Qt's private headers - at least Gentoo and Fedora are adding these
+# and some software has (inevitably) started depending on them:
+# We're using `rsync -R` as easy way to preserve relative path names:
+rsync -aR \
+ include/Qt{Core,Declarative,Gui,Script}/private \
+ src/{corelib,declarative,gui,script}/*/*_p.h \
+ ${PKG}/usr/lib${LIBDIRSUFFIX}/qt/
+
+# Add menu entries for all those hidden but great Qt applications:
+# Assistant icons
+install -p -m644 -D tools/assistant/tools/assistant/images/assistant.png $PKG/usr/share/icons/hicolor/32x32/apps/assistant.png
+install -p -m644 -D tools/assistant/tools/assistant/images/assistant-128.png $PKG/usr/share/icons/hicolor/128x128/apps/assistant.png
+# Designer icon
+install -p -m644 -D tools/designer/src/designer/images/designer.png $PKG/usr/share/icons/hicolor/128x128/apps/designer.png
+# Linguist icons
+for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+ size=$(echo $(basename ${icon}) | cut -d- -f2)
+ install -p -m644 -D ${icon} $PKG/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png
+done
+# Qt logo:
+convert doc/src/images/qt-logo.png -resize 48x48 $PKG/usr/share/icons/hicolor/48x48/apps/qt-logo.png
+
+# And the .desktop files
+mkdir -p $PKG/usr/share/applications
+cat <<EOF > $PKG/usr/share/applications/designer.desktop
+[Desktop Entry]
+Name=Qt4 Designer
+GenericName=Interface Designer
+Comment=Design GUIs for Qt4 applications
+Exec=designer
+Icon=designer
+MimeType=application/x-designer;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
+EOF
+cat <<EOF > $PKG/usr/share/applications/assistant.desktop
+[Desktop Entry]
+Name=Qt4 Assistant
+Comment=Shows Qt4 documentation and examples
+Exec=assistant
+Icon=assistant
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;Documentation;
+EOF
+cat <<EOF > $PKG/usr/share/applications/linguist.desktop
+[Desktop Entry]
+Name=Qt4 Linguist
+Comment=Add translations to Qt4 applications
+Exec=linguist
+Icon=linguist
+MimeType=text/vnd.trolltech.linguist;application/x-linguist;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
+EOF
+cat <<EOF > $PKG/usr/share/applications/qtconfig.desktop
+[Desktop Entry]
+Name=Qt4 Config
+Comment=Configure Qt4 behavior, styles, fonts
+Exec=qtconfig
+Icon=qt-logo
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Settings;
+EOF
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a *GPL_EXCEPTION* FAQ* INSTALL KNOWN* LICENSE* README* changes-* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+if [ -d $PKG/usr/lib${LIBDIRSUFFIX}/qt/doc/html ]; then
+ ( cd $PKG/usr/doc/$PKGNAM-$VERSION
+ ln -sf /usr/lib${LIBDIRSUFFIX}/qt/doc/html .
+ )
+fi
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/qt/qt.SlackBuild b/source/l/qt/qt.SlackBuild
index 8954243bd..3c4ca01d1 100755
--- a/source/l/qt/qt.SlackBuild
+++ b/source/l/qt/qt.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,36 +20,22 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Merged some ideas from Alex Sarmardzic's script for qt4 at SlackBuilds.org
-# ^^ Modified by Robby Workman <rworkman@slackware.com> for QT4 & KDE4
+# This script builds Qt, packages it without WebKit, upgrades the machine to
+# a WebKit-less Qt, builds a WebKit package, merges the two packages, and
+# finally upgrades the machine to a combined package.
-# We're using qt-copy instead of a released qt version, as this git release
-# has at least one bugfix strongly recommended by the kde developers.
-
-# Obtained from:
-# git clone git://gitorious.org/+kde-developers/qt/kde-qt.git
-# git checkout origin/4.5.3-patched
-# git checkout origin/4.6.0-stable-patched
-# git checkout origin/4.6.1-patched
-# git checkout origin/4.7.0-patched
-#
-# Alternate method (we don't use this):
-# wget http://qt.gitorious.org/qt/kde-qt/archive-tarball/4.6.2-patched
-#
-# Modifications 2010, 2011, 2012 Eric Hameleers, Eindhoven, NL
-# qt 4.7.3, 4.7.4, 4.8.0, 4.8.1, 4.8.2, 4.8.4 are built from original nokia sources.
-
-PKGNAM=qt
-VERSION=$(ls qt-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
-BUILD=${BUILD:-2}
-
-NUMJOBS=${NUMJOBS:--j7}
+QTVERSION=$(ls qt-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+# Adjust the combined package $BUILD in qt-nowebkit.SlackBuild:
+QTBUILD=$(grep BUILD= qt-nowebkit.SlackBuild | cut -f 2 -d - | cut -f 1 -d \})
+WEBKITVERSION=$(ls qtwebkit/qtwebkit-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+# This $BUILD doesn't really need to change as long as these are combined:
+WEBKITBUILD=$(grep BUILD= qtwebkit/qtwebkit.SlackBuild | cut -f 2 -d - | cut -f 1 -d \})
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -57,246 +43,45 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- # To prevent "qatomic_armv6.h error: output number 2 not directly addressable"
- # More permanent solution is to patch gcc:
- # http://bazaar.launchpad.net/~linaro-toolchain-dev/gcc-linaro/4.6/revision/106731
- SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -fno-strict-volatile-bitfields"
- LIBDIRSUFFIX=""
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-case "$ARCH" in
- arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
- *) TARGET=$ARCH-slackware-linux ;;
-esac
-
-CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-${PKGNAM}
-rm -rf $PKG
-mkdir -p $TMP $PKG
-cd $TMP
-rm -rf qt-everywhere-opensource-src-$VERSION
-tar xvf $CWD/qt-everywhere-opensource-src-$VERSION.tar.xz # For qt releases
-cd qt-everywhere-opensource-src-$VERSION || exit 1
-
-chown -R root:root .
-find . \
- \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
- -exec chmod 755 {} \; -o \
- \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
- -exec chmod 644 {} \;
-
-if [ $ARCH = "i486" ]; then
- sed -i -e "s/QMAKE_CFLAGS_RELEASE += -O2/QMAKE_CFLAGS_RELEASE += $SLKCFLAGS/" mkspecs/common/gcc-base.conf || exit 1
+# Build Qt and package it without WebKit:
+rm -f $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
+./qt-nowebkit.SlackBuild
+if [ ! -r $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz ]; then
+ echo "FATAL: Failed to build Qt package without WebKit."
+ exit 1
fi
-# Fix path to mysql header
-zcat $CWD/qt.mysql.h.diff.gz | patch -p1 --verbose || exit 1
-
-# gcc doesn't support flag "-fuse-ld=gold":
-zcat $CWD/qt.ld-gold.patch.gz | patch -p1 --verbose || exit 1
-
-# Stupid idea - remove it:
-zcat $CWD/qt.webkit-no_Werror.patch.gz | patch -p1 --verbose || exit 1
-
-export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS"
-export OPENSOURCE_CXXFLAGS="$SLKCFLAGS"
-./configure \
- -confirm-license \
- -opensource \
- -prefix /usr/lib${LIBDIRSUFFIX}/qt \
- -fast \
- -system-libpng \
- -system-libjpeg \
- -system-zlib \
- -system-sqlite \
- -plugin-sql-sqlite \
- -dbus \
- -webkit \
- -no-phonon \
- -nomake examples \
- -nomake demos \
- -nomake docs \
- -no-separate-debug-info \
- -no-pch
- # No-precompiled-headers is ccache-friendly.
-
-# Sometimes a failure happens when parallelizing make. Try again if make fails,
-# but make a failure the second time around (single threaded) a fatal error:
-make $NUMJOBS || make || exit 1
-make install INSTALL_ROOT=$PKG || exit 1
-
-# The infamous qt -> qt-${VERSION} link that keeps the full path out of .la files:
-( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf qt qt-${VERSION} )
-
-# Add a missing Qt.pc which is needed by KDE applications:
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig
-cat <<EOF > $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/Qt.pc
-prefix=/usr/lib${LIBDIRSUFFIX}/qt
-bindir=\${prefix}/bin
-datadir=\${prefix}
-docdir=\${prefix}/doc
-headerdir=\${prefix}/include
-importdir=\${prefix}/imports
-libdir=\${prefix}/lib
-moc=\${bindir}/moc
-plugindir=\${prefix}/plugins
-qmake=\${bindir}/qmake
-sysconfdir=\${prefix}/etc/settings
-translationdir=\${prefix}/translations
-
-Name: Qt
-Description: Qt Configuration
-Version: $VERSION
-EOF
-
-# libjscore is used internally. Prevent a false dependency on this in the .la and .pc files:
-sed -i "s,-ljscore,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
-sed -i "s,-L../JavaScriptCore/release,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/*.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
-
-# libwebcore is used internally. Prevent a false dependency on this in the .la and .pc files:
-sed -i \
- -e "s#-L/usr/lib${LIBDIRSUFFIX}/qt/lib -L../../WebCore/release -L../../JavaScriptCore/release -L/usr/X11R6/lib$LIBDIRSUFFIX -lwebcore##g" \
- -e "s#-L/usr/lib${LIBDIRSUFFIX}/qt/lib -L../../WebCore/release -L../../JavaScriptCore/release -L/usr/X11R6/lib -lwebcore##g" \
- -e "s# -lwebcore##g" \
- $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/libQtWebKit.la $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/QtWebKit.pc
-
-# Link the shared libraries into /usr/lib:
-( cd $PKG/usr/lib${LIBDIRSUFFIX}
- for file in qt/lib/*.so* ; do
- ln -sf $file .
- done
-)
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-# Add profile scripts
-mkdir -p $PKG/etc/profile.d
-sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.sh \
- > $PKG/etc/profile.d/qt4.sh
-sed -e "s#usr/lib/#usr/lib${LIBDIRSUFFIX}/#g" $CWD/profile.d/qt4.csh \
- > $PKG/etc/profile.d/qt4.csh
-chmod 0755 $PKG/etc/profile.d/*
-
-# Put a ton of links to more "normal" places. I'd just use a prefix of /usr, but it
-# creates a ton of new (and ambiguously named) /usr directories...
-mkdir -p $PKG/usr/bin
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/bin
- for file in * ; do
- ( cd $PKG/usr/bin ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/bin/$file . )
- done
-)
+# Upgrade system to Qt (without WebKit):
+/sbin/upgradepkg --reinstall --install-new $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
+
+# Build standalone WebKit package (qtwebkit):
+rm -f $TMP/qtwebkit-${WEBKITVERSION}-${ARCH}-${WEBKITBUILD}.txz
+( cd qtwebkit
+ ./qtwebkit.SlackBuild )
+if [ ! -r $TMP/qtwebkit-${WEBKITVERSION}-${ARCH}-${WEBKITBUILD}.txz ]; then
+ echo "FATAL: Failed to build QtWebKit standalone package."
+ rm -f $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
+ exit 1
+fi
-mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig
- for file in *.pc ; do
- ( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/$file . )
- done
+# Combine the packages:
+rm -rf $TMP/package-qt
+mkdir -p $TMP/package-qt
+( cd $TMP/package-qt
+ /sbin/explodepkg $TMP/qtwebkit-${WEBKITVERSION}-${ARCH}-${WEBKITBUILD}.txz
+ /sbin/explodepkg $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
+ cat $TMP/package-qtwebkit/install/doinst.sh | grep '^(' >> install/doinst.sh
+ mv usr/doc/qtwebkit-* usr/doc/qt-*
+ /sbin/makepkg -l y -c n ../qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
)
-# Install Qt's private headers - at least Gentoo and Fedora are adding these
-# and some software has (inevitably) started depending on them:
-# We're using `rsync -R` as easy way to preserve relative path names:
-rsync -aR \
- include/Qt{Core,Declarative,Gui,Script}/private \
- src/{corelib,declarative,gui,script}/*/*_p.h \
- ${PKG}/usr/lib${LIBDIRSUFFIX}/qt/
-
-# Add menu entries for all those hidden but great Qt applications:
-# Qt logo:
-convert $PKG/usr/lib$LIBDIRSUFFIX/qt/doc/src/images/qt-logo.png -resize 48x48 $PKG/usr/share/icons/hicolor/48x48/apps/qt-logo.png
-convert $PKG/usr/lib$LIBDIRSUFFIX/qt/doc/src/images/qt-logo.png -resize 48x48 $PKG/usr/share/icons/hicolor/48x48/apps/qt-logo.png
-# Assistant icons
-install -p -m644 -D tools/assistant/tools/assistant/images/assistant.png $PKG/usr/share/icons/hicolor/32x32/apps/assistant.png
-install -p -m644 -D tools/assistant/tools/assistant/images/assistant-128.png $PKG/usr/share/icons/hicolor/128x128/apps/assistant.png
-# Designer icon
-install -p -m644 -D tools/designer/src/designer/images/designer.png $PKG/usr/share/icons/hicolor/128x128/apps/designer.png
-# Linguist icons
-for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
- size=$(echo $(basename ${icon}) | cut -d- -f2)
- install -p -m644 -D ${icon} $PKG/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png
-done
-
-# And the .desktop files
-mkdir -p $PKG/usr/share/applications
-cat <<EOF > $PKG/usr/share/applications/designer.desktop
-[Desktop Entry]
-Name=Qt4 Designer
-GenericName=Interface Designer
-Comment=Design GUIs for Qt4 applications
-Exec=designer
-Icon=designer
-MimeType=application/x-designer;
-Terminal=false
-Encoding=UTF-8
-Type=Application
-Categories=Qt;Development;
-EOF
-cat <<EOF > $PKG/usr/share/applications/assistant.desktop
-[Desktop Entry]
-Name=Qt4 Assistant
-Comment=Shows Qt4 documentation and examples
-Exec=assistant
-Icon=assistant
-Terminal=false
-Encoding=UTF-8
-Type=Application
-Categories=Qt;Development;Documentation;
-EOF
-cat <<EOF > $PKG/usr/share/applications/linguist.desktop
-[Desktop Entry]
-Name=Qt4 Linguist
-Comment=Add translations to Qt4 applications
-Exec=linguist
-Icon=linguist
-MimeType=text/vnd.trolltech.linguist;application/x-linguist;
-Terminal=false
-Encoding=UTF-8
-Type=Application
-Categories=Qt;Development;
-EOF
-cat <<EOF > $PKG/usr/share/applications/qtconfig.desktop
-[Desktop Entry]
-Name=Qt4 Config
-Comment=Configure Qt4 behavior, styles, fonts
-Exec=qtconfig
-Icon=qt-logo
-Terminal=false
-Encoding=UTF-8
-Type=Application
-Categories=Qt;Settings;
-EOF
-
-# Add a documentation directory:
-mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
-cp -a *GPL_EXCEPTION* FAQ* INSTALL KNOWN* LICENSE* README* changes-* \
- $PKG/usr/doc/$PKGNAM-$VERSION
-if [ -d $PKG/usr/lib${LIBDIRSUFFIX}/qt/doc/html ]; then
- ( cd $PKG/usr/doc/$PKGNAM-$VERSION
- ln -sf /usr/lib${LIBDIRSUFFIX}/qt/doc/html .
- )
-fi
+# Remove intermediate qtwebkit package:
+rm -f $TMP/qtwebkit-${WEBKITVERSION}-${ARCH}-${WEBKITBUILD}.txz
-mkdir -p $PKG/install
-zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
-cat $CWD/slack-desc > $PKG/install/slack-desc
+# Upgrade system to the combined Qt/WebKit package:
+/sbin/upgradepkg --reinstall --install-new $TMP/qt-${QTVERSION}-${ARCH}-${QTBUILD}.txz
-cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+# Done.
diff --git a/source/l/qt/qt.fix.broken.gif.crash.diff b/source/l/qt/qt.fix.broken.gif.crash.diff
new file mode 100644
index 000000000..7f74d71f1
--- /dev/null
+++ b/source/l/qt/qt.fix.broken.gif.crash.diff
@@ -0,0 +1,16 @@
+--- ./src/gui/image/qgifhandler.cpp.orig 2014-04-10 13:37:12.000000000 -0500
++++ ./src/gui/image/qgifhandler.cpp 2014-04-25 13:42:48.468692269 -0500
+@@ -358,6 +358,13 @@
+ bits = image->bits();
+ memset(bits, 0, image->byteCount());
+ }
++
++ // Check if the previous attempt to create the image failed. If it
++ // did then the image is broken and we should give up.
++ if (image->isNull()) {
++ state = Error;
++ return -1;
++ }
+
+ disposePrevious(image);
+ disposed = false;
diff --git a/source/l/qt/qt.glib-honor-ExcludeSocketNotifiers-flag.diff b/source/l/qt/qt.glib-honor-ExcludeSocketNotifiers-flag.diff
new file mode 100644
index 000000000..6949bbfef
--- /dev/null
+++ b/source/l/qt/qt.glib-honor-ExcludeSocketNotifiers-flag.diff
@@ -0,0 +1,63 @@
+Author: Jan-Marek Glogowski <glogow@fbihome.de>
+Date: Thu Mar 06 18:44:43 2014 +0100
+
+ Honor QEventLoop::ExcludeSocketNotifiers in glib event loop.
+
+ Implements QEventLoop::ExcludeSocketNotifiers in the same way
+ QEventLoop::X11ExcludeTimers is already implemented for the glib
+ event loop.
+
+--- qt4-x11-4.8.1.orig/src/corelib/kernel/qeventdispatcher_glib.cpp
++++ qt4-x11-4.8.1/src/corelib/kernel/qeventdispatcher_glib.cpp
+@@ -65,6 +65,7 @@ struct GPollFDWithQSocketNotifier
+ struct GSocketNotifierSource
+ {
+ GSource source;
++ QEventLoop::ProcessEventsFlags processEventsFlags;
+ QList<GPollFDWithQSocketNotifier *> pollfds;
+ };
+
+@@ -80,6 +81,9 @@ static gboolean socketNotifierSourceChec
+ GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
+
+ bool pending = false;
++ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
++ return pending;
++
+ for (int i = 0; !pending && i < src->pollfds.count(); ++i) {
+ GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
+
+@@ -103,6 +107,9 @@ static gboolean socketNotifierSourceDisp
+ QEvent event(QEvent::SockAct);
+
+ GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
++ if (src->processEventsFlags & QEventLoop::ExcludeSocketNotifiers)
++ return true;
++
+ for (int i = 0; i < src->pollfds.count(); ++i) {
+ GPollFDWithQSocketNotifier *p = src->pollfds.at(i);
+
+@@ -330,6 +337,7 @@ QEventDispatcherGlibPrivate::QEventDispa
+ reinterpret_cast<GSocketNotifierSource *>(g_source_new(&socketNotifierSourceFuncs,
+ sizeof(GSocketNotifierSource)));
+ (void) new (&socketNotifierSource->pollfds) QList<GPollFDWithQSocketNotifier *>();
++ socketNotifierSource->processEventsFlags = QEventLoop::AllEvents;
+ g_source_set_can_recurse(&socketNotifierSource->source, true);
+ g_source_attach(&socketNotifierSource->source, mainContext);
+
+@@ -415,6 +423,7 @@ bool QEventDispatcherGlib::processEvents
+ // tell postEventSourcePrepare() and timerSource about any new flags
+ QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
+ d->timerSource->processEventsFlags = flags;
++ d->socketNotifierSource->processEventsFlags = flags;
+
+ if (!(flags & QEventLoop::EventLoopExec)) {
+ // force timers to be sent at normal priority
+@@ -426,6 +435,7 @@ bool QEventDispatcherGlib::processEvents
+ result = g_main_context_iteration(d->mainContext, canWait);
+
+ d->timerSource->processEventsFlags = savedFlags;
++ d->socketNotifierSource->processEventsFlags = savedFlags;
+
+ if (canWait)
+ emit awake();
diff --git a/source/l/qt/qt.ld-gold.patch b/source/l/qt/qt.ld-gold.patch
deleted file mode 100644
index 0e3897e98..000000000
--- a/source/l/qt/qt.ld-gold.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri
---- qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me 2012-01-24 13:05:50.460890750 +0100
-+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri 2012-01-24 13:19:08.836799974 +0100
-@@ -3,12 +3,12 @@
- contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1
- contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0
-
--linux-g++ {
--isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
-- message(Using gold linker)
-- QMAKE_LFLAGS+=-fuse-ld=gold
--}
--}
-+#linux-g++ {
-+#isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
-+# message(Using gold linker)
-+# QMAKE_LFLAGS+=-fuse-ld=gold
-+#}
-+#}
-
- # We use this flag on production branches
- # See https://bugs.webkit.org/show_bug.cgi?id=60824
diff --git a/source/l/qt/qt.qclipboard_delay.patch b/source/l/qt/qt.qclipboard_delay.patch
new file mode 100644
index 000000000..dcdf51c00
--- /dev/null
+++ b/source/l/qt/qt.qclipboard_delay.patch
@@ -0,0 +1,12 @@
+--- a/src/gui/kernel/qclipboard_x11.cpp.sav 2014-04-25 09:52:03.855693228 +0200
++++ b/src/gui/kernel/qclipboard_x11.cpp 2014-04-25 09:51:58.038693777 +0200
+@@ -548,7 +548,8 @@ bool QX11Data::clipboardWaitForEvent(Win
+ return false;
+
+ XSync(X11->display, false);
+- usleep(50000);
++ if (!XPending(X11->display))
++ usleep(5000);
+
+ now.start();
+
diff --git a/source/l/qt/qt.qclipboard_fix_recursive.patch b/source/l/qt/qt.qclipboard_fix_recursive.patch
new file mode 100644
index 000000000..d9fe24b7f
--- /dev/null
+++ b/source/l/qt/qt.qclipboard_fix_recursive.patch
@@ -0,0 +1,94 @@
+--- a/src/corelib/kernel/qeventdispatcher_glib.cpp.sav 2014-03-28 15:26:37.000000000 +0100
++++ b/src/corelib/kernel/qeventdispatcher_glib.cpp 2014-04-24 09:44:09.358659204 +0200
+@@ -255,22 +255,30 @@ struct GPostEventSource
+ GSource source;
+ QAtomicInt serialNumber;
+ int lastSerialNumber;
++ QEventLoop::ProcessEventsFlags processEventsFlags;
+ QEventDispatcherGlibPrivate *d;
+ };
+
+ static gboolean postEventSourcePrepare(GSource *s, gint *timeout)
+ {
++ GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
+ QThreadData *data = QThreadData::current();
+ if (!data)
+ return false;
+
++ QEventLoop::ProcessEventsFlags excludeAllFlags
++ = QEventLoop::ExcludeUserInputEvents
++ | QEventLoop::ExcludeSocketNotifiers
++ | QEventLoop::X11ExcludeTimers;
++ if ((source->processEventsFlags & excludeAllFlags) == excludeAllFlags)
++ return false;
++
+ gint dummy;
+ if (!timeout)
+ timeout = &dummy;
+ const bool canWait = data->canWaitLocked();
+ *timeout = canWait ? -1 : 0;
+
+- GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
+ return (!canWait
+ || (source->serialNumber != source->lastSerialNumber));
+ }
+@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch(
+ {
+ GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
+ source->lastSerialNumber = source->serialNumber;
+- QCoreApplication::sendPostedEvents();
+- source->d->runTimersOnceWithNormalPriority();
++ QEventLoop::ProcessEventsFlags excludeAllFlags
++ = QEventLoop::ExcludeUserInputEvents
++ | QEventLoop::ExcludeSocketNotifiers
++ | QEventLoop::X11ExcludeTimers;
++ if ((source->processEventsFlags & excludeAllFlags) != excludeAllFlags) {
++ QCoreApplication::sendPostedEvents();
++ source->d->runTimersOnceWithNormalPriority();
++ }
+ return true; // i dunno, george...
+ }
+
+@@ -329,6 +343,7 @@ QEventDispatcherGlibPrivate::QEventDispa
+ postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs,
+ sizeof(GPostEventSource)));
+ postEventSource->serialNumber = 1;
++ postEventSource->processEventsFlags = QEventLoop::AllEvents;
+ postEventSource->d = this;
+ g_source_set_can_recurse(&postEventSource->source, true);
+ g_source_attach(&postEventSource->source, mainContext);
+@@ -423,6 +438,7 @@ bool QEventDispatcherGlib::processEvents
+
+ // tell postEventSourcePrepare() and timerSource about any new flags
+ QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
++ d->postEventSource->processEventsFlags = flags;
+ d->timerSource->processEventsFlags = flags;
+ d->socketNotifierSource->processEventsFlags = flags;
+
+@@ -435,6 +451,7 @@ bool QEventDispatcherGlib::processEvents
+ while (!result && canWait)
+ result = g_main_context_iteration(d->mainContext, canWait);
+
++ d->postEventSource->processEventsFlags = savedFlags;
+ d->timerSource->processEventsFlags = savedFlags;
+ d->socketNotifierSource->processEventsFlags = savedFlags;
+
+--- a/src/corelib/kernel/qeventdispatcher_unix.cpp.sav 2013-06-07 07:16:52.000000000 +0200
++++ b/src/corelib/kernel/qeventdispatcher_unix.cpp 2014-04-24 09:43:06.927589535 +0200
+@@ -905,7 +905,15 @@ bool QEventDispatcherUNIX::processEvents
+
+ // we are awake, broadcast it
+ emit awake();
+- QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
++
++ QEventLoop::ProcessEventsFlags excludeAllFlags
++ = QEventLoop::ExcludeUserInputEvents
++ | QEventLoop::ExcludeSocketNotifiers
++ | QEventLoop::X11ExcludeTimers;
++ if ((flags & excludeAllFlags) == excludeAllFlags)
++ return false;
++ if(( flags & excludeAllFlags ) != excludeAllFlags )
++ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
+
+ int nevents = 0;
+ const bool canWait = (d->threadData->canWaitLocked()
diff --git a/source/l/qt/qt.qsystemtrayicon-plugin-system.diff b/source/l/qt/qt.qsystemtrayicon-plugin-system.diff
new file mode 100644
index 000000000..2466a16b4
--- /dev/null
+++ b/source/l/qt/qt.qsystemtrayicon-plugin-system.diff
@@ -0,0 +1,1466 @@
+Description: Introduce a plugin system for QSystemTrayIcon.
+ Designed to be used with sni-qt (https://launchpad.net/sni-qt)
+Author: agateau@kde.org
+Forwarded: no
+
+Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
+(https://launchpad.net/sni-qt)
+---
+ examples/desktop/systray/window.cpp | 40 ++
+ examples/desktop/systray/window.h | 6
+ src/gui/util/qabstractsystemtrayiconsys.cpp | 65 +++
+ src/gui/util/qabstractsystemtrayiconsys_p.h | 106 ++++++
+ src/gui/util/qsystemtrayicon.cpp | 6
+ src/gui/util/qsystemtrayicon_p.h | 85 ++---
+ src/gui/util/qsystemtrayicon_x11.cpp | 356 ++++-----------------
+ src/gui/util/qxembedsystemtrayicon_x11.cpp | 469 ++++++++++++++++++++++++++++
+ src/gui/util/qxembedsystemtrayicon_x11_p.h | 104 ++++++
+ src/gui/util/util.pri | 7
+ 10 files changed, 916 insertions(+), 328 deletions(-)
+
+--- a/examples/desktop/systray/window.cpp
++++ b/examples/desktop/systray/window.cpp
+@@ -158,15 +158,23 @@
+ iconComboBox->addItem(QIcon(":/images/bad.svg"), tr("Bad"));
+ iconComboBox->addItem(QIcon(":/images/heart.svg"), tr("Heart"));
+ iconComboBox->addItem(QIcon(":/images/trash.svg"), tr("Trash"));
++ iconComboBox->addItem(QIcon::fromTheme("system-file-manager"), tr("File Manager"));
+
+ showIconCheckBox = new QCheckBox(tr("Show icon"));
+ showIconCheckBox->setChecked(true);
+
++#if defined(Q_WS_X11)
++ jitToolTipCheckBox = new QCheckBox(tr("Just In Time Tooltip"));
++#endif
++
+ QHBoxLayout *iconLayout = new QHBoxLayout;
+ iconLayout->addWidget(iconLabel);
+ iconLayout->addWidget(iconComboBox);
+ iconLayout->addStretch();
+ iconLayout->addWidget(showIconCheckBox);
++#if defined(Q_WS_X11)
++ iconLayout->addWidget(jitToolTipCheckBox);
++#endif
+ iconGroupBox->setLayout(iconLayout);
+ }
+
+@@ -254,5 +262,37 @@
+ trayIconMenu->addAction(quitAction);
+
+ trayIcon = new QSystemTrayIcon(this);
++ QByteArray category = qgetenv("SNI_CATEGORY");
++ if (!category.isEmpty()) {
++ trayIcon->setProperty("_qt_sni_category", QString::fromLocal8Bit(category));
++ }
+ trayIcon->setContextMenu(trayIconMenu);
++
++#if defined(Q_WS_X11)
++ trayIcon->installEventFilter(this);
++#endif
++}
++
++#if defined(Q_WS_X11)
++bool Window::eventFilter(QObject *, QEvent *event)
++{
++ switch(event->type()) {
++ case QEvent::ToolTip:
++ if (jitToolTipCheckBox->isChecked()) {
++ QString timeString = QTime::currentTime().toString();
++ trayIcon->setToolTip(tr("Current Time: %1").arg(timeString));
++ }
++ break;
++ case QEvent::Wheel: {
++ QWheelEvent *wheelEvent = static_cast<QWheelEvent*>(event);
++ int delta = wheelEvent->delta() > 0 ? 1 : -1;
++ int index = (iconComboBox->currentIndex() + delta) % iconComboBox->count();
++ iconComboBox->setCurrentIndex(index);
++ break;
++ }
++ default:
++ break;
++ }
++ return false;
+ }
++#endif
+--- a/examples/desktop/systray/window.h
++++ b/examples/desktop/systray/window.h
+@@ -69,6 +69,9 @@
+
+ protected:
+ void closeEvent(QCloseEvent *event);
++#if defined(Q_WS_X11)
++ bool eventFilter(QObject *object, QEvent *event);
++#endif
+
+ private slots:
+ void setIcon(int index);
+@@ -86,6 +89,9 @@
+ QLabel *iconLabel;
+ QComboBox *iconComboBox;
+ QCheckBox *showIconCheckBox;
++#if defined(Q_WS_X11)
++ QCheckBox *jitToolTipCheckBox;
++#endif
+
+ QGroupBox *messageGroupBox;
+ QLabel *typeLabel;
+--- /dev/null
++++ b/src/gui/util/qabstractsystemtrayiconsys.cpp
+@@ -0,0 +1,65 @@
++/****************************************************************************
++**
++** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
++** All rights reserved.
++** Contact: Nokia Corporation (qt-info@nokia.com)
++**
++** This file is part of the QtGui module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** GNU Lesser General Public License Usage
++** This file may be used under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation and
++** appearing in the file LICENSE.LGPL included in the packaging of this
++** file. Please review the following information to ensure the GNU Lesser
++** General Public License version 2.1 requirements will be met:
++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** In addition, as a special exception, Nokia gives you certain additional
++** rights. These rights are described in the Nokia Qt LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU General
++** Public License version 3.0 as published by the Free Software Foundation
++** and appearing in the file LICENSE.GPL included in the packaging of this
++** file. Please review the following information to ensure the GNU General
++** Public License version 3.0 requirements will be met:
++** http://www.gnu.org/copyleft/gpl.html.
++**
++** Other Usage
++** Alternatively, this file may be used in accordance with the terms and
++** conditions contained in a signed written agreement between you and Nokia.
++**
++**
++**
++**
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++#ifndef QT_NO_SYSTEMTRAYICON
++
++#include "qabstractsystemtrayiconsys_p.h"
++
++
++QSystemTrayIconSysFactoryInterface::QSystemTrayIconSysFactoryInterface()
++{
++}
++
++/////////////////////////////////////////////////
++QAbstractSystemTrayIconSys::QAbstractSystemTrayIconSys(QSystemTrayIcon *icon)
++: trayIcon(icon)
++{
++}
++
++QAbstractSystemTrayIconSys::~QAbstractSystemTrayIconSys()
++{
++}
++
++void QAbstractSystemTrayIconSys::sendActivated(QSystemTrayIcon::ActivationReason reason)
++{
++ qtsystray_sendActivated(trayIcon, reason);
++}
++
++#endif
+--- /dev/null
++++ b/src/gui/util/qabstractsystemtrayiconsys_p.h
+@@ -0,0 +1,106 @@
++/****************************************************************************
++**
++** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
++** All rights reserved.
++** Contact: Nokia Corporation (qt-info@nokia.com)
++**
++** This file is part of the QtGui module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** GNU Lesser General Public License Usage
++** This file may be used under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation and
++** appearing in the file LICENSE.LGPL included in the packaging of this
++** file. Please review the following information to ensure the GNU Lesser
++** General Public License version 2.1 requirements will be met:
++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** In addition, as a special exception, Nokia gives you certain additional
++** rights. These rights are described in the Nokia Qt LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU General
++** Public License version 3.0 as published by the Free Software Foundation
++** and appearing in the file LICENSE.GPL included in the packaging of this
++** file. Please review the following information to ensure the GNU General
++** Public License version 3.0 requirements will be met:
++** http://www.gnu.org/copyleft/gpl.html.
++**
++** Other Usage
++** Alternatively, this file may be used in accordance with the terms and
++** conditions contained in a signed written agreement between you and Nokia.
++**
++**
++**
++**
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++#ifndef QABSTRACTSYSTEMTRAYICONSYS_P_H
++#define QABSTRACTSYSTEMTRAYICONSYS_P_H
++
++//
++// W A R N I N G
++// -------------
++//
++// This file is not part of the Qt API. It exists for the convenience
++// of a number of Qt sources files. This header file may change from
++// version to version without notice, or even be removed.
++//
++// We mean it.
++//
++
++#ifndef QT_NO_SYSTEMTRAYICON
++
++#include <qfactoryinterface.h>
++#include <qsystemtrayicon.h>
++
++class QAbstractSystemTrayIconSys;
++
++class Q_GUI_EXPORT QSystemTrayIconSysFactoryInterface : public QObject, public QFactoryInterface
++{
++ Q_OBJECT
++public:
++ QSystemTrayIconSysFactoryInterface();
++ virtual QAbstractSystemTrayIconSys * create(QSystemTrayIcon *) = 0;
++ virtual bool isAvailable() const = 0;
++
++ // \reimp
++ virtual QStringList keys() const { return QStringList() << QLatin1String("default"); }
++
++Q_SIGNALS:
++ void availableChanged(bool);
++};
++
++#define QSystemTrayIconSysFactoryInterface_iid "com.nokia.qt.QSystemTrayIconSysFactoryInterface"
++Q_DECLARE_INTERFACE(QSystemTrayIconSysFactoryInterface, QSystemTrayIconSysFactoryInterface_iid)
++
++class QRect;
++
++class Q_GUI_EXPORT QAbstractSystemTrayIconSys
++{
++public:
++ QAbstractSystemTrayIconSys(QSystemTrayIcon *icon);
++ virtual ~QAbstractSystemTrayIconSys();
++
++ virtual QRect geometry() const = 0;
++ virtual void updateVisibility() = 0;
++ virtual void updateIcon() = 0;
++ virtual void updateToolTip() = 0;
++ virtual void updateMenu() = 0;
++ virtual void showMessage(const QString &title, const QString &message,
++ QSystemTrayIcon::MessageIcon icon, int msecs) = 0;
++
++ void sendActivated(QSystemTrayIcon::ActivationReason);
++
++protected:
++ QSystemTrayIcon *trayIcon;
++};
++
++#endif // QT_NO_SYSTEMTRAYICON
++
++#endif // QABSTRACTSYSTEMTRAYICONSYS_P_H
++
+--- a/src/gui/util/qsystemtrayicon.cpp
++++ b/src/gui/util/qsystemtrayicon.cpp
+@@ -287,12 +287,6 @@
+ */
+ bool QSystemTrayIcon::event(QEvent *e)
+ {
+-#if defined(Q_WS_X11)
+- if (e->type() == QEvent::ToolTip) {
+- Q_D(QSystemTrayIcon);
+- return d->sys->deliverToolTipEvent(e);
+- }
+-#endif
+ return QObject::event(e);
+ }
+
+--- a/src/gui/util/qsystemtrayicon_p.h
++++ b/src/gui/util/qsystemtrayicon_p.h
+@@ -62,10 +62,17 @@
+ #include "QtGui/qpixmap.h"
+ #include "QtCore/qstring.h"
+ #include "QtCore/qpointer.h"
++#if defined(Q_WS_X11)
++#include "QtCore/qset.h"
++#endif
+
+ QT_BEGIN_NAMESPACE
+
++#if defined(Q_WS_X11)
++class QAbstractSystemTrayIconSys;
++#else
+ class QSystemTrayIconSys;
++#endif
+ class QToolButton;
+ class QLabel;
+
+@@ -75,6 +82,9 @@
+
+ public:
+ QSystemTrayIconPrivate() : sys(0), visible(false) { }
++ #if defined(Q_WS_X11)
++ ~QSystemTrayIconPrivate();
++ #endif
+
+ void install_sys();
+ void remove_sys();
+@@ -90,7 +100,11 @@
+ QPointer<QMenu> menu;
+ QIcon icon;
+ QString toolTip;
++ #if defined(Q_WS_X11)
++ QAbstractSystemTrayIconSys *sys;
++ #else
+ QSystemTrayIconSys *sys;
++ #endif
+ bool visible;
+ };
+
+@@ -123,60 +137,37 @@
+ };
+
+ #if defined(Q_WS_X11)
+-QT_BEGIN_INCLUDE_NAMESPACE
+-#include <QtCore/qcoreapplication.h>
+-#include <X11/Xlib.h>
+-#include <X11/Xatom.h>
+-#include <X11/Xutil.h>
+-QT_END_INCLUDE_NAMESPACE
++class QSystemTrayIconSysFactoryInterface;
+
+-class QSystemTrayIconSys : public QWidget
++/**
++ * This class acts as a composite QSystemTrayIconSysFactory: It can create
++ * instances of QAbstractSystemTrayIconSys* using either a plugin or the
++ * builtin factory and will cause QSystemTrayIconPrivate to recreate their
++ * 'sys' instances if the plugin availability changes.
++ */
++class QSystemTrayIconSysFactory : public QObject
+ {
+- friend class QSystemTrayIconPrivate;
+-
++ Q_OBJECT
+ public:
+- QSystemTrayIconSys(QSystemTrayIcon *q);
+- ~QSystemTrayIconSys();
+- enum {
+- SYSTEM_TRAY_REQUEST_DOCK = 0,
+- SYSTEM_TRAY_BEGIN_MESSAGE = 1,
+- SYSTEM_TRAY_CANCEL_MESSAGE =2
+- };
+-
+- void addToTray();
+- void updateIcon();
+- XVisualInfo* getSysTrayVisualInfo();
+-
+- // QObject::event is public but QWidget's ::event() re-implementation
+- // is protected ;(
+- inline bool deliverToolTipEvent(QEvent *e)
+- { return QWidget::event(e); }
+-
+- static Window sysTrayWindow;
+- static QList<QSystemTrayIconSys *> trayIcons;
+- static QCoreApplication::EventFilter oldEventFilter;
+- static bool sysTrayTracker(void *message, long *result);
+- static Window locateSystemTray();
+- static Atom sysTraySelection;
+- static XVisualInfo sysTrayVisual;
++ QSystemTrayIconSysFactory();
++ void registerSystemTrayIconPrivate(QSystemTrayIconPrivate *iconPrivate);
++ void unregisterSystemTrayIconPrivate(QSystemTrayIconPrivate *iconPrivate);
+
+-protected:
+- void paintEvent(QPaintEvent *pe);
+- void resizeEvent(QResizeEvent *re);
+- bool x11Event(XEvent *event);
+- void mousePressEvent(QMouseEvent *event);
+- void mouseDoubleClickEvent(QMouseEvent *event);
+-#ifndef QT_NO_WHEELEVENT
+- void wheelEvent(QWheelEvent *event);
+-#endif
+- bool event(QEvent *e);
++ QAbstractSystemTrayIconSys *create(QSystemTrayIcon *) const;
++
++ bool isAvailable() const;
++
++private Q_SLOTS:
++ void refreshTrayIconPrivates();
+
+ private:
+- QPixmap background;
+- QSystemTrayIcon *q;
+- Colormap colormap;
++ QSystemTrayIconSysFactoryInterface *factory() const;
++ void loadPluginFactory();
++
++ QSystemTrayIconSysFactoryInterface *pluginFactory;
++ QSet<QSystemTrayIconPrivate *> trayIconPrivates;
+ };
+-#endif // Q_WS_X11
++#endif
+
+ QT_END_NAMESPACE
+
+--- a/src/gui/util/qsystemtrayicon_x11.cpp
++++ b/src/gui/util/qsystemtrayicon_x11.cpp
+@@ -38,311 +38,122 @@
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
++#ifndef QT_NO_SYSTEMTRAYICON
++
++#include <private/qfactoryloader_p.h>
+
+-#include "private/qt_x11_p.h"
+-#include "qlabel.h"
+-#include "qx11info_x11.h"
+-#include "qpainter.h"
+-#include "qpixmap.h"
+-#include "qbitmap.h"
+-#include "qevent.h"
+-#include "qapplication.h"
+-#include "qlist.h"
+-#include "qmenu.h"
+-#include "qtimer.h"
+ #include "qsystemtrayicon_p.h"
+-#include "qpaintengine.h"
++#include "qabstractsystemtrayiconsys_p.h"
++#include "qcoreapplication.h"
++#include "qxembedsystemtrayicon_x11_p.h"
+
+-#ifndef QT_NO_SYSTEMTRAYICON
+ QT_BEGIN_NAMESPACE
+
+-Window QSystemTrayIconSys::sysTrayWindow = XNone;
+-QList<QSystemTrayIconSys *> QSystemTrayIconSys::trayIcons;
+-QCoreApplication::EventFilter QSystemTrayIconSys::oldEventFilter = 0;
+-Atom QSystemTrayIconSys::sysTraySelection = XNone;
+-XVisualInfo QSystemTrayIconSys::sysTrayVisual = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+-
+-// Locate the system tray
+-Window QSystemTrayIconSys::locateSystemTray()
+-{
+- Display *display = QX11Info::display();
+- if (sysTraySelection == XNone) {
+- int screen = QX11Info::appScreen();
+- QString net_sys_tray = QString::fromLatin1("_NET_SYSTEM_TRAY_S%1").arg(screen);
+- sysTraySelection = XInternAtom(display, net_sys_tray.toLatin1(), False);
+- }
+-
+- return XGetSelectionOwner(QX11Info::display(), sysTraySelection);
+-}
++Q_GLOBAL_STATIC(QSystemTrayIconSysFactory, qt_guiSystemTrayIconSysFactory)
+
+-XVisualInfo* QSystemTrayIconSys::getSysTrayVisualInfo()
++QSystemTrayIconSysFactory::QSystemTrayIconSysFactory()
++: pluginFactory(0)
+ {
+- Display *display = QX11Info::display();
+-
+- if (!sysTrayVisual.visual) {
+- Window win = locateSystemTray();
+- if (win != XNone) {
+- Atom actual_type;
+- int actual_format;
+- ulong nitems, bytes_remaining;
+- uchar *data = 0;
+- int result = XGetWindowProperty(display, win, ATOM(_NET_SYSTEM_TRAY_VISUAL), 0, 1,
+- False, XA_VISUALID, &actual_type,
+- &actual_format, &nitems, &bytes_remaining, &data);
+- VisualID vid = 0;
+- if (result == Success && data && actual_type == XA_VISUALID && actual_format == 32 &&
+- nitems == 1 && bytes_remaining == 0)
+- vid = *(VisualID*)data;
+- if (data)
+- XFree(data);
+- if (vid == 0)
+- return 0;
+-
+- uint mask = VisualIDMask;
+- XVisualInfo *vi, rvi;
+- int count;
+- rvi.visualid = vid;
+- vi = XGetVisualInfo(display, mask, &rvi, &count);
+- if (vi) {
+- sysTrayVisual = vi[0];
+- XFree((char*)vi);
+- }
+- if (sysTrayVisual.depth != 32)
+- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
+- }
+- }
+-
+- return sysTrayVisual.visual ? &sysTrayVisual : 0;
+ }
+
+-bool QSystemTrayIconSys::sysTrayTracker(void *message, long *result)
++void QSystemTrayIconSysFactory::loadPluginFactory()
+ {
+- bool retval = false;
+- if (QSystemTrayIconSys::oldEventFilter)
+- retval = QSystemTrayIconSys::oldEventFilter(message, result);
+-
+- if (trayIcons.isEmpty())
+- return retval;
+-
+- Display *display = QX11Info::display();
+- XEvent *ev = (XEvent *)message;
+- if (ev->type == DestroyNotify && ev->xany.window == sysTrayWindow) {
+- sysTrayWindow = locateSystemTray();
+- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
+- for (int i = 0; i < trayIcons.count(); i++) {
+- if (sysTrayWindow == XNone) {
+- QBalloonTip::hideBalloon();
+- trayIcons[i]->hide(); // still no luck
+- trayIcons[i]->destroy();
+- trayIcons[i]->create();
+- } else
+- trayIcons[i]->addToTray(); // add it to the new tray
+- }
+- retval = true;
+- } else if (ev->type == ClientMessage && sysTrayWindow == XNone) {
+- static Atom manager_atom = XInternAtom(display, "MANAGER", False);
+- XClientMessageEvent *cm = (XClientMessageEvent *)message;
+- if ((cm->message_type == manager_atom) && ((Atom)cm->data.l[1] == sysTraySelection)) {
+- sysTrayWindow = cm->data.l[2];
+- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
+- XSelectInput(display, sysTrayWindow, StructureNotifyMask);
+- for (int i = 0; i < trayIcons.count(); i++) {
+- trayIcons[i]->addToTray();
+- }
+- retval = true;
+- }
+- } else if (ev->type == PropertyNotify && ev->xproperty.atom == ATOM(_NET_SYSTEM_TRAY_VISUAL) &&
+- ev->xproperty.window == sysTrayWindow) {
+- memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
+- for (int i = 0; i < trayIcons.count(); i++) {
+- trayIcons[i]->addToTray();
+- }
+- }
+-
+- return retval;
+-}
+-
+-QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *q)
+- : QWidget(0, Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint),
+- q(q), colormap(0)
+-{
+- setAttribute(Qt::WA_AlwaysShowToolTips);
+- setAttribute(Qt::WA_QuitOnClose, false);
+- setAttribute(Qt::WA_NoSystemBackground, true);
+- setAttribute(Qt::WA_PaintOnScreen);
+-
+- static bool eventFilterAdded = false;
+- Display *display = QX11Info::display();
+- if (!eventFilterAdded) {
+- oldEventFilter = qApp->setEventFilter(sysTrayTracker);
+- eventFilterAdded = true;
+- Window root = QX11Info::appRootWindow();
+- XWindowAttributes attr;
+- XGetWindowAttributes(display, root, &attr);
+- if ((attr.your_event_mask & StructureNotifyMask) != StructureNotifyMask) {
+- (void) QApplication::desktop(); // lame trick to ensure our event mask is not overridden
+- XSelectInput(display, root, attr.your_event_mask | StructureNotifyMask); // for MANAGER selection
+- }
++ if (pluginFactory) {
++ return;
+ }
+- if (trayIcons.isEmpty()) {
+- sysTrayWindow = locateSystemTray();
+- if (sysTrayWindow != XNone)
+- XSelectInput(display, sysTrayWindow, StructureNotifyMask); // track tray events
++#ifndef QT_NO_LIBRARY
++ QFactoryLoader loader(QSystemTrayIconSysFactoryInterface_iid, QLatin1String("/systemtrayicon"));
++ pluginFactory = qobject_cast<QSystemTrayIconSysFactoryInterface *>(loader.instance(QLatin1String("default")));
++ if (pluginFactory) {
++ // Set parent to ensure factory destructor is called when application
++ // is closed
++ pluginFactory->setParent(QCoreApplication::instance());
++ connect(pluginFactory, SIGNAL(availableChanged(bool)), SLOT(refreshTrayIconPrivates()));
+ }
+- trayIcons.append(this);
+- setMouseTracking(true);
+-#ifndef QT_NO_TOOLTIP
+- setToolTip(q->toolTip());
+-#endif
+- if (sysTrayWindow != XNone)
+- addToTray();
++#endif // QT_NO_LIBRARY
+ }
+
+-QSystemTrayIconSys::~QSystemTrayIconSys()
++QSystemTrayIconSysFactoryInterface *QSystemTrayIconSysFactory::factory() const
+ {
+- trayIcons.removeAt(trayIcons.indexOf(this));
+- Display *display = QX11Info::display();
+- if (trayIcons.isEmpty()) {
+- if (sysTrayWindow == XNone)
+- return;
+- if (display)
+- XSelectInput(display, sysTrayWindow, 0); // stop tracking the tray
+- sysTrayWindow = XNone;
++ if (!pluginFactory) {
++ const_cast<QSystemTrayIconSysFactory*>(this)->loadPluginFactory();
+ }
+- if (colormap)
+- XFreeColormap(display, colormap);
++ if (pluginFactory && pluginFactory->isAvailable()) {
++ return pluginFactory;
++ }
++ static QXEmbedSystemTrayIconSysFactory def;
++ return def.isAvailable() ? &def : 0;
+ }
+
+-void QSystemTrayIconSys::addToTray()
++void QSystemTrayIconSysFactory::refreshTrayIconPrivates()
+ {
+- Q_ASSERT(sysTrayWindow != XNone);
+- Display *display = QX11Info::display();
+-
+- XVisualInfo *vi = getSysTrayVisualInfo();
+- if (vi && vi->visual) {
+- Window root = RootWindow(display, vi->screen);
+- Window p = root;
+- if (QWidget *pw = parentWidget())
+- p = pw->effectiveWinId();
+- colormap = XCreateColormap(display, root, vi->visual, AllocNone);
+- XSetWindowAttributes wsa;
+- wsa.background_pixmap = 0;
+- wsa.colormap = colormap;
+- wsa.background_pixel = 0;
+- wsa.border_pixel = 0;
+- Window wid = XCreateWindow(display, p, -1, -1, 1, 1,
+- 0, vi->depth, InputOutput, vi->visual,
+- CWBackPixmap|CWBackPixel|CWBorderPixel|CWColormap, &wsa);
+- create(wid);
+- } else {
+- XSetWindowBackgroundPixmap(display, winId(), ParentRelative);
+- }
+-
+- // GNOME, NET WM Specification
+- static Atom netwm_tray_atom = XInternAtom(display, "_NET_SYSTEM_TRAY_OPCODE", False);
+- long l[5] = { CurrentTime, SYSTEM_TRAY_REQUEST_DOCK, static_cast<long>(winId()), 0, 0 };
+- XEvent ev;
+- memset(&ev, 0, sizeof(ev));
+- ev.xclient.type = ClientMessage;
+- ev.xclient.window = sysTrayWindow;
+- ev.xclient.message_type = netwm_tray_atom;
+- ev.xclient.format = 32;
+- memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l));
+- XSendEvent(display, sysTrayWindow, False, 0, &ev);
+- setMinimumSize(22, 22); // required at least on GNOME
+-}
+-
+-void QSystemTrayIconSys::updateIcon()
+-{
+- update();
+-}
+-
+-void QSystemTrayIconSys::resizeEvent(QResizeEvent *re)
+-{
+- QWidget::resizeEvent(re);
+- updateIcon();
+-}
+-
+-void QSystemTrayIconSys::paintEvent(QPaintEvent*)
+-{
+- QPainter p(this);
+- if (!getSysTrayVisualInfo()) {
+- const QRegion oldSystemClip = p.paintEngine()->systemClip();
+- const QRect clearedRect = oldSystemClip.boundingRect();
+- XClearArea(QX11Info::display(), winId(), clearedRect.x(), clearedRect.y(),
+- clearedRect.width(), clearedRect.height(), False);
+- QPaintEngine *pe = p.paintEngine();
+- pe->setSystemClip(clearedRect);
+- q->icon().paint(&p, rect());
+- pe->setSystemClip(oldSystemClip);
+- } else {
+- p.setCompositionMode(QPainter::CompositionMode_Source);
+- p.fillRect(rect(), Qt::transparent);
+- p.setCompositionMode(QPainter::CompositionMode_SourceOver);
+- q->icon().paint(&p, rect());
++ Q_FOREACH(QSystemTrayIconPrivate *trayIconPrivate, trayIconPrivates) {
++ if (trayIconPrivate->sys) {
++ delete trayIconPrivate->sys;
++ trayIconPrivate->sys = 0;
++ }
++ // When visible is true, sys is usually not 0 but it can be 0 if the
++ // call to install_sys() failed.
++ if (trayIconPrivate->visible) {
++ trayIconPrivate->install_sys();
++ }
+ }
+ }
+
+-void QSystemTrayIconSys::mousePressEvent(QMouseEvent *ev)
++void QSystemTrayIconSysFactory::registerSystemTrayIconPrivate(QSystemTrayIconPrivate* trayIconPrivate)
+ {
+- QPoint globalPos = ev->globalPos();
+- if (ev->button() == Qt::RightButton && q->contextMenu())
+- q->contextMenu()->popup(globalPos);
+-
+- if (QBalloonTip::isBalloonVisible()) {
+- emit q->messageClicked();
+- QBalloonTip::hideBalloon();
+- }
+-
+- if (ev->button() == Qt::LeftButton)
+- emit q->activated(QSystemTrayIcon::Trigger);
+- else if (ev->button() == Qt::RightButton)
+- emit q->activated(QSystemTrayIcon::Context);
+- else if (ev->button() == Qt::MidButton)
+- emit q->activated(QSystemTrayIcon::MiddleClick);
++ trayIconPrivates.insert(trayIconPrivate);
+ }
+
+-void QSystemTrayIconSys::mouseDoubleClickEvent(QMouseEvent *ev)
++void QSystemTrayIconSysFactory::unregisterSystemTrayIconPrivate(QSystemTrayIconPrivate* trayIconPrivate)
+ {
+- if (ev->button() == Qt::LeftButton)
+- emit q->activated(QSystemTrayIcon::DoubleClick);
++ trayIconPrivates.remove(trayIconPrivate);
+ }
+
+-#ifndef QT_NO_WHEELEVENT
+-void QSystemTrayIconSys::wheelEvent(QWheelEvent *e)
++QAbstractSystemTrayIconSys *QSystemTrayIconSysFactory::create(QSystemTrayIcon *trayIcon) const
+ {
+- QApplication::sendEvent(q, e);
++ QSystemTrayIconSysFactoryInterface *f = factory();
++ if (!f) {
++ qWarning("No systemtrayicon available");
++ return 0;
++ }
++ return f->create(trayIcon);
+ }
+-#endif
+
+-bool QSystemTrayIconSys::event(QEvent *e)
++bool QSystemTrayIconSysFactory::isAvailable() const
+ {
+- if (e->type() == QEvent::ToolTip) {
+- return QApplication::sendEvent(q, e);
+- }
+- return QWidget::event(e);
++ return factory();
+ }
+
+-bool QSystemTrayIconSys::x11Event(XEvent *event)
++////////////////////////////////////////////////
++QSystemTrayIconPrivate::~QSystemTrayIconPrivate()
+ {
+- if (event->type == ReparentNotify)
+- show();
+- return QWidget::x11Event(event);
++ qt_guiSystemTrayIconSysFactory()->unregisterSystemTrayIconPrivate(this);
++ delete sys;
+ }
+
+-////////////////////////////////////////////////////////////////////////////
+ void QSystemTrayIconPrivate::install_sys()
+ {
+ Q_Q(QSystemTrayIcon);
+- if (!sys)
+- sys = new QSystemTrayIconSys(q);
++ if (!sys) {
++ // Register ourself even if create() fails: our "sys" will get created
++ // later by refreshTrayIconPrivates() if a systemtray becomes
++ // available. This situation can happen for applications which are
++ // started at login time, while the desktop itself is starting up.
++ qt_guiSystemTrayIconSysFactory()->registerSystemTrayIconPrivate(this);
++ sys = qt_guiSystemTrayIconSysFactory()->create(q);
++ if (!sys) {
++ return;
++ }
++ }
++ sys->updateVisibility();
+ }
+
+ QRect QSystemTrayIconPrivate::geometry_sys() const
+ {
+- if (!sys)
+- return QRect();
+- return QRect(sys->mapToGlobal(QPoint(0, 0)), sys->size());
++ if (!sys || !visible)
++ return QRect();
++ return sys->geometry();
+ }
+
+ void QSystemTrayIconPrivate::remove_sys()
+@@ -350,35 +161,35 @@
+ if (!sys)
+ return;
+ QBalloonTip::hideBalloon();
+- sys->hide(); // this should do the trick, but...
+- delete sys; // wm may resize system tray only for DestroyEvents
+- sys = 0;
++ sys->updateVisibility();
+ }
+
+ void QSystemTrayIconPrivate::updateIcon_sys()
+ {
+- if (!sys)
++ if (!sys || !visible)
+ return;
+ sys->updateIcon();
+ }
+
+ void QSystemTrayIconPrivate::updateMenu_sys()
+ {
+-
++ if (!sys || !visible)
++ return;
++ sys->updateMenu();
+ }
+
+ void QSystemTrayIconPrivate::updateToolTip_sys()
+ {
+- if (!sys)
++ if (!sys || !visible)
+ return;
+ #ifndef QT_NO_TOOLTIP
+- sys->setToolTip(toolTip);
++ sys->updateToolTip();
+ #endif
+ }
+
+ bool QSystemTrayIconPrivate::isSystemTrayAvailable_sys()
+ {
+- return QSystemTrayIconSys::locateSystemTray() != XNone;
++ return qt_guiSystemTrayIconSysFactory()->isAvailable();
+ }
+
+ bool QSystemTrayIconPrivate::supportsMessages_sys()
+@@ -389,12 +200,9 @@
+ void QSystemTrayIconPrivate::showMessage_sys(const QString &message, const QString &title,
+ QSystemTrayIcon::MessageIcon icon, int msecs)
+ {
+- if (!sys)
++ if (!sys || !visible)
+ return;
+- QPoint g = sys->mapToGlobal(QPoint(0, 0));
+- QBalloonTip::showBalloon(icon, message, title, sys->q,
+- QPoint(g.x() + sys->width()/2, g.y() + sys->height()/2),
+- msecs);
++ sys->showMessage(message, title, icon, msecs);
+ }
+
+ QT_END_NAMESPACE
+--- /dev/null
++++ b/src/gui/util/qxembedsystemtrayicon_x11.cpp
+@@ -0,0 +1,469 @@
++/****************************************************************************
++**
++** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
++** All rights reserved.
++** Contact: Nokia Corporation (qt-info@nokia.com)
++**
++** This file is part of the QtGui module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** GNU Lesser General Public License Usage
++** This file may be used under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation and
++** appearing in the file LICENSE.LGPL included in the packaging of this
++** file. Please review the following information to ensure the GNU Lesser
++** General Public License version 2.1 requirements will be met:
++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** In addition, as a special exception, Nokia gives you certain additional
++** rights. These rights are described in the Nokia Qt LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU General
++** Public License version 3.0 as published by the Free Software Foundation
++** and appearing in the file LICENSE.GPL included in the packaging of this
++** file. Please review the following information to ensure the GNU General
++** Public License version 3.0 requirements will be met:
++** http://www.gnu.org/copyleft/gpl.html.
++**
++** Other Usage
++** Alternatively, this file may be used in accordance with the terms and
++** conditions contained in a signed written agreement between you and Nokia.
++**
++**
++**
++**
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++#include "qxembedsystemtrayicon_x11_p.h"
++
++#ifndef QT_NO_SYSTEMTRAYICON
++
++#include "private/qt_x11_p.h"
++#include "qapplication.h"
++#include "qevent.h"
++#include "qlist.h"
++#include "qmenu.h"
++#include "qpainter.h"
++#include "qpaintengine.h"
++#include "qsystemtrayicon_p.h"
++#include "qx11info_x11.h"
++
++QT_BEGIN_INCLUDE_NAMESPACE
++#include <QtCore/qcoreapplication.h>
++#include <X11/Xlib.h>
++#include <X11/Xatom.h>
++#include <X11/Xutil.h>
++QT_END_INCLUDE_NAMESPACE
++
++QT_BEGIN_NAMESPACE
++
++class QSystemTrayIconWidget : public QWidget
++{
++public:
++ QSystemTrayIconWidget(QSystemTrayIcon *q, QXEmbedSystemTrayIconSys *s);
++ ~QSystemTrayIconWidget();
++
++ static Window locateSystemTray();
++
++protected:
++ void paintEvent(QPaintEvent *pe);
++ void resizeEvent(QResizeEvent *re);
++ bool x11Event(XEvent *event);
++ void mousePressEvent(QMouseEvent *event);
++ void mouseDoubleClickEvent(QMouseEvent *event);
++#ifndef QT_NO_WHEELEVENT
++ void wheelEvent(QWheelEvent *event);
++#endif
++ bool event(QEvent *e);
++
++private:
++ enum {
++ SYSTEM_TRAY_REQUEST_DOCK = 0,
++ SYSTEM_TRAY_BEGIN_MESSAGE = 1,
++ SYSTEM_TRAY_CANCEL_MESSAGE =2
++ };
++
++ void addToTray();
++ static XVisualInfo* getSysTrayVisualInfo();
++
++ static Window sysTrayWindow;
++ static QList<QSystemTrayIconWidget *> trayIcons;
++ static QCoreApplication::EventFilter oldEventFilter;
++ static bool sysTrayTracker(void *message, long *result);
++ static Atom sysTraySelection;
++ static XVisualInfo sysTrayVisual;
++
++ QSystemTrayIcon *q;
++ QXEmbedSystemTrayIconSys *sys;
++ Colormap colormap;
++};
++
++Window QSystemTrayIconWidget::sysTrayWindow = XNone;
++QList<QSystemTrayIconWidget *> QSystemTrayIconWidget::trayIcons;
++QCoreApplication::EventFilter QSystemTrayIconWidget::oldEventFilter = 0;
++Atom QSystemTrayIconWidget::sysTraySelection = XNone;
++XVisualInfo QSystemTrayIconWidget::sysTrayVisual = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
++
++QSystemTrayIconWidget::QSystemTrayIconWidget(QSystemTrayIcon* q, QXEmbedSystemTrayIconSys* sys)
++: QWidget(0, Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint)
++, q(q)
++, sys(sys)
++, colormap(0)
++{
++ setAttribute(Qt::WA_AlwaysShowToolTips);
++ setAttribute(Qt::WA_QuitOnClose, false);
++ setAttribute(Qt::WA_NoSystemBackground, true);
++ setAttribute(Qt::WA_PaintOnScreen);
++ setMouseTracking(true);
++#ifndef QT_NO_TOOLTIP
++ setToolTip(q->toolTip());
++#endif
++
++ static bool eventFilterAdded = false;
++ Display *display = QX11Info::display();
++ if (!eventFilterAdded) {
++ oldEventFilter = qApp->setEventFilter(sysTrayTracker);
++ eventFilterAdded = true;
++ Window root = QX11Info::appRootWindow();
++ XWindowAttributes attr;
++ XGetWindowAttributes(display, root, &attr);
++ if ((attr.your_event_mask & StructureNotifyMask) != StructureNotifyMask) {
++ (void) QApplication::desktop(); // lame trick to ensure our event mask is not overridden
++ XSelectInput(display, root, attr.your_event_mask | StructureNotifyMask); // for MANAGER selection
++ }
++ }
++ if (trayIcons.isEmpty()) {
++ sysTrayWindow = locateSystemTray();
++ if (sysTrayWindow != XNone)
++ XSelectInput(display, sysTrayWindow, StructureNotifyMask); // track tray events
++ }
++ trayIcons.append(this);
++ if (sysTrayWindow != XNone)
++ addToTray();
++}
++
++QSystemTrayIconWidget::~QSystemTrayIconWidget()
++{
++ trayIcons.removeAt(trayIcons.indexOf(this));
++ Display *display = QX11Info::display();
++ if (trayIcons.isEmpty()) {
++ if (sysTrayWindow == XNone)
++ return;
++ if (display)
++ XSelectInput(display, sysTrayWindow, 0); // stop tracking the tray
++ sysTrayWindow = XNone;
++ }
++ if (colormap)
++ XFreeColormap(display, colormap);
++}
++
++void QSystemTrayIconWidget::resizeEvent(QResizeEvent *re)
++{
++ QWidget::resizeEvent(re);
++ update();
++}
++
++void QSystemTrayIconWidget::paintEvent(QPaintEvent*)
++{
++ QPainter p(this);
++ if (!getSysTrayVisualInfo()) {
++ const QRegion oldSystemClip = p.paintEngine()->systemClip();
++ const QRect clearedRect = oldSystemClip.boundingRect();
++ XClearArea(QX11Info::display(), winId(), clearedRect.x(), clearedRect.y(),
++ clearedRect.width(), clearedRect.height(), False);
++ QPaintEngine *pe = p.paintEngine();
++ pe->setSystemClip(clearedRect);
++ q->icon().paint(&p, rect());
++ pe->setSystemClip(oldSystemClip);
++ } else {
++ p.setCompositionMode(QPainter::CompositionMode_Source);
++ p.fillRect(rect(), Qt::transparent);
++ p.setCompositionMode(QPainter::CompositionMode_SourceOver);
++ q->icon().paint(&p, rect());
++ }
++}
++
++void QSystemTrayIconWidget::mousePressEvent(QMouseEvent *ev)
++{
++ QPoint globalPos = ev->globalPos();
++ if (ev->button() == Qt::RightButton && q->contextMenu())
++ q->contextMenu()->popup(globalPos);
++
++ if (QBalloonTip::isBalloonVisible()) {
++ QMetaObject::invokeMethod(q, "messageClicked");
++ QBalloonTip::hideBalloon();
++ }
++
++ if (ev->button() == Qt::LeftButton)
++ qtsystray_sendActivated(q, QSystemTrayIcon::Trigger);
++ else if (ev->button() == Qt::RightButton)
++ qtsystray_sendActivated(q, QSystemTrayIcon::Context);
++ else if (ev->button() == Qt::MidButton)
++ qtsystray_sendActivated(q, QSystemTrayIcon::MiddleClick);
++}
++
++void QSystemTrayIconWidget::mouseDoubleClickEvent(QMouseEvent *ev)
++{
++ if (ev->button() == Qt::LeftButton)
++ qtsystray_sendActivated(q, QSystemTrayIcon::DoubleClick);
++}
++
++#ifndef QT_NO_WHEELEVENT
++void QSystemTrayIconWidget::wheelEvent(QWheelEvent *e)
++{
++ sys->sendWheelEventToTrayIcon(e->delta(), e->orientation());
++}
++#endif
++
++bool QSystemTrayIconWidget::event(QEvent *e)
++{
++ if (e->type() == QEvent::ToolTip) {
++ sys->sendToolTipEventToTrayIcon();
++ }
++ return QWidget::event(e);
++}
++
++bool QSystemTrayIconWidget::x11Event(XEvent *event)
++{
++ if (event->type == ReparentNotify)
++ show();
++ return QWidget::x11Event(event);
++}
++
++// Locate the system tray
++Window QSystemTrayIconWidget::locateSystemTray()
++{
++ Display *display = QX11Info::display();
++ if (sysTraySelection == XNone) {
++ int screen = QX11Info::appScreen();
++ QString net_sys_tray = QString::fromLatin1("_NET_SYSTEM_TRAY_S%1").arg(screen);
++ sysTraySelection = XInternAtom(display, net_sys_tray.toLatin1(), False);
++ }
++
++ return XGetSelectionOwner(QX11Info::display(), sysTraySelection);
++}
++
++XVisualInfo* QSystemTrayIconWidget::getSysTrayVisualInfo()
++{
++ Display *display = QX11Info::display();
++
++ if (!sysTrayVisual.visual) {
++ Window win = locateSystemTray();
++ if (win != XNone) {
++ Atom actual_type;
++ int actual_format;
++ ulong nitems, bytes_remaining;
++ uchar *data = 0;
++ int result = XGetWindowProperty(display, win, ATOM(_NET_SYSTEM_TRAY_VISUAL), 0, 1,
++ False, XA_VISUALID, &actual_type,
++ &actual_format, &nitems, &bytes_remaining, &data);
++ VisualID vid = 0;
++ if (result == Success && data && actual_type == XA_VISUALID && actual_format == 32 &&
++ nitems == 1 && bytes_remaining == 0)
++ vid = *(VisualID*)data;
++ if (data)
++ XFree(data);
++ if (vid == 0)
++ return 0;
++
++ uint mask = VisualIDMask;
++ XVisualInfo *vi, rvi;
++ int count;
++ rvi.visualid = vid;
++ vi = XGetVisualInfo(display, mask, &rvi, &count);
++ if (vi) {
++ sysTrayVisual = vi[0];
++ XFree((char*)vi);
++ }
++ if (sysTrayVisual.depth != 32)
++ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
++ }
++ }
++
++ return sysTrayVisual.visual ? &sysTrayVisual : 0;
++}
++
++bool QSystemTrayIconWidget::sysTrayTracker(void *message, long *result)
++{
++ bool retval = false;
++ if (QSystemTrayIconWidget::oldEventFilter)
++ retval = QSystemTrayIconWidget::oldEventFilter(message, result);
++
++ if (trayIcons.isEmpty())
++ return retval;
++
++ Display *display = QX11Info::display();
++ XEvent *ev = (XEvent *)message;
++ if (ev->type == DestroyNotify && ev->xany.window == sysTrayWindow) {
++ sysTrayWindow = locateSystemTray();
++ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
++ for (int i = 0; i < trayIcons.count(); i++) {
++ if (sysTrayWindow == XNone) {
++ QBalloonTip::hideBalloon();
++ trayIcons[i]->hide(); // still no luck
++ trayIcons[i]->destroy();
++ trayIcons[i]->create();
++ } else
++ trayIcons[i]->addToTray(); // add it to the new tray
++ }
++ retval = true;
++ } else if (ev->type == ClientMessage && sysTrayWindow == XNone) {
++ static Atom manager_atom = XInternAtom(display, "MANAGER", False);
++ XClientMessageEvent *cm = (XClientMessageEvent *)message;
++ if ((cm->message_type == manager_atom) && ((Atom)cm->data.l[1] == sysTraySelection)) {
++ sysTrayWindow = cm->data.l[2];
++ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
++ XSelectInput(display, sysTrayWindow, StructureNotifyMask);
++ for (int i = 0; i < trayIcons.count(); i++) {
++ trayIcons[i]->addToTray();
++ }
++ retval = true;
++ }
++ } else if (ev->type == PropertyNotify && ev->xproperty.atom == ATOM(_NET_SYSTEM_TRAY_VISUAL) &&
++ ev->xproperty.window == sysTrayWindow) {
++ memset(&sysTrayVisual, 0, sizeof(sysTrayVisual));
++ for (int i = 0; i < trayIcons.count(); i++) {
++ trayIcons[i]->addToTray();
++ }
++ }
++
++ return retval;
++}
++
++void QSystemTrayIconWidget::addToTray()
++{
++ Q_ASSERT(sysTrayWindow != XNone);
++ Display *display = QX11Info::display();
++
++ XVisualInfo *vi = getSysTrayVisualInfo();
++ if (vi && vi->visual) {
++ Window root = RootWindow(display, vi->screen);
++ Window p = root;
++ if (QWidget *pw = parentWidget())
++ p = pw->effectiveWinId();
++ colormap = XCreateColormap(display, root, vi->visual, AllocNone);
++ XSetWindowAttributes wsa;
++ wsa.background_pixmap = 0;
++ wsa.colormap = colormap;
++ wsa.background_pixel = 0;
++ wsa.border_pixel = 0;
++ Window wid = XCreateWindow(display, p, -1, -1, 1, 1,
++ 0, vi->depth, InputOutput, vi->visual,
++ CWBackPixmap|CWBackPixel|CWBorderPixel|CWColormap, &wsa);
++ create(wid);
++ } else {
++ XSetWindowBackgroundPixmap(display, winId(), ParentRelative);
++ }
++
++ // GNOME, NET WM Specification
++ static Atom netwm_tray_atom = XInternAtom(display, "_NET_SYSTEM_TRAY_OPCODE", False);
++ long l[5] = { CurrentTime, SYSTEM_TRAY_REQUEST_DOCK, static_cast<long>(winId()), 0, 0 };
++ XEvent ev;
++ memset(&ev, 0, sizeof(ev));
++ ev.xclient.type = ClientMessage;
++ ev.xclient.window = sysTrayWindow;
++ ev.xclient.message_type = netwm_tray_atom;
++ ev.xclient.format = 32;
++ memcpy((char *)&ev.xclient.data, (const char *) l, sizeof(l));
++ XSendEvent(display, sysTrayWindow, False, 0, &ev);
++ setMinimumSize(22, 22); // required at least on GNOME
++}
++
++////////////////////////////////////////////////////////////////////////////
++QXEmbedSystemTrayIconSys::QXEmbedSystemTrayIconSys(QSystemTrayIcon *q)
++: QAbstractSystemTrayIconSys(q)
++, widget(0)
++{
++}
++
++QXEmbedSystemTrayIconSys::~QXEmbedSystemTrayIconSys()
++{
++ delete widget;
++}
++
++QRect QXEmbedSystemTrayIconSys::geometry() const
++{
++ if (!widget)
++ return QRect();
++ return QRect(widget->mapToGlobal(QPoint(0, 0)), widget->size());
++}
++
++void QXEmbedSystemTrayIconSys::updateIcon()
++{
++ if (!widget)
++ return;
++ widget->update();
++}
++
++void QXEmbedSystemTrayIconSys::updateToolTip()
++{
++ if (!widget)
++ return;
++ widget->setToolTip(trayIcon->toolTip());
++}
++
++void QXEmbedSystemTrayIconSys::showMessage(const QString &message, const QString &title,
++ QSystemTrayIcon::MessageIcon icon, int msecs)
++{
++ if (!widget)
++ return;
++ QPoint point = geometry().center();
++ QBalloonTip::showBalloon(icon, message, title, trayIcon, point, msecs);
++}
++
++void QXEmbedSystemTrayIconSys::updateVisibility()
++{
++ bool visible = trayIcon->isVisible();
++ if (visible && !widget)
++ widget = new QSystemTrayIconWidget(trayIcon, this);
++ else if (!visible && widget) {
++ delete widget;
++ widget = 0;
++ }
++}
++
++void QXEmbedSystemTrayIconSys::sendToolTipEventToTrayIcon()
++{
++#ifndef QT_NO_TOOLTIP
++ // Pass the event through QSystemTrayIcon so that it gets a chance to
++ // update the tooltip, then asks widget to show the tooltip
++ Q_ASSERT(widget);
++ QPoint globalPos = QCursor::pos();
++ QPoint pos = widget->mapFromGlobal(globalPos);
++ QHelpEvent event(QEvent::ToolTip, pos, globalPos);
++ QApplication::sendEvent(trayIcon, &event);
++#endif
++}
++
++void QXEmbedSystemTrayIconSys::sendWheelEventToTrayIcon(int delta, Qt::Orientation orientation)
++{
++#ifndef QT_NO_WHEELEVENT
++ Q_ASSERT(widget);
++ QPoint globalPos = QCursor::pos();
++ QPoint pos = widget->mapFromGlobal(globalPos);
++ QWheelEvent event(pos, globalPos, delta, Qt::NoButton, Qt::NoModifier, orientation);
++ QApplication::sendEvent(trayIcon, &event);
++#endif
++}
++
++void QXEmbedSystemTrayIconSys::updateMenu()
++{
++}
++
++/////////////////////////////////////////////////////////////
++QAbstractSystemTrayIconSys * QXEmbedSystemTrayIconSysFactory::create(QSystemTrayIcon *icon)
++{
++ return new QXEmbedSystemTrayIconSys(icon);
++}
++
++bool QXEmbedSystemTrayIconSysFactory::isAvailable() const
++{
++ return QSystemTrayIconWidget::locateSystemTray() != XNone;
++}
++
++QT_END_NAMESPACE
++#endif //QT_NO_SYSTEMTRAYICON
+--- /dev/null
++++ b/src/gui/util/qxembedsystemtrayicon_x11_p.h
+@@ -0,0 +1,104 @@
++/****************************************************************************
++**
++** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
++** All rights reserved.
++** Contact: Nokia Corporation (qt-info@nokia.com)
++**
++** This file is part of the QtGui module of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL$
++** GNU Lesser General Public License Usage
++** This file may be used under the terms of the GNU Lesser General Public
++** License version 2.1 as published by the Free Software Foundation and
++** appearing in the file LICENSE.LGPL included in the packaging of this
++** file. Please review the following information to ensure the GNU Lesser
++** General Public License version 2.1 requirements will be met:
++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** In addition, as a special exception, Nokia gives you certain additional
++** rights. These rights are described in the Nokia Qt LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** GNU General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU General
++** Public License version 3.0 as published by the Free Software Foundation
++** and appearing in the file LICENSE.GPL included in the packaging of this
++** file. Please review the following information to ensure the GNU General
++** Public License version 3.0 requirements will be met:
++** http://www.gnu.org/copyleft/gpl.html.
++**
++** Other Usage
++** Alternatively, this file may be used in accordance with the terms and
++** conditions contained in a signed written agreement between you and Nokia.
++**
++**
++**
++**
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++#ifndef QXEMBEDSYSTEMTRAYICON_X11_P_H
++#define QXEMBEDSYSTEMTRAYICON_X11_P_H
++
++//
++// W A R N I N G
++// -------------
++//
++// This file is not part of the Qt API. It exists for the convenience
++// of a number of Qt sources files. This header file may change from
++// version to version without notice, or even be removed.
++//
++// We mean it.
++//
++
++#ifndef QT_NO_SYSTEMTRAYICON
++
++#include "qabstractsystemtrayiconsys_p.h"
++
++QT_BEGIN_NAMESPACE
++
++class QSystemTrayIconWidget;
++
++class QXEmbedSystemTrayIconSys : public QAbstractSystemTrayIconSys
++{
++public:
++ QXEmbedSystemTrayIconSys(QSystemTrayIcon *);
++ ~QXEmbedSystemTrayIconSys();
++
++ QRect geometry() const;
++
++ void updateVisibility();
++
++ void updateIcon();
++
++ void updateToolTip();
++
++ void updateMenu();
++
++ void showMessage(const QString &message, const QString &title,
++ QSystemTrayIcon::MessageIcon icon, int msecs);
++
++private:
++ friend class QSystemTrayIconWidget;
++ QSystemTrayIconWidget *widget;
++
++ void sendToolTipEventToTrayIcon();
++
++ void sendWheelEventToTrayIcon(int delta, Qt::Orientation orientation);
++};
++
++struct QXEmbedSystemTrayIconSysFactory : public QSystemTrayIconSysFactoryInterface
++{
++ QAbstractSystemTrayIconSys * create(QSystemTrayIcon *trayIcon);
++ bool isAvailable() const;
++};
++
++
++QT_END_NAMESPACE
++
++#endif // QT_NO_SYSTEMTRAYICON
++
++#endif // QXEMBEDSYSTEMTRAYICON_X11_P_H
++
+--- a/src/gui/util/util.pri
++++ b/src/gui/util/util.pri
+@@ -29,8 +29,13 @@
+ }
+
+ unix:x11 {
++ HEADERS += \
++ util/qabstractsystemtrayiconsys_p.h \
++ util/qxembedsystemtrayicon_x11_p.h
+ SOURCES += \
+- util/qsystemtrayicon_x11.cpp
++ util/qabstractsystemtrayiconsys.cpp \
++ util/qsystemtrayicon_x11.cpp \
++ util/qxembedsystemtrayicon_x11.cpp
+ }
+
+ embedded|qpa {
diff --git a/source/l/qt/qtwebkit/doinst.sh b/source/l/qt/qtwebkit/doinst.sh
new file mode 100644
index 000000000..6f7c5df07
--- /dev/null
+++ b/source/l/qt/qtwebkit/doinst.sh
@@ -0,0 +1,5 @@
+
+if [ -x sbin/ldconfig ]; then
+ chroot . /sbin/ldconfig 2> /dev/null
+fi
+
diff --git a/source/l/qt/qtwebkit/qtwebkit.SlackBuild b/source/l/qt/qtwebkit/qtwebkit.SlackBuild
new file mode 100755
index 000000000..9524d836f
--- /dev/null
+++ b/source/l/qt/qtwebkit/qtwebkit.SlackBuild
@@ -0,0 +1,165 @@
+#!/bin/sh
+
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2015 Heinz Wiesinger, Amsterdam, The Netherlands
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Derived from the main qt SlackBuild
+
+PKGNAM=qtwebkit
+VERSION=$(ls qtwebkit-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ WEBKITFLAGS="--no-force-sse2"
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+ WEBKITFLAGS="--no-force-sse2"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ WEBKITFLAGS="--no-force-sse2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ WEBKITFLAGS=""
+elif [ "$ARCH" = "armv7hl" ]; then
+ # To prevent "qatomic_armv6.h error: output number 2 not directly addressable"
+ # More permanent solution is to patch gcc:
+ # http://bazaar.launchpad.net/~linaro-toolchain-dev/gcc-linaro/4.6/revision/106731
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -fno-strict-volatile-bitfields"
+ LIBDIRSUFFIX=""
+ WEBKITFLAGS="--no-force-sse2"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ WEBKITFLAGS="--no-force-sse2"
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf qtwebkit-$VERSION
+tar xvf $CWD/qtwebkit-$VERSION.tar.xz
+cd qtwebkit-$VERSION || exit 1
+
+# Patch to fix compiling with gcc5:
+zcat $CWD/qtwebkit.putByIndexBeyondVectorLengthWithArrayStorage.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+QTDIR="/usr/lib$LIBDIRSUFFIX/qt" \
+Tools/Scripts/build-webkit \
+ --qt \
+ --prefix=/usr/lib${LIBDIRSUFFIX}/qt \
+ --release \
+ --no-webkit2 \
+ --makeargs="$NUMJOBS" \
+ --qmakearg="CONFIG+=production_build QMAKE_CFLAGS=\"$SLKCFLAGS\" QMAKE_CXXFLAGS=\"$SLKCFLAGS\"" \
+ $WEBKITFLAGS || exit 1
+
+# To add support for WebP images add this to --qmakearg
+# DEFINES+=HAVE_LIBWEBP=1
+
+make INSTALL_ROOT=$PKG -C WebKitBuild/Release install || exit 1
+
+# libjscore is used internally. Prevent a false dependency on this in the .pc files:
+sed -i "s,-ljscore,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
+sed -i "s,-L../JavaScriptCore/release,,g" $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/*.pc
+
+# libwebcore is used internally. Prevent a false dependency on this in the .pc files:
+sed -i \
+ -e "s#-L/usr/lib${LIBDIRSUFFIX}/qt/lib -L../../WebCore/release -L../../JavaScriptCore/release -L/usr/X11R6/lib$LIBDIRSUFFIX -lwebcore##g" \
+ -e "s#-L/usr/lib${LIBDIRSUFFIX}/qt/lib -L../../WebCore/release -L../../JavaScriptCore/release -L/usr/X11R6/lib -lwebcore##g" \
+ -e "s#-L$TMP/qtwebkit-$VERSION/WebKitBuild/Release/Source/WebKit/release##g" \
+ -e "s#-L$TMP/qtwebkit-$VERSION/WebKitBuild/Release/Source/WebCore/release##g" \
+ -e "s#-L$TMP/qtwebkit-$VERSION/WebKitBuild/Release/Source/ThirdParty/ANGLE/release##g" \
+ -e "s#-L$TMP/qtwebkit-$VERSION/WebKitBuild/Release/Source/JavaScriptCore/release##g" \
+ -e "s#-L$TMP/qtwebkit-$VERSION/WebKitBuild/Release/Source/WTF/release##g" \
+ -e "s# -lwebcore##g" \
+ $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/QtWebKit.pc
+
+# Link the shared libraries into /usr/lib:
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ for file in qt/lib/*.so* ; do
+ ln -sf $file .
+ done
+)
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig
+ for file in *.pc ; do
+ ( cd $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ; ln -sf /usr/lib${LIBDIRSUFFIX}/qt/lib/pkgconfig/$file . )
+ done
+)
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a ChangeLog $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/l/qt/qtwebkit/qtwebkit.putByIndexBeyondVectorLengthWithArrayStorage.diff b/source/l/qt/qtwebkit/qtwebkit.putByIndexBeyondVectorLengthWithArrayStorage.diff
new file mode 100644
index 000000000..94696b769
--- /dev/null
+++ b/source/l/qt/qtwebkit/qtwebkit.putByIndexBeyondVectorLengthWithArrayStorage.diff
@@ -0,0 +1,13 @@
+--- ./Source/JavaScriptCore/runtime/JSObject.cpp.orig 2014-09-24 06:42:05.000000000 -0500
++++ ./Source/JavaScriptCore/runtime/JSObject.cpp 2015-11-18 22:41:05.673463626 -0600
+@@ -1922,6 +1922,10 @@
+ }
+ }
+
++template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<Int32Shape>(ExecState* exec, unsigned i, JSValue value);
++template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<DoubleShape>(ExecState* exec, unsigned i, JSValue value);
++template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<ContiguousShape>(ExecState* exec, unsigned i, JSValue value);
++
+ void JSObject::putByIndexBeyondVectorLengthWithArrayStorage(ExecState* exec, unsigned i, JSValue value, bool shouldThrow, ArrayStorage* storage)
+ {
+ JSGlobalData& globalData = exec->globalData();
diff --git a/source/l/qt/qtwebkit/qtwebkit.url b/source/l/qt/qtwebkit/qtwebkit.url
new file mode 100644
index 000000000..4e832e125
--- /dev/null
+++ b/source/l/qt/qtwebkit/qtwebkit.url
@@ -0,0 +1 @@
+http://download.kde.org/stable/qtwebkit-2.3/2.3.4/src/qtwebkit-2.3.4.tar.gz
diff --git a/source/l/qt/qtwebkit/slack-desc b/source/l/qt/qtwebkit/slack-desc
new file mode 100644
index 000000000..0bd175744
--- /dev/null
+++ b/source/l/qt/qtwebkit/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+qtwebkit: QtWebKit (Qt bindings for the WebKit browser engine)
+qtwebkit:
+qtwebkit: WebKit is an open source web browser engine. WebKit's HTML and
+qtwebkit: JavaScript code began as a branch of the KHTML and KJS libraries from
+qtwebkit: KDE. As part of KDE framework KHTML was based on Qt but during their
+qtwebkit: porting efforts Apple's engineers made WebKit toolkit independent.
+qtwebkit: QtWebKit is a project aiming at porting this fabulous engine back
+qtwebkit: to Qt.
+qtwebkit:
+qtwebkit: Homepage: http://www.qt.io/
+qtwebkit:
diff --git a/source/l/qt/slack-desc b/source/l/qt/slack-desc
index 0a42d4a32..4ebd42dfa 100644..100755
--- a/source/l/qt/slack-desc
+++ b/source/l/qt/slack-desc
@@ -11,7 +11,7 @@ qt:
qt: Qt is a complete and well-developed object-oriented framework for
qt: developing graphical user interface (GUI) applications using C++.
qt:
-qt: Homepage: http://qt-project.org/
+qt: Homepage: http://www.qt.io/
qt:
qt:
qt:
diff --git a/source/l/raptor2/raptor2.SlackBuild b/source/l/raptor2/raptor2.SlackBuild
index 5063ff19a..a4492c0fe 100755
--- a/source/l/raptor2/raptor2.SlackBuild
+++ b/source/l/raptor2/raptor2.SlackBuild
@@ -28,7 +28,7 @@
PKGNAM=raptor2
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -36,7 +36,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -44,8 +44,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/readline/readline-5.2-patches/readline52-001 b/source/l/readline/readline-5.2-patches/readline52-001
deleted file mode 100644
index 0bec9a278..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-001
+++ /dev/null
@@ -1,30 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-001
-
-Bug-Reported-by: ebb9@byu.net
-Bug-Reference-ID: <45540862.9030900@byu.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
- http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
-
-Bug-Description:
-
-In some cases, code that is intended to be used in the presence of multibyte
-characters is called when no such characters are present, leading to incorrect
-display position calculations and incorrect redisplay.
-
-Patch:
-
-*** ../readline-5.2/display.c Thu Sep 14 14:20:12 2006
---- display.c Mon Nov 13 17:55:57 2006
-***************
-*** 2381,2384 ****
---- 2409,2414 ----
- if (end <= start)
- return 0;
-+ if (MB_CUR_MAX == 1 || rl_byte_oriented)
-+ return (end - start);
-
- memset (&ps, 0, sizeof (mbstate_t));
diff --git a/source/l/readline/readline-5.2-patches/readline52-002 b/source/l/readline/readline-5.2-patches/readline52-002
deleted file mode 100644
index b0d8c9223..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-002
+++ /dev/null
@@ -1,49 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-002
-
-Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
-Bug-Reference-ID: <45BDC44D.80609@mysql.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
-
-Bug-Description:
-
-Readline neglects to reallocate the array it uses to keep track of wrapped
-screen lines when increasing its size. This will eventually result in
-segmentation faults when given sufficiently long input.
-
-Patch:
-
-*** ../readline-5.2-patched/display.c Thu Sep 14 14:20:12 2006
---- display.c Fri Feb 2 20:23:17 2007
-***************
-*** 561,574 ****
---- 561,586 ----
- wrap_offset = prompt_invis_chars_first_line = 0;
- }
-
-+ #if defined (HANDLE_MULTIBYTE)
- #define CHECK_INV_LBREAKS() \
- do { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
-+ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
- } \
- } while (0)
-+ #else
-+ #define CHECK_INV_LBREAKS() \
-+ do { \
-+ if (newlines >= (inv_lbsize - 2)) \
-+ { \
-+ inv_lbsize *= 2; \
-+ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
-+ } \
-+ } while (0)
-+ #endif /* HANDLE_MULTIBYTE */
-
- #if defined (HANDLE_MULTIBYTE)
- #define CHECK_LPOS() \
diff --git a/source/l/readline/readline-5.2-patches/readline52-003 b/source/l/readline/readline-5.2-patches/readline52-003
deleted file mode 100644
index 06916b3b2..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-003
+++ /dev/null
@@ -1,37 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-003
-
-Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
-Bug-Reference-ID: <1171795523.8021.18.camel@localhost>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
-
-Bug-Description:
-
-When moving the cursor, bash sometimes misplaces the cursor when the prompt
-contains two or more multibyte characters. The particular circumstance that
-uncovered the problem was having the (multibyte) current directory name in
-the prompt string.
-
-Patch:
-
-*** ../readline-5.2.2/display.c Fri Jan 19 13:34:50 2007
---- display.c Sat Mar 10 17:25:44 2007
-***************
-*** 1745,1749 ****
- {
- dpos = _rl_col_width (data, 0, new);
-! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */
- {
- dpos -= woff;
---- 1745,1752 ----
- {
- dpos = _rl_col_width (data, 0, new);
-! /* Use NEW when comparing against the last invisible character in the
-! prompt string, since they're both buffer indices and DPOS is a
-! desired display position. */
-! if (new > prompt_last_invisible) /* XXX - don't use woff here */
- {
- dpos -= woff;
diff --git a/source/l/readline/readline-5.2-patches/readline52-004 b/source/l/readline/readline-5.2-patches/readline52-004
deleted file mode 100644
index b165ad9f4..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-004
+++ /dev/null
@@ -1,70 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-004
-
-Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
-Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
-
-Bug-Description:
-
-When restoring the original prompt after finishing an incremental search,
-bash sometimes places the cursor incorrectly if the primary prompt contains
-invisible characters.
-
-Patch:
-
-*** ../readline-5.2.3/display.c Fri Apr 20 13:30:16 2007
---- display.c Fri Apr 20 15:17:01 2007
-***************
-*** 1599,1604 ****
- if (temp > 0)
- {
- _rl_output_some_chars (nfd, temp);
-! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
- }
- }
---- 1599,1618 ----
- if (temp > 0)
- {
-+ /* If nfd begins at the prompt, or before the invisible
-+ characters in the prompt, we need to adjust _rl_last_c_pos
-+ in a multibyte locale to account for the wrap offset and
-+ set cpos_adjusted accordingly. */
- _rl_output_some_chars (nfd, temp);
-! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-! {
-! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
-! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
-! {
-! _rl_last_c_pos -= wrap_offset;
-! cpos_adjusted = 1;
-! }
-! }
-! else
-! _rl_last_c_pos += temp;
- }
- }
-***************
-*** 1608,1613 ****
---- 1622,1639 ----
- if (temp > 0)
- {
-+ /* If nfd begins at the prompt, or before the invisible
-+ characters in the prompt, we need to adjust _rl_last_c_pos
-+ in a multibyte locale to account for the wrap offset and
-+ set cpos_adjusted accordingly. */
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp; /* XXX */
-+ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-+ {
-+ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
-+ {
-+ _rl_last_c_pos -= wrap_offset;
-+ cpos_adjusted = 1;
-+ }
-+ }
- }
- lendiff = (oe - old) - (ne - new);
diff --git a/source/l/readline/readline-5.2-patches/readline52-005 b/source/l/readline/readline-5.2-patches/readline52-005
deleted file mode 100644
index d192ac152..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-005
+++ /dev/null
@@ -1,328 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-005
-
-Bug-Reported-by: Thomas Loeber <ifp@loeber1.de>
-Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
-
-Bug-Description:
-
-When rl_read_key returns -1, indicating that readline's controlling terminal
-has been invalidated for some reason (e.g., receiving a SIGHUP), the error
-status was not reported correctly to the caller. This could cause input
-loops.
-
-Patch:
-
-*** ../readline-5.2/complete.c Fri Jul 28 11:35:49 2006
---- complete.c Tue Mar 13 08:50:16 2007
-***************
-*** 429,433 ****
- if (c == 'n' || c == 'N' || c == RUBOUT)
- return (0);
-! if (c == ABORT_CHAR)
- _rl_abort_internal ();
- if (for_pager && (c == NEWLINE || c == RETURN))
---- 440,444 ----
- if (c == 'n' || c == 'N' || c == RUBOUT)
- return (0);
-! if (c == ABORT_CHAR || c < 0)
- _rl_abort_internal ();
- if (for_pager && (c == NEWLINE || c == RETURN))
-*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006
---- input.c Wed May 2 16:07:59 2007
-***************
-*** 514,518 ****
- int size;
- {
-! int mb_len = 0;
- size_t mbchar_bytes_length;
- wchar_t wc;
---- 522,526 ----
- int size;
- {
-! int mb_len, c;
- size_t mbchar_bytes_length;
- wchar_t wc;
-***************
-*** 521,531 ****
- memset(&ps, 0, sizeof (mbstate_t));
- memset(&ps_back, 0, sizeof (mbstate_t));
-!
- while (mb_len < size)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
-! mbchar[mb_len++] = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
- if (mbchar_bytes_length == (size_t)(-1))
---- 529,545 ----
- memset(&ps, 0, sizeof (mbstate_t));
- memset(&ps_back, 0, sizeof (mbstate_t));
-!
-! mb_len = 0;
- while (mb_len < size)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
-! c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-+ if (c < 0)
-+ break;
-+
-+ mbchar[mb_len++] = c;
-+
- mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
- if (mbchar_bytes_length == (size_t)(-1))
-***************
-*** 565,569 ****
- c = first;
- memset (mb, 0, mlen);
-! for (i = 0; i < mlen; i++)
- {
- mb[i] = (char)c;
---- 579,583 ----
- c = first;
- memset (mb, 0, mlen);
-! for (i = 0; c >= 0 && i < mlen; i++)
- {
- mb[i] = (char)c;
-*** ../readline-5.2/isearch.c Mon Dec 26 17:18:53 2005
---- isearch.c Fri Mar 9 14:30:59 2007
-***************
-*** 328,333 ****
-
- f = (rl_command_func_t *)NULL;
-!
-! /* Translate the keys we do something with to opcodes. */
- if (c >= 0 && _rl_keymap[c].type == ISFUNC)
- {
---- 328,340 ----
-
- f = (rl_command_func_t *)NULL;
-!
-! if (c < 0)
-! {
-! cxt->sflags |= SF_FAILED;
-! cxt->history_pos = cxt->last_found_line;
-! return -1;
-! }
-!
-! /* Translate the keys we do something with to opcodes. */
- if (c >= 0 && _rl_keymap[c].type == ISFUNC)
- {
-*** ../readline-5.2/misc.c Mon Dec 26 17:20:46 2005
---- misc.c Fri Mar 9 14:44:11 2007
-***************
-*** 147,150 ****
---- 147,152 ----
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
-+ if (key < 0)
-+ return -1;
- return (_rl_dispatch (key, _rl_keymap));
- }
-*** ../readline-5.2/readline.c Wed Aug 16 15:00:36 2006
---- readline.c Fri Mar 9 14:47:24 2007
-***************
-*** 646,649 ****
---- 669,677 ----
- {
- nkey = _rl_subseq_getchar (cxt->okey);
-+ if (nkey < 0)
-+ {
-+ _rl_abort_internal ();
-+ return -1;
-+ }
- r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
- cxt->flags |= KSEQ_DISPATCHED;
-*** ../readline-5.2/text.c Fri Jul 28 11:55:27 2006
---- text.c Sun Mar 25 13:41:38 2007
-***************
-*** 858,861 ****
---- 864,870 ----
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-+ if (c < 0)
-+ return -1;
-+
- #if defined (HANDLE_SIGNALS)
- if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
-***************
-*** 1521,1524 ****
---- 1530,1536 ----
- mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
-
-+ if (mb_len <= 0)
-+ return -1;
-+
- if (count < 0)
- return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
-***************
-*** 1537,1540 ****
---- 1549,1555 ----
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-+ if (c < 0)
-+ return -1;
-+
- if (count < 0)
- return (_rl_char_search_internal (-count, bdir, c));
-*** ../readline-5.2/vi_mode.c Sat Jul 29 16:42:28 2006
---- vi_mode.c Fri Mar 9 15:02:11 2007
-***************
-*** 887,890 ****
---- 887,897 ----
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-+
-+ if (c < 0)
-+ {
-+ *nextkey = 0;
-+ return -1;
-+ }
-+
- *nextkey = c;
-
-***************
-*** 903,906 ****
---- 910,918 ----
- c = rl_read_key (); /* real command */
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-+ if (c < 0)
-+ {
-+ *nextkey = 0;
-+ return -1;
-+ }
- *nextkey = c;
- }
-***************
-*** 1225,1236 ****
- _rl_callback_generic_arg *data;
- {
- #if defined (HANDLE_MULTIBYTE)
-! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
- #else
- RL_SETSTATE(RL_STATE_MOREINPUT);
-! _rl_vi_last_search_char = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- #endif
-
- _rl_callback_func = 0;
- _rl_want_redisplay = 1;
---- 1243,1262 ----
- _rl_callback_generic_arg *data;
- {
-+ int c;
- #if defined (HANDLE_MULTIBYTE)
-! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
- #else
- RL_SETSTATE(RL_STATE_MOREINPUT);
-! c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- #endif
-
-+ if (c <= 0)
-+ return -1;
-+
-+ #if !defined (HANDLE_MULTIBYTE)
-+ _rl_vi_last_search_char = c;
-+ #endif
-+
- _rl_callback_func = 0;
- _rl_want_redisplay = 1;
-***************
-*** 1248,1251 ****
---- 1274,1278 ----
- int count, key;
- {
-+ int c;
- #if defined (HANDLE_MULTIBYTE)
- static char *target;
-***************
-*** 1294,1302 ****
- {
- #if defined (HANDLE_MULTIBYTE)
-! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
- #else
- RL_SETSTATE(RL_STATE_MOREINPUT);
-! _rl_vi_last_search_char = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- #endif
- }
---- 1321,1335 ----
- {
- #if defined (HANDLE_MULTIBYTE)
-! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
-! if (c <= 0)
-! return -1;
-! _rl_vi_last_search_mblen = c;
- #else
- RL_SETSTATE(RL_STATE_MOREINPUT);
-! c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-+ if (c < 0)
-+ return -1;
-+ _rl_vi_last_search_char = c;
- #endif
- }
-***************
-*** 1468,1471 ****
---- 1501,1507 ----
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-+ if (c < 0)
-+ return -1;
-+
- #if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-***************
-*** 1486,1489 ****
---- 1522,1528 ----
- _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
-
-+ if (c < 0)
-+ return -1;
-+
- _rl_callback_func = 0;
- _rl_want_redisplay = 1;
-***************
-*** 1517,1520 ****
---- 1556,1562 ----
- _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
-
-+ if (c < 0)
-+ return -1;
-+
- return (_rl_vi_change_char (count, c, mb));
- }
-***************
-*** 1651,1655 ****
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-! if (ch < 'a' || ch > 'z')
- {
- rl_ding ();
---- 1693,1697 ----
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
- {
- rl_ding ();
-***************
-*** 1703,1707 ****
- return 0;
- }
-! else if (ch < 'a' || ch > 'z')
- {
- rl_ding ();
---- 1745,1749 ----
- return 0;
- }
-! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */
- {
- rl_ding ();
diff --git a/source/l/readline/readline-5.2-patches/readline52-006 b/source/l/readline/readline-5.2-patches/readline52-006
deleted file mode 100644
index d7391438d..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-006
+++ /dev/null
@@ -1,62 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-006
-
-Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
-Bug-Reference-ID: <1178376645.9063.25.camel@localhost>
-Bug-Reference-URL: http://bugs.gentoo.org/177095
-
-Bug-Description:
-
-The readline display code miscalculated the screen position when performing
-a redisplay in which the new text occupies more screen space that the old,
-but takes fewer bytes to do so (e.g., when replacing a shorter string
-containing multibyte characters with a longer one containing only ASCII).
-
-Patch:
-
-*** ../readline-5.2/display.c Thu Apr 26 11:38:22 2007
---- display.c Thu Jul 12 23:10:10 2007
-***************
-*** 1519,1527 ****
- /* Non-zero if we're increasing the number of lines. */
- int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
- /* Sometimes it is cheaper to print the characters rather than
- use the terminal's capabilities. If we're growing the number
- of lines, make sure we actually cause the new line to wrap
- around on auto-wrapping terminals. */
-! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
- {
- /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
---- 1568,1596 ----
- /* Non-zero if we're increasing the number of lines. */
- int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
-+ /* If col_lendiff is > 0, implying that the new string takes up more
-+ screen real estate than the old, but lendiff is < 0, meaning that it
-+ takes fewer bytes, we need to just output the characters starting
-+ from the first difference. These will overwrite what is on the
-+ display, so there's no reason to do a smart update. This can really
-+ only happen in a multibyte environment. */
-+ if (lendiff < 0)
-+ {
-+ _rl_output_some_chars (nfd, temp);
-+ _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
-+ /* If nfd begins before any invisible characters in the prompt,
-+ adjust _rl_last_c_pos to account for wrap_offset and set
-+ cpos_adjusted to let the caller know. */
-+ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
-+ {
-+ _rl_last_c_pos -= wrap_offset;
-+ cpos_adjusted = 1;
-+ }
-+ return;
-+ }
- /* Sometimes it is cheaper to print the characters rather than
- use the terminal's capabilities. If we're growing the number
- of lines, make sure we actually cause the new line to wrap
- around on auto-wrapping terminals. */
-! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
- {
- /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
diff --git a/source/l/readline/readline-5.2-patches/readline52-007 b/source/l/readline/readline-5.2-patches/readline52-007
deleted file mode 100644
index f75f53fc6..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-007
+++ /dev/null
@@ -1,65 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-007
-
-Bug-Reported-by: Tom Bjorkholm <tom.bjorkholm@ericsson.com>
-Bug-Reference-ID: <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
-
-
-Bug-Description:
-
-An off-by-one error in readline's input buffering caused readline to drop
-each 511th character of buffered input (e.g., when pasting a large amount
-of data into a terminal window).
-
-Patch:
-
-*** ../readline-5.2/input.c Wed Aug 16 15:15:16 2006
---- input.c Tue Jul 17 09:24:21 2007
-***************
-*** 134,139 ****
-
- *key = ibuffer[pop_index++];
-!
- if (pop_index >= ibuffer_len)
- pop_index = 0;
-
---- 134,142 ----
-
- *key = ibuffer[pop_index++];
-! #if 0
- if (pop_index >= ibuffer_len)
-+ #else
-+ if (pop_index > ibuffer_len)
-+ #endif
- pop_index = 0;
-
-***************
-*** 251,255 ****
- {
- k = (*rl_getc_function) (rl_instream);
-! rl_stuff_char (k);
- if (k == NEWLINE || k == RETURN)
- break;
---- 254,259 ----
- {
- k = (*rl_getc_function) (rl_instream);
-! if (rl_stuff_char (k) == 0)
-! break; /* some problem; no more room */
- if (k == NEWLINE || k == RETURN)
- break;
-***************
-*** 374,378 ****
---- 378,386 ----
- }
- ibuffer[push_index++] = key;
-+ #if 0
- if (push_index >= ibuffer_len)
-+ #else
-+ if (push_index > ibuffer_len)
-+ #endif
- push_index = 0;
-
diff --git a/source/l/readline/readline-5.2-patches/readline52-008 b/source/l/readline/readline-5.2-patches/readline52-008
deleted file mode 100644
index 1d7f3277f..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-008
+++ /dev/null
@@ -1,70 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-008
-
-Bug-Reported-by: dAniel hAhler <ubuntu@thequod.de>
-Bug-Reference-ID: <4702ED8A.5000503@thequod.de>
-Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938
-
-Bug-Description:
-
-When updating the display after displaying, for instance, a list of possible
-completions, readline will place the cursor at the wrong position if the
-prompt contains invisible characters and a newline.
-
-Patch:
-
-*** ../readline-5.2-patched/display.c Mon Aug 6 14:26:29 2007
---- display.c Wed Oct 10 22:43:58 2007
-***************
-*** 1049,1053 ****
- else
- tx = nleft;
-! if (_rl_last_c_pos > tx)
- {
- _rl_backspace (_rl_last_c_pos - tx); /* XXX */
---- 1049,1053 ----
- else
- tx = nleft;
-! if (tx >= 0 && _rl_last_c_pos > tx)
- {
- _rl_backspace (_rl_last_c_pos - tx); /* XXX */
-***************
-*** 1205,1209 ****
- {
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-! int temp, lendiff, wsatend, od, nd;
- int current_invis_chars;
- int col_lendiff, col_temp;
---- 1205,1209 ----
- {
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-! int temp, lendiff, wsatend, od, nd, o_cpos;
- int current_invis_chars;
- int col_lendiff, col_temp;
-***************
-*** 1466,1469 ****
---- 1466,1471 ----
- }
-
-+ o_cpos = _rl_last_c_pos;
-+
- /* When this function returns, _rl_last_c_pos is correct, and an absolute
- cursor postion in multibyte mode, but a buffer index when not in a
-***************
-*** 1475,1479 ****
- invisible characters in the prompt string. Let's see if setting this when
- we make sure we're at the end of the drawn prompt string works. */
-! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
- cpos_adjusted = 1;
- #endif
---- 1477,1483 ----
- invisible characters in the prompt string. Let's see if setting this when
- we make sure we're at the end of the drawn prompt string works. */
-! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 &&
-! (_rl_last_c_pos > 0 || o_cpos > 0) &&
-! _rl_last_c_pos == prompt_physical_chars)
- cpos_adjusted = 1;
- #endif
diff --git a/source/l/readline/readline-5.2-patches/readline52-009 b/source/l/readline/readline-5.2-patches/readline52-009
deleted file mode 100644
index af9e38174..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-009
+++ /dev/null
@@ -1,45 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-009
-
-Bug-Reported-by: dAniel hAhler <ubuntu@thequod.de>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-Under some circumstances, readline will incorrectly display a prompt string
-containing invisible characters after the final newline.
-
-Patch:
-
-*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400
---- display.c 2007-11-10 17:51:29.000000000 -0500
-***************
-*** 392,396 ****
- local_prompt = expand_prompt (p, &prompt_visible_length,
- &prompt_last_invisible,
-! (int *)NULL,
- &prompt_physical_chars);
- c = *t; *t = '\0';
---- 420,424 ----
- local_prompt = expand_prompt (p, &prompt_visible_length,
- &prompt_last_invisible,
-! &prompt_invis_chars_first_line,
- &prompt_physical_chars);
- c = *t; *t = '\0';
-***************
-*** 399,403 ****
- local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
- (int *)NULL,
-! &prompt_invis_chars_first_line,
- (int *)NULL);
- *t = c;
---- 427,431 ----
- local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
- (int *)NULL,
-! (int *)NULL,
- (int *)NULL);
- *t = c;
diff --git a/source/l/readline/readline-5.2-patches/readline52-010 b/source/l/readline/readline-5.2-patches/readline52-010
deleted file mode 100644
index ee5c026f8..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-010
+++ /dev/null
@@ -1,47 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-010
-
-Bug-Reported-by: Miroslav Lichvar <mlichvar@redhat.com>
-Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html
-
-Bug-Description:
-
-In certain cases when outputting characters at the end of the line,
-e.g., when displaying the prompt string, readline positions the cursor
-incorrectly if the prompt string contains invisible characters and the
-text being drawn begins before the last invisible character in the line.
-
-Patch:
-
-*** ../readline-5.2-patched/display.c 2007-08-25 13:47:08.000000000 -0400
---- display.c 2007-11-10 17:51:29.000000000 -0500
-***************
-*** 1566,1574 ****
- else
- {
-- /* We have horizontal scrolling and we are not inserting at
-- the end. We have invisible characters in this line. This
-- is a dumb update. */
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- return;
- }
---- 1619,1632 ----
- else
- {
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
-+ /* If nfd begins before any invisible characters in the prompt,
-+ adjust _rl_last_c_pos to account for wrap_offset and set
-+ cpos_adjusted to let the caller know. */
-+ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
-+ {
-+ _rl_last_c_pos -= wrap_offset;
-+ cpos_adjusted = 1;
-+ }
- return;
- }
diff --git a/source/l/readline/readline-5.2-patches/readline52-011 b/source/l/readline/readline-5.2-patches/readline52-011
deleted file mode 100644
index a1197ede6..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-011
+++ /dev/null
@@ -1,32 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-011
-
-Bug-Reported-by: Uwe Doering <gemini@geminix.org>
-Bug-Reference-ID: <46F3DD72.2090801@geminix.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html
-
-Bug-Description:
-
-There is an off-by-one error in the code that buffers characters received
-very quickly in succession, causing characters to be dropped.
-
-Patch:
-
-*** ../readline-5.2-patched/input.c 2007-08-25 13:47:10.000000000 -0400
---- input.c 2007-10-12 22:55:25.000000000 -0400
-***************
-*** 155,159 ****
- pop_index--;
- if (pop_index < 0)
-! pop_index = ibuffer_len - 1;
- ibuffer[pop_index] = key;
- return (1);
---- 155,159 ----
- pop_index--;
- if (pop_index < 0)
-! pop_index = ibuffer_len;
- ibuffer[pop_index] = key;
- return (1);
diff --git a/source/l/readline/readline-5.2-patches/readline52-012 b/source/l/readline/readline-5.2-patches/readline52-012
deleted file mode 100644
index 7b370240c..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-012
+++ /dev/null
@@ -1,150 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-012
-
-Bug-Reported-by: Chet Ramey <chet.ramey@case.edu>
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-This updates the options required to create shared libraries on several
-systems, including Mac OS X 10.5 (darwin9.x), FreeBSD, NetBSD, OpenBSD,
-AIX, and HP/UX.
-
-Patch:
-
-*** ../readline-5.2-patched/support/shobj-conf 2006-04-11 09:15:43.000000000 -0400
---- support/shobj-conf 2007-12-06 23:46:41.000000000 -0500
-***************
-*** 11,15 ****
- # chet@po.cwru.edu
-
-! # Copyright (C) 1996-2002 Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or modify
---- 11,15 ----
- # chet@po.cwru.edu
-
-! # Copyright (C) 1996-2007 Free Software Foundation, Inc.
- #
- # This program is free software; you can redistribute it and/or modify
-***************
-*** 115,119 ****
- ;;
-
-! freebsd2* | netbsd*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=ld
---- 115,119 ----
- ;;
-
-! freebsd2*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=ld
-***************
-*** 126,130 ****
- # FreeBSD-3.x ELF
- freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
-! SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
-
---- 126,130 ----
- # FreeBSD-3.x ELF
- freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
-! SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
-
-***************
-*** 143,147 ****
-
- # Darwin/MacOS X
-! darwin8*)
- SHOBJ_STATUS=supported
- SHLIB_STATUS=supported
---- 143,147 ----
-
- # Darwin/MacOS X
-! darwin[89]*)
- SHOBJ_STATUS=supported
- SHLIB_STATUS=supported
-***************
-*** 154,158 ****
- SHLIB_LIBSUFF='dylib'
-
-! SHOBJ_LDFLAGS='-undefined dynamic_lookup'
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
-
---- 154,158 ----
- SHLIB_LIBSUFF='dylib'
-
-! SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`'
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
-
-***************
-*** 172,176 ****
-
- case "${host_os}" in
-! darwin[78]*) SHOBJ_LDFLAGS=''
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
- ;;
---- 172,176 ----
-
- case "${host_os}" in
-! darwin[789]*) SHOBJ_LDFLAGS=''
- SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
- ;;
-***************
-*** 183,187 ****
- ;;
-
-! openbsd*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
---- 183,187 ----
- ;;
-
-! openbsd*|netbsd*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
-***************
-*** 248,252 ****
- ;;
-
-! aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='ld'
---- 248,252 ----
- ;;
-
-! aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*) # lightly tested by jik@cisco.com
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='ld'
-***************
-*** 259,263 ****
- ;;
-
-! aix4.[2-9]*)
- SHOBJ_CFLAGS=-K
- SHOBJ_LD='ld'
---- 259,263 ----
- ;;
-
-! aix4.[2-9]*|aix[5-9].*)
- SHOBJ_CFLAGS=-K
- SHOBJ_LD='ld'
-***************
-*** 330,334 ****
- # if you have problems linking here, moving the `-Wl,+h,$@' from
- # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
-! SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
-
- SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
---- 330,334 ----
- # if you have problems linking here, moving the `-Wl,+h,$@' from
- # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
-! SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s'
-
- SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
diff --git a/source/l/readline/readline-5.2-patches/readline52-013 b/source/l/readline/readline-5.2-patches/readline52-013
deleted file mode 100644
index 82a18972a..000000000
--- a/source/l/readline/readline-5.2-patches/readline52-013
+++ /dev/null
@@ -1,135 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 5.2
-Patch-ID: readline52-013
-
-Bug-Reported-by: slinkp <stuff@slinkp.com>
-Bug-Reference-ID: <da52a26a-9f38-4861-a918-14d3482b539d@c65g2000hsa.googlegroups.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html
-
-Bug-Description:
-
-The presence of invisible characters in a prompt longer than the screenwidth
-with invisible characters on the first and last prompt lines caused readline
-to place the cursor in the wrong physical location.
-
-Patch:
-
-*** ../readline-5.2-patched/display.c 2007-12-14 21:12:40.000000000 -0500
---- display.c 2008-10-23 09:39:46.000000000 -0400
-***************
-*** 911,914 ****
---- 944,951 ----
- OFFSET (which has already been calculated above). */
-
-+ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset)
-+ #define WRAP_OFFSET(line, offset) ((line == 0) \
-+ ? (offset ? INVIS_FIRST() : 0) \
-+ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0))
- #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
- #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
-***************
-*** 945,949 ****
- _rl_last_c_pos > wrap_offset &&
- o_cpos < prompt_last_invisible)
-! _rl_last_c_pos -= wrap_offset;
-
- /* If this is the line with the prompt, we might need to
---- 982,992 ----
- _rl_last_c_pos > wrap_offset &&
- o_cpos < prompt_last_invisible)
-! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */
-! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth &&
-! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
-! cpos_adjusted == 0 &&
-! _rl_last_c_pos != o_cpos &&
-! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line))
-! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line);
-
- /* If this is the line with the prompt, we might need to
-***************
-*** 1205,1209 ****
- {
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-! int temp, lendiff, wsatend, od, nd, o_cpos;
- int current_invis_chars;
- int col_lendiff, col_temp;
---- 1264,1268 ----
- {
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
-! int temp, lendiff, wsatend, od, nd, twidth, o_cpos;
- int current_invis_chars;
- int col_lendiff, col_temp;
-***************
-*** 1221,1225 ****
- temp = _rl_last_c_pos;
- else
-! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
- if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
- && _rl_last_v_pos == current_line - 1)
---- 1280,1284 ----
- temp = _rl_last_c_pos;
- else
-! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset);
- if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
- && _rl_last_v_pos == current_line - 1)
-***************
-*** 1587,1599 ****
- {
- _rl_output_some_chars (nfd + lendiff, temp - lendiff);
-- #if 1
- /* XXX -- this bears closer inspection. Fixes a redisplay bug
- reported against bash-3.0-alpha by Andreas Schwab involving
- multibyte characters and prompt strings with invisible
- characters, but was previously disabled. */
-! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
-! #else
-! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff);
-! #endif
- }
- }
---- 1648,1660 ----
- {
- _rl_output_some_chars (nfd + lendiff, temp - lendiff);
- /* XXX -- this bears closer inspection. Fixes a redisplay bug
- reported against bash-3.0-alpha by Andreas Schwab involving
- multibyte characters and prompt strings with invisible
- characters, but was previously disabled. */
-! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
-! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
-! else
-! twidth = temp - lendiff;
-! _rl_last_c_pos += twidth;
- }
- }
-***************
-*** 1789,1793 ****
- int cpos, dpos; /* current and desired cursor positions */
-
-! woff = W_OFFSET (_rl_last_v_pos, wrap_offset);
- cpos = _rl_last_c_pos;
- #if defined (HANDLE_MULTIBYTE)
---- 1850,1854 ----
- int cpos, dpos; /* current and desired cursor positions */
-
-! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
- cpos = _rl_last_c_pos;
- #if defined (HANDLE_MULTIBYTE)
-***************
-*** 1803,1807 ****
- prompt string, since they're both buffer indices and DPOS is a
- desired display position. */
-! if (new > prompt_last_invisible) /* XXX - don't use woff here */
- {
- dpos -= woff;
---- 1864,1872 ----
- prompt string, since they're both buffer indices and DPOS is a
- desired display position. */
-! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */
-! (prompt_physical_chars > _rl_screenwidth &&
-! _rl_last_v_pos == prompt_last_screen_line &&
-! wrap_offset != woff &&
-! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset)))
- {
- dpos -= woff;
diff --git a/source/l/readline/readline-6.3-patches/readline63-001 b/source/l/readline/readline-6.3-patches/readline63-001
new file mode 100644
index 000000000..bae6a2f52
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-001
@@ -0,0 +1,43 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-001
+
+Bug-Reported-by: Daan van Rossum <daan@flash.uchicago.edu>
+Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu>
+Bug-Reference-URL:
+
+Bug-Description:
+
+The `.' command in vi mode cannot undo multi-key commands beginning with
+`c', `d', and `y' (command plus motion specifier).
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- readline.c 2014-03-07 15:20:33.000000000 -0500
+***************
+*** 965,969 ****
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+! rl_key_sequence_length == 1 && /* XXX */
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+--- 965,969 ----
+ if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
+ key != ANYOTHERKEY &&
+! _rl_dispatching_keymap == vi_movement_keymap &&
+ _rl_vi_textmod_command (key))
+ _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 5
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 1
diff --git a/source/l/readline/readline-6.3-patches/readline63-002 b/source/l/readline/readline-6.3-patches/readline63-002
new file mode 100644
index 000000000..0e79f13f6
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-002
@@ -0,0 +1,44 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-002
+
+Bug-Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com>
+Bug-Reference-ID: <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
+
+Bug-Description:
+
+When in callback mode, some readline commands can cause readline to seg
+fault by passing invalid contexts to callback functions.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
+--- readline.c 2014-03-10 14:15:02.000000000 -0400
+***************
+*** 745,749 ****
+
+ RL_CHECK_SIGNALS ();
+! if (r == 0) /* success! */
+ {
+ _rl_keyseq_chain_dispose ();
+--- 745,750 ----
+
+ RL_CHECK_SIGNALS ();
+! /* We only treat values < 0 specially to simulate recursion. */
+! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
+ {
+ _rl_keyseq_chain_dispose ();
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 1
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 2
diff --git a/source/l/readline/readline-6.3-patches/readline63-003 b/source/l/readline/readline-6.3-patches/readline63-003
new file mode 100644
index 000000000..d2cad94f9
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-003
@@ -0,0 +1,47 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-003
+
+Bug-Reported-by:
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+There are debugging functions in the readline release that are theoretically
+exploitable as security problems. They are not public functions, but have
+global linkage.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3/util.c 2013-09-02 13:36:12.000000000 -0400
+--- util.c 2014-03-20 10:25:53.000000000 -0400
+***************
+*** 477,480 ****
+--- 479,483 ----
+ }
+
++ #if defined (DEBUG)
+ #if defined (USE_VARARGS)
+ static FILE *_rl_tracefp;
+***************
+*** 539,542 ****
+--- 542,546 ----
+ }
+ #endif
++ #endif /* DEBUG */
+
+
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 2
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 3
diff --git a/source/l/readline/readline-6.3-patches/readline63-004 b/source/l/readline/readline-6.3-patches/readline63-004
new file mode 100644
index 000000000..3cd89e3a0
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-004
@@ -0,0 +1,45 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-004
+
+Bug-Reported-by: Egmont Koblinger <egmont@gmail.com>
+Bug-Reference-ID: <CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
+
+Bug-Description:
+
+The signal handling changes to bash and readline (to avoid running any code
+in a signal handler context) cause the cursor to be placed on the wrong
+line of a multi-line command after a ^C interrupts editing.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/display.c 2013-12-27 13:10:56.000000000 -0500
+--- display.c 2014-03-27 11:52:45.000000000 -0400
+***************
+*** 2678,2682 ****
+ if (_rl_echoing_p)
+ {
+! _rl_move_vert (_rl_vis_botlin);
+ _rl_vis_botlin = 0;
+ fflush (rl_outstream);
+--- 2678,2683 ----
+ if (_rl_echoing_p)
+ {
+! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */
+! _rl_move_vert (_rl_vis_botlin);
+ _rl_vis_botlin = 0;
+ fflush (rl_outstream);
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 3
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 4
diff --git a/source/l/readline/readline-6.3-patches/readline63-005 b/source/l/readline/readline-6.3-patches/readline63-005
new file mode 100644
index 000000000..8a6373849
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-005
@@ -0,0 +1,58 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-005
+
+Bug-Reported-by: Juergen Daubert <jue@jue.li>
+Bug-Reference-ID: <20140303180430.GA7346@jue.netz>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html
+
+Bug-Description:
+
+There are still applications using the deprecated Function/VFunction/etc.
+typedefs in rltypedefs.h. This patch restores the typedefs, but attempts
+to mark them as deprecated using gcc/clang attributes. Thanks to Max Horn
+for the suggestion.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/rltypedefs.h 2011-03-26 14:53:31.000000000 -0400
+--- rltypedefs.h 2014-04-10 11:30:45.000000000 -0400
+***************
+*** 27,30 ****
+--- 27,49 ----
+ #endif
+
++ /* Old-style, attempt to mark as deprecated in some way people will notice. */
++
++ #if !defined (_FUNCTION_DEF)
++ # define _FUNCTION_DEF
++
++ #if defined(__GNUC__) || defined(__clang__)
++ typedef int Function () __attribute__ ((deprecated));
++ typedef void VFunction () __attribute__ ((deprecated));
++ typedef char *CPFunction () __attribute__ ((deprecated));
++ typedef char **CPPFunction () __attribute__ ((deprecated));
++ #else
++ typedef int Function ();
++ typedef void VFunction ();
++ typedef char *CPFunction ();
++ typedef char **CPPFunction ();
++ #endif
++
++ #endif /* _FUNCTION_DEF */
++
+ /* New style. */
+
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 4
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 5
diff --git a/source/l/readline/readline-6.3-patches/readline63-006 b/source/l/readline/readline-6.3-patches/readline63-006
new file mode 100644
index 000000000..a3f09304a
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-006
@@ -0,0 +1,63 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-006
+
+Bug-Reported-by: <Trond.Endrestol@ximalas.info>
+Bug-Reference-ID: <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
+
+Bug-Description:
+
+Using reverse-i-search when horizontal scrolling is enabled does not redisplay
+the entire line containing the successful search results.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/display.c 2014-04-08 18:19:36.000000000 -0400
+--- display.c 2014-04-20 18:32:52.000000000 -0400
+***************
+*** 1638,1642 ****
+ the spot of first difference is before the end of the invisible chars,
+ lendiff needs to be adjusted. */
+! if (current_line == 0 && !_rl_horizontal_scroll_mode &&
+ current_invis_chars != visible_wrap_offset)
+ {
+--- 1638,1642 ----
+ the spot of first difference is before the end of the invisible chars,
+ lendiff needs to be adjusted. */
+! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
+ current_invis_chars != visible_wrap_offset)
+ {
+***************
+*** 1826,1831 ****
+ _rl_last_c_pos += bytes_to_insert;
+
+ if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+! goto clear_rest_of_line;
+ }
+ }
+--- 1826,1836 ----
+ _rl_last_c_pos += bytes_to_insert;
+
++ /* XXX - we only want to do this if we are at the end of the line
++ so we move there with _rl_move_cursor_relative */
+ if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
+! {
+! _rl_move_cursor_relative (ne-new, new);
+! goto clear_rest_of_line;
+! }
+ }
+ }
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 5
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 6
diff --git a/source/l/readline/readline-6.3-patches/readline63-007 b/source/l/readline/readline-6.3-patches/readline63-007
new file mode 100644
index 000000000..1b657924d
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-007
@@ -0,0 +1,47 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-007
+
+Bug-Reported-by: John Lenton
+Bug-Reference-ID:
+Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
+
+Bug-Description:
+
+Readline should allow SIGALRM and SIGVTALRM (if available) to `interrupt'
+rl_getc and cause the handler to run when not in a signal handling context.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/input.c 2014-01-10 15:07:08.000000000 -0500
+--- input.c 2014-05-30 16:20:56.000000000 -0400
+***************
+*** 535,540 ****
+--- 538,551 ----
+ else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
+ return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
++ /* keyboard-generated signals of interest */
+ else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT)
+ RL_CHECK_SIGNALS ();
++ /* non-keyboard-generated signals of interest */
++ else if (_rl_caught_signal == SIGALRM
++ #if defined (SIGVTALRM)
++ || _rl_caught_signal == SIGVTALRM
++ #endif
++ )
++ RL_CHECK_SIGNALS ();
+
+ if (rl_signal_event_hook)
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 6
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 7
diff --git a/source/l/readline/readline-6.3-patches/readline63-008 b/source/l/readline/readline-6.3-patches/readline63-008
new file mode 100644
index 000000000..691016f75
--- /dev/null
+++ b/source/l/readline/readline-6.3-patches/readline63-008
@@ -0,0 +1,47 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 6.3
+Patch-ID: readline63-008
+
+Bug-Reported-by: Jared Yanovich <slovichon@gmail.com>
+Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html
+
+Bug-Description:
+
+When the readline `revert-all-at-newline' option is set, pressing newline
+when the current line is one retrieved from history results in a double free
+and a segmentation fault.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.3-patched/misc.c 2012-09-01 18:03:11.000000000 -0400
+--- misc.c 2014-06-30 13:41:19.000000000 -0400
+***************
+*** 462,465 ****
+--- 462,466 ----
+ /* Set up rl_line_buffer and other variables from history entry */
+ rl_replace_from_history (entry, 0); /* entry->line is now current */
++ entry->data = 0; /* entry->data is now current undo list */
+ /* Undo all changes to this history entry */
+ while (rl_undo_list)
+***************
+*** 469,473 ****
+ FREE (entry->line);
+ entry->line = savestring (rl_line_buffer);
+- entry->data = 0;
+ }
+ entry = previous_history ();
+--- 470,473 ----
+*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 7
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 8
diff --git a/source/l/readline/readline.SlackBuild b/source/l/readline/readline.SlackBuild
index 3fbae0b13..169b42061 100755
--- a/source/l/readline/readline.SlackBuild
+++ b/source/l/readline/readline.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,25 +21,28 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=5.2
-BUILD=${BUILD:-4}
+PKGNAM=readline
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-readline
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -65,6 +68,7 @@ find . \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+
for file in $CWD/readline-*-patches/readline*-??? ; do
cat $file | patch -p0 --verbose || exit 1
done
@@ -73,20 +77,34 @@ CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
--infodir=/usr/info \
+ --docdir=/usr/doc/readline-$VERSION \
--with-curses \
--enable-multibyte \
- --build=$ARCH-slackware-linux-gnu
+ --disable-static \
+ --build=$ARCH-slackware-linux-gnu || exit 1
-make -j4 static shared || exit 1
-make install DESTDIR=$PKG
+make $NUMJOBS static shared || make static shared || exit 1
+make install DESTDIR=$PKG || exit 1
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-rm $PKG/usr/info/dir
-gzip -9 $PKG/usr/man/man3/*
-gzip -9 $PKG/usr/info/*
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/lib*.so.*
diff --git a/source/l/sbc/sbc.SlackBuild b/source/l/sbc/sbc.SlackBuild
new file mode 100755
index 000000000..bf5a0e874
--- /dev/null
+++ b/source/l/sbc/sbc.SlackBuild
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Slackware build script for sbc
+
+# Copyright 2015 Robby Workman, Tuscaloosa, Alabama, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=sbc
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$ARCH-slackware-linux \
+ --disable-static \
+ --disable-tester || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* NEWS README* TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/sbc/slack-desc b/source/l/sbc/slack-desc
new file mode 100644
index 000000000..6651f38ec
--- /dev/null
+++ b/source/l/sbc/slack-desc
@@ -0,0 +1,20 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+sbc: sbc (Sub Band Codec for bluetooth audio output)
+sbc:
+sbc: SBC (Sub Band Codec) is a low-complexity audio codec used in the
+sbc: Advanced Audio Distribution Profile (A2DP) bluetooth standard, but can
+sbc: also be used standalone. It uses 4 or 8 subbands, an adaptive bit
+sbc: allocation algorithm, and adaptive block PCM quantizers.
+sbc:
+sbc: Homepage: http://www.kernel.org/pub/linux/bluetooth
+sbc:
+sbc:
+sbc:
+
diff --git a/source/l/sdl/SDL_ttf.shaded.text.diff b/source/l/sdl/SDL_ttf.shaded.text.diff
new file mode 100644
index 000000000..549a60a48
--- /dev/null
+++ b/source/l/sdl/SDL_ttf.shaded.text.diff
@@ -0,0 +1,11 @@
+--- ./SDL_ttf.c.orig 2012-01-14 22:44:08.000000000 -0600
++++ ./SDL_ttf.c 2016-06-08 11:59:50.163770281 -0500
+@@ -1747,7 +1747,7 @@
+ /* Copy the character from the pixmap */
+ src = glyph->pixmap.buffer;
+ dst = (Uint8*) textbuf->pixels;
+- for ( row = 0; row < glyph->bitmap.rows; ++row ) {
++ for ( row = 0; row < glyph->pixmap.rows; ++row ) {
+ memcpy( dst, src, glyph->pixmap.width );
+ src += glyph->pixmap.pitch;
+ dst += textbuf->pitch;
diff --git a/source/l/sdl/sdl.SlackBuild b/source/l/sdl/sdl.SlackBuild
index 70c203a27..80466266f 100755
--- a/source/l/sdl/sdl.SlackBuild
+++ b/source/l/sdl/sdl.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2013, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,12 +26,12 @@ MIXER=${MIXER:-$(echo SDL_mixer-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d -
NET=${NET:-$(echo SDL_net-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
TTF=${TTF:-$(echo SDL_ttf-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,8 +40,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -219,6 +219,7 @@ tar xf $CWD/SDL_ttf-$TTF.tar.?z* || exit 1
cd SDL_ttf-$TTF
#zcat $CWD/SDL_ttf-2.0.8-noftinternals.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/SDL_ttf.shaded.text.diff.gz | patch -p1 --verbose || exit 1
chown -R root:root .
find . \
diff --git a/source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild b/source/l/serf/serf.SlackBuild
index 55753c2c9..2d6f533f0 100755
--- a/source/l/qca-cyrus-sasl/qca-cyrus-sasl.SlackBuild
+++ b/source/l/serf/serf.SlackBuild
@@ -1,6 +1,9 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Slackware build script for serf
+
+# Copyright 2014 Andrzej Telszewski, Sabadell
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -9,7 +12,7 @@
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
@@ -20,30 +23,28 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Modified by Robby Workman <rworkman@slackware.com> for qca-cyrus-sasl-2.0.0
-# No additional license terms and no copyright claim
-
-
-PKGNAM=qca-cyrus-sasl
-VERSION=2.0.0_beta3
+PKGNAM=serf
+VERSION=${VERSION:-$(echo serf-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
+NUMJOBS=${NUMJOBS:--j6}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-${PKGNAM}
+PKG=$TMP/package-serf
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -59,9 +60,9 @@ fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PKGNAM-$(echo $VERSION | tr _ -)
-tar xvf $CWD/$PKGNAM-$(echo $VERSION | tr _ -).tar.bz2 || exit 1
-cd $PKGNAM-$(echo $VERSION | tr _ -) || exit 1
+rm -rf serf-$VERSION
+tar xvf $CWD/serf-$VERSION.tar.?z* || exit 1
+cd serf-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -69,24 +70,27 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure
+# Disable build and install static library
+# Thanks to LFS
+# http://www.linuxfromscratch.org/blfs/view/svn/basicnet/serf.html
+sed -i "/Default/s:lib_static,::" SConstruct
+sed -i "/Alias/s:install_static,::" SConstruct
+
+scons $NUMJOBS \
+ PREFIX=/usr \
+ LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ CFLAGS="$SLKCFLAGS" || exit 1
-make \
- CFLAGS="$SLKCFLAGS" \
- CXXFLAGS="$SLKCFLAGS"
-make install INSTALL_ROOT=$PKG
+scons $NUMJOBS install --install-sandbox=$PKG || exit 1
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-mkdir -p $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _)
-cp -a COPYING* README* $PKG/usr/doc/$PKGNAM-$(echo $VERSION | tr - _)
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a CHANGES design-guide.txt LICENSE NOTICE README $PKG/usr/doc/$PKGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz
-
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/serf/slack-desc b/source/l/serf/slack-desc
new file mode 100644
index 000000000..add9fb4ed
--- /dev/null
+++ b/source/l/serf/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+serf: serf (high-performance asynchronous HTTP client library)
+serf:
+serf: The serf library is a high performance C-based HTTP client library
+serf: built upon the Apache Portable Runtime (APR) library. Key features:
+serf: * multiplexed, asynchronous connections,
+serf: * SSL/TLS support, full HTTP pipelining,
+serf: * multiple authentication modes (Basic, Digest, Kerberos/NTLM),
+serf: * zero-copy support for increased throughput.
+serf:
+serf: Homepage: http://serf.apache.org/
+serf:
diff --git a/source/l/sg3_utils/sg3_utils.SlackBuild b/source/l/sg3_utils/sg3_utils.SlackBuild
index 935f6f8c9..9a128d966 100755
--- a/source/l/sg3_utils/sg3_utils.SlackBuild
+++ b/source/l/sg3_utils/sg3_utils.SlackBuild
@@ -33,7 +33,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -41,8 +41,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/shared-desktop-ontologies/slack-desc b/source/l/shared-desktop-ontologies/slack-desc
index 70ccf7ff9..18412ab50 100644
--- a/source/l/shared-desktop-ontologies/slack-desc
+++ b/source/l/shared-desktop-ontologies/slack-desc
@@ -13,7 +13,7 @@ shared-desktop-ontologies: the desktop in terms of vocabulary. It contains the w
shared-desktop-ontologies: ontologies such as RDF and RDFS as well as the Nepomuk ontologies
shared-desktop-ontologies: which are used by projects like KDE or Strigi.
shared-desktop-ontologies:
-shared-desktop-ontologies: Homepage: http://sourceforge.net/projects/oscaf
+shared-desktop-ontologies: Homepage: http://oscaf.sourceforge.net
shared-desktop-ontologies:
shared-desktop-ontologies:
shared-desktop-ontologies:
diff --git a/source/l/shared-mime-info/shared-mime-info.SlackBuild b/source/l/shared-mime-info/shared-mime-info.SlackBuild
index ed72d9baa..91ff05a0a 100755
--- a/source/l/shared-mime-info/shared-mime-info.SlackBuild
+++ b/source/l/shared-mime-info/shared-mime-info.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2012, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,22 +23,22 @@
PKGNAM=shared-mime-info
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -62,6 +62,11 @@ cd $TMP
rm -rf ${PKGNAM}-$VERSION
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1
+
+# Don't use fdatasync() unless you want it to take 1000x longer
+# to update the mime database. Seriously.
+export ac_cv_func_fdatasync=no
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
diff --git a/source/l/shared-mime-info/slack-desc b/source/l/shared-mime-info/slack-desc
index f778b406b..deea912c6 100644
--- a/source/l/shared-mime-info/slack-desc
+++ b/source/l/shared-mime-info/slack-desc
@@ -10,10 +10,10 @@ shared-mime-info: shared-mime-info (MIME database)
shared-mime-info:
shared-mime-info: This package contains:
shared-mime-info:
-shared-mime-info: The freedesktop.org shared MIME database spec.
-shared-mime-info: The merged GNOME and KDE databases, in the new format.
-shared-mime-info: The update-mime-database command, used to install new MIME data.
+shared-mime-info: The freedesktop.org shared MIME database spec.
+shared-mime-info: The merged GNOME and KDE databases, in the new format.
+shared-mime-info: The update-mime-database command, used to install new MIME data.
+shared-mime-info:
+shared-mime-info: Homepage: https://freedesktop.org/wiki/Software/shared-mime-info/
shared-mime-info:
-shared-mime-info: See http://www.freedesktop.org/standards/shared-mime-info.html for
-shared-mime-info: more information.
shared-mime-info:
diff --git a/source/l/sip/sip.SlackBuild b/source/l/sip/sip.SlackBuild
index 75493d31e..b75290cc9 100755
--- a/source/l/sip/sip.SlackBuild
+++ b/source/l/sip/sip.SlackBuild
@@ -35,7 +35,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -43,8 +43,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
@@ -90,10 +90,18 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" \
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- LICENSE COPYING* NEWS README TODO doc/* \
+ LICENSE* COPYING* ChangeLog NEWS README TODO doc/* \
$PKG/usr/doc/$PKGNAM-$VERSION
chown -R root:root $PKG/usr/doc
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/sip/sip.info b/source/l/sip/sip.info
deleted file mode 100644
index 034776a0b..000000000
--- a/source/l/sip/sip.info
+++ /dev/null
@@ -1,2 +0,0 @@
-HOMEPAGE="http://www.riverbankcomputing.co.uk/software/sip/"
-DOWNLOAD="http://www.riverbankcomputing.co.uk/static/Downloads/sip4/sip-4.8.2.tar.gz"
diff --git a/source/l/slang/slang.SlackBuild b/source/l/slang/slang.SlackBuild
index a9fbd4bb9..caaa320df 100755
--- a/source/l/slang/slang.SlackBuild
+++ b/source/l/slang/slang.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2013, 2015 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-2.2.4}
-#DOCV=${DOCV:-2.2.4}
-BUILD=${BUILD:-3}
+PKGNAM=slang
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/speexdsp/slack-desc b/source/l/speexdsp/slack-desc
new file mode 100644
index 000000000..1726421e0
--- /dev/null
+++ b/source/l/speexdsp/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+speexdsp: SpeexDSP (DSP library)
+speexdsp:
+speexdsp: SpeexDSP is a patent-free, Open Source/Free Software DSP library.
+speexdsp:
+speexdsp: Homepage: http://www.speex.org/
+speexdsp:
+speexdsp:
+speexdsp:
+speexdsp:
+speexdsp:
+speexdsp:
diff --git a/source/l/speexdsp/speexdsp.SlackBuild b/source/l/speexdsp/speexdsp.SlackBuild
new file mode 100755
index 000000000..24cec20d7
--- /dev/null
+++ b/source/l/speexdsp/speexdsp.SlackBuild
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+# Copyright 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=speexdsp
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-static=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cp -a \
+ COPYING* README* TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/strigi/libstreamanalyzer-0001-Fix-for-non-valid-values-in-Exif-field-ISOSpeedRatin.patch b/source/l/strigi/libstreamanalyzer-0001-Fix-for-non-valid-values-in-Exif-field-ISOSpeedRatin.patch
new file mode 100644
index 000000000..45201c8a7
--- /dev/null
+++ b/source/l/strigi/libstreamanalyzer-0001-Fix-for-non-valid-values-in-Exif-field-ISOSpeedRatin.patch
@@ -0,0 +1,30 @@
+From b6dc8d4c14135c2fddb1143106d90cbb3acf94b7 Mon Sep 17 00:00:00 2001
+From: Jos van den Oever <jos@vandenoever.info>
+Date: Thu, 7 Feb 2013 06:11:22 +0100
+Subject: [PATCH 1/5] Fix for non valid values in Exif field ISOSpeedRatings
+ reported in bug https://bugs.kde.org/show_bug.cgi?id=304439
+
+BUG: 304439
+---
+ plugins/endplugins/jpegendanalyzer.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/plugins/endplugins/jpegendanalyzer.cpp b/plugins/endplugins/jpegendanalyzer.cpp
+index 78ed36a..02b095b 100644
+--- a/plugins/endplugins/jpegendanalyzer.cpp
++++ b/plugins/endplugins/jpegendanalyzer.cpp
+@@ -322,6 +322,11 @@ JpegEndAnalyzer::analyze(AnalysisResult& ar, ::InputStream* in) {
+ ar.addValue(factory->exifFields.find("Exif.Image.DateTime")->second, uint32_t(mktime(&date)));
+ }
+ }
++ else if (i->key() == "Exif.Photo.ISOSpeedRatings") {
++ stringstream st;
++ st << i->toLong();
++ ar.addValue(factory->exifFields.find("Exif.Photo.ISOSpeedRatings")->second, st.str());
++ }
+ else if (i->key() != "Exif.Photo.PixelXDimension" && i->key() != "Exif.Photo.PixelYDimension") {
+ map<string,const RegisteredField*>::const_iterator f
+ = factory->exifFields.find(i->key());
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreamanalyzer-0002-order-matters-for-systems-that-have-things-already-i.patch b/source/l/strigi/libstreamanalyzer-0002-order-matters-for-systems-that-have-things-already-i.patch
new file mode 100644
index 000000000..c940f6cf3
--- /dev/null
+++ b/source/l/strigi/libstreamanalyzer-0002-order-matters-for-systems-that-have-things-already-i.patch
@@ -0,0 +1,33 @@
+From 22d1b9923a61e0f890a39c80f661aeffaaeb2cb5 Mon Sep 17 00:00:00 2001
+From: Aaron Seigo <aseigo@kde.org>
+Date: Wed, 13 Feb 2013 17:29:52 +0100
+Subject: [PATCH 2/5] order matters for systems that have things already
+ installed
+
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7819ddf..6dee36b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -119,13 +119,13 @@ configure_file(${libstreamanalyzer_SOURCE_DIR}/strigi_thread.h.cmake
+ ${libstreamanalyzer_BINARY_DIR}/include/strigi/strigi_thread.h)
+
+ # every directory needs the headers that will be installed
+-include_directories(${LIBSTREAMS_INCLUDE_DIRS}
+- ${libstreamanalyzer_SOURCE_DIR}/include
++include_directories(${libstreamanalyzer_SOURCE_DIR}/include
+ ${libstreamanalyzer_SOURCE_DIR}/include/strigi
+ ${libstreamanalyzer_BINARY_DIR}/include
+ ${libstreamanalyzer_BINARY_DIR}/include/strigi
+ ${libstreamanalyzer_SOURCE_DIR}/lib
+ ${libstreamanalyzer_BINARY_DIR}/lib
++ ${LIBSTREAMS_INCLUDE_DIRS}
+ ${ICONV_INCLUDE_DIR}
+ ${LIBSTREAMS_LIBRARY_DIRS}
+ ${EXIV2_INCLUDEDIR}
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreamanalyzer-0003-Fix-Krazy-issues.patch b/source/l/strigi/libstreamanalyzer-0003-Fix-Krazy-issues.patch
new file mode 100644
index 000000000..fab488321
--- /dev/null
+++ b/source/l/strigi/libstreamanalyzer-0003-Fix-Krazy-issues.patch
@@ -0,0 +1,1266 @@
+From 8af24118fec3a0effee3a01ad37f4c4daddfe700 Mon Sep 17 00:00:00 2001
+From: Jos van den Oever <jos@vandenoever.info>
+Date: Fri, 12 Jul 2013 15:15:18 +0200
+Subject: [PATCH 3/5] Fix Krazy issues.
+
+---
+ .krazy | 2 +
+ cmake/FindCLucene.cmake | 18 ++++++++
+ cmake/FindCLucene1.cmake | 18 ++++++++
+ cmake/FindExiv2.cmake | 2 +-
+ cmake/FindFFmpeg.cmake | 2 +-
+ cmake/FindIconv.cmake | 19 ++++++++
+ cmake/FindXAttr.cmake | 19 ++++++++
+ include/strigi/classproperties.h | 4 +-
+ include/strigi/fieldproperties.h | 4 +-
+ include/strigi/fieldtypes.h | 4 +-
+ include/strigi/filelister.h | 4 +-
+ include/strigi/streamanalyzer.h | 2 +-
+ include/strigi/variant.h | 14 +++---
+ lib/endanalyzers/arendanalyzer.h | 2 +-
+ lib/endanalyzers/bmpendanalyzer.h | 2 +-
+ lib/endanalyzers/bz2endanalyzer.h | 2 +-
+ lib/endanalyzers/flacendanalyzer.h | 2 +-
+ lib/endanalyzers/gzipendanalyzer.h | 2 +-
+ lib/endanalyzers/id3endanalyzer.cpp | 6 +--
+ lib/endanalyzers/id3endanalyzer.h | 2 +-
+ lib/endanalyzers/lzmaendanalyzer.h | 2 +-
+ lib/endanalyzers/mailendanalyzer.h | 2 +-
+ lib/endanalyzers/mpegendanalyzer.h | 2 +-
+ lib/endanalyzers/odfendanalyzer.h | 2 +-
+ lib/endanalyzers/oleendanalyzer.h | 2 +-
+ lib/endanalyzers/pdfendanalyzer.h | 2 +-
+ lib/endanalyzers/pngendanalyzer.h | 2 +-
+ lib/endanalyzers/rpmendanalyzer.h | 2 +-
+ lib/endanalyzers/sdfendanalyzer.h | 2 +-
+ lib/endanalyzers/tarendanalyzer.h | 2 +-
+ lib/endanalyzers/zipendanalyzer.h | 2 +-
+ lib/eventanalyzers/mimeeventanalyzer.h | 2 +-
+ lib/eventthroughanalyzer.h | 2 +-
+ lib/fieldpropertiesdb.cpp | 20 ++++----
+ lib/helperanalyzers/odfcontenthelperanalyzer.cpp | 1 -
+ lib/helperanalyzers/odfmetahelperanalyzer.cpp | 1 -
+ lib/libstreamanalyzer.pc.cmake | 19 ++++++++
+ lib/lineanalyzers/m3ustreamanalyzer.h | 2 +-
+ lib/lineanalyzers/odfmimetypelineanalyzer.h | 2 +-
+ lib/lineeventanalyzer.h | 2 +-
+ lib/logging.h | 2 +-
+ lib/rdfnamespaces.h | 4 +-
+ lib/saxeventanalyzer.h | 2 +-
+ lib/throughanalyzers/oggthroughanalyzer.h | 2 +-
+ lib/xmlparser/xmlstream.h | 4 +-
+ plugins/endplugins/ffmpegendanalyzer.cpp | 6 +--
+ plugins/eventplugins/SHA1.h | 6 +--
+ .../indexers/cluceneindexer/cluceneindexreader.cpp | 4 +-
+ .../indexers/cluceneindexer/cluceneindexwriter.cpp | 54 +---------------------
+ .../cluceneindexer/jsgzipcompressstream.cpp | 2 +-
+ .../indexers/cluceneindexer/tests/CLuceneTest.cpp | 19 ++++++++
+ plugins/indexers/cluceneindexer/timeofday.h | 39 ++++++++--------
+ .../clucenengindexer/cluceneindexreader.cpp | 8 ++--
+ .../clucenengindexer/cluceneindexwriter.cpp | 4 +-
+ .../clucenengindexer/indexdump/indexdump.cpp | 5 +-
+ .../clucenengindexer/tests/CLuceneTest.cpp | 19 ++++++++
+ plugins/indexers/clucenengindexer/timeofday.h | 39 ++++++++--------
+ plugins/lineplugins/deblineanalyzer.h | 2 +-
+ plugins/throughplugins/authroughanalyzer.h | 2 +-
+ plugins/throughplugins/dummy.cpp | 19 ++++++++
+ plugins/throughplugins/pcxthroughanalyzer.h | 2 +-
+ 61 files changed, 271 insertions(+), 176 deletions(-)
+ create mode 100644 .krazy
+
+diff --git a/.krazy b/.krazy
+new file mode 100644
+index 0000000..b0e1177
+--- /dev/null
++++ b/.krazy
+@@ -0,0 +1,2 @@
++# see http://techbase.kde.org/Development/Tutorials/Code_Checking#Controlling_Krazy_on_the_EBN for an explanation of this file
++EXCLUDE syscalls,typedefs
+diff --git a/cmake/FindCLucene.cmake b/cmake/FindCLucene.cmake
+index 906afcc..31d1557 100644
+--- a/cmake/FindCLucene.cmake
++++ b/cmake/FindCLucene.cmake
+@@ -1,3 +1,21 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2007 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
+ #
+ # This module looks for clucene (http://clucene.sf.net) support
+ # It will define the following values
+diff --git a/cmake/FindCLucene1.cmake b/cmake/FindCLucene1.cmake
+index ae431c8..d8ce7dd 100644
+--- a/cmake/FindCLucene1.cmake
++++ b/cmake/FindCLucene1.cmake
+@@ -1,3 +1,21 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2007 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
+ #
+ # This module looks for clucene (http://clucene.sf.net) support
+ # It will define the pkgconfig values with a CLUCENE1_ prefix...
+diff --git a/cmake/FindExiv2.cmake b/cmake/FindExiv2.cmake
+index 5997c98..7ddb6ac 100644
+--- a/cmake/FindExiv2.cmake
++++ b/cmake/FindExiv2.cmake
+@@ -13,7 +13,7 @@
+ # The minimum required version of Exiv2 can be specified using the
+ # standard syntax, e.g. find_package(Exiv2 0.17)
+ #
+-# For compatiblity, also the variable EXIV2_MIN_VERSION can be set to the minimum version
++# For compatibility, also the variable EXIV2_MIN_VERSION can be set to the minimum version
+ # you need before doing FIND_PACKAGE(Exiv2). The default is 0.12.
+
+ # Copyright (c) 2010, Alexander Neundorf, <neundorf@kde.org>
+diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake
+index 526be5f..4e1d50e 100644
+--- a/cmake/FindFFmpeg.cmake
++++ b/cmake/FindFFmpeg.cmake
+@@ -7,7 +7,7 @@
+ # FFMPEG_LIBRARIES - Link these to use the required ffmpeg components.
+ # FFMPEG_DEFINITIONS - Compiler switches required for using the required ffmpeg components.
+ #
+-# For each of the components it will additionaly set.
++# For each of the components it will additionally set.
+ # - AVCODEC
+ # - AVDEVICE
+ # - AVFORMAT
+diff --git a/cmake/FindIconv.cmake b/cmake/FindIconv.cmake
+index ce40ab2..fd5a3af 100644
+--- a/cmake/FindIconv.cmake
++++ b/cmake/FindIconv.cmake
+@@ -1,3 +1,22 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2006 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
++
+ # - Try to find Iconv
+ # Once done this will define
+ #
+diff --git a/cmake/FindXAttr.cmake b/cmake/FindXAttr.cmake
+index c285a46..c66884e 100644
+--- a/cmake/FindXAttr.cmake
++++ b/cmake/FindXAttr.cmake
+@@ -1,3 +1,22 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2007 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
++
+ # - Try to find the xattr header
+ # Once done this will define
+ #
+diff --git a/include/strigi/classproperties.h b/include/strigi/classproperties.h
+index 0a8d5d5..688bc6a 100644
+--- a/include/strigi/classproperties.h
++++ b/include/strigi/classproperties.h
+@@ -39,8 +39,8 @@ public:
+ };
+ ClassProperties();
+ ClassProperties(const ClassProperties&);
+- ClassProperties(const Private&);
+- ClassProperties(const std::string& key);
++ explicit ClassProperties(const Private&);
++ explicit ClassProperties(const std::string& key);
+ ~ClassProperties();
+ const ClassProperties& operator=(const ClassProperties&);
+ bool valid() const;
+diff --git a/include/strigi/fieldproperties.h b/include/strigi/fieldproperties.h
+index dc53703..f1a9f77 100644
+--- a/include/strigi/fieldproperties.h
++++ b/include/strigi/fieldproperties.h
+@@ -39,8 +39,8 @@ public:
+ };
+ FieldProperties();
+ FieldProperties(const FieldProperties&);
+- FieldProperties(const Private&);
+- FieldProperties(const std::string& key);
++ explicit FieldProperties(const Private&);
++ explicit FieldProperties(const std::string& key);
+ ~FieldProperties();
+ const FieldProperties& operator=(const FieldProperties&);
+ /**
+diff --git a/include/strigi/fieldtypes.h b/include/strigi/fieldtypes.h
+index e369ad4..8bc9669 100644
+--- a/include/strigi/fieldtypes.h
++++ b/include/strigi/fieldtypes.h
+@@ -69,7 +69,7 @@ private:
+ * @param fieldname a (unique) name for what this field represents
+ * the same name should be used in .fieldproperties files in [] brackets
+ */
+- RegisteredField(const std::string& key);
++ explicit RegisteredField(const std::string& key);
+ public:
+ /**
+ * @brief Get the key for this field.
+@@ -101,7 +101,7 @@ public:
+ * primitive type, an array or an object of some
+ * description.
+ *
+- * It is up the the caller to keep track of the type of
++ * It is up the caller to keep track of the type of
+ * the data that is pointed to. The RegisteredField does
+ * not take ownership of the data, and it the caller's
+ * responsibility to ensure that any data allocated with
+diff --git a/include/strigi/filelister.h b/include/strigi/filelister.h
+index 5fe7f3e..ab1b6ef 100644
+--- a/include/strigi/filelister.h
++++ b/include/strigi/filelister.h
+@@ -50,7 +50,7 @@ private:
+ class Private;
+ Private* p;
+ public:
+- FileLister(const Strigi::AnalyzerConfiguration* ic=0);
++ explicit FileLister(const Strigi::AnalyzerConfiguration* ic=0);
+ ~FileLister();
+
+ void startListing(const std::string& dir);
+@@ -76,7 +76,7 @@ private:
+ class Private;
+ Private* p;
+ public:
+- DirLister(const Strigi::AnalyzerConfiguration* ic=0);
++ explicit DirLister(const Strigi::AnalyzerConfiguration* ic=0);
+ ~DirLister();
+
+ void startListing(const std::string& dir);
+diff --git a/include/strigi/streamanalyzer.h b/include/strigi/streamanalyzer.h
+index 4074463..5a5ed0e 100644
+--- a/include/strigi/streamanalyzer.h
++++ b/include/strigi/streamanalyzer.h
+@@ -50,7 +50,7 @@ private:
+ StreamAnalyzerPrivate* const p;
+
+ public:
+- StreamAnalyzer(AnalyzerConfiguration& c);
++ explicit StreamAnalyzer(AnalyzerConfiguration& c);
+ ~StreamAnalyzer();
+ void setIndexWriter(IndexWriter& writer);
+ signed char indexFile(const char *filepath);
+diff --git a/include/strigi/variant.h b/include/strigi/variant.h
+index f81b604..bb2ccab 100644
+--- a/include/strigi/variant.h
++++ b/include/strigi/variant.h
+@@ -40,13 +40,13 @@ private:
+ VariantPrivate* const p;
+ public:
+ Variant();
+- Variant(bool v);
+- Variant(int32_t v);
+- Variant(uint32_t v);
+- Variant(const char* v);
+- Variant(const std::string& v);
+- Variant(const std::vector<std::string>& v);
+- Variant(const std::vector<std::vector<std::string> >& v);
++ explicit Variant(bool v);
++ explicit Variant(int32_t v);
++ explicit Variant(uint32_t v);
++ explicit Variant(const char* v);
++ explicit Variant(const std::string& v);
++ explicit Variant(const std::vector<std::string>& v);
++ explicit Variant(const std::vector<std::vector<std::string> >& v);
+ Variant(const Variant& v);
+ ~Variant();
+ Type type() const;
+diff --git a/lib/endanalyzers/arendanalyzer.h b/lib/endanalyzers/arendanalyzer.h
+index 801964d..0a12f84 100644
+--- a/lib/endanalyzers/arendanalyzer.h
++++ b/lib/endanalyzers/arendanalyzer.h
+@@ -28,7 +28,7 @@ class ArEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const ArEndAnalyzerFactory* factory;
+ public:
+- ArEndAnalyzer(const ArEndAnalyzerFactory* f)
++ explicit ArEndAnalyzer(const ArEndAnalyzerFactory* f)
+ :factory(f) {}
+
+ bool checkHeader(const char* header, int32_t headersize) const;
+diff --git a/lib/endanalyzers/bmpendanalyzer.h b/lib/endanalyzers/bmpendanalyzer.h
+index c829a5c..38e1109 100644
+--- a/lib/endanalyzers/bmpendanalyzer.h
++++ b/lib/endanalyzers/bmpendanalyzer.h
+@@ -28,7 +28,7 @@ class BmpEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const BmpEndAnalyzerFactory* factory;
+ public:
+- BmpEndAnalyzer(const BmpEndAnalyzerFactory* f) :factory(f) {}
++ explicit BmpEndAnalyzer(const BmpEndAnalyzerFactory* f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "BmpEndAnalyzer"; }
+diff --git a/lib/endanalyzers/bz2endanalyzer.h b/lib/endanalyzers/bz2endanalyzer.h
+index e88c158..e7266b2 100644
+--- a/lib/endanalyzers/bz2endanalyzer.h
++++ b/lib/endanalyzers/bz2endanalyzer.h
+@@ -28,7 +28,7 @@ class Bz2EndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const Bz2EndAnalyzerFactory* factory;
+ public:
+- Bz2EndAnalyzer(const Bz2EndAnalyzerFactory* f)
++ explicit Bz2EndAnalyzer(const Bz2EndAnalyzerFactory* f)
+ :factory(f) {}
+
+ bool checkHeader(const char* header, int32_t headersize) const;
+diff --git a/lib/endanalyzers/flacendanalyzer.h b/lib/endanalyzers/flacendanalyzer.h
+index 535940e..f1bcf1f 100644
+--- a/lib/endanalyzers/flacendanalyzer.h
++++ b/lib/endanalyzers/flacendanalyzer.h
+@@ -33,7 +33,7 @@ class FlacEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const FlacEndAnalyzerFactory* factory;
+ public:
+- FlacEndAnalyzer(const FlacEndAnalyzerFactory* f) :factory(f) {}
++ explicit FlacEndAnalyzer(const FlacEndAnalyzerFactory* f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "FlacEndAnalyzer"; }
+diff --git a/lib/endanalyzers/gzipendanalyzer.h b/lib/endanalyzers/gzipendanalyzer.h
+index 51b9008..2793721 100644
+--- a/lib/endanalyzers/gzipendanalyzer.h
++++ b/lib/endanalyzers/gzipendanalyzer.h
+@@ -28,7 +28,7 @@ class GZipEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const GZipEndAnalyzerFactory* factory;
+ public:
+- GZipEndAnalyzer(const GZipEndAnalyzerFactory* f)
++ explicit GZipEndAnalyzer(const GZipEndAnalyzerFactory* f)
+ :factory(f) {}
+
+ bool checkHeader(const char* header, int32_t headersize) const;
+diff --git a/lib/endanalyzers/id3endanalyzer.cpp b/lib/endanalyzers/id3endanalyzer.cpp
+index a453a39..c500715 100644
+--- a/lib/endanalyzers/id3endanalyzer.cpp
++++ b/lib/endanalyzers/id3endanalyzer.cpp
+@@ -342,7 +342,7 @@ ID3EndAnalyzer::checkHeader(const char* header, int32_t headersize) const {
+ const unsigned char* usbuf = (const unsigned char*)header;
+ int32_t i;
+
+- for(i=0; (header[i] == '\0') && (i<headersize); i++);
++ for(i=0; (header[i] == '\0') && (i<headersize); ++i);
+ return (headersize>=6+i)
+ && (
+ (strncmp("ID3", header+i, 3) == 0 // check that it's ID3
+@@ -411,7 +411,7 @@ class genre_number_parser {
+ parse_string(genre);
+ }
+ /**
+- * wether or not parsing was successful
++ * whether or not parsing was successful
+ */
+ operator bool() {
+ return success;
+@@ -480,7 +480,7 @@ ID3EndAnalyzer::analyze(Strigi::AnalysisResult& indexable, Strigi::InputStream*
+ string deunsyncbuf;
+ if (unsync) {
+ deunsyncbuf.reserve(size-1);
+- for(int32_t i = 0; i<size-1; i++)
++ for(int32_t i = 0; i<size-1; ++i)
+ if ( (i==0) || (p[11+i]!=0) || (p[10+i]!=0xff) )
+ deunsyncbuf.push_back(p[11+i]);
+ decoded_value = deunsyncbuf.c_str();
+diff --git a/lib/endanalyzers/id3endanalyzer.h b/lib/endanalyzers/id3endanalyzer.h
+index 293c993..337dcfd 100644
+--- a/lib/endanalyzers/id3endanalyzer.h
++++ b/lib/endanalyzers/id3endanalyzer.h
+@@ -30,7 +30,7 @@ class ID3EndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const ID3EndAnalyzerFactory* factory;
+ public:
+- ID3EndAnalyzer(const ID3EndAnalyzerFactory* f) :factory(f) {}
++ explicit ID3EndAnalyzer(const ID3EndAnalyzerFactory* f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "ID3EndAnalyzer"; }
+diff --git a/lib/endanalyzers/lzmaendanalyzer.h b/lib/endanalyzers/lzmaendanalyzer.h
+index cad65aa..7fb118a 100644
+--- a/lib/endanalyzers/lzmaendanalyzer.h
++++ b/lib/endanalyzers/lzmaendanalyzer.h
+@@ -28,7 +28,7 @@ class LzmaEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const LzmaEndAnalyzerFactory* factory;
+ public:
+- LzmaEndAnalyzer(const LzmaEndAnalyzerFactory* f)
++ explicit LzmaEndAnalyzer(const LzmaEndAnalyzerFactory* f)
+ :factory(f) {}
+
+ bool checkHeader(const char* header, int32_t headersize) const;
+diff --git a/lib/endanalyzers/mailendanalyzer.h b/lib/endanalyzers/mailendanalyzer.h
+index 4c7d391..8d77420 100644
+--- a/lib/endanalyzers/mailendanalyzer.h
++++ b/lib/endanalyzers/mailendanalyzer.h
+@@ -28,7 +28,7 @@ class MailEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const MailEndAnalyzerFactory* factory;
+ public:
+- MailEndAnalyzer(const MailEndAnalyzerFactory* f) :factory(f) {}
++ explicit MailEndAnalyzer(const MailEndAnalyzerFactory* f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "MailEndAnalyzer"; }
+diff --git a/lib/endanalyzers/mpegendanalyzer.h b/lib/endanalyzers/mpegendanalyzer.h
+index 42b65e9..1d0a2f2 100644
+--- a/lib/endanalyzers/mpegendanalyzer.h
++++ b/lib/endanalyzers/mpegendanalyzer.h
+@@ -58,7 +58,7 @@ private:
+
+
+ public:
+- MpegEndAnalyzer(const MpegEndAnalyzerFactory* f) :factory(f)
++ explicit MpegEndAnalyzer(const MpegEndAnalyzerFactory* f) :factory(f)
+ {
+ this->frame_rate_table[0] = 0.0; /* Pad */
+ //Official frame rates
+diff --git a/lib/endanalyzers/odfendanalyzer.h b/lib/endanalyzers/odfendanalyzer.h
+index f426c25..8da3137 100644
+--- a/lib/endanalyzers/odfendanalyzer.h
++++ b/lib/endanalyzers/odfendanalyzer.h
+@@ -36,7 +36,7 @@ public:
+ Strigi::OdfMetaHelperAnalyzer metaHelper;
+ Strigi::OdfContentHelperAnalyzer contentHelper;
+
+- OdfEndAnalyzer(const OdfEndAnalyzerFactory* f) :factory(f){};
++ explicit OdfEndAnalyzer(const OdfEndAnalyzerFactory* f) :factory(f){};
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "OdfEndAnalyzer"; }
+diff --git a/lib/endanalyzers/oleendanalyzer.h b/lib/endanalyzers/oleendanalyzer.h
+index df89ce4..b94bc40 100644
+--- a/lib/endanalyzers/oleendanalyzer.h
++++ b/lib/endanalyzers/oleendanalyzer.h
+@@ -64,7 +64,7 @@ private:
+ std::string getStreamString(Strigi::InputStream*) const;
+ bool tryFIB(Strigi::AnalysisResult& ar, Strigi::InputStream* in);
+ public:
+- OleEndAnalyzer(const OleEndAnalyzerFactory* const f) :factory(f) {}
++ explicit OleEndAnalyzer(const OleEndAnalyzerFactory* const f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ bool tryPropertyStream(Strigi::AnalysisResult& idx, Strigi::InputStream* s);
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+diff --git a/lib/endanalyzers/pdfendanalyzer.h b/lib/endanalyzers/pdfendanalyzer.h
+index b157bdb..c72fc71 100644
+--- a/lib/endanalyzers/pdfendanalyzer.h
++++ b/lib/endanalyzers/pdfendanalyzer.h
+@@ -40,7 +40,7 @@ private:
+ Strigi::StreamStatus handle(Strigi::InputStream* s);
+ Strigi::StreamStatus handle(const std::string& s);
+ public:
+- PdfEndAnalyzer(const PdfEndAnalyzerFactory* f);
++ explicit PdfEndAnalyzer(const PdfEndAnalyzerFactory* f);
+ };
+
+ class PdfEndAnalyzerFactory : public Strigi::StreamEndAnalyzerFactory {
+diff --git a/lib/endanalyzers/pngendanalyzer.h b/lib/endanalyzers/pngendanalyzer.h
+index 9144758..066aaac 100644
+--- a/lib/endanalyzers/pngendanalyzer.h
++++ b/lib/endanalyzers/pngendanalyzer.h
+@@ -42,7 +42,7 @@ private:
+ signed char addMetaData(const std::string& key, Strigi::AnalysisResult& as,
+ Strigi::InputStream* in);
+ public:
+- PngEndAnalyzer(const PngEndAnalyzerFactory* f);
++ explicit PngEndAnalyzer(const PngEndAnalyzerFactory* f);
+ };
+
+ class PngEndAnalyzerFactory : public Strigi::StreamEndAnalyzerFactory {
+diff --git a/lib/endanalyzers/rpmendanalyzer.h b/lib/endanalyzers/rpmendanalyzer.h
+index fdaf0f4..b5ccbd6 100644
+--- a/lib/endanalyzers/rpmendanalyzer.h
++++ b/lib/endanalyzers/rpmendanalyzer.h
+@@ -28,7 +28,7 @@ class RpmEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const RpmEndAnalyzerFactory* factory;
+ public:
+- RpmEndAnalyzer(const RpmEndAnalyzerFactory* f)
++ explicit RpmEndAnalyzer(const RpmEndAnalyzerFactory* f)
+ :factory(f) {}
+
+ bool checkHeader(const char* header, int32_t headersize) const;
+diff --git a/lib/endanalyzers/sdfendanalyzer.h b/lib/endanalyzers/sdfendanalyzer.h
+index f6ab67f..56b1d77 100644
+--- a/lib/endanalyzers/sdfendanalyzer.h
++++ b/lib/endanalyzers/sdfendanalyzer.h
+@@ -29,7 +29,7 @@ class SdfEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const SdfEndAnalyzerFactory* factory;
+ public:
+- SdfEndAnalyzer(const SdfEndAnalyzerFactory* f) :factory(f) {}
++ explicit SdfEndAnalyzer(const SdfEndAnalyzerFactory* f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "SdfEndAnalyzer"; }
+diff --git a/lib/endanalyzers/tarendanalyzer.h b/lib/endanalyzers/tarendanalyzer.h
+index 875d560..28bedf0 100644
+--- a/lib/endanalyzers/tarendanalyzer.h
++++ b/lib/endanalyzers/tarendanalyzer.h
+@@ -28,7 +28,7 @@ class TarEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ private:
+ const TarEndAnalyzerFactory* factory;
+ public:
+- TarEndAnalyzer(const TarEndAnalyzerFactory* f)
++ explicit TarEndAnalyzer(const TarEndAnalyzerFactory* f)
+ :factory(f) {}
+
+ bool checkHeader(const char* header, int32_t headersize) const;
+diff --git a/lib/endanalyzers/zipendanalyzer.h b/lib/endanalyzers/zipendanalyzer.h
+index 3d87217..653645d 100644
+--- a/lib/endanalyzers/zipendanalyzer.h
++++ b/lib/endanalyzers/zipendanalyzer.h
+@@ -28,7 +28,7 @@ class ZipEndAnalyzer : public Strigi::StreamEndAnalyzer {
+ public:
+ const ZipEndAnalyzerFactory* const factory;
+
+- ZipEndAnalyzer(const ZipEndAnalyzerFactory* f) :factory(f) {}
++ explicit ZipEndAnalyzer(const ZipEndAnalyzerFactory* f) :factory(f) {}
+ bool checkHeader(const char* header, int32_t headersize) const;
+ signed char analyze(Strigi::AnalysisResult& idx, Strigi::InputStream* in);
+ const char* name() const { return "ZipEndAnalyzer"; }
+diff --git a/lib/eventanalyzers/mimeeventanalyzer.h b/lib/eventanalyzers/mimeeventanalyzer.h
+index d0d2506..fd28b7b 100644
+--- a/lib/eventanalyzers/mimeeventanalyzer.h
++++ b/lib/eventanalyzers/mimeeventanalyzer.h
+@@ -39,7 +39,7 @@ private:
+ void handleData(const char* data, uint32_t length);
+ bool isReadyWithStream();
+ public:
+- MimeEventAnalyzer(const MimeEventAnalyzerFactory*);
++ explicit MimeEventAnalyzer(const MimeEventAnalyzerFactory*);
+ ~MimeEventAnalyzer();
+ };
+
+diff --git a/lib/eventthroughanalyzer.h b/lib/eventthroughanalyzer.h
+index 1b45312..b866402 100644
+--- a/lib/eventthroughanalyzer.h
++++ b/lib/eventthroughanalyzer.h
+@@ -50,7 +50,7 @@ private:
+ void handleEnd();
+ const char* name() const { return "EventThroughAnalyzer"; }
+ public:
+- EventThroughAnalyzer(std::vector<StreamEventAnalyzer*>& e)
++ explicit EventThroughAnalyzer(std::vector<StreamEventAnalyzer*>& e)
+ : event(e), datastream(0), result(0), ready(true){}
+ ~EventThroughAnalyzer();
+ };
+diff --git a/lib/fieldpropertiesdb.cpp b/lib/fieldpropertiesdb.cpp
+index 79264ce..07d5204 100644
+--- a/lib/fieldpropertiesdb.cpp
++++ b/lib/fieldpropertiesdb.cpp
+@@ -291,30 +291,30 @@ FieldPropertiesDb::Private::addEssentialProperties() {
+
+ props.typeuri = FieldRegister::datetimeType;
+ props.uri = FieldRegister::mtimeFieldName;
+- properties[FieldRegister::mtimeFieldName] = props;
++ properties[FieldRegister::mtimeFieldName] = FieldProperties(props);
+
+ props.typeuri = FieldRegister::integerType;
+ props.uri = FieldRegister::sizeFieldName;
+- properties[FieldRegister::sizeFieldName] = props;
++ properties[FieldRegister::sizeFieldName] = FieldProperties(props);
+
+ props.uri = FieldRegister::embeddepthFieldName;
+- properties[FieldRegister::embeddepthFieldName] = props;
++ properties[FieldRegister::embeddepthFieldName] = FieldProperties(props);
+
+ props.typeuri = FieldRegister::stringType;
+ props.uri = FieldRegister::pathFieldName;
+ props.tokenized = false; // should not be tokenized: needed for retrieval
+- properties[FieldRegister::pathFieldName] = props;
++ properties[FieldRegister::pathFieldName] = FieldProperties(props);
+
+ props.uri = FieldRegister::filenameFieldName;
+ props.tokenized = true;
+- properties[FieldRegister::filenameFieldName] = props;
++ properties[FieldRegister::filenameFieldName] = FieldProperties(props);
+
+ props.uri = FieldRegister::mimetypeFieldName;
+- properties[FieldRegister::mimetypeFieldName] = props;
++ properties[FieldRegister::mimetypeFieldName] = FieldProperties(props);
+
+ props.uri = FieldRegister::parentLocationFieldName;
+ props.tokenized = false; // should not be tokenized: needed for retrieval
+- properties[FieldRegister::parentLocationFieldName] = props;
++ properties[FieldRegister::parentLocationFieldName] = FieldProperties(props);
+ }
+ void
+ FieldPropertiesDb::Private::loadProperties(const string& dir) {
+@@ -751,7 +751,7 @@ FieldPropertiesDb::Private::endElementNsSAX2Func(void *ctx,
+ void
+ FieldPropertiesDb::Private::storeProperties(FieldProperties::Private& p) {
+ if (p.uri.size()) {
+- properties[p.uri] = p;
++ properties[p.uri] = FieldProperties(p);
+ }
+ p.clear();
+ }
+@@ -773,14 +773,14 @@ FieldPropertiesDb::addField(const std::string& key, const std::string& type,
+ if (parent.size()) {
+ props.parentUris.push_back(parent);
+ }
+- p->properties[key] = props;
++ p->properties[key] = FieldProperties(props);
+ }
+ void
+ FieldPropertiesDb::addField(const std::string& key) {
+ FieldProperties::Private props;
+ props.uri = key;
+ props.typeuri = FieldRegister::stringType;
+- p->properties[key] = props;
++ p->properties[key] = FieldProperties(props);
+ }
+ void
+ FieldProperties::Private::clear() {
+diff --git a/lib/helperanalyzers/odfcontenthelperanalyzer.cpp b/lib/helperanalyzers/odfcontenthelperanalyzer.cpp
+index d2a0a72..df3352a 100644
+--- a/lib/helperanalyzers/odfcontenthelperanalyzer.cpp
++++ b/lib/helperanalyzers/odfcontenthelperanalyzer.cpp
+@@ -25,7 +25,6 @@
+ #include <cstring>
+ #include <string>
+
+-#include <strigi/analysisresult.h>
+ #include <strigi/fieldtypes.h>
+ #include "../rdfnamespaces.h"
+
+diff --git a/lib/helperanalyzers/odfmetahelperanalyzer.cpp b/lib/helperanalyzers/odfmetahelperanalyzer.cpp
+index 3409707..6b53be0 100644
+--- a/lib/helperanalyzers/odfmetahelperanalyzer.cpp
++++ b/lib/helperanalyzers/odfmetahelperanalyzer.cpp
+@@ -27,7 +27,6 @@
+ #include <string>
+ #include <iostream>
+
+-#include <strigi/analysisresult.h>
+ #include <strigi/fieldtypes.h>
+ #include "../rdfnamespaces.h"
+
+diff --git a/lib/libstreamanalyzer.pc.cmake b/lib/libstreamanalyzer.pc.cmake
+index bd13339..38c0ccb 100644
+--- a/lib/libstreamanalyzer.pc.cmake
++++ b/lib/libstreamanalyzer.pc.cmake
+@@ -1,3 +1,22 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2007 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
++
+ prefix=${CMAKE_INSTALL_PREFIX}
+ exec_prefix=${CMAKE_INSTALL_PREFIX}/bin
+ libdir=${LIB_DESTINATION}
+diff --git a/lib/lineanalyzers/m3ustreamanalyzer.h b/lib/lineanalyzers/m3ustreamanalyzer.h
+index 9033f14..d3fe71d 100644
+--- a/lib/lineanalyzers/m3ustreamanalyzer.h
++++ b/lib/lineanalyzers/m3ustreamanalyzer.h
+@@ -42,7 +42,7 @@ private:
+ std::string constructAbsolutePath(const std::string& relative) const;
+
+ public:
+- M3uLineAnalyzer(const M3uLineAnalyzerFactory* f) : factory(f) {}
++ explicit M3uLineAnalyzer(const M3uLineAnalyzerFactory* f) : factory(f) {}
+ ~M3uLineAnalyzer() {}
+
+ const char* name() const {
+diff --git a/lib/lineanalyzers/odfmimetypelineanalyzer.h b/lib/lineanalyzers/odfmimetypelineanalyzer.h
+index c53aa19..0bb81aa 100644
+--- a/lib/lineanalyzers/odfmimetypelineanalyzer.h
++++ b/lib/lineanalyzers/odfmimetypelineanalyzer.h
+@@ -40,7 +40,7 @@ public:
+
+ class OdfMimeTypeLineAnalyzer : public Strigi::StreamLineAnalyzer {
+ public:
+- OdfMimeTypeLineAnalyzer(const OdfMimeTypeLineAnalyzerFactory *factory);
++ explicit OdfMimeTypeLineAnalyzer(const OdfMimeTypeLineAnalyzerFactory *factory);
+
+ const char* name() const {
+ return "OdfMimeTypeLineAnalyzer";
+diff --git a/lib/lineeventanalyzer.h b/lib/lineeventanalyzer.h
+index 5c67eac..ccd9043 100644
+--- a/lib/lineeventanalyzer.h
++++ b/lib/lineeventanalyzer.h
+@@ -57,7 +57,7 @@ private:
+ void emitData(const char* data, uint32_t length);
+ void initEncoding(std::string encoding);
+ public:
+- LineEventAnalyzer(std::vector<StreamLineAnalyzer*>&s);
++ explicit LineEventAnalyzer(std::vector<StreamLineAnalyzer*>&s);
+ ~LineEventAnalyzer();
+ };
+
+diff --git a/lib/logging.h b/lib/logging.h
+index 8a42795..c9e34c6 100644
+--- a/lib/logging.h
++++ b/lib/logging.h
+@@ -44,4 +44,4 @@
+ #define slog(x) (void)
+ #endif
+
+-#endif
+\ No newline at end of file
++#endif
+diff --git a/lib/rdfnamespaces.h b/lib/rdfnamespaces.h
+index 9aad41d..aa35714 100644
+--- a/lib/rdfnamespaces.h
++++ b/lib/rdfnamespaces.h
+@@ -18,8 +18,8 @@
+ * Boston, MA 02110-1301, USA.
+ */
+
+-#ifndef RDFNAMESAPCES
+-#define RDFNAMESPACES
++#ifndef RDFNAMESPACES_H
++#define RDFNAMESPACES_H
+
+ // This is a list of the most often encountered rdf namespaces used by analyzers
+ // For internal use ONLY and should not be installed
+diff --git a/lib/saxeventanalyzer.h b/lib/saxeventanalyzer.h
+index 3bb9101..b5eec45 100644
+--- a/lib/saxeventanalyzer.h
++++ b/lib/saxeventanalyzer.h
+@@ -40,7 +40,7 @@ private:
+ void handleData(const char* data, uint32_t length);
+ bool isReadyWithStream();
+ public:
+- SaxEventAnalyzer(std::vector<StreamSaxAnalyzer*>&s);
++ explicit SaxEventAnalyzer(std::vector<StreamSaxAnalyzer*>&s);
+ ~SaxEventAnalyzer();
+ };
+
+diff --git a/lib/throughanalyzers/oggthroughanalyzer.h b/lib/throughanalyzers/oggthroughanalyzer.h
+index c28853a..c3530a1 100644
+--- a/lib/throughanalyzers/oggthroughanalyzer.h
++++ b/lib/throughanalyzers/oggthroughanalyzer.h
+@@ -35,7 +35,7 @@ private:
+ Strigi::AnalysisResult* indexable;
+ const OggThroughAnalyzerFactory* factory;
+ public:
+- OggThroughAnalyzer(const OggThroughAnalyzerFactory* f) :factory(f) {}
++ explicit OggThroughAnalyzer(const OggThroughAnalyzerFactory* f) :factory(f) {}
+ ~OggThroughAnalyzer() {}
+ void setIndexable(Strigi::AnalysisResult*);
+ Strigi::InputStream *connectInputStream(Strigi::InputStream *in);
+diff --git a/lib/xmlparser/xmlstream.h b/lib/xmlparser/xmlstream.h
+index 083e55e..6b48eb5 100644
+--- a/lib/xmlparser/xmlstream.h
++++ b/lib/xmlparser/xmlstream.h
+@@ -35,7 +35,7 @@ private:
+ class Private;
+ Private* p;
+ public:
+- XMLStream(const std::string& xml);
++ explicit XMLStream(const std::string& xml);
+ ~XMLStream();
+ void setFromAttribute(bool&, const char*);
+ void setFromAttribute(int&, const char*);
+@@ -82,7 +82,7 @@ public:
+ std::list<SimpleNode> nodes;
+ std::string text;
+
+- SimpleNode(const std::string& xml);
++ explicit SimpleNode(const std::string& xml);
+ };
+
+
+diff --git a/plugins/endplugins/ffmpegendanalyzer.cpp b/plugins/endplugins/ffmpegendanalyzer.cpp
+index 25e2a9a..f219912 100644
+--- a/plugins/endplugins/ffmpegendanalyzer.cpp
++++ b/plugins/endplugins/ffmpegendanalyzer.cpp
+@@ -377,7 +377,7 @@ FFMPEGEndAnalyzer::analyze(AnalysisResult& ar, ::InputStream* in) {
+ ar.addValue(factory->typeProperty, NFO "Video");
+ }
+
+- for(uint32_t i=0; i<fc->nb_streams; i++) {
++ for(uint32_t i=0; i<fc->nb_streams; ++i) {
+ const AVStream &stream = *fc->streams[i];
+ const AVCodecContext &codec = *stream.codec;
+
+@@ -394,9 +394,9 @@ FFMPEGEndAnalyzer::analyze(AnalysisResult& ar, ::InputStream* in) {
+ }
+
+ #if (LIBAVUTIL_VERSION_MAJOR < 51)
+- //FIXME we must stop using the deprecated fuction av_metadata_get and use
++ //FIXME we must stop using the deprecated function av_metadata_get and use
+ // av_dict_get once we are able to detect the version of FFMpeg being used
+- // using version macros. same goes for all occurences of this function.
++ // using version macros. same goes for all occurrences of this function.
+ AVMetadataTag *entry = av_metadata_get(stream.metadata, "language", NULL, 0);
+ #else
+ AVDictionaryEntry *entry = av_dict_get(stream.metadata, "language", NULL, 0);
+diff --git a/plugins/eventplugins/SHA1.h b/plugins/eventplugins/SHA1.h
+index 47c2558..d78bbfc 100644
+--- a/plugins/eventplugins/SHA1.h
++++ b/plugins/eventplugins/SHA1.h
+@@ -115,10 +115,7 @@
+ #define SHA1_WIPE_VARIABLES
+ #endif
+
+-#if defined(SHA1_HAS_TCHAR)
+-#include <tchar.h>
+-#else
+-#ifdef _MSC_VER
++#if defined(SHA1_HAS_TCHAR) || defined(_MSC_VER)
+ #include <tchar.h>
+ #else
+ #ifndef TCHAR
+@@ -136,7 +133,6 @@
+ #define _sntprintf snprintf
+ #endif
+ #endif
+-#endif
+
+ // Fallback, if no 64-bit support
+ #ifndef _fseeki64
+diff --git a/plugins/indexers/cluceneindexer/cluceneindexreader.cpp b/plugins/indexers/cluceneindexer/cluceneindexreader.cpp
+index 6e0ea36..17738b2 100644
+--- a/plugins/indexers/cluceneindexer/cluceneindexreader.cpp
++++ b/plugins/indexers/cluceneindexer/cluceneindexreader.cpp
+@@ -310,11 +310,11 @@ CLuceneIndexReader::Private::createSingleFieldQuery(const string& field,
+ q = _CLNEW TermQuery(t);
+ break;
+ case Strigi::Query::Contains:
+- t = createWildCardTerm(fieldname.c_str(), "*" + val + "*");
++ t = createWildCardTerm(fieldname.c_str(), '*' + val + '*');
+ q = _CLNEW WildcardQuery(t);
+ break;
+ case Strigi::Query::StartsWith:
+- t = createWildCardTerm(fieldname.c_str(), val + "*");
++ t = createWildCardTerm(fieldname.c_str(), val + '*');
+ q = _CLNEW WildcardQuery(t);
+ break;
+ case Strigi::Query::Equals:
+diff --git a/plugins/indexers/cluceneindexer/cluceneindexwriter.cpp b/plugins/indexers/cluceneindexer/cluceneindexwriter.cpp
+index 8658180..b340db3 100644
+--- a/plugins/indexers/cluceneindexer/cluceneindexwriter.cpp
++++ b/plugins/indexers/cluceneindexer/cluceneindexwriter.cpp
+@@ -270,7 +270,7 @@ CLuceneIndexWriter::deleteEntry(const string& entry,
+ }
+ {
+ // delete all deeper nested files
+- wstring v = utf8toucs2(entry+"/");
++ wstring v = utf8toucs2(entry + '/');
+ Term* t = _CLNEW Term(parentlocation(), v.c_str());
+ PrefixFilter* filter = _CLNEW PrefixFilter(t);
+ BitSet* b = filter->bits(reader);
+@@ -372,58 +372,6 @@ CLuceneIndexWriter::cleanUp() {
+ if (!locked) {
+ return;
+ }
+- /*
+- //this is a hack and will not work with new versions of the index..
+- //furthermore, segmentinfos is a private class.
+- lucene::index::SegmentInfos infos;
+- try {
+- //Have SegmentInfos read the segments file in directory
+- infos.read(directory);
+- } catch(...) {
+- lock->release();
+- return; //todo: this may suggest an error...
+- }
+- lock->release();
+-
+- int i;
+- set<string> segments;
+- for (i = 0; i < infos.size(); i++) {
+- lucene::index::SegmentInfo* info = infos.info(i);
+- segments.insert(info->name);
+- }
+-
+- char** files = directory->list();
+- char tmp[CL_MAX_PATH];
+- for (i = 0; files[i] != NULL; ++i) {
+- char* file = files[i];
+-
+- int fileLength = strlen(file);
+- if ( fileLength < 6 ) {
+- continue;
+- }
+-
+- if (strncmp(file,"segments", 8) == 0
+- || strncmp(file, "deletable", 9) == 0) {
+- continue;
+- }
+- if (!isLuceneFile(file)) {
+- continue;
+- }
+-
+- strcpy(tmp, file);
+- tmp[fileLength-4] = '\0';
+-
+- if (segments.find(tmp) != segments.end()) {
+- continue;
+- }
+-
+- directory->deleteFile(file, false);
+- }
+- for (i = 0; files[i] != NULL; i++) {
+- _CLDELETE_CaARRAY(files[i]);
+- }
+- _CLDELETE_ARRAY(files);
+- */
+ }
+
+ void
+diff --git a/plugins/indexers/cluceneindexer/jsgzipcompressstream.cpp b/plugins/indexers/cluceneindexer/jsgzipcompressstream.cpp
+index 2e428a2..d39505f 100644
+--- a/plugins/indexers/cluceneindexer/jsgzipcompressstream.cpp
++++ b/plugins/indexers/cluceneindexer/jsgzipcompressstream.cpp
+@@ -17,8 +17,8 @@
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+-#include <CLucene/StdHeader.h>
+ #include "jsgzipcompressstream.h"
++#include <CLucene/StdHeader.h>
+ #include <CLucene/util/jstreamsconfig.h>
+ #include <zlib.h>
+
+diff --git a/plugins/indexers/cluceneindexer/tests/CLuceneTest.cpp b/plugins/indexers/cluceneindexer/tests/CLuceneTest.cpp
+index 9b1ff75..836c653 100644
+--- a/plugins/indexers/cluceneindexer/tests/CLuceneTest.cpp
++++ b/plugins/indexers/cluceneindexer/tests/CLuceneTest.cpp
+@@ -1,3 +1,22 @@
++/* This file is part of Strigi Desktop Search
++ *
++ * Copyright (C) 2006 Jos van den Oever <jos@vandenoever.info>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public License
++ * along with this library; see the file COPYING.LIB. If not, write to
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
+ #include <strigi/strigiconfig.h>
+ #include "compat.h"
+ #include "indexpluginloader.h"
+diff --git a/plugins/indexers/cluceneindexer/timeofday.h b/plugins/indexers/cluceneindexer/timeofday.h
+index 7c8bb7e..97a8c41 100644
+--- a/plugins/indexers/cluceneindexer/timeofday.h
++++ b/plugins/indexers/cluceneindexer/timeofday.h
+@@ -1,22 +1,23 @@
+-/*
+-* Defines gettimeofday
+-*
+-* Based on timeval.h Copyright (c) by Wu Yongwei <wuyongwei@gmail.com>
+-*
+-* This library is free software; you can redistribute it and/or
+-* modify it under the terms of the GNU Lesser General Public
+-* License as published by the Free Software Foundation; either
+-* version 2.1 of the License, or (at your option) any later version.
+-*
+-* This library is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-* Lesser General Public License for more details.
+-*
+-* You should have received a copy of the GNU Lesser General Public
+-* License along with this library; if not, write to the Free Software
+-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-*/
++/**
++ * Defines gettimeofday
++ *
++ * Based on timeval.h Copyright (c) by Wu Yongwei <wuyongwei@gmail.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; see the file COPYING. If not, write to
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
+
+ #include "config.h"
+ #include <errno.h>
+diff --git a/plugins/indexers/clucenengindexer/cluceneindexreader.cpp b/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
+index 0274329..8e20847 100644
+--- a/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
++++ b/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
+@@ -476,8 +476,8 @@ CLuceneIndexReader::getDocuments(const std::vector<std::string>& fullFields,
+ doc.resize(fullFields.size());
+
+ const Document::FieldsType& fields = *d.getFields();
+- for ( Document::FieldsType::const_iterator itr = fields.begin();
+- itr != fields.end(); itr++ ) {
++ for (Document::FieldsType::const_iterator itr = fields.begin();
++ itr != fields.end(); ++itr) {
+ Field* field = *itr;
+ string name(wchartoutf8(field->name()));
+ for (uint j = 0; j < fullFields.size(); ++j) {
+@@ -546,8 +546,8 @@ CLuceneIndexReader::getHits(const Strigi::Query& q,
+ doc.resize(fields.size());
+
+ const Document::FieldsType fields = *d->getFields();
+- for ( Document::FieldsType::const_iterator itr = fields.begin();
+- itr != fields.end(); itr++ ) {
++ for (Document::FieldsType::const_iterator itr = fields.begin();
++ itr != fields.end(); ++itr) {
+ Field* field = *itr;
+
+ string name(wchartoutf8(field->name()));
+diff --git a/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp b/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp
+index 3ba6eeb..b0a9ff7 100644
+--- a/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp
++++ b/plugins/indexers/clucenengindexer/cluceneindexwriter.cpp
+@@ -229,7 +229,7 @@ CLuceneIndexWriter::deleteEntry(const string& entry, lucene::index::IndexWriter*
+ }
+ {
+ // delete all deeper nested files
+- wstring v = utf8toucs2(entry+"/");
++ wstring v = utf8toucs2(entry + '/');
+ Term* t(_CLNEW Term(parentlocation(), v.c_str()));
+ PrefixFilter* filter = _CLNEW PrefixFilter(t);
+ BitSet* b = filter->bits(reader);
+@@ -248,7 +248,7 @@ void
+ CLuceneIndexWriter::deleteAllEntries() {
+ lucene::index::IndexReader* reader = manager->checkReader();
+ if ( reader != NULL ){
+- for ( int32_t i=0;i<reader->maxDoc();i++ ){
++ for ( int32_t i=0;i<reader->maxDoc(); ++i) {
+ reader->deleteDocument(i);
+ }
+ reader->flush();
+diff --git a/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp b/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp
+index e2b4e1c..5937d3c 100644
+--- a/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp
++++ b/plugins/indexers/clucenengindexer/indexdump/indexdump.cpp
+@@ -48,9 +48,8 @@ t2a(const TCHAR* t) {
+ void
+ docdump(Document* doc) {
+ Document::FieldsType fields = doc->getFields();
+- for ( Document::FieldsType::iterator itr = fields.begin();
+- itr != fields.end();
+- itr++ ){
++ for (Document::FieldsType::iterator itr = fields.begin();
++ itr != fields.end(); ++itr) {
+ TCHAR* s = (*itr)->toString();
+ printf("%s\n", t2a(s).c_str());
+ _CLDELETE_CARRAY(s);
+diff --git a/plugins/indexers/clucenengindexer/tests/CLuceneTest.cpp b/plugins/indexers/clucenengindexer/tests/CLuceneTest.cpp
+index f5e1b7f..19d69b7 100644
+--- a/plugins/indexers/clucenengindexer/tests/CLuceneTest.cpp
++++ b/plugins/indexers/clucenengindexer/tests/CLuceneTest.cpp
+@@ -1,3 +1,22 @@
++/* This file is part of Strigi Desktop Search
++ *
++ * Copyright (C) 2006 Jos van den Oever <jos@vandenoever.info>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public License
++ * along with this library; see the file COPYING.LIB. If not, write to
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
+ #include <strigi/strigiconfig.h>
+ #include "indexpluginloader.h"
+ #include "indexmanager.h"
+diff --git a/plugins/indexers/clucenengindexer/timeofday.h b/plugins/indexers/clucenengindexer/timeofday.h
+index 7c8bb7e..97a8c41 100644
+--- a/plugins/indexers/clucenengindexer/timeofday.h
++++ b/plugins/indexers/clucenengindexer/timeofday.h
+@@ -1,22 +1,23 @@
+-/*
+-* Defines gettimeofday
+-*
+-* Based on timeval.h Copyright (c) by Wu Yongwei <wuyongwei@gmail.com>
+-*
+-* This library is free software; you can redistribute it and/or
+-* modify it under the terms of the GNU Lesser General Public
+-* License as published by the Free Software Foundation; either
+-* version 2.1 of the License, or (at your option) any later version.
+-*
+-* This library is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+-* Lesser General Public License for more details.
+-*
+-* You should have received a copy of the GNU Lesser General Public
+-* License along with this library; if not, write to the Free Software
+-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+-*/
++/**
++ * Defines gettimeofday
++ *
++ * Based on timeval.h Copyright (c) by Wu Yongwei <wuyongwei@gmail.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; see the file COPYING. If not, write to
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
+
+ #include "config.h"
+ #include <errno.h>
+diff --git a/plugins/lineplugins/deblineanalyzer.h b/plugins/lineplugins/deblineanalyzer.h
+index 25b40b0..e2b3cd9 100644
+--- a/plugins/lineplugins/deblineanalyzer.h
++++ b/plugins/lineplugins/deblineanalyzer.h
+@@ -36,7 +36,7 @@ private:
+ unsigned int finished;
+ Strigi::AnalysisResult* result;
+ public:
+- DebLineAnalyzer(const DebLineAnalyzerFactory* f) : factory(f) {}
++ explicit DebLineAnalyzer(const DebLineAnalyzerFactory* f) : factory(f) {}
+ };
+
+ class DebLineAnalyzerFactory : public Strigi::StreamLineAnalyzerFactory {
+diff --git a/plugins/throughplugins/authroughanalyzer.h b/plugins/throughplugins/authroughanalyzer.h
+index 18ae6d6..75335d1 100644
+--- a/plugins/throughplugins/authroughanalyzer.h
++++ b/plugins/throughplugins/authroughanalyzer.h
+@@ -36,7 +36,7 @@ private:
+ Strigi::AnalysisResult* analysisResult;
+ const AuThroughAnalyzerFactory* factory;
+ public:
+- AuThroughAnalyzer(const AuThroughAnalyzerFactory* f) :factory(f) {}
++ explicit AuThroughAnalyzer(const AuThroughAnalyzerFactory* f) :factory(f) {}
+ ~AuThroughAnalyzer() {}
+ void setIndexable(Strigi::AnalysisResult* i);
+ Strigi::InputStream *connectInputStream(Strigi::InputStream *in);
+diff --git a/plugins/throughplugins/dummy.cpp b/plugins/throughplugins/dummy.cpp
+index 2bfadc3..73d9ffb 100644
+--- a/plugins/throughplugins/dummy.cpp
++++ b/plugins/throughplugins/dummy.cpp
+@@ -1,3 +1,22 @@
++/* This file is part of Strigi Desktop Search
++ *
++ * Copyright (C) 2008 Sebastian Trueg<sebastian@trueg.de>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Library General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Library General Public License for more details.
++ *
++ * You should have received a copy of the GNU Library General Public License
++ * along with this library; see the file COPYING.LIB. If not, write to
++ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301, USA.
++ */
+ #include <strigi/streamthroughanalyzer.h>
+ #include <strigi/analyzerplugin.h>
+
+diff --git a/plugins/throughplugins/pcxthroughanalyzer.h b/plugins/throughplugins/pcxthroughanalyzer.h
+index a16fb5e..cde824a 100644
+--- a/plugins/throughplugins/pcxthroughanalyzer.h
++++ b/plugins/throughplugins/pcxthroughanalyzer.h
+@@ -30,7 +30,7 @@ private:
+ Strigi::AnalysisResult* indexable;
+ const PcxThroughAnalyzerFactory* factory;
+ public:
+- PcxThroughAnalyzer(const PcxThroughAnalyzerFactory* f) :factory(f) {}
++ explicit PcxThroughAnalyzer(const PcxThroughAnalyzerFactory* f) :factory(f) {}
+ ~PcxThroughAnalyzer() {}
+ void setIndexable(Strigi::AnalysisResult*);
+ Strigi::InputStream *connectInputStream(Strigi::InputStream *in);
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreamanalyzer-0004-ffmpeg-Rename-mutex-to-g_mutex.patch b/source/l/strigi/libstreamanalyzer-0004-ffmpeg-Rename-mutex-to-g_mutex.patch
new file mode 100644
index 000000000..a114d029c
--- /dev/null
+++ b/source/l/strigi/libstreamanalyzer-0004-ffmpeg-Rename-mutex-to-g_mutex.patch
@@ -0,0 +1,50 @@
+From ae11c0b24fd3be995185ebdc5a5bbbb92ff30843 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date: Tue, 10 Sep 2013 17:50:56 +0300
+Subject: [PATCH 4/5] ffmpeg: Rename `mutex' to `g_mutex'.
+
+std::mutex is an actual type in C++11 and is implemented by libc++. The
+build was failing because references to `mutex' in lockmgr were ambiguous,
+as both the mutex variable defined above and std::mutex (because of the
+`using namespace std' statement) were found.
+---
+ plugins/endplugins/ffmpegendanalyzer.cpp | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/plugins/endplugins/ffmpegendanalyzer.cpp b/plugins/endplugins/ffmpegendanalyzer.cpp
+index f219912..eaed07f 100644
+--- a/plugins/endplugins/ffmpegendanalyzer.cpp
++++ b/plugins/endplugins/ffmpegendanalyzer.cpp
+@@ -56,22 +56,22 @@ public:
+ signed char analyze(AnalysisResult& idx, ::InputStream* in);
+ };
+
+-STRIGI_MUTEX_DEFINE(mutex);
++STRIGI_MUTEX_DEFINE(g_mutex);
+
+ static int
+ lockmgr(void **mtx, enum AVLockOp op) {
+ // pre-allocating a single mutex is the only way to get it to work without changing strigi_thread.h
+- assert( (*mtx == &mutex) || (op == AV_LOCK_CREATE) );
++ assert( (*mtx == &g_mutex) || (op == AV_LOCK_CREATE) );
+ switch(op) {
+ case AV_LOCK_CREATE:
+- *mtx = &mutex;
+- return !!STRIGI_MUTEX_INIT(&mutex);
++ *mtx = &g_mutex;
++ return !!STRIGI_MUTEX_INIT(&g_mutex);
+ case AV_LOCK_OBTAIN:
+- return !!STRIGI_MUTEX_LOCK(&mutex);
++ return !!STRIGI_MUTEX_LOCK(&g_mutex);
+ case AV_LOCK_RELEASE:
+- return !!STRIGI_MUTEX_UNLOCK(&mutex);
++ return !!STRIGI_MUTEX_UNLOCK(&g_mutex);
+ case AV_LOCK_DESTROY:
+- STRIGI_MUTEX_DESTROY(&mutex);
++ STRIGI_MUTEX_DESTROY(&g_mutex);
+ return 0;
+ }
+ return 1;
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreamanalyzer-0005-use-rpath-only-when-needed.patch b/source/l/strigi/libstreamanalyzer-0005-use-rpath-only-when-needed.patch
new file mode 100644
index 000000000..bcbf50bb3
--- /dev/null
+++ b/source/l/strigi/libstreamanalyzer-0005-use-rpath-only-when-needed.patch
@@ -0,0 +1,31 @@
+From 82c277bc0264798b291417e675611d7e3bead176 Mon Sep 17 00:00:00 2001
+From: Rex Dieter <rdieter@math.unl.edu>
+Date: Wed, 1 Jan 2014 09:55:46 -0600
+Subject: [PATCH 5/5] use rpath only when needed
+
+cmake code borrowed from soprano
+---
+ CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6dee36b..d5cd1eb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,8 +57,13 @@ set(DATA_DESTINATION "${CMAKE_INSTALL_FULL_DATAROOTDIR}")
+ # These two options below make it set the RPATH of the installed targets to all
+ # RPATH directories outside the current CMAKE_BINARY_DIR and also the library
+ # install directory. Alex
++list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIB_DESTINATION}" _isSystemPlatformLibDir)
++list(FIND CMAKE_C_IMPLICIT_LINK_DIRECTORIES "${LIB_DESTINATION}" _isSystemCLibDir)
++list(FIND CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "${LIB_DESTINATION}" _isSystemCxxLibDir)
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
++if("${_isSystemPlatformLibDir}" STREQUAL "-1" AND "${_isSystemCLibDir}" STREQUAL "-1" AND "${_isSystemCxxLibDir}" STREQUAL "-1")
+ set(CMAKE_INSTALL_RPATH ${LIB_DESTINATION} )
++endif()
+
+ if(NOT WIN32 AND NOT CMAKE_SYSTEM MATCHES "SunOS-5*.")
+ add_definitions(-fPIC)
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreams-0001-Generate-config.h-after-looking-for-dependencies.patch b/source/l/strigi/libstreams-0001-Generate-config.h-after-looking-for-dependencies.patch
new file mode 100644
index 000000000..895c9f7e8
--- /dev/null
+++ b/source/l/strigi/libstreams-0001-Generate-config.h-after-looking-for-dependencies.patch
@@ -0,0 +1,43 @@
+From b82f954e71be45aef152bbf8925a3070b7e4c69a Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date: Fri, 5 Apr 2013 02:13:31 +0300
+Subject: [PATCH 1/5] Generate config.h after looking for dependencies.
+
+At least lib/config.h.cmake's ICONV_SECOND_ARGUMENT_IS_CONST depends
+on FindIconv.cmake having been called before, otherwise it is always
+undefined.
+
+This fixes a regression introduced in 61a7ffe.
+
+CCMAIL: cgiboudeaux@gmx.com
+---
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cd95c92..b2d959c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,9 +46,6 @@ endif()
+ # check for visibility support
+ macro_check_gcc_visibility(__STRIGI_HAVE_GCC_VISIBILITY)
+
+-# Generate include/strigi/strigiconfig.h and lib/config.h
+-include(ConfigureChecks.cmake)
+-
+ # check for required packages
+ find_package(ZLIB)
+ set_package_properties(ZLIB PROPERTIES
+@@ -77,6 +74,9 @@ set_package_properties(Threads PROPERTIES
+
+ feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
+
++# Generate include/strigi/strigiconfig.h and lib/config.h
++include(ConfigureChecks.cmake)
++
+ ##### building and testing #####
+ # every directory needs the headers that will be installed
+ include_directories(${libstreams_SOURCE_DIR}/include
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreams-0002-Reduce-noise-in-analysis-tools-complain-about-resour.patch b/source/l/strigi/libstreams-0002-Reduce-noise-in-analysis-tools-complain-about-resour.patch
new file mode 100644
index 000000000..7179526ff
--- /dev/null
+++ b/source/l/strigi/libstreams-0002-Reduce-noise-in-analysis-tools-complain-about-resour.patch
@@ -0,0 +1,65 @@
+From 314f9d8f4fc50323e9f670ef54f0263cec08abc3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=96mer=20Fad=C4=B1l=20USTA?= <omerusta@gmail.com>
+Date: Tue, 9 Apr 2013 04:01:23 +0300
+Subject: [PATCH 2/5] Reduce noise in analysis tools complain about resource
+ leak
+
+Cppcheck gives false alerts. This will stop it complaining about
+resource leakage.
+Thanks to mpyne for review of patch
+
+REVIEW: 109920
+---
+ lib/fileinputstream.cpp | 4 ++--
+ lib/skippingfileinputstream.cpp | 4 ++--
+ lib/skippingfileinputstream2.cpp | 4 ++--
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/lib/fileinputstream.cpp b/lib/fileinputstream.cpp
+index 2801d1b..820b831 100644
+--- a/lib/fileinputstream.cpp
++++ b/lib/fileinputstream.cpp
+@@ -39,8 +39,8 @@ FileInputStream::FileInputStream(const char* filepath, int32_t buffersize) {
+ m_status = Error;
+ return;
+ }
+- FILE* f = fopen(filepath, "rb");
+- open(f, filepath, buffersize);
++ file = fopen(filepath, "rb");
++ open(file, filepath, buffersize);
+ }
+ FileInputStream::FileInputStream(FILE* file, const char* filepath,
+ int32_t buffersize) {
+diff --git a/lib/skippingfileinputstream.cpp b/lib/skippingfileinputstream.cpp
+index dcb4d32..9759c54 100644
+--- a/lib/skippingfileinputstream.cpp
++++ b/lib/skippingfileinputstream.cpp
+@@ -38,8 +38,8 @@ SkippingFileInputStream::SkippingFileInputStream(const char* filepath) {
+ m_status = Error;
+ return;
+ }
+- FILE* f = fopen(filepath, "rb");
+- open(f, filepath);
++ file = fopen(filepath, "rb");
++ open(file, filepath);
+ }
+ void
+ SkippingFileInputStream::open(FILE* f, const char* path) {
+diff --git a/lib/skippingfileinputstream2.cpp b/lib/skippingfileinputstream2.cpp
+index dc618f4..dcfcef2 100644
+--- a/lib/skippingfileinputstream2.cpp
++++ b/lib/skippingfileinputstream2.cpp
+@@ -36,8 +36,8 @@ SkippingFileInputStream2::SkippingFileInputStream2(const char* filepath, int32_t
+ m_status = Error;
+ return;
+ }
+- FILE* f = fopen(filepath, "rb");
+- open(f, filepath, buffersize);
++ file = fopen(filepath, "rb");
++ open(file, filepath, buffersize);
+ }
+ SkippingFileInputStream2::SkippingFileInputStream2(FILE* file, const char* filepath,
+ int32_t buffersize) {
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreams-0003-Build-fix-for-gcc-4.8.patch b/source/l/strigi/libstreams-0003-Build-fix-for-gcc-4.8.patch
new file mode 100644
index 000000000..203286381
--- /dev/null
+++ b/source/l/strigi/libstreams-0003-Build-fix-for-gcc-4.8.patch
@@ -0,0 +1,25 @@
+From 6fedeb66cc3c59bce24146f079295a1d404c749c Mon Sep 17 00:00:00 2001
+From: Jos van den Oever <jos@vandenoever.info>
+Date: Sat, 1 Jun 2013 17:59:36 +0200
+Subject: [PATCH 3/5] Build fix for gcc 4.8.
+
+---
+ include/strigi/bufferedstream.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/strigi/bufferedstream.h b/include/strigi/bufferedstream.h
+index 563da8a..05f5500 100644
+--- a/include/strigi/bufferedstream.h
++++ b/include/strigi/bufferedstream.h
+@@ -34,7 +34,7 @@ namespace Strigi {
+ * BufferedStream will do the rest.
+ */
+ template <class T>
+-class BufferedStream : public StreamBase<T> {
++class STREAMS_EXPORT BufferedStream : public StreamBase<T> {
+ private:
+ StreamBuffer<T> buffer;
+ bool finishedWritingToBuffer;
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreams-0004-Fix-Krazy-issues.patch b/source/l/strigi/libstreams-0004-Fix-Krazy-issues.patch
new file mode 100644
index 000000000..57036e627
--- /dev/null
+++ b/source/l/strigi/libstreams-0004-Fix-Krazy-issues.patch
@@ -0,0 +1,276 @@
+From 8aa2b21fe596ddfe9de250190ede78ee34f19d2d Mon Sep 17 00:00:00 2001
+From: Jos van den Oever <jos@vandenoever.info>
+Date: Fri, 12 Jul 2013 13:04:44 +0200
+Subject: [PATCH 4/5] Fix Krazy issues.
+
+---
+ .krazy | 3 +++
+ cmake/FindIconv.cmake | 19 +++++++++++++++++++
+ include/strigi/archivereader.h | 6 +++---
+ include/strigi/bz2inputstream.h | 2 +-
+ include/strigi/dataeventinputstream.h | 2 +-
+ include/strigi/kmpsearcher.h | 2 +-
+ include/strigi/lzmainputstream.h | 2 +-
+ include/strigi/stringterminatedsubstream.h | 2 +-
+ include/strigi/substreamprovider.h | 2 +-
+ lib/libstreams.pc.cmake | 19 +++++++++++++++++++
+ lib/signatureinputstream.h | 2 +-
+ lib/strigiconfig.cpp | 2 +-
+ lib/stringreader.h | 2 --
+ tests/api/ArchiveReaderTest.cpp | 4 ++--
+ tests/sharedtestcode/unknownsizestream.h | 4 ++--
+ 15 files changed, 56 insertions(+), 17 deletions(-)
+ create mode 100644 .krazy
+
+diff --git a/.krazy b/.krazy
+new file mode 100644
+index 0000000..4822bdd
+--- /dev/null
++++ b/.krazy
+@@ -0,0 +1,3 @@
++# see http://techbase.kde.org/Development/Tutorials/Code_Checking#Controlling_Krazy_on_the_EBN for an explanation of this file
++EXCLUDE syscalls,typedefs
++IGNORESUBS tests/data
+diff --git a/cmake/FindIconv.cmake b/cmake/FindIconv.cmake
+index ce40ab2..fd5a3af 100644
+--- a/cmake/FindIconv.cmake
++++ b/cmake/FindIconv.cmake
+@@ -1,3 +1,22 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2006 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
++
+ # - Try to find Iconv
+ # Once done this will define
+ #
+diff --git a/include/strigi/archivereader.h b/include/strigi/archivereader.h
+index 823a432..ffe3f22 100644
+--- a/include/strigi/archivereader.h
++++ b/include/strigi/archivereader.h
+@@ -38,7 +38,7 @@ public:
+ * @brief Opens a stream for the given url.
+ *
+ * What is meant by @p url will depend on context. In the context of an
+- * archive with a file system-like directory stucture, it will be the path
++ * archive with a file system-like directory structure, it will be the path
+ * to the file relative the root of the archive (eg: /foo/bar).
+ *
+ * @param url unique name of or path to an item
+@@ -49,7 +49,7 @@ public:
+ * @brief Gets information about a given url
+ *
+ * What is meant by @p url will depend on context. In the context of an
+- * archive with a file system-like directory stucture, it will be the path
++ * archive with a file system-like directory structure, it will be the path
+ * to the file relative the root of the archive (eg: /foo/bar).
+ *
+ * @param url unique name of or path to an item
+@@ -89,7 +89,7 @@ public:
+ * @param e a vector containing information about each
+ * item in the directory
+ */
+- DirLister(Private* p);
++ explicit DirLister(Private* p);
+ /**
+ * @brief Copy constructor
+ */
+diff --git a/include/strigi/bz2inputstream.h b/include/strigi/bz2inputstream.h
+index aa40e88..09e566a 100644
+--- a/include/strigi/bz2inputstream.h
++++ b/include/strigi/bz2inputstream.h
+@@ -30,7 +30,7 @@ private:
+ Private* const p;
+ int32_t fillBuffer(char* start, int32_t space);
+ public:
+- BZ2InputStream(InputStream* input);
++ explicit BZ2InputStream(InputStream* input);
+ ~BZ2InputStream();
+ static bool checkHeader(const char* data, int32_t datasize);
+ };
+diff --git a/include/strigi/dataeventinputstream.h b/include/strigi/dataeventinputstream.h
+index 05368e2..c8205c4 100644
+--- a/include/strigi/dataeventinputstream.h
++++ b/include/strigi/dataeventinputstream.h
+@@ -48,7 +48,7 @@ public:
+ * When handleEnd is called, it is guaranteed that each
+ * element in the input stream has been passed in exactly
+ * one call to this function, and that the calls happened
+- * in the same order as the the data occurred in the
++ * in the same order as the data occurred in the
+ * InputStream.
+ *
+ * You should not call this function yourself. It forms
+diff --git a/include/strigi/kmpsearcher.h b/include/strigi/kmpsearcher.h
+index e3ec19d..28d049b 100644
+--- a/include/strigi/kmpsearcher.h
++++ b/include/strigi/kmpsearcher.h
+@@ -39,7 +39,7 @@ private:
+ int32_t maxlen;
+ public:
+ KmpSearcher() :table(0) { }
+- KmpSearcher(const std::string& query);
++ explicit KmpSearcher(const std::string& query);
+ ~KmpSearcher() {
+ if (table) {
+ free(table);
+diff --git a/include/strigi/lzmainputstream.h b/include/strigi/lzmainputstream.h
+index fa7cf87..530edc3 100644
+--- a/include/strigi/lzmainputstream.h
++++ b/include/strigi/lzmainputstream.h
+@@ -30,7 +30,7 @@ private:
+ Private* const p;
+ int32_t fillBuffer(char* start, int32_t space);
+ public:
+- LZMAInputStream(InputStream* input);
++ explicit LZMAInputStream(InputStream* input);
+ ~LZMAInputStream();
+ static bool checkHeader(const char* data, int32_t datasize);
+ };
+diff --git a/include/strigi/stringterminatedsubstream.h b/include/strigi/stringterminatedsubstream.h
+index 9f96bcc..fabb40d 100644
+--- a/include/strigi/stringterminatedsubstream.h
++++ b/include/strigi/stringterminatedsubstream.h
+@@ -30,7 +30,7 @@ namespace Strigi {
+ *
+ * This class stops reading data when either the end of the
+ * underlying stream is reacher, or a given terminator is encountered
+- * in the the stream.
++ * in the stream.
+ */
+ class STREAMS_EXPORT StringTerminatedSubStream : public InputStream {
+ private:
+diff --git a/include/strigi/substreamprovider.h b/include/strigi/substreamprovider.h
+index 21ce324..3036d32 100644
+--- a/include/strigi/substreamprovider.h
++++ b/include/strigi/substreamprovider.h
+@@ -88,7 +88,7 @@ public:
+ *
+ * @param input the inputstream that will be split into substreams
+ */
+- SubStreamProvider(InputStream *input)
++ explicit SubStreamProvider(InputStream *input)
+ : m_status(Ok)
+ , m_input(input)
+ , m_entrystream(0)
+diff --git a/lib/libstreams.pc.cmake b/lib/libstreams.pc.cmake
+index 8259b46..ce1205d 100644
+--- a/lib/libstreams.pc.cmake
++++ b/lib/libstreams.pc.cmake
+@@ -1,3 +1,22 @@
++# This file is part of Strigi Desktop Search
++#
++# Copyright (C) 2007 Jos van den Oever <jos@vandenoever.info>
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Library General Public
++# License as published by the Free Software Foundation; either
++# version 2 of the License, or (at your option) any later version.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Library General Public License for more details.
++#
++# You should have received a copy of the GNU Library General Public License
++# along with this library; see the file COPYING.LIB. If not, write to
++# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++# Boston, MA 02110-1301, USA.
++
+ prefix=${CMAKE_INSTALL_PREFIX}
+ exec_prefix=${CMAKE_INSTALL_PREFIX}/bin
+ libdir=${LIB_DESTINATION}
+diff --git a/lib/signatureinputstream.h b/lib/signatureinputstream.h
+index 7302c75..63a2f0d 100644
+--- a/lib/signatureinputstream.h
++++ b/lib/signatureinputstream.h
+@@ -30,7 +30,7 @@ namespace Strigi {
+ *
+ * This class stops reading data when either the end of the
+ * underlying stream is reacher, or a given terminator is encountered
+- * in the the stream.
++ * in the stream.
+ */
+ class SignatureInputStream : public InputStream {
+ private:
+diff --git a/lib/strigiconfig.cpp b/lib/strigiconfig.cpp
+index 6607ebd..9d9d8f9 100644
+--- a/lib/strigiconfig.cpp
++++ b/lib/strigiconfig.cpp
+@@ -32,4 +32,4 @@ namespace Strigi {
+ const char* versionString() {
+ return STRIGI_VERSION_STRING;
+ }
+-}
+\ No newline at end of file
++}
+diff --git a/lib/stringreader.h b/lib/stringreader.h
+index 4d60b67..1a57c5c 100644
+--- a/lib/stringreader.h
++++ b/lib/stringreader.h
+@@ -20,11 +20,9 @@
+ #ifndef STRINGREADER_H
+ #define STRINGREADER_H
+
+-#ifdef __GNUC__
+ #error stringreader.h is deprecated. Include stringstream.h instead.
+ #error StringReader has been renamed to StringStream
+ #error Use StringInputStream for StringStream<char>
+ #error Use StringReader for StringStream<wchar_t>
+-#endif
+
+ #endif
+diff --git a/tests/api/ArchiveReaderTest.cpp b/tests/api/ArchiveReaderTest.cpp
+index ffb7cd7..6d38050 100644
+--- a/tests/api/ArchiveReaderTest.cpp
++++ b/tests/api/ArchiveReaderTest.cpp
+@@ -50,7 +50,7 @@ test2(const char* path) {
+ EntryInfo e;
+ while (dl.nextEntry(e)) {
+ string filepath(path);
+- filepath += "/";
++ filepath += '/';
+ filepath += e.filename;
+ if (e.type == EntryInfo::File) {
+ test1(filepath.c_str());
+@@ -83,7 +83,7 @@ walkdirectories(const char* path, void (*callback)(const char*)) {
+ if (S_ISREG(dirstat.st_mode)) {
+ callback(filepath.c_str());
+ } else if (S_ISDIR(dirstat.st_mode)) {
+- filepath += "/";
++ filepath += '/';
+ walkdirectories(filepath.c_str(), callback);
+ }
+ }
+diff --git a/tests/sharedtestcode/unknownsizestream.h b/tests/sharedtestcode/unknownsizestream.h
+index bde063e..73d3d49 100644
+--- a/tests/sharedtestcode/unknownsizestream.h
++++ b/tests/sharedtestcode/unknownsizestream.h
+@@ -17,8 +17,8 @@
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+-#ifndef STRIGI_UNKNOWNSIZEINPUTSTREAM
+-#define STRIGI_UNKNOWNSIZEINPUTSTREAM
++#ifndef STRIGI_UNKNOWNSIZEINPUTSTREAM_H
++#define STRIGI_UNKNOWNSIZEINPUTSTREAM_H
+
+ #include <strigi/strigiconfig.h>
+ #include <strigi/streambase.h>
+--
+1.8.4.2
+
diff --git a/source/l/strigi/libstreams-0005-use-rpath-only-when-needed.patch b/source/l/strigi/libstreams-0005-use-rpath-only-when-needed.patch
new file mode 100644
index 000000000..9a79c13bb
--- /dev/null
+++ b/source/l/strigi/libstreams-0005-use-rpath-only-when-needed.patch
@@ -0,0 +1,31 @@
+From f552becab291908030f8cc27de83155eb182c7ba Mon Sep 17 00:00:00 2001
+From: Rex Dieter <rdieter@math.unl.edu>
+Date: Wed, 1 Jan 2014 09:53:44 -0600
+Subject: [PATCH 5/5] use rpath only when needed
+
+cmake code borrowed from soprano
+---
+ CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b2d959c..a3948c2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,8 +34,13 @@ set(INCLUDE_DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
+ # These two options below make it set the RPATH of the installed targets to all
+ # RPATH directories outside the current CMAKE_BINARY_DIR and also the library
+ # install directory. Alex
++list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIB_DESTINATION}" _isSystemPlatformLibDir)
++list(FIND CMAKE_C_IMPLICIT_LINK_DIRECTORIES "${LIB_DESTINATION}" _isSystemCLibDir)
++list(FIND CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "${LIB_DESTINATION}" _isSystemCxxLibDir)
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
++if("${_isSystemPlatformLibDir}" STREQUAL "-1" AND "${_isSystemCLibDir}" STREQUAL "-1" AND "${_isSystemCxxLibDir}" STREQUAL "-1")
+ set(CMAKE_INSTALL_RPATH ${LIB_DESTINATION})
++endif()
+
+ if(NOT MSVC AND NOT MINGW AND NOT CMAKE_SYSTEM MATCHES "SunOS-5*.")
+ add_definitions(-fPIC)
+--
+1.8.4.2
+
diff --git a/source/l/strigi/strigi-fix-ftbfs-with-gcc-4.7.diff b/source/l/strigi/strigi-fix-ftbfs-with-gcc-4.7.diff
deleted file mode 100644
index d4721c393..000000000
--- a/source/l/strigi/strigi-fix-ftbfs-with-gcc-4.7.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: Fix FTBFS with gcc 4.7 due to missing <unistd.h> include.
-Author: Cyril Brulebois <kibi@debian.org>
-Bug-Debian: http://bugs.debian.org/667384
-
---- strigi-0.7.7.orig/strigidaemon/bin/daemon/eventlistener/eventlistenerqueue.cpp
-+++ strigi-0.7.7/strigidaemon/bin/daemon/eventlistener/eventlistenerqueue.cpp
-@@ -27,9 +27,7 @@
- #include <iostream>
- #include <stdio.h>
-
--#if defined(__SUNPRO_CC)
- #include <unistd.h>
--#endif
-
- using namespace std;
-
diff --git a/source/l/strigi/strigi.SlackBuild b/source/l/strigi/strigi.SlackBuild
index 8b7374fca..cefa4242d 100755
--- a/source/l/strigi/strigi.SlackBuild
+++ b/source/l/strigi/strigi.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2007-2008 Robby Workman, Northport, Alabama, USA
-# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
PKGNAM=strigi
-VERSION=${VERSION:-0.7.7}
+VERSION=${VERSION:-0.7.8}
BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:--j7}
@@ -34,7 +34,7 @@ NUMJOBS=${NUMJOBS:--j7}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -42,8 +42,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -70,7 +70,13 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
-zcat $CWD/strigi-fix-ftbfs-with-gcc-4.7.diff.gz | patch -p1 --verbose || exit 1
+( cd libstreamanalyzer
+zcat $CWD/libstreamanalyzer*.patch.gz | patch -p1 --verbose || exit 1
+)
+( cd libstreams
+zcat $CWD/libstreams*.patch.gz | patch -p1 --verbose || exit 1
+)
+echo "target_link_libraries(index2dump streamanalyzer clucene-shared)" >> libstreamanalyzer/plugins/indexers/clucenengindexer/indexdump/CMakeLists.txt
chown -R root:root .
find . \
diff --git a/source/l/svgalib/svgalib-1.9.25-round_gtf_gtfcalc_c.patch b/source/l/svgalib/svgalib-1.9.25-round_gtf_gtfcalc_c.patch
new file mode 100644
index 000000000..91c7859ca
--- /dev/null
+++ b/source/l/svgalib/svgalib-1.9.25-round_gtf_gtfcalc_c.patch
@@ -0,0 +1,11 @@
+--- svgalib-1.9.25.org/utils/gtf/gtfcalc.c 2009-08-05 13:05:26.473160060 +0530
++++ svgalib-1.9.25/utils/gtf/gtfcalc.c 2009-08-05 13:05:41.876227891 +0530
+@@ -64,7 +64,7 @@
+
+ /*-------------------------- Implementation -------------------------------*/
+
+-static double round(double v)
++double round(double v)
+ {
+ return floor(v + 0.5);
+ }
diff --git a/source/l/svgalib/svgalib-1.9.25-vga_getmodenumber.patch b/source/l/svgalib/svgalib-1.9.25-vga_getmodenumber.patch
new file mode 100644
index 000000000..59baedbcf
--- /dev/null
+++ b/source/l/svgalib/svgalib-1.9.25-vga_getmodenumber.patch
@@ -0,0 +1,11 @@
+--- svgalib-1.9.25/src/vgamodesel.c.orig 2012-02-03 10:45:43.000000000 +0200
++++ svgalib-1.9.25/src/vgamodesel.c 2012-02-03 10:45:47.000000000 +0200
+@@ -35,7 +35,7 @@ int __svgalib_name2number(char *m)
+ int vga_getmodenumber(char *m)
+ {
+ int i;
+- char s[3];
++ char s[8];
+
+ __svgalib_getchipset(); /* Do initialisation first */
+ i = __svgalib_name2number(m);
diff --git a/source/l/svgalib/svgalib.SlackBuild b/source/l/svgalib/svgalib.SlackBuild
index c4c405b1d..1e95669f0 100755
--- a/source/l/svgalib/svgalib.SlackBuild
+++ b/source/l/svgalib/svgalib.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=svgalib
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -78,6 +78,8 @@ find . -name "*.h" -exec chmod 644 {} \;
zcat $CWD/svgalib.prefix.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/svgalib-1.9.25-kernel-2.6.26.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/svgalib.nohelper.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/svgalib-1.9.25-round_gtf_gtfcalc_c.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/svgalib-1.9.25-vga_getmodenumber.patch.gz | patch -p1 --verbose || exit 1
# Build and install - spamming your partition first...:
make install NO_HELPER=y || exit 1
@@ -115,6 +117,11 @@ cp -a \
$PKG/usr/doc/${PKGNAM}-$VERSION
)
+# Make sure the package contains all library symlinks:
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ ldconfig -l *
+)
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/l/system-config-printer/system-config-printer.SlackBuild b/source/l/system-config-printer/system-config-printer.SlackBuild
index 6ca6afafa..bea868560 100755
--- a/source/l/system-config-printer/system-config-printer.SlackBuild
+++ b/source/l/system-config-printer/system-config-printer.SlackBuild
@@ -26,7 +26,7 @@
PKGNAM=system-config-printer
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:" -j7 "}
@@ -34,7 +34,7 @@ NUMJOBS=${NUMJOBS:" -j7 "}
MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
case "$MARCH" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
armv7hl) export ARCH=$MARCH ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
@@ -42,8 +42,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
diff --git a/source/l/taglib/taglib.SlackBuild b/source/l/taglib/taglib.SlackBuild
index 026f3e5be..9841c232b 100755
--- a/source/l/taglib/taglib.SlackBuild
+++ b/source/l/taglib/taglib.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,12 +22,12 @@
VERSION=${VERSION:-$(echo taglib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -36,8 +36,8 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -73,6 +73,7 @@ CXX=gcc \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SHARED_LINKER_FLAGS="-lstdc++" \
-DLIB_SUFFIX="${LIBDIRSUFFIX}" \
-DWITH_MP4=ON \
-DWITH_ASF=ON \
diff --git a/source/l/urwid/LICENSE b/source/l/urwid/LICENSE
deleted file mode 100644
index 5ab7695ab..000000000
--- a/source/l/urwid/LICENSE
+++ /dev/null
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/source/l/urwid/urwid.SlackBuild b/source/l/urwid/urwid.SlackBuild
index 152be6252..084fc74ea 100755
--- a/source/l/urwid/urwid.SlackBuild
+++ b/source/l/urwid/urwid.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for urwid
# Copyright 2009 Andrew Psaltis <ampsaltis@gmail.com>
-# Copyright 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2012, 2016 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,14 +25,14 @@
# Modified by Robby Workman <rworkman@slackware.com>
-PRGNAM=urwid
-VERSION=1.0.1
+PKGNAM=urwid
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,13 +41,13 @@ fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-$PRGNAM
+PKG=$TMP/package-$PKGNAM
-rm -rf $PKG $TMP/$PRGNAM-$VERSION
+rm -rf $PKG $TMP/$PKGNAM-$VERSION
mkdir -p $TMP $PKG
cd $TMP || exit 1
-tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
-cd $PRGNAM-$VERSION || exit 1
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root.root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -58,20 +58,16 @@ find . \
python setup.py install --root=$PKG || exit 1
# Strip this package's sole library, wherever it might be
-# This package probably isn't really a "noarch" due to this, but oh well
find $PKG -name "str_util.so" -exec strip --strip-unneeded $PKG 2> /dev/null {} \;
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/examples
-cp -a tutorial.html reference.html $PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
# Include the code examples. They're pretty small, so they can't hurt, I guess.
-cp -a bigtext.py browse.py calc.py dialog.py edit.py fib.py graph.py tour.py \
- $PKG/usr/doc/$PRGNAM-$VERSION/examples
-# urwid's license (LGPLv2) is not included with the source archive.
-zcat $CWD/LICENSE.gz > $PKG/usr/doc/$PRGNAM-$VERSION/LICENSE
-find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
+# NOTE: They don't even exist in 1.0.3, so even smaller, I guess. ;-)
+cp -a CHANGELOG COPYING* examples $PKG/usr/doc/$PKGNAM-$VERSION
+find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 644 {} \;
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/v4l-utils/v4l-utils.SlackBuild b/source/l/v4l-utils/v4l-utils.SlackBuild
index 9c0b2ec4f..38bf8385f 100755
--- a/source/l/v4l-utils/v4l-utils.SlackBuild
+++ b/source/l/v4l-utils/v4l-utils.SlackBuild
@@ -26,23 +26,24 @@ PKGNAM=v4l-utils
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+NUMJOBS=${NUMJOBS:--j6}
+
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-NUMJOBS=${NUMJOBS:--j6}
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/virtuoso-ose/virtuoso-ose.SlackBuild b/source/l/virtuoso-ose/virtuoso-ose.SlackBuild
index 98c883601..87454bb78 100755
--- a/source/l/virtuoso-ose/virtuoso-ose.SlackBuild
+++ b/source/l/virtuoso-ose/virtuoso-ose.SlackBuild
@@ -23,12 +23,12 @@
PKGNAM=virtuoso-opensource
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -41,8 +41,8 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-virtuoso-ose
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/vte/vte.SlackBuild b/source/l/vte/vte.SlackBuild
index 70386cb13..34debeb33 100755
--- a/source/l/vte/vte.SlackBuild
+++ b/source/l/vte/vte.SlackBuild
@@ -23,22 +23,22 @@
PKGNAM=vte
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-4}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
diff --git a/source/l/wavpack/wavpack.SlackBuild b/source/l/wavpack/wavpack.SlackBuild
index 682b4e5e7..2f6ba82a5 100755
--- a/source/l/wavpack/wavpack.SlackBuild
+++ b/source/l/wavpack/wavpack.SlackBuild
@@ -33,7 +33,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -47,8 +47,8 @@ TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -65,7 +65,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP || exit 1
rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
find . \
@@ -82,6 +82,7 @@ CFLAGS="$SLKCFLAGS" \
--localstatedir=/var \
--mandir=/usr/man \
--enable-static=no \
+ --enable-mmx \
--build=$ARCH-slackware-linux \
|| exit 1
diff --git a/source/l/xapian-core/slack-desc b/source/l/xapian-core/slack-desc
new file mode 100644
index 000000000..9505e7b8d
--- /dev/null
+++ b/source/l/xapian-core/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+xapian-core: xapian-core (Search Engine Library)
+xapian-core:
+xapian-core: Xapian is an Open Source Probabilistic Information Retrieval
+xapian-core: Library. It offers a highly adaptable toolkit that allows
+xapian-core: developers to easily add advanced indexing and search facilities
+xapian-core: to applications.
+xapian-core:
+xapian-core:
+xapian-core:
+xapian-core: xapian home: http://www.xapian.org/
+xapian-core:
diff --git a/source/l/xapian-core/xapian-core.SlackBuild b/source/l/xapian-core/xapian-core.SlackBuild
new file mode 100755
index 000000000..a98644ee1
--- /dev/null
+++ b/source/l/xapian-core/xapian-core.SlackBuild
@@ -0,0 +1,127 @@
+#!/bin/sh
+
+# Copyright 2014, 2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2014 Eric Hameleers, Eindhoven, NL
+# All rights reserved.
+
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=xapian-core
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i586 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --build=$TARGET \
+ || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog INSTALL NEWS HACKING PLATFORMS README \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+ mv $PKG/usr/doc/$PKGNAM-$VERSION/doc $PKG/usr/doc/$PKGNAM-$VERSION/html
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+